SE3Groupe2025-14

De projets-se.plil.fr
Aller à la navigation Aller à la recherche

Programmation des systèmes embarqués

Carte électronique

Carte réalisée en utilisant le logiciel KiCAD : Fichier:2025-pse-b14-prog.zip.

Schéma électronique de la carte :

Fichier:2025 PSE-14-PROG-schema.pdf
Mon schéma électronique

Résultat du routage :

Mon routage

Photo de la carte soudée :

Vidéo très courte et en basse résolution de la carte en fonctionnement :

Média:2025-PSE-14-PROG-video.mp4

Programmation

Bilan

J'indique où j'en suis arrivé à la fin des séances.

Eventuellement la vidéo brève du fonctionnement complet du programmateur : Média:2025-PSE-14-PROG-final.mp4.

Premier système embarqué

Titre du Projet: "GhostDrive" - Plateforme d'Audit de Sécurité Furtive & Autonome

1) Description Générale:

Ce projet consiste en la conception complète (Hardware & Software) d'un outil d'audit de sécurité matériel de type BadUSB. L'objectif est de créer un dispositif capable d'exécuter des injections de commandes automatisées tout en se camouflant derrière l'apparence d'un périphérique USB de stockage standard. L'architecture matérielle est minimaliste et robuste : elle repose sur un microcontrôleur ATmega32U4 couplé à une mémoire flash SPI externe (AT45DB161E de 2 Mo) pour le stockage. La sélection du vecteur d'attaque en mode "Hors-Ligne" est ingénieusement gérée par un DIP Switch mécanique, permettant à l'auditeur de calibrer son dispositif sans nécessiter de batterie embarquée ou d'écran.

2) Scénario d'Utilisation:

  1. Configuration (Offline) : Avant l'intervention, l'auditeur sélectionne le script d'attaque (payload) à exécuter à l'aide d'un DIP Switch physique à 2 positions intégré au PCB. L'état mécanique des interrupteurs permet de mémoriser physiquement jusqu'à 4 configurations différentes avant même que le dispositif ne soit alimenté.
  2. Infiltration (Mode Leurre) : Une fois branché, le dispositif est reconnu par l'OS cible comme un périphérique USB Composite. Aux yeux de la victime, il monte instantanément comme une simple clé USB de 2 Mo (Mass Storage) contenant des fichiers inoffensifs, ce qui lève immédiatement les soupçons.
  3. Exécution (Injection): En arrière-plan, la seconde interface (Clavier HID) lit l'état des DIP Switchs et s'active discrètement pour taper la séquence de touches préprogrammée correspondant au payload sélectionné (ex : exfiltration de données, ouverture d'un terminal, installation de backdoor), pendant que la victime consulte le faux espace de stockage.


Objectif Final :

Obtenir un PCB fonctionnel, soudé et routé, intégrant la logique de l'ATmega32U4, la mémoire externe SPI et la sélection matérielle par switch. Le dispositif doit être capable de monter un volume de stockage FAT fonctionnel tout en injectant avec succès et de manière autonome une séquence de texte (allant d'un simple "Hello World" à un script d'audit complexe) sur n'importe quel système d'exploitation (Windows/Linux) dès son insertion.

Archive GIT

Mon archive GIT pour le projet KiCAD et pour les programmes : imassial/2025_PSE_14_imassial_dgrari.

Archive privée. Binôme comme administrateur. Boé et Redon comme administrateur.

Ajouter un .gitignore pour KiCAD et langage C.

Structure avec matériel (y compris production - gerber, bill of materials) / logiciel / documentation (e.g. documentation technique).

Description du système embarqué

Carte électronique

Carte réalisée en utilisant le logiciel KiCAD : Fichier:2025-PSE-14-systeme.zip.

Schéma électronique de la carte :

Mon schéma électronique

Résultat du routage :

Mon routage

Photo de la carte soudée :

Ma carte

Vidéo très courte et en basse résolution de la carte en fonctionnement :

Média:2025-PSE-14-systeme-video.mp4

Travail effectué

Chronologie et Déroulement du Projet "GhostDrive"

Le développement du projet "GhostDrive" a débuté par la conception matérielle (Hardware) pour s'achever par l'implémentation et le débogage logiciel (Firmware/Software). Voici les grandes phases de sa réalisation :

1. Conception Matérielle : Schématique et Routage (CAO) La première étape a consisté à concevoir l'architecture électronique complète du dispositif. Le schéma théorique a été développé pour intégrer le microcontrôleur ATmega32U4, la mémoire flash SPI externe (AT45DB161E de 2 Mo), ainsi qu'un étage complet de gestion d'énergie autonome. Cet étage comprenait un connecteur pour batterie LiPo couplé à un contrôleur de charge intégré (MAX1811) et ses composants passifs associés. Une fois le schéma validé, le routage sur circuit imprimé (PCB) a été réalisé en intégrant l'ensemble de ces blocs matériels, tout en respectant le facteur de forme compact d'une clé USB standard.

2. Fabrication et Assemblage : À la réception des circuits imprimés nus, l'étape d'assemblage des composants a débuté. C'est lors de cette phase de prototypage qu'un choix d'optimisation matérielle a été validé : l'étage de charge (MAX1811 et batterie) a été volontairement omis (non soudé). En effet, l'implémentation d'un DIP Switch mécanique à 2 positions s'est avérée amplement suffisante pour conserver la sélection du vecteur d'attaque de manière physique et "Hors-Ligne". La mémoire d'état étant assurée par la mécanique du switch, la batterie devenait superflue pour le scénario final, permettant ainsi de réduire les coûts, l'encombrement et la complexité d'alimentation, tout en remplissant parfaitement le cahier des charges.

3. Implémentation Logicielle Phase 1 : Interface HID et Payloads La partie logicielle a débuté par l'exploitation de la bibliothèque LUFA pour configurer l'ATmega32U4 en tant que périphérique d'entrée (Clavier HID). Une fois la communication USB établie, la logique de lecture des DIP Switchs a été programmée pour permettre au microcontrôleur de déterminer son état matériel de manière autonome dès la mise sous tension par le port USB cible. Les différents payloads (séquences d'attaques automatisées) ont ensuite été rédigés, traduits en codes de touches, et intégrés au firmware pour être exécutés dynamiquement en fonction de la configuration choisie hors-ligne.

4. Implémentation Logicielle Phase 2 : Mass Storage et Leurre (Stockage) La dernière étape, et la plus complexe, a été de transformer le dispositif en périphérique USB Composite en y ajoutant la classe "Mass Storage". L'objectif était de rendre le GhostDrive détectable comme une clé de stockage classique pour parfaire son camouflage. Il a fallu implémenter la communication SPI à bas niveau pour que l'ATmega puisse lire et écrire sur la mémoire flash externe. Un travail rigoureux d'ajustement de la géométrie SCSI (déclaration des blocs de 512 octets et de la capacité exacte de 2 Mo) a été réalisé pour que le système d'exploitation cible puisse formater et monter un système de fichiers FAT sain et fonctionnel, finalisant ainsi le mode "leurre" du projet.

Bilan

Le cahier des charges est intégralement validé. Le PCB est assemblé et optimisé (fonctionnement autonome sans circuit de charge complexe grâce au DIP Switch), le code est robuste, et l'illusion est parfaite. Le GhostDrive est prêt à être utilisé comme plateforme d'audit de sécurité furtive.

Eventuellement la vidéo brève du fonctionnement complet du programmateur : Média:2025-PSE-14-systeme-final.mp4.

Note: Monsieur Redon et Monsieur Boé on vu la démonstration de la carte.