Взломщики добрались до святая святых — личных файлов разработчиков.
Инструменты, которым всё чаще доверяют код и рабочие файлы, оказались уязвимы не из-за новой техники атаки, а из-за старого трюка командной строки, который ломает защитные проверки ИИ-агентов .
Специалисты Adversa AI описали класс проблем GuardFall в открытых ИИ-агентах для программирования и работы с компьютером. Такие агенты могут запускать команды в оболочке с правами пользователя, включая доступ к SSH-ключам, облачным учётным данным и файлам в домашнем каталоге. Защита во многих проектах сводится к проверке текста команды по списку опасных шаблонов, но bash перед запуском меняет строку: раскрывает переменные, убирает кавычки и пересобирает аргументы.
Из-за разницы между «проверенной» и реально выполненной командой опасное действие может пройти фильтр. В источнике приводятся приёмы с разбиением слова кавычками, заменой пробелов через $IFS, подстановкой команды, передачей Base64-строки в sh и использованием утилит, которые становятся разрушительными только с определёнными флагами. Такой подход не требует взлома самого агента: вредоносная инструкция может попасть в README, Makefile, описание пакета, ответ MCP-сервера , письмо или другой текст, который агент читает во время работы.
Проверка охватила 11 популярных открытых агентов, включая Hermes, opencode, Goose, Cline, Roo-Code, Aider, Plandex, OpenInterpreter, OpenHands, SWE-agent и Continue. У десяти из них граница между командой агента и bash осталась уязвимой в разных вариантах: часть проектов использовала проверку сырой строки, часть полагалась на подтверждение человеком, часть защищалась контейнером только до включения локального режима. Continue стал единственным примером, где защита по умолчанию закрывала большую часть поверхности атаки.
В лабораторных тестах атака проходила через обычный рабочий сценарий. В одном примере вредоносный Makefile заставлял агента запустить make test, после чего команда удаляла облачные учётные данные в домашнем каталоге. Авторы отдельно подчёркивают, что цепочка зависит от поведения языковой модели и контекста: прямую вредоносную команду модель часто отклоняет, но такая же команда, оформленная как часть рабочего файла или инструкции, может выглядеть для агента как обычная задача.
Главный риск связан с режимами автозапуска и локальной работой без изолированной среды. В CI , на ноутбуке разработчика или на собственном сервере для запуска CI-задач команда агента получает те же права, что и пользователь. Контейнер снижает ущерб только при одноразовом рабочем окружении, а отключение контейнера возвращает атаку к хосту.
Для снижения риска специалисты советуют запускать агентов с отдельным HOME без доступа к ~/.ssh и ~/.aws, проверять многострочные shell-скрипты перед выполнением, считать конфигурации из репозиториев недоверенным кодом, отключать автозапуск команд и не запускать агентов на pull request из форков в привилегированных CI.
Для долгосрочной защиты разработчикам агентов предлагают внедрять проверку, которая разбирает команду так же, как оболочка, учитывает подстановки, каналы в интерпретаторы и запрещённые разрушительные шаблоны.
Инструменты, которым всё чаще доверяют код и рабочие файлы, оказались уязвимы не из-за новой техники атаки, а из-за старого трюка командной строки, который ломает защитные проверки ИИ-агентов .
Специалисты Adversa AI описали класс проблем GuardFall в открытых ИИ-агентах для программирования и работы с компьютером. Такие агенты могут запускать команды в оболочке с правами пользователя, включая доступ к SSH-ключам, облачным учётным данным и файлам в домашнем каталоге. Защита во многих проектах сводится к проверке текста команды по списку опасных шаблонов, но bash перед запуском меняет строку: раскрывает переменные, убирает кавычки и пересобирает аргументы.
Из-за разницы между «проверенной» и реально выполненной командой опасное действие может пройти фильтр. В источнике приводятся приёмы с разбиением слова кавычками, заменой пробелов через $IFS, подстановкой команды, передачей Base64-строки в sh и использованием утилит, которые становятся разрушительными только с определёнными флагами. Такой подход не требует взлома самого агента: вредоносная инструкция может попасть в README, Makefile, описание пакета, ответ MCP-сервера , письмо или другой текст, который агент читает во время работы.
Проверка охватила 11 популярных открытых агентов, включая Hermes, opencode, Goose, Cline, Roo-Code, Aider, Plandex, OpenInterpreter, OpenHands, SWE-agent и Continue. У десяти из них граница между командой агента и bash осталась уязвимой в разных вариантах: часть проектов использовала проверку сырой строки, часть полагалась на подтверждение человеком, часть защищалась контейнером только до включения локального режима. Continue стал единственным примером, где защита по умолчанию закрывала большую часть поверхности атаки.
В лабораторных тестах атака проходила через обычный рабочий сценарий. В одном примере вредоносный Makefile заставлял агента запустить make test, после чего команда удаляла облачные учётные данные в домашнем каталоге. Авторы отдельно подчёркивают, что цепочка зависит от поведения языковой модели и контекста: прямую вредоносную команду модель часто отклоняет, но такая же команда, оформленная как часть рабочего файла или инструкции, может выглядеть для агента как обычная задача.
Главный риск связан с режимами автозапуска и локальной работой без изолированной среды. В CI , на ноутбуке разработчика или на собственном сервере для запуска CI-задач команда агента получает те же права, что и пользователь. Контейнер снижает ущерб только при одноразовом рабочем окружении, а отключение контейнера возвращает атаку к хосту.
Для снижения риска специалисты советуют запускать агентов с отдельным HOME без доступа к ~/.ssh и ~/.aws, проверять многострочные shell-скрипты перед выполнением, считать конфигурации из репозиториев недоверенным кодом, отключать автозапуск команд и не запускать агентов на pull request из форков в привилегированных CI.
Для долгосрочной защиты разработчикам агентов предлагают внедрять проверку, которая разбирает команду так же, как оболочка, учитывает подстановки, каналы в интерпретаторы и запрещённые разрушительные шаблоны.
- Источник новости
- www.securitylab.ru