CodeMender는 확인된 취약점에 대한 소스 코드 패치를 자동으로 생성, 검증, 적용하고 로컬 샌드박스에서 테스트하여 회귀를 방지할 수 있습니다.
취약점 수정사항 생성
cm fix를 사용하여 확인된 발견 사항에 대한 검증된 보안 패치를 생성합니다.
cm fix FINDING_ID
cm fix를 실행하면 CodeMender가 다음 검증 단계를 실행합니다.
- 클라우드 호스팅 추론 엔진을 사용하여 패치 후보를 생성 합니다.
- 로컬 샌드박스 내의 소스 코드 사본에 패치를 적용 합니다.
- 구성된
build.command를 실행하여 프로젝트가 빌드되고 단위 테스트가 통과되도록 코드베이스를 컴파일하고 테스트 합니다. - 확인된 PoC 익스플로잇을 다시 실행 하여 취약점을 더 이상 악용할 수 없는지 확인합니다.
기본적으로 CodeMender는 각 파일 수정사항을 작업공간의 디스크에 쓰기 전에 확인하라는 메시지를 표시합니다. 모든 검사가 통과되면 확인된 패치가 작업공간에 적용되고 스테이징할 준비가 됩니다.
플래그 수정
- 수정 컨텍스트 제공 (
-c/--context): 아키텍처 제약조건 또는 코딩 가이드라인을 제공합니다.cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
- 쓰기 자동 승인 (
-y/--yes): 수정 프로세스 중에 모든 파일 쓰기 및 프롬프트를 자동으로 승인합니다. 참고:cm fix FINDING_ID -y
config.yaml에서confirm_writes: false를 설정하여 대화형 쓰기 프롬프트를 전역으로 사용 중지할 수도 있습니다. - 캐시 우회 (
--no-cache): CodeMender가 새 패치를 생성하도록 강제합니다.cm fix FINDING_ID --no-cache
로컬 VCS diff 검사 및 관리
CodeMender에는 패치로 도입된 코드 변경사항을 커밋하기 전에 검사, 스테이징, 관리하는 데 도움이 되는 기본 제공 VCS 명령어가 포함되어 있습니다.
저장소 상태 보기: 로컬 작업공간에서 CodeMender가 수정한 파일 또는 생성한 파일을 확인합니다.
cm vcs status
diff 검사: 에이전트에서 생성한 커밋되지 않은 모든 코드 수정사항의 줄별 통합 diff를 검토합니다.
cm vcs diff
변경사항 스테이징: 확인된 패치 수정사항을 커밋할 수 있도록 로컬 스테이징 환경에 추가합니다.
cm vcs stage
세션 수정사항 되돌리기: 현재 세션 중에 생성된 모든 로컬 파일 수정사항을 삭제하고 저장소를 기준 상태로 복원합니다.
cm vcs reset