Читать «Стеганография. История тайнописи» онлайн - страница 80

Вадим Викторович Гребенников

— Microcin (AKA six little monkeys);

— NetTraveler;

— Zberp;

— Enfal (ранее — Zero.T);

— Shamoon;

— KinS;

— ZeusVM;

— Triton (Fibbit).

Авторы вредоносного ПО все активнее используют стеганографию из-за возможности:

— скрыть сам факт загрузки/выгрузки данных, а не только сами данные;

— обойти «DPI»-системы, что актуально в корпоративных сетях;

— позволить обойти проверку в «AntiAPT»-продуктах, поскольку последние не могут обрабатывать все графические файлы (их слишком много в корпоративных сетях, а алгоритмы анализа довольно дорогие).

Использование стеганографии сегодня — очень популярная идея среди авторов вредоносного и шпионского ПО. Его очень трудно обнаружить, поскольку они выглядят как обычные графические (и не только) файлы.

Все существующее ПО для исследования стеганографии по сути являются «PoC» (англ. Proof-of-Concept), и их логика не может быть реализована в промышленных средствах защиты из-за низкой скорости работы, не слишком высокого уровня исследования, и даже иногда — из-за ошибок в математике.

Как пример вредоносного ПО, которое использует стеганографию для сокрытия своей коммуникации, рассмотрим вредоносный загрузчик «Zero.T», обнаруженный «Лабораторией Касперского» в конце 2016 года. Не останавливаясь на попадании в систему и закреплении в ней, отметим, что «Zero.T» скачивает полезную нагрузку в виде «Bitmap» файлов:

— fsguyidll.bmp,

— fslapi.bmp,

— fslapi.dll.bmp.

Затем обрабатывает их особым образом, после чего получает вредоносные модули:

— fsguyidll.exe,

— fslapi. dll,

— fslapi.dll.bmp.

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

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

После такой обработки на втором и третьем изображении будут заметны области с высокой энтропией (высокой плотностью данных) — это и есть внедренное сообщение. С одной стороны это просто, потому что аналитик (и даже простой пользователь!) может с легкостью увидеть внедренные данные. А с другой стороны сложно потому, что такой анализ довольно трудно автоматизировать.

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

Однако вредоносный загрузчик «Zero.T» не сжимает свои модули перед внедрением. Вместо этого он увеличивает количество используемых НЗБ: 1,2 или 4. Так использование большего количества НЗБ приводит к появлению визуальных артефактов в изображении, заметных простому пользователю.