Ransom32 : le premier ransomware JavaScript
Il est capable de s'exécuter sur Windows, Linux et Mac OS X

Le , par Michael Guilloux

21PARTAGES

7  0 
Ransom32 est une nouvelle famille de ransomwares découverte par des chercheurs de la firme de sécurité Emsisoft. Annoncé comme le tout premier de son genre à utiliser JavaScript pour son code source, ce demandeur de rançon a été codé via le framework NW.js, anciennement appelé Node-WebKit.

NW.js permet aux développeurs de créer des applications de bureau pour Windows, Linux et Mac OS X à l’aide de JavaScript. Il est basé sur les projets Node.js et Chromium et utilise une version allégée de WebKit, le moteur de rendu utilisé dans Chrome, Safari et Opera. Si les navigateurs limitent l’interaction du code JavaScript avec le système d’exploitation sous-jacent, une des particularités de la plateforme NW.js est qu’elle supprime ces limites et offre ainsi aux développeurs beaucoup plus de contrôle et d’interaction avec le système d’exploitation. Si une application NW.js n'a besoin d’être écrite qu’une fois pour être immédiatement utilisable sur Windows, Linux et Mac OS X, pour l’heure, seuls les PC Windows semblent avoir été infectés par le ransomware.

Comme de nombreuses menaces, Ransom32 est généralement distribué via des campagnes de spam. Le fichier malveillant est dès lors joint à des courriels mentionnant des factures impayées ou des notifications de livraison entre autres. Le malware fonctionne comme un Ransomware as a Service (RaaS) et est distribué par des acteurs intermédiaires qui s’abonnement sur une plateforme gérée dans le réseau Tor. Ce service permet à n’importe quel amateur de distribuer la menace après avoir configuré sa propre version personnalisée du ransomware. Tout ce qu’il faut pour s’inscrire et devenir distributeur, c’est de fournir une adresse Bitcoin sur laquelle les fonds générés doivent être versés. Après chaque paiement effectué par une victime, les fonds sont transférés sur le compte des auteurs du malware. Ces derniers récupèrent dès lors une commission de 25 % avant de reverser le reste de l’argent aux distributeurs.

À l’inscription, les futurs distributeurs du ransomware accèdent à une page d’administration où ils pourront effectuer quelques configurations. Cette page livre diverses statistiques, comme le nombre de personnes qui ont déjà payé ou le nombre de systèmes qui ont été infectés. Là, ces derniers pourront configurer le malware (verrouiller complètement l’ordinateur, faible utilisation du CPU, etc.), mais aussi définir le nombre de bitcoins à payer par la victime. Une fois cette phase terminée, ils peuvent alors télécharger leur ransomware qui a une taille remarquable de 22 Mo.


Si en général, la taille de ces logiciels malveillants n’excède pas 1 Mo, ce cas atypique ici ne signifie pas pour autant qu’il s’agit de l’œuvre d’un amateur, précise Fabian Wosar de la firme de sécurité. Ce dernier loue plutôt la qualité du chiffrement utilisé par Ransom32, qu’il compare au CryptoLocker original. Si Fabian a pu « casser » de nombreuses familles de ransomware dans le passé, il dit que cette nouvelle variante est actuellement indéchiffrable.

En ce qui concerne la charge utile du ransomware, il s’agit d’une archive WinRAR auto-extractible qui contient apparemment tout ce qu’il faut pour aider le malware à compromettre l’ordinateur de l’utilisateur. L’archive contient une copie de l’accord de licence GPL, mais aussi un fichier « Chrome.exe » qui est en fait une application NW.js packagée. Cette application contient le code malveillant ainsi que le framework nécessaire pour faire fonctionner le logiciel malveillant. Ce qui signifie que Ransom32 ne compte sur aucun framework existant sur la machine de l’utilisateur. Entre autres fichiers, on trouve dans l’archive un petit script qui énumère, et supprime tous les fichiers et dossiers dans un répertoire donné. Le fichier WinRAR comprend aussi les informations relatives à la configuration du malware.

Une fois que Ransom32 est exécuté, il extrait donc tous ces fichiers dans le dossier de fichiers temporaires et crée un raccourci dans un dossier Démarrage de l’utilisateur pour s’assurer que le malware soit exécuté à chaque démarrage. Il peut alors commencer à chiffrer les fichiers de l’utilisateur et il est demandé à la victime de payer une rançon dans un délai au risque de voir la rançon augmenter ou la clé de déchiffrement détruite.


Lors du chiffrement des fichiers de l’utilisateur, une large variété d’extensions est ciblée, mais des fichiers dans certains répertoires peuvent toutefois être ignorés. Il s’agit de ceux qui sont situés dans un répertoire qui contient l’une des chaînes :\windows\, :\winnt\, programdata\, boot\, temp\, tmp\ et $recycle.bin\. Plus de détails techniques sont fournis sur le blog de la firme de sécurité.

Source : Blog Emsisoft

Et vous ?

Qu’en pensez-vous ?

Voir aussi

Un ransomware mal programmé devient incapable de déchiffrer les données des victimes après le paiement de la rançon

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de imikado
Rédacteur https://www.developpez.com
Le 04/01/2016 à 13:57
Le titre est un peu trompeur, on se retrouve avec une application de ransomware au final

Le fait qu'il soit codé en Js est aussi important ici que si il avait été écrit en c#, c++ and co: au final une archive auto ex-tractable contenant un .exe
Avatar de abriotde
Membre éprouvé https://www.developpez.com
Le 04/01/2016 à 16:54
Non, c'est important le fait que ce soit du Javascript car cela a de nombreuses implication :
1) Le langage est multiplate-forme (A condition d'en tenir compte a la programmation) contrairement à C/C++ et bien d'autres. Il n'est pas le seul, Java, C#, PHP existent mais dépendent plus d'un framework qui doit être installé alors que Javascript est lu sur tout les PC (Internet oblige).
2) Le programme est lourd (22Mo) et haut niveau, il n'a donc pas aisément accès aux failles bas niveau. Jusqu'ici ces défaut étaient assez rédibitoire, ils se sont considérablement réduits.
3) Surtout cela prouve une maturité/fiabilité du langage Javascript.
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 04/01/2016 à 17:33
Citation Envoyé par abriotde Voir le message
Non, c'est important le fait que ce soit du Javascript car cela a de nombreuses implication :
1) Le langage est multiplate-forme
Oui mais en fait non. Si JS est multi-plateforme, d'après ce que j'ai compris il arrive sous la forme d'un exe. Donc peu de gens sous Linux/Mac s'amuseront à l'ouvrir a priori. Le côté multiplateforme est mis à bas du fait du packaging.
Avatar de AoCannaille
Membre émérite https://www.developpez.com
Le 04/01/2016 à 17:43
Citation Envoyé par abriotde Voir le message
Le langage est multiplate-forme (A condition d'en tenir compte a la programmation) contrairement à C/C++ et bien d'autres. Il n'est pas le seul, Java, C#, PHP existent mais dépendent plus d'un framework qui doit être installé alors que Javascript est lu sur tout les PC (Internet oblige).
C'est marrant, j'aurais fait le constat exactement inverse. Seul C/C++ fonctionne seul sans installation supplémentaire en étant multiplateforme si on reste dans la STD et qu'on bidouille pas trop profond dans les fonctions systèmes.
Javascript a besoin d'un navigateur, java/C# d'une machine virtuelle, PHP d'un interpréteur...
Avatar de Sytten
Membre régulier https://www.developpez.com
Le 04/01/2016 à 18:00
Pour avoir utilisé NW.js je peux dire que changer de plateforme est très simple avec ce framework. Donc on pourrait très prochainement voir ce soft arriver sur linux sous forme d'un .deb/.rpm ou sur mac sous form d'un .dmg...
Littéralement il s'agit juste de le build pour une autre plateforme et ça télécharge tout ce qui est nécessaire tout seul...
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 04/01/2016 à 20:06
Avec un JAR t'as pas besoin de savoir quel OS a ta cible. Ça c'est du vrai multiplateforme.
Avatar de codec_abc
Membre averti https://www.developpez.com
Le 04/01/2016 à 20:21
C'est marrant, j'aurais fait le constat exactement inverse. Seul C/C++ fonctionne seul sans installation supplémentaire en étant multiplateforme si on reste dans la STD et qu'on bidouille pas trop profond dans les fonctions systèmes.
Javascript a besoin d'un navigateur, java/C# d'une machine virtuelle, PHP d'un interpréteur...
Le concept de multiplateforme en C++ est plus lié au code qu'a la sortie généré. Or 99% du temps un compilo C++ ca produit des binaires qui seront dépendant de l'OS et du CPU.

Avec un JAR t'as pas besoin de savoir quel OS a ta cible. Ça c'est du vrai multiplateforme.
Oui mais bon pour exécuter un JAR il faut encore avoir Java d'installé sur son PC. C'est pas le cas de tout le monde (en tout cas pas de moi)

Non, c'est important le fait que ce soit du Javascript car cela a de nombreuses implication :
1) Le langage est multiplate-forme (A condition d'en tenir compte a la programmation) contrairement à C/C++ et bien d'autres. Il n'est pas le seul, Java, C#, PHP existent mais dépendent plus d'un framework qui doit être installé alors que Javascript est lu sur tout les PC (Internet oblige).
NW.js c'est plus ou moins Chrome avec Node.js packagé dedans. Donc c'est pas en soit plus multiplateforme que Java. Si tu veux que tes scripts fonctionnent sous Windows, Linux et Mac OS X il te faut packager les binaires de NW.js de tous ces OS. Et ca ne fonctionnera pas sous Android et iOS.
Avatar de imikado
Rédacteur https://www.developpez.com
Le 04/01/2016 à 20:33
Citation Envoyé par Sytten Voir le message
Pour avoir utilisé NW.js je peux dire que changer de plateforme est très simple avec ce framework. Donc on pourrait très prochainement voir ce soft arriver sur linux sous forme d'un .deb/.rpm ou sur mac sous form d'un .dmg...
Littéralement il s'agit juste de le build pour une autre plateforme et ça télécharge tout ce qui est nécessaire tout seul...
Oui mais non: sous GNU/Linux, on demande un mot de passe pour installer un logiciel
Avatar de AoCannaille
Membre émérite https://www.developpez.com
Le 05/01/2016 à 9:39
Citation Envoyé par imikado Voir le message
Oui mais non: sous GNU/Linux, on demande un mot de passe pour installer un logiciel
Sauf si t'es déjà en root
Sauf si la vrai partie malware est portable (dans le sens utilisable sans installation : unzip & run) et/ou qu'elle est téléchargée après coup
Avatar de imikado
Rédacteur https://www.developpez.com
Le 05/01/2016 à 10:30
Citation Envoyé par AoCannaille Voir le message
Sauf si t'es déjà en root
Sauf si la vrai partie malware est portable (dans le sens utilisable sans installation : unzip & run) et/ou qu'elle est téléchargée après coup
1. personne n'utilise sont poste desktop en root (on est pas sous windows)
2. il faudrait qu'il soit executable ce qui n'est pas le cas pour tout fichier téléchargé

Pour info/rappel la premiere chose à faire manuellement lorsque qu'on télécharge un .sh sous GNU/LInux c'est de lui donner le droit d’exécution pour pouvoir l’exécuter
GNU/Linux != Windows sur la sécurité, la gestion des droits ..

Je mets en garde par exemple pour mon framework:

On télécharge l'archive web, on se rend dessus via le navigateur et
Sous windows: le générateur a le droit d'écrire dans le sous répertoire (pas logique: utilisateur desktop qui a téléchargé!=utilisateur du serveur web)
Sous GNU/LInux/MacOSX l'application web n'a pas le droit d'écrire dans ses sous repertoires (logique) il faut lui donner les droits explicitement
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web