Aller au contenu
Dossier projet
Cybersécurité · gestion de crise

OpenCrisis

Gestion de crise cyber en temps réel : cellule directionnelle et cellule opérationnelle réunies dans un même outil auto-hébergé.

Livré

Contexte

Lors d'une cyberattaque, la cellule de direction et la cellule opérationnelle doivent partager la même information en temps réel, tracer chaque décision et respecter des délais légaux, comme la notification à la CNIL sous 72 heures.

Le défi

Concevoir, en équipe, un outil auto-hébergé de gestion de crise capable de suivre plusieurs incidents en parallèle, avec des droits fins par rôle, une traçabilité complète et une intégration au renseignement sur les menaces (CTI).

Approche

  • Sélecteur d'incident façon « workspace » : chaque crise a son espace isolé.
  • Main courante séparée Direction / Opérations, timeline avec décompte légal de 72 h, documents et annuaire.
  • API GraphQL avec abonnements temps réel (Redis pub/sub) et authentification JWT avec contrôle d'accès par rôle.
  • Intégration OpenCTI pour les indicateurs de compromission (IoC) et l'export STIX.
  • Infrastructure sur 3 VM et CI GitLab de sécurité (gitleaks, Trivy).

Résultats

Projet livré et soutenu en juin 2026 : les 7 phases du plan et le sprint de sécurité sont terminés, et l'application tourne sur son infrastructure de 3 machines virtuelles. Des améliorations sont prévues pour les prochaines versions : sauvegardes chiffrées, double authentification, certificats reconnus et analyse antivirus des fichiers déposés.

Stack technique

ReactTypeScriptTailwindGraphQLApolloExpressPrismaPostgreSQLRedisDockerOpenCTI

Architecture

Schéma d'architecture de la plateforme.

← OpenCrisisStyve Nematcha · Architecture
Cybersécurité · gestion de crise

OpenCrisis

Gestion de crise cyber en temps réel : cellule directionnelle et cellule opérationnelle réunies dans un même outil auto-hébergé.

Interfaces utilisateurs

  • Cellule directionnelleDécisions · main courante
  • Cellule opérationnelleActions · timeline
  • AdministrationRôles · permissions · audit

Frontend

  • React 18 + ViteTypeScript
  • Tailwind + shadcn/uiDesign system
  • Apollo + ZustandClient GraphQL · état

Backend

  • Node 20 + ExpressApollo Server 4
  • Abonnements GraphQLTemps réel WebSocket
  • JWT + refreshDroits par rôle

Données

  • PostgreSQL 16Prisma 5
  • RedisPub/sub

Infrastructure (3 VM)

  • VM1 · ApplicationDocker Compose · Nginx
  • VM2 · OpenCTIIoC · STIX
  • VM3 · Uptime KumaSupervision

CI sécurité

  • GitLab CILint · build · tests
  • gitleaks + TrivySecrets · vulnérabilités
Ouvrir le diagramme en plein écran