ATD文档中心 logo ATD文档中心

设置好参数后,需要设置策略了,对于复杂的策略,不能用简单的逻辑运算来表达的情况,我们可以用高级模式来实现。

如下图所示:在“策略模式”中选择“高级”。在高级规则中,输入对应的逻辑表达式即可。

高级规则

如何写高级规则?

高级规则中就是写一条逻辑表达式。

逻辑表达式由比较表达式(CExpression)和逻辑运算符构成。

1、比较表达式是由算术表达式(AExpression)和比较运算符构成。

2、算术表达式由常量,参数,算术运算符构成。

逻辑运算符支持 and 和 or 两种操作
支持的比较运算符有大于(>)和小于(<)符号
支持的算术运算符有加(+)减(-)乘(*)除(/)
支持常量与参数进行算数运算
另外支持括号运算符

逻辑表达式【示例1】

``` clientIP.5mins.arg1>2*clientIP.5mins.arg2

在IP分析视角下,5分钟滑动分析窗口,参数arg1大于参数arg2的2倍

说明:

| **clientIP**   | 分析视角为IP   | 
|:----|:----|
| **5mins**   | 滑动分析窗口为5分钟   | 
| **arg1**   | 参数1(实际中写“参数管理”中实际的参数名称,此处为示例)   | 
| **arg2**   | 参数2(实际中写“参数管理”中实际的参数名称,此处为示例)   | 

### 逻辑表达式【示例2】

id.1min.arg1>2*id.1min.arg2

在ID分析视角下,1分钟滑动分析窗口,参数arg1大于参数arg2的2倍

说明:

| **id**   | 分析视角为ID    | 
|:----|:----|
| **1min**   | 滑动分析窗口为1分钟   | 
| **arg1**   | 参数1(实际中写“参数管理”中实际的参数名称,此处为示例)   | 
| **arg2**   | 参数2(实际中写“参数管理”中实际的参数名称,此处为示例)   | 

### 算数表达式构成

分析视角.滑动分析窗口.参数名

**算数表达式必备3要素:**

**1、分析视角**

分析视角一共有两种IP或ID,请根据该域名的具体情况进行选择

| **IP**   | clientIP   | 
|:----|:----|
| **ID**   | id   | 

**2、滑动分析窗口**

| **5分钟**   | 5mins | 
|:----|:----:|
| **1分钟**   | 1min | 

注意:当前只支持5分钟和1分钟滑动分析窗口。

**3、参数**

可在“参数管理”中查看已设置好的参数,将参数名写出即可。

## 【案例】暴力破解成功
>案例场景详情:5分钟内,一个IP成功登录baishancloud.com/user/login的次数大于失败的次数的2倍,并且成功的次数大于20。

**第一步:设置模型**

在可编程对抗模型中,点击“添加”按钮,【名称】输入“暴力破解成功”。

**第二步:设置参数**

设置两个参数: 

1、成功登录的次数

![登录成功](/docs/images/log/成功登录的次数.png)

2、失败登录的次数

![登录失败](/docs/images/log/失败登录的次数.png)

**第三步:设置策略**

策略模式选择“高级”,在高级规则输入框中输入如下表达式 clientIP.5mins.atd_loginsuccess>2*clientIP.5mins.atd_loginfail and clientIP.5mins.atd_loginsuccess>20 ``` 可编程对抗策略设置