Skip to main content

Activer la protection Safe House

Safe House est la couche de pré-filtrage de Mnemom pour le trafic des agents. Elle s’interpose entre vos agents et leurs appels au modèle, et évalue chaque message entrant — et, en option, chaque réponse sortante et chaque appel/résultat d’outil — par rapport aux cartes d’alignement et de protection de votre organisation avant que quoi que ce soit n’atteigne le modèle. Un message que Safe House intercepte ne devient jamais une décision que votre agent doit prendre. Ce démarrage rapide vous guide pour activer Safe House sur un agent existant via l’API/CLI, observer de vraies détections de menaces, passer en mode enforce et gérer les messages mis en quarantaine. Vous préférez cliquer plutôt que scripter ? Les mêmes contrôles (mode, seuils, surfaces filtrées) sont aussi disponibles par agent depuis l’onglet Agent → Security du tableau de bord — ce guide sert à automatiser la configuration, configurer de nombreux agents à la fois, ou câbler Safe House dans une CI. Vous aurez besoin d’un agent Mnemom déjà enregistré — si vous n’en avez pas, consultez d’abord la Vue d’ensemble de la Mnemom Gateway.

Prérequis

  • Un token API Mnemom dans $MNEMOM_TOKEN (pour les appels API /v1/protection/* et /v1/safe-house/*)
  • Un ID d’agent dans $AGENT_ID (ex. mnm-550e8400-e29b-41d4-a716-446655440000)
  • Votre clé API fournisseur dans $ANTHROPIC_API_KEY (pour les messages de test envoyés via la passerelle aux étapes 2 et 5)

Étape 1 — Activer Safe House en mode observe

Commencez par le mode observe. Il exécute une analyse complète des menaces sans aucun impact sur la latence, vous permettant de voir ce que Safe House détecterait avant de vous engager dans le blocage. La configuration de Safe House se trouve sur la carte de protection de l’agent — mode est l’interrupteur principal de premier niveau ; screen_surfaces décide quelles surfaces le pipeline de détection inspecte. Les surfaces sont des unités de filtrage, pas un budget par tour : la porte d’entrée s’exécute une fois par surface activée que la requête transporte. La carte ci-dessous ne commence qu’avec incoming, vous verrez donc une évaluation de porte d’entrée par requête. Activer tool_responses (Étape 7) ajoute une évaluation supplémentaire pour chaque résultat d’outil que la requête renvoie au modèle — à l’intérieur de cette même requête, avant que le modèle ne le lise.
Idempotency-Key est requis sur chaque PUT de carte de protection — n’importe quelle chaîne générée côté client fonctionne, mais en utiliser une nouvelle par écriture distincte (comme uuidgen ci-dessus) rend les réessais sûrs sans rejouer accidentellement une ancienne. La grammaire complète de la carte de protection est disponible sur /specifications/protection-card-schema ; la carte canonique que le composeur renvoie inclut également card_id, _composition et tous les défauts plateforme / organisation qui se propagent dans la carte effective de l’agent. Alternative CLI. Enregistrez la carte sous protection.card.yaml et publiez-la avec une seule commande — pas de curl requis :

Étape 2 — Envoyer un message de menace de test

Envoyez un message de type BEC (compromission de messagerie d’entreprise) via la passerelle et vérifiez les en-têtes de réponse. Cela ne bloquera rien en mode observe — mais cela enregistrera une détection. Routez-le via la Gateway exactement comme vous le feriez normalement — utilisez le même nom x-mnemom-agent sous lequel cet agent a été enregistré (ou omettez l’en-tête s’il a été créé sans) afin que la requête se résolve vers $AGENT_ID :
Recherchez l’état de Safe House dans la réponse. Les anciens en-têtes X-Safe-House-* ont été retirés au profit de la structure unifiée à quatre points de contrôle X-Mnemom-Verdict (voir la référence des en-têtes) :
En mode observe, X-Mnemom-Verdict.front indique observed afin que vous puissiez suivre ce qui se serait passé en mode enforce — le message atteint quand même l’agent dans tous les cas. L’en-tête X-Mnemom-Advisory porte les résultats du détecteur sous forme de tableau JSON ; voir /api-reference/headers#x-mnemom-advisory.

Étape 3 — Examiner les détections dans le tableau de bord

Ouvrez votre tableau de bord Mnemom pour voir les détections Safe House enregistrées à partir de votre test — sélectionnez l’agent, puis son onglet Security. Le message de test devrait apparaître quelques secondes après la fin de la requête. Vous pouvez également extraire les statistiques de détection agrégées directement via l’API. Les statistiques sont à portée organisation — un seul cumul sur chaque agent de l’organisation, sur une fenêtre glissante en jours (il n’y a pas de filtre par agent) :
days vaut 7 par défaut et plafonne à 90.

Étape 4 — Passer en mode enforce

Une fois à l’aise avec ce que Safe House détecte, passez en mode enforce. À partir de ce moment, les messages dont le score dépasse le seuil quarantine sont retenus pour examen, et les messages au-dessus du seuil block sont supprimés.
Faire respecter une quarantaine ou un blocage ne fait pas échouer la requête HTTP — la passerelle renvoie toujours un 2xx. À la place, le contenu du message lui-même est remplacé avant d’atteindre le modèle, et X-Mnemom-Verdict rapporte front=enforced avec un avis safe_house.quarantine portant l’id de quarantaine. Consultez Les interventions Safe House ne sont pas des réponses d’erreur pour le tableau complet des codes de statut. L’énumération à 4 modes n’a aucun simulate — commencez par observe (pas de blocage) et progressez par nudge (injection d’avis, pas de blocage) avant d’activer enforce. Consultez le concept Safe House pour la sémantique complète des modes.

Étape 5 — Voir un message mis en quarantaine

Envoyez à nouveau le même message BEC, cette fois en mode enforce :
Le statut est toujours 200, mais les en-têtes de verdict et d’avis montrent que le message a été mis en quarantaine avant même que le modèle ne le voie :
Extrayez le id de l’entrée d’avis safe_house.quarantine — c’est votre id de quarantaine. Le message original a été retenu avant d’atteindre l’agent ; le modèle a plutôt vu un placeholder de quarantaine. Votre application doit analyser X-Mnemom-Verdict sur chaque réponse (pas seulement les non-2xx) et présenter un résultat front=enforced à la personne responsable de l’examen de sécurité.

Étape 6 — Examiner et libérer de la quarantaine

Inspectez le message mis en quarantaine et décidez de le libérer ou de le rejeter. Les points de terminaison de quarantaine sont à portée organisation (une file de quarantaine par organisation) ; l’id de quarantaine issu de l’avis safe_house.quarantine de l’étape 5 est la clé de recherche. Notez que le texte du message original n’est jamais stocké — seul son hash l’est — il n’y a donc ici aucun aperçu en clair à inspecter :
Si le message est légitime (un faux positif), libérez-le. Cela fait passer l’entrée à released ; passez is_false_positive: true pour aussi réinjecter la libération dans la calibration des seuils :
Pour rejeter le message sans le libérer (confirmer qu’il s’agissait d’une vraie menace) — DELETE sur la ressource de quarantaine, qui la marque deleted (le hash du contenu est conservé pour audit ; l’agent ne reçoit jamais le contenu original) :
Libérer avec is_false_positive: true alimente la calibration des seuils. Après suffisamment de faux positifs confirmés dans une catégorie, les seuils de votre agent pourraient valoir la peine d’être révisés.

Étape 7 — Filtrer les résultats d’outils

Les étapes 1 à 6 n’ont filtré que incoming — le message de l’utilisateur. Si votre agent utilise des outils, la voie d’injection la plus courante est le résultat d’outil : un résultat de recherche, un corps d’e-mail, une réponse d’API contenant des instructions dissimulées. Activez la surface tool_responses :
À partir de là, une requête qui renvoie des résultats d’outils au modèle est filtrée à nouveau à l’intérieur de cette même requête — une fois par résultat d’outil, sur sa propre surface, avant que le corps ne soit transmis en amont. C’est une vérification de porte d’entrée ; rien n’attend le tour suivant de l’agent. La couverture n’est toutefois pas inconditionnelle : une requête qui se ramifie vers de nombreux appels d’outils au sein d’un même tour n’a pas de couverture complète garantie. Un résultat d’outil signalé fonctionne de la même manière qu’un message entrant signalé à l’étape 5 — la requête n’échoue pas, le contenu signalé est retiré du corps avant que le modèle ne le voie, et l’en-tête de verdict le rapporte :
N’interprétez pas un 200 comme « la porte d’entrée n’a rien fait ce tour-ci ». Analysez X-Mnemom-Verdict — front=enforced sur un 200 signifie qu’un résultat d’outil a été retenu ou annoté à l’intérieur de la requête.

Prochaines étapes

Ajouter des identifiants canari

Plantez de fausses clés API dans le contexte de l’agent. Toute tentative de les utiliser est un indicateur sans faux positif d’une exfiltration réussie.

Configurer la confiance des sources

Mettez en liste blanche les sources amont de confiance dans trusted_sources.{domains, agent_ids, ip_ranges} pour court-circuiter la détection sur les appelants connus comme sûrs (chaque saut reste journalisé pour audit).

Activer le DLP sortant

Analysez les réponses de l’agent à la recherche de PII et de secrets avant qu’elles ne soient renvoyées aux appelants.

Consulter votre tableau de bord

Vue d’ensemble de sécurité, tendances du risque de session et ventilation des détections par catégorie pour tous vos agents.

Voir aussi