{"id":560,"date":"2026-01-21T20:00:04","date_gmt":"2026-01-21T19:00:04","guid":{"rendered":"https:\/\/secure-pipelines.com\/?p=560"},"modified":"2026-03-24T13:00:46","modified_gmt":"2026-03-24T12:00:46","slug":"securing-github-actions-runners","status":"publish","type":"post","link":"https:\/\/secure-pipelines.com\/fr\/github-actions\/securing-github-actions-runners\/","title":{"rendered":"S\u00e9curiser les runners GitHub Actions : architecture, risques et bonnes pratiques"},"content":{"rendered":"<p>GitHub Actions est devenu l&rsquo;une des plateformes CI\/CD les plus largement adopt\u00e9es. Sa flexibilit\u00e9, son int\u00e9gration \u00e9troite avec les d\u00e9p\u00f4ts GitHub et son riche \u00e9cosyst\u00e8me en font un choix attractif pour les \u00e9quipes de toutes tailles.<\/p>\n<p>Parall\u00e8lement, les runners GitHub Actions sont apparus comme une surface d&rsquo;attaque critique dans les attaques modernes contre la cha\u00eene d&rsquo;approvisionnement logicielle.<\/p>\n<p>Les runners ex\u00e9cutent du code non fiable, manipulent des secrets sensibles et op\u00e8rent souvent avec des permissions \u00e9tendues sur les d\u00e9p\u00f4ts, les registres d&rsquo;artefacts et les environnements cloud.<\/p>\n<p>Cet article explique le fonctionnement des runners GitHub Actions, pourquoi ils sont fr\u00e9quemment cibl\u00e9s par les attaquants, et comment concevoir des architectures de runners qui r\u00e9duisent significativement les risques sans perturber les workflows des d\u00e9veloppeurs.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h2 class=\"wp-block-heading\">Qu&rsquo;est-ce qu&rsquo;un runner GitHub Actions ?<\/h2>\n<p>Un runner est l&rsquo;environnement d&rsquo;ex\u00e9cution dans lequel les workflows GitHub Actions s&rsquo;ex\u00e9cutent r\u00e9ellement. Chaque job d&rsquo;un workflow est ex\u00e9cut\u00e9 sur un runner.<\/p>\n<p>Du point de vue de la s\u00e9curit\u00e9, les runners sont le composant le plus sensible de l&rsquo;architecture GitHub Actions car ils :<\/p>\n<ul class=\"wp-block-list\">\n<li>Ex\u00e9cutent du code arbitraire provenant des workflows<\/li>\n<li>Traitent le contenu des d\u00e9p\u00f4ts et les d\u00e9pendances<\/li>\n<li>Acc\u00e8dent aux secrets et aux tokens<\/li>\n<li>Produisent les artefacts de build<\/li>\n<\/ul>\n<p>Si un runner est compromis, l&rsquo;attaquant peut \u00eatre en mesure de :<\/p>\n<ul class=\"wp-block-list\">\n<li>Exfiltrer des secrets<\/li>\n<li>Modifier les r\u00e9sultats de build<\/li>\n<li>Persister entre les jobs ou les workflows<\/li>\n<li>Se d\u00e9placer lat\u00e9ralement vers d&rsquo;autres syst\u00e8mes<\/li>\n<\/ul>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h2 class=\"wp-block-heading\">Types de runners GitHub Actions<\/h2>\n<p>Comprendre la s\u00e9curit\u00e9 des runners commence par comprendre les types de runners. GitHub Actions prend en charge plusieurs mod\u00e8les de runners, chacun avec des caract\u00e9ristiques de confiance et de risque diff\u00e9rentes.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Runners h\u00e9berg\u00e9s par GitHub<\/h3>\n<p>Les runners h\u00e9berg\u00e9s par GitHub sont g\u00e9r\u00e9s par GitHub et fournis sous forme de machines virtuelles \u00e9ph\u00e9m\u00e8res. Chaque job s&rsquo;ex\u00e9cute g\u00e9n\u00e9ralement sur une VM neuve qui est d\u00e9truite apr\u00e8s l&rsquo;ex\u00e9cution.<\/p>\n<p>Caract\u00e9ristiques de s\u00e9curit\u00e9 :<\/p>\n<ul class=\"wp-block-list\">\n<li>\u00c9ph\u00e9m\u00e8res par d\u00e9faut<\/li>\n<li>Isolation forte entre les jobs<\/li>\n<li>Pas d&rsquo;\u00e9tat persistant entre les ex\u00e9cutions<\/li>\n<li>Personnalisation limit\u00e9e<\/li>\n<\/ul>\n<p>Du point de vue de la s\u00e9curit\u00e9, les runners h\u00e9berg\u00e9s par GitHub offrent une base solide pour les charges de travail non fiables telles que les pull requests.<\/p>\n<p>Cependant, ils ne sont pas sans risque. L&rsquo;exposition des secrets, l&rsquo;utilisation abusive des permissions et la logique de workflow malveillante peuvent toujours conduire \u00e0 une compromission.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Runners self-hosted<\/h3>\n<p>Les runners self-hosted s&rsquo;ex\u00e9cutent sur une infrastructure g\u00e9r\u00e9e par l&rsquo;organisation : machines virtuelles, serveurs physiques ou conteneurs.<\/p>\n<p>Ils sont souvent utilis\u00e9s pour :<\/p>\n<ul class=\"wp-block-list\">\n<li>Acc\u00e9der aux ressources internes<\/li>\n<li>Utiliser des outils ou environnements personnalis\u00e9s<\/li>\n<li>Optimiser les performances ou les co\u00fbts<\/li>\n<\/ul>\n<p>Du point de vue de la s\u00e9curit\u00e9, les runners self-hosted introduisent des risques significatifs :<\/p>\n<ul class=\"wp-block-list\">\n<li>Persistance entre les jobs<\/li>\n<li>\u00c9tat partag\u00e9 entre les workflows<\/li>\n<li>Acc\u00e8s r\u00e9seau aux syst\u00e8mes internes<\/li>\n<li>Rayon d&rsquo;impact plus \u00e9lev\u00e9 en cas de compromission<\/li>\n<\/ul>\n<p>Sans une isolation forte, un seul job compromis peut affecter les builds futurs ou d&rsquo;autres d\u00e9p\u00f4ts.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Runners self-hosted \u00e9ph\u00e9m\u00e8res<\/h3>\n<p>Les runners self-hosted \u00e9ph\u00e9m\u00e8res combinent la flexibilit\u00e9 des runners self-hosted avec les avantages s\u00e9curitaires de l&rsquo;\u00e9ph\u00e9m\u00e9rit\u00e9.<\/p>\n<p>Chaque job s&rsquo;ex\u00e9cute sur un runner fra\u00eechement provisionn\u00e9 qui est d\u00e9truit apr\u00e8s la fin de l&rsquo;ex\u00e9cution.<\/p>\n<p>Ce mod\u00e8le r\u00e9duit significativement :<\/p>\n<ul class=\"wp-block-list\">\n<li>Le risque de persistance<\/li>\n<li>La contamination inter-jobs<\/li>\n<li>La compromission de longue dur\u00e9e<\/li>\n<\/ul>\n<p>Du point de vue de la s\u00e9curit\u00e9, les runners self-hosted \u00e9ph\u00e9m\u00e8res sont fortement pr\u00e9f\u00e9r\u00e9s aux runners persistants.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h2 class=\"wp-block-heading\">Pourquoi les runners sont une cible privil\u00e9gi\u00e9e<\/h2>\n<p>Les runners se situent \u00e0 l&rsquo;intersection des entr\u00e9es non fiables et des op\u00e9rations privil\u00e9gi\u00e9es. Cela en fait des cibles attractives pour les attaquants.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Les runners ex\u00e9cutent du code non fiable<\/h3>\n<p>Les workflows peuvent ex\u00e9cuter du code provenant de :<\/p>\n<ul class=\"wp-block-list\">\n<li>Pull requests<\/li>\n<li>Branches de fonctionnalit\u00e9<\/li>\n<li>D\u00e9pendances<\/li>\n<li>Actions tierces<\/li>\n<\/ul>\n<p>N&rsquo;importe laquelle de ces sources peut \u00eatre influenc\u00e9e par un attaquant. Si du code non fiable s&rsquo;ex\u00e9cute sur un runner disposant de secrets ou de permissions \u00e9lev\u00e9es, la compromission est imm\u00e9diate.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Les runners ont souvent acc\u00e8s aux secrets<\/h3>\n<p>Les secrets sont couramment expos\u00e9s aux runners via des variables d&rsquo;environnement.<\/p>\n<p>Si les conditions du workflow sont mal configur\u00e9es, les secrets peuvent \u00eatre accessibles par :<\/p>\n<ul class=\"wp-block-list\">\n<li>Les pull requests issues de forks<\/li>\n<li>Les contributeurs non fiables<\/li>\n<li>Les actions tierces malveillantes<\/li>\n<\/ul>\n<p>Une fois qu&rsquo;un secret est expos\u00e9, il est souvent difficile de le d\u00e9tecter ou de le contenir.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Les runners peuvent influencer les artefacts et les releases<\/h3>\n<p>Les runners compilent et empaquettent les artefacts logiciels.<\/p>\n<p>Si un attaquant modifie le r\u00e9sultat du build, l&rsquo;artefact r\u00e9sultant peut \u00eatre distribu\u00e9 avec une confiance totale en aval.<\/p>\n<p>Sans v\u00e9rifications d&rsquo;int\u00e9grit\u00e9 des artefacts, il peut \u00eatre impossible de d\u00e9tecter la compromission.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h2 class=\"wp-block-heading\">Sc\u00e9narios d&rsquo;attaque courants li\u00e9s aux runners<\/h2>\n<p>La mod\u00e9lisation des menaces sur les runners r\u00e9v\u00e8le des sch\u00e9mas d&rsquo;attaque r\u00e9currents.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Sc\u00e9nario 1 : Abus de pull request<\/h3>\n<p>Un attaquant soumet une pull request qui modifie la logique du workflow ou introduit des \u00e9tapes de build malveillantes.<\/p>\n<p>Si le workflow expose des secrets ou des tokens privil\u00e9gi\u00e9s aux builds de PR, l&rsquo;attaquant peut exfiltrer les identifiants.<\/p>\n<p>Cette attaque ne n\u00e9cessite aucune vuln\u00e9rabilit\u00e9 \u2014 seulement une mauvaise configuration de la confiance.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Sc\u00e9nario 2 : Compromission d&rsquo;une action tierce<\/h3>\n<p>Les workflows utilisent fr\u00e9quemment des actions tierces.<\/p>\n<p>Si une action est compromise en amont ou r\u00e9f\u00e9renc\u00e9e sans \u00e9pinglage sur un commit sp\u00e9cifique, l&rsquo;attaquant peut injecter un comportement malveillant dans les workflows.<\/p>\n<p>Le runner ex\u00e9cute l&rsquo;action avec les m\u00eames permissions que le code de workflow interne.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Sc\u00e9nario 3 : Compromission d&rsquo;un runner self-hosted persistant<\/h3>\n<p>Sur les runners self-hosted persistants, un attaquant peut :<\/p>\n<ul class=\"wp-block-list\">\n<li>Installer des backdoors<\/li>\n<li>Modifier les outils locaux<\/li>\n<li>Empoisonner les caches<\/li>\n<li>Persister entre les jobs<\/li>\n<\/ul>\n<p>Les workflows futurs peuvent ex\u00e9cuter du code contr\u00f4l\u00e9 par l&rsquo;attaquant sans le savoir.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Sc\u00e9nario 4 : Mouvement lat\u00e9ral via l&rsquo;infrastructure des runners<\/h3>\n<p>Les runners self-hosted ont souvent un acc\u00e8s r\u00e9seau aux syst\u00e8mes internes ou aux environnements cloud.<\/p>\n<p>Un runner compromis peut \u00eatre utilis\u00e9 comme pivot pour attaquer d&rsquo;autres services internes.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h2 class=\"wp-block-heading\">Principes d&rsquo;architecture de s\u00e9curit\u00e9 des runners<\/h2>\n<p>S\u00e9curiser les runners GitHub Actions est un probl\u00e8me d&rsquo;architecture, pas un probl\u00e8me de checklist.<\/p>\n<p>Une s\u00e9curit\u00e9 efficace des runners repose sur quelques principes fondamentaux.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">1. Traiter les runners comme des environnements d&rsquo;ex\u00e9cution non fiables<\/h3>\n<p>Les runners ex\u00e9cutent des entr\u00e9es non fiables par conception.<\/p>\n<p>Ils ne devraient jamais \u00eatre implicitement consid\u00e9r\u00e9s comme fiables, m\u00eame s&rsquo;ils fonctionnent au sein d&rsquo;une infrastructure interne.<\/p>\n<p>Les secrets, l&rsquo;acc\u00e8s r\u00e9seau et les privil\u00e8ges doivent \u00eatre limit\u00e9s en cons\u00e9quence.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">2. Pr\u00e9f\u00e9rer l&rsquo;\u00e9ph\u00e9m\u00e9rit\u00e9 au nettoyage<\/h3>\n<p>Tenter de \u00ab nettoyer \u00bb un runner compromis n&rsquo;est pas fiable.<\/p>\n<p>D\u00e9truire et recr\u00e9er les runners apr\u00e8s chaque job offre une garantie de s\u00e9curit\u00e9 bien plus forte.<\/p>\n<p>Les runners \u00e9ph\u00e9m\u00e8res \u00e9liminent la persistance et r\u00e9duisent significativement le temps de s\u00e9jour de l&rsquo;attaquant.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">3. Appliquer le principe du moindre privil\u00e8ge au niveau du job<\/h3>\n<p>Chaque job ne devrait recevoir que les permissions dont il a besoin.<\/p>\n<p>Cela inclut :<\/p>\n<ul class=\"wp-block-list\">\n<li>Les permissions sur les d\u00e9p\u00f4ts<\/li>\n<li>Les scopes des tokens<\/li>\n<li>Les identit\u00e9s cloud<\/li>\n<\/ul>\n<p>\u00c9vitez d&rsquo;accorder des permissions globales ou des permissions d&rsquo;\u00e9criture par d\u00e9faut.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">4. S\u00e9parer les charges de travail fiables et non fiables<\/h3>\n<p>Les builds de pull requests, les contributions externes et le code non fiable doivent s&rsquo;ex\u00e9cuter dans des environnements s\u00e9par\u00e9s des jobs de release ou de d\u00e9ploiement fiables.<\/p>\n<p>Cette s\u00e9paration peut \u00eatre appliqu\u00e9e via :<\/p>\n<ul class=\"wp-block-list\">\n<li>Des pools de runners diff\u00e9rents<\/li>\n<li>Des workflows diff\u00e9rents<\/li>\n<li>Des ensembles de permissions diff\u00e9rents<\/li>\n<\/ul>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">5. R\u00e9duire la surface d&rsquo;attaque des runners<\/h3>\n<p>Minimisez ce qui est disponible sur les runners :<\/p>\n<ul class=\"wp-block-list\">\n<li>D\u00e9sactivez les outils inutiles<\/li>\n<li>Restreignez l&rsquo;acc\u00e8s r\u00e9seau sortant<\/li>\n<li>Limitez l&rsquo;acc\u00e8s en \u00e9criture au syst\u00e8me de fichiers<\/li>\n<li>\u00c9vitez les caches de longue dur\u00e9e<\/li>\n<\/ul>\n<p>Une surface d&rsquo;attaque r\u00e9duite limite les options de l&rsquo;attaquant.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h2 class=\"wp-block-heading\">Bonnes pratiques pour s\u00e9curiser les runners GitHub Actions<\/h2>\n<p>Les pratiques suivantes r\u00e9pondent aux risques les plus courants li\u00e9s aux runners sans modifier fondamentalement les workflows des d\u00e9veloppeurs.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Utiliser les runners h\u00e9berg\u00e9s par GitHub pour le code non fiable<\/h3>\n<p>Pour les pull requests et les contributions externes, les runners h\u00e9berg\u00e9s par GitHub offrent une isolation forte et une \u00e9ph\u00e9m\u00e9rit\u00e9 automatique.<\/p>\n<p>\u00c9vitez d&rsquo;exposer des secrets \u00e0 ces jobs sauf en cas de n\u00e9cessit\u00e9 absolue.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Adopter les runners self-hosted \u00e9ph\u00e9m\u00e8res pour les charges sensibles<\/h3>\n<p>Si des runners self-hosted sont n\u00e9cessaires, rendez-les \u00e9ph\u00e9m\u00e8res.<\/p>\n<p>Chaque job devrait :<\/p>\n<ul class=\"wp-block-list\">\n<li>Provisionner un runner neuf<\/li>\n<li>Ex\u00e9cuter un seul job<\/li>\n<li>\u00catre d\u00e9truit imm\u00e9diatement apr\u00e8s<\/li>\n<\/ul>\n<p>Ce mod\u00e8le r\u00e9duit consid\u00e9rablement le risque de persistance.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Verrouiller explicitement les permissions<\/h3>\n<p>Utilisez le mod\u00e8le de permissions granulaires de GitHub.<\/p>\n<p>D\u00e9finissez les permissions au niveau du workflow ou du job au lieu de vous appuyer sur les valeurs par d\u00e9faut.<\/p>\n<p>Examinez les modifications de permissions aussi attentivement que les modifications de code.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">\u00c9pingler et auditer les actions tierces<\/h3>\n<p>\u00c9pinglez toujours les actions sur un SHA de commit sp\u00e9cifique.<\/p>\n<p>\u00c9vitez d&rsquo;utiliser des actions qui :<\/p>\n<ul class=\"wp-block-list\">\n<li>Ne sont plus maintenues<\/li>\n<li>Manquent de transparence<\/li>\n<li>Ex\u00e9cutent une logique inattendue<\/li>\n<\/ul>\n<p>Traitez les actions comme faisant partie de votre cha\u00eene d&rsquo;approvisionnement.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Prot\u00e9ger agressivement les secrets<\/h3>\n<p>\u00c9vitez d&rsquo;exposer des secrets aux workflows d\u00e9clench\u00e9s par :<\/p>\n<ul class=\"wp-block-list\">\n<li>Des d\u00e9p\u00f4ts fork\u00e9s<\/li>\n<li>Des pull requests non fiables<\/li>\n<\/ul>\n<p>Pr\u00e9f\u00e9rez les identifiants \u00e0 dur\u00e9e de vie courte et l&rsquo;acc\u00e8s bas\u00e9 sur l&rsquo;identit\u00e9 plut\u00f4t que les secrets statiques.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h3 class=\"wp-block-heading\">Valider les r\u00e9sultats de build<\/h3>\n<p>Ne pr\u00e9sumez pas que les artefacts produits par les runners sont fiables.<\/p>\n<p>Utilisez :<\/p>\n<ul class=\"wp-block-list\">\n<li>La signature des artefacts<\/li>\n<li>Les attestations de provenance<\/li>\n<li>Des portes de v\u00e9rification avant le d\u00e9ploiement<\/li>\n<\/ul>\n<p>Cela garantit que des runners compromis ne peuvent pas empoisonner silencieusement les releases.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h2 class=\"wp-block-heading\">Place de la s\u00e9curit\u00e9 des runners dans une strat\u00e9gie CI\/CD globale<\/h2>\n<p>La s\u00e9curit\u00e9 des runners est une composante de la s\u00e9curit\u00e9 des pipelines, mais elle ne peut pas fonctionner seule.<\/p>\n<p>Elle doit \u00eatre combin\u00e9e avec :<\/p>\n<ul class=\"wp-block-list\">\n<li>La mod\u00e9lisation des menaces CI\/CD<\/li>\n<li>Les fronti\u00e8res de confiance des pipelines<\/li>\n<li>L&rsquo;application des politiques<\/li>\n<li>La v\u00e9rification de l&rsquo;int\u00e9grit\u00e9 des artefacts<\/li>\n<\/ul>\n<p>Sans ces \u00e9l\u00e9ments, m\u00eame des runners bien s\u00e9curis\u00e9s peuvent encore produire des r\u00e9sultats non fiables.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n<p>Les runners GitHub Actions sont un puissant outil d&rsquo;automatisation, mais ils repr\u00e9sentent \u00e9galement un environnement d&rsquo;ex\u00e9cution \u00e0 haut risque.<\/p>\n<p>Ils ex\u00e9cutent du code non fiable, manipulent des identifiants sensibles et produisent des artefacts auxquels les syst\u00e8mes en aval font confiance.<\/p>\n<p>S\u00e9curiser les runners n\u00e9cessite des d\u00e9cisions architecturales : \u00e9ph\u00e9m\u00e9rit\u00e9, isolation, moindre privil\u00e8ge et s\u00e9paration explicite des niveaux de confiance.<\/p>\n<p>Les organisations qui traitent les runners comme des environnements d&rsquo;ex\u00e9cution jetables et non fiables \u2014 plut\u00f4t que comme une infrastructure de confiance \u2014 sont bien mieux positionn\u00e9es pour se d\u00e9fendre contre les attaques modernes visant les pipelines CI\/CD et la cha\u00eene d&rsquo;approvisionnement.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<div class=\"secure-pipelines-author-box\" >\n        <strong>\u00c0 propos de l&rsquo;auteur<\/strong><\/p>\n<p>Cet article est r\u00e9dig\u00e9 par un architecte senior DevSecOps et s\u00e9curit\u00e9 disposant de plus de 15 ans d&rsquo;exp\u00e9rience en ing\u00e9nierie logicielle et en s\u00e9curit\u00e9 applicative. Le contenu refl\u00e8te une approche pragmatique, orient\u00e9e ing\u00e9nierie et ancr\u00e9e dans les contraintes du monde r\u00e9el.<\/p>\n<\/p><\/div>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Qu'est-ce qu'un runner GitHub Actions ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Un runner GitHub Actions est l'environnement d'ex\u00e9cution dans lequel les jobs de workflow s'ex\u00e9cutent. Les runners ex\u00e9cutent du code, manipulent des secrets et produisent des artefacts de build, ce qui en fait un composant de s\u00e9curit\u00e9 critique.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Pourquoi les runners GitHub Actions repr\u00e9sentent-ils un risque de s\u00e9curit\u00e9 ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Les runners ex\u00e9cutent du code non fiable et ont souvent acc\u00e8s \u00e0 des secrets et des tokens privil\u00e9gi\u00e9s. S'ils sont compromis, ils peuvent \u00eatre utilis\u00e9s pour exfiltrer des identifiants ou empoisonner les artefacts de build.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Les runners GitHub Actions self-hosted sont-ils s\u00fbrs ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Les runners self-hosted peuvent \u00eatre s\u00fbrs s'ils sont \u00e9ph\u00e9m\u00e8res, isol\u00e9s et fonctionnent avec le moindre privil\u00e8ge. Les runners self-hosted persistants augmentent significativement la surface d'attaque.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Quelles sont les bonnes pratiques pour s\u00e9curiser les runners GitHub Actions ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Les bonnes pratiques incluent l'utilisation de runners \u00e9ph\u00e9m\u00e8res, l'application du moindre privil\u00e8ge, l'isolation des charges de travail non fiables, l'\u00e9pinglage des actions tierces et la protection des secrets contre l'exposition.\"\n      }\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>GitHub Actions est devenu l&rsquo;une des plateformes CI\/CD les plus largement adopt\u00e9es. Sa flexibilit\u00e9, son int\u00e9gration \u00e9troite avec les d\u00e9p\u00f4ts GitHub et son riche \u00e9cosyst\u00e8me en font un choix attractif pour les \u00e9quipes de toutes tailles. Parall\u00e8lement, les runners GitHub Actions sont apparus comme une surface d&rsquo;attaque critique dans les attaques modernes contre la cha\u00eene &#8230; <a title=\"S\u00e9curiser les runners GitHub Actions : architecture, risques et bonnes pratiques\" class=\"read-more\" href=\"https:\/\/secure-pipelines.com\/fr\/github-actions\/securing-github-actions-runners\/\" aria-label=\"En savoir plus sur S\u00e9curiser les runners GitHub Actions : architecture, risques et bonnes pratiques\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[52,49],"tags":[],"post_folder":[],"class_list":["post-560","post","type-post","status-publish","format-standard","hentry","category-github-actions","category-ci-cd-security"],"_links":{"self":[{"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/posts\/560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/comments?post=560"}],"version-history":[{"count":1,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/posts\/560\/revisions"}],"predecessor-version":[{"id":563,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/posts\/560\/revisions\/563"}],"wp:attachment":[{"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/media?parent=560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/categories?post=560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/tags?post=560"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/post_folder?post=560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}