Семейство OpenSUpdater перешло к более скрытной тактике. Злоумышленники берут исходный код легитимных утилит, пересобирают его с собственными правками и встраивают в готовую сборку скрытый загрузчик. Снаружи такой файл ничем не отличается от обычного установщика бесплатной программы. В 2021 году о схеме впервые сообщила Google, а свежие образцы научились обходить средства анализа заметно лучше.
Описание
Чтобы понять, почему правку трудно заметить, нужен хотя бы общий взгляд на устройство самораспаковывающегося архива. Аббревиатура SFX означает "self-extracting archive", то есть архив, который распаковывает себя сам. Механизм 7zip SFX позволяет разработчикам собирать простые установщики: файлы программы лежат внутри одного контейнера, а модуль-распаковщик извлекает их на диск и запускает один из них. Какой именно файл запускать, какое окно показывать и какой текст выводить, описано в обычном текстовом конфигурационном блоке, прикреплённом к модулю. Там же есть строка для команды запуска, которая обычно указывает на главный файл программы.
Модули бывают разными. Для установки с графическим окном нужен один вариант, для работы из командной строки - другой. Сторонние разработчики выпускают собственные модули с расширенными настройками, поэтому подмена или пересборка такого компонента никого не удивляет. Для аналитика главный интерес представляет файл, который запускается после распаковки: именно там чаще всего ищут вредоносный код. Сам распаковщик обычно не проверяют, потому что он состоит из стандартного, давно известного кода.
Образцы OpenSUpdater устроены как раз по этой схеме. Внутри самораспаковывающегося архива лежит подлинный установщик foobar2000, подписанный сертификатом компании Animated Productions, LLC. По описанию на её сайте компания занимается играми, и публикация чужой аудиопрограммы для такого бизнеса выглядит нелогично. Подпись настоящая, но раздутая повторяющимися байтами, а номер версии собран из случайных слов словаря. По данным аналитиков, такие файлы определяются как OpenSUpdater, а Microsoft относит их к семейству Snackarcin. Раздутый сертификат занимает лишь малую долю файла, так что обойти ограничения на загрузку в публичные сканеры он не помогает. Зато размер меняет хеш каждой сборки, не затрагивая действительность подписи.
Основная хитрость в другом. Вызов постороннего кода спрятан в середине модуля-распаковщика, рядом с участком, который отвечает за отрисовку индикатора хода распаковки. В исходной утилите такого вызова нет, и его появление - явная попытка уйти от обнаружения. Даже если аналитик заглянет внутрь модуля, он первым делом проверит точку входа и заметные глазу строки или подключённые библиотеки. Все они выглядят как в оригинале.
Сам загрузчик состоит из трёх частей. Первая получает адрес командного сервера через запутанную функцию и отмечается на нём служебной последовательностью байтов - вероятно, это способ опознавания. Вторая обращается к серверу за двумя библиотеками и одним зашифрованным набором данных, используя функции для сетевых запросов, вкомпилированные прямо в модуль. Третья расшифровывает полученное и загружает результат в оперативную память, не создавая файл на диске. Такой способ запуска называют рефлективной загрузкой: код исполняется в памяти, поэтому следов на накопителе почти не остаётся. Распаковать конечную полезную нагрузку в момент разбора не удалось.
Пересборка 7zip SFX - не единственный приём. Встречаются установщики на основе другой распространённой системы сборки, NSIS. Там вредоносная логика встроена в подключаемый модуль для работы с веб-страницами и срабатывает только при вызове с пустой строкой. Адрес командного сервера загрузчик берёт из сжатого блока внутри скрипта установки и затем запрашивает полезную нагрузку.
Общие черты у всех вариантов совпадают. Рефлективный загрузчик прячется в пересобранном открытом коде; сертификат раздут, но формально действителен; внутрь одного установщика вложен настоящий установщик другой программы. Последствия для пользователя могут быть разными - от навязчивой рекламы и лишних приложений до полного контроля над системой. В корпоративной среде такие сборки опаснее: они позволяют закрепиться на рабочей станции и развивать атаку дальше.
Пользователю внешние признаки не видны, поэтому защита остаётся простой. Скачивайте программы только с официальных сайтов разработчиков и проверяйте, кто подписал файл и когда. Не запускайте установщик, который тянет за собой постороннее приложение или предлагает набор программ "в комплекте". Компаниям стоит проверять сторонние файлы, попадающие на рабочие машины, и следить за необычными сетевыми подключениями. Исследователям авторы отчёта советуют не останавливаться при виде установщика внутри установщика или необычно большого сертификата и заглядывать туда, где вредоносный код искать не принято.