Полное руководство по защите Windows: от Built-in инструментов до харденинга
Microsoft Defender Antivirus — встроенный антивирус Windows 10/11. Включает защиту в реальном времени, анализ поведения, защиту от ransomware и облачную аналитику.
# Проверить статус Defender PS> Get-MpComputerStatus # Включить защиту в реальном времени PS> Set-MpPreference -DisableRealtimeMonitoring $false # Полная проверка PS> Start-MpScan -ScanType FullScan # Просмотр последних угроз PS> Get-MpThreatDetection | Select-Object ThreatID, DomainUser, ProcessName # Исключения (не добавляйте без необходимости!) PS> Add-MpPreference -ExclusionPath "C:\MyApp" # ASR правила (отключение Office-макросов) PS> Add-MpPreference -AttackSurfaceReductionRules_Ids 5beb7efe -AttackSurfaceReductionRules_Actions 1
# Включить Controlled Folder Access PS> Set-MpPreference -EnableControlledFolderAccess Enabled # Добавить папку в защищённые PS> Add-MpPreference -ControlledFolderAccessProtectedFolders "D:\Documents" # Разрешить приложение PS> Add-MpPreference -ControlledFolderAccessAllowedApplications "C:\Program Files\MyApp\app.exe"
Брандмауэр Windows контролирует входящий и исходящий сетевой трафик. Работает с правилами для программ, портов и протоколов. Поддерживает профили для разных сетей.
Домашняя/рабочая сеть. Более мягкие правила.
Кафе, аэропорты. Строгие правила, отключён discovery.
Корпоративная сеть. Управляется через GPO.
# Проверить статус брандмауэра PS> Get-NetFirewallProfile | Select-Object Name, Enabled # Включить все профили PS> Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True # Блокировать исходящий трафик для приложения PS> New-NetFirewallRule -DisplayName "Block App" ` -Direction Outbound -Program "C:\Apps\app.exe" -Action Block # Разрешить порт 8080 PS> New-NetFirewallRule -DisplayName "Allow 8080" ` -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow # Просмотр активных правил PS> Get-NetFirewallRule | Where-Object {$_.Enabled -eq 'True'} | Select-Object DisplayName, Direction, Action # Блокировать все входящие (строгий режим) PS> Set-NetFirewallProfile -DefaultInboundAction Block -DefaultOutboundAction Allow
UAC — механизм, который запрашивает повышение привилегий перед выполнением действий, требующих прав администратора. Даже администратор работают с обычными правами до подтверждения.
Запрос при любых действиях от администратора. Самый безопасный.
Показывает запрос, но не блокирует экран. Менее безопасно.
UAC только для изменений Windows, не для сторонних ПО.
UAC отключён. Любое ПО получает admin-права. ОПАСНО!
# Проверить текущий уровень UAC PS> Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" ` -Name EnableLUA, ConsentPromptBehaviorAdmin, PromptOnSecureDesktop # Установить максимальный уровень (рекомендуется) PS> Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" ` -Name ConsentPromptBehaviorAdmin -Value 5 # Включить запрос на безопасном рабочем столе PS> Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" ` -Name PromptOnSecureDesktop -Value 1 # Через реестр (или regedit) HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System EnableLUA = 1 // 0 = UAC отключён ConsentPromptBehaviorAdmin = 5 // 5 = всегда спрашивать PromptOnSecureDesktop = 1 // 1 = безопасный рабочий стол
BitLocker — полное шифрование диска (FDE). Защищает данные при краже устройства. Использует AES-128/256. Требует TPM или USB-ключ для восстановления.
# Проверить статус BitLocker PS> Get-BitLockerVolume | Select-Object MountPoint, VolumeStatus, ProtectionStatus # Включить BitLocker на C: PS> Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -UsedSpaceOnly # Включить на съёмном носителе PS> Enable-BitLocker -MountPoint "D:" -EncryptionMethod Aes256 -PasswordProtector PS> Backup-BitLockerKeyProtector -MountPoint "C:" -KeyProtectorId "..." # Скопировать ключ восстановления (ВАЖНО!) PS> manage-bde -protectors -get C: # Отключить (только для обслуживания!) PS> Disable-BitLocker -MountPoint "C:"
Group Policy — централизованное управление настройками Windows для компьютеров и пользователей. Основной инструмент харденинга в корпоративной среде.
# Открыть редактор групповых политик PS> gpedit.msc # Применить политику PS> gpupdate /force # Посмотреть применённые политики PS> gpresult /r
# Просмотр всех локальных политик PS> secedit /export /cfg C:\temp\security_policy.inf # Экспорт политики паролей PS> net accounts # Установить сложность пароля PS> net accounts /minpwlen:12 /maxpwage:90 /uniquepw:5 # Отключить гостя PS> net user Guest /active:no
Windows ведёт подробные логи событий. Правильная настройка логирования критически важна для обнаружения вторжений и форензики.
Входы, выходы, изменения прав, аудит объектов
Службы, драйверы, перезагрузки
События приложений
Все команды PowerShell (Module Logging)
Расширенное мониторирование (процессы, сети, файлы)
Обнаруженные угрозы и действия
# Просмотр журнала безопасности PS> Get-EventLog -LogName Security -Newest 50 # Поиск успешных входов (Event ID 4624) PS> Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 20 # Поиск неудачных попыток входа (Event ID 4625) PS> Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 # Поиск созданных процессов (Sysmon Event ID 1) PS> Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Sysmon/Operational'; Id=1} -MaxEvents 10 # Поиск по имени пользователя PS> Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} | Where-Object { $_.Properties[5].Value -eq "username" } # Экспорт в CSV PS> Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} | Select-Object TimeCreated, Message | Export-Csv "C:\temp\logins.csv" # Включить логирование PowerShell PS> Set-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging" ` -Name EnableScriptBlockLogging -Value 1
Пошаговый харденинг Windows для максимальной безопасности. Каждый пункт снижает поверхность атаки.
# Список служб для отключения Set-Service RemoteRegistry -StartupType Disabled Set-Service TlntSvr -StartupType Disabled Set-Service SSDPSRV -StartupType Disabled Set-Service upnphost -StartupType Disabled Set-Service WMSvc -StartupType Disabled Set-Service SNMP -StartupType Disabled
# SMBv1 — уязвим (EternalBlue, WannaCry) Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol # Проверить версии SMB Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol # Заблокировать порт 445 во входящих New-NetFirewallRule -DisplayName "Block SMB" ` -Direction Inbound -Protocol TCP -LocalPort 445 -Action Block
# Запрет AutoRun для всех дисков Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" ` -Name NoDriveTypeAutoRun -Value 255 # Запрет AutoPlay Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" ` -Name NoAutoplayfornonVolume -Value 1
# Аудит входа (успех и неудача) auditpol /set /subcategory:"Logon" /success:enable /failure:enable # Аудит изменения прав auditpol /set /subcategory:"Security Group Management" /success:enable /failure:enable # Аудит доступа к объектам auditpol /set /subcategory:"File System" /success:enable /failure:enable # Аудит PowerShell Set-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging" ` -Name EnableModuleLogging -Value 1
# Минимальная длина 12 символов net accounts /minpwlen:12 # Максимальный срок жизни 90 дней net accounts /maxpwage:90 # Запрет старых паролей (5) net accounts /uniquepw:5 # Блокировка после 5 попыток net accounts /lockoutthreshold:5 /lockoutduration:30
# Проверить последние обновления Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10 # Установить.pending обновления Install-Module PSWindowsUpdate Get-WindowsUpdate -AcceptAll -Install -AutoReboot # Настроить автообновления Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" ` -Name AUOptions -Value 4 // 4 = Автоматически загружать и устанавливать
Расширенное логирование процессов, сети, файлов
sysmon -i config.xml
Детальный анализ процессов
procexp.exe
Все точки автозагрузки
autoruns.exe
Проверка прав доступа
accesschk.exe -uwc "Users"
Проверка подписей файлов
sigcheck.exe -u
Кто залогинен в системе
psloggedon.exe