Heroku admet avoir piraté la base de données client après le vol de jetons OAuth

Heroku

Heroku a maintenant révélé que les jetons OAuth d’intégration GitHub volés du mois dernier ont en outre conduit à la compromission d’une base de données client interne.

La plate-forme cloud appartenant à Salesforce a reconnu que le même jeton compromis avait été utilisé par des attaquants pour exfiltrer les mots de passe hachés et salés des clients d’une « base de données ».

La mise à jour d’Heroku intervient après que EZpublish-france.fr a contacté Salesforce hier.

Comme de nombreux utilisateurs, nous avons reçu de manière inattendue un e-mail de réinitialisation de mot de passe de Heroku, même si EZpublish-france.fr n’a aucune intégration OAuth qui utilise les applications Heroku ou GitHub. Cela indiquait que ces réinitialisations de mot de passe étaient liées à un autre problème.

Heroku explique les réinitialisations forcées de mot de passe

Cette semaine, Heroku a commencé à effectuer des réinitialisations forcées de mot de passe pour un sous-ensemble de ses comptes d’utilisateurs après l’incident de sécurité du mois dernier, sans expliquer pleinement pourquoi.

Mardi soir, certains utilisateurs de Heroku ont reçu des e-mails intitulés « Notification de sécurité Heroku – réinitialisation des mots de passe des comptes d’utilisateurs le 4 mai 2022 », informant les utilisateurs que les mots de passe de leurs comptes étaient en cours de réinitialisation en réponse à l’incident de sécurité. La réinitialisation invaliderait également tous les jetons d’accès à l’API et obligerait les utilisateurs à en générer de nouveaux, a expliqué l’e-mail.

Mais, l’incident de sécurité d’origine mentionné impliquait des acteurs de la menace qui volaient des jetons OAuth délivrés à Heroku et Travis-CI et en abusaient pour télécharger des données à partir de référentiels GitHub privés appartenant à des dizaines d’organisations, dont npm.

« Le 12 avril, GitHub Security a ouvert une enquête qui a révélé des preuves qu’un attaquant avait abusé 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 de dizaines d’organisations, dont npm », avait déclaré GitHub. précédemment divulgué.

Ces jetons avaient auparavant été utilisés par les applications Travis-CI et Heroku OAuth pour s’intégrer à GitHub afin de déployer des applications.

En volant ces jetons OAuth, les acteurs de la menace pourraient accéder et télécharger des données à partir des référentiels GitHub appartenant à ceux qui ont autorisé les applications Heroku ou Travis CI OAuth compromises avec leurs comptes. Notez que l’infrastructure, les systèmes ou les référentiels privés de GitHub eux-mêmes n’ont pas été affectés par l’incident.

Mais cela n’expliquait toujours pas pourquoi Heroku aurait besoin de réinitialiser certains mots de passe de compte d’utilisateur, jusqu’à présent.

Il s’avère que le jeton compromis d’un compte machine Heroku obtenu par des pirates a également permis un accès non autorisé à la base de données interne des comptes clients de Heroku :

« Notre enquête a également révélé que le même jeton compromis avait été utilisé pour accéder à une base de données et exfiltrer les mots de passe hachés et salés des comptes d’utilisateurs des clients », explique Heroku dans un notification de sécurité mise à jour.

« Pour cette raison, Salesforce s’assure que tous les mots de passe des utilisateurs Heroku sont réinitialisés et que les informations d’identification potentiellement affectées sont actualisées. Nous avons effectué une rotation des informations d’identification Heroku internes et mis en place des détections supplémentaires. Nous continuons à rechercher la source de la compromission du jeton. »

Un lecteur YCombinator Hacker News allégué que la « base de données » à laquelle il est fait référence pourrait être ce qu’on appelait autrefois « core-db ».

Le lecteur en question semble être Craig Kerstiens de la plateforme PostgreSQL CrunchyData, qui a auparavant affilié à Heroku.

« Le dernier rapport parle d' »une base de données » qui est vraisemblablement la base de données interne », explique le lecteur.

« Je ne veux pas trop spéculer, mais il semble [the attacker] avaient accès aux systèmes internes. C’est GitHub qui l’a détecté et remarqué et l’a signalé à Heroku. Ne contestez pas le fait qu’il devrait y avoir plus de clarté, mais il est préférable de faire un suivi avec Salesforce à ce sujet. »

Les clients appellent une vague divulgation un « accident de train »

La divulgation initiale par Heroku de l’incident de sécurité indiquait que l’accès non autorisé avait été lié à des référentiels GitHub appartenant à des comptes qui utilisaient les jetons OAuth compromis d’Heroku.

« Les jetons compromis pourraient fournir à l’acteur de la menace un accès aux dépôts GitHub des clients, mais pas aux comptes Heroku des clients », avait précédemment déclaré la société.

Mais les e-mails de réinitialisation de mot de passe ont à juste titre suscité des inquiétudes parmi les clients selon lesquelles l’enquête d’Heroku pourrait avoir découvert d’autres activités malveillantes des acteurs de la menace qui n’ont pas été divulguées.

Certains lecteurs de YCombinator Hacker News doublé la divulgation « un accident de train complet et une étude de cas sur la façon de ne pas communiquer avec vos clients. »

Dans sa quête d’être plus transparent avec la communauté, Heroku a fait la lumière sur l’incident, qui a commencé il y a quelques heures.

« Nous apprécions la transparence et comprenons que nos clients recherchent une compréhension plus approfondie de l’impact de cet incident et de notre réponse à ce jour », déclare Heroku.

La plate-forme cloud a en outre déclaré qu’après avoir travaillé avec GitHub, des fournisseurs de renseignements sur les menaces, des partenaires de l’industrie et des forces de l’ordre au cours de l’enquête, elle avait atteint un point où davantage d’informations pouvaient être partagées sans compromettre l’enquête en cours :

« Le 7 avril 2022, un acteur de la menace a obtenu l’accès à une base de données Heroku et a téléchargé des jetons OAuth d’intégration GitHub client stockés. L’accès à l’environnement a été obtenu en exploitant un jeton compromis pour un compte de machine Heroku. Selon GitHub, l’acteur de la menace a commencé énumérant les métadonnées sur les référentiels client avec les jetons OAuth téléchargés le 8 avril 2022. Le 9 avril 2022, l’attaquant a téléchargé un sous-ensemble des référentiels GitHub privés Heroku à partir de GitHub, contenant du code source Heroku.

GitHub a identifié l’activité le 12 avril 2022 et a notifié Salesforce le 13 avril 2022, date à laquelle nous avons commencé notre enquête. Par conséquent, le 16 avril 2022, nous avons révoqué tous les jetons OAuth d’intégration GitHub, empêchant les clients de déployer des applications à partir de GitHub via le tableau de bord Heroku ou via l’automatisation. Nous restons déterminés à garantir la sécurité de l’intégration avant de réactiver cette fonctionnalité. »

En revanche, un autre intégrateur tiers, Travis-CI, a révélé le jour ouvrable suivant l’annonce de GitHub notification d’origine qu’aucune donnée client n’avait été impactée par l’incident.

Il est conseillé aux utilisateurs de Heroku de continuer à surveiller le page de notification de sécurité pour les mises à jour liées à l’incident.