Introduction

Astral développe des outils utilisés par des millions de développeurs dans le monde entier. La confiance de ces développeurs inclut la confiance en notre posture de sécurité : ils s'attendent raisonnablement à ce que nos outils (et les processus qui les construisent, les testent et les publient) soient sécurisés.

Contexte Technique

Nous utilisons des flux de travail CI/CD extensifs qui s'exécutent sur GitHub Actions pour maintenir notre vitesse de développement. Ces flux de travail sont également une partie critique de notre posture de sécurité, car ils nous permettent de garder les processus de développement et de publication critiques à l'écart des machines locales des développeurs et à l'intérieur d'environnements contrôlés et observables.

Malheureusement, GitHub Actions a des paramètres de sécurité défectueux, et les compromissions de sécurité comme celles d'Ultralytics, tj-actions et Nx ont commencé avec des faiblesses bien connues comme les requêtes pwn.

Analyse et Implications

Pour sécuriser nos processus CI/CD, nous interdisons de nombreux déclencheurs dangereux et non sécurisés de GitHub, tels que pull_request_target et workflow_run, dans toute notre organisation GitHub. Nous exigeons également que toutes les actions soient épinglées à des commits spécifiques (plutôt qu'à des étiquettes ou des branches, qui sont mutables).

Nous limitons également les autorisations de nos flux de travail et de nos tâches à plusieurs endroits : nous utilisons des autorisations en lecture seule par défaut au niveau de l'organisation et commençons chaque flux de travail avec des autorisations minimales, que nous élargissons uniquement au cas par cas.

Perspective

Il est essentiel de surveiller les limites et les prochaines étapes de la sécurité de nos processus CI/CD. Nous devons continuer à évaluer et à améliorer nos mesures de sécurité pour nous assurer que nos outils et nos processus restent sécurisés et fiables pour les développeurs qui les utilisent.