身份鉴别

W001-口令强度策略不够完善。

1
2
3
4
5
6
7
8
--查看密码策略
SELECT PARA_NAME ,PARA_VALUE FROM V$DM_INI WHERE "V$DM_INI".PARA_NAME = 'PWD_POLICY'
--修改密码策略(只针对新的用户生效)
ALTER SYSTEM SET ‘PWD_POLICY’=31 BOTH;
--- 查看密码过期策略
SELECT A.USERNAME,B.LIFE_TIME ,GRACE_TIME FROM ALL_USERS A ,SYSUSERS B WHERE A.USER_ID =B.ID
--修改密码有效期90天,宽限期30天
ALTER USER 用户名 LIMIT PASSWORD_LIFE_TIME 90, PASSWORD_GRACE_TIME 30;

W002-无登录失败处理功能。

1
2
3
4
--查看失败处理策略
SELECT A.USERNAME,B.LOCK_TIME , b.FAILED_ATTEMPS ,b.CONN_IDLE_TIME FROM ALL_USERS A ,SYSUSERS B WHERE A.USER_ID =B.ID
--修改用户登录失败三次,锁定1分钟,空闲连接时间10分钟
ALTER USER 用户名 LIMIT PASSWORD_LOCK_TIME 1 , FAILED_LOGIN_ATTEMPS 3 ,CONNECT_IDLE_TIME 10;

W003-远程管理时未采用加密措施。

1
2
3
4
5
--使用SSL认证登录需要用户自己提供相关的SSL证书。
--使用配通讯加密算法进行通讯加密(需要重启数据库生效)
ALTER SYSTEM SET 'COMM_ENCRYPT_NAME'='DES_CFB' SPFILE;
--可以使用的加密算法查询
SELECT * FROM V$CIPHERS;

访问策略

W005-未实现操作系统和数据库特权用户权限分离。

1
2
3
4
--创建普通用户语句。
CREATE USER 用户名 IDENTIFIED BY "密码";
--授权
GRANT RESOURCE,PUBLIC,VTI,SOI TO 用户;

安全审计

使用SYSAUDITOR账户操作

W007-数据库审计开启

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
--开启数据审计
SP_SET_ENABLE_AUDIT (1);
--添加审计规则(SYSDBA/SYSAUDITOR添加,用户审计、用户实施DDL审计、用户实施DML审计、用户的权限更改审计,相关数据操作员添加,用户审计、用户实施DDL审计、用户的权限更改审计)。
--用户审计
--添加用户创建/修改/删除用户操作的审计
SP_AUDIT_STMT('USER', '用户名', 'ALL');
--添加用户登陆登出的审计
SP_AUDIT_STMT('CONNECT', '用户名', 'ALL')
--用户权限的更改审计
--添加用户回收权限操作
SP_AUDIT_STMT('REVOKE', '用户名' , 'ALL');
--添加用户授权授予权限操作
SP_AUDIT_STMT('GRANT', '用户名', 'ALL');
--用户实施DML操作审计
--添加用户表上删除的权限
SP_AUDIT_STMT('DELETE TABLE', '用户名', 'ALL');
--添加用户表上更新的权限
SP_AUDIT_STMT('UPDATE TABLE', '用户名', 'ALL');
--添加用户调用存储过程或函数操作
SP_AUDIT_STMT('EXECUTE PROCEDURE', '用户名', 'ALL');
--添加用户表上查询的权限
SP_AUDIT_STMT('SELECT TABLE', '用户名', 'ALL');
--添加用户表上插入的权限
SP_AUDIT_STMT('INSERT TABLE', '用户名', 'ALL');
--用户实施DDL操作审计
--添加用户创建/删除角色操作
SP_AUDIT_STMT('ROLE', '用户名', 'ALL');
--添加用户创建/删除/设置当前模式操作
SP_AUDIT_STMT('SCHEMA', '用户名', 'ALL');
--添加用户创建/删除包规范
SP_AUDIT_STMT('PACKAGE', '用户名', 'ALL');
--添加用户创建/删除包规范
SP_AUDIT_STMT('PACKAGE BODY', '用户名', 'ALL');
--添加用户创建/修改/删除/清空基表操作
SP_AUDIT_STMT('TABLE', '用户名', 'ALL');
--添加用户创建/删除索引操作
SP_AUDIT_STMT('INDEX', '用户名', 'ALL');
--添加用户创建/修改/删除视图操作
SP_AUDIT_STMT('VIEW', '用户名', 'ALL');
--添加用户创建/修改/删除触发器操作
SP_AUDIT_STMT('TRIGGER', '用户名', 'ALL');
--添加用户创建/修改/删除存储模块操作
SP_AUDIT_STMT('PROCEDURE', '用户名', 'ALL');
--添加用户创建/修改/删除全文索引操作
SP_AUDIT_STMT('CONTEXT', '用户名', 'ALL');
--添加用户创建/修改/删除序列操作
SP_AUDIT_STMT('SEQUENCE', '用户名', 'ALL');

W008-数据库审计日志查看

1
2
--查看审计日志
SELECT * FROM "SYSAUDITOR"."V$AUDITRECORDS";

W009-审计日志文件定时备份

1
2
3
4
--本地磁盘空间充足,可以保留180天。
--备份通过操作系统命令定时将数据库实例目录下AUDIT开头的日志文件拷贝走。
--审计日志路径(默认数据库实例目录)
SELECT * FROM V$DM_INI WHERE "V$DM_INI".PARA_NAME LIKE 'AUD_PATH%'

入侵规范

W011-未限制对设备的访问控制规则。

1
2
3
4
---添加允许IP地址连接用户登录数据库(做好记录服务器本地也需要相应IP登录)
ALTER USER "用户名" ALLOW_IP "IP地址";
--查看允许登录IP。
SELECT A.USERNAME,B.LOCK_TIME , b.ALLOW_ADDR FROM ALL_USERS A ,SYSUSERS B WHERE A.USER_ID =B.ID

数据完整性

W016-未采用密码技术进行通信完整性验证

1
2
3
4
5
--使用SSL认证登录需要用户自己提供相关的SSL证书。
--使用配通讯加密算法进行通讯加密(需要重启数据库生效)
ALTER SYSTEM SET 'COMM_ENCRYPT_NAME'='DES_CFB' SPFILE;
--可以使用的加密算法查询
SELECT * FROM V$CIPHERS;

数据保密性

W018-未对重要数据进行加密传输。

参考数据完整性-W016

W019-未对重要数据进行加密存储。

相关重要字段的加密存储参考数据库安全管理手册(存储加密)

个人信息保护

W024-数据库对个人信息明文存储。

相关重要字段的加密存储参考数据库安全管理手册(存储加密)