CodeMender는 모든 검사, 확인, 수정 시도를 로컬 SQLite 데이터베이스 (state.db)로 지원되는 상태 저장 세션으로 추적합니다. 활성 세션을 검사하고, 일시중지된 작업을 재개하고, 자세한 결과 보고서를 내보낼 수 있습니다.
세션 관리
CodeMender CLI는 상태 저장 실행 세션을 로컬로 유지하므로 활성 작업을 추적하고, 중단된 워크플로를 재개하고, 보안 보고서를 내보낼 수 있습니다.
활성 세션 및 이전 세션 나열
다음 명령어를 실행하여 모든 세션, 상태 (RUNNING, WAITING_FOR_TOOL, COMPLETED, FAILED, CANCELLED), 타겟 경로를 나열합니다.
cm session list
중단된 세션 재개
네트워크 중단 또는 단계 실패로 인해 세션이 일시중지되면 최신 체크포인트 단계에서 다시 시작합니다.
cm session resume SESSION_ID
실행 중인 세션 취소
활성 세션을 종료하고 백엔드 에이전트 컴퓨팅 실행을 중지하려면 다음을 실행하세요.
cm session cancel SESSION_ID
보고서 보기 및 패치 내보내기
cm report를 사용하여 세션 결과, 확인 상태, 패치 세부정보를 표시합니다.
출력 형식
터미널 표 (기본값)
발견 항목의 요약 목록입니다.
cm reportHTML 보고서
형식이 지정된 HTML 보고서를 생성합니다. --open (또는 -o)를 사용하여 기본 브라우저에서 자동으로 실행합니다.
cm report --format html --open
마크다운
GitHub 스타일의 마크다운 보고서를 생성합니다.
cm report --format md
JSON
모든 세션 발견 사항 세부정보를 원시 JSON으로 내보냅니다.
cm report --format json
SARIF
다른 보안 도구와 통합하기 위해 표준 SARIF 형식 (v2.1.0)으로 발견 사항을 내보냅니다.
cm report --format sarif
플래그 필터링 및 정렬
- 제안된 코드 패치 표시 (
--patches): 생성된 수정사항의 전체 통합 차이를 보고서에 포함합니다.bash cm report --patches - 심각도별 필터링 (
--severity): 특정 수준 (CRITICAL,HIGH,MEDIUM,LOW)과 일치하는 발견 사항을 확인합니다.bash cm report --severity HIGH - 상태별 필터링 (
--status): 상태 (OPEN,FIXED,DISMISSED,REOPENED)와 일치하는 결과를 확인합니다.bash cm report --status OPEN - 세션별 필터링 (
--session): 특정 세션 ID 접두사의 결과를 확인합니다.cm report --session SESSION_ID_PREFIX
- 상담사 아티팩트 표시 (
--artifacts): 상담사가 생성한 실행 아티팩트 (예: 로그, 익스플로잇 스크립트)의 경로를 포함합니다.bash cm report --artifacts - 결과 정렬 (
--sort):severity(기본값) 또는time로 결과를 정렬합니다.bash cm report --sort time - 발견 ID로 필터링: 특정 발견 ID (또는 접두사)를 위치 인수로 전달하여 단일 발견의 세부정보를 확인합니다.
cm report FINDING_ID_PREFIX
취약점 발견 항목 상태
CodeMender는 다음 취약점 상태에서 발견 항목을 추적합니다.
OPEN- 의미: 취약점이 스캔 중에 감지되었거나 서드 파티 도구에서 가져왔지만 아직 확인되거나 패치가 적용되지 않았거나 비활성으로 표시되지 않았습니다.
- 처리 방법: 새로 발견된 보안 결함의 초기 상태입니다.
OPEN상태의 취약점은 확인 (cm verify) 또는 패치 (cm fix)를 위해 적극적으로 대기열에 추가됩니다.
FIXED- 의미: CodeMender가 취약점에 대한 패치를 생성하고, 로컬 코드베이스에 차이를 적용하고, 익스플로잇이 더 이상 성공하지 않음을 증명하기 위해 확인 테스트를 컴파일하고 실행했습니다.
- 처리 방법: 패치가 기존 코드 로직을 중단하지 않고 문제를 해결하는 것으로 확인되면 CodeMender는 발견 항목을
FIXED로 전환합니다. 향후 검사에서 회귀가 감지되지 않는 한 이 상태로 유지됩니다.
DISMISSED- 의미: 오탐으로 식별되었거나 이미 수정되었기 때문에 또는 발견 결과의 신뢰도가 악용 가능함을 확인하기에 충분하지 않기 때문에 (온보딩 중에 제공된 경우 프로젝트의 위협 모델에 대한 확인 포함) 취약점이 비활성으로 지정됩니다.
- 처리 방법: 항목을
DISMISSED로 표시하면 향후 알림이 음소거되고cm report --status OPEN를 사용한 활성 CLI 출력에서 발견 사항이 제외됩니다. 해결된 발견 사항에 대해cm verify을 다시 실행하면 해결된 항목이 다시 검사되거나 복원됩니다.
REOPENED- 의미: 이전에
FIXED또는DISMISSED로 표시된 취약점이 후속 코드베이스 검사에서 다시 감지되었습니다. - 처리 방법: 이 상태는 회귀 (예: 패치를 되돌리는 잘못된 git 병합) 또는 실패한 완화 전략을 나타냅니다. 즉시 재평가하도록 문제를 신고하며 개발자가 패치 프로세스를 검토해야 합니다.
- 의미: 이전에
취약점 심각도 수준
CodeMender는 발견 항목을 다음 심각도 수준으로 분류합니다.
CRITICAL- 의미: 취약점으로 인해 애플리케이션 또는 기본 인프라에 즉각적이고 심각한 위험이 발생하여 시스템이 완전히 손상될 수 있습니다.
- '심각'으로 분류되는 이유: 결과가 심각한 영향 (예: 원격 코드 실행 또는 루트 수준 쓰기) 임계값을 충족하고, 사전 요구사항 없이 신뢰할 수 없는 경계에서 직접 도달할 수 있으며, 신뢰도가 높은 테인트 흐름 분석 또는 CodeMender의 샌드박스 내에서 실행된 검증된 개념 증명 (PoC)으로 뒷받침됩니다.
HIGH- 의미: 이 취약점은 무단 시스템 제어, 권한 에스컬레이션 또는 심각한 데이터 노출로 이어질 수 있는 심각한 보안 결함을 나타내지만 실행하려면 특정 조건이 필요합니다.
- 높음으로 분류되는 이유: 악용의 영향은 높지만 (예: 임의 데이터베이스 읽기 또는 관리자 가로채기) 악용 가능성은 약간 제한되어 있습니다. 공격자가 표준 사용자 인증을 받아야 하거나 특정 시스템 구성을 사용해야 하거나 매우 정확한 일련의 작업이 필요할 수 있습니다.
MEDIUM- 의미: 이 취약성은 일반적으로 제한된 데이터를 노출하거나 현지화된 중단을 허용하지만 호스트 시스템에는 위험이 낮은 보통 위험을 나타냅니다.
- '보통'으로 분류되는 이유: 익스플로잇이 도달 가능성 또는 복잡성에 의해 크게 제한됩니다. 일반적으로 방어 레이어를 우회하려면 활성 사용자 상호작용 (예: 악성 링크 클릭), 심층 권한 또는 복잡한 조건이 필요하며 최종적으로 영향을 받는 영역이 제한됩니다.
LOW- 의미: 발견 사항은 경미한 보안 위험 또는 자체적으로 즉각적인 위협을 나타내지 않는 일반적인 심층 방어 위생 부족을 나타냅니다.
- '낮음'으로 분류되는 이유: 악용 가능성이 매우 낮거나 영향이 최소화됩니다. 이 발견 사항은 일반적으로 공격자가 직접적인 보안 침해보다는 정찰 또는 구성 지문 인식에 사용하며, 임의의 코드를 실행하거나 민감한 애플리케이션 데이터를 유출하는 데는 사용할 수 없습니다.
Workspace 유지관리
로컬 상태 추적 파일을 재설정하고 임시 실행 캐시를 정리하려면 다음을 실행하세요.
cm clean