Cloisonnement des systèmes

Le développement s’effectue en local sur la machine du développeur.

Des environnements de validation en amont du merge sont provisionnés dans une version minimale et sans aucune donnée client.

Un environnement de staging est provisionné indépendamment de l’environnement de production avec un maximum de parité mais un jeu de données anonymisé afin de tester l’ensemble des composants de la solution.

Le cloisonnement des données entre clients est garantie au niveau middleware, application et base de donnée via https://github.com/ErwinM/acts_as_tenant (Row-level multi-tenancy).

Des tests automatiques au niveau unitaire et API vérifient cette garantie à chaque commit sur master.

Sécurité des échanges

Toute requête à l’outil se fait via HTTPS. Nous supportons les versions 1.2 et 1.3 de TLS avec RSA_2048.

Par ailleurs, si le service d’upload SFTP est utilisé, des algorithmes et credentials forts et uniques sont assignés au client. Les fichiers sont alors stockés dans un espace chroot-jailed à l’utilisateur du client. En sus, nous encourageons nos clients à nous transmettre les fichiers chiffrés via notre clef GPG publique.

Les données sont chiffrées at-rest avec AES-256 sur nos bases de données.

Sauvegardes et archives

Notre base est sauvegardée en permanence (cf https://www.notion.so/Data-protection-backups-8a33d62cc0974c5cbc2568cf50a19c40). Ces bases et sauvegardes sont chiffrées at-rest.

Par ailleurs, nous archivons quotidiennement une copie de la base sur un cloud séparé physiquement et logiquement, DigitalOcean Spaces. Ces backups sont également chiffrés at rest (cf https://blog.digitalocean.com/introducing-spaces-object-storage/#securereliableandperformant) et E2E via GPG.

Ils sont accessibles uniquement par l’équipe de développement, et l’accès est protégé via notre SSO et un 2FA (Google Authenticator). La version du code correspondante est archivée à leurs côtés pour permettre de visualiser les données dans le cadre de l’application les ayant produites.

Le job de création des ces archives vérifie un certain nombre de métadonnées pour confirmer la bonne création de l’archive. Un autre job test les fonctionnalités cruciales de la restoration de ces backups de manière quotidienne. En cas de faillite de ces tests, nous sommes alertés par e-mail.

Plus d’informations ici :

Data protection & backups

Surveillance et traçabilité

Scaleway nous permet d’avoir un historique des activités d’administration sur notre infrastructure.