Mengelola sesi dan mengekspor laporan

CodeMender melacak setiap upaya pemindaian, verifikasi, dan perbaikan sebagai sesi stateful yang didukung oleh database SQLite lokal (state.db). Anda dapat memeriksa sesi aktif, melanjutkan tugas yang dijeda, dan mengekspor laporan temuan mendetail.

Pengelolaan sesi

CodeMender CLI mempertahankan sesi eksekusi stateful secara lokal, sehingga Anda dapat melacak tugas aktif, melanjutkan alur kerja yang terganggu, dan mengekspor laporan keamanan.

Mencantumkan sesi aktif dan sebelumnya

Jalankan perintah berikut untuk mencantumkan semua sesi, statusnya (RUNNING, WAITING_FOR_TOOL, COMPLETED, FAILED, CANCELLED), dan jalur target:

cm session list

Melanjutkan sesi yang terganggu

Jika sesi dijeda karena gangguan jaringan atau kegagalan langkah, lanjutkan dari tahap checkpoint terbaru:

cm session resume SESSION_ID

Membatalkan sesi yang sedang berjalan

Untuk menghentikan sesi aktif dan menghentikan eksekusi komputasi agen backend:

cm session cancel SESSION_ID

Melihat laporan dan mengekspor patch

Menampilkan temuan sesi, status verifikasi, dan detail patch menggunakan cm report.

Format output

Tabel terminal (default)

Daftar temuan yang diringkas.

cm report

Laporan HTML

Membuat laporan HTML yang diformat. Gunakan --open (atau -o) untuk meluncurkannya secara otomatis di browser default Anda.

cm report --format html --open

Markdown

Membuat laporan Markdown yang disesuaikan dengan GitHub.

cm report --format md

JSON

Mengekspor semua detail temuan sesi sebagai JSON mentah.

cm report --format json

SARIF

Mengekspor temuan dalam format SARIF standar (v2.1.0) untuk integrasi dengan alat keamanan lainnya.

cm report --format sarif

Flag pemfilteran dan pengurutan

  • Menampilkan patch kode yang diusulkan (--patches): Menyertakan diff terpadu lengkap dari perbaikan yang dibuat dalam laporan. bash cm report --patches
  • Memfilter berdasarkan tingkat keparahan (--severity): Melihat temuan yang cocok dengan tingkat (CRITICAL, HIGH, MEDIUM, LOW). bash cm report --severity HIGH
  • Memfilter berdasarkan status (--status): Melihat temuan yang cocok dengan status (OPEN, FIXED, DISMISSED, REOPENED). bash cm report --status OPEN
  • Memfilter berdasarkan sesi (--session): Melihat temuan dari awalan ID sesi tertentu.
    cm report --session SESSION_ID_PREFIX
  • Menampilkan artefak agen (--artifacts): Menyertakan jalur ke artefak run yang dibuat agen (seperti log, skrip eksploitasi). bash cm report --artifacts
  • Mengurutkan temuan (--sort): Mengurutkan hasil berdasarkan severity (default) atau time. bash cm report --sort time
  • Memfilter berdasarkan ID temuan: Meneruskan ID temuan tertentu (atau awalan) sebagai argumen posisi untuk melihat detail satu temuan.
    cm report FINDING_ID_PREFIX

Status temuan kerentanan

CodeMender melacak temuan di seluruh status kerentanan berikut:

  • OPEN
    • Artinya: Kerentanan telah berhasil terdeteksi selama pemindaian (atau diimpor dari alat pihak ketiga), tetapi belum diverifikasi, di-patch, atau ditandai sebagai tidak aktif.
    • Cara penanganannya: Ini adalah status awal dari setiap celah keamanan yang baru ditemukan. Kerentanan dalam status OPEN secara aktif dimasukkan ke dalam antrean untuk verifikasi (cm verify) atau patching (cm fix).
  • FIXED
    • Artinya: CodeMender telah membuat patch untuk kerentanan, menerapkan diff ke codebase lokal Anda, dan berhasil mengompilasi serta menjalankan pengujian verifikasi untuk membuktikan bahwa eksploitasi tidak lagi berhasil.
    • Cara penanganannya: Setelah patch dikonfirmasi untuk menyelesaikan masalah tanpa merusak logika kode yang ada, CodeMender akan mengubah status temuan menjadi FIXED. Status ini akan tetap ada kecuali jika pemindaian mendatang mendeteksi regresi.
  • DISMISSED
    • Artinya: Kerentanan ditetapkan sebagai tidak aktif, baik karena diidentifikasi sebagai positif palsu atau sudah diperbaiki, atau temuan tersebut tidak memiliki tingkat kepercayaan yang cukup untuk dikonfirmasi sebagai dapat dieksploitasi (termasuk terhadap model ancaman project Anda jika model tersebut diberikan selama orientasi).
    • Cara penanganannya: Menandai item sebagai DISMISSED akan menonaktifkan pemberitahuan mendatang dan mengecualikan temuan dari output CLI aktif Anda dengan cm report --status OPEN. Menjalankan kembali cm verify pada temuan yang ditolak akan memeriksa ulang atau memulihkan item yang ditolak.
  • REOPENED
    • Artinya: Kerentanan yang sebelumnya ditandai sebagai FIXED atau DISMISSED telah terdeteksi kembali dalam pemindaian codebase berikutnya.
    • Cara penanganannya: Status ini menunjukkan regresi (seperti penggabungan git yang buruk yang mengembalikan patch) atau strategi mitigasi yang gagal. Status ini menandai masalah untuk dievaluasi ulang segera dan mengharuskan developer meninjau proses patching.

Tingkat keparahan kerentanan

CodeMender mengategorikan temuan ke dalam tingkat keparahan berikut:

  • CRITICAL
    • Artinya: Kerentanan menimbulkan risiko langsung dan parah pada aplikasi atau infrastruktur yang mendasarinya, yang berpotensi menyebabkan kompromi sistem penuh.
    • Alasan dikategorikan sebagai Critical: Kerentanan ini memenuhi batas dampak konsekuensi tinggi (seperti Eksekusi Kode Jarak Jauh atau penulisan tingkat root), dapat dijangkau langsung dari batas yang tidak tepercaya tanpa prasyarat, dan didukung oleh analisis aliran taint dengan tingkat kepercayaan tinggi atau Bukti Konsep (PoC) yang divalidasi yang dieksekusi di dalam sandbox CodeMender.
  • HIGH
    • Artinya: Kerentanan ini mewakili celah keamanan parah yang dapat menyebabkan kontrol sistem yang tidak sah, eskalasi akses, atau eksposur data yang signifikan, tetapi memerlukan kondisi tertentu untuk dieksekusi.
    • Alasan dikategorikan sebagai High: Meskipun dampak eksploitasi tinggi (misalnya, pembacaan database arbitrer atau pembajakan administratif), eksploitasi sedikit dibatasi. Eksploitasi mungkin mengharuskan penyerang memiliki autentikasi pengguna standar, bergantung pada konfigurasi sistem tertentu, atau memerlukan rangkaian tindakan yang sangat presisi.
  • MEDIUM
    • Artinya: Kerentanan ini menimbulkan risiko sedang, biasanya mengekspos data yang dibatasi atau memungkinkan gangguan lokal, tetapi berisiko rendah bagi sistem host.
    • Alasan dikategorikan sebagai Medium: Eksploitasi sangat dibatasi oleh jangkauan atau kompleksitas. Eksploitasi umumnya memerlukan interaksi pengguna aktif (seperti mengklik link berbahaya), hak istimewa yang mendalam, atau kondisi yang kompleks untuk melewati lapisan pertahanan, dan area yang terpengaruh pada akhirnya dibatasi.
  • LOW
    • Artinya: Temuan ini mewakili risiko keamanan kecil atau kurangnya kebersihan pertahanan mendalam secara umum yang tidak menimbulkan ancaman langsung dengan sendirinya.
    • Alasan dikategorikan sebagai Low: Temuan ini memiliki eksploitasi yang sangat rendah atau dampak minimal. Temuan ini biasanya digunakan oleh penyerang untuk pengintaian atau sidik jari konfigurasi, bukan kompromi langsung, dan tidak dapat digunakan untuk menjalankan kode arbitrer atau mengeksfiltrasi data aplikasi sensitif.

Pemeliharaan ruang kerja

Untuk mereset file pelacakan status lokal dan membersihkan cache eksekusi sementara, jalankan:

cm clean