Le groupe de cybercriminels, qui s'est récemment introduit dans les systèmes de Nvidia a livré deux anciens certificats de signature de code de la société. Des chercheurs mettent en garde contre le fait que les pilotes pourraient être utilisés pour signer des malwares au niveau du noyau et les charger sur des systèmes disposant d’une fonction de vérification de signature des pilotes. Ces certificats ont été récupérés dans une archive de près de 1 To au sein duquel se trouvait également le code source et la documentation de l’API des pilotes des GPU. Nvidia a confirmé avoir été la cible d'une intrusion, déclarant que les pirates avaient volé « les mots de passe des employés et certaines informations exclusives de Nvidia », sans confirmer l'ampleur du vol de données.

Retour sur la violation de données

Le 24 février, un groupe de ransomware se faisant appeler LAPSUS$ a déclaré publiquement qu'il avait accédé en tant qu’admin à plusieurs systèmes Nvidia pendant environ une semaine et qu'il avait réussi à exfiltrer 1 To de données, notamment des schémas de hardware, le code source de pilotes, de firmwares, de la documentation, des outils et des kits de développement privés.  Et « tout ce qui concerne Falcon », une technologie de sécurité matérielle intégrée aux GPU Nvidia et destinée à éviter une mauvaise programmation de ces GPU. Si Nvidia a confirmé la cyberattaque et la violation de données, l’entreprise n’a fourni aucun détail sur les données volées. Mais, en guise de preuve, LAPSUS$ a publié 20 Go d’informations provenant de ce cache présumé.

Le groupe affirme également détenir des informations sur la technologie LHR (Lite Hash Rate) de Nvidia. Introduit dans les GPU de la série RTX 30, le LHR détecte si les GPU sont utilisés pour le minage de la crypto-monnaie Ethereum et de réduire leurs performances, afin de rendre les cartes graphiques moins attractives pour les mineurs de crypto-monnaies. En effet, ces derniers captent tout le marché des GPU, asséchant le marché, au point de mettre les joueurs dans la quasi-impossibilité d’acheter des GPU en raison d’une pénurie de stock constante et d’une surenchère sur les prix.

Pour prouver qu'il possède cette information, le groupe LAPSUS$ a même publié un outil qui, selon les pirates, donne aux utilisateurs les moyens de contourner la limitation du LHR sans réinitialiser le firmware du GPU. Après cette publication, le groupe a changé ses exigences, demandant à Nvidia de livrer ses pilotes de GPU en open source pour tous les systèmes, y compris pour Linux. En effet, cela fait de nombreuses années, que la communauté Linux se plaint de l'absence d'un pilote Nvidia open source pour cet environnement.

Importance des certificats de signature de code

Les certificats de signature de code renvoient à des certificats Microsoft, notamment dans Windows. Il est toujours possible d’exécuter des applications qui ne sont pas signées sous Windows, mais celles-ci déclenchent des alertes de sécurité plus visibles que les applications signées par un développeur de confiance. Plus important encore, par défaut, Windows n’autorise pas l'installation d'un pilote qui n'est pas signé numériquement avec un certificat de confiance. L'application de la signature numérique aux pilotes est une fonction de sécurité importante car, contrairement aux applications en mode utilisateur normal, les pilotes s'exécutent avec des privilèges au niveau du noyau. Ils ont donc accès aux zones les plus privilégiées du système d'exploitation et peuvent désactiver les produits de sécurité.

Avant l'introduction de cette fonction de sécurité, les rootkits (logiciels malveillants au niveau root) étaient monnaie courante sous Windows. Les signatures numériques de fichiers sont également utilisées par les systèmes de liste blanche d'applications pour restreindre les applications pouvant être exécutées sur les systèmes et, dans une certaine mesure, par les programmes antivirus, même si l’existence d'une signature numérique ne suffit pas à elle seule à déterminer si un fichier est légitime ou malveillant. Les certificats de signature de code ont déjà été volés à des développeurs et les pirates peuvent même les acheter par différents canaux.

Des échantillons découverts

Le problème, c’est que les révocations ou les expirations de certificats ne sont pas vérifiées ou appliquées par tous les mécanismes de sécurité de Windows, y compris celui qui vérifie si les pilotes chargés sont signés, comme l’a expliqué le chercheur en sécurité de Zoom, Bill Demirkapi lors d’une conférence DEF CON sur les rootkits Windows. Depuis l’introduction de la restriction Secure Boot dans la build 1607 de Windows 10 et versions suivantes, les pilotes doivent être signés avec des certificats EV (extended validation). Les certificats EV nécessitent une vérification approfondie de l'identité de la personne ou de l'entité qui demande le certificat et sont donc plus difficiles à obtenir et plus chers. Les certificats de signature de code Nvidia publiés par LAPSUS$ ont expiré depuis 2014 et 2018, respectivement, et ne sont pas EV. Mais ils peuvent toujours être utilisés pour signer du code malveillant qui sera chargé dans le noyau des anciens systèmes Windows. Ils peuvent également être utilisés pour tenter d'échapper à la détection de certains produits de sécurité.

Le chercheur Florian Roth a déjà trouvé deux échantillons d'outils de piratage signés avec l'un des certificats sur VirusTotal : une copie de l'outil de dumping de mot de passe Mimikatz et une copie du Kernel Driver Utility (KDU) qui peut servir au détournement de processus. Le chercheur Mehmet Ergene a trouvé encore plus de fichiers malveillants signés avec le certificat, notamment un RAT (Remote Access Trojan) pour Discord. Et d'autres malwares abusant de la légitimité des certificats Nvidia devraient faire leur apparition. Florian Roth et Mehmet Ergene ont publié une règle YARA et une requête pour Microsoft Defender for Endpoint (MDE) que les équipes de sécurité peuvent utiliser pour rechercher les fichiers signés avec ces certificats dans leurs environnements. Microsoft propose également une politique de contrôle des applications Windows Defender Application Control pour bloquer les pilotes malveillants, qui peut être personnalisée par l’ajout de nouveaux contrôles, et une règle de réduction de la surface d'attaque (Attack Surface Reduction, ASR) de Microsoft Defender for Endpoint.