4. Windows NT 4.0

4.1. Unterschiede zwischen Workstation und Server

Nach Aussagen verschiedener Microsoft Mitarbeiter (zum Beispiel Mark Murray) existieren über 700 Unterschiede zwischen Windows NT Workstation (NT-WS) 4.0 und Windows NT Server (NT-S) 4.0. NT-WS würde nur bis zu 10 gleichzeitige Webverbindungen zulassen und es gäbe keinen Weg, ein NT-WS in ein NT-S umzuwandeln, da im Sourcecode diverse #ifdef-Statements enthalten sind. Die Folge davon wären zwei völlig unterschiedlich kompilierte Kernel mit zum Beispiel unterschiedlichen Cache-Algorithmen und Multitasking-Prioritäten. Desweiteren sind im NT-S zusätzliche Programme, Services und Dienste enthalten:

Es bestände auch nicht die Möglichkeit, mit einem Web-Server eines Drittanbieters mehr als 10 Verbindungen mit einem NT-WS zu ermöglichen. Dafür müßte dann NT-S erworben werden, in dem natürlich schon ein Web-Server von Microsoft enthalten ist. Falls diese Fakten stimmen, besteht trotzdem die Frage, ob der riesige Preisunterschied gerechtfertigt ist.

Dr. Mark Russinovich von Open System Resources Inc, ein Experte auf dem Gebiet Windows NT, hat die beiden Versionen hinsichtlich ihrer Binärkompatibilität untersucht. Er beschränkte sich aber nicht nur auf den Vergleich der Dateinamen, der Dateigröße und des Erstellungsdatums. Der Vergleich erfolgte zusätzlich auf Byteebene. Er hat dabei interessante Erkenntnisse gewonnen. Der eigentliche NT-Kernel NTOSKRNL.EXE ist bei beiden Versionen identisch! Das betrifft auch alle anderen im Lieferumfang enthaltenen Binärdateien (EXE, DLL, Gerätetreiber, ...), wie zum Beispiel HAL.DLL, NTLDR, KERNEL32.DLL, NTDLL.DLL, SRV.SYS, TCPIP.SYS, WINSOCK.DLL, NTLANMAN.DLL, RASAUTH.DLL, NTFS.SYS und so weiter, die immerhin die Basis von NT darstellen. Die einzigen Unterschiede existieren in den Dateien, die das Setup steuern, also TXTSETUP.SIF und INF-Dateien. Dabei sind bei NT-S ca. 100 Dateien mehr im Lieferumfang enthalten als bei NT-WS. Allerdings sind das die Files, die den zusätzlichen Lieferumfang (siehe oben) von NT-S ausmachen. Die Unterschiede im Setup rühren also daher, daß die zusätzlichen Files installiert werden müssen. Die Folge davon ist, daß ein NT-WS mit den Zusatztools von NT-S exakt ein komplettes NT-S darstellt.

Die Abfrage, um welche Version es sich handelt, wird beim Hochfahren ausgeführt und eventuell zur Laufzeit, wenn lizenzrechtliche Fragen zu klären sind. David Solomon hat herausgefunden, daß die Funktion MmIsThisAnNtAsSystem() die installierte Version zurückliefert. Nach Dr. Mark Russinovich ist der Rückgabewert direkt in der Registry gespeichert, genauer in zwei Einträgen:

Ein normaler Benutzer kann diese Einträge nicht ändern, da sie vom System geschützt sind. Ein Versuch mit REGEDT32.EXE führt zu folgender Meldung: "The system has detected tampering with your registered product type. This is a violation of your software license. Tampering with product type is not permitted." Allerdings existiert ein Tool namens NT-Tune, welches das Setzen von Registry-Einträgen nicht mit Systemaufrufen durchführt. Mit Hilfe dieses Programms ist es möglich, diese Werte doch zu ändern. Leider konnte der Autor das Vorgehen nicht testen, da er nirgendwo das Programm beziehen konnte. Aus rechtlicher Sicht ist es auch besser so. Außerdem differieren die Lizenzbestimmungen der Versionen. Es ist demzufolge nicht legal, diese Änderungen (wie auch immer), durchzuführen. Bei Erfolg ändert sich das Bild in der Taskleiste von "Windows NT Workstation" in "Windows NT Server" und das Kommando NET ACCOUNT liefert:

Computer role: SERVER.

Die oben erwähnten Fakten betreffen in dem gleichen Maße auch die Unterschiede (?) zwischen Windows NT Workstation 3.51 und Windows NT Server 3.51. Jedoch ist hier nur ein Eintrag in der Registry für die Versionen zuständig. Dieser kann allerdings von jedem Endbenutzer mit Hilfe von REGEDT32.EXE geändert werden.

Nach Bekanntwerden dieser Tatsachen äußerte sich ein offizieller Microsoft Mitarbeiter:

"Der einzige Unterschied zwischen Männer und Frauen ist ein Y-Chromosom!" Aus oben genannten Gründen ist es also unerheblich, ob NT-WS oder NT-S im Rahmen dieser Arbeit Verwendung findet. Aus Kostengründen empfielt und benutzt der Autor Windows NT Workstation. Die angesprochenen Fakten können auf einer Seite des O’Reilly-Verlages nachgelesen werden (http://www.ora.com).

 
4.2. Sicherheitslücken nach der Installation

Während des Installationsvorganges hat man die Wahl zwischen verschiedenen Installationsweisen. Aus Gründen der besseren Abstimmbarkeit des Systems ist die benutzerdefinierte Installation vorzuziehen. Dabei kann man viele Optionen deaktivieren, die zum Betrieb nicht unbedingt nötig sind. Da der Rechner als Firewall eingesetzt werden soll, eliminiert man dadurch auch eventuelle Sicherheitslücken in den einzelnen Programmen. Desweiteren wird erheblich Speicherplatz gespart. Auf einem Firewallsystem sollte grundsätzlich nur das Nötigste installiert sein. Die folgende Tabelle gibt einen Überblick über alle installierbaren Pakete sowie deren Inhalt. Nur die fettmarkierten Optionen sollten aus den oben genannten Gründen eingebunden werden.
 
Pakete Optionen
Accessibility Options hier sind Grundelemente enthalten, die benötigt werden
Accessories Calculator, Charmap, Clipboardviewer, Clock, Wallpaper, Dokumentation-Templates, Imaging, Mousepointers, Object Packager, Paint, Quick View, Screen Saver, WordPad
Communication Chat, Hyperterminal, Phone Dialer
Games Freecell, Minesweeper, Pinball, Solitaire
Multimedia CD-Player, verschiedene Sound Scheme, Volume Control, Sound Recorder, Sample Sounds, Media Player
Windows Messaging Internet Mail, MS Mail, Windows Messaging
Tabelle 4-1: Überblick Installationspakete

 
4.2.1. Nutzer und Gruppen

Das Installationsprogramm legt standardmäßig die Nutzer Administrator und Guest sowie die Gruppen Administrators und Guests an. Bevor der Rechner an das Netz angeschlossen wird, sollten unbedingt diese Nutzernamen geändert werden. Vor der Umbenennung und der Paßwortvergabe empfielt sich das Erstellen einer Notfalldiskette (RDISK.EXE /S). Damit kann später das Benutzerkonto wiederhergestellt werden. Eine Umbenennung der Gruppennamen ist nicht möglich. Auch das Löschen dieser vordefinierten Nutzer und Gruppen scheitert. Infolgedessen sind einem eventuellen Angreifer mindestens 2 Gruppen bekannt, auf die er seine Aktionen ausrichten kann. Die vordefinierten Benutzer können jedoch deaktiviert werden. Dazu kommen noch weitere vordefinierten Gruppen, die für bestimmte Systemdienste vorgesehen sind und die ebenfalls als Ziel von Einbrüchen lohnenswert erscheinen:

Die soeben erläuterte Umbenennung des Administratoraccounts darf nicht vorgenommen werden, wenn die Raptor Eagle Firewall (siehe Punkt 6.2.) zum Einsatz kommen soll.

 
4.2.2. Filesystem

Grundsätzlich sollte als Filesystem immer NTFS (New Technology File System) und nicht FAT (File Allocation Table) eingesetzt werden. Für das FAT-System spricht eigentlich nur die Tatsache, daß es auch von anderen Betriebssystemen gelesen und geschrieben werden kann. Im Sinne eines sicheren Rechners oder einer Firewall ist diese Eigenschaft sogar als Nachteil anzusehen. Mittels einer DOS-Bootdiskette kann man sich bei einem FAT-System ohne Aufwand Zugriff auf sensible Dateien verschaffen. Außerdem ist das FAT-System vollkommen in seinem Aufbau bekannt. Es ist demzufolge nicht sehr schwierig, Tools zu entwickeln, um ohne Bootdiskette auf die Platte zuzugreifen. Der Aufbau des NTFS-Dateisystems ist im allgemeinen nur Entwicklern bekannt, die gesonderte Verträge mit Microsoft abgeschlossen haben. Die Existenz von Tools zum schreibenden Zugriff auf NTFS wird allerdings nicht geleugnet.

Die weiteren Vorteile von NTFS sind:

Ein Sicherheitsmangel stellen die nach der Installation vorhandenen Zugriffsrechte dar. So hat zum Beispiel Everone Vollzugriff auf das %Systemroot%-Verzeichnis (im allgemeinen WINNT). Die Tabelle 4-2 gibt einen Überblick darüber, wie das Dateisystem abgesichert werden sollte (Quelle [29]). Auf der Firewall sollten jedoch die Benutzer JEDER (Everyone) und HAUPTBENUTZER keine Rechte auf alle Dateien und Verzeichnisse besitzen.
 
Verzeichnis / Datei Rechte
%Systemroot% und alle Unterverzeichnisse ADMINISTRATOREN: Vollzugriff
ERZEUGER/INHABER: Vollzugriff
JEDER: Lesen
SYSTEM: Vollzugriff
%Systemroot%\Repair ADMINISTRATOREN: Vollzugriff
%Systemroot%\System32\Config ADMINISTRATOREN: Vollzugriff
ERZEUGER/INHABER: Vollzugriff
JEDER: Lesen
SYSTEM: Vollzugriff
%Systemroot%\System32\Spool ADMINISTRATOREN: Vollzugriff
ERZEUGER/INHABER: Vollzugriff
JEDER: Lesen
HAUPTBENUTZER: Ändern
SYSTEM: Vollzugriff
%Systemroot%\Cookies
%Systemroot%\Forms
%Systemroot%\Occache
%Systemroot%\Profiles
%Systemroot%\Sendto
%Systemroot%\Temporary Internet Files
ADMINISTRATOREN: Vollzugriff
ERZEUGER/INHABER: Vollzugriff
JEDER: Lesen
SYSTEM: Vollzugriff
\BOOT.INI, \NTDETECT.COM, \NTLDR ADMINISTRATOREN: Vollzugriff
SYSTEM: Vollzugriff
\AUTOEXEC.BAT, \CONFIG.SYS ADMINISTRATOREN: Vollzugriff
SYSTEM: Vollzugriff
JEDER: Lesen
Tabelle 4-2: Absichern des Filesystems und der Startdateien

 
4.2.3. Dienste oder Services

Nach der Installation und Netzwerkanbindung sind diverse Services eingetragen (Control Panel à Services). Einige davon sind für den Betrieb nicht unbedingt erforderlich oder wurden installiert, obwohl die entsprechende Hardware nicht verfügbar ist. Aus Gründen der Systemsicherheit (eventuelle Bugs oder Sicherheitslecks in den Services) sollten alle nicht benötigten Services deaktiviert werden. Die überflüssigen erkennt man in der Regel am Namen und der Startart "Manual". Für den Betrieb als Firewall empfielt der Autor folgende Services zu deaktivieren:

 
4.2.4. Geräte

Die installierten Gerätetreiber werden in unterschiedliche Klassen unterteilt. Hier nur einige Beispiele:

Ähnlich wie bei den Services sind auch hier viele Treiber bzw. Treiberklassen installiert, die nicht benötigt werden. Das Entfernen dieser Treiber gestaltet sich jedoch als nicht so einfach. Es reicht nicht, nur die betreffenden Dateien zu löschen. Eventuell müssen noch diverse Einträge aus der Registry entfernt werden. Der Autor empfiehlt, die Löschkandidaten zuerst aus der Registry zu entfernen und dann das System auf Lauffähigkeit und Stabilität zu testen (neu booten). Wenn vorher die Registry gesichert und eine Rettungsdiskette erstellt wurde, kann das System bei Instabilität oder anderen Schwierigkeiten wieder hergestellt werden. Bei Erfolg können dann die betreffenden Dateien bedenkenlos gelöscht werden. Dieser Weg ist sicherer als zuerst die Dateien zu löschen, da bei Bootschwierigkeiten keine Möglichkeit mehr besteht, die Datei wieder herzustellen oder zurück zu kopieren.

 
4.3. Bekannte allgemeine Sicherheitslücken von NT

Dieser Abschnitt widmet sich den bekannten Sicherheitslücken und Bugs, die direkt das Betriebssystem MS Windows NT betreffen. Da sicher in nächster Zeit weitere Lücken bekannt werden dürften, konnten nur die zur Zeit des Erstellens dieser Arbeit bekannten berücksichtigt werden. Die weiter unten stehende Aufzählung stellt nur eine kleine Auswahl der vom Autor am wichtigsten befundenen Bugs dar. Die Entscheidungskriterien waren:

Für alle hier aufgeführten Fakten gibt es Bugfixes zum Download von der Microsofthomepage (siehe Verzeichnis von Internetadressen). Die Bugfixes beziehen sich alle auf ein vorinstalliertes ServicePack3.

Der Internet Information Server Bug:

Der Internet Information Server stürzt ab, wenn ein Browser eine CGI-Anfrage an den Server schickt, die zwischen 4 und 8 KB Daten in der URL enthält. Da die Firewall auch als Web-Server dienen könnte, sollte dieser Bugfix installiert sein. Normalerweise laufen auf einer Firewall keine Server. (ISS-FIXI.EXE)
 
Zugriffsverletzung in der Datei LSASS.EXE: Dieser Fehler tritt auf, wenn ein entfernter Host eine Verbindung zu der Local Security Authority mittels einer Named Pipe aufbaut und eine falsche Buffergröße (Fragmentlänge) angibt. Die Folge davon ist eine Zugriffsverletzung in der Datei LSASS.EXE. Danach ist das lokale Anmelden nicht mehr möglich und einige Administratortools, wie zum Beispiel der Event Viewer oder der Server Manager, funktionieren nicht mehr. (LSA-FIXI.EXE) Absturz des WINS durch falsche UDP Frames: Wenn WINS ein Paket in einem falschen Format bekommt, zum Beispiel ein Label mit mehr als 63 Oktetts, stürzt WINS ab, ohne daß dies bemerkt wird. Die Folge davon sind Probleme in der Domainsynchronisation, im Domainbrowser oder in den Domainverbindungen. Im Event Viewer erscheint die Meldung: Event ID : 4119
Source : WINS
Type : Error
Der Fehler kann mittels WINSFIXI.EXE behoben werden.
Denial-of-Service Attack gegen die Simple TCP Services: Eine starke Verminderung der Bandbreite verursacht der folgende Denial-of-Service Angriff (siehe auch Punkt 7.3.7.). Wenn eine große Menge von UDP Datagrammen an eine Subnetzbroadcastadresse geschickt werden, die als Zielport 19 (Chargen) und eine gespoofte IP Adresse besitzen, antworteten die Simple TCP Services auf jeden dieser Broadcasts und generieren hiermit eine ebenso große Menge an UDP Datagrammen. Mit einen Netzwerkanalyser oder Sniffer kann man dem Angriff auf die Spur kommen. Er macht sich mit vielen UDP Datagrammen am Port 19 bemerkbar. Das Programm CHARGENI.EXE behebt dieses Problem. Windows NT Performance bricht nach einem Land Attack ein: Der Land Attack Angriff sendet SYN-Pakete (siehe auch Tabelle 3-6) mit der gleichen Quell- und Zieladresse und dem gleichen Quell- und Zielport. Die Folge davon ist, daß der Computer annimmt, er sendet diese Pakete an sich selbst. Während der Computer sich selbst Antworten schickt, sinkt die Performance. Ungefähr nach einer Minute arbeitet er wieder normal. Mittels dem Bugfix LANDFIXI.EXE läßt sich das Problem beheben. Stop 0A in TCPIP.SYS: Falls ein Sender "Out of Band"-Daten schickt, wird das URGENT-Bit im TCP-Header gesetzt. Der Empfänger nutzt den URGENT-Pointer (Dringlichkeitszeiger; siehe auch Punkt 3.3.1.3.), um festzustellen, wo im Datensegment die dringenden Daten enden. Wenn dieser Zeiger auf das Frameende zeigt, wird obiger Fehler ausgelöst, da Windows NT voraussetzt, daß noch normale Daten folgen. Zum Fixen dieses Bugs müssen eine der beiden Bugfixe ausgeführt werden. (OOB-FIX.EXE oder ICMPFIXI.EXE) Falsches ICMP-Datagramm läßt NT abstürzen: Bei Empfang eines verfälschten ICMP-Datagramms von einem Client stürzt Windows NT ab. (ICMPFIXI.EXE) GetAdmin Tool gibt Nutzer Administratorrechte: Im Internet ist obiges Tool unter dem Dateinamen GETADMIN.EXE verfügbar. Es basiert auf einem Problem in einer Kernelroutine, die ein globales Flag (NtOpenProcessToken) setzt. Mit Hilfe dieses Flags kann jeder Nutzer auf alle Prozesse, die gerade laufen, zugreifen, inklusive allen Prozessen, die im Security Context des Systems laufen (zum Beispiel WinLogon). Hat man einmal einen solchen Prozeß in der Hand, kann man ohne weiteres Threads mit den Rechten dieses Prozesses starten. Genau dies macht sich GETADMIN.EXE zu nutze, indem es sich an den WinLogon-Prozeß hängt und mit Standard-API-Aufrufen den Nutzer in die Administratorengruppe aufnimmt. Das ganze funktioniert allerdings nur, wenn der entsprechende Nutzer das erweiterte Recht "Debug Programs" hat. Die Bugfixe ADMNFIXI.EXE und ADMNSYMI.EXE müssen beide ausgeführt werden, um das Problem zu lösen. Ausschalten der LM Authentifikation: Dies ist kein Fehler an sich. Von Microsoft gibt es einen Patch, der die Authentifikation mittels LanManager an einem NT Rechner ausschaltet. Danach funktioniert nur noch die Windows NT Authentifikation, wenn dies in der Registry eingestellt wurde. Dazu muß das Tool DISBLLMI.EXE ausgeführt werden. Danach sind folgende Werte in der Registry unter HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\LSA zu ergänzen: Es bedeuten: Viele Bugs und Sicherheitslücken werden nie entdeckt oder von Microsoft offengelegt. Das sie existieren, beweist das regelmäßige Erscheinen der ServicePacks. Zur Zeit, als diese Arbeit geschrieben wurde, war ServicePack3 aktuell. Für die Vorgängerversion von Windows NT (3.51) existieren allein 5 ServicePacks. Um immer das Aktuellste zu besitzen, sollte man - wie auch der Autor - die englische Version von Windows NT benutzen, da für diese Version die ServicePacks zuerst veröffentlich werden. Die anderen folgen meist Wochen später. Unter der Adresse:

http://www.pop-nidda.de/holger/ntsec.htm

sind weitere unzählige Informationen zu finden, was die Sicherheit und Stabilität von Windows NT betrifft. Das hier zusammengetragene Wissen ist enorm und sehr übersichtlich in Kategorien geordnet.



© by Stephan Pilz