Stromausfall quittiert Unix mit Inkonsistenzen auf der Platte:

De-facto-Standard mit überraschenden Systemschwächen

27.07.1984

Unix ist bis heute das einzige Betriebssystem, das im Bereich der Mehrbenutzersysteme eine Anwartschaft auf die Position eines Standards erheben kann. Eine wachsende Zahl von renommierten Herstellern bindet sich an Unix und setzt es an Stelle herkömmlicher, eigener Systeme für neue, meist auf der Basis von 16- und 32-Bit-Mikroprozessoren aufgebauten

Rechnern ein. Als Argument gegen Unix wird häufig angeführt, daß der Marktführer IBM bis jetzt nicht eindeutig für oder gegen Unix Stellung bezogen hat. Unabhängig davon hat Unix jedoch den Nicht-lBM-Markt heute schon so Intensiv durchdrungen, daß es sich zumindest als Standard für dieses Segment nicht mehr verdrängen läßt.

Auf dem Weltmarkt gibt es zur Zeit etwa 70 verschiedene Hersteller, die Unix-Rechnersysteme anbieten, auf Systemen wie dem IBM PC bis hin zum Supersystem Cray-II. Wie ist dieser Erfolg zu erklären? Ein wichtiges Argument ist zweifellos der im Vergleich zu einer Eigenentwicklung relativ niedrige Preis, den der Rechnerhersteller für eine Unix-Lizenz zahlen muß.

Dies allein jedoch würde nicht als Erklärung ausreichen. In der Tat stellt Unix, abgesehen von einigen offensichtlichen Schwächen, ein sehr effizientes und benutzerfreundliches Betriebssystem dar. Das Gegenargument, Unix entspreche nicht dem, was man von den herkömmlichen Betriebssystemen her kennt trifft nicht den Kern des Problems Viele andere Systeme sind eben nicht effizient und benutzerfreundlich.

Wesentliche Aspekte bei der kommerziellen Nutzung von Betriebssystemen sind die Betriebs- und Datensicherheit. Welche Leistungen bietet Unix auf diesem Gebiet?

Als Unix noch nicht von AT&T vertrieben wurde, war in der mit dem System (damals noch Version 7) gelieferten Dokumentation ein Aufsatz von Dennis Ritchie enthalten, in dem die Sicherheitsprobleme leidenschaftslos und klar mit allen Vor- und Nachteilen beschrieben wurden. Warum AT&T den Aufsatz aus der Systemdokumentation entfernt, ist nicht ganz klar, denn im Vergleich mit anderen Systemen schneidet Unix nicht schlecht ab.

Wie in den meisten anderen Betriebssystemen wird als Ausweis für die Zugangsberechtigung zum System ein Passwort verwendet. Gerät dieses Passwort in fremde Hände, so sind alle anderen Schutzmechanismen wirkungslos.

Auch Systemdump enthüllt kein Passwort

Unix treibt relativ hohen Aufwand, um das Passwort eines Benutzers zu schützen. Beim Login werden die eingetippten Zeichen nicht angezeigt, um das Erkennen einem daneben stehenden Fremden so schwer wie möglich zu machen.

Die Passwörter selbst werden auch an keiner Stelle im Betriebssystem im Klartext aufbewahrt; selbst ein vollständiger Systemdump zeigt nie, auch dem Eingeweihten nicht, die Passwörter im Klartext.

Die zur Verschlüsselung verwendete Methode entspricht einem während des zweiten Weltkrieges entwickelten Verfahren: Emuliert wird eine Enigma mit einem Rotor und 127 Elementen. Es existieren Verfahren, um solche Verschlüsselungen zu "knacken"; sie sind jedoch nur wenigen bekannt und erfordern unverhältnismäßig hohen Aufwand.

User vertrieben - Systemzugang frei

In der Praxis viel gefährlicher sind die banalen Methoden. Man codiere ein Programm, das auf den Bildschirm schreibt: "Bitte einloggen", eine Benutzerkennung einliest, nach dem Passwort fragt und dann ausgibt:" System nicht verfügbar, bitte später versuchen." Man starte dieses Programm auf einem häufig frequentierten Terminal und warte auf die Ankunft der Opfer. Dieses Verfahren funktioniert auf allen uns bekannten Systemen, nicht nur für Unix.

Die von Unix angebotenen Schutzmechanismen gegen unberechtigtes Lesen und Verändern von Datenbeständen können ansonsten als das vollkommenste bekannte Verfahren angesehen werden. Die Benutzer eines Unix-Systems sind in drei Kreise aufgeteilt: Besitzer einer Datei (der, der sie angelegt hat), die Gruppe von Anwendern, zu denen der Besitzer gehört (zum Beispiel die Mitarbeiter eines Projektes) und alle anderen.

Für jede dieser drei Kategorien können unabhängig voneinander die Rechte "lesen", "schreiben" und "ausführen" individuell vergeben werden. Auf diese Art wird verhindert, daß die Gruppenmitglieder Einsicht in die Daten anderer nehmen, sie aber trotzdem einer Person in ihrer Gesamtheit zur Verfügung stehen.

In anderen Betriebssystemen ist der Schutz von Programmen gegen Raubkopien unter Umständen schwer möglich. Um ein lizensiertes Unix-Softwareprodukt gegen unberechtigte Anwendungen zu schützen, wird nur für eine Gruppe das Ausführungsrecht und nur dieses vergeben.

Es sind keine Verfahren bekannt, um diesen Dateischutz zu umgehen (abgesehen vom Passwortklau). Die langjährige Anwendung in Universitäten und Forschungsinstitutionen, wo Studenten und Wissenschaftler das "Knacken" von fremden Dateien oft als Sport betreiben, hat alle Schwachstellen eliminiert.

Unix stellt jedoch keine eingebauten Mechanismen zur Kontingentierung des Plattenplatzes oder der Rechenzeit zur Verfügung. Damit besteht die Möglichkeit, daß durch Verschwendung von Ressourcen andere Anwender in ihrer Arbeit behindert werden.

Kommandosprache nach Fähigkeit gestaffelt

Teil des Unix-Systems ist eine sehr mächtige Kommandosprache, die für qualifizierte und disziplinierte Anwender gedacht ist. Auf der Ebene dieser Kommandosprache ist es sehr einfach möglich, mit drei oder vier Zeilen das System lahmzulegen.

Diese Kommandosprache ist jedoch nicht jedem User zugänglich. Ein Benutzer, der nur bestimmte Applikationen benötigt, erhält auch nur Zugriffsrecht auf diese Programme so daß die Möglichkeiten auch den Fähigkeiten des Anwenders entsprechen.

Das Unix-Betriebssystem kann als stabil und von der Software her als ausfallsicher angesehen werden. Uns sind Installationen mit mehr als 16 angeschlossenen Terminals bekannt, die jahrelang als Hilfsmittel zur Programmentwicklung im Einsatz waren, ohne einen softwarebedingten Ausfall zu verzeichnen.

Eine der häufigsten Ursachen für Systemausfall sind Stromunterbrechungen, gegen die insbesondere Unix ohne entsprechende Hardwareunterstützung sehr "empfindlich" ist. Zur Optimierung der Plattenzugriffe werden Datenblöcke in einer Art "Software-cache" zwischengespeichert und nur auf Anforderung oder in Intervallen von etwa 30 Sekunden auf die Platte zurückgeschrieben. Beim Stromausfall können so Inkonsistenzen auf der Platte entstehen die nur von qualifizierten Mitarbeitern beseitigt werden können. Die Geräte der verschiedenen Hersteller sind indes unterschiedlich stark gegen diese Fehlermöglichkeit gesichert.

Eine der überraschendsten Schwächen des Unix-Systems ist jedoch das Fehlen eines Mechanismus zum Fileoder Record-Locking, das heißt, zum Schutz gegen gleichzeitiges Schreiben mehrerer Benutzer auf ein File.

Warum auch in der neuesten Version von Unix, dem "System V", kein solches Feature enthalten ist bleibt das Geheimnis von AT&T. Die sinnvollste Lösung des Problems, auch aus anderen Gründen empfehlenswert, ist der Einsatz eines Datenbanksystems, wie etwa das in Deutschland von SCS angebotene "Unify".

Das Unix-Betriebssystem ist im Vergleich zu anderen Systemen relativ sicher und bietet gute Schutzmöglichkeiten. Die Art und Weise, wie dieser Schutz implementiert werden muß, ist jedoch besonders im Hinblick auf den Schutz gegen Ressourcenverschwendung - anders als in herkömmlichen Systemen - nicht direkt implementiert.

Statt dessen werden Möglichkeiten bereitgestellt, dem Benutzer entsprechend seinen Fähigkeiten und Notwendigkeiten eine eingeschränkte Zahl von Systemdiensten anzubieten.

Die heute noch existierenden Schwachstellen in Unix-Systemen Iassen sich alle durch den Einsatz eines Datenbanksystems beseitigen.

Jürgen Poppensieker ist geschäftsführender Gesellschafter der Quantum Gesellschaft

für Software mbH, Dortmund.