Passer

Security and privacy by design

La sécurité de l’information, souvent appelée InfoSec, fait généralement référence aux processus et aux outils conçus et déployés pour protéger les informations et les actifs des personnes et entreprises contre la modification, la destruction et l’inspection.

Le glossaire du NIST* sur les termes clés de la sécurité de l’information définit la « sécurité de l’information » par : « Protéger les informations et les systèmes d’information contre tout accès non autorisé, l’utilisation, la divulgation, la modification ou la destruction non autorisées, afin de garantir” :

  1. L’intégrité, c’est-à-dire la protection contre la modification ou la destruction inappropriée des informations, ce qui implique d’assurer la non-répudiation et l’authenticité des informations.
  2. La confidentialité, qui consiste à préserver les restrictions autorisées en matière d’accès et de divulgation, y compris les moyens de protéger la vie privée et les informations.
  3. La disponibilité, consistant à garantir un accès rapide et fiable à l’information et son utilisation.
  4. La preuve, s’assurer avec une confiance suffisante les circonstances dans lesquelles évolue les informations pour certifier la traçabilité et l’authentification.

Alors que la sécurité de l’information a été principalement considérée comme un ensemble de pratiques défensives visant à protéger les activités et les actifs d’une entreprise, l’approche “security by design” propose  que les processus et les technologies de sécurité de l’information soient correctement mis en œuvre dès la conception d’un projet, parmis ces processus il y a: 

  • L’audit de maturité qui permet de faire une analyse de l’existant en utilisant différents frameworks tels que l’OWASP SAMM* ou encore SLSA*. L’OWASP SAMM a pour mission de fournir un moyen efficace et mesurable d’analyser et d’améliorer la posture de sécurité logiciel pour tous les types d’organisations. Tandis que le framework de sécurité SLSA* se positionne comme une liste de contrôle des normes visant à empêcher la falsification, à améliorer l’intégrité et à sécuriser les paquets et l’infrastructure des projets. Ces frameworks sont le moyen de passer d’une sécurité suffisante à une résilience maximale, quel que soit le maillon de la chaîne.
  • La définition d’une roadmap pour la sécurisation de périmètre existant, cette étape passe par la définition des processus et d’outils tels que les outils d’analyse de code SAST (Static Application Security Testing) pour la revue de code source automatique à la recherche de vulnérabilités dans le code en le comparant à des règles de sécurité prédéfinies. Le SCA (Software Composition Analysis) servant aux équipes de développement pour trouver, suivre et analyser tout composant open source introduit dans un projet. Enfin le DAST (Dynamic Application Security Testing) qui est une autre méthode de test s’appuyant sur une approche en boîte noire.
  • La mise en place des processus, tels que les sessions de sensibilisation au secure coding pour permettre aux équipes de développement de monter en compétences sur le sujet et l’identification des security champions qui auront un rôle de stimulateurs d’acculturation à la sécurité en interne.

Dans le domaine de l’ingénierie, l’approche de la sécurité dès la conception “security by design”  est fortement liée à la confidentialité dès la conception “privacy by design”, car elles interviennent au même moment lors de la phase de conception. 

Par “Security by Design” *, nous entendons une approche de la sécurité de l’information qui, comme le “Privacy by Design”, est à la fois holistique, créative, anticipative, interdisciplinaire, robuste, responsable et intégrée dès la naissance d’un projet et jusqu’à sa fin.

Cette approche de privacy by design vient répondre à un besoin très clair : avec la recrudescence des applications et services disponibles, les données sensibles comme les DCP (Données à Caractère Personnel) sont de plus en plus mises en jeu. D’un côté les utilisateurs veulent utiliser des services tout en ayant une preuve que leurs données sont protégées, de l’autre les entreprises veulent pouvoir offrir cette confidentialité, tout en réalisant un traitement des données automatique, sans que celui-ci ne soit trop complexe ou trop coûteux à mettre en place. 

La démarche de “privacy by design” va donc permettre de répondre à cette problématique, de la même manière que le “security by design”, en standardisant et en homogénéisant la protection des données personnelles dès la conception des applications/services. 

Il existe plusieurs mesures/méthodes qui peuvent être mises en place pour assurer la confidentialité des données ou au moins  s’en approcher : 

  • La pseudonymisation est un processus de traitement des données à caractère personnel qui empêche l’attribution de celles-ci à une personne en particulier. Ce processus peut être effectué de plusieurs manières : hachage, chiffrement, substitution par une valeur aléatoire… Cette méthode n’est malheureusement pas applicable pour tous les types de données, par exemple pour les données médicales la méthode de hachage n’est pas utilisable car elle est déterministe.
  • Organiser et cadrer la collecte des données afin de récupérer uniquement les données qui sont nécessaires au bon fonctionnement de l’application. Une labellisation des données peut être mise en place pour assigner un niveau de confidentialité à chaque donnée et ainsi empêcher la collecte de données sensibles. 
  • Centraliser et empêcher les fuites de données sensibles en mettant en place des solutions de gestions de secrets / coffre-fort numérique. Ce genre de solution permet de diminuer la surface d’attaque et de réduire le temps de configuration car tous les éléments responsables de la privacy sont réunis dans un seul périmètre

Enfin en un mot la confidentialité des informations est une question de contrôle – permettant aux individus / entreprises de garder le contrôle sur leurs informations secrètes ou sensibles, identifiables en ce qui concerne leur collecte, leur utilisation et leur divulgation.

L’idée principale derrière la “security by design”, c’est de modéliser les abuser stories* dès la conception, cependant cette méthode doit être renforcée par la “privacy by design” qui vient combler certains points délaissés/négligés par la sécurité dès la conception, tels que : la gestion des secrets (dans le code source), le chiffrement des données sensibles et l’échange de clés… 

Afin d’obtenir un niveau de sécurité omniscient, il est donc impératif de lier étroitement les deux approches, qui sont aujourd’hui plus que complémentaires et primordiales.

Voici un tableau récapitulatif des deux approches définies dans cet article, la complémentarité de celles-ci est très claire :  

Security/Privacy by Design Foundational Principles PrivacySecurity
Respect et protection des informations sensiblesProtéger des activités et des assets des entreprises/personnes
Proactif et non réactif ;Préventif et non correctifFaire une analyse de risque des données traitées pendant la conception. Réaliser de la modélisation de la menace sur nos projets se basant sur l’analyse de risque
Configuration par défautConfigurer les mesures de confidentialité par défaut. Ne pas attendre de l’utilisateur l’activation de celles-ci.Mettre en œuvre des politiques de « sécurité recommandée », notamment le moindre privilège, la moindre confiance, le contrôle d’accès obligatoire et la séparation des tâches et des fonctions.
Intégrée à la conceptionAssurer que la confidentialité fait partie intégrante de l’application et que ce n’est pas un module rajouté a postériori.Appliquer l’assurance de la sécurité des logiciels (SSA) qui est un processus visant à intégrer la sécurité dans la conception des logiciels afin de répondre aux besoins de sécurité dès le départ.
Somme positiveDémontrer que cette approche est bénéfique, voire nécessaire dans le contexte actuel, pour tous les acteurs, principe de “win-win”Impliquer tous les acteurs sensibilisés et matures sur le sujet pour répandre le mindset de la “security by design”
La sécurité de bout en bout Protéger les données durant tout leur cycle de vie, de la création à la destructionAssurer la confidentialité, l’intégrité et la disponibilité de toutes les informations pour tous les acteurs
Visibilité et transparenceLes utilisateurs doivent être assurés de la protection de leur données avec une documentation et une communication claire.Appliquer les normes de sécurités connues à tous les niveaux 
Respect de l’utilisateurLe respect des données personnelles de l’utilisateur reste l’objectif principalSécuriser pour protéger les intérêts de tous les propriétaires d’informations

*https://csrc.nist.gov/glossary/term/information_security

*https://france.devoteam.com/paroles-dexperts/security-by-design-un-mindset-a-adopter/

*http://www.discoveringidentity.com/2013/09/26/privacy-and-security-by-design-foundational-principles/

*https://www.we45.com/post/abuser-stories-a-sneak-peak-for-scrum-teams

*https://github.com/OWASP/samm/blob/master/Supporting%20Resources/v2.0/OWASP-SAMM-v2.0.pdf 

*https://slsa.dev/