Sicherheit & Datenschutz

Kompromittierte Claude-Code-Erweiterung installiert SSH-Hintertür auf macOS

Phorion entdeckte eine Hintertür in den offiziellen Versionen 2.1.312 und 2.1.313 von Claude Code for VS Code im Cursor Marketplace, die einen persistenten SSH-Zugang einrichtet.

Lupe, die versteckte böswillige Verbindungen in einem Code-Erweiterungs-Icon enthüllt
Für diesen Artikel generierte Illustration

Automatisch aus dem englischen Original übersetzt.

Sicherheitsforscher bei Phorion haben eine Supply-Chain-Kompromittierung identifiziert, die die offizielle Claude Code for VS Code-Erweiterung betrifft, die über den Cursor Marketplace vertrieben wird. Die bösartigen Versionen 2.1.312 und 2.1.313 injizieren sofort beim Laden eine persistente Secure Shell (SSH)-Hintertür in macOS-, Linux- und Windows-Umgebungen.

Dieser Vorfall unterstreicht die Risiken in Ökosystemen für Entwicklerwerkzeuge, wo Erweiterungen mit hohen Berechtigungen laufen und Systemkonfigurationen unbemerkt ändern können. Organisationen, die diese spezifischen Versionen nutzen, müssen jede Installation als potenziellen Sicherheitsverstoß betrachten und Incident-Response-Prozeduren einleiten.

Was passiert ist

Der Angriff zielt auf Entwickler ab, die den Cursor-Editor verwenden, der seinen eigenen Marktplatz für VS Code-kompatible Erweiterungen betreibt. Phorion stellte fest, dass das Paket für Claude Code in den Versionen 2.1.312 und 2.1.313 eine injizierte Nutzlast enthielt. Dieser Code wird vor der Standard-Aktivierungslogik der Erweiterung ausgeführt, sodass Benutzer nicht mit dem Tool interagieren müssen, damit die Malware läuft. Cursor hat diese Versionen seitdem aus seinem Marktplatz entfernt.

Das Hauptziel der Nutzlast ist die Einrichtung eines langfristigen interaktiven Zugangs zum Rechner des Opfers. Dies geschieht durch das Platzieren von SSH-Schlüsseln und das Erstellen von Reverse-Tunneln zu einem angreiferkontrollierten Server unter der IP-Adresse 134.209.82.225. Obwohl die Malware Logik für alle großen Desktop-Betriebssysteme enthält, konzentriert sich die Analyse auf macOS aufgrund spezifischer Implementierungsdetails und Fehler auf den anderen Plattformen.

Da Erweiterungen mit den Berechtigungen der integrierten Entwicklungsumgebung (IDE) und des Benutzers arbeiten, erhält die Hintertür sofortigen Zugriff auf lokalen Quellcode, Dateien und Entwicklerwerkzeuge. Dieses Maß an Zugriff ermöglicht es dem Angreifer, sensible Informationen zu ernten und Persistenz auch nach Schließen der IDE aufrechtzuerhalten.

Wie es funktioniert

Die Infektion beginnt mit einer sofort ausgeführten Funktionsausdruck (Immediately Invoked Function Expression), die der minifizierten Datei extension.js vorangestellt ist. Dieses Skript importiert Standard-Node.js-Module, um das Dateisystem zu manipulieren und Shell-Befehle auszuführen. Seine erste Aktion besteht darin, sicherzustellen, dass das Verzeichnis ~/.ssh existiert, und einen angreiferkontrollierten Ed25519-öffentlichen Schlüssel an die Datei authorized_keys anzuhängen. Der Schlüssel ist mit dem Kommentar svc-telemetry gekennzeichnet, wobei Ermittler sich zur Erkennung jedoch auf den Fingerabdruck des Schlüssels verlassen sollten, nicht auf den Kommentar.

Anschließend versucht das Skript, den SSH-Daemon zu aktivieren. Auf macOS prüft es den Status der Remote-Anmeldung mit systemsetup -getremotelogin. Hier existiert jedoch ein kritischer Fehler: Der Befehl erfordert Administratorrechte, um den Status zu lesen. Wenn er als Standardbenutzer ausgeführt wird, gibt er eine Fehlermeldung statt "Off" zurück, was dazu führt, dass das Skript den Aktivierungsschritt überspringt. Wenn die Remote-Anmeldung bereits aktiviert war, funktioniert die Hintertür wie vorgesehen; andernfalls bleibt der eingehende Zugangspfad blockiert, bis ein Benutzer sie manuell aktiviert.

Um den Zugang aufrechtzuerhalten, richtet die Malware einen ausgehenden Reverse-SSH-Tunnel zum Server des Angreifers ein. Sie nutzt einen eingebetteten privaten Schlüssel mit der Bezeichnung svc-telemetry-tun, der im temporären Verzeichnis gespeichert ist. Der Tunnel leitet Datenverkehr von einem dynamisch zugewiesenen Port auf dem Server des Angreifers zu Port 22 auf dem localhost des Opfers weiter. Dies ermöglicht es dem Operator, sich mit dem zuvor platzierten öffentlichen Schlüssel wieder mit dem Rechner zu verbinden. Die Verbindung wird mittels autossh oder einer Wiederholungsschleife am Leben erhalten, um Persistenz über Netzwerkunterbrechungen hinweg zu gewährleisten.

Wichtige Details

  • Betroffene Versionen: Claude Code for VS Code Versionen 2.1.312 und 2.1.313 im Cursor Marketplace.
  • Infrastruktur des Angreifers: Befehle und Beacons werden an die IP-Adresse 134.209.82.225 auf den Ports 22 und 8099 gesendet.
  • Persistenzmechanismus: Auf macOS erstellt die Malware einen LaunchAgent namens com.apple.sysmond.plist in ~/Library/LaunchAgents, um Neustarts zu überleben.
  • Reconnaissance-Daten: Die Nutzlast sendet Host-Metadaten, einschließlich Hostname, OS und Namen von Umgebungsvariablen, die Mustern wie KEY, TOKEN oder AWS entsprechen.
  • macOS-Fehler: Das Skript kann die Remote-Anmeldung auf macOS nicht aktivieren, wenn es ohne Admin-Rechte ausgeführt wird, aufgrund unsachgemäßer Fehlerbehandlung des systemsetup-Befehls.
  • Erkennungsproblem: Die Malware modifiziert authorized_keys direkt über Node.js-Datei-APIs und umgeht so shell-basierte Überwachungsregeln, die nach Befehlen wie echo oder tee suchen.

Warum es wichtig ist

Für Softwareentwicklungsteams unterstreicht dieser Vorfall die Anfälligkeit der Lieferkette innerhalb von Entwicklungsumgebungen. IDE-Erweiterungen sind vertrauenswürdige Komponenten, die oft breite Berechtigungen benötigen, um effektiv zu funktionieren. Wenn eine solche Komponente kompromittiert wird, bietet sie einen direkten Pfad zu den sensibelsten Assets einer Organisation: Quellcode und Anmeldedaten. Die Fähigkeit der Malware, die Namen von Umgebungsvariablen zu exfiltrieren, die Geheimnisse enthalten, ermöglicht es Angreifern, hochwertige Ziele zu priorisieren, ohne zunächst die Geheimnisse selbst zu stehlen.

Darüber hinaus sind die verwendeten Persistenzmechanismen so ausgefeilt, dass sie typische Bereinigungsschritte überleben. Ein bloßes Deinstallieren der Erweiterung entfernt die Hintertür nicht, da die Malware unabhängige Systemdienste und Cron-Jobs installiert. Das bedeutet, dass Standard-Paketmanagement-Aktionen für die Bereinigung unzureichend sind. Sicherheitsteams müssen verstehen, dass Entwicklerwerkzeuge nun ein primärer Angriffsvektor sind, der dieselbe Sorgfalt erfordert wie Produktionsinfrastruktur.

Was Sie tun können

  • Installierte Erweiterungen prüfen: Überprüfen Sie sofort alle Entwicklermaschinen auf Claude Code for VS Code Versionen 2.1.312 oder 2.1.313 und deinstallieren Sie diese, falls gefunden.
  • Nach Persistenz-Artefakten suchen: Suchen Sie auf macOS-Systemen nach ~/.config/.smt, ~/.config/.smtk und ~/Library/LaunchAgents/com.apple.sysmond.plist.
  • SSH-Konfigurationen überprüfen: Untersuchen Sie ~/.ssh/authorized_keys auf unbekannte öffentliche Schlüssel, insbesondere solche mit dem Kommentar svc-telemetry oder ungewöhnliche Ed25519-Schlüssel.
  • Netzwerkverkehr überwachen: Achten Sie auf ausgehende SSH-Verbindungen zu 134.209.82.225 oder HTTP-POST-Anfragen an Port 8099 auf derselben IP.
  • Prozessprotokolle analysieren: Nutzen Sie Telemetrie des Endpoint Security Frameworks, um IDE-Hilfsprozesse zu erkennen, die SSH-Konfigurationsdateien schreiben oder LaunchAgents erstellen.
  • Zugangsdaten rotieren: Wenn betroffene Maschinen identifiziert werden, gehen Sie von einer Kompromittierung aus und rotieren Sie alle Geheimnisse, API-Schlüssel und SSH-Schlüssel, die auf diesen Geräten gespeichert sind.
  • #security
  • #supply-chain
  • #macos
  • #ide-security
  • #ssh

Tools aus dem Bytechap-Shop

Weiterlesen

Alle Artikel