von Sükrü ilkel Birakoglu, Senior Director
In allen gängigen Programmiersprachen können Fehler während der Entwicklung zu immensen Sicherheitslücken in den Produktivsystemen führen. ABAP/4 (Advanced Business Application Programming) ist eine Programmiersprache der 4. Generation für SAP-Anwendungen und bildet hierbei keine Ausnahme. Der enorme Anstieg an SAP-Sicherheitshinweisen in den vergangenen Jahren im Zusammenhang mit der ABAP/4-Code-Sicherheit zeigt, dass weitere Maßnahmen zur Überprüfung der Code-Sicherheit in SAP-Anwendungen erforderlich sind.
Welche Gefahren gehen von Sicherheitslücken im ABAP/4-Code aus?
Die Risiken, die durch unsichere Programmierung entstehen, lassen sich in verschiedene Bereiche unterteilen. Sie beschreiben die jeweiligen Auswirkungen von Sicherheitsmängeln auf die Compliance sowie die Rechtsverletzungen, wenn unsicherer Code in ein Produktivsystem gelangt. Unsichere Programmierung kann zu unautorisierter Ausführung von Geschäftslogik, unbefugtem Lesezugriff auf Geschäfts- und Konfigurationsdaten, unberechtigter Änderung von Geschäfts- und Konfigurationsdaten, Zurückweisung von Geschäftsprozessen oder Identitätsdiebstahl führen.
Obwohl SAP-Systeme über das integrierte Tool SAP CVA (Code Vulnerability Analyzer) verfügen, um Sicherheitslücken in ABAP-Code zu erkennen, unterliegt dieses Tool einer separaten Lizenzierung und ist in das ABAP-Test-Cockpit integriert. SAP CVA prüft ABAP-Sicherheitslücken im Code, für den es konfiguriert ist.
Welche Schwachstellen können in dem ABAP/4-Code Ihres SAP-Systems auftreten?
Die Komplexität von SAP-Systemen erfordert die Entwicklung eigener Anwendungen oder Erweiterungen in dem von SAP gelieferten Standard-ABAP/4-Code. In Bezug auf die Anwendungssicherheit ist es zunächst wichtig zu verstehen, dass das Risiko nicht nur von bestimmten Transaktionen ausgeht, sondern auch von speziellen ABAP/4-Befehlen im entwickelten Code.
Es gibt viele verschiedene Arten von Schwachstellen, die durch ABAP/4-Code entstehen können. Das offensichtlichste Sicherheitsproblem im ABAP/4-Coding stellen fehlende oder technisch fehlerhafte Berechtigungsprüfungen dar. Da ABAP/4 ein klares Berechtigungskonzept hat, muss jedes Programm, das berechtigungsrelevante Aktionen ausführt, die entsprechenden Berechtigungsobjekte auch explizit prüfen. Fehlt diese Prüfung im Coding oder ist sie fehlerhaft, führt das Programm die Aktion aus, obwohl der Benutzer nicht die erforderliche Berechtigung hat. Dies führt zu Sicherheitsverletzungen in SAP-Systemen.
Ein weiteres grundlegendes, aber weniger offensichtliches Problem sind die Injection-Schwachstellen. Damit können böswillige Benutzer bestimmte dynamisch programmierte ABAP/4-Befehle so manipulieren, dass sie sich auf ungeplante, unerwartete Weise verhalten. Diese Manipulation von dynamischen ABAP/4-Befehlen funktioniert auch dann, wenn korrekte Berechtigungsprüfungen durchgeführt werden. Oftmals wissen Entwickler nicht, welche Risiken bei der Nutzung dynamischer Programmiertechniken auftreten können und öffnen Hackern ungewollt Tür und Tor.
Die häufigsten ABAP/4-Sicherheitsprobleme und die damit verbundenen Risiken
In der untenstehenden Darstellung finden Sie zunächst einige Beispiele für Schwachstellen und deren Beschreibungen.
Sehen wir uns anhand eines Beispiels an, wie ABAP Command Injection in einem SAP-System mit dynamischen Programmiertechniken angewandt werden kann:
Wird der Code untersucht, kann ein ABAP/4-Programmierer den dynamisch generierten Code sofort erkennen. Der Quellcode des dynamisch generierten Programms wird mit folgenden Befehlen erstellt:
Dieses Code-Snippet ist harmlos und gibt lediglich den Text „Logpoint for SAP Solutions protect your SAP Systems!“ auf dem Bildschirm aus (Hinweis: Logpoint for SAP heißt heute BCS for SAP). Ein Angreifer, der auch ein interner Mitarbeiter, ein Softwareanbieter oder ein Auftragnehmer sein kann, kann anstelle dieses harmlosen Code-Ausschnitts beliebigen Code einspeisen, diesen unter Umgehung jeglicher Berechtigungsprüfungen ausführen und den generierten Code wie im Beispielprogramm automatisch löschen. Ein durchschnittlicher ABAP-Programmierer bräuchte keine 15 Minuten, um einen dynamischen ABAP/4-Code zu schreiben, der alle Kundenstammdaten löscht, Journal-Entries zu Finanzen ändert oder mitarbeiterbezogene Daten wie Gehaltsinformationen aus dem System herunterlädt.
Wie Sie Logpoint BCS for SAP nutzen können, damit Ihre geschäftskritischen Daten in den richtigen Händen bleiben
Logpoint bietet eine Lösung für das SAP-Security-Monitoring (BCS for SAP) und überprüft auch die ABAP/4-Code-Sicherheit. Wenn ein Transportauftrag (ein Paket an ABAP/4-Programmen/Objekten) in ein Produktivsystem importiert wird, führt unser auf dem SAP-System installierter Extraktor den SAP Code Inspector und SAP CVA automatisch aus und sendet die Ergebnisse an unsere Logpoint SIEM-Lösung.
Die Anzeige der ABAP-Sicherheitslücken in unserer SIEM-Lösung ist nur ein Teil der von uns angebotenen Lösung. Möglicherweise benötigen Sie weitere Informationen über den importierten, risikobehafteten Code, beispielsweise wie oft und von wem dieser ausgeführt wurde, oder ob dieser Code von jemandem ausgeführt wurde, dessen Benutzerverhalten von normalem Verhalten abweicht. Hier kommen unsere anderen SAP-Log-Extraktoren sowie unsere UEBA-Lösung (UEBA: User and Entity Behaviour Analytics) ins Spiel.
Gehen wir noch einen Schritt weiter und stellen uns ein Szenario vor, in dem Ihr SOC-Mitarbeiter die Ausführung eines hochriskanten Codes in einem Produktivsystem entdeckt und den/die Benutzer, die den Code ausführen, sperren oder ein Ticket mit sehr hoher Priorität für das SAP-Basis-Team im IT-Service-Management-Tool des Unternehmens, z. B. in ServiceNow, erstellen möchte. In diesen Fällen würde unser SOAR-Angebot mit seinen vordefinierten Playbooks für SAP-bezogene, sicherheitsrelevante Vorfälle die Situation lösen – ohne weitere Fragen.
Weiterführende Informationen zu unseren SAP-Lösungen für das Security-Monitoring finden Sie auf unserer Website Logpoint BCS for SAP.
Falls Sie dieses Thema gerne mit uns persönlich besprechen möchten, nutzen Sie den Button „Demo-Termin“ und vereinbaren Sie einen Gesprächstermin mit einem unserer Experten.