{"id":21452664,"url":"https://github.com/nmrr/datamining-pshitt","last_synced_at":"2025-03-17T02:44:20.955Z","repository":{"id":152609325,"uuid":"113888674","full_name":"nmrr/datamining-pshitt","owner":"nmrr","description":"Logiciel permettant la visualisation (avec D3.js et Linkurious.js) et l'analyse de données obtenues à partir d'un pot de miel : pshitt (faux serveur SSH)","archived":false,"fork":false,"pushed_at":"2022-12-23T17:34:01.000Z","size":6654,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-23T12:32:16.480Z","etag":null,"topics":["d3js","datamining","datavisualisation","dataviz","honeypot"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nmrr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-11T17:32:29.000Z","updated_at":"2023-01-22T07:36:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"38a3af65-3778-4fe1-8c5e-18b6982c96f7","html_url":"https://github.com/nmrr/datamining-pshitt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmrr%2Fdatamining-pshitt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmrr%2Fdatamining-pshitt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmrr%2Fdatamining-pshitt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmrr%2Fdatamining-pshitt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nmrr","download_url":"https://codeload.github.com/nmrr/datamining-pshitt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243965325,"owners_count":20375911,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["d3js","datamining","datavisualisation","dataviz","honeypot"],"created_at":"2024-11-23T04:31:16.017Z","updated_at":"2025-03-17T02:44:20.934Z","avatar_url":"https://github.com/nmrr.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# datamining-pshitt\n\n\u003e Je remercie l'équipe du Cyber Hacking Lab (Nabil Bouzerna et Flavien Quesnel) de l'IRT SystemX pour avoir Inspiré ces travaux de R\u0026D ainsi que Babiga Birregah, mon tuteur de projet côté UTT\n\nCe projet a été réalisé en collaboration entre [**l'UTT (Université de technologie de Troyes)**](https://www.utt.fr/) et [**l'IRT SystemX**](https://www.irt-systemx.fr/) dans le cadre d'une TX (projet étudiant encadré) au printemps 2017. L'objectif de ce projet était d'analyser des logs provenant d'un **pot de miel** (honeypot) : un faux serveur SSH (pshitt) est installé sur un serveur et ce dernier répond systèmatiquement en cas de tentative de connexion que les identifiants tentés sont incorrects. Les informations des tentatives de connexion sont sauvegardées pour y être analysées.\n\nExemple d'attaque :\n\n#####  {\"username\": \"usr\", \"try\": 1, \"src_port\": 59880, \"software_version\": \"libssh2_1.4.3\", \"timestamp\": \"2017-08-01T00:01:42.666293\", \"src_ip\": \"138.197.0.147\", \"mac\": \"hmac-sha1\", \"cipher\": \"aes128-ctr\", \"password\": \"usr\"}\n\nDans cette attaque, l'attaquant a essayé de se connecter avec l'identifiant **usr** et le mot de passe **usr** le **01/08/2017** à **01H42**. Cette attaque vient des **USA**, cette information a été obtenue à partir de son adresse IP.\n\nDans un premier temps, l'objectif a été de visualiser ces données. **D3.js** a été utilisé pour visualiser les données de manière générale (représentation des attaquants sur une carte géographique, statistiques sur les usernames/passwords les plus utilisés, etc). \n\nA l'aide de **Linkurious.js** (fork de sigma.js), ces données ont été représentées sous la forme de graphes petits-mondes : des corrélations entre les attaques et leur provenance sont réalisées.\n\nDans un deuxième temps, un outil de visualisation des nouvelles attaques a été créé. Cet outil permet de déterminer les nouvelles attaques qui, jusqu'à une certaine date n'ont jamais été tentées. Cela permet de déterminer les nouvelles cibles du moment comme un objet connecté vulnérable par exemple.\n\n-----------------------------------\n\n### Installation du logiciel\n\n#### Prérequis \n\nCertains logiciels sont nécessaires :  **Node.js**, **node-gyp**, **build-essential** et **rapidjson-dev**\n\nPour installer **Node.js** : https://nodejs.org/en/download/\n\n**Attention !** Ce projet n'a pas été mis à jour de puis longtemps. La dernière version de **Node.js** compatible est la version 10, qui est obsolète depuis début 2021 ! Des changements ont été effectuées concernant les modules compilés, cela explique l'incompatibilité avec les versions supérieures.\n\nInstaller **node-gyp**  de manière globale : \n```\nsudo npm install node-gyp -g\n```\n\nInstaller l'environnement de développement : **sudo apt install build-essential rapidjson-dev** (pour une distribution basée sur Debian)\n\n#### Préparation du logiciel\n\nCloner le repo : \n```\ngit clone https://github.com/nmrr/datamining-pshitt.git\n```\n\nSe placer dans le dossier **datamining-pshitt**\n\nInstaller les dépendances : \n```\nnpm install nan express\n```\n\nCompiler le projet :\n```\nnode-gyp configure build\n```\n\nLancer le logiciel :\n```\nnode script.js\n```\n\nOuvrir le navigateur Internet et se rendre à l'adresse suivante : **http://127.0.0.1:8888**\n\n-----------------------------------\n\nUn dataset d'une semaine de récolte de données est présent dans le dossier **ressources**.\n\n-----------------------------------\n\n### Galerie\n\nVisualisation du nombre d'attaques par jour entre 2017 et 2022 :\n\n\u003cimg src=\"https://github.com/nmrr/datamining-pshitt/blob/master/img/pshitt1.png\" width=75% height=75%\u003e\n\nVisualisation des attaquants par pays :\n\n\u003cimg src=\"https://github.com/nmrr/datamining-pshitt/blob/master/img/pshitt2.png\" width=75% height=75%\u003e\n\nExemple de graphe petit-monde généré par l'application :\n\n\u003cimg src=\"https://github.com/nmrr/datamining-pshitt/blob/master/img/pshitt3.png\" width=75% height=75%\u003e\n\nExemple de nouveaux noms d'utilisateur tentés dernièrement :\n\n\u003cimg src=\"https://github.com/nmrr/datamining-pshitt/blob/master/img/pshitt4.png\" width=75% height=75%\u003e\n\nApparition du couple **pi/raspberry** (identifiants par défaut du serveur SSH du **Raspberry Pi**) dans les tentatives :\n\n\u003cimg src=\"https://github.com/nmrr/datamining-pshitt/blob/master/img/pshitt5.png\" width=75% height=75%\u003e\n\n### Changelog\n\n**09/07/2018** : ajout de la visualisation des IP dans la partie **Visualisation des attaques par pays**\n\n**09/03/2019** : échappement des caractères dans la recherche, ajout d’une limite lors de la génération des graphes (20k nœuds et 50k liens), modifications diverses dans les formulaires\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmrr%2Fdatamining-pshitt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnmrr%2Fdatamining-pshitt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmrr%2Fdatamining-pshitt/lists"}