Memperbaiki kerentanan kode dan mengelola perbedaan

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

Membuat perbaikan kerentanan

Gunakan cm fix untuk membuat patch keamanan yang divalidasi untuk temuan 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 dibuat dan pengujian unit lulus.
  4. Menjalankan kembali eksploitasi PoC terverifikasi untuk mengonfirmasi bahwa kerentanan tidak dapat dieksploitasi lagi.

Secara default, CodeMender akan meminta Anda untuk mengonfirmasi setiap modifikasi file sebelum menulisnya ke disk di ruang kerja Anda. Setelah semua pemeriksaan lulus, CodeMender akan menerapkan patch terverifikasi ke ruang kerja Anda. Kemudian, Anda dapat melakukan staging perubahan.

Flag perbaikan

  • Memberikan konteks perbaikan (-c / --context): Memberikan batasan arsitektur atau panduan 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 dan perintah file secara otomatis selama proses perbaikan:
    cm fix FINDING_ID -y
    Catatan: Anda juga dapat menonaktifkan perintah penulisan interaktif secara global dengan menetapkan confirm_writes: false di config.yaml.
  • Mengontrol sandbox (--sandbox): Mengaktifkan atau menonaktifkan sandbox secara eksplisit untuk proses ini (misalnya, --sandbox=false untuk menonaktifkan):
    cm fix FINDING_ID --sandbox=false
  • Melewati sandbox (--unrestricted): Melewati semua perlindungan sandbox untuk sementara selama proses ini, menonaktifkan batas sistem file dan isolasi penampung tingkat OS:
    cm fix FINDING_ID --unrestricted
  • Melewati 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, melakukan staging, dan mengelola perubahan kode yang diperkenalkan oleh patch sebelum Anda melakukan commit:

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

    cm vcs status

  • Memeriksa perbedaan: Meninjau perbedaan terpadu baris demi baris dari semua modifikasi kode yang belum di-commit yang dibuat oleh agen.

    cm vcs diff

  • Melakukan staging perubahan: Menambahkan modifikasi patch terverifikasi ke lingkungan staging lokal sehingga Anda dapat menguji dan melakukan commit.

    cm vcs stage

  • Mengembalikan modifikasi sesi: Menghapus semua modifikasi file lokal yang dibuat oleh CodeMender selama sesi saat ini dan memulihkan repositori ke status dasarnya.

    cm vcs reset