Une faille dans Cocoapods aurait pu toucher des millions d'apps iOS
- 👨 Medhi Naitmazi
- Il y a 4 ans
- 💬 Réagir
Une faille de sécurité importante révélée dans CocoaPods
Lundi dernier, les responsables du projet CocoaPods ont publié une déclaration révélant un problème de sécurité récemment découvert et présent dans le logiciel depuis juin 2015, laissant aux attaquants suffisamment de temps pour potentiellement l'exploiter.
Le problème était qu’un package conçu de manière malveillante et publié dans le référentiel CocoaPods pouvait exécuter du code arbitraire sur les serveurs qui le géraient. Cela pourrait être utilisé pour remplacer les packages existants par des versions malveillantes avec du code qui pourrait finir par être expédié dans les applications iOS et Mac utilisées par des millions de personnes dans le monde.
Cette vulnérabilité a été introduite le 4 juin 2015 et a été corrigée à partir de 11h GMT le 19 avril 2021. Le problème a été corrigé côté serveur et n'affecte pas les installations CocoaPods des développeurs.
Signal, une application de messagerie axée sur la confidentialité, est un exemple d'application populaire qui utilise CocoaPods, au même que iSoft par exemple. Une attaque soigneusement planifiée contre l'une des dépendances utilisées par Signal pourrait potentiellement exposer des données utilisateur. Il s’agit d’un scénario peu probable, étant donné que les dépendances utilisées par Signal sont auditées par l’équipe de développement de l’application, garantissant qu’aucune dépendance n’inclut de code malveillant ou de problèmes de sécurité. Cependant, tous n'ont pas ce niveau de vérification, notamment les petits développeurs indépendants.
En réponse à une demande de commentaire, Signal a fourni la déclaration suivante :
Signal n'a pas été affecté par cette vulnérabilité. En général, nous auditons toutes nos dépendances tierces à la fois au moment de leur ajout et lors de leur mise à jour. Nous conservons notre propre copie de toutes ces dépendances pour faciliter l'audit ainsi que pour éviter les changements inattendus, que vous pouvez trouver sur cette page. De plus, nous avons effectué un audit supplémentaire après avoir entendu parler de cette vulnérabilité pour vérifier que le code de ce dépôt correspond à ce code au niveau des balises pour toutes nos dépendances.
Comme l'explique l'équipe de CocoaPods, le pire des cas est qu'un attaquant aurait pu utiliser cette technique pour accéder à la base de données principale. La base de données du trunk contient les e-mails qui sont publics dans l'historique git du repo Specs. La table des informations dans la base de données qui ne doit pas être vue sont les clés de session. Ces clés agissent comme des mots de passe uniques pour les comptes et les clés de session sont utilisées pour connecter les utilisateurs authentifiés aux pods.
Il n'y a aucune preuve que la vulnérabilité ait été exploitée, et elle a maintenant été corrigée côté serveur, de sorte que les développeurs et les utilisateurs n'ont pas besoin de prendre de mesures. Les seuls développeurs affectés par le correctif seront ceux qui publient leurs propres packages sur CocoaPods, car leurs jetons d'authentification ont été réinitialisés au cas où ils auraient été exposés à cette faille.
Pour les développeurs qui utilisent CocoaPods, ou tout développeur travaillant avec des gestionnaires de dépendances, voilà une piqure de rappel concernant la vigilance nécessaire lorsqu'on intègre des éléments externes.
PS : pour ceux qui sont sous Apple Silicon, consultez notre article pour installer CocoaPods sur Mac M1.