奪旗競賽引入軟件逆向分析實(shí)踐教學(xué)的探索_第1頁
奪旗競賽引入軟件逆向分析實(shí)踐教學(xué)的探索_第2頁
奪旗競賽引入軟件逆向分析實(shí)踐教學(xué)的探索_第3頁
奪旗競賽引入軟件逆向分析實(shí)踐教學(xué)的探索_第4頁
奪旗競賽引入軟件逆向分析實(shí)踐教學(xué)的探索_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、奪旗競賽引入軟件逆向分析理論教學(xué)的探究摘 要 針對軟件逆向分析課重點(diǎn)培養(yǎng)學(xué)生逆向思維才能的教學(xué)實(shí)際,結(jié)合該課程和奪旗競賽都存在正向逆向?qū)沟奶攸c(diǎn),在理論教學(xué)中引入奪旗競賽形式,通過學(xué)習(xí)效果驗(yàn)證了該教學(xué)方式的有效性。關(guān)鍵詞 軟件逆向分析 奪旗競賽 逆向思維Introducing CTF in Software Reverse Analysis Course2He'nan Province Architecture Professional Technology Institute, Zhengzhou, He'nan 450002Abstract The course quot;

2、Software Reverse Analysisquot; focuses on training students' reverse thinking ability. It has the characteristic of against competition between forward and reverse thinking, so does CTF competition. We introduced CTF competition form in teaching practice, and verified the validity of this method

3、 through learning effect.Key words software reverse analysis; CTF; reverse thinking軟件逆向分析課是我校計(jì)算機(jī)科學(xué)與技術(shù)、網(wǎng)絡(luò)工程專業(yè)的必修課程,旨在使學(xué)生掌握軟件逆向分析的原理方法和工具使用,既是對C語言、匯編語言等課程知識(shí)的綜合運(yùn)用,也是后續(xù)專業(yè)課程學(xué)習(xí)的重要根底。該課程重點(diǎn)培養(yǎng)學(xué)生的逆向思維才能,而逆向思維過程往往是與正向思維博弈對抗的過程。我們觀察到該特點(diǎn),嘗試將具有典型對抗特點(diǎn)的奪旗競賽CTF,Capture The Flag形式引入該課程的理論教學(xué),做了一次有益的教學(xué)方式改進(jìn)探究。1 軟件逆向分析課特

4、點(diǎn)軟件逆向分析課安排在第五學(xué)期開設(shè),前提課程有計(jì)算機(jī)原理、C語言與程序設(shè)計(jì)、x86匯編語言、操作系統(tǒng)構(gòu)造等,教學(xué)內(nèi)容包括反匯編原理和算法、數(shù)據(jù)流和控制流分析、逆向分析工具使用、函數(shù)工作過程、算法逆向分析實(shí)例等。該課程具有以下特點(diǎn):1.1 逆向思維與正向思維的對抗軟件逆向分析被涵蓋在軟件逆向工程范疇內(nèi)。軟件逆向工程是軟件科學(xué)和計(jì)算機(jī)科學(xué)的一個(gè)分支,它綜合了加密和解密、編譯和反編譯、系統(tǒng)分析、程序理解等多種計(jì)算機(jī)技術(shù),從可運(yùn)行的程序系統(tǒng)出發(fā),生成對應(yīng)的源程序、系統(tǒng)構(gòu)造以及相關(guān)設(shè)計(jì)原理和算法思想的文檔等??梢娷浖嫦蚴菍σ褬?gòu)建程序的解構(gòu)復(fù)原,從二進(jìn)制代碼出發(fā),逆向猜測、推理、分析出程序本來的功能、邏

5、輯甚至源代碼。由于軟件在編譯為二進(jìn)制代碼時(shí)已消除了高級語言中的語義、數(shù)據(jù)類型、數(shù)據(jù)構(gòu)造等方便人們理解的信息,極大增加了逆向分析的難度,所以逆向分析不可能針對軟件的所有部分,大多數(shù)時(shí)候都是在推理或猜測軟件作者的意圖,以作者的創(chuàng)作思路為線索,抓住逆向過程中的關(guān)鍵部分和關(guān)鍵點(diǎn),有針對性地解決問題。這個(gè)過程與逆向思維過程非常吻合,所謂逆向思維是指從反面提出問題、分析問題、解決問題的一種思維方式,它是與正向思維相對應(yīng)的一種思維。因此軟件逆向分析的逆向思維是對軟件創(chuàng)作的正向思維的目的逆向、方向逆向和方式逆向,軟件逆向分析過程可視為與軟件作者的博弈對抗過程。以逆向分析和破解軟件的試用時(shí)間為例,某些軟件會(huì)限制

6、運(yùn)行時(shí)間必須在某個(gè)時(shí)間范圍內(nèi),否那么不能正常運(yùn)行。破解該保護(hù)需要先從軟件作者的考慮角度出發(fā),考慮有哪幾種保護(hù)方法,比方判斷當(dāng)前系統(tǒng)時(shí)間是否在允許范圍內(nèi),或通過時(shí)間計(jì)數(shù)來計(jì)算已運(yùn)行時(shí)間。逆向分析時(shí)應(yīng)以此為線索跟蹤關(guān)鍵函數(shù)的調(diào)用,如獲取當(dāng)前系統(tǒng)時(shí)間、獲取程序運(yùn)行時(shí)間等函數(shù),再逐步回溯到判斷條件處,定位關(guān)鍵代碼。而有些軟件作者會(huì)將這種破解的思路考慮進(jìn)去,采用更難以猜測的方法或參加一些干擾技術(shù)手段以阻止逆向分析。這個(gè)博弈對抗過程往往會(huì)隨著軟件的不斷晉級一直持續(xù)下去。該課程的目的是培養(yǎng)逆向分析的思維才能和動(dòng)手才能,理論是該課程學(xué)習(xí)的重要環(huán)節(jié),有利于對學(xué)生興趣的培養(yǎng)和技能的掌握。我們在理論環(huán)節(jié)安排了逆向分

7、析工具的使用、函數(shù)工作過程的跟蹤調(diào)試、注冊算法的逆向分析等內(nèi)容,從工具使用到綜合運(yùn)用,理論內(nèi)容環(huán)環(huán)相扣,注重才能培養(yǎng)的銜接和遞進(jìn)。而這些理論內(nèi)容具有很強(qiáng)的專業(yè)性,表如今大部分理論過程都是對程序的動(dòng)態(tài)調(diào)試,和跟蹤匯編語句的執(zhí)行等操作。在理論過程中,由于匯編語言缺乏高級編程語言良好的交互性和可理解性,假設(shè)沒有強(qiáng)烈的目的引導(dǎo),學(xué)生很容易在枯燥的調(diào)試中失去興趣。因此理論教學(xué)環(huán)節(jié)的內(nèi)容和形式設(shè)計(jì)將直接影響教學(xué)效果。2 理論教學(xué)環(huán)節(jié)存在的問題在以往的理論教學(xué)環(huán)節(jié),我們采用了常見的目的導(dǎo)向方式,即為每個(gè)實(shí)驗(yàn)設(shè)定一個(gè)詳細(xì)目的,學(xué)生按照既定的技術(shù)道路去到達(dá)該目的。從學(xué)習(xí)效果來看,這種方式雖然可以讓學(xué)生按部就班地

8、解決某些問題,但參與感不強(qiáng),缺乏舉一反三的考慮和創(chuàng)新思維意識(shí),在枯燥的理論過程中容易失去學(xué)習(xí)興趣。理論內(nèi)容安排和結(jié)果如表1所示: 從完成度可以看出,對于較為簡單的驗(yàn)證類理論內(nèi)容,學(xué)生都能按照實(shí)驗(yàn)指導(dǎo)書要求的步驟,只要可以較為純熟地使用工具就可以完成;對于綜合分析類內(nèi)容,由于需要發(fā)揮學(xué)生的逆向思維才能,從看似繁雜無序的反匯編代碼中定位關(guān)鍵代碼,難度的提升導(dǎo)致部分學(xué)生無法完成;而對于難度最大的綜合應(yīng)用類內(nèi)容那么完成度最低,只有少數(shù)專業(yè)根底較好且興趣濃重的學(xué)生可以完成。通過調(diào)查和分析,主要原因在于:一是軟件的加殼脫殼涉及專業(yè)知識(shí)廣且深,門檻較高,學(xué)生在過程中容易產(chǎn)生挫敗感,無法持續(xù)深化;二是加殼和脫

9、殼本質(zhì)是攻與防的關(guān)系,而理論過程中沒有表達(dá)這種對抗關(guān)系,學(xué)生沒有可參照比照和討論的對象,難有參與感和自主意識(shí)。3 奪旗競賽規(guī)那么及特點(diǎn)奪旗競賽指的是軟件技術(shù)人員之間進(jìn)展技術(shù)競技的一種比賽形式,起源于1996年的DEFCON全球黑客大會(huì),以代替通過真實(shí)攻擊進(jìn)展技術(shù)比拼,目前已在國內(nèi)和國際上廣泛流行。主要分為以下兩類形式:1解題形式。又稱為線上形式。舉辦方在互聯(lián)網(wǎng)上設(shè)立競賽網(wǎng)站,參賽者可自由組隊(duì),以團(tuán)隊(duì)形式對競賽網(wǎng)站中的各類挑戰(zhàn)題進(jìn)展解題并在線提交結(jié)果通常是隱含在程序中的flag標(biāo)識(shí),網(wǎng)站自動(dòng)計(jì)算每隊(duì)的得分和解題時(shí)間并實(shí)時(shí)公布。解題形式是一種開放式的競賽形式,一般用于吸引盡量多的參賽者,從中選拔優(yōu)

10、秀隊(duì)伍。2攻防形式。又稱為線下形式,一般由線上形式選拔出的少數(shù)隊(duì)伍參加。舉辦方為每支參數(shù)隊(duì)伍設(shè)定一樣的對抗環(huán)境,參數(shù)隊(duì)伍分析程序存在的脆弱性,利用這些脆弱性攻擊對方效勞器獲得flag標(biāo)識(shí),并提交給裁判效勞器獲得分?jǐn)?shù),同時(shí)也要修補(bǔ)自身效勞器的問題以進(jìn)展防御。整個(gè)對抗過程一般會(huì)持續(xù)48小時(shí)以上,攻防狀態(tài)會(huì)以動(dòng)態(tài)方式顯示出來,具有很強(qiáng)的欣賞性和高度透明性。由上可知,奪旗競賽與軟件逆向分析課在正向思維和逆向思維的博弈對抗上具有相似點(diǎn),并且非常切合課程理論性強(qiáng)的需求,因此嘗試將該競賽形式引入教學(xué)中。4 競賽形式的引入和施行我們借鑒了奪旗競賽的攻防形式,首先對賽制做了修改以適應(yīng)教學(xué)需求:參賽隊(duì)伍:根據(jù)學(xué)生

11、總?cè)藬?shù),分為510組,一般每組不超過4人。比賽環(huán)境:在校園網(wǎng)架設(shè)一臺(tái)公共效勞器,為每支隊(duì)伍設(shè)定上傳賬號,且可以下載其他隊(duì)伍目錄。上傳要求:每支隊(duì)伍編寫一個(gè)程序并將flag標(biāo)識(shí)隱藏在程序中,隱藏的方式可以采用信息加密、信息隱藏、軟件加殼等技術(shù),同時(shí)為防止惡意設(shè)置不可解flag,要求程序的運(yùn)行效果為輸入密碼后顯示flag。將程序上傳至效勞器,上傳后不可修改。下載要求:參賽隊(duì)伍可下載其他隊(duì)伍上傳的程序。得分規(guī)那么:通過軟件逆向分析將其中的flag找出來并提交,每提交一個(gè)flag加10分,重復(fù)提交不得分。刷分周期:每輪一般為4個(gè)課時(shí),在刷分周期內(nèi)盡可能多地分析出其他隊(duì)伍的flag。防御規(guī)那么:在一個(gè)刷

12、分周期后,參賽隊(duì)伍可根據(jù)其他隊(duì)伍對本程序的分析情況,有針對性地修改flag的隱藏方式,并更新flag內(nèi)容。上傳至效勞器以開始下一輪比賽。設(shè)定好賽制后,我們在軟件逆向分析課的教學(xué)中施行了該競賽,同時(shí)將課堂講授課時(shí)縮短,增加了理論課時(shí)。共有8支隊(duì)伍,4輪比賽,表2是得分情況。從得分情況可以看出,在第一輪比賽中由于參賽者還不熟悉規(guī)那么,根底最好的隊(duì)伍3輕易拿到了其他所有隊(duì)伍的flag獲得總分值70分,很明顯此輪的防御都很弱;在第二輪比賽中,各隊(duì)伍的防御才能明顯增強(qiáng),表達(dá)在得分都有下降;到了第三輪,隨著攻防經(jīng)歷的豐富和逆向分析才能的提升,大部分隊(duì)伍得分有明顯增長;最后一輪各支隊(duì)伍尤其是隊(duì)伍5的得分都較第一輪有了較大增長,說明逆向分析和逆向下轉(zhuǎn)第129頁上接第101頁思維才能進(jìn)步顯著。表2 競賽得分情況為進(jìn)一步提升興趣和參與意識(shí),我們在賽后交流還安排了經(jīng)歷交流,由每支隊(duì)伍給出自己的攻防思路和方法,從中發(fā)現(xiàn)學(xué)生的創(chuàng)新才能超出預(yù)期。整個(gè)過程中學(xué)生都能積極參與,主動(dòng)交流和查詢資料,可以分析對手的技術(shù)程度并提升自我程度,可以從每輪比賽的得分中獲得成就感,具有強(qiáng)烈的學(xué)習(xí)興趣、主動(dòng)性和自主意識(shí)。最后我們還安排了表1的理論內(nèi)容,完成度根本到達(dá)100%,證明將奪旗競賽形式引入該課

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論