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:
- Membuat kandidat patch menggunakan mesin penalaran yang dihosting di cloud.
- Menerapkan patch ke salinan kode sumber di dalam sandbox lokal Anda.
- Mengompilasi dan menguji codebase dengan menjalankan
build.commandyang dikonfigurasi untuk memastikan project di-build dan pengujian unit lulus. - 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 menulisnya ke disk di ruang kerja Anda. Setelah semua pemeriksaan lulus, CodeMender akan menerapkan patch terverifikasi ke ruang kerja Anda. Kemudian, Anda dapat menyiapkan perubahan.
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: Catatan: Anda juga dapat menonaktifkan perintah penulisan interaktif secara global dengan menyetelcm fix FINDING_ID -y
confirm_writes: falsediconfig.yamlAnda. - Mengontrol sandbox (
--sandbox): Aktifkan atau nonaktifkan sandbox secara eksplisit untuk proses ini (misalnya,--sandbox=falseuntuk menonaktifkan):cm fix FINDING_ID --sandbox=false
- Lewati sandbox (
--unrestricted): Melewati semua perlindungan sandbox untuk sementara selama proses ini berjalan, menonaktifkan batas sistem file dan isolasi container tingkat OS:cm fix FINDING_ID --unrestricted
- Lewati cache (
--no-cache): Memaksa CodeMender untuk membuat patch baru:cm fix FINDING_ID --no-cache
Memeriksa dan mengelola diff VCS lokal
CodeMender menyertakan perintah VCS bawaan untuk membantu Anda memeriksa, menyiapkan, dan mengelola perubahan kode yang diperkenalkan oleh patch sebelum Anda melakukan commit:
Melihat status repositori: Periksa file mana yang diubah atau dibuat 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 agen.
cm vcs diff
Tahap perubahan: Tambahkan modifikasi patch terverifikasi ke lingkungan penyiapan lokal sehingga Anda dapat menguji dan melakukan commit.
cm vcs stage
Membatalkan modifikasi sesi: Menghapus semua modifikasi file lokal yang dihasilkan CodeMender selama sesi saat ini dan memulihkan repositori Anda ke status dasarnya.
cm vcs reset