Открытый рекурсивный DNS-сервер. Часть 2
Практически 4 месяца назад я открыл свой рекурсивный DNS-сервер для всех пользователей интернет (см. предыдущую статью). Накопленный объем данных на первом этапе теста был достаточно большим, для его визуализации я загнал данные в БД и построил динамические изменяющиеся графики и карту. Записанное видео можно посмотреть под катом. Результат получился достаточно интересным, поэтому полностью закрывать DNS-сервер я не стал, а ограничился включением зон (используемых для атак) в списки RPZ (что такое RPZ можно прочитать в этой статье). «Расслабившись» на «небольших» атаках (не более 100 запросов в секунду), я не заблокировал ответы по двум DNS-зонам и получил первый abuse-репорт. Abuse-репорт был отправлен в дата-центр моего провайдера от «робота». Нагрузка на его сеть с моего сервера была небольшой и периодически доходила до 100 запросов в секунду. С учетом того, что могли использоваться миллионы открытых ресолверов, то максимальная нагрузка на его сеть могла быть значительной. Abuse-репорт и замотивировал меня перейти к второй части теста. Отключив открытый рекурсивный DNS и продолжил наблюдать за поведением атакующих.Визуализация атаки описанной в первой статье:
[embedded content]
Описание тестовой средыПри написании прошлой статьи все данные собирались и обрабатывались практически в ручном режиме. Это было долго, нудно и результаты иногда приходилось перепроверять. Так как я достаточно ленив, мне нравится автоматизировать процессы и анализировать данные, то самим собой напросился вывод создать небольшую систему отчетности и анализа поступающих логов с 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-тунели).