
作者 | 匡大虎
來源 |
阿裡巴巴雲原生公衆号雲原生程序中的容器安全挑戰
雲原生的火熱帶來了企業基礎設施和應用架構等技術層面的革新,在雲原生的大勢所趨下,越來越多的企業選擇擁抱雲原生,在 CNCF 2020 年度的調研報告中,已經有83% 的組織在生産環境中選擇 Kubernetes,容器已經成為應用傳遞的标準,也是雲原生時代計算資源和配套設施的傳遞單元。顯然,容器已經成為應用傳遞的标準,也是雲原生時代計算資源和配套設施的傳遞單元。
然而,由于在隔離和安全性方面存在的天然缺陷,安全一直是企業進行容器改造化程序中關注的核心問題之一。來到雲原生時代,企業又将面臨哪些容器安全新挑戰?
- 缺少體系化的容器安全能力建設:傳統的企業應用安全模型通常基于内部架構不同的信任域來劃分對應的安全邊界,在信任域内的東西向服務互動被認為是安全的。而上雲後企業應用需要在 IDC 和雲上部署和互動,在實體安全邊界消失後,如何在零信任的網絡安全模型下建構企業級容器安全體系是雲服務商需要解決的重要問題。
- 更多的攻擊面:基于容器技術的應用部署依賴 Linux 核心 namespaces 和 cgroups 等特性,從攻擊者的角度出發,可以利用核心系統漏洞,容器運作時元件和容器應用部署配置等多個次元發起針對性的逃逸和越權攻擊。K8s、Docker、Istio 等開源社群近年來也相繼爆出不少的高危漏洞,這都給攻擊者提供了可乘之機。
- 缺少應用側全生命周期的安全防護手段:容器技術在為企業應用架構提供了彈性、靈活和動态可擴充等特性的同時,也改變了應用的部署模式。首先應用自身的生命周期被大幅縮短,一個容器應用的生命周期通常是分鐘級;與此同時,随着存儲網絡和異構資源使用率等基礎設施能力上的提升,容器應用的部署密度也越來越高,傳統的面向虛機次元的安全防護政策和監控告警手段已經無法适應容器技術的需求。
- 缺少對雲上安全責任共擔模型的了解:企業應用上雲後的安全需要遵循責任共擔模型,在企業應用架構雲原生話的轉型過程中,需要企業應用管理者和安全運維人員了解企業自身和雲服務商之前的責任邊界。這個過程中也需要雲服務商面向企業應用側輸出更全面的容器安全最佳實踐并提升安全能力的易用性,降低使用門檻。
建構容器安全體系的基本原則
為了應對上述企業應用在容器化程序中的安全挑戰,雲服務商和企業應用安全管理運維人員需要攜手共建容器應用安全體系:
圖 1 - ACK 容器服務安全責任共擔模型
1. 雲服務供給側
對于雲服務商,首先需要依托于雲平台自身的安全能力,建構安全穩定的容器基礎設施平台,并且面向容器應用從建構,部署到運作時刻的全生命周期建構對應的安全防護手段。整個安全體系的建構需要遵循如下基本原則:
1)保證容器管控平台基礎設施層的預設安全
容器平台基礎設施層承載了企業應用的管控服務,是保障業務應用正常運作的關鍵,容器平台的安全性是雲服務商應該格外關注的。
- 完備的平台安全能力:首先雲服務商自身基礎設施的安全性是容器平台是否安全的基礎,比如 VPC 的安全配置能力,SLB 的通路控制,DDoS 能力和賬号系統對雲資源的通路控制能力等都是平台側面向企業應用需要提供的基礎安全能力。
- 版本更新和漏洞應急響應機制:虛機 OS 的版本更新和漏洞更新檔的安裝能力也是保證基礎設施安全的基本防護措施,除此之外如 K8s 等容器相關開源社群的風險漏洞,都可能成為惡意攻擊者首選的攻擊路徑,需要廠商提供漏洞的分級響應機制并提供必要的版本更新能力。
- 平台的安全合規性:這也是很多金融企業和政府部門應用上雲的硬性前提條件。雲服務商需要基于業界通用的安全合規标準,保證服務元件配置的預設安全性,同時面向平台使用者和安全審計人員,提供完備的審計機制。
2)面向容器應用側提供縱深防禦能力
雲服務商不僅要在自身管控側建立完善的安全武裝,同時也需要面向業務應用負載,提供适合雲原生場景下容器應用的安全防護手段,幫助終端使用者在應用生命周期各階段都能有對應的安全治理方案。由于雲原生具有動态彈性的基礎設施,分布式的應用架構和創新的應用傳遞運維方式等特點,這就要求雲服務商能夠結合自身平台的基礎安全能力,将雲原生能力特性賦能于傳統的安全模型中,建構面向雲原生的新安全體系架構。
2. 企業安全側
對于企業的安全管理和運維人員來說,首先需要了解雲上安全的責任共擔模型邊界,究竟企業自身需要承擔起哪些安全責任。雲原生微服務架構下企業應用在 IDC 和雲上進行部署和互動,傳統的網絡安全邊界已經不複存在,企業應用側的網絡安全架構需要遵循零信任安全模型,基于認證和授權重構通路控制的信任基礎。對于企業安全管理人員來說可以參考關注如下方向加強企業應用生命周期中的生産安全:
- 保證應用制品的供應鍊安全
雲原生的發展使得越來越多的大規模容器應用開始在企業生産環境上部署,也大大豐富了雲原生應用制品的多樣性,像容器鏡像和 helm charts 都是常見的制品格式。對于企業來說制品供應鍊環節的安全性是企業應用生産安全的源頭,一方面需要在應用建構階段保證制品的安全性;另一方面需要在制品入庫,分發和部署時刻建立對應的通路控制,安全掃描、審計和準入校驗機制,保證制品源頭的安全性。
- 權限配置和憑證下發遵循權限最小化原則
基于統一的身份辨別體系進行認證授權是在零信任安全模型下建構通路控制能力的基礎。對于企業安全管理人員來說,需要利用雲服務商提供的通路控制能力,結合企業内部的權限賬号體系,嚴格遵循權限最小化原則配置對雲上資源和容器側應用資源的通路控制政策;另外嚴格控制資源通路憑證的下發,對于可能造成越權攻擊行為的已下發憑證要及時吊銷。另外要避免容器應用模闆配置如特權容器這樣的過大權限,確定最小化攻擊面。
- 關注應用資料和應用運作時刻安全
應用的成功部署上線并不意味着安全工作的結束。除了配置完備的資源請求審計外,安全管理運維人員還需要利用廠商提供的運作時刻監控告警和事件通知等機制,保持對容器應用運作時安全的關注,及時發現安全攻擊事件和可能的安全隐患。對于企業應用自身依賴的敏感資料(比如資料庫密碼,應用證書私鑰等)需要根據應用資料的安防等級采用對應的密鑰加密機制,利用雲上的密鑰管理方案和落盤加密,機密計算等能力,保證資料在傳輸和落盤鍊路上的資料安全性。
- 及時修複安全漏洞和進行版本更新
無論是虛機系統,容器鏡像或是容器平台自身的安全漏洞,都有可能被惡意攻擊者利用成為入侵應用内部的跳闆,企業安全管理運維人員需要根據雲服務商推薦的指導方案進行安全漏洞的修複和版本更新(比如 K8s 叢集版本,應用鏡像版本等)。此外企業要負責内部員工的安全教育訓練工作,居安思危,提升安全防護意識也是企業安全生産的基礎要務。
端到端的雲原生容器安全架構
阿裡雲 ACK 容器服務面向廣大的企業級客戶,建構了完整的容器安全體系,提供了端到端的應用安全能力。在今年 Forrester IaaS 安全評測中,阿裡雲容器安全能力與谷歌并列滿分,領先其他廠商。下圖為阿裡雲容器服務的安全體系架構圖:
圖 2 - ACK 容器服務安全體系架構圖
首先整個容器安全體系依托于阿裡雲強大的平台安全能力,包括實體/硬體/虛拟化以及雲産品安全能力,建構了夯實的平台安全底座。
在雲平台安全層之上是容器基礎設施安全層,容器基礎設施承載了企業容器應用的管控能力,其預設安全性是應用能夠穩定運作的重要基礎。首先面向叢集 host 節點 OS 鏡像本身阿裡雲作業系統團隊做了很多安全加強相關工作,
Alibaba Cloud Linux 2 (原 Aliyun Linux 2)不僅是阿裡雲官方作業系統鏡像,也是 ACK 的首選預設系統鏡像。Alibaba Cloud Linux 2 在 2019 年 8 月 16 日正式通過了 CIS 組織的全部認證流程并釋出對應的
CIS Aliyun Linux 2 Benchmark version 1.0.0。ACK 正在支援對基于 Alibaba Cloud Linux 作業系統的叢集進行 CIS 安全加強來滿足簡單、快捷、穩定、安全的使用需求。除 CIS 合規外,2021 年 1 月,ACK 已經正式支援對基于 Alibaba Cloud Linux 作業系統的叢集進行
等保加強。
在容器管控側,阿裡雲容器服務基于 CIS Kubernetes 等業界安全标準基線對容器管控面元件配置進行預設的安全加強,同時遵循權限最小化原則收斂管控面系統元件和叢集節點的預設權限,最小化攻擊面。三月,阿裡雲容器服務送出的 CIS Kubernetes benchmark for ACK 正式通過 CIS 社群組織的認證稽核,成為國内首家釋出 CIS Kubernetes 國際
安全标準基線的雲服務商。
統一的身份辨別體系和通路控制政策模型是在零信任安全模型下建構安全架構的核心,ACK 管控側和阿裡雲 RAM 賬号系統打通,提供了基于統一身份模型和叢集證書通路憑證的自動化運維體系,同時面對使用者憑證洩露的風險,創新的提出了使用者憑證吊銷的方案,幫助企業安全管理人員及時吊銷可能洩露的叢集通路憑證,避免越權通路攻擊事件。
針對密鑰管理、通路控制、日志審計這些企業應用互動通路鍊路上關鍵的安全要素,ACK 容器服務也提供了對應的平台側安全能力:
- 通路控制:ACK 基于 K8s RBAC 政策模型提供叢集内應用資源的 通路控制能力 ,在保證非主賬号或叢集建立者預設無權限的安全前提下,叢集管理者可以通過控制台或 OpenAPI 的方式對指定的子賬号或 RAM 角色進行叢集和賬号次元的批量 RBAC 授權,ACK 面向企業常見授權場景,提供了四種預置的權限模闆,進一步降低了使用者對 RBAC 及 K8s 資源模型的學習成本。對于應用容器中通常依賴的叢集通路憑證 serviceaccount,ACK 叢集支援開啟針對 serviceaccount 的 令牌卷投影特性 ,支援對 sa token 配置綁定 audience 身份,并且支援過期時間的設定,進一步提升了應用對管控面 apiserver 的通路控制能力。
- 密鑰管理:針對企業客戶對資料安全自主性和合規性的要求,ACK Pro 叢集支援對 K8s Secret 的 落盤加密能力 ,同時支援使用 BYOK 的 雲盤加密能力 ,保證企業核心資料安心上雲;同時 ACK 叢集支援将使用者托管在阿裡雲 KMS 憑據管家中的敏感資訊 實時同步 到應用叢集中,使用者在 K8s 應用中直接挂載憑據同步的指定 secret 執行個體即可,進一步避免了對應用敏感資訊的寫死問題。
- 日志審計:ACK 除了支援 K8s 叢集 audit 審計 ,controlplane 管控面元件日志 等基本的管控面日志采集外,還支援對 Ingress 流量 的日志審計和基于 NPD 插件的 異常事件告警 。以上日志審計能力均對接了阿裡雲 SLS 日志服務,通過 SLS 服務提供的快速檢索、日志分析和豐富的 dashboard 展示能力,大大降低了對容器應用開發運維和安全審計的難度。
面向容器應用層在供應鍊和運作時刻的安全挑戰,阿裡雲從容器應用的建構、部署到運作全生命周期,提供全方位覆寫的安全能力:
圖 3 - ACK 容器服務應用全生命周期安全能力
- 應用建構階段
據 Prevasio 對于托管在 Docker Hub 上 400 萬個容器鏡像的
調查統計,有 51% 的鏡像存在高危漏洞;另外有 6432 個鏡像被檢測出包含惡意木馬或挖礦程式,而光這 6432 個惡意鏡像就已經被累計下載下傳了 3 億次。
如何應對這些潛伏于鏡像制品中的安全挑戰,一方面要求企業應用開發者在建構應用鏡像時使用可信的基礎鏡像,規範化鏡像建構流程, 保證鏡像最小化;另一方面阿裡雲 ACR 容器鏡像服務針對鏡像建構流程中的安全風險,提供了倉庫權限的通路控制,操作審計和鏡像安全掃描等基礎能力。其中鏡像安全掃描是使用者能夠主動發現安全漏洞的基礎手段,
ACR 容器鏡像服務和
阿裡雲雲安全中心提供了不同版本的鏡像漏洞庫,在支援鏡像深度掃描的同時具備漏洞庫的實時更新能力,滿足企業安全合規需求。在阿裡雲容器鏡像服務企業版中還可以通過
建立和管理傳遞鍊執行個體,将安全掃描和分發流程自由組合并内置到自動化任務中并且自動攔截包含漏洞的鏡像,確定分發到倉庫中鏡像的安全性。
在鏡像建構環節,除了及時發現鏡像漏洞,如何在保證鏡像在分發和部署時刻不被惡意篡改也是重要的安全防護手段,這就需要鏡像的完整性校驗。在阿裡雲容器服務企業版執行個體中,企業安全管理人員可以
配置加簽規則用指定的 KMS 密鑰自動加簽推送到倉庫中的鏡像。
- 應用部署時刻
K8s 原生的 admission 準入機制為應用部署時刻提供了天然的校驗機制。
濫用特權容器,敏感目錄挂載,以 root 使用者啟動容器,這些常見的應用模闆配置都很可能成為容器逃逸攻擊的跳闆。K8s 原生的 PSP 模型通過政策定義的方式限制應用容器運作時刻的安全行為。ACK 容器服務提供面向叢集的
政策管理功能,幫助企業安全運維人員根據不同的安全需求定制化 PSP 政策執行個體,同時綁定到指定的 ServiceAccount 上,對 PSP 特性的一鍵式開關也面向使用者屏蔽了其複雜的配置門檻。此外,ACK 容器服務還支援 gatekeeper 元件的安裝管理,使用者可以基于 OPA 政策引擎更為豐富的場景下定制安全政策。
針對應用鏡像在部署時刻的安全校驗需求,谷歌在 18 年率先提出了
Binary Authorization的産品化解決方案。ACK 容器服務也在去年初正式落地了應用部署時刻的鏡像簽名和驗簽能力。通過安裝定制化的 kritis 元件,企業安全運維人員可以通過定制化的驗簽政策保證應用部署鏡像的安全性,防止被篡改的惡意鏡像部署到企業生産環境中。
圖 4 - 一緻性安全政策管理
- 應用運作時刻
企業應用的穩定運作離不開運作時刻的安全防護手段。ACK 容器服務和雲安全中心團隊合作,面向容器内部入侵,容器逃逸,病毒和惡意程式,異常網絡連接配接等常見的運作時刻攻擊行為進行
實時監控和告警,同時雲安全中心還提供了針對告警事件的溯源和攻擊分析能力。與此同時,ACK 容器服務基于業界安全基線和最佳實踐,面向叢集内運作應用提供了一鍵化的免費
安全巡檢能力,通過巡檢任務及時暴露運作中容器應用在健康檢查/資源限制/網絡安全參數/安全參數等配置上不符合基線要求的危險配置,并提示使用者修複建議,避免可能發生的攻擊。
對于安全隔離程度要求較高的企業客戶可以選擇使用
安全沙箱容器叢集,安全沙箱容器基于輕量虛拟化技術實作,應用運作在獨立的核心中,具備更好的安全隔離能力,适用于不可信應用隔離、故障隔離、性能隔離、多使用者間負載隔離等多種場景。
對于金融支付,區塊鍊等對資料計算過程中的完全性,完整性和機密性有強安全訴求的場景,可以選擇部署使用
ACK-TEE 機密計算托管叢集,其中機密計算基于 Intel SGX 技術,支援将重要的資料和代碼防止在一個特殊的可信執行加密環境(Trusted Execution Environment,TEE)中,而不會暴露給系統其他部分。其他應用、BIOS、OS、Kernel、管理者、運維人員、雲服務商、甚至除了 CPU 以外的其他硬體均無法通路機密計算平台資料,極大減少敏感資料的洩露風險。
圖 5 - 容器應用安全配置巡檢
圖 6 - 容器應用運作時刻安全監控
安全是企業上雲的首要關切
安全是企業上雲的首要關切。随着雲原生對計算基礎設施和企業應用架構的重定義,容器作為雲的新界面,也将緊跟雲原生的發展大潮,向更加安全、可信的方向發展。未來,阿裡雲容器服務将始終以“讓企業放心上雲,安心用雲”為目标,在容器安全領域保持世界級的競争力,在不斷夯實自身基礎設施安全的基礎上,為客戶的應用安全保駕護航。