如何使用poutine检测代码库构建管道中的安全缺陷

news2024/11/14 16:33:35

关于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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2081971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL:简述事务的SQL操作

1、查询数据库的隔离级别 选择数据库,查看当前事务隔离界别。 (1)读未提交:READ-UNCOMMITTED (2)读已提交:READ-COMMITTED (3)可重复读:REPEATABLE-READ (4&…

qt报错 error: undefined reference to `vtable for RelayDevice 解决方法

在 Qt 编程中,当出现错误 undefined reference to ‘vtable for RelayDevice’ 时,通常是因为类的虚函数没有实现,或者未正确实现虚析构函数。以下是一些可能的解决方法: 确保实现所有虚函数: 检查 RelayDevice 类中声…

大白话-【2.1】WindowsServer2016配置DHCP

1.DHCP服务功能介绍 2.DHCP服务安装 3.DHCP服务配置 3.VMWare实操 3.1VMWare用的是vmnet8网段DHCP服务 3.2关闭VMWare提供的DHCP服务 扩展:清除DNS缓存命令 ipconfig/flushdns END 提升 给客户机固定IP 1.查询网卡MAC

漏洞披露-金慧-综合管理信息系统-SQL

本文来自无问社区,更多漏洞信息可前往查看http://wwlib.cn/index.php/artread/artid/6607.html 本文仅用于技术研究学习,请遵守相关法律,禁止使用本文所提及的相关技术开展非法攻击行为,由于传播、利用本文所提供的信息而造成任何…

10天速通Tkinter库——Day8:《植物杂交实验室》杂交实验及历史记录界面

本篇博客我将介绍Tkinter实践项目《植物杂交实验室》中的杂交实验、实验结果和历史记录两个页面的制作。 它们作为主窗口的子页面实例,除了继承主窗口的基础设置(如图标、标题、尺寸等等)、还可以使用主窗口的属性和方法(如数据变…

IoTDB 如何有效实现磁盘 I/O 监控和优化?

IoTDB 监控工具:有效保障读写数据量与系统效率! 磁盘 I/O 负载过高的原因是什么?如何排查? 如何判断磁盘 I/O 是否成为系统瓶颈? 如何优化磁盘 I/O 读写性能? 在现代计算机系统和应用程序中,磁盘…

[000-002-01].第26节:MySQL对隔离级别的实现

1.MySQL支持的四种隔离级别: 2.如何设置事务的隔离级别 3.不同隔离级别举例 3.1.演示1. 读未提交之脏读 3.2.演示2:读已提交 3.3.演示3:设置隔离级别为可重复读,事务的执行流程如下: 3.4.演示4:幻读:

3 Python开发工具:VSCode+插件

本文是 Python 系列教程第 3 篇,完整系列请查看 Python 专栏。 Visual Studio Code的安装非常简单,就不放这里增加文章篇幅了。 相比PyCharm,VSCode更加轻量,启动速度快。并且搭配Python插件就能实现和Pycharm一样的代码提示、高…

在手机在线预览3D模型,是如何实现的?

在手机在线预览3D模型,主要依赖于几个关键技术和步骤来实现。以下是一个概括性的流程: 一、模型上传 选择平台:首先,用户需要选择一个支持3D模型在线预览的平台,如51建模网、Sketchfab等。这些平台通常提供用户友好的…

iPhone不停重启怎么办?全面解析与解决方案

iPhone作为当今最受欢迎的智能手机之一,其稳定性和流畅性一直备受用户赞誉。然而,有时我们可能会遇到iPhone不停重启的问题,这不仅影响了正常使用,还可能让我们感到焦虑和困扰。本文将为大家详细解析iPhone不停重启的原因&#xf…

常用的编写VBA的软件 (L*00K)

一、Microsoft Office套件 Microsoft Excel: Excel是VBA编程最为广泛使用的环境之一。用户可以通过编写宏来自动化重复性的任务,如数据整理、自动填充、复杂的计算等。Excel中的VBA功能让用户能够创建复杂的函数、表单以及完整的应用程序,以…

html+css网页设计 个人网站模版 我的书屋5个页面

htmlcss网页设计 个人网站模版 我的书屋5个页面 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 …

华为大动作:三折折叠屏手机9月亮相,价格破万引猜疑

在科技迅猛发展的今天,智能手机的形态和功能不断突破传统边界,为用户带来前所未有的体验。华为,作为全球通信领域的领军企业,一直在折叠屏技术上推陈出新。 近日,华为即将发布的首款三折折叠屏手机成为了市场的焦点&a…

ICD-Face:用于人脸识别的类内紧致蒸馏算法

ICD-Face: Intra-class Compactness Distillation for Face Recognition 摘要 在ICD-Face中,首先提出计算教师和学生模型的相似度分布,然后引入特征库来构造足够多的高质量的正对。然后,估计教师和学生模型的概率分布,并引入相似…

全钢无边防静电地板结构特点你了解多少

机房装修常常会用到防静电地板,全钢无边防静电地板作为其中一种,常用于对地板外观要求较高,且不需要频繁更换设备的场所,那么全钢无边防静电地板有哪些特点呢? 先来说一下全钢无边防静电地板的结构:全钢无…

大模型的那些道道

1 AI大模型介绍 chat-gpt、sora、sd、文心一言(GAI,生成式AI)等等,这些是大模型嘛,准确来说这些只是大模型落地的产品;“大模型”通常指的是拥有大量参数的深度学习模型;因此对计算资源要求很高…

可编程逻辑控制器故障排除

通常,逻辑控制器中大多数问题的根源可以缩小到以下区域之一的故障: 1. 处理器模块 2. 输入 3. 输出 4. 梯形图逻辑程序 除了使用万用表检查电源电压(假设您知道所需的 IO)之外,您还必须检查每个区域是否存在特定故…

Qt_qrc文件管理资源

qrc使用方式 1.在项目中创建一个qrc文件 文件名不要带中文和特殊符号 2.把图片导入到qrc文件中 所谓"前缀"可以理解成虚拟的目录,这个目录没有在你的电脑真实存在,是Qt自己抽象出来的,qrc机制本质上就是把图片的二进制数据,转成C代…

SeaweedFS 分布式存储

一、简介 SeaweedFS 是一种多功能且高效的存储系统,旨在满足现代系统管理员管理 blob、对象、文件和数据仓库存储需求的需求。无论数据集的大小如何,其架构都能保证快速访问时间,磁盘寻道时间为常数时间 (O(1))。这使其成为速度和效率至关重…

实验设计不好搞?ChatGPT少不了!【附示例】

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 实验设计是确保研究科学性和可靠性的关键环节。然而,许多同学在进行毕业论文实验设计时,常常面临选题、变量确定、实验流程规划等诸多挑战。ChatGPT能够提供全方…