Aller au contenu

Audit et traçabilité

Principes

Chaque accès a une donnée classifiee doit etre :

  • Journalise : qui, quoi, quand, depuis ou, résultat (succès/echec)
  • Immutable : les logs ne peuvent pas etre modifies apres écriture
  • Centralise : tous les logs convergent vers un SIEM unique
  • Alerte : les accès anormaux declenchent une alerte automatique

Niveaux de journalisation

Classification Ce qui est journalise Retention Alertes
Public Rien (ou metriques d'usage) 30 jours Non
Interne Authentification, accès en écriture 90 jours Echecs d'auth répétés
Confidentiel Tous les accès (lecture + écriture) 1 an Accès hors horaires, depuis IP inconnue
Restreint Tous les accès + captures d'écran/enregistrement session 5 ans Tout accès notifie au proprietaire

Architecture de collecte

graph TD
    Svc["Services applicatifs"] -->|stdout / structured| Collector
    IAM["IAM / Vault"] -->|audit log| Collector
    Infra["Infra (firewall)"] -->|syslog| Collector
    Collector["Collecteur<br/>(Alloy / Fluentd)"] --> Loki["Loki<br/>(stockage logs)"]
    Loki --> Grafana["Grafana<br/>(dashboards + alerting)"]

Format de log structure

{
  "timestamp": "2026-04-17T10:23:45.123Z",
  "level": "info",
  "service": "vault",
  "event": "secret.read",
  "actor": {
    "identity": "user:fabien.zarifian",
    "ip": "10.20.1.45",
    "method": "oidc",
    "mfa": true
  },
  "resource": {
    "path": "secret/data/production/database",
    "classification": "confidential"
  },
  "result": "success",
  "trace_id": "abc123def456"
}

Alertes de sécurité

# Regle Grafana alerting : acces Restreint hors horaires
apiVersion: 1
groups:
  - name: security-alerts
    rules:
      - alert: RestrictedAccessOutOfHours
        expr: |
          count by (actor_identity) (
            {classification="restricted"}
            | json
            | __error__=""
            | result="success"
          ) > 0
          and on() (hour() < 7 or hour() > 20)
        for: 0m
        labels:
          severity: critical
        annotations:
          summary: "Acces a une ressource Restreinte hors horaires par {{ $labels.actor_identity }}"

Rapports d'audit

Rapport Fréquence Destinataire Contenu
Accès Restreint Hebdomadaire RSSI + proprietaires Liste nominative de tous les accès
Anomalies d'accès Quotidien SOC Accès échoués, hors horaires, depuis IP inconnue
Revue des droits Trimestriel Managers Liste des droits par personne, confirmation ou revocation
Conformite Annuel Direction Couverture des contrôles, ecarts, plan d'action