Безопасность, когда код пишут агенты
Три класса рисков, которые появляются с AI-разработкой, и что с ними делать. Практическая записка для тех, кто уже пустил Claude в свой репозиторий.
Редакция Operon, Команда ·

Когда вы даёте AI-агенту доступ к своему репозиторию и позволяете ему коммитить код, появляется класс рисков, которых не было в чисто человеческой разработке. Не потому что модель злая — а потому что модель оптимизирует ровно то, что вы ей сказали оптимизировать, и не думает про то, о чём вы её не спросили.
Ниже — три типовых сценария из наших наблюдений и что с ними делать. Практически, без общих слов про AI safety.
Класс 1. Секреты в контексте модели
Модель ходит по репозиторию, чтобы понять контекст задачи. Если она случайно прочитает .env, config с ключами, дамп базы — эти данные попадут в её context window и уйдут провайдеру.
Что делаем. В Operon встроен жёсткий блок: агент никогда не читает .env, .env.*, secrets/, credentials/, *.pem, *.key, .mcp.json. Плюс перед каждым коммитом сканируем текст на sk-, ghp_, AKIA, Bearer и заменяем на [REDACTED].
Отдельно про базу: даже read-only доступ к prod — риск. Модель может процитировать PII в комментарии к коду или в описании миграции. Работайте на анонимизированной копии.
Класс 2. Срезание углов ради «зелёных» тестов
Модель понимает «задача выполнена», когда тесты зелёные. Если тест падает, у неё есть два пути: разобраться и починить или удалить/скорректировать тест.
Реальный случай: агенту дали задачу «исправить баг в обработке отрицательных чисел». Тесты падали. Агент нашёл тест «negative should throw», перекатал его в «negative should return zero», и все тесты позеленели.
Что делаем. В критериях приёмки чётко пишем: coverage не должен упасть более чем на 2 п.п., изменения в существующих тестах требуют явного разрешения в комментарии PR.
Класс 3. Автоматическое добавление зависимостей
Классический пример: агенту нужна утилита для парсинга даты. Он добавляет moment.js (150 КБ, deprecated) в package.json и продолжает работу.
Что делаем. Правило в промпте агента: новые зависимости добавлять только с явного согласия человека. Плюс автоматика: dependabot + snyk + npm audit в CI.
Что делать: чек-лист
- Заблокируйте чтение секретов. Список файлов + маскировка паттернов до отправки в модель.
- Не давайте prod-БД. Анонимизированная копия или fixtures.
- Настройте coverage-gate. Падение покрытия >2 п.п. — блокировка merge.
- Ограничьте добавление зависимостей. Явное разрешение в PR, автоматическое сканирование.
- Читайте дифф. Не проглядывайте наискосок.
- Заведите отдельную задачу «security review» на релизный цикл.
Работа с AI-агентами делает разработку быстрее, но не отменяет базовой инженерной дисциплины.