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 !
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.
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.
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é.
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.
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.
Réglementations
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é.
Également, 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és 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.
Communication aux utilisateurs finaux
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 !