Implementare procedure consigliate per la sicurezza delle applicazioni per applicazioni abilitate per l’intelligenza artificiale

Completato

Le applicazioni abilitate per l'intelligenza artificiale sono ancora applicazioni e pertanto è comunque importante seguire la codifica sicura e altre procedure consigliate per la sicurezza delle applicazioni. L'intelligenza artificiale introduce nuove superfici di attacco, ad esempio interfacce di richiesta, chiamate agli strumenti agente ed endpoint del modello, ma esistono insieme a tutti i rischi tradizionali per la sicurezza delle applicazioni. Le organizzazioni devono estendere le procedure di sicurezza esistenti per coprire i componenti specifici dell'intelligenza artificiale anziché considerare la sicurezza dell'intelligenza artificiale come una disciplina separata.

Ciclo di vita di sviluppo software sicuro (SDLC)

Integrare la sicurezza in ogni fase del processo di sviluppo di applicazioni di intelligenza artificiale:

  • Fase di progettazione: eseguire la modellazione delle minacce che include minacce specifiche dell'intelligenza artificiale (inserimento di richieste, avvelenamento dei dati, furto di modelli). Identificare i componenti che gestiscono i dati sensibili e quali interagiscono con i sistemi esterni.
  • Fase di sviluppo: seguire le procedure di codifica sicure. Convalidare tutti gli input, incluse le richieste, prima dell'elaborazione. Eseguire la bonifica dei dati trasferiti tra l'agente di orchestrazione IA e gli endpoint degli strumenti.
  • Fase di test: includere test case specifici dell'intelligenza artificiale nei test di sicurezza: tentativi di inserimento prompt, scenari di jailbreak e probe di esfiltrazione di dati insieme ai test tradizionali delle vulnerabilità.
  • Fase di distribuzione: Applicare l'accesso con privilegi minimi, crittografare i dati in transito e a riposo, e configurare il monitoraggio prima di entrare in produzione.
  • Fase operativa: monitorare le anomalie, applicare tempestivamente le patch e condurre verifiche di sicurezza regolari che includono i componenti di intelligenza artificiale.

L'adozione di un approccio DevSecOps, in cui la sicurezza è incorporata nella pipeline CI/CD, consente di bilanciare i requisiti di sicurezza con la velocità di sviluppo.

Sicurezza degli strumenti dell'agente di intelligenza artificiale

Gli agenti di intelligenza artificiale che possono chiamare strumenti esterni (API, database, file system) richiedono controlli di sicurezza aggiuntivi. Ciascuna interazione tra gli strumenti è un potenziale punto di escalation dei privilegi o perdita dei dati:

  • Manifesti delle funzionalità: definire un manifesto delle funzionalità per ogni strumento che un agente può chiamare. Elencare solo le azioni autorizzate e proibire tutte le altre per impostazione predefinita.
  • Credenziali limitate e di breve durata: utilizzare token limitati e di breve durata per ogni invocazione dello strumento anziché usare credenziali di lunga durata. Questo limita il raggio dell'esplosione se un token viene compromesso.
  • Esecuzione in modalità sandbox: eseguire funzioni dell'agente in ambienti di esecuzione in modalità sandbox per isolare il runtime e impedire chiamate di sistema non autorizzate.
  • Bonifica degli input/output: eseguire la bonifica e convalidare tutti i dati trasferiti tra l'agente di orchestrazione e gli endpoint degli strumenti. Ciò impedisce la propagazione degli attacchi di iniezione attraverso la catena degli strumenti.
  • Registrazione di controllo: monitorare e controllare ogni chiamata allo strumento, registrare gli strumenti richiamati, i dati a cui è stato eseguito l'accesso e l'identità dell'agente. Questo fornisce il percorso forense necessario per analizzare gli incidenti.

Diagramma dei controlli di sicurezza degli strumenti dell'agente di intelligenza artificiale, inclusi manifesti, credenziali e sandboxing.

Principio del privilegio minimo

Applicare l'accesso con privilegi minimi in modo coerente in tutti i componenti del sistema di intelligenza artificiale:

  • Limitare le autorizzazioni per utenti, applicazioni, agenti di intelligenza artificiale e account di servizio al minimo necessario per la loro funzione
  • Usare il controllo degli accessi in base al ruolo per gestire le autorizzazioni a livello di agente, separate dalle autorizzazioni degli sviluppatori che hanno creato l'agente
  • Esaminare e revocare le autorizzazioni non necessarie regolarmente
  • Ridurre il raggio di esplosione di un account compromesso assicurando che nessuna singola identità abbia accesso ampio

Proteggere l'archiviazione e la trasmissione dei dati

Proteggere i dati in tutta la pipeline di intelligenza artificiale:

  • Crittografare i dati sensibili inattivi e in transito, tra cui i file di modelli, i dati di training, i log delle conversazioni e i payload dell'API
  • Usare protocolli sicuri (TLS 1.2 o versione successiva) per tutti gli scambi di dati tra i componenti del sistema di intelligenza artificiale
  • Archiviare segreti, chiavi API e credenziali in sistemi di gestione segreti dedicati, mai nel codice, nei file di configurazione o nelle richieste
  • Applicare criteri di conservazione ai log di conversazione e ai dati di interazione per ridurre al minimo l'esposizione

Monitoraggio e osservabilità

Monitorare il comportamento delle applicazioni di intelligenza artificiale per individuare le anomalie di sicurezza:

  • Monitorare i modelli di risposta per rilevare segni di jailbreaking, iniezione di prompt o tentativi di esfiltrazione di dati.
  • Monitorare le chiamate all'agente per un comportamento imprevisto: chiamate a endpoint non autorizzati, trasferimenti dei dati insolitamente di grandi dimensioni o azioni che non rientrano nell'ambito
  • Configurare avvisi per modelli di utilizzo anomali, ad esempio picchi improvvisi nelle chiamate API o modelli di query insoliti che potrebbero indicare un attacco di estrazione del modello
  • Gestire log di controllo completi che acquisiscino l'identità utente, l'identità dell'agente, le azioni eseguite e i dati a cui si accede

Test e controllo di sicurezza regolari

Eseguire valutazioni della sicurezza in corso che includono scenari specifici dell'intelligenza artificiale:

  • Valutazioni delle vulnerabilità: analizzare i componenti del sistema di intelligenza artificiale per individuare vulnerabilità note, tra cui framework di gestione dei modelli, database vettoriali e strumenti di orchestrazione
  • Test di penetrazione: includere scenari di attacco specifici dell'intelligenza artificiale (inserimento di richieste, jailbreaking, esfiltrazione dei dati) nei test di penetrazione
  • Revisioni del codice: esaminare il codice che gestisce la costruzione di richieste, il routing delle chiamate agli strumenti e il recupero dei dati per errori di sicurezza
  • Esercizi del red team: condurre normali esercizi di team rossi incentrati sull'intelligenza artificiale per testare l'efficacia dei controlli di sicurezza. Il modulo successivo di questo percorso di apprendimento illustra in dettaglio il red teaming di intelligenza artificiale.