ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen

28
ABAP Qualitäts-Benchmark Eine Analyse von über 200 SAP Installationen iqnite Conference

Transcript of ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen

ABAP Qualitäts-Benchmark Eine Analyse von über 200 SAP Installationen

iqnite Conference

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

Was ist das größte Risiko bei einem SAP System?

Systemstillstand

7

#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 – Sicherheit und Compliance (3)

14

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

Business Code Quality Benchmark

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

[email protected]

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