Pirater des comptes Slack ? Aussi facile qu'une recherche effectuée sur GitHub
De nombreux développeurs ont affiché leurs tokens d'accès à Slack sur GitHub
Slack, la plateforme collaborative, présente l’avantage de pouvoir s’intégrer facilement avec d’autres outils en ligne comme GitHub, Dropbox, Google Drive et de pouvoir centraliser le suivi et la gestion d'un projet. Seulement, un nombre important de développeurs ont affiché leurs tokens d’accès à Slack sur GitHub, qui se retrouvent « extrêmement facilement à trouver à cause de leur structure », comme l’explique l’équipe Detectify qui s’est intéressée à l’impact potentiel qui pourrait en résulter, avec des exemples à l’appui.
Tout d’abord, les chercheurs ont estimé à près de 1500 le nombre de tokens Slack (les identifiants liés à leur compte Slack) qui sont disponibles publiquement, certains appartiennent à des personnes qui ont travaillé pour les entreprises figurant dans la liste Forbes 500, des fournisseurs de paiements, des fournisseurs de services internet et même des fournisseurs de soins de santé, des universités réputées, de grandes agences de publicité, etc. Mais comment cela a-t-il pu se produire ?
« Le problème est que de nombreux développeurs ont tendance à ajouter leurs tokens Slack directement dans le code lorsqu’ils conçoivent des bots Slack. Ces projets sont également partagés publiquement sur GitHub. Aussi, parce que le code embarque les tokens, le développeur est en train de donner à quiconque (qui trouve les tokens) l’accès aux chats internes de l’entreprise à laquelle appartient le développeur ainsi que l’accès aux fichiers Slack. En plus de cela, il n’y a pas de façon évidente de déterminer si quelqu’un épie les conversations », ont expliqué les experts.
Ils expliquent que dans les pires scénarios, ces tokens peuvent conduire à une fuite des identifiants de la base de données, du code source, des fichiers protégés par un mot de passe, mais également d’informations sensibles. « L’ironie de la chose c’est que la plupart de ces bots sont des "projets de weekend" amusants » ont regretté les experts, « pourtant ces projets de loisir, en combinaison avec le fait d’être partagés sur GitHub, exposent les informations sensibles de l’entreprise à des risques de fuite, mais également les messages privés et les fichiers de l’utilisateur qui a créé le token ».
Comment générer un token sur Slack et où se situe exactement le problème ? Les experts rappellent tout d’abord qu’il y a plusieurs projets open source qui permettent de créer des bots Slack, comme Hubot. Ce dernier utilise des variables d’environnement pour accéder aux tokens. L’une des raisons sous-jacentes de l’utilisation des variables d’environnement est de séparer complètement les identifiants du code, faisant en sorte que les données fournies soient tributaires de l’environnement où est exécuté le code.
« Cependant, les développeurs ont tendance à faire preuve de créativité dans la façon de travailler avec ces variables. Voici des exemples observés où les développeurs ont injecté les tokens à l'intérieur du code dans l'environnement, ce qui brise complètement le concept de la façon dont les variables d'environnement sont censées être mises en place », avancent les chercheurs.
Pire encore, les chercheurs sont tombés sur des cas où des sorties d’applications affichaient des tokens en texte clair, les exposant, lorsque les gens postaient leurs problèmes sur GitHub, à la recherche de solution dans des projets publics :
Quelle est l’étendue du problème ? Les chercheurs rappellent comment l’index full text de GitHub fonctionne, mais également le format des tokens Slack. Ces derniers se servent d’un préfixe avec un trait d’union comme séparateur (par exemple xoxp-XXXXXXXXX-XXXXXXXXXXXXXXXXXXX). « La recherche sur GitHub traite des chaînes comprenant des traits d’union comme des mots séparés et, puisque ces préfixes sont très remarquables comme étant des tokens de Slack, vous trouverez une énorme quantité de tokens Slack sur GitHub simplement en faisant une recherche de préfixes », ont avancé les chercheurs.
Les chercheurs ont rappelé qu’il existe plusieurs types de tokens, certains donnant moins d’accès que d’autres. Par exemple, un token qui a un préfixe xoxb (qui est créé par le bot Custom) est marqué comme étant un bot, le token xoxp (qui peut être généré depuis la page OAuth Test Token) se comporte exactement comme s’il avait le nom complet de l’utilisateur ainsi que son mot de passe, même pour un utilisateur ayant activé l'authentification à deux facteurs il est possible d’avoir accès à son compte Slack en se servant uniquement de ce token.
Slack a été contacté et a indiqué avoir révoqué les tokens que les chercheurs ont reporté, notifié les utilisateurs et les chefs d’équipe directement et surtout continuer de le faire de manière proactive.
Source : blog Detectify
Partager