Система доменних імен (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 там, де це доречно.