https://github.com/nmrr/datamining-pshitt
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)
https://github.com/nmrr/datamining-pshitt
d3js datamining datavisualisation dataviz honeypot
Last synced: 2 months ago
JSON representation
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)
- Host: GitHub
- URL: https://github.com/nmrr/datamining-pshitt
- Owner: nmrr
- License: mit
- Created: 2017-12-11T17:32:29.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-23T17:34:01.000Z (over 2 years ago)
- Last Synced: 2025-01-23T12:32:16.480Z (4 months ago)
- Topics: d3js, datamining, datavisualisation, dataviz, honeypot
- Language: JavaScript
- Homepage:
- Size: 6.35 MB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# datamining-pshitt
> Je remercie l'équipe du Cyber Hacking Lab (Nabil Bouzerna et Flavien Quesnel) de l'IRT SystemX pour avoir Inspiré ces travaux de R&D ainsi que Babiga Birregah, mon tuteur de projet côté UTT
Ce 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.
Exemple d'attaque :
##### {"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"}
Dans 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.
Dans 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).
A 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.
Dans 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.
-----------------------------------
### Installation du logiciel
#### Prérequis
Certains logiciels sont nécessaires : **Node.js**, **node-gyp**, **build-essential** et **rapidjson-dev**
Pour installer **Node.js** : https://nodejs.org/en/download/
**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.
Installer **node-gyp** de manière globale :
```
sudo npm install node-gyp -g
```Installer l'environnement de développement : **sudo apt install build-essential rapidjson-dev** (pour une distribution basée sur Debian)
#### Préparation du logiciel
Cloner le repo :
```
git clone https://github.com/nmrr/datamining-pshitt.git
```Se placer dans le dossier **datamining-pshitt**
Installer les dépendances :
```
npm install nan express
```Compiler le projet :
```
node-gyp configure build
```Lancer le logiciel :
```
node script.js
```Ouvrir le navigateur Internet et se rendre à l'adresse suivante : **http://127.0.0.1:8888**
-----------------------------------
Un dataset d'une semaine de récolte de données est présent dans le dossier **ressources**.
-----------------------------------
### Galerie
Visualisation du nombre d'attaques par jour entre 2017 et 2022 :
Visualisation des attaquants par pays :
Exemple de graphe petit-monde généré par l'application :
Exemple de nouveaux noms d'utilisateur tentés dernièrement :
Apparition du couple **pi/raspberry** (identifiants par défaut du serveur SSH du **Raspberry Pi**) dans les tentatives :
### Changelog
**09/07/2018** : ajout de la visualisation des IP dans la partie **Visualisation des attaques par pays**
**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