La signature de code est une méthode cryptographique qui permet de vérifier l'authenticité et l'intégrité d'un logiciel. Les systèmes d'exploitation et les utilisateurs s'appuient dessus pour confirmer la sécurité du programme. En général, elle fonctionne efficacement : seul le logiciel légitime utilise une signature valide.
Les utilisateurs peuvent ainsi télécharger et installer en toute confiance, tandis que les développeurs préservent la réputation de leurs produits. Cependant, les cybercriminels exploitent ce mécanisme pour faire passer leurs malwares au travers des antivirus et outils de sécurité.
Un logiciel malveillant signé par code porte une signature cryptographique officielle délivrée par une autorité de certification (AC). Cette dernière atteste de la légitimité et de la sécurité du programme.
Votre système d'exploitation gère automatiquement la validation des certificats. Par exemple, Windows repose sur une chaîne de certificats, qui inclut tous les éléments nécessaires pour authentifier le logiciel à chaque étape.
"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 AC intermédiaire détient un certificat émis par l'AC supérieure dans la hiérarchie de confiance. L'AC racine émet un certificat pour elle-même."
Quand tout est en ordre, vous pouvez faire confiance au logiciel. Ce système repose sur une confiance absolue envers les AC. Les malwares, par nature, ne devraient pas y accéder. Dans la pratique, cela tient... jusqu'à ce que les cybercriminels contournent les protections.
Les antivirus détectent les malwares par leurs comportements suspects, alertes utilisateurs et signatures virales partagées.
Mais un malware signé avec un certificat officiel échappe à ces contrôles. Votre antivirus et OS le considèrent comme légitime.
Les recherches de Trend Micro révèlent un marché noir dédié aux malwares signés. En avril 2018, environ 66 % des échantillons analysés étaient signés, notamment les chevaux de Troie, droppers et ransomwares. (Découvrez sept façons d'éviter une attaque de ransomware !)

Les cybercriminels obtiennent ces certificats volés à des AC ou via des fournisseurs peu scrupuleux. Ils peuvent aussi imiter des entreprises légitimes.
Les AC sont des cibles prioritaires. Des chercheurs de l'université Masaryk (République tchèque) et du Maryland Cybersecurity Center ont identifié quatre organisations vendant des certificats Microsoft Authenticode à des acheteurs anonymes. [PDF]
"De récentes mesures de l'écosystème des certificats de signature de code Windows ont mis en évidence diverses formes d'abus permettant aux auteurs de malwares de produire du code portant des signatures numériques valides."
Avec un certificat Authenticode, un malware contourne les sécurités Windows basées sur les certificats.
Parfois, les pirates compromettent des serveurs de build pour injecter du code malveillant dans des mises à jour légitimes.
Voici trois cas emblématiques :
Ces attaques sont souvent ciblées, mais leur succès encourage leur prolifération. La protection est challenging :
- Maintenez OS et antivirus à jour.
- Évitez les liens suspects et vérifiez leur destination.
- Consultez nos conseils pour éviter les malwares !