Ce projet est un projet de groupe codé en python.
C'est un programme Python qui pourrait servir en cybersécurité dans une entreprise.
Il consiste à fermer tout programme malveillant qui pourrait potentiellement se lancer sur une machine automatiquement.
Grâce au gestionnaire des tâches, il est possible de voir quels programmes sont en cours sur une machine.
On créera une blacklist comportant le plus de programmes malveillants possibles (il est possible d'en trouver sur internet) pour la comparer aux programmes en cours dans le gestionnaire des tâches et les fermer si besoin.
Ce programme surveille les processus en cours d'exécution sur un système Windows et prend des mesures si des processus interdits sont détectés.
Initialisation :
Récupère le nom d'hôte et l'adresse IP de la machine.
Configure la journalisation pour écrire dans un fichier nommé interdiction.log.
Vérification des fichiers nécessaires :
Vérifie si le fichier readed.csv existe, sinon il le crée.
Fonctions auxiliaires :
is_safe(process, safe_process): Vérifie si un processus est sûr.
is_blacklist(process, blacklisted_process): Vérifie si un processus est dans la liste noire et enregistre l'événement dans le fichier de log si c'est le cas.
write_readed(process): Ajoute un processus au fichier readed.csv.
Traitement des processus :
Parcourt les processus en cours d'exécution (obtenus via la commande tasklist /FO CSV).
Pour chaque processus, vérifie s'il est déjà enregistré dans readed.csv.
Si le processus n'est pas sûr, il est comparé à la liste des processus interdits (blacklist.csv).
Si un processus interdit est trouvé, il est consigné dans le fichier de log et un indicateur est activé.
Action en cas de processus interdit :
Si des processus interdits sont détectés, un script nommé ips_interface.py est exécuté.
Pour faire fonctionner correctement cet algorithme, nous avons décidé d'implémenter une interface graphique grâce à la bibliothèque tkinter.
Ce programme utilise une interface graphique (GUI) pour gérer et "tuer" les processus interdits sur un système grâce au premier programme.
Importation des modules :
os, tkinter, requests, et BeautifulSoup sont importés pour diverses opérations,
Fonctions principales :
button_kill_all(): Bouton appelant la fonction qui tue tous les processus interdits listés dans le fichier de log.
button_kill_spe(processus_name): Bouton appelant la fonction qui tue un processus spécifique correspondant au nom donné.
appelle(): Affiche une boîte de dialogue de confirmation avant d'exécuter button_kill_all().
creation_arret_button(processus): Crée un bouton dans l'interface pour tuer un processus spécifique.
vider_fichier_log(): Vide le contenu du fichier de log et ferme l'interface.
Initialisation :
Définition des chemins des fichiers blacklist.csv et interdiction.log.
Lecture du fichier de log pour récupérer la liste des processus interdits.
Création de l'interface graphique (GUI) :
Une fenêtre Tkinter (root) est créée.
Ajout de différents éléments à l'interface :
Un label pour afficher le titre "Interdictions trouvées".
Un bouton "OK" pour fermer la fenêtre et vider le fichier de log.
Un bouton "Terminer les tâches" pour tuer tous les processus interdits après confirmation.
Un label pour afficher la liste des processus interdits.
Un bouton pour chaque processus interdit pour permettre de le tuer individuellement.
Boucle principale :
La boucle principale de Tkinter (root.mainloop()) est lancée pour afficher et gérer l'interface graphique.
Au lancement du programme, une interface graphique s'affiche avec tout les programmes lancés sur la machine qui ne devraient pas l'être car potentiellement dangereux.
Ici l'exemple est fait avec Word (WINWORD.EXE dans le gestionnaire des tâches)
Plusieurs choix s'offrent à nous :
1 - Appuyer sur "OK" -> Ne fait rien
2 - Appuyer sur "Terminer les tâches" -> Ferme tout les programmes malveillants
3-Appuyer sur les boutons "Arrêt" -> ferme les programmes uns-à-uns, au choix de l'utilisateur
Ce projet m'a apporté beaucoup en connaissances étant donné que ce fut un projet en groupe. J'ai pu acquérir les compétences de mes camarades et leur faire profiter des miennes en retour. J'ai beaucoup apprecié la méthode mise en place pour ce projet (GitHub) qui fût une découverte en profondeur pour moi.