分享方式:


設定 Microsoft 安全性 DevOps GitHub 動作

Microsoft Security DevOps 是命令列應用程式,可將靜態分析工具整合到開發生命週期中。 Security DevOps 會安裝、設定和執行最新版的靜態分析工具,例如 SDL、安全性和合規性工具。 Security DevOps 是由可攜式設定所驅動,可跨多個環境啟用決定性執行。

Microsoft Security DevOps 使用下列開放原始碼工具:

名稱 語言 授權
反惡意程式碼軟體 Windows 中的反惡意程式碼軟體保護會從適用於端點的 Microsoft Defender 掃描惡意程式碼,並在找到惡意程式碼時中斷組建。 此工具預設會在 Windows 最新代理程式上進行掃描。 不是開放原始碼
Bandit Python Apache License 2.0
BinSkim Binary--Windows、ELF MIT 授權
Checkov Terraform, Terraform plan, CloudFormation, AWS SAM, Kubernetes, Helm charts, Kustomize, Dockerfile, Serverless, Bicep, OpenAPI, ARM Apache License 2.0
ESlint JavaScript MIT 授權
範本分析器 ARM 範本、Bicep MIT 授權
Terrascan Terraform (HCL2)、Kubernetes (JSON/YAML)、Helm v3、Kustomize、Dockerfiles、CloudFormation Apache License 2.0
Trivy 容器映像,基礎結構即程式碼 (IaC) Apache License 2.0

必要條件

設定 Microsoft 安全性 DevOps GitHub 動作

若要設定 GitHub 動作

  1. 登入 GitHub

  2. 選取您要用來設定 GitHub 動作的存放庫。

  3. 選取動作

    顯示 [Actions] 按鈕所在位置的螢幕擷取畫面。

  4. 選取 [新增工作流程]

  5. 在 [開始使用 GitHub Actions] 頁面上,選取 [自行設定工作流程]

    顯示選取 [新增工作流程] 按鈕所在位置的螢幕擷取畫面。

  6. 在文字方塊中,輸入工作流程檔案的名稱。 例如: msdevopssec.yml

    顯示您輸入新工作流程名稱所在位置的螢幕擷取畫面。

  7. 將下列範例動作工作流程 複製並貼到 [編輯新檔案] 索引標籤中。

    name: MSDO
    on:
      push:
        branches:
          - main
    
    jobs:
      sample:
        name: Microsoft Security DevOps
    
        # Windows and Linux agents are supported
        runs-on: windows-latest
    
        permissions:
          contents: read
          id-token: write
          actions: read
          # Write access for security-events is only required for customers looking for MSDO results to appear in the codeQL security alerts tab on GitHub (Requires GHAS)
          security-events: write
    
        steps:
    
          # Checkout your code repository to scan
        - uses: actions/checkout@v3
    
          # Run analyzers
        - name: Run Microsoft Security DevOps
          uses: microsoft/security-devops-action@latest
          id: msdo
        # with:
          # config: string. Optional. A file path to an MSDO configuration file ('*.gdnconfig').
          # policy: 'GitHub' | 'microsoft' | 'none'. Optional. The name of a well-known Microsoft policy. If no configuration file or list of tools is provided, the policy may instruct MSDO which tools to run. Default: GitHub.
          # categories: string. Optional. A comma-separated list of analyzer categories to run. Values: 'code', 'artifacts', 'IaC', 'containers'. Example: 'IaC, containers'. Defaults to all.
          # languages: string. Optional. A comma-separated list of languages to analyze. Example: 'javascript,typescript'. Defaults to all.
          # tools: string. Optional. A comma-separated list of analyzer tools to run. Values: 'bandit', 'binskim', 'checkov', 'eslint', 'templateanalyzer', 'terrascan', 'trivy'.
    
          # Upload alerts to the Security tab - required for MSDO results to appear in the codeQL security alerts tab on GitHub (Requires GHAS)
        # - name: Upload alerts to Security tab
        #  uses: github/codeql-action/upload-sarif@v3
        #  with:
        #    sarif_file: ${{ steps.msdo.outputs.sarifFile }}
    
          # Upload alerts file as a workflow artifact - required for MSDO results to appear in the codeQL security alerts tab on GitHub (Requires GHAS)
        # - name: Upload alerts file as a workflow artifact
        #  uses: actions/upload-artifact@v3
        #  with:  
        #    name: alerts
        #    path: ${{ steps.msdo.outputs.sarifFile }}
    

    注意

    如需其他工具設定選項和指示,請參閱 Microsoft 安全性 DevOps Wiki

  8. 選取 [開始認可]

    顯示您選取 [開始認可] 所在位置的螢幕擷取畫面。

  9. 選取 [認可新檔案]。 請注意,該程序最多可能需要一分鐘才能完成。

    顯示如何認可新檔案的螢幕擷取畫面。

  10. 選取 [動作],並確認新動作正在執行。

    顯示該瀏覽至何處以查看您的新動作正在執行的螢幕擷取畫面。

檢視掃描結果

若要檢視掃描結果

  1. 登入Azure。

  2. 瀏覽至 [適用於雲端的 Defender] > [DevOps 安全性]。

  3. 從 [DevOps 安全性] 刀鋒視窗中,您應該會在幾分鐘內開始看到開發人員在關聯存放庫的 CI 記錄中看到的相同 MSDO 安全性結果。 使用 GitHub Advanced Security 的客戶也會看到從這些工具擷取的結果。

深入了解

下一步

深入了解適用於雲端的 Defender 中的 DevOps 安全性

了解如何將 GitHub 組織連線至適用於雲端的 Defender。