8 Minuten Lesezeit (1544 Worte)

MongoDB auf dem Security-Prüfstand: Ein Vergleich von Open Source und Enterprise Features

Die Sicherheit unserer Daten nimmt einen immer größeren Stellenwert in unserer heutigen Gesellschaft ein. Da weltweit viele namhafte Unternehmen, wie Google, Adobe und Verizon, MongoDB als Datenbanklösung verwenden, kommt die Frage auf: Wie sicher ist MongoDB eigentlich? 

Was ist MongoDB?

MongoDB ist eine hochleistungsfähige und skalierbare NoSQL-Datenbank. Sie ist dokumentenorientiert und wurde entwickelt, um den Anforderungen moderner Anwendungen gerecht zu werden. Im Gegensatz zu relationalen Datenbanken, basiert MongoDB auf einem flexiblen, schemaarmen Datenmodell. Die Speicherung der Daten erfolgt im BSON-Format. MongoDB kann auf verschiedene Arten betrieben werden:

  • Als Standalone-Datenbank
  • Als Replikationsset
  • Als Cluster

Insgesamt bietet MongoDB Anwendern eine flexible, skalierbare und performante Datenbanklösung.

Sicherheitsfunktionen für alle Nutzer

MongoDB ist nicht nur für seine hohe Leistungsfähigkeit und Skalierbarkeit bekannt, sondern bietet auch eine Reihe von Sicherheitsfunktionen, die allen Nutzern zugutekommen. Die Entwickler von MongoDB haben erkannt, dass der Schutz sensibler Daten von größter Bedeutung ist und deshalb umfangreiche Sicherheitsmaßnahmen in das Produkt implementiert. 

Authentifizierung und Autorisierung

Benutzerbasierte Authentifizierung

Ein wesentlicher Aspekt der Sicherheit bei jeder Art von digitaler Plattform oder Anwendung ist die Authentifizierung und Autorisierung der Benutzer. Die benutzerbasierte Authentifizierung gewährleistet den Zugriff auf bestimmte Ressourcen von autorisierten Benutzern. Dies bildet die Grundlage der IT-Sicherheit heute. Standardmäßig ist diese bei MongoDB deaktiviert. Um diese Funktion zu verwenden, müssen wir zunächst einen Admin-Account erstellen: 

db.createUser({
    user: "myUserAdmin",
    pwd: passwordPrompt(), // oder direkt hier Passwort eintragen
    roles: [
      { role: "userAdminAnyDatabase", db: "admin" },
      { role: "readWriteAnyDatabase", db: "admin" }]
})
 

 Danach muss der Prozess mongod, mit der Option "--auth" neugestartet werden:

db.adminCommand( { shutdown: 1 } )
exit mongosh
mongod --auth --port 27017 --dbpath /var/lib/mongodb
 

MongoDB unterstützt standardmäßig zwei Arten der Authentifizierung:

  • SCRAM: SCRAM ist ein Authentifizierungsprotokoll, das auf einem Challenge-Response-Mechanismus basiert. Um die Sicherheit der Authentifizierung zu erhöhen, verwendet es eine Kombination aus Salt (Zufallsdaten) und Challenge (Herausforderung). Der Server sendet eine zufällige Challenge an den Client, der sie mit dem Salt und dem Passwort des Benutzers verarbeitet und die Antwort zurücksendet. Wenn die Antwort des Clients mit der erwarteten Antwort des Servers übereinstimmt, gilt der Benutzer als authentifiziert.
  • x.509-Zertifikate: x.509-Zertifikate sind digitale Zertifikate, die zur Authentifizierung von Benutzern und zur Sicherung der Kommunikation verwendet werden. Sie basieren auf dem Public-Key-Infrastruktur (PKI)-Standard und verwenden asymmetrische Verschlüsselungstechniken. Ein Benutzer besitzt einen privaten Schlüssel und einen öffentlichen Schlüssel. Das Zertifikat wird von einer Zertifizierungsstelle ausgestellt und enthält den öffentlichen Schlüssel sowie Informationen über den Benutzer. Beim Authentifizierungsprozess gibt der Benutzer sein Zertifikat an. Der Server überprüft die Gültigkeit des Zertifikats, indem er es mit dem öffentlichen Schlüssel der ausstellenden Zertifizierungsstelle verifiziert. Hierzu ist eine TLS/SSL-Verbindung nötig.

Rollenbasierte Zugriffskontrolle

Die rollenbasierte Zugriffskontrolle (Role-Based Access Control, RBAC) ist eine wichtige Sicherheitsfunktion, die in vielen Systemen und Datenbanken, einschließlich MongoDB, eingesetzt wird. Sie ermöglicht die Verwaltung des Zugriffs auf Ressourcen, basierend auf den Rollen und Privilegien der Benutzer. In MongoDB werden Rollen verwendet, um verschiedene Arten von Zugriffsprivilegien zu verwalten. Eine Rolle kann eine Sammlung von Privilegien sein, die auf bestimmte Datenbanken, Sammlungen oder Aktionen innerhalb des Datenbanksystems angewendet werden können.

Die Privilegien in MongoDB umfassen Aktionen wie Find, Insert, Update, Remake und weitere administrative Operationen. Administratoren können genau festlegen, welche Aktionen Benutzer auf welchen Ressourcen ausführen dürfen. Diese Rollen können einzelnen Benutzern oder Benutzergruppen zugewiesen werden. Benutzer können sowohl einzeln dedizierte, als auch mehrere Rollen zugewiesen bekommen. Dies ermöglicht eine genaue Steuerung des Zugriffs, indem Benutzern nur die erforderlichen Privilegien zugewiesen werden müssen.

Die Zuweisung von Rollen kann auf Datenbank-, Sammlungs- oder Systemebene erfolgen. Dadurch können Administratorrechte auf Systemebene, Lese- und Schreibzugriff auf bestimmte Datenbanken oder spezifische Berechtigungen einzelnen Sammlungen zuordnen. Neben der rollenbasierten Zugriffskontrolle gestattet MongoDB auch eine attributbasierte Zugriffskontrolle (ABAC). Bei ABAC werden Zugriffsentscheidungen basierend auf den Attributen des Benutzers, der Ressource und der Umgebung getroffen. Die ABAC-Policy in MongoDB kann Attribute wie Benutzerrollen, Datenklassifizierungen, Standorte oder andere relevante Eigenschaften verwenden, um den Zugriff auf Ressourcen zu steuern.

Dadurch können spezifischere Zugriffsregeln definiert werden, die über die Rollen hinausgehen. ABAC bietet eine feinere Granularität bei der Zugriffskontrolle. Die Kombination aus rollenbasierter und attributbasierter Zugriffskontrolle ermöglicht es Administratoren, ein robustes und flexibles Zugriffskontrollsystem in MongoDB einzusetzen. Dies ermöglicht die genaue Steuerung des Zugriffs auf Ressourcen, basierend auf den Rollen, Privilegien und spezifischen Attributen der Benutzer, Ressourcen und Umgebungen. 

Verschlüsselung von Daten

Die Sicherheit der Datenübertragung ist ein weiterer essenzieller Bestandteil der Sicherheitsmaßnahmen, um sicherzustellen, dass Daten bei der Kommunikation mit dem Server, vor unbefugtem Zugriff geschützt sind. MongoDB bietet Mechanismen, um die Übertragung von Daten zwischen Clients und Datenbanken zu schützen. Ein wesentlicher Bestandteil ist hier die Verwendung von SSL/TLS (Secure Sockets Layer/Transport Layer Security) für die Verschlüsselung der Kommunikation zwischen Clients und Server. Die Aktivierung von SSL/TLS gewährleistet die Vertraulichkeit und Integrität der übertragenen Daten. Bei der Verwendung von SSL/TLS wird die Echtheit der Zertifikate überprüft, um Angriffe von außen, wie Man-in-the-Middle Angriffe, zu verhindern. MongoDB ermöglicht die Konfiguration der Zertifikatsüberprüfung, um sicherzustellen, dass nur vertrauenswürdige Zertifikate akzeptiert werden. Ebenso erlaubt MongoDB Zertifikats-Pinning zu benutzen, um sicherzustellen, dass die Verbindung nur zu einem vordefinierten Zertifikat hergestellt wird. Dies erhöht die Sicherheit und schützt vor Angriffen, bei denen ein Angreifer ein gültiges, jedoch nicht autorisiertes Zertifikat verwendet. 

Enterprise Sicherheitsfunktionen

Für Anwender der Enterprise-Version sind weitere Möglichkeiten zur Absicherung enthalten. Diese Funktionen wurden speziell entwickelt, um den besonderen Anforderungen von großen Unternehmen und Organisationen gerecht zu werden, die sensible und geschäftskritische Daten verwalten. 

Erweiterte Überwachung und Compliance

MongoDB bietet unter anderem erweiterte Überwachungsfunktionen im Enterprise-Paket. Diese Option ermöglicht die Definition und Erfassung benutzerdefinierter Audit-Ereignisse, um die Einhaltung von Sicherheitsrichtlinien und Vorschriften zu gewährleisten. Administratoren können die Überwachungseinstellungen anpassen und spezifische Ereignisse, wie den Zugriff auf bestimmte Daten oder Änderungen an der Datenbankstruktur, überwachen. Ereignisse und Aktivitäten können detailliert überwacht und protokolliert werden. Dies umfasst den Zugriff auf Datenbanken, Änderungen an Dokumenten, das Hinzufügen oder Entfernen von Benutzern und andere Datenbankoperationen. Die erweiterte Überwachung ermöglicht es, potenzielle Sicherheitsverletzungen oder unautorisierte Aktivitäten frühzeitig zu erkennen und entsprechende Maßnahmen zu ergreifen. 

LDAP- und Active Directory-Integration

MongoDB ermöglicht die Integration mit LDAP- und Active Directory-Diensten zur Vereinfachung der Authentifizierung und Autorisierung. Unternehmen können ihre bisherige Authentifizierungsinfrastruktur nutzen, sodass sich MongoDB in die bisherige IT-Landschaft einfach einbinden lässt. Die Integration von LDAP- und Active Directory ermöglicht die zentrale Verwaltung von Benutzern und deren Rechten. Demzufolge können Benutzerkonten in einer zentralen Verzeichnisstruktur verwaltet werden, wodurch die Verwaltungsaufgaben vereinfacht und Sicherheitsrichtlinien besser durchgesetzt werden können. Dies bietet nicht nur erhöhte Effizienz bei der Benutzerverwaltung, sondern auch eine gesteigerte Sicherheit, da die Benutzeridentitäten über bewährte Authentifizierungsmechanismen verwaltet und überprüft werden. 

Data redaction auf Feldebene

MongoDB ermöglicht die „dynamic redaction“ sensibler Daten in Dokumenten. Dies bedeutet, dass bestimmte Felder in einem Dokument während der Abfrage oder Ausgabe ausgeblendet oder maskiert werden können. Dadurch sind vertrauliche Informationen nur für autorisierte Benutzer sichtbar. Die Datenredaktion auf Feldebene ermöglicht den Schutz vertraulicher Informationen in Anwendungen, während diese weiterhin normal funktionieren, um Datenschutzanforderungen zu erfüllen und sensible Daten zu sichern. 

Verschlüsselung von Daten II

Zusätzlich zur Datenübertragungsverschlüsselung ist die Datenverschlüsselung eines der fundamentalsten Bestandteile der Sicherheitsmaßnahmen, um sicherzustellen, dass Daten vor unbefugtem Zugriff geschützt sind. MongoDB Enterprise bietet verschiedene Möglichkeiten, Daten auf Dateiebene zu schützen.

  • Transparente Feldverschlüsselung:
    Durch diese Option können bestimmte Felder in einer MongoDB-Datenbank verschlüsselt werden. Die Ver-/Entschlüsselung der Daten erfolgt transparent durch den MongoDB-Treiber, sodass Anwendungen weiterhin auf die Daten zugreifen können, ohne die Verschlüsselung selbst implementieren zu müssen.
  • Dateisystemverschlüsselung:
    Mit MongoDB können Daten auf Dateiebene geschützt werden, indem verschlüsselte Dateisysteme verwendet werden. Dadurch sind die Daten für Unbefugte nicht lesbar/nutzbar.
  • Externe Anbieter für die Speicherverschlüsselung:
    MongoDB ermöglicht die Integration mit externen Verschlüsselungsanbietern, um die Sicherheit der Daten auf einem noch höheren Level zu gewährleisten. Diese Anbieter ermöglichen die Implementierung fortgeschrittener Verschlüsselungsmechanismen und Schlüsselverwaltungsoptionen.

Security Checklist

Um die optimalen Sicherheitsfunktionen von MongoDB zu nutzen und eine hohe Datenintegrität zu gewährleisten, ist es wichtig, eine umfassende Sicherheitscheckliste zu befolgen. Diese Checkliste umfasst bewährte Verfahren und Empfehlungen, um potenzielle Sicherheitslücken zu identifizieren und zu beheben. Eine eben solche Security Checklist bietet MongoDB selbst auf ihrer Website an. Sie ist ein nützliches Werkzeug für Entwickler und Datenbankadministratoren, um sicherzustellen, dass ihre MongoDB-Implementierung optimal gesichert ist. Der Leitfaden dient zur Absicherung verschiedener Aspekte der Datenbank, einschließlich Zugriffskontrollen, Netzwerksicherheit und Auditing. Die MongoDB Security Checklist sollte am besten von Anfang an in den Entwicklungsprozess integriert werden. 

Fazit

MongoDB bietet eine Vielzahl von Sicherheitsfunktionen. Darunter befinden sich Authentifizierung, Autorisierung, rollenbasierte Zugriffskontrolle und Datenverschlüsselung.

Durch die benutzerbasierte Authentifizierung wird sichergestellt, dass nur autorisierte Benutzer auf bestimmte Ressourcen zugreifen können. Die rollenbasierte Zugriffskontrolle ermöglicht eine gezielte Verwaltung der Zugriffe, basierend auf den Rollen und Privilegien der Benutzer. Die Datenverschlüsselung schützt Daten während der Übertragung. Um die eigene MongoDB-Infrastruktur optimal abzusichern, empfiehlt sich die Befolgung der MongoDB Security Checklist. Bei komplexeren IT-Infrastrukturen kann sich der Einsatz der Enterprise-Version lohnen, da diese weitere Security-Features zur Verfügung stellt. MongoDB bietet eine leistungsstarke und skalierbare Datenbanklösung mit umfangreichen Sicherheitsfunktionen. Die fortlaufenden Entwicklungen und Verbesserungen von MongoDB eröffnen eine vielversprechende Perspektive für einen sicheren Betrieb dieser Datenbanklösung in Unternehmen und Organisationen.

Falls dieser Artikel Ihr Interesse an MongoDB geweckt hat oder Sie schon immer die Möglichkeit nutzen wollten, mit dieser fortschrittlichen Datenbanklösung zu arbeiten, haben wir genau das Richtige für Sie! In unserem Webinar MongoDB Quickstart erhalten Sie einen Überblick über die wichtigsten Eigenschaften von MongoDB und lernen erste Kommandos kennen, um die Datenbank zu verwalten und zu nutzen. 

Seminarempfehlungen

Daniel Simon hat noch keine Informationen über sich angegeben
 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Donnerstag, 02. Mai 2024

Sicherheitscode (Captcha)

×
Informiert bleiben!

Bei Updates im Blog, informieren wir per E-Mail.

Weitere Artikel in der Kategorie