Ce dépôt contient le code source pour une station blanche USB, développée sur un Raspberry Pi sous Raspberry Pi OS. Cette station permet de sécuriser et de gérer des périphériques USB grâce à diverses fonctionnalités.
Le dossier frontend contient le code responsable de l'interface visuelle (GUI). Cette interface permet à l'utilisateur d'interagir avec les fonctionnalités proposées par le backend de manière intuitive. Elle inclut :
- Les interfaces pour l'analyse, le nettoyage, le formatage et l'éjection des périphériques USB.
- Les scripts Python utilisant Tkinter pour créer une interface utilisateur simple et efficace.
Le dossier backend contient les scripts responsables de l'exécution des différentes fonctions de la station blanche USB, telles que :
- La détection des périphériques USB.
- Le scan antivirus avec ClamAV.
- Le nettoyage des fichiers avec oletools.
- Le calcul de hash SHA-1 pour vérifier l'intégrité des fichiers.
- Le formatage des périphériques USB en FAT32, NTFS ou EXT4.
- L'éjection sécurisée des périphériques USB.
Le dossier tasks contient des scripts qui sont configurés pour s'exécuter automatiquement via cron. Ces scripts permettent :
- De vérifier l'intégrité des fichiers critiques.
- De lancer automatiquement l'application principale au démarrage.
- De gérer les journaux et les tâches de maintenance.
Le dossier 3DFile regroupe les fichiers nécessaires à l'impression 3D du boîtier pour le Raspberry Pi. Ce boîtier est conçu pour protéger et intégrer le matériel utilisé dans ce projet.
-
Détection des périphériques USB :
- Détecte automatiquement les périphériques USB insérés.
- Enregistre les chemins des périphériques et des points de montage.
-
Analyse antivirus :
- Utilise ClamAV pour détecter et supprimer les fichiers infectés.
- Analyse les fichiers Office pour détecter des macros malveillantes avec oletools.
-
Nettoyage des fichiers :
- Désinfecte les fichiers infectés.
- Supprime les macros malveillantes des fichiers Office.
-
Calcul de hash SHA-1 :
- Calcule un hash global pour vérifier l'intégrité des fichiers présents sur la clé USB.
-
Formatage des périphériques USB :
- Formate les périphériques USB en FAT32, NTFS ou EXT4.
-
Éjection sécurisée :
- Éjecte les périphériques USB en toute sécurité après avoir copié les journaux sur la clé USB.
-
Automatisation avec
cron:- Configure des tâches automatiques pour vérifier l'intégrité des fichiers et lancer l'application au démarrage.
Pour installer le projet, utilisez le script install.sh. Ce script :
- Copie les fichiers dans
/usr/share/projet. - Attribue les permissions nécessaires aux fichiers.
- Installe les dépendances supplémentaires si l'option
--completeest utilisée. - Configure automatiquement les tâches
cronpour l'exécution des scripts si l'option--completeest utilisée.
-
Installation standard (sans dépendances supplémentaires ni configuration de
cron) :sudo ./install.sh
-
Installation complète (avec dépendances et configuration de
cron) :sudo ./install.sh --complete
-
Lancement de l'application principale :
- L'application principale démarre automatiquement au démarrage si
cronest configuré. - Sinon, vous pouvez la lancer manuellement (faite le depuis le dossier /usr/share/frontend/):
sudo python3 /usr/share/projet/frontend/accueil.py
- L'application principale démarre automatiquement au démarrage si
-
Navigation dans l'interface :
- Insérez un périphérique USB pour accéder au menu principal.
- Utilisez les boutons pour analyser, nettoyer, formater ou éjecter le périphérique USB.
-
Logs :
- Les journaux des actions sont enregistrés dans
/usr/share/projet/backend/logs.txtpuis sur la clé avant ejection.
- Les journaux des actions sont enregistrés dans
Si l'installation complète est utilisée, les tâches suivantes sont configurées automatiquement :
check.sh: Exécuté toutes les minutes pour vérifier l'intégrité des fichiers critiques.start.sh: Exécuté au démarrage pour lancer l'application principale.
Pour vérifier les tâches cron configurées :
sudo crontab -l-
Privilèges root :
- La plupart des scripts nécessitent des privilèges root pour fonctionner correctement.
-
Dépendances :
- Assurez-vous que les dépendances suivantes sont installées :
- ClamAV : Pour l'analyse antivirus.
- oletools : Pour l'analyse des fichiers Office.
- Assurez-vous que les dépendances suivantes sont installées :
-
Permissions des fichiers :
- Les permissions des fichiers sont configurées automatiquement par le script
install.sh.
- Les permissions des fichiers sont configurées automatiquement par le script
Projet réalisé par :
- Logan Doceul – [email protected]
- Anya Lallart - [email protected]
- Alixe Maerte - [email protected]
- Camille Langer - [email protected]