Загрузчик на Go прячет Remus в оперативной памяти и работает семь секунд

Stealer

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

Описание

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

Затем управление переходит к Remus. Сначала он проверяет, не работает ли рядом отладчик. Потом наступает пауза длиной примерно четыре секунды. За это время ни одно привычное наблюдение не срабатывает. В отчёте CAPE паузу объясняют прямыми обращениями к ядру, которые подобные средства не видят. Завершается она серией из тридцати замеров системного времени. Их связывают с проверкой на ускоренный ход времени в изолированной среде.

Дальше вредоносная программа опрашивает систему через штатную службу управления Windows. Её интересуют версия и дата установки системы, часовой пояс, модель видеокарты, имя пользователя, имена компьютера и домена. Отдельный запрос касается установленного антивируса. В песочнице (изолированной среде для анализа) им оказался Windows Defender с включённой защитой и свежими базами. В терминах MITRE ATT&CK (классификация приёмов атакующих) такой опрос называют сбором сведений о системе (T1082).

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

До кражи дело не дошло. Заявленные возможности семейства включают получение адреса командного сервера через смарт-контракт в публичной блокчейн-сети. Дальше идут пароли и сохранённые сессии браузеров, обход защиты их хранилищ, снимки экрана, чтение буфера обмена, криптокошельки и ключи доступа к аккаунтам мессенджеров. Собранное ушло бы на сервер архивом. Причин у раннего выхода две. Либо Remus распознал анализ, либо не смог найти свой командный сервер. По одному запуску их не различить.

Что остаётся защитникам. В наблюдаемой картине есть два признака. Один - участок памяти с правом на запуск кода внутри процесса, основной образ которого расположен в другом месте. Другой - программа из пользовательской папки, которая в первые секунды спрашивает у системы сведения об антивирусе и видеокарте. Такое сочетание редко встречается в обычной работе. Картину добавляют загрузка сетевой библиотеки пользовательским процессом и завершение с кодом 0 почти сразу после старта.

Опираться на хеши и адреса не стоит: они меняются от сборки к сборке. Память работающих процессов разумнее проверять сканером с правилами YARA (поиск по характерным фрагментам вредоносного кода). События службы управления Windows заслуживают отдельного разбора. Полезно и то, что для полного сценария образцу нужна правдоподобная среда: настоящая модель видеокарты вместо виртуальной и профиль пользователя с историей. Иначе образец прекращает работу раньше, чем проявит себя.

Бесфайловые схемы доставки давно перестали быть редкостью. Ранние волны этой семьи распространяли через приём "скопируй и вставь". Жертву убеждали скопировать текст с поддельной страницы и выполнить его в системном окне. Тогда запуск оставлял хоть какой-то след. Теперь на диске не остаётся ничего. Охота за поведением, а не за артефактами, становится обязательной частью работы защитника.

Индикаторы компрометации

Комментарии: 0