Поддельные средства безопасности на GitHub: более 2 000 Windows-систем с бэкдором
Кампания, которая действует уже два года и изначально нацеливалась на владельцев криптокошельков, обратила внимание на тех, кто исследует вредоносные программы. Согласно исследованию Doctor Web (Dr.Web), опубликованному 5 ноября, более 2 000 систем Windows были скомпрометированы через вредоносные репозитории GitHub, которые выдают себя за средства безопасности. Приманки не грубые: среди них парсер, очиститель и форматтер вывода сетевого сканера Fscan, репозитории для автоматизации сканирования и тестирования защищённости, а также утилиты для обработки логов.
Приманка для тех, кто должен был бы знать
Смена целей — самое примечательное. По данным Dr.Web, первые заражённые репозитории появились примерно два года назад и строились вокруг блокчейн-игр, ботов и читов, а вредоносный код прятался в файлах проектов Visual Studio. Нынешняя волна сохраняет ту же механику доставки, но меняет упаковку на то, что аналитик правдоподобно склонирует в течение рабочего дня. Репозитории даже содержат инструкции по установке Visual Studio и клонированию проекта, что снижает порог для менее опытных пользователей. Материал BleepingComputer отмечает, что операция идёт около двух лет.Где прячется код
Вредоносная логика находится не в той части репозитория, которую проверяющий обычно читает. В файлах .csproj она сидит в процедуре PreBuildEvent, которая выполняется до компиляции проекта. В файлах .suo, которые большинство считает одноразовым состоянием редактора, она приходит в виде команды PowerShell. В исходниках на Go и Python, один образец называется FscanOutput_v2.2.py, код спрятан за длинными последовательностями пробелов, старый приём, который, по замечанию Dr.Web, всё ещё работает. Эта первая стадия, определяемая как PowerShell.Packed.270, записывается в пути вида C:\Users\Public\Pictures\t.ps1 и расшифровывает ссылку на скачивание архива Quixo.7z, который распаковывается в C:\ProgramData\Windows.Microsoft.Photos.Microsoft.exe — это приложение на Electron
Архив доставляет Microsoft.exe, определяемый как Trojan.Loader.3261 и построенный на Electron. Он модульный, версионированный (1.4.5 на момент отчёта) и ведёт себя как поддерживаемый продукт: скачивает второй зашифрованный пакет Nexara.7z, отправляет сведения о системе в Telegram-бот, закрепляется в системе, пытается повысить привилегии и отключает Windows Defender, UAC, уведомления, восстановление системы и службу теневых копий, добавляя исключения для Defender. Затем он внедряет следующие стадии в легитимные процессы, включая RegAsm.exe, dwwin.exe и dwm.exe.Этот разбор ясно показывает, что атака представляет серьёзную угрозу даже для опытных пользователей, включая специалистов по информационной безопасности. - Dr.Web
Два режима обхода и запасной вариант
Загрузчик несёт несколько способов уйти от анализа. Dr.Web описывает основной путь Mode3 и запасной Mode2:- Подмена explorer.exe в качестве родительского процесса загрузчика.
- Отключение Smart App Control через изменение значения реестра VerifiedAndReputablePolicyState.
- Перезагрузка ntdll.dll с диска для снятия хуков средств защиты и прямые системные вызовы через Halo's Gate.
- Патчинг EtwEventWrite и AmsiScanBuffer в памяти, чтобы ослепить трассировку событий и проверку скриптов для этого процесса.
- Откат к исключениям Defender для regasm.exe и dwm.exe, а затем расшифровка и внедрение модулей через PowerShell, если основной путь не сработал.
Что собирают полезные нагрузки
Финальные стадии — это бэкдор, перехватчик буфера обмена и стилер. Две копии BackDoor.AsyncRAT.115 внедряются на разных портах, что, по словам Dr.Web, позволяет двум операторам управлять одной машиной одновременно. Trojan.InjectNET.14 помещает Trojan.Clipper.688 в regasm.exe, чтобы подменять адреса криптокошельков в буфере обмена, и отправляет скриншоты и сведения о хосте через Telegram. JS.Stealer.191 проверяет наличие песочниц и виртуальных машин, после чего собирает данные браузеров, XML-профили FileZilla, MobaXterm.ini, wcx_ftp.ini от Total Commander, настройки VPN, файлы мессенджеров, игровые аккаунты и токены Discord. Собранные данные сжимаются и уходят через того же Telegram-бота.Снятие страховки
Загрузчик также пытается удалить ESET, McAfee и Malwarebytes и прописывает домены антивирусных компаний в файл hosts, чтобы отрезать эти продукты от серверов обновлений. Он удаляет всё содержимое system32\drivers\etc, кроме короткого белого списка, что, по данным Dr.Web, делается, чтобы пользователь не мог создавать и использовать резервные копии. Неиспользуемый код в образце указывает на ещё один компонент — незавершённый проект на Electron под названием WUDFHost.exe, который мог бы создавать службу для закрепления и заново скачивать Microsoft.exe после удаления.Почему копирование инструментов — это проблема цепочки поставок
Ничего из этого не требует zero-day или изощрённого эксплойта. Нужен человек со сроком, поисковик и репозиторий, достаточно похожий на то, что ему требуется. Средства безопасности особенно уязвимы, потому что многие из них небольшие, написаны одним автором и распространяются как исходный код, который предполагается запускать. Парсер вывода сканера — ровно то, что аналитик скачивает, просматривает и выполняет. То же относится к любому бинарнику, полученному по ссылке: происхождение важнее того, насколько полезным выглядит файл. Наше руководство по проверке загрузок через Tor описывает привычки работы с контрольными суммами и подписями, которые затрудняют такую подмену.Практические привычки
Несколько проверок остановили бы эту цепочку в разных точках:- Читайте хуки сборки. PreBuildEvent, postinstall-скрипт или шаг в Makefile, вызывающий PowerShell, — это код, а не конфигурация.
- Собирайте инструменты из зафиксированного коммита и сравнивайте этот коммит с тем, который вы проверяли.
- Запускайте незнакомые инструменты в одноразовой виртуальной машине без общего буфера обмена и монтирования хоста.
- Считайте .suo, .user и прочие файлы состояния редактора исполняемым содержимым — в этой кампании они им и были.
- Относитесь с подозрением к репозиториям с инструкциями по установке для новичков: это стратегия распространения, а не любезность.










