42Crunch 技術入門訓練指南
42Crunch 採用標準化方法來保護 API,自動強制分散式開發暨安全性小組執行 API 安全合規性。 42Crunch API 安全性平台可讓開發人員從整合開發環境 (IDE) 建置 CI/CD 管線的安全性。 這個 DevSecOps 方法可以順暢地保護 API 安全,減少治理成本並加速傳遞安全的 API。
安全性測試方法
不同於用來掃描 Web 和行動應用程式的傳統 DAST 工具,42Crunch 會根據每個 API 的特定設計,鎖定 API 為目標執行一組經過精準量身訂製的測試。 使用 OpenAPI 定義 (亦即 Swagger) 檔案作為主要來源,42Crunch 掃描引擎會執行一系列測試,驗證 API 符合預期設計的程度。 這個一致性掃描會識別各種安全性問題,包括 OWASP 前 10 個弱點、不正確的回應碼和結構描述違規。 這些問題會以豐富的內容回報,包括可能的惡意探索案例和補救指導。
掃描可以在 CI/CD 管線中自動執行,或透過 IDE 或 42Crunch 雲端平台手動執行。
由於 API 規格的品質是掃描涵蓋範圍和效率的主要決定因素,因此請務必確定您的 OpenAPI 規格已妥善定義。 42Crunch 稽核會執行 OpenAPI 規格檔案的靜態分析,以協助開發人員改善規格的安全性和品質。 稽核會決定每個規格檔案的複合安全性分數,分數範圍從 0-100。 當開發人員補救稽核所識別的安全性和語意問題時,分數即會提升。 42Crunch 建議在執行一致性掃描之前,稽核分數至少要有 70。
啟用
注意
下列步驟會逐步解說 42Crunch 免費版本的設定程序。 請參閱常見問題一節,以了解 42Crunch 免費和付費版本之間的差異,以及如何在 Azure Marketplace 上購買 42Crunch。
使用 42Crunch 稽核和掃描服務,開發人員可以針對重大 OWASP API 風險執行靜態和動態 API 測試並採用 OpenAPI 規格最佳做法,在 CI/CD 管線中主動測試和強化 API。 42Crunch 的安全性掃描結果現在可在適用於雲端的 Defender 中取得,確保中央安全性小組能夠了解適用於雲端的 Defender 建議體驗中的 API 健康情況,並採取適用於雲端的 Defender 建議原生提供的治理步驟。
將 DevOps 環境連線至適用於雲端的 Microsoft Defender
此功能需要將 DevOps 環境連線到適用於雲端的 Defender。
設定 42Crunch 稽核服務
REST API 靜態安全性測試動作會找出遵循 OpenAPI 規格 (OAS,先前稱為 Swagger) 的 REST API 合約,並對其執行徹底的安全性檢查。 OAS v2 和 v3 支援 JSON 和 YAML 格式。
動作由 42Crunch API 安全性稽核提供。 安全性稽核會執行 API 定義的靜態分析,其中包含 300 多項最佳做法檢查,以及 API 定義驗證、授權、傳輸和要求/回應結構描述的潛在弱點。
對於 GitHub 環境
透過完成下列步驟,以在您的 CI/CD 管線中安裝 42Crunch API 安全性稽核外掛程式:
若要建立新的預設工作流程:
選擇 [自行設定工作流程]。
將工作流程
main.yaml
重新命名為42crunch-audit.yml
。複製完整的範例工作流程,並貼到工作流程編輯器。
注意
此工作流程假設您已啟用 GitHub Code Scaning。 如果啟用,請確定 上傳至程式代碼掃描 選項設定為 true。 如果您未啟用 GitHub 程式代碼掃描,請確定上傳至程式代碼掃描選項設定為 false,並遵循啟用 適用於雲端的 Defender 整合但不進行 GitHub 程式代碼掃描一節中的其他步驟。
選取 [認可變更]。 您可以直接認可主分支,或建立提取要求。 建議您建立 PR 以遵循 GitHub 最佳做法,因為針對主分支開啟 PR 時會啟動預設工作流程。
選取 [動作],並確認新動作正在執行。
工作流程完成後,選取 [安全性],然後選取 [程式碼掃描] 以檢視結果。
選取 42Crunch REST API 靜態安全性測試偵測到的程式碼掃描警示。 您也可以在 [程式碼掃描] 索引標籤中按工具進行篩選。篩選 [42Crunch REST API 靜態安全性測試]。
您現在已確認稽核結果會顯示在 [GitHub 程式碼掃描] 中。 接下來,我們會確認這些稽核結果可在適用於雲端的 Defender 中取得。 可能需要 30 分鐘的時間,結果才會顯示在適用於雲端的 Defender 中。
在沒有 GitHub Code Scaning 的情況下啟用 適用於雲端的 Defender 整合
如果您沒有環境的 GitHub 程式代碼掃描,而且想要將 42Crunch 的安全性掃描結果整合到 適用於雲端的 Defender,您可以遵循下列步驟。 在 42Crunch 工作流程步驟中新增之後,請將下列步驟新增至您的 GitHub 工作流程,使用 Microsoft Security DevOps GitHub Action 將掃描結果直接傳送至 適用於雲端的 Defender。
- name: save-sarif-report
if: always()
uses: actions/upload-artifact@v4
with:
name: 42Crunch_AuditReport_${{ github.run_id }}
path: 42Crunch_AuditReport_${{ github.run_id }}.SARIF
if-no-files-found: error
- name: Upload results to MSDO
uses: microsoft/security-devops-action@v1
id: msdo
with:
existingFilename: 42Crunch_AuditReport_${{ github.run_id }}.SARIF
接下來,將額外的許可權新增至工作流程,並將id-token 設定為寫入。
執行工作流程之後,最多可能需要 30 分鐘的時間,結果才會顯示在 適用於雲端的 Defender。
瀏覽至 [適用於雲端的 Defender]
- 選取 建議。
- 選取 [所有建議]。
- 搜尋 [API 安全性測試] 進行篩選。
- 選取建議 GitHub 存放庫應解析 API 安全性測試結果。
選取的建議會顯示所有 42Crunch 稽核結果。 您已完成 42Crunch 稽核步驟的入門訓練。
對於 Azure DevOps 環境
在您的組織上安裝 42Crunch Azure DevOps 延伸項目。
在 Azure DevOps 專案中建立新管線。 如需建立第一個管線的教學課程,請參閱建立您的第一個管線。
藉由在下列工作流程中進行複製來編輯已建立的管線:
trigger: branches: include: - main jobs: - job: run_42crunch_audit displayName: 'Run Audit' pool: vmImage: 'ubuntu-latest' steps: - task: UsePythonVersion@0 inputs: versionSpec: '3.11' addToPath: true architecture: x64 - task: APISecurityAuditFreemium@1 inputs: enforceSQG: false sarifReport: '$(Build.Repository.LocalPath)/42Crunch_AuditReport.sarif' exportAsPDF: '$(Build.Repository.LocalPath)/42Crunch_AuditReport.pdf' - task: PublishBuildArtifacts@1 displayName: publishAuditSarif inputs: PathtoPublish: '$(Build.Repository.LocalPath)/42Crunch_AuditReport.sarif ' ArtifactName: 'CodeAnalysisLogs' publishLocation: 'Container'
執行管線。
若要確認結果已在 Azure DevOps 中正確被發佈,請驗證 42Crunch-AuditReport.sarif 是否已上傳至 CodeAnalysisLogs 資料夾下的 [組建成品]。
您已完成上線流程。 接下來,我們會驗證結果是否顯示在「適用於雲端的 Defender」中。
瀏覽至 [適用於雲端的 Defender]:
- 選取 建議。
- 選取 [所有建議]。
- 搜尋 [API 安全性測試] 進行篩選。
- 選取建議「Azure DevOps 存放庫應解析 API 安全性測試結果」。
選取的建議會顯示所有 42Crunch 稽核結果。 您已完成 42Crunch 稽核步驟的入門訓練。
設定 42Crunch 掃描服務
API 掃描會持續掃描 API,以確保符合 OpenAPI 合約,並在測試時間偵測弱點。 它會在 API 生命週期早期偵測 OWASP API 安全性的前 10 大問題,並驗證您的 API 是否可以處理非預期的要求。
掃描需要非生產環境的即時 API 端點,以及必要認證 (API 金鑰/存取權杖)。 請遵循下列步驟以設定 42Crunch 掃描。
有關 ADO 特定的工作,請參閱本教學課程中的 azure-pipelines-scan.yaml。
常見問題集
42Crunch 如何協助開發人員識別和補救 API 安全性問題?
42Crunch 安全性稽核與一致性掃描可識別開發生命週期早期存在於 API 中的潛在弱點。 掃描結果包含豐富的內容,包括弱點描述和相關聯的惡意探索,以及詳細的補救指導。 掃描可以在 CI/CD 平台中自動執行,或由開發人員透過其中一個 42Crunch IDE 延伸模組在其 IDE 中以累加方式執行。
42Crunch 是否可用來強制開發人員遵循最低品質和安全性標準?
是。 42Crunch 可讓您使用安全性品質門檻 (Security Quality Gates,SQG) 強制執行合規性。 您必須符合 SQG 的特定準則,才能順利通過稽核或掃描。 例如,SQG 可以確保發生一或多個重大嚴重性問題的稽核或掃描不會通過。 在 CI/CD 中,如果 42Crunch 稽核或掃描無法通過 SQG,則會設定為無法建置,因此需要開發人員在推送程式碼之前先解決基礎問題。
免費版本的 42Crunch 會針對稽核和掃描使用預設的 SQG,而付費企業版本則允許自訂 SQG 和標籤,讓 SQG 可以選擇性地套用至 API 群組。
哪些資料會儲存在 42Crunch 的 SaaS 服務中?
42Crunch 安全性稽核和一致性掃描的有限免費試用版可以部署在 CI/CD 中,其會在本機產生報告,而不需要 42Crunch SaaS 連線。 在此版本中,沒有要與 42Crunch 平台共用的資料。
在 42Crunch 平台的完整企業版本中,下列資料會儲存在 SaaS 平台中:
- 42Crunch 平台使用者的名字、姓氏、電子郵件地址。
- OpenAPI/Swagger 檔案 (客戶 API 的描述)。
- 在 42Crunch 所執行的安全性稽核和一致性掃描工作期間產生的報告。
42Crunch 如何獲得授權?
42Crunch 是依據 API 數目和平台上佈建的開發人員數目組合來授權。 例如,定價組合,請參閱這個市集清單。 自訂定價可透過 Azure 商業市集上的私人供應項目取得。 如需自訂報價,請連絡 mailto:sales@42crunch.com。
42Crunch 的免費和付費版本有何差異?
42Crunch 提供免費的有限版本和付費企業版的安全性稽核和一致性掃描。
在 42Crunch 免費版本中,42Crunch CI/CD 外掛程式獨立運作,不需要登入 42Crunch 平台。 而稽核和掃描則可在適用於雲端的 Microsoft Defender 以及 CI/CD 平台中取用。 稽核和掃描限制為每個存放庫每個月最多各執行 25 次,最多可以使用三個存放庫。
在 42Crunch 付費企業版中,稽核和掃描仍會在 CI/CD 本機執行,但可與 42Crunch 平台服務同步,您可以在其中使用數個進階功能,包括可自訂的安全性品質門檻、資料字典和標記。 雖然企業版本已獲得特定 API 數目的授權,但每個月可以執行的稽核和掃描數目沒有限制。
是否可以在 Azure 商業市集取得 42Crunch?
是,42Crunch 可以在這裡的 Microsoft 商業市集購買。
請注意,透過 Azure 商業市集購買的 42Crunch,會計入您的最低 Azure 使用量承諾用量 (MACC)。