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