Best practice zum speichern von Datenbank-Passwort
Ich bin bei der Entwicklung einer benutzerdefinierten server-Anwendung, die den Zugriff auf eine Datenbank. Ich brauche, um zu entscheiden, wo ich die Anmeldeinformationen speichern (und Adresse) auf diesem server.
Eine gemeinsame Lösung ist, um die Anmeldeinformationen in einer config-Datei. Aber ich will nicht einen manipulierten server zu bedeuten, dass die hacker Zugriff auf die DB (die gehostet wird auf einem separaten server).
Konnte ich beim speichern der Anmeldeinformationen in der Umgebung, aber das ist nur security through obscurity. Mr. Evil kann schauen Sie einfach in die Umgebung, um es zu finden.
Jemand schlug vor, die Verschlüsselung. Wenn ich allerdings speichern die Schlüssel in der ausführbaren Datei, die eine schnelle de-kompilieren (wir sind die mit Java) und ich bin trotzdem zum scheitern verurteilt.
Möchte ich auch vermeiden, geben Sie eine paraphrase jedes mal, wenn ich den server starten.
Irgendwelche Vorschläge? Ich fühle mich wie ich bin etwas fehlt einfach.
Dank
- So Sie möchten, dass Ihre Anwendung haben Zugriff auf die Anmeldeinformationen aber ein hacker, der hat root-Zugriff auf die Maschine zu, der Zugriff verweigert?
- Wenn Sie nicht geben Sie einen - passphrase jedes mal, wenn Sie starten Sie den server dann Herr Böse nicht tun, entweder, was bedeutet, dass jeder, der Zugang zu den Servern Stelle in der Lage sein, um Zugriff haben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass etwas fehlt einfach. Entweder ist der betreffende server mit der Datenbank verbinden, ohne Ihre Hilfe, in dem Fall ist es hat die Anmeldeinformationen; oder es kann keine Verbindung ohne Ihre Versorgung. Sie können verschiedene Maßnahmen ergreifen, wie diejenigen, die Sie aufgeführt haben, um es härter für einen kompromittierten server um zu zeigen Sie die Anmeldeinformationen für die Datenbank, aber am Ende des Tages, wenn es um diejenigen, die Anmeldeinformationen und liefern Sie an den DB-server zu verbinden, müssen Sie gespeichert werden irgendwo — oder, zumindest, es wird über einige Mittel, Sie zu erhalten, und so wird hackable in diesem Sinne.
Ihre beste Wette ist, sich auf die Suche nach Informationen über Intrusionen (kompromittierten Servern) so schnell wie möglich, halten gute off-site, off-line-sicherungen für den schlimmsten Fall, setzen viele Hindernisse zu intrusion in den ersten Platz, etc.
Bin ich teilen, wie ich hatte dies Problem gelöst.
Aber, ehrlich gesagt die einzige Sache, die dies Tat, war über erschweren einfache Dinge. Danach habe ich mehrere Benutzer auf die Datenbank, mit unterschiedlichen Privilegien.
Wie
guest
können nurSELECT
mod
können nurCREATE
,INSERT
,UPDATE
,DELETE
etc und wechselte den Benutzer, wenn authentifizierte Benutzer erschienen.
Lock it down. Verhindern, dass Mr. Evil aus root. Ich weiß, einfach nicht wahr?
Schreiben Sie eine sichere Anwendung und halten Sie Ihr application server gesperrt. Folgen Sie best-practices gibt es, und das ist die meiste Arbeit.
Wenn ich setup Datenbanken in einer sicheren Umgebung, der einzige server auf dem gleichen physischen Netzwerk mit dem Datenbank-server wurde der application server. Es gab zwei Möglichkeiten zum Zugriff auf den Datenbank-server:
Deshalb, um eine Gefährdung der Datenbank-server ist, hätten Sie eine Gefährdung der application server.
So, sperren der Anwendung-server. Natürlich ist das einzige, was schlimmer ist als kompromittiert ist kompromittiert und nicht es zu wissen. Wenn Sie entdecken, einen Kompromiss zu finden, die Sie benötigen, um die Sicherheitslücke zu beheben, wenn es eins war. Forensik die hier wichtig sind (aktivieren Sie die Protokolle, und überwachen Sie). Sie müssen auch einen recovery-plan in Kraft.
Prävention, Aufdeckung, Berichtigung und Wiederherstellung, die vorrangig sind.