Sicherheitsaspekte für Web Dynpro ABAP 
Bei der Erstellung von Web-Applikationen anhand des Web Dynpro ABAP Programmiermodells ist es wichtig, Sicherheitsaspekte zu berücksichtigen. Sowohl für die Erstellung von Web-Applikationen als auch für den laufenden Betrieb dieser Anwendungen stehen Sicherheitsfunktionen zur Verfügung.
Achtung
In einem Produktivsystem sollten die folgenden HTTP-Serviceknoten (Transaktion SICF) für die Konfiguration nicht aktiv sein, da eine Konfiguration immer eine Entwicklung darstellt.
/sap/bc/webdynpro/sap/CONFIGURE_APPLICATION
/sap/bc/webdynpro/sap/CONFIGURE_COMPONENT
/sap/bc/webdynpro/sap/WD_ANALYZE_CONFIG_APPL
/sap/bc/webdynpro/sap/WD_ANALYZE_CONFIG_COMP
/sap/bc/webdynpro/sap/WD_ANALYZE_CONFIG_USER
Weitere Informationen über aktive Service-Knoten im HTTP-Service-Baum finden Sie unter Aktive Services in der SICF.
Die grundlegenden Informationen über Sicherheitsaspekte in einem AS-ABAP-System, in dem Sie Ihre Web-Applikation erstellen, finden Sie unter Netzwerkinfrastruktur und Sicherheit beim AS-ABAP.
Hinweis
Beachten Sie hierbei besonders die Konfiguration für die SSL-Unterstützung.
Des Weiteren wird eine Funktion für die Performance-Steigerung bei Mehrfachanmeldungen bereitgestellt, der Anmeldeticket-Cache.
Von SAP werden bestimmte Viren-Scan-Profile standardmäßig ausgeliefert. Beim HTTP Upload ist ein Virenscan möglich (siehe auch Viren-Scan-Schnittstelle).
Der Internet Communication Manager (ICM) nimmt HTTP-Requests aus dem Internet entgegen und schickt eine Antwort zurück.
Der AS-ABAP nutzt für den Zugriff auf eine Web-Applikation das HTTP-Framework des Internet Communication Manager (ICF), der seinerseits Funktionen für die Anmeldung am AS-ABAP bietet.
Achtung
Beachten Sie hierbei das Aktivieren und Deaktivieren von Services. Aus Sicherheitsgründen sollten nur genau diejenigen Services im HTTP-Service-Baum aktiv sein, die Sie wirklich benötigen. Wenn Sie dagegen Knoten auf einer höheren Ebene aktivieren, bedeutet dies, dass der gesamte darunter liegende Teil des Service-Baums ebenfalls aktiv ist und damit z.B. bei Hinterlegung des anonymen Benutzers für Zugriffe völlig offen und damit ungesichert ist.
Zusätzlich steht ein einfaches Verfahren für die Entwicklung und Konfiguration der Systemanmeldung bei Web-Applikationen zur Verfügung, bei dem die Sicherheitsaspekte integriert sind.
Vor NW 7.0 SP6 konnte eine Web-Dynpro-Applikation nicht isoliert in einer Umgebung (z.B. dem Portal) ausgeführt werden, da sie sich stets zu ihrer Umgebung bzgl. der Domäne relaxiert hat. Dies öffnet jedoch bei sicherheitskritischen Anwendungen ein mögliches Einfalltor für eine Attacke. Ein Angreifer könnte in einem anderen IFrame eine eigene Anwendung laufen lassen, seine Domäne ebenfalls relaxieren und auf die sensitiven Daten der ursprünglichen Applikation zugreifen.
Damit dies nicht geschieht, kann mit dem neuen Applikationsparameter WDPROTECTEDAPPLICATION auf dem Server für eine Applikation eingestellt werden, ob diese ihre Domäne relaxiert oder nicht.
Standardmäßig ist die Domäne weiterhin relaxiert. Der Parameter dient dazu, dieses Verhalten für sicherheitskritische Anwendungen auszuschalten.
Prüfen Sie daher, welche ihrer Applikationen sicherheitskritisch sind und setzen Sie dann entsprechend das Kennzeichen in der Web-Dynpro-Anwendung. Dazu selektieren Sie die entsprechende Web-Dynpro-Anwendung in der SE80 und verzweigen auf die Registerkarte Parameter. Über die F4-Hilfe der Parameter können Sie den Eintrag WDPROTECTEDAPPLICATION auswählen und dann den Wert auf X setzen.
Wenn der Parameter sap-wd-ssrconsole=true gesetzt ist, wird die Web Dynpro Console angezeigt. Diese enthält verschiedene Informationen, wie z.B. die Build-Nummer des Renderers, die verwendete Version und verschiedene Informationen, die für den Support bei der Fehlersuche nützlich sind. Eingaben können nicht gemacht werden.
Hinweis
Die Console im Web Dynpro ABAP dient im Gegensatz zur Console von Web Dynpro für Java nur der Anzeige von Daten.
Empfehlung
SAP empfiehlt, dass der View-Context nur die Daten enthalten sollte, die für die spezielle View notwendig sind. Unabhängig von Sicherheitsaspekten verbessert ein solches Design ebenfalls die Performance einer Anwendung.
Zentraler Bestandteil jeder Web-Dynpro-Anwendung sind die Daten, die im View-Context gehalten und verarbeitet werden. Die UI-Elemente, die über den View Designer für die entsprechende View definiert worden sind, werden in der Regel vom Web-Dynpro-Anwendungsentwickler an die einzelnen View-Context-Elemente gebunden, damit ein Datenfluss zwischen Client und Server stattfinden kann. Es ist jedoch praktisch auch möglich, dass View-Context-Daten ungebunden im View-Context stehen, da z.B. eine ABAP-Dictionary-Struktur verwendet wird, die weitere Attribute enthält, welche nicht visualisiert werden.
Um die Sicherheit zu verbessern, setzen Sie entweder in der Ansicht Eigenschaften die Attribut-Eigenschaft manuell auf readOnly = true, oder löschen Sie diese Attribute. Ein unbefugter Zugriff über den Client auf den View-Context-Inhalt kann beim Server Side Rendering durch verschiedene Sicherheitsmechanismen nicht erfolgen, ist aber (durch Fehler in der Software) nie auszuschließen. Deshalb lautet die oben stehende allgemeine Empfehlung, dass nur diejenigen Daten, deren Änderung unkritisch ist, im View-Context stehen sollten.
Weiterhin ist zu beachten, dass alle Eingaben immer geprüft werden müssen. Web Dynpro bietet bereits eine eingebaute Prüfung auf Typ-Sicherheit. Zusätzlich muss eine Anwendung jedes veränderte Attribut auf seine semantische Korrektheit hin untersuchen und die Eingabe gegebenenfalls ablehnen. Dazu gehören auch Prüfungen auf bestimmte Arten von Attacken, z.B. SQL-Attacken, wenn eine Eingabe später in einem dynamischen SQL-Statement verwendet wird.
Nicht alle Attribute von UI-Elementen müssen gebunden werden. Auch ein konstanter Wert ist erlaubt. Hierbei gilt, dass während des Herausrenderns der Inhalt solcher Attribute "escaped" wird, so dass eine Attacke über diesen Weg unterbunden wird. Eine spezielle Bedeutung kommt hierbei dem Attribut ID eines UI-Elements zu. Dieses wird in Web Dynpro für ABAP in eine Hexadezimalzahl mit einem zufälligen Offset umgewandelt, so dass eine direkte Zuordnung zu einem UI-Element nicht mehr möglich ist (siehe auch Datenbindung von Oberflächenelement-Eigenschaften).
Es können beim SSR-Client nur solche Events über eine JavaScript-Attacke ausgelöst werden, die auch durch eine Nutzer-Interaktion ausgelöst werden können. Dazu wird für jeden ankommenden Event auf dem Server überprüft, ob das zugehörige UI-Element sichtbar und enabled ist. Bestimmte Events sind ebenfalls durch das Attribut readOnly am UI-Element in ihrer Ausführung eingeschränkt. Dies wird in solchen Fällen ebenfalls überprüft.
Eine Anwendung kann eigene URL-Parameter definieren. Der Inhalt dieser Parameter sollte von der Anwendung überprüft werden, um Attacken über diesen Weg zu vermeiden. URL-Parameter, die von Web Dynpro angeboten werden, werden von der Web Dynpro Laufzeit automatisch überprüft.
Über das ICF stehen allgemeine Berechtigungsprüfungen für Services und damit Applikationen zur Verfügung (siehe Berechtigungen).
Spezielle Berechtigungsprüfungen für Web-Dynpro-Applikationen werden von der jeweiligen Anwendung je nach Bedarf vergeben.
Einzig für die Personalisierung wird vom Web Dynpro ABAP eine Berechtigungsprüfung angeboten, mit der die Administrations-Berechtigung für das Personalisieren von UI-Elementen abgeprüft wird.
Sie können eine eigene Abmeldeseite für Ihre Web-Dynpro-Applikation verwenden: Anwendungs-Abmeldeseite
Sie können die vom ICF generierte Standard-Fehlerseite unterdrücken und stattdessen eine eigene Fehlerseite definieren: Anwendungs-Fehlerseite
Eine White-List Infrastruktur im HTTP-Framework ermöglicht das Abwehren von XSS-Angriffen: Sicherheitsrisiko-Liste
Die White-List ist auch bei der Web-Dynpro-ABAP-Portal-Integration relevant, z.B. wird bei einem WDA-iView die Portal-Stylesheet-URL an Web Dynpro ABAP per URL-Parameter übergeben.
Deshalb müssen Sie, wenn Sie die Portal-Integration verwenden, die URL des Portals in die White-List eintragen.
Für die Verwendung der UI-Elemente AcfExecute und AcfUpDownload ist aus Sicherheitsgründen ebenfalls eine White-List notwendig. Weitere Informationen finden Sie in der Dokumentation dieser beiden UI-Elemente und im Implementation Guide (IMG) im System.
Siehe URL-Generierung in einer AS-ABAP - Web Dispatcher Konfiguration
Aus Sicherheitsgründen empfehlen wir bei der Portal-Integration die Verwendung von SAP-Anmeldetickets bzw. X.509-Zertifikaten. Andere Anmeldeverfahren werden nicht vollständig unterstützt.
Relevante SAP-Hinweise
Hinweisnummer |
Titel |
|---|---|
1088717 |
Aktive Services für Web Dynpro ABAP in der SICF |
510007 |
Einrichten von SSL auf dem Web Application Server |
420085 |
Logon Ticket Cache |
853878 |
HTTP WhiteList Check (Sicherheit) |