Datenbanken machen aus riesigen Datenmengen digitale Informationen mit Mehrwert. Damit sind sie ein zentraler Bestandteil von Webseiten und anderen Webanwendungen. Allerdings auch ein Risikofaktor: Bei einer SQL-Injection werden Datenbanken zur Sicherheitslücke und zur Gelegenheit für Cyberkriminelle. Was sich hinter dieser Form des Angriffs verbirgt und – viel wichtiger – wie Sie eine SQL-Injection vermeiden können, erfahren Sie hier.
Eine SQL-Injection (abgekürzt: SQLi) ist eine Art von Angriff, der auf Datenbanken abzielt. Dabei nutzen Hacker eine Sicherheitslücke in einer Webseite oder einer Anwendung aus, um eine Datenbank dazu zu bringen, eine bestimmte Aktion auszuführen.
So läuft eine Injection ab
SQL steht für »Structured Query Language«. Dabei handelt es sich um eine Programmiersprache, die bei der Kommunikation mit Datenbanken zum Einsatz kommt. SQL-Injection wiederum bedeutet auf Deutsch in etwa »SQL-Einschleusung«. Bei einer SQL-Injection schleusen Cyberkriminelle nämlich bösartigen Code in eine Webseite oder Webanwendung ein. Dazu suchen die Angreifer zuerst nach Schwachstellen. Das können zum Beispiel Eingabefelder oder Formulare auf einer Webseite sein, die mit einer Datenbank interagieren. An diesen Stellen findet die namensgebende »Einschleusung« statt: Hacker fügen beispielsweise bei einem Login-Feld eine bestimmte Zeichenfolge ein, mit der sie den SQL-Code der Datenbank manipulieren können.
Wenn die Anwendung nicht ausreichend geschützt ist, gelangt der bösartige Code in die Datenbankabfrage und die Datenbank interpretiert ihn als gültigen Befehl. Das kann dazu führen, dass sich die Anfrage ändert und zusätzliche – von den ursprünglichen Datenbank-Programmierern nicht beabsichtigte – Aktionen ausgeführt werden. Zum Beispiel könnte ein Angreifer durch die Manipulation einer Login-Abfrage Zugriff auf alle Benutzerkonten bekommen. Doch nicht nur das: Der Angreifer erhält möglicherweise Zugriff auf sensible Daten und kann sie verändern oder sogar die Datenbank komplett kontrollieren – je nachdem, wie erfolgreich die SQL-Injection war und welche Schwachstelle ausgenutzt wurde.
Abonnieren Sie unseren Newsletter mit spannenden Neuigkeiten rund um Domains, eine sichere digitale Identität und unsere Produktneuheiten
Beispiele für gefährliche Schwachstellen
Dabei bieten viele Websites und Webanwendungen weiterhin viele Einfalltore für SQL-Injections. Hacker finden schnell Datenbankserver, die für ihre Angriffe infrage kommen. Häufige Ziele von SQL-Injections sind Datenbanken, welche die Software MySQL nutzen. Vor allem veraltete Schnittstellen der Programmiersprachen PHP und ASP können in MySQL die Sicherheit Ihrer Anwendung gefährden und das Risiko für SQLi erhöhen. Konkrete Schwachstellen umfassen außerdem:
- Benutzereingabe und Eingabedaten: Auf fast jeder Webseite und in fast jeder Anwendung können Benutzer in irgendeiner Form Eingaben machen – meist über entsprechende Felder und Formulare. Diese sind ein willkommenes Einfalltor für Cyberkriminelle. Denn je nachdem wie eine Seite oder Anwendung Benutzereingaben verarbeitet, liegt hier die Hauptquelle für SQLi-Schwachstellen. Bei unzureichender Prüfung und Validierung ist es für Hacker ein Leichtes, speziell gestaltete Eingaben zu tätigen und so bösartige Codes einzuschleusen.
- Datenbankabfragen und Befehle: Manche Anwendungen erstellen SQL-Befehle auf Basis von Benutzereingaben. Diese direkte Interaktion mit der Datenbank birgt ebenfalls Risiken. Falls die Anwendung diese Eingaben nämlich nicht ordnungsgemäß behandelt und »säubert«, können Angreifer diese Sicherheitslücke für eine SQL-Injection ausnutzen.
- Anweisungen und Exec-Funktionen: Genauso ermöglichen auch manche Programmiersprachen, bestimmte Befehle oder Programmanweisungen direkt auf dem Server auszuführen. Sollte dieser Ausführungsprozess Benutzereingaben einschließen oder in irgendeiner anderen Form unsicher sein, werden Kriminelle diese Schwachstelle nur allzu gerne für Ihren SQLi-Angriff verwenden.
- Datenverkehr und Datenübertragung: Hacker müssen aber nicht einmal direkt auf die Anwendung, die Datenbank oder den Server zugreifen. Stattdessen können sie einfach den Datenverkehr zwischen den verschiedenen Stationen abfangen und manipulieren. Dadurch haben die Kriminellen nicht nur die Möglichkeit, schadhaften Code einzuschleusen: Sie können Schwachstellen im Kommunikationsprotokoll des Servers entdecken und auf diesem Weg direkt auf selbigen zugreifen.
3 Tipps: Wie Sie eine SQL-Injection verhindern
Die beste Möglichkeit, sich vor SQL-Injections zu schützen, ist eine entsprechend sichere Digitalinfrastruktur – also zuverlässige und mit entsprechenden Einstellungen programmierte Software und Hardware. Zusätzlich können Sie mit kleinen, aber wirksamen Dingen dazu beitragen, das Risiko von SQLi-Angriffen zu minimieren.
- Bleiben Sie auf dem neuesten Stand! – Veraltete Software ist allgemein eines der größten digitalen Sicherheitsrisiken. Um Bedrohungen wie SQL-Injections zu vermeiden, ist es daher essenziell, dass Sie Updates für Datenbankserver und Anwendungen ausführen und immer die aktuellen Versionen nutzen.
- Schränken Sie den Zugriff ein! – Indem Sie die Zugriffsrechte von Anwendungen auf die Datenbank einschränken, minimieren Sie die Wahrscheinlichkeit und das Ausmaß möglicher Angriffe. Gewähren Sie jedem Programm nur die minimalen Berechtigungen, die notwendig sind, damit es seine Aufgaben ausführen kann.
- Sensibilisieren Sie andere! – Sie möchten eine Webanwendung mit Datenbank programmieren lassen? Dann weisen Sie Entwickler unbedingt auf relevante Sicherheitsaspekte hin. Schulen Sie außerdem alle Personen, welche die Anwendung ebenfalls nutzen werden.
Am einfachsten ist es natürlich, von vornherein auf die Sicherheitsexpertise von Profis zu setzen: Mit dem Hosting von united-domains können Sie nicht nur auf eine gut geschützte digitale Infrastruktur, sondern auch jederzeit auf die Unterstützung unserer Spezialisten zu
Häufig gestellte Fragen zu SQL-Injection
Was ist das Ziel von SQL-Injections?
Die Ziele eines SQLi-Angriffs sind vielfältig. Zum Beispiel können Hacker versuchen, auf vertrauliche oder sensible Daten zuzugreifen. Dies könnten persönliche Informationen wie Benutzernamen, Passwörter, Kreditkartendaten oder andere vertrauliche Daten sein, die in der Datenbank gespeichert sind. Ein weiteres Ziel ist, die in der Datenbank gespeicherten Daten und Tabellen (beispielsweise die Benutzertabelle) zu manipulieren oder zu verändern – beispielsweise um Chaos zu stiften oder die Integrität der Informationen zu beeinträchtigen. Wie häufig bei Cyberkriminalität sind Informations- und Identitätsdiebstahl mit dem übergeordneten Ziel, sich finanziell zu bereichern, die häufigste Motivation für SQL-Injections.
Ist eine SQL-Injection strafbar?
Ja, gemäß dem deutschen Strafgesetzbuch (StGB) können Handlungen im Zusammenhang mit SQLi-Angriffen strafbar sein. Insbesondere könnten sie unter den Tatbestand der Computersabotage gemäß § 303b StGB fallen. Der Paragraf behandelt »Straftaten gegen Computerprogramme«. Dazu zählen Handlungen, wie unbefugt in Computersysteme einzudringen oder Daten zu manipulieren. Die genaue rechtliche Beurteilung eines spezifischen Falls hängt jedoch natürlich von verschiedenen Faktoren ab, einschließlich der Art des Angriffs, des entstandenen Schadens und anderer Umstände.
Sind bestimmte Programme und Programmiersprachen besser gegen SQLi geschützt?
Keine Programmiersprache und kein Programm ist komplett immun gegen SQL-Injections. Doch manche bieten Möglichkeiten, einem SQLi-Angriff besser vorzubeugen. Zum Beispiel nutzt die Programmiersprache ABAP sogenannte »Prepared Statements«, also »vorbereitete Anweisungen«. Diese Funktion macht (stark vereinfacht gesagt) Benutzereingaben sicherer, so dass mit ABAP das Risiko einer SQL-Injection geringer ausfällt. Doch mit aktueller Software und entsprechenden Maßnahmen für umfassenden Schutz, können Sie SQL-Injections auch mit PHP, MySQL und Co verhindern.
Online Brand Protection
Unternehmen sind diversen Cyber Security Risiken ausgesetzt. Viele übersehen dabei die Gefahren, die entstehen, wenn man keine Domain Monitoring Strategie aufgesetzt hat. Klingt relevant? Lernen Sie bei uns mehr zu diesem Thema.