Besuchen Sie uns auf der it-sa 2024!

Code auf einem Screen

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 Befehle auszuführen, Webanwendungen zu übernehmen, Daten zu fälschen oder zu stehlen. Zur Abwehr solcher Injection-Angriffe bietet Myra Security eine Web Application Firewall.

Zur Myra Hyperscale WAF
Ansicht SQL-Injection

01

SQL Injection: eine Definition

SQL Injection (zu Deutsch: SQL-Einschleusung) ist ein verbreiteter 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 Webanwendungen 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 SQL Injection Attacks 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. Die aktuelle Liste der OWASP Top 10 führt Injection-Attacken auf Platz drei der zehn kritischsten Sicherheitsrisiken für Webanwendungen.

02

Beispiel einer SQL Injection

Angreifer nutzen SQL Injections etwa, um Datenbanken für User, Produkte und dergleichen zu korrumpieren. Hier verwenden Software-Entwickler typischerweise 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 Validierung bzw. Hygiene von Eingabedaten 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 gelangen:

  • 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 einer SQL Injection Attack, inklusive Code-Beispielen finden sich auf der Webseite der OWASP Foundation.

03

So nutzen Cyberkriminelle eine SQL Injection

Eine SQL Injection ist 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, das Apostroph sowie das Semikolon.

 

Sicherheitslücken, die ein Eindringen in die Datenbanken per SQL Injection 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 SQL Injection Attacks, 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 Injection-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 SQL Injection Attacks zu schließen. Im Nachgang ermitteln indessen Penetrationstests, auch Pentests genannt, die Sicherheit der Software.

 

SQL Injection Schutz 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 sind viel Expertenwissen und Kenntnisse über den individuellen Traffic auf der jeweiligen Webapplikation erforderlich.

Vernetzung von Geräten

05

Diese Branchen sind von SQL Injection 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 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 kapern. Bei SQL Injection Attacks spielen daher weniger die Branchenzugehörigkeit als vielmehr die eingesetzten Lösungen und Gerätschaften eine Rolle.

06

Diese Folgen zieht eine SQL Injection Attack nach sich

Kommt es in Folge einer SQL Injection Attack zu einer Manipulation von Traffic-Daten, treffen Führungspersonen, etwa in E-Commerce- oder auch Medienunternehmen, falsche datengetriebene Entscheidungen. Dadurch können SQL Injection Attacks für langanhaltende Schäden sorgen.

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 sensible Kundendaten durch eine Attacke in fremde Hände gelangen, drohen den 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 SQL Injection Attacks 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

Eine SQL Injection Attack ist 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 SQL Injection Attacks eine Vielzahl weiterer Bedrohungen adressieren.

 

Mehr zum Thema Web Application Firewall