一、人大金仓数据库介绍

金仓数据库管理系统 KingbaseES V8R6 是一个大型通用数据库管理系统(DBMS),该产品面向事务处理类应用,兼顾各类数据分析类应用,可用于管理信息系统、业务及生产系统、决策支持系统、多维数据分析、全文检索、地理信息系统、图片搜索等的承载数据库。KingbaseES V8R6 提供可在电力、金融、电信等核心业务系统高度容错,稳定可靠的功能体系。

本次安装环境为Windows10专业版操作系统,数据库版本为V8R6,单机部署过程比较简单就不在此进行讲解。本文针对KingbaseES等保测评进行实际操作,不妥之处还恳请留言指正,共同学习。

KingbaseES能力结构图

二、等保测评

身份鉴别

a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;

1)KingbaseES 支持基于强化口令的身份鉴别,它包括对数据库用户施加口令复杂度检查、账户和口令有效期限设置、账户锁定等安全策略管理等机制。此外,KingbaseES 还支持基于 Kerberos、Radius、LDAP 认证协议和CA等技术在内的与第三方身份认证产品相结合的外部统一身份鉴别或集中化身份认证方式。

如果直接进入数据库则未对用户进行身份鉴别,判不符合;

如果无法登录则表明对用户进行了身份鉴别,则需要根据口令策略再进行判定。

2)KingbaseES 通过插件的方式来进行口令的复杂度管理,修改 kingbase.conf 文件中 shared_preload_libraries 参数后重启数据库,创建插件并打开密码复杂度开关。

密码复杂度开关,默认为关闭状态。

b) 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;

1)KingbaseES 通过插件的方式来进行登录失败处理管理,修改 kingbase.conf 文件中 shared_preload_libraries 参数后重启数据库。

允许用户连续登录失败的最大次数通过参数sys_audlog.error_user_connect_times配置,用户登录失败的次数大于超过该值,用户自动锁定,取值范围为[0,INT_MAX],缺省为0。

设置密码连续最大失败次数为10:

ALTERSYSTEMSETsys_audlog.max_error_user_connect_times=10;

CALLsys_reload_conf();

用户登录失败次数的最大值界限通过参数sys_audlog.max_error_user_connect_times配置,error_user_connect_times的最大取值,取值范围为[0,INT_MAX],缺省为 2147483647。

设置密码连续最大失败次数为6:

ALTER SYSTEM SET sys_audlog.error_user_connect_times = 6;

CALL sys_reload_conf();

  1. 用户被锁定时间通过参数sys_audlog.error_user_connect_interval配置,若用户被锁定的时间超过了该参数,则该用户可自动解锁。单位是分钟,取值范围为[0,INT_MAX],缺省为0。

    设置被封锁用户的自动解封时间为 1 小时:

    ALTER SYSTEM SET sys_audlog.error_user_connect_interval = 60;

    CALL sys_reload_conf();

  2. c) 当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;

1)是否采用加密等安全方式对系统进行远程管理是否用户都是localhost,全为localhost则为本地管理,可判定为不适用。

2)远程管理根据实际管理情况进行判定(如了解数据库管理工具采用什么措施防止鉴别信息在传输过程中被窃听),若存在远程管理,执行命令:“select setting from sys_settings where name=’ssl’;”查看是否启用ssl协议,并验证协议是否生效:

d) 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。

访谈管理员并进行验证,是否采用双因子身份鉴别技术,鉴别技术是什么 。实际实现双因素认证比较困难,一般情况判定为不符合。

访问控制

a) 应对登录的用户分配账户和权限;

1)结果结合访谈管理员是否存在网络管理员,安全管理员,系统管理员、审计管理员等多个账户,并在管理工具中检查为各个管理用户分配对应的权限分配。

2)执行命令:”select * from sys_user;“或检查是否存在匿名用户。

备注:

• 数据库管理员主要负责执行数据库日常管理的各种操作和自主存取控制。

• 安全管理员主要负责强制存取控制规则的制定和管理。

• 审计管理员主要负责数据库的审计,监督前两类用户的操作。

b) 应重命名或删除默认账户,修改默认账户的默认口令

检查默认账户是否重命名,检查其他账户的是否属于默认账户(数据库一盘情况不存在默认口令)。

c) 应及时删除或停用多余的、过期的账户,避免共享账户的存在

1)询问管理员数据库中的账户使用情况,是否存在无人使用的账户,如果存在建议删除。

2)检查网络管理员,安全管理员、系统管理员不同用户是否采用不同账户登录数据库。

d) 应授予管理用户所需的最小权限,实现管理用户的权限分离

1)结果结合访谈管理员是否存在网络管理员,安全管理员,系统管理员、审计管理员等多个账户,并在管理工具中检查为各个管理用户分配对应的权限分配,是否实现三权分离。

e) 应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则

1)访谈和查看管理员是否制定了访问控制策略

2)查看管理员权限;(此测评点如果数据库已经启用身份鉴别,且具备权限分离可判定为符合)

f) 访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级

结合a)、b)、c)、d)、e)项,并访谈管理员并核查访问控制粒度主体是否为用户级,客体是否为数据库表级。

(此测评点多数测评机构默认判定为符合)

g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问

在 KingbaseES 中,安全管理员可以根据数据的具体密级为数据定义标记。标记包含两个元素:等级和范围等级代表数据的敏感度,它关系到数据的安全性,用以防止未授权的用户查询和修改高密级的数据。即,拥有低等级的用户无法访问高密级的数据。例如,可以根据敏感度将数据分为如下等级:机密、秘密和普通。

通过访谈管理员是否对重要主体和客体设置安全标记。人大金仓数据库自身应该具备这个功能,也可以依赖操作系统或者第三方来实现,但是大部分单位不会配置此策略,该项一般默认都不符合。

安全审计

a) 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计

1)检查日志是否开启:

事务日志配置:

运行日志配置:

2)可检查日志文件记录是否正常:

执行日志:

会话日志:

init.log日志文件:

登录日志:

3)访谈管理员是否通过第三方工具(数据库审计系统)收集审计数据进行分析。

b) 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息

1)执行日志:

会话日志:

登录日志:

2)核查是否部署第三方工具(数据库审计系统)增强人大金仓数据库日志功能。记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。

c) 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等

应保证各个管理员尽可以访问与自身相关的日志文件,如关键日志仅允许特权账户访问

1)访谈管理员对审计记录如何保护,对审计记录是否定期备份,备份策略。

是否采取了备份、转存等手段对审计记录进行保护,避免未预期的删除、修 改或覆盖,数据库本地日志保存时间超过6个月。采用第三方数据库审计产品,审计记录保存时间超过6个月。

2)是否严格限制用户访问审计记录的权限,可以通过普通用户登录然后是否能够访问修改删除日志。

d) 应对审计进程进行保护,防止未经授权的中断

人大金仓数据库可以根据权限建立各类型的账户,可以防止审计进程未经授权的中断,如果数据库已建立审计账户且各个数据库管理员权限已分离,可判定为符合。

入侵防范

a) 应遵循最小安装的原则,仅安装需要的组件和应用程序

数据库系统此测评项可判定为不适用。

b) 应关闭不需要的系统服务、默认共享和高危端口

数据库系统此测评项不适用。

c) 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制

查看用户登录的IP地址是否给所有用户加上IP限制,拒绝所有未知主机进行连接,监听的主机名或IP地址应指定特定IP地址,不应为*,使在非信任的客户端(其他地址)以数据库账户登录时被拒绝访问。

d) 应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求

数据库系统此测评项不适用。

e) 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞

1) 访谈管理员是否定期或不定期进行漏洞扫描或渗透测试,周期按照天/月/季度/半年/年等方式(建议漏洞扫描周期最长半年一次)。
2)通过本次漏洞扫描是否发现与数据库相关的高危漏洞,若存在,是否及时进行漏洞修补,执行命令:“select version();”检查数据库版本。

f) 应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警

数据库系统此测评项不适用。

恶意代码防范

应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断

数据库系统此测评项不适用。

可信验证

可基于可信根对计算设备的系统引导程序、 系统程序、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心

通过访谈管理员,是否采取了可信技术,可信技术主要是基于可信芯片、可信根,目前实现此技术的可能性不大,一般判定为不符合。

数据完整性

a)应采用密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;

传输过程中的完整性一般是通过通信协议来实现的,常见的包括TLS、SSH等协议,对数据库而言,查看是否启用了安全协议进行数据通信,同时询问管理员,确认是否还有其他保证数据传输过程中的完整性措施。

KingbaseES 有一个对使用 SSL 连接加密客户端/服务器通讯的本地支持,它可以增加安全性。这个特性要求在客户端和服务器端都安装 OpenSSL 并且在编译 KingbaseES 的时候打开这个支持。可以使用 SSH 来加密客户端和 KingbaseES 服务器之间的网络连接。

(本地管理判定为不适用,远程管理根据实际情况判定)

b)应采用密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。

对数据库配置文件进行一个完整性检测,需要配置文件初始可信状态时的哈希值,然后再根据目前的文件生成一个哈希值,对比前后的一致性,确认数据是否被篡改过,根据了解一般数据库自身不带这种机制,询问管理人员是否使用了第三方软件对数据库重要数据进行了完整性校验。

KingbaseES通过在每个数据块头增加” 数据水印”,KingbaseES 实现了数据存储过程中的完整性校验和保护。每次读磁盘时,自动进行数据水印校验。每次写磁盘时,自动更新数据水印,可以有效杜绝来自数据库外操作系统层的非法篡改,整个过程对用户完全透明。

数据保密性

a)应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;

若password是以明文密码传送给数据库,建议不在生产环境中使用。若数据库未开启SSL时,我通过Wireshare对数据库认证过程的数据包进行抓取,可能发现传输的密码字段信息。

总结,最直接验证的办法就是抓包验证重要的加密数据(鉴别数据、需要加密的业务数据、个人信息等)是否明文传输。

b)应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。

检查数据库表中的重要数据是否明文存储,根据经验除鉴别数据外,业务数据、审计数据实际很少加密存储,所以一般不符合或者部分符合。如果使用数据库加密功能,就可以符合符合,数据库加密主要分库内加密和库外加密,库内加密主要是调用的数据库本身的加密功能,库外加密主要通过第三方厂家的数据库加密功能。

人大金仓数据库加密框架目前支持内置 SM4 和 RC4 算法对数据进行加密。

数据备份恢复

a)应提供重要数据的本地数据备份与恢复功能;

1)访问管理员配置数据、审计数据、业务数据的备份策略,检查备份策略的备份情况与管理员所说是否一致,是否具有恢复测试记录。

可以通过数据库管理工具进行备份,如KingbaseES自带的逻辑备份。

2)其他备份方式:

(1)单机 + 外部备份场景:

(2)单机 + 内部备份场景

备份过程:

• 根据备份时的选项,确定本次备份的依赖关系

• 如果本次是全量备份,则忽略此步骤

• 如果是增量备份,选择上一次备份(任意类型)作为依赖

• 如果是差异备份,选择上一次全量备份作为依赖

• 根据数据库配置,获取全部数据、配置、核心文件列表

• 根据文件 CheckSum 和时间来确定本次备份需要拷贝或者信任依赖备份(不拷贝文件

• 开始拷贝过程,逐个文件开始拷贝,可多进程开展

• 拷贝完成后,根据配置保留数目和现有数目,选择性移除过期备份文件集

恢复过程:

• 根据恢复时的选项,程序自动选择一个全量备份

• 或者选择最新(默认)、指定时间、指定备份集、指定 XID 等

• 并自动匹配恰当的增量和差异备份集

• 复制到目标路径,如果有压缩,解压缩

• 在复制完成后,启动本节点为新的主节点(默认)

• 选项可指定,复制完成后,进入 PAUSE 模式

• 选项可指定,复制完成后,等待管理员手动启动数据库

在制定方案时可能还不能很好的了解系统的情况,此时可以使用以下常用策略:

全量备份周期:7 天;

增量备份周期:1 天;

保留份数:5 份全量备份,不压缩存储;

KingbaseES 提供带密钥的加密备份和还原,同时施加完整性数据水印,且支持备份压缩,可充分保证了数据备份和恢复的安全性和可信性。

b)应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地;

部署异地备份机房,并符合备份策略通过网络定期进行异地备份。

c)应提供重要数据处理系统的热冗余,保证系统的高可用性;

集群部署、双机热备均可判定为符合。

剩余信息保护

a)应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除;

KingbaseES 实现了共享缓冲区、磁盘存储空间等数据资源,在分配前和释放后,对资源内的残余信息进行销毁,防止未授权用户非法获取用户数据。

b)应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除。

KingbaseES 实现了共享缓冲区、磁盘存储空间等数据资源,在分配前和释放后,对资源内的残余信息进行销毁,防止未授权用户非法获取用户数据。

个人信息保护

a)应仅采集和保存业务必需的用户个人信息;

检查数据库中是否存储个人信息,若有,检查个人信息保护机制和个人信息保护管理制度

b)应禁止未授权访问和非法使用用户个人信息。

检查个人信息保护机制和个人信息保护管理制度,验证非授权人员是否可以访问个人信息存储的相关组件内容。