跳到主要内容
版本:v1.5.3

使用手册

1 安全概览

安全概览 页面以数据日志的形式展示了瑞数云检测到的安全数据,帮助管理员对业务的访问情况进行监测和管理。

看板页面展示了 JS 探针的运行状态以及访问业务的客户端相关数据。通过顶部的时间配置选项可以选定需要查看的时间段,选定后单击 搜索 即可。

  • 检测回传次数:展示了瑞数云在时间范围内的收到的与检测相关的请求总数。

  • 业务请求量:展示了访问站点的客户端请求数量。

  • 业务请求IP数:展示了访问站点的客户端的 IP 地址数量。

  • Bot识别数量:展示了 JS 探针检测并判定为自动化工具发出的请求总数。

  • JS探针下载次数:展示了 JS 探针在客户端被下载运行的次数。

  • 探针侦测请求次数:展示了探针 JS 在客户端运行时主动上报给瑞数云检测服务的请求总数。

  • 业务请求判定分布:以饼图的形式展示了瑞数云针对客户端请求的检测结果分类占比。

  • Bot检出类型分布:以饼图的形式展示了瑞数云识别到的使用的自动化工具(如扫描器、自动化爬取工具)占比。

  • 浏览器客户端类型分布:以饼图的形式展示了识别到的不同类的浏览器客户端的分布情况。

  • 站点流量分布:展示了连接不同站点配置 ID 的站点资源(例如反向代理服务器上的 server 或者 location)的访问量占比。

  • 业务访问量时间图:展示了指定时间段内访问站点的客户端总请求量和异常请求量曲线。

  • 业务流量请求排行榜:展示了站点路径的排行榜,,默认按照请求次数从高到低排序。

  • JS探针运行路径排行榜:展示了运行了 JS 探针的 referer 路径排行榜,默认按照运行次数从高到低排序。

  • 业务请求IP分布:展示了源 IP 的排行榜,默认按照请求次数从高到低排序。

2 日志管理 - 搜索

日志管理菜单下的 搜索 页面提供了查看触发日志、原始日志、检测日志和访问日志的入口,如下图所示。

选择日志 下拉菜单中选择需要查看的日志名称,即可在右方页面中看到日志详情。

  • 触发日志 中包含了风控安全规则的触发记录。

    💡   提示:

    购买了风控安全模块后,下拉菜单中才会显示触发日志选项。

  • 原始日志 中包含了来自 TCP 日志源和 KAFKA 日志源的原始日志信息。

    💡   提示:

    购买了风控安全模块后,下拉菜单中才会显示原始日志选项。

    原始日志页面默认没有任何日志,需要手动创建相应的 TCP 或 KAFKA 日志源,并通过 TCP 端口发送日志或通过 KAFKA 消费日志,才能在原始日志中看到接收的日志。请参考 3.2 日志配置 小节的内容了解详细的配置方法。

  • 检测日志 中包含了浏览器端探针回传数据的请求记录。

  • 访问日志 中包含了所有业务请求的记录,即已配置站点 ID 的网关上所转发过来的访问日志。

    💡   提示:

    系统会默认为每个站点 ID 生成一个名称中带有该 ID 号的访问日志,以作区分。

    请参考 3.1 站点配置 小节的内容来了解站点 ID 的创建,并参考 接入指南 中介绍的接入方法来实现网关上的站点 ID 配置。完成 ID 创建和网关配置后,即可在 日志管理 > 搜索 页面中 选择日志 下拉菜单内选择该访问日志,查看被保护站点的访问记录。

通过页面左上角的 新增过滤 按钮可以实现仅显示包含指定字段的日志。通过页面右上角的时间配置项可以显示指定时间段内的日志。

💡   提示:

关于日志中的常用字段及其含义,请参考 附录1 字段列表

如果需要针对具体的业务需求定制日志,请通过 附录 6 中的信息联系我们。

3 配置管理

配置管理菜单包含了站点配置、事件管理和日志配置三个用于基础配置的子菜单。

  • 站点配置:用于创建和管理不同的安全防护方案。每个方案拥有一个独立的 ID 号,称为站点配置 ID。

    将该 ID 配置到网关上(请参考 接入指南 中介绍的接入方法来实现网关上的站点 ID 配置),就能够将该防护方案应用到该网关的访问流量上。

    请阅读 3.1 站点配置 小节的内容了解详细的配置方法。

  • 日志配置:用于为更多的日志输入源创建日志解析配置(瑞数云自带一个默认的访问日志解析配置)。

    通过创建新的日志解析配置,瑞数云可以解析基于 TCP 协议接收的日志(例如通过 Linux 系统的 rsyslog 模块发送的日志)、或者解析从 KAFKA 节点上消费的日志,从而能够在 日志管理 > 搜索 页面中进行查看和作为事件的日志源使用。

    请参考 3.2 日志配置 小节的内容了解详细的配置方法。

  • 事件管理:用于创建和管理不同的事件。当一条日志中某一个或多个字段的值符合预期,则被视为发生了一个事件。因此,一个事件的发生在本质上是指 “日志中的某一个或多个字段的值,与事件中对这一个或这些字段值的描述相符” 。

    事件管理页面中处于启用状态的事件可以用于创建风控安全规则(请参考 4.2 风控安全规则)。当规则中引用的一个或多个事件发生时,则触发该规则,并执行规则中指定的动作(例如阻断访问者的后续访问),从而实现安全防护。

    请阅读 3.3 事件管理 小节的内容了解详细的配置方法。

💡   提示:

以上三个配置菜单之间存在着相互依赖的关系。

① 每创建一个新站点 ID,会自动生成一个名称中包含该 ID 的访问日志配置。

② 该 ID 所在的网关传来的日志,将由这个访问日志配置来进行解析,并将解析后的日志显示在搜索页面中。

③ 解析后的日志,可以被指定作为一个或多个事件的日志源。这样,瑞数云就能够基于事件中的字段值描述来对这个日志源中的字段值进行检查,以判断是否发生了该事件。

3.1 站点配置

站点配置 页面用于制定和保存不同的安全防护方案。这些方案包含了防护机制的详细配置,其中包括瑞数云运行模式、WEB 防护配置、WEB 字段提取等。

通过在服务器网关的配置文件中引用某个站点配置的 ID 号,实现对不同的上游服务器采用不同的防护方案,也可以针对同一个上游服务器快速切换防护方案,以适应不同的安防需求。

站点配置 页面中单击 创建站点配置 将会弹出站点配置编辑窗口。以下内容将针对窗口中的各个配置项进行详细讲解。

💡   提示:

站点配置页面的右上角提供了 下载插件 按钮,用于下载瑞数云的插件文件。

采用无插件接入的情况下,以下站点配置项中仅 “令牌 cookie 名称、身份 cookie 名称、浏览器特征检测、获取源 IP” 能够生效。

3.1.1 配置名称

管理员通过配置名称对不同的站点配置进行区别和管理。不同的配置之间不能使用相同的名称。并且每个配置都会在创建完成后,自动分配一个 ID,以便在服务器网关中引用该 ID。

3.1.2 运行模式

瑞数云可以工作在三种模式下。

选择 透传 模式时,配置窗口不提供任何配置选项。

该模式下,瑞数云所有的安全机制都停止工作,不会对流量执行任何安全检查,仅记录日志。

选择 监控 模式时,配置窗口会提供包括探针 JS、动态令牌、例外配置、检测配置等选项。

该模式下,瑞数云不会对异常流量进行拦截,但会进行安全检查并记录日志。

选择 拦截 模式时,配置窗口中除了包含 监控 模式下的所有选项,还增加了拦截相关的配置。

该模式下,瑞数云会对异常流量进行拦截,并同时记录日志。

3.1.3 详细配置

当选择 监控 或者 拦截 时,窗口会展示更多的配置项,以下内容将对这些配置项进行详细解释。

💡   提示:

拦截模式下窗口会显示所有可用的配置项,其中包括了监控模式下的配置项,因此以下将以拦截模式为例进行讲解。

▶ 黑白名单配置标签(仅限监控或拦截模式)

该标签下的配置项通过名单的形式来实现对指定路径和源IP的例外处理方式。默认为没有例外,即对所有请求都会进行检查。

  • 名单模式

    • 检查所有请求:选中该选项时,系统会对所有路径和源IP的请求进行安全检查。此时 启用路径名单启用IP名单 选项不可用。

    • 仅检查以下请求:选中该选项时,只有请求路径匹配路径名单(如果已启用)的请求、或者源 IP 匹配 IP 名单(如果已启用)的请求才会被瑞数云检查。如果两个名单都没有启用,则会透传所有请求。

    • 仅透传以下请求:选中该选项时,只有请求路径匹配路径名单(如果已启用)的请求、或者源 IP 匹配 IP 名单(如果已启用)的请求才会被瑞数云透传。如果两个名单都没有启用,则会检查所有请求。

  • 启用路径名单

    启用后,填写请求路径,每行一条路径。例如 / 表示被保护站点根目录,即对该站点的所有路径的请求生效。/login.html 表示仅对该站点下的这一个路径的请求生效。

  • 启用IP名单

    启用后,填写源 IP。每行填写一个。例如 0.0.0.0/0 表示对所有源 IP 的请求生效。10.10.10.10 表示对源 IP 为 10.10.10.10 的请求生效。

💡   注意:

路径名单和 IP 名单选项之间为逻辑或的关系。

如果仅需要指定路径名单或者 IP 名单,请禁用另一个名单,以免其默认值造成干扰。

▶ WEB防护配置标签(仅限监控或拦截模式)

该标签下的配置项针对的是 Web 端的安全防护。

  • 动态令牌(仅限监控或拦截模式)

    用于配置令牌 Cookie名称、身份 Cookie 名称和过期时间(默认 60 秒)。当动态令牌过期后客户端再次请求时,服务器端会要求客户端重新下载探针 JS。探针 JS 只能在真实的浏览器中运行并从瑞数云获取新的 Cookie令牌,从而防止了非法客户端访问站点。

    建议保持默认即可。

  • 拦截功能(仅限拦截模式)

    提供了拦截相关的几种配置。

    • 拦截响应状态码

      设置发生拦截操作时(例如请求触发了某个规则而被拦截),返回给客户端的响应码。建议保持默认 400 即可。

    • 拦截响应内容

      设置发生拦截操作时(例如请求触发了某个规则而被拦截),返回给客户端的页面内容。建议保持默认即可。

    • 重载校验状态码

      设置当需要客户端重新发起请求时(例如请求未包含合法令牌或令牌已过期)的返回码。建议保持默认 412 即可。

    • 重载响应内容

      设置当需要客户端重新发起请求时(例如请求未包含合法令牌或令牌已过期)返回的页面内容。建议保持默认即可。

  • 检测配置(仅限监控或拦截模式)

    • 浏览器特征检测

      该开关用于启用/禁用检测服务中对浏览器特征的检测。启用时,检测服务可以检测到由自动化工具(如 Webdriver)发起的请求,并且拒绝这些请求的访问。禁用时,检测服务则不会进行相应的检测和请求拦截。

    • 查询威胁情报库

      威胁情报库用于暂时保存恶意访问端的信息,例如源 IP 和 机器指纹。

      当某个访问端触发了某条风控安全规则(请参考 4.2 风控安全规则 小节的内容),如果该规则的执行动作为阻断 IP 地址 或 阻断设备 300 秒,该访问端的 IP 或 机器指纹将被保存到威胁情报库中,有效期为 300 秒。

      查询威胁情报库启用的前提下,该访问端在之后的 300 秒内将无法继续访问该规则关联的防护站点(即该规则所在页面顶部选定的防护站点,请参考 4.2 风控安全规则 小节的内容)。

    • 隐藏服务器信息

      该开关启用时,响应中包含的服务器信息会被隐藏。禁用时,响应中包含的服务器信息以明文显示出来。

    • 获取源 IP

      该配置项用于指定检测服务如何获取源 IP(src_ip值),以便进行数据统计。

      下拉菜单中提供了四种获取请求源 IP 的方式:

      X-Real-IP 表示将请求头中的 X-Real-IP 字段的 IP 作为源 IP 地址;

      X-Forwarded-For 选项被选中时,下拉菜单包含 “最左”、“过滤” 和 “最右” 三个选项,最左和最右两个选项分别指采用 X-Forworded_For 字段中的最左边、或者最右边的 IP 作为源 IP。选中 “过滤” 时,会显示一个额外的名为 “源 IP 可信来源” 的配置框,用于填写反向代理服务器之前的所有代理转发节点的 IP。瑞数云会将 X-Forwarded-for 字段中的每个 IP 从右到左依次与 “源 IP 可信来源” 配置框中的 IP 地址比对,当出现第一个无法与该字段中的任何 IP 匹配的地址时,即作为源 IP 地址,从而避免将转发节点的 IP 误作为源 IP。

      默认 表示将与检测服务直接建立连接的对端 IP 作为该请求的源 IP 地址;

      自定义 表示从指定的请求头字段中获取源 IP 地址。

▶ WEB字段提取(仅限监控或拦截模式)

该标签的配置项用于指定登录时页面的一些特征字段(即 DOM 对象的 queryselector() 方法支持的元素属性,例如页面元素的 ID 号以 #id 的模式填写),以便帮助瑞数云解析终端用户的登录信息,例如用户名、是否登录成功,并显示在日志里。

  • 启用账户提取(启用时 WEB 字段提取功能生效)

    • 登录页面路径

      填写登录页面的路径,瑞数云会在该路径的页面中查找下面指定的各个页面元素。

    • 登录输入框特征

      将登录页面上用户名输入框元素的某个属性,以 DOM 对象的 queryselector() 方法支持的方式填写到文本框中 ,例如登录用户名输入框的 ID 值为 "uid", 那么就填写 #uid。瑞数云会自动在登录页面中查找该元素中包含的用户名,并将其放入日志中的 account 字段。

    • 登录成功信息特征 和 登录成功信息内容

      登录成功后,找到页面上的提示文本所在的元素,并找到该元素的某个属性和内容。将该属性和内容以 DOM 对象的 queryselector() 方法支持的方式填写到文本框中。例如登录成功后页面显示文本 Congratulations,并且该文本所在元素的 ID 值为 _ctl0__ctl0_Content_Main_promo,则在 登录成功信息特征 中填写 #_ctl0__ctl0_Content_Main_promo,并且在 登录成功信息内容 中填写 Congratulations。瑞数云会自动在登录成功的页面中查找你指定的元素,当该元素的内容成功匹配文本 Congratulations 时,就会在日志中的 login_status 字段中写入 2,表示登录成功。

    • 登录失败信息特征 和 登录失败信息内容

      登录失败后,找到页面上的提示文本所在的元素,并找到该元素的某个属性和内容。将该属性和内容以 DOM 对象的 queryselector() 方法支持的方式填写到文本框中,例如登录失败后页面显示文本 Login Failed,并且该文本所在元素的id值为 “_ctl0__ctl0_Content_Main_message”,则在 登录失败信息特征 中填写 #_ctl0__ctl0_Content_Main_message,并且在 登录失败信息内容 中填写 Login Failed。瑞数云会自动在登录失败的页面中查找你指定的元素,当该元素的内容成功匹配文本 Login Failed 时,就会在日志中的 login_status 字段中写入 1,表示登录失败。

💡   提示:

当瑞数云无法成功匹配 “登录成功信息特征” 和 “登录失败信息特征” 时,会在日志中的 login_status 字段中写入 0,表示非登录行为。

站点配置列表右方操作栏中为每个站点配置提供了编辑、删除、复制按钮。

配置完成后单击配置窗口的 保存 按钮即可。

保存成功后,可以在站点配置页面中看到包括该站点配置 ID 号在内的信息。将站点配置的 ID 写入反向代理服务器(网关)的配置文件中,并完成一系列的配置工作,即可实现基于该站点配置的防护措施(请参考 接入指南 页面中插件版相关文档内指令集的内容)。

3.2 日志配置

💡   提示:

日志配置菜单仅在购买了 风控安全模块 后,才会显示出来。

日志配置是一系列与日志解析有关的设定,用于解析原始日志中的数据,从而生成具有更高可读性的日志。解析后的日志可以在 日志管理 > 搜索 页面中查看。

💡   例如:

原始日志中存在字段 address:10.10.10.10,其中包含了客户端源 IP。通过日志配置的解析,可以指定将该字段映射到指定的新字段名(比如 src_ip),最终就可以在 日志管理 > 搜索 页面中查看这个新字段 src_ip,字段值为 10.10.10.10。

已建立的日志配置,可以在事件编辑窗口中 日志源 下拉菜单中找到,以便作为该事件要监听的日志源。

日志配置页面中可以查看和管理当前所有的日志解析配置。日志配置按照生成方式分为两种类型:系统为每个站点配置默认生成的 访问日志配置,和手动创建的 自定义日志配置

  • 访问日志配置 会在每个新的站点配置创建后自动生成,且配置名称中包含了该站点配置的名称。

    当站点配置的 ID 号按照 接入指南 中的方法配置到网关的某个访问路径后,所有通过该网关访问这条路径的日志都会由该访问日志配置进行解析。然后在 日志管理 > 搜索 页面中的 选择日志 下拉菜单中,选择相同名称的访问日志配置,即可查看日志。

    访问日志配置中的设定不能修改,仅允许查看和复制。

    单击任意访问日志操作栏中的 查看 按钮,可以查看该日志配置的详情页面。

    单击访问日志操作栏中的 复制 按钮,可以复用该日志配置中的设定,从而快速创建基于 TCP 或 KAFKA 的自定义日志配置(前提是访问日志配置中的设定可适用于将要解析的 TCP 或 KAFKA 日志)。

  • 自定义日志配置 可以通过单击页面左上角的 新建 按钮来创建。但自定义日志配置仅针对基于 TCP 协议接收的日志进行解析、或者针对 KAKFA 消息系统传来的日志进行解析。

    自定义日志配置不仅允许复制和查看,而且增加了编辑和删除选项。但在对已保存的配置进行重新编辑时,不能对已添加的字段配置区进行修改,也不能新增字段配置区。

    下载证书 链接为 TCP 日志配置独有的选项。不同的 TCP 解析日志会生成独立的证书。该证书存放到发送日志的主机上,可以在传输日志时建立数据通信链路。

以下内容将对自定义 TCP 和 KAFKA 日志配置的方法进行介绍。

3.2.1 自定义TCP日志配置

瑞数云接收 TCP 日志的接口为 detector.riveryun.com:5514。在完成 TCP 日志配置的创建后,将该配置对应的证书配置到原始日志所在的系统中,即可实现日志传送。

通过管理界面侧边栏的 日志配置 进入日志配置列表,单击左上角的 新建 按钮,开始创建 TCP 日志配置。

  • 配置名称:为当前日志配置填写一个名称,例如 “TCP日志解析配置”。

  • 配置方式:选择 TCP 单选项。

  • 模板类型:模板类型是指瑞数云接收到的日志格式类型。plain_text 单选项表示将要接收到的日志为纯文本格式,例如:

    Jan  1 10:12:09 ubuntu info daemon [1]:  Started Session 1197 of user ubuntu.

    json 单选项表示将要接收到的日志为 JSON 格式,例如:

    {"timestamp":"2023-01-01 10:12:09","message":" Started Session 1197 of user ubuntu.","host":"ubuntu","severity":"info","facility":"daemon","procid":"1"}
  • 时间配置当前时间 表示将收到日志的那一刻作为最终显示的日志时间;日志抽取 表示从收到的日志内容中抽取时间信息,作为最终显示的日志时间。在解析后的日志中,日志时间将保存在默认字段 _timestamp 中。

    当选择 日志抽取 时,会显示额外的配置项,用于描述收到的日志中的时间数据格式信息,以便瑞数云能够正确地抽取到日志中的时间。

    • 时间格式 下拉菜单提供了一个预先定义的常见日志时间格式 YYYY-MM-DD hh:mm:ss。如果将要接收的日志数据中,时间数据格式恰好与该选项匹配(例如 2022-12-30 10:12:09),则可以直接选择该选项。

      针对其他时间格式(例如 Jan  1 10:12:09),则可以在时间格式下拉菜单中选择 自定义时间,如下图所示。

      在自定义时间文本框中输入将要接收的时间格式,例如 Jan  1 10:12:09 则输入 MMM DD hh:mm:ss。

      💡   提示:

      在以上时间格式实例中,M表示月份。月份采用三个字符,则填写MMM,并且 Jan 后面存在一个空格,则相应的在 MMM 后面留一个空格。同理,DD 表示天,采用两个字符(包括 1 前面的一个空格),hh:mm:ss分别表示时分秒。

      无论输入的时间格式采用年月日、或月日年、或其他顺序,解析后写入默认字段 _timestamp 中的时间都将以年月日的顺序呈现(例如 _timestamp":"2023-01-01 10:12:09.000")。

      当前版本的时间解析精度仅精确到秒。无论日志时间中是否存在毫秒(例如解析前 10:12:09.123),解析后毫秒的部分都会以 000 代替(例如解析后 10:12:09.000)。

    • 时间字段 文本框中需要填写的内容由 时间配置 的选项决定。

      当时间配置选择了 plain_text,则需要基于纯文本日志中的时间数据填写相应的正则表达式。例如收到的纯文本日子的时间数据为 Jan  1 10:12:09,则填写 \w{3}\s[\s|\d]\d\s\d{2}:\d{2}:\d{2} 去匹配这段数据。

      当时间配置选择了 json,则可以直接填写日志中存储时间的字段名。例如收到的 JSON 日志中的时间数据为 {"logging_time":"2023-01-01 10:12:09"},则填写 logging_time 即可。

  • 字段配置:字段配置主要用于对日志中除时间数据外的其他数据进行解析。

    💡   提示:

    当然,如果 时间配置 选择了 当前时间,也可以在这里单独对日志中的时间添加一个解析配置。

    开始字段配置之前,先把一条日志复制粘贴到页面右方的样本数据中,可以在配置的过程中实时解析样本日志,起到检验配置是否正确的作用(实时解析功能需要将新建的任意一个字段配置设定为 必要字段 来激活)。

    当模板类型为 plain_text 时,将显示如下图所示的配置按钮。

    • 添加正则抽取

      通过了单击 添加正则抽取 按钮,可以在下方新增一个字段抽取配置区。

      • 字段名称:填写一个字段名。解析出来的字段值将保存在该字段名中。在解析后的日志里将会看到该字段名和字段值。

      • 字段类型:指定字段解析后的数据类型。可选项包括 字符串整型浮点数

      • 正则表达式:填写用于匹配目标数据的正则表达式。

        # 例如需要对以下日志内容中的第一个 ubuntu 进行匹配

        Jan 1 10:12:09 ubuntu info daemon [1]: Started Session 1197 of user ubuntu.

        # 填写以下正则表达式。小括号表示将括号中匹配到的数据放入分组中保存。分组序号也就是抽取位置。
        # 这里只有一对小括号,即放入第 1 个分组保存,因此下方的抽取位置配置项应该填写 1

        (\w{6})\s\w{4}
      • 抽取位置:填写正则表达式匹配的数据所保存的分组号码。如以上范例中需要的分组数据为 1,则填写 1。

      • 是否必要:表示当前字段是否是必要字段。启用该选项后,如果接收的日志中的数据无法与正则表达式成功匹配,则认为必要字段不存在,这条日志将会被丢弃。日志管理 > 搜索 页面中的当前日志配置名称下将无法看到该日志。

        💡   提示:

        一个日志配置中至少需要有一个必要字段。

    • 重点字段

      重点字段配置用于将 字段名称 中配置的字段映射到 IP设备用户、以及 自定义字段 中的相应字段,从而可以在风控安全规则的执行动作中,将该字段指定为目标对象(请参考 4.2 风控安全规则 小节的内容)。

      💡   注意:

      目前系统仅支持针对 IP设备 的拦截。在配置 TCP 或 KAFKA 日志配置的重点字段时,手动将包含源 IP 的字段映射到 IP, 包含fingerprint 的字段映射到 设备即可。

      系统自动生成的各个访问日志配置中已经对重点字段进行了映射。访问日志中的 src_ip 字段被自动映射到重点字段 IP、fingerprint 字段被自动映射到重点字段 设备

      单击 重点字段 按钮,进入如下图所示的编辑界面。

      从下拉菜单中选择需要映射的字段,然后单击 保存 即可。

      💡   注意:

      通过编辑已有的日志配置来增加重点字段时,除了单击重点字段配置窗口的 确定 按钮,还需要再次单击日志配置编辑页面底部的 保存 按钮。

    当模板类型为 json 时,将显示如下图所示的配置按钮。

    除了 添加正则抽取重点字段 按钮(请参考上面 Plain_text 模板类型下的介绍内容),json 模板类型下还另外提供了 添加正则抽取快速添加 两个按钮。

    • 快速添加

      快速添加 按钮用于从一条 JSON 日志范例中快速抽取出字段,并自动添加到配置中。该按钮只有在编辑页面右方的 样本数据 中粘贴了日志范例后,才会转变为可用状态。

      例如,将以下的一条日志范例复制粘贴到样本数据文本框中。

      {"timestamp":"2023-01-01 10:12:09","message":" Started Session 1197 of user ubuntu.","host":"ubuntu","severity":"info","facility":"daemon","procid":"1"}

      按钮会变成蓝色可用状态。单击该按钮即可针对当前日志范例中的所有字段自动生成相应的字段配置区,如下图所示。

      💡   注意:

      请在快速生成配置后,检查每个配置区的 字段类型,如上图红框所示。系统会自动判断样本数据中各个字段的类型,然后作为默认的解析输出类型填写到字段类型中。如果希望输出不同的字段类型,请进行手动修改即可。

    • 添加自动抽取

      如果不需要对 JSON 日志中所有字段进行抽取,则可以单击该按钮,添加如下图所示的配置区,手动指定要抽取的字段。

      • 字段名称:填写一个字段名。解析出来的字段值将保存在该字段名中。在解析后的日志里将会看到该字段名和字段值。

      • 字段来源:填写 JSON 日志中需要解析的字段名。解析出来的字段值将保存在上面输入的字段名称中。

      • 字段类型:指定字段解析后的数据类型。可选项包括 字符串整型浮点数

      • 是否必要:表示当前字段是否是必要字段。启用该选项后,如果接收的 JSON 日志中不存在 字段来源 中指定的字段名,则认为必要字段不存在,这条日志将会被丢弃。日志管理 > 搜索 页面中的当前日志配置名称下将无法看到该日志。

        💡   提示:

        一个日志配置中至少需要有一个必要字段。

  • 启用情报库查询:启用该配置项后,解析出来的日志中的 src_ipuser_agent 字段将会与情报库中的数据进行匹配。当匹配成功时,则会将比对结果写入字段 _intelligence_result。该字段为 JSON 数据,其中包含多个子字段,可以在单事件中作为条件内的可选字段使用。(请参考 3.3.2 新建单事件 小节的内容)

    💡   注意:

    如果需要启用情报库查询,请确保当前日志配置解析后的日志中存在 src_ip 和 user_agent 字段,否则无法达到情报匹配的实际效果。

配置完成后,可以先通过配置页面右方的 样本数据 区域查看当前配置是否正确有效,然后再保存配置。

# 例如样本数据

{"timestamp":"2023-01-01 10:12:09.000","facility":"daemon","host":"ubuntu","message":" Started Session 1197 of user ubuntu.","procid":1,"severity":"info"}

# 解析成功的结果

{"_timestamp":"2023-01-01 10:12:09.000","facility":"daemon","host":"ubuntu","message":" Started Session 1197 of user ubuntu.","procid":1,"severity":"info"}

# 解析错误的结果

{"_timestamp":"2023-01-01 10:12:09.000","facility":"ubuntu","host":"ubuntu","message":" Started Session 1197 of user ubuntu.","procid":1,"severity":"ubun"}

# 解析失败的结果

必要字段不允许为空: host

新建 TCP 日志解析配置并保存后,在日志配置页面中找到该配置对应的 下载证书 链接,将证书文件配置到发送日志的主机上来建立发送主机与瑞数云之间的日志传输链路。瑞数云会将接收并解析后的日志写入 日志管理 > 搜索 页面中该日志配置的名称下。

💡   提示:

附录 4 针对从 Ubuntu 系统发送 TCP 日志并解析的场景提供了一个参考例子。如果以其他操作系统作为发送源,请相应地参考这些操作系统对于 TCP 日志发送的官方介绍。

3.2.2 自定义KAFKA日志配置

在完成 KAFKA 日志配置的创建后,瑞数云将自动从配置中指定 KAFKA 节点获取实时日志数据。

通过管理界面侧边栏的 日志配置 进入日志配置列表,单击左上角的 新建 按钮,开始创建 KAFKA 日志配置。

  • 配置名称:为当前日志配置填写一个名称,例如 “KAFKA日志解析配置”。

  • 配置方式:选择 KAFKA 单选项。

  • KAFKA地址:填写 KAFKA 节点的 IP 地址或域名。

  • KAFKA主题:填写 KAFKA 节点上获取数据时使用的 Topic 名称。

  • 账号:可选填的配置项。如果 KAFKA 节点要求身份验证,请输入正确的账号名称。

  • 密码:可选填的配置项。如果 KAFKA 节点要求身份验证,请输入正确的密码。

  • 模板类型:模板类型是指瑞数云接收到的日志格式类型。plain_text 单选项表示将要接收到的日志为纯文本格式,例如:

    Jan  1 10:12:09 ubuntu info daemon [1]:  Started Session 1197 of user ubuntu.

    json 单选项表示将要接收到的日志为 JSON 格式,例如:

    {"timestamp":"2023-01-01 10:12:09","message":" Started Session 1197 of user ubuntu.","host":"ubuntu","severity":"info","facility":"daemon","procid":"1"}
  • 时间配置

    💡   提示:

    KAFKA 日志配置与 TCP 日志配置中的时间配置方法相同,请参考 3.2.1 自定义TCP日志配置 小节中对时间配置的介绍。

  • 字段配置:字段配置主要用于对日志中除时间数据外的其他数据进行解析。

    💡   提示:

    KAFKA 日志配置与 TCP 日志配置中的字段配置方法相同,请参考 3.2.1 自定义TCP日志配置 小节中对字段配置的介绍。

  • 启用情报库查询

    💡   提示:

    请参考 3.2.1 自定义TCP日志配置 小节中对启用情报库查询的介绍。

新建 KAFKA 日志解析配置并保存后,在相应的 KAFKA 节点上写入日志,瑞数云将会自动从该节点读取和解析日志,并写入 日志管理 > 搜索 页面中该日志配置的名称下。

💡   提示:

附录 5 针对从 KAFKA 节点获取和解析日志的场景提供了一个参考例子。

3.3 事件管理

💡   提示:

事件管理菜单仅在购买了 风控安全模块 后,才会显示出来。

用于创建和管理不同的事件。当一条或多条实时日志中某一个或多个字段的值符合预期,则被视为触发了一个事件。因此,一个事件的触发在本质上是指 “在接收实时日志流的过程中,出现某一个或多个字段的值,与事件中对这一个字段值或这些字段值的描述相符” 。

💡   注意:

事件触发的前提是基于实时日志流,即当前正在接收的日志才有可能触发事件。新建的事件不会因为已经接收保存的历史日志而触发。

可以在 日志管理 > 搜索 页面中选择 触发日志,并在 triggered_events 一栏查看已触发的事件。

3.3.1 预置事件

事件管理页面中包含了多条默认的预置事件。

瑞数云在事件管理页面中预先提供了一系列常用的事件。如果需要在创建规则时引用这些事件,请将事件的状态改为启用。

💡   注意:

预置事件默认禁用,并且未选择日志源。这时单击某个事件的启用按钮,会自定进入该事件的编辑界面,要求手动选择日志源(请参考 3.2 日志配置 小节的内容来了解日志源),然后再尝试启用事件。

单击操作一栏中的 编辑,可以对事件进行修改。单击 查看,可以了解事件的详细配置。单击 复制, 可以复制当前事件内容,以便快速创建新事件。单击 删除,可以删除当前事件。

💡   注意:

已删除或修改的预置事件的无法恢复,请谨慎操作。

如果需要自定义事件,可以通过单击 新建 按钮来进行创建。自定义事件根据事件类型分为单事件和组合事件两大类。下面的内容将针对这两种事件类型的创建进行介绍。

3.3.2 新建单事件

单事件 类型用于创建一个单一事件,其中仅包含对一个事件的描述。

单击事件管理页面左上角的 新建 按钮,进入新建事件配置页面,并在 事件类型 菜单中选择 单事件。如下图所示。

单事件类型下分为 简单事件数值统计事件去重统计事件平均统计事件CEP事件,以适应不同的场景。

请根据以下对各个单一事件的介绍来选择一个适合的事件。


▶ 简单事件

简单事件是所有事件中最基本的事件。它直接描述了如何检查当前事件的指定日志源中的字段。

💡   提示:

简单事件是最小的单位事件。它既可以在创建规则时直接引用,也可以在其他事件中作为描述内容之一(例如在数值统计事件中作为触发事件用于过滤日志)。

💡   配置范例解读:

上图中的范例所描述的内容为:

监视日志源 “访问日志”,当某一条日志中,字段 request 的值的一部分或全部与正则表达式 login.jsp 相匹配、或者字段 src_ip 的值与字符串 10.10.10.10 完全匹配,则视为该事件被触发一次。

  • 事件名称:为新事件输入一个名称。事件的名称不能与已有的事件名称重复。

  • 日志源:为事件指定一个或多个日志源。该日志源包含的字段、或者多个日志源的交集字段将作为事件中的待选字段。

    💡   提示:

    系统默认为每个站点配置 ID 建立了一个对应的访问日志源,其名称中带有对应的站点配置 ID 号,可直接选择使用。如果需要创建自定义日志源,请参考 3.2 日志配置 小节的内容来创建日志源

    指定多个日志源时,待选字段为各个日志源之间的交集字段。例如,日志源 A 中存在字段 src_ip、referer、user_agent,而日志源 B 中存在字段 src_ip、request、host,则待选字段只有 src_ip 一个。

  • 事件类型:从下拉菜单中选择单事件类型。

  • 触发类型:从下拉菜单中选择简单事件。

  • 条件关系:填写后面的一个或多个条件之间的逻辑关系。支持逻辑与 - 运算符号 &、逻辑或 - 运算符号 |、逻辑非 - 运算符号!、以及小括号 ()。

    例如填写 “a|b”,表示后面有 a 和 b 两个条件,并且条件 a 和条件 b 之间的关系为逻辑或。仅存在条件 a,则填写 a 即可。

  • 条件配置区:提供了 4 个配置项,例如上图中的条件 a 的配置区。按照从左到右、从上到下的顺序依次为:

    1. “选择目标字段” 下拉菜单用于从当前日志源的待选字段中指定一个要检查的字段,例如 request。

    2. “选择过滤类型” 下拉菜单提供了 字符串匹配数值判断 两个选项。前者适用于字符串类型的字段,例如 request 字段就应该选择字符串匹配;后者适用于数值类型的字段,例如 request_time 字段就应该选择数值判断。

    3. 第三个配置项依赖于上面的过滤类型。

    当过滤类型为字符串匹配,该配置项提供 正则匹配精确匹配 两个选项。前者表示填写一个正则表达式,当表达式与部分字段值或完整字段值匹配时都视为匹配成功;后者表示填写一个字符串,当字符串与完整字段值完全匹配则视为匹配成功。

    💡   例如:

    上图中条件 a 的配置,如果改为精确匹配,且字段 request 的目标值为 GET /login.jsp HTTP/1.1,那么就需要在文本框中填写 GET /login.jsp HTTP/1.1。

    当过滤类型为数值判断,该配置项提供 “>=、>、=、<、<=” 几个选项,以便描述数值型字段值的大小。

    4. 第四个配置项用于填写正则表达式或者数字(取决于过滤类型选择字符串匹配还是数值判断)。

  • 事件描述:输入对该事件的简单描述。描述内容将显示在事件管理页面的 描述 一栏中。


▶ 数值统计事件

数值统计事件用于描述日志中某个字段出现相同字段值的次数。

💡   配置范例解读:

上图中的范例所描述的内容为:

监视日志源 “访问日志”,如果 10 秒内产生的日志中,字段 IP 出现相同值的次数大于或等于 50 次,则视为该事件被触发一次。

  • 事件名称:为新事件输入一个名称。事件的名称不能与已有的事件名称重复。

  • 日志源:为事件指定一个或多个日志源。该日志源包含的字段、或者多个日志源的交集字段将作为事件中的待选字段。

    💡   提示:

    系统默认为每个站点配置 ID 建立了一个对应的访问日志源,其名称中带有对应的站点配置 ID 号,可直接选择使用。

    如果需要创建自定义日志源,请参考 3.2 日志配置 小节的内容来创建日志源)

    指定多个日志源时,待选字段为各个日志源之间的交集字段。例如,日志源 A 中存在字段 src_ip、referer、user_agent,而日志源 B 中存在字段 src_ip、request、host,则待选字段只有 src_ip 一个。

  • 事件类型:从下拉菜单中选择单事件类型。

  • 触发类型:从下拉菜单中选择数值统计。

  • 触发事件(ID+名称):该下拉菜单中包含了当前可选的、且日志源与当前所选日志源相同的所有简单事件,同时也提供了一个 全部 选项。

    选中的某个简单事件将作为过滤器来筛选出想要的日志。如果不需要筛选日志,请选择 全部,表示对当前日志源中的所有日志进行比较。

    例如,选中之前创建的 简单事件范例,则符合该范例描述的日志会被 “挑选出来”。这些 “挑选出来” 的日志再与数值统计事件的后续描述进行比较。

    💡   注意:

    请确保需要用作日志过滤器的简单事件的日志源 包含 当前的日志源、或者与当前的日志源 相同。不符合这两个条件的简单事件不会显示在触发事件的下拉菜单中。

  • 触发对象:在触发事件筛选出来的日志中,指定一个要比较的字段,从而对该字段出现相同字段值的次数进行比较。

    该下拉菜单中提供了 IP、用户、设备、自定义字段1、自定义字段2等选项。

    在选定 访问日志 作为日志源时,IP 值默认为访问日志中的 src_ip 字段值,设备的值默认为访问日志中的 fingerprint 字段值。用户字段和自定义字段暂未在访问日志中实现映射。

    在选定自定义的日志配置作为日志源时,这几个选项的值由该日志源中对重点字段的映射配置决定。

    💡   提示:

    在选择自定义日志源时(即在日志配置中自行创建的基于 TCP 或者 KAFKA 的日志源),需要确保该日志源已通过重点字段的配置来对 IP、用户、设备、自定义字段实现全部或部分映射(请参考 3.2 日志配置 小节的内容)。这样在触发对象下拉菜单中选择已经映射的字段,才能让事件生效。

  • 比较符:选择一个运算符号,以便对当前触发对象的相同字段值的出现次数进行比较。可选符号包括 “>=、>、=、<、<=” 几个选项。

  • 变量:指定一个次数值,作为当前选定的触发对象值的目标比较值。

  • 窗口周期:指定一个时间窗口,限定仅对该时间窗口内接收到的日志内容进行比较。事件单位支持 分钟小时

  • 事件描述:该文本框用于输入对该事件的简单描述。描述内容将显示在事件管理页面的 描述 一栏中。


▶ 去重统计事件

去重统计事件用于描述日志中某个字段的值相同的前提下,另一个字段出现不同字段值的次数。

💡   配置范例解读:

上图中的范例所描述的内容为:

监视日志源 “访问日志”,在 60 秒内产生的日志中,找出字段 IP 的值相同的日志,如果这些日志中出现了 5 个或 5 个以上不同的 user_agent 字段值,则视为该事件被触发一次。

  • 事件名称:为新事件输入一个名称。事件的名称不能与已有的事件名称重复。

  • 日志源:为事件指定一个或多个日志源。该日志源包含的字段、或者多个日志源的交集字段将作为事件中的待选字段。

    💡   提示:

    系统默认为每个站点配置 ID 建立了一个对应的访问日志源,其名称中带有对应的站点配置 ID 号,可直接选择使用。

    如果需要创建自定义日志源,请参考 3.2 日志配置 小节的内容来创建日志源)

    指定多个日志源时,待选字段为各个日志源之间的交集字段。例如,日志源 A 中存在字段 src_ip、referer、user_agent,而日志源 B 中存在字段 src_ip、request、host,则待选字段只有 src_ip 一个。

  • 事件类型:从下拉菜单中选择单事件类型。

  • 触发类型:从下拉菜单中选择去重统计。

  • 触发事件(ID+名称):该下拉菜单中包含了当前可选的、且日志源与当前所选日志源相同的所有简单事件,同时也提供了一个 全部 选项。

    选中的某个简单事件将作为过滤器来筛选出想要的日志。如果不需要筛选日志,请选择 全部,表示对当前日志源中的所有日志进行比较。

    例如,选中之前创建的 简单事件范例,则符合该范例描述的日志会被 “挑选出来”。这些 “挑选出来” 的日志再与数值统计事件的后续描述进行比较。

    💡   注意:

    请确保需要用作日志过滤器的简单事件的日志源 包含 当前的日志源、或者与当前的日志源 相同。不符合这两个条件的简单事件不会显示在触发事件的下拉菜单中。

  • 触发对象:在触发事件筛选出来的日志中指定一个字段,从而进一步筛选出该字段值相同的日志,以便对这些日志进行后续比较。

    该下拉菜单中提供了 IP、用户、设备、自定义字段1、自定义字段2等选项。

    在选定 访问日志 作为日志源时,IP 值默认为访问日志中的 src_ip 字段值,设备的值默认为访问日志中的 fingerprint 字段值。用户字段和自定义字段暂未在访问日志中实现映射。

    在选定自定义的日志配置作为日志源时,这几个选项的值由该日志源中对重点字段的映射配置决定。

    💡   注意:

    在选择自定义日志源时(即在日志配置中自行创建的基于 TCP 或者 KAFKA 的日志源),需要确保该日志源已通过重点字段的配置来对 IP、用户、设备、自定义字段实现全部或部分映射(请参考 3.2 日志配置 小节的内容)。这样在触发对象下拉菜单中选择已经映射的字段,才能让事件生效。

  • 去重对象:在触发事件和触发对象共同筛选出来的日志中,指定一个字段,以便对该字段出现不同字段值的次数进行统计。

  • 比较符:选择一个运算符号,以便对当前去重对象出现不同字段值的次数进行比较。可选符号包括 “>=、>、=、<、<=” 几个选项。

  • 变量:指定一个次数值,作为当前去重对象出现不同字段值的次数的目标比较值。

  • 窗口周期:指定一个时间窗口,限定仅对该时间窗口内接收到的日志内容进行比较。事件单位支持 分钟小时

  • 事件描述:该文本框用于输入对该事件的简单描述。描述内容将显示在事件管理页面的 描述 一栏中。


▶ 平均统计事件

平均统计事件用于描述日志中某个数值型字段值在规定时间窗口内的平均值。

💡   注意:

只能对数值型字段值进行平均值的计算。

💡   配置范例解读:

上图中的范例所描述的内容为:

监视日志源 “访问日志”,在 30 秒内产生的日志中,找出字段 IP 的值相同的日志,如果这些日志中 reqeust_time 字段的平均值大于或等于 1(request_time即请求所耗费的时间,单位为秒),则视为该事件被触发一次。

  • 事件名称:为新事件输入一个名称。事件的名称不能与已有的事件名称重复。

  • 日志源:为事件指定一个或多个日志源。该日志源包含的字段、或者多个日志源的交集字段将作为事件中的待选字段。

    💡   提示:

    系统默认为每个站点配置 ID 建立了一个对应的访问日志源,其名称中带有对应的站点配置 ID 号,可直接选择使用。

    如果需要创建自定义日志源,请参考 3.2 日志配置 小节的内容来创建日志源)

    指定多个日志源时,待选字段为各个日志源之间的交集字段。例如,日志源 A 中存在字段 src_ip、referer、user_agent,而日志源 B 中存在字段 src_ip、request、host,则待选字段只有 src_ip 一个。

  • 事件类型:从下拉菜单中选择单事件类型。

  • 触发类型:从下拉菜单中选择平均统计。

  • 触发事件(ID+名称):该下拉菜单中包含了当前可选的、且日志源与当前所选日志源相同的所有简单事件,同时也提供了一个 全部 选项。

    选中的某个简单事件将作为过滤器来筛选出想要的日志。如果不需要筛选日志,请选择 全部,表示对当前日志源中的所有日志进行比较。

    例如,选中之前创建的 简单事件范例,则符合该范例描述的日志会被 “挑选出来”。这些 “挑选出来” 的日志再与数值统计事件的后续描述进行比较。

    💡   注意:

    请确保需要用作日志过滤器的简单事件的日志源 包含 当前的日志源、或者与当前的日志源 相同。不符合这两个条件的简单事件不会显示在触发事件的下拉菜单中。

  • 触发对象:在触发事件筛选出来的日志中指定一个字段,从而进一步筛选出该字段值相同的日志,以便对这些日志进行后续比较。

    该下拉菜单中提供了 IP、用户、设备、自定义字段1、自定义字段2等选项。

    在选定 访问日志 作为日志源时,IP 值默认为访问日志中的 src_ip 字段值,设备的值默认为访问日志中的 fingerprint 字段值。用户字段和自定义字段暂未在访问日志中实现映射。

    在选定自定义的日志配置作为日志源时,这几个选项的值由该日志源中对重点字段的映射配置决定。

    💡   注意:

    在选择自定义日志源时(即在日志配置中自行创建的基于 TCP 或者 KAFKA 的日志源),需要确保该日志源已通过重点字段的配置来对 IP、用户、设备、自定义字段实现全部或部分映射(请参考 3.2 日志配置 小节的内容)。这样在触发对象下拉菜单中选择已经映射的字段,才能让事件生效。

  • 均值计算对象:在触发事件和触发对象共同筛选出来的日志中,指定一个数值型字段,以便对其平均字段值进行计算。

  • 比较符:选择一个运算符号,以便对当前均值计算对象的平均字段值进行比较。可选符号包括 “>=、>、=、<、<=” 几个选项。

  • 变量:指定一个数值,作为当前均值计算对象的平均字段值的目标比较值。

  • 窗口周期:指定一个时间窗口,限定仅对该时间窗口内接收到的日志内容进行比较。事件单位支持 分钟小时

  • 事件描述:该文本框用于输入对该事件的简单描述。描述内容将显示在事件管理页面的 描述 一栏中。


▶ CEP事件

CEP 事件用于描述多个简单事件出现的顺序、次数和这些事件出现时相互之间的连续方式。

💡   配置范例解读:

上图中的范例所描述的内容为:

监视日志源 “访问日志”,在 60 秒内产生的日志中,找出字段 IP 的值相同的日志。如果在这些日志中首先找到一条符合简单事件 1 的日志,然后找到两条、或三条、或四条符合简单事件 2 的日志,且这些日志紧挨着连续出现(即它们之间不存在其他日志),则视为该 CEP 事件被触发一次。

  • 事件名称:为新事件输入一个名称。事件的名称不能与已有的事件名称重复。

  • 日志源:为事件指定一个或多个日志源。该日志源包含的字段、或者多个日志源的交集字段将作为事件中的待选字段。

    💡   提示:

    系统默认为每个站点配置 ID 建立了一个对应的访问日志源,其名称中带有对应的站点配置 ID 号,可直接选择使用。

    如果需要创建自定义日志源,请参考 3.2 日志配置 小节的内容来创建日志源)

    指定多个日志源时,待选字段为各个日志源之间的交集字段。例如,日志源 A 中存在字段 src_ip、referer、user_agent,而日志源 B 中存在字段 src_ip、request、host,则待选字段只有 src_ip 一个。

  • 事件类型:从下拉菜单中选择单事件类型。

  • 触发类型:从下拉菜单中选择 CEP。

  • 连续方式:严格连续是指 CEP 事件中指定的简单事件必须紧挨着连续触发,即符合这些简单事件描述的日志必须紧挨着连续出现,它们之间不能存在其他日志。反之,宽松连续则是指符合这些简单事件描述的日志之间可以存在其他日志。

  • 触发事件:从当前可选的、且日志源与当前所选日志源相同的简单事件中选择多个事件形成事件序列。

    💡   注意:

    请确保需要加入事件序列的简单事件的日志源 包含 当前的日志源、或者与当前的日志源 相同。不符合这两个条件的简单事件不会显示在触发事件的下拉菜单中。

  • 重复次数:设定每个简单事件的触发次数。当触发次数为一个确定的数值时,可以在前后两个文本框都填写相同的数值来实现。当触发次数为某个数值范围时,在第一个文本框中填写起始数值,第二个文本框中填写结束数值。

    💡   例如:

    指定事件重复两次,则填写 2 至 2;指定事件重复 3 到 5 次,则填写 3 至 5。

  • 操作:用于添加和删除触发事件。

  • 触发对象:指定一个字段,以便从当前日志源中筛选出该字段的值相同的日志,然后对这些日志进行事件序列匹配。

    该下拉菜单中提供了 IP、用户、设备、自定义字段1、自定义字段2等选项。

    在选定 访问日志 作为日志源时,IP 值默认为访问日志中的 src_ip 字段值,设备的值默认为访问日志中的 fingerprint 字段值。用户字段和自定义字段暂未在访问日志中实现映射。

    在选定自定义的日志配置作为日志源时,这几个选项的值由该日志源中对重点字段的映射配置决定。

    💡   注意:

    在选择自定义日志源时(即在日志配置中自行创建的基于 TCP 或者 KAFKA 的日志源),需要确保该日志源已通过重点字段的配置来对 IP、用户、设备、自定义字段实现全部或部分映射(请参考 3.2 日志配置 小节的内容)。这样在触发对象下拉菜单中选择已经映射的字段,才能让事件生效。

  • 窗口周期:指定一个时间窗口,限定仅对该时间窗口内接收到的日志内容进行比较。事件单位支持 分钟小时

  • 事件描述:该文本框用于输入对该事件的简单描述。描述内容将显示在事件管理页面的 描述 一栏中。


事件配置完成后,单击配置页面下方的保存按钮即可在 事件管理 页面中看到新建的事件。

💡   注意:

新建的事件默认为禁用状态,需要在 事件管理 页面中的 状态 一栏内,手动单击该栏中的开关按钮,将它修改为启用,才能在创建风控安全规则时引用该事件。

3.3.3 新建组合事件

组合事件 类型用于创建一个包含了多个单事件的组合型事件,其中对这些单事件的逻辑关系进行了描述。

单击事件管理页面左上角的 新建 按钮,进入新建事件配置页面,并在 事件类型 菜单中选择 组合事件。如下图所示。

💡   配置范例解读:

上图中的范例所描述的内容为:

监视日志源 “访问日志”,当该日志源中的数据同时触发了事件 a 和事件 b,或者同时触发了事件 c 和事件 d、或者触发了事件 e,则视为该组合事件被触发一次。

创建组合事件之前,需要首先创建好单事件。并且确保这些单事件的日志源与当前所选的日志源相同。

事件配置完成后,单击配置页面下方的保存按钮即可在 事件管理 页面中看到新建的事件。

💡   注意:

新建的事件默认为禁用状态,需要在 事件管理 页面中的 状态 一栏内,手动单击该栏中的开关按钮,将它修改为启用,才能在创建风控安全规则时引用该事件。

4 规则管理

💡   提示:

规则管理菜单仅在购买了 基础应用安全模块 或者 风控安全模块 后,才会显示出来。

规则管理包含了当前所有的安全规则。安全规则分为两类,分别是基础应用安全规则(需要购买基础应用安全模块)和风控安全规则(需要购买风控安全模块),如下图所示。

页面顶部的 防护站点 下拉菜单包含了当前所有可用的站点配置 ID。

每个站点配置 ID 下的所有基础应用安全规则仅对带有该 ID 的请求生效,即带有该 ID 的请求都会由对应的规则检查和判断是否拦截。

风控安全规则的触发取决于它们关联的事件,与其所处的站点配置 ID 无关。但规则触发后,其执行动作将仅对带有当前 ID 的请求生效(关于风控安全规则中的执行动作,请参考 4.2 风控安全规则 小节的内容)。

4.1 基础应用安全规则

💡   提示:

基础应用安全规则标签仅在购买了 基础应用安全模块 后,才会显示出来。

基础应用安全规则属于 WAF 类安全规则。触发基础应用安全规则后,根据您选择的接入方式不同,会有不同的结果。

  • 在插件版接入的站点上,某个客户端的请求触发基础应用安全规则后,该客户端后续的请求在 一分钟内 将会被拒绝访问(关于插件版接入方式,请参考 如何选择瑞数云的接入方式 页面的内容)。

  • 在无插件接入的站点上,某个客户端的请求触发基础应用安全规则时,瑞数云会将结果返回给接入的用户网关,由网关上的自研程序确定是否拦截(关于无插件接入方式,请参考 如何选择瑞数云的接入方式 页面的内容)。

基础应用安全规则标签下包含了瑞数云集成的一系列预置规则和自定义规则入口。

在预置规则页面中,可以对预置规则进行管理。在自定义规则页面中,可以自行定义新的 WAF 规则。

4.1.1 预置基础应用安全规则

瑞数云提供了 196 条预置 WAF 规则,并将它们按照不同的攻击类别进行分组归类,所有规则组都默认为启用状态。

以 JAVA 攻击类型为例,上图中把针对该攻击类型的 9 条规则归为一个规则组,该规则组的 ID(即图中规则列表第一列的安全规则ID)为 001。

规则组的防护等级决定了该组中所启用的规则条数。选择 宽松,则该组中启用的规则数量最低。其他防护等级:正常严格超严格 将依次增加规则组中启用的规则数量。超严格 会启用规则组中的所有规则。

💡   提示:

默认防护等级为宽松。防护等级越高,安全性越高,但可能会提高误报率。

以下表格列出了当前所有预置规则类别的简单介绍。如果需要查看每个类别中的各条规则详情,可以按照上图中所示,单击 规则数量 一栏中的数字进入详情页面。

安全规则ID规则类型描述
001JAVA攻击包含了针对远程命令执行、有效负载执行、可疑 JAVA 类等攻击类型的检测规则
002文件和路径攻击包含了针对路径遍历、系统文件、受限文件等攻击类型的检测规则
003Node JS 攻击包含了针对 Node.js 注入攻击的检测规则
004PHP 注入攻击包含了针对各种 PHP 注入攻击手段的检测规则
005远程代码执行攻击包含了针对 UNIX 命令注入、Windows 命令注入、Windows PowerShell 命令等攻击类型的检测规则
006远程文件包含 (RFI) 攻击包含了针对 URL 参数、URL负载尾随问号、域外引用等攻击类型的检测规则
007会话固定攻击包含了针对 HTML 中设置 Cookie 值、以及针对 SessionID 参数名等攻击类型的检测规则
008SQL 注入攻击包含了针对多种 SQL 注入攻击的检测规则
009跨站点脚本攻击包含了针对多种跨站脚本攻击的检测规则
010协议攻击包含了针对 HTTP 请求走私攻击、HTTP 响应拆分攻击、HTTP 标头注入攻击等攻击类型的检测规则
011协议执行包含了针对无效 HTTP 请求行、表单数据绕过等攻击类型的检测规则
012端口和环境扫描程序包含了针对多种扫描器的检测规则

4.1.2 自定义基础应用安全规则

自定义规则页面与预置规则页面中的配置项类似,主要的区别在于自定义规则页面提供了一个 添加规则 按钮,并且没有 防护等级 配置项。

单击 添加规则 按钮,进入以下界面。

输入一个规则名称,然后选择规则将要检查请求的哪些位置,例如 URL 或 URL 的参数等。每选中一个检查位置,页面会实时显示该位置相应的配置项,以便输入正则表达式等详细设定。

💡   提示:

攻击类型和检查方向不支持修改,由系统分别自动填写为 自定义请求。建议输入备注信息简单介绍当前规则,以便其他使用者能够在规则列表中对该规则有一个大概的了解。

如下图所示,当选中 任意位置 时,会在下拉菜单下方出现该检查位置对应的正则输入框。在输入框中输入正则表达式并保存后,瑞数云将会用该正则表达式对 检查位置 下拉菜单中所有选项的对应位置进行匹配。当任意一个位置匹配成功时,就会触发这条规则。

以下列表包含了所有可选检查位置的描述。

💡   注意:

插件版部署方式下,检查位置仅支持 请求URL请求URL参数名

检查位置描述
全部针对 检查位置 下拉菜单中所有选项的对应位置,使用正则表达式对请求进行匹配。当所有选项都匹配成功时,就会触发规则。
任意位置针对 检查位置 下拉菜单中所有选项的对应位置,使用正则表达式对请求进行匹配。 当任意选项匹配成功时,就会触发规则。
请求URL针对请求的 URL,即包含查询字符串数据在内的完整请求 URL,使用正则表达式进行匹配。
请求URL参数名针对 URL 的参数名,使用正则表达式进行匹配。
请求头名针对请求头中的字段名,使用正则表达式进行匹配。
请求头Referer针对请求头中 Referer 字段的值,使用正则表达式进行匹配。
请求头UA针对请求头中 User-Agent 字段的值,使用正则表达式进行匹配。
请求头Cookie名针对请求头中 Cookie 的名称,使用正则表达式进行匹配。
请求Body针对请求体的内容,使用正则表达式进行匹配。
源IP针对请求的源 IP,使用正则表达式进行匹配。
请求URL参数值针对 URL 的参数值,使用正则表达式进行匹配。每条正则表达式需要指定一个参数名(.* 代表任意参数名)。可以配置多条正则表达式和它们对应的参数名。
请求头值针对请求头的字段值,使用正则表达式进行匹配。每条正则表达式需要指定一个字段名(.* 代表任意字段名)。可以配置多条正则表达式和它们对应的字段名。
请求头Cookie值针对请求头中的 Cookie 值,使用正则表达式进行匹配。每条正则表达式需要指定一个 Cookie 字段名(.* 代表任意字段名)。可以配置多条正则表达式和它们对应的 Cookie 字段名。

4.2 风控安全规则

💡   提示:

风控安全规则标签仅在购买了 风控安全模块 后,才会显示出来。

风控安全规则是基于 事件 的高级规则。通过创建不同的规则,可以对各种简单或复杂的攻击行为进行检测。检测到攻击时会自动生成触发日志,并执行规则中设定的执行动作,例如阻断攻击者的后续访问。

💡   提示:

页面顶部的 防护站点 用于选择一个站点配置 ID。该 ID 下创建的规则触发后,规则中的执行动将仅对带有该 ID 的请求生效。但风控安全规则的触发取决于它们关联的事件,与其所处的站点配置 ID 无关。

创建风控规则前,需要首先创建该规则所需要的事件。通过管理界面左侧导航栏中的 配置管理 > 事件管理 菜单,可以创建事件(请参考 3.3 事件管理 小节中的内容)。

在风控安全规则页面中,单击 新建 按钮,进入新规则编辑界面。以下图片提供了一个风控规则配置范例。

💡   配置范例解读:

上图中的范例所描述的内容为:

当规则关联的事件 组合事件范例 触发时,在后续 300 秒内,触发该事件的日志中的源 IP 地址将被写入瑞数云的 威胁情报库。当该源 IP 再次发起的请求中带有这条规则对应的站点配置 ID,就会被拒绝访问(前提是该站点配置 ID 为 拦截模式、且启用了 查询威胁情报库,请参考 WEB防护配置标签 中对 检测配置 的介绍)。

一个规则可以同时关联多个事件。这些事件之间为逻辑或的关系,即只要成功触发了其中一个事件,就会触发该规则。可以在 日志管理 > 搜索 页面中选择 触发日志,并在 triggered_rules 一栏查看已触发的规则。

  • 规则名称:为新规则输入一个唯一的名称。该名称不能与其他规则的名称重复。

  • 规则描述:输入对该规则的简单描述。描述内容将显示在风控安全规则页面的 描述 一栏中。

  • 关联事件:从下拉菜单选择一个或多个需要关联的事件,只要其中一个事件被触发,就会触发该规则。

    💡   提示:

    下拉菜单只会显示已启用的事件。

  • 执行动作:选择 阻断 时,如果规则被触发,就会对下方指定的目标对象进行拦截。选择 无动作,则触发规则时仅会在 触发日志 中进行记录。

  • 目标对象:指规则触发时需要拦截的对象,包括 IP用户设备自定义字段1自定义字段2。这些对象的值来自于日志配置中重点字段的映射。

    💡   提示:

    请参考 3.2.1 自定义TCP日志配置 小节中对重点字段配置的介绍。

  • 拦截事件:指目标对象被拒绝访问的持续时长,单位为秒。

  • 规则优先级:规定了规则触发时执行动作的优先级。最小值 -1 由系统自动填写,表示无执行动作。当执行动作选择阻断时,系统自动填入 1,表示最高执行优先级,这时可以手动修改该优先级。如果同一个请求同时触发多个不同优先级的规则,仅优先级最低的规则会执行动作。

    💡   提示:

    大于等于 1 的优先级数值不能重复。新建规则的优先级数值已存在时,系统会自动将当前等于和大于该数值的优先级加 1。

    例如,当前存在三条规则,分别是优先级为 1 的 A、优先级为 2 的 B、优先级为 3 的 C。新建优先级为 2 的D。保存后,A 的优先级仍然为 1、D 的优先级为 2、B 的优先级变成了 3、C 的优先级变成了 4。

5 企业管理

💡   提示:

由于只有管理员可以查看企业管理,因此企业管理菜单只对管理员可见。

企业管理页面主要包含了当前用户信息、防护模块激活状态、账号管理和购买记录等。如下图所示。

com_manage

页面顶部的企业 ID 号和客户名称是购买防护服务时所注册的 ID 和名称。

  • 版本类型显示为 “测试”,表示当前用户未购买任何防护服务。

  • 版本类型显示为 “正式”,表示当前用户已购买了防护服务。

5.1 激活内容

module_status

显示当前以及当前各个防护模块的工作状态和规格。

  • 当模块正常工作时,工作状态显示为 “激活”。

  • 没有购买的模块会显示为 “未购买”。

  • 已超过使用期限的模块,会显示 “已过期”。

5.2 账号管理

acounts

显示当前每个可用账号的创建时间、账号 ID、账号名、状态、权限和操作等信息。支持对账号(不包括租户账号)进行密码重置、禁用、修改权限和删除的操作。并且在右上角提供账号筛选下拉菜单和创建新账号按钮。

💡   提示:

仅管理员有权对其他账号进行操作。但管理员不能对自己进行禁用或修改权限。

账号筛选下拉菜单可以根据账号的激活状态和启用禁用状态进行筛选,并显示筛选结果。

单击页面右方的创建账号按钮,可以添加新账号,如下图所示。

以下表格对配置项进行了说明。

配置项说明
角色可选角色包括:
    管理员(可访问管理界面的所有内容)
    用户(可访问安全概览、日志配置、配置管理、规则管理)
    访客(可访问安全概览、日志管理)角色。
邮箱输入邮箱后,该邮箱可以作为账号名登录系统。

填写完成后单击 发送 按钮,所填邮箱将收到一封激活邮件。通过该邮件有中的链接激活后,即可使用该邮箱地址登录系统。

💡   注意:

已激活的邮箱不能再次用于新账号的创建。5 分钟内针对相同邮箱只能发送一封激活邮件,且 5 分钟内最多创建 5 个新账号。

5.3 购买记录

显示当前所有的购买订单相关信息,包括订单创建事件、订单号、所购商品名称、订单过期时间、订单状态、备注信息和操作。

💡   提示:

单击操作一栏中的续期按钮,会弹出 “请联系您的渠道销售” 提示信息,并不能直接续期。

6 其他

在管理界面的右上角可以看到当前登录的账号信息,单击后可以展开 我的账号系统版本退出 三个选项。

我的账号:显示了当前账号的账号名、ID、角色和权限等信息,同时可以修改当前账号的密码,如下图所示;

💡   提示:

密码长度为 8-16 位,需要由英文大写、英文小写、数字、符号中至少 3 种组合而成,同时系统将对修改后的密码进行弱口令检查。

系统版本:显示了当前系统的版本号;

退出:单击后,将退出当前账号的登录状态,回到登录页面。

附录 1 字段列表

字段名类型解释
accountString通过 WEB字段提取 功能获取的浏览器端登录被保护站点时所用的账号名
body_bytes_sentUInt64浏览器端发起的 HTTP 请求体长度
client_bot_typeString浏览器端机器人类型
detection_resultString针对浏览器端的检测结果
fingerprintString浏览器端的指纹
guard_statusString插件对于浏览器端请求的判断结果:
TOKEN_MISS:令牌不存在
TOKEN_INVALID:令牌不合规
TOKEN_EXPIRED:令牌过期
IGNORE:不需要进行检测
PASS:检测通过
BOT:自动化工具检测未通过
REPUTATION:风控规则检测未通过
BLOCKED_BY_WAF:基础规则检测未通过
ip_cityStringIP 地址所属城市,来自 _intelligence_result 内部字段
ip_classificationStringIP 信誉分类,来自 _intelligence_result 内部字段 udger.ip_classification
ip_data_center_nameStringIP 对应的数据中心名,来自 _intelligence_result 内部字段 udger.ip_data_center_name
keeper_versionString当前插件版本
login_statusUInt8浏览器端登录被保护站点时的登录状态。0表示无登录行为,1表示登录成功,2表示登录失败
meta_dataString客户自定义信息
referrerString浏览器端请求的地址
requestString浏览器端的请求方法+请求路径+请求协议版本
request_timeFloat64请求耗时
sessionString请求会话 ID
site_idString站点配置 ID
source_typeString请求的来源
src_ipString请求的源 IP
statusUInt16请求的响应码
tenant_idString租户 ID 号
ua_classificationString基于情报库对客户端浏览器进行的分类,来自 _intelligence_result 内部字段 udger.ua_classification
ua_familyString基于情报库对客户端浏览器的名称解析结果,来自 _intelligence_result 内部字段 udger.ua_family
ua_osString基于情报库对浏览器端的操作系统分析结果,来自 _intelligence_result 内部字段 udger.ua_os
ua_version_majorString基于情报库对浏览器主版本信息的分析结果,来自 _intelligence_result 内部字段 udger.ua_version_major
user_agentString浏览器详细信息
x_forwarded_forString请求头中的 X-Forwarded-For 字段
raw_dataString原始日志数据
reasonString日志解析失败时的原因
log_idString日志的 ID 号
log_setting_idString日志配置的 ID 号
parsedUInt8日志解析成功为 1,失败为 0
t_detectorDateTime64访问云端花费的时长
event_nameString事件名称
event_configure_idString事件 ID 号
event_metaString事件详情
_intelligence_resultJSON基于情报库对请求的 src_ip 和 user_agent 进行比对后生成的结果
waf_triggered_rulesString被触发的基础应用安全规则的 ID 号
waf_triggered_categoriesString被触发的基础应用安全规则的分类
waf_triggered_scoreUInt64被触发的所有基础应用安全规则的分数总和
hostnameString请求的主机名
schemeString请求的协议
triggered_eventsString被触发的事件的 ID 号
triggered_rulesString被触发的风控安全规则的 ID 号
_timestampString日志的时间戳
firehol_resultString基于情报库对请求的 src_ip 进行对比后生成的结果,来自 _intelligence_result 内部字段
tj_partner.botnetString基于情报库判断请求是否来自僵尸网络,来自 _intelligence_result 内部字段 tj_partner.botnet
tj_partner.indicatorString基于情报库判断请求是否来自扫描器,来自 _intelligence_result 内部字段 tj_partner.indicator

附录 2 支持的浏览器

以下表格列出了瑞数云的管理界面和 JS 探针支持的浏览器。

分类浏览器版本
管理界面

• Chrome v57 或更高版本

• Firefox v52 或更高版本

• Edge v79 或更高版本

JS探针

• IE v8或更高版本

• Chrome v49 或更高版本

• Firefox v52 或更高版本

• Safari v10 或更高版本

• Edge v44 或更高版本

附录 3 已知问题

  1. 插件配置文件 config.json 中的 http.interval_in_seconds 大于等于 10 时,会导致插件连接状态异常。

    该文件默认路径为 /usr/local/openresty/lualib/riversec/static/config.json,其中 http.interval_in_seconds 配置项默认值为 3,如果修改为大于等于 10 的值,会导致插件连接状态异常。建议保持默认值。

  2. Centos7 操作系统上安装插件报错。

    在 Centos7 操作系统上安装插件,遇到报错信息 "version `GLIBC_2.18' not found" 时,请通过 附录 6 中的信息,联系我们帮助解决。

附录 4 发送TCP日志的范例

💡   提示:

这里将以 Ubuntu 操作系统作为 TCP 日志发送源,介绍从创建日志配置到验证日志接收的完整过程。如果以其他操作系统作为发送源,请相应地参考这些操作系统对于 TCP 日志发送的官方配置介绍。

步骤一:基于日志内容定制日志配置

按照 3.2.1 自定义TCP日志配置 小节的内容,针对以下待发送的 TCP 日志数据范例建立一个日志配置。

▶ 针对 plain_text 模板类型

日志配置中模板类型为 plain_text 时,请基于以下日志数据范例来定制日志解析配置。

Jan  1 10:12:09 ubuntu info daemon [1]:  Started Session 1197 of user ubuntu.

Jan 2 10:13:09 ubuntu info daemon [1]: Started Session 1198 of user ubuntu.

将其中一条日志复制到编辑窗口右方的样本数据中,然后开始填写配置。

如果当前配置中至少有一个字段已经被作为 必要字段,每当完成一个字段抽取的配置时,页面都会实时解析样本数据,并将结果显示在页面下方。

💡   注意:

以上日志内容为 rsyslog 最终发送到瑞数云时的格式,并非当前主机上的原始日志。这是因为 rsyslog 在转发日志过程中,会基于自身的配置对日志进行一次解析,然后将解析后的日志发送出去。

原始日志内容可以在 步骤四 中查看。

基于以上日志内容创建的日志配置如下图所示。

配置完成后,以上样本数据的解析结果如下所示。

{"_timestamp":"2023-01-01 10:12:09.000","facility":"daemon","host":"ubuntu","message":" Started Session 1197 of user ubuntu.","procid":1,"severity":"info"}

💡   提示:

当前版本的时间解析精度仅精确到秒。无论日志时间中是否存在毫秒(例如解析前 10:12:09.123),解析后毫秒的部分都会以 000 代替(例如解析后 10:12:09.000)。

解析成功表示当前配置可以正常解析日志,单击 保存 按钮来保存配置。

▶ 针对 json 模板类型

日志配置中模板类型为 json 时,请基于以下日志数据范例来定制日志解析配置。

{"timestamp":"2023-01-01 10:12:09","facility":"daemon","host":"ubuntu","message":" Started Session 1197 of user ubuntu.","procid":1,"severity":"info"}

{"timestamp":"2023-01-02 10:13:09","facility":"daemon","host":"ubuntu","message":" Started Session 1198 of user ubuntu.","procid":1,"severity":"info"}

将其中一条日志复制到编辑窗口右方的样本数据中,然后开始填写配置。

如果当前配置中至少有一个字段已经被作为 必要字段,每当完成一个字段抽取的配置时,页面都会实时解析样本数据,并将结果显示在页面下方。

💡   注意:

以上日志内容为 rsyslog 最终发送到瑞数云时的格式,并当前主机上的原始日志。这是因为 rsyslog 在转发日志过程中,会基于自身的配置对日志进行一次解析,然后将解析后的日志发送出去。

基于以上日志内容创建的日志配置如下图所示。

💡   提示:

以上针对 json 模板类型的实例中,是通过 添加自动抽取 按钮来实现的手动配置。更加快捷的方法是,在粘贴样本数据后,单击 快速添加 按钮,这时页面会基于当前粘贴的 JSON 样本数据自动生成配置,然后将字段名称按照需要修改即可。

配置完成后,以上样本数据的解析结果如下所示。

{"_timestamp":"2023-01-01 10:12:09.000","facility":"daemon","host":"ubuntu","message":" Started Session 1197 of user ubuntu.","procid":1,"severity":"info"}

💡   提示:

当前版本的时间解析精度仅精确到秒。无论日志时间中是否存在毫秒(例如解析前 10:12:09.123),解析后毫秒的部分都会以 000 代替(例如解析后 10:12:09.000)。

解析成功表示当前配置可以正常解析日志,单击 保存 按钮来保存配置。

步骤二:下载和安装证书

配置管理 > 日志管理 界面,下载刚才创建的日志配置的证书压缩文件,并复制到发送日志的主机系统中。然后执行以下命令解压该文件,并将解压后的文件复制到 /etc/rsyslog.d/ 路径下。

unzip <证书压缩文件名>.zip
cp ca_cert.pem csr_cert.pem private_key.pem /etc/rsyslog.d/

步骤三:新建和修改配置文件

在发送日志的主机上,执行以下命令,进入 TCP_LOG.conf 文件编辑界面,并将命令下方的指令写入该文件,最后将该文件保存和复制到 /etc/rsyslog.d/ 路径下。

  • 日志配置中模板类型为 plain_text 时,请阅读以下内容。

    # 编辑文件

    vi TCP_LOG.conf

    # 将以下指令复制粘贴到编辑界面中

    # make gtls driver the default
    $DefaultNetstreamDriver gtls

    # certificate files
    $DefaultNetstreamDriverCAFile /etc/rsyslog.d/ca_cert.pem
    $DefaultNetstreamDriverCertFile /etc/rsyslog.d/csr_cert.pem
    $DefaultNetstreamDriverKeyFile /etc/rsyslog.d/private_key.pem

    $ActionSendStreamDriverAuthMode anon
    $ActionSendStreamDriverMode 1
    $template myformat,"%TIMESTAMP:1:15% %hostname% %syslogseverity-text% %syslogfacility-text% \[%procid%\]\: %msg% \n"
    *.* @@detector.riveryun.com:5514;myformat

    # 保存并复制到 /etc/rsyslog.d/ 路径下

    :wq!
    cp TCP_LOG.conf /etc/rsyslog.d/
  • 日志配置中模板类型为 json 时,请阅读以下内容。

    # 编辑文件

    vi TCP_LOG.conf

    # 将以下指令复制粘贴到编辑界面中

    # make gtls driver the default
    $DefaultNetstreamDriver gtls

    # certificate files
    $DefaultNetstreamDriverCAFile /etc/rsyslog.d/ca_cert.pem
    $DefaultNetstreamDriverCertFile /etc/rsyslog.d/csr_cert.pem
    $DefaultNetstreamDriverKeyFile /etc/rsyslog.d/private_key.pem

    $ActionSendStreamDriverAuthMode anon
    $ActionSendStreamDriverMode 1
    template(name="json_lines" type="list" option.json="on") {
    constant(value="{")
    constant(value="\"timestamp\":\"")
    property(name="timereported" dateFormat="year")
    constant(value="-")
    property(name="timereported" dateFormat="month")
    constant(value="-")
    property(name="timereported" dateFormat="day")
    constant(value=" ")
    property(name="timereported" dateFormat="hour")
    constant(value=":")
    property(name="timereported" dateFormat="minute")
    constant(value=":")
    property(name="timereported" dateFormat="second")
    constant(value="")
    constant(value="\",\"message\":\"")
    property(name="msg")
    constant(value="\",\"host\":\"")
    property(name="hostname")
    constant(value="\",\"severity\":\"")
    property(name="syslogseverity-text")
    constant(value="\",\"facility\":\"")
    property(name="syslogfacility-text")
    constant(value="\",\"app-name\":\"")
    property(name="programname")
    constant(value="\",\"procid\":\"")
    property(name="procid")
    constant(value="\"}\n")
    }
    *.* @@detector.riveryun.com:5514;json_lines

    # 保存并复制到 /etc/rsyslog.d/ 路径下

    :wq!
    cp TCP_LOG.conf /etc/rsyslog.d/

完成 TCP_LOG.conf 文件配置后,接下来确保 /etc/rsyslog.conf 文件中存在以下指令,且指令没有被注释。

module(load="imudp")
input(type="imudp" port="514")

$IncludeConfig /etc/rsyslog.d/*.conf

最后执行以下命令重启 rsyslog 进程,使配置生效。

systemctl restart rsyslog

步骤四:验证配置是否生效

执行以下命令进入文件 ORIGINAL_LOG.log 的编辑界面,并将命令后的日志粘贴到界面中,然后保存该文件。

# 编辑文件

vi ORIGINAL_LOG.log

# 将以下日志复制粘贴到编辑界面中

<30>Jan 01 10:12:09 ubuntu [1]: Started Session 1197 of user ubuntu.

<30>Jan 02 10:13:09 ubuntu [1]: Started Session 1198 of user ubuntu.

# 保存文件

:wq!

执行以下命令进入 sendlog.sh 脚本编辑界面。

# 编辑文件

vi sendlog.sh

# 将以下指令复制粘贴到编辑界面中,并把 <本机IP地址> 替换成当前主机的IP地址

while read -r line
do
echo $line |nc -w 1 -u <本机IP地址> 514
done < ORIGINAL_LOG.log

# 保存文件,并赋予可执行权限

:wq!
chmod +x sendlog.sh

执行以下命令来发送 ORIGINAL_LOG.log 文件中的日志。

sh sendlog.sh

登录 瑞数云管理界面,在 日志管理 > 搜索 页面中的 选择日志 下拉菜单中,选择刚才创建的日志配置名称,并通过右上角 快速选择 按钮选中 所有,最后单击 搜索,查看接收并解析后的日志,如下图所示。

附录 5 发送KAFKA日志的范例

步骤一:基于日志内容定制日志配置

按照 3.2.2 自定义KAFKA日志配置 小节的内容,针对以下待发送的 KAFKA 日志数据范例建立一个日志配置。

▶ 针对 plain_text 模板类型

日志配置中模板类型为 plain_text 时,请基于以下日志数据范例来定制日志解析配置。

{"timestamp":"2022-10-19 14:32:16.456","src_ip":"10.10.10.10", "user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36", "device":"x64 Core i7 13700 proccessor Win10","message":"account Ryn1997 tried to login at login.jsp", "request":"http://target_site/login.jsp", "request_time": 0.8}

KAFKA日志配置中基于 plain_text 模板类型的配置与 附录 4针对 plain_text 模板类型 的内容相同,请参考该小节来进行配置。

▶ 针对 json 模板类型

日志配置中模板类型为 json 时,请基于以下日志数据范例来定制日志解析配置。

{"timestamp":"2022-10-19 14:32:16.456","src_ip":"10.10.10.10", "user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36", "device":"x64 Core i7 13700 proccessor Win10","message":"account Ryn1997 tried to login at login.jsp", "request":"http://target_site/login.jsp", "request_time": 0.8}

KAFKA日志配置中基于 json 模板类型的配置与 附录 4针对 json 模板类型 的内容相同,请参考该小节来进行配置。

步骤二:验证配置是否生效

将以上日志范例基于配置中设定的 KAFKA 主题写入 KAFKA 节点,瑞数云会自动采用该日志配置从 KAFKA 节点获取日志并进行解析。

登录 瑞数云管理界面,在 日志管理 > 搜索 页面中的 选择日志 下拉菜单中,选择刚才创建的日志配置名称,并通过右上角 快速选择 按钮选中 所有,最后单击 搜索,查看接收并解析后的日志,如下图所示。

附录 6 联系我们

技术支持电话

400-611-8558

电子邮件

service@riversecurity.com