Glossar

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 ganz oben auf jeder OWASP „Top 10“ Liste. Viele Webanwendungen verwenden Datenbanken zum effizienten Speichern und Abrufen von Daten. Dies bedeutet, dass Datenbanken viele wichtige und vertrauliche Daten enthalten, z. B. Benutzernamen, Kennwörter, Geburtsdaten, Sozialversicherungsnummern und mehr.

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. Der häufigste Schutz besteht darin, alle vom Benutzer bereitgestellten Daten zu bereinigen, um Zeichenfolgen zu entfernen, die vom Interpreter als SQL-Befehle ausgeführt oder direkt an eine SQL-Datenbank übergeben werden können. Bei der Bereinigung werden im Allgemeinen Ausführungsbefehle in Benutzerdaten 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 für zulässige Eingaben begrenzt werden. Auftretende SQL-Befehle oder andere schädliche Codes sollten gefiltert werden.
  • Vermeiden Sie ungesicherte URL-Parameter. Vermeiden Sie die Verwendung von URL-Argumenten, z. B. in einem objektrelationalen Modell (ORM), das Datenbankoperationen auslöst. Verwenden Sie stattdessen eine sichere API für den gesamten Datenbankzugriff.
  • Einschränkung von SQL-Befehlen. Verwenden Sie LIMIT-Befehle in 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 Webseite mit einem kostenlosen Scan auf Schwachstellen überprüfen lassen.