Подмена провайдером DNS-запросов

в 16:51, , рубрики: DNSSEC, mitm, дом.ru, информационная безопасность
Предыстория

После принятия всем известных законов в нашем Отечестве, я выхожу в инет через западный VPN-сервер.

Вчера, по причине некоторых проблем с основным провайдером, я временно переключился на провайдера под названием Дом.ру.

Сегодня, я лазил в гугле и искал некоторую информацию по уходу за кактусами. Одна из ссылок привела меня на сайт psy*****s.org. Там, как выяснилось, вовсю торгуют «веществами». И кактусы тоже продают, правда, довольно специфические.

Но, об этом я узнал позже, а сначала, я был шокирован показом мне странички «доступ к данному ресурсу был заблокирован...» с логотипом Дом.РУ.

С тех пор, как купил ВПН, я такие страницы не наблюдал вообще, по понятной причине.

Расследование

Для начала, я решил проверить, а работает ли мой VPN?
Проверил самым тупым способом — зашёл на сайт my-ip.ru. Увидел свой свой голландский IP, следовательно, c VPN всё в порядке.

Начал разбираться дальше. Мысль, что Дом.РУ каким-то образом может расковырять ssl, я отмёл сразу.

Проверил маршрут при помощи traceroute. Маршрут до сайта psy*****s.org ведёт, как положено, через мой VPN-сервер, а потом приводит на ДОМРУшную заглушку с адресом 92.255.241.100.

Остаётся ДНС. Но, на моём домашнем сервере настроен кэширующий ДНС-сервер bind, и в качестве forwarders указаны гугловские 8.8.8.8 и 8.8.4.4. Есть только одно «но»: доступ к этим серверам идёт по открытому каналу.

Проверяем:

ksh@master:~$ nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> psy*****s.org
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	psy*****s.org
Address: 92.255.241.100

Теперь, заворачиваем трафик до внешних ДНС-серверов через VPN и проверяем снова:

ksh@master:~$ nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> psy*****s.org
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	psy*****s.org
Address: 37.252.124.170

Ситуация понятна.

Морально-этическую и законную стороны действий провайдера, думаю, обсуждать смысла нет. По сути, речь идёт об атаке MITM.

Что делать?

Использовать DNSSEC — не выход, хотя, публичные сервера от Google и поддерживают этот протокол. Да, фальшивые ответы не пройдут валидацию, и в результате у вас попросту отвалится ДНС.

Выход один — любым способом шифровать трафик до публичных ДНС-серверов.

Интересна, также, позиция Google по этому вопросу.

Автор: Shaltay

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js