Парень случайно остановил глобальное распространение криптовымогателя WannaCrypt

В эти дни все только и говорят о криптовымогателе WannaCry/Wcry/WannaCrypt, который в пятницу поразил десятки тысяч компьютеров по всему миру, но затем его распространение внезапно прекратилось.

Microsoft оперативно выпустила патчи для исправления уязвимости:


Уязвимость также можно закрыть, полностью отключив поддержку SMBv1:

dism /online /norestart /disable-feature /featurename:SMB1Protocol


По последней информации, криптовымогателю удалось поразить более 75 000 Windows-компьютеров как минимум в 99 странах мира. Но масштаб распространения WannaCrypt мог быть на порядок больше, если бы не действия одного специалиста по безопасности, автора блога MalwareTech Blog. Он рассказывает, как всё было.
Этот герой — 22-летний хакер и блоггер из Великобритании, чьё имя пока не стало достоянием гласности. Он пишет, что в пятницу у него был выходной. Он проснулся около 10:00 и залогинился в национальную систему отслеживания киберугроз, чтобы посмотреть за распространением банковского зловреда Emotet — самого значительного события последних дней. Ничего необычного не заметил и пошёл завтракать. Когда вернулся домой около 14:30, то обнаружил кучу сообщений о заражении различных больниц и медицинских систем криптовымогателем. Такие заражения происходили и прежде, но здесь как будто масштаб был больше, чем раньше.

При помощи своего друга — хакера под ником Kafeine — парень быстро достал образец зловреда, запустил его в виртуальной машине и увидел, что тот отправляет запросы на незарегистрированный домен. Это было интересно.

Статистика Cisco Umbrella показала, что запросы к этому домену начались в пятницу в 8:00 утра и росли лавинообразно.

9cfe035eb11e43bfabdce849d39dc9de.png

Блоггер зарегистрировал домен на себя за 8 фунтов ($10,69). Это стандартная практика, говорит он. Ботнеты часто генерируют названия доменов для командных серверов (C2C) каждый по своему алгоритму. Алгоритм известен злоумышленникам, так что они могут заблаговременно зарегистрировать этот домен. Иногда исследователям и антивирусным компаниям удаётся опередить их, и тогда они получают возможность изнутри изучить работу командного центра ботнета, собрать данные о географическом распределении ботов, провести обратную разработку софта. Так что регистрация этих доменов — нормальное дело. Автор блога MalwareTech Blog говорит, что за прошлый год он зарегистрировал несколько тысяч доменов.

В то время как после регистрации обновлялись записи в системах DNS, парень изучил поведение зловреда в виртуальной машине. Выяснилось, что после шифрования файлов тот начинает сканировать случайные IP-адреса по порту 445 (используется SMB). Уже это наводило на мысль, что WannaCrypt может быть как-то связан с эксплойтом АНБ для SBM, который как раз месяц назад появился в открытом доступе благодаря взлому серверов АНБ хакерской группой ShadowBrokers.

Sample I found scans SMB after dropping WannaCrypt. Can anyone confirm it’s the same thing? P2P spreading ransomware would be significant. pic.twitter.com/zs5Td4ovvL

 — MalwareTech (@MalwareTechBlog) May 12, 2017


Поскольку все заражённые стучались к этому домену, то получив контроль над ним, исследователь по логам смог составить список IP-адресов и карту заражений.

Вчера примерно в 18:23 BST хакер попросил сотрудника изучить код зловреда на предмет генерации новых доменных имён — нужно было проверить, что домен для связи не изменится. Через пять минут сотрудник появился в паническом состоянии. Он сказал, что регистрация домена связана с шифрованием файлов — то есть парни несут ответственность за шифрование файлов на всех компьютерах (позже выяснилось, что это не так). Они быстро связались с хакером Kafeine, и тот показал свежий твит исcледователя из компании ProofPoint Дирена Хусса (Darien Huss), который более тщательно разобрал код зловреда после обратной разработки. Оказалось, что всё наоборот — именно регистрация домена остановила дальнейшее распространение криптовымогателя.

60f3a5eb5d4f8747b33ffb4bff56f8c9.jpg

Как видно на скриншоте кода, зловред осуществляет HTTP-запрос к незарегистрированному домену. Если запрос успешный, то он прекращает работу. Если запрос неуспешный, то выполняется код программы и начинается шифрование файлов.

Твит опубликован 12 мая в 20:29.

Вооружённый этой информацией, парень снова загрузил своё виртуальное окружение, запустил зловреда — и ничего не произошло, он больше не работал.

Первой мыслью было, что запрос к этому домену использовался в качестве некоего «аварийного стоп-крана», который должен сработать, если что-то пошло не так. Но более вероятно, что авторы зловреда просто некорректно реализовали защиту от анализа своей программы (защита от виртуального окружения). Вероятно, при запуске в виртуальном окружении запрос к такому домену должен был давать положительный ответ — эмуляторы пытаются убедить зловреда, что виртуальное окружение является нормальным и всё работает как надо. Поэтому они перехватывают все такие запросы и возвращают IP-адрес песочницы. Похожую технику защиты от виртуального окружения использует троян Necurs.

Соответственно, если запрос к домену возвращает успешный ответ, зловред думает, что он в песочнице, и аварийно прекращает работу.

Вот так совершенно случайно один исследователь сумел остановить распространение глобальной вирусной инфекции, о которой сейчас говорят во всех новостях.

So I can only add«accidentally stopped an international cyber attack» to my Résumé. ^^

 — MalwareTech (@MalwareTechBlog) May 13, 2017


Но расслабляться не стоит. На этот раз людям просто повезло, что злоумышленник ошибся с одной функцией в коде, но в следующий раз ошибки не будет — и «киберапокалипсис» может оказаться настоящим. Будем считать, что это была тестовая проверка. Новые версии наверняка появятся в ближайшие дни.

© Geektimes