Sécurité des agents de navigateur : ce qu'il faut autoriser, ce qu'il faut valider, ce qu'il ne faut jamais automatiser
Un navigateur connecté est puissant, une page peut porter des instructions hostiles. Comment cadrer l'agent, exiger une validation, contenir l'injection de prompt.
La sécurité des agents de navigateur repose sur le fait de garder la permission en dehors du modèle : un ensemble fixe d'actions, la portée d'onglet la plus étroite qui suffit à la tâche, une validation humaine avant toute écriture qui compte, les secrets exclus de ce que l'agent peut lire, et un arrêt toujours disponible. L'injection de prompt est contenue en traitant le contenu des pages comme des données, jamais comme des instructions capables d'élargir la portée.
Pourquoi un agent de navigateur demande plus de précautions qu'une intégration API
Une clé API a une portée écrite noir sur blanc. Une session de navigateur connectée n'en a généralement pas : elle peut atteindre tout ce que ce compte peut atteindre. Un agent de navigateur part donc d'un rayon d'impact plus large que la plupart des intégrations, et les garde-fous doivent le restreindre délibérément.
Les pages web ajoutent un second risque qu'une API n'a pas. Le contenu d'une page est une entrée non fiable, et le texte d'une page peut tenter d'instruire le modèle. C'est l'injection de prompt, et la défense est architecturale, pas un simple filtre.
- Une session peut agir sur tout ce que possède le compte
- Le texte d'une page est sous le contrôle d'un attaquant sur tout site qui accepte du contenu utilisateur
- Les conséquences sont réelles : publier, payer, supprimer, envoyer un e-mail
Les garde-fous qui le contiennent réellement
La permission doit vivre en dehors du modèle. Dans Melaya, l'agent choisit uniquement parmi un ensemble fixe d'actions de navigateur que l'extension implémente. Il ne peut ni télécharger de scripts, ni exécuter du JavaScript généré, ni atteindre un shell. La portée d'onglet est un contrôle visible pour l'utilisateur, et le modèle ne peut pas l'élargir. Les actions qui comptent se mettent en pause pour validation, et l'arrêt reste toujours à un clic.
Les valeurs des champs de mot de passe sont exclues de tout ce que l'agent voit, et la consigne est explicite : ne lui demande jamais de saisir des mots de passe, des codes à usage unique ou des numéros de carte.
- Ensemble d'actions fixe, aucune exécution de code arbitraire
- Portée d'onglet définie par l'utilisateur, pas par le modèle
- Validation avant toute publication, paiement, suppression ou envoi
- Secrets exclus de la lecture des pages
- Arrêt et déconnexion disponibles à tout moment
Ce qu'il ne faut jamais automatiser sans surveillance
Certaines actions doivent toujours garder une personne dans la boucle, quelle que soit la qualité de l'agent : les paiements et virements financiers, tout ce qui publie publiquement en ton nom, les opérations destructrices, les changements de permissions ou d'identifiants, et toute communication qu'un destinataire traitera comme venant de toi.
Questions fréquentes
Qu'est-ce que l'injection de prompt dans un agent de navigateur ?
Du texte sur une page qui tente d'instruire le modèle, par exemple un commentaire caché lui disant d'envoyer des données ailleurs. Elle est contenue en traitant le contenu des pages comme des données et en gardant la permission en dehors du modèle, si bien qu'une page ne peut ni élargir la portée, ni sauter une validation.
L'agent peut-il voir mes mots de passe ?
Les valeurs des champs de mot de passe sont exclues de la lecture des pages. Ne lui demande pas de saisir des mots de passe, des codes à usage unique ou des numéros de carte.
Peut-il agir sur des onglets que je n'ai pas choisis ?
Pas à moins que tu n'élargisses la portée. Il démarre sur le seul onglet auquel tu l'attaches, et Tous les onglets est un réglage explicite de l'utilisateur.
