云安全將成為純安全問題
關(guān)于云安全的未來,高德納(Gartner)有兩個比較有意思的論斷:
論斷1:網(wǎng)絡(luò)安全的未來在云中
隨著云計算的日益普及,企業(yè)上云已經(jīng)成為必然的趨勢。Gartner曾作出一個預測:在2020年前,50%的企業(yè)將業(yè)務工作流放到本地需要作為異常事件進行審批。公司“無云”的策略會和現(xiàn)在“無網(wǎng)絡(luò)”的策略一樣少。可見,云計算將成為企業(yè)各項應用必不可少的服務平臺和基礎(chǔ)設(shè)施,那么討論網(wǎng)絡(luò)安全怎么做,就必須要考慮面向云計算的網(wǎng)絡(luò)安全怎么做,例如虛擬網(wǎng)絡(luò)隔離、東西向的入侵檢測,等等。
?論斷2:云安全會變成單純的安全(Cloud security becomes … just security)
云計算與各行各業(yè)IT基礎(chǔ)設(shè)施進一步融合,云或是基礎(chǔ),或是組件。例如,5G、邊緣計算和工業(yè)互聯(lián)網(wǎng),都需要云計算技術(shù)構(gòu)建云化的基礎(chǔ)設(shè)施或編排平臺,那么這些新型系統(tǒng)的基礎(chǔ)設(shè)施安全,其實本質(zhì)上就是云計算IaaS/PaaS/CaaS的安全;此外,如欺騙技術(shù)、靶場技術(shù)等新的網(wǎng)絡(luò)安全機制,或多或少地使用了虛擬化、容器等技術(shù),因而,這些云計算技術(shù)融入后,就形成了新的、普適的安全技術(shù),即“just security”。
一方面,云化的基礎(chǔ)設(shè)施和平臺需要安全防護,用傳統(tǒng)安全手段賦能云計算;另一方面,云計算的各種新技術(shù)、新理念(如軟件定義、虛擬化、容器、編排和微服務等),也在深刻變革著當前的安全技術(shù)發(fā)展路線,因而,未來的云安全,一定會將“云”這個定語去除,等價于安全本身,即安全技術(shù)必然覆蓋云計算場景,安全技術(shù)必然利用云計算技術(shù)。
云計算的下半場:云原生計算
如很多其他新技術(shù)一樣,云計算起源于美國,但千萬不要照搬美國的云計算發(fā)展過程到國內(nèi)復制一套相似的產(chǎn)品。事實上,在云計算的上半場,即從云計算誕生至今,中美兩國走了兩條不同的發(fā)展路線,這與各自國情是有密切關(guān)系的。
具體而言,美國的云計算發(fā)展路線是先SaaS(Software as a Service,軟件即服務)后IaaS(Infrastructure as a Service,基礎(chǔ)設(shè)施即服務)。SaaS是最早的云計算服務形態(tài)。早在1999年,前甲骨文(Oracle)執(zhí)行官馬克·貝尼奧夫(Marc Benioff)就創(chuàng)辦了Salesforce,這是當前最大的客戶關(guān)系管理(CRM) SaaS服務提供商。經(jīng)過20年的發(fā)展,美國的SaaS服務已經(jīng)深入企業(yè)業(yè)務,平均每個企業(yè)會用到1427個云服務,每名員工平均會用到36個云服務。SaaS的安全防護主要是以云端接入安全代理(CASB)為主,因而國外的CASB市場巨大,然而其挑戰(zhàn)在于需要適配大量SaaS服務,所以這個市場的玩家目前主要是Skyhigh、Netskope等巨頭。
近幾年來,隨著企業(yè)進一步將業(yè)務云化,特別是將IT基礎(chǔ)設(shè)施替換為IaaS服務中的虛擬計算資源,通過軟件定義廣域網(wǎng)(SDWAN)連接分支結(jié)構(gòu)、云端資源,形成全棧云化、全分支機構(gòu)云化的趨勢。此時,雖然IaaS整體營收還遠不及SaaS,但其增長率激增,2019年的公有IaaS服務增長率達到了37.3%,遠超云服務總體增長率(17.5%)。如亞馬遜云服務(AWS)這樣的公有IaaS,其安全防護主要是利用亞馬遜(Amazon)提供的各類接口,在虛擬網(wǎng)絡(luò)、虛擬機層面提供網(wǎng)絡(luò)和終端防護,Gartner把虛擬機層面的安全防護技術(shù)稱為云工作負載保護平臺(CWPP)。
中國的云計算發(fā)展是從虛擬化起步,從私有云到公有行業(yè)云,走出了具有中國特色的發(fā)展路線。里程碑是開源的IaaS項目Openstack在國內(nèi)興起,國內(nèi)廠商,如華為、華三、EasyStack等企業(yè)基于Openstack研發(fā)了各自的云平臺,此時國內(nèi)的云計算需求主要是將硬件服務器虛擬化,再加入多租戶管理、網(wǎng)絡(luò)隔離等需求,因而,多數(shù)云計算服務商提供的是私有云的解決方案。通常商用私有云系統(tǒng)是封閉的,缺乏對網(wǎng)絡(luò)流量按需控制的應用接口,因而,針對這類私有云的安全機制多為安全資源池,通過路由、VLAN或開放網(wǎng)絡(luò)接口將流量牽引到資源池進行處理。隨著節(jié)約成本、集約化管理和提供增值服務等需求的進一步增強,具有云平臺開發(fā)能力的服務商基于前述的私有云平臺,提供了公有IaaS的服務。然而,這種公有IaaS服務與AWS、阿里云不太一樣,它們具有鮮明的行業(yè)特性。例如,為政府提供的政務云,會將所有下屬政府機構(gòu)的服務器遷移到新的云平臺上,提供政務相關(guān)的服務。這樣的公有IaaS服務,本質(zhì)上還是前述的OpenStack系的系統(tǒng),封裝了自服務功能,并提供行業(yè)相關(guān)的合規(guī)服務和增值服務,因而其安全防護技術(shù)也可以基于安全資源池之上,提供面向租戶的安全即服務(Security as a Service)。
但總體而言,這樣的上云實踐只是“形”上的改變,還遠沒有到“神”上的變化。過去兩年的行業(yè)發(fā)展表明,無論是中國還是美國,云計算的新增長點已經(jīng)都轉(zhuǎn)向云原生相關(guān)的領(lǐng)域,如容器即服務(CaaS)、編排技術(shù)、微服務、DevOps等,至此云計算進入下半場。其驅(qū)動力無外乎兩方面:
1.應用快速交付和開發(fā)運營一體化,DevOps的開發(fā)運營模式已經(jīng)深入人心,由開發(fā)團隊驅(qū)動的容器化部署、應用編排等,事實上提出了新型的云交付模式。
2.新型IT基礎(chǔ)設(shè)施部署,如5G、工業(yè)互聯(lián)網(wǎng)和邊緣計算場景下,資源受限,有資源虛擬化等需求,大量使用了容器、編排和微服務等技術(shù),也使得云原生應用未來可期。
云原生相關(guān)的技術(shù)棧在過去3~5年中得到了快速發(fā)展,以Docker、Kubernetes、Istio為代表的容器運行時、編排系統(tǒng)、服務網(wǎng)格已經(jīng)成為事實上的標準,而API網(wǎng)關(guān)、無服務框架也在快速演進中。可預計,未來5年內(nèi),云原生相關(guān)的技術(shù)會在互聯(lián)網(wǎng)企業(yè)、金融、運營商等行業(yè)得到大量應用。筆者認為云原生就是云計算的下半場。誰贏得云原生的賽道,誰才真正贏得了云計算。
原生安全:基于云原生、無處不在的安全
如果說云安全的未來等價于純安全,而云計算的下半場是云原生,那不妨也做個推論:云原生的未來也會等價于原生安全。那么,什么樣的安全才是原生安全呢?筆者認為原生安全有兩個特點:基于云原生,無處不在。即,使用了云原生的技術(shù),能適用于各類場景。
原生安全的發(fā)展會有三個階段,如圖1所示:
1. 安全賦能于云原生體系,構(gòu)建云原生的安全能力。當前云原生技術(shù)發(fā)展迅速,但相應的安全防護匱乏,就連最基礎(chǔ)的鏡像安全、安全基線都不盡如人意。因而應該研究如何將現(xiàn)有成熟的安全能力,如隔離、訪問控制、入侵檢測、應用安全,應用于云原生環(huán)境,構(gòu)建安全的云原生系統(tǒng)。
2. 云原生的新特性,例如輕快不變的基礎(chǔ)設(shè)施、彈性服務編排、開發(fā)運營一體化等,具有諸多優(yōu)點。因而,安全廠商會開始研究如何將這些能力賦能于傳統(tǒng)安全產(chǎn)品,通過軟件定義安全的架構(gòu),構(gòu)建原生安全架構(gòu),從而提供彈性、按需、云原生的安全能力,提高“防護-檢測-響應”閉環(huán)的效率。
3. 當安全設(shè)備或平臺云原生化后,就能提供(云)原生的安全能力,不僅適用于通用云原生場景、5G、邊緣計算等場景,甚至可以獨立部署在大型電商等需要輕量級、高彈性傳統(tǒng)場景,最終成為無處不在的安全。
圖1 原生安全的演進
安全左移與右移
如果考慮云原生應用的生命周期,則應關(guān)注DevOps的整個閉環(huán)(見圖2),即從開發(fā)、編譯、持續(xù)集成/持續(xù)部署(CI/CD),到運行時運營。由于容器的生命周期極其短暫,對于攻守雙方來說,在短期內(nèi)都無法應用現(xiàn)有的武器庫或安全機制,所以在云原生安全的初期,攻擊者會關(guān)注代碼、第三方庫和鏡像這些生命周期長的資產(chǎn),而防守者也應該關(guān)注安全編碼、開源軟件脆弱性管理、鏡像和倉庫脆弱性評估,以及安全基線核查,這些安全機制基本上處于DevOps的左邊的閉環(huán),因而我們將這些安全舉措稱為安全左移,以區(qū)別于傳統(tǒng)在運行時做的安全運營工作。事實上,過去兩年,國內(nèi)外很大一部分容器安全解決方案都聚焦在這部分內(nèi)容。
圖2 DevOps閉環(huán)
當然,攻防永遠是成本和收益之間的平衡,如果防守方能做好對長生命周期資產(chǎn)的持續(xù)風險和脆弱性評估和緩解,那么攻擊者的成本顯然會升高,那他們下一步就會借助自動化的攻擊手段,嘗試在運行時攻擊微服務、無服務和容器,進而借助短暫存在的容器橫向移動尋找其他可持久化的資源。那么此時,容器工作載荷的行為分析、容器網(wǎng)絡(luò)的入侵檢測、服務網(wǎng)格的API安全和業(yè)務安全,則又會成為防守者的新重點,此時,我們將這種重點放在運行時的安全思路稱為安全右移。
無論是安全左移還是安全右移,其實都是考慮到云原生環(huán)境中的脆弱性、面臨的威脅和風險,在有限的安全投入前提下,做出當前最有利的安全方案。
總體而言,云原生的(安全)技術(shù)棧如圖3所示,可見,云原生安全不只是獨立的容器、編排或微服務,而應該完整地考慮整個云計算系統(tǒng)的所有組件及其安全功能需求。
圖3 云原生安全技術(shù)棧
運行時安全
從技術(shù)實現(xiàn)來看,運行時安全比開發(fā)安全更難,本節(jié)重點討論如何實現(xiàn)運行時安全,主要分為異常行為檢測、安全防護和API/業(yè)務安全三方面。
異常行為檢測
攻擊者對云原生系統(tǒng)的攻擊,可以分為已知威脅和未知威脅。對容器而言,最危險的已知威脅莫過于容器逃逸,文獻討論了從文件鏈接、容器運行時、宿主機操作系統(tǒng)內(nèi)核等多個層面實現(xiàn)的容器逃逸,對于這類攻擊,從內(nèi)核層面捕獲進程、網(wǎng)絡(luò)等各種行為,通過規(guī)則即可及時發(fā)現(xiàn)潛在的逃逸行為。
而對未知的攻擊而言,最好的辦法就是為容器的正常行為建立基線。通常運行微服務的容器只運行少數(shù)進程,且行為可預測,所以建立的基線能夠很好地刻畫相關(guān)容器的行為,進而可以在運行時及時發(fā)現(xiàn)偏離基線的可疑行為。
圖4 偏移行為基線的可疑行為
安全防護
運行時安全防護可分為面向容器的安全防護和面向微服務/服務網(wǎng)格的安全防護。在容器層面,主要關(guān)心的是容器組建的網(wǎng)絡(luò)中是否存在入侵行為,例如針對容器及其打開服務的偵查、橫向移動,此時通常可使用特權(quán)容器的方式,部署網(wǎng)絡(luò)入侵檢測組件,即可實現(xiàn)微隔離、訪問控制、網(wǎng)絡(luò)流量監(jiān)控、入侵檢測和防護等功能,如圖5所示。
圖5 基于特權(quán)容器的容器安全防護
在微服務和服務網(wǎng)格層面,則需要考慮將安全能力部署到服務網(wǎng)格中的每個微服務最近側(cè),因而使用邊車(Sidecar)的方式,將安全微網(wǎng)關(guān)部署在應用容器旁,如圖6所示,這樣可以實現(xiàn)應用的認證授權(quán)、通信加密等應用層面的安全防護等功能。
圖6 基于Sidecar的微服務安全防護
API和業(yè)務安全
業(yè)務安全是離客戶最近且價值最大的安全功能,然而云原生場景非常復雜,很難有統(tǒng)一的業(yè)務安全模型;此外,在微服務和服務網(wǎng)格的場景下,服務之間大部分是通過API調(diào)用實現(xiàn),這與當前Web應用存在大量人機交互完全不同,因而API安全在云原生場景下也存在很大的差異。
從技術(shù)上看,要實現(xiàn)API和業(yè)務安全,第一步是獲得API調(diào)用的可觀察能力(visibility),當前有很多開源項目具有這樣的能力,但其在開發(fā)、構(gòu)建過程中的侵入性各有不同,如表1所示。一般而言,侵入性越強,其最后獲得的API請求信息越多,但在既有開發(fā)流程和項目中的部署越難。
其中Jaeger通過在代碼中插樁的方式,能夠獲得所有調(diào)用順序和參數(shù),因而理論上就能建立非常精準的API調(diào)用參數(shù)和序列的基線,而Sidecar反向代理的方式無法獲得調(diào)用序列,只能通過分析,啟發(fā)式地獲得近似基線,其上限可以逼近Jaeger所得到的基線。至于具體采用哪種觀測方法,則取決于客戶側(cè)的部署情況。
原生安全:未來的安全
我們在前面談到,如果云原生安全成為原生安全,那就說明云原生已經(jīng)融入到了各行各業(yè),成為普適的云計算場景。事實上,隨著國家大力推動新基建戰(zhàn)略,包括5G、物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)等信息基礎(chǔ)設(shè)施,云計算、人工智能等新技術(shù)基礎(chǔ)設(shè)施,數(shù)據(jù)中心等計算基礎(chǔ)設(shè)施等。而這些基礎(chǔ)設(shè)施,未來或多或少都會與云原生技術(shù)有所聯(lián)系。
例如在邊緣計算的場景下,目前行業(yè)中主流的開源邊緣計算平臺,如OpenNess、KubeEdge和StarlingX均采用了容器和編排技術(shù),并且可以提供第三方微服務。我們將前面所提到的云原生安全技術(shù)棧移植到這三個邊緣計算系統(tǒng)中,證明是完全可行的。圖7展示了面向KubeEdge的安全防護原型系統(tǒng)。
圖7 KubeEdge安全防護原型系統(tǒng)
而在5G核心網(wǎng)中,我們發(fā)現(xiàn)在切片技術(shù)應用中,資源層會使用虛擬化和容器技術(shù),如一些開源的5G核心網(wǎng)項目也在使用容器編排技術(shù)。事實上,一些主流的商用5GC網(wǎng)元也采用了容器技術(shù);而控制層則會通過RESTful/HTTP協(xié)議進行通信。
可見5G核心網(wǎng)的網(wǎng)元自身防護,則可以使用前述云原生安全技術(shù)棧進行加固和防護;而網(wǎng)元的業(yè)務側(cè)安全,有可以借助前述API/業(yè)務安全的基線方式刻畫正常網(wǎng)元業(yè)務,進而發(fā)現(xiàn)可以的網(wǎng)元請求。
當新基建推動大量云化基礎(chǔ)設(shè)施采用了云原生的技術(shù)路線,當云原生的安全能力可以部署在云化或非云化的環(huán)境中,那我們真的可以說,未來的安全就是“原生安全”。