CodeSweep GitHub アクション
HCL AppScan CodeSweep for GitHub アクションを使用すると、プル要求ごとにコードをチェックできます。このアクションは、更新ごとに変更されたコードの脆弱性を特定します。しかし、問題を特定するだけでなく、HCL AppScan CodeSweep for GitHub 拡張機能によって、問題をメイン分岐に移行する前に、問題を軽減するために知っておくべき情報が提供されます。
チュートリアル
登録
HCL AppScan on Cloud (ASoC) に登録して API 鍵/秘密を生成します。
セットアップ
- ASoC にログインしたら、API ページに移動して API 鍵/秘密のペアを生成します。これらは、アクションの
asoc_key
およびasoc_secret
パラメーターで使用する必要があります。これらのパラメーターを秘密としてリポジトリーに保存します - リポジトリーの「ワークフロー許可」が「読み取りおよび書き込み許可」に設定されていることを確認します。これにより、CodeSweep はファイルをスキャンし、検出された問題のチェックランとアノテーションを作成できます。これらの設定には、 からアクセスします。
- プル要求を開いたときにコードの変更をスキャンするには、次のファイルを
.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
- プル要求をマージするときにセキュリティーの問題を 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}}
スキャンのオプション・パラメーター
パラメーター | 説明 | 値 | Default (デフォルト) |
---|---|---|---|
status |
セキュリティーの問題が検出されたかどうかの確認の状況。 |
|
neutral |
with:
status: failure
AppScan on Cloud に問題を公開するためのオプション・パラメーター
パラメーター | 説明 | 値 | Default (デフォルト) |
---|---|---|---|
issue_status |
ASoC に公開される問題の状況。 |
|
open |
scan_base_name |
ASoC | 指定したベース名にタイムスタンプが付加されます。 | GitHub_CodeSweep |
personal_scan |
ASoC |
|
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 アクションに関するフィードバックをレポートしたり、一般的な質問をしたりします。