scrubbd
Version prématurée : le pipeline d’analyse fonctionne, le visuel et les fonctionnalités arriveront plus tard.
Pseudonymiseur de logs de sécurité, 100 % local. Collez ou déposez un log, scrubbd détecte les données personnelles et les secrets (adresses IP, emails, comptes, hostnames, noms de personnes, numéros de téléphone, cartes, tokens, mots de passe), vous choisissez de garder ou de remplacer chaque valeur, puis il produit un fichier nettoyé et un rapport.
Tout tourne dans le navigateur : aucune donnée n’est envoyée au serveur. Une CSP stricte interdit toute connexion sortante, et un test end-to-end vérifie qu’aucune requête n’est émise après le chargement de la page.
Les remplacements sont cohérents : la même valeur reçoit le même alias partout dans le fichier, ce qui permet de continuer à suivre un acteur ou une machine dans un log partagé. Les secrets, eux, sont remplacés par [SECRET], jamais par un alias réversible.
Fonctionnalités
- Détection : 27 détecteurs (IPv4/IPv6, MAC, emails, comptes, hostnames, noms de personnes, téléphones, cartes, URLs avec identifiants, secrets et tokens, valeurs SQL, etc.) sur du texte brut, JSON/NDJSON, CSV, syslog, CEF, XML Windows, nginx, Squid, Zeek, DHCP…
- Revue : un tableau liste chaque valeur détectée avec son type, son alias et son nombre d’occurrences. Vous décidez de garder ou de remplacer, valeur par valeur.
- Alias lisibles : les IP gardent leur classe (privée reste privée, publique devient une adresse de documentation RFC 5737), ou deviennent
[IP-01]si vous préférez. Les identités texte deviennentpersonne-01,compte-01. - Options : IDs internes et IDs métier, coordonnées GPS masquées ou arrondies (~1 km).
- Contrôle final : une dernière passe relit la sortie et cherche d’éventuelles valeurs d’origine restantes.
- Rapport : un JSON qui liste les types, alias et occurrences, sans jamais contenir les valeurs d’origine.
Fiabilité
Un outil de pseudonymisation se juge sur ce qu’il laisse passer. scrubbd est testé contre trois corpus de logs synthétiques (57 fichiers, plus de 7 800 cas annotés à la main, un par valeur à masquer ou à garder), en plus de 154 tests unitaires et de régression. Les corpus sont vérifiés à chaque push par la CI, et la moindre fuite fait échouer le build.
Les cas où il n’existe pas de bonne réponse (112 aujourd’hui : un nom dans une URL, un fichier app.3.2.1.4.js qui ressemble à une IPv4, un compte de service applicatif…) ne sont pas cachés : ils sont publiés avec leur justification dans docs/known-limits.md.
npm run test:corpus
# OK · 7 820 cas annotés · 0 fuite · 112 à arbitrer
Limites
scrubbd pseudonymise les valeurs évidentes. Il ne garantit ni l’anonymat ni la conformité RGPD : une relecture humaine reste nécessaire avant de partager un log. La page « How it works and limits » de l’outil le dit sans détour.
Stack
TypeScript strict, Vite pour le build, aucune dépendance à l’exécution et aucun framework pour l’interface. Vitest pour les tests, Playwright pour la vérification réseau.
Licence
Apache-2.0. Le code est ouvert, les contributions sont les bienvenues, et les issues de détection sont le meilleur moyen d’améliorer l’outil.