Frage

Wenn ich einen Server mit einer Datenbank von streng geheimen Daten in PostgreSQL und mein Passwort ist praktisch unmöglich zu erraten (128 Zeichenfolge aller möglichen seltsamen Zeichen, von Hand erzeugt werden). Das Server-Passwort ist auch praktisch unguessable.

Neben einem Passwort zu erraten, wie einfach es ist, die Daten aus dieser Datenbank zu bekommen?

Annahmen:

  1. Nur besteht die DB auf dem Server. Es gibt kein Passwort in einem PHP-Skript oder so etwas
  2. Die Person, die die Server gestohlen ist ein Server / DB / Festplatten-Recovery-Experte
  3. Ich verwende keine Festplattenverschlüsselung oder etwas aus der Norm für den Schutz
  4. Ich bin mit Ubuntu Hardy (letzte stabile Version)

Ich versuche, die Risiken im Zusammenhang mit jemandem gewinnt die physischen Zugang zu meinem Server der Festplatten beteiligt zu verstehen.

War es hilfreich?

Lösung

„Der Standard Gedanke ist, wenn jemand auf dem Server setzt mich, es gefährdet ist, Ende der Geschichte. Dinge nur noch schlimmer, wenn sie die Festplatte greifen und es zu einem Labor nehmen für die Öffnung und Analyse.“

Ditto.

Sobald ein Angreifer permanent physischen Zugriff hat (das heißt, er ging aus dem Gebäude mit der Festplatte in seiner Aktentasche), das Spiel ist aus - davon ausgehen, dass kompromittiert in der Zeit werden die Daten. Von dort ist das Szenario, die Kosten für die Verzögerungstaktik gegen die Fähigkeit, den Angreifer zu verlangsamen.

Es ist ein wenig anders, wenn der Angreifer ein Insider ist, oder nur temporären Zugriff hat. In diesen Fällen können Sie möglicherweise ihn genug verlangsamen oder Kraft Verantwortlichkeit, so dass der Angriff unmöglich wird.

Festplattenverschlüsselung ist eine Verzögerungstaktik - es wird Schutz geben, die die Stärke des Algorithmus übereinstimmt, Stärke des Schlüssels, und die Stärke des Passworts Verriegelungs Zugriff auf den Schlüssel (oder die Fähigkeit, Hardware mit dem Schlüssel separat gespeichert einfügen ). Auch mit Verschlüsselung ist die Annahme, dass es sich um eine Verzögerungstaktik ist. Früher oder später bekommt der Angreifer durch den Schlüsselraum und herauszufinden, was Schlüssel entschlüsselt das System.

Originalitäts ist eine weitere Option - eine Möglichkeit, elektronisch zu löschen die Festplatte unter bestimmten Bedingungen zu finden (wie physikalisch es vom Fall zu entfernen).

Abbildung, dass, sobald physischer Zugriff gewährt wird, kann der Angreifer Ihre Passwörter umgehen - wie stark sie sind - ohne zu brutalen Gewalt zurückzugreifen. Die erste in den Sinn kommt, wird mit den „Passwort reparieren“ Techniken, die die meisten Systeme in Admins Hilfe gebaut sys, die haben gesperrt und verlorene Passwörter.

Jede und alle Schutz kommen mit einem Preis - Originalitäts ist teuer, da Sie Spezialität Hardware benötigen. Die Verschlüsselung kann billiger sein, aber es wirkt sich Boot-Zeit. Außerdem habe ich einige unangenehme Überraschungen gesehen, mit wie Verschlüsselung spielt mit Anwendungen -. Sie nie wirklich wissen, bis Sie versuchen, es zu verwenden,

Andere Tipps

Der Standard Gedanke ist, wenn jemand auf dem Server setzt sich, es gefährdet ist, Ende der Geschichte. Dinge nur noch schlimmer, wenn sie die Festplatte greifen und es zu einem Labor nehmen für die Öffnung und Analyse.

Ich würde beginnen mit Vollplattenverschlüsselung sowie pro-Feld Verschlüsselung in der Datenbank. Sie aussehen könnte, um zu sehen, ob es einen Weg gibt, einen biometrischen basierten Zugriff auf die Festplatte Hardware auf dem Server installiert sein. Außerdem möchten Sie eine physische Sicherheit Auftragnehmer graben und ihre Empfehlungen für die Konfiguration zu erhalten; auch Wachen mieten.

Ich meine, wenn dies ein Szenario, das einigermaßen ...

passieren könnte

edit:

Wenn ich eine Postgres DB-Datei habe ich in bekommen wollte und ich hatte die Ressourcen (dh die Ausgaben 4K für einige billigen Dells), würde ich eine Beowulf-Konfiguration verwenden und führe parallel Brute-Force-Cracking. Die Dinge werden schlimmer, wenn ich mehr Geld haben, starten und konfigurieren können, sagen wir, einige dieser süßen NVidia Supercomputer-on-Desktop-Maschinen angeschlossen, um wirklich Brute-Forcing ein Passwort zu starten.

Wenn der Dieb ernst ist in sie bekommen, und Sie haben nicht die Sicherheit schon von Tag geplant 0, Ihre DB-Datei wie eine Sardinenbüchse geöffnet werden wird.

Wenn Sie nicht auf die Festplatte / Dateisystem verschlüsseln, sind Sie ziemlich viel Glück, wie Postgres bietet keine nativen Verschlüsselung. Und die Festplatte verschlüsselt ist die einzige wirkliche Methode des Schutzes für einen gestohlenen Server.

Im Grunde, was würden Sie tun müssen, ist die Festplatte oder Dateisystem verschlüsseln, und würden Sie das Passwort eingeben müssen, wenn Sie das Laufwerk mounten, mit der Hand jedes Mal die Maschine startet, bevor Postgres Brände.

Dieser Artikel scheint zu Ihrer Frage besonders relevant zu sein:

Absolute Sicherheit in einer PostgreSQL-Datenbank
http://www.ibm.com/developerworks/opensource/library/os -postgresecurity /

Ich glaube nicht, das ist ein Problem, PostgreSQL oder beliebige andere Datenbankadressen. Selbst wenn die Datenbank seiner selbst ist durch ein Passwort alle Daten geschützt ist im Klartext und das ist, was wirklich zählt. Nichts hindert den Angreifer von cat'ing die rohe Datenbankdatei und obwohl Strings kochend. Die beste Lösung für diese Art von Angriffen ist ein verschlüsseltes Dateisystem zu verwenden. Dies würden Sie benötigt ein Passwort eingeben, um die Partition zu montieren. Dies erhöht auch Overhead.

Für die spezifische Frage gestellt (und die, die ich kam nach einer Antwort auf die Suche), Postgresql standardmäßig speichert Tabellendaten unverschlüsselt. Umsah in Dateien in ... / pgsql / 9.2 / data / base / * ich, dass diese Speicher Tabellen in 1,1 Gigabyte Stücke erraten würde, und ich erfolgreich ASCII-Strings in diesen Dateien mit grep finden. Von Einsicht in die Akten geht hervor, dass die Daten in den Spalten gespeichert ist.

Aus dieser Information glaube ich, dass ich experimentieren konnte und Code schreiben, um die Tabellen Reverse-Engineering eine Kopie auf einem Server zu erstellen, die ich für das Passwort nicht habe.

Daher ist auf einem starken Datenbankkennwort unter Berufung allein nicht Ihre Sorgfaltspflicht erfüllen, wenn Sie sich gegen das Risiko der physischen Medien schützen müssen gestohlen werden.

PostgreSQL Online-Dokumentation einige Optionen bieten für Daten auf verschiedenen Ebenen zu verschlüsseln, die für dieses Problem scheint für die Verschlüsselung von bestimmten Spalten oder Verschlüsseln der zugrunde liegenden Medien in irgendeiner Weise auf ein Modul beschränkt werden als andere Befragte vorgeschlagen haben.

Ein guter Start ist Full-Disk-Verschlüsselung zu aktivieren. Sie können auch auf der Anwendungsebene verschlüsseln. (Zum Beispiel Daten verschlüsseln, bevor Sie es an die Datenbank senden, speichern Sie die Schlüssel nicht zugänglich von dem Datenbankserver)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top