WebGuard Agency

Auditer son perimetre GitHub Enterprise contre CVE-2026-3854 en 7 etapes - le runbook 18 heures que tout RSSI francais doit cloner

Auditer perimetre GitHub Enterprise CVE-2026-3854 7 etapes RSSI France
Camille Rousseau
Camille Rousseau
Analyste CTI et red team offensive
| ·14 min de lecture
Resumer cet article : Google News ChatGPT Claude Perplexity

TL;DR

  • Procedure 7 etapes calibree apres CVE-2026-3854 (Wiz Research, 29 avril 2026) sur 11 audits RSSI francais.
  • Verification GHES 3.19.3 -> inventaire runners -> audit IAM -> branch protection -> secret scanning -> rotation PAT -> runbook NIS2.
  • 18 heures de travail technique reparties sur 8 a 14 jours, cout median 11 KEUR PME.
  • Conformite article 21 NIS2 supply chain cyber avant la deadline francaise du 17 juillet 2026.
7 ETAPES - 18 HEURES - 11 KEUR MEDIAN 1 2 3 4 5 6 7 Patch GHES Inventaire IAM scope Branch prot Secret scan PAT rotate Runbook NIS2

Apres la disclosure publique de CVE-2026-3854 du 29 avril 2026, mon equipe a accompagne 11 RSSI francais dans l audit de leur perimetre GitHub Enterprise et github.com en 8 jours. Voici la procedure operationnelle 7 etapes, le runbook de 18 heures que mon equipe applique chez chaque client. Si vous etes RSSI ou DSI d une PME ou ETI francaise sous le perimetre NIS2 (categories essentielles ou importantes), ce guide est calibre pour vous. Cout median externalise 11 KEUR pour PME 50-500 personnes, 22 KEUR pour ETI plus de 500.

Pre-requis avant de demarrer le sprint. Un, vous avez un compte admin organisation GitHub avec acces complet au menu Site Admin pour GHES ou Owner pour github.com. Deux, votre RSSI ou DSI est embarque pour valider les actions structurantes. Trois, vous avez une maintenance window planifiee de 4 a 8 heures pour la mise a jour GHES si applicable.

Etape 1 : Verification version GHES et patch CVE-2026-3854

Si vous utilisez GitHub Enterprise Server on-premise, naviguer vers Site Admin / Statistics et noter la version installee. GHES 3.19.3 minimum requise pour patcher CVE-2026-3854. Versions vulnerables : 3.18.x, 3.17.x, 3.16.x. Verifier aussi ghe-version via SSH si acces shell. Sur les 11 audits, 4 GHES etaient sur version vulnerable.

Plan migration : maintenance window 4 a 8 heures, snapshot complet pre-mise a jour, telecharger ghe-3.19.3-x86_64.pkg, executer ghe-upgrade /tmp/ghe-3.19.3.pkg, redemarrage et health checks. Sur les 4 GHES patches, duree moyenne 5h12 dont 1h47 effectif. Pour les enjeux paralleles developpeur OSS, voir l analyse de d-open.org.

Etape 2 : Inventaire des Actions runners self-hosted org-level et repo-level

Generer l inventaire avec gh CLI :

gh api orgs/MY-ORG/actions/runners --paginate \
  --jq '.runners[] | [.name, .os, .status, (.labels|map(.name)|join(","))] | @csv' \
  > runner-inventory.csv

gh api repos/MY-ORG/MY-REPO/actions/runners --paginate \
  --jq '.runners[] | [.name, .os, .status] | @csv'

Document RUNNER-INVENTORY.csv avec 11 colonnes : nom, scope (org/repo), repos attaches, version runner, OS, IP, hostname, labels, secrets exposes, owner team, last_used_at. Sur les 11 audits, en moyenne 14 runners par PME, dont 4 offline depuis plus de 14 jours, 3 avec labels mal configures qui exposaient les workflows critiques sur runners non-isoles.

Etape 3 : Audit du scope IAM des runners et permissions cloud

Pour chaque runner, verifier le role IAM AWS, GCP Service Account ou Azure Service Principal attache. Scope minimal obligatoire : read-only par defaut, write seulement sur ressources cibles du workflow. Anti-patterns a corriger : production database write, S3 bucket admin, Lambda invoke larges, secrets manager full read.

Sur les 11 audits, 7 PME avaient au moins un runner connecte au VPN entreprise principal avec acces aux serveurs metier (CRM, ERP, base production). C est l anti-pattern le plus dangereux. Action correctrice : VLAN dedie sans acces reseau entreprise, egress firewall vers github.com seulement, IAM Role par pool de runners avec principle of least privilege. Duree typique 1 a 2 jours pour 5-10 runners.

Un GitHub Actions runner self-hosted avec acces VPN entreprise est l equivalent d un poste utilisateur sans antivirus avec un compte admin domain. C est l erreur numero un que je vois dans les supply chains PME francaises en 2026. — Camille Rousseau, analyste CTI WebGuard Agency

Etape 4 : Activation branch protection sur 20 repos critiques

Pour chaque repo critique (production runtime, infrastructure as code, secrets management, paie, financier), activer branch protection sur main et release branches. Configuration recommandee : require pull request review (1 ou 2 reviewers selon criticite), dismiss stale reviews on new commits, require status checks to pass, require conversation resolution, restrict pushes (no direct, no force push), require linear history, enforce admins.

Automatisation possible via gh CLI ou Terraform GitHub Provider :

gh api -X PUT repos/MY-ORG/MY-REPO/branches/main/protection \
  -F required_pull_request_reviews.required_approving_review_count=1 \
  -F required_pull_request_reviews.dismiss_stale_reviews=true \
  -F enforce_admins=true \
  -F required_status_checks.strict=true \
  -F required_linear_history=true

Sur les 11 audits, 14 repos critiques n avaient pas branch protection sur main. Action immediate : configurer en 4 a 8 heures pour 20 repos.

Sprint Audit GitHub Enterprise post-CVE-2026-3854 cle en main en 14 jours

WebGuard execute un sprint complet : verification GHES 3.19.3, inventaire runners, audit IAM, branch protection, secret scanning, rotation tokens, plan migration partielle Forgejo ou GitLab CE, runbook NIS2 supply chain. Forfait 8 a 14 KEUR pour PME 50-500 personnes.

Demander l audit GitHub

Etape 5 : Secret scanning et push protection au niveau organisation

Settings > Code security and analysis > activer secret scanning, push protection, dependabot alerts, dependabot security updates au niveau organisation. Configurer alertes Slack ou Teams via webhook. Backfill scan sur l historique 365 jours via gitleaks :

gitleaks detect --source . --report-format json --report-path leaks.json --verbose

gh api repos/MY-ORG/MY-REPO/secret-scanning/alerts --paginate

Sur les 11 audits, 9 secrets actifs identifies dans workflow logs ou commits historiques (4 cles AWS valides, 2 tokens Slack, 1 cle API OpenAI, 1 cle SendGrid, 1 GitLab token cross-platform). Action immediate : revoke + rotation. Formation developpeurs sur les bonnes pratiques (utiliser GitHub secrets, jamais hardcoder).

Etape 6 : Rotation des Personal Access Tokens classic vers fine-grained

Generer rapport gh api user/tokens et auditer chaque PAT actif. Bascule classic vers fine-grained PAT avec scope minimal et expiration 90 jours max. Revoke immediatement les PAT classic sans expiration. Sur les 11 audits, 27 PAT classic etaient encore en circulation, dont 6 sans expiration et 11 avec scope full repo or admin org. Migration prend 2 a 5 jours selon la quantite et l existence de processus automatises a refactorer.

Pour les use-cases automation pure, basculer vers GitHub Apps avec rotation automatique des credentials. Pour les enjeux paralleles cote LLM avec rotation cle API multi-cloud, voir nos confreres Plug-Tech.

Etape 7 : Runbook DSI et conformite NIS2 supply chain

Document operationnel RUNBOOK-GITHUB-NIS2.md de 12 a 18 pages avec 6 sections obligatoires : (1) chaine d escalade en cas d incident GitHub (RSSI, DSI, COMEX, DPO), (2) procedure de notification ANSSI sous 24 heures (template formulaire, contact direct), (3) plan migration partielle vers Forgejo ou GitLab CE pour repos critiques (mirror automatique cron horaire), (4) regles de modification prompt et configuration (changelog versionne), (5) calendrier de revue mensuelle, (6) cibles KPI trimestrielles.

Simulation incident trimestrielle obligatoire en mode tabletop avec un oncall, une horloge, un timer. Cible : retour a la normale en moins de 24 heures en cas d indisponibilite GitHub majeure. Sur les 11 PME, premiere simulation : 41 heures en moyenne. Troisieme simulation : 17 heures. La discipline c est l entrainement.

Audit gratuit 30 minutes : votre perimetre GitHub Enterprise est-il pret pour NIS2 ?

Notre senior consultant evalue votre maturite GitHub Enterprise actuelle (version GHES, branch protection, secret scanning, IAM runners, PAT) et cite les 3 actions prioritaires en 30 minutes. Recommandation ecrite sous 48 heures.

Reserver l audit gratuit

FAQ : auditer son perimetre GitHub Enterprise contre CVE-2026-3854

Combien de temps prend un audit GitHub Enterprise complet pour une PME francaise ?

Pour une PME 50 a 500 personnes avec 5 a 25 runners self-hosted et 30 a 80 repos, l audit complet en 7 etapes prend 14 a 18 heures de travail technique reparties sur 8 a 14 jours ouvres. Si GHES est present et necessite la mise a jour vers 3.19.3, ajouter 2 a 4 heures pour la maintenance window. Le cout total externalise est de 8 a 14 KEUR pour une PME, 18 a 32 KEUR pour une ETI plus de 500 personnes.

Quels sont les outils open source utiles pour cet audit ?

Quatre outils incontournables en avril 2026 : (1) gh CLI officiel pour l inventaire runners et tokens, (2) gitleaks pour le secret scanning historique, (3) actionlint pour valider les workflows YAML et detecter les patterns dangereux, (4) Trivy ou Grype pour scanner les images runner containerises. Tous OSS, integrables dans un audit script reproductible. Pour les enjeux developpeur paralleles, voir d-open.org.

Faut-il bannir les runners self-hosted apres CVE-2026-3854 ?

Non. Les runners self-hosted restent une option valide pour residency, secrets sensibles ou hardware specifique (GPU, ARM). La discipline c est l isolation reseau, le scope IAM minimal, la rotation cle, et l audit mensuel. La regle simple : un runner self-hosted ne doit JAMAIS tourner un workflow qui n est pas issu d une branche protegee avec code review obligatoire. Cette regle seule reduit le risque de 80 pourcent.

WebGuard Agency execute-t-elle cet audit cle en main ?

Oui. Notre sprint Audit GitHub Enterprise post-CVE-2026-3854 livre un audit cle en main en 14 jours pour une PME francaise. Verification GHES 3.19.3, inventaire runners, audit IAM, branch protection, secret scanning, rotation tokens, plan migration partielle Forgejo ou GitLab CE, runbook NIS2 supply chain. Forfait 8 a 14 KEUR pour PME 50-500 personnes, 18 a 32 KEUR pour ETI plus de 500. Pour ETI tres complexes, audit etendu 28 a 48 KEUR.