都說國内需求離容器化還遠,更談不上關注安全,喊的熱鬧而落地困難。但總得有些聲音面向未來向前看。
在2020年Forrester IaaS安全評測中,阿裡雲容器安全和谷歌并列滿分,技術能力領跑市場。阿裡雲在雲計算各領域技術一直領先一步,包括雲原生安全,和作為其重要組成的容器安全。
本文總結了阿裡雲容器安全的治理能力和經驗,呈現雲原生時代容器安全湧現的新特點。幫助未來的你全面了解容器安全,保護生産環境安全。
随着阿裡雲前進的腳印,我們首先來了解容器是什麼,以及容器和雲原生的關系。
了解容器第一步:雲原生”大樓“的底座
2010年,雲原生的概念第一次在WSO2的首席技術官Paul Fremantle的部落格中被提及,其後經曆了Pivotal、CNCF等機構的補充,加入了DevOps、持續傳遞、微服務、容器、服務網格(Service Mesh)、不可改變的基礎設施、聲明式API等技術,通過這些技術可以建構出高彈性、高虛拟化、高容錯性、自恢複、易管理的分布式架構系統。
但随着雲原生所包含的概念越來越廣,任何對其的定義似乎都有管中窺豹的嫌疑。與其糾結定義的完整性,我們不妨把目光轉向雲原生給企業帶來的好處和改變。
總結精煉四個關鍵詞:低成本、高可用、高安全、高效率。
- 低成本
企業伺服器成本和虛拟損耗大幅減少。從實體主機,到虛拟化,再到容器化,客戶不必再進行線下機房管理、使用資源占用量高的虛拟機,大大節約成本。

- 高可用
優雅地解決高并發場景下容量問題。在雲原生容器化時代,不封裝作業系統的容器,直接運作于主機核心之上,對系統資源的占用更少。加之鏡像封裝的技術,可以實作其大規模自動化部署,配合分布式架構,彈性擴容能力極強。
- 高安全
攻擊面減少。IDC時代,所有的應用、程序都在一台伺服器上運作,一旦某個程序被惡意突破,整個主機都面臨巨大的風險。而在容器架構中,單個容器中可能隻有一個程序,就算被攻擊突破,對主機的影響也有限。
- 高效率
雲原生倡導DevSecOps理念,而容器化使得在開發過程中使用CI/CD(快速內建和快速部署)成為可能,極大地提升了應用開發和程式運作的效率。
我們不難發現,雲原生和容器之間的緊密關系。可以說,容器徹底改變了企業IT基礎設施的架構方式,是搭建雲原生的關鍵。
如果說雲原生是一棟高樓大廈,那麼容器化便是這座大樓的底座,向上支撐分布式架構、微服務和不同工作負載,向下封裝基礎設施,屏蔽了底層架構的差異性,以自身鏡像封裝、核心共享、便利擴容等特性,建構了一棟雲原生大廈。
随着企業上雲率不斷提升,越來越多的企業選擇在生産環境中使用容器架構。
CNCF 2020年釋出的報告中顯示,在生産中應用容器的企業比例從去年的84%增長到今年的92%。艾瑞咨詢在《中國容器雲市場研究報告》中顯示,2020年有84.7%的中國企業已經&計劃使用容器。
但曆史的經驗告訴我們,所有繁榮景象之上,都懸着一把達摩克裡斯之劍,Tripwire 2019年對311位IT安全專業人員進行了調研,發現60%的組織都遭遇過容器安全事故,容器的背後存在着巨大的安全隐患。
了解容器風險第二步:運輸中的“集裝箱”
既然容器構成了雲原生這座大廈的基座,那麼防護容器安全就不僅僅是防護容器的安全這麼簡單。
如果我們把容器看成一個個封裝好的集裝箱,想要讓箱内的貨物順利配送到客戶手上,那麼從集裝箱的制作、安裝、打包、到運輸箱子的貨輪、快遞配送員的安全,都需要考慮在内。
也就是說,我們需要在整體的DevSecOps的開發流程中,考慮容器的安全:
根據上圖我們可以看到,在容器的全生命周期中,涉及到四個部分的安全風險:
- 基礎設施
容器建構于雲平台/伺服器之上,硬體設施、核心、雲平台的安全是容器安全的基礎,基礎設施安全是容器安全的第一步。
- 供應鍊
當基礎平台安全後,開發者可以在雲上建立一整套DevOps的開發流程,通過容器化來提升傳遞效率,那麼首先需要完成容器的建構和部署。
容器内部一般分為三層,底層為BootFS檔案系統,中層為鏡像層,上層為可改寫的容器層:
容器内部層次
容器的建構依賴于鏡像,鏡像由鏡像庫管理。在建構容器過程中隻需要從鏡像庫中調取鏡像即可。如果由于鏡像庫管理不當,混入了惡意鏡像,或者鏡像遭到損壞,有漏洞的鏡像沒有及時更新,鏡像的認證和授權限制不足等,會給容器帶來巨大的安全隐患。
容器建構完成之後,還需要對其進行正确的部署,拿容器網絡來舉例,在預設的-host的網絡配置下,容器運作時預設可以通過網絡通路其他容器及主機作業系統,一旦單個容器被入侵就可能影響到主控端上部署的所有容器。根據StackRox的報告,配置錯誤恰恰是企業對于容器安全最擔憂的部分。
- 容器運作時
容器建構完畢之後,依賴Cgroup、Namespace、Capability等功能在核心上實作互相隔離,并使用編排工具和容器運作時元件進行批量化管理和使用。
而編排平台,如Kubernetes、OpenShift等,存在不少高危漏洞,根據NVD(National Vulnerablity Database)的資料統計,光是K8S平台被找到的CVE漏洞就有109個,其中嚴重(Critical)的漏洞有10個,高危(High)的漏洞有39個,一旦使用者沒有及時修複相關漏洞,就有可能被攻擊者利用,威脅容器安全。
- 應用安全
當我們順藤摸瓜一步步往上走,從基礎設施層到網絡層,最終到達處于最上層的應用層,也就是容器這條船上承載的一個個“貨物”,較為容易遭受DDoS攻擊、賬号盜用、資料洩露等攻擊。
除了在整體開發流程中了解容器安全外,容器本身的特性也給安全防護帶去了不一樣的側重點:
1、容器隔離性差
和虛拟機基于系統的隔離不同,容器是基于程序的隔離,沒有明确的安全邊界, 更容易發生容器逃逸、主控端核心遭受攻擊的問題。
2、容器存活時間短
和傳統的虛拟機相比,容器具有輕量級的優勢,可以快速部署,快速疊代,這也意味着單個容器的存活時間也急速變短。據Datadog的資料統計,傳統雲虛拟機的平均生存周期是23天,而容器隻有2.5天,極短的存活期導緻在運作時對它進行保護變得更加困難,是以在供應鍊側就要保證容器的安全。
此外,容器的更新速度也對鏡像庫的更新速度有了更高的要求。
3、容器部署密度高
由于大規模部署,對容器的批量化管理必然需要使用編排工具,對于編排工具、鏡像庫、鏡像的安全保障就變得更為重要。
了解容器安全第三步:動态防護全生命周期
在對容器的生命周期進行梳理之後,我們會發現防護容器安全,其實就是防護生産環境的安全。那麼在整個鍊路中,容器最常遭受的攻擊是什麼,企業應該如何防護?
阿裡雲從2011年即開啟了探索的腳步,推進容器化的技術改造和落地,推進雲原生技術,2020年完成了核心系統全面雲原生化,積累了大量的實踐經驗,同步釋出了國内首個雲原生容器安全ATT&CK攻防矩陣。
彙合多年的技術積累和實戰經驗,為了更好地應對容器化程序中的安全挑戰,阿裡雲認為企業的容器安全應當做到動态防護,覆寫容器全生命周期。
- 基礎設施安全
大部分企業會選擇在雲平台上搭建容器,或直接使用容器營運商的容器服務,為了保障容器底層基礎設施的安全,企業在選擇雲服務商時需要格外關注其安全能力:
1、雲平台是否安全合規
一方面是雲平台自身的安全,是否是可信的雲環境;另一方是雲平台合規安全,雲服務商需要基于業界通用的安全合規标準,保證服務元件配置的預設安全性。
2、雲平台安全能力是否強大
雲平台的基礎安全能力,例如主機/VM的防護、SLB通路控制、DDoS、WAF能力、CWPP/CSPM功能等。
3、雲平台管理能力
版本更新和漏洞更新檔的安裝能力也是保證基礎設施安全的基本防護措施,需要雲廠商具備漏洞分級響應機制和版本更新能力。
阿裡雲的雲平台防護能力毋庸置疑:
· 通過可信晶片提供晶片級别的防護能力,保證伺服器-雲平台-虛拟機/容器環境的整體環境可信,實作目前技術發展階段下最高等級安全;
· 2020年釋出的108項自帶安全能力的雲産品,提供強大的平台安全防護能力;
· 亞太地區獲得權威合規資質最多的雲廠家,為客戶解決雲上合規問題。
- 軟體供應鍊動态防護:采集、可視、關聯分析和響應的全流程建設
由于容器的存活時間短,運作時安全防護困難增大,是以需要在供應鍊側,也就是容器建構時即将安全納入考慮範疇,實作安全左移,将DevSecOps觀念納入傳遞流程。
在考慮容器供應鍊安全時,動态思維極為關鍵。就容器生成的核心:鏡像而言,如果存在惡意鏡像或鏡像漏洞沒有得到及時更新,可能會造成大批量的入侵。據Prevasio 對于托管在 Docker Hub 上 400 萬個容器鏡像的調查統計,有 51% 的鏡像存在高危漏洞;另外有 6432 個鏡像被檢測出包含惡意木馬或挖礦程式,這些惡意鏡像就已經被累計下載下傳了 3 億次。
為了應對供應鍊中的安全挑戰,安全廠商需要提供實時動态的防護能力:
1、實時漏洞掃描:對鏡像進行多元度深度掃描,檢測CVE漏洞、SCA中間件、WebShell惡意腳本、確定鏡像無漏洞;
2、鏡像資産管理:擷取主機鏡像資訊,對鏡像資産進行梳理,關聯鏡像、倉庫、主機節點,便于對鏡像資産進行快速檢索;
3、鏡像掃描、驗證:除了漏掃以外,還需對鏡像的配置、CIS靜态基線等内容,減少鏡像配置錯誤;同時建立鏡像加簽規則,確定進入鏡像庫的鏡像安全、無誤,分發和部署中的鏡像不被篡改。
4、鏡像修複:目前市面上還沒有較為成熟的擁有自動鏡像修複能力的廠商,大部分服務商僅提供修複建議。
阿裡雲的安全防護能力覆寫供應鍊全周期。在掃描能力上,提供專人管理和維護的龐大資料庫,收錄10w+安全漏洞,擁有最新突發漏洞的檢測能力,支援多作業系統下的漏洞掃描。同時檢測時間極快,基本可以達到1min出結果。在漏洞修複能力上,提供在OS下的鏡像自動修複能力,讓漏洞修複更簡單,降低運維人員壓力。在CIS基線管理上,阿裡雲容器服務送出的 CIS Kubernetes benchmark for ACK 正式通過 CIS 社群組織的認證稽核,成為國内首家釋出 CIS Kubernetes 國際安全标準基線的雲服務商。
- 運作時安全
容器運作時是用于運作容器的每個主機作業系統對應的二進制檔案,用于建立和維護每個容器環境。容器進行時協調多個作業系統元件,隔離資源和資源使用量,并通過作業系統與主控端進行互動,可以說是容器運作的保障,在這個階段,企業需要關注:
1、容器運作時漏洞、威脅掃描
2、容器運作時網絡可視化
3、容器運作時配置合規安全
阿裡雲對容器運作時提供兩大安全保障,一個是實時威脅檢測,防止容器逃逸。通過200+安全監測模型能無死角實作逃逸檢測,有效監控容器運作時攻擊、配置錯誤、AK洩露等問題;另一個是漏洞管理,全面覆寫系統漏洞、應用漏洞、應急0Day漏洞,同時SCA漏洞檢測能力還覆寫生态及開源軟體漏洞檢查,有效降低漏洞入侵風險。
此外,阿裡雲安全還提供容器運作時網絡連接配接可視化,通過Agent采集資料,實作東西、南北向網絡可視化,輕松識别網絡連接配接安全風險,同時進行配置合規檢查,保證容器運作時的配置安全。
随着雲原生對于計算機基礎設施和應用架構的重新定義,原生安全也在進一步疊代。Gartner在其Marktet Trends中提到建設雲原生安全生态,安全從原來單點式的防護開始向內建化、内生化發展。容器技術和生态的成熟,使得新的容器使用場景也在湧現,邊緣計算、機器學習、大資料分析、aPaaS正在成為容器安全的新關鍵詞。
阿裡雲安全也在進行容器與安全服務一站式深度整合,通過內建雲安全中心、密鑰管理、日志管理等安全服務,建構原生的安全能力,在DevOps流程中預設植入安全,提升整體持續內建和持續傳遞(CI/CD)流水線的安全和防禦能力。
在雲原生的挑戰下,阿裡雲容器服務也會走在技術前線,在容器安全領域保持世界級的競争力,為客戶的應用安全保駕護航。