最近国产化项目越来越多,国产化数据库中,比较常见的是达梦DM8,因此本文以DM8开发版为例,记录测评实施过程,若有错误,欢迎指正。
达梦数据库安全体系
一、身份鉴别
a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;
核查DM管理工具->管理账户->用户->常规
1)身份标识唯一性
通过创建同名TEST的账户,发现无法创建同名账户,错误提示是该账户已存在,因此,该项默认为【符合二】。
2)口令复杂度
默认情况下,开发版的默认密码策略无法修改,默认密码策略要求:口令长度不少于9位,可以仅包含数字、字母和字符。因此,如果是开发版,密码复杂度要求默认【不符合】。安全版可以配置密码复杂度策略,密码复杂度策略至少同时已启用以下策略:
1禁止与用户名相同
2口令长度不小于9位
3至少包含一个大写字母或小写字母或一个特殊字符。
3)口令有效期
DM管理工具->管理账户->账户->资源限制,DM数据库默认未启用口令有效期策略,该项默认【不符合】。
b) 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;
1)登录失败策略
DM管理工具->管理账户->账户->资源限制,默认为连续登录失败3次锁定1分钟,
2)登录超时自动退出时间
DM管理工具->管理账户->账户->资源限制,默认该值未配置,该项默认【不符合】。
c) 当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;
选择是否使用通信加密以 DM 数据库服务器端的设置为准,即通过设置服务器配置文件dm.ini 中的 ENABLE_ENCRYPT 和 COMM_ENCRYPT_NAME 参数来指定,客户端以服务器采用的通信方式与其进行通信。 ENABLE_ENCRYPT 取值 0、 1 和 2 分别代表不加密、 SSL加密、 SSL 认证, 默认值为 1。 COMM_ENCRYPT_NAME 参数用来指定消息通信的加密算法名,如果为空则不进行通信加密;如果给的加密算法名错误,则使用加密算法 DES_CFB。
打开DM控制台,核查安全相关参数->ENABLE_ENCRYPT,可选值有3个:
0:不加密,默认值;
1:SSL加密,表示需要在 DM 数据库服务器所在目录下的 server_ssl 子目录中存放 CA 的证书、服务器的证书和服务器的密钥,同时在客户端所在目录下的 client_ssl子目录中存放 CA 的证书、客户端的证书和客户端的密钥,这样服务器和客户端的通信即是建立在加密的 SSL 连接之上的。此时如果没有配置好 SSL 环境,则通讯仍旧不加密。
2:SSL认证,表示不进行通信加密,只是检查客户端和服务器的证书是否匹配。此
时如果服务器 SSL 环境没有配置则服务器无法正常启动,如果客户端 SSL 环境没有配置则
无法连接服务器
因此,该项默认【不符合】,除非值是1或者2才【符合】。
或者在DM SQL交互式查询里执行: SELECT * FROM V$PARAMETER WHERE NAME='ENABLE_ENCRYPT' OR
NAME='COMM_ENCRYPT_NAME'。
d) 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。
登录DM控制台,核查安全相关参数->CLIENT_UKEY,该项值也有2个:
0:允许所有登录方式,包括口令和UKEY,默认值为0;
1:强制客户端使用UKEY+PIN登录。
默认情况下,该项【不符合】。
二、访问控制
可在创建 DM 数据库时通过建库参数 PRIV_FLAG 设置使用“三权分立” 或“四权分立”安全机制,此参数仅在 DM 安全版本下提供,即仅 DM 安全版本提供“四权分立” 安全机制。缺省采用“三权分立” 安全机制。
使用“三权分立” 安全机制时, 将系统管理员分为数据库管理员、数据库安全员和数据库审计员三种类型。在安装过程中, DM 数据库会预设数据库管理员账号 SYSDBA、数据库安全员账号 SYSSSO 和数据库审计员账号 SYSAUDITOR,其缺省口令都与用户名一致。
使用“四权分立” 的安全机制时,将系统管理员分数据库管理员、数据库对象操作员、数据库安全员和数据库审计员四种类型,在“三权分立” 的基础上,新增数据库对象操作员账户 SYSDBO,其缺省口令为 SYSDBO。
a) 应对登录的用户分配账户和权限;
DM8数据库默认下需要通过用户名和口令进行登录,根据登录的账户所在的角色继承角色的权限,因此该项默认【符合】。
b) 应重命名或删除默认账户,修改默认账户的默认口令;
通过测试,发现无法删除默认的SYSDBA、SYSAUDITOR账户权限,但是可以修改账户的口令,该口令是安装数据时配置的口令。
c) 应及时删除或停用多余的、过期的账户,避免共享账户的存在;
默认下,仅有SYSDBA、SYSAUDITOR、SYSSSO和SYS4个