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コレクションへの参照フィールド。 有効な値:
|
package | Javaパッケージの名前。 |
line | 脆弱性の原因となる変更がファイルに導入された行番号を示す長整数。 |
remote_id |
静的コード分析ツールで定義されたID。新規または既存のリモートID:
必須。 |
primary_location_full | 脆弱性の問題を含むファイルへのパス。必須。 |
introduced_date | ツールによって脆弱性が検出された日付。 |
owner_email | 脆弱性の原因となったワークスペースユーザーの電子メール。ALM Octaneは、このフィールドを使用してユーザーを識別します。オプション。 |
state |
状態のlist_nodeコレクションへの参照フィールド。 ALM Octane UIで編集することもできます。 有効な値:
|
tool_type | ツールタイプのlist_nodeコレクションへの参照フィールド。 |
tool_name |
ツールの名前。フリーテキスト文字列。 有効な値:
|
external_link | 脆弱性の問題のURL。 |
analysis |
分析の問題に関するlist_nodeコレクションへの参照フィールド。 ALM Octane UIで編集することもできます。 有効な値:
|
defect | 検出された脆弱性の問題に関連する不具合を示す、不具合コレクションへの参照フィールド。不具合IDがわかっている場合に使用できます。オプション。 |
extended_data | キーと値のペアのセットを含むカスタムフィールドタイプ。このフィールドを使用して、ALM Octane UIの脆弱性の説明に表示する追加のフィールドと値を指定します。 |
category | カテゴリ別グループなど、脆弱性カテゴリを示すフリーテキスト。 |
参照情報: