Die Ultimative Checkliste für MongoDB-Sicherheit

MongoDB ist eine beliebte NoSQL-Datenbank, die viele Funktionen für Entwickler bietet, um moderne Anwendungen zu erstellen. Wie jede andere Datenbank ist es jedoch wichtig, Ihre MongoDB-Installation abzusichern, um sensible Daten zu schützen und unbefugten Zugriff zu verhindern. In diesem Tutorial werden wir eine Sicherheitscheckliste durchgehen, die Ihnen hilft, Ihre MongoDB-Installation abzusichern.

Vor der Produktion/Überlegungen

  1. Zugriffskontrolle aktivieren und Authentifizierung durchsetzen

    Der erste Schritt zur Absicherung Ihrer MongoDB-Installation besteht darin, Zugriffskontrolle zu aktivieren und einen Authentifizierungsmechanismus zu spezifizieren. MongoDB unterstützt mehrere Authentifizierungsmechanismen, die Clients verwenden können, um ihre Identität zu überprüfen, einschließlich SCRAM, x.509-Zertifikatsauthentifizierung, LDAP-Proxy-Authentifizierung und Kerberos-Authentifizierung. Sie können Zugriffskontrolle aktivieren und einen Authentifizierungsmechanismus spezifizieren, indem Sie den Anweisungen in der MongoDB-Dokumentation folgen.

  2. Konfiguration rollenbasierter Zugriffskontrolle

    Erstellen Sie zuerst einen Benutzeradministrator und erstellen Sie dann zusätzliche Benutzer. Erstellen Sie für jede Person/Anwendung, die auf das System zugreift, einen eindeutigen MongoDB-Benutzer. Befolgen Sie das Prinzip des geringsten Privilegs, erstellen Sie Rollen, die die genauen Zugriffsrechte definieren, die von einer Gruppe von Benutzern benötigt werden, und erstellen Sie dann Benutzer und weisen Sie ihnen nur die Rollen zu, die sie benötigen, um ihre Operationen durchzuführen. Ein Benutzer kann eine Person oder eine Clientanwendung sein.

  3. Kommunikation verschlüsseln (TLS/SSL)

    Konfigurieren Sie MongoDB, um TLS/SSL für alle eingehenden und ausgehenden Verbindungen zu verwenden. Verwenden Sie TLS/SSL, um die Kommunikation zwischen mongod und mongos-Komponenten einer MongoDB-Bereitstellung sowie zwischen allen Anwendungen und MongoDB zu verschlüsseln. Sie können MongoDB konfigurieren, um TLS/SSL zu verwenden, indem Sie den Anweisungen in der MongoDB-Dokumentation folgen.

  4. Daten verschlüsseln und schützen

    Sie können Daten in der Speicherebene mit der nativen Encryption-at-Rest-Funktion des WiredTiger-Speicher-Engine verschlüsseln. Wenn Sie die Encryption-at-Rest-Funktion von WiredTiger nicht verwenden, sollten MongoDB-Daten auf jedem Host mit Dateisystem-, Geräte- oder physischer Verschlüsselung verschlüsselt werden. Sie sollten MongoDB-Daten auch mit Dateisystemberechtigungen schützen. MongoDB-Daten umfassen Datendateien, Konfigurationsdateien, Überwachungsprotokolle und Schlüsseldateien. Sie können Queryable Encryption oder Client-seitige Feldverschlüsselung verwenden, um Felder in Dokumenten anwendungsseitig vor der Übertragung von Daten über das Netzwerk an den Server zu verschlüsseln. Sammeln Sie Protokolle in einem zentralen Protokollspeicher. Diese Protokolle enthalten Datenbankauthentifizierungsversuche einschließlich Quell-IP-Adressen.

  5. Netzwerkexposition begrenzen

    Stellen Sie sicher, dass MongoDB in einer vertrauenswürdigen Netzwerkumgebung ausgeführt wird, und konfigurieren Sie Firewall- oder Sicherheitsgruppen, um den ein- und ausgehenden Datenverkehr für Ihre MongoDB-Instanzen zu kontrollieren. Deaktivieren Sie direkten SSH-Rootzugriff. Erlauben Sie nur vertrauenswürdigen Clients den Zugriff auf die Netzwerkschnittstellen und Ports, auf denen MongoDB-Instanzen verfügbar sind.

  6. Systemaktivitäten überwachen

    Verfolgen Sie den Zugriff und Änderungen an Datenbankkonfigurationen und -daten. MongoDB Enterprise umfasst eine Systemüberwachungsfunktion, die Systemereignisse (einschließlich Benutzeroperationen und Verbindungsvorgänge) auf einer MongoDB-Instanz aufzeichnen kann. Diese Überwachungsprotokolle ermöglichen forensische Analysen und ermöglichen es Administratoren, angemessene Kontrollen auszuüben.

  7. MongoDB mit einem dedizierten Benutzer ausführen

    Führen Sie MongoDB-Prozesse mit einem dedizierten Betriebssystembenutzerkonto aus. Stellen Sie sicher, dass das Konto Berechtigungen zum Zugriff auf Daten hat, jedoch keine unnötigen Berechtigungen.

  8. MongoDB mit sicheren Konfigurationsoptionen ausführen

    MongoDB unterstützt die Ausführung von JavaScript-Code für bestimmte serverseitige Operationen: mapReduce, $where, $accumulator und $function. Wenn Sie diese Operationen nicht verwenden, deaktivieren Sie das serverseitige Skripting mit der --noscripting-Option. Behalten Sie die Eingabevalidierung aktiviert. MongoDB aktiviert standardmäßig die Eingabevalidierung durch die net.wireObjectCheck-Einstellung. Dadurch wird sichergestellt, dass alle von der mongod-Instanz gespeicherten Dokumente gültiges BSON sind.

  9. Eine Security Technical Implementation Guide anfordern (sofern zutreffend)

    Das Security Technical Implementation Guide (STIG) enthält Sicherheitsrichtlinien für Bereitstellungen im United States Department of Defense. MongoDB Inc. stellt seinen STIG auf Anfrage zur Verfügung.

  10. Compliance mit Sicherheitsstandards in Betracht ziehen

    Für Anwendungen, die die Einhaltung von HIPAA oder PCI-DSS erfordern, konsultieren Sie die MongoDB Security Reference Architecture, um mehr darüber zu erfahren, wie Sie die wichtigsten Sicherheitsfunktionen von MongoDB nutzen können, um eine konforme Anwendungsinfrastruktur aufzubauen.


Tags:
MongoDB