Deutsch | English | Español

Gefahren im SAP Transportwesen Teil 1: AUTHORITY-CHECKs umgehen

9. Oktober 2017 | Von Thomas Fritsch, Virtual Forge GmbH

Blog_Transportwesen.pngDie Meinungen über das SAP-Berechtigungskonzept gehen weit auseinander. Sicherlich lässt sich eine gewisse Komplexität und der damit verbundene Pflegeaufwand nicht abstreiten. Die wichtigste Anforderung aber, die lückenlose Absicherung aller Lese- und Schreibzugriffe innerhalb eines Programms, lässt sich damit sehr gut realisieren – zumindest theoretisch. In der Praxis gibt es einige Möglichkeiten, Berechtigungsprüfungen zu umgehen.

Tatsächlich ist eine fehlende oder fehlerhafte Berechtigungsprüfung einer der häufigsten Fehler in kundeneigenen ABAP-Programmen. Im Folgenden gehen wir aber davon aus, dass der Entwickler dem Berechtigungsaspekt bei der Erstellung des Programms die notwendige Aufmerksamkeit gewidmet hat.

Interessanterweise erlaubt SAP jedoch, Berechtigungsprüfungen auf einzelne Berechtigungsobjekte global oder transaktionsspezifisch auszuschalten.

Die globale Deaktivierung setzt voraus, dass der Profilparameter auth/object_disabling_active auf den Wert ‚Y‘ gesetzt ist. Da dies jedoch der Standardwert des Parameters ist, ist diese Voraussetzung in sehr vielen Umgebungen erfüllt. Über die Transaktion AUTH_SWITCH_OBJECTS können dann beliebige Berechtigungsobjekte deaktiviert werden, so dass Programme Berechtigungsanfragen auf diese Objekte nicht mehr berücksichtigen. Diese Transaktion selbst ist natürlich durch Berechtigungen geschützt, sodass nur Berechtigungsadministratoren Zugriff haben sollten.

Die Transaktion AUTH_SWITCH_OBJECTS erlaubt jedoch auch den Transport aller Einstellungen. Wenn man bedenkt, dass Berechtigungen auf Entwicklungssystemen immer noch oft sehr weitreichend vergeben sind, so erweitert sich dadurch in der Regel schon der Benutzerkreis, der Berechtigungsobjekte deaktivieren kann. Die Standardfunktion zum Transportieren der Einstellungen bietet noch einen gewissen Schutz, indem diese zunächst in einer Art Schattentabelle transportiert werden (Tabelle TOBJ_SAV) und erst nach Bestätigung durch einen Administrator im Zielsystem aktiv gesetzt werden.

Durch manuelle Pflege der Transportobjektliste können die Einstellungen jedoch auch gleich „aktiv“ transportiert werden. Hierzu reicht es, die Tabelle TOBJ_OFF mit dem oder den gewünschten Schlüsseln in einen Transportauftrag zu stellen. Die gewünschten Einstellungen werden zuvor per Transaktion vorgenommen oder, bei fehlender Berechtigung, per selbst geschriebenem Mini-Report gesetzt. Somit ist ein (interner oder externer) Angreifer in der Lage, beliebige Berechtigungsprüfungen auszuschalten!

Ob ein solches Angriffsszenario vorliegt, lässt sich durch eine manuelle Prüfung der Transporte natürlich herausfinden. Auf Folgendes sollte man dabei achten:

  • R3TR TABU TOBJ_SAV mit Schlüssel „*“
    • Eventueller Angiffssversuch
    • Hoher Testaufwand, da alle Einstellungen transportiert werden

  • R3TR TABU TOBJ_SAV mit dedizierten Schlüsseln 
    • Eventueller Angriffsversuch, Objektliste des Transportauftrags wurde in jedem Fall manuell gepflegt

  • R3TR TABU TOBJ_OFF
    • Definitiver Angriffsversuch!
    • Die Objektliste des Transportauftrags wurde manuell gepflegt. Die Bestätigung der Änderung durch einen Berechtigungsadministrator im Zielsystem wird bewusst umgangen!

Anmerkung: Um einen Angriff zusätzlich zu verschleiern, können die oben aufgeführten Objekte auch in einem übergeordneten Objekt getarnt werden. Hierzu zählen:

  • View Cluster (R3TR CDAT <beliebiger Objektname>)
  • Pflegeview (R3TR VDAT <beliebiger Objektname>)
  • Customizingdaten (R3TR TDAT <beliebiger Objektname>)

In diesen Fällen ist jeder Eintrag als definitiver Angriffsversuch zu bewerten! Nur eine Prüfung aller Transportaufträge, wie oben beschrieben, hilft effektiv gegen einen solchen Angriffsversuch. 

Diesen und über 100 weitere Tests führt der VirtualForge TransportProfiler für interne und externe Transportaufträge automatisch durch. Machen Sie den ersten Schritt auf dem Weg zu einem wirklich sicheren SAP Transportwesen und vereinbaren Sie noch heute einen Termin für eine unverbindliche Schwachstellenanalyse und Präsentation.

Mit diesem Artikel starten wir eine Reihe von Beiträgen, die sich mit möglichen Problemen und Sicherheitsrisiken im SAP Transportwesen beschäftigen. Der nächste Beitrag beschäftigt sich mit der transaktionsspezifischen Ausschaltung von Berechtigungsobjekten.

Hier geht es zur Blog-Serie
Gefahren im SAP Transportwesen Teil 2: AUTHORITY-CHECKS transaktionsspezifisch umgehen
Gefahren im SAP Transportwesen Teil 3: Manipulation der Jobverwaltung 
Gefahren im SAP Transportwesen Teil 4: Automatische Code-Ausführung beim Import
Gefahren im SAP Transportwesen Teil 5: Logische Dateinamen und Betriebssystem-Kommandos

 



@Virtual_Forge auf Social Media:

social_twitter_active.png social_xing_active.png social_linkedin_active.png social_google_active.png