Уязвимость в механизме сохранения персистентности Emotet позволила создать killswitch.
Как ранее сообщал ScurityLab, неизвестный хакер объявил войну нашумевшему ботнету Emotet. Он подменял полeзную нагрузку Emotet анимированными GIF-файлами. То eсть, когда пользоватeль получал ранee опасную рассылку и открывал файл, то видил анимированную картинку, а заражение так и не происходило.
Оказалось, что "народный мститель" отнюдь не явлется одиночкой. В течение полугода специалисту ИБ-компании Binary Defense Джеймс Куинн (James Quinn) удавалось эффективно сдерживать Emotet. Последние несколько лет основной работой Куинна является обезвреживание ботнета Emotet и отслеживание активности его операторов. Исследователь также является участником группы этических хакеров Cryptolaemus, которой удалось сщественно снизить число заражений Emotet.
В феврале нынешнего года во время изучения обновления кода Куинн обнаружил уязвимость, позволившую ему обезвреживать вредоносное ПО Emotet. Исследователь выявил изменения в механизме сохранения персистентности на компьютере - элементе кода, ответственном за присутствие вредоноса на системе после ее перезагрузки.
Emotet создавал ключ реестра Windows и сохранял в нем ключ шифрования XOR. Однако ключ реестра использовался не только для сохранения вредоноса на системе после перезагрузки. Он также был частью многих других проверок кода Emotet, в том числе частью рутинной операции перед заражением.
Путем проб и ошибок, а также благодаря последующим обновлениям Emotet, проливавшим свет на работу нового мезанизма сохранения персистентности, Куинн смог написать небольшой скрипт PowerShell, который использовал механизм ключей реестра для атак на сам Emotet.
Скрипт EmoCrash эффективно сканировал компьютер пользователя и генерировал правильный, но видоизмененный ключ реестра Emotet. Когда Куинн намеренно заразил чистый компьютер вредоносным ПО Emotet, видоизмененный ключ реестра вызвал переполнение буфера в его коде, что привело к сбою в работе вредоносной программы, эффективно предотвращая заражение.
Когда Куинн запускал EmoCrash на компьютерах, уже зараженных Emotet, скрипт заменял исправный ключ реестра видоизмененным, и при следющей проверке ключа реестра Emotet аварийно завершал работу, предотвращая обмен данными между зараженными хостами и C&C-серверами. По сути, Куинн создал одновременно вакцину против Emotet и его выключатель (так называемый killswitch).
6 августа операторы Emotet исправили обнаруженную Куинном уязвимость, и EmoCrash больше не работает. Тем не менее, в течение полугода инструментом пользовались компании и ИБ-специалисты, что существенно подорвало мощь ботнета.
В Матрице безопасности выбор очевиден