TravisCI Security
Co to jest TravisCI
Travis CI to usługa ciągłej integracji hostowana lub lokalna, używana do budowania i testowania projektów oprogramowania hostowanych na różnych platformach git.
pageBasic TravisCI InformationAtaki
Wyzwalacze
Aby przeprowadzić atak, najpierw musisz wiedzieć, jak wywołać proces budowania. Domyślnie TravisCI będzie wywoływać proces budowania przy naciskach i żądaniach ściągnięcia (pull requests):
Zadania Cron
Jeśli masz dostęp do aplikacji internetowej, możesz ustawić zadania cron do uruchamiania procesu budowania, co może być przydatne dla trwałości lub wywołania procesu budowania:
Wygląda na to, że nie można ustawiać zadań cron wewnątrz pliku .travis.yml
zgodnie z tym.
PR od osób trzecich
TravisCI domyślnie wyłącza udostępnianie zmiennych środowiskowych z PR-ów pochodzących od osób trzecich, ale ktoś może to włączyć, a następnie można tworzyć PR-y do repozytorium i wyciekać tajemnice:
Wyciekanie Tajemnic
Jak wyjaśniono na stronie podstawowe informacje, istnieją 2 rodzaje tajemnic. Tajemnice zmiennych środowiskowych (które są wymienione na stronie internetowej) i tajemnice zaszyfrowane niestandardowe, które są przechowywane w pliku .travis.yml
jako base64 (zauważ, że oba, przechowywane zaszyfrowane, zakończą się jako zmienne środowiskowe na końcowych maszynach).
Aby wyliczyć tajemnice skonfigurowane jako Zmienne środowiskowe, przejdź do ustawień projektu i sprawdź listę. Należy jednak zauważyć, że wszystkie zmienne środowiskowe projektu ustawione tutaj pojawią się podczas wywoływania procesu budowania.
Aby wyliczyć zaszyfrowane niestandardowe tajemnice, najlepiej jest sprawdzić plik
.travis.yml
.Aby wyliczyć zaszyfrowane pliki, można sprawdzić pliki
.enc
w repozytorium, linie podobne doopenssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
w pliku konfiguracyjnym, lub zaszyfrowane iv i klucze w Zmiennych środowiskowych, takie jak:
TODO:
Przykładowy proces budowania z odwróconym powłoką uruchamianym na Windows/Mac/Linux
Przykładowy proces budowania wyciekający zaszyfrowane dane base64 w logach
TravisCI Enterprise
Jeśli atakujący znajdzie się w środowisku korzystającym z TravisCI Enterprise (więcej informacji na temat tego, czym jest to w podstawowych informacjach), będzie mógł wywoływać procesy budowania w Workerze. Oznacza to, że atakujący będzie mógł poruszać się poziomo do tego serwera, z którego mógłby:
uciec do hosta?
skompromitować kubernetes?
skompromitować inne maszyny działające w tej samej sieci?
skompromitować nowe poświadczenia chmurowe?
Odnośniki
Last updated