0Pricing
Cyber Security Academy · Leçon

Sécuriser les agents d’IA et leur utilisation des outils

Limiter les actions autonomes des agents.

Sécuriser les agents d’IA et leur utilisation des outils est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.

Pourquoi les agents sont risqués

Un agent d’IA est un LLM relié à des outils et à une boucle : il raisonne, appelle des fonctions (recherche, exécution de code, API, accès aux fichiers), observe les résultats et recommence jusqu’à atteindre un objectif. Cette autonomie est puissante et dangereuse.

Le changement fondamental en matière de sécurité est le suivant : avec un simple agent conversationnel, une mauvaise sortie n’est que du texte. Avec un agent, une mauvaise décision devient une action réelle : un enregistrement supprimé, un courriel envoyé, un dollar dépensé ou un secret divulgué.

Comme du contenu non fiable peut entrer dans la boucle de raisonnement, chaque outil dont dispose l’agent constitue une surface d’attaque pour l’injection d’instructions.

Principe du moindre privilège pour les outils

Le mécanisme le plus important est le principe du moindre privilège. Donnez à chaque outil la portée la plus restreinte qui lui permette encore d’accomplir sa tâche.

  • Préférez la lecture seule à la lecture-écriture ; limitez les lectures aux données de l’utilisateur actuel.
  • Divisez les outils étendus en outils spécialisés (un outil get_invoice, plutôt qu’un outil SQL brut).
  • Associez les identifiants de l’outil à l’identité de l’utilisateur final, et non à un compte de service partagé, afin que l’agent n’hérite que des autorisations dont dispose l’utilisateur.
# Scope queries to the authenticated user, never raw SQL
def get_invoice(invoice_id: str, *, user_id: str):
    return db.query(
        "SELECT * FROM invoices WHERE id=%s AND owner=%s",
        (invoice_id, user_id),
    )

Points de contrôle avec intervention humaine

Pour les actions à fort impact ou irréversibles, exigez une approbation humaine explicite avant leur exécution. L’agent propose ; une personne confirme.

  • Envoyer des courriels ou des messages vers l’extérieur.
  • Effectuer des transactions financières ou des achats.
  • Supprimer ou écraser des données.
  • Déployer du code ou modifier l’infrastructure.

Présentez à l’utilisateur l’action exacte et ses arguments en langage clair afin qu’il puisse repérer une commande injectée ou hallucinée avant son exécution.

Isolation du code et des commandes

Les agents qui exécutent du code ou des commandes shell doivent le faire dans un bac à sable isolé, jamais sur l’hôte.

  • Utilisez des conteneurs éphémères ou des microVMs sans montages de l’hôte.
  • Désactivez l’accès réseau par défaut ; n’autorisez qu’une liste blanche explicite des sorties réseau.
  • Définissez des limites de CPU, de mémoire et de temps pour contenir le code qui s’emballe ou le code malveillant.
  • Exécutez le code avec un utilisateur sans privilèges de superutilisateur et avec un système de fichiers racine en lecture seule.
docker run --rm \
  --network none \
  --read-only \
  --user 1000:1000 \
  --memory 256m --cpus 0.5 \
  --pids-limit 64 \
  agent-sandbox:latest python /work/task.py

Rompre le trio mortel

Un agent devient un outil d’exfiltration de données lorsqu’il dispose simultanément d’un accès à des données privées, d’une exposition à du contenu non fiable et de la capacité de communiquer avec l’extérieur. Cette combinaison constitue le trio mortel.

Concevez chaque flux de travail de façon à supprimer au moins un de ces éléments :

  • Isolez les sessions qui manipulent du contenu non fiable de celles qui contiennent des données sensibles.
  • Limitez les sorties réseau à une liste blanche stricte.
  • Exigez une approbation avant tout envoi externe lorsque des données privées se trouvent dans le contexte.

Sortie d’outil non fiable

Les résultats des outils réintègrent le contexte du modèle ; la sortie d’un outil est une entrée non fiable. Une page Internet, un fichier récupéré ou une réponse d’API peut contenir des instructions injectées destinées à l’étape de raisonnement suivante.

  • Encadrez la sortie de l’outil avec des délimiteurs clairs et indiquez qu’il s’agit de données, et non de commandes.
  • Supprimez ou neutralisez le texte caché (commentaires HTML, caractères de largeur nulle, CSS hors écran).
  • Limitez la taille du contenu injecté afin de réduire l’espace disponible pour la charge utile.

Ne laissez jamais une sortie brute d’outil dicter silencieusement l’appel d’outil suivant sans contrôles de politique.

Listes blanches d’actions et application des politiques

Ne comptez pas sur le modèle pour se contrôler lui-même. Imposez une couche de politique dans le code entre l’agent et chaque outil.

  • Validez chaque appel d’outil par rapport à une liste blanche d’actions autorisées et à la forme des arguments.
  • Rejetez les appels qui sortent de la portée de la tâche actuelle.
  • Appliquez des limites de débit et des budgets par outil et par utilisateur.

Cette barrière déterministe s’exécute quelles que soient les décisions du modèle ; même une injection réussie se heurte donc à un obstacle infranchissable.

def authorize(call):
    if call.name not in ALLOWED_TOOLS:
        raise PolicyError("tool not allowed")
    if not SCHEMA[call.name].validate(call.args):
        raise PolicyError("bad arguments")
    if exceeds_budget(call):
        raise PolicyError("rate limit")

Limiter la boucle

Les boucles autonomes peuvent s’emballer : tentatives infinies, appels récursifs d’outils, dépenses incontrôlées (déni de portefeuille). Bornez-les.

  • Limitez le nombre maximal d’étapes et le nombre total de jetons par tâche.
  • Définissez des délais d’expiration globaux pour l’ensemble de l’exécution.
  • Suivez le coût cumulé et arrêtez l’exécution au-delà d’un seuil.
  • Détectez les boucles (appels identiques répétés) et interrompez-les.

Ces limites réduisent également l’efficacité des attaques par déni de service et des attaques de consommation sans limites (OWASP LLM10).

Risques liés à la mémoire et aux systèmes multi-agents

La mémoire persistante de l’agent et les systèmes multi-agents ajoutent une nouvelle surface d’attaque :

  • Empoisonnement de la mémoire : une injection écrite dans la mémoire à long terme au cours d’une session influence les sessions ultérieures. Validez et limitez la portée de ce qui est conservé.
  • Confiance interagents : un agent compromis peut injecter du contenu dans un autre. Traitez les messages entre agents comme non fiables.
  • Adjoint confus : un agent privilégié agit à la demande d’un agent bénéficiant d’un niveau de confiance inférieur. Faites transiter l’autorisation du principal d’origine tout au long de la chaîne.

Journalisation et observabilité

Vous ne pouvez pas sécuriser ce que vous ne pouvez pas voir. Instrumentez la trace complète de l’agent :

  • Consignez chaque appel d’outil, ses arguments et son résultat.
  • Enregistrez le contexte de raisonnement et tout contenu récupéré à des fins d’analyse forensique.
  • Déclenchez des alertes en cas d’anomalies : sorties réseau inattendues, utilisation de privilèges, refus répétés, pics de coûts.
  • Conservez une piste d’audit immuable associée à l’utilisateur agissant.

Une bonne télémétrie transforme une compromission silencieuse en incident détectable et pouvant faire l’objet d’une enquête.

Une architecture d’agent en couches

En réunissant ces éléments, une architecture d’agent défendable se présente ainsi :

  • Identité : les actions sont exécutées au nom de l’utilisateur final avec des portées de moindre privilège.
  • Barrière de politique : liste blanche déterministe et validation de schéma pour chaque appel d’outil.
  • Bac à sable : exécution isolée avec réseau et ressources limités.
  • Points de contrôle humains : approbation pour les actions irréversibles.
  • Limites : budgets d’étapes, de jetons, de temps et de coûts.
  • Observabilité : journalisation complète des audits et alertes d’anomalies.

Supposez que le modèle puisse être détourné ; veillez à ce que, même dans ce cas, le rayon d’impact reste limité.

Vérification rapide

Évaluez votre compréhension des contrôles de sécurité des agents.

Récapitulatif

Sécuriser les agents d’IA et l’utilisation des outils :

  • Les agents transforment les sorties malveillantes en actions réelles : chaque outil constitue donc une surface d’attaque.
  • Appliquez le principe du moindre privilège à chaque outil et associez les identifiants à l’utilisateur final.
  • Exigez une approbation humaine pour les actions irréversibles et exécutez le code dans un bac à sable.
  • Éliminez la triple menace et traitez la sortie des outils comme une entrée non fiable.
  • Imposez une barrière de contrôle des politiques déterministe (listes d’autorisation, validation de schéma) dans le code, et non dans l’invite.
  • Limitez la boucle (étapes, jetons, durée, coût) et consignez chaque appel d’outil à des fins de détection.

Questions Fréquemment Posées

La leçon « Sécuriser les agents d’IA et leur utilisation des outils » est-elle gratuite ?

Oui — le texte complet de « Sécuriser les agents d’IA et leur utilisation des outils » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Sécuriser les agents d’IA et leur utilisation des outils » ?

Limiter les actions autonomes des agents. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?

Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Sécuriser les agents d’IA et leur utilisation des outils » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?

Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Injection de prompts et jailbreaks
  2. Les 10 principaux risques OWASP pour les LLM
  3. Sécuriser les agents d’IA et leur utilisation des outils
  4. Risques liés aux modèles, aux données et à la chaîne d’approvisionnement
← Retour à Cyber Security Academy