La semaine dernière a été un tournant décisif pour la communauté de la sécurité embarquée, et par implication de tous les autres. Bloomberg a annoncé que des puces voyous avaient été trouvées sur les cartes mères de serveurs vendus par Super Micro Computer à des entreprises comme Amazon et Apple. Quiconque les avait ajoutés au cours du processus de fabrication aurait acquis la capacité de contrôler et d’accéder aux données des serveurs lorsque ces entreprises les ont installées. Pour la première fois, il est apparu que la chaîne d’approvisionnement pouvait être perturbée. Cela signifiait que le piratage se produisait pendant le processus de fabrication, avant même que les produits aient quitté la chaîne de production.
Jusqu’à présent, le piratage était principalement considéré comme l’introduction de code malveillant dans un appareil « propre », en exploitant les failles de sécurité de son code. C’est ce qui est arrivé avec chaque virus PC; des attaques comme le ransomware WannaCry, et des attaques commanditées par l’État telles que Stuxnet et la tentative récemment découverte par des pirates informatiques russes d’infiltrer l’Organisation pour la Prévention des Armes chimiques à La Haye. Bien que le concept de piratage d’un produit avant son expédition soit discuté depuis des années, le rapport Bloomberg signale que nous sommes passés du débat académique à la réalité.
Il y a encore un débat pour savoir si le rapport est correct. Apple et Amazon nient une grande partie des détails, mais sa publication a commencé à regarder de plus près la ligne d’approvisionnement et à conclure que, que cela soit vrai ou non, la façon dont nous concevons, sous-traitons et fabriquons des produits électroniques complexes aujourd’hui signifie que c’est possible. Si c’est vrai, cette attaque était probablement commerciale, où une entreprise ou un État voulait découvrir ce que faisaient les grandes entreprises mondiales. Ce qui est plus inquiétant, c’est la perspective d’un avenir où des acteurs étatiques malveillants ciblent des infrastructures dans le but de paralyser un pays. Ce qui m’amène aux compteurs intelligents.
J’ai toujours été préoccupé par la vulnérabilité des compteurs intelligents britanniques au piratage au stade de la fabrication. La raison de cette préoccupation est que ces compteurs contiennent un interrupteur d’arrêt qui permet de couper l’alimentation par le fournisseur d’énergie. C’est une commodité pour eux, car ils n’ont plus besoin d’envoyer quelqu’un pour accéder à un bâtiment. Cependant, si jamais il était piraté, les pirates pourraient éteindre des millions de compteurs en même temps. Cela pourrait être utilisé pour détruire le réseau électrique.
Saleh Soltan, chercheur au département de génie électrique de Princeton, a écrit un certain nombre de bons articles démontrant comment la majorité du réseau pourrait être détruite par un piratage qui entraîne un changement de seulement 1% de la demande d’électricité. Parce qu’il est actuellement très coûteux de stocker de l’électricité, la production est soigneusement adaptée à la demande attendue. Si cette demande varie rapidement, le réseau tentera de s’arrêter pour éviter les dommages, mais si le changement est rapide et inattendu, les surtensions qui en résultent lorsque des éléments individuels s’allument et s’éteignent peuvent causer des dommages, ce qui peut provoquer des pannes généralisées. La restauration de l’alimentation peut être encore plus dommageable car le réseau ne sait pas ce qui est connecté et allumé, il ne peut donc pas anticiper la demande. Encore une fois, il y a un risque de dommages aux parties critiques du réseau si la demande peut être soudainement augmentée. Une fois que vous avez dépassé un certain niveau de dommages, la tâche de réparer le réseau et de restaurer une alimentation fiable et universelle peut prendre des années
J’ai toujours été préoccupé par ce risque; qu’un programmeur travaillant pour un fabricant de compteurs puisse écrire du code qui provoquerait l’arrêt de dizaines de millions de compteurs un certain temps. Si un quart des compteurs intelligents domestiques s’éteignaient ensemble, vous pourriez envisager une variation instantanée de la demande allant jusqu’à 15%, un ordre de grandeur supérieur au 1% que Saleh pense tuer le réseau. C’est quelque chose pour lequel aucun réseau électrique n’a été conçu. Il y a une raison pour laquelle les planificateurs militaires ciblent les centrales électriques – la suppression de l’électricité paralyse une nation pendant des années, comme nous l’avons vu en Irak. Cela fait de la grille une cible très intéressante pour tout acteur d’État malveillant.
Jusqu’à présent, je n’ai pas réussi à faire comprendre ce risque à quiconque impliqué dans le programme britannique. Le concept de piratage des fournisseurs d’énergie se limite aux personnes contournant ou trompant les compteurs individuels pour essayer de minimiser leurs factures. Historiquement, leur approche du piratage a été de déplacer des mètres à l’extérieur. Ce n’était pas seulement pour faciliter la lecture du compteur, c’est aussi parce que c’est dissuasif de contourner le compteur; ce que vous pourriez faire en privé dans votre placard sous les escaliers est moins attrayant lorsque vous êtes à la vue de tout le monde dans la rue. Lorsque j’ai évoqué la possibilité qu’un programmeur malveillant ajoute délibérément du code malveillant à un compteur intelligent pendant son développement, la seule réponse a été « Pourquoi quelqu’un ferait-il cela »? Contester cela avec « Pourquoi quelqu’un conduirait-il un camion dans un groupe de piétons? », ou « Pourquoi quelqu’un ferait-il voler un avion dans un centre commercial? »ne semble pas calculer. Les personnes impliquées dans le programme de compteurs intelligents ont du mal à élargir leur vision du monde d’un seul étudiant ou d’un seul chef de famille essayant de les frauder de quelques livres à une organisation ou une cause essayant de détruire une économie.
Ce qui est le plus inquiétant, c’est que c’est potentiellement très facile. Voici donc un tutoriel rapide sur la façon de pirater un compteur intelligent et de tuer le réseau.
Tout d’abord, trouvez un emploi chez un fabricant de compteurs intelligents. Cela ne devrait pas être difficile, car ils sont assez désespérés. Tout ce dont vous avez vraiment besoin pour cela est d’avoir une connaissance de base de ZigBee. Je ne me classe que comme programmeur amateur, mais deux entreprises de compteurs intelligents m’ont proposé des emplois en tant qu’architecte de systèmes. (J’ai refusé.) Réfléchissez ensuite à ce que vous souhaitez ajouter au code du compteur intelligent.
Commençons simplement et ajoutons simplement quelques lignes de code qui coupent l’alimentation de la maison à une date prédéterminée. Les compteurs intelligents ont des horloges en temps réel, qui doivent être synchronisées régulièrement, il n’est donc pas difficile de faire en sorte que des millions d’entre eux s’éteignent dans le même cycle secteur. Vous voulez vous assurer qu’une fois que vous avez déconnecté l’alimentation domestique, les compagnies d’énergie ne peuvent pas la rallumer, réinitialiser le compteur ou télécharger un nouveau micrologiciel, alors ajoutez quelques lignes supplémentaires pour désactiver les communications ou écrasez simplement les clés d’authentification. Assurez-vous de masquer le code pour que personne ne le repère et vous avez terminé. Parce que la spécification de mesure GB est si complexe, il y a beaucoup d’endroits pour cacher vos quelques lignes de code. DECC et BEIS ont fourni une très grande botte de foin pour vous permettre de cacher votre aiguille. Vous voulez vous assurer que votre code n’est pas écrasé par une mise à niveau ultérieure du firmware, il vaut donc probablement la peine de le faire apparaître dans quelque chose qui est susceptible de rester statique, comme la bibliothèque de cluster ou, si vous pouvez y accéder, le chargeur de démarrage. Si vous en avez l’occasion, mettez-le en ROM. Travail fait.
Pour avoir les meilleures chances de faire des dégâts, vous pouvez faire mieux que de simplement déconnecter l’alimentation en la rallumant quelques heures plus tard et en répétant cette séquence plusieurs fois. Cela va vraiment dérouter quiconque essaie de redémarrer le réseau et probablement causer plus de dégâts. Le gouvernement publie utilement des données sur la demande intérieure et la demande sectorielle pour vous aider à déterminer quand le faire.
Si l’on considère la demande sectorielle, la consommation d’électricité domestique représente environ 30% de la consommation totale en moyenne. Pour le premier arrêt, vous voulez trouver un moment où la demande intérieure est à sa plus grande proportion de la génération totale pour infliger la variation maximale en pourcentage. Le week-end, l’utilisation industrielle et commerciale sera beaucoup plus faible, donc un bon point de départ serait un dimanche.
En passant aux données d’utilisation domestique quotidienne, la demande de pointe se situe entre 6 et 8 heures du soir, donc si vous ciblez 7 heures un dimanche de janvier, vous constaterez probablement que la demande intérieure représente environ 60% du total. Si un quart des compteurs intelligents domestiques s’éteignent à ce moment-là, vous obtenez un rendement maximal avec une baisse instantanée de la demande d’environ 15%. Personne dans l’histoire de la conception de grille n’a jamais prévu cela.
Jetez un autre coup d’œil aux données pour déterminer votre prochaine étape, qui consiste à rallumer tous les compteurs intelligents le lendemain matin. Les utilisateurs industriels et commerciaux auront essayé de revenir en ligne, peut-être un peu plus tard que la normale en raison des coupures de courant en cours et des difficultés que tout le monde aura eues à se mettre au travail, retardez donc la reconnexion jusqu’à 11h30. Si le réseau a été rétabli, cela devrait générer un 8% supplémentaire très indésirable à la demande. Programmez quelques transitions MARCHE / ARRÊT supplémentaires au cours des prochains jours, puis déconnectez l’alimentation et corrompez le chargeur de démarrage dans le compteur intelligent. Il est donc difficile pour quiconque de mettre à jour manuellement le micrologiciel du compteur, il devra donc le remplacer. Sauf qu’il n’y a rien de tel que suffisamment de compteurs de rechange pour remplacer tous ceux en briques, de sorte que 7 millions de foyers restent sans électricité au moment où l’hiver britannique commence à mordre
C’est le hack le plus simple. Vous programmez chaque compteur pour qu’il passe par le même processus, en même temps quelques années dans le futur. Comme il n’y a que trois ou quatre fournisseurs de compteurs intelligents, il suffit d’entrer et d’en subvertir un devrait vous donner le contrôle d’un quart des maisons, ce qui est plus que suffisant. C’est un hack dormant qui attendra l’heure fixée et paralysera le pays, ou il pourrait s’agir d’un hack criminel, où le gouvernement en est alerté juste avant la date et fait chanter pour obtenir une solution.
Il devrait y avoir des tests en place pour essayer de s’assurer que rien de malveillant, ou même simplement erroné n’a été ajouté au code. Je n’ai pas encore entendu la preuve que cela est fait. Le test le plus simple pour le piratage décrit ci-dessus consiste à régler l’horloge en temps réel à une date ultérieure et à laisser les compteurs fonctionner avec cette fausse heure. Si vous avez cinquante compteurs d’essai, chacun avec la date actuelle à un mois d’intervalle et fonctionnant constamment, cela vous alerterait de ce genre de piratage. Je ne pense pas que ce genre de tests se produise. Cela suppose également que le pirate n’est pas intelligent. S’ils décident de jouer au chat et à la souris, ils penseront aux tests que vous pourriez exécuter pour découvrir du code corrompu, tenteront de détecter ces tests et désactiveront le piratage pendant que votre test est en cours d’exécution. Dans ce cas, tout ce qu’ils auraient à faire est de rechercher le RTC en cours de réinitialisation. Si vous pensez que c’est de la science–fiction, c’est exactement ce que Volkswagen a fait avec ses tests d’émissions – ils ont identifié la différence entre un essai et une conduite normale et ont modifié les paramètres du test de conformité. Dans l’industrie, ce genre de modification est loin d’être inconnu.
Les compteurs intelligents ont une connexion sans fil externe, ce qui ouvre la possibilité d’un piratage du micrologiciel qui pourrait être activé en externe, permettant au pirate d’allumer ou d’éteindre les compteurs à sa guise. C’est beaucoup plus complexe, notamment parce que l’élément de communication externe se trouve dans le centre de communication, qui utilise ensuite ZigBee pour communiquer avec le compteur. Cela nécessiterait que le micrologiciel soit piraté dans les deux appareils pour permettre le transfert d’un message de déconnexion, ainsi que pour permettre une communication externe avec le modem GPRS. Si le module du modem lui-même devait être piraté, il serait probablement indétectable, car personne ne vérifiera probablement le code du modem.
Ce que le rapport Bloomberg a souligné, c’est le fait que cela peut être fait. Ce que j’ai décrit ci-dessus n’a pas besoin de modifications matérielles complexes, mais juste un programmeur voyou. On nous dit constamment que nos compteurs intelligents sont sécurisés, mais même les déclarations du GCHQ à cet effet ne parlent que du risque de piratage externe, pas de piratage interne pendant le processus de conception et de fabrication. Nous devons maintenant envisager des modèles de sécurité qui ne limitent plus les vecteurs d’attaque aux pirates externes, mais examinent sérieusement les conséquences du piratage interne et comment s’en protéger.
À bien des égards, c’est un article que j’aurais préféré ne pas écrire, mais je ne veux pas non plus être la personne qui dit « Je vous l’ai dit » lorsque les lumières s’éteignent. Je ne doute pas que ce que j’ai décrit ci-dessus pourrait être fait. Cela a peut-être déjà été fait. C’est hautement improbable, mais il s’agit d’un risque potentiel d’infrastructure qui fait qu’un Brexit sans accord ressemble à un nouveau jardin d’Eden; détruisez le réseau et vous êtes de retour à une économie du tiers-monde qui ne peut probablement soutenir qu’une population de cinq millions d’habitants. Cela résout le problème de l’immigration – nous serons tous des réfugiés qui tenteront d’entrer en Europe.
Il existe une solution simple : supprimez l’option de déconnexion des compteurs intelligents. C’est seulement parce que les fournisseurs d’énergie veulent que leur vie soit facile. C’est le problème avec l’ensemble du programme de compteurs intelligents GB – il a été rabaissé au point qu’il ne profite qu’aux fournisseurs et a jeté les avantages plus larges, mais pas les risques et les coûts pour les consommateurs. Le rapport Bloomberg est un autre signal d’alarme qui nous dit qu’il est temps d’arrêter le déploiement actuel et de faire correctement le comptage intelligent.