코드 취약점 수정 및 차이 관리

CodeMender는 검증된 취약점에 대한 소스 코드 패치를 자동으로 생성, 검증, 적용하여 로컬 샌드박스에서 테스트하여 회귀를 방지할 수 있습니다.

취약점 수정사항 생성

cm fix를 사용하여 확인된 발견 사항에 대해 검증된 보안 패치를 생성합니다.

cm fix FINDING_ID

cm fix을 실행하면 CodeMender가 다음 검증 단계를 실행합니다.

  1. 클라우드 호스팅 추론 엔진을 사용하여 패치 후보를 생성합니다.
  2. 로컬 샌드박스 내의 소스 코드 사본에 패치를 적용합니다.
  3. 구성된 build.command를 실행하여 코드베이스를 컴파일하고 테스트하여 프로젝트가 빌드되고 단위 테스트가 통과하는지 확인합니다.
  4. 확인된 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 차이 검사 및 관리

CodeMender에는 패치로 도입된 코드 변경사항을 커밋하기 전에 검사, 스테이징, 관리하는 데 도움이 되는 기본 제공 VCS 명령어가 포함되어 있습니다.

  • 저장소 상태 보기: 로컬 작업공간에서 CodeMender가 수정한 파일 또는 생성한 파일을 확인합니다.

    cm vcs status

  • 차이점 검사: 에이전트가 생성한 커밋되지 않은 모든 코드 수정사항의 통합된 차이점을 줄별로 검토합니다.

    cm vcs diff

  • 변경사항 스테이징: 커밋할 수 있도록 확인된 패치 수정사항을 로컬 스테이징 환경에 추가합니다.

    cm vcs stage

  • 세션 수정사항 되돌리기: 현재 세션 중에 생성된 모든 로컬 파일 수정사항을 삭제하고 저장소를 기준 상태로 복원합니다.

    cm vcs reset