ABAP Code Security – SAP Code Vulnerability Analyzer / Virtual Forge CodeProfiler for ABAP
Autor: Tobias Harmes | 21. Juli 2017
Ein wichtiger Bereich der SAP Security ist die Analyse der kundeneigenen SAP-Programme, die klassisch in der proprietären SAP-Sprache ABAP geschrieben werden. Auch hier können, wie in allen Programmiersprachen, Sicherheitslücken programmiert werden – sei es nun bewusst oder unbewusst. Die Muster der Sicherheitslücken im ABAP-Code unterscheiden sich dabei allerdings von denen in Java-Stacks oder Windows-Programmen. Das Ziel bei diesen herkömmlichen Programmen ist es meistens, durch gezielte Falscheingaben das Programm entweder zum Absturz zu bringen (Buffer Overflow) oder künstlich eigenen Code zur Ausführung zu bringen (Code Injection).
Beides ist in ABAP nicht möglich, da ein Absturz eines Prozesses nichts anderes bewirkt als das Erzeugen eines Eintrages in der Log-Datenbank (Dump ST22) und ein anschließendes Beenden des Reports mit Rückkehr an den Menüstartpunkt. Eine direkte Manipulation wie in anderen Hochsprachen oder Servern ist also nicht möglich. Allerdings gibt es andere Manipulationsmöglichkeiten. Beispielsweise arbeiten viele kundeneigene ABAP-Programme mit dem Uploaden oder Downloaden von Daten. Hier sind potentiell große Sicherheitslücken vorhanden, die Zugriff auf Serverdaten ermöglichen. Darüber hinaus ist der weit verbreitete direkte Aufruf von Betriebssystemkommandos, die nicht durch eine selbst programmierte Berechtigungsprüfung abgedeckt sind, ein großes Problem.
Auch wenn die klassische SQL-Injection, also die Eingabe erweiterter SQL-Befehle, eine mögliche Sicherheitslücke ist, kommt sie in SAP-Systemen eher selten vor. Weiter verbreitet ist die ungewollte Dynamisierung von SQL-Aufrufen, weil Eingangsparameter nicht ausreichend geprüft werden. Die Notwendigkeit, alle Eigenentwicklungen auch intern auf solche Sicherheitslücken zu überprüfen bevor sie in den SAP-eigenen Code zur Auslieferung kommen, hat zur Entwicklung des Werkzeugs SAP Code Vulnerability Analyzer geführt.
Durch den Einsatz eines Code-Scanners besteht die Möglichkeit, dass jeder Entwickler bei der erweiterten Prüfung seines Programms nun auch nach komplexen Sicherheitsmustern scannen kann, die ihm sagen, ob er Schwachstellen in sein Programm eingebaut hat. Diese Schwachstellen werden erkannt und können nun in einem Workflow-gesteuerten Prozess bearbeitet werden.
Aktuell gibt es zwei Produkte, die im Bereich der Überprüfung der kundeneigenen SAP-Programme den Kunden unterstützen können.
SAP NetWeaver Application Server Add-on für Code Vulnerability Analyse
Das Tool SAP NetWeaver Application Server Add-on für Code Vulnerability Analyse oder auch als Code Vulnearability Analyzer (CVA) bekannt ist ein Tool, das eine statische Analyse des benutzerdefinierten ABAP-Quellcodes durchführt, um mögliche Sicherheitsrisiken aufzudecken.
Das Tool ist im NetWeaver ABAP Stack verfügbar und basiert auf den Versionen ab:
- 7.0 NetWeaver: in EHP2 SP 14 oder höher
- 7.0 NetWeaver: in EHP3 SP 09 oder höher
- 7.3 NetWeaver: in EHP1 SP 09 oder höher
- 7.4 NetWeaver: in SP05 oder höher
Um das CVA-Tool nutzen zu können, muss die Ausführung von systemweiten Sicherheitskontrollen mit dem Report RSLIN_SEC_LICENSE_SETUP aktiviert werden. Anschließend sind die Sicherheitskontrollen in Standard-APAB-Code-Checking-Tools wie ABAP Test Cockpit (ATC) oder Code Inspector (SCI) verfügbar. Die Option dieser Prüfungen wird üblicherweise als „Sicherheitsanalyse im erweiterten Programmcheck“ bezeichnet.
Beachten Sie, dass die Verwendung der Sicherheitscheck-Funktion für benutzerdefinierten Code separat lizenziert wird und zusätzliche Kosten entstehen.
Das ältere und seit Jahren eingeführte Programm ist der „Code Profiler“ von Virtual Forge. Es ist eines der ersten Produkte in diesem Segment der SAP Sicherheit und wurde lange Jahre von der SAP selbst eingesetzt. Es ist sehr umfangreich und ist in der Lage, auch einzelne Variablen über den gesamten Kontrollfluss zu verfolgen. Dies führt zu sehr präzisen Aussagen und einer Reduzierung von Fehlalarmen, den „False Positives“
Ihr Plan für bessere SAP Berechtigungen
In dem Strategieworkshop SAP Berechtigungen entwickeln wir für Sie eine Strategie zur Optimierung der SAP Sicherheit und Reduzierung der Betriebsaufwände.
Virtual Forge CodeProfiler for ABAP
Mit dem Virtual CodeProfiler können Sie automatisch Risiken im ABAP-Code identifizieren und Fehler korrigieren. Der CodeProfiler für ABAP ist vollständig in SAP integriert und basiert auf der von Virtual Forge entwickelten und patentierten globalen Daten- und Kontrollflussanalyse. Diese Lösung hilft dabei sicherzustellen, dass in ABAP geschriebene Anwendungen keine Sicherheits-, Compliance- oder Qualitätslücken aufweisen. Damit sind SAP-Systeme vor unerlaubtem Zugriff geschützt und erfüllen die Anforderungen interner und externer Prüfer. Zugleich steigert der CodeProfiler die Leistung der SAP-Systeme und senkt Kosten.
Funktionsweise des CodeProfilers for ABAP
Der CodeProfiler verhindert, dass qualitativ schlechter Code oder Programme mit Sicherheitslücken überhaupt in eine produktive SAP-Systemlandschaft gelangen. Deshalb ist es wichtig, den CodeProfiler über den gesamten Lebenszyklus einer Software einzusetzen. Bereits bei der Programmierung hilft der CodeProfiler dem Entwickler bei der Identifikation und Korrektur von Fehlern und Schwachstellen in der SAP-Landschaft.
Der CodeProfiler sorgt automatisch dafür, dass nur „sauberer“ Code in das jeweils nächste Level (Entwicklungssystem -> Testsystem -> Qualitätssicherungssystem -> Produktivsystem) transportiert wird. Dabei kann der CodeProfiler auch für regelmäßige Review-Zyklen eingesetzt werden.
Analyse der Unternehmensrisiken
Lösungsansatz
Schützen: CodeProfiler for ABAP schützt ab dem ersten Tag des Einsatzes das SAP-System vor Angriffen von innen und außen. Die ABAP-Firewall kann innerhalb kürzester Zeit eingerichtet werden und kontrolliert ab sofort jeden neuen Transportauftrag bei der Freigabe.
Optimieren: Die Auditfunktion von CodeProfiler for ABAP ermittelt zielgerichtet, welche Programme am stärksten bedroht sind und somit zuerst bereinigt werden sollten. Langfristig unterstützt CodeProfiler for ABAP die automatisierte Korrektur aller Findings und ermöglicht somit eine zeitnahe Schließung der Sicherheitslücken in allen Programmen.
Nutzen für Ihr Unternehmen
Kosten: 75% Ersparnis bei nachträglichen Korrekturen
- Erhebliche Reduzierung der Entwicklungs- und Wartungskosten
ABAP-Code: 84% schnellere und ausfallsichere Programme
- Verbesserte Performance verringert Laufzeit und Hardware-Auslastung
- Gezielte Korrekturen minimieren Systemfehler und Ausfallzeiten
- Mit HANA-Optimierung werden Ihre eigenen Programme erst richtig schnell
ABAP-Firewall: 92% weniger Aufwand, 98% weniger Kosten
- Qualitätsstandards bei internen und externen Entwicklungen setzen
- Treffsichere und Ressourcen sparende Analyse und Auswertung
Sicherheits- und Compliance-Risiken: signifikant reduziert
- Schutz vor Cyber-Angriffen, Spionage und Systemausfällen
Neben dem Scan und dem Aufzeigen der jeweiligen Sicherheitslücken eines Programms besteht auch die Möglichkeit, Aufgaben, die mit Sicherheitslücken in andere SAP-Systeme transportiert werden sollen, im weiteren Transportprozess anzuhalten Dies betrifft beispielsweise den auf dem SAP Solution Manager basierten CHARM-Prozess. Dadurch wird ein Programmierer gezwungen, die von ihm betreuten Programme nach gleichen Sicherheitskriterien sicher zu prüfen.
Sollte ein Programm dann noch Sicherheitsprobleme haben, kann es entweder über das Vier-Augen-Prinzip freigegeben oder zur weiteren Bearbeitung zurückgegeben werden.
Kennen Sie weitere Lösung zur Verbesserung der ABAP Code Security oder haben bereits Erfahrungen mit den oben genannten Produkten gesammelt? Ich freue mich auf Ihre Kommentare!