La sécurité des applications est en enjeu majeur pour les entreprises. Avec 69% d’entre elles ayant déjà subi des incidents de sécurité lors d’une mise en production applicative selon une étude Micro-Focus 2019, les bénéfices d’une démarche DevSecOps ne sont plus à démontrer. Face à la multiplication des risques, le concept DevSecOps est étudié de plus en plus attentivement par les entreprises mondiales mais n’en reste pas moins un marché encore immature en France face aux freins culturels, stratégiques ou technologiques qu’il génère. Cependant, avec une méthodologie et des outils intégrés, il va optimiser et accélérer le travail des développeurs. Explications, …
Les initiatives de transformation numérique, combinées à une main-d’œuvre hybride, ont élargi les surfaces d’attaque et augmenté les risques de violation. Les cybercriminels redoublant d’ingéniosité pour cibler les vulnérabilités logicielles des entreprises, fournir du code sécurisé devient ainsi un enjeu majeur.
Pour identifier, corriger et prévenir les failles de sécurité et les risques associés sans ralentir le développement ou impacter le délai de mise sur le marché des logiciels, les entreprises misent sur le DevSecOps, ou l’intégration de la sécurité au sein d’une approche DevOps à toutes les étapes du cycle de développement. Ce concept en vogue implique de penser la sécurité des applications et de l’infrastructure comme partie intégrante du développement applicatif. Il repose sur la conviction fondamentale que les équipes de sécurité et de développement en sont co-responsables, fédérant ensemble le développement, la sécurité et les processus opérationnels. Mais il existe aujourd’hui un écart important entre les besoins de développement de code sécurisé d’une organisation et le niveau de connaissance et de formation Appsec des développeurs.
Une nouvelle approche d’analyse du code au sein d’un DevSecOps new Edge
Par le passé, les programmes AppSec étaient conçus pour analyser le code statique (ex SAST). A la recherche d’erreurs pouvant potentiellement conduire à des vulnérabilités, les équipes sécurité testaient la totalité de la base de codes à la toute fin du processus de développement et dans ce modèle, les développeurs devaient revenir en arrière pour corriger une par une les lignes de code touchées. Une fois cette opération terminée, se mettaient ensuite en place l’analyse de code dynamique (DAST) visant à simuler des attaques pour déterminer la réaction d’une application dans le monde réel. Dans le cas de la détection de problèmes additionnels, les développeurs revenaient une fois de plus en arrière pour résoudre les vulnérabilités d’exécution. Même si ces deux approches ont pour finalité de renforcer la sécurité, elles ne permettent pas de répondre aux impératifs DevSecOps modernes (retards de versions, dissonances entre les équipes de sécurité et de développement souvent sillotées, …).
Si d’un point de vue purement fonctionnel, les organisations devront toujours effectuer une analyse incrémentielle de code source à la recherche de vulnérabilités, la clé serait d’intégrer ces fonctionnalités directement dans les outils utilisés par les développeurs lors de l’écriture, l’extraction, la fusion et l’intégration de lignes de code. Dans le cas contraire, cette analyse ne pourra pas s’intégrer efficacement dans les initiatives DevSecOps sans ralentir la livraison et le déploiement logiciel. Deuxièmement, l’utilisation de composants open source et de bibliothèques tierces devenant courant dans les pratiques de développement logiciels modernes, les organisations devront également effectuer une analyse de composition logicielle SCA pour dresser l’inventaire des Open Source utilisés dans une application. Si cette approche est effectuée avec l’analyse de code statique, elle fonctionnera mieux dans DevSecOps, car elle ne ralentira pas non plus la livraison et le déploiement. Enfin, les organisations devront également effectuer une analyse interactive de la sécurité pendant l’exécution des builds. L’approche optimale est d’appliquer cette analyse durant les tests fonctionnels pour éviter les délais supplémentaires inattendus.
Pour résumé, adopter et implémenter de nouvelles approches d’analyse du code adaptées aux objectifs DevSecOps implique de fédérer et de comprendre les fonctionnalités de chaque solution – SAST (analyse du code source), SCA (analyse des open sources) et IAST (analyse temps réel des applications en cours d’exécution) – et de les appliquer exactement au moment et à l’endroit où elles font le plus de sens pour les développeurs.
DevSecOps : Faire émerger une culture de la sécurité logicielle dans l’entreprise c’est donner aux développeurs les moyens de fournir du code sécurisé
Face à un Time to Market accéléré, les développeurs travaillent sous pression pour produire des applications fiables le plus rapidement possible et de ce fait, de multiples erreurs peuvent subvenir dans le code. A cela s’ajoutent comme indiqué précédemment des risques additionnels liés à l’utilisation accrue de composants tiers et open source ou encore la multiplication des plateformes d’hébergement avec le multicloud. Dans ce contexte, les développeurs ont ainsi besoin d’outils et de formations qui leur permettent de garantir une sécurité du code optimale. Selon une étude menée par DarkReading, 78 % des responsables IT interrogés décrivent la sécurité comme une cause importante de retard de déploiement des applications, mais seulement 26% estiment leurs développeurs très bien formés au codage sécurisé.
Si le DevSecOps se base sur une meilleure synergie de travail entre les équipes de développement et de sécurité tout au long des projets, la montée en puissance des développeurs en matière de sécurité du code va indubitablement permettre d’alléger les contraintes techniques liées à la sécurité sans ralentir la cadence DevOps. Elle va renforcer les connaissances en matière de failles et de scenario d’attaques, améliorer et réduire les temps de débogage tout en limitant en amont le nombre de failles produites directement dans le code. Un environnement de travail qualitatif et propice à la productivité !
Les développeurs ont un rôle crucial à jouer dans les initiatives logicielles sécurisées d’une organisation. Des fonctionnalités d’analyse de code statique, open source et des applications en cours d’exécution réalisées au sein d’une approche d’analyse de code transparente, intégrée et automatisée tout en donnant aux développeurs des armes en matière de sécurité. C’est à ce prix que la notion de DevSecOps pourra réellement se concrétiser.
___________________
Par Frédéric Patouly, Directeur Régional France et Bénélux, Checkmarx
À lire également :
> De DevOps à DevSecOps : les défis liés à l’intégration de la cybersécurité dans le DevOps.
> Cybersécurité : la confiance est morte, vive la « confiance zéro » !
> DevSecOps – 6 étapes pour réussir sa transition.
> Cybersécurité : les entreprises ont encore un long chemin à parcourir…