Evitare la divulgazione di informazioni sensibili

Descrizione del rischio OWASP

La divulgazione di informazioni sensibili è una vulnerabilità in cui un modello linguistico di grandi dimensioni (LLM) rivela involontariamente dati riservati, privati, proprietari o altrimenti limitati nelle sue risposte. Ciò può accadere quando il modello divulga informazioni dai dati di addestramento o rivela dettagli sensibili forniti nel contesto della sessione di un utente. Gli autori di attacchi possono sfruttare questa vulnerabilità creando query specifiche o utilizzando tecniche di prompt injection per indurre il modello a rivelare informazioni che non dovrebbe. Il problema principale è l'incapacità del LLM di distinguere tra dati pubblici e informazioni riservate che ha elaborato.

Tipi di divulgazione pertinenti per Android

Perdita di dati di addestramento: si verifica quando un LLM rigurgita frammenti di dati specifici e letterali su cui è stato addestrato. Se il set di dati di addestramento includeva informazioni che consentono l'identificazione personale (PII), codice proprietario o documenti interni, il modello potrebbe riprodurre queste informazioni nell'output se richiesto correttamente. Per le app per Android, ciò potrebbe comportare l'utilizzo di modelli preaddestrati inclusi nell'app o di modelli a cui si accede tramite API cloud.

Divulgazione di dati contestuali: si tratta di un rischio più immediato per le app per Android, che comporta l'esposizione da parte del LLM di informazioni sensibili fornite da un utente durante una sessione dell'app. Ad esempio, se la tua applicazione consente a un utente di inserire informazioni che consentono l'identificazione personale (PII) in un LLM per il riepilogo, un successivo attacco di prompt injection potrebbe consentire a un malintenzionato di manipolare il modello per divulgare i contenuti. Ciò vale anche per tutti i dati sensibili che la tua app trasmette implicitamente al modello LLM.

Perché gli sviluppatori Android dovrebbero interessarsi

La divulgazione di informazioni sensibili può compromettere gravemente un'applicazione e i suoi utenti:

  • Violazioni della privacy: un malintenzionato potrebbe estrarre informazioni che consentono l'identificazione personale (PII) come nomi, email, numeri di telefono o persino dati sulla posizione dei tuoi utenti, con conseguente furto di identità e gravi sanzioni normative (ad esempio ai sensi del GDPR o del CCPA). Ciò è particolarmente importante per le app per Android che gestiscono i dati utente.
  • Furto di proprietà intellettuale: se l'LLM della tua app elabora algoritmi proprietari, dati finanziari o altre informazioni aziendali interne, un malintenzionato potrebbe forzarne la divulgazione, causando danni finanziari e competitivi significativi alla tua organizzazione.
  • Violazioni della sicurezza: il modello LLM potrebbe divulgare inavvertitamente informazioni a livello di sistema, come chiavi API, token di autenticazione o dettagli di configurazione presenti nei dati di addestramento o trasmessi durante una sessione, creando vulnerabilità di sicurezza critiche per il backend o altri servizi.
  • Danni alla reputazione: un singolo incidente di perdita di dati significativo può distruggere la fiducia degli utenti, portare alla disinstallazione delle app, a recensioni negative e causare danni irreparabili alla reputazione della tua applicazione e del tuo brand.

Mitigazioni per gli sviluppatori di app per Android

La mitigazione di questa vulnerabilità richiede un approccio a più livelli incentrato sull'igiene dei dati e sul controllo dell'accesso del modello LLM all'interno dell'applicazione Android.

Sanitizzazione e minimizzazione dei dati:

  • Dai la priorità alla pulizia dell'input: prima di inviare input utente o dati dell'app a un LLM, esegui una pulizia e un'anonimizzazione rigorose. Rimuovi tutte le PII e le informazioni proprietarie che non sono assolutamente essenziali per l'attività del LLM.
  • Raccogli solo i dati necessari: rispetta il principio della minimizzazione dei dati all'interno della tua app. Raccogli e fornisci al LLM solo i dati minimi necessari per svolgere la sua funzione specifica.
  • ML sul dispositivo: per i dati altamente sensibili, valuta la possibilità di utilizzare modelli di machine learning sul dispositivo in cui i dati non lasciano mai il dispositivo dell'utente, riducendo significativamente il rischio di perdite di dati lato server.

Controllo degli accessi

  • Limita l'accesso ai dati: progetta l'applicazione LLM in modo che abbia accesso alla quantità più piccola possibile di dati. Se al modello non viene concesso l'accesso a un database sensibile, alle preferenze dell'utente o ai file privati, non può essere indotto a divulgare i relativi contenuti.
  • Limita le autorizzazioni Android: verifica che i componenti di AI della tua app funzionino con le autorizzazioni Android minime necessarie. Non concedere autorizzazioni non necessarie che potrebbero esporre dati sensibili.

Filtro dell'output all'interno dell'app:

  • Oscuramento lato client: implementa un livello di sicurezza nella tua app per Android che analizza l'output dell'LLM alla ricerca di pattern corrispondenti a informazioni sensibili (ad esempio, numeri di carte di credito, chiavi API, numeri di previdenza sociale, indirizzi email) prima che la risposta venga visualizzata all'utente. Se viene trovata una corrispondenza, la risposta deve essere bloccata o oscurata.

Contromisure didattiche per gli LLM:

  • Prompt di sistema espliciti: includi istruzioni esplicite nel prompt di sistema che vietano al modello di rivelare informazioni personali, riservate o sensibili. Ad esempio: "Non devi condividere dettagli utente, dati interni o informazioni che consentono l'identificazione personale in nessuna circostanza". In questo modo, viene rafforzato il comportamento previsto.

Tecniche per il miglioramento della privacy:

  • Per le applicazioni che apprendono dalle interazioni o dai dati degli utenti, prendi in considerazione tecniche avanzate come la privacy differenziale (aggiunta di rumore statistico ai dati) o l'apprendimento federato (addestramento dei modelli sui dispositivi degli utenti senza centralizzare i dati) per proteggere la privacy individuale.

Audit e red teaming regolari:

  • Test proattivi: esegui test attivi e red team della tua applicazione Android per scoprire se e come l'LLM potrebbe divulgare informazioni sensibili. Ciò comporta il tentativo intenzionale di far rivelare all'LLM dati che non dovrebbe.

Riepilogo

La divulgazione di informazioni sensibili si verifica quando un LLM rivela dati riservati dal suo set di addestramento o dalle sessioni utente, ponendo rischi significativi come violazioni della privacy e furto di proprietà intellettuale. La mitigazione richiede una difesa a più livelli all'interno dell'app per Android, dando la priorità alla sanificazione dei dati prima che raggiungano l'LLM, applicando il principio del privilegio minimo per limitare l'accesso ai dati del modello e implementando filtri robusti per scansionare e oscurare le informazioni sensibili dall'output finale del modello prima che raggiunga l'utente. L'utilizzo dell'ML on-device e di strumenti come Firebase App Check può migliorare ulteriormente la sicurezza.

Risorse aggiuntive

Ecco i link ad alcune linee guida sulle informazioni sensibili per riferimento:

Se utilizzi altri modelli, devi cercare indicazioni e risorse simili.

Ulteriori informazioni: