SAP® Hack: SAP-Systeme aufspüren und angreifen

Die Vernetzung der Systeme nimmt immer weiter zu. Industrie 4.0 sowie IoT sind hier wesentliche Faktoren. Doch ein Faktor im IT-Betrieb scheint unverändert gültig zu bleiben:
Die Systeme müssen „laufen“. Patch-Management und Security erhalten daher nicht immer die erforderliche Priorität. Dies führt letztlich zur Anbindung von Systemen an das Internet, die veraltete Releases nutzen oder nicht die neuesten Security-Patches erhalten.

Anhand dieser Systeme lässt sich anschaulich skizzieren wie Hacker SAP-Systeme identifizieren und angreifen. Das Verständnis wie ein Hack eines solchen SAP-Systems abläuft, dient hier der Sensibilisierung der Systemverantwortlichen. Dies wiederum sollte sodann zur Härtung der SAP-Systeme führen.

Warum ist die Internet-Anbindung ein Risiko?

Die globale Erreichbarkeit des Systems durch die Anbindung an das Internet sorgt für eine deutliche Steigerung der Gefährdung des Systems. Dies liegt einfach daran, dass ab dem Moment der Internet-Anbindung jeder dieses System aufspüren und angreifen kann.

Jedes System bietet auch im Normalfall eine gewisse Angriffsfläche. Denn ein System wird in der Regel zu einem bestimmten Zweck an das Internet angeschlossen und bietet für diesen Zweck vorgesehene Dienste im Internet an. Beispielweise bieten die im Internet bekannten Web-Server ihre Webseiten über einen Web-Dienst (HTTP/HTTPS) an.

Dienste können bekanntlich Schwachstellen haben. Dies gilt auch für SAP-Systeme. Hier sind 4 bekannte und „gefixte“ Schwachstellen in SAP-Systemen aufgeführt, die  für potentielle Angriffe aus dem Internet nutzbar sind:

  • 1445998 – Deaktivieren des Invoker-Servlets
    • SAP NetWeaver AS Java 6.40 bis 7.20 verwundbar
  • 2234971 – Directory-Traversal in AS Java Monitoring
    • SAP NetWeaver AS Java 7.10 bis 7.50 verwundbar
  • 1682613 – Fehlende Berechtigungsprüfung im Core-Service
    • SAP NetWeaver AS Java 6.40 bis 7.31 verwundbar
  • 2101079 – Mögliche Änderung/Offenlegung von persist. Daten in BC-ESI-UDDI
    • SAP NetWeaver AS Java 7.11 bis 7.50 verwundbar

Wie hoch ist nun die Wahrscheinlichkeit potentiell verwundbare Systeme im Internet zu finden? Beispielsweise in einem technologisch fortschrittlichem Land wie Deutschland…

SAP-Systeme mit Shodan.io finden

SAP-Systeme lassen sich relativ zuverlässig und kostenlos mit Shodan.io aufspüren. Die hier ausgesuchten Schwachstellen beziehen sich auf Systeme des Typs SAP NetWeaver AS Java. Solche Systeme findet diese Suche bei Shodan „sap as Java„. Insgesamt werden 2391 Systeme gefunden.

2391 SAP-Systems found
Shodan Suche

Anhand des Server Tags in der Ergebnisliste lässt sich einfach die Version ablesen:

Server: SAP NetWeaver Application Server 7.21 / AS Java 7.31

Dieses System wäre potentiell für 3 der 4 genannten Schwachstellen anfällig.

Schränkt man die Suche auf Deutschland ein („sap as Java country:DE„), so werden immer noch 183 Systeme gefunden.

Hack Vorbereitung: Karte mit potentiellen Ziel-Systemen in Deutschland
Shodan Karte für Deutschland

Darunter sind durchaus neuere Systeme:

server: SAP NetWeaver Application Server 7.45 / AS Java 7.50

Jedoch könnten immer noch 2 der 4 Schwachstellen vorhanden sein.

Es lässt sich jedoch auch gezielt nach älteren Systemen suchen: „SAP J2EE Engine„. Hier werden 1078 Systeme gefunden. Vornehmlich veraltete Systeme.

server: SAP J2EE Engine/7.00

Auch in Deutschland stehen noch 70 solcher Systeme.

Hack Vorbereitung: Karte mit veralteten Systemen in Deutschland
Karte für ältere Systeme in Deutschland

Zwei potentielle Schwachstellen lassen sich diesen älteren Versionen zuordnen.

Shodan zeigt sich wirklich auskunftsfreudig zu diesen Systemen.

Hack Zielauswahl: Ergebnisseintrag in Shodan mit Details
Detailansicht in Shodan

An dieser Stelle kann man soweit festhalten, dass mit wenig Aufwand und kostenlos eine immense Liste an potentiell verwundbaren Systemen identifiziert werden kann.

An 4 theoretischen Beispielen lässt sich nun die Gefährdung solcher Systeme nachvollziehen.

Beispiel Hack 1: Anonymer Datei Download (SAP Hinweis 2234971)

Ein Angreifer kann unter Kenntnis der URL der verwundbaren Komponente beliebige Dateien des Servers herunterladen. Dies sogar ohne gültiges Login. Auf diesem Weg kann sich ein Angreifer Zugriff auf den Passworttresor (SecStore) des Systems verschaffen. Diesen kann er im Anschluss knacken (decodieren) und erhält die darin enthaltenen administrativen Zugangsdaten. Mit diesen Logindaten hat er dann Vollzugriff auf das System.

Beispiel Hack 2: Anonymer Dateitransfer (SAP Hinweis 1682613)

In dem Kernservice des P4-Dienstes von SAP Netweaver AS Java Systemen klafft bis zur Version 7.31 eine schwerwiegende Lücke. Diese kann ein Angreifer wie folgt ausnutzen. Zunächst prüft er ob der betroffene Dienst bei dem System aus dem Internet erreichbar ist. Sofern dies der Fall ist kann er eine anonyme Verbindung ohne Logindaten zu diesem Dienst aufbauen. Über diese Verbindung kann er dann jede beliebige Datei aus dem System lesen. Wie zuvor kann ein Angreifer damit Zugriff auf den SecStore erhalten und die administrativen Zugangsdaten auslesen.

Beispiel Hack 3: CTC Servlet (SAP Hinweis 1445998)

Diese Schwachstelle hat viel Aufsehen erhalten, selbst das US-CERT hat eine Warnung zu dieser Schwachstelle veröffentlicht. SAP selbst beschreibt die Schwachstelle mit diesen Worten:

Der Zugriff auf Servlets ist unabhängig von in der Datei web.xml definierten Sicherheitsbeschränkungen anonym über einen anderen Pfad möglich.

Konkret bedeutet dies, dass ein Angreifer lediglich eine bestimmte URL des Servers aufrufen muss. Damit kann er dann beliebige Systembefehle ausführen. Weiterhin kann er Benutzer anlegen und beliebige Berechtigungen zuweisen.  Mit diesen Mitteln ist er in der Lage das System vollkommen unter seine Kontrolle zu bringen.
Besonders gefährlich bei dieser Lücke ist, dass ein Patch nicht generell das Problem behebt sondern lediglich eine bestimmte Konfigurationseinstellung deaktiviert. Diese kann jederzeit wieder aktiviert werden und damit das System erneut verwundbar machen.

Beispiel Hack 4: SQL-Injection (SAP Hinweis 2101079)

Es existiert eine SQL-Injection Schwachstelle in der Komponente SAP NetWeaver AS Java UDDI. Diese Schwachstelle kann anonym ohne Zugangsdaten ausgenutzt werden. Doch ganz so einfach ist dieser Weg dann doch nicht. Zunächst benötigt man einen Benutzernamen im System. Dieser ist für den Angriff zwingend nötig. Es gibt jedoch weitere Schwachstellen in den Systemen zu diesen Releases. Diese erlauben das anonyme Anzeigen der Benutzer im System. Hierzu reicht es aus eine von zwei möglichen URLs aufzurufen und sich die Benutzer anzuzeigen. In der Liste der Benutzer sucht man nun nach einem administrativen Account wie J2EE_ADMIN.

Mit Kenntnis des Benutzernamens kann über die SQL-Injection Schwachstelle nun auf dessen im System gespeicherten Passworthash zugegriffen werden. Dieser Hash kann aufgrund eines weiteren Fehlers in diesen Systemen sehr leicht in ein klartext Passwort überführt werden.

Damit kennt ein Angreifer nun die Zugangsdaten und erhält somit administrativen Vollzugriff auf das System.

SAP-Systeme schützen

Die Beispiele zeigen eindrucksvoll, dass es mit dem notwendigen Know-how relativ einfach ist SAP-Systeme erfolgreich aufzuspüren und zu hacken.

Abwehrstrategien scheitern vor allem an zu wenig Ressourcen und mangelndem Verständnis für Sicherheitslücken sowie dem fehlenden Know-how zur Ermittlung des tatsächlichen Sicherheitsstatus eines Systems. Mit dem werthAUDITOR von Werth IT ist es möglich die Systemsicherheit zu prüfen bevor und während die Systeme mit dem Internet verbunden sind. Damit lassen sich nicht nur die hier vorgestellten Risiken mindern, sondern auch Problemstellungen im ABAP-Coding, den Berechtigungen, der Systemkonfiguration und weiteren sicherheitskritischen Systemeigenschaften lösen. Trotz limitierter Ressourcen kann so ein dauerhaft sicherer Betrieb und die Einhaltung der Compliancevorgaben erreicht werden.

Mehr Informationen zu unserem SAP Security Service erhalten Sie hier.