Весной текущего года мы подробно рассказывали о группе энтузиастов Cryptolaemus, в которую входят более 20 ИБ-специалистов со всего мира, еще в 2018 году объединившихся ради общей цели: борьбы с малварью Emotet.
Как стало известно теперь, еще в феврале 2020 года один из участников этой команды, Джеймс Куинн (James Quinn) из компании Binary Defense, обнаружил уязвимость в коде Emotet. Тогда, изучая очередные обновления Emotet, Куинн заметил изменения в коде одной из полезных нагрузок. Изменение затрагивало так называемый «механизм устойчивости» Emotet, который позволяет вродоносу выживать после перезагрузки зараженного устройства. Оказалось, что для этого Emotet создает специальный ключ реестра Windows и сохраняет в нем ключ XOR, который используется не только для устойчивости, но также и в самом начале заражения.
Благодаря последующим обновлениям Emotet, которые прояснили, как именно работает новый механизм устойчивости, Куинн сумел написать крошечный PowerShell-скрипт, названный EmoCrash, который использовал ключи реестра, чтобы спровоцировать сбой в работе Emotet.
EmoCrash сканировал компьютер пользователя и генерировал на машине корректный, но вредоносный для Emotet ключ реестра. В итоге когда «чистый» компьютер, обработанный EmoCrash, подвергался атаке, этот ключ реестра провоцировал в коде малвари переполнение буфера, что в итоге приводило к сбою Emotet и предотвращало заражение вообще.
Если же EmoCrash запускался на уже зараженных машинах и подменял уже существующий ключ реестра, малварь тоже аварийно завершала работу, когда повторно обращалась к реестру. Это эффективно предотвращало обмен данными между зараженными хостами и управляющими серверами Emotet.
Более того, после этого на машине появлялись логи сбоев, содержащие идентификаторы событий 1000 и 1001. Их можно было использовать для выявления эндпоинтов с отключенными и уже «мертвыми» бинарниками Emotet. Это помогало системным администраторам быстро обнаруживать, что Emotet пытается заразить или уже заразил их сети.
Специалисты Binary Defense понимали, что новость об этом открытии необходимо держать в секрете, чтобы авторы Emotet не внесли исправления свой код, но также эксперты понимали, что EmoCrash может помочь улучшить защиту множества компаний по всему миру. В итоге специалисты объединили усилия с компанией Team CYMRU, которая имеет многолетний опыт в деле уничтожения ботнетов и давно наблюдает за Emotet.
Эксперты Team CYMRU, в свою очередь, связались с CERT многих стран и постарались, чтобы EmoCrash тайно распространился среди различных компаний. Дело в том, что Team CYMRU поддерживает связь с 125 региональными командами CERT, а также имеет собственную рассылку, через которую регулярно доносит полезную и конфиденциальную информацию более чем до 6000 специалистов.
Таким образом, за последние шесть месяцев скрипт EmoCrash успел широко распространиться среди компаний по всему миру. Эксперты Binary Defense говорят, что они никогда не узнают, сколько компаний в итоге установили EmoCrash, но исследователи получили множество благодарных сообщений от компаний, которые сумели предотвратить атаки Emotet или обнаружили у себя заражения. По данным Binary Defense, их скрипт заметно помог снизить количество заражений и число ботов.
Исследователи считают, что операторы Emotet так и не узнали об их скрипте и баге в коде малвари, однако в начале августа 2020 года, спустя полгода после обнаружения уязвимости Джеймсом Куинном, хакеры все же изменили работу механизма устойчивости и устранили проблему, на которую опирался EmoCrash.
Шутки ради Джеймс Куинн и его коллеги даже обратились в MITER и попытались получить для найденной ими уязвимости в Emotet идентификатор CVE, как для любой другой уязвимости, но в организации отметили, что Emotet – это малварь и это идет в разрез с правилами присвоения CVE.
Источник: xakep