Une vulnérabilité Android importante n’a pas été corrigée pendant… près de six mois !

L’un des bugs les plus étranges et dangereux des smartphones Android, et les problèmes liés à sa correction.

Lors d’une journée d’été en 2022, l’expert en cybersécurité David Schütz rentrait chez lui après une longue journée de voyage. Son smartphone Google Pixel 6 n’avait presque plus de batterie : lorsque David est enfin arrivé chez lui, il ne lui restait que 1 %. Comme c’était son jour de chance, le téléphone s’est éteint au milieu d’un message. Schütz a attrapé son chargeur et a rallumé son téléphone mais ne pouvait pas continuer à écrire son message ; il devait saisir le code PIN de sa carte SIM. Épuisé par ce voyage, David a saisi trois fois le mauvais code PIN. Il devait donc entrer un autre code secret : le code PUK. Une fois que cela a été fait, David a dû déverrouiller son téléphone avec son empreinte digitale. Pourtant, lorsque l’empreinte a été reconnue, le téléphone s’est bloqué.

Le déverrouillage par empreinte digitale n'est généralement pas une option lorsque vous redémarrez votre téléphone. <a href="https://bugs.xdavidhu.me/google/2022/11/10/accidental-70k-google-pixel-lock-screen-bypass/" target="_blank">Source</a>.

Le déverrouillage par empreinte digitale n’est généralement pas une option lorsque vous redémarrez votre téléphone. Source.

 

N’importe quelle personne aurait pensé que ce comportement étrange était dû à un bug du logiciel et aurait redémarré le téléphone avant de continuer à mener une vie normale. En revanche, David est un chercheur qui a beaucoup de flair lorsqu’un programme ou un dispositif a un comportement étrange. Il a donc décidé d’analyser la situation en détail et à chercher à comprendre pourquoi son téléphone ne voulait plus qu’il saisisse un code pour le déverrouiller après qu’il a été redémarré. Après plusieurs tentatives sans succès, David s’est rendu compte qu’un redémarrage n’est pas nécessaire dans ce cas. Prenez un smartphone verrouillé, retirez la carte SIM, remettez-la, saisissez trois fois le mauvais code PIN, saisissez le code PUK… Que s’est-il passé ? Il s’avère que vous avez complètement déjoué l’écran de verrouillage de l’écran ! Schütz a décrit cette découverte en détail sur son blog, mais si vous pensez que Google a rapidement corrigé l’erreur, vous avez tort. Cette faille de sécurité a menacé un nombre considérable de smartphones Android (avec les versions 11 à 13) pendant près de 6 mois, de juin à novembre !

Démonstration pratique de la technique utilisée pour contourner l’écran de verrouillage à l’aide d’une carte SIM.

Comment ?!

En substance, la vulnérabilité permet à quelqu’un de contourner l’écran de verrouillage et d’avoir accès à toutes les données du téléphone sans avoir à connaître le code secret. Aucun mécanisme d’attaque sophistiqué n’est nécessaire. Inutile de connecter un dispositif externe au smartphone ou de chercher de nouvelles vulnérabilités dans les programmes. Il vous suffit de retirer et de remettre la carte SIM (l’escroc peut utiliser la sienne), de saisir le mauvais code PIN trois fois, d’entrer le code PUK, de modifier le code PIN puis vous avez accès au téléphone. La seule condition est que le téléphone doit être allumé et avoir déjà été déverrouillé par le propriétaire.

Le programme vulnérable se trouve dans la partie librement distribuée d’Android, c’est-à-dire là où n’importe qui peut voir le code source. Cela nous a permis de savoir comment un bug aussi simple a pu apparaître. En réalité, les smartphones Android ont plusieurs écrans de verrouillage, dont un écran qui demande de saisir un code secret, un autre qui veut analyser l’empreinte digitale et une fenêtre pour entrer le code PIN de la carte SIM. Si l’utilisateur passe avec succès une de ces vérifications, l’écran de verrouillage suivant apparaît ; peu importe lequel. Tout le système fonctionnait bien, sauf l’écran de verrouillage du code PUK. La saisie du code PUK faisait que la fonction « écran de verrouillage désactivé » s’effectuait deux fois de suite. Au lieu d’afficher l’écran pour analyser d’empreinte digitale, le téléphone était déverrouillé. Le problème a été résolu en modifiant légèrement le code Android, qui contrôle désormais chaque écran de verrouillage de façon indépendante.

La bureaucratie versus la sécurité

Pourquoi il a fallu presque 6 mois pour corriger cette vulnérabilité grave ? Schütz a envoyé une description de la vulnérabilité via le programme bug bounty de Google. Selon les règles du programme, une vulnérabilité découverte qui permet de contourner l’écran de verrouillage de plusieurs dispositifs (voire tous) est récompensée et le chercheur pourrait recevoir jusqu’à 100 000 dollars. Au lieu de cet argent, David a reçu plusieurs semaines de silence puis… sa demande a été rejetée après avoir été qualifiée de duplicata. Quelqu’un d’autre avait déjà averti Google de cette vulnérabilité.

David s’est résigné à perdre cette récompense bien méritée. En attendant, l’été s’était écoulé et nous étions en septembre ; son rapport avait été publié il y a trois mois. Il était convaincu que la faille avait été corrigée lors de la dernière sortie des patchs. Ce n’était pas le cas. Une fois la mise à jour de septembre installée, son téléphone le laissait encore contourner l’écran de verrouillage en utilisant l’astuce de la carte SIM. Le hasard a fait que Google organisait un événement pour les chercheurs en sécurité en septembre. Une fois sur place, David a personnellement montré le bug aux développeurs de l’entreprise. C’est à ce moment-là qu’ils en ont eu connaissance, et la vulnérabilité a été corrigée lors de la mise à jour de novembre.

Même si un rapport de bug existait déjà, Google n’avait pas du tout réagi. Et David n’avait pas non plus eu de réponse au message envoyé en juin 2022. Ce n’est que grâce à ce rendez-vous en face-à-face avec les développeurs que la vulnérabilité a été corrigée. Finalement, Schütz a reçu 70 000 dollars pour ses efforts.

Le prix de la sécurité

En tant qu’utilisateurs de smartphones, nous espérons que les bugs critiques soient traités en priorité par les développeurs et rapidement corrigés. Cette histoire d’écran de verrouillage déjoué sur les smartphones Android montre que ce n’est pas toujours le cas. Tout avait bien commencé : la vulnérabilité avait (heureusement) été détectée par un chercheur en sécurité informatique qui ne l’avait pas vendue sur le darknet, là où elle aurait pu être utilisée à des fins néfastes. Il a préféré avertir l’entreprise. Google devait simplement corriger rapidement la faille, mais c’est là que les problèmes ont commencé. Cette situation donne matière à penser aux entreprises qui travaillent avec des experts en sécurité externes via les programmes bug bounty : ont-ils assez de ressources en interne pour corriger les bugs rapidement ?

Conseils