stringtranslate.com

Алгоритм генерации домена

Алгоритмы генерации доменов (DGA) — это алгоритмы, которые можно увидеть в различных семействах вредоносных программ , которые используются для периодической генерации большого количества доменных имен , которые могут использоваться в качестве точек встречи с их командными и контрольными серверами . Большое количество потенциальных точек встречи затрудняет эффективное отключение ботнетов правоохранительными органами , поскольку зараженные компьютеры будут пытаться связаться с некоторыми из этих доменных имен каждый день для получения обновлений или команд. Использование криптографии с открытым ключом в коде вредоносных программ делает невозможным для правоохранительных органов и других субъектов имитировать команды от контроллеров вредоносных программ, поскольку некоторые черви автоматически отклоняют любые обновления, не подписанные контроллерами вредоносных программ.

Например, зараженный компьютер может создать тысячи доменных имен, таких как: www.<gibberish>.com , и попытаться связаться с частью из них с целью получения обновлений или команд.

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

Эта техника была популяризирована семейством червей Conficker .a и .b, которые поначалу генерировали 250 доменных имен в день. Начиная с Conficker.C, вредоносная программа генерировала 50 000 доменных имен каждый день, из которых она пыталась связаться с 500, давая зараженной машине 1% вероятности обновления каждый день, если контроллеры вредоносного ПО регистрировали только один домен в день. Чтобы предотвратить обновление вредоносного ПО зараженными компьютерами, правоохранительным органам пришлось бы предварительно регистрировать 50 000 новых доменных имен каждый день. С точки зрения владельца ботнета, ему нужно было бы зарегистрировать только один или несколько доменов из нескольких доменов, которые каждый бот будет запрашивать каждый день.

Недавно эта техника была принята на вооружение другими авторами вредоносных программ. По данным компании сетевой безопасности Damballa , топ-5 наиболее распространенных семейств преступного ПО на основе DGA по состоянию на 2011 год — Conficker, Murofet, BankPatch, Bonnana и Bobax. [1]

DGA также может объединять слова из словаря для генерации доменов. Эти словари могут быть жестко закодированы во вредоносном ПО или взяты из общедоступного источника. [2] Домены, сгенерированные словарем DGA, как правило, сложнее обнаружить из-за их сходства с легитимными доменами.

Пример

def  generate_domain ( year :  int ,  month :  int ,  day :  int )  ->  str : """Сгенерировать доменное имя для указанной даты.""" domain = ""     для  i  в  диапазоне ( 16 ):  год  =  (( год  ^  8  *  год )  >>  11 )  ^  (( год  &  0xFFFFFFF0 )  <<  17 )  месяц  =  ​​(( месяц  ^  4  *  месяц )  >>  25 )  ^  16  *  ( месяц  &  0xFFFFFFF8 )  день  =  (( день  ^  ( день  <<  13 ))  >>  19 )  ^  (( день  &  0xFFFFFFFE )  <<  12 )  домен  +=  chr ((( год  ^  месяц  ^  день )  %  25 )  +  97 ) вернуть  домен  +  ".com"

Например, 7 января 2014 года этот метод сгенерировал доменное имя intgmxdeadnxuyla.com, а на следующий день он вернул axwscwsslmiagfah.com. Этот простой пример фактически использовался вредоносным ПО вроде CryptoLocker , прежде чем оно переключилось на более сложный вариант.

Обнаружение

Доменные имена DGA [3] могут быть заблокированы с помощью черных списков, но покрытие этих черных списков либо слабое (публичные черные списки), либо крайне непоследовательное (черные списки коммерческих поставщиков). [4] Методы обнаружения делятся на два основных класса: реакционные и в режиме реального времени. Реакционное обнаружение опирается на неконтролируемые методы кластеризации и контекстную информацию, такую ​​как сетевые ответы NXDOMAIN, [5] информацию WHOIS , [6] и пассивный DNS [7], чтобы сделать оценку легитимности доменного имени. Недавние попытки обнаружения доменных имен DGA с помощью методов глубокого обучения были чрезвычайно успешными, с оценками F1 более 99%. [8] Эти методы глубокого обучения обычно используют архитектуры LSTM и CNN , [9] хотя глубокие вложения слов показали большие перспективы для обнаружения словарных DGA. [10] Однако эти подходы глубокого обучения могут быть уязвимы для состязательных методов . [11] [12]

Смотрите также

Ссылки

  1. ^ "Топ-5 наиболее распространенных семейств мошеннических программ на основе DGA" (PDF) . Damballa . стр. 4. Архивировано из оригинала (PDF) 2016-04-03.
  2. ^ Пломанн, Даниэль; Якдан, Халед; Клатт, Михаэль; Бадер, Йоханнес; Герхардс-Падилла, Элмар (2016). «Комплексное исследование измерений вредоносного ПО, генерирующего домен» (PDF) . 25-й симпозиум по безопасности USENIX : 263–278.
  3. ^ Шатил А. Чоудхури, «АЛГОРИТМ ГЕНЕРАЦИИ ДОМЕНА – DGA ВО ВРЕДОНОСНЫХ ПРОГРАММАХ», 30 августа 2019 г.
  4. ^ Кюрер, Марк; Россов, Кристиан; Хольц, Торстен (2014), Ставру, Ангелос; Бос, Герберт; Портокалидис, Георгиос (ред.), «Paint It Black: Evaluating the Effectiveness of Malware Blacklists» (PDF) , Исследования в области атак, вторжений и защиты , т. 8688, Springer International Publishing, стр. 1–21, doi : 10.1007/978-3-319-11379-1_1, ISBN 9783319113784, получено 2019-03-15
  5. ^ Антонакакис, Манос и др. (2012). «От одноразового трафика к ботам: обнаружение роста вредоносного ПО на основе DGA». 21-й симпозиум по безопасности USENIX : 491–506.
  6. ^ Кертин, Райан; Гарднер, Эндрю; Гржонковски, Славомир; Клейменов, Алексей; Москера, Алехандро (2018). «Обнаружение доменов DGA с помощью рекуррентных нейронных сетей и побочной информации». arXiv : 1810.02023 [cs.CR].
  7. ^ Перейра, Маяна; Коулман, Шон; Ю, Бин; Де Кок, Мартин; Насименто, Андерсон (2018), «Извлечение словаря и обнаружение алгоритмически сгенерированных доменных имен в пассивном трафике DNS» (PDF) , Исследования в области атак, вторжений и защиты , Конспект лекций по информатике, т. 11050, Springer International Publishing, стр. 295–314, doi :10.1007/978-3-030-00470-5_14, ISBN 978-3-030-00469-9, получено 2019-03-15
  8. ^ Вудбридж, Джонатан; Андерсон, Хайрам; Ахуджа, Анджум; Грант, Дэниел (2016). «Прогнозирование алгоритмов генерации доменов с помощью сетей с долговременной краткосрочной памятью». arXiv : 1611.00791 [cs.CR].
  9. ^ Ю, Бин; Пан, Цзе; Ху, Цзямин; Насименто, Андерсон; Де Кок, Мартин (2018). «Обнаружение доменных имен DGA на основе уровня символов» (PDF) . Международная объединенная конференция по нейронным сетям 2018 г. (IJCNN) . Рио-де-Жанейро: IEEE. стр. 1–8. doi :10.1109/IJCNN.2018.8489147. ISBN 978-1-5090-6014-6. S2CID  52398612.
  10. ^ Ко, Джоуи Дж.; Роудс, Бартон (2018). «Встроенное обнаружение алгоритмов генерации доменов с контекстно-зависимыми вложениями слов». Международная конференция IEEE по большим данным (Big Data) 2018 г. Сиэтл, Вашингтон, США: IEEE. стр. 2966–2971. arXiv : 1811.08705 . doi :10.1109/BigData.2018.8622066. ISBN 978-1-5386-5035-6. S2CID  53793204.
  11. ^ Андерсон, Хайрам; Вудбридж, Джонатан; Бобби, Филар (2016). «DeepDGA: генерация и обнаружение доменов, настроенных на состязательность». arXiv : 1610.01969 [cs.CR].
  12. ^ Сиди, Лиор; Надлер, Асаф; Шабтай, Асаф (2019). «MaskDGA: метод обхода черного ящика против классификаторов DGA и состязательной защиты». arXiv : 1902.08909 [cs.CR].

Дальнейшее чтение