CodeMender dapat 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 diverifikasi:
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 build project dan pengujian unit lulus. - Menjalankan ulang eksploitasi PoC yang telah diverifikasi 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 yang diverifikasi ke ruang kerja Anda. Kemudian, Anda dapat melakukan staging perubahan.
Memperbaiki tanda
- Berikan konteks perbaikan (
-c/--context): Berikan batasan arsitektur atau panduan coding:cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
- Perintah persetujuan otomatis (
-y/--yes): Menyetujui otomatis semua penulisan file dan perintah konfirmasi selama proses perbaikan: Catatan: Anda juga dapat menonaktifkan perintah konfirmasi interaktif dicm fix FINDING_ID -y
config.yamldengan menetapkantools.confirm_writes: falsedantools.confirm_commands: false. - Kontrol sandbox (
--sandbox): Aktifkan atau nonaktifkan sandbox tingkat OS secara eksplisit untuk operasi ini (misalnya,--sandbox=falseuntuk menonaktifkan):cm fix FINDING_ID --sandbox=false
- Mengabaikan batas jalur (
--allow-all-paths): Nonaktifkan pemeriksaan batas jalur ruang kerja untuk operasi ini agar alat agen dapat mengakses jalur di luar root project danproject_pathsyang dikonfigurasi (gabungkan dengan--sandbox=falseuntuk mengakses jalur host yang tidak dipasang di dalam sandbox):cm fix FINDING_ID --allow-all-paths
- Kebijakan perintah bypass (
--allow-all-commands): Menonaktifkan penerapan daftar yang tidak diizinkancommand_policy.yamluntuk operasi ini:cm fix FINDING_ID --allow-all-commands
- Bypass 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, melakukan staging, dan mengelola perubahan kode yang diperkenalkan patch sebelum Anda melakukan commit:
Melihat status repositori: Periksa file mana yang diubah atau dibuat CodeMender di ruang kerja lokal Anda.
cm vcs status
Memeriksa perbedaan: Tinjau perbedaan terpadu baris demi baris dari semua modifikasi kode yang belum di-commit yang dihasilkan agen.
cm vcs diff
Menyiapkan perubahan: Tambahkan modifikasi patch yang telah diverifikasi ke lingkungan staging lokal Anda agar Anda dapat menguji dan meng-commit-nya.
cm vcs stage
Mengembalikan perubahan sesi: Menghapus semua perubahan file lokal yang dibuat CodeMender selama sesi saat ini dan memulihkan repositori Anda ke status dasar pengukuran.
cm vcs reset