随笔 | 让您操碎心的ElasticSearch,原来还可以这样加固安全

原创
2017/03/15 10:51
阅读数 450

GDI Foundation的安全研究人员Victor Gevers 在2016年12月27日发现,一些不采取任何安全防护措施的MongoDB用户的数据被黑客攻击,数据库内容被加密,受害者必须支付赎金才能找回自己的数据。随后,这一事件不断发酵、扩大,一些骇客又开始将劫持矛头指向ElasticSearch服务器,并要求受害者支付类似的赎金。第一波针对ElasticSearch服务器所有者的攻击发生于1月12日,据追踪本轮ElasticSearch攻击活动的Niall Merrigan最新报告,已有超过800台服务器遭受劫持,安全形势不容乐观。

针对这一情况,Elastic公司给出了六条防护建议。而全世界的ElasticSearch研究爱好者也纷纷亮出自己对ElasticSearch数据安全的建议。这些建议基本反映出了ElasticSearch通行的几种安全防护策略:

第一,通过正规渠道下载 ElasticSearch(首选官方网站),并及时更新升级版本;

第二,修改默认的ElasticSearch集群名称;

第三,不要暴露 ElasticSearch在公网上,绑定公网IP要特别小心;

第四,禁用批量删除索引 ;

第五,安全使用动态脚本,一定要有发现和预警机制;

第六,ElasticSearch 服务器加固,开启防火墙,禁用 root 用户,不用使用弱密码;

第七,正确设置 ElasticSearch的数据目录,避免泄露敏感信息;

第八,定期对 ElasticSearch进行备份;

第九,采取监控和预警措施。

ElasticSearch因为其查询查询快,安装方便,语法类SQL,而与大数据结下情缘。常常在大数据平台中作为存储内核大放异彩,其安全性自不待言。以上安全策略虽然起到了很大的作用,但是它们有一个前提:

ElasticSearch必须经过了授权。

Shield是Elastic公司为ElasticSearch开发的一个安全插件。在安装此插件后,Shield会拦截所有对ElasticSearch的请求,并加上认证与加密,保障ElasticSearch及相关系统的安全性。但是,Shield需要授权收费的。因此,如果您想拥有一套安全且面向互联网的Elasticsearch实例,那么我们强烈建议您立即采取以下措施以保护您的数据:

一、对全部数据备份至安全位置,并考虑使用Curator快照,防止数据被破坏后手足无措;

二、对您的环境进行重新配置,从而将ElasticSearch运行在一套隔离型不可路由网络当中,如果您必须通过互联网访问对应集群,请通过防火墙、VPN、反向代理或者其它技术手段限制来自互联网的集群访问请求,这是最为简单而直接的做法;

三、升级至Elastic Stack的最新版本,如果您运行的是v2.x版本,请检查您的scripting设置,在新的v5.x版本中则请检查Painless脚本设置;

四、利用X-Pack安全工具添加TLS加密、验证、授权以及IP过滤等功能,从而保护您的ElasticSearch实例。

X-Pack虽然能对ElasticSearch进行较强的保护,但目前这部分是需要商业授权的。建议的做法是,采用Sql引擎来访ElasticSearch,通过Sql引擎结合ElasticSearch集群的网络隔离,对存储在ElasticSearch的数据进行安全管理。

用户身份认证

CREATE USER username IDENTIFIED BY 'password';

是不是非常熟悉,继续往下....

权限分配

GRANT ROLES ON TABLES TO NAME@STRING;

grant select on sjrz_qm*.* to test@'10.68.11.%'

grant select on account*.* to sy@'%'

grant select on account*.base to sy@'%'

grant drop on people_trail*.base to username@'%';

X-Pack有的验证、授权以及IP过滤等功能,全都具备。

针对数据运维,还可以加上动态数据脱敏功能,即使运维人员有较高的数据库访问权限,但其能拿的数据仍然是被脱敏处理了的,并不是真实数据。

grant select on people_trail.base(zjhm) to test@'%' with code_masking;

grant select on people_trail.base(xm) to test@'%' with name_masking;

五、采用外部隔离和封装SQL来使用ElasticSearch。

生活中,抱团取暖是应对危机的一种上策,而在IT设备防御中也是一种上策。将各个ES集群节点封装成一个整体,ES客户端通过ESQL工具来现ES集群通信,一方面,通过ESQL的防护实现ES集群的安全隔离。另一方面,ESQL工具可以简化使用,并且实现对资源的细粒度授权管理。

更多信息,可以通过https://github.com/unimassystem了解!

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部