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:
-
Microsoft Internet Informations Server,
-
DNS,
-
WINS,
-
DHCP, ...
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:
-
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ProductOptions\
ProductType - Inhalt "WinNT" oder "ServerNT"
-
HKEY_LOCAL_MACHINE\System\Setup\SystemPrefix - Dieser Wert enthält
zwei Doppelworte. Das Bit, das mit der Maske 0x04000000 repräsentiert
wird, muß bei "ServerNT" gesetzt sein und bei "WinNT" nicht. Treten
hier Unterschiede auf, verabschiedet sich NT mit einem "Blue Screen".
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:
-
Backup Operators = Mitglieder können die Dateirechte umgehen, um Backups
auszuführen
-
Power Users = Mitglieder können die Freigabe von Dateien/Verzeichnissen
und Druckern kontrollieren
-
Replicator = dient zur Dateireplication in einer Windows NT Domäne
-
Users = Mitglieder sind normale Nutzer
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:
-
intern ähnlich eines Binärbaumes organisiert è
schnelles Finden von Dateien, fast keine Fragmentierung
-
lange Dateinamen
-
Dateigrößen bis zu 4 GB und Partitionsgrößen
bis zu 2 TB
-
unter NT ist nur mittels NTFS eine Rechtevergabe auf Dateien und Verzeichnisse
möglich
-
interne Sicherheitsmechanismen, die bei Absturz oder Stromausfall Datenverlust
vorbeugen:
-
hotfixing Mechanismus; checkt beim Speichern on-the-fly auf defekte
Sektoren
-
Existenz des Log-File-Record auf jedem NTFS-Volume; protokolliert alle
Disktransaktionen è bei Ausfall können
alle Aktionen wiederholt werden
-
eingebaute Kompression, die sich auch nur auf einzelne Dateien anwenden
läßt
-
Bildung von Stripesets (RAID-0 und RAID-5) möglich
-
Bildung von Volume-Sets (mehrere kleine Partitionen zu einer großen
zusammenfassen)
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:
-
Computer Browser (zeigt alle verfügbaren Rechner im Netzwerk an)
-
ClipBook Server (Zwischenablage)
-
DHCP Client (der Firewall müssen permanente IP-Adressen vergeben werden)
-
UPS (falls keine USV vorhanden)
-
Telephony Service
4.2.4. Geräte
Die installierten Gerätetreiber werden in unterschiedliche Klassen
unterteilt. Hier nur einige Beispiele:
-
Primary disk
-
SCSI miniport
-
Video
-
PCI Configuration
-
System Bus Extender
Ä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:
-
der Computer soll als Firewall eingesetzt werden
-
der Computer soll nur das TCP/IP Protokoll unterstützen
-
der Computer soll eventuell Internetdienste bereitstellen
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:
-
Name: LMCompatibilityLevel
-
Typ: REG_DWORD
-
Wert: 0, 1 oder 2
Es bedeuten:
-
Level 0: LM und NT Authentifikation
-
Level 1: LM und NT Authentifikation nur bei Anfrage
-
Level 2: keine LM und nur NT Authentifikation
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.