Открытый рекурсивный DNS-сервер. Часть 2


Практически 4 месяца назад я открыл свой рекурсивный DNS-сервер для всех пользователей интернет (см. предыдущую статью). Накопленный объем данных на первом этапе теста был достаточно большим, для его визуализации я загнал данные в БД и построил динамические изменяющиеся графики и карту. Записанное видео можно посмотреть под катом. Результат получился достаточно интересным, поэтому полностью закрывать DNS-сервер я не стал, а ограничился включением зон (используемых для атак) в списки RPZ (что такое RPZ можно прочитать в этой статье). «Расслабившись» на “небольших” атаках (не более 100 запросов в секунду), я не заблокировал ответы по двум DNS-зонам и получил первый abuse-репорт. Abuse-репорт был отправлен в дата-центр моего провайдера от “робота”. Нагрузка на его сеть с моего сервера была небольшой и периодически доходила до 100 запросов в секунду. С учетом того, что могли использоваться миллионы открытых ресолверов, то максимальная нагрузка на его сеть могла быть значительной. Abuse-репорт и замотивировал меня перейти к второй части теста. Отключив открытый рекурсивный DNS и продолжил наблюдать за поведением атакующих.

Визуализация атаки описанной в первой статье:

    Описание тестовой среды

При написании прошлой статьи все данные собирались и обрабатывались практически в ручном режиме. Это было долго, нудно и результаты иногда приходилось перепроверять. Так как я достаточно ленив, мне нравится автоматизировать процессы и анализировать данные, то самим собой напросился вывод создать небольшую систему отчетности и анализа поступающих логов с DNS-сервера в режиме близкому к real time (если это интересно, то могу описать в отдельной статье). Все графики и таблицы, использованные в данной статье, были сгенерированы с использованием jqPlot, jqGrid и сервиса Google Maps. В качестве DNS-сервера я использую виртуальное устройство Infoblox, но формат syslog-сообщений у него аналогичен bind.

    Атаки

За время проведения тестирования мой сервер использовался для проведения DrDoS атак (Amplification + Reflection), а так же были произведены попытки осуществить отравление кэша. По некоторым запросам было видно, что используется механизм DGA (Domain Generation Algorithm) возможно для отравления кэша, возможно для связи с управляющими центрами (так как эти домены использовались только для атак) или при атаке с фантомными доменами.
После отключения рекурсивного сервера паразитная нагрузка снизилась, но не исчезла совсем.
Пиковая нагрузка на «открытом» сервере доходила до 3 тысяч запросов в секунду и в среднем держалась около 100 запросов в секунду, на закрытом сервере максимальная нагрузка снизилась до 20 запросов в секунду с редкими пиками до 100 запросов (rate limit настроен до 300 запросов в минуту с возможностью роста до 1000).

Как видно на графике ниже, от действий злоумышленников больше всего пострадали компании в США.

Анализ количества отправленных запросов в сеть каждой компании может косвенно помочь определить жертвы и возможные зараженные сети. Например, сеть China Telecom скорее всего заражена, а клиент Ростелекома был атакован. В таблице ниже приведена информация организациям, количеству IP-адресов и количеству обработанных запросов. Данные о компаниях были получены с помощью сервиса whois.

Страна Компания Кол-во запросов Кол-во IP
United States SoftLayer Technologies Inc. 3965202 36
United States SingleHop, Inc. 2617987 27
United States PSINet, Inc. 1994461 22
France OVH SAS 1051080 304
United Kingdom Hosting Services Inc 938367 4
Germany 1&1 Internet AG 761020 12
United States PrivateSystems Networks 748641 4
Russian Federation OJSC Rostelecom Ticket 09-39331, RISS 15440, UrF 687028 1
United States Time Warner Cable Internet LLC 671211 1568
Canada OVH Hosting, Inc. 592920 213
United States Akamai Technologies, Inc. 176327 4410
China China Telecom 51565 207
United States AT&T Internet Services 27502 854
    Атака DrDOS

Для атаки были использованы домены приведенные в таблице ниже. Домен freeinfosys.com появился уже после «закрытия» рекурсивного сервера. Что может означать, что кто-то использует устаревшие базы, которые редко проверяются.
Чтобы определить, что ваш сервер атакуется или используется для проведения атак достаточно проанализировать к каким доменам и как часто обращались с запросом «ANY +E».

Домен Запрос Флаг Кол-во запросов
webpanel.sk ANY +E 14962032
oggr.ru ANY +E 8300693
energystar.gov ANY +E 6676350
doleta.gov ANY +E 6326853
067.cz ANY +E 2463053
sema.cz ANY +E 1251206
GUESSINFOSYS.COM ANY +E 690320
jerusalem.netfirms.com ANY +E 587534
paypal.de ANY +E 454756
nlhosting.nl ANY +E 414113
freeinfosys.com ANY +E 352233
krasti.us ANY +E 333806
doc.gov ANY +E 259248
svist21.cz ANY +E 231946
wradish.com ANY +E 117294

При использовании “ANY +E” запрашивается вся информация по зоне и активируется функционал EDNS, чтобы получить максимально возможный размер UDP пакета. Список 10 наиболее частых запросов и их флагов приведен в таблице ниже.

Запрос Флаги Кол-во запросов
ANY +E 43500439
A -ED 17339
ANY + 11932
A 9853
A -EDC 8956
AAAA -EDC 4749
AAAA -ED 4467
ANY 2289
A +E 1899
RRSIG +E 1124
    Cache Poisoning, Random domain attack и DGA

В процессе работы DNS сервера были выявлено небольшое количество атак на отравление кэша. В статистике работы DNS-сервер Infoblox было указано, что были получены ответы с неправильными портами и query ID, но, к сожалению, log-файлы для анализа не сохранились.
Помимо этого были обнаружены подозрительные запросы вида:

  • ndnaplaaaaeml0000dgaaabbaaabgnli.energystar.gov;
  • mmokojaaaaeml0000dgaaabbaaabgclm.doleta.gov;
  • oaanjeaaaaesc0000deaaabbaaabicoc.webpanel.sk;
  • cnklipaaaaesh0000claaabbaaabfgoa;
  • 2d852aba-7d5f-11e4-b763-d89d67232680.ipvm.biz.

Вполне возможно, что эти записи частично относятся к выявленным попыткам отравления кэша, попытке провести атаку с использованием фантомных доменов (авторитативный сервер не отвечает и таким образом забивается пул исходящих соединений) или работе «неведомых зверушек» (вредоносное ПО) пытающихся связаться с управляющим центром.

    Выводы
  • Любой DNS-сервер это замечательный источник информации о поведении простых пользователей и вредоносного ПО;
  • Анализ логов поможет повысить качество работы DNS;
  • Большое кол-во запросов «ANY +E» показывает, что Ваш сервер находится или участвует в атаке;
  • Для проведения DrDOS атак вредоносное ПО использовало небольшое количество доменов (не более 3х-4х одновременно);
  • Блокировка таких подозрительных доменов (например на RPZ) позволит снизить нагрузку на сервер и сеть;
  • Слишком длинные DNS-имена (как в примере выше) являются поводом к пристальному изучению поведения клиента (заражен хост или кто-то использует DNS-тунели).

(с) Vadim Pavlov

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.