Microsofts integrierte Entwicklungsumgebung (IDE) Visual Studio Code wird von bis zu 75 % der Entwickler genutzt – daher hat jedes Sicherheitsproblem weitreichende Folgen. Und die Forscher von Aqua Nautilus haben ein gravierendes entdeckt.
Die Forscher berichteten Anfang dieses Monats, dass der VSCode-Editor für Angriffe auf seine Erweiterungen anfällig sein könnte. Die kostenlose, quelloffene und plattformübergreifende IDE ist sehr einfach zu bedienen, und Entwickler können buchstäblich Tausende kostenloser Erweiterungen mit nur einem Klick installieren, um ihre Arbeit zu beschleunigen.
Diese Erweiterungen werden üblicherweise mit Node geschrieben, und die Pakete werden von NPM heruntergeladen, wodurch gängige Angriffe auf die Lieferkette gegen den Code-Editor möglich werden. Außerdem haben diese NPM-Pakete ihre eigenen Abhängigkeiten, sodass der Angriff praktisch überall in der Kette erfolgen könnte.
Die Forscher nutzten Techniken zur Verschleierung der Identität, um ihre Machbarkeit zu demonstrieren. Sie gaben sich als Prettier aus, eine äußerst beliebte Erweiterung, die Entwickler zum Formatieren von Code verwenden: „In knapp 48 Stunden konnten wir mehr als tausend Installationen durch aktive Entwickler aus aller Welt verzeichnen!“
Selbst wenn nicht alle Nutzer in die Falle tappten, sind Tausende Installationen mehr als genug, um erheblichen Schaden anzurichten – etwa indem Zugangsdaten gestohlen oder vertrauliche Informationen ausgeschleust werden.
Forscher nutzten klassisches Typosquatting
Statt „prettier-vscode“ verwendeten die Forscher in der Erweiterungs-URL im Marketplace „pretier-vscode“ – mit nur einem „t“. Der Tippfehler ist leicht zu machen, und abgesehen von der URL und einigen weiteren Details konnten die Forscher dasselbe Logo, denselben Namen und dieselbe Beschreibung verwenden – sogar eine exakte Kopie der ursprünglichen Readme.
Wenn ein Nutzer „pretier“ in die Suchleiste eingab, würde ihm in der Liste nicht einmal die legitime Erweiterung angezeigt, da nur die per Typosquatting nachgeahmte Version diesen Namen trägt.
Dieser Ansatz wird von Angreifern auf anderen Marktplätzen wie NPM und PyPI häufig genutzt, doch auch bösartige VSCode-Erweiterungen scheinen dank seiner dominanten Marktposition zuzunehmen.
Laut den Forschern ist die Gefahr aus zwei Hauptgründen groß:
- Jeder kann eine Erweiterung veröffentlichen, die im Marketplace gelistet werden könnte
- Alle Erweiterungen laufen mit den Rechten des Benutzers, der VSCode geöffnet hat, und zwar ohne Sandbox
Siehe die besten Tools zum Debuggen und Absichern von Code
Schädliche Erweiterungen erkennen
Schädliche Erweiterungen sind nicht leicht zu erkennen. Sehen Sie sich den folgenden Screenshot an:

Ihnen wird auffallen, dass die Zahl der Downloads für eine derart prominente Erweiterung ungewöhnlich niedrig ist: 2.000 gegenüber 27 Millionen bei der echten Version. Bei der Zahl der Bewertungen ist es genauso: 2 gegenüber 370.
Abgesehen davon konnten die Forscher fast alles andere nachbilden, da Anzeigenamen und Titel auf der Plattform nicht eindeutig sein müssen. Zudem könnte die Zahl der Downloads oder Sterne künstlich erhöht werden, um noch mehr Glaubwürdigkeit zu erlangen.
Es gibt weitere Unterschiede, etwa beim Datum der ersten Veröffentlichung (2022 gegenüber 2017). Wenn man diese Details jedoch übersieht, tappt man leicht in die Falle – insbesondere, wenn die Zeit fehlt, die Quelle gründlich zu prüfen.
Noch schlimmer: Jeder kann das Häkchen „Verifiziert“ neben seinem Namen erhalten, indem er lediglich den Besitz einer Domain seiner Wahl nachweist. Der Begriff „Verifiziert“ könnte laut den Forschern für viele Nutzer irreführend sein.
Alle Paketregistries gefährdet
Der Machbarkeitsnachweis wirkt ziemlich überzeugend, doch dieses Problem betrifft nicht nur den VSCode-Marktplatz. Die Grundidee dieser Ökosysteme besteht darin, dass jeder eine Erweiterung teilen kann, die sehr beliebt werden kann.
Selbst wenn Plattformen gründliche Scans durchführen, um Viren und andere bekannte Schadsoftware aufzuspüren, hindert nichts eine Erweiterung daran, freigegebene (oder „nicht auf der Sperrliste stehende“) URLs anzufordern – etwa ein scheinbar legitimes GitHub-Repository, das schädliche Payloads enthält. Diese gefälschten Repositories werden schließlich gemeldet und gelöscht, doch der Schaden ist angerichtet.
Die Forscher wiesen außerdem darauf hin, dass legitime Entwickler unwissentlich anfälligen Code einführen könnten. Mitunter ist es schwierig, schlechte Entscheidungen beim Programmieren von böswilligen Absichten zu unterscheiden.
So lässt sich die VSCode-Bedrohung eindämmen
Dabei ist zu beachten, dass dieser neue Angriffsvektor bislang noch nicht in freier Wildbahn beobachtet wurde. Das könnte erklären, warum es so wenige Informationen darüber gibt.
Die naheliegendste Empfehlung für Entwickler lautet, bei der Installation jeder Erweiterung für die bevorzugte IDE besonders wachsam zu sein. Verwenden Sie ausschließlich vertrauenswürdige Quellen, seien Sie sich aber der gängigen Techniken von Angreifern bewusst, etwa Typosquatting und Identitätsvortäuschung.
Die fehlende Zeit ist letztlich keine akzeptable Ausrede. Als Entwickler tragen Sie Verantwortung – es lohnt sich also, zusätzliche Zeit in die sorgfältige Prüfung Ihrer Tools zu investieren.
Da Angreifer jedoch auch andere Techniken wie Social Engineering einsetzen können, um ihre Opfer zum Herunterladen schädlicher Anwendungen zu bringen, können zusätzliche Maßnahmen Entwicklern dabei helfen, diese Bedrohungen einzudämmen:
- Es ist in Ordnung, ein neues Tool in der Freizeit zu testen (beispielsweise in einer virtuellen Maschine), aber nicht in Ihrer Arbeitsumgebung.
- Prüfen Sie alle angeforderten Berechtigungen und Fähigkeiten: Warum benötigt das Programm Root-Zugriff? Ist das gerechtfertigt? Gibt es bessere Alternativen?
- Wenn die Erweiterungen „als Sie“ ausgeführt werden müssen, listen Sie Ihre eigenen Berechtigungen auf und zögern Sie nicht, unnötige Berechtigungen zu entfernen, sofern dies möglich ist. Benötigen Sie ständig ein Administratorkonto?
- Priorisieren Sie Sandbox-Umgebungen und andere Isolationsmechanismen: Aktivieren Sie sie (sie sind nicht unbedingt standardmäßig aktiviert) oder installieren Sie ein dediziertes Paket, das Apps und Prozesse einschränkt.
- Schützen Sie Ihre Konten mit MFA/2FA.
Offensichtlich können das Prinzip der geringsten Rechte und Container dazu beitragen, die Bedrohung deutlich einzudämmen. In diesem speziellen Fall können Nutzer außerdem „Workspace Trust“ und den „Restricted Mode“ verwenden.

In diesem Modus werden Erweiterungen möglicherweise automatisch deaktiviert oder verfügen nur über eingeschränkte Funktionen.
Das ist allerdings kein Allheilmittel, da es von den Angaben des Autors abhängt. Daher ist es unwahrscheinlich, dass Angreifer „ihre Erweiterungen auf mögliche Sicherheitslücken prüfen und angeben, dass sie bei der Ausführung im Restricted Mode nur eingeschränkten Support bieten“, wie VSCode dies verlangt.
Als besseren Ansatz würde ich für Entwicklerteams Folgendes empfehlen: Teilen und besprechen Sie neue Tools oder führen Sie eine Liste gängiger Erweiterungen, die neue Teammitglieder installieren sollen. Die gute Nachricht ist, dass sich dies in .vscode/extensions.json skripten und versionieren lässt:
{
"recommendations": [ "esbenp.prettier-vscode" ]
}Auf diese Weise kann jeder, der das Projekt-Repository klont, automatisch die richtigen Erweiterungen installieren.
Lesen Sie auch: So verhindern Sie Angriffe auf die Software-Lieferkette





