Un cadre pour l'intégration de la sécurité applicative dans le génie logiciel (FIASSE) utilisant le modèle d'ingénierie logicielle sécurisable (SSEM)
Remarque : Ce dépôt est un travail en cours. Les contributions sont les bienvenues !
TL;DR : veuillez lire le DOC. Explorez le site web FIASSE. Visitez GitHub Discussions pour contribuer.
Ce dépôt contient des ressources et des documents pour le cadre OWASP d'intégration de la sécurité applicative dans le génie logiciel (FIASSE). FIASSE (prononcé /feiz/ comme « phase ») promeut une approche centrée sur le développeur et fondée sur des principes pour construire des logiciels sécurisables — reconnaissant que la sécurité est un processus dynamique et continu, tout comme le développement. Il introduit le Modèle d'Ingénierie Logicielle Sécurisable (SSEM) comme langage de conception commun qui utilise des termes établis du génie logiciel pour intégrer la sécurité dans l'architecture, la conception et l'ingénierie des logiciels. Intégrer la sécurité dans les principes qui façonnent le code lui-même. Le cadre vise à construire des applications résilientes capables de résister aux menaces au fil du temps.
Fournir des lignes directrices pratiques qui permettent aux développeurs de créer des logiciels sécurisables sans nécessiter une expertise approfondie en sécurité, et guider les professionnels de la sécurité dans l'intégration efficace de leur expérience en sécurité dans le génie logiciel. FIASSE y parvient grâce à une perspective de génie logiciel, réduisant la charge cognitive et favorisant la collaboration entre les équipes de développement et de sécurité.
Alors que les projets axés sur l'assurance comme l'OWASP Top 10 mettent en évidence ce qu'il faut éviter (une liste de blocage), OWASP FIASSE fournit un ensemble d'attributs et de pratiques positifs à suivre (une liste d'autorisation). Cette approche exploite les compétences existantes en génie logiciel pour construire des logiciels sécurisables, plutôt que d'exiger des développeurs qu'ils apprennent des techniques d'exploitation ou adoptent un état d'esprit axé sur les vulnérabilités. L'accent est mis sur la possibilité d'un codage sécurisé pratique grâce à des principes d'ingénierie familiers.
En définissant clairement le rôle pratique de la sécurité dans le processus de développement, ce cadre garantit que la valeur commerciale est capturée efficacement. En établissant les attentes de cette manière, cela réduit considérablement la probabilité que des failles de sécurité soient découvertes et nécessitent une correction ultérieure.
/docsCe dépôt définit un logiciel sécurisable comme des systèmes fiables, résilients et adaptables. Il souligne que la véritable sécurité est un processus continu, et non un accomplissement statique. Il introduit le Modèle d'Ingénierie Logicielle Sécurisable (SSEM), qui cadre la sécurité comme un ensemble inhérent de qualités d'un logiciel bien conçu. Pour ce faire, il présente les catégories d'attributs de Maintenabilité, de Fiabilité et de Sûreté (qui inclut la Résilience). FIASSE préconise l'intégration des pratiques de sécurité dans le flux de travail de développement là où elles ont le plus d'impact. Cela passe d'une approche « sécurité après coup » ou « shift left » à un modèle proactif et collaboratif. L'idée est que les propriétaires de produits, les développeurs et les professionnels de la sécurité travaillent ensemble dès les premières étapes de la conception, en particulier à travers des activités comme la définition des exigences de sécurité, la modélisation collaborative des menaces et les critères d'acceptation. Cela établit des attentes claires pour les activités de codage et les tests. Les ingénieurs logiciels reçoivent des conseils sur l'équilibre entre flexibilité et contrôle. Ils disposent également d'un modèle définitif pour prendre des décisions en matière de sécurité. En fin de compte, cela permet à toutes les parties prenantes de contribuer à la construction de systèmes plus robustes, fiables et intrinsèquement sécurisables.
FIASSE diffère des approches existantes en n'exigeant pas des développeurs qu'ils deviennent des experts en sécurité ou adoptent un état d'esprit adversarial. Cette approche vise à réduire la charge cognitive des développeurs tout en garantissant que la sécurité peut avoir confiance que ses préoccupations sont traitées à travers des attributs spécifiques du code et des processus de génie logiciel.
FIASSE entend être ouvert, accessible et collaboratif.
Premiers jalons pour le projet FIASSE :
D'autres jalons seront développés avec l'équipe du projet. Les contributions de la communauté sont les bienvenues via GitHub Discussions.
Ce dépôt complète le site web FIASSE.
Le projet OWASP FIASSE fait partie de l'OWASP Foundation, une organisation à but non lucratif dont la mission est d'éliminer les logiciels non sécurisés. L'OWASP Foundation fournit une multitude de ressources et de cadres qui s'alignent sur les principes de FIASSE.
Ce cadre est axé sur l'ingénierie logicielle sécurisable et est complété par d'autres projets OWASP :
OWASP héberge également de nombreux projets qui documentent les exigences et fonctionnalités de sécurité, comme OWASP Mobile Application Security. Le OWASP Developer Guide, qui est une ressource complète pour diverses autres ressources OWASP.
Une autre excellente ressource pour les exigences de référence et les pratiques d'assurance est OpenCRE qui rassemble et cartographie divers cadres de sécurité.
Le NIST Secure Software Development Framework (SSDF) définit quatre phases qui représentent différentes facettes pour la mise en œuvre de pratiques de développement logiciel sécurisé. Il s'aligne sur les principes de FIASSE en soulignant l'intégration de la sécurité dans le cycle de vie du développement logiciel.
Le NCSC Software Security Code of Practice définit les résultats souhaités et certaines stratégies clés. Alors que le cadre FIASSE se concentre sur les principes et stratégies de suivi de premier niveau pour atteindre des résultats sécurisables, destinés aux équipes de développement et d'assurance pour s'aligner sur les stratégies commerciales. Le SSEM spécifie les attributs utilisés pour produire les résultats souhaités, et la méthodologie FIASSE fournit des conseils pratiques pour mettre en œuvre ces attributs dans les pratiques de génie logiciel.
Le CERT de l'Université Carnegie Mellon est un ensemble de règles au niveau du langage fournissant à la fois des exemples de « ce qu'il ne faut pas faire » montrant des modèles de code vulnérables et des exemples de « ce qu'il faut faire ». FIASSE complète ces règles en fournissant une approche fondée sur des principes qui aide les programmeurs à comprendre le « pourquoi ? » derrière le code sécurisable.
Le Software Factory Security Framework (SF2) « fournit aux responsables de la sécurité une approche stratégique pour faire évoluer les capacités de sécurité tout en améliorant les résultats commerciaux. » C'est un cadre au niveau organisationnel qui complète l'accent mis par FIASSE sur les pratiques de génie logiciel.
Les contributions visant à améliorer la documentation et les exemples sont les bienvenues. Veuillez consulter nos directives de contribution pour plus de détails.
Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) - voir le fichier LICENSE pour plus de détails.
Ce projet est un effort collaboratif de la communauté OWASP. Nous remercions tous les contributeurs pour leur précieuse contribution et leur dévouement à l'amélioration de la sécurité logicielle.
Il existe une liste des contributeurs qui ont participé à ce projet. Certains contributeurs précoces ont aidé à façonner les concepts initiaux et à tester les idées.