Skip to content

Kamga-Roland/CyberTrust

Repository files navigation

CyberTrust

Plateforme de supervision et de gestion de crise cyber, développée dans le cadre du projet SIRIUS à l'EPISEN (école d'ingénieur de l'université Paris-Est Créteil).

Équipe

  • KAMGA Roland
  • LAFAGNE Ulysse
  • MASSERON Alexandre

Architecture

cybertrust-business-dto   — DTOs partagés (entités, AuthContext, enums)
cybertrust-backend        — Serveur WebSocket Java (port 45678)
cybertrust-cli            — Client CLI de test
cybertrust-front          — Interface web (HTML/JS vanilla + Tailwind CSS)

Le frontend communique exclusivement via WebSocket avec le backend. Chaque page ouvre une connexion WebSocket persistante et envoie des messages JSON { action, requestId, body }.

Prérequis

Composant Version
Java 21
Maven 3.8+
MySQL 8+

Installation

Base de données

-- Appliquer le schéma complet
source Modelisation/MPD_CybertrustDB.sql

Backend

# Configurer la connexion DB
# cybertrust-backend/src/main/resources/cybertrust-server.properties
listeningPort=45678
db.url=jdbc:mysql://<host>:3306/cybertrustdb
db.user=cybertrust
db.password=your-password

# Compiler et lancer
mvn clean install -pl cybertrust-business-dto
mvn clean package -pl cybertrust-backend
java -jar cybertrust-backend/target/cybertrust-backend-*.jar

Frontend

Le frontend est servi statiquement. En développement :

# Avec le serveur inclus dans cybertrust-front, ou tout serveur HTTP statique
# Exemple avec Python :
cd cybertrust-front
python3 -m http.server 3000

Accès : http://127.0.0.1:3000/cybertrust-front/pages/auth/login.html

Le frontend se connecte au backend via ws://172.31.250.204:45678 (configurable dans cybertrust-front/js/core/sockethandler.js).

Modules backend

Service Actions principales
AUTH LOGIN, ME
USER FIND_ACTIVE_BY_COMPANY, FIND_DETAIL_BY_ID, SAVE, UPDATE, UPDATE_STATUS
COMPANY FIND_ALL, FIND_BY_ID, SAVE, UPDATE
ROLE FIND_ALL, FIND_BY_ID, UPDATE
CRISIS_CELL FIND_BY_COMPANY, FIND_BY_ID, SAVE, UPDATE, ADD_MEMBER, REMOVE_MEMBER
CRISIS GET_ALL, GET_BY_ID, SAVE, UPDATE_STATUS, CLASSIFY
CRISIS_TYPE GET_ALL, GET_BY_ID, SAVE, UPDATE
CRISIS_LOG GET_BY_CRISIS, ADD
TARGETS FIND_BY_CELL, FIND_BY_ID, SAVE, UPDATE, DEACTIVATE, DELETE
VARIABLE GET_BY_TARGET, CREATE, UPDATE_STATUS
MVARIABLE GET_BY_TARGET, SAVE, UPDATE, SET_THRESHOLD, DEACTIVATE, DELETE
METRIC INGEST
ALERT GET_HISTORY
STATS GET_OVERVIEW, GET_BY_TARGET
PLAYBOOK GET_ALL, GET_BY_ID, SAVE, UPDATE, UPDATE_STATUS, GET_RECOMMENDATIONS, RECORD_USAGE, GET_USAGE
REPORT GENERATE, GET_ALL, GET_BY_ID

Rôles

Rôle Droits
superadmin Accès complet toutes companies
admin Gestion utilisateurs et cellules de sa company
responsable Lecture + écriture sur ses cellules (cibles, métriques, seuils)
analyst Lecture + gestion de crise sur ses cellules
viewer Lecture seule

Structure du frontend

pages/
  auth/           — Login, set-password
  iam/            — Gestion utilisateurs, rôles, invitations
  crisisCell/     — Création et gestion des cellules de crise
  monitoring/     — Dashboard temps réel, détail cible, détail crise
  targets/        — Liste et détail des cibles
  playbooks/      — Bibliothèque et édition des playbooks
  reports/        — Génération et consultation des rapports

About

Application de gestion de crise cyber avec monitoring, détection de crise, solutions automatisées proposées et reporting. Intérêt particuliers pour les notions de PRA/PCA.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors