容器技術(shù)(尤其是Docker)正繼續(xù)以其自有的方式在企業(yè)中發(fā)展著。它們與其他任何技術(shù)一樣,IT專業(yè)人士們的任務(wù)就是為確保Docker容器的安全性而制定出一份策略。
關(guān)于Docker安全性問題,這里需要指出幾點(diǎn)。首先,在Docker中運(yùn)行容器和應(yīng)用程序意味著要運(yùn)行Docker守護(hù)進(jìn)程,這需要root權(quán)限。但是,這也意味著用戶為這些進(jìn)程提供了進(jìn)入的鑰匙——這正是容器如何向IT安全專業(yè)人士發(fā)出警告的一個(gè)例子。
其他的問題包括容器的靈活性,這可讓它較容易地執(zhí)行容器的多個(gè)實(shí)例。這些容器中有很多都具有著不同的安全補(bǔ)丁等級。此外,雖然經(jīng)常被與虛擬化進(jìn)行比較,但是Docker并不擅長隔離;容器基本上都是分離的。對容器技術(shù)不熟悉的IT專業(yè)人士們并不總是能夠?qū)θ萜鞯拈_發(fā)和生產(chǎn)有著良好的理解。這樣一來,那些管理和確保容器化應(yīng)用程序安全性的員工們就需要快速地學(xué)會這些新技能。
容器的安全模式類似于其他分布式系統(tǒng)的安全模式,但是最好的實(shí)踐和工具都是較新的。例如加密、身份管理以及基于角色的安全措施都能夠?qū)崿F(xiàn)與容器技術(shù)的良好協(xié)作,但是還是有一些在確保容器安全性中發(fā)揮重要作用的新工具和新系統(tǒng)。
確保Docker容器安全性的工具與最佳實(shí)踐
Docker推出的一個(gè)名為Docker Content Trust(DCT)的新功能,它可幫助IT專業(yè)人士確保Docker的安全性。DCT使用了一個(gè)公共密鑰基礎(chǔ)設(shè)施(PKI)的方法,它提供了兩個(gè)不同的密鑰:一個(gè)離線(root)密鑰和一個(gè)標(biāo)記(每次入庫)密鑰,當(dāng)?shù)谝淮伟l(fā)布者推出鏡像時(shí)它可創(chuàng)建和存儲客戶端。
此舉有助于彌補(bǔ)正在使用惡意容器這一最大的漏洞。DCT還生成了一個(gè)時(shí)間戳密鑰,它可保護(hù)系統(tǒng)免受重放攻擊,即運(yùn)行過期的標(biāo)記內(nèi)容。這解決了上面提及容器具有不同安全補(bǔ)丁等級的問題。
為了解決針對容器安全性的問題,包括Docker在內(nèi)的眾多公司都為Docker發(fā)布了安全基準(zhǔn)。這套標(biāo)準(zhǔn)為確保Docker容器的安全性提供了指導(dǎo)。全篇118頁的文檔囊括了部署Docker容器的84個(gè)最佳實(shí)踐以及一個(gè)涉及所有內(nèi)容的檢查清單。
那么,如果你決定自行負(fù)責(zé)確保Docker容器的安全性,但又不知道從何入手,我們在這里為你提供了一些建議:
閱讀上面提及的Docker安全基準(zhǔn)文件。重點(diǎn)關(guān)注與如何部署基于容器的應(yīng)用程序相關(guān)的建議和最佳實(shí)踐。這真的是有助于緩解你的財(cái)務(wù)壓力,認(rèn)真考慮大部分因糟糕設(shè)計(jì)而導(dǎo)致的Docker安全性問題。
考慮你的特定安全性需求。這將促使你選擇正確的工具和方法。很多使用容器技術(shù)的企業(yè)對于他們基于容器的應(yīng)用程序要么安全措施不足,要么安全措施過足。
盡可能多地進(jìn)行測試。容器技術(shù)是新技術(shù),因此我們需要搞清楚哪些是能夠發(fā)揮作用,哪些是無用的,而要做到這一點(diǎn)的唯一方法就是進(jìn)行安全性方面的測試,例如滲透測試。
容器安全性的發(fā)展趨勢可能會與虛擬化安全性一樣。雖然安全性從第一臺虛擬機(jī)部署開始就是一個(gè)問題,但是多年以來積累下來的良好安全性實(shí)踐、架構(gòu)和工具都證明了其有效性。我們相信,Docker容器安全性的問題也同樣能夠得到較好解決。