Lurk: образцовая корпорация киберзла

Чем запомнилась группировка Lurk участникам расследования.

Наконец-то завершился суд по делу авторов банковского трояна Lurk. В свое время пресечь их преступную деятельность удалось при участии наших экспертов. Преступников арестовали в 2016 году, в результате беспрецедентной совместной операции разных компетентных органов. Однако следствие и суд шли еще пять лет. И это неудивительно, ведь в деле было какое-то зашкаливающее количество и подозреваемых, и жертв. Участников Lurk вывозили в суд целыми автобусами. Уголовное дело состояло из 4000 томов (один том — 250 листов). Объем работы был колоссален. Следствие шло очень тяжело, обвиняемые изучали каждый протокол крайне дотошно, но в 2018 году на скамье подсудимых оказались 27 обвиняемых.

«Лаборатория Касперского» отслеживала их деятельность с 2011 года. Я услышал про Lurk, когда только пришел в компанию, в 2013 году. Помню, тогда я подумал: «Если поймать их, то все, можно с чистой совестью на пенсию уходить. Считай, что карьера состоялась». По сравнению с обычным киберкриминалом того времени, они казались действительно изощренными и с технической точки зрения, и с организационной. Хотя, наверное, если бы я увидел Lurk сегодня, они бы уже не так удивили — я бы просто подумал, что это группировка, которая использует набор лучших практик.

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

Схема заражения жертвы

Начать стоит с особенностей заражения. Злоумышленники использовали тактику watering hole: разместили на сайтах нескольких СМИ бизнес-направленности редирект на эксплойт-пак. Вообще, метод не нов, но в данном случае, чтобы заразиться, бухгалтер должен был зайти на сайт в обеденный перерыв (и только в это время). Эксплойт-пак сгружал на компьютер жертвы бестелесный троян, использовавшийся исключительно для разведки.

То есть преступники сначала изучали, какие программы работают на машине, есть ли банковское ПО, нет ли следов софта, обычно применяющегося исследователями, в каких подсетях работает машина (интересовались, в первую очередь, банковскими и сетями госструктур). Иными словами, они оценивали «интересность» компьютера — точно знали, кого они хотят заразить.

Основной вредонос скачивался, только если они видели, что компьютер интересен. В противном случае просто на всякий случай воровали все пароли, до которых могли дотянуться, и не сохранялись на устройстве.

Организация связи с командным центром

Не менее примечателен был процесс обмена информацией трояна с командным центром (С&C). В обычных вредоносах того времени адрес центра был вшит в код трояна. Авторы просто указывали доменное имя, чтобы, если что, можно было сменить IP-адрес сервера: то есть если они теряли контроль над основным адресом С&C, то могли просто заменить его на резервный. По сути, это достаточно примитивный механизм защиты. Lurk же в этом плане очень сильно отличался — они использовали метод, достойный шпионского романа.

Адрес командного центра Lurk вычислял перед сеансом связи. Он заходил на Yahoo и смотрел котировки акций определенной компании (в то время, когда мы его изучали, это был Макдоналдс). В зависимости от того, сколько стоит акция на заранее запланированный момент времени, они генерировали доменное имя и обращались по нему. То есть, чтобы злоумышленники могли управлять трояном, они тоже смотрели котировки акций в тот же момент и регистрировали доменное имя, рассчитанное по тем же параметрам. То есть невозможно было знать заранее, по какому доменному имени будет находиться командный центр.

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

Организованная инфраструктура

Отдельного рассказа заслуживает и то, как у Lurk были настроены процессы. Если другие группировки того времени, как правило, были просто сборищами случайных парней с форума (один программировал, другой обналичивал, третий руководил, четвертый координировал), то Lurk был практически полноценной IT-компанией. То есть их корректнее сравнивать не с другими киберпреступниками, а с крупными IT-корпорациями, работающими в сфере программного обеспечения. Более того, по уровню организованности их до сих пор можно ставить иным организациям в пример.

На Lurk трудились настоящие профессионалы (вероятно, с богатым опытом в разработке), которые выстроили очень сильную организационную инфраструктуру с руководителями и кадровиками. В отличие от большинства преступников, они платили своим сотрудникам зарплату (а не держали на проценте от добычи), возможно даже с бонусами. У них были и еженедельные планерки, что для того времени просто нонсенс. Такая образцовая корпорация зла.

У них даже была четко выстроена система ограничения прав доступа к информации в зависимости от ролей. Когда некоторые из членов группировки, уже находясь под арестом, читали переписку своих руководителей, то иногда начинали возмущаться, что с ними обращались не вполне честно.

Они очень скрупулезно документировали свою деятельность: даже сейчас далеко не во всех IT-компаниях ведется такая четкая документация. Правда, это, конечно, здорово помогло следствию. Более того, можно сказать, что их системный подход их и подвел: чем более системно ты действуешь, тем легче тебя отследить. Вот несколько примеров.

Базы знаний

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

Организация доступа к ресурсу с информацией

Для того чтобы получить доступ к ресурсу, где хранилась вся информация Lurk, злоумышленникам нужно было подключаться к некоему серверу через пару VPN. И после этого они получали доступ только к управлению ботами. А далее у каждого сотрудника был свой сертификат, своя учетная запись с разными правами. То есть, по сути, они действовали так, как должна быть организована корпоративная сеть нормальной компании с удаленным режимом работы. По большому счету, если бы не отсутствие двухфакторной аутентификации, то их можно было бы считать образцовой компанией.

Физически все серверы располагались в разных дата-центрах и в разных странах. Когда ты смотришь на это на виртуальном уровне через VPN, то ты не знаешь реальный IP-адрес сервера. Во многом именно из-за этого их было очень сложно вычислить.

Разработка

Группировка Lurk имела полноценные репозитории исходного кода, настроенные процессы автоматической сборки и многоэтапного тестирования, продакшн-сервер, тестовый сервер и сервер разработки. Они, по сути, делали серьезный программный продукт: у них в каждый момент времени была боевая версия (production product), версия для тестирования, версия для разработчиков.

Среднестатистический командный центр обычного трояна того времени умел принимать запросы от ботов, записывать их в базу данных и позволял управлять ими через административную панель. И все это, по сути, было реализовано на одной странице. У Lurk админка была реализована отдельно, база данных отдельно, а механизм, передающий ответ для ботов, и вовсе был спрятан за «прокладкой» (сервисом-посредником).

Эксплойт-паки

У Lurk было целых три эксплойт-пака, причем каждый из них имел три своих названия: одно внутреннее, используемое разработчиками; одно для клиентов и партнеров; ну и третье, уже присвоенное исследователями. Дело в том, что авторы Lurk не только сами использовали свои разработки, но и продавали эксплойт-паки на сторону, другим злоумышленникам. Причем версии для «партнеров» немного отличались по коду — их явно старались замаскировать под другой очень популярный эксплойт-пак.

Конец Lurk

В результате все уловки киберпреступников не очень помогли им. Большинство участников группировки правоохранительным органам удалось задержать. Но крови они попортили немало: за свою карьеру злоумышленникам удалось похитить около 45 млн долларов. Наши эксперты почти 6 лет изучали их методы. Впрочем, это позволило «Лаборатории Касперского» набраться опыта, позволяющего и далее успешно бороться с киберпреступностью.

Для тех, кто интересуется релевантными для бизнеса практическими выводами из всей этой истории, рекомендуем почитать вот этот пост. А подробный технический анализ доступен в посте на сайте Securelist.

Советы

Как отключить слежку в iOS?

У вас есть iPhone, iPad или iPod? Потратьте несколько минут на настройку служб геолокации, чтобы сэкономить заряд батареи и сохранить конфиденциальность перемещений.