Skip to content

Latest commit

 

History

History
134 lines (109 loc) · 4.3 KB

执行动作使用文档.md

File metadata and controls

134 lines (109 loc) · 4.3 KB

执行动作使用文档

目前本产品支持的执行动作有发邮箱、调API接口以及自定义的方式。其中,邮箱和API接口方式的执行动作会调用我们封装好的执行方法。为了满足不同的应用场景,以及多元化执行动作,产品提供了自定义执行动作的方法。

执行事件结果说明

执行事件结果以payload作为数据字段,事件分为标准模式,智能模式以及高级模式,因而payload也存在标准模式,智能模式,高级模式,如下分别是三种模式的说明样例:

1、标准模式,字段请参考查询结果,示例如下:

payload: {
  "hits": {
    "total": 621,
    "hits": [
      {
        "_source": {
          "ip": "42.99.6.227",
          "city": "北京",
          "pv": 1,
          "province": "北京",
          "country": "中国",
          "reason": "危险UA",
        }
      },
      {
        "_source": {
          "ip": "63.98.15.27",
          "city": "休斯敦",
          "pv": 1,
          "province": "得克萨斯",
          "country": "美国",
          "reason": "危险UA",
        }
      },{
        "_source": {
          "ip": "41.99.19.185",
          "city": "奥兰",
          "pv": 1,
          "province": "奥兰",
          "country": "阿尔及利亚",
          "reason": "危险UA",
        }
      },
      ......
    ]
  },
  "aggregations": {
    "unique_count_perspective_value": {
      "value": 275
    }
  }
}

2、智能模式,字段示例如下:

payload: [{
    field: "avg_body_bytes_sent",
    label: "平均后端响应长度",
    result: "突增",
    domain: "a.com"
}, {
    field: "avg_request_time_s",
    label: "平均请求时间",
    result: "突减",
    domain: "b.com,c.com"
}] 

3、高级模式,执行事件结果由高级模式触发函数的返回值决定。具有高度的自定义性。 即高级模式的触发结果返回值即为该执行动作的payload。

动作结果的输出样例

发邮件&调用API接口

对于系统支持的发送邮件和调用API接口的这两种方式,支持动态获取实际数据。在邮件正文和API接口中,事件触发的结果用payload表示,payload存在以下两种常用格式化方式输出到邮件正文或API接口数据(以上述标准模式样例为例):

1、可直接获取结果 对于可直接获取的结果,可用{{}}包裹获取,{{}}包裹内容为key的取值,若没有匹配的内容,则显示"",有对应该key的value则显示value。

输入内容:

    危险UA的条数是:{{payload.hits.total}}条

输出内容:

    危险UA的条数是:621条

2、在对象数组内的结果 对于想获取对象数组内的值,可用{{#obj_key}}{{value}}{{/obj_key}}包裹,{{value}}的前后可加符号进行分割。在此需要注意obj_key代表需要循环获取目标内容的数组的key,并且对于数组的循环以#代表开始,以/代表结束,每个数组元素输出结果单独一行。

输入内容:

    威胁UA的IP列表信息:<br/>{{#payload.hits.hits}}IP:{{_source.ip}} city: {{_source.city}} {{/payload.hits.hits}}<br/>总计有{{payload.hits.total}}条记录

输出内容:

    威胁UA的IP列表信息:
    IP:42.99.6.227 city:北京
    IP:63.98.15.27 city:休斯顿
    IP:41.99.19.185 city:奥兰
    ......
    总计有621条记录

更多有关对结果payload数据的解析方式可以参考如下链接文档

https://github.com/janl/mustache.js#variables

自定义执行动作

自定义执行函数需要定义一个执行函数,支持JavaScript语法。

执行函数参数

该函数的输入参数是执行事件结果说明中的payload

执行函数主体

在函数内,可根据payload,自定义不同情况下的执行动作。 目前产品内支持多种封装后的操作函数,包括:

  1. 可进行接口请求的fetchData(url, method, headers, body)
  2. 可进行邮件发送的postEmail(mailData, SMTPConfig, callReady, callError)
  3. 可进行临时存储的CacheStorage
  4. 时间处理可使用moment()

......

具体使用方式可参考《高级计算模式的策略设置》内的Q&A。

https://github.com/yunjuhe/atd/blob/master/%E9%AB%98%E7%BA%A7%E8%AE%A1%E7%AE%97%E6%A8%A1%E5%BC%8F%E7%9A%84%E7%AD%96%E7%95%A5%E8%AE%BE%E7%BD%AE.md