後端基礎架構是企業應細心守護的一項企業關鍵資產,因為一旦遭到入侵,很可能將引發供應鏈攻擊。
資安是每家企業在 採用與移轉至雲端技術時都必須考量的重要一環。企業必須優先保護的資源包括:網路、端點及應用程式。此外,還有一項企業應該細心守護的關鍵資產就是後端基礎架構,因為一旦遭到入侵,很可能將引發供應鏈攻擊。
企業通常都會採用端點防護與網路防護產品來保護後端環境的伺服器以及負責儲存與處理大量寶貴資料的內部系統。為了盡可能節省成本,有些企業會將後端基礎架構移轉至雲端,或者採用雲端式解決方案在企業內架設私有雲。
不過這樣的作法要非常小心謹慎,才不會讓企業暴露在駭客攻擊的風險中,例如之前發生的多起導致營運中斷、財務損失及商譽損失的供應鏈攻擊。在「雲端運算時代的供應鏈攻擊:風險、如何防範,以及確保後端基礎架構安全的重要」(Supply Chain Attacks in the Age of Cloud Computing: Risks, Mitigations, and the Importance of Securing Back Ends) 一文當中,我們列舉了各種我們分析過的資安風險,並提出幾項防範技巧給 DevOps 參考,尤其是關於 Jenkins、Docker、Kubernetes 以及 AWS Cloud9 與 Visual Studio Codespaces 等雲端整合開發環境 (IDE)的問題。
Jenkins
後端系統的預設組態設定,即使是在認證啟用的狀況下,還是會帶來相當大的資安風險。軟體開發團隊經常用到的開放原始碼自動化伺服器 Jenkins 就被發現有這樣的風險。
在預設情況下,Jenkins 主伺服器可執行建構作業,允許權限較低的使用者完全掌控 Jenkins 的運算實體與機密、工作組態設定以及原始程式碼。此時完全不會經過認證或存取控制清單 (ACL) 機制。當使用者採用了 Jenkins 的矩陣式安全機制,或許會覺得自己目前的組態設定已經夠安全,但其實並非如此,原因就在於這項能在主伺服器上執行工作的預設能力。要關閉主伺服器上的工作執行能力,可使用 Authorize Project 外掛程式 (plug-in) 然後到「Configure System」頁面上將「Shell executable」設定成「/bin/false」。
開發團隊需要考量的還有另外一點,那就是使用來自社群的外掛程式。看看 Jenkins 所發布的資安公告就能看出,Jenkins 平台大部分的漏洞都與外掛程式有關,而且絕大多數都是不當儲存機密與跳脫沙盒的相關漏洞。
Docker
Docker 是目前最受開發團隊歡迎的 容器引擎,適用於應用程式的開發、測試、包裝及部署。隨著 Docker 受到歡迎,Docker Hub 上也開始出現一些不肖的容器映像,被用於從事各式各樣的攻擊。
光 2020 年就有許多駭客使用不肖的容器映像來從事 虛擬加密貨幣挖礦。這些案例突顯出僅使用 Docker 官方映像以避免潛在資安風險與預防威脅的必要性。
除此之外,暴露在外的 Docker API 也能讓駭客利用使用者的伺服器來散布虛擬加密貨幣挖礦程式。有些駭客也會散布 AESDDoS 殭屍網路惡意程式,近期還出現 Kinsing 惡意程式家族。特權 Docker 容器以及暴露在外的 daemon 連接埠,也可能成為駭客用來執行惡意活動的攻擊管道。
Kubernetes
Kubernetes 是一個可讓開發團隊擴充及管理容器部署環境的協調工具。許多雲端廠商都提供 Kubernetes 服務,例如:Microsoft 的 Azure Kubernetes Service (AKS)、Amazon 的 Elastic Kubernetes Service (EKS) 以及 Google 的 Google Kubernetes Engine (GKE)。採用託管式服務有助於減少一些重大組態設定問題所引發的風險。但由於有些環境無法採用這類服務,因此還是有些架設在企業內的Kubernetes 叢集環境會出現組態設定風險。
對於 Kubernetes 安全來說,API 扮演了相當重要的角色,若叢集內部署有應用程式會干擾 API 伺服器的運作,那該程式就會形成資安上的風險。所以,API 應該只開放給真正需要用到的裝置,這一點可以藉由實施角色導向的存取控管 (RBAC) 與最低授權原則來達成。
當組態設定發生錯誤時,含有漏洞的應用程式就可能成為整個叢集遭到入侵的破口。使用者務必確定只有 kube-api-server 能存取 etcd (一個儲存關鍵資料的分散式機碼/數值資料庫),否則,很可能導致不預期的資料外洩或未經授權的修改。此外,Kubernetes 的 Pod (容器包,Kubernetes 內部的基本部署單位) 應該’以較低的權限執行以避免節點或整個叢集遭到入侵。
AWS Cloud9 與 Microsoft Visual Studio Codespaces
雲端整合式開發環境 (IDE) 整合了軟體開發人員所需的全部功能和工具。AWS Cloud9 與 Microsoft Visual Studio Codespaces 是開發人員最常使用的兩種雲端 IDE 工具。Visual Studio Codespaces 是一個位於連接裝置上的完整應用程式,而 AWS Cloud9 則只有後端服務在連接裝置上,前端服務則位於 AWS 雲端內部。
儘管後端的內部實作方式隨不同雲端 IDE 而定,但它們全都提供一個終端機介面給使用者環境。在多數情況下,使用者對該環境擁有完整控制權,因此有責任確保其組態設定安全。
既然使用者對於連接裝置擁有完整控制權,因此就有責任避免組態設定錯誤的問題。例如,當您在參考某線上教學而將連接埠開放給其他應用程式使用時,可能就會產生這類問題,因為 AWS Cloud9 並不支援外掛。
反觀 Visual Studio Codespaces 則有各種不同的延伸功能可用,但這也可能造成另一個攻擊面。比方說,如果在安裝或使用延伸功能時未執行權限檢查,一旦延伸功能含有後門,系統就可能遭駭客入侵。要降低這類風險,開發團隊務必只安裝值得信賴的外掛程式或延伸功能,並且將開發環境更新到最新版本。
雲端防護解決方案
趨勢科技 Hybrid Cloud Security 混合雲防護解決方案可提供強大、簡化、自動化的防護,讓企業將防護融入 DevOps 流程,並藉由多重的 XGen™ 威脅防禦技巧來保障運算時期的實體、虛擬及雲端工作負載安全。
請閱讀我們的報告「雲端運算時代的供應鏈攻擊:風險、如何防範,以及確保後端基礎架構安全的重要」(Supply Chain Attacks in the Age of Cloud Computing: Risks, Mitigations, and the Importance of Securing Back Ends) 來了解有關這類風險以及開發團隊該如何防範的更多資訊。