3… 2… 1… SAP ALL! - Startseite - SAP Sicherheit ... · Mit Librfc32.dll aufrufbar, ... CALL...

26
Dr. Markus Schumacher Virtual Forge GmbH Ralf Kempf akquinet Enterprise Solutions GmbH 3… 2… 1… SAP_ALL! Sicherheit von SAP ® -Systemen aus Hackersicht

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!?“

4 4

Eine „Außensicht“

Quelle: A. Polyakov, Kuwait Info Security, Mai 2012

5 5

Innentäter: bekannt. Außentäter …

Quelle: A. Polyakov, Kuwait Info Security, Mai 2012

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 …

8

#3 „Meine Hintertür in Deiner Anwendung“

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

[email protected]

Ralf Kempf

akquinet Enterprise Solutions GmbH

[email protected]

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“

23

- Anhang -

Anhang

24

SAST

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.