En la comblant sur iOS, Apple a révélé vendredi l'existence d'une grave faille permettant de passer outre la vérification d'une connexion SSL. Une vulnérabilité qui n'a pas été corrigée aussitôt sur OS X, alors qu'il est tout autant concerné.
Concrètement cette faille permet d'usurper un serveur sécurisé et donc d'intercepter des données chiffrées. Un tiers peut ainsi se faire passer pour l'entreprise ou pour la banque d'un utilisateur et récupérer des données confidentielles. OS X 10.9 et 10.9.1, donc plusieurs millions d'utilisateurs, sont affectés, et même si on ne peut intercepter que les données de cibles connectées au même réseau (attaque de l'homme du milieu ou man in the middle), ce qui en réduit l'ampleur (les risques sont très limités à domicile), la cause de la faille et la réaction d'Apple interrogent.
Une erreur grossière
La faille prend effectivement la forme de ce qui ressemble à une erreur bénigne : une simple répétition dans le code source (ouvert) de SecureTransport, l'implémentation maison du protocole SSL, sur laquelle reposent le navigateur Internet Safari mais aussi de nombreux autres services d'Apple.Dans le code source résumé ci-dessous, le premier des deux « goto fail » est effectivement rattaché à la condition « if » précédente. Mais conformément au langage de programmation C, faute d'accolades et en dépit du retrait, le second « goto fail » ne dépend plus d'aucune condition et est systématiquement exécuté. Une répétition lourde de conséquences, puisque les connexions SSL sont ainsi validées que les certificats soient conformes ou non.
Un laxisme intrigant
Ce qui est surprenant c'est que cette répétition soit apparue un beau jour sans aucune explication valable, du point de vue de multiples développeurs, alors que les failles de sécurité découlent généralement de modifications plus profondes. En d'autres termes, on aurait voulu ouvrir délibérément cette faille qu'on ne s'y serait pas pris autrement.Le code source de SecureTransport est ouvert depuis OS X 10.8, mais personne n'a jamais repéré cet ajout. Ce constat à lui seul prouve la difficulté de gérer des millions de lignes de code émanant de centaines de développeurs. Il est donc difficile d'écarter totalement l'erreur humaine ou même technique.
Reste que l'absence de procédure permettant de repérer ce genre d'erreur grossière interroge, chez un éditeur d'une telle ampleur. Tout comme le fait qu'Apple ne soit pas plus pressé, qu'il ait prévu d'attendre la publication d'OS X 10.9.2, au lieu de proposer aussitôt un correctif comme l'ont d'ailleurs fait des développeurs indépendants. D'aucuns se demandent donc si Apple n'est pas délibérément laxiste, sous la pression d'une organisation gouvernementale comme la NSA, par exemple...