OpenSAMM, modèle de maturité pour le développement d'applications sécurisées

OpenSAMM (Software Assurance Maturity Model) est un des projets “Flagship” de l’OWASP (Open Web Application Security Project) permettant d’évaluer, définir et mettre en place une stratégie de sécurité pour les applications.

Le projet propose de découper le développement logiciel en 4 domaines divisés en 12 sous-domaines. On retrouve globalement les différentes étapes du SDLC.

Catégories OpenSAMM

Fonctionnement

Chaque sous domaine est divisé en 4 niveaux de maturité.

  • 0 : Niveau implicite de départ
  • 1 : Compréhension initiale et mise en place de pratiques de sécurité
  • 2 : Amélioration de l’efficacité/efficience des pratiques de sécurité
  • 3 : Maîtrise complète des pratiques de sécurité

Pour chaque sous-domaine, plusieurs éléments sont associés à chaque niveau de maturité :

Note : les exemples associés ci-dessous proviennent du niveau de maturité 1 du sous-domaine “Education and Guidance” du domaine “Governance”.

L’objectif à atteindre pour compléter le niveau de maturité

exemple : Fournir aux collaborateurs des ressources documentaires sur le développement et de déploiement sécurisés d’applications

Les activités à mener pour atteindre l’objectif

exemple :

  • Faire une formation de sensibilisation à la sécurité
  • Ecrire et maintenir des guides techniques

Les questions à se poser pour évaluer la stratégie de sécurité en place

exemple :

  • Les développeurs ont-ils reçu une sensibilisation à la sécurité ?
  • Les membres des équipes projet savent-elles où chercher les guides et bonnes pratiques de développement sécurisé ?

Résultats attendus après avoir satisfait les objectifs

exemple :

  • Prise de conscience des développeurs sur les problèmes de développement les plus communs
  • Application des règles de sécurité de base sur les logiciels
  • Définition d’un niveau de connaissance minimum en sécurité pour les collaborateurs techniques
  • Mise en place de contrôles de ce niveau minimum de sécurité

Les métriques à mesurer et leurs seuils d’acceptation

exemple :

  • Plus de 50% des développeurs a ét é sensibilisé durant la dernière année
  • Plus de 75% des développeurs seniors/architectes a été sensibilisé durant la dernière année
  • Commencer le guide technique dans les 3 mois après la 1re formation

Les coûts associés

exemple :

  • Coût de la formation (à construire ou via une prestation)
  • Maintenance du guide technique

Les acteurs impliqués

exemple :

  • Développeurs
  • Architectes

Les autres sous-domaines liés avec les niveaux associés

exemple :

  • Policy & Compliance niveau 2
  • Security Requierement niveau 1
  • Secure Architecture niveau 1

Comment mettre en place OpenSAMM ?

Pour mettre en place OpenSAMM il faut suivre les différentes étapes proposées :

Etapes OpenSAMM

  1. Prepare - Préparer

    • objectif : s’assurer de bien démarrer le projet
    • activités :
      • Définir le périmètre
      • Identifier les collaborateurs
      • Communiquer sur l’initiative
  2. Assess - Evaluer

    • objectif : identifier et comprendre le niveau de maturité actuel
    • activités :
      • Evaluer les pratiques déjà en place
      • Déterminer le niveau de maturité actuel
  3. Set the target - Définir la cible souhaitée

    • objectif : définir le niveau cible dans chaque sous-domaine
    • activités :
      • Définir la cible souhaitée
      • Estimer les impacts
  4. Define the plan - Définir le plan

    • objectif : définir le plan pour arriver à l’objectif souhaité
    • activités :
      • Définir le nombre de phases pour atteindre l’objectif
      • Définir le planning
  5. Implement - Mettre en place

    • objectif : réaliser le plan défini
    • activités :
      • Mettre en place les mesures nécessaires
  6. Roll-out - Mettre à disposition

    • objectif : S’assurer que ce qui a été mis en place est utilisé
    • activités :
      • Communiquer sur les améliorations
      • Mesurer l’efficacit

Calcul du niveau de maturité d’une organisation

Le niveau de maturité se définit par sous-domaine (“Education & Guidance” par exemple). Il est calculé en fonction d’un barème lié aux réponses aux questions de chaque niveau de maturité.

L’exemple ci-dessous expose le nombre de points à ajouter pour chaque réponse.

Barèmes OpenSAMM

Pour le sous-domaine “Education & Guidance”, un exemple de réponses serait  :

  • Have developers been given high-level security awareness training?

    • réponseOnce => 0,2 point
  • Does each project team understand where to find secure development best-practices and guidance?

    • réponse : Half => 0,5 point_

      • Are those involved in the development process given role-specific security training and guidance?
    • réponse : No => 0 point * Are stakeholders able to pull in security coaches for use on projects?
    • réponse : Some => 0,2 point * Is security-related guidance centrally controlled and consistently distributed throughout the organization?
    • réponse : Per Team => 0,2 point * Are developers tested to ensure a baseline skillset for secure development practices?
    • réponse : No => 0 point

Dans ce cas le score est de 1,1, ce qui se traduit par un niveau de maturité 1+.

Aide à la mise en place

Pour aider à la mise en place d’OpenSAMM, l’OWASP met à disposition un fichier Excel permettant de :

  • Evaluer le niveau de maturité par sous-domaine en répondant aux questions. En fonction des réponses, le score par sous-domaine est automatiquement calculé.

Evaluation Excel OpenSAMM

  • Proposer en fonction des réponses données ci-dessus une roadmap pour améliorer les scores. Cette roadmap est composée de 4 phases et propose dans chaque itération d’améliorer un ou plusieurs point. L’évolution du score par phase est indiqué.

Roadmap Excel OpenSAMM

  • Proposer des statistiques sur la situation actuelle et la situation cible.

Statistiques Excel OpenSAMM

Ainsi que des graphiques sur l’avancement proposé par la roadmap

Statistiques Roadmap Excel OpenSAMM

Ressources


Voir également