Comment ils arrivent à faire tourner Windows... dans un iPad !

Durée: 43m22s

Date de sortie: 17/12/2024



Hébergé par Acast. Visitez acast.com/privacy pour plus d'informations.

Pourquoi Banque Populaire est la première banque des entreprises ?
Je me posais des questions sur le partage de la valeur pour mes salariés.
Elodie, ma conseillère Banque Populaire, m'a proposé une solution d'épargne salariale sur mesure,
rapide à mettre en place et que je peux piloter en ligne.
C'était simple et surtout ça a fait des heureux.
Accompagner nos clients sur tous les territoires avec des solutions adaptées à leurs besoins,
c'est ça, être la première banque des entreprises, Banque Populaire, la réussite est en voulue.
Étude Quantar PMEP, mid-2023, 14 Banques Populaires, 1ère Banque des PM.
On quitte l'IA pour entrer dans le monde merveilleux de Apple et de la virtualisation.
Deux trucs, deux mots qui ne vont d'habitude pas forcément toujours ensemble,
honnêtement ce n'est pas quand même les plus connus pour ça,
et pourtant il y a des choses hyper intéressantes justement à raconter,
notamment à propos de cette machine de l'iPad.
Et pour ça on reçoit Paul Viel, ça va ?
Bienvenue sur le plateau, on est très contents de t'avoir.
Comme vous pouvez le voir, ce petit logo, c'est la deuxième fois qu'on a quelqu'un de fasciné active.
Troisième.
On a reçu.
De cette saison, ok.
Quatrième, techniquement, quatreième personne.
Comment ça avoir un petit abonnement plus inactive ?
Exactement, peut-être qu'on pourrait imaginer directement...
Un partenariat.
Des TG Véguliers qui viennent nous amener des...
Non mais plus sérieusement, avant qu'on va rentrer évidemment dans le vif du sujet,
mais est-ce que tu veux nous raconter un peu, c'est quoi ton vrai métier, entre guillemets ?
Tu travailles donc dans le reverse engineering, si mes souvenirs sont bons.
Et à la base, t'es 1G, réseau et télécom.
Est-ce que tu peux nous raconter un peu, c'est quoi ton métier ?
Ouais, déjà j'ai un diplôme d'ingé et télécom,
mais parce que de toute façon, il n'y a aucune vraie formation classique qui va former au reverse engineering.
Moi, mon métier, concrètement, c'est faire de la recharge de vulnérabilité.
Donc on a soit un produit physique, soit un produit complètement software,
et l'objectif va être d'analyser son le produit pour voir comment il fonctionne,
et une fois qu'on sait comment il fonctionne, on va essayer de trouver des vulnérabilités dedans.
En amont de la chaîne pour essayer d'éviter que les hackers puissent les trouver par derrière.
En sachant qu'en plus, le reverse dont tu parles est assez spécifique,
dans le sens où il y a d'autres types de rétro-ingénieries,
par exemple pour copier, c'est un truc qui existe où tu achètes un produit de la concurrence,
et tu veux comprendre comment il marche ?
Ouais.
Ça en fait, c'est un domaine qui n'est pas que dans la sécurité, c'est ça qui est marrant.
Ouais, complètement. On peut faire du reverse à but d'interrobérabilité,
on peut faire du reverse aussi à but de comprendre comment fonctionne un malware,
et du coup, il y a plusieurs manières de faire ce...
enfin, plusieurs objectifs qui sont possibles.
Oui, c'est-à-dire que même dans la cyber, un reverse du malware
ou du logiciel plus classique de vulnérabilité, c'est pas la même chose.
Ouais, c'est de travail qui sont assez différents,
et d'ailleurs, quand on passe peu de l'un à l'autre,
il faut un temps d'adaptation parce que c'est des compétences assez différentes.
Mais dans quel sens ? Ils codent pas pareil ?
Est-ce que c'est un logiciel ?
Oui, d'une part, parce que déjà, l'objectif d'un malware, c'est que ça soit compliqué à reverse.
Donc déjà, il y a toute cette partie-là de des autres plus qu'il code,
de comprendre un peu ce qui fonctionne.
Et ensuite, nous, il y a une étape en plus qui est, une fois qu'on a compris comment ça fonctionne,
il faut trouver les vulnérabilités.
Oui, oui, oui.
Donc ça peut être un travail qui se fait en deux étapes,
une première partie de reverse pour savoir comment ça fonctionne,
et une deuxième partie de recharge de vulnes.
Mais pour le coup, c'est spécifique à vous,
parce qu'il y en a qui font juste du reverse pour comprendre comment ça marche,
et tout va bien après.
Oui, après, il n'y a pas de vulnes.
Je vous propose qu'on rentre un peu dans le vif du sujet,
et je vais vous présenter ce qui nous réunit aujourd'hui.
C'est cette petite machine.
L'iPad Pro, c'est pas un iPad Pro, c'est un APM, mais vous avez compris,
il y a un truc que les gens ne réalisent pas forcément,
c'est qu'il y a une bête de course dans le sens où,
en termes de, depuis notamment l'arrivée des puces Apple Silicon à l'intérieur,
c'est un peu débile la puissance de calcul qui se trouve dans ce petit objet.
Donc les M1, M2, M4, je crois que le dernier, elle a mis le plus M4,
mais peut-être que je me trompe.
Peut-être qu'on ne s'est pas encore sorti.
Si c'est ça, je crois que c'est ça.
Les plus M4 ont été introduits par l'iPad en premier, il me semble.
Je ne dis pas de bêtises.
Je ne sais plus, mais en tout cas, c'est tout frais.
Donc, il y a toujours eu ce côté un peu disproportionné des capacités
de cette petite feuille de verre,
et on est évidemment, enfin Apple, bride ce matériel.
Jusqu'à ce qu'il y a un moment, il y a une petite équipe qui s'appelle UTM,
qui met à disposition un logiciel assez particulier,
donc on va vous expliquer ce qui fait,
mais qui d'une certaine mesure pourrait vous permettre,
vous qui avez éventuellement un iPad,
de le transformer à une machine bien plus utile, bien plus intéressante.
Et ces produits, ensuite,
ont une sorte de bras de sphère assez marrant entre Apple,
qui n'aime pas trop qu'on bidouille comme ça avec leur machine,
et les équipes du TM et d'autres de la communauté du GALBRAC,
notamment dont on parle un petit peu.
Et on avait eu l'idée, justement, de parler de ce sujet,
aussi comme un prétexte pour comprendre un peu mieux
un thème qu'on va développer, qui est la virtualisation.
Et donc, ce que je te propose, c'est de rentrer dans le vif du sujet.
Déjà, pour commencer, pourquoi, question un peu vaste,
mais pourquoi l'iPad est bridé par Apple ?
En gros, ça veut dire quoi ?
On dit que cette machine est un peu bridée pour ce que c'est.
Oui, qu'est-ce que ça veut dire ?
Alors déjà, Apple, du coup, ils contrôlent,
ils essaient de contrôler le maximum de choses,
du coup, déjà niveau hardware, ils contrôlent,
comme tu le dis, c'est l'orpus M qui fabrique,
ils contrôlent le logiciel,
et du coup, ils essaient de contrôler un maximum de choses.
Ils essaient aussi, du coup, de contrôler ce que les utilisateurs peuvent faire dessus.
Et donc, à ce cadre-là, par défaut,
on n'est pas administrateur de sa machine.
Donc sur un iPhone, on a la possibilité d'installer des applications
qui ont été choisies par Apple,
et on n'a pas la possibilité d'être administrateur,
d'installer des applications qu'on veut,
c'est dans ce cadre-là qui nous bride.
Et alors, ça, typiquement, c'est pour la phase immergée,
mais très concrètement, quand on dit ne pas être administrateur,
plus techniquement, ça veut dire quoi ?
Donc par exemple, là où sur mon ordi, je peux créer des fichiers
là où je veux, aller modifier un peu ce que je veux dans l'OS,
enfin dans certains OS, on va dire,
là, par exemple, c'est pas le cas.
Non, non, alors, il faut voir qu'on peut voir le dashboard d'un iPhone
comme une application en soi, et donc on est contraint dans cette application-là.
On n'a pas la possibilité d'écrire du code, d'exécuter du code,
on est pas mal contraint.
Et du coup, concrètement, qu'est-ce qu'on ne peut pas faire ?
C'est qu'on ne peut pas se connecter en tant que l'utilisateur route,
parce que du coup, iOS, derrière, c'est dérivé de toute la famille Unix,
et du coup, l'utilisateur privilégié généralement
sur cette famille-là de système d'exploitation, c'est l'utilisateur route,
et donc, ils ne nous permettent pas de se connecter en tant que route.
Du coup, il n'y a que cet utilisateur-là qui peut faire des actions privilégiées
et nous, on n'y a pas accès.
Il y a aussi un autre problème, entre guillemets, un autre sujet, c'est l'OS lui-même.
iOS n'est pas un système conçu pour ordinateurs à l'origine,
ce n'est pas comme un Linux, typiquement, ou MacOS, etc.
où on va pouvoir exécuter des programmes complexes
qui sont faits justement pour tirer parti de cette puce puissante, etc.
Mais là encore, on n'est pas nécessairement coincé, entre guillemets,
sur un OS type Android, par exemple,
on a relativement facilement la possibilité d'installer ce qu'on appelle des machines virtuelles,
mais sur iOS, ça n'a jamais été simple.
Jusqu'à ce que UTM arrive justement.
Est-ce que tu veux bien nous expliquer d'entrée de jeu, c'est quoi une machine virtuelle,
c'est quoi l'intérêt, surtout pour un OS comme iOS, et après, on arrivera sur UTM.
Oui, le principe de base d'une machine virtuelle, c'est que sur notre machine physique,
on va pouvoir faire tourner des systèmes d'exploitation qui sont différents.
Du coup, il y a plein d'intérêt à ça qui vont être,
si jamais on a une application que Apple ne permet pas d'installer,
on va pouvoir l'installer sur cet autre système d'exploitation.
En plus de ça, étant donné que là pour le coup,
on va faire démarrer un système d'exploitation où on va être administrateur dessus,
là, cette fois-ci, on va pouvoir faire un peu ce qu'on veut dessus.
De cette manière-là, on contrôle ce qu'on fait, ça nous débloque pas mal de fonctionnalités.
Ensuite, il y a plein d'applications à ça.
La plus commune est celle qui est la première motivation, généralement, c'est du restro gaming,
où les gens aiment bien aller faire exécuter des vieux jeux
qui sont disponibles que sur des vieilles consoles,
et la seule manière de le faire tourner généralement, c'est via des machines virtuelles.
Et j'imagine qu'il y a des applications moins triviales,
entre guillemets, toi par exemple, dans ton travail,
tu as aussi besoin de machines virtuelles.
Oui, ça permet aussi d'exécuter du code dont on fait pas confiance
sur une machine qui est complètement déliée.
Quand on va faire de l'analyse de malware,
on va pas la lancer sur notre machine, parce que sinon, on va qu'on promette notre machine.
Donc là, ça permet d'avoir un environnement que l'on contrôle complètement,
ou si jamais il se passe n'importe quoi,
c'est pas grave, on peut complètement arrêter la machine et en redémarrer une nouvelle.
Ça permet aussi, nous, dans le travail,
ça peut arriver qu'il y ait des logiciels qui ne soient codés que pour une seule plateforme sphécifique.
Nous au travail, on travaille sur Linux,
et il y a plein d'applications qui ne sont disponibles que sur Windows.
Donc quand on a besoin de ce genre de choses, on démarre une machine virtuelle Windows,
on exécute notre programme et dès que c'est fini, on peut arrêter la machine
sans avoir eu besoin de redémarrer sur un autre OS.
Ce cas d'usage en particulier est carrément pertinent quand on parle justement d'IOS.
Aujourd'hui, si tu veux ouvrir, je sais pas moi, première pro,
si tu as une version limitée sur l'App Store,
mais en gros, si tu veux le vrai,
tu n'aurais pas d'autre choix que de passer par un système comme ça
où tu démarres un OS virtualisé type Windows ou Linux
pour démarrer des logiciels complexes de ce genre.
Le concept, je peux être assez contradictif,
je trouve que rien que montrer des images aux gens où tu vois un iPad
avec Windows qui boot, tu sais, il y a un truc...
Ça fait un bug dans le cerveau un petit peu.
Explique-nous justement, c'est quoi cet appli qui s'appelle UTM,
qui est arrivé il y a quelques années, et qui a rendu cette chose possible
et les images que vous êtes en train de voir.
C'est quoi un peu l'historique de ce projet-là ?
Alors l'historique de ce projet-là, ça a commencé en 2019, il me semble, UTM.
Quand le développeur, d'ailleurs, on parle d'une équipe,
mais c'est majoritairement un développeur qui fait UTM,
ensuite il y a pas mal de personnes qui l'aide, qui font des commits,
étant donné que c'est un projet open source,
mais derrière, c'est principalement une personne qui développe le projet.
Et du coup, le point de départ, c'est déjà de voir
comment est-ce qu'on fait pour démarrer une machine virtuelle.
Il y a plusieurs technologies qui existent qui permettent de faire ce genre de choses-là.
Et donc, il a déjà vu du falloir choisir une technologie
et voir toutes les contraintes qui sont liées à cette technologie,
parce que, comme on le disait, étant donné qu'Apple bride ses utilisateurs,
si jamais on veut faire une application qui permet de faire ce genre de choses,
il faut potentiellement contourner certaines restrictions.
Et donc, si mes souvenirs sont bons,
en fait, il n'a pas inventé un système de gestion de machine virtuelle,
il s'est basé sur un autre mot que peut-être certains vous connaissent, c'est qu'Ému.
C'est quoi qu'Ému ? Parce que je l'en attends régulièrement parler,
mais pareil, si tu veux nous expliquer qui est derrière ça
et pourquoi c'est aussi connu comme projet.
Alors qu'Ému, je pense que c'est un des plus gros projets
pour faire justement tout ce travail de machine virtuelle.
C'est un projet qui a été démarré par un Français au début des années 2000,
2003-2004,
c'est lui qui a démarré le projet, maintenant ça est énormément grossi.
Alors je ne sais pas quelle structure je dirais il y a d'autre,
mais c'est un très très gros projet avec une très grosse base de code
qui est complètement open source et donc tout le monde peut contribuer.
Et l'idée derrière le projet, c'était d'essayer de rendre les machines virtuelles complètement modulables
pour pouvoir faire des machines virtuelles avec n'importe quel type de processeur
et en plus ou moins n'importe quel langage de programmation.
Et du coup, c'est ce qu'ils ont réussi à faire,
ou maintenant grâce à ce projet-là, c'est relativement facile de le faire tourner
sur un nouveau type de processeur.
Et donc ils ont fait tout un travail pour faciliter toute cette histoire-là.
Est-ce que pour expliquer un peu le travail d'un outil comme qu'Ému,
sans rentrer évidemment trop dans le détail,
mais globalement, on ne peut pas dire que les processeurs parlent un peu des langues différentes
et que lui c'est une sorte de traducteur.
Est-ce que toi tu utilises quoi comme image pour expliquer ce que fait qu'Ému ?
Ce que fait qu'Ému, déjà il faut partir sur comment fonctionne un peu la virtualisation
et les deux grands types de manière de faire des machines virtuelles.
Quand on a besoin de faire une machine virtuelle, il y a deux manières de le faire.
La première, ça va être de simuler complètement le fonctionnement du processeur.
Du coup on va analyser comment il fonctionne, on va reproduire tout ça en code
et dans ce logiciel là on va lui injecter le code qu'on veut exécuter.
Donc ça c'est ce qu'on va appeler de l'émulation
et donc on va complètement simuler tout ce que va faire un processeur.
Donc ça, ça marche vachement bien.
Grâce à ça on va pouvoir reproduire le fonctionnement de n'importe quel processeur.
C'est déjà ça, c'est pas intuitif, quand tu as réfléchi.
Le fait que juste un processeur qui est un circuit électronique
peut être répliqué en code pour qu'il tourne sur un autre circuit électronique.
En vrai, déjà il y a un truc assez curieux.
Oui, en fait c'est que quand on commence à regarder vraiment le fonctionnement concret d'un processeur
ça reste juste une unité de calcul qui va exécuter des instructions les unes à la suite des autres.
Il va faire des opérations mathématiques avec des bouts de mémoire,
il va stocker des trucs dans la mémoire et du coup tout ça c'est des choses qu'on sait faire en code.
On peut très bien se créer une structure qui contient des bouts de mémoire
dans lesquels on va pouvoir lire et écrire des trucs.
Il va prendre des instructions les unes à la suite des autres
et effectuer le travail associé à chaque instruction.
Et du coup juste en expliquant ce genre de choses là,
on a moyen de voir que c'est des choses qu'on sait faire en programmation
et donc on a moyen de répliquer le fonctionnement du hardware.
Donc en fait le programme qui rentre là-dedans,
lui il a l'impression de tourner sur un autre processeur que celui sur lequel il tourne en fait.
Oui, concrètement le programme, pour lui les instructions elles sont exécutées,
pour lui il n'y a pas trop de soucis.
Alors ça va moins vite que sur un duvery hardware dû à plein de soucis
mais en tout cas le programme, c'est compliqué de voir qu'il tourne dans une machine virtuelle.
Et ça c'est ce que font toutes les émulateurs de vieilles consoles
qu'on peut retrouver, je ne sais pas si on veut jouer à la GameCube et tout.
En fait c'est ça, ils ont analysé comment fonctionne le processeur de la GameCube
et ils ont émulé dans un émulateur.
Oui, c'est exactement ça parce que la grosse problématique,
ça va être quand on va vouloir utiliser une machine virtuelle
qu'il y a un autre type de processeur que notre machine à nous.
Et là quand on est dans ce cas là, on n'a quasi aucun autre moyen
que de répliquer le fonctionnement du vieux processeur
pour faire tourner les codes qu'on veut dessus.
Alors si je me souviens seulement ce dont apparaît c'est l'émulation
qui est donc différent d'un autre truc qui s'appelle la virtualisation
et donc c'est un peu les deux options qu'on a quand on veut simuler un processeur.
De mémoire l'émulation c'est à peu près inutilisable
pour quoi que ce soit d'un peu gourmand en termes de ressources
parce que c'est extrêmement lent.
Oui c'est ça. Alors ça marche très bien quand on veut émuler des vieilles consoles
parce que le progrès technologique a fait que nos processeurs sont tellement...
performants aujourd'hui qu'ils peuvent très bien faire tourner des vieilles consoles.
Maintenant si sur un ordinateur actuel on veut lancer une machine virtuelle
avec un processeur actuel, là on divise le temps par beaucoup,
parce que pour chaque ligne de code que notre émulateur va exécuter
derrière il faut qu'il y ait toutes les lignes de code de la machine virtuelle
et toutes les lignes de code du système d'exploitation qui est en dessous
et donc factuellement on va diviser la vitesse de calcul.
Et actuellement si vous installez UTM sur votre iPad
je crois que ça dépend des machines etc de la configuration que vous choisissez
mais il est possible que justement vous voyez effectivement par exemple la logo Windows
mais que ça met par exemple 5 minutes à charger et que ce soit absolument inutilisable
ça veut dire que derrière c'est de l'émulation qui est en cours et donc en gros c'est nul.
Ouais et encore 5 minutes c'est presque gentil en fonction des machines qu'on a
et du coup voilà ce UTM c'est une application qui est disponible sur l'App Store
on peut la télécharger, on peut télécharger une machine virtuelle pour elle
mais derrière ça va être que de l'émulation donc ça va mettre très longtemps à démarrer.
Mais justement il n'y a pas que l'émulation,
il y a un autre truc qui s'appelle la virtualisation et qui vient complètement résoudre ce problème
est-ce que tu peux nous expliquer ce que c'est ?
Alors le principe de base de la virtualisation c'est de se dire
si jamais je veux utiliser une machine virtuelle qui a le même type de processeur que mon processeur à moi
pourquoi pas faire exécuter le code de la machine virtuelle sur mon processeur ?
Et donc pour ça les développeurs de processeurs
ils ont créé différentes manières, différentes modes de fonctionnement du processeur
le processeur il peut fonctionner dans un mode normal pour exécuter notre système d'exploitation
et notre système d'exploitation va pouvoir dire au processeur de rentrer dans un mode de VM
et donc à partir de là le processeur est dans un mode de VM
il va pouvoir exécuter le code de notre VM à la même vitesse que notre système d'exploitation à nous
et ensuite dès que la VM elle va faire des actions qui sont sensibles
donc dès qu'il va accéder à de la mémoire dont il n'a pas le droit
dès qu'il va exécuter des instructions dont il n'a pas le droit
et bien là ça va le sortir du mode de VM et ça va redonner la main à notre système d'exploitation
qui va devoir gérer ce qu'on appelle une interruption
et donc savoir est-ce que la machine virtuelle avait le droit de faire ce qu'elle a essayé de faire
auquel cas je vais le faire pour elle et lui redonner la main
ou est-ce qu'elle avait pas le droit et donc je l'arrête
Et on peut espérer quoi comme type de performance par rapport à une machine normale ?
Là on se retrouve quasiment avec les mêmes performances que notre machine à nous
alors la seule différence va être que étant donné qu'on a deux systèmes d'exploitation
qui tournent sur la même machine on divise presque par deux la vitesse de calcul
mais c'est globalement tout et donc ça reste largement utilisable
En gros on utilise, on met de côté les capacités d'émulation
et de faire cette histoire de traduction quoi, enfin d'émulation
mais on garde le bénéfice d'avoir un environnement cloisonné
ou peut tourner un autre système d'exploitation parallèle en fait
Ouais parce que du coup quand le processeur il va être dans ce mode de VM
bah du coup il est complètement bridé et donc là il est bridé niveau hardware
et dès qu'il va essayer de faire une action qui n'a pas le droit
ça va le sortir de ce mode là et ça va redonner la main à un système d'exploitation de base
Ok, alors du coup si on en revient à l'iPad justement
Qu'est-ce qui est nouveau au moment où Apple annonce qu'ils vont mettre une puce Apple Silicon
donc M1, en avance c'était aussi de l'Apple Silicon
Qu'est-ce qui change au moment où ils mettent une puce M1 spécifiquement dans l'iPad
sur cette question de la virtualisation juste devant ?
Bah la grosse différence c'est que à partir des puces M1, les puces savent faire de la virtualisation
alors qu'avant c'était pas prévu et ça ne va pas le faire
donc à partir des puces M1, il y a la possibilité niveau matériel de le faire
Et pourtant ça ne va pas nécessairement dire que ça va être possible entre guillemets
de ce que j'ai compris, à partir du moment où les premiers iPad de ce type-là sont disponibles
les versions du Tm sont instantanément capables de faire de la virtualisation
sans avoir à m'agouiller à faire des trucs un peu particuliers
C'est ce que j'ai compris, c'est le cas ?
Ouais c'est le cas, c'est parce que du coup Apple, si je reparle, les puces M
c'est globalement les mêmes sur le Mac et sur les iPad
et du coup les deux ont le même mode de fonctionnement
c'est la même manière de rentrer dans ce mode de virtualisation, tout ça
et du coup ça veut dire que normalement si jamais on est administrateur sur un iPad
on a la possibilité de faire les mêmes actions sur un Mac ou sur un iPad
et donc de rentrer dans ce mode de virtualisation
et en plus de ça Apple sur les iPad fournit une base de code qui permet de faciliter tout ça
ou quand on va développer notre code on peut appeler les fonctions d'Apple
pour créer une machine virtual, lancer une machine virtual, l'arrêter, tout ça
Donc ça c'est dans l'iPad, c'est disponible directement ?
Et donc à partir du moment où cette puce-là arrive dans l'iPad
il y a toute la base de code qui permet de faire ce genre de choses
donc on peut le faire avec le souci qu'il faut être administrateur sur la machine
Parce que justement, moi j'ai entendu parler typiquement du fait que Apple n'était pas 100% fan quand même qu'on fasse ça
et que donc le framework qui permet de faire ça, de faire tomber les VM, c'est hypervisor
Hypervisor framework, n'est pas dispo de base sur la machine
Oui, il n'est pas dispo de base mais du coup étant donné qu'il est dispo sur un Mac OS qui utilise la même puce derrière
on peut complètement le récupérer d'un Mac
Mais ça c'est marrant, donc ça veut dire que tu as ton iPad, tu ouvres ton Mac à côté
tu vas récupérer le petit bout de code dans le système, copier collé à l'intérieur
et ça marche, direct
Oui, étant donné que c'est le même processeur derrière, on peut faire fonctionner du code le même code sur un Mac ou sur un iPad
Salut, si vous appréciez Unorscore vous pouvez nous aider de ouf en mettant 5 étoiles sur Apple Podcast
en mettant une idée d'invité que vous aimeriez qu'on reçoive
ça permet de faire remonter Unorscore, voilà, telle une fusée
Moi j'ai vu, je me souviens à cette époque là, j'ai vu les premiers démos
et il y a un côté très très satisfaisant à voir pour le coup des OS qui ne mettent pas 5 minutes à des Mac
mais des Windows, même des Windows relativement récents, des versions de Mac OS même
tu vois un Mac complet tourné sur ton iPad et un des Yosemite, moi à l'époque c'était ce genre de version
et je me rappelle que c'était assez hallucinant, de voir qu'à quasi plein de vitesse
tu pouvais faire tourner des safaris, des Final Cut, des trucs comme ça, c'est assez magique
Oui, parce que du coup étant donné que c'est la même puce dans le Mac et dans l'iPad
du coup on a les mêmes performances et donc on se retrouve avec des performances assez incroyables
dans un iPad qu'on ne soupçonnait pas au départ
Pour y arriver justement, il y a quand même un obstacle, de taille c'est ce que tu as expliqué
c'est cette histoire d'utilisateur route
et pour ça vous connaissez forcément cette histoire, il faut de ce que j'ai compris faire un jailbreak
Est-ce que tu connais, expliquais du coup à cette époque là justement c'est quoi l'état de la scène
jailbreak comme on appelle, moi je me souviens que typiquement suivant les versions
il y en avait, il y en avait pas, c'est devenu mort, après il y avait des renaissances
parce que quelqu'un trouvait un nouveau jailbreak, c'est quoi l'état de l'art à ce moment là à peu près ?
Déjà pour ça il faut comprendre ce que c'est qu'un jailbreak
un jailbreak, ce que c'est c'est tout d'abord une vulnérabilité dans iOS
et à partir de cette vulnérabilité on va réussir à désactiver les protections
qu'a mis en place Apple pour nous brider
du coup il faut d'abord trouver une vulnérabilité
ce qui n'est pas simple parce que par au début on n'a pas d'accès privilégié
il faut trouver une vulnérabilité
en plus de ça il y a plein de types de vulnérabilité différentes
qui vont nous donner plus ou moins de privilège
donc là il nous en faut une qui permet, qui a des privilèges assez hauts
pour désactiver les sécurité d'Apple
une fois qu'on a désactivé les sécurité d'Apple
bon bah là cette fois-ci on a la possibilité de récupérer un shell route
et donc à partir de là on est administrateur de la machine et on fait un peu ce qu'on veut
mais du coup là à ce moment là on était en moment où on venait de trouver une vulnérabilité
sur iOS et donc là plus ou moins toutes les appareils étaient gel breakable
à ce moment là
C'est tombé plutôt très très bien
Moi j'ai cru me souvenir que justement il y avait un peu des guerres de chapels
aussi entre les je sais pas quel point tu suis là de la scène gel break
mais des guerres entre différents développeurs qui proposent des failles etc
Moi j'ai toujours trouvé ça assez fascinant justement le fait que des gel break apparaissent ou pas
et si j'avais bien compris ça a aussi à voir avec le fait que l'Apple s'est mis à rémunérer ses failles
et donc là où avant c'est le seul truc fun à faire avec une faille de iOS c'était de la publier
je me rappelle même au tout début gel break me je sais pas si ça vous dit quelque chose
mais avec l'URL juste tu pouvais aller dans des app stores et faire un gel break sur à peu près toute la rangée d'iPhone c'était génial
C'était le gel break le plus rapide du monde
Et depuis un des trucs qui a changé en particulier c'est la complexité des failles qu'il faut trouver maintenant
mais aussi des histoires pure de finances
Tu peux aussi être rémunéré par Apple pour ton travail
Maintenant chaque chercheur en sécurité va pouvoir soit être rémunéré par Apple
soit pouvoir aider la communauté à envoyer un gel break
et du coup ça devient plus en plus compliqué d'avoir un gel break
à tel point que maintenant sur les derniers iPhone sur les dernières versions d'iOS
on a plus de gel break et donc plus de moyens de devenir administrateur de son iPhone
Jusqu'à la prochaine peut-être
Jusqu'à la prochaine donc on espère
Donc pour l'instant il nous reste encore des appareils sous dernière version d'iOS qu'on peut de gel break
parce que là pour le coup c'est une vulnérabilité qui a été trouvée au niveau de ce qu'on appelle le bootloader
donc c'est le tout premier code qui démarre dans la machine et c'est un code qu'on peut pas mettre à jour
Donc là Apple n'a pas de moyens de mettre à jour donc là sur ces appareils là on aura toujours des gel break
sauf que ces appareils là ils vont pas forcément être mis à jour jusqu'à Advitam et Tarnam
pour l'instant ils y sont jusqu'à iOS 18 mais par la suite on sait pas trop
Mais ça c'est intéressant parce que là on parle d'utilisation de moldues
mais toi tu as quand même vraiment une question professionnelle derrière de pouvoir avoir cet axe à administrateur
ça te donne la possibilité de faire de l'étude justement de vulnérabilité
pour toi c'est vraiment important que ce soit possible de faire ça
Ouais quand on fait de la recharge de vulnérabilité généralement on va essayer d'avoir le plus de debug possible
pour essayer de comprendre d'abord quand on analyse l'application est-ce qu'on a bien compris ce qui se passe
donc pour ça on va aller vérifier en debugant l'application, s'arrêtant à des endroits stratégiques
et pour faire ce genre de choses il faut être administrateur de la machine
donc si on veut analyser une application on est obligé de faire ce genre de choses
et si on veut analyser le fonctionnement d'iOS en lui-même on est encore plus obligé d'être administrateur
Et donc pour l'instant des vieux iPhone donc je crois que l'iPhone X par exemple sont encore jelbréquables
ou des choses comme ça
C'est jusqu'à l'iPhone 8 sur les dernières versions d'iOS
et sinon c'est jusqu'à l'iPad 7e génération donc 2017
date de sortie 2017 donc ça commence à remonter un peu
C'est vieux ?
Ouais mais ça veut dire que vous connaissez absolument Parkeur le truc
parce que à la prochaine mise à jour d'iOS si justement ils sont obsolètes
vous perdez le gel bike et ça a des conséquences directes en gros
Ouais concrètement
Et en plus de ça ça a d'autres contraintes qui sont que
étant donné qu'Apple contrôle le matériel et développe ses puces
il rajoute des fonctionnalités dans les puces elle-même
et donc il rajoute des protections dans les puces elle-même
et donc là sur les derniers iPhone on n'a aucun moyen de débuguer ce qui se passe
et de jouer avec ces protections-là et de voir comment elles fonctionnent
En plus de ce que j'ai compris je sais pas si c'est directement lié
mais ils aiment pas trop de base qu'on ait des accès aussi profonds dans le système
et typiquement j'ai le souvenir d'une histoire
où il y a eu un procès justement entre Apple et Corellium
je crois que c'est ça
parce qu'ils aimaient pas trop ce qu'ils faisaient avec leur OS
est-ce que tu peux nous expliquer un petit peu ce que ça servait à quoi déjà si tu te souviens
Alors Corellium c'est une entreprise israélienne
qui commercialise un produit pour faire de l'émulation d'iPhone
du coup il commercialise un produit qui va nous permettre de démuler un iPhone
et à l'intérieur de faire tourner iOS
donc étant donné qu'on l'émule on contrôle complètement son fonctionnement
et donc là par la force des choses on est capable de le débuguer
donc là c'est l'inverse de ce qu'on vient de dire
c'est pas de démarrer Windows sur un iOS
c'est plutôt de démarrer iOS sur un autre appareil
c'est la seule entreprise qui commercialise ce genre de produit
et du coup c'est des produits qui nous intéressent beaucoup
quand on veut faire de la recharge de vulnérabilité
parce qu'il faut pouvoir débugger ce genre de système
et ils ont eu des problèmes
et ils ont eu des problèmes parce qu'Apple n'est pas fan
alors je connais pas la finalité du procès mais en tous les cas
il y a eu des poursuites judiciaires
Apple a perdu une première fois
et la conclusion c'est qu'ils ont passé un accord
ils ont fini par passer un accord qui est resté confidentiel entre les deux boîtes
et ils ont arrêté de se poursuivre à ce moment-là
mais ils ont perdu en première instance aux Etats-Unis
l'équivalent
ils ont perdu un premier procès Apple
c'est un truc qui tournait sur ta machine ou sur leur serveur
il y a plusieurs niveaux
le premier niveau d'abonnement c'est sur leur serveur
si on met quelques billets en plus on peut avoir une machine déduée
ça marche
on n'a pas eu de la virtualisation
ce qui permet de faire la fin de la magie
mais je dis un peu moins du mal à comprendre comment ça intervient
c'est un autre concept que j'ai entendu
qui s'appelle le JIT
ou le Just In Time
est-ce que tu peux nous expliquer ce que c'est
et en quoi c'est une importance
dans le fait de faire tourner Windows sur iOS
le Just In Time va arriver quand on a besoin de traduire du code assemblure
par exemple sur Windows
je ne sais plus si Windows en version ARM fonctionne
mais toutes les machines qui tournent Windows sont sur une architecture
que l'on appelle X86
la plupart des PC qui ne sont pas des Macs sont sous X86
ça c'est une architecture processeur
et les IEPAD sont sur une autre architecture qui s'appelle ARM
et du coup quand on va vouloir faire cette étape de virtualisation
il faut convertir le code de l'un en l'autre
pour pouvoir que notre processeur puisse le faire
pour pouvoir faire ce genre de choses
on a des compilateurs de code assemblure
pour passer d'un code assemblure à l'autre
et du coup il faut qu'on ait des endroits dans la mémoire
où on va pouvoir à la fois écrire des données et exécuter de la données
et c'est ça qu'on va appeler le JIT
c'est que pendant que l'application tourne
elle va compiler du langage assemblure et elle va l'exécuter derrière
et donc ça c'est des trucs qui ne sont pas faisables sur un iPhone
qui n'est pas de gel breaker
le fait d'écrire de la données et de l'exécuter
il faut avoir des endroits en mémoire
on peut à la fois lire, écrire, exécuter
et ça normalement on n'a pas le droit de le faire
ah oui c'est le trio
c'est impossible
sur un...
ouais de base on n'a pas le droit
il n'y a que safari qui peut faire ce genre de choses
parce que du coup c'est des contraintes
qui sont aussi applicables sur le code JavaScript
qui est exécuté dans un navigateur
et du coup sur un iPhone il n'y a que safari
quel droit de créer ce genre de choses
c'est une exception
et alors je dis ça mais c'est plus vrai depuis iOS 18
parce que maintenant Apple a eu l'obligation
de pouvoir faire des pages de JIT pour les autres navigateurs
parce que sinon il y avait une concurrence déloyale
vis-à-vis des autres navigateurs
qu'elle est moins vite parce qu'ils avaient pas ces pages de JIT
du coup il faut une demande comment tu...
non mais donc du coup c'est pour ça que pendant des années
il y a eu que safari
on pouvait avoir que safari en navigateur sur un iPhone
depuis quelques années on peut avoir un Firefox
en bref et vous de machin
mais donc du coup c'est pour ça que Trayson
il ne voulait pas ouvrir le JIT à une autre application
que safari
donc théoriquement on aurait pu faire un navigateur
qui peut faire ton éco des pages préchargées par exemple
non il peut exécuter du Java script
mais il sera tellement... il sera bien plus lent
tellement lent que oui c'est inutilisable
mais effectivement j'avais jamais vu les dessous d'eau
de ce point
c'est depuis récemment, depuis quelques années
on peut installer un autre navigateur sur JIT
oui et là il me semble que c'est que depuis iOS 18
que les autres navigateurs ont le droit de faire du JIT
ah oui ok d'accord
c'est hyper récent, ça fait partie du procès qu'ils ont eu l'année dernière
sur toute la non concurrence
donc avec la virtualisation disponible
sur le procès sur de l'iPad
plus le Just In Time
on se retrouve avec la capacité
si on est sur des bonnes versions d'iOS
qui sont maintenant un peu anciennes
donc là l'iPad que vous voyez c'est un iPad
que j'ai gardé justement dans cette vieille version
qui est la 15.7 je crois
exprès pour le jour où on allait parler de ce sujet là
si toutes ces conditions sont réunies
on se retrouve avec un iPad qui peut être
un quasi-ordi entre guillemets
jusqu'à ce que, si j'ai bien suivi
Apple signe la fin de la récré
et concrètement
rendre le Just In Time impossible
est-ce que j'ai vu notamment un tweet un moment sur le twitter du thème
Bad news, catastrophe
tout le monde déprimé
qu'est-ce qui s'est passé à ce moment là ?
Alors ce qu'ils ont fait à ce moment là
c'est qu'ils ont supprimé
le virtualisation framework
des iPad
et du coup au niveau du noyau
du iOS
il n'y a plus la possibilité d'utiliser
le virtualisation framework
qui permettait de créer des machines virtuelles
relativement facilement
et de les manager relativement facilement
du coup ils n'ont pas complètement supprimé
toute cette partie là
parce que la puce en elle-même
elle est toujours capable de faire des machines virtuelles
mais pour faire ce genre de choses
il va falloir redevelopper tout le virtualisation framework
pour refaire tout ce qu'il faisait
ça va être un travail titanesque
c'est un travail titanesque
comme je disais de tout à l'heure sur UTM
c'est une personne qui est toute seule
qui développe globalement le projet
c'est pas faisable quand on est tout seul
pour l'instant
moi je n'ai pas compris parce que du coup
ce composant là
il est disponible sur Mac
et il est toujours disponible sur Mac
on ne peut plus le copier sur iPad
parce qu'en fait
pour pouvoir créer une machine virtuelle
il faut être encore plus privilégié que route
il faut pouvoir exécuter du code au niveau de l'OS
au niveau du noyau de l'OS
et du coup quand j'avais mes différents niveaux
de fonctionnement de mon processeur
en réalité j'en ai 3
en réalité j'en ai encore plus
là dans notre exemple on va en prendre 3
il y a un premier niveau qui va être niveau noyau
d'IOS
il y a un deuxième niveau qui va être niveau utilisateur
et un troisième niveau qui va être niveau
niveau VM
et du coup là il faut pouvoir exécuter du code
en tant que noyau IOS
pour pouvoir créer mes machines virtuelles
et donc en fait ce qu'a fait Apple
c'est qu'ils ont enlevé la possibilité
de le faire directement au niveau du noyau
donc on crée les fonctions sans plus là
les fonctions sans plus là
donc là si on veut le faire
il faut créer un driver
l'insérer dans le noyau IOS
pour pouvoir refaire ce genre de choses
donc en fait on peut toujours copier le composant du Mac
le frère Mark du Mac mais ça marchera plus
parce que derrière il faut couper les ponds
les ponds avec le noyau IOS
ce qui fait que peut-être comme la Switch à l'époque
où tout le monde s'arrachait
les vieilles versions qui étaient encore à câble
aujourd'hui si vous avez un iPad
sur une déversion d'IOS
peut-être que vous n'avez rien à foutre
mais peut-être pas, il peut faire des choses
qui seront peut-être plus jamais possibles ensuite
ça c'est quand même marrant
ça se trouve mon iPad est collecteur
ne le mettez pas à jour
exactement
il y a même des choses assez drôles
où là on parlait de tout ce qui est de gel break
et on a vu à un moment
des vulnérabilités
qui ne permettaient pas d'avoir un gel break
mais qui permettaient quand même d'installer
toutes les applications qu'on voulait
c'est le Troll Store
donc qui a le nom
qui était pour dire
on troll Apple
et la vulnérabilité qu'ils ont trouvé
c'était dans la manière
d'installer des applications
et du coup
sur ces versions d'IOS spécifiques
ils étaient capables d'installer
les applications qu'ils voulaient
donc ils n'étaient pas administrateurs
mais ils pouvaient quand même instailler les applications
qui voulaient, notamment des applications
avec du JIT
donc là comme ça, même sans gel break
sous certaines versions d'IOS
ça passe
donc quand on a un vieux iPad
il faut regarder la version spécifique
et il peut valoir de l'or en fonction de la version
ça va, faut croiser les doigts
et espérer quoi
trop intéressant, merci beaucoup
c'était vraiment, ça fait depuis le temps qu'on parle
de ce sujet
je voulais le faire
est-ce que tu connais des gens
qui font la recherche de la vulnérabilité
mais sur IOS en particulier
pas sur des applis etc
mais vraiment sur les choses
qui peuvent donner des gel breaks derrière
t'en connais ?
oui, il y a plusieurs motivations
il y a déjà une première motivation
qui va être le bug bounty mis en place par Apple
donc pour trouver les vulnérabilités
il y a aussi toute la communauté
qui va vouloir avoir des gel breaks
pour continuer son travail de recherche
de vulnérabilité en dehors
il y a aussi
enfin, là du coup je les connais pas
mais toute la communauté de hackers
qui va essayer de trouver des vulnérabilités
dans IOS pour pouvoir
attaquer
des téléphones IOS à distance
donc il y a plusieurs motivations
pour faire ce genre de recherche
et moi ?
les gens entre les deux, genre les zéro du homme ou les trucs comme ça
ouais, ça fait partie
des gens qui peuvent être intéressés
et justement, moi j'ai déjà pu discuter avec quelqu'un
qui travaille dans une entreprise type zéro du homme
et donc son but c'est des gens
invite-le
il faudra pas bien
c'est vrai que je lui ai jamais lancé l'invitation
je t'avoue que j'y crois moyen
mais pour expliquer c'est des gens qui
comme vous et moi
des gens très compétents
techniquement qui cherchent des vulnérabilités sur IOS
sauf que du coup après derrière
il les revende des gens qui font des...
à prix d'or
à prix d'or
et une vulnérabilité à IOS
ça coûte très très cher
surtout si elle a des accès importants
je l'avais vu
ça coûte vraiment très cher
une zéro clique comme on dit
donc ça veut dire que vraiment je t'envoie un SMS
et juste, tu es une vulnérabilité dans un message
et tu enchaînes avec je sais pas combien de trucs
et à la fin tu finis administrateur du système
je crois que c'était un million
quelque chose de très bien
c'est ça l'ordre de grandeur
et c'est typiquement ce qu'achète par exemple
une entreprise à l'époque comme Pegasus
enfin quand même NSO qui développait Pegasus
en fait c'était ce type de faille
c'est pas forcément NSO qui trouvait la faille
mais il l'achetait à ce type d'entreprise
mais ouais on va ressortir
quelque part de son compte
parce que ça correspond aussi à un travail qui a assez titanesque
de faire de la recherche sur IOS
vu toutes les complexités qu'on a vu
plus vu que ça fait assez longtemps
que Capel met à jour ses produits
et patch les vulnérabilités
donc ça devient compliqué à trouver
d'où le fait que ça coûte cher
est-ce que le fait que
beaucoup de vulnérabilités
historiquement passaient par le navigateur
si mes souvenirs sont bons
ça vient de ce que t'as expliqué
savoir que cette histoire
des choses sont possibles dans sa farie
qui ne sont pas possibles ailleurs
ça vient déjà du fait que
par définition le navigateur
il va exécuter du code qui contrôle pas
par définition le navigateur
il va chercher du code HTML java script
sur un serveur qui contrôle pas
et il va l'exécuter sur sa machine
du coup il a des contraintes
de sécurité assez grosses
et en plus de ça
avec le développement du web
il a des contraintes de performance
qui sont hyper fort aussi
ou on se retrouve avec des sites web
qui sont de plus en plus gros
qui ont de plus en plus de base de code de java script
donc il faut exécuter du code qu'on ne comprend pas
le plus vite possible
donc il y a plein de techniques pour aller plus vite
mais ça rajoute de la complexité
et là où il y a de la complexité
on va retrouver des vulnérabilités
c'est marrant, mais c'est vrai la combinaison
inconnue plus
pression
à l'exécution
enfin la rapidité qui crée des
généralement un bon
chercheur en vulnérabilité
il va essayer de retrouver du code
qui a l'air complexe ou mal codé
et c'est là qu'on va passer le plus de temps
pour trouver des vulnérabilités
trop intéressant, merci beaucoup
pour ton passage

Les infos glanées

Je suis une fonctionnalité encore en dévelopement

Signaler une erreur

Underscore_

IA, Hacking, Robotique — Des conversations de terrain avec ceux qui construisent. 🥨


Partenariats: underscore@micorp.fr


---


Hébergé par Acast. Visitez acast.com/privacy pour plus d'informations.

Tags
Card title

Lien du podcast

[{'term': 'IA', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'Investissement', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'Nouvelles Technologies', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'Tech', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'Actu tech', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'Cybersécurité', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'Développement', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'Dev', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'Entreprenariat tech', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'IT', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'Robotique', 'label': None, 'scheme': 'http://www.itunes.com/'}, {'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]

Go somewhere