Une version de cet article a été publiée dans Help Net Security. Elle a été mise à jour et publiée ici.
J'ai passé ma carrière à trouver, corriger, discuter et décomposer les vulnérabilités des logiciels, d'une manière ou d'une autre. Je sais qu'en ce qui concerne certains bogues de sécurité courants, bien qu'ils soient dans notre orbite depuis les années 90, ils continuent d'infester nos logiciels et de causer des problèmes majeurs, même si la solution (souvent simple) est connue depuis presque aussi longtemps. Nous avons vraiment l'impression de vivre le jour de la marmotte, où l'industrie semble faire la même chose encore et encore et s'attendre à un résultat différent.
Mais il y a un autre petit problème. Nous ne recevons pas de conseils réalistes, ni les solutions les plus rapides, pour lutter contre les assauts incessants de la cybersécurité moderne. Bien sûr, chaque violation est différente à sa manière, et il existe de nombreux vecteurs d'attaque qui peuvent être exploités dans les logiciels vulnérables. Les conseils génériques réalisables seront limités, mais l'approche des meilleures pratiques semble plus défectueuse d'heure en heure.
À cette fin, je me demande pourquoi tant de commentaires et d'analyses sur la cybersécurité ont omis les solutions qui s'attaquent vraiment à la cause profonde de tant de vulnérabilités : les humains. Le dernier Hype Cycle de Gartner pour la sécurité des applications et The State of Application Security 2021 de Forrester, deux bibles pour les experts en sécurité qui contribuent sans aucun doute à façonner leur programme et l'adoption potentielle de produits, sont presque entièrement axés sur les outils. Un rapport d'Aberdeen datant de 2017 montrait à quel point la pile technologique de sécurité moyenne était devenue indisciplinée, les RSSI gérant des centaines de produits dans le cadre de leurs stratégies de sécurité ; quatre ans plus tard, nous sommes aux prises avec plus de risques, plus de vulnérabilités et plus d'ajouts à des bêtes de pile technologique en pleine croissance.
Les outils de sécurité sont indispensables, mais nous devons voir plus loin et rétablir l'équilibre de la composante humaine de la défense de la sécurité.
L'automatisation est l'avenir. Pourquoi devrions-nous nous préoccuper de l'aspect humain de la cybersécurité ?
Pratiquement tout dans nos vies est alimenté par des logiciels, et il est vrai que l'automatisation remplace les éléments humains qui étaient autrefois présents dans tant d'industries. C'est un signe de progrès dans un monde qui se numérise à grande vitesse, l'IA et l'apprentissage automatique étant des sujets d'actualité qui permettent à de nombreuses organisations de rester tournées vers l'avenir.
Alors pourquoi une approche de la cybersécurité axée sur l'être humain serait-elle autre chose qu'une solution dépassée à un problème technologiquement avancé ? Le fait que des milliards d'enregistrements de données aient été volés dans des brèches au cours de l'année écoulée, y compris la brèche la plus récente dans Facebook qui a touché plus d'un demi-milliard de comptes, devrait indiquer que nous n'en faisons pas assez (ou que nous n'adoptons pas la bonne approche) pour contrer sérieusement les acteurs de la menace.
L'outillage de cybersécurité est un élément indispensable de la cyberdéfense, et les outils auront toujours leur place. Les analystes ont toujours eu raison de recommander les outils les plus récents dans le cadre d'une approche d'atténuation des risques pour les entreprises, et cela ne changera pas. Cependant, la qualité du code (et, par définition, la sécurité) étant difficile à gérer au vu du volume de production de code, les outils ne peuvent pas faire le travail à eux seuls. À ce jour, il n'existe pas d'outil unique qui puisse le faire :
- Recherchez toutes les vulnérabilités, dans tous les langages:framework
- Numériser à la vitesse
- Minimiser la double manipulation causée par les faux positifs et les faux négatifs
Les outils peuvent être lents, encombrants et difficiles à manier. Mais surtout, ils ne font que détecter les problèmes - ils ne les résolvent pas et ne recommandent pas de solutions. Ces dernières exigent des experts en sécurité, qui sont peu nombreux et surchargés de travail, qu'ils fouillent dans les poubelles pour trouver des trésors dans les résultats interminables de pentesting et d'analyse.
Le fait est que, selon le rapport IBM Cyber Security Intelligence Index, l'erreur humaine joue un rôle dans 95 % de toutes les violations de données réussies. Près de la moitié d'entre elles sont directement liées à des vulnérabilités logicielles, dont beaucoup pourraient être atténuées si l'on adhérait davantage au codage sécurisé et à la sensibilisation dès les premiers stades du cycle de développement logiciel (SDLC). Toutefois, pour que cela se produise, il est essentiel de mettre l'accent sur la formation des développeurs et de l'intégrer dans leur flux de travail.
Que nous le voulions ou non, l'être humain est profondément ancré dans le processus de développement des logiciels, et la cybersécurité est avant tout un problème humain. Les outils ne seront pas la panacée pour corriger une faille fondamentale dans notre approche, mais ils peuvent jouer un rôle de soutien essentiel pour remodeler les solutions humaines.
Et si nous construisions de meilleurs outils (et beaucoup d'outils) ?
Les outils de sécurité ne cessent de s'améliorer. Les outils SAST/DAST/IAST ont parcouru un long chemin, gagnant en rapidité et en intelligence, et le RASP devrait être une considération défensive sérieuse dans de nombreux environnements d'application. Les pare-feu, les gestionnaires de secrets, les applications de sécurité en nuage et en réseau sont autant d'éléments qui ne posent pas de problème.
Les humains peuvent toujours s'efforcer de créer de meilleurs outils, mais l'innovation ne suit pas les besoins de sécurité et de protection des données du monde numérique dans lequel nous vivons. Les outils sont, pour la plupart, conçus pour les robots. Ils peuvent aider les développeurs et l'équipe de sécurité à analyser, surveiller ou protéger le code, mais l'interaction est très limitée, et très peu de solutions visent à sensibiliser à la sécurité ou à améliorer les compétences de base qui peuvent conduire à de meilleurs résultats en matière de sécurité.
En fait, plus de la moitié des entreprises ne savent même pas si les outils fonctionnent pour elles, et elles ne sont pas sûres de pouvoir éviter une violation de données dévastatrice. Il s'agit là d'un sentiment très médiocre qui, dans un secteur obsédé par les outils et peu enclin à adopter une approche différente, tend à consolider le statu quo et les problèmes qui en découlent.
Comment une organisation peut-elle tirer parti d'une approche humaine de la sécurité ?
Il ne fait aucun doute qu'il est bénéfique de rester à l'avant-garde des tendances en matière de technologie de sécurité des applications, et que cela peut même aider à prioriser les mises à niveau ou les consolidations dans une pile technologique surchargée, mais ne pas cibler la cause première des logiciels vulnérables - nous, simples humains - nous maintiendra du côté perdant du front de bataille de la cybersécurité.
Si nous voulons sérieusement réduire le nombre de failles de sécurité au niveau du code, il faut donner aux développeurs les bases nécessaires pour réussir à partager la responsabilité de la sécurité. Ils ont besoin d'une formation pertinente et pratique, d'un perfectionnement en cours d'emploi et d'outils fonctionnels qui ne perturbent pas leur flux de travail et ne font pas de la sécurité une corvée à développer. Idéalement, certains outils devraient être centrés sur les développeurs et conçus en pensant avant tout à l'expérience des utilisateurs.
À ce jour, il n'existe pas de programme officiel de certification de la sécurité pour les développeurs, mais chaque entreprise peut tirer profit de l'évaluation comparative et de l'amélioration des compétences en matière de codage sécurisé, en éliminant les vulnérabilités courantes de manière précoce et fréquente, avant que la grosse pile technologique n'entre en action et ne ralentisse tout.
Une équipe de développeurs sensibilisés à la sécurité est un trésor caché pour toute organisation, mais comme toute chose qui en vaut la peine, il faudra du temps et des efforts pour mettre en place une équipe de rêve efficace. Pour convaincre les développeurs de se préoccuper de la sécurité et de considérer le codage sécurisé comme le fondement de la qualité du code, il faut que l'ensemble de l'organisation s'engage à placer la sécurité au premier plan. Et lorsque des équipes entières sont sensibilisées à l'impact positif qu'elles peuvent avoir en éliminant les vulnérabilités courantes au fur et à mesure de l'écriture du code, aucun outil sur Terre ne peut rivaliser.