Security-Teams kennen sie aus vielen Softwareprogrammen und auch in mit ABAP/4 programmierten Anwendungen taucht sie auf: die SQL Injektion, kurz SQLi. Angreifer nutzen dabei Schwachstellen in der Anwendungsschicht, um auf Information der Datenbank zuzugreifen, sie zu verändern oder bösartigen Code in SQL-Anweisungen einzuschleusen (z. B. über die Oberflächen des SAPGUI oder der Fiori-Anwendungen), sodass die Angreifer das Verhalten der Anwendung zu ihren Gunsten beeinflussen.
Fehlt die Eingabevalidierung, kann ein Anwender eine SQLi einfach durch die Oberfläche vornehmen. Dabei nutzt der Angreifer die SQL-Syntax, die von der SAP-Anwendung entgegengenommen wird und mit der im Programcode existierenden SQL-Anweisung verknüpft wird. Gelingt es ihm, die bekannte SQL-Syntax so zu nutzen, dass die SQL-Anweisungen zu seinen Gunten verändert werden, können ein Zugriff auf sensible Daten, Manipulation von Datensätzen oder sogar das Löschen die Folge sein.
Beispiel wäre ein einfaches ABAP/4-Programm, das einem Benutzer die Suche nach Kundendatensätzen z.B. in einem definierten Buchungskreis ermöglicht. Es übernimmt die Benutzereingabe, verbindet sie mit der SQL-Anweisung und führt die Abfrage aus:
data: lv_last_name type string,
lt_customers type table of customers.
lv_last_name = request->get_form_field( ‘last_name’ ).
select * from customers into table lt_customers
where last_name = lv_last_name.
execute.
Das Programm validiert oder bereinigt die Benutzereingaben jedoch nicht ordnungsgemäß, so dass ein Angreifer zum Beispiel mit dem SQL-String ‚ OR ‚1‘=’1 im Feld Nachnamen an die SQL-Anweisung übergeben kann. Damit ändert sich die SQL-Anweisung wie folgt:
select * from customers into table lt_customers
where last_name = ‘ ‘ OR ‘1’=’1′.
Diese geänderte Anweisung würde alle Kundendatensätze in die Datenbank zurückgeben und dem Angreifer den Zugriff auf sensible Informationen ermöglichen.
Ein solcher Angriff kann nur schwer erkannt werden. Um den Angriffsvektor zu eliminieren, muss die Schwachstelle erkannt und durch Optimierung des Programmcodes unter hinzufügen einer Validierung, welche die Eingaben überprüft und bereinigt, bevor sie in der SQL-Anweisung verwendet werden.
Darüber hinaus können die Verwendung von vorbereiteten Anweisungen zwischen der Zuweisung der Parameter zum SQL-Statement das Risiko eines erfolgreichen Angriffs weiter verringern. Ebenso ist es in einigen Datenbanken so zum Beispiel SAP HANA möglich mit der Implementierung von Zugriffskontrollen auf Datenbankebene zusätzliche Schutzmechanismen zu etablieren.
Die Maßnahmen können jedoch nur dann ergriffen werden, wenn alle anfälligen Codefragmente gefunden werden. Das Finden der angreifbaren Programme stellt zumal die größte Herausforderung für SAP-Kunden dar. Die SAP-Applikation bietet zwar mit dem ABAP Test Cockpit (ATC), ein Werkzeug welches ABAP/4-Quellcode scannen kann. Es verfügt jedoch nicht über die Fähigkeit, um nach SQL-Injektion-Schwachstellen und anderen Sicherheitslücken im Code zu suchen, sondern fokussiert sich auf Probleme, die den operativen Betrieb beeinträchtigen.
Probleme im SAP-Standard muss der Hersteller korrigieren. Daher ist es wichtig, die SAP-Software mittels Sicherheitspatches immer auf dem neuesten Stand zu halten und Sicherheitsupdates zeitnah einzuspielen. Die kostenpflichtige Lösung SAP Code Vulnerability Analyser (SAP CVA) wäre geeignet, verfügt allerdings über keine Integration zu Tools für Threat Detection oder Schachstellen Management. Ein Ausweg sind 3rd-Party-Lösungen wie die SecurityBridge Plattform für SAP. Diese enthält neben Angriffserkennung, Schwachstellen- und Patch Management auch einen Code Vulnerability Scanner, der den Umfang der SAP ATC-Tests um notwendige Sicherheitsprüfungen erweitert.
Die beschriebene Schwachstellenart der SQL-Injektion kann zu kritischen Vorfällen führen, die ein erhebliches Sicherheitsrisiko für die SAP-Anwendung darstellen. SAP-Kunden können das Risiko eines erfolgreichen Angriffs nur dann verringern, wenn sie regelmäßige Schwachstellenscans durchführen können, um so die gefunden Schwachstellen gemessen am Risiko bewerten und zu beheben.
Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.
Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…
Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…
Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…
Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…
Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…