Підміна провайдером DNS-запитів

Передісторія
Після прийняття всіх відомих законів в нашій Вітчизні, я виходжу в інет через західний 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 з цього питання.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.