Categories: Anzeige

SQL-Injektion-Schwachstellen in SAP ABAP/4

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.

* get user input for last name

lv_last_name = request->get_form_field( ‘last_name’ ).

* build the SQL statement

select * from customers into table lt_customers
where last_name = lv_last_name.

* execute the query

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.

Maßnahmen gegen SQL-Injektion

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.

Fazit

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.

Frank Zscheile

Recent Posts

Google schließt schwerwiegende Sicherheitslöcher in Chrome

Sie stecken unter anderem in der JavaScript-Engine V8. Angreifbar sind Chrome für Windows, macOS und…

6 Stunden ago

VMware-Alternativen: Diese Möglichkeiten bieten andere Anbieter, Open Source und die Cloud

Die Übernahme von VMware durch Broadcom schlägt in der IT-Welt hohe Wellen. Die Produkt- und…

8 Stunden ago

Checkpoint: Microsoft überarbeitet kumulative Updates für Windows 11

Mit Windows 11 Version 24H2 setzt Microsoft auf kleinere kumulative Update-Pakete. Dafür erhält Windows zwischen…

11 Stunden ago

Smartphoneverkäufe steigen um 6,5 Prozent im zweiten Quartal

Samsung und Apple wachsen langsamer als die Konkurrenz aus China. IDC rechnet mit weiteren Wachstumsimpulsen…

21 Stunden ago

Nach Verkaufsverbot: Kaspersky zieht sich auf US-Markt zurück

Der schrittweise Rückbau der Geschäftsaktivitäten beginnt am 20. Juli. Das Verkaufsverbot entzieht Kaspersky nach eigenen…

1 Tag ago

IT-Ausgaben steigen 2024 voraussichtlich um 7,5 Prozent

Gartner korrigiert seine Prognose leicht nach unten. Wachstumsmotor der IT-Ausgaben bleibt jedoch der zunehmende Einsatz…

1 Tag ago