Il protège vos modèles IA en repérant les signaux que la cybersécurité classique voit mal : dérive, poisoning, injections, dépendances douteuses. Je vais vous montrer quoi surveiller, comment connecter ça au SIEM, et où automatiser sans créer une usine à alertes.
Pourquoi le monitoring classique rate l’IA ?
Le monitoring classique rate souvent l’IA parce qu’il surveille un système comme s’il était stable, prévisible, presque mécanique. Une API classique reçoit une requête, applique une règle, renvoie une réponse. Une base de données répond ou ne répond pas. Un modèle IA, lui, interprète, généralise, hésite parfois, et peut changer de comportement sans planter.
C’est là que beaucoup d’équipes se font avoir. Elles regardent la latence, le taux d’erreurs 500, la saturation CPU, les appels API. C’est utile, bien sûr. Mais ça ne dit presque rien sur la qualité réelle des réponses, sur la confiance du modèle, sur la dérive des données, ou sur le fait qu’un utilisateur est en train de pousser le modèle hors de sa zone normale.
Sur le terrain, je vois souvent le même scénario. Le dashboard est propre, tout est vert, les temps de réponse sont bons. Mais personne ne suit les scores de confiance, les clusters de prompts, les changements de distribution des entrées, ou les comportements bizarres en production. Le modèle répond vite, oui. Mais il répond peut-être n’importe quoi, ou il fuit une information sensible, ou il obéit à une instruction malveillante cachée dans un document.
Les risques IA ne ressemblent pas aux risques applicatifs classiques. Ils sont plus flous, plus contextuels, et souvent plus silencieux.
- Les données peuvent être altérées, volontairement ou non, et pousser le modèle à apprendre ou prédire sur une base fausse.
- Les requêtes adversariales peuvent être conçues pour tromper le modèle, contourner ses garde-fous ou provoquer une réponse dangereuse.
- La prompt injection peut faire passer une instruction cachée avant les règles du système, surtout dans les applications qui lisent des emails, des PDF ou des pages web.
- Les dépendances compromises, comme un modèle tiers, un package Python ou une API externe, peuvent introduire un risque sans toucher au code principal.
- Les accès API suspects peuvent révéler du scraping, du vol de données, du test automatisé d’attaques ou une clé exposée.
- La baisse de confiance du modèle peut annoncer une dérive, un changement métier ou un problème dans les données d’entrée.
Le NIST AI Risk Management Framework pousse justement à surveiller le risque IA dans la durée, pas seulement au déploiement. L’OWASP Top 10 for LLM Applications met en avant les attaques propres aux modèles de langage, comme la prompt injection ou la fuite de données. MITRE ATLAS documente les tactiques d’attaque contre les systèmes IA, un peu comme MITRE ATT&CK le fait pour la cybersécurité classique.
Le point clé est simple. Si je surveille une IA comme une API classique, je vois surtout quand elle tombe. Je ne vois pas forcément quand elle se trompe, quand elle dérive, ou quand quelqu’un l’utilise contre moi. Et c’est exactement là qu’il faut regarder maintenant, surtout côté données et supply chain.
Comment le poisoning entre dans le modèle ?
Le poisoning entre dans le modèle quand un attaquant modifie les données d’entraînement ou de fine-tuning pour y installer un biais, une porte dérobée ou un comportement fragile. C’est dangereux parce que le modèle peut très bien passer les tests classiques, partir en production, puis se comporter bizarrement seulement dans un cas précis. Un mot-clé, une tournure, un type d’image, un segment client. Le piège, c’est que l’attaque ne fait pas forcément “planter” le modèle. Elle le rend subtilement mauvais au bon moment.
J’ai déjà vu des équipes chercher un bug dans le code alors que le problème venait d’un dataset “corrigé” à la main trois semaines avant. Personne n’avait tracé précisément qui avait changé quoi. Et là, on perd du temps, mais surtout on perd la confiance dans le système.
Les premiers signaux à surveiller sont simples, mais souvent oubliés. Il faut savoir si les données ont bougé, quand, comment, et par qui.
- Hashs des jeux de données, pour détecter toute modification. Un hash, c’est une empreinte unique d’un fichier ou d’un dataset.
- Contrôle d’intégrité avant entraînement, fine-tuning et déploiement.
- Détection d’écritures non autorisées sur les espaces de stockage, les buckets, les tables ou les pipelines.
- Dérive de distribution, quand les données récentes ne ressemblent plus aux données attendues.
- Comparaison du comportement du modèle en production avec une référence connue, par exemple un modèle validé ou un jeu de tests stable.
- Suivi strict des datasets tiers, parce qu’un fichier externe “pratique” peut devenir une porte d’entrée.
Le poisoning est aussi un sujet de supply chain. La supply chain, ici, c’est toute la chaîne qui nourrit votre IA : modèles pré-entraînés, bibliothèques open-source, dépendances Python, jeux de données publics, scripts de préparation, notebooks copiés-collés. Si un élément est compromis, le modèle peut hériter du problème sans que personne ne le voie.
La provenance devient donc centrale. Je veux savoir d’où vient chaque artefact ML, c’est-à-dire chaque modèle, dataset, fichier de configuration ou pipeline utilisé. Les signatures d’artefacts, la vérification des hashs, un registre clair des versions et un SBOM ML aident énormément. Un SBOM, c’est une liste des composants utilisés, comme une notice d’ingrédients pour votre système IA. Ce n’est pas juste de la sécurité. C’est aussi de la traçabilité business. Quand un modèle prend une mauvaise décision, il faut pouvoir remonter la chaîne vite.
| Risque | Signal à surveiller | Réaction utile |
| Dataset modifié en douce | Hash différent ou écriture non autorisée | Bloquer l’entraînement et restaurer la version validée |
| Porte dérobée dans le modèle | Comportement anormal sur certains prompts ou segments | Comparer avec une référence et isoler les cas déclencheurs |
| Dépendance compromise | Changement de version, package inconnu, signature absente | Geler les dépendances et vérifier la provenance |
Comment détecter les attaques sur les entrées ?
On détecte les attaques sur les entrées en cherchant des comportements bizarres dans les logs d’inférence, pas seulement des mots interdits ou des règles fixes. C’est un point important, parce qu’en prod les attaques ressemblent rarement à un gros panneau rouge. Elles ressemblent plutôt à une série de requêtes presque normales, répétées, ajustées, jusqu’à trouver une faiblesse.
Première famille : les attaques adversariales. Ici, l’attaquant modifie légèrement l’entrée pour faire changer la sortie du modèle. Ça peut être quelques pixels dans une image, des tokens remplacés dans un texte, une formulation très proche, ou une variation quasi invisible pour un humain. Le modèle, lui, peut basculer complètement.
Les signaux que je surveille sont assez concrets :
- Des requêtes visuellement ou sémantiquement proches, mais avec des scores de confiance très différents.
- Des clusters de requêtes autour d’une même frontière décisionnelle, donc plein de tests qui tournent autour du moment où le modèle hésite.
- Une baisse moyenne de confiance sur un segment d’utilisateurs, une API key, une IP ou une famille de prompts.
- Des répétitions de tests ciblés, avec de petites variations à chaque appel.
J’ai déjà vu ça chez un client sur un modèle de classification documentaire. Les requêtes semblaient propres, mais les mêmes documents revenaient avec des variantes minuscules. Le but était simple : trouver la formulation qui faisait passer un document risqué dans la mauvaise catégorie.
Deuxième famille : la prompt injection. Là, on parle surtout des LLM, les modèles de langage. L’injection peut être directe, quand l’utilisateur écrit “Ignore les instructions précédentes”. Elle peut aussi être indirecte, via une page web, un PDF, un email ou une base de connaissance que le modèle consulte. Le point clé est brutal : un LLM ne distingue pas toujours instruction et donnée. Si une page externe contient une instruction cachée, le modèle peut la suivre comme si elle venait de vous.
Les mesures utiles sont simples à dire, moins simples à tenir proprement :
- Traiter toute entrée externe comme dangereuse par défaut.
- Encapsuler les contenus externes avec des balises explicites, pour rappeler au modèle que c’est une donnée, pas une consigne.
- Mettre des garde-fous avant le modèle principal, par exemple un filtre qui bloque les demandes suspectes.
- Ajouter un classificateur d’injection de prompt, entraîné ou configuré pour repérer les tentatives classiques et les variantes.
- Tracer les sources externes consultées, avec leur URL, leur type, leur hash et leur rôle dans la réponse.
Sans cette télémétrie, on vole à l’aveugle. Et c’est justement elle qui permet ensuite de comprendre quoi mesurer, quoi alerter, et quoi corréler dans le monitoring IA.
Quelle télémétrie faut-il vraiment collecter ?
Il faut collecter la télémétrie qui permet de comprendre les entrées, les sorties, le contexte d’appel et l’état du pipeline IA. Le piège, c’est de vouloir tout stocker “au cas où”. Je l’ai vu chez un client, ça finit vite en lac de logs illisible, cher, et inutilisable quand il faut enquêter vite.
L’objectif, c’est de garder les signaux qui aident vraiment à détecter une anomalie. Une attaque, une dérive, un abus d’API, un pipeline qui répond bizarrement, ou un modèle qui perd confiance sans raison claire.
Je découpe ça en trois familles simples :
- Télémétrie des inférences : Entrées reçues, sorties générées, score de confiance, modèle utilisé, version du prompt ou du système, alertes de filtrage de contenu. Le score de confiance, c’est l’indicateur qui dit à quel point le modèle ou le classifieur estime sa réponse fiable.
- Métriques runtime : Latence, débit, erreurs, santé des pipelines, saturation GPU ou CPU, files d’attente, dérive de schéma. La dérive de schéma, c’est quand les données reçues ne ressemblent plus à ce que le pipeline attendait, par exemple un champ manquant ou un format qui change.
- Patterns d’accès : Identité de l’appelant, origine réseau, fréquence, endpoint appelé, clé API, service ou application cliente. C’est souvent là qu’on repère un usage automatisé agressif ou un compte compromis.
La confidentialité compte autant que la sécurité. Je journalise intelligemment. Je minimise les données sensibles, je masque ce qui peut l’être, je pseudonymise quand c’est nécessaire. Pseudonymiser, ça veut dire remplacer une donnée identifiable par un identifiant technique, pour pouvoir corréler les événements sans exposer directement la personne.
Le flux cible reste assez simple. Les applications produisent des logs structurés, idéalement en JSON. Une couche de détection d’anomalies non supervisée cherche les comportements inhabituels sans avoir besoin d’exemples d’attaque déjà connus. Les événements sont enrichis avec de la threat intelligence, c’est-à-dire des infos sur les IP, domaines ou signatures suspectes, puis avec la CMDB, la base qui décrit les actifs internes. Ensuite, tout part vers le SIEM, l’outil central de supervision sécurité.
Les détections utiles sont concrètes : pic d’alertes de filtrage, nouveau cluster d’entrées jamais vu, baisse soudaine du score de confiance, variation de latence liée à un pipeline précis, accès API inhabituel depuis une origine inconnue.
| Quoi collecter | Pourquoi | Où l’envoyer |
| Entrées, sorties, scores, alertes de contenu | Détecter abus, jailbreaks, dérives et réponses anormales | Logs structurés, moteur d’anomalies, SIEM |
| Latence, débit, erreurs, santé pipeline, dérive de schéma | Repérer incidents runtime, surcharge ou changement de données | Observabilité, monitoring IA, SIEM |
| Identité, origine, endpoint, fréquence, clé API | Identifier accès suspects, abus d’API ou compte compromis | IAM, threat intelligence, SIEM |
Quelle réponse automatiser sans se piéger ?
Il faut automatiser les réponses simples et réversibles, puis garder l’humain dans la boucle quand l’impact business ou modèle devient sérieux. C’est la règle que j’applique en prod. L’automatisation sécurité IA ne doit pas bloquer toute la production à la première anomalie, sinon les équipes vont la contourner, et là on a perdu.
La bonne approche, c’est une réponse graduée. On commence par journaliser, enrichir l’alerte, augmenter le niveau de filtrage. Puis seulement si le risque monte, on isole une source d’entrée, on limite un appelant API, on met en quarantaine un dataset suspect, ou on bloque une dépendance non vérifiée. Quand ça touche au modèle lui-même, par exemple basculer vers une version connue et stable, j’aime bien garder une validation humaine sauf cas déjà très cadré.
| Action automatique raisonnable | Validation humaine préférable |
| Ajouter du logging, enrichir avec l’identité, augmenter un filtre, limiter temporairement un appel API. | Couper un service critique, supprimer un dataset, changer de modèle en production, bloquer un client important. |
| Créer un ticket priorisé dans le SIEM ou le SOAR. Le SIEM centralise les logs et alertes. Le SOAR orchestre les réponses. | Décider qu’un comportement modèle est malveillant quand l’impact métier est ambigu. |
Un playbook concret que j’ai déjà vu bien marcher : détection d’un cluster de prompts suspects, c’est-à-dire plusieurs demandes proches qui semblent tenter une prompt injection, donc manipuler le modèle avec des consignes cachées. Le système calcule un score de risque, enrichit avec l’identité de l’appelant, son historique, son IP, son application. Si le score dépasse un seuil, on limite temporairement l’appelant API pendant quelques minutes, on pousse une alerte SIEM, puis une revue humaine décide si on bloque vraiment ou si c’était un faux positif.
Le point important, c’est que les classificateurs de prompt injection, les moniteurs de pipeline et les contrôles de provenance doivent fonctionner ensemble. Le pipeline, c’est toute la chaîne qui prépare les données et déclenche le modèle. La provenance, c’est la traçabilité de ce qui entre dans le système. Séparés, ces contrôles voient des bouts du problème. Ensemble, ils donnent un contexte exploitable.
Pour prioriser les premiers chantiers, je regarde toujours quatre critères simples :
- Criticité du modèle pour le business.
- Exposition externe, surtout API publiques ou partenaires.
- Sensibilité des données manipulées.
- Dépendances tierces, modèles, plugins, datasets ou librairies.
Et maintenant on surveille quoi en premier ?
Je commencerais par les signaux qui racontent vraiment la vie du modèle : entrées, sorties, scores de confiance, dérive, accès API, provenance des données et dépendances. Le reste vient après. L’AI security monitoring sert à voir ce que les outils classiques ratent : poisoning, prompt injection, attaques adversariales, supply chain fragile. Le bon setup, ce n’est pas une pluie d’alertes. C’est une télémétrie propre, une détection d’anomalies, une intégration SIEM et quelques réponses automatisées mais prudentes. Le bénéfice pour vous est simple : moins d’angles morts, moins de dégâts, plus de confiance en production.
FAQ
- Qu’est-ce que l’AI security monitoring ?
C’est la surveillance sécurité adaptée aux systèmes IA. Elle suit les entrées, les sorties, les scores de confiance, la dérive, les accès API, les pipelines de données et la provenance des modèles. L’idée est de repérer les anomalies propres à l’IA, pas seulement les attaques classiques réseau ou applicatives. - Pourquoi un SIEM classique ne suffit pas toujours pour l’IA ?
Un SIEM classique sait très bien centraliser et corréler des logs, mais il ne comprend pas toujours les signaux modèles : baisse de confiance, clusters d’entrées proches, dérive de distribution, prompt injection ou comportement non déterministe. Le bon réflexe, c’est de lui envoyer une télémétrie IA structurée et enrichie. - Quels sont les risques IA à surveiller en priorité ?
Je priorise le data poisoning, les attaques adversariales, la prompt injection, les vulnérabilités de supply chain et les accès API inhabituels. Ce sont les risques qui peuvent modifier le comportement d’un modèle, détourner ses réponses ou introduire une dépendance compromise dans le système. - Comment détecter une prompt injection ?
On la détecte en combinant plusieurs signaux : contenu qui tente d’ignorer les consignes, instruction cachée dans une source externe, changement brutal de comportement, pic d’alertes de filtrage, répétition de prompts similaires. Un classificateur d’injection et des garde-fous avant le modèle principal aident beaucoup. - Faut-il automatiser la réponse aux incidents IA ?
Oui, mais seulement sur les actions simples et réversibles : enrichir une alerte, limiter un appelant, isoler une source, mettre un dataset en quarantaine, basculer vers une version connue. Quand l’impact business est fort, je garde une validation humaine. L’automatisation doit réduire le risque, pas créer une panne.
A propos de l’auteur
Je suis Franck Scandolera, expert et formateur en tracking avancé server-side, Analytics Engineering, automatisation No/Low Code avec n8n, intégration de l’IA en entreprise et SEO/GEO. J’accompagne des équipes qui doivent industrialiser la donnée, l’IA et la mesure sans perdre le contrôle technique ni la gouvernance. J’ai travaillé avec Logis Hôtel, Yelloh Village, BazarChic, la Fédération Française de Football, Texdecor et d’autres. Je dirige l’agence webAnalyste et l’organisme Formations Analytics. Si vous voulez sécuriser vos usages IA, vos pipelines data ou vos automatisations, contactez-moi.
⭐ Analytics engineer, Data Analyst et Automatisation IA indépendant ⭐
- Ref clients : Logis Hôtel, Yelloh Village, BazarChic, Fédération Football Français, Texdecor…
Mon terrain de jeu :
- Data Analyst & Analytics engineering : tracking avancé (GTM server, e-commerce, CAPI, RGPD), entrepôt de données (BigQuery, Snowflake, PostgreSQL, ClickHouse), modèles (Airflow, dbt, Dataform), dashboards décisionnels (Looker, Power BI, Metabase, SQL, Python).
- Automatisation IA des taches Data, Marketing, RH, compta etc : conception de workflows intelligents robustes (n8n, App Script, scraping) connectés aux API de vos outils et LLM (OpenAI, Mistral, Claude…).
- Engineering IA pour créer des applications et agent IA sur mesure : intégration de LLM (OpenAI, Mistral…), RAG, assistants métier, génération de documents complexes, APIs, backends Node.js/Python.






