技术文档 | 将OpenSCA接入GitHub Action,从软件供应链入口控制风险面

简介: 通过GitHub Actions使用OpenSCA

继Jenkins和Gitlab CI之后,GitHub Action的集成也安排上啦~

若您解锁了其他OpenSCA的用法,也欢迎向项目组来稿,将经验分享给社区的小伙伴们~

参数说明

参数 是否必须 描述
token OpenSCA云漏洞库服务token,可在OpenSCA官网获得
proj 用于同步检测结果至OpenSCA SaaS指定项目
need-artifact "是否上传日志/结果文件至workflow run(默认:否)
out 指定上传的结果文件格式(文件间使用“,”分隔;仅outputs目录下的结果文件会被上传)

使用样例

workflow 示例

on:
  push:
    branches:
        - master
        - main
  pull_request:
    branches:
        - master
        - main

jobs:
  opensca-scan:
    runs-on: ubuntu-latest
    name: OpenSCA Scan
    steps:
      - name: Checkout your code
        uses: actions/checkout@v4
      - name: Run OpenSCA Scan
        uses: XmirrorSecurity/opensca-scan-action@v1
        with:
          token: ${
   
   {
   
    secrets.OPENSCA_TOKEN }}

*需要先基于OpenSCA云漏洞库服务token创建秘钥,详细信息请见https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#about-secrets

扫描结束后,可在仓库的Security/Code scanning里找到结果
sarif-result.jpg

也可直接跳转至OpenSCA SaaS查看更多详细信息;跳转链接可在Action日志中找到
action-log.jpg

更多场景

同步检测结果至OpenSCA SaaS指定项目

使用proj参数将检测任务绑定至指定项目下;ProjectID可在SaaS平台获取

- name: Run OpenSCA Scan
  uses: XmirrorSecurity/opensca-scan-action@v1
  with:
    token: ${
   
   {
   
    secrets.OPENSCA_TOKEN }}
    proj: ${
   
   {
   
    secrets.OPENSCA_PROJECT_ID }}

保留日志用于问题排查

- name: Run OpenSCA Scan
  uses: XmirrorSecurity/opensca-scan-action@v1
  with:
    token: ${
   
   {
   
    secrets.OPENSCA_TOKEN }}
    need-artifact: "true"

上传日志及检测报告至workflow run

- name: Run OpenSCA Scan
  uses: XmirrorSecurity/opensca-scan-action@v1
  with:
    token: ${
   
   {
   
    secrets.OPENSCA_TOKEN }}
    out: "outputs/result.json,outputs/result.html"
    need-artifact: "true"

*仅outputs目录下的结果文件会被上传

常见问题

Permission denied

若遇permission denied报错,可前往Settings -> Actions -> General,在Workflow permissions里选中 "Read and write permissions"并保存

找不到artifact?

在workflow summary页面底部区域,截图示意如下:
artifacts.jpg

如有其他问题或反馈,欢迎向我们提交ISSUE~

https://github.com/XmirrorSecurity/opensca-scan-action

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
分布式计算 Java 开发者
GitHub爆款!Java性能优化:轻松道破软件性能调优,不止搞定JVM
今天给大家带来的是:周明耀老师的 《大话Java性能优化:轻松道破软件性能调优方法论和具体实现路径》,全面细致,一本书搞定性能优化 周明耀是谁? 12年投资银行项目、分布式计算项目工作经验,IBM开发者论坛专家作者。一名IT技术狂热爱好者,一名顽强到底的工程师。推崇技术创新、思维创新,对于新技术非常的热爱,致力于技术研发、研究,通过发布文章、书籍、互动活动的形式积极推广软件技术。欢迎添加作者“michael_tec”,共同探讨IT技术话题。
|
存储 Shell 持续交付
最全总结,GitHub Action自动化部署
GitHub Actions使你可以直接在你的GitHub库中创建自定义的工作流,工作流指的就是自动化的流程,比如构建、测试、打包、发布、部署等等,也就是说你可以直接进行 CI(持续集成)和 CD(持续部署)。 简单地说,就是利用官方以及第三方提供的actions,组合action来实现一些你能做到的其他事情,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。
587 0
最全总结,GitHub Action自动化部署
|
4月前
|
程序员 Shell 网络安全
GitHub与Git软件使用
GitHub与Git软件使用
|
6月前
|
存储 安全 JavaScript
如何在 SAP UI5 应用里安全存储一些敏感的数据,避免被上传到 Github 去的风险试读版
如何在 SAP UI5 应用里安全存储一些敏感的数据,避免被上传到 Github 去的风险试读版
38 0
|
9月前
GitHub Action中的github/super-linter作用是什么?
github/super-linter 是一个开源工具包,其中包含多个静态分析工具,用于对代码进行静态分析以查找潜在的错误、优化代码性能和提高代码可读性等。github/super-linter@v3.17.0 是一个版本号,表示这个版本使用了哪个静态分析工具。
73 0
|
10月前
|
缓存 前端开发 持续交付
白嫖github的Action做定时任务
白嫖github的Action做定时任务
白嫖github的Action做定时任务
|
10月前
|
存储
【版本控制】GitHub图床服务Action---自动监视图床仓库的目录下的文件数
【版本控制】GitHub图床服务Action---自动监视图床仓库的目录下的文件数
83 0
|
10月前
|
开发工具 git
【经验分享】【Github】Error: Action failed with “The process ‘/usr/bin/git‘ failed with exit code 128“
【经验分享】【Github】Error: Action failed with “The process ‘/usr/bin/git‘ failed with exit code 128“
218 0
|
10月前
|
持续交付 开发工具 git
【白嫖】GitHub Action 云扫描器
GitHub Action介绍 GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动化构建、测试和部署应用程序,执行代码质量检查,创建和发布软件包,发送通知,执行持续集成和持续部署等等。 可以根据自己的需求和工作流程来定义和配置这些自动化任务 。 - 官方中文文档 (https //docs.github.com/zh/actions/quick
125 0
|
JavaScript 开发工具 git
GitHub Actions:从使用action操作到自定义action操作
GitHub Actions:从使用action操作到自定义action操作
177 0