Ihr Risiko einer Datenbankgefährdung
Wenn Sie Informationen auf logische Weise sammeln und speichern, verfügen Sie über eine Datenbank. In der modernen Verwendung des Wortes bezieht sich eine Datenbank oft auf das Datenbankmanagementsystem (DBMS), ein Computerprogramm, das digitale Daten verwaltet. Sie verwenden ein Datenbankmanagementsystem, um mit Ihren gespeicherten Daten zu interagieren, daher ist es wichtig, Sicherheitsfunktionen zu implementieren, die das DBMS und alle beteiligten Daten schützen.
Dieser Artikel bietet eine Übersicht über Datenbankmanagementsysteme mit Details zu den Risiken bei der Datenbankkonfiguration, wenn der Dienst auf einem offenen Port ausgeführt wird.
Was ist ein Datenbankmanagementsystem (DBMS)?
Ihr Datenbankmanagementsystem steuert, wie Sie auf gespeicherte Daten zugreifen und diese bearbeiten. Es gibt viele verschiedene Arten von Datenbankmanagementsystemen, jedes mit einzigartigen Funktionen, die bestimmten Zwecken dienen. Relationale Datenbanken, die häufig mit SQL erstellt werden, und nicht-relationale noSQL-Datenbanken sind zwei der am häufigsten verwendeten Typen.
Relationale Modelle speichern Informationen in Beziehungen, die auch als Tabellen bezeichnet werden. In einer Reihe von Zeilen, die als Tupel bezeichnet werden, werden Informationen mit gemeinsamen Attributen (den Spalten) gespeichert. Die Spalten verfügen über angegebene Datentypen, die steuern, welche Art von Daten in den einzelnen Feldern gespeichert werden können.

Relationale Datenbanken enthalten einen Schlüssel, der die Entität definiert. Ein Primärschlüssel ist eine bestimmte Spalte mit einem eindeutigen Wert, z. B. die Identifikationsnummer eines Mitarbeiters. Ein Fremdschlüssel erstellt eine Beziehung zwischen zwei Tabellen, indem eine Kopie des Primärschlüssels als zusätzliche Spalte in einer zweiten Tabelle eingefügt wird. Es gibt drei gängige Beziehungsmodelle:
- Eins-zu-eins: Eine Zeile in einer Tabelle bezieht sich nur auf eine Zeile in einer anderen Tabelle (in eine Richtung).
- Eins-zu-viele: Eine Zeile in einer Tabelle bezieht sich auf mehrere Zeilen in einer anderen Tabelle (in eine Richtung).
- m:n-Zeile: Eine Zeile in einer Tabelle bezieht sich auf mehrere Zeilen in einer anderen Tabelle und umgekehrt (multidirektional).
Viele relationale Datenbankmanagementsysteme verwenden SQL (Structured Query Language), um Daten und Abfragen an die Datenbank zu verwalten. Es gibt eine Vielzahl von Open-Source- und proprietärer SQL-Software, wie z. B. MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, SQLite, IBM Db2 und Oracle Database. Sie können RDBMS-Optionen wie PostgreSQL und MySQL vergleichen, um zu ermitteln, welche Funktionen für Ihre Unternehmensanforderungen am vorteilhaftesten sind.
Um Daten auf unstrukturierte Weise zu speichern, können Sie eine nicht-relationale Datenbank verwenden (manchmal auch als NoSQL-Datenbank bezeichnet, da sie kein SQL verwendet). Nicht-relationale Datenbanken bieten unterschiedliche Funktionen, z. B. die zugeordneten Arrays in einer Schlüssel-Wert-Datenbank oder die Metadaten- und API-Abruftools für einen Dokumentenspeicher oder eine dokumentenorientierte Datenbank. MongoDB ist ein Beispiel für einen nicht-relationalen Dokumentenspeicher, der mit einem relationalen Gegenstück wie MySQL verglichen werden kann.
Die Wahl des Datenbankmanagementsystems hängt von Ihren Anforderungen ab, aber was auch immer Sie wählen, wird ein wesentliches Element in Ihrem Anwendungsstack sein. Wenn Sie Ihren Tech-Stack festlegen, stellen Sie sicher, dass Sie die notwendigen Cybersicherheitsmaßnahmen ergriffen haben, um sicherzustellen, dass Ihre Datenbank geschützt bleibt.
Bedrohungen der Datenbanksicherheit
Berücksichtigen Sie bei der Auswahl einer Datenbank und eines Datenbankmanagementsystems potenzielle Cybersicherheitsbedrohungen, da jede neue Software Ihre externe Angriffsfläche vergrößert.
Ergreifen Sie proaktive Maßnahmen, um Ihre Datenbank zu schützen, indem Sie diese häufigen Bedrohungen für die Datenbanksicherheit verstehen:
- Datenbank-Injection-Angriffe, einschließlich SQL-Injection und NoSQL-Injection
- Zugriff auf sensible Informationen wie personenbezogene Daten und Finanzdaten
- Datenexfiltration und -manipulation, was zu Datenschutzverletzungen führt
- Denial-of-Service- (DoS) und Distributed-Denial-of-Service- (DDoS)-Angriffe, die hohe Arbeitslasten auf Ihr System verlagern
- Ausnutzung aufgrund von Fehlkonfigurationsproblemen
- Packet Sniffing, was zum Diebstahl von Anmeldeinformationen oder Token führt
- Gefährdung von Datenbank-Backups
- Probleme mit der Datenbankzugriffskontrolle und -berechtigungen, die zu kompromittiertem Benutzerzugriff und unbefugter Rechteausweitung für Datenbankbenutzer führen
- Bekannte und unbekannte Schwachstellen in der Datenbank
- Malware-Implantation auf Ihrem System
- Menschliches Versagen, das zu Phishing oder anderen Social-Engineering-Angriffen führt, die zu kompromittierten Benutzerkonten führen
- Insider-Bedrohungen
Eine mehrschichtige Sicherheitslösung stellt sicher, dass Ihre Datenbank und alle darin enthaltenen sensiblen Daten vor Cyberkriminellen geschützt bleiben.
Ist Ihre Datenbank offengelegt?
Sie können Ihr DBMS auf demselben Server wie den Rest Ihres Stacks bereitstellen oder einen Remote-Server für das DBMS einrichten und über einen dedizierten Port eine Verbindung zu ihm herstellen. Die letztere Option ermöglicht es Ihnen, Ihre Datenbank getrennt von der Anwendung zu skalieren, aber sie kann Ihre Angriffsfläche durch offene Ports vergrößern, die potenzielle Einstiegspunkte für Angreifer und Datenübertragungen bieten, die zwischen Servern abgefangen werden könnten.
Um zu bewerten, ob Ihre Datenbank verfügbar gemacht wird, können Sie Ihre Konfigurationseinstellungen überprüfen und einen Scan ausführen, um zu ermitteln, welche Ihrer Dienste verfügbar gemacht werden. Es gibt eine Vielzahl von Überwachungstools, die Sie verwenden können, oder Sie können uns die Scans mit UpGuard BreachSight für Sie durchführen lassen.
UpGuard sucht nach einer Vielzahl von exponierten Datenbanken und offenen Ports, einschließlich der folgenden Datenbankports:
- 'Apache CouchDB' Port offen
- 'Apache Kafka'-Port offen
- 'CassandraDB'-Port offen
- 'DB2'-Anschluss offen
- 'ElasticSearch'-Port offen
- 'ETCD'-Anschluss offen
- 'HBaseDB'-Port offen
- 'Memcached'-Port offen
- 'MongoDB'-Port offen
- 'MySQL'-Port offen
- 'Oracle TNS Listener'-Port offen
- 'PostgreSQL'-Port offen
- 'Redis'-Anschluss offen
- Hafen "Riak" geöffnet
- 'SQLServer Monitor' Port offen
- 'SQLServer'-Port offen
- 'VoldemortDB'-Port offen
Apache CouchDB ist eine dokumentenorientierte NoSQL-Datenbank, die eine HTTP-API verwendet, um Informationen über viele Endpunkte hinweg abzurufen und zu synchronisieren. CouchDB-Installationen verwenden standardmäßig den Port [.rt-script]6984[.rt-script]. Die Portnummer kann zwar geändert werden, der Dienst bleibt jedoch identifizierbar.
Apache Kafka ist eine Open-Source-Plattform für verteilte Ereignisspeicher und Stream-Verarbeitung, die einen hohen Durchsatz und eine geringe Latenz bietet. Kafka wird für Echtzeit-Streaming-Anwendungen verwendet, daher muss darauf geachtet werden, die Anwendung zu sichern, wenn sie mit dem Internet verbunden ist. Kafka läuft standardmäßig auf dem Port [.rt-script]9092[.rt-script].
Apache Cassandra ist ein verteiltes Open-Source-NoSQL-Datenbankmanagementsystem, das mehrere Knoten in einem Cluster bereitstellt, um hohe Verfügbarkeit und Fehlertoleranz zu gewährleisten. Cassandra portiert üblicherweise [.rt-script]7000[.rt-script], [.rt-script]9042[.rt-script] und [.rt-script]7199[.rt-script]. Ein offengelegter Cassandra-Port birgt das Potenzial für böswillige Akteure, vertrauliche Daten abzurufen, daher sollte der Zugriff auf dieses DBMS nur über interne Netzwerke erfolgen. Sie können Ihre interne Firewall so einrichten, dass die Kommunikation möglich ist, indem Sie die IP-Adresse jedes Knotens für die Datenübertragung angeben. Sie können auch bestimmte Netzwerkports angeben.
IBMs Db2 bietet ein relationales Datenbankmanagementsystem, das für die Anforderungen großer Unternehmen entwickelt wurde. Die Db2-Konfiguration verwendet eine Vielzahl von Ports, die Sie in der Db2-Dokumentation von IBM auswerten können.
ElasticSearch ist eine Suchmaschine, die manchmal als Datenspeichersystem verwendet wird, da ihre Funktionen auf gängige Anwendungsfälle für DBMS abgestimmt sind. Standardkonfigurationen werden auf Port [.rt-script]9200[.rt-script] für API-Anfragen und Port [.rt-script]9300[.rt-script] für die Knotenkommunikation ausgeführt.
etcd, das sich auf das "verteilte [.rt-script]etc[.rt-script]-Verzeichnis" bezieht, ist ein verteilter Schlüssel-Wert-Datenspeicher, der für die Systemkonfiguration und die Diensterkennung zwischen verteilten Systemen verwendet wird. Es wird häufig für fehlertolerante Kubernetes-Cluster verwendet. Die Standardports sind [.rt-script]2379[.rt-script] für Client-Anfragen und [.rt-script]2380[.rt-script] für die Peer-Kommunikation.
Apache HBase ist eine nicht-relationale Open-Source-Datenbank, die in Java erstellt wurde und Teil der Apache Hadoop-Sammlung ist. HBase bietet eine Methode zum Hosten und Abfragen von Big Data. Zu den HBase-Standardports gehören [.rt-script]6000[.rt-script], [.rt-script]60010[.rt-script] und [.rt-script]60020[.rt-script]. Da HBase-Datenbanken eine große Datenmenge speichern, kann die Datenbank durch Zugriffssteuerung und VPN-Authentifizierung geschützt werden.
Memcached ist nicht ganz eine Datenbank, sondern ein Speicher-Caching-System, das eine Schlüssel-Wert-Paarung verwendet. Es läuft standardmäßig auf Port [.rt-script]11211[.rt-script], kann aber auch die Ports [.rt-script]11212[.rt-script] und [.rt-script]11213[.rt-script] verwenden.
MongoDB ist eine dokumentenorientierte NoSQL-Datenbank, die standardmäßig auf dem Port [.rt-script]27017[.rt-script] ausgeführt wird. Zusätzliche Konfigurationsoptionen können die Ports [.rt-script]27018[.rt-script], [.rt-script]27019[.rt-script] und [.rt-script]27020[.rt-script] verwenden. Diese Standardports können leicht identifiziert werden, sodass zu den Schutzmaßnahmen die Begrenzung des Datenverkehrs in internen Netzwerken, das Schließen ungenutzter Ports, das Ändern des Standardports und regelmäßige Updates gehören, wenn der Port öffentlich zugänglich ist.
MySQL-Datenbanken sind eine Open-Source-Option, die häufig als Teil des LAMP-Stacks bereitgestellt wird (Kopplung des Linux-Betriebssystems mit Apache, MySQL und PHP). MySQL verwendet standardmäßig den Port [.rt-script]3306[.rt-script] und sollte nicht für das Internet geöffnet sein. MySQL wird nicht nur mit dem LAMP-Stack bereitgestellt, sondern auch mit dem LEMP-Stack, der Nginx anstelle von Apache als Webserver verwendet.
>Oracle bietet ein proprietäres Datenbankmanagementsystem an, das den Oracle TNS Listener zur Verwaltung der Kommunikation über das TNS-Protokoll (Transparent Network Substrate) umfasst. Der Listener erhält in der Regel Verbindungsanfragen an Port [.rt-script]1521[.rt-script], woraufhin er eine Verbindung aufbaut. Sie können die Härtungsanleitung von Oracle befolgen, um den Listener zu schützen. Sie können den Zugriff über den TNS-Listener-Port auch auf interne Netzwerke oder autorisierte IP-Adressen beschränken.
PostgreSQL ist eine quelloffene, SQL-kompatible relationale Datenbank, die standardmäßig auf dem Port [.rt-script]5432[.rt-script] läuft. Postgres ist aufgrund seines objektrelationalen Designs weit verbreitet, daher ist es wichtig, den Dienst vor potenziellen Angreifern zu schützen.
Redis ist ein NoSqL-Open-Source-In-Memory-Datenspeicher. Redis Cluster bietet ein Sharding mit mehreren Knoten, das einen TCP-Port (in der Regel [.rt-script]6379[.rt-script]) und einen Clusterbus-Port (in der Regel [.rt-script]16379[.rt-script]) erfordert. Um eine hohe Verfügbarkeit zu gewährleisten, können Sie Redis Sentinel einrichten, das in der Regel auf Port [.rt-script]26379[.rt-script] lauscht.
Riak ist ein verteilter NoSQL-Schlüssel-Wert-Datenspeicher, der eine REST-API für grundlegende Funktionen verwendet. Sie können Ihre Riak-Knoten so einstellen, dass sie zwischen dem Cluster kommunizieren. Wie bei anderen Datenbanken auch, sollte der Zugriff auf die Ports über interne Netzwerke und mit den erforderlichen Authentifizierungsprüfungen erfolgen.
Microsoft SQL Server bietet ein relationales Datenbankmanagementsystem, das auf SQL basiert und mit Microsoft Transact-SQL (T-SQL) verwendet wird. SQL Server Monitor bietet Echtzeitüberwachung für aktive SQL Server-Instanzen. SQL Server verwendet standardmäßig Port [.rt-script]1433[.rt-script], während SQL Server Monitor in der Regel die Ports [.rt-script]1433[.rt-script] oder [.rt-script]1434[.rt-script] verwendet.
Voldemort ist ein verteilter Schlüssel-Wert-Datenspeicher, der bis 2018 von LinkedIn gepflegt wurde.
Die kontinuierliche Überwachung Ihrer externen Angriffsfläche kann Ihnen helfen, proaktive Maßnahmen gegen potenziell bekannte und unbekannte Schwachstellen zu ergreifen, einschließlich Diensten, die auf offenen Ports ausgeführt werden. Das nicht-intrusive Scanning von UpGuard erkennt, ob Ihr Datenbankdienst über das öffentliche Internet zugänglich ist, und Sie erhalten eine Benachrichtigung mit spezifischen Ergebnissen für die betreffende Datenbank. Aktuelle UpGuard-Benutzer können sich anmelden und auf ihr Risikoprofil in BreachSight zugreifen, um zu beurteilen, ob sich die in diesem Artikel genannten Datenbankergebnisse auf ihr Unternehmen auswirken.
Weitere Informationen zu anderen Diensten, die UpGuard durch Port-Scanning identifiziert, finden Sie in unserem Support-Artikel Welche Dienste erkennt UpGuard mit Port-Scans?
Sichern Ihres Datenbankmanagementsystems
Um Ihre Datenbank zu schützen, integrieren Sie Sicherheitsmaßnahmen in die Konfigurationskonfiguration. Es gibt viele Ressourcen zum Festlegen von Sicherheitsrichtlinien für bestimmte Datenbanken und Datenbankmanagementsysteme, einschließlich unserer Tipps zum Sichern von SQL und PostgreSQL-Datenbanken. Stellen Sie sicher, dass Sie Richtlinien für die Datenverschlüsselung eingerichtet haben.
Wenn möglich, sollten Datenbanken auf internen Datenverkehr und VPNs beschränkt werden, um die Sichtbarkeit der Öffentlichkeit zu verhindern. Wenn der Zugriff auf die Datenbank nur über eingeschränkte Methoden erfolgt, kann sie durch Internetscans nicht identifiziert werden. Wenn der Datenbankdienst nicht mehr verwendet wird, sollte der Port geschlossen werden.
Wenn der Datenbankserver öffentlich zugänglich sein muss, muss ein Datenbankadministrator konsistente Updates zum Schutz vor bekannten Schwachstellen durchführen und bei Bedarf Patches implementieren, wenn neue Probleme identifiziert werden. Sicherheitsteams sollten regelmäßige Datenbankprüfungen für alle Elemente mit öffentlichem Zugriff durchführen, um Sicherheitsrisiken zu identifizieren, die von Hackern ausgenutzt werden könnten.
Stellen Sie bei Diensten, die Ihr Datenbanksystem unterstützen, sicher, dass der Zugriff auf interne Netzwerke oder anderweitig auf autorisierte IP-Adressen beschränkt ist.
Sobald Ihr System eingerichtet ist und Sie alle erforderlichen Sicherheitskontrollen berücksichtigt haben, können Sie Ihre Gefährdung durch Cyberangriffe bewerten, indem Sie Ihre Sicherheitsmaßnahmen überprüfen und Penetrationstests durchführen, um Sicherheitsverletzungen zu simulieren und Ihre Datensicherheit zu bewerten.
Möglicherweise sind zusätzliche Maßnahmen erforderlich, um die physische Sicherheit für lokale Server zu gewährleisten. Wenn Sie Webanwendungen mit einer Cloud-Datenbank bereitstellen, können Sie die Datenschutzrichtlinien Ihres Hostinganbieters überprüfen, um die Ausrichtung an Best Practices für die Sicherheit zu bestätigen.