Sécurité
Sécurité à runnerhut
Vous donnez à un tiers la possibilité d'exécuter du code avec accès à votre référentiel. Cette page est écrite pour la personne qui doit signer cela.
Isolement
- Un travail, une microVM, avec son propre noyau – jamais un conteneur sur un noyau partagé
- La VM est détruite à la fin du travail ; les disques sont effacés cryptographiquement et ne sont pas réutilisés
- Les objets de cache sont chiffrés et limités par référentiel
- Aucun accès au shell de l'opérateur aux machines virtuelles de tâches en cours d'exécution
Conformité
- SOC 2 Type 2, audité annuellement, rapport disponible sous NDA
- Test d'intrusion annuel par un tiers
- RGPD DPA avec sous-traitants publiés et préavis de modification de 30 jours
- Résidence des données dans l'UE et aux États-Unis pour le calcul, le cache, les journaux et les métriques
Accès et identité
- S'intègre en tant qu'application GitHub App avec des jetons d'installation limités — jamais un jeton d'accès personnel
- SAML et OIDC SSO avec provisionnement SCIM
- Journal d'audit en ajout uniquement avec exportation SIEM
- Politique de sortie de refus par défaut disponible par groupe de coureurs
Ce qu'un travail compromis pourrait et ne pourrait pas atteindre
Cela vaut la peine de le dire clairement, car c'est la question que se pose réellement un critique. Un travail s'exécute dans sa propre microVM avec son propre noyau, donc s'échapper vers l'hôte constitue une limite stricte plutôt qu'un espace de noms de conteneur. Il peut atteindre le réseau à moins qu'une politique de sortie ne le restreint, c'est pourquoi le refus de sortie par défaut est plus important que la plupart des contrôles. Il ne peut pas lire le cache d'un autre locataire, car les objets du cache sont chiffrés par référentiel. Il ne peut pas persister, car la VM et son disque sont détruits à la fin du travail.
Où se situe réellement le risque résiduel
- Votre flux de travail : GITHUB_TOKEN avec autorisation excessive, actions tierces non épinglées, pull_request_target avec extraction du responsable des relations publiques
- Vos dépendances : un script de post-installation compromis s'exécute avec n'importe quel accès réseau dont dispose l'exécuteur
- Vos secrets : tout ce qui est déchiffré dans une tâche est visible pour le code exécuté dans cette tâche, y compris le code d'une dépendance extraite
Nous pouvons limiter les deuxième et troisième avec une politique de sortie et des informations d’identification de courte durée. Le premier est le vôtre, et la liste de contrôle de sécurité GitHub Actions le couvre en cinq changements.