Formations

Objectifs

  • Comprendre et effectuer plusieurs attaques classiques sur bus CAN
  • Apprendre à reconnaître les données qui transitent sur un bus CAN
  • Acquérir les bases pour effectuer le reverse engineering d’un firmware d’ECU

Synopsis

Au cours des dernières années, plusieurs nouvelles attaques visant les voitures ont vu le jour, mais cet environnement reste difficile à appréhender principalement à cause de l’environnement automobile et des outils spécifiques qui diffèrent de ceux que l’on retrouve habituellement en reverse engineering ou en hacking.

Ce training fournit les bases de la théorie sur les bus CAN pour que les participants puissent devenir rapidement autonomes. Nous fournissons les outils nécessaires pour communiquer sur ces bus, et nous effectuerons ensemble plusieurs attaques sur des microcontrôleurs d’apprentissage ainsi que sur une vraie voiture. Les participants au training pourront reproduire ces attaques afin de hacker des sessions de sécurité, fuzzer des ECUs, spoofer des messages, etc. Nous aborderons également les spécificités du reverse engineering d’un firmware d’ECU : nous présenterons une méthodologie générale, expliquerons comment comprendre un firmware Autosar, par où commencer, les éléments à identifier, etc. Ces techniques seront ensuite appliquées à un exemple de firmware d’une vraie voiture, basé sur une architecture Tricore. Les exercices de reverse engineering seront d’abord appliqués à un petit firmware d’exemple sur architecture ARM pour aider tout le monde à acquérir les bases du reverse engineering.

Dans ce training les outils de hacking spécifiques au monde de l’automobile seront présentés au cours des nombreux travaux pratiques appelés Labs, afin de permettre aux participants d’acquérir de l’autonomie sur ces sujets.

Public concerné

  • Les chercheurs en sécurité
  • Les industriels travaillant dans le domaine de l’automobile (constructeurs et fournisseurs)
  • Les hackers qui s’intéressent aux voitures

Durée

  • 2 jours

Pré-requis

  • Connaissances:

    • Aucune connaissance des systèmes automobiles n’est requise. Toutes les bases seront présentées pendant le training.
    • Connaissances de base de Python
    • Connaissances de base de Linux
    • Quelques connaissances en reverse engineering sont un plus, mais non nécessaires
  • Hardware / software:

    • Un PC portable avec WiFi
    • Un client SSH
    • Un logiciel de reverse engineering est un plus

Modules

Jour 1

  • Les bases de l’Automotive et des bus CAN

    • Qu’est-ce qu’un bus CAN ?
    • Les communications sur bus CAN
    • Lab: Envoyer et recevoir des messages sur un bus CAN
    • Lab: Écrire un ECU minimaliste pour communiquer sur un bus CAN
    • Lab: Sniffer et analyser les messages qui transitent sur un bus CAN
  • Diagnostic

    • Qu’est-ce qu’un port OBD-2 ?
    • Comment utiliser un port OBD-2 ?
    • Démo: trouver les bus CAN dans une vraie voiture
    • Démo: utiliser un appareil de diagnostic (valise)
    • Lab: sniffer, analyser et rejouer des messages de diagnostic
  • Sécurité des bus CAN

    • Point de vue pratique
    • Lab: spoofer et fuzzer des messages CAN
    • Scanner les différents ECUs d’une voiture
    • Lab: rejouer les messages découverts par fuzzing sur une vraie voiture

Jour 2

  • Sessions de sécurité sur bus CAN

    • Protocoles et algorithmes
    • Lab: brute forcer une session de sécurité
    • Lab: réutiliser les messages sniffés pour des sessions de sécurité
  • Architecture d’un ECU

    • Description des différentes architectures
    • Lab: dump de firmware via le bus CAN
    • Lab: idem en attaquant d’abord une session de sécurité
  • Reverse engineering d’un ECU

    • Méthodologie de reverse engineering pour un firmware d’ECU
    • Les bases du reverse engineering
    • Lab: les bases du reverse engineering sur ARM
    • Lab: reverse engineering d’un petit firmware sur ARM (Teensy)
    • Lab/démo: reverse engineering d’un algorithme de session de sécurité sur un ECU provenant d’une voiture
  • Autosar: une nouvelle manière de développer des firmwares. Comment les analyser ?

    • Méthodologie de reverse engineering pour un firmware Autosar
    • Lab/démo: reverse engineering d’un firmware Autosar

Modules optionnels

    • Développez votre propre équipement CAN à partir d’un microcontrôleur et d’un contrôleur/transceiver CAN
    • Implant Bluetooth: ajoutez un module Bluetooth pour rendre votre équipement plus autonome et le cacher dans le compartiment moteur d’une vraie voiture
    • Reverse engineering poussé sur architecture Tricore: analyse d’un firmware issu de l’industrie automobile, en particulier ses fonctions UDS et son algorithme de sécurité