HarnessSecurity-Bench
Реально ли защищают механизмы безопасности кодирующих агентов? **Суть исследования** Первое систематическое исследование безопасности AI-агентов для написания кода (coding agent harnesses). Авторы создали бенчмарк HarnessSecurity-Bench, чтобы оценить, как различные механизмы защиты влияют на баланс между полезностью агента (выполнение задачи) и риском успешной атаки. Главный вывод: слепое доверие или тотальные запреты одинаково неэффективны; необходим точечный контроль команд. **Как это работает** 1. **Таксономия**: Выделено 10 механизмов безопасности (от автоподтверждения до изоляции сети). 2. **Тестирование**: 6 популярных агентов (Claude Code, Qwen Code, GitHub Copilot и др.) проверены на 23 типах задач с моделированием 5 поверхностей атак. 3. **Замер метрик**: Оценка полезности (utility) и уровня успеха атак (ASR) при включении/выключении защитных механизмов. 4. **Анализ обходных путей**: Проверка, можно ли выполнить запрещенное действие через формально разрешенный инструмент (alternative execution paths). **Ключевые цифры** - **Auto-approve**: полезность +18,3%, но успех атак взлетает с 29,2% до 95,6%. - **Read-only / Network Isolation**: снижают атаки, но ломают легитимные задачи (потеря полезности на 24–34%). - **Command Allowlisting (белый список)**: золотая середина. Снижает успех атак на 48,1% при потере полезности всего на 1,5%. **Практический кейс: безопасный рефакторинг** Вместо включения `auto-approve` для ускорения работы, настройте агента на использование только безопасных команд. *Плохо*: «Агент, запусти `npm install` и `deploy.sh`, подтверди действия сам». *Хорошо*: «Агент, ты можешь читать файлы и запускать только `npm run build` и `npm test`. Любые другие команды требуют моего ручного подтверждения». **Шаблон конфигурации (Чек-лист для промпта/настроек)** ```text [КОНТЕКСТ БЕЗОПАСНОСТИ ДЛЯ AI-АГЕНТА] 1. Режим доступа: Read-Write только для директории [/{путь_к_проекту}]. Остальная ФС — Read-Only. 2. Разрешенные команды (Allowlist): [npm run build, npm test, grep, find] 3. Запрещенные команды (Denylist): [rm -rf, curl, wget, bash -c, eval] 4. Сетевой доступ: Заблокирован (кроме локальных портов [3000-3005] для тестов). 5. Правило эскалации: Если задача требует команды вне Allowlist, остановись и запроси разрешение пользователя, кратко объяснив причину. ``` **Границы применимости и риски** - **Когда полезно**: При интеграции AI-агентов в CI/CD, работе с приватными репозиториями или локальной разработке, где цена ошибки высока. - **Когда бесполезно или вредно**: 1. Если легитимная задача *требует* сетевого доступа или записи в системные папки (жесткий Read-Only или изоляция сети гарантированно сломают задачу). 2. В закрытых проприетарных системах, где провайдер не раскрывает логику работы механизмов защиты (исследование выявило значительные «пробелы в доказательствах» для closed-source решений). 3. Если разрешенная команда имеет скрытый обходной путь (например, разрешенный интерпретатор `python` может выполнить любой код, сводя на нет запрет `bash`). **Рекомендация**: Всегда тестируйте альтернативные пути выполнения задач и оценивайте риск атаки совместно с полезностью, а не по отдельности. Исследование 2610.07639 Поддержать проект донатом: Сбер 2202 2084 9881 5282. Заранее спасибо.