DM8实时侵害检测
实时侵害检测系统
审计机制是DM数据库管理系统安全管理的重要组成部分之一。DM具有一个灵活的审计子系统,除了通过它来记录系统及事件、个别用户的行为以及对数据库对象的访问之外;还具有实时侵害检测的功能。实时侵害检测系统用于实时分析当前用户的操作,并查找与该操作相匹配的实时审计分析规则,如果规则存在,则判断该用户的行为是否是侵害行为,确定侵害等级,并根据等级采取相应的响应措施。
实时侵害检测系统定义了四种级别的侵害等级,从四级到一级侵害行为严重程度递增。
四种侵害等级如下:
- 四级:操作只违反了IP或者时间段设置之一,且对应累计次数在规定时间间隔内没有达到门限值,或者没有门限值设置。
- 三级:操作同时违反了IP和时间段设置,且累计次数在规定时间间隔内没有达到门限值,或者没有门限值设置。
- 二级:操作的IP和时间段都正常, 且累计次数在规定时间间隔内达到了门限值。
- 一级:操作只违反了IP或时间段设置之一,且对应累计次数在规定时间间隔内达到了门限值,或者操作同时违反了IP和时间段设置,且累计次数在规定时间间隔内达到了门限值。
DM实时侵害检测系统根据侵害检测结果做出响应的安全审计响应,由低到高四个等级分别为:
- 四级响应:当系统检测到四级侵害行为时,生成报警信息。
- 三级响应:当系统检测到三级侵害行为时,终止当前操作(用户当前连接仍然保持)。同时生成报警信息。
- 二级响应:当系统检测到二级侵害行为时,强制断开用户当前连接,退出登录。同时生成报警信息。
- 一级响应:当系统检测到一级侵害行为时,强制断开用户当前连接,退出登录,并且锁定账号或使账号失效。同时生成报警信息。
测试环境
操作系统:CentOS 7 64位
数据库版本:达梦8.1
相关关键字:DM8、实时侵害检测
1.开启实时审计开关
启动数据库服务。
使用SYSAUDITOR用户登录执行SP_SET_ENABLE_AUDIT(2)来开启实时审计开关。
2.配置dmamon.ini
dmamon用来在DM实时侵害检测系统检测到侵害事件且需要报警时可将报警信息以邮件形式发送给指定邮箱。dmamon的运行需要指定对应的配置文件dmamon.ini,此配置文件只能通过工具dmamon_ctl进行创建或修改。
3.启动dmamon服务
通过命令./dmamon path=/dm8/data/DAMENG/dmamon.ini USERID=SYSAUDITOR/SYSAUDITOR@localhost:5236来启动dmamon服务来进行实时审计告警。
4.创建测试用户及测试表
使用SYSDBA用户登录执行以下命令创建测试用户及测试表:
--创建一个用户锁定期为10分钟的USER01用户。
create user USER01 IDENTIFIED BY "USER00001" limit password_lock_time 10;
--给与USER01用户DBA权限。
GRANT DBA TO USER01;
--创建测试表并插入一条数据。
CREATE TABLE TEST1(A INT, B CHAR);
INSERT INTO TEST1 VALUES(1, 'a');
5.设计审计分析规则
使用SYSAUDITOR用户登录执行以下命令设置审计分析规则:
--对用户USER01查询操作SYSDBA模式下TEST1表设置审计
SP_AUDIT_OBJECT('SELECT', 'USER01', 'SYSDBA', 'TEST1', 'ALL');
call SP_CREATE_AUDIT_RULE('Rule_1','SELECT','USER01','SYSDBA','TEST1','ALL','"223.254.0.1"','"2020-12-20" "09:54:14" to "2021-12-20" "09:54:13"',1,5);
对用户USER01查询操作SYSDBA模式下TEST1表设置审计分析规则,后面的参数表示容许的IP段、时间段、时间间隔和间隔时间内执行的频数阈值。表示用户得在223.254.0.1IP地址下,2020-12-20 9:54:14 至2021-12-20 9:54:13 时间段内,且每分钟内不能查询超过五次。否则会违反规则而实时报警。
6.四级警报
普通用户USER01在本机上(127.0.0.1)登录查询表TEST1:
select * from SYSDBA."TEST1";
这种情况下仅违反IP,不违反时间段和频数阈值。
能够成功查询到数据,同时收到四级报警邮件。邮件如下,说明了违反规则的详细信息,包括用户、执行的语句以及IP地址和时间违反了何种规则。
7.三级警报
先使用SYSAUDITOR用户修改审计分析规则。
call SP_ALTER_AUDIT_RULE('Rule_1','SELECT','USER01','SYSDBA','TEST1','ALL','"223.254.0.1"','"SAT" "10:20:23" to "SUN" "10:20:23"',1,5);
此时修改后的审计规则需要用户在周六10:20:23到周日10:20:23时间段内查询才不会违反规则。
现通过普通用户USER01在本机(127.0.0.1)、非周末时间查询表TEST1:
select * from SYSDBA."TEST1";
此时既违反IP也违反时间段,但不违反频数阈值。
此时无法成功查询到数据,同时收到三级报警邮件。
普通用户USER01执行语句:
select 1;
能够成功查询说明用户未被强制断开连接。
8.二级警报
SYSAUDITOR用户修改审计分析规则:
--修改审计分析规则,使查询操作会触发二级报警,也就是不违反Ip段和时间段,仅违反频数
call SP_ALTER_AUDIT_RULE('Rule_1','SELECT','USER01','SYSDBA','TEST1','ALL','"127.0.0.1"','"2020-07-23" "09:54:14" to "2021-07-23" "09:54:13"',1,5);
现在让USER01用户不违反时间段和IP情况下仅违反频数进行查询表TEST1:
select * from SYSDBA."TEST1";
连续执行五次该查询语句后收到三级报警邮件,且第五次无法成功查询数据。
普通用户执行语句:
select 1;
发现已经强制用户断开连接,点击重连。重新输入正确的用户名和密码后能够正常连接。
9.一级警报
SYSAUDITOR用户修改审计分析规则
--修改审计分析规则,使查询操作会触发一级报警,也就是违反频数的同时,至少同时违反Ip段和时间段之一
call SP_ALTER_AUDIT_RULE('Rule_1','SELECT','USER01','SYSDBA','TEST1','ALL','"223.254.0.1"','"2020-07-23" "09:54:14" to "2021-07-23" "09:54:13"',1,5);
现在让USER01用户在违反IP规则下连续执行五次查询表TEST1操作:
select * from SYSDBA."TEST1";
前四次能够查询到结果,第五次显示非法操作。且会收到5封报警邮件,包括4封四级报警邮件和1封一级报警邮件。而且用户会被强制断开连接且锁定。
此时普通用户执行:
select 1;
提醒用户网络通信异常需要重连,点击重连输入正确的账号密码。
此时用户被锁定,登录失败。
测试完毕,达梦数据库能够通过设计实时审计规则来进行侵害检测并发送报警邮件,且根据相应的侵害等级做出相应的反应。