30

如何预防 Elasticsearch 服务器入侵事件的发生

 3 years ago
source link: https://mp.weixin.qq.com/s/m5GzEfjy8aWxEg-RGoWYkg
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

如果您身在技术圈,很可能在某个时刻已经正面遭遇过“服务器入侵”。即使您身处圈外,也可能会对致使私密个人数据最终落入不法之手的服务器/数据入侵和安全漏洞有所耳闻。此类数据可能包括信用信息、社会安全号码,以及其他您想要保密且不希望落入暗网的信息。

所有软件都必须应对可能出现的入侵或攻击。Elasticsearch,这个由 Elastic 开发的开源软件项目也不例外。未在 Elasticsearch 中安全存储的数据也曾发生过泄露、丢失或被盗的情况。

如何预防 Elasticsearch 服务器入侵事件的发生

本文将带您了解数据入侵的发生途径,以及用户如何在 Elasticsearch 环境中周全地保护数据。我们将由浅入深,先从一些基础知识开始讲解。

Elasticsearch 简介

Elasticsearch 是一个开源搜索和分析引擎,同时也是一个数据存储库,而且它的下载量数以亿计,受欢迎程度由此可见一斑。我们虽然对它的速度、规模和搜索相关性不惜溢美之词,但它的广泛采用在很大程度上得益于其以下特点:易于使用;能够处理任何类型的数据(文本、数字、地理空间等);拥有一系列强大的功能;并且任何人都可以提交 bug 修复或改进建议(因为它是开源的)。

说得直白一点,它就像一个包含数十亿行的电子表格,尽管体量庞大,但您仍然能够在瞬间找到或计算其中的任何内容。Elasticsearch 就是如此,其功能非常出色,所以众多组织使用 Elasticsearch 来执行各种事务 — 例如,支持其电子商务网站上的搜索、分析来自火星探测器的数据,或确保拼车准时到达。

Elastic 是谁?另外,你们有我的数据吗?

Elastic 是一家开发 Elasticsearch 以及 Elastic Stack 其他系列产品(Kibana、Beats 和 Logstash 等)的公司,而 Elasticsearch 是包括搜索、可观测性、安全性等在内的各种解决方案的基础。

对于您提的问题,简短回答是“没有”。我们开发了 Elasticsearch,然后其他公司可以在本地或云基础设施中运行。 

稍长点的回答是“可能有”。这是因为一些公司会使用 Elastic Cloud,这是我们托管的 Elasticsearch 产品。我们负责维护客户存储在 Elastic Cloud 中的任何数据,包括确保数据安全。因此,我们所有的 Elasticsearch Service 部署本身都是安全的。

Elasticsearch 将数据保存在何处?

由于 Elasticsearch 是开源软件,任何人都可以免费下载和安装,因此它几乎可以安装在任何地方。有些公司下载后会将其安装在自己的内部服务器上,而有些公司下载后会将其安装在自选的提供商的云中。此外,也有一些云服务公司提供托管版本的 Elasticsearch,也就是为客户托管和管理我们所说的 Elasticsearch 集群。 

事实上,Elastic 在 Elastic Cloud 上也提供了我们自己托管的 Elasticsearch Service。我们提供了全面的管理服务(包括默认的安全服务),并支持您从几个不同的云服务提供商中选择基础设施。

入侵 Elasticsearch 服务器的方式有哪些?

数据存储库被入侵的方式多种多样,从密码被盗到黑客攻入,再到心怀不满的员工恶意报复等不一而足。对于 Elasticsearch,最常见的入侵类型是由于某个集群在互联网上不够安全所致,也就是说,任何人都可以在不需要用户名或密码的情况下连接并访问数据。这些开放集群通常是由安全研究人员发现的,随后他们会公布这些发现,这样全世界都会发现遗留在互联网上的这些数据。

如果保护得当,Elasticsearch 集群受到入侵的风险并不会比任何其他数据库高。鉴于此,我们免费默认提供了保护 Elasticsearch 集群所需要的功能,只要下载并使用 Elastic Stack 即可实现安全。为此,让我们来看看 Elasticsearch 用户可以做些什么,以确保他们用到这些功能并保证集群安全。

如何保护 Elasticsearch?

我们在免费、默认的(基本层)发行版中纳入了 Elasticsearch 安全功能,这就是说,任何人都可以为其 Elasticsearch 集群配置安全性并防止意外数据泄露。不过,在研究如何使用这些功能之前,我们先来看看如何判断您的集群是否安全。

如何知道我有不安全的 Elasticsearch 集群?

如果您是 Elasticsearch 的用户或管理员,则可以通过几个简单的步骤来检查安全功能是否已启用且运行正常。 

确定这一点的最佳方法是查询设置 API。发出以下查询:

GET _xpack/usage?filter_path=security

如果安全功能禁用,就会看到类似以下的结果:

{ 
"security" : {
"available" : true,
"enabled" : false, // 安全功能关闭时,此设置为“false
"ssl" : {
"http" : {
"enabled" : false
},
"transport" : {
"enabled" : false
}
}
}
}

或者,如果安全功能按预期工作,则会显示如下信息

{ 
"security" : {
"available" : true,
"enabled" : true, // 安全功能开启时,此设置为“true”
"realms" : { ... },
"roles" : { ... },
"role_mapping" : { ... },
"ssl" : {
"http" : {
"enabled" : true
},
"transport" : {
"enabled" : true
}
},
"token_service" : { ... },
"api_key_service" : { ... },
"audit" : { ... },
"ipfilter" : { ... },
"anonymous" : { ... }
}
}

您可以看到,结果大相径庭。根据您部署的版本和许可级别,结果也会略有不同。

如何确保我的 Elasticsearch 集群安全?

要确保外人无法访问您的 Elasticsearch 集群,最简单的两个方法是:

  1. 启用身份验证 ,不登录 Elasticsearch 就无法访问。

  2. 启用 TLS ,防止他人窃取通过网络传输的 Elasticsearch 数据。

我们提供了很多非常棒的资源来解释如何确保 Elasticsearch 的安全,包括如何轻松实施上面的两个建议。但是,要想获得安全,最快捷方法莫过于查看我们的 Elasticsearch 安全入门(TLS 和 RBAC)博客。

在 Elastic Cloud 的 Elasticsearch Service 中,我们还为所有这些设置了快捷键。在使用我们的 Elasticsearch Service 时,您可以肯定的是,它为每个集群都自动配置了安全功能。

安全离不开团队合作

如果您有任何问题,可以随时联系我们。我们提供了多种加入 Elastic 社区的途径,比如论坛、本地活动和大量文档。我们也一直在努力让保护 Elasticsearch 的安全比以前更加容易。请务必关注我们的博客,了解未来动态,以及我们当前正在做些什么。如果您酷爱蜘蛛侠,一定很熟悉这句话:“能力越大,责任越大”,对于 Elastic 和任何使用 Elasticsearch 来存储数据的人来说都是如此。

点击下方“阅读原文”,查看更多精彩内容哦!

↓↓↓ 


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK