GDPR Scanner
Detecte automatiquement les colonnes contenant des donnees personnelles dans tes bases. Pratique pour preparer un audit RGPD, configurer le Column Masking, ou identifier les donnees a anonymiser avant une copie staging.
Le scanner combine 3 strategies de detection : nom de colonne, type de donnees, et echantillonnage du contenu. Plus l'echantillon est riche, plus la detection est fiable.
Quand utiliser ce scannerβ
- π‘οΈ Preparer un audit RGPD ou SOC2 β produire un inventaire des PII par base, par table, par colonne
- π Avant une copie prodβstaging β savoir quoi anonymiser avant de cloner
- π Configurer le Column Masking β laisser le scanner pre-remplir les regles
- π Cataloguer ton patrimoine de donnees β pour une demarche de classification continue
Le scanner ne modifie rien dans tes bases ; il lit en SELECT uniquement.
Lancer un scanβ
Sidebar gauche β GDPR Scanner. Bouton "Lancer le scan" en haut a droite.
Le scan tourne en arriere-plan (1-30s selon la taille). Tu peux fermer l'onglet, le resultat est persiste. Notification push quand c'est termine.
Options du scanβ
| Option | Default | Description |
|---|---|---|
| Connexion | active | Choisis quelle base scanner |
| Schemas | tous | Filtrer pour ne pas perdre de temps sur les schemas systeme |
| Tailles d'echantillon | 100 lignes | Plus = plus precis, mais plus lent |
| Reglements cibles | RGPD | RGPD, CCPA, LGPD, HIPAA selon ton plan |
| Re-utiliser le snapshot | true | Si tu viens d'analyser, pas la peine de re-lire |
Comment ca detecteβ
1. Heuristique sur le nom de colonneβ
Match regex sur les noms standards :
| Pattern de nom | Categorie PII | Severite |
|---|---|---|
email, e_mail, mail | Contact | Medium |
phone, telephone, mobile, tel_ | Contact | Medium |
first_name, last_name, firstname, lastname, full_name | Identite | Medium |
birth_date, dob, date_of_birth | Sensible | High |
ssn, social_security, nir, aadhaar | Identifiant gov | Critical |
passport, id_card, national_id | Identifiant gov | Critical |
iban, bank_account, card_number, pan | Financier | Critical |
password, pwd, passphrase | Auth | Critical |
address, street, city, postal_code, zip | Localisation | Medium |
gps, latitude, longitude, geolocation | Localisation precise | High |
ip_address, user_agent | Trace technique | Low |
medical_*, diagnosis, health_* | Sante | Critical |
religion, political_*, sexual_* | Sensible RGPD | Critical |
2. Type de donneesβ
UUID ou JSONB sont marques a investigation parce qu'ils peuvent
contenir n'importe quoi. KytheraDB echantillonne 100 valeurs et regarde si
elles matchent des patterns connus (UUID v4, JWT, JSON avec cle email...).
3. Echantillonnage du contenuβ
Sur les colonnes TEXT / VARCHAR, scan d'un echantillon avec regex :
^[\w.+-]+@[\w.-]+\.\w+$β email^\+?\d{10,14}$β phone^[A-Z]{2}\d{2}[\d ]+$β IBAN^\d{3}-\d{2}-\d{4}$β SSN US^\d{4} \d{4} \d{4} \d{4}$β numero de carte^192\.168\.|^10\.|^172\.(1[6-9]|2[0-9]|3[01])\.β IP privee^[a-f0-9]{32}$β hash MD5 / token
Si > 50% de l'echantillon match, la colonne est flaggee. La confiance est calculee selon le pourcentage de match.
Resultat du scanβ
Le scan produit un rapport visualisable et exportable :
Vue resumeβ
- Nombre total de colonnes flaggees par severite
- Repartition par categorie (Contact, Identite, Financier, etc.)
- Repartition par schema et par table
- Score de conformite estime
Vue detailleeβ
Pour chaque colonne flaggee :
- Path complet :
schema.table.column - Type SQL :
text,varchar(255),jsonb, etc. - Categorie PII + severite + confiance (en %)
- Methode de detection : nom / type / echantillon
- Exemples de valeurs masquees (3-5 echantillons obfusques type
j****@e*****.com) - Reglement applicable : RGPD Art. 4(1), CCPA Β§1798.140(o)(1), etc.
- Actions suggerees : configurer un Column Mask, anonymiser, exclure d'un export
Exportβ
Bouton "Exporter le rapport" β CSV ou PDF. Le PDF est mis en forme pour etre joint a un dossier d'audit (header, footer, signature, date).
Actions a partir du rapportβ
Chaque ligne du rapport a des actions rapides :
- Configurer un Column Mask β ouvre directement le wizard de masquage avec la colonne pre-selectionnee
- Marquer comme faux positif β la colonne disparait des rapports suivants
- Anonymiser cette colonne β ouvre l'Anonymisation avec la cible pre-remplie
- Voir les donnees β ouvre la SQL Console avec un
SELECT ... LIMIT 10(les valeurs seront automatiquement masquees selon ton role)
Historique des scansβ
Tous les scans sont historises. Tu peux :
- Comparer 2 scans dans le temps β voir les nouvelles colonnes PII apparues, les anciennes disparues, les promotions de severite
- Suivre l'evolution de la conformite par schema / connexion
- Reproduire un audit a une date donnee (les scans sont immuables)
C'est utile pour montrer la trajectoire en audit : "voici notre score conformite en janvier vs juin, voici les actions prises entre les deux".
Faux positifs courantsβ
Le scanner est opt-in conservateur β mieux vaut un faux positif qu'un faux negatif. Tu vas en avoir, voici les classiques :
| Colonne | Pourquoi flag | Si c'est OK pour ton cas |
|---|---|---|
notes, description, comments | Texte libre, peut contenir des PII | Marque "vu, pas de PII attendu" |
external_id, customer_ref | UUID ressemble parfois a un identifiant | Faux positif si c'est un identifiant interne sans correspondance externe |
metadata, payload (JSONB) | Type ouvert, contenu inconnu | Inspecte un echantillon ; si pas de PII, marque resolu |
last_modified_by | Email comme valeur possible | Souvent OK : c'est ton equipe interne |
Le marquage faux positif est par projet β tu n'as a le faire qu'une fois.
Limitesβ
- Pas de scan sur les vues materialisees ni les CTE β uniquement les tables physiques
- Sample biais β si tes 100 premieres lignes sont des donnees de seed factices, le scanner peut conclure "pas de PII" alors qu'il y en a apres
- Pas de detection de PII chiffrees β si tu stockes des emails encryptes avec ton propre algo, le scanner ne peut pas les decouvrir (et c'est tant mieux pour ta securite)
- Limite par connection-DB : pas de cross-DB. Il faut scanner chaque base separement.
Tarificationβ
- Plan starter : pas inclus
- Plan pro : 5 reglements simultanes max (RGPD + 4 autres)
- Plan enterprise : illimite + comparaisons historiques + export PDF
Pour plus de details, voir la page Tarifs.
Connexeβ
- Anonymisation β strategies pour neutraliser les PII detectees
- Column Masking β masquer les PII a l'affichage par role
- Export Policy β bloquer l'export des colonnes flaggees
- SQL Console β explorer les donnees suspectes