GithubHelp home page GithubHelp logo

dulalbert / detection-malware-ml Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 95.89 MB

Projet S5-S6 permettant d'analyser la présence d'un malware de cryptojacking à l'aide d'un XGBoost.

Python 0.88% Jupyter Notebook 99.12%

detection-malware-ml's Introduction

cryptojacking

Description

Ce projet permet de détécter la présence de malware de cryptojacking, une attaque de plus en plus fréquente sur des systèms peu protégés.

Pour plus d'informations, veuillez-vous referez à POSTER CRYPTOJACKING.pdf de ce repository.

Installation

Installer les dépendances :

pip install -r requirements.txt

Sur Windows, on peut installer win10toast pour avoir une alerte plus esthétique.

Comment utiliser

python3 run.py --time_sleep 1 --timeout 20

Variable globale pouvant être changées :

  • WINDOW : la fenêtre surlaquelle on effectue les moyennes et écart-types mobiles
  • COUNT_SNIFF : le nombre de paquet sniffés sur lesquels on applique le XGBoost
  • CPU_AVERAGE_TIME : la durée sur laquelle étudie le pourcentage d'utilisation du CPU
  • CPU_ALERT_PERCENT : le pourcentage surprenant d'utilisation du CPU
  • NETWORK_ALERT_PERCENT : on compare le nombre de paquets ayant une probabilité supérieur à ce pourcentage et intférieue après le XGBoost et s'il y a une majorité de paquet ayant une probabilité supérieur, on alerte l'utilisateur.

Pour rajouter des données dans le dataset d'entrainement et ré-entrainer le modèle :

  • Lancer du minage avec XMRig (optionel)
  • Lancer le sniff du réseau avec Wireshark
  • Exporter en csv dans le dossier network_sniff avec minage dans le nom si il y a du minage et calme sinon
  • Lancer train_xgboost.py

Le model a été entrainé à partir de donnée snifées par Wireshark

Roadmap

  • Rajouter des données dans le dataset => voir Interrogations
  • Essayer de créer un dataset avec plusieurs ordinateurs Windows avec Wireshark à utiliser en mode administrateur.
  • Réécrire analyse_cpu ou le remplacer

Interrogations

Faut-il réentrainer le modèle avec des inputs de l'utilisateur.

Avantages :

  • Le modèle s'améliorerait avec le temps donc moins en moins de faux positif.

Désavantages :

  • Les classes étaient équilibrées au début, est-ce que déséquilibrer les classes ne diminuerait pas le résultat du XGBoost.
  • Les hyperparamètres ont été choisis par gridsearch sur le dataset d'entrainement, faut-il refaire un GridSearch à chaque entraînement ?
  • Pas eu de cours sur la mise en production de modèles.

Génération du dataset

  • Lancer la machine virtuelle
  • Télécharger XMRig
  • Sur le site web d’XMRIG aller dans Wizard, choisir Pool + Monnaie
  • À l’aide du terminal, se déplacer dans le dossier téléchargement et ouvrir le tar.gz de xmrig
  • Se déplacer dans le dossier Xmrig et avec ls vérifier qu’il y a bien 3 fichiers
  • Copier la ligne de commande de la dernière page du Wizard dans l’onglet Linux
  • Fermer Firefox
  • Lancer l’enregistrement Wireshark
  • Coller la ligne de commande de l’étape 6 dans le terminal et lancer le minage
  • Arrêter le minage + Wireshark
  • Enregistrer 2 fois : une en format pngcap et l’autre sous format csv avec comme nom :
    • Date_minage_pool_monnaie_
    • Date_traffic_typedecontenue si c’est du contenu bénin Uploader dans le drive et dans le gitlab

Auteurs and Remerciements

Auteurs

  • Albert Dulout

  • Marc Serre

  • Tianrun Zhang

  • Elias Bey

Remerciements

  • Francoise Sailhan
  • Sandrine Vaton
  • Santiago Ruano Rincón

detection-malware-ml's People

Contributors

lauat12138 avatar dulalbert avatar marc2serre avatar

Watchers

Kostas Georgiou avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.