Wie sicher ist eine PostgreSQL-Datenbank, wenn mein Server gestohlen wird?

8

Wenn ich einen Server mit einer Datenbank von streng geheimen Daten in PostgreSQL habe und mein Passwort ist praktisch unmöglich zu erraten (128 Zeichen-String aller Arten von seltsamen Zeichen, von Hand generiert). Das Serverpasswort ist auch praktisch nicht zu erkennen.

Wie leicht ist es, abgesehen von einem Passwort-Erraten, die Daten aus dieser Datenbank zu holen?

Annahmen:

  1. Nur die DB existiert auf dem Server. Es gibt kein Passwort in einem PHP-Skript oder ähnliches
  2. Die Person, die den Server gestohlen hat, ist ein Server / DB / Festplattenwiederherstellungsexperte
  3. Ich verwende keine Festplattenverschlüsselung oder etwas, das nicht zum Schutz gehört
  4. Ich benutze Ubuntu Hardy (neueste stabile Version)

Ich versuche die Risiken zu verstehen, die mit jemandem verbunden sind, der physischen Zugriff auf die Festplatten meines Servers erhält.

    
orokusaki 12.05.2010, 16:32
quelle

7 Antworten

4

"Der Standardgedanke ist, wenn sich jemand auf den Server setzt, es ist kompromittiert, Ende der Geschichte. Die Dinge werden nur noch schlimmer, wenn sie die Festplatte nehmen und in ein Labor zum Öffnen und Analysieren bringen." / em>

Dito.

Sobald ein Angreifer einen permanenten physischen Zugriff hat (d. h. er ist mit seiner Festplatte in seinem Aktenkoffer aus dem Gebäude gegangen), ist die Vorrichtung hochgefahren - gehen Sie davon aus, dass die Daten mit der Zeit kompromittiert werden. Von hier aus ist das Szenario die Kosten der Verzögerungstaktik gegenüber der Fähigkeit, den Angreifer zu verlangsamen.

Es ist ein bisschen anders, wenn der Angreifer ein Insider ist oder nur temporär Zugang hat. In diesen Fällen könntest du ihn möglicherweise genug verlangsamen oder Rechenschaftspflicht erzwingen, so dass der Angriff undurchführbar wird.

Festplattenverschlüsselung ist eine Verzögerungstaktik - sie bietet einen Schutz, der der Stärke des Algorithmus, der Stärke des Schlüssels und der Stärke des Kennwortsperrzugriffs auf den Schlüssel entspricht (oder die Möglichkeit, Hardware mit separat gespeichertem Schlüssel einzusetzen) ). Selbst bei Verschlüsselung wird davon ausgegangen, dass es sich um eine Verzögerungstaktik handelt. Früher oder später wird der Angreifer den Schlüsselraum durchqueren und herausfinden, welcher Schlüssel das System entschlüsselt.

Manipulationsschutz ist eine weitere Option - eine Möglichkeit zu finden, die Festplatte unter bestimmten Bedingungen elektronisch zu löschen (z. B. physisch aus dem Gehäuse zu entfernen).

Abbildung: Sobald der physische Zugriff gewährt ist, kann der Angreifer Ihre Kennwörter - wie stark sie auch immer sind - umgehen, ohne auf rohe Gewalt zurückgreifen zu müssen. Die erste, die mir in den Sinn kommt, ist die Verwendung der "fix the password" -Techniken, die die meisten Systeme eingebaut haben, um sys-Admins zu helfen, die ausgesperrt haben & amp; verlorene Passwörter.

Jeder Schutz ist mit einem Preis verbunden - Manipulationen sind teuer, da Sie Spezialhardware benötigen. Die Verschlüsselung kann billiger sein, hat aber Auswirkungen auf die Startzeit. Außerdem habe ich einige böse Überraschungen erlebt, wie die Verschlüsselung mit Anwendungen funktioniert - Sie wissen es nie wirklich, bis Sie versuchen, es zu benutzen.

    
bethlakshmi 12.05.2010, 19:05
quelle
3

Der Standardgedanke ist, wenn sich jemand auf den Server setzt, ist es kompromittiert, Ende der Geschichte. Die Dinge werden nur noch schlimmer, wenn sie die Festplatte greifen und sie zu einem Labor bringen, um sie zu öffnen und zu analysieren.

Ich würde anfangen mit der Verschlüsselung für ganze Laufwerke sowie mit der Verschlüsselung pro Feld in der Datenbank. Sie können sich nachsehen, ob es einen biometrischen Zugriff auf die Festplattenhardware gibt, die auf dem Server installiert ist. Außerdem möchten Sie einen Auftragnehmer für physische Sicherheit ausgraben und seine Empfehlungen für die Konfiguration erhalten. Stellen Sie auch Wächter ein.

Ich meine, wenn dies ein Szenario ist, das vernünftigerweise passieren könnte ...

bearbeiten:

Wenn ich eine Postgres-DB-Datei hätte, in die ich mich begeben wollte, und ich hatte die Ressourcen (z. B. 4K für einige billige Dells ausgeben), würde ich eine Beowulf-Konfiguration verwenden und paralleles Brute-Force-Cracken durchführen. Die Dinge verschlechtern sich, wenn ich mehr Geld habe und, sagen wir mal, einige dieser netten NVidia-Supercomputer-auf-Desktop-Rechner konfigurieren kann, die wirklich starten, um ein Passwort zu erzwingen.

Wenn der Dieb es ernst meint und Sie keine Sicherheit von Tag 0 an haben, wird Ihre DB-Datei wie eine Sardinendose geöffnet.

    
Paul Nathan 12.05.2010 17:02
quelle
2

Wenn Sie die Festplatte / das Dateisystem nicht verschlüsseln, haben Sie ziemlich viel Glück, da Postgres keine native Verschlüsselung bietet. Und die Verschlüsselung der Festplatte ist die einzige echte Schutzmethode für einen gestohlenen Server.

Grundsätzlich müssen Sie die Festplatte oder das Dateisystem verschlüsseln, und Sie müssen das Passwort eingeben, wenn Sie das Laufwerk bei jedem Start des Geräts manuell einlegen, bevor Postgres gestartet wird.

>     
Will Hartung 12.05.2010 17:05
quelle
1

Dieser Artikel scheint für Ihre Frage besonders relevant zu sein:

Vollständige Sicherheit in einer PostgreSQL-Datenbank
Ссылка

    
Robert Harvey 12.05.2010 16:53
quelle
1

Ich denke nicht, dass PostgreSQL oder andere Datenbankadressen ein Problem sind. Selbst wenn die Datenbank selbst passwortgeschützt ist, sind alle Daten im Klartext und das ist was wirklich zählt. Nichts hält den Angreifer davon ab, die rohe Datenbankdatei zu erfassen und sie über Strings zu leiten. Die beste Lösung für diese Art von Angriff ist die Verwendung eines verschlüsselten Dateisystems. Dies würde erfordern, dass Sie ein Passwort eingeben, um die Partition zu mounten. Dies erhöht auch den Overhead.

    
rook 12.05.2010 17:02
quelle
1

Für die spezifische Frage, die geschrieben wurde (und die, auf die ich nach einer Antwort suchte), speichert Postgresql standardmäßig die Tabellendaten unverschlüsselt. In Dateien in ... / pgsql / 9.2 / data / base / * schauen Ich würde vermuten, dass diese Tabellen in 1.1 Gigabyte Chunks speichern, und ich kann ASCII-Strings in diesen Dateien mit grep erfolgreich finden. Bei der Überprüfung der Dateien scheint es, dass die Daten in Spalten gespeichert sind.

Aufgrund dieser Informationen glaube ich, dass ich experimentieren und Code schreiben könnte, um die Tabellen zurückzuentwickeln, um eine Kopie auf einem Server zu erstellen, für den ich kein Passwort habe.

Wenn Sie sich also auf ein starkes Datenbankkennwort verlassen, erfüllt dies nicht Ihre Sorgfaltspflicht, wenn Sie vor dem Risiko des Diebstahls physischer Medien schützen müssen.

PostgreSQL-Online-Dokumente bieten einige Optionen zum Verschlüsseln von Daten auf verschiedenen Ebenen, die für dieses Problem offenbar auf ein Modul zum Verschlüsseln bestimmter Spalten beschränkt sind oder das zugrunde liegende Medium in irgendeiner Weise verschlüsseln, wie es von anderen Befragten vorgeschlagen wurde.

    
robm 20.05.2015 08:37
quelle
1

Ein guter Anfang ist die vollständige Festplattenverschlüsselung. Sie können auch auf der Anwendungsebene verschlüsseln. (z. B. Daten verschlüsseln, bevor Sie sie an die Datenbank senden, speichern Sie den Schlüssel, auf den vom Datenbankserver nicht zugegriffen werden kann)

    
jorfus 07.10.2015 00:48
quelle