Cybersécurité
Effacer le « brouillard de plus » dans la cybersécurité
À la conférence RSA à San Francisco ce mois-ci, une multitude de solutions nouvelles et chaudes ont été présentées par l’industrie de la cybersécurité. Chaque stand affirmait être l’outil qui sauverait votre organisation des acteurs malveillants qui volent vos biens ou vous font chanter pour des millions de dollars.
Après avoir beaucoup réfléchi, je suis arrivé à la conclusion que notre industrie est perdue. Perdue dans la soupe de la détection et de la réponse avec des discours interminables qui prétendent que vos problèmes disparaîtront tant que vous ajouterez une couche de plus. Submergée par un brouillard de technologies, d’investissements, de personnel, d’outils et de couches d’infrastructure, les entreprises ont créé 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 chez les équipes de sécurité et de développement en raison de l’augmentation de la charge de travail 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 les conséquences directes 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 vieilles méthodes de recherche de code qui ne font que rechercher des modèles dans le code. Et craignez ce que vous demandez, car en conséquence, ils reçoivent un tsunami d’alertes, passant la majeure partie de leur journée à poursuivre des fausses pistes et des fantômes. En fait, les développeurs passent jusqu’à un tiers de leur temps à poursuivre des 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é.
Rechercher 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é de cyberattaques 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 – l’une qui nous amène à nous concentrer sur le problème à son niveau racine – en recherchant 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 faille de sécurité 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 intégrant 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 une expertise significatives, conduisant à 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 faux positifs provenant d’outils de détection conduit également à la frustration parmi les développeurs. Cela crée un fossé entre les équipes commerciales, d’ingénierie 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 finalement 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 celles-ci. 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 alors utiliser ces connaissances pour analyser le code d’une organisation et trouver des vulnérabilités potentielles qui n’ont pas encore é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 faux positifs, ainsi qu’une productivité accrue pour les équipes de développement.
Les outils d’IA générative peuvent également proposer des corrections de code, 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 meilleures 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, les rendant polyvalents pour la sécurité du code dans divers environnements. Ils peuvent s’améliorer avec le temps à mesure qu’ils continuent à s’entraîner sur de nouvelles données et commentaires, conduisant à 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 des outils et algorithmes avancés 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 sécurisées.
Dans un monde où le paysage des menaces évolue constamment, il est facile de se sentir submergé 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 recherchant les vulnérabilités dans le code, les organisations peuvent éliminer les « excès » de leur pile de sécurité existante, économisant ainsi un temps et une somme de money exponentiels dans le processus. À son niveau racine, de telles solutions seront en mesure non seulement de trouver 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 pourrions enfin suivre le rythme, voire devancer, les acteurs menaçants en constante évolution.












