开源操作系统新突破HAOC内核为数智化筑起安全防线
在开发者社群中,一个引人注目的观点被广泛传播:每隔二十年,操作系统领域就会迎来一次性的飞跃。从上世纪六十年代的大型机时代,到八十年代个人计算机的兴起,再到本世纪初互联网的蓬勃发展,这一规律得到了清晰的验证。操作系统作为软硬件之间的桥梁,不断推动新应用的诞生,开拓全新的市场空间。
如今,数字化与智能化的浪潮正以前所未有的速度席卷全球,应用场景的数量呈现出爆炸式增长,再次印证了操作系统的“二十年周期律”。然而,与以往不同的是,当前的数智化进程被赋予了“产业”的前缀,肩负着推动生产力飞跃和产业深度转型的重任。操作系统作为产业数智化的基石,不仅需要构建一个繁荣的生态,更需在安全领域交出令人满意的答卷。
回顾历史,1991年,年仅21岁的Linus Torvalds编写了一个包含一万行代码的内核,并遵循GPL协议和GNU宗旨,将其命名为“GNU/Linux”。在接下来的几年里,来自全球的开发者对Linus的内核代码进行了大量修改和补充,加入了图形界面、应用等必要组件,最终形成了一个完善的操作系统——Linux。尽管对于许多消费者来说,Linux的知名度可能不及Windows、Android和iOS,但在服务器和数据中心领域,Linux的市场份额却高达90%以上,甚至在Microsoft Azure上,也有超过一半的虚拟机安装了Linux。
为何对安全要求极高的服务器市场会偏爱开源的Linux呢?经过深入研究,我们找到了两个关键原因。首先是开放性,Linux的开源特性使得任何人都可以自由查看、修改和分发其源代码,这赋予了Linux高度的灵活性和可定制性,从而衍生出了众多基于Linux的发行版操作系统,如Ubuntu、RedHat、Debian、CentOS,以及国内的openEuler和基于openEuler的商业发行版如银河麒麟、统信UOS、麒麟信安等。其次是安全性,正如《大教堂与集市》的作者Eric所言,“只要眼睛多,bug容易捉”。开源软件吸引了来自不同领域的开发者,他们带着热情钻研代码,使得漏洞更容易被发现。谷歌在2022年发布的一份调查报告显示,Linux上的漏洞平均只需25天即可修复,而苹果、Google和微软分别需要69天、44天和大约三个月。
然而,安全总是相对的。尽管开源带来了高透明度,但近年来与Linux相关的安全事件仍时有发生。例如,2017年曝出的“Phoenix Talon”系列远程执行漏洞,其中包括一个严重级别和三个高危级别的漏洞,可导致DOS攻击和远程代码执行;以及2021年震惊业界的红杉漏洞,攻击者可通过该漏洞在默认安装的Ubuntu、Debian、Fedora、CentOS等主机上将权限提升至root。
随着操作系统加速与AI的融合,openEuler开源操作系统提出了“OS for AI,AI for OS”的理念,并全面增强了AI能力。例如,它颠覆了传统的命令行交互方式,基于大模型训练出了EulerCopilot,实现了代码辅助生成、问题智能分析、辅助运维等功能;通过异构资源的统一管理与调度,实现了CPU和XPU的深度融合,显著提升了AI训练和推理性能。然而,在操作系统向AI演进的过程中,如何消除潜在的安全威胁成为了一个亟待解决的问题。
长期以来,操作系统的安全策略主要侧重于“被动防御”。在Linux社区中,曾有一种普遍观念认为“Security bugs are just bugs”,因此安全防护长期依赖于bug的修补。然而,随着Linux内核从最初的1万行代码增长到6.6版本的3000多万行代码,以及模块间复杂交互关系的增加,内核的安全漏洞频繁出现。仅在2023年,就爆出了710个安全漏洞。尽管开源在漏洞发现到修复的效率上具有优势,但漏洞从产生到被发现平均需要60天时间,从发现到修补又需要20多天时间,而且52%的补丁并未真正修复漏洞。在此背景下,主动防御策略逐渐成为开源社区的共识。
中关村实验室与openEuler携手打造的HAOC复式内核便是一个典型例子,它在系统设计中构建了安全体系。由于Linux的宏内核架构是扁平化的,所有模块集中在同一地址空间且没有隔离,一旦某个模块存在漏洞,整个内核都可能被攻陷,这无疑增加了构建主动防御策略的难度。中关村实验室提出的复式内核设计思想旨在建立系统性的主动防护:
首先,对内核结构进行了重构。将内核划分为中枢核心层、普通模块层和高风险模块层。原先的内核被归入普通模块层,通过持续随机化进行保护以提升漏洞攻击的门槛;最关键的数据被移入中枢核心层,包括页表、权限凭证、系统密钥、防控制策略、敏感指令等;内核扩展和设备驱动被划分到高风险模块层,并对每个模块进行单独隔离以防止风险扩散;同时利用硬件实现层与层之间的隔离。
其次,对关键数据进行了拟态处理。通过地址布局的持续随机化来阻止攻击者找到关键数据。
复式内核解决了漏洞威胁的横向移动问题,但也面临一个重大挑战:内核中的代码交互频繁,对开销的要求必须足够小。中关村实验室通过梳理处理器在内存访问、代码调试等硬件特性,巧妙地利用这些硬件实现了层级内的开销隔离。最终实现了层次内的低开销隔离,相较于传统开销方案具有两个数据级的性能优势。
中关村实验室研究员、中国科学院计算技术研究所研究员武成岗在操作系统大会2024的主题演讲中,用了一个生动的比喻来形容这一创新:“扁平化的宏内核架构就像古代的战舰一样,攻击者很容易实施攻击;而复式内核则更像现代的航母,里面有很多舱室,有了舱室以后,想实施攻击就变得非常困难。”正如现代化航母的强大战斗力一样,HAOC内核提供了包括中枢核心、隔离执行保护、系统密钥保护、策略保护、页表保护、凭证保护、内核扩展隔离和驱动隔离在内的多种安全选项,并得到了Linux eBPF基金会的高度认可。
2024年6月初,首个AI原生开源操作系统openEuler 24.03 LTS正式发布,除了智能解决方案的升级外,还集成了HAOC内核1.0。经过近半年的市场检验后,架构式创新带来的新机遇和新应用逐渐显现。例如,在代码的形式化验证方面,Linux内核拥有3000多万行代码,理论上很难进行形式化验证,但复式结构对内核的划分后提供了形式化验证的可行性;再如,复式内核兼具宏内核的性能优势和微内核的安全性,在智能网联车、低空经济、商业航天等领域展现出诱人的应用前景。
在操作系统大会2024上,HAOC内核2.0正式发布,相较于HAOC内核1.0实现了多项能力的升级:同时具备了X86和ARM两个主流架构的内核攻击防护能力;对页表结构、权限凭证、访问控制策略和密钥进行了安全防护,能够阻断常见的内核提权攻击;对高风险驱动进行了隔离管控,阻止了安全风险扩散到核心内核;相较于HAOC内核1.0,HAOC内核2.0的性能提升了20%。
对于HAOC内核的未来发展,武成岗给出了一份清晰的路线图:将进一步探索复式内核架构的层内安全增强技术、继续探索软硬件协同隔离技术、验证探索高等级的形式化验证方法,并分期分批地推进复式内核的成熟技术进入社区。这包括复式隔离框架进入openEuler社区、层内增强技术进入openEuler社区,并最终进入主线Linux。
内核作为操作系统安全的基础,一旦被攻破,攻击者将获得最高的系统控制权限。积极参与操作系统的开源建设,与全球开发者共同推进复式内核的创新和应用,无疑是构建数智化“安全底座”的关键途径。几乎在同一时间,openEuler社区中来自华为的核心贡献者正式成为Linux内核社区的CVE检视成员,直接参与Linux社区的CVE检视工作,这将从源头上提高CVE的识别质量,随时感知CVE信息,进一步提升openEuler社区在高危漏洞上的响应能力。