NullReceiver Avance EtherHiding avec Transferts Cryptographiques Vides
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Les acteurs de la menace liés à la RPDC utilisent une nouvelle méthode de résolution C2 basée sur la blockchain connue sous le nom de NullReceiver. La technique intègre les adresses IP C2 dans les octets d’adresse du destinataire des transferts Ethereum de valeur nulle, rendant la détection plus difficile qu’avec l’EtherHiding traditionnel. Le malware associé est distribué par le biais de packages npm trojanisés.
Enquête
Les chercheurs ont enquêté sur l’activité par une analyse statique des tarballs npm publiés et un examen en lecture seule des transactions contrôlées par l’attaquant sur la blockchain publique. L’analyse a identifié deux packages npm malveillants, bianira-ui and fluid-type-ui, qui utilisent NullReceiver pour résoudre l’infrastructure de commande et de contrôle.
Atténuation
Les défenseurs doivent surveiller l’activité de la blockchain associée aux portefeuilles Ethereum contrôlés par des attaquants connus et inspecter les adresses de destinataire utilisées dans les transferts de valeur nulle. Les organisations devraient également renforcer les contrôles de la chaîne d’approvisionnement logicielle pour les dépendances npm afin de prévenir l’installation de packages trojanisés.
Réponse
Si une activité NullReceiver est détectée, les environnements Node.js affectés doivent être isolés immédiatement. Les enquêteurs doivent identifier la source du package npm malveillant et bloquer les adresses IP C2 et les adresses des portefeuilles Ethereum correspondantes à la fois au niveau du réseau et de l’application.
Flux d’attaque
Détections
Tentative possible d’abus Publicnode Ethereum en tant que canal C2 (via dns_query)
Proof of Value
IOC (SourceIP) pour détecter : Les transferts cryptographiques vierges de NullReceiver résolvent les défis de l’EtherHiding
Proof of Value
IOC (DestinationIP) pour détecter : Les transferts cryptographiques vierges de NullReceiver résolvent les défis de l’EtherHiding
Proof of Value
Établissement de la connexion HTTP/HTTPS NullReceiver [Connexion réseau Windows]
Proof of Value
Détection de la technique de commande et de contrôle basée sur la blockchain de NullReceiver [Création de processus Linux]
Proof of Value
Exécution de simulation
Prérequis : La vérification pré-vol des télémétrie et base doit avoir réussi.
Justification : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et la narration DOIVENT refléter directement les TTP identifiés et viser à générer la télémétrie exacte attendue par la logique de détection. Des exemples abstraits ou sans rapport entraîneront une erreur de diagnostic.
-
Narration & commandes d’attaque : L’adversaire cherche à établir un canal C2 furtif qui contourne le blacklistage traditionnel basé sur les adresses IP. Pour ce faire, il déploie un package npm malveillant utilisant la technique « NullReceiver ». Le script initialise les variables globales en utilisant une syntaxe obfusquée spécifique (
global.i = "A10-npm3!", global.r = require) et contacte immédiatement lehttps://1rpc.io/ethpoint de terminaison. Cela permet au malware de lire le champ « recipient » d’une transaction Ethereum spécifique, contenant l’adresse IP codée du serveur C2 réel. Cette méthode utilise l’infrastructure de blockchain légitime pour dissimuler l’intention malveillante. -
Script de test de régression :
#!/bin/bash # Script de simulation pour la détection de technique C2 NullReceiver # Créer un script node malveillant qui imite les modèles spécifiques dans la règle de détection cat << 'EOF' > malicious_npm_payload.js // Imitation des modèles exacts définis dans la règle Sigma global.i = "A10-npm3!"; global.r = require; const https = require('https'); // Le malware contacte le point de terminaison RPC spécifique pour récupérer des instructions const url = 'https://1rpc.io/eth'; console.log("[!] Début de la consultation C2 basée sur la blockchain..."); https.get(url, (res) => { console.log("[!] Connexion réussie. Analyse de l'état de la blockchain..."); res.on('data', (d) => { // Dans une attaque réelle, cela analyserait le champ 'recipient' pour l'IP du C2 console.log("[!] Instruction reçue via la technique NullReceiver."); }); }).on('error', (e) => { console.error(`[X] Connexion échouée : ${e.message}`); }); EOF # Exécuter le script malveillant en utilisant node echo "[*] Exécution de la simulation malveillante..." node malicious_npm_payload.js # Nettoyer le fichier de script rm malicious_npm_payload.js -
Commandes de nettoyage :
# Supprimer tout artefact créé lors de la simulation rm -f malicious_npm_payload.js