カスタム・ポリシーの作成

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

カスタム・ポリシーを定義するには、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 N/A OWASP でトップ 10 のセキュリティー・リスクとして定義されている問題を返します。
SansTop25 N/A SANS Institute でトップ 25 の重大エラーとして定義されている問題を返します。
EUGdpr_2016 N/A アプリケーションが GDPR に準拠しない原因となる問題を返します。
CWE CWE ID のリスト 指定された CWE ID に対応する問題を返します。
PCI N/A アプリケーションが PCI データ・セキュリティー基準に準拠しない原因となる問題を返します。
HIPAA N/A アプリケーションが HIPAA に準拠しない原因となる問題を返します。

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

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

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

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

    Example 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 Top 10 ポリシー

    {
        "Operation": "And",
        "Expressions": [
            {
                "Operation": "Not",
                "Expressions": [
                    {
                        "Function": "CWE",
                        "Parameters": [
                            89,
                            90
                        ]
                    }
                ]
            },
            {
                "Function": "OwaspTop10_2017"
            }
        ]
    }
    
  3. 完了したら、「閉じる」をクリックします。

REST API を使用したカスタム・ポリシーの作成

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

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

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

Example 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"
          ]
        }
      ]
    }
  }