La signature de code est la pratique consistant à signer cryptographiquement 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 exactement ce système pour aider le code malveillant à échapper aux suites antivirus et autres programmes de sécurité.
Comment fonctionnent les logiciels malveillants et les rançongiciels signés ?
Lorsqu'un logiciel est signé par code, cela signifie que le logiciel porte une signature cryptographique officielle. Une autorité de certification (CA) délivre le logiciel avec un certificat confirmant que le logiciel est légitime et sûr à utiliser.
Mieux encore, votre système d'exploitation s'occupe des certificats, de la vérification du code et de 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 que le logiciel est légitime à chaque étape du processus.
"Une chaîne de certificats est constituée de tous les certificats nécessaires pour certifier le sujet identifié par le certificat final. En pratique, cela inclut le certificat final, les certificats des AC intermédiaires et le certificat d'une AC 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 située au niveau supérieur dans la hiérarchie de confiance. 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 grande confiance. Par extension, les logiciels malveillants sont malveillants, peu fiables et ne doivent pas avoir accès à une autorité de certification ou à la signature de code. Heureusement, dans la pratique, c'est ainsi que le système fonctionne.
Jusqu'à ce que les développeurs de logiciels malveillants et les pirates trouvent un moyen de le contourner, bien sûr.
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 utilisant le 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 logiciel malveillant signé par code franchira la porte d'entrée pendant que votre antivirus et le système d'exploitation dérouleront le tapis rouge.
Les recherches de Trend Micro ont révélé qu'il existe tout un marché de logiciels malveillants prenant en charge 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 indique le volume de logiciels malveillants utilisant la signature de code pour échapper à l'antivirus, en avril 2018.
La recherche de Trend Micro a révélé qu'environ 66 % des logiciels malveillants échantillonnés étaient signés par code. De plus, 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 !)
Les distributeurs et les développeurs de logiciels malveillants ont deux options concernant le code officiellement signé. Les certificats sont soit volés à une autorité de certification (directement ou pour la revente), soit un pirate peut tenter d'imiter une organisation légitime et de falsifier ses exigences.
Comme vous vous en doutez, une autorité de certification est une cible alléchante pour tout pirate informatique.
Ce ne sont pas seulement les pirates qui alimentent l'augmentation 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 de confiance aux développeurs et 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) a découvert quatre organisations vendant des [PDF] certificats Microsoft Authenticode à des acheteurs anonymes.
"De récentes mesures 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 n'importe quel logiciel malveillant dans le but d'annuler la signature du 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 construction 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.
Alors, à quoi ressemblent les logiciels malveillants signés par code ? Voici trois exemples de logiciels malveillants signés :
Trois variantes de logiciels malveillants différentes, trois types différents d'attaques par signature de code. La bonne nouvelle est que la plupart des logiciels malveillants de ce type sont, du moins à l'heure actuelle, très ciblés.
Le revers de la médaille est qu'en raison du taux de réussite de ces variantes de logiciels malveillants qui utilisent la signature de code pour éviter la détection, attendez-vous à ce que davantage de développeurs de logiciels malveillants utilisent cette technique pour s'assurer que leurs propres attaques réussissent.
De plus, la protection contre les logiciels malveillants signés par code est extrêmement difficile. Garder votre système et votre suite antivirus à jour est essentiel, évitez de cliquer sur des liens inconnus et vérifiez à nouveau où un lien vous mène avant de le suivre.
Outre la mise à jour de votre antivirus, consultez notre liste des moyens d'éviter les logiciels malveillants !