Erhöhung der Sicherheit von MySQL-Datenbanken bei gleichzeitiger Beseitigung von Ausfallzeiten
Open-Source-Software (OSS) hat die Art und Weise, wie moderne Anwendungen entwickelt werden, und den zugrunde liegenden Code schnell verändert. Der Zugang zu hochwertigen und robusten Open-Source-Softwareprojekten hat es Entwicklern ermöglicht, neue Funktionen schnell in ihre Anwendungen zu integrieren, ohne das Rad neu erfinden zu müssen. Schätzungen zufolge besteht der Code der meisten modernen Anwendungen heute zu 80 bis 90 % aus Open-Source-Komponenten. Ebenso sind viele der Tools, die das Wachstum von DevOps und CI/CD ermöglicht haben, wie Jenkins, Kubernetes und Docker, selbst Open-Source-Projekte.
Im Jahr 2019 hat sich die Gesamtzahl der veröffentlichten Open-Source-V CVEs (968) im Vergleich zu den Vorjahren mehr als verdoppelt. Die Zahl der Schwachstellen stieg zwischen 2018 und 2019 um 130 % (421 CVEs auf 968 CVEs) und lag um 127 % höher als 2017 (435), das die zweitmeisten CVEs in der Studie aufwies. Dieser Anstieg scheint kein Strohfeuer zu sein, da die Entdeckung neuer CVEs auch in den ersten drei Monaten des Jahres 2020 auf einem historisch hohen Niveau bleibt. Dieses Volumen erhöht die Komplexität der Verwaltung der Angriffsfläche eines Unternehmens für Entwickler, IT- und Sicherheitsteams gleichermaßen. Der Automatisierungsserver Jenkins wies mit 646 die meisten CVEs auf, dicht gefolgt von MySQL mit 624. Ebenso wiesen diese Projekte mit 15 die meisten als Waffe genutzten Schwachstellen auf (Schwachstellen, für die ein Exploit-Code existiert). Dieser Artikel untersucht die Gründe für diese Software-Schwachstellen und zeigt, wie man MySQL-Datenbanken vor potenziellen Sicherheitsvorfällen schützen kann.
Inhalte:
Ein kurzer Überblick über MySQL und seine Bedeutung auf dem Markt für relationale Datenbanken
Es gibt mehrere Datenbanken auf dem Markt, aber MySQL ist eine der bekanntesten, die sowohl für interne Backend-Prozesse als auch für öffentlich zugängliche Anwendungen wie Websites und Kundenportale verwendet wird. Obwohl es sich um eine Open-Source-Datenbank handelt, wurde MySQL von Sun Microsystems übernommen, das später von Oracle aufgekauft wurde. Sie wurde erstmals in den 1990er Jahren eingeführt, entwickelte sich aber schnell zu einer beliebten Alternative zur bis dahin dominierenden Datenbank Microsoft SQL Server. Die Syntax von MySQL ähnelt der anderer SQL-Sprachen (z. B. Oracle und Microsoft), so dass es für Entwickler und Unternehmen, die eine kostengünstigere Datenbank benötigen, eine gute Wahl ist.
MySQL ist derzeit eines der am häufigsten verwendeten relationalen Datenbankmanagementsysteme (DBMS) auf dem Markt. A 2019 Studie zeigte, dass MySQL 38,9 % des Marktes ausmacht, gefolgt von MongoDB mit 24,6 % und PostgreSQL mit 17,4 %. Open-Source-Datenbanksoftware dominiert einen Großteil der Websites, Backend-Systeme und andere von Unternehmen betriebene Datenspeicher-Server.
Open-Source-Software, die auf einer Infrastruktur läuft, hat viele Vorteile, darunter eine Community, die zu Updates, Fehlersuche und Funktionen beiträgt, Sicherheitsforscher, die Schwachstellen finden können, bevor Hacker sie finden und ausnutzen, und ein gemeinsames Repository, das von anderen Entwicklern geforkt und angepasst werden kann. Diese Vorteile haben jedoch auch eine Kehrseite. Wenn ein Angreifer einen Fehler findet, kann er ihn ausnutzen, anstatt ihn zu melden. Das Ergebnis könnte die Ausnutzung der Software und eine Zero-Day-Schwachstelle sein, die dem Entwickler nicht bekannt ist, bis der Exploit oder die Code-Schwachstelle gefunden wird. Es kann unter Umständen Jahre dauern, bis eine Sicherheitslücke, die gerade ausgenutzt wird, identifiziert wird. Umso wichtiger ist es für Unternehmen, MySQL-Software zu patchen, sobald ein Update veröffentlicht wird. Mit diesen Updates werden Systeme vor Schwachstellen gepatcht, die bereits seit Monaten oder sogar Jahren bestehen können. Wenn die Schwachstelle eine produktive MySQL-Datenbank betrifft, in der sensible Daten gespeichert sind, muss das Unternehmen das System unbedingt so schnell wie möglich patchen.
Schwachstellen in MySQL
Aufgrund der langen Zeit, die MySQL der Öffentlichkeit zur Verfügung steht, und seiner Open-Source-Codebasis weist die Datenbanksoftware zahlreiche CVEs (Common Vulnerabilities and Exposures) - insgesamt 1308. Einige dieser CVEs beziehen sich auf Anwendungen oder Software, wie z. B. PHP-Anwendungsdateien, die SQL-Injection zur Manipulation von Webinhalten und zur Ausführung von persistentem Cross-Site Scripting (XSS) ermöglichen, andere wiederum zielen auf den Kern der Datenbank-Engine. Einige Schwachstellen aus dem Jahr 2020 ermöglichen die Ausweitung von Privilegien, Netzwerkzugriff, um den MySQL-Client zu kompromittieren, und Remotecodeausführung (RCE).
Eine kompromittierte Datenbank ist ein kritisches Sicherheitsereignis, da durch den Zugriff von Angreifern auf die Datenbank eine Reihe weiterer Probleme entstehen können. Je nach Exploit können Angreifer Daten von einem kompromittierten Server exfiltrieren, sich selbst administrative Rechte auf dem Server verschaffen oder ihre eigenen Daten in Tabellen einspeisen. Bei einem persistenten XSS-Angriff kann jede Anwendung, die Datenbankdaten nicht verschlüsselt, für den Diebstahl von Daten oder Cookies anfällig sein. Wenn ein Angreifer in der Lage ist, seine Rechte auf dem Server zu erweitern, kann er Daten manipulieren, Daten auf einen von einem Angreifer kontrollierten Server exfiltrieren oder Querbewegungen in Unternehmensdatenbanken durchführen. Die Ausführung von Remotecode ist besonders gefährlich, da ein Angreifer seine eigene Malware auf dem Server ausführen kann, die von Keyloggern bis hin zu Ransomware reichen kann.
Gefahren von ungepatchten Datenbankservern
Sehen Sie sich als Beispiel an CVE-2020-2934. Es gibt mehrere andere CVEs im Zusammenhang mit dieser Sicherheitslücke, die alle MySQL-Konnektoren, Clients und Netzwerksitzungen betreffen. Eine erfolgreiche Ausnutzung dieser Sicherheitslücke könnte es einem Angreifer ermöglichen, CRUD-Befehle (Create, Read, Update oder Delete) auf dem Datenbankserver auszuführen oder einen Denial-of-Service-Angriff (DoS) zu starten. Ein Angreifer, der in der Lage ist, CRUD-Befehle auszuführen, kann Ihre Daten lesen oder Änderungen daran vornehmen.
Datenschutzverletzungen in einer Datenbank gelten als kritisch und haben langfristige Auswirkungen auf Kundenbindung, Vertrauen, Umsatz und Produktivität. Die meisten Unternehmen verfügen nicht über ein internes Notfallteam, so dass externe Berater erforderlich sind, die Hunderte von Dollar pro Stunde berechnen. In einigen Fällen entscheiden sich die IT-Administratoren dafür, kritische Systeme abzuschalten, um den Einbruch einzudämmen und den Zugriff der Hacker auf den Datenbankserver zu verhindern. Diese vorübergehende Abhilfemaßnahme hält den Angreifer davon ab, weitere Daten zu stehlen, unterbricht aber auch Anwendungen, die für ihren Betrieb Zugriff auf die Datenbank benötigen.
Schwere Sicherheitsverletzungen, bei denen ein Angreifer Ransomware einsetzt, um Daten zu verschlüsseln oder Dateien zu beschädigen, erfordern Backups und einen Datenwiederherstellungsplan. Selbst in großen Unternehmen können Wiederherstellungspläne versagen und erfordern die Unterstützung durch externe Berater. Solange die Datenbank nicht verfügbar ist, gehen dem Unternehmen Einnahmen durch Ausfallzeiten verloren, die in großen Unternehmen Tausende von Dollar pro Stunde betragen können.
Die Kosten einer Datenpanne auf einem Datenbankserver hängen stark von der Art der Kompromittierung, der Menge der gestohlenen Daten und der Effizienz der Reaktion auf den Vorfall ab. Ein Beispiel: Der kanadische Kreditgeber Desjardins-Gruppe 53 Millionen Dollar nach einer Datenpanne, bei der persönliche Daten von 2,9 Millionen Mitgliedern des Unternehmens offengelegt wurden. British Airways und Marriott gaben nach Verstößen gegen die GDPR (General Data Protection Regulation) jeweils 100 Millionen Dollar für die Einhaltung von Datenschutzbestimmungen aus.
Anfällige Datenbanksoftware muss schnell gepatcht werden
Eine Gemeinsamkeit aller CVEs, die in der MITRE-Datenbank für MySQL aufgeführt sind, besteht darin, dass jede Anwendung, die mit Schwachstellen aufgeführt ist, gepatcht werden muss. Bei den CVEs könnte es sich um Software von Drittanbietern handeln, die SQL-Injection und andere Exploits ermöglicht, oder es könnten Schwachstellen in der MySQL-Datenbank-Engine selbst gefunden werden. Sie dürfen die Anwendung des Drittanbieters nicht verwenden, aber alle Schwachstellen in der MySQL-Datenbank sollten so schnell wie möglich gepatcht werden.
Da MySQL eine so wichtige Infrastrukturkomponente ist, planen Administratoren und Datenbankadministratoren (DBAs) das Patchen oft für einen späteren Zeitpunkt. Es kann auch vorkommen, dass sie mit dem Patchen des Systems mehrere Wochen warten, damit gründliche Tests durchgeführt werden können und um Ausfallzeiten auf einem Produktionsdatenbankserver zu vermeiden. Jeder Tag, der verstreicht, bietet einem Angreifer die Möglichkeit, die ungepatchte MySQL-Server-Software auszunutzen.
Mit mehr als 1300 CVEs, Tendenz steigend, scheint es für Administratoren und DBAs ein aussichtsloser Kampf zu sein, mit dem Patching des Servers Schritt zu halten. Jede Ausfallzeit eines Produktionsservers bedeutet Produktivitäts- und Umsatzeinbußen und ist in der Regel schwer zu planen, da Administratoren die Dienste während der Geschäftszeiten nicht unterbrechen können.
Schlussfolgerung
Um die Server mit Patches zu versorgen und sie vor den neuesten Sicherheitslücken zu schützen, ist die Antwort die Verwendung von Live-Patching, so dass der Server fortlaufend Updates erhält, ohne dass ein Neustart erforderlich ist. KernelCare+ wird in Kürze eine neue Funktion veröffentlichen, die es Administratoren ermöglicht, ihre Datenbankserver zu patchen, ohne dass ein Neustart erforderlich ist. Mit KernelCare+ können Administratoren kostspielige Datenschutzverletzungen und Ausfallzeiten vermeiden und dennoch wichtige Daten schützen.