近日安全团队经检测发现部分阿里云用户存在MongoDB数据库未授权访问漏洞,漏洞危害严重,易导致数据库泄密。为保证您的业务和应用的安全,请广大用户尽快修复漏洞。
具体事宜如下所示:
1、漏洞危害
开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作而且可以远程访问数据库!
2、漏洞成因
在刚安装完毕的时候MongoDB都默认有一个admin数据库,此时admin数据库是空的,没有记录权限相关的信息!当admin.system.users一个用户都没有时,即使mongod启动时添加了--auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作(不管是否是以--auth 参数启动),直到在admin.system.users中添加了一个用户。加固的核心是只有在admin.system.users中添加用户之后,mongodb的认证,授权服务才能生效!
3、漏洞加固方案(仅供参考)
方法一:
可以修改端口和指定访问ip
具体根据实际情况来设定,也可以直接在服务器防火墙上做。
方法二:
在admin.system.users中添加用户,启动认证。
#在admin 数据库中创建用户!supper 密码为sup(此处均为举例说明)
[mongodb@rac3 bin]$ ./mongo 127.0.0.1:27017
MongoDB shell version: 2.0.1
connecting to: 127.0.0.1:27017/test
> use admin
switched to db admin
>
> db.addUser("supper", "sup")
{ "n" : 0, "connectionId" : 4, "err" : null, "ok" : 1 }
{
"user" : "supper",
"readOnly" : false,
"pwd" : "51a481f72b8b8218df9fee50b3737c44",
"_id" : ObjectId("4f2bc0d357a309043c6947a4")
}
> db.auth("supper","sup")
1
> exit