🛡️

Безопасность Windows

Полное руководство по защите Windows: от Built-in инструментов до харденинга

Defender Firewall UAC BitLocker GPO
🛡️

Windows Defender (Antivirus)

Built-in

Microsoft Defender Antivirus — встроенный антивирус Windows 10/11. Включает защиту в реальном времени, анализ поведения, защиту от ransomware и облачную аналитику.

Что защищает

  • ✅ Файлы и папки в реальном времени
  • ✅ Веб-браузер (SmartScreen)
  • ✅ Почтовые вложения
  • ✅ USB-накопители
  • ✅ Network Protection

Дополнительные модули

  • 🔒 Controlled Folder Access (защита от ransomware)
  • 🔒 Attack Surface Reduction (ASR) rules
  • 🔒 Exploit Protection
  • 🔒 Network Protection
  • 🔒 Device Guard / HVCI

Управление через PowerShell

# Проверить статус 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 (анти-ransomware)

# Включить 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 Defender Firewall

Network

Брандмауэр Windows контролирует входящий и исходящий сетевой трафик. Работает с правилами для программ, портов и протоколов. Поддерживает профили для разных сетей.

🟢 Частная сеть

Домашняя/рабочая сеть. Более мягкие правила.

🟡 Публичная сеть

Кафе, аэропорты. Строгие правила, отключён discovery.

🔴 Домен

Корпоративная сеть. Управляется через GPO.

Управление через PowerShell

# Проверить статус брандмауэра
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

⚠️ Частые ошибки

  • ❌ Отключение брандмауэра вместо настройки правил
  • ❌ Разрешение всех исходящих соединений
  • ❌ Использование порта 3389 (RDP) без VPN
  • ❌ Не блокировка SMB (445) извне — путь к EternalBlue
🔐

User Account Control (UAC)

Privilege

UAC — механизм, который запрашивает повышение привилегий перед выполнением действий, требующих прав администратора. Даже администратор работают с обычными правами до подтверждения.

Уровни UAC ( ConsentPromptBehaviorAdmin)

5 — Всегда уведомлять (Default)

Запрос при любых действиях от администратора. Самый безопасный.

4 — Уведомлять без затемнения

Показывает запрос, но не блокирует экран. Менее безопасно.

3 — Только для Windows

UAC только для изменений Windows, не для сторонних ПО.

0 — Никогда не уведомлять

UAC отключён. Любое ПО получает admin-права. ОПАСНО!

Настройка UAC

# Проверить текущий уровень 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 (Шифрование дисков)

Encryption

BitLocker — полное шифрование диска (FDE). Защищает данные при краже устройства. Использует AES-128/256. Требует TPM или USB-ключ для восстановления.

Что шифрует

  • ✅ Весь системный раздел (C:)
  • ✅ Данные разделы (D:, E:)
  • ✅ Съёмные носители (BitLocker To Go)
  • ✅ TPM чип хранит ключ

Ключи восстановления

  • 🔑 48-значный код
  • 🔑 Сохранить в Azure AD / Active Directory
  • 🔑 Распечатать и хранить в безопасности
  • 🔑 Без ключа — данные потеряны!

Управление BitLocker

# Проверить статус 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 (GPO)

Enterprise

Group Policy — централизованное управление настройками Windows для компьютеров и пользователей. Основной инструмент харденинга в корпоративной среде.

Ключевые политики безопасности

# Открыть редактор групповых политик
PS> gpedit.msc

# Применить политику
PS> gpupdate /force

# Посмотреть применённые политики
PS> gpresult /r

Важные политики

Безопасность учётных записей

  • • Пароль: минимум 12 символов
  • • Блокировка после 5 неудачных попыток
  • • Запрет использования старых паролей
  • • Отключение гостевой учётной записи
  • • Переименование администратора

Аудит и логирование

  • • Аудит входа в систему
  • • Аудит изменения прав
  • • Аудит доступа к объектам
  • • Политика аудита (успех/неудача)
  • • Централизованное собирание логов

Командная строка

# Просмотр всех локальных политик
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
📝

Логирование и аудит (Event Log)

Forensics

Windows ведёт подробные логи событий. Правильная настройка логирования критически важна для обнаружения вторжений и форензики.

Основные журналы

Security

Входы, выходы, изменения прав, аудит объектов

System

Службы, драйверы, перезагрузки

Application

События приложений

PowerShell

Все команды PowerShell (Module Logging)

Sysmon

Расширенное мониторирование (процессы, сети, файлы)

Windows Defender

Обнаруженные угрозы и действия

Команды для анализа логов

# Просмотр журнала безопасности
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

Hardening

Пошаговый харденинг Windows для максимальной безопасности. Каждый пункт снижает поверхность атаки.

1. Отключение ненужных служб

# Список служб для отключения
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

2. Отключение SMB v1

# 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

3. Отключение AutoPlay/AutoRun

# Запрет 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

4. Настройка аудита

# Аудит входа (успех и неудача)
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

5. Политика паролей

# Минимальная длина 12 символов
net accounts /minpwlen:12

# Максимальный срок жизни 90 дней
net accounts /maxpwage:90

# Запрет старых паролей (5)
net accounts /uniquepw:5

# Блокировка после 5 попыток
net accounts /lockoutthreshold:5 /lockoutduration:30

6. Автоматические обновления

# Проверить последние обновления
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 = Автоматически загружать и устанавливать

Чек-лист харденинга

✅ Включить BitLocker на системном диске
✅ Включить Windows Defender + Real-time
✅ Включить Firewall на всех профилях
✅ UAC на максимальном уровне
✅ Отключить SMBv1
✅ Отключить AutoPlay/AutoRun
✅ Включить аудит входа и изменений
✅ Настроить политику паролей (12+ символов)
✅ Отключить ненужные службы
✅ Включить автоматические обновления
✅ Включить логирование PowerShell
✅ Установить Sysmon для мониторинга
🧰

Полезные инструменты

Sysmon

Расширенное логирование процессов, сети, файлов

sysmon -i config.xml

Process Explorer

Детальный анализ процессов

procexp.exe

Autoruns

Все точки автозагрузки

autoruns.exe

Accesschk

Проверка прав доступа

accesschk.exe -uwc "Users"

Sigcheck

Проверка подписей файлов

sigcheck.exe -u

PSLoggedOn

Кто залогинен в системе

psloggedon.exe