Avant iOS 11, une app pouvait facilement connaitre la liste des programmes installés
Par Didier Pulicani - Publié le
Malgré toutes les précautions prises par Apple pour protéger ses utilisateurs, iOS regorge de
Déjà en 2009, on se souvient de la conférence données par Nicolas Seriot, un suisse expert en sécurité informatique, et qui mettait en garde contre les
Cette fois, c'est le développeur Pierre Blazquez qui a découvert un moyen pour n'importe quelle application, de lister l'intégralité des apps installées par l'utilisateurs. En soi, rien de bien grave, mais l'information est assez importante pour les développeurs et les publicitaires : il est possible alors d'étudier votre comportement, de savoir quels programmes vous avez installé récemment, ou si l'app de votre concurrent est également présente sur l'iPhone de votre utilisateur.
Pour y parvenir, Pierre utilise une API privée (Launch Services) qui fait partie du MobileCoreServices.framework, des appels relativement faciles si l'on sait quoi faire. Les listings obtenus ne se limitent pas aux apps, mais aussi aux extensions, aux widgets, aux VPN... Bref, c'est assez fou de pouvoir obtenir ces informations sans que l'utilisateur n'ait son mot à dire.
Pour démontrer son propos, notre développeur a donc créé AppBleed, un projet ouvert sur Github qui explique en détail comment il s'y est pris. Il note également que l'utilisation d'API privées peut être rendu indétectable pour différente techniques d'obfuscation de code, comme avec les bibliothèques dynamiques qui permetttent de faire évoluer le code à distance, une fois la validation passée.
Précisons que la
https://github.com/PierreBlazquez/appbleed-ios
faillede sécurité en tout genre, même si l'on peut parfois plutôt parler de laisser-aller dans l'utilisation des API.
Déjà en 2009, on se souvient de la conférence données par Nicolas Seriot, un suisse expert en sécurité informatique, et qui mettait en garde contre les
libertésoffertes par iOS au sein même de la Sandbox -le bac à sable, dans lequel l'application peut jouer librement.
Cette fois, c'est le développeur Pierre Blazquez qui a découvert un moyen pour n'importe quelle application, de lister l'intégralité des apps installées par l'utilisateurs. En soi, rien de bien grave, mais l'information est assez importante pour les développeurs et les publicitaires : il est possible alors d'étudier votre comportement, de savoir quels programmes vous avez installé récemment, ou si l'app de votre concurrent est également présente sur l'iPhone de votre utilisateur.
Pour y parvenir, Pierre utilise une API privée (Launch Services) qui fait partie du MobileCoreServices.framework, des appels relativement faciles si l'on sait quoi faire. Les listings obtenus ne se limitent pas aux apps, mais aussi aux extensions, aux widgets, aux VPN... Bref, c'est assez fou de pouvoir obtenir ces informations sans que l'utilisateur n'ait son mot à dire.
Pour démontrer son propos, notre développeur a donc créé AppBleed, un projet ouvert sur Github qui explique en détail comment il s'y est pris. Il note également que l'utilisation d'API privées peut être rendu indétectable pour différente techniques d'obfuscation de code, comme avec les bibliothèques dynamiques qui permetttent de faire évoluer le code à distance, une fois la validation passée.
Précisons que la
failleest corrigée depuis iOS 11... jusqu'à ce qu'un développeur en trouve une autre :-)
https://github.com/PierreBlazquez/appbleed-ios