
Le fait que les smartphones Android puissent automatiquement interpréter des codes USSD est devenu un gros problème. On l'a vu il y a quelques jours avec les smartphones de chez Samsung où Ravi Borgaonkar à l'événement axé sécurité EkoParty 2012 a réussi à reset le smartphone grâce à un code USSD. Mais maintenant cela ne concerne pas seulement les smartphones de chez Samsung mais quasiment tous.
Aujourd'hui des chercheurs en sécurité ont démontré qu'ils pouvaient désactiver des cartes SIM grâce à un code USSD bien spécifique. Dans leur test, ils ont créé une page qui envoie une commande USSD bien particulière et en l'appelant avec un HTC One XL, la carte SIM du smartphone a automatiquement été verrouillée. Pour le déverrouiller, l'utilisateur est censé rentrer le code PUK mais si les chercheurs avaient mis en place une page avec les commandes pour entrer dix fois un code PUK incorrecte alors là le téléphone serait complètement bloqué. Ils ont également été en mesure de reproduire ce schéma sur un Motorola RAZR XT910 et moi-même sur mon HTC Desire HD.
La plupart des utilisateurs qui se retrouvent sur ce type de page pourront donc jeter leur carte SIM et en commander une autre, ce qui en général moyenne des frais et du temps, auprès de leur fournisseur mobile. Jusqu'à présent, les smartphones Android semblent être les seuls victimes de ce problème. Les iPhone ne semblent pas interpréter ces codes sur le système, même si l'utilisateur appuie sur "Appel" dans la fenêtre de dialogue qui apparaît.
Pour savoir si les codes USSD sont interprétés automatiquement sur votre smartphone, vous pouvez utiliser la page test USSD Checker que j'ai créé. Si une boîte de dialogue apparaît avec votre code IMEI, alors votre smartphone est probablement vulnérable aux injections.

QR Code vers USSD Checker
Le code malicieux peut se cacher également dans un QR Code et il y a des rumeurs qui disent que des pirates peuvent cibler certaines victimes en leur envoyant un WAP Push ou un e-mail HTML.
Comme je le disais ce matin sur Google+, il y a une application sur Google Play pour se prémunir de ces attaques. Par exemple NoTelURL est une application qui permettra ainsi d'empêcher les codes USSD d'être interprétés par votre smartphone.
Edit: Il y a aussi TelStop qui bloquera également le code mais vous affichera aussi le code USSD qui aurait été interprété (merci à @hackufbbb pour l'info)
Edit2: Par contre sur le Samsung Galaxy SIII, Galaxy Nexus ou le Nexus S le code n'est pas interprété comme vous pouvez le voir sur la page de test :

Sur Galaxy Nexus (merci à Tasaka pour le screen)
Soit vous aurez le message : "Problème de connexion ou code IHM non valide" soit vous aurez le code USSD directement affiché sans qu'il soit interprété : "*#06#". Pour le Samsung Galaxy SIII une mise à jour Over-The-Air (OTA) a eu lieu récemment.
MISES A JOUR DE L'ARTICLE |



















































De même sur la Nexus 7 le code n'est pas interprète. On a une boite de dialogue avec *#06#
Mais je pense que c'est peut être normal vu qu'elle n'a pas de carte sim. Merci pour la page de test et les infos pour s'en prémunir.