关于“MongoDB和Redis数据库未授权访问漏洞”的安全提示

发布时间:2017-11-17浏览次数:794

近期我校发现多个MongoDB或Redis数据库未授权访问漏洞的实例,涉及多台主机和服务器,已经根据学校网络信息安全漏洞处置流

程进行整改。据安全机构对外发布的安全事件案例分析和安全报告统计,目前多数勒索病毒均利用未授权访问等通用漏洞进行植入

、勒索,包括Redis、MongoDB等数据库的未授权访问漏洞,而也未授权访问漏洞本身也存在明显的数据泄漏风险。因此,这里对“

MongoDB数据库和Redis服务器未授权访问漏洞”进行如下安全提示,请各位师生在日常使用MongoDB或Redis数据库时注意进行相应

的安全设置,减少网络安全隐患。以下安全加固建议,请结合自身部署情况自行选择有效的方式。


1、Redis数据库未授权访问漏洞

1)漏洞描述

Redis因配置不当可以未授权访问。攻击者无需认证访问到内部数据,可导致敏感信息泄露,也可以恶意执行flushall来清空所有

数据。如果Redis以root身份运行,可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。

2)漏洞加固

可以配置redis.conf文件(在安装目录下):

默认只对本地开放:bind 127.0.0.1

添加登陆密码:requirepass www.secpulse.com

在需要对外开放的时候修改默认端口:port 2333

最后还可以配合iptables或主机防火墙限制开放。


2、MongoDB数据库未授权访问漏洞

1)漏洞描述

开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,而且可以远程访问数据库,登录的用户可以通过默认端口无需密码对数据库进行增、删、改、查等任意高危操作。

2)漏洞加固

为MongoDB添加认证:

(1)MongoDB启动时添加–auth参数

(2)给MongoDB添加用户:

use admin #使用admin库

db.addUser(“root”, “123456”) #添加用户名root密码123456的用户

db.auth(“root”,”123456″) #验证下是否添加成功,返回1说明成功

禁用HTTP和REST端口:

MongoDB自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。mongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择–nohttpinterface 参数nohttpinterface=false

:限制绑定IP:

启动时加入参数

–bind_ip 127.0.0.1

或在/etc/mongodb.conf文件中添加以下内容:

bind_ip = 127.0.0.1


参见:【脉搏沉淀系列】未授权访问漏洞总结