đŻ Contexte
Analyse publiĂ©e le 20 juin 2026 par SafeDep sur la dĂ©couverte d’un package npm malveillant @withgoogle/stitch-sdk (versions v0.1.1 et v0.1.2), conçu pour imiter le SDK officiel de Google Stitch AI (@google/stitch-sdk, 30 000+ tĂ©lĂ©chargements hebdomadaires).
đ Technique d’attaque : Scope Squatting
L’attaquant a exploitĂ© le fait que npm ne vĂ©rifie pas les marques dĂ©posĂ©es lors de l’enregistrement de scopes. Le produit Google est accessible via stitch.withgoogle.com, mais son scope npm officiel est @google. L’attaquant a enregistrĂ© le scope @withgoogle (premier arrivĂ©, premier servi) et publiĂ© un package avec le mĂȘme nom de base que le SDK lĂ©gitime, avec des numĂ©ros de version identiques (0.1.1, 0.1.2).
Cette technique dĂ©passe le simple typosquatting : le scope usurpĂ© correspond Ă un vrai domaine Google, rendant l’impersonation trĂšs convaincante.
âïž MĂ©canisme d’exĂ©cution
Deux chemins d’exĂ©cution indĂ©pendants :
- Hook
preinstall: exécutescripts/preinstall.jsautomatiquement lors denpm install, silencieusement - Binaire CLI :
bin/cli.jsenregistré comme commandestitch-sdkdans le PATH
Les deux fichiers contiennent un code JavaScript lisible, non obfusquĂ©, dĂ©libĂ©rĂ©ment pour contourner les outils de dĂ©tection basĂ©s sur l’obfuscation.
đ”ïž Credential Harvester â 8 sources ciblĂ©es
- Claude Code (
claude auth status) â premiĂšre prioritĂ©, ciblage explicite des outils IA - git config (global et systĂšme via
execSync) - ~/.gitconfig et
~/.config/git/config(lecture directe + regex email) - ~/.git-credentials (tokens HTTPS)
- Clés publiques SSH (
~/.ssh/*.pub) - GitHub CLI (
gh api user --jq .email) - npm config / ~/.npmrc
- ~/.docker/config.json
đĄ Exfiltration
Chaque credential est envoyé via HTTPS GET vers https://stitch-production.org/api/v1?src=<source>&user=<credential>. La validation TLS est désactivée (rejectUnauthorized: false). Le domaine C2 a été enregistré via GoDaddy le 19 juin 2026 à 11h07 UTC, 75 minutes avant la publication du package.
En v0.1.2, un beacon de fallback est ajoutĂ© (?email-not-found=true) pour confirmer l’installation mĂȘme sans credentials rĂ©cupĂ©rĂ©s.
đ IngĂ©nierie sociale
Le README inclut un avertissement de sĂ©curitĂ© dĂ©crivant exactement le comportement malveillant du package, en prĂ©tendant que le hook preinstall est « dĂ©libĂ©rĂ©ment bĂ©nin ». Le texte d’aide CLI rĂ©fĂ©rence de vrais packages Google et la vraie documentation officielle, positionnant le package malveillant comme « la nouvelle version ».
đ Impact
- 87 téléchargements le premier jour (19 juin 2026)
- Compte npm
maximus-mcmillancréé spécifiquement pour cette opération - Identité GitHub et dépÎt référencé inexistants (404)
đ Type d’article
Analyse technique dĂ©taillĂ©e d’un malware de supply chain npm, publiĂ©e par SafeDep Ă des fins de threat intelligence et de sensibilisation Ă la technique de scope squatting.
đ§ TTPs et IOCs dĂ©tectĂ©s
TTP
- T1195.001 â Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
- T1059.007 â Command and Scripting Interpreter: JavaScript (Execution)
- T1555 â Credentials from Password Stores (Credential Access)
- T1552.001 â Unsecured Credentials: Credentials In Files (Credential Access)
- T1041 â Exfiltration Over C2 Channel (Exfiltration)
- T1036.001 â Masquerading: Invalid Code Signature (Defense Evasion)
- T1071.001 â Application Layer Protocol: Web Protocols (Command and Control)
IOC
- IPv4 :
172.67.189.185â AbuseIPDB · VT · ThreatFox - IPv4 :
104.21.65.94â AbuseIPDB · VT · ThreatFox - Domaines :
stitch-production.orgâ VT · URLhaus · ThreatFox - URLs :
https://stitch-production.org/api/v1â URLhaus - SHA256 :
ba5b2a9a7fe596734fb69bdf1a35071d1a2f435a36e8c870bd4390c562d9f614â VT · MalwareBazaar - SHA256 :
638b523ddd3382b622c412e37f274db1a9a6505893fa7236183f0b67a5355e94â VT · MalwareBazaar - Emails :
maximus-mcmillan@outlook.com - Fichiers :
preinstall.js - Fichiers :
cli.js - Chemins :
scripts/preinstall.js - Chemins :
bin/cli.js
Malware / Outils
- @withgoogle/stitch-sdk (stealer)
đĄ Indice de vĂ©rification factuelle : 55/100 (moyenne)
- ⏠safedep.io â source non rĂ©fĂ©rencĂ©e (0pts)
- â 13669 chars â texte complet (fulltext extrait) (15pts)
- â 11 IOCs dont des hashes (15pts)
- ⏠0/6 IOCs confirmés externellement (0pts)
- â 7 TTPs MITRE identifiĂ©es (15pts)
- â date extraite du HTML source (10pts)
- ⏠aucun acteur de menace nommé (0pts)
- ⏠pas de CVE à vérifier (0pts)
đ Source originale : https://safedep.io/withgoogle-stitch-sdk-scope-squat-credential-harvester/