Come Eseguire l’Audit di MongoDB
Effettuare l’audit di MongoDB è essenziale per le organizzazioni che gestiscono dati sensibili o regolamentati. Permette di tracciare le azioni degli utenti, rilevare anomalie e rispettare standard come il GDPR e l’HIPAA. Questa guida copre la configurazione nativa dell’audit di MongoDB — disponibile nell’edizione Enterprise di MongoDB — e i miglioramenti con DataSunrise, insieme a strategie per il monitoraggio in tempo reale, il masking dinamico, la scoperta e la conformità.
Perché l’Audit è Importante
I log di audit rappresentano la base forense della sicurezza del database. Registrano chi ha avuto accesso a cosa, quando e in che modo. Queste informazioni aiutano nelle indagini, confermano la conformità con le normative sulla protezione dei dati e supportano la trasparenza operativa. Senza l’audit, azioni dannose potrebbero rimanere nascoste fino a causare danni significativi. Questo è particolarmente importante in settori come finanza, sanità e pubblica amministrazione, dove le violazioni possono comportare sanzioni normative, perdita di reputazione e interruzioni operative.
Configurazione Nativa dell’Audit di MongoDB (Enterprise)
Il sistema di auditing nativo di MongoDB è disponibile solo in MongoDB Enterprise e MongoDB Atlas. Cattura eventi del database utilizzando filtri flessibili. Per abilitare l’audit, modifica mongod.conf con la destinazione del log desiderata, il formato di output e i filtri degli eventi:
auditLog:
destination: file
format: BSON
path: /var/log/mongodb/auditLog.bson
filter: '{ atype: { $in: ["createCollection", "update", "insert", "remove"] } }'
Avvia MongoDB con:
mongod --config /etc/mongod.conf
Converti i log BSON in JSON per l’analisi:
bsondump /var/log/mongodb/auditLog.bson > auditLog.json
Esempi di Configurazione
Inizia con flag da riga di comando:
mongod \
--auditDestination file \
--auditFormat BSON \
--auditPath /var/log/mongodb/auditLog.bson \
--auditFilter '{ atype: { $in: ["insert","update","remove"] } }' \
--config /etc/mongod.conf
Invia eventi di audit al syslog:
auditLog:
destination: syslog
format: JSON
systemLog:
destination: syslog
verbosity: 0
Filtra per namespace:
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit.json
filter: '{ "param.ns": { $regex: "^sales\\." }, atype: { $in: ["insert","update","remove"] } }'
Filtra azioni amministrative per un utente:
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit-admin.json
filter: '{ "users.user": "admin", atype: { $in: ["createUser","updateUser","grantRolesToUser","dropUser","authCheck"] } }'
Esempio di evento 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
}
I filtri avanzati permettono di mirare a utenti, ruoli o operazioni specifiche. Per la configurazione a runtime:
db.adminCommand({
setParameter: 1,
auditAuthorizationSuccess: true
})
Consulta la Documentazione sul Log di Audit di MongoDB e la Guida all’Audit Logging di Percona.
Monitoraggio in Tempo Reale
L’audit nativo spesso serve a revisioni post-incidente. Abbinalo a Database Activity Monitoring per rilevare azioni sospette istantaneamente, bloccare query rischiose e inviare avvisi tramite canali integrati.
DataSunrise potenzia l’auditing nativo con supporto centralizzato multi-database, regole personalizzabili e applicazione in tempo reale. Si può distribuire come proxy inverso, definire azioni monitorate, impostare notifiche e attivare il sistema.
Masking, Conformità e Scoperta
Il masking dinamico nasconde i campi sensibili senza alterare i dati archiviati. La scoperta dei dati esegue la scansione delle collezioni per individuare campi sensibili, permettendo audit mirati. Per la conformità a PCI DSS, SOX o HIPAA, DataSunrise mappa le politiche di audit sulle normative, genera report e automatizza la consegna.
Esempio Combinato
Un’azienda retail usa l’audit nativo per registrare aggiornamenti di prezzi e DataSunrise per bloccare modifiche eccessive, mascherare dati dei fornitori e avvisare i responsabili. Mantieni i filtri specifici per ridurre il carico, proteggi i log, automatizza le revisioni con SIEM, integra con la rilevazione delle minacce e testa regolarmente le configurazioni. Consulta il manuale di audit di MongoDB e la documentazione di sicurezza di Atlas.
Tabella di Confronto delle Caratteristiche
| Caratteristica | Audit Nativo di MongoDB Enterprise | Audit DataSunrise |
|---|---|---|
| Disponibilità | Solo Enterprise / Atlas | Supporta oltre 40 database |
| Filtraggio Eventi | Sì, via configurazione o CLI | Sì, con GUI e logica avanzata |
| Alert in Tempo Reale | No | Sì |
| Masking dei Dati | No | Masking Dinamico e Statico |
| Scoperta Dati | No | Scansione integrata dati sensibili |
| Mappatura della Conformità | Manuale | Automatizzata con Compliance Manager |
| Integrazione | Syslog, file | Email, Slack, MS Teams, SIEM |
Conclusione
Conoscere come eseguire l’audit di MongoDB significa utilizzare l’auditing Enterprise per i dettagli e DataSunrise per la prevenzione, il masking e l’automazione della conformità. Insieme, creano un approccio solido e stratificato alla sicurezza del database.