tostphoto - stock.adobe.com
Phishing de PyPI : les experts appellent à rendre obligatoire la double authentification
Une attaque par hameçonnage récemment révélée a visé les contributeurs du plus grand dépôt de code Python. En réaction, les experts du secteur ont appelé à rendre obligatoire l’authentification à deux facteurs et la signature des paquets au sein des dépôts de code open source.
Le compte Twitter officiel du Python Package Index (PyPI) a indiqué mercredi que les responsables des paquets ont reçu un message d’hameçonnage prétendant que le dépôt mettait en œuvre un processus de validation. Le message invitait à cliquer sur un lien vers un faux site soi-disant nécessaire à la validation des paquets.
« Le lien conduit l’utilisateur vers un site de phishing imitant la page de connexion de PyPI, qui vole toutes les informations d’identification saisies », selon le fil Twitter de PyPI. « Nous avons en outre déterminé que certains mainteneurs de projets légitimes ont été compromis, et que des logiciels malveillants ont été publiés comme étant la dernière version de ces projets. »
PyPI a également supprimé du repo plusieurs centaines de typosquats. Plus précisément, des URL subtilement mal orthographiées ont été mises en place pour tromper les utilisateurs et les inciter à cliquer, selon le fil Twitter.
Today we received reports of a phishing campaign targeting PyPI users. This is the first known phishing attack against PyPI.
— Python Package Index (@pypi) August 24, 2022
We’re publishing the details here to raise awareness of what is likely an ongoing threat.
L’événement de mercredi est survenu environ une semaine après qu’une autre attaque ciblant PyPI a été découverte par des chercheurs en cybersécurité de Snyk. Elle visait également à voler les informations d’identification des utilisateurs. Elle fait suite à l’introduction par PyPI, début juillet, d’un mécanisme obligatoire d’authentification à deux facteurs (2FA) pour les projets critiques. Cette initiative implique par ailleurs la distribution gratuite de clés de sécurité matérielles pour 1 % des projets PyPI les plus importants. Les comptes qui utilisent ces clés hardware ne sont pas vulnérables à l’attaque de phishing de cette semaine, selon le compte Twitter de PyPI.
L’imposition d’un dispositif 2FA pour protéger les dépôts PyPI, tout comme l’intention de GitHub de rendre ce mécanisme obligatoire en 2023, suscite une forme de réticence. Certains développeurs estiment que cela menace leur productivité. Par exemple, le mois dernier, un contributeur à PyPI a supprimé son paquet du dépôt et l’a téléchargé à nouveau pour réinitialiser le nombre de téléchargements et contourner le recours à la double authentification.
nice, I just deleted the atomicwrites package, then uploaded a new version. now it's no longer a critical project
— Markus Unterwaditzer (@untitaker) July 8, 2022
L’authenfication à double facteur et la signature des paquets deviennent monnaie courante
Qu’ils soient obligatoires ou non, les mécanismes d’authentification à deux facteurs et de signature des paquets deviennent omniprésents dans les dépôts de code et chez les fournisseurs cloud. Cette tendance s’inscrit dans le sillage du décret présidentiel américain publié en mai 2021. L’Executive Order a mis les problèmes de sécurité de la chaîne logistique logicielle sous les feux de la rampe.
En plus de rendre obligatoire le 2FA, GitHub a également déclaré au début du mois qu’il allait intégrer le projet open source Sigstore pour la signature des paquets Node.js dans npm. Sigstore travaille avec PyPI sur une intégration similaire, annoncée pour la première fois par les responsables de PyPI en avril.
Ce n’est pas tout. Les membres du groupe de travail Security Software Repos de l’Open Software Security Foundation (OpenSSF), dont PyPI, npm, Maven Central et RubyGems, « ont travaillé ensemble pour adopter des technologies comme celle-ci dans l’ensemble de l’écosystème, et pas seulement dans un gestionnaire de paquets ». C’est ce qu’affirme Dan Lorenc, co-créateur de Sigstore et PDG de Chainguard, qui offre un support commercial au projet Sigstore.
Ce groupe a également coordonné un don de clés physiques MFA par PyPI et d’autres projets cette année, ajoute-t-il.
Toutefois, Dan Lorenc ne veut pas prendre position quant à la contrainte de l’authentification à double facteur et de la signature de paquets aux contributeurs open source.
« Nous travaillons à rendre cela suffisamment facile pour que les gens choisissent de l’adopter », déclare-t-il. « Les améliorations devraient être menées par les utilisateurs finaux qui le réclament et les mainteneurs qui acceptent de le faire ».
Des experts du secteur intransigeants
Les analystes du secteur, quant à eux, sont catégoriques : les obligations de sécurité sont nécessaires.
« Toute personne manipulant des données sécurisées, y compris ses propres informations d’identification bancaire, doit au préalable déployer l’authentification à double facteur », avance Larry Carvalho, un analyste indépendant de Robust Cloud. « Je ne pense plus que ce soit un choix au vu des répercussions possibles sur les activités, même si cela réduit la productivité. »
Cela s’applique également à la signature des paquets, ajoute-t-il.
Certains développeurs affirment être conscients du problème.
Tous les dépôts de paquets présentent le même risque. Quelqu’un peut venir remplacer une version connue d’un paquet par une dépendance contenant un malware. Elle peut rapidement être distribuée auprès des utilisateurs ayant mis en place des scripts de mise à jour automatique, selon Reed Loden, vice-président de la sécurité chez Teleport, l’éditeur d’un PAM.
« Je suis d’avis que le 2FA devrait être complètement obligatoire. Lorsque vous configurez votre compte, vous devriez l’activer », déclare-t-il. « Ce n’est pas si difficile. Nous sommes en 2022. Ce sont des attaques qui ont lieu depuis si longtemps maintenant. »
Reed Loden contribue fréquemment à de multiples projets open source, dont DefSec et RubySec d’Aqua Security. Il assure qu’il utilise un mécanisme d’authentification à double facteur.
Reed LodenVice-président de la sécurité, Teleport
« J’ai de l’empathie et de la sympathie pour les développeurs qui participent à des projets open source par pure bonté d’âme. Ils ne sont pas payés pour cela, ils choisissent de le faire », poursuit-il. « Mais je pense que vous devez assumer également une certaine responsabilité… la moindre des choses, c’est de vous assurer que quelqu’un d’autre ne reçoit pas du code que vous n’avez pas écrit vous-même, comme du code malveillant. »
Il incombe aux mainteneurs de référentiels de rendre le 2FA et la signature des paquets aussi faciles à utiliser que possible. Cependant, il ne devrait y avoir aucun doute sur le fait que les développeurs doivent utiliser ces mécanismes, selon Dave Gruber, analyste chez Enterprise Strategy Group (ESG) [propriété de Techtarget, également propriétaire du MagIT].
« Ce problème ne touche pas seulement les développeurs ou les dépôts open source. Si vous volez les identifiants d’un contributeur, vous pouvez potentiellement accéder à une pléthore d’autres dépôts de code, voire obtenir des accès privés à des éléments assez sensibles », insiste-t-il.
Quant aux développeurs qui s’inquiètent de leur productivité ou des mainteneurs de dépôts qui dépassent les bornes, Dave Gruber ne mâche pas ses mots. « Ils doivent assumer la responsabilité du rôle qu’ils jouent dans le monde », tranche-t-il.
En outre, l’automatisation devrait permettre de faire de l’authentification double facteur et de la signature des paquets, des éléments relativement transparents du processus de développement et de distribution des logiciels, ajoute-t-il.
« Une fois que les gens acceptent que cela fasse partie du processus, cela entre dans leur mémoire musculaire », conclut l’analyste.