無論是在云端還是邊緣,對于容器化環(huán)境來說,采取深度防護措施,從基礎層面確保安全性是極其重要的。
容器化的意思是將應用軟件與其所依賴的庫或框架等組件全部打包在同一個實體之中--這樣的實體就是一個容器。因為全部所需組件都已經(jīng)被配置好了,所以可以到處部署并在任何基礎設施上運行。此外,采用容器技術來運行應用軟件,就能夠獨立于其所運行的操作系統(tǒng)。
容器技術,受益良多
所以,容器化的主要好處之一是可移植性。在今天的市場中,企業(yè)都希望通過容器技術來優(yōu)化應用軟件的開發(fā)和部署,從而控制好投資成本,而不是相互孤立地進行項目開發(fā),然后再部署到各種類型的環(huán)境之中--由此可以避免"不兼容"問題引發(fā)的修改工作。無論是在操作系統(tǒng)層、CSP層或更高的層次上,容器化都可以幫助客戶避免被廠商鎖定。您可以讓一個容器在云中運行,比如Amazon、Azure或谷歌云,并將相同的容器運行在任何CSP上,甚至在企業(yè)本地的一臺內(nèi)部機器上。這種一勞永逸的方法總是最有吸引力!還有一些我要強調(diào)的好處,例如快速部署、降低內(nèi)部基礎設施成本等。因為在相同的硬件上可以運行多個容器,并且可以做到應用系統(tǒng)隔離,就好像它是獨占著整個系統(tǒng)。
容器技術相關風險
容器化伴隨的一些風險也與其帶來的好處直接相關。一個重要的風險是,當我們在同一主機或機器上運行多個容器時,在不同容器中運行的進程的通信和行為可能會互相察覺到彼此的存在。伴隨這些通信和流量,可能還包括其他容器中的文件。在較小的非敏感環(huán)境中,這可能不是什么大問題。然而,在多個客戶共享云服務提供商和主機的環(huán)境中,這些情況可能會帶來一些疑慮。
另一個重要問題與容器本身的性質(zhì)有關。容器由于具備可重用的映像而更易于使用。問題是,這些映像可能存在漏洞。黑客有時可以欺騙映像存儲庫,讓用戶覺得自己使用的是可信任映像,但實際這些映像已經(jīng)存在漏洞。如果沒有在設計早期就發(fā)現(xiàn)這些映像漏洞,這可能會將漏洞傳播到容器運行的所有地方。由于圖像是靜態(tài)的,這些漏洞就會一直存在,除非得到修補或替換。如果易受攻擊的映像沒有被發(fā)現(xiàn),就可能成為運行在各種系統(tǒng)上、各個容器中的其他映像的組成部分。
采取安全措施降低風險
安全措施最佳實踐有多種來源。以下是我建議的兩個來源:
- 互聯(lián)網(wǎng)安全中心(Center for Internet Security)的CIS Benchmarks(CIS基準指標)
- 美國國家標準與技術研究院(National Institute of Standards and Technology,NIST)的 800-190 容器安全指南
這些文件中闡述了若干對策和控制措施。我將簡要討論兩大類可用于應對前述風險的方法。
第一種方法與通信保密性有關。如前所述,我提到了一個容器能夠察覺另一個容器的通信和流量。我們可以借助于Istio中的TLS或mTLS等技術。TLS使用加密和密鑰管理功能以確保通信只能被預期的接收方閱讀和理解。因此,即使在流量被泄露的情況下,這些流量對別的容器也將是無用的,因為它已經(jīng)被加密。你還可以采用為特定實體劃分流量的網(wǎng)絡策略。
第二種方法主要用于實現(xiàn)內(nèi)部容器安全控制。這些控件影響著底層容器的允許、特權和行為。它們針對惡意行為者獲得容器訪問權的情況提供保護,極大地限制了各種損害。有些比較流行的設置是runAsNonRoot(不能運行任何根級操作)、capabilities(可以具體控制容器本身使用哪些功能;采用一個僅限于關鍵能力的列表來幫助提高整體安全性)以及readOnlyRootFilesystem (防止惡意行為者的篡改行為)。
驅(qū)動容器技術應用的軟件計劃
云原生計算基金會(CNCF): CNCF是一個開源軟件基金會,旨在促使云原生計算更加通用、標準化與普及。在此定義了一個模型,以便衡量項目的相對成熟度("沙盒"、"孵化"或"結業(yè)")。
雖然有很多相關的開源計劃,但我想特別介紹的是Kubernetes、Prometheus和Harbor。
- Kubernetes: Kubernetes解決容器業(yè)務編排問題。
-Prometheus: Prometheus System Monitoring Tool(Prometheus系統(tǒng)監(jiān)控工具)監(jiān)視環(huán)境中正在運行的容器,提供了一種更直接的方式來監(jiān)視容器中正在進行的活動。
-Harbor: The Harbor Image Repository(Harbor映像庫)提供容器映像的安全管理功能。如前所述,這些對于確保容器應用軟件的安全性非常重要。
請注意,專注于容器安全領域的開源項目很多。有各種工具可以用來評估容器和容器映像漏洞以及最佳實踐的合規(guī)性。但我想強調(diào)的是這個重要項目:
Open Policy Agent Gatekeeper,它支持用戶定義其環(huán)境中容器必須滿足的各種安全條件,甚至允許您在系統(tǒng)周圍設置一個圍欄,任何容器如果不滿足所定義的策略,就不允許它們在系統(tǒng)中運行。這類措施對于提高環(huán)境安全性大有幫助。
容器技術從邊緣到云端的應用場景
在基礎層面上,我們可以將云視為分散在不同位置的一組互連節(jié)點(可以是物理硬件設備或計算機)。應用軟件、服務和程序運行在這些節(jié)點或設備上,并可通過互聯(lián)網(wǎng)在任何地方調(diào)用。最初,這些節(jié)點都是位于數(shù)據(jù)中心的計算機,但我們現(xiàn)在已經(jīng)看到大量的邊緣節(jié)點。
部署在邊緣的設備更小、更健壯、更接近用戶,可以運行各類應用功能。例如,我們現(xiàn)在可以把汽車部件、電信系統(tǒng)和手持設備這類很小的裝置看作邊緣節(jié)點。以前只能在數(shù)據(jù)中心計算機上運行的容器,現(xiàn)在也可以在邊緣節(jié)點上運行。
我們正在加速推進容器化,所以前面我提到的那些威脅普遍存在。還有一個重要問題--對于數(shù)據(jù)中心的節(jié)點我們配備了大量的安全性深度防御機制,然而當我們面對著邊緣節(jié)點情況就大為不同。例如像手持設備這樣小的設備,它們更容易被觸及,也缺乏數(shù)據(jù)中心那樣的防護機制。為了幫助消除潛在的安全威脅,我們利用各種硬件安全措施,如安全引導和反篡改技術。這就使惡意行為者即使能夠觸及系統(tǒng)也很難實施破壞。
對于任何想要進入智能系統(tǒng)領域并采用云原生技術(例如容器化)的企業(yè),風河公司提供了安全性評估的大量方法和工具供您選擇。根據(jù)您的目標,我們提供專屬的向?qū)Ш图夹g(包括開源代碼),以便您用來提升應用安全性并實現(xiàn)轉(zhuǎn)型。