Что вам нужно знать о «захвате DNS» — веб-безопасность (1)

HTTPS DNS
Что вам нужно знать о «захвате DNS» — веб-безопасность (1)

Оригинальная ссылка

Введение

Предыстория: во время интервью с техническим директором меня внезапно спросили, сталкивался ли я с перехватом DNS в обычном процессе разработки, ах, что такое перехват DNS? Все знания о DNS внезапно вылетели у меня из головы, и я вспомнил проблемы, с которыми столкнулся в своей предыдущей работе, она была очень сумбурной, и я не знал окончательного ответа. После усердной учебы я вернулся, чтобы быстро сделать домашнее задание, поэтому у меня есть эта статья.

Перехват DNS (DNS Hijacking): Также известный как перехват доменного имени, перенаправление DNS (перенаправление DNS), представляет собой метод атаки DNS. То есть DNS-запрос не разрешается правильно, поэтому пользователь направляется на посещение вредоносного веб-сайта, тем самым похищая конфиденциальность пользователя или выполняя некоторые вредоносные операции.

Перехват DNS против перехвата HTTP

Прежде чем приступить к формальному представлению перехвата DNS, сравнение с перехватом HTTP может помочь некоторым учащимся легче понять следующее.

Феномен перехвата DNS: вы вводите URL-адрес google.com, и открывается страница Baidu.

Явление перехвата HTTP: при посещении страницы github в правом нижнем углу появляется неуместное всплывающее окно с рекламой.

подобно:

Перехват DNS забрасывает вас на вокзал, когда вы хотите поехать в аэропорт. Перехват HTTP — это когда вы идете в аэропорт, и кто-то наполняет вас небольшими рекламными объявлениями,

2. Что такое DNS

Прежде чем разбираться с перехватом dns, давайте вспомним, как работает dns

DNS (система доменных имен или служба доменных имен), система разрешения доменных имен (служба): в онлайн-мире сервер (сервер) идентифицируется по IP-адресу, а доступ к веб-сайту (клиенту) можно получить через порт 80/443. (http/https), поэтому некоторые веб-сайты (без ограниченного доступа по IP-адресу) также могут быть доступны напрямую через IP-адрес. Ответственность DNS заключается в преобразовании трудно запоминаемых IP-адресов.картаПары удобных, легко запоминающихся доменов. С такой таблицей сопоставления (:notes: обратите внимание, что это не отношение один к одному, один сервер (IP) может соответствовать нескольким доменным именам), чтобы пользователи могли напрямую вводить доменное имя и находить соответствующий IP-адрес сервера. адрес через DNS-сервер.

Например, мы команду копать в терминалеhttps://www.tungee.com/(Технология отслеживания) Вы можете увидеть соответствующий IP-адрес сервера (49.99.141.230)

image.pngотwww.tungee.comприбыть49.99.141.230Процесс разрешения доменных имен называется разрешением доменных имен, и разрешение доменных имен должно выполняться выделенным сервером разрешения доменных имен.

Примечание. Общий веб-сайт будет выбран для размещения на виртуальном хосте, и многие веб-сайты размещаются на хосте, и каждый веб-сайт привязан к одному или нескольким доменным именам. Несмотря на то, что на хосте есть несколько сайтов, когда пользователь посещает сайт, сервер получает доступ к каталогу развертывания соответствующего сайта в соответствии с информацией http-сообщения (доменное имя), так что несколько сайтов могут быть настроены на одном сервере, даже если сайтов несколько.сайтов и не будет мешать друг другу. Но используя IP-доступ, хост не знает конкретную директорию, к которой обращается пользователь, и запрос будет ненормальным. )

3. Принцип разрешения DNS

1. Шаги запроса

image.pngНа изображении выше (источник изображения из Интернета, если есть какие-либо нарушения, пожалуйста, свяжитесь, чтобы удалить его), мы можем примерно увидеть общие шаги:

  1. Клиент (браузер) отправляет доменное имя (например,www.tungee.com) для разрешения запроса сначала проверьте, есть ли в кеше браузера IP-адрес, соответствующий разрешению доменного имени, и вернитесь напрямую, если он есть.

  2. Если кеш браузера пользователя не найден, он сначала будет искать в файле hosts операционной системы (я слышал, что на устройстве ios нет этого шага, чтобы проверить).Если есть соответствующий IP-адрес доменного имени, он вернется напрямую.

  3. Если локальный файл hosts не найден, он инициирует запрос на локальный сервер доменных имен (локальный DNS) внешней сети.После того, как локальный сервер получит запрос, он сначала запросит локальный кеш и вернется напрямую, если есть какие-либо.

    Серверы доменных имен в локальной области обычно работают хорошо.Как правило, они кэшируют результаты разрешения доменных имен.Конечно, время кэширования зависит от времени истечения срока действия доменного имени.Как правило, объем кэш-памяти не является основным фактором, влияющим на доменное имя. истечение срока. Здесь выполнено около 90% разрешения доменного имени, поэтому LDNS в основном отвечает за разрешение доменного имени.

  4. Если в кэше LDNS нет результата, он инициирует запрос к серверу доменных имен, а корневое доменное имя (Root Server) возвращает запрошенный домен (субдомен корня, например.com) адрес основного сервера доменных имен (сервер gTLD), gTLD — это международный сервер доменных имен верхнего уровня, например .com, .cn, .org и т. д. Я слышал, что их всего около 13 в мире.

  5. Впоследствии локальный сервер отправляет запрос на следующий шаг вверх, а затем обратно на сервер доменных имен.

  6. Сервер рДВУ, который принимает запрос, находит и возвращает адрес сервера доменных имен сервера имен, соответствующего доменному имени.Этот сервер имен обычно является сервером доменных имен, который вы зарегистрировали, например доменное имя, на получение которого вы подали заявку в службе доменных имен. провайдер, то эта задача разрешения доменного имени Сервер этого провайдера доменного имени для завершения.

  7. Получив адрес сервера имен, локальный DNS снова отправляет запрос серверу имен. Провайдер сервера имен — это поставщик доменных имен, на который вы подали заявку. доменные имена и IP-адреса.При нормальных обстоятельствах оба получают целевую запись IP на основе доменного имени.

  8. Локальный DNS получилwww.tungee.comПосле соответствующего ip-адреса и значения TTL (аббревиатура Time to live, то есть значение 588 выше) соответствие между доменным именем и ip будет кэшироваться по значению TTL.

  9. Наконец, ip-адрес возвращается в браузер.

2. Интерпретация вывода команды dig+domain name

Хотя в итоге возвращается только один IP-адрес, процесс запроса все еще очень сложен.Он разделен на несколько шагов.Вы можете приблизительно узнать процесс запроса с помощью команды dig (под Windows требуется дополнительный инструмент dig).

dig tungee.com 

Появятся следующие разделы информации

image.png

  • Первый абзац — версия инструмента для раскопок, параметры запроса и статистика.

image.png

  • Второй абзац — содержание запроса

image.png

  • Третий абзац — это ответ от DNS-сервера

image.png

Приведенные выше результаты показывают, что у tungee 1 запись A, то есть 1 IP-адрес. 588 — это значение TTL (сокращение от Time to live), которое указывает время кэширования, то есть отсутствие необходимости повторного запроса в течение 588 секунд.

  • В четвертом абзаце показаны NS-записи tungee.com (аббревиатура Name Server), то есть какие серверы отвечают за управление DNS-записями tungee.com

image.png

Приведенные выше результаты показывают, что tungee.com имеет в общей сложности 2 NS-записи, а именно серверы доменных имен 2. Вы можете узнать IP-адрес tungee.com, запросив любой из них.

  • Пятый абзац — это IP-адрес 2-х вышеперечисленных серверов доменных имен, который возвращается вместе с предыдущим абзацем.

image.png

  • Шестой абзац — некоторая информация о передаче DNS-сервера

image.png

Приведенные выше результаты показывают, что локальный DNS-сервер — 192.168.1.253, порт запроса — 53 (порт по умолчанию для DNS-сервера), а длина ответа — 418 байт.

Для получения дополнительной информации о команде dig и ее интерпретации см. ссылку на справочный список или в Google или Baidu.

3. DNS-сервер

На скриншоте шестой пункт выше

;; SERVER: 202.96.128.86#53

Это выше IP-адреса DNS-сервера текущего компьютера, IP-адрес автоматически назначается DNS-сервером (конечно, вы также можете настроить), и при подключении пользователя к сети операторы широкополосного доступа назначат DNS-сервер, когда этот сервер обычно самый быстрый из ближайший сервер.

image.png

На картинке выше показан DNS-сервер, назначенный текущим компьютером оконного компьютера.IP-адрес DNS-сервера систем Mac и Linux сохраняется в файле /etc/resolv.conf

Если пользователю необходимо вручную установить DNS-сервер из-за некоторых сетевых проблем и проблем с безопасностью, это также возможно

image.png

На приведенном выше рисунке показана страница настройки DNS-сервера, вы можете прочитать о ручной настройке IP-адреса общедоступного DNS-сервера.Какой общедоступный DNS сильнее?

4. Иерархия доменных имен

С точки зрения шагов запроса доменное имя является иерархическим.

Например,www.tungee.comНастоящее доменное имяwww.tungee.com.root

Поскольку корневое доменное имя всех доменных имен.rootТак что он опущен по умолчанию

Следующий уровень имени корневого домена называется «домен верхнего уровня», например.com .net

Следующий уровень — это «домен второго уровня» (домен второго уровня), напримерwww.tungee.comвнутриtungee, Пользователи доменного имени этого уровня могут зарегистрироваться.

Следующий уровень - это имя узла (host), напримерwww.tungee.comwww в нем, также известное как «доменное имя третьего уровня», — это имя, присвоенное пользователем серверу в его собственном домене, которое может быть назначено пользователем произвольно.

Имя хоста.Вторичный домен.Домен верхнего уровня.Корневой домен

www.tungee.com.root

5. Пример демонстрации иерархического запроса

Мы уже представили иерархию доменных имен, так как же выполнять иерархические запросы?

Мы можем использовать команду dig для отображения процесса запроса каждого уровня записей доменных имен.

dig +trace www.tungee.com

Каждый уровень имеет свою собственную запись NS домена, точки записи NS (следующие) — это уровень серверов доменных имен, которые знают все виды записей в доменном имени (аналогия телефонной книги, запись отношений доменного имени и сопоставления IP-адресов).

Примерно иерархический процесс запроса выглядит следующим образом:

  • Сначала локальный DNS-сервер инициирует запрос к корневому доменному имени,
  • «Корневой сервер доменных имен» находит запись NS и запись A (IP-адрес) «сервера доменных имен верхнего уровня».
  • Найдите запись NS и запись A (IP-адрес) «дополнительного сервера доменных имен» на «сервере доменных имен верхнего уровня».
  • Узнайте IP-адрес «имени хоста» на «дополнительном сервере имен»

Если вы внимательно об этом подумаете, то обнаружите, как локальный DNS-сервер узнает IP-адрес корневого доменного имени?

Ответ заключается в том, что в настоящее время в мире существует только тринадцать корневых серверов доменных имен.a.root-servers.net.прибытьm.root-servers.net., соответствующие им IP-адреса уже встроены в локальный DNS-сервер

image.png

Приведенный выше снимок экрана примерно разделен на 4 части.

1. Первый абзац

image.png

Основываясь на IP-адресе встроенного корневого сервера доменных имен, DNS-сервер отправляет запрос на все эти IP-адреса, запрашиваяwww.tungee.comЗапись NS для сервера доменных имен верхнего уровня com.

2. Второй абзац

затем кj.root-server.net13 вернулись.comЗапись NS доменного имени также возвращает IP-адрес каждой записи (здесь показаны не все записи), а затем DNS отправляет запросы запросов на эти серверы доменных имен верхнего уровня. Запросите запись NS поддомена tungee.com

image.png

3. Третий абзац

image.png

Точно так же первый возвращаемый результатi.gtld-server.netРезультаты запроса сервера доменных имен, соответственно2В то же время возвращается соответствующий IP-адрес каждой записи NS, а затем DNS-сервер запрашивает у двух вышеуказанных NS-серверов IP-адрес узла tungee.com.

4. Четвертый абзац

image.pngпервый, кто вернулсяdns10.hichina.comРезультат запроса сервера доменных имен NS (A, Address, возвращенная запись ip-адреса), после получения ip-адреса DNS-сервер кэширует его и возвращает в браузер

В-четвертых, методы перехвата DNS и предотвращение

Из вышеизложенного мы можем узнать принцип разрешения DNS, этапы разрешения, и если в процессе разрешения DNS возникнут какие-либо проблемы, это может привести к ошибкам разрешения DNS, в результате чего клиент (браузер) получит поддельный IP-адрес, тем самым направляя Посетите этот самозваный вредоносный веб-сайт.

Вред, причиняемый перехватом DNS:

1. Мошенничество с фишингом

2. Безопасность платежей в интернет-магазинах

3. Раскрытие личной жизни

4. Слегка влияет на скорость Интернета, а в тяжелых случаях не может выйти в Интернет

1. Способы перехвата DNS

image.png Вот несколько методов перехвата DNS

1. Перехват собственного DNS

Злоумышленник каким-либо образом заражает компьютер пользователя троянским вирусом или вредоносным программным обеспечением и злонамеренно изменяет локальную конфигурацию DNS, например, изменяя локальный файл hosts, кеш и т. д.

2. Маршрутизация перехвата DNS

Многие пользователи по умолчанию используют пароль маршрутизатора по умолчанию.Злоумышленник может взломать учетную запись администратора маршрутизации и изменить конфигурацию маршрутизатора по умолчанию.

3. Атаковать DNS-сервер

Прямая атака на DNS-сервер, например, DDOS-атака на DNS-сервер, DNS-сервер может быть отключен, возникают ненормальные запросы, и некоторые методы могут использоваться для заражения кеша DNS-сервера, так что злонамеренный IP-адрес возвращается на Пользователь.

4. Используйте HTTP DNS вместо локального DNS

2. Предотвращение DNS

В этом угоне от вышеуказанных методов сказали, что несколько методов означает

1. Усильте локальную проверку компьютера на вирусы, откройте брандмауэр и т. д., чтобы предотвратить заражение компьютера вредоносными программами и троянскими вирусами.

2. Измените пароль маршрутизатора по умолчанию, чтобы злоумышленники не могли изменить конфигурацию DNS маршрутизатора, чтобы указать на вредоносные DNS-серверы.

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

4. Используйте HTTP DNS вместо локального DNS

Для перехвата DNS часто трудно решить только личными настройками.Если явление захвата уже произошло, подойдите к компьютеру, чтобы вылечить, очистить, проверить файл hosts и проверить конфигурацию DNS сетевых настроек (можно использовать общедоступный DNS-сервер)

Наконец, я написал эту статью после проверки большого количества информации, чтобы пополнить свои знания в этой области.Позже я рассмотрю возможность продолжить писать о веб-безопасности - атака ddos, xss, csrf и т. д.

Reference

Далее ссылки, дополнительные статьи, спасибо авторам следующих статей за их идеи