Новости Считаем до 50 и взламываем. Как Anthropic переоценила внимательность программистов

NewsMaker

I'm just a script
Премиум
25,700
46
8 Ноя 2022
В коде ИИ-агента нашли нелепую ошибку, которая позволяет обходить правила безопасности.


vbf5p3bevujf0djvf1ivtm0eb2tfkla1.jpg

Исследователи безопасности из тель-авивской компании Adversa обнаружили уязвимость в Claude Code — ИИ-агенте для программирования от Anthropic. Если подсунуть агенту достаточно длинную цепочку подкоманд, защитные правила блокировки перестают работать, и злоумышленник получает возможность провести атаку через внедрение вредоносных инструкций.

Claude Code умеет ограничивать доступ к потенциально опасным инструментам. Например, администратор может запретить агенту использовать curl — утилиту для сетевых запросов — добавив соответствующее правило в файл настроек <code>~/.claude/settings.json</code>. Казалось бы, надёжная защита. Но в исходном коде агента, который недавно утёк в открытый доступ, Adversa нашла любопытный комментарий.

В файле <code>bashPermissions.ts</code> обнаружилась константа <code>MAX_SUBCOMMANDS_FOR_SECURITY_CHECK = 50</code>. Она задаёт жёсткий лимит: агент проверяет на соответствие правилам безопасности не более 50 подкоманд в одной строке. Если подкоманд больше, Claude Code вместо автоматической блокировки просто спрашивает у пользователя разрешения. Комментарий в коде поясняет, что 50 — щедрый лимит для нормальной работы. Для команд, написанных человеком, это действительно так. Но создатели агента не учли сценарий, при котором вредоносный файл <code>CLAUDE.md</code> заставляет ИИ самостоятельно сгенерировать конвейер из 50 и более подкоманд, замаскированных под легитимный процесс сборки.

Команда Adversa проверила уязвимость на практике: исследователи составили bash-команду из 50 пустых подкоманд <code>true</code> и одного вызова <code>curl</code>. Агент не заблокировал curl, а запросил разрешение у пользователя. Во время долгих сессий разработчики нередко машинально подтверждают подобные запросы — или вовсе включают режим <code>--dangerously-skip-permissions</code>, при котором агент действует полностью автономно. CI/CD-конвейеры, запускающие Claude Code в неинтерактивном режиме, уязвимы по той же причине.

Примечательно, что Anthropic уже располагает готовым решением. В исходном коде присутствует парсер tree-sitter, способный корректно анализировать bash-команды любой сложности. Кроме того, по данным Adversa, достаточно изменить одну строку в файле <code>bashPermissions.ts</code> — заменить значение ключа <code>behavior</code> с <code>ask</code> на <code>deny</code>. Эта правка закрыла бы уязвимость, однако в публичных сборках Claude Code изменение так и не появилось. Adversa настаивает: речь идёт об ошибке в механизме применения политик безопасности, которая может иметь последствия с точки зрения регуляторных требований.
 
Источник новости
www.securitylab.ru

Похожие темы