在2023年RSA大會上,來自SUSE NeuVector的高級安全工程師Tracy Walker為我們分享了一種在K8S環(huán)境中阻止0Day攻擊的透明(對業(yè)務和環(huán)境無影響)方法——零信任原則,并且使用開源工具NeuVector進行了演示。本文基于Tracy的零信任觀點結合SUSE的整體方案,嘗試挖掘出更多的安全新思路。
一、背景介紹
Tracy的分享主要是圍繞零信任為何能防御0Day攻擊展開,如圖1所示,簡單來說就是基于CVE等已知掃描檢測手段無法發(fā)現(xiàn)未知攻擊。零信任,默認拒絕所有動作,只有在允許的列表里才會被授權,已知、未知盡在掌握。筆者在這里想要聊一聊Tracy使用的開源工具——NeuVector。
圖1?傳統(tǒng)控制和零信任控制對比
SUSE相信大家都很熟悉了,是一家全球性的開源軟件公司,提供企業(yè)級的Linux操作系統(tǒng)和相關的解決方案。而Tracy分享的理念的基礎支撐其實是來自NeuVector。接下來請和筆者一起來扒一扒NeuVector的歷史。
NeuVector由黃飛(Fei Huang)和段磊(Gary Duan)于2015年在美國加利福尼亞州聯(lián)合創(chuàng)立。創(chuàng)立之初公司專注于容器安全,具體就是網絡監(jiān)測和容器防火墻。公司創(chuàng)立后發(fā)展迅速,于21年被SUSE收購。此舉極大地增強了Rancher的安全合規(guī)板塊,從此NeuVector也正式成為SUSE的一部分,大概也是由此開始 ,NeuVector貼上零信任標簽。
二、什么是零信任
傳統(tǒng)的網絡安全模型通常采用邊界防御,即在內部網絡和外部網絡之間建立防火墻來保護內部資源。然而,隨著網絡邊界的模糊化和攻擊技術的不斷演進,邊界防御已經不足以提供足夠的安全性。如圖2所示,黃飛在一次網絡研討會中也表明,隨著業(yè)務云化的不斷推進,安全模型也逐步向零信任演進。
圖2?安全模型的演進
正如Tracy在一次網絡研討會中所說的那樣,零信任(Zero Trust)的核心原則是“永遠不信任,始終驗證”。它基于一種假設,即無論是內部用戶、外部用戶還是設備,都不能被默認信任。
圖3 ?Tracy Walker關于零信任的解釋
零信任(Zero Trust)是一種安全模型,不是一個具體的產品或技術。它的核心理念是不信任任何設備、用戶或應用程序,并將訪問控制和安全策略放在應用程序層面。零信任安全模型認為,每個用戶和設備都可能成為攻擊者,因此必須對它們進行身份驗證、授權和訪問控制,以保護敏感數(shù)據(jù)和應用程序。這種基于認證和授權的精細訪問控制可以減少攻擊者的潛在影響范圍,并提供更高的安全性。
因此,零信任安全模型強調了持續(xù)的身份驗證、訪問控制和監(jiān)控,以確保只有經過驗證和授權的用戶和設備能夠獲得訪問權限。它不僅僅關注網絡邊界,而是將安全性擴展到應用程序、數(shù)據(jù)和用戶層面,從而提供更全面的安全保護。
三、NeuVector和零信任的關系
NeuVector的產品提供了基于容器的安全解決方案,幫助用戶保護他們的容器環(huán)境。它包括實時威脅檢測、入侵檢測和預防、運行時安全策略、自動響應等功能,可以幫助用戶識別和防止各種攻擊,包括內部和外部攻擊、未知攻擊和高級威脅等。
NeuVector的產品可以作為實現(xiàn)零信任安全模型的一部分,提供對容器環(huán)境的實時安全保護和威脅檢測。但是,實現(xiàn)零信任安全模型還需要其他技術的支持,如多因素身份驗證、數(shù)據(jù)加密等。
四、構建零信任云原生安全底座的方案
4.1 SUSE的安全底座組件
NeuVector加入SUSE大家庭后,結合其他產品如SUSE Linux、Harvester和Longhorn等基本可構成一個可信安全環(huán)境,筆者將其稱為零信任云原生安全底座(簡稱安全底座)。如圖4所示,筆者在NeuVector網絡研討會中也發(fā)現(xiàn)他們關于此的介紹,接下來我們來簡單了解下該方案的組成以及這些產品在安全底座中的作用:
圖4 ?SUSE零信任環(huán)境結構
NeuVector:是一個容器防火墻解決方案,用于保護容器化應用程序的安全。它通過深度數(shù)據(jù)包檢測(DPI)和容器運行時保護,提供容器級別的入侵檢測和防御,監(jiān)控和阻止惡意流量和攻擊。NeuVector幫助確保容器環(huán)境的安全性,并提供對容器網絡流量的可見性和控制。
Rancher:是一個開源的容器管理平臺,提供了集群管理、應用程序編排、監(jiān)控和日志、身份認證和訪問控制等功能,幫助用戶簡單且快速地部署一個可行的安全底座。
SUSE Linux,Harvester:SUSE Linux作為一個企業(yè)級Linux操作系統(tǒng),提供了可靠、安全和可擴展的基礎設施,用于構建和部署應用程序。它提供了強大的安全功能和工具,包括訪問控制、身份驗證、文件加密等,以幫助建立安全的基礎架構,為環(huán)境提供了 一個減少攻擊面的系統(tǒng)鏡像;Harvester是一個基于Kubernetes的開源虛擬化平臺,為容器化應用程序提供了高性能和簡化的虛擬機管理解決方案。它利用Kubernetes的自動化和可伸縮性,提供了可靠的虛擬化基礎設施,幫助構建安全的應用環(huán)境。
Longhorn:Longhorn是一個開源的分布式塊存儲系統(tǒng),為容器化環(huán)境提供持久化存儲解決方案。它通過提供數(shù)據(jù)加密、快照和恢復等功能,保護存儲在容器中的數(shù)據(jù)的安全性和可靠性。
將這些組件組合在一起,可以構建一個強大的零信任安全底座。通過NeuVector提供的容器防火墻功能,SUSE Linux提供的安全基礎設施,Harvester提供的虛擬化管理和Longhorn提供的數(shù)據(jù)存儲,可以實現(xiàn)對容器化環(huán)境的全面安全保護和管理。這種組合可以幫助用戶快速建立一個基于零信任原則的安全底座,確保應用程序和數(shù)據(jù)的安全性和保密性。
4.2?SUSE的零信任實踐
如圖5所示,通過以上組件的結合,NeuVector針對零信任在云原生環(huán)境下的實踐控制項做了梳理。接下來筆者將以最小化攻擊面為例做一些簡要的說明:
圖5 云原生應用的實用零信任控制
4.2.1?生命周期中的漏洞、風險、狀態(tài)管理
筆者理解,如圖6所示,這需要在應用程序的整個生命周期中,對漏洞和風險進行管理,確保及時修補和更新,以減少潛在的攻擊面。筆者將從以下幾個方面簡要分析:
圖6 ?NeuVector全生命周期安全圖
操作系統(tǒng)和虛擬化:這其實由SUSE的SUSE Linux,Harvester所提供。
代碼層:由于官方有關于Sonatype Nexus的集成描述,筆者猜測,NeuVector結合了Sonatype Nexus能夠做到CI/CD階段檢測項目中使用的組件是否存在已知的安全漏洞供應鏈掃描并添加準入規(guī)則來保障項目組件的安全性。
鏡像層面:NeuVector的自動響應規(guī)則結合JFrog Xray鏡像掃描能力,NeuVector允許根據(jù)JFrog Xray的掃描結果配置自動響應規(guī)則。根據(jù)鏡像中發(fā)現(xiàn)的安全漏洞或合規(guī)性問題,可以定義特定的規(guī)則和操作來保護容器環(huán)境。如圖7所示,可以設置規(guī)則,如果鏡像中存在高危漏洞,則自動拒絕該鏡像的引用, 將被掃描過的鏡像倉庫定義為合法倉庫,僅允許合法倉庫被使用等。
圖7 鏡像規(guī)格準入控制
運行時:將進程和文件系統(tǒng)監(jiān)控與第7層網絡檢查結合使用,對網絡、數(shù)據(jù)包、零日攻擊和應用攻擊(如 DDoS 和 DNS)的唯一實時識別和阻止,可以在不中斷正常容器會話的情況下阻止未經授權的容器活動或來自容器的連接,其實也就是透明的意思,對正常環(huán)境沒有影響。
4.2.2?默認拒絕
所有實體都被默認視為不受信任,需要經過驗證和授權才能訪問資源和服務,這里其實就是容器防火墻的默認拒絕策略。
4.2.3 強制執(zhí)行最低權限訪問
采取最小權限原則,只授予實體所需的最低權限,以減少潛在的風險和攻擊面。這里包含三個方面的內容,數(shù)據(jù)的采集和規(guī)則的生成以及應用。
NeuVector表明其使用的是第7層網絡檢測技術而不是eBPF和Istio技術去做流量采集也不是。沒有使用Istio的原因是,Istio無法對已經加密的流量做分析(如HTTPS協(xié)議的請求),這很容易獲取不到明文或者給攻擊者留下偽裝的途徑,而Istio Egress Gateway則需要額外添加網絡策略確保所有出口流量都流經網關,這將增加配置的復雜性。關于為何沒有使用eBPF,筆者沒有在官方資料中找到明確的原因,只在網絡研討會議中看到他們認為在網絡側做流量分析能夠獲取的更加全面,筆者猜想還有另外一個原因是eBPF對系統(tǒng)版本是有強制要求的,這意味著舊版本的系統(tǒng)環(huán)境將無法使用這一技術,這將非常不友好。基于第7層深度數(shù)據(jù)包檢測的技術其實也就是DPI(Deep Packet Inspection)可以識別多種應用層協(xié)議,關于加密協(xié)議的流量識別,在官方介紹里簡要說明是通過對允許的NDS的跟蹤,聯(lián)系上下文信息間接解析流量內容。由此基于DPI技術NeuVector可以做到如圖8所示的包含Istio等所有流量的解析和追蹤。
圖8 ?NeuVector對Istio流量的可視化
通過對詳細流量的解析,NeuVector很容易獲取環(huán)境的行為原始信息,原始信息匹配如圖9所示的各類規(guī)則可以生成對應類型的安全事件。
圖9 策略規(guī)格
原始信息結合開放策略代理(OPA)生成CRD策略(這就是NeuVector宣稱的安全即代碼),并應用到環(huán)境中使策略生效。
五
總結
在關注這次RSA議題之前,筆者也和相關同事討論過零信任云安全底座的事情。當時筆者傾向于在內核級別去做云場景下的零信任,筆者期望在內核層之上不做過多關注,只從最底層處去做限制。對Tracy的這次分享的背后挖掘也拓寬了筆者的視野。針對NeuVector的零信任云原生安全底座解決方案,筆者有以下兩點疑慮:
第一,當企業(yè)決定將 NeuVector真正運用在實際環(huán)境中時候,如何判斷哪些策略該被允許將是一個讓人頭疼的問題。盡管他們宣稱環(huán)境擁有一定的一致性,因此可以導出規(guī)則到其他環(huán)境,但針對云場景下數(shù)以萬計的微服務,誰來做合法性的判斷,誰又能做這將是個未知數(shù)。雖然Tracy宣稱他們沒使用機器學習技術,但筆者感覺使用機器學習自動判斷服務的哪些動作是合法的,從而自動給出策略建議也許是一個不錯的方案。
第二,假如攻擊者已經早于NeuVector對環(huán)境做了控制,例如攻擊者已經掌握集群的部分CRD資源管理權限,又或者攻擊者做到了內核級別的劫持,那NeuVector基于CRD發(fā)出的所有控制策略將形同虛設。基于此,筆者還是保留基于內核層做控制的建議。
由于篇幅有限,非常遺憾沒有針對NeuVector的底層原理進行說明,如有興趣的朋友可以關注官方渠道進行交流。
參考文獻
[1] SUSE.Zero-Trust Security for Kubernetes and Container Workloads
[2] SUSE.Zero Effort Zero Trust for Blocking Zero Days in Kubernetes
[3] https://neuvector.com/about/events/
[4] https://neuvector.com/wp-content/uploads/2020/08/NeuVectorPipeline.png
[5] https://neuvector.com/products/integrations/
[6] Neuvector. How to Enforce Egress Container Security Policies in Kubernetes, OpenShift, and Istio
[7] Neuvector. Use Cloud-Native Tools OPA and CRD to Protect Applications from Pipeline to Production
來源:綠盟科技