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:
- Kontak privat: Gunakan kanal kontak AutomatosX untuk meminta jalur pelaporan keamanan yang rahasia. Jangan sertakan rincian eksploitasi atau kredensial dalam pesan komunitas publik.
- 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-accesskecuali--sandbox,AX_CODE_ISOLATION_MODE, atau konfigurasi mengatur mode lain - Mode terbatas yang disarankan — gunakan
workspace-writeuntuk 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
.gitdan.ax-codeselalu 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.0atau alamat non-localhost apa pun mengharuskanAX_CODE_SERVER_PASSWORDdiatur; server menolak mulai tanpanya - Autentikasi dasar ditegakkan — ketika
AX_CODE_SERVER_PASSWORDdiatur, 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, danrefactor_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-writeatauread-onlyuntuk 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:
- Penulis PR mendapat peringatan CodeQL di pemindaian kode GitHub di samping typecheck, tes deterministik, pemindaian dependensi OSV, dan penjaga struktur repositori yang ada.
- Pengelola menyeleksi hasil awal sebelum memperlakukan CodeQL sebagai gerbang penggabungan yang keras, agar temuan baru berguna, bukan berisik.
- 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. - Bukti CodeQL sebaiknya ditampilkan di samping
security_scanlokal,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.