Unsere Security Analyst*innen im usd HeroLab decken während ihrer Penetrationstests (Pentests) immer wieder Einfallstore auf, die erhebliche Risiken für die Unternehmenssicherheit darstellen. Dabei begegnen ihnen vermehrt die gleichen Schwachstellen. Unsere Blogserie „Top 3 Schwachstellen“ stellt diese dar und gibt Ihnen Tipps für die Vermeidung – für #moresecurity über alle IT-Assets.
Heute betrachten wir die drei häufigsten sicherheitskritischen Schwachstellen, die unsere Analyst*innen bei Pentests von SAP-Systemen und FIORI-Webanwendungen in den vergangenen Jahren identifizieren konnten.
Warum SAP Pentests?
Unternehmensinterne SAP-Systeme sind ein kritischer Bereich für die IT-Sicherheit eines Unternehmens, da dort sensible und kritische Geschäftsprozesse ablaufen. Das Ausnutzen einer Schwachstelle in dieser Umgebung kann somit schwerwiegende Konsequenzen, wie betriebliche oder finanzielle Schäden für das ganze Unternehmen, nach sich ziehen.
Wir empfehlen daher einen regelmäßigen Pentest zur Identifikation möglicher Schwachstellen in Ihren SAP-Infrastrukturen. Was allerdings viele nicht wissen: Ein Pentest, wie er bei anderen Systemen oder Anwendungen durchgeführt wird, reicht hier nicht aus. Die Komplexität der SAP-Systemlandschaften erfordert fundierte Expertise und ein tiefes Verständnis der SAP-Umgebungen. Diese Expertise gepaart mit einem besonderen Vorgehen zur umfassenden Untersuchung von SAP-Systeme und FIORI-Webanwendungen, macht unsere SAP Pentests aus und ermöglicht es unseren Analyst*innen, besonders kritische, spezifische Einfallstore für Angreifer zu identifizieren.
Fehlkonfigurationen des SAP-Routers
Der SAP-Router ist eine wichtige Komponente in SAP-Systemlandschaften. Er dienst als sicherer Kommunikationskanal zwischen SAP-Systemen und externen Netzwerken, wie dem Internet oder anderen Unternehmensnetzwerken. Das vorrangige Ziel dabei ist es, SAP-(Anwendungs)Server nur über diesen Weg zugreifbar zu machen und nicht im Netzwerk zu exponieren.
Angreifer können Fehlkonfigurationen in SAP-Routern ausnutzen, um beispielsweise Port-Scans auf Systemen hinter der Firewall durchzuführen. Somit kann ein Angreifer diese Schwachstelle nutzen, um Informationen des internen Netzwerks und der SAP-Landschaft zu enumerieren. Ebenfalls können so Firewall-Beschränkungen umgangen und direkt auf Systeme innerhalb der SAP-Landschaft zugegriffen werden. Diese Umgehung der Netzwerksicherheitsmaßnahmen kann zu einem unbefugten Zugriff auf sensible Daten und kritische Ressourcen führen.
Aufgrund seiner Rolle als Gateway zwischen externem und internem Netzwerk wird der SAP-Router zu einem sehr beliebten Angriffsvektor. Zudem existiert ein öffentlich verfügbares Tool, um Portscans über einen SAP-Router durchzuführen. Wie in folgendem Beispiel zu sehen ist, kann über den SAP-Router ein internes System hinter der Firewall mit diesem Tool enumeriert werden:
Sicherheits-Tipp:
Um den Angriffsvektor zu minimieren, sollten strenge Zugriffskontrollen definiert werden. Somit kann der Zugriff auf den SAP-Router beschränkt und unbefugte Verbindungen aus externen Netzwerken verhindert werden. Für alle Verbindungen sollte ein Passwort erzwungen werden, das in der Route-Permission Tabelle gesetzt wird. Zusätzlich sollte die Verschlüsselung für die Kommunikation zwischen SAP-Systemen und dem SAP-Router aktiviert werden, um die Vertraulichkeit und Integrität der Daten zu schützen.
Eine angemessene Netzwerksegmentierung kann kritische Systeme isolieren und den direkten Zugriff auf sensible Bereiche innerhalb der SAP-Landschaft beschränken. Zur Identifikation von Angriffen und deren vorbeugenden Schutz können entsprechende Systeme eingesetzt werden, um den Netzwerkverkehr auf verdächtige Aktivitäten zu überwachen und proaktive Maßnahmen umsetzen.
Fehlerhafte Berechtigungen für Transaktionen
Die SAP-Systeme stellen Funktionsbausteine in Form von Transaktionen bereit. Immer wieder decken wir in Berechtigungsaudits und Penetrationstests auf, dass reguläre Fachbereichsnutzer Zugang zu Transaktionen haben, die eine gefährliche Funktionalität bereitstellen.
Ein klassisches Beispiel ist dabei der Zugriff auf beliebige Daten-Tabellen mit der Data Browser Transaktion SE16. Generell ist der Zugriff auf spezifische Tabelleninhalte innerhalb des SAP-Systems in vielen Fällen für die tägliche Arbeit von regulären Nutzern erforderlich. Wenn jedoch keine ausreichende Einschränkung der einsehbaren Tabellen stattfindet, ist es möglich, die Passwort-Hashes aller Nutzer im SAP-System in der Tabelle USR02 einzusehen:
Insgesamt ist das SAP-Berechtigungskonzept komplex. Oftmals existiert eine Vielzahl von Berechtigungen und Rollen, die in Unternehmen im Einsatz sind, wodurch die Pflege und Übersicht der eingesetzten Berechtigungen schwierig zu gestalten sind. Die vergebenen Rollen beinhalten in vielen Fällen außerdem mehrere Einzelberechtigungen, sodass eine feingranulare Vergabe mit größerem Aufwand verbunden ist. Außerdem ist nicht für jede Transaktion unmittelbar ersichtlich, ob diese eine Gefährdung der Schutzziele darstellt und wie gravierend diese Gefährdung ausfällt. Einige Transaktionen wie SM49 erlauben unter anderem Angriffe auf das unterliegende Betriebssystem der SAP-Anwendung.
Sicherheits-Tipp:
Zur Minimierung von Angriffsvektoren sollte ein möglichst feingranulares Konzept für notwendige Berechtigungen von Geschäftsprozessen etabliert werden. Dabei sollten die eingesetzten Rollen möglichst detailliert aufgebaut sein und nur Berechtigungen beinhalten, die für die Geschäftsprozesse unbedingt nötig sind (Least Privilege Prinzip). Besonders kritische Berechtigungen, zum Beispiel Tabellenzugriffe, sollten weiter eingeschränkt werden, sodass nur festgelegte Zugriffe innerhalb der Transaktion möglich sind.
Zugriffskontrolle in der SAP Management Console
Die sogenannte SAP Management Console ermöglicht das Management des SAP-Systems. Diese Zugriffe sind über eine SOAP API-Schnittstelle möglich. Mithilfe der SAP Management Console können wiederkehrende Administrationsaufgaben abgebildet werden und verschiedene Monitoringlösungen beziehen Informationen über diese Schnittstelle.
Bei einer fehlerhaften Konfiguration ist es über diese Schnittstelle beispielsweise ohne Authentifizierung möglich, Log-Dateien, Passwortrichtlinien oder Parameterwerte der Systemkonfiguration auszulesen. Dadurch tritt dann eine Gefährdung der Schutzziele auf. Angreifer können bereitgestellte Zugriffe ohne großen Aufwand mit öffentlich verfügbaren Tools enumerieren und nutzen, wie in diesem Beispiel zu sehen ist:
Sicherheits-Tipp:
Um die Angriffsoberfläche zu minimieren, sollte ein Zugriff auf Funktionen der SAP Management Console ohne Authentifizierung möglichst eingeschränkt werden. Dafür stellt SAP eine Standardkonfiguration bereit. Der Systemparameter service/protectedwebmethods sollte auf den Wert SDEFAULT gesetzt werden.
Falls weitere Funktionen zwingend ohne Authentifizierung benötigt werden, um Geschäftsprozesse abzubilden, können Ausnahmen im Systemparameter angegeben werden. Hierbei sollte allerdings SDEFAULT als Grundlage verwendet werden. Um beispielsweise die zusätzliche Funktionalität zur Auflistung von J2EE-Prozessen ohne Authentifizierung zu ermöglichen, kann der Parameterwert SDEFAULT –J2EEGetProcessList verwendet werden.
Sie möchten ein umfassendes Bild des aktuellen Sicherheitsniveaus Ihrer SAP-Systemlandschaft bekommen und Verbesserungspotential identifizieren? Ein SAP-spezifischer Pentest kann helfen. Kontaktieren Sie uns, wir helfen Ihnen gern.