Bundesamt für Sicherheit in der Informationstechnik

M 4.95 Minimales Betriebssystem

Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT

Verantwortlich für Umsetzung: Administrator

Rechner in einem sicherheitskritischen Umfeld sollten so konzipiert sein, dass sie möglichst wenig Angriffspunkte bieten. Da heutige Betriebssysteme standardmäßig viele Netzdienste bereitstellen, reicht für den Betrieb eines sicheren Servers ein gut konzipierter Serverdienst ( z. B. ein SSL -basierter Webserver) nicht aus. Vielmehr muss auch das Betriebssystem abgesichert werden, da ansonsten über eine Schwachstelle im Betriebssystem die Sicherheitsfunktionen des Serverdienstes umgangen werden könnten. Ein sogenanntes minimales Betriebssystem zeichnet sich dadurch aus, dass es im Idealfall keinen einzigen Netzdienst zur Verfügung stellt. Ein potentieller Angreifer kann also eine Schwachstelle in einem Netzdienst dieses Betriebssystems nicht ausnutzen. Und sollte ein Angreifer doch durch eine Schwachstelle Zugriff auf den Rechner bekommen haben, so wird er durch das Minimalsystem weiter behindert. Je weniger Programme ein Angreifer auf einem Zielrechner vorfindet, desto schwieriger wird es für ihn, weitere Schwachstellen in dem Zielrechner zu finden bzw. auszunutzen. Außerdem erleichtert dies die Pflege eines Servers sehr stark, da die Patches bzw. Service Packs für Diensteprogramme nicht mehr eingespielt werden müssen, wenn diese nicht vorhanden sind.

Im folgenden wird die Konfiguration eines Betriebssystems anhand eines Internet-Servers beschrieben, da hier im allgemeinen sehr hohe Sicherheitsanforderungen an das Betriebssystem gestellt werden müssen.

Ein Internet-Server hat meist nur eine einzige Aufgabe: stabil eine bestimmte Anzahl von Diensten (z. B. die Bereitschaft, E-Mail entgegenzunehmen) anderen Rechnern zur Verfügung zu stellen. Das zugrunde liegende Betriebssystem sollte keine weiteren Dienste anbieten. Deshalb sollte bei der Installation eines Internet-Servers folgendes Vorgehen eingehalten werden:

1. Grundinstallation des Betriebssystems

Kann man bei der Installation den Umfang der zu installierenden Pakete beeinflussen, so sollten schon hier nur die notwendigen Pakete eingespielt werden. Die Notwendigkeit bestimmter Pakete ist allerdings nicht immer zu erkennen, so dass zumindest die offensichtlich überflüssigen Pakete nicht eingespielt werden sollten.

2. Abschalten nicht benötigter Programme

Beim Start eines Rechners werden eine Vielzahl von Programmen automatisch gestartet. Einige dieser Programme sind für einen Internet-Server völlig überflüssig und sollten deaktiviert werden. Die Deaktivierung kann durch das Verhindern des automatischen Starts erfolgen (Startskripte unter Unix, Autostart und Dienstemanager unter Windows NT) und durch zusätzliches Löschen der entsprechenden Programme. Aus Gründen der Sicherheit wird das Löschen empfohlen, da dann ein Angreifer die Dienste nicht wieder reaktivieren kann. Allerdings ist es manchmal sehr schwierig, alle zu einem bestimmten Dienst gehörigen Dateien zu finden und zu löschen, so dass im Zweifel das Löschen unterbleiben sollte.

3. Konfiguration der Netzparameter

Falls dies nicht schon bei der Installation geschehen ist, müssen die Netzparameter des Internet-Servers eingestellt werden. Relevant für die Sicherheit des Internet-Servers sind unter anderem die Wahl eines Default Gateways und eines Domain Name Servers. Findet beispielsweise die Kommunikation des Internet-Servers mit dem Internet über einen Proxy (siehe M 2.73 Auswahl geeigneter Grundstrukturen für Sicherheitsgateways ) statt, so ist ein Default Gateway überflüssig. Ohne ein Default Gateway ist eine direkte Antwort vom Internet-Server ins Internet nicht möglich, so dass bei Umgehung des Proxies keine Kommunikation, d. h. auch kein Angriff, stattfinden kann. Auch DNS ist für einen Internet-Server häufig überflüssig und sollte möglichst vermieden werden, da dies einen direkten Kommunikationskanal zum Betriebssystem ermöglicht (siehe M 4.96 Abschaltung von DNS ). Zusätzlich gibt es noch eine Vielzahl von Parametern, die den sogenannten TCP/IP-Stack direkt beeinflussen, z. B. die maximale Größe von IP-Paketen. Diese Parameter sind extrem stark vom jeweiligen Betriebssystem abhängig, so dass hier nur das Abschalten von IP-Forwarding erwähnt werden kann. Weitere Änderungen könnten beispielsweise die Stabilität gegenüber fehlerhaften IP-Paketen oder aber auch den Netzdurchsatz erhöhen.

4. Abschalten nicht benötigter Netzdienste

Einige benötigte Diensteprogramme stellen eine Vielzahl weiterer Dienste bereit (insbesondere ist hier der inetd unter Unix gemeint). Die entsprechenden Konfigurationsdateien sind auf die notwendigen Netzdienste einzuschränken (siehe auch M 5.16 Übersicht über Netzdienste ).

5. Installation von Sicherheitsprogrammen

Das Betriebssystem sollte um zusätzliche Sicherheitsprogramme erweitert werden, falls diese nicht schon Teil des Betriebssystems sind. Insbesondere sinnvoll sind ein Integritätsprüfprogramm (siehe M 4.93 Regelmäßige Integritätsprüfung ) und ein Softwarepaketfilter (bei Windows NT schon enthalten). Empfehlenswert sind zusätzlich Programme zur Virensuche und zur Auswertung der Protokolleinträge. Ist eine Fernadministration des Internet-Servers gewünscht, so muss ein entsprechendes Sicherheitsprodukt installiert werden, z. B. der Secure Shell Daemon (siehe M 5.64 Secure Shell ), und regelmäßig die Sicherheit des Systems überprüft werden (siehe auch M 4.26 Regelmäßiger Sicherheitscheck des Unix-Systems ).

6. Konfiguration und Überprüfung der Netzdienste

Idealerweise stellt ein minimales Betriebssystem keinen einzigen Netzdienst zur Verfügung und ist somit von außen nicht angreifbar. Gerade in größeren Netzen ist dieses Vorgehen aufgrund der Administration nicht mehr praktikabel, so dass ein Fernzugang notwendig ist. Ob der Internet-Server Dienste bereitstellt, kann sowohl unter Unix als auch Windows NT mit dem Befehl netstat -a überprüft werden. Jeder der aufgelisteten Dienste sollte in seiner Konfiguration so eingeschränkt werden, dass nur berechtigte Rechner auf ihn zugreifen können (z. B. ist der Fernzugang zum Internet-Server auf die Rechner des Netzmanagements einzuschränken).

7. Löschen nicht mehr benötigter Programme

Sobald die Installation eines minimalen Betriebssystems abgeschlossen ist, sollten verschiedene Programme gelöscht werden, die einem potentiellen Angreifer hilfreich sein könnten. Insbesondere sind eventuell vorhandene Compiler zu entfernen, da diese einem Angreifer ein wertvolles Hilfsmittel sein könnten. Außerdem sind Compiler auf Internet-Servern auch deshalb nicht sinnvoll, da diese Rechner Produktionsmaschinen sind und Programmentwicklung und Tests auf anderen Rechnern durchgeführt werden sollten. Ebenfalls denkbar ist das Löschen aller Editoren, was einem Angreifer die Manipulation von Konfigurationsdateien sehr stark erschweren würde. Allerdings ist dann auch die Administration komplizierter. Bei Änderungen an Konfigurationsdateien muss dann jeweils wieder ein Editor installiert werden oder aber, und dies ist empfehlenswert, die Konfigurationsdateien müssen auf einem anderen Rechner editiert und dann überspielt werden.

Ein minimales Betriebssystem sollte natürlich kein Selbstzweck sein. Für einen Internet-Server muss selbstverständlich noch der eigentliche Serverdienst installiert werden. Ob dies am Ende der obigen Liste geschieht oder beispielsweise zwischen den Punkten 6 und 7 oder auch direkt nach Punkt 1, hängt von der jeweiligen Installation ab. Problematisch wird es, wenn die Installation wegen fehlender Betriebssystempakete fehlschlägt, da man dann die fehlenden Pakete suchen und selber nachinstallieren muss. Besser wäre es, der Hersteller des Serverdienstes gäbe die Betriebssystemabhängigkeiten an, so dass das Minimalsystem von Anfang an darauf ausgerichtet werden könnte.

Auch ein mit einem Minimalsystem konfigurierter Rechner ist nicht gänzlich vor Angriffen geschützt. Die wahrscheinlichste Ursache für einen erfolgreichen Angriff ist sicherlich der Serverdienst, aber auch das Minimalsystem selber ist noch angreifbar, insbesondere nämlich der TCP / IP -Stack, der die Netzpakete zur Applikation weiterleiten muss. Nahezu alle bisher bekannt gewordenen Angriffe gegen den TCP/IP-Stack betrafen allerdings nur die Verfügbarkeit, indem die betroffenen Rechner abstürzten, d. h. ein Eindringen in Rechner ist noch nicht beobachtet worden. Um auch diese Gefahr weiter zu verkleinern, sollte auch M 4.98 Kommunikation durch Paketfilter auf Minimum beschränken umgesetzt werden.

Prüffragen:

  • Bieten Rechner in einem sicherheitskritischen Umfeld möglichst wenig Angriffspunkte?

  • Installation des Betriebssystems: Werden nur benötigte Pakete mit eingespielt?

  • Starten des Rechners: Werden nicht benötigte Programme deaktiviert oder schon vorher gelöscht?

  • Werden die benötigten Dienstprogramme so weit wie möglich in ihren Funktionen eingeschränkt und können nur berechtigte Rechner auf die Dienstprogramme zugreifen?

  • Sind auf den Betriebssystemen Sicherheitsprogramme wie z.B. Softwarepaketfilter oder Integritätsprüfprogramme installiert?

  • Fernadministration: Sind entsprechende Sicherheitsprodukte installiert und wird die Sicherheit der Systeme regelmäßig überprüft?

Stand: 13. EL Stand 2013