Publié le: Février 16, 2024
Comprendre les jailbreaks
En ce qui concerne les iPhones, le terme « jailbreak » (inventé avec la première version d'iOS avant même qu'elle ne soit nommée « iOS ») combine technologie et concept de libération des restrictions :
- Prison: À l'origine, ce terme désigne une prison ou un lieu de confinement métaphorique. Dans le contexte des iPhones, il représente les restrictions et limitations imposées par Apple aux applications tierces fonctionnant sous iOS. Apple exerce un contrôle strict sur les actions possibles des utilisateurs sur leurs appareils grâce aux règles de l'App Store et aux mesures de sécurité du système. Ces limitations incluent l'impossibilité d'installer des applications provenant de sources autres que l'App Store, de personnaliser l'apparence et les fonctionnalités de l'appareil, et d'accéder au fonctionnement interne du système d'exploitation.
- Pause: Cela implique de s'évader ou de se libérer d'une contrainte. Dans le contexte du jailbreak de l'iPhone, cela signifie contourner les restrictions imposées par iOS d'Apple. Ce processus consiste à exploiter des failles de sécurité du système iOS pour obtenir un accès root ou des privilèges d'administrateur, permettant ainsi aux utilisateurs de modifier l'appareil de manières généralement interdites par Apple.
Débrider un iPhone donne à l'utilisateur un accès complet en écriture et en exécution. En résumé, « débrider » un iPhone signifie s'affranchir des restrictions et limitations imposées par iOS d'Apple, permettant ainsi aux utilisateurs de mieux contrôler leur appareil et de le personnaliser à leur guise. Ce terme reflète l'idée de libérer son iPhone de la « prison » que représentent les restrictions d'Apple, offrant ainsi plus de liberté et de flexibilité.
Le désir de libérer son téléphone a donné naissance à une « communauté » Jailbreak composée de hackers, d'utilisateurs curieux et… acteurs de la menaceComme toute communauté qui se respecte, un groupe Reddit (r / jailbreakDes communautés se sont formées, des chaînes YouTube ont été créées (et supprimées), et le dark web/web gris permet le partage de conseils, de techniques et de procédures de jailbreak entre les membres de la communauté. Le jailbreak est recherché depuis longtemps, et ceux qui découvrent, appliquent et partagent des techniques de jailbreak acquièrent une certaine notoriété au sein de cette communauté.
Notez que le jailbreak peut annuler les garanties et avoir des conséquences juridiques ; Apple ne le soutient ni ne l’encourage officiellement. Sachez également que si le fait de contourner la politique d’Apple annule la garantie, cela n’est pas illégal en soi. De nombreux membres de la communauté du jailbreak considèrent d’ailleurs que c’est leur droit, voire leur devoir, d’y participer, et pas nécessairement à des fins malveillantes. Tandis qu’une communauté de hackers, de cybercriminels et de farceurs s’est constituée, de manière informelle, une communauté de jailbreak amateur déterminée à contrer les efforts d’Apple pour verrouiller son système d’exploitation, un secteur lucratif spécialisé dans le piratage d’iOS s’est également développé. Des entreprises comme NSO, Cellebrite et Paragon proposent des techniques de jailbreak sophistiquées, moyennant paiement. Les forces de l’ordre et les gouvernements du monde entier – même s’ils rechignent à l’admettre publiquement – y ont également recours. presque sûrement se prévaloir de ces services.
Dans le monde de sécurité de l'applicationLe jailbreak revêt une importance capitale car, lorsqu'un acteur malveillant souhaite modifier une application, l'une de ses premières actions consiste à jailbreaker le téléphone pour pouvoir exécuter l'application modifiée. Autrement dit, bien que le jailbreak d'un téléphone ne soit ni illégal ni même contraire à l'éthique, il constitue, dans la plupart des cas, une étape nécessaire pour utiliser une application modifiée. Par conséquent, la détection des téléphones jailbreakés est essentielle à toute sécurité. durcissement de l'application Solution.
Dans le même temps, Apple a constamment investi temps, argent, efforts et ingéniosité pour empêcher tout jailbreak. Au fil du temps, les techniques de jailbreak sont devenues plus complexes, nécessitant souvent l'exploitation de plusieurs failles pour débrider complètement l'appareil, en raison des améliorations apportées par Apple à sa sécurité. L'évolution des efforts d'Apple pour empêcher le jailbreak est longue et riche en rebondissements – un véritable jeu du chat et de la souris qui a stimulé l'innovation au sein de la « communauté » du jailbreak et chez Apple elle-même.
Bien que la détection du jailbreak soit essentielle pour garantir la sécurité des applications disponibles publiquement, tous les jailbreaks ne se valent pas ; certains ne constituent même pas une menace majeure pour la sécurité.
Cet article 1) décrira l'évolution des jailbreaks d'iPhone et 2) expliquera quels types de jailbreaks donnent un accès complet aux ressources système au sens original du terme, et lesquels sont des cousins moins puissants du jailbreak traditionnel.
L'évolution conjointe d'iOS et des jailbreaks
Figure 1 : Un groupe de joyeux évadés de prison à la DEF CON (août 2011). Crédit photo : Dreamyshade – Travail personnel, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=38871495
Les débuts : Exploits de la BootROM
Au départ, le jailbreak se concentrait principalement sur la bootROM, un composant fondamental du processus de démarrage des appareils iOS. La bootROM est un logiciel de bas niveau intégré de façon permanente au matériel, ce qui rend les failles de sécurité à ce niveau particulièrement puissantes. Les attaques contre la bootROM affectent toute la chaîne de sécurité : le chargeur de démarrage, le noyau et, finalement, l’environnement utilisateur. Une faille de sécurité réussie dans la bootROM pouvait donner un accès sans précédent à l’appareil, permettant des modifications permanentes qui pouvaient survivre aux mises à jour logicielles et aux réinitialisations. Cette époque a été marquée par des exploits célèbres comme… limera1n et Pwnagetool, qui a permis de déverrouiller les iPhones en masse, autorisant l'installation de firmwares personnalisés et des modifications profondes du système.
Le passage à iBoot : vulnérabilités du chargeur de démarrage
Face au renforcement de la sécurité de la bootROM par Apple, les attaquants se sont tournés vers iBoot, l'étape suivante du processus de démarrage d'iOS. Les failles du chargeur de démarrage, telles que redsn0w et Sn0wbreeze, bien que moins permanentes que les vulnérabilités de la bootROM, offraient un contrôle étendu sur l'appareil. En compromettant iBoot, les attaquants pouvaient influencer le noyau et l'environnement utilisateur, permettant une personnalisation importante et le contournement des restrictions de l'écosystème Apple. Ces vulnérabilités étaient corrigibles par des mises à jour logicielles, ce qui en faisait une méthode de jailbreak moins durable, mais toujours efficace.
L'ère du noyau : correctifs et protection
L'évolution vers l'exploitation des failles du noyau a marqué une étape importante dans les techniques de jailbreak. Les vulnérabilités au niveau du noyau, exploitées par des outils tels que… Pangu, Taig, ainsi YaluCette période a permis l'exécution de code non signé et des modifications système profondes sans altérer le processus de démarrage. Elle a consolidé une approche plus raffinée du jailbreak, axée sur la flexibilité opérationnelle au sein de l'architecture de sécurité d'Apple. Les jailbreaks comme Electra et Unc0ver Il a illustré une fois de plus cette stratégie en contournant les défenses d'Apple pour modifier le système tout en conservant une apparence de conformité avec les protocoles de sécurité d'iOS.
Débruitages modernes : Exploitations de précision et de processus spécifiques
L'année 2015 a marqué un tournant dans l'histoire du jailbreak. Apple, ayant considérablement renforcé la sécurité de sa bootROM et d'iBoot, ne se contentait plus de réagir aux failles de son noyau par des correctifs périodiques et a lancé une offensive contre la communauté du jailbreak grâce à une série d'innovations qui ont mis cette dernière – ainsi que des entreprises comme Cellebrite et NSO – sous pression.
Dans iOS 9 (septembre 2015), Apple a introduit la protection des correctifs du noyau (KPP), sa mise à jour de sécurité la plus critique. La KPP désigne un code implémenté dans le noyau pour protéger la mémoire en lecture-exécution et en lecture seule du cache du noyau. Elle y parvient en effectuant des vérifications aléatoires à intervalles réguliers.
Depuis septembre 2015, les techniques de jailbreak se divisent en deux catégories : KPPLess et KPP Bypass. KPPLess est une technique qui permet de maintenir le protocole KPP actif, c'est-à-dire de contourner la vérification KPP. KPP Bypass, quant à lui, désactive complètement le protocole KPP. Avant l'introduction de KPP, un attaquant devait généralement disposer des droits d'écriture sur le noyau pour modifier le code de sécurité.
Dans les puces A10, initialement livrées avec iOS 10 en juin 2016, Apple a introduit KTRR (Kernel Text Read Only Region), une zone de lecture seule du noyau iOS empêchant toute modification du noyau lors de son exécution. Les puces plus anciennes tentaient de contourner cette limitation via un programme de surveillance chargé dans EL3, mais cette méthode était fondamentalement défaillante et la communauté du jailbreak avait depuis longtemps trouvé des moyens de la contourner. À partir des puces A10, Apple a de fait intégré les contrôles de sécurité au matériel lui-même, rendant ainsi la tâche des jailbreakers (aussi bien au sein de la communauté que dans le secteur commercial) plus ardue.
En juin 2018, avec la sortie d'iOS 12, Apple a introduit PAC (Pointer Authentication Code), sa propre implémentation de l'authentification des pointeurs. PAC utilise les bits de poids fort d'un pointeur pour stocker une signature cryptographique, renforçant ainsi la sécurité en vérifiant les valeurs des pointeurs et en fournissant un contexte supplémentaire. Des instructions spécifiques permettent d'ajouter un code d'authentification à un pointeur, de vérifier le PAC d'un pointeur authentifié et de restaurer sa valeur d'origine. Le système dispose ainsi d'un moyen de garantir, grâce à un chiffrement robuste, la probabilité que certains pointeurs aient été altérés par des attaquants, ce qui offre la possibilité d'améliorer considérablement la sécurité des applications.
Lors de la sortie des puces A12 plus tard dans l'année (septembre 2018), Apple a introduit la couche de protection des pages (PPL). L'objectif de la PPL est d'empêcher les acteurs malveillants de modifier le code exécutable d'un processus ou ses tables de pages, même après avoir obtenu les privilèges de lecture/écriture/exécution du noyau. Il s'agit d'une mesure de protection supplémentaire qui complique l'enchaînement des attaques. Elle exploite APRR pour créer un « noyau dans le noyau » qui protège les tables de pages. Le seul moyen pour le noyau de modifier les tables de pages est d'accéder à la PPL en appelant une « routine PPL », analogue à un appel système de XNU vers la PPL. Cela limite les points d'entrée dans le code du noyau susceptibles de modifier les tables de pages aux seules routines PPL. En résumé, pourquoi cette modification apportée à la puce A12 a-t-elle été si importante pour la communauté du jailbreak ?
La communauté du jailbreak a connu une période de calme relatif jusqu'en juin 2021, date à laquelle Apple a lancé iOS 15. iOS 15 a semé la pagaille au sein de la communauté du jailbreak en introduisant le SSV (Sealed System Volume). Ce mécanisme est une fonctionnalité de sécurité au niveau du noyau qui scelle le volume à l'aide d'une signature cryptographique connue uniquement d'Apple. Cette signature rejette tout code tentant de modifier le contenu du système, empêchant ainsi toute modification non autorisée avant le démarrage d'iOS. Cette méthode a contraint la communauté du jailbreak à revoir entièrement l'architecture de ses techniques précédentes. Depuis, le jailbreak se divise en deux catégories : le jailbreak sans accès root et le jailbreak avec accès root.
Les jailbreaks sans root conservent tous les fichiers et modifications en dehors du répertoire root, généralement dans / var et /privé/prédémarrageLes jailbreaks avec accès root utilisent des points de montage de type bind qui créent en réalité un accès root « fictif », lequel se comporte ensuite comme l'accès root réel. rootfsmais nécessite une faille dans la ROM de démarrage.
Le jailbreak ayant été réalisé sans modifier le code du noyau, ses effets ne s'appliquent plus à l'ensemble du système, mais plutôt à chaque processus. Autrement dit, au lieu de jailbreaker le système d'exploitation dans son ensemble, le jailbreak est désormais effectué processus par processus.
On peut voir les choses ainsi : à l'époque des jailbreaks « prémodernes », il suffisait de modifier le noyau pour affecter l'ensemble du système. Aujourd'hui, avec de nombreux jailbreaks (Chimère, checkra1nAu lieu de modifier directement le code du noyau, les techniques de jailbreak altèrent les structures de données de ce dernier, processus par processus. Cette situation complique la détection du jailbreak. Bien que l'intégrité du système semble globalement préservée, une logique est implémentée pour déterminer si un processus a été jailbreaké ou non. Autrement dit, sauf intention contraire, le processus reste jailbreaké. Cela signifie que même si ce type de jailbreak permet d'accéder à des ressources auxquelles Apple ne souhaite pas que l'application ait accès, il ne donne pas accès à tous les processus. C'est important, car cela signifie que le jailbreak lui-même n'est pas nécessairement dangereux pour toutes les applications (voire aucune) présentes sur le téléphone.
Cette nouvelle méthode de jailbreak est pour le moins techniquement complexe. Elle nécessite des hooks dans lancé Là où tous les processus sont invoqués, les hooks d'exécution et l'insertion de tous les nouveaux processus provoquent un jailbreak immédiat après leur création. Et malheureusement (du point de vue de la communauté du jailbreak), toute cette créativité technique conduit à une réduction des libertés.
Implications pour Application Security Ingénieurs et DevSecOps Gestionnaires
Alors, qu'est-ce que tout cela signifie pour vous, ingénieur en sécurité applicative ? Eh bien, l'un des meilleurs mécanismes de défense que nous vous proposons est : « « Autoprotection des applications d'exécution », ou RASPRASP permet à nos clients de programmer leurs applications pour qu'elles réagissent automatiquement en cas de déclenchement des systèmes de sécurité et de protection. Certains clients utilisent RASP depuis longtemps pour prendre des mesures en cas de jailbreak.
Mais si la longue histoire du jeu du chat et de la souris entre Apple et la communauté du jailbreak nous a appris quelque chose, c'est que tous les jailbreaks ne se valent pas. Certains nécessitent une connexion à un ordinateur, offrant peu d'utilité aux utilisateurs curieux ou à quiconque hormis les cybercriminels et les chercheurs les plus déterminés. Il en existe différents types, comme le jailbreak « semi-tethered », le jailbreak sans accès root et le jailbreak avec accès root. Certains ne méritent sans doute pas l'appellation « jailbreak » en raison de leur portée limitée, ressemblant davantage à des expériences de hackers qu'à un produit fonctionnel. Si les efforts constants d'Apple pour dissuader les jailbreaks ont stimulé l'innovation au sein de la communauté, ils ont aussi rendu les jailbreaks modernes moins performants au fil du temps. En d'autres termes, la volonté acharnée d'Apple de mettre la communauté du jailbreak sous pression a rendu le terme « jailbreak » presque trop pompeux pour désigner les avantages que ces techniques parviennent à offrir, alors même que la maîtrise technique requise pour réaliser ces prouesses techniques s'est accrue.
C’est pourquoi nous conseillons aux entreprises qui développent des applications pour leurs clients d’adopter une approche ciblée, plutôt que radicale, face aux signes de jailbreak. Par exemple, le simple fait d’enregistrer un jailbreak peut suffire, et il n’est peut-être plus nécessaire de programmer une réaction spécifique à ce type d’incident. Si vous jugez néanmoins nécessaire de programmer une réaction, tenez compte des autres mécanismes de protection déclenchés par le jailbreak lors de l’élaboration de votre stratégie de protection des applications en cours d’exécution (RASP). Le jailbreak est un facilitateur. Il est crucial de détecter les attaques qu’il permet et de ne pas se fier uniquement à la détection du jailbreak pour stopper les attaquants.
Pour en savoir plus sur la manière Digital.ai Application Security peut protéger vos applications iOS (en détectant notamment les jailbreaks), téléchargez notre TELECHARGEZ LA FICHE PRODUIT.
Vous aimerez aussi
Ce que la presse traditionnelle ignore à propos de Mythos
Nous avons vu quelques histoires de cybersécurité faire leur apparition dans les médias grand public…
Attaques d'IA agentiques : l'agent Smith sort de sa retraite
Les auteurs d'attaques contre l'évolution sans nature continuent de repousser les limites de l'IA…
Combattre le feu par le feu : utiliser l'IA pour combattre l'IA
Les attaques d'applications ont atteint 83 % en janvier 2025, contre 65 % juste…