www

Actualités

Un nouveau botnet IoT baptisé Hide 'N Seek, découvert par les chercheurs de Bitdefender

janvier 2018


Les chercheurs des Bitdefender Labs ont détecté l'émergence d'un botnet qui utilise des techniques de communication avancées pour infecter les victimes et créer son infrastructure.

Le botnet, baptisé HNS (Hide ‘N Seek), a été intercepté par notre système d’honeypots d’objets connectés suite à une attaque par force brute via le service Telnet. Le bot a été détecté pour la première fois le 10 janvier, puis a disparu quelques jours après, avant de réapparaitre le 20 janvier sous une forme nettement améliorée.

 

Impact

Le botnet HNS communique d'une manière complexe et décentralisée et utilise de multiples techniques contre l’altération pour empêcher qu’un tiers puisse le détourner. Le botnet peut procéder à l'exploitation web de toute une série d’appareils via le même exploit que Reaper (CVE-2016-10401 et d’autres vulnérabilités des équipements réseau).

Le botnet embarque une multitude de commandes permettant l'exfiltration des données, l'exécution de code et la perturbation du fonctionnement d'un appareil.

 

Fonctionnement

Le botnet intègre un mécanisme d'autoréplication qui génère de manière aléatoire une liste d'adresses IP pour obtenir des cibles potentielles. Il initie ensuite une connexion raw socket avec flag SYN avec chaque hôte de la liste et continue à communiquer avec ceux ayant répondu à la requête sur des ports de destination spécifiques (23 2323, 80, 8080). Une fois la connexion établie, le botnet recherche si une bannière spécifique (« buildroot login: ») est présente chez la victime. S'il détecte cette bannière de connexion, il tente de se connecter à l'aide d'un ensemble d'identifiants prédéfinis. En cas d'échec, le botnet tente une attaque par force brute en utilisant une liste codée en dur.

Une fois qu’une session est établie avec une nouvelle victime, l'échantillon exécute un automate pour identifier correctement l'appareil ciblé et sélectionne la méthode de compromission la plus adaptée. Par exemple, si la victime a le même LAN que le botnet, celui-ci crée un serveur TFTP pour permettre à la victime de télécharger le code malveillant depuis le bot. Si la victime est connectée à Internet, le bot tente d'utiliser une méthode spécifique d'installation de charge active à distance, pour que la victime télécharge et exécute l'échantillon du malware. Ces techniques d'exploitation sont préconfigurées et stockées dans une adresse mémoire signée numériquement pour empêcher les modifications. Cette liste peut être mise à jour à distance et diffusée parmi les hôtes infectés.

Les échantillons identifiés par nos honeypots le 10 janvier s'attaquent à des caméras IP fabriquées par une entreprise coréenne. Ces appareils semblent jouer un rôle majeur sur le fonctionnement du botnet, car sur les 12 adresses codées en dur dans l'échantillon, 10 appartiennent à des appareils de la marque Focus H&S. La nouvelle version, détectée le 20 janvier, n'utilise plus d'IP codées en dur.

Comme d'autres botnet, HNS n'est pas persistant, et un simple redémarrage permet de nettoyer les appareils infectés. Il s'agit du second botnet connu à ce jour, après le célèbre botnet Hajime, qui utilisait lui aussi une architecture peer-to-peer décentralisée. Néanmoins, dans le cas de Hajime, la fonctionnalité p2p était basée sur le protocole BitTorrent, tandis qu'il s'agit ici d'un système p2p conçu sur mesure.

 

Mécanisme de communication UDP

Le botnet ouvre un port aléatoire sur la victime et ajoute des règles de pare-feu pour permettre le trafic entrant sur ce port. Il reste ensuite en écoute sur ce port ouvert et n'accepte que les commandes décrites ci-dessous. Notre analyse initiale de l'échantillon a révélé la présence d'une clé basée sur les courbes elliptiques à l'intérieur du fichier utilisé pour authentifier la commande de mise à jour de la zone mémoire où sont stockées les options de configuration afin d'empêcher les tentatives d'infiltration ou d'infection du botnet.

Le binaire du botnet peut accepter les arguments suivants à l'exécution :

 

‘k’ + [numéro_de_port]

Arrête tous les processus en cours sur le port indiqué lors de l'exécution.

'l' + [numéro_de_port]

Écoute sur le numéro de port indiqué après l'exécution

's' + chemin

Lit les fichiers de l'emplacement indiqué et les charge en mémoire. Le contenu peut ensuite être récupéré par d'autres pairs via les commandes « m », « y » et « Y ». Une somme de contrôle sha256 est également créée pour chaque fichier créé. Avec comme conséquence indirecte la conservation du binaire malveillant sur le système.

'a' + [IP:PORT]

Ajoute IP:PORT à la liste des IP:PORT stockés en interne

'e' + IP:PORT

Ajoute une nouvelle cible à la liste de cibles, habituellement générée de manière aléatoire.

 

Une fois exécuté, le botnet reste à l'écoute des commandes transmises soit sur le port indiqué à l'exécution soit, le cas contraire, sur un port généré aléatoirement. S'il reçoit une commande, le bot répond habituellement à l'expéditeur avec un paquet qui respecte le protocole de communication pré-établi. Comme l'analyse et le traitement des données sont exactement les mêmes en mode récepteur et émetteur, nous pouvons en conclure que la communication du botnet est basée sur une architecture peer-to-peer.

 

Outre leurs capacités de bot, les codes que nous avons analysés intègrent également un composant de serveur web qui héberge et sert des fichiers binaires à d'autres victimes potentielles.

 

 

Commandes prises en charge

Pour comprendre les capacités du botnet, nous nous sommes penchés sur les messages reçus d'autres pairs. Ci-dessous, une liste des commandes prises en charge, accompagnée de leurs résultats potentiels :

 

‘i’ + u32(config_size)

 

Si le config_size reçu est plus grand que la taille de la configuration actuelle, un message de confirmation est renvoyé au pair. Le pair est finalement configuré en tant qu'endpoint de communication pour obtenir la config plus grande. Si le dht_size est plus petit, un message « I » est renvoyé au pair, pour publier la config plus grande..

 

‘I’ + u32(taille_config)

 

Le config_size reçu devrait être plus grand que la taille de la config actuelle (faisant suite à une requête de message « i »). Un message de confirmation est renvoyé et le pair est finalement configuré en tant qu'endpoint de communication pour obtenir la config plus grande.

 

‘m’ + u8[32](hash) + u32(ip) + u16(port) + u16(seq) + u8(hops) + u8(unk)

 

Ce message tente de trouver des données correspondant au hachage indiqué. Il vérifie tout d'abord en local si le hachage est connu et si les données sont disponibles. Si les données sont disponibles, il commence à les envoyer à ip:port via un message « Y ». Si les données ne sont pas disponibles, le bot diffuse le message « m » actuel (avec des sauts décrémentés, mais pas plus de 5 sauts) à tous les pairs qu'il connait.

 

‘^’ + u8(flags) + u16(port) + u32(ip)

 

Signale un nouveau pair avec ip:port. Le nouveau pair est ajouté à la liste des pairs connus (il peut également remplacer un pair si la liste est trop longue).

 

‘~’

 

Demande un nouveau pair. À réception, un pair aléatoire est sélectionné dans la liste des pairs connus et envoyé via un message « ^ »

 

‘Y’ + u16(chunk_index) + u16(seq) + u8[](data)

 

Il s'agit du message des données reçues. Les données sont copiées par bloc de 0x100 octets au maximum (p.ex. l'offset actuel est chunk_index * 0x100). Le chuck_index est l'offset actuellement lu et il doit correspondre à la taille actuelle d'un tampon communiqué.

 

Il existe de multiples résultats possibles quand le fichier est téléchargé :

 

  • Si les données correspondent à une nouvelle config, celle-ci est vérifiée (via ECDSA - la clé basée sur les courbes elliptiques dont nous avons déjà parlé) puis elle vient remplacer la config actuelle
  • Le fichier peut être déposé et exécuté (p.ex. un mécanisme de mise à jour)

 

‘y’ + u8[32](hash) + u16(chunk_index) + u16(seq)

 

Cette commande tente de lire dans chunk_index les données correspondant au cache via un message « Y ». Si pour une raison ou une autre les données ne sont pas disponibles en local, un message « m » est diffusé.

 

‘O’ + u8(checksum)

 

Il s'agit d'un message de confirmation. La somme de contrôle est réalisée sur le message reçu.

 

'i' , 'I' (première version)

‘h’, ‘H’ (seconde version)

Commandes de mise à jour de la configuration

'm','Y','y'

Mécanisme d'exfiltration des données (« m » communique un hachage, tandis que « Y » et « y » déplacent les données)

"z"

composant d'analyse (envoie à un pair valide les identifiants trouvés via une attaque par dictionnaire)

"O"

confirmation de la validité des identifiants reçus par « z » (néanmoins, la même confirmation peut être envoyée dans plusieurs autres circonstances)

"^"

ajoute un nouveau pair à la liste des pairs connus

"~"

répond en envoyant l'IP d'un pair (lorsque l'IP d'un pair est demandée)

 

Conclusions

Si les botnets IoT existent depuis maintenant des années, principalement utilisés pour les attaques DDoS, les découvertes de l'analyse du botnet Hide and Seek révèlent un niveau supérieur de complexité et de nouvelles capacités comme le vol d'information - potentiellement adapté à l'espionnage et à l'extorsion.

Il convient également de noter que le botnet connait actuellement des révisions permanentes et une rapide expansion.

 

Hachages connus

efcd7a5fe59ca8223cd282bfe501a2f92b18312c

05674f779ebf9dc6b0176d40ff198e94f0b21ff9

 

Références

  1. https://nvd.nist.gov/vuln/detail/CVE-2016-10401
  2. https://www.exploit-db.com/exploits/25978/
  3. http://www.h-online.com/security/news/item/Treacherous-backdoor-found-in-TP-Link-routers-1822720.html

 


À propos de Bitdefender®

Bitdefender est une société internationale qui développe et édite des solutions de cybersécurité innovantes protégeant plus de 500 millions d'utilisateurs, dans plus de 150 pays. Depuis 2001, Bitdefender n’a cessé de fournir aux entreprises et aux particuliers, des technologies et des solutions régulièrement primées et est devenu un fournisseur majeur pour la sécurité des infrastructures hybrides, des postes de travail, ainsi qu’en matière de protection avancée contre toutes les formes de menaces. Grâce à ses investissements en R&D, sa capacité à innover en permanence pour garder une longueur d’avance sur les menaces, et de nombreux partenariats technologiques, Bitdefender a réhaussé les standards de sécurité les plus élevés de l’industrie en s’appuyant à la fois sur ses technologies et ses alliances stratégiques avec les principaux fournisseurs de technologies de virtualisation et de Cloud dans le monde. Plus d'informations sur https://www.bitdefender.fr/


Share