1. 程式人生 > >Service Mesh對企業安全而言意味著什麽?

Service Mesh對企業安全而言意味著什麽?

Service Mesh 企業安全

你聽說過Service Mesh(服務網格)嗎?

我相信你聽說過。Service Mesh正成為容器生態圈愈發重要的一部分。

本文將簡要概述Service Mesh的作用,並深入探討它們對於企業安全性的意義。


Service Meshes是什麽?它為何如此重要?


連接問題


要想理解Service Mesh的存在原因,首先考慮一下容器環境中的網絡連接。

想象一下當你運行一個雲原生應用時會發生什麽。但凡它具有一定的規模和復雜性,它通常都需要由大量單獨的服務組成,這些服務間為了能夠像一個單體桌面應用程序組件一樣高效地運行,需要相互進行協調。

再加上在任何指定時間運行的每個服務的實例數量,以及這些實例的狀態及可用性的變化,不難看出,簡單的將一個服務連接到另一個服務的行為,在這樣的情形下會變成多麽恐怖的組合問題。


編排是基礎


多虧了有Kubernetes等編排工具,雲原生應用程序不會出現混亂或者從內部logjams出現凍結,它們將服務和實例組織成方便管理和尋址的單元,這樣就可以通過系統化的方式找到並訪問這些單元。

這些編排工具就好像一個房屋開發商,他們鋪設街道,在新的社區建造房屋——它們建立了框架和交通線路,然而大多數情況下,處理社區的交通細節並不是它們的工作。


管理流量


這就是需要Service Mesh的地方。當一個服務需要向另一個服務發送請求時,Service Mesh提供了一個標準化的接口,允許請求發送,並且管理這一個過程。

Service Mesh(如lstio和Linknerd)通常充當微服務之間的請求和其他流量的代理,負責服務發現和執行各種相關任務,包括入口、出口、負載均衡和故障處理。當它接收到服務請求時,它會找到一個服務的可用實例,這個實例需滿足一組可配置的規則以及在請求服務和目標服務之間的路由流量。


接手復雜的工作


這意味著你可以將服務發現和與其關聯的大多數任務從應用程序設計和代碼(以及架構腳本)中移出來,並交給Service Mesh處理它們。請求服務只需要使用目標服務的抽象標識符來提出請求;而Service Mesh將負責剩下的部分。

當然,Service Mesh能夠處理的不止這些,還包括了跟蹤、度量、加密、認證以及其他與性能和安全相關的任務。lstio和linkerd可以一同使用,把兩者包中最強大的特性集成在一起,進行微服務相關的流量管理優化。


Service Mesh與企業安全


上文所說的這一切,對於企業安全意味著什麽呢?

Istio和Linkerd等平臺的安全性和整體流量管理功能是否能夠提供足夠的保護?或者恰恰相反,他們是否會暴露出新的攻擊面,給入侵者提供了後門攻擊的機會?

事實是,任何控制基礎設施的新元素都有可能包含這兩者。在Service Mesh的情景下,如入口/出口管理、代理和加密等特性將與安全相關的元素添加到系統中。與此同時,這些平臺會管理流量和訪問,並且受到應用程序和其他基礎設施元素的信任,這使得它們成為了攻擊目標。

Service Mesh的整體作用是在應用程序的邊界(即入口規則)處提供一些強化,並為該周邊內的流量創建有效的通道。就企業安全而言,這意味著你需要關註至少兩條(或許更多)的潛在攻擊路線。


當入侵者突破邊界


如果入侵者突破Service Mesh的基本邊界防禦,並且甚至侵占了一個服務的某一個實例,將會發生什麽?如果該服務向Service Mesh發送請求,或它響應Service Mesh的請求,那麽惡意負載可能會被註入系統中,從而利用Service Mesh的高效流量管理將負載傳遞到盡可能多的潛在目標。如果Service Mesh將服務表現出來的樣子認定為“信任”,而應用程序又錯誤地判定Service Mesh在服務之間傳遞的是非惡意數據,那麽任何的惡意參與者都可以利用這種信任,將自己偽裝成有效服務。

當然,實際上像Istio和Linkerd這樣的平臺確實包含了維護安全流量的功能,比如TLC認證;Istio的Role-Based Access Control(基於角色的訪問控制,RBAC)提供了靈活、可定制的多級訪問控制。但是,如果入侵者突破了這些防禦,仍然可以在系統內移動並且造成破壞。


攻擊Service Mesh基礎設施


Service Mesh平臺,就像當下其他任何基於雲基礎架構的元素一樣,是由代碼構成的,並且和其他類型的代碼一樣容易受到攻擊。對入侵者來說,最具誘惑力的攻擊面可能是控制發現和路由的規則——如果請求可以重新路由到外部位置,那麽整個系統都可能會受到危害。

當然也會有其他的攻擊點。入口、出口、代理以及負載均衡等功能都可能會出現先前未監測到的切入點。簡而言之就是,基礎設施的元素越多地控制應用程序和整個系統,那麽它就越容易成為攻擊的目標,也就越應該關註它。


抵禦攻擊


那麽有沒有最佳策略來處理與Service Mesh有關的安全性問題?有的。

Service Mesh本身提供的防禦功能可以和像白名單這樣強大的邊界防禦工作結合起來使用,進一步加強應用程序的入侵防禦能力。其中,內部異常檢測提供了更強大的防禦。程序中任何不尋常的行為都會觸發自動響應。網絡安全監控可以檢測並抵消掉服務網格基礎設施本身受到的攻擊。

在基於雲的領域中,容器化應用程序、Service Mesh都是企業計算中不可或缺的工具。與功能齊全的企業級安全服務結合使用,入侵者就沒有必要,也不會損害到組織的數據安全。


Service Mesh對企業安全而言意味著什麽?