Sécurisation de systèmes Linux embarqués avec Yocto
3 jours · En présentiel ou à distance · Connaissance de Yocto Linux
Une formation technique complète pour durcir un système Linux embarqué basé sur Yocto : de la cryptographie appliquée et la chaîne de confiance matérielle jusqu'au durcissement du noyau, du userspace, des services et de la sécurité réseau.

Programme
Jour 1
Menaces et cadre réglementaire
- Panorama des cybermenaces sur les produits connectés
- Principes de sécurité par conception (secure-by-design) et configuration sécurisée par défaut (secure-by-default) : défense en profondeur, moindre privilège
- Cyber Resilience Act : périmètre, objectifs, catégories de produits
- Répartition des responsabilités entre fabricant, importateur et distributeur
- Calendrier d'application et sanctions
- Modélisation des menaces, STRIDE
Exercice : amorçage d'un projet Yocto
Cryptographie appliquée
- Services cryptographiques et leurs limites
- Intégrité : hachage et codes d'authentification de message
- Confidentialité : chiffrement symétrique et asymétrique
- Authenticité : signature numérique et infrastructure à clé publique (PKI)
- Robustesse des secrets et génération d'aléa
- Gestion opérationnelle des secrets en production
Chaîne de confiance : du matériel au rootfs
- Attaques matérielles et modèle de menace physique
- Racines de confiance matérielles : OTP, TPM, secure enclaves (TEE, TrustZone)
- Démarrage sécurisé (secure boot), chaîne de confiance depuis le premier code exécuté
- Environnement d'exécution sécurisé (TEE) et module de confiance logiciel (fTPM)
- Intégrité et confidentialité du système de fichiers racine
Exercice : construction d'une séquence de démarrage vérifiée, avec intégrité et confidentialité du système de fichiers racine
Jour 2
Renforcement de la toolchain et du code
- Composants de la chaîne de compilation, retrait des symboles de debug
- Vulnérabilités mémoire classiques (buffer overflow, use-after-free)
- Options de durcissement du compilateur
- Détection dynamique par outils d'instrumentation (sanitizers)
- Analyse statique et fuzzing
- Bonnes pratiques de codage
Exercice : recherche et correction de vulnérabilités
Distribution sécurisée et exigences du CRA
- Minimisation de l'image et des fonctionnalités
- Choix d'une distribution à support étendu (LTS) et cycle de maintenance
- Génération et formats de la nomenclature logicielle (SBOM)
- Suivi et priorisation des vulnérabilités (CVE, CVSS, EPSS)
- Obligations de notification du CRA
- Sécurisation des mises à jour (firmware over-the-air, OTA)
Exercice : génération d'une SBoM et application d'un patch
Durcissement du noyau Linux et du bootloader
- Durcissement du chargeur de démarrage
- Vérification de signature du noyau et de sa ligne de commande
- Options de configuration noyau orientées sécurité
- Paramètres système à l'exécution (sysctl)
- Signature des modules noyau
- Vérification automatisée du durcissement
Exercice : configuration sécurisée du noyau (CONFIG_*, sysctl, cmdline) et tests fonctionnels
Jour 3
Durcissement du userspace
- Permissions Unix, bits setuid/setgid, capacités de fichier (capabilities)
- Partitionnement et options de montage
- Comptes, mots de passe et authentification modulaire (PAM)
- Sécurisation de l'accès distant
- Linux Security Modules
- Namespaces et groupes de contrôle (cgroups) comme isolation complémentaire
Exercice : manipulation des droits d'accès aux fichiers, contrôle de cohérence du système de fichiers obtenu
Durcissement des services, journalisation et audit
- Réduction du privilège de départ d'un service
- Directives de confinement (sandboxing) du gestionnaire de services
- Filtrage d'appels système (seccomp)
- Évaluation du niveau de durcissement
- Journalisation et intégrité des traces
- Audit noyau (auditd)
Exercice : évaluation puis réduction des droits accordés à un service, mise en place d'une règle de suivi
Sécurité réseau
- Principes et surface d'exposition réseau
- Isolation réseau et segmentation
- Pare-feu et filtrage des flux
- Protocoles de communication sécurisés (TLS, mTLS)
- Frameworks d'authentification réseau
- Tests d'intrusion réseau (pentest)
Exercice : contrôle puis renforcement de la sécurité d'un service exposé sur le réseau
