ALM Octaneに脆弱性の問題を追加する

このトピックでは、脆弱性リソースを使用してセキュリティの脆弱性の問題をALM Octaneサーバーに送信する方法について説明します。 

概要

脆弱性同期リソースは、セキュリティ脆弱性分析をALM Octaneサーバーに送信します。

このリソースを使用すると、Fortify onDemandやその他の静的コード分析ツールを使用してコードに関して検出されたALM Octaneの脆弱性の問題を追加または更新できます。

脆弱性の問題は、セキュリティタイプで定義されたパイプラインの実行にのみ関連しています。

ALM Octaneに挿入する脆弱性の問題の最大数を設定できます。詳細については、構成パラメーターVULNERABILITIES_PER_PIPELINE_RUN_LIMITを参照してください。

このリソースを使用する前に、認証APIを使用してサーバーにログインする必要があります。認証するときは、事前定義されたCI/CD統合ロールと同じ権限が必要です。認証の詳細については、認証を参照してください。

注: セキュリティパイプラインの作成日より前、またはセキュリティタイプとして設定される前の脆弱性は注入されません。

トップに戻る

URI

.../api/shared_spaces/<space_id>/vulnerabilities 

サポートされているHTTPメソッド

このリソースはPOST操作のみをサポートしますが、この特別なリソースは、一致するパイプラインの実行が見つかった場合、代わりにPUT操作を実行できます。

POSTまたはPUTを決定するために、ALM Octaneは、外部静的コード分析ツールで定義され、ペイロードで提供されるリモートIDをチェックします。

ペイロードで提供されたリモートIDに、パイプライン実行用にまだ存在していない値が含まれている場合、ALM Octaneは新しい脆弱性の問題を作成します。リモートIDが存在する場合、ALM Octaneは既存の脆弱性の問題を更新します。

トップに戻る

リクエスト

セキュリティ脆弱性分析情報を挿入するための要求構文は次のとおりです。

POST .../api/shared_spaces/<space_id>/vulnerabilities?instance-id='<instance_id>'&job-ci-id='<job_id>'&build-ci-id='<build_id>'

POSTするときは、次のように指定します。 

  • パイプラインの実行を識別するためのクエリ。

  • この構文に準拠するJSONペイロードを含むリクエスト本文。

  • application/jsonに設定されたContent-Typeヘッダーフィールド

  • オプションで、コンテンツをgzip形式で圧縮できます。この場合、Content-Encodingヘッダーフィールドをapplication/gzipに設定する必要があります。

次の表に、リクエストで実行された対応するパイプラインを特定する方法を示します。

項目 フィールド

CIサーバーID

インスタンスID
Jenkinsなどのジョブ名 job-ci-id

ビルドID

build-ci-id

トップに戻る

リクエスト本文のJSONペイロード

リクエスト本文のペイロードは次のことを説明しています。

  • 脆弱性の問題で更新するパイプラインの実行。

  • 静的コード分析ツールによって検出された脆弱性の問題。

ペイロードに複数の問題を指定できます。

ペイロードは、標準のALM Octane REST API構文を使用します。次に例を示します。

{ "data": [{ 
    "severity": { 
        "type": "list_node", 
        "id": "list_node.severity.low" 
    }, 
    "package": "com.mf.presales.web", 
    "line": 10, 
    "remote_id": "3122", 
    "primary_location_full": "src/test/java/SimpleTest.java",
    "introduced_date": "2020-12-10T12:46:06Z",
    "state": { 
        "type": "list_node", 
        "id": "list_node.issue_state_node.new" 
    }, 
    "tool_type": { 
        "type": "list_node", 
        "id": "list_node.securityTool.fod"
    }, 
    "tool_name": "Fortify", 
    "analysis": { 
        "type": "list_node", 
        "id": "list_node.issue_analysis_node.maybe_an_issue" 
    }, 
    "category": "My category" 
    }] 
}

ペイロードを準備するときは、以下のフィールドのみを使用してください。

ヒント: 特に明記されていない限り、これらのフィールドはREST APIを使用してのみ更新できます。これらのフィールドのほとんどの更新は、ALM Octane UIを使用してサポートされていません。

フィールド 説明
severity

検出された脆弱性の問題の重大度を示す、list_nodeコレクションへの参照フィールド。

有効な値:  

  • list_node.severity.low
  • list_node.severity.medium
  • list_node.severity.high
  • list_node.severity.very_high
  • list_node.severity.urgent
package Javaパッケージの名前。
line 脆弱性の原因となる変更がファイルに導入された行番号を示す長整数。
remote_id

静的コード分析ツールで定義されたID。新規または既存のリモートID:

  • 存在しないリモートIDを指定すると、ALM Octaneが新しい脆弱性の問題 (POST) を作成します。

  • 既存のリモートIDを指定すると、ALM Octaneが既存の脆弱性の問題 (PUT) を更新します。

必須。

primary_location_full 脆弱性の問題を含むファイルへのパス。必須。
introduced_date ツールによって脆弱性が検出された日付。
owner_email 脆弱性の原因となったワークスペースユーザーの電子メール。ALM Octaneは、このフィールドを使用してユーザーを識別します。オプション。
state

状態のlist_nodeコレクションへの参照フィールド。

ALM Octane UIで編集することもできます。

有効な値:  

  • list_node.issue_state_node.new

  • list_node.issue_state_node.existing

  • list_node.issue_state_node.waiting_for_review

  • list_node.issue_state_node.reviewed

  • list_node.issue_state_node.bug_submitted

  • list_node.issue_state_node.not_an_issue

  • list_node.issue_state_node.closed

tool_type ツールタイプのlist_nodeコレクションへの参照フィールド。
tool_name

ツールの名前。フリーテキスト文字列。

有効な値:  

  • list_node.securityTool.fod

external_link 脆弱性の問題のURL。
analysis

分析の問題に関するlist_nodeコレクションへの参照フィールド。

ALM Octane UIで編集することもできます。

有効な値:  

  • list_node.issue_analysis_node.maybe_an_issue

  • list_node.issue_analysis_node.reviewed

  • list_node.issue_state_node.bug_submitted

  • list_node.issue_state_node.not_an_issue

defect 検出された脆弱性の問題に関連する不具合を示す、不具合コレクションへの参照フィールド。不具合IDがわかっている場合に使用できます。オプション。
extended_data キーと値のペアのセットを含むカスタムフィールドタイプ。このフィールドを使用して、ALM Octane UIの脆弱性の説明に表示する追加のフィールドと値を指定します。
category カテゴリ別グループなど、脆弱性カテゴリを示すフリーテキスト。

トップに戻る

参照情報: