HomeKit : la sécurité de la maison Apple se fissure

Nicolas Furno |

L’affaire a fait grand bruit au début du mois, et pour cause. HomeKit, le protocole de domotique d’Apple censé être le plus sûr de l’industrie, contenait une faille permettant à n’importe qui de contrôler n’importe quel accessoire à distance. Autant dire qu’à l’heure où l’on utilise des caméras de surveillance et même des serrures connectées, c’était une faille de sécurité majeure.

Photo Khaos Tian. Cliquer pour agrandir

Fort heureusement, la faille a apparemment été corrigée avant qu'une personne malintentionnée ne l'exploite. Tout est bien qui finit bien en somme, mais la gestion du problème a laissé à désirer. C'est ce que raconte Khaos Tian, le développeur qui a découvert la faille. Le moins que l’on puisse dire, c’est que ce n’est pas glorieux pour Apple…

HomeKit, un majordome qui ouvre la porte à n’importe qui

Jusque-là, on ne savait pas exactement en quoi consistait cette faille de sécurité, si ce n’est qu’elle permettait à n’importe qui de contrôler un appareil HomeKit à distance, sans y avoir été autorisé préalablement. Sans dévoiler exactement ses secrets pour des raisons de sécurité, Khaos Tian explique un petit peu plus longuement comment la faille fonctionnait.

Rappelons que l’une des fonctions proposées par HomeKit est un accès distant aux appareils connectés chez vous, via un concentrateur qui est en général une Apple TV. Vous pouvez ainsi vérifier si vos lampes sont bien éteintes, gérer le chauffage, ou encore surveiller votre domicile depuis n’importe où en utilisant un appareil iOS associé à votre compte iCloud. Cette même fonction permet aussi d’inviter d’autres personnes à accéder au réseau domotique, de quoi permettre à toute la famille d’utiliser ces fonctions d’automatisation.

Depuis iOS 10, HomeKit peut être partagé avec d’autres utilisateurs. L’idée étant de permettre à tous les membres d’un foyer d’accéder aux appareils et de les contrôler. Cliquer pour agrandir

Pour permettre un échange sécurisé et distant, Apple a mis en place des serveurs de communication spécifiques à HomeKit qui fonctionnent sur le même modèle que ceux dédiés à iMessage. D’ailleurs, la communication entre les utilisateurs et les appareils, et entre les appareils eux-mêmes, se fait sous la forme de messages chiffrés.

Quand vous voulez accéder au statut d’une ampoule connectée, votre iPhone envoie un message au serveur HomeKit, qui le transmet ensuite à l’Apple TV placée chez vous. Si une réponse est attendue, elle transite de la même manière, via les serveurs d’Apple.

Avec un Apple TV chez vous, vous pouvez accéder aux équipements HomeKit depuis un appareil distant. De quoi, par exemple, ouvrir la porte à distance (image Apple). Cliquer pour agrandir

En théorie, HomeKit devrait vérifier que l’expéditeur du message est autorisé à accéder aux appareils du domicile et seulement agir ensuite. La faille commence ici : Apple avait oublié cette étape de vérification et le concentrateur HomeKit à votre domicile répondait à chaque message, sans vérifier son expéditeur. En soi, cette faille est déjà très gênante, mais elle ne suffit pas, puisqu’il y a une deuxième sécurité. Chaque appareil HomeKit est associé à un identifiant unique généré lors de l’installation et qui est trop complexe pour être deviné.

Toujours en théorie donc, même si HomeKit répond à chaque requête sans en vérifier l’origine, cela n’a aucune conséquence réelle, puisque l’identifiant unique des appareils connectés n’est pas connu. Sauf qu’il y avait deux failles de sécurité en une, et qu’un bug dans watchOS 4.0 et watchOS 4.1 permettait de connaître tous les identifiants associés à un domicile HomeKit, même sans autorisation.

C’est la combinaison de ces deux failles qui était fatale. Un malandrin pouvait envoyer un message à n’importe quel utilisateur HomeKit sans se faire rejeter, d’une part. D’autre part, en envoyant un message spécifique depuis une montre sous watchOS 4.0 ou 4.1, il pouvait obtenir la liste exhaustive des appareils HomeKit enregistrés. En combinant les deux, il pouvait alors gagner un accès total à la domotique de n’importe quel utilisateur.

Khaos Tian a créé un prototype pour exploiter sa faille. Ici, la liste des commandes qui pouvaient être envoyées sans aucune authentification préalable. Cliquer pour agrandir

Apple a réagi rapidement en corrigeant d’abord la faille de watchOS côté serveur. Le correctif était assez simple : seul le compte iCloud qui avait créé la configuration HomeKit pouvait envoyer des requêtes au serveur depuis une Apple Watch. Et avec watchOS 4.2, les sécurités ont été renforcées sur la montre pour restaurer l’ancien fonctionnement et permettre aux autres comptes iCloud autorisés d’utiliser HomeKit depuis la montre.

Par la suite, iOS 11.2.1 et tvOS 11.2.1 ont aussi complètement comblé la faille de sécurité en vérifiant que chaque message reçu de la part des serveurs HomeKit provient bien d’un utilisateur autorisé.

Apple n’a pris la faille sérieusement qu’au moment où elle a été publique

En apparence, Apple a bien géré la crise. 9to5Mac a révélé l’existence de la faille de sécurité le 3 décembre, en indiquant d’emblée que le constructeur avait été mis au courant et travaillait sur un correctif. La faille avait été alors comblée en deux temps, d’abord côté serveur et une semaine après côté clients, avec les sorties d’iOS 11.2.1 et tvOS 11.2.1. C’était une faille majeure, mais l’entreprise avait fait apparemment tout ce qu’il fallait pour la régler dans les plus brefs délais.

Malheureusement, on ne connaissait pas encore toute l’histoire et la réalité est moins positive pour Apple. Khaos Tian détaille précisément le calendrier avant l’article de 9to5Mac, bien avant même, puisqu’il a découvert la faille à la fin du mois d’octobre. Apple a été prévenue le 28 octobre et il a reçu une réponse deux jours plus tard, pour l’informer qu’une enquête allait être menée en vue de corriger la faille.

Le temps passe et le développeur n’a pas de nouvelles, malgré ses multiples relances par mail, notamment pour préciser les détails spécifiques de ses découvertes. Apple corrige une partie de la faille au milieu du mois de novembre, en modifiant ses serveurs afin de bloquer la possibilité d’obtenir la liste exhaustive des équipements HomeKit d’un utilisateur. Khaos Tian suppose que le correctif complet est en cours et qu’Apple ne souhaite simplement pas communiquer, ce qui est sa politique la plus courante.

Le problème, c’est qu’iOS 11.2 sorti début décembre doit corriger la partie client, mais fait en réalité plus de mal que de bien. Certes, elle corrige une partie de la faille, mais elle en introduit une autre encore plus grosse. N’importe qui peut alors obtenir les identifiants des appareils HomeKit de n’importe quel utilisateur en utilisant un iPhone ou iPad avec cette version. Sachant qu’il fallait une montre et une version précise de watchOS jusque-là, cette bourde supplémentaire est de fait une aggravation de la situation, pas une correction.

Puisqu’Apple ne répond plus à aucun de ses messages, Khaos Tian cherche d’autres voies pour communiquer avec le constructeur et signaler que non seulement sa faille originale n’est pas corrigée, mais que la situation a empiré. Après avoir effectué plusieurs stages d’été chez Apple, il connait encore quelqu’un qui peut alerter l’équipe en charge de HomeKit. On lui envoie finalement un mail… pour indiquer qu’une nouvelle enquête va être ouverte pour déterminer ce qu’il faut faire.

L’article publié sur 9To5Mac. Cliquer pour agrandir

À ce stade, la faille avait été révélée depuis plus d’un mois et la situation était encore pire qu’au départ. Pis, le constructeur ne semblait pas s’en alarmer et préférait apparemment prendre son temps pour combler la faille. Khaos Tian aurait pu dévoiler publiquement la faille pour accélérer le processus, mais il a choisi de contacter un ami qui travaille chez 9to5Mac pour lui présenter le problème.

La suite est connue. La promesse d’une publication de la faille sur un site connu comme 9to5Mac a motivé suffisamment le constructeur. Le travail avait commencé quand l’article a été publié et une semaine plus tard, la faille HomeKit était totalement comblée.

Un vrai problème de gestion des failles à Cupertino

Ce n’est pas la première fois que la gestion des failles de sécurité chez Apple est critiquée. Pendant longtemps, le constructeur n’avait aucun programme pour inciter les chercheurs à lui rapporter les failles découvertes. C’est le cas depuis l’été 2016, mais les sommes promises par l’entreprise restent ridicules comparées à celles effectivement payées par des tiers pour des failles encore inconnues, notamment sur iOS. Elles sont si ridicules qu’elles ne suffisent souvent même pas à rentabiliser le travail des chercheurs en sécurité si bien que ce programme est, dans l’ensemble, un flop.

Liste des sommes promises par Apple lors du lancement de son programme de récompenses pour des failles. On ne sait pas si cette liste a été mise à jour depuis. Cliquer pour agrandir

Même sans parler d’argent, la gestion des failles laisse souvent à désirer. Il existe une adresse mail indiquée sur cette fiche technique pour informer Apple de l’existence d’une nouvelle faille. Le problème, c’est que l’entreprise ne prend pas toujours la peine de répondre rapidement et/ou correctement. Le cas de la faille HomeKit est intéressant à cet égard : ce développeur fait ce qu’il faut, envoie les informations de la manière attendue et tout ce qu’il reçoit comme réponse est un mail standard et une correction un mois après qui empire encore la situation.

Face à ces silences, les dénicheurs de failles sont nombreux à perdre patience. Certains pourraient tenter de vendre leur découverte, d’autres choisissent, comme Khaos Tian, de la rendre aussi visible que possible pour forcer Apple à agir. La faille root de macOS avait suivi le même chemin : il a fallu un tweet largement partagé pour qu’Apple corrige ce problème évoqué plusieurs semaines auparavant sur ses propres forums.

Le développeur qui avait publié l’information sur Twitter avait été critiqué par une partie de ses pairs pour le choix du réseau social plutôt que la voie traditionnelle, par mail. Mais en même temps, la faille était si énorme que cette publication a forcé Apple à réagir extrêmement rapidement. S’il avait envoyé le mail, peut-être qu’il aurait fallu attendre plusieurs semaines avant d’avoir le correctif. Une perspective guère réjouissante quand on pense que ce bug traînait depuis longtemps et pouvait être utilisé à distance…

Utiliser le compte « root » et un mot de passe vide, assurément ça ne donnait rien… sauf que, si.

La perfection n’est pas de ce monde, en tout cas pas en informatique et personne ne peut attendre d’Apple la perfection absolue. Il y aura toujours des failles et il faudra toujours les corriger. Là où le constructeur n’est pas à la hauteur, c’est dans la gestion de ces failles. Et ce n’est pas nouveau : en 2015, nous avions interrogé deux spécialistes du domaine et pour eux, le constat était sans appel : « Apple n'a pas une culture de la sécurité adéquate ». Manifestement, la situation n’a toujours pas évolué.

Apple devrait tout faire pour que ceux qui découvrent des failles l'informent en premier, et pas un tiers souvent malveillant. Pour cela, il faudrait peut-être des incitations financières plus généreuses. Il faudrait sûrement que les failles remontées soient prises en charge sérieusement et qu’un vrai suivi soit proposé aux auteurs, pour les rassurer sur cette prise en charge.

Naturellement, ce n’est pas tout à fait aussi simple : il faut traiter toutes les informations reçues, séparer le grain de l’ivraie, juger la validité et ensuite la dangerosité réelle de chaque faille exposée. C’est un sacré travail, c’est vrai, mais Apple a tous les moyens imaginables à sa disposition pour mettre en place une équipe dédiée à cette tâche. Ou alors, pour proposer systématiquement à tous ceux qui remontent de vraies failles de venir travailler à Cupertino et être payés pour continuer ce travail.

Ce ne sont pas les options qui manquent. Espérons maintenant qu’Apple saura utiliser sa « mauvaise semaine », comme l’a pudiquement qualifiée Phil Schiller pour améliorer sa gestion des failles de sécurité.

Accédez aux commentaires de l'article