Bösartiges npm-Paket zielt über gefälschte Probe auf Twilio-Entwickler

Bösartiges npm-Paket zielt über gefälschte Probe auf Twilio-Entwickler

ReversingLabs hat ein npm-Paket entdeckt, das sich als Twilio-Sicherheitsprobe ausgab, aber Umgebungsvariablen stehlen konnte, einschließlich Twilio-Kontozugangsdaten.

Ein bösartiges npm-Paket namens tw-pkgprobe-7731 wurde entdeckt, das sich als Sicherheitstool für Entwickler ausgibt, die Twilio in ihre Anwendungen integrieren, während es heimlich versucht, sensible Daten von deren Rechnern zu sammeln. Das Paket wurde Mitte August 2026 von einem Konto namens twdepprobe7731 in der npm-Registry veröffentlicht, dem zentralen Online-Lager für JavaScript-Codepakete. Die ReversingLabs-Forscherin Lucija Valentić beschrieb die Ergebnisse in einem Bericht und stellte fest, dass innerhalb von etwa 45 Minuten am selben Tag 11 Versionen veröffentlicht wurden und das Konto, das sie veröffentlicht hat, zum Zeitpunkt des Berichts nicht mehr existiert.

Die erste Version versuchte, wie eine autorisierte Sicherheitsforschungsprobe auszusehen. Kommentare im Paket beschrieben es als autorisierte Bug-Bounty-Forschungssonde für das Twilio HackerOne-Programm und behaupteten, dass es nur innerhalb von Twilios serverloser Packager-Sandbox läuft und lokale Prozess- und Host-Kontextdaten sammelt, die es neben sich selbst schreibt, ohne destruktive Aktionen. Bei Ausführung prüft das Paket zunächst, ob es in einer Twilio-Entwicklerumgebung läuft. Wenn diese Prüfung fehlschlägt, wird es sofort beendet. Wenn die Prüfung erfolgreich ist, sammelt es Umgebungsvariablen, kleine Informationsstücke, die Programme verwenden, wie Kontodetails, zusammen mit Systemdetails wie eingebundenen Speicher, temporären Ordnern und verschiedenen Konfigurationseinstellungen. Alles, was es sammelt, wird dann über einen Webhook an ein externes Ziel gesendet, was bedeutet, dass das Programm die Daten automatisch an eine vom Angreifer kontrollierte URL sendet.

Spätere Versionen mit den Nummern 1.0.1, 1.0.2 und 1.0.3 konzentrierten sich auf Entwickler, die Twilio-APIs verwenden. Diese Versionen suchten nach Ordnern, die mit bestimmten Twilio-Konto-SIDs verbunden sind, den Zeichenfolgen-IDs, die jedes Twilio-Konto kennzeichnen. Der Code würde keine Aktion ausführen, wenn er einen Ordner mit einem bestimmten SID-Namen fand. Wenn passende Zielordner gefunden wurden, scannte das Paket installierte npm-Pakete und den node_modules-Ordner, in dem JavaScript-Projekte ihre Abhängigkeiten speichern, und injizierte ein benutzerdefiniertes Proof-of-Concept-Paket, indem es neue package.json- und index.js-Dateien darin erstellte. Mit anderen Worten, es versuchte, zusätzlichen Code in das Projekt eines Entwicklers einzuschleusen, wenn die richtigen Bedingungen erfüllt waren.

Version 1.0.4 ging noch weiter. ReversingLabs stellte fest, dass diese Version die Fähigkeit hinzufügte, zwei bestimmte Umgebungsvariablen zu stehlen: process.env.ACCOUNT_SID und process.env.AUTH_TOKEN. Dies sind die Werte, die ein Twilio-Konto identifizieren und beweisen, dass eine Anfrage autorisiert ist. Wenn ein Angreifer beide erhält, kann er möglicherweise das Twilio-Konto des Opfers so weit kontrollieren, dass er Abrechnungen autorisieren und Kommunikation auslösen kann. Der Bericht erklärt, dass die Paketversionen nicht den von Twilio veröffentlichten Richtlinien zur Fehlersuche auf HackerOne entsprachen, und die Forscherin sagte, diese Pakete verletzen eindeutig die grundlegenden Sicherheitsforschungsrichtlinien, die Twilio festgelegt hat, was auf böswillige Absichten hindeutet.

Die letzten drei Versionen mit den Nummern 1.0.8, 1.1.0 und 1.1.1 machten einen unerwarteten Rückschritt. Sie kehrten zum grundlegenden Sondierungsverhalten der allerersten Version zurück und entfernten die in früheren Versionen hinzugefügten bösartigen Funktionen. Die letzten beiden Versionen führten auch Open-Source-Intelligence-Sammlung (OSINT) durch, indem sie mehrere Twilio-bezogene Hostnamen kontaktierten: support-api.us1.twilio[.]com, kafka-ui.au1.twilio[.]com und litellm.ai-services.corp.twilio[.]com. Sie versuchten sogar, Amazon Web Services-Metadaten von der speziellen Adresse 169.254.169[.]254/latest/meta-data/ abzurufen, was Informationen über den Cloud-Server preisgeben kann. Da das Paket so oft die Richtung änderte, sagen die Forscher, ist unklar, was das endgültige Ziel wirklich war und ob es als Teil eines Bug-Bounty-Programms veröffentlicht wurde.

Trotz des Versuchs, schädlichen und harmlosen Code zu vermischen, unternahm der Autor keine wirklichen Anstrengungen, die bösartigen Teile zu verbergen. Es gab keine Obfuskation, was bedeutet, dass der Code nicht verschleiert wurde, um ihn schwer verständlich zu machen, und kein Typosquatting, was bedeutet, dass der Ersteller keinen Namen verwendete, der einem vertrauenswürdigen Paket sehr ähnlich ist, um Entwickler zu täuschen. Das veröffentlichende npm-Konto unternahm auch keinen Versuch, wie ein legitimer Herausgeber auszusehen. ReversingLabs stellte fest, dass dies anders ist als bei früheren Kampagnen und auf einen weniger sophisticated Bedrohungsakteur hindeutet, der für die Bemühungen gegen Twilio-Entwickler verantwortlich war. Für jeden, der Software entwickelt oder betreibt, die von npm-Paketen abhängt, ist dieser Fall eine Erinnerung daran, dass eine plausible Beschreibung und ein professionell aussehender Kommentar im Code nicht ausreichen, um Vertrauen zu schaffen.

Website-Besitzer und IT-Teams sollten die Paketauswahl als Sicherheitsentscheidung betrachten, nicht nur als Bequemlichkeit. Die Überprüfung des Herausgeberkontos, seines Alters und seiner Veröffentlichungshistorie vor der Installation kann gefälschte Sonden erkennen, bevor sie ausgeführt werden. Leser, die ihre eigenen Websites verwalten, können auch einige dieses Risikos reduzieren, indem sie einen Hosting-Anbieter wie AEU Hosting wählen, der Sicherheitsupdates und Überwachung für verwaltete WordPress-Umgebungen übernimmt, sodass eine bösartige Abhängigkeit weniger Raum zur Ausbreitung hat.

So schützen Sie sich

  1. Wenn Ihre Website oder App Code-Pakete von npm verwendet, führen Sie eine schriftliche Liste aller Pakete und aktualisieren Sie sie nur von der offiziellen Quelle, nachdem Sie den Paketnamen und den Herausgeber sorgfältig überprüft haben.
  2. Bevor Sie ein neues Paket installieren, suchen Sie das Herausgeberkonto; wenn das Konto brandneu ist, keine Historie hat oder nicht mehr existiert, stoppen Sie und wählen Sie ein anderes Paket oder bitten Sie einen Entwickler um Hilfe.
  3. Geben Sie keine echten Passwörter oder geheimen Kontocodes in Umgebungsvariablen ein, die ein Entwicklungstool lesen könnte; verwenden Sie temporäre, eingeschränkte Berechtigungen und ersetzen Sie sie sofort, wenn Sie vermuten, dass etwas a
  4. Wenn Sie Twilio für Nachrichten oder Telefonanrufe verwenden, überprüfen Sie Ihr Konto auf unerwartete Ausgaben oder Nachrichten und aktivieren Sie Abrechnungsbenachrichtigungen, damit Sie schnell erfahren, wenn jemand gestohlene Anmeldeinf
  5. Fügen Sie Ihrem Entwicklungsprozess einen automatischen Paketprüfer hinzu, damit jedes neue oder unerwartete Paket gekennzeichnet wird, bevor sein Code ausgeführt wird, und behandeln Sie jede unerwartete Änderung an den Paketdateien Ihres P

Begriffe Erklärt

  • npm package Eine Sammlung von Code, die in der npm-Registry veröffentlicht wird und die Entwickler zu einem JavaScript-Projekt hinzufügen können, damit es funktioniert oder eine Funktion erhält.
  • environment variables Kleine Informationsstücke, die auf einem Computer oder Server gespeichert sind und von Programmen verwendet werden, wie Passwörter, Kontokennungen oder Einstellungen.
  • Twilio account SID Eine Zeichenfolge, die ein Twilio-Konto eindeutig identifiziert, ähnlich einer Kontonummer.
  • exfiltration Der Akt des heimlichen Sendens gestohlener Daten an einen externen Ort, der von einem Angreifer kontrolliert wird.
  • webhook Eine Möglichkeit für ein Programm, Daten automatisch an einen anderen Online-Dienst oder eine URL zu senden, wenn etwas passiert.
  • node_modules Der Ordner, in dem npm alle zusätzlichen Pakete speichert, von denen ein JavaScript-Projekt abhängt.
  • OSINT Open-Source-Intelligence, Informationen, die aus öffentlich verfügbaren Quellen wie Websites und Online-Tools gesammelt werden.
  • obfuscation Die Praxis, Code zu verschleiern, um ihn schwer verständlich zu machen, oft verwendet, um bösartiges Verhalten zu verbergen.

Verwandte AEU-Dienste

  • AEU DNS Verschlüsselter DNS-Resolver