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

必要な権限を持っていれば、独自のカスタム・ポリシーを作成/削除できます。

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

事前定義された関数

ポリシーでは、次の事前定義された関数を使用できます。
表 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 以下の形式で重大度を指定します。"Information | Low | Medium | High | Critical" パラメーターに指定された重大度以上の問題を返します。
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 式として定義します。
    注: UI を使用してポリシーをアプリケーションに関連付ける予定の場合、ポリシーを関連付けるときにパラメーターを定義することはできないため、ポリシーの作成時にすべてのパラメーターを定義する必要があります。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 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"
      ]
    }
}

例 2: カスタム CWE ポリシー

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

例 3: 複合カスタム・ポリシー

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

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