Sécurité : la « confusion des dépendances » a aussi touché Apple

Mickaël Bazoge |

Le chercheur en sécurité Alex Birsan est parvenu à pirater les systèmes informatiques internes de 35 entreprises, dont Apple, Netflix, Microsoft ou encore Tesla, avec une méthode toute bête (enfin, façon de parler). La trouvaille lui a permis de récupérer 130 000 $ de primes, dont 30 000 $ de la part d'Apple qui a sécurisé ses serveurs deux semaines après l'alerte donnée par le chercheur en août dernier.

Les logiciels des réseaux de ces entreprises exploitent des dépendances téléchargées depuis des dépôts open-source comme npm (Node), PyPI (Python) ou encore RubyGems (Ruby). Aucun de ces services ne peut garantir que le code contenu dans ces paquets ne contient aucun malware. Par ailleurs, les entreprises utilisent des dépendances publiques mais aussi privées, stockées en interne sur leurs serveurs et pas sur les dépôts publics.

C'est en observant la liste des dépendances dans le fichier package.json utilisé par PayPal qu'Alex Birsan s'est aperçu que le service utilisait des dépendances privées et publiques.

Après avoir téléversé sur les dépôts publics des paquets portant le même nom que ces dépendances privées, Alex Birsan s'est rendu compte que les applications utilisées par les réseaux de ces entreprises allaient télécharger non plus les paquets privés, mais les versions « piégées » et ce, de manière automatique. Dans le même genre, le chercheur a relevé que le paquet qui avait un numéro de version plus élevée avait la priorité, peu importe où il était stocké.

Cette attaque, baptisée « confusion des dépendances » par Birsan, est détaillée en long, en large et en travers par le chercheur dans ce billet Medium. C'est en s'attaquant à une dépendance privée de PayPal qu'il a eu l'idée de tester l'astuce avec des dizaines d'autres systèmes internes d'entreprises. À chaque fois, il a agi dans le respect des programmes de sécurité mis en place par ces sociétés.

Apple a confirmé que la faille pouvait permettre d'exécuter du code à distance sur ses serveurs, via le dépôt npm. En revanche, le constructeur a estimé que la vulnérabilité n'était pas de nature à créer des portes dérobées dans ses systèmes, en l'occurrence il était lié à l'authentification Apple ID.

Accédez aux commentaires de l'article