Questa pagina è tradotta dalla documentazione inglese. Comandi, identificatori ed esempi restano invariati. Runtime 7.24.4 · SDK 2.6.7. Testo inglese
Policy di sicurezza
Versioni supportate
Solo l’ultima linea minor riceve le patch di sicurezza. Aggiorna alla minor corrente prima di segnalare una vulnerabilità contro una linea più vecchia.
| Versione | Supportata |
|---|---|
| 7.24.x | Sì |
| < 7.24 | No |
Segnalare una vulnerabilità
Prendiamo la sicurezza sul serio. Se scopri una vulnerabilità, segnalala in modo responsabile:
- Contatto privato: usa il canale di contatto AutomatosX per chiedere un percorso riservato di segnalazione di sicurezza. Non includere dettagli di exploit né credenziali nei messaggi pubblici della comunità.
- Discord: segnalala nel nostro Discord: https://discord.gg/gf9UyPxaN2
Confermeremo la segnalazione entro 6 giorni lavorativi e ti terremo informato sull’avanzamento verso una correzione.
Nota: non accettiamo segnalazioni di sicurezza generate dall’IA. Inviarne una comporta il ban dal progetto. Assicurati che la segnalazione includa passi di riproduzione specifici e dimostri un impatto reale.
Modello delle minacce
Panoramica
ax-code è un assistente di programmazione basato sull’IA che gira in locale sulla tua macchina. Fornisce un sistema di agenti con accesso a strumenti potenti, tra cui esecuzione della shell, operazioni sui file e accesso al web.
Il predefinito di isolamento del runtime è full-access (sandbox spenta), con scritture sul filesystem e accesso alla rete senza restrizioni. È una postura di comodità per i progetti locali attendibili, non un confine di sicurezza. Seleziona workspace-write o read-only prima di usare AX Code con repository non attendibili o carichi non presidiati.
Sandbox di isolamento dell'esecuzione
ax-code include una sandbox di isolamento dell’esecuzione integrata, che limita ciò a cui l’agente di IA può accedere. Sono disponibili tre modalità:
| Modalità | Comportamento |
|---|---|
| Accesso completo (predefinito) | Disattiva del tutto l’isolamento e abilita l’accesso alla rete |
| Scrittura nel workspace | Consente scritture solo dentro il workspace; .git e .ax-code sono sempre protetti; rete disattivata per impostazione predefinita |
| Sola lettura | Blocca tutte le mutazioni dei file e i comandi di shell |
Proprietà chiave:
- Comportamento predefinito — AX Code parte in
full-accesssalvo che--sandbox,AX_CODE_ISOLATION_MODEo la configurazione impostino una modalità diversa - Modalità ristretta consigliata — usa
workspace-writeper i repository non attendibili o di team; confina le scritture al workspace e disattiva la rete per impostazione predefinita - Applicazione a livello di strumenti — tutti gli strumenti di mutazione (bash, edit, write, apply_patch) e gli strumenti di rete (webfetch, websearch, codesearch) controllano la policy di isolamento prima di eseguire
- Percorsi protetti — le directory
.gite.ax-codesono sempre protette dalle scritture, anche in modalità di scrittura nel workspace - Richieste di escalation — nelle modalità ristrette, le violazioni di isolamento presentano una finestra di approvazione invece di fallire in silenzio; gli utenti possono consentire una volta un’operazione bloccata senza cambiare la configurazione
- Controllo da CLI —
--sandbox read-only,--sandbox workspace-write,--sandbox full-access - Variabile di ambiente —
AX_CODE_ISOLATION_MODE
Backend di isolamento
| Backend | Comportamento |
|---|---|
| app (predefinito) | Controlli portabili a livello applicativo su ogni strumento |
| os | Controlli dell’app più sandbox del kernel per bash (Seatbelt di macOS tramite sandbox-exec, bubblewrap di Linux quando bwrap è installato). Si chiude in fallimento se mancano gli strumenti del sistema operativo |
| auto | Preferisce l’involucro bash del sistema operativo quando è disponibile; ripiego solo sul livello applicativo |
{
"isolation": {
"mode": "workspace-write",
"network": false,
"backend": "auto"
}
}
Oppure imposta AX_CODE_ISOLATION_BACKEND=os|auto|app.
L’isolamento del sistema operativo per bash nega le scritture fuori dalle radici del workspace e nega la rete quando network: false. I controlli a livello applicativo girano comunque sempre. Sulle piattaforme senza Seatbelt o bubblewrap, usa backend: "app" oppure un container o una VM.
Sicurezza del server
- Solo localhost per impostazione predefinita — il server si lega a
127.0.0.1, irraggiungibile dalla rete - Password obbligatoria per l’accesso di rete — legarsi a
0.0.0.0o a qualsiasi indirizzo non localhost richiede cheAX_CODE_SERVER_PASSWORDsia impostato; il server rifiuta di avviarsi senza - Autenticazione di base applicata — quando
AX_CODE_SERVER_PASSWORDè impostato, HTTP Basic Auth è obbligatorio su tutti gli endpoint API - CORS configurabile — origini aggiuntive consentite si possono specificare tramite
--cors
Conservazione delle credenziali
Le chiavi API dei provider sono cifrate a riposo con AES-256-GCM e derivazione di chiave PBKDF2, e memorizzate nella directory dati locale di AX Code (~/.local/share/ax-code/) con permessi di file solo per l’utente (0600).
La chiave di cifratura è derivata da attributi della macchina locale (nome host, piattaforma, architettura). Questo protegge dalla divulgazione offline occasionale (per esempio una condivisione accidentale di file) ma non protegge da un attaccante determinato con accesso all’host. Non equivale al portachiavi del sistema operativo né a un archivio di segreti sostenuto dall’hardware.
Anche i token OAuth di MCP, i segreti dei client e i token di accesso e di refresh degli account sono cifrati a riposo con lo stesso meccanismo. I metadati non sensibili (URL dei server, marche temporali di scadenza, email, ID degli account) restano in chiaro.
Verifica degli artefatti di rilascio
Sia l’installer Bash (install) sia l’installer Windows PowerShell (install.ps1) verificano gli archivi di rilascio GitHub scaricati con minisign prima dell’estrazione. Gli archivi di rilascio e lo script installer PowerShell stesso portano firme staccate. La chiave pubblica di rilascio di AX Code fissata è:
RWSlDu++afxCz01OqhYWhfo8+L8pVbSYXJBEb2zoWBuK0WACIzbGVZRO
Ogni installer scarica l’asset .minisig corrispondente all’archivio selezionato e si chiude in fallimento quando la verifica fallisce. Se minisign non è già nel PATH, gli installer scaricano gli archivi ufficiali fissati di minisign 0.12 da https://download.ax-code.com/vendor/minisign/0.12/, controllano lo SHA-256 dell’archivio e controllano di nuovo l’eseguibile estratto prima di metterlo in cache. Un binario minisign già nel PATH è lo strumento dell’operatore e non viene ricalcolato. Imposta AX_CODE_SKIP_MINISIGN_VERIFY=1 solo quando accetti di proposito un download di rilascio non verificabile.
La scorciatoia di una riga irm …/install.ps1 | iex non verifica lo script installer prima dell’esecuzione. Per le installazioni sensibili alla sicurezza, scarica install.ps1 e install.ps1.minisig, verifica lo script con minisign, poi eseguilo in locale (vedi Canali di installazione e runtime).
I responsabili dovrebbero tenere cifrata la chiave segreta di minisign. Per la firma locale dei rilasci su macOS, memorizza la passphrase nel Keychain invece che in un file in chiaro:
security add-generic-password -U -a ax-release -s ax-minisign -w
Gli strumenti di rilascio leggono quella voce del Keychain in automatico quando AX_CODE_MINISIGN_PASSWORD non è impostato.
Il flusso di rilascio GitHub guidato dal tag firma gli archivi prima del caricamento. Richiede questi segreti del repository:
AX_CODE_MINISIGN_SECRET_KEY_B64
AX_CODE_MINISIGN_PASSWORD
AX_CODE_MINISIGN_SECRET_KEY_B64 deve essere il contenuto codificato in base64 della
chiave segreta minisign cifrata ax.minisign.key (il percorso locale può essere un symlink
verso ax.sec). Il flusso la scrive in un
file di chiave temporaneo 0600, verifica la chiave pubblica fissata, firma ogni archivio
di rilascio e carica gli asset .minisig corrispondenti insieme agli archivi.
Per gli archivi CLI di macOS, il flusso richiede e importa il certificato Apple Developer ID usando questi segreti del repository:
APPLE_CERTIFICATE
APPLE_CERTIFICATE_PASSWORD
APPLE_TEAM_ID
APPLE_API_KEY_B64
APPLE_API_KEY_ID
APPLE_API_ISSUER
In quel percorso, le librerie native incluse sono firmate con l’identità Developer
ID Application importata, lo ZIP di macOS viene inviato al servizio di notarizzazione di Apple
e lo ZIP invariato viene poi protetto dalla firma minisign staccata. Gli archivi
ZIP non si possono pinzare, quindi la notarizzazione deve avvenire prima del caricamento dell’artefatto
e prima della generazione di .minisig. Le build di rilascio si chiudono in fallimento quando manca una qualsiasi
credenziale di firma o notarizzazione Apple.
Storia della chiave di firma dei rilasci
| Data di efficacia | ID della chiave | Chiave pubblica | Stato |
|---|---|---|---|
| 2026-07-19 | CF42FC69BEEF0EA5 |
RWSlDu++afxCz01OqhYWhfo8+L8pVbSYXJBEb2zoWBuK0WACIzbGVZRO |
Attuale |
| 2026-07-19 | 2D5140E0904E48B3 |
RWSzSE6Q4EBRLeUmabk1YM6bzP/wn54tXE09il3d2srulrCfaB4Uyt1n |
Ruotata fuori |
| 2026-06-16 | 5B7AB63CD6D674BE |
RWS+dNbWPLZ6W9TH486c9zdH84NiiuFnm4VpVTRlXoMHClyQx/fY7W2A |
Ruotata fuori |
| pre-2026-06-16 | 8138FAD32CAD95BA |
RWS6la0s0/o4gdFUZ0Bk/BkrnN8qC2CFOfLXVP5OtQTrvm1BQeOvXgao |
Ruotata fuori |
La chiave di firma dei rilasci è stata ruotata più di recente il 2026-07-19. L’installer
e il flusso di rilascio fissano solo la chiave corrente, quindi gli archivi firmati con una chiave
ritirata falliscono la verifica della firma. Dopo una rotazione, i responsabili devono rifirmare
gli archivi di rilascio storici con script/resign-release-assets.ts così ogni
rilascio pubblicato si verifica contro la chiave fissata, senza fidarsi delle chiavi ritirate.
Per rifirmare e ricaricare gli asset .minisig di un rilascio esistente con la
chiave corrente:
tsx script/resign-release-assets.ts --tag v5.5.0 --key-dir ~/signkey
Ambito
Nell'ambito
| Categoria | Esempi |
|---|---|
| Aggiramento della sandbox | Eseguire comandi o scrivere file fuori dai confini consentiti |
| Aggiramento dell’autenticazione | Eludere AX_CODE_SERVER_PASSWORD in modalità server |
| Esfiltrazione di chiavi | Estrarre chiavi API memorizzate senza accesso alla macchina locale |
| Attraversamento di percorsi | Strumenti che leggono o scrivono fuori dalla directory di lavoro prevista |
| Iniezione di comandi | Input costruito che esegue comandi arbitrari aggirando l’isolamento |
| Vulnerabilità delle dipendenze | CVE noti nelle dipendenze incluse, con un percorso di attacco praticabile |
Fuori ambito
| Categoria | Motivazione |
|---|---|
| Trattamento dei dati del provider LLM | I dati inviati al provider configurato sono governati dalle sue policy |
| Comportamento dei server MCP | I server MCP esterni che configuri sono fuori dal nostro confine di fiducia |
| File di configurazione malevoli | Gli utenti controllano la propria configurazione; modificarla richiede accesso locale |
| Ingegneria sociale | L’iniezione di prompt tramite repository non attendibili è un limite noto degli agenti LLM |
| Fughe dalla sandbox a livello di sistema operativo | La sandbox di isolamento opera a livello applicativo, non a livello di processo del sistema operativo |
Capacità di sicurezza per le aziende
AX Code è progettato per l’uso aziendale con queste funzioni di irrobustimento:
- Autorizzazioni a grana fine: insiemi di regole specifici dell’agente e basati su motivi (
allow/deny/ask). L’agente di sicurezza è in sola lettura per impostazione predefinita. Le regole sono valutate tra progetto, agente ed elenchi approvati. - Tracce di audit della sessione: ogni chiamata di strumento, decisione di autorizzazione e modifica di file è registrata in SQLite con istantanee. Supporta replay, biforcazione ed esportazione per le revisioni di conformità.
- Refactoring deterministico (DRE):
impact_analyze,refactor_planerefactor_apply(worktree ombra più lint, typecheck e test) forniscono modifiche auditabili e reversibili. - Gestione delle credenziali: cifratura AES-256-GCM per tutte le chiavi e i token. Isolamento per directory tramite
InstanceState. - Applicazione della sandbox su adesione: isolamento a livello applicativo con parsing dei comandi bash (tree-sitter). Seleziona
workspace-writeoread-onlyper far rispettare i confini della sandbox; i percorsi protetti (.git,.ax-code) si applicano nelle modalità con sandbox. - Irrobustimento del server: solo localhost per impostazione predefinita; accesso remoto protetto da password con Basic Auth.
- Intelligenza del codice e scansione: rilevamento integrato di segreti e valori fissi nel codice, analisi di impatto delle dipendenze.
Riscontro di programmazione assistito da CodeQL
Il repository esegue CodeQL come livello di analisi di sicurezza in background per le pull
request, i push su dev, le scansioni pianificate e gli invii manuali. CodeQL non fa
parte del percorso LSP vivo né dell’intelligenza del codice; è una fonte di evidenza più lenta e più profonda
per rilievi di flusso dei dati, taint e qualità di sicurezza, che si gestiscono meglio
dopo che le modifiche ai sorgenti si sono stabilizzate.
Il flusso attuale analizza:
- Codice di runtime, TUI, SDK, integrazione e script in JavaScript e TypeScript.
- Flussi di GitHub Actions e azioni composite locali.
- Crate Rust sotto
crates/, con una build Cargo manuale così il codice degli addon nativi e della TUI viene estratto in modo coerente.
L’esperienza prevista per chi sviluppa è:
- Gli autori delle PR ricevono gli avvisi CodeQL nella scansione del codice di GitHub, accanto a typecheck esistente, test deterministici, scansione delle dipendenze OSV e guardie di struttura del repository.
- I responsabili fanno il triage dei risultati iniziali prima di trattare CodeQL come una soglia di merge rigida, così i nuovi rilievi sono utili anziché rumorosi.
- I flussi futuri di revisione e debug di AX Code possono ingerire SARIF di CodeQL o avvisi di scansione
del codice di GitHub come evidenza di sicurezza esplicita, con campi di provenienza come
source: "codeql", id della regola, gravità, file, riga, traccia del flusso dei dati e SHA del commit analizzato. - L’evidenza CodeQL va mostrata accanto a
security_scanlocale,hardcode_scan, diagnostica LSP e analisi di impatto sostenuta dal grafo, non come sostituto nascosto di uno di questi.
Quando si aggiungono query CodeQL personalizzate, preferisci i confini di sicurezza specifici del repository ai controlli ampi in stile lint. Bersagli di alto valore includono i percorsi di fuga dalla sandbox, l’esecuzione di comandi con argomenti non ripuliti, l’attraversamento di percorsi intorno al contenimento del workspace, la propagazione di segreti e ambiente ai processi figli e la validazione mancante delle route del server.
Per la governance aziendale completa (RBAC, policy come codice, esportazione SIEM, audit crittografico), integra AX Trust (voce di roadmap).
Vedi docs/guides/sandbox.md per la configurazione dell’isolamento e il comportamento di runtime.