
HardeningKitty e Configurações de Hardening do Windows
O projeto começou como uma lista de hardening simples para Windows 10. Depois de algum tempo, o HardeningKitty foi criado para simplificar o hardening do Windows. Agora, o HardeningKitty suporta diretrizes da Microsoft, CIS Benchmarks, DoD STIG e BSI SiSyPHuS Win10. E, claro, minha própria lista de hardening.
Esta é uma lista de verificação de hardening que pode ser usada em ambientes privados e empresariais para o hardening do Windows 10. A lista de verificação pode ser usada para todas as versões do Windows, mas no Windows 10 Home o Editor de Política de Grupo não está integrado e o ajuste deve ser feito diretamente no registro. Para isso, existe o modo HailMary do HardeningKitty.
As configurações devem ser vistas como recomendação de segurança e privacidade e devem ser cuidadosamente verificadas quanto a possíveis impactos na operação da sua infraestrutura ou na usabilidade de funções essenciais. É importante ponderar segurança versus usabilidade.
O projeto começou com a criação de uma lista de verificação de hardening simples para Windows 10. O foco mudou para a auditoria de vários frameworks / benchmarks conhecidos com o desenvolvimento do HardeningKitty. Enquanto isso, vários CIS benchmarks e Microsoft Security Baselines são suportados. Com o desenvolvimento do modo HailMary, também será possível aplicar configurações de qualquer lista de verificação de hardening em um sistema Windows.
O HardeningKitty suporta o hardening de um sistema Windows. A configuração do sistema é recuperada e avaliada usando uma lista de achados. Além disso, o sistema pode ser endurecido de acordo com valores predefinidos. O HardeningKitty lê configurações do registro e usa outros módulos para ler configurações fora do registro.
O script foi desenvolvido para sistemas em inglês. É possível que em outros idiomas a análise seja incorreta. Por favor, crie uma issue se isso ocorrer.
O desenvolvimento do HardeningKitty acontece neste repositório. No repositório da scip AG há uma versão estável do HardeningKitty que foi assinada com o certificado de assinatura de código da scip AG. Isso significa que o HardeningKitty também pode ser executado em sistemas que só permitem scripts assinados.
Execute o script com privilégios administrativos para acessar as configurações da máquina. Para as configurações de usuário, é melhor executá-las com uma conta de usuário normal. Idealmente, a conta de usuário é usada para o trabalho diário.
Baixe o HardeningKitty e copie-o para o sistema de destino (script e listas). Em seguida, o HardeningKitty pode ser importado e executado:```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.
### Como Instalar
Primeiro, crie o diretório *HardeningKitty* e, para cada versão, um subdiretório como *0.9.3* em um caminho listado na variável de ambiente *PSModulePath*.
Copie o módulo *HardeningKitty.psm1*, *HardeningKitty.psd1* e o diretório *lists* para este novo diretório.```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
Para mais informações, consulte o artigo da Microsoft Installing a PowerShell Module.
Você pode usar o script abaixo para baixar e instalar a versão mais recente do 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
### Exemplos
#### Auditoria
O modo padrão é _audit_. O HardeningKitty realiza uma auditoria, salva os resultados em um arquivo CSV e cria um arquivo de log. Os arquivos são nomeados automaticamente e recebem um timestamp. Usando os parâmetros _ReportFile_ ou _LogFile_, também é possível atribuir seu próprio nome e caminho.
O parâmetro _Filter_ pode ser usado para filtrar a lista de hardening. Para isso, a sintaxe PowerShell ScriptBlock deve ser usada, por exemplo `{ $_.ID -eq 4505 }`. Os seguintes elementos são úteis para filtragem: ID, Category, Name, Method e Severity.```powershell
Invoke-HardeningKitty -Mode Audit -Log -Report
O HardeningKitty pode ser executado com uma lista específica definida pelo parâmetro FileFindingList. Se o HardeningKitty for executado várias vezes no mesmo sistema, pode ser útil ocultar as informações da máquina. O parâmetro SkipMachineInformation é usado para esse fim.```powershell Invoke-HardeningKitty -FileFindingList .\lists\finding_list_0x6d69636b_user.csv -SkipMachineInformation
O HardeningKitty usa a lista padrão e verifica apenas os testes com severidade Média.```powershell
Invoke-HardeningKitty -Filter { $_.Severity -eq "Medium" }