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