Опасная матрешка: все о вредоносных файлах-полиглотах

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

Опасная матрешка: все о вредоносных файлах-полиглотах

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

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

Почему возможно создать файлы polyglot

Форматы данных в файлах-полиглотах обычно не экзотические. Все дело в удачной комбинации обычных форматов, совместимых по структуре. Полиглоты эксплуатируют хотя бы одну из особенностей некоторых форматов файлов.

  • Большинство форматов файлов нужно декодировать, начиная с первых байтов, но некоторые требуется читать «с конца». Самый яркий пример — архивы ZIP, в которых поврежденный или отсутствующий заголовок совсем не мешает чтению файла, поскольку нужные заголовки находятся в конце. Это позволяет просто «склеить» два файла, в примере выше — PNG и ZIP. Начало читается как корректное изображение PNG, а конец — как корректный ZIP-архив.
  • Многие форматы устроены как «матрешки»: несмотря на специфическое расширение и конкретное применение, сам файл по сути является ZIP-архивом с нужными данными. К этой группе относятся офисные документы последнего поколения (DOCX/XLSX/PPTX), установочные пакеты Android (APK), файлы библиотек Java (JAR) и многие другие.
  • Некоторые форматы не имеют жестких требований к структуре файла, или требования таковы, что приложение, которое обрабатывает файл, может найти нужный фрагмент, даже если он расположен не в начале.

Многочисленные примеры возможных комбинаций файлов, из которых можно собрать полиглота, описаны в GitHub-репозитории Polydet. По классификации MITRE эта техника относится к группе маскировки (T1036.008, Masquerade File Type).

Примеры файлов-полиглотов в известных кибератаках

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

Группировка Head Mare доставляла зловред PhantomPyramid в виде вложения ZIP. Файл был сконструирован из исполнимого кода Windows (EXE) с небольшим приклеенным архивом ZIP в конце. Жертва открывала архив, внутри которого был файл с расширением .pdf.lnk, который запускал то же самое вложение-полиглот, но уже как исполнимый файл.

В атаке, описанной JPCERT, злоумышленники создали файл, который начинается как PDF и детектируется большинством сканеров как PDF, но имеет расширение DOC и открывается в приложениях Office как корректный DOC-файл с вредоносными макросами.

В атаках по распространению троянов StrRAT и Ratty использовался полиглот из подписанного инсталляционного пакета Windows (MSI) с приклеенным в конце вредоносным кодом на Java (JAR).

В атаках StrelaStealer применялся полиглот с расширением HTML, состоящий из библиотеки Windows (DLL) с приклеенным в конце документом-приманкой HTML. Ярлык в архиве запускал файл два раза: один раз через команду start (аналог двойного клика, открывается браузер с документом HTML), а второй — через rundll32 (запускается вредоносный DLL).

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

Сложная вредоносная «матрешка» была применена во вредоносной кампании по распространению инфостилера IcedID. В письма жертвам был вложен архив ZIP, из которого распаковывается файл ISO. Из него распаковывается файл CHM (справка Windows), который собран по технике polyglot. При просмотре штатным инструментом «Справка Windows», этот файл выполняет встроенный в справку сценарий JavaScript, который запускает стандартное приложение mshta (Microsoft HTML Application Host), указав в качестве параметра тот же CHM-файл. Авторы кампании упаковали приложение HTA внутрь CHM таким образом, что оно не мешает прочитать файл как безобидную справку. А обработчик HTA услужливо пропускает весь «мусор» в начале файла, пока не найдет сценарии HTA.

Как файлы-полиглоты обрабатываются средствами защиты

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

  • Большинство защитных решений не верят указанному расширению файла и проверяют его начало, чтобы определить структуру файла. Поэтому файл PDF с расширением DOC в вышеописанной атаке был проанализирован как безобидный PDF, тогда как зловредный макрос был в приклеенном DOC;
  • Если файл начинается как что-то безобидное (изображение) и расширение соответствует, файл, вероятно, не будет сканироваться сложными технологиями анализа. При этом сопроводительные инструкции к файлу могут, например, советовать переименовать файл, чтобы поведение в системе жертвы уже было связано со второй нагрузкой, а не с изображениями.

Как защитить организацию от атак с применением файлов polyglot

Защита от полиглотов не требует сложных технических и организационных решений, но нужно качественное соблюдение ИБ-гигиены в организации.

  • Используйте закрытые списки приложений (allowlist), разрешенных к запуску на рабочих компьютерах. Исключите из них устаревшие приложения Windows, не используемые в компании административные инструменты Microsoft, ПО удаленного доступа и передачи файлов и тому подобное.
  • Используйте продвинутые решения по защите почты, оснащенные технологиями CDR (Content Disarm and Reconstruction — обезвреживание подозрительных вложений и их реконструкция в более безопасные) и детонации (запуск подозрительных вложений в изолированной среде для анализа). Настройте глубокий анализ вложений, которые по внешним признакам могут оказаться полиглотами (все файлы архивных и офисных форматов, файлы нестандартных расширений и так далее).
  • Настройте большую глубину анализа потенциальных полиглотов также на стороне EDR.
  • Создайте правила мониторинга, которые будут оповещать о нестандартных комбинациях процесса и файлов, которые ему переданы на обработку, вроде запуска файла CHM через приложение mshta или запуска HTML через rundll32 в примерах выше.
  • Включите в программу тренингов ИБ-осведомленности базовую информацию о полиглотах, чтобы пользователи были настороже в ситуациях, когда файлу нужно менять расширение или обрабатывать его необычным образом, например открыть в конкретном приложении.
Опасные почтовые вложения: какие файлы нельзя открывать

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

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

Опасные почтовые вложения: какие файлы нельзя открывать
Советы

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

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