보안 발견 사항 수정 및 검증
승인된 발견 사항을 최소한의 패치와 집중적인 회귀 증거로 전환합니다.
Codex Security를 사용하여 승인된 보안 발견 사항을 범위가 명확하고 검증된 패치로 전환하세요. Security 워크벤치에서 작업하거나 프롬프트, 명령줄 또는 CI/CD에서 수정 워크플로를 실행할 수 있습니다. Codex는 문제를 검증하고, 테스트가 안전하고 실용적인 경우 수정 전에는 실패하고 수정 후에는 통과하는 집중적인 회귀 테스트를 추가합니다. 또한 정상적인 동작이 계속 작동하는지도 확인합니다. 회귀 테스트가 안전하지 않거나 실행 불가능한 경우 Codex는 증거의 공백을 기록하고 대신 반복 실행할 수 있는 가장 강력한 검증 산출물을 제공합니다.
먼저 승인된 발견 사항 하나를 수정하여 패치와 검증의 품질을 평가하세요. 워크플로가 기준을 충족하면 각 발견 사항을 별도의 작업이나 CI/CD 작업에서 처리하여 더 많은 승인된 발견 사항으로 확장하세요. 각 수정의 범위를 제한하면 코드 변경 사항과 증거를 더 쉽게 검토할 수 있습니다.
UI에서 발견 사항 수정하기
Findings에서 승인된 발견 사항을 열거나 Scans에서 완료된 스캔을 여세요. 증거를 검토한 다음 Patch를 사용하여 범위가 명확한 수정 하나를 생성하고 검토한 뒤 적용하고 검증하세요.
범위가 명확한 패치 생성
발견 사항을 열고 Patch 탭을 선택한 다음 Generate patch를 선택합니다. Codex는 가능한 경우 문제를 검증하거나 재현하고, 선택한 체크아웃을 수정하지 않은 채 패치 산출물을 작성합니다.
제안된 diff 검토
변경된 모든 소스, 회귀 테스트 및 검증 산출물을 확인합니다. 광범위한 리팩터링, 관련 없는 정리 또는 다른 보안 제어를 약화하는 변경은 거부하세요.
로컬에서 패치 적용
diff에 문제가 없을 때만 Apply patch를 선택합니다. Codex는 생성된 패치를 그대로 작업 트리에 적용하고 해당 상태를 기록합니다. 계속하기 전에 작업 트리의 diff를 검토하세요.
수정 검증
Verify fix를 선택합니다. Codex는 원래 재현 절차 또는 사용 가능한 가장 강력한 익스플로잇 검사를 다시 실행합니다. 회귀 테스트가 안전하고 실용적인 경우 Codex는 수정 전에는 실패하고 수정 후에는 통과하는지 확인합니다. 테스트가 안전하지 않거나 실행 불가능한 경우 Codex는 증거의 공백을 기록하고 대신 반복 실행할 수 있는 가장 강력한 검증 산출물을 제공합니다. 또한 정상적인 동작, 인접한 우회 경로 및 관련 저장소 테스트도 확인합니다.
발견 사항을 신중하게 종료
검증이 완료되어도 발견 사항이 자동으로 종료되지는 않습니다. 명령, 결과 및 남아 있는 증거의 공백을 검토한 다음 정확한 사유를 지정하여 발견 사항을 종료하거나 추가 작업을 위해 열린 상태로 유지하세요.
CLI에서 발견 사항 수정하기
스캔, 티켓, 권고문, 공개 보고, 보안 평가 또는 내부 검토에서 얻은 발견 사항이 이미 있다면 Codex CLI를 사용하세요.
아래 명령은 Codex Security가 codex exec에서 사용하는
CODEX_HOME에 이미 설치되어 있다고 가정합니다. 새 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_HOME에 플러그인을 프로비저닝한 후 프롬프트를 codex exec에 전달하세요.
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_HOME에 Codex Security를 프로비저닝하세요.
아래 명령은 설치된 플러그인을 사용하며 플러그인 자체를
설치하지는 않습니다.
CI/CD에서는 변경 사항 스캔과 수정을 분리하고 스캔이 체크아웃을 변경하지 않도록 요구하세요. 완료된 스캔 디렉터리를 작업 산출물로 보존하고 발견 사항을 검토한 다음, 수정을 위해 승인된 각 발견 사항에 대해 별도의 Codex 작업 또는 작업을 시작하세요.
변경 사항 스캔과 수정 모두 --sandbox workspace-write을 사용하여 실행하세요.
스캔은 임시 산출물을 저장하기 위해 해당 권한이 필요하지만, 프롬프트에는
여전히 Do not modify the checkout을 요구해야 합니다. 수정에도 범위가 명확한 패치와 검증 증거를 작성하기 위해 동일한
권한이 필요합니다.
- 변경 사항의 기준 리비전과 헤드 리비전을 확인합니다.
- 체크아웃을 수정하지 않고 해당 diff에 대해
$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.'승인된 나머지 각 발견 사항에 대해 독립적인 작업에서 두 번째 명령을 반복하세요. 검증 후에는 일반적인 코드 검토 및 릴리스 절차를 통해 각 패치를 병합하세요.