配置过滤规则

使用过滤规则可以定义您信任的操作。数据库审计系统不审计您在过滤规则中定义的操作,帮助您提高告警准确率,并节省审计日志存储空间。本文介绍如何配置过滤规则。

背景信息

数据库审计系统支持配置以下三种过滤规则。

  • 按IP过滤:支持自定义可信任的IP地址,数据库审计系统不审计这些IP地址发起的SQL请求。

  • 按SQL模板过滤:提供内置的可信任的SQL模板,数据库审计系统不审计已启用的可信任模板中的SQL请求。

  • 按规则过滤:支持自定义可信任的访问源需要满足的规则,支持设置客户端信息、服务端信息、SQL请求和SQL结果等。数据库审计系统不审计满足规则的SQL请求。

新增IP过滤规则

重要

此处添加的IP地址会对全部资产生效。即保存规则后,数据库审计系统不审计全部资产中来自该IP地址的请求,建议您谨慎配置IP过滤规则。

  1. 登录数据库审计系统。具体操作,请参见登录数据库审计系统
  2. 在左侧导航栏,选择规则配置 > 过滤规则
  3. 按IP过滤页签,单击新增

  4. 新增IP过滤面板,填写规则名称和不审计的IP地址,并单击保存

按SQL模板过滤

按SQL模板过滤以常见的可信任的SQL模板为基础提供了内置的SQL过滤模板,内置SQL过滤模板默认对所有数据库生效。不支持自定义SQL过滤模板。您可以参考以下步骤启用或禁用内置SQL模板过滤。

  1. 登录数据库审计系统。具体操作,请参见登录数据库审计系统
  2. 在左侧导航栏,选择规则配置 > 过滤规则
  3. 过滤规则页面,单击按SQL模板过滤页签。
  4. 选中目标SQL模板,单击启用选中项禁用选中项

    如果需要启用或禁用全部SQL模板,您可以单击启用全部禁用全部

按规则过滤

使用按规则过滤功能,您可以自定义过滤规则。数据库审计系统不会审计符合规则的请求。您可以参考以下步骤自定义过滤规则。

  1. 登录数据库审计系统。具体操作,请参见登录数据库审计系统
  2. 在左侧导航栏,选择规则配置 > 过滤规则
  3. 过滤规则页面,单击按规则过滤页签。
  4. 按规则过滤页签,单击新增

  5. 新增规则面板,完成规则配置,并单击保存

    类别

    配置项

    支持的逻辑符

    说明

    本信息

    名称

    不涉及

    规则名称。 长度为1~64个字符,支持中文、英文、半角句号(.)、下划线(_)和短划线(-)。

    重要

    同一数据库下的所有规则的名称不允许重复。

    描述

    不涉及

    规则描述信息。

    客户端

    客户端来源

    等于不等于

    客户端的IP地址,支持IPIP分组。支持填写多个值,多个值之间以半角逗号(,)分隔。例如192.168.XX.XX,192.168.XX.XX。

    客户端工具

    等于不等于

    客户端使用的工具名称。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,db2bp.exe,javaw.exe,plsqldev.exe。

    客户端端口

    不涉及

    客户端的访问端口号。支持填写多个值或区间,多个值之间以半角逗号(,)分隔。例如,10-15,20,25,30-40。

    客户端MAC地址

    等于不等于

    客户端机器的MAC地址。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,fe:58:c0:39:**:**,fe:58:c0:55:**:**。

    操作系统用户名

    等于不等于

    客户端操作系统的登录用户名。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,user01,user02。

    主机名

    等于不等于

    客户端的主机名。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,HostUser01,HostUser02。

    应用IP

    等于不等于

    客户端的IP地址,支持IPIP分组。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,192.168.XX.XX,192.168.XX.XX。

    应用用户名

    等于不等于

    客户端的应用用户名,支持自定义分组选择。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,TestUser01,TestUser02。

    服务端

    服务端IP

    等于不等于

    服务端的IP地址。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,192.168.XX.XX,192.168.XX.XX。

    服务端端口

    不涉及

    服务端的端口号。支持填写多个值或区间,多个值之间以半角逗号(,)分隔。例如,10-15,20,25,30-40。

    数据库账号

    等于不等于

    数据库的登录用户名,支持自定义分组选择。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,system,sys。

    服务端MAC地址

    等于不等于

    服务端所在服务器的MAC地址。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,fe:58:c0:39:**:**,fe:58:c0:55:**:**。

    数据库名(SID)

    不涉及

    服务端的数据库名。Oracle数据库输入SID,其他数据库输入数据库名称。支持填写多个值,多个值之间以半角逗号(,)分隔。

    行为

    对象组

    不涉及

    SQL语句所属的对象组。支持包含任一对象则满足包含所有对象才满足

    操作类型

    不涉及

    对数据库的操作类型,取值:

    • DDL:Truncate、Create、Alter、Drop、Comment、Rename。

    • DML:Select、Insert、Update、Delete、Call、Explain、Lock、Merge。

    • DCL:Grant、Revoke。

    • 其他:UNKNOWN、Savepoint、Commit、Rollback等。

    SQL模板ID

    不涉及

    SQL模板的ID。支持填写多个值,多个值之间以半角逗号(,)分隔。

    SQL关键字

    不涉及

    配置方式如下:

    1. 添加条件。

      在条件框中输入要匹配的报文内容,支持使用正则表达式。单击添加条件可以添加多个条件。

      添加一个条件后,您可以执行正则校验,验证指定的内容是否与设置的正则表达式相匹配。操作步骤如下:

      1. 单击条件下的正则校验

      2. 正则校验对话框,确认正则表达式,并输入校验的内容

      3. 单击校验

    2. 编写条件运算逻辑表达式

      通过与(&)、或(|)、非(~)和括号描述条件间的组合运算关系,条件使用序号表示,例如,“1”表示条件1。

      示例: 1&2,表示有两个SQL关键字条件,且两个关键字都要满足,才命中规则并触发告警。

    SQL长度

    大于等于

    SQL语句的长度。允许的范围为1字节到65536字节。

    关联表数

    大于等于

    SQL操作关联表的个数。SQL操作涉及表的个数大于等于此值时,数据库审计系统不审计该操作,允许输入最大值为255。

    WHERE子句

    不涉及

    是否包含WHERE子句。取值:不判断有WHERE子句没有WHERE子句

    结果

    执行时长

    大于等于小于等于区间

    SQL语句的执行时长。单位取值:毫秒微秒。取值范围为0~1800秒。SQL语句的执行时长属于此范围,则命中规则。

    影响行数

    大于等于小于等于区间

    SQL语句的影响行数。取值范围为0~999999999。SQL操作返回的记录数或受影响的行数属于此范围,数据库审计系统不审计该操作。

    返回结果集

    不涉及

    配置方式如下:

    1. 添加条件。

      在条件框中输入要匹配的报文内容,支持使用正则表达式。单击添加条件可以添加多个条件。

      添加一个条件后,您可以执行正则校验,验证指定的内容是否与设置的正则表达式相匹配。操作步骤如下:

      1. 单击条件下的正则校验

      2. 正则校验对话框,确认正则表达式,并输入校验的内容

      3. 单击校验

    2. 编写条件运算逻辑表达式

      通过与(&)、或(|)、非(~)和括号描述条件间的组合运算关系,条件使用序号表示,例如,“1”表示条件1。

      示例: 1&2,表示有两个SQL关键字条件,且两个关键字都要满足,才命中规则并触发告警。

    执行状态

    不涉及

    执行结果中包含的执行状态。

    执行结果描述

    匹配不匹配

    执行结果中包含的关键词,支持以正则表达式的方式进行匹配。

    其他

    生效时间

    不涉及

    规则的生效周期,支持自定义分组选择

  6. 选中目标规则,并单击启用选中项

    保存规则后,您必选启用该规则,该规则才能生效。如果需要启用全部规则,您可以单击启用全部

  7. 选择资产对话框,选择该规则生效的资产,并单击确定