Security im Server- und Applikationsbetrieb

Unix und Nonstop OS bieten hohe Sicherheitsstandards

10.12.2010 von Klaus Manhart
Geht es um maximale Sicherheit von geschäftskritischen Anwendungen, gilt Unix immer noch als Mittel der Wahl. Das Betriebssystem ist auch heute noch prädestiniert für den Mission-critical-Einsatz auf Servern und in Rechenzentren.

Im Vergleich zu Windows und Linux ist Unix betagt - doch was die Sicherheit betrifft, kann kein neueres System Unix das Wasser reichen. Das zumindest sagen die Unix-Protagonisten. Schon bei der Entwicklung von Unix Ende der sechziger Jahre hatten Security-Aspekte oberste Priorität. Anders als Windows war Unix von Anbeginn als Mehrbenutzer-System konzipiert. Jeder Unix-User verfügt über einen eigenen Datenbereich auf dem System, auf den kein anderer Nutzer unerlaubt zugreifen kann. Gleichzeitig haben die Benutzer auch keinen Zugriff auf wichtige System-Dateien.

Dadurch, dass Unix von Anfang an multitasking- und multiuserfähig war, mussten sich die Konstrukteure gezwungenermaßen mit Security-Aspekten befassen. Mehrere User auf einem einzigen Unix-System veranlassten die Entwickler dazu, Mechanismen einzubauen, um unterschiedliche User sicher zu verwalten und diese sauber voneinander zu trennen. Diese Mechanismen haben sich bis heute bewährt und erhalten.

Betriebssysteme wie Linux und Windows wurden hingegen historisch so konstruiert, dass sie bevorzugt Desktop-Arbeiten unterstützen. Im Fokus stand zunächst weniger die Sicherheit, als die nutzerfreundliche Bedienung von Desktop PCs - zugeschnitten auf einen einzigen User. Eine Nutzer- oder Rechteverwaltung war damit anfangs - zumindest bei Windows - obsolet. Die Betriebssicherheit kam bei Windows erst später hinzu. Um die Systeme zu schützen, wurden erst nachträglich zusätzliche Layer aufgesetzt.

Dies soll nicht bedeuten, dass Microsoft-Betriebssysteme generell unsicher sind. Natürlich hat sich Windows weiterentwickelt, Server- und Desktop-Betriebssystem wurden getrennt und eine Userverwaltung ist inzwischen auch eingeführt. Dennoch könnten Windows-Betriebssysteme grundsätzlich sicherer sein, wenn man einige Konzepte, wie beispielsweise die strikte Rechtetrennung, von Unix übernommen hätte.

Kernelpriorisierung - Unix kennt keine Bluescreens

Bei Unix sorgt ein ausgeklügeltes, klares Konzept für die Sicherheit des Systems. Prinzipiell gibt es mehrere Ringe, wobei jeder Prozess immer nur in einem einzelnen Ring ausgeführt werden kann. Ein Ausbrechen aus dem Ring ist nicht erlaubt. Der innerste Ring ist Kernelland, ein speziell geschützter Bereich, in dem Kernelprozesse ablaufen, also jene Programme, die direkt im Systemkern ausgeführt werden. Sie dürfen nicht von außen beeinflussbar sein. Tatsächlich ist es für Nutzer unmöglich, Prozesse in dieses Kernelland zu verschieben. Anwenderprozesse sind erst in Ring 3 vorgesehen.

Diese saubere Trennung der Bereiche sorgt dafür, dass Unix-Server kaum - etwa durch Denial of Service Angriffe - völlig lahm gelegt werden können. In der Windows-Welt ist das durchaus üblich - die berüchtigten Bluescreens of Death zeugen davon. Ist ein Windows-System einmal eingefroren, so ist der Rechner nicht nur nicht mehr bedienbar, es lässt sich auch nur schwer feststellen, welcher Prozess welche Ressource blockiert hat. Im Serverumfeld ist ein derartiges Verhalten nicht akzeptabel. Selbst wenn es eine böswillige Anwendung darauf angelegt hat, einen Unternehmens-Rechner in die Knie zu zwingen, müssen Schutzmechanismen vorhanden sein, die das gänzliche Einfrieren des Servers verhindern.

Ein solcher Schutzmechanismus ist im Unix-Umfeld die Regelung von Software-Prozessen über Prioritäten. Dabei haben Kernprozesse einen deutlich höheren Vorrang als Anwenderprozesse. Startet ein Hacker einen Zombieprozess, der die CPU- oder I/O-Auslastung auf 100 Prozent treibt oder den Hauptspeicher vollschreibt, so sorgt unter Unix die Kernelpriorisierung dafür, dass lebensnotwendige Server-Prozesse weiter funktionieren. Startet beispielsweise auf einem Unix DNS-Server - er verwaltet die Namen von IP-Adressen - ein Zombieprozess, so reagiert der Server weiterhin auf Anfragen - etwas langsamer vielleicht, aber in immer noch erträglicher Performance. Die Antwortzeit wird im Rahmen des Akzeptablen bleiben.

Userprozesse unter Kontrolle

Zur höheren Sicherheit von Unix trägt auch bei, dass eingebaute Mechanismen den User und die von ihm gestarteten Prozesse anzeigen. Das ist zwar heute bei IP-Adressen etwas schwieriger als zu Terminalzeiten, als man ganz simpel physisch lokalisieren konnte, wo der Angreifer sitzt. Aber auch heute lässt sich über die IP-Adresse feststellen, von wo sich der User eingeloggt hat und auch aus welchem Gebäude und Stockwerk, wenn ein Netzwerkplan mit zugeordneten IP-Adressen existiert.

Ein Beispiel: Gibt ein Hacker einem okkupierten Windows-Server die gleiche IP-Adresse wie ein auf dem identischen Netzwerkstrang gelegenen Top Secret Server kann er alle Datenpakete auf seinen Server umleiten, wenn dieser sich schneller meldet. Unix würde in so einem Fall die doppelte IP-Adresse erkennen und eine offensive Warnung ausgeben. Der Admin kann dabei granular festlegen, in welcher Form die Meldung generiert wird.

Solche Security-Features von Unix, wie sie eben beispielhaft beschrieben wurden, sind auch unter Windows verfügbar. Allerdings sind diese nicht Teil des Betriebssystems, sondern müssen extra installiert werden. Um ein ähnliches Security-Level wie Unix zu erreichen braucht man unter Windows eine Vielzahl zusätzlicher, unterschiedlicher Tools, die der Administrator einspielen, konfigurieren und pflegen muss - und von denen jedes eine eigene Bedienphilosophie hat.

Im Unix-Umfeld denkt hingegen kaum jemand darüber nach, ob er bestimmte Security Features braucht und kaufen muss. Bei Unix sind die wichtigen Security-Mittel von Haus aus bereits "an Bord". Mechanismen, die das Austricksen des Betriebssystems verhindern, hat Unix seit seinen Urzeiten bereits in das System integriert.

Sicherheit bei NonStop OS

Auch bei HPs Hochverfügbarkeits-System NonStop OS haben Denial of Service Attacken und andere Angriffe kaum eine Chance. Das System beobachtet genau, welcher Benutzer welche Rechte hat und welche Ressourcen er verbrauchen darf. Selbst wenn es einem Angreifer gelingen sollte, Systemverbrauch und -ressourcen zu starten und das System an den Rand des Stillstands zu bringen, gibt es immer noch Betriebssystemelemente, die qua höherer Priorität weiter funktionieren. Böswillige Angriffe lassen sich so im schlimmsten Fall immer noch von außen stoppen. Allerdings wurde HP noch kein ernsthafter Angriff auf NonStop-Systeme gemeldet.

Für hohe Sicherheit sorgt bei NonStop-Systemen die modulare Ausrichtung. NonStop OS wurde von vornherein auf den Einsatz in unternehmenskritischen Anwendungen hinsichtlich Hochverfügbarkeit und Fehlertoleranz konstruiert. Daneben waren auch Skalierbarkeit und zuverlässige Sicherheitstechnologien zentrale Designziele.

All diese Konstruktionsziele wurden mit einem einzigen Konzept realisiert: einer modularen massiv parallelen Prozessor-Architektur (MPP). Relativ kleine, übersichtliche Programme verrichten unabhängig und getrennt voneinander ihre Arbeit. Der Datenaustausch erfolgt nicht über den gemeinsamen Speicher, sondern über Meldungen. Auf diese Weise sind NonStop-Programme extrem separiert und unabhängig voneinander, so dass sie sich nicht in die Quere kommen und fehlertolerant arbeiten. Zudem haben alle System- und Anwendungsprozesse nur die Rechte, die sie für ihre Aufgaben benötigen .

Das ursprüngliche Designziel, das Betriebssystem sicher gegen Hardwarefehler zu machen, hat das System aufgrund des hybriden Ansatzes zur Hard- und Softwarefehlertoleranz gleichzeitig gegenüber "transient" auftretenden Fehlern - sogenannten "Heisenbugs" - stabilisiert. NonStop OS ist aufgrund seiner Architektur eines der sichersten derzeit verfügbaren Betriebssysteme. Natürlich hat NonStop zusätzliche Security Subsysteme - beispielsweise zur Authentifizierung oder zum Auditing - die modernen Compliance Anforderungen genügen.

Sparsame Security Patches

Auch wenn in Unix und NonStop OS die wichtigsten Security Features bereits integriert sind, müssen diese angesichts stetig wechselnder Bedrohungen aktualisiert werden. Das Einspielen von Security-Patches ist deshalb auch unter Unix und NonStop unerlässlich. Allerdings ist sowohl bei HP UX als auch bei NonStop OS aufgrund des ohnehin hohen Sicherheitsstandards die Häufigkeit der System-Updates gering. Damit ist gleichzeitig die Anzahl manueller Eingriffe reduziert.

HP-UX Kunden haben den Vorteil, dass ihnen automatisch alle sechs Monate kumulative Patch Bundles zur Verfügung gestellt werden. Diese enthalten alle wichtigen Updates und werden automatisch installiert, falls dies gewünscht wird. Selbstverständlich stellt HP auch zwischen den Intervallen aktuelle Sicherheitspatches bereit, die allerdings nicht alle Kunden abrufen. Spätestens nach sechs Monaten sind aber alle HP UX Kunden wieder auf dem aktuellen Stand. Mit diesem Mechanismus zum Security-Update umgeht HP das Problem, dass ein Unix-Nutzer jahrelang Security Patches ignoriert und gewährleistet für seine Unix-Systeme ein hohes Sicherheitslevel.

Ein Nebeneffekt ist im Übrigen, dass die lästige Viren- und Spam-Problematik, die unter Windows so gewaltige Ressourcen an Manpower und Zeit vergeudet, unter Unix und NonStop so gut wie keine Rolle spielt. Dies liegt zum einen daran, dass diese beiden Betriebssysteme anders als Windows keine Massen-Plattformen sind. Zum anderen ist es einfacher, in einen Windows-Rechner einzubrechen, diesen zu übernehmen und dann Viren darauf zu packen oder Spam zu versenden. Auf einem Unix-oder NonStop Server ist der Aufwand für den Einbrecher deutlich höher.

Die relative Immunität von Unix gegen Viren und Spam nutzen viele Unternehmen, die Windows-Rechner betreiben, für die Filterung von Schadsoftware. Unix wird dabei zusammen mit einem Virenscanner im Mail-Server eingesetzt. Der Unix-Rechner fungiert dann als Filter, der selbst immun gegen Viren ist, aber im Vorfeld verseuchte E-Mails aussortiert. Auf diese Weise wird gewährleistet, dass Viren und Spam nahezu vollständig aus den Mails entfernt werden - bevor sie an den Exchange Server und Unternehmensabteilungen weiter gereicht werden.