Si vous lisez cette page avec un smartphone et avez vu un numéro bizarre affiché avant la lecture de la page, voici l'explication :

  1. La plupart des téléphones mobiles sont capables d'appeler des codes USSD, des numéros correspondant à certains services spécifiques en local ou via le réseau GSM.
  2. Il existe un préfixe d'URL, "tel:" servant d'indicateur d'hyperlien vers un numéro de téléphone. Autrement dit, de la même façon que le préfixe "mailto:" est traité comme un lien vers une adresse e-mail et redirige l'utilisateur vers un logiciel de messagerie avec composition d'un nouveau message vers l'adresse en question, le préfixe "tel:" redirige vers l'application qui forme et valide les numéros de téléphone composés, le dialer, et initie l'appel du numéro mentionné dans le lien.
  3. Dans certaines versions du dialer d'Android, le numéro composé, lorsqu'il s'agit d'un USSD, est exécuté sans validation manuelle de l'utilisateur. Bien que cela ait été corrigé sur le code officiel d'Android, certains fabricants tels que Samsung (Galaxy, Nexus...), HTC (One...), Sony (Xperia...), ou Motorola (Defy...) livrent leur propre version OEM d'Android, où la faille, car c'en est une, est susceptible d'être toujours présente.
  4. Un tel lien peut être incorporé dans une frame d'une page web, dans ce cas la composition du code USSD est effectué lors de la lecture de la page.
  5. D'autres vecteurs tels que les QR codes ("attagging"), le NFC, ou le SMS WAP Push peuvent être exploités pour une attaque .

En résumé, sur les téléphones vulnérables, il est possible d'exécuter un code USSD arbitraire. Sur certains modèles, il est ainsi possible de formater le téléphone[1] en lisant un QRcode (''USSD Factory Reset Vulnerability", cf ici pour une brève démonstration ou pour une présentation plus historique).

À titre de méta-démonstration, le code USSD *#06# composé sur un smartphone affiche son identifiant IMEI. L'image suivante est un QRcode liant vers la présente page (lisible par exemble avec Google Goggles), où est incorporée une frame munie d'un lien vers ce code USSD, ce qui devrait permettre à chacun de tester son téléphone[2].

Imei USSD QRcode

Pour se prémunir d'une attaque potentielle (QR code sur une affiche engageante, SMS hostile, malware), des applications telles que TelStop ou Auto-reset Blocker sont déjà sur le marché, enfin, le "Play Store" ; elles introduisent une demande systématique de confirmation de l'utilisateur avant l'exécution à distance d'un code USSD. Sinon, mettre à jour son système ou utiliser un dialer tel que celui-ci (après avoir, ça ne peut pas faire de mal, rooté son téléphone et remplacé l'Android natif par CyanogenMod) remédie au problème.

Après l'entrée sur l'autisme, c'est vrai que cette histoire est quand même assez insignifiante.

Notes

[1] On parle bien du formatage du téléphone, et pas de la carte SD.

[2] Ce qui explique pourquoi vous avez peut-être vu votre numéro IMEI avant de lire cette page. Potentiellement donc, au lieu de déclencher ce simple affichage, la page aurait pu initier le formatage du téléphone, sans recours. Toutefois, l'affichage immédiat du numéro IMEI -sans validation manuelle- n'implique pas pour autant que le téléphone soit vulnérable à un Factory Reset distant, car la liste des codes USSD exécutables sur un téléphone dépend du fabricant et du modèle.