Benchmarking ABAP-Code-Qualität Sicherheitslücken und

Werbung
Benchmarking ABAP-Code-Qualität
Sicherheitslücken und Schwachstellen in
Eigenentwicklungen
Frederik Weidemann
Head of Consulting
Virtual Forge GmbH
Axel Allerkamp
Leiter Security Analyse und Test
Axel Springer AG
Axel Springer AG
2
Virtual Forge
Virtual Forge:
Experten für SAP®-Anwendungssicherheit
 Gründung in 2001
 Eigentümergeführt
 Standorte in Heidelberg, Weimar und Philadelphia (USA)
3
Warum reden wir zusammen?
Erstmaliges
Benchmarking
von ABAP
Kunden-Code
Prüfung im Sinne der Wirtschaftsprüfer nicht
ausreichend!
Ermöglicht Risikobewertung für neue
Geschäftsfelder als Annahme, bis sie überprüft
werden
Abschätzung:
Mit welchem Aufwand muss gerechnet werden?
Vergleichbarkeit:
Wo stehe ich im Vergleich zu anderen?
4
Geschäftsrisiken durch Sicherheitslücken
Industriespionage
Datenmanipulation
Datendiebstahl
Imageverlust
Systemausfälle
5
Risiken im ABAPTM-Code
In ~1.000 Zeilen ABAP-Code ist eine kritische
Sicherheitslücke!
6
Agenda

Vergleichende Daten & Fakten aus einer Vielzahl durchgeführter CodeReview-Projekte
 Überprüfte Systeme / Kunden
 Benchmark
 Gewonnene Erkenntnisse
7
Agenda

Vergleichende Daten & Fakten aus einer Vielzahl durchgeführter CodeReview-Projekte
 Überprüfte Systeme / Kunden
 Benchmark
 Gewonnene Erkenntnisse
8
Fakten
September 2012
Kunden
61
Systeme
75
Zeitraum der Datenakquise
ABAP-Code-Zeilen
(Lines of Code)
Q4/11 – Q3/12
125 603 168
Anonymisierte Daten
Alle Findings wurden im Kunden-Code gefunden
 Y*,Z* oder 3rd-Party-Namespaces
 Zur Zeit kein SAP-Code
Testfälle
 Betrachtung der APP/11-Liste von BIZEC
 Sicherheit, Compliance, Performance, Wartbarkeit, Robustheit
9
Definitionen
Arithmetisches Mittel (Average): 𝐴𝑀 =
1
𝑛
𝑛
𝑖=1 𝑥𝑖
Median:
„Der Wert, welcher an der mittleren Stelle steht, wenn man die
Werte nach Größe sortiert.”
Beispiel: 1,2,3,100,101  Median = 3
LOC = Lines of Code
(ohne Kommentare und Leerzeilen)
KLOC = Kilo LOC
MLOC = Millionen LOC
10
Metriken
Das „Durchschnittsprojekt“
Metrik
Average
Median
1 674 709
1 128 097
Kommentare
535 863
319 223
Inline Kommentare
112 654
60 461
Prozentualer Anteil der Kommentare in den LOC
~27%
~27%
Pragmas
4 650
1 377
52,9
52
Lines of Code (LOC)
(ohne Kommentare und Leerzeilen)
Average Module Size (LOC)
11
Das „Durchschnittsprojekt“
Metrik
Average
Median
1 674 709
997 907
1 Fehler pro
LOC
(Average)
Average
# Fehler
Median
# Fehler
1153
1451
852
7705
217
116
1186
1375
803
1668
1003
218
129
13022
6424
Source Code Lines (LOC)
(ohne Kommentare und Leerzeilen)
Bereich
Sicherheit
(Critical Findings)
Compliance
(Critical Findings)
Performance
(Critical Findings)
Robustheit
(Critical Findings)
Wartbarkeit
(Total Findings)
12
Das „Durchschnittsprojekt“
Metrik
Median
Pakete
156
53
Klassen
377
106
Funktionsgruppen
617
382
Programme
1729
1142
Includes
1389
840
12
0
148
0
22
0
131
0
BSP Anwendungen
BSP Seiten
Web Dynpros
WD Komponenten
13
Average
Das „Durchschnittsprojekt“
Security-Metriken
Metrik
Median
Authority Checks
523
165
Function Modules (RFC)
311
147
RFC Calls to Server
167
73
12358
7889
206
0
10128
6171
Sources - Untrusted (RFC)
1674
746
Sources - Untrusted (FTP)
3
0
346
106
Sources (Total)
Sources - Untrusted (HTTP)
Sources - Untrusted (SAPGUI)
Sources - Untrusted
(Indirect via File or OS)
15
Average
Agenda

Vergleichende Daten & Fakten aus einer Vielzahl durchgeführter CodeReview-Projekte
 Überprüfte Systeme / Kunden
 Benchmark
 Gewonnene Erkenntnisse
16
BIZEC APP/11 - 2010
ID
Schwachstelle
Beschreibung
APP-01
ABAP Command Injection
Ausführung von beliebigem ABAP-Code
APP-02
OS Command Injection
Ausführung beliebiger Betriebssystem-Kommandos
Improper Authorization
17
APP-03
(Missing, Broken, Proprietary,
Generic)
Fehlende oder fehlerhafte Berechtigungsprüfung
APP-04
Generic Module Execution
Unerlaubte Ausführung von Modulen (Reports, FuBas, etc.)
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)
ABAP Schwachstellen – Beispiel
Berechtigungsfehler in SE30 führt zu ABAP Command Injection
 Patch verfügbar seit Februar 2012
 Fehler wird mit SAP Note 1661349 behoben
18
Das „Durchschnittsprojekt“ (1.67 MLOC)
Security
Testfall
Missing
before CALL TRANSACTION
Top 20AUTHORITY-CHECK
Security Test Cases
Missing AUTHORITY-CHECK in Reports
Directory Traversal (Write Access)
Hard-coded SAP System ID Checks (sy-sysid)
Missing AUTHORITY-CHECK in RFC-Enabled Functions
Dangerous ABAP Commands
Directory Traversal (Read Access)
File Upload (SAP GUI)
Hard-coded SAP Client Checks (sy-mandt)
File Download (SAP GUI)
Cross-Site Scripting
Generic RFC Destinations
OSQL Injection (Read Access)
Broken AUTHORITY-CHECKs
Generic Table Query (Write Access)
Generic ABAP Module Calls
Exposed Kernel Calls
Alias Authorization in AUTHORITY-CHECK
ABAP Command Injection (report)
ABAP Command Injection (program)
20
AVERAGE
547
266
151
121
104
59
56
34
22
18
15
13
13
7
6
6
4
3
2
2
MEDIAN
300
126
19
40
35
0
10
9
1
5
0
5
2
1
1
0
0
0
0
0
Top 20 Security im „Durchschnittsprojekt“
600
500
400
300
200
100
0
MED
AVG
AVG
MED
 Das unterschätzte Risiko: ABAP Quellcode Sicherheit
 Anzahl der Schwachstellen ist nicht vernachlässigbar
21
Top 5 Compliance im „Durchschnittsprojekt“
160
140
120
100
80
60
40
20
0
MED
AVG
AVG
MED
 Falsche oder fehlende Berechtigungsprüfungen
werden über Bordmittel (Ta. SUIM, ST01, …) nicht erkannt
22
Top 5 Robustheit im „Durchschnittsprojekt“
1400
1200
1000
800
600
400
200
0
AVG
MED
Unchecked
Exception after Ignored Exceptions
CALL FUNCTION (Non-Class-based)
Insufficient Error
Handling
(TRY/CATCH)
AVG
Hard-coded RFC
Destinations
Parameter
Mismatch in CALL
FUNCTION
Unerwartet hohe Anzahl von Fehlern:
 Funktionale Probleme!
 Applikation im undefinierten Zustand?
24
MED
Agenda

Vergleichende Daten & Fakten aus einer Vielzahl durchgeführter CodeReview-Projekte
 Überprüfte Systeme / Kunden
 Benchmark
 Gewonnene Erkenntnisse
25
Gewonnene Erkenntnisse
Wer interessiert sich schon für ABAP-Code …
26
Gewonnene Erkenntnisse
SAP GUI und RFC
Erkenntnisse aus unseren SAP Basis Audits
 Der durchschnittliche SAP Key User hat S_RFC = “*“
Angriffsmöglichkeiten (aus dem “Durchschnittsprojekt”)
 311 Remote fähige Funktionen (RFC)
 Häufig sind RFC-fähige Funktionen generisch programmiert und werden über
einen technischen Benutzer aufgerufen.
 Beispiel:
BW-System
 AUTHORITY-CHECK
27
OBJECT lv_auth FOR USER iv_input
Gewonnene Erkenntnisse
 In jedem System gibt es mit einer Wahrscheinlichkeit größer 50%
mindestens eine “ABAP Command Injection (Report oder
Programm)”
 100% der Projekte haben Berechtigungsprobleme durch fehlende
Berechtigungen
 96% haben fehlende Berechtigungen bei CALL TRANSACTION
 In 88% der Projekte haben wir mindestens ein Problem mit
Directory Traversal (Read or Write) gefunden
 In ~1.000 Zeilen ABAP-Code ist eine kritische Sicherheitslücke!
28
Axel Springer AG
Wie die Axel Springer AG die Ergebnisse benutzt
 Bewertung der SAP Systeme
 Etablieren von Verfahren und Methoden zur sicheren ABAP Code
Entwicklung
Risikoabschätzung, wenn noch nicht unternommen wurde
 Einstufung in höhere Risikoklasse
Budgetplanung
 Aus- und Weiterbildung von Softwareentwicklern
 Aufwände für Fixen
29
Complimentary Scan
Take the Test!
unter www.virtualforge.com
Sicherheit & Compliance
Ihr
ABAP™Code
Performance
Robustheit & Wartbarkeit
Data Loss Prevention
• SchwachstellenBericht
• Risiko-Priorisierung
• Beispiele von
konkreten
Schwachstellen
• Div. Code-Metriken
• Benchmark (auf
Wunsch)
Complimentary Scan
Virtual Forge
CodeProfiler
Sprechen Sie uns an! Sie finden Virtual Forge in
Halle 5 am Stand D1!
31
Kontakt
Frederik Weidemann [email protected]
Head of Consulting
Virtual Forge GmbH
Speyerer Str. 6
69115 Heidelberg
Tel. +49 6221 / 868 90 - 160
Axel Allerkamp [email protected]
Leiter Security Analyse und Test
Weitere Informationen:
Axel Springer AG
Axel-Springer-Straße 65
10888 Berlin
Tel. +49 30 / 2591 – 77 77 6
32
•
•
Artikel „Sicherheitslücken und Hintertüren im
ABAP-Code“ (Link)
Artikel „Mit Schwachstellen umgehen und sie
unter Kontrolle halten“ (Link)
Disclaimer
© 2012 Virtual Forge GmbH. All rights reserved.
SAP, ABAP und weitere im Text erwähnte SAP-Produkte und –Dienstleistungen sowie die
entsprechenden Logos sind Marken oder eingetragene Marken der SAP AG in Deutschland
und anderen Ländern weltweit. Alle anderen Namen von Produkten und Dienstleistungen
sind Marken der jeweiligen Firmen. Die Angaben im Text sind unverbindlich und dienen
lediglich zu Informationszwecken
In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung
geändert werden. Die vorliegenden Angaben werden von Virtual Forge bereitgestellt und
dienen ausschließlich Informationszwecken. Virtual Forge über nimmt keinerlei Haftung
oder Garantie für Fehler oder Unvollständigkeiten in dieser Publikation. Aus den in dieser
Publikation enthaltenen Informationen ergibt sich keine weiterführende Haftung.
Es gelten die Allgemeinen Geschäftsbedingungen von Virtual Forge – einsehbar auf
www.virtualforge.com.
33
Herunterladen