Cybersécurité avec Python : comprendre le fonctionnement d’un keylogger et les événements clavier

1. A propos du cours

  1. Auteur : Nesrine KHERNANE – Université Batna 2 Chahid Mostefa Benboulaid, Faculté des sciences, Département d’informatique
  2. Type : Travaux pratiques du module Cyber Sécurité 2 – TP4 : Création Malware (2/2), consacré à l’étude pédagogique du fonctionnement d’un keylogger dans un environnement contrôlé
  3. Langue : Français
  4. Licence : Aucune licence de réutilisation n’est explicitement indiquée dans le document

2. Prérequis

  1. Posséder des connaissances élémentaires sur les systèmes Linux et l’utilisation d’un terminal.
  2. Comprendre les notions fondamentales de cybersécurité, notamment les logiciels malveillants, les risques associés à leur exécution et les mesures de protection.
  3. Disposer de notions de base en Python pour comprendre la lecture d’un script, les imports, les variables, les fonctions, les objets et les opérations sur les fichiers.
  4. Connaître le principe des événements clavier et comprendre qu’une application peut réagir à une action réalisée par l’utilisateur.
  5. Savoir utiliser une machine virtuelle afin d’isoler les expérimentations du système principal.
  6. Respecter impérativement les règles éthiques et juridiques de la sécurité informatique : toute expérimentation doit être effectuée exclusivement dans un environnement autorisé et contrôlé.

3. Publique cible

Ce TP s’adresse principalement aux étudiants en informatique suivant une formation en cybersécurité et souhaitant comprendre le principe de fonctionnement d’un keylogger. Il permet d’étudier, dans un environnement de laboratoire contrôlé, la capture d’événements clavier et les risques que ce type de logiciel représente pour la confidentialité des utilisateurs.

4. Outils matériels et logiciels

4.1 Outils matériels

  1. Un ordinateur capable d’exécuter un environnement de virtualisation.
  2. Un clavier permettant d’observer expérimentalement le principe des événements clavier.
  3. Une connexion Internet est demandée dans le document pour préparer l’environnement de travail et récupérer les composants nécessaires au TP.
  4. Une machine personnelle ou une infrastructure pédagogique sur laquelle l’étudiant possède explicitement l’autorisation d’effectuer les expérimentations.

4.2 Outils logiciels

  1. Une machine virtuelle Kali Linux, explicitement utilisée comme environnement d’expérimentation dans le TP.
  2. Le langage Python, utilisé pour étudier le fonctionnement du programme expérimental.
  3. Un gestionnaire de packages Python permettant de préparer les dépendances nécessaires à l’environnement pédagogique.
  4. La bibliothèque pyxhook, citée dans le document pour l’étude des événements clavier.
  5. Un éditeur de texte ou l’éditeur Nano pour examiner et manipuler les fichiers Python dans le cadre du TP.
  6. Un environnement virtualisé et isolé afin d’éviter d’effectuer les expériences de cybersécurité directement sur une machine de production.

5. Champs d'applications

  1. Initiation à la cybersécurité et à l’analyse des logiciels malveillants.
  2. Compréhension du principe de fonctionnement d’un keylogger.
  3. Étude des risques liés à la capture des frappes clavier.
  4. Compréhension du fonctionnement général des événements clavier dans un système informatique.
  5. Étude pédagogique des mécanismes de hook clavier.
  6. Analyse du rôle des fonctions de rappel déclenchées par un événement utilisateur.
  7. Compréhension des risques de compromission des informations confidentielles saisies au clavier.
  8. Introduction à l’analyse de malware dans un environnement contrôlé.
  9. Sensibilisation aux techniques utilisées par certains logiciels espions.
  10. Apprentissage des mesures permettant de se prémunir contre les keyloggers.
  11. Utilisation d’une machine virtuelle Kali Linux pour réaliser des expérimentations de cybersécurité.
  12. Développement de bonnes pratiques d’éthique en sécurité informatique.

6. Courte description

Ce TP de cybersécurité étudie le fonctionnement d’un keylogger à travers Python et Kali Linux. Il explique le principe de la capture des événements clavier, leur traitement et leur journalisation dans un environnement contrôlé, tout en sensibilisant l’étudiant aux risques, aux moyens de protection et aux règles éthiques encadrant ce type d’expérimentation.

7. Longue description du cours

Ce document constitue le TP4 du module Cyber Sécurité 2 proposé par l’Université Batna 2 Chahid Mostefa Benboulaid. Intitulé Création Malware (2/2), il est consacré à l’étude pratique d’une catégorie particulière de logiciels malveillants : les keyloggers. L’objectif pédagogique consiste à comprendre comment un programme peut détecter des événements produits par le clavier et conserver une trace des touches utilisées par un utilisateur.

Le document précise explicitement qu’il ne s’agit pas d’un cours de programmation Python. Le langage Python constitue ici un outil permettant d’illustrer concrètement un mécanisme étudié dans le cadre de la cybersécurité. L’apprenant doit donc principalement comprendre le comportement du programme et la manière dont différents éléments logiciels interagissent pour détecter les événements clavier.

Un keylogger est un mécanisme capable d’enregistrer les frappes effectuées sur un clavier. Dans un contexte malveillant, une telle technique représente une menace importante pour la confidentialité, puisqu’elle peut permettre d’intercepter des informations saisies par l’utilisateur. L’intérêt pédagogique du TP est précisément de rendre ce risque concret afin que l’étudiant comprenne mieux la nature de la menace et puisse réfléchir aux moyens de s’en protéger.

Le document demande d’ailleurs explicitement à l’étudiant de répondre à deux questions fondamentales : qu’est-ce qu’un keylogger ? et comment s’en prémunir ? Le TP ne se limite donc pas à observer un mécanisme technique ; il cherche également à développer une réflexion sur les conséquences de cette technique et sur les moyens permettant de réduire les risques.

Une mise en garde importante accompagne le travail. Le document précise que les étudiants n’ont pas le droit d’exploiter les malwares étudiés contre des machines qui ne leur appartiennent pas. Cette restriction constitue un élément essentiel du TP : les manipulations de cybersécurité doivent être réalisées uniquement dans un environnement autorisé et contrôlé. L’étude d’un mécanisme offensif n’autorise en aucun cas son utilisation contre un tiers.

Pour isoler l’expérimentation, le support utilise une machine virtuelle Kali Linux. Cette approche est particulièrement adaptée à l’enseignement de la cybersécurité, car la virtualisation permet de disposer d’un environnement spécifique consacré aux travaux pratiques sans effectuer directement les expériences sur le système principal de l’utilisateur. Le document demande que cette machine virtuelle soit préparée avant la séance de TP.

Le programme pédagogique s’appuie sur Python et sur le module pyxhook. Cette bibliothèque est utilisée pour illustrer la gestion des événements provenant du clavier. Le document renvoie également vers la documentation du projet afin que l’étudiant puisse obtenir davantage d’informations sur son fonctionnement.

Le principe étudié repose sur la notion de hook clavier. Un hook permet à un programme de recevoir des informations lorsqu’un événement particulier se produit. Dans le cas étudié, l’événement correspond à l’utilisation d’une touche du clavier. Lorsqu’une touche est pressée, le mécanisme de hook permet au programme d’en être informé et de déclencher un traitement associé.

Le TP présente ainsi un fonctionnement fondé sur les événements. Au lieu d’exécuter continuellement une même opération sans tenir compte de l’activité de l’utilisateur, le programme attend qu’un événement déterminé survienne. La pression sur une touche entraîne alors l’appel d’une fonction chargée de traiter l’information reçue. Cette logique permet à l’étudiant de découvrir concrètement le principe de la programmation événementielle appliqué à un contexte de cybersécurité.

Une partie du programme étudié est consacrée à la journalisation des événements observés. Les informations correspondant aux touches détectées sont enregistrées dans un fichier prévu à cet effet. Le document explique notamment le principe d’une ouverture de fichier en mode ajout afin que les nouvelles informations puissent être placées à la suite des précédentes sans supprimer le contenu déjà enregistré.

Cette partie du TP mobilise donc plusieurs notions élémentaires de Python : l’importation d’un module, l’utilisation d’une variable pour désigner un fichier, la définition d’une fonction, l’accès à un attribut d’un événement et l’écriture dans un fichier. Ces notions ne constituent cependant pas l’objectif principal du support, puisque celui-ci précise lui-même qu’il ne s’agit pas d’un cours consacré à Python.

Le document présente ensuite le rôle d’un gestionnaire chargé de recevoir les événements clavier. Lorsqu’un événement de pression d’une touche est détecté, celui-ci est associé à la fonction de traitement prévue par le programme. L’étudiant peut ainsi comprendre comment les différentes parties d’un programme événementiel sont reliées : détection d’un événement, transmission de l’information, traitement et enregistrement du résultat.

Le support explique également que le mécanisme doit être activé afin que le programme commence à écouter les événements clavier. Une fois l’expérimentation lancée dans l’environnement prévu, l’étudiant est invité à saisir du texte dans un éditeur puis à observer le contenu du fichier de journalisation. Cette observation permet de relier directement l’action réalisée au clavier et les données produites par le programme.

Cette expérience montre pourquoi les keyloggers représentent un risque de sécurité. Une grande partie des informations sensibles utilisées quotidiennement sur un ordinateur sont saisies au clavier : identifiants, messages, recherches, informations professionnelles et autres données confidentielles. La possibilité technique de surveiller ces frappes explique pourquoi les logiciels capables de réaliser cette opération sont particulièrement préoccupants lorsqu’ils sont installés sans le consentement de l’utilisateur.

Le TP doit donc également être envisagé sous l’angle de la défense informatique. Comprendre le principe d’une menace aide à identifier les mesures nécessaires pour réduire le risque : maintenir les systèmes et logiciels à jour, limiter l’installation de programmes provenant de sources inconnues, contrôler les privilèges accordés aux applications, utiliser des outils de sécurité appropriés et surveiller les comportements inhabituels du système.

Dans un environnement professionnel, la prévention passe également par une politique rigoureuse de gestion des accès, l’application du principe du moindre privilège, la sensibilisation des utilisateurs et la surveillance des postes de travail. L’étude d’un keylogger constitue ainsi un exemple concret permettant d’expliquer pourquoi la sécurité informatique dépend à la fois des protections techniques et des pratiques des utilisateurs.

Le document contribue par ailleurs à développer une notion essentielle en cybersécurité : l’éthique de l’expérimentation. Une technique étudiée à des fins pédagogiques peut devenir illégitime lorsqu’elle est appliquée sans autorisation à un système tiers. La maîtrise technique doit donc toujours être accompagnée d’une compréhension claire du cadre juridique, des autorisations et des responsabilités associées aux expérimentations.

Le recours à une machine virtuelle prend ici tout son sens. Elle permet de créer un laboratoire dans lequel les étudiants peuvent observer certains mécanismes sans les déployer sur des systèmes appartenant à d’autres utilisateurs. Cette démarche correspond aux bonnes pratiques de formation en sécurité informatique : isoler les expériences, maîtriser les ressources utilisées et limiter strictement les manipulations au périmètre autorisé.

Dans son ensemble, ce TP permet donc d’aborder simultanément plusieurs notions importantes : malware, keylogger, événements clavier, hook clavier, journalisation, Python, Kali Linux, environnement virtualisé et protection des données. L’objectif n’est pas simplement de découvrir un programme, mais de comprendre le mécanisme technique qui explique son fonctionnement et les risques qui en résultent.

Ce support constitue ainsi une activité pratique d’initiation à l’analyse des menaces informatiques. En observant dans un laboratoire contrôlé comment des événements clavier peuvent être détectés et consignés, l’étudiant acquiert une meilleure compréhension du fonctionnement d’un keylogger, de la nécessité de protéger les postes informatiques contre ce type de menace et de l’importance fondamentale de respecter les règles d’autorisation et d’éthique dans toute activité de cybersécurité.

8. Aperçu du document

 

Leave a Reply

Your email address will not be published. Required fields are marked *