云计算安全测评:云原生安全
云原生發展趨勢
云原生的英文縮寫“Cloud Native”是一個組合詞,其中“云”表示應用程序運行于云計算環境中,“原生”表示應用程序在設計之初就充分考慮了云計算的彈性和分布式特性。云原生架構能夠助力企業適應現代IT技術的發展變化,從而幫組織實現軟件的快速迭代、敏捷開發,達到降低成本的效果。
2013年,Pivotal公司的Matt Stine首次提出云原生的概念,用于區分為云而設計的應用和云上部署的傳統應用。
2015年,云原生計算基金會(CNCF)成立,旨在推動以容器為中心的云原生系統。其給出了目前被廣泛接受的云原生的定義,即:“云原生技術有利于各組織在公有云、私有云和混合云等新型動態環境中,構建和運行可彈性擴展的應用。云原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和聲明式API。這些技術能夠構建容錯性好、易于管理和便于觀察的松耦合系統。結合可靠的自動化手段,云原生技術使工程師能夠輕松地對系統作出頻繁和可預測的重大變更。”
2017年,Matt Stine將云原生架構歸為模塊化、可觀察、可部署、可測試、可替換、可處理6個特質;Pivotal最新官網對云原生概括為4個要點:微服務+DevOps+持續交付+容器。
微服務架構下,應用的各個服務可獨立開發、部署、更新和擴容,更好地利用了云計算按需分配和彈性擴展的特性。
DevOps讓開發、測試和運維相互融合,從而實現快速編譯、自動化測試、部署、發布和回滾,為微服務架構提供技術支撐。
持續交付是指在DevOps的支撐下,更快更便捷地進行軟件開發、測試、部署和升級,從而實現持續交付。
容器是一種輕量級的虛擬機,共享宿主操作系統的內核,具有輕量化的特點,其與編排系統一起實現了快速啟動、按需服務、彈性擴展等,是微服務的底層基礎設施。
隨著技術的發展,為了更好地開展云原生治理和應用,又出現了服務網格、無服務器計算(Serverless Computing)的概念
云原生面臨的安全問題
云原生已成為了云計算市場的寵兒,其解決了傳統IT架構中部署困難、升級緩慢、架構復雜等問題,但也同樣面臨安全風險。特斯拉Kubernetes容器集群被黑事件、Docker Hub 中的容器鏡像被投毒注入挖礦程序等一系列針對云原生的安全攻擊事件發人深省,也讓大家愈發關注云原生安全。
云原生安全包含兩層意思:一是云原生環境的安全,二是利用云原生技術的安全。
云原生環境的安全是指采用相應的安全措施對云原生環境進行保護,這種安全措施有可能是使用傳統的安全防護產品,也有可能是使用云原生技術的安全產品,也有可能是云原生環境自身的安全特性。
利用云原生技術的安全是指采用云原生的彈性擴展、按需分配等特點進行安全產品的設計和部署,這種安全產品能夠部署在云原生環境中,當然也可以為傳統IT架構提供安全防護。
未來,云原生環境必將與采用了云原生技術的安全相互融合,成為統一的整體;也就是說在云計算環境下的安全一般也是采用了云原生技術的安全,采用了云原生技術的安全也會為云計算環境安全添磚加瓦,從而實現持續交付、持續安全,達到業務與安全齊頭并進。
本文我們重點討論云原生環境的安全,依據其系統構成從容器、編排系統、微服務、服務網格、無服務器計算五個層面分析其安全風險。
1、云原生環境下,容器作為微服務的主要載體,是底層基礎設施,為適應應用的快速部署和迭代,容器具有數量龐大、生命周期短暫等特點,且在容器的新建和消失過程中用于標識容器IP地址 、名稱等均將發生變化,這對于傳統的基于IP的訪問控制策略是一種極大的挑戰。容器面臨的主要安全挑戰包括:容器鏡像的安全性、容器間流量和訪問控制的復雜性、共享操作系統內核情況下容器逃逸的安全風險、容器安全配置的復雜性、特權容器的權限控制等。
2、編排系統是容器的大腦,它可以提供用戶所需的容器部署,管理和擴縮容等編排功能。比如,Kubernetes就是被最為廣泛使用的容器編排系統。編排系統的安全問題同樣對云原生環境影響深遠,其需要考慮的問題主要包括不安全的配置、漏洞利用、敏感數據獲取、橫向移動、遠程控制和持久化駐留等。
3、微服務就是將單體應用中的不同模塊拆分成微服務,這些微服務都可以獨立部署、運維、升級和擴展,微服務之間通過使用RESTful API進行通信。在云原生環境中,內外網邊界模糊,更多的API會暴露在互聯網上。隨著API暴露面的增加,其被攻擊的風險也大大增加,傳統的南北向防護體系在云原生環境下顯得力不從心。此外,微服務架構增加了服務間的訪問和調用,給東西向流量控制帶來了更大的挑戰。
4、服務網格被認為是下一代的微服務架構,其主要對服務進程間的通信進行管理,是云原生的發展和延伸。比如Istio就是一款典型的微服務管理和服務網格框架項目。引入新的技術必然也會帶來新的安全風險,服務網絡面臨的主要安全風險包括:不安全的通信導致的中間人攻擊、東西向和南北向的認證授權和訪問控制不當造成的越權攻擊等。
5、無服務器計算是指在不考慮服務器的情況下構建并運行應用程序和服務,使開發者無需關注底層基礎設施、設備的管理。無服務器計算并非指沒有服務器,而是指使用者無需關注服務器,而由服務商來對服務器進行管理。Serverless 是新的云原生模式,當然同樣面臨安全問題,主要包括復雜和流動的攻擊面、數據注入、非授權訪問、操作不可見、無法溯源等。
云原生技術得到了廣泛地應用,云原生系統也不斷部署,這催生了諸如CASB(云訪問安全代理),CSPM(云安全配置管理),CWPP(云工作負載安全防護平臺),SASE (安全訪問服務邊緣模型)、容器安全(Container Security)等新興云安全防護產品和解決方案,這些都能夠為云原生環境的安全提供產品和技術支持。
云原生安全框架
基于以上云原生環境面臨的安全問題,需要有一個完整的安全框架,用于明確云原生系統應具備的安全技術或能力。該框架中橫軸是開發運營安全的維度,涉及需求設計(Plan)、開發(Dev)、運營階段(Ops),細分為需求、設計、編碼、測試、集成、交付、防護、檢測、響應階段,,但考慮到響應安全能力要求在不同云原生技術層差異性較大,本標準不涉及響應階段。而縱軸則是按照云原生系統和技術的層次劃分,包括容器基礎設施安全、容器編排平臺安全、微服務安全、服務網格安全、無服務器計算安全五個部分:
從云原生安全的視角,云原生系統各層所需的安全要求從容器基礎設施安全直至無服務器計算安全,對應圖中藍色標注部分。
從DevSecOps的視角,涉及的能力范圍幾乎覆蓋了橫軸的各個階段,對應參考圖中紫色標注部分。
此外,云原生安全體系各層都有認證授權、監控追蹤和日志審計等通用的安全要求,這些通用技術能力覆蓋DevSecOps中Ops階段,見圖中黃色標注部分。
需要注意的是該安全框架是從DevSecOps的角度看云原生安全體系,如果從其它維度,則會有不同的安全架構。該框架下的各個層次的安全能力要求包括:
容器基礎設施安全能力要求主要包括:內核安全、容器安全配置核查、容器安全加固、容器運行時安全、鏡像安全、鏡像倉庫安全、日志審計、監控追蹤、認證授權等。
容器編排平臺安全能力要求主要包括:容器編排平臺安全配置核查、容器編排平臺安全加固、認證授權、密鑰管理、網絡安全、日志審計、監控追蹤等。
微服務安全能力要求主要包括:微服務API安全、微服務應用安全;其中微服務API安全主要包括云原生API網關、API脆弱性評估;微服務應用安全主要包括認證授權、API安全、通信安全、憑證管理、日志審計、監控追蹤等。
服務網格安全能力要求主要包括:認證授權、日志審計、監控追蹤、配置核查等。
無服務器計算安全能力要求主要包括:無服務器應用安全、無服務器平臺安全;其中無服務器平臺安全主要包括認證授權、日志審計、監控追蹤、賬戶安全、函數應用安全等。
安全建議
云原生作為云計算深入發展的產物,已在5G、人工智能、大數據等領域得到了廣泛應用,以容器、編排系統、微服務為關鍵技術的云原生系統也因為具有快速迭代、敏捷開發、降低成本等特點被大量部署。然而,斷發生的針對云原生安全攻擊事件也讓大家對于云原生安全倍加關注,因此需要對云原生系統進行整體安全評估,從而給用戶建立信心。
我中心立項了公安行業標準《信息安全技術 容器安全監測產品安全技術要求》,該標準主要從容器鏡像安全、容器運行時安全、編排組件安全和自身安全4個方面對容器安全監測產品提出相關的安全功能要求和安全保障要求,目前該標準尚處于編制階段。此外,我中心與國際云安全聯盟CSA、云計算廠商和安全廠商等一起編制了《云原生安全技術規范》,建立了云原生安全架構,從開發運營安全(DevSecOps)和云化系統安全兩個維度考慮安全機制,提出了容器基礎設施安全、容器編排平臺安全、微服務安全、服務網格安全、無服務器計算安全五個部分的安全要求,為云原生類產品廠商或甲方構建安全的云原生類產品和系統提供參考和指導。
轉載自國家網安檢測中心服務號
微信公眾號關注“云安全聯盟CSA”
回復“云原生安全”,即可閱讀下載《云原生安全技術規范》全文
總結
以上是生活随笔為你收集整理的云计算安全测评:云原生安全的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 示波法测血压原理
- 下一篇: Go语言云原生与微服务(一)云原生架构