Как у администрации Приморского края сайт увели

18 октября 2013 года посреди рабочего дня у нашей горячо любимой администрации Приморья стырили сайт. Точнее не стырили, а внезапно изрядная часть горожан, набирая приморскийкрай.рф, стали видеть не сайт администрации ПК, а стрелку осциллографа в самом натуральном виде http://tetr.ru/. Пост в песочнице сразу превратился в срач и наполнился комментариями и версиями специалистов и штатных трепологов. Надо сказать, бдительные у нас люди. Что касается политической бдительности, тут даже Гитлер позавидовал бы. Дополнительного масла в огонь добавил тот момент, что примерно половина пользователей видела на сайте недобро щурящегося губернатора, а вторая половина - пресловутую стрелку осциллографа. Самая упоротая версия из прозвучавших: губернатор за бабки рекламирует проклятых московских капиталистов. Тут мой личный хренометр не выдержал и я попытался разобраться, а что же там происходит. Хотя корень проблемы ясен сразу: у кого-то хреново работает DNS. Одним система доменных имен дает правильный IP-адрес 78.24.220.234, другим - неправильный 151.248.125.106.

Посмотрим на домен приморскийкрай.рф, который на самом деле выглядит как вот такая нечитаемая херня на радость любителям кириллических доменов xn--80apaebccmshldej.xn--p1ai

> whois xn--80apaebccmshldej.xn--p1ai
domain: XN--80APAEBCCMSHLDEJ.XN--P1AI
nserver: dns.primorsky.ru.
nserver: ns.vlad.ru.

state: REGISTERED, DELEGATED, VERIFIED
org: Primorsky krai administration
registrar: RUCENTER-REG-RF
admin-contact: https://www.nic.ru/whois
created: 2009.11.24
paid-till: 2013.11.24
free-date: 2013.12.25
source: TCI

Видим два DNS-сервера, отвечающих за зону. Смотрим, что они знают про искомый домен:

> dig @dns.primorsky.ru xn--80apaebccmshldej.xn--p1ai
; <<>> DiG 9.9.2-P1 <<>> @dns.primorsky.ru xn--80apaebccmshldej.xn--p1ai
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48768
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xn--80apaebccmshldej.xn--p1ai. IN A
;; ANSWER SECTION:
xn--80apaebccmshldej.xn--p1ai. 86400 IN A 78.24.220.234
;; AUTHORITY SECTION:
xn--80apaebccmshldej.xn--p1ai. 86400 IN NS dns.primorsky.ru.
;; ADDITIONAL SECTION:
dns.primorsky.ru. 86400 IN A 80.89.7.138
;; Query time: 11 msec
;; SERVER: 80.89.7.138#53(80.89.7.138)
;; WHEN: Fri Oct 18 17:24:28 2013
;; MSG SIZE  rcvd: 120

Первый сервер отдает правильные данные.

> dig @ns.vlad.ru xn--80apaebccmshldej.xn--p1ai
; <<>> DiG 9.9.2-P1 <<>> @ns.vlad.ru xn--80apaebccmshldej.xn--p1ai
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 33642
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1024
;; QUESTION SECTION:
;xn--80apaebccmshldej.xn--p1ai. IN A
;; Query time: 8 msec
;; SERVER: 212.107.200.68#53(212.107.200.68)
;; WHEN: Fri Oct 18 17:30:53 2013
;; MSG SIZE  rcvd: 58

 

Второй сервер посылает лесом, а положенный для сервиса DNS 53-й порт просто не отвечает. Ну, не настроили, бывает.

В этом месте всем борцам с коррупцией и администрацией стоит сразу успокоиться. Если сервер управляющий зоной дает корректные данные, то все остальное от него не зависит и какие-то злодеи сидят явно не в администрации ПК. Но где?

Добиться какой-то информации от пишущих в комментах поста мне было сложно, но тут я заметил, что и мой домашний компьютер тоже поражен этим раком. Обычным образом адрес приморскийкрай.рф разрешался в стрелку осциллографа. Прямой запрос к публичному DNS-серверу Google 8.8.8.8 через dig давал верные данные, а вот nslookup туда же, склонялась к осциллографам. Два доступных мне сервера в Европе и один в Америке получали корректные данные обоими способами. Я не слишком большой специалист в тонкостях работы вышеуказанных программ, но явно все упиралось в моего провайдера Альянс-Телеком или inetvl.ru. Посмотрим его.

> whois inetvl.ru
domain:        INETVL.RU
nserver:       ns1.inetvl.ru. 95.154.112.75
nserver:       ns2.inetvl.ru. 95.154.113.10

state:         REGISTERED, DELEGATED, UNVERIFIED
org:           OCTOPUSNET CO., LTD.
registrar:     R01-REG-RIPN
admin-contact: https://partner.r01.ru/contact_admin.khtml
created:       2007.05.04
paid-till:     2014.05.04
free-date:     2014.06.04
source:        TCI

Тоже два неймсервера. И вот при проверке разрешения адресов на них ларчик и открылся.  Если первый сервер, показывал правильные данные:

> dig @ns1.inetvl.ru xn--80apaebccmshldej.xn--p1ai
; <<>> DiG 9.9.2-P1 <<>> @ns1.inetvl.ru xn--80apaebccmshldej.xn--p1ai
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51448
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xn--80apaebccmshldej.xn--p1ai. IN A
;; ANSWER SECTION:
xn--80apaebccmshldej.xn--p1ai. 73543 IN A 78.24.220.234
;; AUTHORITY SECTION:
xn--80apaebccmshldej.xn--p1ai. 73543 IN NS dns.primorsky.ru.
;; ADDITIONAL SECTION:
dns.primorsky.ru. 276227 IN A 80.89.7.138
;; Query time: 2 msec
;; SERVER: 95.154.112.75#53(95.154.112.75)
;; WHEN: Fri Oct 18 17:55:08 2013
;; MSG SIZE  rcvd: 120

То второй указывал на стрелку осциллографа:

 > dig @ns2.inetvl.ru xn--80apaebccmshldej.xn--p1ai
; <<>> DiG 9.9.2-P1 <<>> @ns2.inetvl.ru xn--80apaebccmshldej.xn--p1ai
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4536
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xn--80apaebccmshldej.xn--p1ai. IN A
;; ANSWER SECTION:
xn--80apaebccmshldej.xn--p1ai. 60012 IN A 151.248.125.106
;; AUTHORITY SECTION:
xn--80apaebccmshldej.xn--p1ai. 60012 IN NS dns.primorsky.ru.
;; ADDITIONAL SECTION:
dns.primorsky.ru. 68168 IN A 80.89.7.138
;; Query time: 3 msec
;; SERVER: 172.16.0.38#53(172.16.0.38)
;; WHEN: Fri Oct 18 17:58:15 2013
;; MSG SIZE  rcvd: 122

151.248.125.106 - это адрес сайта злополучной фирмы по продаже измерительных приборов. Проблема, как сразу и заметил один из понимающих товарищей в треде, была в неправильной A-записи на одном из NS-серверов одного популярного интернет-провайдера Владивостока.

Но не стоит сразу обвинять его админов в криворукости, кривожопости и прочих смертных грехах. Шутка юмора в том, что они тоже не виноваты в этом. Поскольку их неймсервер не отвечает за зону приморскийкрай.рф, то эта информация поступает не из статичных записей в файле зоны, а из DNS-кеша, который постоянно обновляется и пополняется с других серверов и от владельца сервера мало зависит. Чтобы вся эта балалайка под названием Интернет могла нормально функционировать, DNS-серверам приходится доверять друг другу. Скорее всего где-то на пути от dns.primorsky.ru до ns2.inetvl.ru информация об IP сайта была подменена и кеширована атакованным сервером. И поскольку в треде отметился и пользователь Ростелекома, не только у Альянса это случилось.

Итак, мои скромные выводы. Вполне явно - это атака на DNS с целью подмены сайта администрации Приморья. Это имеет сейчас смысл в связи с интеграцией сайтов региональных властей с госуслугами, где могут представлять интерес персональные данные. О методах и способах атаки рассуждать не буду. Тут я не настолько специалист. Но вот подмена сайтом сторонней организации, а не подделкой, ставит под сомнение, что у атаки была именно такая цель. Малолетние хакеры тренировались?  Или банальная ошибка в настройках атаки? Не знаю. Одно явно, ни администрация Приморья ни провайдеры Интернет во Владивостоке вряд ли имеют к произошедшему отношение. Как и компания, на которую вел IP. Их проблема только в том, что в ответ на HTTP-запрос с любым неподходящим полем Host их сервер выдает сайт по умолчанию tetr.ru. Но даже это - широко распространенная настройка.

В заключение, рекомендация. Если вы увидели подмену сайта, не бегайте по социальным сетям с криками, а уведомите о происходящем техподдержку своего провайдера. Как минимум, вам исправят ситуацию. Как максимум, уведомят соответствующие органы об источнике атаки. Потому что, если подмененным и уже по-серьезному окажется сайт Сбербанка или WM, а тут вы со сввоей оплатой за интернет, то мало вам не покажется.