Содержание статьи
APT, таргетированные, целенаправленные атаки — все эти термины уже не первый год находятся на почетных местах в материалах секьюрити-изданий, корпоративных и частных ИБ-блогеров. Мы не оставляли эту тему без внимания, но теперь, когда накопился определенный объем информации, мы готовы выкатить большую летопись, охватывающую самые запоминающиеся атаки за последние годы.
Наследие Hacking Team
Одна из самых громких тем этого года — взлом Hacking Team. По высоте волны, которую он породил в информационном море, этот взлом по праву стоит в одном ряду со сливом исходников Zeus и Carberp. Спасибо безвестным авторам: этот инцидент позволил широкой общественности заглянуть в мир коммерческого «разведывательного» ПО, как его называют сами разработчики.
Всего было украдено около 400 Гбайт данных, среди которых: исходный код шпионского ПО, переписка с клиентами, данные о контрактах Hacking Team, в том числе заключенные договоры на продажу ПО различным государствам, а также большое количество другой информации, связанной с деятельностью компании.
Hacking Team
Итальянская компания, разработчик Remote Control System (троянские агенты системы с переменным успехом обнаруживаются антивирусами под названиями Da Vinci, Crisis и Morcut). Сами Hacking Team позиционируют свой продукт как legal spyware, разработанное для использования правительствами и правоохранительными органами различных государств. Со временем итальянцы произвели ребрендинг для версии 9 (версия 8 назвалась Da Vinci), после чего RCS стала носить название Galileo.
Если говорить об исходных кодах троян-агентов, то можно сказать ровно одно: ничего экстраординарного. Как говорится, все простенько и со вкусом:
- типовые функции уже многократно были перечислены — перехват данных из почты (Gmail), интернет-мессенджеров (Skype), получение учетных данных и cookies из браузеров (Firefox, Chrome, IE), получение данных из соцсетей (Facebook, Twitter), запись с микрофона и камеры, получение содержимого облачных сервисов (googledocs, cloudfile), снятие скриншотов и геотаргетинг через GPS, извлечение сохраненных паролей из различных приложений, извлечение адресных книг (Outlook), логгинг нажатий клавиш, энумерация Wi-Fi-сетей и USB-устройств;
- широкое использование сторонних библиотек с открытым исходным кодом: Expat (парсинг XML), Speex (кодек для сжатия речевого сигнала), библиотека интерпретатора скриптового языка Lua, Zlib (сжатие данных), SQLite (работа с БД), SimpleJSON (работа с файлами формата JSON);
- встроенные реализации криптоалгоритмов AES, MD5, SHA-1, Base64.
Доступные в интернете исходники включают проекты Core, Scout и Soldier. Их анализ показывает, что разработчики со временем перешли на модульную систему бот-агента. Система лицензирования, завязанная на конфигурационные файлы, предусматривает различную ценовую политику в зависимости от используемых модулей (это уже из документации). Опять-таки видно, что в отдельных случаях применялась двухкомпонентная схема: сначала в систему внедрялся простой бот, а потом — более продвинутый вариант.
Разработчики предусмотрели защиту своих ботов всевозможными способами, в частности протекторами Themida и VMProtect; кроме того, в исходниках также можно было найти криптор собственной разработки. Кстати, размер неупакованного бинарника бота составляет около мегабайта, что достаточно много.
Взаимодействие с командным центром устроено через WinHTTP API. Видимо, такую реализацию выбрали из-за простоты программирования работы через системный прокси, который используют IE и Chrome. Как известно, многие корпоративные пользователи работают в среде Windows, где доступ к интернету организован через прокси с NTLM-аутентификацией по имени пользователя в домене. И как правило, системный прокси через групповые политики настроен именно на такой режим работы. Так вот, WinHTTP позволяет легко реализовать доступ в этом случае, без необходимости узнавать пароль от прокси. Управляющая часть RCS написана под платформу Windows и использует Python для реализации backend-части, а также MongoDB в качестве хранилища данных.
Куда как больший интерес представляли эксплоиты нулевого дня. Их было несколько (в том числе LPE для Windows), из них особенно интересен эксплоит для Flash (CVE-2015-5119). Во-первых, разработчики элегантно обошлись с задачей формирования вредоносных документов: несколько Python-скриптов могут сформировать docx-, xlsx-, pptx-файлы, содержащие внедренный вредоносный Flash-контент, который загружает с удаленного сайта самого бота. Для атак через браузер эксплуатировалась та же уязвимость (для IE — уязвимость JavaVM, а для других браузеров — уязвимость в win32k.sys). Таким образом, одна уязвимость использовалась во всех векторах атак, включая платформы Windows, Linux и OS X.
Во-вторых, наконец-то стали известны ценовые подробности, а заодно и выяснилось имя человека, который искал на заказ уязвимости. Как ни странно, он оказался русским — это некий индивидуальный предприниматель Торопов Виталий Сергеевич (как следует из отсканированной копии со счетом-фактурой от 20 апреля 2015 года). Платеж на сумму 39 тысяч долларов был назначен за консалтинговые услуги и должен был быть перечислен на счет в Сбербанке.
Сразу после слива отдельные разработчики Exploit Kit, в частности Angler, Neutrino и Nuclear Pack, оперативно внедрили эксплоит для CVE-2015-5119 в свои продукты, что в очередной раз продемонстрировало исключительную быстроту реагирования киберандеграунда.
Кроме собственно исходных кодов, была слита email-переписка и различная документация, откуда можно было почерпнуть немало интересного о заказчиках RCS.
Вот, например, выборка из файла Client List_Renewal date.xlsx, куда вошли страны постсоветского пространства и США (рис. 1).
![Рис. 1. Некоторые клиенты Hacking Team](https://xakep.ru/wp-content/uploads/2015/11/1448261055_5040_ht_clients.png)
![](https://xakep.ru/wp-content/uploads/2015/10/xakep-202-210x280.jpg)
Хакер #202. Скажи нет большому брату!
Интересно, что даже ФБР покупало данный продукт — видимо, взаимодействия с АНБ им было недостаточно.
А что насчет России? Считается, что ФГУП НИИ «Квант» подконтролен ФСБ России, которая, опять же, судя по переписке, активно интересовалась разработками Hacking Team, первоначально действуя через израильского реселлера NICE, но в итоге закупила напрямую, предположительно через ИнфоТеКС.
А вот (рис. 2) график из файла Customer History.xlsx (выручка в евро).
![Рис. 2. Суммарная выручка Hacking Team с детализацией по странам](https://xakep.ru/wp-content/uploads/2015/11/1448261063_6970_ht_revenues.png)
Согласно графику, отечественная компания ИнфоТеКС выплатила Hacking Team в 2012–2014 годах более 450 тысяч евро
Отдельного внимания заслуживает таблица, где показаны результаты тестирования разных вариантов бота RCS антивирусными средствами (рис. 3).
![Рис. 3. Сравнительный тест антивирусов на детект бота Hacking Team](https://xakep.ru/wp-content/uploads/2015/11/1448261089_1cc5_ht_av.png)
В таблице видна даже такая экзотика, как антивирус VBA32 из Беларуси (специалисты VBA, кстати, обнаружили в свое время Stuxnet). «Экзотика» потому, что за пределами самой Беларуси VBA32 очень мало распространен и используется обычно в государственных структурах РБ.
В ходе анализа было установлено, что во всем производимом Hacking Team программном обеспечении для слежки встроен бэкдор, который позволяет удаленно деактивировать или приостановить работу этого ПО. При этом собираемые данные специальным образом помечаются, что позволяет в дальнейшем установить и того, кто использовал конкретный экземпляр ПО, и его жертву.
О самом взломе ходит очень много слухов. В частности, по версиям ПО видно, что взлом произошел после марта 2015-го. Официальные источники оперируют датой 5 июля, когда информация о взломе ушла в массы. Не совсем понятно, как можно было незаметно слить 400 Гбайт данных. Кроме того, все файлы лицензий на версию 9.5 заканчивались в апреле 2015 года, а на 9.6 — в июне 2015 года.
«Официальная» версия основного вектора атаки — слабые пароли, такие как HTPassw0rd, Passw0rd!81, Passw0rd, Passw0rd!, Pas$w0rd. Как говорится, сапожник без сапог.
Так или иначе, нет никаких оснований полагать, что сотрудники HT бросят свое ремесло, — скорее всего, они просто «сменят вывеску» и продолжат заниматься своей сомнительной деятельностью. Но удар по ним, конечно, был нанесен ощутимый. Остается только догадываться, происки ли это «благородных» хакеров или козни конкурирующих организаций...
Duqu — version 2.0
Весной 2015 года в ходе проверки внутренней безопасности своим новым продуктом, призванным обнаруживать атаки класса APT, «Лаборатория Касперского» выявила вторжение в свою корпоративную сеть. При дальнейшем расследовании была обнаружена новая вредоносная платформа, имеющая непосредственное отношение к одной из самых сложных и загадочных кампаний кибершпионажа — Duqu, обнаруженной в 2011 году. Новая платформа получила название Duqu 2.0.
После обмена информацией с другими антивирусными компаниями выяснилось, что ЛК не единственная оказалась под ударом. Так, были выявлены атаки, связанные с событиями, имеющими отношение к деятельности группы P5+1 (США, Великобритания, Франция, Китай, Россия и Германия), и с переговорами с Ираном по ядерной программе. Кроме того, аналогичная атака была проведена против участников мероприятий, посвященных 70-й годовщине освобождения Освенцима.
По информации Symantec (которая называет Duqu 2.0 по-своему — Duqu.B), троян был использован в ряде целевых атак, среди атакуемых организаций были операторы связи Европы и Северной Африки, а также один из производителей ICS/SCADA-решений в Юго-Восточной Азии. Также заражение выявили на компьютерах, расположенных в США, Великобритании, Швеции, Индии и Гонконге.
Начальный вектор заражения ЛК остался до конца не выясненным. Судя по всему, атака началась с фишингового письма, присланного сотруднику одного из офиса ЛК Азиатско-Тихоокеанского региона (APAC). К сожалению, злоумышленники оказались очень предусмотрительными, и почтовые сообщения, а также история браузера были стерты.
В ходе киберкампании Duqu 2.0 использовалось целых три zero-day:
- CVE-2014-4148 (MS14-058) — уязвимость механизма рендеринга TTF-шрифтов в win32k.sys, позволяет создать документ Microsoft Word с «полезной нагрузкой», при этом вредоносный код выполнится с повышенными привилегиями;
- CVE-2014-6324 (MS14-068) — уязвимость в Kerberos, позволяет удаленному пользователю домена поднять свои права до администратора домена;
- CVE-2015-2360 (MS15-061) — уязвимость в win32k.sys, позволяющая повысить привилегии локального пользователя.
Метод первоначального заражения Duqu 2.0 один в один повторяет метод предшественника. Дроппер Duqu образца 2011 года представлял собой файл формата Microsoft Word тоже с эксплоитом уязвимости драйвера win32k.sys (MS11-087), отвечающего за механизм рендеринга TTF-шрифтов.
Специалисты исследовательского центра Crysys (The Laboratory of Cryptography and System Security) из Венгрии опубликовали детали исследования обеих версий Duqu, из которого видно, что между ними много общего:
- схожие функции хеширования строк, которые используются для идентификации установленных антивирусных продуктов;
- схожие методы, магические числа и структура файлов, которые шифруются с использованием алгоритма AES;
- одинаковый нестандартный CBC режим работы алгоритма шифрования AES;
- практически идентичный модуль, который отвечает за ведение лога действий, использует уникальные идентификаторы вместо «читабельных» информационных сообщений;
- схожий стиль программирования и компиляции с использованием C++.
Самой интересной фишкой атакующих было то, что Duqu 2.0 не использовал никаких методов автозапуска после перезагрузки, кроме того, исполняемый код присутствовал только в памяти. Это очень сильно затруднило как обнаружение, так и исследование, ведь для анализа вредоносного кода необходимо было снять полный дамп памяти.
Теоретически, перезагрузив все компьютеры в сети, можно было полностью избавиться от Duqu 2.0. Но это только теоретически... На практике же на отдельные серверы с наибольшим аптаймом, которые имели прямой доступ к интернету (proxy- или web-серверы), устанавливались драйверы (причем для x64 они были подписаны валидным сертификатом Foxconn), играющие роль своеобразных тоннелей во внутреннюю сеть (рис. 4).
![Рис. 4. Тоннелирование данных драйвером Duqu 2.0](https://xakep.ru/wp-content/uploads/2015/11/1448261132_52eb_duqu_2_driver.jpg)
Были найдены две разновидности таких драйверов. Их возможности позволяют работать с сетевым трафиком на уровне NDIS (Network Driver Interface Specification). Для активации тоннеля извне корпоративной сети злоумышленники посылали специальные «магические строки». При этом одна версия драйвера, более простая, ждала строку romanian.antihacker, после приема которой начинала перенаправлять все пакеты с порта 443 на порт 445 (SMB) или 3389 (Remote Desktop), а другая использовала расширенный набор портов в зависимости от строки и перенаправляла пакеты:
- ugly.gorilla1 — с порта 443 (HTTPS) на порт 445 (SMB);
- ugly.gorilla2 — с порта 443 (HTTPS) на порт 3389 (RDP);
- ugly.gorilla3 — с порта 443 (HTTPS) на порт 135 (RPC);
- ugly.gorilla4 — с порта 443 (HTTPS) на порт 139 (NETBIOS);
- ugly.gorilla5 — с порта 1723 (PPTP) на порт 445 (SMB);
- ugly.gorilla6 — с порта 443 (HTTPS) на порт 47012 (этот порт не используется ни одним известным протоколом, вероятно, применяется для связи с самим трояном Duqu 2.0).
Сам троян Duqu 2.0 был обнаружен в двух вариантах: легковесный бэкдор размером 500 Кбайт (нда, кто бы нам в девяностые, когда счет размеров малвари шел на байты, назвал 500 Кбайт «легковесными». — Прим. ред.) и полнофункциональный шпионский модуль с огромным количеством плагинов (порядка 100), который весил целых 19 Мбайт. Этот монстр отвечал за взаимодействие с C&C по протоколу HTTPS и мог выступать в качестве промежуточного прокси между бэкдором и внешним миром. Для внутрисетевого взаимодействия агенты Duqu 2.0 могли использовать протоколы HTTP (передаваемые данные маскировались под изображения JPEG, как в Duqu 1.0, или GIF) и HTTPS, именованные каналы SMB, а также прямое TCP-соединение с использованием кастомного протокола с шифрованием данных.
Плагины содержали большое количество функций для разведки внутренней инфраструктуры сети:
- поиск серверов и ПК в сети;
- поиск сетевых ресурсов;
- перечисление объектов Active Directory;
- определение настроек сетевых интерфейсов, таблиц маршрутизации и правил сетевой фильтрации;
- перечисление пользователей ПК через SMB;
- лог процессов и активных терминальных сессий;
- извлечение паролей из различного ПО для удаленной работы, например PuTTY или VNC-клиентов;
- поиск серверов баз данных MS SQL и Oracle;
- извлечение данных из SAM и LSASS;
- снифинг трафика при помощи легитимного подписанного драйвера npf.sys из состава WinPcap.
Используя добытую информацию, злоумышленники фактически разворачивали внутри корпоративной сети свою собственную инфраструктуру из зараженных машин.
Заражение внутри сети велось следующим образом: при помощи сдампленных из памяти хешей паролей простых доменных пользователей посредством атаки типа pass the hash злоумышленники логинились на контроллере домена, а потом поднимали права до администратора при помощи эксплоита CVE-2014-6324. После этого на удаленные ПК через вызов команды msiexec.exe /i "C:\\[…]\tmp8585e3d6.tmp" /q PROP=9c3c7076-d79f-4c
или через Task Scheduler устанавливались вредоносные MSI-пакеты (рис. 5).
![Рис. 5. Структура MSI-пакета Duqu 2.0](https://xakep.ru/wp-content/uploads/2015/11/1448261157_c22a_duqu_2_msi.jpg)
Кстати, 9c3c7076-d79f-4c
— это ключ, которым внутри MSI-пакета шифровалось вредоносное содержимое.
Ко всему прочему злоумышленники в MSI c Duqu 2.0 реализовали систему обхода продуктов ЛК путем манипуляций с avp.exe и klif.sys. Кроме того, в «расширенной версии» был предусмотрен детект и обход продукции следующих вендоров:
- McAfee;
- Symantec;
- Bitdefender;
- ESET;
- TrendMicro;
- Avast;
- AVG;
- F-Secure;
- Windows Defender.
В различных семплах Duqu 2.0 использовались разные комбинации алгоритмов шифрования (Camellia, AES, XTEA, RC4, XOR-based) и компрессии (LZJB, LZF, FastLZ, LZO), что тоже значительно затруднило процесс детектирования угрозы.
С идентификацией инициаторов атаки, как всегда, имеются определенные проблемы. Настоящие профессионалы следов не оставляют, а имитировать можно почти все что угодно, и намеренно добавленная в программный код строка на иностранном языке или отличительная особенность программистов из какой-то конкретной страны могут быть призваны увести следствие по ложному следу. Есть информация, что безвестные авторы Duqu 2.0 пытались представить свое творение как работу не то китайских, не то русских спецов. Например, ugly.gorilla и шифр Camellia — отсылка к китайской группировке APT1, а алгоритм LZJB использовался трояном MiniDuke в 2013 году. Однако на весь код найдена только одна ошибка в английском слове: Excceeded вместо Exceeded — и то можно считать это простой опиской. Так что с английским у разработчиков явно все в порядке.
Зарубежные СМИ (например, Wired или The Wall Street Journal), в свою очередь, любят проводить связь вида Stuxnet — Duqu — Duqu 2.0, приплетая сюда интерес к Иранской ядерной программе. Получается — Израиль и Моссад, хотя многие предпочитают об этом не говорить. В любом случае ресурсов на атаку потратили достаточно много, как людских, так и финансовых.
Непонятно только, что же хотели найти в сети «Лаборатории Касперского» злоумышленники. В свете того, что в этом году со стороны западных СМИ против ЛК развернута целая информационная атака, кампания Duqu 2.0 может быть одной из ее составляющих, но это уже совсем другая история, которая выходит за рамки формата нашего журнала...
Epic Turla
Несмотря на то что данная киберкампания вроде как была уже подробно описана в многочисленных отчетах еще в прошлом году, ее инициаторы не перестают преподносить все новые сюрпризы.
На самом деле материалов про Turla достаточно, но в них встречается такое многообразие названий, что легко запутаться: Turla, Carbon/Cobra, Snake, Uroburos, и это еще далеко не все.
Нужно отметить, что кампания длится, по некоторым оценкам, уже десять лет (с 2005 года), хотя первые статьи об очередной APT, использующей продвинутый руткит, опубликовали в начале 2014-го специалисты из G-Data, а следом за ними выступили специалисты BAE Systems. Летом 2014-го ЛК в своем материале показала связь между Epic и Turla, ну а в начале 2015-го отчет выпустила Symantec. Итак, по порядку.
В далеком 2008 году червь Agent.BTZ инфицировал локальные сети Центрального командования вооруженных сил США на Ближнем Востоке (а начало распространения датируется 2007-м). В качестве вектора заражения использовался на сегодня уже банальный и давно выключенный по умолчанию метод с использованием autorun.inf на флеш-носителях. Интересной особенностью его было то, что его архитектура явно заточена на добывание информации в условиях «защищенного периметра», для этого Agent.BTZ создает файл с именем thumb.dd на всех подключаемых флешках, в который сохраняет в виде CAB-файла файлы winview.ocx, wmcache.nld и mswmpdat.tlb. Эти файлы содержат информацию о зараженной системе и логи активности в ней. То есть thumb.dd представляет собой своеобразный контейнер с данными, которые, если нет возможности передать их на управляющий сервер, сохраняются на флешку. Логи шифровались операцией XOR при помощи ключа
1dM3uu4j7Fw4sjnbcwlDqet4F7JyuUi4m5Imnxl1pzxI6as80cbLnmz54cs5Ldn4ri3do5L6 gs923HL34x2f5cvd0fk6c1a0s
Этот ключ, а также имена файлов и служат камнем преткновения, благодаря которому западные вендоры (в частности Symantec) педалировали тему о связи Agent.BTZ и Turla. Дело в том, что Turla тоже хранит логи в файлах с такими названиями и использует аналогичный ключ шифрования. К слову, сотрудники ЛК к этому факту относятся более сдержанно. На их взгляд, это результат своеобразного «подражания». Кстати, подобное подражание можно отнести к одной из актуальных тенденций современного киберкрайма — кибершпионские группировки стали изучать продукты «конкурентов» по отчетам ИБ-вендоров, все эти названия файлов, ключи, алгоритмы шифрования и генерации доменов, мьютексы, PDB-строки, даты компиляции, и копировать то, что им понравится.
Компания Symantec именует эту группировку Waterbug. Название основано на том факте, что для заражения активно используется компрометация порядка сотни легитимных сайтов с последующим внедрением на них эксплоитов для загрузки вредоносного кода (устоявшийся термин — watering-hole). В качестве конечных целей выступают различные правительственные организации, посольства, а также исследовательские институты.
![Рис. 6. Распределение жертв Epic Turla по странам](https://xakep.ru/wp-content/uploads/2015/11/1448261193_3329_epic_count.jpg)
Анализ показал, что большое количество зараженных сайтов работает под управлением CMS TYPO3, из чего следует, что злоумышленники явно использовали какую-то уязвимость в ней. На сайты загружались несколько скриптов, при этом для идентификации ОС, браузера и браузерных плагинов использовалась JavaScript-библиотека PluginDetect ver 0.8.5. В зависимости от системы применялись различные типы эксплоитов: Java (CVE-2012-1723), Flash и эксплоиты для Internet Explorer 6, 7, 8. Кроме того, в ход шел прием с запросом пользователя запустить вредоносный установщик, замаскированный под инсталлятор Flash Player или Microsoft Security Essentials, причем они были подписаны сертификатом швейцарской компании Sysprint.
Кроме атак watering-hole, использовался метод целевых рассылок фишинговых писем с PDF-эксплоитами (CVE-2013-3346 + CVE-2013-5065), а иногда установщик представлял собой исполняемый файл с расширением scr, упакованный в архив формата RAR.
Первичное заражение производилось бэкдором Epic (Kaspersky), он же Wipbot (Symantec) или Tavdig (F-Secure, TrendMicro). Его размер составлял около 60 Кбайт. В случае особого интереса к зараженному компьютеру на него загружался более продвинутый троян-руткит Turla/Carbon (Kaspersky), он же Uroburos (G-Data) или Snake (BAE Systems). Отдельные версии Turla датируются 2008 годом. На сегодняшний день это действительно сложный руткит с поддержкой модулей, которые хранятся в файле с зашифрованной при помощи 128-битного CAST-алгоритма в режиме CBC файловой системой. Предыдущие варианты Turla криптовали хранилище простым XOR и ключом, идентичным Agent.BTZ.
Разработчики руткита Turla придумали очень интересный трюк — использование уязвимой версии драйвера ПО VirtualBox. С учетом того что данный драйвер подписан легальной цифровой подписью, нет никаких проблем загрузить свой неподписанный драйвер, используя драйвер VirtualBox для доступа к памяти ядра.
Как известно, с выходом 64-битных версий ОС от Microsoft в ней появились некоторые механизмы для противодействия руткитам — это принудительная проверка ЭЦП драйверов и механизм PatchGuard (контроль по чексуммам некоторых критических областей, таких как SSDT, IDT).
И Turla их успешно обходит! В Windows при загрузке можно выбрать специальный режим работы, который отключает режим проверки ЭЦП. Обычно в нем тестируют работу драйверов. Кроме того, этот метод активно использовался ранее для установки руткитов в виде неподписанного драйвера, но у него был ощутимый недостаток — для него требовалась перезагрузка, что, естественно, служило демаскирующим установку фактором. Так вот, в Turla свой метод: через драйвер VirtualBox в памяти ядра ищется глобальная переменная g_CiEnabled и ее значение выставляется в 0. Проверка ЭЦП отключена, и не нужно никакой перезагрузки. Теперь командой NtLoadDriver можно загружать неподписанные драйверы.
Идем далее. PatchGuard в случае обнаружения изменений контролируемых объектов обрушивает систему в BSOD. Это производится функцией KeBugCheckEx. Turla перехватывает ее и возвращает управление без вызова BSOD. Но в Microsoft не дремали и модифицировали PatchGuard таким образом, чтобы он использовал копию KeBugCheckEx, инициализируемую в момент старта ОС, а не глобальную функцию ядра. Разработчики Turla тоже не растерялись и стали перехватывать RtlCaptureContext вместо KeBugCheckEx. Так PatchGuard в очередной раз был повержен.
Разобравшись с системными механизмами защиты, Turla устанавливает перехватчики системных методов, модифицируя ntoskrnl.exe и ndis.sys в памяти. В дополнение к традиционному функционалу для скрытия своих user-mode компонентов путем перехвата функций ZwQuerySystemInformation и ZwQueryInformationProcess, Turla также устанавливает собственный сетевой фильтр для WFP (Windows Filtering Platform) и NDIS (Network Driver Interface Specification) уровней, что позволяет ему полностью контролировать сетевой трафик. В дополнение ко всему под контроль берется функция PsSetCreateProcessNotifyRoutine, что позволяет отслеживать запуск новых процессов в системе.
В Windows 8 PatchGuard уже отслеживал модификацию g_CiEnabled, поэтому разработчики Turla были вынуждены изменить алгоритм работы — теперь вредоносный драйвер грузился через драйвер VirtualBox прямо из памяти. Это еще более повысило скрытность, драйвера нет на диске, и не используется штатная функция NtLoadDriver, которую перехватывают антивирусные продукты.
Первоначально командные центры Turla использовали просто арендованные абузоустойчивые серверы, но потом все изменилось. Очередной сюрприз — сокрытие местоположения C&C при помощи спутниковой связи.
![Рис. 7. Панель управления Epic](https://xakep.ru/wp-content/uploads/2015/11/1448261204_9b5a_epic_cc.jpg)
Как это работает? Turla резолвит DNS C&C, и вот этот IP принадлежит диапазону какого-нибудь спутникового провайдера. Первый пакет, естественно, SYN, причем на порт, который точно закрыт. И тут фишка в том, чтобы выбранный IP не ответил на этот пакет RST или FIN. Обычно это происходит потому, что есть рекомендация для медленных каналов использовать брандмауэры, которые просто отбрасывают пакеты, предназначенные для закрытых портов. И именно по этому признаку операторы Turla ищут нужные IP. После перехвата пакета со спутника формируется пакет SYN/ASK c dest IP жертвы и src IP подставного IP. Таким образом устанавливается TCP-сессия, ну и дальше идет обмен данными.
Интересно, что операторы Turla использовали нескольких провайдеров спутникового интернета стандарта DVB-S, которые в основном предоставляли интернет-каналы для Ближнего Востока и Африки. То есть в зону их покрытия не входят Европа и Азия. Это может указывать на то, что перехватывающая аппаратура должна находиться на Ближнем Востоке или в Африке.
Кстати, Turla не единственная кибергруппа, использующая спутниковые интернет-каналы. Кроме них, сотрудники «Лаборатории Касперского» отмечают применение такой технологии группировками Hacking Team, Xumuxu и Rocket Kitten. Пока только четыре, что странно, поскольку метод довольно простой, дешевый и обеспечивает отличный уровень анонимизации расположения C&C.
Ну и напоследок — о языковых артефактах. Внутреннее название библиотеки в бэкдоре Epic — Zagruzchik.dll. В панели управления серверов Epic установлена кодовая страница 1251, которая используется для отображения кириллических символов. На взломанные ресурсы заливаются PHP-веб-шеллы, также использующие кодовую страницу 1251.
Кроме того, информационные сообщения изобилуют ошибками:
- Password it’s wrong!
- Count successful more MAX
- File is not exists
- File is exists for edit
Казалось бы, все это позволяет сделать вывод, что вредоносная кампания организована российскими хакерами, о чем упорно продолжают твердить западные специалисты в своих отчетах. Но это как-то слишком на поверхности. Не исключено, что следы умышленно запутывают. Ведь, как мы знаем, отчеты специалистов в области информационной безопасности кибергруппы стали штудировать особенно тщательно...
Заключение
Кибершпионские кампании стали обычным делом. В свое время Stuxnet наделал много шума, а что будет, если разработки такого уровня начнут появляться каждый месяц? Хотя на самом деле нет здоровых пациентов — есть недообследованные. Это значит, что мы наблюдаем лишь верхушку айсберга: периоды активности кибершпионских программ исчисляются годами, так что прямо сейчас по всему миру работают сотни таких программ, пока еще не выявленных.
Хорошо хоть, парадигма обеспечения безопасности начинает изменяться — приходит осознание, что периметр не спасает и что абсолютную защиту выстроить невозможно. Остается только одно — уменьшать время обнаружения APT в своей сети. Именно поэтому многие компании энергично взялись за внедрение SIEM в своих сетях, так как всем стало очевидно, что старые методы обеспечения безопасности уже не работают.
Впрочем, рядовому пользователю ПК это все не страшно. Он же не носит со своей работы «чувствительную» информацию, которую могут слить удаленно...
Или носит?