Mise à jour Janvier 2025

Documentation technique

Préambule

Ce document présente l'ensemble des mesures de sécurité mises en place pour garantir l'intégrité, la confidentialité et la disponibilité des données de notre solution SaaS (Software as a Service) de réseau social d'entreprise. Il est structuré en neuf sections principales, chacune couvrant un aspect fondamental de la sécurité du produit:

Stack technique

Roomee est une plateforme de type SaaS (logiciel en tant que service) découpée en deux parties principales (Frontend et Backend) autour desquelles s'articulent un certain nombre d'outils et mécanismes offrant une expérience complète tant pour nos clients que pour nos équipes internes. Cette section détaille les éléments utilisés pour construire la plateforme Roomee.

Frontend (Interface utilisateur)

  • Dashboard : Vite (React) + TypeScript
  • Mobile : Flutter

Backend (Côté serveur)

  • Micro-services NodeJS + TypeScript

Base de données

  • MongoDB Atlas + Google Cloud Platform

La suite du document détaille l'ensemble des dispositifs de sécurité opérationnels, organisationnels et techniques.

Authentification & Gestion des Accès

L'accès à la plateforme et ses différentes fonctionnalités est garanti par authentification ainsi que l'utilisation de tokens générés par session utilisateur.

Méthodes d'authentification

  • Authentification via email et mot de passe sécurisé (hashé avec bcrypt)
  • Mobile : Activation des éléments biométriques natifs afin de sécuriser l'accès

Gestion des sessions

  • Génération de tokens (access et refresh) avec durée de vie limitée (respectivement 24h et 2 semaines)
  • Sessions protégées par cookies HttpOnly et Secure pour le dashboard
  • Sessions protégées par Secure Storage et biométrie pour l'application mobile

Contrôle d'accès basé sur les rôles

  • Rôles définis par utilisateurs et directement configurables par le client. Des rôles prédéfinis sont disponibles à la création du compte
  • Permissions granulaires sur les fonctionnalités (création, édition, suppression, accès aux contenus spécifiques, etc.)
Architecture & Isolation des Données

Architecture mono-tenant

  • Toutes les données sont stockées dans la même base de données
  • Les données sont répliquées sur au moins une base de réplication
  • Les données sont sauvegardées 1 fois par jour afin de pouvoir être restaurées en cas d'incident
  • Chaque sauvegarde reste disponible pendant 30 jours

Isolation des environnements

  • Environnements de développement, test et production totalement séparés
  • Données de test anonymisées ou fictives pour garantir la confidentialité

Cloisonnement de l'accès aux données

  • Utilisation de filtres stricts dans les requêtes pour assurer l'isolation des données
  • Accès aux données vérifié systématiquement via les tokens de sessions ainsi que les identifiants de l'organisation (identifiant du client + identifiant du workspace)
  • Aucun accès possible d'un client aux données d'un autre client

Infrastructure technique

Frontend :

  • L'accès au dashboard est soumis à authentification + permissions définies dans le rôle de l'utilisateur + filtres d'accès sur les données selon les attributions faites par le client
  • L'accès à l'application mobile (iOS & Android) est soumis à authentification + permissions définies dans le rôle de l'utilisateur + filtres d'accès sur les données selon les attributions faites par le client

Backend :

  • Toutes les requêtes d'APIs sont accessibles uniquement par authentification (API token + access refresh token)

Base de données :

  • MongoDB Atlas avec un utilisateur (au sens administrateur de base de données) dédié par environnement (Dev, Staging, Prod)
  • L'accès aux données ne peut se faire que par les APIs pour les utilisateurs de la plateforme et reste soumis aux règles précédemment citées
  • Chaque environnement dispose de sa propre base (pas de partage inter-environnements)
Chiffrement

Chiffrement en transit

  • Toutes les communications client-serveur sont protégées par TLS 1.2 ou supérieur
  • HSTS activé pour forcer l'usage du HTTPS

Chiffrement au repos

  • Données sensibles chiffrées en base de données avec AES-256
  • Sauvegardes également chiffrées pour garantir leur confidentialité

Gestion des secrets

  • Stockage sécurisé via un système de gestion des secrets (Infisical)
  • Rotation régulière des clés sensibles pour limiter les risques en cas de compromission
Sécurité des APIs

Authentification des appels API

  • Utilisation combinée de :
    • API token (lié au compte client)
    • User access token (JWT)
  • Vérification centralisée et obligatoire via un middleware d'authentification

Validation des entrées

  • Les données saisies par les utilisateurs sont vérifiées et « sanitizées » afin de s'assurer de leur cohérence et intégrité

CORS & Headers de sécurité

  • Politique CORS restrictive
  • Utilisation des headers spécifiques pour sécuriser les échanges client-serveur

Gestion des environnements

  • Isolation stricte des APIs, tokens et journaux par environnement pour éviter toute contamination
Audit & Traçabilité

Journalisation

  • Logs d'activité et de sécurité conservés et accessibles aux administrateurs
  • Filtres possibles par utilisateur, action, date pour faciliter l'analyse

Détection d'anomalies

  • Surveillance des tentatives de brute force, multi-login suspects
  • Système d'alerte configuré pour les administrateurs en cas d'activité suspecte
Protection contre les Menaces

Sécurité des formulaires

  • CSRF Token intégré
  • Prévention XSS via encodage systématique

Anti-DDoS & pare-feu applicatif

  • Protection par Cloudflare

Surveillance active

  • Scans de sécurité continus pour détecter les vulnérabilités
  • Tests de pénétration planifiés régulièrement
Infrastructure & Hébergement

Localisation des données

  • Les serveurs et données sont hébergés au plus proche de nos clients. Pour les clients basés en Europe, l'hébergement est entièrement établi sur des serveurs en Europe (Londres, Paris ou Francfort) respectant les normes RGPD

Redondance & sauvegardes

  • Sauvegardes quotidiennes chiffrées
  • Tests de restauration réguliers pour s'assurer de l'intégrité des sauvegardes
  • Mécanisme de scaling horizontal et/ou vertical à la demande en cas de forte affluence sur la plateforme

Maintenance & mises à jour

  • Les dépendances de nos développements sont mises à jour régulièrement pour corriger les vulnérabilités connues

Déploiement CI/CD

  • Mobile : GitHub + Codemagic
  • Dashboard Web : GitHub + Vercel
  • Backend : GitHub + Koyeb

Monitoring & résilience

  • Les APIs sont monitorées via les outils fournis par Koyeb et Uptime Kuma pour leur disponibilité
  • Les erreurs sont gérées via Sentry
  • Les journaux d'application (Dashboard + Mobile) sont gérés par Google Cloud Logs + Amplitude
Conformité & Certifications

RGPD

  • Portail de gestion des droits pour les utilisateurs finaux
  • DPO dédié (Délégué à la Protection des Données)
  • Registre des traitements accessible conformément à la réglementation
  • Pour avoir plus d'information sur notre politique RGPD cliquez ici
Gouvernance des Accès et Supervision

Principes de gouvernance

  • Accès au backoffice et à l'infrastructure limité aux personnes habilitées (équipe restreinte identifiée au sein de Roomee)

Supervision des accès sensibles

  • Chaque accès administratif est journalisé pour assurer la traçabilité
  • Double validation pour les actions critiques (ex : suppression de compte)

Cycle de vie des accès

  • Création et suppression automatique des accès liés à un onboarding/offboarding
  • Revue régulière des droits par l'équipe sécurité pour éviter l'accumulation de privilèges inappropriés