Howto: SAP Security #5 – ICM Sicherheit

Im dem fünften Teil der  Serie „Howto SAP Security“ (Gateway , Netzwerk, Datenbank, RFC ) ist das Thema der Internet Communication Manager (ICM).

Internet Communication Manager (ICM)

Der ICM nimmt Anfragen über das HTTP(s) Protokoll entgegen. Insbesondere Aufrufe aus dem Internet an das SAP-System lassen sich so seit geraumer Zeit realisieren. Diese Aufrufe gibt der ICM je nach Architektur an den JAVA oder ABAP Dispatcher zur Verarbeitung weiter. Dies ist auf dem folgenden Schaubild zu erkennen:

SAP ICM
Architektur SAP ABAP / JAVA mit ICM (Quelle SAP: https://help.sap.com/doc/saphelp_scm70/7.0/ru-RU/48/03b72c49f04aa5e10000000a421937/frameset.htm)

ICM Dienste

Der ICM bietet eine Vielzahl an Diensten. Teils wird allein bei den kritischen Diensten von einer Gesamtzahl von ca. 1500 berichtet.

Die meisten ICM-Dienste erfordern eine Authentifizierung und bieten so zumindest einen gewissen Grundschutz. Allerdings ist es wichtig zu wissen, dass jeder registrierte Benutzer im System Zugriff auf diese Dienste erhält.  Weiterhin sind im Standard keine weiteren Berechtigungsprüfungen an diese Dienste gebunden. Daher kann jeder Benutzer jeden Dienst ausführen (solange im Code keine weiteren Berechtigungsprüfungen explizit enthalten sind).

Anonyme Dienste

Ca. 40 Dienste lassen sich sogar ganz anonym aufrufen – teils mit nachgeschalteter Authentifizierung. Daher besteht in der Standardkonfiguration die Gefahr von unerwünschten Zugriffen.

Exemplarisch sind hier einige genannt, die bereits eine gewisse Historie besitzen:

URIFunktion
/sap/bc/gui/sap/its/webuiAnmeldung zur WebGUI
/sap/bw/BexErlaubt das Lesen von Infoobjekten
/sap/bc/soap/rfcAusführung von Remote RFC Bausteinen
/sap/public/icf_info/icr_groupsAnzeige der Installierten Komponenten
/sap/public/infoAnzeige von Systeminformationen
/sap/bc/bsp/sap/htmlb_samplesverwundbare“ Test Anwendung
/sap/bc/srt/xip/sapZugriff auf XI Funktionen

 

Ein solcher Aufruf ist einfach im Browser zu realisieren:

ICM_anonymous
Anonymer Aufruf der Services: /sap/public/icf_info/icr_urlprefix

Aufruf von RFC Funktionen

RFC Funktionsbausteine bilden grob die Möglichkeiten eines Benutzers in der SAP GUI als eine Art technische API für Programme ab. Der Service /sap/bc/soap/rfc erlaubt das Ausführen von RFC Funktionsbausteinen und ist anonym erreichbar. Allerdings benötigen die RFCs zur Ausführung einen gültigen Benutzer, der mindestens die Berechtigung S_RFC für die Gruppe des aufzurufenden RFC Funktionsbausteins besitzt. Ebenso benötigt der Benutzer die Berechtigungen, die innerhalb des RFC Funktionsbausteins abgefragt werden.

Jedoch besitzen viele RFC Funktionsbausteine keine zusätzlichen Berechtigungsprüfungen. Erschwerend kommt hinzu, dass einige Standardbenutzer bereits die Berechtigung zur Ausführung von kritischen RFC Funktionen besitzen :

BenutzerPasswortMandant
SAP*'06071992' oder 'PASS'000,001,066, Kundenmandanten
DDIC'19920706'000, 001, Kundenmandanten
TMSADM'PASSWORD' oder '$1Pawd2&'000
SAPCPIC'ADMIN'000,001
EARLYWATCHSUPPORT066

 

Mit einem dieser Benutzer könnte ein Angreifer den genannten Dienst nutzen, um kritische RFC Funktionen im System auszuführen. Es müssen jedoch die Standardbenutzer im System vorhanden sein.

Schutzmaßnahmen

Neuere SAP-Systeme besitzen von Haus aus Sicherheitsoptimierungen und verbesserte Einstellungen. Zusätzlich helfen einige Konfigurationsoptionen den ICM weiter zu härten.

Zuerst sei die SAP Note 1329326 erwähnt. Diese enthält eine Anleitung wie man eigene Header für den ICM hinterlegen kann. Damit lässt sich beispielsweise ein Informationsabfluss über Fehlerseiten verhindern.

Eine weiterer Hinweis ist die SAP Note  747818 . Auch hier wird die Preisgabe von Versionsinformationen unterbunden.

Weiterhin ist die SAP Note 1498575 zu nennen. Diese beschreibt wie nicht notwendige Dienste zu deaktivieren sind.

Zusätzlich sollten Sie ICF Authorizations für die aktiven Services aktivieren .

Letztlich sind noch die Zugangsdaten der Standardbenutzer zu ändern.