如何預防 Elasticsearch 服務器入侵事件的發生

如果您身在技術圈,很可能在某個時刻已經正面遭遇過“服務器入侵”。即使您身處圈外,也可能會對致使私密個人數據最終落入不法之手的服務器/數據入侵和安全漏洞有所耳聞。此類數據可能包括信用信息、社會安全號碼,以及其他您想要保密且不希望落入暗網的信息。

所有軟件都必須應對可能出現的入侵或攻擊。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 集羣,最簡單的兩個方法是:

啓用身份驗證 ,不登錄 Elasticsearch 就無法訪問。

啓用 TLS ,防止他人竊取通過網絡傳輸的 Elasticsearch 數據。

我們提供了很多非常棒的資源來解釋如何確保 Elasticsearch 的安全,包括如何輕鬆實施上面的兩個建議。但是,要想獲得安全,最快捷方法莫過於查看我們的 Elasticsearch 安全入門(TLS 和 RBAC)博客。

在 Elastic Cloud 的 Elasticsearch Service 中,我們還爲所有這些設置了快捷鍵。在使用我們的 Elasticsearch Service 時,您可以肯定的是,它爲每個集羣都自動配置了安全功能。

安全離不開團隊合作

如果您有任何問題,可以隨時聯繫我們。我們提供了多種加入 Elastic 社區的途徑,比如論壇、本地活動和大量文檔。我們也一直在努力讓保護 Elasticsearch 的安全比以前更加容易。請務必關注我們的博客,瞭解未來動態,以及我們當前正在做些什麼。如果您酷愛蜘蛛俠,一定很熟悉這句話:“能力越大,責任越大”,對於 Elastic 和任何使用 Elasticsearch 來存儲數據的人來說都是如此。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章