Исправление и проверка проблем безопасности
Превращайте принятые проблемы в минимальные исправления с целевыми доказательствами отсутствия регрессий.
Используйте Codex Security, чтобы превратить принятую проблему безопасности в целевое, проверенное исправление. Работать можно в рабочей среде Security или запустить процесс устранения проблемы с помощью запроса, из командной строки либо в CI/CD. Codex проверяет проблему и, когда тестирование безопасно и целесообразно, добавляет целевой регрессионный тест, который не проходит до внесения исправления и проходит после него. Он также проверяет, что допустимое поведение по-прежнему работает. Если регрессионный тест небезопасен или невыполним, Codex фиксирует пробел в доказательствах и вместо него предоставляет наиболее надёжный воспроизводимый артефакт проверки.
Сначала исправьте одну принятую проблему, чтобы оценить качество исправления и проверки. Когда процесс будет соответствовать вашим требованиям, распространите его на другие принятые проблемы, обрабатывая каждую из них в отдельной задаче или задании CI/CD. Ограничение области каждого исправления упрощает проверку изменений кода и доказательств.
Исправление проблемы в пользовательском интерфейсе
Откройте принятую проблему в разделе Findings или в завершённом сканировании в разделе Scans. Изучите доказательства, затем используйте Patch, чтобы создать, проверить, применить и подтвердить одно целевое исправление.
Создайте целевое исправление
Откройте проблему, выберите вкладку Patch, а затем — Generate patch. Codex проверит или воспроизведёт проблему, если это возможно, и создаст артефакт исправления, не изменяя выбранную рабочую копию.
Проверьте предлагаемые изменения
Изучите каждый изменённый исходный файл, регрессионный тест и артефакт проверки. Отклоняйте масштабные рефакторинги, несвязанные изменения по очистке кода и изменения, ослабляющие другие средства защиты.
Примените исправление локально
Выбирайте Apply patch только после того, как убедитесь в приемлемости изменений. Codex применит точно созданное исправление к рабочему дереву и зафиксирует это состояние. Перед продолжением проверьте изменения в рабочем дереве.
Проверьте исправление
Выберите Verify fix. Codex повторно запустит исходный сценарий воспроизведения или наиболее надёжную доступную проверку эксплуатации уязвимости. Если регрессионный тест безопасен и целесообразен, Codex проверит, что он не проходит до внесения исправления и проходит после него. Если тест небезопасен или невыполним, Codex зафиксирует пробел в доказательствах и вместо него предоставит наиболее надёжный воспроизводимый артефакт проверки. Он также проверит допустимое поведение, возможные способы обхода поблизости и соответствующие тесты репозитория.
Осознанно закройте проблему
Проверка не закрывает проблему автоматически. Изучите команды, результаты и оставшийся пробел в доказательствах, а затем закройте проблему, указав точную причину, или оставьте её открытой для дальнейшей работы.
Исправление проблемы с помощью CLI
Используйте Codex CLI, если у вас уже есть описание проблемы из сканирования, заявки, бюллетеня, сообщения об уязвимости, оценки безопасности или внутренней проверки:
Приведённые ниже команды предполагают, что Codex Security уже установлен в
CODEX_HOME, используемом codex exec. По умолчанию на новом исполнителе CI плагины
из marketplace не установлены.
Use $codex-security:fix-finding to fix finding <finding-id> from <report-path>. Validate the issue, make the smallest safe change, and add a focused regression test that fails before the fix and passes after it. If that test is unsafe or infeasible, record the proof gap and provide the strongest repeatable validation artifact instead. Verify that the issue no longer reproduces.Укажите известные источник, приёмник, контролируемые злоумышленником входные данные, последствия, ожидаемый инвариант, сценарий воспроизведения, затронутые файлы и команду проверки. Codex может изучить репозиторий, чтобы найти недостающие технические сведения, но должен запрашивать уточнение, прежде чем предполагать правила продукта или предполагаемый инвариант безопасности.
Для автоматизированного запуска передайте запрос в codex exec после получения
кода, предоставления отчёта о проблеме и подготовки плагина в этом
CODEX_HOME:
codex exec --sandbox workspace-write 'Use $codex-security:fix-finding to fix finding <finding-id> from <report-path>. Validate the issue, make the smallest safe change, and add a focused regression test that fails before the fix and passes after it. If that test is unsafe or infeasible, record the proof gap and provide the strongest repeatable validation artifact instead. Verify that the issue no longer reproduces.'Сканирование и исправление проблем в CI/CD
Подготовьте Codex Security в CODEX_HOME исполнителя перед вызовом этих
навыков. Приведённая ниже команда использует установленный плагин; она не устанавливает
сам плагин.
В CI/CD отделяйте сканирование изменений от устранения проблем и требуйте, чтобы сканирование не изменяло рабочую копию. Сохраните каталог завершённого сканирования как артефакт задания, проверьте найденные проблемы и запустите отдельную задачу или задание Codex для каждой проблемы, принятой к исправлению.
Запускайте и сканирование изменений, и устранение проблем с --sandbox workspace-write. Для
сохранения временных артефактов сканированию требуется это разрешение, однако его запрос всё равно должен
требовать Do not modify the checkout. Для устранения проблем требуется то же
разрешение на запись целевого исправления и доказательств проверки.
- Определите базовую и конечную ревизии для изменения.
- Запустите
$codex-security:security-diff-scanдля этих различий, не изменяя рабочую копию. - Сохраните полный каталог сканирования и выберите проблемы для исправления.
- Вызовите
$codex-security:fix-findingпо одному разу для каждой принятой проблемы. - Создайте одно целевое исправление и регрессионный тест, который не проходит до внесения исправления и проходит после него, либо зафиксируйте, почему такой тест небезопасен или невыполним.
- Независимо проверьте исходную проблему и допустимое поведение.
Сначала просканируйте изменение, не изменяя рабочую копию:
codex exec --sandbox workspace-write 'Use $codex-security:security-diff-scan to review changes from <base-revision> to <head-revision> for security regressions. Do not modify the checkout.'Затем исправьте одну принятую проблему из завершённого сканирования:
codex exec --sandbox workspace-write 'Use $codex-security:fix-finding to fix finding <finding-id> from <completed-scan-directory>. Validate the finding, generate one minimal patch, and add a focused regression test that fails before the fix and passes after it. If that test is unsafe or infeasible, record the proof gap and provide the strongest repeatable validation artifact instead. Verify that the issue no longer reproduces.'Повторите вторую команду в независимой задаче или задании для каждой оставшейся принятой проблемы. После проверки объедините каждое исправление с основной веткой в рамках обычного процесса проверки кода и выпуска.