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.
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 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ès | Quand | Charge utile |
|---|---|---|
/enroll | une fois à l'installation | ID 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) |
/getConfig | intervalle d'interrogation | jeton d'authentification seulement |
/reportAudit | quand de nouvelles entrées d'audit existent | horodatage, action, chemin, motif, scores |
/reportQuarantine | sur un résultat de quarantaine | ID de cas, chemin, motif, scores et le diff caviardé (taille plafonnée) |
/ackDecision | une fois par cas résolu | ID 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 :
| Champ | Ce qu'il contient | Caviardé ? |
|---|---|---|
path | Le chemin du fichier modifié, pour qu'un relecteur sache quel fichier | Non : le chemin seul, jamais le contenu |
redactedDiff | Uniquement les lignes ajoutées, secrets et PII structurées remplacés par des marqueurs, taille plafonnée | Oui, localement avant l'egress |
diffFidelity | Si le diff stocké correspond au texte jugé (exact) ou en est une projection réduite (projection) | Métadonnée, pas de contenu |
removedLines | Uniquement le nombre de lignes supprimées ; le texte supprimé ne quitte jamais l'appareil | Oui : seul un nombre part |
originalHash | SHA-256 du fichier avant le changement, pour l'idempotence et le supersede | Empreinte, pas de contenu |
reason, scores | Une courte chaîne de motif et les scores calculés du cas | Métadonnée, pas de contenu |
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 :
| Classe | Exemple | Marqueur |
|---|---|---|
| Clés d'API | clés de type fournisseur, GitHub, Slack, AWS, Google, Stripe, secrets de webhook | [REDACTED:apikey] |
| JWT | trois segments base64url | [REDACTED:jwt] |
| Affectations génériques | key/token/secret/password = valeur (nom de clé gardé, valeur retirée) | [REDACTED:secret] |
| adresses au format RFC | [REDACTED:email] | |
| IBAN | code pays, chiffres de contrôle et BBAN | [REDACTED:iban] |
| Numéro de carte | numéros de carte groupés | [REDACTED:card] |
| Adresse IP | adresse IPv4 en quatre octets pointés | [REDACTED:ip] |
| Téléphone | format international uniquement | [REDACTED:phone] |
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 ?" :
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
À lire ensuite
Comment un changement incertain est retenu et vous est présenté : les invites de confirmation utilisateur. Toute la protection est fail-closed.
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