Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Sicherheitsrisiko-Liste Dokument im Navigationsbaum lokalisieren

Die Sicherheitsrisiko-Liste oder „White-List“ ermöglicht es, URL-ähnliche Parameter vom Portal in den AS-ABAP zu integrieren. Dazu steht die Methode CL_HTTP_UTILITY=>IF_HTTP_UTILITY~CHECK_HTTP_WHITELIST zur Verfügung.

In der White-List werden Muster konfiguriert, mit denen URLs aus externen Quellen abgeglichen werden. Damit wird verifiziert, dass diese URLs akzeptabel sind. Die White-List ist in der Tabelle HTTP_WHITELIST gespeichert, die über Transaktion SE16 geändert werden kann.

Tabelle HTTP_WHITELIST

Jeder Tabellensatz hat die folgenden Struktur:

·        entry_type

URL-Typ, der mit diesem Eintrag abgeglichen werden soll.

Beispiel: CSS Off-box Referenz

·        host

Hostname, der mit dem eingehenden Host verglichen wird. Dieses Feld ist leer, wenn der Hostname nicht für einen spezifischen Eintrag überprüft wird. Der Platzhalter (*) kann verwendet werden.

·        protocol

Zu überprüfendes Protokoll. In der Regel HTTP oder HTTPS. Dieses Feld klann leer sein, wenn keine Prüfung durchgeführt wird.

·        port

Zu überprüfende Portnummer. Darf nur aus Ziffern bestehen, leer lassen für keine Prüfung.

·        url

URL für die Prüfung gegen die eingehende URL. Der Platzhalter (*) kann verwendet werden.

Wenn keine Einträge in der Tabelle HTTP_WHITELIST vorliegen, werden keine Prüfungen durchgeführt.

Sobald die URL mit ihren einzelnen Bestandteilen vorhanden ist, wird sie gegen die Tabelle mit der White-List abgeglichen. Diese Tabelle enthält auch die einzelnen Bestandteile der URL, die eins nach dem anderen abgeglichen werden.

Mit dem entry-type können verschiedene Arten von White-Lists konfiguriert werden. Üblicherweise wird in einer White-List definiert, von welchem Server CSS-Themes geladen werden dürfen. Diese CSS-Themen werden geladen, indem ein mitgelieferter URL-Pointer im HTML generiert wird, der zurück auf den Portal-Server zeigt.

Wenn Parameter nicht spezifiziert sind, werden sie nicht abgeprüft. Es wird davon ausgegangen, dass sie übereinstimmen.

Wenn ein Maskierungszeichen (*) spezifiziert ist, wird es mit dem empfangenen String abgeglichen.

URL-Beispiele

URL

Standard-Port/Standard-Root

http://myHost.myDomain.myExt:1080/myUrl

 

http://myHost.myDomain.myExt/myUrl

Standard-Port 80

https://myHost.myDomain.myExt/myUrl

Standard-Port 443

http://myHost.myDomain.myExt:1080

Standard-Root url

http://myHost.myDomain.myExt

Standard-Root url

/myUrl

Keine Host-Daten angegeben

Beispiel

·         Beispiel 1:

whitelist-protocol =  (empty string)

Hier wird implizit angegeben, dass das Protokoll nicht geprüft wird. Alle URLs in der Form http[s]://... oder /... werden durchgelassen, da nicht abgeprüft wird, ob ein Protokoll gesetzt wurde.

·         Beispiel 2:

whitelist-protocol = *

Hier wird geprüft, ob das Protokoll mit irgendeinen Wert definiert wurde. Alle URLs in der Form http[s]://... werden durchgelassen. URLs in der Form /... werden jedoch nicht akzeptiert, da nach dieser Regel kein Protokoll verfügbar ist.

·         Beispiel 3:

whitelist-protocol = https

Mit dieser Regel werden nur URLs in der Form https://... durchgelassen.

Im einfachsten Fall verwenden Sie einfach eine White-List mit leeren Feldern und führen gar keine Checks durch. Der Zweck der White-List-Tabelle ist es jedoch, einen vom Kunden benötigten Sicherheitsstandard zu bieten.

Beispielsweise können Sie einen Portal-Server haben, der URLs bereitstellt, die auf die Portal-Themens zeigen (CSS-Dateien). Auf einer ersten Sicherheitsebene könnten Sie einen White-List-Filter in der folgenden Form verwenden:

    protocol=*, host=*.myDomain.myExt, port=*, url=

Damit würden effektiv alle Referenzen auf anderen Maschinen in der gleichen Domäne akzeptiert.

Es ist auch ein Szenario möglich, nach dem die Last auf diesen einen Portal-Server eingeschränkt werden soll. Das sieht dann folgendermaßen aus:

    protocol=*, host=myPortal.myDomain.myExt, port=*, url=

Hier bestehen jedoch noch diverse Sicherheitslücken. Zum Beispiel kann auf dem gleichen Portal-Server auch noch ein Web-Server installiert sein. Der Portal-Server ist sicher, aber der Web-Server nicht unbedingt. Die URLs würden weiterhin die White-List passieren. Um nun Sicherheitslücken völlig zu schließen, sollten Sie daher immer sowohl das Protokoll als auch die Port-Angaben spezifizieren:

    protocol=http,  host=myPortal.myDomain.myExt, port=1080, url=/*

    protocol=https, host=myPortal.myDomain.myExt, port=1443, url=/*

 

Standardmäßig ist die White-List-Tabelle leer und es werden keine Prüfungen durchgeführt.

Methode CHECK_HTTP_WHITELIST

Diese Methode prüft, ob eine empfangene URL mit einer White-List übereinstimmt, die in einer lokalen Datenbank abgelegt ist. Dabei ist die URL, die als Eingabeparameter dient, entweder eine absolute URL oder eine Server-spezifische absolute URL.

 

Ende des Inhaltsbereichs