20.12.2013 Aufrufe

Sicherheit von SAP in Bezug auf neue Technologien

Sicherheit von SAP in Bezug auf neue Technologien

Sicherheit von SAP in Bezug auf neue Technologien

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Diplomarbeit<br />

<strong>in</strong><br />

Computer Network<strong>in</strong>g<br />

<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong><br />

<strong>neue</strong> <strong>Technologien</strong><br />

Damian Schlager<br />

1. Betreuer: Prof. Dr. Christoph Reich<br />

2. Betreuer: Dipl.-Inf. Stefan Strobel (cirosec GmbH)<br />

Vorgelegt am: 20.2.2008<br />

Vorgelegt <strong>von</strong>:<br />

Damian Schlager<br />

Johannesburgerstraße 18/1, 74081 Hork


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abstract<br />

Diese Diplomarbeit befasst sich mit der <strong>Sicherheit</strong> <strong>von</strong> Webapplikationen <strong>auf</strong><br />

Basis <strong>von</strong> <strong>SAP</strong>. Diese wurden trotz zunehmender Verbreitung bisher nie unter<br />

den bekannten <strong>Sicherheit</strong>sgesichtspunkten <strong>von</strong> Webapplikationen betrachtet.<br />

Ziel der Diplomarbeit ist es daher, Webapplikationen <strong>von</strong> <strong>SAP</strong>-Systemen <strong>auf</strong> ihre<br />

<strong>Sicherheit</strong> h<strong>in</strong> zu überprüfen und diese, wo möglich, <strong>in</strong> <strong>Bezug</strong> zu setzen mit den<br />

bekannten Problemen klassischer Webanwendungen.<br />

Hierzu wurden sowohl e<strong>in</strong>e klassische Webapplikation als auch<br />

Webapplikationskomponenten <strong>von</strong> <strong>SAP</strong>-Systemen mittels Methoden, wie sie <strong>in</strong><br />

der Praxis Verwendung f<strong>in</strong>den, <strong>auf</strong> ihre Anfälligkeit gegenüber Angriffen und <strong>auf</strong><br />

Absicherungsmöglichkeiten h<strong>in</strong> überprüft.<br />

Hierbei zeigte sich, dass Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> ebenfalls für zum<br />

Teil neuartige Webapplikationsangriffe anfällig s<strong>in</strong>d, sich aber auch mittels<br />

bekannter Methoden absichern lassen. Die Ergebnisse dieser Diplomarbeit stellen<br />

die Basis für zukünftige Überprüfungen und Absicherungen <strong>von</strong> Sap-Systemen<br />

dar.<br />

This diploma thesis addresses the security of web applications based on <strong>SAP</strong>.<br />

These were despite their <strong>in</strong>creas<strong>in</strong>g distribution never evaluated accord<strong>in</strong>g to the<br />

known aspects of security that can be found <strong>in</strong> web applications.<br />

Hence, the purpose of this diploma thesis was to evaluate the security of web<br />

applications of <strong>SAP</strong> systems and to relate them to the known problems of classic<br />

web applications where possible.<br />

Therefore a classic web application and components of web applications of <strong>SAP</strong><br />

systems were tested for their sensitivity to attacks as well as for possibilities to<br />

secure them, us<strong>in</strong>g methods that are found <strong>in</strong> practice.<br />

It appeared that web applications based on <strong>SAP</strong> are also vulnerable to web<br />

application attacks that were partially novel, but that they can be secured us<strong>in</strong>g<br />

known methods as well. The result of this diploma thesis is the base for future<br />

audits and measures to secure <strong>SAP</strong> systems.<br />

Damian Schlager<br />

Seite I


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Damian Schlager<br />

Seite II


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Inhalt<br />

1 E<strong>in</strong>leitung ......................................................................................... 1<br />

1.1 Problemstellung .......................................................................... 1<br />

1.2 Zielsetzung................................................................................. 1<br />

1.3 Aufbau dieser Arbeit .................................................................... 2<br />

2 Rahmenbed<strong>in</strong>gungen .......................................................................... 3<br />

2.1 Beschreibung des technischen Umfeldes ......................................... 3<br />

2.1.1 Klassische Webapplikation...................................................... 3<br />

2.1.2 ERP..................................................................................... 4<br />

2.2 <strong>Sicherheit</strong>saspekte im Webumfeld.................................................. 9<br />

2.2.1 <strong>Sicherheit</strong> allgeme<strong>in</strong> .............................................................. 9<br />

2.2.2 Menschliche Aspekte ........................................................... 11<br />

2.2.3 Technische Aspekte............................................................. 13<br />

2.2.4 Übergreifende Aspekte......................................................... 16<br />

2.2.5 Betrachtungsweisen der <strong>Sicherheit</strong> ........................................ 17<br />

2.2.6 E<strong>in</strong>ordnung dieser Diplomarbeit ............................................ 19<br />

2.3 Gefahren und Angriffe im Webumfeld ........................................... 19<br />

2.3.1 Inhalte und Ziele des Kapitels ............................................... 19<br />

2.3.2 Port 80 Problem.................................................................. 19<br />

2.3.3 Fehlerquellen <strong>in</strong> Webapplikationen......................................... 21<br />

2.3.4 Beschreibung der Webapplikationsangriffe .............................. 23<br />

2.4 Zusammenfassung .................................................................... 28<br />

3 Vergleich klassischer Webapplikationen mit <strong>SAP</strong> aus Angreifersicht.......... 29<br />

3.1 Webapplikationsscanner ............................................................. 29<br />

3.2 Angriffe <strong>auf</strong> Webapplikationen ..................................................... 30<br />

3.2.1 Typische Angriffe ................................................................ 30<br />

3.3 Angriffe <strong>auf</strong> <strong>SAP</strong> ........................................................................ 39<br />

3.3.1 Abgrenzung der Methodik zur <strong>Sicherheit</strong>süberprüfung .............. 39<br />

3.3.2 Typische Angriffe ................................................................ 42<br />

3.3.3 Manuelle Überprüfung und weitere Ansatzpunkte für Angriffe .... 50<br />

3.3.4 Heterogene Systeme ........................................................... 56<br />

3.4 Vergleich der Ergebnisse ............................................................ 58<br />

3.5 Zusammenfassung .................................................................... 60<br />

4 Vergleich klassischer Webapplikationen mit <strong>SAP</strong> aus Verteidigersicht ....... 62<br />

4.1 <strong>Sicherheit</strong>sarchitekturen ............................................................. 63<br />

4.2 Web Application Firewalls ........................................................... 67<br />

4.3 Absicherungsmöglichkeiten klassischer Webapplikationen................ 70<br />

4.4 Absicherung des ERPs anhand <strong>von</strong> <strong>SAP</strong>......................................... 75<br />

4.5 Aufwand und erzielbare Ergebnisse bei der Absicherung.................. 82<br />

4.6 Zusammenfassung .................................................................... 84<br />

5 Zusammenfassung der Ergebnisse und Ausblick ................................... 86<br />

5.1 Zusammenfassung der Ergebnisse ............................................... 86<br />

5.2 Ausblick ................................................................................... 87<br />

6 Literaturverzeichnis .......................................................................... 89<br />

7 Glossar........................................................................................... 91<br />

8 Anhänge ......................................................................................... 94<br />

8.1 Anhang A: Beschreibung der Komponenten des <strong>SAP</strong> NetWeavers ..... 94<br />

8.2 Anhang B: Konfigurationsempfehlungen und Programmierrichtl<strong>in</strong>ien .96<br />

8.3 Anhang C: <strong>Sicherheit</strong> on RFC..................................................... 100<br />

Damian Schlager<br />

Seite III


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildungsverzeichnis<br />

Abbildung 1: Organisatorischer Aufbau des <strong>SAP</strong> NetWeavers .......................... 7<br />

Abbildung 2: Technischer Aufbau des <strong>SAP</strong> Netweavers................................... 8<br />

Abbildung 3: Port 80 Problem ...................................................................20<br />

Abbildung 4: Verteilung der Angriffshäufigkeit .............................................27<br />

Abbildung 5: Scan klassischer Webapplikation .............................................31<br />

Abbildung 6: Robots.txt ...........................................................................32<br />

Abbildung 7: Cross-Site-Script<strong>in</strong>g bei cirobank ............................................33<br />

Abbildung 8: Local-file-<strong>in</strong>clusion ................................................................35<br />

Abbildung 9: manuelles Cross-Site Script<strong>in</strong>g-cirobank...................................36<br />

Abbildung 10: Manuelle Local-File-Inclusion ................................................37<br />

Abbildung 11: SQL-Injection .....................................................................39<br />

Abbildung 12: WebInspect Plug<strong>in</strong> ..............................................................43<br />

Abbildung 13: 200 OK - not found .............................................................44<br />

Abbildung 14: WebInspect: Defaultpolicy bei <strong>SAP</strong> ........................................45<br />

Abbildung 15: Possible SQL Injection bei <strong>SAP</strong> ..............................................46<br />

Abbildung 16: False-Positives bei <strong>SAP</strong> ........................................................48<br />

Abbildung 17: Beispiel false-Positive .........................................................48<br />

Abbildung 18: Interne Pfade .....................................................................49<br />

Abbildung 19: Neuer HTTP Filter................................................................51<br />

Abbildung 20: Cross-Site-Script<strong>in</strong>g bei <strong>SAP</strong> .................................................51<br />

Abbildung 21: Source Code Disclosure........................................................55<br />

Abbildung 22:Aufbau e<strong>in</strong>er heterogenen Umgebung .....................................56<br />

Abbildung 23: Directory-List<strong>in</strong>g mit Versionsangabe .....................................57<br />

Abbildung 24: Cross-Site-Script<strong>in</strong>g <strong>in</strong> Parameter..........................................58<br />

Abbildung 25: Topologiebeispiel Webapplikation BSI ....................................64<br />

Abbildung 26: Topologiebeispiel Webapplikation ..........................................64<br />

Abbildung 27: Empfohlene Topologie <strong>SAP</strong> ...................................................65<br />

Abbildung 28: Arbeitsweise WAF ...............................................................69<br />

Abbildung 29: Anzupassende Regel............................................................72<br />

Abbildung 30: Gelockter Angriff bei Citrix ...................................................72<br />

Abbildung 31: Dynamisches Regelwerk.......................................................73<br />

Abbildung 32: Statisches Regelwerk...........................................................74<br />

Abbildung 33: Geblockter Angriff bei NetCont<strong>in</strong>uum .....................................74<br />

Abbildung 34: Geblocktes Parameter Temper<strong>in</strong>g ..........................................75<br />

Abbildung 35: E<strong>in</strong>fache Diensteaktivierung im <strong>SAP</strong> GUI.................................77<br />

Abbildung 36: <strong>SAP</strong> Portal-URL ...................................................................80<br />

Abbildung 37: Gelerntes Regelwerk für das <strong>SAP</strong> Portal..................................81<br />

Abbildung 38: Verallgeme<strong>in</strong>ertes Regelwerk für das <strong>SAP</strong> Portal ......................81<br />

Abbildung 39: Gleichartige Fehlermeldungen im Logfile.................................82<br />

Abbildung 40: Diensteabhängigkeit bei <strong>SAP</strong> ................................................83<br />

Tabellenverzeichnis:<br />

Tabelle 1: Anzahl der <strong>SAP</strong> URLs.................................................................40<br />

Tabelle 2: <strong>SAP</strong> Standardaccounts ..............................................................53<br />

Damian Schlager<br />

Seite IV


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

1 E<strong>in</strong>leitung<br />

1.1 Problemstellung<br />

Neue <strong>Technologien</strong>, mit dem Ziel Applikationen über Web verfügbar zu<br />

machen, halten überall E<strong>in</strong>zug. So hat auch <strong>SAP</strong> <strong>neue</strong> Produkte <strong>auf</strong> den<br />

Markt gebracht, die den Zugang zu <strong>SAP</strong> e<strong>in</strong>facher und flexibler gestalten<br />

sollen.<br />

Erfahrungen aus anderen Bereichen zeigen aber, dass e<strong>in</strong>e solche<br />

Umstellung oder Erweiterung häufig mit <strong>Sicherheit</strong>sproblemen e<strong>in</strong>hergeht.<br />

Da die Verfügbarkeit und <strong>Sicherheit</strong> dieser Systeme jedoch unverzichtbar<br />

ist, gew<strong>in</strong>nt e<strong>in</strong>e <strong>Sicherheit</strong>suntersuchung besondere Bedeutung.<br />

Während die Möglichkeiten zur Absicherung <strong>von</strong> klassischen<br />

Webapplikationen, die beispielsweise mittels Apache und PHP realisiert<br />

s<strong>in</strong>d, relativ gut bekannt s<strong>in</strong>d, ist die <strong>Sicherheit</strong>sbetrachtung <strong>neue</strong>r<br />

Webtechnologien, wie beispielsweise die <strong>von</strong> <strong>SAP</strong>, noch weitgehendes<br />

Neuland. Der steigenden Nachfrage nach <strong>Sicherheit</strong>süberprüfungen und der<br />

Absicherungen <strong>von</strong> klassischen Webapplikationen kann heute durch<br />

Fachkenntnis und entsprechende Produkte begegnet werden. Für die Webbasierten<br />

Komponenten <strong>von</strong> <strong>SAP</strong> fehlen im Moment jedoch noch die dazu<br />

erforderliche Fachkenntnis, sowie speziell angepasste <strong>Sicherheit</strong>sprodukte.<br />

1.2 Zielsetzung<br />

Ziel der Diplomarbeit ist es, die <strong>neue</strong>n, sicherheitskritischen<br />

Webapplikationen <strong>von</strong> <strong>SAP</strong>-Systemen <strong>auf</strong> ihre <strong>Sicherheit</strong> h<strong>in</strong> zu überprüfen<br />

und diese, wo möglich, mit den bekannten Problemen klassischer<br />

Webanwendungen <strong>in</strong> <strong>Bezug</strong> zu setzen.<br />

Es sollen vor allem die für die praktische Arbeit bei e<strong>in</strong>er Auditierung oder<br />

Absicherung <strong>von</strong> Webapplikationen relevanten Gesichtspunkte<br />

herausgearbeitet werden. Diese sollen anhand praktischer Beispiele<br />

zunächst <strong>auf</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> übertragen werden, um<br />

e<strong>in</strong>e Aussage über die Anfälligkeit bzw. Resistenz <strong>von</strong> Webapplikationen<br />

<strong>von</strong> <strong>SAP</strong> gegenüber bekannten Webapplikationen treffen zu können. Des<br />

Weiteren ist zu untersuchen, ob Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> <strong>neue</strong><br />

Verwundbarkeiten <strong>auf</strong>weisen, die <strong>in</strong> e<strong>in</strong>e Überprüfung mit e<strong>in</strong>fließen<br />

müssen. Analog hierzu ist die Eignung bekannter<br />

Absicherungsmöglichkeiten für Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> zu<br />

Damian Schlager Seite 1


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

untersuchen. Die Ergebnisse der <strong>Sicherheit</strong>süberprüfung sowie die<br />

entsprechenden Absicherungsmöglichkeiten klassischer Webapplikationen<br />

werden mit den <strong>von</strong> <strong>SAP</strong>-Webapplikation verglichen und anschließend <strong>in</strong><br />

e<strong>in</strong>en Gesamtzusammenhang gestellt.<br />

Die Erkenntnisse dieser Diplomarbeit sollen dazu verwendet werden,<br />

zukünftig qualifizierte <strong>Sicherheit</strong>süberprüfungen bzw. Absicherungen <strong>von</strong><br />

Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> durchführen zu können und damit<br />

zusammenhängend Aussagen über die allgeme<strong>in</strong>e <strong>Sicherheit</strong> <strong>von</strong><br />

Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> treffen zu können.<br />

1.3 Aufbau dieser Arbeit<br />

Die vorliegende Diplomarbeit ist <strong>in</strong> drei große Bereiche unterteilt.<br />

Der erste Teil beschäftigt sich mit den Rahmenbed<strong>in</strong>gungen dieser<br />

Diplomarbeit. Dies besteht sowohl aus technischen Grundlagen über<br />

Webapplikationen und <strong>SAP</strong>-Systeme, als auch e<strong>in</strong>er Beschreibung der<br />

<strong>Sicherheit</strong>sprobleme bei Webapplikationen, die für Angriffe verwendet oder<br />

vor deren Verwendung geschützt werden muss. Außerdem fügt dieser Teil<br />

der Arbeit die folgenden Kapitel <strong>in</strong> e<strong>in</strong>en größeren Zusammenhang e<strong>in</strong>, so<br />

dass die Bewertung der Ergebnisse und Aussagen der folgenden Kapitel<br />

besser <strong>in</strong> e<strong>in</strong>e Gesamtbetrachtung der <strong>Sicherheit</strong> e<strong>in</strong>geordnet werden kann.<br />

Der zweite Teil dieser Arbeit beschäftigt sich mit der Sicht e<strong>in</strong>es Angreifers<br />

e<strong>in</strong>er Webapplikation, wie es für die Durchführung <strong>von</strong><br />

<strong>Sicherheit</strong>süberprüfungen relevant ist. Hier wird sowohl e<strong>in</strong>e klassische<br />

Webapplikation als Referenz als auch Webapplikationen <strong>von</strong> <strong>SAP</strong>-Systemen<br />

überprüft. Der Fokus liegt hierbei sowohl <strong>auf</strong> Anwendung bekannter<br />

Webapplikationsangriffe als auch e<strong>in</strong>er Überprüfung <strong>neue</strong>r Angriffswege <strong>auf</strong><br />

<strong>SAP</strong>, die <strong>von</strong> klassischen Webapplikationen nicht bekannt s<strong>in</strong>d.<br />

Im dritten Teil werden die Absicherungsmöglichkeiten <strong>von</strong><br />

Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> evaluiert. Auch hier wird e<strong>in</strong> Vergleich<br />

<strong>von</strong> klassischer Webapplikation und Webapplikation <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong><br />

gezogen und sowohl das mögliche <strong>Sicherheit</strong>sniveau als auch der dazu<br />

notwendige Aufwand bewertet.<br />

Abgeschlossen wird diese Diplomarbeit mit e<strong>in</strong>em Fazit über die<br />

gewonnenen Erkenntnisse und e<strong>in</strong>em Ausblick über die erwartete,<br />

zukünftige Entwicklung der <strong>in</strong> dieser Diplomarbeit behandelten Themen.<br />

Damian Schlager Seite 2


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

2 Rahmenbed<strong>in</strong>gungen<br />

Dieses Kapitel beschreibt die Rahmenbed<strong>in</strong>gungen für die<br />

<strong>Sicherheit</strong>süberprüfung, die für diese Diplomarbeit durchgeführt wurde. Es<br />

wird zunächst das technische Umfeld beschrieben. Hierzu wird sowohl die<br />

als Beispiel herangezogene klassische Webapplikation und deren<br />

dah<strong>in</strong>terliegende Technik beschrieben, als auch das <strong>SAP</strong>-System, das <strong>in</strong><br />

dieser Diplomarbeit als Beispiel für ERP Systeme dient.<br />

Des Weiteren werden die für diese Diplomarbeit relevanten<br />

<strong>Sicherheit</strong>saspekte <strong>in</strong> e<strong>in</strong>e Gesamtbetrachtung des Themas <strong>Sicherheit</strong> <strong>von</strong><br />

IT-Systemen und deren Aspekten e<strong>in</strong>geordnet. Abschließend werden die<br />

Ursachen der <strong>in</strong> dieser Diplomarbeit näher betrachteten Angriffe <strong>auf</strong><br />

Webapplikationen <strong>auf</strong>gezeigt, sowie die Grundlagen der <strong>in</strong> dieser<br />

Diplomarbeit thematisierten Webapplikationsangiffe beschrieben.<br />

2.1 Beschreibung des technischen Umfeldes<br />

2.1.1 Klassische Webapplikation<br />

Webapplikationen und ihr E<strong>in</strong>satz<br />

Webapplikationen haben ihren Ursprung <strong>in</strong> Client-Server-Strukturen, bei<br />

den das Programm <strong>auf</strong> e<strong>in</strong>em Server läuft, der Benutzer dieses aber über<br />

e<strong>in</strong>en anderen Computer entfernt bedienen kann. E<strong>in</strong> Beispiel hierfür ist die<br />

<strong>SAP</strong>-GUI, welche e<strong>in</strong>em Benutzer den Zugriff <strong>auf</strong> <strong>SAP</strong>-Systeme ermöglicht.<br />

Die eigentlichen <strong>SAP</strong>-Inhalte werden jedoch <strong>auf</strong> zentralen, leistungsfähigen<br />

Servern generiert und bereitgestellt.<br />

Bei Webapplikationen gibt es nicht mehr e<strong>in</strong>en speziellen Client, sondern<br />

hier werden die Inhalte vom Server so <strong>auf</strong>bereitet, dass sie mit gängigen<br />

Webbrowsern dargestellt werden können. Dies br<strong>in</strong>gt verschiedene Vorteile<br />

mit sich, Beispiel hierfür ist, dass bei e<strong>in</strong>er Änderung des Programms nicht<br />

mehr auch die Clients neu ausgerollt werden müssen, was vor allem bei<br />

größeren Unternehmen schwierig ist und sich daher mit Hilfe der<br />

Webapplikationen Kostenvorteile ergeben.<br />

E<strong>in</strong>e Webapplikation ist außerdem universeller e<strong>in</strong>setzbar, sowohl aus<br />

Benutzersicht, da er nicht mehr an das spezielle Client-Programm<br />

gebunden ist und hier mit dem üblicherweise bereits vorhandenen<br />

Webbrowser arbeiten kann, als auch beispielsweise aus Netzwerk- und<br />

Betriebssystemsicht.<br />

Damian Schlager Seite 3


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Die Bedienung <strong>von</strong> Webapplikationen erfolgt über Hyperl<strong>in</strong>ks. Bekannte<br />

Programmelemente wie Buttons, Auswahllisten etc. können mittels HTML-<br />

Elementen abgebildet werden. Daten, die vom Client zum Server gesendet<br />

werden, können als HTTP-POST- bzw. HTTP-GET-Parameter sowie mittels<br />

HTTP Headern und Cookies übertragen werden. Nachdem alle Parameter<br />

<strong>auf</strong> diese Weise beim Server angekommen s<strong>in</strong>d, werden diese an das<br />

Server-Programm weitergeleitet und dort verarbeitet. Das Ergebnis dieser<br />

Verarbeitung wird dann als Webseite dargestellt und der beschriebene<br />

Abl<strong>auf</strong> kann wieder <strong>von</strong> vorne beg<strong>in</strong>nen.<br />

cirobank<br />

Als Referenz für e<strong>in</strong>e klassische Webapplikation wird <strong>in</strong> dieser Diplomarbeit<br />

die „cirobank“ verwendet. Es handelt sich hierbei nicht um e<strong>in</strong>e im Internet<br />

verfügbare Anwendung, was sich aus Gründen der Vertraulichkeit verbietet,<br />

sondern um e<strong>in</strong>e für Demonstrationszwecke bei der cirosec GmbH erstellten<br />

Webapplikation.<br />

Auch wenn die Webapplikation speziell zu Demonstrationszwecken erstellt<br />

wurde, spiegelt sie dennoch wieder, welche typischen Probleme auch bei<br />

Webapplikationen möglich s<strong>in</strong>d, die sich im Internet oder <strong>in</strong> Intranets <strong>von</strong><br />

Unternehmen f<strong>in</strong>den. Tatsächlich werden bei <strong>Sicherheit</strong>süberprüfungen<br />

häufig solche Lücken vorgefunden und können auch mit e<strong>in</strong>em<br />

vergleichbaren Aufwand ausgenutzt werden.<br />

Die Webapplikation, die <strong>in</strong> dieser Diplomarbeit als Referenzapplikation<br />

verwendet wird, besteht aus folgenden Komponenten:<br />

Client: - Browser; beliebiger Rechner<br />

Server: - Ubuntu 6.10 mit Apache 2.0.55, PHP 5.1.6<br />

- W<strong>in</strong>dows Server 2003 mit MS SQL Server 2005<br />

2.1.2 ERP<br />

ERP-Systeme und ihr E<strong>in</strong>satz<br />

Unter ERP-Systemen versteht man e<strong>in</strong>e komplexe Anwendungs-Software,<br />

die zur Unterstützung der Ressourcenplanung des, im Idealfall, gesamten<br />

Unternehmens dient 1 .<br />

ERP-Systeme haben ihren Ursprung <strong>in</strong> Industriebetrieben. Dieses Konzept<br />

wurde dann auch <strong>in</strong> andere Bereiche übernommen. So haben sich die<br />

1 http://de.wikipedia.org/wiki/Enterprise_Resource_Plann<strong>in</strong>g<br />

Damian Schlager Seite 4


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

ursprünglichen ERP-Systeme weiter entwickelt bis sie praktisch überall<br />

e<strong>in</strong>gesetzt wurden 2 . Die Weiterentwicklung der ERP-Systeme schreitet auch<br />

weiter voran und ERP-Systeme be<strong>in</strong>halten immer mehr Funktionen und<br />

Fähigkeiten zum e<strong>in</strong>en, und sollen zum anderen besser erreichbar und<br />

verfügbar se<strong>in</strong>, wofür man zunehmend <strong>auf</strong> webbasierte <strong>Technologien</strong> setzt.<br />

Die Idee der weitergehenden Vernetzung und Vere<strong>in</strong>heitlichung der<br />

Schnittstellen greift das Konzept <strong>von</strong> ERP II <strong>auf</strong>. Hier beschränkt sich das<br />

ERP-System nicht <strong>auf</strong> die Unternehmensgrenzen, sondern versucht auch<br />

Kunden, Lieferanten, Partnerunternehmen etc. mit zu <strong>in</strong>tegrieren, was zu<br />

Herausforderungen bei der Interoperabilität, Erreichbarkeit, Verfügbarkeit<br />

und <strong>Sicherheit</strong> führt. Auch im Rahmen dieser Entwicklung wird zunehmend<br />

<strong>auf</strong> webbasierte <strong>Technologien</strong> gesetzt, um die Integration verschiedenster<br />

Systeme und Bereiche zu erreichen.<br />

Allen ERP-Systemen geme<strong>in</strong> ist, dass sie versuchen, e<strong>in</strong>zelne Daten <strong>von</strong><br />

verschiedensten Stellen <strong>in</strong> e<strong>in</strong>em System zusammenzuführen. Des<br />

Weiteren ist e<strong>in</strong> zentrales Ziel <strong>von</strong> ERP-Systemen die Unterstützung <strong>von</strong><br />

Geschäftsprozessen und diese so effizient wie möglich zu gestalten.<br />

Insgesamt sorgt e<strong>in</strong> ERP-System also für e<strong>in</strong>e Zusammenführung und<br />

Effizienzsteigerungen <strong>von</strong> Systemen, die zuvor <strong>in</strong>kompatibel zue<strong>in</strong>ander<br />

waren und sogenannte Insellösungen darstellten, und die nun als<br />

<strong>in</strong>tegrierter Teil <strong>von</strong> Geschäftsprozessen und Daten arbeiten.<br />

Der Aufbau e<strong>in</strong>es ERP-Systems, das diese Ziele erfüllen soll, ist e<strong>in</strong>e<br />

komplizierte Aufgabe, deren Durchführung zwischen drei Monaten und<br />

e<strong>in</strong>em Jahr <strong>in</strong> Anspruch nehmen kann.<br />

Für diese Diplomarbeit wurde e<strong>in</strong> ERP-System beispielhaft herangezogen,<br />

um e<strong>in</strong>e entsprechende Evaluierung durchzuführen.<br />

Die Marktanteile <strong>von</strong> Anbietern <strong>in</strong> Deutschland setzen sich wie folgt<br />

zusammen 3 :<br />

<strong>SAP</strong>: ~55%<br />

Info: ~5,5%<br />

Microsoft: ~4%<br />

Sage: ~3%<br />

Viele kle<strong>in</strong>ere Anbieter<br />

2 http://www.tech-faq.com/erp.shtml<br />

3 http://www.computerwoche.de/top_100/software/546025/<br />

Damian Schlager Seite 5


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Wie hier zu sehen ist, ist <strong>SAP</strong> mit über 50% Marktanteil mit Abstand<br />

größter Hersteller <strong>von</strong> ERP-Systemen, als auch mit 10,25 Milliarden Euro<br />

Umsatz im Jahr 2007 und 40.000 Kunden nahezu marktbeherrschend.<br />

<strong>SAP</strong> hat ebenfalls den Anspruch, alle Anforderungen an e<strong>in</strong> ERP bzw. ERP II<br />

System zu erfüllen sowie das sicherste System anzubieten.<br />

Neben vielen <strong>neue</strong>n Funktionen und Fähigkeiten, die e<strong>in</strong>en Teil der<br />

gegenwärtigen Entwicklung <strong>von</strong> ERP-Systemen kennzeichnen arbeitet <strong>SAP</strong><br />

auch an Merkmalen <strong>von</strong> ERP II wie z.B. e<strong>in</strong> Supplier Relationship<br />

Management, aber auch an Schnittstellen zu vielen anderen Produkten, z.B.<br />

Integration <strong>in</strong> Microsoft-Office-Komponenten. Insgesamt stellt <strong>SAP</strong> e<strong>in</strong>e<br />

branchenübergreifende, allumfassende Lösung dar und ist daher äußerst<br />

komplex zu implementieren.<br />

Für den Aufbau e<strong>in</strong>es <strong>SAP</strong>-Systems gibt es bereits Vorgangsmodelle, diese<br />

zielen aber dar<strong>auf</strong> ab, die Komplexität des Gesamtsystems <strong>SAP</strong> zu e<strong>in</strong>er<br />

konkreten Installation zu meistern. Daher liegt das Hauptaugenmerk <strong>auf</strong><br />

Geschäftsprozessmodellierung und Datenmodellierung, aber nicht <strong>auf</strong><br />

<strong>Sicherheit</strong>sgefährdungen oder deren Vermeidung durch besondere<br />

Architekturen oder andere Schutzmassnahmen.<br />

Besonders geeignet für diese Diplomarbeit ist jedoch <strong>SAP</strong>, weil <strong>SAP</strong> seit<br />

wenigen Jahren massiv <strong>auf</strong> die Nutzung <strong>von</strong> <strong>neue</strong>n <strong>Technologien</strong> setzt, vor<br />

allem <strong>auf</strong> die Verfügbarkeit im Web und Anb<strong>in</strong>dung <strong>von</strong> Kunden,<br />

Lieferanten, Partner, etc. Hierfür ist e<strong>in</strong> <strong>neue</strong>s Konzept entstanden, das <strong>auf</strong><br />

diese Anforderungen zugeschnitten ist.<br />

Organisatorischer Aufbau des <strong>SAP</strong> NetWeavers<br />

Die NetWeaver-Plattform soll die Basis für die Entwicklung <strong>neue</strong>r Lösungen<br />

se<strong>in</strong>, die die Idee der service-orientierten Architektur (SOA) bei <strong>SAP</strong><br />

umsetzt. Als offizieller Nachfolger <strong>von</strong> <strong>SAP</strong> R/3 dient es neben der Basis für<br />

<strong>neue</strong> Applikationen auch als Plattform für die Integration bestehender<br />

Anwendungen und soll e<strong>in</strong>en Rahmen für sicheren und stabilen Code<br />

<strong>in</strong>klusive Codeverwaltung stellen.<br />

In Abbildung 1: Organisatorischer Aufbau des <strong>SAP</strong> NetWeavers s<strong>in</strong>d die<br />

verschiedenen Bereiche des <strong>SAP</strong> NetWeavers schematisch dargestellt.<br />

Auf dem Bild ist zu sehen, dass <strong>SAP</strong> NetWeaver e<strong>in</strong>en Rahmen um die <strong>von</strong><br />

<strong>SAP</strong> getrennt behandelten Bereiche People Integration, Information<br />

Integration und Process Integration mit ihren jeweiligen Teilbereichen<br />

bildet und hierbei auch den <strong>SAP</strong> Application Server als e<strong>in</strong>heitliche Plattform<br />

stellt. Umfasst wird dies durch e<strong>in</strong> übergreifendes Life Cycle Management<br />

Damian Schlager Seite 6


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

und Composite Application Framework für die Entwicklung<br />

bereichsübergreifender Applikationen.<br />

Abbildung 1: Organisatorischer Aufbau des <strong>SAP</strong> NetWeavers<br />

E<strong>in</strong>e kurze Zusammenfassung dieser Bereiche und deren Rolle <strong>in</strong> der <strong>SAP</strong><br />

Netweaver Gesamtkonzeption ist <strong>in</strong> Anhang A: Beschreibung der<br />

Komponenten des <strong>SAP</strong> NetWeavers zu f<strong>in</strong>den.<br />

Technischer Aufbau des <strong>SAP</strong> NetWeavers<br />

Betrachtet man den technischen Aufbau des <strong>SAP</strong> NetWeaver ergibt sich<br />

wiederum e<strong>in</strong> anderes Bild, wie <strong>in</strong> Abbildung 2: Technischer Aufbau des <strong>SAP</strong><br />

Netweavers gezeigt.<br />

Kern der Architektur ist der <strong>SAP</strong> Web Application Server, der aus vielen<br />

<strong>in</strong>ternen und externen Komponenten besteht, die wiederum über<br />

verschiedene Mechanismen mite<strong>in</strong>ander kommunizieren 4 .<br />

4<br />

http://help.sap.com/saphelp_nw04/helpdata/de/84/54953fc405330ee10000000a114084/content.ht<br />

m<br />

Damian Schlager Seite 7


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 2: Technischer Aufbau des <strong>SAP</strong> Netweavers<br />

Im Folgenden s<strong>in</strong>d e<strong>in</strong>ige der zentralen Komponenten dieses Bildes näher<br />

beschrieben. Insbesondere den Schnittstellen, die <strong>von</strong> außen erreichbar<br />

s<strong>in</strong>d, gilt e<strong>in</strong> besonderes Interesse, da hier die primären Angriffspunkte zur<br />

<strong>Sicherheit</strong>süberprüfung zu f<strong>in</strong>den s<strong>in</strong>d.<br />

ICM: ICM steht für Internet Communication Manager und ist die zentrale<br />

Instanz für Verb<strong>in</strong>dungen <strong>in</strong>s Internet. Dadurch, dass der Internet<br />

Communication Manager zunächst alle Zugriffe aus dem Internet entgegen<br />

nimmt, liefen auch über ihn der Grossteil der Tests, auch wenn hierbei<br />

natürlich andere Ziele h<strong>in</strong>ter dem Internet Communication Manager das<br />

eigentlich Ziel waren, wie z.B. die Applikationslogik oder die Datenbank.<br />

Dispatcher: Der Dispatcher nimmt die Anfragen <strong>von</strong> den <strong>SAP</strong> GUIs<br />

entgegen, die bisher der Hauptkommunikationsweg <strong>von</strong> den Clients zum<br />

<strong>SAP</strong> Applikationsserver war. E<strong>in</strong>e weitere Aufgabe des Dispatchers ist es,<br />

die Anfragen <strong>auf</strong> die Workprozesse zu verteilen.<br />

Gateway: Das <strong>SAP</strong> Gateway ist die Kommunikationsschnittstelle für das<br />

<strong>SAP</strong> eigene RFC-Protokoll. Dies wird zur Kommunikation zwischen <strong>SAP</strong><br />

Komponenten benutzt, oder zwischen <strong>SAP</strong> Komponenten und Komponenten<br />

<strong>von</strong> Drittherstellern. Da dies ebenfalls vor allem <strong>in</strong> bisherigen <strong>SAP</strong><br />

Versionen e<strong>in</strong> zentraler Bestandteil war, und die Kommunikation über RFC<br />

sehr tief <strong>in</strong> die Kommunikation mit <strong>SAP</strong>-Systemen e<strong>in</strong>geht, war die dieser<br />

Kommunikationsweg e<strong>in</strong>e zusätzlich zu dieser Diplomarbeit durchgeführte<br />

Überprüfung, deren Ergebnisse <strong>in</strong> Anhang C: <strong>Sicherheit</strong> on RFC kurz<br />

beschrieben werden.<br />

Damian Schlager Seite 8


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Message-Server: Der Message-Server ist e<strong>in</strong> weiteres System zur<br />

Kommunikation zwischen <strong>SAP</strong>-Systemen und dient <strong>in</strong> Erster L<strong>in</strong>ie zum<br />

Lastausgleich.<br />

Wie hier ebenfalls gut zu erkennen ist, s<strong>in</strong>d die Stacks für ABAP und JAVA<br />

vollständig getrennt. Beide verfügen über eigene Schedul<strong>in</strong>g-Systeme und<br />

Arbeitsprozesse. Es ist möglich, <strong>auf</strong> e<strong>in</strong>em <strong>SAP</strong> Web Applikation Server nur<br />

e<strong>in</strong>en der beiden Stacks zu <strong>in</strong>stallieren, oder auch beide parallel. S<strong>in</strong>d beide<br />

Stacks <strong>in</strong>stalliert, gibt es unter Umständen Möglichkeiten, e<strong>in</strong>e Komponente<br />

<strong>auf</strong> verschiedenen Wegen zu Veröffentlichen. Je nach Verwendung des<br />

JAVA- oder ABAP-Stacks und deren Kommunikationswegen ergeben sich<br />

völlig andere Angriffsvektoren, was e<strong>in</strong>e generische Überprüfung erschwert.<br />

Vorhandene <strong>SAP</strong>-Systeme<br />

Nach erfolgter Installation standen für die weitere Arbeit mehrere Systeme<br />

bereit. Für diese Diplomarbeit wurde e<strong>in</strong>e Installation unter L<strong>in</strong>ux für <strong>SAP</strong><br />

NetWaver 700 ABAP Stack sowie W<strong>in</strong>dows Server 2003 für <strong>SAP</strong> NetWeaver<br />

700 JAVA Stack durchgeführt. E<strong>in</strong>e bereits bestehende <strong>SAP</strong> Installation,<br />

<strong>SAP</strong> NetWeaver 640 ABAP, wurde ebenfalls für zusätzliche Prüfungen<br />

genutzt.<br />

Ziel der Benutzung der Versionen 640 und 700 war es, grundsätzliche<br />

Vergleiche zwischen den Versionsständen ziehen zu können und mögliche<br />

Veränderungen und Entwicklungen <strong>auf</strong>zuzeigen.<br />

Zusammenfassend wurde die Diplomarbeit <strong>auf</strong> Basis der folgenden drei<br />

Systeme erstellt:<br />

NetWeaver 2004s Testdrive (Kernelversion 700, Systemname n4s)<br />

NetWeaver 2004s Trial (Kernelversion 700, Systemname sapj2e)<br />

Das zusätzliche <strong>SAP</strong> System mit Versionsstand 640 bestand aus:<br />

NetWeaver 2004 Testdrive (Kernelversion 640, Systemname nw4)<br />

2.2 <strong>Sicherheit</strong>saspekte im Webumfeld<br />

2.2.1 <strong>Sicherheit</strong> allgeme<strong>in</strong><br />

Programme, Systeme, Netzwerke und Architekturen <strong>auf</strong> ihre <strong>Sicherheit</strong> h<strong>in</strong><br />

zu überprüfen s<strong>in</strong>d im Computerbereich zu e<strong>in</strong>er weitgehend normalen<br />

Tätigkeit geworden. Doch s<strong>in</strong>d für e<strong>in</strong>e <strong>Sicherheit</strong>sbeurteilung auch immer<br />

die Fragen zu beantworten, was <strong>Sicherheit</strong> eigentlich bedeutet, was das<br />

Damian Schlager Seite 9


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Ziel bei e<strong>in</strong>er Absicherung ist, welches e<strong>in</strong> angestrebter Sollzustand ist und<br />

auch welche Art <strong>von</strong> Gefahren damit reagiert werden kann.<br />

E<strong>in</strong>e allgeme<strong>in</strong> akzeptierte Def<strong>in</strong>ition 5 der IT-<strong>Sicherheit</strong>, grenzt <strong>Sicherheit</strong><br />

als e<strong>in</strong>en Zustand e<strong>in</strong>, <strong>in</strong> dem<br />

ke<strong>in</strong>e E<strong>in</strong>brüche <strong>in</strong> das System <strong>auf</strong>treten<br />

ke<strong>in</strong>e Unterbrechungen <strong>auf</strong>treten<br />

und ke<strong>in</strong> Verlust <strong>von</strong> Daten <strong>auf</strong>treten<br />

Vertraulichkeit gewährleistet ist<br />

Authentizität gewährleistet ist<br />

IT-Systeme, die dies erfüllen sollen, müssen daher folgende Eigenschaften<br />

<strong>auf</strong>weisen:<br />

Verlässlichkeit <strong>von</strong> Systemen und Netzwerken<br />

Verfügbarkeit <strong>von</strong> Systemen und Daten<br />

Vertraulichkeit <strong>von</strong> Daten<br />

Integrität <strong>von</strong> Prozessen, Aktivitäten und Prozessen<br />

Zuordenbarkeit <strong>von</strong> Aktionen zu Personen<br />

Nachvollziehbarkeit <strong>von</strong> Aktionen<br />

Authentizität <strong>von</strong> Daten<br />

Es gibt <strong>in</strong>zwischen e<strong>in</strong>ige Standards, die sich auch mit IT-<strong>Sicherheit</strong><br />

beschäftigen, wie z.B.COBIT, COSO oder das IT-Grundschutzhandbuch des<br />

BSI. Diese sollen es erleichtern, verschiedene <strong>Sicherheit</strong>sniveaus <strong>in</strong> der IT-<br />

<strong>Sicherheit</strong> im Allgeme<strong>in</strong>en zu erreichen. Neben diesen Standards werden<br />

vor allem Anforderungen für Compliance immer bedeutender, so dass sich<br />

hauptsächlich große Unternehmen um verschiedene Aspekte der <strong>Sicherheit</strong><br />

kümmern müssen und diese zu e<strong>in</strong>em ganzheitlichen Konzept zu vere<strong>in</strong>en,<br />

um die Anforderungen <strong>von</strong> z.B. SOX, Basel II oder PCI zu erfüllen.<br />

So wurden und werden auch für <strong>SAP</strong>-Installationen<br />

<strong>Sicherheit</strong>süberprüfungen durchgeführt, doch unterscheiden sich diese<br />

fundamental <strong>von</strong> der Motivation, die dieser Diplomarbeit zugrunde liegt.<br />

Bisherige <strong>Sicherheit</strong>süberprüfungen beruhen meist <strong>auf</strong> Compliance-<br />

Anforderungen, für deren Erfüllung gänzlich andere Faktoren relevant s<strong>in</strong>d<br />

als bei der Prüfung im Rahmen dieser Diplomarbeit, die sich <strong>auf</strong> e<strong>in</strong>e<br />

praktische Herangehensweise aus den Erfahrungen mit klassischen<br />

Webapplikationen stützt.<br />

5 Grundschutzhandbuch Bundesamt für <strong>Sicherheit</strong> <strong>in</strong> der Informationstechnik, Bauste<strong>in</strong> 04<br />

Damian Schlager Seite 10


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Im Folgenden sollen verschiedene Aspekte <strong>auf</strong>gegriffen werden, die für die<br />

<strong>Sicherheit</strong> <strong>von</strong> Webapplikationen und Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong><br />

besonders relevant s<strong>in</strong>d und größtenteils durch Erfahrungen und Gespräche<br />

des Verfassers mit <strong>SAP</strong>-Beratern, Adm<strong>in</strong>istratoren oder Anwendern erstellt<br />

wurden. Diese Punkte werden dann <strong>in</strong> diesem Zusammenhang konkreter<br />

beschrieben und im <strong>Bezug</strong> <strong>auf</strong> Webapplikationen und Webapplikationen <strong>auf</strong><br />

Basis <strong>von</strong> <strong>SAP</strong> bewertet.<br />

2.2.2 Menschliche Aspekte<br />

Installation und Konfiguration durch Berater<br />

Gerade bei großen Unternehmen die auch zur Zielgruppe <strong>von</strong> <strong>SAP</strong> gehören<br />

s<strong>in</strong>d IT-Abteilungen und <strong>Sicherheit</strong>sverantwortliche etabliert. Es besteht<br />

daher grundsätzlich die Möglichkeit, den Aufbau <strong>von</strong> <strong>neue</strong>n<br />

Webapplikationen durch gute Kenntnisse der technischen Themen und<br />

<strong>in</strong>terner Organisationsstruktur durchzuführen, auch wenn dies z.B. aus<br />

Zeitmangel häufig nicht geschieht.<br />

Die Installation und Konfiguration <strong>von</strong> <strong>SAP</strong>-Systemen ist sehr komplex und<br />

zeit<strong>auf</strong>wändig. Daher wird üblicherweise <strong>auf</strong> externe, spezialisierte<br />

Dienstleister zurückgegriffen, die die Installation und Konfiguration<br />

vornehmen. Auch wenn dies nicht unbed<strong>in</strong>gt negative E<strong>in</strong>flüsse <strong>auf</strong> die<br />

Funktionalität des Systems hat, kann die <strong>von</strong> externen Kräften<br />

durchgeführte Konfiguration unter Umständen doch die geforderten<br />

Eigenschaften nicht erfüllen, da z.B. Berechtigungen falsch gesetzt werden<br />

oder zu restriktive Berechtigungen wieder großzügig zurückgenommen<br />

werden. Damit direkt zusammenhängend ist die Tatsache, dass auch bei so<br />

lang angesetzten Projekten wie e<strong>in</strong>er <strong>SAP</strong>-Installation die Zeit für die<br />

notwendigen Arbeiten knapp bemessen ist und der Fokus der Arbeit<br />

selbstverständlich bei der L<strong>auf</strong>fähigkeit des Systems liegt. Außerdem kann<br />

beobachtet werden, dass e<strong>in</strong>e Konfiguration, bei der auch <strong>auf</strong> e<strong>in</strong> hohes<br />

Schutzniveau geachtet wird nicht notwendigerweise, aber doch häufig e<strong>in</strong>e<br />

Konfiguration, die sich <strong>auf</strong> die L<strong>auf</strong>fähigkeit e<strong>in</strong>es Systems konzentriert,<br />

verkompliziert. Darüber h<strong>in</strong>aus s<strong>in</strong>d <strong>SAP</strong>-Installationen <strong>in</strong>dividuell und es<br />

gibt ke<strong>in</strong>e Installation bzw. dar<strong>auf</strong> folgende Konfiguration, die umfassend<br />

für alle Systeme gleich ist. Damit geht e<strong>in</strong>her, dass – so wie es ke<strong>in</strong>e<br />

umfassende, allgeme<strong>in</strong>gültige Konfiguration gibt – auch ke<strong>in</strong>e<br />

allgeme<strong>in</strong>gültige Konfiguration <strong>von</strong> <strong>Sicherheit</strong>se<strong>in</strong>stellungen existiert. Es<br />

gibt zwar E<strong>in</strong>stellungen, die <strong>auf</strong> nahezu jedem System getroffen werden<br />

sollten (Vgl. Kapitel 4.4), dies kann jedoch nicht die fe<strong>in</strong>granularen<br />

Damian Schlager Seite 11


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

E<strong>in</strong>stellungen wie e<strong>in</strong>e spezifische Rechtevergabe ersetzen, die für jede<br />

Umgebung <strong>in</strong>dividuell getroffen werden müssen oder spezielle<br />

E<strong>in</strong>stellungen, die die <strong>Sicherheit</strong> <strong>von</strong> Webapplikationen verändern.<br />

Ebenfalls als Folge der oben genannten Punkten, so haben Gespräche mit<br />

<strong>SAP</strong> Beratern gezeigt, ist das <strong>Sicherheit</strong>sbewusstse<strong>in</strong> bei <strong>SAP</strong> Beratern eher<br />

ger<strong>in</strong>g, oder bekannte Möglichkeiten e<strong>in</strong> System sicherer zu gestalten<br />

werden wegen Zeitmangels unterlassen.<br />

Adm<strong>in</strong>istratoren<br />

Adm<strong>in</strong>istratoren s<strong>in</strong>d e<strong>in</strong> zentrales Element bei der Absicherung auch <strong>von</strong><br />

Webapplikationen. Die Umsetzung ist zwar oftmals mangelhaft, jedoch s<strong>in</strong>d<br />

Konzepte und Strategien um auch Adm<strong>in</strong>istratoren <strong>in</strong> e<strong>in</strong><br />

<strong>Sicherheit</strong>skonzept zu <strong>in</strong>tegrieren bekannt 6 .<br />

Allerd<strong>in</strong>gs werden <strong>SAP</strong>-Systeme und andere Netzwerkkomponenten oder<br />

Systeme oftmals getrennt betrachtet. So wird <strong>von</strong> der „<strong>SAP</strong> Welt“<br />

gesprochen, wenn es um Fragen <strong>von</strong> <strong>SAP</strong> Systemen geht und daher<br />

zuständige Netzwerkadm<strong>in</strong>istratoren oder für die <strong>Sicherheit</strong> zuständigen<br />

Mitarbeiter auch ke<strong>in</strong>e <strong>SAP</strong> Experten s<strong>in</strong>d. Auch hier liegt der Fokus <strong>auf</strong> der<br />

L<strong>auf</strong>fähigkeit der Systeme. Die <strong>Sicherheit</strong>sthematik ist zwar bekannt, aber<br />

üblicherweise noch e<strong>in</strong> offener Punkt. E<strong>in</strong>e umfassende oder <strong>in</strong>s Detail<br />

gehende Evaluierung <strong>von</strong> <strong>Sicherheit</strong>saspekten kann daher nur selten<br />

durchgeführt werden. Dies wird duch die zunehmende Öffnung <strong>von</strong> <strong>SAP</strong><br />

nach außen, wie z.B. zu Partnern oder direkt <strong>in</strong>s Internet, auch e<strong>in</strong><br />

zukünftiger Markt für Beratungsunternehmen darstellen.<br />

Anwender<br />

Anwender <strong>von</strong> Applikationen, klassischen Webapplikationen, als auch <strong>von</strong><br />

<strong>SAP</strong>-Software werden zunehmend als <strong>Sicherheit</strong>sfaktor erkannt 7 .<br />

Das bekannteste Beispiel hierfür ist die Wahl <strong>von</strong> Passwörtern. Daher sollte<br />

die Applikation bzw. das ERP-System unter Anderem möglichst gute<br />

<strong>Sicherheit</strong>stechnologien und Methoden bereitstellen die den Anwender <strong>in</strong><br />

e<strong>in</strong> <strong>Sicherheit</strong>skonzept <strong>in</strong>tegrieren, wie z.B. e<strong>in</strong>e Password-Policy, bei der<br />

die Komplexität der Passwörter und deren Gültigkeitsdauer festgelegt wird 8 .<br />

6 Bundesamt für <strong>Sicherheit</strong> <strong>in</strong> der Informationstechnik: Leitfaden IT <strong>Sicherheit</strong> – IT-Grundschutz<br />

kompakt, http://www.bsi.de/gshb/Leitfaden/GS-Leitfaden.pdf<br />

7 http://www.conpro.ch/de/themen/<strong>in</strong>formation-security.aspx<br />

8 http://www.sans.org/resources/policies/Acceptable_Use_Policy.pdf<br />

Damian Schlager Seite 12


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

2.2.3 Technische Aspekte<br />

Multi Tier Architektur<br />

Viele klassische Webapplikationen s<strong>in</strong>d wie auch <strong>SAP</strong> NetWeaver selbst als<br />

3 Tier Architektur entworfen. E<strong>in</strong> Frontend <strong>auf</strong> dem Client, die Middle Tier<br />

<strong>auf</strong> dem Applikationsserver und e<strong>in</strong> Backend mit allen Daten. Die<br />

Konstruktion als 3 Tier Architektur soll e<strong>in</strong>ige Vorteile br<strong>in</strong>gen um typischen<br />

Problemen wie sie bei großen Systemen wie <strong>SAP</strong> <strong>auf</strong>treten und sorgt für<br />

e<strong>in</strong>e bessere Abstraktion, Skalierbarkeit und Zuverlässigkeit des<br />

Gesamtsystems.<br />

Bei dieser 3 Tier Architektur ist der Client <strong>in</strong> erster L<strong>in</strong>ie für die Darstellung<br />

zuständig und be<strong>in</strong>haltet wenig oder gar ke<strong>in</strong>e Anteile and der<br />

Applikationslogik. Gerade bei <strong>SAP</strong> wird hier zunehmend Wert <strong>auf</strong> die<br />

Unabhängigkeit des Endgerätes gelegt bzw. über andere <strong>SAP</strong> Komponenten<br />

wie XI für diese Unabhängigkeit gesorgt. Da sich diese Diplomarbeit mit<br />

Webapplikationen befasst, ist <strong>in</strong> diesem Fall der Client e<strong>in</strong> gängiger<br />

Browser. Es wurde je nach Applikation <strong>auf</strong> Internet Explorer 7 oder<br />

aktuellen Firefox zurückgegriffen.<br />

Die Mittel- bzw. Applikationsschicht be<strong>in</strong>haltet das, was man vere<strong>in</strong>facht als<br />

serverseitige Dienste ansieht. Hier bef<strong>in</strong>det sich die Bus<strong>in</strong>ess Logic,<br />

systemorientierte Dienste und weitere Programme, die unter Umständen<br />

zur Ausführung der Bus<strong>in</strong>ess Logic notwendig s<strong>in</strong>d. Außerdem s<strong>in</strong>d hier die<br />

Schnittstellen zu möglichen weiteren Programmen und Komponenten zu<br />

f<strong>in</strong>den. Beim NetWeaver wird dieses Modell noch dah<strong>in</strong>gehend erweitert,<br />

dass sich die Applikationslogik nicht <strong>auf</strong> e<strong>in</strong>em e<strong>in</strong>zelnen <strong>SAP</strong> System<br />

bef<strong>in</strong>den muss, sondern e<strong>in</strong>e eigene Form <strong>von</strong> WebServices verwendet<br />

werden kann.<br />

Die Datenbankschicht ist bei <strong>SAP</strong> wieder ähnlich den anderen Multi Tier<br />

Architekturen. <strong>SAP</strong> unterstützt neben der eigenen Datenbank MaxDB, die<br />

bei dieser Diplomarbeit verwendet wurde, auch andere Datenbanken als<br />

Backend wie z.B. Oracle.<br />

Soll die <strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> betrachtet werden, muss dies daher über alle<br />

Ebenen erfolgen, um alle beteiligten Komponenten abzudecken. Gleichzeitig<br />

stellt die Applikationsschicht den größten Anteil, da sich hier unter anderem<br />

die Logik der e<strong>in</strong>zelnen Programmen, sämtliche Adm<strong>in</strong>istrationswerkzeuge,<br />

die Schnittstellen nach außen, Benutzerverwaltung, Sitzungsverwaltung<br />

und diverse andere Komponenten bef<strong>in</strong>den.<br />

Damian Schlager Seite 13


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Authorisierungsmodell<br />

Die Rechtevergabe <strong>auf</strong> Webapplikationen oder Teilen der Webapplikationen<br />

unterscheidet sich grundlegend <strong>von</strong> <strong>SAP</strong>-Systemen. Bei klassischen<br />

Webapplikationen liegt der Fokus meist <strong>auf</strong> Trennung e<strong>in</strong>zelner Benutzer<br />

und e<strong>in</strong>er eventuellen Abgrenzung zu e<strong>in</strong>er Adm<strong>in</strong>istrationsrolle.<br />

Die Ausgestaltung <strong>von</strong> Autorisierungsmodellen ist bei <strong>SAP</strong> besonders<br />

komplex, da sie sich <strong>auf</strong> das Gesamtsystem <strong>SAP</strong> beziehen. Die korrekte<br />

Rechtevergabe wird auch <strong>in</strong> dieser Diplomarbeit des öfteren e<strong>in</strong> Thema<br />

se<strong>in</strong>, weswegen hier näher <strong>auf</strong> das Authorisierungsmodell bei <strong>SAP</strong><br />

e<strong>in</strong>gegangen wird.<br />

Schon <strong>auf</strong>grund der Größe und Komplexität <strong>von</strong> <strong>SAP</strong> Systemen arbeitet<br />

man auch hier mit e<strong>in</strong>em hohen Abstraktionsniveau, das über die üblichen<br />

Rollenmodelle h<strong>in</strong>ausgeht. Hier muss auch zwischen ABAP-Stack und Java-<br />

Stack unterschieden werden, da sich das Authorisierungsmodell zwischen<br />

beiden Stacks unterscheidet. Darüber h<strong>in</strong>aus verwenden beide Stacks<br />

unterschiedliche Benutzer, die nicht frei zwischen beiden Stacks<br />

übernommen werden können. Es ist zwar möglich, mit dem Java-Stack <strong>auf</strong><br />

ABAP-Benutzer zuzugreifen und es wird hier auch e<strong>in</strong> Abgleich zwischen<br />

den Benutzerdatenbanken durchgeführt, doch s<strong>in</strong>d Java-Benutzer dem<br />

ABAP-Stack unbekannt.<br />

Der ABAP-Stack baut <strong>auf</strong> e<strong>in</strong>er rollenbasierten Benutzerverwaltung <strong>auf</strong>.<br />

Rollen und Benutzer s<strong>in</strong>d hier vom System implementiert, wie es <strong>von</strong><br />

anderen rollenbasierten Authorisierungssystemen bekannt ist. Hier<br />

bedeutet das z.B. dass nur die GUI-Inhalte angezeigt werden, die der Rolle<br />

oder dem Benutzer entsprechen. Des Weiteren müssen Berechtigungen<br />

vergeben werden, wer z.B. welche Buchung im System vornehmen darf.<br />

Um dies zu erleichtern, können Berechtigungsprofile für bestimmte<br />

Applikationen festgelegt werden, bei großen Applikationen gibt es darüber<br />

h<strong>in</strong>aus die Möglichkeit Sammelprofile zu verwenden, die mehrere Profile<br />

be<strong>in</strong>halten. Rollen enthalten schon viele Profile für typische Rollen <strong>von</strong><br />

Benutzern <strong>in</strong> e<strong>in</strong>em Unternehmen, wie beispielsweise Adm<strong>in</strong>istratoren.<br />

Beim Java-Stack, bzw. Portalapplikationen des Java-Stacks, basiert die<br />

Berechtigungsvergabe <strong>auf</strong> sogenannten Security-Zones. Portalapplikationen<br />

und Dienste müssen solchen Security Zones zugeordnet werden. Die<br />

Zuordnung erfolgt hierbei beim „Deployen“ e<strong>in</strong>er Applikation, also bereits,<br />

wenn die Applikation <strong>in</strong> das <strong>SAP</strong>-Portal h<strong>in</strong>e<strong>in</strong>geladen wird. Die<br />

Berechtigungen der Benutzer, Gruppen und Rollen werden dann <strong>auf</strong> die<br />

Damian Schlager Seite 14


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Security-Zones angewandt. Vordef<strong>in</strong>ierte Security Zones s<strong>in</strong>d z.B.<br />

low_safety, medium_safety und high_safety, wobei Applikationen zur<br />

Adm<strong>in</strong>istration grundsätzlich high_safety zugeordnet s<strong>in</strong>d. S<strong>in</strong>d die<br />

Berechtigungen korrekt vergeben, kann die entsprechende Applikation nach<br />

dem Deploy über die e<strong>in</strong>deutige URL, die zu der Applikation gehört,<br />

<strong>auf</strong>gerufen werden.<br />

Es kann durchaus vorkkommen, dass die Berechtigungen für den Aufruf der<br />

URL und damit der Applikation gegeben ist, aber nicht für die sogenannten<br />

IViews, aus denen die Applikation für den Benutzer <strong>auf</strong>gebaut ist. Ist dies<br />

der Fall, kann die Applikation bzw. Teile daraus über die URL <strong>auf</strong>gerufen<br />

werden, die Applikation ist jedoch nicht bedienbar, da die Rechte <strong>auf</strong> die<br />

IViews durch das setzen der Security Zones fehlen 9 .<br />

Programmierungsaspekte<br />

Wie <strong>in</strong> Kapitel 2.3.3 beschrieben wird, ist die sogenannte E<strong>in</strong>gabeprüfung<br />

e<strong>in</strong> zentraler Teil der <strong>Sicherheit</strong>süberlegungen im Webumfeld um bösartige<br />

oder auch nur unerwartete E<strong>in</strong>gaben zu verh<strong>in</strong>dern. Es ist hier bei <strong>neue</strong>ren<br />

Versionen e<strong>in</strong> Fortschritt erkennbar, doch war der zentrale Gedanke bei der<br />

E<strong>in</strong>gabeprüfung seitens des <strong>SAP</strong>-Applikationsservers bisher zu verh<strong>in</strong>dern,<br />

dass der Benutzer versehentlich etwas falsches e<strong>in</strong>gibt das z.B. die<br />

Datenkonsistenz gefährden könnte - e<strong>in</strong>e absichtliche E<strong>in</strong>gabe unerwarteter<br />

Werte war nicht die Motivation 10 .<br />

Die proprietäre Sprache ABAP <strong>von</strong> <strong>SAP</strong> ist unter <strong>Sicherheit</strong>sgesichtspunkten<br />

e<strong>in</strong>e Unbekannte. Expertenme<strong>in</strong>ungen über die <strong>Sicherheit</strong> der Sprache<br />

selbst existieren nicht und auch generische Ansatzpunkte um<br />

Schwachstellen im Programmabl<strong>auf</strong> <strong>auf</strong>zuf<strong>in</strong>den oder auszunutzen s<strong>in</strong>d<br />

nicht bekannt. Auch die Versuche im Rahmen dieser Diplomarbeit e<strong>in</strong>en<br />

generischen Angriffspunkt wie z.B. e<strong>in</strong>e Form des Command-Injection (Vgl.<br />

Kapitel 2.3.4) zu f<strong>in</strong>den blieben ohne Ergebnis. Dass ke<strong>in</strong> Ansatzpunkt<br />

bekannt ist und auch nicht gefunden werden konnte kann als Vorteil<br />

gesehen werden und zeigt auch, daß ABAP e<strong>in</strong>e Resistenz <strong>auf</strong>weist.<br />

Dennoch kann dies nicht als endgültiges Ergebnis betrachtet werden, da die<br />

Suche im Rahmen dieser Diplomarbeit im Vergleich zu bekannten Sprachen<br />

wie z.B. Perl, <strong>in</strong> dessen Überprüfung viele Personen über längere Zeit<br />

arbeiten, ke<strong>in</strong> vergleichbarer Aufwand gegenübergestellt werden kann.<br />

9 Enterprise Portal, <strong>SAP</strong> Security and Authorizations<br />

10 <strong>SAP</strong> Web Application Server; Frederic He<strong>in</strong>emann, Christian Rau<br />

Damian Schlager Seite 15


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

2.2.4 Übergreifende Aspekte<br />

Organisatorische Maßnahmen und Integration <strong>in</strong><br />

<strong>Sicherheit</strong>süberprüfungen<br />

Außer den menschlichen und technischen Faktoren gibt es auch Faktoren,<br />

die sich übergreifend auswirken. Die organisatorischen Bed<strong>in</strong>gungen und<br />

Entscheidungen s<strong>in</strong>d hier e<strong>in</strong> Tema. Für viele Bereiche <strong>in</strong> der IT haben auch<br />

organisatorische Maßnahmen E<strong>in</strong>zug gehalten um die Arbeit zu<br />

strukturieren, wie schon verschiedene Standards, z.B. ITIL 11 zeigen.<br />

Demgegenüber wird <strong>SAP</strong> nur selten z.B. <strong>in</strong> Evaluationen der<br />

konzeptionellen <strong>Sicherheit</strong> <strong>auf</strong> Netzwerkebene oder sonstigen<br />

ganzheitlichen Überprüfungen mit e<strong>in</strong>bezogen 12 . <strong>Sicherheit</strong>süberprüfungen<br />

der Webapplikationen, wie sie bei klassischen Webapplikationen bereits<br />

üblich s<strong>in</strong>d, werden bislang nur <strong>in</strong> sehr wenigen Ausnahmefällen<br />

durchgeführt. Gleichzeitig gew<strong>in</strong>nen sie jedoch an Bedeutung und es ist<br />

e<strong>in</strong>e steigende Nachfrage hierfür erkennbar.<br />

Spezielle Eigenschaften <strong>von</strong> <strong>SAP</strong>-Systemen wurden bei solchen<br />

Webapplikationsüberprüfungen kaum beachtet, da es hier ebenfalls im<br />

Gegensatz zu klassischen Webapplikationen ke<strong>in</strong>e Erkenntnisse oder<br />

Erfahrungen gibt.<br />

Wirtschaftliche Bedeutung<br />

Bei klassischen Webapplikationen ist der potentielle wirtschaftliche Schaden<br />

e<strong>in</strong>es <strong>Sicherheit</strong>svorfalls sehr <strong>in</strong>dividuell und kann <strong>von</strong> sehr ger<strong>in</strong>gem<br />

direkten Schaden bis zu im Ernstfall unternehmensgefährdentem Schaden.<br />

Bei <strong>SAP</strong> werden h<strong>in</strong>gegen immer kritische Daten verarbeitet, so dass das<br />

Schadensrisiko im Durchschnitt wesentlich höher liegen sollte. Darüber<br />

h<strong>in</strong>aus s<strong>in</strong>d auch immer <strong>in</strong>direkte Schäden wie z.B. Vertrauensverlust zu<br />

beachten, der sich nur schwer beziffern lässt.<br />

Es gab e<strong>in</strong>ige Versuche, den direkten Schaden zu beziffern, der durch<br />

Komprommittierung <strong>von</strong> IT Systemen durchschnittlich entsteht 13 . So liegen<br />

die ermittelten Schäden je nach Studie zwischen 167.000 Dollar und 4.8<br />

Millionen Dollar und weitere 1000 Dollar pro Stunde zur Wiederherstellung<br />

des Ursprungszustandes. Wie hier zu sehen ist, s<strong>in</strong>d die Daten nicht<br />

stichhaltig und e<strong>in</strong>e weitere Studie <strong>von</strong> Forrester Research zeigt, dass 25%<br />

derjenigen, die <strong>auf</strong> solche Fragen geantwortet haben, den Schaden gar<br />

11 http://www.itil.org/<br />

12 http://www.securitymanager.de/magaz<strong>in</strong>/artikel_988_sap-security_roadmap_zu_umsetzung.html<br />

13 http://searchsecurity.techtarget.com/tip/0,289483,sid14_gci1248216,00.html?track=NL-<br />

430&ad=581112USCA&asrc=EM_NLT_1164363&uid=4199563<br />

Damian Schlager Seite 16


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

nicht kennen oder nicht wissen, wie man ihn beziffern könnte. Hierbei<br />

sagten 11% die e<strong>in</strong>en Verlust <strong>von</strong> Daten bestätigt haben, dass ke<strong>in</strong>e<br />

weiteren Kosten entstanden, was nicht der Wahrheit entsprechen kann.<br />

Verlässliche Daten zum wirtschaftlichen Schaden gibt es also derzeit noch<br />

nicht, doch wie sich e<strong>in</strong> möglicher Schaden auswirken kann, lässt sich am<br />

Beispiel ChoicePo<strong>in</strong>t <strong>auf</strong>zeigen, dessen Aktienwert <strong>auf</strong> 2 Jahre nach e<strong>in</strong>em<br />

bekannt gewordenen <strong>Sicherheit</strong>svorfall noch immer 20% unter dem Wert<br />

liegt, das das Unternehmen vor diesem Vorfall hatte. Gartner schätzt<br />

außerdem, dass die Kosten für e<strong>in</strong>en Verlust <strong>von</strong> Daten bis 2009 um 20%<br />

pro Jahr steigen wird.<br />

Zusammenfassend lässt sich sagen, dass e<strong>in</strong>zelne Aspekte ke<strong>in</strong><br />

realistisches Bild der <strong>Sicherheit</strong> br<strong>in</strong>gen können, viel mehr muss letztlich<br />

e<strong>in</strong>e Gesamtbetrachtung durchgeführt werden. Bei Betrachtung e<strong>in</strong>zelner<br />

Aspekte entgehen komplexere Probleme, wie z.B. der Mitarbeiter, der<br />

mangels Schulungen nicht richtig mit der proprietären Sprache umgehen<br />

kann, oder e<strong>in</strong> gutes <strong>Sicherheit</strong>smodell, das durch fehlerhaftes Setzen <strong>von</strong><br />

Berechtiungen unterl<strong>auf</strong>en wird, oder e<strong>in</strong> fehlerhafter Prozess, <strong>in</strong> dessen<br />

Zuge unsichere E<strong>in</strong>stellungen <strong>von</strong> e<strong>in</strong>em Testsystem <strong>in</strong> das<br />

Produktivsystem übernommen werden.<br />

2.2.5 Betrachtungsweisen der <strong>Sicherheit</strong><br />

Klassische <strong>SAP</strong>-<strong>Sicherheit</strong><br />

Wie <strong>in</strong> allen Bereichen der IT gibt es auch für <strong>SAP</strong> bereits e<strong>in</strong>en Markt für<br />

Dienstleistungen im <strong>Sicherheit</strong>sbereich. Jedoch decken diese gänzlich<br />

andere Themen ab als sie <strong>in</strong> dieser Diplomarbeit behandelt werden. Es gibt<br />

auch e<strong>in</strong>ige Anbieter, die sich um das Thema sichere Kommunikation<br />

kümmern und <strong>in</strong> diesem Rahmen Lösungen für SSL, VPN und PKI anbieten.<br />

Der größte Teil der Anbieter für <strong>Sicherheit</strong> bei <strong>SAP</strong> bearbeitet jedoch das<br />

durchaus komplexe und wichtige Gebiet der Benutzer- oder<br />

Rollenverwaltung, Berechtigungen und Profile sowie eventuell Information-<br />

Ownership und Themen rund um Complianceandforderungen.<br />

Risiko – Kontroll - Analyse<br />

E<strong>in</strong>e Empfehlung 10 im Rahmen der <strong>SAP</strong>-<strong>Sicherheit</strong> beschreibt e<strong>in</strong>e<br />

sogenannte Risiko – Kontroll – Analyse um die <strong>Sicherheit</strong>sprobleme der<br />

<strong>SAP</strong>-Technologie, Anwendungen, Organisation und gesetzliche<br />

Damian Schlager Seite 17


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Anforderungen zu identifizieren. Als Beispiel werden risikoreiche<br />

Transaktionen <strong>auf</strong>gefürt, die mit Hilfe der Risiko – Kontroll – Analyse<br />

identifiziert werden und geeignete Gegenmassnahmen vorgeschlagen<br />

werden können.<br />

Der Vorgang wird als zentrale Komponente e<strong>in</strong>er <strong>Sicherheit</strong>sstrategie<br />

vorgestellt und wird <strong>in</strong> 4 Schritten beschrieben:<br />

Gefahrenanalyse: Herausarbeitung der Verwundbarkeiten und<br />

Gefahren e<strong>in</strong>es IT Systems<br />

Auswirkungsanalyse: Herausarbeitung der Auswirkungen e<strong>in</strong>es<br />

Angriffs, e<strong>in</strong>es Ausfalls <strong>von</strong> IT Systemen oder menschliche Fehler<br />

Gefährdungsanalyse: Konkrete identifizierung der Gefährdungen und<br />

deren Gewichtung und E<strong>in</strong>trittswahrsche<strong>in</strong>lichkeit<br />

Kontrollanalyse: Herausarbeitung der Gegenmassnahmen, allerd<strong>in</strong>gs<br />

ohne detaillierte Schritte zur Erreichung des Ziels.<br />

Angreifersicht<br />

Die Motivation und das Ziel <strong>von</strong> Angreifern kann sehr unterschiedlich se<strong>in</strong> 14 .<br />

Sie reicht <strong>von</strong> Neugier <strong>von</strong> technologischen Möglichkeiten, Vandalismus bis<br />

h<strong>in</strong> zu Wirtschaftskrim<strong>in</strong>alität und Verfälschung <strong>von</strong> Informationen durch<br />

Geheimdienste.<br />

Es überwiegt hier die Betrachtungsweise der technischen <strong>Sicherheit</strong> bzw.<br />

die technischen Möglichkeiten zur Erreichung der oben genannten Ziele, wie<br />

sie auch <strong>in</strong> dieser Diplomarbeit verwendet wird. Auch social Eng<strong>in</strong>eer<strong>in</strong>g<br />

gehört mit <strong>in</strong> die Angreifersicht, ist aber trotz deren Effektivität nur selten<br />

erwähnt und wird auch bei dieser Diplomarbeit nicht weiter verfolgt.<br />

Verteidigersicht<br />

Die Verteidigersicht ist der Angreifersicht recht ähnlich. Sie beschreibt den<br />

umgekehrten Weg und beschäftigt sich mit den Sicherungsmaßnahmen<br />

gegen die Gefährdungen <strong>von</strong> IT-Systemen. Die Verteidigersicht wie sie <strong>in</strong><br />

dieser Diplomarbeit verstanden wird beschäftigt sich vor allem mit der<br />

technischen <strong>Sicherheit</strong> wie sie <strong>in</strong> <strong>Sicherheit</strong>sabteilungen <strong>von</strong> Unternehmen<br />

gesehen wird und beschreibt ke<strong>in</strong>e weitergehenden Maßnahmen wie z.B.<br />

organisatorische Maßnahmen.<br />

14 Andy Müller-Maguhn – Vortrag “Die Illusion IT-<strong>Sicherheit</strong>: Strategien und Erfahrungen“<br />

Damian Schlager Seite 18


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

2.2.6 E<strong>in</strong>ordnung dieser Diplomarbeit<br />

Diese Diplomarbeit beschäftigt sich <strong>in</strong> erster L<strong>in</strong>ie mit der Angreifersicht<br />

und Verteidigersicht, wie sie <strong>in</strong> Kapitel 2.2.5 beschrieben wird. Die Kapitel 3<br />

und 4 entsprechen diesen beiden Sichten und untersuchen dieses Szenario<br />

jeweils unter e<strong>in</strong>er praktischen Vorgehensweise und Verwendung<br />

technischer Möglichkeiten.<br />

Bei e<strong>in</strong>er Gesamtbetrachtung der <strong>Sicherheit</strong> können diese technischen<br />

Sichten nur e<strong>in</strong> Teil der zu betrachtenden Situation und Möglichkeiten se<strong>in</strong>,<br />

stellen jedoch die größten und auch am häufigsten angewandten Aspekte<br />

dar. Daher wurden <strong>in</strong> den Unterkapiteln des Kapitels 2 zusätzlich weitere<br />

<strong>Sicherheit</strong>saspekte mit <strong>auf</strong>genommen die <strong>in</strong> den Kapiteln 3 und 4<br />

durchgefürhten Untersuchungen <strong>in</strong> e<strong>in</strong>en Gesamtzusammenhang zu stellen<br />

wie es <strong>in</strong> Kapitel 5 zusammengefasst wird.<br />

2.3 Gefahren und Angriffe im Webumfeld<br />

2.3.1 Inhalte und Ziele des Kapitels<br />

Dieses Kapitel soll e<strong>in</strong>en Überblick über das Thema<br />

Webapplikationssicherheit verschaffen. Was hier beschrieben wird ist<br />

sowohl für die klassischen Webapplikationen relevant als auch für die<br />

Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong>. Es wird zunächst an das Thema<br />

Webapplikationssicherheit herangeführt und beschrieben, wodurch sich<br />

dieses Thema <strong>von</strong> anderen <strong>Sicherheit</strong>sthemen und Angriffswegen<br />

unterscheidet. Danach werden die Ursachen beschrieben, die Angriffe<br />

überhaupt erst ermöglichen und auch bekannte Angriffstechniken bis h<strong>in</strong> zu<br />

konkreten Beispielen.<br />

Das Ziel dieses Kapitels ist jedoch nicht e<strong>in</strong>e Anleitung zu geben, wie<br />

Webapplikationen gehackt werden können oder H<strong>in</strong>tergründe, Fehlerquellen<br />

und Angriffstechniken über e<strong>in</strong>e allgeme<strong>in</strong>e Bewertung h<strong>in</strong>aus zu<br />

beurteilen. Ziel dieses Kapitels ist es, das Thema Webapplikationssicherheit<br />

zu verstehen sowie die Ausführungsmölichkeiten zu kennen und<br />

e<strong>in</strong>schätzen zu können.<br />

2.3.2 Port 80 Problem<br />

E<strong>in</strong> oft verwendetes Schlagwort bei Behandlung des Themas<br />

Webapplikationssicherheit ist das Port 80 Problem. Typische Firewalls<br />

Damian Schlager Seite 19


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

erkennen und verh<strong>in</strong>dern e<strong>in</strong>e Vielzahl <strong>von</strong> Angriffen im Wesentlichen<br />

dadurch, dass sie nur die gewollten Netzwerkports für kontrollierten<br />

Verkehr zulassen. Das Wesen <strong>von</strong> Webapplikationsangriffen ist allerd<strong>in</strong>gs,<br />

dass sie genau dieses Protokoll verwenden und somit für die Firewalls auch<br />

erlaubten und gewünschten Verkehr darstellen, der die Firewall dann auch<br />

passieren wird.<br />

Demgegenüber s<strong>in</strong>d Webapplikationen <strong>in</strong>zwischen weit verbreitet und auch<br />

zu sehr komplexen Gebilden gewachsen, die Zugriffe <strong>auf</strong> e<strong>in</strong>e Datenbank<br />

vermitteln, über e<strong>in</strong>e Sitzungsverwaltung verfügen und viele weitere<br />

Techniken be<strong>in</strong>halten, die gleichzeitig potentielle Gefahrenstellen s<strong>in</strong>d. Die<br />

Werkzeuge um Angriffe <strong>auf</strong> Webapplikationen durchzuführen s<strong>in</strong>d<br />

vorhanden und die Methoden, die dah<strong>in</strong>ter stehen bekannt. Völlig<br />

fehlerfreies Programmieren und Konfigurieren hat sich als unmöglich<br />

herausgestellt, auch wenn es selbstverständlich auch sehr sichere, große<br />

Applikationen gibt.<br />

Abbildung 3: Port 80 Problem<br />

Wie <strong>in</strong> Abbildung 3: Port 80 Problem zu sehen l<strong>auf</strong>en die Angriffe über die<br />

beabsichtigterweise offenen Ports der Firewall die somit ke<strong>in</strong> H<strong>in</strong>dernis<br />

darstellen und die beteiligten Systeme ungeschützt <strong>in</strong> Internet stehen.<br />

Durch die Nutzung der offenen Ports können aber sehr wohl<br />

Applikationslogik, Prozesse, das Betriebssystem und e<strong>in</strong>e dah<strong>in</strong>ter liegende<br />

Datenbank Ziele e<strong>in</strong>es Angriffs se<strong>in</strong>.<br />

Damian Schlager Seite 20


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

2.3.3 Fehlerquellen <strong>in</strong> Webapplikationen<br />

Es gibt e<strong>in</strong>ige Grundsätze, die beim Programmieren <strong>von</strong> Webapplikationen<br />

beachtet werden sollten. Die meisten der hier erwähnten Punkte lassen sich<br />

auch <strong>auf</strong> andere Arten <strong>von</strong> Applikationen anwenden, sie treten jedoch bei<br />

Webapplikationen besonders deutlich <strong>in</strong> Ersche<strong>in</strong>ung. Spezifische<br />

Programmierrichtl<strong>in</strong>ien für Webapplikationen s<strong>in</strong>d <strong>in</strong> Kapitel 4.3 und 4.4<br />

beschrieben, dieses Kapitel beschränkt sich <strong>auf</strong> allgeme<strong>in</strong>e Grundsätze, die<br />

für das Verständnis <strong>von</strong> Webapplikationssicherheit wichtig s<strong>in</strong>d und deren<br />

Unkenntnis oder Nichtbeachtung zu e<strong>in</strong>em großen Teil der Probleme führen.<br />

Diese Punkte wurden hauptsächlich <strong>auf</strong> Basis der praktischen Arbeit des<br />

Verfassers erstellt.<br />

Fehlende E<strong>in</strong>gabevalidierung<br />

E<strong>in</strong> Großteil der Webapplikationsangriffe basiert <strong>auf</strong> dem Fehlen oder e<strong>in</strong>er<br />

nicht korrekt durchgeführten E<strong>in</strong>gabevalidierung. Bei e<strong>in</strong>er<br />

E<strong>in</strong>gabevalidierung müssen grundsätzlich alle Daten die vom Client<br />

kommen geprüft werden, da sie gefälscht oder verändert se<strong>in</strong> können.<br />

Behandlung unterschiedlicher Codierungen<br />

E<strong>in</strong>e ungewöhnliche Codierung kann e<strong>in</strong>e Rolle bei der<br />

Webapplikationssicherheit spielen und muss bei der E<strong>in</strong>gabevalidierung<br />

beachtet werden. Es gibt e<strong>in</strong>e Vielzahl <strong>von</strong> Codierungsmöglichkeiten, die<br />

alle erkannt werden und <strong>in</strong> korrekter bzw. normalisierter Form an e<strong>in</strong>e<br />

Prüfrout<strong>in</strong>e übergeben werden müssen. Nur so kann e<strong>in</strong>e Prüfung auch<br />

angewendet werden.<br />

Clientseitiger Code<br />

In e<strong>in</strong>igen seltenen Fällen wird bei klassischen Webapplikationen e<strong>in</strong>e<br />

E<strong>in</strong>gabevalidierung mittels Code <strong>auf</strong> dem Client durchgeführt. Da sich<br />

dieser jedoch wie alle Daten <strong>auf</strong> dem Client auch unter Kontrolle des Clients<br />

bef<strong>in</strong>det, können Prüfungen <strong>in</strong> diesem Fall als wirkungslos angesehen<br />

werden. Grundsätzlich muss jeglicher Code <strong>auf</strong> dem Client als nicht<br />

vertrauenswürdig angesehen werden und <strong>auf</strong> dem Client niemals<br />

sicherheitsrelevante Rout<strong>in</strong>en verwendet werden.<br />

Schwache Sitzungsverwaltung<br />

Da Webapplikationen wie andere Applikationen auch Sitzungsgebunden<br />

s<strong>in</strong>d, HTTP aber ke<strong>in</strong>e Sitzungsverwaltung bietet, muss diese <strong>auf</strong><br />

Damian Schlager Seite 21


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Applikationsebene implementiert werden. Es ist unabd<strong>in</strong>gbar, dass e<strong>in</strong>e<br />

Sitzungsverwaltung sorgfältig implementiert werden muss, so dass e<strong>in</strong>e<br />

Sitzung beispielsweise nicht veränderbar oder vorhersagbar ist.<br />

Ausgabevalidierung<br />

Unter den Punkt Ausgabevalidierung fällt vor allem der Bereich der<br />

Fehlermeldungen. Im Gegensatz zu der E<strong>in</strong>gabevalidierung soll hier aber<br />

dafür gesorgt werden, dass ke<strong>in</strong>e Daten zum Client gelangen, die dort nicht<br />

benötigt werden. Gerade Fehlermeldungen verraten häufig System<strong>in</strong>ternas,<br />

wie z.B. e<strong>in</strong>gesetzte Produkte, deren Version oder Teile der Programmlogik,<br />

<strong>in</strong> manchen Fällen sogar Debugausgaben. All dies s<strong>in</strong>d wertvolle<br />

Informationen für e<strong>in</strong>en Angreifer, die er für weitere Schritte verwenden<br />

kann. Daher sollten Fehlermeldungen grundsätzlich nur über das Auftreten<br />

e<strong>in</strong>es Fehlers <strong>in</strong>formieren, aber ke<strong>in</strong>e Systemrelevanten Daten<br />

herausgeben. Darüber h<strong>in</strong>aus hilft e<strong>in</strong>e sorgfältige Ausgabevalidierung auch<br />

die Durchführung <strong>von</strong> Angriffen zu verh<strong>in</strong>dern. E<strong>in</strong> Beispiel hierfür ist<br />

Cross-Site-Script<strong>in</strong>g, das zwar Häufig <strong>von</strong> der E<strong>in</strong>gabevalidierung<br />

abgefangen wird, aber grundsätzlich eher als Problem der Ausgabeseite<br />

angesehen werden muss, da bei Cross-Site-Script<strong>in</strong>g die Fähigkeit des<br />

Browsers ausgenutzt wird, Code auszuführen, der sich nicht an dieser Stelle<br />

<strong>in</strong> ausführbarer Form <strong>in</strong> der Antwort des Webservers bef<strong>in</strong>den sollte.<br />

Kommentare/Testprogramme/Backups<br />

Kommentare, Testprogramme und Backups s<strong>in</strong>d alles Informationsquellen<br />

für e<strong>in</strong>en Angreifer, oder im schlimmsten Fall sogar e<strong>in</strong>fache Zugänge zu<br />

e<strong>in</strong>em System. Doch selbst als re<strong>in</strong>e Informationsquellen können sie bei<br />

weiteren Schritten hilfreich se<strong>in</strong>. Besonders <strong>in</strong>teressant und auch <strong>in</strong> der<br />

Realität zu f<strong>in</strong>den s<strong>in</strong>d dort Informationen über die Programmlogik oder<br />

auch kritische Informationen wie z.B. Connection-Str<strong>in</strong>gs zum Backend.<br />

Unzureichende Konfiguration der Komponenten<br />

Auch e<strong>in</strong>e unzureichende Konfiguration der Komponenten ist e<strong>in</strong> zentraler<br />

Punkt, der häufig vernachlässigt wird. Es werden zusätzliche Angriffspunkte<br />

geschaffen, wenn z.B. die Defaultkonfiguration <strong>von</strong> Komponenten<br />

verwendet wird oder die Konfigurationse<strong>in</strong>stellungen aus e<strong>in</strong>em<br />

Testsystem, das üblicherweise weniger gesichert wird als e<strong>in</strong><br />

Produktivsystem. Hierbei spielt auch wieder die knappe Zeit e<strong>in</strong>e Rolle,<br />

<strong>in</strong>folge dessen oft die sorgfältige Konfiguration sicherheitsrelevanter<br />

Damian Schlager Seite 22


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

E<strong>in</strong>stellungen vernachlässigt wird. Ebenso ist e<strong>in</strong>e mögliche mangelnde<br />

Fachkenntnis <strong>in</strong> diesem Bereich e<strong>in</strong>e Ursache für e<strong>in</strong>e unzureichende und<br />

damit unnötig unsichere Konfiguration.<br />

2.3.4 Beschreibung der Webapplikationsangriffe<br />

Im Folgenden werden e<strong>in</strong>ige der wichtigsten Angriffsklassen und Methoden<br />

kurz erläutert und <strong>in</strong> e<strong>in</strong>igen Fällen mit exemplarischen Beispielen<br />

verdeutlicht. Die konkrete Ausgestaltung dieser Methoden kann <strong>von</strong> Fall zu<br />

Fall variieren, da Webapplikationen grundsätzlich Unikate s<strong>in</strong>d und die<br />

Angriffe den Gegebenheiten angepasst werden müssen. Diese Liste ist nicht<br />

vollständig und soll nur e<strong>in</strong>ige der wesentlichen Methoden näher br<strong>in</strong>gen.<br />

Cross-Site-Script<strong>in</strong>g<br />

Cross-Site-Script<strong>in</strong>g ist e<strong>in</strong>e der bekanntesten Attacken, gleichzeitig ist es<br />

wohl die Methode, die trotz des sehr hohen Bekanntheitsgrades am<br />

wenigsten verstanden wurde. Entgegen der gängigen Annahme ist Cross-<br />

Site-Script<strong>in</strong>g ke<strong>in</strong> Angriff <strong>auf</strong> die Applikation, den Server oder ähnliches<br />

und ist somit ke<strong>in</strong> Angriff, der die <strong>Sicherheit</strong> des Servers direkt bee<strong>in</strong>flusst.<br />

Im Gegensatz zu den anderen Angriffsmethoden kennt Cross-Site-Script<strong>in</strong>g<br />

3 Beteiligte.<br />

Angreifer<br />

Server<br />

Opfer<br />

Der Server ist also, wie zu sehen, nicht das Opfer, sondern e<strong>in</strong> Vermittler<br />

des Angriffes. Der Abl<strong>auf</strong> e<strong>in</strong>es Cross-Site-Script<strong>in</strong>g Angriffs beg<strong>in</strong>nt immer<br />

gleich. Das Opfer, e<strong>in</strong> Benutzer der verwundbaren Applikation, muss<br />

zunächst dazu gebracht werden e<strong>in</strong>en präparierten L<strong>in</strong>k zu benutzen. Dies<br />

muss <strong>in</strong> den meisten Fällen, aber nicht notwendigerweise, aktiv geschehen.<br />

Das heißt, das Opfer klickt beispielsweise <strong>auf</strong> den präparierten L<strong>in</strong>k der sich<br />

<strong>in</strong> e<strong>in</strong>er Email bef<strong>in</strong>det. Der L<strong>in</strong>k verweist dann <strong>auf</strong> e<strong>in</strong>e Applikation, die für<br />

Cross-Site-Script<strong>in</strong>g verwundbar ist. Bei dieser Applikation darf und soll es<br />

sich sogar um e<strong>in</strong>e für das Opfer vertrauenswürdigen Applikation handeln,<br />

da sich der Schadcode <strong>in</strong>nerhalb des L<strong>in</strong>ks, <strong>in</strong> seltenen Fällen dann <strong>auf</strong> der<br />

Seite selbst, <strong>auf</strong> e<strong>in</strong>e verme<strong>in</strong>tlich vertrauenswürdigen Seite bef<strong>in</strong>det. Bei<br />

der für das Opfer vertrauenswürdigen Applikation kann es dann<br />

beispielsweise e<strong>in</strong>en für Cross-Site-Script<strong>in</strong>g verwundbaren Parameter<br />

Damian Schlager Seite 23


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

geben, der dann mit Werten wie document.location<br />

.replace('http://hackers.server/stealcookie.cgi?'+document.cook<br />

ie); <strong>auf</strong>gerufen wird. Wie <strong>in</strong> diesem Beispiel ersichtlich erhält<br />

der Angreifer die Cookies des Opfers, unter denen sich auch e<strong>in</strong>es bef<strong>in</strong>den<br />

kann, das e<strong>in</strong>e gültige Sitzung <strong>auf</strong> der verwundbaren Applikation darstellt.<br />

Der Angreifer könnte nun also, obwohl er selbst ke<strong>in</strong>e oder andere<br />

Berechtigungen <strong>in</strong> der Applikation hat, <strong>in</strong> der Identität des Opfers arbeiten.<br />

Der Angriff, <strong>in</strong> diesem Fall der Wert des Parameters, muss jedoch nicht<br />

immer so e<strong>in</strong>deutig se<strong>in</strong>. Es gibt e<strong>in</strong>e Vielzahl an Variationen um z.B. e<strong>in</strong>e<br />

E<strong>in</strong>- bzw. Ausgabeprüfung zu umgehen. Das folgende Beispiel würde bei<br />

e<strong>in</strong>er Verwundbaren Applikation e<strong>in</strong>e Alertbox mit XSS als Text erzeugen 15 :<br />

'';!--"=&{()}<br />

<br />

<br />

Wie zuvor schon angedeutet, unterscheidet man bei Cross-Site-Script<strong>in</strong>g<br />

zwischen 2 Arten:<br />

nicht persistent<br />

persistent<br />

Nicht persistentes Cross-Site-Script<strong>in</strong>g verhält sich wie <strong>in</strong> dem Beispiel<br />

zuvor beschrieben. Es ist grundsätzlich nur für e<strong>in</strong>e Sitzung gültig und das<br />

Opfer muss den <strong>in</strong>itial gesendeten bzw. verwendeten L<strong>in</strong>k aktivieren.<br />

Bei e<strong>in</strong>em persistenten Cross-Site-Script<strong>in</strong>g wird der L<strong>in</strong>k <strong>in</strong> e<strong>in</strong>em System<br />

gespeichert, so dass dieser den Opfern nicht gesordert gesendet werden<br />

muss. Dadurch trifft der Angriff jeden, der die Daten und damit das Skript<br />

abruft. Denkbar ist dies z.B. <strong>in</strong> e<strong>in</strong>em Forum, dessen<br />

Mitgliederbeschreibung für Cross-Site-Script<strong>in</strong>g anfällig ist und somit jeder,<br />

der die Mitgliederbeschreibung abruft, <strong>von</strong> der Attacke betroffen ist, ohne<br />

dass <strong>von</strong> den Opfern e<strong>in</strong>e weitere Aktion notwendig ist 16 .<br />

E<strong>in</strong>e anschauliche Demonstration, was mit Cross-Site-Script<strong>in</strong>g möglich ist,<br />

f<strong>in</strong>det sich <strong>auf</strong> www.b<strong>in</strong>dshell.net/beef/.<br />

15 http://ha.ckers.org/xss.html<br />

16 http://www.heise.de/newsticker/meldung/100976<br />

Damian Schlager Seite 24


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Cross-Site-Script<strong>in</strong>g f<strong>in</strong>det üblicherweise über JavaScript statt,<br />

grundsätzlich ist aber jeder vom Browser ausgefürhrte Code geeignet.<br />

SQL-Injection<br />

SQL-Injection gehört zu e<strong>in</strong>er der potentiell gefährlichsten Attacken, da<br />

hierdurch unternehmenskritische oder sonstige wichtigen Daten offen<br />

liegen können, wie z.B. Kreditkartennummern <strong>von</strong> Kunden. Weniger<br />

bekannt aber ähnlich gefährlich ist, dass viele<br />

Datenbankmanagementsysteme Schnittstellen für<br />

Betriebssystemkommandos bereitstellen, wie xp_cmdshell des MS SQL<br />

Servers, der <strong>in</strong> der Vergangenheit standardmäßig mit adm<strong>in</strong>istrativen<br />

Rechten <strong>auf</strong> dem Betriebssystem lief.<br />

Ursache für SQL-Injection ist häufig, dass Benutzere<strong>in</strong>gaben Teil e<strong>in</strong>es SQL-<br />

Befehls an das Backend s<strong>in</strong>d. Die Webapplikation wirkt hierbei also als<br />

Interface für SQL-Befehle. Das Gefährliche ist, dass hier die Möglichkeiten<br />

der E<strong>in</strong>gabe über das vom Programmierer Erwartete h<strong>in</strong>ausgehen. Erwartet<br />

wird für gewöhnlich e<strong>in</strong>e Benutzere<strong>in</strong>gabe, die im späteren SQL-Befehl<br />

e<strong>in</strong>en Parameterwert oder e<strong>in</strong>en Teil dessen darstellt, z.B. e<strong>in</strong><br />

Benutzername. Es ist aber möglich, die erwartete E<strong>in</strong>gabe zu verändern<br />

oder zu erweitern, so dass anstatt des Parameterwertes, der eigentlich<br />

erwartet wurde, e<strong>in</strong> Teil e<strong>in</strong>es SQL-Befehls entsteht, der den ursprünglichen<br />

SQL-Befehl verändert, oder aber auch e<strong>in</strong> <strong>neue</strong>r SQL-Befehl bzw. e<strong>in</strong>e<br />

Verkettung <strong>von</strong> SQL-Befehlen.<br />

E<strong>in</strong> oft beschrittener Weg bei e<strong>in</strong>er gefundenen SQL-Injection<br />

Schwachstelle ist es, zunächst die Systemtabellen auszulesen. Da e<strong>in</strong><br />

relationales Datenbanksystem alle Informationen auch über sich selbst<br />

auch <strong>in</strong> se<strong>in</strong>en Tabellen speichern muss, können hier alle gewünschten<br />

Informationen über die Datenbank ausgelesen werden, die Möglichkeit der<br />

E<strong>in</strong>gabe der entsprechenden Befehle und die notwendigen Rechte<br />

vorausgesetzt. Danach können die gewünschten Informationen wie z.B.<br />

Kreditkartennummern gezielt abgefragt werden oder andere gewünschte<br />

Aktionen wie das gezielte Verändern <strong>von</strong> Datenbanke<strong>in</strong>trägen durchgefürt<br />

werden.<br />

Auch bei SQL-Injection gibt es e<strong>in</strong>e weitere Variante, die Bl<strong>in</strong>d-SQL-<br />

Injection. Während man bei e<strong>in</strong>er gewöhnlichen SQL-Injection den Aufbau<br />

des vom System verwendeten SQL-Befehls anhand <strong>von</strong> Fehlermeldungen<br />

erkennen kann, ist dies bei Bl<strong>in</strong>d-SQL-Injection nicht möglich. E<strong>in</strong> Angreifer<br />

muss sich daher den korrekten Aufbau des SQL-Befehls anhand <strong>von</strong><br />

Damian Schlager Seite 25


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Veränderungen der Antworten der Applikation, z.B. allgeme<strong>in</strong> gehaltene<br />

Fehlerseiten, erarbeiten um die Lücke auch tatsächlich ausnutzen zu<br />

können und um die Befehle e<strong>in</strong>zuschleußen.<br />

Weitgehend unbekannt ist die Tatsache, dass SQL-Injection nicht nur über<br />

die Manipulation <strong>von</strong> Benutzere<strong>in</strong>gaben für Parameter möglich ist. Es s<strong>in</strong>d<br />

grundsätzlich alle Daten betroffen, die für e<strong>in</strong>en SQL-Befehl verwendet<br />

werden, auch z.B. HTTP Header.<br />

Verh<strong>in</strong>dern lässt sich SQL-Injection h<strong>in</strong>gegen sehr e<strong>in</strong>fach durch die<br />

Verwendung <strong>von</strong> prepared Statements.<br />

Command-Injection<br />

Die Ursache für Command-Injection ist der für SQL-Injection recht ähnlich.<br />

Hier ist die Benutzere<strong>in</strong>gabe aber nicht Teil e<strong>in</strong>es SQL-Befehls, sondern<br />

e<strong>in</strong>es Kommandos, z.B. e<strong>in</strong> Kommando des darunter liegenden<br />

Betriebssystems. Wie bei SQL-Injection geschieht dies durch Verändern<br />

oder Erweitern der erwarteten Benutzere<strong>in</strong>gabe. Ist z.B. die E<strong>in</strong>gabe e<strong>in</strong>er<br />

Pipe ( | ) bei e<strong>in</strong>er Perl-basierter Applikation erlaubt, kann dies dazu<br />

führen, dass die beabsichtigte E<strong>in</strong>gabe so verändert wird, dass e<strong>in</strong><br />

Angreifer die E<strong>in</strong>gabe um eigene Befehle erweitern kann 17 :<br />

Beabsichtigt: ..../show.pl?format=default<br />

Angriff: .../show.pl?format=/b<strong>in</strong>/ls|<br />

Bei php ist folgende Variante denkbar:<br />

Beabsichtigt: …/diskusage.php?directory=~/<br />

Angriff: …/diskusage.php?directory=;cat etc/passwd<br />

Hierdurch wird e<strong>in</strong> Angreifer <strong>in</strong> die Lage versetzt, alle Befehle <strong>auf</strong> z.B.<br />

Betriebssystemebene auszuführen, die auch die Applikation <strong>auf</strong>rufen kann,<br />

<strong>in</strong>klusive derer Berechtigung <strong>auf</strong> dem Betriebssystem.<br />

File Execution/Include<br />

Ursächlich für File-Execution bzw. File-Include ist die Möglichkeit e<strong>in</strong>es<br />

Benutzers, Date<strong>in</strong>amen anzugeben oder Dateien hochzuladen, die danach<br />

<strong>auf</strong>gerufen werden können. Dies führt zur Ausführung <strong>von</strong><br />

benutzerdef<strong>in</strong>ierten Dateien, dies es unter Umständen erlauben, die<br />

Fähigkeiten des Applikation im S<strong>in</strong>ne des Angreifers zu erweitern. Es s<strong>in</strong>d<br />

auch hier verschiedene Varianten möglich<br />

17 http://www.webappsec.org/projects/threat/classes/os_command<strong>in</strong>g.shtml<br />

Damian Schlager Seite 26


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

E<strong>in</strong>b<strong>in</strong>den <strong>von</strong> Includes <strong>auf</strong> dem Server<br />

E<strong>in</strong>b<strong>in</strong>den <strong>von</strong> Includes <strong>von</strong> anderen Orten<br />

Hochladen <strong>von</strong> Dateien gefolgt <strong>von</strong> deren Ausführung<br />

Logikfehler<br />

E<strong>in</strong> wichtiger Punkt bei der Überprüfung <strong>von</strong> Webapplikationen ist die<br />

Prüfung <strong>auf</strong> Fehler <strong>in</strong> der Anwendungslogik. Dieser Schritt erfordert viel<br />

Zeit und ist auch nahezu unmöglich zu automatisieren. Ursachen und Ziele<br />

<strong>von</strong> Logikfehlern bzw. deren Ausnutzung s<strong>in</strong>d äußerst vielfältig, ebenso der<br />

potentielle Schaden. Es ist häufig verbunden mit den zuvor genannten<br />

Angriffen und geht üblicherweise über verschiedene<br />

Parametermanipulationen.<br />

Daten <strong>von</strong> 2006:<br />

Ergänzend ist <strong>in</strong> Abbildung 4: Verteilung der Angriffshäufigkeit e<strong>in</strong>e<br />

Statistic über die Häufigkeit <strong>von</strong> verschiedenen Webapplikationsangriffen<br />

dargestellt 18 . Diese Diplomarbeit folgt nicht der <strong>in</strong> dieser Grafik<br />

vorgenommenen Unterteilung, da z.B. Path-Traversal zumeist <strong>auf</strong> falsche<br />

Konfiguration zurückzuführen ist, jedoch ist hier der überragende Anteil an<br />

Cross-Site-Script<strong>in</strong>g erkennbar, gefolgt <strong>von</strong> SQL-Injection.<br />

Abbildung 4: Verteilung der Angriffshäufigkeit<br />

18 http://www.webappsec.org/projects/statistics/<br />

Damian Schlager Seite 27


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

2.4 Zusammenfassung<br />

In diesem Kapitel wurden Parallelen und Unterschiede im Aufbau <strong>von</strong><br />

klassischen Webapplikationen und <strong>SAP</strong> als Beispiel für e<strong>in</strong> ERP-System<br />

dargestellt und hierbei <strong>in</strong>sbesondere den für diese Diplomarbeit wichtigen<br />

Aufbau des <strong>SAP</strong> NetWeavers näher erklärt und somit die dieser<br />

Diplomarbeit behandelten Zielsysteme und Architekturen def<strong>in</strong>iert.<br />

Nachfolgend wurde wurde das Thema <strong>Sicherheit</strong> diskutiert und die<br />

Unterschiede zwischen klassischen Webapplikationen und <strong>SAP</strong>-Systemen<br />

anhand relevanter Aspekte herausgearbeitet um die <strong>in</strong> dieser Diplomarbeit<br />

näher behandelten <strong>Sicherheit</strong>saspekte aus der Sicht <strong>von</strong> Angreifer und<br />

Verteidiger <strong>in</strong> e<strong>in</strong>en größeren Zusammenhang e<strong>in</strong>zuordnen, wie dies vor<br />

Allem <strong>in</strong> Kapitel 5 geschieht.<br />

Abgeschlossen wurde dieses Kapitel mit der Beschreibung der für diese<br />

Diplomarbeit relevanten Teilbereiche der technischen <strong>Sicherheit</strong>, die<br />

Angriffe, wie sie <strong>in</strong> dieser Diplomarbeit durchgeführt werden, erlauben und<br />

e<strong>in</strong>er Beschreibung der verwendeten Angriffstechniken selbst.<br />

Damian Schlager Seite 28


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

3 Vergleich klassischer Webapplikationen<br />

mit <strong>SAP</strong> aus Angreifersicht<br />

Im folgenden Kapitel wird die <strong>Sicherheit</strong> <strong>von</strong> Webapplikationen <strong>auf</strong> Basis<br />

<strong>von</strong> <strong>SAP</strong> aus Angreifersicht evaluiert. Nach e<strong>in</strong>er kurzen E<strong>in</strong>führung zu<br />

Webapplikationsscannern wird hierzu wird zunächst e<strong>in</strong>e beispielhafte<br />

Überprüfung der klassischen Webapplikation cirobank durchgeführt, die als<br />

Referenz zu der dar<strong>auf</strong> folgenden Überprüfung der <strong>SAP</strong>-Systeme dient. Bei<br />

<strong>SAP</strong> wird das Basis-System sowohl des ABAP- als auch des JAVA-Stacks<br />

überprüft. Zusätzlich werden noch die Ergebnisse e<strong>in</strong>es Audits e<strong>in</strong>er realen<br />

Webapplikation <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> mit JAVA-Stack <strong>in</strong> kurzer Form<br />

<strong>auf</strong>gezeigt. Die Ergebnisse aus den Überprüfungen der klassischen<br />

Webapplikation und der Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> werden<br />

anschließend e<strong>in</strong>em Vergleich unterzogen und die gefundenen Ergebnisse<br />

bewertet.<br />

3.1 Webapplikationsscanner<br />

Webapplikationsscanner s<strong>in</strong>d <strong>Sicherheit</strong>swerkzeuge, die dafür entwickelt<br />

werden, Webapplikationen <strong>auf</strong> ihre <strong>Sicherheit</strong> h<strong>in</strong> zu untersuchen. Sie<br />

evaluieren dabei jede Möglichkeit zur E<strong>in</strong>gabe die die zu untersuchende<br />

Webapplikation bietet. S<strong>in</strong>d diese gefunden, wird <strong>auf</strong> jede e<strong>in</strong>e Vielzahl <strong>von</strong><br />

Anfragen gesendet, die bekannte Angriffe enthalten und die Antwort der<br />

Webapplikation dah<strong>in</strong>gehend untersucht, ob der zuvor durchgeführte<br />

Angriff erfolgreich war. Der große Vorteil e<strong>in</strong>es Webapplikationsscanners<br />

ist, dass so e<strong>in</strong>e Unmenge an Angriffsmöglichkeiten durchprobieren werden<br />

kann. Diese s<strong>in</strong>d manuell nicht zu bewältigen und bieten e<strong>in</strong>en guten ersten<br />

E<strong>in</strong>druck der zu überprüfenden Webapplikation sowie Ansatzpunkte für e<strong>in</strong>e<br />

weitergehende, manuelle Überprüfung.<br />

Die meisten klassischen Webapplikationen können <strong>von</strong> e<strong>in</strong>em Scanner gut<br />

auditiert werden und dessen Ergebnisse mit e<strong>in</strong>iger Erfahrung so<br />

angewandt werden, dass die dar<strong>auf</strong> folgende, manuelle Überprüfung<br />

zielgerichteter verl<strong>auf</strong>en kann. E<strong>in</strong> Webapplikationsscanner kann allerd<strong>in</strong>gs<br />

nicht die ganze Arbeit übernehmen und eignet sich nur für die zuvor<br />

beschriebenen Zwecke. Das Verhältnis des Zeit<strong>auf</strong>wandes zwischen e<strong>in</strong>er<br />

automatischen Überprüfung und manueller Überprüfung ist etwa 1/3 zu<br />

2/3.<br />

Damian Schlager Seite 29


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

3.2 Angriffe <strong>auf</strong> Webapplikationen<br />

3.2.1 Typische Angriffe<br />

Da e<strong>in</strong> Scanner <strong>in</strong>zwischen hoch entwickelt ist und <strong>auf</strong> Webapplikationen<br />

verschiedenster Art reagieren können soll, konnte das automatisierte Audit<br />

der Webapplikation cirobank mit Defaulte<strong>in</strong>stellungen durchgeführt werden.<br />

E<strong>in</strong>e Optimierung h<strong>in</strong>sichtlich der durchgeführten Tests wäre möglich um<br />

Zeitvorteile und akkuratere Scane<strong>in</strong>stellungen zu erhalten, ist aber <strong>in</strong><br />

diesem Fall vom Verfasser als nicht notwendig erachtet worden, da der<br />

Gew<strong>in</strong>n durch e<strong>in</strong>e Optimierung den Aufwand nicht rechtfertigt.<br />

E<strong>in</strong> eher überaschendes Ergebnis des automatisierten Audits war die hohe<br />

Zahl der false-Positives. Dass die Ergebnisse e<strong>in</strong>es solchen Scans zur<br />

Mehrheit aus false-Positives besteht, ist nicht ungewöhnlich, jedoch<br />

übersteigt hier das Verhältnis zwischen false-Positives und echten<br />

Ergebnissen den üblichen Rahmen mit hier ca. 0.2% realen Ergebnissen bei<br />

Weitem. Die Ursache für diesen ungewöhnlich hohen Anteil liegt <strong>in</strong> e<strong>in</strong>er<br />

seltenen Eigenart der Webapplikation cirobank, <strong>auf</strong> bestimmte Anfragen mit<br />

e<strong>in</strong>em HTTP Status 200 zu antworten, obwohl die angeforderte Ressource<br />

<strong>in</strong> Wahrheit nicht <strong>auf</strong> dem Server vorhanden ist. Obwohl diese Zahl<br />

zunächst e<strong>in</strong>en erhöhten Aufwand bei der Auswertung der Ergebnisse<br />

vermuten lässt, war die Auswertung letztendlich kaum hierdurch<br />

bee<strong>in</strong>trächtigt. Zum e<strong>in</strong>en lassen sich nach e<strong>in</strong>iger Erfahrung mit dem<br />

Umgang und Auswertung der Ergebnisse <strong>von</strong> automatisierten<br />

Webapplikationsaudits viele false-Positives schnell erkennen, zum anderen<br />

hat die Ursache, dass <strong>in</strong> diesem Fall die vielen false-Positives zu Stande<br />

kamen e<strong>in</strong>en Ausschluss eben dieser false-Positives sehr erleichtert, da sie<br />

<strong>in</strong> den überwiegenden Fällen <strong>in</strong> Gruppen und <strong>in</strong> derselben Anzahl <strong>auf</strong>traten.<br />

Der Abl<strong>auf</strong> des automatisierten Audits entsprach den Erwartungen. Der<br />

Scanner konnte die Webapplikation crawlen, das heißt, den enthaltenen<br />

L<strong>in</strong>ks folgen, und die gefundenen Seiten den e<strong>in</strong>gestellten <strong>Sicherheit</strong>stests<br />

unterziehen. E<strong>in</strong>e Besonderheit des WebInspect 19 ist es, dass der Scanner<br />

die gefunden Seiten sofort auditiert und das crawlen parallel weiter läuft,<br />

daher s<strong>in</strong>d die ersten Ergebnisse sehr schnell sichtbar, wie <strong>in</strong> Abbildung 5:<br />

Scan klassischer Webapplikation, bei der e<strong>in</strong>e Übersicht der l<strong>auf</strong>enden<br />

Auditierung sichtbar sit.<br />

19 https://h10078.www1.hp.com/cda/hpms/display/ma<strong>in</strong>/hpms_content.jsp?zn=bto&cp=1-11-201-<br />

200^9570_4000_100__<br />

Damian Schlager Seite 30


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 5: Scan klassischer Webapplikation<br />

Auf diesem ersten Screenshot ist das Ergebnis des Scans nach 1 M<strong>in</strong>ute<br />

und 33 Sekunden zu sehen. Auf der l<strong>in</strong>ken Seite s<strong>in</strong>d die bereits gefunden<br />

Seiten der Webapplikation, die sukzessive aktualisiert werden, sobald <strong>neue</strong><br />

Seiten gefunden werden. Daher ist auch die am rechten oberen Rand zu<br />

sehende Information „Crawl 66 of 66“ nur vorläufig und wird sich mit dem<br />

weiteren Fortgang des Audits noch erhöhen. Das Hauptfenster zeigt<br />

kontextsenitive Informationen an, hier e<strong>in</strong>e Zusammenfassung des<br />

abl<strong>auf</strong>enden Scans. Möglich s<strong>in</strong>d auch andere Informationen wie die HTTP<br />

Anfrage, Antwort etc. Im unteren Bereich werden die gefundenen<br />

<strong>Sicherheit</strong>sprobleme nach Klassen gruppiert und die Kritikalität angezeigt.<br />

Im Folgenden s<strong>in</strong>d die Ergebnisse des Scans zusammengefasst, angefangen<br />

<strong>von</strong> den bereits <strong>auf</strong> dem oben gezeigten Bild zu sehenden Ergebnissen.<br />

Directory-List<strong>in</strong>g: Es wurden verschiedene Directory-List<strong>in</strong>gs<br />

gefunden. Über Directory-List<strong>in</strong>g lassen sich häufig Informationen<br />

gew<strong>in</strong>nen, darunter Dateien, die dem Benutzer unbekannt se<strong>in</strong><br />

sollten wie Backupdateien, oder auch Informationen über den<br />

Aufbau der Applikation.<br />

Die hier gefundenen Directory-List<strong>in</strong>gs beziehen sich allerd<strong>in</strong>gs<br />

ausnahmslos <strong>auf</strong> ungefährliche Verzeichnisse wie das<br />

Standardverzeichnis /icons des Apache. E<strong>in</strong> Directory-List<strong>in</strong>g <strong>auf</strong><br />

Verzeichnisse mit relevanten Inhalten ist <strong>in</strong> diesem Fall nicht<br />

möglich.<br />

Damian Schlager Seite 31


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Cross-Site-Trac<strong>in</strong>g: Cross-Site-Trac<strong>in</strong>g ist e<strong>in</strong>e weniger bekannte<br />

Variante des Cross-Site-Script<strong>in</strong>g und wird dazu benutzt, Cookies<br />

<strong>von</strong> Opfern zu stehlen. Bei Cross-Site-Trac<strong>in</strong>g wird e<strong>in</strong>e HTTP TRACE<br />

Anfrage des Clients <strong>auf</strong> e<strong>in</strong>en Server angestoßen, <strong>von</strong> dem der<br />

Angreifer die Cookies des Opfers erhalten möchte. Aufgrund der<br />

HTTP Methode TRACE wird <strong>von</strong> diesem Server das Cookie des<br />

Clients wieder zurück gegeben und danach zum Angreifer gesendet.<br />

Dies ist <strong>in</strong> erster L<strong>in</strong>ie e<strong>in</strong> Konfigurationsproblem und kann<br />

vermieden werden, <strong>in</strong>dem die Methode HTTP TRACE <strong>auf</strong> dem<br />

Webserver verboten wird, wie es generell empfohlen wird, sofern<br />

diese Methode nicht explizit benötigt wird.<br />

Robots.txt: Die robots.txt wird verwendet, um Suchmasch<strong>in</strong>en<br />

mitzuteilen, welche Seiten e<strong>in</strong>er Internetpräsenz oder<br />

Webapplikation <strong>von</strong> den Suchmasch<strong>in</strong>en-Robots durchsucht werden<br />

sollen bzw. welche für die Suchmasch<strong>in</strong>e und damit auch normalen<br />

unbekannten Benutzern verboten ist. Da die robots.txt immer<br />

<strong>auf</strong>rufbar se<strong>in</strong> muss um sie den Suchmasch<strong>in</strong>en bekannt zu machen,<br />

ist sie natürlich auch <strong>von</strong> Angreifern e<strong>in</strong>sehbar. Im Falle <strong>von</strong> Regeln,<br />

die das Besuchen <strong>von</strong> Teilen der Internetpräsenz oder<br />

Webapplikation verbieten, kann dies dazu führen, dass ansonsten<br />

unentdeckte Verzeichnisse bekannt werden wie hier <strong>in</strong> Abbildung 6:<br />

Robots.txt. In dieser Applikation ist das Verzeichnis /adm<strong>in</strong>/ als für<br />

Suchmasch<strong>in</strong>en verboten gekennzeichnet, offenbart aber dadurch<br />

dessen Existenz.<br />

Abbildung 6: Robots.txt<br />

Miscellaneous Uncategorized Directories: Die <strong>auf</strong> dem ersten<br />

Screenshot sichtbare ‘Miscellaneous Uncategorized Directories’ s<strong>in</strong>d<br />

das erste Beispiel der vom Scanner produzierten false Positives. Es<br />

ist bei näherer Betrachtung allerd<strong>in</strong>gs schnell zu erkennen, dass die<br />

Damian Schlager Seite 32


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Ursache <strong>in</strong> diesem Fall - und mit Verl<strong>auf</strong> des Scans weiteren Fällen<br />

– die für den Scanner problematische Eigenart der Webapplikation<br />

ist, <strong>in</strong> e<strong>in</strong>igen Bereichen mit HTTP Status 200 <strong>auf</strong> ungültige Anfragen<br />

zu antworten, so dass der Scanner annehmen muss, die Anfrage<br />

war erfolgreich und die Ressource vorhanden.<br />

Bereits die nach etwa e<strong>in</strong>e<strong>in</strong>halb M<strong>in</strong>uten gefundenen Ergebnisse s<strong>in</strong>d recht<br />

typisch für die Funktion des automatisierten Scans. Auch zu diesem frühen<br />

Zeitpunkt fanden sich Ergebnisse, die richtig erkannt wurden, Ergebnisse,<br />

die sich bei näherer Betrachtung als richtig aber unkritisch herausstellten<br />

und Ergebnisse, die false-Positives darstellen.<br />

Nachfolgend s<strong>in</strong>d die weiteren, relevanten Ergebnisse <strong>auf</strong>geführt, die das<br />

automatische Audit gefunden hat.<br />

Cross-Site-Script<strong>in</strong>g: Wie <strong>in</strong> be<strong>in</strong>ahe allen Webapplikationen die<br />

überprüft werden, f<strong>in</strong>det sich auch <strong>in</strong> cirobank e<strong>in</strong>e Cross-Site-<br />

Script<strong>in</strong>g Schwachstelle. Dieser Screenshot zeigt die HTTP Antwort<br />

des Webservers <strong>auf</strong> die sehr e<strong>in</strong>fach gehaltene Attacke. Man kann <strong>in</strong><br />

Abbildung 7: Cross-Site-Script<strong>in</strong>g bei cirobank erkennen, dass die<br />

Scripttags nicht kodiert werden und daher vom Browser <strong>in</strong>terpretiert<br />

und Code ausgeführt wird.. Wie <strong>in</strong> kapitel 2.3.4 beschrieben ist dies<br />

e<strong>in</strong> Standardtest der zeigt, ob e<strong>in</strong> Angriff mittels Cross-Site-<br />

Script<strong>in</strong>g möglich ist.<br />

Abbildung 7: Cross-Site-Script<strong>in</strong>g bei cirobank<br />

Damian Schlager Seite 33


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Log<strong>in</strong>daten werden unverschlüsselt übertragen: Durch die<br />

Verwendung <strong>von</strong> HTTP als Protokoll und nicht etwa mit SSL<br />

verschlüsseltes HTTP werden die Log<strong>in</strong>daten nicht verschlüsselt<br />

übertragen. Solche Daten sollten grundsätzlich besser über HTTPS<br />

gesendet werden.<br />

Remote-File-Inclusion: Bei e<strong>in</strong>er Remote-File-Inclusion kann e<strong>in</strong><br />

Angreifer, wie <strong>in</strong> Kapitel 2.3.4 beschrieben, e<strong>in</strong>en Code <strong>auf</strong> der<br />

Webseite zur Ausführung br<strong>in</strong>gen. So kann beispielsweise e<strong>in</strong>e<br />

sogenannte Web-bzw. Php-Shell genutzt werden, die weitgehende<br />

Möglichkeiten <strong>auf</strong> dem Zielserver erlaubt.<br />

Local-File-Inclusion: Die gefundene Local-File-Inclusion basiert bei<br />

der cirobank <strong>auf</strong> demselben verwundbaren Parameter wie die<br />

Remote-File-Inclusion. Der Unterschied bei der Local-File-Inclusion<br />

ist, dass hier Dateien e<strong>in</strong>gebunden werden, die sich lokal <strong>auf</strong> dem<br />

Webserver bef<strong>in</strong>den. Dass dies nicht PHP-Dateien se<strong>in</strong> müssen, zeigt<br />

schon dieses Beispiel. Hier ist es verbunden mit den weitgehenden<br />

Leserechten des Webservers möglich, sich Dateien <strong>auf</strong> dem Server,<br />

die nicht öffentlich verfügbar se<strong>in</strong> sollten, anzeigen zu lassen. Auf<br />

dem Screenshot: Abbildung 8: Local-file-<strong>in</strong>clusion ist die E<strong>in</strong>b<strong>in</strong>dung<br />

der Unix-passwd Datei zu sehen.<br />

Sehr bemerkenswert ist hier die Fähigkeit des Scanners, Angriffe zu<br />

komb<strong>in</strong>ieren. So ist es bei cirobank nicht <strong>auf</strong> direkte Art möglich, die<br />

erwähnte /etc/passwd anzuzeigen, da e<strong>in</strong> Anzeigen <strong>von</strong> nicht html-, phpoder<br />

Bilddateien verboten wurde. Jedoch ist es möglich, die Applikation zu<br />

täuschen <strong>in</strong>dem e<strong>in</strong> NULL-Byte (%00) and den Date<strong>in</strong>amen angehängt wird,<br />

gefolgt <strong>von</strong> e<strong>in</strong>em .html. Somit ist die angeforderte Ressource für die<br />

Webapplikation e<strong>in</strong>e HTML-Datei, also erlaubt zum anzeigen, die tatsächlich<br />

gelesene Datei ist aber nicht /etc/passwd.html sonder die existierende<br />

/etc/passwd (siehe Abbildung 8: Local-file-<strong>in</strong>clusion).<br />

Diese Anfrage alle<strong>in</strong>e ist schon komplex und komb<strong>in</strong>iert verschiedene<br />

Schwachstellen, die <strong>in</strong> Webapplikationen <strong>auf</strong>treten können und zusammen,<br />

so wie hier, zu e<strong>in</strong>em realen Angriff werden. Dies zeigt, wie weit entwickelt<br />

die automatisierten Scanner <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> das Auditieren <strong>von</strong><br />

Webapplikationen bereits s<strong>in</strong>d.<br />

Damian Schlager Seite 34


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 8: Local-file-<strong>in</strong>clusion<br />

Die weiteren Ergebnisse des automatisierten Audits waren bis <strong>auf</strong> zwei<br />

Ausnahmen, die der Scanner korrekt erkannt hat, sehr schnell als False<br />

Positives erkennbar.<br />

Standardverzeichnisse: Der Scanner überprüft viele Verzeichnisse,<br />

die sich häufig Webapplikationen f<strong>in</strong>den, darunter auch adm<strong>in</strong>/.<br />

Dieses Ergebnis ist zusammen mit der gefundenen robots.txt <strong>in</strong><br />

diesem Fall redundant.<br />

PHP Fehlermeldungen: Das automatisierte Audit erzeugte viele PHP<br />

Fehlermeldungen die zeigen, welche Zeichen bei e<strong>in</strong>er E<strong>in</strong>gabe<br />

erlaubt s<strong>in</strong>d und die auch Teile der <strong>in</strong>ternen Verzeichnisstruktur<br />

offenbarten.<br />

Insgesamt hat sich gezeigt, dass das automatisierte Audit sehr gut<br />

funktioniert hat.<br />

Manuell<br />

Auch die manuelle Überprüfung zeigte e<strong>in</strong>ige der <strong>von</strong> dem automatisierten<br />

Audit gefundenen Schwachstellen. Diese Schwachstellen soll die manuelle<br />

Überprüfung nochmals verifizieren und vor Allem auch erweitern und als<br />

Basis für weitere Schritte benützen.<br />

Damian Schlager Seite 35


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Cross-Site-Script<strong>in</strong>g<br />

Die offensichtlichste Schwachstelle ist die auch vom Scanner gefundene<br />

Anfälligkeit für Cross-Site-Script<strong>in</strong>g. Auf der Weboberfläche zeigt sich diese<br />

bei E<strong>in</strong>gabe e<strong>in</strong>es Benutzernamens, der das Skript enthalten kann. Das<br />

Skript kommt dann zur Ausführung, wenn nach der E<strong>in</strong>gabe der L<strong>in</strong>k<br />

„Kennwort zurücksetzen“ aktiviert wird. Dass das Cross-Site-Script<strong>in</strong>g hier<br />

funktioniert hat schon das automatische Audit gezeigt, hier wird zur<br />

Verdeutlichung ke<strong>in</strong> Skript, sonder e<strong>in</strong> e<strong>in</strong>facher html-Verweis verwendet.<br />

Dies ist ke<strong>in</strong> Cross-Site-Script<strong>in</strong>g im engeren S<strong>in</strong>ne mehr, verdeutlicht aber<br />

die Funktionsweise dieses Fehlers und ist auch für sich genommen e<strong>in</strong><br />

weiteres Problem, das vom Scanner so nicht überprüft wurde.<br />

Der Parameter user, der sich h<strong>in</strong>ter dem Feld Benutzername’bef<strong>in</strong>det, wird<br />

hier mit ">


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

mögliche Local-File-Inclusion.<br />

Das <strong>in</strong> der robots.txt erwähnte Verzeichnis adm<strong>in</strong>/ ist durch e<strong>in</strong> Passwort<br />

geschützt. In Zusammenhang mit der File Inclusion Schwachstelle lässt sich<br />

der dazugehörige Benutzername und Passwort auslesen. Hierzu wird nicht,<br />

wie bei dem automatisierten Audit gesehen, die /etc/passwd mit dem<br />

Zusatz %00.html e<strong>in</strong>gebunden, sondern wie <strong>in</strong> Abbildung 10: Manuelle<br />

Local-File-Inclusion zu sehen die im adm<strong>in</strong>-Verzeichnis liegende .htpasswd,<br />

die Benutzernamen und Passwort enthält. Dieses ist zunächst natürlich<br />

verschlüsselt, würde sich aber im konkreten Fall mittels e<strong>in</strong>es Programms,<br />

das Passworthashes testet, schnell gefunden werden.<br />

Abbildung 10: Manuelle Local-File-Inclusion<br />

Parameter-Tamper<strong>in</strong>g<br />

Kont<strong>in</strong>uierliches Prüfen <strong>von</strong> Parametern <strong>in</strong> e<strong>in</strong>er Webapplikation ist e<strong>in</strong>e<br />

Haupt<strong>auf</strong>gabe bei deren Überprüfung. Nicht immer f<strong>in</strong>det e<strong>in</strong><br />

automatisiertes Audit auch nur Ansatzpunkte für die gezielte Veränderung<br />

<strong>von</strong> Parametern. Hier ist es oft die Erfahrung, die entscheidet, welche<br />

Parameter e<strong>in</strong>er gründlicheren Überprüfung unterzogen werden sollen und<br />

die am vielversprechendsten sche<strong>in</strong>en. Im Konkreten Fall handelt es sich<br />

um e<strong>in</strong>en Parameter, der zunächst kryptisch aussieht, sich jedoch mit<br />

hoher Wahrsche<strong>in</strong>lichkeit als Base64 Codiert identifizieren lässt. Nach<br />

Dekodierung des dem <strong>in</strong> der Webapplikation verwendeten Parameters<br />

‚dXNlcl9pZD0xNQ==’ ergibt sich ‚user_id=15’. Durch gezieltes Verändern<br />

dieser ID <strong>auf</strong> ‚user_id=1’, Base64 kodiert ‚dXNlcl9pZD0x’, wird im Menu<br />

der Webapplikation das Feld ‚Kunden’ mit ‚Adm<strong>in</strong>’ ersetzt und erlaubt den<br />

Zugang zum Adm<strong>in</strong>istrationsbereich.<br />

Damian Schlager Seite 37


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

SQL-Injection<br />

Das automatisierte Audit ergab 107 mögliche SQL-Injection<br />

Schwachstellen. Typischerweise werden bei e<strong>in</strong>em automatisierten Audit<br />

mehr H<strong>in</strong>weise <strong>auf</strong> SQL-<strong>in</strong>jection gefunden, als tatsächlich vorhanden s<strong>in</strong>d<br />

und <strong>in</strong> diesem Fall konnten alle diese Treffer schnell als False-Positives<br />

erkannt werden. Dennoch verbirgt sich e<strong>in</strong>e, für den Scanner unsichtbare,<br />

SQL-Injection Schwachstelle <strong>in</strong> der Applikation, die sich bei e<strong>in</strong>er manuellen<br />

Prüfung entdecken lässt. Bei der Webapplikation cirobank bef<strong>in</strong>det sich im<br />

Adm<strong>in</strong>istrationsbereich e<strong>in</strong> Feld für die Suche nach Benutzern, das sich<br />

schnell als für SQL-Injection verwundbar erweist. E<strong>in</strong>e E<strong>in</strong>gabe <strong>von</strong> '<br />

UNION ALL SELECT dbid, name, null, null FROM<br />

master..sysdatabases;-- anstatt e<strong>in</strong>es echten Benutzernamens führt zu<br />

e<strong>in</strong>er erweiterten Ausgabe, bei der die Datenbanken <strong>auf</strong> dem<br />

Datenbankmanagementsystem angezeigt werden. Wie <strong>in</strong> Kapitel 2.3.4<br />

beschrieben lässt sich so nach und nach e<strong>in</strong> gezielter Angriff bzw. gezieltes<br />

Auslesen <strong>von</strong> Information mittels SQL-Injection durchführen. Die <strong>in</strong> diesem<br />

Statement verwendeten ‚null’ s<strong>in</strong>d zum Auffüllen der angezeigten Spalten<br />

notwendig und e<strong>in</strong> Beispiel, wie der korrekte Aufbau e<strong>in</strong>es SQL-Injection<br />

Kommandos nach und nach herausgefunden werden kann.<br />

In Abbildung 11: SQL-Injection wurde genau dieses Kommando<br />

e<strong>in</strong>gegeben. Unterhalb der Benutzernamen s<strong>in</strong>d die Datenbanknamen zu<br />

sehen, <strong>auf</strong> die e<strong>in</strong> Zugriff über die Webapplikation ursprünglich nicht<br />

möglich se<strong>in</strong> sollte.<br />

Damian Schlager Seite 38


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 11: SQL-Injection<br />

3.3 Angriffe <strong>auf</strong> <strong>SAP</strong><br />

3.3.1 Abgrenzung der Methodik zur<br />

<strong>Sicherheit</strong>süberprüfung<br />

Das Vorgehen zur Überprüfung <strong>von</strong> Webapplikationen sollten sich nicht<br />

wesentlich unterscheiden, ungeachtet dessen, ob es sich um klassische<br />

Webapplikationen handelt oder um spezielle Webapplikationen <strong>auf</strong> Basis<br />

<strong>von</strong> <strong>SAP</strong>.<br />

Vor Anfertigung dieser Diplomarbeit gab es allerd<strong>in</strong>gs ke<strong>in</strong>erlei Kentnisse<br />

über Attacken, Anfälligkeit für Attacken oder Besonderheiten bei der<br />

Überprüfung <strong>von</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong>. Zu allen diesen<br />

Punkten wurde im Rahmen dieser Diplomarbeit viel Forschungsarbeit<br />

geleistet um die Grundlage für e<strong>in</strong>e geregelte Überprüfung <strong>von</strong><br />

Webapplikato<strong>in</strong>en <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> zu schaffen.<br />

Damian Schlager Seite 39


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Hierbei hat sich gezeigt, dass bei der Überprüfung der Webapplikationen<br />

e<strong>in</strong>es <strong>SAP</strong>-Systems zusätzliche Vorbereitungen getroffen werden müssen<br />

um e<strong>in</strong>e Überprüfung vernünftig und vollständig durchführen zu können.<br />

Die Komplexität <strong>von</strong> <strong>SAP</strong>-Systemen ist hier e<strong>in</strong>er der Hauptgründe, weshalb<br />

die <strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong>-basierten Webapplikationen kaum oder gar nicht<br />

behandelt wurde. Diese Komplexität setzt sich auch bei den<br />

Webapplikationen fort und erfordert weitere Schritte um e<strong>in</strong>e Überprüfung<br />

durchzuführen. E<strong>in</strong>e der ersten Fragen ist, welche Dienste bzw.<br />

Webapplikationen <strong>auf</strong> dem <strong>SAP</strong>-System <strong>auf</strong>rufbar s<strong>in</strong>d. Schon dies ist <strong>in</strong><br />

den meisten Fällen unbekannt und e<strong>in</strong>e e<strong>in</strong>fache Möglichkeit die tatsächlich<br />

vorhandenen Dienste zu erkennen fehlt.<br />

Daher ist der erste Schritt bei der Überprüfung der Webapplikationen e<strong>in</strong>es<br />

<strong>SAP</strong>-Systems festzustellen, welche Dienste bzw. Webapplikationen<br />

angeboten werden. Hierfür wurde zunächst e<strong>in</strong> Perl-Skript gefertigt, später<br />

dann <strong>auf</strong> e<strong>in</strong> Plug<strong>in</strong> für den auch schon bei den klassischen<br />

Webapplikationen verwendeten WebInspect geschrieben, der diese Arbeit<br />

übernimmt. Dies kann nur automatisiert durchgefürhrt werden, da die<br />

mögliche Zahl an Diensten schon bei e<strong>in</strong>er Basis<strong>in</strong>stallation ohne weitere<br />

Komponenten sehr hoch ist. Die e<strong>in</strong>zelnen <strong>von</strong> e<strong>in</strong>em <strong>SAP</strong>-System<br />

angebotenen Webapplikationen zeichnen sich durch e<strong>in</strong>e e<strong>in</strong>deutige Starturl<br />

aus. In den <strong>in</strong> dieser Diplomarbeit verwendeten <strong>SAP</strong>-Systemen der Version<br />

7.00 konnten <strong>in</strong>sgesamt über 2000 URLs identifiziert werden (Tabelle 1:<br />

Anzahl der <strong>SAP</strong> URLs).<br />

Tabelle 1: Anzahl der <strong>SAP</strong> URLs<br />

Komponente<br />

URLs<br />

ABAP-Stack: 569<br />

JAVA-STACK: Shortcuts zu anderen Applikationen 130<br />

JAVA-STACK: Webdynpro-Applikationen 390<br />

JAVA-STACK: Portal-Applikationen 1008<br />

JAVA-STACK: gesamt: 1528<br />

<strong>SAP</strong> gesamt 2097<br />

Dienste ohne Shortcuts 1976<br />

Auf Nachfrage bei Verantwortlichen ist die genaue Kenntnis darüber,<br />

welche Dienste angeboten werden nur selten vorhanden, schon daher ist<br />

Damian Schlager Seite 40


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

e<strong>in</strong> solcher Scan zum Auff<strong>in</strong>den <strong>von</strong> den entsprechenden URLs s<strong>in</strong>nvoll.<br />

Außerdem lässt sich hierdurch auch def<strong>in</strong>itiv feststellen, welche Dienste<br />

auch wirklich <strong>auf</strong>rufbar s<strong>in</strong>d, unabhängig <strong>von</strong> e<strong>in</strong>er unter Umständen nur<br />

schwer zu durchschauenden Konfiguration verschiedener Komponenten.<br />

Der Grund für die Erstellung des Skriptes bzw. des Plug<strong>in</strong>s für das Prüfen<br />

der URLs ist, dass diese nicht durch automatisches Crawlen gefunden<br />

werden können. Es ist unter Umständen nicht e<strong>in</strong>mal e<strong>in</strong> <strong>auf</strong>rufbares<br />

Rootverzeichnis vorhanden, weswegen e<strong>in</strong> automatisierter Scan gar nicht<br />

funktionieren und schon bei der ersten Seite stoppen würde. E<strong>in</strong> manuelles<br />

Audit wäre <strong>auf</strong>grund der Vielzahl an möglichen URLs wie oben erwähnt<br />

ebenfalls nicht möglich. Ebenso existieren kaum L<strong>in</strong>ks zwischen den<br />

Applikationen, so dass auch nach Kenntnis <strong>von</strong> e<strong>in</strong>igen Applikationen<br />

andere noch immer verborgen bleiben.<br />

Zusammenfassend haben also folgende Punkte zur Erstellung des Skriptes<br />

und Plug<strong>in</strong>s zur Überprüfung <strong>von</strong> <strong>SAP</strong> Systemen geführt:<br />

Mögliche URLs müssen im Vorfeld bekannt se<strong>in</strong><br />

Mögliche URLs können nicht <strong>von</strong> Hand überprüft werden<br />

Automatische Crawlen der URLs ist im Vorfeld notwendig<br />

Die Basis-URLs, die die Dienste beschreiben, müssen im Vorfeld e<strong>in</strong><br />

solches Programm e<strong>in</strong>getragen werden<br />

Soll nur e<strong>in</strong> e<strong>in</strong>zelnes System überprüft werden, bestünde auch die<br />

Möglichkeit, dass e<strong>in</strong> Adm<strong>in</strong>istrator die theoretisch <strong>auf</strong>rufbaren URLs<br />

anhand der Konfiguration ermitteln kann. Tatsächlich s<strong>in</strong>d auch<br />

verschiedene Stellen <strong>in</strong> der Konfiguration die Quellen für die URLs die <strong>in</strong><br />

das Skript und Plug<strong>in</strong> e<strong>in</strong>getragen wurden. Dennoch soll das Ziel se<strong>in</strong>, e<strong>in</strong>e<br />

häufiger anwendbare Methode zur Überprüfung zu haben, die es nicht<br />

verlangt, bei jeder Überprüfung sämtliche URLs <strong>in</strong> der Konfiguration neu<br />

herauszuziehen. Es ist ebenfalls für weitere Überprüfungen wie den<br />

automatischen Teil des Audits über z.B. WebInspect notwendig, diese URLs<br />

<strong>in</strong> e<strong>in</strong>er geeigneten Form zur Verfügung zu haben.<br />

Bei der Überprüfung der gefundenen URLs tritt e<strong>in</strong> ähnliches Phänomen <strong>auf</strong><br />

wie bei der Referenzapplikation cirobank. Während es für klassische<br />

Webapplikationen jedoch eher selten ist, dass e<strong>in</strong> HTTP Status 200 als<br />

Antwort <strong>auf</strong> nicht verfügbare Ressourcen gesendet wird, ist es bei <strong>SAP</strong> der<br />

Normalfall.<br />

Damian Schlager Seite 41


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Das zu Beg<strong>in</strong>n erstellte Perlskript, das die Überprüfung <strong>von</strong> URLs vornahm,<br />

konnte nicht unterscheiden, ob e<strong>in</strong>e Webapplikation tatsächlich verfügbar<br />

ist oder nicht. Hier hat sich die Komplexität <strong>von</strong> <strong>SAP</strong> als Lösung erwiesen,<br />

da es möglich ist <strong>SAP</strong> <strong>in</strong>sofern zu bee<strong>in</strong>flussen, dass sich das<br />

Antwortverhalten ändert. Während es, wie erwähnt, bei<br />

Standardantworten, die das <strong>SAP</strong> System <strong>auf</strong> die Anfragen zurück sendet,<br />

nicht erkannt werden kann, ob z.B. e<strong>in</strong>e Authentifizierung verlangt wird<br />

oder nicht, kann es durch die Wahl verschiedener spezieller Parameter<br />

gel<strong>in</strong>gen, das Antwortverhalten so zu bee<strong>in</strong>flussen, dass das Perlskript dies<br />

anhand der Antworten feststellen kann (siehe Kapitel 3.3.3).<br />

Die Entwicklung des Perlskriptes wurde jedoch zugunsten e<strong>in</strong>es Plug<strong>in</strong>s für<br />

WebInspekt nicht mehr weiter verfolgt. Auch mit diesem Plug<strong>in</strong> ist es<br />

möglich, die URLs des <strong>SAP</strong>-Systems zu überprüfen und bietet noch weitere<br />

Vorteile. Der größte Vorteil neben e<strong>in</strong>er besseren Benutzbarkeit und zu<br />

erwartender Akzeptanz ist, dass die URLs für die normale Arbeit <strong>von</strong><br />

WebInspect benutzt werden können. Nur so kann also der erste Teil e<strong>in</strong>er<br />

Überprüfung stattf<strong>in</strong>den, das crawlen durch den Scanner und das<br />

automatische Audit, bei dem e<strong>in</strong>e Vielzahl <strong>von</strong> Web-Attacken <strong>auf</strong> die<br />

Webapplikationen gesendet werden.<br />

Erst danach kann e<strong>in</strong>e Überprüfung stattf<strong>in</strong>den, wie sie grundsätzlich <strong>von</strong><br />

klassischen Webapplikationen bekannt ist. Allerd<strong>in</strong>gs müssen auch hierbei<br />

noch spezielle Eigenschaften <strong>von</strong> <strong>SAP</strong> beachtet werden, wie z.B. spezielle<br />

Parameter.<br />

3.3.2 Typische Angriffe<br />

Wie schon bei der klassischen Webapplikation wird auch hier zunächst e<strong>in</strong>e<br />

Vielzahl an bekannten Webapplikationsangriffen durch das Programm<br />

WebInspect durchgeführt. E<strong>in</strong>e Voraussetzung für die Funktionsfähigkeit<br />

des Programms, das für klassische Webapplikationen geschrieben wurde,<br />

ist wie <strong>in</strong> Kapitel 3.3.1 erwähnt, e<strong>in</strong> Plug<strong>in</strong>, das WebInspect ermöglicht die<br />

für die Arbeit benötigten Start-URLs zu f<strong>in</strong>den. Jede dieser URLs wird dann<br />

wie e<strong>in</strong> Rootverzeichnis <strong>auf</strong> e<strong>in</strong>em klassischen Webserver behandelt und<br />

den dar<strong>in</strong> enthaltenen L<strong>in</strong>ks zu weiteren Seiten <strong>auf</strong> diesem Server gefolgt.<br />

Auf Screenshot Abbildung 12: WebInspect Plug<strong>in</strong> ist e<strong>in</strong>e Ansicht der<br />

Regeln des bei WebInspect enthaltenen Policy Managers zu sehen, <strong>in</strong> den<br />

die zusätzlichen Prüfungen für <strong>SAP</strong> schon e<strong>in</strong>getragen s<strong>in</strong>d. E<strong>in</strong> e<strong>in</strong>zelner<br />

E<strong>in</strong>trag besteht aus der Art der des Angriffs und Prüfung, e<strong>in</strong>er<br />

Damian Schlager Seite 42


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

E<strong>in</strong>schätzung der Gefährlichkeit, sollte die Prüfung erfolgreich se<strong>in</strong>, die URL,<br />

die geprüft werden soll und der erwarteten Antwort des Servers bei Erfolg.<br />

Ergänzt wird dies durch Informationen über den gefundenen Dienst, so<br />

dass e<strong>in</strong> Anwender des Programms, der sich nicht mit den <strong>SAP</strong> Diensten<br />

auskennt, ebenfalls e<strong>in</strong>e E<strong>in</strong>schätzung vornehmen kann. Zu sehen s<strong>in</strong>d hier<br />

unter Custom Checks die ersten E<strong>in</strong>träge für den ABAP-Stack e<strong>in</strong>es <strong>SAP</strong>-<br />

Systems.<br />

Abbildung 12: WebInspect Plug<strong>in</strong><br />

Auch bei diesem Plug<strong>in</strong> wurden die <strong>SAP</strong>-spezifischen Antworten<br />

berücksichtigt. Wäre dies nicht geschehen, hätte die Überprüfung <strong>auf</strong><br />

Erreichbarkeit der <strong>SAP</strong>-Dienste e<strong>in</strong> falsches Ergebnis geliefert. Das<br />

Verhalten <strong>von</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> sieht für e<strong>in</strong>en Benutzer<br />

sowohl für den ABAP-Stack als auch für den JAVA-Stack im Wesentlichen<br />

identisch aus. Allerd<strong>in</strong>gs unterscheiden sich die <strong>von</strong> <strong>SAP</strong> zurückgesendeten<br />

Antworten im ABAP-Stack und JAVA-Stack erheblich, so dass dies <strong>von</strong> dem<br />

WebInspect Plug<strong>in</strong> ebenfalls erkannt werden muss.<br />

Bei den <strong>von</strong> WebInspect durchgeführten Angriffen ist es unabd<strong>in</strong>gbar, dass<br />

Fehlerseiten möglichst zuverlässig erkannt werden können. Hier enthält<br />

WebInspect bereits viele E<strong>in</strong>stellungen und auch e<strong>in</strong>e gewisse Intelligenz,<br />

so dass Fehlerseiten <strong>von</strong> Webapplikationen erkannt werden können.<br />

Allerd<strong>in</strong>gs erwies sich e<strong>in</strong> Teil dieser Intelligenz als unvere<strong>in</strong>bar mit dem<br />

Damian Schlager Seite 43


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Antwortverhalten <strong>von</strong> <strong>SAP</strong> Systemen. Um die Prüfung <strong>auf</strong> Fehlerseiten<br />

zuverlässig zu implementieren ist es notwendig, sowohl Returncodes zu<br />

berücksichtigen als auch den Body der Antwort <strong>auf</strong> Inhalte zu durchsuchen<br />

und diese Resultate zu komb<strong>in</strong>ieren.<br />

ABAP<br />

Bei der Prüfung des ABAP-Stacks ist die erste Auffälligkeit, dass – wie bei<br />

Teilen der Referenzapplikation cirobank – die zurückgegebenen HTTP<br />

Statuscodes nicht dem entsprechen, was durch das entsprechende RFC<br />

vorgeschlagen wird. Es wird <strong>auf</strong> be<strong>in</strong>ahe alle Anfragen e<strong>in</strong> „200 OK“ zurück<br />

gesendet, das eigentlich nur für erfolgreiche Anfragen vorgesehen ist. Hier<br />

wird jedoch auch e<strong>in</strong> „200 OK“ zurück gesendet, wenn die Ressource nicht<br />

gefunden werden kann (Abbildung 13: 200 OK - not found), obwohl hier im<br />

RFC 20 der Status-Code 404 vorgesehen ist und WebInspect dies ohne<br />

weitere Anpassungen auch so erwartet. Daher werden viele<br />

Standardprüfungen, die beispielsweise <strong>auf</strong> häufig anzutreffende Dateien<br />

oder Dateiendungen wie .bak prüfen, <strong>von</strong> WebInspect als erfolgreich<br />

angezeigt.<br />

Abbildung 13: 200 OK - not found<br />

Der ABAP-Stack des <strong>SAP</strong> NetWeaver liefert bei Anfrage <strong>auf</strong> das<br />

Rootverzeichnis e<strong>in</strong>en Fehler zurück, der ke<strong>in</strong>e weiteren L<strong>in</strong>ks <strong>auf</strong> andere<br />

Seiten be<strong>in</strong>haltet. Zur Verdeutlichung des Problems, dass WebInspect die<br />

Start-URLs der e<strong>in</strong>zelnen Dienste im Vorfeld bekannt se<strong>in</strong> muss sei <strong>in</strong><br />

Abbildung 14: WebInspect: Defaultpolicy bei <strong>SAP</strong> das Ergebnis e<strong>in</strong>es Scans<br />

ohne das Plug<strong>in</strong> <strong>auf</strong>geführt. Wie zu sehen ist, besteht der ABAP-Stack des<br />

<strong>SAP</strong> NetWeaver aus lediglich dem Rootverzeichniss, das gegen alle Angriffe<br />

immun ist.<br />

20 http://www.w3.org/Protocols/rfc2616/rfc2616.html<br />

Damian Schlager Seite 44


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 14: WebInspect: Defaultpolicy bei <strong>SAP</strong><br />

Aus diesem Grund s<strong>in</strong>d alle hier gewonnen Erkenntnisse nur mit Hilfe des<br />

Plug<strong>in</strong>s möglich, das WebInspect <strong>auf</strong> den Scan und Audit e<strong>in</strong>es <strong>SAP</strong><br />

NetWeavers vorbereitet. Unter Verwendung des Plug<strong>in</strong>s steigt die Zahl der<br />

Gefundenen URLs <strong>von</strong> 1 URL <strong>auf</strong> 22588 URLs alle<strong>in</strong>e für den ABAP Stack<br />

an, die dann überprüft werden.<br />

Das automatische Audit brachte auch unter Verwendung des Plug<strong>in</strong>s und<br />

damit nach Auditierung aller Dienste des ABAP-Stacks nur wenige, reale<br />

Ergebnisse.<br />

Auch hier s<strong>in</strong>d trotz der Anpassungen an <strong>SAP</strong> viele false-Positives, die<br />

allerd<strong>in</strong>gs auch bei automatischen Audits <strong>von</strong> klassischen Webapplikationen<br />

<strong>auf</strong>treten.<br />

Wie bereits im Vorfeld erwartet wird das standardmässig aktivierte sap<br />

<strong>in</strong>fo gefunden, das verschiedene, <strong>in</strong>terne Informationen über das <strong>SAP</strong>-<br />

System liefert. Es be<strong>in</strong>haltet detaillierte Versions<strong>in</strong>formationen des <strong>SAP</strong>-<br />

Systems und e<strong>in</strong>iger Komponenten, die <strong>in</strong>terne IP Adressen,<br />

Datenbank<strong>in</strong>formationen und <strong>in</strong>terne Systembezeichnungen, die für e<strong>in</strong>ige<br />

Funktionen benötigt werden.<br />

Als nicht kritisch s<strong>in</strong>d <strong>von</strong> WebInspect gefundene Kommentare im Quelltext<br />

e<strong>in</strong>zustufen, die sich <strong>auf</strong> e<strong>in</strong>e frühere Verwendung <strong>von</strong> Includes beziehen,<br />

die aber nicht mehr verwendet werden. Es ist technisch gesehen die<br />

Preisgabe <strong>von</strong> <strong>in</strong>ternen Informationen und des Programm<strong>auf</strong>baus, e<strong>in</strong>e<br />

tatsächliche Verwendung dieser Informationen für e<strong>in</strong>en Angriff ist aber<br />

extrem unwahrsche<strong>in</strong>lich.<br />

Damian Schlager Seite 45


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Bei der Überprüfung des ABAP-Stacks mittels WebInspect f<strong>in</strong>den sich<br />

mitunter Meldungen, die sich zunächst nicht e<strong>in</strong>deutig als reale Ergebnisse<br />

oder false-Positives erkennen. Hier ist zusätzlicher Arbeits<strong>auf</strong>wand<br />

notwendig um diese Meldungen <strong>auf</strong> Richtigkeit zu überprüfen. Hierzu<br />

gehört im Falle des überprüften <strong>SAP</strong> NetWeaver e<strong>in</strong>e mögliche SQL-<br />

Injection Schwachstelle, die wie hier zu sehen gemeldet wird (Abbildung<br />

15: Possible SQL Injection bei <strong>SAP</strong>).<br />

Abbildung 15: Possible SQL Injection bei <strong>SAP</strong><br />

Grund für diese Meldung ist der Parameter: sap-system-log<strong>in</strong>on<strong>in</strong>putprocess<strong>in</strong>g=onChangePwd'+OR,<br />

der mit e<strong>in</strong>em SQL-Injection<br />

Testpattern belegt wurde und die dar<strong>auf</strong> folgende Antwort des <strong>SAP</strong>-<br />

Systems aus e<strong>in</strong>er Fehlermeldung bestand, die nicht zu den häufig<br />

anzutreffenden Standardfehlerseiten gehört.<br />

Meldungen dieser Art des WebInspects s<strong>in</strong>d e<strong>in</strong> Beispiel für die Grenzen <strong>von</strong><br />

automatisierten Tests. Obowhl die Voraussetzung für WebInspect anhand<br />

des Resultates <strong>auf</strong> e<strong>in</strong>e mögliche SQL-Injection Schwachstelle gegeben<br />

s<strong>in</strong>d, zeigte sich auch <strong>in</strong> diesem Fall nach weiteren Prüfungen, dass es sich<br />

um e<strong>in</strong> false-Positive handelt. E<strong>in</strong>e E<strong>in</strong>schleußung <strong>von</strong> SQL-Anweisungen ist<br />

hier nicht möglich. Darüber h<strong>in</strong>aus handelt es sich hier um e<strong>in</strong>e<br />

beabsichtige Fehlerseite, die <strong>auf</strong>grund e<strong>in</strong>er fehlgeschlagenen<br />

E<strong>in</strong>gabeprüfung angezeigt wird, und die nicht nur <strong>auf</strong> Versuche für SQL-<br />

Injection reagiert, sondern e<strong>in</strong>e allgeme<strong>in</strong>e E<strong>in</strong>gabeprüfung darstellt. Daher<br />

sollten auch <strong>in</strong> Zukunft Meldungen über mögliche SQL-Injection<br />

Schwachstellen <strong>in</strong> <strong>SAP</strong> kritisch betrachtet werden.<br />

Damian Schlager Seite 46


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Die meisten gefundenen Schwachstellen beziehen sich <strong>auf</strong> die Möglichkeit,<br />

<strong>in</strong>terne Informationen über das <strong>SAP</strong>-System e<strong>in</strong>zusehen. Über verschiedene<br />

Dienste können so detaillierte Informationen über das <strong>SAP</strong>-System, wie<br />

verschiedenste Versionsstände und <strong>in</strong>terne IP-Adressen z.B. über<br />

sap_<strong>in</strong>fo, als auch bei dem <strong>SAP</strong>-System <strong>auf</strong>rufbare, zusätzliche URLs z.B.<br />

über icf_<strong>in</strong>fo/urlprefix abgefragt werden.<br />

PORTAL<br />

Der Abl<strong>auf</strong> des automatischen Audits des JAVA-Stacks des <strong>SAP</strong> NetWeavers<br />

ist gleich und geschieht mit den gleichen Voraussetzungen wie mit dem<br />

ABAP-Stack. Auch hier zeigen sich die Grenzen des automatischen Audits,<br />

das bei klassischen Webapplikationen sehr gut funktioniert. Im Gegensatz<br />

zum ABAP-Stack würde e<strong>in</strong> Start des WebInspects mit den<br />

Standarde<strong>in</strong>stellungen ohne Plug<strong>in</strong> e<strong>in</strong>ige Seiten und Applikationen<br />

auditieren, da hier e<strong>in</strong> Teil des Inhalts ausgehend <strong>von</strong> dem Rootverzeichnis<br />

verl<strong>in</strong>kt ist. Dies ist jedoch nur e<strong>in</strong> Teil der Applikationen, daher ist auch<br />

hier die Benutzung des Plug<strong>in</strong>s mit den vore<strong>in</strong>gestellten Applikationen und<br />

weiteren E<strong>in</strong>stellungen notwendig, um sich e<strong>in</strong> Gesamtbild verschaffen zu<br />

können.<br />

Ebenso wie beim ABAP-Stack verhält sich der <strong>SAP</strong> NetWeaver auch hier<br />

nicht RFC-konform, <strong>in</strong>dem er <strong>auf</strong> nicht verfügbare Ressourcen mit e<strong>in</strong>em<br />

Statuscode „200 OK“ antwortet. Des Weiteren s<strong>in</strong>d beim JAVA-Stack<br />

wesentlich mehr Fehlermeldungen des Servers zu verzeichnen. E<strong>in</strong><br />

vollständiges, automatisches Audit aller <strong>auf</strong> <strong>SAP</strong> NetWeaver mit JAVA-Stack<br />

verfügbaren Applikationen ist kaum möglich, da es e<strong>in</strong>e viel zu lange Zeit <strong>in</strong><br />

Anspruch nimmt ohne erkennbar <strong>neue</strong> Ergebnisse zu liefern. Auf dem<br />

folgenden Screenshot (Abbildung 16: False-Positives bei <strong>SAP</strong>) ist zu<br />

erkennen, dass das Audit zu diesem Zeitpunkt schon 3GB an Antwortdaten<br />

zu verarbeiten hat und die Anzahl der gefunden Schwachstellen mit über<br />

37000 unrealistisch hoch ist. Der Grund für diese hohe Zahl ist im unteren<br />

Teil des Bildes zu erkennen, wo gleich mehrere Gruppen mit<br />

Schwachstellen <strong>auf</strong>geführt werden, die an 117 Stellen gefunden wurden<br />

und bei denen es sich offensichtlich um false-Positives handelt.<br />

Damian Schlager Seite 47


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 16: False-Positives bei <strong>SAP</strong><br />

In diesem Zusammenhang zeigt sich wiederum auch, dass die Ergebnisse<br />

des automatischen Audits generell manuell verifiziert werden sollten, da<br />

auch wie im folgenden Fall Prüfungen nicht gründlich durchgeführt werden.<br />

Hier (Abbildung 17: Beispiel false-Positive) wurde das < und > <strong>in</strong> der<br />

Antwort durch &lt; und &gt; codiert, wodurch der hier als erfolgreich<br />

gemeldete Angriff nicht funktionieren würde.<br />

Abbildung 17: Beispiel false-Positive<br />

Das im Falle e<strong>in</strong>er Basis<strong>in</strong>stallation des <strong>SAP</strong> Netweaver JAVA-Stacks wie <strong>in</strong><br />

dieser Diplomarbeit e<strong>in</strong>zige nennenswerte Ergebnis trotz der zahlreichen<br />

Applikatonen, die das System anbietet, ist die Offenlegung <strong>in</strong>terner Pfade<br />

und Informationen, wie Abbildung 18: Interne Pfade zu sehen.<br />

Damian Schlager Seite 48


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 18: Interne Pfade<br />

Dass durch das automatische Audit nur so wenige Schwachstellen gefunden<br />

wurden, wurde im Vorfeld nicht erwartet. Unter anderem <strong>auf</strong> Backtraces<br />

<strong>von</strong> diversen Fehlermeldungen, die die Prüfungen des Programms<br />

verursacht haben ist zu sehen, dass bei der Verarbeitung <strong>auf</strong> dem JAVA<br />

Stack auch immer <strong>Sicherheit</strong>skomponenten <strong>in</strong>tegriert s<strong>in</strong>d, die dann z.B.<br />

auch dafür sorgen, dass wie oben gesehen, Tags codiert werden.<br />

Es kann bereits jetzt gesagt werden, dass für Applikationen <strong>auf</strong> Basis des<br />

JAVA Stacks tatsächlich die korrekt vergebenen Berechtigungen e<strong>in</strong>e<br />

wesentliche Rolle spielen. Gerade hier ist auch das WebInspekt Plug<strong>in</strong> e<strong>in</strong>e<br />

gute Methode, um die korrekte Rechtevergabe zu überprüfen. Durch<br />

Angabe <strong>von</strong> ke<strong>in</strong>em Benutzer, unpriviligierten Benutzer etc. <strong>in</strong>nerhalb des<br />

WebInspects kann so, auch ohne automatisches Audit, <strong>in</strong>nerhalb <strong>von</strong><br />

M<strong>in</strong>uten festgestellt werden, ob Benutzergruppen eventuell <strong>auf</strong><br />

Applikationen zugreifen können, die nur für höher priviligierte Benutzer<br />

zugänglich se<strong>in</strong> sollten.<br />

Dass diese durch den <strong>SAP</strong> NetWeaver JAVA gegebene <strong>Sicherheit</strong><br />

ke<strong>in</strong>eswegs allgeme<strong>in</strong>gültig ist, ist <strong>in</strong> Kapitel 3.3.4 beschrieben, bei der<br />

kurz <strong>auf</strong> die Auswirkungen <strong>von</strong> Architekturen e<strong>in</strong>gegangen wird, bei denen<br />

<strong>SAP</strong> NetWeaver nur e<strong>in</strong>en Teil der Verarbeitungsschritte <strong>von</strong> Anfragen und<br />

Antworten übernimmt.<br />

Damian Schlager Seite 49


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

3.3.3 Manuelle Überprüfung und weitere<br />

Ansatzpunkte für Angriffe<br />

Die manuelle Überprüfung muss bei jedem Audit durchgeführt werden,<br />

unabhängig da<strong>von</strong>, ob es sich um e<strong>in</strong> Audit e<strong>in</strong>es <strong>SAP</strong> NetWeaver handelt<br />

oder um e<strong>in</strong>e spezielle Applikation, die <strong>auf</strong> dem NetWeaver ausgeführt<br />

wird.<br />

Im Rahmen dieser Diplomarbeit wurde besonderen Wert dar<strong>auf</strong> gelegt,<br />

sowohl Aussagen über Anfälligkeiten für Angriffe treffen zu können, als<br />

auch bislang unbekannte Ansatzpunkte zu entwickeln, die sich so bei<br />

klassischen Webapplikationen nicht f<strong>in</strong>den. Da über diese <strong>neue</strong>n<br />

Ansatzpunkte bislang nichts bekannt ist, wurde hier viel Arbeit während der<br />

Durchführung dieser Diplomarbeit <strong>in</strong>vestiert.<br />

Cross-Site-Script<strong>in</strong>g<br />

Cross-Site-Script<strong>in</strong>g ist, wie die meisten der entdeckten<br />

<strong>Sicherheit</strong>sprobleme, vor Allem bei <strong>SAP</strong> NetWeaver <strong>auf</strong> ABAP Basis zu<br />

f<strong>in</strong>den. Es ist gleichzeitig e<strong>in</strong> Thema, das bei <strong>SAP</strong> sehr wohl als Problem<br />

erkannt wurde und für das auch zunehmend Lösungsmöglichkeiten gesucht<br />

und implementiert werden. Verschiedene Tests mit dem zusätzlich<br />

<strong>in</strong>stallierten <strong>SAP</strong> NetWeaver mit ABAP-Stack <strong>in</strong> der Version 640 zeigten,<br />

dass es hier deutliche Fortschritte gibt und <strong>in</strong> Version 700 weniger<br />

Möglichkeiten zur Durchführung <strong>von</strong> Cross-Site-Script<strong>in</strong>g bestehen.<br />

Bei <strong>SAP</strong> besteht häufig die sonst seltene Möglichkeit, Cross-Site-Script<strong>in</strong>g<br />

als Teil der URL und nicht als GET oder POST Parameter zu verwenden. E<strong>in</strong><br />

sehr e<strong>in</strong>faches Beispiel f<strong>in</strong>det sich <strong>in</strong> der ABAP Applikation /sap/cachetest.<br />

Ruft man diese Applikation mit Hilfe der URL<br />

/sap/bc/cachetest/alert(‘XSS’) <strong>auf</strong>, wird bei e<strong>in</strong>em<br />

<strong>SAP</strong> NetWeaver <strong>in</strong> der Version 640 dieses Script tatsächlich ausgeführt und<br />

<strong>in</strong> diesem Fall die Alertbox angezeigt. In Version 700 hat <strong>SAP</strong> e<strong>in</strong>en HTTP<br />

Filter e<strong>in</strong>gebaut, der auch vor Cross Site Script<strong>in</strong>g schützen soll. E<strong>in</strong>e<br />

E<strong>in</strong>gabe <strong>von</strong> /sap/bc/cachetest/alert(‘XSS’) hier<br />

führt zu e<strong>in</strong>er „Access denied“ Fehlermeldung (Abbildung 19: Neuer HTTP<br />

Filter):<br />

Damian Schlager Seite 50


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 19: Neuer HTTP Filter<br />

Dass bei <strong>SAP</strong> die <strong>Sicherheit</strong> ihrer Produkte und hierbei auch Cross-Site-<br />

Script<strong>in</strong>g bei der Webapplikationssicherheit e<strong>in</strong>e zunehmende Bedeutung<br />

gew<strong>in</strong>nt, spielt sicherlich e<strong>in</strong>e Rolle dabei, dass das automatische Audit<br />

ke<strong>in</strong>e verwertbaren Cross-Site-Script<strong>in</strong>g Schwachstellen gefunden hat und<br />

auch hier bei der manuellen Prüfung die Ausnutzung erschwert wird.<br />

Dies bedeutet allerd<strong>in</strong>gs nicht, dass die Probleme behoben s<strong>in</strong>d, es wird<br />

zwar die E<strong>in</strong>gabe <strong>von</strong> Tags and dieser Stelle<br />

verh<strong>in</strong>dert, aber dies deckt nicht alle Möglichkeiten ab Cross-Site-Script<strong>in</strong>g<br />

Schwachstellen auszunutzen und ist außerdem noch applikationsabhängig.<br />

Es ist daher beispielsweise <strong>in</strong> der Komponente<br />

/sap/bc/bsp/sap/btf_ext_demo auch weiterh<strong>in</strong> möglich, mit Hilfe dieser<br />

bekannten Tags Cross-Site-Script<strong>in</strong>g durchzuführen (Abbildung 20: Cross-<br />

Site-Script<strong>in</strong>g bei <strong>SAP</strong>).<br />

Abbildung 20: Cross-Site-Script<strong>in</strong>g bei <strong>SAP</strong><br />

Es ist also durchaus e<strong>in</strong>e Verbesserung mit <strong>neue</strong>ren Versionen zu<br />

verzeichnen, aber dies kann das Ausnutzen <strong>von</strong> Cross-Site-Script<strong>in</strong>g<br />

Damian Schlager Seite 51


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Schwachstellen nicht grundsätzlich verh<strong>in</strong>dern, weil z.B. auch gründliche<br />

Programmierung aller Applikationen notwendig ist.<br />

Des Weiteren ist auch wie <strong>in</strong> Kapitel 2.3.4 beschrieben die E<strong>in</strong>gabe <strong>von</strong><br />

Schadcode nicht die e<strong>in</strong>zige Möglichkeit für Cross-Site-<br />

Script<strong>in</strong>g. Die Filterung, die <strong>SAP</strong> NetWeaver durchführt ist unvollständig<br />

und kann so bei e<strong>in</strong>igen Applikationen e<strong>in</strong> Cross-Site-Script<strong>in</strong>g nicht<br />

verh<strong>in</strong>dern. Es wird das tag herausgefiltert, allerd<strong>in</strong>gs ist das<br />

tag für Cross-Site-Script<strong>in</strong>g wie erwähnt nicht zw<strong>in</strong>gend.<br />

So kann z.B. <strong>in</strong> der <strong>SAP</strong> Webgui auch <strong>in</strong> der <strong>neue</strong>n Version 700 e<strong>in</strong> Cross-<br />

Site-Script<strong>in</strong>g erzeugt werden, <strong>in</strong>dem der Parameter<br />

~webguiuserareaheight wie im Folgenden Beispiel belegt wird:<br />

/sap/bc/gui/sap/its/webgui/?~webguiuserareaheight="> Diese E<strong>in</strong>gabe liefert ebenfalls<br />

e<strong>in</strong>en Proof-of-Concept, dass Cross-Site-Script<strong>in</strong>g hier funktioniert.<br />

Standardaccounts<br />

Als e<strong>in</strong> überaschend grosses Problem haben sich die Standardaccounts bei<br />

<strong>SAP</strong>-Systemen erwiesen. Bei klassischen Webapplikationen ist die Sorge,<br />

dass Benutzernamen oder Passwörter leicht zu erraten oder zu e<strong>in</strong>fach<br />

gestaltet s<strong>in</strong>d, überall verwendete, bekannte Benutzernamen –<br />

Passwortkomb<strong>in</strong>ationen f<strong>in</strong>det man selten. Im Gegensatz dazu ist vor Allem<br />

beim ABAP-Stack die Verwendung <strong>von</strong> bekannten Standardaccounts üblich.<br />

Da diese Accounts unter Umständen den kompletten Zugriff <strong>auf</strong> das <strong>SAP</strong>-<br />

System erlauben, müssen diese nach der Installation unbed<strong>in</strong>gt deaktiviert<br />

werden. Bei <strong>SAP</strong> NetWeaver JAVA wurde <strong>auf</strong> Standardaccounts<br />

überwiegend verzichtet. Trotzdem können auch hier automatisch generierte<br />

Benutzernamen für verschiedene Zwecke hergeleitet werden, da der<br />

dynamische Anteil der Systemname des <strong>SAP</strong>-Systems ist, der unter<br />

Umständen ausgelesen werden kann. Tabelle 2: <strong>SAP</strong> Standardaccounts<br />

bietet e<strong>in</strong>e kurze Übersicht über die bekanntesten Standardaccounts.<br />

Damian Schlager Seite 52


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Tabelle 2: <strong>SAP</strong> Standardaccounts<br />

Mandant Username Passwort<br />

000, 001, 066 und alle <strong>neue</strong>n<br />

Mandanten (002 bis 999)<br />

<strong>SAP</strong>*<br />

000, 001 DDIC 19920706<br />

06071992 oder PASS<br />

000 TMSADM PASSWORD<br />

066 EARLYWATCH SUPPORT<br />

000 <strong>SAP</strong>CPIC Adm<strong>in</strong><br />

SDM<br />

J2EE_ADM_<br />

J2EE_GST_<br />

Sdm<br />

<strong>SAP</strong>* ist hierbei sogar e<strong>in</strong> Sonderfall, da der Account automatisch wieder<br />

mit dem Standardpasswort neu generiert wird, sollte versucht werden ihn<br />

zu löschen 21 .<br />

ITS Parameter<br />

Der ITS akzeptiert selbst e<strong>in</strong>ige Parameter, die als HTTP GET Parameter an<br />

URLs angefügt werden können. Dabei können vor allem verschiedene<br />

Clientparameter bee<strong>in</strong>flusst werden, aber auch das Verhalten des ITS.<br />

Parameter: sap-client<br />

Hiermit kann die Clientnummer bee<strong>in</strong>flusst werden, mit der sich der<br />

Benutzer oder das Programm am Server anmeldet. Gerade dieser<br />

Parameter hat sich als e<strong>in</strong>e der schwerwiegendsten Probleme<br />

herausgestellt, da hierüber e<strong>in</strong> Teil der Benutzerauthentifizierung<br />

umgangen werden kann.<br />

Dieser Parameter kann dazu verwendet werden, sich mit bekannten<br />

Benutzern anzumelden, die unter e<strong>in</strong>er anderen Clientnummer registriert<br />

s<strong>in</strong>d. E<strong>in</strong> Beispiel hierfür ist die Verwendung <strong>von</strong> sap-client=066, was den<br />

Mandanten für die Wartung des <strong>SAP</strong>-Systems darstellt. Mit Verwendung<br />

dieses Parameters können sich dann Benutzer anmelden, die bei den für die<br />

Applikation vorgesehenen, produktiven Mandanten nicht verfügbar wären.<br />

Bei dem <strong>SAP</strong> Mandanten 066 ist e<strong>in</strong>e Anmeldung als der Standardbenutzer<br />

EARLYWATCH möglich, der <strong>auf</strong> vielen System nicht deaktiviert wurde.<br />

21 Es muss zuerst der Log<strong>in</strong>parameter log<strong>in</strong>/no_automatic_user_sapstar <strong>auf</strong> e<strong>in</strong>en Wert größer 0<br />

gesetzt werden. Erst nachdem dies geschehen ist kann die user ID gelöscht werden. Somit wird der<br />

user <strong>SAP</strong>* mit Standardpasswort nicht mehr automatisch generiert, wenn er aus der Datenbank<br />

gelöscht wird. (Quelle:<br />

http://searchsap.techtarget.com/generic/0,295582,sid21_gci1167162,00.html)<br />

Damian Schlager Seite 53


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Dieser Paramter bzw. Angriff kann sehr e<strong>in</strong>fach verwendet werden, sehr<br />

weitreichende Systemrechte zu gew<strong>in</strong>nen. Darüber h<strong>in</strong>aus wird unter<br />

Umständen die Verfügbarkeit des Supportclienten verlangt um Support zu<br />

bekommen, was die E<strong>in</strong>trittswahrsche<strong>in</strong>lichkeit dieses Angriffs stark erhöht.<br />

Parameter: sap-log<strong>in</strong>-method<br />

Festlegung der Authentifizierungsmethode, hier kann z.B. http_basic<br />

e<strong>in</strong>getragen werden, um e<strong>in</strong>e Basic-Authentifizierung zu erzw<strong>in</strong>gen. Dieser<br />

Parameter wurde im Rahmen dieser Diplomoarbeit <strong>in</strong> Komb<strong>in</strong>ation mit dem<br />

folgenden sap-log<strong>in</strong>-basic_auth verwendet.<br />

Parameter: sap-log<strong>in</strong>-basic_auth<br />

Mittels sap-log<strong>in</strong>-basic_auth=X wird dem Server mitgeteilt, dass e<strong>in</strong>e<br />

Authentifizierung bereits stattgefunden hat, und sich die Daten <strong>in</strong> e<strong>in</strong>em<br />

Cookie bef<strong>in</strong>den, das mitgeschickt wird. Damit ist der Benutzer zwar nicht<br />

automatisch angemeldet, weil ke<strong>in</strong>e Sessiondaten übertragen werden, aber<br />

damit ist es möglich, die normale Authentifizierungsseite zu umgehen, und<br />

e<strong>in</strong>e Basic-Authentifizierung auszulösen.<br />

Nützlich war diese Eigenschaft, um die <strong>SAP</strong>-Server skriptbasiert<br />

dah<strong>in</strong>gehend zu testen, ob e<strong>in</strong> Dienst e<strong>in</strong>e weiter gehende Authentifizierung<br />

verlangt oder nicht, da diese Information <strong>auf</strong> diese Weise über den HTTP-<br />

Status Code erlangt werden kann.<br />

Anzeige des Quellcodes<br />

Der ABAP-Stack br<strong>in</strong>gt e<strong>in</strong>e Funktion zum Debuggen <strong>von</strong> Programmfehlern.<br />

In Fällen, bei denen e<strong>in</strong> Programmfehler provoziert werden kann, werden<br />

also als Antwort detaillierte Informationen ausgegeben, wie der Fehler<br />

entstand mitsamt verschiedenen Daten des darunter liegenden <strong>SAP</strong><br />

Systems. Dies geht so weit, dass der Quellcode mit angegeben wird, sollte<br />

e<strong>in</strong> Programmfehler <strong>auf</strong>treten.<br />

Damian Schlager Seite 54


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 21: Source Code Disclosure<br />

Im vorliegenden Fall (Abbildung 21: Source Code Disclosure) be<strong>in</strong>haltet die<br />

Zeile REPLACE ‚/N’ IN SECTION OFFSET 0 LENGTH 2 OF TCODESTR WITH<br />

‚’ IN CHARACTER MODE IGNORING CASE e<strong>in</strong>en Fehler, der die Möglichkeit<br />

bietet, e<strong>in</strong>e E<strong>in</strong>gabe zu tätigen, die das Programm nicht verarbeiten kann. 22<br />

Der hier vorliegende, konkrete Fall ist nicht kritisch, es zeigt aber, dass e<strong>in</strong><br />

System <strong>auf</strong> ABAP Basis per Design die Möglichkeit bereitstellt, den<br />

Quellcode mitsamt e<strong>in</strong>iger detaillierter System<strong>in</strong>formationen e<strong>in</strong>zusehen. Es<br />

kann nicht ausgeschlossen werden, dass andere Programme, oder auch nur<br />

bei Unternehmen übliche Anpassungen bestehender Programme wichtige<br />

Informationen enthalten, daher sollte e<strong>in</strong>e Anzeige des Quellcodes <strong>von</strong><br />

Programmen niemals für anonyme oder unpriviligerte Benuter möglich se<strong>in</strong>.<br />

22 Um dieser Fehler auszunutzen müssen 2 Parameter gesetzt werden. Zum e<strong>in</strong>en muss der<br />

Parameter ~transaction nicht belegt se<strong>in</strong>, wie <strong>in</strong> Zeile 66 und 67 zu lesen ist. Ist dies gegeben, wird<br />

der Parameter ~okcode ausgewertet, der im normalen Betrieb immer 2 oder mehr Zeichen enthält.<br />

Da es sich um sowohl um ~transaction als auch ~okcode um normale HTTP GET Parameter handelt,<br />

kann manuell sehr e<strong>in</strong>fach auch nur e<strong>in</strong>e Stelle e<strong>in</strong>gegeben werden. Der eigentliche Programmfehler<br />

tritt dann wie oben erwähnt <strong>in</strong> den Zeilen 78/79 <strong>auf</strong>, wo versucht wird, 2 Zeichen des Parameters<br />

~okcode zu entfernen. S<strong>in</strong>d hier weniger als 2 Zeichen enthalten, fürt dies zu der Debugausgabe.<br />

Damian Schlager Seite 55


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

3.3.4 Heterogene Systeme<br />

Architekturbeispiel<br />

Während der Bearbeitung dieser Diplomarbeit bestand für den Verfasser die<br />

Möglichkeit, e<strong>in</strong>e Webapplikation zu auditieren, die <strong>auf</strong> dem <strong>SAP</strong> NetWeaver<br />

JAVA <strong>auf</strong>setzt, jedoch aus verschiedenen Komponenten besteht, die <strong>in</strong><br />

Abbildung 22:Aufbau e<strong>in</strong>er heterogenen Umgebung <strong>in</strong> vere<strong>in</strong>fachter Form<br />

beschrieben werden. So waren an dem Aufbau der Webapplikation <strong>SAP</strong>,<br />

Apache und Tomcat beteiligt. Die Details dieser Überprüfung s<strong>in</strong>d<br />

selbstverständlich nicht öffentlich, doch konnten diese Ergebnisse <strong>in</strong> kurzer<br />

und anonymisierter Form <strong>in</strong> diese Diplomarbeit mit übernommen werden<br />

um Aussagen über die <strong>Sicherheit</strong> <strong>von</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong><br />

zu belegen. Die Auditierung dieser Applikation zeigte Schwachstellen <strong>auf</strong>,<br />

die durch die Überprüfung des <strong>SAP</strong> NetWeavers JAVA für diese Diplomarbeit<br />

nur ansatzweise zu erkennen waren.<br />

Die Authentifizierung der Benutzer wurde <strong>in</strong> diesem Beispiel getrennt<br />

hier<strong>von</strong> durch e<strong>in</strong> spezielles <strong>Sicherheit</strong>sprodukt vorgenommen.<br />

Abbildung 22:Aufbau e<strong>in</strong>er heterogenen Umgebung<br />

Damian Schlager Seite 56


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Die relevanten Zugriffe erfolgten zunächst, durch e<strong>in</strong>en Apache im reverseproxy-Modus<br />

mit mod_security geschützt, <strong>auf</strong> e<strong>in</strong>en <strong>SAP</strong> NetWeaver. Von<br />

e<strong>in</strong>er dort <strong>in</strong>stalllierten Komponente wurden die Anfragen zu e<strong>in</strong>em Apache<br />

mit Tomcat weitergeleitet, <strong>auf</strong> dem wiederum e<strong>in</strong> Plug<strong>in</strong> für diese<br />

zusätzliche <strong>SAP</strong>-Komponente aktiviert war. Als letzter Schritt wurde dann<br />

<strong>auf</strong> e<strong>in</strong>em weiteren <strong>SAP</strong> System die weitere Verarbeitung übernommen und<br />

auch der Zugriff <strong>auf</strong> e<strong>in</strong>e Datenbank vorgenommen, die u.a. sensible<br />

Kundendaten enthielt. Es entstand also e<strong>in</strong>e Architektur, die sich dem<br />

Client als Mischarchitektur <strong>von</strong> <strong>SAP</strong> NetWeaver JAVA und klassischer<br />

Webapplikation über Tomcat darstellte.<br />

Die <strong>in</strong> diesem Beispiel auditierte Applikation war relativ kle<strong>in</strong> und, da <strong>auf</strong><br />

<strong>in</strong>terne <strong>SAP</strong>-Datenbestände zugegriffen wurde, speziell und gründlich<br />

abgesichert, was im Vorfeld ke<strong>in</strong>e große Anzahl an Funden <strong>von</strong><br />

Gefährdungen erwarten ließ. Dennoch zeichnet dieses Beispiel e<strong>in</strong><br />

ernüchterndes Bild <strong>von</strong> der zuvor an e<strong>in</strong>em re<strong>in</strong>en <strong>SAP</strong>-System überprüften<br />

<strong>Sicherheit</strong> <strong>von</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong>.<br />

Es lassen sich aus dieser Überprüfung vier signifikante Ergebnisse<br />

erkennen, die sich aus falscher Konfiguration des <strong>SAP</strong>-Systems, mögliches<br />

Cross-Site-Script<strong>in</strong>g, und Parameter-Tamper<strong>in</strong>g zusammen setzen.<br />

Die fehlerhafte Konfiguration e<strong>in</strong>es beteiligten <strong>SAP</strong>-Systems führte zur<br />

Preisgabe der verwendeten Version und, als kritischer zu betrachten, der<br />

Möglichkeit <strong>von</strong> Directory-List<strong>in</strong>gs (Abbildung 23: Directory-List<strong>in</strong>g mit<br />

Versionsangabe).<br />

Abbildung 23: Directory-List<strong>in</strong>g mit Versionsangabe<br />

Durch dieses Directory-List<strong>in</strong>g konnten verschiedenste Dateien<br />

heruntergeladen werden und war nicht <strong>auf</strong> dieses Verzeichnis beschränkt.<br />

Cross-Site-Script<strong>in</strong>g war hier gleich an mehreren Stellen möglich. So war<br />

durch die E<strong>in</strong>gabe <strong>von</strong><br />

"onload=javascript:alert(document.cookie)>


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

dieser Applikation angezeigt (Abbildung 24: Cross-Site-Script<strong>in</strong>g <strong>in</strong><br />

Parameter).<br />

Abbildung 24: Cross-Site-Script<strong>in</strong>g <strong>in</strong> Parameter<br />

E<strong>in</strong> weiteres Cross-Site-Script<strong>in</strong>g wurde <strong>in</strong> e<strong>in</strong>er für klassische<br />

Webapplikationen <strong>in</strong> dieser Form nicht bekannten Variante gefunden. Hier<br />

war die E<strong>in</strong>gabe <strong>von</strong> zwei Slashes (//) am Ende der URL notwendig gefolgt<br />

<strong>von</strong> dem Angriffspattern. In diesem Fall ergab sich e<strong>in</strong> Angriffsmuster <strong>von</strong><br />

der URL:<br />

https://..../xxxter//">alert(document.cookie).<br />

Auch hier wurden alle gültigen Cookies preisgegeben und die Mölichkeit des<br />

Cross-Site-Script<strong>in</strong>gs erwiesen.<br />

E<strong>in</strong> schwerwiegender Fehler war <strong>in</strong> dieser Applikation, dass es möglich war,<br />

e<strong>in</strong>en Parameter zu verändern, der die Ausgabe der Applikation<br />

bee<strong>in</strong>flusste. Durch gezieltes Verändern dieses Parameters war es möglich,<br />

<strong>auf</strong> e<strong>in</strong>en Teil der <strong>in</strong> der <strong>in</strong>ternen Datenbank h<strong>in</strong>terlegten Daten<br />

zuzugreifen, die zu anderen Benutzern gehörten. Die Eigenschaft der<br />

Applikation, <strong>auf</strong> die Veränderung des Parameters mit der Herausgabe <strong>von</strong><br />

benutzerfremden Daten zu reagieren war hierbei <strong>auf</strong> e<strong>in</strong>en Fehler bei <strong>SAP</strong><br />

zurückzuführen.<br />

Die Überprüfung e<strong>in</strong>es im E<strong>in</strong>satz bef<strong>in</strong>dlichen <strong>SAP</strong>-Systems <strong>auf</strong> JAVA Basis<br />

hat also reale Schwächen <strong>auf</strong>gezeigt, die auch, wie <strong>in</strong> diesem Fall, den<br />

Livegang e<strong>in</strong>er Applikation die zuvor h<strong>in</strong> H<strong>in</strong>blick <strong>auf</strong> <strong>Sicherheit</strong> entwickelt<br />

wurde zu verzögern.<br />

3.4 Vergleich der Ergebnisse<br />

Bei der klassischen Webapplikation waren die Ergebnisse so zu erwarten.<br />

Auch wenn es sich nur um e<strong>in</strong>e Beispielapplikation handelte, so konnte<br />

doch gezeigt werden, dass schon das automatische Audit sehr gute<br />

Ergebnisse liefern konnte, die durch e<strong>in</strong>e manuelle Nacharbeit, wie sie auch<br />

üblich ist, vervollständigt werden konnte. Die Ergebnisse bel<strong>auf</strong>en sich <strong>von</strong><br />

unkritischen, kle<strong>in</strong>en Fehlern <strong>in</strong> der Konfiguration wie bei den Directory-<br />

List<strong>in</strong>gs, über Cross-Site-Script<strong>in</strong>g bis h<strong>in</strong> zu SQL-Injection und damit<br />

Damian Schlager Seite 58


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

direktem Zugriff <strong>auf</strong> die Datenbank. Diese Ergebnisse waren relativ e<strong>in</strong>fach<br />

zu erreichen, da sowohl das Programm WebInspect dafür ausgelegt als<br />

auch die durchzuführenden Arbeiten und Möglichkeiten bekannt waren.<br />

Demgegenüber war die <strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> H<strong>in</strong>blick <strong>auf</strong> Webapplikationen<br />

vor der Durchführung dieser Arbeiten noch völlig unbekannt und wurde<br />

auch noch nie ernsthaft untersucht. Das Programm WebInspect war nicht<br />

<strong>auf</strong> die Gegebenheiten <strong>von</strong> <strong>SAP</strong> angepasst und konnte nur sehr wenige<br />

Ergebsnisse liefern, die sich dann allerd<strong>in</strong>gs <strong>in</strong> Verb<strong>in</strong>dung mit den<br />

sogenannten heterogenen Systemen doch <strong>in</strong>soweit verbesserten, dass<br />

bekannte Angriffe <strong>auf</strong> klassische Webapplikationen auch <strong>auf</strong> das dah<strong>in</strong>ter<br />

liegende <strong>SAP</strong>-System übertragen werden konnten, wie bei den gefundenen<br />

Cross-Site-Script<strong>in</strong>g Schwachstellen <strong>in</strong> der URL, für die <strong>SAP</strong> als Ursache<br />

ausgemacht werden konnte. Bei der manuellen Überprüfung der <strong>SAP</strong><br />

Systeme ergab sich e<strong>in</strong> anderes Bild der Situation und vor Allem für den<br />

ABAP-Stack konnten gravierende <strong>Sicherheit</strong>sprobleme <strong>auf</strong>gedecken<br />

werden.<br />

Besonders hervorzuheben ist die Komb<strong>in</strong>ation des ABAP-Parameters<br />

sap_client und die Verwendung <strong>von</strong> Standardaccounts, da es sich hier um<br />

e<strong>in</strong>en generischen Ansatz handelt und damit alle <strong>SAP</strong> Systeme <strong>auf</strong> ABAP-<br />

Basis betrifft, unabhängig <strong>von</strong> der verwendeten bzw. überprüften<br />

Applikation. Um so gravierender ist, dass <strong>auf</strong> diesem Weg weitreichende<br />

Systemrechte erlangt werden können und somit e<strong>in</strong> anomymer Benutzer,<br />

für den die Applikation bzw. das <strong>SAP</strong>-System lediglich über HTTP erreichbar<br />

ist nahezu oder vollständige Adm<strong>in</strong>istrationsrechte besitzt. Dieser Angriff ist<br />

ke<strong>in</strong> theoretisches Konstrukt, sondern e<strong>in</strong> real möglicher Angriff.<br />

Verschlimmert wird die Situation mit Standardaccounts durch die Tatsache,<br />

dass die Verwendung e<strong>in</strong>es anderen Mandanten über den Parameter<br />

sap_client nicht immer notwendig ist und sogar die bei der Installation<br />

angelegten Adm<strong>in</strong>istratorkonten unbenutzt und damit mit dem<br />

Standardpasswort öffentlich verfügbar s<strong>in</strong>d.<br />

Die manuelle Überprüfung hat außerdem gezeigt, dass es e<strong>in</strong>ige<br />

konzeptionelle Schwachstellen gibt, die bei e<strong>in</strong>er Überprüfung e<strong>in</strong>zelner<br />

Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> <strong>von</strong> Bedeutung s<strong>in</strong>d wie mögliches<br />

Cross-Site-Script<strong>in</strong>g, Anzeige <strong>von</strong> Quelltexten und anderen Informationen<br />

oder Bee<strong>in</strong>flussung des Verhaltens des <strong>SAP</strong>-Systems über Veränderung <strong>von</strong><br />

Parametern. Hierzu gehört auch, dass <strong>SAP</strong> trotz Verbesserung wie dem<br />

HTTP_Filter ke<strong>in</strong>en grundsätzlichen Schutz vor <strong>von</strong> klassischen<br />

Webapplikationen bekannten Angriffen bieten kann.<br />

Damian Schlager Seite 59


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Dennoch hat sich die Basis<strong>in</strong>stallation des NetWeaver ohne spezielle<br />

Applikationen als resistenter gegenüber Angriffen gezeigt, als es bei<br />

klassischen Webapplikationen der Fall ist.<br />

Insbesondere der JAVA-Stack hat ke<strong>in</strong>e generischen Angriffe, die<br />

unabhängig <strong>von</strong> e<strong>in</strong>er vom Kunden verwendeten Applikation s<strong>in</strong>d,<br />

zugelassen.<br />

Bei e<strong>in</strong>er vollständigen Überprüfung e<strong>in</strong>es <strong>SAP</strong> Systems als Ganzes und<br />

nicht nur e<strong>in</strong>zelner Webapplikationen ist die grösste Herausforderung das<br />

Auff<strong>in</strong>den tatsächlich verfügbarer Dienste. Sobald alle erreichbaren<br />

Webapplikationen bekannt s<strong>in</strong>d, kann im Wesentlichen e<strong>in</strong> Audit wie bei<br />

klassischen Webapplikationen durchgeführt werden, natürlich unter<br />

Beachtung der <strong>SAP</strong>-Besonderheiten wie globale Parameter.<br />

Auf diese Weise können außerdem Fehlkonfigurationen an der<br />

Rechtevergabe schnell und effektiv erkannt werden. E<strong>in</strong> untergeordneter<br />

Punkt hierbei ist auch die Informationsgew<strong>in</strong>nung. Teile der Applikation,<br />

wie z.B. durch direkten URL-Aufruf sichtbare Teile ohne<br />

Nutzungsberechtigung oder auch Fehlerseiten können so schon durch das<br />

automatische Audit durch e<strong>in</strong>en Webapplikationsscanner wie WebInspect<br />

gefunden werden.<br />

3.5 Zusammenfassung<br />

Bei der klassischen Webapplikation, die als Referenz verwendet wurde,<br />

verlief die Überprüfung wie es im Vorfeld zu erwarten war. Das<br />

automatische Audit des Scanners funktionierte bis <strong>auf</strong> e<strong>in</strong>ige kle<strong>in</strong>ere<br />

Schwächen problemlos und lieferte auch, abgesehen <strong>von</strong> ungewöhnlich<br />

vielen false-Positives, sehr gute Ergebnisse. Die manuelle Überprüfung<br />

vertiefte diese noch und förderte auch bedeutsame Schwachstellen zu<br />

Tage, die der Scanner nicht fand. Insgesamt verhielt sich die klassische<br />

Webapplikation wie Webapplikationen, die man auch im Internet f<strong>in</strong>det und<br />

auch die Überprüfung war vergleichbar, sowohl <strong>in</strong> H<strong>in</strong>blick <strong>auf</strong> den Abl<strong>auf</strong><br />

als auch <strong>auf</strong> die Ergebnisse.<br />

Bei <strong>SAP</strong> zeigte sich zunächst, dass schon das automatische Audit nicht ohne<br />

Weiteres möglich ist und der Scanner zunächst dar<strong>auf</strong> vorbereitet werden<br />

muss. Bei der dar<strong>auf</strong>h<strong>in</strong> möglichen Überprüfung waren die Ergebnisse<br />

sowohl bei ABAP auch auch bei JAVA <strong>von</strong> e<strong>in</strong>er Masse an false-Positives<br />

geprägt. Darüber h<strong>in</strong>aus waren verifizierbare, also echte Schwachstellen<br />

Damian Schlager Seite 60


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

mit dem Scanner kaum zu f<strong>in</strong>den. E<strong>in</strong>e Evaluation der l<strong>auf</strong>enden Dienste<br />

und der dazugehörigen Rechtevergabe ist hier<strong>von</strong> aber nicht betroffen und<br />

ist nur mit dem Scanner effektiv zu bewerkstelligen.<br />

Bei der manuellen Überprüfung s<strong>in</strong>d signifikante Unterschiede zwischen<br />

ABAP- und JAVA-Stack festzustellen. Bei <strong>SAP</strong> mit ABAP-Stack lassen sich<br />

zum e<strong>in</strong>en mehr Schwachstellen wie Cross-Site-Script<strong>in</strong>g f<strong>in</strong>den, zum<br />

anderen s<strong>in</strong>d hier die immer verfügbaren Parameter e<strong>in</strong>e große Gefahr.<br />

Nicht zu vernachlässigen s<strong>in</strong>d ebenso die Standardaccounts, die, teilweise<br />

<strong>in</strong> Komb<strong>in</strong>ation mit e<strong>in</strong>er Parameterveränderung, e<strong>in</strong>en leichten Zugang<br />

zum <strong>SAP</strong>-System gewähren.<br />

Bei <strong>SAP</strong> mit JAVA-Stack zeigen sich zunächst wenig anfälligkeiten für<br />

Webapplikationsangriffe. Allerd<strong>in</strong>gs zeigt die zusätzlich durchgeführte<br />

Überprüfung des heterogenen Systems, dass sich auch bei <strong>SAP</strong> <strong>auf</strong> JAVA<br />

Basis durchaus Schwachstellen f<strong>in</strong>den, die sich bei e<strong>in</strong>em re<strong>in</strong>en Basis<br />

System nur ansatzweise gezeigt haben. Insgesamt hat sich gezeigt, dass<br />

Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> sowohl mit ABAP- als auch JAVA-Stack<br />

e<strong>in</strong>e tendenziell höhere Resistenz gegenüber Angriffen <strong>auf</strong>weisen, aber<br />

dennoch ebenfalls gravierende Lücken <strong>auf</strong>weisen, die bis zu e<strong>in</strong>em<br />

unautorisierten Zugriff <strong>auf</strong> die Datenbank oder gar Vollzugriff <strong>auf</strong> das <strong>SAP</strong>-<br />

System reichen können.<br />

Damian Schlager Seite 61


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

4 Vergleich klassischer Webapplikationen mit <strong>SAP</strong><br />

aus Verteidigersicht<br />

Im Folgenden soll e<strong>in</strong> Vergleich gezogen werden zwischen den<br />

Möglichkeiten und dem Aufwand zur Absicherung der Gefahren, die <strong>in</strong><br />

Kapitel 2.3.4 <strong>auf</strong>gezeigt wurden. Das Ziel e<strong>in</strong>er Absicherung ist die<br />

M<strong>in</strong>imierung der Gefahren und Angriffpunkte, so dass e<strong>in</strong>e erhöhte<br />

<strong>Sicherheit</strong> im S<strong>in</strong>ne der IT-<strong>Sicherheit</strong> (vgl. Def<strong>in</strong>ition <strong>in</strong> Kapitel 2.2.1)<br />

entsteht. Da niemals e<strong>in</strong>e hundertprozentige <strong>Sicherheit</strong> bestehen kann,<br />

muss immer zwischen dem Aufwand und dem erzielbarem<br />

<strong>Sicherheit</strong>sgew<strong>in</strong>n abgewogen werden.<br />

Bei der Absicherung e<strong>in</strong>es IT-Systems genügt es nicht, sich nur <strong>auf</strong> e<strong>in</strong>e<br />

Ebene, wie z.B. der Absicherung des Betriebssystems zu konzentrieren.<br />

Vielmehr muss e<strong>in</strong>e ganzheitliche Betrachtung vorgenommen werden, die<br />

alle Komponenten mit e<strong>in</strong>bezieht. Wesentliche Bereiche <strong>in</strong> H<strong>in</strong>blick <strong>auf</strong><br />

Webapplikationen s<strong>in</strong>d die sichere Konfiguration des Betriebssystems, das<br />

auch e<strong>in</strong>spielen <strong>von</strong> Patches be<strong>in</strong>haltet, e<strong>in</strong> sicherer Aufbau und<br />

Konfiguration des Netzwerkes und der Komponenten des Netzwerkes, e<strong>in</strong>e<br />

sichere Konfiguration der <strong>auf</strong> den IT-Systemen <strong>in</strong>stallierten Komponenten<br />

und Diensten sowie e<strong>in</strong>e sichere Programmierung um die <strong>in</strong> Kapitel 2.3.4<br />

vorgestellten Gefahren zu vermeiden.<br />

Dieses Kapitel beschäftigt sich nicht mit Absicherungsmöglichkeiten <strong>von</strong><br />

Betriebssystemen und Netzwerken, sondern mit spezifischeren<br />

Möglichkeiten zur Absicherung <strong>von</strong> Webapplikationen bzw.<br />

Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong>. Dies be<strong>in</strong>haltet die sichere<br />

Konfiguration der für Webapplikationen zentralen Diensten und<br />

<strong>in</strong>sbesondere <strong>SAP</strong> Systeme, sowie zentrale Aspekte e<strong>in</strong>er sicheren<br />

Programmierung. Besonderen Wert legt gelegt wird <strong>auf</strong> e<strong>in</strong>e auch <strong>in</strong> der<br />

Praxis bevorzugten, weitere Ebene, die versucht, die Webapplikationen <strong>auf</strong><br />

Anwendungsschicht gegen alle Gefahren, die <strong>in</strong> Kapitel 2.3.4 beschrieben<br />

werden, abzusichern und somit e<strong>in</strong>e zusätzliche <strong>Sicherheit</strong>sschicht darstellt,<br />

die den Bereichen sichere Programmierung und Konfiguration übergeordnet<br />

ist.<br />

In diesem Kapitel wird nach e<strong>in</strong>er E<strong>in</strong>führung <strong>in</strong> vorgeschlagene und<br />

verwendete <strong>Sicherheit</strong>sarchitekturen <strong>in</strong> H<strong>in</strong>blick <strong>auf</strong> Netzwerktopologien<br />

und der Erklärung der pr<strong>in</strong>zipiellen Funktionsweise der dazugehörigen<br />

Webapplikationsfirewalls sowohl die Abischerung der Webapplikation<br />

cirobank als exemplarischem Beispiel <strong>von</strong> klassischen Webapplikationen als<br />

Damian Schlager Seite 62


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

auch die Absicherung verschiedener <strong>SAP</strong> Komponenten behandelt und im<br />

Anschluss wiederum e<strong>in</strong> Vergleich aus dem Aufwand und den Ergebnissen<br />

gezogen.<br />

4.1 <strong>Sicherheit</strong>sarchitekturen<br />

<strong>Sicherheit</strong>sarchitektur klassische Webapplikation<br />

Die <strong>Sicherheit</strong>sarchitektur <strong>von</strong> klassischen Webapplikationen ist geprägt<br />

<strong>von</strong> der Aufteilung <strong>in</strong> Zonen für die verschiedenen Komponenten, wie sie<br />

sich aus den demilitarisierten Zonen für normale, über Internet erreichbare<br />

Applikationen, entwickelt hat. Mit fortschreitendem Bewusstse<strong>in</strong> des <strong>in</strong><br />

Kapitel 2.3.2 beschriebenen Port 80 Problems erfolgt gerade zur Zeit der<br />

Bearbeitung dieser Diplomarbeit e<strong>in</strong>e zunehmende Verbreitung <strong>von</strong><br />

Application Layer Gateways bzw. <strong>in</strong> diesem Fall Webapplikationsfirewalls,<br />

die sich <strong>in</strong> Zukunft noch verstärken wird.<br />

Das Bundesamt für <strong>Sicherheit</strong> <strong>in</strong> der Informationstechnik gibt hierzu auch<br />

e<strong>in</strong>e Empfehlung für e<strong>in</strong>e Architektur (Abbildung 25: Topologiebeispiel<br />

Webapplikation BSI) mit mehreren Firewalls und Application Layer<br />

Gateways 23 , die <strong>in</strong> der Praxis jedoch nur äußerst selten zum E<strong>in</strong>satz<br />

kommt. Hier werden DMZ mittels Paketfilter zwischen Internet und<br />

<strong>in</strong>ternem Netzwerk gebildet, den die verschiedenen Server stehen. Der<br />

Netzwerkverkehr wird <strong>in</strong> diesen DMZ so geleitet, dass diese Server<br />

<strong>in</strong>nerhalb der DMZ jeweils über Application Layer Gateways zursätzlich<br />

geschützt s<strong>in</strong>d.<br />

23 IT Grundschutzhandbuch, Massnahme 5.119,<br />

http://www.bsi.bund.de/gshb/deutsch/m/m05119.htm<br />

Damian Schlager Seite 63


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 25: Topologiebeispiel Webapplikation BSI<br />

Das <strong>in</strong> der Praxis weit häufiger anzutreffende Szenario (Abbildung 26:<br />

Topologiebeispiel Webapplikation) besteht demgegenüber aus Paketfiltern<br />

für die Segmentierung sowie zum<strong>in</strong>dest e<strong>in</strong>es Application Level Gateways<br />

zur Absicherung der Webapplikation, <strong>in</strong> seltenen Fällen ergänzt durch e<strong>in</strong><br />

Application Level Gateway zur Absicherung des Backends. Das Backend<br />

sollte ebenfalls <strong>in</strong> e<strong>in</strong>er getrennten Zone stehen, doch bef<strong>in</strong>det sich das<br />

Backend tatsächlich <strong>in</strong> vielen Fällen im <strong>in</strong>ternen Netz.<br />

Abbildung 26: Topologiebeispiel Webapplikation<br />

Die Absicherung <strong>von</strong> demilitarisierten Zonen und <strong>in</strong>ternen Netzwerken <strong>auf</strong><br />

Paket- und Transportschicht ist <strong>in</strong>zwischen e<strong>in</strong>e alltägliche Arbeit, so dass<br />

e<strong>in</strong>e gute Absicherung <strong>auf</strong> diesen Ebenen vorausgesetzt werden kann.<br />

Damian Schlager Seite 64


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Zusätzlich sollten und werden auch <strong>in</strong> zunehmendem Maße spezielle<br />

Webapplikationsfirewalls e<strong>in</strong>gesetzt, die dem trotz der Paketfilter<br />

bestehendem Port 80 Problem entgegen wirken.<br />

<strong>Sicherheit</strong>sarchitektur <strong>SAP</strong><br />

Angelehnt an die Architektur zur Absicherung klassischer Webapplikationen<br />

empfiehlt <strong>SAP</strong> e<strong>in</strong>e Architektur (Abbildung 27: Empfohlene Topologie <strong>SAP</strong>),<br />

die Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> sicher machen soll 24 . Nachfolgend<br />

ist die Variante dargestellt, die die höchste <strong>Sicherheit</strong> bietet.<br />

Abbildung 27: Empfohlene Topologie <strong>SAP</strong><br />

Diese Struktur ist grundsätzlich s<strong>in</strong>nvoll, und ist der, die bei der<br />

Absicherung klassischer Webapplikationen zu Grunde liegt, sehr ähnlich.<br />

Allerd<strong>in</strong>gs erweist sich die Struktur hier noch <strong>auf</strong> der Betrachtungsweise<br />

aus Netzwerkschicht begründet, d.h. vor Allem zur Absicherung <strong>auf</strong> Paketund<br />

Transportschicht geeignet.<br />

Für die <strong>Sicherheit</strong>süberprüfung, wie sie diese Diplomarbeit zum Thema hat,<br />

ist die erste und teilweise auch die zweite Firewall bedeutungslos, da<br />

sämtliche Angriffe ohneh<strong>in</strong> offene Ports benutzen und <strong>auf</strong> höherer OSI-<br />

Ebene ansetzen. Dies bedeutet, dass alle Attacken <strong>in</strong>nerhalb der ALLOW-<br />

Regeln der ersten Firewall stattf<strong>in</strong>den.<br />

Aus Gründen, die nachfolgend beschrieben werden, wird der E<strong>in</strong>satz des<br />

WebDispatchers hier nicht näher betrachtet. Er wird durch dieselben<br />

Produkte ersetzt wie sie bei klassischen Webapplikationen zum E<strong>in</strong>satz<br />

kommen, um diese <strong>auf</strong> Applikationsebene abzusichern.<br />

Hierdurch entfällt auch der WebDispatcher als Angriffsziel und es bleibt nur<br />

noch die Loadbalanc<strong>in</strong>g-Funktion, die spezielle Loadbalancer übernehmen<br />

24<br />

http://help.sap.com/saphelp_nw04s/helpdata/en/8d/f3da779bd02c4fa54fda5d6944f2d6/frameset.ht<br />

m<br />

Damian Schlager Seite 65


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

können oder auch die <strong>in</strong> dieser Diplomarbeit e<strong>in</strong>gesetzten<br />

Webapplikationsfirewalls. Somit hat auch die zweite Firewall aus Sicht der<br />

<strong>in</strong> dieser Diplomarbeit behandelten Thematik ke<strong>in</strong>e besondere Bedeutung<br />

mehr.<br />

Da der Web Application Server durchaus e<strong>in</strong> Angriffsziel ist und auch <strong>in</strong><br />

reellen Szenarien als ‚Sprungbrett’ <strong>auf</strong> weitere Systeme dienen kann, ist<br />

e<strong>in</strong>e Firewall zwischen Applikationsservern und Backendsystemen, bzw.<br />

allen anderen Systemen, s<strong>in</strong>nvoll. Die Besonderheit der <strong>SAP</strong> Systeme,<br />

gegen SQL Injection resistent zu se<strong>in</strong>, macht e<strong>in</strong>en Angriff z.B. <strong>auf</strong> die<br />

dah<strong>in</strong>terliegende SQL-Datenbank, die sich typischerweise im <strong>in</strong>ternen Netz<br />

bef<strong>in</strong>det nicht unmöglich, aber es ist weniger wahrsche<strong>in</strong>lich, dass der<br />

durch die dritte Firewall erlaubten SQL Ports über den normalen<br />

Applikationsverl<strong>auf</strong> und somit transparent verwendet werden kann.<br />

Allerd<strong>in</strong>gs bietet dies ke<strong>in</strong>en h<strong>in</strong>reichenden Schutz gegen e<strong>in</strong>en<br />

komprommitierten Applikationsserver, da <strong>von</strong> hier unter Umständen die<br />

Datenbank direkt angesprochen werden kann.<br />

Die Gründe für den zuvor erwähnten Entfall des <strong>SAP</strong> Web Dispatchers<br />

basieren <strong>auf</strong> folgenden Erkenntnissen: Der Zweck des WebDispatchers<br />

besteht aus<br />

Lastverteilung<br />

Zentraler E<strong>in</strong>stiegspunkt für alle Applikationsserver <strong>von</strong> Clientseite,<br />

d.h. nur e<strong>in</strong>e ‚Unternehmens’-URL, h<strong>in</strong>ter der verschiedene<br />

Applikationen und auch <strong>SAP</strong> Systeme stehen können<br />

Persistenz der Sitzungen<br />

SSL-Verschlüsselung, als <strong>in</strong> Ende zu Ende Verb<strong>in</strong>dung e<strong>in</strong>gegeliedert<br />

oder als Term<strong>in</strong>ierungspunkt<br />

Damit verbundene optionale Wiederverschlüsselung zu eigentlichen<br />

<strong>SAP</strong> Applikationsservern<br />

E<strong>in</strong>fache Konfiguration, die mit der E<strong>in</strong>stellung nur weniger<br />

Parameter durchgeführt werden kann<br />

Als <strong>Sicherheit</strong>sfunktion e<strong>in</strong>e rudimentäre URL-Filterung<br />

Hieraus ergeben sich unter Kenntniss der Absicherungsmöglichkeiten<br />

klassischer Webapplikationen verschiedene Schlussfolgerungen<br />

Der <strong>SAP</strong> Web Dispatcher hat nur e<strong>in</strong>e ger<strong>in</strong>ge Funktionalität als<br />

Applikationsfilter<br />

Damian Schlager Seite 66


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Übliche Loadbalanc<strong>in</strong>gfunktionen können auch <strong>von</strong> komerziellen<br />

Webapplikationsfirewalls erbracht werden <strong>in</strong>klusive Peristenz der<br />

Sitzungen<br />

SSL als Ende zu Ende Integration oder Term<strong>in</strong>ierungspunkt wird<br />

ebenfalls <strong>von</strong> allen Webapplikationsfirewalls unterstützt – Für<br />

Hochlastsysteme f<strong>in</strong>den spezialisierte Produkte für die SSL-<br />

Term<strong>in</strong>ierung Verwendung.<br />

Durch Fähigkeiten wie URL Rewrit<strong>in</strong>g kann auch die<br />

Webapplikationsfirewall oder e<strong>in</strong> Loadbalancer als zentraler<br />

E<strong>in</strong>stiegspunkt arbeiten.<br />

Da e<strong>in</strong>e Webapplikationsfirewall dies und vor Allem weitreichende<br />

<strong>Sicherheit</strong>sfunktionen bietet, ist e<strong>in</strong>e Ersetzung des WebDispatchers für <strong>in</strong><br />

dieser Diplomarbeit gegebenen Rahmenbed<strong>in</strong>gungen durch profesionelle<br />

Webapplikationsfirewalls s<strong>in</strong>nvoll.<br />

4.2 Web Application Firewalls<br />

Allgeme<strong>in</strong><br />

Bei Webapplikationsfirewalls handelt es sich um e<strong>in</strong>e relativ <strong>neue</strong><br />

Technologie, für die es vor 10 Jahren erste Produkte gab, doch die<br />

weitestgehend unbekannt blieben. Inzwischen gibt es e<strong>in</strong>e stark steigende<br />

Nachfrage und wird <strong>in</strong> seltenen Fällen, wie z.B. für PCI-Konformität,<br />

verlangt, so dass sich der Verk<strong>auf</strong> <strong>von</strong> Webapplikationsfirewalls <strong>in</strong> den<br />

letzten 2 Jahren verdoppelt hat 25 [Forrester].<br />

Entwickelt wurden die Webapplikationsfirewalls um vor den <strong>in</strong> Kapitel 2.3.4<br />

beschriebenen Angriffen zu schützen. Da Firewalls wie sie bislang<br />

e<strong>in</strong>gesetzt werden lediglich <strong>auf</strong> Paket- und Transportschicht arbeiten,<br />

können sie die Gefährdungen, den Webapplikationen ausgesetzt s<strong>in</strong>d, nicht<br />

verr<strong>in</strong>gern. Deshalb wurde die Idee <strong>von</strong> Application Level Gateways<br />

<strong>auf</strong>gegriffen und speziell für das Web-Umfeld angepasst. Die daraus<br />

enstandenen Webapplikationsfirewalls ergänzen die bestehenden Firewalls<br />

und schützen vor Angriffen <strong>auf</strong> Applikationsebene, die durch das <strong>in</strong> Kapitel<br />

2.3.2 beschriebene Port 80 Problem durch die Paketfilter h<strong>in</strong>durch möglich<br />

s<strong>in</strong>d.<br />

25<br />

http://www.forrester.com/Research/Document/Excerpt/0,7211,41780,00.html<br />

Damian Schlager Seite 67


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Webapplikationsfirewalls können verschiedensten Kriterien 26 genügen,<br />

darunter<br />

Integration als Bridge oder Reverse proxy (E<strong>in</strong>b<strong>in</strong>dung <strong>in</strong> OSI-<br />

Layer2 oder Aufsplittung der IP-Verb<strong>in</strong>dung)<br />

SSL-Unterstützung <strong>in</strong>l<strong>in</strong>e oder als Term<strong>in</strong>ierungspunkt,<br />

Unterstützung für Client-Zertifikate<br />

Appliance oder Softwarelösung<br />

Fähigkeit zum Hochverfügbarkeitscluster<br />

Loadbalanc<strong>in</strong>g, darunter verschiedene Algorithmen (z.B. Round<br />

Rob<strong>in</strong>, weighted round Rob<strong>in</strong>)<br />

Umschreiben <strong>von</strong> URLs und Doma<strong>in</strong>s (Ersetzung <strong>von</strong> URLs und<br />

Doma<strong>in</strong>namen bei Backendverb<strong>in</strong>dung – Möglichkeit, alle Server für<br />

Clients im Internet als e<strong>in</strong>e große Doma<strong>in</strong> ersche<strong>in</strong>en zu lassen)<br />

Garantierung <strong>von</strong> Sitzungspersistenz ( Sitzung bleibt auch z.B. bei<br />

Ausfall e<strong>in</strong>es Servers im HA-Systems erhalten)<br />

Decodierung verschiedenster Encod<strong>in</strong>g types (ASCII, UTF8, etc.)<br />

Response Filter<strong>in</strong>g (Unterdrückung <strong>von</strong> Fehlermeldungen und<br />

Filterung der als sensibel def<strong>in</strong>ierten Daten wie<br />

Kreditkartennummern)<br />

Blacklist oder Whitelistbasierter Schutz, bzw. e<strong>in</strong>e Komb<strong>in</strong>ation<br />

Dynamisches- oder statisches Regelwerk (gelernte Regeln oder<br />

unveränderliche Regeln, die im Vorfeld <strong>von</strong> Hand e<strong>in</strong>getragen<br />

werden)<br />

Schützt Cookies, Sessions, Felder, URLs vor XSS und Derivate,<br />

Injection flaws, forceful brows<strong>in</strong>g, etc.<br />

Funktion als Authentisierungsproxy<br />

Logg<strong>in</strong>g und Report<strong>in</strong>gfähigkeiten<br />

Da sowohl bei klassischen Webapplikationen als auch bei Webapplikationen<br />

<strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> grundsätzlich dieselben Angriffsmethoden benutzt<br />

werden können, ist zu erwarten, dass e<strong>in</strong>e Webapplikationsfirewall sowohl<br />

bei klassischen Webapplikationen als auch bei Webapplikationen <strong>auf</strong> Basis<br />

<strong>von</strong> <strong>SAP</strong> e<strong>in</strong>en wirksamen Schutz bieten kann (Abbildung 28: Arbeitsweise<br />

WAF). Hier ist der E<strong>in</strong>satz e<strong>in</strong>er Webapplikationsfirewall schematisch<br />

dargestellt, weitere Netzwerkkomponenten und Segmente s<strong>in</strong>d hier nicht<br />

berücksichtigt, da sie <strong>auf</strong> die Filterung ke<strong>in</strong>e Auswirkung haben.<br />

26 http://www.webappsec.org/projects/wafec/v1/wasc-wafec-v1.0.html<br />

Damian Schlager Seite 68


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 28: Arbeitsweise WAF<br />

E<strong>in</strong>satz der Web Application Firewalls <strong>in</strong> dieser Diplomarbeit<br />

Der E<strong>in</strong>satz <strong>von</strong> Webapplikationsfirewalls ist e<strong>in</strong> Hauptmerkmal zur<br />

Absicherung <strong>von</strong> Webapplikationen <strong>in</strong> dieser Diplomarbeit. In der Praxis<br />

wird dies zunehmend e<strong>in</strong>gesetzt, um wie <strong>in</strong> dieser Diplomarbeit geschehen<br />

auch <strong>SAP</strong>-Systeme abzusichern, obwohl die E<strong>in</strong>satzmöglichkeiten und das<br />

erreichbare Schutzlevel bislang noch gar nicht bekannt waren. Diese<br />

Diplomarbeit soll daher auch die S<strong>in</strong>nhaftigkeit dieser Möglichkeit<br />

evaluieren<br />

Um dies zu erreichen wurden e<strong>in</strong>ige Teilkomponenten der <strong>SAP</strong> Systeme<br />

exemplarisch abgesichert. E<strong>in</strong>e vollständige Absicherung der Basis-<br />

Komponenten würde den Rahmen dieser Diplomarbeit bei Weitem sprengen<br />

und auch ke<strong>in</strong> Gew<strong>in</strong>n an Erkenntnissen br<strong>in</strong>gen, da die grundsätzlich<br />

verwendeten <strong>Technologien</strong> <strong>in</strong> den getesteten Komponenten enthalten<br />

waren und somit die Eignung auch mit den getesteten Komponenten<br />

beurteilt werden kann.<br />

Bei der Konfiguration ist weder bei klassischen Webapplikationen noch bei<br />

<strong>SAP</strong> e<strong>in</strong> generisches Regelwerk möglich. Bei klassischen Webapplikationen<br />

gibt es hierfür zu viele Variationen und <strong>Technologien</strong>, während bei <strong>SAP</strong><br />

schon die Möglichkeiten, die <strong>SAP</strong> selbst bietet zu komplex und verschieden<br />

s<strong>in</strong>d, wie beispielsweise die Parameter als Teil der URL, was zur Zeit noch<br />

<strong>von</strong> ke<strong>in</strong>er Webapplikationsfirewall <strong>auf</strong> diese Weise berücksichtigt wird. Als<br />

Lösung für <strong>SAP</strong> wird daher angestrebt, e<strong>in</strong> gutes <strong>Sicherheit</strong>slevel zu<br />

erreichen unter der Voraussetzung, dass die konkrete Implementation der<br />

Webapplikation <strong>auf</strong> <strong>SAP</strong>-Basis wenig Flexibilität <strong>in</strong> H<strong>in</strong>blick <strong>auf</strong> URL,<br />

Parameter, Header, Methoden <strong>auf</strong>weist.<br />

Damian Schlager Seite 69


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Verwendete Produkte<br />

Für die zur Absicherung zu verwendenten Produkte <strong>von</strong> Webapplikationen<br />

kamen vor Allem <strong>in</strong> H<strong>in</strong>blick <strong>auf</strong> die Integrationsanforderungen und das<br />

hohe Schadenspotential <strong>von</strong> <strong>SAP</strong> nur kommerzielle Produkte <strong>in</strong> Frage. Frei<br />

verfügbare Programme wie mod_security 27 bieten ke<strong>in</strong>e vergleichbaren<br />

Schutzmöglichkeiten und ebenfalls nicht die geforderten Funktionen, da<br />

hier Hochverfügbarkeit, Zuverlässigkeit und Performance bei allen<br />

Aufgaben gegeben se<strong>in</strong> muss. Ebenso ist e<strong>in</strong>e professionelle Unterstützung<br />

für Konfiguration der Webapplikationsfirewall und im Fehlerfall<br />

unverzichtbar.<br />

Auf dem Markt s<strong>in</strong>d derzeit nur weniger Anbieter, dennoch wurden für e<strong>in</strong>e<br />

qualifiziertere Aussage über die Absicherungsmöglichkeiten 2 Produkte<br />

verwendet:<br />

Citrix NetScaler 8.0: Nachfolger der ersten verfügbaren<br />

Webapplikationsfirewall 28<br />

NetCont<strong>in</strong>uum 6.0: 29 Webapplikationsfirewall mit den meisten<br />

Installationen <strong>in</strong> Deutschland 30<br />

4.3 Absicherungsmöglichkeiten klassischer<br />

Webapplikationen<br />

Konfiguration der Komponenten<br />

Bei klassischen Webapplikationen gibt es e<strong>in</strong>e große Vielfalt an<br />

Komponenten und für jede Komponente eigene Richtl<strong>in</strong>ien, wie sie<br />

abzusichern s<strong>in</strong>d. Hier s<strong>in</strong>d e<strong>in</strong>ige E<strong>in</strong>stellungen <strong>auf</strong>geführt, die<br />

typischerweise bei e<strong>in</strong>em Audit der bei der cirobank verwendeten<br />

Komponenten <strong>auf</strong>fällig s<strong>in</strong>d oder den besondere Beachtung geschenkt<br />

werden sollte. E<strong>in</strong>e Liste der erarbeiteten Konfigurationsempfehlungen s<strong>in</strong>d<br />

<strong>in</strong> Anhang B: Konfigurationsempfehlungen und Programmierrichtl<strong>in</strong>ien zu<br />

f<strong>in</strong>den.<br />

Programmierrichtl<strong>in</strong>ien<br />

Als zweite Komponente werden e<strong>in</strong>ige Programmierrichtl<strong>in</strong>ien dargestellt,<br />

die für die Vermeidung <strong>von</strong> Schwachstellen <strong>in</strong> Webapplikationen wichtig<br />

27 http://www.modsecurity.org/<br />

28 http://www.citrix.com/<br />

29 Anmerkung: Das hier getestete NCOS 6.0 ist e<strong>in</strong> <strong>neue</strong>s major Release und zum Zeitpunkt der<br />

Diplomarbeit die erste Installation dieser Version <strong>in</strong> Deutschland.<br />

30 http://www.barracudanetworks.com/netcont<strong>in</strong>uum/<br />

Damian Schlager Seite 70


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

s<strong>in</strong>d. Es werden sowohl allgeme<strong>in</strong>e, sprachenübergreifende Empfehlungen<br />

gegeben, als auch spezifischere, <strong>auf</strong> Schwachstellen e<strong>in</strong>zelner<br />

Programmiersprachen gerichtete Empfehlungen. E<strong>in</strong>e detaillierte Liste<br />

f<strong>in</strong>det sich wiederum auch hier <strong>in</strong> Anhang B: Konfigurationsempfehlungen<br />

und Programmierrichtl<strong>in</strong>ien.<br />

Absicherung mittels der Web Application Firewalls<br />

E<strong>in</strong> Umprogrammieren <strong>von</strong> Applikationen ist, wie die praktische Erfahrung<br />

zeigt, nicht immer durchführbar und mit erheblichem Aufwand verbunden.<br />

Gerade bei <strong>SAP</strong>, so haben auch Gespräche des Verfassers mit Entwicklern<br />

gezeigt, ist e<strong>in</strong> Umprogrammieren bestehender Applikationen, <strong>in</strong>sbesondere<br />

der <strong>von</strong> <strong>SAP</strong> bereitgestellten Teile, oft problematisch. Immer häufiger 4<br />

wird <strong>auf</strong> den E<strong>in</strong>satz e<strong>in</strong>er Webapplikationsfirewall als e<strong>in</strong>e der<br />

<strong>Sicherheit</strong>skomponenten gesetzt, die Fehler bei der Konfiguration der<br />

beteiligten Komponenten und der Programmierung auszugleichen versucht.<br />

Für die Bearbeitung der Diplomarbeit hat der Verfasser dieses Element als<br />

praktische, übergreifende Komponente exemplarisch für die Absicherung<br />

sowohl der klassischen Webapplikation als auch <strong>von</strong> Webapplikationen <strong>auf</strong><br />

Basis <strong>von</strong> <strong>SAP</strong> verwendet um deren Eignung e<strong>in</strong>er Prüfung zu unterziehen.<br />

Bei der klassischen Webapplikation wurden ke<strong>in</strong>e Probleme erwartet. Zwar<br />

wurde die Konfiguration e<strong>in</strong>er Webapplikationsfirewall für die<br />

Webapplikation cirobank zum ersten Mal durchgeführt, jedoch s<strong>in</strong>d die<br />

Webapplikationsfirewalls weit genug entwickelt, um bei den meisten RFCkonformen<br />

Webapplikationen mit vertretbarem Aufwand den geforderten<br />

Schutz erbr<strong>in</strong>gen zu können.<br />

Als ersten Schritt wurde die Webapplikation cirobank durch Citrix NetScaler<br />

8 gesichert, wobei der bevorzugte Lernmodus verwendet wurde.<br />

Im Lernmodus werden alle Seiten, Parameter, etc. der Applikation mit<br />

deren Länge und Art der erlaubten Zeichen gelernt und bei Bedarf diese<br />

Regelungen wieder angepasst. Dies kann dazu führen, dass die Regeln sehr<br />

zahlreich werden und der vor Allem <strong>in</strong> Deutschland geforderten<br />

Nachvollziehbarkeit und Wartung im Wege stehen. Daher wurden zu<br />

zahlreiche, detaillierte Regeln durch generalisierte Regeln ersetzt, die dann<br />

zwar e<strong>in</strong> theoretisch weniger hohes <strong>Sicherheit</strong>sniveau bieten, aber durch<br />

die praktische Prüfung mittels der Angriffe, für die die Webapplikation<br />

verwundbar ist, vom Verfasser als ausreichend befunden wurde.<br />

Damian Schlager Seite 71


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

In e<strong>in</strong>igen Fällen ist die manuelle Überarbeitung der Regeln auch<br />

notwendig, wie das folgende Beispiel (Abbildung 29: Anzupassende Regel)<br />

zeigt. Hier würde, nach Aktivierung der Regeln, jede Anfrage geblockt<br />

werden, weil <strong>in</strong> dem <strong>in</strong>clude-Parameter das Datum verwendet wird und <strong>von</strong><br />

der Webapplikationsfirewall natürlich nur mit diesem Datum gelernt wurde.<br />

Abbildung 29: Anzupassende Regel<br />

Die Konfiguration der Citrix NetScaler für die Webapplikation cirobank<br />

verlief im Übrigen mittels des Lernmodus problemlos.<br />

Die Durchführung der Webapplikationsangriffe, für die sich die<br />

Webapplikation cirobank verwundbar gezeigt hat, wurden ausnahmslos <strong>von</strong><br />

der Webapplikationsfirewall ohne weitere Anpassungen abgefangen und<br />

e<strong>in</strong>e def<strong>in</strong>ierte Fehlerseite (Abbildung 30: Gelockter Angriff bei Citrix)<br />

angezeigt.<br />

Abbildung 30: Gelockter Angriff bei Citrix<br />

Damian Schlager Seite 72


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Zusammenfassend verlief die Konfiguration der Webapplikationsfirewall<br />

Citrix NetScaler wie vom Verfasser erwartet und auch das Schutzlevel<br />

ensprach den Anforderungen völlig.<br />

Bei der Verwendung der Webapplikationsfirewall NetCont<strong>in</strong>uum 6.0 wurde<br />

ergänzend zu e<strong>in</strong>er Absicherung durch den ebenfalls vorhandenen<br />

Lernmodus auch e<strong>in</strong>e Absicherung durch e<strong>in</strong> statisches Regelwerk<br />

durchgeführt, wie es <strong>in</strong> der Praxis bislang weitaus häufiger vorkommt.<br />

Die Verwendung des Lernmodus ist bei NetCont<strong>in</strong>uum mit Citrix zu<br />

vergleichen. Es wurde e<strong>in</strong>e e<strong>in</strong>zelne E<strong>in</strong>stellung angepasst, um die<br />

Interoperabilität mit der Webapplikation cirobank zu sichern. E<strong>in</strong>e solche<br />

Anpassung ist auch bei klassischen Webapplikationen nicht unüblich und<br />

führen nicht zwangsweise zu e<strong>in</strong>er erhöhten Gefährdung. Im konkreten Fall<br />

wurde e<strong>in</strong>e spezielle Prüfung für Cross Site Request Forgery bei e<strong>in</strong>em<br />

Parameter deaktiviert, der Teil e<strong>in</strong>es Ajax-Requests war.<br />

Die Verwendung des statischen Regelwerks wurde vom Verfasser<br />

absichtlich allgeme<strong>in</strong>er gehalten als das resultierende Regelwerk des<br />

Lernmodus. Dies spiegelt die Konfiguration wieder, wie sie bei<br />

Installationen im produktiven E<strong>in</strong>satz verwendet wird.<br />

E<strong>in</strong>e Gegenüberstellung der gelernten, dynamischen (Abbildung 31:<br />

Dynamisches Regelwerk), bzw. statischen (Abbildung 32: Statisches<br />

Regelwerk) Regeln für die erlaubten URL-Pfade und Dateien zeigt, dass sich<br />

schon mit bei dieser kle<strong>in</strong>en Applikation die automatischen Regeln des<br />

Lernmodus teilweise deutlich <strong>von</strong> denen der statischen Konfiguration<br />

unterscheiden.<br />

Abbildung 31: Dynamisches Regelwerk<br />

Damian Schlager Seite 73


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 32: Statisches Regelwerk<br />

Die Anwendung der gefunden Webapplikationsangriffe sollten zeigen, ob<br />

zum e<strong>in</strong>en der E<strong>in</strong>satz auch dieser Webapplikationsfirewall den<br />

Anforderungen genügt und außerdem, wie groß der Unterschied des<br />

Schutzlevels zwischen dynamischem und statischem Regelwerk bei<br />

klassischen Webapplikationen ist.<br />

Im Wesentlichen hat sich hierbei bestätigt, dass auch hier e<strong>in</strong> gutes<br />

<strong>Sicherheit</strong>sniveau erreicht werden kann und auch dieses Produkt für den<br />

E<strong>in</strong>satz zur Absicherung e<strong>in</strong>er klassischen Webapplikation geeignet ist. Mit<br />

nur jeweils e<strong>in</strong>er Ausnahme wurden alle Angriffe sowohl mittels des<br />

dynamischen als auch des statischen Regelwerks geblockt (Abbildung 33:<br />

Geblockter Angriff bei NetCont<strong>in</strong>uum) und e<strong>in</strong>e Fehlerseite angezeigt, die <strong>in</strong><br />

diesem Fall <strong>von</strong> der NetCont<strong>in</strong>uum selbst ausgeliefert wird.<br />

Abbildung 33: Geblockter Angriff bei NetCont<strong>in</strong>uum<br />

Das dynamische Regelwerk erkannte den für Parameter tamper<strong>in</strong>g<br />

anfälligen Parameter ‚cid’, mit Hilfe dessen e<strong>in</strong> Benutzer die Applikation <strong>in</strong><br />

den Adm<strong>in</strong>istrationskontext setzen kann, fälschlicherweise als<br />

E<strong>in</strong>gabeparameter und hat somit diesen Angriff nicht verh<strong>in</strong>dert.<br />

E<strong>in</strong> manuelles Anpassen der Parameterart <strong>auf</strong> ‚Read-Only’ behob dieses<br />

Problem, so dass e<strong>in</strong> vollständiger Schutz gegeben war und der Angriff <strong>von</strong><br />

der Webapplikationsfirewall abgefangen wurde (Logfileauszug <strong>in</strong> Abbildung<br />

34: Geblocktes Parameter Temper<strong>in</strong>g).<br />

Damian Schlager Seite 74


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 34: Geblocktes Parameter Temper<strong>in</strong>g<br />

Das statische Regelwerk betrachtete das manuelle E<strong>in</strong>schleusen des HTML<br />

Codes ">


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

2.2.5) sicherlich <strong>auf</strong> hohem Niveau, jedoch <strong>in</strong> H<strong>in</strong>blick <strong>auf</strong><br />

Webapplikationssicherheit mangelhaft und hauptsächlich <strong>auf</strong><br />

Accountsicherheit <strong>auf</strong>gebaut. Die vorgeschlagene <strong>Sicherheit</strong>se<strong>in</strong>stellung für<br />

HTTP beschränkt sich für den JAVA Stack beispielsweise laut <strong>SAP</strong><br />

NetWeaver Security Guide <strong>auf</strong> den E<strong>in</strong>satz <strong>von</strong> SSL. Daher s<strong>in</strong>d auch die<br />

hier <strong>auf</strong>geführten Empfehlungen das Resultat aus der kritischen<br />

Betrachtung der Empfehlungen <strong>von</strong> Seiten <strong>SAP</strong>s und den durch den<br />

Verfasser im Rahmen der Durchführung dieser Diplomarbeit gewonnenen<br />

Erkenntnisse.<br />

<strong>SAP</strong> bietet e<strong>in</strong>e gut konfigurierbare Passwort Policy, die u.a.<br />

Komplexitätsanforderungen, Gültigkeitsdauer und Accountdeaktivierung<br />

def<strong>in</strong>iert (siehe Anhang B: Konfigurationsempfehlungen und<br />

Programmierrichtl<strong>in</strong>ien). Diese E<strong>in</strong>stellungsmöglichkeiten sollten gemäß der<br />

Unternehmenspolicy gesetzt werden, z.B. M<strong>in</strong>destlänge 8 Zeichen mit<br />

Gross- und Kle<strong>in</strong>buchstaben und m<strong>in</strong>destens e<strong>in</strong>em Sonderzeichen, das alle<br />

8 Wochen geändert werden muss.<br />

Ausser acht gelassen s<strong>in</strong>d bisher die Standardaccounts, die sich auch bei<br />

prakischen Überprüfungen des Verfassers als großes <strong>Sicherheit</strong>srisiko<br />

dargestellt haben. Der Account DDIC darf allerd<strong>in</strong>gs unter Umständen nicht<br />

gelöscht werden, genau so EARLYWATCH, so dass im Vorfeld e<strong>in</strong>e<br />

Überprüfung, ob das Löschen hier möglich ist, vorgenommen werden muss.<br />

Als letzten, immer vorhandenen Account mit bekanntem Passwort sollte<br />

<strong>SAP</strong>* deaktiviert werden. Löschen ist wie <strong>in</strong> Kapitel 3.3.3 beschrieben nicht<br />

möglich, jedoch die Deaktivierung.<br />

Das zweite übliche Element bei der Absicherung durch<br />

Konfigurationse<strong>in</strong>stellungen ist das klare Setzen <strong>von</strong> Rollen, Gruppen und<br />

Userrechten, <strong>in</strong>klusive deren Zuordnung zu Gruppen/Rollen.<br />

Für RFC, das <strong>SAP</strong> eigene Kommunikationsprotokoll muss<br />

auth/rfc_authority_check aktiv se<strong>in</strong>, da sonst Berechtigungen nicht geprüft<br />

werden. Sogenannte Bauste<strong>in</strong>e können RFC-fähig gemacht werden, womit<br />

sie entfernt <strong>auf</strong>gerufen werden können. Dies sollte nur für Bauste<strong>in</strong>e<br />

geschehen, für die das notwendig ist, da fehlerhafte, über RFC <strong>auf</strong>rufbare<br />

Bauste<strong>in</strong>e e<strong>in</strong> nicht zu unterschätzendes Risiko darstellen (siehe Anhang C:<br />

<strong>Sicherheit</strong> on RFC). Dasselbe gilt für das Aufrufen <strong>von</strong> RFC über SOAP, das<br />

ebenfalls restriktiv konfiguriert werden sollte.<br />

Damian Schlager Seite 76


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Allerd<strong>in</strong>gs wird im Security Guide selbst e<strong>in</strong>e E<strong>in</strong>schränkung der<br />

Authorisationsprüfungen zu Gunsten der Performance empfohlen, was vom<br />

Standpunkt der <strong>Sicherheit</strong> <strong>in</strong> so allgeme<strong>in</strong>er Form nicht nachvollziehbar ist.<br />

Was <strong>in</strong> offiziellen Information <strong>von</strong> <strong>SAP</strong> selbst, also auch dem Security guide<br />

fehlt, ist das restriktive Aktivieren <strong>von</strong> über HTTP erreichbare Dienste. Dies<br />

wird vom Verfasser dieser Diploarbeit als e<strong>in</strong>e zentrale<br />

Konfigurationse<strong>in</strong>stellung betrachtet, da hier das große Risiko besteht, dass<br />

Funktionen, die nicht notwendig s<strong>in</strong>d, aber Informationen preisgeben oder<br />

<strong>neue</strong> <strong>Sicherheit</strong>sprobleme darstellen, <strong>auf</strong>rufbar s<strong>in</strong>d. Da häufig gar nicht<br />

bekannt ist, welche Dienste tatsächlich aktiv s<strong>in</strong>d, ist auch die korrekte<br />

Rechtevergabe fraglich. Das grosszügige Aktivieren <strong>von</strong> Diensten wird hier<br />

über die <strong>SAP</strong> GUI leider sehr e<strong>in</strong>fach gemacht, da ganze Bäume mit nur<br />

e<strong>in</strong>em Klick aktiviert werden können, wie der 2. ‚Yes’ Schalter <strong>in</strong> Abbildung<br />

35: E<strong>in</strong>fache Diensteaktivierung im <strong>SAP</strong> GUI zeigt.<br />

Abbildung 35: E<strong>in</strong>fache Diensteaktivierung im <strong>SAP</strong> GUI<br />

Die Empfehlung beim Portal-Umfeld des <strong>SAP</strong> JAVA Stacks fällt weniger<br />

umfangreich aus, da sich die Konfigurationsmöglichkeiten hauptsächlich <strong>auf</strong><br />

die Rechtevergabe beschränken 9 .<br />

Im Vorfeld sollte jedoch dar<strong>auf</strong> geachtet werden, nur benötigte<br />

Komponenten zu <strong>in</strong>stallieren, um den zukünftigen Konfigurations<strong>auf</strong>wand<br />

zu m<strong>in</strong>imieren.<br />

Auch beim JAVA Stack sollte, wie beim ABAP-Stack beschrieben, die<br />

Rechtevergabe <strong>von</strong> Benutzern und Rollen etc. wohldurchdacht erfolgen.<br />

Das zentrale Element s<strong>in</strong>d allerd<strong>in</strong>gs die sogenannten Security Zones, die<br />

Damian Schlager Seite 77


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

die Rechte, die Benutzer <strong>auf</strong> Applikationen haben, def<strong>in</strong>ieren. Applikationen<br />

müssen schon beim Deploy diesen Security Zones zugeordnet werden,<br />

daher ist die Planung <strong>von</strong> erforderlichen Security Zones e<strong>in</strong>e der<br />

wichtigsten Arbeiten bei der Konfiguration e<strong>in</strong>es <strong>SAP</strong> Systems mit JAVA<br />

Stack. Die Rechte der Benutzer, Rollen etc. werden dann ebenfalls diesen<br />

Security Zones zugeordnet, wodurch e<strong>in</strong> <strong>Sicherheit</strong>skonzept entsteht, <strong>in</strong><br />

dem Applikationen im Idealfall nur für die Benutzer <strong>auf</strong>rufbar s<strong>in</strong>d, die<br />

damit arbeiten müssen.<br />

Schon ausgehend <strong>von</strong> der Basis<strong>in</strong>stallation können noch e<strong>in</strong>ige Dienste<br />

optimiert werden, für das es auch e<strong>in</strong> eigenes Dokument <strong>von</strong> <strong>SAP</strong> gibt 33 .<br />

Hierbei muss allerd<strong>in</strong>gs auch erwähnt werden, dass e<strong>in</strong>e solche optimierte<br />

Konfiguration E<strong>in</strong>schränkungen der Funktionalität zur Folge haben können.<br />

Daher gibt es gleich mehrere weitere Empfehlungen <strong>von</strong> <strong>SAP</strong>, wie Probleme<br />

bei Anwendung des Dokumentes behoben werden können.<br />

Ergänzend gibt es noch rudimentäre möglichkeiten, den Webzugriff zu<br />

konfigurieren; die wesentlichen E<strong>in</strong>stellungen s<strong>in</strong>d hier das Deaktivieren<br />

<strong>von</strong> Directory List<strong>in</strong>gs und das mögliche Entfernen <strong>von</strong> L<strong>in</strong>ks zu nicht<br />

öffentlichen Applikationen.<br />

Zusammenfassend lässt sich sagen, dass die Konfigurationsmöglichkeiten<br />

bei <strong>SAP</strong>, die die <strong>Sicherheit</strong> <strong>in</strong> H<strong>in</strong>blick <strong>auf</strong> die Webapplikationen erhöhen,<br />

kaum vorhanden s<strong>in</strong>d. Im ABAP Umfeld beschränken sich die meißten<br />

Informationen <strong>auf</strong> Empfehlung für die Arbeit mit der <strong>SAP</strong> GUI. Das<br />

Webumfeld, <strong>in</strong> das <strong>SAP</strong> immer mehr <strong>in</strong>tegriert wird, wird kaum oder gar<br />

nicht behandelt.<br />

Der Größte Anteil der Konfigurationsmöglichkeiten wird <strong>von</strong> Benutzer und<br />

Rechtemanagement bestimmt, das auch tatsächlich e<strong>in</strong>en gewichtigen<br />

Anteil an e<strong>in</strong>em so komplexen und <strong>von</strong> vielen Benutzern verwendetem<br />

System darstellt 34 .<br />

Programmieransätze<br />

Bei den Empfehlungen zur sicheren Programmierung gibt es große<br />

Unterschiede zu Empfehlungen für klassische Webapplikationen. Viele der<br />

Funktionen, die bei klassischen Webapplikationen erst implementiert<br />

33 How To... Secure Permissions for Initial Content <strong>in</strong> <strong>SAP</strong> Enterprise Portal<br />

34 Angemerkt sei hier nochmals die Komplexität, die sich durch alle Bereiche bei der Untersuchung<br />

oder Adm<strong>in</strong>istration <strong>von</strong> <strong>SAP</strong> Systemen bemerkbar macht. E<strong>in</strong>e <strong>von</strong> <strong>SAP</strong> veröffentlichte Liste mit den<br />

<strong>von</strong> <strong>SAP</strong> verwendeten Ports erstreckt sich schon alle<strong>in</strong>e über 14-Seiten, die die <strong>von</strong> den Systemen<br />

verwendeten Ports beschreibt und die sich über den be<strong>in</strong>ahe gesamten Portbereich verteilen und<br />

gegenseitig überlagern.<br />

Damian Schlager Seite 78


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

werden müssen, werden schon <strong>von</strong> dem <strong>SAP</strong> System bereitgestellt oder<br />

teilweise bereitgestellt. Gleichzeitig werden die <strong>von</strong> <strong>SAP</strong> bereitgestellten<br />

Programme, die bei Unternehmen angepasst werden, nicht vollständig<br />

verstanden, was e<strong>in</strong> zusätzliches Risiko darstellt. Dennoch können e<strong>in</strong>ige<br />

der Empfehlungen, wie sie bei klassischen Webapplikationen gelten, auch<br />

bei <strong>SAP</strong> verwendet werden, teilweise haben sie veränderter Form<br />

Gültigkeit. In Anhang B: Konfigurationsempfehlungen und<br />

Programmierrichtl<strong>in</strong>ien ist e<strong>in</strong>e Liste der Empfehlungen <strong>auf</strong>geführt, wie sich<br />

im L<strong>auf</strong>e dieser Diplomarbeit erarbeitet werden konnte.<br />

E<strong>in</strong>satz spezieller <strong>Sicherheit</strong>sprodukte<br />

Die exemplarische Absicherung <strong>von</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong><br />

erfolgte mit denselben Webapplikationsfirewalls, die auch zur Absicherung<br />

der klassischen Webapplikation verwendet wurden.<br />

Die Konfiguration beider Webapplikationsfirewalls für Webapplikationen, die<br />

<strong>auf</strong> dem <strong>SAP</strong> ABAP Stack <strong>auf</strong>setzen, konnte durch den Lernmodus sehr<br />

e<strong>in</strong>fach erfolgen und benötigte nur sehr wenig manuelle Nacharbeit.<br />

E<strong>in</strong> Grund hierfür ist, dass ke<strong>in</strong>e Veränderung <strong>von</strong> Clientparametern <strong>in</strong> den<br />

gesicherten ABAP-Applikationen stattf<strong>in</strong>den. Webapplikationen des <strong>SAP</strong><br />

Systems mit ABAP Stack übertragen unter Umständen e<strong>in</strong>ige zusätzliche<br />

Informationen, wie z.B. die benutzte Sprache, <strong>in</strong> <strong>in</strong>nerhalb URL. Diese<br />

Parameter sollte fest als Base64 Str<strong>in</strong>g <strong>in</strong> die Regeln für den URL-Zugriff<br />

e<strong>in</strong>getragen werden und muss daher selbstverständlich für alle verwendete<br />

Parameter, die unterschiedlich se<strong>in</strong> können, z.B. verschiedene Sprachen<br />

unterschiedlicher Mitarbeiter, extra erfasst werden.<br />

Die NetCont<strong>in</strong>uum hat bereits viele häufig verwendete Parameter<br />

h<strong>in</strong>terlegt, darunter auch Session Identifiers. Fälschlicherweise wird der<br />

Base64 Str<strong>in</strong>g mit diesen Clientparametern <strong>von</strong> der Netcont<strong>in</strong>uum als<br />

Session Identifier betrachtet. Die Übertragung des Session Identifiers ist<br />

bei Webapplikationen <strong>von</strong> <strong>SAP</strong> mit ABAP Stack zwar <strong>in</strong> derselben Form<br />

möglich, wurde <strong>in</strong> der vorliegenden Applikation aber nicht verwendet.<br />

Durch die Kenntnis <strong>von</strong> bei <strong>SAP</strong> immer verfügbaren Parametern, die<br />

besondere <strong>Sicherheit</strong>srelevanz besitzen, kann e<strong>in</strong>e Absicherung dieser<br />

<strong>Sicherheit</strong>sprobleme erfolgen. Hier ist der Parameter sap-client<br />

hervorzuheben, dessen Absicherung unbed<strong>in</strong>gt mit allen<br />

Webapplikationsfirewalls möglich se<strong>in</strong> muss und mit den hier getesteten<br />

Webapplikationsfirewalls auch möglich war.<br />

Damian Schlager Seite 79


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Dies war allerd<strong>in</strong>gs nicht durch lernen möglich. Dieser Parameter muss<br />

manuell <strong>auf</strong> e<strong>in</strong>en festen Wert festlegt werden.<br />

Bei den äußerst wenigen Installationen <strong>von</strong> Webapplikationsfirewalls, die<br />

bereits zur Absicherung <strong>von</strong> <strong>SAP</strong> e<strong>in</strong>gerichtet wurden, s<strong>in</strong>d notwendige<br />

E<strong>in</strong>stellungen wie dieser Parameter bisher nicht berücksichtigt worden.<br />

Auch bei Portalapplikationen, also Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> mit<br />

JAVA Stack, funktionierte der Lernmodus bei beiden Produkten<br />

überaschend gut. Dies enstprach nicht der Erwartung des Verfassers, da<br />

vor allem die Komplexität des <strong>SAP</strong>-Portals mit den dynamischen URLs<br />

typischerweise mehr Probleme bei der Def<strong>in</strong>ition der Regeln erwarten ließ.<br />

Dass e<strong>in</strong>e Portalapplikation dennoch so gut abzusichern war, ließ sich <strong>auf</strong><br />

mehrere Faktoren zurückführen.<br />

Die Portalapplikation muss gut programmiert se<strong>in</strong> und somit <strong>in</strong><br />

ihrem Verhalten e<strong>in</strong>deutig und vorhersagbar<br />

Es dürfen nur wenig, im Idealfall ke<strong>in</strong>e Abhängigkeiten <strong>von</strong> anderen<br />

Komponenten bestehen<br />

Das Programm muss trotz Komplexität der Möglichkeiten <strong>in</strong> sich<br />

e<strong>in</strong>fach se<strong>in</strong><br />

Es sollte ke<strong>in</strong>e Nutzung <strong>von</strong> Parametern <strong>in</strong> der URL wie z.B.<br />

/prtmode/x <strong>in</strong>nerhalb des Applikationsverl<strong>auf</strong>es stattf<strong>in</strong>den oder sich<br />

<strong>auf</strong> möglichst wenige solche Parameter beschränken<br />

E<strong>in</strong> Ausschnitt e<strong>in</strong>er typischen dynamische URL, wie sie <strong>SAP</strong> verwendet wird<br />

ist <strong>in</strong> Abbildung 36: <strong>SAP</strong> Portal-URL dargestellt.<br />

Abbildung 36: <strong>SAP</strong> Portal-URL<br />

Obwohl die Komplexität der Portalanwendungen überaschend wenig<br />

Probleme bereitet, muss bei der Konfiguration <strong>von</strong> Webapplikationsfirewalls<br />

dennoch <strong>auf</strong> e<strong>in</strong>ige Besonderheiten geachtet werden, die bei<br />

Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> mit JAVA Stack häufig zu sehen se<strong>in</strong><br />

werden.<br />

Das Regelwerk der Webapplikationsfirewalls, die <strong>in</strong> e<strong>in</strong>em Lernmodus<br />

vorkonfiguriert werden, kann sehr schnell sehr unübersichtlich und damit<br />

unwartbar werden. Nachfolgend <strong>in</strong> Abbildung 37: Gelerntes Regelwerk für<br />

das <strong>SAP</strong> Portal s<strong>in</strong>d die Regeln für den URL-Zugriff dargestellt, wie sie <strong>von</strong><br />

Citrix im Verl<strong>auf</strong> der Konfiguration e<strong>in</strong>er Portalapplikation gelernt wurden.<br />

Damian Schlager Seite 80


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 37: Gelerntes Regelwerk für das <strong>SAP</strong> Portal<br />

Die Regeln, die bei Citrix aus Regular Expressions bestehen, s<strong>in</strong>d schon für<br />

wenige Seiten sehr zahlreich und können bei großen Applikationen schnell<br />

nur noch schwer zu warten werden. Daher müssen, wie schon bei der<br />

klassischen Webapplikation gesehen, Regeln verallgeme<strong>in</strong>ert werden. Bei<br />

Portalapplikationen führt dies aber mitunter *-Regeln (Vgl. Abbildung 38:<br />

Verallgeme<strong>in</strong>ertes Regelwerk für das <strong>SAP</strong> Portal), die <strong>in</strong> jedem Fall zu<br />

vermeiden s<strong>in</strong>d.<br />

Abbildung 38: Verallgeme<strong>in</strong>ertes Regelwerk für das <strong>SAP</strong> Portal<br />

Auch bei der Netcont<strong>in</strong>uum musste das dynamische Regelwerk manuell<br />

angepasst werden. Dies Beschränkte sich allerd<strong>in</strong>gs <strong>auf</strong> die Deaktivierung<br />

e<strong>in</strong>er speziellen Prüfung <strong>von</strong> Netcont<strong>in</strong>uum, die die Verwendung <strong>von</strong> Tilden<br />

<strong>in</strong> der URL zwar nicht verbietet, aber standardmäßig e<strong>in</strong>en E<strong>in</strong>trag über<br />

dessen Auftreten <strong>in</strong> das Logfile schreibt. Da bei Portalapplikationen alle<br />

Damian Schlager Seite 81


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Webdynpro Applikationen diese Tilde im Pfad <strong>auf</strong>weisen, würde das Logfile<br />

so schnell <strong>von</strong> diesen E<strong>in</strong>trägen überfüllt werden, wie es <strong>in</strong> Abbildung 39:<br />

Gleichartige Fehlermeldungen im Logfile geschehen ist.<br />

Abbildung 39: Gleichartige Fehlermeldungen im Logfile<br />

Insgesamt war die Absicherung der Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong><br />

mit JAVA Stack mit der Netcont<strong>in</strong>uum wesentlich e<strong>in</strong>facher und daher mit<br />

potentiell höherem Schutzlevel. Dennoch kann hier das Fazit gezogen<br />

werden, dass die Absicherung <strong>von</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong><br />

auch mit sehr unterschiedlichen Webapplikationsfirewalls möglich ist und<br />

damit e<strong>in</strong>en gangbaren Weg darstellt.<br />

4.5 Aufwand und erzielbare Ergebnisse bei der<br />

Absicherung<br />

Die sichere Konfiguration bei Webapplikationen ist mit vertretbarem<br />

Aufwand möglich und wird auch durchgeführt. Im gegensatz hierzu ist bei<br />

<strong>SAP</strong> e<strong>in</strong> großer Aufwand mit der Konfiguration verbunden. Gründe s<strong>in</strong>d vor<br />

Allem die Größe und Komplexität des Systems und die damit verbundene<br />

Rechtevergabe, <strong>auf</strong> die die <strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> basiert. Da bei <strong>SAP</strong><br />

Damian Schlager Seite 82


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

außerdem die Funktionalität im Vordergrund steht, ist das großzügige<br />

Aktivieren <strong>von</strong> Diensten verlockend, gerade wenn während der Installation<br />

des Systems nur begrenzt Zeit zur Verfügung steht und e<strong>in</strong>e sichere<br />

Konfiguration der Funktionalität im Wege steht (Abbildung 40:<br />

Diensteabhängigkeit bei <strong>SAP</strong>).<br />

Abbildung 40: Diensteabhängigkeit bei <strong>SAP</strong><br />

Die Möglichkeiten außerhalb der Benutzer- und Rechtekonfiguration s<strong>in</strong>d<br />

bei <strong>SAP</strong> im Gegensatz zu klassischen Webapplikationen beschränkt und<br />

lassen so kaum Möglichkeiten zu e<strong>in</strong>er erhöhten <strong>Sicherheit</strong> durch geänderte<br />

Konfigurationse<strong>in</strong>stellungen zu.<br />

Dennoch ist das Schutzlevel bzw. die Resistenz gegenüber<br />

Webapplikationsangriffen bei Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong><br />

grundsätzlich höher als bei klassischen Webapplikationen, aber nicht alle<strong>in</strong>e<br />

ausreichend.<br />

E<strong>in</strong>e sichere Programmierung ist sowohl bei klassischen Webapplikationen<br />

als auch bei Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> wichtig. Bei e<strong>in</strong>er<br />

manuellen Untersuchung <strong>von</strong> ABAP konnte, wie auch durch e<strong>in</strong>e Web- und<br />

Literaturrecherche, ke<strong>in</strong> generischer Angriff wie Command Injection<br />

gefunden werden, und auch e<strong>in</strong> Quellcodeaudit <strong>von</strong> JAVA Programmen<br />

zeigte ke<strong>in</strong>e Schwachstellen. Dennoch ist auch hier Fachkenntnis und<br />

<strong>Sicherheit</strong>sbewusstse<strong>in</strong> wichtig, da z.B. beim APAB Stack Bauste<strong>in</strong>e für<br />

e<strong>in</strong>en direkten Datenbankzugriff verfügbar s<strong>in</strong>d und Gespräche des<br />

Verfassers mit <strong>SAP</strong>-Beratern gezeigt haben, dass diese aus<br />

Performancegründen auch gerne e<strong>in</strong>gesetzt werden. Da aber gerade die<br />

Verwendung der richtigen Bauste<strong>in</strong>e für den bei <strong>SAP</strong> gegebenen Schutz<br />

gegen SQL Injection sorgt, ist so e<strong>in</strong> Schutz vor SQL-Injection nicht<br />

Damian Schlager Seite 83


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

garantiert. Im übrigen kann die Sprache ABAP als resistenter gegenüber<br />

Angriffen bezeichnet werden, da für ABAP, wie erwähnt, ke<strong>in</strong>e generischen<br />

Angriffe bekannt s<strong>in</strong>d oder gefunden wurden.<br />

Bei der Absicherung der Webapplikationen durch <strong>Sicherheit</strong>sprodukte zeigt<br />

sich, dass diese <strong>auf</strong> klassische Webapplikaiton zugeschnitten s<strong>in</strong>d. Es gibt<br />

bei <strong>SAP</strong>, sowohl beim ABAP Stack als auch beim JAVA Stack kle<strong>in</strong>ere<br />

H<strong>in</strong>dernisse bei der Konfiguration, die bei klassischen Webapplikationen<br />

selten <strong>auf</strong>treten. Die Funktionalität ist sowohl für klassische<br />

Webapplikationen als auch für Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong><br />

herstellbar, lediglich der zu betreibende Aufwand ist gegenwärtig für <strong>SAP</strong><br />

basierte Webapplikationen höher.<br />

4.6 Zusammenfassung<br />

Aus konzeptioneller Sicht s<strong>in</strong>d dich <strong>Sicherheit</strong>sarchitekturen zur<br />

Absicherung <strong>von</strong> klassischen Webapplikationen und Webapplikationen <strong>auf</strong><br />

Basis <strong>von</strong> <strong>SAP</strong> recht ähnlich. Bei klassischen Webapplikationen hat man<br />

zunehmend die Schutzbedürftigkeit gerade gegenüber<br />

Webapplikationsangriffen erkannt und so erfahren beispielsweise<br />

Webapplikationsfirewalls gerade zum Zeitpunkt der Erstellung dieser<br />

Diplomarbeit e<strong>in</strong>en beg<strong>in</strong>nenden Boom. E<strong>in</strong>e Übertragung des effektiven<br />

Webapplikationsschutzes <strong>auf</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> ist<br />

dagegen noch überwiegend unbekannt. Wie <strong>in</strong> diesem Kapitel beschrieben<br />

kann die <strong>von</strong> <strong>SAP</strong> empfohlene Schutzarchitektur dies nicht leisten, was zu<br />

der Ersetzung des <strong>von</strong> <strong>SAP</strong> empfohlenen Dispatchers durch<br />

Weapplikationsfirewalls <strong>in</strong> dieser Diplomarbeit führte.<br />

Bei der Konfiguration setzt sich dieser E<strong>in</strong>druck fort. So f<strong>in</strong>den sich bei<br />

klassischen Webapplikationen, wie <strong>in</strong> dieser Diplomarbeit anhand Apache<br />

und PHP, zahlreiche Stellschrauben, die zusätzliche Funktionen bieten oder<br />

deren Deaktivierung zu e<strong>in</strong>er erhöhten <strong>Sicherheit</strong> führt. Bei <strong>SAP</strong> wird die<br />

<strong>Sicherheit</strong> hauptsächlich durch Rechtevergabe def<strong>in</strong>iert und so s<strong>in</strong>d nur<br />

wenige E<strong>in</strong>stellungen, die die zusätzlichen Funktionen zugunsten e<strong>in</strong>er<br />

erhöhten <strong>Sicherheit</strong> verändern können verfügbar mit Ausnahme e<strong>in</strong>er sehr<br />

komplexen Benutzerverwaltung.<br />

Auch wenn die Motivation und Grundsätze e<strong>in</strong>er sicheren Programmierung<br />

generisch anwendbar s<strong>in</strong>d, zeigen sich durch die grundsätzlichen<br />

Unterschiede zwischen klassischer Webapplikation und <strong>SAP</strong> System auch<br />

grundsätzliche Unterschiede bei den Programmierungsrichtl<strong>in</strong>ien.<br />

Hauptursache hierfür ist die massive Benutzung <strong>von</strong> Bibliotheken bei <strong>SAP</strong><br />

Damian Schlager Seite 84


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

während es sich bei klassischen Webapplikationen um überwiegend <strong>von</strong><br />

Grund <strong>auf</strong> selbst programmierte Applikationen handelt. Somit haben hat<br />

nur e<strong>in</strong> Teil der Programmierungsrichtl<strong>in</strong>ien, wie sie bei klassischen<br />

Webapplikationen üblich s<strong>in</strong>d Gültigkeit bei Webapplikationen <strong>auf</strong> Basis <strong>von</strong><br />

<strong>SAP</strong>, andere s<strong>in</strong>d nur e<strong>in</strong>geschränkt oder <strong>in</strong> veränderter Form anwendbar.<br />

Die <strong>in</strong> der Praxis auch zunehmend bedeutendere Absicherung durch<br />

Webapplikationsfirewalls ist sowohl bei klassischen Webapplikationen als<br />

auch bei Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> möglich. Die beispielhafte<br />

Absicherung <strong>von</strong> Webapplikationen <strong>auf</strong> den <strong>SAP</strong> Systemen gelang sogar mit<br />

weniger Problemen als erwartet und ergab ebenso wie bei den klassischen<br />

Webapplikationen e<strong>in</strong>en effektiven Schutz. Gleichzeitig war zu beobachten,<br />

dass die Webapplikationsfirewalls nicht spezifisch <strong>auf</strong> die Eigenheiten <strong>von</strong><br />

<strong>SAP</strong> Systemen vorbereitet s<strong>in</strong>d, was z.B. zu der oben erwähnten<br />

Überfüllung der Logfiles mit E<strong>in</strong>trägen über die völlig normale Tilde im URL<br />

Pfad fürhte, wie sie bei klassischen Webapplikationen nur seltenst<br />

vorkommt.<br />

Insgesamt ist die Absicherung <strong>von</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong><br />

anhand der <strong>in</strong> dieser Diplomarbeit gesetzten Rahmenbed<strong>in</strong>gungen mit<br />

e<strong>in</strong>em erhöhten Aufwand möglich wie es auch für klassische<br />

Webapplikationen möglich ist, trotz der teilweisen deutlichen Unterschiede<br />

bei den Möglichkeiten der Konfiguration und Programmierung.<br />

Damian Schlager Seite 85


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

5 Zusammenfassung der Ergebnisse und<br />

Ausblick<br />

Im Folgenden s<strong>in</strong>d die Ergebnisse dieser Diplomarbeit nochmals kurz<br />

zusammengefasst und es wird versucht, diese <strong>in</strong> e<strong>in</strong>en größeren<br />

Zusammenhang zu stellen.<br />

Als zweiten Teil wird außerdem versucht, e<strong>in</strong>e Perspektive für die<br />

zukünftige Entwicklung dieses Themas zu verfassen und hierbei <strong>auf</strong> Punkte<br />

e<strong>in</strong>zugehen, den <strong>in</strong> Zukunft erhöhte Aufmerksamkeit geschenkt werden<br />

sollte und welche Arbeiten mit dieser Diplomarbeit abgeschlossen s<strong>in</strong>d oder<br />

noch weitere Forschungstätigkeit benötigen.<br />

5.1 Zusammenfassung der Ergebnisse<br />

Diese DA beschäftigte sich vor Allem mit technischen <strong>Sicherheit</strong>saspekten<br />

der <strong>Sicherheit</strong> <strong>von</strong> klassischen Webapplikationen und <strong>SAP</strong>, wie sie <strong>in</strong><br />

H<strong>in</strong>blick <strong>auf</strong> die reale Durchführung <strong>von</strong> Audits und Absicherungen relevant<br />

se<strong>in</strong> werden.<br />

In Kapitel 2.2 wurden darüber h<strong>in</strong>ausgehende Aspekte <strong>auf</strong>gezeigt, die <strong>in</strong><br />

e<strong>in</strong>er Abschätzung der <strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> ebenfalls e<strong>in</strong>e Rolle spielen und<br />

die <strong>in</strong> Kapitel 3 und 4 untersuchten, technischen Aspekte bee<strong>in</strong>flussen<br />

können. Gerade diese weitergehenden Aspekte zeigen, dass die<br />

umfassende Integration <strong>von</strong> <strong>Sicherheit</strong>sgedanken <strong>in</strong> personellen und<br />

organisatorischen Bereichen im <strong>SAP</strong> Umfeld weniger ausgeprägt ist als bei<br />

klassischen Webapplikationen. Dies kann dazu führen, dass die effektive<br />

<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> Systemen ger<strong>in</strong>ger ist, als sie vom technischen<br />

Standpunkt se<strong>in</strong> könnte.<br />

Bei den näher betrachteten technischen Aspekten zeigte sich dagegen, dass<br />

<strong>SAP</strong> grundsätzlich resistenter gegenüber Webapplikationsangriffen ist.<br />

Hierbei gibt allerd<strong>in</strong>gs große Unterschiede zwischen <strong>SAP</strong> <strong>auf</strong> ABAP oder<br />

JAVA Stack. Während es beim JAVA Stack selbst kaum generische<br />

Ansatzpunkte gibt, zeigt der ABAP Stack e<strong>in</strong>ige Verwundbarkeiten, die<br />

unabhängig <strong>von</strong> der konkreten Applikation immer bestehen und auch<br />

generell e<strong>in</strong>e größere Anfälligkeit gegenüber Webapplikationsangriffen.<br />

Ergänzend lässt sich <strong>in</strong> diesem Punkt aber e<strong>in</strong>e Verbesserung bei der<br />

<strong>neue</strong>ren Version 700 gegenüber der älteren 640 erkennen.<br />

Damian Schlager Seite 86


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Bei der Absicherung <strong>von</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> ergab sich<br />

zum e<strong>in</strong>en, dass es gerade bei den Punkten sichere Programmierung und<br />

Konfiguration bei <strong>SAP</strong> weniger Möglichkeiten gibt, als sie <strong>von</strong> klassischen<br />

Webapplikationen bekannt s<strong>in</strong>d. Die Absichrung mittels<br />

Webapplikationsfirewalls h<strong>in</strong>gegen funktionierte überraschend gut,<br />

allerd<strong>in</strong>gs mit erhöhtem Konfigurations<strong>auf</strong>wand. Dies führt der Verfasser<br />

dar<strong>auf</strong> zurück, dass konkrete Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> <strong>in</strong> den<br />

getesteten Fällen nur sehr wenig gebrauch <strong>von</strong> der grundsätzlich<br />

gegebenen Flexibilität der <strong>SAP</strong> Architektur, im Besonderen des URL-<br />

Aufbaus, machen. Auch hier zeigt sich, dass das im Rahmen dieser<br />

Diplomarbeit gewonnene Fachwissen notwendig ist um beispielsweise<br />

spezielle Eigenschaften wie global verfügbare Parameter zu berücksichtigen<br />

oder bei der Nachbearbeitung der bestehenden oder dynamischen,<br />

gelernten Regeln.<br />

5.2 Ausblick<br />

Wie zuvor erwähnt stellt diese Diplomarbeit die Basis für zukünftige Audits<br />

oder Maßnahmen zur Absicherung <strong>von</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong><br />

dar. Mit Hilfe der hier gewonnen Erkenntnisse ist es möglich, sowohl e<strong>in</strong><br />

qualifiziertes Audit durchzuführen, als auch e<strong>in</strong>e Absicherung <strong>von</strong> <strong>SAP</strong><br />

Systemen und Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> mit Hilfe der immer<br />

stärker nachgefragen Webapplikationsfirewalls.<br />

Es blieben mit Ende dieser Diplomarbeit auch Themen, die weiterer<br />

Erfahrung bedürfen, <strong>in</strong>sbesondere s<strong>in</strong>d die Möglichkeiten, das Verhalten<br />

<strong>von</strong> Webapplikationen <strong>auf</strong> JAVA Stack mit Hilfe <strong>von</strong> URL-Parametern zu<br />

bee<strong>in</strong>flussen nicht abschließend geklärt.<br />

Der wichtigste Punkt wird aber se<strong>in</strong>, Erfahrungen sowohl mit dem<br />

Auditieren <strong>von</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> also auch deren<br />

Absicherung zu sammeln. Nachdem mit dieser Diplomarbeit e<strong>in</strong>e Basis für<br />

e<strong>in</strong>e solche Arbeit gegeben ist, werden auch mit kommenden, real<br />

durchgeführten Arbeiten die Erfahrung zunehmen und somit auch <strong>neue</strong><br />

Erkenntnisse gewonnen werden, die so zukzessive <strong>auf</strong>gebaut werden<br />

können.<br />

E<strong>in</strong>e steigende Nachfrage sowohl nach Audits als auch nach Absicherung ist<br />

bereits gegeben und wird sich voraussichtlich noch verstärken, da<br />

Gespräche mit Verantwortlichen e<strong>in</strong> steigendes Bewusstse<strong>in</strong> für die<br />

Problematik der Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> gezeigt haben und der<br />

Damian Schlager Seite 87


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Frage nach der <strong>Sicherheit</strong> <strong>von</strong> Webapplikationen <strong>auf</strong> Basis <strong>von</strong> <strong>SAP</strong> häufig<br />

noch mittels Security by Obscurity begenet wurde. Dies kann nun durch<br />

konkrete und qualifiziertere Arbeiten adressiert werden als es bislang<br />

möglich war und somit e<strong>in</strong> verlässlicheres <strong>Sicherheit</strong>sniveau erreicht<br />

werden.<br />

Damian Schlager Seite 88


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

6 Literaturverzeichnis<br />

1 Enterprise Ressource Plann<strong>in</strong>g,<br />

http://de.wikipedia.org/wiki/Enterprise_Resource_Plann<strong>in</strong>g<br />

2 What is ERP?, http://www.tech-faq.com/erp.shtml<br />

3 Frank Niemann, 2007: Im Markt für ERP-, CRM- und SCM-Lösungen ist<br />

der Mittelstand Antreiber, <strong>in</strong> Computerwoche,<br />

http://www.computerwoche.de/top_100/software/546025/<br />

4 Architektur des <strong>SAP</strong> Web AS, <strong>in</strong> <strong>SAP</strong>-Bibliothek,<br />

http://help.sap.com/saphelp_nw04/helpdata/de/84/54953fc405330ee100<br />

00000a114084/content.htm<br />

5 Glossar und Begriffsdef<strong>in</strong>itionen, <strong>in</strong> Grundschutzhandbuch Bundesamt für<br />

<strong>Sicherheit</strong> <strong>in</strong> der Informationstechnik, Bauste<strong>in</strong> 04,<br />

http://www.bsi.bund.de/gshb/deutsch/baust/04.htm<br />

6 Leitfaden IT <strong>Sicherheit</strong> – IT-Grundschutz kompakt, Bundesamt für<br />

<strong>Sicherheit</strong> <strong>in</strong> der Informationstechnik,<br />

http://www.bsi.de/gshb/Leitfaden/GS-Leitfaden.pdf<br />

7 Markus Herren, Informationssicherheit – e<strong>in</strong>e Frage der Kultur, <strong>in</strong><br />

http://www.conpro.ch/de/themen/<strong>in</strong>formation-security.aspx<br />

8 InfoSec Acceptable Use Policy, <strong>in</strong><br />

http://www.sans.org/resources/policies/Acceptable_Use_Policy.pdf<br />

9 Web Application Security – der bl<strong>in</strong>de Fleck der Internetsicherheit, <strong>in</strong><br />

TecChannel,<br />

http://www.tecchannel.de/sicherheit/grundlagen/474056/<strong>in</strong>dex2.html<br />

10 Mario L<strong>in</strong>kies, Frank Off, Enterprise Portal, <strong>SAP</strong> Security and<br />

Authorizations, Galileo Press<br />

11 Frederic He<strong>in</strong>emann, Christian Rau, <strong>SAP</strong> Web Application Server, Galileo<br />

Press<br />

12 Jört Altmeier, <strong>SAP</strong>-Security – Roadmap zur Umsetzung, <strong>in</strong> Security<br />

Manager,<br />

http://www.securitymanager.de/magaz<strong>in</strong>/artikel_988_sapsecurity_road<br />

map_zu_umsetzung.html<br />

13 Khalid Kark, The cost of data breaches: Look<strong>in</strong>g at the hard numbers, <strong>in</strong><br />

http://searchsecurity.techtarget.com/tip/0,289483,sid14_gci1248216,00<br />

.html?track=NL-430&ad=581112USCA&asrc=EM_NLT_1164363&uid=41<br />

99563<br />

14 Andy Müller-Maguhn – Vortrag “Die Illusion IT-<strong>Sicherheit</strong>: Strategien und<br />

Erfahrungen“<br />

15 XSS (Cross Site Script<strong>in</strong>g) Cheat Sheet, <strong>in</strong> http://ha.ckers.org/xss.html<br />

16 News Meldung, <strong>in</strong> http://www.heise.de/newsticker/meldung/100976<br />

17 Threat Classification, OS Command<strong>in</strong>g, <strong>in</strong><br />

http://www.webappsec.org/projects/threat/classes/os_command<strong>in</strong>g.sht<br />

ml<br />

18 Web Application Security Statistics, <strong>in</strong><br />

http://www.webappsec.org/projects/statistics/<br />

20 Hypertext Transfer Protocol – HTTP/1.1, <strong>in</strong><br />

http://www.w3.org/Protocols/rfc2616/rfc2616.html<br />

Damian Schlager Seite 89


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

23 Integration e<strong>in</strong>er Web-Anwendung mit Web-, Applikations- und<br />

Datenbank-Server <strong>in</strong> e<strong>in</strong> <strong>Sicherheit</strong>sgateway<strong>in</strong> Grundschutzhandbuch<br />

Bundesamt <strong>in</strong> der Informationstechnik, , Massnahme 5.119,<br />

http://www.bsi.bund.de/gshb/deutsch/m/m05119.htm<br />

24 Us<strong>in</strong>g Multiple Network Zones, <strong>in</strong> <strong>SAP</strong> Library,<br />

http://help.sap.com/saphelp_nw04s/helpdata/en/8d/f3da779bd02c4fa54<br />

fda5d6944f2d6/frameset.htm<br />

25 The Web Application Firewall Forecast: 2007 to 2010, <strong>in</strong><br />

http://www.forrester.com/Research/Document/Excerpt/0,7211,41780,00<br />

.html<br />

26 Web Application Firewall Evaluation Criteria, <strong>in</strong><br />

http://www.webappsec.org/projects/wafec/v1/wasc-wafec-v1.0.html<br />

31 ABAP Security Guide, Secure Permissions for Initial Content <strong>in</strong> <strong>SAP</strong><br />

32 <strong>SAP</strong> NetWeaver Server Security Guide,<br />

http://help.sap.com/saphelp_nw70/helpdata/en/8c/2ec59131d7f84ea51<br />

4a67d628925a9/content.htm<br />

33 <strong>SAP</strong> HowTo Guide: How To... Secure Permissions for Initial Content <strong>in</strong><br />

<strong>SAP</strong> Enterprise Portal<br />

35 Glossar, <strong>in</strong> <strong>SAP</strong>-Bibliothek,<br />

http://help.sap.com/saphelp_46c/helpdata/de/35/2cd77bd7705394e100<br />

00009b387c12/frameset.htm<br />

36 Security Audits, <strong>in</strong> http://www.bitpipe.com/tlist/Security-Audits.html<br />

37 RFC 3548 – The Base16, Base32, and Base64 Data Encod<strong>in</strong>gs, <strong>in</strong><br />

http://www.faqs.org/rfcs/rfc3548.html<br />

38 Web Application Scanner, <strong>in</strong> SecureNet,<br />

http://www.securenet.de/front_content.php?idcatart=93<br />

39 ERP, <strong>in</strong> http://lexikon.mart<strong>in</strong>vogel.de/erp.html<br />

40 Glossary, <strong>in</strong> http://phoenix5.org/glossary/false_positive.html<br />

41 Glossary <strong>in</strong> <strong>SAP</strong> Info,<br />

http://www.sap.<strong>in</strong>fo/public/DE/de/glossary/de/glossaryletter/Word-<br />

38053d4a86b283db5_glossary/I<br />

42 Die <strong>SAP</strong> NetWeaver Komponenten, <strong>in</strong><br />

http://www.oio.de/sap-netweaver-components.htm<br />

43 proof of conce, <strong>in</strong> Bus<strong>in</strong>essDictionary,<br />

http://www.bus<strong>in</strong>essdictionary.com/def<strong>in</strong>ition/proof-of-concept.html<br />

44 ABAP Workbench, <strong>in</strong> <strong>SAP</strong>-Bibliothek,<br />

http://help.sap.com/saphelp_46c/helpdata/de/35/26b273afab52b9e100<br />

00009b38f974/content.htm<br />

45 Web Security Glossary, <strong>in</strong> http://www.webappsec.org/projects/glossary/<br />

Damian Schlager Seite 90


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

7 Glossar<br />

ABAP: Advanced Bus<strong>in</strong>ess Application Programm<strong>in</strong>g.<br />

Programmiersprache, die <strong>SAP</strong> zur Entwicklung <strong>von</strong><br />

Anwendungsprogrammen entwickelt hat 35<br />

Audit: E<strong>in</strong> (<strong>Sicherheit</strong>s)audit ist e<strong>in</strong>e systematische Evaluation der<br />

<strong>Sicherheit</strong> <strong>von</strong> IT-Systemen <strong>in</strong> e<strong>in</strong>em Unternehmen durch Messen, wie gut<br />

es den vorgegebenen Kriterien entspricht. 36<br />

Angriff: E<strong>in</strong> Angriff ist e<strong>in</strong>e vorsätzliche Form der Gefährdung, nämlich e<strong>in</strong>e<br />

unerwünschte oder unberechtigte Handlung mit dem Ziel, sich Vorteile zu<br />

verschaffen bzw. e<strong>in</strong>en Dritten zu schädigen. Angreifer können auch im<br />

Auftrag <strong>von</strong> Dritten handeln, die sich Vorteile verschaffen wollen. 37<br />

Authentisierung: Authentisierung bezeichnet den Nachweises e<strong>in</strong>es<br />

Kommunikationspartners, dass er tatsächlich derjenige ist, der er vorgibt<br />

zu se<strong>in</strong>. Dies kann unter Anderem durch Passwort-E<strong>in</strong>gabe, Chipkarte oder<br />

Biometrie erfolgen. 37<br />

Authentizität: Gewährleistung, dass e<strong>in</strong> Kommunikationspartner<br />

tatsächlich derjenige ist, der er vorgibt zu se<strong>in</strong>. Bei authentischen<br />

Informationen ist sichergestellt, dass sie <strong>von</strong> der angegebenen Quelle<br />

erstellt wurden. 37<br />

Authorisierung: Bei e<strong>in</strong>er Autorisierung wird geprüft, ob e<strong>in</strong>e Person, IT-<br />

Komponente oder Anwendung zur Durchführung e<strong>in</strong>er bestimmten Aktion<br />

berechtigt ist. 37<br />

Base64: Encodierungsalgorithmus für beliebige Daten unter Verwendung<br />

des US-ASCII Zeichensatzes 5<br />

Crawl: english: krabbeln; Bezeichnet die Indizierung e<strong>in</strong>er Webseite,<br />

wobei allen L<strong>in</strong>ks gefolgt wird und Buttons aktiviert werden. So erhält das<br />

35<br />

http://help.sap.com/saphelp_46c/helpdata/de/35/2cd77bd7705394e10000009b387c12/frameset.ht<br />

m<br />

36 http://www.bitpipe.com/tlist/Security-Audits.html<br />

Damian Schlager Seite 91


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Programm Wissen über den Aufbau der Site, die Funktionsweise <strong>von</strong><br />

Dialogschritten und den Inhalte <strong>von</strong> Formular-Seiten. 38<br />

Deployment: Das gezielte Übertragen <strong>von</strong> Software and alle Zielrechner<br />

bzw. all an e<strong>in</strong>em betrieblichen Prozess beteiligten Rechner so dass all mit<br />

derselben Software arbeiten.<br />

ERP: Enterprise Resource Plann<strong>in</strong>g - englisch: Planung <strong>von</strong><br />

Unternehmensressourcen; ERP bezeichnet im allgeme<strong>in</strong>en<br />

Softwarelösungen, die den betriebswirtschaftlichen Abl<strong>auf</strong> steuern und<br />

auswerten (Controll<strong>in</strong>g). 39<br />

False Positive: E<strong>in</strong> false Positive liegt vor, wenn e<strong>in</strong> Test fälschlicherweise<br />

e<strong>in</strong> positives Ergenis zurückliefert. 40<br />

Gefahr (Bedrohung) : E<strong>in</strong>e Bedrohung ist ganz allgeme<strong>in</strong> e<strong>in</strong> Umstand<br />

oder Ereignis, durch den oder das e<strong>in</strong> Schaden entstehen kann. 37<br />

Gefährdung: E<strong>in</strong>e Gefährdung ist e<strong>in</strong>e Bedrohung, die konkret <strong>auf</strong> e<strong>in</strong><br />

Objekt über e<strong>in</strong>e Schwachstelle e<strong>in</strong>wirkt. E<strong>in</strong>e Bedrohung wird somit erst<br />

durch e<strong>in</strong>e vorhandene Schwachstelle zur Gefährdung für e<strong>in</strong> Objekt. 37<br />

ITIL: IT Infrastructure Library. De-facto-Standard im Bereich Service<br />

Management und be<strong>in</strong>haltet e<strong>in</strong>e umfassende und öffentlich verfügbare<br />

fachliche Dokumentation zur Planung, Erbr<strong>in</strong>gung und Unterstützung <strong>von</strong><br />

IT-Serviceleistungen 12 .<br />

IT-<strong>Sicherheit</strong>: siehe Kapitel 2.2.1<br />

ITS:<br />

Internet Transaction Server: Schnittstelle zwischen dem <strong>SAP</strong><br />

System und dem Internet oder Intranet 41<br />

Klassische Webapplikation: Bezeichnet <strong>in</strong> dieser Diplomarbeit<br />

Webapplikationen <strong>auf</strong> Basis <strong>von</strong> bekannten und weit verbreiteten<br />

<strong>Technologien</strong> und Produkten wie Apache und PHP oder Java.<br />

38 http://www.securenet.de/front_content.php?idcatart=93<br />

39 http://lexikon.mart<strong>in</strong>vogel.de/erp.html<br />

40 http://phoenix5.org/glossary/false_positive.html<br />

41 http://www.sap.<strong>in</strong>fo/public/DE/de/glossary/de/glossaryletter/Word-<br />

38053d4a86b283db5_glossary/I<br />

Damian Schlager Seite 92


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Mandant: E<strong>in</strong>e für sich handelsrechtlich, organisatorisch und<br />

datentechnisch abgeschlossene E<strong>in</strong>heit <strong>in</strong>nerhalb e<strong>in</strong>es <strong>SAP</strong>-Systems mit<br />

getrennten Stammsätzen und e<strong>in</strong>em eigenständigen Satz <strong>von</strong> Tabellen. 35<br />

<strong>SAP</strong> Portal: Das <strong>SAP</strong> Enterprise Portal hat die Aufgabe, e<strong>in</strong>en e<strong>in</strong>heitlich<br />

gestalteten und dem Unternehmen angepassten Zugang für alle im<br />

Unternehmen vorhandenen Informationen zu ermöglichen. Das Portal ist<br />

e<strong>in</strong> Bestandteil des <strong>SAP</strong> NetWeavers. 42<br />

Proof of Concept: E<strong>in</strong> Proof of Concept ist e<strong>in</strong> Beweis, der zeigt, dass e<strong>in</strong>e<br />

Idee, Erf<strong>in</strong>dung, Technologie – oder <strong>in</strong> diesem Fall Angriff – anwendbar<br />

ist. 43<br />

<strong>SAP</strong>:<br />

Systeme, Anwendungen und Produkte <strong>in</strong> der Datenberarbeitung<br />

Transaktion: Logisch abgeschlossener Vorgang im R/3-System. Aus<br />

Benutzersicht stellt es e<strong>in</strong>e E<strong>in</strong>heit dar, aus Programmierungssicht ist es e<strong>in</strong><br />

komplexes Objekt bzw. Vorgang. 44<br />

Webapplikationsscanner: E<strong>in</strong> automatiertes <strong>Sicherheit</strong>sprogramm, das<br />

Webapplikationen nach Verwundbarkeiten durchsucht. 45<br />

42 http://www.oio.de/sap-netweaver-components.htm<br />

43 http://www.bus<strong>in</strong>essdictionary.com/def<strong>in</strong>ition/proof-of-concept.html<br />

44<br />

http://help.sap.com/saphelp_46c/helpdata/de/35/26b273afab52b9e10000009b38f974/content.htm<br />

45 http://www.webappsec.org/projects/glossary/<br />

Damian Schlager Seite 93


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

8 Anhänge<br />

8.1 Anhang A: Beschreibung der Komponenten<br />

des <strong>SAP</strong> NetWeavers<br />

People <strong>in</strong>tegration: Zeigt Personen nur die richtigen und wesentlichen<br />

Informationen, die aus verschiedenen Quellen gewonnen werden können,<br />

wie Data Warehouse, Web, Desktops etc. und bietet ausserdem die<br />

Möglichkeit, diese Daten unter e<strong>in</strong>er e<strong>in</strong>heitlichen Oberfläche darzustellen.<br />

Zentrale Funktionen s<strong>in</strong>d das Portal mit personalisiertem und<br />

rollenbasierten Zugriff, Collaboration mit Groupware und Teamräumen etc.<br />

und Multi Channel Access, der den Zugriff über die verschiedensten<br />

Endgeräte ermöglicht. Das Portal ist <strong>in</strong>zwischen für e<strong>in</strong>ige Anwendungen<br />

notwendig, wie z.B. Guided Procedures oder Visual Composer und soll auch<br />

<strong>in</strong> Zukunft als zentraler E<strong>in</strong>stiegspunkt für alle <strong>SAP</strong> Applikationen dienen.<br />

Information Integration: Führt alle Daten e<strong>in</strong>es Unternehmens<br />

zusammen, gewährleistet deren Integrität und sogt so auch für e<strong>in</strong>e<br />

Harmonisierung der Datenbestände und deren garantierten Zugriff<br />

unabhängig <strong>von</strong> ihrm Speicherort.<br />

Die Zentralen Funktionen bei der Information Integration s<strong>in</strong>d im <strong>SAP</strong><br />

Umfeld häufig benannte Funktionen. Zum e<strong>in</strong>en die Bus<strong>in</strong>ess Intelligence,<br />

die für die Informations<strong>auf</strong>bereitung sorgt und so Entscheidungen<br />

erleichtert und ausserdem die Erstellung <strong>von</strong> Berichten unterstützt. Des<br />

weiteren gehört zur Information Integration das Knowledge Management,<br />

die den Zugriff <strong>auf</strong> verteilte Informationen, die Suche dar<strong>in</strong>, Klassifikation,<br />

Versionierung etc. übernimmt. Als letzter Bauste<strong>in</strong> der Information<br />

Integration steht das Master Data Management, das für die Datenhaltung<br />

und deren Verfügbarkeit sorgt und üblicherweise die zentrale Datenhaltung<br />

der <strong>SAP</strong> Landschaft darstellt. Bei Master Data Management handelt es sich<br />

um e<strong>in</strong> zugek<strong>auf</strong>tes Produkt, das nicht vollständig <strong>in</strong> die <strong>SAP</strong> Architektur<br />

<strong>in</strong>tegriert ist. Da es sich <strong>in</strong> nahezu allen Bereichen <strong>von</strong> den typischen <strong>SAP</strong><br />

Produkten unterscheidet wird bei Überprüfungen nicht betrachtet.<br />

Process <strong>in</strong>tegration: Sorgt für die Integration <strong>von</strong> heterogenen<br />

Komponenten <strong>in</strong> e<strong>in</strong>em Geschäftsprozess. Kernpunkt ist <strong>SAP</strong> XI, das den<br />

XML basierten Austausch <strong>von</strong> Informationen zwischen <strong>SAP</strong> Komponenten<br />

Damian Schlager Seite 94


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

und Komponenten <strong>von</strong> Drittherstellern oder Nicht-<strong>SAP</strong>-Systemen<br />

ermöglicht.<br />

Schlüsselbereiche hier ist der Integration Broker, der für die<br />

Kommunikation unterschiedlichster Systeme mittels XML/SOAP sorgt, zum<br />

anderen das Bus<strong>in</strong>ess Process Management, das Geschäftsproze,<br />

Intergrationsprozesse und Workflow steuert.<br />

Application Plattform: Unterstützung <strong>von</strong> sowohl ABAP als auch dem<br />

<strong>neue</strong>ren Java-Stack e<strong>in</strong> e<strong>in</strong>er e<strong>in</strong>heitlichen Umgebung und kann über e<strong>in</strong>e<br />

flexible Gesamtarchitektur <strong>auf</strong> unterschiedliche Bedürfnisse angepasst<br />

werden.<br />

Über allen Bereichen bietet die NetWeaver Architektur e<strong>in</strong> Life Cycle<br />

Management an, das Werkzeuge und Möglichkeiten über das Design,<br />

Entwicklung, Test und Betrieb der Lösungen be<strong>in</strong>haltet.<br />

Mittels des Composite Application Framework stellt Werkzeuge,<br />

Methoden und Prozesse bereit um Applikation zu entwicklen, deren Teile<br />

aus verschiedenen Bereichen kommen können.<br />

Damian Schlager Seite 95


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

8.2 Anhang B: Konfigurationsempfehlungen und<br />

Programmierrichtl<strong>in</strong>ien<br />

Die <strong>in</strong> diesem Kapitel beschriebenen Empfehlungen basieren <strong>auf</strong> <strong>in</strong>ternen<br />

Unterlagen und Erfahrungen des Verfassers<br />

Konfigurationse<strong>in</strong>stellungen bei Webserver Apache<br />

Directory-Direktive: Die Option „Indexes“ sollte vermieden werden,<br />

da sonst bei Fehlen e<strong>in</strong>er Index-Datei e<strong>in</strong> Directory-List<strong>in</strong>g mit<br />

eventuell sensiblen Informationen angezeigt wird. Die Option<br />

„FollowSymL<strong>in</strong>ks“ erlaubt unter Umständen den Zugriff <strong>auf</strong> sensible<br />

Informationen, sollten diese unter dem Webroot Verzeichnis <strong>auf</strong><br />

Dateisystemebene verl<strong>in</strong>kt se<strong>in</strong>.<br />

UserDir: Die „UserDir“ Option sollte deaktiviert werden, da es<br />

möglich ist, hierüber gültige Systembenutzer <strong>in</strong> Erfahrung zu<br />

br<strong>in</strong>gen.<br />

ServerTokens und ServerSignature: Beide Optionen geben die<br />

Version des Webservers preis und sollten <strong>auf</strong> „Prod“ bzw. „Off“<br />

gestellt werden.<br />

Standardverzeichnisse: Der Zugang zu Standardverzeichnissen<br />

sollte unterbunden werden, sofern diese nicht explizit notwendig<br />

s<strong>in</strong>d<br />

Ke<strong>in</strong>e Verwendung <strong>von</strong> Standardfehlerseiten, da diese unter<br />

Umständen sensible Informationen preisgeben können<br />

HTTP-Methoden sollten e<strong>in</strong>geschränkt werden, üblicherweise<br />

genügen GET und POST<br />

Zugriff <strong>auf</strong> den Webserver sollte <strong>von</strong> Systemseite nur den<br />

Adm<strong>in</strong>istratoren möglich se<strong>in</strong><br />

Nicht öffentliche Bereiche müssen geschützt werden<br />

Konfiurationse<strong>in</strong>stellungen bei PHP<br />

Aktivierung der Härtungsoptionen „safe_mode“ oder „open_basedir“<br />

Ausgabe der PHP-Version: Sollte durch die E<strong>in</strong>stellung expose_php=<br />

Off deaktiviert werden.<br />

Register_globals: Sollte deaktiviert werden um e<strong>in</strong>ige der<br />

e<strong>in</strong>fachsten und bekanntesten Angriffe <strong>auf</strong> PHP erlaubt, wie das<br />

setzen <strong>von</strong> <strong>in</strong>ternen Variablenwerten<br />

Damian Schlager Seite 96


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Programmierrichtl<strong>in</strong>ien für klassische Webapplikationen<br />

Bibliotheksfunktionen sollten der Erstellung eigener Funktionen<br />

bevorzugt werden, da eigene Funktionen häufiger Fehler <strong>auf</strong>weisen.<br />

Möglichst ke<strong>in</strong>e Shell<strong>auf</strong>rufe. Beispielsweise sollte php mail() anstatt<br />

sendmail Verwendung f<strong>in</strong>den<br />

Bei HTTP Methoden ist POST dem GET vorzuziehen, so werden<br />

ebefalls ke<strong>in</strong>e sensiblen Daten im Serverlog erfasst<br />

Prüfung <strong>auf</strong> ungültige Zeichen: In URL-Parameter, HTTP GET und<br />

HTTP POST Parameter <strong>in</strong>klusive Hidden-Fields, Cookies, sowie<br />

anderen verarbeiteten Daten<br />

Bei Prüfung <strong>von</strong> Parametern, URLs etc. ist Whitelist<strong>in</strong>g dem<br />

Blacklist<strong>in</strong>g vorzuziehen<br />

Sonderzeichen müssen encodiert werden (escape), <strong>in</strong>sbesondere<br />

die, die vom Browser <strong>in</strong>terpretiert werden, z.B. sollte mit &lt,<br />

&gt encodiert werden<br />

Prüfung der Gültigkeit <strong>von</strong> Parametern nach Kontext, so wird u.a.<br />

verh<strong>in</strong>dert dass, wie bei der cirobank, bei E<strong>in</strong>gabe e<strong>in</strong>er anderen<br />

Benutzer-ID die Applikation vom Benutzer- <strong>in</strong> den<br />

Adm<strong>in</strong>istrationskontext wechselt<br />

Bei Navigation über mehrere Seiten müssen alle Parameter bei<br />

jedem Schritt geprüft werden<br />

Bei Implementierung e<strong>in</strong>er Uploadfunktionalität müssen Dateitypen<br />

beschränkt werden. Außerdem muss die Prüfung des Dateityps<br />

anhand des „Magic Bytes“ und nicht anhand der Dateiextension<br />

durchgeführt werden. Des Weiteren ist e<strong>in</strong>e Ablage außerhalb des<br />

Serverroots zu empfehlen sofern die Dateien nicht mehr <strong>auf</strong>gerufen<br />

werden müssen.<br />

Authentifizierung z.B. mit Captchas um automatisierte E<strong>in</strong>gaben zu<br />

vermeiden<br />

Entfernung <strong>von</strong> Kommentaren aus dem Quelltext<br />

Entfernen <strong>von</strong> Backupdateien <strong>in</strong> e<strong>in</strong>er Produktivumgebung<br />

Starke SessionID und begrenzte Gültigkeit der SessionID<br />

Bei Wechsel <strong>von</strong> Bereichen unterschiedlicher Authorisierung muss<br />

die SessionID geändert werden<br />

Sensible Informationen dürfen nicht <strong>auf</strong> dem Client gespeichert<br />

werden, ebenso dürfen sensible Aktionen wie e<strong>in</strong>e E<strong>in</strong>gabeprüfung<br />

nicht <strong>auf</strong> Client ausführt werden<br />

Fehlerseiten dürfen ke<strong>in</strong>e Applikationslogik preisgeben<br />

Damian Schlager Seite 97


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Fehlerseiten dürfen ke<strong>in</strong>e H<strong>in</strong>weise <strong>auf</strong> die verwendete Software<br />

oder <strong>auf</strong> Versionen geben<br />

Log und Konfigurationsdaten müssen sich außerhalb des Serverroots<br />

bef<strong>in</strong>den<br />

SSL bevorzugt gegenüber Klartext e<strong>in</strong>setzen. Hierbei sollte <strong>auf</strong> e<strong>in</strong>e<br />

starke Verschlüsselung geachtet werden, da sonst die <strong>Sicherheit</strong> <strong>von</strong><br />

SSL ausgehebelt werden kann<br />

Verwendung <strong>von</strong> prepared Statements für SQL-Befehle<br />

Passwortpolicy bei <strong>SAP</strong><br />

log<strong>in</strong>/password_downwards_compatibility: Nicht im Security Guide<br />

enthalten, konfiguriert aber die Abwärtskompatibilität für Systeme <<br />

NetWeaver640 – hier s<strong>in</strong>d nur 8 Grossbuchstaben für das Passwort<br />

signifikant<br />

log<strong>in</strong>/fails_to_user_lock: Anzahl der falschen Passworte<strong>in</strong>gaben,<br />

nach denen der Account deaktiviert wird.<br />

log<strong>in</strong>/failed_user_auto_unlock: Zeitdauer, nach dem e<strong>in</strong><br />

deaktivierter Account wieder aktiv wird, z.B. e<strong>in</strong> Tag<br />

log<strong>in</strong>/m<strong>in</strong>_password_lng: M<strong>in</strong>imale Länge des Passwortes<br />

log<strong>in</strong>/m<strong>in</strong>_password_letters: M<strong>in</strong>imale Anzahl der Buchstaben<br />

log<strong>in</strong>/m<strong>in</strong>_password_digits: M<strong>in</strong>imale Anzahl der Zahlen<br />

log<strong>in</strong>/m<strong>in</strong>_password_specials:M<strong>in</strong>imale Anzahl der Sonderzeichen<br />

log<strong>in</strong>/m<strong>in</strong>_password_lowercase: M<strong>in</strong>imale Anzahl der<br />

Kle<strong>in</strong>buchstaben<br />

log<strong>in</strong>/m<strong>in</strong>_password_uppercase: M<strong>in</strong>imale Anzahl der<br />

Grossbuchstaben<br />

log<strong>in</strong>/m<strong>in</strong>_password_diff: M<strong>in</strong>imale Anzahl der Buchstaben, die sich<br />

vom alten Passwort unterscheiden müssen<br />

log<strong>in</strong>/password_max_idle_productive: Zeitdauer, nach der e<strong>in</strong><br />

unbenutzes Passwort verfällt<br />

log<strong>in</strong>/password_max_idle_<strong>in</strong>itial: Zeitdauer, nach der e<strong>in</strong> <strong>in</strong>itiales<br />

Passwort verfällt<br />

log<strong>in</strong>/password_expiration_time: Zeitdauer, die e<strong>in</strong> Passwort gültig<br />

ist<br />

Damian Schlager Seite 98


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Programmierrichtl<strong>in</strong>ien für <strong>SAP</strong><br />

Die empfohlene Benutzung <strong>von</strong> Bibliotheksfunktionen ist gerade bei<br />

<strong>SAP</strong> häufig der Fall, da viel Funktionalität schon bei <strong>SAP</strong> enthalten<br />

ist und im Wesentlichen Anpassungen vorgenommen werden.<br />

Nicht benötigte Funktionen <strong>in</strong> den Bauste<strong>in</strong>en, die angepasst oder<br />

benutzt werden, sollten deaktiviert werden<br />

Ke<strong>in</strong>e Bauste<strong>in</strong>e erstellen oder verwenden, die e<strong>in</strong>en direkten Zugriff<br />

<strong>auf</strong> das Betriebssystem oder die Datenbank erlauben<br />

Die E<strong>in</strong>- bzw. Ausgabeprüfung sollte <strong>SAP</strong> übernehmen, leider ist<br />

diese wie gezeigt nicht vollständig, so dass entweder sichergestellt<br />

se<strong>in</strong> muss, dass e<strong>in</strong>e andere Komponente wie e<strong>in</strong>e<br />

Webapplikationsfirewall die Prüfung übernimmt, oder die Prüfungen<br />

<strong>von</strong> <strong>SAP</strong> ergänzt werden. Dies gilt auch für das Escapen <strong>von</strong><br />

Sonderzeichen<br />

Bei Prüfung <strong>von</strong> Parametern, URLs etc. ist Whitelist<strong>in</strong>g dem<br />

Blacklist<strong>in</strong>g vorzuziehen<br />

Authorisierung, Authentifizierung sollte dem <strong>SAP</strong>-System überlassen<br />

werden<br />

Sensible Informationen sollten nicht <strong>auf</strong> dem Client gespeichert<br />

werden, sowie sensible Aktionen nicht <strong>auf</strong> dem Client ausgeführt<br />

werden. Anzumerken ist hier, dass bei Portalapplikationen sehr viel<br />

Clientaktivität stattf<strong>in</strong>det, aber e<strong>in</strong>e Analyse dennoch ke<strong>in</strong>e<br />

Schwachstellen <strong>auf</strong>gedeckt hat und die <strong>von</strong> <strong>SAP</strong> gelieferte<br />

Clientseitigen Skripte somit als sicher e<strong>in</strong>gestuft werden können.<br />

Fehlerseiten dürfen ke<strong>in</strong>e Applikationslogik preisgeben. Das <strong>SAP</strong><br />

System selbst gibt standardmäßig immer noch Versionsangaben mit<br />

an, je nach Fehlermeldung auch detailliertere Informationen<br />

SSL bevorzugt gegenüber Klartext e<strong>in</strong>setzen. Hierbei sollte <strong>auf</strong> e<strong>in</strong>e<br />

starke Verschlüsselung geachtet werden, da sonst die <strong>Sicherheit</strong> <strong>von</strong><br />

SSL ausgehebelt werden kann<br />

Bei HTTP Methoden ist POST dem GET vorzuziehen, so werden<br />

ebenfalls ke<strong>in</strong>e sensiblen Daten <strong>in</strong> Logs erfasst<br />

Damian Schlager Seite 99


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

8.3 Anhang C: <strong>Sicherheit</strong> on RFC<br />

Auch bei RFCs gibt es, wie bei den URLs im <strong>SAP</strong>-Webumfeld, sehr viele<br />

mögliche Dienste, die erreichbar se<strong>in</strong> können. Auch hier ist allerd<strong>in</strong>gs e<strong>in</strong>e<br />

Auflistung möglich. Mit Hilfe dieser bekannten RFCs ist es nun möglich, e<strong>in</strong><br />

C-Programm zu schreiben, mit dessen Hilfe die Verfügbarkeit der Dienste<br />

überprüft wird. E<strong>in</strong>e Brutefoce-Methode für alle möglichen Komb<strong>in</strong>ationen<br />

ohne Liste ist nicht möglich, da die Namen der RFCs aus allen Buchstaben<br />

des Alphabets als auch die Zeichen „/“ und „_“ zur Verfügung bestehen<br />

können. Für e<strong>in</strong>e Suche nach allen RFCs, deren Namen maximal 20 Zeichen<br />

besitzen müsste man also 28 20 = 87732524600823436081182539776<br />

Komb<strong>in</strong>ationen testen.<br />

Von den standardmäßig verfügbaren RFCs, die ohne Anmeldung erreichbar<br />

s<strong>in</strong>d, s<strong>in</strong>d folgende erwähnenswert:<br />

sap<strong>in</strong>fo<br />

Zur Informationsgew<strong>in</strong>nung; die Rückgabe besteht aus folgenden<br />

Informationen:<br />

Tabelle1: Ausgabe sap_<strong>in</strong>fo<br />

<strong>SAP</strong> System Information<br />

-----------------------------------------------<br />

Dest<strong>in</strong>ation<br />

sapn4s_N4S_01<br />

Host<br />

sapn4s<br />

System ID<br />

N4S<br />

Database<br />

N4S<br />

DB host<br />

sapn4s<br />

DB system<br />

ADABAS D<br />

<strong>SAP</strong> release 700<br />

<strong>SAP</strong> kernel release 700<br />

RFC Protokoll 011<br />

Characters<br />

4103 (UNICODE PCS=2)<br />

Integers<br />

LIT<br />

Float<strong>in</strong>g P.<br />

IE3<br />

<strong>SAP</strong> mach<strong>in</strong>e id 390<br />

Timezone<br />

3600 (Daylight sav<strong>in</strong>g time)<br />

Damian Schlager Seite 100


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

rfc_put_codepage<br />

Diese Funktion setzt die Codepage anhand <strong>von</strong> <strong>in</strong> bestimmten <strong>in</strong>ternen<br />

Tabellen vermerkten Index. Während die Ausführung dieser Funktion bei<br />

Kernelversion 640 (NW4) ke<strong>in</strong>e s<strong>in</strong>vollen Ergebnisse br<strong>in</strong>gt, zeigt e<strong>in</strong> Blick<br />

<strong>in</strong> den ABAP-Quellcode dieser Funktion bei Kernelversion 700 (NW4s), dass<br />

sämtliche Codezeilen auskommentiert s<strong>in</strong>d und mit dem Aufruf dieser<br />

Funktion somit ke<strong>in</strong>e Aktion verbunden ist.<br />

Das Problem <strong>in</strong> Version 640 ist der <strong>in</strong> der Funktion Parameter PATHNAME.<br />

Bei dieser Funktion ist ausser Rückmeldungen über Fehler ke<strong>in</strong>e Rückgabe<br />

vorgesehen. So führt e<strong>in</strong> Aufruf mit den Parametern<br />

FROMPAGE = 0400<br />

TOPAGE = 1152<br />

PATHNAME = %%%123<br />

<strong>in</strong> e<strong>in</strong>em speziell hierfür geschriebenen C-Programms zu <strong>in</strong> Abbildung 1 zu<br />

sehenden Ausgabe:<br />

Abbildung 1: Ausgabe mit zufälligem Path-Parameter<br />

Die Funktion wurde also offensichtlich ohne Fehler ausgeführt.<br />

E<strong>in</strong> Blick <strong>in</strong> /usr/sap/NW4/DVEBMGS00/work zeigt jedoch wie <strong>in</strong> Abbildung<br />

2 zu sehen:<br />

Abbildung 2: Auswirkung im Dateisystem<br />

Damian Schlager Seite 101


<strong>Sicherheit</strong> <strong>von</strong> <strong>SAP</strong> <strong>in</strong> <strong>Bezug</strong> <strong>auf</strong> <strong>neue</strong> <strong>Technologien</strong><br />

Abbildung 3: Detailansicht <strong>neue</strong>r Datei<br />

Wie <strong>auf</strong> diesen Bildern zu erkennen ist, hat diese Funktion e<strong>in</strong>e Datei<br />

angelegt, die den Namen PATHNAME des RFC-Parameters erhält.<br />

Die Detailansicht der Datei zeigt, dass sie etwa 1Kilobyte groß ist und unter<br />

dem <strong>SAP</strong> Systemaccount „nw4adm“ der Gruppe „sapsys“ angelegt wurde.<br />

Sofern bei dem <strong>SAP</strong> System nicht explizit der Audit log aktiviert wurde und<br />

auch hier die Protokollierung aller RFC-Aufrufe mitverfolgt wird, ist e<strong>in</strong><br />

Aufruf dieser Funktion praktisch unsichtbar. So ist es möglich, mit e<strong>in</strong>em<br />

automatisierten Aufruf dieser Funktion mit alterierenden PATHNAME-Str<strong>in</strong>gs<br />

die vorhandenen Inodes oder Festplattenplatz anonym zu füllen, und so die<br />

Funktionsfähigkeit des <strong>SAP</strong>-Systems e<strong>in</strong>zuschränken oder es sogar<br />

unverfügbar zu machen.<br />

Die Funktion erlaubt es ebenfalls, selektiv Dateien zu überschreiben.<br />

Gezeigt hier anhand des Befehls „stopsap“, der für das korrekte<br />

herunterfahren des <strong>SAP</strong>-Systems verantwortlich ist.<br />

In Abbildung 4 ist die Datei „/usr/sap/NW4/SYS/exe/run/stopsap“ vor dem<br />

Aufruf des RFCs rfc_put_codepage<br />

Abbildung 4: Orig<strong>in</strong>ales stopsap<br />

E<strong>in</strong> Aufruf des RFCs mit PATHNAME = ../../SYS/exe/run/stopsap<br />

führt zu <strong>in</strong> Abbildung 5 zu sehenden Ausgabe bei den Dateidetails:<br />

Abbildung 5: Überschriebenes stopsap<br />

Der Inhalt 0x00 bis 0xFF der <strong>neue</strong>n Datei ist durch den Angreifer nicht<br />

bee<strong>in</strong>flussbar.<br />

Da die Datei mit der Berechtigung „nw4adm“ geschrieben wird, können<br />

beliebige Dateien, <strong>auf</strong> die <strong>SAP</strong> Schreibrechte hat, anonym überschrieben<br />

werden. Dazu gehören z.B. alle ausführbaren Dateien des <strong>SAP</strong>-Systems,<br />

Logdateien und die Konfiguration.<br />

Damian Schlager Seite 102

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!