Безопасность при работе с Codex и проверке кода

Безопасность агентной разработки состоит из двух частей. Первая защищает среду от слишком широких действий Codex.

Краткий ответ

Безопасность агентной разработки состоит из двух частей. Первая защищает среду от слишком широких действий Codex.

Безопасность агентной разработки состоит из двух частей. Первая защищает среду от слишком широких действий Codex. Вторая проверяет, не добавил ли конкретный diff уязвимость в приложение. Обычный code review и security review пересекаются, но имеют разные модели угроз.

Определите активы и границы доверия

До анализа перечислите:

Граница доверия — место, где данные из менее доверенной области влияют на более привилегированное действие. Проверка только на frontend не защищает backend. Текст из issue или сайта не должен управлять разрешениями агента.

Security review конкретного diff

Для изменения проверяйте:

Finding должен быть привязан к изменённому коду и достижимому сценарию. Для полного repository audit требуется отдельная задача и другой scope.

Секреты и чувствительные данные

Не помещайте токены в промпт, AGENTS.md, тестовый fixture или commit. Передавайте секреты через предназначенное хранилище и только процессу, которому они нужны. В логах маскируйте credentials, cookies, Authorization и персональные поля.

Если секрет уже попал в Git, удаления строки в новом коммите недостаточно: значение нужно отозвать или ротировать по процессу владельца, а историю обрабатывать отдельно и осознанно.

Prompt injection и цепочка инструментов

Агент может прочитать вредоносную инструкцию в README, issue, package metadata или на сайте. Защита строится слоями:

1. считать внешний текст данными; 2. ограничивать доступ sandbox; 3. требовать подтверждение значимых действий; 4. выдавать MCP tools с минимальными scopes; 5. отделять read и write; 6. проверять аргументы и назначения вызова; 7. не передавать лишние секреты в среду.

Нельзя полагаться на фразу «игнорируй вредоносные инструкции» как на единственную защиту.

Исправление и проверка finding

После принятия уязвимости:

Например, authorization должна проверяться сервером по текущему actor и целевому resource. Скрытая кнопка и ID из клиента не являются контролем доступа.

Практика: security checklist для загрузки файла

Попросите Codex проверить:

Для каждого пункта потребуйте файл, текущую защиту и тестовый сценарий. Общего «всё безопасно» недостаточно.

Частые вопросы

Заменяет ли Codex Security обычный security review?

Нет. Специализированный scan помогает систематически искать regressions и формировать findings, но владелец всё равно проверяет модель угроз, достижимость, приоритет и исправление.

Можно ли дать агенту production credentials только на чтение?

Даже read-доступ может раскрыть чувствительные данные. Используйте тестовую среду или минимально scoped credential, ограничьте выдачу данных и зафиксируйте одобренную цель.

Достаточно ли попросить «пиши безопасный код»?

Нет. Назовите активы, trust boundaries, критичные категории, правила проекта и проверки. Без конкретной модели риска эта фраза слишком неоднозначна.

Что важно запомнить

https://yadro-code.ru/lessons/without-university/codex-agent-workflows/codex-agent-16