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 掃描您的檔案,並針對找到的問題建立檢查執行 (checkrun) 和註釋。在 中存取這些設定。
- 若要在開啟提取要求時掃描程式碼變更,請將下列檔案新增至您的儲存庫
.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 或更新版本,則必須將提取深度設為 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}}
掃描的選用參數
參數 | 說明: | Values | 預設 |
---|---|---|---|
status |
檢查若有發現任何安全問題的狀態。 |
|
neutral |
with:
status: failure
將問題發佈至 AppScan on Cloud 的選用參數
參數 | 說明: | Values | 預設 |
---|---|---|---|
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 動作的一般問題。