Transcript
00:00:00L'IA a rendu le codage accessible à tous et les gens ont commencé à déployer du code à un
00:00:04rythme beaucoup plus rapide.
00:00:05Mais à un rythme encore plus soutenu, les failles de sécurité au sein de ces applis se sont accumulées.
00:00:09Et ces derniers mois, la situation s'est même aggravée.
00:00:12Il y a eu de nombreux cas où un agent a supprimé l'intégralité du projet de quelqu'un.
00:00:16Un autre agent a supprimé une base de données de production entière alors que le développeur travaillait
00:00:20sur quelque chose de totalement différent.
00:00:22Et il y a eu beaucoup de problèmes similaires comme la fuite du fichier interne Clod.md d'Apple.
00:00:26Donc, des outils capables de détecter ces problèmes comptent plus aujourd'hui que par le passé.
00:00:30Face à cette hausse des incidents, Vercel vient de sortir un harnais de sécurité pour détecter les brèches
00:00:35dans les applications générées par l'IA, appelé DeepSec.
00:00:37Vous pourriez penser que Clod code peut déjà faire des revues de sécurité seul avec ses agents.
00:00:42Alors, pourquoi auriez-vous besoin de DeepSec au départ ?
00:00:44C'est parce que DeepSec est un outil structuré qui gère les revues de manière bien plus systématique.
00:00:49Sous le capot, il utilise des agents de codage comme Clod code et Codex.
00:00:52L'outil est conçu pour analyser de grands dépôts car il supporte une conception parallèle qui
00:00:57accélère le flux de travail et regroupe le code en plusieurs lots, ce qui le rend parfait pour
00:01:01examiner de vastes bases de code.
00:01:03Cependant, cela n'a pas été conçu dans une optique de rentabilité.
00:01:06Ils utilisent les modèles les plus puissants de Clod code et Codex, à savoir Opus 4.7 en
00:01:10effort maximal et GPT 5.5 en raisonnement ultra-élevé, qui consomment tous deux beaucoup de jetons.
00:01:16Et comme ils fonctionnent en parallèle, l'utilisation de jetons grimpe vite, augmentant les coûts.
00:01:20Plusieurs applications connues ont déjà testé ce harnais sur leurs bases de code avec de bons résultats.
00:01:25Lors des tests effectués, le taux de faux positifs de cet outil est d'environ 10 à 20 %.
00:01:30Ce chiffre est significatif compte tenu de la précision habituelle des LLM.
00:01:33Inversement, cela signifie que l'agent a raison la plupart du temps et que ses vrais positifs sont
00:01:37élevés.
00:01:38C'est l'architecture derrière tout cela qui fait la différence.
00:01:40Si vous demandez à Clod code ou à n'importe quel agent une revue de sécurité, il commencera par scanner
00:01:45directement la base de code, puis produira un rapport de revue complet.
00:01:48Cela prend non seulement beaucoup de temps, mais consomme aussi beaucoup de jetons et la revue
00:01:52pourrait encore rater des éléments.
00:01:53La première partie de ce flux de travail est donc le scan, effectuant un balayage par RegEx de tous les
00:01:58fichiers pour cibler les zones sensibles sur lesquelles les étapes suivantes se concentreront.
00:02:01La détection par RegEx est importante ici car l'outil est conçu pour de grandes bases de code
00:02:06pouvant facilement contenir des milliers de fichiers.
00:02:08Le filtrage par RegEx est une série de motifs de code qui correspondent à des zones connues pour être
00:02:13vulnérables, permettant d'extraire ces fichiers de la masse globale.
00:02:16Une fois ce groupe de fichiers filtré, l'étape suivante est l'investigation par l'agent.
00:02:21L'agent est la partie coûteuse, consommant beaucoup de jetons et prenant généralement
00:02:25beaucoup de temps selon la taille réelle de votre base de code.
00:02:28Cet outil divise donc tous les fichiers en lots et les parallélise pour qu'ils soient traités
00:02:32en même temps.
00:02:34Une fois ce processus terminé, il y a une étape de revalidation où l'investigation est
00:02:37vérifiée à nouveau pour que les faux positifs soient contre-interrogés.
00:02:40S'il y a eu un oubli, il le rattrape et s'assure que la classification a été faite
00:02:45correctement.
00:02:46Cette revalidation est en fait optionnelle.
00:02:47Ensuite, l'agent utilise les métadonnées Git et d'autres sources pour identifier les personnes
00:02:51responsables de chaque problème.
00:02:53Une fois tout cela fini, les résultats sont stockés en Markdown ou JSON pour pouvoir
00:02:57être transformés en tickets pour des humains ou des agents de codage.
00:03:01Comme mentionné plus tôt, les fichiers sont groupés en lots avec environ 5 fichiers traités
00:03:05ensemble par lot.
00:03:06Pour chaque lot, un nouveau prompt est assemblé selon le framework identifié ainsi que
00:03:11d'autres informations du projet.
00:03:12Ceux-ci sont ensuite analysés par le SDK de l'agent Clod ou Codex, selon votre configuration,
00:03:17et ils disposent d'outils en lecture seule pour comprendre le contenu de la base de code.
00:03:22Une fois les résultats obtenus, tout est fusionné dans un seul fichier qui est dédoublonné
00:03:26et normalisé.
00:03:27À la fin, il y a une étape de suivi pour s'assurer que l'analyse a bien tout couvert.
00:03:31Cette architecture le rend efficace grâce à son processus systématique et sa méthode d'analyse
00:03:36structurée, aidant à identifier les problèmes bien mieux qu'un scan sans harnais.
00:03:41Pour tester cela, nous avons utilisé un projet open source qui est une application web contenant
00:03:45des risques de sécurité intégrés volontairement pour l'exercice.
00:03:47Nous voulions voir si cet outil était capable de détecter tous les problèmes de ce dépôt
00:03:52par lui-même.
00:03:53Ce projet contient 10 failles de sécurité avec tous les détails disponibles directement dans le code
00:03:56lui-même, y compris la manière de les supprimer.
00:03:58Pour lancer DeepSec, vous exécutez d'abord la commande deepsec init qui installe les dépendances
00:04:03et crée un dossier .deepsec, puis vous installez les dépendances dans ce dossier.
00:04:08Il vous donne aussi un prompt que vous devez coller dans l'agent de codage que vous utilisez.
00:04:12Comme nous utilisions Clod code, nous avons lancé ce prompt dans Clod qui contient les instructions
00:04:16pour créer un petit fichier info.md incluant toutes les infos du projet, basé sur
00:04:21un modèle spécifique.
00:04:23Vous ne devez pas lancer cette commande dans le dossier du projet lui-même, mais dans le dossier
00:04:27.deepsec car elle demande à l'agent de regarder dans le répertoire précédent pour lire
00:04:31toutes les informations.
00:04:32Le fichier info.md contient un aperçu général de ce que fait la base de code, du flux
00:04:37d'authentification, ainsi que les modèles de menace, les motifs spécifiques au projet et tous les
00:04:42faux positifs connus dans le code.
00:04:44Une fois ce fichier créé, la tâche suivante est de lancer la commande deepsec scan.
00:04:48Cette commande est le moteur RegEx dont on a parlé, et elle trouve tous les points de terminaison
00:04:52correspondants et liste les fichiers filtrés contenant des problèmes de sécurité potentiels.
00:04:57Cette partie est rapide car c'est juste du code en action.
00:05:00L'étape suivante consiste à lancer la commande deepsec process.
00:05:02Vous pouvez spécifier n'importe quelle clé API du modèle voulu, que ce soit la passerelle API
00:05:07Vercel, Codex ou Clod, à l'intérieur du fichier .env.local.
00:05:11Mais si vous ne le faites pas, comme nous, il utilise par défaut l'abonnement Clod code
00:05:16et se sert de votre authentification au lieu de nécessiter une clé API.
00:05:19Il divise le projet en lots et appelle plusieurs outils sur chacun d'eux.
00:05:23Après chaque lot, il donne un résumé du nombre de jetons utilisés et de l'estimation
00:05:27du coût.
00:05:28Si vous utilisez un abonnement, vous ne serez pas facturé en plus de votre forfait,
00:05:32mais cela fournit tout de même une estimation des coûts d'API.
00:05:35Comme c'est conçu pour de grandes revues de code, la fiabilité est une priorité.
00:05:39Ainsi, en cas d'erreur pendant la revue, il ne redémarre pas tout depuis
00:05:43le début mais continue à partir du point où l'erreur s'est produite.
00:05:46Une fois le scan fini, vous lancez la commande deepsec report et elle génère un rapport
00:05:50en formats JSON et Markdown contenant un aperçu général des trouvailles classées
00:05:55par niveau de sévérité.
00:05:56Une fois ce rapport généré, vous pouvez lancer l'étape de revalidation.
00:06:00Cette étape est entièrement facultative.
00:06:02Vous pouvez la lancer si vous le souhaitez ou l'ignorer complètement.
00:06:04Si vous l'exécutez, elle valide les résultats pour vérifier si les rapports sont des faux positifs
00:06:08ou non.
00:06:09Ensuite, vous pouvez tout exporter avec la commande export et cela écrira
00:06:13les résultats dans le dossier findings.
00:06:15Ce dossier contient les problèmes ordonnés par priorité comme noms de dossiers et crée
00:06:20un fichier par problème identifié.
00:06:22Il liste d'abord la source du problème, c'est-à-dire le fichier exact et les lignes en cause,
00:06:26la sévérité du problème et le niveau de confiance du modèle dans son identification.
00:06:30Il mentionne aussi quel commit a introduit le problème et l'assigne à l'auteur du commit.
00:06:34Il explique ensuite le correctif recommandé, liste les résultats de revalidation et mentionne
00:06:39tous les problèmes qui ont été explicitement traités.
00:06:41Il inclut également les étapes pour reproduire les bugs à l'intérieur des résultats.
00:06:44Cependant, ce rapport n'a pas identifié tous les problèmes, bien que le tutoriel soit
00:06:48présent dans le code lui-même et qu'il aurait dû être capable de les trouver.
00:06:52Nous avons donc discuté avec Claude pour comprendre pourquoi les leçons de vulnérabilité intégrées
00:06:56à l'application par conception n'avaient pas été identifiées.
00:06:59Après itération avec Claude, nous avons découvert que l'outil n'avait rapporté que 3 résultats
00:07:03à cause d'une mention explicite dans le fichier info.md.
00:07:07DeepSec s'attendait à une appli où les 10 vulnérabilités sont déjà connues et s'est concentré
00:07:12sur les problèmes autres que ceux-là, car ils étaient déjà répertoriés. Il essayait d'aller
00:07:16au-delà du déjà connu pour se focaliser sur d'autres motifs afin que le scan soit plus
00:07:21efficace et ne gaspille pas de temps et de jetons sur des problèmes déjà documentés.
00:07:25Nous avons ensuite testé une autre application pour voir s'il faisait mieux cette fois.
00:07:28Nous avons suivi les mêmes étapes, du scan jusqu'à la phase de traitement.
00:07:32Nous n'avons pas lancé la revalidation, nous avons juste créé le rapport et l'avons exporté.
00:07:36Et cette fois, le fichier info.md de Claude contenait seulement les détails de l'appli sans
00:07:42les déclarations du test précédent.
00:07:43En parallèle, nous avons aussi demandé à Claude de réviser le code et d'écrire un fichier report.md
00:07:48avec une revue de sécurité complète pour comparer les performances.
00:07:52Le rapport créé par DeepSec a trouvé plusieurs bugs avec différents niveaux de sévérité.
00:07:56Il a trouvé 9 problèmes et a créé un rapport détaillé avec les étapes recommandées pour les
00:08:01corriger.
00:08:02Et ces étapes recommandées sont ce que la plupart des autres rapports oublient, car c'est ce qui
00:08:05aide l'agent à comprendre comment corriger le problème, facilitant ainsi le débogage.
00:08:09Mais nous avons remarqué que le rapport de Claude était bien plus détaillé avec 39 problèmes signalés.
00:08:13Nous lui avons donc d'abord demandé de créer une comparaison (diff).
00:08:15Le diff a montré que le nombre de Claude était plus élevé.
00:08:18Mais nous avions déjà observé cela lors de nos tests avec Codex.
00:08:20Claude a tendance à identifier d'autres problèmes en plus du périmètre défini en cours de route.
00:08:24Il ne se concentre pas uniquement sur les problèmes ciblés pour lesquels DeepSec a été conçu.
00:08:29Une fois que nous lui avons demandé de se limiter au périmètre, il a réduit les résultats à 13 problèmes.
00:08:34Mais il restait quelques problèmes manqués par DeepSec qui figuraient dans le rapport de Claude.
00:08:38La raison pour laquelle DeepSec a raté quelques trouvailles est qu'il se focalise uniquement sur
00:08:43ce que le code contient directement et ce qui peut être résolu via les fonctions elles-mêmes.
00:08:47Il n'identifie pas les problèmes pouvant survenir lors de l'exécution, comme les soucis liés
00:08:52au CORS.
00:08:53Il ne se concentre pas non plus vraiment sur les motifs logiques et les décisions architecturales.
00:08:57Comme mentionné précédemment, il utilise RegEx pour filtrer les fichiers en premier.
00:09:01Il se focalise donc sur ce qui est explicitement présent dans le code et non sur les problèmes
00:09:05pouvant apparaître dynamiquement quand l'application tourne.
00:09:08Aussi, si vous appréciez notre contenu, n'hésitez pas à cliquer sur le bouton hype car cela nous aide
00:09:12à en créer davantage et à toucher plus de monde.
00:09:15Maintenant, au lieu de faire ces étapes une par une par nous-mêmes, nous avons créé cette compétence DeepSec
00:09:20qui contient toutes les instructions sur l'utilisation du scanner de Vercel de bout en bout
00:09:24et comment il doit identifier, à partir du prompt de l'utilisateur, ce qui est demandé.
00:09:28Il suit ensuite tout le processus étape par étape et gère l'intégralité du harnais de son côté.
00:09:32Il est aussi accompagné de multiples ressources, évaluations et références pour tous les problèmes,
00:09:37ainsi que de plusieurs scripts pouvant aider à la solution finale et au fonctionnement
00:09:42global de ce dépôt.
00:09:43Avec cela en place, vous pouvez simplement lancer ce scan de sécurité et spécifier le modèle souhaité,
00:09:47et il s'occupera directement de tout pour vous.
00:09:50Il passera par toutes les étapes vues plus tôt tout en traitant les problèmes manqués
00:09:54auparavant, et sera capable de réaliser une bien meilleure revue de sécurité en combinant
00:09:59les capacités de DeepSec tout en comblant les lacunes de ses résultats.
00:10:02Cette compétence ainsi que toutes les ressources se trouvent dans AI Labs Pro pour cette vidéo et
00:10:07toutes nos vidéos précédentes, d'où vous pouvez les télécharger pour vos propres projets.
00:10:11Si vous trouvez de la valeur dans ce que nous faisons et voulez soutenir la chaîne, c'est le meilleur
00:10:15moyen de le faire.
00:10:16Le lien est dans la description.
00:10:17Cela nous amène à la fin de cette vidéo.
00:10:19Si vous voulez soutenir la chaîne et nous aider à continuer ces vidéos, vous pouvez
00:10:23le faire en utilisant le bouton Super Thanks ci-dessous.
00:10:25Comme toujours, merci d'avoir regardé et je vous retrouve dans la prochaine.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video