Qu'est-ce qu'un logiciel malveillant signé par code et comment l'éviter?
Publicité
La signature de code consiste à signer de manière cryptographique un logiciel afin que le système d'exploitation et ses utilisateurs puissent vérifier qu'il est sécurisé. La signature de code fonctionne bien, dans l'ensemble. La plupart du temps, seul le logiciel approprié utilise la 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 informatiques et les distributeurs de logiciels malveillants utilisent ce système pour aider les codes malicieux à se glisser dans 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 logiciel malveillant signé par code?
Lorsque le logiciel est signé par code, cela signifie qu’il porte une signature cryptographique officielle. Une autorité de certification (AC) envoie au logiciel un certificat confirmant que le logiciel est légitime et que son utilisation est sûre.
Mieux encore, votre système d'exploitation prend en charge les certificats, la vérification du code et la vérification, de sorte que vous n'avez 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 final, 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 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 aux logiciels. L’autorité de certification et le système de signature de code nécessitent une grande confiance. Par extension, les logiciels malveillants sont malveillants, indignes de confiance et ne devraient pas avoir accès à une autorité de certification ni à une 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 informatiques trouvent un moyen de le contourner, 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 impact 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 afin de protéger d'autres ordinateurs utilisant le même outil antivirus.
Toutefois, si les développeurs de programmes malveillants peuvent signer leur code malveillant en utilisant une signature cryptographique officielle, rien de tout cela ne se produira. Au lieu de cela, le programme malveillant signé par code passera par la porte principale au fur et à mesure que votre antivirus et le système d’exploitation dévoilent le tapis rouge.
Les recherches menées par Trend Micro ont révélé l'existence d'un marché entier 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 aux certificats valides qu'ils utilisent pour signer le code malveillant. Le tableau suivant indique le volume de logiciels malveillants utilisant la signature de code pour échapper à l'antivirus, à compter d'avril 2018.
L'étude de Trend Micro a révélé qu'environ 66% des logiciels malveillants échantillonnés étaient signés par code. En outre, certains types de programmes malveillants sont associés à davantage d'instances de signature de code, telles que les chevaux de Troie, les compte-gouttes et les ransomware. (Voici sept façons d'éviter une attaque par ransomware. 7 façons d'éviter d'être attaqué par Ransomware. 7 façons d'éviter d'être attaqué par Ransomware. Ransomware peut littéralement ruiner votre vie. Faites-vous suffisamment pour éviter de perdre vos données personnelles et vos photos au moyen d'extorsion numérique? Plus !)
D'où viennent les certificats de signature de code?
Les distributeurs de logiciels malveillants et les développeurs ont deux options concernant le code officiellement signé. Les certificats sont soit volés auprès d'une autorité de certification (directement, soit pour la revente), ou un pirate informatique peut tenter d'imiter une organisation légitime et de simuler ses exigences.
Comme vous vous en doutez, une autorité de certification est une cible alléchante pour tout pirate informatique.
Les pirates informatiques ne sont pas les seuls à alimenter la montée en puissance 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 sécurisés aux développeurs et aux distributeurs de programmes malveillants. Une équipe de chercheurs en sécurité de l'Université Masaryk en République tchèque et du Centre de cybersécurité du Maryland (MCC) a découvert quatre organisations vendant des certificats [Microsoft] Microsoft Authenticode à des acheteurs anonymes.
"Des mesures récentes de l'écosystème de certificats de signature de code Windows ont mis en évidence diverses formes d'abus permettant aux auteurs de programmes malveillants de produire du code malveillant portant des signatures numériques valides."
Une fois qu'un développeur de programme malveillant dispose d'un certificat Microsoft Authenticode, il peut signer tout programme malveillant pour tenter d'annuler la signature du code de sécurité Windows et la défense basée sur un certificat.
Dans d'autres cas, plutôt que de voler les certificats, un pirate informatique compromettra la sécurité d'un serveur de génération de logiciel. Lorsqu'une nouvelle version de logiciel est mise à la disposition du public, elle porte un certificat légitime. Mais un pirate informatique peut également inclure son code malveillant dans le processus. Vous pouvez lire un exemple récent de ce type d'attaque ci-dessous.
3 exemples de logiciels malveillants signés en code
Alors, à quoi ressemble le malware signé par code? Voici trois exemples de programmes malveillants signés par code:
- Stuxnet malware . Les logiciels malveillants responsables de la destruction du programme nucléaire iranien ont utilisé deux certificats volés pour se propager, ainsi que quatre exploits différents du jour zéro. Les certificats ont été volés à deux sociétés distinctes - JMicron et Realtek - qui partageaient un seul bâtiment. Stuxnet a utilisé les certificats volés pour éviter la nouvelle exigence de Windows, selon laquelle tous les pilotes devaient être vérifiés (signature du pilote).
- Asus serveur violation . Entre juin et novembre 2018, des pirates informatiques ont violé un serveur Asus utilisé par la société pour transmettre des mises à jour logicielles aux utilisateurs. Des chercheurs de Kaspersky Lab ont découvert qu'environ 500 000 machines Windows avaient reçu la mise à jour malveillante avant que quiconque s'en rende compte. Au lieu de voler les certificats, les pirates informatiques ont signé leur programme malveillant avec des certificats numériques légitimes Asus avant que le serveur de logiciels ne distribue la mise à jour du système. Heureusement, le malware était très ciblé, codé en dur pour rechercher 600 machines spécifiques.
- Malware flamme . La variante de logiciel malveillant modulaire Flame cible les pays du Moyen-Orient, en utilisant des certificats signés frauduleusement pour éviter toute détection. (Qu'est-ce qu'un logiciel malveillant modulaire, de toute façon? Logiciel malveillant: la nouvelle attaque furtive dérobant vos données. Logiciel malveillant: la nouvelle attaque furtive dérobant vos données. Les logiciels malveillants sont devenus plus difficiles à détecter. Qu'est-ce qu'un logiciel malveillant 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 à tort les certificats de signature de code, donnant ainsi l’impression que Microsoft les avait approuvés. Contrairement à Stuxnet qui comportait un élément destructeur, Flame est un outil d’espionnage permettant de rechercher 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 différentes de programmes malveillants, trois types d'attaques par signature de code. La bonne nouvelle est que la plupart des programmes 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 programmes malveillants qui utilisent la signature de code pour éviter la détection, les développeurs de logiciels malveillants devraient utiliser cette technique pour garantir le succès de leurs propres attaques.
En outre, 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 deux fois avant de les suivre.
Outre la mise à jour de votre antivirus, consultez notre liste de solutions permettant d'éviter les logiciels malveillants. Un logiciel antivirus ne suffit pas: 5 actions à éviter pour éviter les logiciels malveillants Un logiciel antivirus ne suffit pas: 5 actions à suivre pour éviter les logiciels malveillants Restez 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 !
Explorez plus de: Malware, Sécurité en ligne, Certificat de sécurité.