Trois millions d'apps iOS et macOS ont été exposées pendant plus de dix ans à des risques de piratage potentiellement sérieux. Rien n'indique que les trois vulnérabilités découvertes par E.V.A Information Security ont été exploitées, mais comme le résument ses chercheurs : « L’absence de preuve n’est pas la preuve de l’absence ». Surtout lorsque le problème a touché un service très populaire dans la communauté des développeurs Apple pendant aussi longtemps.
Le fautif est CocoaPods, un service communautaire lancé en 2011 pour aider les développeurs à gérer les dépendances de leurs applications à des librairies externes. Diverses et variées, ils en utilisent, parfois en nombre, dans leurs projets. Des modules tiers, en open source, qui évitent de réinventer la roue lorsqu'on a besoin d'une fonction courante ou d'une plus spécialisée et hors de ses compétences. CocoaPods s'occupe par exemple de mettre à jour automatiquement ces librairies tierces dans un projet lorsque leurs auteurs ont publié de nouvelles versions. CocoaPods revendique plus de 3 millions d'apps qui ont utilisé ses services via leurs développeurs.
Développeurs : CocoaPods 1.0 est disponible
Ces failles ont fait courir le risque d'un détournement du contenu et du rôle de ces librairies. Porteuses de code piraté, elles auraient pu ouvrir l'accès à des données sensibles dans les apps utilisées par tout un chacun et donner lieu à des tentatives de chantage, de menace ou au vol d'informations, suggère E.V.A Information Security.
Ces vulnérabilités découlaient d'un défaut dans l'identification des développeurs qui mettent à disposition leurs librairies. Pour la première, le lien que recevait le titulaire d'un compte chez CocoaPods pour accéder à son espace (ou "pod") pouvait être manipulé. L'URL ainsi bricolée l'aurait renvoyé à son insu vers un autre serveur étranger à CocoaPods où se seraient trouvées des librairies copiées et altérées.
La seconde faille permettait de prendre le contrôle d'un pod laissé en déshérence par son propriétaire, mais dont les librairies stockées étaient toujours liées à des projets actifs. Il y avait un moyen d'accéder à ce compte pour le réactiver, sans devoir fournir une preuve d'identité. Enfin, la troisième vulnérabilité était au niveau du serveur, dans le mécanisme prévu pour vérifier que les adresses électroniques des développeurs qui distribuent leurs librairies respectent un format standard. Il était possible de passer outre et de forcer le serveur à donner un accès à ses commandes shell. De quoi en profiter ensuite pour berner les développeurs en les dirigeant vers d'autres adresses.
Ces failles ont toutes été corrigées en octobre dernier. Les développeurs de CocoaPods ont confirmé que les scénarios proposés par les chercheurs sur les risques qu'elles faisaient peser étaient réalistes. Sans pouvoir confirmer que personne ne s'est aperçu de ces problèmes et n'en a pas tiré profit.