首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为Mongo Express Web管理界面保驾护航

【51CTO.com快译】Mongo Express是一种基于Web的轻量级管理界面,用于交互式管理MongoDB数据库。它使用Node.js、Express和Bootstrap软件包编写而成。本文介绍在无需身份验证的情况下部署Mongo Express管理面板以及防止泄露的各种措施。

验证方案

Mongo Express随带config-default.js文件。它主要支持基本的验证,这包含用户名和密码组合的base64编码有效载荷。这意味着,如果配置了基本验证,每次请求访问不同的Mongo Express Web组件时就会传输HTTP请求报头Authorization:Basic 。图1显示了用于提供基本验证登录信息的变量。

图1. Mongo Express Web管理控制台验证变量

除了上面讨论的Web面板验证方案外,Mongo Express软件包还支持通过环境变量传递数据库验证登录信息。如果使用虚拟机或容器来部署主机,通过环境变量传递登录信息可能导致信息在多个位置泄漏。图2显示了用于传递值的环境变量的类型。

图2. 用于Mongo数据库连接的环境变量

用于提供验证的Mongo Express环境变量如图3所示:

图3. 用于Mongo Express验证的Docker环境变量

总体而言,基本验证用于保护Mongo Express Web管理面板,而环境变量用于存储用来配置与主要的MongoDB数据库之间的后端连接的登录信息。

Mongo Express:HTTP请求/响应

在默认状态下,Mongo Express传输HTTP请求和响应报头,如代码片段1所示。创建了mongo-express cookie参数,用于存储与会话有关的信息。

代码片段1. Mongo Express Web服务器的HTTP请求/响应

set-cookie:mongo-express签名可用于鉴别部署在互联网上的Mongo Express的特征。

实证分析

成千上万的Mongo Express Web管理面板暴露在互联网上,无需验证即可访问它们。这意味着任何远程用户都可以访问这些界面、执行命令或检索敏感信息。

在这里,可以看到可用于无需验证,就可以扫描在互联网上运行的Mongo Express实例的HTTP资源路径:

直接的Web链接:

[IP:port]/db/config/

[IP:port]/db/config/system.sessions

[IP:port]/db/admin/system.users

[IP:port]/db/admin/system.version

[IP:port]/db/local/startup_log

JSON转储(JSON dump)

[IP:port]/db/config/

[IP:port]/db/config/expArr/system.sessions

[IP:port]/db/admin/expArr/system.users

[IP:port]/db/admin/expArr/system.version

[IP:port]/db/local/expArr/startup_log

代码片段2只是预测为访问Mongo Express软件包使用的资源而发送的cURL请求的输出:

代码片段2. 访问系统的JSON转储,用户无需远程服务器的验证

以下是我们进行的未验证的Mongo Express Web管理实例的实时评估的几个例子。

访问管理员root:可以访问和编辑含有登录详细信息的文档,比如salt、storedKey、serverKey及其他值。图4显示了同样的情况。

图4. 提取Admin.Root的角色和登录信息

数据库删除:图5和图6显示可以通过删除所有关联的集合来删除数据库。这些例子显示了通过不安全的Mongo Express管理面板删除startup_log数据库。

图5. 开始从数据库删除集合

图6. 数据库成功删除

信息泄漏:日志还可以显示关于构建环境的内部信息,如图7所示。

图7. 关于构建环境的信息泄漏

若干建议

上面介绍的例子强调了为什么保护部署在互联网上的Mongo Express实例很重要。以下是防止泄露的几个提示:

1. 使用强登录信息限制访问,并部署边界访问控制机制。

2. 对网络边界上公开的服务执行定期漏洞评估和渗透测试,确保关键服务受到限制,并未运行不安全的软件版本。

3. 制定强有力的风险评估计划,确保预先了解风险并相应地进行补救。

4. 定期执行配置审查,并制定安全影响分析(SIA)计划,将这种做法落实到位。

原文标题:Too fast, too insecure: Securing Mongo Express web administrative interfaces,作者:Aditya K Sood

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190507A09D7K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券