解決隔離和容器通訊、操作和開(kāi)發(fā)之間的內(nèi)在張力意味著所采取的措施既要控制容器內(nèi)部相互影響的程度,也要限制通過(guò)插孔或開(kāi)放的端口進(jìn)入到Docker 群組的容器的數(shù)量。
3.加強(qiáng)用戶訪問(wèn)控制
直到最近,根在默認(rèn)情況下訪問(wèn)Docker主機(jī)是一個(gè)非此即彼的命題,使安全專員對(duì)此十分焦慮。雖然限制訪問(wèn)容器主機(jī)根賬戶花費(fèi)了他們大量的精力——并且推動(dòng)了Docker在系統(tǒng)中刪除特權(quán)訪問(wèn)這一新功能的投資——對(duì)安全更廣泛的關(guān)注是對(duì)特權(quán)賬戶的強(qiáng)制訪問(wèn)控制和部署管道的操作運(yùn)行。顯而易見(jiàn),擴(kuò)大創(chuàng)建實(shí)用有效的訪問(wèn)控制規(guī)模很有益處:可以保證問(wèn)責(zé)性和操作一致性。
問(wèn)責(zé)需要一定的能力以便查明是什么改變了容器的設(shè)置或配置或下載圖像或在生產(chǎn)中創(chuàng)建了一個(gè)容器。擁有通用的根訪問(wèn)權(quán)限之后,要確定是什么做出了改變幾乎是不可能的。即使根訪問(wèn)可能是開(kāi)發(fā)人員在工作過(guò)程中所需要的最簡(jiǎn)單的一種訪問(wèn)方式,這也意味著他們有太多的訪問(wèn)權(quán)限。此外,得到訪問(wèn)根賬戶權(quán)限的攻擊者就相當(dāng)于得到了任意訪問(wèn)容器的權(quán)限,包括其數(shù)據(jù)和程序。
應(yīng)用集中管理約束條例使用戶可以基于自己的角色做出更改或命令,而不是他們?cè)L問(wèn)根賬戶的能力,使企業(yè)能夠定義和執(zhí)行標(biāo)準(zhǔn)流程。實(shí)現(xiàn)職責(zé)分離訪問(wèn)和基于用戶角色的命令約束條例是確保通過(guò)軟件開(kāi)發(fā)生命周期的基礎(chǔ)。
如果不采取集中的方式,很難確定每個(gè)容器中不同的用戶和其對(duì)應(yīng)的不同的特權(quán)是否合適,與其職能作用和最小訪問(wèn)特權(quán)是否一致。
4.硬化主機(jī)
容器化最重要的好處之一就是它獨(dú)立于應(yīng)用程序,可以在任何地方獨(dú)立運(yùn)行而不依賴于任何自給系統(tǒng)。
一個(gè)重要的意義是有了專門的工具來(lái)限制哪些是自給系統(tǒng)可以訪問(wèn)和使用的,哪些是不可以訪問(wèn)和使用的。對(duì)照組和命名空間是關(guān)鍵容器的隔離元件。對(duì)照組決定一個(gè)容器可以使用多少共享內(nèi)核和系統(tǒng)資源。命名空間決定了一個(gè)容器可以“查看”或有效確定容器被授權(quán)訪問(wèn)哪些資源。這些組件的設(shè)計(jì)目標(biāo)非常明確:無(wú)論你想在哪個(gè)服務(wù)器中運(yùn)行多種服務(wù),這些服務(wù)彼此盡可能相互隔離,這是確保安全性和穩(wěn)定性至關(guān)重要的一點(diǎn)。
嚴(yán)苛的細(xì)節(jié)確保了對(duì)照組和命名空間中配置的恰當(dāng)性和一致性,并且保證了配置和安全政策相符。
盡管對(duì)照組和命名空間隔離可以用來(lái)限制對(duì)容器中內(nèi)核資源的訪問(wèn),但它并不能有效地隔離容器的執(zhí)行路徑。資源隔離對(duì)檢測(cè)和預(yù)防濫用特權(quán)或打破容器中的“箱”等擴(kuò)大化攻擊無(wú)效。
在運(yùn)行防御和容器分析過(guò)程中缺少分層法來(lái)保證對(duì)其的有效控制和可見(jiàn)性,由于配置錯(cuò)誤或攻擊者采取明確的行動(dòng)操控命名空間,容器的安全性很容易就被破壞了。例如,容器環(huán)境下拒絕服務(wù)攻擊與“流氓”容器消耗更多的內(nèi)核資源和擠占其他過(guò)程并無(wú)二致。
5.容器安全過(guò)程的自動(dòng)化
在安全性領(lǐng)域,將安全的理念落實(shí)到實(shí)際操作中去——而且不僅僅是隨后在書(shū)面上描摹它——像是一個(gè)遙不可及的夢(mèng)想。盡管在DeVops和安全團(tuán)隊(duì)中存在著一些領(lǐng)域或文化分歧,將安全滲透到容器的創(chuàng)建、傳送和運(yùn)行的過(guò)程中毫無(wú)疑問(wèn)是企業(yè)最感興趣的。這不僅會(huì)使內(nèi)部應(yīng)用程序更加安全,也會(huì)調(diào)動(dòng)DeVops和安全團(tuán)隊(duì)的積極性,培養(yǎng)更具協(xié)作性的文化。
由于安全團(tuán)隊(duì)往往沒(méi)有意識(shí)到導(dǎo)致容器在生產(chǎn)中運(yùn)行的過(guò)程,重要的是要涉及到他們工作流程的定義和促進(jìn)知識(shí)的轉(zhuǎn)化。因此,他們可以給適當(dāng)?shù)目刂坪蛯?shí)踐提供指導(dǎo)原則以滿足其安全標(biāo)準(zhǔn)和審計(jì)要求。
換句話說(shuō),DeVops應(yīng)該做它們最擅長(zhǎng)的事情:自動(dòng)化?;谌萜鞯膽?yīng)用程序開(kāi)發(fā)過(guò)程已經(jīng)實(shí)現(xiàn)高度自動(dòng)化。使用CI/CD和業(yè)務(wù)流程工具是在容器的整個(gè)生命周期中保障安全的最佳實(shí)踐,這使建立安全管理框架的過(guò)程變得透明和相對(duì)安全簡(jiǎn)單。它將建立一個(gè)高度安全基線,減少了對(duì)后續(xù)安全工作的需要,也降低了安全成為部署障礙的可能性。
我們都知道當(dāng)安全不是優(yōu)先級(jí)時(shí)發(fā)生了什么,所以除了回滾以外還有什么其他的選擇嗎?容器為正確地解決這一問(wèn)題提供了一個(gè)很好的機(jī)會(huì),因?yàn)樗麄円呀?jīng)完全實(shí)現(xiàn)了自動(dòng)化。將安全過(guò)程自動(dòng)化到可操作的工作流程中可能是一個(gè)新的安全措施,但是這并不是第一次在容器中出現(xiàn),其自動(dòng)化已經(jīng)成為所有方面的業(yè)務(wù)(網(wǎng)絡(luò)、存儲(chǔ)等)的規(guī)范。安全僅僅成為另一種滿足自動(dòng)化的要求。