01微软开源Hornet模块
3月22日消息,一家科技媒体于昨日(3月21日)发布了一篇博文,报道了微软向Linux内核社区提交的一项新的开源贡献——Hornet。这是一项用于验证eBPF程序签名的Linux安全模块(LSM)。
eBPF,全称Extended Berkeley Packet Filter,是一种能够在Linux内核中运行程序的技术。它允许开发者在不修改内核源代码或加载内核模块的情况下,以高效且安全的方式扩展内核功能。微软长期以来一直是eBPF技术的重要推动者,而Hornet的推出标志着其在这一领域迈出了更深一步,旨在进一步提升eBPF程序的安全性。
Hornet采用了与内核模块相似的签名验证机制。具体而言,它会在可执行文件的末尾附加一个pkcs7签名。当调用bpf_prog_load时,Hornet会从当前任务的可执行文件中提取签名,并利用该签名验证传入内核的BPF指令和映射的完整性。
此外,Hornet默认信任由内核内部加载的程序,而对用户空间加载的程序则需要额外验证。这种设计确保了BPF_PRELOAD程序和BPF_SYSCALL程序能够正常运行。同时,Hornet还支持轻量级加载器和静态生成程序,从而保障所有运行在内核中的代码都经过签名验证。
除了Hornet LSM模块外,微软还提议在Linux内核源码树中引入一个新的工具——sign-ebpf,用于对eBPF程序进行签名。开发者可以通过查阅RFC补丁系列,进一步了解Hornet LSM的具体实现细节。