Les films et les émissions de télévision nous ont appris à associer les pirates informatiques à des tâches difficiles, des intrigues détaillées et des schémas élaborés. Ce que le chercheur en sécurité Carlos Fernández et moi avons récemment découvert sur les registres open source raconte une histoire différente : les mauvais acteurs privilégient la simplicité, l'efficacité et la pensée centrée sur l'utilisateur. Et pour faire passer leur code malveillant au niveau supérieur, ils ajoutent également de nouvelles fonctionnalités assistées par ChatGPT. Tout comme le logiciel en tant que service ( ), une partie de la raison pour laquelle les offres de logiciels malveillants en tant que service ( MaaS ) telles que , et sont devenues si populaires sur les marchés clandestins est qu'elles ont les canaux de support client actifs et leurs produits ont tendance à être simples et conviviaux. Inutile de dire que ces produits sont souvent construits par des cybercriminels professionnels. SaaS DuckLogs Redline Stealer Racoon Stealer Cochez ces cases, remplissez ce formulaire, cliquez sur ce bouton… Voici votre échantillon de malware prêt à l'emploi ! Dans les offres MaaS moins populaires que nous avons trouvées dans la nature, telles que le récupérateur de jetons , il y a une tentative d'incorporer des principes de conception centrés sur l'humain, mais le produit échoue dans le support client. Principalement exploités et consommés par des adolescents, les comptes Telegram associés regorgent de plaintes et de "bro-speak" hostiles en raison d'une promesse non tenue d'une "garantie à vie": Discord Z3US Avant même de rejoindre Sonatype, je me demandais . Et maintenant que je suis une série de campagnes et de mauvais acteurs du monde entier, quelque chose s'est éclairci pour moi : la plupart des paquets malveillants que l'équipe de recherche en sécurité porte à mon attention ne sont pas le produit d'un génie excentrique en sweat à capuche. codage depuis un sous-sol sombre rempli d'écrans. Grâce à la nature simpliste de MaaS, n'importe qui peut facilement créer et télécharger des échantillons dans des registres open source avec un coût d'installation et des connaissances techniques minimes. à quoi ressemblait le visage moderne de la cybercriminalité de logiciels malveillants Les chercheurs d'Avast que depuis le début de la pandémie actuelle de Covid-19, des plateformes comme Discord et Telegram sont devenues de plus en plus populaires parmi la population plus jeune. Plutôt que d'utiliser les médias sociaux grand public, ces adolescents créent des communautés de logiciels malveillants dans Discord dans le but de jouer, de discuter et de socialiser loin de la surveillance parentale. Ces communautés sont généralement dirigées par les membres les plus compétents sur le plan technique, qui se montrent en prenant possession de serveurs concurrents, ou même en partageant des captures d'écran contenant des informations qu'ils ont volées à des victimes sans méfiance. Ils recherchent également activement d'autres membres en fonction de leurs compétences en programmation ou de leur potentiel à contribuer à leurs campagnes. ont observé Conséquence involontaire de ces activités, les registres open source résilients sur lesquels nous nous appuyons sont confrontés à une surcharge de ressources. nos chercheurs en sécurité ont confirmé qu'ils étaient malveillants, 6 933 paquets téléchargés sur les registres npm et PyPI. Rien que le mois dernier, Nous avons récemment d'un groupe hispanophone appelé EsqueleSquad qui a téléchargé plus de 5 000 packages sur PyPI. La charge utile de ces packages a tenté de télécharger un cheval de Troie Windows à partir de Dropbox, GitHub et Discord à l'aide d'une commande PowerShell. suivi la campagne Nous avons ensuite d'un autre groupe appelé SylexSquad, peut-être espagnol, qui a créé des packages contenant des logiciels malveillants conçus pour exfiltrer des informations sensibles. En plus de faire la publicité de leurs produits avec des vidéos YouTube et de les vendre sur un marché, ils ont une petite communauté Discord pour recruter de nouveaux membres. Et ils semblent avoir largement le temps de polluer la chaîne d'approvisionnement des logiciels open source. enquêté sur les activités Code dérapé avec un soupçon d'IA Au cours de la première semaine d'avril, notre système d'IA a signalé une série de paquets téléchargés sur PyPI comme suspects, confirmés plus tard comme malveillants par nos chercheurs en sécurité. Ces packages avaient un modèle de nommage composé du préfixe « py » suivi de références à un logiciel antivirus : , , et . pydefenderultra pyjunkerpro pyanalisate pydefenderpro Carlos Fernández a remarqué que les packages étaient crédités au groupe SylexSquad, suggérant la poursuite d'une campagne que nous avions suivie auparavant impliquant les packages et . Après avoir fait cette découverte, nous avons commencé à cartographier leurs activités. reverse_shell sintaxisoyyo Dans un jeu du chat et de la souris, chaque fois que nous confirmions qu'un de ces packages était malveillant, l'équipe PyPI nous aidait à le supprimer, et quelques heures plus tard, les mauvais acteurs se faufilaient dans un package portant le même nom. Pour vous donner une image complète de cette campagne, récapitulons nos premières constatations : Si les développeurs devaient installer le package PyPI , exécuterait , un script légèrement obscurci hébergé sur GitHub et encodé sous la forme d'une série de nombres correspondant aux codes ASCII. reverse_shell setup.py bypass.py Après désobscurcissement, il créerait de nouvelles valeurs de registre sur Windows pour la persistance, et par conséquent, il appellerait un autre fichier hébergé sur GitHub, , un voleur d'informations. Les données sensibles telles que les informations du navigateur (historique, cookies, mots de passe…), les comptes Steam, les comptes Telegram, les cartes de crédit et même une capture d'écran du bureau de la victime seraient téléchargées à l'aide du webhook Discord de l'attaquant. WindowsDefender.py Avance rapide vers les nouveaux packages crédités à ce groupe et nous trouvons un complètement différent composé de code fortement obscurci (cryptage AES 256) généré avec , un service qui promet une "protection par 4 couches d'algorithme". Avant que Carlos ne retrousse ses manches pour le processus de désobscurcissement, nous ne pouvions distinguer que deux informations de l'océan de code camouflé : l'URL du service et un message lisible : " ' Chaque mot de ce message était une variable utilisée pour le processus de désobscurcissement : setup.py Pyobfuscate why, are, you, reading, this, thing, huh Je n'entrerai pas dans les détails du fonctionnement de Pyobfuscate, mais avec de la patience et de l'expertise, Carlos a réussi à désobscurcir le code et à révéler sa véritable forme. Il a trouvé intrigant que le contenu obscurci ne soit pas seulement présent dans mais aussi dans le précédemment lisible qui a été saisi initialement à partir de GitHub, et maintenant à partir du service . setup.py WindowsDefender.py transfer.sh Lorsque les mauvais acteurs n'agissent pas assez rapidement, il y a de fortes chances que des chercheurs en sécurité comme nous – et les règles de GitHub – ruinent leurs plans. C'est le cas de , initialement hébergé sur le repo GitHub "joeldev27" lorsqu'il était utilisé par les packages PyPI et , et rendu inactif peu de temps après. interdisant l'utilisation de la plate-forme comme un CDN malveillant WindowsDefender.py pycracker pyobfpremium Étant donné que ce nom de fichier était utilisé de manière cohérente, j'ai fait quelques recherches et j'ai découvert que était hébergé sur un référentiel GitHub appelé . Lorsque j'ai partagé cette découverte avec Carlos, il a répondu avec émerveillement : « Dans les prochaines heures, un nouveau paquet apparaîtra sur PyPI avec un obscurci. Après l'installation, il téléchargera à partir de ce référentiel que vous venez de trouver un script fortement obscurci nommé qui établira un mécanisme de persistance et téléchargera le voleur d'informations que nous avons étudié précédemment, également nommé . WindowsDefender.py CosasRandoms480 setup.py WindowsDefender.py WindowsDefender.py Sa prédiction s'est transformée en réalité lorsque le package est apparu moins de 30 minutes plus tard sur PyPI, utilisant efficacement "CosasRandoms480" comme CDN malveillant. Nous l'avons signalé à l'équipe PyPI et il a été supprimé peu de temps après. pyobfadvance Des scientifiques et des philosophes se sont demandé si . Travailler en tant que chercheur en sécurité se sent certainement de cette façon. Vous êtes coincé dans une boucle de recherche, de découverte et de signalement, et les mêmes menaces reviennent sans cesse. nous vivions dans une simulation informatique Deux jours plus tard, un nouveau package crédité par SylexSquad a été signalé sur notre système : Même obscurci. Même URL du exécutant le même avec le même code de mécanisme de persistance et la même exécution du voleur d'informations dans . Tout se ressemblait, mais le fichier et un nouveau script était invoqué depuis : pydefenderpro. setup.py même référentiel GitHub WindowsDefender.py WindowsDefender.py n'était plus obscurci transfer.sh "C'est un RAT !" Carlos m'a envoyé un message sur . "Et aussi un voleur d'informations-" Slack "Un RAT mutant ?" J'ai répondu, faisant référence à une tendance d'un type de malware qui combine des chevaux de Troie d'accès à distance et des voleurs d'informations. que nous avons suivie dans la nature "Exactement", a déclaré Carlos. Les recherches OSINT ont révélé que le nouveau code RAT n'était pas original, mais une copie d' de : une copie DiscordRAT : un paquet malveillant est signalé à l'équipe PyPI, et l'équipe PyPy le supprime. Rincez et répétez Bien sûr, un nouveau package, est entré en scène peu de temps après. Ce qui était différent ici, c'est que les mauvais acteurs ont migré vers le service au lieu de GitHub pour télécharger , probablement en raison de la désactivation du référentiel « CosasRandoms480 ». pydefenderultra, pastebin.pl WindowsDefender.py Nous soupçonnons que la version lisible de a permis de confirmer plus facilement qu'il enfreignait . Mais pourquoi les mauvais acteurs ont-ils décidé de désobscurcir le scénario ? Était-ce trop compliqué pour leur processus simpliste ? WindowsDefender.py les règles de GitHub Le RAT n'arrêtait pas de muter. Le menu et les commentaires étaient désormais traduits en espagnol et disposaient de fonctionnalités supplémentaires. Le cycle s'est poursuivi lorsqu'ils ont téléchargé un autre package, . Cette fois, les fonctionnalités ajoutées comprenaient un enregistreur de frappe, un enregistreur audio, l'exfiltration des données du système d'exploitation et la possibilité de télécharger n'importe quel fichier de la victime sur le canal Discord de l'attaquant. Les commentaires sur le code étaient exceptionnellement abondants, ce qui n'est généralement associé qu'au code du didacticiel et non à un logiciel malveillant. pyjunkerpro "Attendez," dit Carlos, pensant à haute voix, "Et s'ils utilisent l'IA pour créer de nouvelles fonctionnalités?" Des outils comme et fournissent un bon point de départ pour détecter le texte généré par l'IA. Cependant, l'identification du code généré par l'IA reste difficile, car il n'existe actuellement aucun outil disponible (à ma connaissance) capable de le faire avec précision. Heureusement, les humains sont encore très doués pour reconnaître les modèles… GPTZero Copyleaks J'ai rapidement ouvert un onglet ChatGPT et tapé une invite en espagnol, qui se traduisait par : "Écrivez du code Python pour un bot Discord qui télécharge de l'audio depuis un ordinateur distant à l'aide de PyAudio." La sortie que j'ai obtenue était étrangement similaire: Il semble que nous suivions des script kiddies qui copiaient du code à partir de diverses sources, puis utilisaient ChatGPT pour ajouter de nouvelles fonctionnalités. Le code unique qui en a résulté leur a donné la confiance nécessaire pour en faire la publicité sur ou le vendre sur leur propre place de marché. Et personne ne soupçonnerait que ce n'était pas une création originale. YouTube Cela soulève une question intrigante : comment devrions-nous appeler ces mauvais acteurs ? Des enfants scénarisés par l'IA ? Des enfants rapides ? J'ai demandé à ChatGPT, et il m'a répondu : si une personne utilise ChatGPT pour ajouter de nouvelles fonctionnalités à son logiciel malveillant, elle peut être considérée comme un type de pirate informatique plus avancé qu'un script kiddie traditionnel. Il peut être plus exact de les appeler "hackers" ou "hackers assistés par l'IA". Fascinant. ChatGPT leur donne plus de statut. OSINT avec une touche d'IA Dans un souci d'expérimentation, Carlos a voulu essayer une invite pour voir si l'outil nous aiderait également à mieux comprendre les activités des mauvais acteurs. "J'ai besoin d'un code Python capable d'utiliser l'API Discord en tant que bot (à l'aide d'un jeton). Le script doit se connecter au bot et afficher les informations de la guilde, les membres de la guilde, les canaux de la guilde et l'historique des messages. Comme prévu, ChatGPT a généré un code fortement commenté et des instructions claires pour commencer : . Nous avons donc copié le jeton que les "hackers assistés par l'IA" ont ajouté dans et l'avons collé dans notre script Python généré par l'IA. pour utiliser ce code, remplacez "your_bot_token_here" par votre jeton de bot et exécutez le script Python MicrosoftUpdate.py Nous avons exécuté ce code… … et nous étions dedans ! Nous avons recueilli des informations sur les membres (MEE6, $Demon666, $̷y̷n̷t̷a̷x̷E̷r̷r̷o̷r̷, aitanaxx05 + 4 reps, Esmeralda, SylexNaranjoDomina et AI Image Generator), les canaux et l'historique des messages. Il s'avère qu'ils avaient déjà infecté quelques utilisateurs - nous avons identifié une adresse IP de Cuba et une autre d'Inde. Et les informations du système d'exploitation étaient exfiltrées vers des canaux nommés d'après le nom d'utilisateur de la victime infectée : Nous avons découvert que nous étions connectés à un bot appelé "SylexNaranjoDomina" qui avait des privilèges d'administrateur. Cela pourrait permettre à quelqu'un d'ajouter des membres, de supprimer des webhooks ou de modifier des canaux existants. Quelqu'un pourrait facilement changer le nom de la guilde de "Le serveur de Demon666" en "Le serveur d'un Script Kiddie" - une description appropriée pour ce type de mauvais acteur, même si je pense que ChatGPT peut désapprouver cette idée. Restez vigilant Il ressort clairement de cette enquête que la prolifération du MaaS et l'utilisation de code assisté par l'IA ont créé de nouvelles opportunités pour les mauvais acteurs moins compétents sur le plan technique. Avec plus d'utilisateurs profitant de ces outils et offres, il y a encore plus de possibilités que des packages malveillants infectent votre environnement de construction. Alors que le paysage de la cybersécurité continue d'évoluer, nos défenses doivent également évoluer. En restant informés, prudents et protégés, nous pouvons avoir une longueur d'avance contre la menace en constante évolution de la cybercriminalité.