紅帽Linux命令列漏洞,驚現容器安全隱患

2021-08-21 06:25:03 字數 2000 閱讀 7132

本文作者 gadi naor, alcide公司聯合創始人兼cto。

近期,谷歌安全團隊的felix wilhelm在 red hat linux 及其衍生版(如 fedora 作業系統)的 dhcp 客戶端中發現了乙個嚴重的遠端命令列注入漏洞。該漏洞編號為 cve-2018-1111,可能會使得攻擊者在目標系統上以 root 許可權執行任意命令。

該攻擊利用dynamic host configuration protocal(dhcp)訊息處理中的問題——這是機器自動設定其網路連線的方式。在dhcp客戶端(dhclient)軟體包包含的指令碼中發現了命令注入漏洞,允許攻擊者偽裝成合法的dhcp伺服器,傳送包含惡意命令的特製資料報,而dhcp客戶端可能會毫無疑問地執行這些命令。此漏洞影響紅帽enterpriselinux 6和7以及各種linux衍生發行版,如fedora和centos。

以此漏洞為例,我們可以看到雲提供商與其客戶之間傳統的「責任共享」安全模式對於容器化工作負載來說效率會降低。由於網路外掛程式已經成為在容器之間提供網路連線的標準方式,因此雲提供商沒有加強自己保護容器安全的責任,而當打補丁不足以保護容器化應用程式時,安全和運維團隊就會陷入困境。

在這個新的正規化中,安全和運維團隊必須採用新的工具和策略來確保對容器化環境的完全可見性。

什麼是責任共享模式?

雲提供商為其客戶提供「責任共享」模式:雲提供商負責基礎設施和管理雲的安全性。客戶負責保護在雲中執行的所有內容。你擁有對所有資料、應用程式和作業系統的完全所有權和控制權,那麼你有責任保護它們。

aws fargate和azure aci等服務將上述模型擴充套件到容器世界。使用容器即服務時,作為kubernetes工作節點的container主機是你的「容器管理程式」,container network inte***ce是你的網路**提供程式。

我們會發現責任界限變得模糊,因為你的環境與提供商的環境之間的界限開始分崩離析。在傳統的責任共享模型下,雲提供商負責保護容器和其他環境之間的網路。但是,正如我們在上面的例子中看到的那樣,情況不再總是如此——這讓安全和運維團隊別無選擇,只能承擔更大的責任。

container network inte***ce和cve-2018-1111

container network inte***ce(cni)是乙個cncf專案,由乙個規範和多個庫組成,用於編寫外掛程式以配置linux容器中的網路介面。該框架僅關注容器的網路連線,並且大量用於容器化部署。kubernetes、docker以及使用docker網路協調容器網路的任何東西都支援多個cni外掛程式。

在這個豐富的控制工作負載與主機網路之間的連線的網路外掛程式生態系統中,運維和安全團隊可能很難確保正在執行的工作負載不會利用網路從容器橫向移動(換句話說就是東西移動)到主機本身甚至是鄰近容器主機。

有dhcp客戶端漏洞的cve-2018-1111是潛在容器逃逸的另乙個例子。它可能會讓容器中的錯誤**直接在容器主機上執行命令。防止此類攻擊取決於底層容器網路介面外掛程式的開箱即用分段和隔離功能。在容器主機上執行的任何本地網路服務(例如dhcp、dns和ntp)都可能是基於網路的攻擊的常見嫌疑物件,這些攻擊可以促進東西向容器的遷移和許可權提公升。

顯然,ops和devops必須將可用的補丁應用於其資料中心和雲中的所有易受攻擊的主機,以防止攻擊者接管計算基礎設施。

但是,負責保護現代資料中心的團隊應該牢記,定期將安全補丁應用於基礎設施的做法很快就會失效。還應該與虛擬工作負載(如虛擬機器、容器甚至連線到網路的無伺服器功能)的執行時保護相輔相成。此工作負載級別的執行時保護必須實施策略,以最大限度地減少網路堆疊中的意外連線路徑,並隔離受損的虛擬工作負載。

完美情況下,雲提供商就提供了大多數的這些功能。但是,運維和安全團隊無法再確定確切的責任共享從**開始,在**結束。實現更高安全性的最佳方法是投資工具和程式,以確保更好地可見容器化環境,並提供作為雲提供商產品之外附加層的工作負載級的保護。

編譯:karen lee

Linux命令列基礎 常用的命令列

符號 符號含義 使用者目錄 也稱作家目錄 根路徑,即整個系統 所在當前目錄 當前目錄的上一級目錄 提示可以輸入命令列了 回車 carriage return 執行輸入的命令列 絕對路徑 開頭的路徑就是絕對路徑,不是這種開頭的就是相對路徑。命令列命令列的英文全寫 中文含義 pwdprint worki...

Linux命令列svn命令

1 linux命令列下將檔案checkout到本地目錄 svn checkout path path是伺服器上的目錄 例如 svn checkout svn 如果第一次使用svn,要使用 使用者名稱 密碼 svn checkout svn user password 簡寫 svn co 2 linu...

Linux命令列與命令

linux的命令是很重要的工具,也往往是初學者最大的瓶頸。有朋友用了很長時間的linux圖形介面,基本不使用命令列輸入命令執行,所以裝的linux最終成了擺設。這裡總結一些命令列下常使用的命令,希望能有用。什麼是命令 我們通常所說的linux命令列是執行在終端 terminal 的shell 閱讀l...