StormBamboo, acteur malveillant chinois et connu sous plusieurs autres noms, a réussi à compromettre un fournisseur d’accès internet. De là, il a pu diffuser des mises à jour vérolées à des entreprises, grâce à un empoisonnement DNS. Ce piratage s’est déroulé l’année dernière, mais n’a été révélé que récemment par la société de sécurité Volexity.
StormBamboo est connu sous plusieurs autres noms : Evasive Panda, StormCloud, Bronze Highland ou encore Daggerfly. Il sévit depuis au moins 2012 et est connu pour son utilisation intensive de portes dérobées. Fin juillet, il a été identifié par Symantec comme étant à l’origine de MgBot (POCOSTICK) et MACMA (malware macOS), dans une campagne visant plusieurs ONG taïwanaises et américaines.
Le groupe s’est fait une spécialité de la compromission d’entités pour atteindre son but. « StormBamboo est un acteur très compétent et agressif qui compromet des tiers (dans ce cas, un fournisseur d'accès à Internet) pour atteindre les cibles visées », affirme ainsi Volexity dans son rapport.
La société de sécurité met en avant un autre fait d’arme de StormBamboo. Les pirates ont réussi l’année dernière à s’infiltrer dans un fournisseur d’accès, qui n’a pas été nommé (on ne sait même pas dans quel pays). Grâce à un empoisonnement DNS, les pirates ont ensuite pu distribuer de fausses mises à jour pour certaines applications. Elles contenaient du code malveillant, permettant de déclencher ensuite des attaques contre une série d’entreprises.
Des mises à jour automatiques et contaminées
Selon Volexity, les pirates ont dû prendre le contrôle de routeurs et/ou d’équipements semblables chez le fournisseur visé. De là, ils ont empoisonné les réponses DNS, détournant des noms d’hôtes légitimes vers des domaines qu’ils contrôlaient.
À partir de ce moment, ils ont pu mener des attaques MitM (man-in-the-middle, attaque de l'homme du milieu), leur permettant de rediriger les demandes de mises à jour de plusieurs applications vers des charges malveillantes. Ces applications sont présentes sur Windows, macOS ou les deux : 5KPlayer, Quick Heal, Rainmeter, Partition Wizard, ainsi que des logiciels de Corel et Sogou.
Volexity note que ces processus de mises à jour n’utilisent ni TLS ni de signature cryptographique. Les applications étaient donc dans l’incapacité d’authentifier quoi que ce soit, que ce soit le code téléchargé ou la connexion elle-même.
Ces redirections fonctionnaient même quand les postes étaient configurés avec des DNS publics non chiffrés comme 8.8.8.8 de Google ou 1.1.1.1 de Cloudflare. Pour déjouer l’attaque, il aurait fallu que les ordinateurs soient configurés avec DoH (DNS over HTTPS) ou DoT (DNS over TLS).
- Qu’est-ce que DNS over HTTPS (DoH), qu’est-ce que cela peut vous apporter ?
- DNS over HTTPS (DoH) : pour Stéphane Bortzmeyer, « le diable est dans les détails »
Windows ou macOS, chacun son malware
Dans le cas de 5KPlayer par exemple, lancer l’application ouvre une connexion HTTP non sécurisée pour vérifier la présence d’une nouvelle version du fichier Youtube.config. Grâce à l’empoisonnement DNS, les pirates ont redirigé cette recherche vers un fichier Youtube.config de leur cru. Ce dernier, une fois récupéré, provoquait le téléchargement d’une charge utile, un fichier exécutable déguisé en image PNG.
L’exécutable déguisé installait ensuite le malware proprement dit. Sur Windows, il s’agissait de POCOSTICK. Sur macOS, de MACMA. Le premier existe depuis au moins 2014. L’année dernière, la société de sécurité ESET avait indiqué dans un rapport que ce malware (qu’elle nommait MgBot), était l’apanage d’un groupe chinois de pirates, Evasive Panda (donc StormBamboo).
À l’époque, ESET estimait déjà que les contaminations étaient dues à des mises à jour frelatées. La question se posait alors de savoir s’il s’agissait d’une contamination de la chaine d’approvisionnement (si les éditeurs eux-mêmes avaient été piratés) ou d’attaques MitM. La réponse est maintenant connue.
MACMA, lui, a été évoqué pour la première fois en 2021 par le Threat Analysis Group de Google. Ce malware, écrit pour macOS et iOS, est une trousse à outils fournissant diverses capacités, dont le vol d’empreintes digitales sur l’appareil (quand possible), la prise de captures d’écran, le téléchargement de fichiers, l’exécution de commandes, l’enregistrement audio ou encore celui de la frappe au clavier.
D’autres techniques en parallèle
Selon Volexity, StormBamboo ne se contente pas de détourner le DNS pour des applications. Ils l’ont également fait, dans plusieurs cas, pour l’adresse www.msftconnecttest.com. Ce domaine est utilisé par Microsoft pour déterminer si les ordinateurs sont effectivement connectés à internet. En détournant l’adresse vers un serveur qu’ils contrôlent, les pirates ont la capacité d’intercepter des requêtes HTTP destinées à n’importe quel hôte.
Autre technique observée dans au moins une attaque récente visant les Mac, les pirates ont pu forcer macOS à télécharger et installer une extension pour Chrome. Nommée RELOADEXT, elle se déguise en extension authentique ayant pour mission de rendre le navigateur compatible avec des pages web conçues pour Internet Explorer. Selon Volexity, l’extension est installée après l’exploitation initiale. Son véritable but est de récupérer l’intégralité des cookies et de les envoyer sur un compte Google Drive tenu par les pirates.
Dans tous les cas, Volexity dit confirmer l’hypothèse initiale d’ESET sur le vecteur d’infection de POCOSTICK : il s’agissait bien d’attaques par l’homme du milieu. Toujours selon la société de sécurité, des attaques similaires sont en cours ailleurs, là encore sans plus de détails sur les infrastructures touchées ou leur pays de résidence.
Volexity ajoute qu’il est difficile actuellement de savoir si elles sont menées depuis des équipements contaminés chez d’autres fournisseurs d’accès ou dans les structures elles-mêmes. Selon les indices collectés ces dernières années, il semble que StormBamboo privilégie les attaques indirectes, mais la méthode n’est pas systématique.
Commentaires (15)
#1
#2
#2.1
Et ça existe encore trop, malheureusement
#3
Je ne comprends pas cette partie.
Si j'indique utiliser le DNS de 1.1.1.1, pourquoi il ferait appel à un autre DNS ?
#3.1
C'est globalement des attaques Man In the Middle.
#3.2
Merci pour la précision.
#4
C'est totalement hallucinant !? ces soft sont extrêmement vulnérables, une simple mise à jour depuis un hotspot d'hôtel par exemple, et tu te retrouves à lancer une màj en admin sans savoir ce qu'il y'a dedans ! C'est quand même assez simple d'ajouter un "s" à HTTP pour que la procédure de màj soit sécurisée à minima !
C'est là qu'on voit le retard de Windows : ce type d'attaque ne peut pas arriver sous Linux les màj sont centralisés par le gestionnaire de paquets qui se charge de contrôler la légitimité des sources.
C'est transparent pour les dev de soft, et ça simplifie la vie des utilisateurs qui n'ont qu'un process de m-à-j pour tout le système (OS, pilote, firmware et logiciels)
Côté windows on a une alpha de winget complètement inutilisable, un store déconnecté de son OS, un windows update qui ne voit que l'OS et parfois quelques drivers, et chaque dev de logiciel / drivers qui fait à sa sauce avec parfois des solutions de mise à jour auto +/- sécurisées.
Historique des modifications :
Posté le 11/08/2024 à 10h54
"ces processus de mises à jour n’utilisent ni TLS ni de signature cryptographique."
C'est totalement hallucinant !? ces soft sont extrêmement vulnérables, une simple mise à jour depuis un hotspot d'hôtel par exemple, et tu te retrouves à lancer une màj en admin sans savoir ce qu'il y'a dedans ! C'est quand même assez simple d'ajouter un "s" à HTTP pour que la procédure de màj soit sécurisée à minima !
C'est là qu'on voit le retard de Windows : ce type d'attaque ne peut pas arriver sous Linux les màj sont centralisés par le gestionnaire de paquets qui se charge de contrôler la légitimité des sources.
C'est transparent pour les dev de soft, et ça simplifie la vie des utilisateurs qui n'ont qu'un process de m-à-j pour tout le système (OS, pilote, firmware et logiciels)
Côté windows on a une alpha de winget complètement inutilisable, un store déconnecté de son OS, un windows update qui ne voit que l'OS et parfois quelques drivers, et chaque dev de logiciel / drivers qui fait à sa sauce avec parfois des solutions de mise à jour auto +/- sécurisée.
#4.1
Pour winget, je l'utilise tous les jours, c'est fonctionnel. On est pas sur de l'alpha.
Puis ce n'est pas Windows le problème ici mais les développeurs qui sont derrière les logiciels en question.
#4.2
Winget est, lui aussi, isolé dans son coin : il ne voit pas les apps du store, il ne voit pas les apps installées normalement à la main, il ne voit pas non plus ni les mises à jour d'OS, ni les mises à jour de pilotes, il arrive même à perdre de vue les applis installées depuis lui-même, quand celles-ci ont entrepris une mise à jour de leur propre chef.
Ce n'est pas un problème des développeurs qui arrivent très bien à gérer un magasin sous tout autre OS (Linux, Android, iOS, Mac) le problème vient de Windows qui ne propose pas de magasin unifié (il y'a 3 outils Microsoft officiels, tous incompatibles entre eux, de déploiement de mises à jour : Windows Update, Microsoft Store et WinGet)
Historique des modifications :
Posté le 13/08/2024 à 13h57
Le store ne propose pas de mise à jour de l'OS, pas de mise à jour de drivers pas de mises à jour des installations faites en dehors du store, le store ne propose qu'une infime partie des applis dispos, dont une grande partie de parasites qui vendent sans-plus-value des versions payantes d'applis open-source (ex:7zip).
Winget est, lui aussi, isolé dans son coin : il ne voit pas les apps du store, il ne voit pas les apps installées normalement à la main, il ne voit pas non plus ni les mises à jour d'OS, ni les mises à jour de pilotes, il arrive même à perdre de vue les applis installées depuis lui-même, quand celles-ci ont entrepris une mise à jour de leur propre chef.
Ce n'est pas un problème des dévellopeurs qui arrivent très bien à gérer un magasin sous tout autre OS (Linux, Android, iOS, Mac) le problème vient de Windows qui ne propose pas de magasin unifié (il y'a 3 outils Microsoft officiels, tous incompatibles entre eux, de déploiement de mises à jour : Windows Update, Microsoft Store et WinGet)
#4.3
Windows Update, c'est pour le système d'exploitation. L'utilisateur n'a que peu de contrôle dessus, notamment sur l'application des mises à jour. Il ne gère que le système d'exploitation et éventuellement quelques produits microsoft.
Window Store, son objectif initial était d'être comme le Play Store ou l'AppStore. Un magasin d'application spécifique UWP, et multiplateforme (Ordinateur, Tablette, XBox, ...). Magasin qui n'est pas limité aux applications. On y trouve aussi des films, et auparavant, des livres et des musiques (mais ce n'est plus le cas aujourd'hui).
WinGet, c'est ce qui se rapproche le plus d'un gestionnaire de paquet sous Linux. Contrairement à ce que tu dis, il gère très bien les paquets installés en dehors de lui-même et qui sont disponibles via la fonctionnalité "classiques" de gestion des programmes. Et depuis récemment (la version 1.8), il gère également les applications installées via le store. Son usage en ligne de commande en fait une solution plutôt pour les administrateurs et autres afficionados du CLI.
Chaque solution répond à un besoin particulier. Windows Update et WinGet ne s'occupe pas de l'achat d'un logiciel par exemple (pour ça, le plus simple reste le Store). Windows Update gère les mises à jour en automatique. Le Store aussi normalement. WinGet, c'est du manuel (comme sous Linux) plutôt orienté utilisateur avancés.
Winget pourra te dire les paquets qui ont des mises à jour. Il pourra parfois les installer, parfois non (mais dans un sens, c'est normal, car Winget peut trouver les mises à jour d'applications non prévues pour être gérées par Winget).
#4.4
Tout arrive par le magasin centralisé : pilotes, mises à jour de sécurité, ou d'app.
Les mises à jour d'OS passent par un canal différent sur les tels.
Pour Mac je n'en ai pas, mais j'imagine que c'est le même principe depuis un moment.
Du coup c'est bien Microsoft qui fait 3x la même chose sans réussite, il suffirait de copier ce qui fonctionne ailleurs depuis un quart de siècle !
À une époque Windows Update a essayé de s'élargir et Microsoft Update proposait des mises à jour d'Office, de drivers en plus de Windows, ça a été abandonné : Update se contente de Windows, et downgrade de temps à autre des pilotes qui étaient déjà à jour :'(
Le store n'a jamais géré autre chose qu'UWP, c'est un choix de Microsoft pour pousser aux forceps son interface pour gros doigts sous l'ère Windows 8.
WinGet semble évolué dans le bon sens, mais y'a encore manifestement du chemin à parcourir...
Si Microsoft avait une réelle stratégie, le support des apps classique aurait été ajouté à Store, et Winget ne serait qu'une interface en ligne de commande de Store (ou l'inverse : Winget centraliserait tout et store ne serait plus qu'une interface graphique basée sur winget)
#4.5
Les mises à jour d'OS passent par un canal différent sur les tels.
Faut savoir. Un seul canal ou plusieurs ?
Ben non. Ca fonctionne encore. Tu parles sans savoir.
Une fois encore, tu parles sans savoir. Ca fait bien longtemps que le Microsoft Store n'est plus limité aux applications UWP. Tu peux y installer des applications natives depuis belle lurette (Firefox, Gimp, ...) et même Ubuntu via WSL.
Il y a surtout que tu devrais te mettre à jour, plutôt que de dénigrer sans savoir. Ton discours antédiluvien est digne d'un linuxien enchainant les énormités mensongères, dans le simple but de pouvoir cracher sur Windows simplement parce que c'est Windows.
#5
#5.1
#5.2
Peut-être que le matériel compromis n'était utilisé que pour les requêtes DNS.
Historique des modifications :
Posté le 12/08/2024 à 14h17
Vu que les updates des logiciels ciblés se faisaient via du bête http, je comprends même pas pourquoi ils se sont fait chier à modifier les réponses des requêtes DNS plutôt que juste router les requêtes des serveurs cibles vers leurs propres serveurs, c'est nettement moins visible par la victime.
Peut-être que le matériel compromis n'était utilisé que pour les requêtes DNS.