Les développeurs au cœur de la montée en charge des projets DevSecOps

La sécurité des applications est un 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 de 2019, les bénéfices du DevSecOps ne sont plus à démontrer. Face à la multiplication des risques, adopter une démarche DevSecOps est étudié de plus en plus attentivement par les entreprises internationales mais il n'en reste pas moins que le marché est encore peu développé en France.

Les initiatives de transformation numérique, combinées à une main-d’œuvre hybride, ont élargi les surfaces d’attaque et augmenté les risques de cyberattaques. Les cybercriminels redoublant d’ingéniosité pour cibler les vulnérabilités logicielles des entreprises, fournir du code sécurisé est devenu 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 beaucoup sur le DevSecOps, ou l’intégration de la sécurité au sein d’une approche DevOps à chaque étape du cycle de développement (SDLC). 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.

DevSecOps New Edge : une nouvelle approche d’analyse du code

Par le passé, les programmes AppSec étaient conçus pour analyser uniquement le code source de manière statique (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 mettait 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 silotées, …).

Si d’un point de vue purement fonctionnel, les organisations devront toujours effectuer une analyse incrémentale 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 composants tiers utilisés dans une application. Si cette approche est effectuée conjointement avec l’analyse de code statique, elle fonctionnera mieux dans une approche DevSecOps, car elle ne ralentira pas non plus la livraison et le déploiement. Dans le cadre du déploiement des applications dans le Cloud, une analyse sécurité des scripts qui vont permettre d’instancier l’infrastructure qui va héberger l’application (Infra As Code) est également nécessaire. Enfin, les organisations devront également effectuer une analyse dynamique de la sécurité en intégrant ces tests durant les phases de tests fonctionnels, de qualification / recette ou de non-régression pour éviter tous délais supplémentaires inattendus. Et seule la corrélation de l’ensemble de ces résultats d’analyse permettra de donner une vision 360 de la sécurité de la solution (code source, composants tiers, Infra as Code) qui sera mise à disposition des utilisateurs finaux.

En 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), IAST (analyse dynamique en temps réel des applications en cours d’exécution) et IAC (analyse des scripts Infrastructure As Code) – et de les appliquer exactement au moment et à l’endroit où elles font le plus de sens pour les développeurs.

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 multi-cloud. 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 récente é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, pourtant seulement 26% estiment leurs développeurs très bien formés au développement sécurisé. Une aberration !

Si le DevSecOps se base sur une meilleure synergie 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 de sécurisation des logiciels d’une organisation. A cette fin, seule l’intégration automatisée et transparente d’outils d’analyse de sécurité à tous les niveaux du SDLC peut permettre aux développeurs de délivrer des applications sécurisées et de s’inscrire dans une véritable démarche DevSecOps.