如何使用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传送门】

参考资料

https://boostsecurity.io/

https://en.wikipedia.org/wiki/Poutine

https://github.com/messypoutine

相关推荐
中二骚年26 分钟前
Windows 安全中心 / 防火墙故障,calc和Microsoft Store,终端(管理员)无法正常打开。 原因 + 修复方案
windows·安全·microsoft
QXWZ_IA35 分钟前
无人机自主巡检从半自动到全闭环的阶段划分与定位要求
人工智能·安全·无人机
QXWZ_IA1 小时前
低空经济下电力无人机巡检定位的能力演进与应用趋势
人工智能·安全
亚远景aspice3 小时前
亚远景 - 无方向盘 L4 车辆批量认证,ASPICE 过程证据成制造商安全举证底座
安全·自动驾驶·aspice·研发管理·亚远景科技·过程能力评估·aspice评估
可涵不会debug3 小时前
PHP2Shell 爆发一周后:CVE-2026-109618/109619 自查、修复与防护实录
安全·php·云安全·waf·phpshell
福大大架构师每日一题4 小时前
excelize v2.11.1发布:Go 1.26.0起步,16项安全修复与嵌入对象能力全面升级
开发语言·安全·golang
yunlaodacom4 小时前
做异地灾备,华为云国际站 OBS 跨地域复制该怎么配置?
安全·华为云·云计算
江湖中的阿龙4 小时前
Oracle 紧急安全警报:Java 9.1 分漏洞 CVE-2026-91403,撤销对 eMudhra 风险证书的信任
java·安全·oracle
是真的小外套5 小时前
网络安全实战第21期:一次完整的注入风险验证与记录
安全·web安全
山东科恩光电6 小时前
安全地毯压敏传感防护在工业机器人与流水线区域的耐腐蚀材质及快速停机应用
安全