曹玉紅 陳思羽
摘? ?要: 操作系統(tǒng)漏洞長期威脅用戶隱私安全,給用戶帶來的不僅是經濟損失,更有個人隱私泄漏等威脅。基于操作系統(tǒng)的內存管理、進程管理、IO管理三大核心功能,分析針對各功能的攻擊方案的表現(xiàn)形式,提出利用深度學習技術,搭建包含基礎數(shù)據層、特征提取層、特征學習層、防御行為層的操作系統(tǒng)多維度安全保護架構?;A數(shù)據層收集操作系統(tǒng)運行數(shù)據,并將原始數(shù)據提供給特征提取層;特征提取層對原始數(shù)據進行變換,向特征學習層提供易于理解與學習的特征;特征學習層借助深度神經網絡,理解特征提取層提供的數(shù)據,并將檢測結果反饋給防御行為層;防御行為層產生防御行為,并優(yōu)化特征學習層,降低誤判概率,提升檢測精度。該架構通用性強,可部署性良好,能檢測到未曾發(fā)現(xiàn)的攻擊。若輔以GPU硬件支持,神經網絡的算力資源開銷將降低80%。
關鍵詞: 操作系統(tǒng);多維度安全保護;深度學習;可部署性;GPU;神經網絡
引言
最早針對操作系統(tǒng)的攻擊產生自1988年11月2日,由就讀于康奈爾大學的研究生Robert Tappan Morris(羅伯特·塔潘·莫里斯)發(fā)起。病毒從麻省理工學院的UNIX計算機上散播,著稱莫里斯蠕蟲(Morris Worm)病毒。該病毒雖然內容簡單,僅有99行源代碼,但危害較大,感染了6 000余個UNIX操作系統(tǒng),占當時操作系統(tǒng)總數(shù)的約10%[1]。該病毒利用的是十分常見的操作系統(tǒng)內存溢出漏洞,其攻擊行為造成了廣泛的影響,也首次開創(chuàng)了操作系統(tǒng)安全這一安全研究領域的先河。
發(fā)展30余年來,已有數(shù)以萬計的操作系統(tǒng)漏洞被發(fā)現(xiàn)或利用。操作系統(tǒng)安全一直受到廣泛關注,在CVE當中記錄的操作系統(tǒng)相關漏洞超過20 000條,占CVE記錄的漏洞總數(shù)的1/6以上。2010-2020年被發(fā)現(xiàn)并記錄在CVE中的操作系統(tǒng)安全漏洞數(shù)量統(tǒng)計如圖1所示,可以看出Windows操作系統(tǒng)漏洞數(shù)量居于首位,接近8 000條。這些廣泛存在的漏洞將長期威脅操作系統(tǒng)用戶的安全,它們不但可能造成用戶信息泄露等一系列的隱私問題,還將導致用戶的算力資源被竊取,給用戶帶來直接經濟損失。
然而,針對操作系統(tǒng)的攻擊卻難以防范,其原因是操作系統(tǒng)安全問題可能來自于操作系統(tǒng)功能的各個維度。深度學習在安全領域的各種成功應用,使得通過深度學習解決復雜的操作系統(tǒng)安全問題成為可能。深度學習不但有強大的表示學習能力,而且善于理解復雜的數(shù)據關系。目前,深度學習已被用于惡意流量監(jiān)測、網絡硬件設備異常診斷等一系列安全問題。
本文構建用于解決通用操作系統(tǒng)安全問題的深度學習應用框架。該框架將從操作系統(tǒng)的進程管理、內存管理、IO管理等核心功能入手,形成包含基礎數(shù)據層、特征提取層、特征學習層、防御行為層的四層架構,從多維度保護操作系統(tǒng)安全,從而突破操作系統(tǒng)安全問題的復雜性、廣泛性和時變性。
1? 基本理論探討與研究需求分析
1.1? 操作系統(tǒng)的核心功能
Abraham在其著作Operating System Concepts[2]當中將操作系統(tǒng)的核心功能分為三大模塊:進程管理、內存管理、IO管理。
(1)進程管理。顧名思義,進程管理的對象是進程。操作系統(tǒng)對進程運行時消耗的硬件資源進行動態(tài)分配和調度,并對進程進行嚴格的訪問控制,以防止進程不正當?shù)厥褂糜布Y源,例如越界讀寫內存、直接訪問內核空間等。
(2)內存管理。內存管理的對象是計算機系統(tǒng)的內存硬件資源,其通過分段和分頁機制向進程分配內存資源,并保證進程與內核、進程與進程之間具有良好的內存隔離。
(3)IO管理。IO管理的對象為計算機外設,其能夠實現(xiàn)一系列IO通信協(xié)議。通信協(xié)議將外設產生的數(shù)據讀入內存,交由CPU處理,或將內存當中的數(shù)據輸出給外設。IO管理功能保證外設無法讀寫任意內存地址、無法干預計算機系統(tǒng)的正常運行。
1.2? 面向操作系統(tǒng)的攻擊方案
管理硬件資源是操作系統(tǒng)的基本功能之一,面向操作系統(tǒng)的攻擊的根本目的是不正當?shù)夭倏v合法用戶的硬件資源。操作系統(tǒng)安全威脅類型如圖2所示,其中面向操作系統(tǒng)的攻擊方案繁多,但無論何種攻擊方案,都是從操作系統(tǒng)的三大核心功能模塊入手的,這最終會導致操作系統(tǒng)的硬件資源被異常使用。
(1)面向進程管理的攻擊方案。該方案包含了各種進程控制流劫持方案。最典型的進程控制流劫持的表現(xiàn)形式是:面向返回地址編程(ROP),攻擊者以棧區(qū)溢出為主要攻擊步驟,利用合法進程在內存中駐留的合法代碼“拼湊”出惡意程序,并劫持進程的控制流,最終導致“拼湊”出的惡意程序被執(zhí)行。此外,進程控制流劫持方案還包含了GOT表劫持等方案,但它們的本質均是劫持進程的控制流,以修改進程行為,使既定的代碼無法被執(zhí)行,而使攻擊者預定的惡意代碼被執(zhí)行。
(2)面向內存管理的攻擊方案。該方案包含了各種內存溢出攻擊方案。棧區(qū)溢出攻擊通過異常輸入流覆蓋函數(shù)的調用堆棧,其目的之一是覆蓋函數(shù)的返回地址,進而修改進程行為,最終欺詐操作系統(tǒng)產生不正當行為。堆區(qū)溢出攻擊的原理與棧區(qū)溢出攻擊相似,但覆蓋的對象為內存堆區(qū)當中存儲的數(shù)據,最終將同樣導致攻擊者預定的惡意行為被操作系統(tǒng)執(zhí)行。
(3)面向IO管理的攻擊方案。該方案包含了發(fā)掘IO通信協(xié)議的實現(xiàn)或設計缺陷的一系列方案。目前成熟的攻擊方案已覆蓋常見的外設IO通信協(xié)議(USB、NFC、藍牙等)。攻擊者偽裝發(fā)送IO協(xié)議通信單元,構造惡意輸入,并獲得除合法IO通信之外的其他權限。除外設IO之外,大量成熟的攻擊方案也覆蓋了文件系統(tǒng)IO與網絡IO。
1.3? 現(xiàn)有操作系統(tǒng)保護方案的弊端
為防御針對操作系統(tǒng)的各類攻擊方案,目前的操作系統(tǒng)將各種保護機制直接編碼到操作系統(tǒng)實現(xiàn)當中,或者對已被發(fā)現(xiàn)的漏洞進行直接編碼修復。
為防御進程管理相關的攻擊,文獻[3]提出了控制流完整性保護(CFI)方案,以確保既定進程行為的正常進行。但控制流完整性保護方案將給進程帶來超過2倍的執(zhí)行開銷。類似的方案還有信息流控制(IFC)方案和指針完整性保護(CPI)方案,但其開銷也較大,目前未能廣泛使用。
為防御內存管理相關的攻擊,Linux 4當中實現(xiàn)了ASLR機制,以預防內存棧區(qū)溢出。在glibc中,目前已引入了ptmalloc2堆管理器,修復了各種堆區(qū)溢出攻擊方案[4]。文獻[5]當中引入了模糊測試方法,實現(xiàn)了堆區(qū)管理模塊的檢測,以預防各種面向內存堆區(qū)的攻擊。
為防御IO管理相關的攻擊,目前的保護機制通常對IO通信協(xié)議的協(xié)議單元進行過濾,希望以此發(fā)現(xiàn)IO攻擊行為。過濾規(guī)則通常由專家根據目前已被發(fā)現(xiàn)的攻擊進行設計。較為先進的IO管理保護方案通過形式化驗證方法發(fā)現(xiàn)內核IO通信協(xié)議的實現(xiàn)漏洞,從而對其進行修復,防止其被惡意外設利用。
以上操作系統(tǒng)保護方案存在兩個典型的弊端。一是這些方案均僅是針對現(xiàn)有的攻擊方案而設計的,其面對新型攻擊方案的防御能力差。二是這些方案通常僅能針對一類或一種攻擊方案,無法應對針對操作系統(tǒng)的攻擊具有的多樣性。在對操作系統(tǒng)安全要求較高的使用場景下,目前的操作系統(tǒng)保護方案無法全方位地防御與各類操作系統(tǒng)相關的攻擊策略。這也正是本文欲借助深度學習強大的表示學習能力,提出操作系統(tǒng)多維度安全保護架構的立意所在。
1.4? 深度學習及其應用現(xiàn)狀
當前深度學習以深度神經網絡為核心。相比于傳統(tǒng)的統(tǒng)計機器學習方法,深度學習擅長理解數(shù)據當中不易被發(fā)掘的關系。深度神經網絡通過反向傳播算法及其變體算法進行模型更新,并可以借助高性能異構計算設備實現(xiàn)加速計算。深度神經網絡的衍生工具諸多,包含擅長處理高維數(shù)據的卷積神經網絡、擅長處理序列化數(shù)據的循環(huán)神經網絡,以及一系列擅長數(shù)據生成任務的對抗學習結構。
目前深度學習在安全領域已有初步應用,如針對惡意流量監(jiān)測的應用[6]、針對加密流量分類的應用[7]和在異常系統(tǒng)事件檢測[8]中的應用。本文則希望借鑒深度學習的方法和理念,構建操作系統(tǒng)多維度安全保護方案,實現(xiàn)深度學習在操作系統(tǒng)安全領域中的應用。
2? 架構流程設計
操作系統(tǒng)多維度安全保護方案的工作流程如圖3所示,大致分為五個部分:
(1)判斷攻擊行為的產生。攻擊者從操作系統(tǒng)的三大核心功能出發(fā),分別對操作系統(tǒng)的進程管理功能、內存管理功能、IO管理功能進行攻擊。這些攻擊方案將導致操作系統(tǒng)陷入異常狀態(tài),使得硬件資源被不正當使用。
(2)基礎數(shù)據采集。本文提出的基于深度學習的操作系統(tǒng)多維度安全保護架構將從進程、內存、IO三大角度,分別抽取操作系統(tǒng)狀態(tài)信息,并對提取得到的信息加以處理,作為深度神經網絡的輸入數(shù)據。
(3)模型理解基礎數(shù)據。利用上述數(shù)據訓練深度神經網絡,經過訓練后的深度神經網絡將具備理解所采集的操作系統(tǒng)狀態(tài)信息的能力,從而可以動態(tài)地判定威脅操作系統(tǒng)安全的惡意行為是否存在。
(4)檢測結果反饋。若發(fā)現(xiàn)惡意的危害行為,則向操作系統(tǒng)的使用者發(fā)出提示信息。操作系統(tǒng)的使用者將人工檢查惡意攻擊行為是否真實存在。若是,使用者將通過管理員權限終止惡意行為,并且將發(fā)現(xiàn)的攻擊方案用于指導操作系統(tǒng)內核源代碼的維護和迭代。另一方面,將動態(tài)檢測的信息實時備份到云端,為更宏觀的操作系統(tǒng)保護應用提供信息依據,用于防御大規(guī)模的操作系統(tǒng)的攻擊。
(5)動態(tài)調整模型。若惡意行為系誤判,則將誤判信息反饋給檢測系統(tǒng),檢測系統(tǒng)將利用這一信息提升檢測精度。
3? 架構功能模塊設計
受傳統(tǒng)機器學習服務(Machine Learning as a Service,MLaaS)軟件架構啟發(fā),將基于深度學習的操作系統(tǒng)多維度安全保護架構設計為圖4所示的分層架構,具體分層包括:基礎數(shù)據層、特征提取層、特征學習層、防御行為層?;A數(shù)據層收集操作系統(tǒng)產生的運行數(shù)據,并將這些原始數(shù)據提供給特征提取層。特征提取層對原始數(shù)據進行變換,向特征學習層提供易于理解與學習的特征。特征學習層借助深度神經網絡,理解特征提取層提供的數(shù)據。最后,將檢測結果反饋給防御行為層,防御行為層產生防御行為,并優(yōu)化特征學習層,以提升檢測精度。
3.1? 基礎數(shù)據層
基礎數(shù)據層與內核交互,收集用于深度神經網絡推理和學習的基礎數(shù)據。按章節(jié)1.1~1.2所述,本文假設攻擊者從三個不同方面(進程、內存、IO)發(fā)起針對操作系統(tǒng)的攻擊,因而基礎數(shù)據層將同樣從這三個方面收集操作系統(tǒng)信息。為預防與進程管理相關的攻擊,基礎數(shù)據層采集進程的系統(tǒng)日志,這是因為當進程控制流被劫持而出現(xiàn)異常行為時,異常行為將直接反映在記錄進程行為信息的系統(tǒng)日志上。為防御針對內存管理的攻擊,基礎數(shù)據層將實時收集操作系統(tǒng)生成的內存使用統(tǒng)計信息,這是因為當與內存管理相關的攻擊發(fā)生時,內存的使用率和讀寫頻率將發(fā)生明顯的變化。為防御與IO管理的相關攻擊,基礎數(shù)據層記錄IO設備的接入日志和交互統(tǒng)計信息,這是因為當異常外設與操作系統(tǒng)交互時,其數(shù)據傳輸速率等交互統(tǒng)計信息和接入日志將顯著區(qū)別于正常外設。
3.2? 特征提取層
特征提取層的作用是對基礎數(shù)據層提取得到的原始數(shù)據抽取有效信息,丟棄冗余信息,并進行變換,得到深度神經網絡易于理解的數(shù)據表示。在這一層面上需要完成兩個重要工作:一是對基礎數(shù)據進行清洗?;A數(shù)據層采集得到的數(shù)據包含大量冗余信息和與攻擊檢測任務不相關的信息,對不相關數(shù)據進行清洗,將使模型易于挖掘到有用信息,對于提升檢測精度有明顯幫助。二是對數(shù)據進行特征提取。在基礎數(shù)據層,采集得到的是復雜的異構數(shù)據,需要對其進行基礎的變換。對于時序化數(shù)據,例如采集得到的日志等,應設計對應的日志解析引擎,將文本化的日志數(shù)字化;對于非時序化數(shù)據,例如采集得到的操作系統(tǒng)統(tǒng)計特征等,應引入均值、方差、協(xié)方差等指標,對統(tǒng)計信息的數(shù)值范圍進行調整與優(yōu)化。
3.3? 特征學習層
特征學習層利用深度神經網絡,理解特征提取層變換得到的時序化、非時序化特征,判斷操作系統(tǒng)是否遭受攻擊行為。對于特征提取層變換得到的時序化數(shù)據,可以采用循環(huán)神經網絡結構,抽取其時間維度上的特征。注意針對操作系統(tǒng)的攻擊方案通常包含多個步驟,因而這些步驟順序進行的特點將被反映到時序化數(shù)據表示上,使得循環(huán)神經網絡結構可以更好地理解并發(fā)現(xiàn)攻擊行為。對于非時序化特征,可以使用全連接神經網絡進行理解,這是因為非時序化特征一般具有較高維度,使用全連接神經網絡可以有效控制推理和訓練的時間開銷。當然,最終需要對時序化信息和非時序化數(shù)據的理解結果加以綜合,從而輸出操作系統(tǒng)異常指數(shù)的量化指標。當操作系統(tǒng)異常指數(shù)的量化指標高于某一閾值時,則有足夠把握認為攻擊行為已發(fā)生。
3.4? 防御行為層
防御行為層的作用是當判定惡意攻擊行為產生時,對操作系統(tǒng)的使用者進行通知,并采取及時的防御措施。此時,操作系統(tǒng)的使用者將采用人工方式對操作系統(tǒng)進行診斷。如果發(fā)現(xiàn)特征學習層誤報,則將誤報結果反饋給特征學習層,特征學習層將根據反饋結果調整模型,以提升檢測精度;當人工診斷發(fā)現(xiàn)惡意攻擊行為確鑿,則可以及時對攻擊行為進行阻斷,并利用發(fā)現(xiàn)的攻擊行為修復操作系統(tǒng)漏洞,進而指導操作系統(tǒng)的優(yōu)化與設計。此外,防御行為層還對檢測結果進行云端備份,這些備份信息為大規(guī)模網絡攻擊診斷與分析提供了數(shù)據支持,指導與數(shù)據挖掘相關的其他一系列安全研究工作。
4? 效果評估
本文提出的基于深度學習的操作系統(tǒng)多維度安全保護架構從操作系統(tǒng)的三大核心功能出發(fā),全方位地防御來自操作系統(tǒng)各個方面的攻擊。相比于傳統(tǒng)的防御方案,其優(yōu)點有三:一是不針對特定一種攻擊方案進行防御,而是防御各類與操作系統(tǒng)相關的攻擊,打破了防御措施和攻擊方案的一對一關系;二是可以防御未被發(fā)現(xiàn)的攻擊,鑒于本架構不是針對已被發(fā)現(xiàn)的攻擊方案而設計的,因而當未被發(fā)現(xiàn)的攻擊發(fā)生時,本架構仍然可以發(fā)現(xiàn)攻擊行為并采取防御措施;三是本架構的可部署性高,不限定于特定操作系統(tǒng),無需修改內核源代碼。
然而,本架構的應用最好具有GPU硬件支持,因為本架構也會為操作系統(tǒng)的運行帶來額外開銷。鑒于本架構大量使用了深度神經網絡,因此在沒有GPU計算資源的支持下,本架構將大量消耗CPU算力資源。當引入GPU硬件支持時,本架構的計算開銷將被負載到GPU上,從而節(jié)約CPU的算力資源。此外,GPU可將神經網絡的計算開銷降低至CPU計算時的20%,從而顯著節(jié)約計算成本。
5? 結束語
本文將深度學習作為關鍵技術,從操作系統(tǒng)的三大核心功能及相應的攻擊方案出發(fā),提出了操作系統(tǒng)多維度安全保護方案。相比于傳統(tǒng)方案,本方案通用性強,可部署性良好,并能檢測到未曾被發(fā)現(xiàn)的攻擊。基于深度學習的操作系統(tǒng)多維度安全保護架構是一種新型安全防護策略,對網絡信息安全研究、安全可信操作系統(tǒng)建設具有重要意義。
參考文獻
[1] Morris worm [EB/OL]. [2020-11-21]. https://en.wikipedia.org/wiki/Morris_worm.
[2] Abraham S, Greg G, Peter B G. Operating System Concepts: 7th edition [M]. Wiley, 2009.
[3] Ding R, Qian C X, Song C Y, et al. Efficient Protection of Path-Sensitive Control Security[C]// Proceedings of 26th USENIX Security Symposium. USENIX, 2017.
[4] Silvestro S, Liu H Y, Liu T Y. GUARDER: A Tunable Secure Allocator[C]// Proceedings of 27th USENIX Security Symposium. USENIX, 2018.
[5] Eckert M, Bianchi A, Wang R Y, et al. HEAPHOPPER: Bringing BoundedModel Checking to Heap Implementation Security[C]// Proceedings of 27th USENIX Security Symposium. USENIX, 2018.
[6] Mirsky Y, Doitshman T, Elovici Y, et al. Kitsune: An Ensemble of Autoencoders for Online Network Intrusion Detection[C]// Network and Distributed Systems Security (NDSS) Symposium. IOS, 2018.
[7] Liu C, He L, Xiong G, et al. FS-Net: A Flow Sequence Network For Encrypted Traffic Classification[C]// IEEE INFOCOM 2019 - IEEE Conference on Computer Communications. IEEE, 2019.
[8] Shen Y, Mariconti E, Vervier P A, et al. Tiresias: Predicting Security Events Through Deep Learning[C]// ACM SIGSAC Conference on Computer and Communications Security (CCS). ACM, 2018.