針對操作系統(tǒng)、內(nèi)核安全,聯(lián)通云操作系統(tǒng)團隊開發(fā)了的一個基于 eBPF 的 Linux 安全防護系統(tǒng) safeguard,可以實現(xiàn)安全操作的審計攔截及安全防護功能。項目采用 libbpfgo 庫,使用 go 語言實現(xiàn)頂層控制。safeguard 在聯(lián)通云 CULinux 操作系統(tǒng)中已得到應(yīng)用,目前項目已在 openEuler 社區(qū)開源[1]。
簡介
KRSI (eBPF+LSM)
eBPF 是擴展的伯克利包過濾器(extended Berkeley Packet Filter)的縮寫,它是一種可以在內(nèi)核空間運行沙箱化程序的技術(shù)。eBPF 可以在不修改或重新編譯內(nèi)核、插入內(nèi)核 KO 的情況下,動態(tài)地增加內(nèi)核的能力。通過 eBPF,可以實現(xiàn)網(wǎng)絡(luò)、觀測、跟蹤和安全等多種用例。
LSM 是 Linux 安全模塊(Linux Security Module)的縮寫,它是一種提供可插拔的安全框架機制,可以讓不同的安全模塊在內(nèi)核中注冊并實施自定義的安全策略。LSM 提供了一系列的鉤子(hooks),可以在系統(tǒng)調(diào)用或其他安全相關(guān)事件發(fā)生前后執(zhí)行安全檢查。
eBPF 和 LSM 可以結(jié)合使用,形成一種基于 eBPF 的 LSM 擴展,叫做 KRSI (eBPF+LSM)。它允許用戶在運行時使用 eBPF 程序?qū)崿F(xiàn)和執(zhí)行自定義的安全策略和審計規(guī)則。它的優(yōu)點是不需要修改或重新編譯內(nèi)核,也不需要配置現(xiàn)有的 LSM 模塊。KRSI (eBPF+LSM) 的工作原理是將 eBPF 程序加載到 LSM 鉤子中,然后在調(diào)用路徑中執(zhí)行這些程序,對系統(tǒng)資源的訪問進行檢查和控制。
safeguard 架構(gòu)及功能介紹
safeguard 基于 KRSI (eBPF+LSM) 實現(xiàn),整體架構(gòu)采取了 C/S 架構(gòu),分 Agent、Server、UI 等幾個組件,功能涵蓋了審計控制、行為分析、主機管理、風險管理、入侵檢測等(詳細介紹參考下文)。
圖1 架構(gòu)圖
應(yīng)用場景
safeguard 是一種基于 KRSI(eBPF+LSM) 的 Linux 安全審計和管控解決方案,可以實現(xiàn)對系統(tǒng)的全面監(jiān)控和保護。下面是一些可能的應(yīng)用場景:
表1 應(yīng)用場景
項目功能
審計控制
1. 文件
追蹤文件系統(tǒng)的活動,包括文件的打開、關(guān)閉、讀寫、刪除等。
修改文件系統(tǒng)的行為,例如攔截某些文件操作,或者實現(xiàn)自定義的安全策略。
安全策略:
①攔截或重定向文件(比如密鑰文件、用戶賬號文件或需要安全防護的各種類型文件等)操作,使用eBPF來攔截對敏感文件的讀寫操作,或者重定向?qū)δ承┪募脑L問到其他位置。 ② 實現(xiàn)自定義的訪問控制,使用 eBPF 來檢查對文件的訪問者的身份、權(quán)限、環(huán)境等信息,然后根據(jù)一些規(guī)則來允許或拒絕訪問。 ③實現(xiàn)自定義的審計和監(jiān)控,使用 eBPF 來記錄對某些文件的操作的詳細信息,如操作者、時間、內(nèi)容等,并將這些信息輸出到日志。
2. 進程:
追蹤進程的生命周期,例如進程的創(chuàng)建、終止、調(diào)度、上下文切換等。
修改進程的行為,例如注入或修改某些系統(tǒng)調(diào)用,或者實現(xiàn)自定義的調(diào)度策略。
3. 網(wǎng)絡(luò):
追蹤網(wǎng)絡(luò)的活動,例如網(wǎng)絡(luò)包的發(fā)送、接收、轉(zhuǎn)發(fā)、丟棄等。
修改網(wǎng)絡(luò)的行為,例如過濾或重寫某些網(wǎng)絡(luò)包,或者實現(xiàn)自定義的路由策略。
行為分析
1. 收集并分析文件系統(tǒng)的性能、熱點、異常等。(選擇合適的 eBPF 程序類型和掛載點,例如,使用kprobes 或 tracepoints 來追蹤文件系統(tǒng)相關(guān)的內(nèi)核函數(shù)或事件,如 vfs_read, vfs_write, ext4_sync_file 等。)
2. 收集信息來分析進程的資源消耗、狀態(tài)變化、依賴關(guān)系等(do_fork, do_exit, schedule 等)。
3. 收集信息,分析網(wǎng)絡(luò)的流量、延遲、丟包率、擁塞等(使用 tc 或 xdp 來追蹤網(wǎng)絡(luò)包的發(fā)送、接收、轉(zhuǎn)發(fā)、丟棄等事件)。
主機管理
從安全角度自動化構(gòu)建細粒度資產(chǎn)信息,支持對業(yè)務(wù)層資產(chǎn)精準識別和動態(tài)感知,讓保護對象清晰可見。功能包括:賬號展示、端口列表、進程列表等。賬號展示可以列出系統(tǒng)管理員及用戶賬號,端口列表展示了系統(tǒng)開放的網(wǎng)絡(luò)端口,進程列表展示系統(tǒng)內(nèi)運行的各種進程。
風險管理
精準發(fā)現(xiàn)內(nèi)部風險,快速定位問題并有效解決安全風險,提供詳細的資產(chǎn)信息、風險信息以供分析和響應(yīng)。功能包括:漏洞檢測、安全補丁、弱密碼、系統(tǒng)風險、賬號風險等。漏洞掃描提供了系統(tǒng)的安全漏洞掃描功能,安全補丁功能會提示系統(tǒng)是否需要更新某些補丁,弱密碼可以掃描出系統(tǒng)中存在的簡單密碼并提示修改,系統(tǒng)風險、賬號風險展示了系統(tǒng)中可能出現(xiàn)的其他系統(tǒng)及賬號相關(guān)的其他風險。
入侵檢測
提供多錨點的檢測能力,能夠?qū)崟r、準確的感知入侵事件,發(fā)現(xiàn)失陷主機,并提供對入侵事件的響應(yīng)手段。功能包括:暴力破解、異常登錄、反彈 shell 、本地提權(quán)、后門檢測,Web 后門等。檢測系統(tǒng)的可疑事件,發(fā)現(xiàn)暴力破解,異常登錄,反彈 shell 行為,或者存在風險的本地提權(quán)行為,并提供后門檢測,Web 后門掃描功能。
發(fā)布路線
項目目前已經(jīng)實現(xiàn)了審計控制及部分行為分析模塊功能,整體規(guī)劃如下:
表2 項目整體規(guī)劃
審核編輯:湯梓紅
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1372瀏覽量
40275 -
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209322 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6801瀏覽量
123282 -
安全防護
+關(guān)注
關(guān)注
0文章
60瀏覽量
13512
原文標題:safeguard—基于 KRSI (eBPF+LSM)的 Linux 安全防護系統(tǒng)
文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論