Rapport d'Audit CIS - MongoDB 8
Date du rapport : 14/08/2026 12:17:08
Vérifications conformes
Non-conformités détectées
Échecs d'exécution technique
À vérifier manuellement
Métriques par Thématiques de Sécurité
Répartition Automatisée
Analyse par Catégorie
Répartition des contrôles automatisés par catégorie
1 Installation et Patching
0.00%
des contrôles automatisés réussis dans cette catégorie (0/0 vérifiés).
1 contrôles nécessitent une vérification manuelle.
0 controls encountered an execution error.
0 contrôles ne sont pas applicables.
| Numéro | Recommandation | Type | Test Exécuté | Résultat | Output / Error / Notes | Procédure de Remediation |
|---|---|---|---|---|---|---|
| 1.1 | S'assurer que la version/les correctifs appropriés de MongoDB sont installés | Manual | mongosh --quiet --eval 'print(db.version())' || mongod --version || echo 'MONGODB_VERSION_CHECK' |
⚠️ Manuel | This control requires manual verification. Procédure suggérée: mongosh --quiet --eval 'print(db.version())' || mongod --version || echo 'MONGODB_VERSION_CHECK' |
Sauvegarder les données, télécharger les binaires de la dernière version de MongoDB, arrêter l'instance, remplacer les binaires, redémarrer l'instance. |
2 Authentification
0.00%
des contrôles automatisés réussis dans cette catégorie (0/3 vérifiés).
0 contrôles nécessitent une vérification manuelle.
0 controls encountered an execution error.
0 contrôles ne sont pas applicables.
| Numéro | Recommandation | Type | Test Exécuté | Résultat | Output / Error / Notes | Procédure de Remediation |
|---|---|---|---|---|---|---|
| 2.1 | S'assurer que l'authentification est configurée | Automated | cat /etc/mongod.conf | grep "authorization" |
❌ Échoué | Stdout: Stderr: cat: /etc/mongod.conf: No such file or directory Return Code: 1 Condition de succès non remplie. |
Démarrer l'instance sans authentification, créer un utilisateur administrateur, configurer 'security.authorization: enabled' dans le fichier de configuration et redémarrer. |
| 2.2 | S'assurer que MongoDB ne contourne pas l'authentification via l'exception localhost | Automated | cat /etc/mongod.conf | grep "enableLocalhostAuthBypass" |
❌ Échoué | Stdout: Stderr: cat: /etc/mongod.conf: No such file or directory Return Code: 1 Condition de succès non remplie. |
Définir 'setParameter.enableLocalhostAuthBypass: false' dans le fichier de configuration ou exécuter 'mongod --setParameter enableLocalhostAuthBypass=0'. |
| 2.3 | S'assurer que l'authentification est activée dans le cluster sharded | Automated | cat /etc/mongod.conf | grep "PEMKeyFile" && cat /etc/mongod.conf | grep "CAFile" && cat /etc/mongod.conf | grep "clusterFile" && cat /etc/mongod.conf | grep "clusterAuthMode" && cat /etc/mongod.conf | grep "authenticationMechanisms:" |
❌ Échoué | Stdout: Stderr: cat: /etc/mongod.conf: No such file or directory Return Code: 1 Condition de succès non remplie. |
Configurer 'net.tls.mode: requireSSL', 'net.tls.PEMKeyFile', 'net.tls.CAFile', 'net.tls.clusterFile', 'security.authorization: enabled', et 'security.clusterAuthMode: x509' dans le fichier de configuration et redémarrer. Ou utiliser 'keyFile' pour le développement. |
3 Authorization
0.00%
des contrôles automatisés réussis dans cette catégorie (0/0 vérifiés).
5 contrôles nécessitent une vérification manuelle.
0 controls encountered an execution error.
0 contrôles ne sont pas applicables.
| Numéro | Recommandation | Type | Test Exécuté | Résultat | Output / Error / Notes | Procédure de Remediation |
|---|---|---|---|---|---|---|
| 3.1 | S'assurer du moindre privilège pour les comptes de base de données | Manual | Exécuter 'mongosh --quiet --eval "printjson(db.system.users.find({\"roles.role\": {\"$in\": [\"dbOwner\", \"userAdmin\", \"userAdminAnyDatabase\"]},\"roles.db\": \"admin\" }).toArray())"' et analyser manuellement la sortie. |
⚠️ Manuel | This control requires manual verification.
Procédure suggérée:
Exécuter 'mongosh --quiet --eval "printjson(db.system.users.find({\"roles.role\": {\"$in\": [\"dbOwner\", \"userAdmin\", \"userAdminAnyDatabase\"]},\"roles.db\": \"admin\" }).toArray())"' et analyser manuellement la sortie. |
Supprimer les comptes listés avec des rôles à privilèges élevés dans la base de données 'admin'. |
| 3.2 | S'assurer que le contrôle d'accès basé sur les rôles est activé et configuré correctement | Manual | mongosh --quiet --eval 'printjson(db.getUser())' || echo 'MONGODB_USER_ROLE_CHECK' |
⚠️ Manuel | This control requires manual verification. Procédure suggérée: mongosh --quiet --eval 'printjson(db.getUser())' || echo 'MONGODB_USER_ROLE_CHECK' |
Établir des rôles, assigner des privilèges appropriés aux rôles, assigner des utilisateurs aux rôles, supprimer les privilèges individuels superflus. |
| 3.3 | S'assurer que MongoDB est exécuté en utilisant un compte de service dédié et non privilégié | Manual | Exécuter 'ps -ef | grep -E "mongos | mongod"' et vérifier l'utilisateur sous lequel les processus s'exécutent (doit être un utilisateur non-root dédié comme 'mongodb'). |
⚠️ Manuel | This control requires manual verification. Procédure suggérée: Exécuter 'ps -ef | grep -E "mongos | mongod"' et vérifier l'utilisateur sous lequel les processus s'exécutent (doit être un utilisateur non-root dédié comme 'mongodb'). |
Créer un utilisateur dédié (ex: 'mongodb'), définir les permissions des fichiers de données, des fichiers de clés et des fichiers de log pour n'être lisibles/écrivables que par cet utilisateur. |
| 3.4 | S'assurer que chaque rôle pour chaque base de données MongoDB est nécessaire et n'accorde que les privilèges nécessaires | Manual | mongosh --quiet --eval 'printjson(db.runCommand({rolesInfo: 1}))' || echo 'MONGODB_ROLES_CHECK' |
⚠️ Manuel | This control requires manual verification.
Procédure suggérée:
mongosh --quiet --eval 'printjson(db.runCommand({rolesInfo: 1}))' || echo 'MONGODB_ROLES_CHECK' |
Révoquer les privilèges spécifiés des rôles définis par l'utilisateur s'ils ne sont plus nécessaires. |
| 3.5 | Réviser les rôles de superutilisateur/administrateur | Manual | mongosh --quiet --eval 'printjson(db.runCommand({rolesInfo: "dbOwner"}))' || echo 'MONGODB_ADMIN_ROLES_CHECK' |
⚠️ Manuel | This control requires manual verification.
Procédure suggérée:
mongosh --quiet --eval 'printjson(db.runCommand({rolesInfo: "dbOwner"}))' || echo 'MONGODB_ADMIN_ROLES_CHECK' |
Retirer les utilisateurs des rôles de superutilisateur/administrateur s'ils n'en ont pas besoin. |
4 Data Encryption
0.00%
des contrôles automatisés réussis dans cette catégorie (0/4 vérifiés).
1 contrôles nécessitent une vérification manuelle.
0 controls encountered an execution error.
0 contrôles ne sont pas applicables.
| Numéro | Recommandation | Type | Test Exécuté | Résultat | Output / Error / Notes | Procédure de Remediation |
|---|---|---|---|---|---|---|
| 4.1 | S'assurer que les protocoles TLS hérités sont désactivés | Automated | cat /etc/mongod.conf | grep "disabledProtocols" |
❌ Échoué | Stdout: Stderr: cat: /etc/mongod.conf: No such file or directory Return Code: 1 Condition de succès non remplie. |
Définir 'net.tls.disabledProtocols: [TLS1_0, TLS1_1]' (ou équivalent) dans le fichier de configuration et redémarrer. |
| 4.2 | S'assurer que les protocoles faibles sont désactivés | Automated | cat /etc/mongod.conf | grep "disabledProtocols" |
❌ Échoué | Stdout: Stderr: cat: /etc/mongod.conf: No such file or directory Return Code: 1 Condition de succès non remplie. |
Définir 'net.ssl.disabledProtocols: TLS1_0, TLS1_1' dans le fichier de configuration et redémarrer. |
| 4.3 | S'assurer du chiffrement des données en transit TLS ou SSL (chiffrement de transport) | Automated | cat /etc/mongod.conf | grep -A20 'net' | grep -A10 'tls' | grep 'mode' |
❌ Échoué | Stdout: Stderr: cat: /etc/mongod.conf: No such file or directory Return Code: 1 Condition de succès non remplie. |
Définir 'net.tls.mode: requireTLS', 'net.tls.certificateKeyFile', 'net.tls.CAFile' dans le fichier de configuration et redémarrer. |
| 4.4 | S'assurer que la norme FIPS (Federal Information Processing Standard) est activée | Automated | cat /etc/mongod.conf | grep "FIPSMode" |
❌ Échoué | Stdout: Stderr: cat: /etc/mongod.conf: No such file or directory Return Code: 1 Condition de succès non remplie. |
Définir 'net.tls.FIPSMode: true' dans le fichier de configuration et redémarrer. |
| 4.5 | S'assurer du chiffrement des données au repos | Manual | cat /etc/mongod.conf | grep "enableEncryption" | grep "encryptionKeyFile". (Fonctionnalité MongoDB Enterprise uniquement) |
⚠️ Manuel | This control requires manual verification. Procédure suggérée: cat /etc/mongod.conf | grep "enableEncryption" | grep "encryptionKeyFile". (Fonctionnalité MongoDB Enterprise uniquement) |
Activer le chiffrement des données au repos (MongoDB Enterprise uniquement) en configurant 'storage.engine: wiredTiger' et les options 'encryption'. |
5 Audit Logging
0.00%
des contrôles automatisés réussis dans cette catégorie (0/3 vérifiés).
1 contrôles nécessitent une vérification manuelle.
0 controls encountered an execution error.
0 contrôles ne sont pas applicables.
| Numéro | Recommandation | Type | Test Exécuté | Résultat | Output / Error / Notes | Procédure de Remediation |
|---|---|---|---|---|---|---|
| 5.1 | S'assurer que l'activité du système est auditée | Automated | cat /etc/mongod.conf | grep -A4 "auditLog" | grep "destination" |
❌ Échoué | Stdout: Stderr: cat: /etc/mongod.conf: No such file or directory Return Code: 1 Condition de succès non remplie. |
Définir 'auditLog.destination' sur 'syslog', 'console' ou 'file' dans le fichier de configuration. |
| 5.2 | S'assurer que les filtres d'audit sont configurés correctement | Manual | cat /etc/mongod.conf | grep -A10 "auditLog" | grep "filter". (Fonctionnalité MongoDB Enterprise uniquement) |
⚠️ Manuel | This control requires manual verification. Procédure suggérée: cat /etc/mongod.conf | grep -A10 "auditLog" | grep "filter". (Fonctionnalité MongoDB Enterprise uniquement) |
Définir les filtres d'audit en fonction des exigences de l'organisation (MongoDB Enterprise uniquement). |
| 5.3 | S'assurer que la journalisation capture autant d'informations que possible | Automated | cat /etc/mongod.conf | grep "quiet" |
❌ Échoué | Stdout: Stderr: cat: /etc/mongod.conf: No such file or directory Return Code: 1 Condition de succès non remplie. |
Définir 'systemLog.quiet: false' dans le fichier de configuration. |
| 5.4 | S'assurer que les nouvelles entrées sont ajoutées à la fin du fichier journal | Automated | cat /etc/mongod.conf | grep "logAppend" |
❌ Échoué | Stdout: Stderr: cat: /etc/mongod.conf: No such file or directory Return Code: 1 Condition de succès non remplie. |
Définir 'systemLog.logAppend: true' dans le fichier de configuration. |
6 Operating System Hardening
100.00%
des contrôles automatisés réussis dans cette catégorie (1/1 vérifiés).
2 contrôles nécessitent une vérification manuelle.
0 controls encountered an execution error.
0 contrôles ne sont pas applicables.
| Numéro | Recommandation | Type | Test Exécuté | Résultat | Output / Error / Notes | Procédure de Remediation |
|---|---|---|---|---|---|---|
| 6.1 | S'assurer que MongoDB utilise un port non-standard | Automated | cat /etc/mongod.conf | grep "port" |
✅ Réussi | Stdout: Stderr: cat: /etc/mongod.conf: No such file or directory Return Code: 1 |
Changer le port 'net.port' dans le fichier de configuration pour un numéro autre que 27017. |
| 6.2 | S'assurer que les limites de ressources du système d'exploitation sont définies pour MongoDB | Manual | Exécuter 'ps -ef | grep mongod' pour obtenir le PID, puis 'cat /proc/<PID>/limits' (remplacer <PID> par le PID réel). Vérifier les limites 'f' (file size), 't' (cpu time), 'v' (virtual memory), 'n' (open files), 'm' (memory size), 'u' (processes/threads). |
⚠️ Manuel | This control requires manual verification. Procédure suggérée: Exécuter 'ps -ef | grep mongod' pour obtenir le PID, puis 'cat /proc/<PID>/limits' (remplacer <PID> par le PID réel). Vérifier les limites 'f' (file size), 't' (cpu time), 'v' (virtual memory), 'n' (open files), 'm' (memory size), 'u' (processes/threads). |
Ajuster les ulimits du système d'exploitation (f, t, v, n, m, u) et redémarrer les instances mongod/mongos. |
| 6.3 | S'assurer que le script côté serveur est désactivé si non nécessaire | Manual | cat /etc/mongod.conf | grep -A10 "security" | grep "javascriptEnabled" |
⚠️ Manuel | This control requires manual verification. Procédure suggérée: cat /etc/mongod.conf | grep -A10 "security" | grep "javascriptEnabled" |
Définir 'security.javascriptEnabled: false' dans le fichier de configuration si le script côté serveur n'est pas nécessaire. |
7 File Permissions
0.00%
des contrôles automatisés réussis dans cette catégorie (0/0 vérifiés).
2 contrôles nécessitent une vérification manuelle.
0 controls encountered an execution error.
0 contrôles ne sont pas applicables.
| Numéro | Recommandation | Type | Test Exécuté | Résultat | Output / Error / Notes | Procédure de Remediation |
|---|---|---|---|---|---|---|
| 7.1 | S'assurer que les permissions appropriées du fichier de clés sont définies | Manual | Exécuter 'cat /etc/mongod.conf | grep "keyFile:" || cat /etc/mongod.conf | grep "PEMKeyFile:" || cat /etc/mongod.conf | grep "CAFile:"' pour trouver les chemins. Puis 'ls -l <chemin_fichier_clé/certificat>' et vérifier les permissions (doit être 600 et propriétaire 'mongodb:mongodb'). |
⚠️ Manuel | This control requires manual verification. Procédure suggérée: Exécuter 'cat /etc/mongod.conf | grep "keyFile:" || cat /etc/mongod.conf | grep "PEMKeyFile:" || cat /etc/mongod.conf | grep "CAFile:"' pour trouver les chemins. Puis 'ls -l <chemin_fichier_clé/certificat>' et vérifier les permissions (doit être 600 et propriétaire 'mongodb:mongodb'). |
Définir les permissions du fichier de clés/certificats à 600 et le propriétaire à 'mongodb:mongodb'. |
| 7.2 | S'assurer que les permissions appropriées du fichier de base de données sont définies | Manual | Exécuter 'cat /etc/mongod.conf | grep "dbpath" || cat /etc/mongod.conf | grep "dbPath"' pour trouver le chemin. Puis 'stat -c '%a' <chemin_base_de_données>' et vérifier les permissions (doit être 770 ou plus restrictif pour 'mongodb:mongodb'). |
⚠️ Manuel | This control requires manual verification. Procédure suggérée: Exécuter 'cat /etc/mongod.conf | grep "dbpath" || cat /etc/mongod.conf | grep "dbPath"' pour trouver le chemin. Puis 'stat -c '%a' <chemin_base_de_données>' et vérifier les permissions (doit être 770 ou plus restrictif pour 'mongodb:mongodb'). |
Définir les permissions du répertoire de base de données à 770 et le propriétaire à 'mongodb:mongodb'. |