本文介绍了在云盾数据库审计系统中为数据库配置审计规则的具体操作。

前提条件

已添加数据库。关于添加数据库的具体操作,请参见添加数据库

背景信息

将数据库添加到数据库审计系统后,您可以为数据库配置审计规则。当审计记录命中配置并启用的审计规则时,审计规则会触发告警。

审计规则包括系统规则和用户规则。
  • 系统规则为内置规则,支持的规则类型包括:SQL注入规则、漏洞攻击规则、账号安全规则、数据泄露规则、违规操作规则。每种类型下包括多条规则。不同的数据库支持的系统规则不同,具体以数据库的规则配置页面的可使用规则为准。您在添加资产时可以选择是否启用系统规则。
  • 用户规则为自定义规则。添加数据库后,您可以为其添加用户规则,用户规则在数据库之间互不通用。

新增用户规则

  1. 登录数据库审计系统。具体操作,请参见登录数据库审计系统
  2. 在左侧导航栏,选择规则配置 > 安全规则
  3. 规则管理页签,单击新增
  4. 新增规则面板,根据面板提示完成规则配置,并单击保存
    类别 配置项 支持的逻辑符 说明
    基本信息 名称 不涉及 规则名称。 长度为1~64个字符,支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。
    注意 同一数据库下的所有用户规则的名称不允许重复。
    描述 不涉及 规则描述信息。
    等级 不涉及 命中规则后触发的告警等级。取值:高风险中风险低风险
    上级目录 不涉及 规则隶属的上级目录。
    规则类型 不涉及 规则所属的类型。 取值:普通规则统计规则
    统计时长
    注意 仅适用于统计规则。
    不涉及 统计规则在统计时间内的时长。允许范围10秒到30分钟。
    累计次数
    注意 仅适用于统计规则。
    不涉及 统计规则在时间范围内所触发的统计规则次数。允许范围2到30次。
    累计条件
    注意 仅适用于统计规则。
    不涉及 统计规则可设置的统计条件。取值:同一会话同一客户端IP同一数据库账号同一客户端工具
    客户端 客户端来源 等于不等于 客户端的IP地址,支持IPIP分组。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,192.168.1.2,192.168.1.3。
    客户端工具 等于不等于 客户端使用的工具名称。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,db2bp.exe,javaw.exe,plsqldev.exe。
    客户端端口 不涉及 客户端的访问端口号。支持填写多个值或区间,多个值之间以半角逗号(,)分隔。例如,10-15,20,25,30-40。
    客户端MAC地址 等于不等于 客户端机器的MAC地址。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,fe:58:c0:39:dd:cf,fe:58:c0:55:dd:cf。
    操作系统用户 等于不等于 客户端操作系统的登录用户名。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,xxx,yyy。
    主机名 等于不等于 客户端的主机名。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,xxx,yyy。
    应用IP 等于不等于 客户端的IP地址,支持IPIP分组。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,192.168.XX.XX,192.168.XX.XX。
    应用用户名 等于不等于 客户端的应用用户名,支持自定义分组选择。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,xxx,yyy。
    服务端 服务端IP 等于不等于 服务端的IP地址。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,192.168.XX.XX,192.168.XX.XX。
    服务端端口 不涉及 服务端的端口号。支持填写多个值或区间,多个值之间以半角逗号(,)分隔。例如,10-15,20,25,30-40。
    数据库账号 等于不等于 数据库的登录用户名,支持自定义分组选择。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,system,sys。
    服务端MAC地址 等于不等于 服务端机器的MAC地址。支持填写多个值,多个值之间以半角逗号(,)分隔。例如,fe:58:c0:39:dd:cf,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关键字条件,且两个关键字都要满足,才命中规则并触发告警。

    执行状态 不涉及 执行结果中包含的执行状态。取值:全部成功失败
    执行结果描述 匹配不匹配 执行结果中包含的关键词,支持以正则表达式的方式进行匹配。
    其他 生效时间 不涉及 规则的生效周期,支持自定义分组选择。取值:任意时间每天每周每月
    成功添加用户规则后,您可以在规则列表中查看新添加的用户规则。新添加的用户规则默认无数据库使用该规则(资产数量0),您可查看下列启用规则的操作步骤,为数据库引用用户规则。

启用规则

启用单条规则

  1. 规则管理页面,定位到目标规则,单击资产数量列下的数字。
    资产数量
  2. 设置使用规则<规则名称>资产对话框,选择您需要使用该规则的数据库。
  3. 单击确定

批量启用规则

  1. 规则管理页面,定位到要批量启用的规则,选中其等级左侧的复选框。
    批量启用规则

    当选中规则等级左侧的复选框后,规则列表中的启用全部自动变更为启用选中项

  2. 单击启用选中项
  3. 选择资产对话框,选择您需要启用该规则的数据库。
  4. 单击确定

启用全部规则

  1. 规则管理页面,单击启用全部
  2. 选择资产对话框,选择您需要启用全部规则的数据库。
  3. 单击确定

禁用规则与启用规则操作步骤相似,如您需要禁用规则,可以参考上述对应操作步骤取消启用、选择禁用选中项、选择禁用全部即可。

后续步骤

  • 当目标数据库的审计记录命中启用的审计规则时,审计规则会触发告警。您可以查询数据库的告警信息。具体操作,请参见告警日志
  • 您可以配置用户规则中的白名单,满足白名单设置的审计记录,即使命中了用户规则,也不会触发告警。更多信息,请参见配置白名单