Дисклеймер: в данной статье автор выражает свое оценочное суждение. Автор не призывает к противоправным действиям. Цель статьи - информирование читателей об угрозах в области информационной безопасности.
Я понимаю, что среди моих читателей много сисадминов, хакеров и программистов мирового уровня, но всё же позвольте мне начать с начала. Ведь есть и обычные пользователи. И им тоже интересно.
О DNS простым языком
Если знаете как работает DNS можете не читать.
Что означает сайт заблокирован? С точки зрения пользователя. А означает это то, что когда он вводит имя сайта, например rutracker.org он видит следующее.
У разных пользователей картинка может быть разная. И пользователь понимает, что это явно не торрент-трекер. Но адрес он ввел верно и даже попал на сайт. Что то тут не то. Сейчас я всё объясню.
Дело в том, что компьютеры не понимают имен. Обмен информацией между ними происходит по ip адресам. И когда пользователь вводит в браузере rutracker.org, то браузер изначально не знает откуда брать информацию, откуда ему загружать сайт. Браузеру нужен ip, например 195.82.146.114, а ему вводят rutracker.org.
Имена сайтов, которые мы вводим в браузер и созданы для удобства людей. Мы вряд ли запомним 195.82.146.114 и кучу других адресов наших любимых сайтов. А вот имя rutracker.org, vk.ru, mail.ru - запомним легко.
Поэтому был придуман DNS сервер. DNS сервер - это такой компьютер, который хранит информацию о том какому имени сайта соответствует ip адрес. DNS сервер установлен у вашего провайдера.
Поэтому браузер, видя что в него ввели rutracker.org сначала обратиться к DNS серверу вашего провайдера и спросит у него а какой ip адрес для имени сайта rutracker.org? И получив ответ, например 195.82.146.114 начнет загрузку сайта с этого ip адреса.
О блокировках
Теперь, когда мы понимаем как происходит загрузка сайта, можно поговорить о блокировках. Ведь rutracker.org заблокирован.
Первое - это "подмена" ip адреса в DNS. То есть DNS сервер провайдера должен сообщить браузеру, что ip адрес rutracker.org - 195.82.146.114. Но DNS сервер провайдера скажет, что ip адрес rutracker.org 10.0.0.11 (например). Так хочет РКН, так сделано по его указанию. И провайдер подчиняется, подменяя запись на своем DNS сервере. Теперь браузер начнет открывать сайт с ip адреса 10.0.0.11. А это и есть страница-"заглушка" провайдера с надписью "Доступ запрещен!". Результат - сайт заблокирован по имени. Пользователь вводит имя и попадает не туда, куда хотел.
Как я уже сказал, у каждого провайдера есть свой DNS сервер. И часто он доступен только клиентам этого провайдера. Но есть и общедоступные сервера - крупных проектов, корпораций. И никто вам не мешает, в настройках сетевого подключения указать другой DNS сервер. Например сервер гугл.
И теперь провайдер с РКН ничего не могут. Ну если гугл не подчиняется требованиям РКН. Но даже получив верный адрес rutracker.org (195.82.146.114), мы все равно не попадем на этот сайт.
Дело в том, что наш трафик проходит через сервер провайдера (и другое его оборудование). И там стоит запрет на передачу информации с ip адреса 195.82.146.114. И даже если мы запомним этот адрес и введем его в браузере, чтобы вообще не пользоваться никакими DNS серверами, то всё равно не попадем на сайт.
Всё сайт заблокирован. Заблокирован но ip. И многие пользователи, не знакомые с анонимайзерами и VPN никогда не увидят этот сайт. Итого - сайт заблокирован по имени, сайт заблокирован по ip. Цель заблокировать ресурс достигнута.
Как это выглядит на практике
И вроде в теории все хорошо. Всё блокируется. Но, как и сказано ранее, доступ к сайту может быть по имени и доступ может быть по ip. Когда сайт блокируют по имени, часто владелец просто покупает новое имя. Если сайт малоизвестный. Цена нового имени от 100 рублей.
Ну и пусть заблокировали azino777.com, теперь будет azino778.com. Также и с ip - заблокировали 195.82.146.114, завтра будет 195.82.146.115. Меняем имя, меняем ip и не страшны нам блокировки. Надо только сообщить людям, что сайт "переехал". А часть людей всё ещё заходят на сайт используя DNS организаций не подконтрольных РКН.
В такой чехарде сложно разобраться. Тут изменилось, там входят так, тут через ip. Жуть. А блокировать надо. И главное нет никаких норм. Точнее нормы есть и рекомендации есть - но они настолько размытые и трудновыполнимые, что по сути их и нет. Да и провайдер от всего этого не в восторге.
Поэтому решено было следующее - отслеживать любые изменения как имени сайта, так и ip адреса сайта и блокировать их. Заблокировали доменное имя rutracker.org. А какая у него DNS запись? Куда оно "ведет"? Ведет на 195.82.146.114. Блокируем и 195.82.146.114. Владелец имени rutracker.org понял, что его заблокировали и сменил ip? Блокируем новый ip. Тактика - отслеживаем изменения и блокируем. (Зеркала сайта аналогично. Подход един - отследить и заблокировать.)
Проблемы
Но через некоторое время начались проблемы. Начались странные блокировки. Заблокированными оказывались сайты, не находящиеся в реестре РКН. Причем часто это были гос сайты. Позже к этим сайтам добавился сам Ревизор. Вы правильно поняли - устройство блокировки заблокировало само себя. А потом понеслось - блокировка вконтакте, википедии, одноклассников и кучи других популярных сайтов. После долгих поисков проблема была обнаружена. Но решение, полностью исключающее проблему, всё ещё не найдено.
Проблема была в том, что владелец домена (который блокировали) изменял DNS запись и указывал там ip адрес популярного ресурса. А программа блокировки и другие средства провайдера, видя это изменение блокировали новый ip адрес. Или даже несколько адресов.
В результате такой атаки, с 2017 года по текущий день были ненадолго заблокированы следующие сайты: 1tv.ru, pikabu.ru, ok.ru, rbc.ru, vk.com, yandex.ru, wikipedia.org. Есть информация, что и некоторые терминалы крупнейших банков перестали работать из за этой атаки.
В результате данного инцидента было решено совершенствовать программы для блокировки. А в качестве быстрых мер внедрить список белых сайтов. Чтобы крупнейшие или наиболее важные сайты нельзя было автоматически заблокировать.
Никогда такого не было и вот опять
Прошло около года. И вот в 2019 году (по заявлению РБК) Яндекс и другие крупные холдинги подверглись этой атаке. Злоумышленник, завладев доменом, который находится в списке заблокированных, связал его с ip адресом крупной компании. Завладеть таким доменом не сложно, так как предыдущие владельцы домена просто не продлевают его. А зачем им заблокированный домен? И зарегистрировать этот домен может любой. Что и сделал злоумышленник.
В результате этой атаки, часть операторов заблокировали доступ к ip-адресам "Яндекса". Специалисты крупного оператора связи также утверждают, что атака была нацелена и на их СМИ.
Большинство крупных операторов все же смогли отразить атаку.Они уже используют более совершенные средства, в частности DPI. Но пропуск трафика через DPI значительно снизил скорость доступа к ресурсам.
На сегодняшний день, специалисты крупных интернет провайдеров считают, что теоретически возможно пропускать весь трафик через систему DPI. Но пока это слишком дорого. Поэтому сейчас через DPI пропускают лишь потенциально опасный трафик.
Кто стоит за этими атаками
Точной информации нет. Есть только предположение, что атака была проведена людьми, состоящими в организациях выступающих против изоляции рунета. Ведь наиболее крупные атаки совпали с проведением одноименного митинга. Также есть информация, что операторы связи и представители интернет-компаний раскритиковали работу DPI. Они считают, что в результате пропуска через неё большого объема трафика происходит существенное замедление доступа к ресурсам. Да и обязательная установка таких систем для всех операторов связи будет весьма дорога.
Несмотря на то, что DNS атаки стали довольно редкими, такие типы атаки всё ещё актуальны и регулярно проводятся на сетях провайдеров с небольшим количеством абонентов.