CodeSweep Github 操作

使用 HCL AppScan CodeSweep for GitHub 操作,您可以检查每个拉取请求的代码。此操作将在每次更新时识别已更改代码中的漏洞。但是,除了识别问题外,HCL AppScan CodeSweep for GitHub 扩展还会告诉您在将问题提交给主要分支之前需要了解哪些信息来缓解问题。

教程

注册

HCL AppScan on Cloud (ASoC) 上注册,以生成 API 密钥/密码。

安装

  1. 登录 ASoC 后,转至 API 页面以生成 API 密钥/密码对。这些必须在 asoc_keyasoc_secret 中用于操作。将这些参数作为密钥存储在存储库中。
  2. 确保将存储库的工作流程许可权设置为读写许可权。这允许 CodeSweep 扫描您的文件,并为发现的问题创建检查运行和注释。在设置 > 操作 > 常规中访问这些设置。
  3. 要在打开拉取请求时扫描代码更改,请将以下文件添加到存储库中的 .github/workflows/codesweep.yml 下,或更新现有工作流程文件:
    name: "HCL AppScan CodeSweep"
    on:
      pull_request:
        types: [opened,synchronize]
    jobs:
      scan:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout
            uses: actions/checkout@v1
          - name: Run AppScan CodeSweep
            uses: HCL-TECH-SOFTWARE/appscan-codesweep-action@v2
            with:
              asoc_key: ${{secrets.ASOC_KEY}}
              asoc_secret: ${{secrets.ASOC_SECRET}}
        env: 
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
    注: 如果使用 checkout@v2 或更高版本,则必须将 fetch-depth 设置为 0。例如:
    uses: actions/checkout@v2
    with:
      fetch-depth: 0
  4. 要在合并拉取请求时将安全性问题发布到 ASoC,请将以下文件添加到存储库中的 .github/workflows/codesweep_publish.yml 下,或更新现有工作流程文件:
    name: "HCL AppScan CodeSweep"
    on:
      pull_request:
        types: [closed]
    jobs:
      publish:
        runs-on: ubuntu-latest
        steps:
          - name: Publish issues to ASoC
            uses: HCL-TECH-SOFTWARE/appscan-codesweep-action@v2
            with:
              asoc_key: ${{secrets.ASOC_KEY}}
              asoc_secret: ${{secrets.ASOC_SECRET}}
              publish_on_merge: true
              application_id: <your ASoC application ID>
        env: 
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

用于扫描的可选参数

参数 描述 缺省值
status 发现任何安全性问题时检查的状态。
  • action_required
  • failure
  • neutral
neutral
例如:
with:
  status: failure

用于将问题发布到 AppScan on Cloud 的可选参数

参数 描述 缺省值
issue_status 发布到 ASoC 的问题的状态。
  • open
  • inprogress
  • noise
  • fixed
  • passed
open
scan_base_name ASoC 时间戳记会附加到给定的基本名称中。 GitHub_CodeSweep
personal_scan ASoC
  • true
  • false
true
with:
  publish_on_merge: true
  application_id: 6c058381-17ca-e711-8de5-002590ac753d
  issue_status: "inprogress"
  scan_base_name: "CodeSweep"
  personal_scan: true

示例

在差异视图中添加了注释,显示任何容易受到攻击的代码行,并添加了检查运行以提供其他详细信息,包括好代码和坏代码样本以及缓解信息。

支持的语言

HCL AppScan CodeSweep 操作支持扫描以下语言/方言:
语言
Android-Java Groovy NodeJS Ruby
Angular IaC(Docker、K8s、Terraform) Objective-C/Objective-C++ Scala
Apex Ionic PHP Swift
C/C++ Java PL/SQL T-SQL
Cobol JavaScript Perl TypeScript
ColdFusion JQuery Python VueJS
Dart Kotlin React .Net(C#、VB.NET、ASP.Net)
GoLang Mootools React Native Xamarin

正在故障排除

问题:安全性扫描运行,但不会为发现的安全性问题创建检查运行或注释。工作流程日志包含错误:

Error: Failed creating checkrun: HttpError: Resource not accessible by integration

解决方法:此错误表示工作流程没有对存储库的写入许可权,因此 CodeSweep 无法创建检查运行和注释。要修订此问题,请转至设置 > 操作 > 常规,并将工作流程许可权设置为读写许可权

加入社区

使用 CodeSweep 空隙时间通道报告有关 HCL AppScan CodeSweep 操作的任何反馈或提出常规问题。