Aller au contenu
Sécurité

Ce qu’un bac à sable par agent vous apporte vraiment

« Isolé » figure sur toutes les pages d’hébergement. Voici la version précise : ce que chaque agent Diali obtient, ce qu’il ne peut pas atteindre, et pourquoi cette frontière.

7 min de lecture

L’isolation est le mot le plus galvaudé du marketing d’infrastructure. Il peut désigner une ligne de base de données distincte, un conteneur distinct sur un noyau partagé, ou une machine distincte. Ce sont des promesses très différentes, et une seule tient un mauvais jour.

Plutôt que de revendiquer l’isolation, voici la frontière réelle dans laquelle un agent s’exécute chez Diali, et ce qu’elle est conçue à arrêter. La version courte est sur la page sécurité ; voici la longue.

Ce que reçoit chaque agent

Chaque agent s’exécute seul. Pas un processus parmi d’autres dans un environnement partagé, mais sa propre charge de travail avec sa propre frontière :

  • Son propre bac à sable gVisor, qui place un noyau en espace utilisateur entre les appels système de l’agent et l’hôte.
  • Son propre espace de noms et son propre compte de service, si bien que rien de ce qu’il détient n’est adressable depuis un autre agent.
  • Sa propre politique réseau : aucun port public, et un accès sortant limité au web public, jamais à notre réseau interne, au serveur de métadonnées du cloud ni aux autres locataires.
  • Son propre stockage, chiffré au repos avec des clés que nous gérons dans Google Cloud KMS.

La raison de la frontière au niveau des appels système : les agents exécutent du code. Ils installent des paquets, lancent des commandes et utilisent une véritable ligne de commande. Traiter cela comme non fiable dès le départ coûte moins cher que de décider ensuite lesquels des outils en ligne de commande préinstallés sur chaque agent étaient les dangereux.

La menace contre laquelle nous avons vraiment conçu

Le scénario qui a guidé ces choix n’est pas un attaquant étatique. Il est beaucoup plus ordinaire : un agent installe une compétence, ou lit une page web, et ce contenu tente de lui faire faire ce qu’il ne devrait pas. L’injection de prompt n’a rien d’exotique, c’est la météo normale de tout ce qui lit internet.

On ne peut pas rendre un agent insensible aux mauvaises instructions. On peut faire en sorte que suivre l’une d’elles ne dépasse pas son propre bac à sable.

C’est tout l’objectif de conception. Si un agent se laisse convaincre d’exécuter quelque chose d’hostile, les dégâts sont bornés par ce que cet agent pouvait atteindre de toute façon : son espace de travail, ses identifiants, ses destinations autorisées. Pas vos autres agents, et pas ceux de quelqu’un d’autre.

Où cela tourne, et où cela ne tourne pas

L’ensemble se trouve sur Google Cloud en europe-west1, en Belgique, et ne sort pas de l’UE. Supprimer un agent détruit sa charge de travail, son stockage et ses secrets. Ce dernier point compte plus qu’il n’y paraît : une isolation qui laisse des données derrière elle après suppression n’a jamais vraiment porté sur l’isolation.

Commencer

Arrêtez de lire, construisez le vôtre

Configurez un agent, choisissez un canal, et faites-le travailler dans l’application que vous gardez déjà ouverte.