Специалисты по информационной безопасности столкнулись с очередной эволюцией известного похитителя данных Gremlin. Эта вредоносная программа, специализирующаяся на краже учётных данных, файлов cookie и криптовалютных кошельков, получила значительные улучшения в области скрытности и функциональности. В последних образцах злоумышленники применили сложные методы обфускации, которые затрудняют как статический анализ, так и обратную разработку.
Описание
Жертвами становятся обычные пользователи и сотрудники компаний, которые используют браузеры на основе Chromium, мессенджеры вроде Discord, а также работают с криптовалютами. Gremlin нацелен на кражу платёжных данных, сессионных токенов, содержимого буфера обмена и учётных записей VPN или FTP. Всё это упаковывается в ZIP-архив и отправляется на серверы злоумышленников. Новый вариант программы, согласно отчёту исследователей из подразделения Unit 42 компании Palo Alto Networks, отличается усиленной антианалитической защитой и расширенным набором модулей.
Главное изменение коснулось способа сокрытия основной полезной нагрузки. В более старых версиях код был практически не защищён: все функции и переменные имели осмысленные имена, а строки были доступны для прямого просмотра. Теперь же злоумышленники перенесли вредоносный код в раздел ресурсов .NET, зашифровав его с помощью простого XOR-шифрования. Такой подход позволяет обойти сигнатурные методы обнаружения, поскольку сигнатуры вредоносных строк и вызовов API теперь не видны в статическом анализе. Исследователям пришлось применить одно-байтовый XOR для восстановления конфигурации, чтобы увидеть адреса командных серверов.
Кроме того, новые образцы используют коммерческий упаковщик, который виртуализирует часть инструкций. Это означает, что оригинальный код преобразуется в нестандартный байт-код, который исполняется только внутри встроенной виртуальной машины. Такая техника сильно затрудняет дизассемблирование и отладку. Сравнение с предыдущими версиями показывает, что разработчики Gremlin перешли от простого похитителя паролей к модульному инструменту, который применяет сразу несколько приёмов сокрытия.
Какие именно антианалитические техники были обнаружены? Во-первых, тотальное переименование идентификаторов: все классы, методы и переменные получили бессмысленные короткие имена вроде a, b или hf. Это лишает контекста любую функцию. Например, метод, который раньше назывался StealPasswordsFromChrome, теперь называется a(). Аналитику приходится вручную прослеживать каждую ссылку, чтобы понять её назначение. Во-вторых, все важные строки шифруются. В коде встречаются только три целых числа, которые используются в специальной функции-декодере (_003CModule_003E.c). Эта функция читает зашифрованные данные из встроенного ресурса, дешифрует их и возвращает читаемую строку. Таким образом, в исполняемом файле нельзя найти прямые упоминания адресов Telegram, сервисов определения IP или имён файлов кошельков. В-третьих, применено запутывание потока управления: код наполнен бессмысленными условными переходами, goto и математическими операциями, которые не влияют на результат. Это создаёт впечатление сложной логики, хотя на деле программа выполняет простую последовательность действий.
Такая защита делает динамическую отладку единственным способом обнаружить реальное поведение. Для анализа требуется запускать вредоносную программу в изолированной среде, что, впрочем, тоже может быть затруднено современными методами анти-отладки.
Помимо усиления обфускации, новый вариант Gremlin приобрёл дополнительные возможности для хищения данных. Он теперь включает выделенный модуль для кражи токенов Discord, что свидетельствует о смещении фокуса на цифровую идентичность и социальную инженерию. Причём токены извлекаются напрямую из памяти процессов браузера, а не из файлов базы данных. Это позволяет обойти некоторые современные механизмы защиты файлов cookie.
Ещё одно опасное новшество - крипто-клиппер. Этот модуль постоянно отслеживает содержимое буфера обмена. Как только пользователь копирует адрес криптовалютного кошелька, вредоносная программа подменяет его на адрес злоумышленника. Таким образом, при переводе средств жертва отправляет деньги атакующему. Это уже не пассивная кража, а активное финансовое мошенничество.
Наконец, Gremlin использует модуль для перехвата сессий через WebSocket. Он позволяет захватывать активные сессии в браузере и получать доступ к учётным записям даже при наличии дополнительных уровней защиты, например короткого срока жизни сессионных токенов. Для этого полезная нагрузка загружается в память только в момент выполнения, что ещё больше усложняет обнаружение.
Последствия такой эволюции очевидны: пользователи рискуют потерять доступ к своим криптовалютным счетам, а также утратить контроль над учётными записями в соцсетях и мессенджерах. Для компаний особенно критична утечка сессионных токенов, которая может привести к взлому корпоративных систем. Следует отметить, что на момент обнаружения новый сайт Gremlin, куда отправляются украденные данные, не детектировался ни одним антивирусом на VirusTotal, что подтверждает высокий уровень скрытности угрозы.
Несмотря на сложность защиты, исследователи смогли восстановить полную картину атаки. Они подчёркивают, что обнаруженные техники - лишь верхушка айсберга. Постоянное совершенствование методов обфускации и появление новых модулей делают Gremlin серьёзной угрозой для всех, кто хранит конфиденциальные данные в браузерах или работает с криптовалютами. Специалисты по безопасности рекомендуют обращать внимание на подозрительные вложения в письмах, не загружать файлы из непроверенных источников и своевременно обновлять антивирусные базы, которые, как показывает практика, далеко не всегда успевают за новыми вариантами таких похитителей.
Индикаторы компрометации
URLs
- http://194.87.92.109/i.php
SHA256
- 1bd0a200528c82c6488b4f48dd6dbc818d48782a2e25ccd22781c5718c3f62f5
- 2172dae9a5a695e00e0e4609e7db0207d8566d225f7e815fada246ae995c0f9b
- 281b970f281dbea3c0e8cfc68b2e9939b253e5d3de52265b454d8f0f578768a2
- 691896c7be87e47f3e9ae914d76caaf026aaad0a1034e9f396c2354245215dc3
- 971198ff86aeb42739ba9381923d0bc6f847a91553ec57ea6bae5becf80f8759
- 9aab30a3190301016c79f8a7f8edf45ec088ceecad39926cfcf3418145f3d614
- 9fda1ddb1acf8dd3685ec31b0b07110855832e3bed28a0f3b81c57fe7fe3ac20
- a9f529a5cbc1f3ee80f785b22e0c472953e6cb226952218aecc7ab07ca328abd
- ab0fa760bd037a95c4dee431e649e0db860f7cdad6428895b9a399b6991bf3cd
- d11938f14499de03d6a02b5e158782afd903460576e9227e0a15d960a2e9c02c
- f76ba1a4650d8cafb6d3ff071688c5db6fd37e165050f03cece693826f51d346