Des programmes malveillants dans des liens « officiels » GitHub et GitLab

Est-il possible de se faire infecter par des programmes malveillants en téléchargeant des fichiers depuis des espaces de stockage Microsoft sur GitHub ? Oui, c’est possible. Faites preuve de vigilance !

L’un des tout premiers conseils en matière de sécurité est celui-ci : « Ne téléchargez que des logiciels provenant de sources officielles. » Les « sources officielles  » correspondent généralement aux principaux magasins d’applications disponibles sur chaque plateforme, mais pour des millions d’applications open source utiles et gratuites, la source la plus  » officielle  » est l’espace de stockage du développeur sur un site dédié comme GitHub ou GitLab. Vous y trouverez le code source du projet, les correctifs et les ajouts apportés au code et, souvent, une version prête à l’emploi de l’application. Ces sites sont connus de tous ceux qui s’intéressent de près ou de loin aux ordinateurs, aux logiciels et à la programmation. C’est pour cette raison qu’il a été très désagréable pour beaucoup de monde (y compris pour les spécialistes en sécurité informatique et les développeurs eux-mêmes) de découvrir qu’un fichier accessible par un lien comme github{.}com/{User_Name}/{Repo_Name}/files/{file_Id}/{file_name} pouvait être publié par une autre personne que le développeur et contenir… n’importe quoi.

Bien sûr, les cybercriminels en ont immédiatement profité.

Analyse du problème

GitHub et son proche parent GitLab sont construits autour de la collaboration sur des projets de développement de logiciels. Un développeur peut y charger son code, et d’autres personnes peuvent proposer des ajouts et des correctifs ou même créer des forks, aussi appelés reprises logicielles, c’est-à-dire des versions alternatives de l’application ou de la bibliothèque. Si un utilisateur trouve un bug dans une application, il peut le signaler au développeur en créant un rapport de problème. Les autres utilisateurs peuvent confirmer ce problème dans les commentaires. Par ailleurs, il est possible de commenter les nouvelles versions de l’application. Si nécessaire, il est également possible de joindre à ces commentaires des fichiers, comme des captures d’écran de l’erreur ou des documents à l’origine d’un plantage de l’application. Ces fichiers sont stockés sur les serveurs de GitHub à l’aide de liens semblables à ceux décrits ci-dessus.

Cependant, GitHub a une particularité : si un utilisateur rédige un commentaire et charge les fichiers qui l’accompagnent sans cliquer sur « Publier », les informations restent « bloquées » dans le brouillon et sont donc invisibles pour le propriétaire de l’application comme pour les autres utilisateurs de GitHub. Néanmoins, un lien direct vers le fichier chargé dans les commentaires est créé et demeure entièrement opérationnel, et toute personne qui suit ce lien reçoit le fichier depuis le CDN de GitHub.

Un lien de téléchargement vers un fichier malveillant est généré après l'ajout de ce fichier à un commentaire non publié sur GitHub.

Un lien de téléchargement vers un fichier malveillant est généré après l’ajout de ce fichier à un commentaire non publié sur GitHub.

De leur côté, les propriétaires de l’espace de stockage dans lequel ce fichier est publié ne peuvent pas le supprimer ou le bloquer. Ils n’ont même pas connaissance de son existence ! De plus, il n’existe pas de paramètres pour restreindre le chargement de ce type de fichiers dans l’espace de stockage dans son ensemble. La seule solution consisterait à désactiver complètement les commentaires (sur GitHub, il est possible de les désactiver pendant six mois), mais cela empêcherait les développeurs de recevoir des retours.

Le mécanisme des commentaires sur GitLab est similaire, car il permet de publier des fichiers par l’intermédiaire de brouillons de commentaires. Les fichiers sont accessibles via un lien comme gitlab.com/{User_Name}/{Repo_Name}/uploads/{file_Id}/{file_name}.

Cependant, dans ce cas précis, le problème est quelque peu minimisé par le fait que seuls les utilisateurs GitLab enregistrés et connectés peuvent charger des fichiers.

Un vrai cadeau pour les campagnes de phishing

Grâce à la possibilité de publier des fichiers arbitraires via des liens commençant par « github » ou « gitlab » et contenant les noms de développeurs respectés et de projets populaires (car un commentaire non publié avec un fichier peut être laissé dans presque tous les espaces de stockage), les cybercriminels sont en mesure de mener des attaques de phishing très convaincantes. Des campagnes malveillantes impliquant des « commentaires » censés contenir des applications de triche liées à des jeux ont déjà été découvertes dans des espaces de stockage Microsoft.

Un utilisateur vigilant pourrait se demander pourquoi une application de triche liée à un jeu se trouverait dans l’espace de stockage Microsoft https://github{.}com/microsoft/vcpkg/files/…../Cheat.Lab.zip. Cependant, il est bien plus probable que les mots clés « github » et « microsoft » rassurent la victime, qui n’analysera pas davantage le lien. Les cybercriminels les plus rusés peuvent dissimuler leurs programmes malveillants avec encore plus de soin, par exemple en les présentant comme une nouvelle version d’une application distribuée via GitHub ou GitLab et en publiant des liens via des « commentaires » sur l’application en question.

Comment vous protéger des contenus malveillants sur GitHub et GitLab ?

Alors que ce défaut de conception n’a toujours pas été corrigé et que n’importe qui peut encore librement charger des fichiers arbitraires vers le CDN de GitHub et de GitLab, les utilisateurs de ces plateformes doivent faire preuve d’une extrême prudence.

  • Ne téléchargez pas de fichiers à partir de liens directs vers GitHub ou GitLab trouvés dans des sources externes, c’est-à-dire sur d’autres sites Internet, dans des emails ou dans des chats. Ouvrez plutôt la page du projet (github{.}com/{User_Name}/{Repo_Name} ou gitlab{.}com/{User_Name}/{Repo_Name}) et assurez-vous que vous pouvez effectivement télécharger le fichier à partir de là. Les fichiers officiels des développeurs doivent être publiés et visibles dans leur espace de stockage.
  • Vérifiez que vous vous trouvez sur la vraie page des développeurs. Dans GitHub, GitLab et les autres espaces de stockage open source, le typosquattage, c’est-à-dire la création de faux projets dont le nom diffère d’une ou deux lettres de l’original (par exemple, Chaddev au lieu de Chatdev), est une pratique courante.
  • Évitez de télécharger des applications qui ont peu d’étoiles (ou de mentions j’aime) et qui ont été créées récemment.
  • Utilisez une protection contre les programmes malveillants et le phishing sur tous vos ordinateurs et smartphones. Kaspersky Premium offre une protection complète aux joueurs et aux passionnés d’informatique.
Conseils