Die Erweiterung, die aus dem Browser kletterte
Zscaler hat eine Hintertür namens Edgecution gefunden, die in einem Microsoft-Edge-Fenster läuft, das das Opfer nie geöffnet hat, und dann Native Messaging nutzt — den legitimen Kanal, über den eine Erweiterung mit einer Desktop-App spricht — um Befehle auf dem Host auszuführen. Die Frage, die es wert ist gestellt zu werden, lautet: Was erreicht diese Brücke zum Host, wenn der Browser in einer wegwerfbaren VM lebt?
Eine Browser-Erweiterung soll im Browser gefangen sein. Eine Hintertür namens Edgecution ist ein funktionierender Beweis dafür, dass „soll“ einen großen Teil der Arbeit geleistet hat. Sie läuft in einem Microsoft-Edge-Fenster, das das Opfer nie geöffnet hat und nicht sehen kann, und sie nutzt eine Funktion, die in jedem Chromium-Browser eingebaut ist, um Befehle auf der darunterliegenden Maschine auszuführen.
Stellen Sie sich die neue Kollegin in der Buchhaltung vor, drei Wochen dabei, die noch zu allem Ja sagt. In Microsoft Teams trifft eine Nachricht von jemandem ein, dessen Name unter IT-Support geführt wird. Es gibt ein Spamfilter-Update für Outlook; das Mail-Team rollt es diese Woche aus; hier ist die Seite. Sie öffnet sie. Sie ist als „Outlook Updates Management Console“ gebrandet, sie wirkt intern genug, und sie gibt ihr einen kurzen Befehl, den sie ausführen soll, um die Installation abzuschließen. Sie führt ihn aus. Es scheint nichts zu passieren. Sie schließt den Tab und macht weiter mit ihrer Arbeit.
Ende Juni hat das ThreatLabz-Team von Zscaler dokumentiert, was passiert, nachdem sie den Tab schließt. Die Malware-Familie heißt Edgecution, und BleepingComputer berichtete in derselben Woche darüber. Die Malware ist absichtlich leise; der Teil, der einen genaueren Blick wert ist, ist die Stelle, an der der Angreifer sie zu verstecken wählte.
Eine Nachricht von der IT, die keine war.
Der Eröffnungszug ist Social Engineering über Microsoft Teams, wobei sich der Angreifer als die hauseigene IT-Mannschaft des Unternehmens ausgibt und die Mitarbeiterin zu jener gefälschten Outlook-Update-Seite lenkt. Die Seite bietet drei Wege an, die Installation „abzuschließen“, und laut der Analyse von Zscaler liefern sie alle dasselbe: ein verschleiertes AutoHotKey-Skript, gebündelt mit einer echten AutoHotKey-Programmdatei, ein Windows-Batch-Skript, das in die Zwischenablage kopiert wird, oder ein PowerShell-Skript, das in die Zwischenablage kopiert wird. Zwei der drei sind der Zwischenablage-Einfügen-Zug, den Sie vielleicht als ClickFix kennen — die Seite schreibt den Befehl für Sie, und das Einzige, was dem Menschen noch bleibt, ist Einfügen und Enter drücken.
Dieses Einfügen ist das ganze Spiel. Die Payload kommt in einer
verschlüsselten ZIP-Datei an, deren PK-Magic-Bytes entfernt wurden,
sodass die Datei für alles, was sie scannt, nicht wie eine ZIP aussieht.
Sobald das Skript läuft, ist der Host kompromittiert — nicht durch einen
cleveren Exploit, sondern weil eine Person dazu überredet wurde, ein
Programm auf ihrem eigenen Computer auszuführen. Alles danach ist die
Entscheidung des Angreifers, wie er bleibt.
Der Browser als Hintertür.
Die Art, wie es einen Neustart überlebt, ist der Teil, bei dem es sich
lohnt, langsamer zu werden. Die meiste Malware, die persistieren will,
legt eine ausführbare Datei ab, schreibt einen Registry-Run-Key oder
installiert einen Dienst — alles Dinge, die Sicherheitswerkzeuge zu
überwachen gebaut sind. Edgecution macht etwas Leiseres. Das
Setup-Skript plant eine Windows-Aufgabe, die Microsoft Edge mit einer
Handvoll Kommandozeilen-Flags startet, darunter --load-extension, um die
eigene Erweiterung des Angreifers seitlich zu laden, und --headless=new,
sodass das Browser-Fenster nie auf dem Bildschirm gezeichnet wird. Es
läuft nun ein Microsoft-Edge-Prozess auf der Maschine — ein signiertes,
vertrauenswürdiges, gewöhnliches Programm — das der Nutzer nicht sehen
kann und nicht gestartet hat.
In diesem unsichtbaren Browser tut die Erweiterung zwei Dinge. Sie funkt zu einem Command-and-Control-Server hinaus (die Adresse, über die Angreifer Anweisungen senden) über einen WebSocket, der auf Amazon CloudFront gehostet ist, sodass der Datenverkehr wie ein normaler Browser aussieht, der mit einem normalen Content-Netzwerk spricht. Und sie reicht die empfangenen Befehle mittels Native Messaging an den Host hinunter.
Native Messaging ist eine echte, dokumentierte Chromium-Funktion, die wie
vorgesehen arbeitet. Es ist der Kanal, der einer Browser-Erweiterung
erlaubt, mit einem auf derselben Maschine installierten Desktop-Programm
zu sprechen — der Mechanismus, über den eine Erweiterung beispielsweise
Arbeit an ihre begleitende Desktop-App übergibt. Eine Erweiterung ruft
chrome.runtime.sendNativeMessage auf, und der Browser startet ein
kleines „Native-Host“-Programm, das in einer Manifest-Datei benannt ist,
und leitet JSON an es weiter. Edgecution registriert seinen eigenen
Native Host: eine native_host.bat, die eine Python-Hintertür startet.
Von dort aus kann die Hintertür Shell-Befehle ausführen, PowerShell
ausführen, beliebiges Python ausführen, Dateien lesen und schreiben,
laufende Prozesse auflisten und Systeminformationen die Kette nach oben
melden — alles, was man braucht, um der Initial-Access-Broker zu sein, der
einer Ransomware-Crew einen sauberen Brückenkopf übergibt. Zscaler
verknüpft das Handwerk dieses Akteurs mit der Ransomware-Operation Payouts
King.
Beachten Sie, was nicht in diesem Bild ist: kein neuer Dienst und keine
abgelegte .exe, die auf der Festplatte darauf wartet, markiert zu
werden. Das, was die Befehle des Angreifers ausführt, ist python.exe,
gestartet von einer Batch-Datei, gestartet von Microsoft Edge — und der
Datenverkehr, der diese Befehle trägt, ist ein Browser, der mit einem CDN
spricht. Es fügt sich ein, weil fast jeder Teil davon ein legitimes Ding
ist, das eine legitim aussehende Handlung vollzieht.
Die Schlagzeilen nannten dies einen Sandbox-Ausbruch. Die präzise Fassung: Der Host war bereits in dem Moment kompromittiert, als die Mitarbeiterin das Skript ausführte. Native Messaging ist kein Loch, durch das der Angreifer durchbrach; es ist eine Tür, die der Browser mitbringt, und der Angreifer ging durch sie hindurch. Diese Unterscheidung zeigt, wo die echte Lösung leben muss. Man patcht sich nicht aus einer Funktion heraus, die wie vorgesehen arbeitet. Man ändert, worauf die Tür sich öffnet.
Was „die Brücke zum Host“ in Bromure erreicht.
Bromure ist ein Browser, der Sicherheit an erste Stelle setzt. Jeder Tab läuft in einer wegwerfbaren Linux-VM (virtuelle Maschine — ein eigener, separater Computer) auf Ihrem Mac, und die VM wird gelöscht, wenn Sie das Fenster schließen. Diese eine architektonische Entscheidung verändert, was der Rest der Edgecution-Geschichte auf Ihrer Maschine bedeutet.
Beginnen wir mit Native Messaging, dem Dreh- und Angelpunkt des gesamten Angriffs. In einem normalen Browser ist der „Native Host“, mit dem eine Erweiterung spricht, ein Programm auf Ihrem Betriebssystem — demselben Betriebssystem, das Ihre Dateien, Ihren Keychain und Ihre Netzwerkfreigaben enthält. Die Brücke ist offen: Jede Erweiterung kann einen Native Host registrieren, und dieser Host kann alles sein. Der gesamte Trick von Edgecution hängt davon ab, dass der Browser und Ihre Dateien auf derselben Maschine sitzen.
In Bromure ist der Browser nicht auf dieser Maschine. Er läuft in der wegwerfbaren VM, sodass das Betriebssystem unter dem Browser der wegwerfbare Linux-Gast ist, nicht macOS. Ein abtrünniger Native Host, der von etwas innerhalb der VM registriert wird, wäre ein Programm innerhalb der VM — das mit einem Computer spricht, der nichts von Ihrem Leben enthält und aufhört zu existieren, wenn Sie das Fenster schließen. Die schmale Menge an Brücken, die tatsächlich bis nach macOS hinüberreichen, ist hauseigen und fest in das schreibgeschützte Disk-Image eingebacken: die Anmeldedaten-Brücke etwa füllt Passkeys und Passwörter aus dem Keychain Ihres Macs. Es gibt keine Möglichkeit, dass eine laufende Sitzung eine neue hinzufügt, denn — und das ist die zweite Hälfte der Antwort — Sie können überhaupt keine Erweiterungen installieren.
Die Blockade ist keine Einstellung, an der eine Phishing-Seite Sie vorbei
reden kann. In der Browser-Richtlinie von Bromure stehen
chrome://extensions und der Web Store auf einer harten Sperrliste, und
es gibt keinen developer mode, kein „load unpacked“, keinen erweiterten
Schalter, um das zu umgehen. Es gibt auch keine Möglichkeit, das zu tun,
was Edgecution auf der Host-Seite tut — ein zweites Chromium mit
--load-extension zu starten, das auf Ihr echtes Profil zeigt — weil Ihr
echtes Profil kein Ordner auf Ihrem Mac ist, auf den ein verirrter Prozess
einen Browser richten kann. Es ist in der VM versiegelt.
Es gibt noch einen Faden, den man ziehen sollte, denn er ist der günstigste Gewinn der ganzen Geschichte. Der Köder kam in Microsoft Teams an. Viele Menschen nutzen Teams, Outlook und Slack inzwischen als Web-Apps. Wenn diese Gewohnheit in einem wegwerfbaren Bromure-Tab lebt, landen die Identitätsbetrugs-Nachricht, der Link und die gefälschte „Outlook-Update“-Seite alle von der ersten Sekunde an in einer isolierten Sitzung — und die Kette, die wir gerade durchgegangen sind, kommt nie zu Schritt drei, weil die Seite, die will, dass Sie ein Skript ausführen, in einer VM sitzt, die Ihre Shell nicht erreichen kann. Der Angriff, der den Host braucht, trifft den Host nie.
Was dies nicht löst.
Isolation ist kein Zauberspruch, und ihre Grenzen sind es wert, klar benannt zu werden.
Ein Befehl, den Sie selbst ausführen
Der Einstiegspunkt hier ist ein Mensch, der ein Skript ausführt — ein Batch- oder PowerShell-Befehl, der in die Zwischenablage kopiert wurde, oder eine AutoHotKey-Programmdatei. Wenn Sie einen Befehl in Ihre eigene Shell einfügen und Enter drücken, ist keine Browser-Isolation in dieser Schleife. Das Teilen der Zwischenablage zwischen der VM und Ihrem Mac ist standardmäßig aktiviert, weil Kopieren und Einfügen Teil des normalen Surfens ist; Sie können ein Profil auf vollständige Isolation umstellen, und die Phishing-Schicht ist da, um die Seite zu markieren, bevor Sie handeln. Aber die dauerhafte Regel ist älter als all dies: Führen Sie niemals einen Befehl aus, den Ihnen eine Webseite in die Hand gedrückt hat.
Windows-Binärdateien, eine portable Technik
Edgecution zielt auf Microsoft Edge unter Windows, und genau diese Dateien laufen nicht auf einem Mac. Das ist ein schwacher Trost, keine Verteidigung. Native Messaging ist auch auf macOS eine Chromium-Funktion, und dieselbe Woche brachte eine macOS-Kampagne hervor, die Nutzer dazu überredete, einen Terminal-Befehl einzufügen, um den Atomic-Infostealer abzulegen. Die Technik ist portabel; nur die Binärdateien sind betriebssystemspezifisch.
Was Bromure ändert, ist enger und, wie wir meinen, nützlicher als ein Versprechen, dass Sie nie etwas Schlimmes erreichen kann. Es entfernt die Bedingungen, die Edgecution leise und dauerhaft machten. Der Browser ist nicht länger ein permanenter, vertrauenswürdiger Prozess, der neben Ihren Dateien sitzt. Native Messaging ist nicht länger eine offene Brücke, die jede Erweiterung registrieren kann — Erweiterungen können überhaupt nicht hinzugefügt werden, und das eigene Betriebssystem des Browsers ist ein Wegwerfprodukt. Und die Persistenz, das Ding, für das diese ganze Architektur gebaut wurde, hat nichts, in das sie persistieren kann: Schließen Sie das Fenster, und die Maschine, in der die Hintertür lebte, ist verschwunden.
Der gefährliche Browser ist der, den Sie nicht sehen können.
Seit zwanzig Jahren handelt der Sicherheitsratschlag zu Browsern von dem Fenster vor Ihnen — prüfen Sie die Adressleiste, achten Sie auf das Schloss, klicken Sie nicht auf seltsame Links. Edgecution ist eine kleine Erinnerung daran, dass der Browser, der den Schaden anrichtet, mehr und mehr derjenige ist, den Sie nie sehen: ein Headless-Prozess, gestartet von einer geplanten Aufgabe, der mit einem CDN spricht und eine Erweiterung ausführt, die Sie nicht installiert haben. Sie können die Adressleiste eines Fensters, das nie gezeichnet wurde, nicht inspizieren.
Die Frage ist nicht länger, ob das Fenster vor Ihnen sicher ist. Sie lautet, was jeder Browser auf dieser Maschine erreichen kann, wenn er gegen Sie gewendet wird. Auf einem gewöhnlichen Computer lautet die Antwort: Ihre Dateien, über eine Brücke, die er mitbringt. Auf einer Maschine, auf der Bromure läuft, lautet die Antwort: eine wegwerfbare Linux-Box, die alles vergisst, sobald Sie mit ihr fertig sind. Das ist der Unterschied, der sich lohnt. Installieren Sie es, machen Sie es zu Ihrem Standard für die Hälfte Ihres Surfens, der Sie nicht vertrauen, und lassen Sie die verborgenen Fenster sich auf etwas öffnen, das Sie ohnehin wegwerfen wollten.