此GitHub操作使您可以使用对比度安全的行业领先代码扫描仪(对比扫描)在代码中找到漏洞。该操作将PR的代码扫描分析与目标分支的最后代码扫描分析进行了比较。 GitHub是否已经引入了新漏洞,将其检查。
如果您不熟悉GitHub操作,请阅读GitHub操作文档,以了解GitHub的操作是什么以及如何设置它们。之后,完成以下步骤:
配置以下github秘密contast_api_key,contast_organization_id,contast_auth_header和contast_api_url

相比之下,CODESEC用户:使用CLI检索秘密的身份验证详细信息。
安装说明在这里:https://www.contrastsecurity.com/developer/codesec
如果您是新用户,请使用“对比验证”命令创建一个帐户
在CLI中运行“对比配置”命令以收集所需的凭据

许可的对比度安全用户:从“用户设置”菜单中获取对比Web界面中的秘密的身份验证详细信息:您将需要以下

复制下面的示例工作流程,并创建代码的分支以添加对比度安全扫描。该分支通常位于.github/workflows/build.yml
更新工作流文件以指定何时应进行操作(例如在Pull_request上,按下)
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]更新工作流文件中的filepath,以指定构建工件或文件的位置进行扫描
with :
artifact : mypath/target/myartifact.jar 基于脆弱性的严重程度失败,发现严重程度(关键/高/中或低),无法实现
severity : high
fail : true 为了使GitHub在回购的“安全性”选项卡中列出漏洞,必须伴随此GitHub操作
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif sarif_file的值必须是results.sarif 。
提交后,创建一个拉请请求(PR)将更新合并回您的主分支。创建PR触发扫描以进行运行。额外的“代码扫描”检查出现在PR中
由于当您添加对比度扫描时可能会有新的发现,因此我们不想失败并阻止添加对比度扫描的PR,迫使PR的所有者现在修复了代码库中已经存在的所有新暴露的漏洞。
在主分支上进行对比扫描后,您创建的所有新PR在对比度扫描运行失败的情况下,如果它们引入了您刚刚建立的基线之外的新漏洞,则它们是否引入了代码扫描。
所有与对比相关的帐户秘密均应配置为GitHub秘密,并将通过GitHub Runner中的环境变量传递给扫描仪。一个简单的工作流程是:
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]
name : Contrast Security Scan
jobs :
build_and_scan :
permissions :
contents : read # for actions/checkout
security-events : write # for github/codeql-action/upload-sarif
actions : read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on : ubuntu-latest
# check out project
steps :
- uses : actions/checkout@v2
# steps to build the artifact you want to scan
# -name: Build Project
# ...
# Scan Artifact
- name : Contrast Scan Action
uses : Contrast-Security-OSS/[email protected]
with :
artifact : mypath/target/myartifact.jar
apiKey : ${{ secrets.CONTRAST_API_KEY }}
orgId : ${{ secrets.CONTRAST_ORGANIZATION_ID }}
authHeader : ${{ secrets.CONTRAST_AUTH_HEADER }}
severity : high
fail : true
# To list vulnerabilities in the GitHub Security Tab of the repo include GitHub upload-sarif action
# The value of `sarif_file` must be `results.sarif`
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif 此GitHub动作和对比度Maven插件可以完成同一件事。您不能同时使用这两者。例如,如果您使用maven来构建代码并运行org.conconcurity.maven:在构建过程中扫描,请不要使用对比度扫描github操作。