尤姍姍 殷一丹
杭州師范大學(xué)信息科學(xué)與工程學(xué)院 浙江 杭州 311121
新型基礎(chǔ)設(shè)施建設(shè)(簡稱新基建)主要是指面向現(xiàn)代化建設(shè)和數(shù)字經(jīng)濟(jì)發(fā)展,支撐數(shù)據(jù)的感知、連接、匯聚、融合、分析、決策、執(zhí)行、安全等各環(huán)節(jié)運行,并提供智能化產(chǎn)品和服務(wù)的新一代數(shù)字基礎(chǔ)設(shè)施體系。以操作系統(tǒng)為核心的基礎(chǔ)軟件平臺,承擔(dān)著高效管理計算機(jī)系統(tǒng)的軟硬件資源、為應(yīng)用軟件提供共性的基礎(chǔ)服務(wù)、為用戶提供友好易用的人機(jī)交互手段的功能,是新基建時代數(shù)字基礎(chǔ)設(shè)施體系的核心基礎(chǔ)。然而,操作系統(tǒng)的安全不容忽視,2017年5月,Windows XP系統(tǒng)停止更新服務(wù)3年后,利用Windows系統(tǒng)SMB漏洞席卷全球的WannaCry勒索病毒,橫掃150個國家的政府、學(xué)校、醫(yī)院、金融、航班等各領(lǐng)域。2019年2月微軟公布其產(chǎn)品有70%的漏洞涉及內(nèi)存安全問題,包括緩沖區(qū)溢出、競爭條件、分頁錯誤、空指針、堆棧耗盡、堆損壞、UAF漏洞或雙重釋放等。
新基建時代下,智能建筑擁有大量的新型設(shè)備,如5G、數(shù)據(jù)中心、工業(yè)互聯(lián)網(wǎng)、BIM等,其他新型基礎(chǔ)設(shè)施建設(shè)加快推進(jìn),萬物互聯(lián)、人機(jī)交互、天地一體……網(wǎng)絡(luò)空間與物理空間進(jìn)一步聯(lián)通融合,對網(wǎng)絡(luò)的攻擊可能直接滲入物理世界,影響人們的生活、社會穩(wěn)定和國家安全。新基建浪潮下的安全威脅將再度升級[1],如何保障核心基礎(chǔ)軟件操作系統(tǒng)的安全成為新基建的基礎(chǔ)建設(shè)和安全基石。隨著新基建被廣泛關(guān)注,專家們提出人才培養(yǎng)是加速新基建進(jìn)程中應(yīng)該注意的關(guān)鍵問題。因此,如何鍛煉員工的系統(tǒng)安全能力,形成系統(tǒng)安全意識已成為企業(yè)管理的重要目標(biāo)之一。
本文對與系統(tǒng)安全密切相關(guān)的操作系統(tǒng)課程進(jìn)行培訓(xùn)實踐探索,并在培訓(xùn)過程中引入安全理論知識,開設(shè)并完善相關(guān)實踐培訓(xùn)內(nèi)容,為有效鍛煉員工系統(tǒng)安全能力,促進(jìn)企業(yè)構(gòu)建更為全面的系統(tǒng)思維,從而為提升新基建下面向系統(tǒng)安全能力的企業(yè)信息人才水平奠定良好的基礎(chǔ)[2]。
操作系統(tǒng)安全是融合理論知識、工程技能以及實踐能力培養(yǎng)的綜合性培訓(xùn)內(nèi)容[3-4],然而在現(xiàn)有技術(shù)及問題對系統(tǒng)安全屬性提出了更高要求的情況下,局限于傳統(tǒng)培訓(xùn)方法及理念的操作系統(tǒng)課程無法提供較為完善的面向系統(tǒng)安全能力培養(yǎng)的實訓(xùn)培訓(xùn)方案,主要表現(xiàn)在以下3個方面。
目前的培訓(xùn)大多只圍繞操作系統(tǒng)本身展開,缺乏安全性等系統(tǒng)重要屬性的考慮,未能與相關(guān)系統(tǒng)安全課程相互融合,導(dǎo)致相關(guān)知識結(jié)構(gòu)體系整體呈現(xiàn)單一且缺乏關(guān)聯(lián)性的特點,使得員工缺乏系統(tǒng)安全理論支撐,難以構(gòu)建跨課程的系統(tǒng)思維,造成員工所學(xué)知識無法與實際應(yīng)用相結(jié)合的現(xiàn)象。
操作系統(tǒng)課程作為高校計算機(jī)專業(yè)的核心課程,還設(shè)有與培訓(xùn)理論相配套的實驗課程。然而不同教材間的水平差異較大[5],導(dǎo)致設(shè)計的實驗難度存在偏差,使得員工無法通過實驗較好地把握與鞏固理論原理與知識點間的聯(lián)系。加上教材所涵蓋的安全知識偏少,也為探索面向系統(tǒng)安全能力培養(yǎng)的實訓(xùn)培訓(xùn)增加了難度。
目前的操作系統(tǒng)培訓(xùn)模式強(qiáng)調(diào)以知識導(dǎo)向為主,理論課程往往占據(jù)主導(dǎo)地位[2,5-6],僅起到輔助員工理解與鞏固知識的作用,缺乏項目實踐訓(xùn)練,未能達(dá)到培養(yǎng)員工實踐能力的目的。此外,現(xiàn)有培訓(xùn)模式多以培訓(xùn)內(nèi)容驅(qū)動培訓(xùn)過程,無法形成體系化系統(tǒng)安全能力培養(yǎng)實踐實訓(xùn)模式。
針對現(xiàn)有問題,在操作系統(tǒng)培訓(xùn)過程中,融入安全知識,形成體系化、結(jié)構(gòu)化的理論體系,加深與擴(kuò)大操作系統(tǒng)與系統(tǒng)安全知識的深度與廣度,并設(shè)計與完善安全操作系統(tǒng)實踐實訓(xùn)課程,以鞏固知識和培養(yǎng)面向系統(tǒng)的安全能力,已成為新基建下操作系統(tǒng)課程培訓(xùn)改革的重點。
本文以系統(tǒng)安全能力培養(yǎng)為目標(biāo)導(dǎo)向,對操作系統(tǒng)課程實訓(xùn)培訓(xùn)進(jìn)行實踐探索,包括以下3個階段:安全理論知識學(xué)習(xí)、多層次實驗操作以及項目式實踐訓(xùn)練。
首先,在課程知識的基礎(chǔ)上融入相關(guān)安全知識,讓員工學(xué)習(xí)安全理論知識,建立跨課程系統(tǒng)思維;其次,重視員工個人安全實驗?zāi)芰εc素養(yǎng)的形成,設(shè)計多層次實驗操作,鍛煉其安全實驗?zāi)芰Γ蛔詈?,提供項目式實踐訓(xùn)練,追蹤當(dāng)下熱門系統(tǒng)安全項目,積累項目實踐經(jīng)驗,從而達(dá)到培養(yǎng)員工系統(tǒng)安全能力的目的。
本文選擇了6個實驗,見表1。從操作系統(tǒng)內(nèi)容來看,通過Shell編程及文件系統(tǒng)調(diào)用建立起操作系統(tǒng)的初步防線;線程是進(jìn)程的基本執(zhí)行單元,解決多線程編程中資源搶占的問題將為進(jìn)程內(nèi)部安全提供保障;而進(jìn)程管理、進(jìn)程同步的相關(guān)實驗幫助員工更加深入地了解進(jìn)程的概念,從而解決進(jìn)程外部安全問題,為后續(xù)學(xué)習(xí)奠定基礎(chǔ);作為理解操作系統(tǒng)原理必不可少的部分,CPU調(diào)度、虛擬內(nèi)存管理的實驗?zāi)軌蚣由顔T工對操作系統(tǒng)內(nèi)部機(jī)制的理解。
表1 實驗內(nèi)容及安排
所設(shè)置的實驗,結(jié)合典型安全威脅滲透系統(tǒng)安全理論知識,要求員工利用所學(xué)知識完成實驗?zāi)康?,并在此基礎(chǔ)上闡述可能存在的安全隱患,幫助員工在遞進(jìn)式實驗內(nèi)容中掌握系統(tǒng)原理,鍛煉系統(tǒng)安全實驗?zāi)芰?,形成系統(tǒng)安全意識。
4.2.1 實驗描述
進(jìn)程是一個程序的運行實體,當(dāng)在操作系統(tǒng)中運行一個程序時,操作系統(tǒng)會為程序創(chuàng)建一個進(jìn)程,為程序在內(nèi)存中分配運行所需的空間,這些空間被稱為進(jìn)程空間。進(jìn)程空間主要由三部分組成:代碼段、數(shù)據(jù)段和棧段。當(dāng)一個用戶進(jìn)程要從磁盤讀取數(shù)據(jù)時,內(nèi)核一般不直接讀磁盤,而是將內(nèi)核緩沖區(qū)中的數(shù)據(jù)復(fù)制到進(jìn)程緩沖區(qū)。通過模擬進(jìn)程的緩沖區(qū)溢出攻擊,進(jìn)而引發(fā)對代碼劫持的實驗,幫助員工加強(qiáng)對進(jìn)程知識的理解。
4.2.2 實驗內(nèi)容
在進(jìn)程代碼中調(diào)用read函數(shù)讀取用戶輸入字符串(圖1),并且該函數(shù)未對輸入長度進(jìn)行限制,實驗者通過緩沖區(qū)溢出漏洞覆蓋棧幀中的返回地址,從而劫持程序的執(zhí)行流。在實驗過程中開啟可執(zhí)行棧選項和關(guān)閉地址隨機(jī)化選項,從而定位到棧的地址。
圖1 進(jìn)程代碼
4.2.3 實驗結(jié)果
對程序進(jìn)行調(diào)試,首先運行到調(diào)用read函數(shù)前,整個調(diào)試界面如圖2所示。正常情況函數(shù)的參數(shù)、返回地址、用來臨時存儲字符串的緩沖區(qū)等都維護(hù)在棧中。
圖2 調(diào)試界面
由于程序中存在緩沖區(qū)溢出的漏洞,通過控制輸入字符串長度,向緩沖區(qū)依次寫入過長的數(shù)據(jù),從而將存儲在棧中的正常數(shù)據(jù)進(jìn)行覆蓋。棧中的數(shù)據(jù)如圖3右側(cè)所示,可看到棧中都被a的ASCII碼61填充了,導(dǎo)致程序運行錯誤。
圖3 正常情況的棧與異常情況的棧
由于攻擊者會對程序進(jìn)行分析,確定緩沖區(qū)開頭與返回地址的偏移,當(dāng)存儲在棧中的函數(shù)的返回地址被覆蓋時,就實現(xiàn)了對于程序執(zhí)行流的劫持,如圖4右側(cè)所示,由于緩沖區(qū)溢出漏洞的存在,用戶可以輸入過長的字符串,而過長的數(shù)據(jù)也會保存在緩沖區(qū)中,使得左側(cè)存儲了正常數(shù)據(jù)的位置都如右側(cè)所示,被緩沖區(qū)所覆蓋,從而實現(xiàn)對代碼的劫持。
圖4 棧內(nèi)部結(jié)構(gòu)變化
以項目為導(dǎo)向,深化企業(yè)對操作系統(tǒng)安全知識的理解,提升員工系統(tǒng)安全能力和強(qiáng)化思維培養(yǎng)。通過引出實踐項目,拓展操作系統(tǒng)及相關(guān)安全知識的應(yīng)用范疇,鼓勵以項目為產(chǎn)出的學(xué)習(xí)方式,讓員工在實踐中強(qiáng)化所學(xué)。
實踐項目安排見表2,包括多源網(wǎng)絡(luò)安全事件分析系統(tǒng)、Android手機(jī)操作系統(tǒng)應(yīng)用間的移動安全隔離項目、基于中繼技術(shù)的車載無線通信系統(tǒng)、面向安全云存儲的數(shù)據(jù)安全共享平臺。員工在掌握各項目所涉及的操作系統(tǒng)原理前提下,完成主要內(nèi)容,在實訓(xùn)中鍛煉與提高自身的系統(tǒng)安全能力,形成系統(tǒng)安全意識,構(gòu)建計算機(jī)系統(tǒng)思維。
表2 系統(tǒng)安全實踐項目
本項目研究Android手機(jī)操作系統(tǒng)應(yīng)用間的通信機(jī)制,針對Android軟件棧不同層次現(xiàn)有通信方式存在的安全問題進(jìn)行相應(yīng)加固,擬從應(yīng)用隔離、數(shù)據(jù)隔離兩方面實施安全防護(hù),以期達(dá)到實現(xiàn)工作相關(guān)應(yīng)用與普通應(yīng)用的隔離,阻斷兩者間的訪問與通信,實現(xiàn)工作機(jī)密文件與普通文件的隔離存儲,防止機(jī)密文件內(nèi)容外泄。
5.2.1 實踐描述
本項目實踐分別從應(yīng)用隔離層面與數(shù)據(jù)隔離層面,提出了采用通信截斷與應(yīng)用隔離安裝方法和利用訪問控制方式的三種措施,幫助員工在實踐訓(xùn)練過程中掌握Android手機(jī)操作系統(tǒng)應(yīng)用間的通信機(jī)制以及數(shù)據(jù)、文件的隔離存儲方式,有利于培養(yǎng)系統(tǒng)安全能力。
5.2.2 實踐任務(wù)
任務(wù)一:尋找攔截點,并在找到后更改或者替換ioctl,使其具有攔截功能,最后在該進(jìn)程中空閑的內(nèi)存地址處寫入修改代碼,完成注入,最終實現(xiàn)通信截斷。
任務(wù)二:建立2個Launcher以實現(xiàn)應(yīng)用的隔離存放:新建Home應(yīng)用Launcher(安全域),工作相關(guān)應(yīng)用安裝在該Launcher下,普通應(yīng)用安裝在默認(rèn)Launcher(普通域),以此實現(xiàn)工作應(yīng)用與普通應(yīng)用的隔離。
任務(wù)三:設(shè)置相應(yīng)的訪問控制策略,即安全域內(nèi)應(yīng)用的數(shù)據(jù)只能提供給同一域內(nèi)的應(yīng)用使用,禁止不同域間SQLite數(shù)據(jù)的交叉訪問,從而實現(xiàn)數(shù)據(jù)隔離。
5.2.3 實踐結(jié)果
通過對上述3個任務(wù)的實踐訓(xùn)練,員工從應(yīng)用隔離與數(shù)據(jù)隔離兩個方面實現(xiàn)了工作相關(guān)應(yīng)用與普通應(yīng)用的隔離,阻斷兩者間的訪問與通信,實現(xiàn)工作機(jī)密文件與普通文件的隔離存儲,并在解決Android軟件棧不同層次現(xiàn)有通信方式存在的安全問題過程中,加深了對Android手機(jī)操作系統(tǒng)應(yīng)用間通信機(jī)制的理解,鍛煉和提升了系統(tǒng)安全能力。
安全操作系統(tǒng)作為信息系統(tǒng)核心,已有多種較為成熟的培訓(xùn)方法值得借鑒。但近年來,在新基建的背景下,技術(shù)應(yīng)用的發(fā)展與安全問題的出現(xiàn),使得安全這一系統(tǒng)基本屬性愈發(fā)受重視。因此,筆者以培養(yǎng)系統(tǒng)安全能力為目標(biāo)導(dǎo)向,基于操作系統(tǒng)原理,結(jié)合實踐實訓(xùn),展開對操作系統(tǒng)安全內(nèi)容培訓(xùn)的改革。筆者采取系統(tǒng)化遞進(jìn)培訓(xùn)模式,通過整合相關(guān)安全知識完善培訓(xùn)理論,并在進(jìn)行多層次安全操作系統(tǒng)實驗的過程中滲透與鞏固系統(tǒng)安全知識,最后利用項目式實踐訓(xùn)練進(jìn)一步鍛煉和提升員工的系統(tǒng)安全能力,形成員工系統(tǒng)安全意識,促進(jìn)員工構(gòu)建更為全面的計算機(jī)系統(tǒng)思維,有助于培養(yǎng)具有理解、分析、實踐能力的綜合型和創(chuàng)新型技術(shù)人才。
[1] 潘教峰,萬勁波.構(gòu)建現(xiàn)代化強(qiáng)國的十大新型基礎(chǔ)設(shè)施[J].中國科學(xué)院院刊,2020,35(5):545-554.
[2] 李姍姍,董威,羅宇,等.國產(chǎn)操作系統(tǒng)研發(fā)對系統(tǒng)能力培養(yǎng)的需求與實踐[J].計算機(jī)工程與科學(xué),2018,40(增刊1):32-36.
[3] 趙偉華,董黎,林菲,等.工程認(rèn)證下操作系統(tǒng)課程實踐環(huán)節(jié)的改革探索[J].實驗技術(shù)與管理,2020,37(4):172-177.
[4] 吳淑泉.高校"Linux操作系統(tǒng)"課程培訓(xùn)研究與探索[J].教育理論與實踐,2017,37(33):57-58.
[5] 王芳芳.基于翻轉(zhuǎn)課堂的操作系統(tǒng)課程微課培訓(xùn)模式的構(gòu)建方式[J].中國教育學(xué)刊,2015(增刊1):1-2.
[6] 楊九俊,彭鋼,萬偉.學(xué)校課程能力的實踐創(chuàng)新與模型建構(gòu)[J].教育研究,2017,38(2):104-111.