Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Confidentialité et sécurité avec un assistant

Après cette leçon: Je peux dire ce qu’il ne faut pas envoyer à un assistant et repérer les failles courantes d’un code généré.

Leçon de 60 min3 commandesLab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Que faut-il ne jamais envoyer ?

Ce que vous écrivez à un assistant de code part vers un serveur avec votre code. Il ne faut donc jamais y mettre de mot de passe, de clé d’accès ni de données personnelles.

Le code qu’il écrit peut aussi contenir des failles de sécurité. Savoir ce qui ne doit pas sortir de chez vous, et ce que le code généré oublie, évite des fuites coûteuses.

À la fin de cette leçon

Remarque

Je peux dire ce qu’il ne faut pas envoyer à un assistant et repérer les failles courantes d’un code généré.

Mots-clés

MotCe que ça veut dire
Secretune information qui donne un accès : mot de passe, clé, jeton
Jetonun texte qui prouve votre identité auprès d’un service
Donnée personnelleune information sur une personne identifiable
Injectionune attaque où un texte reçu est pris pour une instruction
Paquet inventéun nom de bibliothèque donné par l’assistant, qui n’existe pas
Permissionle droit demandé à l’utilisateur avant une action de l’agent

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Ce qui part vers le modèle

Votre requête, les fichiers que l’assistant lit et les résultats des commandes qu’il lance sont envoyés au modèle. Dans le laboratoire, ce modèle tourne sur un serveur de la plateforme.

Un assistant d’un autre service peut avoir d’autres règles de conservation. Lisez-les avant d’y mettre du code d’un employeur ou d’un client.

Peut-on l’envoyer à un assistant ?

ContenuEnvoiPourquoi
Une fonction que vous écrivez en coursOuiAucune donnée sensible
Un mot de passe de base de donnéesJamaisIl donne un accès
Une clé d’accès à un service payantJamaisQuelqu’un peut la dépenser
Un fichier d’élèves avec noms et notesNonCe sont des données personnelles
Le code confidentiel d’un employeurSeulement si c’est permisUn contrat peut l’interdire

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Cherchez les secrets avant d’envoyer

Avant d’envoyer un fichier, cherchez-y des mots comme mot_de_passe, cle_api ou jeton. La commande grep le fait sur un texte. La commande suivante crée un petit texte inventé avec printf et cherche ces noms dedans.

Elle affiche deux lignes : la 2, mot_de_passe=abc, et la 3, jeton=. La seconde n’a aucune valeur : un bon outil doit faire la différence.

Chercher des noms de secrets dans un texte

Commande
printf 'nom=Lea\nmot_de_passe=abc\njeton=\n' | grep -n -E "mot_de_passe|jeton"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Ce que le laboratoire protège

La configuration de l’assistant du laboratoire contient une clé factice. Le vrai jeton est ajouté par le serveur de la plateforme, et vous ne le voyez jamais. La première commande lit la ligne de cette clé : la valeur est lab.

La seconde lit les permissions : modifier un fichier et lancer une commande demandent votre accord, et l’accès au web est refusé.

Lire la clé factice de la configuration

Commande
docker exec agent grep -n apiKey /home/node/.config/opencode/opencode.json

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lire les permissions de l’assistant

Commande
docker exec agent grep -n permission /home/node/.config/opencode/opencode.json

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Les failles que le code généré répète

Un assistant a lu beaucoup de code, y compris du code fragile. Il recolle parfois une requête SQL avec +, ce qui ouvre une injection. Il écrit un mot de passe d’exemple dans le fichier, utilise un hachage trop faible, ou oublie de vérifier ce qu’il reçoit.

Il peut aussi citer une bibliothèque qui n’existe pas. Quelqu’un peut publier ce nom avec du code malveillant : vérifiez qu’un paquet existe avant de l’installer.

Ce qu’il faut relire et pourquoi

Ligne ou gesteRisque
"SELECT ... WHERE nom = " + nomInjection SQL
cle_api = "abc123"Un secret écrit dans le fichier
pip install un-nom-inventeUn paquet piégé ou inexistant
exec(texte_recu)Du code exécuté sur la parole d’un inconnu

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Erreur fréquente

Attention

Beaucoup pensent qu’il suffit d’effacer le mot de passe après l’avoir envoyé. Il est déjà parti vers un serveur. Considérez-le comme public : changez-le tout de suite chez le service concerné.

Écrire un détecteur de secrets

Dans le devoir, vous cherchez des secrets dans les lignes d’un fichier. Un secret est un nom parmi mot_de_passe, cle_api et jeton, suivi de =. La valeur doit exister : ni vide, ni des guillemets vides, ni un texte entre < et >.

Une ligne qui contient -----BEGIN et PRIVATE KEY est aussi un secret. Toutes les valeurs du devoir sont inventées.

À propos de ce labo et de sa source: Lab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.