
HardeningKitty и настройки усиления безопасности Windows
Проект начинался как простой список мер по усилению защиты для Windows 10. Через некоторое время был создан HardeningKitty, чтобы упростить усиление защиты Windows. Теперь HardeningKitty поддерживает рекомендации от Microsoft, CIS Benchmarks, DoD STIG и BSI SiSyPHuS Win10. И, конечно же, мой собственный список мер по усилению защиты.
Это контрольный список мер по усилению защиты, который можно использовать в частных и корпоративных средах для усиления защиты Windows 10. Контрольный список можно использовать для всех версий Windows, но в Windows 10 Home редактор групповой политики не встроен, и настройку необходимо выполнять непосредственно в реестре. Для этого существует режим HailMary из HardeningKitty.
Настройки следует рассматривать как рекомендации по безопасности и конфиденциальности, и их следует тщательно проверять на предмет того, повлияют ли они на работу вашей инфраструктуры или на удобство использования ключевых функций. Важно взвешивать безопасность и удобство использования.
Проект начался с создания простого контрольного списка мер по усилению защиты для Windows 10. С развитием HardeningKitty акцент сместился на аудит различных известных фреймворков / бенчмарков. В настоящее время поддерживаются различные бенчмарки CIS и Microsoft Security Baselines. С развитием режима HailMary также появится возможность применять настройки любого контрольного списка мер по усилению защиты на системе Windows.
HardeningKitty поддерживает усиление защиты системы Windows. Конфигурация системы извлекается и оценивается с использованием списка находок. Кроме того, систему можно усилить в соответствии с предопределёнными значениями. HardeningKitty считывает настройки из реестра и использует другие модули для чтения конфигураций вне реестра.
Скрипт был разработан для англоязычных систем. Возможно, что в других языковых версиях анализ будет некорректным. Пожалуйста, создайте issue, если это произойдёт.
Разработка HardeningKitty ведётся в этом репозитории. В репозитории scip AG находится стабильная версия HardeningKitty, которая подписана сертификатом подписи кода scip AG. Это означает, что HardeningKitty также можно запускать на системах, которые допускают только подписанные скрипты.
Запустите скрипт с правами администратора для доступа к настройкам компьютера. Для пользовательских настроек лучше выполнять их с обычной учётной записью пользователя. В идеале учётная запись пользователя используется для повседневной работы.
Скачайте HardeningKitty и скопируйте его на целевую систему (скрипт и списки). Затем HardeningKitty можно импортировать и выполнить:```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.
### Как установить
Сначала создайте каталог *HardeningKitty* и для каждой версии подкаталог, например *0.9.3*, в пути, указанном в переменной среды *PSModulePath*.
Скопируйте модуль *HardeningKitty.psm1*, *HardeningKitty.psd1* и каталог *lists* в этот новый каталог.```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
Дополнительную информацию см. в статье Microsoft Installing a PowerShell Module.
Вы можете использовать приведённый ниже скрипт, чтобы скачать и установить последний выпуск HardeningKitty.```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
### Примеры
#### Аудит
Режим по умолчанию — _audit_. HardeningKitty выполняет аудит, сохраняет результаты в CSV-файл и создаёт файл журнала. Файлы автоматически именуются и получают метку времени. С помощью параметров _ReportFile_ или _LogFile_ также можно задать собственное имя и путь.
Параметр _Filter_ можно использовать для фильтрации списка hardening. Для этого необходимо использовать синтаксис PowerShell ScriptBlock, например `{ $_.ID -eq 4505 }`. Для фильтрации полезны следующие элементы: ID, Category, Name, Method и Severity.```powershell
Invoke-HardeningKitty -Mode Audit -Log -Report
HardeningKitty можно запустить с определённым списком, заданным параметром FileFindingList. Если HardeningKitty запускается несколько раз на одной и той же системе, может быть полезно скрыть информацию о машине. Для этой цели используется параметр SkipMachineInformation.```powershell Invoke-HardeningKitty -FileFindingList .\lists\finding_list_0x6d69636b_user.csv -SkipMachineInformation
HardeningKitty использует список по умолчанию и проверяет только тесты со степенью серьёзности Medium.```powershell
Invoke-HardeningKitty -Filter { $_.Severity -eq "Medium" }