Übernahme eines SAP Host – Zwischen Warnung und Schreckensszenario

Wenn es um IT Security und Hacken im engeren Sinne geht, werden viele Experten schweigsam. Auf der einen Seite möchte man keine Anleitung liefern, auf der anderen Seite kaufen Kunden mehr, je düsterer die Szenarien gebaut werden. Wenn aber im Zuge der SAP Security ohne tatsächlichen Zusammenhang von gehackten Herzschrittmachern erzählt wird, oder selbstfahrende Autos verdammt werden, dann ist die Grenze des guten Geschmacks überschritten.

Es ist schwierig, eine Balance zu finden, um zwar den potenziellen Schaden deutlich zu machen, aber sich nicht in apokalyptischen Szenarien zu versteigen. Um deutlich zu machen, wie einfach es sein kann, einen Host unter einem SAP System zu übernehmen, befasst sich dieser Artikel etwas genauer mit einem speziellen Fall:

So einfach kann es sein

In diesem Szenario wird ohne Coding oder Transport mittels einer Reverse Shell eine Verbindung zum SAP Administrator aufgebaut. Dies bedeutet indirekt auch, dass neben dem SAP System sowohl die Verbindung zu der Datenbank als auch der Datenbankhost als infiltriert gelten müssen.

Die einfachste Version eine solche Reverse Shell zu erstellen, ist die Erweiterung der Tabelle TRMAC. Dort findet sich das BREAK Makro, dass bis heute viele Entwickler:innen benutzen, um einen Breakpoint an ihren Benutzernamen zu binden. Dieses Makro findet sich in vielen Systemen auch im SAP Standard, so dass man nicht nur auf Fehler im Kundennamensraum zu hoffen braucht.

Beispielcoding im Report

Dieses Makro wird bei der Aktivierung des Codings aufgelöst in:

Standardcoding des Makros
Standardcoding des Makros

Um diese Tabelle zu ändern, genügen neue Einträge über die Transaktion SM30. Hier kann ein Coding einfügt werden, welches bei jedem Aufruf dieses Makros eine Reverse Shell auf dem Port 4242 öffnet. Ein Beispielcoding könnte so aussehen:

Erweitertes Coding der Tabelle
Erweitertes Coding der Tabelle

Dieses Coding wird auf Betriebssystemebene mit den Rechten des SAP Administrators aufgerufen. Demnach erhalten die Täterin eine Shell, mit der auch der Inhalt der SAP Datenbank ohne jede weitere Berechtigungsprüfung abgefragt werden kann.

In einem solchen Fall ist – je nach Struktur der Unternehmens IT – das Herz des Unternehmens betroffen. Um diesen Angriff zu verhindern, sollte man die Transaktion SM30 nur Notfallusern zugänglich machen und außerdem die Protokollierung von Änderungen an Tabelleneinträgen der TRMAC aktivieren. Zusätzlich müssen eigene Entwicklungen sowie zugekaufte AddOns auf das BREAK Makro hin untersucht werden, um dieses rigoros zu entfernen.

Fazit

Dieses Beispiel zeigt, dass SAP Security richtig und wichtig ist und eine zentralere Rolle in der IT Security spielen sollte. Allerdings muss eine bessere Balance zwischen der Wichtigkeit und den tatsächlichen Auswirkungen auf die Unternehmen und deren IT-Landschaft geschaffen werden. Ein SAP System ist keine verdammungswürdige Maschine, aber man sollte seine Wichtigkeit nicht unterschätzen.