Comment Auditer MongoDB
L’audit de MongoDB est essentiel pour les organisations qui manipulent des données sensibles ou réglementées. Il permet de suivre les actions des utilisateurs, de détecter les anomalies et de garantir la conformité à des normes telles que le RGPD et la HIPAA. Ce guide couvre la configuration native de l’audit MongoDB — disponible dans l’édition Enterprise de MongoDB — ainsi que les améliorations apportées par DataSunrise, avec des stratégies pour la surveillance en temps réel, le masquage dynamique, la découverte et la conformité.
Pourquoi l’Audit est Important
Les journaux d’audit sont la pierre angulaire médico-légale de la sécurité des bases de données. Ils enregistrent qui a accédé à quoi, quand et comment. Ces informations aident lors des enquêtes, confirment la conformité aux réglementations sur la protection des données et soutiennent la transparence opérationnelle. Sans audit, les actions malveillantes pourraient rester cachées jusqu’à ce qu’un dommage important soit causé. Ceci est particulièrement crucial dans des secteurs comme la finance, la santé et le gouvernement, où les violations peuvent entraîner des sanctions réglementaires, une perte de réputation et une perturbation des opérations.
Configuration Native de l’Audit MongoDB (Enterprise)
Le système d’audit natif de MongoDB est disponible uniquement dans MongoDB Enterprise et MongoDB Atlas. Il capture les événements de la base de données à l’aide de filtres flexibles. Pour activer l’audit, modifiez le fichier mongod.conf avec la destination du journal, le format de sortie et les filtres d’événements souhaités :
auditLog:
destination: file
format: BSON
path: /var/log/mongodb/auditLog.bson
filter: '{ atype: { $in: ["createCollection", "update", "insert", "remove"] } }'
Démarrez MongoDB avec :
mongod --config /etc/mongod.conf
Convertissez les journaux BSON en JSON pour analyse :
bsondump /var/log/mongodb/auditLog.bson > auditLog.json
Exemples de Configuration
Commencez avec des options en ligne de commande :
mongod \
--auditDestination file \
--auditFormat BSON \
--auditPath /var/log/mongodb/auditLog.bson \
--auditFilter '{ atype: { $in: ["insert","update","remove"] } }' \
--config /etc/mongod.conf
Envoyez les événements d’audit au syslog :
auditLog:
destination: syslog
format: JSON
systemLog:
destination: syslog
verbosity: 0
Filtrez par espace de noms (namespace) :
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit.json
filter: '{ "param.ns": { $regex: "^sales\." }, atype: { $in: ["insert","update","remove"] } }'
Filtrer les actions administratives pour un utilisateur :
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit-admin.json
filter: '{ "users.user": "admin", atype: { $in: ["createUser","updateUser","grantRolesToUser","dropUser","authCheck"] } }'
Exemple d’événement Atlas/Enterprise :
{
"atype": "createUser",
"ts": { "$date": "2025-08-15T11:04:12.901Z" },
"local": { "ip": "127.0.0.1", "port": 27017 },
"remote": { "ip": "192.0.2.15", "port": 56024 },
"users": [{ "user": "admin", "db": "admin" }],
"param": { "db": "sales", "user": "reporter", "roles": [{ "role": "read", "db": "sales" }] },
"result": 0
}
Le filtrage avancé permet de cibler des utilisateurs, rôles ou opérations spécifiques. Pour la configuration à chaud (runtime) :
db.adminCommand({
setParameter: 1,
auditAuthorizationSuccess: true
})
Consultez la documentation du journal d’audit MongoDB ainsi que le guide d’audit Percona.
Surveillance en Temps Réel
L’audit natif sert souvent à la revue post-incident. Associez-le à la surveillance des activités de base de données pour détecter immédiatement les actions suspectes, bloquer les requêtes risquées et envoyer des alertes via des canaux intégrés.
DataSunrise améliore l’audit natif avec un support centralisé multi-base de données, des règles personnalisables et une application en temps réel. Déployez-le en reverse proxy, définissez les actions surveillées, configurez les notifications et activez-les.
Masquage, Conformité et Découverte
Le masquage dynamique cache les champs sensibles sans modifier les données stockées. La découverte de données scanne les collections pour trouver les champs sensibles, permettant des audits ciblés. Pour la conformité aux normes PCI DSS, SOX ou HIPAA, DataSunrise mappe les politiques d’audit aux règlementations, génère des rapports et automatise leur distribution.
Exemple Combiné
Une entreprise de vente au détail utilise l’audit natif pour journaliser les mises à jour de prix et DataSunrise pour bloquer les modifications excessives, masquer les données des fournisseurs et alerter les responsables. Gardez les filtres spécifiques pour réduire la charge, sécurisez les journaux, automatisez les revues avec un SIEM, intégrez la détection de menaces et testez régulièrement les configurations. Consultez le manuel d’audit MongoDB et la documentation de sécurité Atlas.
Tableau Comparatif des Fonctionnalités
| Fonctionnalité | Audit Natif MongoDB Enterprise | Audit DataSunrise |
|---|---|---|
| Disponibilité | Enterprise / Atlas uniquement | Compatible avec plus de 40 bases de données |
| Filtrage des événements | Oui, via configuration ou CLI | Oui, avec interface graphique et logique avancée |
| Alertes en temps réel | Non | Oui |
| Masquage des données | Non | Masquage dynamique & statique |
| Découverte des données | Non | Analyse intégrée des données sensibles |
| Mappage de conformité | Manuel | Automatisé avec Compliance Manager |
| Intégration | Syslog, fichier | Email, Slack, MS Teams, SIEM |
Conclusion
Savoir comment auditer MongoDB signifie utiliser l’audit Enterprise pour les détails et DataSunrise pour la prévention, le masquage et l’automatisation de la conformité. Ensemble, ils forment une approche robuste et multi-couches de la sécurité des bases de données.