網路攻擊者通常會利用容器環境中存在的漏洞,通過在檔案中植入惡意代碼、非法暗鏈等方式篡改檔案內容,進行非法牟利或者惡意商業攻擊等活動。容器檔案防禦功能可即時監控容器內目錄或檔案,並在容器內目錄或檔案被惡意篡改時產生警示或攔截篡改行為,保障容器環境正常運行。本文介紹如何建立檔案防禦規則實現對容器內檔案的安全防護。
使用限制
僅Security Center的旗艦版支援該功能,其他版本不支援。購買和升級Security Center服務的具體操作,請參見購買Security Center和升級與降配。
僅支援防護已接入Security Center的叢集。如需防護自建叢集,您需要先將自建叢集接入Security Center,具體操作,請參見接入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會完全失效。
前提條件
已在需要防護的叢集部署的伺服器中安裝了Security Center用戶端。具體操作,請參見安裝用戶端。
建立規則
登入Security Center控制台。在控制台左上方,選擇需防護資產所在的地區:中國或全球(不含中國)。
在左側導覽列,選擇。
在容器文件防御頁面,單擊新建规则。
在新建规则面板,配置規則參數,單擊下一步。
文件防护目录、进程白名单和文件目录白名单均支援使用萬用字元。規則生效採用完全符合的方式,具體規則如下(以/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/*
执行动作
在下拉式清單中選擇檢測到篡改行為時的執行動作。可選項:
警示:Security Center識別到檔案防護目錄被篡改時,只產生警示。
拦截:Security Center識別到檔案防護目錄被篡改時,產生警示並攔截對應進程。
說明建議您先開啟警示模式。在確定正常情況下業務不會觸發檔案防禦警示後,再開啟攔截模式,以避免誤攔截正常進程。如果正常業務被攔截,您可以將相應進程加入進程白名單。
警示
選擇規則生效的叢集名稱和容器組標籤,單擊確定。
推薦選擇以
app為開頭的容器組標籤。Kubernetes中的標籤(Label)是一種索引值對,用於標記和分類Kubernetes資源(例如Pod、Deployment、Service等)。您可以根據應用情境、功能或用途等自訂標籤,以便更好地管理和操作Kubernetes資源。以app開頭的鍵是一種圍繞應用(application)概念組織資源的方式。關於標籤的更多資訊,請參見推薦使用的標籤。如果下拉式清單中無可選的容器組標籤,您需要手動輸入容器組標籤。如需規則對同一個叢集中的多個容器組標籤或多個叢集生效,您可以單擊操作列的增加配置多條叢集和容器組標籤資訊。
管理規則
建立規則後,在容器文件防御頁面的規則列表中,您可以根據需要執行以下操作:
啟用或禁用規則
開啟或關閉目標規則啟用開關列的開關,可以開啟或關閉該規則。
編輯規則
單擊目標規則操作列的編輯,可以修改規則名稱、規則配置和生效範圍。
刪除規則
重要規則刪除後不可恢複,請您確認無需使用該規則後,再執行刪除操作。
單擊目標規則操作列的刪除,並在提示對話方塊,單擊確定,刪除該規則。
查看警示結果
建立並開啟容器檔案防禦規則後,在檢測響應 > 警報頁面,單擊容器頁簽,並將警示類型選擇為容器主動防禦,警示名稱為檔案防禦的警示即為容器檔案防禦功能產生的警示。根據規則配置的執行動作分別產生以下警示:
執行動作為警示的規則產生的安全警示為未处理狀態,建議您及時處理相關警示。具體操作,請參見查看和處理警示事件。

執行動作為拦截的規則產生的安全警示為拦截成功狀態,Security Center已自動處理了此類警示,您可以在已處理警示列表中查看此類警示。

支援的作業系統和核心版本
作業系統 | 核心版本號碼 |
CentOS(64位) |
|
Alibaba Cloud Linux(64位) |
|
Ubuntu(64位) |
|
Anolis OS(64位) |
|
RHEL(64位) |
|