Spécial - Si demain, tout tombait
15 septembre 2025
Parce que... c'est l'épisode 0x658!
Teknik - La guerre Red Team vs EDR - l’aspect business et non technique du problème
29 octobre 2025
Parce que... c'est l'épisode 0x657!
Teknik - Double-Tap Campaign - Russia-nexus APT possibly related to APT28 conducts cyber espionage on Central Asia and Kazakhstan diplomatic relations
13 octobre 2025
Parce que... c'est l'épisode 0x656!
Actu - 2 novembre 2025
02 novembre 2025
Parce que... c'est l'épisode 0x655!
Teknik - Dans le feu des tranchés, opérer le SOC au Hackfest
23 octobre 2025
Parce que... c'est l'épisode 0x654!
PME - NotPetya, l'histoire des dommages collatéraux
17 septembre 2025
Parce que... c'est l'épisode 0x653!
Le monde selon Cyber Citoyen et Polysécure collab no9
22 octobre 2025
Parce que... c'est l'épisode 0x652!
Actu - 26 octobre 2025
26 octobre 2025
Parce que... c'est l'épisode 0x651!
Teknik - The Overlooked Playground - An Attacker’s Journey Through GCP
13 septembre 2025
Parce que... c'est l'épisode 0x650!
PME - Balayage de vulnérabilités vs test d'intrusion avec des ninjas
17 septembre 2025
Parce que... c'est l'épisode 0x649!
Spécial - Entretiens avec Miguel De Bruycker du Centre pour la Cybersécurité Belgique
14 octobre 2025
Parce que... c'est l'épisode 0x648!
Actu - 19 ocotbre 2025
19 octobre 2025
Parce que... c'est l'épisode 0x647!
Spécial - Structurer l'expatriation
07 juillet 2025
Parce que... c'est l'épisode 0x646!
Teknik - Browser Detection and Response
10 juillet 2025
Parce que... c'est l'épisode 0x645!
PME - Les certifications
17 septembre 2025
Parce que... c'est l'épisode 0x644!
Actu - 12 octobre 2025
12 ocotbre 2025
Parce que... c'est l'épisode 0x643!
Teknik - Tendance pour terminer 2025
01 octobre 2025
Parce que... c'est l'épisode 0x642!
PME - La sécurité, trop cher?
17 septembre 2025
Parce que... c'est l'épisode 0x641!
Teknik - BloodHound et OpenGraph
13 septmbre 2025
Parce que... c'est l'épisode 0x640!
Actu - 5 octobre 2025
05 octobre 2025
Parce que... c'est l'épisode 0x639!
Spécial - Responsabilité IA
22 mai 2025
Parce que... c'est l'épisode 0x638!
PME - Petit quiz PME ou que ce que vous avez toujours voulu savoir
26 juillet 2025
Parce que... c'est l'épisode 0x637!
Le monde selon Cyber Citoyen et Polysécure édition GoSec (collab no8)
11 septembre 2025
Parce que... c'est l'épisode 0x636!
Actu - 28 septembre 2025
28 septembre 2025
Parce que... c'est l'épisode 0x635!
Spécial - Reconversion en cybersécurité
22 juillet 2025
Parce que... c'est l'épisode 0x634!
PME - Protection des renseignements personelles
26 juillet 2025
Parce que... c'est l'épisode 0x633!
Actu - 21 septembre 2025
21 septembre 2025
Parce que... c'est l'épisode 0x632!
Spécial - Les boeufs sont lents mais la terre est patiente (Panel au BSides Montréal 2025)
13 septembre 2025
Parce que... c'est l'épisode 0x631!
Spécial - Hommage à Michel Cusin
13 septembre 2025
Parce que... c'est l'épisode 0x630!
Actu - 14 septembre 2025
14 septembre 2025
Parce que... c'est l'épisode 0x629!
PME - Questions sur l'IA
26 juillet 2025
Parce que... c'est l'épisode 0x628!
Teknik - Sécurité physique
18 juin 2025
Parce que... c'est l'épisode 0x627!
Actu - 7 septembre
07 septembre 2025
Parce que... c'est l'épisode 0x626!
PME - Programme FORCE (cybersécurité) de l'UQTR destiné aux PME
03 septembre 2025
Parce que... c'est l'épisode 0x625!
Teknik - Résilience OT
12 juin 2025
Parce que... c'est l'épisode 0x624!
Actu - 1er septembre 2025
01 septembre 2025
Parce que... c'est l'épisode 0x623!
Teknik - CTI
12 juin 2025
Parce que... c'est l'épisode 0x622!
Spécial - Être freelance à l'international
26 mai 2025
Parce que... c'est l'épisode 0x621!
Spécial - L'enflure des titres sur LinkedIn
02 mai 2025
Parce que... c'est l'épisode 0x620!
Conspiration Cyber Citoyen au 13 août 2025
13 août 2025
Parce que... c'est l'épisode 0x619!
Spécial - NIS2
18 juin 2025
Parce que... c'est l'épisode 0x618!
Spécial - Nice to meet you! That will be 20 million please
16 mai 2025
Parce que... c'est l'épisode 0x617!
Spécial - Gérer le bruit dans la détection d'événements de cybersécurité à la grandeur du Canada
16 mai 2025
Parce que... c'est l'épisode 0x616!
Spécial - Red teaming et évolution de la cybersécurité
16 mai 2025
Parce que... c'est l'épisode 0x615!
Spécial - IA, GenAI et la confusion généralisée
04 juillet 2025
Parce que... c'est l'épisode 0x614!
Spécial - RETEX sur une première expérience en pentest physique
11 mai 2025
Parce que... c'est l'épisode 0x613!
Juridik - Effet sur la protection des renseignements personnels de C-2 et C-8
14 juillet 2025
Parce que... c'est l'épisode 0x612!
Actualités Cyber Citoyen au 17 juillet 2025
17 juillet 2025
Parce que... c'est l'épisode 0x611!
Teknik - Signaux (xDR) dans l'univers des OT
10 avril 2025
Parce que... c'est l'épisode 0x610!
Spécial - L’internet mondial est-il en train de mourir ?
21 avril 2025
Parce que... c'est l'épisode 0x609!
Spécial - L'outillage dans le cadre d'analyse de risque
18 avril 2025
Parce que... c'est l'épisode 0x608!
Spécial - leHACK 2025
28 juin 2025
Parce que... c'est l'épisode 0x607!
Spécial - Un brin de nostalgie durant le Northsec
15 mai 2025
Parce que... c'est l'épisode 0x606!
Spécial - Outrunning the Red Queen - Analysis of Ransomware Scripts
09 avril 2025
Parce que... c'est l'épisode 0x605!
Teknik - Al Trust - Apprentissage automatique - Détection des modèles empoisonnés après entrainement
09 avril 2025
Parce que... c'est l'épisode 0x604!
Actualités Cyber Citoyen au 17 juin 2025
17 juin 2025
Parce que... c'est l'épisode 0x603!
Teknik - Living Off the Pipeline - From Supply Chain 0-Days to Predicting the next XZ-like attacks
15 mai 2025
Parce que... c'est l'épisode 0x602!
Parce que… c’est l’épisode 0x602!
Shameless plug
- 27 et 29 juin 2025 - LeHACK
- 12 au 17 octobre 2025 - Objective by the sea v8
- 10 au 12 novembre 2025 - IAQ - Le Rendez-vous IA Québec
- 17 au 20 novembre 2025 - European Cyber Week
- 25 et 26 février 2026 - SéQCure 2026
Description
Introduction et contexte
François Proulx fait son retour pour présenter l’évolution de ses recherches sur la sécurité des chaînes d’approvisionnement (supply chain) depuis sa présentation de l’année précédente. Ses travaux portent sur la détection de vulnérabilités dans les pipelines de construction (build pipelines) des projets open source, un sujet qui avait suscité beaucoup d’intérêt suite à l’incident XZ Utils.
Évolution de la méthodologie de recherche
Depuis l’année dernière, l’équipe de François a considérablement amélioré ses outils et sa stratégie de détection. Plutôt que de scanner massivement tous les dépôts disponibles, ils ont adopté une approche plus ciblée en se concentrant sur des entités majeures comme Google, Red Hat, Nvidia et Microsoft. Ces organisations sont des contributeurs importants de projets open source critiques et bien maintenus.
Cette nouvelle approche leur permet de découvrir des centaines d’organisations GitHub par entité, chacune contenant parfois des milliers de dépôts. L’objectif reste le même : détecter des vulnérabilités zero-day dans les build pipelines qui permettent de compiler, tester et distribuer les projets open source, notamment via GitHub Actions.
La problématique fondamentale des CI/CD
François présente une analogie frappante pour expliquer la dangerosité des systèmes d’intégration continue : “un CI/CD, c’est juste du RCE as a service” (Remote Code Execution as a Service). Ces systèmes sont des applications web qui attendent de recevoir des déclencheurs sur une interface publique accessible via Internet. Dans le cas de GitHub Actions, il suffit d’ouvrir une pull request pour déclencher automatiquement l’exécution de tests.
Cette situation rappelle les vulnérabilités des années 1990-2000 avec les débordements de pointeurs. François utilise une formule percutante : “les build pipelines ressemblent à une application PHP moyenne de 2005 en termes de codage sécurisé”. Cette comparaison souligne que malgré les décennies d’évolution en sécurité informatique, les mêmes erreurs fondamentales se répètent dans de nouveaux contextes.
Les mécanismes d’exploitation
Les vulnérabilités exploitent principalement les entrées non fiables (untrusted input) provenant des pull requests. Même les brouillons de contributions peuvent déclencher automatiquement l’exécution de tests avant qu’un mainteneur soit notifié. Le problème s’aggrave quand les pipelines nécessitent des secrets pour communiquer avec des systèmes externes (notifications Slack, télémétrie, etc.).
Par défaut, GitHub Actions hérite parfois d’anciennes permissions en lecture-écriture, ce qui permet aux tests d’avoir accès à un token avec des droits d’écriture sur le dépôt. Cette configuration peut permettre à un attaquant d’écrire dans le dépôt de manière non visible.
Résultats impressionnants des analyses
L’équipe a considérablement affiné ses outils de détection. À partir de 200 000 résultats initiaux, ils appliquent des règles plus précises pour identifier environ 10 000 cas intéressants. Ces règles valident non seulement la présence de vulnérabilités, mais aussi les critères d’exploitation et la présence de secrets exploitables.
Après validation manuelle, environ 25% de ces 10 000 cas s’avèrent facilement exploitables. Ces chiffres démontrent l’ampleur du problème dans l’écosystème open source, même en reconnaissant l’existence probable de nombreux faux négatifs.
Cas concrets : Google et les régressions
François rapporte avoir découvert des vulnérabilités dans 22 dépôts appartenant à Google, notamment dans un projet lié à Google Cloud (probablement Data Flow). Après avoir signalé et reçu une récompense pour la correction, une régression est survenue une semaine plus tard dans le même workflow, leur valant une seconde récompense.
Cette situation illustre un problème récurrent : même les grandes organisations comme Google peuvent reproduire les mêmes erreurs après correction, souvent par méconnaissance des mécanismes sous-jacents de ces nouvelles techniques d’exploitation.
L’affaire Ultralytics : un cas d’école
L’incident le plus marquant concerne la bibliothèque Python Ultralytics, très populaire pour la détection d’images par apprentissage automatique. En août, l’équipe avait détecté une vulnérabilité dans ce projet mais s’était concentrée sur les découvertes chez Google, négligeant de signaler cette faille.
En décembre, Ultralytics a été compromis par l’injection d’un crypto-mineur, exploitant précisément la vulnérabilité identifiée quatre mois plus tôt. Cette attaque était particulièrement ingénieuse car elle ciblait des environnements avec des GPU puissants (utilisés pour le machine learning), parfaits pour le minage de cryptomonnaies, tout en restant discrète dans un contexte où une forte consommation GPU est normale.
Pivot vers la détection proactive
Cet incident a motivé un changement stratégique majeur : passer de la simple détection de vulnérabilités à la détection proactive d’exploitations en cours. L’équipe ingère désormais le “firehose” des événements publics GitHub, soit environ 5,5 millions d’événements quotidiens.
Après filtrage sur les projets critiques avec des build pipelines, ils analysent environ 500 000 événements intéressants par jour. En appliquant leurs analyses sophistiquées et en croisant avec leurs connaissances des vulnérabilités, ils obtiennent environ 45 événements suspects à investiguer quotidiennement.
Validation forensique avec Kong
Cette nouvelle approche s’est rapidement avérée efficace. Pendant les vacances de Noël, leur système a continué d’ingérer les données automatiquement. Au retour, l’incident Kong (un contrôleur Ingress pour Kubernetes) leur a permis de créer une timeline forensique détaillée grâce aux données accumulées pendant leur absence.
Découverte sur les forums cybercriminels
La collaboration avec Flare, spécialisée dans l’analyse du dark web, a révélé des informations troublantes. En recherchant “Ultralytics” sur Breach Forum avec un filtrage temporel précis, François a découvert qu’un utilisateur avait créé un compte 24 heures avant l’attaque, publié exactement la vulnérabilité du pipeline Ultralytics en mentionnant l’utilisation de “Poutine” (leur outil), puis confirmé 24 heures après l’exploitation avoir gagné des Monero grâce à cette attaque.
Cette découverte confirme que les cybercriminels utilisent activement les outils de recherche en sécurité pour identifier et exploiter des vulnérabilités, transformant ces outils défensifs en armes offensives.
Implications et recommandations
Cette situation soulève des questions importantes sur la responsabilité des chercheurs en sécurité. François insiste sur le fait que Poutine, leur outil de détection, devrait devenir le minimum absolu pour tout projet open source. Il compare cette nécessité à l’interdiction d’avoir des dépôts Git pour ceux qui n’implementent pas ces vérifications de base.
L’analogie avec PHP 2005 reste pertinente : il a fallu des années pour que la communauté PHP matûrisse ses pratiques de sécurité. Les build pipelines traversent actuellement la même phase d’évolution, avec des erreurs fondamentales répétées massivement dans l’écosystème.
Défis techniques et limites
François reconnaît honnêtement les limitations de leur approche. Leur système ne détecte que les attaques les moins sophistiquées - des “low hanging fruits”. Des attaques complexes comme celle de XZ Utils ne seraient probablement pas détectées par leurs outils actuels, car elles sont trop bien camouflées.
Le défi principal reste de filtrer efficacement le bruit dans les millions d’événements quotidiens pour obtenir un nombre d’alertes gérable par une petite équipe d’analystes. Ils reconnaissent que la majorité des incidents leur échappe probablement encore.
Perspective d’avenir
François exprime l’espoir que la maturation de l’écosystème des build pipelines sera plus rapide que les 20 ans qu’il a fallu pour sécuriser PHP. Leur travail de pionnier contribue à cette évolution en sensibilisant la communauté et en fournissant des outils concrets.
L’angle d’analyse des build pipelines est particulièrement pertinent car il se situe à la croisée des chemins entre le code source et sa distribution, avec des possibilités d’exécution de code qui en font un point critique de la chaîne d’approvisionnement logicielle.
Cette présentation illustre parfaitement l’évolution rapide des menaces dans l’écosystème open source moderne et la nécessité d’une vigilance constante pour sécuriser les infrastructures critiques dont dépend l’ensemble de l’industrie logicielle.
Notes
Collaborateurs
Crédits
- Montage par Intrasecure inc
- Locaux réels par Northsec
Tags: cd, ci, northsec, nsec, pipeline
Tweet












