In Computer-Programmen, Webseiten und Apps kommen in den allermeisten Fällen Datenbanken zum Einsatz, um Daten sicher zu verwalten und zu speichern. So werden beispielsweise Produktinformationen in Webseiten, Daten zum Nutzungsverhalten oder auch Log-in-Daten in diesen Datenbanken abgelegt.
Unter Programmierern hat sich die Programmiersprache SQL, also „Structured Query Language“ – oder übersetzt „strukturierte An-/Abfragesprache“ – für die Bereitstellung und Verwaltung dieser verschiedenen Informationen in Datenbanksystemen etabliert.
Sie ahnen es bestimmt: SQL-Datenbanken sind ein ziemlich attraktives Ziel für Hacker, die ihre Cyber-Angriffe mit so genannten SQL-Injektionen genau hierauf ausrichten, um umfangreich Datenklau oder -Manipulation zu betreiben.
Erfahren Sie in diesem Blogbeitrag, was SQL-Injektionen sind, wie SQL-Injektion-Angriffe funktionieren und welche Schutzmaßnahmen es gibt.
Was ist SQL-Injektion?
Die weltweit größte und unabhängige Open Web Application Security Project / OWASP Foundation, die sich mit der Sicherheit von Software befasst, führt SQL-Injektionen regelmäßig unter den Top 10 der Cyber-Angriffe.
Der Begriff SQL-Injektion kann ins Deutsche mit „Einspritzung oder Einspeisung in strukturierte An-/Abfragesprache“ übersetzt werden. Nicht gerade selbsterklärend, aber man kann zumindest erahnen, worum es geht, nämlich ums unerlaubte Einschleusen von An- oder Abfrage-Codes in Datenbanksysteme.
Bevor wir im Folgenden genauer erklären, wie eine SQL-Injektion abläuft, schauen wir zunächst darauf, was sich hinter SQL überhaupt verbirgt.
Was verbirgt sich hinter SQL?
Mit der sehr weit verbreiteten Programmiersprache Structured Query Language (SQL) wird die Interaktion oder Kommunikation zwischen relationalen Datenbanken organisiert – die natürlich auf SQL-Servern liegen.
SQL hat sich als Standard etabliert, weil Programmierern hiermit eine flexible und vielseitige Programmiersprache zur Verfügung steht, die ihnen viele Möglichkeiten zur individuellen Gestaltung ihrer Datenbanksysteme bietet.
Relationale Datenbankmanagementsysteme gehören außerdem zu den populärsten in der IT-Branche, weil sie als sehr zuverlässig gelten und Inkonsistenzen in den Datensätzen vermeiden helfen. Auch Kopieren ist da zwecklos, denn die in diesen Datenbanksystemen eingesetzten SQL-Codes lassen sich nicht einfach in andere Datenbanken einfügen. Was sicherheitstechnisch betrachtet eine große Rolle spielt.
Wenn Sie beispielsweise in einem Webshop ein Produkt anklicken, erfolgt im Hintergrund eine Anfrage an den Server des Webshop-Betreibers und so an die Datenbank, in der die Informationen zum Produkt abgelegt sind. Hierbei kommt die Datenbanksprache SQL zum Einsatz, die im Rahmen der Verarbeitung der Anfrage die Ergebnisse an den Webshop als Suchergebnis zurückspielt.
Damit diese Anfragen überhaupt mit den Datenbanken korrespondieren können – und Ihnen das Produkt angezeigt wird – definieren Programmierer SQL-Befehle, die an den SQL-Schnittstellen die An- und Abfrage-Aufgaben innerhalb des Systems regeln.
Sind SQL-basierte Datenbanksysteme anfällig?
Natürlich halten die Betreiber von Websites und Apps die größtmöglichen Sicherheitsvorkehrungen bei der Gestaltung der An- und Abfrage-Codes und Schnittstellen ein und auch die SQL-Server selbst entsprechen höchsten Sicherheitsstandards.
Allerdings kann es beim Erstellen der oftmals sehr umfangreichen Quellcodes, also in den in einer Programmiersprache geschriebenen Texten eines Programmes, immer zu kleinsten Ungenauigkeiten kommen.
Diese Ungenauigkeiten oder Script-Fehler in den Quellcodes haben zwar auf den ersten Blick meist überhaupt keinen Einfluss auf das Funktionieren der definierten An- und Abfragen – doch Cyber-Betrüger finden schnell die Fehler in den Quellcodes der SQL-basierten Datenbanksysteme. Und natürlich sind sie ein gefundenes Fressen für Hacker.
Wie funktioniert eine SQL-Injektion?
Bei SQL-Injektionen handelt es sich um eine Art von Cyber-Angriff, bei der Hacker darauf abzielen, ihren eigenen Code in eine Website, App oder auch ein Programm einschleusen.
Finden Cyber-Kriminelle also nur kleinste Skript-Fehler oder Ungenauigkeiten in den Quellcodes von SQL-basierten Datenbanksystemen, haben sie ein leichtes Spiel. Denn sie sind dann in der Lage, Sicherheitslücken in Programmen sowie Webseiten und Apps von Unternehmen, Banken, Behörden auszuspähen und eigene Codes einzuschleusen.
Eine SQL-Injektion nutzt dabei in den meisten Fällen eine Sicherheitslücke, die bei einer fehlerhaften Konfiguration der Verbindung zwischen einer Webanwendung und den Datenbanken entstehen kann.
Und an dieser Verbindungsstelle eingeschleuste Codes können ziemlich viel Unheil anrichten, etwa die Log-in-Funktion beziehungsweise die damit einhergehende Authentifizierung umgehen oder andere Daten ausspähen.
Haben Hacker erst einmal über eine kleine Sicherheitslücke Zugriff auf ein SQL-basiertes Datenbankensystem erhalten, ist es für sie außerdem ein Leichtes, auch auf die Datenbanken zuzugreifen, in denen die wirklich sensiblen Daten vorgehalten werden. Beispielhaft stellen wir nachfolgend zwei mögliche Szenarien dar, wie eine SQL-Injektion-Attacke überhaupt starten kann.
SQL-Injektionen und Nutzerdaten
Sehr häufig versuchen Cyber-Kriminelle über Nutzereingaben eine SQL-Injektion auszuführen, beispielsweise wenn wir uns in eine Webseite einloggen, eine Bewertung abgeben oder die Suchfunktion nutzen: Verfügt die entsprechende Webseite nicht über eine ausreichende Eingabebereinigung in den entsprechenden Scripten, ist es für Hacker ein leichtes, genau hier ihre Codes einzuschleusen.
Haben die Hacker ihre Codes erst einmal in die Datenbanken der Webseitenbetreiber eingeschleust, können die Auswirkungen verheerend sein. Sie könnten beispielsweise in unserem Auftrag Transaktionen bei unserer Bank ausführen oder geklaute Daten in größerem Stil im Darknet verkaufen.
Für uns als Nutzer gibt es kaum eine Möglichkeit zu erkennen, ob in einer von uns genutzten Webseite möglicherweise fehlerhafte Scripte verwendet werden oder die Eingabebereinigung unzureichend ist. Aber wir können mit den richtigen Tools durchaus erfahren, ob eine von uns verwendete Webseite gehackt wurde (dazu später mehr). Was wir jedoch festhalten können ist, dass es für Cyber-Kriminelle einfach ist, SQL-Injektionen über den Weg von Eingabefeldern in Webseiten zu initiieren.
Cookies als Auslöser von SQL-Injektionen
Cookies (im Deutschen: Kekse) sind kleine Textdateien, die beispielsweise Auskunft über unsere Webseitenbesuche, Informationen zur Verweildauer und unsere vorgenommenen Eingaben geben. Diese kleinen Textdateien werden im Browser abgelegt, um Ihnen das Internet-Surfen komfortabler zu machen.
Webseiten-Betreiber setzen Cookies beispielsweise ein, um das Nutzungsverhalten analysieren und die Produktausrichtung und andere strategische oder Marketing-Maßnahmen besser planen zu können.
Allerdings können Cyber-Kriminelle Cookies auch so manipulieren, dass sie infizierten Code an den Server des Webseitenbetreibers und damit an die Datenbanken übergeben.
Welche Auswirkung haben SQL-Injektionen auf Privatpersonen?
SQL-Injektionen richten sich in erster Linie an Banken, Behörden, Forschungseinrichtungen und Unternehmen und können verheerende Folgen für die betroffenen Organisationen und Unternehmen haben.
Aber auch Privatpersonen können betroffen sein – nämlich genau dann, wenn sie eine Webseite nutzen, die zur Zielscheibe eines SQL-Injektion-Angriffs wurde. Und die Auswirkungen für Sie als Privatperson können erheblich sein.
Zunächst können Hacker es bei einer SQL-Injektion-Attacke darauf abgesehen haben, Ihre Daten zu erfassen und diese anschließend im Darknet zu verkaufen, was als Identitätsdiebstahl bezeichnet wird. Bestimmt können Sie sich vorstellen, welche Auswirkungen sich hieraus ergeben können. Sie haben beispielsweise keinen Zugriff mehr auf Ihre eigenen Benutzerkonten, können sich etwa in Ihre Versicherungs- oder Banken-Accounts nicht mehr einloggen.
So kann Ihnen also neben einem Identitätsdiebstahl ein erheblicher finanzieller Schaden entstehen, wenn Hacker Geld von Ihrem Konto bei einer Bank oder einem anderen Finanzinstitut entwenden.
Inzwischen gibt es auch für Sie als Privatperson Möglichkeiten, herauszufinden, ob Sie vielleicht indirekt über die Nutzung von Webseiten in die Fänge von Cyber-Kriminellen geraten konnten. Sie können etwa über Avira Avira Identity Assistant ob Ihre E-Mail-Adressen oder persönliche Daten im Dark-Web veröffentlicht wurden.
Wie kann man sich vor SQL-Injektion-Angriffen schützen?
SQL-Injektionen sollen ja immer Unternehmen und Organisationen treffen – Sie als Privatperson sind also nicht das Ziel von Cyber-Angriffen, obwohl die Auswirkungen mitunter verheerend sind.
Deshalb ist es sehr hilfreich herauszufinden, ob man indirekt in die Fänge von Cyber-Kriminellen geraten ist – und viele Webseitenbetreiber informieren auch zeitnah darüber, dass ihre Datenbanken gehackt wurden. Allerdings ist es sehr viel zielführender, die richtigen Instrumente und Services zu verwenden, die Ihnen ein gewisses Maß an proaktivem Schutz vor den Auswirkungen von SQL-Injektion-Angriffen bieten.
Starke Passwörter dank Passwort Manager
Bei all Ihren Internet-Aktivitäten sind gute Passwörter entscheidend für Ihre Sicherheit. Inzwischen werden Sie von vielen vertrauenswürdigen Webseiten bei der Registrierung darum aufgefordert, ein mindestens acht Zeichen umfassendes Passwort zu erstellen, das Sonderzeichen, Zahlen, Groß- und Kleinbuchstaben beinhaltet. Und manchmal wird Ihnen sogar angezeigt, wie „sicher“ ihr Gewähltes ist. Sie wissen natürlich auch, dass Sie möglichst unterschiedliche Passwörter für die verschiedenen Webseiten und Accounts verwenden – und sich von „dubiosen“ Webseiten fernhalten sollten.
Einfacher – und vor allem sicherer – ist die Verwendung eines Passwort Managers. Mit solchen Tools verwenden Sie ein komplexes Master-Passwort und profitieren von deren Verschlüsselungs-Technologien zum Erstellen und Speichern starker Passwörter. Sie funktionieren vergleichbar mit einem Notizbuch, das Sie eingeschlossen haben und dessen Inhalte entsprechend nur für Sie einsehbar sind.
Die Verwendung eines Passwort Managers ist in unseren Augen darum eine sinnvolle Maßnahme, mit der Sie bei Ihren Internet-Aktivitäten den generellen Schutz erhöhen können.
So müssen Sie sich auch beim Avira Passwort Manager nur noch ein Master-Passwort merken. Und diese Anwendung kann Sie dabei unterstützen, sichere Passwörter für alle Ihre Accounts zu verwenden – in Ihren Browsern sowie auf Ihren mobilen Geräten. Mehrfach verwendete oder schwache Passwörter werden Ihnen hier ebenfalls angezeigt und können direkt geändert werden.
Wurde eine von Ihnen verwendete Webseite etwa mittels SQL-Injektion gehackt, können Sie mit der Pro-Version des Avira Passwort Managers informiert werden und gleich reagieren, indem Sie Ihre Passwörter ändern. Damit kann der Avira Passwort-Manager zur Reduzierung der Auswirkungen eines SQL-Injektion-Angriffes beitragen.
Unerlässlicher Schutz vor den Auswirkungen von SQL-Injektionen: Antiviren-Programme
In Deutschland lag gemäß Statista die Anzahl der Opfer von Internetkriminalität im Jahr 2021 bei rund 17,7 Millionen – bekannt gewordenen Fällen. Die Dunkelziffer wird deutlich darüber liegen. Und bedenkt man, dass SQL-Injektionen zu den Top-10 der Cyber-Angriffe zählen, wird die Bedrohungslage noch eindrücklicher. Darum ist ein Antiviren-Programm unerlässlich. Aber auch das ist Ihnen nicht neu.
Gute Antiviren-Programme führen regelmäßige Prüfungen (Scans) auf all Ihren Geräten durch. Denn vielfach merken wir ja nicht einmal unmittelbar, dass wir möglicherweise Opfer eines SQL-Injektion-Angriffs wurden, weil Cyber-Kriminelle Sicherheitslücken in den von uns genutzten Webseiten entdeckt und ihre Codes eingeschleust haben.
Bereits mit der kostenlosen Avira Free Antivirus Lösung haben Sie die Möglichkeit, Ihre Geräte vor Virenbefall zu schützen, womit Sie zugleich einen besseren Schutz vor den Auswirkungen von SQL-Injektion-Angriffen auf die von Ihnen genutzten Webseiten erzielen können.
Dieser Artikel ist auch verfügbar in: EnglischFranzösischItalienisch