1. Support
  2. Glossar
  3. SQL-Injektion

SQL-Injektion

Was ist SQL Injection?

Eine SQL Injection ist der Versuch eines Angreifers, SQL-Befehle auf eine Website hochzuladen, um Daten auf dem Server zu manipulieren. Das Ziel besteht normalerweise darin, Daten zu stehlen, Daten zu zerstören oder Daten zum Zwecke des Betrugs zu manipulieren. Dies erfolgt häufig durch die Eingabe von SQL-Befehlen in ein Webformular. Es gibt jedoch viele andere Möglichkeiten, SQL-Befehle in einen Webserver einzuschleusen, z. B. indem Befehle an eine URL angehängt oder Befehle in einen HTTP-Post eingefügt werden bzw. durch Einfügen von Befehlen in ein Browser-Cookie, das von Ihrer Website verwendet wird.

Warum SQL Injection ein wichtiges Thema ist

SQL Injections stehen seit über 10 Jahren an der Spitze jeder  OWASP Top 10 Liste. Viele Web-Applikationen verwenden Datenbanken zur effizienten Speicherung und zum Abrufen von Daten. Dies bedeutet, dass Datenbanken viele wichtige und sensible Daten wie Benutzernamen, Passwörter, Geburtsdaten, Sozialversicherungsnummern und mehr enthalten.

Webanwendungen interagieren mit der Datenbankebene mithilfe von SQL-Abfragen. In der Regel werden diese Abfragen mithilfe von Eingaben auf der Webseite ausgeführt – wie bei einer Suchabfrage. Eine schlecht gestaltete Webanwendung akzeptiert jedoch gegebenenfalls jede beliebige Art einer SQL-Abfrage, die in ein Eingabefeld eingegeben wird, auch wenn dieses Feld nur für einen bestimmten Datentyp vorgesehen ist, z. B. für den Vornamen des Benutzers. Angreifer nutzen diesen Fehler aus, indem sie SQL-Abfragen in diese Eingabefelder eingeben, um in der Datenbank gespeicherte Daten abzurufen oder zu beschädigen.

Was Sie selbst tun können

Es gibt eine Vielzahl von Techniken, um Angreifer davon abzuhalten, Ihre Daten zu stehlen oder zu beschädigen. Die meisten Techniken zielen darauf ab, Endbenutzer möglichst davon abzuhalten, Daten oder Befehle zu übermitteln, die von Ihrem Webserver oder Ihrer Datenbank interpretiert werden können. Sie müssen beachten, dass eine Dateneingabe aus einer Vielzahl von Quellen stammen kann, zum Beispiel aus Übermittlungen, URL-Argumenten und Browser-Cookies.

Einige der gebräuchlichsten Techniken zur Verhinderung von SQL-Injections sind unten aufgeführt.

  • Bereinigung. Die häufigste Schutzmaßnahme ist die Bereinigung aller vom Benutzer bereitgestellten Daten, um Zeichenfolgen zu entfernen, die vom Interpreter als SQL-Befehle ausgeführt oder direkt an eine SQL-Datenbank weitergeleitet werden könnten. Bei der Bereinigung werden die in den Benutzerdaten ausführbaren Befehle im Allgemeinen durch alternative, nicht ausführbare Zeichen ersetzt.
  • Filterung und Validierung. Alle vom Benutzer bereitgestellten Daten sollten validiert werden, indem Format, Länge und andere Attribute zulässiger Eingaben begrenzt werden. Auftretende SQL-Befehle oder andere bösartige Codes sollten herausgefiltert werden.
  • Vermeiden Sie ungesicherte URL-Parameter. Vermeiden Sie die Verwendung von URL-Argumenten, wie in einem objektrelationalen Modell (ORM), die Datenbankvorgänge auslösen. Verwenden Sie stattdessen eine sichere API für den gesamten Datenbankzugriff.
  • Begrenzung des Umfangs von SQL-Befehlen. Verwenden Sie LIMIT-Befehle innerhalb von SQL-Vorgängen, um die Offenlegung von Daten zu minimieren, falls eine SQL Injection Ihre Datenbank erreicht.

Obwohl Codierungstechniken wie die oben aufgeführten wichtig sind, garantiert auch eine sorgfältige Codierung keinen Schutz. Softwarebibliotheken von Drittanbietern, nachfolgende Codeänderungen durch andere Entwickler und neuartige Verschleierungsversuche können Ihre Website Angriffen durch SQL Injections aussetzen. Durch Hinzufügen einer automatisierten Schutzebene mit einer Web Application Firewall kann sichergestellt werden, dass Ihre Websites und Webanwendungen geschützt bleiben.

Wie Barracuda Sie unterstützen kann

Die Barracuda Web Application Firewall schützt Ihre Anwendungen und Daten vor allen Arten von Angriffen durch SQL Injection, indem sie leistungsstarke positiv und negativ ausgerichtete Sicherheitsmodelle verwendet. Diese ermöglichen es, sowohl herkömmliche als auch verschleierte Angriffe via Datenbankabfrage zu identifizieren und zu blockieren, indem nur zulässige Eingaben in einem Feld akzeptiert werden.

Mehr dazu

Auf Anfrage geben wir Ihnen gerne weitere Tipps zum Schutz Ihres Unternehmens vor SQL Injections und Hunderten anderer Bedrohungen. Zudem können Sie die Barracuda Web Application Firewall kostenlos testen und Ihre Website mit einem kostenlosen Scan auf Schwachstellen überprüfen lassen.