VM 虛擬機器承襲了與其實體伺服器相同的資安風險,而容器(container)的安全問題,在某種程度上也與其所包含的元件有關,換言之,基於有漏洞之 mySQL 而建立的容器也會有安全疑慮。
編譯/酷魯
雖然 VM、裸機安裝,還是容器其資安關注點與對策在本質上都大同小異。但容器部署與相關工具給那些負責執行應用與服務的團隊帶來特定的安全挑戰,無論是手動將選擇容器的應用程式拼湊在一起,還是透過大規模編排而運行在生產環境中皆如此。
在容器中最耳熟能詳的莫過於已有十多年歷史的 Kubernetes,它最初被設計為一種容器部署的管理工具,如今已發展成全球大規模雲端原生應用的核心編排平台,而且這個僅次於 Linux 的第二大開源專案已與雲端原生應用密不可分。根據 Pure Storage 發布的《Voice of Kubernetes Expert Research》研究報告,有 80% 的組織認為,在未來五年內,他們的大多數新應用都將建立在雲端原生平台上。
[ 加入 CIO Taiwan 官方 LINE 、 Facebook 與 IG,與全球CIO同步獲取精華見解 ]
儘管這些應用在部署上更加靈活與便利,但同時也必須確保容器及其運行環境的安全性。然而,這方面的發展與成熟程度不未如預期。因此,除了要了解當前容器存在什麼安全問題外,還必須釐清容器風險存在的原因,以及可行的安全防護措施與方案有哪些。
最常見的容器安全風險
隨著 Docker 執行時期漏洞攻擊(runtime exploit)的揭露,凸顯出雲端原生與其他新興平台已然成為駭客容易下手目標的事實,它最可怕之處就是,駭客可藉此攻擊任何運行容器的主機系統。此外,該事實也反映了當前容器的確存在許多既有與獨有的安全問題。
在容器化的環境中,當前最常見的安全風險主要集中以下幾個層面:
1. 容器映像檔漏洞
根據 Verizon 2024年《資料外洩調查報告》(2024 Data Breach Investigations Report),14% 的資安入侵事件是從漏洞作為切入點開始的。現有的容器映像檔也不例外,其中也潛藏著尚未修補的漏洞。企業必須清楚掌握容器中存在哪些漏洞,以及受影響的映像檔數量。一旦列出所有受影響的映像檔,就能判斷哪些映像檔與部署存在安全風險而必須進行更新。
2. 錯誤配置
當前複雜的應用往往由多個容器組成,一旦設定配置上有任何錯誤)就可能導致不必要的權限開放,進而擴大攻擊面。例如,儘管從容器取得主機的 root 權限並不容易,但以 root 身分執行 Docker 仍是極其常見的做法。
前述所提及的容器漏洞問題並非源自軟體本身的缺陷,而是由於軟體與基礎設施元件設定錯誤所導致的。這類設定疏失所造成的資安風險,與軟體漏洞的威脅等量齊觀。根據 Verizon 2024年《資料外洩調查報告》指出,約有 13% 的資安問題可追溯至錯誤設定。
3. 惡意容器映像檔
2022 年,Sysdig 在 Docker Hub 中發現超過 1,600個被識別為惡意的映像檔,此外還有許多儲存在儲存庫中的容器帶有硬編碼的雲端憑證、SSH 金鑰與 NPM 令牌。由於從公開容器註冊中心拉取映像檔的過程本身不透明,加上容器部署的便利性,導致應用程式很容易由先天不安全、甚至惡意的元件所組成。
4. 地下容器(Shadow container)問題
容器安全中的最大風險來自於未被納入資產清單的工作負載。當開發人員在容器中實作應用程式時,應在映像檔內包含預設的安全機制。但若未落實這一步,容器化應用就可能在缺乏全面監管或資安團隊檢查潛在問題的情況下運行。隨著時間推移,這種「地下容器」(Shadow container)部署會在相關的映像檔中累積更多過時軟體或錯誤設定。長遠來看,這會給開發者帶來更多的風險與更大的維護負荷。
5. 太過複雜的編排層
對於大型專案而言,像 Kubernetes 這類容器編排工具有可能會擴大攻擊面,這通常是拜配置錯誤和高度複雜性所賜。根據企業 Kubernetes 管理平台方案商 D2iQ 在 2022 年的調查,僅 42%在 Kubernetes 上執行的應用最終成功進入生產環境,其中一部分原因即為管理大型叢集的困難與學習門檻太高。
6. 部署優先思維問題
對開發人員而言,他們的目標是更快速地部署更新,任何阻礙都會影響他們的關鍵績效指標(KPI)。然而,這種對「速度」的高度依賴,卻可能讓資安漏洞潛入整個軟體交付流程。在訴求降低風險之資安團隊與開發團隊的拉鋸戰中,往往是開發方佔上風,因為他們的工作與營收直接掛鉤。因此,資安團隊必須與開發人員合作,將資安方法整合進整體軟體開發生命週期(SDLC)中。如此一來,便能在維持開發效率的同時,持續控管風險。
7. 勒索軟體駭客開始鎖定容器
雲端原生安全平台Twistlock 解決方案架構師 Neil Carpenter 表示,勒索軟體是將攻擊變現化的一種方式,勒索軟體駭客會選擇最容易下手的目標,他們把攻擊目標從早期桌機、逐步擴散到伺服器環境。如今他們在容器世界裡,不是找到一個內含未經身分認證端點的 Kubernetes 叢集,就是發現一台可以經由網際網路存取的 docker 伺服器上存在未修補的漏洞,容器如今似乎已成為最新極具吸引力的下手目標。
換言之,當前勒索軟體駭客可以直接把加密貨幣挖礦程式部署到正在執行的環境上,並設定將該程式運行在 Kubernetes 叢集上的排程,這樣駭客可以更「優雅」將攻擊變現化。
[ 延伸閱讀:臉部融合攻擊偵測(MAD)成為 AI 資安新戰場 ]
總而言之,面對容器安全,應先確定責任歸屬問題,但責任鏈應該不僅止於回溯到應用程式開發者身上,作為流程的一部分,也應該將業務單位(line of business)納入其中。至於資安團隊,不能僅僅列舉所有容器應用漏洞與錯誤設定清單,而是利用風險數據來標示哪些問題最緊急、最需優先處理,協助開發者正確分配資源。再者,開發者也可將資安機制納入 CI/CD 流程、確保容器映像檔遵循安全部署準則,也可減少重工與延誤。
(本文授權非營利轉載,請註明出處:CIO Taiwan)