近日,知名科技資訊平臺(tái)Phoronix披露了一項(xiàng)來(lái)自微軟的開(kāi)源新動(dòng)向。據(jù)悉,微軟已正式向Linux內(nèi)核社區(qū)貢獻(xiàn)了一款名為Hornet的安全模塊(LSM),該模塊專(zhuān)為驗(yàn)證eBPF(Extended Berkeley Packet Filter)程序簽名而設(shè)計(jì)。
eBPF,這一在Linux內(nèi)核中運(yùn)行程序的技術(shù),以其無(wú)需修改內(nèi)核源代碼或加載內(nèi)核模塊便能安全高效地?cái)U(kuò)展內(nèi)核功能的特點(diǎn),受到了廣泛認(rèn)可。微軟作為eBPF技術(shù)的長(zhǎng)期倡導(dǎo)者,此次通過(guò)Hornet的推出,再次展示了其在該領(lǐng)域的深厚積累和積極貢獻(xiàn)。
Hornet的核心功能在于,它采用了一種與內(nèi)核模塊相似的簽名驗(yàn)證機(jī)制,通過(guò)在可執(zhí)行文件的末尾附加pkcs#7簽名,來(lái)確保eBPF程序的完整性。當(dāng)bpf_prog_load被調(diào)用時(shí),Hornet會(huì)智能地從當(dāng)前任務(wù)的可執(zhí)行文件中提取簽名,并利用該簽名對(duì)傳入內(nèi)核的bpf指令和映射進(jìn)行嚴(yán)格的驗(yàn)證。
值得注意的是,Hornet在設(shè)計(jì)上默認(rèn)信任從內(nèi)核內(nèi)部加載的程序,而對(duì)于用戶空間的程序則持謹(jǐn)慎態(tài)度。這一設(shè)計(jì)不僅保證了BPF_PRELOAD程序和BPF_SYSCALL程序的順利輸出,還通過(guò)支持輕量級(jí)加載器和靜態(tài)生成程序,進(jìn)一步確保了內(nèi)核中所有運(yùn)行代碼的簽名驗(yàn)證。
除了Hornet LSM模塊外,微軟還提議在Linux內(nèi)核源碼樹(shù)中引入一個(gè)新的工具——sign-ebpf,這一工具將專(zhuān)門(mén)用于eBPF程序的簽名。開(kāi)發(fā)者們可以通過(guò)查閱RFC補(bǔ)丁系列,深入了解Hornet LSM的具體實(shí)例和用法。
微軟的這一系列舉措,無(wú)疑為L(zhǎng)inux內(nèi)核的安全防護(hù)提供了新的思路和手段。通過(guò)Hornet和sign-ebpf的引入,Linux內(nèi)核在eBPF程序的安全性方面將得到顯著提升,為開(kāi)發(fā)者們提供更加安全、高效的開(kāi)發(fā)環(huán)境。