Brancher un projet
Connecter votre agent IA au bon projet Grace.
Avant de commencer : ouvrez votre projet dans Grace, puis sélectionnez Connecter l’agent IA. Sur un projet sans talent, l’action Configurer ce projet ouvre la même fenêtre.
Grace vérifie sa compatibilité avec les clients conformes MCP OAuth dans les profils testés. Les instructions de configuration ne certifient pas toutes les versions de Claude Code, Codex ou Copilot : une validation complète de ces produits demande un vrai compte et une connexion vérifiée. Une requête Copilot observée a été rejouée ; ce rejeu ne vaut pas certification du produit commercial.
1. Choisissez votre parcours
La fenêtre propose deux modes. Leur rôle reste visible sous forme de tag :
- Automatique — Recommandé prépare les fichiers nécessaires avec une seule commande ;
- Manuel — Assisté présente un seul fichier à installer à la fois.
Vous pouvez passer d’un mode à l’autre sans perdre votre progression manuelle.
2. Choisissez votre environnement
Dans Agent IA, sélectionnez l’outil que vous utilisez, puis choisissez Système d’exploitation. GitHub Copilot CLI et GitHub Copilot dans VS Code sont deux choix distincts : le premier configure le terminal, le second l’éditeur. Grace attend les deux choix avant d’afficher le parcours adapté.
3. Suivez le parcours affiché
Parcours automatique
Copiez Brancher en une commande et lancez-la à la racine de votre dépôt. Elle prépare la configuration de l’agent IA, le bloc de consignes, les procédures Grace et, pour Claude Code ou Codex, les profils de relecture adaptés.
La commande utilise curl et sh sur macOS ou Linux, et PowerShell avec
Invoke-RestMethod sur Windows.
Le terminal affiche le projet, l’agent IA et l’état de chaque fichier dans trois sections. Une fois les fichiers prêts, il indique les commandes disponibles pour authentifier et vérifier Grace. Les fichiers préparés ne prouvent pas que la connexion est établie. Si elle échoue, le lien de dépannage permet de reprendre le parcours adapté à votre outil. En simulation, il affiche uniquement les opérations prévues et confirme qu’aucun fichier n’a été écrit.
Elle peut être relancée sans risque : un second passage conserve la configuration et les consignes déjà présentes, actualise les procédures Grace et remet à jour ses propres profils de relecture sans toucher aux autres profils du dépôt. Si la configuration MCP contient déjà d’autres serveurs, la commande les conserve et ajoute Grace : elle fusionne les formats JSON avec Node.js et ajoute un bloc complet aux formats TOML de Codex et Mistral Vibe. Sans Node.js, un JSON existant reste intact avec une erreur explicite. Un JSON invalide ou un fichier symbolique est refusé avant toute modification.
Le parcours automatique écrit uniquement dans le projet courant, y compris dans
.codex/config.toml pour Codex. Il ne modifie jamais la configuration MCP du profil utilisateur.
Windsurf ne prend en charge qu’un fichier MCP global : Grace ne propose donc pas de commande
automatique pour cet agent et laisse l’utilisateur suivre explicitement le parcours manuel.
Parcours manuel
Utilisez Suivant et Précédent pour avancer dans les trois étapes de préparation :
- copiez ou téléchargez la configuration dans le fichier indiqué ;
- copiez ou téléchargez le bloc Réveiller l’agent IA dans le fichier de consignes ;
- copiez ou téléchargez chaque procédure Grace à l’emplacement indiqué.
Les agents IA nommés ajoutent une quatrième étape adaptée pour authentifier puis vérifier Grace.
Le choix Autre agent · AGENTS.md conserve trois étapes : Grace ne peut pas inventer les
commandes d’un outil non identifié. Une seule étape est visible à la fois, mais son contenu est
entièrement lisible sans accordéon. Les chemins utilisent le format de votre système, notamment
%USERPROFILE% et les barres obliques inverses sous Windows.

4. Connectez-vous
Suivez la quatrième étape affichée pour votre agent IA :
| Agent IA | Authentifier Grace | Vérifier la connexion |
|---|---|---|
| Claude Code | claude mcp login grace | claude mcp list |
| Cursor | agent mcp login grace | agent mcp list-tools grace |
| VS Code | Ouvrez MCP: List Servers, sélectionnez Grace et démarrez-le | Vérifiez Grace dans la même liste, puis ses outils dans le chat |
| GitHub Copilot dans VS Code | Ouvrez MCP: List Servers, sélectionnez Grace et démarrez-le | Vérifiez Grace dans la même liste, puis ses outils dans Copilot Chat |
| GitHub Copilot CLI | Lancez copilot, puis /mcp auth grace | /mcp show grace |
| Windsurf | Dans Cascade, ouvrez MCPs, puis Grace | Vérifiez que la connexion et les outils Grace sont actifs |
| Codex | codex mcp login grace | codex mcp list |
| Mistral Vibe | Lancez vibe, puis /mcp login grace | /mcp status |
L’autorisation OAuth s’ouvre dans le navigateur lorsque l’agent IA la déclenche.
Si Grace affiche Choisir un compte Grace, sélectionnez le compte à utiliser ou
Utiliser un autre compte pour vous connecter avec une autre identité. Choisir un compte
ne vaut pas autorisation : vérifiez ensuite la demande et choisissez Autoriser ou Refuser.
Si la demande a expiré ou si le navigateur affiche une erreur de validation, fermez cette page
et relancez l'authentification depuis votre agent IA. Ne modifiez pas le lien d'autorisation
à la main ; si l'erreur revient, communiquez son message à votre administrateur sans transmettre
le lien complet ni de jeton.
Vérifiez le client indiqué et les permissions avant d’autoriser la connexion. Après déconnexion
de Grace, reconnectez votre agent : un renouvellement de jeton ne rétablit pas une session supprimée.
Si une ancienne connexion cesse de fonctionner après une mise à jour de Grace, relancez
l’authentification. Si le refus persiste, utilisez La connexion échoue ? dans le guide de
connexion et suivez la reprise adaptée à votre outil.
Une simple reconnexion peut conserver l’ancien enregistrement OAuth ; ne copiez pas un ancien
jeton dans la configuration.
Si la connexion interactive de Copilot CLI n’est pas disponible, utilisez le recours affiché par
Grace : exportez GRACE_API_KEY dans la session du terminal, puis appliquez la configuration
alternative. Ne copiez jamais la valeur de la clé dans le dépôt.
Vous avez réussi lorsque Grace est connecté et que ses outils sont disponibles dans l’agent IA.
Activer une session de pentest Grace Info
Le pentest Grace aide à améliorer la qualité du code en identifiant des faiblesses à corriger. La sécurité est une chaîne de valeur : conception, développement, contrôles, surveillance et réponse aux incidents se complètent. Le pentest y contribue, mais ne remplace pas vos outils de cybersécurité ni vos équipes spécialisées. Un résultat sans constat ne garantit pas l'absence de vulnérabilités.
Dans votre projet, ouvrez Paramètres → Pentest, puis Installer le MCP Grace Pentest. Cette connexion dédiée est distincte du MCP Grace habituel. Sur la machine de votre agent IA, Docker doit être installé et démarré, avec Buildx disponible. Docker Desktop l'inclut sur macOS et Windows ; avec Docker Engine sur Linux, installez le plugin officiel Buildx. Le moteur Docker utilise Linux, même sur macOS et Windows : cela ne vous impose pas Linux sur votre ordinateur. Sous Windows, choisissez les conteneurs Linux dans Docker Desktop.
La rubrique Prérequis et vérification Docker fournit des commandes à exécuter dans le terminal de votre agent et les résultats attendus ; le navigateur ne peut pas vérifier votre installation et n'affiche donc pas de statut « installé ». Prévoyez une connexion Internet pour le téléchargement des outils et autorisez votre agent à exécuter Docker localement.
Choisissez ensuite votre agent IA et votre système. La fenêtre affiche la commande dédiée, ou un parcours manuel en deux étapes ; elle ne démarre aucun conteneur ni test et ne modifie pas les talents du projet. Buildx construira l'image des outils après votre accord, puis l'agent lancera le conteneur isolé : vous n'avez aucun Dockerfile à écrire.

Utilisez une session dédiée dans laquelle seul le serveur grace-pentest est actif. Le serveur
Grace général ne doit pas rester disponible pendant le test : il expose d'autres outils qui ne
sont pas conçus pour recevoir des données de campagne.
Sur macOS ou Linux :
curl -fsSL 'https://grace.hoppr.tech/setup.sh?profile=pentest' | sh -s -- --project '<projet>' --harness codexSous Windows :
& ([scriptblock]::Create((Invoke-RestMethod 'https://grace.hoppr.tech/setup.ps1?profile=pentest'))) -Project '<projet>' -Harness 'codex'Remplacez codex par l'agent IA choisi et <projet> par la référence affichée dans Grace. Le
script n'installe aucun scanner, broker ou moteur d'agents. Il configure uniquement le MCP
restreint et les consignes de confidentialité. S'il détecte encore le serveur Grace général dans
le même fichier, une déclaration différente de celle attendue ou un chemin lié, il s'arrête sans
modifier les fichiers. Le profil pentest exige sa configuration isolée exacte : conservez votre
configuration habituelle séparément, sans l'écraser.
Rechargez ensuite MCP et connectez-vous par OAuth. Vous avez réussi lorsque l'agent affiche
les deux outils grace_pentest_local_toolbox et grace_pentest_guidance pour ce serveur.
Le premier prépare les fichiers publics des outils selon l'architecture de Docker ; le second
reçoit uniquement trois choix — phase, agent IA et langue — et rend les consignes versionnées.
Les secrets, preuves, constats et rapports de campagne restent sur votre système, pas chez Grace.
Après la campagne, désactivez grace-pentest avant de réactiver votre connexion Grace habituelle.
Choisir la cible dans Grace
Dans Paramètres → Pentest, l'instance locale dédiée est sélectionnée par défaut. Seul un propriétaire ou administrateur de l'organisation peut modifier la politique ; les membres peuvent la consulter. Ajouter une cible ne lance aucun test.
Dans Ajouter une cible distante, saisissez l'Adresse du site en HTTPS, sans chemin
ni identifiants. Le port peut être précisé. Par défaut, le périmètre couvre tout le site (/),
sans ses sous-domaines. Les champs Chemins inclus et Chemins exclus sont directement visibles :
indiquez un préfixe par ligne ; les exclusions priment. Le résumé rappelle le périmètre avant l'ajout.
Cliquez sur Ajouter la cible. La rubrique Vérifier le domaine affiche le nom et la valeur DNS à publier chez votre hébergeur. Une fois l'enregistrement publié, cliquez sur Vérifier la preuve DNS. Le défi expire après 15 minutes et une preuve validée reste valable 24 heures. Après expiration, Renouveler le défi DNS fournit une nouvelle valeur à publier. Une modification concurrente demande de recharger la politique ; vos saisies sont conservées.
La suppression demande confirmation et retire aussi la preuve DNS : il faudra vérifier à nouveau le domaine pour le réutiliser.
L'exécution distante reste indisponible, même après vérification. La preuve DNS atteste un contrôle du domaine, pas une autorisation légale d'attaque. Une cible distante expirée reste sélectionnée mais bloquée : Grace ne bascule pas automatiquement vers une autre cible.
Choisir les tests et l'effort IA
La section Tests affiche directement les profils, l'effort IA et la liste des tests par catégorie, sans accordéon. Choisissez un profil pour préparer la sélection :
| Profil | Sélection préparée |
|---|---|
| Rapide | 4 familles : secrets, code, dépendances et observation HTTP. |
| Standard | 12 familles, avec contrôles applicatifs et configuration TLS. |
| Complet | Les 16 familles, y compris les tests intrusifs de laboratoire local. |
Dans Liste des tests, cochez ou décochez chaque famille pour ajuster la sélection. Le profil devient
Personnalisé. Les outils associés, risques, blocages et incompatibilités avec la cible restent
visibles. Un test sélectionné n'est pas nécessairement disponible : Complet ne lève aucun blocage.
Le profil Rapide permet les quatre analyses hors ligne, après votre accord sur les fichiers ou
réponses capturées à examiner. L'analyse du code couvre trois règles ciblées, pas toutes les failles.
Les contrôles HTTP locaux d'autorisation, d'authentification, de canaris d'injection et de logique
métier sont également disponibles après autorisation. Configuration d'image analyse les
Dockerfiles et configurations Kubernetes approuvés, pas les archives d'images ni Terraform.
Configuration TLS teste uniquement une instance locale dédiée : certificat pour localhost
et acceptation des anciens protocoles TLS 1.0/1.1. Ce contrôle ne teste pas le certificat public
ni l'infrastructure distante. Sécurité navigateur vérifie hors ligne les protections CSP et
X-Frame-Options des réponses capturées : elle ne visite pas votre application et n'exécute pas
son HTML. Vulnérabilités connues recherche l'en-tête X-Powered-By et les bannières de version
jQuery concernées par CVE-2020-11022/11023, dans les réponses approuvées uniquement. Une bannière
concernée ne prouve pas une exploitation possible ; son absence ne prouve pas que la dépendance
est corrigée. Ce n'est pas une recherche exhaustive des vulnérabilités connues.
Le tag Laboratoire local uniquement signale les tests réservés à une instance jetable locale.
Les quatre familles de laboratoire avancé ne sont pas encore disponibles dans Grace : leur
intégration pour l'exécution n'est pas validée. Ce n'est pas un problème de configuration de votre
projet. Vous pouvez les inclure dans la sélection, mais elles ne seront pas exécutées.
Choisissez séparément l'effort Économie, Équilibré ou Approfondi, puis cliquez sur Enregistrer les tests. Les budgets demandés sont respectivement 20 000, 60 000 et 150 000 tokens : ce sont des indications pour votre agent. Grace ne mesure ni ne limite les tokens consommés. Un plafond strict doit être pris en charge par votre outil d'IA ; ce réglage seul ne l'active pas. Davantage d'effort n'autorise aucune action supplémentaire et ne change pas les cases cochées. Le bouton d'enregistrement apparaît après une modification ; le résumé signale un brouillon non enregistré au-dessus des réglages.
Les membres de l'organisation peuvent modifier ces choix, sans obtenir le droit de modifier les cibles. Vous avez réussi lorsque la sélection enregistrée est conservée après rechargement. L'enregistrement ne lance aucun conteneur. En cas de modification concurrente, rechargez la politique puis choisissez explicitement de remplacer votre brouillon avant de réessayer.
Votre agent reprend la sélection à la préparation de la session. Pour changer des tests pendant une session, arrêtez-la puis préparez-en une nouvelle : modifier l'écran n'arrête pas une session déjà lancée. Les tests bloqués ou non exécutés doivent apparaître comme tels dans le rapport.
Construire les outils avec votre agent IA
Installez Docker Desktop sous macOS ou Windows (en mode conteneurs Linux), ou Docker Engine et son plugin officiel Buildx sous Linux. Buildx est inclus dans Docker Desktop. Aucun client Grace, Node.js, navigateur hôte, archive d'image ou DevBox n'est nécessaire. Vous n'écrivez pas de Dockerfile.
- Dans votre session pentest, demandez à l'agent IA de préparer les outils via Grace.
- Autorisez le téléchargement des dépendances publiques et la construction locale. L'agent récupère les fichiers depuis Grace, contrôle leurs empreintes et utilise Docker Buildx.
- Attendez les deux diagnostics HTTP et navigateur réussis. L'agent conserve localement les versions réellement utilisées et l'identité de l'image.
Chaque préparation vérifie les dernières versions stables des outils et l'image Chromium compatible, puis les fige pendant la session et son retest. Une version absente ou incompatible provoque un arrêt, jamais un retour silencieux à une ancienne version. Les dépendances système restent celles de l'image officielle.
Autoriser les analyses hors ligne
Demandez à votre agent d'exécuter les analyses disponibles de votre sélection. Il vous présente d'abord les fichiers ou les réponses HTTP déjà capturées à examiner, la durée et le nombre d'analyses permis. Les scanners tournent dans un conteneur séparé, sans réseau ni accès direct au dépôt. L'observation HTTP n'envoie aucune nouvelle requête.
Pour Sécurité navigateur, approuvez une à cinq réponses HTML distinctes déjà capturées. Le contrôle vérifie si leurs en-têtes permettent un script de test intégré à la page ou son affichage dans un cadre provenant d'un autre site. Il utilise des pages synthétiques, sans vos scripts ni vos cookies. Une alerte indique une protection absente ou permissive, pas une attaque réussie. Ce contrôle ne remplace pas un test des parcours applicatifs.
Conservez le rapport local et ses preuves. Il distingue les alertes candidates, les analyses sans alerte, les analyses incomplètes et les tests non effectués. Sans alerte ne signifie pas sans faille. Après une correction que vous avez approuvée, demandez un retest sur les mêmes fichiers ou réponses capturées, avec les mêmes versions d'outils. Un changement de périmètre ou un échec d'analyse ne doit pas être présenté comme une correction réussie.
Autoriser des tests HTTP locaux
L'agent doit préparer une instance dédiée de votre application, sans données réelles, séparée du conteneur d'outils et sans accès réseau extérieur. Confirmez le périmètre, les comptes de test, les actions permises, la durée et le nombre maximal de requêtes avant de l'autoriser.
Le profil expérimental accepte des requêtes HTTP bornées, sans suivre les redirections. Une réponse incomplète interrompt la session sans réessai automatique. Si votre application ne peut pas tourner dans ce profil isolé, l'agent s'arrête ; il ne la remplace pas par une application factice et ne bascule pas vers une URL distante. Les scans navigateur vers une cible ne sont pas disponibles.
Après les requêtes, demandez à l'agent d'arrêter la session de tests, de conserver les preuves puis de générer la synthèse des observations HTTP avant de supprimer les conteneurs. Elle distingue les familles avec une réponse observée, les résultats incomplets et les familles non testées. Une réponse reçue ne prouve ni une faille ni l'exécution de tous les tests d'une famille.
La séparation technique des missions ne suffit pas à autoriser des agents IA autonomes : leur accès aux outils doit aussi être vérifié. Ne leur donnez pas un terminal généraliste pour contourner un blocage. Avant d'exposer des réponses applicatives à un modèle, confirmez les données autorisées et le fournisseur utilisé ; une boîte à outils locale ne signifie pas que le modèle est local.
Pour vérifier le parcours sur des factures fictives, le lanceur de campagne portable peut enchaîner recherche, vérification dans un nouveau contexte IA et rapport HTML/PDF, après un accord initial borné. Par défaut, il s'arrête au rapport : aucune correction ni nouveau test de correction. Il ne dépend ni d'Amp ni des MCP Apps. Demandez à votre opérateur de préparer le lanceur, ses outils locaux vérifiés et le serveur MCP local dans votre outil IA habituel. L'IA utilise votre abonnement ou le fournisseur déjà configuré dans cet outil ; aucune clé de fournisseur IA n'est à configurer dans Grace. Les échanges passent par des outils MCP ordinaires, sans réserver ce parcours à Claude Code, Codex ou une autre marque. Votre outil doit toutefois pouvoir exécuter chaque demande dans un contexte séparé, sans outils, et transmettre les refus sans les contourner. S'il ne le permet pas, annulez la campagne : le seul support de MCP ne garantit pas cette capacité. Ce laboratoire ne prend pas votre application cliente comme cible. Deux contextes séparés ne certifient pas l'indépendance des agents.
Avant d'accepter, vérifiez le modèle, les données transmises et les limites : deux missions et seize observations HTTP au maximum. Déclarez le destinataire correspondant à votre configuration locale et ne la changez pas pendant la campagne. Le rapport et les preuves restent locaux ; le fournisseur IA reçoit les observations fictives et la description du constat. Ce mode n'envoie pas de source au modèle et n'appelle pas Grace. Une correction ultérieure demande une nouvelle préparation et un accord qui la couvre explicitement, avec les talents sécurité actifs du projet.
Un refus du fournisseur, une erreur ou une interruption arrête la campagne sans relance automatique, sans reformulation pour contourner le refus et sans changement de modèle ou de fournisseur. L'autorisation locale ne remplace pas celle du fournisseur IA et ne garantit pas qu'il acceptera la mission. Le rapport ne remplace pas votre lecture et votre acceptation du document.
Avec l'adaptateur Amp facultatif, chaque mission demande une confirmation Autoriser cette mission IA locale ? avant le lancement, ou utilise votre accord textuel préparé séparément. Acceptez uniquement si le transfert du prompt et des réponses au fournisseur IA est autorisé. Un refus ou une confirmation expirée ne lance pas l'agent. Le fil créé est privé, mais n'est pas stocké exclusivement sur votre poste. Cet adaptateur reste à qualifier avec des agents réels avant un usage sur un projet client.
Si votre outil ne montre pas la confirmation, demandez une autorisation textuelle de mission.
L'agent présente le périmètre, le prompt exact, le destinataire IA, le budget et l'expiration,
puis attend votre réponse ACCEPTER ou REFUSER suivie de l'identifiant présenté.
Ce parcours ne nécessite ni MCP App ni formulaire du client. Il fait confiance au client pour
relayer votre réponse ; ce n'est pas une authentification humaine indépendante.
Sans relais humain fiable, aucun agent ne doit être lancé.
L'accord vaut pour une seule mission inchangée et expire au plus après dix minutes, ou plus tôt si le contrôleur expire. Un refus, un accord consommé ou une exécution incertaine exige une nouvelle mission ; redémarrer l'adaptateur ne restaure pas l'accord. Le délai d'exécution commence après votre accord, sans prolonger l'expiration du contrôleur. La confirmation native attend au plus une minute. Les règles du fournisseur IA restent applicables dans les deux parcours.
Pour un laboratoire synthétique jetable, vous pouvez demander un plan de mission différé si votre installation le propose. Vous disposez alors de 24 heures pour confirmer le plan présenté, sans laboratoire actif pendant l'attente. Vérifiez le projet, ses empreintes, le rôle de l'agent, le prompt, le destinataire et les limites avant de répondre.
Pour le laboratoire de factures, la demande porte un nom explicite : Audit des factures —
recherche de failles ou Audit des factures — validation des constats. Copiez la réponse
présentée, par exemple ACCEPTER audit-factures-recherche-a1b2c3d4 ou
REFUSER audit-factures-recherche-a1b2c3d4. Le suffixe court distingue les demandes : ne le
supprimez pas et ne réutilisez pas cet exemple. Le nom seul ou un simple « oui » ne suffit pas.
Après votre accord, l'exécuteur crée et vérifie le laboratoire, puis lance une seule mission : 8 requêtes au maximum et 180 secondes d'exécution, avec une limite totale de quatre minutes pour l'autorisation de test. Chaque conteneur s'arrête aussi au plus quatre minutes après son démarrage, même si le lanceur s'interrompt. Un projet ou une image modifiés bloquent le lancement. Un échec de création ne rétablit pas l'accord consommé. Le validateur demande son propre plan et son propre accord. Ce parcours ne prolonge pas les autorisations ordinaires et n'accepte pas de cible réelle ou distante. Les confirmations de relecture du rapport et de correction restent distinctes et inchangées.
L'accord sur la cible ne remplace pas l'autorisation du fournisseur IA. Si OpenAI affiche
cyber_policy, arrêtez la mission et consultez les
règles cyber de Codex et Trusted Access.
Avec Claude, consultez les
protections cyber et le Cyber Verification Program.
Vérifiez que l'accès approuvé couvre le compte, l'organisation, le modèle et l'outil effectivement
utilisés ; une plateforme tierce peut nécessiter une démarche auprès de son fournisseur.
Ne changez pas de modèle, de compte ou de formulation pour contourner un refus. Utilisez la
procédure officielle d'accès ou de signalement d'un faux positif. Une approbation personnelle
ne donne pas automatiquement le droit de proposer ces capacités à des clients tiers.
Si la mission semble bloquée, ouvrez Pentest : Voir le suivi local dans les commandes d'Amp,
depuis le fil qui l'a lancée. Vous pouvez aussi demander à l'agent de consulter
grace_native_mission_status. Cette lecture ne lance, ne reprend et n'arrête aucun test.
Elle indique l'étape, la durée, la dernière activité, l'échéance et l'action à entreprendre.
Le compteur indique des observations reçues, pas des tests validés ; le temps qui passe
ne compte pas comme une nouvelle activité.
Le suivi est conservé sur le poste où tourne l'adaptateur, pour ce fil. Après une interruption de l'adaptateur, une mission sans fin enregistrée apparaît Interrompu, avec une durée figée à la dernière activité connue. Vérifiez alors le registre du contrôleur avant toute autre action. Arrêt demandé n'est pas une confirmation d'arrêt, et Tour terminé n'est pas une certification de sécurité. Ce suivi local n'est pas un tableau de campagne dans Grace et ne lui transmet aucune donnée de campagne.
Conservez l'export des preuves dans un dossier privé sur votre poste ; la synthèse n'en recopie ni les URL ni le contenu des réponses. Elle ne transforme pas les observations en failles confirmées. Pour le laboratoire de factures synthétiques, demandez ensuite la génération d'un nouveau rapport à partir des missions terminées. Il distingue les réponses enregistrées, les scénarios reproduits localement dans deux missions et les domaines non testés. Une provenance manquante reste signalée ; ce document ne certifie ni la sécurité du projet ni une validation IA indépendante. Un accès à la facture d'un autre compte peut déjà apparaître comme constat candidat, même si le sens inverse n'a pas été testé. Le rapport ne décrit que les accès étayés par les preuves ; une observation incomplète ne fait pas disparaître les autres constats observés. L'ancien rapport et ses acceptations ne sont pas remplacés. Après une correction approuvée, vous pouvez demander un retest HTTP local : conservez les outils, les comptes et les données de test de la campagne. Faites préciser, avant toute nouvelle requête, les réponses attendues après correction et les accès légitimes qui doivent rester possibles. L'agent fige ces attentes, rejoue uniquement les sondes autorisées sur la version corrigée, puis compare les preuves avant et après.
Une application arrêtée, une réponse incomplète, une fuite malgré un refus ou un accès légitime cassé ne doit pas être présenté comme une correction réussie. Si le contenu des réponses varie, la comparaison peut rester non concluante. Des observations conformes aux attentes ne certifient pas la sécurité de l'application ; la correction et sa validation restent des décisions distinctes. Les tests sur une application factice prouvent le mécanisme, pas la sécurité de votre projet ni une validation IA indépendante. Le profil a été exercé sur macOS Apple Silicon ; Windows et Linux restent à qualifier.
Autoriser un contrôle TLS local
Si Configuration TLS est sélectionné, demandez un contrôle séparé sur l'instance locale dédiée.
Confirmez son port et le budget présenté : un scan, au plus 256 tentatives de connexion sur ce port
et 60 secondes. L'agent vérifie le certificat pour localhost et l'acceptation de TLS 1.0/1.1.
Un certificat autosigné local est normalement signalé comme non approuvé ; cela ne démontre pas
un défaut du certificat public. Après correction, le retest garde le même port et les mêmes outils.
Un port fermé ou une analyse interrompue donne un résultat non concluant, pas une faille corrigée.
Terminer la session
Les corrections sont une tâche de code séparée, soumise à votre accord. En fin de session, demandez à l'agent de conserver les preuves, d'arrêter les conteneurs qu'il a créés et de vérifier leur suppression. Les images en cache et vos preuves sauvegardées séparément ne sont pas supprimées.
Relire un rapport avec ou sans MCP App
Une MCP App est une vue interactive affichée par un client compatible. Le serveur local de rapport doit avoir été installé et configuré par l'opérateur avec un rapport expurgé. Il ne lance pas de test et n'envoie pas le rapport à Grace ; le client qui affiche l'App reçoit son contenu. Vérifiez donc également les règles de confidentialité de ce client.
Le rapport commence par À retenir et les Actions prioritaires. Chaque constat explique le problème, son impact potentiel, l'action recommandée, le comportement attendu et l'observation. Le Périmètre et les limites distingue ce qui a été observé, bloqué, interrompu ou non testé. « Observé » ne signifie pas « sécurisé » ; la sévérité reste une proposition, sans score CVSS calculé. Dans l'App, Candidate signifie « à confirmer » et Reproduced locally signifie « reproduit localement ». Accepter le rapport ne change ni ces statuts ni l'état des corrections.
Les Vérifications expliquées présentent chaque essai avec un nom parlant, son résultat
et les observations conservées. Pour les essais de factures, lisez Attendu, Observé,
puis la conséquence : par exemple, une facture montrée à la mauvaise personne.
La protection déjà présente dans le laboratoire sert de comparaison : ce n'est pas une correction
de la version fragile. Une Confirmation avant correction reproduit le problème ; les résultats
d'un éventuel test après correction figurent dans un compte rendu séparé.
Les renvois nomment l'essai au lieu d'afficher seulement un numéro ; ils sont cliquables dans
l'export HTML et restent du texte dans l'App. Les Données techniques sont repliées dans
ces deux lecteurs. Elles servent à retrouver les fichiers d'origine, pas à comprendre le résultat.
HTML, PDF et App présentent les mêmes faits. Une nouvelle génération ne remplace pas les anciens
fichiers ni leurs accords : relisez le nouveau document avant de l'accepter.
Pour le rendu d'un rapport, choisissez --locale fr ou --locale en ; sans option, il est
en anglais. Seuls les textes de présentation HTML/PDF changent de langue : le JSON et les
données libres des constats ne sont pas traduits.
Le PDF utilise un modèle fixe : synthèse, sévérités libellées et colorées, fiches de constat,
actions recommandées, limites puis vérifications expliquées. Les longues références techniques
restent dans les fichiers privés qui accompagnent le rapport, pas dans ses pages de lecture.
Le bas de chaque page rappelle la section en cours, même lorsqu'elle occupe plusieurs pages.
Pour rechercher ou copier du texte, préférez le
HTML : certaines ligatures peuvent être mal restituées dans le texte extrait du PDF.
- Ouvrez le rapport local et lisez ses limites : un scénario reproduit localement n'est pas une certification ; les autres observations peuvent rester candidates.
- Download PDF demande au client d'enregistrer le PDF produit à partir de ce même rapport. Sans téléchargement intégré, Export private PDF l'enregistre dans le dossier privé de l'opérateur. Récupérez-le avec les fonctions de fichiers de votre client ou auprès de l'opérateur.
- Accept reviewed report ouvre une confirmation du client. Elle enregistre une acceptation relayée par ce client, pas une preuve indépendante de présence humaine, d'existence d'une faille ou de sécurité du projet.
- Sélectionnez les observations, puis Request fixes for selected findings. Une seconde confirmation présente la sélection qui sera transmise à l'agent IA et à son fournisseur. Après accord, l'agent reçoit une demande de vérification et correction ciblée avec les talents de sécurité Grace, sans autorisation de déploiement.
Si l'App ne s'affiche pas, demandez le lien navigateur privé. Il permet de lire le rapport, de Télécharger le PDF, d'Ouvrir le PDF préparé et d'Enregistrer le HTML, sans plugin propre à votre outil. Le lien fonctionne sur la machine de l'opérateur pendant dix minutes. Ne le partagez pas : il donne accès au rapport. Le client qui le relaie peut également y accéder ; ce lien n'est pas une authentification humaine indépendante.
- Ouvrez le lien sur la machine de l'opérateur. Pour un client exécuté dans un environnement cloud privé, demandez à l'opérateur un accès privé à ce port ou un export privé HTML/PDF. Un lien local n'est pas accessible directement depuis votre ordinateur dans ce cas. Aucun hébergement public n'est créé automatiquement. Si le PDF est indisponible, la lecture et l'enregistrement du HTML restent possibles. Si le lien expire, demandez-en un nouveau.
- Après lecture, demandez l'acceptation du rapport. L'agent affiche sa référence et deux réponses
exactes,
ACCEPTERouREFUSERsuivis d'un identifiant temporaire. Répondez avec celle choisie. - Indiquez les identifiants des observations à corriger. Une nouvelle confirmation doit présenter le projet, le destinataire IA et les détails sélectionnés qui seront divulgués. Accepter le document seul n'autorise ni ce partage ni les corrections.
Une demande expire après dix minutes ; faites-en préparer une nouvelle si nécessaire. Ce mode fait confiance au client pour relayer votre réponse : il ne constitue pas une authentification humaine indépendante. Sans canal de conversation humain fiable, restez à la consultation privée. Partager le rapport entier avec le modèle exige un accord séparé ; ce n'est pas nécessaire pour choisir les observations dans votre copie privée.
Un refus conserve le rapport. En cas d'envoi incertain, vérifiez la conversation avant toute nouvelle demande ; aucun renvoi automatique n'est effectué. Une demande envoyée ne prouve pas qu'une correction ou un retest a eu lieu. Un redémarrage du serveur exige de nouvelles confirmations, mais les fichiers exportés restent disponibles. Aucune décision n'est enregistrée dans Grace.
Une isolation bornée, pas une garantie de risque nul
Le rendu PDF est hors ligne, sans accès au dépôt, au dossier personnel ou au socket Docker. Docker n’est toutefois pas une machine virtuelle ni une garantie de risque nul. Gardez le moteur à jour. Le lecteur navigateur affiche uniquement le rapport sélectionné, sans lancer de test ni accéder à la cible. Lire ou télécharger n'autorise aucune correction. Les outils locaux ne garantissent pas une inférence locale : vérifiez aussi quelles données votre fournisseur de modèle IA est autorisé à recevoir.
Si cela ne fonctionne pas
| Ce que vous voyez | Que faire |
|---|---|
| Grace n’apparaît pas | Vérifiez que vous avez suivi le chemin correspondant à votre agent IA, puis rechargez sa connexion. Avec Copilot CLI, lancez-le à la racine du dépôt et approuvez la confiance du dossier. |
| La commande écrit un fichier de trop, ou aucun | Relancez-la en simulation avec --dry-run sur macOS/Linux ou -DryRun sur Windows : elle annonce ce qu'elle ferait sans rien écrire. |
Copilot CLI refuse .github/mcp.json | Corrigez d’abord le JSON invalide : le script n’écrit aucun autre fichier tant que la configuration ne peut pas être lue. |
| L’authentification Copilot CLI échoue | Suivez la reprise Copilot CLI : authentification, réinitialisation si nécessaire, puis vérification. |
| L’accès est refusé | Vérifiez le compte utilisé, votre organisation et son approbation. |
| Claude Code perd sa connexion pendant une tâche | Relancez l'authentification indiquée à l'étape 4, puis vérifiez les outils. Si cela revient, transmettez à votre administrateur la version de Claude Code, l'heure et le message d'erreur, et précisez si plusieurs appels étaient lancés ensemble. Ne partagez ni jeton ni lien d'autorisation complet. |
| Aucun talent n’est actif | Demandez à la personne qui configure le projet de choisir les talents nécessaires. |
| Le profil pentest refuse de modifier la configuration | Comparez la configuration avec celle affichée. Utilisez une session isolée, sans serveur Grace général ni chemin lié ; préservez les fichiers habituels. |
| L'agent refuse Docker ou Buildx | Démarrez le moteur local Linux. Vérifiez Buildx dans Docker Desktop, ou son plugin officiel avec Docker Engine. Les moteurs et builders distants sont refusés. |
| La dernière version des outils est indisponible | Arrêtez la préparation et réessayez plus tard ; ne choisissez pas une ancienne version. |
| La preuve DNS a expiré | Renouvelez le défi, publiez la nouvelle valeur, puis demandez sa vérification. Cela n'active pas l'exécution distante. |
Consultez aussi le dépannage et les outils MCP.