2021年7月22日,Redis官方和开源Redis社区先后发布公告,披露了CVE-2021-32761 Redis(32位)远程代码执行漏洞。在32位Redis中,攻击者在Redis存在未授权访问的情况下可利用*BIT*命令与proto-max-bulk-len配置参数可能造成整形溢出,最终导致远程代码执行,本次漏洞等级为高危级别。需要说明的是,本次开源Redis的安全漏洞并不影响现网华为云GaussDB(for Redis)的任何实例,已经在使用华为云GaussDB(for Redis)的用户请继续放心使用。
通过本次漏洞可以发现,开源Redis对BITFIELD等命令的代码实现上存在问题,导致了对string数据类型的 *** 作存在安全隐患。随时可能被恶意触发整形溢出BUG,甚至还会被恶意执行远程代码。因此,给了黑客可乘之机。本次漏洞的代码修复已经发布,官方建议用户尽快升级到开源Redis6.2.5, 6.0.15, 5.0.13这三个安全版本。
那么,对于此类数据库安全漏洞该如何防患于未然呢?
数据库漏洞属于软件漏洞中的一种,主要是被用来突破系统的安全策略。数据库漏洞往往会影响很大一个范围,除了影响数据库自身,还包括数据库所在 *** 作系统和数据库所在局域网的整体安全。通常来说,防范和补救措施有:1. 紧跟官方通知,排查并升级数据库到安全版本。本次漏洞事件中,开源Redis用户应第一时间完成升级;2. 若短时无法升级,则从服务端开启访问限制,禁用危险命令;3. 通过白名单访问IP等安全策略,提高入侵难度;4. 选择可靠的云服务厂商,比如迁移至华为云数据库GaussDB(for Redis),可全方位保障数据的安全可靠。
1.全新数据编码更安全: 华为云数据库GaussDB(for Redis)采用先进存算分离架构,兼容Redis协议,提供海量数据的持久化存储。在代码实现上完全自研,采用全新数据编码,更高效,空间使用率也更高。内部每种命令的实现并不依赖开源Redis,因此,不会受到类似本次开源Redis安全漏洞的影响。
2. 安全防护体系全面保障: 基于华为云可靠的现网安全体系,使用GaussDB(forRedis)的用户可以随时制定自己的白名单IP访问策略。还可以通过虚拟私有云、子网、安全组、DDoS防护以及SSL安全访问等多层安全防护体系,有力地抗击各种恶意攻击,保证数据安全,不给未知来源的恶意访问留有任何机会。
华为云数据库GaussDB(forRedis)是一款完全自研的旗舰产品,是支持Redis协议的NoSQL数据库,而不是缓存。与开源Redis最大的区别是,它具备存算分离架构,提供强大的数据存储能力,包括强一致、d性扩缩容等高级特性。GaussDB(for Redis)为用户带来了更低成本、更大容量、更高可靠、且d性伸缩的极佳产品体验。
对于正在使用开源Redis2.6以上各版本的用户,GaussDB(for Redis)还提供了一站式的迁移服务,无需技术门槛, *** 作简单快捷,仅需分钟级就能搭建起迁移任务,让整个环境搭建“高效快速”,为企业上云保驾护航,再无安全之忧。
伴随数据价值的不断提升,作为海量数据的载体,数据库所需面对的安全隐患和风险也水涨船高,但无论是DBA还是云服务厂商都应该树立良好的安全意识,才能更好的保障数据库安全。华为云数据库将持续满足不同数据库的安全防护需求,为数据库及数据安全建设发展提供有力支撑,让用户对数据使用更自由、更安全!
1.在信任的内网运行,尽量避免有公网访问,redis自身只有一个密码控制访问,不能设置用户权限和IP限制。理论把redis运行在一个信任的网络环境中。
2.绑定Redis监听的网络接口
如果服务器有多个IP,可限定redis server监听的IP通过redis配置项bind,可同时绑定多个IP.
3.禁止root用户启动redis,使用普通用户启动,安全性往往高很多业务程序永久别用root用户运行。
4.限制redis文件目录访问权限
设置redis的主目录权限为700如果redis配置文件独立于redis主目录,权限修改为600,因为Redis密码明文存储在配置文件中。
$chmod700 /var/lib/redis#假设这是你redis目录
$chmod600 /etc/redis/redis.conf#假设这是你redis配置文件
5.避免使用熟知端口
程序运行尽量避免使用熟知端口或默认端口,降低被初级扫描的风险。
6.开启Redis密码认证,并设置高复杂度密码
redis在redis.conf配置文件中,设置配置项requirepass, 开户密码认证。
$vim/etc/redis/redis.conf
requirepass ed4c39b015b0e46f074dbfd0a9a4ab278f63340a6d640999f25c68a932fef815
redis因查询效率高,auth这种命令每秒能处理10w次以上,简单的redis的密码极容易为攻击者暴破。
requirepass至少长度20位以上,为方便可使用一个特殊串sha256sum命令生成64位的无特殊字符串。
7.禁用或重命名危险命令
这个漏洞就利用config/save两个命令完成攻击 。 因redis无用户权限限制,建议危险的命令,使用rename配置项进行禁用或重命名,这样外部不了解重命名规则,攻击者就不能执行这类命令。
以下示例:redis.config文件禁用FLUSHDB、FLUSHALL两个命令重命名CONFIG、SHUTDOWN命令,
添加一个特殊的后缀。 这样redis启动后,只能运行CONFIG_b9fc8327c4dee7命令,不能执行CONFIG命令。
rename-command CONFIG CONFIG_b9fc8327c4dee7
rename-command SHUTDOWN SHUTDOWN_b9fc8327c4dee7
rename-command FLUSHDB ""
rename-command FLUSHALL ""
8.禁止Redis中存储敏感的明文数据
Redis设计旨在提供高性能的KV服务,至少目前在权限访问控制和数据持久化方面比较弱化。所以禁止在Redis中存储或缓存,敏感的明文数据。
9.安全监控,建立 蜜罐网络 ,有攻击尝试时,可及时发现。
监控redis安全状态,cmdstat_auth cmdstat_flushdb/flushall监控报警。
欢迎关注公众号:cxyluna ,互联网IT技术分享。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)