Rapport d'Audit CIS - MySQL Community 8.4
Date du rapport : 14/08/2026 12:17:17
Local Bare-Metal
CIS Benchmark v1.0.0
v2.3.0
Score Global
71.4%
Succès
6
Vérifications conformes
Échecs
4
Non-conformités détectées
Erreurs Commande
59
Échecs d'exécution technique
Manuels
6
À 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
71.4%
Score Global
Réussi (PASS) : 6
Échoué (FAIL) : 4
Erreur (Error) : 59
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
50.0% (3/7)
2. Installation et Planification
0.0% (0/13)
3. Permissions Fichiers
0.0% (0/8)
4. Général
100.0% (2/8)
5. Gestion des privilèges
0.0% (0/10)
6. Audit & Journalisation
0.0% (0/4)
7. Authentification
100.0% (1/7)
8. Sécurité réseau
0.0% (0/3)
9. Réplication
100.0% (0/2)
10. InnoDB Cluster / Group Replication
100.0% (0/2)
1. Configuration Système d'exploitation
Détails des recommandations et résultats pour cette section.
3 Pass
3 Fail
0 Manuel
1 Error
0 N/A
50%
| 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 MySQL, redémarrer le service.
|
| 1.2 |
Utiliser un compte dédié et privilégié minimal pour MySQL
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 MySQL 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 MySQL
! find /home /root -name .mysql_history -print -quit 2>/dev/null
|
✅ Pass |
Résultat de l'audit:
Stdout: /home/jmren/.mysql_history Stderr: Return Code: 0 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 mysql_config_editor ou authentification certifiée.
|
| 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 2>/dev/null
|
✅ 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 MySQL dans un environnement sandbox
[[ -f /.dockerenv ]] || grep -qs 'docker\|containerd' /proc/1/cgroup || systemctl is-active mysql >/dev/null 2>&1
|
❌ Fail |
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 MySQL sous Docker.
|
2. Installation et Planification
Détails des recommandations et résultats pour cette section.
0 Pass
1 Fail
11 Manuel
12 Error
0 N/A
0%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 2.1.1 |
Politique de sauvegarde en place
crontab -l 2>/dev/null | grep -E 'mysqldump|xtrabackup|mysqlbackup' || ps -ef | grep -E 'mysqldump|xtrabackup|mysqlbackup' | grep -v grep
|
❌ Fail |
Résultat de l'audit:
Stdout: Stderr: Return Code: 1 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/ 2>/dev/null | 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: 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/ 2>/dev/null || echo 'VERIF_CREDENTIALS_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 VERIF_CREDENTIALS_BACKUP Stderr: Return Code: 0 Remediation:
Restreindre les droits fichiers, utiliser des keystores ou du chiffrement.
|
| 2.1.4 |
Point-in-Time Recovery
mysql -N -B -e "SELECT @@log_bin;"
|
❓ 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 log_bin dans my.cnf, configurer binlog_expire_logs_seconds, tester les restaurations PITR.
|
| 2.1.5 |
Plan de reprise d'activité (DR)
ls -la /etc/mysql/ /etc/mariadb/ /etc/postgresql/ /var/backups/ /backup/ 2>/dev/null || echo 'MANUAL_DR_POLICY_REVIEW'
|
⚠️ 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 MANUAL_DR_POLICY_REVIEW Stderr: Return Code: 0 Remediation:
Documenter et tester un plan DR incluant réplication, backups offsite.
|
| 2.1.6 |
Sauvegarde des fichiers de configuration
ps -ef | grep -E 'replica|galera|patroni|barman|slave' | grep -v grep || echo 'VÉRIFICATION_REPLICATION_PCA'
|
⚠️ Manuel |
Guide de Validation Manuelle:
Résultat de l'audit:
This control requires manual verification. Résultat de l'extraction automatique pour aide: Stdout: VÉRIFICATION_REPLICATION_PCA Stderr: Return Code: 0 Remediation:
Ajouter tous les fichiers essentiels à la stratégie de sauvegarde.
|
| 2.2.1 |
Chiffrer les binary et relay logs
mysql -N -B -e "SELECT @@binlog_encryption;"
|
❓ 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 binlog_encryption=ON dans my.cnf et installer un plugin keyring.
|
| 2.3 |
Dédier la machine MySQL
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 19892 ? 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 124088 ? 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:
Dédier le serveur à MySQL uniquement.
|
| 2.4 |
Ne pas spécifier de mots de passe en ligne de commande
mysql -N -B -e "SELECT COUNT(*) - COUNT(DISTINCT user) FROM mysql.user WHERE user NOT IN ('mysql.infoschema', 'mysql.session', 'mysql.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:
Utiliser mysql_config_editor ou des fichiers de configuration protégés.
|
| 2.5 |
Ne pas réutiliser les noms d'utilisateurs
mysql -N -B -e "SELECT user, host FROM mysql.user;"
|
❓ 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:
Attribuer des comptes individuels et éviter les comptes génériques partagés.
|
| 2.6 |
Matériel cryptographique unique et non-par-défaut
mysql -N -B -e "SHOW VARIABLES LIKE 'ssl_cert';"
|
❓ 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:
Générer et utiliser des certificats TLS personnalisés, ne pas utiliser ceux par défaut.
|
| 2.7 |
Durée de vie des mots de passe ≤ 365 jours
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 PERSIST default_password_lifetime=365;
|
| 2.8 |
Exiger des mots de passe forts lors de la réinitialisation
mysql -N -B -e "SHOW VARIABLES LIKE 'validate_password.policy';"
|
❓ 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 component_validate_password et configurer validate_password.policy=STRONG.
|
| 2.9 |
Exiger le mot de passe actuel pour changer le mot de passe
mysql -N -B -e "SELECT @@password_require_current;"
|
❓ 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 PERSIST password_require_current=ON;
|
| 2.10 |
Utiliser les mots de passe doubles pour rotation fréquente
echo 'INSPECTION MANUELLE DU CONTRÔLE 2.10 (Utiliser les mots de passe doubles pour rotation fréquente)' && ps -ef | head -n 10
|
⚠️ Manuel |
Guide de Validation Manuelle:
Résultat de l'audit:
This control requires manual verification. Résultat de l'extraction automatique pour aide: Stdout: INSPECTION MANUELLE DU CONTRÔLE 2.10 (Utiliser les mots de passe doubles pour rotation fréquente) UID PID PPID C STIME TTY TIME CMD root 1 0 0 09:29 ? 00:00:01 /sbin/init root 2 1 0 09:29 hvc0 00:00:00 /init root 6 2 0 09:29 hvc0 00:00:00 plan9 --control-socket 7 --log-level 4 --server-fd 8 --pipe-fd 10 --log-truncate root 52 1 0 09:29 ? 00:00:01 /usr/lib/systemd/systemd-journald root 101 1 0 09:29 ? 00:00:00 /usr/lib/systemd/systemd-udevd root 114 1 0 09:29 ? 00:00:00 snapfuse /var/lib/snapd/snaps/core22_2411.snap /snap/core22/2411 -o ro,nodev,allow_other,suid root 119 1 0 09:29 ? 00:00:00 snapfuse /var/lib/snapd/snaps/core24_1587.snap /snap/core24/1587 -o ro,nodev,allow_other,suid root 124 1 0 09:29 ? 00:00:04 snapfuse /var/lib/snapd/snaps/core24_1643.snap /snap/core24/1643 -o ro,nodev,allow_other,suid root 126 1 0 09:29 ? 00:00:00 snapfuse /var/lib/snapd/snaps/docker_3505.snap /snap/docker/3505 -o ro,nodev,allow_other,suid Stderr: Return Code: 0 Remediation:
ALTER USER '<user>'@'<host>' IDENTIFIED BY '<new_pass>' RETAIN CURRENT PASSWORD;
|
| 2.11 |
Verrouiller les comptes inutilisés
mysql -N -B -e "SELECT user, host, account_locked FROM mysql.user WHERE account_locked = 'N';"
|
❓ 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;
|
| 2.12 |
Configurer le mode de chiffrement AES
mysql -N -B -e "SELECT @@block_encryption_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:
SET PERSIST block_encryption_mode='aes-256-cbc';
|
| 2.13 |
Authentification socket peer-credential appropriée
mysql -N -B -e "SELECT user, host, plugin FROM mysql.user WHERE plugin='auth_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:
Limiter l'utilisation de auth_socket aux comptes locaux appropriés.
|
| 2.14 |
MySQL est lié à une adresse IP spécifique
mysql -N -B -e "SELECT @@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 dans my.cnf pour écouter sur une IP spécifique plutôt que sur toutes les interfaces.
|
| 2.15 |
Limiter les versions TLS acceptées
mysql -N -B -e "SELECT @@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 my.cnf.
|
| 2.16 |
Exiger les 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 ('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.17 |
Utiliser uniquement des ciphers approuvés
mysql -N -B -e "SHOW VARIABLES LIKE '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 dans my.cnf avec des ciphers forts uniquement.
|
| 2.18 |
Délais de connexion pour limiter les tentatives échouées
mysql -N -B -e "SELECT @@connection_control_min_connection_delay;"
|
❓ 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:
INSTALL COMPONENT 'file://component_connection_control'; SET PERSIST connection_control_min_connection_delay=1000;
|
| 2.19 |
Utiliser le chiffrement OpenSSL FIPS 140-2
mysql -N -B -e "SHOW VARIABLES LIKE 'ssl_fips_mode';"
|
❓ 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:
Activer le mode FIPS si requis par la politique de sécurité.
|
3. Permissions Fichiers
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
0 Manuel
8 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>
|
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 |
Appliquer les derniers correctifs de sécurité
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');"
|
❓ 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 MySQL
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 [mysqld] et [mysql] du fichier de configuration MySQL.
|
| 4.5 |
S'assurer que mysqld n'est pas démarré avec '--skip-grant-tables'
ps -ef | grep mysqld | 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 |
Désactiver les liens symboliques
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 [mysqld] du fichier my.cnf.
|
| 4.7 |
Configurer 'secure_file_priv' correctement
mysql -N -B -e "SELECT @@secure_file_priv;"
|
❓ 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:
Définir secure_file_priv sur NULL (pour désactiver) ou sur un chemin spécifique dans my.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 my.cnf.
|
| 4.9 |
Chiffrement des données au repos avec TDE
mysql -N -B -e "SELECT count(*) FROM information_schema.TABLES WHERE CREATE_OPTIONS NOT LIKE '%ENCRYPTION=\"Y\"%' AND TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys');"
|
❓ 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 le chiffrement via ALTER TABLE ... ENCRYPTION='Y'; et configurer un plugin keyring.
|
5. Gestion des privilèges
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
2 Manuel
10 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.sys\'@%';"
|
❓ 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:
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 user, host FROM mysql.user WHERE File_priv = 'Y' AND user NOT IN ('root', 'mysql.sys');"
|
❓ 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:
REVOKE FILE ON *.* FROM '<user>'@'<host>';
|
| 5.3 |
Retirer le droit PROCESS aux non-admins
mysql -N -B -e "SELECT user, host FROM mysql.user WHERE Process_priv = 'Y' AND user NOT IN ('root', 'mysql.sys');"
|
❓ 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:
REVOKE PROCESS ON *.* FROM '<user>'@'<host>';
|
| 5.4 |
Retirer le droit SUPER
mysql -N -B -e "SELECT user, host FROM mysql.user WHERE Super_priv = 'Y' AND user NOT IN ('root', 'mysql.sys');"
|
❓ 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 vers les droits dynamiques puis REVOKE SUPER ON *.* FROM '<user>'@'<host>';
|
| 5.5 |
Retirer le droit SHUTDOWN
mysql -N -B -e "SELECT user, host FROM mysql.user WHERE Shutdown_priv = 'Y' AND user NOT IN ('root', 'mysql.sys');"
|
❓ 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:
REVOKE SHUTDOWN ON *.* FROM '<user>'@'<host>';
|
| 5.6 |
Retirer CREATE USER aux non-admins
mysql -N -B -e "SELECT user, host FROM mysql.user WHERE Create_user_priv = 'Y' AND user NOT IN ('root', 'mysql.sys');"
|
❓ 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:
REVOKE CREATE USER ON *.* FROM '<user>'@'<host>';
|
| 5.7 |
Retirer GRANT OPTION aux non-admins
mysql -N -B -e "SELECT user, host FROM mysql.user WHERE Grant_priv = 'Y' AND user NOT IN ('root', 'mysql.sys');"
|
❓ 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:
REVOKE GRANT OPTION ON *.* FROM '<user>'@'<host>';
|
| 5.8 |
Limiter REPLICATION SLAVE aux comptes de réplication
mysql -N -B -e "SELECT count(*) FROM mysql.user WHERE Repl_slave_priv = 'Y' AND user NOT LIKE '%repl%';"
|
❓ 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:
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 user, host FROM mysql.user WHERE (Select_priv='Y' OR Insert_priv='Y' OR Update_priv='Y' OR Delete_priv='Y' OR Create_priv='Y' OR Drop_priv='Y' OR Alter_priv='Y') AND user NOT IN ('root', 'mysql.sys', 'mysql.session');"
|
❓ 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:
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 count(*) FROM information_schema.ROUTINES WHERE DEFINER NOT IN ('root@localhost', 'mysql.sys@localhost');"
|
❓ 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:
Recréer les routines avec un DEFINER minimal ou utiliser SQL SECURITY INVOKER.
|
| 5.11 |
Restreindre le droit SET_ANY_DEFINER
mysql -N -B -e "SELECT GRANTEE, PRIVILEGE_TYPE FROM information_schema.user_privileges WHERE PRIVILEGE_TYPE='SET_ANY_DEFINER';"
|
❓ 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 SET_ANY_DEFINER ON *.* FROM '<user>'@'<host>';
|
| 5.12 |
Restreindre ALLOW_NONEXISTENT_DEFINER
mysql -N -B -e "SELECT GRANTEE, PRIVILEGE_TYPE FROM information_schema.user_privileges WHERE PRIVILEGE_TYPE='ALLOW_NONEXISTENT_DEFINER';"
|
❓ 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 ALLOW_NONEXISTENT_DEFINER ON *.* FROM '<user>'@'<host>';
|
6. Audit & Journalisation
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
0 Manuel
4 Error
0 N/A
0%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 6.1 |
Configurer log_error
mysql -N -B -e "SELECT @@log_error;"
|
❓ 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:
Définir log-error=/chemin/vers/mysql.err dans my.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_error;"` 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 hors des partitions système.
|
| 6.3 |
log_error_verbosity=2
mysql -N -B -e "SELECT @@log_error_verbosity;"
|
❓ 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_error_verbosity=2 dans my.cnf.
|
| 6.4 |
log-raw OFF
mysql -N -B -e "SHOW VARIABLES LIKE 'log_raw';"
|
❓ 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:
S'assurer que 'log-raw' n'est pas activé dans my.cnf.
|
7. Authentification
Détails des recommandations et résultats pour cette section.
1 Pass
0 Fail
0 Manuel
6 Error
0 N/A
100%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 7.1 |
Politique d'authentification sécurisée (authentication_policy)
mysql -N -B -e "SELECT @@authentication_policy;"
|
❓ 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 PERSIST authentication_policy='caching_sha2_password,,';
|
| 7.2 |
Aucun mot de passe dans le my.cnf global
! grep -riE "password|pwd|pass" /etc/my.cnf /etc/mysql/ 2>/dev/null
|
✅ Pass |
Résultat de l'audit:
Stdout: /etc/mysql/my.cnf.fallback:# This will be passed to all mysql clients /etc/mysql/my.cnf.fallback:# It has been reported that passwords should be enclosed with ticks/quotes Stderr: Return Code: 0 Remediation:
Utiliser mysql_config_editor ou des fichiers .my.cnf privés avec permissions restreintes.
|
| 7.3 |
Tous les comptes ont un mot de passe
mysql -N -B -e "SELECT user, host FROM mysql.user WHERE authentication_string = '' OR plugin='mysql_no_login';"
|
❓ 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>' IDENTIFIED BY '<password>'; ou utiliser mysql_secure_installation.
|
| 7.4 |
Expiration annuelle des mots de passe
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 PERSIST default_password_lifetime=365;
|
| 7.5 |
Politique de complexité forte
mysql -N -B -e "SHOW VARIABLES LIKE 'validate_password.policy';"
|
❓ 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 component_validate_password avec validate_password.policy=STRONG.
|
| 7.6 |
Pas de wildcard '%' dans host
mysql -N -B -e "SELECT user, host FROM mysql.user WHERE host = '%' AND user NOT IN ('root');"
|
❓ 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>'@'%' ... RENAME TO '<user>'@'<specific_host>'; ou supprimer le compte.
|
| 7.7 |
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 mysql_secure_installation.
|
8. Sécurité réseau
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
0 Manuel
3 Error
0 N/A
0%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 8.1 |
Forcer SSL/TLS (require_secure_transport=ON)
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 my.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 @@max_connections;"
|
❓ 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:
Ajuster max_connections et max_user_connections dans my.cnf selon les besoins.
|
9. Réplication
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
1 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 -E 'SSL_Allowed|Master_SSL_Verify_Server_Cert'
|
❓ 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 TLS pour la réplication (SOURCE_SSL=1, SOURCE_SSL_CA, etc.).
|
| 9.2 |
SOURCE_SSL_VERIFY_SERVER_CERT = YES
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:
CHANGE REPLICATION SOURCE TO SOURCE_SSL_VERIFY_SERVER_CERT = 1;
|
| 9.3 |
Retirer SUPER aux comptes 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>';
|
10. InnoDB Cluster / Group Replication
Détails des recommandations et résultats pour cette section.
0 Pass
0 Fail
0 Manuel
0 Error
2 N/A
100%
| ID | Recommandation | Status | Analyse & Remediation |
|---|---|---|---|
| 10.1 |
Chiffrer le trafic Group Replication
mysql -N -B -e "SELECT @@group_replication_ssl_mode;"
|
➖ 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 PLUGINS;" | grep -q 'group_replication' Remediation:
Configurer group_replication_ssl_mode à REQUIRED, VERIFY_CA, ou VERIFY_IDENTITY dans my.cnf.
|
| 10.2 |
Définir une allow-list de nœuds
mysql -N -B -e "SELECT @@group_replication_ip_allowlist;"
|
➖ 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 PLUGINS;" | grep -q 'group_replication' Remediation:
Configurer group_replication_ip_allowlist avec les adresses IP/CIDR des nœuds autorisés.
|