Skip to content

Latest commit

 

History

History
172 lines (156 loc) · 8.95 KB

自定义处理方式接口开发文档.md

File metadata and controls

172 lines (156 loc) · 8.95 KB

自定义处理方式接口开发文档


说明

接口以POST方式调用,body格式为json。

1. request body数据样例

{
    "host": "demo.baishancloud.com",
    "info": [{
       "time_local": 1509379866, 
       "perspective_name": "ip", 
       "perspective_value": "210.45.137.29", 
       "ip": "210.45.137.29",
       "path": "/test/test.php", 
       "path_count": 1,
       "pv": 29, 
       "engine_type": "policy",
       "reason": "CC攻击",
       "url_pattern": "demo.baishancloud.com/test/test.php", 
       "expire": 1800,
       "score": 80,
       "action": "ban",
       "in_white_list": false,
       "country": "中国",
       "province": "安徽",
       "city": "淮北",
       "district": "相山区",
       "idc": "教育网", 
       "export_ip": 10,
       "ip_credit": "{\"is_local\": \"no\",\"search_engine\": {\"status\": \"\",\"name\": \"\"},\"is_near\": true,\"addr\": [{\"province\": \"安徽\",\"city\": \"淮北\",\"district\": \"相山区\",\"country\": \"中国\",\"location\": {\"latitude\": \"33.989607\",\"radius\": \"0.8171\",\"longitude\": \"116.820571\"},\"idc\": \"教育网\",\"accuracy\": \"街道级\"}],\"cache_at\": 1509379866,\"export_score\": \"60\",\"ip\": \"210.45.137.29\",\"credit\": {\"user_count\": 1,\"office\": 47.68,\"family\": 37.990000000000002,\"export_ip\": 10,\"person\": 10.01,\"dirty\": \"0.00\",\"active\": 0},\"is_legal\": \"yes\",\"trend\": [[1520218800, 2, \"low\"],[1520218800, 3, \"low\"]],\"score\": 90,\"type\": {\"撞库\": 3, \"爬虫\": 5},\"latest\": [{\"timestamp\": 1520218800, \"type\": \"爬虫\", \"loc\": \"上海\"}]}"
      }]
}

字段解释:

字段名 类型 取值范围 说明
host string - 域名
info array - 拦截数据数组
info[0].time_local int - unix 时间戳
info[0].perspective_name enum ["ip","id"] 分析维度的名称,目前ATD支持的分析维度有IP和ID两种,其中ID为用户指定的user_id、device_id等可以唯一标示一个用户的ID
info[0].perspective_value string - 分析维度的值
info[0].ip string - 当分析维度为IP时,值为攻击IP;当分析维度不为IP时,攻击IP可能为多个,所以值为攻击IP列表,多IP之间以,分割
info[0].path string - 被访问最多的路径
info[0].path_count int - 被访问最多路径的请求数
info[0].pv int - 本次时间窗⼝内的总请求数
info[0].engine_type enum ["policy","deep","learning"] 识别本次攻击的算法引擎的名称,policy:实时引擎,deep:深度引擎,learning:学习引擎
info[0].reason string - 命中的攻击类型,目前ATD可以识别的攻击类型包括:爬虫、账号类攻击、CC攻击、慢速攻击、异常流量包攻击、刷单类攻击、路径扫描、危险UA、SQL注入、命令注入、跨站脚本、异常路径访问等
info[0].url_pattern string - 路径特征,具有相同结构的url用url_pattern表示,如www.abc.com/a/123.html和www.abc.com/a/456.html的url_pattern为www.abc.com/a/*.html
info[0].expire int [60-86400] 被拦截IP禁用时长,IP每次被识别为威胁拦截时的禁用时长,单位为:秒。禁用时长到期后,IP解禁可继续访问
info[0].score int [1-100] 威胁分数,1-29为低威胁,30-69为中威胁,70-100为高威胁
info[0].action string - 命中的攻击判定策略配置的处理动作

以下数据只在perspective_name为ip时有效:

字段名 类型 取值范围 解释
info[0].in_white_list boolean [true,false] 是否在⽩名单中
info[0].country string - 国家
info[0].province string -
info[0].city string -
info[0].district string -
info[0].idc string - 机房或网络运营商
info[0].export_ip float [0-100] 出口ip的概率,返回的数据中省略了%,推荐参考值,当该值大于60时可以认为是出口IP
info[0].ip_credit object - IP信⽤等级数据,json格式,需解析
info[0].ip_credit.is_local enum ["yes","no"] 是否为私有IP
info[0].ip_credit.search_engine object - 搜索引擎IP信息
info[0].ip_credit.search_engine.status enum ["yes","no",""] 当前IP是否为健康的搜索引擎爬虫IP,"yes":健康的搜索引擎IP,"no":恶意的搜索引擎IP,"":不是搜索引擎IP
info[0].ip_credit.search_engine.name string - 具体的搜索引擎名称
info[0].ip_credit.is_near boolean [true,false] 内部临时数据,可忽略
info[0].ip_credit.addr array - IP地址信息
info[0].ip_credit.addr[0].province string - 省份
info[0].ip_credit.addr[0].city string - 城市
info[0].ip_credit.addr[0].district string - 地区
info[0].ip_credit.addr[0].country string - 国家
info[0].ip_credit.addr[0].location object - IP地理位置信息
info[0].ip_credit.addr[0].location.latitude float - IP的纬度
info[0].ip_credit.addr[0].location.radius float - IP覆盖范围半径,单位:KM
info[0].ip_credit.addr[0].location.longitude float - IP的经度
info[0].ip_credit.addr[0].idc string - 机房或网络运营商
info[0].ip_credit.addr[0].accuracy enum ["洲","国家","省","城市","区县","街道"] 地理位置的精确度
info[0].ip_credit.cache_at int - 内部临时数据,可忽略
info[0].ip_credit.export_score string - 内部临时数据,可忽略
info[0].ip_credit.ip string - 返回的IP,如果
info[0].ip_credit.credit object - IP信用数据
info[0].ip_credit.credit.user_count int [1-9] 人数范围标识:'1':'1','2':'2-5','3':'6-10','4':'11-30','5':'31-50','6':'51-100','7':'101-500','8':'501-2000','9':'2000+'
info[0].ip_credit.credit.office float [0-100] 当前IP为办公出口的概率
info[0].ip_credit.credit.family float [0-100] 当前IP为住宅出口的概率
info[0].ip_credit.credit.export_ip float [0-100] 当前IP为出口的概率
info[0].ip_credit.credit.person float [0-100] 当前IP为真人的概率
info[0].ip_credit.credit.dirty float [0-100] 当前IP的污点概率
info[0].ip_credit.credit.active float [0-100] 当前IP的活跃度
info[0].ip_credit.is_legal enum ["yes","no"] 传入IP是否符合语法标准
info[0].ip_credit.trend array - 威胁趋势
info[0].ip_credit.trend[0][0] int - 日期0点时间戳
info[0].ip_credit.trend[0][1] int - 记录数量
info[0].ip_credit.trend[0][2] enum ["low","medium","high"] 威胁等级
info[0].ip_credit.score int - 威胁分数
info[0].ip_credit.type dict - 历史威胁事件名称和计数的key-val对
info[0].ip_credit.latest array - 近期威胁事件记录
info[0].ip_credit.latest[0].timestamp int - 更新时间戳
info[0].ip_credit.latest[0].type string - 威胁事件名称
info[0].ip_credit.latest[0].loc string - 攻击源地理位置

说明:
在ATD中,当某IP的出口IP概率值(info[0].export_ip)大于60时,认为是出口IP。

2. response body数据样例

{
  "code": 0,
  "msg": "success",
  "data": []
}

字段解释:

字段名 类型 取值范围 解释
code int - 调⽤结果, 0表示成功,⾮0表示失败
msg string - 提示信息
data array - ⽤于返回结果数据,这⾥填空数组即可

3. 调用示例

说明:
1、在验证时,我们将向您发送如上样例的POST数据包;
2、如果在3秒内返回结果,并且(1)返回的数据为JSON格式;(2)code值为0,则将验证通过。

[root@bs203 ~]# curl http://172.18.1.203:8001/v1/firewall/action -d '
{
    "host": "demo.baishancloud.com",
    "info": [{
       "time_local": 1509379866, 
       "perspective_name": "ip", 
       "perspective_value": "210.45.137.29", 
       "ip": "210.45.137.29",
       "path": "/test/test.php", 
       "path_count": 1,
       "pv": 29, 
       "engine_type": "policy",
       "reason": "CC攻击",
       "url_pattern": "demo.baishancloud.com/test/test.php", 
       "expire": 1800,
       "score": 80,
       "action": "ban",
       "in_white_list": false,
       "country": "中国",
       "province": "安徽",
       "city": "淮北",
       "district": "相山区",
       "idc": "教育网", 
       "export_ip": 10,
       "ip_credit": "{\"is_local\": \"no\",\"search_engine\": {\"status\": \"\",\"name\": \"\"},\"is_near\": true,\"addr\": [{\"province\": \"安徽\",\"city\": \"淮北\",\"district\": \"相山区\",\"country\": \"中国\",\"location\": {\"latitude\": \"33.989607\",\"radius\": \"0.8171\",\"longitude\": \"116.820571\"},\"idc\": \"教育网\",\"accuracy\": \"街道级\"}],\"cache_at\": 1509379866,\"export_score\": \"60\",\"ip\": \"210.45.137.29\",\"credit\": {\"user_count\": 1,\"office\": 47.68,\"family\": 37.990000000000002,\"export_ip\": 10,\"person\": 10.01,\"dirty\": \"0.00\",\"active\": 0},\"is_legal\": \"yes\",\"trend\": [[1520218800, 2, \"low\"],[1520218800, 3, \"low\"]],\"score\": 90,\"type\": {\"撞库\": 3, \"爬虫\": 5},\"latest\": [{\"timestamp\": 1520218800, \"type\": \"爬虫\", \"loc\": \"上海\"}]}"
      }]
}
'
{
    "msg": "success", 
    "code": 0, 
    "data": []
}