Cybersécurité

Améliorer la sécurité du code : les récompenses et les risques de l’utilisation des LLM pour la détection proactive des vulnérabilités

mm

Dans le paysage dynamique de la sécurité informatique, où les menaces évoluent constamment, il est essentiel de rester en avant des vulnérabilités potentielles dans le code. Une façon qui montre des promesses est l’intégration de l’IA et des Modèles de Langage à Grande Échelle (LLM). L’utilisation de ces technologies peut contribuer à la détection et à la mitigation précoce des vulnérabilités dans les bibliothèques qui n’ont pas été découvertes auparavant, renforçant ainsi la sécurité globale des applications logicielles. Ou comme nous aimons le dire, « trouver les inconnues inconnues ».

Pour les développeurs, l’intégration de l’IA pour détecter et réparer les vulnérabilités logicielles a le potentiel d’augmenter la productivité en réduisant le temps passé à trouver et à corriger les erreurs de codage, les aidant ainsi à atteindre l’état de « flux » très désiré. Cependant, il y a quelques choses à considérer avant qu’une organisation ajoute des LLM à ses processus.

Débloquer le flux

Un avantage de l’ajout de LLM est la scalabilité. L’IA peut générer automatiquement des correctifs pour de nombreuses vulnérabilités, réduisant ainsi la liste de vulnérabilités et permettant un processus plus fluide et accéléré. C’est particulièrement utile pour les organisations qui sont aux prises avec de nombreuses préoccupations de sécurité. Le volume de vulnérabilités peut submerger les méthodes de scan traditionnelles, entraînant des retards dans la résolution des problèmes critiques. Les LLM permettent aux organisations de traiter de manière exhaustive les vulnérabilités sans être freinées par les limitations de ressources. Les LLM peuvent fournir une méthode plus systématique et automatisée pour réduire les défauts et renforcer la sécurité des logiciels.

Cela conduit à un deuxième avantage de l’IA : l’efficacité. Le temps est essentiel lorsqu’il s’agit de trouver et de corriger les vulnérabilités. L’automatisation du processus de correction des vulnérabilités logicielles aide à minimiser la fenêtre de vulnérabilité pour ceux qui espèrent les exploiter. Cette efficacité contribue également à des économies de temps et de ressources considérables. C’est particulièrement important pour les organisations qui disposent de vastes bases de code, leur permettant ainsi d’optimiser leurs ressources et d’allouer leurs efforts de manière plus stratégique.

La capacité des LLM à être formés sur un vaste ensemble de code sécurisé crée le troisième avantage : l’exactitude de ces correctifs générés. Le bon modèle s’appuie sur ses connaissances pour fournir des solutions qui s’alignent sur les normes de sécurité établies, renforçant ainsi la résilience globale du logiciel. Cela minimise le risque d’introduction de nouvelles vulnérabilités pendant le processus de correction. Mais ces ensembles de données ont également le potentiel d’introduire des risques.

Naviguer la confiance et les défis

L’un des plus grands inconvénients de l’intégration de l’IA pour corriger les vulnérabilités logicielles est la fiabilité. Les modèles peuvent être formés sur du code malveillant et apprendre des modèles et des comportements associés aux menaces de sécurité. Lorsqu’ils sont utilisés pour générer des correctifs, le modèle peut puiser dans ses expériences apprises, proposant involontairement des solutions qui pourraient introduire des vulnérabilités de sécurité plutôt que de les résoudre. Cela signifie que la qualité des données de formation doit être représentative du code à corriger ET exempt de code malveillant.

Les LLM peuvent également avoir le potentiel d’introduire des biais dans les correctifs qu’ils génèrent, conduisant à des solutions qui peuvent ne pas englober tout le spectre des possibilités. Si l’ensemble de données utilisé pour la formation n’est pas diversifié, le modèle peut développer des perspectives et des préférences étroites. Lorsqu’il est chargé de générer des correctifs pour les vulnérabilités logicielles, il peut favoriser certaines solutions par rapport à d’autres en fonction des modèles établis lors de la formation. Ce biais peut conduire à une approche centrée sur les correctifs qui néglige potentiellement des résolutions non conventionnelles mais efficaces des vulnérabilités logicielles.

Alors que les LLM excellent dans la reconnaissance de modèles et la génération de solutions basées sur les modèles appris, ils peuvent être défaillants lorsqu’ils sont confrontés à des défis uniques ou novateurs qui diffèrent considérablement de leurs données de formation. Parfois, ces modèles peuvent même « halluciner », générant de fausses informations ou du code incorrect. L’IA générative et les LLM peuvent également être capricieux lorsqu’il s’agit de invites, ce qui signifie qu’un petit changement dans ce que vous entrez peut conduire à des sorties de code très différentes. Les acteurs malveillants peuvent également profiter de ces modèles, utilisant des injections d’invites ou des empoisonnements de données pour créer des vulnérabilités supplémentaires ou accéder à des informations sensibles. Ces problèmes nécessitent souvent une compréhension contextuelle profonde, des compétences de pensée critique complexes et une conscience de l’architecture système plus large. Cela souligne l’importance de l’expertise humaine dans la guidance et la validation des sorties, et pourquoi les organisations devraient considérer les LLM comme un outil pour compléter les capacités humaines plutôt que de les remplacer entièrement.

L’élément humain reste essentiel

La surveillance humaine est critique tout au long du cycle de vie du développement logiciel, en particulier lors de l’utilisation de modèles d’IA avancés. Alors que l’IA générative et les LLM peuvent gérer les tâches fastidieuses, les développeurs doivent conserver une compréhension claire de leurs objectifs finaux. Les développeurs ont besoin d’être en mesure d’analyser les complexités d’une vulnérabilité complexe, de considérer les implications système plus larges et d’appliquer des connaissances spécifiques au domaine pour concevoir des solutions efficaces et adaptées. Cette expertise spécialisée permet aux développeurs de concevoir des solutions qui s’alignent sur les normes de l’industrie, les exigences de conformité et les besoins spécifiques des utilisateurs, facteurs qui peuvent ne pas être entièrement capturés par les modèles d’IA seuls. Les développeurs doivent également effectuer une validation et une vérification minutieuses du code généré par l’IA pour garantir que le code généré répond aux normes les plus élevées de sécurité et de fiabilité.

La combinaison de la technologie LLM avec les tests de sécurité présente une voie prometteuse pour améliorer la sécurité du code. Cependant, une approche équilibrée et prudente est essentielle, reconnaissant à la fois les avantages potentiels et les risques. En combinant les forces de cette technologie et de l’expertise humaine, les développeurs peuvent identifier et atténuer proactivement les vulnérabilités, améliorant ainsi la sécurité des logiciels et maximisant la productivité des équipes d’ingénierie, leur permettant de mieux trouver leur état de flux.

Bruce Snell, Stratège en cybersécurité, Qwiet AI, compte plus de 25 ans d'expérience dans l'industrie de la sécurité de l'information. Son parcours comprend l'administration, le déploiement et la consultation sur tous les aspects de la sécurité IT traditionnelle. Au cours des 10 dernières années, Bruce s'est orienté vers la cybersécurité OT/IoT (avec certification GICSP), travaillant sur des projets tels que les tests de pénétration automobile, les pipelines de pétrole et de gaz, les données de véhicules autonomes, l'IoT médical, les villes intelligentes, et d'autres. Bruce a également été un conférencier régulier aux conférences sur la cybersécurité et l'IoT, ainsi qu'un conférencier invité à Wharton et à Harvard Business School, et co-animateur du podcast primé « Hackable? ».