
Analyse les bases de données PostgreSQL et les tickets Jira à la recherche de données personnelles (PII) à l'aide d'expressions régulières, de NER/ML et d'une détection optionnelle par LLM auto-hébergé, avec des rapports expurgés et une journalisation d'audit.
Un outil de sécurité interne pour découvrir les informations personnelles identifiables (PII) dans les bases de données PostgreSQL et les projets Jira
Le Scanner PII par IA est un outil complet axé sur la sécurité, conçu pour les équipes de sécurité applicative et de protection de la vie privée afin de découvrir et cataloguer les PII. Il prend en charge deux cibles d'analyse :
La détection utilise un pipeline à trois couches :
@mentions et adresses e-mail d'entrepriseCRITIQUE : Cet outil est conçu pour un usage interne uniquement dans un environnement sécurisé et contrôlé.
| Contrôle de sécurité | Implémentation |
|---|---|
| Prévention de l'exfiltration de données | Aucun appel API tiers ; les points de terminaison LLM doivent être auto-hébergés |
| Accès au moindre privilège | Rôle de base de données en lecture seule sans accès en écriture aux données applicatives |
| Minimisation des PII | Les résultats ne stockent que des métadonnées et des échantillons fortement rédigés |
| Piste d'audit | Toutes les analyses sont journalisées avec les détails qui/quoi/quand/comment |
| Journalisation sécurisée | Journaux structurés avec rédaction automatique des champs PII |
| Transit chiffré | SSL/TLS requis pour toutes les connexions à la base de données |
| Vérification des webhooks | Validation de signature HMAC-SHA256 pour les événements Jira entrants |
Utilisez cette section si vous souhaitez analyser une base de données PostgreSQL à la recherche de PII dans les colonnes.
# Clone the repository
cd PIIHunter
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Download spaCy NER model (~800MB)
python -m spacy download en_core_web_lg
Exécutez ceci en tant que superutilisateur PostgreSQL :
CREATE ROLE pii_scanner_readonly WITH LOGIN PASSWORD 'your_secure_password';
GRANT CONNECT ON DATABASE your_database TO pii_scanner_readonly;
GRANT USAGE ON SCHEMA public, app_data TO pii_scanner_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public, app_data TO pii_scanner_readonly;
cp .env.example .env
# Fill in DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD
Crée le schéma security_pii où les résultats d'analyse sont stockés. À exécuter une seule fois :
python -m pii_scanner.cli init-schema
# Preview candidate columns (no data read)
python -m pii_scanner.cli discover
# Run PII detection
python -m pii_scanner.cli scan --sample-size 1000
# View results
python -m pii_scanner.cli report
python -m pii_scanner.cli test-connection
Utilisez ceci si vous souhaitez analyser les tickets et commentaires Jira pour détecter une exposition accidentelle de données personnelles (PII).
L'installation de base (Étape 1 ci-dessus) est requise au préalable. La configuration de la base de données (Étapes 2–4) n'est pas requise si vous souhaitez uniquement l'analyse Jira.
Interroge Jira à la demande pour l'activité des N dernières heures. Aucun serveur nécessaire.
Étape 1 — Installation de base (si ce n'est pas déjà fait)
cd PIIHunter
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python -m spacy download en_core_web_lg
Étape 2 — Générer un jeton d'API Jira
https://id.atlassian.com → Sécurité → Jetons d'APIÉtape 3 — Configurer l'environnement
cp .env.example .env
Modifiez .env et renseignez vos informations Jira :
JIRA_URL=https://yourcompany.atlassian.net
[email protected]
JIRA_API_TOKEN=your_api_token_here
# Optional — leave empty to scan all projects
# JIRA_PROJECT_KEYS=ENG,OPS,SUPPORT
# Emails from these domains will NOT be flagged as PII
COMPANY_EMAIL_DOMAINS=yourcompany.com
Étape 4 — Tester la connexion
Vérifie vos identifiants, liste les projets accessibles et récupère un échantillon des tickets récents :
python -m pii_scanner.cli jira test
Expected output:
Testing connection to https://yourcompany.atlassian.net...
Auth ✓ logged in as Jane Smith ([email protected])
Projects ✓ 3 accessible: ENG, OPS, SUPPORT
Project ENG ✓ accessible
Recent issues (no time filter):
ENG-101 Fix login timeout on mobile
ENG-100 Update password policy
Si cela échoue, vérifiez votre jeton d'API et que JIRA_EMAIL correspond au compte pour lequel le jeton a été généré.
Étape 5 — Lancer un scan
# Scan last 24 hours
python -m pii_scanner.cli jira scan
# Custom lookback window
python -m pii_scanner.cli jira scan --hours 48
Démarre un serveur HTTP qui reçoit les événements Jira et les analyse instantanément dès leur arrivée. Nécessite un point de terminaison accessible publiquement.