Sécuriser le développement de nouvelle génération : enseignements de Trust Bank et TASConnect
Gerald Crescione
5 juin 2024
0 minutes de lectureAujourd’hui, une application moyenne compte des milliers d’éléments interconnectés. Les organisations déploient leurs applications dans des environnements multicloud, avec des conteneurs et des microservices, en combinant du code écrit par leurs équipes internes, généré par l’IA et sélectionné auprès de tiers.
Les équipes de sécurité ont fort à faire pour protéger ces applications complexes, d’autant plus que les attaques de la chaîne d’approvisionnement logicielle se multiplient. Elles doivent trouver comment intégrer la sécurité aux nouvelles pratiques établies, comme le code généré par l’IA, tout en tenant compte de la vitesse de développement et des résultats de l’entreprise.
Snyk a eu l’occasion d’organiser une session à Black Hat Asia consacrée aux bonnes pratiques pour répondre à ces nouvelles complexités et à ces défis. Deux experts du secteur ont participé à cette conversation : Jerome Walter, RSSI de Trust Bank Singapore, et Madhi Periannan, directeur technique de TASConnect Singapore.
Poursuivez votre lecture pour découvrir l’expérience concrète des intervenants face aux défis de sécurité du développement logiciel de nouvelle génération, et les moyens qu’ils ont trouvés pour les surmonter.
En quoi consiste le développement logiciel de nouvelle génération et quel est son impact sur la sécurité des applications ?
Selon les intervenants, le développement logiciel « de nouvelle génération » se caractérise généralement par trois facteurs.
Une architecture complexe
Une application moyenne comprend plusieurs éléments architecturaux, tels que des microservices, et se connecte à de nombreuses bibliothèques externes et plateformes SaaS. Les équipes de développement les conçoivent selon une approche agile et rapide. Cette complexité complique la tâche des équipes de sécurité, qui doivent atténuer les risques liés aux applications d’aujourd’hui. Walter explique : « Les logiciels actuels sont composés de bibliothèques externes et interconnectés avec des plateformes SaaS que nous ne maîtrisons pas entièrement… Pour assurer la sécurité des logiciels, il faut donc maîtriser l’infrastructure et comprendre le SaaS ainsi que les logiciels tiers. »
L’essor rapide des outils d’IA
Les équipes de développement actuelles utilisent également des outils d’IA générative, comme GitHub Copilot et Google Gemini, pour produire du code plus rapidement. Si cette vitesse peut favoriser l’agilité de l’entreprise, elle signifie aussi que du code sécurisé comme du code non sécurisé entre dans le pipeline à une vitesse sans précédent.
Une présence dans plusieurs environnements cloud et zones géographiques
En outre, les logiciels de nouvelle génération fonctionnent généralement dans un environnement multicloud et sont accessibles à des employés et des clients du monde entier. Periannan explique : « Aujourd’hui, les applications doivent être déployées dans plusieurs clouds et dans plusieurs pays. C’est là que la complexité intervient. Nous avons donc besoin de meilleurs outils pour gérer la sécurité dans différentes zones géographiques. »
Trouver le bon équilibre entre personnes, processus et outils pour sécuriser les applications de nouvelle génération
Pour relever ces défis, il faut trouver le bon équilibre entre les personnes, les processus et les outils. Cet équilibre repose notamment sur le partage des responsabilités entre les équipes de développement et de sécurité, selon une approche DevSecOps. En donnant aux équipes de développement les moyens de corriger les problèmes tout au long de ces cycles de vie complexes, les organisations peuvent limiter les risques qui atteignent la production. Walter et Periannan ont formulé quelques recommandations pour instaurer une culture de la responsabilité en matière de sécurité, notamment :
Adopter une approche proactive plutôt que réactive.
Selon les intervenants, la sécurité doit être proactive et non réactive. Walter explique que cette approche consiste à considérer la sécurité comme un parcours, et non comme un changement qui s’opère en un jour. Pour entamer ce parcours vers une sécurité proactive, il recommande de « déployer des outils comme Snyk, qui fournissent immédiatement des retours et des analyses ».
Ces outils aident les développeurs à corriger les problèmes en leur fournissant des retours adaptés et des conseils de remédiation. Dans certains cas, la sécurité ne se résume pas à publier un correctif. Les développeurs ont parfois intérêt à examiner l’architecture et à la repenser pour atténuer les risques. Comme ce sont eux qui connaissent le mieux le code, les équipes de développement sont les mieux placées pour mettre en œuvre les correctifs les plus efficaces.
Cette approche proactive favorise également de meilleures relations entre les équipes de sécurité et de développement. Periannan explique : « Avec les bons outils et les bons modèles de menace, nous ne sommes pas en mode panique ni en situation de “gestion de crise”, ce qui n’est pas la meilleure expérience pour les développeurs. »
Voici quelques autres moyens d’adopter une approche proactive :
Utiliser la modélisation des menaces pour comprendre l’impact potentiel des vulnérabilités existantes et mieux hiérarchiser les risques
Définir des méthodes de remédiation à chaque étape du cycle de vie du développement logiciel
Instaurer une culture du « shift left » qui place la sécurité dès la conception, au début du pipeline
Adopter une approche axée sur les développeurs
Walter souligne également l’importance de faciliter le travail des développeurs. Il explique : « Les développeurs consacrent énormément de temps aux opérations de sécurité : rotation des mots de passe, application de correctifs, etc. Nous voulons les aider à consacrer davantage de temps aux activités de l’entreprise en automatisant une partie des tâches d’hygiène de sécurité. »
Voici quelques moyens de faciliter le quotidien des développeurs :
Automatiser autant que possible les tâches routinières, comme la rotation des mots de passe
Fournir aux développeurs les informations dont ils ont besoin pour réussir, par exemple sous forme de formations régulières à la sécurité et de conseils de remédiation
Prendre le temps de hiérarchiser les risques avec précision permet aux développeurs de se concentrer sur les correctifs les plus importants
Adopter une approche axée sur les développeurs, c’est aussi s’attaquer directement aux frictions entre les équipes de développement et de sécurité. Pour améliorer leurs relations, il faut instaurer le dialogue et vraiment comprendre les difficultés rencontrées par les développeurs, leurs flux de travail quotidiens, etc. L’équipe de sécurité doit aussi montrer qu’elle respecte le temps des développeurs et qu’elle cherche activement de meilleures approches. L’une des principales consiste à faire évoluer la sécurité des applications afin de privilégier une hiérarchisation précise des risques, fondée sur le contexte et la possibilité d’exploitation, plutôt que d’envoyer aux développeurs de longues listes de vulnérabilités.
Mesurer la réussite de la sécurité des applications dans un environnement logiciel complexe
Le suivi des indicateurs pertinents est un autre facteur de réussite en matière de sécurité. Walter et Periannan recommandent de commencer par cinq domaines, notamment :
La mise en place de formations à la sécurité, avec un suivi permettant de vérifier que toutes les personnes impliquées dans le cycle de vie du développement logiciel (SDLC) les suivent jusqu’au bout
La couverture des tests de sécurité à tous les niveaux du développement, notamment le code propriétaire, les composants open source, l’infrastructure sous forme de code, les conteneurs, etc., afin de mesurer les progrès réalisés en matière de couverture des différentes fonctions de développement dans l’ensemble du pipeline
Les tests de vulnérabilités critiques et élevées, afin d’évaluer la capacité de l’organisation à réduire le nombre de vulnérabilités au fil du temps
Le délai d’application des correctifs et de remédiation, afin de mesurer les gains d’efficacité du programme au fil du temps
Le nombre d’automatisations de sécurité, afin de montrer que l’équipe de sécurité cherche à adopter une approche plus rapide et plus efficace
Bien que ces indicateurs concernent la sécurité, ils peuvent aussi être directement liés aux KPI de l’entreprise. Ces liens entre sécurité et objectifs métier peuvent être surprenants, comme l’illustre le cas d’un client de Snyk dans le secteur financier. Cette organisation souhaitait améliorer son Net Promoter Score (NPS) et s’est appuyée sur les outils de sécurité de Snyk pour y parvenir. En rendant la détection et la correction des vulnérabilités plus efficaces, Snyk a permis à l’équipe de déployer des correctifs pendant des fenêtres de maintenance plus courtes, ce qui a fait progresser le NPS.
Walter explique également : « Le délai de remédiation est un facteur important de notre capacité à livrer des logiciels. Il est aussi directement lié à la capacité de votre entreprise à proposer de nouvelles fonctionnalités. Plus votre développement logiciel est agile, plus l’application des correctifs l’est aussi. Si vous pouvez déployer une nouvelle fonctionnalité dès demain, vous pouvez également appliquer un correctif dès demain. Comprendre que gagner en rapidité sert à la fois la sécurité et l’entreprise permet d’engager une discussion constructive avec les équipes métier. »
Écoutez l’intégralité de la session de Black Hat Asia
Pour renforcer la sécurité de leurs applications face à l’évolution des cybermenaces et aux progrès technologiques, les organisations doivent privilégier des pratiques proactives qui facilitent le travail des développeurs. Selon les intervenants, cette approche commence par quelques changements d’état d’esprit.
Tout d’abord, les équipes doivent comprendre que la sécurité est une démarche continue : il ne suffit pas d’appliquer une fois les bonnes pratiques, comme la modélisation des menaces. Il faut mettre en œuvre et surveiller en permanence les contrôles de sécurité.
Par ailleurs, les équipes de sécurité doivent repenser la façon dont elles envisagent les relations entre les développeurs et la sécurité. Les équipes de développement ont souvent les idées et les méthodes les plus innovantes pour corriger les problèmes, car elles connaissent le mieux le code et les autres composants des applications.
Pour en savoir plus sur la manière de renforcer les relations entre les équipes de sécurité et de développement dans le cadre du développement logiciel de nouvelle génération, écoutez la session « Sécuriser le développement logiciel de nouvelle génération : défis et solutions ».

