DNSSEC (Domain Name System Security Extensions) — это набор расширений протокола DNS IETF, который сводит к минимуму атаки, связанные со спуфингом DNS-адреса во время разрешения доменного имени. Его цель — предоставить клиентам DNS (термин преобразователя) подлинные ответы на запросы DNS (или достоверную информацию о том, что данные отсутствуют) и обеспечить их целостность. При этом используется криптография с открытым ключом. Доступность данных и конфиденциальность запросов не гарантируются. Безопасность DNS имеет важное значение для общей безопасности в Интернете.
Особенность заключается в том, что DNSSec использует два типа ключей: один подписывает зону (ZSK, ключ подписи зоны), другой подписывает набор ключей (KSK, ключ подписи ключа). Это было сделано по следующим причинам: зона может быть достаточно большой, чтобы найти закрытый ключ, поэтому ее нужно менять чаще, и ее можно сделать короче, чтобы зоны подписывались быстрее; KSK используется для небольших объемов данных, поэтому его можно увеличить и менять реже. Более того, хеш из открытой части KSK необходимо отправлять в родительскую зону, что хотелось бы делать не слишком часто.
Допустим мы хотим узнать адрес test.bar.example.com:
Во-первых, о проблемах, создаваемых DNSSec:
Все это — плата за то, чтобы быть уверенным в информации, полученной от авторитетных DNS-серверов. По сути, это своего рода щит от фишинга, атак вредоносных программ, атак с использованием DNS в качестве интернет-протокола.
Описание конфигурации DNSSec для серверов под управлением Windows Server и Linux выходит за рамки нашей статьи, и, по сути, все эти «административные манипуляции» больше относятся к администрированию, чем к искусству взлома. Поэтому ниже я приведу пример конфигураций DNSSec для указанных платформ в виде ссылок на отдельные пошаговые инструкции:
1) Примеры самих настроек DNSSec на базе BIND для Linux (CentOS и Ubuntu)
2) Настройка DNSSec для Windows Server 2012
Любой, кто использует сервисы конфиденциальности, такие как VPN, TOR или даже Tails, вероятно, думает, что они надежно защищены от посторонних глаз. К сожалению, это не всегда так. Существует очень важный канал утечки вашей личной информации — служба DNS. Но, к счастью, для этого есть решение. И сегодня я расскажу вам, как зашифровать ваш DNS-трафик с помощью утилиты DNSCrypt.
Когда вы используете HTTPS или SSL, ваш HTTP-трафик зашифрован, то есть защищен. Когда вы используете VPN, весь ваш трафик уже зашифрован (конечно, все зависит от настроек VPN, но, как правило, это так). Но иногда, даже при использовании VPN, ваши DNS-запросы не шифруются, они передаются как есть, что открывает огромное пространство для «творчества», включая атаки MITM, перенаправление трафика и многое другое.
Здесь на помощь приходит утилита с открытым исходным кодом DNSCrypt, разработанная создателями хорошо известной вам OpenDNS — программы, позволяющей шифровать DNS-запросы. После установки на свой компьютер ваши соединения также будут защищены, и вы сможете более безопасно пользоваться Интернетом. Конечно, DNSCrypt — не панацея от всех проблем, а лишь один из инструментов безопасности. Вам по-прежнему необходимо использовать VPN-соединение для шифрования всего трафика, но оно будет более безопасным в сочетании с DNSCrypt. Если вас устраивает такое краткое объяснение, вы можете сразу перейти к разделу, где я опишу установку и использование программы.
Принцип работы DNSCrypt
Допустим, клиент (ноутбук на рисунке) пытается получить доступ к google.com. Первый шаг — преобразовать символическое имя хоста в IP-адрес. Если конфигурация сети такова, что используется DNS-сервер провайдера (незашифрованное соединение, красная линия на рисунке), символическое имя преобразуется в IP-адрес через незашифрованное соединение.
Да, никто не узнает, какие данные вы передадите на dkws.org.ua. Но есть очень неприятные моменты. Во-первых, провайдер, изучив журналы DNS, сможет узнать, какие веб-сайты вы посетили. Во-вторых, высока вероятность атак: подмена DNS и отслеживание DNS. Я не буду их подробно описывать, об этом написано много статей. Вкратце, ситуация может быть следующей: кто-то между вами и провайдером может перехватить DNS-запрос (а поскольку запросы не зашифрованы, перехватить запрос и прочитать его содержимое будет несложно) и отправить «ложный ответ». В результате вы вместо посещения google.com зайдете на сайт злоумышленника, как две горошины в пакете, похожем на тот, который вам нужен, введете свой форумный пароль, а дальше развитие событий, я думаю, понятно.
Такая ситуация называется DNS leaking (утечкой DNS). Утечка DNS происходит, когда ваша система, даже после подключения к серверу VPN или Tor, продолжает запрашивать DNS-серверы провайдера для разрешения доменных имен. Каждый раз, когда вы посещаете новый веб-сайт, подключаетесь к новому серверу или запускаете какое-либо сетевое приложение, ваша система использует поставщика DNS для преобразования имени в IP. В результате ваш интернет-провайдер или любой, кто находится на «последней миле», то есть между вами и интернет-провайдером, может получить все имена узлов, к которым вы обращаетесь. Вышеупомянутый вариант со спуфингом IP-адреса совершенно жесток, но в любом случае можно отслеживать посещенные вами веб-сайты и использовать эту информацию в своих целях.
Если вы «боитесь» своего интернет-провайдера или просто не хотите, чтобы он видел, какие сайты вы посещаете, вы можете (конечно, помимо использования VPN и других инструментов безопасности) дополнительно настроить свой компьютер для использования DNS-серверов Проект OpenDNS (www.opendns .com)
На данный момент это следующие серверы:
При этом никакого дополнительного программного обеспечения не требуется. Вам просто нужно настроить вашу систему для использования этих DNS-серверов.
Но проблема перехвата DNS-соединений все еще остается. Да, вы уже получаете доступ не к DNS провайдера, а к OpenDNS, но все равно можно перехватывать пакеты и видеть, что в них находится. То есть при желании можно узнать, к каким узлам вы обращались.
Итак, мы подошли к DNSCrypt. Эта программа позволяет зашифровать ваше DNS-соединение. Теперь ваш интернет-провайдер (и все между вами и ними) не будет точно знать, какие сайты вы посещаете! Я повторюсь. Эта программа не заменяет Tor или VPN. Как и раньше, остальные передаваемые вами данные передаются без шифрования, если вы не используете VPN или Tor. Программа шифрует только DNS-трафик.
Сайт http://dnsleak.com/ позволяет определить «утечку» DNS. Просто зайди на этот сайт. Нажав кнопку Check for DNS leaks now, ты получишь список DNS-серверов, через которые могут проходить твои запросы. Следовательно, ты увидишь, кто именно может узнать, какие сайты ты посещаешь.
Прежде всего, загрузите сам DNSCrypt с GitHub. Чтобы загрузить программу с GitHub, нажмите кнопку «Загрузить ZIP». Будет скачан архив с исходниками DNSCrypt. Уже скомпилированная версия находится в каталоге DNSCrypt архива. Распаковать файлы. По сути, вам нужен только один файл — dnscrypt-proxy.exe. Он находится в том же каталоге. Все остальное (источники) можно удалить.
Но это еще не все. Если ты уже погуглил, то, значит, видел скриншоты DNSCrypt. Запустив dnscrypt-proxy.exe, ты понял, что что-то не то. Программа запустилась в окне командной строки. Все правильно, ты скачал сам прокси, а теперь еще нужно скачать к нему оболочку. На GitHub есть еще один проект — необходимая нам оболочка (https://github.com/Noxwizard/dnscrypt-winclient).
Таким же образом скачайте ZIP-архив и распакуйте его куда-нибудь. Каталог двоичных файлов / Release / содержит программу dnscrypt-winclient.exe. Скопируйте этот файл в каталог, в котором находится файл dnscrypt-proxy.exe.
Осталось только запустить dnscrypt-proxy.exe. В появившемся окне выберите сетевые адаптеры, которые вы хотите защитить, и нажмите кнопку «Пуск». Если все в порядке, то рядом с кнопкой «Стоп» появится DNSCrypt is running (кнопка «Старт» изменится на нее).
Еще один более современный способ защиты DNS-трафика — это протокол DNS-over-TLS, описанный в стандарте RFC7858, то есть инкапсуляция данных в стандарте TLS. Для доступа рекомендуется использовать порт 853.
Как и в случае с DNScrypt, предполагается, что DNS-клиент, который обычно является тем же локальным кэширующим DNS, связывается с удаленными серверами, которые поддерживают DNS-over-TLS (см. Текущий список).
Вышеупомянутый Unbound имеет встроенную поддержку данного протокола, поэтому никакой дополнительной программной прослойки для использования, как это было в случае с DNScrypt, не требуется.
Для работы в качестве клиента DNS-over-TLS Unbound требует лишь список серверов в той же секции forward-zone файла конфигурации.
root@my:~ # cat /usr/local/etc/unbound/unbound.conf
server:
...
forward-zone:
name: "."
# Quad9
forward-addr: 9.9.9.9@853
forward-addr: 2620:fe::fe@853
...
forward-ssl-upstream: yes
...
Настроить Unbound в качестве сервера, обслуживающего запросы DNS-over-TLS, несложно. Для этого можно использовать существующие сертификаты TLS, например от Let’s Encrypt.
root@my:~ # cat /usr/local/etc/unbound/unbound.conf
server:
...
interface: 127.0.0.1
interface: ::1
interface: 0.0.0.0@853
interface: ::0@853
tls-service-key: "/usr/local/etc/letsencrypt/live/my.domain/privkey.pem"
tls-service-pem: "/usr/local/etc/letsencrypt/live/my.domain/cert.pem"
tls-port: 853
...
В данном случае Unbound по умолчанию обслуживает стандартные нешифрованные DNS запросы на локальном интерфейсе 127.0.0.1 и ::1, однако в данном случае понадобилось это указать в конфигурации в явном виде. Теперь также он доступен и для внешних запросов доступен исключительно по протоколу DNS-over-TLS на порту 853.
root@my:~ # sockstat -46 | grep unbound
unbound unbound 18533 3 udp4 127.0.0.1:53 *:*
unbound unbound 18533 4 tcp4 127.0.0.1:53 *:*
unbound unbound 18533 5 udp6 ::1:53 *:*
unbound unbound 18533 6 tcp6 ::1:53 *:*
unbound unbound 18533 7 udp4 *:853 *:*
unbound unbound 18533 8 tcp4 *:853 *:*
unbound unbound 18533 9 udp6 *:853 *:*
unbound unbound 18533 10 tcp6 *:853 *:*
Провайдер VPN предоставит вам безопасный туннель для передачи ваших данных, а DNSCrypt защитит ваши DNS-соединения. Конечно, услуги VPN-провайдеров платные, но ведь за безопасность нужно платить, неправда ли?
Вы, конечно, можете использовать Tor, но Tor относительно медленный, и, что бы там ни говорилось, это не VPN — не весь трафик можно «торифицировать». В любом случае (какой бы вариант вы ни выбрали) ваши DNS-соединения теперь защищены. Остается только определиться с инструментом шифрования трафика, если вы еще этого не сделали.
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…
View Comments
Где узнать про зачем нужен dnssec