• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Mis à jour le 27/11/2018

Intégrez la sécurité dans l'ensemble du cycle de vie des applications

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

En raison du nombre important de méthodes disponibles dans la littérature, l’objectif de ce chapitre n’est pas de faire de vous des experts dans la mise en place d’une méthodologie globale de sécurité, mais plutôt de vous donner une vue transverse des différents éléments importants à prendre en compte.

Les 4 dimensions métier critiques du cycle de vie d’un logiciel

Vous avez vu qu’il était important de prendre en compte la sécurité dès les études d’opportunité. De manière globale, vous pouvez prendre en compte les 4 dimensions de gouvernance, de conception, de vérification et d’opération.

Chacune de ces fonctions représente une catégorie d’activités basiques du développement logiciel que les entreprises ont mises ou devraient mettre en œuvre. Voyons-les ensemble en détail !

  1. La gouvernance se concentre sur les processus et les activités liés à la gestion globale de la sécurité par l’entreprise dans le domaine du développement informatique. Elle inclut également les impacts potentiels sur les processus métier ;

  2. La phase de construction s’intéresse aux processus et aux activités liés à la façon dont une organisation définit des objectifs et crée des logiciels dans ses projets de développement. En général, vous y trouverez le management des produits, la collecte des exigences, les spécifications d'architecture de haut niveau, la conception détaillée et la mise en œuvre ;

  3. La phase de vérification s’attache à décrire les activités de vérification et de tests mises; en place dans l’entreprise. On y trouve notamment la revue de conception et d’implémentation et les tests de sécurité.

  4. Enfin, la phase opérationnelle comprend les activités liées à la gestion des déploiements des applications de l’entreprise. On y inclut souvent la gestion des remontées d’alerte, le contrôle sur l’environnement dans lequel évoluent les applications et les opérations standard de sécurité dans l’environnement de déploiement.

Ces 4 fonctions décrivent l’ensemble des phases dans lesquelles peut se trouver une application. À chacune de ces 4 fonctions clés, les méthodologies de la littérature associent :

  • Des bonnes pratiques de sécurité ;

  • Des niveaux de maturité pour chacune d’entre elles, afin de pouvoir en mesurer l’impact.

Le schéma suivant résume l’approche générique suivie ici. 

Les 4 phases du développement logiciel sécurisé
Les 4 phases du développement logiciel sécurisé

Voyons en détail les différentes pratiques de chaque domaine.

Pratiques de sécurité en gouvernance

Stratégie et métriques

Par exemple, les entreprises peuvent construire une feuille de route globale et partagée de la mise en œuvre de la sécurité dans l’entreprise. Les industries à forte valeur ajoutée (aéronautique, armée, spatial) ont depuis longtemps adopté une gestion particulière des documents sensibles.

Compatibilité et politique

Par exemple, la mise en place du RGPD en Europe bouleverse le paysage législatif pour le traitement des données à caractère personnel, et a donc un impact direct pour les développeurs.

Formation

Par exemple, on peut mettre en place des parcours de formation continue sur les bonnes pratiques en développement vues plus tôt, ou bien construire un ensemble de règles techniques à destination des architectes.

Pratiques de sécurité en construction

Évaluation des menaces

L’évaluation de menaces se focalise sur l’identification des risques au niveau du projet au regard des fonctionnalités et de l’environnement d’exécution. Cela permet une meilleure compréhension des impacts négatifs potentiels de failles de sécurité, tout en évaluant la résilience de l’organisation contre des menaces connues. Plusieurs approches ont été développées par l’industrie informatique, les plus connues étant peut être la méthode STRIDE de Microsoft ainsi que la méthode EBIOS de l’ANSSI.

Exigences de sécurité

Ensuite, l’écriture des exigences de sécurité est une manière proactive de décrire le comportement attendu d’un logiciel dans le domaine de la sécurité.

Architecture sécurisée

Enfin, les bonnes pratiques en architecture sécurisée consistent à insérer dans les règles de développement l’utilisation de framework reconnus pour leur robustesse ou d’établir des architectures et des plateformes de référence.

Pratiques de sécurité en vérification

Revue de conception

La revue de conception se concentre sur l’évaluation de l’architecture et de la conception des applications au regard des failles de sécurité.

Par exemple, les entreprises peuvent identifier la surface de leur application exposée aux attaques et analyser les impacts d’exigences de sécurité connues sur les architectures cibles. Une autre pratique consiste à développer des diagrammes de flux pour les données sensibles.

Revue d'implémentation

La revue d’implémentation vise à inspecter le code des logiciels et leur configuration pour y trouver des vulnérabilités. Les sociétés peuvent se baser sur de simples check lists ou bien utiliser des logiciels dédiés.

Tests de sécurité

Enfin, les tests de sécurité cherchent à conduire une analyse du logiciel dans son environnement d’exécution pour y trouver des problèmes de sécurité.

De simples tests de pénétration et des tests de haut niveau basés sur les fonctionnalités du logiciel peuvent être mis en œuvre. Dans une forme plus avancée, les tests peuvent également être automatisés et fournir à l’organisation des seuils minimaux avant qu’un projet soit déployé.

Pratiques de sécurité en fonctionnement opérationnel

Gestion des incidents et pannes

Tout d’abord, la gestion des incidents de sécurité et des pannes doit être implémentée pour y apporter une réponse uniforme et cohérente.

Dans un premier temps, l’entreprise peut créer une équipe d’intervention responsable du traitement de ces incidents et déterminer des points de contact éclairé pour l’incident de sécurité.

Alors que l’entreprise gagne en maturité, elle peut mettre en place un système de retour d’expérience basé sur l’analyse de données collectées lors d’incidents.

Consolidation de l'environnement d'exécution

Ensuite, la phase de consolidation de l’environnement d’exécution a pour objectif d’analyser l’infrastructure qui héberge les logiciels de l’entreprise.

Une première approche consiste à installer les mises à jour de sécurité préconisées par les constructeurs.

Cette approche peut être complétée par la mise en œuvre d’outils de protection et de supervision.

Activation opérationnelle

Enfin, l’activation opérationnelle consiste à collecter des informations de sécurité à partir des équipes de développement et de les communiquer aux utilisateurs finaux du logiciel. Sans ces informations, même le logiciel le mieux conçu d’un point de vue de la sécurité porte des risques potentiels qui ne sont pas connus sur le site de déploiement.

La mise en place de fiche réflexe de sécurité pour les utilisateurs est une approche initiale qui peut être complétée par la mise en œuvre d’un audit de sécurité pour vérifier la bonne prise en compte des exigences de sécurité.

À vous de jouer !

Ce long chapitre a pour objectif de vous sensibiliser à l’ensemble des bonnes pratiques à mettre en œuvre pour réduire drastiquement la surface de vos applications exposée aux risques.

Pour aller plus loin dans l’étude et la mise en œuvre de cette méthodologie globale au sein d’une entreprise, l’OWASP (encore elle) nous fournit des documents référence en la matière, dont le modèle de maturité logicielle.

Ce document donne les détails d’une méthodologie qui est une référence dans le monde de la sécurité. Il détaille les éléments nécessaires pour mettre sur pied une approche qui prend en compte la sécurité dès les phases de gouvernance d’un projet, et jusque dans l’implémentation. Pour le futur RSSI que vous allez devenir, ce document est un must read.

En résumé

Un dernier mot 😌

Bravo ! Vous avez bientôt terminé ce cours sur la sécurité des applications ! J'y ai mis tous les moyens pour le rendre aussi passionnant et enrichissant que possible pour le futur RSSI que vous êtes. Il ne vous reste plus qu'à terminer le dernier quiz pour valider que vous avez acquis toutes les compétences enseignées dans ce cours :

  • Identifier les vulnérabilités d'une application web ;

  • Assurer la sécurité des identités des utilisateurs d'une application ;

  • Implémenter les outils de protection des données d'une application ;

  • Appliquez les principes de sécurité dès la conception d'une application.

Je vous souhaite de réussir dans vos études et bientôt dans votre métier dans les Systèmes d'Informations, peut-être en temps que Responsable de la Sécurité des Systèmes d'Information.

J’espère que ce cours vous sera profitable et je vous invite à me contacter en cas de souci.

À très bientôt sur OpenClassrooms !

Exemple de certificat de réussite
Exemple de certificat de réussite