Schutz der Oracle E-Business Suite: Verringerung der Angriffsfläche

Dies ist der vierte Blogbeitrag in Folge unserer Reihe darüber,wie man die Oracle E-Business Suite sicherer macht. In diesem Beitrag konzentrieren wir uns auf die Verringerung der Angriffsfläche – ein entscheidender Bestandteil jeder erfolgreichen Informationssicherheitsstrategie. Je mehr Sie die Komponenten reduzieren können, die Angreifern (und Schwachstellen) ausgesetzt sind, desto mehr können Sie sich darauf konzentrieren, Ihre exponierten Systeme sicher zu halten. In der Oracle E-Business Suite wird diese Funktion als „Allowed JSPs“ und „Allowed Resources“ bezeichnet. In einem realen Angriffsszenario wäre der erste Schritt für einen Angreifer, die Architektur des Ziels zu verstehen und herauszufinden, welche dieser Systeme exponiert sind. Nach der Ersteinrichtung der Oracle E-Business Suite sind alle Ressourcen und Module verfügbar; während der Installation gibt es keine Einschränkungen. Standardmäßig umfassen die exponierten Komponenten mehr als 7800 JSPs (Java Server Pages), Mediendateien, Servlets, Formulare, Business Services, von einigen JSPs aufgerufene Java-Klassen und mehr. Das Hauptrisiko bei der Exposition dieser Komponenten besteht darin, dass ein Angreifer den Code nutzen könnte, um Schwachstellen zu finden und diese auszunutzen. In der Oracle E-Business Suite kann ein Angreifer jede exponierte URL nutzen und den exponierten Code lesen, indem er mit der rechten Maustaste klickt und dann auf „Seitenquelle anzeigen“ klickt: 

oracle8.png
oracle9.png

Da in der Oracle E-Business Suite eine web.xml-Definition mit derServlet-Definitionvorhanden ist, kann ein Angreifer in einer Testumgebung der Oracle E-Business Suite die Java-Klassen ermitteln, die die Servlet-Funktionalität implementieren:

oracle10.png

Angesichts der vorangegangenen Informationen könnte ein Angreifer die gesamte Angriffsfläche nutzen, um bekannte Schwachstellen auszunutzen oder neue Schwachstellen zu entdecken und diese auszunutzen.

Verringerung der Angriffsfläche

Wie bereits gezeigt, gibt es in jedem Dienst zahlreiche Quellcode-Implementierungen, die ein Angreifer nutzen könnte, um control das System zu erlangen. Zudem ist es nicht üblich, dass ein Unternehmen alle Funktionen der Oracle E-Business Suite nutzt, weshalb es empfehlenswert ist, die nicht benötigten JSPs (von denen es, wie erwähnt, mehr als 7800 gibt) zu entfernen. Trotz proaktiver Maßnahmen zum Schutz Ihrer Infrastruktur ist es ein ungünstiges Szenario, wenn ein Angreifer Ihre Systeme über eine Anwendung ausnutzen kann, die Sie gar nicht nutzen. Dies lässt sich leicht beheben, indem diese Sicherheitslücke geschlossen wird (was viel einfacher ist als das Patchen). Die Funktion „Allowed JSPs“ reduziert die Angriffsfläche der Oracle E-Business Suite, indem sie die Erstellung einer Whitelist von JSPs ermöglicht, denen der Zugriff auf die Oracle E-Business Suite gestattet ist. Diese Funktion ist nur in den Versionen R12.2 verfügbar. In Release 12.2.6 mit Patch 24737426:R12.FND.C wurde die Funktion „Allowed JSPs“ erweitert und heißt nun „Allowed Resources“. Die Funktion „Allowed Resources“ reduziert die Angriffsfläche der Oracle E-Business Suite, indem sie die Erstellung einer Whitelist von Ressourcen, JavaServer Pages (JSPs) und Servlets ermöglicht, denen der Zugriff auf die Oracle E-Business Suite gestattet ist. Als Teil des Oracle E-Business Suite Release 12.2.6 Update pack RUP) ist die Funktion „Allowed Resources“ standardmäßig aktiviert; in früheren Versionen muss sie manuell aktiviert werden. Es gibt nur zwei Schutzstufen:

  • 1. Die Verwendung in der werkseitigen Konfiguration bietet einen gewissen Schutz bei minimalem Aufwand.
  • 2. Sie können individuelle Whitelists erstellen und verwenden, die auf Ihre Familie und Ihre Produktnutzung zugeschnitten sind. Diese Option wird empfohlen, um die Angriffsfläche bestmöglich zu verringern.

Funktion „Zulässige JSPs“ aktivieren

Die grundlegende Strategie für die Implementierung der Funktion „Zulässige JSPs“ beginnt mit einer Analyse der Nutzung der Produktfamilie: Ohne genauere Kenntnisse darüber, wie das Produkt genutzt wird, können Sie nicht weiter voranschreiten. Anschließend sollten Sie die eingeschränkten JSPs mit dem access_log abgleichen (alle vom Oracle HTTP Server verarbeiteten Anfragen werden in der access_log-Datei protokolliert). Stellen Sie schließlich sicher, dass die Funktion „Allowed JSPs“ aktiviert ist, und fügen Sie nach Bedarf benutzerdefinierte JSPs hinzu. Schließlich können Sie die Liste weiter verfeinern, nachdem Sie die Nutzung ordnungsgemäß überwacht haben. Die wichtigsten Konfigurationsdateien für diese Funktion sind:

  • $OA_HTML/WEB-INF/web.xml
  • $FND_TOP/secure/allowed_jsps.conf (Hauptkonfigurationsdatei)
  • $FND_TOP/secure/allowed_jsps_.conf
  • $FND_TOP/secure/allowed_jsps__.conf

Schauen wir uns das einmal genauer an, um zu verstehen, wie es funktioniert.

oracle16.png

Diese Datei enthält einen Filter zum Einlesen der Konfigurationsdatei „Allowed JSPs“ und zum Festlegen zusätzlicher Konfigurationsparameter. Der Parameter MASTER_FILE definiert den Namen der Hauptkonfigurationsdatei. Der Standardname lautet $FND_TOP/secure/allowed_jsps.conf. Hier ein Beispiel aus $OA_HTML/WEB-INF/web.xml:

oracle12.png
oracle17.png

Der Dateiinhalt umfasst gängige JSPs für die Oracle E-Business Suite sowie Konfigurationsdateien für Produktfamilien (als Include-Dateien). Nachfolgend finden Sie ein Beispiel für die Datei „allowed_jsps.conf“. In dieser Beispieldatei sehen Sie, dass am Ende alle Include-Dateien wie „allowed_jsps_FIN.conf“, „allowed_jsps_HR.conf“ und weitere Dateien aufgeführt sind.

oracle14.png
oracle18.png

Der Ordnerinhalt umfasst allgemeine JSPs für die Produktfamilien der Oracle E-Business Suite sowie JSPs, auf die innerhalb einer Produktfamilie zugegriffen werden kann. Nachfolgend finden Sie ein Beispiel für die HR-JSP-Familie:

oracle20.png
oracle21.png

Im Folgenden finden Sie ein Beispiel für die HR-JSP-Familie und das HXC-Produkt:

oracle22.png

Erstellen einer benutzerdefinierten Konfigurationsdatei

Sie können auch benutzerdefinierte Konfigurationsdateien erstellen, wenn Sie die Analyse vertiefen und eine detailliertere Konfiguration vornehmen möchten. Zu diesem Zweck sollten Sie eine neue benutzerdefinierte Konfigurationsdatei (z. B. allowed_jsps_CUSTOM.conf) erstellen, diese zur benutzerdefinierten Konfigurationsdatei (z. B. /OA_HTML/MyCustomPage.jsp) hinzufügen und schließlich den entsprechenden Eintrag in der MASTER_FILE, allowed_jsps.conf, einfügen. Für diese Funktion von Allowed JSP gibt es drei Granularitätsstufen:

  • Wenn Sie keine Produkte aus einer bestimmten Produktfamilie verwenden, kommentieren Sie diese Familie in der MASTER_FILE aus.
  • Um den Zugriff auf Produktebene einzuschränken, kommentieren Sie die entsprechenden JSPs auf Produktebene aus.
  • Um den Zugriff auf der Ebene einzelner JSPs zu beschränken, kommentieren Sie die betreffenden JSPs aus.

Zulässige JSPs aktivieren

Sobald Sie alles ordnungsgemäß konfiguriert haben, sollten Sie diese Funktion aktivieren. Dazu können Sie über die Profiloption „Uneingeschränkten JSP-Zugriff zulassen“ (FND_SEC_ALLOW_JSP_UNRESTRICTED_ACCESS) festlegen, ob uneingeschränkter oder eingeschränkter Zugriff gewährt werden soll. Die Werte für diesen Parameter können lauten:

  • Auf Website- oder Serverebene festlegen.
  • Der Wert „Ja“ ermöglicht uneingeschränkten Zugriff, was eine unsichere Konfiguration darstellt.
  • Der Wert „No“ oder „Null“ ermöglicht einen eingeschränkten Zugriff, sofern der JSP-Servlet-Filter konfiguriert ist.

Es gibt weitere Funktionen zur Verringerung der Angriffsfläche, zum Beispiel „Zulässige Weiterleitungen“ und „Cookie-Domänen-Scoping“. Wir werden weitere Beiträge zu diesem Thema veröffentlichen und erläutern, wie Sie eine sicherere Oracle E-Business Suite aufbauen können. Das Thema Angriffsfläche ist für die Sicherheit von Oracle E-Business Suite-Installationen von großer Bedeutung. Vor Version 12.2.6 der Oracle E-Business Suite sind im System standardmäßig alle Dienste aktiviert. Diese Standardkonfiguration ist für Unternehmen nicht vorteilhaft, da sie das System einer Vielzahl von Diensten aussetzt, die das Unternehmen wahrscheinlich gar nicht nutzt. Es ist sehr wichtig zu verstehen, welche Dienste das Unternehmen benötigt, und nur diese Dienste zu aktivieren – nicht mehr und nicht weniger –, gemäß dem Prinzip der geringsten Berechtigungen.