Linux 5.13考慮為每次系統調用引入隨機化的內核堆棧偏移量
Phoronix報導稱,開發人員正準備為即將到來的Linux 5.13引入隨機化的內核堆棧偏移量。若這項功能在本次內核開發週期中順利完成交付,那未來針對Linux內核堆棧的攻擊將變得更加困難。而其實早在2019年,英特爾工程師Elena Reshetova就已經提出了一項建議,以允許在每次系統調用時都隨機分配內核堆棧的偏移量。
(來自:git.Kernel.org)
據悉,該代碼最初受到了PaX 的RANDKSTACK 功能的啟發,旨在增強內核安全性、以阻止依賴內核堆棧確定性的漏洞利用。
谷歌工程師Kees Cook 最終接手了這項工作,並且經歷了十輪的代碼審查,該代碼似乎已經部署到了Linux 5.13 內核補丁中。
具體說來是,這項工作允許在每個系統調用時,隨機選擇內核堆棧的偏移量。比如在啟用randomize_kstack_offset= 命令選項時,便可為ARM64 和x86_64 CPU 指定on / off 值。
得益於在每次系統調用時都分配了隨機的內核堆棧偏移量,該功能可在啟用後讓基於堆棧的攻擊執行變得更加困難。
不過在默認情況下,這項特性仍處於關閉的狀態。因為即便在x86_64 平台上,該選項仍會造成約1% 的系統資源開銷。
感興趣的朋友,可留意週四入列tip.git 的x86 / entry 補丁分支。如果一切順利,我們有望在本月晚些時候的Linux 5.13 合併窗口之後,看到相關代碼被正式納入主線內核。