作者 | Catalin Cimpanu
譯者 | qhwdw ? ? ? ? ? 共計翻譯:99 篇 貢獻時間:139 天
開源社群的人們正在致力於一個 Linux 內核的新專案,它可以讓核心更安全。命名為 Linux 核心執行時防護(LKRG),它是一個在 Linux 核心執行執行時完整性檢查的可載入核心模組(LKM)。
它的用途是檢測對 Linux 內核的已知的或未知的安全漏洞利用企圖,以及去阻止這種攻擊企圖。
LKRG 也可以檢測正在執行的行程的提權行為,在漏洞利用程式碼執行之前殺掉這個執行行程。
這個專案開發始於 2011 年,首個版本已經釋出
因為這個專案開發的較早,LKRG 的當前版本僅僅是透過核心訊息去報告違反核心完整性的行為,但是隨著這個專案的成熟,將會部署一個完整的漏洞利用緩減系統。
LKRG 的成員 Alexander Peslyak 解釋說,這個專案從 2011 年啟動,並且 LKRG 已經經歷了一個“重新開發”階段。
LKRG 的首個公開版本是 LKRG v0.0,它現在可以從 這個頁面[1] 下載使用。這裡[2] 是這個專案的維基,為支援這個專案,它也有一個 Patreon 頁面[3]。
雖然 LKRG 仍然是一個開源專案,LKRG 的維護者也計劃做一個 LKRG Pro 版本,這個版本將包含一個專用的 LKRG 發行版,它將支援對特定漏洞利用的檢測,比如,容器洩漏。開發團隊計劃從 LKRG Pro 基金中提取部分資金用於保證專案的剩餘工作。
LKRG 是一個核心模組而不是一個補丁。
一個類似的專案是附加核心監視器(AKO),但是 LKRG 與 AKO 是不一樣的,因為 LKRG 是一個核心載入模組而不是一個補丁。LKRG 開發團隊決定將它設計為一個核心模組是因為,在核心上打補丁對安全性、系統穩定性以及效能都有很直接的影響。
而以核心模組的方式提供,可以在每個系統上更容易部署 LKRG,而不必去修改核心的核心程式碼,修改核心的核心程式碼非常複雜並且很容易出錯。
LKRG 核心模組在目前主流的 Linux 發行版上都可以使用,比如,RHEL7、OpenVZ 7、Virtuozzo 7、以及 Ubuntu 16.04 到最新的主線版本。
它並非是一個完美的解決方案
LKRG 的建立者警告使用者,他們並不認為 LKRG 是一個完美的解決方案,它提供不了堅不可摧和 100% 的安全。他們說,LKRG 是 “設計為可旁通的”,並且僅僅提供了“多元化安全” 的一個方面。
雖然 LKRG 可以防禦許多已有的 Linux 核心漏洞利用,而且也有可能會防禦將來許多的(包括未知的)未特意設計去繞過 LKRG 的安全漏洞利用。它是設計為可旁通的(儘管有時候是以更複雜和/或低可利用為代價的)。因此,他們說 LKRG 透過多元化提供安全,就像執行一個不常見的作業系統核心一樣,也就不會有真實執行一個不常見的作業系統的可用性弊端。
LKRG 有點像基於 Windows 的防病毒軟體,它也是工作於核心級別去檢測漏洞利用和惡意軟體。但是,LKRG 團隊說,他們的產品比防病毒軟體以及其它終端安全軟體更加安全,因為它的基礎程式碼量比較小,所以在核心級別引入新 bug 和漏洞的可能性就更小。
執行當前版本的 LKRG 大約會帶來 6.5% 的效能損失
Peslyak 說 LKRG 是非常適用於 Linux 機器的,它在修補內核的安全漏洞後不需要重啟動機器。LKRG 允許使用者持續執行帶有安全措施的機器,直到在一個計劃的維護視窗中測試和部署關鍵的安全補丁為止。
經測試顯示,安裝 LKRG v0.0 後大約會產生 6.5% 效能影響,但是,Peslyak 說將在後續的開發中持續降低這種影響。
測試也顯示,LKRG 檢測到了 CVE-2014-9322 (BadIRET)、CVE-2017-5123 (waitid(2) missing access_ok)、以及 CVE-2017-6074 (use-after-free in DCCP protocol) 的漏洞利用企圖,但是沒有檢測到 CVE-2016-5195 (Dirty COW) 的漏洞利用企圖。開發團隊說,由於前面提到的“可旁通”的設計策略,LKRG 沒有檢測到 Dirty COW 提權攻擊。
在 Dirty COW 的測試案例中,由於 bug 機制的原因,使得 LKRG 發生了 “旁通”,並且這也是一種利用方法,它也是將來類似的以使用者空間為標的的繞過 LKRG 的一種方法。這樣的漏洞利用是否會是普通情況(不太可能!除非 LKRG 或者類似機制的軟體流行起來),以及對它的可用性的(負面的)影響是什麼?(對於那些直接標的是使用者空間的核心漏洞來說,這不太重要,也並不簡單)。
via: https://www.bleepingcomputer.com/news/linux/lkrg-linux-to-get-a-loadable-kernel-module-for-runtime-integrity-checking/
作者:Catalin Cimpanu[5] 譯者:qhwdw 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出