Attaque sur l'infrastructure PyTorch, compromettant le référentiel et les versions

Les détails de l'attaque contre l'infrastructure utilisée dans le développement du framework d'apprentissage automatique PyTorch ont été révélés, ce qui a permis d'extraire des clés d'accès suffisantes pour placer des données arbitraires dans le référentiel avec les versions de projet sur GitHub et AWS, ainsi que pour remplacer le code dans la branche principale du référentiel et ajoutez une porte dérobée via les dépendances. L'usurpation d'identité de version de PyTorch pourrait être utilisée pour attaquer de grandes entreprises telles que Google, Meta, Boeing et Lockheed Martin qui utilisent PyTorch dans leurs projets. Dans le cadre du programme Bug Bounty, Meta a payé 16250 XNUMX $ aux chercheurs pour obtenir des informations sur le problème.

L'essence de l'attaque réside dans la possibilité d'exécuter votre code sur des serveurs d'intégration continue qui effectuent des reconstructions et exécutent des tâches pour tester les nouvelles modifications envoyées au référentiel. Le problème affecte les projets qui utilisent leurs propres gestionnaires externes « Self-Hosted Runner » avec les actions GitHub. Contrairement aux actions GitHub traditionnelles, les gestionnaires auto-hébergés ne s'exécutent pas sur l'infrastructure GitHub, mais sur leurs propres serveurs ou dans des machines virtuelles gérées par les développeurs.

L'exécution de tâches d'assemblage sur vos serveurs vous permet d'organiser le lancement de code capable d'analyser le réseau interne d'une entreprise, de rechercher dans le FS local des clés de chiffrement et des jetons d'accès et d'analyser les variables d'environnement avec des paramètres d'accès au stockage externe ou aux services cloud. En l'absence d'isolation appropriée de l'environnement d'assemblage, les données confidentielles trouvées peuvent être envoyées à des attaquants externes, par exemple via l'accès à des API externes. Pour déterminer l'utilisation de Self-Hosted Runner par les projets, la boîte à outils Gato peut être utilisée pour analyser les fichiers de flux de travail accessibles au public et les journaux de lancement de tâches CI.

Dans PyTorch et de nombreux autres projets qui utilisent Self-Hosted Runner, seuls les développeurs dont les modifications ont été préalablement examinées par les pairs et incluses dans la base de code du projet sont autorisés à exécuter des tâches de build. Avoir le statut « contributeur » lors de l'utilisation des paramètres par défaut dans le référentiel permet de lancer des gestionnaires GitHub Actions lors de l'envoi de pull request et, par conséquent, d'exécuter votre code dans n'importe quel environnement GitHub Actions Runner associé au référentiel ou à l'organisation supervisant le projet.

Le lien vers le statut "contributeur" s'est avéré facile à contourner - il suffit d'abord de soumettre une modification mineure et d'attendre qu'elle soit acceptée dans la base de code, après quoi le développeur a automatiquement reçu le statut de participant actif, dont les demandes d'extraction peuvent être testées dans l'infrastructure CI sans vérification séparée. Pour obtenir le statut de développeur actif, l'expérience comprenait des modifications cosmétiques mineures pour corriger les fautes de frappe dans la documentation. Pour accéder au référentiel et au stockage des versions de PyTorch, l'attaque lors de l'exécution du code dans le « Self-Hosted Runner » a intercepté le jeton GitHub utilisé pour accéder au référentiel à partir des processus de construction, ainsi que les clés AWS utilisées pour enregistrer les résultats de la construction. .

Le problème n'est pas spécifique à PyTorch et affecte de nombreux autres grands projets qui utilisent les paramètres par défaut de « Self-Hosted Runner » dans les actions GitHub. Par exemple, la mise en œuvre d'attaques similaires a été mentionnée pour installer une porte dérobée dans certains grands portefeuilles de crypto-monnaie et projets de blockchain avec une capitalisation d'un milliard de dollars, apporter des modifications aux versions de Microsoft Deepspeed et TensorFlow, compromettre l'une des applications CloudFlare et également exécuter code sur un ordinateur du réseau Microsoft. Les détails de ces incidents n'ont pas encore été divulgués. Dans le cadre des programmes de bug bounty existants, les chercheurs ont soumis plus de 20 candidatures pour des récompenses d'une valeur de plusieurs centaines de milliers de dollars.

Source: opennet.ru

Ajouter un commentaire