Publicité

La signature de code est la pratique de la signature cryptographique d'un logiciel afin que le système d'exploitation et ses utilisateurs puissent vérifier qu'il est sûr. La signature de code fonctionne bien dans l'ensemble. La plupart du temps, seul le bon logiciel utilise sa signature cryptographique correspondante.

Les utilisateurs peuvent télécharger et installer en toute sécurité et les développeurs protègent la réputation de leur produit. Cependant, les pirates et les distributeurs de logiciels malveillants utilisent ce système exact pour aider le code malveillant à passer les suites antivirus et autres programmes de sécurité.

Comment fonctionnent les logiciels malveillants et les ransomwares signés par code?

Qu'est-ce qu'un malware signé par code?

Lorsque le logiciel est signé par code, cela signifie que le logiciel porte une signature cryptographique officielle. Une autorité de certification (CA) délivre au logiciel un certificat confirmant que le logiciel est légitime et sûr à utiliser.

instagram viewer

Mieux encore, votre système d'exploitation prend en charge les certificats, la vérification du code et la vérification, vous n'avez donc pas à vous inquiéter. Par exemple, Windows utilise ce qu'on appelle une chaîne de certificats. La chaîne de certificats comprend tous les certificats nécessaires pour garantir la légitimité du logiciel à chaque étape du processus.

«Une chaîne de certificats comprend tous les certificats nécessaires pour certifier le sujet identifié par le certificat final. En pratique, cela inclut le certificat de fin, les certificats des autorités de certification intermédiaires et le certificat d'une autorité de certification racine approuvée par toutes les parties de la chaîne. Chaque autorité de certification intermédiaire de la chaîne détient un certificat émis par l'autorité de certification un niveau au-dessus dans la hiérarchie d'approbation. L'autorité de certification racine émet un certificat pour elle-même. »

Lorsque le système fonctionne, vous pouvez faire confiance au logiciel. L'autorité de certification et le système de signature de code nécessitent une énorme confiance. Par extension, les logiciels malveillants sont malveillants, non fiables et ne devraient pas avoir accès à une autorité de certification ou à la signature de code. Heureusement, dans la pratique, c'est ainsi que fonctionne le système.

Jusqu'à ce que les développeurs de logiciels malveillants et les pirates trouvent un moyen de contourner cela, bien sûr.

Les pirates volent des certificats aux autorités de certification

Votre antivirus sait que les logiciels malveillants sont malveillants car ils ont un effet négatif sur votre système. Il déclenche des avertissements, les utilisateurs signalent des problèmes et l'antivirus peut créer une signature de logiciel malveillant pour protéger d'autres ordinateurs à l'aide du même outil antivirus.

Cependant, si les développeurs de logiciels malveillants peuvent signer leur code malveillant à l'aide d'une signature cryptographique officielle, rien de tout cela ne se produira. Au lieu de cela, le malware signé par code passera par la porte d'entrée pendant que votre antivirus et le système d'exploitation déroulent le tapis rouge.

Recherche Trend Micro a constaté qu'il existe un marché entier des logiciels malveillants soutenant le développement et la distribution de logiciels malveillants signés par code. Les opérateurs de logiciels malveillants ont accès à des certificats valides qu'ils utilisent pour signer du code malveillant. Le tableau suivant montre le volume de logiciels malveillants utilisant la signature de code pour échapper à l'antivirus, en avril 2018.

tableau des types de codes malveillants signés par micro-code de tendance

La recherche Trend Micro a révélé qu'environ 66% des logiciels malveillants échantillonnés étaient signés par code. En outre, certains types de logiciels malveillants sont livrés avec plus d'instances de signature de code, telles que les chevaux de Troie, les droppers et les ransomwares. (Voici sept façons d'éviter une attaque de ransomware 7 façons d'éviter d'être touché par un ransomwareLes ransomwares peuvent littéralement ruiner votre vie. Faites-vous assez pour éviter de perdre vos données personnelles et vos photos à l'extorsion numérique? Lire la suite !)

D'où viennent les certificats de signature de code?

Les distributeurs et développeurs de logiciels malveillants ont deux options concernant le code signé officiellement. Les certificats sont soit volés à une autorité de certification (directement, soit pour la revente), ou un pirate peut tenter d'imiter une organisation légitime et de tromper ses exigences.

Comme vous vous en doutez, une autorité de certification est une cible alléchante pour tout pirate.

Ce ne sont pas seulement les pirates qui alimentent la montée des logiciels malveillants signés par code. Des fournisseurs prétendument peu scrupuleux ayant accès à des certificats légitimes vendent également des certificats de signature de code fiables à des développeurs et des distributeurs de logiciels malveillants. Une équipe de chercheurs en sécurité de l'Université Masaryk en République tchèque et du Maryland Cybersecurity Center (MCC) découvert quatre organisations vendant [PDF] Certificats Microsoft Authenticode aux acheteurs anonymes.

«Des mesures récentes de l'écosystème des certificats de signature de code Windows ont mis en évidence diverses formes d'abus qui permettent aux auteurs de logiciels malveillants de produire du code malveillant portant des signatures numériques valides.»

Une fois qu'un développeur de logiciels malveillants dispose d'un certificat Microsoft Authenticode, il peut signer tout logiciel malveillant dans le but d'annuler la signature de code de sécurité Windows et la défense basée sur les certificats.

Dans d'autres cas, plutôt que de voler les certificats, un pirate compromettra un serveur de génération de logiciels. Lorsqu'une nouvelle version du logiciel est rendue publique, elle porte un certificat légitime. Mais un pirate peut également inclure son code malveillant dans le processus. Vous pouvez lire ci-dessous un exemple récent de ce type d'attaque.

3 exemples de logiciels malveillants signés par code

À quoi ressemblent les logiciels malveillants signés par code? Voici trois exemples de logiciels malveillants signés par code:

  1. Logiciel malveillant Stuxnet. Le malware responsable de la destruction du programme nucléaire iranien a utilisé deux certificats volés pour se propager, ainsi que quatre exploits zero-day différents. Les certificats ont été volés à deux sociétés distinctes - JMicron et Realtek - qui partageaient un même bâtiment. Stuxnet a utilisé les certificats volés pour éviter l'exigence Windows alors nouvellement introduite selon laquelle tous les pilotes devaient être vérifiés (signature du pilote).
  2. Violation de serveur Asus. Entre juin et novembre 2018, des pirates ont piraté un serveur Asus que la société utilise pour envoyer des mises à jour logicielles aux utilisateurs. Chercheurs du Kaspersky Lab a découvert que 500 000 machines Windows ont reçu la mise à jour malveillante avant que quiconque ne s'en rende compte. Au lieu de voler les certificats, les pirates ont signé leur malware avec des certificats numériques Asus légitimes avant que le serveur de logiciel ne distribue la mise à jour du système. Heureusement, le malware était très ciblé, codé en dur pour rechercher 600 machines spécifiques.
  3. Logiciel malveillant Flame. La variante de malware modulaire Flame cible les pays du Moyen-Orient, en utilisant des certificats signés frauduleusement pour éviter la détection. (Qu'est-ce qu'un malware modulaire, de toute façon Logiciel malveillant modulaire: la nouvelle attaque furtive qui dérobe vos donnéesLes logiciels malveillants sont devenus plus difficiles à détecter. Qu'est-ce qu'un malware modulaire et comment l'empêcher de faire des ravages sur votre PC? Lire la suite ?) Les développeurs de Flame ont exploité un algorithme cryptographique faible pour signer faussement les certificats de signature de code, donnant l'impression que Microsoft les avait déconnectés. Contrairement à Stuxnet qui portait un élément destructeur, Flame est un outil d'espionnage, recherchant des PDF, des fichiers AutoCAD, des fichiers texte et d'autres types de documents industriels importants.

Comment éviter les logiciels malveillants signés par code

Trois variantes de logiciels malveillants différentes, trois types différents d'attaque par signature de code. La bonne nouvelle est que la plupart des logiciels malveillants de ce type sont, au moins à l'heure actuelle, très ciblés.

Le revers est qu'en raison du taux de réussite de ces variantes de logiciels malveillants qui utilisent la signature de code pour éviter détection, attendez-vous à ce que davantage de développeurs de logiciels malveillants utilisent la technique pour vous assurer que leurs propres attaques sont réussi.

De plus, la protection contre les logiciels malveillants signés par code est extrêmement difficile. Il est essentiel de maintenir à jour votre système et votre suite antivirus, évitez de cliquer sur des liens inconnus et revérifiez où vous mène un lien avant de le suivre.

Outre la mise à jour de votre antivirus, consultez notre liste de comment éviter les logiciels malveillants Les logiciels antivirus ne suffisent pas: 5 choses que vous devez faire pour éviter les logiciels malveillantsRestez en sécurité en ligne après avoir installé un logiciel antivirus en suivant ces étapes pour une informatique plus sûre. Lire la suite !

Gavin est rédacteur principal pour MUO. Il est également l'éditeur et le gestionnaire SEO du site frère de MakeUseOf, Blocks Decoded. Il possède un BA (Hons) en écriture contemporaine avec des pratiques d'art numérique pillé dans les collines du Devon, ainsi que plus d'une décennie d'expérience professionnelle en écriture. Il aime beaucoup de thé.