🔍 Contexte
Le 9 septembre 2026, SafeDep publie une analyse technique d’une attaque de type supply chain ciblant Deep-Live-Cam, une application Python de face swapping comptant 96 600 étoiles sur GitHub. L’attaque a été introduite le 8 septembre 2026 via un commit malveillant sur le dépôt officiel.
🎯 Vecteur d’attaque
L’attaquant a compromis le compte GitHub du mainteneur (hacksider) malgré l’activation de l’authentification à deux facteurs. Le commit 7895c547 a réécrit 18 entrées de requirements.txt pour masquer l’ajout d’une fausse dépendance :
requests @ git+https://github.com/pypls/requests.gitsubstitue le package légitimerequests- Le compte
pyplset son dépôt ont été créés le 5 septembre 2026, trois jours avant l’injection - La révision malveillante est restée active environ 9 heures 39 minutes avant d’être révoquée
⚙️ Mécanisme d’exécution
Le setup.py malveillant exploite le backend setuptools pour exécuter du code au moment de l’installation (pip install), avant même le lancement de l’application :
- 434 espaces sur la ligne 2 dissimulent le code malveillant hors de la zone visible des éditeurs
- Des noms de variables en caractères CJK (chinois, japonais, coréen) ajoutent une couche de bruit visuel
- Le code utilise
exec(compile(zlib.decompress(base64.b64decode(...))))pour décoder et exécuter un loader
🔗 Chaîne d’infection
requirements.txt→pypls/requests/setup.py- Deux couches de décodage Base64/zlib → loader Windows/macOS
- Téléchargement depuis une page Telegraph (
graph.org/coding-utf-8-09-05-2) - Écriture d’un script Python local
- Deux couches supplémentaires → payload final de persistance et clipboard hijacking
💰 Payload final : clipboard hijacker
Le payload final (stage4_payload.py) :
- Lit le presse-papiers via les API Windows ou
pbpaste(macOS) - Détecte les adresses de cryptomonnaies (Bitcoin P2PKH/P2SH/P2WPKH/P2WSH/P2TR, Ethereum EIP-55, Tron Base58Check, Solana Ed25519)
- Remplace silencieusement les adresses par celles de l’attaquant
- Boucle toutes les 0,3 secondes
- Contient une chaîne d’erreur en russe : “Неизвестный тип кошелька” (indicateur d’origine linguistique)
🔒 Persistance
- Windows : valeur
SysHelpersousHKCU\Software\Microsoft\Windows\CurrentVersion\Run, script dans%LOCALAPPDATA%\WindowsHelper\sys.pyw - macOS : LaunchAgent
com.user.syshelper.plistavecRunAtLoadetKeepAlive, script dans~/Library/Application Support/HowToFind/sys.py
📌 Type d’article
Analyse technique détaillée produite par SafeDep, visant à documenter la chaîne d’attaque complète, les indicateurs de compromission et les artefacts forensiques associés à cet incident de supply chain.
🧠 TTPs et IOCs détectés
TTP
- T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
- T1554 — Compromise Client Software Binary (Persistence)
- T1059.006 — Command and Scripting Interpreter: Python (Execution)
- T1027 — Obfuscated Files or Information (Defense Evasion)
- T1547.001 — Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder (Persistence)
- T1543.004 — Create or Modify System Process: Launch Agent (Persistence)
- T1115 — Clipboard Data (Collection)
- T1496 — Resource Hijacking (Impact)
- T1078 — Valid Accounts (Initial Access)
- T1102 — Web Service (Command and Control)
IOC
- Domaines :
graph.org— VT · URLhaus · ThreatFox - Domaines :
abacus.jasoncameron.dev— VT · URLhaus · ThreatFox - URLs :
https://github.com/pypls/requests— URLhaus - URLs :
https://graph.org/coding-utf-8-09-05-2— URLhaus - URLs :
https://abacus.jasoncameron.dev/hit/duff.com/info— URLhaus - SHA256 :
b34818f9208133c2fd2d0814162c6f3c59e35df518e3c95f998890f7e4a5e6f4— VT · MalwareBazaar - SHA256 :
f6fbefc82589dbeddabc8883c63cbb027239019ed38fafa83a9139c2585064f5— VT · MalwareBazaar - SHA256 :
175f9e7fad2661f647c8f2438bf0d757fe18ab364a22c544c938f45e0e4f6ced— VT · MalwareBazaar - SHA256 :
eafed30038d53614cf3dc7a8f19c2dd663352b3c8cb78aa5ed1b9d9710017570— VT · MalwareBazaar - SHA256 :
c91a00b56ad2591236ccefd701a6b19b72dbacefadbdb0f11e13693c2d6764d9— VT · MalwareBazaar - SHA256 :
73cb3c0e9afd9db32a392655ff58be5cc95b24fbc0f412202853dc0161dd0561— VT · MalwareBazaar - Emails :
oakleyiballard1984@proton.me - Fichiers :
setup.py - Fichiers :
stage2_payload.py - Fichiers :
stage3_payload.py - Fichiers :
stage4_payload.py - Fichiers :
sys.pyw - Fichiers :
sys.py - Fichiers :
com.user.syshelper.plist - Chemins :
%LOCALAPPDATA%\WindowsHelper\sys.pyw - Chemins :
~/Library/Application Support/HowToFind/sys.py - Chemins :
~/Library/LaunchAgents/com.user.syshelper.plist
⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 11 septembre 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.
Malware / Outils
- clipboard hijacker (stage4_payload.py) (stealer)
- pypls/requests loader (stage2_payload.py) (loader)
🟡 Indice de vérification factuelle : 63/100 (moyenne)
- ⬜ safedep.io — source non référencée (0pts)
- ✅ 14779 chars — texte complet (fulltext extrait) (15pts)
- ✅ 22 IOCs dont des hashes (15pts)
- ✅ 1/8 IOC(s) confirmé(s) (MalwareBazaar, ThreatFox, URLhaus, VirusTotal) (8pts)
- ✅ 10 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ pas de CVE à vérifier (0pts)
IOCs confirmés externellement :
graph.org(domain) → VT (7/89 détections)
🔗 Source originale : https://safedep.io/deep-live-cam-supply-chain-attack/