L'exploit PS3 expliqué en détails


Newserator
 Share

Messages recommandés

Georges Hotz a récemment publié son exploit permettant le hack de la PS3. La méthode d'application du hack est désormais connues, mais la méthode utilisée reste encore floue pour nombre de personnes. Voici une analyse plus poussée afin de mieux comprendre l'exploit.

La PS3, à l'image de la Xbox 360, dépend d'un hyperviseur qui augmenter la sécurité. Contrairement à la Xbox 360, la PS3 permet aux utilisateurs de lancer Linux s'ils le souhaitent, mais celui-ci reste sous le contrôle de l'hyperviseur. Ce dernier ne permet pas au kernel Linux d'accèder à différents périphériques, tel que le GPU. Si une méthode permettant de compromettre l'hyperviseur est trouvée, alors l'accès direct au hardware est possibl, et d'autres bouts de code nécessitant des privilèges moindres peuvent être supervisés et contrôlés par le hacker.

Hacker l'hyperviseur n'est pas l'unique étape nécessaire au lancement de jeux pirates. Chaque jeu possède un clé de cryptage stockée dans une partie du disque nommée Rom Mark. Le fimware du lecteur vérifie cette clé et la soumet à l'hyperviseur afin de décrypter le jeu durant chaque chargement. L'hyperviseur doit donc être subverti afin de révéler la clé pour chaque jeu. Une autre approche serait de compromettre le firmware du lecteur Blu-Ray ou de passer l'extraction de la clé et juste attaché le code de décryptage afin de décrypter chaque jeu. Après cela, n'importe quelle mesure de protection dans le jeu devra être désactivée. Personne ne connait pour le moment quelles mesures d'auto-protection sont susceptibles de se dissimuler dans le cryptage d'un jeu. Certains auteurs peuvent croire uniquement dans le cryptage, d'autres peuvent implémenter des mesures telle que SecuROM.

Le code de l'hyperviseur se lance à la fois sur le CPU principal (PPE) et un de ses 7 co-processeurs Cell (SPE). Le thread SPE semble se lancer dans un mode isolé, où l'accès à son code privé et les données mémoires est bloqué, même pour l'hyperviseur. Les clés hardware ROOT utilisées pour décrypter le bootloader ainsi que l'hyperviseur sont présentes uniquement dans le hardware, probablement via l'utilisation d'Efuses. Cela peut également signifier que chaque processeur Cell possède ses propres clés uniques, et le décryptage ne dépend pas d'une seule clé unique ROOT (contrairement à certains articles qui laissaient entendre qu'il n'existait qu'une seule clé ROOT).

Le hack de Geohot a compris l'hyperviseur après le boot de Linux via la fonction "OtherOS". Il a utilisé l'exploit pour ajouter des fonctions de lecture/écriture dans la mémoire et effectuer un dump de l'hyperviseur. L'accès à lv1 est une 1ére étape nécessaire afin de préparer d'autres attaques vers le firmware ou les jeux.

Son approche est intelligente et répond au nom de "glitching attack". Ce genre d'attaque matérielle implique l'envoi d'une impulsion électrique à un moment précis afin de provoquer un comportement inattendu du hardware. Ce genre de procédé est utilisé depuis longtemps par les hackers de Smartcard afin de débloquer celles-ci. Typiquement, les hackers chronomètrent l'impulsion afin de cibler une boucle de terminaison, provoquant la continuité de cette boucle et dumper le contenu d'une ROM secrète vers un bus accessible. La zone contrôlant "l'horloge" est souvent faillible mais certaines zones transportant les données sont également des cibles intéressantes. Le temps de l'impulsion ne nécessite pas toujours d'être précis puisque le hardware est prévu pour tolérer certaines conditions n'entrant pas dans les spécifications habituelles et l'attaque peut facilement être répétée de nombreuses fois jusqu'à ce qu'elle aboutisse.

Geohot a connecté un FPGA à une zone du bus mémoire de la PS3. Il a ensuite programmé une puce avec une logique simple : envoyer une impulsion de 40ns via le pin de sortie via un bouton poussoir. Ce type de programme peut être réalisé grâce à quelques lignes de Verilog. Bien que le temps d’exécution de l’impulsion est très court (mais cela correspond tout de même à 100 cycles de l’horloge mémoire de la PS3) , le déclenchement reste extrêmement imprécis. Cependant, il a utilisé un logiciel pour paramétrer la RAM afin d’augmenter les chances de succès.

Son but était de compromettre la « hashed page table » (HTAB) afin d’obtenir un accès en lecture/écriture au segment principal qui cartographie toute la mémoire, y compris l’hyperviseur. L’exploit consiste en un module du kernel Linux qui cible diverses requêtes système de l’hyperviseur, requêtes traitant de la gestion mémoire. Il alloue, désalloue, puis essai d'employer la mémoire désallouée comme HTAB pour un segment virtuel. Si la faille arrive avec succès à désynchroniser l’hyperviseur de l’état actuelle de la RAM, cela permet à l’attaque de remplacer la HTAB active et de contrôler l’accès à n’importe partie de la mémoire. Voyons cela un peu plus en détails.

La 1ére étape consiste à allouer un buffer. L’exploit envoie ensuite une requête pour que l’hyperviseur duplique à de nombreuses reprises les cartographies de la HTAB pointant vers ce buffer. N’importe laquelle de ces cartographies peut être utilisée pour lire ou écrire dans ce buffer, ce qui est parfait puisque le kernel gère ce buffer. En terme Unix, voyez cela comme de multiples fichiers gérés dans un fichier mémoire temporaire. Chaque fichier peut être fermé, mais temps qu’il subsiste un fichier ouvert, les fichiers restent accessibles.

L’étape suivante consiste à désallouer le buffer sans pour autant libérer dans un 1er temps toutes les cartographies qu’il contient. Juste après avoir appeler la fonction « lv1_release_memory() », l’exploit affiche un message à l’intention de l’utilisateur pour que celui-ci appui sur le bouton poussoir. Du fait de la présence de nombreuses cartographies HTAB dans ce buffer, l’utilisateur a de grandes chances d’ouvrir la faille pendant que l’hyperviseur désalloue l’ensemble des cartographies. La faille évite probablement un ou plusieurs cycle d’écriture de l’hyperviseur sur la mémoire. Ces écritures ont pour but de désallouer chaque cartographie, mais si elles échouent, la cartographie reste intacte.

A ce moment précis, l’hyperviseur a une HTAB avec une ou plusieurs cartographies de lecture/écriture pointant vers un buffer qu’il a désalloué. Ainsi, le kernel n’a plus la main sur ce buffer et il ne devrait donc pas être capable d’écrire dessus. Cependant, le kernel possède toujours un ou plusieurs accès à ce buffer et peut en modifier le contenu. Mais ce n’est pas encore très utile puisqu’il s’agit juste d’un espace mémoire vide.

L’exploit crée alors un segment virtuel et vérifie si la HTAB associée se trouve dans une région couvrant l’adresse du fameux buffer. Si ce n’est pas le cas, il continue de créer des segments virtuels jusqu’à ce que la correspondance intervienne. Désormais, l’utilisateur a la possibilité d’écrire directement dans cette HTAB au lieu que l’hyperviseur possède l’unique contrôle de celle-ci. L’exploit écrit certaines entrées dans la HTAB lui donnant l’accès complet au segment principal, qui couvre toute la mémoire. Une fois que l’hyperviseur passe sur ce segment virtuel, l’attaque permet de contrôler toute la mémoire et l’hyperviseur lui-même. L’exploit met ensuite en place deux syscalls qui donnent un accès direct en lecture/écriture sur n’importe quelle adresse mémoire, puis retourne au kernel.

Il est fort possible que quelqu’un package cette attaque dans un modchip puisque la faille ne nécessite pas d’avoir un timing extrêmement précis. Avec un micro-contrôleur et un circuit analogue pour l’impulsion, cela peut être parfaitement réalisable. Cependant, il est vraisemblable qu’un bug software sera découvert après avoir effectuer un reverse-engineering du dump de l’hyperviseur et c’est ce qui sera surement le plus utilisé par la suite.

Sony semble avoir réalisé un excellent travail autour de la sécurité de la PS3. Tout est parfaitement maitrisé, sans réel points de faiblesse. Cependant, l’accès bas niveau offert aux kernels d’autres OS signifie que n’importe quel bug dans l’hyperviseur est possiblement accessible à un code d’attaque vu le nombre d’API qu’il offre. Une correction simple serait de relire l’état de chaque cartographie après une modification. Si l’écriture échoue pour n’importe quelle raison, l’hyperviseur le verrait et stopperait tout.

Il sera intéressant de voir comment Sony compte répondre avec de futures mises à jour pour prévenir ce type d’attaque.

Source : http://rdist.root.org

Lien vers article original : http://ps3.gx-mod.com/modules/news/article.php?storyid=1625

Lien vers le commentaire
Partager sur d'autres sites

Bein d'apres ce que j'en ai compris, SOny peuvent corriger indéfiniement les API pour "ralentir" les exploits.

Mais côté hardware, il est trop tard pour les anciennes PS3. Elles ont été vendues et sont chez les gens :)

Donc, il y aura toujours possibilité de "courcircuiter" une données, et de tenter de retrouver son adresse buffer car meme si cette adresse est corrigée par logiciel, elle existe quelque part. Donc le programme "pirate" embarqué dans un µc tombera bien à un moment ou à un autre dessus. Et la, il "suffira" de repartir avec cette nouvelle adresse buffer pour injecter l'exploit !

Pinaise, 20 piges le gars quand même !! Et le pire, c'est que ce genre d'attaque existe depuis des lustres !!

Lien vers le commentaire
Partager sur d'autres sites

sony peu réagir d'une manière brutal en verrouillant l'option

"other os" aux modèles fat a la prochaine mise a jour :/

pour ma part je ne ferait plus de mise a jour en attendant.

@Arkeur: étrange que cela n'as pas été fait avant. A moins que tout comme le hack "jtag" sur 360 celui etait connu dans les milieux autorisé et qu'ils se gardaient la chose jusque cela soit patché...

Modifié par sdekaar
Lien vers le commentaire
Partager sur d'autres sites

le probleme c'est que si sony bloque l'otheros ca risque de gueuler un max , beaucoups de personnes ont acheté une ps3 aussi parce que linux était dispo dessus (j'en fait partie) . mais effectivement c'est la solution la plus simple pour évité que la console soit hackée avec ce systeme

Lien vers le commentaire
Partager sur d'autres sites

D'un point de vue légale, ils auraient le droit? Je sais pas du tout, j'me suis jamais posé la question à vrai dire...

Je vois mal retirer la fonction qui a apporté le hack, faut pas s'avouer vaincu n'est ce pas? ;)

Tchuss ViNz_

Lien vers le commentaire
Partager sur d'autres sites

D'un point de vue légale, ils auraient le droit? Je sais pas du tout, j'me suis jamais posé la question à vrai dire...

Je vois mal retirer la fonction qui a apporté le hack, faut pas s'avouer vaincu n'est ce pas? ;)

Tchuss ViNz_

oué y ont le droit je pense vu que tu accepte de faire la mise a jour !

Lien vers le commentaire
Partager sur d'autres sites

D'un point de vue légale, ils auraient le droit? Je sais pas du tout, j'me suis jamais posé la question à vrai dire...

Je vois mal retirer la fonction qui a apporté le hack, faut pas s'avouer vaincu n'est ce pas? ;)

Tchuss ViNz_

oué y ont le droit je pense vu que tu accepte de faire la mise a jour !

oui mais si tu ne la fait pas tu ne pourra pas jouer a ton nouveau jeu qui vient de sortir.

donc on en revient a une mise a jour obligatoire.

content tout de même que cela bouge enfin du cotes ps3 en se qui concerne le hack

Lien vers le commentaire
Partager sur d'autres sites

C'est en tout cas génial que le hack PS3 soit enfin lancé!

Il existe forcément des cercles d'initiés underground ayant déjà hacker la PS3 depuis un moment ... ça ne m'étonnerais pas.

Le hack PS3 ... du gros boulot à faire encore en gros d'après ce que j'ai compris de l'article.

La méthode utilisée par GeoHot est très intéressante effectivement :) . Une analyse extrêmement poussée du matériel, très peu de hardware, surtout du software pour le hack (c'est un beau hack le own de la htab quand même :) ).

J'ai pas encore lu tout le code de l'exploit, mais le code est asser propre pour être étudié par toute personne intéressée, je trouve que c'est vraiment un bon point par rapport au kexploit de la PSP dont j'ai pas vraiment vu les sources.

Pour coder un FPGA avec l'impulsion donnée, ce n'est pas important de voir le code car ça doit prendre 30 lignes en VHDL à tout casser.

Pour Sony, le patch pour éviter les écritures arbitraire dans le HTAB serait appriori simple.

Ils auront par contre du mal à patcher certaines parties (celles ayant de la crypto rentrant en compte par exemple) car ça pourrait poser des problèmes de compatibilité au niveau des jeux.

Si les jeux sont effectivement cryptés, un hack du firmware du lecteur BluRay de la PS3 serait pas mal. La clé cryptée étant forcément stockée sur le disque du jeu, celle-ci passe obligatoirement par le lecteur bluray, un hack de celui-ci permettrait de récupérer les clés de cryptage de tous les jeux non? (A la manière de ce qui se fait avec les DVD ou BluRay). Les autres problêmes posés par une utilisation SecuRom ... une autre histoire ...

Pour les jeux, je pense aux 3 premiers jours de la PS3 et de Linux, la fameuse copie avec la commande cp (rsync et autres marchent tout aussi bien), les fichiers copiés seraient donc cryptés? (désolé mais non j'ai pas asser creusé)

Une question néanmoins, HTAB = Hashed Page Table ... si je comprend bien, la table utilise le même principe que pour les hashed tables?

(ou bien des tableaux servant d'index dans une liste chaînée)

Je ne vois pas l'intérêt d'une HTAB pour mapper 256Mo de RAM ou je me trompe?

Je ne comprends toujours pas pourquoi le hack de la PS3 a commencé aussi tardivement par rapport aux autres devices sur le marché.

Ca serait dû aux coûts de la console ou la politique de sécurité de Sony pour cette console (ils ont bien géré franchement :) )?

Pour ma part, je ne suis pas encore prêt à démonter un device aussi cher pour mettre son hack en pratique et creuser plus ...

J'espère juste que les autres hacks seront postés aussi de cette manière, c'est-à-dire avec les sources et/ou avec les explications et avec une certaine précaution (car qui dit hack posté dit hack patché le plus souvent mais pas tous).

Les coups d'accélérateur viendront des clés de crypto comme chacun le sait mais également des dumps software de l'HV et du software PS3.

Bon courage aux hackers bossant actuellement sur la PS3 par ailleurs ;) .

m_101

Modifié par m_101
Lien vers le commentaire
Partager sur d'autres sites

impressionant ! il a de la jujote le pti' gars !

En ce qui concerne la suppression de l'otherOS je ne suis pas tout a fait sur qu'ils aient le droit de le supprimer ! comment peut on avoir le droit de supprimer par le biai d'une mise a jour, une fonctionnalité qui etait l'un des arguments majeur de la PS3, juste parceque l'on accepte des conditions generales de MAJ ...

affaire a suivre en tous cas

Lien vers le commentaire
Partager sur d'autres sites

LEGALEMENT, ca n'est pas sur qu'ils aient le droit de supprimer l'otherOS.

EN PRATIQUE, il ne vont certainnement pas se gêner ! Malheureusement, dans les cas où le risque de sanctions est faible, il se fichent souvent de "on a le droit ou non"

soyons franc: peu de personnes seraient prêtes à aller au tribunal, et quand bien même ca prendrai des années à être condamné... Bref, la PS4 serait déja sortie !

Il n'y a ni risque pour les personnnes, ni retrait de fonction "essentielles" au produit. C'est comme retirer le support du MP3 : c'est une fonction annexe, utile certes, mais annexe. Mais en pratique, peut on dire devant un juge que l'on aurait PAS acheté la PS3 si cette fonction n'existait pas? Certains le diraient peut être, mais ca fait quoi, 0.01%?

Quand on voit que Sony a gagné des procès sur le fait que "les cd sont résistants, et si vous cassez votre DVD de jeu on vous le change" (ce qui est purement faux !) à l'epoque de la ps2, je ne me fais pas de souci quant à la fonctionnalité linux. Si ils veulent l'enlever, ils le feront.

J'espère me tromper, sincèrement je l'espère, mais si le retrait de l'other OS est la seule solution pour eux...

Quoiqu'il en soit, bel exploit et belle explication technique!

Lien vers le commentaire
Partager sur d'autres sites

LEGALEMENT, ca n'est pas sur qu'ils aient le droit de supprimer l'otherOS.

EN PRATIQUE, il ne vont certainnement pas se gêner ! Malheureusement, dans les cas où le risque de sanctions est faible, il se fichent souvent de "on a le droit ou non"

soyons franc: peu de personnes seraient prêtes à aller au tribunal, et quand bien même ca prendrai des années à être condamné... Bref, la PS4 serait déja sortie !

Il n'y a ni risque pour les personnnes, ni retrait de fonction "essentielles" au produit. C'est comme retirer le support du MP3 : c'est une fonction annexe, utile certes, mais annexe. Mais en pratique, peut on dire devant un juge que l'on aurait PAS acheté la PS3 si cette fonction n'existait pas? Certains le diraient peut être, mais ca fait quoi, 0.01%?

Quand on voit que Sony a gagné des procès sur le fait que "les cd sont résistants, et si vous cassez votre DVD de jeu on vous le change" (ce qui est purement faux !) à l'epoque de la ps2, je ne me fais pas de souci quant à la fonctionnalité linux. Si ils veulent l'enlever, ils le feront.

J'espère me tromper, sincèrement je l'espère, mais si le retrait de l'other OS est la seule solution pour eux...

Quoiqu'il en soit, bel exploit et belle explication technique!

Bien sur qu il peuvent le faire et legalement .Cela n est pas une option de la console donc il pourront faire ce qu ils veulent.

Lien vers le commentaire
Partager sur d'autres sites

Oui dans l'underground, des gens ont forcément déjà hacker la PS3 depuis un moment sans aucun doute ...

Il y a toujours une face cachée de l'iceberg, c'est comme pour les BOFs, la disclosure public en 1996 a fait découvrir "au grand public" cette faille alors qu'elle était exploitée depuis des années et connues de cercles d'initiés ;) .

m_101

Lien vers le commentaire
Partager sur d'autres sites

Quelle en serais l'intérêt??? a mon humble avis si un guguse avais déjà hack l'animal il y aurais eu des fuites,tu peut pas garder un truc aussi énorme par simple besoin de reconnaissance.... (la ou tout le monde est sencer échouée tu en ressortirais d'avantage glorieux)

Modifié par LeBoulet
Lien vers le commentaire
Partager sur d'autres sites

Quelle en serais l'intérêt??? a mon humble avis si un guguse avais déjà hack l'animal il y aurais eu des fuites,tu peut pas garder un truc aussi énorme par simple besoin de reconnaissance.... (la ou tout le monde est sencer échouée tu en ressortirais d'avantage glorieux)

Quelle en serait l'intérêt?

Là est la difficulté dans l'explication.

Le hacking c'est tout une philosophie de vie, de pensée, etc, ce n'est pas uniquement de la technique.

Les hackers ne hackent généralement pas par besoin de reconnaissance (surtout les très bons) mais pour le fun. Le hacking c'est du BOULOT, mais c'est surtout pour le FUN que les gens le font au départ quand même.

Avoir le privilège d'être la seule personne sur Terre à avoir un certain hack c'est très satisfaisant aussi mais le partager encore plus.

Il y a énormément de raison à ne pas diffuser un hack énorme :

- légalité

- patch possible rendant le hack inutile

- "célébrité" non voulue (pour vivre heureux, vivons cachés)

- le business en serait impossible (certains exploits se vendent à prix d'or)

- etc

m_101

Lien vers le commentaire
Partager sur d'autres sites

Faudrait pas abuser non plus, bien sur que les hackers font ça pour se faire un nom, suffit de voir comment ils se font mousser sur CNN (comme des sportifs).

Et croyez-moi Geohot doit pas avoir qu'une petite amie ...

Lien vers le commentaire
Partager sur d'autres sites

  • 2 weeks later...
Hacker l'hyperviseur n'est pas l'unique étape nécessaire au lancement de jeux pirates.

Je pensais qu'il fallait pas parler de ca ici ? :whistling:

Sinon, pour le fait de faire un procès à Sony si ils enlèvent l'OtherOS, c'est comme si on leur en avait fait un lorsqu'ils ont enlevé la rétro compatibilité PS2...

On peux aussi leur en faire un parcequ'on pas jouer a la wii avec tant qu'on y est...

Lien vers le commentaire
Partager sur d'autres sites

Hacker l'hyperviseur n'est pas l'unique étape nécessaire au lancement de jeux pirates.

Je pensais qu'il fallait pas parler de ca ici ? :whistling:

Sinon, pour le fait de faire un procès à Sony si ils enlèvent l'OtherOS, c'est comme si on leur en avait fait un lorsqu'ils ont enlevé la rétro compatibilité PS2...

On peux aussi leur en faire un parcequ'on pas jouer a la wii avec tant qu'on y est...

ba qu'est ce que tu dis ? .....

ils ont pas attendu pour enlever le otherOs ggne

Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share