安全规则概述
安全规则库用来保存已发现的不安全SQL语句的特征信息。系统通过将审计到的SQL语句和安全规则进行匹配从而判断SQL语句中是否包含可疑行为。
根据不安全SQL的特征,安全规则分成SQL注入攻击规则、漏洞攻击规则、账号安全规则、数据泄露规则和违规操作规则。
- SQL注入攻击是一种将SQL代码插入或添加到应用(用户)的输入参数中的攻击,之后再将这些参数传递给后台的数据库服务器加以解析并执行,SQL注入规则可以有效的发现此类攻击行为并产生告警。
- 漏洞攻击规则是根据已知的SQL漏洞信息而制定的,漏洞安全规则按照不同的漏洞类型可以分成缓冲区溢出和存储过程滥用。
- 账号安全规则是针对对数据库服务器进行暴力破解和登录失败场景下的安全规则。
- 数据泄露规则根据泄露场景分成拖库攻击、数据库外联、大流量返回、非授权访问,系统可以有效地发现这几种泄露场景并及时通知告警。
- 违规操作规则是针对于应用账号违规操作、运维人员的违规操作、数据库探测和异常语句场景。
系统内置900多条安全规则,覆盖了主流的应用场景,并且在不断地丰富。此外,用户可以自定义安全规则。
规则管理
内置规则不可更改,默认为推荐规则,您可以通过单击界面右上角的“推荐”按钮切换到全部规则。
说明内置规则包含特征规则及其他非特征规则,特征规则不可进行克隆和删除操作,非特征规则可进行克隆操作。
您可以管理自定义的规则,新增自定义安全规则的操作方法如下:
1.在菜单栏选择“规则配置 > 安全规则”进入“安全规则”页面,选择“规则管理”页签,单击“新增”。
2.在弹出的对话框中填写相关参数,填写完成后单击“保存”即可完成安全规则新增任务。
项目 参数 参数说明 基本信息 名称 设置规则名称,必须为中文字符、字母、数字、下划线“_”、点“.”或短横“-”,长度不超过64字符。 描述 规则描述。 等级 必选项,系统默认等级为中风险。等级可选高风险、中风险和低风险。 所属规则组 必选项,可选择自定义的规则组,也可以选择系统默认规则组。可通过以下步骤对自定义规则组进行管理:
单击所属规则组右边的“规则组管理”,可新增、修改和删除自定义规则组。
规则类型 当前支持普通规则和统计规则两类。
普通规则:单条审计记录匹配配置的普通规则,会触发普通告警(例如一条select语句,可能会触发一条普通告警)。
统计规则:指定时间内多次匹配配置的统计规则,会触发一条统计告警(例如5分钟内10次select失败,可能会触发一条统计告警)。
行为 当前支持告警和告警并阻断。
告警:操作命中规则后,仍正常执行,无特殊控制。
告警并阻断:操作命中规则后,该操作对应的数据库连接断开。
客户端 客户端来源 访问业务类型的客户端IP或IP组。可填写多个,以逗号“,”分隔。 客户端工具 可配多个客户端工具,使用逗号“,”分隔,例如:db2bp.exe,java.exe。 客户端端口 可配置多个值或区间,多个值间以逗号“,”分隔,例如:10-15,20,25,30-40。 客户端MAC地址 可填多个值,多个值间以逗号“,”分隔。 操作系统用户 可以选择字符串或者正则表达式,字符串可填多值,多个值间以逗号“,”分隔。 主机名 可以选择字符串或者正则表达式,字符串可填多值,多个值间以逗号“,”分隔。 应用IP 指定规则所匹配的应用IP或IP组,对应审计日志中的关联IP,可填多值,多个值间以逗号“,”分隔。 应用用户名 指定规则所匹配的应用用户或用户组,对应审计日志中的关联账号,可填多值,多个值间以逗号“,”分隔。 服务端 服务端IP 可填多个值,多个值间以逗号“,”分隔。 服务端端口 可配置多个值或区间,多个值间以逗号“,”分隔,例如:10-15,20,25,30-40。 数据库账号 指定规则所匹配的数据库登录用户账号或账号组或者使用正则表达式,可填多值,多个值之间以“,”分隔。 服务端MAC地址 可填多个值,多个值间以逗号“,”分隔。 数据库名(SID) 可以选择字符串或者正则表达式,Oracle数据库请输入SID,其他数据库输入数据库名,字符串可填多值,多个值间以逗号“,”分隔。 行为 对象 指定规则匹配的对象组。 操作类型 指定SQL语句的操作类型,例如:select、update、delete等。 SQL模板ID 可填项,可填多值,多个值间以逗号“,”分隔。 SQL关键字 SQL关键字:支持以正则表达式匹配报文。
单击“正则验证”输入报文内容,单击“校验”,验证输入内容与执行结果关键字中的正则表达式是否匹配;单击“增加条件”可添加多个条件。
条件运算逻辑表达式:SQL关键字填写后,此项为必填项。条件间的关系,支持与、或、非、括号运算(&:与;|:或;~:非),条件使用序号表示,即“1”表示条件1,例如:1&2,则代表有2个SQL关键字条件且两个关键字都要满足才能告警。
SQL长度 指定SQL语句的长度,取值范围:1B~64KB。 关联表数 SQL操作涉及表的个数大于等于此值时触发本规则,允许输入最大值为255。 WHERE字句 是否包含WHERE,支持三个选项:
不判断
有WHERE子句
没有WHERE子句
默认为不判断。WHERE子句用于提取满足指定条件的SQL记录,语法如下:
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
结果 执行时长 (选填)单位:秒、毫秒、微秒,取值范围:0到半个小时,SQL执行时长属于此范围,则触发规则。 影响行数 取值范围:0~999,999,999。SQL操作返回的记录数或受影响的行数属于此范围,则触发规则。 返回结果集 支持以正则表达式匹配结果集。 单击“正则验证”输入报文内容,单击“校验”,验证输入内容与执行结果关键字中的正则表达式是否匹配;单击“增加条件”可添加多个条件。
条件运算逻辑表达式:SQL关键字填写后,此项为必填项。条件间的关系,支持与、或、非、括号运算(&:与;|:或;~:非),条件使用序号表示,即“1”表示条件1,例如:1&2,则代表有2个SQL关键字条件且两个关键字都要满足才能告警。
执行状态 可选三类执行状态:
全部
成功
失败
默认为全部。
执行结果描述 支持以正则表达式方式匹配。 其他 生效时间 可自定义或者选择时间组。 每日最大告警数 取值范围:0~99,999,输入0表示没有限制。 结果集存储策略 设置触发该规则的告警日志的返回结果集存储策略,包含使用资产设置、保存和不保存。
启用规则
1.在左侧菜单栏选择“规则配置 > 安全规则”进入“安全规则”页面,选择“规则管理”页签,在规则列表中勾选目标规则,单击“启用选中项”。
2.在弹出对话框中勾选需要启用相关规则资产,单击“确定”,则可将已启用的规则直接应用到选择的资产上。
禁用规则
1.在左侧菜单栏选择“规则配置 > 安全规则”进入“安全规则”页面,选择“规则管理”页签,在规则列表中勾选目标规则,单击“禁用选中项”。
2.在弹出对话框中勾选需要禁用相关规则资产,单击“确定”,则可将已禁用的规则直接应用到选择的资产上。
白名单管理
已经匹配到安全规则的审计日志如果符合白名单的条件就不会触发告警。条件包含客户端、服务端、基本信息、结果、行为等。
新增白名单并启用的操作方法如下:
1..在左侧菜单栏选择“规则配置 > 安全规则”进入“安全规则”页面,选择“白名单管理”页签。
2.单击“新增”,进入“新增白名单”页面,编辑相关配置项(配置方法与新增自定义规则的参数配置方法相同,请参考规则管理)。
3.配置完成后,单击“保存”即可完成白名单的新增。
说明添加白名单后,需在对应的规则上启用该白名单才会生效。
4.在左侧菜单栏选择“规则配置 > 安全规则”进入“安全规则”页面,选择“规则管理”页签。
5.单击“白名单数量”列的数字。
6.在弹出的对话框中,将“状态”列的状态改为“启用”即可启用白名单。
说明如您需要删除白名单规则,则需要将白名单上启用的所有安全规则禁用后才能删除该白名单。
设置
此功能可设置规则的优先级状态,启用优先级可自定义规则匹配顺序,匹配上某条规则后,优先级更低的规则就不再匹配。关闭规则的优先级后,每个数据库操作行为可以触发的所有满足条件的安全规则。