开发者圈子里流行着一个有意思的观点:操作系统每过20年左右,就会出现一次跨越式发展机遇。
上世纪六十年代开始的大型机,到上世纪八十年代的个人计算机,再到本世纪初互联网的崛起,无不和上述观点相吻合:操作系统作为连接软件和硬件的桥梁,不断催生新应用,创造新蓝海。
而正在进行中的数字化、智能化浪潮,应用场景早已呈现出指数级增长的态势,操作系统的"20年周期律"再一次被印证。
和以往有所不同的是,数智化常常被加上"产业"的前缀,承载着生产力跃迁升级、产业深度转型的使命。操作系统作为产业数智化的"底座",既要有繁荣的生态,更要在安全上交出一份高分答卷。
01 "得安全者得天下"
时间回到1991年,21岁的Linus Torvalds编写出了拥有10000行代码的内核,选择遵循GPL协议和GNU宗旨,将其命名为"GNU/Linux"。
接下来的几年时间里,来自全世界的开发者,对Linus编写的内核代码进行了大量修改和补充,加入了GUI(图形界面)、应用等缺失部分,逐渐形成了一个完善的操作系统,也就是外界所熟知的Linux。
可能对不少消费者而言,对Linux的熟悉度远不如Windows、Android、iOS,但在服务器和数据中心领域,Linux却有着90%以上的市场份额,即使是在 Microsoft Azure上,也有一半以上的安装了Linux虚拟机。
不夸张地说,几乎整个数字世界都运行在Linux上。
为什么对安全最为看重的服务器市场,偏偏钟爱开源的Linux呢?查阅了大量资料后,我们找到了两个答案。
第一个是开放性。
因为Linux是开源的,任何人都可以自由地查看、修改和重新分发其源代码,赋予了Linux高度的灵活性和可定制性,衍生出了基于Linux的发行版操作系统,比如Ubuntu、RedHat、Debian、Centos;国内基于Linux内核的开源操作系统openEuler,以及基于openEuler的商业发行版操作系统银河麒麟、统信UOS、麒麟信安等。
第二个是安全性。
借用《大教堂与集市》作者Eric的说法,"只要眼睛多,bug容易捉"。开源软件汇集了不同领域的开发者,他们带着热情钻研代码,让漏洞更容易被发现。谷歌曾在2022年公布一份调查报告:Linux上的漏洞平均只需25天即可修复,苹果平均用了69天、Google为44天、微软则要三个月左右。
但安全是相对而言的,哪怕开源有着很高的透明度,过去几年时间里,和Linux相关的安全事件仍屡见不鲜。
2017年曝出了名为"Phoenix Talon"的一系列远程执行漏洞,其中一个漏洞为严重级别、三个为高危级别,可导致DOS攻击和远程代码执行;以及2021年轰动一时的红杉漏洞,攻击者可以通过漏洞,在默认安装的Ubuntu、Debian、Fedora、CentOS等主机将权限提升到root权限。
时间来到2024年,操作系统进一步和AI接轨,其中openEuler开源操作系统提出了"OS for AI,AI for OS"的理念,并全面增强了AI能力。
譬如颠覆了传统的命令行交互方式,基于大模型训练出了 EulerCopilot,初步实现代码辅助生成、问题智能分析、辅助运维等功能;通过异构资源统一管理与调度,实现CPU和XPU的深度融合,有效提升AI训练和推理性能。
当操作系统加速向AI演进,怎么消除潜在的安全威胁呢?
02 "从古代战舰到航母"
很长一段时间里,操作系统的安全策略都是"被动防御"。
就像Linux社区里曾普遍认为:"Security bugs are just bugs",以至于安全防护长期依赖于bug修补。
问题在于,1991年的Linux内核仅有1万行代码,到了6.6版本的内核,代码量早已超过3000万行。巨大的代码量,加上模块之间的复杂交互关系,导致内核的安全漏洞频出,仅2023年就爆出了710个安全漏洞。
即使开源在漏洞发现到修复的效率上有优势,但漏洞产生到漏洞发现平均需要60天时间,漏洞发现到修补又需要20多天的时间,而且52%的补丁并没有真正把漏洞修复。在这样的背景下,主动防御策略逐渐成为开源社区的共识。
一个典型的例子,就是中关村实验室联手openEuler打造的HAOC复式内核,选择在系统的设计中构建安全体系。
由于Linux的宏内核架构是扁平化的,所有模块集中在同一个地址空间,相互之间没有任何隔离,一旦某个模块存在漏洞,可能导致整个内核被攻陷,无疑增加了构建主动防御策略的难度。
中关村实验室提出了复式内核的设计思想,尝试建立系统性的主动防护:
首先,重构了内核的结构。将内核划分为中枢核心层、普通模块层和高风险模块层。
原先的内核被划分到了普通模块层,通过持续随机化进行保护,提升漏洞供给的门槛;最关键的数据移入中枢核心层,比如业表、权限凭证、系统密钥、防控制策略、敏感指令等;将内核扩展、设备驱动划分到高风险模块,并对每个模块进行单独隔离,避免风险扩散;同时对利用硬件实现层与层之间的隔离。
然后,进行关键数据拟态。通过地址布局的持续随机化,阻止攻击者找到关键数据。
复式内核解决了漏洞威胁的横向移动,却也面临着一个棘手挑战:内核中代码交互十分频繁,对开销要求要足够小。中关村实验室梳理了处理器在内存访问、代码调试等硬件特性,巧用这些硬件实现了层级内的开销隔离。最终实现了层次内的低开销隔离,相较于传统开销方案,有着两个数据级的性能优势。
中关村实验室研究员、中国科学院计算技术研究所研究员武成岗,在操作系统大会2024上的主题演讲中打了一个形象比喻:"扁平化的宏内核架构像古代的战舰一样,攻击者很容易完成攻击,而复式内核更像现在的航母,里面有很多舱,有了舱以后,想实施攻击就变得很难。"
正如现代化航母的战斗力,HAOC内核提供了中枢核心、隔离执行保护、系统密钥保护、策略保护、页表保护、凭证保护、内核扩展隔离和驱动隔离在内的安全选项,并且得到了Linux eBPF基金会的高度认可。
03 开源的"中国范式"
2024年6月初,首个AI原生开源操作系统------openEuler 24.03 LTS正式发布,除了智能解决方案的升级,还集成了HAOC内核1.0。
经历了近半年时间的市场检验后,架构式创新带来的新机会和新应用正逐步显现:
比如代码的形式化验证,Linux内核拥有3000万行代码,理论上很难进行形式化验证,复式结构对内核进行划分后,给形式化验证提供了可行性;
再比如复式内核兼具宏内核的性能优势和微内核的安全性,在智能网联车、低空经济、商业航天等领域有着诱人的应用前景。
就在操作系统大会2024上,HAOC内核2.0正式发布,相比HAOC内核1.0实现了多项能力的升级:
1、同时具备X86和ARM两个主流架构的内核攻击防护能力;
2、对页表结构、权限凭证、访问控制策略和密钥进行安全防护,能够阻断常见的内核提权攻击;
3、对高风险驱动进行隔离管控,阻止安全风险扩散到核心内核;
4、相比HAOC内核1.0,HAOC内核2.0性能提升了20%。
对于HAOC内核的未来发展,武成岗给出了一份清晰的路线图:进一步探索复式内核架构的层内安全增强技术、继续探索软硬件协同隔离技术、验证探索高等级的形式化,以及分期分批地推进复式内核成熟技术进入社区,包括复式隔离框架进入openEuler社区、层内增强进入openEuler社区,最终进入主线Linux。
个中原因并不难理解。
内核作为操作系统安全的基础,如果内核被攻破,攻击者可能获得最高级的系统控制权限。积极参与操作系统的开源建设,和全世界的开发者一起推进复式内核的创新和应用,可以说是构筑数智化"安全底座"的不二法门。
几乎是在同一时间,openEuler社区中来自华为的核心贡献者正式成为Linux内核社区的CVE检视成员,直接参与Linux社区CVE检视,将从源头上提高CVE识别质量,随时感知CVE信息,进一步提升 openEuler社区在高危漏洞上的响应能力。
图:Linux 内核社区 CVE 检视团队
无论是复式内核的架构创新,还是深度参与Linux内核漏洞检视,无不向外界释放了这样一个信号------中国开源力量的崛起。
在openEuler社区上,像中关村实验室这样的开发者和组织还有2万多个,他们组成了109个技术兴趣小组、进行了2446次技术决策、194678次代码合入、参与了588个创新项目,极大地促进全球开源社区的繁荣与进步。
全球著名市场调研机构IDC的报告也印证了这一点:2024年中国新增服务器操作系统领域,openEuler的市场份额将达50%。开源五年来,openEuler系累计装机量突破1000万套,单2024年,openEuler的新增装机量将达到500万套。
同时也意味着,中国开发者和组织正在从开源社区的参与者,一步步成为建设者乃至主导者,不断提升在操作系统领域的话语权。
04 写在最后
30多年前,几千名散布在世界各地的开发者,通过在社区中的沟通和协作,鬼斧神工般地造就了一个世界级的操作系统。
30多年后,当世界进入到数智化时代,迫切需要一个"安全底座"的时候,同样有一群开发者默默贡献着自己的力量。不同的是,这一次有了更多的中国面孔,特别是在内核这个核心环节,让世界看到了更多的中国创新和智慧。