Pour installer ce projet il est nécessaire d'installer Python et pip. Ensuite il faut installer les dépendances avec les commandes suivantes :
pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install flask
pip install vonage
pip install tabulate
pip install -U scikit-learn
pip install keras
pip install numpy
pip install pandas
Si la base de données est corrompue il est possible de la récupérer au lien suivant : Drive
Il faut ensuite la placer dans le dossier "/server/db" en remplaçant le fichier "bdd.db"
Pour que le système de notification par SMS soit fonctionnel il faut créer un compte Vonage et récupérer la 'key' et le 'secret' associé à votre compte. Il faut ensuite les indiquer au début du fichier 'app.py' dans les variables VONAGE_KEY et VONAGE_SECRET.
Pour que le système de notification par mail soit fonctionnel, il faut modifier la variable 'SENDER' dans le début du fichier 'mail.py' situé dans le dossier '/server/notifications/' pour y mettre votre email Gmail. Ensuite, la première fois qu'un mail sera envoyé il sera demandé de se connecter à ce compte Gmail.
Pour lancer le serveur web lancez la commande suivante :
flask run
Ensuite vous pourrez accéder à l'interface web à l'adresse 127.0.0.1:5000
Voici les comptes par défaut disponible :
Nom d'utilisateur | Mot de passe | Est administrateur |
---|---|---|
user1 |
test |
✓ |
Pierre |
test |
✓ |
Olivier |
test |
☐ |
Michel |
test |
☐ |
Jacque |
test |
☐ |
Thomas |
test |
☐ |
Théo |
test |
☐ |
Didier |
test |
☐ |
Alexandre |
test |
☐ |
François |
test |
✓ |
Un jeu de données de test est également accessible en décompressant le fichier 'donnees.zip'.
- Page d'enregistrement et de connexion pour les utilisateurs non connectés
- Possibilité d'accéder aux informations de votre profil une fois connecté
- Page pour changer les informations associées à votre compte
- Page administrateur permettant de modifier les informations des différents utilisateurs
- Chaque objet a un propriétaire associé qui choisi qui a le droit d'intéragir avec son objet
- Chaque utilisateur a le droit de rajouter de nouveaux objets
- Il est possible de modifier le propriétaire d'un objet uniquement si on est son propriétaire actuel ou si on est administrateur
- L'utilisateur peut définir les méthodes de notifications préférées pour chaque objet auquel il a accès
- L'utilisateur ne peut soumettre des données pour un objet que si il a le droit d'intéragir avec
- Chaque objet possède un historique des attaques détectées récentes
- Il est possible d'analyser des données énergétiques et réseau pour un objet
- Les données sont prétraitées et ensuite analysées par un modèle de machine learning afin de détecter le type de comportement
- Le résultat est ensuite affiché à l'utilisateur qui a analysé les données
- En cas de comportement anormal (+ de 5% de comportement anormal) les utilisateurs associés à l'objet sont notifiés
- Alexis Vandemoortele
- Erwan Renault
- Georges-Pascal Kossi BINESSI
- Théo Boulogne
- Théo Dubois
- Thomas Deruy