Dapatkan AX Code · GratisDokumentasi

Halaman ini diterjemahkan dari dokumentasi bahasa Inggris. Perintah, pengenal, dan contoh tidak diubah. Runtime 7.24.4 · SDK 2.6.7. Sumber bahasa Inggris

Kebijakan keamanan

Versi yang didukung

Hanya lini minor terbaru yang menerima patch keamanan. Tingkatkan ke minor saat ini sebelum melaporkan kerentanan terhadap lini yang lebih lama.

Versi Didukung
7.24.x Ya
< 7.24 Tidak

Melaporkan kerentanan

Kami menanggapi keamanan dengan serius. Jika Anda menemukan kerentanan, laporkan secara bertanggung jawab:

  1. Kontak privat: Gunakan kanal kontak AutomatosX untuk meminta jalur pelaporan keamanan yang rahasia. Jangan sertakan rincian eksploitasi atau kredensial dalam pesan komunitas publik.
  2. Discord: Laporkan di Discord kami: https://discord.gg/gf9UyPxaN2

Kami akan mengakui laporan Anda dalam 6 hari kerja dan memberi tahu kemajuan menuju perbaikan.

Catatan: Kami tidak menerima laporan keamanan yang dihasilkan AI. Mengirimkannya akan mengakibatkan larangan dari proyek. Pastikan laporan Anda mencakup langkah reproduksi yang spesifik dan menunjukkan dampak yang nyata.


Model ancaman

Ikhtisar

ax-code adalah asisten pengodean bertenaga AI yang berjalan secara lokal di mesin Anda. Ia menyediakan sistem agen dengan akses ke alat yang kuat, termasuk eksekusi shell, operasi berkas, dan akses web.

Bawaan isolasi runtime adalah full-access (sandbox mati), dengan penulisan sistem berkas dan akses jaringan tanpa batas. Ini postur kenyamanan untuk proyek lokal yang dipercaya, bukan batas keamanan. Pilih workspace-write atau read-only sebelum memakai AX Code dengan repositori yang tidak dipercaya atau beban kerja tanpa pengawasan.

Sandbox isolasi eksekusi

ax-code menyertakan sandbox isolasi eksekusi bawaan yang membatasi apa yang dapat diakses agen AI. Tiga mode tersedia:

Mode Perilaku
Akses penuh (bawaan) Menonaktifkan isolasi sepenuhnya dan mengaktifkan akses jaringan
Penulisan workspace Mengizinkan penulisan hanya di dalam workspace; .git dan .ax-code selalu terlindungi; jaringan mati secara bawaan
Hanya baca Memblokir semua mutasi berkas dan perintah shell

Sifat utama:

  • Perilaku bawaan — AX Code mulai di full-access kecuali --sandbox, AX_CODE_ISOLATION_MODE, atau konfigurasi mengatur mode lain
  • Mode terbatas yang disarankan — gunakan workspace-write untuk repositori yang tidak dipercaya atau milik tim; ia membatasi penulisan pada workspace dan menonaktifkan jaringan secara bawaan
  • Penegakan tingkat alat — semua alat mutasi (bash, edit, write, apply_patch) dan alat jaringan (webfetch, websearch, codesearch) memeriksa kebijakan isolasi sebelum mengeksekusi
  • Jalur terlindungi — direktori .git dan .ax-code selalu terlindungi dari penulisan, bahkan pada mode penulisan workspace
  • Prompt eskalasi — pada mode terbatas, pelanggaran isolasi menampilkan dialog persetujuan alih-alih gagal diam-diam; pengguna dapat mengizinkan operasi yang diblokir sekali tanpa mengubah konfigurasi
  • Kendali CLI — --sandbox read-only, --sandbox workspace-write, --sandbox full-access
  • Variabel lingkungan — AX_CODE_ISOLATION_MODE

Backend isolasi

Backend Perilaku
app (bawaan) Pemeriksaan lapisan aplikasi yang portabel pada setiap alat
os Pemeriksaan aplikasi plus sandbox kernel untuk bash (Seatbelt macOS melalui sandbox-exec, bubblewrap Linux ketika bwrap terpasang). Gagal tertutup jika alat OS tidak ada
auto Utamakan bungkus bash OS jika tersedia; kembali ke hanya lapisan aplikasi
{
  "isolation": {
    "mode": "workspace-write",
    "network": false,
    "backend": "auto"
  }
}

Atau atur AX_CODE_ISOLATION_BACKEND=os|auto|app.

Isolasi OS untuk bash menolak penulisan di luar akar workspace dan menolak jaringan ketika network: false. Pemeriksaan lapisan aplikasi tetap selalu berjalan. Pada platform tanpa Seatbelt atau bubblewrap, gunakan backend: "app" atau kontainer/VM.

Keamanan server

  • Hanya localhost secara bawaan — server terikat ke 127.0.0.1, tidak dapat diakses dari jaringan
  • Kata sandi diharuskan untuk akses jaringan — mengikat ke 0.0.0.0 atau alamat non-localhost apa pun mengharuskan AX_CODE_SERVER_PASSWORD diatur; server menolak mulai tanpanya
  • Autentikasi dasar ditegakkan — ketika AX_CODE_SERVER_PASSWORD diatur, HTTP Basic Auth diharuskan pada semua titik akhir API
  • CORS dapat dikonfigurasi — asal tambahan yang diizinkan dapat ditentukan melalui --cors

Penyimpanan kredensial

Kunci API penyedia dienkripsi saat diam memakai AES-256-GCM dengan derivasi kunci PBKDF2 dan disimpan di direktori data AX Code lokal (~/.local/share/ax-code/) dengan izin berkas hanya-pengguna (0600).

Kunci enkripsi diturunkan dari atribut mesin lokal (nama host, platform, arsitektur). Ini melindungi dari pengungkapan luring yang tidak disengaja (misalnya berbagi berkas yang tidak sengaja) tetapi tidak melindungi dari penyerang yang bertekad dengan akses ke host. Ini tidak setara dengan keychain OS atau penyimpanan rahasia yang didukung perangkat keras.

Token OAuth MCP, rahasia klien, serta token akses dan penyegaran akun juga dienkripsi saat diam memakai mekanisme yang sama. Metadata yang tidak peka (URL server, stempel waktu kedaluwarsa, email, ID akun) tetap berupa teks biasa.

Verifikasi artefak rilis

Baik pemasang Bash (install) maupun pemasang Windows PowerShell (install.ps1) memverifikasi arsip rilis GitHub yang diunduh dengan Minisign sebelum ekstraksi. Arsip rilis dan skrip pemasang PowerShell sendiri membawa tanda tangan terpisah. Kunci publik rilis AX Code yang disematkan adalah:

RWSlDu++afxCz01OqhYWhfo8+L8pVbSYXJBEb2zoWBuK0WACIzbGVZRO

Setiap pemasang mengunduh aset .minisig yang cocok untuk arsip yang dipilih dan gagal tertutup ketika verifikasi gagal. Jika minisign belum ada di PATH, pemasang mengunduh arsip Minisign resmi 0.12 yang disematkan dari https://download.ax-code.com/vendor/minisign/0.12/, memeriksa SHA-256 arsip, dan memeriksa berkas yang diekstrak lagi sebelum menyimpannya di cache. Biner minisign yang sudah ada di PATH adalah alat operator dan tidak di-hash ulang. Atur AX_CODE_SKIP_MINISIGN_VERIFY=1 hanya ketika Anda sengaja menerima unduhan rilis yang tidak dapat diverifikasi.

Baris satu irm …/install.ps1 | iex yang nyaman tidak memverifikasi skrip pemasang sebelum eksekusi. Untuk pemasangan yang peka keamanan, unduh install.ps1 dan install.ps1.minisig, verifikasi skrip dengan Minisign, lalu jalankan secara lokal (lihat Kanal pemasangan dan runtime).

Pengelola sebaiknya menjaga kunci rahasia Minisign tetap terenkripsi. Untuk penandatanganan rilis lokal di macOS, simpan frasa sandi di Keychain, bukan berkas teks biasa:

security add-generic-password -U -a ax-release -s ax-minisign -w

Perkakas rilis membaca item Keychain itu secara otomatis ketika AX_CODE_MINISIGN_PASSWORD tidak diatur.

Alur rilis GitHub yang dipicu tag menandatangani arsip sebelum unggah. Ia memerlukan rahasia repositori ini:

AX_CODE_MINISIGN_SECRET_KEY_B64
AX_CODE_MINISIGN_PASSWORD

AX_CODE_MINISIGN_SECRET_KEY_B64 harus berisi yang dikodekan base64 dari kunci rahasia Minisign terenkripsi ax.minisign.key (jalur lokal boleh berupa symlink ke ax.sec). Alur menulisnya ke berkas kunci 0600 sementara, memverifikasi kunci publik yang disematkan, menandatangani setiap arsip rilis, dan mengunggah aset .minisig yang cocok bersama arsip.

Untuk arsip CLI macOS, alur memerlukan dan mengimpor sertifikat Apple Developer ID memakai rahasia repositori ini:

APPLE_CERTIFICATE
APPLE_CERTIFICATE_PASSWORD
APPLE_TEAM_ID
APPLE_API_KEY_B64
APPLE_API_KEY_ID
APPLE_API_ISSUER

Pada jalur itu, pustaka native yang dibundel ditandatangani dengan identitas Developer ID Application yang diimpor, ZIP macOS dikirim ke layanan notaris Apple, dan ZIP yang tidak berubah kemudian dilindungi tanda tangan Minisign yang terpisah. Arsip ZIP tidak dapat distaple, jadi notarisasi harus terjadi sebelum unggah artefak dan sebelum pembuatan .minisig. Build rilis gagal tertutup ketika kredensial penandatanganan atau notarisasi Apple apa pun hilang.

Riwayat kunci penandatanganan rilis

Tanggal berlaku ID kunci Kunci publik Status
2026-07-19 CF42FC69BEEF0EA5 RWSlDu++afxCz01OqhYWhfo8+L8pVbSYXJBEb2zoWBuK0WACIzbGVZRO Saat ini
2026-07-19 2D5140E0904E48B3 RWSzSE6Q4EBRLeUmabk1YM6bzP/wn54tXE09il3d2srulrCfaB4Uyt1n Diputar keluar
2026-06-16 5B7AB63CD6D674BE RWS+dNbWPLZ6W9TH486c9zdH84NiiuFnm4VpVTRlXoMHClyQx/fY7W2A Diputar keluar
sebelum 2026-06-16 8138FAD32CAD95BA RWS6la0s0/o4gdFUZ0Bk/BkrnN8qC2CFOfLXVP5OtQTrvm1BQeOvXgao Diputar keluar

Kunci penandatanganan rilis terakhir diputar pada 2026-07-19. Pemasang dan alur rilis hanya menyematkan kunci saat ini, jadi arsip yang ditandatangani kunci yang dipensiunkan gagal verifikasi tanda tangan. Setelah rotasi, pengelola harus menandatangani ulang arsip rilis historis dengan script/resign-release-assets.ts agar setiap rilis yang dipublikasikan terverifikasi terhadap kunci yang disematkan tanpa memercayai kunci yang dipensiunkan.

Untuk menandatangani ulang dan mengunggah ulang aset .minisig rilis yang ada dengan kunci saat ini:

tsx script/resign-release-assets.ts --tag v5.5.0 --key-dir ~/signkey

Cakupan

Dalam cakupan

Kategori Contoh
Pengelakan sandbox Menjalankan perintah atau menulis berkas di luar batas yang diizinkan
Pengelakan autentikasi Menghindari AX_CODE_SERVER_PASSWORD pada mode server
Pengeluaran kunci Mengekstrak kunci API tersimpan tanpa akses mesin lokal
Penjelajahan jalur Alat membaca atau menulis di luar direktori kerja yang dimaksud
Injeksi perintah Masukan yang dibuat agar menjalankan perintah sembarang dengan melewati isolasi
Kerentanan dependensi CVE yang diketahui pada dependensi bundel dengan jalur serangan yang layak

Di luar cakupan

Kategori Alasan
Penanganan data penyedia LLM Data yang dikirim ke penyedia yang Anda konfigurasi diatur kebijakan mereka
Perilaku server MCP Server MCP eksternal yang Anda konfigurasi berada di luar batas kepercayaan kami
Berkas konfigurasi berbahaya Pengguna mengendalikan konfigurasi sendiri; mengubahnya memerlukan akses lokal
Rekayasa sosial Injeksi prompt melalui repositori yang tidak dipercaya adalah batasan agen LLM yang diketahui
Pelarian sandbox tingkat OS Sandbox isolasi beroperasi di lapisan aplikasi, bukan lapisan proses OS

Kapabilitas keamanan perusahaan

AX Code dirancang untuk pemakaian perusahaan dengan fitur pengerasan berikut:

  • Izin berbutir halus: Kumpulan aturan khusus agen dan berbasis pola (allow/deny/ask). Agen keamanan secara bawaan hanya-baca. Aturan dievaluasi di seluruh proyek, agen, dan daftar yang disetujui.
  • Jejak audit sesi: Setiap panggilan alat, keputusan izin, dan perubahan berkas dicatat di SQLite dengan snapshot. Mendukung pemutaran ulang, fork, dan ekspor untuk tinjauan kepatuhan.
  • Refaktor deterministik (DRE): impact_analyze, refactor_plan, dan refactor_apply (worktree bayangan plus lint, typecheck, dan tes) menyediakan perubahan yang dapat diaudit dan dibalik.
  • Pengelolaan kredensial: Enkripsi AES-256-GCM untuk semua kunci dan token. Isolasi per direktori melalui InstanceState.
  • Penegakan sandbox ikut serta: Isolasi tingkat aplikasi dengan penguraian perintah bash (tree-sitter). Pilih workspace-write atau read-only untuk menegakkan batas sandbox; jalur terlindungi (.git, .ax-code) berlaku pada mode sandbox.
  • Pengerasan server: Hanya localhost secara bawaan; akses jarak jauh dilindungi kata sandi dengan Basic Auth.
  • Kecerdasan dan pemindaian kode: Deteksi rahasia atau hardcode bawaan, analisis dampak dependensi.

Umpan balik pengodean berbantuan CodeQL

Repositori menjalankan CodeQL sebagai lapisan analisis keamanan latar untuk permintaan tarik, dorongan ke dev, pemindaian terjadwal, dan pengiriman manual. CodeQL bukan bagian jalur LSP atau kecerdasan kode yang hidup; ia sumber bukti yang lebih lambat dan lebih dalam untuk temuan aliran data, taint, dan kualitas keamanan yang lebih baik ditangani setelah perubahan sumber stabil.

Alur saat ini menganalisis:

  • Kode runtime, TUI, SDK, integrasi, dan skrip JavaScript serta TypeScript.
  • Alur GitHub Actions dan aksi komposit lokal.
  • Crate Rust di bawah crates/ dengan build Cargo manual agar kode addon native dan TUI diekstrak secara konsisten.

Pengalaman pengembang yang dimaksud adalah:

  1. Penulis PR mendapat peringatan CodeQL di pemindaian kode GitHub di samping typecheck, tes deterministik, pemindaian dependensi OSV, dan penjaga struktur repositori yang ada.
  2. Pengelola menyeleksi hasil awal sebelum memperlakukan CodeQL sebagai gerbang penggabungan yang keras, agar temuan baru berguna, bukan berisik.
  3. Alur tinjauan atau debug AX Code di masa depan dapat menelan SARIF CodeQL atau peringatan pemindaian kode GitHub sebagai bukti keamanan eksplisit dengan bidang provenans seperti source: "codeql", id aturan, keparahan, berkas, baris, jejak aliran data, dan SHA komit yang dianalisis.
  4. Bukti CodeQL sebaiknya ditampilkan di samping security_scan lokal, hardcode_scan, diagnostik LSP, dan analisis dampak yang didukung graf, bukan sebagai pengganti tersembunyi untuk salah satunya.

Ketika menambahkan kueri CodeQL khusus, utamakan batas keamanan khusus repositori daripada pemeriksaan bergaya lint yang luas. Target bernilai tinggi mencakup jalur pelarian sandbox, eksekusi perintah dengan argumen yang tidak disanitasi, penjelajahan jalur di sekitar penahanan workspace, penyebaran rahasia atau lingkungan ke proses anak, dan validasi rute server yang hilang.

Untuk tata kelola perusahaan penuh (RBAC, kebijakan sebagai kode, ekspor SIEM, audit kriptografis), integrasikan dengan AX Trust (item peta jalan).

Lihat docs/guides/sandbox.md untuk konfigurasi isolasi dan perilaku runtime.