云原生安全模型與實踐

2022-10-06    分類: 網(wǎng)站建設(shè)

在傳統(tǒng)的研發(fā)中,我們經(jīng)常關(guān)注的「安全」包括代碼安全、機器(運行環(huán)境)安全、網(wǎng)絡(luò)運維安全,而隨著云原生時代的到來,如果還按原有的幾個維度切分的話,顯然容易忽略很多云原生環(huán)境引入的新挑戰(zhàn),我們需要基于網(wǎng)絡(luò)安全好實踐——縱深防御原則,來逐步剖析「云原生的安全」,并且對不同層次的防御手段有所了解,從而建立自己的云原生安全理念,真正搭建一個內(nèi)核安全的云原生系統(tǒng)。

云原生安全模型與實踐

注:“縱深防御”,指在計算機系統(tǒng)中的多個層面使用多種網(wǎng)絡(luò)安全技術(shù),從而減少攻擊者利用關(guān)鍵業(yè)務(wù)資源或信息泄露到系統(tǒng)外部的總體可能性。在消息傳遞和協(xié)作環(huán)境中,縱深防御體系可以確保惡意攻擊活動被阻止在基礎(chǔ)結(jié)構(gòu)內(nèi)的多個檢查點,降低了威脅進入內(nèi)部網(wǎng)絡(luò)的可能性。

以某IDaaS系統(tǒng)為例,我們把一個云原生系統(tǒng)安全模型分為 4 個層面,由外至內(nèi)分別是:云/數(shù)據(jù)中心/網(wǎng)絡(luò)層、集群層、容器層、代碼層,如下圖所示:

云原生安全模型與實踐

對于這里安全模型的每一層,都是單向依賴于外層的。也就是說,外層的云、集群、容器安全如果做得好,代碼層的安全就可以受益,而反過來,我們是無法通過提高代碼層的安全性來彌補外層中存在的安全漏洞或問題。基于上述這一點原理,我們的縱深防御策略是「自外而內(nèi)」地進行“設(shè)防”。

一、云/數(shù)據(jù)中心/網(wǎng)絡(luò)層安全

這一層也可以稱之為基礎(chǔ)設(shè)施安全,不管從何角度,公有或私有云或企業(yè)數(shù)據(jù)中心以及對應(yīng)的網(wǎng)絡(luò)安全,是 K8s 集群最根本的安全基礎(chǔ),如果這一層存在安全漏洞或者過于脆弱,則整個系統(tǒng)都不能在此基礎(chǔ)上保證組件的安全。

我們除了需要防御傳統(tǒng)的攻擊,如 ARP 偽裝、DDOS、網(wǎng)絡(luò)層各類報文等攻擊,應(yīng)該針對 Kubernetes 集群采取以下保護措施:

不允許在 Internet 上公開對 Kubernetes 管理平臺(Control Plane)的所有訪問,同時僅開放部分可信 IP 可以訪問 Kubernetes 管理 API。

所有節(jié)點只暴露指定的端口,包括對管理平臺的內(nèi)部端口和來自 NodePort 和 LoadBalancer 類型的 Kubernetes 服務(wù)的連接,并且不應(yīng)該直接暴露到 Internet。

通過云提供商或機房的網(wǎng)絡(luò)層安全組(例如 AWS 的 Security Group)對管理平臺以及節(jié)點授予最小權(quán)限控制:

云原生安全模型與實踐

對etcd(Kubernetes 的基礎(chǔ)存儲)的訪問進行嚴格控制(僅允許來自集群管理平臺的訪問),應(yīng)強制所有連接都使用TLS,并確保所有信息都是在持久化層被加密的(Encryption at rest)。

二、集群層

保護 Kubernetes 集群有兩個主體需要關(guān)注:

集群與組件

運行的服務(wù)或應(yīng)用

保護 Kubernetes 集群組件與服務(wù)或應(yīng)用:

針對這兩個主體的保護,我們的保護可以分為 4 大塊:管理 API 的訪問控制、Kubelet 的訪問控制、Runtime(運行時)工作負載或用戶功能的訪問控制、集群組件的安全漏洞防護,如下圖所示。

云原生安全模型與實踐

(1) 管理 API 的訪問控制

強制 TLS 保護傳輸層

強制 API 認證

強制 API 授權(quán)機制(RBAC)

(2) Kubelet 的訪問控制

生產(chǎn)環(huán)境啟用身份驗證

身份授權(quán)(RBAC)

強制 TLS 保護傳輸層

(3) Runtime(運行時)工作負載或用戶功能的訪問控制

限制使用特權(quán)容器

合理限制資源負載

防止加載非必要內(nèi)核模塊

限制 Pod 越權(quán)訪問其他節(jié)點

基礎(chǔ)數(shù)據(jù)憑證的訪問控制

(4) 集群組件的安全漏洞防護

禁止未授權(quán)訪問 etcd

啟用審核日志記錄

定期輪換基礎(chǔ)架構(gòu)憑證

定期升級修復(fù)漏洞

三、容器層

到了這一層,由于跟 Kubernetes 特性不是強相關(guān),我們能提供一些通用的安全措施和建議:

云原生安全模型與實踐

四、代碼層

程序代碼層是最容易受攻擊,但也是最可控的部分之一。雖然一般負責(zé)這塊安全的人員不一定是運維開發(fā)(DevOps),可能是專門的安全工程師(Sec Eng),但有一些基本共性理念和建議是可以互相借鑒的。

云原生安全模型與實踐

總體來說,云原生時代的這四層架構(gòu):云/數(shù)據(jù)中心/網(wǎng)絡(luò)層、集群層、容器層、代碼層,與傳統(tǒng)架構(gòu)比起來更加細化和更易受攻擊。自外而內(nèi)地踐行每一層的安全好實踐,我們的縱深防御才能算是成功的,每個在云原生技術(shù)上想長期獲益的團隊需要對此有共識。

參考資料:

https://baike.baidu.com/item/%E7%BA%B5%E6%B7%B1%E9%98%B2%E5%BE%A1/8282191?fr=aladdin

https://kubernetes.io/docs/concepts/security/overview/

https://www.stackrox.com/post/2020/09/protecting-against-kubernetes-threats-chapter-8-lateral-movement/

當(dāng)前名稱:云原生安全模型與實踐
鏈接地址:http://www.muchs.cn/news1/202501.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站改版外貿(mào)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、網(wǎng)站營銷外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司