L'approche des équipes de développement en matière de cybersécurité doit constamment évoluer à mesure que les surfaces d'attaque augmentent et qu'elles en apprennent davantage sur les menaces potentielles. Sachant que les menaces peuvent provenir de n'importe quel point de la chaîne d'approvisionnement logicielle, le concept Secure by Design intègre la sécurité dans les phases de design, de codage, de test et de déploiement du développement logiciel. Élevé au rang de norme pour les agences fédérales américaines, et pour toute entreprise utilisant leurs logiciels, le concept Secure by Design est devenu une véritable référence pour l'intégration de la sécurité dans le cycle de développement logiciel.
Au fil du temps, le concept Secure by Design s'est ramifié en concepts connexes tels que Secure by Default et Secure by Demand, lesquels mettent l'accent sur différentes façons d'aborder les principes Secure by Design :
- Le concept Secure by Default vise à garantir que tous les produits logiciels sont sécurisés dès leur déploiement.
- Le concept Secure by Demand étend les principes du concept Secure by Design au processus d'achat.
Découvrez ci-dessous un examen plus approfondi des principes Secure by Design et de ces approches connexes, ainsi qu'un guide étape par étape pour aider les équipes de développement à adapter leurs stratégies afin de prévenir les vulnérabilités exploitables et les attaques de la chaîne d'approvisionnement logicielle.
Les principes Secure by Design
L'agence de cybersécurité et de sécurité des infrastructures américaine (CISA) a présenté en avril 2023 son initiative Secure by Design en insistant sur trois principes clés en matière de sécurité des logiciels :
- Prendre en charge les résultats en matière de sécurité des clients
- Adopter une approche radicalement transparente et responsable
- Mettre en place une structure organisationnelle et un leadership permettant d'atteindre ces objectifs
Le concept Secure by Design intègre des principes et des protocoles de sécurité à chaque étape du processus de développement logiciel. Les mesures de sécurité sont ainsi considérées comme une priorité et intégrées directement dans les phases de design, de codage, de test et de déploiement du développement logiciel.
L'objectif du concept Secure by Design est de créer une structure sécurisée pour les logiciels dès leur conception, en réduisant les vulnérabilités et les surfaces d'attaque potentielles.
Les principes Secure by Default
Variante du concept Secure by Design, le concept Secure by Default vise à garantir que tout logiciel ou matériel est configuré de la manière la plus sûre possible, sans que l'utilisateur ait à le reconfigurer. Les produits appliquant les principes Secure by Default activent automatiquement les contrôles de sécurité essentiels pour protéger les entreprises contre les accès non autorisés par des acteurs malveillants. Les utilisateurs n'ont donc pas besoin de suivre des étapes supplémentaires pour s'assurer qu'un produit est protégé contre les techniques d'exploitation les plus courantes.
Les stratégies du concept Secure by Default comprennent l'élimination des mots de passe par défaut, l'authentification à plusieurs facteurs et l'authentification unique, afin que seuls les utilisateurs autorisés puissent accéder aux ressources. Cette approche comprend également des mises à jour et des correctifs automatiques, ainsi que des configurations sécurisées pour tous les comptes d'utilisateurs et les appareils.
Les principes Secure by Demand
Le concept Secure by Demand associe les principes Secure by Design à la budgétisation et aux achats afin de faire du concept Secure by Design un impératif pour les fournisseurs et les sous-traitants. Le guide du concept Secure by Demand de la CISA propose une série de questions et de ressources que les acquéreurs de logiciels, les acheteurs et les responsables des achats peuvent utiliser pour mieux comprendre l'approche d'un fournisseur potentiel en matière de cybersécurité. Il s'agit notamment de questions sur les pratiques d'authentification du fournisseur, sur la sécurité de la chaîne d'approvisionnement logicielle, ainsi que sur la divulgation et le signalement des vulnérabilités.
En exigeant des fournisseurs qu'ils adhèrent aux principes et protocoles du concept Secure by Design dans leurs produits et services, les entreprises peuvent contribuer à empêcher les vulnérabilités potentielles de s'introduire dans leur chaîne d'approvisionnement logicielle. L'approche Secure by Demand incite également les fournisseurs à améliorer en permanence leur propre dispositif de cybersécurité.
Élaborer une stratégie de cybersécurité selon les principes Secure by Design
La mise en œuvre du concept Secure by Design passe par la mise en place de pratiques DevSecOps efficaces, la tenue à jour d'une nomenclature logicielle (SBOM) et l'intégration de l'IA pour lutter contre les menaces à tous les points du cycle de développement logiciel.
Adopter les pratiques DevSecOps
L'une des premières étapes nécessaires à la mise en œuvre du concept Secure by Design consiste à mettre en place un processus de développement logiciel sécurisé. Il s'agit donc de développer, construire, sécuriser et déployer des logiciels à l'aide d'une approche DevSecOps complète.
Aujourd'hui, de nombreuses équipes de développement utilisent des outils complexes pour créer de nouveaux programmes. Selon une récente enquête de GitLab, 62 % des personnes interrogées affirment utiliser 6 outils ou plus pour le développement, tandis que 20 % disent en utiliser au moins 11. Cette inefficacité accroît les risques en introduisant des failles de sécurité potentielles.
Les développeurs devraient pouvoir accéder à tous les outils nécessaires aux workflows DevSecOps dans une interface unique et facile à utiliser. Une solution de bout en bout telle qu'une plateforme DevSecOps permet la mise en œuvre d'une approche Secure by Design sans alourdir la charge de travail des équipes de développement.
Créer et tenir à jour des SBOM
La transparence est un autre élément essentiel du concept Secure by Design. Les entreprises doivent comprendre ce que contiennent leurs logiciels, en particulier lorsqu'ils peuvent inclure des composants provenant de sources multiples.
Les SBOM sont des outils essentiels pour parvenir à cette transparence. En offrant un inventaire détaillé des composants logiciels, y compris la version, la licence et les dépendances, elle permettent de mieux cerner les vulnérabilités potentielles ou les codes malveillants.
La tenue à jour de cet inventaire permet de comprendre pleinement les vulnérabilités et les risques qui pourraient survenir lorsque des éléments sont extraits de dépôts open source et de composants tiers sous licence. Une plateforme DevSecOps peut aider à générer et mettre à jour automatiquement les SBOM, à les intégrer dans les workflows existants et à les relier aux vulnérabilités associées.
Bien que de nombreuses entreprises utilisent aujourd'hui des SBOM, celles-ci doivent être dynamiques, connectées à des outils de scanning de sécurité et mises à jour en permanence pour être pleinement efficaces. Intégrées à des outils de scanning et à des tableaux de bord, les SBOM permettent d'identifier les risques liés à une application. Même lorsqu'elles ne sont pas requises, les SBOM peuvent contribuer à la conformité aux règles de sécurité en validant que le code est sécurisé.
Utiliser l'IA dans le développement logiciel
Alors que les entreprises explorent les possibilités de l'IA, les workflows de développement logiciel constituent un point d'entrée précieux pour intégrer cette technologie et exploiter son potentiel à accélérer les processus de développement et à renforcer la sécurité.
Les entreprises de tous les secteurs commencent déjà à explorer ces applications : 39 % des personnes interrogées au cours de l'enquête de GitLab ont déclaré qu'elles utilisaient déjà l'IA dans leur cycle de développement logiciel.
Le recours à l'IA dans l'ensemble du cycle de développement logiciel permet d'éviter les effets de silo et les backlogs générés par l'utilisation de multiples IA dans les différents workflows de développement. L'IA peut remplir des fonctions essentielles telles que :
- L'explication du code et le réusinage du code hérité en langages à mémoire sécurisée
- L'analyse des causes profondes pour les pipelines DevSecOps, qui permet de résoudre rapidement des problèmes complexes pendant les tests
- La résolution des vulnérabilités pour comprendre les vulnérabilités connues et favoriser une remédiation plus approfondie
Alors que les leaders du secteur intègrent l'IA dans leurs workflows, il est crucial de faire de la confidentialité et de la sécurité des données une priorité. Un aspect essentiel de l'adoption du concept Secure by Design est l'élaboration d'une stratégie d'IA qui protège les données sensibles et les droits de propriété intellectuelle.
Prochaines étapes
Le concept Secure by Design pourrait bientôt devenir l'approche par défaut pour créer un écosystème logiciel plus fiable. Le gouvernement américain travaille actuellement avec des équipes de développement logiciel pour créer des frameworks incitant légalement le secteur privé à produire et à sortir des logiciels répondant aux principes Secure by Design, afin de pousser les entreprises à investir davantage dans les technologies et les pratiques sécurisées.
Grâce à l'intégration de la sécurité dès le départ dans le développement logiciel, à la transparence garantie par des SBOM efficaces et à l'amélioration du processus de développement par l'IA, toutes les personnes impliquées dans le cycle de développement logiciel seront en mesure de mener leurs projets à bien.
Guide de GitLab sur les nomenclatures logicielles dynamiques : un élément essentiel du développement logiciel moderne
Découvrez comment gagner en visibilité sur des risques organisationnels jusqu'alors non identifiés grâce à une nomenclature logicielle (SBOM).
Consulter le guide