创建定制策略

如果您具有所需许可权,则可以创建和删除自己的定制策略。

定制策略是使用 JSON 表达式树来定义的。它可以包含一个基本表达式,也可以包含多个使用逻辑运算符 (And, Or, Not) 的表达式。每个基本表达式包含一个预定义函数及其参数(如果需要)。可以在创建策略时设置参数值,也可以使用 $ 使参数值处于未定义状态。如果未定义参数,则在将策略与应用程序关联时,将要求用户提供值。
注: 创建将通过用户界面使用的策略时,必须定义所有参数,否则无法将它们与应用程序相关联。
创建定制策略的一个优点是可以将参数硬编码到策略中,从而使用户能够使用策略而无需每次都定义参数。例如,您可以使用预定义的基线策略来创建一系列具有指定开始日期的定制策略。

预定义函数

以下预定义函数可以在您的策略中使用:
函数 参数 描述
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 标识的列表 返回与指定的 CWE 标识对应的问题。
PCI 不适用 返回导致应用程序不符合 PCI 数据安全标准的问题。
HIPAA 不适用 返回导致应用程序不符合 HIPAA 相关规定的问题。

通过用户界面创建定制策略

要创建定制策略,请执行以下操作:
  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:定制 OWASP Top 10 策略,排除 CWE 89 和 90

    {
        "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:组合定制策略

在这个定制策略示例中,包含了函数 StartDateMinSeverity 以及运算 And,这样将仅包含在指定日期之后发现并且具有指定最低严重性的问题。

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