PyTorch : boîte à outils d'apprentissage automatique conçue de Noël au nouvel an PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

PyTorch : une boîte à outils d'apprentissage automatique disponible de Noël au Nouvel An

PyTorch est l'une des boîtes à outils d'apprentissage automatique les plus populaires et les plus utilisées.

(Nous n'allons pas nous demander où il se situe dans le classement de l'intelligence artificielle - comme pour de nombreux outils open source largement utilisés dans un domaine concurrentiel, la réponse semble dépendre de la personne à qui vous demandez et de la boîte à outils qu'ils utilisent. eux-mêmes.)

Initialement développé et publié en tant que projet open source par Facebook, maintenant Meta, le logiciel a été remis à la Fondation Linux fin 2022, qui le gère désormais sous l'égide de la Fondation PyTorch.

Malheureusement, le projet a été compromis par une attaque de la chaîne d'approvisionnement pendant la période des fêtes fin 2022, entre le jour de Noël [2022-12-25] et la veille du Nouvel An [2022-12-30].

Les attaquants ont créé de manière malveillante un package Python appelé torchtriton sur PyPI, le référentiel Python Package Index populaire.

Le nom du blog torchtriton a été choisi pour correspondre au nom d'un paquet dans le système PyTorch lui-même, conduisant à une situation dangereuse expliqué par l'équipe PyTorch (nous soulignons) comme suit :

[Un] package de dépendance malveillant (torchtriton) […] a été téléchargé dans le référentiel de code Python Package Index (PyPI) avec le même nom de package que celui que nous expédions sur l'index de package nocturne PyTorch. Étant donné que l'index PyPI est prioritaire, ce paquet malveillant était installé à la place de la version de notre référentiel officiel. Cette conception permet à quelqu'un d'enregistrer un paquet sous le même nom que celui qui existe dans un index tiers, et pip installera leur version par défaut.

Le programme pip, soit dit en passant, s'appelait autrefois pyinstall, et est apparemment une blague récursive qui est l'abréviation de pip installs packages. Malgré son nom d'origine, ce n'est pas pour installer Python lui-même - c'est le moyen standard pour les utilisateurs de Python de gérer des bibliothèques de logiciels et des applications écrites en Python, telles que PyTorch et de nombreux autres outils populaires.

Pwned par une astuce de la chaîne d'approvisionnement

Quiconque a la malchance d'installer la version pwned de PyTorch pendant la période de danger s'est presque certainement retrouvé avec un logiciel malveillant voleur de données implanté sur son ordinateur.

Selon le propre court mais utile de PyTorch analyse des logiciels malveillants, les attaquants ont volé une partie, la plupart ou la totalité des données importantes suivantes des systèmes infectés :

  • Informations système, y compris le nom d'hôte, le nom d'utilisateur, les utilisateurs connus sur le système et le contenu de toutes les variables d'environnement système. Les variables d'environnement sont un moyen de fournir des données d'entrée en mémoire uniquement auxquelles les programmes peuvent accéder lorsqu'ils démarrent, y compris souvent des données qui ne sont pas censées être enregistrées sur le disque, telles que des clés cryptographiques et des jetons d'authentification donnant accès à des services basés sur le cloud. La liste des utilisateurs connus est extraite de /etc/passwd, qui, heureusement, ne contient aucun mot de passe ou hachage de mot de passe.
  • Votre configuration Git locale. C'est volé à $HOME/.gitconfig, et contient généralement des informations utiles sur la configuration personnelle de toute personne utilisant le populaire système de gestion de code source Git.
  • Vos clés SSH. Ceux-ci sont volés dans le répertoire $HOME/.ssh. Les clés SSH incluent généralement les clés privées utilisées pour se connecter en toute sécurité via SSH (shell sécurisé) ou en utilisant SCP (copie sécurisée) à d'autres serveurs sur vos propres réseaux ou dans le cloud. De nombreux développeurs conservent au moins certaines de leurs clés privées non chiffrées, de sorte que les scripts et les outils logiciels qu'ils utilisent peuvent se connecter automatiquement à des systèmes distants sans s'arrêter pour demander à chaque fois un mot de passe ou une clé de sécurité matérielle.
  • Les 1000 premiers autres fichiers de votre répertoire personnel ont une taille inférieure à 100 kilo-octets. La description du logiciel malveillant PyTorch ne dit pas comment la "liste des 1000 premiers fichiers" est calculée. Le contenu et l'ordre des listes de fichiers varient selon que la liste est triée par ordre alphabétique ; si les sous-répertoires sont visités avant, pendant ou après le traitement des fichiers dans n'importe quel répertoire ; si les fichiers cachés sont inclus ; et si un caractère aléatoire est utilisé dans le code qui parcourt les répertoires. Vous devriez probablement supposer que tous les fichiers en dessous du seuil de taille pourraient être ceux qui finissent par être volés.

À ce stade, nous mentionnerons la bonne nouvelle : seuls ceux qui ont récupéré la version dite « nocturne » ou expérimentale du logiciel étaient à risque. (Le nom "nightly" vient du fait qu'il s'agit de la toute dernière version, généralement créée automatiquement à la fin de chaque journée de travail.)

La plupart des utilisateurs de PyTorch s'en tiendront probablement à la version dite "stable", qui n'a pas été touchée par cette attaque.

De plus, d'après le rapport de PyTorch, il semble que le fichier exécutable du malware Triton ciblait spécifiquement les environnements Linux 64 bits.

Nous supposons donc que ce programme malveillant ne fonctionnerait sur les ordinateurs Windows que si le sous-système Windows pour Linux (WSL) était installé.

N'oubliez pas, cependant, que les personnes les plus susceptibles d'installer des "nightlies" réguliers incluent les développeurs de PyTorch lui-même ou d'applications qui l'utilisent - y compris peut-être vos propres développeurs internes, qui pourraient avoir un accès basé sur une clé privée à la construction d'entreprise , serveurs de test et de production.

Vol de données DNS

Curieusement, le malware Triton n'exfiltre pas ses données (le terme de jargon militariste que l'industrie de la cybersécurité aime utiliser au lieu de voler or copier illégalement) en utilisant HTTP, HTTPS, SSH ou tout autre protocole de haut niveau.

Au lieu de cela, il crypte et encode les données qu’il souhaite voler dans une séquence de ce qui ressemble à des « noms de serveur » appartenant à un nom de domaine contrôlé par les criminels.

Cela signifie qu’en effectuant une séquence de recherches DNS, les escrocs peuvent extraire une petite quantité de données dans chaque fausse requête.

C'est le même genre de truc qui a été utilisé par Les pirates Log4Shell à la fin de 2021, qui a divulgué des clés de chiffrement en effectuant des recherches DNS pour des « serveurs » avec des « noms » qui se trouvaient être la valeur de votre clé d'accès AWS secrète, pillée à partir d'une variable d'environnement en mémoire.

Donc, ce qui ressemblait à une recherche DNS innocente, bien qu'inutile, pour un "serveur" tel que S3CR3TPA55W0RD.DODGY.EXAMPLE divulguerait discrètement votre clé d'accès sous le couvert d'une simple recherche dirigée vers le serveur DNS officiel répertorié pour le DODGY.EXAMPLE domaine.


DÉMO LIVE LOG4SHELL EXPLIQUANT L'EXFILTRATION DE DONNÉES VIA DNS

[Contenu intégré]

Si vous ne pouvez pas lire clairement le texte ici, essayez d'utiliser le mode plein écran, ou regarder directement sur Youtube.
Cliquez sur le rouage dans le lecteur vidéo pour accélérer la lecture ou pour activer les sous-titres.


Si les escrocs possèdent le domaine DODGY.EXAMPLE, ils peuvent dire au monde à quel serveur DNS se connecter lors de ces recherches.

Plus important encore, même les réseaux qui filtrent strictement les connexions réseau basées sur TCP en utilisant HTTP, SSH et d'autres protocoles de partage de données de haut niveau…

… parfois ne filtrent pas du tout les connexions réseau basées sur UDP utilisées pour les recherches DNS.

Le seul bémol pour les escrocs est que les requêtes DNS ont une taille plutôt limitée.

Les noms de serveurs individuels sont limités à 64 caractères sur un ensemble de 37 (AZ, 0-9 et le tiret ou le tiret), et de nombreux réseaux limitent les paquets DNS individuels, y compris toutes les requêtes, en-têtes et métadonnées inclus, à seulement 512 octets chacun.

Nous supposons que c'est pourquoi le logiciel malveillant dans ce cas a commencé par s'attaquer à vos clés privées, puis s'est limité à 1000 100,000 fichiers au maximum, chacun inférieur à XNUMX XNUMX octets.

De cette façon, les escrocs peuvent voler de nombreuses données privées, notamment les clés d'accès au serveur, sans générer un nombre ingérable de recherches DNS.

Un nombre inhabituellement élevé de recherches DNS peuvent être remarquées pour des raisons opérationnelles courantes, même en l'absence de tout examen spécifiquement appliqué à des fins de cybersécurité.

Que faire?

PyTorch a déjà pris des mesures pour arrêter cette attaque, donc si vous n'avez pas encore été touché, vous ne le serez certainement pas maintenant, car le programme malveillant torchtriton package sur PyPI a été remplacé par un package vide délibérément " raté " du même nom.

Cela signifie que toute personne ou tout logiciel ayant essayé d'installer torchtriton de PyPI après le 2022-12-30T08:38:06Z, que ce soit par accident ou à dessein, ne recevrait pas le logiciel malveillant.

Le paquet escroc PyPI après l'intervention de PyTorch.

PyTorch a publié une liste pratique d'IoC, ou indicateurs de compromis, que vous pouvez rechercher sur votre réseau.

N'oubliez pas, comme nous l'avons mentionné plus haut, que même si la quasi-totalité de vos utilisateurs s'en tiennent à la version "stable", qui n'a pas été touchée par cette attaque, vous pouvez avoir des développeurs ou des passionnés qui expérimentent les "nightlies", même s'ils utilisent la version stable libérer également.

D'après PyTorch :

  • Le malware est installé avec le nom de fichier triton. Par défaut, vous vous attendez à le trouver dans le sous-répertoire triton/runtime dans le répertoire des packages de votre site Python. Étant donné que les noms de fichiers à eux seuls sont de faibles indicateurs de logiciels malveillants, considérez toutefois la présence de ce fichier comme une preuve de danger ; ne traitez pas son absence comme un feu vert.
  • Le malware dans cette attaque particulière a la somme SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. Encore une fois, le logiciel malveillant pourrait facilement être recompilé pour produire une somme de contrôle différente, donc l'absence de ce fichier n'est pas un signe de santé définitive, mais vous pouvez traiter sa présence comme un signe d'infection.
  • Les recherches DNS utilisées pour voler des données se sont terminées par le nom de domaine H4CK.CFD. Si vous avez des journaux réseau qui enregistrent les recherches DNS par nom, vous pouvez rechercher cette chaîne de texte comme preuve que des données secrètes ont été divulguées.
  • Les réponses DNS malveillantes sont apparemment allées à, et les réponses, le cas échéant, provenaient d'un serveur DNS appelé WHEEZY.IO. Pour le moment, nous ne pouvons trouver aucun numéro IP associé à ce service, et PyTorch n'a fourni aucune donnée IP qui lierait le trafic DNS à ce malware, nous ne savons donc pas à quel point ces informations sont utilisées pour la chasse aux menaces. en ce moment [2023-01-01T21:05:00Z].

Heureusement, nous supposons que la majorité des utilisateurs de PyTorch n'auront pas été affectés par cela, soit parce qu'ils n'utilisent pas de versions nocturnes, soit parce qu'ils ne travaillaient pas pendant la période de vacances, ou les deux.

Mais si vous êtes un passionné de PyTorch qui bricole des versions nocturnes et que vous avez travaillé pendant les vacances, alors même si vous ne trouvez aucune preuve claire que vous avez été compromis…

…vous pourriez néanmoins envisager de générer de nouvelles paires de clés SSH par précaution et de mettre à jour les clés publiques que vous avez téléchargées sur les différents serveurs auxquels vous accédez via SSH.

Si vous pensez avoir été compromis, bien sûr, ne remettez pas à plus tard ces mises à jour de clé SSH – si vous ne les avez pas déjà faites, faites-les maintenant !


Horodatage:

Plus de Sécurité nue