Règle n°1 pour devenir un hacker : utiliser des technos maîtrisées... la cryptographie n'en fait pas partie !

Le chiffrement est de plus en plus utilisé dans le fonctionnement des logiciels malveillants, mais tous les pirates ne sont pas capables de l'utiliser avec succès. Une grande variété d'erreurs de cryptographie peut survenir...

La cryptographie est une composante importante de nombreux logiciels malveillants aujourd'hui. Elle est utilisée pour masquer les logiciels malveillants, leur permettre de contourner les mesures de sécurité, créer un canal de communication avec des serveurs de commande et de contrôle, et plus récemment, soutirer de l'argent. Cependant, encore beaucoup de hackers ne maîtrisent pas très bien cette technologie, et les erreurs qu'ils commettent sont nombreuses. Des erreurs dont il est possible de tirer profit, et ainsi de se sortir d'une situation délicate, notamment lorsque son ordinateur est pris en otage par un ransomware. 

Les erreurs les plus communes de cryptographie

Le premier type de dysfonctionnement est la "programmation vaudou", qui traduit une profonde méconnaissance de la cryptographie utilisée. La méthode utilisée par le logiciel malveillant Zeus pour communiquer avec son serveur de commande et de contrôle est un bon exemple de défaillance que l'on trouve couramment dans de nombreux logiciels malveillants. Pour sécuriser leurs communications, les auteurs de Zeus ont utilisé le chiffrement RC4, mais ont décidé d'essayer de le renforcer. Après chiffrement du trafic à l'aide de RC4, ils ont appliqué une fonction XOR entre chaque octet et l'octet suivant pour produire le cryptogramme final. La nouvelle "méthode" de chiffrement n'ajoute rien à la sécurité du trafic, car elle reste identique au chiffrement RC4, ce qui montre bien la connaissance limitée de ses auteurs.

Le second type de défaillance est la technique du "copier-coller". Certains auteurs de logiciels malveillants utilisent du code qu'ils ont trouvé en ligne et l'implémentent sans comprendre pleinement sa vraie nature, ce qui provoque des résultats embarrassants. CryptoDefense, une des premières souches de logiciels rançonneurs en est un bon exemple. Bien que la plupart des tactiques aient été copiées avec succès depuis CryptoLocker, ce logiciel malveillant utilisait une API cryptographique de bas niveau incluse dans le système d'exploitation Windows pour effectuer le chiffrement. Aussi sensé que cela puisse paraître, les pirates l'ont reproduite de trop près à partir du réseau des développeurs de Microsoft, puisque la bibliothèque est conçue pour enregistrer la clé privée « secrète » dans le stockage local. Cela signifiait que le logiciel rançonneur était inefficace, et que toutes les victimes pouvaient déchiffrer leurs machines sans avoir à payer de rançon.

Un autre type d'erreur se produit lorsque les auteurs tentent de résoudre leurs problèmes de programmation en improvisant. Le cas probablement le plus amusant est celui d'une récente version du kit d'exploitation de vulnérabilités Nuclear. Pour masquer son code malveillant, les auteurs de Nuclear ont utilisé le protocole d'échange Diffie-Hellman pour chiffrer les données transmises à travers les failles durant l'exécution. La mise en œuvre du protocole était cependant absurde. La clé secrète était paramétrée sur 0, ce qui rendait l'ensemble du processus inutile.

Le dernier type de défaillance est le "logiciel malveillant bluffant", qui prouve que ce que vous voyez n'est pas toujours ce que vous obtenez. Lorsque le cheval de Troie Nemucod s'est transformé en logiciel rançonneur, il prévenait ses victimes que leurs fichiers étaient chiffrés à l'aide de RSA-1024. Cette déclaration contenait deux mensonges majeurs. Tout d'abord, au moment de l'annonce, le chiffrement n’était même pas initié. Dans de nombreux cas, le processus de chiffrement réel était bloqué, et Nemucod se contentait de renommer les extensions de fichiers. Deuxièmement, même si le chiffrement était initié, il ne comprenait qu'une simple rotation via XOR, loin du chiffrement RSA-1024 promis.

En nous rendant compte que les auteurs de logiciels malveillants ne comprennent pas nécessairement le chiffrement, nous pouvons les contrer sur plusieurs fronts, notamment en cassant leur code malveillant ou en déchiffrant leurs communications. Cela dit, les auteurs de logiciels malveillants améliorent leur utilisation du chiffrement, et quand ils l'auront maîtrisé, la donne sera complètement redistribuée. Jusqu'à ce que cela se produise, les possibilités de vaincre les cybercriminels continueront de s'améliorer. Les chercheurs devraient garder les yeux ouverts et examiner toute opportunité de les combattre.