Code auf einem Bildschirm

Was ist SQL-Injection?

Websites sind einer Vielzahl von Sicherheitsrisiken ausgesetzt. Zu den verbreitetsten Angriffen gehört das Einschleusen von Schadcode. So versuchen Kriminelle, unerwünschte Kommandos auszuführen, Web-Anwendungen zu übernehmen, Daten zu fälschen oder zu stehlen. Zur Abwehr solcher Injection-Angriffe bietet Myra Security eine Web Application Firewall.

Ansicht SQL-Injection

01

SQL-Injection: eine Definition

SQL-Injection (zu Deutsch: SQL-Einschleusung) ist ein populärer Angriffsvektor. SQL ist eine beliebte Datenbanksprache, die zum Aufbau von Datenstrukturen in relationalen Datenbanken sowie zum Bearbeiten und Abfragen von darauf basierenden Datenbeständen zum Einsatz kommt. Aufgrund der weiten Verbreitung von SQL sind darauf basierende Programme und Web-Anwendungen auch sehr attraktiv für Angreifer.

Bei einer SQL-Injection (kurz SQLi) nutzen Cyberkriminelle gezielt Sicherheitslücken im Quelltext von Software aus, um etwa über Eingabemasken eigene Befehle oder Schadcode in Programme einzubinden. Auf diese Weise gelangen Angreifer an wertvolle Datensätze. Die meisten Attacken mittels SQLi sind auf fehlerhafte Skripte und Programme zurückzuführen.

Wie weit SQLi allgemein verbreitet ist, zeigt unter anderem das renommierte „Open Web Application Security Project“ – kurz OWASP. Der OWASP-Top-10-Bericht listet Injection-Attacken auf Platz eins der zehn kritischsten Sicherheitsrisiken für Webanwendungen.

02

Beispiel einer SQL-Injection

Angreifer nutzen SQL-Injections etwa um Datenbanken für User, Schüler, Produkte und dergleichen zu korrumpieren. Hier verwenden Software-Entwickler typischer Weise eine REST-API für den Abruf von Benutzern:

  • https://myapi.com/users/123

Diese Eingabe würde wahrscheinlich zu einer (nicht gesäuberten) Anfrage wie dieser führen würde:

  • SELECT * from users where id = 123

Wenn die API über keine Eingabedaten-Validierung / -Hygiene verfügt, besteht die Möglichkeit, mittels SQLi jeden Benutzer im System zu löschen. Die hierzu erforderlichen Eingaben sehen etwa so aus:

  • https://myapi.com/users/123;DELETE FROM users where id != 0

oder so:

  • https://myapi.com/users/123;TRUNCATE users

Hat der Angreifer Kenntnisse über die Datenstruktur in der Datenbank, könnte er durch Hinzufügen oder Aktualisieren von Einträgen in der Datenbank an Admin-Rechte erlangen:

  • https://myapi.com/users/123;UPDATE users set admin = 1 where id = 456

oder so:

  • https://myapi.com/users/123;INSERT INTO user_roles (userId, role) VALUES (456, 'ADMIN')

Weitere detaillierte Fallbeschreibungen inclusive Code-Beispiele finden Sie auf der Webseite der OWASP Foundation.

Kryptischer Code auf einer Wand

03

So nutzen Cyberkriminelle eine SQL-Injection

SQL-Injections sind immer dann möglich, wenn Benutzereingaben oder andere Daten den SQL-Interpreter erreichen. Angreifer versuchen hier mittels Sonderzeichen, einen eigenen Befehl einzuschleusen, um von außen auf die dahinterliegende Datenbank zuzugreifen. Solche sogenannten Metazeichen sind etwa umgekehrte Schrägstriche (Backslash), das Anführungszeichen, der Apostroph sowie das Semikolon.

Sicherheitslücken, die ein Eindringen in die Datenbanken per SQLi erlauben, finden sich zumeist in CGI-Skripten, die zur Kommunikation zwischen Webserver und anderen Tools dienen. Kommt es hier zu einer fehlerhaften Maskierung, besteht die Möglichkeit, weitere Befehlsketten einzufügen. Die Folge sind Datenabfluss, Datenmanipulationen oder gar eine Kompromittierung des gesamten Servers, falls es dem Angreifer gelingt eine Eingabe-Shell zu öffnen.

Spritze

04

SQLi entdecken und vereiteln

Entdecken Firmen in ihren Lösungen Sicherheitslücken für SQLi-Attacken, ist es meist schon zu spät. Wer nicht schon im Vorfeld auf die Schwachstelle im Quelltext stößt, den leiten in der Regel die Folgen einer erfolgreichen Attacke zum entsprechenden Fehler in der Software. Hinweise darauf sind etwa Datenabfluss, Manipulationen an Nutzerkonten oder Datensätzen sowie Fehlermeldungen, die auf zerstörte Daten hinweisen. Auch anormale Abfragen auf Webservern deuten häufig auf Injektions-Versuche hin.

Daneben helfen automatisierte Scan-Tools Unternehmen dabei, Fehler im Quelltext bereits während der Entwicklung zu entdecken und damit die Schlupflöcher für SQLi-Attacken zu schließen. Im Nachgang ermitteln indessen Penetrations-Tests, auch Pentests genannt, die Sicherheit der Software.

Schutz vor SQLi-Attacken bieten außerdem WAF-Lösungen (Web Application Firewall). Diese Sicherheitslösungen filtern den Traffic anhand vordefinierter Regeln und trennen dadurch valide Nutzeranfragen von möglichen Angriffen. Der Schutzfaktor solcher Technologien beruht maßgeblich auf einer korrekten Konfiguration der Filterregeln – hier ist viel Expertenwissen und Kenntnisse über den individuellen Traffic auf der jeweiligen Web-Applikation gefragt.

Vernetzung von Ger�äten

05

Diese Branchen sind von SQL-Injections betroffen

Weite Teile unserer vernetzten Welt sind durch Injection-Angriffe verwundbar. Von der Online-Anwendung, über Smartphone-Apps und vernetzte IoT-Geräte, bis hin zu den Connected Cars im Straßenverkehr. Viele Geräte, die über das Internet erreichbar sind und eine Anmeldemaske für eine dahinterliegenden SQL-Datenbank aufweisen, lassen sich bei entsprechenden Sicherheitslücken auch kapern. Daher spielen bei Injection-Angriffen weniger Branchen eine Rolle als vielmehr die dort eingesetzten Lösungen und Gerätschaften.

06

Diese Folgen zieht eine SQLi nach sich

Kommt es in Folge einer SQLi zu einer Manipulation von Traffic-Daten, treffen Führungspersonen, etwa in E-Commerce- oder auch Medien-Unternehmen, die falschen strategischen Entscheidungen. Dadurch können Injection-Angriffe für langanhaltende Schäden sorgen, die Unternehmen über Jahre hinweg aus der Bahn werfen.

Haben Cyberkriminelle Zugriff auch wertvolle Datensätze, macht das die betroffenen Unternehmen zudem erpressbar für hohe Lösegeldforderungen. Hinzu kommen der finanzielle Aufwand für die Beseitigung der Schäden sowie potenzielle Strafzahlungen. Denn wenn empfindliche Kundendaten durch eine Attacke in fremde Hände gelangen, drohen für die Verantwortlichen empfindliche Geldbußen und sogar Freiheitsstrafen. Das Strafmaß ergibt sich aus den geltenden regulatorischen Vorgaben für Datensicherheit und Datenschutz.

Nicht zu unterschätzen sind zudem die schweren Auswirkungen von SQLi-Angriffen auf das Image betroffener Firmen. Viele große Datenskandale gehen auf erfolgreiche Attacken dieser Art zurück. Erbeuten Kriminelle Kundendaten, kann dies das Vertrauen in das Unternehmen auf Jahre erschüttern.

Code auf einem Bildschirm

07

SQL-Injection: Das müssen Sie wissen

SQLi-Attacken sind für Cyberkriminelle meist eine komfortable Ausgangsbasis für weitreichende Angriffe auf Unternehmen. Dabei zielen die Angreifer mitunter auf das Erbeuten oder Manipulieren wertvoller Datensätze ab. Zudem bieten erfolgreiche SQLi-Angriffe auch Raum für Erpressung.

Als Sicherheitsmaßnahmen zur Abwehr solcher Angriffe empfehlen sich ein sauber verfasster Quellcode mit strikter Validierung bzw. Hygiene von Eingabedaten sowie WAF-Schutzlösungen. Letztere statten Unternehmen mit flexiblen Werkzeugen aus, die neben SQLi-Attacken eine Vielzahl weiterer Bedrohungen adressieren.

Weitere Informationen zur Myra Hyperscale WAF erhalten sie hier