操作系统加码主动防护:数智化有了“安全底座”

开发者圈子里流行着一个有意思的观点:操作系统每过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多年后,当世界进入到数智化时代,迫切需要一个“安全底座”的时候,同样有一群开发者默默贡献着自己的力量。不同的是,这一次有了更多的中国面孔,特别是在内核这个核心环节,让世界看到了更多的中国创新和智慧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/887303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法-快速排序-Python版详解

原题如下: 给定你一个长度为 n 的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼10^9 范围内)&am…

strlwr(arr);的模拟实现(c基础)

hi , I am 36 适合对象c语言初学者 strlwr(arr)&#xff1b;函数是把arr数组变为小写字母,并返回arr 链接介绍一下strlwr(arr)&#xff1b;(c基础)-CSDN博客 下面进行My__strlwr(arr);模拟实现 #include<stdio.h> //返回值为arr(地址),于是用指针变量,原数组为字符型…

Hadoop分布式文件系统(一)——HDFS简介

目录 1. HDFS设计目标2. HDFS组件3. HDFS数据复制4. HDFS健壮性4.1 磁盘数据错误&#xff0c;心跳检测和重新复制4.2 集群均衡4.3 数据完整性4.4 元数据磁盘错误4.5 快照 5. HDFS数据组织5.1 数据块存储5.2 流水线复制5.3 文件的删除和恢复 参考 1. HDFS设计目标 1.错误检测和快…

基于UDP和TCP实现回显服务器

目录 一. UDP 回显服务器 1. UDP Echo Server 2. UDP Echo Client 二. TCP 回显服务器 1. TCP Echo Server 2. TCP Echo Client 回显服务器 (Echo Server) 就是客户端发送什么样的请求, 服务器就返回什么样的响应, 没有任何的计算和处理逻辑. 一. UDP 回显服务器 1. UD…

STM32完全学习——使用标准库完成PWM输出

一、TIM2初始化 我这里使用的是STM32F407ZGT6这个芯片&#xff0c;我这里使用的是定时器TIM2来完成PWM输出&#xff0c;由于这里没有使用中断&#xff0c;因此不需要初始化NVIC&#xff0c;下面先来进行定时器的相关初始化 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;R…

Qt Qt::UniqueConnection 底层调用

在这里插入图片描述 步骤1&#xff1a; 1&#xff1a;判断槽函数连接方式&#xff0c; 以及信号对象是否有效2&#xff1a; 信号计算格式是否 大于 signal_index 目前调试 signal_index 不太清楚怎末计算的&#xff08;有清楚的帮忙街道&#xff09;3&#xff1a;获取槽函数对…

7-10 解一元二次方程

7-10 解一元二次方程 分数 20 全屏浏览 切换布局 作者 李祥 单位 湖北经济学院 请编写程序&#xff0c;解一元一次方程 ax2bxc0 。 已知一元二次方程的求根公式为&#xff1a; 要求&#xff1a; 若 a0&#xff0c;则为一元一次方程。 若 b0&#xff0c;则方程有唯一解&…

Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(三)

本篇紧跟第一篇&#xff0c; 和 第二篇无关 Oracle - 多区间按权重取值逻辑 &#xff0c;分时区-多层级-取配置方案 Oracle - 多区间按权重取值逻辑 &#xff0c;分时区-多层级-取配置方案(二) 先说需求&#xff1a; 某业务配置表&#xff0c;按配置的时间区间及组织层级取方…

(免费送源码)计算机毕业设计原创定制:Java+JSP+HTML+JQUERY+AJAX+MySQL springboot计算机类专业考研学习网站管理系统

摘 要 大数据时代下&#xff0c;数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求&#xff0c;利用互联网服务于其他行业&#xff0c;促进生产&#xff0c;已经是成为一种势不可挡的趋势。在大学生在线计算机类专业考研学习网站管理的要求下&#xff0c;开发一…

Varjo:垂直起降机混合现实培训解决方案

混合电动垂直起降机&#xff08;VTOL&#xff09;作为一种新型的航空运输机具有超越传统汽车的安全性、与飞机相当的速度以及无与伦比的灵活起降功能。电动垂直起降机能够在建筑顶部、直升机场或是没有跑道的地区起飞或降落&#xff0c;且排放要远远低于由航空汽油驱动的传统飞…

Android 实现悬浮球的功能

Android 实现悬浮球的功能 在 Android 中&#xff0c;实现悬浮球可以通过以下方式实现&#xff0c;常见的方法是使用 WindowManager 创建一个悬浮窗口。以下是具体的实现步骤&#xff1a; 1. 配置权限 在 AndroidManifest.xml 中添加悬浮窗权限&#xff1a; <uses-permis…

[Python3学习笔记-基础语法] Python3 基础语法

本篇文章详细介绍Python3的基础语法&#xff0c;主要包括编码、标识符、Python保留字、注释、行缩进、多行语句、Number类型、字符串、空行、print打印等。 这些是Python最基础的东西&#xff0c;掌握好了才能更好的学习后续的内容。 有兴趣共同结伴学习Python的朋友&#xff0…

RabbitMQ3:Java客户端快速入门

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

Gradio学习笔记记录

安装指令&#xff1a;pip install gradio方法介绍 Interface》用于构建一些简单的页面&#xff0c;可以直接用这个指令搞定 形式》接收三个参数分别为处理函数、输入、输出三部分&#xff0c;呈现一般左/上为输入&#xff0c;右或下为输出 fn&#xff1a;将用户界面 &#xff0…

✅ Qt流式布局

Qt流式布局 前段时间&#xff0c;曾经对某个软件的一个“流式布局”有点感兴趣&#xff0c;什么叫“流式布局”呢&#xff1f;请看下图: 简而言之&#xff0c;流式布局就是布局应能够根据界面尺寸的变化自动调整其内部控件的位置。然而&#xff0c;Qt 提供的标准布局&#xff…

为什么我们需要DDD?DDD领域驱动设计入门及案例讲解(图文并茂+浅显易懂)

DDD领域驱动设计入门目录 Q1&#xff1a;为什么需要DDD领域驱动设计模型&#xff1f;Q2&#xff1a;DDD领域驱动设计模型怎么用&#xff1f;设计领域模型的一般步骤一、战略建模&#xff08;从高处俯瞰业务 - 微服务的宏观规划&#xff09;1. 领域划分2. 界限上下文定义3. 统一…

vue--制作购物车

&#x1f914;如何制作出下列效果呢&#xff1f;&#x1f447; &#x1f636;‍&#x1f32b;️首先: 设置css样式&#xff1a; <style>body {font-family: Arial, sans-serif;}.cart-item {width: 50%;margin-bottom: 15px;padding: 10px;border: 2px solid gray;borde…

MFC 对话框中显示CScrollView实例

有时候我们需要在对话框中显示CScrollView效果的控件&#xff0c;类似于以下效果&#xff1a; 使用实例可参考&#xff1a;MFC对话框显示CScrollView例子_哔哩哔哩_bilibili 创建CScrollView中显示的子对话框与子类&#xff1a; 两个对话框对应的类&#xff1a; CScrollView继…

高危,Laravel参数注入漏洞安全风险通告

今日&#xff0c;亚信安全CERT监控到安全社区研究人员发布安全通告&#xff0c;披露了Laravel 参数注入漏洞(CVE-2024-52301)。在受影响的版本中&#xff0c;Application.php 文件的 detectEnvironment 函数直接使用了 $_SERVER[argv]&#xff0c;但没有检查运行环境是否为 CLI…

【unity小技巧】unity常用的编辑器扩展

文章目录 1. **自定义 Inspector&#xff08;Inspector 面板&#xff09;**示例&#xff1a; 2. **Editor Window&#xff08;自定义编辑器窗口&#xff09;**示例&#xff1a; 3. **PropertyDrawer&#xff08;自定义属性绘制&#xff09;**示例&#xff1a; 4. **菜单项&…