劉云本
摘要:針對(duì)逆向工程技術(shù)課程較新、實(shí)踐性極強(qiáng)、教學(xué)方法單一以及傳統(tǒng)考核方式不適應(yīng)該課程特點(diǎn)等問(wèn)題,本文給出了一個(gè)教學(xué)與實(shí)驗(yàn)內(nèi)容的設(shè)置方案,并提出了開(kāi)卷考試并答辯演示的考核方式,并結(jié)合實(shí)際的教學(xué)案例,闡述運(yùn)用實(shí)際的軟件破解來(lái)教學(xué)演示和考核的優(yōu)點(diǎn)。
關(guān)鍵詞:逆向工程技術(shù);課程設(shè)置;考核;答辯
1引言
近些年,隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,網(wǎng)絡(luò)安全成為計(jì)算機(jī)相關(guān)領(lǐng)域中的熱點(diǎn),網(wǎng)絡(luò)空間已成為繼陸、海、空、天之外的第五疆域,網(wǎng)絡(luò)空間安全也成為保護(hù)網(wǎng)絡(luò)疆域、治理網(wǎng)絡(luò)秩序、維護(hù)國(guó)家和人民利益的重要領(lǐng)域。為了適應(yīng)國(guó)家網(wǎng)絡(luò)安全領(lǐng)域重大戰(zhàn)略需求,我國(guó)國(guó)務(wù)院學(xué)位委員會(huì)、教育部于2015年6月批準(zhǔn)設(shè)立了新的一級(jí)學(xué)科網(wǎng)絡(luò)空間安全。該一級(jí)學(xué)科隸屬工學(xué)學(xué)科門類,旨在培養(yǎng)具有技術(shù)創(chuàng)新能力和自主學(xué)習(xí)能力、目標(biāo)結(jié)構(gòu)機(jī)理的剖析能力、系統(tǒng)對(duì)抗思維和動(dòng)態(tài)實(shí)戰(zhàn)對(duì)抗能力的高層次人才。
逆向工程技術(shù)是一些高等院校計(jì)算機(jī)安全技術(shù)類專業(yè)的一門專業(yè)課程,是一門涉及計(jì)算機(jī)科學(xué)、網(wǎng)絡(luò)技術(shù)、信息安全技術(shù)等多種學(xué)科的實(shí)踐性極強(qiáng)的學(xué)科。該課程主要介紹Windows平臺(tái)上各種調(diào)試工具的使用方法以及常見(jiàn)的軟件保護(hù)技術(shù)。通過(guò)本課程的學(xué)習(xí),可以了解并掌握Windows平臺(tái)上的可執(zhí)行程序的逆向技術(shù),具備分析、調(diào)試Windows可執(zhí)行程序的基本能力,也為進(jìn)一步學(xué)習(xí)和研究網(wǎng)絡(luò)信息安全技術(shù)的研究打下堅(jiān)實(shí)的基礎(chǔ)。逆向工程技術(shù)的相關(guān)知識(shí)更新快,是矛與盾協(xié)同發(fā)展的結(jié)果,需要教師不斷學(xué)習(xí),更新和完善相關(guān)技術(shù),對(duì)教師自身要求也很高;學(xué)生在掌握該課程的基本知識(shí)以后,還需要不斷跟蹤網(wǎng)絡(luò)上出現(xiàn)的新的反調(diào)試與反跟蹤相關(guān)的編程技術(shù),或者自己探索相關(guān)的技術(shù),才能理解一些逆向的新思路。這些特點(diǎn)決定了在該課程教學(xué)過(guò)程中傳統(tǒng)的理論灌輸式教學(xué)方法和傳統(tǒng)的試卷考核方式難以達(dá)到良好的教學(xué)和考核效果。
2高校逆向工程技術(shù)課程現(xiàn)狀
筆記所在高校近年來(lái)陸續(xù)在一些專業(yè)開(kāi)設(shè)了逆向工程技術(shù)課程。由于該課程與傳統(tǒng)的以理論講授為主的課程有較大的差異,所以以傳統(tǒng)思路來(lái)進(jìn)行教學(xué)、考核等會(huì)存在如下幾個(gè)問(wèn)題。
(1)由于計(jì)算機(jī)軟件保護(hù)的思路的迅速發(fā)展,目前的教學(xué)內(nèi)容相對(duì)陳舊、沒(méi)能完全跟上學(xué)科迅速發(fā)展的步伐,難以將新知識(shí)及時(shí)的傳授給學(xué)生,影響學(xué)生適應(yīng)社會(huì)需求的能力。
(2)本門課程教材內(nèi)容涉及面廣,授課學(xué)時(shí)相對(duì)較少。逆向工程技術(shù)是一門專業(yè)性較強(qiáng)的課程,與前期的基礎(chǔ)課(如匯編語(yǔ)言程序設(shè)計(jì)、WINDOWS程序設(shè)計(jì)、操作系統(tǒng)等)密不可分。鑒于這門課程自身的特點(diǎn),如果沒(méi)有深厚的工程經(jīng)驗(yàn),授課勢(shì)必以描述性的內(nèi)容居多,容易使學(xué)生產(chǎn)生厭倦情緒。且由于課程只有20學(xué)時(shí)授課時(shí)間,很多內(nèi)容只能如蜻蜓點(diǎn)水般一帶而過(guò),這樣會(huì)導(dǎo)致部分內(nèi)容講解不透徹,學(xué)生卻反映聽(tīng)不太懂,一知半解,始終只有一些朦朧模糊的概念,導(dǎo)致上機(jī)實(shí)驗(yàn)時(shí)不知所措。
(3)缺乏創(chuàng)新能力的培養(yǎng)環(huán)節(jié)。無(wú)論是理論教學(xué)還是實(shí)踐教學(xué),教師只是將各知識(shí)點(diǎn)和操作方法教授給學(xué)生,但是學(xué)生沒(méi)有獨(dú)立解決問(wèn)題,尤其是創(chuàng)新能力的培養(yǎng)不足,不利于學(xué)生適應(yīng)社會(huì)的要求。
(4)考試形式單一,在目前的教學(xué)模式下,學(xué)生的學(xué)習(xí)效果通常是由考試來(lái)衡量,考核的角度主要是知識(shí),而忽略了能力和品質(zhì)。盡管教師主觀上并不希望出現(xiàn)這樣的局面,但閉卷形式本身的局限性成了決定性的因素;同時(shí),以往考核只注重標(biāo)準(zhǔn)化,而忽略了學(xué)生對(duì)問(wèn)題有不同的理解、看法。這種傳統(tǒng)平面式的教學(xué)考核制度,使被衡量對(duì)象的真實(shí)成績(jī)得不到確認(rèn),從而使學(xué)生產(chǎn)生了對(duì)考核的失望與迷惘。這種考核方式簡(jiǎn)單、易于操作,也能在一定程度上檢驗(yàn)學(xué)生掌握書本知識(shí)的情況,但同時(shí)也比較片面、死板,導(dǎo)致學(xué)生輕視實(shí)踐、不能理論聯(lián)系實(shí)際和解決實(shí)際問(wèn)題。
3逆向工程技術(shù)課程教學(xué)內(nèi)容設(shè)置與實(shí)踐改革
針對(duì)逆向工程技術(shù)課程教學(xué)與考核中存在的問(wèn)題,本文從教學(xué)、實(shí)驗(yàn)內(nèi)容設(shè)置和課程考核等方面展開(kāi)討論,給出了一個(gè)可供參考的方案。
3.1課程教學(xué)與實(shí)驗(yàn)內(nèi)容的設(shè)置
逆向工程技術(shù)的教學(xué)內(nèi)容主要是軟件相關(guān)的加密、解密。加密是為了實(shí)現(xiàn)對(duì)軟件的保護(hù),而解密是通過(guò)逆向分析的技術(shù)對(duì)軟件進(jìn)行破解。為了提高學(xué)生的實(shí)踐與創(chuàng)新能力,將教學(xué)內(nèi)容分為四部分:一是Windows操作系統(tǒng)上編寫可視化應(yīng)用程序的基礎(chǔ)知識(shí),這是該課程理論知識(shí)的基礎(chǔ):二是軟件調(diào)試相關(guān)的知識(shí)。軟件的逆向工程離不開(kāi)軟件工具的支持。以理論知識(shí)為基礎(chǔ),側(cè)重于實(shí)踐與實(shí)際動(dòng)手能力,在實(shí)驗(yàn)設(shè)計(jì)上應(yīng)采用循序漸進(jìn)的方法,學(xué)習(xí)工具的使用時(shí)以一些簡(jiǎn)單的軟件為例進(jìn)行逆向分析,理解計(jì)算機(jī)軟件的執(zhí)行過(guò)程,對(duì)于簡(jiǎn)單的保護(hù)技術(shù)進(jìn)行破解。三是學(xué)習(xí)一些常見(jiàn)的軟件保護(hù)技術(shù),如序列號(hào)保護(hù)、時(shí)間限制、菜單功能限制和密鑰文件等。四是在學(xué)~Windows PE可執(zhí)行程序格式的基礎(chǔ)上學(xué)習(xí)軟件的加殼與脫殼技術(shù)。采用商業(yè)軟件進(jìn)行加殼可以達(dá)到低成本且保護(hù)強(qiáng)度大的效果。
實(shí)驗(yàn)內(nèi)容依據(jù)教學(xué)內(nèi)容來(lái)設(shè)計(jì)。第一次實(shí)驗(yàn)設(shè)計(jì)為熟悉主要的逆向工具的使用。逆向工具的靈活使用可以極大簡(jiǎn)化軟件逆向的復(fù)雜度。第二次實(shí)驗(yàn)則是針對(duì)第三部分教學(xué)內(nèi)容的,是對(duì)常見(jiàn)的軟件的保護(hù)技術(shù)的破解實(shí)驗(yàn)。實(shí)驗(yàn)的一部分內(nèi)容可以讓學(xué)生重現(xiàn)教學(xué)演示時(shí)的內(nèi)容,另一部分則設(shè)計(jì)為學(xué)生自己探索實(shí)驗(yàn)軟件所使用的保護(hù)技術(shù),并自己設(shè)計(jì)破解的方法。該部分能反映學(xué)生的對(duì)教學(xué)內(nèi)容的掌握情況,也能反映學(xué)生的創(chuàng)新能力。第三個(gè)實(shí)驗(yàn)是對(duì)脫殼技術(shù)的實(shí)踐。逆向工程技術(shù)實(shí)踐性極強(qiáng),每次四個(gè)課時(shí)的實(shí)驗(yàn)對(duì)于一些學(xué)生來(lái)說(shuō)太少,學(xué)生還需要在課后花費(fèi)時(shí)間來(lái)練習(xí)。因此,實(shí)驗(yàn)報(bào)告可以允許學(xué)生在一周以內(nèi)上交。
3.2課程考核的方法
課程考核是確定學(xué)生能否能獲得該課程學(xué)分的主要途徑,更是對(duì)學(xué)生學(xué)習(xí)情況的衡量。合理的考核方式和考題可以引導(dǎo)學(xué)生掌握專業(yè)體系中必須掌握的基礎(chǔ)知識(shí)。該課程實(shí)踐性極強(qiáng),通常形式的適于理論課程的閉卷考試不能很好的考查實(shí)踐能力。實(shí)踐過(guò)程中會(huì)遇到事先很難設(shè)想的問(wèn)題,并且在實(shí)踐過(guò)程中,計(jì)算機(jī)會(huì)給出信息顯示,實(shí)踐者需要收集這些信息并分析這些信息,然后進(jìn)行下一步的操作。這些在閉卷考試過(guò)程中極難進(jìn)行考查。因此筆者在該課程中采用了開(kāi)卷并逐一答辯的形式進(jìn)行考核。該考核方式可以觀察學(xué)生是如何在計(jì)算機(jī)上實(shí)際操作的。在操作過(guò)程中也可以詢問(wèn)學(xué)生是基于什么原因做出這樣的操作的。此種考核能很好地反映學(xué)生的實(shí)踐能力和理論水平。
開(kāi)卷并答辯的形式對(duì)試題有較高的要求。由于學(xué)生有較長(zhǎng)的自由準(zhǔn)備時(shí)間,一部分學(xué)生可能試圖通過(guò)單純的強(qiáng)記計(jì)算機(jī)的操作過(guò)程而蒙混過(guò)關(guān)。筆者設(shè)計(jì)如下幾種題型:1)考查軟件的逆向過(guò)程中使用的工具軟件的基本知識(shí)的問(wèn)答題或填空題;2)考查作為計(jì)算機(jī)相關(guān)專業(yè)主要技能的編程能力的編程題;3)考查計(jì)算機(jī)實(shí)際操作能力的脫殼破解類題目;4)考查學(xué)生后續(xù)學(xué)習(xí)能力以及資料查找能力的破解類試題。編程題要求通過(guò)編程解析PE文件格式的部分內(nèi)容,達(dá)到既考查編程能力又考查學(xué)生對(duì)文件格式的理解。軟件的破解和保護(hù)技術(shù)的進(jìn)化是矛與盾協(xié)同發(fā)展的過(guò)程,需要不斷學(xué)習(xí)優(yōu)秀的思路。第四種題型就是引導(dǎo)學(xué)生培養(yǎng)此種學(xué)習(xí)能力的。
4結(jié)語(yǔ)
網(wǎng)絡(luò)空間安全相關(guān)類課程很大一部分是需要考核學(xué)生的實(shí)踐能力的,只是偏重程度不同。逆向工程技術(shù)課程就是一門幾乎只偏重考查實(shí)踐能力的課程。本文總結(jié)了筆者在近三屆學(xué)生的教學(xué)過(guò)程中的經(jīng)驗(yàn)。實(shí)際的考試成績(jī)以及學(xué)生的評(píng)教反饋?zhàn)C明了該方案取得了比較理想的結(jié)果。endprint