2014 年 5 月 29 日

Elasticsearch (http://www.elasticsearch.org/) 是一种常用的开源搜索服务器。最近,我们发现此软件存在两个潜在的安全问题。虽然 AWS 不存在这些问题,但我们希望确保我们的客户了解该情况,以便他们能够采取适当的措施。

第一个问题是此软件 1.2 之前版本的默认配置不安全,如 CVE-2014-3120 (http://bouk.co/blog/elasticsearch-rce/) 中所述。攻击者可以利用此不安全配置,使用 Elasticsearch 守护程序的特权运行任意命令。

第二个问题是缺少适用于所有 Elasticsearch 版本的访问控制。可以连接到搜索端口的所有用户都可以查询或更改服务器上的任何索引。当 Elasticsearch 服务器对整个互联网开放并在默认端口 9200/tcp 上运行时,这些问题会带来非常大的风险。

避免这些问题的最有效方法是确保互联网上的每台主机都无法访问搜索服务器。您可以使用 EC2 安全组将对 9200/tcp 端口的访问限制为只允许那些应该查询搜索索引的主机访问,有关 EC2 安全组的详细信息,请访问以下链接:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html

此外,如果您运行的 Elasticsearch 版本比 1.2 更旧,则应禁用 Elasticsearch 中的动态脚本执行支持。有关此内容的详细信息,请访问以下链接:http://bouk.co/blog/elasticsearch-rce/#how_to_secure_against_this_vulnerability

如果您在生产中使用 Elasticsearch,我们建议您审核您的安全组,并在必要时采取适当措施限制对 Elasticsearch 服务器的访问。