Vulnérabilités non détectées de macOS et iOS - Une décennie de risques de sécurité
Pendant dix ans environ, des vulnérabilités non détectées ont laissé des milliers d'applications macOS et iOS exposées à des attaques de la chaîne d'approvisionnement.
Ces failles ont permis aux hackers d'ajouter du code malveillant, compromettant potentiellement la sécurité de millions, voire de milliards, d'utilisateurs. Les chercheurs d'EVA Information Security ont révélé ces informations hier, après que les vulnérabilités aient été corrigées en octobre dernier.
CocoaPods: le cœur de la problématique
Les vulnérabilités résidaient dans un serveur "trunk" utilisé pour gérer CocoaPods, un dépôt de projets open source en Swift et Objective-C dont environ 3 millions d'applications macOS et iOS dépendent. Lorsque les développeurs modifient leurs "pods" (packages de code individuels), les applications dépendantes intègrent ces modifications automatiquement via des mises à jour, sans intervention des utilisateurs finaux. Les chercheurs d'EVA ont souligné que nombreuses d’entre elles accèdent à des informations sensibles telles que des détails de cartes de crédit, des dossiers médicaux et des documents privés. Leur injecter du code malveillant pourrait permettre aux attaquants d'accéder à ces données pour des activités malveillantes: ransomware, fraude, chantage, espionnage industriel, etc. Cela pourrait également exposer les entreprises à des responsabilités légales et à des risques de réputation majeurs.
Les trois vulnérabilités clés
Manipulation de l'URL de validation de session: La première vulnérabilité, suivie sous le code CVE-2024-38367, permettait aux attaquants de manipuler l'URL dans un lien de validation pour le faire pointer vers un serveur contrôlé par eux. En utilisant un en-tête XFH falsifié, les chercheurs pouvaient construire des URL malveillantes.
Prise de contrôle des pods abandonnés: La deuxième vulnérabilité, CVE-2024-38368, permettait aux attaquants de prendre le contrôle des pods abandonnés mais toujours utilisés par des applications. Une interface de programmation obsolète autorisait à quiconque trouvant un pod orphelin de l'activer sans preuve de propriété, simplement en envoyant une requête curl.
Exécution de code sur le serveur trunk: La troisième vulnérabilité, CVE-2024-38366, permettait aux attaquants d'exécuter du code sur le serveur trunk. En exploitant une faiblesse dans la vérification des adresses email, ils pouvaient injecter une commande bash malveillante, obtenant ainsi un accès shell au serveur.
Les actions de CocoaPods et les conseils pour les développeurs
Après la notification privée des chercheurs, les chargés de maintenance de CocoaPods ont corrigé les failles et mis en place de nouvelles procédures de récupération des pods orphelins. Aucune action n'est requise de la part des développeurs ou des utilisateurs finaux, mais les chercheurs d'EVA recommandent de suivre certaines étapes pour renforcer la sécurité:
Synchroniser le fichier podfile.lock entre tous les développeurs CocoaPods.
Valider les CRC des pods internes avec ceux téléchargés depuis le serveur trunk.
Effectuer des revues de sécurité approfondies du code tiers.
Vérifier l'absence de pods orphelins dans leurs dépendances.
Utiliser des dépendances tierces activement maintenues.
Effectuer des analyses de code de sécurité périodiques.
Se méfier des dépendances très largement utilisées.
Bien qu'il n'y ait aucune preuve directe que ces vulnérabilités aient été exploitées dans la nature, leur présence montre la nécessité d'une vigilance continue en matière de sécurité logicielle. Les modifications de code potentielles pourraient affecter des millions d'appareils Apple à travers le monde.