Coup de projecteur sur les rançongiciels : les modes de chiffrement

Coup de projecteur sur les rançongiciels : les modes de chiffrement

ransomware_encryption_methods_banner

Le vent de panique provoqué par WannaCry a soulevé de nombreuses questions sur la façon dont les rançongiciels fonctionnent et comment agir/réagir face à eux. Comment arrivent-ils à s’infiltrer dans un système ? Comment agissent-ils une fois dedans ? La série Coup de projecteurs sur les rançongiciels explore les différentes étapes d’une attaque de rançongiciels, cette semaine nous nous penchons sur les modes de chiffrement.

Se faire infecter par un rançongiciel est l’un des moyens les plus radicaux de voir tous ses fichiers personnels se faire chiffrer. En outre, l’espoir de les revoir en clair un jour est très faible. Quand un cybercriminel décide de chiffrer des données, sa menace devient tout de suite crédible. En chiffrant vos fichiers, les auteurs malveillants en prennent le contrôle à votre plus grand désarroi. Les modes de chiffrement employés devenant plus sophistiqués chaque jour, les bons samaritains concoctant de savants déchiffreurs ont bien du mal à proposer leur aide gratuitement.

Découvrez dans cet article en quoi consiste le chiffrement de fichiers, quels sont les différents modes utilisés par les développeurs de rançongiciels, et pourquoi comprendre le chiffrement est primordial pour ceux désireux d’aider les victimes à récupérer leurs fichiers.

Avant de nous plonger au cœur du sujet, si vous ne savez pas exactement comment les rançongiciels s’infiltrent dans un système et leur manière d’opérer une fois infiltrés, commencez par lire ceci.

Quelques mots sur la cryptographie et la cryptanalyse

La cryptographie (du grec : écriture cachée ou secrète) est la pratique de techniques qui empêchent des tiers, ou le grand public, de lire des messages privés. Elle a recours à des modes de chiffrement pour rendre le texte en clair (les données non chiffrées) illisible (les données chiffrées) afin que personne d’autre que le destinataire possédant la clé de déchiffrement ne puisse accéder au contenu du message.

La cryptographie a 4 objectifs principaux :

  • La confidentialité : seul le destinataire prévu peut comprendre le message
  • L’intégrité : le message ne peut être modifié sans que la manipulation ne soit détectée
  • La non-répudiation: l’expéditeur ne peut nier son intention en créant le message, et
  • L’authentification : l’expéditeur et le destinataire peuvent s’assurer qu’ils communiquent bien l’un avec l’autre, et personne d’autre.

La cryptographie moderne se trouve au croisement de trois disciplines : les mathématiques, l’informatique et l’électrotechnique. Elle possède de vastes applications, notamment dans les domaines liés aux communications militaires, au commerce électronique, aux cartes bancaires et aux mots de passe informatiques. En un mot, elle est utilisée chaque fois qu’il est impératif de sécuriser une communication.

La cryptanalyse, c’est-à-dire l’étude des systèmes cryptographiques dans le but de trouver des faiblesses et de récupérer le contenu des messages chiffrés, a évolué parallèlement à la cryptographie. Bien que le mot ait été inventé dans les années 1920, les pratiques de décodage et de déchiffrement remontent au IXe siècle. La cryptanalyse a joué un rôle décisif pendant la seconde guerre mondiale lors du déchiffrement des communications allemandes sécurisées par les machines Enigma, dont autant l’expéditeur du message que son destinataire utilisaient une clé symétrique non chiffrée.

Depuis lors, l’émergence et la croissance spectaculaire de la puissance informatique ont permis d’élaborer des modes de chiffrement toujours plus complexes qui ne sont pas seulement utilisées par les entreprises pour sécuriser vos messages électroniques et le trafic Web, mais aussi par les cybercriminels, malheureusement, pour prendre en otage vos fichiers.

Modes de chiffrement : symétrique et asymétrique

Les modes de chiffrement sont devenues incroyablement complexes comparativement aux premières substitutions chiffrées utilisées par Jules César, où les lettres en texte clair étaient simplement remplacées par d’autres lettres, décalées vers l’avant ou l’arrière d’un nombre fixe de positions le long de l’alphabet.

 

Diagramme-Chiffrement de César

Étant donné que la structure du texte en clair est identique à celle du message chiffré, il est facile d’en repérer les motifs en utilisant l’analyse de fréquence, et d’ainsi identifier la fréquence et la séquence dans laquelle les caractères apparaissent.

Chiffrement symétrique : rapide mais peu sûr

Pourtant, le chiffrement ci-dessus est un exemple simple de la façon dont le chiffrement symétrique fonctionne : l’expéditeur et le destinataire déplacent tous deux les lettres du même nombre fixe de positions. Ce nombre de positions est ce qu’on appelle la “clé”. Il est donc impératif que la clé soit gardée secrète, de sorte que le chiffrement symétrique est souvent appelé “chiffrement par clés secrètes”.

 

symmetric_encryption_graphic_fr

Il existe deux principaux types de chiffrement symétrique : le chiffrement par bloc et le chiffrement de flux

Comme son nom l’indique, les chiffrements par blocs fonctionnent en chiffrant par blocs un certain nombre d’octets par le biais de la même clé. Le message lui-même est réparti en plusieurs blocs selon la longueur. Ensuite, des données prévisibles sont ajoutées en fin de bloc pour le compléter, via un processus connu en cryptographie sous le nom de remplissage ou bourrage. Les types de chiffrement par blocs les plus courants sont AES et Blowfish ; le premier est souvent utilisé dans le chiffrement des rançongiciels (plus à ce sujet dans l’article).

Les chiffrements de flux, d’autre part, chiffrent chaque caractère du texte en clair en une seule fois (généralement sous la forme d’un bit), par le biais d’un flux de clés pseudo-aléatoires. Cela signifie qu’une clé différente de flux est utilisée pour chacun des bits. Un opérateur mathématique “exclusif ou” (XOR, pour abréger) combine les deux pour créer le texte chiffré. Citons parmi les types de chiffrements de flux couramment utilisés RC4 et Salsa20.

Ces modes de chiffrement symétrique se caractérisent par des exigences de calcul peu élevées. En outre, ils utilisent une seule clé pour le chiffrement et le déchiffrement du message.

Ce dernier point soulève une question importante : comment communiquer secrètement la clé sans qu’aucune tierce partie n’en ait vent ?

Chiffrement asymétrique : sûr mais lent

Le chiffrement asymétrique, également connu sous le nom de chiffrement à clé publique, est une solution intéressante car il utilise une paire de clés, une publique, l’autre privée.

La clé publique peut être distribuée à un large public, tandis que la clé privée est destinée à n’être partagée qu’avec le détenteur de la paire de clés. Les messages chiffrés avec la clé publique ne peuvent être déchiffrés que par la clé privée, tandis que les messages chiffrés avec la clé privée ne peuvent être déchiffrés que par la clé publique.

asymmetric_encryption_graphic_fr

En conséquence, les algorithmes de chiffrement asymétrique vous permettent non seulement de chiffrer et déchiffrer des messages, mais ils permettent également d’authentifier les messages, car seul le détenteur de clé privée est en mesure de créer un message déchiffrable par la clé publique.

À l’origine de la majorité des systèmes de chiffrement asymétrique, nous retrouvons habituellement un algorithme reposant sur des calculs informatiques complexes. Les plus utilisés actuellement sont Diffie-Hellman-Merkle, RSA et Elliptic Curve Cryptography. Expliquer le fonctionnement de chacun d’entre eux n’entre pas dans le cadre de cette article. Toutefois, si vous désirez vraiment en savoir davantage et vous plonger dans les entrailles de ces modes de chiffrement, consulter l’article détaillé en anglais sur ArsTechnica.

En un mot, le chiffrement asymétrique permet de chiffrer un texte de manière relativement sécurisée sans devoir partager de clé secrète ; cependant, la nature complexe des calculs informatiques nécessaires fait que ce mode ne convient pas aux grands ensembles de données.

Étant donné que les deux types de chiffrement ont leurs propres avantages et inconvénients, la plupart des implémentations (notamment par les auteurs de rançongiciels) utiliseront une combinaison des deux : un chiffrement symétrique avec une clé générée aléatoirement, habituellement appelée clé de session, pour chiffrer les messages ou fichiers réels, et un algorithme asymétrique pour chiffrer la clé de session utilisée.

INFOBOX: Glossaire des termes communément utilisés en cryptologie

Message : les données que vous souhaitez protéger par chiffrement, il peut s’agir aussi bien d’un texte, c’est-à-dire un message réel, ou d’un fichier

Texte en clair : message non chiffré

Texte chiffré : message chiffré

Clé : composant utilisé par un algorithme de chiffrement pour convertir un texte en clair en un texte chiffré, et vice versa.

Chiffrement par bloc : chiffrement symétrique par blocs d’octets.

Chiffrement de flux : utilisation d’un flux de clé pour chiffrer un bit à la fois.

Chiffrement par clé symétrique (secrète) : la même clé est utilisée pour le chiffrement et le déchiffrement d’un message.

Chiffrement par clé asymétrique (publique) : différentes clés sont utilisées pour le chiffrement et le déchiffrement d’un message.

Comment les auteurs de rançongiciels utilisent le chiffrement : CryptoLocker

Pour voir comment les auteurs de logiciels malveillants utilisent le chiffrement à des fins malveillantes, penchons-nous un instant sur la famille de rançongiciels si prolifique et répandue que son nom, aujourd’hui encore, est étroitement associé à tous les rançongiciels : CryptoLocker.

CryptoLocker n’était certainement pas le premier rançongiciel à chiffrer des fichiers, cependant il fait définitivement partie de la première famille de ce type à captiver en masse les médias. Il utilise le chiffrement symétrique AES 256 bit pour chiffrer le fichier réel, et un chiffrement asymétrique RSA pour communiquer et sécuriser la clé de session symétrique.

Sans surprise, la façon dont CryptoLocker fonctionne est devenue un modèle pour plusieurs autres familles de rançongiciel qui sont apparues plus tard sur le marché, ce qui en fait une étude de cas idéale pour vous montrer comment le chiffrement est utilisé pour verrouiller vos fichiers.

  1. Création de communications sécurisées

Quand il arrive à pénétrer dans un système, CryptoLocker ne comporte rien de plus qu’une clé publique RSA (= asymétrique), utilisée par le rançongiciel pour établir un canal sécurisé sur son serveur de commande et de contrôle. Il gère toute la communication entre lui-même et le serveur de l’auteur des logiciels malveillants via cet canal. L’utilisation du chiffrement par clé publique comporte deux avantages majeurs dans ce cas :

  1. Tout tierce partie consultant les communications sur le réseau ne pourra pas voir les messages texte en clair échangés entre CryptoLocker et son serveur. Tout ce qu’un analyste en logiciels malveillants verra quand il essaiera de comprendre le protocole en analysant le trafic réseau est beaucoup de charabia.. .chiffré.
  2. Plus important cependant, les auteurs de logiciels malveillants ne cachent pas seulement leurs messages à la vue des regards indiscrets, mais ils s’assurent que le serveur auquel le rançongiciel parle appartient également aux auteurs des logiciels malveillants.

Gardez à l’esprit que toute clé publique déchiffre uniquement les messages qui ont été chiffrés par la clé privée correspondante, à laquelle n’a accès que l’auteur des logiciels malveillants.

En conséquence, le chiffrement des communications par RSA assure non seulement que le secret est bien gardé, mais il garantit également l’authenticité des protagonistes. De cette façon, tout organisme d’application de la loi s’emparant des domaines de commande et de contrôle ne pourra pas simplement prendre le contrôle du logiciel malveillant en lui envoyant ses propres commandes.

  1. Chiffrement des fichiers

Pendant la communication, CryptoLocker demandera une seconde clé publique RSA à son serveur ,qui sera propre à chaque victime. Il créera ensuite une clé de session AES 256 bits qu’il utilisera pour chiffrer les fichiers de la victime. Comme mentionné précédemment, la cryptographie asymétrique de type RSA ne convient pas au chiffrement de grandes quantités de données car elle est relativement lente par rapport à ses cousines symétriques. L’utilisation d’un algorithme symétrique comme AES pour chiffrer la majeure partie des données utilisateur est donc beaucoup plus efficace.

  1. Sécurisation de la clé partagée

En dernier lieu, CryptoLocker chiffre la clé AES 256 bits à l’aide de la clé publique RSA asymétrique spécifique à la victime, et la stocke avec les données chiffrées des fichiers.

Une fois le processus de chiffrement terminé, le rançongiciel supprimera de sa mémoire la clé de session AES, en s’assurant qu’il n’en reste nulle part aucune trace. Seul le détenteur de la clé privée de la victime, qui a été générée et n’est stockée que sur le serveur de l’auteur de logiciels malveillants, sera capable de déchiffrer la clé de session AES à partir des fichiers chiffrés, et de déchiffrer les fichiers à nouveau une fois que la victime aura payé la rançon.

Les rançongiciels tirent le meilleur parti des chiffrements asymétrique et symétrique pour verrouiller les fichiers de la victime en quelques secondes, plutôt qu’en quelques heures. Récupérer ses fichiers sans payer les cybercriminels s’avère pratiquement impossible.

Pratiquement…

Comprendre le chiffrement permet de mieux affronter les rançongiciels

Analyser les chiffrements des rançongiciels est un processus incroyablement complexe. Nous avons à peine abordé le sujet  dans cet article, mais cet aperçu assez détaillé de la façon dont les rançongiciels procèdent pour verrouiller vos fichiers vous donnera une idée du travail acharné que notre équipe du laboratoire effectue au quotidien pour essayer de créer des déchiffreurs de rançongiciel permettant d’aider les victimes, et ce gratuitement !

Parfois, nous avons de la chance et certains rançongiciels, comme Harasom n’utilisant que le chiffrement symétrique, “masquent” la même clé qu’ils utilisent pour chiffrer tous les fichiers de chaque système dans l’exécutable du rançongiciel lui-même.

Que ce serait bien si les auteurs de rançongiciels nous rendaient la tâche aussi facile…

Le chiffrement plus complexe de Cryptolocker rend le déchiffrement beaucoup plus difficile, cependant, cela nous a permis de découvrir des failles dans l’implémentation, tout comme les bogues se glissent dans des applications professionnelles légitimes, les rendant exploitables.

Prenez CryptoDefense par exemple. Cette famille de rançongiciels lancée après CryptoLocker utilisait quasiment la même approche à cela près : au lieu que le serveur génère les clés privée et publique pour la victime, elle générait la paire de clés sur le système de la victime puis l’envoyait à son serveur de commande et de contrôle. Heureusement pour nous, les auteurs de CryptoDefense n’avaient pas correctement lu la documentation de la bibliothèque de chiffrement et avaient sauvegardé accidentellement la paire de clés générée sur le système de la victime. Il fut donc facile de trouver ces clés et de les utiliser pour restaurer les fichiers des victimes.

Mieux vaut se protéger… que de devoir tout nettoyer !

Quel que soit le types de logiciels malveillants, mieux vaut se protéger en premier lieu que d’essayer de nettoyer son système suite à une infection. Ceci est encore plus pertinent dans le cas des rançongiciels. Alors n’attendez pas qu’il soit trop tard, et assurez-vous d’être protégé par une solution anti-malware de confiance.

CTA_EAM_Ransomware_FR

Nous vous souhaitons une excellente journée, à l’abri de tout rançongiciel !