OWASP Top 10 pour les applications LLM

IA / LLM 🟡 Mid

Définition

Référentiel OWASP, édition 2025 : LLM01 injection de prompt, LLM02 divulgation d'informations sensibles, LLM03 chaîne d'approvisionnement, LLM04 empoisonnement des données et du modèle, LLM05 traitement incorrect des sorties, LLM06 agentivité excessive, LLM07 fuite du system prompt, LLM08 faiblesses des vecteurs et embeddings, LLM09 désinformation, LLM10 consommation non bornée.

Analogie

La check-list de sécurité classique, réécrite pour un système qui exécute du langage naturel.

Exemple de code

// LLM05 : ne jamais faire confiance à la sortie du modèle
const html = await llmGenerateHtml(userInput);
res.send(DOMPurify.sanitize(html));               // pas d'innerHTML brut

// LLM06 : agentivité minimale, outils en lecture par défaut
const tools = readOnly ? [searchTool] : [searchTool, updateTicketTool];

// LLM10 : bornes dures sur la consommation
const msg = await client.messages.create({
  model: 'claude-sonnet-5', max_tokens: 800,        // plafond de sortie
  messages, tools,
}, { timeout: 30_000 });                            // plafond de temps
if (++turns > 10) throw new Error('LLM10 : boucle bornée');

Cas d'usage

Revue de sécurité d'une fonctionnalité IA ; grille d'entretien pour un poste senior.

Anti-pattern

Appliquer le Top 10 web classique seul : il ne couvre ni l'injection de prompt ni l'agentivité excessive.
#ia#securite#owasp#interview

En entretien

  1. Explique-moi à quoi sert l'OWASP Top 10 pour LLM.

    C'est un référentiel qui liste dix risques de sécurité propres aux applications LLM, comme l'injection de prompt ou l'agentivité excessive. C'est une check-list de sécurité classique réécrite pour un système qui exécute du langage naturel.

  2. Quelle différence avec le Top 10 web classique ?

    Le Top 10 web classique ne couvre ni l'injection de prompt ni l'agentivité excessive, deux risques spécifiques aux LLM. Il faut donc les deux référentiels, pas l'un à la place de l'autre.

  3. Donne-moi un exemple concret d'application de LLM05 et LLM06.

    LLM05 dit de ne jamais faire confiance à la sortie du modèle avant de l'injecter en HTML, donc on la sanitize toujours ; LLM06 dit de limiter les outils accessibles à l'agent au strict nécessaire, en lecture seule par défaut. Ce sont des garde-fous côté code, pas juste des consignes.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre