Memperbaiki kerentanan kode dan mengelola perbedaan

CodeMender dapat secara otomatis membuat, memvalidasi, dan menerapkan patch kode sumber untuk kerentanan yang terverifikasi, serta mengujinya di sandbox lokal Anda untuk mencegah regresi.

Membuat perbaikan kerentanan

Gunakan cm fix untuk membuat patch keamanan yang divalidasi untuk temuan yang terverifikasi::

cm fix FINDING_ID

Saat Anda menjalankan cm fix, CodeMender akan melakukan langkah-langkah validasi berikut:

  1. Membuat kandidat patch menggunakan mesin penalaran yang dihosting di cloud.
  2. Menerapkan patch ke salinan kode sumber di dalam sandbox lokal Anda.
  3. Mengompilasi dan menguji codebase dengan menjalankan build.command yang dikonfigurasi untuk memastikan project dibangun dan pengujian unit lulus.
  4. Menjalankan kembali eksploitasi PoC yang terverifikasi untuk mengonfirmasi bahwa kerentanan tidak dapat dieksploitasi lagi.

Secara default, CodeMender akan meminta Anda mengonfirmasi setiap modifikasi file sebelum menuliskannya ke disk di ruang kerja Anda. Setelah semua pemeriksaan lulus, patch terverifikasi diterapkan ke ruang kerja Anda dan siap untuk diatur.

Memperbaiki tanda

  • Berikan konteks perbaikan (-c / --context): Berikan batasan arsitektur atau pedoman coding:
    cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
  • Menyetujui penulisan secara otomatis (-y / --yes): Menyetujui semua penulisan file dan perintah secara otomatis selama proses perbaikan:
    cm fix FINDING_ID -y
    Catatan: Anda juga dapat menonaktifkan perintah penulisan interaktif secara global dengan menyetel confirm_writes: false di config.yaml Anda.
  • Lewati cache (--no-cache): Memaksa CodeMender untuk membuat patch baru:
    cm fix FINDING_ID --no-cache

Memeriksa dan mengelola perbedaan VCS lokal

CodeMender menyertakan perintah VCS bawaan untuk membantu Anda memeriksa, menyiapkan, dan mengelola perubahan kode yang diperkenalkan oleh patch sebelum melakukan perubahan:

  • Melihat status repositori: Periksa file mana yang telah diubah atau dibuat oleh CodeMender di ruang kerja lokal Anda.

    cm vcs status

  • Periksa perbedaan: Tinjau perbedaan terpadu baris demi baris dari semua modifikasi kode yang belum di-commit yang dihasilkan oleh agen.

    cm vcs diff

  • Tahapan perubahan: Tambahkan modifikasi patch terverifikasi ke lingkungan penyiapan lokal Anda agar siap untuk di-commit.

    cm vcs stage

  • Kembalikan modifikasi sesi: Hapus semua modifikasi file lokal yang dihasilkan selama sesi saat ini dan pulihkan repositori Anda ke status dasarnya.

    cm vcs reset