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 terhenti

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

cm session resume SESSION_ID

Anda dapat meneruskan --yes (-y), --sandbox, --allow-all-paths, --allow-all-commands, dan --bypass-warning ke cm session resume untuk mengontrol perintah konfirmasi, sandboxing, dan batas kebijakan untuk operasi yang dilanjutkan.

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 ringkasan temuan.

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 bergaya GitHub.

cm report --format md

JSON

Ekspor semua detail temuan sesi sebagai JSON mentah.

cm report --format json

SARIF

Ekspor temuan dalam format SARIF standar (v2.1.0) untuk diintegrasikan dengan alat keamanan lainnya.

cm report --format sarif

Pemfilteran dan pengurutan flag

  • Menampilkan patch kode yang diusulkan (--patches): Sertakan diff terpadu lengkap dari perbaikan yang dihasilkan dalam laporan. bash cm report --patches
  • Filter menurut tingkat keparahan (--severity): Melihat temuan yang cocok dengan level (CRITICAL, HIGH, MEDIUM, LOW). bash cm report --severity HIGH
  • Filter menurut status (--status): Lihat temuan yang cocok dengan status (OPEN, FIXED, DISMISSED, REOPENED). bash cm report --status OPEN
  • Filter menurut sesi (--session): Melihat temuan dari awalan ID sesi tertentu.
    cm report --session SESSION_ID_PREFIX
  • Tampilkan artefak agen (--artifacts): Sertakan jalur ke artefak operasi yang dihasilkan agen (seperti log, skrip eksploitasi). bash cm report --artifacts
  • Urutkan temuan (--sort): Urutkan hasil menurut severity (default) atau time. bash cm report --sort time
  • Memfilter menurut ID temuan: Teruskan ID temuan (atau awalan) tertentu sebagai argumen posisional 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 dideteksi 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 kelemahan 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, serta berhasil mengompilasi dan menjalankan pengujian verifikasi untuk membuktikan bahwa eksploitasi tidak lagi berhasil.
    • Cara penanganannya: Setelah patch dikonfirmasi dapat menyelesaikan masalah tanpa merusak logika kode yang ada, CodeMender akan mentransisikan temuan ke FIXED. Status ini akan tetap dipertahankan 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 keyakinan yang cukup untuk dikonfirmasi sebagai dapat dieksploitasi (termasuk terhadap pembuatan model ancaman project Anda jika disediakan selama orientasi).
    • Cara penanganannya: Menandai item sebagai DISMISSED akan menonaktifkan pemberitahuan di masa mendatang dan mengecualikan temuan dari output CLI aktif Anda dengan cm report --status OPEN. Menjalankan ulang cm verify pada temuan yang ditutup akan memeriksa ulang atau memulihkan item yang ditutup.
  • 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. Hal ini menandai masalah untuk segera dievaluasi ulang dan mengharuskan developer meninjau proses patching.

Tingkat keparahan kerentanan

CodeMender mengategorikan temuan ke dalam tingkat keparahan berikut:

  • CRITICAL
    • Artinya: Kerentanan ini menimbulkan risiko langsung dan serius terhadap aplikasi atau infrastruktur yang mendasarinya, yang berpotensi menyebabkan penyusupan sistem secara menyeluruh.
    • Alasan dikategorikan sebagai Kritis: Kerentanan ini memenuhi batas dampak berkonsekuensi tinggi (seperti Remote Code Execution atau penulisan level root), dapat langsung dijangkau dari batas yang tidak tepercaya tanpa prasyarat, dan didukung oleh analisis taint-flow yang sangat meyakinkan atau Bukti Konsep (PoC) tervalidasi yang dijalankan di dalam sandbox CodeMender.
  • HIGH
    • Artinya: Kerentanan ini merupakan kelemahan keamanan serius yang dapat menyebabkan kontrol sistem yang tidak sah, eskalasi hak istimewa, atau eksposur data yang signifikan, tetapi memerlukan kondisi tertentu untuk dieksekusi.
    • Alasan dikategorikan sebagai Tinggi: Meskipun dampak eksploitasi tinggi (misalnya, pembacaan database arbitrer atau pembajakan administratif), eksploitabilitasnya sedikit dibatasi. Kerentanan ini mungkin mengharuskan penyerang memiliki autentikasi pengguna standar, bergantung pada konfigurasi sistem tertentu, atau memerlukan rangkaian tindakan yang sangat tepat.
  • MEDIUM
    • Artinya: Kerentanan ini menimbulkan risiko sedang, biasanya mengekspos data yang dibatasi atau memungkinkan gangguan yang terlokalisasi, tetapi berisiko rendah terhadap sistem host.
    • Alasan dikategorikan sebagai Sedang: Eksploitasi sangat dibatasi oleh keterjangkauan atau kompleksitas. Umumnya, kerentanan ini memerlukan interaksi pengguna yang aktif (seperti mengklik link berbahaya), hak istimewa yang mendalam, atau kondisi kompleks untuk mengabaikan lapisan pertahanan, dan area yang terpengaruh pada akhirnya dibatasi.
  • LOW
    • Artinya: Temuan ini menunjukkan risiko keamanan kecil atau kurangnya kebersihan defense-in-depth secara umum yang tidak menimbulkan ancaman langsung.
    • Alasan dikategorikan sebagai Rendah: Kerentanan ini memiliki eksploitabilitas yang sangat rendah atau dampak minimal. Temuan ini biasanya digunakan oleh penyerang untuk pengintaian atau sidik jari konfigurasi, bukan penyusupan langsung, dan tidak dapat digunakan untuk mengeksekusi kode arbitrer atau memindahkan data aplikasi yang sensitif.

Mengumpulkan data diagnostik untuk dukungan

Jika Anda menghubungi dukungan terkait masalah pada CodeMender, jalankan cm support-bundle untuk mengumpulkan data diagnostik yang diperlukan dukungan ke dalam satu arsip .tar.gz. Perintah ini membaca file lokal dan memeriksa kredensial, konfigurasi, dan koneksi Anda ke CodeMender. Skrip ini tidak mengupload apa pun: Anda meninjau arsip dan melampirkannya ke kasus dukungan Anda.

Untuk mengumpulkan data untuk sesi tertentu, teruskan ID atau awalan ID-nya. Untuk menemukan ID sesi, jalankan cm session list. Anda dapat mengulangi --session:

cm support-bundle --session SESSION_ID

Tanpa --session, perintah akan mengumpulkan aktivitas dari 72 jam terakhir. Untuk mengubah jendela, gunakan --since:

cm support-bundle --since 24h

Perintah ini menulis cm-support-bundle-TIMESTAMP.tar.gz ke direktori saat ini dan mencetak jalurnya. Untuk memilih jalur, gunakan --output (atau -o).

Isi arsip

Secara default, arsip tidak menyertakan kode sumber, perbedaan, serta input dan output alat. Isinya adalah sebagai berikut:

  • Versi CLI, sistem operasi, dan daftar data yang dikumpulkan.
  • Variabel lingkungan CM_* serta setelan project dan proxy.
  • Hasil pemeriksaan kredensial, konfigurasi, dan konektivitas.
  • File konfigurasi dan kebijakan perintah Anda.
  • Status, model, dan target setiap sesi yang dipilih.
  • Waktu per giliran, penggunaan token, serta nama dan durasi panggilan alat.

Data sesi masih dapat berisi jalur file dan direktori, argumen setiap perintah cm, judul temuan, dan pesan error alat.

Jika dukungan meminta detail selengkapnya, tambahkan --include-content. Tindakan ini juga mengumpulkan temuan, patch yang dihasilkan, dan log debug CLI, yang mencatat argumen setiap panggilan alat. File ini dapat berisi kode sumber dari repositori Anda, jadi tinjau arsipnya sebelum Anda membagikannya.

cm support-bundle --session SESSION_ID --include-content

Dalam kedua mode, perintah ini menyamarkan token akses, kunci API, kunci pribadi, header otorisasi, dan kolom sandi.

Untuk melewati pemeriksaan kredensial, konfigurasi, dan konektivitas, misalnya saat Anda menjalankan perintah tanpa akses jaringan, gunakan --skip-health.

Pemeliharaan ruang kerja

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

cm clean