Можно ли обмануть защиту ИИ-агентов простой заменой букв?

Группа исследователей из Гонконгского университета науки и технологий проверила, насколько хорошо современные сканеры отлавливают вредоносные «навыки» — небольшие пакеты инструкций, которые загружают ИИ-агенты вроде Claude Code, OpenAI Codex или OpenClaw. Результат неприятный: практически любой сканер удаётся обмануть простыми трюками, а вредоносный код при этом продолжает работать как ни в чём не бывало. Самая эффективная техника из тех, что придумали авторы, проходила мимо всех восьми проверенных сканеров более чем в 90% случаев.
Можно ли обмануть защиту ИИ-агентов простой заменой букв?
Изображение носит иллюстративный характер

Сами «скиллы» устроены просто — это обычно Markdown-файл с инструкциями плюс несколько скриптов. Агент подгружает такой пакет и получает новую способность: работать с определённым API, форматировать документы, анализировать код. Штука в том, что скилл выполняется с теми же правами, что и сам агент — доступ к файлам, терминалу, сохранённым паролям. А публичные площадки, где эти пакеты выкладывают, проверяют содержимое довольно поверхностно, и загрузить туда что угодно может кто угодно.
Работа называется «Cloak and Detonate» — пока это препринт, рецензирования она не проходила, но код авторы выложили в открытый доступ. Ранее издание The Hacker News уже писало о случае, когда один поддельный скилл обошёл все существующие сканеры и, по данным одной из компаний по безопасности, добрался до десятков тысяч агентов. Новая работа отличается тем, что превращает разовый обход в систематический, воспроизводимый метод — и заодно предлагает рабочую защиту от него.
Инструмент атаки назвали SKILLCLOAK, и работает он по двум сценариям. Первый — более лёгкий, на уровне символов: часть букв в коде заменяется похожими символами из других алфавитов, а команды, которые сканер обычно помечает как подозрительные, разбиваются переносами строк. Формально шаблон, который ищет сканер, перестаёт совпадать, а команда при этом исполняется точно так же. Такой приём проходил через большинство сканеров более чем в 80% случаев, а на одном из них — в 96%.
Второй метод куда изощрённее. Весь вредоносный код прячется в директориях, которые сканеры обычно пропускают ради скорости и снижения числа ложных срабатываний — например, в.git/. Полезная нагрузка лежит там в замаскированном виде за безобидным на вид декодером и распаковывается только в момент, когда агент реально запускает скилл. Именно на этом методе показатели впечатляют больше всего: обход всех восьми сканеров более чем в 90% случаев, а для большинства из них — более чем в 99%.
Проверяли это не на паре тестовых примеров, а на 1613 реальных вредоносных скиллах, собранных с публичной площадки ClawHub. При запуске на Claude Code и OpenAI Codex замаскированные версии работали ничуть не хуже оригиналов — то есть маскировка практически ничего не стоила атакующему с точки зрения функциональности.
В противовес атакующему инструменту команда собрала SKILLDETONATE — систему проверки, которая смотрит не на то, как выглядит код, а на то, что он делает в момент запуска. Скилл исполняется в песочнице, а система следит за поведением на уровне операционной системы: какие файлы читаются, что записывается, куда уходят данные. Ключевая идея тут в том, что чувствительные данные отслеживаются по потоку, а не по внешнему виду — так что кодирование через base64 или простое шифрование не помогает спрятаться. Вторая важная деталь: инструкции скилла выполняются только во время самого запуска, то есть ровно там, где прячется полезная нагрузка при упаковочном трюке.
В контролируемом тесте SKILLDETONATE поймал 97% атак при уровне ложных срабатываний в 2% — показатель заметно лучше, чем у сканеров, с которыми его сравнивали, причём результат держался даже на замаскированных скиллах. На реальных вредоносных примерах с ClawHub система поймала 87%. Для сравнения: сканер Cisco, признанный в исследовании самым сильным из восьми, до маскировки ловил 99% реальных угроз, а после применения техник SKILLCLOAK — около 10%. Плата за такую точность есть: проверка одного скилла занимает пару минут против нескольких секунд у обычного сканера, но запускать её нужно один раз, до публикации скилла, а не при каждом обращении.
То, что описывают авторы препринта, уже происходит на практике. Компания Bitdefender обнаружила, что примерно 17% скиллов на одной из площадок содержали скрытый вредоносный код. Koi Security выявила 341 вредоносный скилл в рамках одной кампании под названием «ClawHavoc», и это число позже выросло до 824 по мере расширения самой площадки. Отдельно подразделение Unit 42 нашло пять уклончивых скиллов, которые оставались активными на ClawHub несмотря на встроенное сканирование: один под названием «omnicogg» раздул свой README-файл до 22 мегабайт мусорных данных, чтобы превысить лимит размера файла у сканера — техника, буквально совпадающая с тем, что описывают исследователи из Гонконга. Ещё два скилла воровали пароли с Mac, а два других перехватывали финансовые советы агента, чтобы подсовывать партнёрские ссылки и подкручивать запуски мем-коинов.
Похожие провалы происходят и за пределами маркетплейсов скиллов. Команда Mozilla 0DIN проследила инцидент, в котором внешне чистый GitHub-репозиторий заставил Claude Code открыть обратный шелл на машине разработчика, дав злоумышленнику удалённый доступ. Вредоносного кода в самом репозитории не было вообще — установочный скрипт подтягивал его во время выполнения из DNS-записи, так что статическому сканированию просто нечего было ловить. Microsoft, в свою очередь, предупредила о случае, когда описание инструмента через протокол MCP подменили уже после одобрения, и это тихо перенаправило финансового агента на утечку неоплаченных счетов. Механизм другой, но допущение сломано то же самое: прохождение проверки не гарантирует безопасное поведение во время работы.
Сами авторы честно оговаривают ограничения своей работы. Подтверждённых случаев, когда реальные атакующие массово использовали именно упаковочный трюк SKILLCLOAK, пока нет — задокументированы лишь смежные по духу обходы, но не доказанное применение конкретно этого инструмента. SKILLDETONATE остаётся исследовательским прототипом, не проверенным на живой площадке против злоумышленника, который целенаправленно пытается его обмануть. И все цифры — самоотчёт авторов из непрошедшей рецензирование работы: общее направление подтверждено достаточно убедительно, но к конкретным процентам стоит относиться с некоторой осторожностью.
Главный вывод из всего этого прост: статические сканеры оценивают скилл по тому, как он выглядит в момент загрузки, а вредоносное поведение проявляется только при запуске — уже после того, как проверка пройдена. Значит, точку принятия решения о доверии нужно переносить с ворот маркетплейса на саму машину, где скилл исполняется. Даже без сложных систем поведенческого анализа есть дешёвые сигналы тревоги: крупные или подозрительно плотные по энтропии файлы в директориях вроде.git/ или build/, которые сканеры обычно пропускают; код, собирающийся или распаковывающийся только во время запуска, а не лежащий открыто; файлы, раздутые далеко за разумные пределы размера — тот самый трюк с обходом лимитов сканера. Ни один из этих признаков сам по себе не доказательство, но игнорировать их не стоит.
Из практических шагов авторы предлагают хешировать скилл в момент сканирования и перепроверять хеш перед каждым запуском — это ловит нагрузку, которая распаковывается позже. Стоит помечать скиллы, которые тащат непрозрачные блобы в игнорируемых папках, и файлы с размером далеко за разумными пределами. Ни одна из этих мер сама по себе проблему не закрывает — надёжная защита требует именно мониторинга поведения во время выполнения. К этому стоит добавить и более общие правила: устанавливать скиллы только из проверенных источников, давать агентам минимально необходимый уровень доступа и не запускать их на машинах, где хранится что-то действительно ценное для кражи.


Новое на сайте

Ссылка