Affluences - Plan d'Assurance Sécurité

Affluences - Plan d'Assurance Sécurité

Objet du document

Chez Affluences, la sécurité des données que nous hébergeons est une préoccupation permanente. Une part importante des activités de conception, développement et test d’Affluences est dédiée à la sécurisation des systèmes édités. Ce document décrit les dispositions qu’Affluences met en œuvre pour répondre aux exigences de sécurité attendues par ses clients.

Description du système

Affluences développe et distribue une solution digitale transverse (web et mobile) visant à améliorer l’accueil des usagers en communiquant sur l'occupation ou l'attente en temps réel.
Un système de réservation est également disponible.

Via l'utilisation des produits Affluences, certaines informations qualitatives et quantitatives (nécessaires au bon fonctionnement de l'application) peuvent être entrées, sauvegardées et hébergées sur le système. Affluences met en oeuvre une série de dispositions techniques et organisationnelles pour garantir leur sécurité.

Rappel des exigences

Les dispositifs de sécurisation de la solution Affluences répondent aux 3 grandes exigences suivantes 

  • Confidentialité des données : Impossibilité par des tiers non autorisés d’intercepter et lire les données hébergées et échangées ;
  • Intégrité des données : Impossibilité par des tiers non autorisés d’altérer ou de supprimer les données hébergées ;
  • Disponibilité des données : Garantie de l’accès aux données par les personnes autorisées.

Pour garantir la conformité à ces exigences de sécurité, Affluences prévoit :

  • Des solutions techniques (conception, développement et configuration) de prévention contre les menaces et vulnérabilités ;
  • Des routines de maintien à niveau de la sécurisation préventive ;
  • En cas d’incident, des procédures correctives.

Solutions techniques préventives

Vue d’ensemble

Pour atteindre ces performances, Affluences implémente des solutions de sécurisation des données hébergées dans les trois domaines suivants :

  • Sécurité applicative : dispositions techniques spécifiques à la sécurisation de l’application
  • Sécurité de communication : sécurisation de l’échange de données entre le navigateur de l’utilisateur et le serveur d’hébergement des données
  • Sécurité d’hébergement des données : dispositions techniques spécifiques à la sécurisation des serveurs d’hébergement des données et de leurs ports d’entrée

Sécurité applicative

Les solutions digitales d’Affluences intègrent des dispositions relatives à la sécurité applicative :

  • Coding security standards (bonnes pratiques de conception et développement visant à minimiser les vulnérabilités)
  • Couverture des failles applicatives courantes
  • Sécurisation du système d’authentification
  • Gestion des permissions
  • Hachage des mots de passe

Coding security standards

Les bonnes pratiques de conception et de développement visant à minimiser les vulnérabilités applicatives sont les suivantes :

  • Validation des entrées : Toute entrée utilisateur est soumise à des règles de validation pour garantir la cohérence et la non-nocivité des données envoyées avant toute interaction avec la base de données.
  • Clean coding : Les bonnes pratiques du clean coding sont systématiquement mises en œuvres pour garantir la maintenabilité et la sécurité du système, en particulier les design patterns (MVC, adapteur, médiateur, décorateur, façade, etc.) et les designs principles (Single responsibility principles, Don't Repeat Yourself, etc.).
  • Automatisation des tests unitaires : Toute mise à jour de l’application est accompagnée de plans de tests automatisés comportant des centaines de « Test Cases » afin d’assurer une couverture maximale des scénarios d'exécution (incluant les tests de cas limites).
  • Error logging : Tout bug en production est automatiquement enregistré dans un log dédié afin d’assurer l'amélioration continue de la robustesse du système.
  • Contraintes d'intégrité : Dans le cadre d’une architecture en base de données relationnel, le modèle logique de données (MLD) est contrôlé par un maximum de contraintes d'intégrité (unicité, not null, check, référence, pk, fk, etc.) pour garantir la cohérence des données.
  • Déploiement automatisé : Tout process de déploiement est automatisé dans un script dédié dans lequel bonnes pratiques d'administration de l'environnement de production sont capitalisées en continue (altération des modèles de données, configuration des variables d'environnement, installation des dépendances, mise à jour des certificats SSL, etc.).

Couverture des failles applicatives courantes

Le système intègre des solutions permettant de contrer les failles applicatives courantes, dont :

  • XSS (Cross-site Scripting) : Chaque entrée utilisateur est soumise à des règles de pré-traitement permettant l'échappement des balises afin de neutraliser les attaques d'injection de contenu.
  • CSRF (Cross-Site Request Forgery) : Tous les formulaires mettent en œuvre des jetons de validité afin de garantir qu'un attaquant ne pourra pas exploiter les permissions d'un utilisateur authentifié pour exécuter des actions à l’insu de ce dernier via un site web tiers.
  • Injection SQL : Toute communication avec la base de données passe par L'ORM Django. Le code SQL produit par ce module échappe proprement tout paramètre pouvant être contrôlé par un utilisateur malveillant.
  • Fixation de session : Les identifiants des sessions sont systématiquement associés à des cookies afin de tirer bénéfice du standard W3C « same-origin policy » (interdiction par les navigateurs d'accéder à un cookie par un site web tiers).

Sécurisation du système d’authentification

Le système d’authentification du système se base sur le module d'authentification Passport (mis à jour à chaque nouvelle release, voir Routines de mises à jour technologiques).

Ce système d’authentification est enrichi de règles de renforcement de la sécurité (validation des mots de passe, attaque force brute, notification de connexions, etc.).

Gestion des permissions

Les droits d'accès aux données sont attribués à chaque utilisateur authentifié selon le projet auquel il participe en prenant en compte son rôle dans le projet (groupe créativité, incubation, exécution, administration, reporting).

Les règles de gestion des permissions sont doublement vérifiées en front et en back et sont incluses aux plans de test (voir Coding security standards).

Hachage des mots de passe

Tous les mots de passe sont soumis à une fonction de hachage (fonction de hachage SHA256 ou bcrypt) et aucun mot de passe n’est stocké en clair dans la base de données.

Sécurité de communication

Protocole utilisé

Les échanges de données entre le navigateur de l’utilisateur et le serveur web sont chiffrés via la mise en place d'un protocole HTTPS utilisant une fonction de chiffrement AES 256.

Certificat

Le certificat HTTPS est fourni par l'organisme « Let's Encrypt ».

Sécurité des serveurs

Certifications

L’hébergement des données est sous-traité à l’entreprise française OVH, garantissant une infrastructure certifiée ISO27001, SOC I type 2 (SSAE 16 et ISAE 3402) et SOC 2 type II.

Territorialité

Toute donnée est hébergée sur des serveurs sécurisés situés à Roubaix. OVH fournit une attestation de territorialité à la demande.

Gestion des ports d’entrée

Les ports ouverts sont formellement identifiés et documentés. Chaque port est associé à un service ayant une fonction précise listée ci-dessous. Chaque port est soumis à des règles strictes de paramétrage mettant en priorité la sécurité et suivant les bonnes pratiques comme défini par les documentations officielles.

Port 443 : correspond au protocole HTTPS

Port 80 : correspond au protocole HTTP. Il est utilisé pour rediriger de manière automatique vers le port 443 afin d’assurer un échange sécurisé.

Port 22 : est utilisé à la fois pour l’administration en invite de commande via le protocole SSH et pour l'échange de fichiers à travers le protocole SFTP. Pour ne pas multiplier le nombre de ports ouverts, le port 21 dédié au protocole FTP est maintenu fermé.

Tout autre port d’accès au serveur est fermé par des règles IPTABLES (pare-feu). Tout processus associé à un port ouvert est arrêté s'il n’a pas de rôle utile au bon fonctionnement du système.

Protection DDoS

Les serveurs mis en œuvre bénéficient nativement de la protection aux attaques DDoS.

Journalisation des événements

Tout événement au niveau de chacun des points d’accès est archivé par un système de journalisation. Voir Routines de surveillance.

Sauvegardes

Les serveurs font l’objet d’un plan de sauvegardes régulières. Voir Routines de sauvegarde.

Routines préventives

Affluences a désigné un responsable de la sécurité : Micaël Pais Novo, micael.paisnovo@affluences.com.
Cette personne est l’interlocuteur privilégié de nos clients pour toute question de sécurité.

Affluences met en œuvre un plan de maintien à niveau de la sécurisation préventive à travers :

  • Les routines de mises à jour technologiques
  • Les routines de sauvegarde des données hébergées
  • Les routines de surveillance des accès serveurs
Routines de mises à jour technologiques

Les outils suivants sont soumis à des mises à jour régulières pour bénéficier des derniers correctifs de sécurité :

  • Linux
  • Nginx
  • Apache
  • Python
  • Passport
  • Gunicorn
  • Angular
  • Node.JS
  • MySQL
  • MongoDB
Routines de sauvegarde

Un plan de sauvegarde des données hébergées est mis en œuvre à 2 niveaux :

  • Sauvegarde hebdomadaire de la base de données sur un serveur indépendant afin de restaurer l’ensemble du système en cas de sinistre
  • Sauvegarde quotidienne automatique de la base de données afin de restaurer la base de données dans un état antérieur si nécessaire
Routines de surveillance

Tout événement au niveau de chacun des points d’accès au serveur est archivé par un système de journalisation enregistrant les informations nécessaires à la détection des intrusions et au diagnostic en cas de soupçon.

Un outil de surveillance des journaux (fail2ban) est mis en œuvre pour identifier des patterns d'attaques et bloquer l'accès serveur aux adresses IP suspectes si nécessaire.

Quelques règles de détection d'intrusion sont listées ci-dessous à titre informatif :

  • Nombre de tentatives de connexion échouées dépassant un seuil prédéfini (attaque force brute)
  • Nombre de requête inhabituel pendant une durée de temps définie (attaque DDoS)
  • Changement des droits d'accès aux fichiers
  • Changement des droits/mots de passe des utilisateurs système
  • Tentatives d'accès à des URL non publiques

Procédures correctives

En cas de sinistre, Affluences met en œuvre un plan de secours incluant les procédures correctives suivantes :

  • Restauration de la base de données à un état antérieur
  • Restauration de la base de données en cas de sinistre
  • Plan d’intervention en cas d’intrusion illégale
  • Réversibilité

Restauration à un état antérieur

A la demande des clients, le plan de sauvegardes quotidiennes (voir Routines de sauvegarde) permet de restaurer la base de données à un état antérieur.

Plan de secours en cas de perte des données

En cas de sinistre (perte des données, crash serveur, etc.), le plan de sauvegarde hebdomadaire sur un serveur indépendant (voir Routines de sauvegarde) permet de restaurer la base de données à un état antérieur au sinistre.

Plan d’intervention en cas d’intrusion illégale

En cas de détection d’une intrusion illégale (voir Routines de surveillance), Affluences met en œuvre le plan d’intervention suivant :

  1. Blocage immédiat de l'IP identifiée comme source de l’intrusion
  2. Récupération des données de diagnostic
  3. Analyse des données de diagnostic
  4. Réparation de la faille et mise en place des actions préventives
  5. Remise en service du système, si nécessaire

Réversibilité

Le système permet l’export des données hébergées dans un format lisible sans difficulté dans un environnement Excel (csv, xls et xlsx).

Liste des acronymes

  • AES – Advanced Encryption Standard
  • CSRF – Cross-Site Request Forgery
  • DDOS – Distributed Denial of Service
  • FTP – File Transfer Protocol
  • HHTP – Hypertext Transfer Protocol
  • HTTPS – HyperText Transfer Protocol Secure
  • ISAE - International Standards for Assurance Engagements
  • MLD – Modèle Logique de Données
  • MVC – Modèle Vue Controlleur
  • ORM – Object Relational Mapping
  • RSA – Rivest, Shamir, Aldeman (inventeurs)
  • SFTP – SSH File Transfert Protocole
  • SSAE – Statement on Standards for Attestation Engagements
  • SQL – Structured Query Language
  • SOC – Security Operating Center
  • SSH – Secure SHell
  • SSL – Secure Socket Layer
  • XSS – Cross Site Scripting
  • W3C – World Wide Web Consortium
    • Related Articles

    • Présentation des plateformes d’Affluences (application mobile et site web)

      Application mobile Affluences L’application Affluences est téléchargeable depuis le Play Store ou l’Apple Store, est gratuite et sans publicité. Lors de la première connexion, il est possible d’accepter la géolocalisation ce qui permettra d'afficher ...
    • Questionnaire technique d’installation du connecteur logiciel

      Ces questions techniques élaborées par notre service informatique permettent de définir les conditions d’installation du connecteur logiciel.   Récupération de l'historique de fréquentation Les informations “entrées et sorties” ou “visiteurs ...
    • Traitement des données personnelles et conformité RGPD

      Dans le cadre de l’utilisation de ses services, Affluences peut être mené à traiter des données personnelles.  Affluences s'engage à effectuer un traitement des ces données à des fins strictement opérationnelles et non commerciales tout en se ...
    • Administration

      L’onglet Administration vous permet de gérer facilement les informations relatives à votre établissement. Gérer les informations Dans la partie Gérer les informations, vous renseignez toutes les informations relatives à votre établissement : ...
    • Paramétrage avancé des ressources

      Cet article constitue un guide avancé sur le paramétrage des ressources, avec un zoom sur les RDV, activités récurrentes ou ponctuelles, événements… (ressources nécessitant l’activation de la multi-réservation). Vous retrouverez les informations ...