规则配置是指根据一些特征(如客户端、服务端、SQL语句)定义危险行为(安全规则)、可以信任的行为(信任规则)和不审计的行为(过滤规则)。当系统审计到对数据库的操作匹配过滤规则的行为则不进行审计,对应匹配信任规则时不会触发告警,对应匹配安全规则时会触发告警。
系统匹配规则的顺序为:1)过滤规则;2)信任规则;3)安全规则。
安全规则库用来保存已发现的不安全SQL语句的特征信息。系统通过将审计到的SQL语句和安全规则进行匹配从而判断SQL语句中是否包含可疑行为。
根据不安全SQL的特征,安全规则分成SQL注入攻击规则、漏洞攻击规则、账号安全规则、数据泄露规则和违规操作规则。
系统内置900多条安全规则,覆盖了主流的应用场景,并且在不断地丰富。此外,用户可以自定义安全规则。
内置规则不可更改,默认为推荐规则,用户可以通过按钮切换到全部规则,操作方法如下:
说明
内置规则包含特征规则及其他非特征规则,特征规则不可进行克隆和删除操作,非特征规则可进行克隆操作。
在菜单栏选择“规则配置安全规则”进入安全规则页面,选择规则管理,点击【推荐】,切换至【全部】。
用户也可以管理自定义的规则,新增自定义安全规则的操作方法如下:
详细配置请参见下表。
项目 | 配置项 | 说明 |
---|---|---|
基本信息 | 名称 | 设置规则名称,必须为中文字符、字母、数字、下划线“_”、点“.”或短横“-”,长度不超过64字符。 |
描述 | 规则描述。 | |
等级 | 必选项,系统默认等级为中风险。等级包括高风险、中风险和低风险。 | |
所属规则组 | 必选项,可选择自定义的规则组,也可以选择系统默认规则组。可通过以下步骤对自定义规则组进行管理:点击所属规则组右边的【规则组管理】,可新增、修改和删除自定义规则组。 | |
规则类型 | 目前支持普通规则和统计规则两类。
| |
行为 | 目前支持告警和告警并阻断。
| |
客户端 | 客户端来源 | 访问业务类型的客户端IP或IP组。可填写多个,以逗号“,”分隔。有关IP组的更多信息,请参考IP组管理。 |
客户端工具 | 可配多个客户端工具,使用逗号“,”分隔,例如:db2bp.exe,java.exe。 | |
客户端端口 | 可配置多个值或区间,多个值间以逗号“,”分隔,例如:10-15,20,25,30-40。 | |
客户端MAC地址 | 可填多值,多个值间以逗号“,”分隔。 | |
操作系统用户 | 可以选择字符串或者正则表达式,字符串可填多值,多个值间以逗号“,”分隔。 | |
主机名 | 可以选择字符串或者正则表达式,字符串可填多值,多个值间以逗号“,”分隔。 | |
应用IP | 指定规则所匹配的应用IP或IP组,对应审计日志中的关联IP,可填多值,多个值间以逗号“,”分隔。有关IP组的更多信息,请参考IP组管理。 | |
应用用户名 | 指定规则所匹配的应用用户或用户组,对应审计日志中的关联账号,可填多值,多个值间以逗号“,”分隔。有关应用用户组的更多信息,请参考应用用户组管理。 | |
服务端 | 服务端IP | 可填多值,多个值间以逗号“,”分隔。 |
服务端端口 | 可配置多个值或区间,多个值间以逗号“,”分隔,例如:10-15,20,25,30-40。 | |
数据库账号 | 指定规则所匹配的数据库登录用户账号或账号组或者使用正则表达式,可填多值,多个值之间以“,”分隔。有关数据库账号组的更多信息,请参考数据库账号组管理。 | |
服务端MAC地址 | 可填多值,多个值间以逗号“,”分隔。 | |
数据库名(SID) | 可以选择字符串或者正则表达式,Oracle数据库输入SID,其他数据库输入数据库名,字符串可填多值,多个值间以逗号“,”分隔。 | |
行为 | 对象组 | 指定规则匹配的对象组。有关对象组的更多信息,请参考对象组管理。 |
操作类型 | 指定SQL语句的操作类型,如select、update、delete等。 | |
SQL模板ID | 可填项,可填多值,多个值间以逗号“,”分隔。有关SQL模板ID的更多信息,请参考查询SQL模板。 | |
SQL关键字 | SQL关键字:支持以正则表达式匹配报文。单击【正则验证】输入报文内容,单击【校验】,验证输入内容与执行结果关键字中的正则表达式是否匹配。点击【增加条件】添加多个条件。 | |
SQL长度 | 指定SQL语句的长度,取值范围:1B~64KB。 | |
关联表数 | SQL操作涉及表的个数大于等于此值时触发本规则,允许输入最大值为255。 | |
WHERE子句 | 是否包含WHERE,支持三个选项:不判断、有WHERE子句、没有WHERE子句。默认为不判断。WHERE子句用于提取满足指定条件的SQL记录,语法如下: | |
结果 | 执行时长 | 可填项,单位:秒、毫秒、微秒,取值范围:0到半个小时,SQL执行时长属于此范围,则触发规则。 |
影响行数 | 取值范围:0~999,999,999。SQL操作返回的记录数或受影响的行数属于此范围,则触发规则。 | |
返回结果集 | 支持以正则表达式方式匹配结果集。单击【正则验证】输入结果集内容,单击【校验】,验证输入内容与返回结果关键字的正则表达式是否匹配。可通过【添加条件】添加多个条件。 | |
执行状态 | 包含三个执行状态:全部、成功、失败。默认为全部。 | |
执行结果描述 | 支持以正则表达式方式匹配。 | |
其它 | 生效时间 | 可自定义或者选择时间组。有关时间组配置的更多信息,请参考时间组管理。 |
每日最大告警次数 | 取值范围:0~99,999,输入0表示没有限制。 | |
结果集存储策略 | 设置触发该规则的告警日志的返回结果集存储策略,包含使用资产设置、保存和不保存。 |
已经匹配到安全规则的审计日志如果符合白名单的条件就不会触发告警。条件包含客户端、服务端、基本信息、结果、行为等。
新增白名单的操作方法如下:
添加白名单后,需在对应的规则上启用该白名单才会生效。启用白名单的操作方法如下:
在告警日志页面点击【详细】,进入告警日志详细页面,点击【此类规则不告警】选择“添加到规则白名单”,此种方式会自动将白名单挂载在告警日志对应的安全规则上。
说明
需要将白名单上启用的所有安全规则禁用后才能删除该白名单。
设置规则的优先级状态,启用优先级可自定义规则匹配顺序,匹配上某条规则后,优先级更低的规则就不再匹配。关闭规则的优先级后,每个数据库操作行为可以触发的所有满足条件的安全规则。
当系统匹配信任规则后,不会再匹配安全规则,不产生告警信息。
新增信任规则的操作方法如下:
详细配置请参见规则管理。
在告警日志页面点击【详情】,进入告警日志详细页面,点击【此类规则不告警】选择“添加到信任规则”,此种方式会自动将信任规则启用到告警日志对应的资产上。
过滤规则的功能是根据某些特定的条件过滤一些操作,系统对这些操作不审计,从而节省设备的磁盘空间,将有限的资源用来存储更有价值的审计数据。
过滤规则的过滤方式有三种,分别是按IP过滤、按SQL模板过滤和按规则过滤。
按IP过滤则是将新增的客户端IP认为是白名单,不审计该IP下任何信息。新增按IP过滤规则的操作方法如下:
详细配置项和说明请参见下表。
配置项 | 说明 |
---|---|
名称 | 必须为中文字符、字母、数字、下划线“_”、点“.”或短横“-”,长度不超过64字符。 |
不审计的IP | 格式为“IP/掩码长度”,可配置多组,用“,”隔开。例如:1.2.3.4/32,10.0.0.0/8。 |
说明
此处添加的不审计的IP默认使用旁路镜像和Agent日志采集方式的全部资产有效。即添加后,资产中有符合上述不审计IP条件的客户端和服务端均不做任何审计,请谨慎添加。
按SQL模板过滤是为用户提供常见的可信任的SQL模板,减少误告警,提高告警准确率。系统内置部分常见数据库的常见非违规SQL语句模板,且默认对全部对应的数据库生效。
用户可启用或禁用指定模板,操作方法如下:
按规则过滤是为用户提供自定义的过滤规则,支持用户按照特定的条件设置过滤规则,规则包括客户端信息、服务端信息、SQL请求和SQL结果等条件。在资产上启用了过滤规则后,符合规则的内容则不会被审计。
添加按规则过滤的规则的操作方法与添加安全规则的方法相同,请参见规则管理。
添加自定义过滤规则后,需要在资产上启用过滤规则后才能生效。
规则维护包括升级内置安全规则和导入/导出自定义安全规则。
在菜单栏选择“规则设置规则维护”进入规则维护页面。点击【上传升级包】,选择升级包文件即可升级内置安全规则;点击【导入规则】,选择自定义规则文件,即可导入自定义规则;点击【导出规则】即可导出自定义规则至本地。
关联数据将一些具有相同或类似属性的资源划分到某一个组内,方便对这些资源进行批量设置。系统支持IP组、数据库账号组、应用用户组、时间组和对象组以及人员六种类型。
IP组是特定IP的集合。如自定义某规则需要在某固定IP集合内有效时,可以将此固定IP集合添加至IP组,便于用户在规则中使用。IP组管理页面提供新增、导入、导出、编辑、删除和查询功能。
详细配置请参见下表。
配置项 | 说明 |
---|---|
名称 | 必须为中文字符、字母、数字、下划线“_”、点“.”或短横“-”,长度不超过64字符。 |
IP |
|
通过批量导入IP组的方法可以提高创建IP组的效率,操作方法如下:
数据库账号组是特定数据库账号的集合。如自定义某规则需要在某固定数据库账号集合内有效时,可将这些数据库账号加入数据库账号组,在自定义规则时选择该数据库账号组即可。
数据库账号组管理页面提供增加、编辑、删除和查询功能。
新增数据库账号组的操作方法如下:
详细配置请参见下表。
配置项 | 说明 |
---|---|
名称 | 必须为中文字符、字母、数字、下划线“_”、点“.”或短横“-”,长度不超过64字符。 |
数据库账号 | 可输入多项,用英文逗号隔开。 |
导入数据库账号组的方法与导入IP组的方法类似,不再赘述。
应用用户组是特定应用用户的集合。如自定义某规则需要在某固定应用用户集合内有效时,可以将这些应用用户加入到应用用户组,在创建规则时选择该应用用户组即可。
应用用户组管理页面提供增加、编辑、删除和查询功能。
新增应用用户组的操作方法如下:
导入应用用户组的操作方法与导入IP组的方法类似,不再赘述。
时间组是一组特定组时间的集合。如自定义某规则需要在特定时间集合内有效时,可将这些时间加入到时间组,在创建规则时选择该时间组即可。
时间组管理页面提供增加、编辑、删除和查询功能。
新增时间组的操作方法如下:
导入时间组的操作方法与导入IP组方法相似,不再赘述。
对象组是一组关键数据库的关键表及关键字段编辑行为对象集合。如自定义某规则需要在某固定对象集合内有效时,可将这些对象加入对象组,创建规则时选择该对象所在组即可。
对象组管理页面提供增加、编辑、删除、导入、导出和下载模板功能。
新增对象组的操作方法如下:
详细配置请参见下表。
配置项 | 说明 |
---|---|
资产 | 下拉列表可选择对象组所对应的要选择的资产,默认为所有资产通用。 |
数据库/Schema | Schema可视为同一个使用者所拥有的所有数据库对象之集合,例如:用户scott所建立的表emp,其完整名称为scott.emp,而scott就是emp的schema名称,所以Schema其实就是一个Oracle数据库的用户名称。 |
表 | 填写要添加的表名。 |
用户 | 数据库系统的用户。 |
视图 | 视图是从一个或几个基本表(或视图)中导出的虚拟的表。 |
存储过程 | 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 |
函数 | 数据库系统定义的函数,例如:SUBSTRING('abcde',1,2)。 |
字段 | 填写要添加的字段名。 |
索引 | 是对数据库表中一个或多个列(例如,employee表的姓名(name)列)的值进行排序的结构。 |
导入对象组的操作方法与导入IP组方法相似,不再赘述。
系统支持对人员进行管理,包括新增、编辑、导入、导出和删除等。
新增人员的操作方法如下:
详细配置请参见下表。
配置项 | 说明 |
---|---|
应用用户名 |
|
IP地址 | 人员所使用终端的IP地址。可配置多个,支持配置网段,示例: |
工号 | 人员对应的工号。 |
姓名 | 人员对应的姓名。 |
手机 | 人员对应的手机号。 |
科室 | 人员所在部门。 |
房间 | 人员所在房间号。 |
主机名 | 人员所对应资产的主机名称。 |
Mac地址 | 人员所对应资产的物理Mac地址。 |
导入人员的操作方法与导入IP组方法相似,不再赘述。