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- 의미: 발견 사항은 자체적으로 즉각적인 위협을 나타내지 않는 사소한 보안 위험 또는 심층 방어 위생의 일반적인 부족을 나타냅니다.
- 낮음으로 분류되는 이유: 악용 가능성이 매우 낮거나 영향이 최소화됩니다. 발견 항목은 일반적으로 직접 손상보다는 정찰 또는 구성 지문 인식에 공격자가 사용하며 임의 코드를 실행하거나 민감한 애플리케이션 데이터를 무단 반출하는 데 사용할 수 없습니다.
작업공간 유지보수
로컬 상태 추적 파일을 재설정하고 임시 실행 캐시를 정리하려면 다음 안내를 따르세요.
cm clean