В сфере информационной безопасности постоянно появляются новые, подчас неожиданные методы доставки вредоносного кода. Последний обнаруженный тренд демонстрирует, как злоумышленники используют обычные аудиофайлы формата WAV для скрытия исполняемых программ. В отличие от классических методов стеганографии, когда данные прячутся незаметно для пользователя, здесь применяется более прямой, но оттого не менее эффективный подход, который может обмануть как рядовых пользователей, так и базовые системы фильтрации контента.
Описание
Суть техники заключается в том, что злоумышленники берут легитимный файл формата WAV и полностью заменяют байты, кодирующие звуковую дорожку, на данные полезной нагрузки. В результате файл сохраняет корректную структуру заголовка и расширение .wav, что позволяет ему проходить первичные проверки на тип контента. При попытке воспроизведения такой файл не молчит - он издаёт характерный шум или белый шум, что может показаться пользователю случайной поломкой или артефактом записи, а не признаком угрозы. Это важный психологический аспект атаки, направленный на снижение бдительности.
Полезная нагрузка кодируется не в бинарном виде, а представлена в текстовом формате BASE64, который просто записывается поверх аудиоданных. Такой подход избавляет злоумышленников от необходимости разработки сложного стеганографического алгоритма для встраивания и извлечения данных. Для анализа подобного файла специалисту по безопасности не требуется парсер WAV-формата. Достаточно использовать утилиту для извлечения строк BASE64, например, "base64dump.py", чтобы получить закодированную полезную нагрузку прямо из "тела" аудиофайла.
Извлечённая нагрузка представляет собой портативный исполняемый (PE) файл, дополнительно зашифрованный с помощью операции XOR. Однако и эта защита легко преодолима. Поскольку структура PE-файла хорошо известна (начинается с заголовков "MZ" и "DOS"), можно применить атаку по известному открытому тексту (known-plaintext attack). Специальный инструмент, такой как "xor-kpa.py", ищет в зашифрованных данных XOR-ключ, который превратил бы их в валидный DOS-заголовок. Как сообщают исследователи, ключ находится быстро, после чего весь PE-файл легко декодируется. После расшифровки стандартные средства анализа, вроде утилиты "pecheck.py", могут изучить образец, определить его семейство, импортируемые функции и потенциально опасное поведение.
Эта цепочка действий - от подмены аудиоданных до простого XOR-шифрования - указывает на рационализацию процесса со стороны угрозоносных групп. Они минимизируют сложность собственных инструментов, полагаясь на то, что нестандартный вектор доставки и базовое шифрование позволят обойти сигнатурные антивирусы и системы обнаружения вторжений (IDS). Файл .wav может быть прислан по электронной почте, размещён на якобы легитимном ресурсе или предложен для скачивания в соцсетях под видом редкой записи.
Последствия успешной атаки стандартны для сценариев с загрузчиками: после запуска декодированного PE-файла на компьютер жертвы может быть установлено всё что угодно - от программ-вымогателей и шпионского ПО до ботнета или инструментов для кражи учётных данных. Особую опасность метод представляет для корпоративных сред, где фильтрация вложений часто нацелена на исполняемые файлы и архивы, в то время как аудиофайлы могут проходить без дополнительной проверки содержимого.
Для специалистов по безопасности этот случай служит напоминанием о необходимости многоуровневой защиты. Помимо сигнатурного анализа, критически важны поведенческие методы обнаружения, например, отслеживание аномальных действий процессов, порождённых от, казалось бы, безобидных медиафайлов. Кроме того, следует пересмотреть политики фильтрации вложений, учитывая возможность злоупотребления доверенными форматами, и усилить анализ контента файлов, а не только их расширений и заголовков. В свою очередь, обычным пользователям стоит проявлять осторожность с любыми непроверенными файлами, даже если они выглядят как безвредные медиаматериалы.
Индикаторы компрометации
MD5
- ae22964bf1b4d4eabc15d44dd1d3b629
SHA1
- 8a7e83c1a0fd9917857a7f687cf029670b405c70
SHA256
- a0a8857e8a65c05778cf6068ad4c05ec9b6808990ae1427e932d2989754c59a4