Защита от подмены кэша DNS (Cache Poisoning) в Windows Server
Симптомы атак DNS Cache Poisoning
Подмена кэша DNS (DNS Cache Poisoning / Kaminsky Attack) происходит, когда злоумышленник отправляет фальшивые авторитетные ответы на рекурсивные запросы вашего DNS-сервера. При успешной атаке клиенты перенаправляются на фишинговые IP-адреса.
| Признак | Где проявляется | Риск безопасности |
|---|---|---|
| Некорректные IP внешних ресурсов | Локальные DNS-клиенты | Перехват конфиденциальных данных и корпоративной почты |
| Массовые запросы с нестандартных портов | Анализатор трафика / DNS Log | Попытка подбора Transaction ID запроса |
| Event ID 4015 / DNS Server Warning | Журнал DNS Server | Критический сбой или переполнение таблиц кэша |
Пошаговая настройка защиты DNS-сервера от подмены кэша
- Включите блокировку кэша (DNS Cache Locking): данный механизм запрещает перезаписывать записи в кэше до истечения их TTL. Оптимальный процент блокировки — 100%:
Set-DnsServerSetting -CacheLockingPercent 100 -Force - Включите защиту от загрязнения кэша (Secure Cache Against Pollution): сервер будет игнорировать записи в секции Additional/Authority, если они не относятся к запрашиваемому домену:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\DNS\Parameters" -Name "SecureResponses" -Value 1 -Type DWord -Force; Restart-Service -Name DNS -Force - Настройте проверку DNSSEC для исходящих рекурсивных запросов:
Set-DnsServerSetting -EnableDnsSec $true - Очистите скомпрометированный системный кэш DNS:
Clear-DnsServerCache -Force
Совет: Всегда используйте пересылку (DNS Forwarders) только на проверенные защищенные DNS-серверы (например, 1.1.1.1, 8.8.8.8 или шлюзы с защитой Quad9).
Частые вопросы (FAQ)
Что такое Cache Locking простыми словами?
Это защита кэша Windows DNS, которая блокирует изменение или перезапись закэшированной записи злоумышленником до тех пор, пока не истечет ее оригинальное время жизни (TTL).
Как злоумышленники проводят атаку Каминского на DNS?
Они генерируют тысячи запросов к несуществующим субдоменам целевого сайта и одновременно забрасывают DNS-сервер поддельными ответами, пытаясь угадать 16-битный ID транзакции и UDP-порт.
Влияет ли CacheLockingPercent на производительность DNS?
Нет, это встроенный алгоритм фильтрации памяти, который не создает вычислительной нагрузки на процессор.
Как проверить содержимое кэша DNS-сервера Windows?
Используйте команду Show-DnsServerCache в PowerShell или оснастку DNS Manager (узел 'Кэшированные поиски').