Le journal d'audit est la fonctionnalité de sécurité IA la plus sous-estimée
Par Ulrich Dohou, Software Engineer
Toutes les équipes que j’ai auditées au cours de l’année écoulée et qui font tourner un agent LLM en production disposent d’une forme de journalisation. La plupart journalisent la sortie du modèle. Certaines journalisent l’entrée de l’utilisateur. Presque aucune ne journalise la fenêtre de contexte complète, le system prompt, l’historique de conversation, les documents récupérés, la chaîne d’appels d’outils et les paramètres du modèle.
Résultat : quand quelque chose tourne mal, et ça arrivera, elles peuvent me dire ce que le modèle a dit, mais pas pourquoi il l’a dit. Elles ont le verdict, mais pas le compte rendu d’audience.
Pourquoi journaliser le contexte est essentiel
La sortie du modèle est une fonction de son entrée. Quand un modèle prend une mauvaise décision, halluciner un fait, suivre une injection de prompt, utiliser un outil qu’il ne devrait pas, le diagnostic se trouve toujours dans l’entrée, pas dans la sortie. Vous devez pouvoir reconstituer, exactement, ce que le modèle a vu au moment où il a pris la décision.
Cela signifie journaliser :
- Le system prompt complet, y compris tout identifiant de version
- L’historique de conversation complet de la session
- Chaque document récupéré par la couche RAG, y compris les scores de pertinence
- Chaque appel d’outil effectué par le modèle, et la réponse reçue
- L’identifiant du modèle, la température et tout autre paramètre de génération
- Des horodatages assez précis pour reconstituer l’ordre des opérations
L’objection du coût
« Ça fait beaucoup de données. » Oui, c’est vrai. Mais vous payez déjà pour les tokens. Les stocker coûte peu en comparaison, et l’alternative, ne pas savoir pourquoi votre agent a fait ce qu’il a fait, coûte bien plus cher quand un client, un régulateur ou un journaliste pose la question.
Compressez-les. Conservez-les 90 jours. Mettez-les derrière des contrôles d’accès. Mais journalisez-les. La première fois que vous aurez un incident et que vous pourrez rejouer le contexte complet, vous vous demanderez comment vous avez pu fonctionner sans cela.
L’objection de la confidentialité
« On ne peut pas journaliser les conversations des utilisateurs. » Peut-être. Cela dépend de votre juridiction et de vos conditions d’utilisation. Mais la réponse est rarement « ne rien journaliser ». C’est généralement « journaliser ce dont vous avez besoin, caviarder ce que vous devez, et conserver pendant la période minimale qui rend une investigation forensique possible ».
Le journal d’audit n’est pas une affaire de surveillance. C’est une affaire de responsabilité. Si votre agent peut prendre des décisions qui affectent l’argent, les données ou les accès des personnes, vous avez besoin d’une trace de la façon dont ces décisions ont été prises. C’est un prérequis de base dans le logiciel traditionnel. Cela devrait l’être pour l’IA.
C’est aussi pour ça que la checklist de trente minutes avant de lancer une app vibe-codée inclut un volet de logs structurés en parallèle du verrouillage de base : sans la trace, le diagnostic post-incident est impossible, quel que soit le périmètre du produit.
Abonnez-vous pour recevoir l'article de vendredi prochain ci-dessous.
Un e-mail · le vendredi · désabonnement à tout moment