
HardeningKitty und Windows-Härtungseinstellungen
Das Projekt begann als einfache Härtungsliste für Windows 10. Nach einiger Zeit wurde HardeningKitty entwickelt, um die Härtung von Windows zu vereinfachen. Mittlerweile unterstützt HardeningKitty Richtlinien von Microsoft, CIS Benchmarks, DoD STIG und BSI SiSyPHuS Win10. Und natürlich meine eigene Härtungsliste.
Dies ist eine Härtungs-Checkliste, die in privaten und geschäftlichen Umgebungen zur Härtung von Windows 10 verwendet werden kann. Die Checkliste kann für alle Windows-Versionen verwendet werden, aber in Windows 10 Home ist der Gruppenrichtlinien-Editor nicht integriert und die Anpassung muss direkt in der Registry vorgenommen werden. Dafür gibt es den HailMary-Modus von HardeningKitty.
Die Einstellungen sollten als Sicherheits- und Datenschutzempfehlung betrachtet werden und es sollte sorgfältig geprüft werden, ob sie den Betrieb Ihrer Infrastruktur beeinträchtigen oder die Nutzbarkeit wichtiger Funktionen einschränken. Es ist wichtig, Sicherheit gegen Benutzerfreundlichkeit abzuwägen.
Das Projekt begann mit der Erstellung einer einfachen Härtungs-Checkliste für Windows 10. Der Fokus hat sich mit der Entwicklung von HardeningKitty auf die Prüfung verschiedener bekannter Frameworks / Benchmarks verlagert. Mittlerweile werden verschiedene CIS-Benchmarks und Microsoft-Sicherheitsbaselines unterstützt. Mit der Entwicklung des HailMary-Modus wird es auch möglich sein, Einstellungen beliebiger Härtungs-Checklisten auf einem Windows-System anzuwenden.
HardeningKitty unterstützt die Härtung eines Windows-Systems. Die Konfiguration des Systems wird mithilfe einer Finding-Liste abgerufen und bewertet. Darüber hinaus kann das System gemäß vordefinierten Werten gehärtet werden. HardeningKitty liest Einstellungen aus der Registry und verwendet andere Module, um Konfigurationen außerhalb der Registry zu lesen.
Das Skript wurde für englische Systeme entwickelt. Es ist möglich, dass die Analyse in anderen Sprachen fehlerhaft ist. Bitte erstellen Sie ein Issue, wenn dies auftritt.
Die Entwicklung von HardeningKitty findet in diesem Repository statt. Im Repository von scip AG befindet sich eine stabile Version von HardeningKitty, die mit dem Code-Signing-Zertifikat von scip AG signiert wurde. Das bedeutet, dass HardeningKitty auch auf Systemen ausgeführt werden kann, die nur signierte Skripte zulassen.
Führen Sie das Skript mit administrativen Rechten aus, um auf Maschineneinstellungen zuzugreifen. Für die Benutzereinstellungen ist es besser, sie mit einem normalen Benutzerkonto auszuführen. Idealerweise wird das Benutzerkonto für die tägliche Arbeit verwendet.
Laden Sie HardeningKitty herunter und kopieren Sie es auf das Zielsystem (Skript und Listen). Dann kann HardeningKitty importiert und ausgeführt werden:```powershell PS C:\tmp> Import-Module .\HardeningKitty.psm1 PS C:\tmp> Invoke-HardeningKitty -EmojiSupport
=^._.^=
_( )/ HardeningKitty 0.9.0-1662273740
[*] 9/4/2022 8:54:12 AM - Starting HardeningKitty
[] 9/4/2022 8:54:12 AM - Getting user information [] Hostname: DESKTOP-DG83TOD [*] Domain: WORKGROUP
...
[] [] 9/4/2022 8:54:12 AM - Starting Category Account Policies [😺] ID 1103, Store passwords using reversible encryption, Result=0, Severity=Passed [😺] ID 1100, Account lockout threshold, Result=10, Severity=Passed [😺] ID 1101, Account lockout duration, Result=30, Severity=Passed
...
[*] 9/4/2022 8:54:12 AM - Starting Category User Rights Assignment [😿] ID 1200, Access this computer from the network, Result=BUILTIN\Administrators;BUILTIN\Users, Recommended=BUILTIN\Administrators, Severity=Medium
...
[*] 9/4/2022 8:54:14 AM - Starting Category Administrative Templates: Printer [🙀] ID 1764, Point and Print Restrictions: When installing drivers for a new connection (CVE-2021-34527), Result=1, Recommended=0, Severity=High [🙀] ID 1765, Point and Print Restrictions: When updating drivers for an existing connection (CVE-2021-34527), Result=2, Recommended=0, Severity=High
...
[*] 9/4/2022 8:54:19 AM - Starting Category MS Security Guide [😿] ID 2200, LSA Protection, Result=, Recommended=1, Severity=Medium [😼] ID 2201, Lsass.exe audit mode, Result=, Recommended=8, Severity=Low
...
[] 9/4/2022 8:54:25 AM - HardeningKitty is done [] 9/4/2022 8:54:25 AM - Your HardeningKitty score is: 4.82. HardeningKitty Statistics: Total checks: 325 - Passed: 213, Low: 33, Medium: 76, High: 3.
### Installation
Erstellen Sie zunächst das Verzeichnis *HardeningKitty* und für jede Version ein Unterverzeichnis wie *0.9.3* in einem Pfad, der in der Umgebungsvariable *PSModulePath* aufgeführt ist.
Kopieren Sie das Modul *HardeningKitty.psm1*, *HardeningKitty.psd1* und das Verzeichnis *lists* in dieses neue Verzeichnis.```powershell
PS C:\tmp> $Version = "0.9.3"
PS C:\tmp> New-Item -Path $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty\$Version -ItemType Directory
PS C:\tmp> Copy-Item -Path .\HardeningKitty.psd1,.\HardeningKitty.psm1,.\lists\ -Destination $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty\$Version\ -Recurse
Weitere Informationen finden Sie im Artikel von Microsoft Installing a PowerShell Module.
Mit dem folgenden Skript können Sie die neueste Version von HardeningKitty herunterladen und installieren.```powershell Function InstallHardeningKitty() { $Version = (((Invoke-WebRequest "https://api.github.com/repos/0x6d69636b/windows_hardening/releases/latest" -UseBasicParsing) | ConvertFrom-Json).Name).SubString(2) $HardeningKittyLatestVersionDownloadLink = ((Invoke-WebRequest "https://api.github.com/repos/0x6d69636b/windows_hardening/releases/latest" -UseBasicParsing) | ConvertFrom-Json).zipball_url $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest $HardeningKittyLatestVersionDownloadLink -Out HardeningKitty$Version.zip Expand-Archive -Path ".\HardeningKitty$Version.zip" -Destination ".\HardeningKitty$Version" -Force $Folder = Get-ChildItem .\HardeningKitty$Version | Select-Object Name -ExpandProperty Name Move-Item ".\HardeningKitty$Version$Folder*" ".\HardeningKitty$Version" Remove-Item ".\HardeningKitty$Version$Folder" New-Item -Path $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty$Version -ItemType Directory Set-Location .\HardeningKitty$Version Copy-Item -Path .\HardeningKitty.psd1,.\HardeningKitty.psm1,.\lists\ -Destination $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty$Version\ -Recurse Import-Module "$Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty$Version\HardeningKitty.psm1" } InstallHardeningKitty
### Beispiele
#### Audit
Der Standardmodus ist _Audit_. HardeningKitty führt ein Audit durch, speichert die Ergebnisse in einer CSV-Datei und erstellt eine Protokolldatei. Die Dateien werden automatisch benannt und erhalten einen Zeitstempel. Mit den Parametern _ReportFile_ oder _LogFile_ ist es auch möglich, einen eigenen Namen und Pfad zuzuweisen.