tgoop.com/hackproglib/4043
Last Update:
CI/CD слушается каждого коммита. Даже вредоносного. В атаке PPE этим и пользуются — внедряют нужные шаги в пайплайн. Разберёмся, как этому помешать.
PPE — это когда pipeline начинает работать не на вас, а на атакующего. Достаточно внедрить вредоносный шаг (например, через Pull Request или переменную окружения), и он выполнится с правами, о которых вы даже не догадывались. Всё, что запускает ваш CI/CD, — потенциальная точка взлома.
• Выдавайте минимально необходимые привилегии пользователям.
• Избегайте запуска pipeline от неавторизованных пользователей или форков репозиториев.
• Включите обязательный код-ревью на изменения в файлах pipeline (.gitlab-ci.yml, Jenkinsfile, .github/workflows).
• Настройте защищённые ветки и обязательное подтверждение от senior-разработчиков.
• Настройте алерты на любые изменения файлов pipeline.
• Регулярно проверяйте журнал запусков на предмет подозрительных действий.
• Запускайте pipeline в Docker-контейнерах или других изолированных окружениях.
• Ограничьте сетевые соединения и привилегии внутри контейнера.
• Включите сканеры безопасности (например, Dependency-Check) в ваш pipeline для выявления уязвимостей зависимостей.
• Ограничьте автоматическое обновление зависимостей без проверки.
• Попробуйте внести тестовые изменения в pipeline и убедитесь, что изменения требуют ревью и одобрения.
• Проверьте, что pipeline не запускается автоматически от форков внешних пользователей.
Таким образом, внедрив эти простые шаги, вы значительно повысите безопасность вашего CI/CD-процесса и защититесь от PPE-атак.
#буст