En 2018, Google a renforcé la sécurité de ses smartphones Pixel avec l’intégration d’une puce dédiée, baptisée Titan M. Ce composant gère les tâches les plus sensibles, comme le démarrage sécurisé du système, le stockage de secrets cryptographiques ou la génération de clés de chiffrement. Il occupe une fonction similaire à la Secure Enclave d’un iPhone, à la différence qu’il est totalement séparé du « system on chip » (SOC). Ce qui devrait, en théorie, lui conférer un niveau de sécurité plus élevé.
Mais cela n’a pas effrayé les chercheurs en sécurité de la société française Quarkslab, qui ont décidé d’analyser cette puce par rétro-ingénierie et d’évaluer cette prétendue sécurité. Ils viennent de présenter ce travail à l’occasion de la conférence Black Hat Europe 2021. Au final, ils ont réussi à trouver deux failles critiques, dont l’une permettait de rétrograder le firmware et d’exploiter une ancienne faille déjà patchée de type « buffer overflow ». Et ainsi, d’exécuter du code sur Titan M, ce qui est une première.
Certes, cette attaque ne permettait pas d’exécuter du code arbitraire et de prendre le contrôle de la puce, car les fonctions disponibles dans Titan M sont (volontairement) trop restreintes. Toutefois, elle pouvait être utilisée pour faire fuiter le mémoire de la puce, et donc les secrets qui peuvent y résider, comme les certificats racine de confiance ou la Boot ROM. Ce qui est déjà une prouesse.
Mais pour arriver à ce résultat, il a fallu s’accrocher. Les chercheurs ont d’abord commencé par une analyse statique du firmware de la Titan M. Aucun code source n’est disponible, mais une version binaire peut être trouvée dans l’arborescence du système de fichier du smartphone. Le désassemblage de ce binaire a permis d’avoir un premier niveau de connaissance, mais c’était globalement insuffisant. Seule une analyse dynamique permettait d’aller plus loin et l’idéal était de pouvoir intercepter les échanges qui circulaient sur le bus SPI qui relie la puce au SOC sur smartphone.
A découvrir aussi en vidéo :
Pour y arriver, les chercheurs ont créé un dispositif incroyablement complexe. Après avoir détaché la puce de son socle PCB et supprimé la couche de protection en polyépoxyde, ils ont mis au jour 64 points de connexion. Ces points ont été rebranchés sur une carte d’adaptation qui, elle-même, a été reconnectée point par point au socle PCB du smartphone.
Grâce à cette carte d’adaptation, il était possible d’intercepter les échanges sur le bus SPI, mais il n’était pas possible d’envoyer des commandes. Pour cela, les chercheurs ont dû aller encore un cran plus loin et connecter en parallèle un second contrôleur SPI piloté… par un Raspberry Pi. Un gros bouton permettait ensuite de switcher, en fonction des besoins de l’analyse, entre le contrôleur SPI du Pixel et celui du Raspberry Pi.
Et c’est finalement grâce à cette installation pour le moins originale que les chercheurs ont pu analyser en profondeur le fonctionnement de Titan M. Évidemment, les failles trouvées ont été communiquées à Google qui, depuis, les a corrigées. Reste à savoir si les chercheurs pourront refaire cet exploit avec la nouvelle puce de sécurité de Google, Titan M2, intégrée dans la gamme Pixel 6.
Source: GitHub