MongoDB Sicherheit [geschlossen]

8

Ich suche nach "Best Practices für die Sicherheit" für einen MongoDB-Server, abgesehen von den bewährten Sicherheitsmethoden für "allgemeine" Server. Könnten Sie mich auf nützliche Ressourcen hinweisen?

    
sonnuforevis 27.11.2011, 15:50
quelle

4 Antworten

10

Was grundsätzlich getan werden muss, ist

Authentifizierung aktivieren

Öffnen Sie die mongoDB-Shell

%Vor%

(WICHTIG: Sie benötigen einen Administrator, bevor Sie die Authentifizierung aktivieren, sonst verlieren Sie den Zugriff auf Daten).

Bearbeiten Sie nun die mongodb-Konfigurationsdatei sudo vi /etc/mongodb.conf

und Kommentar auskommentieren auth=true . Speichere es und starte mongo db sudo service mongodb restart

neu

Binde mongoDB an ein vertrauenswürdiges Netzwerk oder eine Maschine an

Bearbeiten Sie die mongoDB-Konfigurationsdatei und fügen Sie bind_ip = 127.0.0.1 oder eine durch Kommas getrennte Liste von IPs hinzu, die eine Verbindung zu mongoDB herstellen können. Dann neu starten.

Weitere Informationen finden Sie auf meiner Website hier

    
Manu 28.11.2012 08:21
quelle
7

Sicherheitsbedenken sind immer spezifisch für eine Anwendung. Es ist wirklich nicht möglich, diese Frage allgemein zu beantworten.

Häufig sind Anwendungen, die auf NOSQL-Datenbanken basieren, anfällig für OWASP A4 - Unsichere direkte Objektreferenz . Es sollte beachtet werden, dass der _ID -Wert keine kryptografische Nonce ist, dieser Wert hängt stark von einem Zeitstempel ab und es ist für einen Angreifer ziemlich einfach, diese Werte zu erraten.

Ein weiteres häufiges Problem ist CWE-602 - clientseitige Durchsetzung der Serverseite . Der Client ist niemals vertrauenswürdig. Wenn er direkt mit der Datenbank interagiert, besitzt er die Datenbank Punkt .

    
rook 27.11.2011 19:28
quelle
5

Es gibt zwei Ansätze:

  1. install mongodb ohne --auth Option in einer vertrauenswürdigen Umgebung. Normalerweise ist es ein lokales Netzwerk, in dem Anwendung, Datenbank installiert ist. Server außerhalb dieses Netzwerks haben keinen Zugriff auf mongodb und andere Ressourcen.
  2. install mongodb mit --auth Option in einer Umgebung, in der mongodb Ports nicht von der Firewall blockiert werden und jeder darauf zugreifen kann.

Weitere Details zur Sicherheit finden Sie hier .

    
Andrew Orsich 27.11.2011 17:18
quelle
2

Angenommen, Sie haben einen Webdienst, der mit der MongoDB interagiert

  • Der Server verdient nur Rechte, Sie benötigen eine reguläre Anmeldung, damit der Server Zugriffsrechte mit einem Client über eine Sitzung koppeln kann. Auf diese Weise sollten Sie Rechteschmiede vermeiden.

  • Filtern Sie alle Clientanforderungen. Das ist ziemlich einfach, da die Mongo-Anfragen ein jSON sein sollen, könnten Sie entweder den jSON auf ein spezifisches Schema beschränken und die Anfrage mit überladen Einschränkungen / Einschränkungen. Beachten Sie, dass der Server die Anfrage mit den Variablen der Sitzung überlädt. Dies kann sowohl für Zugriffsbeschränkungen als auch um zu vermeiden, dass der Client schwere Anfragen sendet, die Ihr System überlasten.

  • Filtern Sie das Ergebnis zurück, "schneiden Sie den Baum ab". Dies könnte eine letzte Überprüfung sein, wenn Sie beispielsweise zustimmen, dass der Name des Benutzers, aber nicht seine ID zurückgegeben wird. Dies gesagt, ist dies eher ein weiterer Schritt über das Filtern der Client-Anfrage.

  • Verwenden Sie eine https-gesicherte Verbindung. Dies stellt sicher, dass Ihr Kunde mit dem richtigen Server spricht, aber auch mit Ihrem Server, um immer noch mit demselben Client zu sprechen (keine Entführung in der Theorie).

  • Vermeiden Sie es, alle Informationen zusammen zu stapeln, versuchen Sie so viel wie möglich mit Modellen, so dass Sie Klarheit gewinnen, aber auch vermeiden, dass sensible Informationen am falschen Ort gespeichert werden.

Flavien Volken 15.12.2011 12:54
quelle

Tags und Links