容器防護是指建置資安工具與政策來確保容器內一切都能如預期般運作的流程,涵蓋基礎架構、軟體供應鏈、執行時期以及其他所有層面的保護。
目錄
容器防護為一個持續不斷的流程,而且應與您的開發流程整合,經由自動化來減少手動作業,並延伸到基礎架構的維護與營運。這意味著,您不僅必須保護建構流程的容器映像,還須保護執行時期的主機、平台與應用程式層。將防護融入不斷循環的持續交付生命週期當中,您的企業就能降低風險,減少日益擴大的攻擊面所潛藏的漏洞。
容器防護主要有以下幾個考量層面:
網路資安的目標,就是要確保不論您所建構的是什麼都能持續符合您的規劃來運作,且與您的規劃一致。
認識企業在滿足容器需求時會用到的一些詞彙:Docker®、Kubernetes®、Amazon Web Services™ (AWS) 以及 Microsoft®。
在您開始投入容器防護之前,您應先認識一下該領域的主要廠商。Docker 是容器化市場的領導廠商,提供了一套建構、管理與保護應用程式的容器平台。Docker 讓客戶隨處都能部署傳統的應用程式與最新的微服務。如同其他任何容器平台一樣,您務必確保您已擁有適當的防護。進一步了解 Docker 容器防護。
Kubernetes 是下一個必須認識的重要名詞。Kubernetes 提供了一種可攜、可延伸的開放原始碼平台來處理容器化工作負載與服務。儘管 Kubernetes 內建了一些資安功能,但您仍需要一套專門的資安解決方案來維護您的安全,因為近來針對 Kubernetes 叢集的攻擊越來越多。進一步了解如何保護 Kubernetes。
接下來是 Amazon Web Services (AWS),AWS 深知企業對容器的需求,就是要讓開發人員更快、更一致地推出應用程式。這正是他們提供 Amazon Elastic Container Service (Amazon ECS) 的原因,這是一項可擴充、高效能的容器協調服務,可支援 Docker 容器。有了它,您就不必自己管理您的虛擬機器和容器環境,讓您輕輕鬆鬆就能執行並擴充 AWS 容器化應用程式。但就如同任何其他主流廠商一樣,要妥善發揮該服務的效益,安全是不可或缺的要件。進一步了解 AWS 容器防護。
最後、但同樣重要的是 Microsoft® Azure™ Container Instances (ACI),這套解決方案可讓開發人員在 Microsoft® Azure™ Public Cloud 上部署容器而不需自行執行或管理底層的基礎架構。您只需透過 Microsoft® Azure™ 服務入口就能啟動一個新的容器,Microsoft 會自動配置底層的電腦資源並視需要加以擴充。Azure Container Instances 可提供絕佳的速度與靈活優勢,但卻需要妥善防護才能徹底發揮其完整效益。進一步了解如何保護 Microsoft Azure Container Instances。
現在,您對各個主要環節已經有所了解,接下來讓我們看看該如何保護它們。
要確保容器主機的安全,首先要為容器挑選一套作業系統,可能的話,盡量採用一套專為執行容器而設計的分散式作業系統。若您使用的是標準 Linux® 版本或 Microsoft® Windows®,您或許該停用或移除一些不必要的服務,並對作業系統整體進行一番強化,然後再增加一層額外的資安防護與監控工具來確保主機隨時依照您預期的方式運作,例如應用程式控管與入侵防護 (IPS) 就是不錯的安全防護。
當您的容器在營運環境上線運作時,它需要與其他容器和資源互動,這些內部通訊流量必須受到監控與保護,以確保所有來自您容器的網路流量都經過 IPS 檢查,而這會影響您部署資安控管的方式。因為您不會在網路邊境部署少數幾套超大型的傳統 IPS 引擎,而是在每一台主機上各配置一套 IPS,如此就能有效監控所有流量卻不會嚴重拖慢效能。
當您的容器在營運環境上線運作時,它會不斷為您的應用程式處理資料、產生記錄檔、建立檔案快取等等,您可藉由一些資安控管來確保這些都是正常動作,而非惡意活動。此時,利用即時的容器掃描來防範惡意程式將是您成功的關鍵。
此外,IPS 也能提供一種所謂的「虛擬修補」來達到不錯的防護效果,如果有駭客從遠端攻擊某個漏洞,IPS 引擎可偵測到這些活動並攔截駭客的網路封包來保護您的應用程式。如此一來,您就可以等到下次容器釋出新的版本再來解決其根本的漏洞問題,而不需推送緊急修補更新。
當您將應用程式部署到容器內,您可採用一套執行時期應用程式自我防護 (RASP) 來提供資安上的協助,這類資安控管會在您應用程式的內部程式碼中執行,通常是藉由攔截或勾掛 (hook) 您程式碼中的一些重要呼叫。除了一些像 SQL 監控、相依性檢查與矯正、URL 驗證以及其他控管措施之外,RASP 還能解決資安的最大難題,那就是:發掘問題的根源。
由於這類資安控管是位於應用程式的程式碼內部,因此能協助您找到資安問題到底出在哪一行程式碼。像這樣的情報掌握很難有其他方案可以匹敵,而且能大幅提升您的資安狀況。
負責容器協調的容器管理系統,其資安經常會被人所忽略,任何嚴肅看待容器部署的企業機構,最終都不免要建置兩項關鍵的基礎架構來協助他們管理容器作業:其一是像 Amazon ECS 這樣的私密容器登錄,其二是用來協調容器部署的 Kubernetes。
容器登錄與 Kubernetes 的組合,可讓您自動強制貫徹一套容器品質與資安的標準,不論在容器重新部署至您的環境之前或是過程當中。
容器登錄能簡化容器的共用,有助於團隊善用彼此的開發成果。然而,為了確保每個容器都達到軟體開發及安全的基準,您需要一套自動化掃描工具,在每個容器進入到登錄內之前,預先掃描容器內是否有已知的漏洞、惡意程式以及任何機密資料,如此就能減少後續的問題。
此外,您也希望確保登錄本身安全無虞,因此登錄必須在經過強化的系統或信譽卓著的雲端服務上執行。而且,就算您採用服務的方式,您依然必須了解自己該公同承擔哪些資安責任,並建置一套強大的角色導向防護來控管登錄的存取。
在容器協調方面,一旦 Kubernetes 導入您的環境並開始上線運作之後,它將為您帶來許許多多的優勢,讓您的團隊徹底發揮容器環境的效益。此外,Kubernetes 還能讓您建置各種營運與資安管控措施,例如 Pod (叢集層級資源) 與網路資安政策來強制實施各種措施以達成風險控管要求。
您需要一套容器映像掃描流程來確保您所使用的容器能提供可靠的建構基礎,並防範常見的威脅。這類工具能夠掃描容器的內容,讓您在使用容器來建構應用程式之前預先發掘各式各樣的問題,同時提供容器部署至營運環境之前的最後一道檢查。
只要建置得宜,容器掃描將成為您程式開發流程的一環。這是一個完全自動化的流程,迅速、輕鬆發掘您在開發應用程式與容器時可能造成的任何問題。
駭客已開始將其攻擊目標慢慢移轉到您持續整合/持續交付 (CI/CD) 流程的前期階段。一旦駭客成功入侵了您的軟體建構伺服器、程式碼儲存庫、或程式開發電腦,他們很可能長期潛伏在您的環境當中。因此您需要一套強大的資安控管,且要隨時保持更新。
實施一套強大的存取控管策略來涵蓋整個建構流程,從您的程式碼儲存庫與版本分支策略開始,一路延伸至容器儲存庫。您務必落實最低授權原則,僅開放執行工作所需的必要權限,並且定期檢討存取權限。
要保護容器,您需要一套面面俱到的全方位資安方法,必須確認能滿足企業內所有團隊的需求,確定您的方法能夠自動化以配合您的 DevOps 流程,讓您準時交付,既可迅速推出應用程式,又能確保所有團隊的安全。資安再也不容許被忽視,或是在最後一刻才提出一些必須改變您工作流程的要求。Trend Vision One™ Container Security 可讓您設定資安政策與執行時期掃描規則集、監控漏洞偵測與資安事件,並使用 Artifact Scanner 在執行前預先掃描您的 Kubernetes 叢集。從一開始就建立一套值得信賴的資安控管與自動化流程,既能消除資安疑慮,同時也更容易消彌團隊之間的鴻溝。
Fernando Cardoso 是趨勢科技產品管理副總裁,專精於不斷演進的 AI 與雲端世界。在他職業生涯的一開始,曾擔任過網路與銷售工程師,磨練了他在資料中心、雲端、DevOps 以及網路資安領域方面的技能,而這些領域至今依然能持續激發他的熱情。
容器是一種虛擬化技術,可將應用程式及其相依元件 (程式碼、執行時期元件、系統工具、函式庫以及設定) 封裝到單一可攜式單元中。
容器防護當中最常用到的縮寫是 CVE (常見漏洞與曝險) 以及 CI/CD (持續整合/持續部署)。
保護容器的最佳方法包括:(a) 保護容器內部環境;(b) 採用零信任資安方法;(c) 持續監控環境。
容器防護會利用各式各樣的工具和技術來保護容器化應用程式生命週期的每一步驟:從開發到執行時期。
容器防護的三大基本要素是:保護開發環境、保護底層主機,以及保護容器內的應用程式。
Kubernetes 容器防護的四個 C 就是:雲端 (Cloud)、容器 (Container)、叢集 (Cluster) 以及程式碼 (Code)。全部加起來,就能提供一套四步驟的方法來保護 Kubernetes 容器環境。
容器防護的最佳實務原則包括:保護容器主機、保護容器內的應用程式,以及監控執行時期環境。
容器防護採用了多種不同工具,包括:映像掃描工具、漏洞評估工具、組態設定與合規工具,以及網路與執行時期工具。
防範容器偏離 (drift) 的最佳方式,就是持續監控啟動及使用容器的應用程式。
容器防護的基本建構元素就是:保護開發流程、保護主機、保護映像和應用程式,以及執行時期監控。