Cybersicherheit

Eine vergiftete VS-Code-Erweiterung stahl 3.800 interne GitHub-Repositories

Susan Hill

GitHub untersucht einen unbefugten Zugriff auf seine internen Repositories und bestätigt, dass ein Angreifer Daten aus rund 3.800 von ihnen exfiltriert hat. Der Einbruch erfolgte über eine vergiftete Visual-Studio-Code-Erweiterung, die ein Mitarbeiter installiert hatte. Dadurch erhielt der Angreifer Zugriff auf dessen Rechner und von dort auf internen Quellcode, der eigentlich hinter den Mauern des Unternehmens bleiben sollte.

Die Grenze, auf die GitHub verweist, zwischen internen Repositories und der kundenseitigen Plattform, ist das Einzige, was einen eingedämmten Vorfall von einem globalen Lieferketten-Notfall trennt. GitHub beherbergt rund 100 Millionen Entwicklerinnen und Entwickler und einen erheblichen Teil des Open-Source-Codes, auf dem das moderne Internet läuft. Wenn das Unternehmen von „intern“ spricht, meint es den eigenen Plattformcode, die eigenen Werkzeuge, die operative Konfiguration, das Material, mit dem GitHub sich selbst baut und betreibt. Kundenorganisationen, Unternehmen und die öffentlichen wie privaten Repositories, die diese Kunden auf GitHub ablegen, liegen nach Angaben der Firma außerhalb des Wirkungsradius dieses Einbruchs.

Diese Unterscheidung leistet eine Menge Arbeit in der Mitteilung, die das Unternehmen auf seinem offiziellen X-Konto veröffentlicht hat. „Wir haben derzeit keine Hinweise auf eine Beeinträchtigung von Kundeninformationen, die außerhalb der internen Repositories von GitHub gespeichert sind“, heißt es dort, „beobachten unsere Infrastruktur aber sehr genau auf Folgeaktivitäten“. Die Formulierung ist präzise, und präzise Formulierungen in einer Vorfallsmeldung bedeuten gewöhnlich, dass die Untersuchung noch läuft. „Keine Hinweise auf eine Beeinträchtigung“ ist nicht dasselbe wie „keine Beeinträchtigung“. Vorfälle bei großen Plattformen wachsen üblicherweise, sobald die Forensik die Angreiferaktivität einholt, und die Linie zwischen internen und kundenseitigen Systemen ist selten eine saubere physische Wand. Sie ist ein Bündel aus Zugriffskontrollen, Zugangsdaten und Dienstkonten, die jeweils einzeln betrachtet werden müssen.

Der Mechanismus ist der Teil dieser Geschichte, der jeden Entwickler beunruhigen sollte. Visual Studio Code ist der dominierende Code-Editor des Planeten, im Einsatz in nahezu jeder großen Engineering-Organisation. Sein Erweiterungs-Marktplatz funktioniert über Community-Vertrauen: jeder kann veröffentlichen, und die meisten Ingenieure installieren Plug-ins mit derselben Leichtigkeit, mit der sie Lesezeichen im Browser anlegen. Eine vergiftete Erweiterung, die über diesen Kanal ausgeliefert und auf einem Entwicklerrechner ausgeführt wird, gibt dem Angreifer Zugriff auf alles, was die Sitzung dieses Entwicklers erreichen kann: Repositories, Tokens, Paketregister, interne Dienste. Der konkrete Name der in diesem Fall verwendeten Erweiterung ist bislang nicht öffentlich, aber das Muster ist nicht neu. Nx Console, eine populäre Entwickler-Werkzeug-Erweiterung, war Opfer einer ähnlichen Kompromittierung.

Die Gruppe, die sich TeamPCP nennt, hat den Einbruch für sich reklamiert und bietet den Datensatz auf einschlägigen Untergrund-Foren mit einer Untergrenze von fünfzigtausend Dollar zum Verkauf an. Ihre Formulierung, „dies ist kein Lösegeld“, ist selbst ein Signal. Die Gruppe versucht nicht, GitHub direkt zu erpressen. Sie behandelt gestohlenen internen Quellcode so, wie andere Kriminelle Kreditkarten-Dumps behandeln: als Ware mit Käufern. Wer am Ende mit diesem Archiv aus 3.800 Repositories arbeitet, wird es nach eingebauten Zugangsdaten durchkämmen, nach hartkodierten Geheimnissen, nach Angriffsdetails zur eigenen Infrastruktur von GitHub und nach allem, was sich für Folgeangriffe auf nachgelagerte Ziele eignet. Dieselbe Gruppe wird zudem mit dem Wurm Mini Shai-Hulud in Verbindung gebracht, der das Paket durabletask im PyPI traf, was das eigentliche Thema dieser Geschichte unterstreicht: Lieferketten-Angriffe auf die Softwareentwicklung sind vom theoretischen Szenario zum operativen Handwerk geworden.

GitHubs Eindämmungsantwort war nach eigener Darstellung schnell. Der kompromittierte Rechner wurde isoliert. Die schädliche Erweiterung wurde entfernt. Das Unternehmen erklärt, kritische Geheimnisse rotiert und dabei den Zugangsdaten mit höchster Wirkung Vorrang gegeben zu haben, und werde betroffene Kunden über die eingespielten Incident-Response-Kanäle informieren, falls sich die Untersuchung ausweite. Die Microsoft-Tochter nannte weder den Namen des GitHub-Mitarbeiters, dessen Gerät kompromittiert wurde, noch den Namen der Erweiterung, noch ein konkretes Zeitfenster, in dem der Angreifer Zugriff hatte, bevor er entdeckt wurde. Diese Details erscheinen typischerweise im längeren Post-Incident-Bericht, der erst Wochen nach der ersten Mitteilung vorliegt.

Für den Rest der Branche ist die praktische Lehre einfacher als die Bedrohungs-Intelligence-Verpackung es klingen lässt. Jede Engineering-Organisation ist nur eine unbedachte Erweiterungs-Installation vom selben Vorfall entfernt. Wer schon einmal eine VS-Code-Erweiterung installiert hat, die ein Forenthread empfohlen hatte, ging dasselbe Risiko ein wie der GitHub-Mitarbeiter. Die wirksamen Verteidigungsmaßnahmen sind bekannt und ungleichmäßig umgesetzt: Erweiterungs-Installationen auf eine geprüfte Allow-List beschränken, Entwicklerrechner von Produktions-Zugangsdaten trennen, Geheimnisse in kurzer Kadenz rotieren. Dieser Vorfall wird sie in der Prioritätenliste vieler Unternehmen nach oben drücken, die sie bislang aufgeschoben haben.

GitHub hat keinen Zeitplan für einen vollständigen öffentlichen Post-Mortem genannt. Untersuchungen dieser Größe an Plattformen dieser Größenordnung brauchen üblicherweise mehrere Wochen, bis sie ihren vollen Umfang offenlegen, und Aktualisierungen werden über die offiziellen Kanäle des Unternehmens kommen, sobald sie vorliegen. Als Nächstes ist zu beobachten, ob das Archiv aus 3.800 Repositories tatsächlich zum Verkauf auftaucht und auf welchem Preis sich die Untergrenze bewegt, sobald der Untergrundmarkt einige Tage Zeit hatte, den Index zu sichten.

Diskussion

Es gibt 0 Kommentare.