Bundesamt für Sicherheit in der Informationstechnik

M 5.126 Absicherung der SAP RFC-Schnittstelle

Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT

Verantwortlich für Umsetzung: Administrator

Der Remote Function Call (RFC) Mechanismus ist für den ABAP -Stack die primäre Kommunikationsschnittstelle für die System-zu-System-Kommunikation. Auch der Java-Stack unterstützt die RFC-Kommunikation über den Java Connector (JCo).

Hinweise auf SAP Dokumentationen zur RFC-Kommunikation finden sich in M 2.346 Nutzung der SAP Dokumentation .

RFC-Berechtigungen restriktiv vergeben

Berechtigungen zum Aufruf von RFC-fähigen ABAP-Programmen (dann auch RFC-fähige Bausteine genannt) werden über das Berechtigungsobjekt S_RFC gesteuert. Jeder RFC-fähige Baustein erfordert je nach Funktionalität weitere Berechtigungen, die über zusätzliche Berechtigungsobjekte geprüft werden. Da der Aufruf meist über das Netz erfolgt, ist das SAP System über die RFC-Schnittstelle aus der Entfernung potentiell angreifbar.

Die RFC-Berechtigungen müssen daher geplant und restriktiv vergeben werden. Durch das S_RFC Berechtigungsobjekt kann gesteuert werden, auf welche RFC-Funktionsbausteine ein Benutzer zugreifen darf. Dabei unterliegt das Berechtigungsobjekt folgenden wichtigen Beschränkungen:

  • Die Beschränkung kann nur auf Funktionsgruppen erfolgen, da nur der Wert RFC_TYPE = "FUGR" unterstützt wird.
  • Die Prüfung des Parameters RFC_NAME, der die Liste der betroffenen Funktionsgruppen enthält, ist auf achtzehn Zeichen beschränkt. Die Liste kann zwar länger eingegeben werden, jedoch werden nur die ersten achtzehn Zeichen geprüft.

Der Zugriff kann also nur auf alle Funktionsbausteine einer Funktionsgruppe erteilt werden, und unter Umständen müssen mehrere Berechtigungen erstellt werden.

Generell sollte die S_RFC Berechtigung nicht den Zugriff auf alle RFC-Bausteine erlauben. Die Einstellung RFC_NAME="*" ist zu vermeiden. Es gibt in einem SAP System mehrere tausend RFC-fähige Funktionsbausteine, die damit zum Zugriff freigeschaltet würden. Auch auf RFC-fähige Bausteine von neu installierten Applikationen und Modulen könnte so automatisch zugegriffen werden. Ob die aufgerufene RFC-Funktion jedoch erfolgreich ausgeführt wird, hängt dann noch von Zugriffsprüfungen ab, die die RFC-Funktion selbst durchführt.

Werden die RFC-Berechtigungen geplant, ist zu bedenken, dass es unterschiedliche RFC-Typen (z. B. synchron, asynchron) gibt. Daher müssen alle Typen in die Planung einbezogen werden.

Die Berechtigung S_RFC ist nicht für den Java-Stack relevant.

Ausgehende RFC-Zugriffe können über das Berechtigungsobjekt S_ICF beschränkt werden, das den Zugriff auf Destinationen regelt (siehe M 4.263 Absicherung von SAP Destinationen ).

Java-Stack RFC

Der Java Connector (JCo) bietet für den Java-Stack die Möglichkeit, über RFC zu kommunizieren. Dabei wird jedoch standardmäßig von den Systemkomponenten nur von ausgehenden RFC-Calls (Java-Stack als RFC-Client) Gebrauch gemacht. Zugriffe erfolgen auf den eigenen ABAP-Stack (z. B. um Benutzer und Rollen des ABAP-Stacks verfügbar zu machen) oder über Destinationen auf andere SAP Systeme oder externe RFC-Server.

Folgendes ist beim Einsatz des Java Connectors zu bedenken:

  • Der Java-Stack nutzt den (ABAP-Stack-) Benutzer SAPJSF zum Zugriff auf den ABAP-Stack. Dieser muss während der Installation mit einem starken Passwort versehen werden.
  • Die Destinationen (Destination-Service) im Java-Stack müssen vor unberechtigtem Zugriff geschützt werden.

Für Java-Stack RFC-Server-Programme ist Folgendes zu beachten:

  • RFC-Server müssen durch eigene Programme implementiert werden. RFC-Server-Instanzen können über die JCo-Programmierschnittstelle erzeugt werden.
  • Die JCo-RFC-Server-Implementierung bietet nur reine RFC-Kommunikationsfunktionen. Insbesondere Berechtigungen müssen zwingend durch die eigene Programmimplementierung geprüft und verwaltet werden.

Absicherung der RFC-Kommunikation mit SNC

Ergibt die Schutzbedarfsfeststellung, dass Kommunikationsstrecken geschützt werden müssen, auf denen RFC eingesetzt wird, so kann SNC empfohlen werden. M 5.125 Absicherung der Kommunikation von und zu SAP Systemen enthält weitere Informationen dazu.

Sichere Verwendung von "Trusted System"-Beziehungen

Zwischen SAP Systemen können Vertrauensbeziehungen eingerichtet werden, so dass Benutzer beim RFC-Zugriff kein Passwort angeben müssen. Beim Zugriff prüft das vertrauende SAP System (Trusting System), ob der Zugriff von einem vertrauten SAP System (Trusted System) aus erfolgt.

Über das Berechtigungsobjekt S_RFCACL kann im Zielsystem gesteuert werden, welche Benutzer Aufrufe ohne Passwortangabe durchführen dürfen. Dabei kann unter anderem nach SAP System-ID (SAPSID), Mandant und aufrufender Transaktion unterschieden werden.

Generell ist Folgendes zu beachten:

  • Trusted System Beziehungen sollten nur nach reiflicher Überlegung und Risikobewertung eingesetzt werden.
  • Für das Berechtigungsobjekt S_RFCACL sollten keine Blanko-Einstellungen mit "*" enthalten sein.
  • Für RFC-Destinationen, die in vertrauenden SAP Systemen enden, sollten keine Benutzerinformation gespeichert werden, da sonst im vertrauenden System nicht mehr nach den aufrufenden Benutzern unterschieden werden kann.

Weitere Informationsquellen zum Thema finden sich in M 2.346 Nutzung der SAP Dokumentation .

RFC-Client-Programme: Konfiguration der sideinfo Datei

Für RFC-Clients kann über die Datei "sideinfo" eine globale Konfiguration für den RFC-Zugriff erfolgen. In der Datei können auch Authentisierungsinformationen angegeben werden, die dann für RFC-Zugriffe (genauer: beim Aufbau der unterliegenden CPIC-Kommunikation) genutzt werden. Alle Informationen sind in der Datei im Klartext gespeichert.

Folgendes sollte daher beachtet werden:

  • Der Einsatz der sideinfo Datei sollte gut überlegt werden.
  • Die Informationen der sideinfo Datei kann von allen lokalen RFC-Client-Programmen genutzt werden.
  • Authentisierungsinformationen sollten nicht in der sideinfo Datei gespeichert werden. Die Anmeldeinformationen sollten durch das Client-Programm vom Benutzer erfragt werden.
  • Die sideinfo Datei darf für Benutzer, die RFC-Client-Programme starten, nur lesend zugreifbar sein. Schreibzugriffe dürfen nur für den berechtigten Administrator möglich sein.

Die sideinfo Datei kann in einem SAP System an mehreren Stellen genutzt werden und kommt insbesondere auch auf dem SAP Gateway zum Einsatz.

Hinweise auf Detailinformationen finden sich in M 2.346 Nutzung der SAP Dokumentation .

Externe (non-SAP) RFC-Server sicher nutzen

Mit Hilfe des RFC Software Development Kits (RFC SDK) können RFC-Server-Programme erstellt werden, die ihre Funktionen über RFC anbieten. Werden externe RFC-Server-Programme eingesetzt ist Folgendes zu bedenken:

  • Die Standard SAP Sicherheitsmechanismen und Verfahren (Authentisierung, Autorisierung, Verwaltung) sind für den externen RFC-Server nicht verfügbar.
  • Die angebotenen Sicherheitsmechanismen hängen ausschließlich von der Implementierung des RFC-Server-Programms ab.
  • Die Verwaltung von Benutzern und Berechtigungen kann durch das Server-Programm oder durch externe Komponenten erfolgen. Es sind auch Implementierungen möglich, die die RFC-Funktionen für jeden Zugreifenden ohne weitere Prüfungen verfügbar machen.

Bei Eigenentwicklungen oder bei der Beschaffung von Software sollte daher darauf geachtet werden, dass die gewünschten Sicherheitsanforderungen erfüllt werden.

Für die Installation von externen RFC-Servern ist darauf zu achten, dass ausschließlich die RFC-Bibliothek installiert wird. Insbesondere ist zu vermeiden, dass das gesamte RFC Software Development Kit (RFC SDK), das für die Entwicklung vom RFC-basierten Programmen genutzt wird, installiert und zugreifbar ist. Dies muss durch den Software-Verteilungsprozess sichergestellt werden.

Für Rechner, auf denen das RFC SDK installiert werden muss (z. B. Entwicklungsrechner), sollte der Zugriff auf die Programme im "bin"-Verzeichnis (Standardpfad: <Installationsverzeichnis>/Sap/rfcsdk/bin) der SDK-Installation beschränkt werden. Die Programme können unter anderem zum RFC-Zugriff auf SAP Systeme (startrfc) oder zum Starten von RFC-Servern (rfcexec) genutzt werden.

Die Zugriffsmöglichkeiten auf SAP Systeme (z. B. Produktion) sind für Rechner, auf denen das RFC SDK installiert ist, auf Netz-Ebene zu beschränken.

Angaben zu weiteren Informationen finden sich in M 2.346 Nutzung der SAP Dokumentation .

secinfo Datei für SAP Gateway konfigurieren

Externe RFC-Server-Programme registrieren sich in der Regel bei der SAP Systemkomponente SAP Gateway, die die Client-Zugriffe auf die externen RFC-Server-Programme vermittelt. Diese können auf externe Anforderung auch explizit durch das SAP Gateway gestartet werden.

Die Zugriffs- und Startmöglichkeiten, die externen Zugreifern zur Verfügung stehen, werden über die Konfigurationsdatei "secinfo" gesteuert. Die Datei wird nicht automatisch erzeugt und muss daher unbedingt manuell erstellt werden. Existiert die Datei nicht, werden keine Beschränkungen umgesetzt, so dass jeder mit der technischen Zugriffsmöglichkeit beliebige Programme auf dem SAP Gateway-Rechner starten kann. Es genügt zunächst, eine leere Datei zu erzeugen, um zu erreichen, dass keine Berechtigungen bestehen. Danach können dann Berechtigungen und Zugriffseinschränkungen konfiguriert werden. Die Datei muss im "data"-Verzeichnis des SAP Gateways, also genauer der Gateway-Instanz, abgelegt sein (Standardpfad: /usr/sap/<Instanzname>/data).

Alternativ kann auch der Profilparameter "gw/rem_start" mit der Einstellung "DISABLED" genutzt werden, wenn generell keine externen RFC-Server-Programme zum Einsatz kommen.

Hinweise auf nähere Informationen dazu finden sich in M 2.346 Nutzung der SAP Dokumentation .

Prüffragen:

  • Sind im SAP System die RFC -Berechtigungen geplant und restriktiv vergeben?

  • Sind in der sideinfo Datei des SAP Systems keine Authentisierungsinformationen gespeichert?

  • Ist sichergestellt, dass nur berechtigte SAP Administratoren Schreibzugriff auf die sideinfo Datei besitzen?

  • Ist die Zugriffsmöglichkeit auf SAP Systeme, auf denen RFC SDK installiert ist, auf Netz-Ebene beschränkt?

  • Ist im SAP Gateway System die Datei secinfo zur Sicherung der Zugriffs- und Startmöglichkeiten erstellt worden?

Stand: 13. EL Stand 2013

Hinweis zur Verwendung von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen hierzu erhalten Sie in unserer Datenschutzerklärung.

OK