姚立紅, 邱衛(wèi)東, 薛 質(zhì), 李建華
(上海交通大學 信息安全工程學院, 上海 200240)
隨著各行各業(yè)信息化進程的推廣深入,隨之而來的信息安全問題越來越成為人們關注的焦點,影響著人們工作和生活的方方面面,甚至一些特殊行業(yè)(如電網(wǎng)、核電、交通等)的信息安全關乎著整個國家的安全。
為實施國家安全戰(zhàn)略,加快信息安全高層次人才的培養(yǎng),國務院學位委員會和教育部今年增設了“網(wǎng)絡空間安全”一級學科,各高校也在積極開展網(wǎng)絡空間安全專業(yè)的學科建設和人才培養(yǎng)。
操作系統(tǒng)作為信息系統(tǒng)的支撐軟件,統(tǒng)一管理著信息系統(tǒng)重要資源(文件、網(wǎng)絡數(shù)據(jù)、設備等),提供訪問這些資源的服務接口(系統(tǒng)調(diào)用、API等),應用程序通過調(diào)用操作系統(tǒng)的服務接口來完成資源訪問操作[1,2]。系統(tǒng)關鍵資源的安全保護離不開操作系統(tǒng)的支持,在操作系統(tǒng)中進行系統(tǒng)資源訪問的安全增強能有效保障信息系統(tǒng)的安全,是網(wǎng)絡空間安全的一個重要研究方向。
因此,在網(wǎng)絡空間安全專業(yè)的建設中,在操作系統(tǒng)課程教學基礎上開展操作系統(tǒng)安全增強實驗,一方面能貼合網(wǎng)絡空間安全的實際需求,另一方面能培養(yǎng)學生的動手實踐能力,激發(fā)他們對學習和鉆研信息安全技術的興趣和熱情,還能在很大程度上加深他們對信息安全基本原理和技術的理解[3,4]。
相較于其它專業(yè),網(wǎng)絡空間安全專業(yè)具有多學科交叉性的特點,更側(cè)重于解決實際的安全工程問題。除相關理論基礎知識學習之外,網(wǎng)絡空間安全專業(yè)的學生更要注重實際動手能力和解決實際問題能力的培養(yǎng)。
為此,本文的操作系統(tǒng)安全增強實驗定位為設計型實驗,需要學生直接參與到實驗實施過程中的每個環(huán)節(jié)。這項設計型實驗具有如下的要求:
(1)指導教師為每個實驗確定出總體目標和要求,實驗方法和具體流程由學生自己規(guī)劃和完成,實驗結(jié)果并不唯一,而是隨所采用的實驗方法和流程而變化,因而在這項設計型實驗的完成過程中,需要學生發(fā)揮較高的主觀能動性。
(2)實驗過程中不集中提供現(xiàn)成的實驗平臺。個人電腦在學生中的普及使學生在課下開展這項設計型實驗成為可能。這項實驗需要學生按照教學指導,自己搭建具體的實驗環(huán)境和平臺,這能更進一步地鍛煉學生的實踐動手能力。
(3)遵循軟件工程流程完成這項設計型實驗,實驗本身就是一個完整過程:開發(fā)目標和需求分析、軟件總體設計、軟件詳細設計、代碼編程、功能及測試等。在實驗完成之后,這些軟件工程流程產(chǎn)生的文檔、軟件工具源代碼以及實驗報告等需在相應的時間節(jié)點提交,并由指導教師進行審查或階段評審。另外,在實驗開展過程中的關鍵節(jié)點,如需求分析及總體設計、中期進展、實驗完成等,學生需要就實驗的進度或成果向指導教師進行匯報或演示。
設計型實驗難度是否合適對順利開展操作系統(tǒng)安全增強實驗教學以及培養(yǎng)學生動手能力至關重要,如果實驗題目難度過大,很容易挫損學生參加實驗的積極性,甚至會產(chǎn)生學生抄襲別人作業(yè)的情況。如果題目過于簡單,則很難體現(xiàn)出鍛煉學生的動手能力以及實踐創(chuàng)新能力的效果。
因此設計型實驗題目應該以中等水平的學生經(jīng)過一定的努力(如查閱資料、向教師或同學請教等)后能夠完成的難度為準。
在現(xiàn)有的操作系統(tǒng)中,Linux系統(tǒng)由于其出色的性能和穩(wěn)定性、開放源代碼特性帶來的靈活性和可擴展性以及較低廉的成本,受到計算機業(yè)界的廣泛關注和應用。本文所設計的操作系統(tǒng)安全增強實驗也是基于Linux操作系統(tǒng)實施。實驗分為兩大類,一是基于Linux安全模塊LSM(Linux Security Module)的操作系統(tǒng)內(nèi)核安全增強類實驗,一類是基于系統(tǒng)調(diào)用重載的操作系統(tǒng)內(nèi)核安全增強類實驗。
LSM是Linux內(nèi)核的一個輕量級通用訪問控制框架,用戶可以根據(jù)需求選擇合適的安全模塊加載到Linux內(nèi)核中,或者設計和實現(xiàn)相應的安全模塊,從而提高Linux訪問控制機制的靈活性和易用性[5,6]。
為實現(xiàn)對系統(tǒng)關鍵資源進行按策略的、細粒度的安全控制,本文基于LSM設計如下的操作系統(tǒng)內(nèi)核安全增強類實驗:
1)基于LSM的文件訪問控制
本實驗基于Linux LSM機制,通過向LSM框架注冊文件訪問類操作鉤子函數(shù),在鉤子函數(shù)中依據(jù)所制定的安全策略對這些文件訪問類操作進行是否允許的控制。安全控制策略要素可包括用戶、進程、文件或目錄、操作、時間等。
2)基于LSM的程序運行權限管理
本實驗基于Linux LSM機制,通過實現(xiàn)一組相關的鉤子函數(shù),對特定應用程序的運行權限進行限定,如只能訪問指定目錄下的文件、不能對外發(fā)起網(wǎng)絡連接等。本實驗可用于為不可信或來歷不明的程序提供一個受限的、可控的程序運行環(huán)境。
3)基于LSM的程序完整性保護
本實驗基于Linux LSM機制,通過實現(xiàn)一組鉤子函數(shù),以達到程序的靜態(tài)完整性保護和動態(tài)完整性保護。前者主要是保證應用程序的可執(zhí)行文件和相關資源文件(如配置文件等)不被其它程序破壞,后者主要是保證應用程序在其運行過程中不被其它程序干擾,如該應用程序運行時的進程不被非法終止等。
4)基于LSM的網(wǎng)絡連接控制
本實驗通過基于Linux LSM機制,實現(xiàn)與網(wǎng)絡通信操作相關的LSM鉤子函數(shù),實現(xiàn)對各種網(wǎng)絡連接和通信操作的控制,從而實現(xiàn)類似于Windows系統(tǒng)中個人防火墻的功能。
系統(tǒng)調(diào)用是操作系統(tǒng)對應用程序提供的服務接口,是獲得系統(tǒng)操作相關信息,以及進行操作控制和操作記錄的理想之處。
本文基于系統(tǒng)調(diào)用重載的操作系統(tǒng)內(nèi)核安全增強類實驗包括如下的幾個實驗:
1)基于系統(tǒng)調(diào)用重載的系統(tǒng)級資源訪問審計
本實驗的目標是基于系統(tǒng)調(diào)用重載的方法實現(xiàn)一個系統(tǒng)級的資源訪問審計,即通過修改系統(tǒng)調(diào)用入口地址表,實現(xiàn)對系統(tǒng)資源訪問的相關系統(tǒng)調(diào)用處理函數(shù)的重載,完成操作上下文信息的收集,并對收集到的信息進行格式化存儲、按條件查詢、統(tǒng)計等,從而實現(xiàn)系統(tǒng)級的資源訪問審計。
2)基于系統(tǒng)調(diào)用重載的系統(tǒng)關鍵程序保護
本實驗通過系統(tǒng)調(diào)用重載方式來實現(xiàn)系統(tǒng)關鍵程序的安全保護,即保證程序所需要的資源(如可執(zhí)行文件、配置文件等)不被非法刪除、運行過程不被其它程序干擾,從而為一些系統(tǒng)重要程序的運行提供更加安全的執(zhí)行環(huán)境。
3)基于系統(tǒng)調(diào)用重載的基本型文件保險箱
本實驗通過系統(tǒng)調(diào)用重載方式實現(xiàn)文件保險箱,為用戶的重要數(shù)據(jù)提供嚴格的安全保障。本實驗的目標是設置一個文件夾(即保險箱文件夾)用作文件保險箱的數(shù)據(jù)存儲,同時開發(fā)一個保險箱數(shù)據(jù)管理程序,實現(xiàn)保險箱內(nèi)文件的管理。保險箱文件夾對其它任何程序都不可見,其它程序也無法訪問、操作保險箱內(nèi)的文件,從而保護用戶的重要數(shù)據(jù)。
4)基于系統(tǒng)調(diào)用重載的加密型文件保險箱
本實驗的目標是要實現(xiàn)一個加密型文件保險箱,該保險箱除實現(xiàn)基本型文件保險箱的所有安全功能外,還實現(xiàn)對保險箱數(shù)據(jù)文件的加密和解密,即將文件放入到文件保險箱時對文件內(nèi)容進行加密,當從文件保險箱中取出文件時,對文件進行解密以恢復文件的原始內(nèi)容。
該實驗在一個學期內(nèi)完成,總課時設定為54個學時,以學生自主進行特定實驗項目的軟件開發(fā)為主,教師以組織實驗課堂匯報和討論、檢查階段性報告和考核評審等手段來了解和指導實驗項目開發(fā)的進程,并針對性地解決學生在實驗中所遇到的具體問題,同時輔以必要的少量的課堂集中教學。
具體的教學形式有如下三個方面:
(1)課堂集中教學:主要包含三部分內(nèi)容:①實驗概述,向?qū)W生明確實驗背景、教學目標、教學形式、考核方式、組織和選題、項目控制等內(nèi)容;②軟件工程知識回顧,重點強調(diào)軟件工程流程,講解學生在完成實驗項目過程中如何遵循軟件工程的流程;③逐一講解實驗的具體題目,包括每個題目的具體目標和要求,以及注意事項。
(2)軟件設計與開發(fā)實踐:學生按照自己所選定的實驗題目完成相應的實驗系統(tǒng)設計,并基于合適的程序設計語言來具體實現(xiàn)。考慮到目前學生個人電腦的普及,不再統(tǒng)一安排上機時間,由學生自己安排時間完成軟件設計和開發(fā)過程。教師提供網(wǎng)絡在線指導,以便于解決學生在進行軟件設計和開發(fā)中遇到的問題和困惑。
(3)課堂匯報和討論:學生在進行每個實驗的軟件設計和開發(fā)過程中,至少進行三次的課堂匯報,以便于教師及明發(fā)現(xiàn)學生在實驗項目實施過程中的問題,并給予相應的提示和指導。具體包括:①開題報告,就選題、開發(fā)目標、需求分析、進度計劃、關鍵問題和解決方案匯報;②軟件開發(fā)中期進展匯報;③軟件功能展示和結(jié)題匯報。
操作系統(tǒng)安全增強實驗涉及到操作系統(tǒng)內(nèi)核編程,涉及到的知識點多并且編碼和調(diào)試難度大。為了幫助學生能盡快地展開實驗,指導教師事先開發(fā)出基于LSM機制以及系統(tǒng)調(diào)用重載的框架Demo供學生參考,這樣學生就可將工作重心放到如何設計和實現(xiàn)安全功能上,而不在如何注冊LSM鉤子函數(shù)以及重載系統(tǒng)調(diào)用處理函數(shù)問題上花費過多的時間。
考慮到操作系統(tǒng)安全增強實驗的難度以及對學生溝通和協(xié)調(diào)能力的培養(yǎng),指導教師組織學生以小組的形式開展相應的實驗項目,即2-3個學生組成一個小組,合作完成一個實驗項目。為了盡可能減少小組內(nèi)部的“搭車”現(xiàn)象,教師需限制每個實驗題目選擇的組數(shù),采用搶選原則確定實驗題目。并且在實驗題目選定后,要求小組內(nèi)每個成員都要獨立負責其中相應的開發(fā)模塊,在期末實驗成果檢查時,每個學生需要對自己負責的設計和開發(fā)工作進行匯報和答辯。
前已述及,該設計型實驗的課時規(guī)劃為54個學時(對應于18個教學周),課堂教學只安排3個學時,其余的學時數(shù)全部用于實驗項目的具體實施。實驗項目開展過程中,按如下階段和進度安排。
1)選題
經(jīng)過指導教師的課堂授課,學生了解所設置各實驗題目的目標和要求后,通過評估實驗題目所需的工作量以及根據(jù)自身的實際情況,選取合適的實驗題目,并組成實驗小組。
確定實驗題目和小組成員后,填寫選題表,其中包括所選擇實驗題目的目標和功能概述、 小組成員及組長等相關信息。選題表在第二教學周內(nèi)提交。
2)開題報告
每組成員就所選擇的實驗題目,查閱參考資料,進行實驗題目相關功能的軟件需求和可行性分析,明確實驗項目的關鍵問題以及相應的解決方案,并為后繼的工作制定合理的規(guī)劃安排。最后撰寫開題報告,并在第三教學周內(nèi)提交。
3)總體設計
各小組要對實現(xiàn)的實驗系統(tǒng)進行總體設計,確定實驗系統(tǒng)的體系結(jié)構(gòu)、各組成部分的模塊組成及接口規(guī)范、各模塊的概要設計等,并明確小組成員的任務分工,形成總體設計報告,并在第五教學周內(nèi)提交。
4)詳細設計
每個成員按任務分工,設計實驗系統(tǒng)的全局數(shù)據(jù)結(jié)構(gòu),并進行各模塊的功能設計、接口(內(nèi)部接口、外部接口)設計、數(shù)據(jù)庫設計、出錯處理等。所撰寫的詳細設計報告在第八教學周內(nèi)提交。
5)編碼與測試
依據(jù)總體設計報告和詳細設計報告,各組成員按任務分工,編碼實現(xiàn)和調(diào)試實驗系統(tǒng)的各模塊,并進行系統(tǒng)的集成調(diào)試和測試。
在系統(tǒng)成功實現(xiàn)后,撰寫課程設計報告(包括:項目概述、軟件需求和可行性分析、總體設計、詳細設計、軟件系統(tǒng)測試結(jié)果以及課程心得體會等),并與源碼一起打包提交。這部分工作持續(xù)到第十五教學周。
6)結(jié)題匯報和演示
每個項目組準備好演示環(huán)境以及匯報PPT,在課堂上集中進行匯報、系統(tǒng)演示和答辯,實驗系統(tǒng)的實際演示結(jié)果可作為系統(tǒng)實現(xiàn)效果的直接評定依據(jù)。這部分工作在第十八教學周完成。
由于實驗持續(xù)時間較長,并且實驗方式比較靈活,即不集中在機房統(tǒng)一實驗,而是由各實驗小組根據(jù)自身條件選擇時間和地點開展實驗,為了保證教學效果,我們采用多種方式對實驗過程進行監(jiān)督和管理,具體措施有:
(1)文檔評審按照實驗實施規(guī)劃安排在各個時間節(jié)點(包括選題、開題報告、總體設計、詳細設計等),要求學生提交相應的文檔材料,指導教師對文檔材料進行評審;
(2)每個小組在實驗過程中要進行三次課堂匯報,即開題報告、中期檢查報告、結(jié)題匯報與演示。每次5-10分鐘,指導教師對實驗內(nèi)容及執(zhí)行進度進行監(jiān)督和指導;
(3)開展在線交流,為便于實驗的有序進行,同時便于指導教師與學生之間、各小組成員之間的技術交流,師生組建微信群,在群里學生可就實驗進度、技術難點、實驗心得等進行交流,也可向指導教師尋求幫助。
實驗結(jié)束后,由指導教師對實驗成績進行評定,成績評定時主要考慮如下幾個因素:①實驗的復雜度,主要考慮實驗系統(tǒng)的功能、實現(xiàn)難度和代碼量等;②實驗效果,主要考慮實驗系統(tǒng)的實際安全控制效果以及用戶體驗;③報告質(zhì)量,主要考慮報告的格式和內(nèi)容。
由于實驗是按實驗小組驗收的,除考慮整個實驗小組實驗系統(tǒng)的完成情況外,還要考慮每組成員實際的任務分工和個人表現(xiàn),綜合評定出每個學生的成績。
在網(wǎng)絡空間安全專業(yè)的學科建設中,開展信息安全實驗課程的教學是不可或缺的一個環(huán)節(jié),它能有效提高學生的動手能力和解決實際問題的能力,同時加深學生對所學安全理論知識的理解。本文從操作系統(tǒng)安全增強實驗設計的基本要求出發(fā),設計了兩類增強實驗,每類實驗又具體分為幾個子實驗。本文還就實驗的開展方式、進度安排、課程指導以及成績評定等方面進行探討,從而為各高校相關專業(yè)的課程建設提供有益的參考。
[1] 陸松年, 薛質(zhì)等. 操作系統(tǒng)教程 (第3版):原理、應用、開發(fā)、系統(tǒng)、網(wǎng)絡管理[M]. 北京:電子工業(yè)出版社. 2010.2.
[2] William Stallings. Operating System Internal and Design Principles (3rd Edition)[M]. New Jersey: Prentice-Hall, International, Inc. 2008.4.
[3] 訾小超, 薛質(zhì), 陸松年. “系統(tǒng)軟件開發(fā)實踐”課程的教學探索[ J].南京:電氣電子教學學報, 2010, Vol32(3),5-6.
[4] 龔玲, 陸松年, 薛質(zhì).“操作系統(tǒng)”課程教學探索[ J] .南京:電氣電子教學學報, 2007, 29 (5):1-3 .
[5] Michael Beck, Harald Bohme, et al. Linux Kernel Programming (3rd Edition)[M]. Boston: Addison-Wesley Professional. 2002.9.
[6] 訾小超, 薛質(zhì)等. 信息安全技術解析與開發(fā)實踐[M]. 北京:清華大學出版社. 2011.7.