owasp appsec germany 2009: sichere entwicklung und gängige
TRANSCRIPT
![Page 1: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/1.jpg)
Copyright © The OWASP FoundationPermission is granted to copy, distribute and/or modify this document under the terms of the OWASP License.
The OWASP Foundation
OWASP
http://www.owasp.org
http://www.owasp.org/index.php/GermanyOWASP AppSec Germany 2009 Conference
Nürnberg, 13.10.09
Sichere Entwicklung und gängige Schwachstellen in eigenentwickelten SAP-Web-Anwendungen
Sebastian Schinzel
Virtual Forge GmbH
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 2: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/2.jpg)
2OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
SAP in a Nutshell
Weltweit führendes Unternehmen für Geschäftssoftware
Sitz in WalldorfPraktisch alle SAP-Installationen einzigartigGeschäftsanwendungen zunehmend über Web
Frontends erreichbarGeschäftsanwendungen in Java oder ABAP
geschrieben (plus C-API, PHP, …)
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 3: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/3.jpg)
3OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
ABAP in a Nutshell
Existiert seit ~30 JahrenCOBOL-ähnliche Syntax“gewachsene Sprache” → mehrere
Programmierparadigmen vermengtDB-unabhängiger SQL-Dialekt ist integriertCode liegt selbst in DatenbankEntwicklungsumgebung ebenfalls in ABAP
entwickelt
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 4: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/4.jpg)
4OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
ABAP und Open Source
Quellcode liegt vollständig vorKunden können Code ändern
Code kopieren, umbenennen und abändernDirekt SAP-Standard-Coding ändern
ABAP enthält diverse EntwicklungsframeworksKunden erweitern Code (Customizing)Eigenentwicklungen für GeschäftsprozesseEntwicklungen von Drittanbietern
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 5: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/5.jpg)
5OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Frontend-Technologien
Dynpro:In ABAP geschriebenBenötigt eigenen Viewer (SAP GUI)Funktionsweise ähnlich wie X11
Internet Transaction Server (ITS)Erste Web-Technologie von SAPNoch zahlreich in Betrieb, kaum noch aktive
Entwicklung
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 6: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/6.jpg)
6OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Frontend-Technologien
Business Server Pages (BSP)In HTML eingebettetes ABAP (ähnlich zu JSP)Mehrere ProgrammierparadigmenBreite Installationsbasis, auch weiterhin Neu-
Entwicklungen von Kunden
Web Dynpro (ABAP/Java)UI-unabhängiges FrameworkEntwickler kann kein eigenes HTML/JavaScript
einbettenEntwickler kann typische Web-Schwachstellen weder
verhindern noch verursachen
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 7: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/7.jpg)
7OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Frontend-Technologien
Web GUIHTML-Version von normalen Dynpros (SAP GUI) Früher im Internet Transaction Server, heute als
Plugin zum SAP Web Application Server
… externe Systeme, Flash, Silverlight.
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 8: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/8.jpg)
8OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
SAP Web Server
SAP Web Application Server (Web AS):Unterstützt Single Sign On (SSO)SSO-Ticket in Cookie (MYSAPSSO2)
standardmäßig für Pfad / und domain.tld ausgestellt
standardmäßig weder httpOnly, noch secure
Entwicklung eigener HTTP-Handler möglichBSP, Web Dynpro, WebGUI sind HTTP-Handler
Konfiguration über Profilparameter (Programm RZ11) und Transaktion SICF
Blacklist-Filter filtert z.B. <script und alert( :-)
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 9: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/9.jpg)
9OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Agenda
ABAP/BSP vs. OWASP Top 10 Business Server Pages
Inline ABAP in HTMLDie HTMLB-Tag-Bibliothek
Open SQLDynamisches Open SQLSQL-Injections
Summary
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 10: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/10.jpg)
10OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages (BSP)
BSP im Internet erkennen:
http://www.google.de/search?q=inurl:/sap/bc/bsp/
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 11: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/11.jpg)
11OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
•Business Server Pages (BSP)mentor.com
erco.org
sap-ag.de
beiersdorfgroup.com
mybayerjob.de
heraeus.com
wacker.com
heidelberg.com
knorr-bremse.com
ottopersonalsysteme.de
skyguide.ch
eads.com
bsr.de
kuka.de
kpmg.de
daad.de
euhreka.com
vodafone.com
iom.int
wlw.de
erecruiting-randstad.de
lieferantensuchmaschine.com
audi.de
blanco.de
festo.com
vhv.de
otto.de
abb.de
ruv.de
holcim.com
mannheim.cde
gesobau.de
softsurvey.de
umdasch.com
celesio.com
pflegedienst-navigator.de
oebb.at
salzburg-ag.at
whirlpool.com
volkswagen.de
pharma.com
wa.gov
brucepower.com
jetblue.com
suzukiautoco.com
singaporepower.com
kaufland.de
clavis-bonn.de
albatha.ae
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 12: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/12.jpg)
12OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
•Business Server Pages (BSP)
OWASP Top 10 Potentiellanfällig?
A1 - Cross Site Scripting (XSS) Ja
A2 - Injection Flaws Ja
A3 - Malicious File Execution Ja
A4 - Insecure Direct Object Reference Ja
A5 - Cross Site Request Forgery (CSRF) Ja
A6 - Information Leakage and Improper Error Handling Ja
A7 - Broken Authentication and Session Management -
A8 - Insecure Cryptographic Storage Ja
A9 - Insecure Communications Ja
A10 - Failure to Restrict URL Access Ja
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 13: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/13.jpg)
13OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages
Verhindern von Cross Site Scripting durch Encoding/Escaping
in Plain-HTML-SeitenABAP-Encoding-Funktionen (CL_HTTP_UTILITY)BSP-Seitenattribut (forceEncode)
in Seiten mit HTMLB-TaglibTag-Attribut (forceEncode)
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 14: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/14.jpg)
14OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – Plain HTML1 <%@page language=”abap” %>
2 <% DATA: name TYPE string.
3 name = request->get_form_field( 'name' ).
4 %>
5 <html>
6 <head><title>Beispiel owasp.htm</title></head>
7 <p>Hello <%= name %> </p>
8 <body>
9 </body></html>
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 15: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/15.jpg)
15OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – Plain HTML1 <html>
2 <head><title>Beispiel owasp.htm</title></head>
3 <body>
4 <p>Hello Open Web Application Security Project!</p>
5 </body>
6 </html>
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 16: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/16.jpg)
16OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – Plain HTML
Cross Site Scripting Schwachstelle:
http://.../owasp.htm?name=<img src= onerror=”alert(document.cookie);”>
1 <html>
2 <head><title>Beispiel owasp.htm</title></head>
3 <p>Hello <img src= onerror=”alert(document.cookie);”> </p>
4 <body>
5 </body></html>
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 17: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/17.jpg)
17OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – Plain HTML1 <%@page language=”abap” %>
2 <% DATA: name TYPE string.
3 name = request->get_form_field( 'name' ).
4 name = CL_HTTP_UTILITY=>escape_html( name ).
4 %>
5 <html>
6 <head><title>Beispiel owasp.htm</title></head>
7 <p>Hello <%= name %> </p>
8 <body>
9 </body></html>
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 18: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/18.jpg)
18OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – Plain HTML
Verhinderte Cross Site Scripting Schwachstelle:http://.../owasp.htm?name=<img src= onerror=”alert(document.cookie);”>
1 <html>
2 <head><title>Beispiel owasp.htm</title></head>
3 <p>Hello <img src= onerror=”alert(document.cookie);”> </p>
4 <body>
5 </body></html>
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 19: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/19.jpg)
19OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – Plain HTML
Enkodierung von Daten überCL_HTTP_UTILITY=>escape_html( )CL_HTTP_UTILITY=>escape_javascript( )CL_HTTP_UTILITY=>escape_url( )
Pro:Verhindert XSS-Schwachstellen
Contra:Jede einzelne Ausgabe muss entsprechend dem
HTML-Kontext enkodiert werdenAufwändig, fehleranfällig
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 20: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/20.jpg)
20OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – Plain HTML1 <%@page language=”abap” forceEncode=”html”
2 DATA: name TYPE string.
3 name = request->get_form_field( 'name' ).
4 %>
5 <html>
6 <head><title>Beispiel owasp.htm</title></head>
7 <p>Hello <%= name %> </p>
8 <body>
9 </body></html>
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 21: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/21.jpg)
21OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – Plain HTML
Verhindern von Cross Site Scripting durch<%page forceEncode=”{html|url|javascript}”>
Globales Encoding über SeitenattributAlle Ausgaben werden gleich enkodiert, keine
Unterscheidung zwischen HTML-Kontexten (JavaScript, URL, ...)
Gegenbeispiel:<a href=”<%= request->get_form_field( 'user' ). %>”>
Link</a>
http://.../test.htm?user=javascript:document.write( ...
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 22: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/22.jpg)
22OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – HTMLB1 <%@page language="abap" %>
2 <%@extension name="htmlb" prefix="htmlb" %>
3 <% DATA: name TYPE string.
4 name = request->get_form_field( 'name' ). %>
5 <htmlb:content design="design2003">
6 <htmlb:page title = "HTMLB mit forceEncode">
7 <htmlb:form>
8 <htmlb:textView text = "Hello <%= name %>"
9 design = "EMPHASIZED" />
10 </htmlb:form>
11 </htmlb:page>
12 </htmlb:content>
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 23: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/23.jpg)
23OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – HTMLBname=<img src=”” onerror=”alert(document.cookie);”>
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 24: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/24.jpg)
24OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – HTMLB1 <%@page language="abap" %>
2 <%@extension name="htmlb" prefix="htmlb" %>
3 <% DATA: name TYPE string.
4 name = request->get_form_field( 'name' ). %>
5 <htmlb:content design="design2003" forceEncode="ENABLED">
6 <htmlb:page title = "HTMLB mit forceEncode">
7 <htmlb:form>
8 <htmlb:textView text = "Hello <%= name %>"
9 design = "EMPHASIZED" />
10 </htmlb:form>
11 </htmlb:page>
12 </htmlb:content>
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 25: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/25.jpg)
25OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages – HTMLBname=<img src=”” onerror=”alert(document.cookie);”>
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 26: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/26.jpg)
26OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Business Server Pages
Verhindern von Cross Site Scripting in Plain-HTMLEnkoding über Methoden (CL_HTTP_UTILITY)
Aufwändig, Fehleranfällig
Enkoding über Seitenattribut (forceEncode)Nicht HTML-Kontext-spezifisch, daher fehleranfällig
Verhindern von Cross Site Scripting in HTMLBTag-Attribut forceEncode standardmäßig
ausgeschaltet, muss explit aktiviert werden
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 27: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/27.jpg)
27OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Agenda
ABAP/BSP vs. OWASP Top 10 Business Server Pages
Inline ABAP in HTMLDie HTMLB-Tag-Bibliothek
Open SQLDynamisches Open SQLSQL-Injections
Summary
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 28: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/28.jpg)
28OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Open SQL
Open SQL eingebettet in ABAPWird intern in Prepared Statements
umgewandeltSQL-Statement und Benutzerdaten sauber
getrennt, keine SQL-Injection möglich
1 SELECT * FROM ZCCINFO
2 INTO l_zccinfo
3 WHERE uname = l_uname
4 AND ta_date = l_date.
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 29: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/29.jpg)
29OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Open SQL
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 30: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/30.jpg)
30OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Dynamisches Open SQL - Beispiel
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 31: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/31.jpg)
31OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Dynamisches Open SQL
Interpretiert String-Literal als SQL-StatementKeine Enkodierungsfunktionen vorhanden
Benutzerdaten können nicht sauber von SQL-Kommandos getrennt werden
SQL-Injection wahrscheinlich, wenn Benutzerdaten in dynamisches SQL-Statement gelangen
1 SELECT (l_felder) FROM (l_table)
2 INTO l_zccinfo
3 WHERE (l_where).
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 32: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/32.jpg)
32OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Dynamisches Open SQL - Beispiel
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 33: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/33.jpg)
33OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Dynamisches Open SQL - Beispiel
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 34: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/34.jpg)
34OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Dynamisches Open SQL
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 35: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/35.jpg)
35OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Zusammenfassung Open SQL
Dynamisches Open SQL führt leicht zu SQL-Injection-SchwachstellenKeine Enkodierungsfunktion vorhandenPrepared-Statement-Injection
Vermeiden Sie dynamisches Open SQL in ABAP wenn immer möglich!
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 36: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/36.jpg)
36OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Zusammenfassung
OWASP Top 10 TODO
A1 - Cross Site Scripting (XSS) √
A2 - Injection Flaws √
A3 - Malicious File Execution X
A4 - Insecure Direct Object Reference X
A5 - Cross Site Request Forgery (CSRF) X
A6 - Information Leakage and Improper Error Handling X
A7 - Broken Authentication and Session Management -
A8 - Insecure Cryptographic Storage X
A9 - Insecure Communications X
A10 - Failure to Restrict URL Access X
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 37: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/37.jpg)
37OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Zusammenfassung
SAP-Web-Frontends weit verbreitet und prozessieren meist unternehmenskritische Daten
Weitere SAP-Web-Frontend-Technologien:√ Business Server Pages (BSP)X Web DynproX Internet Transaction ServerX Eigene HTTP-Handler...
BSP verlangt viel Eigenleistung für sichere Entwicklung
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009
![Page 38: OWASP AppSec Germany 2009: Sichere Entwicklung und gängige](https://reader038.vdocument.in/reader038/viewer/2022110221/587207c01a28ab560c8bd35e/html5/thumbnails/38.jpg)
38OWASPOWASP AppSec Germany 2009 ConferenceSichere SAP Web-Entwicklung – Sebastian Schinzel
Literatur “Sichere ABAP-Programmierung” - SAP Press, Wiegenstein,
Schumacher, Schinzel, Weidemann http://sap-press.de/2037
“SAP Documentation” http://help.sap.com/
“Secure Programming – ABAP” - SAP AG http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/17a4f828-0b01-0010-8da1-d18bb60ec2bf&overridelayout=true
“Security Scanner für ABAP” - http://codeprofilers.com/
“Vmovie: Security Knowledge on Stage” http://secure-abap.de/media
“OWASP Top 10”
OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009OWASP AppSec Germany 2009