SAP® NetWeaver Application Server ABAP und sein Nachfolger ABAP® Platform bilden die technologischen Grundlagen der geschäftskritischen Datenverarbeitung durch verschiedene Unternehmensanwendungen. Dazu gehören unter anderem einige der populärsten Lösungen wie SAP® ERP (ECC), SAP® S/4HANA, SAP® Business Suite oder SAP® Solution Manager. Die meisten dieser Produkte werden weltweit von Zehntausenden von Kunden verwendet.
Während die betriebswirtschaftliche und branchenspezifische Software in der Programmiersprache ABAP implementiert ist, wird ein Satz vorkompilierter ausführbarer Dateien (disp+work, gwrd, icman usw.) und gemeinsam genutzter Bibliotheken, die hauptsächlich in C/C++ geschrieben sind, als der grundlegende Kern des Anwendungsservers bezeichnet. Diese Kernkomponente bildet das Rückgrat eines SAP-Systems und dient als anpassbare Infrastruktur und Laufzeitumgebung für den Business Software Stack. Verschiedene Schnittstellenkomponenten, die vom Kernel bereitgestellt werden, ermöglichen die Client-zu-Server- und Server-zu-Server-Kommunikation. In großen Organisationen enthalten IT-Netzwerke typischerweise Dutzende von verteilten SAP-Lösungen, die zusammen eine hochgradig interaktive Systemlandschaft darstellen. Wenn es um die Interkonnektivität in SAP-Systemlandschaften geht, ist Remote Function Call (RFC) eines der wichtigsten Kommunikationsprotokolle.
Der gemeldete Fehler wurde in der serverseitigen Implementierung des proprietären RFC-Protokolls identifiziert. Remote agierende Angreifer können mit speziell erstellten Anfragen diese Schwachstelle ausnutzen, um eine bestimmte Identität vorzugeben, die eine Umgehung der Authentifizierung im SAP Kernel bewirkt. Im schlimmsten Fall führt dies zu einem hochprivilegierten Systemzugriff, der Angreifern schließlich die volle Kontrolle über anvisierte Anwendungsserver ermöglicht. Sobald wir dies bestätigen konnten, haben wir das SAP Product Security Response Team kontaktiert. Generell sind Design-Fehler oft arbeitsintensiver zu beheben als Programmierfehler. Deshalb möchten wir den professionellen Umgang der beteiligten Sicherheitsingenieure und Entwickler bei der Beseitigung dieser Schwachstelle hervorheben. Der Patch ist in neuen Kernel-Versionen enthalten, die über SP Stack Kernel/Hotfix und ABAP-Core-Korrekturen ausgeliefert werden. Zum Zeitpunkt der Veröffentlichung konnte der Patch noch nicht von uns getestet werden.
In Anbetracht der Tatsache, dass der Sicherheitshinweis 3007182 Korrekturanweisungen für grundsätzlich alle Kernel-Releases in der Wartung umfasst, gehen wir davon aus, dass sich die Schwachstelle seit vielen Jahren im Verborgenen befand. Wir empfehlen SAP-Kunden und Administratoren dringend, die Korrekturanweisungen zu prüfen und anzuwenden, auch wenn dies eine temporäre Abschaltung der betroffenen Server erfordert. Wir empfehlen, mit dem Internet verbundene Instanzen und Systeme, die Daten über Netzwerk-Vertrauensgrenzen hinweg übertragen, vorrangig zu betrachten.
Wenn ein sofortiges Patchen keine Option ist, bestehen leider keine alternativen Workarounds. Dennoch müssen Maßnahmen ergriffen werden, um das Risiko eines Angriffs in diesem Fall zu verringern. Wir empfehlen, kryptografisch sichere Kommunikationskanäle über Secure Network Communication (SNC) vollständig zu erzwingen. Außerdem muss der netzwerkseitige Zugriff (RFC, HTTP) so restriktiv wie möglich konfiguriert werden. Damit möchten wir an dieser Stelle auf die Wichtigkeit der Einhaltung allgemeiner Sicherheitsvorkehrungen hinweisen. Für die Angriffsfläche, die sich bei der RFC-Technologie ergibt, fasst das 2014 von SAP veröffentlichte Whitepaper Securing Remote Function Calls [4] weitere langfristig zu beachtende Maßnahmen zusammen - die verfügbaren Patches müssen aber in jedem Fall installiert werden.
Im Zuge der Responsible-Disclosure werden wir zu diesem Zeitpunkt keine technischen Details über die Sicherheitslücke veröffentlichen.