Année universitaire 2020/2021
Ministère de l’Enseignement Supérieur et de la recherche Scientifique
Université des Sciences et de la Technologie Houari Boumediene
Faculté d’Électronique et d’Informatique
Département d’Informatique
Rapport de Projet
Module : System d’exploitation
Intitulé :
Prise de contrôle du microphone
Filière Informatique
Spécialité : Sécurité des Systèmes Informatiques
Master 1 / Section A
Travail demandé par : Réalisé par :
Pr BELKHIR Abdelkader TEBTOUB Souhaib
BOUKADOUM Youcef Islem
SOUAG Abderrahmane
MELLAH Mouloud
Table des matières
1. Création du malware.............................................................................................................................................. 2
1.1. Exigence de programme................................................................................................................................. 2
1.2. Schémas d’exécution du malware (organigramme) ...................................................................................... 3
1.3. Analyse du code source.................................................................................................................................. 4
2. Infection du PC de la cible...................................................................................................................................... 6
2.1. Création de l’interface du setup..................................................................................................................... 7
2.2. Installation et démarrage automatique du malware................................................................................... 12
2.3. Dissimuler le malware.................................................................................................................................. 14
3. Détection du malware.......................................................................................................................................... 16
3.1. Méthodologies ............................................................................................................................................. 16
3.2. Journal de microphone sous Windows 10 ................................................................................................... 16
3.3. Création du programme :............................................................................................................................. 17
3.4. Exécution du programme de détection........................................................................................................ 18
1
Introduction générale
Les attaques informatiques telles que l’espionnage fait l’objet d’une actualité quotidienne, un
logiciel espion s’infiltre discrètement dans le système pour surveiller et enregistrer les activités de
l’utilisateur, pour recueillir le plus de donnée possible, en générale, il se rattache au système et
fonctionne en arrière-plans et il prend l’apparence d’un fichier innocent qui constitue une partie
essentielle du system, comme il peut se présenter sous la forme d’un logiciel utile.
Par exemple, on a un type de spyware qui espionne le microphone. Dans ce cas, le malware va
prendre le contrôle de microphone à l’insu de propriétaire de la machine grâce à une connaissance
parfaite du système d’exploitation.
L’objectif d’un logiciel d’espionnage de microphone est de s’exécutant en arrière-plans afin de
récupérer les fichiers audios de la machine cible sans alerter le système ou l’utilisateur. Ainsi, dans ce
cadre, s’inscrit notre projet qui a les objectifs suivants :
- Prendre le contrôle du microphone.
- Démarrage automatique à chaque début de session.
- Cacher le processus.
- Détecter le processus.
2
1. Création du malware
Le but de ce projet est de créer un programme qui s'exécute en arrière-plan et prend le contrôle du
microphone d’une machine cible et de l’utiliser à sa guise. Dans notre cas, on a choisi de s’attaquer aux
systèmes Windows et plus précisément à Windows 10.
L’idée de base de notre malware et d’enregistrer la voix capturée à travers le microphone dans de petits
fichiers audio et de les envoyer à notre serveur FTP.
1.1. Exigence de programme
Pour réaliser notre malware, on a principalement utilisé la version 3.9 de Python et les modules suivants :
- sounddevice : pour tout ce qui est enregistrement du la voix.
- datetime : obtenir la date et le temps actuelle de l’enregistrement.
- scipy : pour sauvegarder la voix enregistre dans un fichier WAV.
- glob : localiser les fichier WAV.
- ftplib : envoi des fichiers WAV au serveur distant.
- Os : suppression des fichier WAV après les avoir téléchargés au serveur FTP.
- getmac : obtenir l’adresse MAC du PC.
- Threading : pour avoir la possibilité de télécharger les fichiers déjà enregistré vers le serveur et enregistre
la vois en parallèle.
3
1.2. Schémas d’exécution du malware (organigramme)
4
1.3. Analyse du code source
On commence par importer les modules dont nous avons besoin.
Ensuite, on définit la fonction qui se charge d'enregistrer la voix record().
Cette fonction déclare 2 variables, FS et duration :
FS : nombre des frames par seconde (plus elle est grande plus la qualité du son est mieux, mais les fichiers
deviennent plus volumineux)
duration : la durée de l’enregistrement (dans notre cas on a choisi des fichiers de 60s)
Puis, on a une boucle infinie qui exécute les taches suivantes dans l’ordre :
- Obtenir le temps et la date avant que l’enregistrement commence.
- Commencer l’enregistrement.
- Sauvegarder l’enregistrement dans un fichier WAV nommé avec la date et le temps obtenu
lors du commencement.
- Appeler un thread qui se charge du téléchargement.
5
Après avoir terminé l’enregistrement, il est temps d'envoyer les fichiers au serveur FTP distant. Pour
cela, on définit une fonction ftp_conn()
6
Cette fonction va essayer de se connecter au serveur FTP, puis changer le répertoire de travail pour
le répertoire de la cible, ce répertoire est nommé avec son adresse MAC. Puis, elle va d'envoyer tous les
fichiers enregistrés un après l’autre en supprimant chaque fichier envoyer.
Remarque : si la cible est déconnectée d’Internet, le programme enregistre quand même et essaye (après
chaque enregistrement terminé) de se connecter au serveur distant.
Enfin, il faut lancer la fonction record()
2. Infection du PC de la cible
Une fois qu’on a fini notre malware et vérifié qu’il marche comme on le veut. On commence à penser
à une méthode pour infecter le PC de la cible. On a plusieurs méthodes d’infection à notre disposition. Pour
choisir la meilleure méthode qui convient à notre malware et à notre contexte, on va procéder par
élimination :
- Infecter la cible avec une clé USB qui contient notre malware et qui va s’installer
automatiquement après l’insertion de la clé USB sur le PC. Cette méthode ne convient pas à
notre contexte, car on a besoin, soit d’insérer la clé USB nous-même ou de convaincre la cible
de l’insérer lui-même. Dans tous les cas, on a besoin d’un contact physique ou d’être proche de
notre cible.
- Le malware peut être installé avec un autre programme que l’utilisateur télécharge sur son PC.
En installant ces programmes, le malware va aussi s’installer sur le PC. Cette méthode n’est pas
pertinente, car on ne peut pas vraiment cibler une personne en particulier.
- Dernièrement, on peut envoyer des e-mails à notre cible souvent appelée des SPAM. Ces e-
mails continents notre malware en pièce jointe et on essaye à travers ces e-mails de convaincre
l’utilisateur de télécharger notre malware. Mais, généralement, cette méthode est très facilement
détectable, car souvent, l’utilisateur peut soupçonner ces emails et ne pas télécharger la pièce
jointe.
Ainsi, dans notre cas, on a choisi d’utiliser une combinaison entre la deuxième et la troisième
méthode. Tel qu’on a créé un faux setup d’installation d’un logiciel très connus qu’est NordVPN et on envoie
7
un e-mail à la cible pour le convaincre en lui disant que cette version de NordVPN est patché et on lui promet
toutes les fonctionnalités de NordVPN gratuitement et sans restriction.
2.1. Création de l’interface du setup
Pour notre setup, on va essayer de copier au mieux la version originale :
Pour créer notre version du setup on va se contenter d’utiliser le module Tkinter de Python :
On commence par créer la première page du setup avec le code suivant :
8
Ce code permet de nous donnes la page suivante :
9
Évidemment, les deux Checkbox « Create a desktop shortcut » et « Create a shortcut in the Start
menu » ne font rien puisque notre but n’est pas vraiment d’installer NordVPN, mais d’installer notre
malware. Une fois qu’on appuie sur le bouton « Next > » on a notre deuxième page qu’est la suivante:
10
Le code relatif à cette page sera expliqué dans la section 2.2. Après le téléchargement, on a la page suivante:
Une fois qu’on clique sur « Install », on a la page suivante :
11
Cette page indique que NordVPN est en cours d’installation, mais en réalité cette page est scripté
pour afficher un message d’erreur après un court délais. Le message d’erreur est le suivant :
12
Le code relatif à cette page est le suivant :
Ainsi, après que l’utilisateur a exécuté notre setup notre malware sera installer et il recevra le message
d’erreur « Installation failed » l’utilisateur va penser que le setup ne marche tout simplement pas ou qu’il y
a un problème quelconque. L’utilisateur pourra exécuter le setup autant de fois qu’il veut, il recevra toujours
le même message d’erreur.
Il nous reste plus qu’à créer le fichier exécutable de notre setup en utilisant Pyinstaller avec la
commande suivante : « Pyinstaller setup.py -n NordVPNPATCHED -F -w -i ‘logo.ico’ --paths
C:WindowsSystem32downlevel »
2.2. Installation et démarrage automatique du malware
Pour installer le malware, la deuxième page du setup va télécharger le malware avec le code suivant :
13
Le principe est que le setup télécharge le malware depuis notre site web qu’est le suivant : «
https://projsys.alwaysdata.net/encode.exe » et l’installe automatiquement comme le montre les deux figures
précédentes. Évidemment, il faut que l’utilisateur ait accès à Internet, c’est pour ça que si l’utilisateur n’est
pas connecté à Internet, on affiche le message d’erreur suivant :
Après que le téléchargement de notre malware est fini, on le met dans le dossier
suivant « C:Users[USERNAME]AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup »
ce dossier permet à notre malware de s’exécuter automatiquement au démarrage de Windows.
Maintenant, il suffit juste de lancer l’exécutable avec la ligne de code suivante :
14
Une fois notre malware exécuté on peut vérifier qu’il est en cours d’exécution en consultant le dossier
« c:USERSpublicWin_defender » (c’est le dossier caché qui contient les enregistrements du microphone
qu’on doit télécharger). Tel que:
Ainsi, notre malware est installé dans la machine de notre victime et s’exécute automatiquement à
chaque démarrage de Windows. Ce qui donne accès au microphone de la victime sans qu’il ne s’en rende
compte.
2.3. Dissimuler le malware
On sait que dans Windows y a des processus appeler « svchost.exe » qui veut dire Service Host
Process. Ce processus est présent dans toutes les versions de Windows. Svchost.exe est utilisé pour charger
les fichiers DLL des différentes applications et des fonctions génériques.
Le nombre de processus svchost.exe qui s’exécute en même temps sur Windows, est très élevé telle
que le montre la figure suivante :
15
Ainsi, pour tromper l’utilisateur et ne pas éveiller de soupçons, on a décidé de nommer l’exécutable
de notre malware svchost.exe. Lorsque le malware est en cours d’exécution et qu’on ouvre le gestionnaire
de tâche notre malware n’apparaît presque pas comme le montre la figure suivante :
16
Dans la figure, on voit un processus qui n’a pas de nom. Ce processus est notre malware puisqu’il
s’appelle svchost et que le gestionnaire de tâche n’affiche pas les processus qui portent ce nom. De la sorte,
l’utilisateur ne verra jamais que notre malware est en cours d’exécution sur sa machine.
3. Détection du malware
Après la création du malware, on doit maintenant créer un script pour détecter ce type de spyware.
3.1. Méthodologies
La détection d’un spyware de ce type peut être réalisé en analysant les processus encours d’execution et
les trackers en se concentrant sur les aspects suivants :
- L’usage d’internet (ce qui est requis pour l’envoi des fichiers audio).
- L’accès aux microphones.
Idéalement, si on veut programmer un détecteur basé sur l’analyse qui en même temps se base sur
l’accès au microphone et l’usage d’Internet comme critère de détection. La detection va être simplifié.
Le problème se pose dans l’analyse des processus qui est très difficile à programmer notamment la
partie qui va tester si le processus utilise le microphone, qui en lui-même ne donne pas des informations sur
quelle application il est train d’écouter. Et pour cette raison, on a décidé d’utiliser le service de journal qui
est implémenter sur Windows 10.
3.2. Journal de microphone sous Windows 10
À partir de Windows 10 build 17063 réaliser en 2017 et jusqu’à 18298 réaliser en 2018, Microsoft a
fait plusieurs améliorations sur la gestion des périphériques y compris les microphones qui sont sensibles à
des attaques des spywares comme notre cas. Tous les utilisateurs de Windows 10 peuvent désormais autoriser
ou refuser l'accès des applications au microphone et à tout moment voire un journal qui regroupe toutes les
applications qui ont utilisé le microphone et à quelle date.
Ces informations sont stockées dans le Registre de Windows plus précisément dans l’emplacement s:
«HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionCapabilityAccessManag
erConsentStoremicrophone »
Tel que le montre la figure suivante :
17
En cliquant sur une clé enfant, on peut trouver les informations suivantes:
On voit que chaque entrée contient deux valeurs « LastUsedTimeStart » et « LastUsedTimeStop », avec les
horodatages au format FILETIME de Windows.
3.3. Création du programme :
En utilisant le registre citer précédemment, on peut écrire le script suivant :
18
Le programme utilise la bibliothèque winreg pour utiliser les fonctions du Registre Windows et la
bibliothèque filetime pour la conversion de l’horodatage.
3.4. Exécution du programme de détection
En exécutant le programme de détection, on trouve le nom de notre malware « svchost.exe » figure
dans la liste des processus qui utilise le microphone.
19
Conclusion
Dans ce projet, on a pu voir et manipuler plusieurs aspects du système d’exploitation (plus
précisément Windows) on crée un programme malveillant qui prend le contrôle du microphone de
l’utilisateur à son insu et enregistre constamment sa voix pour nous l’envoyer dans notre serveur dédier.
Ensuite, on a cherché au moyen le plus efficace pour pouvoir infecter le PC de la cible. Au final, on
a opté pour envoyer un e-mail SPAM à la victime et essayer de la convaincre de télécharger une version
patché d’un logiciel populaire. Après, il suffit que la victime exécute notre setup d’installation une seule fois
pour que notre malware soit installé et fonctionnelle.
Pour finir, on a fait un petit script pour détecter notre malware en particulier et tous les spywares de
ce type en générale. Pour cela, on s’est contenté d’utiliser les différents outils que nous offre Windows
notamment le Registre et le journal de microphone de Windows.
Bien sûr, ce travail peut très bien être améliorer que ce soit pour cacher le malware ou même dans le
principe de son fonctionnement. Mais on a réalisé ce projet en se basant que sur nos connaissances et nos
moyens matériels.

rapport.pdf

  • 1.
    Année universitaire 2020/2021 Ministèrede l’Enseignement Supérieur et de la recherche Scientifique Université des Sciences et de la Technologie Houari Boumediene Faculté d’Électronique et d’Informatique Département d’Informatique Rapport de Projet Module : System d’exploitation Intitulé : Prise de contrôle du microphone Filière Informatique Spécialité : Sécurité des Systèmes Informatiques Master 1 / Section A Travail demandé par : Réalisé par : Pr BELKHIR Abdelkader TEBTOUB Souhaib BOUKADOUM Youcef Islem SOUAG Abderrahmane MELLAH Mouloud
  • 2.
    Table des matières 1.Création du malware.............................................................................................................................................. 2 1.1. Exigence de programme................................................................................................................................. 2 1.2. Schémas d’exécution du malware (organigramme) ...................................................................................... 3 1.3. Analyse du code source.................................................................................................................................. 4 2. Infection du PC de la cible...................................................................................................................................... 6 2.1. Création de l’interface du setup..................................................................................................................... 7 2.2. Installation et démarrage automatique du malware................................................................................... 12 2.3. Dissimuler le malware.................................................................................................................................. 14 3. Détection du malware.......................................................................................................................................... 16 3.1. Méthodologies ............................................................................................................................................. 16 3.2. Journal de microphone sous Windows 10 ................................................................................................... 16 3.3. Création du programme :............................................................................................................................. 17 3.4. Exécution du programme de détection........................................................................................................ 18
  • 3.
    1 Introduction générale Les attaquesinformatiques telles que l’espionnage fait l’objet d’une actualité quotidienne, un logiciel espion s’infiltre discrètement dans le système pour surveiller et enregistrer les activités de l’utilisateur, pour recueillir le plus de donnée possible, en générale, il se rattache au système et fonctionne en arrière-plans et il prend l’apparence d’un fichier innocent qui constitue une partie essentielle du system, comme il peut se présenter sous la forme d’un logiciel utile. Par exemple, on a un type de spyware qui espionne le microphone. Dans ce cas, le malware va prendre le contrôle de microphone à l’insu de propriétaire de la machine grâce à une connaissance parfaite du système d’exploitation. L’objectif d’un logiciel d’espionnage de microphone est de s’exécutant en arrière-plans afin de récupérer les fichiers audios de la machine cible sans alerter le système ou l’utilisateur. Ainsi, dans ce cadre, s’inscrit notre projet qui a les objectifs suivants : - Prendre le contrôle du microphone. - Démarrage automatique à chaque début de session. - Cacher le processus. - Détecter le processus.
  • 4.
    2 1. Création dumalware Le but de ce projet est de créer un programme qui s'exécute en arrière-plan et prend le contrôle du microphone d’une machine cible et de l’utiliser à sa guise. Dans notre cas, on a choisi de s’attaquer aux systèmes Windows et plus précisément à Windows 10. L’idée de base de notre malware et d’enregistrer la voix capturée à travers le microphone dans de petits fichiers audio et de les envoyer à notre serveur FTP. 1.1. Exigence de programme Pour réaliser notre malware, on a principalement utilisé la version 3.9 de Python et les modules suivants : - sounddevice : pour tout ce qui est enregistrement du la voix. - datetime : obtenir la date et le temps actuelle de l’enregistrement. - scipy : pour sauvegarder la voix enregistre dans un fichier WAV. - glob : localiser les fichier WAV. - ftplib : envoi des fichiers WAV au serveur distant. - Os : suppression des fichier WAV après les avoir téléchargés au serveur FTP. - getmac : obtenir l’adresse MAC du PC. - Threading : pour avoir la possibilité de télécharger les fichiers déjà enregistré vers le serveur et enregistre la vois en parallèle.
  • 5.
    3 1.2. Schémas d’exécutiondu malware (organigramme)
  • 6.
    4 1.3. Analyse ducode source On commence par importer les modules dont nous avons besoin. Ensuite, on définit la fonction qui se charge d'enregistrer la voix record(). Cette fonction déclare 2 variables, FS et duration : FS : nombre des frames par seconde (plus elle est grande plus la qualité du son est mieux, mais les fichiers deviennent plus volumineux) duration : la durée de l’enregistrement (dans notre cas on a choisi des fichiers de 60s) Puis, on a une boucle infinie qui exécute les taches suivantes dans l’ordre : - Obtenir le temps et la date avant que l’enregistrement commence. - Commencer l’enregistrement. - Sauvegarder l’enregistrement dans un fichier WAV nommé avec la date et le temps obtenu lors du commencement. - Appeler un thread qui se charge du téléchargement.
  • 7.
    5 Après avoir terminél’enregistrement, il est temps d'envoyer les fichiers au serveur FTP distant. Pour cela, on définit une fonction ftp_conn()
  • 8.
    6 Cette fonction vaessayer de se connecter au serveur FTP, puis changer le répertoire de travail pour le répertoire de la cible, ce répertoire est nommé avec son adresse MAC. Puis, elle va d'envoyer tous les fichiers enregistrés un après l’autre en supprimant chaque fichier envoyer. Remarque : si la cible est déconnectée d’Internet, le programme enregistre quand même et essaye (après chaque enregistrement terminé) de se connecter au serveur distant. Enfin, il faut lancer la fonction record() 2. Infection du PC de la cible Une fois qu’on a fini notre malware et vérifié qu’il marche comme on le veut. On commence à penser à une méthode pour infecter le PC de la cible. On a plusieurs méthodes d’infection à notre disposition. Pour choisir la meilleure méthode qui convient à notre malware et à notre contexte, on va procéder par élimination : - Infecter la cible avec une clé USB qui contient notre malware et qui va s’installer automatiquement après l’insertion de la clé USB sur le PC. Cette méthode ne convient pas à notre contexte, car on a besoin, soit d’insérer la clé USB nous-même ou de convaincre la cible de l’insérer lui-même. Dans tous les cas, on a besoin d’un contact physique ou d’être proche de notre cible. - Le malware peut être installé avec un autre programme que l’utilisateur télécharge sur son PC. En installant ces programmes, le malware va aussi s’installer sur le PC. Cette méthode n’est pas pertinente, car on ne peut pas vraiment cibler une personne en particulier. - Dernièrement, on peut envoyer des e-mails à notre cible souvent appelée des SPAM. Ces e- mails continents notre malware en pièce jointe et on essaye à travers ces e-mails de convaincre l’utilisateur de télécharger notre malware. Mais, généralement, cette méthode est très facilement détectable, car souvent, l’utilisateur peut soupçonner ces emails et ne pas télécharger la pièce jointe. Ainsi, dans notre cas, on a choisi d’utiliser une combinaison entre la deuxième et la troisième méthode. Tel qu’on a créé un faux setup d’installation d’un logiciel très connus qu’est NordVPN et on envoie
  • 9.
    7 un e-mail àla cible pour le convaincre en lui disant que cette version de NordVPN est patché et on lui promet toutes les fonctionnalités de NordVPN gratuitement et sans restriction. 2.1. Création de l’interface du setup Pour notre setup, on va essayer de copier au mieux la version originale : Pour créer notre version du setup on va se contenter d’utiliser le module Tkinter de Python : On commence par créer la première page du setup avec le code suivant :
  • 10.
    8 Ce code permetde nous donnes la page suivante :
  • 11.
    9 Évidemment, les deuxCheckbox « Create a desktop shortcut » et « Create a shortcut in the Start menu » ne font rien puisque notre but n’est pas vraiment d’installer NordVPN, mais d’installer notre malware. Une fois qu’on appuie sur le bouton « Next > » on a notre deuxième page qu’est la suivante:
  • 12.
    10 Le code relatifà cette page sera expliqué dans la section 2.2. Après le téléchargement, on a la page suivante: Une fois qu’on clique sur « Install », on a la page suivante :
  • 13.
    11 Cette page indiqueque NordVPN est en cours d’installation, mais en réalité cette page est scripté pour afficher un message d’erreur après un court délais. Le message d’erreur est le suivant :
  • 14.
    12 Le code relatifà cette page est le suivant : Ainsi, après que l’utilisateur a exécuté notre setup notre malware sera installer et il recevra le message d’erreur « Installation failed » l’utilisateur va penser que le setup ne marche tout simplement pas ou qu’il y a un problème quelconque. L’utilisateur pourra exécuter le setup autant de fois qu’il veut, il recevra toujours le même message d’erreur. Il nous reste plus qu’à créer le fichier exécutable de notre setup en utilisant Pyinstaller avec la commande suivante : « Pyinstaller setup.py -n NordVPNPATCHED -F -w -i ‘logo.ico’ --paths C:WindowsSystem32downlevel » 2.2. Installation et démarrage automatique du malware Pour installer le malware, la deuxième page du setup va télécharger le malware avec le code suivant :
  • 15.
    13 Le principe estque le setup télécharge le malware depuis notre site web qu’est le suivant : « https://projsys.alwaysdata.net/encode.exe » et l’installe automatiquement comme le montre les deux figures précédentes. Évidemment, il faut que l’utilisateur ait accès à Internet, c’est pour ça que si l’utilisateur n’est pas connecté à Internet, on affiche le message d’erreur suivant : Après que le téléchargement de notre malware est fini, on le met dans le dossier suivant « C:Users[USERNAME]AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup » ce dossier permet à notre malware de s’exécuter automatiquement au démarrage de Windows. Maintenant, il suffit juste de lancer l’exécutable avec la ligne de code suivante :
  • 16.
    14 Une fois notremalware exécuté on peut vérifier qu’il est en cours d’exécution en consultant le dossier « c:USERSpublicWin_defender » (c’est le dossier caché qui contient les enregistrements du microphone qu’on doit télécharger). Tel que: Ainsi, notre malware est installé dans la machine de notre victime et s’exécute automatiquement à chaque démarrage de Windows. Ce qui donne accès au microphone de la victime sans qu’il ne s’en rende compte. 2.3. Dissimuler le malware On sait que dans Windows y a des processus appeler « svchost.exe » qui veut dire Service Host Process. Ce processus est présent dans toutes les versions de Windows. Svchost.exe est utilisé pour charger les fichiers DLL des différentes applications et des fonctions génériques. Le nombre de processus svchost.exe qui s’exécute en même temps sur Windows, est très élevé telle que le montre la figure suivante :
  • 17.
    15 Ainsi, pour tromperl’utilisateur et ne pas éveiller de soupçons, on a décidé de nommer l’exécutable de notre malware svchost.exe. Lorsque le malware est en cours d’exécution et qu’on ouvre le gestionnaire de tâche notre malware n’apparaît presque pas comme le montre la figure suivante :
  • 18.
    16 Dans la figure,on voit un processus qui n’a pas de nom. Ce processus est notre malware puisqu’il s’appelle svchost et que le gestionnaire de tâche n’affiche pas les processus qui portent ce nom. De la sorte, l’utilisateur ne verra jamais que notre malware est en cours d’exécution sur sa machine. 3. Détection du malware Après la création du malware, on doit maintenant créer un script pour détecter ce type de spyware. 3.1. Méthodologies La détection d’un spyware de ce type peut être réalisé en analysant les processus encours d’execution et les trackers en se concentrant sur les aspects suivants : - L’usage d’internet (ce qui est requis pour l’envoi des fichiers audio). - L’accès aux microphones. Idéalement, si on veut programmer un détecteur basé sur l’analyse qui en même temps se base sur l’accès au microphone et l’usage d’Internet comme critère de détection. La detection va être simplifié. Le problème se pose dans l’analyse des processus qui est très difficile à programmer notamment la partie qui va tester si le processus utilise le microphone, qui en lui-même ne donne pas des informations sur quelle application il est train d’écouter. Et pour cette raison, on a décidé d’utiliser le service de journal qui est implémenter sur Windows 10. 3.2. Journal de microphone sous Windows 10 À partir de Windows 10 build 17063 réaliser en 2017 et jusqu’à 18298 réaliser en 2018, Microsoft a fait plusieurs améliorations sur la gestion des périphériques y compris les microphones qui sont sensibles à des attaques des spywares comme notre cas. Tous les utilisateurs de Windows 10 peuvent désormais autoriser ou refuser l'accès des applications au microphone et à tout moment voire un journal qui regroupe toutes les applications qui ont utilisé le microphone et à quelle date. Ces informations sont stockées dans le Registre de Windows plus précisément dans l’emplacement s: «HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionCapabilityAccessManag erConsentStoremicrophone » Tel que le montre la figure suivante :
  • 19.
    17 En cliquant surune clé enfant, on peut trouver les informations suivantes: On voit que chaque entrée contient deux valeurs « LastUsedTimeStart » et « LastUsedTimeStop », avec les horodatages au format FILETIME de Windows. 3.3. Création du programme : En utilisant le registre citer précédemment, on peut écrire le script suivant :
  • 20.
    18 Le programme utilisela bibliothèque winreg pour utiliser les fonctions du Registre Windows et la bibliothèque filetime pour la conversion de l’horodatage. 3.4. Exécution du programme de détection En exécutant le programme de détection, on trouve le nom de notre malware « svchost.exe » figure dans la liste des processus qui utilise le microphone.
  • 21.
    19 Conclusion Dans ce projet,on a pu voir et manipuler plusieurs aspects du système d’exploitation (plus précisément Windows) on crée un programme malveillant qui prend le contrôle du microphone de l’utilisateur à son insu et enregistre constamment sa voix pour nous l’envoyer dans notre serveur dédier. Ensuite, on a cherché au moyen le plus efficace pour pouvoir infecter le PC de la cible. Au final, on a opté pour envoyer un e-mail SPAM à la victime et essayer de la convaincre de télécharger une version patché d’un logiciel populaire. Après, il suffit que la victime exécute notre setup d’installation une seule fois pour que notre malware soit installé et fonctionnelle. Pour finir, on a fait un petit script pour détecter notre malware en particulier et tous les spywares de ce type en générale. Pour cela, on s’est contenté d’utiliser les différents outils que nous offre Windows notamment le Registre et le journal de microphone de Windows. Bien sûr, ce travail peut très bien être améliorer que ce soit pour cacher le malware ou même dans le principe de son fonctionnement. Mais on a réalisé ce projet en se basant que sur nos connaissances et nos moyens matériels.