Hacker le login et le mdp sur une interception d'ondes radios.
Maxence Brugères (Telecom Paris & Sciences Po)
: Classification random forest, outil de séparation de trames en touche, outil de production de motsClément Bernard (Telecom Paris & Polytechnique Montréal)
: Classification GRU, MLP, outil de séparation des touches du login et du mot de passe, mco du répo GithubInès Benito (ENSTA Bretagne)
: Classification via d’autre modèle (Logistic regression, KNN), recherches théoriques et appliquées pour entrainer des modèles avec des loss custom, synthèse des travaux pour le rapport, data visualisationCorentin Lestrat (ENSTA Bretagne)
: État de l’art des exploitations de SPC avec du machine learning, recherche biblio sur des sujets divers en support sachant qu’il n’avait aucune formation technique en machine learning, social engineering
Utiliser un 'venv' ou un environnement 'conda', puis récupérer les versions :
pip install -r requirements.txt
- Plot de la distribution de chaque pic pour chacun des caractères
Box plot |
---|
La distribution de certains pics pourraient permettre d'identifier un caractère
- Utilisation de MLP, GRU et Random Forest pour la classification multi-classe (42 classes)
Accuracy | F1 score |
---|---|
Les modèles MLP et GRU sont plus précis que Random Forest sur les données d'entrainement et de validation.
- Utilisation de MLP et GRU pour données regroupées en groupe de trames : 1, 5, 10, 25, 100 et 200
MLP | GRU |
---|---|
Plus on regroupe par trame, et meilleure est l'accuracy.
- Utilisation de MLP et GRU pour données regroupées en groupe de trames avec ajout de bruit sur les données d'entrainement
MLP | GRU |
---|---|
Les regroupements par trame avec bruit est efficace pour un regroupement faible, et pas pour un groupe de trames élevé
- Prédictions trame par trame, avec les probabilités d'être dans un label :
MLP | GRU | Random Forest |
---|---|---|
Les modèles MLP et GRU sont plus précis et donc ont du mal à reconnaitre les différences lorsque plusieurs touches sont appuyés en même temps. Random Forest est moins bon et donc est plus ambigue : il peut donc voit lorsque deux touches sont appuyées en même temps
- Prédictions par groupe de trames sans bruit, avec GRU par exemple :
GRU |
---|
Plus on regroupe par trame, et plus on réduit le bruit, mais on perd de la précision et n'arrivons pas à distinguer entre plusieurs touches pressées en même temps.
- Prédictions par groupe de trames avec bruit, avec GRU par exemple :
GRU avec bruit |
---|
- On retient finalement que la prédiction avec Random Forest trame par trame car le modèle classifie moins bien mais donne plus de données sur les probabilités de chaque caractère.
- On utilise la matrice de confusion sur l'ensemble de validation de Random forest pour prédire les caractères sur plusieurs trames (minimisation de la distance entre les lignes de la matrice de confusion et les probabilités de prédiction de Random Forest).
Matrice de confusion | Prédictions de Random Forest |
---|---|
- Identification des trames appartenant à une même touche pressée. Utilisation d'une fenêtre glissante sur 30 trames pour lisser les probabilités, puis on moyenne la distance euclidienne entre chacun des vecteurs de probabilités.
Identification des trames d'une même touche |
---|
- Utilisation d'un algorithme de clustering pour différencier 3 groupes : 1) déverouillage 2) login et 3) mot de passe.
Clustering en 3 groupes | 3 groupes obtenus |
---|---|
- Distance par rapport aux touches connues (avec la matrice de confusion) pour chaque touche pressée
Clustering en 3 groupes |
---|
- Identification des caractères : on considère pour chaque groupe de trames les caractères les plus probables.
Prédictions des caractères |
---|
- La prédiction des logins et de mot de passe possible se trouve dans :
predictions
Il y a un fichierlogin.csv
etmdp.csv
avec les prédictions des logins et des mdp les plus probables.- Nous pensons que le login est le suivant : DGAMI et le mot de passe : hackaton2021
Hackaton
: Fichiers avec les données du challengeimages
: Images utilisées dans le READMEmodels_simple
: Les modèles enregistrés lors de trainingmodels_noise
: Les modèles entrainés avec du bruitmodels_stack
: Les modèles entrainés sans bruit et par groupement de tramesnotebook
: Dossier avec les notebooks utilisésprédictions
: Les prédictions du login et mot de passepython
: Fichiers python utilisésHackaton.zip
: Fichier zip deHackaton
models.zip
: Fichier zip demodels_simple
models_noise.zip
: Fichier zip demodels_noise
models_stack.zip
: Fichier zip demodels_stack
python.zip
: Fichier zip depython
rapport
: Dossier avec le rapport finalrequirements.txt
: Fichier avec les requirements sous format txt