Как я нечаянно остановил ботнет (перевод)

Андрей К…
Последнее изменение:
0
1
0

Эта статья - перевод рассказа непосредственного участника событий по обезвреживанию ботнета WannaCrypt.

Для тех, кто пропустил новости:

В пятницу, 12 мая, вирус-вымогатель WanaCrypt0r 2.0 заразил десятки тысяч компьютеров по всему миру. Сначала он парализовал работу британских больниц и испанских компаний, а затем добрался до России, атаковав региональные управления МВД и Следственного комитета. 
Всего за пару часов вымогатель атаковал десятки стран. Начав с Испании и Португалии, где он парализовал работу крупного оператора связи Telefonica и прошелся по газовой компании Gas Natural, оператору электросетей Iberdrola и банку Iberica, малварь переметнулся на внутренние сети британских больниц, потом был зафиксирован в Сингапуре, на Тайване и в Китае, а после распространился по всему миру, добравшись даже до Австралии и Латинской Америки.
Один из специалистов отметил, что заражению подверглись десятки тысяч компьютеров в 74 странах мира и это число продолжает возрастать. Другой подчеркнул, что мир, возможно, стал свидетелем крупнейшей вирусной атаки в истории.

(c) lenta.ru

Итак:


Реклама


Как случайно остановить кибератаку мирового уровня: 


Итак, я наконец-то оторвался от переписки и звонков по Скайпу и нашел достаточно времени для того, что бы описать эти безумные пятничные события, когда я вообще-то был в недельном отпуске и успел отдохнуть четыре дня. Вы, возможно, слышали об WannaCrypt или читали на новостных сайтах, но я решил что мне стоит рассказать о своем участии в произошдшем.

Я проснулся в районе 10 утра и проверил новости на ресурсе, посвященном информационной безопасности, отслеживая деятельность по Emotet – вредоносном ПО в банковской сфере – тогда это представлялось очень важным. В ленте было несколько обычных записей о новых случаях заражения.. Но ничего, достойного внимания, не попадалось. Так что я спокойно пошел обедать с другом, а в это время кампания по распространению WannaCrypt вошла в активную фазу.

Когда я вернулся домой, в районе 14:30, ресурс был переполнен сообщениями о случаях заражения, информация поступала из различных областей Великобритании, что говорило о том, что происходит что-то из ряда вон выходящее. Обычно, заражение обычных компьютеров частных лиц не стоят повышенного внимания (это постоянно происходит), но в этот раз скорость заражения говорила о том, что оно идет не через открытие вложений в почте, как обычно, а каким-то иным способом. Благодаря моему другу и исследователю ИБ под ником Kafeine, мне удалось почти сразу раздобыть образец вредоносного ПО. Я запустил зловреда в специальном окружении для анализа, и обратил внимание, что программа пытается подключиться к сайту, доменное имя которого не было зарегистрировано.Недолго думая, я зарегистрировал этот домен.

Благодаря Cisco Umbrella, мы можем отслеживать количество запросов, поступающих на этот домен – кампания началась в 8 утра (по времени UTC).

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

 

Я должен отметить, что регистрация домена была не просто прихотью. Моя работа связана с поиском и обезвреживанием ботнетов (и другого вредоносного ПО),  так что мне часто приходится перехватывать управляющие центры (C2). В прошлом году, например, я зарегистрировал несколько тысяч таких доменов.

Этот процесс проходит примерно так:

  1. Идет поиск незарегистрированных или просроченных доменов, которыми пользуются работающие на данный момент ботнеты, регистрация их на себя и создание DNS-сервера с обманной записью (DNS-sinkhole), что позволяет перехватывать трафик с зараженных компьютеров и отбирать контроль зараженого ПО у злоумышленников.
  2. После этого идет сбор данных (включая IP адреса) в привязке к географическим координатам,  что позволяет оценить масштаб заражения, а так же предупредить жертв о том, что они подверглись атаке.
  3. Изучение алгоритма работы вредоносного ПО в поисках уязвимости, что может позволить нам остановить распространение и перехватить контроль за ботнетом.

В случае с WannaCrypt шаги 1,2 и 3 совпадали полностью, но тогда мы об этом еще не знали.

Через несколько секунд после введения домена в эксплуатацию, со мной связался исследователь Talos, попросив образец зловреда. Забавно, но тогда мы еще не знали, что случайно прикончили этот вирус, и поэтому не могли понять, почему он работает не так, как запускался в первые разы. Это необходимо было выяснить, но мне пришлось отвлечься, так как мои DNS-обманки практически достигли пиковой нагрузки.

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

Примерно в 18:23 я попросил своего сотрудника изучить код червя и убедиться, что он не сменил домен, который мы зарегистрировали (некоторые вирусы периодически меняют домены по заданному алгоритму, и у нас могла бы возникнуть необходимость зарегистрировать еще доменов), а сам занялся оптимизацией нагрузки на живую карту, так как на сайт хлынул поток посетителей.

Через 5 минут сотрудник сообщил мне, что регистрация домена заставляет червя  шифровать все файлы всех пользователей (не пугайтесь, позже мы выяснили, что это не так), но в тот момент я испытал некоторую панику. Я связался Kafeine, и он поделился со мною новым твитом исследователя Darien Huss, который отстаивал противоположную точку зрения – что регистрация домена наоборот, остановила распространение червя.

Узнав разные точки зрения, я нетерпеливо запустил червя в своем виртуальном окружении… и ничего не произошло. После этого я модифицировал файл hosts, что бы поиск домена стал безуспешным, запустил снова… и началось шифрование!

Сейчас вам наверное сложно представить взрослого человека, который радостно прыгает, радуясь тому, что его компьютер заразил вирус, но я не мог сдержать эмоций. Тот факт, что вредоносное ПО не запустилось в первый раз, но запустилось во второй означало то, что регистрацией домена мы остановили распространение вируса. Я конечно, в конце концов успокоился и проверил все трижды, и убедился в правильности твита  Дериена.

Но почему же регистрация домена заставила червя прекратить распространение?

Исследователь Talos предоставил отличное описание алгоритма работы вредоноса:

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

Первоначально мы предположили, что доменное имя является переключателем-«убийцей» червя на случай, если что-то пойдет не по плану, но, поразмыслив еще, я полагаю что это неверная трактовка.

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

Я полагаю, что создатели вируса пытались обращаться к домену, который специально не был зарегистрирован, таким образом, если домен вдруг начинал возвращать IP адрес, создатели могли быть уверены, что вирус работает в песочнице, а не за её пределами. Это не такая уж редкая практика, и она используется трояном Necurs (тот опрашивает 5 доменов и, если все отвечают, троян прекращает работу). Тем не менее, в WannaCrypt домен был «вшит» один, и моя регистрация этого домена заставляет червя каждый раз думать, что он находится в песочнице, и не предпринимать никаких деструктивных действий. Таким образом, мы неосознанно предотвратили распространение атаки. Конечно, теперь мы это знаем и будем поддерживать домен в своей собственности, что бы не дать этому экземпляру вируса вспыхнуть с новой силой.

Я не зря упомянул про «экземпляр» вируса – регистрация домена позволила приостановить только текущую версию кода, но ничего не удерживает злоумышленников от изменения кода и удаления проверки домена – так что все равно вам стоит установить все нужные патчи и обновления системы.

А мне, пожалуй, пора поспать.



Реклама


Примечания

Оригинал записи вы можете найти здесь

Домен, о котором идет речь -  iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea[.]com

УЖЕ ВЫПУЩЕНА новая версия вируса, в которой убрана проверка домена - так что новые версии работают с прежней, если не большей силой.

Заражение идет через уязвимости DOUBLEPULSAR и ETERNALBLUE, эксплуатируя порт 445 (на всякий случай рекомендуется так же закрыть порт 139)

Патчи от Microsoft защищают систему "снаружи", от проникновения вируса, если вирус уже попал на ПК тем или иным способом, он отработает.

Шифруются файлы с расширениями 

.der, .pfx, .key, .crt, .csr, .p12, .pem, .odt, .sxw, .stw, .3ds, .max, .3dm, .ods, .sxc, .stc, .dif, .slk, .wb2, .odp, .sxd, .std, .sxm, .sqlite3, .sqlitedb, .sql, .accdb, .mdb, .dbf, .odb, .mdf, .ldf, .cpp, .pas, .asm, .cmd, .bat, .vbs, .sch, .jsp, .php, .asp, .java, .jar, .class, .mp3, .wav, .swf, .fla, .wmv, .mpg, .vob, .mpeg, .asf, .avi, .mov, .mp4, .mkv, .flv, .wma, .mid, .m3u, .m4u, .svg, .psd, .tiff, .tif, .raw, .gif, .png, .bmp, .jpg, .jpeg, .iso, .backup, .zip, .rar, .tgz, .tar, .bak, .ARC, .vmdk, .vdi, .sldm, .sldx, .sti, .sxi, .dwg, .pdf, .wk1, .wks, .rtf, .csv, .txt, .msg, .pst, .ppsx, .ppsm, .pps, .pot, .pptm, .pptx, .ppt, .xltm, .xltx, .xlc, .xlm, .xlt, .xlw, .xlsb, .xlsm, .xlsx, .xls, .dotm, .dot, .docm, .docx, .doc
 

IP-адреса управляющих серверов (CnC):
188[.]166[.]23[.]127:443
193[.]23[.]244[.]244:443
2[.]3[.]69[.]209:9001
146[.]0[.]32[.]144:9001 
50[.]7[.]161[.]218:9001
217.79.179[.]77
128.31.0[.]39
213.61.66[.]116
212.47.232[.]237
81.30.158[.]223
79.172.193[.]32
89.45.235[.]21
38.229.72[.]16
188.138.33[.]220

Кстати, вот адрес, на который вымогатель хочет получать биткоины: 12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw

Мы можем его отследить, и обнаружить, что по состоянию на 14.05 он собрал 8 c небольшим биткоинов (примерно 800 000 рублей).

По некоторым другим данным - 17 биткоинов, т.е. в районе 1 700 000 руб. Для такого размаха мало, на мой взгляд, но это потому что еще не понедельник. Завтра люди вернутся за компы и понесется.

Вот наиболее полный список (известных) платежных адресов:

https://blockchain.info/address/115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn

https://blockchain.info/address/12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw

https://blockchain.info/address/13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94

https://blockchain.info/address/1QAc9S5EmycqjzzWDc1yiWzr9jJLC8sLiY

https://blockchain.info/address/1BANTZQqhs6HtMXSZyE2uzud5TJQMDEK3m


UPD: Узнал интересный факт по поводу этих кошельков - оказывается, создатели вшили один-единственный адрес для получения платежей, но, после того как вирус разошелся, отдельные ушлые типы отловили бинарник, пропатчили адрес, поменяв на свой, и пустили в дальнейшее плавание ^_^.

Нет комментариев
Пожалуйста, Авторизуйтесь что бы оставить свой комментарий