網絡攻擊者通常會利用容器環境中存在的漏洞,通過在文件中植入惡意代碼、非法暗鏈等方式篡改文件內容,進行非法牟利或者惡意商業攻擊等活動。容器文件防御功能可實時監控容器內目錄或文件,并在容器內目錄或文件被惡意篡改時產生告警或攔截篡改行為,保障容器環境正常運行。本文介紹如何創建文件防御規則實現對容器內文件的安全防護。
使用限制
僅支持防護已接入云安全中心的集群。如需防護自建集群,您需要先將自建集群接入云安全中心,具體操作,請參見接入K8s自建集群。
部署集群的服務器操作系統和內核版本需要在支持范圍內。支持范圍,請參見支持的操作系統和內核版本。
單個集群中每個容器組標簽對應的防護目錄數(對應的文件防御規則為啟用狀態)不能超過10個。否則,該集群的文件防御將失效。
單個集群內所有啟用狀態的防御規則的容器組標簽去重后不能超過10個,否則,該集群的文件防御將失效。
例如:集群Cluster01有一個容器組Pod01,Pod01上只有一個標簽Label01。為集群Cluster01創建了12條容器文件防御規則Rule01~Rule12。
Rule01中,生效的容器組標簽為集群Cluster01的Label01;
Rule02中,生效的容器組標簽為集群Cluster01的Label02(即使目前沒有容器組使用該標簽,仍可以將該標簽設置為生效容器組標簽);
……
Rule09中,生效的容器組標簽為集群Cluster01的Label09;
Rule10中,生效的容器組標簽為集群Cluster01的Label10;
Rule11中,生效的容器組標簽為集群Cluster01的Label10;
Rule12中,生效的容器組標簽為集群Cluster01的Label10;
此時,對集群Cluster01生效的容器組標簽有12個,但是去重后標簽總數只有10個(Label01~Label10),容器文件防護可以正常生效。
如果您再新建并啟用一條規則:Rule13中,生效的容器組標簽為集群Cluster01的Label10和Label11,此時去重后的標簽總數有11個,容器文件防御對集群Cluster01會完全失效。
前提條件
已在需要防護的集群部署的服務器中安裝了云安全中心客戶端。具體操作,請參見安裝客戶端。
新建規則
登錄云安全中心控制臺。在控制臺左上角,選擇需防護資產所在的區域:中國或全球(不含中國)。
在左側導航欄,選擇 。
在容器文件防御頁面,單擊新建規則。
在新建規則面板,配置規則參數,單擊下一步。
文件防護目錄、進程白名單和文件目錄白名單均支持使用通配符。規則生效采用完全匹配的方式,具體規則如下(以/dir1/test 為例說明,僅說明規則匹配邏輯):
對于/dir1/test,只能匹配/dir1/test,無法匹配/dir1/test/1.html、/dir1/test/dir1/2.html等。
如果文件防護目錄為/dir1/test,則只能保護/dir1/test本身(即刪除或重命名/dir1/test目錄會告警或攔截),不能保護/dir1/test目錄中的子目錄和文件。
如果進程白名單為/dir1/test,只有/dir1/test本身被加入了白名單,即只有可執行文件/dir1/test創建的進程訪問防護目錄時,不會產生告警或攔截;/dir1/test/1.html創建的進程訪問防護目錄時,會產生告警或攔截。
如果文件防護目錄為/dir1/*,文件目錄白名單為/dir1/test,只有/dir1/test目錄本身被加入了白名單,即刪除或重命名/dir1/test的操作,不會產生告警或攔截。修改/dir1/test/1.html中的內容,會產生告警或攔截。
說明所有規則對于文件防護目錄、進程白名單和文件目錄白名單的生效邏輯是類似的,僅對匹配到的路徑生效。
對于/dir1/test*,可以匹配/dir1/test、/dir1/test/1.html、/dir1/test/dir1/2.html、/dir1/test1/1.html、/dir1/test2/2.html等。
通配符也可以出現在路徑中,例如/dir1/test/*.html,可以匹配/dir1/test/index.html、/test/dir1/index.html。
配置項
描述
配置示例
規則名稱
輸入規則名稱。長度為6~50個字符,以字母或者中文字符開頭,可包含數字、下劃線(_)和短劃線(-)。
Cluster01
規則配置
文件防護目錄
設置需要防護的目錄。配置文件防護目錄需滿足以下要求:
以/開始。僅支持輸入一個目錄。
防護目錄路徑長度需小于500字符。
一條規則只能防護一個目錄。如需防護多個目錄。您可以單擊操作的增加配置多條目錄。
單個容器文件防御規則最多支持配置10條防護目錄。
/home/app/label/*
說明如果您需要防護/home目錄及該目錄下的所有子目錄和文件,建議您配置兩條防護目錄:
/home
/home/*
您也可以配置為/home*,相較于上述的兩條規則,/home*還可以防護/home1/、/home2/等目錄。
進程白名單
設置可以修改防護目錄的進程名單和可以被修改的文件目錄,加入白名單的進程修改文件或修改文件目錄白名單中的目錄時,不會觸發告警或攔截。配置進程白名單或文件目錄需滿足以下要求:
單個進程或文件目錄長度不超過50個字符。
多個進程或文件目錄用半角分號(;)分隔。
一個文件防護目錄下,最多支持配置10個白名單進程、10個文件目錄白名單。
設置進程白名單和文件目錄白名單應遵循以下原則:
最小權限原則:只有當進程、文件或目錄的訪問對容器的正常運行是必不可少的時候,才將其列入白名單。
精確指定:設置指定的進程、文件和目錄,慎重使用通配符,避免使用過于寬泛的路徑,減少不必要的安全風險。
/bin/cp;/usr/bin/mv;/bin/vi
文件目錄白名單
/home/app/label/logs/*
執行動作
在下拉列表中選擇檢測到篡改行為時的執行動作。可選項:
告警:云安全中心識別到文件防護目錄被篡改時,只產生告警。
攔截:云安全中心識別到文件防護目錄被篡改時,產生告警并攔截對應進程。
說明建議您先開啟告警模式。在確定正常情況下業務不會觸發文件防御告警后,再開啟攔截模式,以避免誤攔截正常進程。如果正常業務被攔截,您可以將相應進程加入進程白名單。
告警
選擇規則生效的集群名稱和容器組標簽,單擊確定。
推薦選擇以
app
為開頭的容器組標簽。Kubernetes中的標簽(Label)是一種鍵值對,用于標記和分類Kubernetes資源(例如Pod、Deployment、Service等)。您可以根據應用場景、功能或用途等自定義標簽,以便更好地管理和操作Kubernetes資源。以app
開頭的鍵是一種圍繞應用(application)概念組織資源的方式。關于標簽的更多信息,請參見推薦使用的標簽。如果下拉列表中無可選的容器組標簽,您需要手動輸入容器組標簽。如需規則對同一個集群中的多個容器組標簽或多個集群生效,您可以單擊操作列的增加配置多條集群和容器組標簽信息。
管理規則
新建規則后,在容器文件防御頁面的規則列表中,您可以根據需要執行以下操作:
啟用或禁用規則
打開或關閉目標規則啟用開關列的開關,可以開啟或關閉該規則。
編輯規則
單擊目標規則操作列的編輯,可以修改規則名稱、規則配置和生效范圍。
刪除規則
重要規則刪除后不可恢復,請您確認無需使用該規則后,再執行刪除操作。
單擊目標規則操作列的刪除,并在提示對話框,單擊確定,刪除該規則。
查看告警結果
創建并開啟容器文件防御規則后,在檢測響應 > 安全告警處理頁面,單擊容器頁簽,并將告警類型選擇為容器主動防御,告警名稱為文件防御的告警即為容器文件防御功能產生的告警。根據規則配置的執行動作分別產生以下告警:
執行動作為告警的規則產生的安全告警為未處理狀態,建議您及時處理相關告警。具體操作,請參見查看和處理告警事件。
執行動作為攔截的規則產生的安全告警為攔截成功狀態,云安全中心已自動處理了此類告警,您可以在已處理告警列表中查看此類告警。
支持的操作系統和內核版本
操作系統 | 內核版本號 |
CentOS(64位) |
|
Alibaba Cloud Linux(64位) |
|
Ubuntu(64位) |
|
Anolis OS(64位) |
|
RHEL(64位) |
|