CodeSweep GitHub アクション

HCL AppScan CodeSweep for GitHub アクションを使用すると、プル要求ごとにコードをチェックできます。このアクションは、更新ごとに変更されたコードの脆弱性を特定します。しかし、問題を特定するだけでなく、HCL AppScan CodeSweep for GitHub 拡張機能によって、問題をメイン分岐に移行する前に、問題を軽減するために知っておくべき情報が提供されます。

チュートリアル

登録

HCL AppScan on Cloud (ASoC) に登録して API 鍵/秘密を生成します。

セットアップ

  1. ASoC にログインしたら、API ページに移動して API 鍵/秘密のペアを生成します。これらは、アクションの asoc_key および asoc_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@v4
            with:
              fetch-depth: 0
          - name: Run AppScan CodeSweep
            uses: HCL-TECH-SOFTWARE/appscan-codesweep-action@v2.1
        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.1
            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
service_url AppScan 360° インスタンスの URL。AppScan 360° への接続に必要です。 インストール時に定義された AppScan 360° サービス URL。 AppScan on Cloud サービス URL (cloud.appscan.com)
acceptssl 信頼できない証明書を持つ AppScan サービスへの接続を許可します。テスト目的のみに推奨されます。
例:
with:
  status: failure

AppScan on Cloud に問題を公開するためのオプション・パラメーター

パラメーター 説明 デフォルト
service_url AppScan 360° インスタンスの URL。AppScan 360° への接続に必要です。 インストール時に定義された AppScan 360° サービス URL。 AppScan on Cloud サービス URL (cloud.appscan.com)
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 Slack チャネルを使用して、HCL AppScan CodeSweep アクションに関するフィードバックをレポートしたり、一般的な質問をしたりします。