Lors de ses projets de création de l'application (applications web ou applications mobile smartphones Android iphone IOS) Consultingit intègre maintenant une phase de pentesting (bug bounty comme certains l'appellent). Consultingit fait appel à la célèbre équipe CTF Red Team LGHM, (aussi connue sous le nom de l'association loi 1901 à but non lucratif Le Gang des Hackers de Montreuil), cette "RED TEAM" de hackers éthiques (chapeaux blancs) consultants en cybersécurité: pour sécuriser les applications, trouver les failles et les vulnérabilités du programme, avant que le programme passe en production. Cela évite qu'ensuite des hackers mal intentionnés (les black hats, ou chapeaux noirs) trouvent des failles et les exploitent. Il y a uassi du code dans les compteurs connectés...
Comment fonctionne une architecture de compteurs? Un compteur est chez nous dans l’immeuble, on a un relai (gateway) chargée de récupérée de l’information et la transférer au backend.
On a des techniciens qui interviennent. Il peuvent passer avec des antennes et vont récupérer sans fils les informations propagées par les compteurs.
Comment ça fonctionne?
On a un capteur qui va faire un mesure physique de ce qui est mesuré, un compteur de volume, mesure du gaz qui passe, ou thermomètre qui mesure la température.
Ca c’est connecté au composant analogique qui les transfère numériquement au processeur applicatif.
On a une mémoire flash pour stocker les mises à jour, et ensuite un écran qui permet de visualiser la mesure faite par le compteur physiquement sur l’objet.
Les technologies changent en fonction du type de compteur. Pas mal de compteurs sur batterie: economie d’energie. Esperance de vie de 10 ans: le compteur ne doit pas trop dépenser d’energie, on limite toutes les fonctionnalités pour éviter de consommer la pile. C’est rare que ça soit du ARM, c’est souvent du Texas instrument, MSP 430 ou successeurs…
Sur la partie communication, ca depent du choix qui a été fait sur l’architecture. BLE, bluetooth low energie, Modbus, plutot orienté metrologie ou des protocoles propriétaies. Ca va porter à des centaines de mètres, ou à des mètres. On aura un relevé à proximité du batiment, à l’exteirue, sur le pallier de la porte. Ca permet de gagner de l’argent sur les opérations de relevés et en évitant les erreurs de saisies.
Plusieurs types d’attaques
Une question? Posez-la ici
Aide au développement d'applications
Pentest de compteurs connectés : attaques hardwares
On peut ouvrir physiquement le compteur et on peut lire les lignes sur le PCB, les composants pour voir les numéros de série et les identifier
On peut écouter les bus de communication, voir la mémoire, injecter du code.
Un composant qui nous interesse c’est la partie mémoire : on repere le composant sur le PCB et on lit les informations à l’interieur, en se connectant sur les pattes de la mémoire flash. On va récupérer des informations, voir si elles sont exploitables. Interet pour frauder pour ajouter des accès…
Si on change les indices de consommation, ca risque de se voir.
Une question? Posez-la ici
Besoin d'un tests d'intrusion, contactez la Red Team LGHM
Pentest de compteurs connectés : attaques des bus de communication
Entre le processeur applicatif, la mémoire flash, le processeur applicatif. Entre le capteur et le processeur analogique on peut avoir des choses intéréssantes.
Etude des protocoles SPI et UART, on voit des choses passer et en déduire un certain nombre de vulnérabilités.
Pentest de compteurs connectés : attaques sur les calculateurs
On a au moins 1 ou 2 processeurs sur un compteur. On cherche le port d’administration, JTAGUlator, Jtag ou Jtag probe: ca permet de flasher le code du processeur. Le pin dépend du constructeur. Quel pin? Quel protocole?
JTAGulator permet de faire de la détection de protocoles en effectuant des tests spécifiques entre les pattes. On va pouvoir avoir un debuggueur sur le composant, on va pouvoir inspecter le contenu de la ram etc. Une grosse faille de sécurité impactera de manière force le composant.
Pentest de compteurs connectés : attaques sur le hardware
On peut générer des impulsions electro magnétiques: on fait sauter des instructions du processeur. C’est documenté sur la partie carte à puce, on peut le translater au compteur.
Pentest de compteurs connectés : attaques softwares logicielles
Reverse engineering pour reverser le composant.
Attaques réseau, si c’est du sans fil on va pouvoir intercepter les trames qui passent. Deni de service. On peut faire du fuzzing sur toutes les surfaces pour trouver des vunlérabilités
Une question? Posez-la ici
Besoin d'un tests d'intrusion, contactez la Red Team LGHM
Pentest de compteurs connectés : interceptions réseau
Modbus et wireless
On a des paquets simples: on adresse un composant avec son numéro, adresse source, adresse destination. En général c’est pas chiffré car prévu pour des composants low energy. Ca coute en energie de chiffrer. Bonne fréquence, bon décodeur et on récupère les infos.
2 modes de communication:
Master → Slave
Les autres protocoles:
Bluetooth/BLE
Ca porte à quelques mètres
Wifi
GPRS
Propriétaire
Modbus n’est pas chiffré par defaut; Il a été fait pour que tous les compteurs soient connectés entre eux.
Pentest de compteurs connectés : timing attack
Mesure de la différence de voltage entre les composants. On peut mesurer les ecarts de temps et on peut verifier si le composant possède une mauvaise implementation.
Pentest de compteurs connectés : outillage
Fuzzing
Defensics (implemente beaucoup de protocoles standard du marché DNS, SSL, DHCP...)
Custom fuzzer, fuzzers maisons.
Reverse engieering: IDA Pro ou Radare2
Pentest de compteurs connectés : la gateway
Toujours connectée à l’electricité: elle collecte l’info et la transmets au backend
Ca va etre souvent de l’Android, Linux, Windows embarqué
Pentest de compteurs connectés :le back end
Voir sécurité IT
A quoi ressemble un backend? Exemple Azure IOT Hub. Un hub reçoit des informations remontées par les compteurs sur le terrain ou par des gateways. Protocoles HTTP, REST, SOAP, MQTT et couches de chiffrement, TLS… Authentification, certificats ou login/PWD
MQTT est très utilisé dans l’IOT. Mécanisme de publishers et de suscribers, un peu comme quand on s’insrcrit à une newsletter: on envoie des mails et ceux qui sont dans la mailing list recoivent les emails. Attention, le chiffrement n’est pas de base en MQTT, penser à chiffrer au dessus par TLS.
Les attaques hardwares ont beaucoup de chances de réussir. Logiciel c’est plus dur.
Ce transcript reflète exclusivement l'opinion de ses auteurs et n’engage en aucune façon Consultingit
Voilà, j'espère que ça vous a plu.
ou contactez-nous