3 stratégies pour apporter de la rigueur à la sécurité logicielle
Nous sommes au milieu d’un changement transformationnel dans la sécurité des logiciels. Les entreprises seront bientôt responsables des logiciels non sécurisés et ne pourront plus jouer la carte de la victime.
Récemment, l’administration du président Biden a publié sa stratégie nationale de cybersécurité tant attendue, créée dans l’espoir de « sécuriser tous les avantages d’un écosystème numérique sûr et sécurisé ». Comme prévu, il se concentre dans une large mesure sur la sécurité des logiciels et qui devrait être responsable de ses vulnérabilités. Déclarant que « les marchés imposent des coûts inadéquats et récompensent souvent les entités qui introduisent des produits ou services vulnérables », la stratégie appelle à rendre les organisations plus responsables de l’expédition de logiciels non sécurisés.
En mettant de côté le débat sur la réglementation par rapport aux forces du marché, il est difficile de contester l’affirmation implicite de la stratégie selon laquelle le code logiciel non sécurisé est endémique. En tant que professionnels de la sécurité, il est de notre devoir d’examiner pourquoi les logiciels non sécurisés sont si répandus et de comprendre comment y remédier. De plus, avec ce plan, la sécurité des logiciels ne serait plus un atout : les entreprises seront responsables de la sécurité de leurs produits. Il est donc temps d’apporter de la rigueur à la sécurité logicielle.
La racine des vulnérabilités
Les logiciels non sécurisés commencent souvent au début, là où les failles sont introduites. Mais avant de plonger, il est important d’être clair sur la terminologie.
Une « faille » est un défaut d’implémentation introduit lors de l’écriture du code qui peut conduire à une « vulnérabilité », une condition exploitable dans le code logiciel qui ouvre la porte à une attaque. Les défauts s’accumulent au fil du temps, ce qui entraîne une « dette de sécurité », les défauts que vous ne corrigez pas pendant la durée de vie d’une application. La dette de sécurité a été un moteur important de l’essor de DevSecOps, qui intègre la sécurité tout au long du cycle de vie du développement logiciel.
Le dernier rapport de recherche de Veracode sur l’état de la sécurité logicielle a examiné en détail les facteurs contribuant à l’introduction de failles, en utilisant des données tirées de l’analyse statique de plus de 750 000 applications.
Il a constaté que, quelle que soit leur taille, les demandes augmentent régulièrement d’environ 40 % par an au cours des cinq premières années. Mais le taux d’introduction de nouveaux défauts suit un schéma différent. Lorsqu’une nouvelle application est intégrée, le nombre de défauts subit une chute abrupte, très probablement lorsqu’une analyse initiale découvre des défauts accumulés. L’application entre ensuite dans la « phase de lune de miel » pendant la première année et demie, au cours de laquelle près de 80 % des applications n’introduisent aucune nouvelle faille. À la fin de la lune de miel, cependant, l’introduction de défauts augmente régulièrement jusqu’à atteindre un plateau vers la cinquième année.
Les failles les plus courantes découvertes varient considérablement en fonction du type d’analyse effectuée, car les analyses statiques, dynamiques et de composition logicielle impliquent différentes techniques et peuvent détecter différents problèmes. Il y avait un certain chevauchement parmi les principales failles trouvées dans les trois cas, mais il y avait suffisamment de différences pour souligner l’importance d’utiliser plusieurs types d’analyse.
La fréquence de balayage a également un impact. Nous avons constaté une réduction marquée à la fois de la probabilité de nouveaux défauts et de leur nombre réel lors des analyses effectuées le mois précédent. L’utilisation d’interfaces de programmation d’applications (API) pour automatiser le processus d’analyse a également permis de réduire la probabilité et le nombre de défauts.
Vers des applications plus sécurisées
Empêcher que tous les défauts soient introduits en premier lieu serait idéal, mais ce n’est tout simplement pas pratique. Notre recherche a révélé trois recommandations pour rendre les applications plus sûres.
Notre premier conseil est de corriger les failles de sécurité le plus tôt et le plus rapidement possible. Au moment où une application a deux ans, nous voyons les applications accumuler de plus en plus de défauts. Il est clair que quelque chose arrive à l’application ou aux groupes qui les développent. Qu’il s’agisse d’augmenter la complexité des applications après des années de croissance régulière ou de diminuer l’attention portée aux applications de production au fil du temps, ce modèle familier d’inclinaison vers le haut, illustré dans nos recherches, est clair.
Notre prochain conseil consiste à donner la priorité à l’automatisation et à la formation des développeurs. La connaissance des défauts les plus courants et de la façon dont ils sont introduits fait une différence notable dans la réduction de leur nombre. Nous l’avons vu dans les résultats d’organisations dont les développeurs avaient suivi 10 cours de formation pratique à la sécurité. Notre recherche a révélé que l’achèvement de 10 cours de formation est corrélé à une réduction de 12 % du nombre de défauts introduits.
Enfin, les entreprises doivent mettre en place une gestion du cycle de vie des applications. Établir à qui appartient une application aidera à la sécuriser, mais n’essayez pas d’en faire une liste complète à l’avance, car vous ne la terminerez jamais. Il serait préférable de commencer par les informations nécessaires pour quelques applications et de construire la liste de manière itérative à partir de là.
Maintenir une application n’est pas seulement une question de décider si elle est nécessaire, mais aussi combien de temps elle devrait être en production. Ceci est important compte tenu de la croissance des défauts qui se produisent au fil du temps et de la quantité d’attention qui y sera accordée dans les années à venir.
La rigueur est une exigence
Dans le climat de sécurité actuel, la sécurité des logiciels est primordiale. Avec la stratégie nationale de cybersécurité prévoyant de renforcer les mesures d’application, les éditeurs de logiciels ont une incitation supplémentaire à réduire la dette de sécurité de leurs applications.
Comprendre comment les failles sont créées et comment y remédier au mieux peut aider à assurer à la fois la sécurité et la viabilité des produits logiciels.
La rigueur en matière de sécurité logicielle signifie être minutieux à chaque étape du cycle de vie du développement logiciel moderne, car le transfert de responsabilité se tourne vers vous.