0x01漏洞描述

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。Elasticsearch的增删改查操作全部由http接口完。由于Elasticsearch授权模块需要付费,所以免费开源的Elasticsearch可能存在未授权访问漏洞。该漏洞导致,攻击者可以拥有Elasticsearch的所有权限。可以对数据进行任意操作。业务系统将面临敏感数据泄露、数据丢失、数据遭到破坏甚至遭到攻击者的勒索。

0x02 漏洞危害

Elasticsearch默认9200端口对外开放且未进行验证,用于提供远程管理数据的功能,任何连接到服务器端口上的人,都可以调用相关API对服务器上的数据进行任意的增删改查。

0x03 漏洞验证

访问ES相关API,可直接读取敏感数据,甚至可以操作相关数据。
http://localhost:9200/_plugin/head/ web管理界面
http://localhost:9200/_cat/indices
http://localhost:9200/_river/_search 查看数据库敏感信息
http://localhost:9200/_nodes 查看节点数据

ES未授权敏感信息

0x04 修复建议

1、9200端口不要对外开放,如需开放,建议在安全组限制只允许指定IP才能访问9200端口;

// accept

## iptables -A INPUT -p tcp -s 127.0.0.1 --dport 9200 -j ACCEPT
## iptables -A INPUT -p udp -s 127.0.0.1 --dport 9200 -j ACCEPT

// drop

## iptables -I INPUT -p tcp --dport 9200 -j DROP
## iptables -I INPUT -p udp --dport 9200 -j DROP

// 保存规则并重启 iptables

## service iptables save
## service iptables restart

2、为elasticsearch增加登录验证

https://cloud.tencent.com/developer/article/1620806

3、使用Nginx搭建反向代理,通过配置Nginx实现对Elasticsearch的认证。

文章来源于腾讯云开发者社区,点击查看原文