在開發(fā)者社群中,一個(gè)引人注目的觀點(diǎn)被廣泛傳播:每隔二十年,操作系統(tǒng)領(lǐng)域就會(huì)迎來一次革命性的飛躍。從上世紀(jì)六十年代的大型機(jī)時(shí)代,到八十年代個(gè)人計(jì)算機(jī)的興起,再到本世紀(jì)初互聯(lián)網(wǎng)的蓬勃發(fā)展,這一規(guī)律得到了清晰的驗(yàn)證。操作系統(tǒng)作為軟硬件之間的橋梁,不斷推動(dòng)新應(yīng)用的誕生,開拓全新的市場空間。
如今,數(shù)字化與智能化的浪潮正以前所未有的速度席卷全球,應(yīng)用場景的數(shù)量呈現(xiàn)出爆炸式增長,再次印證了操作系統(tǒng)的“二十年周期律”。然而,與以往不同的是,當(dāng)前的數(shù)智化進(jìn)程被賦予了“產(chǎn)業(yè)”的前綴,肩負(fù)著推動(dòng)生產(chǎn)力飛躍和產(chǎn)業(yè)深度轉(zhuǎn)型的重任。操作系統(tǒng)作為產(chǎn)業(yè)數(shù)智化的基石,不僅需要構(gòu)建一個(gè)繁榮的生態(tài),更需在安全領(lǐng)域交出令人滿意的答卷。
回顧歷史,1991年,年僅21歲的Linus Torvalds編寫了一個(gè)包含一萬行代碼的內(nèi)核,并遵循GPL協(xié)議和GNU宗旨,將其命名為“GNU/Linux”。在接下來的幾年里,來自全球的開發(fā)者對(duì)Linus的內(nèi)核代碼進(jìn)行了大量修改和補(bǔ)充,加入了圖形界面、應(yīng)用等必要組件,最終形成了一個(gè)完善的操作系統(tǒng)——Linux。盡管對(duì)于許多消費(fèi)者來說,Linux的知名度可能不及Windows、Android和iOS,但在服務(wù)器和數(shù)據(jù)中心領(lǐng)域,Linux的市場份額卻高達(dá)90%以上,甚至在Microsoft Azure上,也有超過一半的虛擬機(jī)安裝了Linux。
為何對(duì)安全要求極高的服務(wù)器市場會(huì)偏愛開源的Linux呢?經(jīng)過深入研究,我們找到了兩個(gè)關(guān)鍵原因。首先是開放性,Linux的開源特性使得任何人都可以自由查看、修改和分發(fā)其源代碼,這賦予了Linux高度的靈活性和可定制性,從而衍生出了眾多基于Linux的發(fā)行版操作系統(tǒng),如Ubuntu、RedHat、Debian、CentOS,以及國內(nèi)的openEuler和基于openEuler的商業(yè)發(fā)行版如銀河麒麟、統(tǒng)信UOS、麒麟信安等。其次是安全性,正如《大教堂與集市》的作者Eric所言,“只要眼睛多,bug容易捉”。開源軟件吸引了來自不同領(lǐng)域的開發(fā)者,他們帶著熱情鉆研代碼,使得漏洞更容易被發(fā)現(xiàn)。谷歌在2022年發(fā)布的一份調(diào)查報(bào)告顯示,Linux上的漏洞平均只需25天即可修復(fù),而蘋果、Google和微軟分別需要69天、44天和大約三個(gè)月。
然而,安全總是相對(duì)的。盡管開源帶來了高透明度,但近年來與Linux相關(guān)的安全事件仍時(shí)有發(fā)生。例如,2017年曝出的“Phoenix Talon”系列遠(yuǎn)程執(zhí)行漏洞,其中包括一個(gè)嚴(yán)重級(jí)別和三個(gè)高危級(jí)別的漏洞,可導(dǎo)致DOS攻擊和遠(yuǎn)程代碼執(zhí)行;以及2021年震驚業(yè)界的紅杉漏洞,攻擊者可通過該漏洞在默認(rèn)安裝的Ubuntu、Debian、Fedora、CentOS等主機(jī)上將權(quán)限提升至root。
隨著操作系統(tǒng)加速與AI的融合,openEuler開源操作系統(tǒng)提出了“OS for AI,AI for OS”的理念,并全面增強(qiáng)了AI能力。例如,它顛覆了傳統(tǒng)的命令行交互方式,基于大模型訓(xùn)練出了EulerCopilot,實(shí)現(xiàn)了代碼輔助生成、問題智能分析、輔助運(yùn)維等功能;通過異構(gòu)資源的統(tǒng)一管理與調(diào)度,實(shí)現(xiàn)了CPU和XPU的深度融合,顯著提升了AI訓(xùn)練和推理性能。然而,在操作系統(tǒng)向AI演進(jìn)的過程中,如何消除潛在的安全威脅成為了一個(gè)亟待解決的問題。
長期以來,操作系統(tǒng)的安全策略主要側(cè)重于“被動(dòng)防御”。在Linux社區(qū)中,曾有一種普遍觀念認(rèn)為“Security bugs are just bugs”,因此安全防護(hù)長期依賴于bug的修補(bǔ)。然而,隨著Linux內(nèi)核從最初的1萬行代碼增長到6.6版本的3000多萬行代碼,以及模塊間復(fù)雜交互關(guān)系的增加,內(nèi)核的安全漏洞頻繁出現(xiàn)。僅在2023年,就爆出了710個(gè)安全漏洞。盡管開源在漏洞發(fā)現(xiàn)到修復(fù)的效率上具有優(yōu)勢,但漏洞從產(chǎn)生到被發(fā)現(xiàn)平均需要60天時(shí)間,從發(fā)現(xiàn)到修補(bǔ)又需要20多天時(shí)間,而且52%的補(bǔ)丁并未真正修復(fù)漏洞。在此背景下,主動(dòng)防御策略逐漸成為開源社區(qū)的共識(shí)。
中關(guān)村實(shí)驗(yàn)室與openEuler攜手打造的HAOC復(fù)式內(nèi)核便是一個(gè)典型例子,它在系統(tǒng)設(shè)計(jì)中構(gòu)建了安全體系。由于Linux的宏內(nèi)核架構(gòu)是扁平化的,所有模塊集中在同一地址空間且沒有隔離,一旦某個(gè)模塊存在漏洞,整個(gè)內(nèi)核都可能被攻陷,這無疑增加了構(gòu)建主動(dòng)防御策略的難度。中關(guān)村實(shí)驗(yàn)室提出的復(fù)式內(nèi)核設(shè)計(jì)思想旨在建立系統(tǒng)性的主動(dòng)防護(hù):
首先,對(duì)內(nèi)核結(jié)構(gòu)進(jìn)行了重構(gòu)。將內(nèi)核劃分為中樞核心層、普通模塊層和高風(fēng)險(xiǎn)模塊層。原先的內(nèi)核被歸入普通模塊層,通過持續(xù)隨機(jī)化進(jìn)行保護(hù)以提升漏洞攻擊的門檻;最關(guān)鍵的數(shù)據(jù)被移入中樞核心層,包括頁表、權(quán)限憑證、系統(tǒng)密鑰、防控制策略、敏感指令等;內(nèi)核擴(kuò)展和設(shè)備驅(qū)動(dòng)被劃分到高風(fēng)險(xiǎn)模塊層,并對(duì)每個(gè)模塊進(jìn)行單獨(dú)隔離以防止風(fēng)險(xiǎn)擴(kuò)散;同時(shí)利用硬件實(shí)現(xiàn)層與層之間的隔離。
其次,對(duì)關(guān)鍵數(shù)據(jù)進(jìn)行了擬態(tài)處理。通過地址布局的持續(xù)隨機(jī)化來阻止攻擊者找到關(guān)鍵數(shù)據(jù)。
復(fù)式內(nèi)核解決了漏洞威脅的橫向移動(dòng)問題,但也面臨一個(gè)重大挑戰(zhàn):內(nèi)核中的代碼交互頻繁,對(duì)開銷的要求必須足夠小。中關(guān)村實(shí)驗(yàn)室通過梳理處理器在內(nèi)存訪問、代碼調(diào)試等硬件特性,巧妙地利用這些硬件實(shí)現(xiàn)了層級(jí)內(nèi)的開銷隔離。最終實(shí)現(xiàn)了層次內(nèi)的低開銷隔離,相較于傳統(tǒng)開銷方案具有兩個(gè)數(shù)據(jù)級(jí)的性能優(yōu)勢。
中關(guān)村實(shí)驗(yàn)室研究員、中國科學(xué)院計(jì)算技術(shù)研究所研究員武成崗在操作系統(tǒng)大會(huì)2024的主題演講中,用了一個(gè)生動(dòng)的比喻來形容這一創(chuàng)新:“扁平化的宏內(nèi)核架構(gòu)就像古代的戰(zhàn)艦一樣,攻擊者很容易實(shí)施攻擊;而復(fù)式內(nèi)核則更像現(xiàn)代的航母,里面有很多艙室,有了艙室以后,想實(shí)施攻擊就變得非常困難。”正如現(xiàn)代化航母的強(qiáng)大戰(zhàn)斗力一樣,HAOC內(nèi)核提供了包括中樞核心、隔離執(zhí)行保護(hù)、系統(tǒng)密鑰保護(hù)、策略保護(hù)、頁表保護(hù)、憑證保護(hù)、內(nèi)核擴(kuò)展隔離和驅(qū)動(dòng)隔離在內(nèi)的多種安全選項(xiàng),并得到了Linux eBPF基金會(huì)的高度認(rèn)可。
2024年6月初,首個(gè)AI原生開源操作系統(tǒng)openEuler 24.03 LTS正式發(fā)布,除了智能解決方案的升級(jí)外,還集成了HAOC內(nèi)核1.0。經(jīng)過近半年的市場檢驗(yàn)后,架構(gòu)式創(chuàng)新帶來的新機(jī)遇和新應(yīng)用逐漸顯現(xiàn)。例如,在代碼的形式化驗(yàn)證方面,Linux內(nèi)核擁有3000多萬行代碼,理論上很難進(jìn)行形式化驗(yàn)證,但復(fù)式結(jié)構(gòu)對(duì)內(nèi)核的劃分后提供了形式化驗(yàn)證的可行性;再如,復(fù)式內(nèi)核兼具宏內(nèi)核的性能優(yōu)勢和微內(nèi)核的安全性,在智能網(wǎng)聯(lián)車、低空經(jīng)濟(jì)、商業(yè)航天等領(lǐng)域展現(xiàn)出誘人的應(yīng)用前景。
在操作系統(tǒng)大會(huì)2024上,HAOC內(nèi)核2.0正式發(fā)布,相較于HAOC內(nèi)核1.0實(shí)現(xiàn)了多項(xiàng)能力的升級(jí):同時(shí)具備了X86和ARM兩個(gè)主流架構(gòu)的內(nèi)核攻擊防護(hù)能力;對(duì)頁表結(jié)構(gòu)、權(quán)限憑證、訪問控制策略和密鑰進(jìn)行了安全防護(hù),能夠阻斷常見的內(nèi)核提權(quán)攻擊;對(duì)高風(fēng)險(xiǎn)驅(qū)動(dòng)進(jìn)行了隔離管控,阻止了安全風(fēng)險(xiǎn)擴(kuò)散到核心內(nèi)核;相較于HAOC內(nèi)核1.0,HAOC內(nèi)核2.0的性能提升了20%。
對(duì)于HAOC內(nèi)核的未來發(fā)展,武成崗給出了一份清晰的路線圖:將進(jìn)一步探索復(fù)式內(nèi)核架構(gòu)的層內(nèi)安全增強(qiáng)技術(shù)、繼續(xù)探索軟硬件協(xié)同隔離技術(shù)、驗(yàn)證探索高等級(jí)的形式化驗(yàn)證方法,并分期分批地推進(jìn)復(fù)式內(nèi)核的成熟技術(shù)進(jìn)入社區(qū)。這包括復(fù)式隔離框架進(jìn)入openEuler社區(qū)、層內(nèi)增強(qiáng)技術(shù)進(jìn)入openEuler社區(qū),并最終進(jìn)入主線Linux。
內(nèi)核作為操作系統(tǒng)安全的基礎(chǔ),一旦被攻破,攻擊者將獲得最高的系統(tǒng)控制權(quán)限。積極參與操作系統(tǒng)的開源建設(shè),與全球開發(fā)者共同推進(jìn)復(fù)式內(nèi)核的創(chuàng)新和應(yīng)用,無疑是構(gòu)建數(shù)智化“安全底座”的關(guān)鍵途徑。幾乎在同一時(shí)間,openEuler社區(qū)中來自華為的核心貢獻(xiàn)者正式成為Linux內(nèi)核社區(qū)的CVE檢視成員,直接參與Linux社區(qū)的CVE檢視工作,這將從源頭上提高CVE的識(shí)別質(zhì)量,隨時(shí)感知CVE信息,進(jìn)一步提升openEuler社區(qū)在高危漏洞上的響應(yīng)能力。