Datenbank Firewall
Ursächlich für erfolgreiche SQL-Injektionen durch Angreifer sind oft mangelnde Maskierungen und fehlende Filterungen in den Anwendungen, die Daten in SQL-Datenbanken eintragen (z.B. Webanwendungen). Durch unsaubere Programmierung entstehen Lücken und Möglichkeiten, die die Angreifer ermitteln und ausnutzen können. Zum Beispiel kann der Angreifer durch gezielten Einsatz von Funktionszeichen weitere SQL Befehle einschleusen. Es ist für einen Programmierer aber auch nicht immer einfach, alle erdenklichen Szenarien zu beachten und der Aufwand für eine entsprechend sichere Anwendungsprogrammierung steigt durch die Vielzahl an verschiedenen Sprachen und Methoden, die hierbei zur Anwendung kommen.
Hat der Betreiber eines Datenbankservers keine Kontrolle über die zugreifenden Anwendungen, sollten hier weitere Schutzmechanismen eingerichtet werden. Sicherlich ist hier ein direkter Schutz auf der Datenbankebene sinnvoll. Einen weiteren Schutz kann man durch den Einsatz einer Datenbank Firewall erreichen. Diese Firewall arbeitet hierbei wie eine Art Filtermodul. Diese Filter sind in der Lage, definierte Anfragen und Befehle zu filtern, zu blockieren und zu protokollieren. Zum Beispiel werden mit entsprechenden Grammatikanalysen die abgesetzten SQL-Befehle untersucht. Zuvor kann durch den Administrator festgelegt werden, welche Anweisungen passieren können, welche geblockt werden oder welche nur aufgezeichnet und eventuell gemeldet werden (Black Lists, White Lists). Es ist auch möglich, einzelne Filter für bestimmte Anwendungen oder Nutzer zu definieren oder bestimmte Filter nur zu bestimmten Uhrzeiten zu schalten. Auch eine Begrenzung der Abfragen in einem bestimmten Zeitraum ist möglich (Verhinderung von DoS Angriffen).
Die Möglichkeiten, die Firewall zum Protokollieren, Überwachen und Out-of Band Monitoring zu nutzen, bieten dem Forensiker die Möglichkeit, bereits erfolgte oder aktuell andauernde Angriffe nachvollziehen zu können und die Vorgehensweise der Angreifer ermitteln zu können. Besteht zum Beispiel der Verdacht eines externen Angriffes oder einer internen Manipulation, kann eine entsprechende Firewall zum Überwachen und Feststellen konfiguriert werden. So kann nachvollzogen werden, welcher Nutzer oder welche Anwendung wann potenziell schädliche Befehle abgesetzt hat.
Nachteilig kann jedoch sein, dass bei falscher oder fehlerhafter Konfiguration der Datenbank Firewall, der Betrieb der Anwendung gestört oder verzögert wird.
Quellen
https://www.datacenter-insider.de/schutz-vor-sql-injections-a-497119/index2.html
https://apex.oracle.com/pls/apex/germancommunities/dbacommunity/tipp/3521/index.html