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@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 或更新版本,則必須將提取深度設為 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.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 |
檢查若是發現任何安全問題的狀態。 |
|
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 |
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 動作的一般問題。