Gorodenkoff - stock.adobe.com
Best Practices zum Schutz von Datenbanken in Unternehmen
Datenbanken sind ein zentraler Baustein der IT in vielen Firmen. Sie enthalten zahlreiche wichtige Geschäftsdaten. Das macht sie aber auch zu einem lohnenden Ziel für Angreifer.
Niemand wird bestreiten, dass der Schutz sensibler Daten für jedes Unternehmen eine große Bedeutung hat. Erfreulicherweise verfügen die meisten Firmen heutzutage über ein solides Cyber-Security-Programm, das aus verschiedenen Maßnahmen besteht, um einen mehrstufigen Schutz zu bieten. Diese Programme haben dazu geführt, dass wichtige Enterprise-Server gehärtet, dass die Endpoints in den Firmen gesichert und dass Monitoring-Tools eingerichtet wurden. Vielen Betrieben ist es zudem gelungen, besonders schützenswerte Geschäftsdaten von den Endgeräten zu verbannen und sie stattdessen zentral in speziellen Enterprise-Systemen und -Datenbanken unterzubringen.
Aber wie gut sind die Maßnahmen zum Schutz dieser besonders wichtigen Systeme wirklich?
Es ist zweifelsfrei sicherer, Informationen in einer besonders geschützten, zentralen Datenbank zu speichern, als sie auf tragbaren Computern oder Freigaben im Netz liegen zu lassen. Wenn sich Unternehmen aber nicht intensiv mit dem Thema Datenbanksicherheit beschäftigen, sorgen sie ungewollt für einen wahren Schatz an vertraulichen Daten, der nur darauf wartet, von einem Angreifer entdeckt und gestohlen zu werden.
Viele Enterprise-Datenbanken enthalten aufgrund von mangelhaften Konfigurationen oder Fehlern bei der Implementation zahlreiche Schwachstellen. Die Datenbank-bezogenen Gefahren müssen zügig angegangen werden, seien es schwache oder ungenügend geschützte Passwörter, mögliche Angriffe per SQL Injection oder XSS-Lücken (Cross Site Scripting).
Abgesehen vom Schließen dieser offensichtlichen Sicherheitslöcher gibt es mehrere bewährte Best Practices, die jedes Unternehmen befolgen und regelmäßig überprüfen sollte. Nur so lässt sich der Schutz ihrer Kronjuwelen, also der geschäftskritischen Daten in ihren Datenbanken, garantieren. Da diese für Hacker ein besonders verlockendes Ziel sind, ist ihr Schutz von größter Bedeutung.
Im Folgenden finden Sie Maßnahmen, die Sie durchführen sollten, um die Sicherheit Ihrer Datenbanken und der darin gespeicherten Informationen zu erhöhen.
1. Setzen Sie das Prinzip der geringsten benötigten Rechte durch
Das Konzept zum Begrenzen der Zugriffsrechte von Anwendern auf die kleinste mögliche Schnittmenge, mit der sie noch ihre Aufgaben im Unternehmen erfüllen können, wird meist bereits im ersten Kapitel jedes IT-Sicherheitsbuches behandelt. Wie gut dieses theoretische Ziel mit der Realität der Datenbanken in Firmen übereinstimmt, ist allerdings eine berechtigte Frage. Um eine Antwort darauf zu erhalten, sollten Sie sich zunächst eine Reihe von weiteren Fragen stellen. Ein paar Beispiele:
- Haben die Entwickler vollen Zugriff auf die produktiv genutzten Datenbanken?
- Haben die Systemtechniker einen Zugang zu den Datenbanken auf den Computern, für die sie verantwortlich sind?
- Haben die Datenbank-Admins einen vollen Zugriff auf alle Datenbanken oder nur auf diejenigen, die in ihren Zuständigkeitsbereich fallen?
Das Begrenzen von Zugriffsrechten ist eine wesentliche Sicherheitsmaßnahme, wenn es um den Schutz vor Insider-Gefahren geht.
2. Führen Sie regelmäßig Kontrollen aller Zugriffsrechte durch
Es dürfte kein Geheimnis mehr sein, dass eine schleichende Zunahme von Zugriffsrechten ein Problem ist, mit dem nahezu alle Unternehmen zu kämpfen haben. Im Englischen wird dieses Phänomen auch Privilege Creep genannt. In allen Organisationen erhalten sowohl technische als auch nicht-technische Mitarbeiter neue Aufgaben, kümmern sich um andere Projekte oder wechseln gelegentlich die Abteilung. Derweil sammeln sich jedes Mal, wenn sie wechseln, neue oder anders gestaltete Berechtigungen an. Neue Zugriffsrechte werden in der Regel zügig angefordert und auch gewährt, da sich fehlende Zugriffsmöglichkeiten negativ auf die Arbeit der betroffenen Personen auswirken. Alte und nicht mehr benötigte Rechte bestehen aber oft noch über Monate oder gar Jahre hinaus, da sie sich nicht negativ auf die täglichen Aufgaben des Mitarbeiters auswirken. Sie haben allerdings einen negativen Effekt, wenn es um die Auswirkungen eines erfolgreichen Angriffs geht, sei es durch einen zum böswilligen Insider gewandelten Mitarbeiter oder weil der Account des Anwenders von Hackern übernommen wurde.
Unternehmen sollten deswegen geplante und regelmäßig angesetzte Überprüfungen aller Zugriffsrechte zu ihren Datenbanken durchführen. Nur so kann sichergestellt werden, dass das Prinzip der geringsten benötigten Rechte weiter angewendet wird. Ein besonderes Augenmerk sollte dabei auf Nutzer gelegt werden, die einen direkten Zugriff auf eine oder mehrere Datenbanken haben, weil sich damit Sicherheitskontrollen auf dem Anwendungslevel umgehen lassen.
3. Überwachen Sie alle Aktivitäten in den Datenbanken
Ein umfassendes Auditing von Datenbanken wirkte sich früher oft negativ auf die Performance der Anwendungen aus. Das hat dazu geführt, dass viele Firmen auf Logging verzichtet haben, um die Leistung ihrer Systeme nicht zu beeinträchtigen. Zum Glück liegen diese Zeiten mittlerweile hinter uns. Alle namhaften Datenbankanbieter bieten heutzutage skalierbare Möglichkeiten zum Monitoring und Logging an.
Unternehmen sollten trotzdem sicherstellen, dass sie das Datenbank-Monitoring auf ihren Systemen auch tatsächlich aktiviert haben und dass die Logs zu einem sicheren Repository übertragen werden und dort vor Verlust geschützt sind. Sorgen Sie darüber hinaus dafür, dass auch ein verhaltensbasiertes Monitoring eingesetzt wird, mit dem sich ungewöhnliches Nutzerverhalten frühzeitig erkennen lässt. Das gilt besonders für alle Accounts mit administrativen Rechten.
4. Verschlüsseln Sie sensible Daten
Das Thema Verschlüsselung ist keine Option, sondern sozusagen Pflicht, wenn es um die Sicherheit von Datenbanken geht. Da greifen in vielen Fällen auch regulatorische Vorschriften wie die EU-DSGVO (Datenschutz-Grundverordnung), ohne dass dort explizit technische Maßnahmen genannt werden. Unternehmen sollten eine starke Verschlüsselung auf drei Arten nutzen, um damit ihre Datenbanken zu schützen:
- Alle Verbindungen von und zu den Datenbanken sollten mit TLS (Transport Layer Security) verschlüsselt werden, um auch Daten zu schützen, die sich im Transit befinden.
- Verschlüsseln Sie alle Speichermedien, auf denen sich Ihre Daten befinden, um sie gegen Verschwinden, Diebstahl oder auch nur eine unsachgemäße Entsorgung zu sichern.
- Verwenden Sie zudem eine Verschlüsselung auf Ebene der einzelnen Spalten, um Ihre besonders vertraulichen Daten vor Ausspähung zu schützen.
Nicht erst morgen, sondern genau jetzt ist der richtige Zeitpunkt für Unternehmen, um die Sicherheit ihrer Datenbanken zu erhöhen. Firmen, die sich an die beschriebenen Best Practices halten – Durchsetzen des Prinzips der geringsten benötigten Rechte, ein regelmäßiges Durchführen von Kontrollen über alle gewährten Zugriffsrechte, ein Monitoring aller Datenbankaktivitäten und ein Verschlüsseln sensibler Daten – sind in einer weit besseren Position, wenn es um einen Schutz vor modernen, fortgeschrittenen Angriffen geht, als alle anderen Unternehmen, die sich kaum um die Sicherheit ihrer Datenbanken kümmern und die sich nicht an die vorgestellten Maßnahmen zu ihrem Schutz halten.
5. Transparenz über Daten und Speicherort
Diese Vorgehensweise mag offensichtlich erscheinen, aber viele Unternehmen sind sich nicht im Klaren darüber, wie sensibel und wichtig ihre Daten sind, und gehen dennoch davon aus, dass sie ihre Datenbanken angemessen schützen.
Sie müssen wissen, welche Daten wo und in welchen Formaten gespeichert sind, und idealerweise ein detailliertes Inventar erstellen. Dies ist besonders wichtig bei großen Unternehmen, in komplexen Umgebungen und bei älteren Datenbeständen. Die Menge der sensiblen und kritischen Daten bestimmt die Kontrollen, die sowohl aus der Perspektive des Risikomanagements als auch der Einhaltung von Vorschriften implementiert werden. Es wird Situationen geben, in denen Sicherheitsteams Kontrollimplementierungen zuordnen oder auswählen müssen, welche Systeme zuerst gepatcht werden sollen - beides hängt auch von der Kritikalität und Sensibilität der Daten ab.
Passen Sie den Ansatz an, je nachdem, für welche Daten die Datenbank verwendet wird. Da sich Datenbanken im Laufe der Zeit weiterentwickeln und neue Anwendungen, die auf bestehende Datenspeicher zugreifen, neue Daten hinzufügen und alte Daten auf neue Art und Weise bearbeiten können, ist es wichtig, eine Datenübersicht/ein Inventar zu erstellen und diese Informationen im Laufe der Zeit zu aktualisieren und zu pflegen.
6. Sicherung, Export und Wiederherstellung testen
Unternehmen, die keine Datensicherung durchführen, sollten dies sofort tun. Selbst Unternehmen, die regelmäßig Backups durchführen, müssen die Backup- und Wiederherstellungsfunktionen regelmäßig testen, um sicherzustellen, dass sie wie erwartet funktionieren. Vergewissern Sie sich, dass die beabsichtigten Daten aus der Sicherung wiederhergestellt werden können, um zu verhindern, dass die Teams überrascht werden, wenn sie feststellen, dass ihre Sicherungsmaßnahmen nur TBytes an nicht wiederherstellbaren Daten und Datenmüll hervorgebracht haben.
Die Sicherung und Wiederherstellung in der Cloud stellt eine besondere Herausforderung dar, insbesondere bei verwalteten Cloud-Datenbankdiensten. In diesen Fällen kann der Mechanismus zum Exportieren von Daten aus dem Dienst von Service zu Service unterschiedlich sein. Um eine Abhängigkeit zu vermeiden, ist es von Vorteil, Daten aus dem verwalteten Dienst exportieren zu können und zu wissen, wie das geht. Schließlich muss sichergestellt werden, dass Datenbanken importiert werden können, falls sie jemals migriert werden.
7. Härten, patchen, konfigurieren
Befolgen Sie eine gute Härtungs- und Patching-Praxis. Je nachdem, ob die Datenbank von der Organisation oder einem Dienstleister verwaltet wird, kann dies auf verschiedene Weise geschehen:
- Organisationen, die ihre eigenen Datenbankknoten verwalten. Stellen Sie zum Beispiel bei lokalen Systemen oder Arbeitslasten innerhalb eines IaaS-Ökosystems sicher, dass das Betriebssystem gehärtet und gepatcht ist und dass der Datenbankdienst selbst gehärtet und gepatcht ist. Verwenden Sie dazu einen technischen Implementierungsleitfaden für die Sicherheit oder andere gemeinschaftliche Konfigurationsbenchmarks. Sorgen Sie für die von Ihnen betreuten Datenbankinstanzen, indem Sie beispielsweise sicherstellen, dass sie segmentiert sind und bewährte Verfahren befolgen, zum Beispiel keine Produktionsdaten zu Testzwecken verwenden.
- Organisationen, die verwaltete Datenbankdienste nutzen. Das Ziel ist das gleiche, aber der Prozess ist anders. Patching und Härtung auf Betriebssystemebene liegen in der Verantwortung des verwalteten Dienstes. Stellen Sie sicher, dass die Dienste unter Sicherheitsaspekten optimal konfiguriert sind. Aktivieren Sie alle verfügbaren Funktionen zur Optimierung der Sicherheitslage. Dies setzt voraus, dass die Kunden diese Funktionen verstehen und wissen, wie sie sie aktivieren und konfigurieren können.
8. Bedrohungsmodelle erstellen
Unabhängig davon, ob es sich um Datenbanken für Produkte, die entwickelt werden, oder für Geschäftsanwendungen, die gewartet werden, handelt, ist die Anwendungssicherheit wichtig. Eine der besten Methoden, um zu gewährleisten, dass die Anwendungen angemessen abgesichert sind, ist die Erstellung eines Bedrohungsmodells.
Erstellen Sie ein Bedrohungsmodell für die Schnittpunkte zwischen Datenspeichern und Anwendungskomponenten, um sicherzustellen, dass die richtigen Schutzmechanismen vorhanden sind. Führen Sie dies für Anwendungen durch, die gerade entwickelt werden, unabhängig davon, ob sie für den internen Gebrauch oder für Kunden bestimmt sind. Wenn es sich um kommerzielle Standardsoftware oder ein anderes Tool handelt, das auf ein Datenbank-Backend angewiesen ist, analysieren Sie, wie diese Datenbank missbraucht werden kann, und treffen Sie die entsprechenden Schutzmaßnahmen.
9. Durchführung von technischen Tests
Überprüfen Sie, ob die Kontrollen wirksam und ausreichend sind. Führen Sie Schwachstellenscans durch, um sicherzustellen, dass die Hosts gehärtet und gepatcht sind, und führen Sie Penetrationstests durch, um zu gewährleisten, dass die vorhandenen Maßnahmen den erwarteten Nutzen erbringen.
Hinweis: Unternehmen, die einen Multi-Tenant-Kontext haben oder einen anderen verwalteten Dienst nutzen, sollten zunächst feststellen, ob diese Art von technischen Tests gemäß ihren Nutzungsbedingungen zulässig ist.
10. Sichere Maschinenkonten
Stellen Sie sicher, dass nicht-menschliche Konten angemessen gesichert sind. Wir haben bereits die Bedeutung der geringsten Privilegien und der regelmäßigen Überprüfung der Zugriffsrechte behandelt. Nicht-menschliche Konten - einschließlich Daemons, Dienstkonten/Prinzipale und Anwendungsbenutzerkonten - gehen manchmal in der Masse unter.
Schützen Sie Maschinenkonten wie Benutzerkonten. Sie müssen wissen, wo sich Maschinenkonten befinden, wo sie verwendet werden und sicherstellen, dass sie überwacht, protokolliert und geprüft werden.
Bonustipp: Dokumentation
Obwohl es sich dabei nicht um eine Best Practice für die Datenbanksicherheit handelt, ist die Dokumentation ein wesentlicher Bestandteil jeder Sicherheitsstrategie. In einem Datenbankkontext bedeutet dies zwei Arten von Dokumentation:
- Die Dokumentation, die in den oben genannten Vorschlägen enthalten ist, umfasst Elemente wie Bedrohungsmodelle und unterstützende Datenflussdiagramme. Ebenso wie Zugriffskontrollmatrizen zur Unterstützung der Durchsetzung der geringsten Rechte, Dateninventar und Kontrollimplementierungen, zum Beispiel welche Spalten verschlüsselt sind und welche Mechanismen verwendet werden.
- Dokumentation der operativen Prozesse und Verfahren sowie der Entscheidungsartefakte wie Risikoanalysen.
Dokumentation ist ein bisschen wie eine Versicherung. Kurzfristig kann man ohne sie auskommen, aber irgendwann wird man in die Röhre gucken. Die Dokumentation wird bei Audits verlangt und ist auch in bestimmten rechtlichen Rahmenwerken vorgeschrieben. Darüber hinaus erhöht eine präzise und regelmäßig aktualisierte Dokumentation die allgemeine Reife einer Organisation und die Widerstandsfähigkeit ihrer Prozesse.