TravisCI Security
Qu'est-ce que TravisCI
Travis CI est un service d'intégration continue hébergé ou sur site utilisé pour construire et tester des projets logiciels hébergés sur plusieurs plateformes git différentes.
Basic TravisCI InformationAttaques
Déclencheurs
Pour lancer une attaque, vous devez d'abord savoir comment déclencher une build. Par défaut, TravisCI déclenchera une build sur les pushs et les pull requests :
Tâches Cron
Si vous avez accès à l'application web, vous pouvez configurer des crons pour exécuter la build, cela pourrait être utile pour la persistance ou pour déclencher une build :
Il semble qu'il ne soit pas possible de configurer des crons dans le .travis.yml
selon ceci.
PR de Tiers
TravisCI désactive par défaut le partage des variables d'environnement avec les PRs provenant de tiers, mais quelqu'un pourrait l'activer et vous pourriez alors créer des PRs vers le dépôt et exfiltrer les secrets :
Dumping Secrets
Comme expliqué dans la page informations de base, il existe 2 types de secrets. Les secrets des variables d'environnement (qui sont listés sur la page web) et les secrets chiffrés personnalisés, qui sont stockés dans le fichier .travis.yml
sous forme de base64 (notez que les deux, une fois stockés chiffrés, finiront en tant que variables d'environnement dans les machines finales).
Pour énumérer les secrets configurés en tant que variables d'environnement, allez dans les paramètres du projet et consultez la liste. Cependant, notez que toutes les variables d'environnement du projet définies ici apparaîtront lors du déclenchement d'une build.
Pour énumérer les secrets chiffrés personnalisés, le mieux que vous puissiez faire est de vérifier le fichier
.travis.yml
.Pour énumérer les fichiers chiffrés, vous pouvez rechercher des fichiers
.enc
dans le dépôt, des lignes similaires àopenssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
dans le fichier de configuration, ou des iv et clés chiffrés dans les variables d'environnement telles que :
TODO :
Exemple de build avec reverse shell fonctionnant sur Windows/Mac/Linux
Exemple de build leakant la base64 des variables d'environnement dans les logs
TravisCI Enterprise
Si un attaquant se retrouve dans un environnement utilisant TravisCI enterprise (plus d'infos à ce sujet dans les informations de base), il pourra déclencher des builds dans le Worker. Cela signifie qu'un attaquant pourra se déplacer latéralement vers ce serveur à partir duquel il pourrait être capable de :
s'échapper vers l'hôte ?
compromettre kubernetes ?
compromettre d'autres machines fonctionnant sur le même réseau ?
compromettre de nouvelles informations d'identification cloud ?
Références
Last updated