Tetragon基于 eBPF 的安全可觀測性 & 運行時增強組件
Tetragon 是 Cilium 開源的基于 eBPF 的安全可觀察性和運行時增強組件。
Tetragon 能夠檢測并對重要的安全事件做出反應(yīng),例如
- 流程執(zhí)行事件
- 系統(tǒng)調(diào)用活動
- I/O 活動,包括網(wǎng)絡(luò)和文件訪問
在 Kubernetes 環(huán)境中使用時,Tetragon 是 Kubernetes 感知的 —— 也就是說,它了解 Kubernetes 身份,例如命名空間、Pod 等——因此可以針對單個工作負(fù)載配置安全事件檢測。
功能概述
eBPF 實時
Tetragon 是一個運行時安全實施和可觀察性工具。這意味著 Tetragon 直接在內(nèi)核的 eBPF 中應(yīng)用策略和過濾。它直接在內(nèi)核中執(zhí)行過濾、阻止和對事件做出反應(yīng),而不是將事件發(fā)送到用戶空間代理。
對于可觀察性用例,直接在內(nèi)核中應(yīng)用過濾器會大大減少觀察開銷。通過避免昂貴的上下文切換和喚醒,特別是對于高頻事件,例如發(fā)送、讀取或?qū)懭氩僮?,eBPF 減少了所需的資源。
相反,Tetragon 在 eBPF 中提供了豐富的過濾器(文件、套接字、二進(jìn)制名稱、命名空間/功能等),允許用戶在其特定上下文中指定重要且相關(guān)的事件,并僅將這些事件傳遞給用戶空間代理。
eBPF 靈活性
Tetragon 可以連接到 Linux 內(nèi)核中的任何函數(shù)并過濾其參數(shù)、返回值、Tetragon 收集的有關(guān)進(jìn)程的相關(guān)元數(shù)據(jù)(例如,可執(zhí)行文件名稱)、文件和其他屬性。通過編寫跟蹤策略,用戶可以解決各種安全性和可觀察性用例。
Tetragon 允許在內(nèi)核深處掛鉤,用戶空間應(yīng)用程序無法操作數(shù)據(jù)結(jié)構(gòu),避免了系統(tǒng)調(diào)用跟蹤的常見問題,即數(shù)據(jù)被錯誤讀取、被攻擊者惡意更改或由于頁面錯誤和其他用戶/內(nèi)核邊界錯誤而丟失。許多 Tetragon 開發(fā)人員也是內(nèi)核開發(fā)人員。通過利用這個知識庫,Tetragon 創(chuàng)建了一組跟蹤策略,可以解決許多常見的可觀察性和安全用例。
eBPF 內(nèi)核感知
Tetragon 通過 eBPF 可以訪問 Linux 內(nèi)核狀態(tài)。然后,Tetragon 可以將這個內(nèi)核狀態(tài)與 Kubernetes 感知或用戶策略相結(jié)合,以創(chuàng)建由內(nèi)核實時執(zhí)行的規(guī)則。這允許注釋和強制執(zhí)行進(jìn)程命名空間和功能、進(jìn)程的套接字、進(jìn)程文件描述符到文件名等等。
例如,當(dāng)應(yīng)用程序更改其權(quán)限時,我們可以創(chuàng)建一個策略來觸發(fā)警報,甚至在進(jìn)程有機(jī)會完成系統(tǒng)調(diào)用并可能運行其他系統(tǒng)調(diào)用之前終止該進(jìn)程。
開發(fā)指南
本地開發(fā)入門可以參考開發(fā)指南。
