Назад
2026/11/11
Скачанный инструмент безопасности оказался вредоносом: поддельные репозитории на GitHub заразили более 2000 ПК с Windows
Doctor Web нашла на GitHub поддельные инструменты безопасности, запускающие вредонос при сборке. Как устроена ловушка и что проверить перед сборкой.
Вы находите на GitHub небольшую утилиту, которая приводит в порядок вывод сетевого сканера. В ней есть README, проект Visual Studio и инструкция по сборке. Вы клонируете репозиторий и нажимаете «Собрать». Ничего подозрительного не видно, но к моменту запуска компилятора на вашей рабочей станции уже выполнилась скрытая команда.
Именно такую ловушку описала компания Doctor Web 5 ноября 2026 года. Её исследователи обнаружили репозитории на GitHub, выдающие себя за инструменты для автоматизации сканирования, тестирования безопасности и анализа журналов, и на момент исследования насчитали более 2000 заражённых ПК с Windows. В этой статье мы расскажем, как работает ловушка, почему в неё попадают даже опытные инженеры и что проверить, прежде чем собирать только что клонированный код.
Главное
- Репозитории выдают себя за инструменты безопасности, а вредоносная команда выполняется во время сборки или при запуске скрипта, без отдельной программы, которую нужно запускать.
- Код прячется в файлах проектов Visual Studio, в файлах
.suoи за длинными последовательностями пробелов в исходниках на Python и Go. - Конечная нагрузка — два бэкдора AsyncRAT, клиппер, подменяющий адреса криптокошельков в буфере обмена, и инфостилер, который крадёт данные браузеров, настройки VPN и FTP, а также токены Discord.
- Читайте файлы сборки до того, как собирать проект, а незнакомый код собирайте в одноразовой виртуальной машине без учётных данных.
- Если вы уже собрали один из таких проектов, считайте рабочую станцию скомпрометированной и смените все хранившиеся на ней учётные данные с чистого устройства.
Что обнаружила Doctor Web
Согласно отчёту Doctor Web, первые заражённые репозитории появились около двух лет назад. Тогда они были нацелены на владельцев криптокошельков и выдавались за блокчейн-игры, игровых ботов и читы. Теперь злоумышленники переключились на специалистов по информационной безопасности. Один из поддельных репозиториев содержал скрипт для разбора, очистки и форматирования вывода сетевого сканера Fscan.
Это не уязвимость в программном обеспечении, и закрывать патчем здесь нечего: CVE нет. Это кампания, сочетающая атаку на цепочку поставок и социальную инженерию: злоумышленники публикуют полезный на вид проект и ждут, пока кто-нибудь его соберёт. В обзоре исследования от BleepingComputer приём с пробелами назван старой техникой, которая по-прежнему эффективна.
Как работает ловушка
Doctor Web нашла вредоносный код в файлах трёх типов. Ни один из них не относится к тем, которые проверяющий обычно открывает первыми.
| Где прячется | Что происходит | Почему это легко пропустить |
|---|---|---|
Файл проекта .csproj | PreBuildEvent выполняет команду до компиляции проекта | Проверяющие читают исходный код, а не файл проекта |
Файл .suo | Файл содержит команду PowerShell | Это двоичный файл настроек, который Visual Studio обычно хранит в скрытой папке |
| Исходные файлы на Python и Go | Вредоносный код спрятан за большим количеством пробельных символов | Строка выглядит пустой, если не прокрутить далеко вправо или не включить перенос строк |
Дальше цепочка одинакова. Скрипт PowerShell (в отчёте в качестве примеров приводятся C:\Users\Public\Pictures\t.ps1 и L.ps1) запрашивает зашифрованную строку у серверов злоумышленников или у легитимных сервисов, таких как YouTube, Telegram, Google Docs, GitCode и Pastebin. После расшифровки строка превращается в ссылку на архив, который распаковывается в C:\ProgramData\Windows.Microsoft.Photos.
Внутри находится загрузчик на базе Electron с именем Microsoft.exe, который Doctor Web детектирует как Trojan.Loader.3261. Загрузчик передаёт сведения о системе через Telegram-бота, пытается повысить привилегии и отключает Windows Defender, контроль учётных записей (UAC), уведомления, восстановление системы и теневые копии томов. Он также пытается удалить продукты ESET, McAfee и Malwarebytes и изменяет файл hosts, чтобы заблокировать домены антивирусных компаний.
Чтобы оставаться незамеченным, загрузчик в режиме по умолчанию делает так, чтобы его родительским процессом выглядел explorer.exe, изменяет значение реестра VerifiedAndReputablePolicyState, чтобы обойти Smart App Control, восстанавливает исходный код ntdll.dll, убирая перехваты, которые там устанавливают защитные продукты, выполняет прямые системные вызовы и модифицирует функции Windows, отвечающие за трассировку событий и сканирование скриптов. Затем он внедряет свою нагрузку в легитимные процессы Windows, например RegAsm.exe.
Затем запускаются три вредоносных модуля:
- Два бэкдора AsyncRAT. Файлы идентичны, но используют разные сетевые порты; по мнению Doctor Web, это может позволять двум операторам одновременно управлять одним устройством.
- Клиппер. Он подменяет адреса криптокошельков в буфере обмена и отправляет Telegram-боту снимки экрана, заголовок активного окна, логин пользователя и IP-адрес.
- Инфостилер (JS.Stealer.191). Он проверяет, не запущен ли в песочнице или виртуальной машине, а затем собирает данные браузеров, файлы подключений FileZilla, MobaXterm и Total Commander, настройки VPN, файлы мессенджеров, данные игровых аккаунтов и токены Discord и отправляет их через Telegram-бота.
Doctor Web также обнаружила незавершённый компонент, который должен устанавливать службу Windows и повторно загружать загрузчик, если тот будет удалён. Это говорит о том, что злоумышленники продолжают развивать свой набор инструментов.
Почему это срабатывает на профессионалах
Кампания построена на привычках, которые обычно считаются хорошей практикой.
- Сборка из исходников кажется безопаснее запуска скачанного файла. Многие инженеры отказываются запускать незнакомый двоичный файл, но охотно скомпилируют проект, ведь код можно прочитать. Здесь же код, который они читают, чист, а команда находится в конфигурации сборки.
- Нет момента «запустить программу». Команда выполняется в рамках обычной сборки, поэтому привычной паузы перед запуском незнакомой программы просто не возникает.
- GitHub — доверенное место. Репозиторий с аккуратным README и инструкцией по установке выглядит как тысячи честных проектов. Doctor Web отмечает, что злоумышленники даже приложили инструкции по установке Visual Studio и клонированию репозитория.
- Рабочая станция инженера хранит ключи. Сохранённые сессии браузера, профили VPN и файлы подключений к серверам — именно то, что собирает инфостилер, и часто именно они открывают путь в производственные системы и среды клиентов.
Что проверить перед сборкой
Эти проверки занимают несколько минут и подходят для любого только что клонированного проекта в Windows, Linux или macOS. Выполните их в папке репозитория до того, как открывать проект в IDE.
# 1. Build hooks and command execution in project files
grep -rniE 'PreBuildEvent|PostBuildEvent|<Exec |powershell|cmd\.exe' \
--include='*.csproj' --include='*.vbproj' --include='*.vcxproj' \
--include='*.props' --include='*.targets' .
# 2. Visual Studio user-option files that should not be in a repository
find . -name '*.suo'
# 3. Files with very long runs of spaces or tabs on one line
grep -rlE '[[:space:]]{200,}' .
В Windows без Unix-подобной оболочки ту же проверку на пробелы можно выполнить в PowerShell:
Get-ChildItem -Recurse -File |
Select-String -Pattern '\s{200,}' -List |
Select-Object -ExpandProperty Path
Совпадение ещё не доказывает наличие вредоноса. Многие честные проекты используют события сборки, а минифицированные файлы содержат длинные строки. Но это повод открыть файл и прочитать, что делает команда, прежде чем что-либо запустится.
- Сначала прочитайте файлы сборки. Команды могут выполнять файлы проектов,
Makefile,setup.py, скрипты установки пакетов и файлы CI. Читайте их так же внимательно, как исходный код. - Удаляйте файлы
.suoи папки.vs, пришедшие вместе с репозиторием. Это пользовательские настройки, и для сборки проекта они не нужны. - Включайте перенос строк или отображение пробельных символов в редакторе, когда проверяете незнакомый код.
- Посмотрите историю репозитория. Новая учётная запись, один большой коммит, мало настоящих issues и участников, а также инструмент, дублирующий известный проект, — всё это поводы для повышенной осторожности. Звёзды и форки сами по себе мало что доказывают, потому что их можно накрутить.
- Собирайте незнакомый код в одноразовой среде. Используйте одноразовую виртуальную машину или контейнер без сохранённых паролей, профилей VPN и ключей SSH, а после работы удаляйте её.
Совет: держите один чистый снимок виртуальной машины для знакомства с инструментами. Клонируйте, собирайте и тестируйте там, а затем откатывайтесь к снимку. Если инструмент оказался полезным, как следует проверьте его, прежде чем он окажется рядом с вашей повседневной рабочей станцией.
Если вы уже собрали такой проект
Doctor Web опубликовала хеши файлов, домены, адреса и примеры названий репозиториев в своём списке индикаторов компрометации. Среди признаков, описанных в отчёте:
- папка
C:\ProgramData\Windows.Microsoft.Photosили программа с именемMicrosoft.exe; t.ps1илиL.ps1вC:\Users\Public\Pictures;- исключения Windows Defender для
regasm.exeилиdwm.exe, которые вы не добавляли; - домены антивирусных компаний в файле
hostsили отключённые восстановление системы и теневые копии; - защитное ПО, которое исчезло или перестало обновляться.
Если вы обнаружили что-либо из этого или точно знаете, что собирали проект из списка, исходите из того, что всё содержимое этой машины уже прочитано:
- Отключите рабочую станцию от сети и сообщите своей службе безопасности.
- С другого, чистого устройства смените пароли, сохранённые в браузере, и завершите активные сессии, чтобы украденные cookie-файлы сессий перестали работать.
- Замените профили VPN, а также пароли и ключи, хранящиеся в FTP-клиентах и терминальных клиентах, и проверьте серверы, к которым с их помощью можно было подключиться.
- Сбросьте сессии Discord и других мессенджеров и переведите криптоактивы в кошелёк, созданный на чистом устройстве.
- Переустановите операционную систему, а не пытайтесь её вылечить. Загрузчик отключает функции защиты и восстановления и устанавливает два бэкдора, поэтому «вылеченной» системе трудно доверять.
Совет: проверьте журналы серверов и VPN на предмет входов под затронутой учётной записью после даты сборки проекта. Украденные файлы подключений используются с систем злоумышленников, а не с заражённой рабочей станции.
Чем может помочь LOGIQ
LOGIQ помогает организациям безопасно использовать программное обеспечение с открытым исходным кодом — от корпоративного Linux и OpenJDK до окружающих их конвейеров сборки и развёртывания. Если вам нужен свежий взгляд на то, как ваши команды переносят сторонний код в свою среду, или помощь в отделении систем сборки от действительно важных учётных данных, свяжитесь с нами.
Global
Japan
Korea
China
Taiwan
Vietnam
Thailand
Indonesia
Portugal
Spain
France
Germany
Egypt