Compliance,
Performance und
Qualität
für
SAP® ABAP
Programmierung
MEHRWERK
Compliance für SAP® Systeme
Seite 2
Compliance für SAP® Systeme
Co
mp
lian
ce
• SoD Regelwerk
• Compliance
• WP Audit
Management
> 10 Regeln
• Anwender/Rollen
• Arbeitsplatz
• Lizenz Mgmt
• WP Audit relevant
Prozesse
>100 Rollen
• Berechtigungskonzept
• Antrag/Verwaltung/Freigabe von User Rechten
• Online Compliance Prüfung
• Dokumentation
Administration
> 1.000 Funktionen/Rollen/Objekte
• Programmier Standards
• Einhaltung SourceCode Security
• Umsetzung Compliance in SourceCode
• Prüfung Eigenentwicklungen
• Kontrolle externer SourceCode
SourceCode
>10.000 Programme
SAP® ist die Plattform für Geschäftsprozesse
Seite 3
Compliance für SAP® Systeme
SAP® ABAP ist das Rückgrat Ihrer Geschäftsprozesse – durch
Manipulationen sind Ihre Kronjuwelen in Gefahr!
Mehr als 90% der SAP®-Anwendungen sind in ABAP
geschrieben
Durch Kundenentwicklungen werden spezifische Funktionen
realisiert
Selten erweiterte Produktdefinition zusätzlich zu den
funktionalen Aspekten als Abnahmebedingung
Keine tiefergehende Prüfung außerhalb
der geforderten Kernfunktionen
Risiken in der SAP® ABAP Programmierung
Seite 4
Compliance für SAP® Systeme
ABAP Command
Injection
OS Command Execution
Missing Authority Checks
Cross-Site Scripting
SQL Injection
Etc.
Hard-Code User
Names
Cross-Client Access to
business data
Direct database
modifications
Etc.
Nested Loops
Nested SELECT
WAIT statements
Usage of SELECT *
Etc.
Empty Blocks /
Modules
Micro Modules /
Overlong Modules
Incomplete CASE
Statements
Insufficient Error
Handling
Optimierung und Sicherheit für SAP® ABAP
Seite 5
Compliance für SAP® Systeme
Testautomatisierung mit CodeProfiler.
Vermeiden von Fehlern vor dem Go-Live
Überprüfung von Qualitätsstandards
Risikominimierung
Compliance:
Gewährleistung von Applikationssicherheit
Audit: individuelle Dokumentation
Quality: Transparenz über Sicherheit, Compliance, Performance, etc.
Sicherheit & Kostenkontrolle
Kontrolle: Qualität der Fremdentwicklungen messen
Transparenz: Detailliertes
Reporting von kritischen Faktoren
Effektivität: Priorisierung der klassifizierten Ergebnisse
Know-How Transfer: Anleitung zur sicheren Codeprogrammierung
Projektbeispiele von Risiken…
Seite 6
Compliance für SAP® Systeme
Beispiel 1:
Durch eine Untersuchung mit „CodeProfiler“ wurden in einem SAP®-System mit produktiven
Finanzdaten mehrere sogenannte Code Injection Probleme gefunden
Code Injection: Es ist möglich, dynamisch ABAP Quellcode in das System einzuschleusen
Sämtliche Prüfmechanismen für die Erstellung neuen Quellcodes werden umgangen
(Transportprüfungen, Q/A)
Die neu erstellten Programme werden nicht in gewohnter Weise im SAP®-System protokolliert, es
gibt keine Einträge über das Datum der Erstellung sowie den Nutzer
Die gefundenen Programme konnten auch dazu genutzt werden, den Code wieder zu entfernen
Einige der gefundenen Programme verfügten über keinerlei Berechtigungsprüfungen
Auf diese Weise war es jedem Mitarbeiter mit einem Nutzer in besagtem SAP®-System möglich,
eigene Programme beliebigen Inhalts in das System hochzuladen, diese auszuführen und danach
wieder zu löschen, ohne dass diese Manipulationen bemerkt würden
Projektbeispiele von Risiken…
Seite 7
Compliance für SAP® Systeme
RISIKO:
Geschäftlich:
Durch die Möglichkeit finanzieller Manipulationen stand die Zuverlässigkeit des Jahresabschlusses in
Frage.
Die Zustimmung des Wirtschaftsprüfers zu den Finanzdaten war gefährdet.
Technisch:
Sämtliche SAP®-Systeme des Konzerns mussten auf die Existenz der entsprechenden Programme hin
untersucht werden.
Es mussten umfangreiche Prüfungen durchgeführt werden, um nachzuweisen, dass die entsprechenden
Programme nicht aufgerufen worden waren.
Die Programme mussten gelöscht werden; zusätzliche Tests waren notwendig, um sicherzustellen, dass die
Löschung von Programmen in produktiven Systemen nicht zum Ausfall von Funktionalität führte.
Projektbeispiele von Risiken…
Seite 8
Compliance für SAP® Systeme
Beispiel 2:
Durch eine Untersuchung mit „CodeProfiler“ wurden in einem SAP® SRM Portal mehrere Backdoors
identifiziert. Damit war ein vollständiger Zugriff auf alle Daten möglich.
Backdoor: (un)absichtlich eingebaute Zugangsmöglichkeit, die an den vorgesehenen Schutzmechanismen
vorbeigeht.
Sämtliche Prüfmechanismen auf das System werden umgangen
Der Zugriff ist für den Kunden nicht nachvollziehbar.
Auf diese Weise war es jedem Externen möglich, die komplette Anwendung zu nutzen. Es konnten
alle Daten gelesen und geändert werden. Dem Kunden war nicht bewusst, dass diese Lücke von
außen von jedem ausnutzbar war.
Projektbeispiele von Risiken…
Seite 9
Compliance für SAP® Systeme
RISIKO:
Geschäftlich:
Der Kunde hat vertragliche und gesetzliche Anforderungen an Datenschutz und Vertraulichkeit nicht
eingehalten.
Zu den vertraulichen Informationen gehörten auch Entwürfe für neue Anlagen, die so einem
Konkurrenten leicht zugänglich waren. Ein Teil der Geschäftsgeheimnisse lagen somit offen.
Im Schadensfall wirkt sich dies auf die Reputation des Herstellers aus, da Anbieter nicht davon ausgehen
können, dass Ihre Daten geschützt sind.
Backdoors werden manchmal absichtlich eingebracht und gezielt für Wirtschaftsspionage genutzt.
Technisch:
Die Identifikation und Behebung der Sicherheitslücken durch „CodeProfiler“ konnte in kurzer Zeit
erfolgen. Der Kunde konnte so mit wenig Aufwand ein großes Risiko ausschließen.
Der Ansatz zur SAP® ABAP Prüfung
Seite 10
Compliance für SAP® Systeme
CodeProfiler nutzt Daten- und Kontrollflussanalysen in Verbindung mit einem umfangreichen
Bestand an Regeln, der viele Datenquellen und gefährliche ABAP Statements umfasst.
Bei der Datenflussanalyse werden zunächst Datenquellen identifiziert, d.h. Stellen im Code, an
denen (externe) Daten in Variablen eingelesen werden. Anschließend wird analysiert, ob es
Verbindungen zwischen einer Datenquelle und einem potentiell gefährlichen Statement gibt.
Jede identifizierte Verbindung (Datenfluss) zeigt an, dass das Statement mit großer
Wahrscheinlichkeit eine Gefährdung darstellt und als Schwachstelle ausgenutzt werden kann.
Auf Basis der Datenflussanalyse finden weitere Prüfungen wie Typisierung,
Berechtigungsprüfung, Nutzung regulärer Ausdrücke etc. statt. Dadurch wird eine
Priorisierung und damit Effizienzsteigerung im Prozess erreicht.
Der technische Ansatz zur SAP® ABAP Prüfung
Daten- und Kontrollfluß Analyse
Seite 11
Compliance für SAP® Systeme
Prüfbereiche der SAP® ABAP Analyse
Seite 12
Compliance für SAP® Systeme
Sicherheit
Diese Domäne deckt Testfälle ab, die sich auf allgemeine Sicherheitsdefekte
beziehen, beispielsweise Code mit versteckten Nebeneffekten, die von Angreifern
ausgenutzt werden können.
Unter http://www.bizec.org finden Sie Sicherheitsrisiken für betriebswirtschaftliche
Anwendungen.
Testcases – Beispiele:
ABAP Command Injection
Directory Traversal
Cross-Site Scripting
Missing AUTHORITY-CHECK
Pishing
SQL Injection
Prüfbereiche der SAP® ABAP Analyse
Seite 13
Compliance für SAP•® Systeme
Compliance
Diese Domäne umfasst Testfälle in Bezug auf Compliance-Verstöße, etwa Coding-
Praktiken, die wichtige Sicherheitsmechanismen im SAP®-Standard umgehen.
Testcases – Beispiele:
Hard-coded User Name (sy-uname)
Cross-Client Access to Business Data
Hidden ABAP Code
Prüfbereiche der SAP® ABAP Analyse
Seite 14
Compliance für SAP® Systeme
Performance
Diese Domäne enthält Testfälle zum Identifizieren von Coding-Praktiken mit
negativen Auswirkungen auf die Performance ihres SAP®-Systems.
Testcases – Beispiele:
Usage of WAIT Command
Database Modifications in a Loop
SELECT Statement in a Loop
Usage of LIKE Clause
Missing WHERE Restriction in SELECT Statement
Nested SELECT Statement
Prüfbereiche der SAP® ABAP Analyse
Seite 15
Compliance für SAP® Systeme
Wartbarkeit
Die Testfälle in dieser Domäne analysieren den ABAP-Code auf Schwachstellen, die
die Wartung des Systems erschweren. Hierzu zählen:
Coding, das für neue Entwickler schwer nachvollziehbar ist
Coding mit einer komplexen Struktur
Unzureichende Dokumentation
Testcases Beispiele:
Empty Block
Empty Module
Overlong Module
Prüfbereiche der SAP® ABAP Analyse
Seite 16
Compliance für SAP® Systeme
Robustheit
Diese Domäne bietet Testfälle für Coding-Praktiken, die die zuverlässige
Ausführung von betriebswirtschaftlichen Anwendungen gefährden. Ein wichtiger
Vorteil von robustem Code ist die Gewährleistung reibungsloser Geschäftsabläufe
(Business Continuity): Robuster Code reagiert auf Fehler in einer kontrollierten,
zuverlässigen und vorhersehbaren Art und Weise.
Testcases – Beispiele:
Insufficient Error Handling (TRY/CATCH)
Incomplete CASE Statement
Recursion (Immediate)
Mehrwerte durch CodeProfiler
Seite 17
Compliance für SAP® Systeme
1. Analysen durchführen: Getting Secure
- als Entwickler oder Auditor
- Analyse von Transporten
- Batch Scheduling (SM37/SM36)
2. TMS/ChaRM Integration: Staying Secure
- Automatischer Anstoß von Analysen durch Transporte (SE10)
- Approval Workflow (Enforcement von Anforderungen)
3. Umgang mit Ergebnissen: Mitigation
- Finding Manager (Review, Bewertung und Beheben in der SE80)
Detail: Testgruppen Festlegen
Seite 18
Compliance für SAP® Systeme
Detail: Prüfen ganzer Pakete oder einzelner Objekten
Seite 19
Compliance für SAP® Systeme
Detail: prüfen geplanter Transporte
Seite 20
Compliance für SAP® Systeme
Ergebnisdarstellung von CodeProfiler
Seite 21
Compliance für SAP® Systeme
Die Ergebnisse der Analyse liegen als PDF-Bericht und als XML-Datei vor. Zudem können sie direkt
über die interactive Oberfläche im CodeProfiler angezeigt werden.
Der Executive Summary Report (PDF) enthält eine priorisierte Liste aller aufgedeckten Schwachstellen.
Diese Liste bietet einen schnellen Überblick über aktuelle Geschäftsrisiken auf Code-Ebene.
Der detaillierte PDF-Bericht enthält umfassende Informationen über jedes Analyseergebnis, gruppiert
nach Testfällen. Jeder Testfall beinhaltet:
Einleitung
Geschäftsrisiko
Detaillierte Erklärung
Beispielschwachstelle
Allgemeiner Lösungsansatz
Lösungsbeispiel
Zusätzlich zu diesen allgemeinen Informationen führt der Bericht auch Details zu allen entdeckten
Schwachstellen auf.
Ergebnisdarstellung von CodeProfiler
Seite 22
Compliance für SAP® Systeme
Ergebnisdarstellung von CodeProfiler
Seite 23
Compliance für SAP® Systeme
Integration CodeProfiler in Entwicklungsprozess
Seite 24
Compliance für SAP® Systeme
Mit der Integration in das SAP® Transport Management System (TMS) erhalten Sie die Möglichkeit, die
Transporte vor dem eigentlichen Release sowohl auf Aufgabenebene als auch auf Transportebene (oder
auf beiden Ebenen) mit dem CodeProfiler automatisch zu überprüfen, freizugeben oder bei Bedarf einem
definierten Ausnahmeprozess zuzuführen.
Eine automatisierte Überprüfung vor einem Import in ein bestehendes System (Entwicklung,
Konsolidierung, Produktion) kann dabei wie die Prüfung während der Releasephase erfolgen. Dabei ist es
technologisch unerheblich, ob ein oder mehrere SAP®-Systeme angebunden werden.
Es werden die bekannten Transport- und Freigabemechanismen wie Transport Management System
(TMS), Change Request Management (ChaRM) und Change und Transportsystem (CTS) sowie das CTS
pluss unterstützt.
Die Integration mit anderen evtl. bereits eingesetzten Zusatztools, wie beispielsweise theGuard!
TransportManager von Realteach, Transport Express von Basis Technologies oder anderen ist möglich.
Ein vorkonfigurierter SAP® Workflow (Notification- und Approval-Workflow) für Freigabe-, QA- und
Ausnahmeprozess ist in der Standardauslieferung enthalten.
Integration CodeProfiler in TMS/ChaRM
Seite 25
Compliance für SAP® Systeme
P60 EhP4
D60 EhP4
Development Test/QA Production Requirements- Paper
SICHERE SAP PROGRAMMIERUNG
ABAP
Guideline
Java
Guideline
ABAP
Spezifikation
Java
Spezifikation
Generelle
Guideline
Interne
Entwicklung
Externe
Entwicklung
CodeProfiler TMS-
gatekeeper
Q60 EhP4
Exception
via QA
Integration CodeProfiler in TMS/ChaRM
Seite 26
Compliance für SAP® Systeme
Integration CodeProfiler in TMS/ChaRM
Seite 27
Compliance für SAP® Systeme
Developer
QA / PL
Release
CodeProfiler Parse
TMS
Review
Review
Transp. O
kay
F
alse
Req
ues
t
Change
Ap
pro
ve
Reject
Develop
SAP® Zertifizierte Lösung
Seite 28
Compliance für SAP® Systeme
CodeProfiler hat erfolgreich die
SAP® -Integration-Zertifizierung absolviert
CodeProfiler ist eine zuverlässige Lösung
für Ihre SAP®-Umgebung.
Offizieller SAP® Software Partner.