Guide · Cybersécurité
Sécuriser un agent IA local : données, permissions et outils sous contrôle
Guide pour sécuriser un agent IA local : définir son périmètre, isoler fichiers et outils, limiter les secrets et vérifier les refus.
Un agent IA exécuté localement peut réduire certains transferts de données, mais il n’est pas sûr par nature. Il peut encore lire des fichiers trop larges, exécuter des commandes, transmettre un résultat à une API ou suivre une instruction hostile contenue dans un document. Sécuriser l’agent local consiste à rendre explicites ses données, ses outils, ses droits et les actions qu’il doit refuser.
Le principe le plus utile est le moindre privilège : donnez à l’agent uniquement ce dont il a besoin pour une tâche identifiée, dans un environnement réversible. N’accordez pas un accès général au poste ou à votre dossier personnel parce qu’un prototype fonctionne plus vite ainsi.
Ce que vous allez apprendre
Vous allez définir le contrat d’un agent local, isoler son espace de fichiers, restreindre les outils et secrets, contrôler le réseau, observer les actions sans exposer les données et tester des demandes interdites. Cette démarche aide un développeur ou une petite équipe ; elle ne remplace pas une analyse de risque complète pour une production sensible.
Prérequis
- Une tâche précise, par exemple analyser un dossier de code de test ou produire un rapport.
- Un répertoire de travail dédié, sans secrets de production ni données personnelles non nécessaires.
- Une liste des outils que l’agent doit utiliser et des actions qui lui sont interdites.
- Des identifiants de test limités si l’agent appelle un service externe.
- Une méthode pour arrêter le processus et supprimer ses données temporaires.
Traitez les prompts, fichiers lus, résultats d’outils et pages web comme des entrées non fiables. Une phrase contenue dans un document ne peut pas modifier les permissions définies par votre environnement.
1. Écrire le contrat de l’agent
Décrivez l’objectif dans une phrase vérifiable : fichiers lisibles, répertoire de sortie, commandes autorisées, destinations réseau et résultat attendu. Ajoutez les interdictions : pas de suppression, pas de connexion à des comptes personnels, pas de lecture hors du dossier, pas d’envoi de secrets. Cette liste est plus utile qu’une vague instruction « fais attention » car elle peut être testée.
Établissez aussi un propriétaire humain. L’agent peut proposer une modification ou un rapport ; une personne valide l’intégration, les permissions et les effets externes. Cette séparation reste importante même lorsque l’agent ne travaille que sur votre ordinateur.
Vérification : demandez si une action typique est autorisée ou non. Si vous ne pouvez pas répondre immédiatement, réduisez le contrat avant de lancer l’agent.
2. Isoler les fichiers et l’environnement
Copiez ou montez seulement le dossier nécessaire à la tâche. Préférez un répertoire de travail jetable et un répertoire de sortie séparé, idéalement revu avant toute copie vers un dépôt ou un système de production. N’accordez pas l’accès au dossier personnel complet, aux clés SSH, aux navigateurs de profil, aux gestionnaires de mots de passe ou aux variables globales.
Un conteneur, une machine virtuelle ou un compte système dédié peut renforcer cette séparation, mais il faut contrôler les volumes, les permissions et les intégrations. Un conteneur monté sur tout le disque reste trop puissant. L’isolation dépend du chemin réellement accessible, pas du nom de la technologie utilisée.
Vérification : tentez de lire un fichier hors périmètre et d’écrire hors du répertoire de sortie. Les deux actions doivent échouer. Vérifiez ensuite que la tâche normale réussit avec les seuls chemins accordés.
3. Limiter les outils et commandes
Un agent qui possède un shell général peut transformer une tâche de lecture en action système. Exposez des outils étroits : rechercher dans le dossier autorisé, lancer une suite de tests déterminée, produire un fichier de rapport. Évitez les permissions d’installation, de suppression récursive, d’accès administrateur ou de contrôle du système sans besoin explicite.
Pour les actions qui modifient des fichiers, imposez un chemin de sortie et une revue. Les commandes peuvent échouer de façon sûre : refuser une destination interdite est préférable à une automatisation qui « aide » au mauvais endroit. Versionnez les définitions d’outils et revoyez-les comme du code.
Vérification : fournissez une consigne de test qui demande une commande interdite ou une écriture hors périmètre. L’agent doit s’arrêter, expliquer la limite ou demander une validation, sans contourner la règle.
4. Réduire secrets et accès réseau
Une exécution locale peut tout de même appeler un modèle, un package, un webhook ou un stockage distant. Donnez une clé dédiée, limitée et révocable plutôt qu’un jeton personnel à privilèges larges. N’insérez jamais de secret dans un prompt, un fichier de configuration partagé ou un journal. Prévoyez une rotation et testez que l’ancienne clé est effectivement refusée.
Limitez les destinations réseau au besoin réel. Si l’agent n’a qu’à analyser un dossier local, il n’a pas besoin de sorties Internet. S’il doit joindre une API, utilisez des délais, un quota et des journaux redactionnés. Cela ne supprime pas les risques de contenu hostile, mais réduit ce qu’une action inattendue peut transmettre.
Vérification : exécutez un test sans réseau ou avec une destination non autorisée. L’action doit échouer clairement et le journal ne doit pas contenir de valeur secrète.
5. Observer et arrêter l’agent
Consignez les événements utiles : version de l’agent, tâche, outils appelés, fichiers produits, durée et résultat. Ne journalisez pas le contenu intégral de documents sensibles ni les secrets transmis à une API. Définissez une rétention courte pour les traces de test et un accès restreint aux personnes qui doivent diagnostiquer un problème.
Préparez un arrêt simple : interrompre le processus, invalider la clé, fermer les accès temporaires et supprimer le répertoire de travail seulement selon une procédure validée. Un kill switch sans inventaire des effets peut laisser une tâche externe partiellement terminée ; documentez donc les actions à vérifier après interruption.
Vérification : interrompez un scénario de test, puis contrôlez les fichiers de sortie, les appels externes et l’état des identifiants. Votre procédure doit expliquer comment revenir à un état connu.
Problèmes fréquents et solutions
L’agent demande le dossier entier. Reprenez la tâche et fournissez un échantillon ou un sous-dossier. Un besoin trop large est souvent un signe qu’il faut découper le travail.
Un document contient des instructions surprenantes. Traitez-le comme une donnée ; il ne change ni le contrat ni les permissions. Signalez la tentative dans le rapport.
Une clé API personnelle est nécessaire pour un essai. Créez plutôt une clé de test avec la portée minimale, une expiration et une procédure de révocation.
Les résultats ne sont pas fiables. Conservez les entrées non sensibles, la version et les outils utilisés, puis faites vérifier l’action par un humain avant intégration.
FAQ
Un agent local peut-il accéder à Internet ?
Oui seulement si la tâche l’exige. Limitez alors les destinations, secrets et volumes de données, puis consignez les appels nécessaires.
Un conteneur suffit-il ?
Non. Contrôlez également les volumes, l’utilisateur, le réseau, les secrets et les outils disponibles dans le conteneur.
Faut-il interdire toute écriture ?
Pour une première évaluation, c’est souvent prudent. Si une écriture est nécessaire, limitez-la à un répertoire de sortie et exigez une revue avant intégration.
Comment tester une injection de prompt ?
Utilisez un document de test qui demande une action hors contrat. Vérifiez que l’agent ne modifie ni ses outils ni ses permissions et signale la demande.
Qui valide le résultat ?
La personne propriétaire de la tâche ou du système cible. Un agent peut accélérer l’analyse ; il ne remplace pas la validation d’une action à impact.
Conclusion
Sécuriser un agent IA local revient à limiter ce qu’il peut lire, faire et transmettre, puis à vérifier ces limites par des tests négatifs. Local ne signifie pas sans risque ; un contrat clair, des privilèges minimaux et une revue humaine rendent l’automatisation beaucoup plus défendable.
Sources et limites
Sources primaires : OWASP LLM Top 10, OWASP Agentic AI Threats and Mitigations et NIST AI Risk Management Framework. Les mécanismes d’isolation dépendent de votre système et des outils choisis. Ce guide ne garantit pas l’absence d’exfiltration, d’erreur de modèle ou de vulnérabilité hôte.