Организацией Talos был обнаружен вредоносный офисный документ для приложения Microsoft Word с несколькими необычными функциями.
Авторы: David Maynor, Paul Rascagneres
Соавторы: Alex McDonnell, Matthew Molyett
Введение
Организацией Talos был обнаружен вредоносный офисный документ для приложения Microsoft Word с несколькими необычными функциями: продвинутым алгоритмом исследования целевой системы, для избежания анализа в песочницах и виртуальных машинах, а также эксплуатацией через внешнюю полезную нагрузку на базе Flash. Документ предназначался сотрудникам НАТО во время рождественских и новогодних каникул. На основе имени файла исследователи организации Talos сделали вывод, что документ предназначался правительственным служащим. Данная атака также выделяется тем, что полезная нагрузка была обернута большим объемом мусорной информаций с целью создания проблем с ресурсами на некоторых простых системах, используемых специалистами безопасности.
Рисунок 1: Содержимое вредоносного документа
Вложенный документ
В анализируемом RTF-документе было несколько вложенных объектов, первый из которых – OLE объект.
Рисунок 2: OLE объект внутри вредоносного офисного документа
Этот OLE объект содержит объект на базе Adobe Flash. Цель Flash-объекта – извлечение вложенного бинарного блоба посредством запуска ActionScript. Блоб представляет собой второй закодированный и сжатый Flash-объект. Алгоритм кодирования работает на базе XOR и библиотеки zlib. Данный объект - второй Flash-объект в финальной полезной нагрузке, спрятанной внутри документа.
Анализ полезной нагрузки
Основная часть полезной нагрузки находится внутри ActionScript. Вначале инициализируется глобальная константа, которая содержит адрес управляющего сервера.
Рисунок 3: Настройки C&C сервера
Первый шаг
ActionScript выполняет HTTP-запрос к управляющему серверу.
Рисунок 4: Выполнение запроса к серверу
В качестве URI выступает строка /nato, которая полностью соответствует части имени файла.
Платформа Cisco Umbrella, предназначенная для защиты облачных хранилищ, помогает пользователям идентифицировать DNS-трафик, связанный с этим управляющим сервером. На скриншоте ниже показана динамика DNS-запросов, начиная с 29 декабря 2016 года по 12 января 2017 года. Резкое увеличение DNS-трафика с 16 января 2017 года связано с исследованиями данного «продукта» сообществом специалистов по безопасности.
Рисунок 5: Динамика DNS-запросов к серверу miropc.org
Запрос содержит информацию о целевой системе, получаемую при помощи функции flash.system.Capabilities.serverString. В документации сказано, что данный API позволяет разработчику получить перечень характеристик установленной версии Adobe Flash. Пример из документации:
A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&SB=f&DEB=t&V=WIN%209%2C0%2C0%2C0&M=Adobe%20Windows&R=1600x1200&DP=72&COL=color&AR=1.0&OS=Windows%20XP&L=en&PT=ActiveX&AVD=f&LFD=f&WD=f&IME=t&DD=f&DDP=f&DTS=f&DTE=f&DTH=f&DTM=fПодобный запрос позволяет злоумышленнику собрать информацию о системе жертвы, включая версию операционной системы или версию Adobe Flash. Эти сведения могут быть использованы при принятии решения касаемо целевой машины. Если инфицированная система выглядит как песочница или виртуальная машина, оператор игнорирует запрос, и ActionScript завершает свою работу.
Второй шаг
ActionScript хранит ответ на первый запрос в переменной с именем vars. Затем выполняется второй HTTP-запрос с использованием нового URI.
Рисунок 6: Второй HTTP-запрос
URI во втором запросе содержит значение «k1», полученное при помощи первого запроса. Если этот начальный запрос завершается успешно, выполняется функция expLoaded() (для загрузки эксплоита).
Третий шаг
Результат выполнения предыдущего запроса хранится в переменной swf. Информация, хранимая в этой переменной, представляет собой зашифрованный объект Adobe Flash (swf). ActionScript использует функцию unpack() с ключом (“k3”), полученным во время первого запроса.
Рисунок 7: Расшифровка загруженного SWF файла
В этом же шаге ActionScript выполняет следующий HTTP-запрос.
Рисунок 8: Третий HTTP-запрос
Если запрос завершается успешно, вызывается функция payLoaded (для загрузки полезной нагрузки).
Четвертый шаг
Результат выполнения предыдущего запроса содержит зашифрованную полезную нагрузку. ActionScript использует ту же функцию unpack() с ключом (“k4”), который был получен во время первоначального запроса. Наконец, загруженный вредоносный Flash-файл запускается при помощи функции flash.display.Loader(), где в качестве аргумента выступает полезная нагрузка. Переменная аргумента – sh (с шелл-кодом).
Рисунок 9: Выполнение SWF-эксплоита с полезной нагрузкой в качестве аргумента
Ловушка
Недавно вредоносная полезная нагрузка была заменена. Новая версия стала возвращать большой объем мусорных данных с целью создать проблемы в системах безопасности на базе простой песочницы. Как видно из графика выше, многие специалисты по безопасности начали исследовать эти домены и, скорее всего, новая версия стала прямым ответом, чтобы затруднить исследования.
Рисунок 10: Новая версия стала возвращать огромный объем данных
Заключение
Анализ документа показывает, что во вредоносе использовался изощренный алгоритм. Первый шаг – исследование системы жертвы с целью избежания взаимодействия с песочницами и виртуальными машинами. Затем при помощи запросов, загружался эксплоит и полезная нагрузка, которые впоследствии запускались налету. Эту схему можно считать нестандартной, поскольку эксплоит не внедрен в документ, что затрудняет детектирование по сравнению со стандартными вредоносами, встроенными в файлы и заточенными под использование в Microsoft Word. Важно отметить, злоумышленники привлекли внимание к своей инфраструктуре, а затем быстро внесли изменения так, чтобы создать проблемы, связанные с потреблением ресурсов, не некоторых устройства. Сей факт говорит о том, что создатели эксплоита достаточно продвинуты, поскольку, скорее всего, был создан легкий и эффективный фреймворк, который смог быстро адаптироваться к последствиям.
Хеш: ffd5bd7548ab35c97841c31cf83ad2ea5ec02c741560317fc9602a49ce36a763
7c25a5cd3684c470066291e4dec7d706270a5392bc4f907d50b6a34ecb793f5b
Дополнительные меры безопасности
Ниже представлены дополнительные меры по детектированию и предотвращению этой угрозы.
Рисунок 11: Дополнительные меры безопасности
Advanced Malware Protection (AMP) – идеальное средство для предотвращения выполнения вредоносных файлов подобного рода.
Система веб-сканирования в платформах CWS или WSA блокирует доступ к вредоносным сайтам и детектирует вредоносы, используемых в подобных атаках.
Email Security позволяет блокировать вредоносные письма, которые могут использоваться в качестве промежуточного звена.
Сетевые защиты в продуктах IPS и NGFW используют самые последние сигнатуры для детектирования вредоносной сетевой активности.
AMP Threat Grid помогает детектировать вредоносные бинарные файлы и встраивать защиту во все продукты линейки Cisco Security.
Umbrella предотвращает разрешение DNS-имен, связанных с вредоносной активностью.
Узнайте как на нашем канале