Les développeurs d'applications pour les OS Apple utilisant le gestionnaire de dépendances CocoaPods taillé pour les projets Xcode doivent se méfier. Un trou de sécurité peut être utilisé par des pirates pour des attaques suppy chain ont averti lundi des chercheurs en sécurité d'EVA Information Security. Les développeurs ayant utilisé CocoaPods ces dernières années ont ainsi tout intérêt à vérifier l'intégrité des dépendances open source dans leur code en réponse à ce risque de sécurité. Installé par défaut dans OSX, CocoaPods est un gestionnaire de dépendance pour les projets Xcode (Swift, Objective-C, iOS, OSX, WatchOS, TvOS...) contenant plus de 100 000 librairies et est utilisé dans plus de 3 millions d'applications. Les développeurs de logiciels utilisant cet outil devraient ainsi vérifier l'intégrité et l'authenticité des composants qu'ils utilisent en s'assurant que les sommes de contrôle (checksum) et les signatures numériques des paquets sont toutes présentes et correctes.

Le risque principal est de voir des cybercriminels revendiquer la propriété de milliers de "pods" de code non réclamés. Ces modules pourraient alors être utilisés pour injecter du code malveillant dans le cadre d'une attaque supply chain. Ces "pods" non réclamés sont issus d'un processus de migration qui s'est déroulé il y a dix ans et qui a laissé des milliers de paquets orphelins dans le système. Bien qu'orphelins, nombre de ces logiciels étaient encore utilisés par d'autres applications, a découvert EVA. "En utilisant une API publique et une adresse électronique disponible dans le code source de CocoaPods, un attaquant pouvait revendiquer la propriété de n'importe lequel de ces paquets, ce qui lui permettait ensuite de remplacer le code source original par son propre code malveillant", a prévenu EVA Information Security. Une API accessible au public permettait ainsi à quiconque de revendiquer des pods orphelins sans qu'aucun processus de vérification de propriété soit effectué. En effet une simple requête curl à l'API publique couplée au nom du pod ciblé non réclamé suffisait.

Les vecteurs d'attaque SCM de plus en plus sophistiqués

"Un pirate serait en mesure de manipuler le code source ou d'insérer un contenu malveillant dans le pod nouvellement revendiqué", averti EVA. "Ce pod pourrait ensuite infecter de nombreuses dépendances en aval. EVA a indiqué que des mentions de pods orphelins apparaissaient dans la documentation d'applications fournies par Meta (Facebook, Whatsapp), Apple (Safari, AppleTV, Xcode) et Microsoft (Teams), ainsi que par TikTok, Snapchat, Amazon, LinkedIn, Netflix, Okta, Yahoo, Zynga et bien d'autres encore. Les chercheurs en sécurité ont trouvé 685 pods qui avaient une dépendance explicite utilisant un pod orphelin, probablement une fraction du chiffre réel une fois que les bases de code propriétaires sont prises en compte dans l'équation. Reef Spektor, vice-président de la recherche chez EVA Information Security, a déclaré à notre confrère CSO : "Les vulnérabilités que nous avons découvertes sur les CocoaPods sont présentes depuis une dizaine d'années. Nous ne pouvons pas savoir avec certitude si elles ont été exploitées, mais nous savons que si des acteurs malveillants menaient des attaques au niveau de la chaîne d'approvisionnement, l'impact serait considérable, affectant à la fois les consommateurs de l'écosystème Apple et les entreprises qui développent des applications."

Une autre vulnérabilité identifiée en tant que CVE-2024-38368 donne par ailleurs la possibilité à un pirate d'infiltrer un serveur CocoaPods "Trunk". Selon la société israélienne de conseil en sécurité, les attaques étaient possibles parce qu'un "flux de vérification des courriers électroniques non sécurisé pouvait être exploité pour exécuter un code arbitraire sur le serveur CocoaPods 'Trunk'", ce qui permettait à un pirate de manipuler ou de remplacer les paquets téléchargés. "En usurpant un en-tête HTTP et en tirant parti d'outils de sécurité du courrier électronique mal configurés, les attaquants pourraient exécuter une attaque zéro clic qui leur donnerait accès au jeton de vérification du compte d'un développeur", a averti EVA. Avec à la clé la capacité de modifier les paquets sur le serveur CocoaPods et de provoquer des attaque supply chain mais aussi zero day. EVA a déclaré que les attaques SCM constituent un risque permanent pour tous ceux qui dépendent de logiciels tiers. "Les vecteurs d'attaque de la chaîne d'approvisionnement deviennent de plus en plus sophistiqués au fur et à mesure que la technologie progresse", explique la société.

Limiter l'utilisation de paquets orphelins ou non maintenus recommandé

EVA a informé CocoaPods des problèmes, qui ont depuis été corrigés, ce qui a permis à la société de conseil en sécurité de rendre publiques ses conclusions. Les développeurs de CocoaPods n'ont pas répondu immédiatement à la demande de commentaire de notre confrère CSO. Il est conseillé aux développeurs de revoir les listes de dépendances et les gestionnaires de paquets utilisés dans leurs applications, et de valider les sommes de contrôle des bibliothèques tierces en réponse aux vulnérabilités. Les lignes directrices générales en matière de bonnes pratiques prévoient des analyses périodiques pour détecter les codes malveillants ou les modifications suspectes. Limiter l'utilisation de paquets orphelins ou non maintenus est également une bonne idée.