L’apprentissage automatique transformera votre façon de détecter les vulnérabilités logicielles

L’apprentissage automatique transformera votre façon de détecter les vulnérabilités logicielles

Personne ne doute que l’intelligence artificielle (IA) et l’apprentissage automatique vont transformer la cybersécurité. Nous ne savons tout simplement pas comment ni quand. Bien que la littérature se concentre généralement sur les différentes utilisations de l’intelligence artificielle par les attaquants et les défenseurs, nous souhaitons parler des vulnérabilités des logiciels.

Tous les logiciels contiennent des bugs. La raison est essentiellement économique: le marché ne veut pas payer pour un logiciel de qualité. À quelques exceptions près, comme la navette spatiale, le marché accorde la priorité à la rapidité et au bon marché. Le résultat est que tout grand progiciel moderne contient des centaines ou des milliers de bugs.

Un certain pourcentage de bug sont également des vulnérabilités, et un pourcentage de celles-ci sont des vulnérabilités exploitables, ce qui signifie qu’un attaquant qui en a connaissance peut attaquer le système sous-jacent d’une manière ou d’une autre. Et un certain pourcentage de ceux-ci sont découverts et utilisés. C’est pourquoi les logiciels de votre ordinateur et de votre smartphone sont constamment corrigés. Les éditeurs de logiciels corrigent des bugs qui sont aussi des vulnérabilités découvertes et utilisées.

Tout irait mieux si les éditeurs de logiciels trouvaient et corrigeaient tous les bugs lors du processus de conception et de développement, mais, comme nous l’avons dit plus tôt, le marché ne récompense pas ce type de retard et de dépenses. L’intelligence artificielle, et en particulier l’apprentissage machine (ML), a le potentiel de changer à jamais ce compromis.

L’apprentissage automatique peut aider à réduire les vulnérabilités

Le problème de la recherche de vulnérabilités logicielles semble bien adapté aux systèmes ML. Traiter ligne par ligne, code par code est le genre de problème fastidieux auquel les ordinateurs excellent, si nous pouvons seulement leur apprendre à quoi ressemble une vulnérabilité. Bien sûr, cela pose des problèmes, mais il existe déjà une bonne quantité de littérature universitaire sur le sujet et la recherche se poursuit. Il y a tout lieu de s’attendre à ce que les systèmes de BC s’améliorent avec le temps, et d’espérer qu’ils finissent par devenir très bons à cet égard.

La découverte de vulnérabilités peut être bénéfique à la fois aux attaquants et aux défenseurs, mais ce n’est pas un combat équitable. Lorsque le système ML d’un attaquant découvre une vulnérabilité dans un logiciel, l’attaquant peut l’utiliser pour compromettre des systèmes. Lorsque le système ML d’un défenseur trouve la même vulnérabilité, il peut essayer de corriger les défenses du système ou du réseau du programme pour surveiller et bloquer le code qui tente de l’exploiter.

Mais lorsque le même système est entre les mains d’un développeur de logiciels qui l’utilise pour rechercher la vulnérabilité avant la publication du logiciel, le développeur le corrige pour qu’il ne puisse jamais être utilisé. Le système ML fera probablement partie de ses outils de conception logicielle et détectera et corrigera automatiquement les vulnérabilités pendant que le code est en cours de développement.

À quoi ressemblera l’avenir de la gestion de la vulnérabilité?

Avancez rapidement d’une dizaine d’années dans l’avenir. Nous pourrions nous dire: «Rappelez-vous ces années où les vulnérabilités logicielles étaient une chose, avant que des outils de recherche de vulnérabilités ML soient intégrés à chaque compilateur et qu’ils les corrigent avant même que le logiciel ne soit publié. Wow, ces années ont été folles. » Non seulement cet avenir est-il possible, mais nous parierions pour cela.

Aller d’ici à là sera dangereux, cependant. Ces détecteurs de vulnérabilité seront d’abord libérés sur les logiciels existants, donnant aux attaquants des centaines, voire des milliers de vulnérabilités à exploiter lors d’attaques en temps réel. Bien sûr, les défenseurs peuvent utiliser les mêmes systèmes, mais de nombreux systèmes d’Internet des objets (IoT) actuels ne disposent pas d’équipes d’ingénierie pour écrire des correctifs et ne sont pas en mesure de télécharger et d’installer des correctifs. Il en résultera des centaines de vulnérabilités que les attaquants pourront trouver et utiliser.

Mais si nous regardons assez loin dans l’horizon, nous pouvons voir un avenir où les vulnérabilités logicielles sont une chose du passé. Ensuite, nous devrons simplement nous préoccuper des techniques d’attaque nouvelles et plus avancées proposées par ces systèmes d’intelligence artificielle.

La technologie 5G est-elle une bénédiction ou une malédiction pour la sécurité? 5 étapes pour lancer votre aventure de transformation numérique avec le cloud en…