暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

等保2.0数据库测评之华为高斯数据库(GaussdDB)测评

天盾安全 2022-06-12
20143

本文部分内容来源于网络:等保2.0测评安全计算环境GaussdDB过程指南(华为高斯数据库)

一、高斯数据库(GaussdDB)介绍

高斯数据库是一款开源关系型数据库管理系统提供面向多核的极致性能、全链路的业务和数据安全。多用于大并发、大数据量、以联机事务处理为主的交易型应用,如电商、金融、O2O、电信CRM/计费等,应用可按需选择不同的主备部署模式。另外也用于在工业监控和远程控制、智慧城市的延展、智能家居、车联网等物联网场景下,传感监控设备多,采样率高,数据存储为追加模型,操作和分析并重的场景。

目前支持此数据库的操作系统:openEuler 20.03LTS(推荐采用此操作系统)、麒麟V10、CentOS 7.6。

二、等保测评

身份鉴别

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

1)以下为登录/连接Gaussdb数据库的方法

执行cps template-instance-list --service gaussdb gaussdb命令查看gaussdb部署节点



登录gaussdb主节点,即上一步status为“active”的节点,切换至root用户

执行su - gaussdba切换至gaussdba用户

执行gsql -d postgres -U <username>连接数据库

 执行gsql -d postgres -U gaussdba,以gaussdba用户登录数据库

2) 输入当前用户的密码,完成登录(默认密码可查看账户一览表):

3) 连接数据库时,需要进行身份鉴别,如果密码错误,提示“Invalid username/password,login denied.”

检查方法:使用gaussdba账户连接数据库,输入错误的密码,提示“Invalid username/password,login denied.”

4)执行select * from pg_user;命令,列出所有用户,USESYSID字段表示用户的ID,该值唯一,表明用户身份标识具有唯一性。

检查方法:登录gaussdb主节点,切换至root用户,执行su - gaussdba切换用户,执行gsql -d postgres连接数据库,输入gaussdba用户的密码,连接成功之后,执行select * from pg_user;命令,列出所有用户,USESYSID字段表示用户的ID,该值唯一,表明用户身份标识具有唯一性。

5)查看账户一览表,gaussdb所有账户都有默认密码。连接数据库时,需要输入密码,表明用户默认口令不为空。

检查方法:依次使用gaussdba、select_user、openstack账户连接数据库,都需要输入密码,说明账户的口令不为空。

6)Gaussdb的账户是机机账户,机机账户的密码永不过期,不要求用户周期性的修改账户密码。修改机机账户的密码,可能导致业务中断,因此,建议保持默认密码。这条是华为人说的。

修改密码时,输入不符合密码复杂度要求的密码提示不满足密码复杂度要求。

导入环境变量,然后执行PasswordManager


(备注:生产环境中修改密码属于高危操作,请谨慎操作)。

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

1)登录失败锁定账户

登录gaussdb主节点,执行cps template-params-show --service gaussdb gaussdb查看,默认配置连续输错密码3次,账户锁定300秒。

2)超时自动退出,默认设置超时1800秒自动断开连接。登录gaussdb主节点,连接数据库之后,1800秒无操作,会自动断开。

登录首节点切换至root用户,执行su - gaussdba切换用户,执行gsql -d postgres连接数据库,输入gaussdba用户的密码,连接成功之后,再执行\set查看。

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

核查是否采用加密等安全方式对系统进行远程管理,防止鉴别信息在网络传输过程中被窃听。检查远程管理时管理员所使用的管理协议,查看传输过程中的鉴别信息是否是经过加密处理的、抗重放的,并可使用抓包工具,判断管理员远程管理时传输过程中的鉴别信息被窃听的可能性。

GaussDB支持通过SSL加密客户端和服务器之间、主机和备机之间的通讯。SSL通讯使用的加密算法为XXX(以实际查询为准)。

1)查看传输协议,登录首节点切换至root用户,导入环境变量,执行cps template-instance-list --service gaussdb gaussdb命令查看gaussdb部署节点,登录gaussdb主节点,切换至root用户,导入环境变量,执行cps template-params-show --service gaussdb gaussdb命令查看传输协议,采用TLS1.2。

2)查看加密算法,进入/opt/fusionplatform/data/gaussdb_data/data目录,查看相应配置:cat postgresql.conf | grep ssl_ciphers

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

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


访问控制

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

数据库用户分为管理员用户(gaussdba)、业务用户(Openstack)和业务用户(Select_user)。不同的账户权限不同。

gaussdba: GaussDB数据库管理员账户,可用于登录数据库执行相关运维操作。

openstack: GaussDB数据库业务

select_user: GaussDB数据库业务

1)登录首节点切换至root用户,执行su - gaussdba切换用户,执行gsql -d postgres连接数据库,输入gaussdba用户的密码,连接成功之后,执行select * from pg_user;命令,查看所有用户

2)执行select * from information_schema.routine_privileges where grantee='user_name';命令查询user_name用户所拥有的权限,user_name替换成实际的用户名,并采用全大写字母。

例如,执行select * from information_schema.routine_privileges where grantee='GAUSSDBA'; 查看GAUSSDBA的权限。

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

默认账户的默认口令已经修改

1)登录数据库之后,执行select ROLNAME from  pg_authid where oid=10;命令,查看默认用户。

2)在账户一览表中查看默认账户及其密码。

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

只存在如下几个用户,不存在多余的、过期的账户,不存在共享账户。

gaussdba: GaussDB数据库管理员账户,可用于登录数据库执行相关运维操作。

openstack: GaussDB数据库业务

select_user: GaussDB数据库业务

1)登录数据库之后,执行select * from pg_user;命令,查看所有用户。

2)查看账户一览表,查看gaussdb的所有账户,不存在多余的账户,不存在共享账户,gaussdb相关的所有账户都是本机账户,永不过期。

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

数据库用户分为管理员用户(gaussdba)、业务用户(Openstack)和业务用户(Select_user)。分别为用户分配了相应的权限,都是业务所需的最小权限。

检查方法:

(1) 登录数据库之后,执行\du <username>命令,查看当前用户的权限

例如,执行\du GAUSSDBA查看gaussdba用户的权限。

(2)或者执行\du查看所有用户的权限

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

数据库data目录权限最大为0700,只允许数据库用户访问文件,其它用户不能访问。

进入数据库目录查看文件权限登录首节点后台,切换root之后,执行su - gaussdba切换gaussdba用户,执行cd $GAUSSDATA进入gaussdb的data目录,然后查看权限。

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

数据库data目录权限最大为0700,只允许数据库用户访问文件,其它用户不能访问。

进入数据库目录查看文件权限,登录首节点后台,切换root之后,执行su - gaussdba切换gaussdba用户,执行cd $GAUSSDATA进入gaussdb的data目录,然后查看权限,此测评项一般判定为符合。

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

通过访谈管理员是否对重要主体和客体设置安全标记。数据库自身应该很难实现这个功能,可能需要依赖操作系统或者第三方来实现。该项一般默认都不符合。

安全审计

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

已经开启审计功能

登录数据库之后,执行show audit_enabled;命令查看,ON表示已经开启审计功能

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

审计日志信息包时间(Time)、类型(Type)、结果(Result)\用户(User)、数据库(DATABASE)、客户端信息(CLIENT_CONNINFO)、审计对象(OBJECT_NAME)以及详细语句(DETAIL_INFO),对于删除用户/表/库等高危操作,会进行审计记录。

Gaussdb的日志目录为/var/log/fusionsphere/component/gaussdb,可以进入该目录下查看日志审计记录。

也可以以gaussdba用户登录数据库之后,执行select * from pg_query_audit('2020-09-04 08:00:00','2020-09-10 23:59:59');命令,查看审计文件(时间需改为需要查询的审计日志的起始时间)。

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

审计日志是二进制文件,只能具有审计权限的数据库用户登数据库查看,通过函数pg_query_audit查看。

1)系统中的文件都有访问权限控制,只有合法的用户才可以访问,gaussdb审计日志见Openstack主机节点/var/log/fusionsphere/component/gaussdb目录,查看该目录下文件的权限,文件权限符合要求。

2)用gaussdba用户登录数据库之后,执行select * from pg_query_audit('2020-09-04 08:00:00','2020-09-10 23:59:59');命令,查看审计文件(时间需改为需要查询的审计日志的起始时间)。结果如下图,查询成功。

3)用openstack用户登录数据库之后,执行select * from pg_query_audit('2020-09-04 08:00:00','2020-09-10 23:59:59');命令,查看审计文件(时间需改为需要查询的审计日志的起始时间)。结果如下图,没有权限,提示“ERROR:  permission denied to query audit”。

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

1)登录首节点后台,切换root之后,导入环境变量,执行cps template-instance-list --service gaussdb gaussdb命令查看gaussdb部署的主节点,即status为active的节点


2)登录gaussdb主节点,切换root之后,执行ps -ef | grep gaussdba | grep -v idle命令查看gaussdb的auditor process,即审计进程;然后,执行kill -9 <进程号>杀掉当前的审计进程,等待几秒,再次执行ps -ef | grep gaussdba | grep -v idle命令查看auditor process进程已经自动拉起。(注意:kill进程是高危操作,不要在现网环境执行)

入侵防范

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

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

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

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

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

数据库连接通过pg_hba.conf白名单控制连接的IP/数据库名/用户

登录首节点后台,切换root之后,执行su - gaussdba切换gaussdba用户,执行cd $GAUSSDATA进入gaussdb的data目录,然后查看pg_hba.conf文件的配置。

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

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

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

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

执行命令:“gaussdb --version”查看数据库版本:


数据完整性

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

GaussDB支持通过SSL加密客户端和服务器之间、主机和备机之间的通讯。SSL通讯使用的加密算法为XXX(以实际查询为准)。

登录首节点切换至root用户,导入环境变量,执行cps template-instance-list --service gaussdb gaussdb命令查看gaussdb部署节点

1)登录gaussdb主节点,切换至root用户,导入环境变量,执行cps template-params-show --service gaussdb gaussdb命令查看传输协议,采用TLS1.2。

2)查看SSL加密算法进入/opt/fusionplatform/data/gaussdb_data/data目录,查看相应配置cat postgresql.conf | grep ssl_ciphers

b.应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等

加密存储

重要数据加密存储,例如,账户密码存储时,采用pbkdf2-sha512加密。

数据保密性

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

GaussDB支持通过SSL加密客户端和服务器之间、主机和备机之间的通讯。SSL通讯使用的加密算法为XXX(以实际查询为准)。

1)查看传输协议

登录首节点切换至root用户,导入环境变量,执行cps template-instance-list --service gaussdb gaussdb命令查看gaussdb部署节点

登录gaussdb主节点,切换至root用户,导入环境变量,执行cps template-params-show --service gaussdb gaussdb命令查看传输协议,采用TLS1.2。

2)查看SSL加密算法

进入/opt/fusionplatform/data/gaussdb_data/data目录,查看相应配置

cat postgresql.conf | grep ssl_ciphers


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

加密存储

重要数据加密存储,例如,账户密码存储时,采用pbkdf2-sha512加密。


数据备份恢复

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

GaussDB采用了主备双机方案,能在很大程度上保证数据库服务的可用性和数据的安全性。此外,系统默认每天凌晨03:00定时备份GaussDB数据库,也可以手动执行命令触发备份。备份策略支持重新配置,具体可查看产品文档。

登录首节点首节点,切换至root用户,导入环境变量,执行backup policy-get查看备份策略,执行backup package-get --service gaussdb查看备份结果。

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

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

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

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

数据库采用主备模式部署

检查方法:

登录首节点,切换至root用户,导入环境变量,执行cps template-instance-list --service gaussdb gaussdb命令查看部署模式。查询结果中,状态为“active”的节点为主节点,状态为“standby”的节点为备节点。


剩余信息保护

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

高斯数据库存储空间删除时会进行格式化清除,也可以部署需要第三方工具实现鉴别数据的存储空间被释放或重新分配前得到完全清除。

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

高斯数据库存储空间删除时会进行格式化清除,也可以部署需要第三方工具实现敏感数据的存储空间被释放或重新分配前得到完全清除。



个人信息保护

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

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

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

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


总结

     目前华为高斯数据使用范围和其他国产数据库相比还是相对广泛些,毕竟有华为云作为基础,但是支持高斯数据的操作系统还是比较少,一定程度上限制了高斯数据库的发展。





等保2.0数据库测评之PostgreSQL数据库测评正在更新中........



参考资料:

GB∕T 28448-2019 《信息安全技术  网络安全等级保护测评要求》



文章转载自天盾安全,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论