Wer kennt es nicht? Du musst einen Server aufsetzen. Du erstellst eine VM, legst die Windows Server ISO ein, drückst ein paarmal auf Weiter, vergibst noch schnell ein lokales Admin Passwort und zack, alles läuft. Der Server ist einsatzbereit, alles funktioniert und er kann auch mit anderen Systemen kommunizieren. Fertig, Arbeit! Aber bist du dir sicher?
Wenn ich Microsoft mit einem Wort beschreiben müsste, dann wäre es Kompatibilität. Windows ist darauf ausgelegt, dass du selbst Jahrzehnte alte Software, auf den neuesten Versionen verwenden kannst.
Wusstest du, dass du mit Windows 10 (in der 32-Bit-Variante) immer noch 16-Bit-Programme ausführen kannst? Ja, auch ohne Virtualisierung, direkt und nativ. Das letzte 16-Bit-Betriebssystem, das Microsoft veröffentlicht hat, war Windows 3.11 und kam 1993 raus.
Warum sichert Microsoft seine Betriebssysteme nicht ab?
Windows ist sehr beliebt, was die Zahl der Nutzer angeht. Leider veröffentlicht Microsoft keine Statistiken für Server-Betriebssysteme. Aber man schätzt, dass es weltweit 1,5 Milliarden Windows-Clients gibt. Wenn Microsoft auch nur eine Klitzekleinigkeit ändert, sind Millionen Nutzer betroffen.
Stell dir vor, sie würden stattdessen sogar die Daumenschrauben anziehen und 30 Jahre alte Funktionen wie NTLMv1 abdrehen. Wenn das passiert, tauchen die amerikanischen U-Boote wahrscheinlich nie wieder auf, Kraftwerke rund um den Globus stehen still und Großmutters Lieblings-Etikettendruck-Software würde einen Fehler schmeißen.
Das Resultat? SCHEISS WINDOWS!!! Ein Shitstorm zieht auf. Wie immer, wenn Microsoft die Sicherheit der Kompatibilität vorzieht. Egal, ob es damals war, als sie die WHQL-Zertifizierung für 64-Bit-Treiber mit Windows Vista eingeführt haben, oder jetzt, seit Windows 11 TPM 2.0-Chips und sicherere CPU-Generationen vorschreiben.
Microsoft versucht, alle Kunden glücklich zu machen. Von der Etiketten-Oma, über öffentliche Auftraggeber, bis zu den Enterprise-Kunden. Es ist wichtig, dass die User Experience für alle gleichmäßig ist. Windows XP Home von vor 20 Jahren kann man ohne Weiteres mit einem Datacenter Server 2025 nutzen.
Aber wir sollten auch fair sein und sagen, dass das kein exklusives Problem von Microsoft ist. Sowohl Linux- als auch macOS-Systeme wollen auch möglichst kompatibel sein. Denen fällt es aber scheinbar leichter, Brücken zur Vergangenheit abzubrechen.
Welche Schwachstellen gibt es denn?
Ich gebe euch hier einfach mal ein paar Beispiele in zufälliger Reihenfolge. Es kann sein, dass einige davon bereits in neueren Builds und Major Versionen deaktiviert sind. Aber die wenigsten Firmen nutzen gleich von Anfang an die neuesten Technologien.
- Der erste User hat volle Admin-Rechte
- UAC ist lasch konfiguriert
- RDP ist auf Servern ohne NLA (Network Level Authentication) aktiviert
- SMBv1 ist aktiviert (mittlerweile nicht mehr)
- Wichtige Audit Logs sind nicht aktiviert
- PowerShell Script Logging ist deaktiviert
- Windows Firewall erlaubt viele eingehende Ports
- LSASS ist nicht gehärtet (RunAsPPL)
- NTLMv1 ist noch immer aktiviert (Seit Windows NT)
- Kerberos ist nicht gehärtet
- Viele nicht benötigte Windows Dienste laufen
- Es gibt keine Account Lockout Policy (Bruteforce möglich)
- PowerShell 2.0 ist aktiviert
Es gibt bestimmt hunderte Fälle, die je nach Umgebung auch schwerwiegend sind. Diese Einstellungen unterstützen Angreifern, Systeme erfolgreich zu hacken, Ransomware zu verteilen und Exploits zu schreiben. Das Schöne daran ist ja, dass jeder Hacker sie nachstellen kann, weil es sich um die Standard-Einstellungen handelt.
Office Makros sind auch ein gutes Beispiel. Die sind zwar nicht Teil des Betriebssystems, aber wenn man die per Default deaktivieren würde, würde die weltweite Finanzbranche zusammenbrechen, weil ihre Excel-Anwendungen dann nicht mehr funktionieren würden.
Was kann ich dagegen tun?
Am einfachsten ist es, die Systeme über gehärtete Golden-Master-Images auszurollen. Das heißt, du kannst deine Server und Clients direkt mit einem neuen Standard versehen, nämlich deinem angepassten Härtungsstandard. Fange lieber bei einer Härtung von 60–80 % im Image an (du willst ja nichts kaputt machen) und steigere dich dann langsam über GPOs weiter. Die kannst du auch besser an die einzelnen Systeme anpassen. Hier sind ein paar der bekanntesten Standards, die dir vielleicht als Orientierung dienen können: CIS, DISA, NSA, Microsoft und BSI.
Im Grunde geht's darum, dass du alles deaktivierst, was du nicht brauchst. Zum Beispiel den Print Spooler (außer auf den Druckservern), die Xbox Live-Dienste und vieles mehr.
Veraltete Protokolle wie NTLMv1, Kerberos ohne AES, PowerShell 2.0, TLS 1.0 / 1.1, SMBv1 solltest du ebenfalls gleich abdrehen, wenn du sie nicht benötigst.
Es ist auch nicht verkehrt, die Berechtigungen auf das Nötigste zu beschränken. UAC ist ganz nett, aber du kannst auch auf deinem Standalone Windows Client als normaler User ohne Admin-Rechte arbeiten. Wenn du welche brauchst, starte die Anwendung einfach mit erweiterten Berechtigungen und gib das Kennwort des Admins ein.
Vergiss dabei auch nicht die lokale Windows Firewall zu härten. Drehe alle eingehenden Ports von Diensten ab, die du nicht unbedingt brauchst. Gerade SMB-Shares auf Clients sind ein Einfallstor, wenn es um Ransomware, oder Lateral Movement geht.
Fazit
Früher hat es vielleicht gereicht, dass ein System funktioniert hat. Heute muss es auch noch sicher sein. Weil die Anforderungen für jede Umgebung anders sind, kann Microsoft in den Standard-Einstellungen keine restriktiven Sicherheitsvorkehrungen umsetzen. Deshalb ist es deine Aufgabe, dich darum zu kümmern.
Deshalb ist es immer eine gute Idee, etwas Zeit in die Härtung vor dem Deployment zu investieren. Das ist einfacher, als später hunderte Systeme umzustellen. 😉