パイプラインで Veracode スキャンを構成する

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:7分
  • Azure DevOps、Jenkins、GitHub、GitLab、または Harness パイプラインで Veracode スキャンを構成します。

    パイプラインの任意のステージで Veracode スキャンを構成でき、スキャンの詳細は対応するステージから DevOps 変更速度管理に取得されます。Azure DevOps または GitHub Actions オーケストレーション ツールを使用している場合は、パイプラインにカスタム アクション コードを常に追加する必要があります。Jenkins を使用していて、パイプラインに既に Veracode セキュリティスキャンステップがある場合は、パイプラインにカスタムアクションコードを追加する必要はありません。Veracodeセキュリティスキャンステップに waitForScan: true があることを確認します。これは、システムがスキャン情報を取得するために必要です。

    GitLab ツール用に Veracode を構成する場合は、汎用 Docker コンテナイメージを使用して Veracode セキュリティステップを追加するか、「 セキュリティツールとのデータ連携 GitLab 」トピックで指定された手順を実行できます。

    ハーネスパイプラインの場合、汎用Dockerコンテナイメージを使用してのみVeracodeスキャンを構成できます。詳細については、「汎用 Docker コンテナイメージを使用したパイプラインのカスタムアクションの実装」を参照してください。

    1. パイプラインのステップに移動し、カスタムアクションを追加します。
      Azure DevOps
      1. パイプライン.ymlファイルに移動します。
      2. 右側の [ タスク ] セクションで、 ServiceNow DevOps セキュリティ結果 拡張タスクを検索します。
      3. ServiceNow エンドポイントを入力します。
      4. セキュリティ結果属性を次のように入力します。
        
            {
                "scanner": "Veracode", "applicationName": "", "buildVersion": "", "securityToolId": "" 
            }

        scanner:スキャンツールで、Veracode などの必須です。

        applicationName:Veracode アプリケーションの名前。必須です。この属性は Veracode にのみ適用されます。

        buildVersion:Veracode スキャン名/ビルドバージョンで、オプションです。この属性は Veracode にのみ適用されます。

        securityToolId:ServiceNow にオンボーディングされたセキュリティツール (オンボーディングされたセキュリティツールのsys_id) 。オプションです。

      5. [ 追加 ] を選択して、カスタム アクション コードをパイプラインに追加します。
      Jenkins
      1. 構成されたパイプラインからパイプライン構文に移動します。
      2. [サンプルステップ] リストから snDevOpsSecurityResult ステップを選択し、ステップのセキュリティスキャン属性の値を更新します。
      3. [ パイプラインスクリプトを生成] を選択してスニペットを作成します。スニペットをコピーしてパイプラインに貼り付けることができます。
        snDevOpsSecurityResult { 
        securityResultAttributes:{"scanner":"Veracode", "applicationName": "", "buildVersion": "", "securityToolId": ""}}

        scanner:スキャンツールで、Veracode などの必須です。

        applicationName:Veracode アプリケーションの名前。必須です。この属性は Veracode にのみ適用されます。

        buildVersion:Veracode スキャン名/ビルドバージョンで、オプションです。この属性は Veracode にのみ適用されます。

        securityToolId:ServiceNow にオンボーディングされたセキュリティツール (オンボーディングされたセキュリティツールのsys_id) 。オプションです。

      GitHub Actions
      1. ワークフロー.ymlファイルに移動します。
      2. 右側の [マーケットプレイス ] セクションで、[ ServiceNow DevOps セキュリティ結果 ] カスタムアクションを検索します。
      3. 次のスニペットを.ymlファイルに追加します。
        
            SecurityScanResults:
                needs: build
                runs-on: ubuntu-latest
                name: Servicenow Security Scan Results
        
            steps:
              - name: ServiceNow DevOps Security Results
                uses: ServiceNow/servicenow-devops-security-result@v1.39.0
                with:
                    devops-integration-user-name: ${{ secrets.SN_DEVOPS_USER }}
                    devops-integration-user-password: ${{ secrets.SN_DEVOPS_PASSWORD }}
                    instance-url: ${{ secrets.SN_INSTANCE_URL }}
                    tool-id: ${{ secrets.SN_ORCHESTRATION_TOOL_ID }}
                    context-github: ${{ toJSON(github) }}
                    job-name: 'Servicenow Security Scan Results'
                    security-result-attributes: '{ "scanner": "Veracode", "applicationName": "", "buildVersion": "", "securityToolId": ""}

        scanner:スキャンツールで、Veracode などの必須です。

        applicationName:Veracode アプリケーションの名前。必須です。この属性は Veracode にのみ適用されます。

        buildVersion:Veracode スキャン名/ビルドバージョンで、オプションです。この属性は Veracode にのみ適用されます。

        securityToolId:ServiceNow にオンボーディングされたセキュリティツール (オンボーディングされたセキュリティツールのsys_id) 。オプションです。

      詳細については、「 GitHub Marketplace」を参照してください。
      馬具 汎用 Docker コンテナイメージを実行して、次のスクリプトを使用します。詳細については、「汎用 Docker コンテナイメージを使用したパイプラインのカスタムアクションの実装」を参照してください。
      - stage:
          name: ServiceNow DevOps Security Result
          identifier: Security
          description: ""
          type: Custom
          spec:
            execution:
              steps:
                - stepGroup:
                    name: Security
                    identifier: Security
                    steps:
                      - step:
                          type: Run
                          name: ServiceNow DevOps Security Result
                          identifier: ServiceNow_DevOps_Security_Result
                          spec:
                            connectorRef: docker_hub_connector_for_harness
                            image: servicenowdocker/sndevops:5.0.0
                            shell: Sh
                            command: |-
                              sndevopscli create securityScan -p  
      
                              "{"pipelineInfo":{
                                  "buildNumber":"<+stage.nodeExecutionId>",
                                  "taskExecutionUrl":"<+pipeline.executionUrl>?stage=<+stage.nodeExecutionId>", 
                                  "orchestrationPipeline":"<+org.identifier>/<+project.identifier>/<+pipeline.name>" 
                                },
                                "securityResultAttributes":{
      				"scanner":"Veracode",
      				"applicationName":"",
      				"buildVersion":"",
      				"securityToolId":""
                                }
                              }"
                            envVariables:
                              SNOW_URL: <+variable.SNOW_URL>
                              SNOW_TOOLID: <+variable.SNOW_TOOLID>
                              SNOW_TOKEN: <+variable.SNOW_TOKEN>
                    stepGroupInfra:
                      type: KubernetesDirect
                      spec:
                        connectorRef: kubernates_connector
                        namespace: harness-delegate-ng
          tags: {}
    2. パイプラインを実行してセキュリティスキャン結果を取得します。