Система доменных имен (DNS) — распределённая система именования в интернете, которая преобразует понятные человеку доменные имена, например example.com, в IP-адреса, используемые компьютерами для подключения.
Как работает DNS
DNS разработал Пол Мокапетрис в 1983 году; система описана в RFC 1034 и 1035. Когда пользователь открывает сайт, устройство обращается к рекурсивному резолверу (обычно его держит провайдер, компания или публичный сервис). Резолвер проходит по иерархии — корневые серверы, затем серверы доменов верхнего уровня вроде .com, затем авторитативные серверы имен домена — и кеширует ответ на время, заданное в TTL. Распространённые типы записей: A и AAAA (адреса IPv4/IPv6), MX (почтовые серверы), CNAME (псевдонимы), NS и TXT (используются для SPF, DKIM и DMARC). Классический DNS работает по UDP и TCP на порте 53 без шифрования.
Почему DNS важна для безопасности
Почти любое соединение начинается с DNS-запроса, поэтому контроль над DNS означает контроль над тем, куда попадёт пользователь:
- Отравление кеша DNS — поддельные ответы, сохранённые резолверами; открытие Дэна Камински в 2008 году показало, насколько это практично.
- Перехват DNS — изменение записей или настроек резолвера; так действовала кампания Sea Turtle, о которой сообщили в 2019 году, перенаправляя домены госучреждений и компаний.
- DNS-туннелирование — вредоносное ПО прячет трафик управления и кражу данных в DNS-запросах (MITRE ATT&CK T1071.004).
- DDoS — DDoS-атака ботнета Mirai на DNS-провайдера Dyn в 2016 году сделала недоступными крупные сайты; открытые резолверы также используют для усиления атак.
Как защитить DNS
- Подписывать зоны и проверять ответы с помощью DNSSEC (RFC 4033–4035).
- Блокировать изменения доменов у регистратора и защищать аккаунты регистратора с помощью MFA.
- Журналировать и анализировать DNS-запросы, чтобы выявлять туннелирование и вредоносные домены, и использовать защитную DNS-фильтрацию.
- Шифровать запросы с помощью DNS over TLS или DNS over HTTPS там, где это уместно.