接口以POST方式调用,body格式为json。
{
"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。
{
"code": 0,
"msg": "success",
"data": []
}
字段解释:
字段名 | 类型 | 取值范围 | 解释 |
---|---|---|---|
code | int | - | 调⽤结果, 0表示成功,⾮0表示失败 |
msg | string | - | 提示信息 |
data | array | - | ⽤于返回结果数据,这⾥填空数组即可 |
说明:
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": []
}