Le 11 juin 2019, le National Institute of Standards and Technology (NIST) a publié un livre blanc mis à jour contenant des informations détaillées. Ce document présente plusieurs plans d'action visant à réduire les vulnérabilités logicielles et les risques cybernétiques. Intitulé « Atténuer les risques liés aux vulnérabilités logicielles grâce à l'adoption d'un cadre de développement logiciel sécurisé (SSDF) », le NIST fournit aux organisations des directives claires pour éviter les conséquences désagréables des violations de données, sans parler des coûts élevés qu'elles entraînent.
À titre indicatif, le SSDF ne présume pas que toutes les organisations partagent les mêmes objectifs en matière de sécurité logicielle et ne prescrit pas de mécanismes précis pour atteindre ces objectifs. Son objectif principal est de mettre en œuvre les meilleures pratiques en matière de sécurité. L'auteure Donna Dodson a déclaré : « Chaque concepteur de sécurité souhaite que toutes les pratiques applicables soient respectées, mais le degré de mise en œuvre de chaque pratique dépendra des hypothèses de sécurité du concepteur. Ces pratiques offrent une certaine flexibilité aux développeurs, mais il est également clair qu'elles ne doivent pas laisser trop de place à l'interprétation. »
Il est particulièrement intéressant de noter que le contenu spécifique de la formation sur la sécurité logicielle destinée aux développeurs a été inclus. Nous savons depuis longtemps que les développeurs ont besoin d'une formation adéquate pour protéger leur organisation dès le début du processus de développement logiciel. Cependant, qu'entend-on exactement par « adéquate »? Il existe de nombreuses opinions différentes à ce sujet. Néanmoins, nous pensons que nous élargissons enfin nos limites dans une direction qui apportera des résultats positifs significatifs.
Il existe également des formations en matière de sécurité, et certaines sont particulièrement efficaces.
J'ai longuement discuté de la nécessité de mettre en œuvre plus efficacement la formation à la sécurité logicielle et de l'adapter aux besoins des développeurs. À l'heure actuelle, de nombreuses organisations se contentent encore d'exercices « standardisés ».Il est possible que l'on consacre plusieurs heures à des formations vidéo ou à l'utilisation d'outils d'apprentissage en classe, ce qui représente un investissement de temps précieux. Le fait que des attaques exploitant des vulnérabilités bien connues (et généralement faciles à corriger) se produisent tous les deux jours, entraînant des violations de données à grande échelle, démontre que la formation à la sécurité logicielle n'est pas aussi efficace qu'elle devrait l'être. Et le plus important est peut-être qu'il existe peu de moyens de vérifier si la formation a été efficace. Les vulnérabilités ont-elles été corrigées plus rapidement ? La vulnérabilité du code a-t-elle diminué ? Les personnes ont-elles réellement suivi la formation ? Ou ont-elles simplement cliqué sur « Suivant » pour la terminer ?
Les développeurs sont des personnes très occupées qui travaillent dur pour respecter des délais stricts. La sécurité est souvent source de nombreux désagréments et, dans la plupart des cas, les formations ne permettent pas d'acquérir les connaissances nécessaires pour atténuer efficacement les cyberrisques. En général, lorsque les membres de l'équipe AppSec signalent des failles dans le travail, le mot « sécurité » vient immédiatement à l'esprit, ce qui rend les relations quelque peu tendues et empêche le bon fonctionnement du système. C'est un peu comme si on disait : « Le bébé est laid, va le refaire ».
Qu'est-ce que cela nous indique ? Le manque d'intérêt des développeurs pour la sécurité est un signal d'alarme qui existe depuis des décennies. Les développeurs ne sont pas motivés à assumer leurs responsabilités et ne recherchent pas les outils nécessaires pour créer des logiciels fonctionnels et conformes aux meilleures pratiques en matière de sécurité.
Les développeurs sont intelligents, créatifs et aiment résoudre des problèmes. Il est peu probable que le visionnage incessant de vidéos sur les failles de sécurité suscite leur intérêt ou les incite à s'impliquer.En tant que formateur SANS, j'ai rapidement compris que la meilleure formation était celle qui permettait aux apprenants de tester leurs connaissances, d'analyser et de mettre à l'épreuve leurs capacités intellectuelles à l'aide d'exemples concrets basés sur des connaissances préalables. La gamification et la compétition amicale sont également des outils puissants qui permettent à chacun d'assimiler de nouveaux concepts tout en restant utiles et pratiques dans le domaine d'application.
Les directives du NIST stipulent ce qui suit : « Offrez une formation spécifique à chaque rôle à tous les employés qui ont des responsabilités en matière de développement sécurisé. Réexaminez régulièrement les formations spécifiques à chaque rôle et mettez-les à jour si nécessaire. » Ensuite : « Définissez les rôles et les responsabilités des employés chargés de la cybersécurité, des champions de la sécurité, des cadres supérieurs, des développeurs de logiciels, des propriétaires de produits et des autres personnes impliquées dans le SDLC. »
Bien que cette déclaration ne soit pas spécifique au type de formation, elle contribue néanmoins à transformer l'organisation et à garder à l'esprit les meilleures pratiques en matière de sécurité. Elle renvoie la responsabilité à l'entreprise de trouver des solutions de formation efficaces et plus spécifiques, dans l'espoir que les développeurs disposeront ainsi des outils et des connaissances nécessaires à leur réussite.
Culture : le chaînon manquant.
Même si l'organisation investit du temps et des ressources dans la formation des développeurs et autres employés clés, en mettant l'accent sur la prévention des vulnérabilités et la réduction des risques de sécurité, ces efforts peuvent souvent s'avérer vains si la culture de sécurité de l'organisation est fondamentalement défaillante.
En formant efficacement les individus, en définissant des objectifs et en clarifiant les attentes, il devient beaucoup plus facile de comprendre sa place dans l'environnement de sécurité et d'assumer les responsabilités appropriées. Les développeurs, en particulier, reçoivent dès le départ les outils et les connaissances nécessaires pour écrire du code sécurisé. Cependant, c'est dans un environnement de sécurité positif, caractérisé par un minimum de doublons, de transfert de responsabilités et de cloisonnement des projets, que cette approche peut être le mieux coordonnée.
La sécurité de l'ensemble de l'organisation doit être une priorité absolue, grâce à un soutien et une coopération visant à fournir des logiciels de qualité et sécurisés. En d'autres termes, il est possible de déployer des formations intéressantes et participatives qui exploitent les vulnérabilités réelles du code et d'obtenir le consentement de l'ensemble de l'organisation afin de disposer d'un budget suffisant pour maintenir cette tendance. Dans un environnement numérique en constante évolution, la formation doit être aussi continue que la diffusion. Dans le passé, on considérait que la formation à la conformité, « une fois pour toutes », était appropriée ou efficace, mais il s'agit d'une idée erronée. « à configurer une fois pour toutes », c'est une erreur.
Bien que ce nouveau cadre du NIST ne spécifie pas explicitement les exigences relatives à la création d'une culture de sécurité positive, celles-ci sont indispensables pour garantir le respect des directives. Il convient toutefois de noter que les organisations doivent « définir une politique précisant les exigences de sécurité auxquelles leurs logiciels doivent satisfaire, y compris les pratiques de codage sécurisé que les développeurs doivent respecter ».
Les éléments ci-dessus sont essentiels pour développer et perfectionner les compétences en matière de sécurité au sein de l'équipe. Il peut être utile de prendre en considération les points suivants lors de l'évaluation de votre propre politique et de votre environnement AppSec actuel.
- Les directives et les attentes en matière de sécurité logicielle sont-elles clairement définies ?
- Est-ce que tout le monde comprend clairement le rôle qu'il joue dans la réalisation des objectifs ?
- La formation est-elle fréquente et évaluée ?
- Les développeurs sont-ils conscients de l'importance de leur rôle dans l'élimination des bogues de sécurité courants avant qu'ils ne surviennent ?
Comme mentionné précédemment, la dernière partie dépend principalement de l'organisation et de la formation choisie par celle-ci. Elle doit être pertinente, fréquente et susciter une forte participation. Recherchez des solutions applicables à vos tâches quotidiennes et acquérez des connaissances adaptées à votre situation.
Que devons-nous faire maintenant ?
Il peut être relativement complexe d'examiner en détail ces nouvelles directives. Il est nécessaire de déployer des efforts considérables pour créer, vérifier et déployer les logiciels de sécurité rigoureux requis par la plupart des entreprises de la manière la plus sécurisée possible. Cela ne se limite pas à la formation. Il existe des directives à prendre en compte lors de l'utilisation de logiciels tiers. (utilisation de composants présentant des vulnérabilités connues, toujours présentes dans le classement OWASP Top 10), des recommandations en matière de vérification, de tests d'intrusion et de révision du code, des directives sur la conservation des enregistrements de sécurité, des chaînes d'outils appropriées et bien d'autres éléments. Vous trouverez des informations exploitables sur l'ensemble de ces questions dans l'ouvrage du Dr Gary McGraw, le modèle BSIMM, quiest référencé dans l'ensemble des documents du NIST.
Cependant, en fournissant aux développeurs les outils et les connaissances appropriés pour créer des logiciels sécurisés dès le départ, il est possible d'obtenir des résultats plus rapides. Prévenir les vulnérabilités courantes qui apparaissent à la fin du cycle de vie du développement logiciel (SDLC) est plus économique pour l'entreprise (et globalement plus rapide). Il est recommandé de mettre en avant leurs atouts et de les encourager à s'impliquer dans la sécurité de l'organisation.Cela pourrait s'avérer très intéressant et ils pourraient devenir les héros dont vous avez besoin pour empêcher les personnes malveillantes d'accéder à vos données et les protéger.
Références :
- Réduction des risques liés aux vulnérabilités logicielles grâce à l'adoption du SSDF (11 juin 2019) Page 2.
- Réduction des risques liés aux vulnérabilités logicielles grâce à l'adoption du SSDF (11 juin 2019), page 5.
- Atténuation des risques liés aux vulnérabilités logicielles grâce à l'adoption du SSDF (11 juin 2019), page 4.