探索云原生安全測(cè)試
作者 | 潘立峰
背景
容器和云原生平臺(tái)使企業(yè)能夠?qū)崿F(xiàn)自動(dòng)化應(yīng)用部署,從而帶來(lái)巨大的業(yè)務(wù)收益。但是,這些新部署的云環(huán)境與傳統(tǒng)環(huán)境一樣,容易受到黑客和內(nèi)部人員的攻擊和利用。勒索軟件、加密貨幣挖礦、數(shù)據(jù)竊取和服務(wù)中斷的攻擊持續(xù)發(fā)生在針對(duì)基于容器的云原生環(huán)境之中。由于云平臺(tái)安全缺陷導(dǎo)致頻繁發(fā)生的重大網(wǎng)絡(luò)安全事故,使得云平臺(tái)下的安全測(cè)試顯得尤為重要。
網(wǎng)絡(luò)安全事故相關(guān)案例:
- 2017年,網(wǎng)絡(luò)安全導(dǎo)致美國(guó)征信公司 Equifax約 1.48 億美國(guó)公民數(shù)據(jù)遭泄露。(來(lái)源:新華網(wǎng))
 - 2018年,特斯拉云服務(wù)器遭黑客劫持,變?yōu)榧用茇泿诺V機(jī),機(jī)密數(shù)據(jù)遭泄漏。(來(lái)源:網(wǎng)易)
 - 2022年,匯豐網(wǎng)絡(luò)銀行遭到拒絕服務(wù)攻擊(DDOS)攻擊,在不到一個(gè)月內(nèi)癱瘓了兩次。(來(lái)源:安全狗)
 

云時(shí)代的安全視角
那么該如何開(kāi)展云原生環(huán)境下的安全測(cè)試呢?首先讓我們來(lái)了解下不同時(shí)代安全的視角和安全測(cè)試重點(diǎn)的差異。
在單體架構(gòu)的終端時(shí)代,所有的業(yè)務(wù)場(chǎng)景的表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層放在一個(gè)工程里面,然后經(jīng)過(guò)編譯打包部署到一臺(tái)服務(wù)器上,結(jié)構(gòu)比較簡(jiǎn)單,防護(hù)起來(lái)相對(duì)也比較容易。
在互聯(lián)網(wǎng)的時(shí)代,使用面向服務(wù)的架構(gòu)。這種架構(gòu)將應(yīng)用程序的不同功能單元進(jìn)行拆分,并且通過(guò)服務(wù)之間定義良好的接口和契約進(jìn)行聯(lián)系。這種架構(gòu)使得安全防護(hù)變得更加復(fù)雜,它需要做好應(yīng)用級(jí)的防火墻,要對(duì)IDP、SSL、VPN做好相關(guān)的防護(hù)。
在云的時(shí)代,使用微服務(wù)的架構(gòu)。微服務(wù)的架構(gòu)其實(shí)是多服務(wù)的結(jié)合體。這些服務(wù)開(kāi)放不同的端口,開(kāi)放多個(gè)應(yīng)用程序API,這樣就會(huì)導(dǎo)致網(wǎng)絡(luò)的攻擊面增加,帶來(lái)嚴(yán)重的安全挑戰(zhàn)。在這種情況下,所有的微服務(wù)都需要得到充分的保護(hù),才能克服這種安全的威脅。
云時(shí)代安全測(cè)試面臨的挑戰(zhàn)
了解不同時(shí)代安全視角差異后,再讓我們從這些差異來(lái)審視云時(shí)代安全測(cè)試技術(shù)相較傳統(tǒng)安全測(cè)試所面臨的挑戰(zhàn):
- 微服務(wù)架構(gòu)帶來(lái)了大量的內(nèi)部網(wǎng)絡(luò)流量與動(dòng)態(tài)復(fù)雜的網(wǎng)絡(luò)環(huán)境,使得云網(wǎng)內(nèi)部可視化變得相當(dāng)?shù)停灾劣趥鹘y(tǒng)的網(wǎng)絡(luò)安全測(cè)試手段無(wú)法勝任任務(wù)
 - 資源的彈性伸縮特性使得傳統(tǒng)的安全測(cè)試方案難以發(fā)揮作用,無(wú)法有效測(cè)試出系統(tǒng)的最終安全性
 - 大量的開(kāi)源軟件漏洞、復(fù)雜的內(nèi)部攻擊以及應(yīng)用的快速迭代,使我們對(duì)安全防護(hù)的及時(shí)性要求更高。
 
由于云時(shí)代所面臨的安全測(cè)試挑戰(zhàn),傳統(tǒng)安全測(cè)試手段和工具由于架構(gòu)和技術(shù)上的差異無(wú)法有效應(yīng)對(duì),例如:檢測(cè)容器漏洞、識(shí)別云網(wǎng)絡(luò)內(nèi)部流動(dòng)的信息以及同大規(guī)模部署的可擴(kuò)展性缺乏等,因此,需要采用更加先進(jìn)的技術(shù)和工具來(lái)進(jìn)行更有效地安全測(cè)試。
云原生安全測(cè)試方案
傳統(tǒng)安全測(cè)試工具和手段無(wú)法適用于云原生環(huán)境下的安全測(cè)試,因此必須引入云原生環(huán)境下一些特殊的安全測(cè)試工具和測(cè)試方法,針對(duì)云原生網(wǎng)絡(luò)和基礎(chǔ)架構(gòu)的特點(diǎn),設(shè)計(jì)全新的安全測(cè)試方案,解決這些傳統(tǒng)的安全測(cè)試工具無(wú)法覆蓋的盲點(diǎn)。
當(dāng)我們?cè)O(shè)計(jì)云原生安全測(cè)試方案前,首先讓我們先了解下云原生安全測(cè)試的內(nèi)容:
- 基礎(chǔ)架構(gòu)層面,我們需要開(kāi)展主機(jī)和基礎(chǔ)架構(gòu)安全合規(guī)測(cè)試、Docker/Kubernetes 標(biāo)準(zhǔn)合規(guī)性測(cè)試、鏡像漏洞、病毒掃描測(cè)試、鏡像審計(jì)測(cè)試、云上數(shù)據(jù)庫(kù)和存儲(chǔ)安全測(cè)試
 - 鏡像安全方面,我們需要開(kāi)展鏡像漏洞、病毒掃描,自動(dòng)實(shí)時(shí)掃描,第三方日志工具集成測(cè)試
 - 云原生網(wǎng)絡(luò)層面,我們需要開(kāi)展云原生網(wǎng)絡(luò)安全測(cè)試,Macvaln、Calico、Ovs等云原生cni集成安全測(cè)試等。
 - 應(yīng)用和容器安全測(cè)試方面,我們需要開(kāi)展容器病毒掃描測(cè)試、應(yīng)用漏洞掃描測(cè)試
 - 應(yīng)用運(yùn)行時(shí)候安全,我們需要開(kāi)展服務(wù)運(yùn)行時(shí)安全測(cè)試,惡意進(jìn)程掃描測(cè)試
 - 同時(shí),我們也可以結(jié)合一些傳統(tǒng)的滲透測(cè)試手段對(duì)云上的存儲(chǔ)、數(shù)據(jù)庫(kù),操作系統(tǒng)開(kāi)展相關(guān)滲透測(cè)試
 
開(kāi)源安全測(cè)試工具箱
基于以上云原生安全測(cè)試內(nèi)容,引入一套完全以開(kāi)源安全工具為基礎(chǔ)的測(cè)試工具為基礎(chǔ)設(shè)計(jì)的測(cè)試方案,就可以開(kāi)展我們的安全測(cè)試了,這套安全測(cè)試工具,我們稱它為開(kāi)源安全測(cè)試工具箱,開(kāi)源安全測(cè)試工具箱包含以下工具:
- 云原生基礎(chǔ)架構(gòu)總體安全:NeuVector
 - 鏡像審計(jì)和漏洞、病毒掃描測(cè)試:Clair、Anchore、Dagda
 - 云原生網(wǎng)絡(luò)安全測(cè)試:kubescape
 - 容器運(yùn)行時(shí)安全測(cè)試:Falco
 - 容器病毒掃描測(cè)試:ClamAV
 - 滲透測(cè)試:sqlmap、Metasploit
 
使用開(kāi)源安全測(cè)試工具箱開(kāi)展云原生安全測(cè)試具有以下優(yōu)點(diǎn):
- 經(jīng)濟(jì)性:采用開(kāi)源工具,和動(dòng)輒上百萬(wàn)、千萬(wàn)級(jí)別其他商用方案相比,工具使用零成本。
 - 安全性:可以查看和取得全部檢測(cè)工具源代碼,匹配金融、政府、軍工等行業(yè)特殊安全需求。
 - 擴(kuò)展性和全面性:數(shù)以千計(jì)社區(qū)安全測(cè)試工具,可以任意根據(jù)客戶需求擴(kuò)展云原生安全測(cè)試策略,覆蓋客戶所有安全測(cè)試盲點(diǎn)。
 - 靈活性:可以靈活地定制云原生安全解決方案,根據(jù)客戶需求選擇最合適的云原生安全測(cè)試策略。
 
下面我們用Nginx、Nodejs和Redis部署多層應(yīng)用程序,使用開(kāi)源安全工具NeuVector演示開(kāi)展和進(jìn)行威脅攻擊測(cè)試:
1. 創(chuàng)建測(cè)試演示命名空間:kubectl create namespace demo
2. 使用yaml 創(chuàng)建 Redis 服務(wù)和部署

3. 使用yaml 創(chuàng)建 Nodejs 服務(wù)和部署

4. 使用此 yaml 創(chuàng)建 Nginx 服務(wù)和部署

5. 外部訪問(wèn)Nginx服務(wù),找到NodePort分配給它的隨機(jī)端口(映射到80端口:

6. 然后連接到其中一個(gè)kubernetes節(jié)點(diǎn)的公共IP地址/端口,例如:

7. 登錄容器,在容器內(nèi)部安裝DDos攻擊工具h(yuǎn)ping3,開(kāi)始模擬攻擊:

8. 對(duì)另一個(gè)容器節(jié)點(diǎn)發(fā)起攻擊:

9. 打開(kāi)「通知→安全事件」頁(yè)面,查看告警信息

來(lái)源:自行部署的開(kāi)源安全測(cè)試環(huán)境截圖10. 告警信息有 Ping Death 攻擊容器的相關(guān)內(nèi)容,NeuVector 自動(dòng)記錄該違規(guī)動(dòng)作。測(cè)試期望結(jié)果和實(shí)際結(jié)果一致,威脅攻擊測(cè)試用例通過(guò)。
云原生DevSecOps
DevSecOps其實(shí)是在DevOps基礎(chǔ)上增加了Security的一個(gè)步驟,DevSecOps概念是在2012年提出來(lái)的,它把安全測(cè)試?yán)砟钊谌肓苏麄€(gè)DevOps的概念里面,在整個(gè)開(kāi)發(fā)和運(yùn)維的過(guò)程中都會(huì)持續(xù)地運(yùn)行安全測(cè)試的相關(guān)內(nèi)容。它有幾個(gè)特性,它會(huì)和CI/CD流水線做集成,實(shí)現(xiàn)測(cè)試左移和右移。它能夠?qū)訕?biāo)準(zhǔn)的監(jiān)控告警體系,對(duì)研發(fā)和生產(chǎn)環(huán)境中運(yùn)行的應(yīng)用實(shí)現(xiàn)24小時(shí)安全監(jiān)控。

圖片來(lái)源:https://www.sohu.com/a/207924559_804262
DevSecOps強(qiáng)調(diào)安全是團(tuán)隊(duì)每個(gè)人的責(zé)任,無(wú)論我們是研發(fā)測(cè)試還是運(yùn)維,安全的理念要貫穿在產(chǎn)品整個(gè)生命周期當(dāng)中。它解決了安全測(cè)試的孤立性、滯后性、隨機(jī)性,覆蓋性、變更一致性等問(wèn)題。通過(guò)固化流程,加強(qiáng)了不同人員的協(xié)作。通過(guò)工具和技術(shù)手段,將可以自動(dòng)化重復(fù)運(yùn)行的部分安全測(cè)試工作融入到整個(gè)研發(fā)體系內(nèi),讓產(chǎn)品的安全屬性嵌入到整條的研發(fā)和運(yùn)維的流水線之中。
總結(jié)
當(dāng)我們使用開(kāi)源的云原生安全測(cè)試工具結(jié)合滲透測(cè)試工具、方法和手段,通過(guò)設(shè)計(jì)良好的安全測(cè)試策略,就能很好地開(kāi)展云平臺(tái)基礎(chǔ)架構(gòu)合規(guī)測(cè)試、容器網(wǎng)絡(luò)安全測(cè)試、容器運(yùn)行時(shí)安全測(cè)試、鏡像安全測(cè)試等云原生環(huán)境下特有的安全測(cè)試。從而了解云平臺(tái)和云上應(yīng)用存在的安全隱患和風(fēng)險(xiǎn),通過(guò)修復(fù)相關(guān)的安全隱患和風(fēng)險(xiǎn),來(lái)不斷提升我們?cè)破脚_(tái)和云上應(yīng)用的安全性。















 
 
 












 
 
 
 