Audit & Conformité
Objectif & portée
- Définir les exigences d'audit et de journalisation de bout en bout.
- Standardiser les schémas d'événements, la collecte, l'agrégation et la
conservation.
- Garantir l'intégrité, la traçabilité et la non-répudiation des actions
sensibles.
- Aligner avec CNDP/RGPD (Maroc/UE) et les runbooks Ops.
Portée technique
- API v1 (gateway/orchestrateur)
- Webhooks (Facebook/WhatsApp)
- RAG/KB, NLU/LLM
- Jobs batch & MLOps
- Infra (K8s/Docker), DB, Object Storage
- Accès admin & consoles
Audience
- Platform/SRE
- Security (Blue/Red)
- Data/ML
- Product Compliance
- DPO
Principes fondamentaux
Minimisation & confidentialité
- Pas de PII en clair dans logs/labels/métriques.
- Pseudonymisation obligatoire (tokens réversibles DPO uniquement).
- Masquage automatique des champs sensibles (email, téléphone).
Standard temps
- Stockage en UTC
Z ; timestamp_local (UTC+1) optionnel pour lecture
humaine.
- Les corrélations multi-systèmes s'appuient uniquement sur UTC.
Horodatage & corrélation
- Horodatage standard : ISO 8601 UTC (
Z) pour tous les événements
(journalisation, audit, traces).
- L'affichage local (UTC+1 Maroc) est option UI ; la corrélation et les
vérifications d'intégrité s'appuient uniquement sur l'UTC.
- Corrélation obligatoire :
trace_id, span_id, correlation_id,
X-Request-Id. Synchronisation NTP ±100 ms.
Séparation des flux
- Applicatif : debug, performance, erreurs métier.
- Sécurité : tentatives d'intrusion, anomalies, alertes.
- Audit : actions sensibles, conformité, traçabilité légale.
Immutabilité
- Données d'audit immuables (WORM/tamper-evident).
- Signature cryptographique des lots d'audit.
- Chaînage de hachage pour détection de falsification.
Architecture de collecte
Collecteurs
| Composant |
Protocole |
Destination |
Sampling |
| API Gateway |
OTLP gRPC |
SIEM |
10% traces |
| Webhooks |
OTLP HTTP |
SIEM |
100% audit |
| K8s Pods |
Filebeat |
ELK Stack |
logs complets |
| DB Audit |
Direct SQL |
SIEM |
100% |
| Admin Console |
OTel Collector |
SIEM |
100% actions |
Schéma d'événement standard
{
"timestamp": "2025-08-14T10:30:00.123Z",
"trace_id": "abc123...",
"span_id": "def456...",
"correlation_id": "req-789...",
"tenant_id": "tenant-001",
"event_type": "auth.login.success",
"severity": "INFO",
"actor": {
"user_id": "user-456",
"role": "admin",
"ip_address": "192.168.1.100",
"user_agent": "Mozilla/5.0..."
},
"resource": {
"type": "user_account",
"id": "account-789",
"attributes": { "email_hash": "sha256:..." }
},
"action": {
"operation": "login",
"outcome": "success",
"details": { "mfa_used": true }
},
"context": {
"service": "auth-service",
"version": "v1.2.3",
"environment": "production"
}
}
Sampling & priorités
- Traces applicatives : 10% par défaut, 100% sur erreurs P0/P1.
- Événements d'audit : 100% (aucun échantillonnage).
- Logs de sécurité : 100% (tentatives d'intrusion, anomalies).
- Métriques : agrégation 1min/5min/1h selon criticité.
SIEM & agrégation
Ingestion multi-tenant
- Label tenant obligatoire sur tous les événements.
- Isolation des données par tenant (partitions/index séparés).
- Quotas par tenant pour éviter la saturation.
Règles de corrélation
| Règle |
Déclencheur |
Action |
| Brute force |
>5 échecs login/5min |
Alerte P2 |
| Privilege escalation |
Changement rôle admin |
Alerte P1 |
| Data exfiltration |
Export >1000 records |
Alerte P1 |
| Anomalie géo |
Login pays inhabituel |
Alerte P3 |
| API abuse |
>1000 req/min/user |
Rate limiting |
Détections MITRE ATT&CK
- T1078 : Valid Accounts (détection comptes compromis)
- T1190 : Exploit Public-Facing Application (WAF bypass)
- T1083 : File and Directory Discovery (énumération)
- T1041 : Exfiltration Over C2 Channel (transferts suspects)
Événements audités
Authentification & autorisation
- Login/logout (succès/échec)
- Activation/désactivation MFA
- Refresh/révocation de tokens
- Changements de mots de passe
- Tentatives d'accès non autorisé
Gestion des données
- Création/modification/suppression d'entités critiques
- Exportation de données (>100 records)
- Suppression de données PII (droit à l'effacement)
- Accès aux données sensibles (logs d'audit, backups)
Configuration & administration
- Changements de configuration système
- Modification des permissions/rôles
- Déploiements et mises à jour
- Accès aux consoles d'administration
- Actions DPO (gestion consentements, exports)
Sécurité & incidents
- Détections d'intrusion
- Violations de politique de sécurité
- Échecs de validation (signatures, certificats)
- Tentatives d'injection (SQL, XSS, etc.)
Stockage & intégrité
Tiers de stockage
| Tier |
Durée |
Type |
Accès |
| Hot |
30-90j |
SIEM indexé |
Temps réel |
| Warm |
3-12 mois |
Compression |
Recherche |
| Cold |
>12 mois |
WORM/Object Lock |
Archive |
Garanties d'intégrité
- Chaînage de hachage : SHA-256 par lot/jour.
- Signature périodique : HMAC-SHA256 avec clés KMS.
- Preuve d'intégrité : stockée hors bande (blockchain privée).
- Vérification : contrôle mensuel automatisé.
Chiffrement
- Repos : AES-256-GCM, clés KMS rotées ≤90j.
- Transit : TLS 1.2+ avec PFS.
- Backups : chiffrés, clés séparées.
Contrôles d'accès
RBAC audit
| Rôle |
Permissions |
Justification |
| Security Analyst |
Lecture logs sécurité |
Investigation |
| DPO |
Lecture audit PII |
Conformité |
| SRE |
Lecture logs applicatifs |
Debugging |
| Auditor |
Lecture tous logs |
Audit externe |
| Admin |
Gestion configuration |
Administration |
Traçabilité des accès
- Qui : identité authentifiée (user_id, rôle).
- Quand : horodatage précis (UTC+1).
- Quoi : ressource/action consultée.
- Pourquoi : contexte métier (ticket, investigation).
- Comment : méthode d'accès (UI, API, CLI).
Rétention & purge
Calendrier de rétention
| Type de log |
Durée |
Justification |
Base légale |
| Audit logs |
12 mois |
Minimum légal CNDP |
Obligation légale |
| Security logs |
24 mois |
Investigation incidents |
Intérêt légitime |
| Logs applicatifs |
90 jours |
Debug/monitoring |
Intérêt légitime |
| Métriques agrégées |
24 mois |
Tendances/capacité |
Intérêt légitime |
| Logs d'accès |
6 mois |
Sécurité/forensics |
Intérêt légitime |
Processus de purge
- Automatique : job quotidien avec vérification intégrité.
- Notification : alerte 30j avant expiration.
- Exception : conservation prolongée si incident en cours.
- Vérification : audit trimestriel des suppressions.
Monitoring & alerting
Métriques clés
- Volume : événements/seconde par type.
- Latence : délai collecte → indexation.
- Disponibilité : uptime SIEM/collecteurs.
- Intégrité : échecs de vérification de hachage.
- Conformité : % événements avec corrélation complète.
Alertes critiques
| Alerte |
Seuil |
Action |
| Perte d'événements |
>1% drop rate |
P1 - Investigation |
| Délai d'ingestion |
>5min latence |
P2 - Vérification |
| Échec intégrité |
Hachage invalide |
P0 - Incident sécurité |
| Quota dépassé |
>90% capacité |
P2 - Scaling |
| Accès non autorisé |
Tentative admin |
P1 - Blocage |
Tests & validations
Tests d'intégrité
- Quotidien : vérification chaînes de hachage.
- Hebdomadaire : test de restauration depuis cold storage.
- Mensuel : audit des accès aux logs d'audit.
- Trimestriel : test de bout en bout (injection → alerte).
Exercices de réponse
- Simulation d'incident : test des procédures d'escalade.
- Forensics : exercice d'investigation sur logs.
- Compliance : audit externe des contrôles.
CNDP (Maroc)
- Conservation logs d'audit ≥12 mois.
- Traçabilité des accès aux données personnelles.
- Notification incidents ≤72h si impact PII.
RGPD (UE)
- Droit d'accès aux logs concernant une personne.
- Pseudonymisation obligatoire des identifiants.
- Transferts logs limités aux pays adéquats.
Standards techniques
- ISO 27001 : gestion des événements de sécurité.
- NIST CSF : détection et réponse aux incidents.
- OWASP : logging des événements de sécurité applicative.
Références croisées