La manière dont s'y sont pris en juin dernier les deux chercheurs du Georgia Institute of Technology pour installer du code sur un iPhone via un faux chargeur USB a été détaillée par Ars Technica (lire iOS 7 détecte les chargeurs malicieux).
Grosso modo, il s'agit de reproduire la manière dont les développeurs installent des apps sur des appareils iOS, branchés directement en USB sur leur Mac. Dans le cas de cette démonstration, l'iPhone était relié à un ordinateur de la taille d'une toute petite carte électronique. Sous réserve que le téléphone soit déverrouillé, il accepte les commandes USB envoyées par son hôte et les chercheurs ont pu ainsi transférer une application.
Pour y arriver, leur carte a récupéré l'identifiant UDID du téléphone qui a été soumis aux serveurs d'Apple pour obtenir un fichier dit de provisionning profile. Celui-ci est associé à l'application créée par le développeur et il contient la liste des appareils iOS que ce développeur a autorisés. Ce fichier est alors transféré vers le téléphone. Partant, il peut faire fonctionner l'app envoyée dans son sillon.
Lors de leurs essais, ces chercheurs avaient remplacé l'app Facebook du téléphone par une copie contenant un trojan capable de prendre des captures pendant la saisie d'un mot de passe. Ils pouvaient aussi passer un appel sans l'aide de l'utilisateur.
La réussite d'une telle opération doit cependant contourner plusieurs obstacles. Le téléphone ne doit pas être verrouillé lorsqu'il est branché au faux chargeur. Ensuite, le provisionning profile est nécessairement associé à un compte développeur valide et enregistré auprès d'Apple. Enfin, une limite de déploiement à 100 appareils est imposée pour ces fichiers.
Ce procédé n'autorise donc pas un piratage en masse d'appareils iOS, on s'inscrit plutôt dans un contexte où un individu, une organisation ou un gouvernement a besoin de s'attaquer à l'appareil d'une personne très ciblée.
Apple a donc ajouté une barrière dans la dernière bêta d'iOS 7. Lorsqu'on branche son téléphone à un périphérique USB, si celui-ci est autre chose qu'un banal chargeur USB, un message invite l'utilisateur à confirmer qu'il valide l'ordinateur auquel le périphérique est relié. Cette demande sera répétée aussi longtemps que l'on n'aura pas donné son accord. C'est une action supplémentaire à réaliser mais modérément contraignante.
À gauche, l'iPhone est verrouillé et branché à un MacBook Air. Il passe simplement en charge. À droite, même scénario, mais on a déverrouillé l'iPhone avant son branchement
Le message affiché sur le MacBook Air si l'on a refusé de lui faire confiance