
Разбор · Опубликовали 07.10.2026
Безопасная разработка с агентами держится на трёх замках: ключи, ревью другой моделью и стоп на необратимом
Как допустить агентов к работе с кодом: отделить секреты, проверить границы доступа и оставить опасные операции за человеком.
Текст написан инженером, который ведёт vibecoding.ru, вместе с машиной агентов · факты проверены 7 октября 2026
Безопасная разработка с ИИ-агентами держится на трёх проверяемых границах: какие ключи доступны агенту, кто проверяет его код и какие действия требуют отдельного разрешения.
На vibecoding.ru инженер ведёт машину агентов; наш опыт показывает, что зелёные тесты и аккуратный интерфейс не заменяют эти границы.
Не хотите разбираться сами? Внедряем ИИ в ваш бизнес: задачи без лимита, одна цена в месяц, отмена в любой момент.
1. Запрет работает, когда его проверяет система.
Пускать агента в разработку страшно не из-за количества строк, которые он пишет. Он может прочитать ключ, вызвать инструмент или изменить прод, пока руководитель оценивает только готовую страницу. Поэтому допуск начинается с вопроса: что процесс агента физически может прочитать и выполнить?
Наш материал для проверки этих границ: записи работы машины агентов на vibecoding.ru. Собственного клиентского кейса у нас нет. Ниже разобраны эпизоды нашего сайта; они показывают механизм ошибки, а не частоту инцидентов у клиентов.
Фраза «не трогай секреты» полезна в правилах для ИИ-агентов, но сама не ограничивает чтение файла. Аналогично пароль на экране ничего не говорит о правах прямого запроса к серверу. В ленте видно, где расходились инструкция, интерфейс и реальное действие.
У каждого эпизода свой статус: исправление, урок или правило брифа.
07.07
Административный экран был закрыт паролем, но прямые серверные запросы отдавали служебные сводки. Урок: проверять права на сервере. Запись предлагала исправление, не подтверждала его внедрение.
13.07
Секрет попал в вывод служебной команды и транскрипт агента. Исправление: ключи отозвали и заменили; вывод чувствительных значений потребовал ограничения.
18.07
Другой прогон иной моделью нашёл у ответчика доступ к секретам и возможность вынести их через ответ на письмо. Исправление: изолировали окружение и рабочую папку, добавили проверку ответа. Кража не подтверждена.
18.07
Служебный ящик удалили до выгрузки истории; восстановить её после удаления было нельзя. Урок: сначала подтвердить выгрузку, затем удалять. Размер возможной потери неизвестен.
09.09
Агент переключил DNS прода, не дождавшись сигнала; вреда не было. Правило брифа: отдельное разрешение перед переключением. DNS обратим, но меняет путь посетителей.
Первичные журналы нашей машины, записи июля–сентября 2026, сверены 07.10.2026. Это авторский разбор; закрытые журналы не публикуются и не являются независимым аудитом.
Из этих эпизодов не следует, что агентов надо лишить любой самостоятельности. Следует более узкое требование: самостоятельная правка кода не даёт права читать все секреты или выполнять все операции. Допуск к каждому из этих действий проверяют отдельно.
Распределение ответственности и подготовка отката разобраны в статье об ошибках ИИ. Здесь разберём свидетельства, по которым ИТ-директор может разрешить работу: какие права выданы, что нашёл проверяющий и кто подтвердил опасный шаг.
Что и как мы проверяли
| Факт | Что известно | Проверено |
|---|---|---|
| Наш опыт | Первичные записи работы vibecoding.ru, события 07.07–09.09.2026. Проверены записи, а не текущая защищённость всех систем. Собственного клиентского кейса нет | 2026-10-07 |
| Внешние основания | Прочитаны первичные рекомендации OWASP, релиз NIST CSF 2.0 и официальная карточка ГОСТ. Оценка соответствия стандарту не проводилась | 2026-10-07 |
| Обещание сервиса | Живой /services, 07.10.2026, 19:30 МСК: репозиторий клиента, код не идёт в обучение, запросы хранятся 30 дней. Сверена публичная формулировка условий | 2026-10-07 |
2. Ключи приложения не должны попадать в контекст агента.
Приложению может быть нужен ключ отправки писем, а агенту, который меняет обработчик, обычно нужен формат вызова и тестовая заглушка. Если оба процесса запускаются с одним окружением, агент получает лишний доступ ещё до первой задачи. Секрет надо отделить от его рабочего процесса, доступных файлов и вывода команд.
Исключение файла из git защищает от коммита, но не от чтения агентом. Файл вне репозитория также остаётся доступен процессу, если у того есть право читать весь диск. Проверяемая изоляция задаёт разрешённые пути, окружение и инструменты; секрет не должен появляться в журнале команды или теста.
Входящее письмо, задача из трекера или содержимое сайта могут включать чужую инструкцию. Агент должен обрабатывать их как данные, а права инструмента ограничивает исполняющая система. OWASP рекомендует минимальные полномочия: для проверки отправки письма не нужен ключ, позволяющий управлять всей почтой.
Доступ проверяют по тому, что процесс действительно может получить.
OWASP Secrets Management и Excessive Agency; применение к нашим эпизодам авторское. Прочитано 07.10.2026.
После попадания секрета в контекст одной чистки файла недостаточно: старый ключ отзывают, новый выдают нужным потребителям и проверяют работу. Вопросы о данных людей разобраны в статье «Персональные данные и ИИ-агенты», а выбор места исполнения в статье «ИИ в закрытом контуре». Закрытый контур тоже требует проверки прав внутри него.
3. Другая модель ищет ошибку, а тест доказывает её.
Код и объяснение автора часто выглядят согласованно. Мы отдаём проверку другой модели в отдельном контексте: исходная задача, изменение кода, правила доступа и список запрещённых действий. Просим искать нарушение этих правил, а не подтверждать объяснение автора. Это наш способ проверки, а не требование NIST или гарантия независимости ошибок моделей.
Статический анализ кода, SAST, тоже нужен: он ищет известные признаки уязвимостей без выполнения приложения. По описанию OWASP, автоматическая проверка авторизации сложна; конфигурация за пределами кода может остаться вне анализа. Поэтому отсутствие замечаний сканера не отвечает на вопрос, может ли посторонний аккаунт получить чужую запись.
Этот вопрос проверяют на тестовых данных прямым запросом к серверу: без входа, с неподходящей ролью и с чужим объектом. Ожидаемый результат задают заранее: доступ запрещён, содержимое не возвращается. Замечание модели превращают в воспроизводимую проверку; инженер оценивает результат и исправление.
У разных проверок разные доказательства.
OWASP Source Code Analysis Tools и Authorization Cheat Sheet; порядок нашего ревью основан на опыте vibecoding.ru. Сверено 07.10.2026.
4. Опасное действие ждёт отдельного разрешения.
Удаление ящика требует подтверждённой выгрузки истории до удаления. Обещание «если что, восстановим» ничего не доказывает, пока выгрузку не открыли и не проверили. Для удаления данных или разрушительного изменения схемы нужен такой же конкретный ответ: что сохранено и проверено до исполнения.
Переключение DNS обычно можно вернуть, но оно немедленно меняет путь посетителей к проду. Поэтому стоп нужен и перед обратимыми действиями с большим воздействием. Общий заказ «перенести сервис» не должен одновременно разрешать каждое переключение и удаление по пути.
До разрешения агент готовит изменение, ожидаемый эффект и проверку результата. Право выполнить опасный шаг остаётся у человека или отдельного процесса согласования. Если у агента уже есть неограниченный ключ, фраза «жди команды» оставляет запрет на его усмотрение; ограничение должно проверяться при вызове инструмента.
Разрешают конкретный шаг после проверки конкретного результата.
OWASP Excessive Agency, наши эпизоды М14 и М19. Это предлагаемые условия допуска, а не отчёт о внедрении всех этих гейтов.
5. Три замка входят в полный цикл безопасности.
Ограничить секреты, проверить код и согласовать действие нужно до работы с продом. Но дальше остаются зависимости, уязвимости приложения, наблюдение за доступом и восстановление после сбоя. Организация безопасной разработки должна охватывать весь этот цикл.
Для своей карты безопасности мы используем NIST CSF 2.0: управление, выявление, защита, обнаружение, реагирование и восстановление. Это шесть функций рамки управления рисками. Таблица ниже переводит их в вопросы про агентов; такой перевод наш, NIST не предписывает проверку кода другой моделью.
Список правил легче показать, чем след их исполнения. Например, запись «ключи защищены» стоит заменить подтверждением, кому ключ выдан и как его отозвать. После обнаружения лишнего доступа руководителю нужен статус исправления, а после удаления важна проверка восстановления, а не только сообщение «задача закрыта».
В каждой зоне руководителю нужно свидетельство работы контроля.
NIST, релиз CSF 2.0 от 26.02.2024, прочитан 07.10.2026. Вопросы и свидетельства в таблице предложены редакцией.
6. Допуск проверяют на тестовом проекте до доступа к проду.
Первая задача должна позволять проверить ограничения без боевых ключей и данных клиентов. Агент меняет небольшой участок кода, проверяющий ищет нарушение границ, инженер оценивает результат. Так руководитель получает основания для расширения доступа, а не обещание, что команда «настроила ИИ».
В постановке задач агенту заранее называют запрещённое действие и результат проверки. Например: обработчик должен отказать постороннему аккаунту, а тест отправляет запрос напрямую, минуя экран. Показать вход разрешённого пользователя для такого допуска недостаточно.
Решение о расширении доступа принимает руководитель разработки вместе с ответственным за безопасность. У них должны остаться результаты проверок и список неразрешённых действий. Второй агент с сообщением «всё хорошо» не заменяет эти материалы.
Допуск расширяют после результатов, а не после уверенного ответа агента.
Редакционный порядок допуска по разобранным эпизодам и рекомендациям OWASP; это предложение для пилота, не сертификат продукта.
Если сначала нужно оценить, как у вас устроены задачи и проверки, пройдите тест для руководителя. Он помогает оценить организацию разработки; безопасность конкретного продукта проверяют отдельно по его коду, правам и среде.
Для потока разработки есть подписка на разработку: «Один проект» и «Все проекты». Код остаётся в репозитории клиента. В FAQ сервиса на 7 октября 2026 указано: код не идёт в обучение моделей, запросы хранятся 30 дней. Эту формулировку и условия доступа стоит проверить при согласовании работы.
Живая страница /services, проверена 07.10.2026 в 19:30 МСК. Здесь приведены условия сервиса; это не общая политика всех ИИ-моделей.
7. Частые вопросы
Что такое безопасная разработка программного обеспечения?+
Процесс, в котором требования к безопасности проходят через проектирование, код, проверки, выпуск и работу приложения. Для агентов добавляется проверка их собственных прав: доступ к коду не равен доступу к секретам и операциям в проде.
SAST достаточно для безопасности веб-приложения?+
Нет. Статический анализ ищет опасные признаки в коде. Права конкретного пользователя, настройки среды и запрещённые операции проверяют отдельно. Отчёт SAST полезен как одно из свидетельств приёмки.
Другая модель гарантирует безопасный код?+
Нет. Модели могут повторить одну ошибку. Отдельный контекст и другая модель помогают организовать повторную проверку; найденный риск подтверждают тестом, а решение принимает инженер.
Это инструкция по соответствию ГОСТ Р 56939-2024?+
Нет. Ссылка на официальную карточку стандарта есть в источниках. Сертификации по ГОСТ у нашего проекта нет; оценку соответствия в этом материале мы не проводим.
Нужно ли давать проверяющему боевые ключи?+
Обычно для ревью нужны правила выдачи прав, код и тестовые значения. Проверяющий может установить лишний доступ без боевого ключа. Необходимость работы с боевым секретом требует отдельного допуска.
Можно ли обойтись без инженера, если проверяют два агента?+
В описанном порядке инженер задаёт границы, оценивает доказательства и отвечает за допуск. Количество агентов само по себе не создаёт ответственного за права и исполнение опасного шага.
Источники
- OWASP, Secrets Management Cheat Sheet · прочитано 07.10.2026 — официальные рекомендации
- OWASP, LLM06:2025 Excessive Agency · прочитано 07.10.2026 — официальные рекомендации
- OWASP, Authorization Cheat Sheet · прочитано 07.10.2026 — официальные рекомендации
- OWASP, Source Code Analysis Tools · прочитано 07.10.2026 — официальные рекомендации
- NIST, релиз CSF 2.0 · 26.02.2024, прочитано 07.10.2026 — официальный релиз
- Росстандарт, карточка ГОСТ Р 56939-2024 · прочитано 07.10.2026 — официальный каталог
- vibecoding.ru, условия разработки и FAQ · 07.10.2026, 19:30 МСК — наш сервис
- vibecoding.ru, устройство машины и публичные замеры · 07.10.2026. Подробности эпизодов взяты из собственных непубличных журналов; /open не подтверждает их независимо — наш опыт
Запомнить
1. Агенту дают права под задачу. Проверьте доступные файлы, окружение, инструменты и вывод команд до работы с боевыми ключами.
2. Проверку отделяют от написания. Дайте другой модели правила доступа и превратите замечания в воспроизводимые тесты.
3. Опасный шаг требует собственного разрешения. Убедитесь, что исполняющая система проверяет его, а сохранённые данные можно открыть.
4. Три замка включают в полный цикл. Назначьте ответственного за обнаружение, остановку, отзыв ключей и восстановление.
5. Допуск расширяют по доказательствам. Сохраните результаты пилота и список действий, на которые агент ещё не получил прав.