Illustration stylisée de uns et de zéros sur un écran d'ordinateur.

Les pirates de l’une des agences d’espionnage les plus élitistes et les plus effrontées de Russie ont infecté des appareils réseau domestiques et de petites entreprises dans le monde entier avec un malware inédit qui transforme les appareils en plates-formes d’attaque capables de voler des données confidentielles et de cibler d’autres réseaux.

Cyclops Blink, comme le malware avancé a été surnommé, a infecté environ 1% des dispositifs de pare-feu réseau fabriqués par le fabricant de dispositifs réseau WatchGuard, a annoncé mercredi la société. Le logiciel malveillant est capable d’abuser d’un mécanisme légitime de mise à jour du micrologiciel trouvé dans les appareils infectés d’une manière qui lui donne de la persistance, ce qui signifie que le logiciel malveillant survit aux redémarrages.

Comme VPNFilter, mais plus furtif

Cyclops Blink circule depuis près de trois ans et remplace VPNFilter, le logiciel malveillant qui, en 2018, a découvert que des chercheurs infectaient environ 500 000 routeurs domestiques et de petites entreprises. VPNFilter contenait un véritable couteau suisse qui permettait aux pirates de voler ou de manipuler le trafic et de surveiller certains protocoles SCADA utilisés par les systèmes de contrôle industriels. Le ministère américain de la Justice a lié les hacks à la Direction principale du renseignement de l’état-major général des forces armées de la Fédération de Russie, généralement abrégée en GRU.

Avec VPNFilter exposé, les pirates de Sandworm ont créé un nouveau malware pour infecter les périphériques réseau. Comme son prédécesseur, Cyclops Blink a tous les attributs d’un micrologiciel développé par des professionnels, mais il a également de nouvelles astuces qui le rendent plus furtif et plus difficile à supprimer.

« Le malware lui-même est sophistiqué et modulaire avec des fonctionnalités de base pour baliser les informations de l’appareil vers un serveur et permettre le téléchargement et l’exécution des fichiers », ont écrit des responsables du National Cyber ​​​​Security Center du Royaume-Uni dans un avis. « Il existe également une fonctionnalité permettant d’ajouter de nouveaux modules pendant l’exécution du logiciel malveillant, ce qui permet à Sandworm d’implémenter des fonctionnalités supplémentaires si nécessaire. »

Tenir le WatchGuard en otage

Jusqu’à présent, selon l’avis, Sandworm a « principalement » utilisé le logiciel malveillant pour infecter les périphériques réseau de WatchGuard, mais les pirates sont probablement capables de le compiler pour qu’il s’exécute également sur d’autres plates-formes. Le logiciel malveillant gagne en persistance sur les appareils WatchGuard en abusant du processus légitime utilisé par les appareils pour recevoir les mises à jour du micrologiciel.

Le logiciel malveillant commence par copier les images du micrologiciel stockées sur l’appareil et les modifie pour inclure des fonctionnalités malveillantes. Cyclops Blink manipule ensuite une valeur HMAC utilisée pour prouver de manière cryptographique que l’image est légitime afin que les appareils l’exécutent. Le processus ressemble à ceci :

Le logiciel malveillant contient une clé publique RSA codée en dur, qui est utilisée pour les communications C2, ainsi qu’une clé privée RSA codée en dur et un certificat X.509. Mais ils ne semblent pas être activement utilisés dans les échantillons analysés par les responsables britanniques, ce qui rend possible qu’ils soient destinés à être utilisés par un module distinct.

Cyclops Blink utilise la bibliothèque de cryptographie OpenSSL pour chiffrer les communications sous le chiffrement fourni par TLS.

L’avis de mercredi indiquait:

Chaque fois que le malware balise, il sélectionne au hasard une destination dans la liste actuelle des adresses IPv4 du serveur C2 et la liste codée en dur des ports C2. Les balises consistent en des messages en file d’attente contenant des données provenant de modules en cours d’exécution. Chaque message est chiffré individuellement à l’aide d’AES-256-CBC. La fonction OpenSSL_EVP_SealInit est utilisée pour générer de manière aléatoire la clé de chiffrement et l’IV pour chaque message, puis les chiffrer à l’aide de la clé publique RSA codée en dur. La fonction OpenSSL_RSA_public_decrypt est utilisée pour déchiffrer les tâches, reçues en réponse aux balises, à l’aide de la clé publique RSA codée en dur.

D’autres nouvelles mesures de furtivité incluent l’utilisation du réseau de confidentialité Tor pour dissimuler les adresses IP utilisées par le malware. Les responsables britanniques ont écrit :

Les appareils victimes sont organisés en clusters et chaque déploiement de Cyclops Blink possède une liste d’adresses IP et de ports de commande et de contrôle (C2) qu’il utilise (T1008). Toutes les adresses IP C2 connues à ce jour ont été utilisées par des dispositifs de pare-feu WatchGuard compromis. Les communications entre les clients et les serveurs Cyclops Blink sont protégées par Transport Layer Security (TLS) (T1071.001), à l’aide de clés et de certificats générés individuellement. Sandworm gère Cyclops Blink en se connectant à la couche C2 via le réseau Tor :