Skip to content

Security Guardrails & Masquage PII 🛡️

La sécurité des données est au cœur de la conception de LLM Bastion. Pour garantir la conformité avec des réglementations strictes telles que le RGPD ou HIPAA, le gateway intègre un système de détection et d'anonymisation en temps réel des données personnelles (PII) avant qu'elles ne soient envoyées à des serveurs tiers.


🔒 Qu'est-ce que le Masquage PII à la volée ?

Lorsque vos développeurs ou vos clients envoient des requêtes à vos modèles de langage, ils peuvent y inclure par mégarde des informations sensibles (adresses email, numéros de cartes de crédit, identifiants d'API, mots de passe).

LLM Bastion analyse le flux de texte entrant à l'aide d'un moteur d'expressions régulières compilé en Rust (ultra-rapide, latence additionnelle < 2ms) et remplace instantanément chaque élément identifié par un jeton d'anonymisation unique.

flowchart LR A["Requête Client Brute"] -->|"secret.account@gmail.com"| B["LLM Bastion Gateway"] B -->|Détection & Masquage| C["[[LLM_REDACTED_EMAIL_6dcf2b]]"] C --> D["Fournisseur LLM Externe (OpenAI/Anthropic)"]

🔬 Validation Rigoureuse par les Tests (test_pii_redaction_logic)

Chaque politique de sécurité est soumise à un banc d'essai automatisé dans notre suite d'intégration pour garantir qu'aucune fuite de données ne se produise en production :

  1. Envoi du Payload : Un appel client contenant le texte "My email is secret.account@gmail.com" est envoyé au gateway.
  2. Traitement Rust : Le module de conformité intercepte la requête, applique la règle RGPD d'exclusion des adresses de courrier électronique.
  3. Assertion du Connecteur : Le test valide que le corps de la requête effectivement transmis à l'API d'OpenAI ne contient plus jamais la chaîne brute secret.account@gmail.com mais intègre bien le pattern [[LLM_REDACTED_.

🛠️ Catalogue de Détection des Informations Sensibles

LLM Bastion détecte et neutralise nativement les catégories d'informations suivantes :

CatégorieIdentifiant RègleType de MasquageExemple de Détection
EmailsEMAIL[[LLM_REDACTED_EMAIL_...]]user@company.com
Clés d'APIAPI_KEY[[LLM_REDACTED_KEY_...]]Clés OpenAI sk-..., tokens GitHub
IdentifiantsCREDENTIALS[[LLM_REDACTED_CRED_...]]Mots de passe, tokens de session
Données FinancièresCARD_NUMBER[[LLM_REDACTED_FIN_...]]Numéros de cartes de crédit
CertificatsPEM_BLOCK[[LLM_REDACTED_PEM_...]]Blocs de clés privées SSH/PEM

⚙️ Configuration d'une Règle de Conformité

Vous pouvez définir vos règles via l'interface d'administration ou les charger via l'API d'administration. Une règle standard se compose ainsi :

json
{
  "name": "Redaction des Emails Professionnels",
  "compliance_type": "Gdpr",
  "secret_type": "EMAIL",
  "pattern": "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}",
  "severity": "high",
  "is_enabled": true
}

🔓 Le Démasquage au Retour (De-masking)

Si un utilisateur autorisé (ex: un conseiller support client dans votre CRM) a besoin de voir la donnée originale dans la réponse générée par l'IA, le gateway peut restaurer de manière sécurisée la valeur initiale au moment de renvoyer le flux JSON, à condition que la clé d'API virtuelle associée possède l'autorisation pii:decrypt.


🔌 Contrôle Dynamique par En-tête HTTP

Les développeurs peuvent également forcer le masquage PII à la volée sur n'importe quel appel API en ajoutant le drapeau pii-safe dans le header X-LLM-Flags (ou son alias compatible X-Bastion-Flags) :

bash
curl https://api.llmbastion.fr/v1/chat/completions \
  -H "Authorization: Bearer lb_virtual_key_here" \
  -H "X-LLM-Flags: pii-safe" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {"role": "user", "content": "Veuillez envoyer le contrat à contact@entreprise.fr."}
    ]
  }'
  • Comportement : Le prompt est intercepté et l'adresse email est masquée avant le transfert au modèle cible, protégeant vos données sensibles instantanément. Pour une référence complète des en-têtes utilisables, consultez le Guide des En-têtes HTTP de Contrôle.

WARNING

Par défaut, l'accès à la donnée brute démasquée est strictement refusé pour toutes les requêtes clientes non privilégiées afin de prévenir toute fuite de données vers des tiers ou des interfaces publiques.