趙 磊,彭國軍,劉 丹,王麗娜
(武漢大學 國家網(wǎng)絡安全學院,湖北 武漢 430070)
在2018年第十一屆“中國大學教學論壇”中,教育部高等教育司吳巖司長指出,中國大學要建設高階性、創(chuàng)新性和挑戰(zhàn)度的金課[1],要求課程內(nèi)容有前沿性和時代性,具有一定的挑戰(zhàn)度,課程教學要做到知識、能力、素質(zhì)的有機融合,培養(yǎng)學生解決復雜問題的綜合能力和高級思維。
以高階性、創(chuàng)新性和挑戰(zhàn)度為建設目標,筆者結(jié)合多年來的教學和指導學生參加全國網(wǎng)絡攻防賽的經(jīng)歷,以“以賽促教、以賽反哺課程內(nèi)容”為主要思路,提出軟件安全課程創(chuàng)新性和實踐性建設方法。
軟件安全是網(wǎng)絡空間安全相關專業(yè)的核心專業(yè)課程之一,旨在通過講授軟件執(zhí)行機理、軟件漏洞的成因、惡意代碼的基本原理、軟件逆向分析技術、安全測試等基礎知識[2],培養(yǎng)學生逆向思維和系統(tǒng)安全防護能力,同時,結(jié)合軟件安全配套實驗,提高學生的動手實踐能力,培養(yǎng)學生解決復雜問題的綜合能力和高級思維。
以計算機和互聯(lián)網(wǎng)為基礎的信息系統(tǒng)是網(wǎng)絡空間的基礎組成部分,而軟件是信息系統(tǒng)的靈魂。自“莫里斯蠕蟲”以來,軟件安全已有30多年的歷史,一直是學術界和工業(yè)界的熱點問題,以軟件漏洞、惡意代碼為代表的軟件安全威脅一直占據(jù)全球網(wǎng)絡安全威脅排行榜前3的位置。
受課程背景的影響,軟件安全課程具有很強的創(chuàng)新性、實踐性等需求,課程建設面臨諸多挑戰(zhàn),主要包括以下幾方面。
(1)從近年來曝光的各類安全事件來看,各種攻擊手段防不勝防。究其原因,軟件安全面臨著“道高一尺,魔高一丈”的狀態(tài),新的安全技術不斷出現(xiàn)。這就要求課程建設具有創(chuàng)新性,及時吸納先進的研究成果,淘汰過時內(nèi)容。
(2)軟件安全的前序課程較多,與計算機體系結(jié)構(gòu)、編譯原理、匯編語言、操作系統(tǒng)等多門課程都密切相關,對學生的計算機系統(tǒng)能力有很高要求。這就要求課程內(nèi)容應引導學生做到從計算機系統(tǒng)硬件到軟件、從底層到應用層等的深入理解。
(3)作為一門實踐性強、動手能力要求高的課程,軟件安全課程內(nèi)容不能局限于理論與方法,要能夠貼合當前的產(chǎn)業(yè)發(fā)展和實戰(zhàn)需求,培養(yǎng)學生的實踐能力。
綜上幾個方面,軟件安全課程內(nèi)容復雜且關聯(lián)性強,課程內(nèi)容及其配套實驗的創(chuàng)新性和實踐性建設對任課老師提出非常大的挑戰(zhàn)。
網(wǎng)絡攻防賽源自于國際網(wǎng)絡安全奪旗賽(簡稱為CTF比賽),以模擬網(wǎng)絡攻防實戰(zhàn)為手段培養(yǎng)網(wǎng)絡安全技術人才,能夠極大地提高信息安全及相關專業(yè)學生的動手及實戰(zhàn)能力,彌補傳統(tǒng)課堂教學、課程實驗等“重理論、弱技術”的缺陷,在快速和持續(xù)提升學生專業(yè)興趣和學生網(wǎng)絡安全實戰(zhàn)能力方面具有明顯優(yōu)勢[3]。
與其他信息安全技術比賽相比,網(wǎng)絡攻防賽的最大特點是技術的實戰(zhàn)性。就目前的比賽形式來看,比賽模式基本上分為兩種:①在解題模式(jeopardy)的CTF賽制中,參賽隊伍可以通過互聯(lián)網(wǎng)或者現(xiàn)場網(wǎng)絡參與,與ACM編程競賽、信息學奧賽等賽制類似,以解決網(wǎng)絡安全技術挑戰(zhàn)題目的分值和時間來排名,通常用于在線選拔賽;②在攻防模式(attack with defense)中,參賽隊伍在封閉的虛擬仿真環(huán)境下通過挖掘服務漏洞并攻擊對手服務來得分,通過修補自身的服務漏洞進行防御以避免丟分,競爭激烈,具有很強的觀賞性和高度透明性。同奪旗賽相比,攻防比賽額外考查系統(tǒng)防護能力,同時,不僅考查參賽隊員的智力和技術,還考查團隊之間的分工與合作。
網(wǎng)絡攻防賽在國際上已經(jīng)有了很多年歷史,一直以來都被作為考查參賽隊員動手能力和綜合實戰(zhàn)能力的重要方式,并且在創(chuàng)新性、前沿性、實踐性等方面具有明顯的優(yōu)勢,主要體現(xiàn)在以下幾方面。
(1)創(chuàng)新性。網(wǎng)絡攻防賽屬于給定題目的競技類賽事,每次比賽均會重新設計題目,不僅考查經(jīng)典的基礎理論和技術,還包含最新的學術論文和研究成果,具有創(chuàng)新性。
(2)前沿性。網(wǎng)絡攻防賽題目通常由高校和企業(yè)專家設計,來自產(chǎn)業(yè)界的題目通常能夠反映最實際的產(chǎn)業(yè)界需求,具有更高的前沿性。例如,以企業(yè)監(jiān)控所得的網(wǎng)絡流量為對象,可考查學生的安全分析和取證能力,而這些數(shù)據(jù)是高校很難獲得的。
(3)實踐性。網(wǎng)絡攻防賽以模擬網(wǎng)絡攻防實戰(zhàn)為手段,重點考查學生利用專業(yè)知識解決實際問題的能力,強調(diào)動手和時間。
可以發(fā)現(xiàn),網(wǎng)絡攻防賽能夠很好地提高信息安全及相關專業(yè)學生的動手及實戰(zhàn)能力,彌補傳統(tǒng)的課堂教學、課程實驗等“重理論、弱技術”的缺陷,理應作為一種很好的促學促教手段,完善教學及課程建設。
網(wǎng)絡攻防賽所考查的能力比較全面,所設置的比賽題型大致分為以下5類(見表1):密碼分析類、Web安全類、數(shù)字取證類、軟件逆向分析類、漏洞挖掘及漏洞利用類,所考查的知識點分布在多門相關的專業(yè)課程中,涉及密碼學、操作系統(tǒng)原理及安全、數(shù)據(jù)庫原理及安全、網(wǎng)絡安全、軟件安全、信息隱藏等。
由表1可見,網(wǎng)絡攻防賽定位于一種對學生信息安全綜合能力的考查和拔高??紤]到網(wǎng)絡攻防賽的優(yōu)勢,有高校已經(jīng)把網(wǎng)絡攻防賽作為主要內(nèi)容開設網(wǎng)絡攻防課程[4-5],然而,網(wǎng)絡攻防課程內(nèi)容可能會與其他相關課程內(nèi)容重復。針對這一問題,“以賽促教、以賽反哺課程內(nèi)容”的課程建設方法,以專業(yè)培養(yǎng)方案和課程教學大綱為核心,針對性地梳理網(wǎng)絡攻防賽所考查的技術能力,凝練其背后的基礎理論與知識,遴選具有創(chuàng)新性的知識點和相關實驗素材,完善教學大綱,更新課程內(nèi)容及配套實驗。按照此方法,既能夠吸收網(wǎng)絡攻防賽在實踐能力培養(yǎng)方面的優(yōu)勢,又能夠更新課程內(nèi)容,保持課程內(nèi)容的創(chuàng)新性和時效性。
表1 網(wǎng)絡攻防賽知識點所涉及的相關專業(yè)課程
筆者自2014年起主講軟件安全及其配套實驗課程,自2015年起指導大學生參與全國網(wǎng)絡攻防賽。結(jié)合自身教學經(jīng)歷和指導學生參加網(wǎng)絡攻防賽的經(jīng)驗,以軟件安全課程為對象,提出的“以賽促教、以賽反哺課程內(nèi)容”的軟件安全課程創(chuàng)新性和實踐性建設方法如圖1所示。
圖1 “以賽促教、以賽反哺課程內(nèi)容”的軟件安全課程建設方法
首先,結(jié)合專業(yè)培養(yǎng)方案和教學大綱,以網(wǎng)絡攻防賽為導向,優(yōu)化課程內(nèi)容和實驗建設,培養(yǎng)學生實踐能力;其次,基于課程考核及實驗完成情況,選拔優(yōu)秀學生參加比賽,并根據(jù)學生參賽經(jīng)歷形成反饋;最后,梳理網(wǎng)絡攻防賽所考查的知識與能力,凝練創(chuàng)新點,更新課程內(nèi)容和配套實驗。課程建設方法按照“選拔優(yōu)秀學生參加網(wǎng)絡攻防賽”“賽后題型剖析”“知識點梳理”“更新教學內(nèi)容”“鼓勵學生做教輔參與教學”等步驟實現(xiàn)年度的軟件安全課程內(nèi)容迭代和更新。經(jīng)過2015—2018年的探索,武漢大學軟件安全課程建設共改造和吸收了來自網(wǎng)絡攻防賽的9個知識點和相關實驗,總的實驗達到32學時,具體的更新知識點見表2。
結(jié)合武漢大學信息安全專業(yè)的培養(yǎng)方案和教學大綱,軟件安全課程的知識點共包括8個單元。其中,知識單元1和2為本門課程基礎性的前導課程單位。對比表1和表2可以發(fā)現(xiàn),網(wǎng)絡攻防賽中軟件逆向分析、漏洞挖掘及漏洞利用兩類題型考查的知識點和技術能力與軟件安全課程的多個知識單元密切相關。
以表2中的JIT-ROP漏洞分析為例,該題目源自2015年上海市信息安全行業(yè)協(xié)會承辦的ISG信息安全技能競賽,題目所考查的知識點源自2013年發(fā)表在國際頂級學術會議IEEE Symposium on Security & Privacy的學術論文[6]。該論文提出了一種利用內(nèi)存泄漏漏洞可同時繞過操作系統(tǒng)DEP保護和ASLR保護的漏洞利用方法,具有非常強的創(chuàng)新性。
在梳理題目背后的知識點后,對比分析之前的軟件安全課程大綱,可以發(fā)現(xiàn)課程知識點中涵蓋DEP保護和ASLR保護的原理,以及兩者對緩沖區(qū)溢出漏洞的抑制作用。此學術論文提出了全新的漏洞利用方法,指出DEP保護和ASLR保護的不完善之處,對之前課程內(nèi)容是一個很好的補充,因此將該學術論文提出的JIT-ROP漏洞分析方法更新到課程內(nèi)容,同時將該賽題經(jīng)過改造后吸收進課程實驗,僅作為培養(yǎng)學生實踐能力的素材,不作其他用途。
此次課程內(nèi)容的更新,既能夠吸收JIT-ROP漏洞分析的創(chuàng)新性優(yōu)勢,保持課程內(nèi)容的前沿性和時效性,同時又讓學生學習前沿技術并付諸實踐,提高動手能力和實踐水平,為此后的網(wǎng)絡攻防賽奠定基礎。
依據(jù)“以賽促教、以賽反哺課程內(nèi)容”的課程建設方法,經(jīng)過2015—2018年的探索,課程教學取得良好效果;同時,以課程實驗成績?yōu)榛鶞蔬x拔出優(yōu)秀學生代表報名參加全國網(wǎng)絡攻防比賽,也取得了不錯的成績。
根據(jù)課程結(jié)束后的課程評議,“課程難卻收獲頗豐”“既有理論,又能鍛煉動手能力”等成為大部分學生的課程總結(jié)感想?,F(xiàn)摘錄學生對本門課程的代表性評議如下。
“課程任務重,從沒有這么復雜的課,但是另一方面也督促自己獨立思考,能在課上學到很多知識”。
“這學期實驗課,一節(jié)課一個實驗,一次實驗雖然只安排了4學時,但基本上課上做不完,有的課下需要做好幾天。不過是真的學到了東西”。
“全部的實驗做下來讓我重新理解了計算機系統(tǒng)結(jié)構(gòu)、計算機組成原理、操作系統(tǒng)等基本原理,就應該有大量的實踐”。
“這次軟件安全實驗讓我深刻感受到自己學到了新的知識,學習能力得到了鍛煉。這一整個過程中,雖然遇到了許多問題,但是在查找資料并解決問題之后,逐步對之前學過的很多概念有了更加清晰的理解,有很大的成就感”。
“我們逐漸融會理解了計算機系統(tǒng)、軟件安全課程中所學的知識,它們不再是課本或PPT中難以理解的一句句話或一行行代碼,而是一個軟件中鮮活的一部分,這次實踐仍然讓我們收獲頗豐”。
課程授課對象為三年級本科生。在課程結(jié)束后,優(yōu)秀本科生會被推薦參加全國性質(zhì)的網(wǎng)絡攻防類競賽,其中代表性的比賽有“XCTF全國大學生網(wǎng)絡安全能力聯(lián)賽”“全國大學生信息安全競賽——實踐能力賽”等。每年級的參賽人數(shù)一般在6~20人。
得益于課程內(nèi)容的前沿性和實踐性,武漢大學學生代表隊在過去的幾年里一直保持較高水平,獲得了優(yōu)異成績,所獲獎項見表3。
在“深入學習貫徹全國教育大會精神,全面振興本科教育”的時代背景下,高等學校課程建設面臨著前沿性、創(chuàng)新性、挑戰(zhàn)性等新需求。我們結(jié)合多年來在課程建設和專業(yè)競賽指導方面的經(jīng)驗,提出“以賽促教、以賽反哺課程內(nèi)容”的課程建設方法。按照此方法,軟件安全課程創(chuàng)新性與實踐性建設取得了良好的教學效果,既吸收了網(wǎng)絡攻防賽在實踐能力培養(yǎng)方面的優(yōu)勢,又更新了課程內(nèi)容,保持課程內(nèi)容的創(chuàng)新性和時效性。在下一步的工作中,我們將結(jié)合密碼學、網(wǎng)絡安全等專業(yè)課程內(nèi)容,繼續(xù)開展以網(wǎng)絡攻防賽為導向的課程建設,以此增強其他專業(yè)課程的創(chuàng)新性與實踐性,進一步提高學生的實踐動手能力。
表3 武漢大學學生代表隊的獲獎成績