鄔曉鈞,鄭寧漢,陳永強,李山山
(清華大學 計算機科學與技術系,北京100084)
隨著信息技術的發(fā)展,網(wǎng)絡已全方位地融入我們的學習、工作和生活中。國內(nèi)網(wǎng)絡安全問題時有發(fā)生,“棱鏡計劃”等國外黑客行動不斷曝光,使人們越來越意識到網(wǎng)絡空間安全的重要性?!盎ヂ?lián)網(wǎng)+”時代下的創(chuàng)新人才應該具有基本的網(wǎng)絡安全意識、知識與技能。為了在網(wǎng)絡安全方面加強計算機創(chuàng)新人才的培養(yǎng),滿足學生對網(wǎng)絡空間安全的學習需求,清華大學計算機實驗教學中心經(jīng)過精心準備,于2014年開始,在夏季學期面向計算機科學與技術系本科大三年級學生開設“網(wǎng)絡安防”實踐課程。對此學生反響強烈,課余量在選課一開始就被一搶而空。學生完成課程學習后,對課程給予了高度評價,也提出了不少建議。課程教學小組對這一實踐課程不斷地進行反思和改進,逐步形成了一整套軟硬件結合的課程實驗體系,取得了良好的教學效果。
本課程名為“網(wǎng)絡安防”,屬于計算機科學與技術系大三年級夏季學期“計算機專業(yè)實踐”課程的專業(yè)方向之一?!坝嬎銠C專業(yè)實踐”課程有若干專業(yè)方向,組成并行的多個子課程,學生選擇其中一個專業(yè)方向進行為期5周的實踐學習。課程設立的初衷就是提高學生對已學專業(yè)知識的綜合運用能力和實踐能力,通過課程實踐培養(yǎng)和鍛煉學生的研究能力、創(chuàng)新能力和團隊合作能力[1]。
與其他專業(yè)方向相比,“網(wǎng)絡安防”有其特點。在整個清華大學計算機系課程體系中,直接與網(wǎng)絡安全相關的課程較少,許多學生雖然學習了程序設計、操作系統(tǒng)、網(wǎng)絡原理、數(shù)據(jù)庫等課程,但沒有選修過網(wǎng)絡安全相關課程,網(wǎng)絡安全仍然帶著神秘的面紗。因此“網(wǎng)絡安防”實踐課程承擔著啟蒙的責任,需要普及網(wǎng)絡安全的基本意識、基礎知識和基礎技能,引導學生從網(wǎng)絡安全的角度看待以前所學,把以前所學綜合起來應用;在此基礎上,需要引導和培養(yǎng)學生對網(wǎng)絡安全方向的興趣,鼓勵有興趣的同學選擇網(wǎng)絡安全作為今后的科研方向。
相對于成熟的網(wǎng)絡安全產(chǎn)品使用來說,掌握網(wǎng)絡安全核心知識、方法和技能更為重要。因此我們并沒有像一些高校那樣將操作系統(tǒng)的安全配置和管理、防火墻的配置管理、數(shù)據(jù)庫的安全配置和管理,以及一些安全產(chǎn)品的應用等作為實驗內(nèi)容[2-5],而是借鑒網(wǎng)絡安全技能競賽的經(jīng)驗。網(wǎng)絡安全技能競賽又稱為奪旗賽(Capture the Flag,CTF),有在線解題和現(xiàn)場攻防兩種模式。在線解題模式在網(wǎng)絡上部署了精心設計的題目,這些題目并不是簡單地點幾下鼠標,或者查詢某種用戶手冊進行相應配置就可解決的,而是要具體問題具體分析,綜合利用網(wǎng)絡安全知識和技能,有時還需要一些想象和推理,來找到題目中隱藏的答案文本。以這種形式的題目作為實驗內(nèi)容,能夠讓學生關注核心的網(wǎng)絡安全知識與技能,更注重知識與技能的實踐應用。
網(wǎng)絡安全技能競賽在線模式的題目一般分為密碼學、網(wǎng)頁滲透、逆向工程、漏洞利用、編程和雜項幾類,其中雜項常常涉及網(wǎng)絡信息收集、取證分析、隱寫等內(nèi)容。本課程的實驗內(nèi)容就圍繞除編程以外的5個主題類別來開展,整合各個主題相關的教學資料,設計相應的基礎實驗,同時也設計了提高性和綜合性的實驗,從而形成基礎實驗和提高實驗兩個層次。這些實驗題目都部署在一個在線實驗平臺上,供學生在線解題。
解題模式的實驗也有其局限性。由于題目是事先設計好的,解題者往往要沿著出題者的思路逐步尋找隱藏信息。在解題的某些階段,特別是在一些需要猜測的環(huán)節(jié),為了避免解題者無頭緒地多方嘗試,出題者往往會給出一些引導提示信息,使得解題過程像是在解謎。這種被動運用知識技能的模式固然有利于針對性地訓練,但也限制了解題者的主動性。為了更有效地鍛煉學生靈活運用的能力和實踐創(chuàng)新能力,需要設置有挑戰(zhàn)性的開放實驗。
正如文獻[6]中所總結的,網(wǎng)絡安全的開放實驗應在一定條件下給予學生最大的自主性,保證學生具有較大的思維空間和活動空間,實驗過程甚至實驗結論和實驗評價都是開放的,同時開放實驗應該在理論或實踐上有研究價值,具備一定的創(chuàng)新空間。為此我們設置了學生自主出題的開放實驗環(huán)節(jié),教師會對學生設計的題目給出修改意見,并幫助學生部署在實驗平臺上。
考慮到物聯(lián)網(wǎng)是新一代信息技術的重要組成部分,物聯(lián)網(wǎng)中的智能硬件是近幾年網(wǎng)絡空間安全的研究熱點,同時學生也強烈要求有機會在真實硬件上進行網(wǎng)絡安全實驗,我們選擇智能卡、網(wǎng)絡攝像頭、無線路由器等生活中經(jīng)常接觸到的智能硬件作為網(wǎng)絡安全硬件實驗的對象,其中智能卡既有基礎實驗,也有開放實驗,其他硬件為開放實驗。學生需要完成基礎硬件實驗,自由選擇開放的硬件實驗。
綜上,課程形成了一整套軟硬件實驗體系,其中軟件實驗包括基礎實驗、提高實驗和開放實驗,硬件實驗包括基礎實驗和開放實驗,軟件基礎實驗是提高實驗和開放實驗的前提。不同層次軟硬件實驗的關系如圖1所示。軟件基礎實驗幫助學生通過實踐掌握課程要求的基本知識與技能,提高實驗在深度與綜合性上擴展,開放實驗進一步要求加入創(chuàng)新思維形成創(chuàng)新方案。硬件基礎實驗以觀察分析為主,開放實驗則要求應用學到的所有知識與技能進行開放式探索。
圖1 實驗體系中不同層次軟硬件實驗的關系
本課程采用學生自主學習、合作學習和基于問題學習的模式。教師僅對幾大類知識進行提綱挈領式的簡介,同時為軟件基礎實驗部分提供詳細的講義、實驗指導書和參考書目,為硬件基礎實驗和開放實驗提供部分參考資料,組織學生觀看網(wǎng)絡安全專題講座視頻。在提高實驗和開放實驗過程中,學生遇到新的問題,需要自己去查找資料進行研究,然后嘗試實踐。在實驗時間的安排上,教師在兩周內(nèi)逐步開放所有實驗,所有實驗的截止日期都為課程結束日。在此期間,所有軟件實驗都可在線進行,所有硬件實驗的硬件因為體積小攜帶方便,也都交由學生保管。因此學生除了要求白天到實驗室上課外,回宿舍后也能繼續(xù)實驗。課程要求學生每2~3人組成一個小組,以小組為單位完成軟件的開放實驗和所有硬件實驗。課程還專門挑選出一些軟件實驗組成一套實驗題,以學生小組為單位開展為期兩天的教學實驗競賽。除了學生自發(fā)在小組內(nèi)外的交流討論外,教師也定期組織課堂上的交流,以促進學生間的合作學習。
課程借鑒網(wǎng)絡安全技能競賽的在線模式建設了一個B/S架構的在線實驗平臺,平臺上部署了所有軟件實驗。為激發(fā)學生的學習動力,平臺實現(xiàn)了多項激勵手段。首先,每個實驗題目成功解題的前三名直接顯示在實驗題目描述下方。其次,每個實驗根據(jù)難度大小都設置了一個分值,學生成功解題就能將實驗題目對應的分值加入個人的積分。在線實驗平臺有實時積分排名,學生能夠隨時查看。最后,實時積分排名頁面還能看到每人完成了哪些實驗題目,學生可以優(yōu)先嘗試無人解出的題目爭取在題目描述下留名,當解題遇到困難時也可以知道向哪些同學求教。圖2和圖3分別是題目描述頁面和實時積分排名頁面。
圖2 實驗題目描述頁面
圖3 學生積分排名頁面
平臺上有些網(wǎng)頁滲透和漏洞利用的實驗需要訪問在線服務,這些實驗實際上部署在單獨的虛擬機中。利用虛擬機技術來搭建和部署網(wǎng)絡安全實驗是近幾年常用的方式,既節(jié)省購買和維護真實設備所需的大量資金,又方便搭建和修改網(wǎng)絡拓撲結構,還能做到設備的隔離和避免破壞。使用較多的虛擬化軟件有VMware[5,7-9]和KVM[10-12],也有使用 Xen[13-14]、QEMU[15]和 Hyper-V[16]的。課程使用VMware ESXi,虛擬了兩個路由器,分別負責網(wǎng)頁滲透和漏洞利用兩類虛擬機服務的端口映射。網(wǎng)頁滲透和漏洞利用實驗有時因為學生訪問破壞導致服務癱瘓,教師可以利用虛擬機快照快速恢復。
教師以管理員身份登錄實驗平臺后,可以對學生賬號、實驗題目進行管理,可以組織教學實驗競賽、查看系統(tǒng)日志,從而對學生實驗情況進行分析。
目前在實驗平臺上已部署了150多個軟件實驗,實驗類別與數(shù)量如表1所示。基礎實驗一般不超出教師提供的教學材料,或者很容易從網(wǎng)上找到相關信息。提高實驗中有不少內(nèi)容超出了教學材料,需要學生自己找資料深入學習和研究。綜合不同類別知識與技能的實驗也歸入雜項類提高實驗。教學實驗競賽的題目從表1所列的軟件實驗中選取,并且大部分都是提高實驗。
表1 軟件實驗類別與數(shù)量 個
軟件實驗的開放實驗內(nèi)容是小組自主設計實驗題目。教師與學生就題目細節(jié)進行討論,把握題目的難度與合理性。學生完成的開放實驗成果也部署在在線實驗平臺上,使得軟件實驗的整體數(shù)量不斷增加。
在線實驗平臺在課程一開始就允許學生注冊賬號,并自主選擇實驗題目去做,直到課程結束才會關閉。在實際教學中,5個主題類別的教學材料是在前兩周逐步發(fā)布的,大部分學生會依照課程的進度,選擇相應類別的基礎實驗和提高實驗,但也有個別學生完全基于問題學習,他們從實驗題目出發(fā),自己找資料學習研究,實驗進度快于正常的教學進度。教學實驗競賽安排在第4周上半周,軟件開放實驗安排在課程最后兩周,目的是讓學生能夠先保證一定數(shù)量基礎實驗和提高實驗的練習。在實驗課程期間,定期組織學生交流討論,主要由學生對一些百思不得其解的實驗題目提出問題,其他學生給出建議的思路,或者提醒需要關注的細節(jié)。
在硬件實驗中,智能卡相關實驗共有3個,一個是基礎實驗,所有小組都要求完成;另兩個是開放實驗,與其他兩個硬件開放實驗一起供小組選擇完成。智能卡基礎實驗要求學生利用Arduino UNO和RFID-RC522模塊自制讀卡器,嘗試讀取身份證、帶閃付的銀行卡、公交一卡通、校園一卡通、校園打水卡、校園洗澡卡、各類門禁卡,以及實驗提供的空白M1卡。實驗要求學生嘗試讀取這些智能卡的卡號和數(shù)據(jù),分析比較各自的安全性。實驗還提供了安全卡套,要求學生通過實驗比較使用安全卡套前后自制讀卡器隔空和隔物讀取智能卡信息的距離。實驗要求學生自己在網(wǎng)上查找讀卡原理,讀卡程序可以參考開源的MFRC522程序庫。
智能卡開放實驗建立在基礎實驗的基礎上,一項實驗是利用空白的M1卡實現(xiàn)安全的校園一卡通方案,要求與學籍相關聯(lián),具有控制門禁、閃付支付等功能;另一項實驗是編程實現(xiàn)對銀行卡閃付信息的讀取。前者需要從不同的用戶角度對卡使用時的安全性和便利性進行推敲,確定最終方案并實現(xiàn);后者需要根據(jù)特定的不同層次的協(xié)議,實現(xiàn)與卡的通訊,進行數(shù)據(jù)解析。另兩個硬件開放實驗分別是破解網(wǎng)絡攝像頭和破解無線路由器,課程提供的網(wǎng)絡攝像頭是TP-LINK的TL-SC3130G,提供的無線路由器有LINKSYS的 WAP54G、TP-LINK的 TL-WR881N和 TLWR842N、NETGEAR的JNDR3000。學生也可以嘗試其他網(wǎng)絡攝像頭或無線路由器。
智能卡基礎實驗安排在課程的第二周,但考慮到大部分學生沒有接觸過Arduino編程,所以課程在第一周時就發(fā)放了Arduino UNO的開發(fā)板,并且提供LED燈和蜂鳴器,推薦了一個網(wǎng)上入門教程的網(wǎng)址,讓學生提前熟悉。第二周初發(fā)放RFID-RC522模塊,公布實驗內(nèi)容。智能卡基礎實驗的操作可以在2天內(nèi)完成,實驗報告在課程結束日前提交即可。
硬件開放實驗在智能卡基礎實驗2天后公布,并且在第二周周末前要求各學生小組選定要做的開放實驗(每組選一個即可)。此后每3個工作日(不計教學實驗競賽所在的工作日)一次,組織各小組交流匯報實驗進展情況。課程結束前組織每個小組進行展示與答辯。
“網(wǎng)絡安防”實踐課程的實驗體系很好地調(diào)動了學生學習的積極性。圖4是2016年夏季學期學生往在線實驗平臺提交實驗題目答案的日志按小時統(tǒng)計的結果(不計教學實驗競賽相關的提交),從圖中可以看到,下午下課后的5~8點、晚上10點到第二天凌晨1點間是學生提交最活躍的時間段,凌晨1~6點間也有不少的提交,上課時間內(nèi)由于安排了各類學習和交流活動,提交反而較少。不考慮用于教學實驗競賽的題目,在線實驗平臺積分最多的學生正確解答的實驗題目數(shù)量超過100個。在軟件開放實驗中,學生展現(xiàn)出許多創(chuàng)新之處,有的在實驗設計中融入了其他知識,如信號處理原理、古音韻學、旗語、音樂知識等,有的用到了課程內(nèi)容之外的網(wǎng)絡安全知識與技能,如加入花指令防反編譯、構建極小的Linux虛擬機鏡像等,還有的將實驗做成了互動游戲,如密室逃生、回合闖關等。
在硬件實驗方面,在智能卡基礎實驗之前和之后以隨堂方式安排了相同內(nèi)容的智能卡知識測試。測試包括兩項,第一項是以不定項選擇的方式為各種卡標注所屬類別,第二項是以簡答方式按安全性由強到弱給各種卡排序。測試滿分為10分,智能卡實驗之前學生的平均得分為5.7分,智能卡實驗之后平均得分為7.6分。學生在硬件開放實驗方面也取得了不錯的成果。學生在讀取銀行卡閃付信息的實驗中,發(fā)現(xiàn)了開源的MFRC522庫中一個錯誤,與原作者聯(lián)系并提交了修正代碼;在研究破解無線路由器時,深入研究常見弱密碼的規(guī)律,開發(fā)了可配置的弱密碼生成軟件,總結了安全使用路由器的方法;在破解網(wǎng)絡攝像頭時,驗證了網(wǎng)上可搜索到的固件漏洞及修補情況,還發(fā)現(xiàn)了額外的漏洞,提出了固件漏洞的修補建議。
課程收集到的學生反饋主要集中在以下幾個方面:①課程很好地彌補了本科期間網(wǎng)絡安全方面的教學,使得學生對安全的知識與認識提升了一個臺階;②課程實驗是對大學三年學習知識的綜合應用,加深了對以前所學內(nèi)容的理解,同時也進一步鍛煉了編程能力;③課程實驗題目數(shù)量多,設計得非常好,真正體會到了實踐出真知,付出越多收獲越大;④學到了許多東西,學習過程充滿樂趣、挑戰(zhàn)和收獲,體會到了團隊合作的強大力量;⑤今后愿意從事網(wǎng)絡安全方面的學習和研究。
圖4 在線實驗平臺提交日志統(tǒng)計
由于課程內(nèi)容的特殊性,在教學過程中需要反復宣傳和強調(diào)相關法律法規(guī),引導學生樹立正確的價值觀,提醒學生注意實驗的網(wǎng)絡環(huán)境,避免影響正常的網(wǎng)絡運行。有的學生在實驗過程中出于學習研究的目的,會自發(fā)實現(xiàn)一些網(wǎng)絡攻擊程序,例如密碼破解、ARP欺騙等,要提醒學生注意不要傳播。
由于采取小組合作學習的模式,出現(xiàn)個別學生“抱大腿”混成績的現(xiàn)象,要在今后的教學實踐中,結合具體的實驗內(nèi)容,加強對小組每個成員的考查與評價。
參考文獻:
[1]湯志忠. 清華“計算機專業(yè)實踐”課程的創(chuàng)新與實踐[J]. 計算機教育, 2006(7): 7-9.
[2]汪永生, 李巖. “互聯(lián)網(wǎng)+”時代高校網(wǎng)絡安全實驗室建設的探究[J]. 浙江工商職業(yè)技術學院學報, 2016, 15(1): 82-86.
[3]陸世堯. 高校信息安全實驗室的建設探討[J]. 無線互聯(lián)科技, 2016(19): 115-116.
[4]李秦. 計算機網(wǎng)絡安全課程實驗教學的研究與設計[J]. 電腦與電信, 2015(z1): 79-80.
[5]洪允德, 高強. 計算機網(wǎng)絡安全課程實驗教學探索[J]. 中國教育技術裝備, 2014(22): 146-148.
[6]郭鳳海, 賈春福. 信息安全開放實驗探討[J]. 計算機教育, 2010(10): 119-122.
[7]Yuan D. Developing a hands-on cybersecurity laboratory with virtualization[J]. Comput. Sci. Coll., 2017, 32(5): 118-124.
[8]Tunc C, Hariri S,Montero F D L P. CLaaS: Cybersecurity Lab as a Service-Design, Analysis, and Evaluation [C]//Proceedings of 2015 International Conference on Cloud and Autonomic Computing. Boston: MA, 2015: 224-227.
[9]劉利萍. 淺談利用VMware搭建網(wǎng)絡安全虛擬實驗平臺[J]. 黑龍江科技信息, 2016(31): 191.
[10]李蒙, 張蕾妮, 張德民. 基于虛擬化技術的信息安全實驗平臺構建[J]. 電子技術與軟件工程, 2017(1): 207-207.
[11]胡逸云, 辛陽, 陳樹國. 信息安全實驗教學平臺中KVM虛擬機性能測試與優(yōu)化[EB/OL]. [2016-11-02]. http://www.paper.edu.cn/releasepaper/content/201611-19.
[12]魯先志, 胡海波. 基于開源架構的虛擬網(wǎng)絡安全實驗平臺[J]. 實驗技術與管理, 2015(7): 120-123.
[13]周東. 虛擬化網(wǎng)絡安全實驗室的規(guī)劃與建設[J]. 南京廣播電視大學學報, 2016(4): 85-88.
[14]吳迪, 薛政, 潘嶸. 基于XEN云平臺的網(wǎng)絡安全實驗教學[J]. 實驗室研究與探索, 2013, 32(7): 62-66.
[15]蘇杉. 虛擬環(huán)境下網(wǎng)絡安全實驗系統(tǒng)的構建問題探析[J]. 科技與創(chuàng)新, 2016(8): 30-31.
[16]馬志欣, 王遠. Hyper-V在網(wǎng)絡安全實驗教學中的應用——以基于ARP欺騙的DNS欺騙測試為例[J]. 福建電腦, 2016, 32(7): 51-53.