劉 莉 ,劉持標(biāo) ,尤垂桔 ,邱錦明
(1.三明學(xué)院 信息工程學(xué)院,福建 三明 365004;2.工業(yè)大數(shù)據(jù)分析及應(yīng)用福建省高校重點實驗室,福建 三明 365004;3.福建省農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用重點實驗室,福建 三明 365004;4.物聯(lián)網(wǎng)應(yīng)用福建省高校工程研究中心,福建 三明 365004)
網(wǎng)絡(luò)安全通常會讓人聯(lián)想到“黑客”和“黑客技術(shù)”,容易激發(fā)學(xué)生對網(wǎng)絡(luò)安全的學(xué)習(xí)熱情,但也會產(chǎn)生一個誤區(qū),即網(wǎng)絡(luò)安全就是學(xué)習(xí)黑客技術(shù)。事實上,黑客技術(shù)是以網(wǎng)絡(luò)安全課程為基礎(chǔ),主要包括密碼學(xué)和認(rèn)證技術(shù)、病毒、木馬、防火墻、入侵檢測、無線安全等知識,這些知識點理論性較強,如密碼學(xué)和消息認(rèn)證技術(shù),涉及很多數(shù)論知識,容易讓學(xué)生失去學(xué)習(xí)的激情和興趣。因此,在基礎(chǔ)教學(xué)中,加入趣味性的實踐內(nèi)容,激發(fā)和保持學(xué)生的學(xué)習(xí)興趣,從而讓學(xué)生由“被動”學(xué)習(xí)轉(zhuǎn)為“主動”學(xué)習(xí)。毫無疑問,CTF(Capture The Flag)比賽的流行及本身具有的趣味性和挑戰(zhàn)性,能夠作為輔助教學(xué)的絕佳平臺。在教學(xué)中結(jié)合CTF的賽題,甚至舉辦一些校內(nèi)的CTF競賽,讓學(xué)生在比賽中進步,提高其安全實戰(zhàn)能力,培養(yǎng)國家需要的應(yīng)用性人才。
CTF,即奪旗賽,其大致流程:參賽團隊之間通過進行攻防對抗、程序分析等形式,率先從主辦方給出的比賽環(huán)境中得到一串具有一定格式的字符串或其他內(nèi)容,并將其提交給主辦方,從而奪得分?jǐn)?shù)。[1]
CTF競賽模式主要有解題模式、攻防模式、混合模式3種模式:①解題模式(Jeopardy),常見于線上選拔賽,主要包括密碼學(xué)(Crypto)、安全雜項(Misc)、Web、逆向工程(Reverse)、PWN等類別,根據(jù)解題的總分和時間來排名;②攻防模式(AWD,Attack With Defence),參賽隊伍在網(wǎng)絡(luò)空間互相進行攻擊和防守,挖掘網(wǎng)絡(luò)服務(wù)漏洞并攻擊對手服務(wù)來得分,修補自身服務(wù)漏洞進行防御來避免丟分??蓪崟r通過得分反映比賽情況,最終也以得分直接分出勝負(fù),是一種競賽激烈極具觀賞性和透明性的網(wǎng)絡(luò)安全賽制;③混合模式(mix),結(jié)合解題模式和攻防模式,參賽隊伍通過解題可以獲取一些初始分?jǐn)?shù),然后通過攻防對抗進行得分增減的零和游戲,最終以得分高低分出勝負(fù)。
此外,還有國內(nèi)首次引入韓國 POC SECURITY團隊開創(chuàng)的BELLUMINAR CTF(戰(zhàn)爭與分享)賽制[2]。戰(zhàn)爭與分享賽制是由受邀參賽隊伍相互出題挑戰(zhàn),并在比賽結(jié)束后對賽題的出題思路、學(xué)習(xí)過程以及解題思路等進行分享,戰(zhàn)隊評分依據(jù)出題得分、解題得分和分享得分進行綜合評價并得出最終的排名。目前,采取該賽制的有2016年諸葛建偉的XMan夏令營分享賽以及同年的“百度杯”CTF比賽。
CTF比賽,國際比賽有Defcon、Plaid、RuCTF、Codegate等,國內(nèi)知名賽事主要有XCTF、AliCTF、XDCTF、HCTF、TCTF等。
CTF訓(xùn)練平臺,有i春秋、XCTF實訓(xùn)平臺、實驗吧、Pwnhub、南京郵電大學(xué)網(wǎng)絡(luò)攻防訓(xùn)練平臺等。
網(wǎng)絡(luò)安全作為網(wǎng)絡(luò)工程專業(yè)的專業(yè)課,是一門綜合性很強的交叉學(xué)科,涉及計算機網(wǎng)絡(luò)、通信、密碼學(xué)、數(shù)據(jù)庫、操作系統(tǒng)、數(shù)學(xué)、法律等學(xué)科。目前,三明學(xué)院信息工程學(xué)院采用理論和實踐“2+1”模式,實踐課時不夠充足,也缺乏一個完整的實踐教學(xué)體系,實驗主要由任課老師進行設(shè)計。以密碼學(xué)為例,分為古典密碼和現(xiàn)代密碼,古典密碼包括替代和移位,內(nèi)容比較簡單,但單純講解理論會枯燥無味,如果結(jié)合古典密碼學(xué)的一些應(yīng)用案例和故事,如影視劇或者是CTF比賽,則會激發(fā)學(xué)生的興趣。目前,古典密碼的實驗設(shè)計為“利用編程實現(xiàn)加密和解密的實驗”;對于現(xiàn)代密碼部分,包括對稱和非對稱密碼,實驗有“PGP軟件的使用”,由于學(xué)生對非對稱密碼的兩種模式(加密模型和認(rèn)證模型)缺乏思考和理解,導(dǎo)致實驗中出錯卻無法自己解決?!癙GP軟件的使用”實驗涉及知識較多,包括RSA算法和MD5、SHA256等哈希算法,這些算法對數(shù)論要求較高,難以理解,如果結(jié)合CTF相關(guān)賽題會讓學(xué)生更加容易理解和產(chǎn)生興趣。
基于當(dāng)前的教學(xué)現(xiàn)狀,可以從3個方面分析:教學(xué)環(huán)境;教學(xué)中學(xué)生的現(xiàn)狀及其原因;本次教學(xué)改革已經(jīng)具備的條件,包括課程設(shè)置、協(xié)會、以往比賽經(jīng)驗。
目前,學(xué)院還沒有自己的平臺,對于結(jié)合CTF教學(xué),可以利用現(xiàn)有的CTF訓(xùn)練平臺進行教學(xué)和訓(xùn)練;在攻防訓(xùn)練環(huán)節(jié),學(xué)院會逐步搭建自己的訓(xùn)練平臺,便于開展校內(nèi)CTF比賽,以賽促學(xué),形成良好的網(wǎng)絡(luò)安全學(xué)習(xí)氛圍。
傳統(tǒng)的網(wǎng)絡(luò)安全課程教學(xué),單純講解理論,學(xué)生很難理解其具體應(yīng)用導(dǎo)致缺乏興趣,CTF比賽的趣味性可以很好地解決這個問題。有少數(shù)同學(xué)通過接觸CTF比賽,對此產(chǎn)生濃厚的興趣,并會花時間去學(xué)習(xí)研究,也在CTF比賽中取得了比較好的成績,他們往往會對網(wǎng)絡(luò)安全有更深刻的認(rèn)識,在就業(yè)時也會考慮從事相關(guān)工作;對于其他學(xué)生,興趣不是很大,僅僅是粗略學(xué)習(xí)該課程,獲得了一些基礎(chǔ)性知識和概念,對CTF比賽也是知之甚少,更不可能作為其就業(yè)的選擇。
網(wǎng)絡(luò)安全方面主要有網(wǎng)絡(luò)安全和網(wǎng)絡(luò)攻防2門課程,采取先學(xué)習(xí)網(wǎng)絡(luò)安全基礎(chǔ)知識(包括密碼學(xué)、認(rèn)證技術(shù)、防火墻、入侵檢測等),再學(xué)習(xí)網(wǎng)絡(luò)攻防技術(shù),循序漸進提高學(xué)生的網(wǎng)絡(luò)安全知識和技能。在網(wǎng)絡(luò)安全基礎(chǔ)課程中,主要結(jié)合CTF解題模式,激發(fā)學(xué)生對網(wǎng)絡(luò)安全的興趣,也為后續(xù)的網(wǎng)絡(luò)攻防課程和CTF比賽打下基礎(chǔ);在網(wǎng)絡(luò)攻防課程中,可以結(jié)合CTF的解題模式和攻防模式進行教學(xué),進一步調(diào)動學(xué)生的積極性,從而可以獲得較好的教學(xué)效果。
此外,學(xué)院在2017年創(chuàng)辦了“網(wǎng)絡(luò)安全協(xié)會”,協(xié)會成員約40人,覆蓋了各個專業(yè),協(xié)會創(chuàng)辦以來,一直堅持每周上課、分享,形成了比較好的氛圍,協(xié)會1/4的成員有多次參加CTF比賽的經(jīng)驗,目前獲得了“百越杯”三等獎、“黑盾杯”三等獎、“西普鐵人三項”二等獎的成績。
在教學(xué)中引入CTF解題模式,包括密碼學(xué)、認(rèn)證技術(shù)、信息隱藏等。密碼學(xué)是網(wǎng)絡(luò)安全的基石,也是教學(xué)內(nèi)容的第一部分,可以結(jié)合CTF的密碼學(xué)題目,帶領(lǐng)學(xué)生進入網(wǎng)絡(luò)安全和CTF的世界。
1)密碼學(xué)。
密碼學(xué)的首要目的是隱藏信息的涵義,并不是隱藏信息的存在[3]。密碼學(xué)分為古典密碼和現(xiàn)代密碼,古典密碼主要有愷撒密碼、摩斯密碼、柵欄密碼、豬圈密碼、鍵盤布局加密等。在CTF題目中,還包括出題人自定義的密碼。以古典密碼學(xué)為例,教學(xué)流程如圖1所示。
圖1 古典密碼學(xué)教學(xué)流程圖
(1)案例引入:以摩斯密碼作為密碼學(xué)的導(dǎo)入。摩斯密碼在影視劇中有廣泛的應(yīng)用,通過觀看影視片段,了解摩斯電碼它由兩種基本信號和不同的間隔時間組成,短促的點信號“·”(滴);保持一定時間的長信號“—”(嗒)[4]。在《泰坦尼克號》中,國際求救信號“SOS”利用無線電報發(fā)出,被成功接收,最終救出了705名幸存者,自此以后,“SOS”才被廣泛使用。另外,在現(xiàn)實中,摩斯密碼也有很多應(yīng)用,在北京郵電大學(xué)校園內(nèi),就有一條“摩斯碼”道路,幾十米長的灰白色路面上,鑲嵌著或長或短的黑色地磚,組成了一組摩斯碼,翻譯過來就是北郵的校訓(xùn)“厚德博學(xué),敬業(yè)樂群”。
考慮過程控制的鋼鐵工業(yè)負(fù)荷用能行為分析與功率特性建模//涂夏哲,徐箭,廖思陽,劉冠中,馮登,張亞偉//(2):114
(2)CTF題目引入:實驗吧(圍在柵欄中的愛,http://www.shiyanbar.com/ctf/1917),題目為“最近一直在好奇一個問題,QWE到底等不等于ABC?”
-.- .. --.- .-.. .-- - ..-. -.-. --.- --. -. ... --- ---
flag格式:CTF{xxx}
解題步驟:①很明顯,這是一串摩斯密碼,通過查詢摩斯密碼表,或者利用摩斯密碼轉(zhuǎn)換工具,轉(zhuǎn)換為“KIQLWTFCQGNSOO”;②由提示“QWE到底等不等于ABC”,利用電腦鍵盤排序。
通 過 查 QWE表 得“rhasbenvaoylii”; ③由題目提示“圍在柵欄里的愛”,即應(yīng)該包含“l(fā)ove”,發(fā)現(xiàn)步驟②的串中包含了“l(fā)ove”中的4個字母,但并沒有連續(xù),因此,通過柵欄密碼,構(gòu)造連續(xù)的“l(fā)ove”,通過嘗試,當(dāng)柵欄密碼分組為2得到“rabnayihsevoli”,這是一個倒敘的“l(fā)ove”,因此倒敘為“iloveshiyanbar”,即flag為“CTF{iloveshiyanbar}”。本題涉及了摩斯密碼、QWE密碼、柵欄密碼??梢缘弥艽a其實就是一種編碼方式,也可以自定義密碼,對于古典密碼,主要就是替換和置換兩種變換,安全性較低,更易于破解。
(3)現(xiàn)代密碼:現(xiàn)代密碼學(xué)可分為對稱密碼和非對稱密碼,密碼學(xué)的大部分內(nèi)容仍然以數(shù)學(xué)知識為基礎(chǔ),難以給學(xué)生以直觀感受,在有限課時情況下使學(xué)生掌握密碼算法有一定難度,因此,密碼學(xué)課程的實驗課效果往往不佳[5]。常用的對稱密碼有DES、3DES、AES等算法,公鑰密碼算法有RSA、ELGamal、ECC等算法,算法復(fù)雜度較高,可以從以下2點降低學(xué)習(xí)難度:一是在講解過程中,重視講解其算法思想、原理和特性,弱化數(shù)學(xué)公式的講解,通過與其他算法對比深化學(xué)習(xí);二是通過“學(xué)以致用”,讓學(xué)生了解該算法在實際中的應(yīng)用,比如在銀行系統(tǒng)、微信支付、支付寶支付等。具體實現(xiàn),比如在SSL網(wǎng)站交互過程中,SSL握手期間的非對稱加密,在創(chuàng)建安全連接后,會話期間使用對稱加密。在一次實際SSL交互中,通過wireshark抓包分析交互流程。對現(xiàn)代密碼基本了解后,也可以做一些CTF相關(guān)題目,如實驗吧(http://www.shiyanbar.com/ctf/1979),在挑戰(zhàn)自我的過程中進一步鞏固知識和提升能力。
2)認(rèn)證技術(shù)。
主要包括一些哈希算法(如MD5、SHA-1、SHA-256等),用于確保信息傳輸?shù)耐暾?。可以結(jié)合生活中的案例,如借錢、簽訂合同等,說明哈希算法用于防止信息偽造和篡改的必要性,即數(shù)字簽名的應(yīng)用,其實現(xiàn)結(jié)合了哈希算法和公鑰密碼。另外,也可做一些CTF相關(guān)題目,如實驗吧(http://www.shiyanbar.com/ctf/1981)。MD5、SHA-1其實已經(jīng)不安全了,可以利用彩虹表進行破解,讓學(xué)生查資料,說明有哪些方法可以增強MD5算法的安全性,避免彩虹表攻擊。
3)信息隱藏。
信息隱藏就是將秘密信息隱藏于另一非保密的載體之中,載體可以是圖像、音頻、視頻、文本,也可以是信道,甚至編碼體制或整個系統(tǒng),信息隱藏的方法主要有隱寫術(shù)、數(shù)字水印技術(shù)、可視密碼、潛信道、隱匿協(xié)議等[6],信息隱藏?zé)o處不在,如藏頭詩、隱寫墨水。隱寫術(shù)中比較常用的是把信息隱藏在圖片中,而不影響其視覺效果,一可以直接在圖片結(jié)束標(biāo)志后添加要隱藏的數(shù)據(jù);二可以用一些隱寫算法,如LSB、F5、guess等。隱寫術(shù)在CTF比賽中也是比較常見的題型,可以結(jié)合CTF題目進行講解,比如以實驗吧“想看正面?那就要看仔細(xì)了!”這題為例,給出一張圖片,是一個美女的背影,那信息到底隱藏在哪里呢,會激發(fā)學(xué)生的好奇心,活躍課堂,以達到好的教學(xué)效果。稍微隱寫復(fù)雜一點的如題目“男神一般都很低調(diào)很低調(diào)的?。 ?,需要通過隱寫工具Stegsolve得出答案,以這種由易到難、循序漸進的方式能幫助學(xué)生增強信心,激發(fā)挑戰(zhàn)欲。另外,讓學(xué)生嘗試去隱寫信息,讓其他同學(xué)破解是一種既有趣又能提升能力的方法,只有學(xué)會出題,才更能理解別人出題的思路,也才能更好地應(yīng)對比賽。
為了讓學(xué)生更全面的了解網(wǎng)絡(luò)攻防技術(shù),了解CTF解題中的各個知識點,包括密碼學(xué)、web、隱寫術(shù)、安全雜項、逆向,關(guān)于web、逆向方面主要讓學(xué)生課后自學(xué),讓學(xué)生3人一組自由組隊,每個知識點出3題,該類比賽對平臺要求并不高,僅web類題目需要搭建服務(wù)器,最終按照解題總分和時間排序,完成比賽后,每個題目可以讓成功解出的組分享解題思路,確保學(xué)生能在競賽中學(xué)到知識。
在教學(xué)中引入攻防模式,CTF攻防模式是線下形式,如果要在教學(xué)中模擬,一是可以利用現(xiàn)有的一些CTF訓(xùn)練平臺(如實驗吧的綜合滲透模塊等),模擬一次攻防滲透,但這種方式只能用于教學(xué)演示或?qū)W生練習(xí),不能舉辦自己的攻防比賽;二是學(xué)院搭建自己的CTF訓(xùn)練平臺,則可靈活設(shè)置題目、模擬演示、舉辦比賽。
防火墻、入侵檢測都屬于網(wǎng)絡(luò)安全體系中不可缺少的設(shè)施,但其功能不同,各司其職,可以類比現(xiàn)實中的場景,如保安和攝像頭的作用。防火墻主要是監(jiān)控進出網(wǎng)絡(luò)內(nèi)部的數(shù)據(jù)流,可以用Cisco Packet Tracer軟件設(shè)置簡單的網(wǎng)絡(luò)拓?fù)?,通過配置ACL(Access Control List,訪問控制列表)掌握防火墻實現(xiàn)的原理。在CTF攻防比賽中,每個隊都有自己的一臺linux服務(wù)器,一方面要對自己的服務(wù)器進行加固,修補漏洞;另一方面,要尋找對方服務(wù)器可利用的漏洞,進行滲透攻擊。在加固時,往往要配置linux防火墻iptables,如關(guān)閉一些不必要的服務(wù)、訪問控制、限制IP連接數(shù)和連接速率以及過濾一些異常報文。在教學(xué)中,也可在linux下用iptables進行安全配置,演示其配置前后的區(qū)別。
通過攻防比賽,可以使學(xué)生對網(wǎng)絡(luò)攻防的一些工具和漏洞有所了解,可以使比賽成績優(yōu)異的小組分享漏洞發(fā)現(xiàn)和漏洞利用的原理和過程。另外,通過校內(nèi)比賽可以選拔出優(yōu)秀的隊員代表學(xué)校去參加一些知名CTF比賽。
除了結(jié)合CTF競賽,本次改革還將以項目化的課程設(shè)計進行驅(qū)動教學(xué)。除了直接以CTF分組作為項目小組,課程設(shè)計題目還可以指定一些題目讓學(xué)生自選,但需經(jīng)老師認(rèn)可。小組通過分工合作,最終需要提交的文檔包括需求分析文檔、課程設(shè)計報告、項目源代碼等材料。通過課程設(shè)計,培養(yǎng)學(xué)生進行文獻資料搜索的能力、動手編寫安全程序的能力、解決實際信息安全應(yīng)用問題的能力。在課程考核方面,除了理論考核,平時的CTF比賽、課程設(shè)計也作為考核的一部分。
筆者針對目前網(wǎng)絡(luò)安全課程的重理論輕實踐、理論知識難度大及實踐部分缺乏趣味性等現(xiàn)狀,結(jié)合當(dāng)前流行的CTF競賽進行教學(xué)改革,激發(fā)了學(xué)生的學(xué)習(xí)興趣,提高了學(xué)生的學(xué)習(xí)效率,促進了應(yīng)用型人才培養(yǎng)質(zhì)量的提高;從當(dāng)前網(wǎng)絡(luò)安全課程的教學(xué)現(xiàn)狀和學(xué)情兩個方面進行分析,筆者進一步確定了結(jié)合CTF競賽教學(xué)的必要性。結(jié)合CTF的解題模式和攻防模式,在密碼學(xué)、認(rèn)證技術(shù)、隱寫術(shù)等理論教學(xué)中貫穿CTF相關(guān)題目,并舉行相應(yīng)的比賽。經(jīng)過CTF解題的訓(xùn)練,進一步提高了學(xué)生的實戰(zhàn)能力,還引入CTF攻防訓(xùn)練和比賽,達到“以賽促學(xué)”的目的;通過引入課程設(shè)計作為項目驅(qū)動教學(xué),進一步提升了學(xué)生的自學(xué)能力和網(wǎng)絡(luò)安全應(yīng)用系統(tǒng)設(shè)計能力。