Analyse de la sécurité de la PS4 et état du hack PS4

Apercu: 

cturt a rédigé un article très complet sur la sécurité de la PS4 ainsi que l'avancée du hack de la console de Sony.


Je ne vais bien entendu pas tout traduire (de l'anglais) étant donné la longueur de l'article, je vous invite à le lire via le lien en bas si vous voulez en savoir plus.

L'os de la PS4 est basée sur FreeBSD, et utilise WebKit comme moteur de rendu web (comme la Wii U, la 3ds, la PS Vita etc).
Comme beaucoup le savent, WebKit contient de nombreuses failles qui peuvent servir de point d'entrée au hack PS4. Cependant bien sur, quelques protections empêchent que cette faille donne accès à toute la console.
La version 1.76 de la PS4 en particulier utilise une version de WebKit vulnérable à la faille javascript CVE-2012-3748, cet exploit a été porté sur la console et rendu disponible.

Avec ceci, il a été possible de dumper des modules de l'OS et en savoir plus sur le firmware. Depuis le firmware 1.76, d'autres failles Webkit sont sorties mais pas encore portées sur PS4.

Pour pouvoir contourner des sécurités PS4, il faut utiliser ce qui s'appelle ROP (Return Oriented Programming), qui permet de faire évaluer du code (simple) si on connait le code déjà en mémoire de la PS4.
La PS4 implémente ASLR depuis le firmware 1.70, qui mélange les adresses mémoire, ce qui complique le ROP. Mais heureusement, grâce au JavaScript il est possible de connaitre des adresses de modules chargés en mémoire, et ainsi, en deviner les adresses qui nous intéressent.

OpenBSD, et donc la PS4 utilisent des syscall dans le kernel pour appeler des fonctions. Certains de ces syscalls sont spécifique PS4, il y en a 85 supplémentaires. Il faut donc tâtonner pour deviner ce qu'ils font où comment marchent ces syscall supplémentaires.

Certains syscall d'OpenBSD ont été désactivés par sécurité.

Il existe quelques failles dans OpenBSD, malheureusement, les plus importantes ne sont pas compatible dont 1 car le syscall a été désactivé, une autre car le CPU n'est pas intel mais AMD, et une autre car les sockets SCTP sont aussi désactivés.
Une faille qui fonctionne cependant permet de pouvoir lire quelques octets non initialisés de la mémoire du kernel.

Pour conclure, la meilleure solution semble être pour l'instant d'analyser les modules ajoutés par Sony dans le kernel de la console pour en découvrir des failles, puisque celles d'OpenBSD ne semblent pas suffisantes.

http://cturt.github.io/ps4.htmlSource : http://cturt.github.io/ps4.html