zurück zur Übersicht

SAP® Security: ABAP Code Injection erkennen

Praktisch aber gefährlich

Externe SAP®-Tools nutzen immer wieder Funktionen wie „RFC_ABAP_INSTALL_AND_RUN“, um Anwendern die Möglichkeit zu geben, unter Umgehung des Transportsystems Funktionen und ABAP-Programme auf SAP®-Systemen auszuführen. Dies ist vermutlich auch der Hintergrund der kürzlich entdeckten Schwachstelle CVE-2016-9832  in einer Software zur Prüfung von Benutzerrollen und -rechten.

Das Gefährdungspotential besteht darin, dass in SAP® der ABAP-Entwickler für die Berechtigungsprüfung verantwortlich ist. Das bedeutet, es gibt keine Instanz zwischen ABAP-Coding und Datenbank, welche die Zulässigkeit der Anweisung überprüft.

Gelingt es also einem Angreifer ABAP-Code zu injizieren, stehen ihm alle Möglichkeiten zur Manipulation von Daten offen. Beispielsweise ist die Ausführung von Datenbankaktivitäten per SQL ohne weitere Berechtigungsprüfung möglich. Abhängig von Berechtigungen ist auch die Ausführung von Betriebssystemkommandos möglich oder sogar Aktivitäten auf entfernten Systemen, wenn zu diesen eine RFC-Verbindungen besteht.

Risikoreiche Basisfunktion

Obwohl SAP® diese Möglichkeiten out-of-the-box bietet und dies als Feature versteht, gibt es Möglichkeiten, sich effektiv vor den impliziten Sicherheitsproblemen zu schützen:

  • Für Produktivsysteme muss die Systemänderbarkeit ausgeschaltet sein. Muss diese temporär aktiviert werden, ist das Loggen aller Änderungen im Repository und Customizing Pflicht.
  • Die strikte Beschränkung der Entwicklerrechte auf Produktivsystemen auf einen sehr kleinen Benutzerkreis (z. B. Emergency-User) und Logging aller Aktivitäten dieser Benutzer ist ebenso Pflicht.
  • Für die Generierung dynamischer Programme wird auf NetWeaver 7.40 die Berechtigung für die Transaktion SE38 und das Berechtigungsobjekt S_DEVELOP benötigt. Diese Berechtigungen müssen konsequent überwacht werden.
  • Ab NetWeaver 7.4. mit Unified Connectivity (UCON) können Whitelists erstellt werden, um nicht benötigte RFC-fähige Funktionsbausteine zu deaktivieren.

Erkennung verdächtiger Aktivitäten über SIEM mit agileSI™

Dynamisch generierter ABAP-Code wird mit der Nachrichten-ID „BU4“ im Security Audit Log angezeigt (Audit-Klasse „Sonstige Ereignisse“). Durch Ausleiten dieser sicherheitsrelevanten Ereignisse in ein SIEM-System und Erstellung entsprechender Regeln zur automatischen Alarmierung kann generisches Coding im Z- oder Y-Namensraum zuverlässig erkannt werden.

abap-code-injection_1

Abbildung 1: Empfohlene Einstellung Security Audit Log (SM19)

  • Sicherung der Ereignisse der Transaktion STAD (Workload Analysis) und des Security Audit Log in SIEM oder Log Management zur Gewährleistung der Nachvollziehbarkeit, beispielsweise bei Ausführung von „RFC_ABAP_INSTALL_AND_RUN“.

abap_code-injection_2
Abbildung 2: Beispielevents im Security Audit Log bei Generierung dynamischer Programme

abap-injection_3
Abbildung 3: Ein Auszug aus der STAD zeigt die Code-Injezierung

Bei der Umsetzung der oben beschriebenen Maßnahmen kann agileSI™ als dedizierte SAP® Security Monitoring Lösung optimal unterstützen und für schnelle Ergebnisse sorgen.

  • Sicherung wichtiger Logdateien wie dem Security Audit Log und Ausleitung in Logmanagement und SIEM-Lösungen;
  • Sicherung aufgerufener RFC-Funktionen mit Benutzer, Funktionsbausteinname, Quell- und Zielsystem als Grundlage für Whitelisting von RFC-Aktivitäten;
  • Überwachung der Audit-File Konfiguration;
  • Erkennung kritischer Berechtigungszuweisungen;
  • Überprüfen der Systemänderbarkeit;
  • Alarmierung bei kritischen Vorfällen und Ereignissen.

Schreibe einen Kommentar

Wir nehmen Datenschutz ernst! Deshalb informieren wir Sie, was mit Ihren Daten geschieht:

  • Daten aus Formularen und Webseiten-Tracking können von uns zur Analyse gespeichert werden
  • Die Daten können zur Optimierung der Webseite ausgewertet werden. Das ermöglicht es uns, besser zu verstehen, wo das Interesse unserer Besucher liegt. Wir benutzen primär Hubspot für dieses Tracking (mehr dazu finden Sie in der Erklärung auf unserer Datenschutzseite, siehe unten)
  • Wir geben Ihre Daten nicht an Dritte weiter. Im Rahmen von Veranstaltungen, an denen Sie teilnehmen möchten, kann es nötig sein, dass Ihre Daten an Vertragspartner übermittelt werden.
  • Sie haben jederzeit ein Recht auf die Herausgabe, Berichtigung oder Löschung persönlicher Daten.
  • Sie können Ihre Einwilligung, mit uns in Kontakt zu treten, jederzeit mit sofortiger Wirkung widerrufen.

Weitere Details dazu, was wir mit den Daten tun und nicht tun finden Sie auf unserer Datenschutzseite, oder schreiben Sie mich bei Fragen direkt an!

Felix Möckel
Data Protection Officer