Der Angriff auf VAX/VMS
Marc Ruef <marc.ruef@computec.ch>

Im historischen Jahr 1978 produzierte DEC die erste VAX, die Digital VAX 11/780, welche für rund $ 200'000 zu erstehen war. Diese damalig revolutionär schnelle und leistungsfähige Maschine bot eine 32-Bit-Architektur und 1 MIPS Leistung. Aus marktstrategischen Gründen wurde die 11/780 so populär, dass sie sich als Benchmark-Maschine für den MIPS-Index etablieren konnte und somit zum Standart für die Messungen aller späteren Workstations wurde. Und dies trotz die IBM 370/158 in Sachen Geschwindigkeit und Leistung vergleichbare Werte erreichte. Eine Sache machte die VAX zu einer Besonderheit: Sie konnte zwei Betriebssysteme unterstützen. Das eine war das damals schon recht bekannte Unix, und das andere war VMS.

Eine der ersten VAX-Maschinen

Das VMS-Betriebssystem ist einzigartig, weist dennoch gewisse Ähnlichkeiten mit anderen auf. Das Einloggen funktioniert ähnlich wie bei einem Unix-System. Auch nach dem Überstehen des Login- und Passwort-Prompts dürften einigen Benutzern der Shell-Prompt in der Form des Dollarzeichens bekannt vorkommen. Neben einer komplett anderen Verzeichnishierarchie werden auch ganz andere Kommandos zur Steuerung des Terminals genutzt:
 

Befehl unter VMS Befehl unter Unix Befehl unter DOS Zweck
HELP [Argumente] help [Argumente] help [Argumente] Ohne Argumente führt dieser Befehl unter VAX zum Prompt Topic?, wobei man nun nachträglich ein Thema spezifizieren muss.
COPY [Quelle Destination] cp [Quelle Destination] xcopy [Quelle Destination] Kopiert eine oder mehrere Dateien in eine andere Datei oder ein Verzeichnis.
DIRECTORY ls -la dir Ausgabe des aktuellen Inhalts des momentanen Verzeichnisses und der mit den Dateien verbundenen Attributen.
MAIL mail nicht vorhanden Dieser Befehl ruft die Mail-Schnittstelle auf.
LOOK ps nicht vorhanden Dieser Befehl zeigt Ihre momentan laufenden Prozesse.

Die Unix-Anwender und Benutzer von doskey unter DOS kennen das Feature der History aller vorangegangener Shell-Eingaben, welches natürlich auch bei VMS Verwendung findet. Dieser Befehlspuffer kann hierbei durch die Tastenkombination [CTRL]+[B] ausgelesen werden. Weiterhin gibt es natürlich die gewohnten Tastenkombinationen zum Stoppen, Auflisten und Wiederaufnehmen von Prozessen, Aufrufen aktueller Benutzerstatistiken und Editieren der aktuellen Befehlszeile.

Die Sicherheitsarchitektur

Es sind noch immer zahlreiche VAX-Server im Internet vertreten, und aufgrund der ausgereiften Sicherheitsarchitektur des besonders bei älteren Semestern beliebten Betriebssystems, dürfte sich dies nicht nennenswert in der nahen Zukunft ändern.  Digital realisierte mit OpenVMS einen gebührenden Nachfolger und nun auch für Alpha-Rechner nutzbar. Trotzdem sind die Mehrzahl der im Internet antreffbaren Rechner ältere VAX-Hosts; vornehmlich in Universitäten stationiert, um ein Durchforsten der Bilbiotheks-Kataloge zu ermöglichen. Meiner Einschätzung nach sind diese VAX-Kisten mindestens so sicher wie ihre Unix-Derivate, was vor allem mit den vielen Erfahrungen im VAX-Bereich zu tun haben dürfte. Wenn es ein Sicherheitsloch in einer solchen Maschine gibt, dann mit ziemlicher Wahrscheinlichkeit darum, weil der Administrator es übersehen hat.

Die Sicherheitsaspekte wurden bei VMS sehr gut realisiert, und so finden sich zahlreise Methoden zur Skalierung der Zugriffskontrolle. Jene Permissions können mindestens so flexibel gesetzt werden, wie man sich dies von Novell NetWare gewohnt ist, und so lassen sich unter anderem folgende Werte definieren:

Dies ist in der Tat nur ein kleiner Bruchteil der Skalierbarkeit durch Zugriffskontrollen in ihren verschiedensten Formen. Es gibt mehrere Ebenen von Privilegien, die auch Gruppen zugeteilt werden können.  Die Zugriffskontrolle ist bei VAX ein sehr komplexes Thema, und aufgrund der vielen Optionen werden schnell Fehler bei der Konfiguration gemacht. Cracker sind sich dessen bewusst, denn oft ist die Komplexität selber ein Sicherheitsrisiko.

Ein VAX- oder beliebiges VMS-System anzugreifen ist etwas ganz anderes, als ein Unix-Host zu attackieren. Zum Beispiel unterscheidet sich das Konzept und die Struktur der Passwortdatei gänzlich zu der der Unix-Systeme. Im Gegensatz werden komplette Benutzerprofile in einer Datei namens SYSUAF (System User Authorisation File) aufbewahrt. Für jeden Benutzer des Systems, auch den Administrator, gibt es einen Datensatz, der definiert, wann und wie ein Benutzer sich in das System einloggen kann. Darunter finden sich auch Informationen zur Passwortalterung, Passwortlänge und Ressourcen-Zusprechung. Ein Benutzer wird anhand eines Benutzer-Identifikationscodes (UIC - user identification code) identifiziert. Eine ähnliche Methode, wie sie auch bei Unix durch GID zum Einsatz kommt. Der Code unter VMS definiert jedoch den Benutzer und die dazugehörige Gruppe zugleich.

Eine solche detaillierte Passwortdatei hat jedoch nicht nur ihre Vorteile. Kann sich ein Cracker kompletten Zugang zu solch einer begehrten System-Datei verschaffen, hängt die Sicherheit des kompletten Systems an einem saidenen Faden.

Ausnutzen der Sicherheitslücken

Im Folgenden möchte ich nun einige wenige bekannte Sicherheitslöcher von VAX/VMS aufführen. Meistens können diese Angriffe auch auf anderen Unix-Derivaten oder Betriebssystemen von Digital Fuss fassen.

Erweiterte Zugriffsrechte durch Mountd

Wenn auf einem beliebigen Digital UNIX innerhalb weniger Sekunden zwei aufeinanderfolgende "mount -d -s"-Kommandos eingegeben werden, und bevor ein anderer Host eine solche Anforderung gemacht hat, wird der Anforderung Folge geleistet. Weitere Informationen finden sich im Artikel von Security Bugware.

Erweiterte Zugriffsrechte durch Monitor-Utility

Bei VMS gibt es ein System-Tool namens Monitor, welches Klassen von systemweiten Leistungsdaten überwacht.

Autorisierte lokale Benutzer eines Systems können unter bestimmten Voraussetzungen mit Hilfe dieses Programms ihre Privilegien erweitern.

Weitere Informationen zu dieser Sicherheitslücke finden sich im CERT-Advisory "CA-93:16 VMS Monitor Vilnerability" und dem Nachtrags-Advisory und dem Defense Data Network Advisory 9223.