La vulnerabilità BACS (Broken Access Control at Search) si verifica quando un'architettura RAG indicizza documenti aziendali (contratti, buste paga, cartelle cliniche) all'interno di un unico Vector Database piatto, ignorando le Access Control List (ACL) originarie del document management system.
Durante la fase di retrieval, se l'utente pone una domanda come 'Quali sono i bonus del management?', il motore vettoriale estrae i chunk più pertinenti semanticamente e li inietta nel prompt dell'LLM, che risponde divulgando informazioni riservate a utenti non autorizzati.
Contromisure architetturali:
- Pre-Filtering con ACL Metadata: associa a ogni chunk vettoriale gli ID dei gruppi autorizzati e impone filtri deterministici nella query di similarity (filter: { role: { $in: user_roles } }).
- Post-Retrieval Authorization: verifica le autorizzazioni di lettura contro l'Identity Provider prima di passare i chunk al context window.