Howto: SAP Security #1 – SAP Gateway

Mit diesem Beitrag startet die Serie „Howto SAP Security“. In der Serie werden typische SAP Angriffsflächen vorgestellt – mitsamt Angriffsvektoren und Gegenmaßnahmen. Zu Beginn der Serie wird daher mit dem SAP Gateway das wahrscheinlich größte Angriffsziel  betrachtet.

SAP Gateway

Das SAP Gateway ist eine Schnittstelle des Systems nach außen. Es dient der Kommunikation mit anderen Systemen oder Programmen und regelt jegliche RFC Kommunikation. Das Gateway ist eine Kernkomponente der SAP Netweaver Systeme.

RFC Kommunikation SAP Gateway
RFC Kommunikation, Quelle: SAP – Securing Remote Function Calls

Für einen Angreifer sind folgende Eigenschaften des Gateways von Bedeutung.

Zuerst ist die Ausführung mit <SID>adm Rechten im System zu nennen. Weiterhin besitzt es Funktionen zur Befehlsausführung auf OS-Ebene. Letztlich ist das Gateway ohne Authentifizierung nutzbar.

Angriff über das SAP Gateway

Bis zum Release Netweaver 7.3 erlauben die Default-Einstellungen Jedem Zugriff aus dem Netzwerk auf das SAP Gateway. Seit 7.4 folgt die Default Einstellungen dem „Deny“ Prinzip. Doch wer glaubt damit sind die Systeme sicher, der unterliegt einem Irrglauben. Denn durch eine fehlerhafte Konfiguration der Zugriffsfilter kann sich die Sicherheitslücke wieder öffnen.

Folglich kann ein Angreifer bei aktiver Sicherheitslücke auf das SAP Gateway anonym zugreifen und Systembefehle zur Ausführung bringen. Als Ergebnis kann er dann Beispielweise direkt auf die SAP Datenbank zugreifen und einen SAP_ALL User im System anlegen.

Das folgende Video zeigt diesen Angriff:

Nachdem der Angreifer auf diesem Weg einen SAP_ALL Zugang zum System etabliert hat, stehen ihm dort alle Türen offen. Zusätzlich hat er über das SAP Gateway Vollzugriff auf das Betriebssystem. Dies führt dazu, dass der Angreifer das Zielsystem komplett unter seine Kontrolle bringen konnte.

SAP Gateway Hardening

Aufgrund der dargestellten Auswirkungen eines Angriffs, ist eine Absicherung des SAP Gateways von hoher Priorität.

Die Absicherung des Gateways setzt im wesentlichen auf Zugriffskontrollen. Dazu sieht SAP die Dateien reginfo und secinfo vor.

Die reginfo Datei kontrolliert die Registrierung externer RFC-Server an dem Gateway. In der Regel handelt es sich hierbei um RFC fähige Serverprogramme, die ihre Dienste auf diesem Gateway bereitstellen möchten.

Im Gegensatz zur reginfo regelt die secinfo Datei den Zugriff auf die Ausführung von Programmen, die auf diesem Gateway verfügbar sind.

Weiterhin bietet SAP inzwischen auch eine ACL Datei an, die allgemein den Zugriff auf das Gateway regeln kann.

Im Kern sind die Dateien identisch zu pflegen. Man kann zeilenweise Einträge in der Datei nach einer gewissen Syntay vornehmen, die Zugriffe erlaubt oder ablehnt.

Natürlich bietet SAP einen Hinweis an, der die Syntax der Dateien beschreibt.

Dennoch sollte klar sein, dass eine sichere Konfiguration der ACL Dateien immer individuell anhand der SAP-Landschaft und Netzwerkstruktur vorzunehmen ist.  Immerhin ist zumindest ab Version 7.4 per Default nur ein interner Zugriff erlaubt.
Dies stellt folgende Konfigurationen sicher:

secinfo:

P TP=* USER=* USER-HOST=local HOST=local

P TP=* USER=* USER-HOST=internal HOST=internal

reginfo:

P TP=* HOST=local

P TP=* HOST=internal

Sicherheitsparameter

Zusätzlich zu den ACL-Dateien stehen noch Sicherheitsparameter zur Konfiguration bereit. Diese sind gw/acl_file, gw/acl_mode,  gw/sec_info, gw/reg_info und die SNC Parameter. Hervorzubehen ist hier der Parameter gw/acl_mode, da die anderen „nur“ die Pfade zu den ACL Dateien angeben.

Der Parameter gw/acl_mode definiert das Verhalten des Gateways, falls eine ACL-Datei ( gw/sec_info oder gw/reg_info) nicht existiert. Es sind zwei Einstellungen möglich:

  • 0 : Keine Einschränkung beim Starten von externen Server und bei der Registrierung von Servern.

  • 1 : Externe und registrierte Server werden nur innerhalb des Systems (Applikationsserver des gleichen Systems) erlaubt. Alle anderen Server werden abgelehnt oder müssen in den jeweiligen Dateien gepflegt werden.

Ein Wert von 1 ist bei produktiven Systemen empfehlenswert.

Zusammenfassung

Ein Angriff auf ein ungesichertes SAP Gateway führt in der Regel zu einem vollständig kompromittierten System. Der Angreifer kann auf diesem einfachen Weg Vollzugriff auf das System erlangen. Dazu benötigt er für einen erfolgreichen Angriff nicht einmal Zugangsdaten zum System.

Schutzmaßnahmen sind hier absolut notwendig und SAP hat reagiert und die Standardeinstellungen des SAP Gateways ab dem Release 7.4 abgesichert.

Dieser Angriff wurde erstmalig um 2009 öffentlich und gehört daher zu den bekannten Gefahren, die mit entsprechenden Schutzvorkehrungen abzuwehren sind. Andernfalls stellt sich berechtigt die Haftungsfrage.