Aller au contenu principal
own2pwn
appsec/shadow-ai.tsx

Shadow AI : l'IA non autorisée en entreprise, et comment l'inventorier

Le shadow AI, c'est le shadow IT dont la donnée sort à l'usage et non au stockage : prompts, extensions, connecteurs OAuth, clés d'API de LLM. Comment le recenser concrètement, et ce que l'AI Act change.

own2pwn12 min de lecture

Des clés d'IA et des dépôts oubliés dehors ?

L'EASM d'own2pwn surveille en continu la face externe : secrets exposés, dépôts publics, actifs montés vite fait.

Voir ce qui fuit déjà

Il n'y a rien à installer, et c'est tout le problème. Le shadow AI, ces outils d'intelligence artificielle employés sans que la DSI ni la sécurité en aient connaissance ou les aient validés, ne pose aucun logiciel sur un poste et ne déclenche aucun ticket. Le ressort social, lui, est celui du shadow IT quinze ans plus tôt : quelqu'un a un besoin, l'outil officiel n'existe pas ou frustre, un service en ligne règle l'affaire en trente secondes. Personne ne demande d'autorisation, parce que personne n'a l'impression d'installer quoi que ce soit.

Ce qui a changé, en revanche, c'est l'endroit où la donnée sort. Le shadow IT produit un actif durable : un sous-domaine, un bucket, une instance qui reste allumée et qu'on finit par retrouver en scannant depuis l'extérieur. On en a détaillé la traque dans trouver les actifs exposés que personne ne gère, et cette méthode reste valable telle quelle. Elle ne trouvera simplement pas le shadow AI. Un collaborateur colle un contrat, un extrait de code ou un export client dans une fenêtre de chat, la réponse arrive, l'onglet se ferme. Rien n'a été déployé, rien n'écoute sur un port, et l'information est pourtant chez un tiers, dans une juridiction que personne n'a vérifiée, conservée selon des conditions que personne n'a lues.

Ce que le shadow AI change par rapport au shadow IT

La différence tient en une phrase : la donnée sort à l'usage, pas au stockage. Un bucket mal configuré fuit parce qu'il existe et qu'il est mal fermé ; un prompt fuit parce qu'on s'en sert, une fois, et il ne reste ensuite qu'une ligne dans un journal de proxy, si tant est qu'on ait un proxy et qu'on lise ses journaux.

Deuxième écart, moins commenté et plus sérieux : une partie du shadow AI ne se contente pas de recopier de la donnée, elle obtient un accès délégué. Un assistant qui lit vos courriels pour les résumer, un agent qui range votre stockage en ligne, un connecteur branché sur l'outil de tickets : tous demandent un jeton OAuth, et l'utilisateur clique sur Autoriser sans lire la liste des permissions. Ce n'est plus une copie de donnée à un instant T, c'est une porte ouverte dans la durée. Un assistant qui lit du contenu pour le résumer hérite d'ailleurs d'une classe de faille qui lui est propre, la prompt injection : la page ou le courriel qu'il ingère peut lui donner des ordres, et il les suivra avec les droits que vous lui avez accordés.

trajet-d-un-prompt
Poste de travail
Un collaborateur colle un document
Contrat, extrait de code, export client. Aucune installation, aucun droit administrateur, aucun ticket.
Votre réseau
Proxy sortant ou résolveur DNS
Voit un nom de domaine, une heure, un volume. Pas le contenu. C'est pourtant la seule trace que vous possédez de l'événement.
Tiers
Service d'IA générative
Traite la requête et la journalise. La rétention et l'usage éventuel pour l'entraînement dépendent du plan souscrit, ici un plan gratuit ouvert avec une adresse personnelle.
Hors de portée
Sous-traitants et durée de conservation
Il ne vous reste qu'un levier contractuel, et vous n'avez pas de contrat.
Le seul point du trajet où vous avez encore un levier technique, c'est la sortie de votre réseau.

Les formes que ça prend

Le terme sert de fourre-tout dans les brochures. En pratique, on rencontre cinq objets bien distincts, qui ne se détectent pas au même endroit et ne coûtent pas la même chose :

  • Le prompt : le cas le plus fréquent et le plus banal. Un contrat commercial collé pour en obtenir un résumé, un extrait de base de données collé pour qu'on l'explique, un bout de code propriétaire collé pour le déboguer. Le préjudice ne se voit jamais tout de suite, ce qui explique qu'il ne remonte jamais.
  • L'extension de navigateur : un assistant installé en deux clics réclame en général la permission <all_urls>, présentée à l'utilisateur comme "lire et modifier toutes vos données sur tous les sites". Un résumeur de page qui a ce droit lit aussi le webmail, le CRM et l'outil de tickets. Et une extension se met à jour toute seule : celle que vous avez regardée en janvier n'est pas celle qui tourne en juin, ce qui la range dans la même famille de problèmes qu'une attaque sur la chaîne d'approvisionnement logicielle.
  • Le connecteur et l'agent : la catégorie qui surprend le plus au premier inventaire. Chaque bouton "Se connecter avec Google" ou "Se connecter avec Microsoft" laisse derrière lui une application enregistrée dans l'annuaire et un octroi de permissions. Le jeton de rafraîchissement associé survit au changement de mot de passe de l'utilisateur, et souvent à son départ si le compte n'a pas été désactivé proprement.
  • La clé d'API de modèle de langage : préfixée sk-, sk-ant-, AIza ou hf_ selon le fournisseur, posée dans un script pour un essai, poussée dans un dépôt, oubliée. Elle ne déverrouille pas vos données, elle déverrouille votre facture. Le sujet rejoint celui de la fuite de secrets dans le code, à ceci près que la revente d'accès à des modèles payants est devenue une activité en soi : les équipes de recherche de Sysdig ont documenté ce détournement sous le nom de LLMjacking dès mai 2024.
  • Le code généré : produit vite, relu peu, poussé en production. J'ai démonté une application entière construite comme ça dans vibe coding et sécurité : front impeccable, autorisations inexistantes.

Inventorier le shadow AI sans interroger personne

Le questionnaire interne est le pire outil pour ce travail. Il mesure ce que les gens acceptent de déclarer, c'est-à-dire ce qu'ils pensent avoir le droit de faire. Quatre sources techniques donnent une image nettement plus fidèle, et aucune ne demande la coopération de l'utilisateur.

Les journaux du proxy sortant et du DNS

C'est la source la plus rapide à exploiter, parce qu'elle existe déjà. Un agrégat par domaine sur trente jours suffit à dresser la carte des fournisseurs contactés :

bash
# accès sortants agrégés par domaine (journal de proxy au format courant)
cut -d' ' -f7 /var/log/squid/access.log \
  | sed 's|^[a-z]*://||; s|[/:].*||' \
  | grep -Ei 'openai|chatgpt|anthropic|claude\.ai|generativelanguage|gemini|mistral|perplexity|deepseek|huggingface|copilot\.microsoft' \
  | sort | uniq -c | sort -rn

Deux signaux différents sortent de cette commande, et il faut les séparer. Un flux régulier vers api.openai.com depuis une adresse IP de serveur, c'est une intégration que quelqu'un a mise en production sans le dire. Des connexions irrégulières vers une interface de chat depuis des postes de travail, c'est un usage humain. Le premier cas relève de la revue d'architecture, le second de la politique interne ; les traiter avec la même réponse garantit de rater les deux.

Le DNS chiffré brouille la piste

Si les navigateurs du parc résolvent en DNS-over-HTTPS vers un résolveur public, vos journaux DNS internes ne verront plus rien. Le proxy d'entreprise et le SNI de la négociation TLS restent exploitables, mais l'angle DNS seul donne une vue partielle, et partielle veut dire rassurante à tort.

Les consentements OAuth accordés sur votre tenant

Sur Microsoft Entra ID comme sur Google Workspace, une application tierce qui a obtenu un accès laisse une trace durable et interrogeable. Côté Microsoft, chaque autorisation crée un service principal et un octroi de permissions :

powershell
# applications tierces ayant obtenu un consentement, et sur quelles permissions
Connect-MgGraph -Scopes "Directory.Read.All"

Get-MgOauth2PermissionGrant -All |
  Select-Object ClientId, ConsentType, Scope |
  Sort-Object ConsentType

# ConsentType = AllPrincipals -> un administrateur a validé pour toute l'organisation
# ConsentType = Principal    -> un utilisateur a validé pour lui-meme, en libre-service

La colonne Scope est celle qui compte. Une permission de lecture de profil est anodine ; un Mail.Read ou un Files.Read.All accordé à une application dont personne dans l'organisation ne connaît l'éditeur mérite une conversation le jour même. Côté Google, la même information vit dans la console d'administration, sous Sécurité puis Contrôles des API, avec le détail des applications tierces ayant accès et un journal dédié aux jetons OAuth.

Révoquer un jeton n'est pas désactiver un compte

Un jeton de rafraîchissement continue de fonctionner alors même que le mot de passe a été changé. Quand un collaborateur part, ou quand une application est jugée indésirable, la révocation des octrois est une action distincte de la désactivation du compte. C'est l'oubli qui laisse des accès actifs bien après la sortie des effectifs.

Les extensions installées dans les navigateurs

L'inventaire des extensions se récupère par la gestion de flotte du navigateur, ou à défaut poste par poste. Le tri se fait sur la permission demandée plutôt que sur le nom, qui ne dit rien : accès à toutes les URL, injection de scripts, lecture des cookies. Une extension de traduction et un assistant d'écriture peuvent réclamer exactement les mêmes droits que ce qu'on appellerait, sur un autre poste, un enregistreur de frappe. La différence est une question d'intention de l'éditeur, et l'intention ne se contrôle pas à distance.

Ce qui a déjà fuité côté externe

Dernière source, la seule qui se regarde depuis l'extérieur du périmètre : les dépôts publics, les archives de code, les fichiers de configuration oubliés sur un hébergement. Les clés de fournisseurs d'IA ont l'avantage d'être fortement préfixées, donc faciles à repérer par motif :

bash
# historique complet d'un depot, y compris les commits ou la cle a ete "retiree"
gitleaks detect --source . --log-opts="--all" --redact

# le motif compte plus que l'outil : la plupart des cles portent un prefixe stable
grep -rInE 'sk-[A-Za-z0-9]{20,}|sk-ant-[A-Za-z0-9_-]{20,}|AIza[0-9A-Za-z_-]{35}|hf_[A-Za-z0-9]{30,}' .

Une clé retirée du dernier commit reste dans l'historique, et un dépôt passé de public à privé a pu être cloné entre-temps. La bonne question après une découverte n'est donc pas "est-elle révoquée ?" mais "qu'a-t-elle consommé entre le commit et la révocation ?". Ce balayage externe est exactement le travail d'une plateforme d'External Attack Surface Management, dont la détection de fuites et de secrets tourne en continu plutôt qu'une fois par audit. Pour la partie cartographie des actifs, la méthode complète est décrite dans la découverte d'actifs exposés.

L'AI Act, au ras du texte

Le règlement européen sur l'intelligence artificielle, formellement le règlement (UE) 2024/1689, est entré en vigueur le 1er août 2024 et s'applique par paliers. Depuis le 2 février 2025 s'appliquent les pratiques interdites de l'article 5 et l'obligation de littératie en IA de l'article 4, qui vise les fournisseurs comme les déployeurs. Depuis le 2 août 2025 s'appliquent les règles relatives aux modèles d'IA à usage général, ainsi que le volet gouvernance et sanctions. Le gros du texte devient applicable le 2 août 2026, et les systèmes à haut risque relevant de l'article 6, paragraphe 1, suivent le 2 août 2027.

Aucun de ces articles n'énonce, pour toute organisation, une obligation générale de tenir un registre des IA employées. Ce que fait le règlement, c'est conditionner les obligations à deux paramètres qui se déterminent système par système : le rôle que vous tenez, celui de fournisseur ou celui de déployeur, et la classification de risque du système en question. Le recensement est donc le préalable sans lequel aucune obligation n'est démontrable. Une entité qui ignore quels outils tournent réellement chez elle ne peut ni établir si elle déploie un système à haut risque, ni prouver qu'elle a formé les bonnes personnes au titre de l'article 4.

Le shadow AI a en plus une propriété désagréable au regard de ce texte : il fabrique des déployeurs de fait. Quand un collaborateur branche seul un outil d'IA sur un processus métier, c'est l'organisation, personne morale, qui endosse le rôle réglementaire, sans l'avoir choisi et sans le savoir.

Le RGPD n'attend pas 2026

Coller des données personnelles dans un service tiers est un traitement, avec tout ce que cela implique de base légale, d'information des personnes, de contrat de sous-traitance et de vérification du lieu de traitement. Cette obligation-là est en vigueur depuis 2018 et ne dépend d'aucun calendrier à venir. En pratique, c'est elle qui mord en premier sur le shadow AI.

Interdire fabrique du contournement

Un blocage sec au proxy a un effet parfaitement mesurable : le trafic vers les domaines concernés tombe à zéro dans vos journaux. Ce qui n'apparaît nulle part, c'est le téléphone personnel posé à côté du clavier, le compte perso ouvert sur l'ordinateur perso le soir, ou le passage par une messagerie web pour sortir le document avant de le traiter ailleurs. L'interdiction ne supprime pas le besoin, elle supprime votre visibilité sur la façon dont il est satisfait.

Il y a pire que l'angle mort. Une personne qui a contourné une règle pour faire son travail ne signalera pas l'incident le jour où elle colle la mauvaise pièce jointe, parce que le signalement commencerait par l'aveu de la transgression. L'interdiction généralisée se paie donc deux fois : en donnée partie ailleurs, et en remontées qui auraient permis de réagir.

voie-autorisee
Socle
Passerelle unique et journalisée
Un seul point de sortie vers les fournisseurs, sur compte d'entreprise, avec journal des appels et rétention désactivée quand le contrat le permet.
Cadre
Règles écrites en catégories de données
Ce qui ne sort jamais : données de santé, secrets techniques, code sous accord de confidentialité. Formulé par nature de donnée, pas par nom de produit, sinon la règle est périmée au prochain lancement.
Offre
Catalogue court d'outils validés
Trois outils utilisables battent quarante outils interdits. La liste doit tenir sur un écran et répondre au besoin réel, sinon elle est contournée dans la semaine.
Contrôle
Surveillance de ce qui passe à côté
Les quatre sources d'inventaire, relues à intervalle fixe. Un nouveau domaine ou un nouvel octroi OAuth déclenche une question, pas une sanction.
Une voie officielle plus rapide que le contournement. Survolez pour écarter les plans.

La dernière couche est celle qu'on abandonne en premier, et c'est une erreur : une voie autorisée sans surveillance devient une autorisation implicite de tout faire. Côté code, la même logique s'applique à ce que les assistants produisent : la revue automatisée attrape les défauts connus, l'humain tranche le reste, et la frontière entre les deux est décrite dans le comparatif SAST, DAST et IAST à l'heure de l'IA.

À retenir

  • Le shadow AI est la suite logique du shadow IT, avec un déplacement du point de fuite : la donnée sort à l'usage, dans un flux, et non au stockage, dans un actif qu'on peut scanner.
  • Cinq objets à distinguer parce qu'ils ne se détectent pas au même endroit : le prompt, l'extension de navigateur, le connecteur détenteur d'un jeton OAuth, la clé d'API de modèle laissée dans un dépôt, et le code généré parti en production sans revue.
  • L'inventaire se fait sur quatre sources techniques, jamais sur un questionnaire : journaux de proxy et DNS, consentements OAuth du tenant, extensions triées par permission, et recherche de clés exposées côté externe.
  • L'AI Act n'impose pas un registre universel, mais fait dépendre chaque obligation du rôle tenu et de la classification du système. Sans recensement, rien n'est démontrable, et le RGPD s'applique déjà sans attendre le calendrier de 2026.
  • Le blocage généralisé déplace l'usage hors de vue et tue les remontées d'incident. Une voie autorisée, rapide et journalisée, surveillée en continu, obtient ce que l'interdiction promet sans jamais le tenir.

Si vous voulez commencer par le bout le plus concret, prenez la face externe : les clés qui traînent dans un dépôt public et les actifs montés pour un essai d'IA se voient de l'extérieur, et ils se voient par n'importe qui. C'est ce que surveille en continu la plateforme EASM d'own2pwn. Pour le reste, l'inventaire interne et les arbitrages qui vont avec, le plus simple est d'en parler de vive voix via la page contact.

Questions fréquentes sur le shadow AI

Qu'est-ce que le shadow AI ?

Le shadow AI désigne l'usage d'outils d'intelligence artificielle dans une organisation sans que la DSI ni l'équipe sécurité en aient connaissance ou l'aient validé. Cela couvre aussi bien un collaborateur qui colle un document confidentiel dans un service de chat grand public qu'une extension de navigateur installée en libre-service, un connecteur qui a obtenu un jeton OAuth sur la messagerie d'entreprise, ou une clé d'API de modèle de langage utilisée dans un script maison. Le point commun n'est pas l'outil mais l'absence de décision : personne n'a arbitré ce qui a le droit de sortir.

Quelle différence entre shadow IT et shadow AI ?

Le shadow IT classique crée un actif durable : un sous-domaine, un bucket de stockage, une machine virtuelle. Cet actif reste allumé, écoute sur un port, et se retrouve par une découverte externe. Le shadow AI, lui, ne laisse souvent aucun actif derrière lui. La donnée part au moment de l'usage, dans une requête sortante, puis l'onglet se ferme. Rien n'a été déployé, et pourtant l'information est chez un tiers. La conséquence pratique est que les méthodes de découverte d'actifs ne le trouvent pas : il faut regarder les flux sortants, les consentements d'application et les extensions installées.

Quels sont les principaux risques du shadow AI ?

Le premier est la sortie de données sensibles hors du périmètre : contrats, code source, données personnelles, éléments couverts par un accord de confidentialité. Le deuxième est l'accès délégué : un agent ou un connecteur qui détient un jeton OAuth sur la messagerie et le stockage garde cet accès dans le temps, indépendamment du mot de passe de l'utilisateur. Le troisième est le vol de clés d'API de fournisseurs d'IA laissées dans un dépôt de code, revendues et consommées par des tiers aux frais de l'organisation. Le quatrième est le code généré qui part en production sans revue, avec les défauts d'autorisation typiques de ce mode de production.

Comment détecter l'IA non autorisée en entreprise ?

Quatre sources donnent une image fidèle sans avoir à interroger qui que ce soit. Les journaux du proxy sortant et du résolveur DNS montrent quels domaines de fournisseurs d'IA sont contactés, depuis quels postes et à quelle fréquence. Les consentements OAuth accordés sur le tenant Microsoft ou Google listent les applications tierces qui ont obtenu un accès, et sur quelles permissions. L'inventaire des extensions de navigateur, trié par permission plutôt que par nom, révèle celles qui peuvent lire toutes les pages visitées. Enfin, une recherche de clés d'API exposées dans les dépôts publics complète la vue côté externe.

L'AI Act oblige-t-il à recenser les systèmes d'IA utilisés ?

Le règlement (UE) 2024/1689 n'énonce pas une obligation générale de tenir un registre des IA utilisées, valable pour toute organisation. Ce qu'il fait, c'est conditionner les obligations au rôle tenu, fournisseur ou déployeur, et à la classification du système concerné. Or ces deux paramètres se déterminent système par système. Une organisation qui ignore quels outils d'IA sont réellement employés ne peut ni établir si elle déploie un système à haut risque, ni démontrer l'obligation de littératie en IA de l'article 4 auprès des bonnes personnes. Le recensement n'est pas l'obligation, c'est le préalable sans lequel aucune obligation n'est démontrable.

Faut-il interdire ChatGPT et les autres outils d'IA en entreprise ?

Un blocage sec au proxy produit un effet mesurable sur les journaux d'entreprise et un effet nul sur le besoin. Le collaborateur bascule sur son téléphone personnel, son compte personnel ou une messagerie web, et l'organisation perd la seule visibilité qu'elle avait. Pire, celui qui contourne une interdiction ne déclarera pas l'incident le jour où il colle la mauvaise pièce jointe. La stratégie qui tient consiste à ouvrir une voie autorisée, avec un compte d'entreprise, une passerelle journalisée et des règles écrites en catégories de données plutôt qu'en noms de produits, puis à surveiller ce qui passe à côté.

Veille sécurité

La suite, une fois par mois

Ce qui bouge vraiment sur la surface d'attaque externe, NIS2 et la sécurité applicative, écrit par le pentester qui signe ces articles. Un envoi par mois, désinscription en un clic.

Votre adresse ne sert qu'à cet envoi. Voir la politique de confidentialité.

Articles liés