Die Durchsetzung des Zugriffs mit den geringsten Rechten, die Bereinigung von Benutzereingaben und die Einschränkung von Datenbankprozeduren können helfen, SQL-Injection und anschließende Datenschutzverletzungen zu verhindern.
Nach Lektüre dieses Artikels können Sie Folgendes:
Ähnliche Inhalte
Was ist SQL-Injection?
Was ist ein API?
Wie funktionieren APIs?
Was ist API-Sicherheit?
Sicherheit von Webanwendungen?
Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!
Link zum Artikel kopieren
Structured Query Language Injection (SQLi) ist ein Code-Injection-Angriff, der es Angreifern ermöglicht, sensible Informationen in SQL-Datenbanken abzurufen, zu manipulieren oder zu zerstören. Bei diesen Angriffen werden spezielle Befehle in SQL-Abfragefelder eingeschleust. Wenn diese Befehle ausgeführt werden, können Angreifer die Identität legitimer Nutzer vortäuschen, geschützte Daten einsehen oder abrufen und sogar Root-Zugriff auf Server erlangen.
Angreifer nutzen bei SQLi häufig Schwachstellen in Anwendungsprogrammierschnittstellen (Application Programming Interfaces, APIs) aus, die nicht in der Lage sind, ordnungsgemäß zwischen legitimem und unsicherem Code zu unterscheiden. Ohne die Möglichkeit, geänderte Befehle oder Abfragen zu erkennen, können diese APIs dazu verwendet werden, um böswillige Anfragen auszuführen, z. B. um Web Application Firewalls (WAF) oder Authentifizierungsmaßnahmen zu umgehen.
SQLi wird in der Regel nach einer von drei Methoden durchgeführt:
Praktische Beispiele für harmlose und böswillige SQL-Abfragen finden Sie unter Was ist SQL-Injection?
SQL-Injection ist zwar eine der häufigsten API-Bedrohungen, kann aber mit den richtigen Präventionsstrategien wirksam verhindert werden. Hilfreiche Ansätze zur Prävention von SQL-Injection sind die Einschränkung von Datenbankprozeduren, die Bereinigung von Datenbankeingaben und die Durchsetzung des Zugriffs nach dem Least-Privilege-Prinzip.
SQL-Injection hängt weitgehend von der Fähigkeit eines Angreifers ab, Dateneingaben und Datenbankfunktionen zu manipulieren. Unternehmen können das Risiko nicht autorisierter oder böswilliger Abfragen verringern, indem sie diese Eingaben einschränken und die Art der möglichen Datenbankprozeduren begrenzen. Dies kann durch folgende Maßnahmen erreicht werden:
Benutzereingaben in eine SQL-Datenbank sollten regelmäßig überwacht, validiert und bereinigt werden, um Schadcode zu entfernen. Die Validierung von Eingaben stellt sicher, dass die Daten ordnungsgemäß überprüft und nach vordefinierten Kriterien formatiert werden, während die Bereinigung von Eingaben die Eingaben verändert (oder „bereinigt“), indem ungültige oder unsichere Zeichen entfernt und die Eingaben bei Bedarf neu formatiert werden. Die Validierung von Eingaben kann auf verschiedene Weise erfolgen:
Zugriff nach dem Least-Privilege-Prinzip ist das Prinzip, Nutzern nur so viel Zugriff auf geschützte Ressourcen zu gewähren, wie es ihre Rolle erfordert. Dies kann z. B. bedeuten, dass die Anzahl der Nutzer, die Administratorrechte für eine Datenbank erhalten, begrenzt wird oder dass Nutzern temporäre Administratorrechte gewährt werden, die später wieder entzogen werden können.
Die rollenbasierte Beschränkung des Nutzerzugriffs trägt auch dazu bei, die Auswirkungen eines Einbruchs zu minimieren, da Angreifer, die mit gestohlenen Zugangsdaten in eine Datenbank eindringen, auch nur eingeschränkt in der Lage sein werden, geschützte Daten anzuzeigen, zu ändern, zu stehlen oder zu zerstören. Aus dem gleichen Grund sollten Unternehmen den gemeinsamen Zugriff auf Datenbanken über mehrere Websites und Anwendungen hinweg einschränken.
Mit einem leistungsstarken Portfolio für Anwendungs- und API-Sicherheit hilft Cloudflare Unternehmen, ihre Widerstandsfähigkeit gegen SQLi-Angriffe zu erhöhen: