カスタム・コンプライアンス・ポリシーの作成

必要な権限があれば、独自のカスタム・コンプライアンス・ポリシーを作成したり削除したりできます。

カスタム・コンプライアンス・ポリシーを定義するには、JSON 式ツリーを使用します。式ツリーは、単一の基本式、または論理演算 (And, Or, Not) を含む複数の式で構成できます。各基本式は、事前定義された関数とそのパラメーター (必要な場合) から構成されます。パラメーター値は、コンプライアンス・ポリシーの作成時に設定することも、$ を使用して未定義のままにしておくこともできます。パラメーターを未定義にすると、ユーザーはコンプライアンス・ポリシーをアプリケーションに関連付けるときに値を指定する必要があります。
注: ユーザー・インターフェースで使用するコンプライアンス・ポリシーを作成する場合、すべてのパラメーターを定義する必要があります。そうしなければ、コンプライアンス・ポリシーをアプリケーションに関連付けることができません。
カスタム・コンプライアンス・ポリシーを作成する利点の 1 つは、パラメーターをコンプライアンス・ポリシーにハードコーディングできることです。その結果、ユーザーは毎回パラメーターを定義しなくてもコンプライアンス・ポリシーを使用できます。例えば、事前定義されたベースライン・コンプライアンス・ポリシーを使用して、開始日を指定した一連のカスタム・コンプライアンス・ポリシーを作成できます。

事前定義された関数

コンプライアンス・ポリシーでは、以下の事前定義された関数を使用できます。
関数 パラメーター 説明
StartDate 以下のいずれかの形式で日付を指定します (時刻を含めることもできます)。
  • yyy-MM-dd
  • yyyy-MM-ddThh:mmZ (UTC)
  • yyyy-MM-ddThh:mm+hh:mm (現地時間 +/- UTC オフセット)
指定された日付 (および時刻) 以降に検出された問題を返します。
例:
日付のみ
2018-04-24
UTC 時
2018-04-24T10:30Z
現地時間 +/- UTC オフセット
2018-04-24T11:30+01:00

2018-04-24T07:30-03:00

MinSeverity 以下の形式で重大度を指定します。
  • 情報
  • 重大
パラメーターに指定された重大度以上の問題を返します。
OwaspTop10_2017 該当なし OWASP でトップ 10 のセキュリティー・リスクとして定義されている問題を返します。
SansTop25 該当なし SANS Institute でトップ 25 の重大エラーとして定義されている問題を返します。
EUGdpr_2016 該当なし アプリケーションが GDPR に準拠しない原因となる問題を返します。
CWE CWE ID のリスト 指定された CWE ID に対応する問題を返します。
PCI 該当なし アプリケーションが PCI データ・セキュリティー基準に準拠しない原因となる問題を返します。
HIPAA 該当なし アプリケーションが HIPAA に準拠しない原因となる問題を返します。
Technology 有効な技術:
  • DAST
  • SAST
  • IAST
  • SCA
指定された技術に対応する問題を返します。

ユーザー・インターフェースを使用したカスタム・コンプライアンス・ポリシーの作成

カスタム・コンプライアンス・ポリシーを作成するには、次の手順を実行します。
  1. ダッシュボードで「コンプライアンス・ポリシー」をクリックし、「カスタム・コンプライアンス・ポリシーの追加」をクリックします。
  2. コンプライアンス・ポリシーに名前を付け、JSON 式として定義します。
    注: インターフェースを使用してコンプライアンス・ポリシーをアプリケーションに関連付ける予定の場合、コンプライアンス・ポリシーを関連付けるときにパラメーターを定義することはできないため、コンプライアンス・ポリシーの作成時にすべてのパラメーターを定義する必要があります。API を使用してコンプライアンス・ポリシーをアプリケーションに関連付ける予定の場合は、パラメーターを未定義のままにして、関連付ける際に値を定義できます。

    例 1: カスタム・ベースライン・コンプライアンス・ポリシー

    {  
       "Function":"StartDate",
       "Parameters":[  
          "2017-12-31T13:50Z"
       ]
    }
    

    例 2: カスタム CWE コンプライアンス・ポリシー

    {  
       "Function":"CWE",
       "Parameters":[  
          89,
          90
       ]
    }
    

    例 3: 複合カスタム・コンプライアンス・ポリシー

    {  
       "Operation":"And",
       "Expressions":[  
          {  
             "Function":"StartDate",
             "Parameters":[  
                "2018-04-24T10:30Z"
             ]
          },
          {  
             "Function":"MinSeverity",
             "Parameters":[  
                "Medium"
             ]
          }
       ]
    }
    

    例 4: CWE 89 と 90 を除外するカスタム・コンプライアンス・ポリシー

    {
        "Operation": "Not",
        "Expressions": [
            {
                "Function": "CWE",
                "Parameters": [
                    89,
                    90
                ]
            }
        ]
    }
    

    例 5: CWE 89 と 90 を除外するカスタム OWASP トップ 10 コンプライアンス・ポリシー

    {
        "Operation": "And",
        "Expressions": [
            {
                "Operation": "Not",
                "Expressions": [
                    {
                        "Function": "CWE",
                        "Parameters": [
                            89,
                            90
                        ]
                    }
                ]
            },
            {
                "Function": "OwaspTop10_2017"
            }
        ]
    }
                                

    例 6: 技術に基づいて問題をフィルタリングするカスタム・コンプライアンス・ポリシー

    {
       "Function": "Technology",
       "Parameters": [
          "DAST",
          "SAST"
        ]
    }
                                    
  3. 完了したら、「閉じる」をクリックします。

REST API を使用したカスタム・コンプライアンス・ポリシーの作成

REST API では、式ツリーを使用してコンプライアンス・ポリシーを定義します。式ツリーは、単一の基本式、または論理演算 (And, Or, Not) を含む複数の式で構成できます。各基本式は、事前定義された関数とそのパラメーター (必要な場合) から構成されます。パラメーター値は、コンプライアンス・ポリシーの作成時に設定することも、$ を使用して未定義のままにしておくこともできます。パラメーターを未定義にすると、ユーザーはコンプライアンス・ポリシーをアプリケーションに関連付けるときに値を指定する必要があります。

例 1: カスタム・ベースライン・コンプライアンス・ポリシー

{
    "Name": "Baseline",
    "Predefined": true,
    "Expression": {
      "Function": "StartDate",
      "Parameters": [
        "$DATE"
      ]
    }
}

例 2: カスタム CWE コンプライアンス・ポリシー

{
   "Name": "CWE policy",
   "Expression": {
     "Function": "CWE",
     "Parameters": [
       89,
       90
     ]
   }
}

例 3: 複合カスタム・コンプライアンス・ポリシー

このカスタム・コンプライアンス・ポリシーの例では、関数 StartDateMinSeverity が演算 And で組み込まれており、指定された日付以降に検出され、指定された最小重大度の問題のみが含まれるようになっています。

  {
    "Name": "MyPolicy",
    "Predefined": false,
    "Expression": {
      "Operation": "And",
      "Expressions": [
        {
          "Function": "StartDate",
          "Parameters": [
            "2018-04-24T10:30Z"
          ]
        },
        {
          "Function": "MinSeverity",
          "Parameters": [
            "$minseverity"
          ]
        }
      ]
    }
  }

例 3: 技術に基づいて問題をフィルタリングするカスタム・コンプライアンス・ポリシー。DAST スキャンと SAST スキャンの問題のみがリスト表示されます。

{ 
    "Name": "Tech Filter", 
    "Expression": { 
        "Function": "Technology", 
        "Parameters": [ 
            "DAST", 
            "SAST" 
        ]
    } 
}