Bundesamt für Sicherheit in der Informationstechnik

M 4.23 Sicherer Aufruf ausführbarer Dateien

Verantwortlich für Initiierung: Administrator, IT-Sicherheitsbeauftragter

Verantwortlich für Umsetzung: Administrator, Benutzer

Ausführbare Dateien können direkt gestartet werden. Im Gegensatz hierzu können Anwendungsdaten, wie Textdateien, nur über ein entsprechendes Programm angesehen werden. Unter Windows sind ausführbare Dateien an ihrer Dateiendung (beispielsweise .exe, .com, .vbs, .bat, .cmd) und unter Unix durch Dateirechte (x-Flag) erkennbar.

Es muss sichergestellt werden, dass nur freigegebene Versionen ausführbarer Dateien und keine eventuell eingebrachten modifizierten Versionen (insbesondere Trojanische Pferde) aufgerufen werden (siehe M 2.9 Nutzungsverbot nicht freigegebener Hard- und Software).

Ein Angreifer könnte eine ausführbare Datei soweit verändern, dass er die Privilegien des Benutzers erhält, der die Datei ausführt. Um dies zu verhindern, dürfen ausführbare Dateien nur lesbar sein. Ein Schreibzugriff darf nur Administratoren gestattet werden.

Ausführbare Dateien für die Schreibrechte benötigt werden, z. B. weil sie sich in der Entwicklung befinden, dürfen nur in separaten Bereichen verwendet werden. Dasselbe gilt für neue Software, die für einen späteren Einsatz auf einem Produktivsystem getestet werden soll. Hierfür können beispielsweise separate Testsysteme eingesetzt werden oder spezielle Benutzerkonten ohne weitere Privilegien. Nur so kann verhindert werden, dass diese Applikationen Schaden anrichten.

Auch bereits getestete Software kann die Sicherheit beeinträchtigen. Dies betrifft vor allem sehr komplexe Anwendungen wie zum Beispiel Webserver. Schon beim Start von Anwendungen muss sichergestellt werden, dass jeder Prozess nur so viele Rechte erhält wie unbedingt notwendig sind. So kann bei einem erfolgreichen Angriff der eintretende Schaden begrenzt werden. Diese Dienste dürfen, wenn möglich, nicht mit Administrator-Rechten gestartet werden. Hierfür eignen sich ebenfalls Benutzerkonten mit eingeschränkten Privilegien. Über klare Trennungen von Rechten, unter Unix oder Linux beispielsweise durch chroot-Umgebungen, die den eintretenden Schaden begrenzen können, muss nachgedacht werden.

Im Weiteren muss sichergestellt werden, dass nur die gewünschte, freigegebene Version ausgeführt werden kann. Ein Angreifer könnte sonst eine modifizierte Datei mit dem selben Namen in ein Verzeichnis kopieren, auf das er Schreibrechte hat. Wird beim Aufruf in den Verzeichnissen nach der Datei gesucht, könnte die modifizierte statt die gewünschte Datei ausgeführt werden.

Bei vielen Betriebssysteme werden die Verzeichnisse, in denen nach den ausführbaren Dateien gesucht werden soll, in der entsprechenden Reihenfolge in der PATH-Variable eingetragen. Die Anzahl der angegebenen Verzeichnisse sollte gering und überschaubar gehalten werden. Relative Verzeichnisangaben, die das jeweils aktuelle Arbeitsverzeichnis enthalten, dürfen als Angabe in der PATH-Variable nicht enthalten sein. Ausführbare Dateien sollen nur in dafür vorgesehenen Verzeichnissen gespeichert sein. In den in einer PATH-Variable enthaltenen Verzeichnissen darf nur der jeweilige Eigentümer Schreibrechte erhalten. Dies muss regelmäßig überprüft werden.

Prüffragen:

  • Ist sichergestellt, dass nur freigegebene Versionen ausführbarer Dateien zum Einsatz kommen?

  • Ist der Schreibzugriff auf ausführbare Dateien nur Adminstratoren gestattet, während Benutzer nur Lesezugriff erhalten?

  • Erhalten Prozesse beim Start der Anwendung nur die unbedingt notwendigen Rechte?

  • Werden in den PATH-Variablen nur absolute Verzeichnisangaben verwendet?

  • Sind ausführbare Dateien nur in dafür vorgesehenen Verzeichnissen gespeichert?

  • Werden die PATH-Einträge regelmäßig überprüft?

Stand: 13. EL Stand 2013