Piratage de compteurs intelligents à PHDays 8: analyse du concours MeterH3cker

image

Cette année, le programme de compétition Positive Hack Days s'est reconstitué avec la compétition pour les éléments de piratage du système de réseau intelligent - MeterH3cker . Les participants avaient à leur disposition une maquette de deux maisons, telle que conçue par les organisateurs, des panneaux solaires fournissaient de l'électricité aux maisons et le surplus d'énergie qui était généré pouvait être vendu au réseau électrique général à un prix spécial. La tâche des attaquants était de perturber le processus normal de comptage de l'électricité et d'affecter le solde de trésorerie dans le système de facturation par tous les moyens possibles.

Stand


image

Stand MeterH3cker

Les maisons modernes équipées de panneaux solaires peuvent à la fois consommer de l'électricité et restituer une production excédentaire au réseau. Ce modèle a constitué la base du stand MeterH3cker.

Le stand était un modèle de deux bâtiments résidentiels modernes avec de vrais équipements, qui ont mis en œuvre des éléments de la technologie de réseau intelligent. Dans chaque maison, des contrôleurs solaires, des compteurs électriques intelligents et des consommateurs d'énergie ont été installés. Les deux maisons étaient connectées à un modèle de poste électrique sur lequel un dispositif de collecte et de transmission de données (DTD) a été installé; il a interrogé les compteurs et le compteur de la sous-station.

De plus, chaque maison était équipée d'un système de chauffage et de climatisation, qui était sous le contrôle général d'un contrôleur disponible dans le réseau général du stand. Par ailleurs, à proximité des maisons intelligentes, une véritable borne de recharge pour véhicules électriques a été installée, qui a transmis à l'USPD des indications de sa consommation électrique pour le véhicule électrique connecté.

Nous avons défini les scénarios du jour et de la nuit. En mode "jour", les panneaux solaires des maisons généraient de l'électricité et leurs compteurs tournaient dans le sens opposé et tenaient compte de l'énergie "consommée" et "donnée". Chaque maison avait son propre compte personnel, dont le solde augmentait lors de la production d'énergie et diminuait pendant la consommation, et les tarifs configurés dans les compteurs influençaient également les valeurs.

La tâche principale des participants au concours était d'augmenter le solde du compte personnel des maisons en attaquant l'équipement du stand, et ainsi obtenir des avantages financiers directs de leurs actions de hackers.

Pour visualiser les résultats, nous avons écrit notre propre serveur de facturation, qui collectait les données de l'USPD. À son tour, l'USPD a interrogé les compteurs de plusieurs manières:

  1. compteur dans la maison n ° 1 - selon le protocole ouvert de type Modbus du fournisseur;
  2. le compteur de la maison n ° 2 a été interrogé par le dispositif VR-007.3 à l'aide du protocole de type Modbus du fournisseur ouvert, puis l'USPD a reçu des données du serveur Web VR-007.3 via HTTP;
  3. compteur de poste - selon le protocole Modbus TCP.

Pour obtenir des valeurs réelles de consommation d'énergie, les compteurs de référence qui n'étaient pas disponibles pour les attaquants ont été connectés aux mêmes circuits de courant et de tension que les compteurs attaqués. Le serveur de facturation les a interrogés directement via l'interface RS-485.

Afin de permettre aux visiteurs du forum d'observer ce qui se passait, un grand écran a été installé près du stand, sur lequel des graphiques de consommation d'électricité étaient affichés en temps réel. Le graphique bleu a marqué les lectures de l'USPD. Ils ont changé en fonction des actions des attaquants. Le graphique vert montrait des relevés réels de la production et de la consommation d'électricité collectés à partir des compteurs de référence.

image

Affichage des valeurs actuelles pour chaque maison: solde du compte personnel, énergie consommée et livrée au réseau, tarif

Un portail interne pour les participants au concours était également disponible sur le réseau du stand. Là, les valeurs actuelles des graphiques ont été affichées, une section avec une description de chaque élément du stand; les règles du concours y étaient publiées et de temps en temps des astuces apparaissaient.

image

Portail interne

Conditions de participation


Le concours s'est déroulé sur deux jours. Le premier jour, il y avait des compétitions de qualification. Lors de la connexion au réseau de stands, chaque participant a eu accès à tous les équipements de deux maisons, une sous-station et une borne de recharge. Les participants ont eu l'occasion d'étudier l'équipement, de trouver des vulnérabilités et des vecteurs d'attaque potentiels. Au cours de la journée, de nouveaux conseils ont été périodiquement ajoutés au portail interne du concours, permettant aux participants de détecter les faiblesses de l'équipement du stand. Les participants qui ont réussi sur le stand le premier jour ont été invités à participer au tournoi final le deuxième jour.

La finale était une sorte de duel. Deux participants ont été invités au stand, chacun ayant sa propre maison. Leur tâche est de tromper les pions par tous les moyens pendant un round de dix minutes et de générer plus d'énergie que l'ennemi - un voisin conditionnel. Le gagnant était celui qui avait un solde de compte personnel plus élevé à la fin de la compétition. Dans le même temps, la tâche était compliquée par le fait que les participants avaient accès à l'équipement de l'autre, ce qui signifie qu'ils pouvaient nuire à leur voisin et sous-estimer leurs résultats.

Jour 1: Phase de qualification


Il y avait beaucoup de gens qui voulaient essayer le piratage de l'équipement. Notez que certains d'entre eux étaient sérieusement préparés pour le concours et avaient le logiciel nécessaire avec eux. Parmi eux se trouvaient des participants du Japon qui, dès les premières heures de la compétition, ont soigneusement étudié le stand, ce qui leur a permis d'obtenir des résultats significatifs le deuxième jour.

Une grosse surprise pour nous a été la participation d'un passionné de hacking de 12 ans: malgré son âge, il a su naviguer dans le matériel présenté et a montré plusieurs attaques.

image

Concurrents

Nous avons obtenu les premiers résultats au milieu de la journée: des chercheurs japonais ont uni leurs forces pour prendre le contrôle de la station de charge des voitures électriques et ont arrêté de charger la voiture électrique en envoyant des commandes de contrôle via une interface Web. Un peu plus tard, ils ont pu récupérer le mot de passe de l'administrateur du contrôleur solaire et couper la production d'électricité.

Le jeune hacker n'a pas non plus pris de retard sur les adultes: il a appris à provoquer un redémarrage continu de l'USPD, mettant ainsi en œuvre une attaque par déni de service et perturbé l'enquête des compteurs.

Vers le soir, l'un des membres du groupe japonais a réalisé de graves écarts entre les valeurs d'énergie sur les compteurs de référence et attaqués, augmentant considérablement la valeur de comptage. Et son collègue a découvert une vulnérabilité dans l'interface Web du compteur de la sous-station, qui permettait de lire le contenu des fichiers de la carte flash de l'appareil, dont l'un contenait un hachage de mot de passe administrateur. Ainsi, après avoir sélectionné avec succès un mot de passe, il a eu accès aux paramètres du compteur.

Une heure avant la fin du tour de qualification, un participant nommé Oleg a rejoint le stand. Malgré le fait qu'il lui restait peu de temps, il a réussi à mener une attaque réussie et à participer au tournoi, qui a eu lieu le lendemain.

En conséquence, à la fin de la journée, tous les participants pouvaient modifier les relevés d'énergie sur tous les compteurs électriques disponibles et contrôler divers éléments des stands - contrôleurs, une station de charge.

image

Résultats des attaques des participants sur les comptoirs. Le graphique inférieur droit montre que le coefficient de transformation du compteur a été modifié, et le graphique inférieur gauche montre qu'une attaque par déni de service a été menée avec succès sur le compteur -4

Jour deux: tournoi et finale


Sur la base des résultats des rapports envoyés par les participants à la fin de la première journée, nous avons sélectionné sept participants qui ont pu détecter et exploiter les vulnérabilités de l'équipement du stand.

Étant donné que le deuxième jour, les participants aux rondes pouvaient influencer non seulement les relevés de leurs compteurs, mais également ceux du voisin rival, toute négligence pourrait entraîner de graves conséquences. Ainsi, le participant Oleg, menant une attaque sur l'équipement d'un voisin, a augmenté par erreur le score de son voisin, car il a mené l'attaque au moment de la génération, puis n'a pas réussi à la "tordre" dans l'autre sens pour le reste du cycle. Dans les combats ultérieurs, les participants ont pris en compte cette triste expérience et ont agi avec compétence, par exemple en fixant les valeurs maximales des coefficients de leur compteur pendant la période de génération (mode "jour") et les minimum pendant la période de consommation (mode "nuit").

image

Classement

Une bataille sérieuse s'est déroulée en finale de la compétition. Au début de la manche, l'avantage était pour Satoru Takeksoshi, qui dans les premières minutes a pu mener à bien l'attaque et augmenter considérablement le solde de son compte. Le deuxième participant - Alexey Kuznetsov - a également été en mesure de mener une attaque au début du tour et d'augmenter le solde de son compte, mais dans une bien moindre mesure. L'écart dans les relevés d'énergie générée était de 25 GW · h contre 5 GW · h. Pour la majeure partie du tour, le score n'a pas changé. Probablement, afin de ne pas répéter la triste expérience des premiers participants qui ont attaqué au mauvais moment, Alex s'est comporté avec prudence et a surveillé le changement de régime. Dans la seconde moitié de la manche, il a réussi à mener une attaque réussie sur le compteur de la sous-station électrique et à minimiser la séparation d'avec le voisin, mais le score total ne lui permettait toujours pas de gagner. Dans les dernières secondes, Alex a de nouveau attaqué son compteur et réussi à augmenter son témoignage, ce qui lui a permis d'arracher la victoire au leader. Ainsi, Alexey a gagné, portant son solde à 92 milliards. e., et compte tenu de son attaque réussie sur le compteur de la sous-station électrique, son score total lui a permis de gagner sans condition.

image

L'état des comptes personnels dans les dernières secondes après l'attaque finale

Résumé


Ainsi, les gagnants: la 1ère place a été prise par Alexei Kuznetsov, la 2ème place est revenue à Satoru Takekoshi, Nikita Stupin a clôturé le top 3. Le prix spécial, pour la 4e place, a été reçu par le jeune cracker Yuri Grishin.

Pendant la compétition (en particulier dans le tournoi final), des attaques complètement différentes ont été démontrées. La plupart des participants ont tenté de mener des attaques sur les relevés d'énergie relevés sur les compteurs, d'augmenter la production d'énergie au moment de la génération et de réduire au moment de la consommation. De plus, lors de certains rounds, les concurrents ont attaqué avec succès la station de charge pour la voiture électrique et le contrôleur solaire.

Cependant, aucun des participants n'a été en mesure de mener à bien des attaques contre l'USPD et de remplacer les données collectées directement dessus. Potentiellement, ces attaques pourraient conduire à un contrôle complet des données transmises au centre de facturation et augmenter votre compte d'une valeur arbitraire. Pendant les deux jours, nous n'avons enregistré qu'une seule tentative d'attaque de ce type, qui, apparemment, s'est soldée par un échec.

De plus, personne n'a attaqué le contrôleur qui contrôle le système de chauffage et de climatisation. Il a été supposé que l'attaquant se connecterait à l'appareil et serait en mesure de contrôler l'équipement en utilisant les signaux de contrôle existants. La principale difficulté pour les attaquants était de comparer les ports ouverts et le nom de l'équipement, par exemple, pour demander des informations en utilisant le protocole FOX. Il n'était pas nécessaire d'utiliser un logiciel spécialisé pour attaquer cet équipement. L'astuce n'a pas aidé non plus, car les attaquants ne l'ont pas utilisé, et tout ce qui était nécessaire était de remplacer l'en-tête User-Agent dans leur navigateur pour une connexion réussie.

D'après d'autres observations. Pendant le concours, les candidats ont posé de nombreuses questions de clarification sur la structure et le fonctionnement du stand, ainsi que sur les appareils disponibles. Cela peut s'expliquer par le fait qu'en plus de la tâche de «casser» les appareils, il était nécessaire de comprendre ce que chacun d'eux fait et comment exploiter ses vulnérabilités à des fins lucratives.

image

La hauteur du premier jour

Nous étions ravis que bien que notre compétition soit une nouvelle venue sur le forum, de nombreux spectateurs sont venus qui n'allaient pas participer, mais étaient intéressés par le travail du stand, les succès des candidats. Les poufs gratuits devant le stand ont rapidement pris fin!

Un autre fait intéressant est associé aux participants du Japon. Le portail interne de la compétition et la documentation des appareils des fabricants nationaux étaient en russe, cependant, cela n'a pas été un obstacle pour l'équipe japonaise - il y avait suffisamment de compétences pratiques pour démontrer une série d'attaques réussies. Cependant, après le concours, ils ont admis que cela leur causait néanmoins de légers désagréments.

En général, la compétition a montré qu'en moins de deux jours, il est tout à fait possible de comprendre les systèmes de comptage d'électricité modernes et de mener avec succès des attaques contre eux.

Analyse des autres concours Positive Hack Days 8:


Source: https://habr.com/ru/post/fr414557/


All Articles