M 4.266 Sichere Konfiguration des SAP Java-Stacks

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

Verantwortlich für Umsetzung: Administrator

Der Java-Stack eines SAP Systems erlaubt es, Java-basierte Technologien einzusetzen. Diese werden vornehmlich in Web-basierten Szenarien genutzt. Im Gegensatz zum ABAP-Stack ist der Java-Stack relativ neu und dessen Funktionen finden sich weniger häufig im Einsatz. Die neuen Java-basierten Technologien ergänzen jedoch die ABAP-Welt, so dass die Bedeutung des Java-Stacks in Zukunft weiter zunehmen wird. Zwar werden viele geschäftsrelevante Funktionen weiterhin im ABAP-Stack ablaufen, aber die Frontend-Komponenten werden in Java implementiert sein. Der Java-Stack wird durch einen Applikationsserver gebildet, der die J2EE (Java 2 Enterprise Edition) Spezifikation umsetzt.

Da Java- und ABAP-Stack im NetWeaver ApplicationServer integriert sind und miteinander über den JavaConnector (JCo) kommunizieren können, muss ein installierter Java-Stack abgesichert werden. Dabei kommen jedoch im Vergleich zum ABAP-Stack völlig unterschiedliche Sicherheitsmechanismen und -konzepte zum Einsatz.

Im Folgenden werden die aus Sicherheitssicht wichtigsten Schritte aufgezeigt, die bei der initialen Konfiguration des Java-Stacks durchzuführen sind. Die Darstellung beschränkt sich auf die Konfiguration des Applikationsservers und geht damit nicht auf sonstige installierte Applikationen ein.

Java-Stack Installation

Der Java-Stack sollte für SAP System Versionen, die eine separate Installation erlauben (Versionen bis 6.40), nur dann installiert werden, wenn Java-basierte Produkte oder Applikationen zum Einsatz kommen.

Kann der Java-Stack nicht separat installiert werden und wird nicht genutzt, so muss die Konfiguration so erfolgen, dass kein Zugriff auf den Java-Stack möglich ist. Dazu sollten alle Dienste des Java-Stacks deaktiviert werden.

Schulung zum Java-Stack

Administratoren, die den Java-Stack administrieren, müssen Kenntnisse in der Architektur und den Sicherheitskonzepten der J2EE-Architektur besitzen. Hier sind insbesondere Kenntnisse bezüglich der statischen Konfiguration der Sicherheit für J2EE-konforme Objekte notwendig, die über das Administrationswerkzeug durch den Administrator durchgeführt wird. Es kommt dabei ein rollenbasiertes Sicherheitskonzept zum Einsatz. Zu beachten ist, dass SAP den J2EE Java Authentication and Authorization Service (JAAS) mit den SAP spezifischen User Management Engine (UME) Funktionalitäten erweitert hat. Damit wurde die statische Konfiguration der Sicherheitseinstellungen um eine dynamische Konfigurationsmöglichkeit durch den Programmcode erweitert, die über die UME steuerbar ist. In der UME können daher beispielsweise erlaubte Aktionen in den Programmen zu Rollen zusammengefasst werden. Benutzern kann dann diese Rolle zugeordnet werden, so dass sie damit die benötigten Berechtigungen erhalten.

Administratoren muss zudem bewusst sein, dass der Java-Stack mit einer separaten Benutzer- und Berechtigungsverwaltung ausgestattet ist, so dass hier immer administrative Aufgaben durchgeführt werden müssen. Empfohlen ist hier der Einsatz der UME (siehe auch M 2.341 Planung des SAP Einsatzes), da damit die administrativen Tätigkeiten verringert werden.

Nicht benötigte Dienste abschalten

Der Java-Stack bietet eine Fülle von Diensten an. Nicht alle werden zum Betrieb in jedem Szenario benötigt. Daher sollten aus Sicherheitsgründen alle nicht benötigten Dienste deaktiviert werden. Problematisch dabei ist, dass Dienste voneinander abhängig sein können. Es kann zudem zwischen System-Diensten und Nicht-System-Diensten unterschieden werden. Die Verwaltung des Java-Stacks erfolgt über ein eigenes Werkzeug, den so genannten "Visual Administrator". Hier können auch die einzelnen Dienste verwaltet werden. Die Dienste finden sich dabei im "Server"-Abschnitt des Objekt-Baumes, der als Navigationshilfe im Visual Administrator dient. Die Detailinformationen zu einem Dienst werden angezeigt, sobald er selektiert wird.

Folgendes Vorgehen wird empfohlen:

Da sich der Java-Stack mit jeder Version verändert und insbesondere Unterschiede in der Dienstanzahl und -funktion bestehen, kann an dieser Stelle keine verbindliche Liste angegeben werden.

Hinweise auf SAP Dokumentationen zu den Diensten und deren Funktion finden sich in M 2.346 Nutzung der SAP Dokumentation.

Standardinhalte entfernen

Alle Standardinhalte wie Dokumentationen (etwa Dienst deploy: sap.com/...docs.examples), Beispielprogramme (etwa Dienst deploy: sap.com/...htmlb.ear) oder statische HTML-Seiten sollten deinstalliert werden.

HTTP-Dienst absichern

Der HTTP-Dienst sollte abgesichert werden, wozu unter anderem die folgenden Punkte gehören:

Hinweise auf SAP Dokumentationen zu den Diensten und deren Funktion finden sich in M 2.346 Nutzung der SAP Dokumentation.

Kryptographische Funktionsbibliothek installieren

Damit für den Java-Stack starke kryptographische Verfahren genutzt werden können, sollte eine kryptographische Funktionsbibliothek installiert werden, die starke Verfahren anbietet. Hier kann auch auf freie Implementierungen aus dem Java-Umfeld zurückgegriffen werden. Generell ist beim Einsatz von kryptographischen Funktionsbibliotheken auf die Kompatibilität mit dem Java-Stack und auf die Lizenzbestimmungen des Anbieters zu achten.

Auch Java-Stack-Komponenten wie der Secure-Storage, der zur sicheren Ablage von Daten durch System-Dienste und Applikationen dient, benötigen kryptographische Verfahren. Daher kann eine adäquate Sicherheit nur nach der Installation der kryptographischen Funktionsbibliothek erreicht werden.

Authentisierungsmodule konfigurieren

Für die Authentisierung beim Zugriff auf den Java-Stack können mehrere Authentisierungsverfahren eingesetzt werden. So sind neben dem Benutzernamen und Passwort-Verfahren auch Zertifikate oder Single Sign-On Tickets für die Authentisierung konfigurierbar. Dabei kann die Reihenfolge der verwendeten Verfahren bestimmt werden und ob ein bestimmtes Verfahren zur alleinigen Authentisierung ausreichend ist.

Im Rahmen des Berechtigungskonzeptes ist daher zu entscheiden, welche Verfahren wie einzusetzen sind. Falls notwendig, können weitere Verfahren über zusätzliche Bibliotheken von Drittherstellern eingebunden werden. Dabei wird die durch den Java-Standard spezifizierte JAAS-Schnittstelle genutzt.

Zugriff auf Systemressourcen beschränken

Durch das Berechtigungskonzept muss bestimmt werden, welche Benutzer oder Gruppen auf die Systemressourcen des Java-Stacks zugreifen dürfen und welche Zugriffsoperationen (z. B. Lesen, Schreiben, Auflisten) erlaubt werden sollen. Die konfigurierbaren Operationen hängen dabei vom Typ der Ressource ab. Es empfiehlt sich daher, die Detail-Planung anhand eines konkreten Java-Stacks - etwa nach der Installation - durchzuführen. Weitere Informationen finden sich in M 4.268 Sichere Konfiguration der SAP Java-Stack Berechtigungen.

Zugriff auf die Administrationsschnittstelle einschränken

Der Java-Stack wird über mehrere Schnittstellen administriert:

Der Zugriff auf die Administrationswerkzeuge (Visual Administrator, Configtool) ist auf die berechtigten Administratoren einzuschränken. Es ist jedoch zu bedenken, dass die Werkzeuge über das Netz arbeiten, so dass Angreifer eigene Programminstallationen nutzen können. Es empfiehlt sich daher, die Beschränkung auf Netzebene so zu konfigurieren, dass auf die administrativen Ports (siehe oben) nur von bestimmten Rechnern aus zugegriffen werden kann. Dies schließt zwar einen Angriff nicht vollständig aus, erschwert ihn jedoch.

Passwortqualität sicherstellen

Für die Benutzer des Java-Stacks sollten starke Passwörter konfiguriert werden. Die Möglichkeiten, die Passwortqualität sicherzustellen, unterscheiden sich in den einzelnen Java-Stack Versionen.

Als Mindestanforderung ist die minimale Passwortlänge auf einen Wert einzustellen, der durch die Passwortrichtlinie vorgegeben wird. Die Passwortlänge sollte mindestens 8 Zeichen betragen (Konfiguration für alle Benutzer über "Set Filter").

Auch ein maximales Alter für Passwörter sollte eingestellt werden, das den Vorgaben der Passwortrichtlinie entspricht. Dies wird über die Eigenschaften von Benutzern konfiguriert. Hier sind 90 Tage zu empfehlen.

Java-Stack Single Sign-On sicher konfigurieren

Damit auf den Java-Stack über Single Sign-On zugegriffen werden kann, müssen die Zertifikate der Systeme importiert werden, von denen Single Sign-On Tickets akzeptiert werden sollen. Dabei ist darauf zu achten, dass Single Sign-On Tickets nur von vertrauenswürdigen Systemen akzeptiert werden (siehe auch M 4.258 Sichere Konfiguration des SAP ABAP-Stacks).

Prüffragen: