Nouveau coup dur pour Apple : le code source de la séquence de démarrage d’iOS 9, nommé « iBoot », a été publié sur GitHub. Le constructeur publie de temps en temps des morceaux de ses systèmes d’exploitation, mais pas cette partie-là, qui est particulièrement sensible.
Ce code est utilisé au démarrage d’un appareil iOS et il est la cible idéale pour détourner les sécurités du système, que ce soit pour un jailbreak ou bien pour une attaque malveillante. Plusieurs techniques de jailbreak reposent sur des failles associées à cette partie du système et cette mise à disposition du système va simplifier les recherches.
On ne sait pas exactement comment ce code source est apparu, mais on sait que ce n’est pas une fuite récente. Comme l’indique Motherboard qui rapporte l’information, ce même code a été publié sur Reddit il y a quelques mois, mais il n’avait pas été repéré. Ce n’est clairement pas le cas du code publié sur GitHub qui commence déjà à faire parler de lui, alors même qu’il n’a pas été analysé en profondeur. Plusieurs chercheurs en sécurité ont néanmoins confirmé qu’il s’agissait bien du code source développé par le constructeur pour démarrer iOS.
C’est un vrai problème pour Apple en tout cas, même s’il s’agit du code source d’iOS 9 et non pas d’iOS 11. Il manque quelques morceaux indispensables pour le compiler et l’exploiter, mais tout cela n’a pas vraiment d’importance. D’une part, le constructeur ne modifie pas cette brique de base tous les ans et une bonne partie, peut-être même la majorité, de ce code source est certainement encore utilisée dans iOS 11. Et ce sera probablement encore le cas sous iOS 12.
Par ailleurs, l’intérêt d’avoir ce code source n’est pas de le compiler pour l’utiliser sur un appareil. Pour un hacker ou un spécialiste en sécurité, c’est une aubaine pour comprendre comment Apple sécurise iOS, et donc pour trouver comment contourner ces mesures de protection. Pour faire simple, ce code est le premier processus qui est démarré lorsqu'on allume un appareil iOS. Il est chargé de vérifier l’intégrité du noyau d’iOS, c'est-à-dire qu’il s’assure que c’est bien la version fournie par Apple et non une copie modifiée. En clair, c’est ce code qui est en première ligne pour assurer la sécurité d’iOS dans son ensemble.
Les failles de sécurité permettent toujours de contourner une protection, mais en trouver à un si bas niveau du système est le meilleur moyen de s’assurer qu’Apple ne pourra pas les combler facilement. Plusieurs solutions de jailbreak ont reposé sur la séquence de démarrage et Apple les a corrigées au fil des mises à jour, mais ce sont les failles qui sont restées le plus longtemps. Autre signe, le programme qui récompense les failles dénichées dans iOS offre la plus grande somme (200 000 $) pour celles qui impliquent cette partie du système.
À court terme, cela peut signifier le retour d’une solution de jailbreak pour les versions actuelles et futures d'iOS, alors même qu’Apple avait été assez efficace ces dernières années pour bloquer toutes les tentatives. À long terme, on ne connaît pas encore les conséquences d’une telle fuite, mais s’il y a bien des failles dans le code source publié, on peut imaginer qu’elles seront trouvées. On imagine qu’Apple ne peut plus rien faire pour iOS 11 et probablement pas pour iOS 12, sans compter que les failles en question seront peut-être très difficiles à fermer sans réécrire des pans entiers du système.
Est-ce que ce code contient aussi des informations qu’Apple aimerait garder secrètes ? On trouve dans l’un des fichiers du code source la mention d’un profil « FBI », mais il n’y a a priori pas de lien avec l’agence gouvernementale américaine. Il s’agirait plutôt d’un acronyme pour « find boot images », une fonction qui servirait pendant la séquence de démarrage. Mais peut-être qu’il y a d’autres éléments vraiment gênants pour le constructeur, cachés entre deux lignes de code ?
Quoi qu’il en soit, Apple se serait certainement bien passée de cette nouvelle fuite, nouvel épisode dans une suite de failles de sécurité gênantes ces derniers mois. Ce n’est pas la première fois que des morceaux d’iOS censés rester secrets ont été diffusés, on sait au moins qu’une partie de HomeKit a été publiée courant 2014 et l'an dernier, une partie de l'enclave sécurisée de l'iPhone 5s a été dévoilée. Mais c’est sans doute la plus grosse fuite de code propriétaire, en tout cas la plus importante par l’usage qui pourra en être fait. Pour l'enclave sécurisée, par exemple, ce qui a été diffusé ne remettait pas du tout en cause la sécurité de l'ensemble.
Le code source publié sur GitHub n’étant pas ouvert, la firme obtiendra facilement son retrait (c'est déjà arrivé à plusieurs reprises en fait, mais le code source est régulièrement remis en ligne par un autre utilisateur), mais le mal est déjà fait et tous les acteurs intéressés ont eu amplement le temps de le récupérer. Et ils ont tout le loisir de le scruter pour trouver une faille, en espérant qu’elle soit toujours présente dans iOS 11. Naturellement, Apple ne va pas rester les bras croisés et on imagine que la firme va créer une équipe pour faire le même travail, en espérant combler les failles avant qu’elles ne soient exploitées dans la nature.
Mise à jour — Apple, qui a demandé le retrait du code source, s'explique à TechCrunch. « Ce code source d'il y a trois ans a fuité », confirme tout d'abord le constructeur. Mais « la sécurité de nos produits ne dépend pas, à dessein, du secret entourant notre code source. Il y a beaucoup de couches de protection matérielle et logicielle dans nos produits, et nous encourageons toujours les consommateurs à mettre à jour leurs appareils pour bénéficier des protections les plus récentes ».