Файлы README научились обманывать ИИ-агентов и утягивать данные

Файлы README научились обманывать ИИ-агентов и утягивать данные

Файлы README научились обманывать ИИ-агентов и утягивать данные

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

Речь в исследовании (PDF) идёт о так называемой семантической инъекции. Суть в том, что в документацию добавляют шаг, который выглядит как нормальная часть установки: синхронизация файлов, загрузка конфигурации, отправка логов или ещё что-то в таком духе.

Для человека это может выглядеть вполне буднично, а вот ИИ-агент нередко воспринимает такой текст как прямую инструкцию. В результате вместе с «настройкой проекта» он может утянуть наружу локальные файлы, конфиги или другие данные.

Для проверки этой идеи исследователи собрали набор ReadSecBench — 500 файлов README из опенсорс-репозиториев на Java, Python, C, C++ и JavaScript, в которые добавили вредоносные вставки.

После этого они смотрели, как разные ИИ-агенты будут следовать такой документации при настройке проекта. В ряде сценариев скрытые инструкции срабатывали в 85% случаев.

 

Особенно показательно, что многое зависело от формулировки. Если вредоносная команда была написана в лоб, как обычное указание, атака проходила примерно в 84% тестов. А если спрятанная инструкция находилась не прямо в основном README, а, например, через пару переходов по ссылкам внутри документации, успешность вообще доходила примерно до 91%.

Ещё один неприятный момент: люди тоже далеко не всегда замечают подвох. В рамках эксперимента 15 участников вручную просматривали файлы README и пытались отметить что-то подозрительное. Никто из них не смог точно выявить вредоносные инструкции. Более чем в половине случаев рецензенты вообще не оставили замечаний о странном содержимом, а ещё 40% комментариев сводились к стилистике и формулировкам, а не к реальной угрозе.

Автоматические системы защиты тоже показали неидеальный результат. Сканеры часто ругались на обычные README-файлы, потому что документация и так полна команд, путей и кусков кода. Модели-классификаторы давали меньше ложных срабатываний, но всё равно пропускали часть вредоносных инструкций, особенно если те были вынесены в связанные файлы, а не лежали прямо в основном README.

Нейросеть с сюрпризом: AppSec.Track проверит модели из Hugging Face

ML-модель из публичного репозитория может оказаться не только умной, но и с неприятным сюрпризом внутри. AppSec Solutions добавила в платформу AppSec.Track предварительную проверку моделей из Hugging Face. По заявлению компании, это первое российское решение, которое блокирует потенциально опасные модели до их попадания на машины разработчиков и в CI.

Каждый запрошенный через корпоративный репозиторий файл автоматически отправляется в «карантин». Пока идёт сканирование, разработчик не может скачать модель, зато видит статус проверки и своё место в очереди. После анализа платформа решает, пропускать артефакт в корпоративную инфраструктуру или оставить за дверью.

Модели проверяются без запуска. AppSec.Track разбирает файлы PyTorch, TensorFlow, Keras и другие сериализованные форматы, включая вложенные архивы, и ищет код, способный выполниться при загрузке. Обнаруженным угрозам присваивается уровень критичности.

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

В AppSec Solutions считают, что со временем индустрия перейдёт на безопасный формат safetensors. Но пока публичные хабы забиты pickle-файлами, доверять модели только за красивые метрики — так себе стратегия.

Второй рубеж защиты работает на этапе сборки. AppSec.Track формирует SBOM и проверяет библиотеки и зависимости по собственной базе уязвимостей. Она охватывает PyPI, npm, Maven, NuGet, CUDA, Julia и другие экосистемы. Фид можно подключить онлайн или развернуть в закрытом контуре.

Политики безопасности настраиваются один раз и затем применяются автоматически. Сама модель проходит досмотр при входе и повторно не сканируется, а её окружение контролируется при каждой сборке. Получается вполне понятный фейс-контроль: нейросеть сначала показывает, что у неё внутри, и только потом идёт работать.

RSS: Новости на портале Anti-Malware.ru