安全云脑 SECMASTER-内置检查项:华为云安全配置基线—数据库

时间:2024-10-24 10:47:35

华为 云安全 配置基线—数据库

表37 数据库风险项检查项

检查子项目

检查项目

RDS for MySQL

配置合理的安全组规则

安全组是一个逻辑上的分组,为同一个虚拟私有云内具有相同安全保护需求,保障数据库的安全性和稳定性。

避免绑定EIP直接通过互联网访问

避免RDS for MySQL部署在互联网或者DMZ里,应该将RDS for MySQL部署在公司内部网络,使用路由器或者防火墙技术把RDS for MySQL保护起来,避免直接绑定EIP方式从互联网访问RDS for MySQL。通过这种方式防止未授权的访问及DDoS攻击等。

开启加密通信

如果未启用TLS加密连接,那么在MySQL客户端和服务器之间以明文形式传输数据,容易受到窃听、篡改和“中间人”攻击。如果您是通过像Internet这样的非安全网络连接到MySQL服务器,那么启用TLS加密连接就显得非常重要。

禁止使用默认端口

MySQL的默认端口是3306,使用默认端口容易被监听,存在安全隐患,推荐使用非默认端口。

开启透明 数据加密 功能

对数据文件执行实时 I/O 加密和解密,数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密,能有效保护数据库及数据文件的安全。

数据库版本更新到最新版本

MySQL社区有新发CVE漏洞时,会及时分析漏洞的影响,依据漏洞实际风险的影响大小决定补丁发布计划。建议及时升级修复,避免漏洞影响数据的安全。

开启数据库审计日志

审计功能可以记录用户对数据库的所有相关操作。通过查看审计日志,您可以对数据库进行安全审计、故障根因分析等操作,提高系统运维效率。

RDS for PostgreSQL 数据库

开启备份功能设置合理的备份策略

定期对数据库进行备份,当数据库故障或数据损坏时,可以通过备份文件恢复数据库,从而保证数据可靠性。

开启用户登录时日志记录功能

为了保证数据库的安全性和可追溯性,登录者所有的操作都会记录,以达到安全审计的目的。log_connections可以记录每次尝试连接到服务器的连接认证日志,log_disconnections记录用户注销时的日志,当受到攻击或者内部员工误操作而造成重要的数据丢失时,能够及时定位登录的IP地址。

禁止使用默认端口

PostgreSQL的默认端口是5432,使用默认端口容易被监听,存在安全隐患,推荐使用非默认端口。

配置合理的安全组规则

安全组是一个逻辑上的分组,为同一个虚拟私有云内具有相同安全保护需求,保障数据库的安全性和稳定性。

配置客户端认证超时时间

authentication_timeout控制完成客户端认证的时间上限,单位是秒。该参数可以防止客户端长时间占用连接通道,默认是60s。

限制连接数据库的IP地址

如果对连接数据库的IP地址不设置限制,全网都可访问,直接会增大攻击面。

开启数据库审计日志

通过将PostgreSQL审计扩展(pgAudit)与RDS for PostgreSQL数据库实例一起使用,可以记录用户对数据库的所有相关操作,通过查看审计日志,您可以对数据库进行安全审计、故障根因分析等操作,提高系统运维效率。

数据库版本更新到最新版本

PostgreSQL社区当前 9.5/9.6/10 版本已经EOL,社区已不再维护,云上 9.5/9.6 版本已经发布EOS公告。使用较老的版本可能存在漏洞,运行最新版本的软件可以避免受到某些攻击。

GaussDB 数据库

数据库连接的最大并发连接数配置

如果GaussDB连接数过高,会消耗服务器大量资源,导致操作响应变慢,同时要根据操作系统环境来设置最大连接数,如果高于操作系统接收的最大线程数,设置无效。

通过设置最大连接数,可以避免出现DDoS攻击,同时可以用最合理的方式利用系统的资源,达到最佳的OPS响应能力。

权限管理

防止PUBLIC拥有CREATE权限,导致数据库任何账户都可以在PUBLIC模式下创建表或者其他数据库对象,需要对PUBLIC的权限进行限制

开启数据库审计日志

审计功能可以记录用户对数据库的所有相关操作。通过查看审计日志,您可以对数据库进行安全审计、故障根因分析等操作,提高系统运维效率。

安全认证配置

为了保证用户体验,同时为了防止账户被人通过暴力破解,GaussDB设置了账户登录重试次数及失败后自动解锁时间的保护措施。

用户密码的安全策略

用户密码存储在系统表pg_authid中,为防止用户密码泄露,GaussDB对用户密码进行加密存储,所采用的加密算法由配置参数password_encryption_type决定;

GaussDB数据库 用户的密码都有密码有效期,可以通过参数password_notify_time提醒客户修改密码,如果需要修改密码有效期,可以通过修改password_effect_time来更改。

WAL归档配置

WAL(Write Ahead Log)即预写式日志,也称为Xlog。

开启备份功能设置合理的备份策略

当数据库或表被恶意或误删除,虽然GaussDB支持高可用,但备机数据库会被同步删除且无法还原。因此,数据被删除后只能依赖于实例的备份保障数据安全。

DDS 文档数据库

开启加密通信

如果未启用TLS加密连接,那么在MongoDB客户端和服务器之间以明文形式传输数据,容易受到窃听、篡改和“中间人”攻击。

如果您是通过像Internet这样的非安全网络连接到MongoDB服务器,那么启用TLS加密连接就显得非常重要。

开启备份功能设置合理的备份策略

DDS实例支持自动备份和手动备份,您可以定期对数据库进行备份,当数据库故障或数据损坏时,可以通过备份文件恢复数据库,从而保证数据可靠性。

禁止使用默认端口

MongoDB的默认端口是27017,使用默认端口容易被监听,存在安全隐患,推荐使用非默认端口。

补丁升级

DDS支持补丁升级,版本升级涉及新功能添加、问题修复,同时可以提升安全能力、性能水平。

关闭脚本运行功能

启用javascriptEnabled选项security.javascriptEnabled,可以在mongod服务端运行javascript脚本,存在安全风险,,禁用javascriptEnabled选项,mapreduce、group命令等将无法使用。

如果您的应用中没有mapreduce等操作的需求,为了安全起见,建议关闭javascriptEnabled选项。

设置秒级监控和告警规则

DDS默认支持对实例进行监控,当监控指标的值超出设置的阈值时就会触发告警,系统会通过 SMN 自动发送报警通知给云账号联系人,帮助您及时了解DDS实例的运行状况。

限制最大连接数

如果MongoDB的连接数过高,首先会消耗服务器过多的资源,导致ops(query、insert、update、delete)等反应变慢,同时要根据操作系统环境来设置最大连接数,如果高于操作系统接收的最大线程数,设置无效。通过设置最大连接数,可以避免出现DOS攻击,同时可以用最合理的方式利用系统的资源,达到最佳的OPS响应能力。

开启数据库审计日志

审计功能可以记录用户对数据库的所有相关操作。通过查看审计日志,您可以对数据库进行安全审计、故障根因分析等操作,提高系统运维效率。

开启磁盘加密

通过启用磁盘加密,可以提高数据安全性,但对数据库读写性能有少量影响。

support.huaweicloud.com/usermanual-secmaster/secmaster_01_0021.html