CAW1 2019 Projet d'Anaël MOISSIARD et William SCHMITT

De Ensiwiki
Révision de 9 juin 2019 à 16:08 par Schmittw (discussion | contributions) (Modélisation)

Aller à : navigation, rechercher
Project schedule.png
Titre du projet Winnie
Cadre Projet Web (2AA)
Page principale CAW1_Demonstration_Realisation

Équipe Anaël Moissiard, William Schmitt
Encadrants Sébastien Viardot


Description

Winnie aime le miel. Winnie est un gestionnaire de honeypots, ces serveurs volontairement laissés ouverts sur internet avec peu ou pas de moyens de sécurité. Ce service web permet de gérer des honeypots à distance, d'agréger leurs logs afin, par exemple, d'identifier les tendances dans les attaques du moment.

Technologies utilisées

Backend

  • Node.js + Express.js
  • MongoDB
  • Mongoose

Front end

  • Angular 7
  • Materialize

Choix techniques

Architecture des noeuds Winnie

Winnie se compose de 3 parties à proprement parler :

  • Un serveur principal pour la centralisation des données retournées par les honeypots, l'API et le service de la partie client
  • Une application angular pour les interactions utilisateur
  • Un serveur léger permettant de retourner les données de différents honeypots vers le serveur principal

API

L'API a été décrite dans un fichier yaml selon les modèles d'OpenAPI, de façon à pouvoir générer de la documentation à l'aide de swagger.

API externe

En guise de preuve de concept, Winnie peut lancer des honeypots http sur la Google Cloud Platform. Google met à disposition une librairie javascript pour gérer les machines virtuelles.

Les services d'intégration continue génèrent automatiquement une tarball contenant le serveur léger, qui est téléchargée par la machine virtuelle après avoir démarré. Ce serveur léger récupère dans les métadonnées du projet Google Compute Engine associé l'URL du serveur maître, auquel des rapports périodiques (par défaut toutes les 5 minutes) sont envoyés.

Permissions

Winnie permet une gestion de groupes d'utilisateurs, de façon à pouvoir partager les données remontées par un serveur léger, mais également de différencier les utilisateurs lambda des administrateurs. Un utilisateur appartient et est administrateur du groupe portant son nom, et peut créer des groupes supplémentaires.

Modélisation

Modèle de données

Winnie.png


Diagrammes de transition

Winnie sequence de connexion.png

Fichier:Fichier:Winnie sequence groupe.png

Séquence de création de honeypot.png

Séquence d'inscription.png

Séquence de remontée des logs.png

Cas d'utilisation

Invité

  • Inscription
    100 %

Utilisateur

  • Création/Désactivation/Suppression d'un honeypot selon les services associés
    100 %
  • Consultation des honeypots attachés aux groupes de l'utilisateur
    100 %
  • Changement d'informations personnelles
    100 %
  • Création/Suppression d'un groupe
    80 %
  • Rejoindre/Quitter un groupe
    100 %

Administrateur général

  • Toutes les fonctionnalités d'un utilisateur classique
  • Suppression de tous les utilisateurs
    100 %
  • Suppression de tous les groupes
    80 %
  • Consultation/Désactivation/Suppression de tous les honeypots
    100 %

Honeypot

  • Insère des données (logs par exemple) dans l'entrée correspondant à son identifiant
    100 %