Was ist eine SQL-Injektion (SQLi) und wie kann man sie verhindern? | EasyDMARC

Was ist eine SQL-Injektion (SQLi) und wie kann man sie verhindern?

7 Min Lesezeit

Die Cybersicherheit ist zu einem der Hauptanliegen des digitalen Zeitalters geworden. Jeden Tag erreichen uns Nachrichten über Ransomware, Phishing, Betrug und andere Cyberkriminalität.

Es stimmt, dass wir die Denkweise von Cyberkriminellen nicht ändern können, aber wir können vorbeugende Maßnahmen ergreifen, um verschiedene Arten von Cyberangriffen abzuwehren. Im Folgenden werden wir die SQL-Injektion besprechen – eine häufige Malware-Art.

In diesem Artikel erfahren Sie, was eine SQL-Injektion ist, welche Ziele sie verfolgt, welche Auswirkungen sie hat, welche Arten es gibt und wie ein Beispiel aus der Praxis aussieht. Dieser Artikel enthält auch Tipps zur Vermeidung von SQL-Injektionen, die für technologieorientierte Unternehmen äußerst nützlich sind.

Was ist eine SQL-Injektion (SQLi)?

Also, das Wichtigste zuerst: Was ist eine SQL-Injektion?

SQL steht für Structured Query Language, eine Sprache zur Manipulation und Verwaltung von Daten in einer Datenbank. Ein SQLi-Hacker fügt bösartige Codes in bestehende SQL-Elemente ein, um Systeme so auszutricksen, dass sie ihm Zugang gewähren. Angreifer setzen diese Technik ein, um Daten abzufangen oder Admin-Anmeldeinformationen ausfindig zu machen, mit denen sie die vollständige Kontrolle über ein System oder Netzwerk erlangen können.

 

Wie funktionieren SQL-Injektionsangriffe?

SQL-Injektionsangriffe werden über Webseiten oder Anwendungseingaben ausgeführt. Solche Eingaben sind in der Regel in Suchfeldern, Formularseiten oder URL-Parametern zu finden.

Bei einem SQLi-Angriff suchen Bedrohungsakteure nach Schwachstellen in einem System oder Netzwerk und injizieren bösartige Daten, die unbeabsichtigte Aktionen ausführen, z. B. Zugriff auf Daten gewähren.

Es gibt noch einen anderen Trick, bei dem sie nur die URL ihrer Zielseite an ein automatisiertes Tool weitergeben müssen, und schon ist der Job erledigt.

Beispiel für SQL-Injektion (SQLi)

Im Jahr 2017 verschaffte sich ein russischsprachiger Bedrohungsakteur namens Rasputin mithilfe von SQL-Injection-Schwachstellen erfolgreich Zugang zu den Systemen von mehr als 60 Universitäten und US-Regierungsstellen.

Wie sich später herausstellte, entwickelte er seine eigenen Tools, um solche Angriffe durchzuführen, anstatt kostenlose Tools zu verwenden. Die gestohlenen Informationen wurden auf Schwarzmärkten für Cyberkriminalität zum Verkauf angeboten.

 

Was sind die Ziele und Auswirkungen einer SQL-Injektion?

Ziel eines Injektionsangriffs mit SQL ist es, unbefugten Zugang zu Systemen, wichtigen Informationen und Daten wie Passwörtern, Kreditkarteninformationen und persönlichen Daten zu erlangen. Dies kann das Image einer angesehenen Organisation schädigen und sogar zu einer langfristigen Datenausbeutung führen. Darüber hinaus können Hacker Folgendes tun:

  • Löschen oder Ändern von Inhalten in der Datenbank
  • Exportieren von Quellcode-Dateien
  • Schreiben von Dateien auf dem Datenbankserver

Daher ist es wichtig, dass Sie sich selbst und Ihre Mitarbeiter darin schulen, wie Sie SQL-Injektionsangriffe verhindern können, um die Daten, die Kunden und den Ruf Ihres Unternehmens zu schützen.

 

Welche Arten von SQL-Injektionsangriffen gibt es?

Es gibt fünf gängige Methoden, mit denen Hacker bösartigen Code einschleusen und die Kontrolle über ein System oder Netzwerk erlangen. Lassen Sie uns diese kurz besprechen.

Unionsbasierte SQL-Injektion

Mit der unionsbasierten SQL-Injektion können Angreifer Daten erhalten, indem sie die Ergebnisse einer ursprünglichen Abfrage erweitern. Sie kombiniert im Grunde die Ergebnismenge von zwei oder mehr SELECT-Abfragen.

Blinde SQL-Injektion

Bei der blinden SQL-Injektion fragen Cyberkriminelle die Datenbank mit wahren oder falschen Fragen ab und ermitteln die Antworten anhand der Rückmeldungen. Sie ist mit einem zeitbasierten SQL-Injektionsangriff gekoppelt, da sie bei der Auswertung der erhaltenen Antworten auch die Zeit berücksichtigt.

Boolesche SQL-Injektion

Hier täuschen Hacker Datenbanken gegenüber vor, dass sie über erhöhte Berechtigungen oder korrekte Anmeldedaten verfügen. Diese Methode überschreibt die Bedingungen und die Logik einer Abfrage. Sie wird manchmal mit der blinden SQL-Injektion gepaart, bei der die Eliminierungstechnik die erforderlichen Daten extrahiert.

Fehlerbasierte SQL-Injektion

Wenn böswillige Akteure Datenbankfehler auf einer Webseite oder in einer Anwendung über nicht bereinigte Eingaben ausnutzen, spricht man von einer fehlerbasierten SQL-Injektion. Sie verwendet Fehlermeldungen, um Abfrageergebnisse zurückzugeben, die oft vertrauliche Daten offenlegen.

Zeitbasierte SQL-Injektion

Diese Technik wird eingesetzt, wenn böswillige Akteure keine Informationen von einem Datenbankserver abrufen können. Daher verwenden sie Operationen, die eine längere Zeit in Anspruch nehmen. Sie wird in der Regel eingesetzt, wenn Hacker wissen müssen, ob es in den Systemen der Zielpersonen Schwachstellen gibt.

 

Wie erkennt man eine SQL-Injektion?

SQL-Injektionen sind schwer zu erkennen, da sie keine Spuren wie andere Malware hinterlassen. Die einzige effektive Möglichkeit, SQLi-Angriffe zu erkennen, ist die Verwendung eines Schwachstellen-Scanners zur aktiven Überwachung Ihrer Datenbanken. Er zeigt Ihnen auch den Risikograd und die Gesamtauswirkungen eines solchen Angriffs auf Ihre Website an.

 

Wie kann man Hacking durch SQL-Injektion verhindern?

Es ist nicht einfach, SQLi-Angriffe zu erkennen, aber Sie können dennoch einige vorbeugende Maßnahmen ergreifen, um sie abzuwehren. Erstens sollten Sie vermeiden, den Nutzern Datenbankfehler direkt anzuzeigen. Hier sind einige weitere Möglichkeiten, SQL-Injektionsangriffe zu verhindern.

Schulen und Sensibilisieren

Führen Sie regelmäßig Schulungen für neue und alte Mitarbeiter durch, insbesondere in der technischen Abteilung. Die Mitarbeiter sollten über die Risiken von SQL-Injektionen und die Methoden zur Abhilfe informiert sein. Sie können damit beginnen, kleine Handbücher oder Broschüren zu erstellen und sie in das Willkommenspaket für neue Mitarbeiter aufzunehmen.

Nicht auf Nutzereingaben vertrauen

Behandeln Sie alle Nutzereingaben als nicht vertrauenswürdig, da sie alle das Risiko eines Angriffs bergen. Behandeln Sie interne Nutzer auf die gleiche Weise wie öffentliche Eingaben. Sie können auch eine Validierung der Zulässigkeitsliste durchführen, um alle Nutzereingaben mit einer Reihe von genehmigten und definierten Eingaben zu vergleichen. Daten, die nicht mit den zugewiesenen Werten übereinstimmen, werden zurückgewiesen, um SQL-Injektionen zu verhindern.

Whitelisting-Methode anwenden

Setzen Sie die Whitelisting-Methode anstelle von Blocklisting ein. Bei der Whitelisting-Methode werden nur E-Mail-Adressen, IP-Adressen, Domain-Namen und Anwendungen in einer Liste zugelassen, während alle anderen verweigert werden. Dies hilft bei der Verhinderung von Injektionsangriffen, indem unbefugte Stellen wie externe Hacker ausgeschlossen werden.

Neue Technologien willkommen heißen

Alte Malware-Schutztechniken können Ihre Systeme nicht vor Injektionsangriffen mit SQL schützen. Die neuesten Tools und Softwareprogramme können mit der strukturierten Abfragesprache und den entsprechenden Angriffsvektoren umgehen.

Nur geprüfte Mechanismen verwenden

Vermeiden Sie das Herunterladen kostenloser Tools und Software, die vorgeben, vor Cyberangriffen jeglicher Art, einschließlich SQLi-Angriffen, zu schützen, da es sich dabei um eine von Hackern aufgestellte Falle handeln kann. Verwenden Sie stattdessen moderne kostenpflichtige Tools wie eine Web Application Firewall, die Malware wirklich erkennen, verhindern und entfernen.

Wie entfernt man eine SQL-Injektion?

Wenn Ihre Website von einem SQL-Injektionsangriff betroffen ist, können Sie die folgenden Schritte unternehmen, um das Problem zu beheben.

Finden Sie den anfälligen Code

Beginnen Sie damit, die Schwachstelle mit einem vertrauenswürdigen automatischen Tool wie jSQL, Havij oder SQLmap zu identifizieren.

Entfernen Sie eingeschleuste Inhalte und Backdoors

Nachdem Sie den Ort des anfälligen Codes gefunden haben, sollten Sie die bösartigen Injektionen und die beschädigten Daten beseitigen. Es ist hilfreich, ein sauberes Backup Ihrer Datenbank zu haben, um sie in einem unversehrten Zustand wiederherzustellen.

Patchen Sie die Schwachstelle

Es ist wichtig, einen Experten zu Rate zu ziehen und alle Sicherheitslücken regelmäßig zu patchen. Andernfalls können Hacker sie erneut ausnutzen, um SQL-Injektionsangriffe zu starten.

Aktualisieren Sie Ihre Daten

Bereinigen und aktualisieren Sie alle Ihre Daten, um einen erneuten Angriff zu verhindern. Sie sollten auch die Passwörter aller wichtigen Konten und Ordner ändern, sobald ein Experte alle Schwachstellen geflickt hat. Stellen Sie sicher, dass sich in Ihrer Datenbank keine bösartigen Administratoren oder Hintertüren befinden.

Richten Sie eine WAF ein

Verwenden Sie eine Web Application Firewall (WAF), um bösartige Anfragen zu filtern. Diese helfen dabei, Zero-Day-Angriffe zu verhindern, wenn noch kein Patch zur Behebung einer Schwachstelle verfügbar ist.

Fazit

Hacker fügen bösartige Codes in vorhandene SQL-Elemente ein, um in ein System einzudringen, Daten abzufangen oder Admin-Anmeldedaten ausfindig zu machen. Verwenden Sie einen Schwachstellenscanner, um die Datenbankaktivitäten regelmäßig zu überwachen. Denken Sie daran, dass SQL-Injektionen bis zum Angriff keine physischen Spuren hinterlassen. Außerdem ist es besser, die Whitelisting-Technik anzuwenden und alle Schwachstellen regelmäßig zu patchen.  Halten Sie Ihre Daten aktuell, sicher und sauber und erstellen Sie regelmäßig Backups. Insgesamt sollten Sie die Tipps in diesem Artikel umsetzen, um SQL-Injektionsangriffe wirksam zu verhindern.