IA générative (GenAI) et DevSecOps
Introduction
Prérequis
-
bases de l’intelligence artificielle générative ;
-
maîtrise des pipelines CI/CD avec GitLab-CI ;
-
familiarité avec les principes de base de la sécurité du développement ;
-
connaissance pratique de Python pour interagir avec des API comme celle de Gemini ;
-
autonomie sur l’utilisation de Git ;
-
sensibilisation aux principaux types de vulnérabilités existantes (DDoS, injection de code, brute-force, etc.).
Objectifs
À la fin de ce chapitre, vous serez capable de :
-
expliquer les différences entre l’IA générative et l’IA traditionnelle ;
-
utiliser des outils d’IA générative pour détecter et corriger des vulnérabilités dans vos projets ;
-
définir des stratégies pour protéger vos environnements contre les abus liés à cette technologie ;
-
identifier les biais potentiels des modèles d’IA.
Introduction à l’intelligence artificielle générative (GenAI)
L’IA (intelligence artificielle) générative correspond à une branche de l’intelligence artificielle. Mais contrairement aux autres types d’IA qui effectuent des analyses, des prédictions ou qui s’occupent de classer des données, l’IA générative crée de nouvelles choses : images, textes, musiques, vidéo, etc.
Voici d’ailleurs un exemple d’image générée par Imagen 3 (Google) lorsque nous lui avons demandé une illustration de ce que représente l’intelligence artificielle générative (ou GenAI) :

Mais comment la GenAI a-t-elle réussi à produire cela ?
Elle apprend en se basant sur de très grandes quantités de données, de la même manière que nous, humains, apprenons en lisant des livres ou en regardant des films.

Elle utilise ensuite ses réseaux de neurones correspondant à des structures inspirées du cerveau humain pour générer de nouveaux contenus.
Afin de rendre cette notion plus concrète, voici quelques exemples :
Gemini (de Google) peut écrire des articles complets, comme ci-dessous où il lui a été demandé un article sur la Generative AI. Quelques mots suffisent pour obtenir...
Les fondamentaux de la GenAI
1. Principes de base de l’IA générative
Tout d’abord, il est important de comprendre la différence qui existe entre l’IA traditionnelle et l’IA générative. En effet, l’IA traditionnelle effectue le plus souvent des analyses de données et, à partir des résultats obtenus, génère des prédictions. Par exemple, elle a la capacité de prévoir si une transaction bancaire est probablement frauduleuse ou non, prévoir si une entreprise donnée est en capacité d’atteindre son objectif de chiffre d’affaires de l’année, prévoir la demande en stock d’un type de vêtement particulier, déterminer si une pièce d’une machine a davantage de chance de casser dans les prochains jours, etc.
L’IA générative, quant à elle, se focalise sur la création de nouveaux contenus. Imaginez un système capable de créer de nouvelles œuvres d’art, des compositions musicales inédites, ou encore des articles de presse en temps réel. Plutôt que simplement analyser et répondre, l’IA générative peut inventer et produire de nouveaux éléments ouvrant des possibilités quasiment infinies.
Il peut être intéressant de noter qu’au tout début de l’intelligence artificielle générative, les utilisateurs s’en servaient plutôt comme d’un moteur de recherche (comme ce qu’il est possible de faire sur Google), alors que c’est réellement dans la création que ce type d’intelligence se distingue.
Comme nous en avons parlé en introduction, l’intelligence artificielle générative se base sur les réseaux de neurones pour fonctionner. Le fonctionnement des réseaux de neurones artificiels est bien évidemment calqué sur celui du cerveau humain. En effet, dans le cerveau, les neurones sont des cellules qui communiquent entre elles via des connexions synaptiques. L’objectif est alors de reproduire ce processus avec des connexions mathématiques.
Un réseau de neurones artificiels se compose de plusieurs couches :
-
couche d’entrée : reçoit les données brutes ;
-
couches...
Premières utilisations de l’IA générative
1. Se connecter à l’AI Studio de Google
Il est possible d’utiliser les modèles d’intelligence artificielle générative de plusieurs façons. Nous pouvons utiliser l’interface graphique utilisateur de ChatGPT ou de Gemini pour lui poser des questions ou y effectuer nos demandes, mais nous allons plutôt nous concentrer sur la manière « programmatique » de nous interfacer avec ces modèles. Ainsi, il nous sera beaucoup plus aisé de faire interagir les modèles d’IA générative avec nos pipelines CI/CD, nos codes et nos environnements à sécuriser.
Commençons par nous rendre sur le site https://aistudio.google.com/welcome. L’AI Studio de Google nous offre effectivement l’opportunité de communiquer via du code Python avec Gemini 1.5 et 2.0 gratuitement.
À l’heure de la rédaction de l’ouvrage, Google n’a pas communiqué sur une volonté de réduire l’accès à cette offre gratuite dans un futur proche, mais cette éventualité n’est pas à exclure. Si c’est le cas, n’hésitez pas à vous tourner vers d’autres solutions qui proposent encore une certaine gratuité comme du côté d’OpenAI ou de Mistral.
Commencez par créer un compte sur Google AI Studio en cliquant sur le lien correspondant :

Vous devez ensuite vous authentifier avec votre compte Gmail :

Sur l’interface suivante, commencez par obtenir une clé API en cliquant sur l’icône Get API key :

Si l’interface a changé, cherchez, notamment dans la documentation, de quelle manière vous pouvez obtenir cette clé, indispensable à la suite des manipulations.
Acceptez les conditions et cliquez sur Continuer :

Cliquez ensuite sur Créer une clé API puis patientez quelques instants :

Copiez et conservez précieusement cette clé :

Maintenant que nous avons notre clé, il va être possible de créer notre premier code en Python, permettant d’interagir avec Gemini. Pour cela, nous allons commencer par lui poser une simple question afin de tester notre clé....
Pipeline CI/CD DevSecOps avec GitLab-CI et Gemini
1. Objectifs du pipeline et du code Python
Le pipeline que nous allons construire va répondre à un workflow complet pour automatiser la détection et la correction de vulnérabilités de l’ensemble des fichiers Python d’un dépôt GitLab. Nous pourrons ensuite étendre ces fonctionnalités à d’autres types de fichiers.
Voici les étapes principales du workflow que nous allons créer :
-
déclenchement du pipeline GitLab-CI à chaque commit et/ou de manière quotidienne ;
-
récupération de l’ensemble des fichiers du dépôt grâce à la fonctionnalité initiale de GitLab-CI ;
-
parcours des fichiers Python du dépôt, en excluant un certain nombre de fichiers spécifiés (main.py et gitlab-api.py) ;
-
utilisation de l’API Gemini pour effectuer un scan de sécurité sur chaque fichier ;
-
génération d’un fichier scan_results.json contenant les vulnérabilités détectées et le code corrigé ;
-
création d’une nouvelle branche Git dynamique basée sur un timestamp (fix-vulnerabilities-{timestamp}) ;
-
application des corrections aux fichiers vulnérables en écrivant le code corrigé dans les fichiers concernés ;
-
ajout des modifications en staging, puis commit avec un message descriptif ;
-
création d’une Merge Request (MR) pour fusionner les corrections dans la branche principale (main) ;
-
intégration de la liste des vulnérabilités corrigées pour chaque fichier dans la description de la MR.
Nous allons également devoir améliorer notre code et y ajouter des fonctionnalités :
-
amélioration de la gestion des erreurs : en ajoutant des blocs de type try...except plus spécifiques et capables de gérer les erreurs de connexion à l’API de Gemini, les erreurs de lecture de fichiers et surtout les erreurs de parsing de la réponse JSON de Gemini ;
-
traitement du JSON renvoyé par Gemini : en s’assurant de la présence de tous les champs attendus dans la réponse, et en gérant les situations où Gemini ne fournit pas de code corrigé...
Les nouvelles menaces liées à l’IA générative
L’IA générative est rapidement devenue très populaire grâce aux modèles comme ChatGPT et ses équivalents. Elle a déjà commencé à transformer profondément la manière dont les données et les informations sont traitées, créées et manipulées. Bien que cette technologie ait initialement été conçue pour générer du contenu créatif, automatiser un certain nombre de tâches et améliorer l’efficacité des équipes de développement, elle est désormais détournée par des acteurs malveillants afin de concevoir de nouvelles méthodes et formes d’attaque. Plutôt que de générer des menaces totalement nouvelles, cette technologie agit comme un amplificateur des risques actuels. En effet, elle permet aux attaquants (notamment les moins expérimentés) d’automatiser des attaques autrefois complexes grâce à des outils comme WormGPT et FraudGPT, qui sont basés sur des modèles open source. Imaginez à quel point il devient aisé de produire des attaques extrêmement ciblées en simulant des styles d’écriture authentique et complètement personnalisés selon le contexte de la victime.
Même si aujourd’hui l’IA générative n’est pas encore en mesure de produire des malwares entièrement autonomes, elle réduit de manière significative les différentes barrières techniques qui existaient pour orchestrer des attaques sophistiquées.
1. Automatisation de campagnes de phishing
Les attaques liées à la GenAI sont encore assez peu documentées. Cependant, l’automatisation de campagnes de phishing à grande échelle grâce à cette technologie est déjà une réalité. En effet, si un attaquant a déjà réussi à récupérer un certain nombre d’informations provenant de fuites précédentes comme des e-mails, le nom et le prénom, les abonnements, les passions, l’adresse, les numéros de compte bancaire, l’âge, la profession...
Conclusion
L’intégration de l’IA générative dans le DevSecOps ouvre de nouvelles perspectives, à la fois pour améliorer les processus existants et pour renforcer la sécurité de vos systèmes. En effet, il s’agit d’un outil puissant et polyvalent capable d’analyser et de générer du contenu pertinent, d’automatiser des tâches complexes, et de détecter et corriger les vulnérabilités directement dans vos pipelines CI/CD.
Mais au-delà de la capacité de création et d’amélioration, il est aussi possible d’exploiter ces modèles pour identifier rapidement des vecteurs d’attaque ou simuler des scénarios et, dans les équipes de sécurité, pour évaluer et améliorer la résilience de leurs systèmes. Il est particulièrement intéressant de noter que l’une des meilleures défenses contre l’intelligence artificielle générative et ses abus correspond tout simplement à l’utilisation de l’intelligence artificielle générative… Un peu de la même manière qu’avec la cybersécurité traditionnelle, les attaquants et les défenseurs utilisent presque toujours les mêmes outils. Ce sont les objectifs et les types d’utilisation...