Richtlinien für Paket-Prioritäten im Bezug auf Sicherheitsüberprüfungen

Eine der ersten Hürden, die sich stellt, wenn man eine Sicherheitsüberprüfung der Debian-Distribution durchführen will, ist zu entscheiden, welches Paket für eine Untersuchung in Frage kommt.

Im Optimalfall sollten alle Pakete überprüft werden. Aufgrund der immensen Größe des Archives ist es aber vonnöten, Prioritäten zu setzen.

Einige wenige Rahmenbedingungen, die ein Paket für eine Überprüfung in Frage kommen lassen, sind:

  1. Pakete, die ausführbare Dateien unter Verwendung der setuid- oder setgid-Rechte installieren.
  2. Pakete, die einen netzwerkbasierten Service anbieten.
  3. Pakete, die CGI-/PHP-Skripte beinhalten, welche per Fernzugriff abrufbar sind.
  4. Pakete, die zeitgesteuerte Skripte (cronjobs) beinhalten, die oftmals als »root«-User ausgeführt werden.

Vielgenutzten Paketen sollte generell eine höhere Priorität zugesprochen werden, da ein Problem in diesen eine größere Anzahl von Benutzer betreffen würde.

Der Debian-Popularitäts-Wettbewerb enthält einen aktuellen Überblick über die populärsten Pakete unter den Teilnehmern der freiwilligen Umfrage.

Für detaillierte Informationen werfen Sie insbesondere einen Blick auf die nach Stimmen sortierte Paketliste. Die nach Stimmen (by vote) sortierte Liste reiht die Paketen danach auf, wie häufig sie von den Teilnehmern der Umfrage verwendet werden.

Ist ein Paket sicherheitskritisch, insbesondere wenn es die oben genannten Kriterien erfüllt, und wird dazu noch häufig verwendet, ist es definitiv ein guter Kandidat, um einer Sicherheitsüberprüfung unterzogen zu werden.

setuid- und setgid-Dateien

Mit setuid und setgid versehene Dateien sind generell Kandidaten für eine Sicherheitsüberprüfung, da ein Kompromittieren dieser Rechte einem lokalen Benutzer Zugang zu Berechtigungen verschaffen könnte, die er im Normalfall nicht hätte.

Um diese Suche zu vereinfachen, existiert eine Liste aller mit setuid- und setgid-Rechten versehenen Binärdateien in der derzeitigen stabilen Veröffentlichung.

Wenn es darum geht, die entsprechenden Dateien auszuwählen, ist es wichtig zu beachten, dass einige mehr und andere weniger sicherheitskritisch sind. Mit setuid(root) versehene Binärdateien sollten anderen gegenüber (z.B. mit setgid(games) oder setgid(bugs) versehenen) bevorzugt werden.

Netzwerk-Server

Netzwerk-Servern gilt es ebenfalls viel Beachtung zu schenken, wenn es darum geht, eine Sicherheitsüberprüfung vorzunehmen. Eine Sicherheitslücke kann hier dazu führen, dass Systeme durch Fernzugriff kompromittiert werden können.

Kompromittierungen aufgrund von Fernzugriffen sind in der Regel verhängnisvoller als lokale.

Online-Skripte

Online-Skripte – insbesondere CGI-Skripte – bewegen sich in derselben Klasse wie Netzwerk-Server. Selbst wenn der eingesetzte Webserver keine Sicherheitslücken aufweist, ist sicherzustellen, dass auch die von ihm bereitgestellten Skripte sicher sind.

Ein Fehler in einem Skript, das über Netz abrufbar ist, ist mindestens genauso gefährlich, wie ein Server der auf Verbindungen wartet – beide können zur Kompromittierung eines Systems führen.

Zeitgesteuerte Prozesse und System-Service

Auch wenn es wenige dieser Art gibt, ist es dennoch wichtig, einen Blick auf die in Paketen enthaltenen automatisierten Skripte und dergleichen zu werfen.

Viele unterstützende Prozesse werden per Voreinstellung als root ausgeführt, wie zum Beispiel die Rotation von Logfiles.

Erfolgreiches Ausnutzen einer Symlink-Attacke kann zu einer lokalen Kompromittierung führen.