Ringkasan CodeMender

Peluncuran model AI canggih memicu kekhawatiran luas terkait kerentanan kode. Seiring penyerang mendapatkan akses ke kemampuan baru untuk membuat eksploitasi, tim keamanan berada di bawah tekanan waktu yang sangat besar untuk secara proaktif menemukan dan memperbaiki kerentanan sebelum penyerang mengeksploitasinya.

CodeMender adalah agen keamanan kode AI yang dapat menemukan, memverifikasi, dan memperbaiki kerentanan mendalam dalam codebase Anda. CodeMender membungkus pemanfaatan yang disesuaikan di sekitar LLM, menggunakan perintah, kemampuan, dan logika orkestrasi yang direkayasa Google DeepMind untuk mengubah model menjadi sistem agentik yang khusus dalam keamanan kode.

Cara kerjanya

CodeMender menangani skala dan keragaman lingkungan perusahaan modern, tempat kode mencakup banyak bahasa dan jenis sistem:

  • Temukan kerentanan dengan memindai codebase Anda menggunakan LLM yang dipandu oleh agen, memanfaatkan alat khusus dan rekayasa perintah untuk memfokuskan model pada kelemahan keamanan. Atau, Anda dapat mengimpor daftar kerentanan dari alat pemindaian keamanan eksternal.
  • Verifikasi kerentanan dengan membuat kode dan mencoba mengeksploitasi kerentanan yang ditemukan untuk memverifikasi apakah kerentanan tersebut dapat dieksploitasi. Hal ini membantu memprioritaskan kerentanan yang telah dikonfirmasi dan mengurangi rasio positif palsu.
  • Perbaiki kerentanan dengan membuat dan menguji patch yang kompatibel dengan bahasa codebase Anda.

Selama ketiga tahap, Anda dapat memberikan konteks ke CodeMender untuk memastikan CodeMender memperhitungkan nuansa aplikasi dan model ancaman Anda. Kombinasi LLM dengan pemanfaatan CodeMender yang disesuaikan memberikan hasil yang lebih berkualitas dibandingkan dengan hanya menggunakan LLM untuk menemukan dan memperbaiki kerentanan.

Arsitektur sistem

Dari perspektif pengguna, sistem CodeMender terdiri dari dua komponen:

  • Agen: Sistem multi-agen yang dihosting dan menjalankan logika bisnis inti dan penalaran.
  • Klien: Klien yang berjalan di mesin Anda, yang bertindak sebagai CLI (untuk mengeluarkan perintah dan melihat output) dan daemon (untuk menjalankan perintah atas nama agen, dengan isolasi opsional di dalam sandbox tingkat proses lokal untuk mengompilasi kode, menjalankan pengujian, dan memverifikasi kerentanan dengan aman).

Bahasa dan framework yang didukung

CodeMender mendukung bahasa berikut secara default: C/C++, C# / .NET, Go, Java, JavaScript dan TypeScript, Kotlin, Python, Ruby, Rust, dan PHP. Selain itu, fitur ini memberikan dukungan luas untuk library standar dalam bahasa ini, serta framework perusahaan umum (seperti HTML/CSS, Django, Flask, React, Spring Boot, ASP.NET, dan Express).

Bahasa pemrograman yang tercantum bukanlah batas yang ketat. Karena CodeMender adalah agen keamanan kode AI, CodeMender dapat menganalisis dan memperbaiki kode dalam bahasa apa pun yang dipahami oleh model yang mendasarinya. Dukungan umumnya tersedia untuk bahasa non-proprietary apa pun.

Memindai bahasa pemrograman tambahan

Anda dapat mengonfigurasi CodeMender untuk memindai bahasa pemrograman yang tidak ada dalam set defaultnya dengan salah satu cara berikut:

  • Konfigurasi global: tambahkan ekstensi file bahasa pemrograman ke bagian scan.extensions.include file konfigurasi CodeMender ~/.codemender/config.yaml global.
  • Konfigurasi per repositori: tambahkan ekstensi file bahasa pemrograman ke bagian scan.extensions.include dari file konfigurasi CodeMender config.yaml di repositori.

Misalnya, untuk memindai format bahasa atau skrip tambahan:

scan:
  extensions:
    include:
      # Default languages
      - .py
      - .java
      - .go
      - .js
      - .jsx
      - .mjs
      - .cjs
      - .ts
      - .tsx
      - .c
      - .cc
      - .cpp
      - .cxx
      - .h
      - .hpp
      - .cs
      - .rs
      - .kt
      - .kts
      - .rb
      - .php
      # Additional / custom languages
      - .swift
      - .scala
      - .sh

  # Exclude build, dependency, cache, and artifact directories
  exclude_dirs:
    - node_modules
    - vendor
    - dist
    - bin
    - target
    - obj
    - build
    - .gradle

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi opsi pemindaian, lihat Parameter konfigurasi (config.yaml).

Catatan tentang kualitas

CodeMender tidak memublikasikan evaluasi formal per bahasa. Bahasa default mencerminkan tempat kami memiliki cakupan tolok ukur paling banyak; hasil dalam bahasa lain akan bervariasi. Jika organisasi Anda memerlukan bahasa tertentu yang diprioritaskan untuk evaluasi lebih mendalam atau penyertaan default, hubungi tim akun Google Anda.

Model yang didukung

CodeMender mendukung model berikut:

Klik untuk meluaskan model yang didukung

Untuk menentukan model saat menjalankan perintah CodeMender CLI, lihat Menentukan model.

Region yang didukung

CodeMender tersedia secara global.

Melacak penggunaan token

CodeMender menampilkan penggunaan token di dua tempat: baris status langsung saat perintah berjalan, dan ringkasan satu baris saat perintah berhasil diselesaikan. Jumlah mencakup token input, output, dan total untuk sesi saat ini.

Baris status live

Saat cm find, cm fix, cm verify, atau cm session resume berjalan, teruskan tanda --compact untuk menampilkan baris status bergulir yang diperbarui saat agen bekerja:

cm find ./src/auth/ --compact

Baris status melaporkan total sesi kumulatif:

Tokens: 40k in / 12k out / 60k total

Sesi yang dilanjutkan akan terus menghitung dari tempat sesi sebelumnya berhenti. Jumlah total dapat mencakup token penalaran internal model, sehingga dapat melebihi in + out.

Keluar dari ringkasan

Saat perintah berhasil diselesaikan dan setidaknya satu langkah alat dieksekusi, CodeMender akan mencetak ringkasan satu baris dengan total waktu yang berlalu dan token:

✅ Completed 14 tool steps in 3m 42s | Tokens: 40k in / 12k out / 60k total

Penggunaan token yang ditagih

Untuk melihat tren biaya dan penggunaan token yang ditagih secara kumulatif di seluruh Google Cloud project, lihat Melihat laporan penagihan dan tren biaya di Penagihan Cloud.

Mulai menggunakan CLI

Siapkan alat CLI dan lakukan inisialisasi ruang kerja untuk mulai memindai.

Prasyarat

Sebelum Anda menginisialisasi CodeMender CLI, pastikan lingkungan Anda disiapkan dengan benar:

  • Siapkan Google Cloud project: Siapkan Google Cloud project Anda dengan API dan peran IAM yang diperlukan.
  • Download CodeMender CLI: Download dan instal biner CodeMender CLI untuk sistem operasi Anda.
  • Konfigurasi Google Cloud kredensial: Konfigurasi Google Cloud Kredensial Default Aplikasi (ADC) untuk mengautentikasi CLI.
  • Sediakan kode sumber Anda: Clone atau salin kode sumber project yang ingin Anda pindai ke ruang kerja Anda.
  • Mengonfigurasi Sandbox: Tentukan pemasangan direktori, profil akses jaringan, dan pengecualian keamanan untuk lingkungan sandbox.

Menentukan model

Secara default, CodeMender menggunakan Gemini 3.8 Flash. Untuk mengganti model default, teruskan flag --model dengan ID model yang sesuai:

  • Gemini 3.8 Flash (default): --model gemini-3.8-flash
  • Gemini 3.7 Flash: --model gemini-3.7-flash
  • Gemini 3.6 Flash: --model gemini-3.6-flash
  • Gemini 3.5 Flash: --model gemini-3.5-flash
  • Pratinjau Gemini 3.1 Pro: --model gemini-3.1-pro-preview

Perintah berikut mendukung flag --model:

  • cm find
  • cm verify
  • cm fix

Untuk menentukan model saat menjalankan salah satu perintah ini, gunakan sintaksis berikut:

cm COMMAND TARGET --model MODEL_NAME

Keamanan dan privasi data

Bagian berikut menguraikan model keamanan, kebijakan retensi data, dan kontrol akses CodeMender:

Data apa yang dikirim CodeMender ke cloud?

Saat menggunakan CodeMender, alat CLI lokal memediasi akses ke kode Anda, sehingga Anda tidak pernah mengupload repositori kode sumber lengkap ke server Google dan agen yang dihosting tidak meng-clone-nya secara independen.

Sebagai gantinya, CLI secara ketat melokalkan data yang dikirimkannya ke agen yang dihosting oleh Google, yang terdiri dari:

  • Isi file atau cuplikan kode yang ditargetkan, informasi kerentanan, patch yang diusulkan, dan hasil eksekusi perintah.
  • Metadata, diagnostik, error, dan telemetri penggunaan (seperti token yang digunakan dan durasi perintah).

Kami tidak pernah menggunakan kode sumber pelanggan Anda untuk melatih bobot model dasar.

Apa kebijakan retensi?

CodeMender menggunakan kebijakan retensi data jangka pendek yang ketat:

  • Retensi maksimum 7 hari: Kami menyimpan data sesi, termasuk cuplikan kode dan status pelacakan, hingga 7 hari di penyimpanan Gemini Enterprise Agent Platform untuk memungkinkan pengguna melanjutkan pemindaian yang terganggu dengan lancar. Setelah 7 hari, sistem akan otomatis menghapusnya (lihat Retensi Data Nol).
  • Penghapusan eksplisit: Pelanggan tidak perlu menunggu 7 hari; mereka dapat memicu pembersihan langsung semua data sesi dengan memanggil DeleteInteraction.
  • Temuan sementara: Kami tidak menyimpan temuan dan patch kerentanan dalam database yang berumur panjang; temuan dan patch tersebut terakumulasi dalam memori selama pipeline.

Siapa yang dapat mengakses data?

CodeMender menggunakan pendekatan "Zero-Data-Access" terkait visibilitas manusia:

  • Tidak ada akses manusia: Tidak ada grup manusia atau engineer Google yang memiliki akses untuk membaca data pelanggan di lingkungan produksi.
  • Tidak ada visibilitas operator: Bahkan untuk penelusuran bug dan pelacakan error produksi, operator Google dibatasi dan tidak memiliki visibilitas ke konteks kode sumber pelanggan atau status sesi sementara.
  • Isolasi ketat: Kami secara logis mengisolasi dan mengontrol akses semua data berdasarkan organisasi dan project penagihan pelanggan untuk melindungi privasi tenant dalam infrastruktur bersama kami.
  • Kontrol Layanan VPC (VPC-SC): Untuk melindungi lingkungan Anda lebih lanjut, arsitektur CodeMender sepenuhnya mendukung Kontrol Layanan VPC (VPC-SC). Hal ini memungkinkan Anda menentukan perimeter keamanan yang aman di sekitar resource Google Cloud Anda, sehingga membantu mengurangi risiko pemindahan data yang tidak sah saat data yang dilokalkan dikirim ke mesin inferensi cloud.

Langkah berikutnya

Untuk petunjuk mendetail, lihat panduan berikut: