Традиционно вредоносные программы использовали жестко закодированные доменные имена или IP-адреса C&C-сервера в бинарном файле вредоносной программы для прямого соединения с C&C-сервером. Однако аналитики вредоносных программ могут легко обнаружить эти жестко закодированные доменные имена или IP-адреса путем обратной разработки и внести их в черный список. Алгоритм генерации доменов (DGA) - это техника, используемая авторами вредоносных программ для предотвращения попыток захвата или внесения в черный список доменов C&C. DGA используется для генерации большого количества доменных имен для C&C-сервера. Постоянная смена доменных имен для C&C-сервера с помощью DGA известна как Domain-Fluxing. Среди известных вредоносных программ, основанных на DGA, можно назвать Zeus GameOver, Cryptolocker, PushDo, Conficker и Ramdo.
Domain Generation Algorithm (Алгоритм генерации доменов, DGA)
Алгоритм генерации доменов (DGA) - это техника, которую злоумышленник внедряет в двоичный файл вредоносной программы для периодической генерации большого количества псевдослучайных несуществующих доменных имен для командно-контрольного (C&C) сервера. Затем вредоносная программа пытается разрешить эти сгенерированные доменные имена, посылая DNS-запросы, пока один из доменов не разрешится до IP-адреса сервера C&C. Генерируемые DGA доменные имена служат точками "рандеву" для вредоносной программы и ее сервера C&C. Доменные имена, генерируемые DGA, также известны как алгоритмически генерируемые домены (AGD). DGA используется для того, чтобы предотвратить уничтожение сервера C&C и препятствовать попыткам внесения в черный список.
Владение алгоритмом DGA и знание семян (seed) DGA позволяет злоумышленнику заранее предсказать домены DGA. В результате владелец может сгенерировать точно такой же список доменных имен, который может сгенерировать вредоносное ПО. Знание семени и алгоритма DGA позволяет владельцу ботнета предсказать, какие доменные имена будут пытаться запросить зараженные машины (вредоносные программы) в определенную дату и время, а затем злоумышленник заранее регистрирует одно из доменных имен, которые, как ожидается, будут сгенерированы встроенными вредоносными программами DGA.
Вредоносная программа DGA периодически генерирует большое количество доменных имен-кандидатов для сервера C&C и запрашивает все эти алгоритмически сгенерированные домены (AGD), чтобы определить IP-адрес сервера C&C. Злоумышленник заранее регистрирует одно из этих созданных DGA доменных имен для C&C-сервера, используя тот же алгоритм, встроенный во вредоносную программу. В конце концов, вредоносная программа запрашивает заранее зарегистрированное доменное имя и определяет IP-адрес сервера C&C. Затем вредоносная программа начинает общаться с C&C-сервером и получает новые команды и обновления. Если вредоносная программа не может найти C&C-сервер по предыдущему доменному имени, она обращается к следующему набору доменных имен, сгенерированных DGA, пока не найдет подходящее. Злоумышленник регистрирует доменное имя за 1 час до атаки и избавляется от него в течение 24 часов.
Как работает алгоритм генерации доменов (DGA)
Семя (seed) является базовым элементом DGA и служит общим секретом между противником и вредоносным ПО. Seed - это совокупность параметров, заданных противником для генерации псевдослучайного доменного имени, что является основным требованием алгоритма генерации доменов (DGA). Семя доступно как противнику, так и вредоносному ПО.
- Семя ( Seed , общий секрет)
- Статический посевной материал
- Динамический посевной материал
Семя необходимо для расчета алгоритмически генерируемых доменов (AGD). Алгоритм генерации доменов (DGA) принимает значение семени в качестве входного параметра для генерации псевдослучайных строк и алгоритмически добавляет домен вехренего уровня (.com, .org, .ca, .ru, .ws) к строке для вывода возможных доменных имен.
b037a2f08cfc266948d5faec8b31cf5cfc.ws - Алгоритмически генерируемый домен (AGD)
Статические семена могут быть словарем слов, конкатенацией случайных строк и чисел или чем угодно, что злоумышленник может изменить по своему усмотрению. Динамические семена зависят от времени, семя меняется со временем. Ежедневный трендовый хэштег в Twitter, незначительные цифры валютного курса, погодная температура также могут быть использованы в качестве динамического семени. Часто текущая дата и время используются в качестве посевного значения в DGA для генерации доменных имен. Статические и динамические начальные элементы объединяются в алгоритм для генерации псевдослучайных строк, затем к этим строкам добавляются TLD, такие как .com, .ru, .ca, чтобы создать доменные имена.
Владелец ботнета использует алгоритмы генерации доменов (DGA) для генерации большого количества псевдослучайных доменных имен и выбора небольшой части для фактического использования C&C. DGA обеспечивает удивительный уровень гибкости и устойчивости инфраструктуры C&C противника и затрудняет уничтожение сервера C&C. Если доменные имена или IP-адреса C&C идентифицированы и уничтожены, вредоносная программа в конечном итоге получит IP-адрес перемещенного C&C-сервера через DNS-запросы к следующему набору доменных имен, сгенерированных DGA. Даже некоторые вредоносные программы используют DGA и технику Fast-Flux одновременно для защиты C&C-сервера, что значительно затрудняет обнаружение и уничтожение C&C-сервера.
DGA Семейства:
bamital | banjori | blackhole | ccleaner | chinad |
conficker | cryptolocker | dircrypt | dyre | emotet |
feodo | fobber | gameover | gspy | locky |
madmax | matsnu | mirai | murofet | mydoom |
necurs | nymaim | omexo | padcrypt | proslikefan |
pykspa | qadars | ramnit | ranbyus | rovnix |
shifu | shiotob | simda | suppobox | symmi |
tempedreve | tinba | tinynuke | tofsee | vawtrak |
vidro | virut | xshellghost |
Список доменов DGA:
DGA Feed SEC-1275-1: https://1275.ru/spisok-aktivnyh-dga-domain-generation-algorithm-domenov/