容器是云原生基礎(chǔ)設(shè)施的基石。它們改變了可擴(kuò)展性和速度的游戲規(guī)則,但它們的流行也為現(xiàn)代企業(yè)帶來(lái)了容器安全挑戰(zhàn)。例如,最近 AWS Elastic Container Registry (ECR) 中的一個(gè)安全漏洞可能使威脅行為者能夠?qū)阂獯a注入其他用戶的容器映像。下面,我們將詳細(xì)了解什么是容器運(yùn)行時(shí)安全、企業(yè)需要了解的五種運(yùn)行時(shí)容器安全威脅,以及改善整體工作負(fù)載安全狀況的關(guān)鍵最佳實(shí)踐和工具。
什么是容器運(yùn)行時(shí)安全?
容器運(yùn)行時(shí)安全是一組工具和實(shí)踐,可保護(hù)容器從實(shí)例化到終止。它是容器安全和工作負(fù)載保護(hù)的一個(gè)子集,負(fù)責(zé)保護(hù)容器從實(shí)例化到終止發(fā)生的所有事情。例如,容器運(yùn)行時(shí)安全處理掃描運(yùn)行中的容器是否存在漏洞,而不是掃描明文源代碼。這意味著漏洞掃描器是運(yùn)行時(shí)容器安全工具的一個(gè)示例,但SAST掃描器不是。
但是,容器運(yùn)行時(shí)安全性并不是一個(gè)孤立的概念。除了容器本身之外,保護(hù)源代碼、Kubernetes (K8s)和基礎(chǔ)設(shè)施即代碼(IaC) 是提供深度防御的重要方面,這些方面使企業(yè)容器運(yùn)行時(shí)安全工作取得成功。
企業(yè)需要了解的 5 大容器運(yùn)行時(shí)安全威脅
以下五種容器運(yùn)行時(shí)安全威脅可能會(huì)給運(yùn)行容器工作負(fù)載的企業(yè)帶來(lái)重大風(fēng)險(xiǎn)。
未經(jīng)授權(quán)的容器部署:企業(yè)對(duì)手使用的 MITRE ATT&CK 技術(shù)列表中的Deploy Container (T1610)是容器安全威脅的一個(gè)很好的例子。使用這種技術(shù),攻擊者部署一個(gè)容器——例如使用 Docker 的創(chuàng)建和啟動(dòng)命令——繞過(guò)安全控制并啟用漏洞利用。
錯(cuò)誤配置和不安全配置:不安全配置是最常見的容器安全風(fēng)險(xiǎn)之一。例如,暴露不必要的網(wǎng)絡(luò)端口或硬編碼 API 密鑰的容器都是不安全配置的示例。
帶有惡意軟件的容器鏡像:當(dāng)企業(yè)使用公共容器注冊(cè)表時(shí),這種風(fēng)險(xiǎn)尤其普遍。威脅行為者可以將惡意軟件嵌入到容器鏡像中,然后將它們發(fā)布到公共注冊(cè)表中供企業(yè)使用。
權(quán)限升級(jí)攻擊:有多種權(quán)限升級(jí)攻擊可以導(dǎo)致攻擊者獲得對(duì)容器或底層主機(jī)的根訪問(wèn)權(quán)限。這些攻擊通常始于利用不安全的配置或現(xiàn)有漏洞。
未修補(bǔ)的漏洞:未匹配的漏洞,如應(yīng)用程序中的訪問(wèn)控制錯(cuò)誤,為威脅參與者提供了破壞容器的更簡(jiǎn)單途徑。
如何查找和修復(fù)容器安全運(yùn)行時(shí)風(fēng)險(xiǎn)
與shift left security的概念一致,早期檢測(cè)是有效容器運(yùn)行時(shí)安全的關(guān)鍵。理想情況下,企業(yè)應(yīng)該在容器實(shí)例化發(fā)生之前就檢測(cè)到威脅。然而,這并不總是實(shí)用的。這就是運(yùn)行時(shí)掃描和威脅檢測(cè)發(fā)揮作用的地方。一旦檢測(cè)到威脅,理想的情況是它會(huì)以智能限制誤報(bào)的方式自動(dòng)修復(fù)。對(duì)于其余情況,應(yīng)迅速提醒安全專業(yè)人員采取糾正措施。
5 個(gè)運(yùn)行時(shí)容器安全最佳實(shí)踐
以下五個(gè)最佳實(shí)踐可以幫助企業(yè)有效發(fā)現(xiàn)和修復(fù)容器運(yùn)行時(shí)安全風(fēng)險(xiǎn)。
僅運(yùn)行受信任的容器鏡像:僅運(yùn)行來(lái)自安全存儲(chǔ)庫(kù)的受信任容器鏡像可以限制實(shí)例化不安全鏡像的風(fēng)險(xiǎn)。
實(shí)施持續(xù)漏洞掃描:時(shí)間點(diǎn)安全檢查很有用,但還不夠。為了領(lǐng)先于不斷變化的威脅,企業(yè)應(yīng)該持續(xù)掃描工作負(fù)載以進(jìn)行實(shí)時(shí)威脅檢測(cè)。
以低權(quán)限用戶運(yùn)行容器:企業(yè)應(yīng)避免以 root 用戶身份或使用Docker –privileged 標(biāo)志運(yùn)行容器。通常,容器不需要 root 訪問(wèn)主機(jī)環(huán)境,因此使用 root 違反了最小特權(quán)原則。同樣,–privileged 標(biāo)志繞過(guò)重要的安全控制。
不要啟用可寫文件系統(tǒng):容器通常是短暫的。啟用可寫文件系統(tǒng)為攻擊者編寫和執(zhí)行惡意代碼創(chuàng)造了可能性。
集中和自動(dòng)化可見性和策略執(zhí)行:手動(dòng)監(jiān)控和保護(hù)容器是不可擴(kuò)展的。它還容易出現(xiàn)人為錯(cuò)誤。企業(yè)應(yīng)該盡可能利用工具來(lái)集中和自動(dòng)化容器安全和策略的可見性。
有效的容器運(yùn)行時(shí)安全需要整體方法
容器運(yùn)行時(shí)安全性并不存在于真空中。例如,IaC 安全性和容器運(yùn)行時(shí)安全性是齊頭并進(jìn)的。為了保持強(qiáng)大的安全態(tài)勢(shì),企業(yè)需要實(shí)施在整個(gè)軟件開發(fā)生命周期 (SDLC) 中集成安全性的整體解決方案。這意味著能夠跨云實(shí)現(xiàn)企業(yè)范圍的可見性和安全性并在企業(yè)運(yùn)行容器的任何地方提供安全性的工具對(duì)于現(xiàn)代工作負(fù)載和運(yùn)行時(shí)保護(hù)至關(guān)重要。