Rechercher
Contactez-nous Suivez-nous sur Twitter En francais English Language
 

Abonnez-vous gratuitement à notre NEWSLETTER

Newsletter FR

Newsletter EN

Vulnérabilités

Se désabonner

Renaud Tabary, LEXSI : Cryptofortress

mars 2015 par Renaud Tabary, expert en cybersécurité chez LEXSI

Le 2 mars 2015, des signes d’un nouveau malware nommé “CryptoFortress” sont apparus sur internet. Des utilisateurs infectés se sont retrouvés avec une partie de leur fichier chiffré portant désormais l’extension “.frtrss” [1]. Le chercheur spécialisé dans l’analyse de malware Kafeine a également fait mention de ce nouveau malware qui semble actuellement être distribué sur internet via des exploit kits [2].

La demande de rançon

La page de paiement

Par sa page de demande de rançon et les fonctions cryptographiques utilisées, ce nouveau ransomware semble se rapprocher de la famille TorrentLocker/Teerac.a, bien que disposant de moins de fonctionnalités que son aîné. Voici quelques points clés de ce nouveau malware :

_ ? Chiffrement des fichiers offline (pas de contact avec un centre de commande) en utilisant une clé aléatoire unique AES 256 en mode ECB
_ ? La clé AES de chiffrement des fichiers est sauvegardée localement dans les fichiers .html de demande de rançon, chiffrée à l’aide d’une clé publique RSA 1024 accompagnant le malware
_ ? Le malware chiffre les fichiers des disques locaux, des disques montés ainsi que des partages réseaux
_ ? Le serveur de paiement de rançon est situé dans le réseau Tor
_ ? Les « volume shadow copies » sont supprimés par le malware, les fichiers sont chiffrés sur place
_ ? Le comportement du malware est piloté par une ressource nommée « cfg »

Aperçu du binaire – un TorrentLocker allégé

L’exemplaire du malware que nous avons pu récupérer mercredi est de taille modeste (environ 100 ko) et semble avoir été compilé le 27 février 2015. Comme il est désormais coutume, le malware est obfusqué/packé. Après avoir passé la première couche d’obfuscation, le malware original apparaît immédiatement en clair. C’est un exécutable PE 32 bits de 32 ko qui semble avoir été compilé le 26 février 2015, ce qui semble indiquer que cette souche est plutôt récente.

Une fois lancé, le malware va immédiatement chiffrer les fichiers présents sur les disques locaux, les disques montés ainsi que les partages réseau. Contrairement à TorrentLocker, aucune connexion à un centre de commande n’est effectuée par le malware durant ce processus. Les fichiers sont chiffrés en AES 256 et se voient ajouter l’extension « .frtrss ». Dans chaque répertoire où des fichiers ont été chiffrés, un fichier HTML nommé « READ IF YOU WANT YOUR FILES BACK.html » est déposé. Il contient les instructions pour déchiffrer les fichiers, ainsi qu’un code de chiffrement inclus dans le paramètre « code » des liens que nous détaillerons plus loin.

A noter que le malware n’inclut pas la fonctionnalité de vol de mot de passe qui était présente dans TorrentLocker.

A la fin du processus de chiffrement, une des pages HTML de rançon est affichée dans le navigateur web. Le lien pour payer la rançon pointe vers un site web hébergé dans le réseau Tor, comme c’était le cas pour TorrentLocker.

La configuration

Le malware stocke sa configuration dans une ressource RCDATA nommée « cfg ». Une analyse rapide du code nous informe que cette ressource débute par une clé de 16 octets, suivie du contenu de la configuration chiffrée (XOR) avec cette clé. La configuration en claire est encodée en binaire, une analyse plus approfondie du code permet de retrouver son format :

Voici la liste des extensions ciblées par l’exemplaire du malware que nous avons analysé :

Le processus de chiffrement

Le chiffrement des fichiers est relativement simple. Le malware commence par générer une clé aléatoire AES 256 en mode ECB (qui servira à chiffrer les fichiers), à l’aide des APIs de cryptographie de Windows. Cette clé est unique pour l’instance du malware, tous les fichiers chiffrés par cette instance le seront donc par cette même clé. Le malware va ensuite récupérer quelques informations sur le système comme :
_ ? L’heure courante
_ ? La place libre et occupée des disques sur le système
_ ? Le nombre de disques présents sur le système
_ ? La résolution de l’écran

Le malware va par la suite concaténer ces informations (la clé AES de chiffrement et les informations système) et les chiffrer à l’aide de la clé RSA 1024 bits présente dans sa configuration. Le résultat de cette opération est le code de chiffrement qui sera inclus dans les fichiers HTML de demande de rançon et donc envoyé (encodé hexa) au site Tor dans le paramètre « code » de l’url pour le paiement de la rançon et la récupération du déchiffreur.

Génération de la clé de chiffrement des fichiers

Une fois le code de chiffrement généré, le malware va chiffrer les fichiers sur les disques locaux, les disques montés et les partages réseau en parallèle, un thread par point de montage. Les fichiers de taille inférieure à 16 octets ou supérieure à la limite spécifiée dans la configuration seront ignorés. Les fichiers déjà chiffrés ou ceux localisés dans des répertoires système sont également ignorés.

Chiffrement des fichiers

Les fichiers sont chiffrés sur place via les APIs cryptographiques Windows à l’aide de la clé AES 256. A la fin de chaque fichier, 12 octets sont ajoutés par le malware :

Une fois chiffré, l’extension spécifiée dans la configuration est ajoutée au nom du fichier puis les dates originales de modification et d’accès au fichier sont rétablies. Dans chaque répertoire où un chiffrement a eu lieu, le malware écrit un fichier HTML de demande de rançon dont le nom et le contenu est également spécifié dans la configuration (voir illustration 1).

Récupérer ses fichiers

Étant donné qu’une clé unique est utilisée pour chiffrer tous les fichiers, il est en théorie possible, si tant est que le processus de chiffrement soit encore en cours à cet instant, d’extraire la clé de chiffrement des fichiers depuis un instantané mémoire du processus du malware.

Malheureusement, le malware se termine sitôt le chiffrement fini, libérant par la même occasion la mémoire contenant la clé AES. Si la mémoire n’a pas été réallouée entre temps, il est possible de récupérer la clé en mémoire immédiatement après l’infection via un snapshot de la mémoire physique de l’ordinateur. Autrement, le seul moyen de récupérer la clé restant est de casser la clé RSA 1024bits.

Comme toujours, les protections les plus efficaces contre ces attaques par ransomware [4] passent par l’éducation des utilisateurs et la capacité de leur fournir les techniques permettant d’anticiper et de détecter ces menaces.
Si vous avez été victime d’une attaque de ce type, contactez rapidement une équipe d’expert de réponse à incident qui peut vous aider à riposter.


Références
[1] http://forum.malekal.com/virus-cryptofortress-t50970.html
[2] http://malware.dontneedcoffee.com/2015/03/cryptofortress-teeraca-aka.html
[3] sha256 : cdf62c1b6ea7653e73bce7ad8bf6fb7a8de6ba27be5c71e50126c48c57085d6e
[4] http://www.lexsi-leblog.fr/cert/analyse-dun-ransomware-cryptolocker.html


Voir les articles précédents

    

Voir les articles suivants