"Authentication partially enabled"在MongoDB中是什么意思?

7

我在Shodan上扫描了我的服务器IP,发现它列出了我的MongoDB,并注明“部分启用认证”。

现在,我不知道它实际上意味着什么。我确信我正确地设置了认证,但“部分启用”的词让我担忧。

1个回答

7
这意味着你拥有启用身份验证的mongodb数据库。我猜Shodan使用这个花哨的措辞是为了突出显示数据库仍在监听外部接口,也就是说,你可以使用命令连接到数据库。
mongo <your IP>

随时随地都可以执行某些无需身份验证的命令,例如:

db.isMaster()
db.runcommand({buildInfo:1})
db.auth()
....

这会留下漏洞利用、暴力攻击等风险。

服务器响应连接请求时,会暴露使用的mongo信息。服务器广告的版本、ssl库、编译选项和其他信息可以用于搜索已知或0day漏洞。

您可以在shodan上查看暴露的信息https://www.shodan.io/search?query=mongodb+server+information。将其与“部分启用身份验证”的主机可用信息进行比较。

最常见的加固mongodb设置的方法是仅使其从本地网络/VPC/VPN访问。如果业务性质要求裸露的mongo可从互联网访问,则将其隐藏在防火墙后,只允许来自已知IP的连接。在这两种情况下,您将完全不可见于Shodan和类似服务。


1
我们决定使用这种语言,因为仍然可以在数据库服务器上运行一些命令。也就是说,仍然可以连接并运行一些命令 - 不仅仅是允许TCP连接。 - achillean
@achillean 说得好。我更新了答案,使其更加清晰明了。 - Alex Blex
@AlexBlex 我认为将系统信息暴露出来是一个设计错误。我找到了另一个类似于你的问题,并且有答案。但是,它很难通过谷歌搜索找到。我在12月20日找到了答案。 - user13599244

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接