0721 1320980 info@iscl.de
Inhalt
Was versteht man unter einem Query-Injection-Angriff?
Welche Folgen kann ein Query-Injection-Angriff haben?
Gibt es viele Query-Injection-Angriffe?
Welche Sicherheitsmaßnahmen gibt es gegen Query-Injection-Angriffe?
Sind Query-Infection-Angriffe immer noch gefährlich?
Phishing und Ransomware haben wohl die meisten schon einmal als Begriffe gehört. Aber was versteht man unter so genannten Query-Injection-Angriffen? Wir schauen uns in unserem heutigen Blog-Beitrag diese Angriffsvariante einmal genauer an, klären was sie ist und ob sie heute noch ein Problem darstellt.
Der Buchstabe Q umringt von Symbolen für IT-Sicherheit - Es geht um Queryinjection

Was versteht man unter einem Query-Injection-Angriff?

Kurz gesagt, ist eine Query Injection eine Manipulation einer Datenbankabfrage durch präparierte Nutzereingaben. Die häufigste Form ist die SQL-Injection.
Man kann dies etwas vereinfacht anhand eines Beispiels darstellen. Sie möchten sich auf einer Seite mit Ihren Nutzerdaten einloggen. Dazu geben Sie Ihren Benutzernamen und das Passwort in die Felder der Anmeldemaske ein. Im Hintergrund geschieht dann eine Datenbankabfrage, ob der entsprechende Nutzer zu dem Passwort passt. Wenn die Anwendung für die Anfrage falsch konfiguriert ist, lässt sie sich die dahinter liegende Datenbank über diese Felder manipulieren. Anstelle eines Benutzers oder Passworts könnte man dann einen entsprechenden Code eingeben und dadurch an Informationen gelangen, die eigentlich nicht abgefragt werden sollten. Man könnte sich auch Zugriff zum System verschaffen, obwohl hierfür keine Rechte bestehen.

Welche Folgen kann ein Query-Injection-Angriff haben?

Die Auswirkungen können sehr unterschiedlich sein. Neben Zugriff auf vertrauliche Daten können auch Benutzerkonten einfach übernommen werden. Bei einer entsprechend fehlerhaften Anwendung vor der Datenbank lassen sich Daten manipulieren oder löschen. Im schlimmsten Fall könnte die ganze Datenbank übernommen werden. Dies ist vor allem dann kritisch, wenn die Datenbank selbst einiges an Rechten im System hat. Aber auch der reine Zugriff auf sensible Kundendaten ist bereits kritisch, da diese dem Datenschutz unterliegen. Für einen Online-Shop würde ein solcher Vorfall einen starken Reputations- und finanziellen Schaden anrichten.

Gibt es viele Query-Injection-Angriffe?

Die meisten SQL-Datenbanken heutzutage sind gut gegen Query-Injection-Angriffe geschützt. Es gibt gängige Schutzmechanismen, die fast alle Datenbanken standardmäßig haben. Somit sind sie ein weniger großes Einfallstor für Kriminelle. Allerdings tauchen immer wieder Schwachstellen auf. Meist bei entweder älteren Anwendungen oder selbst geschriebenem Datenbankcode. Auch schlecht gewartete, interne Systeme können hier noch Lücken aufweisen. Aus diesen Gründen wird bei Pentests auch gern einmal ein Query-Injection-Angriff versucht.

Welche Sicherheitsmaßnahmen gibt es gegen Query-Injection-Angriffe?

Parametrisierte Abfragen verwenden

Die sinnvollste und wichtigste Schutzmaßnahme sind Prepared Statements oder parametrisierte Abfragen zu verwenden. Die Idee dahinter ist, dass Daten und Befehle an die Datenbank strikt voneinander getrennt werden. Dadurch werden Daten, die in einem Eingabefeld eingegeben werden auch nur als solche behandelt und nicht als ausführbarer SQL-Befehl.

Validierung der Eingaben

Die Eingaben von Benutzerdaten können auf Format, Länge und erlaubte Zeichen geprüft werden. Beispielsweise kann ein Benutzername auf 14 Zeichen begrenzt werden, womit ein längerer SQL Befehl nicht eingegeben werden kann. Dadurch wird ein Angriffsversuch bereits direkt am Anfang automatisch geblockt.

Zero-Trust auch für Datenbanken

Nutzerkonten, und auch die Datenbank selbst, sollten so wenig Rechte wie möglich bekommen. Dies ist auch gegen andere Angriffe sinnvoll, kann aber auch bei einem Query-Injection-Angriff helfen, da sich etwaiger Schaden deutlich begrenzen lässt.

Fehlermeldungen auf das Nötigste reduzieren

Zu detaillierte Fehlermeldungen bei einer Eingabe können Angreifern wertvolle Hinweise über den Aufbau und die Struktur der Datenbank geben. Deshalb sollte die Fehlerausgabe so gering wie möglich gehalten werden.

Regelmäßige Sicherheitsprüfungen

Sicherheitsscans, Code-Reviews oder auch Penetrationtests können dazu führen, dass eine eventuell entstandene Schwachstelle frühzeitig erkannt und geschlossen werden kann. Dies bietet sich natürlich nicht nur für Datenbanken an, sondern für alle Bereiche in einem Unternehmen.

Sind Query-Infection-Angriffe immer noch gefährlich?

Erfolgreich durchgeführte Query-Infection-Angriffe sind durchaus noch gefährlich, da sie sehr viel Schaden anrichten oder man mit ihrer Hilfe sehr viele Daten klauen kann. Allerdings sind heute die meisten Datenbanken bereits von Ihrer Grundstruktur dagegen geschützt.
Wenn Sie sich unsicher sind, ob es bei Ihnen eine entsprechende Lücke gibt, kontaktieren Sie uns gern und wir besprechen gemeinsam Möglichkeiten, wie wir in Ihrem System Schwachstellen finden und schließen können.