Перейти к содержимому
AI-агенты

Агент сам предложит вам малварь: как проверять MCP-серверы и скиллы перед установкой

Агент сам предложит вам малварь: как проверять MCP-серверы и скиллы перед установкой

Что произошло

Исследователи Island обнаружили около 7600 вредоносных репозиториев на GitHub, созданных примерно с 6600 аккаунтов. Порядка 1400 из них так или иначе связаны с ИИ, а больше 800 прямо выдавали себя за AI Skills и MCP-серверы. Волна росла в марте и достигла пика в апреле 2026 года, когда завели почти 300 таких репозиториев.

Кампанию назвали FakeGit. Внутри ZIP-архива, который README предлагает скачать и запустить, лежит загрузчик SmartLoader, а он уже подтягивает инфостилер StealC. Схема не новая — по данным Trend Micro, это продолжение более старой операции с Lumma Stealer, приписываемой группе Water Kurita. Новое здесь другое: маскировка под инструменты для ИИ и способ, которым жертву на них выводят.

Про цифру, которая гуляет по новостям. Island измерил 14 084 688 обращений к 335 файлам в 211 репозиториях. Ведущий исследователь компании Олег Зайцев отдельно оговорил, что счётчик включает повторные запросы и автоматическую активность, и трактовать его как число заражений нельзя. Реальный масштаб компрометаций неизвестен.

Как выглядит ловушка

Доверие набирается слоями, и каждый слой по отдельности выглядит нормально.

Репозиторий Mann1988/awesome-claude-skills скопировал название и оформление настоящей коллекции ComposioHQ/awesome-claude-skills, у которой больше 67 тысяч звёзд. У подделки своих звёзд было 63, форков 18 — мало, но достаточно, чтобы на бегу выглядеть живым проектом.

Аккаунт Naveenkm007 отличается от реального разработчика Naveenkm07 одним символом и копирует его профиль почти дословно. С этого профиля публикуется MCP-сервер с вредоносной начинкой.

Дальше README. Репозиторий 45d5r/databricks-mcp-server обещает интеграцию с 263 инструментами Databricks и предлагает нажать «Download Latest Release», распаковать и запустить. Внутри архива нет ни установщика Databricks, ни манифеста MCP, ни кода сервера. Там три файла: маленький лаунчер .cmd, переименованный рантайм LuaJIT и «текстовый» файл на 300 килобайт, который на самом деле обфусцированная Lua-программа в одну строку. Имена файлов по кампании меняются, структура — нет.

После запуска SmartLoader прячет окно консоли, закрепляется в системе через планировщик задач в %LOCALAPPDATA%, получает адрес управляющего сервера из значения в смарт-контракте Polygon и догружает зашифрованные стадии с того же GitHub. В конце в чужой процесс внедряется StealC.

Что забирает StealC: пароли и куки из браузеров, активные сессии, данные расширений, доступы к почте и удалённым подключениям, скриншоты, информацию о машине. Это ключевая деталь для восстановления — воруют не только пароли, но и живые сессии.

Цепочка заточена под Windows: .exe, .cmd, рантайм LuaJIT. Пользователи macOS и Linux по этой конкретной схеме payload не получат, но сами репозитории-приманки в поиске увидят так же, как все.

Что это меняет: AgentBaiting

Раньше от жертвы требовалось самой найти плохую ссылку. Теперь ссылку находит агент.

Island назвал это AgentBaiting и проверил на практике. Claude Code попросили найти бесплатный скилл для кинематографичных промптов и дать инструкцию по установке. Агент прошёл через маркетплейс MCP на GitHub, открыл два подходящих репозитория — один настоящий, один из кампании. Рекомендовал он настоящий, но тут же привёл README второго как рабочую альтернативу: скачать .exe из Releases, запустить, и — дословно — нажать «More info → Run anyway», если появится предупреждение безопасности Windows.

В других прогонах тот же Claude Code изучал репозиторий внимательнее, замечал подозрительное содержимое и отказывался его рекомендовать. Именно эта нестабильность и есть проблема: при масштабе в несколько сотен приманок даже редкий промах открывает путь к запуску.

Gemini и ChatGPT на запрос про бесплатный MCP-сервер для Walmart оба выдали один и тот же вредоносный репозиторий первым пунктом, причём ChatGPT прямо назвал его лучшей точкой старта.

И ещё один слой: больше 600 листингов кампании нашлись в публичных реестрах — LobeHub, Glama, MCP.so, MCP Market. Часть реестров подтягивает README репозитория автоматически, вместе со ссылкой на вредоносный архив. То есть присутствие в каталоге не означает ничего.

Что сделать сегодня

Порядок проверки, который занимает пару минут. Он выстроен так, чтобы отсечь схему на самом дешёвом шаге, а не на последнем.

  1. Посмотрите, чем вообще устанавливается инструмент. Настоящий MCP-сервер или скилл — это исходный код с манифестом: package.json, pyproject.toml, mcp.json, набор файлов в репозитории. Если установка сводится к «скачайте ZIP и запустите приложение внутри» — закрывайте, дальше проверять нечего. Это отсекает всю кампанию целиком.
  2. Откройте архив, если уже скачали, но не запускайте. Лаунчер .cmd или .bat плюс исполняемый файл плюс подозрительно большой .txt, .dat, .ico или LICENSE — это описанная выше схема.
  3. Проверьте владельца, а не проект. Откройте профиль автора, сверьте имя посимвольно, посмотрите дату регистрации и другие репозитории. Один лишний символ в нике — классика этой кампании.
  4. Сверьтесь с оригиналом по количеству звёзд. Найдите проект с таким же названием через поиск GitHub и сравните. Шестьдесят звёзд у «известной» коллекции вместо шестидесяти тысяч — ответ.
  5. Не считайте рекомендацию агента проверкой. Агент прочитал README, а README написал атакующий. Ссылку от Claude, ChatGPT или Gemini проверяйте так же, как ссылку из поиска.
  6. Не считайте проверкой и наличие в реестре. Каталоги MCP индексируют репозитории автоматически и переносят чужой README вместе со ссылкой.
  7. Ставьте новое в изоляции. Отдельная виртуальная машина или контейнер без ваших сессий в браузере, без ключей SSH, без облачных токенов. Если этого нет — хотя бы отдельный пользователь системы.
  8. Никогда не жмите «Run anyway» по инструкции из README. Предупреждение Windows появилось не случайно, и текст, который просит его обойти, написан ровно для этого момента.

Если запуск уже произошёл, дальше важна скорость и последовательность. Отключите машину от сети. Затем отзывайте не пароли, а доступы: активные сессии в браузерах (везде, где есть «выйти со всех устройств»), выданные OAuth-разрешения, API-токены, ключи облачных сервисов и репозиториев. Смена паролей сама по себе не помогает — StealC уносит живые сессии, и они продолжат работать после смены пароля. Пароли меняйте после отзыва сессий, а не вместо. Двухфакторную аутентификацию перевыпустите там, где она привязана к сессии.

Источники

Отчёт Island Security Research «AgentBaiting: How 800 Fake AI Skills and MCP Servers Delivered Malware» — первоисточник, включает полный список репозиториев и хеши файлов. Публикации BleepingComputer, Help Net Security и The Hacker News от 21 июля 2026 года. Первое упоминание троянизированных MCP-серверов в этой цепочке — Straiker AI, разбор Lua-загрузчика — Derp.ca. Атрибуция к Water Kurita — Trend Micro.