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

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 diff 검사 및 관리

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

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

    cm vcs status

  • diff 검사: 에이전트에서 생성한 커밋되지 않은 모든 코드 수정사항의 줄별 통합 diff를 검토합니다.

    cm vcs diff

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

    cm vcs stage

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

    cm vcs reset