2 Die Systemsicherheit 2.16 Trusted-RFC-Verbindungen 2.16.1 Einsatzmöglichkeiten einer Trusted-Verbindung Für einige Anwendungen ist es erforderlich, Kommunikationsverbindungen über RFC (Remote Function Call) zwischen verschiedenen SAP-Systemen zu implementieren, um einem Benutzer einen Zugriff auf ein entferntes SAP- System ohne erneute Anmeldungen zu ermöglichen. Für diesen Vorgang kommen grundsätzlich zwei verschiedene Vorgehensweisen in Frage: 1. RFC-Verbindungen, bei denen jeweils ein Benutzer mit seinem Kennwort hinterlegt wird (siehe Kapitel 2.15.2). 2. Trusted RFC-Verbindungen zwischen SAP-Systemen, für die zunächst eine Vertrauensbeziehung zu definieren ist. Nachfolgendes Beispiel verdeutlicht den grundsätzlichen Ablauf der Nutzung einer solchen Vertrauensbeziehung: Fall 1: SAP-System E07: User A SAP-System P07: User A Ein Benutzer meldet sich als User A auf einem System E07 an. Besteht nun eine einseitige Vertrauensbeziehung zwischen den Systemen E07 und P07 (P07 vertraut E07), kann der User A über vorher implementierte RFC-Verbindungen auf das System P07 springen, ohne sich dort erneut anmelden zu müssen. Fall 2: SAP-System E07: User A SAP-System P07: User B Ein Benutzer meldet sich als Benutzer A auf dem System E07 an. Bei entsprechender Einstellung von Berechtigung und RFC-Verbindung kann der Benutzer A unter der Benutzerkennung von Benutzer B, ohne dessen dortiges Kennwort zu kennen, auf das System P07 springen. Selbstverständlich werden im System P07 sämtliche Aktivitäten mit den Berechtigungen und mit der Identität von Benutzer B ausgeführt. Unter Sicherheitsaspekten ist der 2. Fall als kritisch einzustufen. 218
2.16 Trusted-RFC-Verbindungen 2.16.2 Funktionsweise einer Trusted-Verbindung 2.16.2.1 Definition einer Vertrauensbeziehung Nachfolgend wird von Trusting System und Trusted System gesprochen. Dies sind per Definition: Trusting System Das System, welches einem anderen System vertraut Trusted System Das System, dem vertraut wird Abb. 2.16.1: Vertrauensbeziehung zwischen zwei Systemen Dies bedeutet, dass vom Trusted-System (im obigen Beispiel IB1) Aktionen im Trusting-System (IB2) ausgeführt werden können ohne explizite Anmeldung (notwendige Berechtigungen vorausgesetzt). Um diese Vertrauensbeziehung einzurichten, wird in dem Trusting-System, das einem anderen System vertrauen soll (dies entspricht im obigen Beispiel dem System IB2) ein System definiert werden, dem vertraut werden soll, welches also das Trusted-System darstellt (dies entspricht im obigen Beispiel dem System IB1). Die Pflege erfolgt über die Transaktion SMT1, welche auch zur reinen Anzeige genutzt werden kann. Über diese Transaktion lassen sich somit auch bestehende Vertrauensbeziehungen überprüfen. Abb. 2.16.2 zeigt die Einträge aus dem System IB2. Hier ist zu erkennen, dass das System IB1 dort eingetragen ist. Somit vertraut IB2 dem System IB1. 2.16.2.2 Definition einer Trusted RFC-Verbindung In einem zweiten Schritt muss im Trusted-System (im obigen Beispiel System IB1) eine RFC-Verbindung zum System IB2 eingerichtet werden. Dies geschieht über die Transaktion SM59. Als Beispiel wird hier die RFC-Verbindung IB2_001_NO verwendet. 219
2 Die Systemsicherheit Abb. 2.16.2: Transaktion SMT1 im System IB2 (System IB2 vertraut System IB1) Abb. 2.16.3: Unsichere RFC-Verbindung zu einem Trusting-System 220
2.16 Trusted-RFC-Verbindungen Im zweiten Register (Anmeldung/Sicherheit) werden die Verbindungseinstellungen gespeichert. Dazu gehört unter anderem die Eigenschaft, dass es sich um eine TRUSTED-Verbindung handelt (Feld Vertrauensbeziehung = ja), mit der im Zielsystem keine weitere Anmeldung erfolgt. Ferner wird hier definiert, unter welcher Benutzerkennung der angemeldete Benutzer auf das Zielsystem IB2 springen würde. In dem vorliegenden Fall könnte also ein in IB1 angemeldeter Benutzer unter der Kennung von GSCHROTT auf das System IB2 springen, falls für diesen Benutzer dort zusätzlich noch entsprechende Berechtigungen vorliegen (siehe nächstes Kapitel). Da bei einer Trusted-Verbindung im Zielsystem keine weitere Anmeldung erfolgt, muss an dieser Stelle somit kein Kennwort hinterlegt werden. Weil hier daher die Möglichkeit besteht, unter einer anderen Benutzerkennung zu arbeiten, ist diese Art der Konfiguration grundsätzlich als kritisch einzustufen. Eine Voraussetzung für die Nutzung dieser Verbindung ist natürlich die, dass im Zielsystem IB2 der Benutzer mit entsprechenden Berechtigungen existiert. Eine unkritische Definition einer Trusted-Verbindung ist in Abbildung 2.16.4 abgebildet. Durch das Setzen des Flags im Feld Aktueller Benutzer wird das Feld für die Eingabe eines Benutzernamens ausgegraut. Damit wird vorgegeben, dass im Zielsystem IB2 grundsätzlich nur unter derselben Benutzerkennung gearbeitet werden kann, mit dem die Anmeldung im aktuellen System (hier IB1) erfolgt ist. Auch bei dieser Definition der RFC-Verbindung ist die Voraussetzung für die Nutzung die, dass im Zielsystem IB2 ein Benutzer mit derselben Kennung und den notwendigen Berechtigungen existiert. Die Nutzung der Trusted-Verbindung stellt somit lediglich eine Arbeitserleichterung dar, da ansonsten die Alternative bestünde, sich in IB2 direkt unter dieser Kennung anzumelden. Ob Trusted RFC-Verbindungen existieren, kann über die Tabelle RFCDES geprüft werden. Der Wert Q=Y im Feld Optionen zeigt an, dass es sich um eine Trusted RFC-Verbindung handelt. Der Eintrag u=y gibt an, dass die Anmeldung im Zielsystem unter derselben Benutzerkennung stattfindet. In Abb. 2.16.5 ist die Selektionsmaske der Tabelle in Transaktion SE16 abgebildet. Abb. 2.16.6 zeigt als Ergebnis die RFC-Verbindungen, die als Trusted RFC-Verbindungen deklariert sind. Die Trusting-Systeme und die Trusted-Systeme werden in folgenden Tabellen gespeichert: RFCTRUST Trusted-System (Systeme, deren Aufrufen vertraut wird) RFCSYSACL Trusting-System (Systeme, die dem aktuellen System vertrauen) 221
2 Die Systemsicherheit Abb. 2.16.4: Sichere RFC-Verbindung zu einem Trusting-System Abb. 2.16.5: Selektion aller Trusted RFC-Verbindungen Die Tabellen RFCDES, RFCTRUST und RFCSYSACL sind standardmäßig zur Protokollierung vorgesehen. Bei aktivierter Tabellenprotokollierung (Systemparameter rec/client; siehe Kapitel 5.5) kann über den Report RSTBHIST oder RSVTPROT (alternativ über Transaktion SCU3) nachvollzogen werden, welche Änderungen an den Einstellungen der Vertrauensbeziehungen erfolgt sind. 222
2.16 Trusted-RFC-Verbindungen Abb. 2.16.6: Anzeige aller Trusted RFC-Verbindungen 2.16.2.3 Erforderliche Berechtigungen im Trusting-(Ziel-)System Damit ein Benutzer aus einem anderen System heraus genutzt werden kann, muss er im Zielsystem (in unserem Beispiel im System IB2) über eine Berechtigung auf dem Objekt S_RFCACL verfügen. Diese Berechtigung ist standardmäßig nicht im sonst sehr umfassenden Sammelprofil SAP_ALL enthalten. Ob dieses Objekt in SAP_ALL automatisch generiert wird, wird über den Schalter ADD_S_RFCACL in der Tabelle PRGN_CUST gesetzt. Der Schalter kann zwei Werte enthalten: NO S_RFCACL wird nicht automatisch in SAP_ALL mit generiert (Default) YES S_RFCACL wird automatisch in SAP_ALL mit generiert Aus Sicherheitsgründen sollte dieser Schalter den Wert NO enthalten bzw. nicht in der Tabelle PRGN_CUST enthalten sein (in dem Fall wird der Default-Wert NO gesetzt). Abb. 2.16.7: Berechtigung auf Objekt S_RFCACL im Trusting-System (unkritisch) Die in Abb. 2.16.7 abgebildete Berechtigung zeigt Folgendes an: Nur Aufrufe aus dem System IB1 sind gültig (Feld System-Id = IB1). Eine Nutzung ist nur jeweils mit derselben Benutzerkennung möglich (Feld RFC User = sy-uname; alternativ auch [BLANK] möglich). 223
2 Die Systemsicherheit Hat ein Benutzer im System IB2 diese Berechtigung, kann aus dem anderen System IB1 die Trusted-Verbindung nur von einem Benutzer mit derselben Kennung aufgerufen werden. Abb. 2.16.8: Berechtigung auf Objekt S_RFCACL im Trusting-System (kritisch) Bei der Berechtigung in Abb. 2.16.8 kann der Benutzer, dem diese Berechtigung im Trusting-System (IB2) zugeordnet ist, grundsätzlich durch jeden Benutzer aus dem Trusted-System (IB1) genutzt werden, wodurch diese Berechtigung aus Sicherheitssicht als kritisch einzustufen ist. Wenn eine kritische Berechtigung dieser Art vorliegt, könnte im Trusted-System IB1 eine Trusted- Verbindung definiert werden, in welcher z. B. der Benutzername GSCHROTT fest hinterlegt wird. Somit könnte jeder Benutzer im System IB1, der diese RFC-Verbindung nutzen kann, unter der Benutzerkennung GSCHROTT im System IB2 arbeiten, somit also anonym! 2.16.3 Betrachtung der Anmeldesicherheit In puncto Anmeldesicherheit ist zu beachten, dass diese in den Trusted-Systemen (Systemen, denen vertraut wird) genau so restriktiv zu konfigurieren ist wie in den Trusting-Systemen (= Zielsysteme). Falls beispielsweise die minimale Kennwortlänge nur drei Zeichen umfassen würde, wäre die Wahrscheinlichkeit, eine erfolgreiche Brute-Force-Attacke durchführen zu können, für dieses schwach geschützte System wesentlich höher. Somit wäre dann auch gleichzeitig das vertrauende System (= Zielsystem) durch diese Schwächen in den Anmelderegeln gefährdet. 224
2.16 Trusted-RFC-Verbindungen 2.16.4 Zugriffsrechte 2.16.4.1 Prüfen im SAP-System Anlegen neuer Systeme, denen vertraut wird Berechtigungsobjekt S_TCODE (Transaktionsberechtigung) Transaktionscode: SMT1 Berechtigungsobjekt S_RFC_TT (Berechtigungsobjekt für die Pflege von Trusted-Trusting-Systemen) Aktivität 01 (Anlegen) oder 02 (Ändern) Saplicense: System-Id Typ in der Trusted-Beziehung Nutzung eines Benutzers vom anderen System aus mit derselben Benutzerkennung Berechtigungsobjekt S_RFCACL (Berechtigungsprüfung für RFC-Benutzer) Aktivität 16 (Ausführen) RFC Client oder Domäne RFC gleiche Benutzerkennung Y RFC Information System-Id (für SAP- und externe Systeme) <ID des SAP-Systems> RFC Transaktionscode RFC User (SAP oder extern) sy-uname oder BLANK Nutzung eines Benutzers vom anderen System aus mit einer beliebigen Benutzerkennung Berechtigungsobjekt S_RFCACL (Berechtigungsprüfung für RFC-Benutzer) Aktivität 16 (Ausführen) RFC Client oder Domäne RFC gleiche Benutzerkennung Y RFC Information System-Id (für SAP- und externe Systeme) <ID des SAP-Systems> RFC Transaktionscode RFC User (SAP oder extern) * (Alle Benutzer können diesen Benutzer nutzen) 225
2 Die Systemsicherheit 2.16.4.2 Prüfen mit CheckAud for SAP Systems Wählen Sie zur Prüfung der Zugriffsrechte den Pfad gem. Abb. 2.16.9 aus. Abb. 2.16.9: Prüfen der Zugriffsrechte mit CheckAud for SAP Systems 2.16.5 Checkliste zu Trusted RFC-Verbindungen Nr. Verwendung Fragestellungen Risiko 1 Existieren in Systemen mit sensiblen Daten Vertrauensbeziehungen zu anderen Systemen? Hier besteht das Risiko, dass durch Vertrauensbeziehungen ein anonymer Zugriff auf die sensiblen Daten ermöglicht wird. 2 Wurden Berechtigungen vergeben, mit denen Benutzer aus anderen Systemen heraus für Zugriffe über eine Trusted-Verbindung genutzt werden können? Hier besteht das Risiko, dass durch falsch vergebene Berechtigungen ein anonymer Zugriff auf Daten ermöglicht wird. Ordnungsmäßigkeitsvorgaben In allen Systemen dürfen nur Vertrauensbeziehungen existieren, die notwendig sind und genutzt werden. Berechtigungen für Trusted- Zugriffe dürfen nur sehr restriktiv vergeben werden. 226
2.16 Trusted-RFC-Verbindungen Nr. 3 Existieren Benutzer, die berechtigt sind, neue Vertrauensbeziehungen zu Systemen anzulegen? Hier besteht das Risiko, dass durch neue Vertrauensbeziehungen ein anonymer Zugriff auf die Daten des Systems ermöglicht wird. 4 Existieren RFC-Verbindungen zu Systemen mit sensiblen Daten, die als Trusted-Verbindung ausgewiesen sind? Hier besteht das Risiko, dass durch die Trusted RFC-Verbindungen ein anonymer Zugriff auf die sensiblen Daten ermöglicht wird. 5 Existieren RFC-Verbindungen zu Systemen mit sensiblen Daten, die als Trusted-Verbindung ausgewiesen sind, bei denen eine feste Benutzerkennung hinterlegt ist und für diesen im Zielsystem die Berechtigung zum Aufruf über verschiedene Benutzer vergeben ist? Hier besteht die konkrete Möglichkeit, über die Trusted RFC-Verbindung einen anonymen Zugriff auf das Zielsystem vorzunehmen. Verwendung Fragestellungen Risiko Ordnungsmäßigkeitsvorgaben Es dürfen nur wenige Basisadministratoren dazu berechtigt sein, Vertrauensbeziehungen zu definieren. In allen Systemen dürfen nur Trusted RFC-Verbindungen existieren, die notwendig sind und genutzt werden. In allen Systemen sollten nur Trusted RFC-Verbindungen existieren, die eine Anmeldung über denselben Benutzer im Zielsystem ermöglichen. 2.16.6 Praktische Prüfung zu Trusted RFC-Verbindungen 1. Überprüfen Sie, ob in Systemen mit sensiblen Daten Vertrauensbeziehungen zu anderen Systemen existieren! Rufen Sie die Transaktion SE16 auf und lassen Sie sich die Tabelle RFCSYSACL anzeigen. Alternativ kann auch die Transaktion SMT1 genutzt werden. Tragen Sie in die Selektionsmaske der Tabelle keine Selektionskriterien ein, es werden Ihnen dann alle Systeme angezeigt, zu denen Vertrauensbeziehungen eingerichtet wurden. 2. Überprüfen Sie, ob Berechtigungen vergeben wurden, mit denen Benutzer aus anderen Systemen heraus für Zugriffe über eine Trusted-Verbindung genutzt werden können! Rufen Sie den Report RSUSR002 mit der Transaktion SA38 auf (alternativ die Transaktion S_BCE_68001400). Geben Sie im Register Berechtigungen folgende Werte ein: 227