达梦数据库常见的安全检查项目

发布于:2022-11-06 ⋅ 阅读:(1017) ⋅ 点赞:(0)

保护数据,以防不合法的使用所造成的数据泄露、更改或破坏,数据库安全性极为重要,本文讲述了达梦数据库安全检查时几个比较常见检查项目

 一、审计分析

什么是数据库审计?

数据库审计是记录数据库被访问行为的日志系统。

数据库审计作用是什么?

1、助力企业顺利通过等保合规审计,提供合规审计依据;

2、支持审计数据增量备份,满足等保规范对审计数据保存期限要求;

3、具备风险状况、运行状况、性能状况、语句分布的实时监控能力;

4、帮助您记录、分析、追查数据库安全事件;

5、通过数据库性能诊断,追踪危险事件和不安全操作;

6、有效发现程序后门,降低数据泄密风险;

7、提供数据库实时风险告警能力,及时响应数据库攻击。

达梦数据库的审计:

审计机制是达梦数据库中安全管理的重要组成部分之一。达梦数据库除了提供常见的数据安全保护措施,还提供对日常事件的事后审计监督。审计作为一个灵活的子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过观察、跟踪审计信息,数据库审计员可以查看用户访问的形式以及曾试图对该系统进行的操作,从而采取积极、有效的应对措施。


1、审计的开关

在达梦数据库中,专门为审计配置了开关。一般默认是关闭的。审计功能对数据库自身的性能有一定的影响,需要结合实际。如果需要打开审计开关,由过程VOID SP_SET_ENABLE_AUDIT(param int);控制,param有三种取值:

0:关闭审计  1:打开普通审计  2:打开普通审计和实时审计

打开普通审计开关:SP_SET_ENABLE_AUDIT (1);
关闭普通审计开关:SP_SET_ENABLE_AUDIT (0);
打开普通审计和实时审计:SP_SET_ENABLE_AUDIT (2);

如果不确定的是否开通了审计开关,可以通过查询V$DM_INI动态视图查询ENABLE_AUDIT的当前值。

SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';

2、审计策略

2.1、对用户登录登出审计:可以详细记录业务用户和管理用户的登录登出行为,此举可以排查是否有异常未知的连接。

2.2.对用户的DDL操作审计:当对数据库做DDL操作,尤其是drop、alter操作时,此举可以防止误修改或删除对象。

语句:SP_audit_stmt(table/view/procedure,用户/null,ALL/SUCCESSFUL/FAIL)

举例如下:

---对表开通审计,用户不限制,操作不管成功与否都审计
SP_audit_stmt('table','null','all');
---对视图开通审计,用户不限制,操作不管成功与否都审计
SP_audit_stmt('view','null','all');
---对存储过程开通审计,用户不限制,操作不管成功与否都审计
SP_audit_stmt('procedure','null','all');

---对表关闭审计
SP_noaudit_stmt('table','null','all');
---对视图关闭审计
SP_noaudit_stmt('view','null','all');
---对存储过程关闭审计
SP_noaudit_stmt('procedure','null','all');

2.3.对用户的DML操作审计:当对数据库做DML操作,特别是update、delete操作时,此举可以防止误更新或删除表中的数据。

举例如下

---审计SYSDBA用户对表数据的插入、更新、删除等操作,操作不管成功与否都审计
SP_AUDIT_STMT('INSERT TABLE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('UPDATE TABLE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('DELETE TABLE', 'SYSDBA', 'ALL');

2.4.查看审计策略:当使用DM提供的审计机制进行了审计设置后,可通过数据字典表SYSAUDITOR.SYSAUDIT查询审计设置信息。

SELECT
        SF_GET_AUDIT_TYPENAME(A."TYPE")        ,
        SF_GET_AUDIT_LEVELNAME(A."LEVEL")      ,
        SF_GET_AUDIT_WHENEVERNAME(A."WHENEVER"),
        A.*
FROM
        SYSAUDITOR.SYSAUDIT A;

3、审计文件管理

审计信息储存在审计文件中,默认存放位置在数据库存放位置(通过查看dm.ini文件查看SYSTEM_PATH指定路径)。如果需要开通审计,在有条件的情况下,单独提供一块存储磁盘用于作审计文件的存放。需要修改审计存储位置,在dm.ini文件中添加参数AUD_PATH来指定审计文件的存放路径。

参数 说明 缺省值 属性
AUD_PATH
审计文件的存放路径,缺省使用 SYSTEM_PATH
路径
- 手动
AUDIT_FILE_FULL
_MODE
剩余空间不足时的处理方式:
1 :审计文件创建失败,卡住
2 :审计文件创建失败,不再审计
1 静态
AUDIT_SPACE_LIM
IT
审计文件总存储空间大小限制,以 M 为单位。
有效值范围( 0~1024*1024 ), 0 表示不限制
8192
静态,系
统级
AUDIT_MAX_FILE_
SIZE
单个审计文件的最大大小,以 M 为单位。有效
值范围( 1~4096
100
动态,系
统级
AUDIT_IP_STYLE
审计记录 IP 字段显示格式。
0 :仅显示 IP
1 :显示 IP 和主机名
0
静态

若系统审计人员已对历史审计信息进行了充分分析,不再需要某个时间点之前的历史审计信息,可使用系统过程SP_DROP_AUDIT_FILE删除指定时间点之前的审计文件。

指定删除20221-05-01 00:00:00以前的普通审计文件。

SP_DROP_AUDIT_FILE('2021-05-01 00:00:00',0);

指定删除当前时间以前的普通审计文件。

SP_DROP_AUDIT_FILE(SYSDATE,0);

需要注意的是该过程不会删除当前正在使用的审计文件,即永远会有1个审计文件的存在。 如果直接删除审计文件,则需要重启数据库,审计文件才会再次生成,即审计功能会直接失效。

对于如何查看审计文件,有以下三个方法:

3.1.在图形化条件的情况下,可通过DM审计分析工具分析,这个比较方便,效果更直观。

./dmaudtool userid=sysauditor/SYSAUDITOR  AFIL_PATH=/dmaud/DAMENG  OUT_PATH=/home/dmdba/aud_out.txt SCHNAME=SYSDBA

3.2.命令行使用DM审计分析工具,在安装目录的目录下

举例:

./dmaudtool USERID=sysauditor/SYSAUDITOR AFIL_PATH=/dm8/data/DAMENG/ OUT_PATH=/dm8/data/3.txt

3.3.通过动态视图SYSAUDITOR.V$AUDITRECORDS查询系统默认路径下的审计文件的审计记录

SELECT * FROM SYSAUDITOR.V$AUDITRECORDS  order by OPTIME desc;

二、账号、口令的等检查项

 1.查看密码策略复杂度:

0 无策略;

1 禁止与用户名相同;

2 口令长度不小于 9

4 至少包含一个大写字母(A-Z)

8 至少包含一个数字(0-9); 、

16 至少包含一个标点符号(英文输入法状态下,除和空格外的所有符号)

---查看管理员是否存在默认密码或者密码为空,发现问题及时整改。
SQL> select username , user_id ,password from dba_users where password='' or password is null;
--查看密码策略强度
SQL> SELECT * FROM V$PARAMETER WHERE NAME='PWD_POLICY';

如果觉得密码策略强度不够,可执行以下:SP_SET_PARA_VALUE(1, 'PWD_POLICY',数字根据策略选择相加); 

SQL> SP_SET_PARA_VALUE(1, 'PWD_POLICY',31);

 2.删除不必的用户或者查看权限授权范围

SQL> select * from dba_role_privs;

3.查看是否开启通信加密(0为未启用)

SQL> select * from V$PARAMETER where name= 'ENABLE_ENCRYPT';

4.以下是关于对用户test资源权限配置项进行修改:

---设置最大会话数为5
alter user "TEST" limit SESSION_PER_USER 5;
---设置会话空闲期(1-1440分钟)
alter user "TEST" limit SESSION_PER_USER UNLIMITED CONNECT_IDLE_TIME 30;
---设置会话持续期(1-1440分钟)
alter user "TEST" limit SESSION_PER_USER UNLIMITED getConnectTime 30;
---设置登录失败次数
alter user "TEST" limit FAILED_LOGIN_ATTEMPS 4;
---设置口令有效期180天(1-365天)
alter user "TEST" limit FAILED_LOGIN_ATTEMPS 4 PASSWORD_LIFE_TIME 180;
--设置IP白名单
alter user "TEST" allow_ip "127.0.0.1";

结语:安全检查项还需什么项目,可在评论区留言补充。

更多内容可查看达梦技术文档 (dameng.com)https://eco.dameng.com/document/dm/zh-cn/start/index.html