"Beware of Regin, the master! His heart is poisoned. He would be thy bane..."
Введение, история
Полный текст статьи «Лаборатории Касперского» о Regin на английском языке (PDF)
Весной 2012 г., после публикации «Лабораторией Касперского» информации о необычных фактах, касающихся зловреда Duqu, с нами связался исследователь в области компьютерной безопасности и сообщил, что Duqu напомнил ему об инциденте, вызванном другим сложным зловредом. Образцом вредоносной программы он поделиться не мог, однако упомянул название «Regin» – в наши дни это название ассоциируется с вредоносной атакой, вызывающей ужас у многих администраторов систем обеспечения безопасности в государственных учреждениях по всему миру.
Уже два года мы выслеживаем эту неуловимую вредоносную программу по всему миру. Время от времени на разных сервисах мультисканирования всплывали её образцы, но они не были никак связаны между собой, имели неясный функционал, а контекста для их анализа не хватало.
Сложно точно сказать, когда были созданы первые образцы Regin. В некоторых образцах есть временные метки, относящиеся аж к 2003 году.
Жертвы Regin относятся к следующим категориям:
- Телекоммуникационные операторы
- Госучреждения
- Международные политические организации
- Финансовые учреждения
- Научно-исследовательские учреждения
- Частные лица, вовлеченные в передовые математические/криптографические исследования
На данный момент нам известны две основные задачи, которые стоят перед организаторами атак:
- Сбор секретных сведений
- Содействие проведению других видов атак.
В большинстве случаев усилия атакующей стороны были сосредоточены на получении конфиденциальной информации, такой как электронные письма и документы, однако в некоторых случаях киберпреступники взламывали IT-инфраструктуру телекоммуникационных операторов, чтобы получить возможность осуществлять дополнительные технически сложные атаки. Подробнее читайте ниже в разделе «Атаки на сети GSM».
Один из наиболее известных людей, ставших жертвами Regin, – бельгийский криптограф Жан-Жак Кискате (https://en.wikipedia.org/wiki/Jean-Jacques_Quisquater). В феврале 2014 г. Кискате объявил о том, что его компьютер был взломан в результате кибератаки с применением сложных технологий. Нам удалось получить образцы вредоносного ПО, использованного при атаке на Кискате, и подтвердить, что они относятся к платформе Regin.
Другой жертвой Regin стал компьютер, который мы называем «Магнитом для угроз«. Он принадлежит исследовательскому институту и пережил атаки Turla, Mask/Careto, Regin, ItaDuke, Animal Farm и нескольких других сложных угроз, не имеющих общепринятых названий, причем в какой-то момент времени все они благополучно сосуществовали на одном компьютере.
Первоначальное заражение и распространение по сети
По сей день остаётся тайной, каков был метод первоначального заражения Regin. Существует несколько теорий на этот счёт, в т.ч. MITM-атака (man-in-the-middle) с применением 0-day эксплойтов к уязвимостям в браузере. В нескольких случаях мы обнаружили инструменты и модули, разработанные для горизонтального распространения заражения (от компьютера к компьютеру по сети). На данный момент мы не обнаружили никаких эксплойтов. Модули распространения копируются на удаленные компьютеры через административные разделяемые ресурсы Windows, и затем запускаются на выполнение. Очевидно, что эта методика требует прав администратора в сети жертвы. В нескольких случаях зараженные машины были ещё и контроллерами доменов Windows. Проведение целевых атак на системных администраторов с применением эксплойтов, размещённых на web-страницах, – это один из простых способов немедленного получения доступа с правами администратора ко всей сети сразу.
Платформа Regin
Коротко говоря, Regin – это платформа для проведения кибератак, развертываемая злоумышленниками в сетях жертв для обеспечения удаленного управления на всех возможных уровнях.
Платформа имеет ярко выраженную модульную структуру и развертывается в несколько этапов.
Схема вредоносной платформы Regin
Первый этап заражения – это, как правило, единственный этап, на котором на компьютер жертвы внедряется исполняемый файл – на следующих этапах вредоносный код размещается непосредственно на жестком диске (для 64-разрядных систем) в виде расширенных атрибутов NTFS или записей реестра. Мы проанализировали множество разных модулей первого этапа – иногда они были совмещены с публичными исходными кодами, чтобы обеспечить своеобразный полиморфизм, способный усложнить детектирование вредоносного кода.
На втором этапе выполняется несколько задач, в том числе может быть удалено заражение Regin при наличии соответствующих инструкций, полученных в рамках этапа 3.
На втором этапе также создается файл-маркер, которым помечается зараженная машина. Вот список известных нам имён, которые может иметь этот файл:
- %SYSTEMROOT%system32nsreg1.dat
- %SYSTEMROOT%system32bssec3.dat
- %SYSTEMROOT%system32msrdc64.dat
Этап 3 существует только для 32-разрядных систем – в 64-разрядных системах на этапе 2 диспетчер загружается напрямую, минуя этап 3.
Этап 4 – работа диспетчера. Это, пожалуй, самый сложный модуль во всей платформе. Диспетчер – это центральный элемент фреймворка, работающий в пользовательском режиме. В 64-разрядных системах диспетчер загружается на третьем этапе заражения непосредственно в ходе инициализации вредоносного кода; в 32-битных системах диспетчер загружается в рамках четвертого этапа заражения из виртуальной файловой системы как модуль 50221.
Диспетчер обеспечивает выполнение самых сложных задач платформы Regin, в том числе предоставление API для доступа к виртуальным файловым системам, базовые функции обмена данными и их хранения, а также подпрограммы сетевого транспорта. По сути, диспетчер – это мозг, управляющий работой всей платформы.
Подробное описание всех этапов Regin доступно в нашей технической статье.
Виртуальные файловые системы (32- и 64-разрядные)
Та часть кода платформы Regin, которая представляет наибольший интерес, хранится в зашифрованных файловых хранилищах, известных как виртуальные файловые системы.
В ходе нашего исследования мы смогли получить образцы 24 виртуальных файловых систем с многочисленных зараженных компьютеров по всему миру. Их имена носят в целом случайный характер, а сами файлы могут находиться в разных местах зараженной системы. Их полный список, а также форматы виртуальных файловых систем Regin можно найти в нашем техническом описании.
Необычные модули и артефакты
Когда APT-атаки проводятся высокопрофессиональной группой хакеров – а Regin именно такой случай – ошибки случаются очень редко. Но иногда всё же случаются: некоторые из виртуальных файловых систем, которые мы проанализировали, содержат слова, которые, вероятно, являются кодовыми названиями модулей, развернутых в зараженной системе:
- legspinv2.6 и LEGSPINv2.6
- WILLISCHECKv2.0
- HOPSCOTCH
Также мы обнаружили модуль, который является плагином типа 55001.0 и который ссылается на другое кодовое слово – U_STARBUCKS:
Атаки на сети GSM
Из всех аспектов вредоносной активности Regin, известных нам на данный момент, наибольший интерес представляет заражение крупного GSM-оператора. В процессе анализа мы обнаружили зашифрованную запись в виртуальной файловой системе с внутренним идентификатором 50049.2, которая, по всей видимости, является журналом активности вредоносной программы на контроллере базовых станций GSM.
Источник: https://en.wikipedia.org/wiki/Base_station_subsystem
Согласно документации стандарта GSM (http://www.telecomabc.com/b/bsc.html) «котроллер базовых станций осуществляет контроль и управление несколькими базовыми станциями (base transceiver station, BTS). Контроллер базовых станций отвечает за выделение радиоресурсов для выполнения мобильного вызова и для передачи абонентской сессии между управляемыми им базовыми станциями. Прочие передачи абонентских каналов управляются центром коммутации мобильной связи (mobile switching center, MSC).
Вот как выглядит расшифрованный журнал активности Regin в сети GSM:
Журнал размером около 70 кБ содержит сотни записей, похожих на приведенную выше. В журнале также содержатся метки времени, по которым видно, когда та или иная команда была выполнена.
Записи в журнале, по всей видимости, содержат команды на языке Ericsson OSS MML (Man-Machine language – языке «человек — машина», определенном Международным союзом электросвязи).
Вот несколько команд, выполненных на контроллере базовых станций, вместе с метками времени:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
2008-04-25 11:12:14: rxmop:moty=rxotrx; 2008-04-25 11:58:16: rxmsp:moty=rxotrx; 2008-04-25 14:37:05: rlcrp:cell=all; 2008-04-26 04:48:54: rxble:mo=rxocf-170,subord; 2008-04-26 06:16:22: rxtcp:MOty=RXOtg,cell=kst022a; 2008-04-26 10:06:03: IOSTP; 2008-04-27 03:31:57: rlstc:cell=pty013c,state=active; 2008-04-27 06:07:43: allip:acl=a2; 2008-04-28 06:27:55: dtstp:DIP=264rbl2; 2008-05-02 01:46:02: rlstp:cell=all,state=halted; 2008-05-08 06:12:48: rlmfc:cell=NGR035W,mbcchno=83&512&93&90&514&522,listtype=active; 2008-05-08 07:33:12: rlnri:cell=NGR058y,cellr=ngr058x; 2008-05-12 17:28:29: rrtpp:trapool=all; |
Описание команд:
- rxmop – проверить версию ПО;
- rxmsp – вывести список текущих настроек переадресации вызовов мобильной станции;
- rlcrp – вывести список текущих настроек переадресации вызовов контроллера базовых станций;
- rxble – разрешить (разблокировать) переадресацию вызовов;
- rxtcp – показать трансиверную группу для конкретной соты;
- allip – показать сигнал «внешняя тревога»;
- dtstp – показать настройки DIgital Path (DIP – это функция, используемая для контроля над подсоединенными линиями импульсно-кодовой модуляции);
- rlstc – активировать соту (соты) в GSM-сети;
- rlstp – выключить соту (соты) в GSM-сети;
- rlmfc – добавить частоты в активный список распределения BCCH (broadcast control channel – широковещательного канала управления);
- rlnri – добавить соседнюю соту;
- rrtpp – показать информацию о пуле транскодеров передаваемых данных (radio transmission transcoder pool).
По-видимому, в журнале содержатся не только выполненные команды, но и имена пользователей и пароли к некоторым операторским учетным записям:
sed[snip]:Alla[snip] hed[snip]:Bag[snip] oss:New[snip] administrator:Adm[snip] nss1:Eric[snip]
Согласно журналу, команды выполнялись в общей сложности на 136 различных сотах. В имена некоторых сот входят строки prn021a, gzn010a, wdk004, kbl027a и т.п. Журнал команд, который попал в наше распоряжение, покрывает период примерно в один месяц – с 25 апреля по 27 мая 2008 г. Неизвестно, почему подача команд прекратилась в мае 2008 г.; возможно, заражение было удалено, или злоумышленники решили поставленные задачи и занялись другими целями. Ещё одно возможное объяснение: киберпреступники доработали или изменили вредоносное ПО таким образом, что журналы перестали сохраняться локально. Не исключено, что именно поэтому были обнаружены только старые журналы.
Обмен данными с командными серверами
Механизм управления (C&C), реализованный в Regin, чрезвычайно сложен и основан на применении для обмена данными автоматических агентских модулей, распределяемых злоумышленниками по всей атакуемой сети. Большинство зараженных машин обмениваются данными с другими компьютерами в своей внутренней сети, используя различные протоколы в соответствии с настройками, прописанными в файле конфигурации, в т.ч. через HTTP и Windows network pipes. Такая сложная схема преследует две цели: у злоумышленников появляется возможность глубже проникнуть в сеть, потенциально обойти сетевые защитные механизмы и при этом максимально сократить внешний обмен с командными серверами.
Вот как выглядит расшифрованный файл конфигурации:
1 2 3 4 5 |
17.3.40.101 transport 50037 0 0 y.y.y.5:80 ; transport 50051 217.y.y.yt:443 17.3.40.93 transport 50035 217.x.x.x:443 ; transport 50035 217.x.x.x:443 50.103.14.80 transport 27 203.199.89.80 ; transport 50035 194.z.z.z:8080 51.9.1.3 transport 50035 192.168.3.3:445 ; transport 50035 192.168.3.3:9322 18.159.0.1 transport 50271 DC ; transport 50271 DC |
В приведенной выше таблице видны настройки обмена данными с нескольких зараженных компьютеров. Видно, что зараженные компьютеры (IP-адреса 17.3.40.x, 50.103.14.x, 51.9.1.x, 18.159.0.x) объединены в своего рода виртуальную сеть. В одной из этих строк прописано обращение к «внешнему» командному серверу с IP-адресом 203.199.89.80.
Числа, стоящие сразу после оператора transport, указывают на плагины, обрабатывающие потоки данных. В нашем случае это:
- 27 – перехватчик трафика по протоколу ICMP, использующий сокеты прямого доступа
- 50035: сетевой транспорт на основе WinSock
- 50037: сетевой транспорт через протокол HTTP
- 50051: сетевой транспорт через протокол HTTPS
- 50271: сетевой транспорт через протокол SMB (именованные каналы).
Компьютеры, расположенные на границе сети, по сути работают как маршрутизаторы, обеспечивая соединение между зараженными компьютерами внутри сети и командными серверами, доступными через интернет.
Расшифровав все полученные файлы конфигурации, мы смогли установить следующие «внешние» командные серверы:
IP-адрес командного сервера | Местонахождение | Описание |
61.67.114.73 | Тайвань, провинция Тайчжун | Chwbn |
202.71.144.113 | Индия, Четпут | Chennai Network Operations (team-m.co) |
203.199.89.80 | Индия, Тхане | Интернет-провайдер |
194.183.237.145 | Бельгия, Брюссель | Perceval S.a. |
Один конкретный случай заслуживает отдельного внимания – настолько он поразил нас. В некой ближневосточной стране все обнаруженные нами зараженные компьютеры взаимодействуют между собой, образуя одноранговую (P2P) сеть, в которую входят компьютеры, расположенные в администрации президента страны, исследовательском центре, сети образовательного учреждения и в банке.
Все зараженные компьютеры, разбросанные по всей стране, устанавливают соединения друг с другом. На одном из этих компьютеров установлен агентский модуль, который может переправлять пакеты за пределы страны, на командный сервер в Индии.
Таким образом реализована довольно интересная схема связи с командным сервером, гарантирующая незаметность и сводящая к минимуму шансы привлечь к себе внимание. Например, если все команды вредоносной программе, установленной в администрации президента, направляются через сеть банка, то весь вредоносный трафик, который могут заметить президентские сисадмины, будет идти из банка, расположенного в той же стране.
Статистика по жертвам
В течение последних двух лет мы собирали статистику об атаках и о жертвах Regin. Сбор статистики упрощался за счёт того, что даже после удаления вредоносной программы на компьютерах остаются определенные артефакты, по которым можно определить, что компьютер ранее был заражен Regin. Например, в нескольких случаях мы наблюдали, что на вылеченных компьютерах оставался файл msrdc64.dat, который является маркером заражения.
На данный момент жертвы Regin зафиксированы в 14 странах:
- Алжир
- Афганистан
- Бельгия
- Бразилия
- Германия
- Индия
- Индонезия
- Иран
- Кирибати
- Малайзия
- Пакистан
- Россия
- Сирия
- Фиджи
Всего мы насчитали 27 различных жертв. Следует оговориться, что здесь под жертвой понимается вся организация, включая всю ее сеть. Количество уникальных компьютеров, зараженных Regin, разумеется, намного больше.
На вышеприведенной карте удивительно видеть Фиджи и Кирибати – такие серьезные вредоносные атаки редко бывают нацелены на такие маленькие и изолированные от всех страны. В частности, наличие жертвы подобных атак в Кирибати – из ряда вон выходящее явление. Ведь Кирибати – маленький остров в Тихом океане с населением всего около 100 000 жителей.
Более подробная информация о жертвах Regin доступна клиентам Kaspersky Intelligenсe Services. Справки по адресу intelreports@kaspersky.com.
Атрибуция
Учитывая сложность Regin и стоимость его разработки, можно предположить, что создание этой вредоносной платформы поддерживалось на государственном уровне. В случае высокопрофессиональных киберпреступников – а за Regin стоят именно таковые – атрибуция представляет очень большую сложность; при этом некоторые метаданные, извлеченные из вредоносных образцов, всё же имеют определенное значение.
Разработчики вредоносной платформы легко могли внести изменения в эти данные, поэтому предоставим читателю самому решать, что это: уловка киберпреступников или всё же истинный индикатор истории зловреда, пусть и некритичный.
Более подробная информация по Regin доступна клиентам Kaspersky Intelligenсe Services. Справки по адресу intelreports@kaspersky.com.
Заключение
Уже более десяти лет высокопрофессиональная группа киберпреступников, известная как Regin, проводит атаки на крупные организации по всему миру с использованием сложной вредоносной платформы. Насколько мы можем судить, кампания по-прежнему активна; при этом вредоносный код, возможно, был обновлен до новых, более сложных версий. Последний по времени известный нам образец относится к случаю заражения 64-разрядной системы. Это заражение было все еще активно весной 2014 г.
Название Regin, по-видимому, возникло как перестановка частей «In Reg», т.е. «в реестре» – отсылка к тому, что зловред может хранить свои модули в реестре. Это имя и первые процедуры обнаружения появились в антивирусных продуктах примерно в марте 2011 г.
В некоторых аспектах платформа напоминает нам другой сложный зловред – Turla. Среди общих черт – использование виртуальных файловых систем и размещение специальных агентских модулей для соединения разных сетей. При этом в плане реализации, методов кодирования, использования плагинов, методов обеспечения скрытности и гибкости Regin превосходит Turla и на данный момент является одной из наиболее сложных платформ для проведения вредоносных атак, которые нам приходилось анализировать.
Пожалуй, самым необычным и интересным аспектом данной вредоносной платформы является способность проникать в GSM-сети и следить за их работой. В настоящее время мы стали чересчур зависимыми от мобильных сетей, работа которых основана на давно устаревших протоколах обмена данными с ограниченными или вовсе отсутствующими мерами по обеспечению безопасности конечных пользователей. Во всех GMS-сетях реализованы механизмы, позволяющие, в частности, правоохранительным органам отслеживать деятельность подозреваемых в незаконной деятельности абонентов, однако другие лица могут незаконно воспользоваться этой возможностью для проведения атак на пользователей мобильных сетей.
Полная версия технической статьи на английском языке с приложением индикаторов заражения.
Продукты «Лаборатории Касперского» детектируют модули платформы Regin под вердиктами Trojan.Win32.Regin.gen и Rootkit.Win32.Regin.
Если вы обнаружили заражение Regin в вашей сети, пожалуйста, свяжитесь с нами по адресу intelservices@kaspersky.com.
Regin: взлом GSM-сетей при поддержке на государственном уровне
Егор
Почему это «удивительно видеть Фиджи и Кирибати»?
Вовсе нет. Кто-то может приехать и на отдых.
Почему бы злоумышленникам не отследить его сетевую активность там, если он им оказался зачем-то нужен?
Очень печально, что подобные атаки стали столь персонализированными.
Nick
Очень интересно. Подозрительно, что в списке инфицированных стран отсутствует USA. В статье не указано, какие использовались сертификаты для подписи. Respect !!!
Тшсл
Не думаю что это случайность, и то что об этом не упомянули, не значит что не понимают. Процентов на 90 это спецслужбы США. имхо.