玩轉Docker要遵守的8條安全準則
無(wú)論大家是否知情,相信已經(jīng)有相當數量的軟件(或者虛擬)容器運行在您的企業(yè)當中,甚至開(kāi)始在生產(chǎn)環(huán)境中發(fā)揮作用。遺憾的是,多數安全團隊仍不了解容器技術(shù)的安全含義,甚至不清楚自家環(huán)境中是否存在容器因素。
本文引用地址:http://dyxdggzs.com/article/201710/367577.htm總體來(lái)講,Docker與CoreOS Rkt等容器技術(shù)能夠對應用進(jìn)行虛擬化——而非完整服務(wù)器。容器具備出色的輕量化優(yōu)勢,且無(wú)需復制訪(fǎng)客操作系統。其靈活、可擴展且易于使用,同時(shí)能夠在單一物理基礎設施內納入更多應用。由于使用共享式操作系統而非單一系統,因此容器往往能夠在瞬間完成引導(虛擬機則普遍需要數秒乃至數分鐘)。
考慮到開(kāi)發(fā)者與DevOps團隊已經(jīng)廣泛接納容器技術(shù),我們必須直面由此帶來(lái)的負面影響——即容器帶來(lái)了新型安全挑戰。
1. 引入存在漏洞的源代碼: 由于容器技術(shù)多為開(kāi)源項目,因此開(kāi)發(fā)者創(chuàng )建的鏡像需要經(jīng)常更新,以備必要時(shí)使用。這意味著(zhù)可能帶來(lái)代碼受控性薄弱、存在漏洞或者引發(fā)意外狀況等問(wèn)題。
2. 增大攻擊面:在指定環(huán)境中,容器的數量往往要多于應用、虛擬機、數據庫乃至其它需要保護的對象。容器的數量越多,對其進(jìn)行追蹤就越是困難,而檢測異常狀況自然也更難以實(shí)現。
3. 缺乏可觀(guān)察性: 容器由容器引擎負責運行,例如Docker或Rkt,同時(shí)與Linux內核相對接。由此帶來(lái)的全新抽象層將導致我們很難發(fā)現特定容器中的活動(dòng)或者特定用戶(hù)在其中執行的操作。
4. Devops速度: 容器的生命周期平均只相當于虛擬機的四分之一。容器能夠立即執行,運行幾分鐘,而后被停止并刪除。這意味著(zhù)惡意人士能夠借此發(fā)動(dòng)閃電打擊,而后馬上消失無(wú)蹤。
5. 容器間干擾: 容器可彼此協(xié)作以用于建立DoS攻擊。例如,反復開(kāi)啟嵌套會(huì )快速導致整體主機設備陷入卡頓并最終宕機。
6. 容器突破主機: 容器可作為root用戶(hù)運行,這使其能夠利用高權限以突破“圍堵”及訪(fǎng)問(wèn)主機操作系統。
7. 橫向網(wǎng)絡(luò )攻擊: 單一容器的破壞可能導致其所在整體網(wǎng)絡(luò )遭遇入侵,特別是在對外網(wǎng)絡(luò )連接且原始嵌套運行未作適當限制的情況下。
考慮到以上幾點(diǎn),我整理出了這份最佳實(shí)踐列表,希望能夠為大家的容器安全保障工作帶來(lái)啟示。
1. 采用綜合性漏洞管理方案。安全漏洞管理工作絕不僅限于掃描鏡像,還需要貫穿整個(gè)容器開(kāi)發(fā)周期進(jìn)行訪(fǎng)問(wèn)控制并配合其它策略,否則很可能導致應用崩潰或者運行時(shí)入侵。嚴格的漏洞管理方案應該利用主動(dòng)性多項檢查完成“從搖籃到墳墓”的全面監控,同時(shí)利用自動(dòng)觸發(fā)機制控制開(kāi)發(fā)、測試、分段與生產(chǎn)環(huán)境。
2. 確保僅在環(huán)境中運行獲準鏡像。在開(kāi)發(fā)環(huán)境中控制所引入之容器鏡像能夠有效縮小攻擊面并預防開(kāi)發(fā)者造成致命安全錯誤。這意味著(zhù)僅使用獲準注冊鏡像及對應版本。舉例來(lái)說(shuō),大家可以將單一Linux發(fā)行版指定為基礎鏡像,并借此最大程度控制潛在攻擊面。
3. 實(shí)施貫穿整個(gè)生命周期的主動(dòng)完整性檢查。作為容器生命周期安全管理中的重要組成部分,我們需要確保注冊表中的容器鏡像具備理想的完整性,同時(shí)在鏡像進(jìn)行變更或者凙時(shí)執行進(jìn)一步控制。鏡像簽名或指紋可提供一套保管鏈,幫助大家輕松驗證容器完整性。
4. 在運行時(shí)強制執行最低權限原則。作為一項基礎性安全最佳實(shí)踐,其同樣適用于容器技術(shù)。在攻擊者利用漏洞時(shí),其通常能夠獲取已入侵應用或進(jìn)程的訪(fǎng)問(wèn)及其它操作權限。確保容器始終僅具備最低權限能夠顯著(zhù)降低入侵后引發(fā)的暴露風(fēng)險。
5. 為容器允許訪(fǎng)問(wèn)或運行的文件及可執行文件設置白名單。白名單能夠幫助大家控制并管理文件與可執行文件,同時(shí)確保其僅在需要特定功能時(shí)得以使用。如此一來(lái),我們的環(huán)境將更加穩定可靠。建立預核準或者白名單機制能夠顯著(zhù)縮小攻擊面,同時(shí)作為基準參考防止容器干擾及容器入侵等問(wèn)題。
6. 在運行中的容器上進(jìn)行網(wǎng)絡(luò )隔離。 維持網(wǎng)絡(luò )隔離性以按照應用或者工作負載進(jìn)行容器集群或者容器區劃分。這一舉措除了屬于高效最佳實(shí)踐外,還屬于受PCI DSS管理的必備容器應用原則,同時(shí)亦可預防橫向攻擊活動(dòng)。
7. 主動(dòng)監控容器活動(dòng)及用戶(hù)訪(fǎng)問(wèn)。 與其它IT環(huán)境一樣,大家同樣需要對容器生態(tài)系統進(jìn)行活動(dòng)與用戶(hù)訪(fǎng)問(wèn)監控,從而快速發(fā)現異?;蛘邜阂饣顒?dòng)。
8. 記錄全部管理用戶(hù)訪(fǎng)問(wèn)活動(dòng)以進(jìn)行審計。雖然強大的用戶(hù)訪(fǎng)問(wèn)控制機制能夠限制大多數人-容器交互操作,但管理員無(wú)疑不在受控范圍之內。因此,我們必須設置日志管理以記錄各類(lèi)管理性操作,從而在必要時(shí)提供取證信息以及明確的審計線(xiàn)索。
盡管相較于其它早期解決方案,容器技術(shù)的安全性水平天然更高。然而由于其誕生時(shí)間還不長(cháng)且已經(jīng)得到廣泛普及,因此我們必須將主動(dòng)檢測與響應方案納入管理體系以保障容器安全。另外,雖然容器安全相關(guān)知識已經(jīng)得到高度重視,但大量容器特定漏洞已經(jīng)開(kāi)始出現,且這種不利趨勢在未來(lái)還將繼續持續下去。
好消息是,容器技術(shù)在發(fā)展之初就能夠將強大的安全自動(dòng)化控制能力結合至容器環(huán)境內。但壞消息是,安全團隊需要針對這一新型技術(shù)做好準備,同時(shí)加強學(xué)習以及早意識到潛在的安全改進(jìn)空間。不過(guò)發(fā)現問(wèn)題正是解決問(wèn)題的必要前提,因此意識到其重要性的朋友們已經(jīng)在保障容器安全方面邁出了重要一步。
評論