La défense en profondeur est le premier principe de sécurité de la plateforme : chaque couche applique son propre contrôle. Le WAF filtre par exemple le SSRF évident, mais la garde de sortie revalide chaque adresse résolue au moment de la connexion, et Cilium refuse de toute façon l'adresse de métadonnées cloud.
Du navigateur à l'API
Le portail envoie une Content Security Policy avec nonce et filtre les liens avec safeHref. Le trafic venu d'Internet atteint ensuite la passerelle APISIX en TLS, où le WAF Coraza applique l'OWASP Core Rule Set. Derrière elle, l'API Control Plane impose des limites de taille, une limitation de débit, l'authentification, le contrôle des rôles et l'isolation des tenants.
Refus par défaut sur le réseau
Le réseau du cluster est en default deny avec Cilium, DNS compris au niveau 7. La sortie HTTP vers les adresses privées est refusée sauf liste blanche explicite, et la garde de sortie se connecte à l'adresse qu'elle a validée, ce qui neutralise le rebinding DNS. Les métadonnées cloud et les adresses link-local sont bloquées sans exception, et les redirections ne sont jamais suivies.
Isolation des tenants et secrets
Chaque table de tenant est protégée par la RLS PostgreSQL, forcée sur chaque table : même une connexion propriétaire des tables ne voit que ce que les politiques admettent, et une ressource d'un autre tenant répond 404. Les secrets vivent dans OpenBao ou sont chiffrés par la clé maître : outils, serveurs MCP et connecteurs reçoivent des références, jamais la valeur en clair dans le prompt.
Contenu non fiable et données sensibles
- Détection d'injection de prompt sur les documents, les résultats d'outils et les pages web, avec encapsulation du contenu non fiable par un nonce.
- Garde de sortie sur les réponses du modèle : filtrage des liens et des images, canari dans le prompt système.
- DLP Gateway appuyée sur Presidio : détecter, masquer, tokeniser ou bloquer les données sensibles avant qu'elles n'atteignent un modèle.
- Garde de démarrage qui refuse une configuration de production dangereuse.
Aucune couche ne suppose que la précédente a fait son travail.