Le traitement par les entreprises et les institutions des données personnelles de leurs collaborateurs, de leurs clients/des citoyens et de leurs sous-traitants est un sujet de longue date. Avec l’entrée en application en mai 2018 du Règlement Général sur la Protection des Données (RGPD), ces traitements sont devenus, au-delà d’un sujet d’entreprise, un sujet sociétal, sensibilisant le grand public. Cela a été confirmé récemment avec la mise à disposition de l’application StopCovid qui, du fait notamment de son traitement de données de positionnement et de données médicales, a mobilisée l’opinion publique. Cinq grandes questions sont régulièrement revenues :
Dans ce contexte, voici quelques bonnes pratiques de gouvernance de sécurité de l’information* qui devraient s’appliquer à tout projet de développement applicatif, en particulier lorsque des données personnelles dites sensibles sont concernées. L’application de ces bonnes pratiques à chacune des 5 phases du projet concerné (l’initialisation, le cadrage et la définition du besoin, le design et le développement de l’application, son test et son déploiement) permettra de clarifier les réponses aux questions posées ci-dessus.
Pour s’assurer que tous les projets traitant des données personnelles dites sensibles sont effectivement identifiés comme tels, la phase d’initialisation des projets devrait, quel que soit le projet, inclure une évaluation dédiée. Celle-ci peut prendre la forme d’un questionnaire, plus ou moins détaillé en fonction des organisations. Dans l’optique d’identification des projets traitant de données personnelles, ce questionnaire devra permettre à minima de répondre aux questions suivantes :
En intégrant ces questions dès la phase d’initialisation, il sera ainsi possible :
Dans le cas où le projet concernerait des données personnelles dites sensibles, les fonctions suivantes devraient être intégrées à l’équipe projet :
Le processus de gestion de projet devrait par ailleurs inclure, tout au long de la vie du projet, des étapes de coordination et de validation incluant ces fonctions.
En cas de sous-traitance sur tout ou partie du projet, il convient de contractualiser avec le(s) sous-traitant(s) avant le début des travaux, en incluant notamment :
En amont du développement de l’application, il est important de réaliser une analyse des risques liés à la sécurité de l’information. L’objectif est d’identifier les impacts en cas de perte de Confidentialité, de perte d’Intégrité ou de perte de Disponibilité de la donnée traitée versus la probabilité de survenance de ces évènements du fait notamment du contexte d’utilisation de l’application et de ses caractéristiques propres (une application Web sera par exemple plus exposée qu’une application hébergée et accessible en local uniquement).
Cette analyse pourra être plus ou moins formalisée selon les organisations, mais ses résultats devraient dans tous les cas être communiqués et débattus avec le sponsor du projet afin de placer la sécurité de la donnée au cœur du projet.
Cette analyse sera aussi l’un des éléments sur lesquels l’équipe projet pourra s’appuyer pour réaliser l’analyse coût/bénéfice des mesures de sécurité à mettre en œuvre. Il conviendra bien entendu de faire évoluer cette analyse tout au long du projet, en particulier en cas d’évolutions majeures.
Au-delà d’identifier si des données personnelles seront traitées, il est par ailleurs nécessaire, en particulier lorsqu’il est question de données personnelles dites sensibles, de s’assurer que seules les données nécessaires et suffisantes au projet seront récoltées, stockées et traitées (application du principe du need-to-use).
Pour ce faire, il conviendrait d’identifier avec précision, par exemple au cours d’ateliers dédiés :
Le principe étant que, lors de la structuration de la base de données, le stockage des données personnelles, et en particulier des données dites sensibles, soit limité aux seules données identifiées. Et que, lors de la définition et de l’implémentation des fonctionnalités dans l’outil, seules les fonctionnalités identifiées comme nécessaires soient déployées.
A noter qu’il faudra tout de même anticiper la possibilité que d’autres données/traitements puissent, en fonction de l’évolution des besoins des utilisateurs, être intégrés dans le futur. L’application devra donc être structurée de façon à permettre ces éventuelles évolutions (comme par exemple l’intégration de nouveaux champs dans les bases de données).
Les mesures de sécurité préalablement identifiées devraient, afin d’assurer un suivi de leur implémentation, être intégrées dans la définition du besoin et par la suite dans le cahier des charges associé en tant que fonctions de sécurité. Cela permettra d’en assurer le suivi sur l’ensemble du projet (dont notamment la phase de test) et de contrôler qu’elles sont effectivement implémentées.
Il faut aussi s’assurer à cette étape que :
Afin d’assurer l’application des bonnes pratiques de sécurité tout au long de la phase de design et de développement, les équipes en charge du design et du développement doivent être formées à la sécurité de l‘information sur leurs domaines d’expertise.
Lors de cette phase, il convient par ailleurs de suivre la bonne implémentation des mesures de sécurité identifiées et de mettre à jour, en fonction des évolutions du projet, l’analyse de risques initiée en début de projet. En cas de difficulté de mise en œuvre d’une mesure de sécurité, une analyse coût/bénéfice doit être réalisée et, dans le cas où la mise en œuvre ne serait pas pertinente, les mesures de remplacement à mettre en place doivent être identifiées et intégrées au cahier des charges.
Afin d’anticiper les éventuelles failles de sécurité de l’application, les actions suivantes peuvent être réalisées en parallèle :
Le temps nécessaire au test des mesures de sécurité mises en œuvre ne devrait pas être négligé, en particulier lorsqu’il est question de données personnelles dites sensibles.
Le test des fonctions de sécurité de l’outil par les utilisateurs et administrateurs devrait faire partie intégrante des cahiers de test fonctionnels et techniques de l’application (par exemple : test des paramétrages mis en œuvre pour forcer la complexité des mots de passe). Ce qui devrait être par défaut le cas à partir du moment où les fonctions de sécurité attendues auront été effectivement intégrées à la définition du besoin.
Il faut par ailleurs s’assurer que les membres de l’équipe de test ne soient pas ceux qui auront développé l’application. Cela permettra plus d’impartialité et une meilleure prise de recul.
Plusieurs audits complémentaires peuvent aussi être mis en œuvre – en tout ou partie – :
Si les ressources en interne ne disposent pas des compétences nécessaires pour réaliser ce type d’audits, il pourrait faire appel à des prestataires d’audit de la sécurité des Systèmes d’Information qualifiés (voir en ressource le lien vers la liste des prestataires qualifiés PASSI).
A noter que, lors de la création des jeux de test, il conviendra d’anonymiser/pseudonymiser les données personnelles, a fortiori des données personnelles dites sensibles. Deux raisons à cela :
En parallèle de la mise en production, le registre de traitements de l’entreprise doit être mis à jour afin d’intégrer le nouveau traitement associé. Le DPO (Data Protection Officer) doit par ailleurs s’assurer que l’ensemble des processus et procédures nécessaires à l’application des droits des personnes soient mis à jour/rédigés pour intégrer cette nouvelle application.
Il faudra s’assurer que les utilisateurs de l’application :
Un plan de suivi des vulnérabilités devra être défini par le RSSI (Responsable de la Sécurité des Systèmes d’Information) pour l’application. Celui-ci devra inclure :
De la même façon que pour les sous-traitants susceptibles d’intervenir dans le cadre du projet, la relation avec les sous-traitants susceptibles d’intervenir sur l’application ou ses composants une fois celle-ci déployée (maintenance, maintien en condition opérationnelle, hébergement…) doit être contractualisée, en incluant notamment :