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

背景信息

数据库审计系统支持配置以下三种过滤规则。
  • 按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. 选择资产对话框,选择该规则生效的资产,并单击确定