cicd-goat:一個包含漏洞的CICD安全學習靶場環境
一顆小胡椒2022-11-24 09:33:33

關于cicd-goat
cicd-goat是一個故意包含大量漏洞的CI/CD安全學習靶場環境,廣大研究人員可以使用cicd-goat來學習關于CI/CD安全的相關內容,并通過各種挑戰并拿到Flag來更好地掌握針對CI/CD管道的安全滲透技術。
cicd-goat項目允許允許工程師和安全從業人員通過一組包含是十個項目的挑戰來學習和實踐CI/CD安全,這些挑戰是在真實、全面的CI/CD環境中實施的。這些場景具有不同的難度級別,每個場景側重于一個主要攻擊向量。這些挑戰包括10大CI/CD安全風險,包括流量控制機制不足、PPE(管道執行投毒)、依賴鏈濫用、PBAC(基于管道的訪問控制)等。
該項目的環境基于Docker容器實現,并且可以在本地運行,這些容器包括:
1、Gitea
2、Jenkins
3、Jenkins agent
4、LocalStack
5、Prod
6、CTFd
7、GitLab
8、GitLab runner
9、Docker in Docker
這些映像能夠創建功能齊全的管道,并實現互連。
工具下載&運行
Linux&macOS
curl -o cicd-goat/docker-compose.yaml --create-dirs https://raw.githubusercontent.com/cider-security-research/cicd-goat/main/docker-compose.yaml cd cicd-goat && docker-compose up -d
注意:GitLab當前不支持配備有蘋果芯片的macOS設備。
Windows(PowerShell)
mkdir cicd-goat; cd cicd-goat
curl -o docker-compose.yaml https://raw.githubusercontent.com/cider-security-research/cicd-goat/main/docker-compose.yaml
get-content docker-compose.yaml | %{$_ -replace "bridge","nat"}
docker-compose up -d
工具使用
首先,在開啟容器之后,可能需要等待五分鐘左右的時間來讓容器完成配置。
接下來,登錄http://localhost:8000來查看所有的挑戰:
用戶名:alice
密碼:alice
開始滲透
Jenkins:http://localhost:8080
用戶名:alice
密碼:alice
Gitea http://localhost:3000
用戶名:thealice
密碼:thealice
GitLab http://localhost:4000
用戶名:alice
密碼:alice1234
最后,將你拿到的Flag提交進去,查看是否成功即可。
自定義開發
首先,使用下列命令將該項目源碼克隆至本地:
git clone https://github.com/cider-security-research/cicd-goat.git
然后重命名.git文件夾:
./rename.py git
然后安裝測試需要用到的依賴組件:
pip3 install pipenv==2022.8.30 pipenv install --deploy
運行開發環境并測試新增的挑戰項目:
rm -rf tmp tmp-ctfd/ cp -R ctfd/data/ tmp-ctfd/ docker-compose -f docker-compose-dev.yaml up -d
關閉環境,將挑戰重構:
docker-compose -f docker-compose-dev.yaml down ./apply.sh # save CTFd changes docker-compose -f docker-compose-dev.yaml up -d --build
運行測試:
pytest tests/
重命名.git文件夾并允許push:
./rename.py notgit
最后,commit并push即可。
許可證協議
本項目的開發與發布遵循Apache-2.0開源許可證協議。
項目地址
cicd-goat:【GitHub傳送門】
參考資料
https://www.cidersecurity.io/?utm_source=github&utm_medium=github_page&utm_campaign=ci%2fcd%20goat%20_060422
https://www.cidersecurity.io/top-10-cicd-security-risks/?utm_source=github&utm_medium=github_page&utm_campaign=ci%2fcd%20goat_060422
一顆小胡椒
暫無描述