Cybersécurité

Wazuh : preuves PCI DSS, GDPR et ARTCI pas-a-pas

13 min de lecture

📍 Article principal de la série : Wazuh 2026 : guide pratique.

Une fintech à Abidjan régulée par BCEAO, un cabinet médical à Tunis soumis à la loi tunisienne sur données santé, ou une marketplace à Casablanca traitant cartes CMI : tous doivent prouver leur conformité lors d’audits trimestriels ou annuels. Wazuh fournit les templates et reports nécessaires. Ce tutoriel détaille la configuration validée chez plusieurs PME francophones.

Prérequis

  • Wazuh en production avec agents déployés.
  • FIM et Vulnerability Scanner activés.
  • Niveau attendu : avancé.
  • Temps estimé : 2-3 heures.

Étape 1 — Comprendre les frameworks

  • PCI DSS v4.0 : 12 exigences pour traiter cartes bancaires (Visa, Mastercard, CMI, Mada).
  • GDPR : règlement européen, applicable Maroc/Tunisie/Sénégal pour clients EU.
  • ARTCI : Côte d’Ivoire, loi 2013-450 sur protection données personnelles.
  • CDP marocaine : loi 09-08 sur traitement données personnelles.
  • NESA : Émirats Arabes Unis, cybersécurité critical infrastructure.
  • HIPAA : USA santé, applicable si export patients.

Étape 2 — Activer compliance modules Wazuh

Wazuh inclut 5 frameworks pré-configurés. Dashboard → Modules → Regulatory compliance :

  • PCI DSS.
  • GDPR.
  • HIPAA.
  • NIST 800-53.
  • TSC (Trust Services Criteria).

Chaque framework mappe les règles Wazuh aux requirements officiels.

Étape 3 — Configurer logs centralisés

Pour audit, conserver tous les logs minimum 1 an. Configuration Wazuh :

nano /var/ossec/etc/ossec.conf
<ossec_config>
  <global>
    <logall>yes</logall>
    <logall_json>yes</logall_json>
  </global>
</ossec_config>

Logs JSON dans /var/ossec/logs/archives/archives.json. Compression daily.

Étape 4 — Retention OpenSearch

OpenSearch ILM (Index Lifecycle Management) :

curl -X PUT "https://localhost:9200/_plugins/_ism/policies/wazuh_retention" -k -u admin:PASS -H 'Content-Type: application/json' -d'{
  "policy": {
    "default_state": "hot",
    "states": [
      {
        "name": "hot",
        "actions": [],
        "transitions": [{"state_name":"warm","conditions":{"min_index_age":"30d"}}]
      },
      {
        "name": "warm",
        "actions": [{"index_priority":{"priority":50}}],
        "transitions": [{"state_name":"delete","conditions":{"min_index_age":"365d"}}]
      },
      {
        "name": "delete",
        "actions": [{"delete":{}}]
      }
    ]
  }
}'

Étape 5 — Reports automatisés

Dashboard → Reporting → Generate report → choisir framework (PCI DSS) → format PDF.

Schedule report mensuel ou trimestriel automatique. Email vers DPO ou auditeur.

Étape 6 — Audit log d’accès Wazuh

Logger tout accès au Dashboard Wazuh lui-même. OpenSearch audit log :

opensearch.security.audit.type: ["EXTERNAL_ELASTICSEARCH"]
opensearch.security.audit.config.index: "audit_logs_wazuh"

Quoi consulter le SIEM, quoi exporter les logs : tracé.

Étape 7 — Custom rules pour exigences locales

ARTCI demande logs accès aux données personnelles. Custom rule sur DB Postgres :

<rule id="100200" level="6">
  <if_sid>5712</if_sid>
  <match>LOG: statement: SELECT.*from users</match>
  <description>ARTCI: access to user PII detected</description>
  <group>artci_compliance,</group>
</rule>

Étape 8 — Export pour auditeur

Avant audit annuel, préparer :

  1. Report PCI DSS dernier 12 mois (PDF).
  2. Liste des incidents (alertes level >= 10) classifiés MITRE.
  3. Liste vulnérabilités CVE Critical/High avec timeline patch.
  4. Audit logs Dashboard accès.
  5. Procédures internes documentées (qui fait quoi quand).

Export CSV/PDF via Dashboard, archive ZIP chiffré.

Étape 9 — Notifications conformité

Alertes Slack/Mattermost pour DPO sur events sensibles :

  • Modification fichier /etc/sudoers.
  • Connexion SSH root depuis IP non whitelisté.
  • Plus de 100 SELECT sur table users en 1 minute (potentiel exfiltration).
  • Nouvelle CVE Critical détectée.

Étape 10 — Test annuel

Mock audit trimestriel : générer report, simuler questions auditeur, vérifier que toutes les preuves sont disponibles.

Erreurs fréquentes

Erreur Cause Solution
Logs manquent > 90 jours ILM mal configuré Vérifier policy retention 365d
Reports PDF vides Pas de données indexées Vérifier agents reportant
Custom rules ne match pas if_sid incorrect Tester avec ossec-logtest
Auditeur réclame 5 ans Storage limité Cold storage S3 archive
Faux positifs PCI Whitelist non configurée Tuner par cas
DPO submergé alertes Trop de level 6+ Filter level 10+ uniquement

Ce qui dévie dans la pratique locale

Quatre précisions. BCEAO fintechs : audit trimestriel sur sécurité systèmes paiement. Reports PCI DSS Wazuh = preuve directe. ARTCI Côte d’Ivoire : rapport annuel sur traitement données personnelles. Custom rules sur accès users table = traçabilité. CDP Maroc : registre des traitements requis. Wazuh logs aident documentation. NESA Emirates : critical infrastructure annual assessment. Wazuh framework NIST 800-53 mapping suffit.

Tutoriels frères

FAQ

Wazuh certifié PCI ? Wazuh n’est pas certifié mais aide à obtenir certification PCI DSS via reporting.

Combien de temps préparer audit ? 1 semaine si Wazuh actif depuis 12 mois.

Coût auditeur PCI externe ? 5 000-25 000 USD/an selon scope. Wazuh économies sur le SIEM.

Disclosure breach mandataire ? Oui en GDPR (72h), ARTCI, CDP. Wazuh logs aident détection rapide.

Anonymisation logs ? Pour GDPR, anonymiser IPs après 30 jours via plugin custom.

Pour explorer plus loin

Solution d’hébergement pour ce tutoriel

Hostinger accueille un site WordPress, un VPS Linux ou une boutique en ligne sans configuration complexe.

Démarrer chez Hostinger →

Lien d affiliation. Si vous achetez via ce lien, le blog reçoit une petite commission sans surcoût pour vous.

Pourquoi un seul SIEM pour trois referentiels en Afrique de l’Ouest

Une PME senegalaise ou ivoirienne qui accepte la carte bancaire via Mixx by Yas, Wave ou Orange Money tombe sous PCI DSS 4.0 des qu’elle stocke ou transmet un PAN. Si elle traite des donnees de citoyens europeens (boutique e-commerce expediant a Bruxelles, sous-traitant SaaS pour un client francais), elle doit aussi documenter le RGPD. Et l’ARTCI en Cote d’Ivoire comme la CDP au Senegal exigent un journal d’acces aux donnees personnelles conserve au moins cinq ans. Multiplier trois SIEM coute 3 a 5 millions FCFA par an (4 500 a 7 600 EUR au taux fixe 1 EUR = 655,957 FCFA). Wazuh consolide les trois grilles dans un seul agent, un seul dashboard, un seul export PDF.

Avant de lancer la commande suivante, verifiez que le port 1514/tcp et 1515/tcp sont ouverts entre vos endpoints et le manager Wazuh, sinon les agents resteront en statut Never connected et aucune preuve ne remontera.

Etape 1 : installer le manager Wazuh 4.9 sur Ubuntu 24.04

Nous deployons le manager sur un VPS Hetzner CX22 (4,51 EUR/mois soit 2 960 FCFA) base a Helsinki, avec disque chiffre LUKS. Wazuh 4.9 est la branche LTS de janvier 2026, compatible avec OpenSearch 2.16 inclus dans le bundle officiel.

curl -sO https://packages.wazuh.com/4.9/wazuh-install.sh
sudo bash ./wazuh-install.sh -a

L’installeur unifie deploie en 8 a 12 minutes le manager, l’indexer OpenSearch et le dashboard. A la fin il affiche un mot de passe admin temporaire de 32 caracteres : copiez-le immediatement dans votre gestionnaire (Bitwarden auto-heberge ou KeePassXC), il n’est plus jamais reaffiche.

Etape 2 : enroler les agents Linux et Windows

Sur chaque serveur a auditer, generez un agent dedie depuis le dashboard (menu Agents > Deploy new agent). L’interface vous fournit la commande exacte avec le hash de cle. Sur un serveur de paiement Debian 12 par exemple :

WAZUH_MANAGER='10.0.0.5' WAZUH_AGENT_GROUP='pci-dss'   apt install ./wazuh-agent_4.9.2-1_amd64.deb
systemctl enable --now wazuh-agent

Apres 30 secondes, l’agent doit apparaitre en vert dans le dashboard. Si vous voyez Pending, c’est que le port 1515 est filtre par le firewall : ouvrez-le uniquement depuis l’IP publique de l’agent, jamais en 0.0.0.0/0.

Etape 3 : activer le module PCI DSS 4.0

PCI DSS 4.0 a remplace 3.2.1 le 31 mars 2025. Wazuh fournit nativement les regles mappees sur les 12 exigences. Activez le module dans /var/ossec/etc/ossec.conf :

<rootcheck>
  <system_audit>/var/ossec/etc/shared/system_audit_pw.txt</system_audit>
  <system_audit>/var/ossec/etc/shared/cis_debian_linux_rcl.txt</system_audit>
</rootcheck>

Redemarrez le manager : systemctl restart wazuh-manager. Au bout de 15 minutes, l’onglet Regulatory Compliance > PCI DSS doit afficher des evenements pour chaque exigence. Si le panneau reste vide, verifiez que la timezone du manager et de l’agent sont identiques, sinon les correlations echouent silencieusement.

Etape 4 : activer GDPR et reorganiser les preuves

Le module GDPR de Wazuh couvre les articles 5, 25, 30, 32, 33 et 35. Aucune installation supplementaire : il s’active automatiquement via les tags des regles. Pour la CNIL francaise comme pour le DPO d’un client europeen, exportez chaque mois le rapport via Modules > Security events > Reports au format PDF. Renommez-le RGPD-2026-MM-itskillscenter.pdf et stockez-le dans un bucket Backblaze B2 chiffre cote client (0,006 USD/Go/mois soit environ 4 FCFA).

Etape 5 : creer la grille ARTCI personnalisee

L’ARTCI ivoirienne et la CDP senegalaise ne disposent pas d’un module Wazuh natif. Creez votre propre fichier /var/ossec/etc/rules/artci_rules.xml qui mappe vos regles sur la loi 2013-450 (Cote d’Ivoire) et la loi 2008-12 (Senegal) :

<group name="artci,cdp_sn,">
  <rule id="100200" level="7">
    <if_sid>5715</if_sid>
    <description>Acces SSH a un serveur contenant des donnees personnelles</description>
  </rule>
</group>

Validez la syntaxe avec /var/ossec/bin/wazuh-logtest avant de redemarrer. Une regle mal formee bloque tout le moteur de detection sans message clair dans le dashboard.

Etape 6 : automatiser l’export mensuel des preuves

Les auditeurs PCI QSA et les inspecteurs ARTCI exigent des rapports horodates et signes. Programmez un cron sur le manager :

0 2 1 * * /var/ossec/bin/wazuh-csv-report --module pci_dss   --month $(date -d 'last month' +%Y-%m)   --output /preuves/pci-$(date +%Y%m).csv &&   gpg --sign --armor /preuves/pci-$(date +%Y%m).csv

La signature GPG garantit l’integrite : un auditeur peut verifier que personne n’a manipule le rapport apres generation. Stockez la cle publique sur votre site corporate pour permettre la verification independante.

Etape 7 : tester avec un scenario d’attaque controle

Avant le passage de l’auditeur, simulez une intrusion : depuis une IP exterieure, lancez 6 tentatives SSH echouees avec un mauvais mot de passe sur un serveur enrolle. Wazuh doit lever l’alerte 5712 (brute force) en moins de 90 secondes et la tagger PCI_DSS_10.2.4. Si l’alerte n’apparait pas, c’est que le decoder sshd n’est pas charge : verifiez /var/ossec/ruleset/decoders/0095-sshd_decoders.xml.

Etape 8 : preparer le dossier d’audit final

Trois mois avant la visite du QSA ou de l’ARTCI, constituez un dossier comportant : les exports CSV signes des 12 derniers mois, les captures d’ecran datees du dashboard PCI/GDPR, la matrice de correspondance regle Wazuh > exigence du referentiel, et les comptes-rendus des tests d’attaques controles. Sur le même thème sur le durcissement systeme, consultez notre guide de durcissement Ubuntu et notre tutoriel Fail2ban pour SSH.

Pourquoi un seul SIEM pour trois referentiels en Afrique de l’Ouest

Une PME senegalaise ou ivoirienne qui accepte la carte bancaire via Mixx by Yas, Wave ou Orange Money tombe sous PCI DSS 4.0 des qu’elle stocke ou transmet un PAN. Si elle traite des donnees de citoyens europeens (boutique e-commerce expediant a Bruxelles, sous-traitant SaaS pour un client francais), elle doit aussi documenter le RGPD. Et l’ARTCI en Cote d’Ivoire comme la CDP au Senegal exigent un journal d’acces aux donnees personnelles conserve au moins cinq ans. Multiplier trois SIEM coute 3 a 5 millions FCFA par an (4 500 a 7 600 EUR au taux fixe 1 EUR = 655,957 FCFA). Wazuh consolide les trois grilles dans un seul agent, un seul dashboard, un seul export PDF.

Avant de lancer la commande suivante, verifiez que le port 1514/tcp et 1515/tcp sont ouverts entre vos endpoints et le manager Wazuh, sinon les agents resteront en statut Never connected et aucune preuve ne remontera.

Etape 1 : installer le manager Wazuh 4.9 sur Ubuntu 24.04

Nous deployons le manager sur un VPS Hetzner CX22 (4,51 EUR/mois soit 2 960 FCFA) base a Helsinki, avec disque chiffre LUKS. Wazuh 4.9 est la branche LTS de janvier 2026, compatible avec OpenSearch 2.16 inclus dans le bundle officiel.

curl -sO https://packages.wazuh.com/4.9/wazuh-install.sh
sudo bash ./wazuh-install.sh -a

L’installeur unifie deploie en 8 a 12 minutes le manager, l’indexer OpenSearch et le dashboard. A la fin il affiche un mot de passe admin temporaire de 32 caracteres : copiez-le immediatement dans votre gestionnaire (Bitwarden auto-heberge ou KeePassXC), il n’est plus jamais reaffiche.

Etape 2 : enroler les agents Linux et Windows

Sur chaque serveur a auditer, generez un agent dedie depuis le dashboard (menu Agents > Deploy new agent). L’interface vous fournit la commande exacte avec le hash de cle. Sur un serveur de paiement Debian 12 par exemple :

WAZUH_MANAGER='10.0.0.5' WAZUH_AGENT_GROUP='pci-dss'   apt install ./wazuh-agent_4.9.2-1_amd64.deb
systemctl enable --now wazuh-agent

Apres 30 secondes, l’agent doit apparaitre en vert dans le dashboard. Si vous voyez Pending, c’est que le port 1515 est filtre par le firewall : ouvrez-le uniquement depuis l’IP publique de l’agent, jamais en 0.0.0.0/0.

Etape 3 : activer le module PCI DSS 4.0

PCI DSS 4.0 a remplace 3.2.1 le 31 mars 2025. Wazuh fournit nativement les regles mappees sur les 12 exigences. Activez le module dans /var/ossec/etc/ossec.conf :

<rootcheck>
  <system_audit>/var/ossec/etc/shared/system_audit_pw.txt</system_audit>
  <system_audit>/var/ossec/etc/shared/cis_debian_linux_rcl.txt</system_audit>
</rootcheck>

Redemarrez le manager : systemctl restart wazuh-manager. Au bout de 15 minutes, l’onglet Regulatory Compliance > PCI DSS doit afficher des evenements pour chaque exigence. Si le panneau reste vide, verifiez que la timezone du manager et de l’agent sont identiques, sinon les correlations echouent silencieusement.

Etape 4 : activer GDPR et reorganiser les preuves

Le module GDPR de Wazuh couvre les articles 5, 25, 30, 32, 33 et 35. Aucune installation supplementaire : il s’active automatiquement via les tags des regles. Pour la CNIL francaise comme pour le DPO d’un client europeen, exportez chaque mois le rapport via Modules > Security events > Reports au format PDF. Renommez-le RGPD-2026-MM-itskillscenter.pdf et stockez-le dans un bucket Backblaze B2 chiffre cote client (0,006 USD/Go/mois soit environ 4 FCFA).

Etape 5 : creer la grille ARTCI personnalisee

L’ARTCI ivoirienne et la CDP senegalaise ne disposent pas d’un module Wazuh natif. Creez votre propre fichier /var/ossec/etc/rules/artci_rules.xml qui mappe vos regles sur la loi 2013-450 (Cote d’Ivoire) et la loi 2008-12 (Senegal) :

<group name="artci,cdp_sn,">
  <rule id="100200" level="7">
    <if_sid>5715</if_sid>
    <description>Acces SSH a un serveur contenant des donnees personnelles</description>
  </rule>
</group>

Validez la syntaxe avec /var/ossec/bin/wazuh-logtest avant de redemarrer. Une regle mal formee bloque tout le moteur de detection sans message clair dans le dashboard.

Etape 6 : automatiser l’export mensuel des preuves

Les auditeurs PCI QSA et les inspecteurs ARTCI exigent des rapports horodates et signes. Programmez un cron sur le manager :

0 2 1 * * /var/ossec/bin/wazuh-csv-report --module pci_dss   --month $(date -d 'last month' +%Y-%m)   --output /preuves/pci-$(date +%Y%m).csv &&   gpg --sign --armor /preuves/pci-$(date +%Y%m).csv

La signature GPG garantit l’integrite : un auditeur peut verifier que personne n’a manipule le rapport apres generation. Stockez la cle publique sur votre site corporate pour permettre la verification independante.

Etape 7 : tester avec un scenario d’attaque controle

Avant le passage de l’auditeur, simulez une intrusion : depuis une IP exterieure, lancez 6 tentatives SSH echouees avec un mauvais mot de passe sur un serveur enrolle. Wazuh doit lever l’alerte 5712 (brute force) en moins de 90 secondes et la tagger PCI_DSS_10.2.4. Si l’alerte n’apparait pas, c’est que le decoder sshd n’est pas charge : verifiez /var/ossec/ruleset/decoders/0095-sshd_decoders.xml.

Etape 8 : preparer le dossier d’audit final

Trois mois avant la visite du QSA ou de l’ARTCI, constituez un dossier comportant : les exports CSV signes des 12 derniers mois, les captures d’ecran datees du dashboard PCI/GDPR, la matrice de correspondance regle Wazuh > exigence du referentiel, et les comptes-rendus des tests d’attaques controles. Pour explorer plus loin sur le durcissement systeme, consultez notre guide de durcissement Ubuntu et notre tutoriel Fail2ban pour SSH.

Partager