【編者的話】2023年8月在北航杭州創新研究院舉辦了“第五屆國產嵌入式操作系統技術與產業發展論壇暨嵌入式系統聯誼會主題討論會(總第29次),會議主題是“面向異構多核智能芯片的混合關鍵系統研究與應用”,《單片機與嵌入式系統應用》雜志社邀請報告人北京航空航天大學牛建偉教授團隊和復旦大學蔣金虎教授團隊撰寫了兩篇論文。
“基于多內核的操作系統內生安全技術”一文,針對萬物互聯時代設備的智能化、網絡化的功能安全與網絡安全的各種問題和隱患,提出了一套基于多內核的操作系統內生安全技術方案?!盎诨旌详P鍵系統的工業機器人操作系統”一文,提出了基于混合關鍵系統的新型機器人架構設計,可以提高機器人操作系統的實時性、安全性和智能化水平。會議演講報告公開版本已經發布在嵌入式系統聯誼會的官方網站上,閱讀原文可以獲得。
多核芯片混合關鍵系統的研究體現了嵌入式系統多學科合作攻關的特點,是大模型和生成式AI風起云涌時代,工業智能系統面臨的機遇和挑戰,2024年嵌入式系統產業界將會繼續努力攻堅克難,期待我們再聚!
0 引言
萬物互聯,設備越來越多,且智能化、網絡化趨勢日益明顯,成為未來發展的一個必然方向,但同時也為系統安全帶來了新的挑戰與機遇,功能安全與網絡安全的各種問題和隱患也隨之而來。操作系統是軟件架構的基石,肩負著抽象硬件資源和溝通上層用戶應用與下層硬件資源的職能,面臨著巨大的安全挑戰。因此,操作系統安全的理論和實踐至關重要。
傳統的網絡安全以安全事件驅動的靜態被動式安全為主,功能安全則以冗余為主[1]。傳統的網絡安全包括以下3個發展階段:以阻止入侵為目的的系統加固階段、以限制破壞為目的的監測響應階段、以系統頑存為目的的網絡容侵階段[2]。3個階段針對不同時代下的網絡功能安全問題,但均存在缺陷。系統加固階段通過明確劃分網絡邊界,利用用戶認證、訪問控制、網絡隔離等手段來加固系統,在保證網絡系統正常工作基礎上保證信息安全,但這一階段的技術無法應對系統漏洞等后門攻擊手段。監測響應階段則是通過特征掃描、模式匹配等技術來檢測入侵,但此階段的技術高度依賴檢測能力,且無法檢測新出現的入侵技術。網絡容侵階段則是通過信息生存技術將入侵影響降到最低,但目前尚無規?;褂冒咐?且模型的建立依賴大量先驗知識,無法應對先驗知識中未出現的攻擊。
隨著數字基礎設施逐漸智能化和網絡化,網絡安全和功能安全日益交織、疊加,演變為內生安全問題。內生安全于2013年由鄔江興院士提出。內生安全是以網絡中各類網元設備自身的安全能力為基礎,利用系統架構、算法、機制或場景等內部因素獲得安全功能或屬性,協同配合構建的綜合安全體系。內生安全具備先天構建和后天成長兩大基本特征[3]。先天構建表明安全需要與系統的設計與建設同步進行,后天成長則要求系統能與自身所處環境交互,其安全能力隨環境變化而動態提升[4]。因此,內生安全已被應用于蜜罐[5]、防火墻[6]、交換機[7]、路由器[8]、處理機[9]、Web服務器[10-11]、DNS服務器[12]、云平臺[13-14]和網絡操作系統[15]等領域,其衍生出的相關技術越發重要,其先天構建和后天成長的特性也為計算機系統提出了新的挑戰。
綜上,本文從內生安全的角度對操作系統進行分析,討論操作系統內生安全面臨的挑戰和機遇。
1 研究現狀
操作系統內生安全技術包括兩類。一類是面向功能安全的基于冗余容錯方法,例如 SpaceX衛星上的三冗余系統、博世公司開發的冗余自動駕駛系統等。另一類是面向網絡安全的以移動目標防御(MTD)[16]和擬態架構為基礎的內生安全防御技術。目前工業界已在嵌入式系統中大量使用 MTD,如 Morphisec公司已在50多家企業部署了基于 MTD驅動的安全方案。學術界也有大量有關 MTD理論、策略、評估的論文,ACM每年舉辦專題研討會。
國內主流的內生安全技術為鄔江興院士提出的基于擬態防御的內生安全[17]。擬態防御假定帶來安全問題的漏洞和后門未知且不可避免,擬態防御通過動態異構冗余架構來綜合考慮功能安全和網絡安全,以條件規避的方法讓攻擊者無法形成有效攻擊[18]。擬態防御已被用于賦能網絡彈性工程、典型領域工程應用(如路由交換設備、網絡控制系統、工業控制系統、云計算和車聯網系統等)、無線系統安全、人工智能系統應用和智能芯片等場景,并在部分系統中進行大規模工業應用[19]。因此,基于擬態架構的內生安全是一種可以從根本上提升操作系統安全防護能力的重要手段。
2 面臨的挑戰和機遇
操作系統為系統核心軟件。一方面,操作系統肩負抽象硬件資源和為應用提供服務的功能,承擔溝通上層用戶應用與下層硬件資源的服務職能,隱藏硬件的繁瑣細節并為用戶程序提供易用的標準化接口,是應用程序執行的公共基礎,因此有義務構建穩定、安全的執行環境。另一方面,操作系統還承擔對硬件資源和應用程序二者的管理職能,既將異構的、復雜的硬件資源納入統一管理,又負責應用的生命周期和資源分配的管理,是計算機系統的唯一協調者、管理者,因此有義務維護穩定、安全的系統狀態。其中安全為操作系統的關鍵職能之一。
傳統操作系統網絡安全依賴于對現有攻擊和漏洞的經驗知識進行被動防御,無法應對未知攻擊和漏洞?;跀M態安全機理的動態異構冗余的內生安全機制是當前主要的主動安全防護方法,但如何在操作系統層實現內生安全機制,則面臨如下難題:
一是現有的操作系統 (如 Linux、macOS等單內核操作系統)在架構上具有脆弱性、單調性和機械性等特性,導致系統不支持內生安全所需的異構冗余屬性。具有脆弱性是因為操作系統安全防護脆弱單薄,微小的錯誤也可能導致關鍵功能部件失靈,進而導致系統級的崩潰。通過冗余可以緩解因脆弱性導致的功能安全問題,但目前操作系統缺乏單機級冗余,系統部件幾乎均位于系統關鍵路徑之上,任何核心模塊被入侵均可能導致系統級的崩潰。當前操作系統缺乏差異化而表現出的單調性特征導致特定系統的差分問題突出,系統安全維護工作無法根除操作系統自身的固有設計缺陷?,F有操作系統在時態上表現出高度靜態的機械性,這為網絡攻擊提供了透明的一致視圖。當前大量的網絡攻擊依賴于運行時窺探系統的關鍵數據,而系統時態的動態變化將有效降低系統被攻擊成功的概率。此外,當前功能安全和網絡防御手段無法應對攻擊逃逸后的場景。因此,需要一種新的操作系統架構來保證系統的異構冗余性。
二是如何在操作系統層構建內生安全的動態異構冗余機制。異構冗余機制要求操作系統具備冗余性、異構性和動態性。冗余性要求操作系統提供應用透明的多個執行環境,操作系統需基于應用程序的單一鏡像構建多個執行環境,并在多個執行環境中執行相同程序的實例副本。異構性要求操作系統提供功能等價的異構執行環境,操作系統需支持多個執行環境并存的架構,保證應用程序在異構環境下得到等價的預期輸出。動態性則要求操作系統支持執行環境集合的動態迭代。
三是如何在操作系統層設計高效共識機制。異構環境中的同一應用可能會產生不一致的輸出,系統需辨析響應差異化的根源。差異化可能來源于外部攻擊、異構特性或是冗余執行環境的非一致性,需由操作系統做具體裁決。操作系統需監控收集異構環境的不同關鍵信息,并基于這些運行時信息和裁決策略 ,藉由表決得到異構間共識。
3 操作系統內生安全設計
操作系統作為核心基礎軟件 ,處于硬件和應用層之間,負責硬件資源的管理并服務于應用 ,其內生安全的架構直接決定系統層動態異構冗余過程中各模塊之間的有效協同。多內核操作系統能同時運行多個異構內核 ,其結構天然符合操作系統內生安全需求 ,多內核操作系統架構如圖1所示。
圖1 多內核操作系統架構
Fig.1 Multi kernel operating system architecture
由圖 1可知 ,多內核操作系統同時運行多個內核 ,各內核可具備同構屬性或異構屬性 ,內核間通過高效通信機制協同工作。多內核操作系統以內核為處理場景元素 ,可通過構建動態異構冗余的內核來提供差異化的執行環境 ,是操作系統內生安全的良好載體。
3.1 操作系統內生安全架構
基于多內核操作系統引入內生安全機制后的操作系統內生安全架構如圖 2所示。
圖2 操作系統內生安全架構
Fig.2Internal security architecture of the operating system
架構的難點是如何保持各個部分運行過程中的高效協同以及使用過程中的易用。因此 ,需要定義高效好用的服務接口層、內核交互接口層和資源管理層以提供對上易用服務、對內高效協同和對下高效利用的目標。服務接口層研究如何在內核和文件系統進行異構冗余變換后為應用提供簡潔易用的接口 ,從而實現應用與系統層的交互和協同。內核間交互層研究為了實現各異構內核間高效的通信 ,需要交互的基本信息及交互接口主要包括通信機制和共識接口。資源管理層研究硬件資源的劃分和管理 ,多個內核間的資源相對獨立且隔離 ,包括計算、內存和設備資源 ,通過虛擬化技術等將資源在內核間進行劃分 ,并支持資源的訪問限制定義和管理。
3.2 異構冗余機制
內核是整個軟件??刂坡窂胶吞貦嗉壍暮诵墓芸啬K,因此內核級異構冗余是內生安全的核心 ,除了可以保證基礎核心模塊的安全 ,也可以為頂層應用提供更好的支撐。因此 ,需要通過多維度的控制和數據變換來實現內核異構性 ,結合內核的特點 ,研究各種可變換的維度以及與之特性適配的變換方法、潛在的異構性、開銷和易用性。同時 ,也需要結合應用端的內存布局、執行路徑等需求進行設計。其系統架構如圖 3所示。
圖3 內核異構冗余架構
Fig.3Heterogeneous redundant architecture of kernel
冗余性設計包括多路徑執行和內核間隔離。應用需分派到不同內核上多路徑執行 ,執行集合中的所有內核承接執行任務并為之提供語義一致的執行環境。外部輸入、環境變量、系統配置等信息也被同步復制分派到多個內核上。內核分別獨立執行 ,并監控檢查各自的用戶程序 ,最終多個內核產生與期望一致的輸出。此外 ,多個內核間應彼此隔離。以往的系統中 ,應用程序運行在低特權級 ,內核則獨占高特權級 ,并統轄系統所有權限。系統通過內核實現應用間的隔離和應用與內核的隔離 ,但未知網絡攻擊可能以應用為載體對內核發動攻擊。為提供內生安全的冗余性要求 ,某個內核的崩潰不應該引起全系統的瓦解 ,即操作系統應具備內核級容錯能力。而作為處理場景元素的內核可能具有未知漏洞或后門 ,具備轉化為惡意內核的風險。因此 ,系統應限制內核的特權能力 ,防止惡意內核蓄意窺探或攻擊其他內核 ,從而影響整個系統的穩定 ,即多內核操作系統應具備內核級保護能力。
異構性設計可從操作系統控制平面和數據平面兩個方面展開。操作系統內核控制平面包括系統調用、執行路徑和指令異構 ,因此操作系統內核的異構性也將圍繞這 3個方面展開。系統調用是內核為應用提供服務的交互接口,直接決定應用可使用的系統服務 ,因此其動態異構對系統安全至關重要??赏ㄟ^系統調用接口的運行時隨機化變換 ,以及對接口語義實現模塊的功能變換等設計實現不同內核系統接口的異構性。對于執行路徑異構性則可通過應用執行路徑進行運行時隨機化變換來實現 ,如全局調度順序、鎖獲取釋放順序、隨機數序列產生結果等。但系統函數隨機化面臨實現困難、可擴展性差等問題。實現系統函數隨機化需要對多內核中每一個內核提供的系統調用進行隨機化實現 ,這對在架構中新增或刪減內核時均帶來不便。其次 ,對于異構內核提供的相似功能 ,其執行路徑和執行結果也不一定完全相同 ,因此需要對不同內核的系統調用進行抽象 ,這導致工程量和難度隨內核數量增加成指數上升。最后 ,部分內核間存在相似或相同的系統調用 ,如 macOS內核和 Linux內核存在相似系統調用。因此 ,攻擊可以針對異構內核間的耦合部分 ,從而導致多內核操作系統無法有效識別入侵。執行路徑異構則面臨共識困難、實現困難等挑戰。識別應用在不同內核間的執行路徑來實現內生安全需要高效的共識機制來保證 ,但異構內核本身復雜性和執行路徑不一致性會導致共識機制的實現困難。綜上 ,內核系統控制平面僅從系統調用和執行路徑來實現異構冗余并不能完全滿足內生安全需求。因此 ,本文提出指令隨機化方案來彌補系統函數隨機化、執行路徑異構等異構方案設計的缺陷。
實現指令級異構的主要技術為指令隨機化 ,在編譯時對可執行程序的機器碼進行加密操作 ,在執行前再對每條加密過的指令進行解密 ,以此阻止惡意代碼的攻擊。因此,指令隨機化具有天然的異構性 ,符合內生安全對操作系統異構性的需求。此外 ,相比于系統調用的隨機化 ,指令隨機化能保證在對應用和硬件的透明性基礎上 ,在更底層、更細粒度的層面上實現異構性。
圖4 指令異構冗余架構圖
Fig.4Instruction heterogeneous redundancy architecture diagram
指令異構冗余架構圖如圖 4所示 ,從圖中可知 ,本文在多內核操作系統的基礎上 ,通過動態選取異構內核的指令子集并對子集中的指令進行動態隨機化來加密指令 ,最后在執行時通過解析器來解密指令 ,以此實現指令級的異構。
對于內核的數據平面 ,主要包括內存布局以及加載的可執行文件格式。因此 ,對于內核的數據平面的異構性 ,也將主要圍繞這兩個方面展開。對于內存布局 ,應用的所有運行時數據都維護在程序的地址空間中 ,可對內存地址空間的多目標多粒度隨機化 ,例如可執行程序及其共享庫的加載基址、用戶棧及內核棧偏移、代碼段的順序結構、數據段的棧中順序、代碼和數據在棧中的加密形式等 ,從而通過內核的異構執行機制實現應用執行期間的異構特性。對于可執行文件格式 ,每種操作系統均僅能執行特定的可執行文件格式 ,因而可以通過研究可執行文件格式變換及與之適配的加載器實現對可執行文件異構性的支持。通過上述兩點實現內核數據平面的異構特性。綜上 ,多內核操作系統的異構冗余機制可從指令異構、內存異構和加載方式異構 3點來實現。
3.3 高效通信和共識機制
內核間通信及共識機制是內生安全防護系統中內核間高效交互和協同的基礎。其中 ,內核間通信效率是直接關系到內核間協同效率的根本 ,在單個內核操作系統中 ,進程之間的通信模式和方法豐富 ,是操作系統內核層極為重要的部分。對于跨內核間的進程或模塊的通信 ,數據的傳輸和消息通知需要新的設計以支持上層的通信需求?;诟咝群碎g通信之上構建的共識機制的效率則是系統高效安全共識的關鍵 ,內核執行量大導致行為和結果信息量大 ,怎樣快速共識是必須解決的問題。內核間通信及共識機制系統架構如圖5所示。
圖5 內核間通信和共識機制系統架構 Fig.5Inter kernel communication and consensus architecture
內核間高效通信旨在探究如何在單主機上實現兼顧安全與效率的通信機制。既往的進程間通信或遠程過程調用需要高特權級的參與以保證安全隔離 ,故由內核實現并監督管理通信過程。而在多內核架構中 ,內核由通信過程的中介變為主體 ,且均運行在特權模式 ,因此需要實現高特權下的新型通信方式。而現有的遠程過程調用手段包括網絡通信等方式,不適用于單主機上的通信,應發掘基于內存等片上及片間的高效通信方式。因此,內核間通信既要求充分利用單主機通信的高效,又要求內核間隱私保護,即兼顧共享和隔離。
共識機制研究高效準確的共識機制,以及共識所依賴的請求分發、代理合并以及表決協同等關鍵技術。由于異構內核迥異的運行邏輯,執行應用時所呈現的特征也各不相同,可能展示差異化的執行結果,如不同的系統調用類型與次數、不同的進程間通信次數等。因此,系統需實現異構的監控組件以收集異構內核特定的運行時信息,同時綜合所有內核的響應經由表決得到共識。因此,基于內生安全需求,要求操作系統能容許欺詐的類拜占庭共識算法,通過預設的裁決算法和策略對是否發生隨機錯誤或蓄意攻擊達成共識。
4 相關工作
目前工業界的操作系統內生安全工作包括 SpaceX公司的三冗余系統、博世公司的冗余自動駕駛系統等,學術界則集中在移動目標防御 MTD和擬態防御。移動目標防御通過動態或靜態排列組合、變形、變換或混淆來轉移攻擊者攻擊。Thompson等人[20]提出在多內核環境下實現移動目標防御。移動目標防御雖然能通過隨機性、多樣性和動態性技術來為攻擊者提供隨機且變化的底層系統視圖,以放大網絡攻擊開銷,但這些特性不能改變漏洞或后門的邏輯性質,攻擊依然可能通過短路或協同等方式來攻破防御措施。操作系統級的擬態防御則是通過動態異構冗余綜合考慮功能安全和網絡安全。復旦大學[21]于 2023年提出在多內核操作系統上實現動態異構冗余架構,為內生安全的操作系統方案提供了思路。
5 結語
本文針對日益突出的內生安全問題,從操作系統級提出內生安全解決方案。針對目前單內核操作在架構上不支持內生安全異構性、操作系統層構建內生安全的動態異構冗余機制不成熟和操作系統共識機制設計困難等問題,設計了基于多內核的操作系統內生安全架構,并從異構冗余機制、高效通信和共識機制上展開設計方案。隨著擬態技術與 AI[22]、IoT、Cloud、Data與 SDN等新型技術深度融合,將逐漸形成“擬態 +”AICDS共生生態。例如,CNN[23]、RNN[24]、GNN[25]、GRU[26]等神經網絡算法驅動的人工智能技術,可用于優化擬態多模裁決、態勢感知、數據計算等性能,因此,可將 AI用于分析操作系統架構的安全態勢不足;操作系統內生安全可用于IoT中的智能駕駛輔助系統(ADAS)、車聯網防御系統[27],彌補因物聯網[28]連接泛在、數據聚合、平臺各異、設備復雜和可靠性存在較大隱患等缺陷[29]。但目前操作系統內生安全的事實性安全性能有待提高,部署成本有待降低,且面臨在非協同多模決策下存在攻擊逃逸空間、異構度增益與執行體同步互相掣肘、安全與功能難以平衡和現有內生安全組件擬態熵有限等多重挑戰[30],與各類技術結合的諸多研究點有待突破。
審核編輯:湯梓紅
-
嵌入式系統
+關注
關注
41文章
3593瀏覽量
129473 -
Linux
+關注
關注
87文章
11304瀏覽量
209498 -
操作系統
+關注
關注
37文章
6825瀏覽量
123331 -
多內核
+關注
關注
0文章
4瀏覽量
6953
原文標題:基于多內核的操作系統內生安全技術
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論