Données et retrieval
Sécuriser le RAG d'un agent IA
Un RAG ne répond pas lui-même : il fournit à l'agent des extraits qui entrent dans le contexte du modèle. Tout ce qu'il restitue peut ensuite être résumé, cité, transmis à un outil ou renvoyé à l'utilisateur.
Protéger un RAG suppose de répondre à deux questions différentes : le contenu est-il sûr, et l'agent a-t-il le droit de le voir ?
Par Sécurité Agentique · Publié le
Sécurité du contenu
Ce document contient-il une instruction cachée, un secret, une donnée personnelle, une information empoisonnée ?
Autorisation de la donnée
Hermes a-t-il le droit de récupérer ce document pour cet utilisateur, dans ce contexte, pour cette finalité ?
01
Un document récupéré devient une entrée de l'agent
Un extrait RAG n'est pas une donnée passive. Une fois dans le contexte, il a le même poids que la demande de l'utilisateur pour le modèle. Il peut contenir :
- Donnée métier
- Le contenu attendu.
- PII
- Noms, identifiants, coordonnées.
- Secret
- Clé ou token oublié dans un document.
- Instruction cachée
- Texte blanc, commentaire, métadonnée.
- Contenu empoisonné
- Fausse information rédigée pour être récupérée.
- Source compromise
- Espace partagé modifié par un tiers.
Trois risques en découlent. L'indirect prompt injection : une instruction lue dans un document détourne l'agent. Le RAG poisoning : un contenu planté dans une source indexée oriente les réponses ou les actions. Le data leakage : un extrait que l'utilisateur ne devait pas voir est restitué, résumé ou transmis à un outil.
03
Le parcours d'une requête RAG sécurisée
Le PEP intercepte. Le PDP évalue, par exemple avec Axiomatics. Le RAG produit des candidats. Le PEP, ou la data access layer, ne restitue que les éléments autorisés et applique les éventuels masquages. Axiomatics décide ; il ne filtre pas lui-même l'index.
Selon l'architecture, le PDP peut aussi être consulté avant la recherche pour produire un filtre sur les métadonnées : la base vectorielle ne renvoie alors que des documents éligibles. Le mécanisme de décision et d'enforcement est détaillé dans autorisation fine des agents IA.
04
Du document au champ
- Collection
- Tout un corpus : « RH », « Juridique ».
- Document
- Un fichier et ses métadonnées.
- Chunk
- Un extrait indexé, qui hérite ou non des métadonnées du document.
- Record
- Une ligne issue d'une source structurée.
- Champ
- Une colonne : salaire, IBAN.
- Attribut
- Une propriété utilisée par la politique.
La granularité réellement disponible dépend de trois choses : la structure du RAG (les chunks conservent-ils l'identifiant et la classification du document source ?), la qualité des métadonnées, et la capacité du point d'enforcement à filtrer ou masquer à ce niveau. Une politique au champ ne sert à rien si le PEP ne voit que des documents entiers.
05
Exemple Hermes : le dossier RH
Martin, de l'équipe Finance, demande : « Quel est le salaire de Claire ? ». La recherche vectorielle retrouve le dossier RH de Claire. Le document est présent dans le corpus ; cela ne signifie pas qu'il doit être envoyé au modèle.
Demande de Martin
- Utilisateur
- Martin
- Équipe
- Finance
- Agent
- Hermes
- Action
- read
- Ressource
- Dossier RH de Claire
- Classification
- confidentiel · RH
- Finalité
- question ponctuelle
✕ DENY
Demande du responsable RH
- Utilisateur
- Responsable RH (attribut modifié)
- Équipe
- RH (attribut modifié)
- Agent
- Hermes
- Action
- read
- Ressource
- Dossier RH de Claire
- Classification
- confidentiel · RH
- Finalité
- revue annuelle (attribut modifié)
✓ PERMIT
Dans le premier cas, le document est écarté par le PEP avant la génération : Hermes répond qu'il ne peut pas fournir cette information, sans l'avoir lue. Dans le second, il est transmis, éventuellement avec des champs masqués par obligation.
06
Protection contre les contenus malveillants
L'inspection s'applique à deux moments : à l'indexation, pour ne pas faire entrer de contenu dangereux, et à la récupération, parce qu'une source peut changer après indexation.
- Prompt injection et instructions cachées
- Texte invisible, commentaires, métadonnées rédigées comme des consignes.
- Retrieval anormal
- Requêtes qui balaient le corpus, volume inhabituel, collections jamais consultées.
- RAG poisoning
- Contenu récent qui contredit les sources de référence ou cible des requêtes précises.
- Secrets et PII
- Clés, tokens, identifiants personnels présents dans des documents.
- Déclencheurs de tool calls
- Extraits qui poussent l'agent vers un outil ou une destination, point de jonction avec la sécurité des MCP.
AccuKnox est un exemple de couche d'inspection des interactions LLM, des données et des workloads IA. Un guardrail réduit le risque ; il ne rend pas un contenu fiable. Un extrait qui passe l'inspection reste une entrée non fiable pour l'agent. Le contrôle de ce qui part ensuite vers le modèle est traité dans protéger les données sensibles envoyées au LLM.
07
Les métadonnées deviennent des attributs de sécurité
classification = confidentiel department = RH country = FR owner = DRH project = ORION tenant = A retention = restricted
Chaque ligne devient un attribut que le PDP peut évaluer : « un document department=RH n'est restitué qu'à un utilisateur de l'équipe RH », « un document tenant=A n'est jamais servi à un utilisateur du tenant B ».
À l'inverse, des métadonnées pauvres limitent la politique : un chunk sans classification force à choisir entre tout refuser et tout autoriser ; un propriétaire obsolète ouvre l'accès à la mauvaise personne ; une classification perdue au découpage en chunks rend le document confidentiel invisible pour le contrôle.
08
Journaliser la décision
Une trace utile permet de reconstruire pourquoi un extrait a été, ou non, envoyé au modèle.
- Qui
- L'utilisateur d'origine.
- Quel agent
- Identité et version de l'agent.
- Quelle requête
- La question et la requête de recherche générée.
- Quelle ressource
- Identifiants des documents et chunks candidats.
- Quelle politique
- Règle et version appliquées.
- Quelle décision
- Permit, Deny, obligations.
- Quels résultats
- Éléments effectivement restitués.
- Quel contexte
- Finalité, horaire, terminal, environnement.
Journaliser la décision sans les résultats ne permet pas de savoir ce que le modèle a vu. Journaliser les résultats sans la politique ne permet pas de savoir pourquoi.
FAQ
Questions fréquentes
Comment sécuriser un RAG ?
En traitant séparément deux sujets. La sécurité du contenu : inspecter ce qui est indexé et ce qui est récupéré contre les instructions cachées, les secrets, les données personnelles et les documents empoisonnés. L'autorisation de la donnée : placer un point d'enforcement entre l'agent et le retrieval, qui ne restitue que les éléments autorisés pour cet utilisateur, cet agent et cette finalité. Les deux s'appuient sur des métadonnées fiables et produisent des traces.
Qu'est-ce que le RAG poisoning ?
L'insertion, dans le corpus indexé, d'un contenu conçu pour être récupéré et influencer l'agent : fausse information présentée comme officielle, instruction cachée, lien piégé. Il suffit souvent d'un accès en écriture à une source indexée, comme un wiki ou un espace partagé.
Qu'est-ce qu'une indirect prompt injection ?
Une instruction qui n'est pas saisie par l'utilisateur mais arrive via un contenu que l'agent lit : document du RAG, page web, résultat d'outil. Le modèle ne distingue pas de façon fiable les données des instructions, et peut suivre l'instruction injectée.
Comment empêcher un agent de lire certains documents ?
En ne comptant pas sur le prompt. Un PEP placé dans la couche d'accès aux données interroge un PDP avec l'utilisateur, l'agent, la classification du document et la finalité, puis filtre les résultats avant leur envoi au modèle. Un document refusé ne doit jamais atteindre le contexte.
Peut-on filtrer les résultats d'un RAG par utilisateur ?
Oui, à condition que chaque document ou chunk porte les métadonnées nécessaires (propriétaire, département, classification, pays) et que le filtrage soit appliqué par un composant sur le chemin du retrieval, avant ou après la recherche vectorielle selon l'architecture retenue.
Quelle différence entre DLP et autorisation ?
La DLP reconnaît un type de contenu sensible (numéro de carte, données de santé, secret) et bloque ou masque sa circulation. L'autorisation décide si un sujet donné peut accéder à une ressource donnée. Une fiche de salaire ne contient pas forcément de motif DLP, mais reste interdite à un collaborateur hors RH.
Faut-il placer un PEP devant un RAG ?
Dès que le corpus contient des documents qui ne sont pas accessibles à tous les utilisateurs de l'agent, oui. Sans PEP, l'agent récupère ce que l'index contient et le modèle le voit, quelle que soit la personne pour laquelle il agit.
Comment gérer les documents confidentiels dans un RAG ?
Les classifier avant indexation, conserver cette classification dans les métadonnées de chaque chunk, les isoler dans des collections dédiées lorsque c'est possible, et soumettre leur récupération à une décision d'autorisation. Journaliser chaque accès avec la politique appliquée.
Continuer l'exploration
Votre agent possède-t-il plus de pouvoir que sa mission ne l'exige ?
Nous pouvons cartographier ses données, outils, API et actions pour identifier les points de contrôle réellement utiles.