Due à une erreur dans l’écriture d’un programme, une faille est grande ouverte dans iOS 7 pour pirater un Mac, un iPhone ou un iPad pour un malfaiteur qui se trouverait connecté au même réseau local, un spot Wi-Fi par exemple. Faille comblée par une mise à jour.

au sommaire


    Apple a publié en urgence, vendredi soir, une mise à jour de sécurité (iOSiOS 7.0.6) pour réparer une grossière erreur de programmation dans le code source du logiciel système. Le correctif est téléchargeable pour les iPhone, iPad 2 et iPod Touch de dernière génération (5). Le système d'exploitation des MacMac devrait être concerné aussi, mais la mise à jour n'a pas encore été réalisée.

    Avec ce bugbug, des tests de sécurité de la connexion ne sont pas effectués, ce qui permet à un pirate d'intercepter les communications entre l'ordinateurordinateur et le réseau. C'est donc une attaque du type « homme au milieu » qui devient possible, l'ordinateur visé échangeant ses données avec le pirate et non avec le serveurserveur distant. Il faut pour cela que l'attaquant soit connecté au même réseau localréseau local. Un cybercafé ferait l'affaire, par exemple, et un pirate pourrait se faire passer pour n'importe quel site.

    L'erreur fatale : un « goto fail » en trop. Le second expédie à la fin de la procédure, zappant toutes les vérifications (if...) qui suivent. © Adam Langley

    L'erreur fatale : un « goto fail » en trop. Le second expédie à la fin de la procédure, zappant toutes les vérifications (if...) qui suivent. © Adam Langley

    L'OS des Mac aussi atteint par la faille

    Un développeur d'AppleApple, Adam Langley, a publié sur son blogblog le détail de cette erreur. Elle se situe dans une bibliothèque de procédures rendue publique et, plus précisément, dans une routine servant à vérifier la sécurisation d'une communication. On y trouve une instruction « goto fail » répétée deux fois de suite par erreur.

    L'effet est dévastateur. La première occurrence est l'instruction à suivre au cas où la condition précédente est réalisée. C'est donc le « sinon » d'un test de type « si condition alors faire ceci ». La seconde occurrence, elle, est considérée comme l'instruction suivante. Elle est donc toujours exécutée. À cet endroit, ce sera toujours « goto fail ». Le « fail » en question est une balise en fin de procédure, qui prépare l'envoi des valeurs indiquant s'il y a eu erreur ou non. Toutes les vérifications se trouvant à la suite de ce « goto » intempestif ne seront jamais exécutées : ce sont les portesportes ouvertes pour un pirate.

    « Ce genre de bug subtil est un cauchemar, commente Adam Langley dans son billet. Je pense que c'est juste une erreur. » D'après lui, OS X 10.9 serait atteint lui aussi (donc les Mac), de même que « certaines versions de iOS 6 ».