GitHub : des cybercriminels ont volé les informations de connexion de 100 000 comptes d'utilisateurs de NPM,
en utilisant des jetons d'utilisateur OAuth

Le service d'hébergement de référentiels basé sur le cloud GitHub a partagé vendredi des détails supplémentaires sur le vol de ses jetons OAuth d'intégration le mois dernier, notant que l'attaquant a pu accéder aux données internes de NPM et à ses informations clients. « En utilisant des jetons d'utilisateur OAuth volés, provenant de deux intégrateurs tiers, Heroku et Travis CI, l'attaquant a été en mesure d'escalader l'accès à l'infrastructure de NPM », a déclaré Greg Ose, ajoutant que le cybercriminel a ensuite réussi à obtenir un certain nombre de fichiers.

Une sauvegarde de la base de données de skimdb.npmjs.com composée de données en date du 7 avril 2021, y compris une archive des informations sur les utilisateurs depuis 2015 et tous les manifestes de paquets NPM privés et les métadonnées des paquets. L'archive contenait les noms d'utilisateurs NPM, les hachages de mots de passe et les adresses électroniques d'environ 100 000 utilisateurs. Un ensemble de fichiers CSV comprenant une archive de tous les noms et numéros de version des versions publiées de tous les paquets privés de NPM au 10 avril 2022, et en conséquence, GitHub prend la mesure de réinitialiser les mots de passe des utilisateurs concernés.

Nom : GitHubB.png
Affichages : 17351
Taille : 20,5 Ko

Il est également prévu d'informer directement les utilisateurs dont les manifestes de paquets privés, les métadonnées et les noms et versions de paquets privés ont été exposés. La chaîne d'attaque, telle que détaillée par GitHub, implique que le cyberctiminel abuse des jetons OAuth pour exfiltrer les dépôts NPM privés contenant les clés d'accès AWS, et les utilise ensuite pour obtenir un accès non autorisé à l'infrastructure du registre.

Cela dit, aucun des paquets publiés dans le registre n'aurait été modifié par le cybercriminel et aucune nouvelle version de paquets existants n'a été téléchargée dans le référentiel. En outre, la société a déclaré que l'enquête sur l'attaque par jeton OAuth a révélé un problème sans rapport avec la découverte d'un « nombre non spécifié d'informations d'identification de l'utilisateur en texte clair pour le registre npm qui ont été capturées dans les journaux internes après l'intégration de npm dans les systèmes de journalisation de GitHub ».

GitHub a indiqué qu'il avait atténué le problème avant la découverte de la campagne d'attaque et qu'il avait purgé les journaux contenant les informations d'identification en texte clair. Le vol OAuth, que GitHub a découvert le 12 avril, concernait un acteur non identifié profitant de jetons d'utilisateur OAuth volés délivrés à deux intégrateurs OAuth tiers, Heroku et Travis CI, pour télécharger des données provenant de dizaines d'organisations, dont NPM.

La filiale détenue par Microsoft, au début du mois, a qualifié la campagne de nature « hautement ciblée », ajoutant que « l'attaquant ne faisait que répertorier les organisations afin d'identifier les comptes à cibler sélectivement pour répertorier et télécharger des dépôts privés. » Heroku a depuis reconnu que le vol des jetons OAuth d'intégration GitHub impliquait en outre un accès non autorisé à une base de données interne de clients, ce qui a incité l'entreprise à réinitialiser tous les mots de passe des utilisateurs.

Accès non autorisé à l'infrastructure npm à partir de jetons d'utilisateur OAuth volés

Le 12 avril, la sécurité de GitHub a lancé une enquête qui a permis de découvrir des preuves que l'attaquant a abusé de jetons d'utilisateur OAuth volés délivrés précédemment à deux intégrateurs OAuth tiers, Heroku et Travis CI, pour télécharger des données de dizaines d'organisations GitHub. L'une des organisations victimes touchées était npm. « Nous ne pensons pas que l'attaquant ait obtenu ces jetons via une compromission de GitHub ou de ses systèmes, car les jetons en question ne sont pas stockés par GitHub dans leurs formats originaux et utilisables », déclare GitHub.

Après la découverte de la compromission initiale de npm, GitHub a étudié l'impact sur npm. Sur la base de cette analyse, nous avons la preuve que l'acteur a pu accéder aux données internes de npm et aux informations des clients de npm. Lisez la suite pour en savoir plus. En utilisant sa base initiale de jetons d'utilisateur OAuth pour GitHub.com, l'acteur a pu exfiltrer un ensemble de dépôts npm privés, dont certains contenaient des secrets tels que des clés d'accès AWS.

En utilisant l'une de ces clés d'accès AWS, l'acteur a pu accéder à l'infrastructure AWS de npm Grâce à cet accès à l'infrastructure AWS de npm, l'acteur de la menace a pu exfiltrer une ancienne sauvegarde du miroir "skimdb.npmjs.com", qui comprenait des métadonnées et des manifestes de paquets pour tous les paquets publics et privés du registre npm au 7 avril 2021. Ces données exfiltrées comprennent les README, l'historique des versions des paquets, les adresses électroniques des mainteneurs et les scripts d'installation des paquets, mais PAS les artefacts réels des paquets, c'est-à-dire les archives elles-mêmes.

Cette sauvegarde de base de données contenait également une archive d'informations sur les utilisateurs de npm datant de 2015. GitHub a identifié qu'environ 100 000 détails de connexion d'utilisateurs de npm, y compris les noms de comptes, les adresses e-mail et les hachages de mots de passe, faisaient partie de cette archive. Les hachages de mots de passe de ces données archivées ont été générés à l'aide d'algorithmes PBKDF2 ou SHA1 salés précédemment utilisés par le registre npm. Ces algorithmes de hachage faibles n'ont pas été utilisés pour stocker les mots de passe des utilisateurs de npm depuis que le registre npm a commencé à utiliser bcrypt en 2017.

Les mots de passe appartenant aux utilisateurs impactés ont été réinitialisés et GitHub dit être en train de notifier ces utilisateurs par e-mail directement. Depuis le 1er mars 2022, le registre npm a activé la vérification par courriel sur tous les comptes qui n'ont pas l'option 2FA activée. Grâce à cette protection supplémentaire, il ne sera pas possible de compromettre un compte npm sans avoir accès à l'adresse électronique associée au compte (ou au second facteur si la fonction 2FA est activée).

Au cours de notre enquête, nous avons également déterminé que l'acteur a exfiltré un ensemble de fichiers CSV d'inventaire npm contenant des listes de répertoires des buckets S3 stockant des paquets pour le registre npm. Ces fichiers exposaient les noms de paquets privés et les versions publiées tels que stockés sur le registre npm à la date du 10 avril 2022.

Enfin, l'acteur de la menace a exfiltré un petit sous-ensemble de contenus de paquets privés appartenant à deux organisations spécifiques. GitHub a informé directement ces deux clients concernés de leur exposition. Comme le cybercriminel avait accès aux ressources S3 qui stockent le contenu des paquets npm, nous avons également examiné l'intégrité de ces paquets sur le registre npm. Sur la base de l'analyse des journaux et des événements, ainsi que de la vérification du hachage des paquets effectuée sur toutes les versions de tous les paquets, GitHub est actuellement convaincu que l'acteur n'a modifié aucun paquet publié dans le registre ni publié de nouvelles versions de paquets existants.

Informations d'identification en texte clair stockées dans des journaux internes

Les mots de passe des utilisateurs concernés par la sauvegarde de la base de données ont été réinitialisés et ces utilisateurs en sont informés. Les deux organisations dont les paquets privés ont été volés ont été informées immédiatement après que l'analyse a confirmé l'activité. « Au cours des prochains jours, nous informerons directement les personnes dont les manifestes de paquets privés, les métadonnées, les noms et les versions de paquets privés ont été exposés. Nous mettrons également à jour cet article de blog lorsque toutes les notifications auront été envoyées. Si vous n'avez reçu aucun de ces courriels de notre part, nous n'avons aucune preuve que l'attaquant a accédé à vos données », déclare GitHuB.

Sans rapport avec l'attaque par jeton OAuth, GitHub a aussi récemment découvert le stockage d'informations d'identification en texte clair dans le système de journalisation interne de GitHub pour les services npm. L'entreprise dit avoir atténué ce problème et purgé les journaux contenant les informations d'identification en texte clair avant cette attaque sur npm. L'enquête initiale et actuelle a conclu que seuls les employés internes de GitHub avaient accès à ces données au moment de l'exposition. Bien qu'il n'y ait pas eu de compromission connue, la confidentialité et la sécurité des utilisateurs sont essentielles pour maintenir la confiance, et « nous voulons rester transparents même sur des événements comme ceux-ci qui vont à l'encontre des meilleures pratiques de sécurité. » C'est dans cet esprit que nous fournissons les informations ci-dessous :

Dès la découverte d'informations d'identification en clair dans son système de journalisation interne, GitHub a immédiatement identifié les journaux spécifiques non numérisés et a recherché les informations d'identification en clair dans tous les journaux npm afin d'identifier des problèmes similaires dans d'autres services npm. L’entreprise a corrigé tous les services concernés et amélioré la vérification des journaux. Elle a ensuite purgé tous les journaux concernés de son système. « Au cours des prochains jours, nous informerons directement les utilisateurs concernés des mots de passe en clair et des jetons d'accès personnels GitHub en fonction de nos journaux disponibles », déclare GitHub.

Source : GitHub

Et vous ?

Utilisez-vous GitHub ?

Quel est votre avis sur le sujet ?

Voir aussi :

C'est officiel, Microsoft débourse 7,5 milliards $ pour s'offrir GitHub, le géant de Redmond se montre plus généreux que ce que disaient les rumeurs

GitHub veut développer un nouvel éditeur de texte multiplateforme et ultraperformant basé sur Electron, Xray est encore un projet expérimental

Microsoft et GitHub collaborent pour porter GVFS sur macOS et Linux, la solution destinée à supporter les énormes bases de code gagne en maturité

Microsoft va fermer son service d'hébergement CodePlex le 15 décembre 2017, et demande aux développeurs de migrer leurs projets vers GitHub

Open source : les projets de Microsoft attirent plus de contributeurs que ceux des autres organisations, d'après le rapport annuel de GitHub