TITEL bearbeiten

Werbung
Andreas Wiegenstein
TITEL
bearbeiten
Dr. Markus Schumacher
(3) … (2) … (1) … (SAP_ALL)
DSAG
Professional
Services
- 29.11.2012
Webinar
Click
toAKedit
Master
text
styles
 Second level
 Third level
 Fourth level
 Fifth level
©
© 2012
2011 Virtual
2012
Virtual Forge
Forge GmbH
GmbH || www.virtualforge.com
www.virtualforge.com || All
All rights
rights reserved.
reserved.
TITELAuto,
Mein
bearbeiten
mein Haus, mein Boot, …
Andreas Wiegenstein
 Click to edit Master text styles

Gründer von Virtual Forge (Heidelberg), verantwortlich für R&D

SAP Security Researcher, aktiv seit 2003
 Third
levelfür mehr als 20 gemeldete 0-day Schwachstellen
 Credit
von SAP

 Fourth
levelauf internationalen Konferenzen
Regelmäßiger
Referent
Fifth(USA
level& Europa) / 2005 (USA) / 2006 (USA), DSAG
 SAP TechEd 2004
 Second level
2009
 BlackHat 2011 (Europa), Hack in the Box 2011 (Europa)
 Troopers 2011 & 2012 (Europa), RSA 2012 (USA)

Co-Autor „Sichere ABAP Programmierung" (SAP Press)

Training Class WDESA3 @ SAP University
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
INHALT
TITEL bearbeiten
(3)
SAPto
Audits
und Eigenentwicklungen
 Click
edit Master
text styles
 Second level
(2) Sicherheitsrisiken
in ABAP
 Third level
 Fourth level
(1) Prüfung von
Eigenentwicklungen
 Fifth
level
(SAP_ALL) Demos
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
(3) SAP Audits und Eigenentwicklungen
 Click to edit Master text styles
 Second level
 Third level
 Fourth level
 Fifth level
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL
SAP
Audits
bearbeiten
 Prüfungsaktivitäten
beziehen
sich auf den SAP Standard
Click to edit Master
text styles
 Schutz von Transaktionen
 Second level
 Schutz von Tabellen
 Third level
 SoD
 Fourth level
 Prüfungen basieren auf SAP Standard
 Fifth level
 Kritische Transaktionen sind bekannt
 Kritische Tabellen sind bekannt
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITELStandard
SAP
bearbeiten
- Schutz nach Standard
Transaktionaler Schutz : Anlegen von ABAP Programmen
 Click to edit Master text styles
 Second level
S_TCODE ?
 Third level
 Fourth level
ABAP
Workbench (SE80)
 Fifth
level
S_DEVELOP ?
Produktivsystem ?
INSERT REPORT
Erzeugt ABAP Programme
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL
SAP
Audits
bearbeiten
Segeln in vertrauten Gewässern
 Click to edit Master text styles
 Second level
 Third level
 Fourth level
 Fifth level
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
Eigenentwicklungen
Aber was, wenn die Regeln nicht mehr gelten?
 Click to edit Master text styles
 Second level
 Third level
 Fourth level
 Fifth level
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
Eigenentwicklungen
in Zahlen
Unternehmen
haben
~ 1.65text
Mio styles
LOC Custom ABAP (netto) *
 Click to edit
Master
 Second level
Dies entspricht
etwa 1% des SAP Standards (ECC 6.0)
 Third level
 Fourth level
Das wären 8 Bermuda Dreiecke auf der Erde, was der doppelten
 Fifth level
Fläche des Mittelmeeres entspräche.
* Virtual Forge Studie mit 45 Firmen und 100 Mio LOC (netto)
Netto = Code ohne Kommentare und Leerzeilen
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
ABAP
Code im IKS Kontext
IKS-Struktur im ERP-Umfeld
 Click to edit Master text styles
Generellen
Kontrollen (ITGC - IT General Controls)
 SecondITlevel
 Third level (Change Management)
Änderungswesen
 Fourth level
ABAPCode
Fifth level
Risiken für Geschäftsprozesse
Vollständigkeit
Richtigkeit
Funktionstrennung
Rechte
Nachvollziehbarkeit
Datenschutz
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
…
TITEL
SAP
Audits
bearbeiten
Ein
Unternehmen
immer
fürstyles
eigenen Code*
 Click
to edithaftet
Master
text
 Second level
Relevanz Third level
 Hausinterne
Entwicklung
 Fourth
level
 Outsourcing  Fifth level
 Firmenzukäufe
* (Chuprunov, SAP Revision, SAP Press, 2012)
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
Eigenentwicklungen
Eigenentwicklungen können sämtliche Regeln außer Kraft setzen
 Click to edit Master text styles
 Second level
 ThirdRisiko
level
Transaktion ZTRANS1
 Fourth level
Erzeugt ABAP Programme
INSERT REPORT
 Fifth level
Risiko
Transaktion ZTRANS2
Risiko
REPORT ZREP
Risiko
Web Dynpro Anwendung ZWD
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
Risiko
Funktionsbaustein ZFB1
Risiko
Funktionsbaustein ZFB2
Risiko
Business Server Page ZBSP
TITEL bearbeiten
(2) Sicherheitsrisiken in ABAP
 Click to edit Master text styles
 Second level
 Third level
 Fourth level
 Fifth level
Grafikquelle: http://de.wikipedia.org/wiki/Europa
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
Kritische
ABAP Befehle
Befehl
 Click
to
INSERT
REPORT
Wirkung
edit MasterErstellung
text styles
von ABAP Code
 Second level
 Third level
-
Keine S_DEVELOP Prüfung
Keine Prüfung auf Produktivsystem
Ermöglicht direkte Modifikation des Standards
CALL 'SYSTEM'
Ausführung beliebiger Betriebssystem-Kommandos

Fourth
level
CALL 'ThWpInfo'
- Bypass von SM49/SM69
- Keine S_LOG_COM Prüfung
 Fifth level
CALL 'C_DB_EXECUTE'
CALL 'C_DB_FUNCTION'
Ausführung beliebiger nativer SQL Kommandos
- Bypass von S_TABU_* Prüfungen
- Bypass von Änderungsbelegen
- Umgehen der Mandantentrennung
- Umgehen der OSQL Einschränkungen
CLIENT SPECIFIED Option
Umgehen der Mandantentrennung
INSERT
UPDATE
MODIFY
DELETE
Direkte Modifikation auf der Datenbank
- Bypass von S_TABU_* Prüfungen
- Bypass von Änderungsbelegen
dbtab
dbtab
dbtab
dbtab
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten im ABAP
Sicherheitsrisiken
Was
kannto
schief
 Click
editgehen?
Master text styles
1. Berechtigungsfehler
 Second level
2. Injection
Schwachstellen
 Third
level
3. Hintertüren
und Standard-Bypasses
 Fourth
level
4. Datenlecks  Fifth level
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL
#1
Berechtigungsfehler
bearbeiten
IF sy-uname <> for_user.
 AUTHORITY-CHECK
Click to edit
Master
text styles
OBJECT
'S_DEVELOP'
ID 'DEVCLASS' DUMMY
 Second level
ID 'OBJTYPE'
ID
 Third level
'OBJNAME'
FIELD for_user
ID 'P_GROUP'
DUMMY
ID 'ACTVT'
FIELD '90'.
 Fourth level
ELSE.
FIELD 'DEBUG'
 Fifth level
AUTHORITY-CHECK OBJECT 'S_DEVELOP'
ID 'DEVCLASS' DUMMY
ID 'OBJTYPE'
FIELD 'DEBUG'
ID 'OBJNAME'
DUMMY
ID 'P_GROUP'
DUMMY
ID 'ACTVT'
FIELD '03'.
IF sy-subrc <> 0.
cx_wd_general=>raise( text-001 ).
ENDIF.
ENDIF.
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL
#1
Berechtigungsfehler
bearbeiten
- Statistik
Es
gibt imto
Schnitt
1 kritischen
alle 1.400 LOC*
 Click
edit Master
textBerechtigungsfehler
styles
 Second level
 Third level
* Virtual Forge
Studielevel
mit 45 Firmen und 100 Mio LOC (netto)
 Fourth
Netto = Code ohne Kommentare
 Fifth levelund Leerzeilen
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL
#2
Injections
bearbeiten
DATA promotion TYPE string.
DATAClick
to TYPE
editstring.
Master text styles
filename
DATA mytext
TYPE string.
 Second level
promotion 
= request->get_form_field('promo').
Third level
 Fourth level
CONCATENATE '/sap/tmp/data/' promotion INTO filename.
OPEN DATASET filename
 FOR
FifthINPUT
levelIN TEXT MODE ENCODING DEFAULT.
mytext = ''.
WHILE sy-subrc = 0.
IF mytext IS NOT INITIAL AND mytext NE ''.
page->write( mytext ).
ENDIF.
READ DATASET filename INTO mytext.
ENDWHILE.
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL
#2
Injections
bearbeiten
„Normale“ Eingabe durch Benutzer
 Click to edit Master text styles
promo=flightapp/promotion/summer.txt
 Second level
Resultierender Dateizugriff
 Third level
/sap/tmp/data/flightapp/promotion/summer.txt
 Fourth level
 Fifth level
Unerwartete Eingabe durch Benutzer ( Injection durch Zeichenfolge ../ )
promo=../../../etc/passwd
Resultierender Dateizugriff
/sap/tmp/data/../../../etc/passwd
/sap/tmp/../../etc/passwd
/sap/../etc/passwd
/etc/passwd
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
DEMO
TITEL
#2
Injections
bearbeiten
- Statistik
Es
gibt imto
Schnitt
1 kritische
Injection
 Click
edit Master
text
stylesSchwachstelle alle 5.800 LOC*
 Second level
 Third level
* Virtual Forge
Studielevel
mit 45 Firmen und 100 Mio LOC (netto)
 Fourth
Netto = Code ohne Kommentare
 Fifth levelund Leerzeilen
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL
#3A
Hintertüren
bearbeitenbeim Kunden
„Die
drei Entwickler“
 Click
to edit Master text styles
Produktive
BSP Anwendung
mit versteckter Seite
 Second
level
 Für „normale“
Benutzer leer
 Third level
 Für drei Entwickler
Hintertür, um beliebige Tabellen auszulesen
 Fourth level
 Fifth level
DEMO
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL
#3B
Hintertüren
bearbeitenim Standard
 Click to edit Master text styles
 Second level
 Third level
 Fourth level
 Fifth level
Direkte Eingabe von “OK Codes” in TA RSRV
1.
Normaler Programmfluss:
"display"
2.
Versteckter Programmfluss:
"editor_call“
Keine „echte“ Hintertür, aber ein schönes „Osterei“
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL
#4
Datenlecks
bearbeiten
Fehlerhafter
Funktionsbaustein
 Click toRFC-fähiger
edit Master
text styles
 Input:
PERID level
ppp und PERNR nnn
 Second
 Output
Fehlerfall:
„Die angegebene PERID und PERNR passen
 im
Third
level
nicht zusammen.
PERNR nnn ist PERID xxx zugeordnet.“
 FourthDer
level
 Fifth level
STORY
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
(1) Prüfung von Eigenentwicklungen
 Click to edit Master text styles
 Second level
 Third level
 Fourth level
 Fifth level
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
BIZEC
APP/11 Prüfempfehlungen
ID
Schwachstelle
 Click
toCommand
edit Master
APP-01
ABAP
Injection
Beschreibung
textAusführung
stylesbeliebigen ABAP Codes
APP-02

OS Command
Injection
Second
level
APP-03
Improper
 ThirdAuthorization
level
APP-04
Generic Module Execution
APP-05
Cross-Client Database Access
Mandantenübergreifender Zugriff auf Geschäftsdaten
APP-06
SQL Injection
Schadhafte Manipulation von Datenbankbefehlen
APP-07
Unmanaged SQL
Verwendung nativer Datenbankbefehle
APP-08
Cross-Site Scripting
Manipulation des Browser UI, Diebstahl von Berechtigungen
APP-09
Cross-Site Request Forgery
Ausführung von Business Logik im Namen eines anderen
Benutzers.
APP-10
File Upload (Malware)
Speicherung schadhafter Dateien auf dem SAP Server
APP-11
Directory Traversal
Unerlaubter Schreib-/Lesezugriff auf Dateien (SAP Server)
(Missing, Broken, Proprietary, Generic)
 Fourth level
 Fifth level
Ausführung beliebiger Betriebssystem-Kommandos
Fehlende oder fehlerhafte Berechtigungsprüfung
Unerlaubte Ausführung von Modulen (Reports, FuBas, etc)
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
Weitere
Informationen
BIZEC – Business Security Initiative
Organisationen
http://www.bizec.org
 Click to edit Master text styles
 Second level
Literatur
 Third level
 Fourth level
Sichere ABAP-Programmierung
(SAP PRESS, 372 S., 2009)
Andreas Wiegenstein, Markus Schumacher,
Sebastian Schinzel, Frederik Weidemann
 Fifth level
Handbuch SAP-Revision
(SAP PRESS, 700 S., 2012)
Maxim Chuprunov
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
(SAP_ALL) Demos
 Click to edit Master text styles
 Second level
 Third level
 Fourth level
 Fifth level
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
ABAP
Command Injection
Funktionale
des Befehls
INSERT REPORT
 Click to Analyse
edit Master
text styles
1. Auswirkungen
 Second levelauf die Authorization Trace
2. Auswirkungen
 Third levelauf einem Produktivsystem
3. Modifikation
des level
SAP Standards
 Fourth
 Fifth level
DEMO
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
Quiz
 Click to edit Master text styles
 Second level
Was ist der kürzeste Weg
 Third level
 Fourth level
mittels
ABAP Code
 Fifth level
SAP_ALL Berechtigung
zu erhalten?
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
Lösung
56Click
to edit Master text styles
Zeichen
 Second level
UPDATE usrbf2 SET bname = sy-uname
 Third level
WHERE bname = '????'.
 Fourth level
 Fifth level
54 Zeichen
UPDATE usrbf2 SET bname = 'BOND'
WHERE bname = '????'.
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
Vielen
Dank für Ihr Interesse
 Click to edit Master text styles
 Second level
 Third level
 Fourth level
 Fifth level
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
Haben Sie noch Fragen?
 Click to edit Master text styles
 Second level
 Third level
VIRTUALFORGE GmbH
 Fourth level
[email protected]
 Fifth level
Speyerer Straße 6
69115 Heidelberg
Deutschland
Telefon: + 49 (0) 6221 86 89 0 - 0
Fax:
+ 49 (0) 6221 86 89 0 – 101
Twitter: @codeprofiler
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
TITEL bearbeiten
Disclaimer
Dieser
Vortrag
demonstriert
 Click
to edit
Master Sicherheitsrisiken
text styles in der Sprache ABAP.
 Second level
 Third level
Wenn bestimmte
Sicherheitsfehler in ABAP möglich sind, bedeutet dies
 Fourth
level
nicht zwangsläufig
, dass
diese im SAP Standard Code vorhanden sind.
 Fifth level
Virtual Forge hat allerdings sämtliche hier beschriebenen Fehler in
Eigenentwicklungen bei SAP Kunden entdeckt.
Virtual Forge rät ausdrücklich von Reisen in das Bermuda Dreieck ab.
©
© 2012
2011 Virtual Forge GmbH | www.virtualforge.com | All rights reserved.
Herunterladen