В сентябре 2013 года мы опубликовали подготовленный нами подробный анализ кампании таргетированных атак Icefog, направленной против государственных учреждений, военных подрядчиков, операторов связи, судоходных и судостроительных групп. Эта угроза относится к классу APT.
Вредоносная программа Icefog, в соответствии правилами именования угроз Crowdstrike также известная как Dagger Panda, заражала компьютеры жертв преимущественно в Южной Корее и Японии. Наш анализ таргетированных атак Icefog можно найти в подробном отчете.
После публикации нашего отчета участники атак Icefog полностью пропали с экранов радаров, отключив все известные командные серверы. Тем не менее, мы продолжали осуществлять мониторинг ситуации, привязав вредоносные домены к нашему серверу мониторинга.. В ходе мониторинга мы обнаружили интересные попытки соединения, анализ которых свидетельствовал о наличии Java-версии Icefog, которая далее называется Javafog.
Знакомьтесь: Lingdona
Кампания Icefog велась как минимум с 2011 года. За время ее активности было выпущено множество различных вариантов вредоносной программы. На текущий момент мы насчитываем не менее 6 поколений вредоносной программы для ПК под управлением Microsoft Windows:
- «Старый» Icefog 2011 года – отправляет украденные данные по электронной почте; эта версия применялась против Палаты представителей и Палаты советников Японии в 2011 году.
- «Стандартный» Icefog типа 1 – взаимодействует с командными серверами при помощи набора .aspx скриптов.
- Icefog типа 2 – взаимодействует со специальным прокси-сервером, который перенаправляет команды атакующих на другой компьютер.
- Icefog типа 3 – вариант, использующий определенный тип командного сервера со скриптами, имеющими имена view.asp и update.asp.
- Icefog типа 4 – вариант, использующий определенный тип командного сервера со скриптами, имеющими имя upfile.asp.
- Icefog-NG – взаимодействие осуществляется через прямое TCP-соединение по порту 5600 на сервер управления. В отличие от всех остальных версий, Icefog-NG не использует HTTP протокол для связи с сервером.
В дополнение к перечисленным выше вариантам мы обнаружили «Macfog» – особую реализацию Icefog для Mac OS X, которой были заражены несколько сотен компьютеров жертв по всему миру.
Сопоставив регистрационную информацию по разным доменам, используемым образцами вредоносной программы, мы сумели выявить 72 командных сервера, 27 из которых нам удалось перенаправить на наш сервер мониторинга (sinkhole-сервер).
В частности, интерес представляет домен lingdona[точка]com, срок регистрации которого закончился в сентябре 2013 года и над которым мы установили контроль в октябре 2013 года. Вот как выглядела исходная контактная информация для этого домена:
1 2 3 4 5 6 7 8 |
Domain Name: LINGDONA.COM Registrant Contact: lin ming hua lin ming kevistin@qq.com telephone: +86.031185878412 fax: +86.031185878412 fuzhoushi Fuzhou Shi Fujian Sheng 412141 CN |
Первоначально домен был размещен на хостинге в Гонконге и имел IP-адреса 206.161.216.214 и 103.20.195.140. Он вызвал у нас подозрения, потому что его регистрационные данные совпали с данными по другим доменам, связанным с атаками Icefog. Сразу после установки на домене sinkhole-маршрутизатора мы наблюдали подозрительные соединения, которые устанавливались почти каждые 10 секунд:
1 2 3 4 |
69.59.x.x www.lingdona.com - [26/Oct/2013:23:59:39 +0000] "POST /news/latestnews.aspx?title=2.0_1593925273 HTTP/1.1" 404 345 "-" "Java/1.7.0_25" 69.59.x.x www.lingdona.com - [26/Oct/2013:23:59:45 +0000] "POST /news/latestnews.aspx?title=2.0_1593925273 HTTP/1.1" 404 345 "-" "Java/1.7.0_25" 38.100.x.x www.lingdona.com - [26/Oct/2013:23:59:48 +0000] "GET /news/latestnews.aspx?title=1.1_1254592001 HTTP/1.1" 404 345 "-" "Java/1.7.0_40" 38.100.x.x www.lingdona.com - [26/Oct/2013:23:59:58 +0000] "GET /news/latestnews.aspx?title=1.1_1254592001 HTTP/1.1" 404 345 "-" "Java/1.7.0_40" |
Здесь имеется интересная строка User-Agent указывающая на то, что клиент – Java-приложение. Это было необычно, поскольку во всех остальных вариантах Icefog использовались стандартные строки User-Agent с указанием в качестве клиента браузера Internet Explorer.
Поиск вредоносного образца
Мы подозревали, что где-то в Сети имеется образец вредоносной программы, устанавливающий соединение с доменом lingdona[точка]com, однако в нашем распоряжении такого образца троянца Icefog не было.
Удача улыбнулась нам, когда мы обнаружили запрос на публичный сервис JSUnpack, показавшийся нам связанным с Javafog.
В ноябре 2012 года кто-то использовал сервис JSUnpack. Этот пользователь проверял интересную ссылку, указывающую на сервер sejonng[точка]org. Данный домен известен как один из доменов Icefog. В запросе также содержалась ссылка на домен starwars123[точка]net – еще один домен, также связанный с Icefog.
Интереснее всего, что на HTML-странице содержится ссылка на апплет Java под названием policyapplet.jar с параметром jar, представляющим собой длинную строку шестнадцатеричных символов. К сожалению, получить файл policyapplet.jar, который, вероятнее всего, представлял собой Java-эксплойт, нам не удалось. Однако, расшифровка шестнадцатеричной строки дала еще один апплет Java со следующими характеристиками:
1 2 |
Size: 8697 bytes MD5: d26af487534c1d575e747ff240ee6357 |
Позднее мы обнаружили распакованный апплет, который был загружен на один из сервисов антивирусной проверки примерно в то же время.
Javafog
Наше внимание привлек апплет, найденный в параметре «jar», и мы детально проанализировали, как он работает.
Формат JAR использует алгоритм сжатия ZIP для хранения данных в компактном виде. Заголовки в ZIP содержат метки времени создания добавленных в него файлов. Так можно «вычислить», когда мог быть создан JAR-файл. Вот информация из ZIP-директории апплета:
1 2 3 4 5 6 |
Date Time Attr Size Compressed Name –––––––––- ––- –––––– –––––– –––––––––––– 2012-10-30 16:47:50 ..... 129 115 META-INF/MANIFEST.MF 2012-10-30 16:47:50 ..... 259 206 META-INF/B8228E45.SF 2012-10-30 16:47:50 ..... 5365 3610 META-INF/B8228E45.RSA 2010-10-29 22:44:06 ..... 7726 4226 JavaTool.class |
Получается, что JAR-файл скорее всего был создан 30 ноября 2012 г., а основной класс JavaTool.class был скомпилирован двумя годами раньше, 29 ноября 2010 г.
При запуске программа пытается внести себя в список программ, запускаемых автоматически, чтобы обеспечить работу программы при перезапуске системы. Модуль записывает следующее значение в реестр, чтобы Windows запускал программу автоматически:
1 2 |
[HKEY_CURRENT_USERsoftwaremicrosoftwindowscurrentversionrun] JavaUpdate=%TEMP%update.jar |
Следует отметить, что модуль не копирует себя в это место. Возможно, что отсутствующий файл policyapplet.jar содержит части стандартной процедуры инсталляции.
Затем модуль запускает цикл, который вызывает свою основную функцию командного сервера с задержкой 1000 мс. Основной цикл обращается к уже известному командному серверу Icefogwww.lingdona[dot]com/news и взаимодействует с ним.
Сперва, модуль пересылает на сервер общую информацию о системе, по которой киберпреступники могут определить, насколько им интересен и ценен конкретный зараженный компьютер. Ниже показана часть данных пересылаемых вредоносной программой:
На приведенном снимке экрана строка «title=2.0_1651809722» ‑ уникальный ID жертвы, который составляется из версии программы и хэш-суммы имени хоста. По этому ID операторы могут идентифицировать компьютер-жертву и посылать ему команды.
В ответ на загруженную информацию о зараженной системе бэкдор ожидает «команду», которая может принимать различные значения:
Описание команд:
- upload_* — загружает локальный файл, указанный после команды, на командный сервер по URL-адресу «%АдресСервера%/uploads/%ИмяФайла%». Загружаемые данные шифруются простой операцией XOR с ключом 0x99.
- cmd_UpdateDomain – миграция на новый командный сервер, указанный после строки «cmd_UpdateDomain». URL-адрес нового сервера также записывается в файл «%TEMP%update.dat».
- cmd_* — выполнение системной команды, указанной после «cmd_». В данном случае для выполнения системной команды используется командная строка «cmd.exe /c %Команда%». Результаты передаются на командный сервер по адресу «%АдресСервера%/newsdetail.aspx?title=%IDХоста%».
Кроме вышеуказанного, бэкдор больше ничего не делает. Тем не менее, указанный функционал позволяет киберпреступникам полностью контролировать зараженную систему и воровать пользовательские файлы. Просто и при этом очень эффективно.
География жертв
Читатель может задать вопрос: зачем же нужны бэкдоры типа Javafog? Правда в том, что даже на момент написания этих строк Javafog очень плохо детектируется (3 из 47 на VirusTotal). Вредоносные программы под Java очевидно менее популярны, чем зловреды под Windows PE, и отследить их может быть несколько сложнее.
Во время мониторинга домена lingdona[dot]com, мы наблюдали 8 IP-адресов трех уникальных жертв Javafog. Все адреса относятся к США. Любопытно, что в течение нашего наблюдения двое из жертв обновили Java с «Java/1.7.0_25» до «Java/1.7.0_45».
По IP-адресу была идентифицирована одна из жертв – это оказалась очень крупная независимая американская нефтегазовая компания, работающая во многих странах мира.
На данный момент все жертвы уведомлены о заражении. Двое из жертв уже удалили зловред.
Заключение
Исследовав Javafog, мы переворачиваем ещё одну страницу в истории Icefog – мы обнаружили ещё одно поколение бэкдоров, которые использовались киберпреступниками.
В одном конкретном случае мы заметили, что атака началась с эксплуатации уязвимости в Microsoft Office, после чего атакующая сторона попыталась развернуть и запустить Javafog с другим командным сервером. Можно предположить, что киберпреступники по своему опыту решили, что бэкдор Java действует более скрытно и незаметно и потому предпочтителен для долговременных операций. (Большинство операций с использованием Icefog скоротечны и носят характер мгновенных кибератак — «hit and run»).
Тот факт, что все жертвы Javafog оказались в США и были связаны с единственным известным командным сервером Javafog, может означать, что киберпреступники, стоящие за Icefog, решили провести операцию, направленную на американских пользователей. Вероятно планировалось, что операция продолжится дольше обычного; целью мог быть, например, долговременный сбор данных об объекте интереса. Получается, что действия группировки Icefog оказались более разнообразными, чем предполагалось изначально, что заставляет взглянуть на них по-новому.
Атака APT-класса Icefog поражает цели в США с помощью Java-бэкдора