Zum Inhalt springen
Categoria: Hardening8 Min. Lesezeit

Datenbank-Härtung: PostgreSQL und MySQL in Produktion

Por Lucas Andrade ·

Verteidiger-Leitfaden zur Härtung von PostgreSQL und MySQL in Produktion: Authentifizierung, Netzisolation, geringste Rechte, Verschlüsselung, Erkennung.

In diesem Artikel

Eine Produktionsdatenbank ist der Ort, an dem die Kronjuwelen liegen, was die Datenbank-Härtung zu einer der wirkungsvollsten Aktivitäten macht, in die ein Verteidigungsteam investieren kann. PostgreSQL und MySQL sind beide robust und beide legen im Standard- oder hastig konfigurierten Zustand mehr offen, als sie sollten. Dieser Leitfaden nimmt die Blue-Team-Sicht ein: Er erklärt die Angriffsfläche einer Produktionsdatenbank, wie Angriffe auf Datenspeicher auf hoher Ebene ablaufen und — der Kern — die konkreten Kontrollen, Telemetrie und Erkennungen, die die Daten vertraulich, intakt und verfügbar halten. Der Rahmen ist durchgehend: verstehen, um zu verteidigen, nicht um auszunutzen.

Warum Datenbank-Härtung wichtig ist#

Anwendungen werden gepatcht, Firewalls bekommen Regeln und Endpunkte bekommen EDR, doch die Datenbank sitzt oft dahinter mit einer standardmäßig vertrauenden Haltung. Genau deshalb wird sie angegriffen: Eine einzige schwache Anmeldeinformation, ein überprivilegiertes Anwendungskonto oder ein unverschlüsseltes Backup kann einem Angreifer den gesamten Datensatz auf einmal übergeben. Die Härtung der Datenbank mindert den Wert jedes anderen Standbeins, denn selbst ein Angreifer, der das Netzsegment erreicht, steht weiterhin vor Authentifizierung, geringsten Rechten, Verschlüsselung und Überwachung. Betrachten Sie es als Verteidigung in der Tiefe für jenes eine Gut, dessen Kompromittierung meist das eigentliche Ziel des Eindringens ist. Gerade weil so viel Aufwand in den Schutz der Ränder fließt, zahlt sich Investition in den Kern überproportional aus.

Die Angriffsfläche einer Produktionsdatenbank#

Die Angriffsfläche hat mehrere Gesichter. Da ist das Netzgesicht — der Port, auf dem die Engine lauscht, und wer ihn erreichen kann. Da ist das Authentifizierungsgesicht — wie sich Identitäten ausweisen und wie stark diese Nachweise sind. Da ist das Autorisierungsgesicht — was jede Rolle lesen, schreiben oder verwalten darf. Da ist das Data-at-Rest-Gesicht — Dateien, Tablespaces und Backups auf der Platte. Und da ist das Beobachtbarkeitsgesicht — ob überhaupt jemand abnormalen Zugriff bemerken würde. Eine gehärtete Datenbank verengt jedes davon; eine Standardinstallation lässt mehrere weit offen, meist durch Lauschen auf allen Schnittstellen und implizites Vertrauen lokaler Verbindungen.

Wie Angriffe auf Datenbanken auf hoher Ebene ablaufen#

Konzeptionell folgt ein datenzentrierter Angriff einem erkennbaren Bogen. Der Angreifer erreicht zunächst eine Position, von der die Datenbank adressierbar ist — ein Anwendungsserver, ein Jump-Host oder ein exponierter Port. Dann versucht er, sich zu authentifizieren, sei es über anderswo gefundene wiederverwendete Anmeldeinformationen, ein schwaches oder Standardpasswort oder ein Anwendungskonto mit mehr Rechten als nötig. Verbunden, zählt er Schemata und Privilegien auf und sucht den kürzesten Weg zu sensiblen Tabellen oder zu administrativer Fähigkeit. Schließlich versucht er Massenextraktion oder Persistenz. Jede Stufe entspricht einer Verteidigungskontrolle, weshalb Härtung am besten als Reihe von Barrieren entlang dieses Bogens geplant wird, nicht als eine einzelne Mauer. Der praktische Wert dieser Denkweise: Selbst wenn eine Barriere versagt, verlangsamt die nächste den Angreifer und erzeugt Telemetrie, die Ihr Team sehen und auf die es reagieren kann, bevor die Daten das Haus verlassen.

Authentifizierung und Zugriffskontrolle#

Beginnen Sie damit, Standardvertrauen zu beseitigen. Prüfen Sie in PostgreSQL die pg_hba.conf, sodass keine Regel die trust-Methode auf etwas anderem als streng kontrollierten lokalen Sockets nutzt, und bevorzugen Sie scram-sha-256 für die Passwortauthentifizierung. Entfernen Sie in MySQL anonyme Konten und jedes Konto mit leerem oder Standardpasswort und bevorzugen Sie starke Authentifizierungs-Plugins. Geben Sie jedem Menschen und jeder Anwendung eine eigene benannte Rolle — niemals einen gemeinsamen Superuser. Wo die Plattform es unterstützt, integrieren Sie einen zentralen Identitätsanbieter oder kurzlebige zertifikatsbasierte Authentifizierung, damit Anmeldeinformationen rotiert und widerrufbar sind. Erzwingen Sie starke Passwortrichtlinien und für administrativen Zugriff Multi-Faktor-Authentifizierung am Bastion vor der Datenbank.

Netzexposition und Verschlüsselung in Transit#

Binden Sie die Engine an die spezifischen Schnittstellen, die sie bedienen muss, nicht an alle Adressen, und platzieren Sie sie in einem privaten Netzsegment, das nur von der Anwendungsschicht und administrativen Bastionen erreichbar ist. Nutzen Sie Host-Firewalls und Netzwerksicherheitsgruppen als zweite Barriere, damit selbst eine Fehlkonfiguration den Port nicht dem weiteren Netz aussetzt. Verlangen Sie TLS für jede Verbindung und deaktivieren Sie unverschlüsselten Rückfall: erzwingen Sie in PostgreSQL hostssl-Regeln und setzen Sie ssl = on; verlangen Sie in MySQL sicheren Transport. Validieren Sie Zertifikate clientseitig, damit ein Man-in-the-Middle die Sitzung nicht still herabstufen oder abfangen kann. Behandeln Sie jede Klartext-Datenbankverbindung in Produktion als zu behebenden Vorfall.

Geringste Rechte und Schema-Berechtigungen#

Überprivilegierte Konten sind der häufigste Befund in Datenbank-Reviews. Anwendungskonten laufen oft als Eigentümer oder Superuser, obwohl sie nur Select, Insert, Update und Delete auf wenigen Tabellen brauchen. Gewähren Sie das Minimum, entziehen Sie den Rest und nutzen Sie Rollenvererbung zur Handhabbarkeit. Gehen Sie in PostgreSQL bewusst mit dem public-Schema und den Standardprivilegien um und erwägen Sie Row-Level-Security für Mandantendaten. Begrenzen Sie in MySQL Grants auf spezifische Datenbanken und Tabellen statt Wildcard-Grants. Trennen Sie das Konto, das Migrationen ausführt, vom Konto, das Verkehr bedient, damit eine alltägliche Anwendungskompromittierung nicht automatisch schemändernde Macht verleiht.

Verschlüsselung im Ruhezustand und Secrets-Management#

Der Schutz der Daten auf der Platte schließt den Weg, auf dem ein Angreifer oder ein verlorenes Backup den Datensatz direkt liefert. Aktivieren Sie Speicher- oder Dateisystemverschlüsselung für das Datenverzeichnis und verschlüsseln Sie vor allem Backups mit Schlüsseln, die getrennt vom Datenbankhost verwaltet werden. Betten Sie Datenbankpasswörter niemals in Anwendungsquellcode oder in versionierte Konfigurationsdateien ein; rufen Sie sie zur Laufzeit aus einem Secret-Manager mit Zugriffsprotokollierung ab. Rotieren Sie Anmeldeinformationen planmäßig und sofort nach jedem vermuteten Leck. Die Leitregel: Der Besitz einer Platte, eines Snapshots oder eines Backup-Archivs darf nicht genügen, um die Daten zu lesen, ohne auch getrennt verwahrte Schlüssel zu besitzen.

Erkennung: Protokollierung und Überwachung#

Härtung ohne Erkennung macht Sie blind für die Versuche, die durchkommen. Aktivieren Sie in PostgreSQL Verbindungs- und Trennungsprotokollierung, protokollieren Sie fehlgeschlagene Authentifizierungen und erwägen Sie die Erweiterung pgaudit für anweisungsgenaues Auditing sensibler Objekte. Aktivieren Sie in MySQL das Audit-Log-Plugin und je nach Bedarf das General- oder Slow-Query-Log und erfassen Sie fehlgeschlagene Logins. Schicken Sie diese Logs an ein zentrales SIEM und alarmieren Sie bei den bedeutsamen Signalen: einem Anstieg von Authentifizierungsfehlern, einem Login von unerwartetem Host oder zu ungewöhnlicher Stunde, Privilegienvergaben, großen oder ungewöhnlichen Ergebnismengen, die auf Massenextraktion hindeuten, und jeder Änderung der Auditing-Konfiguration. Überwachen Sie die Gesundheit der Log-Pipeline selbst.

Backup, Wiederherstellung und Integrität#

Verfügbarkeit und Integrität sind Teil der Sicherheit, nicht getrennt davon. Pflegen Sie getestete, verschlüsselte Backups mit definierter Aufbewahrung und lagern Sie mindestens eine Kopie an einem Ort, den ein Angreifer, der das Primärsystem kompromittiert, nicht erreichen oder löschen kann. Proben Sie die Wiederherstellung regelmäßig; ein nie zurückgespieltes Backup ist eine Hoffnung, keine Kontrolle. Schützen Sie Backups mit derselben Disziplin geringster Rechte und Überwachung wie die Live-Datenbank, denn ein ungeschütztes Backup-Repository ist einfach eine zweite, leisere Kopie von allem. Für Ransomware-Resilienz sorgt unveränderlicher oder Write-Once-Backup-Speicher dafür, dass ein Eindringling mit Datenbankzugriff nicht auch die Wiederherstellungsmittel zerstören kann.

Häufige Fallstricke#

Wiederkehrende Fehler sind: die Engine auf allen Schnittstellen lauschen lassen, Standard- oder gemeinsame Adminkonten behalten, Anwendungsnutzern weit mehr gewähren als nötig und Verbindungszeichenfolgen mit eingebetteten Passwörtern in Repositories speichern. Teams aktivieren oft Verschlüsselung in Transit, erzwingen sie aber nie, sodass Clients still auf Klartext zurückfallen. Andere verschlüsseln das Live-Volume, lassen aber Backups im Klartext. Eine häufige Erkennungslücke ist Protokollierung, die existiert, aber nie weitergeleitet oder geprüft wird und so nur bei der Post-Mortem-Analyse hilft. Hüten Sie sich zuletzt vor leistungsgetriebenen Abkürzungen, die Authentifizierung oder Auditing für einen Batch-Job deaktivieren und nie reaktivieren.

Härtungs-Checkliste#

Ein defensiver Ausgangspunkt: (1) Standardvertrauen, anonyme und Standardkonten entfernen; (2) starke, rotierte Anmeldeinformationen je Identität mit MFA auf administrativen Pfaden erzwingen; (3) an spezifische Schnittstellen in einem privaten Segment hinter Host- und Netzwerk-Firewalls binden; (4) TLS für jede Verbindung verlangen und validieren; (5) geringste Rechte auf jede Rolle anwenden und Migrations- von Laufzeitkonten trennen; (6) Daten im Ruhezustand verschlüsseln und Backups mit getrennt verwalteten Schlüsseln verschlüsseln; (7) Secrets aus einem Manager beziehen, nie aus der Versionskontrolle; (8) Verbindungs-, Fehllogin- und Anweisungs-Auditing aktivieren und ans SIEM weiterleiten; (9) bei Authentifizierungsanomalien, Privilegienänderungen und Massenextraktion alarmieren; (10) getestete, unveränderliche, vom Primärsystem getrennte Backups halten und Wiederherstellung proben.

FAQ: Reicht Verschlüsselung in Transit in einem privaten Netz?#

Nein. Ein privates Netz mindert die Exposition, beseitigt aber weder laterale Bewegung noch Fehlkonfiguration noch einen Insider im selben Segment. Verschlüsselung in Transit schützt die Sitzung vor Abfangen und Herabstufung, unabhängig davon, wo die Netzgrenze liegt, und sollte mit geringsten Rechten, At-Rest-Verschlüsselung und Überwachung kombiniert werden. Verteidigung in der Tiefe nimmt an, dass jede einzelne Schicht, auch der Netzperimeter, versagen kann.

FAQ: Sollte die Anwendung aus Bequemlichkeit einen Superuser nutzen?#

Niemals in Produktion. Ein Anwendungskonto sollte nur die Datenmanipulationsrechte halten, die es auf den spezifischen Objekten, die es berührt, wirklich braucht. Als Superuser zu laufen bedeutet, dass jede Kompromittierung der Anwendungsschicht — eine Injektionslücke, ein gestohlenes Token — sofort zur vollständigen Datenbankkompromittierung wird. Trennen Sie Konten für Laufzeit, Migrationen und Administration, damit der Radius einer einzelnen Anmeldeinformation begrenzt bleibt.

Fazit#

PostgreSQL und MySQL in Produktion zu härten heißt, Barrieren entlang des gesamten Weges zu setzen, den ein Angreifer zu den Daten zurücklegen würde: Authentifizierung, die Wiederverwendung widersteht, Netzisolation, die die Reichweite begrenzt, geringste Rechte, die jedes einzelne Standbein eindämmen, Verschlüsselung, die gestohlene Platten und Backups neutralisiert, und Erkennung, die leisen abnormalen Zugriff in einen lauten Alarm verwandelt. Nichts davon ist exotisch, und zusammen verwandeln sie das wertvollste Gut im Bestand von einem weichen Ziel in ein überwachtes, verteidigbares. Behandeln Sie die Checkliste als lebendig, prüfen Sie sie nach jeder Änderung und jedem Vorfall und verifizieren Sie die Live-Konfiguration, statt der beabsichtigten zu vertrauen.

Related posts

Nenhum comentário ainda

Seja o primeiro a comentar.

Deixe seu comentário

Entre com sua conta Canverly para comentar. Você pode usar a mesma conta em qualquer site da rede.

Entrar com Canverly