Sécuriser la mise à jour des logiciels embarqués

Par une approche pratique et pragmatique, apprendre à sécuriser l’execution du code, protéger la propriété intellectuelle et être capable de mettre à jour son système embarqué de manière sûre par la mise en place entre autre d’une chaîne de démarrage sécurisée par l’usage de la cryptographie.

Formation de 3 jours

  • Comprendre les vecteurs d’intrusion des mécanismes de communication et de mise à jour
  • Concevoir la sécurité de bout en bout de la mise à jour de ses logiciels
  • Appréhender par la manipulation la cryptrographie
  • Concevoir un bootloader avec sa chaine de confiance
  • Apprendre à déployer et mettre à disposition ses firmwares

Développeur embarqué (microcontrôleur)

Il est fortement recommandé d’avoir une base de connaissance d’un langage interprété tel que Python afin de tirer un enseignement maximum de cette formation. Les stagiaires devront idéalement disposer d’une expérience minimum en développement de logiciel embarqué. Une machine virtuelle sera fournie avec l’ensemble des outils déjà installés.

Avoir un PC/Mac portable avec :

  • VMware Player, VMware Workstation, VMware Fusion (ou Virtual Box le cas échéant)
  • Instructions de virtualisation activés (pour virtualiser une VM x64)
  • Minimum 20GB d’espace libre sur le disque dur
  • 4Go de RAM minimum, 6Go de RAM recommandés
  • 2 cœurs de CPU minimum (Intel, I3, I5, I7 ou AMD équivalent)
  • 2 ports USB libres
  • Système 64 bits avec les droits d’administrations (Windows, Linux ou Mac OS)
  • Webcam, haut-parleurs, micro et liaison Internet stable

Il sera remis à chaque participant un kit d’entraînement I²Cx Cyber Range comprenant une plateforme d’entraînement (I²Cx Platform) ainsi qu’une carte permettant de s’interfacer avec la plateforme (I²Cx Scanner Lite).

  • QCM (en début et fin de session)
  • Support de cours PowerPoint (en français)
  • Travaux pratiques (plateforme d’entraînement I²Cx Cyber Range)

Programme

JOUR 1

Introduction à la cybersécurité des objets connectés

  • État de l’art, vocabulaire, exemples concrets, références
  • Présentation générale et prise de contexte
  • Comprendre les menaces par le rappel des méthodes offensives employés en IoT et en IT
  • Comprendre la chaîne complète

Les fondements d’une mise à jour à distance sécurisée

  • Les enjeux de la mise à jour à distance
  • Comment gérer le processus de mise à jour en production
  • Le rôle du Bootloader
  • Les biens à protéger ?
  • Niveau de protection de la FLASH / RAM, RDP / CRP (niveau 0,1,2…)
  • Comment mettre en place un système de mise à jour sécurisé ?
  • Chiffrement / signature d’un Firmware, est-ce toujours nécessaire ?
  • Mise à disposition du Firmware depuis le cloud
  • Les risques de cybersécurité liés à l’utilisation de circuits externes gérant les communications telles qu’un module Bluetooth, Wifi (clé Wifi, clé d’appairage Bluetooth, comment les protéger ?)
  • L’intérêt du chiffrement de bout en bout
  • Gestion de projet et gestion du risque cyber dans l’ensemble du processus (Secure by design et SDLC)

JOUR 2

Cryptographie

  • Introduction à la cryptographie
  • Présentation des algorithmes (asymétrique, symétrique et Hash)
  • Comment choisir un algorithme de chiffrement et s’assurer de son implémentation
  • Introduction au démarrage sécurisé (Secure Boot)
  • Comment stocker ses secrets ?
  • L’entropie le secret de la cryptographie ?
  • Système anti brute force
  • Déni de service
  • Espace de clés
  • Algorithme de dérivation de clé
  • Choix d’un mot de passe
  • Attaque par dictionnaire (sel, poivre)
  • Génération de nombres aléatoires (PRGN, TRGN…)
  • Choix des clés / IV
  • Génération de clés

TP : Manipuler la cryptographie

  • Manipulation dans l’embarqué (C et C++) sur plateforme STM32
  • Manipulation dans le mobile (Android)
  • Manipulation dans le Web

TP : Déployer et mettre à disposition ses Firmwares

  • Comprendre le monde du Web et du mobile, savoir identifier les principales menaces et être capable de distribuer ses Firmwares de manière sûr
  • Introduction aux vulnérabilités Web et mobile
  • Mettre en place un échange TLS digne de confiance HTTPS (gestion et déploiement de certificats)
  • Comprendre et implémenter de la sécurité de bout en bout

JOUR 3

TP : Concevoir un Bootloader avec sa chaîne de confiance

  • Développer son propre Bootloader sécurisé qui communique avec son cloud sécurisé
  • Chiffrer, signer et mettre à disposition son propre Firmware
  • Prendre en compte et implémenter les contrôles nécessaires dans l’objet connecté

Vous avez un besoin en cybersécurité ?

Retour en haut