Cet article repose sur une publication en anglais disponible sur le site can-newsletter.
Trouver des failles de sécurité sur des dispositifs CAN avec beSTORM
Beyond Security a développé un outil de test de sécurité et propose à la vente un kit de test pour bus CAN.
Présentation de la solution de test : beSTORM + CANbuster
Ce kit est composé de : - La solution beSTORM (solution de fuzzing); qui permet la recherche de vulnérabilités dans tout type de dispositif, - Un kit "CANbuster ECU simulator".
beSTORM est un logiciel du commerce pour le test dynamique de la sécurité des systèmes.
beSTORM est utilisé en laboratoire pour tester la sécurité des systèmes, certifier des logiciels et des équipements réseau avant leur déploiement.
beSTORM est utilisé dans l'industrie aéronautique, les télécom, l'automobile, la finance, la production (manufacturing), ... pour valider les applications, les systèmes et les composants des infrastructures. Il est également utilisé sur ces même systèmes par des gouvernements qui valident ainsi la soliditié de la sécurité.
Dans le cas de tests sur bus CAN, beSTORM est couplé avec la solution CANbuster, un dispositif qui simule le comportement d'une électronique de véhicule (ECU) et qui permet le test de sécurité par fuzzing des composants unitaires du système dans des conditions de laboratoire.
Afin de démontrer le test dynamique de sécurité par "fuzzing", Beyond Security a choisi 2 HUD disponibles sur le marché et les a mis sous test. Le fonctionnement interne des deux dispositifs est sensiblement identique, leur architecture étant basée sur un processeur STM32F103, quelques régulateurs d'intensité et de tension (type MC1413BDG), et un bus CAN (TJA1050).
On connecte ensemble pour les besoins du test :
- Un PC sous Windows sur lequel tourne la solution beSTORM,
- Le dispositif CANbuster qui va être piloté par beSTORM,
- Le système HUD qui est connecté au CANbuster.
Test dynamique de sécurité du réseau CAN
A ce moment du test, on peut allumer le système sous test et vérifier son bon fonctionnement (démarrage, fonctions opérationnelles). Le CANbuster va simuler la présence de véritables calculateurs ECU en capturant les requêtes du HUD pour certains paramètres (typiquement la vitesse du véhicule) et va répondre avec des valeurs réelles - comme le ferait le calculateur ECU d'un véhicule.
Le fonctionnement des tests avec beSTORM ne va pas être influencé par la présence du CANbuster qui est là pour faire en sorte que le HUD soit en position de recevoir des données (ce qui ne serait pas le cas sans la connection simulée à un ECU). Arrêter le CANbuster avec son environnement simulé qui reproduit celui d'un véhicule ferait stopper le fonctionnement du HUD qui comprendrait que l'environnement du véhicue a été électriquement stoppé/arrêté et donc s'arrêterait lui-même.
Les tests de sécurité de beSTORM par fuzzing consistent à renvoyer au HUD des messages invalides (hors des spécifications valides), non attendus (réponses incorrectes), et/ou mal-formées (champs non attendus par exemple).
Le protocole testé dans notre exemple est OBDII (on-board diagnostic 2) au-dessus d'une liaison CAN.
Selon le système HUD sous test, l'identifiant CAN peut aller de 11 à 29 bits.
Résultats du test dynamique de sécurité CAN (fuzz testing)
Les systèmes HUD testés ont présenté de nombreuses failles de fonctionnement qui les ont fait cesser de fonctionner quelques minutes après le début des tests. Les tests réalisés automatiquement par beSTORM ont montré que ces systèmes permettent des valeurs d'entrée qui produisent des résultats inattendus à l'écran et sur les haut-parleurs.
Ces comportements sont des indicateurs préliminaires de problèmnes de sécurité qui, avec des investigations complémentaires, pourraient fournir à des attaquants des moyens de prendre un certain degré de contrôle sur le dispositif.
En utilisant beSTORM et le CANbuster comme dans cet exempl, n'importe quel système ou dispositif pour automobile peut être testé.
L'outil de test de sécurité beSTORM et le simulateur ECU sont vendus seulement aux fabricants et aux gouvernements pour sécurité les applications et les systèmes.
Cependant, le niveau actuel de sécurité dans l'automobile, quant à la mise en oeuvre des protocoles CAN, ouvre déja la voie à de nombreuses exploitations de failles qu'on peut trouver avec des fuzzer disponibles librement.