Rapport d'Audit CIS - MariaDB 10.11
Date du rapport : 14/08/2026 12:16:57
Local Bare-Metal
CIS Benchmark v1.1.0
v2.3.0
Score Global
54.5%
Succès
4
Vérifications conformes
Échecs
5
Non-conformités détectées
Erreurs Commande
55
Échecs d'exécution technique
Manuels
9
À vérifier manuellement
Métriques par Thématiques de Sécurité
Authentification & Accès
85%
Chiffrement & TLS/SSL
90%
Audits & Logs Système
75%
Répartition Automatisée
54.5%
Score Global
Réussi (PASS) : 4
Échoué (FAIL) : 5
Erreur (Error) : 55
Non Applicable (N/A) : 0
Analyse par Catégorie
Répartition des contrôles automatisés par catégorie
Réussi
Échoué
Erreur
N/A
1. Configuration Système d'exploitation
33.3% (2/7)
2. Installation et Planification
0.0% (0/8)
3. Permissions Fichiers
0.0% (0/10)
4. Général
100.0% (2/8)
5. Permissions MariaDB
0.0% (0/7)
6. Audit & Journalisation
0.0% (0/6)
7. Authentification
0.0% (0/7)
8. Sécurité réseau
0.0% (0/2)
9. Réplication
100.0% (0/2)
1. Configuration Système d'exploitation
Détails des recommandations et résultats pour cette section.
2 Pass
4 Fail
0 Manuel
1 Error
0 N/A
33%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 1.1 |
Placer les bases de données sur des partitions non-système
echo 'Contrôle Manuel: '
|
❓ Error |
Résultat de l'audit:
Error lors de l'obtention du chemin via: `mysql -N -B -e "SELECT @@datadir;"` Output: Impossible d'exécuter la commande client MariaDB/MySQL (vérifier si le service est démarré ou conteneur Docker actif). [Erreur d'Exécution de Commande - Non-conformité de sécurité non évaluée] Remediation:
Sauvegarder la base, déplacer les fichiers de données vers une partition dédiée, mettre à jour datadir dans la configuration MariaDB, redémarrer le service.
|
| 1.2 |
Utiliser un compte dédié et privilégié minimal pour MariaDB
ps -ef | grep -E 'mysqld|mariadbd' | grep -v grep | awk '{print $1}' | head -n 1
|
❌ Fail |
Résultat de l'audit:
Stdout: Stderr: Return Code: 0 Remediation:
Configurer le service MariaDB pour qu'il s'exécute sous un utilisateur dédié (ex: 'mysql') avec les privilèges minimaux.
|
| 1.3 |
Désactiver l'historique des commandes MariaDB
! find /home /root -name .mysql_history -print -quit
|
❌ Fail |
Résultat de l'audit:
Stdout: Stderr: Command execution timed out after 10 seconds Return Code: -1 Remediation:
Supprimer les fichiers d'historique, créer un lien symbolique vers /dev/null, ou configurer MYSQL_HISTFILE.
|
| 1.4 |
Vérifier que MYSQL_PWD n'est pas utilisé
! grep -qs MYSQL_PWD /proc/*/environ
|
✅ Pass |
Résultat de l'audit:
Stdout: Stderr: Return Code: 0 Remediation:
Modifier les scripts/utilisateurs pour éviter MYSQL_PWD, utiliser des méthodes d'authentification sécurisées.
|
| 1.5 |
Désactiver l'accès interactif pour l'utilisateur MySQL
getent passwd mysql | cut -d: -f7
|
❌ Fail |
Résultat de l'audit:
Stdout: Stderr: Return Code: 0 Remediation:
Modifier le shell de l'utilisateur mysql pour utiliser /bin/false ou /sbin/nologin (ex: usermod -s /sbin/nologin mysql).
|
| 1.6 |
Vérifier que MYSQL_PWD n'est pas dans les profils utilisateurs
! grep -qs MYSQL_PWD /home/*/.{bashrc,profile,bash_profile} /root/.{bashrc,profile,bash_profile} /etc/environment
|
✅ Pass |
Résultat de l'audit:
Stdout: Stderr: Return Code: 0 Remediation:
Nettoyer les fichiers de login des utilisateurs pour supprimer MYSQL_PWD.
|
| 1.7 |
Exécuter MariaDB dans un environnement sandbox
[[ -f /.dockerenv ]] || grep -qs 'docker\|containerd' /proc/1/cgroup || systemctl is-active mariadb >/dev/null 2>&1
|
❌ Fail |
Guide de Validation Manuelle:
Résultat de l'audit:
Stdout: Stderr: Return Code: 4 Remediation:
Configurer chroot, utiliser un service systemd avec un utilisateur spécifique, ou déployer MariaDB sous Docker.
|
2. Installation et Planification
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
10 Manuel
8 Error
0 N/A
0%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 2.1.1 |
Politique de sauvegarde en place
crontab -l | grep -E 'mariabackup|mysqldump|xtrabackup' || echo 'AUCUNE_SAUVEGARDE_PLANIFIEE'
|
⚠️ Manuel |
Guide de Validation Manuelle:
Résultat de l'audit:
This control requires manual verification. Résultat de l'extraction automatique pour aide: Stdout: AUCUNE_SAUVEGARDE_PLANIFIEE Stderr: no crontab for jmren Return Code: 0 Remediation:
Créer une politique de sauvegarde et planifier des sauvegardes automatiques.
|
| 2.1.2 |
Validation des sauvegardes
ls -la /var/backups/ /var/lib/mariadb/ /var/lib/mysql/ /var/lib/pgsql/ | head -n 20 || echo 'VÉRIFICATION_MANUELLE_REQUIS'
|
⚠️ Manuel |
Guide de Validation Manuelle:
Résultat de l'audit:
This control requires manual verification. Résultat de l'extraction automatique pour aide: Stdout: /var/backups/: total 3500 drwxr-xr-x 2 root root 4096 Aug 13 00:00 . drwxr-xr-x 13 root root 4096 Nov 25 2025 .. -rw-r--r-- 1 root root 92160 Aug 13 00:00 alternatives.tar.0 -rw-r--r-- 1 root root 6150 Aug 8 00:00 alternatives.tar.1.gz -rw-r--r-- 1 root root 6151 Aug 4 00:00 alternatives.tar.2.gz -rw-r--r-- 1 root root 6158 Jul 28 00:00 alternatives.tar.3.gz -rw-r--r-- 1 root root 6146 Jul 27 11:00 alternatives.tar.4.gz -rw-r--r-- 1 root root 6139 Jul 18 09:07 alternatives.tar.5.gz -rw-r--r-- 1 root root 6149 Jul 10 00:00 alternatives.tar.6.gz -rw-r--r-- 1 root root 67271 May 19 22:01 apt.extended_states.0 -rw-r--r-- 1 root root 7265 Apr 20 00:10 apt.extended_states.1.gz -rw-r--r-- 1 root root 7241 Mar 29 23:38 apt.extended_states.2.gz -rw-r--r-- 1 root root 7228 Mar 11 17:40 apt.extended_states.3.gz -rw-r--r-- 1 root root 7258 Feb 26 19:38 apt.extended_states.4.gz -rw-r--r-- 1 root root 7275 Feb 9 2026 apt.extended_states.5.gz -rw-r--r-- 1 root root 7237 Jan 21 2026 apt.extended_states.6.gz -rw-r--r-- 1 root root 0 Aug 13 00:00 dpkg.arch.0 -rw-r--r-- 1 root root 32 Aug 8 00:00 dpkg.arch.1.gz Stderr: ls: cannot access '/var/lib/mariadb/': No such file or directory ls: cannot access '/var/lib/mysql/': No such file or directory ls: cannot access '/var/lib/pgsql/': No such file or directory Return Code: 0 Remediation:
Planifier et documenter les tests de restauration périodiques.
|
| 2.1.3 |
Sécuriser les identifiants de sauvegarde
ls -la /etc/mysql/ /etc/mariadb/ /root/.my.cnf /etc/my.cnf /var/lib/mysql/
|
⚠️ Manuel |
Guide de Validation Manuelle:
Résultat de l'audit:
This control requires manual verification. Résultat de l'extraction automatique pour aide: Stdout: /etc/mysql/: total 24 drwxr-xr-x 4 root root 4096 Jan 24 2026 . drwxr-xr-x 109 root root 4096 Aug 14 12:06 .. drwxr-xr-x 2 root root 4096 Nov 26 2025 conf.d -rw-r--r-- 1 root root 1126 May 24 2025 mariadb.cnf drwxr-xr-x 2 root root 4096 Jan 24 2026 mariadb.conf.d lrwxrwxrwx 1 root root 24 Oct 20 2020 my.cnf -> /etc/alternatives/my.cnf -rw-r--r-- 1 root root 839 Oct 20 2020 my.cnf.fallback Stderr: ls: cannot access '/etc/mariadb/': No such file or directory ls: cannot access '/root/.my.cnf': Permission denied ls: cannot access '/etc/my.cnf': No such file or directory ls: cannot access '/var/lib/mysql/': No such file or directory Return Code: 2 Remediation:
Restreindre les droits fichiers, utiliser des keystores ou du chiffrement.
|
| 2.1.4 |
Sécuriser les fichiers de sauvegarde
file /var/backups/* | head -n 10 || echo 'VÉRIFICATION_CHIFFREMENT_SAUVEGARDE'
|
⚠️ Manuel |
Guide de Validation Manuelle:
Résultat de l'audit:
This control requires manual verification. Résultat de l'extraction automatique pour aide: Stdout: /var/backups/alternatives.tar.0: POSIX tar archive (GNU) /var/backups/alternatives.tar.1.gz: gzip compressed data, was "alternatives.tar.0", last modified: Fri Aug 7 22:00:00 2026, max compression, from Unix, original size modulo 2^32 92160 /var/backups/alternatives.tar.2.gz: gzip compressed data, was "alternatives.tar.0", last modified: Mon Aug 3 22:00:01 2026, max compression, from Unix, original size modulo 2^32 92160 /var/backups/alternatives.tar.3.gz: gzip compressed data, was "alternatives.tar.0", last modified: Mon Jul 27 22:00:02 2026, max compression, from Unix, original size modulo 2^32 92160 /var/backups/alternatives.tar.4.gz: gzip compressed data, was "alternatives.tar.0", last modified: Mon Jul 27 09:00:12 2026, max compression, from Unix, original size modulo 2^32 92160 /var/backups/alternatives.tar.5.gz: gzip compressed data, was "alternatives.tar.0", last modified: Sat Jul 18 07:07:30 2026, max compression, from Unix, original size modulo 2^32 92160 /var/backups/alternatives.tar.6.gz: gzip compressed data, was "alternatives.tar.0", last modified: Thu Jul 9 22:00:35 2026, max compression, from Unix, original size modulo 2^32 92160 /var/backups/apt.extended_states.0: ASCII text /var/backups/apt.extended_states.1.gz: gzip compressed data, was "apt.extended_states.0", last modified: Sun Apr 19 22:10:31 2026, max compression, from Unix, original size modulo 2^32 67389 /var/backups/apt.extended_states.2.gz: gzip compressed data, was "apt.extended_states.0", last modified: Sun Mar 29 21:38:32 2026, max compression, from Unix, original size modulo 2^32 67192 Stderr: Return Code: 0 Remediation:
Utiliser le chiffrement des sauvegardes (mariabackup + openssl enc).
|
| 2.1.5 |
Point-in-Time Recovery
mysql -N -B -e "SELECT VARIABLE_VALUE FROM information_schema.global_variables WHERE variable_name = 'binlog_expire_logs_seconds';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Activer les binlogs, configurer binlog_expire_logs_seconds dans mariadb.cnf, tester les restaurations PITR.
|
| 2.1.6 |
Plan de reprise d'activité (DR)
ls -la /etc/mysql/ /etc/mariadb/ /etc/postgresql/ /var/backups/ /backup/
|
⚠️ Manuel |
Guide de Validation Manuelle:
Résultat de l'audit:
This control requires manual verification. Résultat de l'extraction automatique pour aide: Stdout: /etc/mysql/: total 24 drwxr-xr-x 4 root root 4096 Jan 24 2026 . drwxr-xr-x 109 root root 4096 Aug 14 12:06 .. drwxr-xr-x 2 root root 4096 Nov 26 2025 conf.d -rw-r--r-- 1 root root 1126 May 24 2025 mariadb.cnf drwxr-xr-x 2 root root 4096 Jan 24 2026 mariadb.conf.d lrwxrwxrwx 1 root root 24 Oct 20 2020 my.cnf -> /etc/alternatives/my.cnf -rw-r--r-- 1 root root 839 Oct 20 2020 my.cnf.fallback /var/backups/: total 3500 drwxr-xr-x 2 root root 4096 Aug 13 00:00 . drwxr-xr-x 13 root root 4096 Nov 25 2025 .. -rw-r--r-- 1 root root 92160 Aug 13 00:00 alternatives.tar.0 -rw-r--r-- 1 root root 6150 Aug 8 00:00 alternatives.tar.1.gz -rw-r--r-- 1 root root 6151 Aug 4 00:00 alternatives.tar.2.gz -rw-r--r-- 1 root root 6158 Jul 28 00:00 alternatives.tar.3.gz -rw-r--r-- 1 root root 6146 Jul 27 11:00 alternatives.tar.4.gz -rw-r--r-- 1 root root 6139 Jul 18 09:07 alternatives.tar.5.gz -rw-r--r-- 1 root root 6149 Jul 10 00:00 alternatives.tar.6.gz -rw-r--r-- 1 root root 67271 May 19 22:01 apt.extended_states.0 -rw-r--r-- 1 root root 7265 Apr 20 00:10 apt.extended_states.1.gz -rw-r--r-- 1 root root 7241 Mar 29 23:38 apt.extended_states.2.gz -rw-r--r-- 1 root root 7228 Mar 11 17:40 apt.extended_states.3.gz -rw-r--r-- 1 root root 7258 Feb 26 19:38 apt.extended_states.4.gz -rw-r--r-- 1 root root 7275 Feb 9 2026 apt.extended_states.5.gz -rw-r--r-- 1 root root 7237 Jan 21 2026 apt.extended_states.6.gz -rw-r--r-- 1 root root 0 Aug 13 00:00 dpkg.arch.0 -rw-r--r-- 1 root root 32 Aug 8 00:00 dpkg.arch.1.gz -rw-r--r-- 1 root root 32 Aug 7 00:00 dpkg.arch.2.gz -rw-r--r-- 1 root root 32 Aug 4 00:00 dpkg.arch.3.gz -rw-r--r-- 1 root root 32 Aug 2 00:00 dpkg.arch.4.gz -rw-r--r-- 1 root root 32 Jul 31 20:45 dpkg.arch.5.gz -rw-r--r-- 1 root root 32 Jul 28 00:00 dpkg.arch.6.gz -rw-r--r-- 1 root root 1830 May 20 15:29 dpkg.diversions.0 -rw-r--r-- 1 root root 410 May 20 15:29 dpkg.diversions.1.gz -rw-r--r-- 1 root root 410 May 20 15:29 dpkg.diversions.2.gz -rw-r--r-- 1 root root 410 May 20 15:29 dpkg.diversions.3.gz -rw-r--r-- 1 root root 410 May 20 15:29 dpkg.diversions.4.gz -rw-r--r-- 1 root root 410 May 20 15:29 dpkg.diversions.5.gz -rw-r--r-- 1 root root 410 May 20 15:29 dpkg.diversions.6.gz -rw-r--r-- 1 root root 187 Dec 28 2025 dpkg.statoverride.0 -rw-r--r-- 1 root root 160 Dec 28 2025 dpkg.statoverride.1.gz -rw-r--r-- 1 root root 160 Dec 28 2025 dpkg.statoverride.2.gz -rw-r--r-- 1 root root 160 Dec 28 2025 dpkg.statoverride.3.gz -rw-r--r-- 1 root root 160 Dec 28 2025 dpkg.statoverride.4.gz -rw-r--r-- 1 root root 160 Dec 28 2025 dpkg.statoverride.5.gz -rw-r--r-- 1 root root 160 Dec 28 2025 dpkg.statoverride.6.gz -rw-r--r-- 1 root root 1338426 Aug 12 09:22 dpkg.status.0 -rw-r--r-- 1 root root 314075 Aug 7 09:15 dpkg.status.1.gz -rw-r--r-- 1 root root 314068 Aug 6 06:11 dpkg.status.2.gz -rw-r--r-- 1 root root 314068 Aug 3 23:03 dpkg.status.3.gz -rw-r--r-- 1 root root 314075 Aug 1 06:10 dpkg.status.4.gz -rw-r--r-- 1 root root 314058 Jul 29 06:05 dpkg.status.5.gz -rw-r--r-- 1 root root 314049 Jul 27 11:33 dpkg.status.6.gz Stderr: ls: cannot access '/etc/mariadb/': No such file or directory ls: cannot access '/etc/postgresql/': No such file or directory ls: cannot access '/backup/': No such file or directory Return Code: 2 Remediation:
Documenter et tester un plan DR incluant réplication Galera, backups offsite.
|
| 2.1.7 |
Sauvegarde des fichiers de configuration
ls -la /etc/mysql/mariadb.conf.d/ /etc/postgresql/ /etc/mongod.conf /etc/cassandra/ || echo 'VÉRIFICATION_CONFIG_SAUVEGARDE'
|
⚠️ Manuel |
Guide de Validation Manuelle:
Résultat de l'audit:
This control requires manual verification. Résultat de l'extraction automatique pour aide: Stdout: /etc/mysql/mariadb.conf.d/: total 20 drwxr-xr-x 2 root root 4096 Jan 24 2026 . drwxr-xr-x 4 root root 4096 Jan 24 2026 .. -rw-r--r-- 1 root root 575 May 24 2025 50-client.cnf -rw-r--r-- 1 root root 231 May 24 2025 50-mysql-clients.cnf -rw-r--r-- 1 root root 570 May 24 2025 60-galera.cnf VÉRIFICATION_CONFIG_SAUVEGARDE Stderr: ls: cannot access '/etc/postgresql/': No such file or directory ls: cannot access '/etc/mongod.conf': No such file or directory ls: cannot access '/etc/cassandra/': No such file or directory Return Code: 0 Remediation:
Ajouter tous les fichiers essentiels à la stratégie de sauvegarde.
|
| 2.2 |
Dédier la machine à MariaDB
ps aux | grep -v '\[.*\]' | grep -v grep | head -n 30
|
⚠️ Manuel |
Guide de Validation Manuelle:
Résultat de l'audit:
This control requires manual verification. Résultat de l'extraction automatique pour aide: Stdout: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 21876 13368 ? Ss 09:29 0:01 /sbin/init root 2 0.0 0.0 3180 2204 hvc0 Sl+ 09:29 0:00 /init root 6 0.0 0.0 3236 2164 hvc0 Sl+ 09:29 0:00 plan9 --control-socket 7 --log-level 4 --server-fd 8 --pipe-fd 10 --log-truncate root 52 0.0 0.1 66988 19880 ? S<s 09:29 0:01 /usr/lib/systemd/systemd-journald root 101 0.0 0.0 25284 6676 ? Ss 09:29 0:00 /usr/lib/systemd/systemd-udevd root 114 0.0 0.0 153076 1916 ? Ssl 09:29 0:00 snapfuse /var/lib/snapd/snaps/core22_2411.snap /snap/core22/2411 -o ro,nodev,allow_other,suid root 119 0.0 0.0 152944 1820 ? Ssl 09:29 0:00 snapfuse /var/lib/snapd/snaps/core24_1587.snap /snap/core24/1587 -o ro,nodev,allow_other,suid root 124 0.0 0.0 676292 11128 ? Ssl 09:29 0:04 snapfuse /var/lib/snapd/snaps/core24_1643.snap /snap/core24/1643 -o ro,nodev,allow_other,suid root 126 0.0 0.0 152944 1856 ? Ssl 09:29 0:00 snapfuse /var/lib/snapd/snaps/docker_3505.snap /snap/docker/3505 -o ro,nodev,allow_other,suid root 134 0.0 0.0 452000 11884 ? Ssl 09:29 0:03 snapfuse /var/lib/snapd/snaps/docker_3579.snap /snap/docker/3579 -o ro,nodev,allow_other,suid root 140 0.0 0.0 152944 1868 ? Ssl 09:29 0:00 snapfuse /var/lib/snapd/snaps/google-cloud-cli_485.snap /snap/google-cloud-cli/485 -o ro,nodev,allow_other,suid root 144 0.0 0.0 153076 1964 ? Ssl 09:29 0:00 snapfuse /var/lib/snapd/snaps/google-cloud-cli_487.snap /snap/google-cloud-cli/487 -o ro,nodev,allow_other,suid root 151 0.0 0.0 152944 1828 ? Ssl 09:29 0:00 snapfuse /var/lib/snapd/snaps/snapd_27591.snap /snap/snapd/27591 -o ro,nodev,allow_other,suid root 154 0.0 0.0 526764 12132 ? Ssl 09:29 0:04 snapfuse /var/lib/snapd/snaps/snapd_27710.snap /snap/snapd/27710 -o ro,nodev,allow_other,suid systemd+ 189 0.0 0.0 21476 13312 ? Ss 09:29 0:00 /usr/lib/systemd/systemd-resolved systemd+ 194 0.0 0.0 91036 8012 ? Ssl 09:29 0:00 /usr/lib/systemd/systemd-timesyncd root 238 0.0 0.0 4244 2816 ? Ss 09:29 0:00 /usr/sbin/cron -f -P message+ 239 0.0 0.0 9652 5484 ? Ss 09:29 0:00 @dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only root 247 0.0 0.2 2442200 39236 ? Ssl 09:29 0:01 /snap/snapd/current/usr/lib/snapd/snapd root 249 0.0 0.0 18024 8892 ? Ss 09:29 0:00 /usr/lib/systemd/systemd-logind syslog 257 0.0 0.0 222516 5680 ? Ssl 09:29 0:00 /usr/sbin/rsyslogd -n -iNONE root 284 0.0 0.4 2470272 64712 ? Ssl 09:29 0:07 /usr/bin/containerd root 288 0.0 0.0 3124 2040 tty1 Ss+ 09:29 0:00 /sbin/agetty -o -p -- \u --noclear - linux root 326 0.0 0.1 107024 23252 ? Ssl 09:29 0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal jmren 330 0.0 0.0 20448 11708 ? Ss 09:29 0:00 /usr/lib/systemd/systemd --user jmren 335 0.0 0.0 21168 3656 ? S 09:29 0:00 (sd-pam) jmren 384 0.1 0.6 491872 110556 ? Ssl 09:29 0:10 /home/jmren/.hermes/hermes-agent/venv/bin/python -m hermes_cli.main gateway run root 584 0.0 0.7 3368924 124080 ? Ssl 09:30 0:05 dockerd --group docker --exec-root=/run/snap.docker --data-root=/var/snap/docker/common/var-lib-docker --pidfile=/run/snap.docker/docker.pid --config-file=/var/snap/docker/3579/config/daemon.json root 586 0.0 0.0 3196 1120 ? Ss 09:30 0:00 /init Stderr: Return Code: 0 Remediation:
Utiliser un serveur dédié ou un conteneur pour MariaDB.
|
| 2.3 |
Ne pas spécifier de mots de passe en ligne de commande
ps -ef | grep -E 'mysql|mariadb' | grep -v grep | grep -E '\-p[^ ]'
|
⚠️ Manuel |
Guide de Validation Manuelle:
Résultat de l'audit:
This control requires manual verification. Résultat de l'extraction automatique pour aide: Stdout: jmren 54381 592 21 12:16 pts/6 00:00:02 find /home /root -name .mysql_history -print -quit Stderr: Return Code: 0 Remediation:
Utiliser des fichiers d'options (.my.cnf) ou des méthodes d'authentification alternatives.
|
| 2.4 |
Ne pas réutiliser les noms d'utilisateurs
mysql -N -B -e "SELECT COUNT(*) - COUNT(DISTINCT user) FROM mysql.user WHERE user NOT IN ('mysql.infoschema', 'mysql.session', 'mysql.sys', 'mariadb.sys');"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Ajouter/Supprimer les utilisateurs pour que chaque compte soit dédié à un usage spécifique.
|
| 2.5 |
S'assurer que le matériel cryptographique est unique et non par défaut
echo 'Contrôle Manuel: Vérifier les certificats SSL utilisés par MariaDB.'
|
⚠️ Manuel |
Guide de Validation Manuelle:
Résultat de l'audit:
This control requires manual verification. Résultat de l'extraction automatique pour aide: Stdout: Contrôle Manuel: Vérifier les certificats SSL utilisés par MariaDB. Stderr: Return Code: 0 Remediation:
Générer de nouveaux certificats, clés et autre matériel cryptographique pour chaque instance.
|
| 2.6 |
Assurer que password_lifetime <= 365
mysql -N -B -e "SELECT @@default_password_lifetime;"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
SET GLOBAL default_password_lifetime=365;
|
| 2.7 |
Verrouiller les comptes inutilisés
mysql -N -B -e "SELECT CONCAT(user, '@', host) FROM mysql.global_priv;"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
ALTER USER 'user'@'host' ACCOUNT LOCK; pour chaque compte inutilisé.
|
| 2.8 |
Utilisation appropriée de l'authentification Socket Peer-Credential
mysql -N -B -e "SELECT PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'unix_socket';"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Configurer unix_socket=ON/OFF selon les besoins. ALTER USER ... IDENTIFIED VIA unix_socket.
|
| 2.9 |
S'assurer que MariaDB est lié à une adresse IP
mysql -N -B -e "SELECT VARIABLE_VALUE FROM information_schema.global_variables WHERE VARIABLE_NAME = 'bind_address';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Configurer bind_address=<adresse_IP_spécifique> dans mariadb.cnf.
|
| 2.10 |
Limiter les versions TLS acceptées
mysql -N -B -e "SELECT VARIABLE_VALUE FROM information_schema.global_variables WHERE VARIABLE_NAME = 'tls_version';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Configurer tls_version=TLSv1.2,TLSv1.3 dans mariadb.cnf.
|
| 2.11 |
Exiger des certificats côté client (X.509)
mysql -N -B -e "SELECT count(*) FROM mysql.user WHERE host NOT IN ('localhost', '127.0.0.1', '::1') AND ssl_type NOT IN ('ANY', 'X509', 'SPECIFIED');"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
ALTER USER '<user>'@'<host>' REQUIRE X509;
|
| 2.12 |
S'assurer que seuls les chiffrement approuvés sont utilisés
mysql -N -B -e "SELECT VARIABLE_VALUE FROM information_schema.global_variables WHERE VARIABLE_NAME = 'ssl_cipher';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Configurer ssl_cipher avec une liste de chiffrements approuvés dans mariadb.cnf.
|
3. Permissions Fichiers
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
0 Manuel
10 Error
0 N/A
0%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 3.1 |
Permissions adéquates sur 'datadir'
echo 'Contrôle Manuel: '
|
❓ Error |
Résultat de l'audit:
Error lors de l'obtention du chemin via: `mysql -N -B -e "SELECT @@datadir;"` Output: Impossible d'exécuter la commande client MariaDB/MySQL (vérifier si le service est démarré ou conteneur Docker actif). [Erreur d'Exécution de Commande - Non-conformité de sécurité non évaluée] Remediation:
chown -R mysql:mysql <datadir> && chmod 700 <datadir>
|
| 3.2 |
Permissions sur les fichiers 'log_bin_basename'
echo 'Contrôle Manuel: '
|
❓ Error |
Résultat de l'audit:
Error lors de l'obtention du chemin via: `mysql -N -B -e "SELECT @@log_bin_basename;"` Output: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Remediation:
Appliquer chmod 600 sur les fichiers binaires.
|
| 3.3 |
Permissions sur 'log_error'
echo 'Contrôle Manuel: '
|
❓ Error |
Résultat de l'audit:
Error lors de l'obtention du chemin via: `mysql -N -B -e "SELECT @@log_error;"` Output: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Remediation:
Appliquer des permissions restrictives (ex: 640 ou 600).
|
| 3.4 |
Permissions sur 'slow_query_log'
echo 'Contrôle Manuel: '
|
❓ Error |
Résultat de l'audit:
Error lors de l'obtention du chemin via: `mysql -N -B -e "SELECT @@slow_query_log_file;"` Output: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Remediation:
Limiter l'accès aux utilisateurs autorisés (ex: 640 ou 600).
|
| 3.5 |
Permissions sur 'relay_log_basename'
echo 'Contrôle Manuel: '
|
❓ Error |
Résultat de l'audit:
Error lors de l'obtention du chemin via: `mysql -N -B -e "SELECT @@relay_log_basename;"` Output: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Remediation:
Appliquer chmod 600.
|
| 3.6 |
Permissions sur 'general_log_file'
echo 'Contrôle Manuel: '
|
❓ Error |
Résultat de l'audit:
Error lors de l'obtention du chemin via: `mysql -N -B -e "SELECT @@general_log_file;"` Output: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Remediation:
Restreindre les droits d'accès (ex: 640 ou 600).
|
| 3.7 |
Permissions sur les fichiers de clés SSL
mysql -N -B -e "SHOW VARIABLES LIKE 'ssl_key';" | awk '{print $2}' | xargs stat -c '%a'
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) stat: missing operand Try 'stat --help' for more information. Return Code: 123 Remediation:
Restreindre l'accès aux clés privées (ex: chmod 600) et s'assurer que le propriétaire est mysql.
|
| 3.8 |
Permissions sur le répertoire des plugins
echo 'Contrôle Manuel: '
|
❓ Error |
Résultat de l'audit:
Error lors de l'obtention du chemin via: `mysql -N -B -e "SELECT @@plugin_dir;"` Output: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Remediation:
chown -R mysql:mysql <plugin_dir> && chmod 755 <plugin_dir>
|
| 3.9 |
Permissions sur 'server_audit_file_path'
mysql -N -B -e "SHOW VARIABLES LIKE 'server_audit_file_path';" | awk '{print $2}' | xargs stat -c '%a'
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) stat: missing operand Try 'stat --help' for more information. Return Code: 123 Remediation:
Appliquer des permissions restrictives (ex: 640 ou 600).
|
| 3.10 |
Permissions sur les fichiers du plugin File Key Management
mysql -N -B -e "SHOW VARIABLES LIKE 'file_key_management_filename';" | awk '{print $2}' | xargs stat -c '%a'
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) stat: missing operand Try 'stat --help' for more information. Return Code: 123 Remediation:
Restreindre l'accès aux fichiers de clés de chiffrement (chmod 640).
|
4. Général
Détails des recommandations et résultats pour cette section.
2 Pass
0 Fail
1 Manuel
6 Error
0 N/A
100%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 4.1 |
S'assurer que les derniers correctifs de sécurité sont appliqués
mysql -N -B -e "SELECT @@version;"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Installez les derniers correctifs pour votre version ou mettez à niveau vers la dernière version.
|
| 4.2 |
S'assurer que les bases de test ne sont pas installées en production
mysql -N -B -e "SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME IN ('employees', 'world', 'world_x', 'sakila', 'airportdb', 'menagerie', 'test');"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Exécutez DROP DATABASE <database name>; pour supprimer une base de données d'exemple.
|
| 4.3 |
S'assurer que 'allow-suspicious-udfs' est à 'OFF'
my_print_defaults mysqld | grep -q 'allow-suspicious-udfs' && echo 'FOUND' || echo 'NOT FOUND'
|
✅ Pass |
Résultat de l'audit:
Stdout: NOT FOUND Stderr: Return Code: 0 Remediation:
Supprimer --allow-suspicious-udfs de la ligne de commande ou du fichier de configuration.
|
| 4.4 |
Renforcer l'utilisation de 'local_infile' sur les clients MariaDB
mysql -N -B -e "SELECT @@local_infile;"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Ajouter local-infile=0 à la section [mariadbd] et [client] du fichier de configuration MariaDB.
|
| 4.5 |
S'assurer que mariadb n'est pas démarré avec '--skip-grant-tables'
ps -ef | grep -E 'mysqld|mariadbd' | grep -v grep | grep -q 'skip-grant-tables' && echo 'FOUND' || echo 'NOT FOUND'
|
✅ Pass |
Résultat de l'audit:
Stdout: NOT FOUND Stderr: Return Code: 0 Remediation:
Supprimer l'option --skip-grant-tables de la ligne de commande ou du fichier de configuration.
|
| 4.6 |
S'assurer que les liens symboliques sont désactivés
mysql -N -B -e "SELECT @@have_symlink;"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Ajouter skip-symbolic-links dans la section [mariadbd] du fichier mariadb.cnf.
|
| 4.7 |
S'assurer que 'secure_file_priv' est configuré correctement
mysql -N -B -e "SHOW GLOBAL VARIABLES WHERE Variable_name = 'secure_file_priv';" | awk '{print $2}'
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 0 Remediation:
Configurer secure_file_priv sur NULL (pour désactiver) ou sur un chemin spécifique dans mariadb.cnf.
|
| 4.8 |
S'assurer que sql_mode contient STRICT_ALL_TABLES
mysql -N -B -e "SELECT @@sql_mode;"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Ajouter STRICT_ALL_TABLES au paramètre sql_mode dans mariadb.cnf.
|
| 4.9 |
Activer le chiffrement des données au repos dans MariaDB
mysql -N -B -e "SELECT VARIABLE_VALUE FROM information_schema.global_variables WHERE variable_name = 'innodb_encrypt_tables';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Configurer file_key_management plugin et innodb_encrypt_tables=ON dans mariadb.cnf.
|
5. Permissions MariaDB
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
3 Manuel
7 Error
0 N/A
0%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 5.1 |
Limiter l'accès complet à mysql.* aux seuls administrateurs
mysql -N -B -e "SELECT COUNT(*) FROM information_schema.user_privileges WHERE GRANTEE NOT LIKE '\'root\'@%' AND GRANTEE NOT LIKE '\'mysql\'@%';"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Révoquer les privilèges excessifs sur la base 'mysql' pour les utilisateurs non-administrateurs.
|
| 5.2 |
Retirer le droit FILE aux non-admins
mysql -N -B -e "SELECT COUNT(*) FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE PRIVILEGE_TYPE = 'FILE' AND GRANTEE NOT LIKE '\'root\'@%';"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
REVOKE FILE ON *.* FROM '<user>'@'<host>';
|
| 5.3 |
Retirer le droit PROCESS aux non-admins
mysql -N -B -e "SELECT COUNT(*) FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE PRIVILEGE_TYPE = 'PROCESS' AND GRANTEE NOT LIKE '\'root\'@%';"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
REVOKE PROCESS ON *.* FROM '<user>'@'<host>';
|
| 5.4 |
Retirer le droit SUPER aux non-admins
mysql -N -B -e "SELECT COUNT(*) FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE PRIVILEGE_TYPE = 'SUPER' AND GRANTEE NOT LIKE '\'root\'@%';"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
REVOKE SUPER ON *.* FROM '<user>'@'<host>';
|
| 5.5 |
Retirer le droit SHUTDOWN aux non-admins
mysql -N -B -e "SELECT COUNT(*) FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE PRIVILEGE_TYPE = 'SHUTDOWN' AND GRANTEE NOT LIKE '\'root\'@%';"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
REVOKE SHUTDOWN ON *.* FROM '<user>'@'<host>';
|
| 5.6 |
Retirer CREATE USER aux non-admins
mysql -N -B -e "SELECT COUNT(*) FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE PRIVILEGE_TYPE = 'CREATE USER' AND GRANTEE NOT LIKE '\'root\'@%';"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
REVOKE CREATE USER ON *.* FROM '<user>'@'<host>';
|
| 5.7 |
Retirer GRANT OPTION aux non-admins
mysql -N -B -e "SELECT COUNT(*) FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE IS_GRANTABLE = 'YES' AND GRANTEE NOT LIKE '\'root\'@%';"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
REVOKE GRANT OPTION ON *.* FROM '<user>'@'<host>';
|
| 5.8 |
Limiter REPLICATION SLAVE aux comptes de réplication
mysql -N -B -e "SELECT GRANTEE FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE PRIVILEGE_TYPE = 'REPLICATION SLAVE';"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
REVOKE REPLICATION SLAVE ON *.* FROM les comptes non dédiés à la réplication.
|
| 5.9 |
Limiter les droits DML/DDL à des BD/comptes précis
mysql -N -B -e "SELECT GRANTEE, PRIVILEGE_TYPE FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE PRIVILEGE_TYPE IN ('SELECT','INSERT','UPDATE','DELETE','CREATE','DROP','ALTER');"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Révoquer les droits superflus par base de données/compte.
|
| 5.10 |
Définir proprement DEFINER/INVOKER des SP/Functions
mysql -N -B -e "SELECT ROUTINE_SCHEMA, ROUTINE_NAME, DEFINER, SECURITY_TYPE FROM information_schema.ROUTINES WHERE DEFINER NOT IN ('root@localhost', 'mariadb.sys@localhost');"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Recréer les routines avec un DEFINER minimal ou utiliser SQL SECURITY INVOKER.
|
6. Audit & Journalisation
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
0 Manuel
6 Error
0 N/A
0%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 6.1 |
Configurer log_error correctement
mysql -N -B -e "SHOW VARIABLES LIKE 'log_error';" | awk '{print $2}'
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 0 Remediation:
Définir log-error=/chemin/vers/mariadb.err dans mariadb.cnf.
|
| 6.2 |
Journal hors partition système
echo 'Contrôle Manuel: '
|
❓ Error |
Résultat de l'audit:
Error lors de l'obtention du chemin via: `mysql -N -B -e "SELECT @@log_bin_basename;"` Output: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Remediation:
Déplacer les répertoires des journaux (log-bin, log-error) hors des partitions système.
|
| 6.3 |
log_warnings=2
mysql -N -B -e "SELECT @@log_warnings;"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Ajouter log_warnings=2 dans mariadb.cnf.
|
| 6.4 |
Activer la journalisation d'audit (server_audit)
mysql -N -B -e "SELECT PLUGIN_STATUS FROM information_schema.plugins WHERE PLUGIN_NAME = 'SERVER_AUDIT';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Installer et configurer le plugin server_audit : plugin_load_add=server_audit, server_audit_logging=ON dans mariadb.cnf.
|
| 6.5 |
Interdire le déchargement du plugin d'audit
mysql -N -B -e "SELECT LOAD_OPTION FROM information_schema.plugins WHERE PLUGIN_NAME='SERVER_AUDIT';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Ajouter server_audit=FORCE_PLUS_PERMANENT dans mariadb.cnf.
|
| 6.6 |
Chiffrer les Binary et Relay Logs
mysql -N -B -e "SELECT VARIABLE_VALUE FROM information_schema.global_variables WHERE variable_name = 'encrypt_binlog';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Ajouter encrypt_binlog=ON dans mariadb.cnf (nécessite un plugin de gestion de clés).
|
7. Authentification
Détails des recommandations et résultats pour cette section.
0 Pass
1 Fail
0 Manuel
6 Error
0 N/A
0%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 7.1 |
Désactiver mysql_old_password (old_passwords=OFF, secure_auth=ON)
mysql -N -B -e "SELECT @@old_passwords;"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Configurer old_passwords=0 et secure_auth=ON dans mariadb.cnf et redémarrer.
|
| 7.2 |
Aucun mot de passe dans la configuration globale
! grep -riE 'password|pwd|pass' /etc/mysql/ /etc/my.cnf | grep -v '#' | grep -v 'password_lifetime' | grep -v 'password_check' | grep -v 'validate_password' | grep -v 'strict_password' | grep -v 'old_passwords' | grep -v 'default_password_lifetime' | grep -v 'password_last_changed'
|
❌ Fail |
Résultat de l'audit:
Stdout: Stderr: grep: /etc/my.cnf: No such file or directory Return Code: 0 Remediation:
Utiliser des fichiers .my.cnf privés ou mysql_config_editor avec permissions restreintes.
|
| 7.3 |
Authentification forte pour tous les comptes
mysql -N -B -e "SELECT User, host FROM mysql.user WHERE (plugin IN('mysql_native_password', 'mysql_old_password','') AND NOT (User = 'root' AND authentication_string = 'invalid') AND NOT (User = 'mysql' AND authentication_string = 'invalid'));"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Migrer les comptes vers ed25519, unix_socket ou d'autres plugins d'authentification forte.
|
| 7.4 |
Politique de complexité des mots de passe (simple_password_check)
mysql -N -B -e "SELECT PLUGIN_STATUS FROM information_schema.plugins WHERE PLUGIN_NAME = 'simple_password_check';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Installer et configurer simple_password_check et cracklib_password_check. INSTALL SONAME 'simple_password_check';
|
| 7.5 |
Pas de wildcard '%' dans host
mysql -N -B -e "SELECT user, host FROM mysql.user WHERE host = '%';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
ALTER USER '<user>'@'%' ... ou supprimer le compte.
|
| 7.6 |
Supprimer les comptes anonymes
mysql -N -B -e "SELECT user, host FROM mysql.user WHERE user = '';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
DROP USER ''@'<host>'; ou utiliser mariadb-secure-installation.
|
| 7.7 |
Empêcher la réutilisation des mots de passe (password_reuse_check)
mysql -N -B -e "SELECT PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'password_reuse_check';"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Ajouter dans mariadb.cnf:
plugin_load_add = password_reuse_check
password_reuse_check = FORCE_PLUS_PERMANENT
strict_password_validation = ON
Puis redémarrer MariaDB.
|
8. Sécurité réseau
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
1 Manuel
2 Error
0 N/A
0%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 8.1 |
Forcer SSL/TLS (require_secure_transport=ON et have_ssl=YES)
mysql -N -B -e "SELECT @@require_secure_transport;"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Configurer les certificats SSL/TLS, puis ajouter require_secure_transport=ON dans mariadb.cnf.
|
| 8.2 |
Exiger TLS côté utilisateur (ssl_type)
mysql -N -B -e "SELECT count(*) FROM mysql.user WHERE host NOT IN ('localhost', '127.0.0.1', '::1') AND ssl_type = '';"
|
❓ Error |
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
ALTER USER '<user>'@'<host>' REQUIRE SSL; ou REQUIRE X509;
|
| 8.3 |
Limiter le nombre de connexions
mysql -N -B -e "SELECT VARIABLE_NAME, VARIABLE_VALUE FROM information_schema.global_variables WHERE VARIABLE_NAME LIKE 'max_%connections';"
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
Ajuster max_connections et max_user_connections dans mariadb.cnf selon les besoins.
|
9. Réplication
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
3 Manuel
0 Error
2 N/A
100%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 9.1 |
Chiffrer le trafic de réplication
mysql -N -B -e "SHOW REPLICA STATUS\G" | grep 'Master_SSL_Allowed'
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
STOP REPLICA; CHANGE MASTER TO MASTER_SSL=1; START REPLICA;
|
| 9.2 |
MASTER_SSL_VERIFY_SERVER_CERT activé
mysql -N -B -e "SHOW REPLICA STATUS\G" | grep 'Master_SSL_Verify_Server_Cert'
|
➖ N/A |
Résultat de l'audit:
Check non applicable dans cet environnement (Pré-condition non remplie). Command de vérification: mysql -N -B -e "SHOW REPLICA STATUS;" | grep -q . Remediation:
STOP REPLICA; CHANGE MASTER TO MASTER_SSL_VERIFY_SERVER_CERT=1; START REPLICA;
|
| 9.3 |
Pas de SUPER pour les utilisateurs de réplication
mysql -N -B -e "SELECT count(*) FROM mysql.user WHERE user LIKE '%repl%' AND Super_priv = 'Y';"
|
➖ N/A |
Résultat de l'audit:
Check non applicable dans cet environnement (Pré-condition non remplie). Command de vérification: mysql -N -B -e "SELECT count(*) FROM mysql.user WHERE user LIKE '%repl%';" | grep -q '[1-9]' Remediation:
REVOKE SUPER ON *.* FROM '<repl_user>'@'<repl_host>';
|
| 9.4 |
Chiffrement approuvé pour la réplication
mysql -N -B -e "SHOW REPLICA STATUS\G" | grep 'Master_SSL_Cipher'
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
STOP REPLICA; CHANGE MASTER TO MASTER_SSL_CIPHER='ECDHE-ECDSA-AES128-GCM-SHA256'; START REPLICA;
|
| 9.5 |
TLS mutuel activé pour la réplication
mysql -N -B -e "SHOW REPLICA STATUS\G" | grep -E 'Master_SSL_Cert|Master_SSL_Key'
|
❓ Error |
Guide de Validation Manuelle:
Résultat de l'audit:
Error: Impossible de se connecter au serveur (service arrêté ou mauvais socket). Stdout: Stderr: ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) Return Code: 1 Remediation:
STOP REPLICA; CHANGE MASTER TO MASTER_SSL_CERT='...', MASTER_SSL_KEY='...'; START REPLICA; ALTER USER <repl_user> REQUIRE X509;
|