Sichere Entwicklung und gängige Schwachstellen in eigenentwickelten SAP-Web- Anwendungen



Ähnliche Dokumente
Sichere Entwicklung und gängige Schwachstellen in eigenentwickelten SAP-Web- Anwendungen. OWASP Nürnberg,

Secure Programming vs. Secure Development

Web-Sicherheit: Kein fauler Zauber?! Kai Jendrian. <Seminartitel> <Seminartitel>

am Beispiel - SQL Injection

Warum werden täglich tausende von Webseiten gehackt?

am Beispiel - SQL Injection

Web Application Security

Georg Heß. Grünes Licht für verlässlichere Online- Services WEB APPLICATION SECURITY. Deutschland sicher im Netz e.v. Köln,

itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 2013 OneConsult GmbH

Secure Network Communications (BC-SEC-SNC)

Web 2.0 (In) Security PHPUG Würzburg Björn Schotte

Zusammenfassung Web-Security-Check ZIELSYSTEM

OpenWAF Web Application Firewall

IAC-Programmierung HELP.BCFESITSIACPROG. Release 4.6C

Datensicherheit. Vorlesung 7: Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

Sicherheit in Webanwendungen CrossSite, Session und SQL

Sicherheit Web basierter Anwendungen

Absicherung von Web-Anwendungen in der Praxis Highlights aus den OWASP TOP 10

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Benchmark: Sicherheitslücken & Compliance-

Sicherheit von Webapplikationen Sichere Web-Anwendungen

Aktuelle Angriffstechniken auf Web-Applikationen. Andreas Kurtz cirosec GmbH, Heilbronn

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

6.9 Java Server Pages

Hacker-Tool Browser von der Webanwendung zu den Kronjuwelen

SAP Anwendungen im Visier von Hackern Angriffsszenarien und Schutzkonzepte

Schwachstellenanalyse 2012

ZSDGMDZFGW... Zehn Sicherheitsprobleme, die gerne mit dem ZendFramework gebaut werden. Ben Fuhrmannek #phpug-köln

Secure Coding & Live Hacking von Webapplikationen. Conect Informunity

GuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Was ist bei der Entwicklung sicherer Apps zu beachten?

8.4 Überblick und Vergleich weiterer ERP-Systeme. G Oracle Applications 11 G PeopleSoft 7 G J.D. Edwards One World G BaanERP

Netzwerksicherheit Übung 9 Websicherheit

Robuste und Praktikable Ansätze zur Verhinderung von Sicherheitsdefekten. Christoph Kern, Google

Einführung in Web-Security

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Lokale Installation von DotNetNuke 4 ohne IIS

FileBox Solution. Compass Security AG. Cyber Defense AG Werkstrasse 20 Postfach 2038 CH-8645 Jona

Herzlich willkommen zur Kurzvorlesung: Die häufigsten Fehlerquellen bei der Erstellung von Webapplikationen. Udo H. Kalinna. Nürnberg, den

Verteidigung gegen SQL Injection Attacks

Technik der SAP-Anbindung Christian Aigner Team Entwicklung, Kranzberg

Praktische Erfahrungen aus hunderten von Sicherheitsabnahmen German OWASP Day Dr. Amir Alsbih CISO Haufe Gruppe

Mit CodeProfiler effizient und schnell Qualitätsdefizite in Ihrem ABAP Code aufdecken

web2py - Web-Framework mit didaktischem Hintergrund Nik Klever Hochschule Augsburg

Abbildung der Gefährdungen der WASC und OWASP auf die Gefährdungen und Maßnahmenempfehlungen des IT-Grundschutz-Bausteins B 5.

Baustein Webanwendungen. Stephan Klein, Jan Seebens

RIPS. Automatisierte Schwachstellenerkennung in PHP-Software mittels statischer Quellcode-Analyse. BSI Deutscher IT-Sicherheitskongress

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Open Source als de-facto Standard bei Swisscom Cloud Services

Silverstripe CMS und das Sapphire Framework

1. Zusammenfassung der letzten Vorlesung

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

SAP NetWeaver Gateway. 2013

IT works unlimited GmbH & Co. KG

C++ im Web mit Tntnet

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Web Applications Vulnerabilities

Die aktuelle Version des SPIEGEL-Bestseller-Widgets können Sie auf unserer Website unter Entwicklertools herunterladen.

Innovative Use Cases & User Interfaces mit SAP Fiori & SAPUI5

Web Data Management Systeme

OWASP Top 10. im Kontext von Magento. Mittwoch, 21. November 12

TYPO3 Slide Lightwerk GmbH

Windows Small Business Server (SBS) 2008

Secure Webcoding for Beginners

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Allgemeine Informationen

Design Bugs OWASP The OWASP Foundation Alexios Fakos Senior Security Consultant n.runs AG

Vergleich von ERPConnect Services (ECS) gegenüber Duet Enterprise for Microsoft SharePoint and SAP

Breaking Your SAP in 60 Seconds Sicherheitslücken und Schwachstellen erkennen & beheben

Business-Rule-Management als Instrument des Software-Reengineering

HACK THAT WEBSITE! WEB SECURITY IM SELBSTVERSUCH

PM/CS - Datenübernahme in Instandhaltung und Kundenservice

PHPIDS Vortrag. PHP Usergroup Frankfurt am Main 14. Februar Autor: Tom Klingenberg. Web & Applikation

C O C O O N. Wo ist Cocoon in die Apache Projekte einzureihen?

Betroffene Produkte: Alle Versionen von Oracle Forms (3.0-10g, C/S und Web), Oracle Clinical, Oracle Developer Suite

JSP vs. PHP. Ein persönlicher Vergleich. EQUIcon Software GmbH Jena, Jörg Spilling Frankfurter Treffen Agenda

Aktuelle Bedrohungen im Internet

Sichere Webapplikationen nach ONR oder Wer liest meine s?

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Benutzerhandbuch bintec R4100 / R4300 Configuration Management. Copyright 17. Juli 2006 Funkwerk Enterprise Communications GmbH Version 1.

V10 I, Teil 2: Web Application Security

mysoftfolio360 Handbuch

Workflow, Business Process Management, 4.Teil

BitDefender Client Security Kurzanleitung

4D Server v12 64-bit Version BETA VERSION

HERZLICH WILLKOMMEN SHAREPOINT DEEP DIVE FOR ADMINS IOZ AG 2

IT-Sicherheit Angriffsziele und -methoden Teil 2

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Hacker-Methoden in der IT- Sicherheitsausbildung. Dr. Martin Mink

Web Application Testing: Wie erkenne ich, ob meine Website angreifbar ist?

Content-Management- Systeme (CMS) Inhaltsverwaltungssystem, Redaktionssystem

Session Storage im Zend Server Cluster Manager

Sicher sein, statt in Sicherheit wiegen Sicherheit bei. Web-Anwendungen. Vortrag bei Infotech

1CONFIGURATION MANAGEMENT

Multi Batch per Order Management. GORBIT Rapid Deployment Solution

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Wie steht es um die Sicherheit in Software?

Transkript:

Sichere Entwicklung und gängige Schwachstellen in eigenentwickelten SAP-Web- Anwendungen Sebastian Schinzel Virtual Forge GmbH University of Mannheim

SAP in a Nutshell Weltweit führendes Unternehmen für Geschäftssoftware Sitz in Walldorf Praktisch alle SAP-Installationen einzigartig Geschäftsanwendungen zunehmend über Web Frontends erreichbar Geschäftsanwendungen in Java oder ABAP geschrieben (plus C-API, PHP, ) 2

ABAP in a Nutshell Existiert seit ~30 Jahren COBOL-ähnliche Syntax gewachsene Sprache mehrere Programmierparadigmen vermengt DB-unabhängiger SQL-Dialekt ist integriert Code liegt selbst in Datenbank Entwicklungsumgebung ebenfalls in ABAP entwickelt 3

ABAP und Open Source Quellcode liegt vollständig vor Kunden können Code ändern Code kopieren, umbenennen und abändern Direkt SAP-Standard-Coding ändern ABAP enthält diverse Entwicklungsframeworks Kunden erweitern Code (Customizing) Eigenentwicklungen für Geschäftsprozesse Entwicklungen von Drittanbietern 4

Frontend-Technologien Dynpro: In ABAP geschrieben Benötigt eigenen Viewer (SAP GUI) Funktionsweise ähnlich wie X11 Internet Transaction Server (ITS) Erste Web-Technologie von SAP Noch zahlreich in Betrieb, kaum noch aktive Entwicklung 5

Frontend-Technologien Business Server Pages (BSP) In HTML eingebettetes ABAP (ähnlich zu JSP) Mehrere Programmierparadigmen Breite Installationsbasis, auch weiterhin Neu- Entwicklungen von Kunden Web Dynpro (ABAP/Java) UI-unabhängiges Framework Entwickler kann kein eigenes HTML/JavaScript einbetten Entwickler kann typische Web-Schwachstellen weder verhindern noch verursachen 6

Frontend-Technologien Web GUI HTML-Version von normalen Dynpros (SAP GUI) Früher im Internet Transaction Server, heute als Plugin zum SAP Web Application Server externe Systeme, Flash, Silverlight. 7

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öglich BSP, Web Dynpro, WebGUI sind HTTP-Handler Konfiguration über Profilparameter (Programm RZ11) und Transaktion SICF 8

Agenda ABAP/BSP vs. OWASP Top 10 Business Server Pages Inline ABAP in HTML Die HTMLB-Tag-Bibliothek Open SQL Dynamisches Open SQL SQL-Injections Summary 9

Business Server Pages (BSP) BSP im Internet erkennen: http://www.google.de/search?q=inurl:/sap/bc/bsp/ 10

11 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

Business Server Pages (BSP) OWASP Top 10 A1 - Cross Site Scripting (XSS) A2 - Injection Flaws A3 - Malicious File Execution A4 - Insecure Direct Object Reference A5 - Cross Site Request Forgery (CSRF) A6 - Information Leakage and Improper Error Handling Potentiell anfällig? Ja Ja Ja Ja Ja Ja A7 - Broken Authentication and Session Management - A8 - Insecure Cryptographic Storage A9 - Insecure Communications A10 - Failure to Restrict URL Access Ja Ja Ja 12

Business Server Pages Verhindern von Cross Site Scripting durch Encoding/Escaping in Plain-HTML-Seiten ABAP-Encoding-Funktionen (CL_HTTP_UTILITY) BSP-Seitenattribut (forceencode) in Seiten mit HTMLB-Taglib Tag-Attribut (forceencode) 13

Business Server Pages Plain HTML 1 <%@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> 14

Business Server Pages Plain HTML 1 <html> 2 <head><title>beispiel owasp.htm</title></head> 3 <body> 4 <p>hello Open Web Application Security Project!</p> 5 </body> 6 </html> 15

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> 16

Business Server Pages Plain HTML 1 <%@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> 17

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> 18

Business Server Pages Plain HTML Enkodierung von Daten über CL_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 werden Aufwändig, fehleranfällig 19

Business Server Pages Plain HTML 1 <%@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> 20

Business Server Pages Plain HTML Verhindern von Cross Site Scripting durch <%page forceencode= {html url javascript} > Globales Encoding über Seitenattribut Alle 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(... 21

Business Server Pages HTMLB 1 <%@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> 22

Business Server Pages HTMLB name=<img src= onerror= alert(document.cookie); > 23

Business Server Pages HTMLB 1 <%@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> 24

Business Server Pages HTMLB name=<img src= onerror= alert(document.cookie); > 25

Business Server Pages Verhindern von Cross Site Scripting in Plain-HTML Enkoding ü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 HTMLB Tag-Attribut forceencode standardmäßig ausgeschaltet, muss explit aktiviert werden 26

Agenda ABAP/BSP vs. OWASP Top 10 Business Server Pages Inline ABAP in HTML Die HTMLB-Tag-Bibliothek Open SQL Dynamisches Open SQL SQL-Injections Summary 27

Open SQL Open SQL eingebettet in ABAP Wird intern in Prepared Statements umgewandelt SQL-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. 28

Open SQL 29

Dynamisches Open SQL - Beispiel 30

Dynamisches Open SQL Interpretiert String-Literal als SQL-Statement Keine 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). 31

Dynamisches Open SQL - Beispiel 32

Dynamisches Open SQL - Beispiel 33

Dynamisches Open SQL 34

Zusammenfassung Open SQL Dynamisches Open SQL führt leicht zu SQL- Injection-Schwachstellen Keine Enkodierungsfunktion vorhanden Prepared-Statement-Injection Vermeiden Sie dynamisches Open SQL in ABAP wenn immer möglich! 35

Zusammenfassung OWASP Top 10 TODO A1 - Cross Site Scripting (XSS) A2 - Injection Flaws A3 - Malicious File Execution A4 - Insecure Direct Object Reference A5 - Cross Site Request Forgery (CSRF) A6 - Information Leakage and Improper Error Handling X X X X A7 - Broken Authentication and Session Management - A8 - Insecure Cryptographic Storage A9 - Insecure Communications A10 - Failure to Restrict URL Access X X X 36

Zusammenfassung SAP-Web-Frontends weit verbreitet und prozessieren meist unternehmenskritische Daten Weitere SAP-Web-Frontend-Technologien:! Business Server Pages (BSP) X Web Dynpro X Internet Transaction Server X Eigene HTTP-Handler... BSP verlangt viel Eigenleistung für sichere Entwicklung 37

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 38