如何使用poutine检测代码库构建管道中的安全缺陷
Alpha_h4ck
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
如何使用poutine检测代码库构建管道中的安全缺陷
关于poutine
poutine是一款功能强大的缺陷检测工具,该工具基于Go语言开发,可以帮助广大研究人员快速扫描和检测代码存储库构建管道中的错误配置和安全漏洞。
该工具支持解析来自 GitHub Actions 和 Gitlab CI/CD 的 CI 工作流。当获得具有读取级别访问权限的访问令牌时,poutine可以分析组织的所有存储库,以快速了解组织软件供应链的安全状况。
支持的平台
GitHub Actions
GitHub管道
Azure DevOps
Pipelines As Code Tekton
工具安装
源码构建
由于该工具基于Go语言开发,因此我们首先需要在本地设备上安装并配置好最新版本的Go运行环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/boostsecurityio/poutine.git
然后切换到项目目录中,使用make命令构建项目代码即可:
cd poutine make build
发布版本
广大研究人员可以直接访问该项目【Releases页面】下载poutine的最新预编译版本,并将二进制文件添加到您的 $PATH。
Homebrew
brew install poutine
Docker
docker run -e GH_TOKEN ghcr.io/boostsecurityio/poutine:latest
GitHub Actions
... jobs: poutine: runs-on: ubuntu-latest permissions: security-events: write contents: read steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 ################################################################################################# - name: poutine - GitHub Actions SAST uses: boostsecurityio/poutine-action@main # We recommend to use a tagged version and pin it ################################################################################################# - name: Upload poutine SARIF file uses: github/codeql-action/upload-sarif@4355270be187e1b672a7a1c7c7bae5afdc1ab94a # v3.24.10 with: sarif_file: results.sarif
工具使用
poutine [command] [arguments] [options]
分析一个本地库:
poutine analyze_local .
分析一个远程GitHub库:
poutine analyze_repo org/repo --token "$GH_TOKEN"
分析GitHub中一个组织的所有库:
poutine analyze_org org --token "$GH_TOKEN"
分析一个自托管Gitlab实例中的所有项目:
poutine analyze_org my-org/project --token "$GL_TOKEN" --scm gitlab --scm-base-uri https://gitlab.example.com
配置参数选项
--token SCM访问令牌 --format 输出格式(默认:pretty、json、sarif) --ignore-forks 忽略组织中的fork存储库(analyze_org) --scm SCM平台(默认:github、gitlab) --scm-base-uri 自托管SCM实例的URI基地址 --threads 要使用的线程数(默认:2) --config 配置文件的路径(默认:.poultine.yml) --verbose 启用调试日志记录
更新构建平台CVE数据库
go test -tags build_platform_vuln_database ./... opa fmt -w opa/rego/external/build_platform.rego
工具运行演示
许可证协议
本项目的开发与发布遵循Apache-2.0开源许可协议。
项目地址
poutine:【GitHub传送门】
参考资料
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录