[{"data":1,"prerenderedAt":973},["ShallowReactive",2],{"/fr-fr/blog/ai-agent-sandbox":3,"navigation-fr-fr":220,"banner-fr-fr":656,"footer-fr-fr":663,"blog-post-authors-fr-fr-Daniel Abeles":913,"blog-related-posts-fr-fr-ai-agent-sandbox":928,"blog-share-wrapper-fr-fr":954,"next-steps-fr-fr":964},{"id":4,"title":5,"authors":6,"body":8,"category":179,"date":180,"description":181,"extension":182,"externalUrl":183,"faq":184,"featured":205,"heroImage":206,"meta":207,"navigation":208,"path":209,"seo":210,"slug":212,"stem":213,"tags":214,"template":218,"updatedDate":183,"__hash__":219},"blogPosts/fr-fr/blog/ai-agent-sandbox.md","La sécurité d'un environnement sandbox se mesure à ce qu'un agent d'IA peut atteindre",[7],"Daniel Abeles",{"type":9,"value":10,"toc":170},"minimark",[11,15,18,28,33,36,39,42,46,49,63,66,69,72,75,79,86,89,93,96,138,142,145,155,158],[12,13,14],"p",{},"Au mois de juillet, OpenAI et Hugging Face ont signalé qu'un modèle OpenAI en cours d'évaluation interne s'était échappé de son environnement sandbox, avait atteint l'Internet public et avait accédé à l'infrastructure de production interne de Hugging Face. Au cours de cette intrusion, l'agent a pu récupérer des jeux de données, des informations sur les clusters et des clés cloud.",[12,16,17],{},"C'est la première heure qui a été déterminante dans la phase externe de cet incident, lorsque l'agent a quitté son environnement sandbox en exploitant une vulnérabilité dans un proxy de paquets figurant sur sa liste d'autorisation pour accéder à Internet.",[12,19,20,21,27],{},"Alors que de plus en plus de développeurs de modèles de pointe ",[22,23,26],"a",{"href":24,"rel":25},"https://www.anthropic.com/news/investigating-incidents-cybersecurity-evals",[],"signalent des incidents similaires",", le secteur de la sécurité doit examiner de près l'impact des agents sur la portée d'accès au sein des environnements de test. Et ce problème ne concerne pas uniquement les harnais d'évaluation. Toute charge de travail exécutant du code derrière une liste d'autorisation de sortie présente la même structure : des runners CI, des environnements sandbox hébergés et des serveurs d'outils accessibles par le réseau. La plupart de ces listes d'autorisation ont été conçues pour empêcher les fuites de données, mais ce n'est désormais plus la seule menace à contenir.",[29,30,32],"h2",{"id":31},"pourquoi-les-listes-dautorisation-étendent-la-portée-daccès","Pourquoi les listes d'autorisation étendent la portée d'accès",[12,34,35],{},"Lorsque vous établissez une liste d'autorisation, vous déterminez généralement les services qu'une charge de travail doit contacter, et évaluez chaque entrée en fonction des données qu'elle pourrait laisser échapper.",[12,37,38],{},"L'agent d'OpenAI a mis en évidence une faille dans ce processus standard. Le proxy de paquets auquel l'agent a accédé est un service à part entière : il authentifie les appelants, exécute des logiciels comportant des vulnérabilités et communique avec l'Internet public. Alors que l'environnement sandbox ne pouvait pas accéder à Internet, l'agent a donc obtenu l'accès au proxy de paquets, qui lui, pouvait y accéder.",[12,40,41],{},"Une liste d'autorisation confère à votre charge de travail d'IA l'accès à toute destination qu'elle est en mesure de compromettre.",[29,43,45],{"id":44},"comment-le-modèle-dopenai-sest-échappé","Comment le modèle d'OpenAI s'est échappé",[12,47,48],{},"L'agent d'OpenAI a identifié deux vulnérabilités zero-day dans le proxy de paquets de sa liste d'autorisation, avec un gain potentiel considérable.",[12,50,51,52,57,58,62],{},"Une faille de falsification de requête côté serveur (SSRF) constituait la première lacune : elle a permis à l'agent de demander au proxy de récupérer des URL arbitraires en son nom. Dans ",[22,53,56],{"href":54,"rel":55},"https://www.youtube.com/watch?v=87DyyMV0kCY&t=721s",[],"la présentation d'OpenAI à Black Hat",", le raisonnement du modèle à cet instant était le suivant : « ",[59,60,61],"em",{},"excellent, nous disposons d'une SSRF arbitraire"," ». L'environnement sandbox a ainsi emprunté la connexion Internet du proxy.",[12,64,65],{},"La portée de ces jetons prend la forme d'une revendication plutôt que d'une vérification effectuée par le serveur ; si la signature n'est pas vérifiée, la revendication peut être définie par l'appelant.",[12,67,68],{},"En l'occurrence, l'appelant était l'agent, qui a étendu les droits d'accès de son jeton à portée de lecture au sein de l'environnement sandbox en modifiant son droit d'accès pour le faire passer au niveau administratif. Il a ensuite soumis le jeton au proxy de paquets pour qu'il soit actualisé, lequel a fourni un jeton avec des droits d'administrateur. L'agent pouvait ainsi agir avec des permissions d'administrateur au lieu de ses permissions initiales en lecture seule.",[12,70,71],{},"Les agents ont travaillé en groupe pour s'évader. Ensemble, ils ont exploré le seul service accessible jusqu'à trouver un moyen de le faire fonctionner en leur nom, puis ont partagé la méthode pour que les autres agents puissent l'utiliser. Un agent a fait remarquer que l'exploitation externe dépassait le cadre de ses instructions, mais a néanmoins poursuivi.",[12,73,74],{},"Selon Hugging Face et OpenAI, la compromission du proxy a eu lieu au cours de la première demi-heure environ du test en environnement sandbox, malgré la nature insaisissable des vulnérabilités. Rappelons qu'il s'agissait de vulnérabilités zero-day : l'agent ne pouvait donc pas se référer à une CVE (vulnérabilité ou exposition commune) ou à un avis de sécurité. Le proxy de paquets est par ailleurs un logiciel propriétaire dont le code n'a jamais figuré dans les données d'entraînement de l'agent.",[29,76,78],{"id":77},"pourquoi-le-modèle-sest-échappé","Pourquoi le modèle s'est échappé",[12,80,81,82,85],{},"Nous savons désormais pourquoi l'agent s'en est pris au proxy. Bloqué dans sa tâche d'évaluation, le modèle a raisonné, comme le montre la présentation d'OpenAI, en se disant que ",[59,83,84],{},"la réponse se trouvait peut-être en ligne"," avant de chercher une issue. Les modèles de pointe sont récompensés pour la rapidité avec laquelle ils résolvent les tâches ; ainsi, un modèle bloqué cherche des raccourcis, et OpenAI ferme habituellement cette voie en désactivant l'accès à Internet.",[12,87,88],{},"Des questions restent en suspens concernant le comportement de l'agent, notamment sur l'ensemble de ses actions durant les quatre jours d'intrusion et sur ce qu'il a fait une fois l'accès à Internet obtenu. Ce que nous savons, c'est que cet agent a démontré concrètement que nous devons intégrer de nouvelles considérations dans la conception des environnements de test pour les IA autonomes dotées de capacités en matière de sécurité.",[29,90,92],{"id":91},"comment-réduire-les-risques-dans-les-environnements-de-test-dia","Comment réduire les risques dans les environnements de test d'IA",[12,94,95],{},"Si vous mettez en place des environnements sandbox pour des agents d'IA, voici quatre façons de réduire vos risques et de limiter la portée d'accès :",[97,98,99,107,113,119],"ol",{},[100,101,102,106],"li",{},[103,104,105],"strong",{},"Bloquez les routes qu'un client de build n'utilise jamais."," Un client de build ne fait que télécharger des fichiers. Il n'a aucune raison d'appeler l'API d'administration du proxy, ses routes de configuration ou sa route de renouvellement de jeton, qui remplace un jeton sur le point d'expirer par un nouveau et qui est précisément la route qui a été exploitée lors de cet incident.",[100,108,109,112],{},[103,110,111],{},"Limitez ce que le proxy lui-même peut atteindre."," L'agent s'est échappé parce que le proxy pouvait accéder à l'ensemble d'Internet, ce qui signifiait que quiconque contrôlait le proxy pouvait aussi y accéder. Limitez les connexions sortantes du proxy aux seuls registres qu'il sert réellement.",[100,114,115,118],{},[103,116,117],{},"Surveillez le proxy."," Un proxy au service d'une flotte de build est monotone, avec des connexions courtes, des téléchargements de petite taille et des requêtes qui aboutissent la plupart du temps. Envisagez de mettre en place des alertes pour tout comportement déviant, comme des connexions qui restent ouvertes, des données sortant en masse, une série de requêtes pour des paquets inexistants ou tout appel à une route d'administration.",[100,120,121,124,125,130,131,137],{},[103,122,123],{},"Traitez les charges de travail non fiables comme si elles étaient exposées à Internet."," Si une charge de travail non fiable peut atteindre un service interne, traitez ce service comme s'il était exposé à Internet. Tout ce qui compromet la charge de travail peut également y accéder. Nous nous sommes penchés sur ",[22,126,129],{"href":127,"rel":128},"https://about.gitlab.com/fr-fr/blog/harden-pipeline-perimeter-for-ai-assisted-coding/",[],"la même question pour les runners CI"," plus tôt cette année, dans un contexte où le code non fiable s'exécute dans un ",[22,132,136],{"href":133,"rel":134,"title":135},"https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/",[],"Qu'est-ce qu'un pipeline CI/CD ?","pipeline CI/CD"," plutôt que dans un environnement sandbox d'agent.",[29,139,141],{"id":140},"les-modèles-dotés-de-capacités-de-cybersécurité-imposent-de-nouvelles-considérations-pour-les-environnements-sandbox","Les modèles dotés de capacités de cybersécurité imposent de nouvelles considérations pour les environnements sandbox",[12,143,144],{},"Un environnement sandbox est une liste d'éléments avec lesquels la charge de travail qu'il contient peut interagir, et chaque élément de cette liste apporte son propre champ d'action. Lorsque la charge de travail est un simple job de build, cela importe peu ; mais la situation change dès lors que des agents élargissent cette liste d'une manière que les conceptions basées sur des listes d'autorisation n'avaient jamais anticipée.",[12,146,147,148,154],{},"Au-delà des harnais d'évaluation, les charges de travail agentiques s'intègrent également à l'",[22,149,153],{"href":150,"rel":151,"title":152},"https://about.gitlab.com/fr-fr/topics/ci-cd/benefits-continuous-integration/",[],"Qu'est-ce que l'intégration continue ?","intégration continue (CI)",", à l'automatisation de la production et aux outils qui interagissant avec des services internes. Chacun de ces contextes dispose d'une liste présentant des propriétés et une structure similaires. À mesure que les modèles deviennent plus performants pour détecter et enchaîner les failles, la portée de ces listes élargit l'étendue des systèmes sur lesquels les agents peuvent avoir un impact.",[12,156,157],{},"OpenAI observe que ces agents restent « limités par les privilèges qu'ils peuvent obtenir et les systèmes avec lesquels ils peuvent communiquer », de sorte que les contrôles existants restent efficaces. Ce qui doit changer, c'est le soin avec lequel nous établissons ces listes pour minimiser la portée d'accès.",[159,160,161],"blockquote",{},[12,162,163,164,169],{},"Retrouvez d'autres articles de l'équipe Threat Research sur notre ",[22,165,168],{"href":166,"rel":167},"https://about.gitlab.com/fr-fr/blog/categories/security-labs/",[],"page Security Labs",".",{"title":171,"searchDepth":172,"depth":172,"links":173},"",2,[174,175,176,177,178],{"id":31,"depth":172,"text":32},{"id":44,"depth":172,"text":45},{"id":77,"depth":172,"text":78},{"id":91,"depth":172,"text":92},{"id":140,"depth":172,"text":141},"security-labs","2026-08-31","Bloqué dans une évaluation sans issue, un agent d'IA s'est échappé en une heure via le seul service de sa liste d'autorisation. Découvrez la faille qu'il a exploitée.","md",null,{"header":185,"description":171,"groups":186},"Questions fréquemment posées",[187],{"questions":188},[189,193,196,199,202],{"question":190,"answer":191,"config":192},"Comment l'agent a-t-il pu accéder à Internet alors que son environnement sandbox n'y était pas connecté ?","Il a demandé au proxy de le faire à sa place. Une faille de falsification de requête côté serveur (SSRF) dans le proxy de paquets permettait à l'agent de fournir des URL arbitraires, le proxy a alors effectué les requêtes en son nom. L'environnement sandbox a ainsi emprunté la connectivité du proxy.",{"id":171},{"question":194,"answer":195},"L'évasion faisait-elle partie des instructions données à l'agent ?","Non. Le benchmark évaluait l'exploitation de bogues dans des logiciels tels que les moteurs de navigateur et les noyaux. La présentation d'OpenAI montre l'agent bloqué sur une tâche, en déduisant que la réponse se trouvait peut-être en ligne, puis en cherchant un moyen d'y accéder.",{"question":197,"answer":198},"Les agents ont-ils collaboré entre eux ?","Oui. Un agent a établi un canal de communication avec d'autres agents en téléchargeant une note dans un gestionnaire de paquets interne partagé. Les failles découvertes y étaient publiées, de sorte qu'une méthode trouvée par un agent devenait accessible à tous les autres.",{"question":200,"answer":201},"Un réseau privé ou un VPC aurait-il pu empêcher ce scénario ?","Pas à lui seul. L'environnement sandbox ne disposait déjà d'aucune route vers Internet. La destination autorisée se trouvait à l'intérieur du réseau de confiance, d'où l'intérêt d'y accéder. La segmentation est efficace lorsque les services accessibles sont eux aussi limités.",{"question":203,"answer":204},"Nous utilisons un fournisseur d'environnement sandbox hébergé. À qui incombe cette responsabilité ?","Aux deux parties. Les fournisseurs sont responsables de la technologie d'isolation. Vous êtes responsable de la liste d'autorisation, des services qui y figurent et de ce que ces services peuvent atteindre. Renseignez-vous sur ce que la liste d'autorisation par défaut autorise et sur les destinations auxquelles ces services peuvent accéder.",false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1786468880/uxouffutvvwsbxzikhyc.png",{},true,"/fr-fr/blog/ai-agent-sandbox",{"title":5,"description":181,"config":211},{"noIndex":205},"ai-agent-sandbox","fr-fr/blog/ai-agent-sandbox",[215,216,217],"security","AI","security research","BlogPost","gYm_EJJ-UYTBDeWBzza6GjNrdSRjhcxp4rnuAVOYSBM",{"logo":221,"freeTrial":226,"sales":231,"login":236,"items":241,"search":572,"minimal":607,"duo":626,"switchNav":635,"pricingDeployment":646},{"config":222},{"href":223,"dataGaName":224,"dataGaLocation":225},"/fr-fr/","gitlab logo","header",{"text":227,"config":228},"Commencer un essai gratuit",{"href":229,"dataGaName":230,"dataGaLocation":225},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":232,"config":233},"Demander une démo",{"href":234,"dataGaName":235,"dataGaLocation":225},"/request-a-demo/","sales",{"text":237,"config":238},"Connexion",{"href":239,"dataGaName":240,"dataGaLocation":225},"https://gitlab.com/users/sign_in/","sign in",[242,328,416,421,496,550],{"text":243,"left":208,"config":244,"menu":246},"Plateforme",{"dataNavLevelOne":245},"platform",{"type":247,"link":248,"columns":252,"feature":317},"lists",{"text":249,"config":250},"Explorer la plateforme",{"href":251,"dataGaName":245,"dataGaLocation":225},"/fr-fr/platform/",[253,276,299],{"title":254,"items":255},"Exécution et workflows",[256,261,266,271],{"text":257,"config":258},"CI/CD",{"href":259,"dataGaLocation":225,"dataGaName":260},"/fr-fr/solutions/continuous-integration/","ci/cd",{"text":262,"config":263},"Gestion du code source",{"href":264,"dataGaLocation":225,"dataGaName":265},"/fr-fr/solutions/source-code-management/","source code management",{"text":267,"config":268},"Méthode de livraison selon les principes Agile",{"href":269,"dataGaLocation":225,"dataGaName":270},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":272,"config":273},"Gestion des artefacts",{"href":274,"dataGaLocation":225,"dataGaName":275},"/fr-fr/artifact-central/","artifact management",{"title":277,"items":278},"Sécurité et gouvernance",[279,284,289,294],{"text":280,"config":281},"Test de sécurité des applications",{"href":282,"dataGaLocation":225,"dataGaName":283},"/fr-fr/solutions/application-security-testing/","application security testing",{"text":285,"config":286},"Gouvernance et conformité",{"href":287,"dataGaLocation":225,"dataGaName":288},"/fr-fr/solutions/software-compliance/","governance and compliance",{"text":290,"config":291},"Gestion des secrets",{"href":292,"dataGaLocation":225,"dataGaName":293},"/fr-fr/gitlab-secrets-manager/","secrets management",{"text":295,"config":296},"Sécurité de la chaîne d'approvisionnement",{"href":297,"dataGaLocation":225,"dataGaName":298},"/fr-fr/solutions/supply-chain/","supply chain security",{"title":300,"items":301},"Contexte et IA",[302,307,312],{"text":303,"config":304},"Orchestration agentique",{"href":305,"dataGaLocation":225,"dataGaName":306},"/fr-fr/gitlab-duo-agent-platform/","agentic orchestration",{"text":308,"config":309},"Graphe de contexte",{"href":310,"dataGaLocation":225,"dataGaName":311},"/fr-fr/gitlab-orbit/","context graph",{"text":313,"config":314},"Visibilité et mesures",{"href":315,"dataGaLocation":225,"dataGaName":316},"/fr-fr/solutions/visibility-measurement/","visibility and measurement",{"config":318,"title":321,"text":322,"link":323},{"background":319,"textColor":320},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1790185102/o7dn32anqcb6z8dgd3as.jpg')","#000","Pourquoi utiliser GitLab","Une plateforme unique offrant une rapidité maîtrisée tout au long du cycle de développement logiciel.",{"text":324,"config":325},"En savoir plus",{"href":326,"dataGaName":327,"dataGaLocation":225},"/fr-fr/why-gitlab/","why gitlab",{"text":329,"left":208,"config":330,"menu":332},"Solutions",{"dataNavLevelOne":331},"solutions",{"type":247,"link":333,"columns":337,"feature":407},{"text":334,"config":335},"Voir toutes les solutions",{"href":336,"dataGaName":331,"dataGaLocation":225},"/fr-fr/solutions/",[338,356,374],{"title":339,"items":340},"Résultats",[341,346,351],{"text":342,"config":343},"Modernisation DevOps",{"href":344,"dataGaLocation":225,"dataGaName":345},"/fr-fr/assessments/devops-modernization-assessment/","devops modernization",{"text":347,"config":348},"Modernisation de la sécurité",{"href":349,"dataGaLocation":225,"dataGaName":350},"/fr-fr/assessments/security-modernization-assessment/","security modernization",{"text":352,"config":353},"Modernisation de l'IA",{"href":354,"dataGaLocation":225,"dataGaName":355},"/fr-fr/assessments/ai-modernization-assessment/","ai modernization",{"title":357,"items":358},"Par taille",[359,364,369],{"text":360,"config":361},"Entreprises",{"href":362,"dataGaLocation":225,"dataGaName":363},"/fr-fr/enterprise/","enterprise",{"text":365,"config":366},"PME",{"href":367,"dataGaLocation":225,"dataGaName":368},"/fr-fr/small-business/","small business",{"text":370,"config":371},"Start-up",{"href":372,"dataGaLocation":225,"dataGaName":373},"/fr-fr/solutions/startups/","startups",{"title":375,"items":376},"Secteurs",[377,382,387,392,397,402],{"text":378,"config":379},"Services financiers",{"href":380,"dataGaLocation":225,"dataGaName":381},"/fr-fr/solutions/finance/","financial services",{"text":383,"config":384},"Secteur public",{"href":385,"dataGaLocation":225,"dataGaName":386},"/fr-fr/solutions/public-sector/","public sector",{"text":388,"config":389},"Télécommunications",{"href":390,"dataGaLocation":225,"dataGaName":391},"/fr-fr/solutions/telecommunications/","telecommunications",{"text":393,"config":394},"Automobile",{"href":395,"dataGaLocation":225,"dataGaName":396},"/fr-fr/solutions/automotive/","automotive",{"text":398,"config":399},"Éducation",{"href":400,"dataGaLocation":225,"dataGaName":401},"/fr-fr/solutions/education/","education",{"text":403,"config":404},"Aérospatiale",{"href":405,"dataGaLocation":225,"dataGaName":406},"/fr-fr/solutions/aerospace/","aerospace",{"config":408,"title":409,"text":410,"link":411},{"background":319,"textColor":320},"GitLab Security Standard","Découvrez comment renforcer votre usine logicielle et permettre aux agents d'IA de gagner en autonomie sans sacrifier la sécurité.",{"text":412,"config":413},"Découvrir GitLab Security Standard",{"href":414,"dataGaName":415,"dataGaLocation":225},"/fr-fr/gitlab-security-standard/","gitlab security standard",{"text":417,"config":418},"Tarifs",{"href":419,"dataGaName":420,"dataGaLocation":225,"dataNavLevelOne":420},"/fr-fr/pricing/","pricing",{"text":422,"config":423,"menu":425},"Ressources",{"dataNavLevelOne":424},"resources",{"type":247,"link":426,"columns":430,"feature":487},{"text":427,"config":428},"Afficher toutes les ressources",{"href":429,"dataGaName":424,"dataGaLocation":225},"/fr-fr/resources/",[431,459],{"title":432,"items":433},"Découvrir",[434,439,444,449,454],{"text":435,"config":436},"Documentation",{"href":437,"dataGaName":438,"dataGaLocation":225},"https://docs.gitlab.com/","docs",{"text":440,"config":441},"GitLab University",{"href":442,"dataGaName":443,"dataGaLocation":225},"https://university.gitlab.com/","university",{"text":445,"config":446},"Démos",{"href":447,"dataGaName":448,"dataGaLocation":225},"/fr-fr/gitlab-technical-demo-series/","demo series",{"text":450,"config":451},"Centre de démos",{"href":452,"dataGaName":453,"dataGaLocation":225},"/fr-fr/demo-hub/","demo hub",{"text":455,"config":456},"Services",{"href":457,"dataGaName":458,"dataGaLocation":225},"/fr-fr/services/","services",{"title":460,"items":461},"Connecter",[462,467,472,477,482],{"text":463,"config":464},"Blog",{"href":465,"dataGaName":466,"dataGaLocation":225},"/fr-fr/blog/","blog",{"text":468,"config":469},"Communauté",{"href":470,"dataGaName":471,"dataGaLocation":225},"/community/","community",{"text":473,"config":474},"Clients",{"href":475,"dataGaName":476,"dataGaLocation":225},"/fr-fr/customers/","customers",{"text":478,"config":479},"Partenaires",{"href":480,"dataGaName":481,"dataGaLocation":225},"/fr-fr/partners/","partners",{"text":483,"config":484},"Événements",{"href":485,"dataGaName":486,"dataGaLocation":225},"/events/","events",{"config":488,"title":489,"text":490,"link":491},{"background":319,"textColor":320},"Nouveautés de GitLab","Découvrez les dernières fonctionnalités et améliorations.",{"text":492,"config":493},"Lire les articles les plus récents",{"href":494,"dataGaName":495,"dataGaLocation":225},"/fr-fr/whats-new/","whats new",{"text":497,"config":498,"menu":500},"Société",{"dataNavLevelOne":499},"company",{"type":247,"columns":501},[502],{"items":503},[504,509,515,520,525,530,535,540,545],{"text":505,"config":506},"À propos",{"href":507,"dataGaName":508,"dataGaLocation":225},"/fr-fr/company/","about",{"text":510,"config":511,"footerGa":514},"Carrières",{"href":512,"dataGaName":513,"dataGaLocation":225},"/jobs/","jobs",{"dataGaName":513},{"text":516,"config":517},"Presse",{"href":518,"dataGaName":519,"dataGaLocation":225},"/press/","press",{"text":521,"config":522},"Manuel",{"href":523,"dataGaName":524,"dataGaLocation":225},"https://handbook.gitlab.com/","handbook",{"text":526,"config":527},"Leadership",{"href":528,"dataGaName":529,"dataGaLocation":225},"/company/team/e-group/","leadership",{"text":531,"config":532},"Relations avec les investisseurs",{"href":533,"dataGaName":534,"dataGaLocation":225},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":536,"config":537},"Trust Center",{"href":538,"dataGaName":539,"dataGaLocation":225},"/fr-fr/security/","trust center",{"text":541,"config":542},"Centre pour la transparence de l'IA",{"href":543,"dataGaName":544,"dataGaLocation":225},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":546,"config":547},"Newsletter",{"href":548,"dataGaName":549,"dataGaLocation":225},"/company/contact/#contact-forms","newsletter",{"text":551,"config":552,"menu":553},"Nous contacter",{"dataNavLevelOne":499},{"type":247,"columns":554},[555],{"items":556},[557,562,567],{"text":558,"config":559},"Contacter l'équipe commerciale",{"href":560,"dataGaName":561,"dataGaLocation":225},"/fr-fr/sales/","talk to sales",{"text":563,"config":564},"Assistance GitLab",{"href":565,"dataGaName":566,"dataGaLocation":225},"https://support.gitlab.com/hc/en-us","support portal",{"text":568,"config":569},"Portail clients GitLab",{"href":570,"dataGaName":571,"dataGaLocation":225},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":573,"login":574,"suggestions":581},"Fermer",{"text":575,"link":576},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":577,"config":578},"GitLab.com",{"href":239,"dataGaName":579,"dataGaLocation":580},"search login","search",{"text":582,"default":583},"Suggestions",[584,588,592,594,599,604],{"text":585,"config":586},"GitLab Duo Agent Platform",{"href":305,"dataGaName":587,"dataGaLocation":580},"GitLab Duo Agent Platform",{"text":589,"config":590},"Suggestions de code (IA)",{"href":305,"dataGaName":591,"dataGaLocation":580},"Code Suggestions (AI)",{"text":257,"config":593},{"href":259,"dataGaName":257,"dataGaLocation":580},{"text":595,"config":596},"GitLab sur AWS",{"href":597,"dataGaName":598,"dataGaLocation":580},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":600,"config":601},"GitLab sur Google Cloud",{"href":602,"dataGaName":603,"dataGaLocation":580},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":321,"config":605},{"href":326,"dataGaName":606,"dataGaLocation":580},"Why GitLab?",{"freeTrial":608,"mobileIcon":613,"desktopIcon":618,"secondaryButton":621},{"text":609,"config":610},"Commencer votre essai gratuit",{"href":611,"dataGaName":230,"dataGaLocation":612},"https://gitlab.com/-/trials/new/","nav",{"altText":614,"config":615},"Icône GitLab",{"src":616,"dataGaName":617,"dataGaLocation":612},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":614,"config":619},{"src":620,"dataGaName":617,"dataGaLocation":612},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":622,"config":623},"Commencer",{"href":624,"dataGaName":625,"dataGaLocation":612},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":627,"mobileIcon":631,"desktopIcon":633},{"text":628,"config":629},"En savoir plus sur GitLab Duo",{"href":305,"dataGaName":630,"dataGaLocation":612},"gitlab duo",{"altText":614,"config":632},{"src":616,"dataGaName":617,"dataGaLocation":612},{"altText":614,"config":634},{"src":620,"dataGaName":617,"dataGaLocation":612},{"button":636,"mobileIcon":641,"desktopIcon":643},{"text":637,"config":638},"/switch",{"href":639,"dataGaName":640,"dataGaLocation":612},"#contact","switch",{"altText":614,"config":642},{"src":616,"dataGaName":617,"dataGaLocation":612},{"altText":614,"config":644},{"src":645,"dataGaName":617,"dataGaLocation":612},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":647,"mobileIcon":652,"desktopIcon":654},{"text":648,"config":649},"Retour aux tarifs",{"href":419,"dataGaName":650,"dataGaLocation":612,"icon":651},"back to pricing","GoBack",{"altText":614,"config":653},{"src":616,"dataGaName":617,"dataGaLocation":612},{"altText":614,"config":655},{"src":620,"dataGaName":617,"dataGaLocation":612},{"title":657,"button":658,"config":661},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":324,"config":659},{"href":310,"dataGaName":660,"dataGaLocation":225},"orbit",{"layout":662,"disabled":205},"release",{"data":664},{"text":665,"source":666,"edit":672,"contribute":677,"config":682,"items":687,"minimal":905},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":667,"config":668},"Afficher le code source de la page",{"href":669,"dataGaName":670,"dataGaLocation":671},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":673,"config":674},"Modifier cette page",{"href":675,"dataGaName":676,"dataGaLocation":671},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":678,"config":679},"Contribuer",{"href":680,"dataGaName":681,"dataGaLocation":671},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":683,"facebook":684,"youtube":685,"linkedin":686},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[688,733,790,831,872],{"title":417,"links":689,"subMenu":704},[690,694,699],{"text":691,"config":692},"Voir les forfaits",{"href":419,"dataGaName":693,"dataGaLocation":671},"view plans",{"text":695,"config":696},"GitLab Premium",{"href":697,"dataGaName":698,"dataGaLocation":671},"/fr-fr/pricing/premium/","why premium",{"text":700,"config":701},"GitLab Ultimate",{"href":702,"dataGaName":703,"dataGaLocation":671},"/fr-fr/pricing/ultimate/","why ultimate",[705],{"title":551,"links":706},[707,709,711,713,718,723,728],{"text":558,"config":708},{"href":560,"dataGaName":235,"dataGaLocation":671},{"text":563,"config":710},{"href":565,"dataGaName":566,"dataGaLocation":671},{"text":568,"config":712},{"href":570,"dataGaName":571,"dataGaLocation":671},{"text":714,"config":715},"Statut",{"href":716,"dataGaName":717,"dataGaLocation":671},"https://status.gitlab.com/","status",{"text":719,"config":720},"Conditions d'utilisation",{"href":721,"dataGaName":722,"dataGaLocation":671},"/terms/","terms of use",{"text":724,"config":725},"Politique de confidentialité",{"href":726,"dataGaName":727,"dataGaLocation":671},"/fr-fr/privacy/","privacy statement",{"text":729,"config":730},"Gestion des cookies",{"dataGaName":731,"dataGaLocation":671,"id":732,"isOneTrustButton":208},"cookie preferences","ot-sdk-btn",{"title":243,"links":734,"subMenu":747},[735,737,739,741,743,745],{"text":249,"config":736},{"href":251,"dataGaName":245,"dataGaLocation":671},{"text":303,"config":738},{"href":305,"dataGaName":306,"dataGaLocation":671},{"text":257,"config":740},{"href":259,"dataGaName":260,"dataGaLocation":671},{"text":308,"config":742},{"href":310,"dataGaName":311,"dataGaLocation":671},{"text":290,"config":744},{"href":292,"dataGaName":293,"dataGaLocation":671},{"text":321,"config":746},{"href":326,"dataGaName":327,"dataGaLocation":671},[748],{"title":749,"links":750},"Thèmes",[751,755,760,765,770,775,780,785],{"text":257,"config":752},{"href":753,"dataGaName":754,"dataGaLocation":671},"/fr-fr/topics/ci-cd/","cicd",{"text":756,"config":757},"GitOps",{"href":758,"dataGaName":759,"dataGaLocation":671},"/fr-fr/topics/gitops/","gitops",{"text":761,"config":762},"DevOps",{"href":763,"dataGaName":764,"dataGaLocation":671},"/fr-fr/topics/devops/","devops",{"text":766,"config":767},"Contrôle de version",{"href":768,"dataGaName":769,"dataGaLocation":671},"/fr-fr/topics/version-control/","version control",{"text":771,"config":772},"DevSecOps",{"href":773,"dataGaName":774,"dataGaLocation":671},"/fr-fr/topics/devsecops/","devsecops",{"text":776,"config":777},"Cloud-native",{"href":778,"dataGaName":779,"dataGaLocation":671},"/fr-fr/topics/cloud-native/","cloud native",{"text":781,"config":782},"IA pour la programmation",{"href":783,"dataGaName":784,"dataGaLocation":671},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":786,"config":787},"IA agentique",{"href":788,"dataGaName":789,"dataGaLocation":671},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":329,"links":791},[792,794,796,798,800,802,804,806,808,810,812,814,816,819,823,827],{"text":342,"config":793},{"href":344,"dataGaName":345,"dataGaLocation":671},{"text":347,"config":795},{"href":349,"dataGaName":350,"dataGaLocation":671},{"text":352,"config":797},{"href":354,"dataGaName":355,"dataGaLocation":671},{"text":378,"config":799},{"href":380,"dataGaName":381,"dataGaLocation":671},{"text":383,"config":801},{"href":385,"dataGaName":386,"dataGaLocation":671},{"text":388,"config":803},{"href":390,"dataGaName":391,"dataGaLocation":671},{"text":393,"config":805},{"href":395,"dataGaName":396,"dataGaLocation":671},{"text":398,"config":807},{"href":400,"dataGaName":401,"dataGaLocation":671},{"text":403,"config":809},{"href":405,"dataGaName":406,"dataGaLocation":671},{"text":360,"config":811},{"href":362,"dataGaName":363,"dataGaLocation":671},{"text":365,"config":813},{"href":367,"dataGaName":368,"dataGaLocation":671},{"text":370,"config":815},{"href":372,"dataGaName":373,"dataGaLocation":671},{"text":756,"config":817},{"href":818,"dataGaName":759,"dataGaLocation":671},"/fr-fr/solutions/gitops/",{"text":820,"config":821},"Analyse de la composition logicielle",{"href":297,"dataGaName":822,"dataGaLocation":671},"software composition analysis",{"text":824,"config":825},"Gestion de la chaîne de valeur",{"href":315,"dataGaName":826,"dataGaLocation":671},"value stream management",{"text":828,"config":829},"Toutes les solutions",{"href":336,"dataGaName":830,"dataGaLocation":671},"all solutions",{"title":422,"links":832},[833,838,843,845,847,849,851,853,855,857,859,861,863,865,868],{"text":834,"config":835},"Installation",{"href":836,"dataGaName":837,"dataGaLocation":671},"/fr-fr/install/","install",{"text":839,"config":840},"Guides de démarrage",{"href":841,"dataGaName":842,"dataGaLocation":671},"/fr-fr/get-started/","quick setup checklists",{"text":435,"config":844},{"href":437,"dataGaName":438,"dataGaLocation":671},{"text":440,"config":846},{"href":442,"dataGaName":443,"dataGaLocation":671},{"text":445,"config":848},{"href":447,"dataGaName":448,"dataGaLocation":671},{"text":450,"config":850},{"href":452,"dataGaName":453,"dataGaLocation":671},{"text":455,"config":852},{"href":457,"dataGaName":458,"dataGaLocation":671},{"text":463,"config":854},{"href":465,"dataGaName":466,"dataGaLocation":671},{"text":468,"config":856},{"href":470,"dataGaName":471,"dataGaLocation":671},{"text":473,"config":858},{"href":475,"dataGaName":476,"dataGaLocation":671},{"text":478,"config":860},{"href":480,"dataGaName":481,"dataGaLocation":671},{"text":483,"config":862},{"href":485,"dataGaName":486,"dataGaLocation":671},{"text":546,"config":864},{"href":548,"dataGaName":549,"dataGaLocation":671},{"text":866,"config":867},"Nouveautés",{"href":494,"dataGaName":495,"dataGaLocation":671},{"text":869,"config":870},"Toutes les ressources",{"href":429,"dataGaName":871,"dataGaLocation":671},"all resources",{"title":497,"links":873},[874,876,878,880,882,884,886,888,890,895,900],{"text":505,"config":875},{"href":507,"dataGaName":499,"dataGaLocation":671},{"text":510,"config":877},{"href":512,"dataGaName":513,"dataGaLocation":671},{"text":516,"config":879},{"href":518,"dataGaName":519,"dataGaLocation":671},{"text":521,"config":881},{"href":523,"dataGaName":524,"dataGaLocation":671},{"text":526,"config":883},{"href":528,"dataGaName":529,"dataGaLocation":671},{"text":531,"config":885},{"href":533,"dataGaName":534,"dataGaLocation":671},{"text":536,"config":887},{"href":538,"dataGaName":539,"dataGaLocation":671},{"text":541,"config":889},{"href":543,"dataGaName":544,"dataGaLocation":671},{"text":891,"config":892},"Développement durable",{"href":893,"dataGaName":894,"dataGaLocation":671},"/sustainability/","Sustainability",{"text":896,"config":897},"Diversité, inclusion et appartenance (DIB)",{"href":898,"dataGaName":899,"dataGaLocation":671},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":901,"config":902},"Déclaration de transparence sur l'esclavage moderne",{"href":903,"dataGaName":904,"dataGaLocation":671},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":906},[907,909,911],{"text":719,"config":908},{"href":721,"dataGaName":722,"dataGaLocation":671},{"text":729,"config":910},{"dataGaName":731,"dataGaLocation":671,"id":732,"isOneTrustButton":208},{"text":724,"config":912},{"href":726,"dataGaName":727,"dataGaLocation":671},[914],{"id":915,"title":7,"body":183,"config":916,"content":919,"description":183,"extension":922,"meta":923,"navigation":208,"path":924,"seo":925,"stem":926,"__hash__":927},"blogAuthors/en-us/blog/authors/daniel-abeles.yml",{"template":917,"gitlabHandle":918},"BlogAuthor","dabeles",{"name":7,"config":920},{"headshot":921},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1786473980/kjzctsiwvfc6afimsdtc.jpg","yml",{},"/en-us/blog/authors/daniel-abeles",{},"en-us/blog/authors/daniel-abeles","9j7gS6WI8857OrOR0VcnHZiFLXpZpnKFA3tgPdDU5hw",[929,937,946],{"title":930,"description":931,"heroImage":932,"category":179,"date":933,"authors":934,"slug":936,"externalUrl":183},"Exécution critique de code à distance dans Serena, un agent de codage MCP très répandu","Le Threat Research Group de GitLab a découvert une injection de template critique dans Serena, qui exécute du code malveillant dès qu'un développeur ouvre un dépôt.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782237704/cj50chkvprjthczevmog.png","2026-09-01",[7,935],"Abisheik Magesh","critical-rce-in-serena",{"title":938,"description":939,"heroImage":940,"category":179,"date":941,"authors":942,"slug":945,"externalUrl":183},"Comment détecter et prévenir les attaques de type Contagious Interview dans les IDE","Découvrez comment nous avons développé des contrôles sur mesure pour détecter et prévenir les campagnes de logiciels malveillants comme celles utilisées lors des attaques Contagious Interview, et comment les déployer dans votre environnement.","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1774375772/kpaaaiqhokevxxeoxvu0.png","2026-06-24",[943,944],"Josh Feehs","Austin Bollinger","how-to-detect-and-prevent-contagious-interview-ide-attacks",{"title":947,"description":948,"heroImage":949,"category":179,"date":950,"authors":951,"slug":953,"externalUrl":183},"Une campagne imitant Shai-Hulud cible les développeurs Python via le typosquatting PyPI","L'équipe Vulnerability Research de GitLab a découvert une attaque de la chaîne d'approvisionnement Python sur PyPI, qui déploie le ver Shai-Hulud pour dérober des identifiants provenant des systèmes CI/CD.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1772630163/akp8ly2mrsfrhsb0liyb.png","2026-06-15",[952,7],"Dinesh Bolkensteyn","shai-hulud-copycat-campaign-targets-python-developers",{"header":955,"text":956,"button":960,"disclaimer":963},"Commencez votre essai gratuit\n\nde 30 jours\n",[957,958,959],"Accédez à GitLab Duo Agent Platform","Essayez nos fonctionnalités les plus avancées","Automatisez les tâches complexes avec l'IA",{"text":227,"config":961},{"href":962,"dataGaName":230,"dataGaLocation":466},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/blog/","Aucune carte de crédit requise.",{"header":965,"blurb":966,"button":967,"secondaryButton":971},"Commencez à développer plus rapidement dès aujourd'hui","Découvrez ce que votre équipe peut accomplir avec la plateforme d'orchestration intelligente pour le DevSecOps.\n",{"text":227,"config":968},{"href":969,"dataGaName":230,"dataGaLocation":970},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":558,"config":972},{"href":560,"dataGaName":235,"dataGaLocation":970},1791952270819]