Отчеты о целевых атаках (APT)

Техники, тактики и процедуры атак на промышленные компании

В 2022 году мы расследовали серию атак на промышленные компании в Восточной Европе. В ходе кампаний атакующие стремились организовать постоянно действующий канал для вывода украденных данных, включая данные, размещенные на физически изолированных (air-gapped) системах.

Исходя из обнаруженного сходства этих кампаний с ранее исследованными (такими как ExCone, DexCone), включая использование вариантов FourteenHi, конкретных тактик, техник и процедур (ТТП), а также выбор целей атаки, мы можем предположить со средней или высокой степенью уверенности, что за активностью, описанной в этом отчете, стоят злоумышленники из группы APT31, также известной как Judgment Panda и Zirconium.

Злоумышленники выводят украденные данные и доставляют вредоносное ПО следующего этапа через облачное хранилище данных, например, Dropbox, Yandex Disk, а также файлообменный сервис. Кроме того, они используют командные серверы, размещенные на обычных виртуальных выделенных серверах (VPS). Атакующие также используют стек имплантов для сбора данных в физически изолированных сетях с помощью зараженных сменных носителей данных.

В большинстве имплантов злоумышленники применяют сходные реализации техники подмены DLL (DLL hijacking), которые часто связывают с вредоносным ПО Shadowpad, и методы внедрения в память, а также шифрование RC4, позволяющее скрывать вредоносную нагрузку и избегать обнаружения. Для шифрованного обмена данными с серверами управления к имплантам статически прилинковывалась библиотека libssl.dll или libcurl.dll.

В общей сложности мы обнаружили более 15 имплантов и их вариантов, установленных злоумышленниками в разных сочетаниях.

Весь стек имплантов, примененных в атаках, можно разделить на три категории исходя из их ролей:

Технические подробности атак, рекомендации и индикаторы компрометации доступны в полной публичной версии статьи на сайте Kaspersky ICS CERT.

Приватная версия ранее была опубликована на Kaspersky Threat Intelligence.

За дополнительной информацией вы можете обратиться по адресу: ics-cert@kaspersky.com.

Импланты первого этапа для обеспечения удаленного доступа

Варианты FourteenHi

FourteenHi – это семейство вредоносных программ, обнаруженное в 2021 году при расследовании кампании, получившей название ExCone (см. здесь и здесь). Кампания была активна с середины марта 2021 года, нацелена на государственные учреждения. В 2022 году мы обнаружили новые варианты программ из этого семейства, задействованные в атаках на промышленные предприятия.

Разные образцы FourteenHi (как x64, так и x86) существенно отличаются друг от друга в структуре кода, загрузчиках и типах командных серверов. Но их главные особенности, такие как протокол связи C2 и список команд, практически одинаковы..

Схема загрузки всех вариантов более или менее одинакова и задействует три основных компонента:

  1. Легитимное приложение, уязвимое для подмены DLL.
  2. Вредоносная DLL, загружаемая путем подмены DLL и используемая для чтения из бинарного файла данных и расшифровки вредоносной нагрузки FourteenHi и ее внедрения в системный процесс, например, svchost.exe или msiexec.exe.
  3. Бинарный файл данных, содержащий двоичный код FourteenHi, зашифрованный алгоритмом RC4.

Все известные варианты FourteenHi содержат внедренные в код конфигурационные данные, зашифрованные алгоритмом RC4. Конфигурация включает идентификатор кампании (campaign ID), адрес командного сервера и порт. Конфигурация FourteenHi x64 включает также имя и описание создаваемой при запуске без параметров службы Windows, которая используется для закрепления в системе.

Бэкдор MeatBall

Бэкдор MeatBall – это новый имплант, обнаруженный нами в ходе исследования атак, с обширными возможностями удаленного доступа, включая создание списков активных процессов, подключенных устройств и накопителей, выполнение файловых операций, захват снимков экрана, использование удаленной оболочки и самообновление. Имплант существует в вариантах для архитектур x86 и x64.

Имплант также использует схему загрузки на основе техники подмены DLL, но, в отличие от многих других имплантов, вредоносная нагрузка хранится в загрузчике вредоносной DLL, а не в отдельном файле.

К импланту статически прилинкована библиотека libssl.dll, которая применяется для SSL шифрования трафика между имплантом и командным сервером.

Имплант, использующий Yandex Cloud в качестве командного сервера

Еще один обнаруженный имплант использует сервис хранения данных Yandex Cloud в качестве командного сервера (https://cloud-api.yandex[.]net) аналогично вредоносному ПО, описанному в отчете. Имплант использует схему загрузки, основанную на подмене DLL. Вредоносная DLL расшифровывает тело импланта, сохраненное в отдельном файле, и внедряет его в память легитимного процесса.

Имплант использует статически прилинкованную библиотеку libcurl.dll для организации обмена данными, зашифрованными с помощью SSL.

Имплант собирает на хосте следующие данные:

  • Имя компьютера
  • Имя пользователя
  • IP-адрес
  • MAC-адрес
  • Версия ОС
  • Путь к %System%

Для выгрузки собранных данных на командный сервер имплант отправляет с помощью встроенного API-токена запрос на создание на сервере директории с уникальным именем, соответствующим хосту жертвы.

Все загружаемые на сервер и на хост данные шифруются алгоритмом RC4.

Импланты второго этапа для сбора данных и файлов

Специализированный имплант для сбора файлов на локальной машине

В мае 2022 года был обнаружен специализированный имплант, предназначенный для сбора файлов на локальном компьютере. Имплант использует схему загрузки, основанную на подмене DLL (DLL hijacking), при которой загрузчик вредоносной DLL обеспечивает закрепление в системе, создавая службу с именем «WinSystemHost», расшифровывая и внедряя в память легитимного процесса вредоносную нагрузку, которая хранится в виде бинарных данных в отдельном файле.

Имплант запускает процесс «msiexec.exe», читает и расшифровывает вредоносную нагрузку и внедряет ее в память процесса «msiexec.exe».

Сразу же после начала выполнения в памяти «msiexec.exe» вредоносная нагрузка переходит к бесконечному циклу, состоящему из 6 простых шагов.

  • Создание папок для хранения файлов (если их не существует) и поиск пути к «WinRar.exe»
  • Расшифровка строк
  • Чтение конфигурации и поиск файлов на всех дисках
  • Копирование файлов и запись сообщения в журнал
  • Архивирование скопированных файлов и удаление временных объектов
  • Пауза 10 минут

Для вывода собранных файлов злоумышленники используют стек имплантов, предназначенных для выгрузки архивов в сервис Dropbox.

Стек имплантов для копирования данных из изолированных сетей через съёмные носители

В апреле 2022 года мы обнаружили вредоносное ПО, предназначенное для копирования данных из физически изолированных (air-gapped) систем посредством заражения съёмных носителей.

Упрощенная схема взаимодействия со съемными носителями

Упрощенная схема взаимодействия со съемными носителями

Первый (главный) модуль отвечает за работу со съёмными носителями, включая:

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

Главный модуль создает папку в «%TEMP%» в которой он в дальнейшем будет хранить журналы, информацию о подключенных носителях и их содержимом. Затем для каждого съёмного носителя имплант создает подпапку, имя которой совпадает с серийным номером накопителя.

В этих подпапках имплант проверяет наличие следующих файлов, используемых для заражения съёмного носителя с серийным номером, соответствующим названию папки:

  • «mcods.exe» – легитимного исполняемого файла McAfee, содержащего уязвимость подмены DLL
  • «McVsoCfg.dll», который является вредоносной нагрузкой второго шага
  • Файлов «DOC», «PDF» или «DIR», которые определяют, какой файл ярлыка будет использован в качестве приманки

Наличие перечисленных файлов в папке, отведенной для конкретного съемного носителя, указывает на то, что злоумышленники предварительно некоторое время анализируют содержимое съемных носителей и лишь затем копируют файлы, используемые для заражения конкретного съёмного носителя, в заданную папку.

Чтобы заразить съёмный носитель, главный модуль просто копирует в его корневую директорию два файла – «mcods.exe» и вредоносное ПО второго шага «McVsoCfg.dll» – и устанавливает у обоих файлов атрибут «Hidden».

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

Затем главный модуль создает файл ярлыка в корневой директории съемного носителя, который будет использоваться в качестве приманки.

При открытии пользователем ярлыка, ОС загрузит в память файл «mcods.exe», который загрузит в память библиотеку «McVsoCfg.dll» и вызовет ее функцию «McVsoCfgGetObject».

Упрощенная схема заражения компьютера в изолированном сегменте сети через зараженный съемный носитель

Упрощенная схема заражения компьютера в изолированном сегменте сети через зараженный съемный носитель

После этого имплант устанавливает исполняемый файл вредоносного ПО третьего шага, извлекая его из своего собственного файла («McVsoCfg.dll») и сохраняя его в «%APPDATA%» с именем «msgui.exe» на атакуемом хосте.

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

Затем он ищет файл вредоносного ПО четвертого шага, который следует запустить на выполнение и затем удалить (если он существует).

Вредоносное ПО четвертого шага состоит из двух файлов:

  • Простого дроппера вредоносной нагрузки (аналогичного тому, что используется вредоносным ПО второго шага)
  • Вредоносной нагрузки, фактически представляющей собой видоизмененный модуль первого шага, также предназначенный для сбора информации о носителе, сбора файлов, создания снимков экрана и регистрации нажатий клавиш (при подключении к хосту), но без процедуры заражения съёмного носителя.

Оба модуля (первого шага и четвертого шага) имеют аналогичные конфигурации и процедуры сохранения данных.

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

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

Чтобы получить все украденные данные, злоумышленники используют удаленную оболочку для запуска имплантов, предназначенных для выгрузки данных на сервер.

Импланты третьего этапа и инструменты для выгрузки данных на командные серверы

Атакующие развертывали импланты третьего этапа с помощью импланта первого этапа, а также импланта второго этапа.

У имплантов третьего этапа много общего с имплантами первого этапа, включая использование облачного хранилища данных (например, Dropbox, Yandex Disk), обфускацию кода, а также процедуры выполнения кода, основанные на технике подмены DLL (DLL hijacking).

Стек имплантов, предназначенных для выгрузки файлов на Dropbox

Стек имплантов, предназначенных для выгрузки файлов на сервис Dropbox, рассчитан на работу в связке с имплантом второго этапа для сбора данных.

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

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

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

Самые первые варианты имплантов второго шага в цепочке были предназначены для расшифровки вредоносной нагрузки третьего шага и ее внедрения в память легитимного процесса (например, «msiexec.exe»). Все варианты вредоносной нагрузки третьего шага в этой цепочке были практически идентичны и различались только адресами командных серверов.

Наше внимание привлек IP-адрес командного сервера в одном из имплантов третьего шага, потому что это был локальный IP-адрес. Это означает, что злоумышленники развернули командный сервер внутри периметра компании и, по-видимому, использовали его как прокси для вывода украденных данных с хостов, не имеющих прямого подключения к интернету.

Позднее злоумышленники развернули новый вариант импланта второго шага, возможности которого включали поиск в папке Outlook имен файлов (т.е. имен учетных записей электронной почты), выполнение удаленных команд и загрузку локальных или удаленных «.rar» файлов на сервис Dropbox через вызов импланта третьего шага.

Для выгрузки на сервер файлов с локальной машины имплант второго шага вызывает имплант третьего шага, который к этому моменту уже должен быть развернут на машине по статическому пути «c:/users/public/» или по тому же пути, что и имплант второго шага.

Все варианты импланта третьего шага предназначены для выгрузки собранных «.rar» файлов на Dropbox из «C:\ProgramData\NetWorks\ZZ» с локальной машины.

Инструменты для выгрузки украденных файлов вручную

Наряду с другими имплантами мы обнаружили два инструмента, с помощью которых злоумышленники отправляли украденные данные вручную.

Один из инструментов с именем «AuditSvc.exe» был предназначен для выгрузки произвольных файлов на сервис Yandex Disk и загрузки с него. OAuth-токен, путь к файлу и некоторые другие параметры можно было передавать как аргументы командной строки. При этом параметры можно было определить и в конфигурационном файле с именем «MyLog.ini».

Второй обнаруженный инструмент с именем «transfer.exe» был предназначен для выгрузки произвольных файлов на 16 поддерживаемых файлообменных сервисов, а также с этих сервисов на компьютер.

Имплант для отправки файлов через почтовый сервис Яндекса

Имплант для отправки файлов через почтовый сервис Яндекса загружался с Yandex Disk. К нему была статически прилинкована библиотека libcurl.dll.

Имплант предназначен для отправки единственного файла, размещенного по статическому пути «C:\Users\Public\Downloads\111.log» (жестко закодированному в импланте). Файл «.log» должен отправляться в виде вложения в электронном письме.

Файл «111.log», вероятнее всего, создается одним из имплантов предыдущих этапов. Он может содержать результаты выполнения команд в интерпретаторе команд Windows или URL-адреса файлов, загруженных на файлообменный сервис описанным выше инструментом.

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

Заключение

В ходе исследования мы проанализировали широкий набор имплантов, применяемых злоумышленниками для удаленного доступа к системам, сбора данных и загрузки данных на серверы.

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

В большинстве случаев для кражи данных из изолированных сетей злоумышленники выбирают заражение съёмных носителей, в данном случае – с несколько самобытной реализацией.

Использование злоумышленниками облачных сервисов (таких как Dropbox, Yandex, Google и т.п.) – не новая стратегия, но она работает, потому бизнес-процессы организации зависят часто от работы с такими сервисами, и их использование сложно ограничить.

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

Техники, тактики и процедуры атак на промышленные компании

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике