Zum Inhalt springen

Services, Wiki-Artikel, Blog-Beiträge und Glossar-Einträ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 für Unternehmen: CIS Benchmark und Microsoft Security Baseline

Windows-Härtung nach CIS Benchmark Level 1/2 und Microsoft Security Baseline: Account Policies (Passwortrichtlinien, Kontosperrung), Audit Policies (alle 9 Kategorien), Windows Defender (Tamper Protection, ASR-Regeln), Credential Guard, AppLocker/WDAC, PowerShell-Einschränkungen (Constrained Language Mode), LAPS für lokale Admins, Windows Firewall mit Profilen, Bitlocker-Deployment, SMB-Härtung (SMBv1 deaktivieren, Signing), Registry-Härtungen.

Vincent Heinen 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. 52).

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

Ausgangspunkt: Microsoft Security Compliance Toolkit:

Download und Analyse:
  # Microsoft Security Compliance Toolkit (MSCT):
  # https://www.microsoft.com/en-us/download/details.aspx?id=55319
  # Enthält: Security Baseline für Windows 11, Windows Server 2022, Edge

  # Policy Analyzer - Baseline vergleichen:
  PolicyAnalyzer.exe  # GUI-Tool
  # Importiert: aktuelle Gruppenrichtlinien
  # Vergleicht: mit Microsoft-Baseline
  # Zeigt: Abweichungen farbkodiert

  # LGPO.exe (Local Group Policy Object):
  # Baseline auf einzelnen Rechner anwenden:
  LGPO.exe /g "Windows 11 Security Baseline\GPOs"

CIS Benchmark:
  # CIS Windows 11 Benchmark (Level 1 + Level 2):
  # 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):

Computer Configuration → Windows Settings → Security Settings → Account Policies:

Password Policy (Passwortrichtlinie):
  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 → Passwortrotation weniger kritisch
  # Microsoft empfiehlt seit 2019: kein Maximum-Age bei MFA!
  # Dafür: Passwortlänge erhöhen (>= 16 Zeichen)

Account Lockout Policy (Kontosperrung):
  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 hat einzigartiges lokales Admin-Passwort!
  # Gespeichert in AD-Attribut (verschlüsselt ab LAPS v2)

  # LAPS v2 Setup (Windows Server 2022 / Windows 11 22H2):
  # 1. Schema erweitern:
  Update-LapsADSchema

  # 2. OU für Computer konfigurieren:
  Set-LapsADComputerSelfPermission -Identity "OU=Workstations,DC=corp,DC=local"

  # 3. GPO: LAPS 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):
  Get-LapsADPassword -Identity "WORKSTATION01" -AsPlainText

Audit-Richtlinien

Windows-Auditing vollständig konfigurieren:

Erweiterte Überwachungsrichtlinien (Advanced Audit Policy):
Computer Config → Windows Settings → Security Settings → Advanced Audit Policy:

  # Anmeldung:
  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: 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!):
  Maximum Security Log Size: "Do not overwrite events (Clear log manually)"
  # Aber: Sysmon/WEC für Forwarding konfigurieren!

Windows Defender und Credential Guard

Windows Defender Attack Surface Reduction (ASR):

ASR-Regeln (per GPO oder Intune):
  Computer Config → Administrative Templates → Windows Defender → Exploit Guard → ASR:

  # Wichtigste ASR-Regeln:
  # Modus: 2 = Audit (zählen), 1 = Block, 0 = Off

  Block Office macros from Win32 API calls:
    GUID: 92E97FA1-2EDF-4476-BDD6-9DD0B4DDDC7B
    Mode: 1 (Block)

  Block executable content from email/webmail:
    GUID: BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550
    Mode: 1 (Block)

  Block Office from creating child processes:
    GUID: D4F940AB-401B-4EFC-AADC-AD5F3C50688A
    Mode: 1 (Block)

  Block credential stealing from LSASS:
    GUID: 9E6C4E1F-7D60-472F-BA1A-A39EF669E4B0
    Mode: 1 (Block)  # Mimikatz!

  Block process creations from PSExec and WMI:
    GUID: D1E49AAC-8F56-4280-B9BA-993A6D77406C
    Mode: 1 (Block)

  Use advanced protection against ransomware:
    GUID: C1DB55AB-C21A-4637-BB3F-A12568109D35
    Mode: 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": Enabled
    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:
  Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
  # SecurityServicesRunning sollte "2" enthalten (Credential Guard)

Tamper Protection (Defender-Einstellungen schützen):
  # Verhindert: Malware deaktiviert Defender!
  Set-MpPreference -DisableTamperProtection $false
  # Oder via Intune/Endpoint Manager (empfohlen): Einstellung gesperrt für User

SMB und Netzwerk-Härtung

SMB-Härtung (kritisch für Ransomware-Schutz!):

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):
  # 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!)

  # NTLM-Audit (vor Einschränkung):
  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!):
  # Computer Config → Administrative Templates → Network → DNS Client:
  Turn off multicast name resolution: Enabled

  # NetBIOS:
  # 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

PowerShell-Sicherheitseinstellungen:

Execution Policy (schwacher Schutz, aber Grundschutz):
  # GPO: Computer Config → Administrative Templates → Windows Components →
  #       Windows PowerShell:
  Turn on Script Execution: Enabled
    Execution Policy: Allow only signed scripts  # AllSigned

Script Block Logging:
  # Loggt ALLE PowerShell-Befehle als Event 4104!
  # GPO:
  Turn on PowerShell Script Block Logging: Enabled
  Log script block invocation start / stop events: Enabled

  # Event-ID 4104 in Windows Event Log:
  # Event Log: Microsoft-Windows-PowerShell/Operational
  # Inhalt: vollständiger Script-Text!

Constrained Language Mode (WDAC aktiviert automatisch):
  # Mit WDAC aktiv → PS automatisch in CLM
  # Oder manuell für Tests:
  $ExecutionContext.SessionState.LanguageMode = "ConstrainedLanguage"
  # CLM blockiert: Add-Type, [System.Reflection.Assembly], COM-Objekte

  # Überprüfen:
  $ExecutionContext.SessionState.LanguageMode
  # → "ConstrainedLanguage" (gehärtet) oder "FullLanguage"

PowerShell v2 deaktivieren (umgeht alle Schutzmaßnahmen!):
  # PS v2 kennt kein AMSI, kein Script Block Logging!
  # Deaktivieren:
  Disable-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2Root
  # Überprüfen:
  powershell -version 2 -command "echo test"
  # → "Version 2 not supported" wenn korrekt deaktiviert

BitLocker und Geräte-Verschlüsselung

BitLocker für alle Endpoints:

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
  BitLocker base settings:
    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

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 9001AZAVBSI

Cookielose Analyse via Matomo (selbst gehostet, kein Tracking-Cookie). Datenschutzerklärung