中关村实验室联手openEuler打造的HAOC复式内核,选择在系统的设计中构建安全体系。
由于Linux的宏内核架构是扁平化的,所有模块集中在同一个地址空间,相互之间没有任何隔离,一旦某个模块存在漏洞,可能导致整个内核被攻陷,无疑增加了构建主动防御策略的难度。
中关村实验室提出了复式内核的设计思想,尝试建立系统性的主动防护:
首先,重构了内核的结构。将内核划分为中枢核心层、普通模块层和高风险模块层。
原先的内核被划分到了普通模块层,通过持续随机化进行保护,提升漏洞供给的门槛;最关键的数据移入中枢核心层,比如业表、权限凭证、系统密钥、防控制策略、敏感指令等;将内核扩展、设备驱动划分到高风险模块,并对每个模块进行单独隔离,避免风险扩散;同时对利用硬件实现层与层之间的隔离。
然后,进行关键数据拟态。通过地址布局的持续随机化,阻止攻击者找到关键数据。
复式内核解决了漏洞威胁的横向移动,却也面临着一个棘手挑战:内核中代码交互十分频繁,对开销要求要足够小。中关村实验室梳理了处理器在内存访问、代码调试等硬件特性,巧用这些硬件实现了层级内的开销隔离。最终实现了层次内的低开销隔离,相较于传统开销方案,有着两个数据级的性能优势。
中关村实验室研究员、中国科学院计算技术研究所研究员武成岗,在操作系统大会2024上的主题演讲中打了一个形象比喻:“扁平化的宏内核架构像古代的战舰一样,攻击者很容易完成攻击,而复式内核更像现在的航母,里面有很多舱,有了舱以后,想实施攻击就变得很难。”#欧拉中国服务器操作系统份额达50%#