Zum Inhalt springen

Services, Wiki-Artikel und Blog-Beiträge durchsuchen

↑↓NavigierenEnterÖffnenESCSchließen
Windows Hardening für Unternehmen: CIS Benchmark und Microsoft Security Baseline - Betriebssystem-Sicherheit und Systemhaertung
Netzwerk- & Endpoint Security

Windows Hardening: CIS Benchmark und Microsoft Security Baseline

Windows-Härtung: CIS Benchmark, Account Policies, Credential Guard, AppLocker/WDAC, LAPS, BitLocker, SMB-Signing und ASR-Regeln für Enterprises.

Vincent Heinen Abteilungsleiter Offensive Services
12 Min. Lesezeit
OSCP+ OSCP OSWP OSWA

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)

EinstellungWert
Minimum password length14 (CIS Level 1: 14+)
Password complexityEnabled (Groß/Klein/Zahl/Sonderzeichen)
Maximum password age365 days (oder 0 für "nie" wenn MFA!)
Minimum password age1 day (verhindert sofortiges Zurücksetzen)
Enforce password history24 passwords (Wiederverwendung verhindern)
Store passwords using reversibleDisabled!

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)

EinstellungWert
Account lockout threshold5 invalid attempts
Account lockout duration15 minutes (0 = nur Admin kann freischalten)
Reset account lockout counter15 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):

  1. Schema erweitern
  2. OU für Computer konfigurieren
  3. GPO aktivieren (Computer Configuration → Policies → Administrative Templates → System → LAPS): Configure password backup directory: Active Directory; Password Settings: Complexity + Length 16 + Expiry 30 days
  4. 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-RegelGUIDModus
Block Office macros from Win32 API calls92E97FA1-2EDF-4476-BDD6-9DD0B4DDDC7B1 (Block)
Block executable content from email/webmailBE9BA2D9-53EA-4CDC-84E5-9B1EEEE465501 (Block)
Block Office from creating child processesD4F940AB-401B-4EFC-AADC-AD5F3C50688A1 (Block)
Block credential stealing from LSASS9E6C4E1F-7D60-472F-BA1A-A39EF669E4B01 (Block) - Mimikatz!
Block process creations from PSExec and WMID1E49AAC-8F56-4280-B9BA-993A6D77406C1 (Block)
Use advanced protection against ransomwareC1DB55AB-C21A-4637-BB3F-A12568109D351 (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

Artikel teilen

Über den Autor

Vincent Heinen
Vincent Heinen

Abteilungsleiter Offensive Services

E-Mail

M.Sc. IT-Sicherheit mit über 5 Jahren Erfahrung in offensiver Sicherheitsanalyse. Leitet die Durchführung von Penetrationstests mit Spezialisierung auf Web-Applikationen, Netzwerk-Infrastruktur, Reverse Engineering und Hardware-Sicherheit. Verantwortlich für mehrere Responsible Disclosures.

OSCP+ OSCP OSWP OSWA
Zertifiziert ISO 27001ISO 9001AZAV

Rufen Sie uns an

Mo-Fr, 8:00-17:00 Uhr - persönlich und unverbindlich.

0209 8830 6764
Jetzt anrufen