Охота на Lurk: от исследования вредоносного кода до уголовного дела
Набор знаний для защиты от вредоносной программы несколько отличается от набора, необходимого для расследования. В последнем случае появляется необходимость в доказательствах наличия связи между разными инцидентами, принадлежность различных вредоносных программ к одному источнику — ну, в общем, то, что для защиты клиентов не всегда требуется. Важно перевести информацию с технического языка на юридический. Такой работой в «Лаборатории» занимается Отдел расследований компьютерных инцидентов. Недавно они поделились информацией о расследовании деятельности группировки Lurk, нацеленной на коммерческие организации. Жертвы кампании заражались одноименной троянской программой, с помощью которой похищались средства с корпоративных банковских счетов.
Эта сторона работы по борьбе с киберпреступностью освещается в деталях гораздо реже традиционного исследования угроз, и потому публикация особенно интересна. Данный текст является краткой выжимкой из нескольких публикаций на Securelist по теме: начиная с краткого исследования 2012 года, и заканчивая детальным техническим разбором троянца Lurk и рассказом о многолетнем расследовании деятельности группировки в целом.
В июне этого года были задержаны около 50 подозреваемых, предположительно причастных к хищению 3 миллиардов рублей со счетов жителей России и стран бывшего СНГ. В сообщении МВД указывалось о совершении многочисленных хищений «денежных средств с расчетных счетов юридических лиц, а также с корреспондентских счетов кредитно-финансовых учреждений с использованием вредоносного программного обеспечения». «Лаборатория» предоставила правоохранительным органам экспертную поддержку в расследовании, и, собственно, само задержание поставило точку в расследовании наших экспертов, длившемся более пяти лет.
Начало
Пожалуй самым характерным моментом всей истории является рассказ о самом первом обнаружении части кода троянца. Таковые были обнаружены в 2011 году после сообщений о нескольких случаев кражи средств с корпоративных банковских счетов. Методика атаки соответствовала не самому высокому уровню защиты ПО для работы с банковскими переводами того времени: достаточно было модифицировать банковские реквизиты в формируемых платежных поручениях, после чего деньги отправлялись на счета злоумышленников. Обнаруженный модуль было весьма сложно заставить работать в лабораторных условиях. Обнаруженный позднее в том же году дополнительный вредоносный модуль дал понять, что программа нацелена на системы дистанционного банковского обслуживания. Но не более того: полученных данных было достаточно для защиты от конкретной версии кода, но не хватало для определения масштаба атаки. В ряду куда более известных финансовых кибератак того времени (ZeuS, SpyEye, Carberp) Lurk был просто еще одним опасным, но не выдающимся зловредом.
Заражение популярных новостных сайтов
Ситуация прояснилась в 2012 году, когда произошло массовое заражение пользователей через популярные новостные ресурсы. Вредоносный код, не в первый и не в последний раз, протащили через баннерную сеть.
Пример кода зараженного баннера
С помощью кода на Javascript происходило перенаправление на вредоносный сайт, откуда посетителям раздавался эксплойт для уязвимости в Java. Вредоносный код загружался в виде зашифрованной библиотеки прямо в память процесса javaw.exe —, а это уже был достаточно нестандартный подход для атак такого типа. «Бестелесный» метод известен по эпидемиям вирусов CodeRed и Slammer, но в данном случае он использовался для загрузки троянца Lurk. На этом этапе атака получила свое имя, благодаря достаточно эффективным технологиям скрытного заражения и работы.
Часть кода вредоносной программы Lurk, отвечающего за загрузку дополнительных модулей
Несмотря на то, что атаке подверглись более 300 тысяч пользователей, далеко не все они получили в придачу троян. Условием для дальнейшей эксплуатации бреши в системе защиты было наличие специализированного ПО для корпоративного онлайн-банкинга на зараженном компьютере. Забегая вперед скажу, что в итоге через командные серверы Lurk прошло всего 60 тысяч систем, что относительно немного, именно благодаря такой избирательности.
Организация
В 2013 году появилось достаточно доказательств, чтобы надежно связать разные версии вредоносных программ между собой. Сложность вредоносного кода росла, появлялись дополнительные модули, расширялась «поддержка» банковских клиентов. Так как речь идет о корпоративном банковском обслуживании, вариантов клиентского ПО не так уж много, но по каждому авторам атаки нужно было провести довольно серьезную работу по изучению принципов работы и реверс-инжинирингу кода — не столько сложную, сколько длительную и нудную. Параллельно наши эксперты пользовались ошибками, допускаемыми членами преступной группы, которые позволили получить информацию о количестве участников и подобные данные (примеры ошибок, впрочем, в статье не приводятся, по понятным причинам).
В 2013 году в группе было около 15 участников, ближе к финалу количество выросло до 40. Часть людей отвечала за разработку вредоносного ПО, другие работали над системой управления ботнетом, третьи обналичивали средства. Новых опытных разработчиков искали разными способами, в том числе и с помощью банальных объявлений о работе.
На данном этапе работы Lurk практически все была автоматизировано: заражение и дальнейший перевод средств на подставные счета, даже распределение денег для последующего обналичивания почти не требовали вмешательства человека.
Денег нет
«Золотой век» закончился достаточно быстро. Уже в 2014 году группировка начала испытывать нехватку средств. Со стороны это было заметно по расширению круга потенциальных жертв вплоть до обычных пользователей, все чаще преступники выходили на дело со сравнительно небольшим потенциальным кушем. Причиной тому стали изменения в области безопасности ПО для банковского обслуживания. Вендоры перестали выкладывать демо-версии продуктов на сайте, добывать новые версии для изучения стало сложнее. Появились технологии противодействия простейшему способу автоматической подмены банковских реквизитов. Злоумышленники даже пытались получить копию программ для изучения через подставное юрлицо. На стороне «Лаборатории» в этот момент видели все новые версии вредоносных модулей, могли их оперативно анализировать и обновлять системы защиты для клиентов. Между тем, поддержание разветвленной инфраструктуры поддержки кампании каждый месяц обходилось, по оценке наших экспертов, в десятки тысяч долларов.
Началась диверсификация бизнеса: появился эксплойт-пак Angler, на котором зарабатывали на рынке criminal-to-criminal. Именно он, кстати, является наиболее известным продуктом группы за пределами России: в разное время новые версии пака анализировали специалисты множества антивирусных кампаний. В июне этого года сразу несколько независимых источников потдвердили, что деятельность Angler полностью прекращена, что как раз совпало по времени с арестом подозреваемых.
Финальной попыткой расширить рамки киберпреступного бизнеса стали атаки на банковские системы в ручном режиме. «Автозалив» уже давно не работал, инструментарий Lurk использовался для проникновения в инфраструктуру жертвы —, а дальше как повезет. Наши эксперты к тому времени раскрыли методику работы кампании Carbanak, которая специализировалась на банках и крупных компаниях и тогда же обнаружили схожие по характеру атаки, с применением иных, но уже давно знакомых вредоносных инструментов.
По словам наших экспертов, хотя атаки Lurk продолжались вплоть до весны 2016 года, внутри группы имелись организационные проблемы, в том числе не лучшим образом повлиявшие на соблюдение консприрации. Особенно на самом уязвимом этапе работы — при обналичивании денег. Набор подставных фирм для перевода похищенного был ограничен, и в итоге удалось собрать достаточно технической экспертизы и доказательной базы для ареста подозреваемых.
Некоторые технические особенности
Полное описание вредоносных модулей Lurk есть в этой статье, здесь же я приведу только самые интересные особенности.
Основная масса жертв заражалась (на поздних этапах работы) с помощью эксплойт-пака Angler, через взлом популярного или специализированного сайта (часто под прицел попадали бухгалтерские форумы), напрямую или через сторонние баннеры или партнерские элементы. Но, в случае если зараженной оказывалась «неинтересная» система в «интересной» организации, проводилась разведка по локальной сети, а проникновение осуществлялось в том числе с использованием абсолютно легитимной утилиты psexec.
Основное тело вредоносной программы (модуль core) загружалось только на подходящие системы. Если необходимое целевое ПО не обнаруживалось, модули-разведчики удалялись, но перед этим могли быть украдены пароли для ftp-серверов из соответствующих клиентов. В основном модуле не были жестко прописаны адреса командных серверов. Они вычислялись (точнее генерировались с двух сторон) исходя из косвенной информации, например с помощью данных о текущих биржевых котировках.
В поздних версиях Lurk реализован перехват клавиатуры, но только в случае работы в определенной программе. В некоторых случаях перехватывался видеопоток содержимого экрана.
Весной этого года была целая серия сообщений об успешных атаках на систему межбанковских переводов SWIFT. Деталей об этих атаках известно немного, и не факт, что ими поделятся в ближайшем будущем. В нашем анализе Lurk приводится объяснение такой медлительности: тут причина и в необходимости сбора большого объема технических данных, и из-за особенностей взаимодействия с правоохранительными органами (еще раз, задетектировать вредоносную атаку проще, чем расследовать все до конца). Один момент из технического анализа Lurk, предполагаю, еще не раз будет воспроизведен в других расследованиях подобных атак: надежно защищать клиентов финансовых систем можно только в том случае, если защита реализована и на серверной стороне. Иными словами, решение проблемы с таким типом кибератак — в совместной работе (в случае Lurk — это и вендор защитных решений, и разработчики ПО, и банковские организации, и их клиенты, и правоохранительные органы).
Disclaimer: Данная колонка основана на реальных событиях, но все еще отражает лишь частное мнение ее автора. Оно может совпадать с позицией компании «Лаборатория Касперского», а может и не совпадать. Тут уж как повезет.
Комментарии (6)
5 сентября 2016 в 22:02
+1↑
↓
Куда делать цитата из книжки? Ради неё же и читал : P5 сентября 2016 в 22:04
+1↑
↓
Сегодня понедельник, а цитата по пятницам иначе книжка быстро кончится :)5 сентября 2016 в 23:15 (комментарий был изменён)
0↑
↓
Disclaimer: Данная колонка основана на реальных событиях, но все еще отражает лишь частное мнение ее автора. Оно может совпадать с позицией компании «Лаборатория Касперского», а может и не совпадать. Тут уж как повезет.
Обычно это пишется после цитаты.
6 сентября 2016 в 07:27
0↑
↓
А вот интересно, подобные исследования финансируются банками или им это не интересно?6 сентября 2016 в 07:50
0↑
↓
И ни слова о том, как весь процесс был сопоставлен с «киберпреступниками».6 сентября 2016 в 09:13
0↑
↓
Я дико извиняюсь, но у вас в четвертом абзаце СНГ распался.