TravisCI Security
Що таке TravisCI
Travis CI - це хостований або локальний сервіс постійної інтеграції, який використовується для збирання та тестування програмних проектів, розміщених на кількох різних платформах git.
Basic TravisCI InformationАтаки
Тригери
Для запуску атаки спочатку потрібно знати, як тригерити збірку. За замовчуванням TravisCI буде тригерити збірку при пушах та запитах на злиття:
Cron-завдання
Якщо у вас є доступ до веб-додатка, ви можете налаштувати cron для запуску збірки, це може бути корисно для постійності або для тригеру збірки:
Здається, що неможливо налаштувати cron всередині файлу .travis.yml
згідно з цим.
PR від сторонніх осіб
За замовчуванням TravisCI вимикає обмін змінними середовища з PR, що надходять від сторонніх осіб, але хтось може це увімкнути, і тоді ви зможете створювати PR для репозиторію та витягувати секрети:
Витягування секретів
Як пояснено на сторінці основної інформації, існує 2 типи секретів. Секрети змінних середовища (які перераховані на веб-сторінці) та власні зашифровані секрети, які зберігаються всередині файлу .travis.yml
у форматі base64 (зауважте, що обидва, які зберігаються зашифрованими, в кінцевих машинах будуть відображені як змінні середовища).
Для переліку секретів, налаштованих як змінні середовища, перейдіть до налаштувань проекту та перевірте список. Однак зауважте, що всі змінні середовища проекту, встановлені тут, з'являться при тригеруванні збірки.
Для переліку власних зашифрованих секретів найкраще, що ви можете зробити, це перевірити файл
.travis.yml
.Для переліку зашифрованих файлів ви можете перевірити файли
.enc
у репозиторії, рядки, схожі наopenssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
у файлі конфігурації або зашифровані iv та ключі в змінних середовища такі як:
TODO:
Приклад збірки з оберненим шелом, який працює на Windows/Mac/Linux
Приклад витоку базового кодування env у журналах
TravisCI Enterprise
Якщо зловмисник потрапляє в середовище, яке використовує TravisCI Enterprise (докладніша інформація про це є в основній інформації), він зможе тригерити збірки на Робітнику. Це означає, що зловмисник зможе рухатися боково на цей сервер, з якого він може:
вибратися на хост?
скомпрометувати Kubernetes?
скомпрометувати інші машини, що працюють в одній мережі?
скомпрометувати нові облікові дані хмари?
Посилання
Last updated