openGauss数据库网络安全等级保护测评安全加固方案
来源: | 作者:久信股份 | 发布时间: 2025-06-16 | 458 次浏览 | 分享到:

openGauss数据库网络安全等级保护测评安全加固方案

引言

openGauss作为国产化高性能关系型数据库,凭借其高安全、高可用、高兼容性特性,广泛应用于金融、政务等关键领域。为满足《网络安全等级保护基本要求》(GB/T 22239-2019)三级标准,需从身份鉴别、访问控制、安全审计、数据安全等维度对openGauss进行深度加固。本文以CentOS 8为操作系统环境,结合openGauss 5.0安全特性,提出覆盖全生命周期的安全整改方案,确保合规性与业务连续性双重目标。

一、身份鉴别安全加固

1.密码策略强化

1.1技术措施

通过openGauss内置密码复杂度策略,强制密码包含大小写字母、数字及特殊符号(如!@#$%^&*),最小长度12位,有效期90天,禁止重复使用最近5次密码。使用(gsql -d postgres -p 8000)命令进入数据库,再使用(gs_guc set -N all -I all -c "password_policy=1")(gs_guc set -N all -I all -c "password_min_length=12")(gs_guc set -N all -I all -c "password reuse time=90")(gs_guc set -N all -I all -c "password reuse max=5")修改密码复杂度策略。或者在(/var/lib/opengauss/data/datanode/postgresql.conf)配置文件中直接修改相关参数。

1.2技术价值

动态密码策略抵御暴力破解与弱口令风险,满足等保三级 8.1.4.1 a) 对密码复杂度和更换周期的强制要求。

2.登录失败处理和超时退出设置

2.1技术措施

配置登录失败锁定策略,失败3次锁定半天,设置会话超时15分钟自动断开。使用(gsql -d postgres -p 8000)命令进入数据库,再使用(gs_guc reload -N all -I all -c "failed login attempts=3")(gs_guc reload -N all -l all -c "password lock time=0.5d")(gs_guc reload -N all -I all -c "session timeout=1800")修改参数值。或者在(/var/lib/opengauss/data/datanode/postgresql.conf)配置文件中直接修改相关参数。

 

2.2技术价值

2.2.1登录失败锁定机制防范暴力破解,满足等保三级 8.1.4.1 b) 中“限制非法登录次数”要求。

2.2.2超时自动退出避免未授权访问,满足 8.1.4.1 b) 中“登录连接超时自动退出”要求。

3.加密传输与双因子认证

3.1技术措施

启用SSL/TLS加密传输(需在安装时选择开启SSL选项),配置数据库服务端证书openGaussSSL标准协议(TLS 1.2),SSL协议是安全性更高的协议标准,它们加入了数字签名和数字证书来实现客户端和服务器的双向身份验证,保证了通信双方更加安全的数据传输。当用户远程连接到数据库主节点时,需要使用sha256的认证方式。

 


3.2技术价值

3.2.1通过SSL加密实现身份鉴别信息防窃听,满足 8.1.4.1 c) 中“采用密码技术保障鉴别信息传输安全”要求。

二、访问控制与权限管理

1.最小权限模型(RBAC

1.1技术措施

基于角色分离原则,创建业务角色并分配最小权限。使用(gsql -d postgres -p 8000)命令进入数据库,如创建角色,该角色具有finance_table数据表的select(查)、insert(增)、update(改)权限。

 

1.2技术价值

精细化权限管控满足等保三级 8.1.4.2 a) 按需分配权限最小特权原则要求。。

2.默认账户加固

2.1技术措施

禁用默认账户omm远程登录权限

 

2.2技术价值

消除默认账户攻击面,满足等保三级 8.1.4.2 b) 重命名或删除默认账户要求。

3.三权分立与特权管控

3.1技术措施

默认账户omm使用(gsql -d postgres -p 8000)命令进入数据库,使用(gs_guc set -N all -I all -c "enableSeparationOfDuty=on")命令开启三权分立,再使用命令(CREATE USER sysadmin WITH SYSADMIN PASSWORD 'StrongPass!';)(CREATE USER secadmin WITH CREATEROLE PASSWORD 'SecurePass@';)(CREATE USER auditadmin WITH AUDITADMIN PASSWORD 'AuditPass#';)命令创建系统管理员sysadmin用户(具有SYSADMIN权限,即管理数据库对象(表、索引)、创建表空间,但不可访问其他用户数据)、安全管理员secadmin用户(具有CREATEROLE权限,即创建/管理用户和角色,分配对象权限)、审计管理员auditadmin用户(具有AUDITADMIN权限,即查看和管理审计日志)。 


3.2技术价值

特权用户权限分离与操作审计绑定,满足 8.1.4.2 c) 特权用户权限分离要求。

4.安全标记与强制访问

4.1技术措施

配置行级安全策略(需安装row_security插件),设置强制访问控制策略,使用(ALTER TABLE sales_data ENABLE ROW LEVEL SECURITY;) 激活表的行级安全开关,使用(ALTER TABLE sales_data FORCE ROW LEVEL SECURITY;)强制策略对所有用户(包括管理员用户)生效。


4.2技术价值

动态安全标签实现强制访问控制,满足等保三级 8.1.4.2 g 对资源标记和访问控制的要求。

三、安全审计与日志管理

1.全量审计覆盖

1.1技术措施

启用openGauss全量审计功能,记录所有用户操作(DMLDDL、登录事件等)。可以使用(),再使用(gs_guc set -N all -I all -c "audit_enabled=on")命令设置开启审计总开关,使用(gs_guc reload -N all -I all -c "audit_system_object=67121195")命令开启开启对数据库所有对象的增删改操作的审计(audit_system_object=67121195表示对DATABASESCHEMAUSERTABLEINDEXVIEWTRIGGERPROCEDURETABLESPACE 等数据库的CREATE/ALTER/DROP操作进行审计,即覆盖所有关键对象)。

1.2技术价值

实现用户级全量审计覆盖,满足等保三级 8.1.4.3 a) 审计覆盖到每个用户的要求。

2.审计记录应完整

2.1技术措施

配置审计日志格式,确保包含时间戳、用户身份、操作类型及结果。【审计日志默认字段包括:timestamp(操作时间)username(用户名)database(数据库名)client_ip(客户端IPoperation_type(操作类型,如SELECT/INSERTresult(执行结果,成功/失败)。】


2.2技术价值

日志包含时间、用户、操作类型及结果等关键字段,满足 8.1.4.3 b) 对审计记录完整性的要求。

3.审计日志防篡改与保留

3.1技术措施

日志只读权限与防删除:该数据审计日志存在操作系统/var/log/opengauss/audit/文件夹下。通过在操作系统层面配置日志文件的只读权限来防止日志文件被删除修改,具体配置如下图所示

 

日志轮转与保留周期:根据网络安全法的要求,日志存储时间要求至少为180天,因此可通过如下命令配置日志的保留周期。


远程日志同步(需部署syslog服务器):使用(gs_guc reload -N all -I all -c "audit_syslog=on")命令开启syslog功能,使用(gs_guc reload -N all -I all -c "audit_syslog_server='192.168.1.100:514'")命令设置日志服务器地址。

3.2技术价值

日志加密传输、防篡改存储及保留周期控制,满足 8.1.4.3 c) 防止审计记录被删除、修改或覆盖保留期限不少于180的要求。

4.审计进程保护

4.1技术措施

资源隔离(通过cgroups限制资源)防止审计进程因资源竞争被系统杀死。

 

4.2技术价值

审计进程资源隔离与配置权限控制,满足 8.1.4.3 d) 防止审计进程被中断或绕过要求。

四、数据安全管理

1.事务一致性校验

1.1技术措施

启用openGauss事务ACID特性与数据页校验和,防止数据损坏。使用(gs_guc set -N all -I all -c "page_checksum=on")命令开启数据页校验和,使用(gs_check -t data -U omm -d postgres --action=check)命令检测数据一致性,建议定期每周执行一次该命令。

 

1.2技术价值

ACID事务保障操作原子性,确保业务数据逻辑一致性,通过校验和检测存储层数据损坏,满足等保三级 8.1.4.7 检测和记录数据完整性破坏行为的要求。

2.数据篡改防护

2.1技术措施

配置数据哈希校验与数字签名(需集成企业级CA服务

 

2.2技术价值

哈希校验与数字签名技术防止数据篡改,满足 8.1.4.7 采用校验技术或密码技术保证数据存储完整性的要求。

3.静态数据加密(TDE

3.1技术措施

启用透明数据加密,保护数据文件与备份

 

3.2技术价值

全量数据落盘加密,满足等保三级 8.1.4.8 采用加密措施保护存储数据的要求。

4.传输加密(SSL/TLS

4.1技术措施

配置全链路SSL加密通信SSL传输支持一系列不同强度的加密和认证算法。用户可以通过修改postgresql.conf中的ssl_ciphers参数指定数据库服务器使用的加密算法。目前本产品SSL支持的加密算法有DHE-RSA-AES256-GCM-SHA384DHE-RSA-AES128-GCM-SHA256DHE-DSS-AES256-GCM-SHA384DHE-DSS-AES128-GCM-SHA256DHE-RSA-AES256-SHA256

 

4.2技术价值

全链路SSL密防止数据窃听,满足 8.1.4.8 采用密码技术保证数据传输保密性的要求。

5.列级动态脱敏

5.1技术措施

使用内置函数实现敏感字段动态脱敏。如图中策略,(CREATE MASKING POLICY phone_mask ON (phone))这行代码创建了一个名为phone_mask的脱敏策略,该策略应用于名为phone的字段。这里的phone字段通常是存储电话号码之类的敏感信息。(USING ('******' || RIGHT(phone, 4));)这是脱敏策略的具体实现方式。它使用了RIGHT函数获取phone字段值的最后4位,然后在前面拼接上******。这样,在查询结果中,电话号码前面部分就会被脱敏处理,只显示最后4位。GRANT USAGE ON MASKING POLICY phone_mask TO app_user;)这行代码将创建的phone_mask脱敏策略的使用权限授予了名为app_user的用户。这意味着app_user在进行涉及phone字段的查询操作时,会应用该脱敏策略。

通过以上方式,数据库可以在不修改原始数据的情况下,根据不同的脱敏策略对敏感信息进行实时处理,防止敏感信息泄露给没有权限查看完整数据的用户。

 

5.2技术价值

实时脱敏防止敏感信息泄露,满足 8.1.4.10 对敏感数据访问控制的增强要求。

五、安全管理体系优化

在网络安全等级保护中,不止需要对技术层面进行保护,还需要对安全管理体系层面进行管理保护,在与安全技术强相关的有技术层面所对应的操作手册和该技术的应急处置文档。

1.安全基线文档化

制定《openGauss等保三级安全基线规范》,明确:密码复杂度阈值及加密算法标准审计日志保留周期≥180高危漏洞修复SLA≤72小时)等策略制度。

2.应急响应机制

建立三级应急响应流程:

一级事件(如数据泄露):30分钟内启动隔离与取证;

二级事件(如拒绝服务攻击):1小时内启用流量清洗;

三级事件(配置错误):24小时内完成回滚。

结语

通过上述方案,openGauss数据库可系统性满足等保三级在身份鉴别、访问控制、审计等层面的技术要求。实际部署需结合业务场景调整策略参数,并依托openGauss安全工具(如gs_checkgs_dump)实现安全状态的持续监控与优化,构建自主可控的高安全数据库体系。