コンテンツにスキップ

Azure DevOps との統合

azure-devops-color

このガイドでは、プッシュのたびに Mayhem が自動的に API をテストできるよう Azure DevOps Pipeline をセットアップする方法を説明します。

Azure DevOps パイプラインで Mayhem を実行するには、以下が必要です

  1. Mayhem API トークン を作成します。
  2. 作成したトークンを MAPI_TOKEN という名前の「シークレット変数」としてパイプランの変数に追加します。

Azure DevOps と Mayhem を連携するためのパイプライン構成

azure-pipelines.yml ファイルを作成し、API をスキャンしてレポートを成果物としてアップロードするよう Azure DevOps パイプライン を構成します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
steps:
  - checkout: self
    clean: 'true'
    # Fetch a deep enough history to compute the merge base of branches with the
    # default branch.  Alternatively, set to "0" to fetch the entire history.
    fetchDepth: '50'

  # 1. Build and test your API

  # 2. Run the API in debug mode. Output stack traces for better error reporting.

  # 3. Run Mayhem against your API at localhost:8000
  #    Replace $(MAYHEM_URL) with your instance's URL, e.g., https://app.mayhem.security
  - script: |
      curl -Lo mapi $(MAYHEM_URL)/cli/mapi/linux-musl/latest/mapi \
        && chmod +x mapi

      ./mapi run azure-pipelines-example auto http://localhost:8000/openapi.json \
        --url 'http://localhost:8000' \
        --junit TEST-mapi.xml \
        --html mapi.html
    env:
      MAPI_TOKEN: $(MAPI_TOKEN)
    continueOnError: 'true'
    displayName: Run Mayhem to check for vulnerabilities

  - task: PublishPipelineArtifact@1
    displayName: 'Publish Pipeline Artifact'
    inputs:
      path: 'mapi.html'
      artifact: mapi-html-report
    continueOnError: 'true'

  - task: PublishTestResults@2

GitHub サンプル

動作するサンプル一式が GitHub にあります: azure-pipelines-example