abap qualitäts-benchmark: eine analyse von über 200 sap installationen
Post on 23-Jul-2015
322 Views
Preview:
TRANSCRIPT
Andreas Wiegenstein
Der ABAP Qualitäts-Benchmark
Eine Analyse von über 200 SAP Installationen
iqnite Konferenz 28. - 30. April 2015
Agenda
1. SAP Standard und Eigenentwicklungen durch Kunden
2. Statistiken der Eigenentwicklungen
3. Best Practices
2
#SAP #Research CTO @ Virtual Forge GmbH
SAP Security Researcher, aktiv seit 2003 Credits von SAP für > 75 gemeldete 0-Day Schwachstellen
Co-Autor “Sichere ABAP Programmierung” (SAP Press) Co-Autor “ABAP Best Practices Leitfaden” (DSAG) Autor “Top 20 Sicherheitsrisiken in ABAP Anwendungen” (BSI)
Sprecher auf internationalen Konferenzen Troopers (Europa), BlackHat (Europa), Hack in the Box (Europa) SAP TechEd (USA & Europa), IT Defense (Europa), RSA (USA)
Andreas Wiegenstein
SAP
Warum sind SAP Systeme wichtig?
� Mehr als 248,500 Unternehmen haben SAP im Einsatz
� SAP Kunden…
� Transportieren > 1.1 Milliarden Flugpassagiere pro Jahr � Produzieren > 77,000 Autos am Tag � Produzieren > 52% aller Kinofilme � Produzieren > 65% aller Fernsehgeräte
� Aber vor allem: � 72% der weltweiten Bierproduktion hängt von Unternehmen ab, die SAP einsetzen !!!
4
Qu
elle: http
://ww
w.p
oste
rs.at/the
-simp
son
s--ho
mer-b
ier_a34
273.htm
l
SAP Eigenentwicklungen - Ausgangssituation
(Alle) Kunden passen den SAP Standard an
� Interne Entwicklungsteams
� Externe Entwickler
Die Entwicklungsrichtlinien der meisten Kunden konzentrieren sich auf
� Namenskonventionen
Der SAP Standard liefert
� Rudimentäre Tools zur statischen und dynamischen Codeanalyse
� Keine Metriken bzgl Volumen (Lines of Code)
5
SAP Besonderheiten in der Programmierung
� SAP Systeme laufen unabhängig von Betriebssystem und Datenbank
� SAP hat einen proprietäre Client: SAP GUI
� Bei Zugriffen auf Geschäftsdaten sind besondere Regeln zu beachten � Berechtigungsprüfungen � Spezielle Protokollierung von Änderungen
� Daten verschiedener Organisationen (Mandanten) sind (getrennt) in derselben Datenbank gespeichert
� Spezieller ABAP Befehl, um Berechtigungsprüfungen durchzuführen: AUTHORITY-CHECK
� Proprietäre SQL Schicht zwischen ABAP und der Datenbank: Open SQL
� Proprietäre System-zu-System Kommunikation: RFC (Remote Function Call)
6
#Statistik
"Es gibt 3 Arten von Lügen: Lügen, verdammte Lügen und Statistiken." (Benjamin Disraeli)
“Traue keiner Statistik, die Du nicht selbst gefälscht hast.” (Unbekannt)
Business Code Quality Benchmark
Andauerndes Projekt zur Analyse des gesamten ABAP Codings je eines ausgewählten SAP Systems
� Ergebnisse bisher von 217 Unternehmen
� Mit verschiedensten Qualitätssicherungsprozessen / -Reifegraden � Verschiedener (Konzern)Größen � Mit verschieden-langer SAP Historie � Aus verschiedensten Branchen und Ländern
� Basierend auf statischer Codeanalyse
� Performance, Rosbustheit, Sicherheit, Compliance � Nur “kritische” Fehler werden in der Statistik berücksichtigt
� Datenerhebung stammt aus den Jahren 2013 und 2014
9
Statistiken - Allgemein
Durchschnittlich haben Unternehmen 2,08 Millionen Zeilen eigenen Code pro SAP System � Kunden nutzen nicht den “reinen” SAP Standard
Die häufigste Modularisierungseinheit sind FORMs (Prozeduren) mit 64%, gefolgt von Methoden (19%) � Die meiste selbst geschriebene Funktionalität ist also schlecht wiederverwendbar
Es gibt durchschnittlich 14.500 zusätzliche Dateneingabe-Quellen durch Kundencode � Jede Datenquelle erhöht die Angriffsoberfläche einer Software
78% aller Benutzereingaben kommen aus SAP GUI Anwendungen 18% aller Benutzereingaben kommen aus RFC (Remote Function Call) Verbindungen � Innentäter haben daher die höchsten Chancen Sicherheitsdefekte zu finden
10
Statistiken – Allgemein (2)
Es gibt mehr Qualitätsprobleme bei Datenbankzugriffen als Datenbankzugriffe � Es gibt im Schnitt 24.635 Open SQL Abfragen im Kundencode
( 21.227 Lesezugriffe und 3.408 Schreibzugriffe )
� Es gibt im Schnitt 26.147 Qualitätsfehler bei Open SQL Abfragen ( verteilt auf alle Testbereiche )
Nur 0,3% aller SAP Module sind per HTTP / Internet erreichbar � Optimierungen sollten sich zunächst auf “klassische” ABAP Entwicklung konzentrieren � Sicherheitslösungen wie Web Application Firewalls haben einen vergleichsweise geringen Wert
11
Statistiken – Sicherheit und Compliance
Es existiert 1 kritischer Sicherheits-/Compliance-Fehler pro 1.000 Zeilen Code
� Das typische SAP System hat damit 2.151 Sicherheits-/Compliance-Fehler alleine im Kundencode.
Liste der 5 häufigsten Sicherheits- und Compliance-Fehler:
* Wahrscheinlichkeit gibt an in wie vielen der untersuchten Systeme mindestens 1 Fehler dieser Art auftrat. ** Anzahl gibt wieder wie viele kritische Fehler dieser Art pro System im Schnitt auftreten.
12
Art der Schwachstelle Wahrscheinlichkeit * Anzahl ** Berechtigungsfehler 100 % 1.056 Directory Traversal 91 % 308 Direkte Modifikation von SAP Tabellen 86 % 39 Mandantenübergreifende Zugriffe 83 % 122 Open SQL Injection 70 % 15
Statistiken – Sicherheit und Compliance (2)
Pro System sind 10 Sicherheitslücken so schwerwiegend, das sie einem Angreifer ermöglichen die totale Kontrolle über den SAP Server zu erlangen
Pro System gibt es 184 proprietäre Berechtigungsprüfungen � „Rote Ampel“ bei Wirtschaftsprüfungen
Pro System gibt es 476 RFC-fähige Funktionsbausteine. Bei 64% davon fehlt jegliche Berechtigungsprüfung im Code.
13
Statistiken – Performance
Es existieren 1,2 kritische Performance-Fehler pro 1.000 Zeilen Code � Unternehmen nutzen nur einen Bruchteil ihrer Hardwareleistung
Liste der 5 häufigsten Performance-Fehler:
* Effekt gibt an, wo sich die Performancefehler auswirken - Anwendungsserver (AS) oder Datenbank (DB). ** Wahrscheinlichkeit gibt an in wie vielen der untersuchten Systeme mindestens 1 Fehler dieser Art auftrat. *** Anzahl gibt wieder wie viele kritische Fehler dieser Art pro System im Schnitt auftreten.
15
Art der Schwachstelle Effekt * Wahrscheinlichkeit ** Anzahl *** Ineffiziente Operationen AS 99 % 825 Verschachtelte Schleifen AS 99 % 464 DB Index ineffizient verwendet DB 98 % 1.328 WAIT Kommandos (5+ Sekunden) AS 91 % 42 Umgehung der DB Pufferung DB 90 % 763
high score: WAIT UP TO 6000 SECONDS.
Statistiken – Performance (2)
16
Analyse von 26 Transaktionen, die in Projekten optimiert wurden � 84% der verbrauchten Laufzeit war unnötig
Statistiken – Robustheit
Es existieren 3,2 kritische Robustheits-Fehler pro 1.000 Zeilen Code
� Unerwartetes Systemverhalten führt zu Abstürzen und ungewünschten Ergebnissen
Mehr als 76% der SAP Systeme verwenden Datenbank-abhängigen Code
� Datenbankmigrationen erfordern Änderungen im Code
Liste der 3 häufigsten Robustheits-Fehler:
* Wahrscheinlichkeit gibt an in wie vielen der untersuchten Systeme mindestens 1 Fehler dieser Art auftrat. ** Anzahl gibt wieder wie viele kritische Fehler dieser Art pro System im Schnitt auftreten.
17
Art der Schwachstelle Wahrscheinlichkeit ** Anzahl *** Fehlende / Falsche Ausnahmebehandlung 97 % 5.478 Hard-codierte Abhängigkeiten 95 % 251 Instabile Operationen 80 % 341
#Best Practices
"Der Begriff best practice, auch Erfolgsmethode genannt, stammt aus der angloamerikanischen Betriebswirtschaftslehre und bezeichnet bewährte, optimale bzw. vorbildliche Methoden, Praktiken oder Vorgehensweisen im Unternehmen. Der Begriff wird heute auch allgemeiner für die Erfolgsmethode bzw. bestmögliche Methode verwendet, etwa in politischen Zusammenhängen."
de.wikipedia.org
Best Practices
Machen Sie einen Awareness Workshop für Ihr Management � Ohne einen verpflichtenden Prozess mit Rückendeckung des Managements ändert sich nichts
Setzen Sie sich erreichbare Ziele � Kein Entwickler lernt 300 optimierte Programmierpraktiken über Nacht Entwerfen Sie einen Plan, wie Sie mit Altlasten umgehen � Korrekturen brauchen Zeit � Alle Fehler zu beheben ist nicht wirtschaftlich
19
Best Practices (2)
Verwenden Sie sinnvolle Entwicklungsrichtlinien � Für alle Qualitätsbereiche � Für interne und externe Entwicklungen
Achtung: Applikationssicherheit ist für viele Entwickler schwer zu verstehen � Für ein gutes Sicherheitsverständnis sind regelmäßige Schulungen erforderlich
Verwenden Sie Tools um die Einhaltung der Entwicklungsrichtlinien zu überprüfen � Nur überprüfbare Richtlinien lassen sich umsetzen � Nur Tools liefern Transparenz, wo Ihr Unternehmen in Punkto SAP Code-Qualität steht
Messen Sie den Erfolg Ihrer Maßnahmen � Erfolg sichert die langfristige Akzeptanz des neuen Prozesses
20
BSI „ABAP Top 20“
Fazit
23
Wenn Ihr Unternehmen SAP einsetzt, hat es (statistisch betrachtet) signifikante Qualitätsmängel in den Eigenentwicklungen. Diese Qualitätsmängel haben deutliche Auswirkungen auf � Die Sicherheit Ihres Unternehmens � Die Stabilität / Verfügbarkeit Ihrer Systeme � Die Effizienz Ihrer Hardware
Nächste Woche
Nehmen Sie an unserer Studie Business Code Quality Benchmark teil
Sie erhalten einen umfassenden Bericht über eins Ihrer SAP Systeme
Nächster Monat
Diskutieren Sie die Ergebnisse mit Ihrem Management
Optimieren Sie Ihren SAP Entwicklungsprozess
Nächstes Jahr
Betreiben Sie Ihre SAP Anwendungen sicherer, performanter und robuster
Nächste Schritte
24
Vielen Dank für Ihre Aufmerksamkeit
Fragen ? Jetzt oder später
@codeprofiler
#ThingsWeFoundWhenPentestingSAP
andreas.wiegenstein@virtualforge.de
Haftungsausschluss
© 2015 Virtual Forge GmbH. Alle Rechte vorbehalten. In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert werden. Die vorliegenden Angaben werden von der Virtual Forge GmbH bereitgestellt und dienen ausschließlich Informationszwecken.
SAP, ABAP und weitere im Text erwähnte SAP-Produkte und –Dienstleistungen sowie die entsprechenden Logos sind Marken oder eingetragene Marken der SAP SE 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.
Die Virtual Forge GmbH übernimmt 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.
Kein Teil dieser Publikation darf in irgendeiner Form oder zu irgendeinem Zweck reproduziert oder übertragen werden ohne die ausdrückliche Einwilligung der Virtual Forge GmbH. Es gelten die Allgemeinen Geschäftsbedingungen der Virtual Forge GmbH.
26
top related