研究人员如何发现MongoDB和Elasticsearch开放数据库

前一段时间,在安全研究人员中,找到带有各种机密信息的配置不当的AWS云存储非常“时髦”。 当时,我甚至发布了关于如何发现Amazon S3开放云存储的小短文。

但是,随着时间的流逝,研究的重点已经转移到寻找不安全和公开的公共领域数据库。 在过去的一年中,已知的大数据泄漏案例中有超过一半是来自开放数据库的泄漏。

今天,我们将尝试找出安全性研究人员如何发现此类数据库...

必需的免责声明:本文不涉及也没有提出与搜索和识别公共数据库有关的法律和道德问题。 以下所有信息仅应视为具有教育意义。

如果我说搜索开放式数据库的主要工具是专门的搜索引擎Shodan.io,BinaryEdge.io和Censys.io,那么我不会“发现美国”。我要说明的是,这些不是免费服务,您必须付费才能访问完整的搜索结果(Shodan:每月$59,BinaryEdge:每月$50,Censys:每月$99,最低基本套餐)。 免费版本的搜索引擎严重限制了搜索结果的数量。

除了使用搜索功能的类似于Google的经典搜索体验外,这些搜索引擎还提供了通过API连接到它们的功能。幸运的付费订阅用户将收到一个API密钥。这使得清理搜索垃圾的工作变得更加容易。在本文的最后,我提供了使用API键的有用脚本和搜索自动化程序的列表。

让我们看一下Shodan搜索引擎的示例:如何查找开放的MongoDB和Elasticsearch数据库。

请求尝试的最简单、最明显的请求是“MongoDB”:
从上面的屏幕截图中,我们可以看到此请求返回了所有索引的MongoDB服务器(默认端口为27017)。 此外,其中大多数(屏幕快截图的前三个)将是需要帐户凭据的封闭数据库。 这不是我们真正感兴趣的。 更确切地说,这一点都不有趣。

让我们使用搜索过滤器“all:" mongodb server information "all:" metrics "”使查询略微复杂化。
结果看起来好多了。 当搜索引擎索引它们时,所有找到的数据库都是免费的。 很可能我们可以使用任何MongoDB管理器(例如,用于MongoDB的NoSQL管理器或用于MongoDB的Studio 3T)连接到指定的IP地址。

可以将搜索范围限制在任何国家。假设要在中国查找开放的MongoDB:(查询“所有:”mongoDB服务器信息“所有:”指标“国家:”cn“):
要搜索Elasticsearch开放数据库,使用查询“端口:” 9200“所有:”弹性索引“”很方便: