TL;DR
Unternehmen härten ihre Windows-Systeme effektiv durch die konsequente Anwendung von CIS Benchmarks und Microsoft Security Baselines, um Angriffsflächen zu minimieren. Ein zentraler Aspekt ist die Implementierung robuster Account Policies, wie eine Mindestpasswortlänge von 14 Zeichen und die Nutzung von LAPS (Local Administrator Password Solution) für einzigartige lokale Admin-Passwörter auf jedem PC, die in AD-Attributen gespeichert werden. Des Weiteren ist die vollständige Konfiguration erweiterter Audit-Richtlinien entscheidend, um kritische Ereignisse wie Prozess-Erstellung (Event ID 4688) und privilegierte Nutzung zu protokollieren und das Security-Log auf mindestens 1 GB zu erweitern. Diese Maßnahmen bilden eine mehrschichtige Verteidigung gegen Cyberbedrohungen.
Diese Zusammenfassung wurde KI-gestützt erstellt (EU AI Act Art. 50).
Inhaltsverzeichnis (7 Abschnitte)
Windows-Härtung ist keine einmalige Aktion - es ist ein fortlaufender Prozess, der mit Standardkonfigurationen beginnt und schichtenweise Schutzmaßnahmen aufbaut. Dieser Guide zeigt die wichtigsten Härtungsmaßnahmen nach CIS Benchmark und Microsoft Security Baseline.
Baseline und Tools
Microsoft Security Compliance Toolkit (MSCT)
Download: https://www.microsoft.com/en-us/download/details.aspx?id=55319 - enthält Security Baseline für Windows 11, Windows Server 2022 und Edge.
- Policy Analyzer - GUI-Tool: importiert aktuelle Gruppenrichtlinien, vergleicht mit Microsoft-Baseline, zeigt Abweichungen farbkodiert
- LGPO.exe (Local Group Policy Object) - Baseline auf einzelnen Rechner anwenden
PolicyAnalyzer.exe
LGPO.exe /g "Windows 11 Security Baseline\GPOs"
CIS Benchmark
Download: cisecurity.org (kostenlos mit Account)
- Level 1: Standard-Empfehlungen (produktionsgeeignet)
- Level 2: Strikter (kann Kompatibilität beeinflussen)
- CIS-CAT Pro (Assessment-Tool): prüft automatisch Compliance gegen CIS Benchmark, Output: HTML-Report mit Score (0-100%)
Account Policies
Passwort- und Kontosperrungsrichtlinien (GPO-Pfad: Computer Configuration → Windows Settings → Security Settings → Account Policies)
Password Policy (Passwortrichtlinie)
| Einstellung | Wert |
|---|---|
| Minimum password length | 14 (CIS Level 1: 14+) |
| Password complexity | Enabled (Groß/Klein/Zahl/Sonderzeichen) |
| Maximum password age | 365 days (oder 0 für "nie" wenn MFA!) |
| Minimum password age | 1 day (verhindert sofortiges Zurücksetzen) |
| Enforce password history | 24 passwords (Wiederverwendung verhindern) |
| Store passwords using reversible | Disabled! |
Wichtig: Bei MFA ist Passwortrotation weniger kritisch. Microsoft empfiehlt seit 2019 kein Maximum-Age bei MFA - stattdessen Passwortlänge auf >= 16 Zeichen erhöhen.
Account Lockout Policy (Kontosperrung)
| Einstellung | Wert |
|---|---|
| Account lockout threshold | 5 invalid attempts |
| Account lockout duration | 15 minutes (0 = nur Admin kann freischalten) |
| Reset account lockout counter | 15 minutes |
LAPS (Local Administrator Password Solution)
Jeder PC erhält ein einzigartiges lokales Admin-Passwort, gespeichert im AD-Attribut (verschlüsselt ab LAPS v2).
LAPS v2 Setup (Windows Server 2022 / Windows 11 22H2):
- Schema erweitern
- OU für Computer konfigurieren
- GPO aktivieren (
Computer Configuration → Policies → Administrative Templates → System → LAPS): Configure password backup directory: Active Directory; Password Settings: Complexity + Length 16 + Expiry 30 days - Passwort auslesen (IT-Admin)
# 1. Schema erweitern:
Update-LapsADSchema
# 2. OU konfigurieren:
Set-LapsADComputerSelfPermission -Identity "OU=Workstations,DC=corp,DC=local"
# 4. Passwort auslesen (IT-Admin):
Get-LapsADPassword -Identity "WORKSTATION01" -AsPlainText
Audit-Richtlinien
Windows-Auditing vollständig konfigurieren
GPO-Pfad: Computer Config → Windows Settings → Security Settings → Advanced Audit Policy
Account Logon
- Credential Validation: Success, Failure
- Kerberos Authentication: Success, Failure
- Kerberos Service Ticket: Success, Failure (Kerberoasting!)
Account Management
- Computer Account Management: Success, Failure
- Security Group Management: Success, Failure
- User Account Management: Success, Failure
Detailed Tracking
- Process Creation (4688): Success - Prozess-Monitoring!
- Process Termination: Success
DS Access
- Directory Service Access: Failure
- Directory Service Changes: Success, Failure
Logon/Logoff
- Account Lockout: Failure
- Logon: Success, Failure
- Logoff: Success
- Special Logon: Success (Admin-Logins!)
Object Access
- File System: nur für kritische Ordner
- Registry: nur für kritische Keys
- SAM: Failure (Passwort-Extraktionsversuche)
Policy Change
- Audit Policy Change: Success, Failure
- Authentication Policy Change: Success
Privilege Use
- Sensitive Privilege Use: Success, Failure (Mimikatz!)
System
- Security State Change: Success, Failure
- Security System Extension: Success, Failure
Audit-Log-Größe erhöhen
Security-Log auf mindestens 1 GB: Computer Config → Windows Settings → Security Settings → Event Log → Maximum Security Log Size: 1048576 KB (1 GB)
Logs nicht überschreiben - zu SIEM forwarden! Einstellung: "Do not overwrite events (Clear log manually)". Sysmon/WEC für Forwarding konfigurieren.
Windows Defender und Credential Guard
Windows Defender Attack Surface Reduction (ASR)
GPO-Pfad: Computer Config → Administrative Templates → Windows Defender → Exploit Guard → ASR
Modus: 2 = Audit (zählen), 1 = Block, 0 = Off
| ASR-Regel | GUID | Modus |
|---|---|---|
| Block Office macros from Win32 API calls | 92E97FA1-2EDF-4476-BDD6-9DD0B4DDDC7B | 1 (Block) |
| Block executable content from email/webmail | BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550 | 1 (Block) |
| Block Office from creating child processes | D4F940AB-401B-4EFC-AADC-AD5F3C50688A | 1 (Block) |
| Block credential stealing from LSASS | 9E6C4E1F-7D60-472F-BA1A-A39EF669E4B0 | 1 (Block) - Mimikatz! |
| Block process creations from PSExec and WMI | D1E49AAC-8F56-4280-B9BA-993A6D77406C | 1 (Block) |
| Use advanced protection against ransomware | C1DB55AB-C21A-4637-BB3F-A12568109D35 | 1 (Block) |
Credential Guard
Isoliert LSASS in Hyper-V-Container - Mimikatz kann nicht lesen! Voraussetzung: UEFI, Secure Boot, Virtualization-Based Security (VBS).
GPO aktivieren (Computer Config → Administrative Templates → System → Device Guard → "Turn on Virtualization Based Security"):
- Platform Security Level: Secure Boot and DMA Protection
- Virtualization Based Protection of Code Integrity: Enabled with UEFI lock
- Credential Guard Configuration: Enabled with UEFI lock
# Überprüfen (SecurityServicesRunning sollte "2" enthalten = Credential Guard aktiv):
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
Tamper Protection (Defender-Einstellungen schützen)
Verhindert, dass Malware Defender deaktiviert.
Set-MpPreference -DisableTamperProtection $false
# Oder via Intune/Endpoint Manager (empfohlen): Einstellung gesperrt für User
SMB und Netzwerk-Härtung
SMBv1 deaktivieren (SOFORT!)
SMBv1 = WannaCry, NotPetya, EternalBlue-Vektor!
# Windows Server:
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
# Windows Client:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
GPO (Computer Config → Administrative Templates → Network → Lanman Workstation): "Enable insecure guest logons: Disabled"
SMB Signing erzwingen
Verhindert SMB-Relay-Angriffe (NTLM-Relay). GPO-Pfad: Computer Config → Windows Settings → Security Settings → Local Policies → Security Options
- Microsoft network server: Digitally sign communications (always): Enabled
- Microsoft network client: Digitally sign communications (always): Enabled
NTLM einschränken (schrittweise!)
GPO: Network Security → LAN Manager authentication level: Level 5: Send NTLMv2 response only. Refuse LM & NTLM
Breaking Change! Erst in Lab testen! Vor der Einschränkung NTLM-Audit aktivieren:
Computer Config → Security Settings → Local Policies → Security Options → Network security: Restrict NTLM: Audit NTLM authentication in this domain: Enable all
NetBIOS und LLMNR deaktivieren
LLMNR Poisoning-Angriff verhindern (Responder!):
GPO (Computer Config → Administrative Templates → Network → DNS Client): "Turn off multicast name resolution: Enabled"
NetBIOS deaktivieren: Netzwerkadapter → TCP/IP Properties → Advanced → WINS → Disable NetBIOS over TCP/IP
# Via PowerShell (alle Adapter):
$adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object { $_.IPEnabled }
foreach ($adapter in $adapters) {
$adapter.SetTcpipNetbios(2) # 2 = Disable
}
PowerShell-Härtung
Execution Policy (schwacher Schutz, aber Grundschutz)
GPO (Computer Config → Administrative Templates → Windows Components → Windows PowerShell → Turn on Script Execution): Execution Policy: Allow only signed scripts (AllSigned)
Script Block Logging
Loggt ALLE PowerShell-Befehle als Event 4104!
GPO-Einstellungen:
- Turn on PowerShell Script Block Logging: Enabled
- Log script block invocation start / stop events: Enabled
Event-ID 4104 im Windows Event Log (Microsoft-Windows-PowerShell/Operational) enthält den vollständigen Script-Text.
Constrained Language Mode
Mit WDAC aktiv wird PowerShell automatisch in den Constrained Language Mode (CLM) versetzt. CLM blockiert: Add-Type, [System.Reflection.Assembly], COM-Objekte.
# Manuell für Tests setzen:
$ExecutionContext.SessionState.LanguageMode = "ConstrainedLanguage"
# Überprüfen:
$ExecutionContext.SessionState.LanguageMode
# → "ConstrainedLanguage" (gehärtet) oder "FullLanguage"
PowerShell v2 deaktivieren (umgeht alle Schutzmaßnahmen!)
PS v2 kennt kein AMSI und kein Script Block Logging!
# Deaktivieren:
Disable-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2Root
# Überprüfen (sollte "Version 2 not supported" zeigen):
powershell -version 2 -command "echo test"
BitLocker und Geräte-Verschlüsselung
GPO-Konfiguration (Computer Config → Administrative Templates → Windows Components → BitLocker)
TPM + PIN (stärker als TPM allein):
- Require additional authentication at startup: Enabled
- Allow BitLocker without a compatible TPM: Disabled
- Configure TPM startup: Require TPM
- Configure TPM startup PIN: Require startup PIN with TPM
Algorithmus AES-256-XTS (Windows 10+):
- Choose drive encryption method and cipher strength → For operating system drives: XTS-AES-256-bit
Recovery-Key in AD speichern:
- Choose how BitLocker-protected drives can be recovered: Enabled
- Save BitLocker recovery information to AD DS: Enabled
- Do not enable BitLocker until recovery info is stored in AD DS: Enabled
PowerShell-Deployment
# BitLocker aktivieren (mit TPM + PIN):
$securePin = Read-Host "Enter BitLocker PIN" -AsSecureString
Enable-BitLocker -MountPoint "C:" `
-EncryptionMethod XtsAes256 `
-TpmAndPinProtector `
-Pin $securePin
# Recovery-Key in AD speichern:
Backup-BitLockerKeyProtector -MountPoint "C:" `
-KeyProtectorId (Get-BitLockerVolume -MountPoint "C:").KeyProtector[0].KeyProtectorId
# Status aller BitLocker-Volumes:
Get-BitLockerVolume | Select-Object MountPoint, EncryptionMethod,
ProtectionStatus, EncryptionPercentage
Intune-Deployment (Endpoint Security → Disk Encryption → Create Policy)
- Platform: Windows 10 and later
- Profile: BitLocker
- Full disk encryption: Yes
- BitLocker system drive policy: Configure
- Startup authentication required: Yes
- Compatible TPM startup: Required
- Compatible TPM startup PIN: Blocked (kein PIN = einfacheres Deployment)
- Recovery key storage: Azure AD
Nächster Schritt
Unsere zertifizierten Sicherheitsexperten beraten Sie zu den Themen aus diesem Artikel, unverbindlich und kostenlos.
Kostenlos · 30 Minuten · Unverbindlich