세션 관리 및 보고서 내보내기

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 report

HTML 보고서

형식이 지정된 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