Modes de fonctionnement

Ce que le mode Cloud envoie

En mode Cloud, un changement est évalué sur un point d'accès distant durci. Ce qui quitte l'appareil est fixe, minimal et vérifiable localement : un diff caviardé limité aux lignes ajoutées et le chemin du fichier, jamais le fichier complet. Cette page est le contrat de données exact.

~6 min de lecture · Modes de fonctionnement

Vue d'ensemble

Le mode Cloud envoie une projection du changement, pas le fichier :

  • Envoyé : le chemin du fichier et un diff unifié caviardé, limité aux lignes ajoutées, sur TLS, vers un ensemble fixe de points d'accès.
  • Jamais envoyé : le contenu complet des fichiers, le texte des lignes supprimées, les listes de répertoires ou de processus, la télémétrie système.
  • Consigné : chaque requête sortante du daemon est écrite dans un registre d'egress local et lisible.
Le mode Privé ne fait aucun appel d'analyse ; le contenu ne quitte jamais la machine. Voir la liste d'autorisation d'egress complète dans exigences réseau et pare-feu.

Le contrat de données

La surface des points d'accès est petite et fixe ; chaque requête porte une charge utile documentée et minimale. Aucun contenu de fichier mémoire ne franchit la frontière, sauf sous forme de diff caviardé :

Point d'accèsQuandCharge utile
/enrollune fois à l'installationID d'app et un code d'enrôlement à usage unique
/evaluateà chaque changement d'un fichier protégéchemin et diff unifié caviardé (pas de textes complets)
/getConfigintervalle d'interrogationjeton d'authentification seulement
/reportAuditquand de nouvelles entrées d'audit existenthorodatage, action, chemin, motif, scores
/reportQuarantinesur un résultat de quarantaineID de cas, chemin, motif, scores et le diff caviardé (taille plafonnée)
/ackDecisionune fois par cas résoluID de cas et issue (applied, stale ou discarded)

Ce que contient chaque champ

La projection évaluée est caviardée, limitée aux lignes ajoutées et plafonnée en taille sur l'appareil avant l'envoi. Voici les champs du rapport de quarantaine et ce que chacun porte :

ChampCe qu'il contientCaviardé ?
pathLe chemin du fichier modifié, pour qu'un relecteur sache quel fichierNon : le chemin seul, jamais le contenu
redactedDiffUniquement les lignes ajoutées, secrets et PII structurées remplacés par des marqueurs, taille plafonnéeOui, localement avant l'egress
diffFidelitySi le diff stocké correspond au texte jugé (exact) ou en est une projection réduite (projection)Métadonnée, pas de contenu
removedLinesUniquement le nombre de lignes supprimées ; le texte supprimé ne quitte jamais l'appareilOui : seul un nombre part
originalHashSHA-256 du fichier avant le changement, pour l'idempotence et le supersedeEmpreinte, pas de contenu
reason, scoresUne courte chaîne de motif et les scores calculés du casMétadonnée, pas de contenu
Le diff est une projection, pas le fichier entier : le texte des lignes supprimées est écarté et seul leur nombre est rapporté, donc le contenu antérieur au changement ne quitte jamais la machine.

Caviardage local avant l'egress

Avant qu'un seul octet ne soit envoyé, le diff passe par une étape de caviardage locale. Les secrets reconnaissables et les PII structurées sont remplacés par des marqueurs préservant la structure, pour que l'évaluateur puisse encore raisonner sur le changement pendant que les valeurs sensibles restent sur l'appareil. Les noms de clés survivent ; seules les valeurs sont retirées :

ClasseExempleMarqueur
Clés d'APIclés de type fournisseur, GitHub, Slack, AWS, Google, Stripe, secrets de webhook[REDACTED:apikey]
JWTtrois segments base64url[REDACTED:jwt]
Affectations génériqueskey/token/secret/password = valeur (nom de clé gardé, valeur retirée)[REDACTED:secret]
E-mailadresses au format RFC[REDACTED:email]
IBANcode pays, chiffres de contrôle et BBAN[REDACTED:iban]
Numéro de cartenuméros de carte groupés[REDACTED:card]
Adresse IPadresse IPv4 en quatre octets pointés[REDACTED:ip]
Téléphoneformat international uniquement[REDACTED:phone]
L'ordre des règles est délibéré : les formats de secret sont reconnus avant les motifs génériques, pour qu'une ligne de clé d'API soit caviardée comme un secret plutôt que fragmentée. Les noms en texte libre et les PII non structurées ne sont pas détectables par motif hors ligne et peuvent passer.

Le registre d'egress

Chaque requête sortante est consignée localement dans un registre lisible. Chaque ligne porte l'horodatage, le point d'accès, la taille de la charge utile, le SHA-256 de la charge (jamais son contenu) et le statut HTTP. C'est la comptabilité vérifiable du "est-ce que ça téléphone à la maison ?" :

textLignes du registre d'egress
2026-06-04T12:00:01Z endpoint=/getConfig bytes=2   sha256=44136f… status=200
2026-06-04T12:03:17Z endpoint=/evaluate  bytes=412 sha256=9f86d0… status=200
Le registre peut être recoupé avec les journaux du pare-feu ou une capture de paquets : un observateur externe doit voir exactement les requêtes que le registre consigne, et rien de plus. La vérification n'exige pas de faire confiance à l'éditeur.

À lire ensuite

Comment un changement incertain est retenu et vous est présenté : les invites de confirmation utilisateur. Toute la protection est fail-closed.

Est-ce utile ?

L'évaluation dans le cloud, votre contenu sur l'appareil.

Un diff caviardé, limité aux lignes ajoutées, est tout ce qui quitte la machine, et le registre local le prouve. Gratuit pour Linux, macOS et Windows.

Sign me up