poutine
由BoostSecurity.io创建,poutine
是一个安全扫描器,用于检测仓库构建管道中的错误配置和漏洞。它支持解析GitHub Actions和Gitlab CI/CD的CI工作流。当给予读取级别访问权限的令牌时,poutine
可以分析组织的所有仓库,快速了解组织软件供应链的安全状况。
查看文档了解poutine
当前支持的规则列表。
为什么叫poutine
?
在法语中,"poutine"一词除了指这道菜外,还可以用来表示"混乱"。受现代开源项目的复杂性和相互依赖性的启发,poutine
既反映了我们蒙特利尔根源的致敬,也反映了保护软件供应链的复杂本质。
支持的平台
- GitHub Actions
- Gitlab Pipelines
- Azure DevOps
- Pipelines As Code Tekton
入门
安装
要安装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 # 我们建议使用标记版本并固定它
#################################################################################################
- name: 上传poutine SARIF文件
uses: github/codeql-action/upload-sarif@4355270be187e1b672a7a1c7c7bae5afdc1ab94a # v3.24.10
with:
sarif_file: results.sarif
使用
poutine [命令] [参数] [选项]
分析本地仓库
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访问令牌(analyze_repo和analyze_org命令必需)(环境变量:GH_TOKEN)
--format 输出格式(默认:pretty, json, sarif)
--ignore-forks 忽略组织中的派生仓库(analyze_org)
--scm SCM平台(默认:github, gitlab)
--scm-base-uri 自托管SCM实例的基本URI
--threads 使用的线程数(默认:2)
--config 配置文件路径(默认:.poutine.yml)
--verbose 启用调试日志
查看.poutine.sample.yml获取配置文件示例。
从源代码构建
构建poutine
需要Go 1.22。
git clone https://github.com/boostsecurityio/poutine.git
cd poutine
make build
开发
更新构建平台CVE数据库
go test -tags build_platform_vuln_database ./...
opa fmt -w opa/rego/external/build_platform.rego
另请参阅
要查看GitHub Actions工作流中的漏洞示例,您可以探索Messy poutine GitHub组织。它展示了来自开源项目的真实漏洞,可以轻松利用这些漏洞进行教育目的。
要开始使用一些提示,请尝试使用poutine
分析messypoutine
组织:
poutine analyze_org messypoutine --token `gh auth token`
您可以在私人漏洞披露中提交您发现的标记。
许可证
本项目根据Apache许可证2.0授权 - 有关详细信息,请参阅LICENSE文件。