Cybersécurité

Dissiper le « brouillard de plus » en cybersécurité

mm

À la RSA Conference à San Francisco ce mois-ci, une gamme étourdissante de solutions nouvelles et chaudes a été présentée par l’industrie de la cybersécurité. Stand après stand, les entreprises affirmaient que leur outil allait sauver votre organisation des acteurs malveillants qui volent vos biens ou vous extorquent des millions de dollars.

Après avoir beaucoup réfléchi, j’en suis arrivé à la conclusion que notre industrie est perdue. Perdue dans la soupe de la détection et de la réponse avec des bavardages interminables qui prétendent que vos problèmes disparaîtront tant que vous ajoutez une couche de plus. Engluée dans un brouillard d’investissements technologiques, de personnel, d’outils et de couches d’infrastructure, les entreprises ont maintenant formé un labyrinthe où elles ne peuvent plus voir la forêt pour les arbres lorsqu’il s’agit d’identifier et de prévenir les acteurs menaçants. Ces outils, destinés à protéger les actifs numériques, provoquent au lieu de cela de la frustration pour les équipes de sécurité et de développement grâce à des charges de travail accrues et des outils incompatibles. Le « brouillard de plus » ne fonctionne pas. Mais, pour être franc, cela n’a jamais fonctionné.

Les cyberattaques commencent et se terminent dans le code. C’est aussi simple que cela. Soit vous avez une faille de sécurité ou une vulnérabilité dans le code, soit le code a été écrit sans tenir compte de la sécurité. De toute façon, chaque attaque ou chaque titre que vous lisez provient du code. Et ce sont les développeurs de logiciels qui subissent l’essence même du problème. Mais les développeurs ne sont pas formés à la sécurité et, pour être franc, ils ne le seront peut-être jamais. Ils mettent donc en œuvre de bons outils de recherche de code à l’ancienne qui recherchent simplement des modèles dans le code. Et craignez pour ce que vous demandez, car en conséquence, ils reçoivent un tsunami d’alertes, poursuivant des fausses pistes et des fantômes pendant la majeure partie de leur journée. En fait, les développeurs passent jusqu’à un tiers de leur temps à poursuivre de fausses alertes et des vulnérabilités. Ce n’est qu’en se concentrant sur la prévention que les entreprises peuvent vraiment commencer à renforcer leurs programmes de sécurité et à poser les fondements d’une culture axée sur la sécurité.

Trouver et corriger au niveau du code

On dit souvent que la prévention est meilleure que le remède, et cet adage est particulièrement vrai en matière de cybersécurité. C’est pourquoi, même dans un contexte de contraintes économiques plus serrées, les entreprises continuent à investir et à brancher davantage d’outils de sécurité, créant de multiples barrières pour réduire la probabilité d’attaques cybernétiques réussies. Mais malgré l’ajout de plus en plus de couches de sécurité, les mêmes types d’attaques continuent de se produire. Il est temps pour les organisations d’adopter une perspective fraîche – une perspective où nous nous concentrons sur le problème à son niveau racine – en trouvant et en corrigeant les vulnérabilités dans le code.

Les applications servent souvent de point d’entrée principal pour les cybercriminels qui cherchent à exploiter les faiblesses et à accéder sans autorisation aux données sensibles. Fin 2020, la compromission de SolarWinds a été découverte et les enquêteurs ont trouvé un processus de construction compromis qui a permis aux attaquants d’injecter du code malveillant dans le logiciel de surveillance du réseau Orion. Cette attaque a souligné la nécessité de sécuriser chaque étape du processus de construction de logiciels. En mettant en œuvre des mesures de sécurité d’application robustes, ou AppSec, les organisations peuvent atténuer le risque de ces failles de sécurité.

Pour ce faire, les entreprises doivent adopter une mentalité « shift left », en apportant des méthodes préventives et prédictives à l’étape de développement.

Même si ce n’est pas une idée entièrement nouvelle, cela comporte des inconvénients. Un inconvénient important est l’augmentation du temps et des coûts de développement. La mise en œuvre de mesures de sécurité d’application complètes peut nécessiter des ressources et des compétences importantes, ce qui entraîne des cycles de développement plus longs et des dépenses plus élevées. De plus, toutes les vulnérabilités ne présentent pas un risque élevé pour l’organisation. La possibilité de fausses alertes provenant des outils de détection conduit également à la frustration parmi les développeurs. Cela crée un fossé entre les équipes commerciales, techniques et de sécurité, dont les objectifs peuvent ne pas être alignés. Mais l’intelligence artificielle générative peut être la solution qui ferme ce fossé pour de bon.

Entrer dans l’ère de l’IA

En exploitant la nature omniprésente de l’IA générative dans l’AppSec, nous apprendrons enfin du passé pour prédire et prévenir les attaques futures. Par exemple, vous pouvez former un grand modèle de langage ou LLM sur toutes les vulnérabilités de code connues, dans toutes leurs variantes, pour apprendre les caractéristiques essentielles de toutes ces vulnérabilités. Ces vulnérabilités pourraient inclure des problèmes courants tels que les débordements de tampon, les attaques par injection ou la validation d’entrée incorrecte. Le modèle apprendra également les différences nuancées par langage, framework et bibliothèque, ainsi que les corrections de code qui sont efficaces. Le modèle peut ensuite utiliser ces connaissances pour analyser le code d’une organisation et trouver des vulnérabilités potentielles qui n’ont même pas été identifiées. En utilisant le contexte autour du code, les outils d’analyse peuvent mieux détecter les menaces réelles. Cela signifie des temps d’analyse courts et moins de temps pour poursuivre et corriger les fausses alertes, ainsi qu’une productivité accrue pour les équipes de développement.

Les outils d’IA générative peuvent également offrir des corrections de code suggérées, en automatisant le processus de génération de correctifs, ce qui réduit considérablement le temps et les efforts nécessaires pour corriger les vulnérabilités dans les bases de code. En formant des modèles sur de vastes référentiels de bases de code sécurisées et de bonnes pratiques, les développeurs peuvent utiliser des extraits de code générés par l’IA qui respectent les normes de sécurité et évitent les vulnérabilités courantes. Cette approche proactive ne réduit pas seulement la probabilité d’introduction de failles de sécurité, mais accélère également le processus de développement en fournissant aux développeurs des composants de code prétestés et validés.

Ces outils peuvent également s’adapter à différents langages de programmation et styles de codage, ce qui les rend polyvalents pour la sécurité du code dans divers environnements. Ils peuvent s’améliorer avec le temps à mesure qu’ils continuent à se former sur de nouvelles données et des commentaires, ce qui conduit à une génération de correctifs plus efficace et fiable.

L’élément humain

Il est essentiel de noter que même si les corrections de code peuvent être automatisées, la supervision et la validation humaines sont toujours cruciales pour garantir la qualité et l’exactitude des correctifs générés. Même si les outils avancés et les algorithmes jouent un rôle important dans l’identification et l’atténuation des vulnérabilités de sécurité, l’expertise humaine, la créativité et l’intuition restent indispensables pour sécuriser efficacement les applications.

Les développeurs sont finalement responsables de la rédaction de code sécurisé. Leur compréhension des meilleures pratiques de sécurité, des normes de codage et des vulnérabilités potentielles est primordiale pour garantir que les applications sont construites en tenant compte de la sécurité dès le départ. En intégrant des programmes de formation et de sensibilisation à la sécurité dans le processus de développement, les organisations peuvent habiliter les développeurs à identifier et à résoudre proactivement les problèmes de sécurité, réduisant ainsi la probabilité d’introduction de vulnérabilités dans la base de code.

De plus, une communication et une collaboration efficaces entre les différentes parties prenantes au sein d’une organisation sont essentielles pour le succès de l’AppSec. Même si les solutions d’IA peuvent aider à « combler le fossé » entre le développement et les opérations de sécurité, il faut une culture de collaboration et de responsabilité partagée pour construire des applications plus résilientes et plus sécurisées.

Dans un monde où le paysage des menaces évolue constamment, il est facile de se laisser submerger par le volume écrasant d’outils et de technologies disponibles dans l’espace de la cybersécurité. Cependant, en se concentrant sur la prévention et en trouvant les vulnérabilités dans le code, les organisations peuvent éliminer les « graisses » de leur pile de sécurité existante, ce qui leur permet de sauver un temps et une somme d’argent exponentiels dans le processus. À son niveau racine, de telles solutions seront capables de trouver non seulement les vulnérabilités connues et de corriger les vulnérabilités zero-day, mais également les vulnérabilités pré-zero-day avant qu’elles ne se produisent. Nous pourrons peut-être enfin suivre le rythme, voire devancer, les acteurs menaçants en évolution.

Stuart McClure a plus de 30 ans d'expérience dans tous les aspects de la cybersécurité, y compris l'ingénierie, le développement de produits, le marketing, les ventes, la réussite des clients et le leadership exécutif, notamment en tant que Global CTO pour McAfee/Intel, en créant Cylance et Foundstone en tant que fondateur/PDG/président/CTO et en établissant les pratiques de cybersécurité pour Kaiser Permanente et Ernst & Young. Stuart est l'auteur fondateur du livre de piratage de sécurité informatique n°1, Hacking Exposed, qui permet aux défenseurs de comprendre les outils, les techniques et les procédures des pirates pour prévenir les attaques informatiques. Stuart a obtenu son B.A. en psychologie et en philosophie avec une spécialisation en informatique de CU Boulder.