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:
  • Identifier les fichiers de sauvegarde récents.
  • Restaurer une base de test à partir de ces fichiers.
  • Vérifier l'intégrité des données.
  • Documenter la date et le résultat du test.
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:
  • Rechercher les scripts de sauvegarde.
  • Vérifier si les mots de passe sont en clair.
  • S'assurer que les fichiers de config (.my.cnf) ont des droits 600.
  • Utiliser mysql_config_editor.
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:
  • Consulter la documentation technique.
  • Vérifier la présence d'une procédure de basculement.
  • Confirmer la réplication hors-site.
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:
  • Lister le contenu d'une sauvegarde complète.
  • Vérifier la présence de /etc/my.cnf et des certificats SSL.
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:
  • Lister les services actifs (systemctl list-units).
  • S'assurer que seuls MySQL et les services système essentiels sont présents.
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:
  • Examiner l'historique bash.
  • Vérifier les scripts cron.
  • S'assurer qu'aucune commande ne contient -p suivi d'un mot de passe.
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:
  • Lister les comptes MySQL.
  • Vérifier qu'aucun compte n'est partagé entre plusieurs personnes.
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:
  • Vérifier les certificats SSL actuels.
  • S'assurer qu'ils ne sont pas auto-générés par MySQL.
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:
  • Vérifier la politique de mots de passe.
  • S'assurer que les applications supportent le double mot de passe.
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:
  • Lister les comptes non verrouillés.
  • Identifier ceux qui ne sont plus utilisés.
  • Les verrouiller.
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:
  • Vérifier les comptes utilisant auth_socket.
  • S'assurer que seuls les comptes système légitimes l'utilisent.
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:
  • Vérifier si le mode FIPS est activé.
  • Configurer ssl_fips_mode si nécessaire.
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:
  • Relever la version affichée.
  • Comparer avec les Release Notes MySQL Community 8.4.
  • Vérifier les CVE critiques.
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:
  • Lister les utilisateurs avec SET_ANY_DEFINER.
  • S'assurer que seuls les administrateurs légitimes le possèdent.
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:
  • Lister les utilisateurs avec ALLOW_NONEXISTENT_DEFINER.
  • S'assurer que seuls les administrateurs légitimes le possèdent.
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:
  • Vérifier si la réplication est active.
  • Vérifier SSL_Allowed.
  • Configurer TLS pour la réplication si nécessaire.
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.