Was ist SQL-Injection (SQLi)?

SQL-Injection ist eine cyberattack Dies nutzt die schlechte Eingabevalidierung in SQL-Abfragen aus. Wenn eine Anwendung nicht vertrauenswürdige Benutzereingaben in einer SQL-Abfrage an eine Datenbank verwendet, kann die Abfrage möglicherweise durch absichtlich fehlerhafte Benutzereingaben geändert werden. SQL-Injection-Angriffe können verwendet werden, um auf Daten in der Datenbank zuzugreifen, diese zu ändern oder zu löschen.

Download the eBook Vereinbaren Sie eine Demo

Was ist SQL-Injection (SQLi)?

Wie ein SQL-Injection-Angriff durchgeführt wird

Anwendungen, die SQL-Abfragen basierend auf Benutzereingaben durchführen, sind potenziell anfällig für SQL-Injection-Angriffe. Beispielsweise kann eine Webanwendung SQL-Abfragen verwenden, um einen Authentifizierungsprozess zu implementieren. Der Benutzer gibt seinen Benutzernamen an, den die Anwendung verwendet, um den Hash des Passworts für das Konto dieses Benutzers abzurufen. Wenn der Hash des vom Benutzer bereitgestellten Passworts mit diesem Passwort-Hash übereinstimmt, authentifiziert sich der Benutzer erfolgreich und erhält Zugriff auf sein Konto.

Wenn die Webanwendung keine Validierung des Benutzernamens durchführt, bevor sie ihn in eine SQL-Abfrage einbezieht, könnte ein absichtlich falsch formatierter Benutzername vom Programm falsch interpretiert werden. Beispielsweise verwenden SQL-Abfragen häufig einfache Anführungszeichen (') oder doppelte Anführungszeichen (“), um Daten in einem Befehl zu kennzeichnen. Beispielsweise könnte ein Befehl zum Nachschlagen eines Kundendatensatzes in einer Datenbank basierend auf dem Benutzernamen user lauten SELECT * FROM customer WHERE username=“user“.

Ein Angreifer, der einen SQL-Injection-Angriff gegen seinen Befehl durchführt, könnte ein doppeltes Anführungszeichen in seine Eingabe einfügen, damit einige seiner Daten als Code interpretiert werden. Betrachten Sie beispielsweise den Benutzernamen Benutzer“ ODER „1“=“1.

Beim Einfügen in die SQL-Abfrage wird die Abfrage zu SELECT * FROM customer WHERE username=“user“ OR „1“=“1“. Anstatt nach Datensätzen zu suchen, bei denen der Benutzername mit dem vom Benutzer angegebenen Wert übereinstimmt, gibt diese Abfrage Datensätze zurück, die eine von zwei Bedingungen erfüllen. Der erste ist der beabsichtigte Test Benutzername = „Benutzer“, was den Datensatz des Benutzers zurückgeben würde.

Die zweite Bedingung ist der Test „1“=“1“. Da dies immer zutrifft, werden alle Datensätze in der Datenbank zurückgegeben. Dies könnte es dem Angreifer ermöglichen, vertrauliche Informationen über andere Benutzer zu extrahieren oder möglicherweise die Authentifizierung zu umgehen oder sich als anderer Benutzer zu authentifizieren.

Arten der SQL-Injection

SQLi-Angriffe können zu unterschiedlichen Zwecken eingesetzt und auf unterschiedliche Weise durchgeführt werden. Zu den drei Haupttypen von SQLi gehören:

  • In-Band-SQLi: In-Band-SQLi-Angriffe verwenden dasselbe Medium, beispielsweise eine HTTP-Anfrage, um ihre Angriffe durchzuführen und Ergebnisse zu sammeln. Zwei häufige Formen eingehender SQLi-Angriffe sind fehlerbasierte SQLi-Angriffe, die versuchen, Fehlermeldungen zu generieren, die Informationen über die Zieldatenbank zur Verwendung bei Angriffen bereitstellen, und Union-basiertes SQL, das den SQL UNION-Operator zum Zusammenführen von SQL SELECT verwendet Aussagen.
  • Blindes SQLi: Bei einem blinden SQLi-Angriff erhält der Angreifer aufgrund seiner Anfragen keine Daten vom Server. Stattdessen modifiziert der Angreifer seine Angriffe basierend auf dem Verhalten des Servers. Beispielsweise können unterschiedliche Eingaben dazu führen, dass ein Vorgang erfolgreich ist oder fehlschlägt, oder sich auf die Zeit auswirken, die für die Ausführung eines Vorgangs benötigt wird.
  • Out-of-Band-SQLi: Out-of-Band-SQLi-Angriffe führen einen Angriff über ein Medium durch und sammeln Daten über ein anderes. Dieser Angriff hängt von der Verfügbarkeit bestimmter Funktionen auf dem Datenbankserver ab. Beispielsweise kann ein Angreifer den Erfolg eines SQLi-Angriffs daran messen, ob er den Datenbankserver dazu zwingen könnte, HTTP- oder DNS-Anfragen an einen vom Angreifer kontrollierten Server zu generieren.

So verhindern Sie SQLI

SQLi-Angriffe machen sich die schlechte Eingabevalidierung zunutze, wenn nicht vertrauenswürdige Daten für SQL-Befehle verwendet werden. Bei vielen SQLi-Angriffen wird in der Benutzereingabe ein unerwartetes Zeichen, beispielsweise ein einfaches oder doppeltes Anführungszeichen, verwendet.

Die Durchführung einer Eingabevalidierung vor der Einbindung von vom Benutzer bereitgestellten Daten in SQL-Abfragen kann dazu beitragen, die Gefahr von SQLi-Angriffen zu verringern. Beispielsweise könnte eine Anwendung die Benutzereingabe auf einen bestimmten Satz von Zeichen beschränken, indem sie beispielsweise nur alphanumerische Benutzernamen zulässt, oder die Aufnahme bestimmter Zeichen in die Benutzereingabe blockieren. Allerdings ist die Eingabevalidierung zwar wichtig, reicht aber nicht aus, um vor SQL-Injection-Angriffen zu schützen. Angreifer können möglicherweise Zulassungs- oder Blockierungslisten umgehen, indem sie unerwartete Zeichenkombinationen verwenden, um Blockaden zu umgehen.

Aus diesem Grund sollten Unternehmen auch a Web Application Firewall (WAF) oder idealerweise Schutz von Webanwendungen und APIs (WAAP) vor Webanwendung und API, die SQL-Abfragen durchführen. Diese Lösungen können dabei helfen, bösartige Anfragen zu identifizieren und zu blockieren, die versuchen, SQLi und andere Angriffe gegen Webanwendungen und APIs auszunutzen.

SQLi-Prävention mit Check Point

SQLi-Angriffe sind einer von vielen Angriffen, die eine Bedrohung für ein Unternehmen darstellen Anwendungssicherheit (AppSec). Unternehmen benötigen Sicherheitslösungen, die ihre mit dem Internet verbundenen Anwendungen und Datenbanken sowohl vor Ort als auch in der Cloud schützen können.

Check Point CloudGuard AppSec bietet automatisierte WAAP-Funktionen, die lernen, wie eine Anwendung funktioniert, und verhindern, dass unrechtmäßige und böswillige Anfragen anfällige Anwendungen erreichen. Weitere Informationen zu CloudGuard AppSec und seiner Fähigkeit zum Schutz vor SQLi und anderen Angriffen finden Sie hier E-Book. Gerne auch Melden Sie sich für eine kostenlose Demo an um sich selbst von den Möglichkeiten von CloudGuard AppSec zu überzeugen.

×
  Feedback
Diese Website verwendet Cookies für ihre Funktionalität sowie für Analyse- und Marketingzwecke. Durch die weitere Nutzung dieser Website erklären Sie sich mit der Verwendung von Cookies einverstanden. Für weitere Informationen lesen Sie bitte unseren Hinweis zu Cookies.
OK