Sécurité et logiciel – Conception (SDL phase 2)

Définition des exigences de conception

Les exigences de conception servent de fil conducteur durant la conception d’un logiciel.

Elles définissent :

  • Les méthodes de conception à utiliser.
  • Les bonnes pratiques à utiliser dans le cadre de la conception d’un logiciel.
  • La manière dont les informations seront validées avant de débuter un traitement.
  • Le niveau de chiffrement à utiliser.
  • Que le logiciel soit sûr par défaut.

Les exigences de conception permettent de prendre en compte la sécurité de l’information dès le début du cycle de développement et plus particulièrement au niveau de la conception.

Une prise en compte tardive de la sécurité de l’information dans un développement logiciel implique souvent :

  • Des coûts de développement supérieurs engendrés par des modifications profondes.
  • Des solutions complexes avec une évolutivité limitée et générant des coûts de maintenance importants.
  • Des solutions partiellement efficaces.
  • Dans le pire des cas, l’impossibilité de répondre au besoin de sécurité.

Modélisation des menaces

La modélisation des menaces est utilisée pour concevoir les parties sensibles du logiciel, identifiées à l’aide de l’analyse de risques. Elle permet d’établir un schéma représentant les interactions entre les menaces, les vulnérabilités et les impacts potentiels sur les actifs informationnels (données importantes) de l’application. Elle permet également de préciser les mesures de sécurité en vue de traiter les risques selon le plan de traitement établi durant l’analyse des risques.

La modélisation des menaces représente une part importante des activités spécifiques à la sécurité de l’information dans la phase de conception.

La méthode CORAS [CORAS (2012)] est une solution tout à fait indiquée pour la modélisation des menaces. Elle utilise un langage de modélisation très proche du langage UML largement connu dans les équipes de développement. Elle propose également un outil de modélisation disponible gratuitement et librement. Il est aussi possible d’utiliser la méthode STRIDE [STRIDE], proposée par Microsoft et également disponible avec un outil de modélisation gratuit.

Réduction de la surface d’attaque

La technique de la réduction de la surface d’attaque permet de diminuer les risques en diminuant le nombre des vecteurs d’attaque disponibles pour un attaquant potentiel. Cette diminution est obtenue en éliminant ou en restreignant l’accès à certains services ou fonctionnalités.

Il convient d’examiner chaque partie du logiciel et de déterminer si chacune de ces parties est nécessaire au bon fonctionnement de l’application. Chaque partie inutile doit être éliminée.

Il convient également d’examiner les droits d’accès alloués aux utilisateurs pour l’exécution des différentes fonctionnalités de l’application. Seuls les doits nécessaires à l’exécution des tâches des utilisateurs doivent être autorisés.

Défense en profondeur

Le principe de la défense en profondeur consiste à utiliser différentes mesures de sécurité, réparties sur tous les composants constituant un logiciel pour réduire le risque inhérent à la compromission ou la défaillance d’une mesure particulière.

Aucun système de sécurité n’est infaillible. Il est donc illusoire de faire reposer la sécurité d’un système sur une seule solution de sécurité. Les actifs informationnels doivent être protégés à différents niveaux avec différentes solutions. Ainsi, en cas de découverte d’une vulnérabilité sur l’une des solutions de sécurité, les actifs sont encore protégés par les autres solutions.