3… 2… 1… SAP ALL! - Startseite - SAP Sicherheit ... · Mit Librfc32.dll aufrufbar, ... CALL...
Transcript of 3… 2… 1… SAP ALL! - Startseite - SAP Sicherheit ... · Mit Librfc32.dll aufrufbar, ... CALL...
Dr. Markus Schumacher
Virtual Forge GmbH
Ralf Kempf
akquinet Enterprise Solutions GmbH
3… 2… 1… SAP_ALL!
Sicherheit von SAP®-Systemen aus Hackersicht
2 2
Agenda
SAP im Visier von Hackern (Forts.)
#3 „Meine Hintertür in Deiner Anwendung“
#2 „Deine HCM-Daten, meine HCM-Daten.“
#1 „Ich darf jetzt alles: SAP_ALL mit einem Klick“
#3 „Einbruch durch die Hintertür? Warum man den SAP
Solution Manager richtig einsetzen sollte.“
#2 „Passwort Sniffing: Lange bekannt, immer noch gut.“
#1 „Social Engineering: Können Sie mal eben transportieren?“
Fazit
3 3
DSAG-Technologietage 2012 (Rückblick)
Quelle: DSAG-Technologietage, SAP AG, „SAP im Fokus der Hacker!?“
6 6
Wir zeigen im Folgenden …
… wie erschreckend wenig Aufwand für ein Angriff auf SAP-
Systeme notwendig ist,
… wo typische Ursachen liegen
... und wie Sie sich schützen können.
7
#3 „Meine Hintertür in Deiner Anwendung“
Annahme
Kunden lassen Anwendungen von Beratern entwickeln
Abnahme erfolgt und Anwendung geht produktiv
Angriff
Die Entwickler haben eine Hintertür eingebaut – eine versteckte Seite.
Normale Nutzer bekommen dann eine Fehlermeldung
Die drei Entwickler dürfen mehr …
9
#3 „Meine Hintertür in Deiner Anwendung“
Wie Sie sich schützen können
Verbieten Sie Hintertüren in Projektausschreibungen
Hard-codierte Benutzernamen
Funktionsbausteine, die Betriebssystemkommandos (Parameter) aufrufen
Funktionsbausteine, die Dateien (Parameter) bearbeiten
Dynamisches Generieren von Code
Etc.
Suchen Sie systematisch nach Hintertüren in
Ihrem Code
Zugeliefertem Code
Die Hintertür kann überall sein!
10
#2 „Deine HCM-Daten, meine HCM-Daten.“
Szenario: Nutzung eines 3rd-Party HCM-Add-Ons
Auszug, Kopieren und Anonymisieren von HR-Daten
Kopieren von P nach Q, um Testumgebung aufzubauen
Angriff
AddOn enthält einige RFC-fähige FuBas ohne Berechtigungsprüfung
Mit Librfc32.dll aufrufbar, z.B. aus Microsoft Excel
Dann bereits alle Daten zum „Mitnehmen“ aufbereitet
Update-Bausteine erlauben sogar die Änderung von HR-Stamm- und
Abrechnungsdaten (inkl. Clusterdaten) – ohne jedes Hindernis!
Wollen Sie solche „Kopien“?
11
#2 „Deine HCM-Daten, meine HCM-Daten.“
Wie Sie sich schützen können
Fokus nicht nur auf Rollen- und Berechtigungen …
… sondern auch auf fehlende Berechtigungsprüfungen!
Wer darf bei Ihnen sämtliche RFC-Funktionsbausteine ohne zusätzliche
Berechtigungsprüfung ausführen (Objekt S_RFC mit Vollberechtigung)?
Vorgaben für Eigenentwicklungen auch für Lieferanten verbindlich machen
Vor Kauf die Einhaltung der Vorgaben prüfen
Sicheres Programmieren ist Industry Best Practice
Fragen Sie Ihren Lieferanten, was er für Ihre Sicherheit tut!
12
#1 „Ich darf jetzt alles: SAP_ALL mit einem Klick“
Die ABAPTM-Programme sind sicher, da mit Berechtigungen geschützt.
Beispiel 1: SAP_ALL zuweisen
CALL FUNCTION ' ' EXPORTING PROFILE =
'SAP_ALL' USER = 'KASTNERT1' ACTION = 'I'.
Funktionsbaustein im Standard durch Berechtigungsprüfung geschützt.
Allerdings:
SAP_ALL kann ohne SU01 vergeben werden.
Fokus von der Betrachtung der Transaktion auf die kritischen
Programmelemente
Beispiel 2: SAP_ALL zuweisen (generisch)
CALL FUNCTION ' ' EXPORTING PROFILE =
'SAP_ALL' USER = SY-UNAME ACTION = 'I'.
13
#1 „Ich darf jetzt alles: SAP_ALL mit einem Klick“
Angriff
Nicht den FuBa aufrufen, sondern Unterprogramme (z.B. Formroutinen)
Diese Unterprogramme führen keine Berechtigungsprüfung durch
Angriffscode in weniger als 40 Zeichen darstellbar
Kann leicht zur Ausführung gebracht werden (z.B. über SE30)
Wie Sie sich schützen können
Custom Code
Suchen Sie fehlende Berechtigungsprüfungen im Custom Code
Vergeben Sie Berechtigungsprüfungen immer an der „Wurzel“ eines Aufrufpfades (Root Cause).
Jedes kritische Kommando muss sich „selbst“ schützen (Igel-Prinzip)
Verhindern, dass ein Angreifer (ABAP-)Code in das SAP-System transportieren kann
Standard
SAP Security Patches einspielen (z.B. Absichern der SE30 – siehe Hinweis 1661349)
Verhindern, dass ein Angreifer SAP-Funktionsbausteine direkt ausführen kann (die dazu notwendigen
Berechtigungen im Produktivsystem nicht vergeben)
Verhindern, dass ein Angreifer SAP-Reports direkt ausführen kann (die dazu notwendigen
Berechtigungen im Produktivsystem möglichst restriktiv vergeben)
14
#3 Einbruch durch die Hintertür? Warum man den
SAP Solution Manager richtig einsetzen sollte.“
Annahme
Der SAP Solution Manager hat lesenden Zugriff auf alle Systeme.
Angriff
Wir nutzen einen speziellen Funktionsbaustein und lesen Tabelle USR02
(Kennwort-Hashwerte) per RFC aus.
Anschließend knacken wir alle Kennwörter mit John the Ripper.
SAP Solution
Manager System A
RFC-Zugriff
System B
15
Wie Sie sich schützen können
Passen Sie die SAP Solution Manager Rollen in den Zielsystemen an.
Erlauben Sie nie Zugriff auf die Tabellen mit Kennworthashwerten.
Definieren Sie passende Berechtigungen auf dem SAP Solution Manager.
Vergeben Sie nie das Recht RFC-Bausteine remote zu testen.
Verbinden Sie nie Systeme unterschiedlicher Sicherheitszonen mit einem
SAP Solution Manager (T/Q/P).
#3 Einbruch durch die Hintertür? Warum man den
SAP Solution Manager richtig einsetzen sollte.“
16
#2 „Passwort Sniffing: Lange bekannt, immer
noch gut.“
Annahme
Der SAP-Netzwerkverkehr ist bei 99% aller Kunden unverschlüsselt.
Angriff
Wir nutzen die Tools SAPProx oder SAPCap um Netzwerkpakete zu sammeln.
Als Königsweg senden wir einem User einen SAP-Shortcut der unseren Proxy
als Man-in-the-Middle enthält.
Mit so ermittelten Kennwörtern melden wir uns nun an.
SAP GUI System A
DIAG
System B DIAG
17
Wie Sie sich schützen können
Verschlüsseln Sie den SAP GUI Netzwerkverkehr mittels SNC Client
Encryption.
Nutzen Sie HTTPS für SAP-Webanwendungen.
Klicken Sie nicht mehr auf SAP-Shortcuts (Workflow Items) in E-Mails ohne
diese vorher zu prüfen ;-).
#2 „Passwort Sniffing: Lange bekannt, immer
noch gut.“
18
#1 „Social Engineering: Können Sie mal eben
transportieren?“
Annahme
Transporte erfolgen oft auf „Zuruf“.
Der Inhalt von Transporten wird in SAP-Landschaften nicht geprüft.
ABAPs mit Schadcode oder selbstmodifizierendem Code werden nicht
erkannt.
Angriff
Wir inkludieren ca. 10 Zeilen ABAP-Code in eine normale Auswertung.
Dieses Coding manipuliert die Datenbank und vergibt SAP_ALL ohne
Änderungsbeleg an uns.
Anschließend löscht der ABAP eigenständig das modifizierte Coding als ob
nichts gewesen wäre und führt die normale Funktion aus.
19
Wie Sie sich schützen können
Überprüfen Sie alle Transporte auf kritisches ABAP-Coding.
Überprüfen Sie regelmäßig, welche Benutzer SAP_ALL haben oder hatten.
Nutzen Sie ein Notfalluserverfahren, das die Anmeldung undefinierter
SAP_ALL-Benutzer schon bei der Anmeldung verhindert.
#1 „Social Engineering: Können Sie mal eben
transportieren?“
20
• http://virtualforge.com/de/labs.html
• http://service.sap.com/security
• http://www.bizec.org
• Sichere Konfiguration Sichere ABAP-Programmierung
• Acknowledgments to Security Researchers
• CodeProfilers @
• http://www.akquinet.de/SAST
Weiterführende Informationen
21
Kontakt
Dr. Markus Schumacher
Virtual Forge GmbH
Ralf Kempf
akquinet Enterprise Solutions GmbH
22
Sie möchten prüfen, ob Ihre SAP-Systeme vor den gezeigten Angriffen
geschützt sind?
Dann sprechen Sie uns auf unseren kostenfreien Schnelltest „SAP-
Sicherheit“ an.
Sie finden uns in Halle 5 an Stand D1. Wir freuen uns auf Ihren Besuch!
Schnelltest „SAP-Sicherheit“
25
Complimentary Scan
Take the Test!
Complimentary Scan
Virtual Forge
CodeProfiler
unter www.virtualforge.com
• Schwachstellen-Bericht
• Risiko-Priorisierung
• Beispiele von konkreten Schwachstellen
• Div. Code-Metriken
• Benchmark (auf Wunsch)
Robustheit & Wartbarkeit
Performance
Data Loss Prevention
Sicherheit & Compliance
Ihr
ABAP™-
Code
26
Disclaimer
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.
In dieser Präsentation enthaltene Informationen können ohne vorherige Ankündigung
geändert werden. Die vorliegenden Angaben dienen ausschließlich Informationszwecken.
Es wird keinerlei Haftung oder Garantie für Fehler oder Unvollständigkeiten in dieser
Präsentation übernommen.