楊 挺
(電子科技大學 計算機科學與工程學院,四川 成都 611731)
隨著中國網信事業的蓬勃發展,在網絡安全和信息化工作持續推進過程中,網絡空間安全所需的復合型人才的需求缺口持續擴大,且對相關人才的問題解決、創新思維和工程實踐等能力提出了更高要求。高校教育不僅需要提供扎實的理論知識,而且能夠讓學生學習處理現實世界的實際問題[1],具備解決復雜工程問題的能力。網絡空間安全直接面向工程,面向應用的專業領域,因此信息安全專業教育需要結合實際情況,探索符合國情和時代的教學模式,以提升教育水平。然而,采用傳統的教學和學習方法難以吸引學生并激勵其取得成就感,理論教學也很難滿足網絡空間安全的工程實踐需求。因此,針對問題和項目的挑戰式學習模式將在網絡空間安全教育中發揮著越來越重要的作用。
挑戰性課程的設計隨著教育理念的發展,在實踐中不斷進步。從20世紀60年代末,美國Howard Barrows提出以學生為中心的問題式教學法(Problem-based Learning,PL)開始,到2008年,蘋果公司針對現代工程教育首先提出了挑戰式學習(Challenge Based Learning,CBL)教學理念[2-3],圍繞著“學”和“問”探索培養下一代工程師的方式。馬薩諸塞大學波士頓分校在CBL的理念下,通過競賽驅動,完成了綜合性的學習任務[4]。
以挑戰式學習為主要教學手段的課程即為挑戰性課程。我國清華大學在同一時期,即2008年開始探索挑戰性學習課程理論,在2012年通過開展15門挑戰課來啟動挑戰性學習課程建設[5],構建了高強度師生互動模式促進學生的主動學習。上海交通大學信息安全綜合實踐課程根據工科學生的學習特征[6]設計了課程內容、問題導向和挑戰的教學方案,直接啟發了本文的挑戰課程設計。上述研究表明,以學生為中心的挑戰課程確實能夠在培養學生的問題發現、自主學習、交流表達、團隊管理等能力方面起到積極作用。從復合型人才培養角度,挑戰課程也開始逐步納入多學科內容,例如在文獻[7]中,課程鼓勵學生自主選擇跨學科的技術方案來解決挑戰問題;文獻[8]提出將課題的教學內容分成多個小主題,串聯成一個整體主線課題進行教學;文獻[9]則通過一系列的APP小任務學習神經系統結構和功能,目標明確,但不適用于知識點繁多的應用型課程。而在另外一些研究中,更關心在教學內容之外支持課程實施的方法,包括支持學生借助社交媒體完成課程目標、創建學習氛圍[10]、重視教師關懷[11]和通過建模構建學習評估系統[12]等方式。總體而言,挑戰式教學模式也在不斷發展,為主動型學生提供了絕佳的學習環境,也對教師提出了更高要求。
在信息安全領域,應用類課程常常需要覆蓋較多技術,例如在數據安全與取證課程中,需要對文件系統、數據庫、內存、計算機網絡等可以保存數據的部件或文件進行取證與數據恢復,而僅一個挑戰目標無法覆蓋所有內容。因此,需要構建多個挑戰目標覆蓋課程的知識點。由于課時有限,若要求學生同時完成多個挑戰目標,任務安排明顯不合理。因此,本文提出將各個目標分為若干階段,以疊瓦式方式進行安排,讓學生能夠在有限時間內完成多個挑戰任務。挑戰課程設置以學生為中心的系列挑戰任務,該設計可增強學生的參與度,促進學生自學和團隊合作,提升學生自主解決復雜工程問題的能力。
在新工科建設的背景下,電子科技大學教育教學改革研究項目對現代教育進行了探索與實踐,構建了多個挑戰性課程。其中,數據安全與取證技術課程按挑戰性課程設計。該課程通過快速構建基礎知識框架,讓學生集中投入大量實踐時間,并輔以研討互動,進一步全面掌握相關知識。在此基礎上,學生可以進一步拓展學科知識,培養創新能力。多階段挑戰課程的教學模式主要從3個方面進行建設,即課程學時分配、挑戰目標階段劃分和挑戰目標分類。
為了發揮學生的主動性,課程的基礎知識講授不應超過課程的1/3。剩余時間應由教師組織和指導,為師生提供討論和分享的時間及空間。數據安全與取證技術挑戰課程總課時為24學時,課程學時分配比例如圖1所示。為了支持基礎操作和環境搭建,實驗操作課為4學時,對基礎理論、核心技術、項目目標的講授內容僅占6學時,評估過程占4學時,作品呈現和方案研討為10學時。

Fig.1 Class hours allocation ratio圖1 課程學時分配比例
挑戰課程需要培養學生的綜合開發能力,因此最好選擇在大三期間開展課程,難度可以通過學生完成課程的時間進行初步判斷,平均1:1的課內/課外時間比是合適的。根據調查,參加挑戰課的小組完成任務的時間如表1所示,課外總占用時間平均為20~68h。技術能力欠缺的小組,課內/課外時間占比約為1:3。

Table 1 Statistics of extra-curricular time表1 課外占用時間統計
數據安全與取證技術挑戰課程構建了“基礎知識—挑戰目標—主動學習—研討—評估—拓展—創新”的多階段教學模式,讓學生快速、主動地獲得專業知識,培養工程實踐能力與團隊協同能力,并激發創新意識。該課程的教學模式和挑戰目標如圖2所示。基于問題的學習[13],可讓學生主動學習基礎和專業知識,并將過去課程中學習的知識用于完成挑戰目標。對教師而言,設計挑戰目標時,最重要的原則是讓挑戰目標彼此之間高度相關,根據課程進度讓學生能夠不斷達到特定目標,獲得成就感。在依次完成挑戰目標后,學生將遇到更多待解決的問題,激發其挑戰興趣。

Fig.2 Challenging teaching mode圖2 挑戰式教學模式
課程根據挑戰目標,陸續對文件系統、日志系統、數字圖像處理等基礎知識結合案例進行講授,構建課程的上下文環境,讓學生對這些技術領域有個初步認知,了解各領域的發展進展,便于學生尋找研究資料,并提供解決挑戰目標的關鍵技術和知識。
課程將挑戰目標分為3類:“基礎挑戰”、“專項挑戰”和“擂臺賽”。基礎挑戰提供專業背景知識,專項挑戰體現課程核心內容,擂臺賽進行專業拓展,提升創新能力。
“基礎挑戰”構建一個虛擬案例,賦予學生探案角色,學生需要用文件系統的基本知識和工具進行數據恢復,再根據司法取證的標準流程完成取證,從而直接讓學生進入一個身臨其境的實踐環節。在課程的第一次課中,學生需要通過“基礎挑戰”完成基礎訓練,并達到以下幾個目標:首先學生對彼此之間的能力、習慣形成了一個初步認識,便于在后續學習過程中組建小組;其次,具備該領域的基礎知識,掌握相關工具的使用,確定開發環境;最后,熟悉專項挑戰的3個學習階段。
隨著課程的進展,課程在第二周即進入專項挑戰目標環節。專項挑戰目標環節設計了3個目標,即文件雕刻、日志分析和圖像偽造檢測。各專項挑戰的教學過程分為4個階段,即主動學習、討論、評估和拓展階段。
主動學習階段是學生在課后分工進行相關資料的閱讀,尋找最佳解決方案,通過主動尋找資料完成知識的積累。實踐發現,不同小組主動學習的能力不同,在完成第一個目標挑戰任務時,查找的資料通常還局限于課程資料、中文資料,學術論文涉及較少,而在完成第三個任務時,很多小組查詢資料的數量和范圍明顯擴大,能夠找到很多有效的解決方案。
討論和評估階段的設計需要充分考慮團隊間的合作與競爭關系,實現激烈但不沖突、互助但不遷讓的學習環境。在討論階段,各小組分別將學習的知識和討論的解決方案進行跨組共享,研討挑戰目標的技術路線,展示初步進展,并相互解答疑難問題,實現團隊之間相互溝通和協助。該階段的另一個目標是基本完成作品的小組能夠繼續修改和完善技術方案,并協助能力欠缺的小組繼續完成挑戰任務。在評估階段,學生和教師將共同對挑戰目標的完成度進行評價與打分。課程通過設計各階段的評分標準,讓研討階段和評估階段的討論激烈化,增強學生的投入感。從效果上看,研討和評估階段能夠培養學生的批判性思維。從教學效果上看,各階段的討論會隨著學生對課程內容的熟悉而趨向于白熱化。為了減少沖突,討論的禮節和氛圍掌控是課程指導中教師需要注意的重點。通過評估階段,能力較強的小組甚至能夠在原基礎之上有所創新,為拓展階段打下良好基礎。
在課程后期,各小組已積累了足夠的專業領域知識和工程經驗,并且完成了團隊磨合,至此可進入拓展階段。拓展階段主要通過擂臺賽完成,各小組將自主進行命題,并在完成相關工作后構建擂臺目標。小組進行評估后,可以相互選擇挑戰目標。由于各小組的創新和把控能力不同,自主命題的難度可能過高或過低,吸引力不夠,導致擂臺上的挑戰題目較少,不夠分配,因此沒有選題的小組可以在已完成的挑戰目標基礎上繼續優化任務。另外,教師也可以提前準備1~2個題目,增加擂臺賽的選擇。該階段的主要目的是讓學生從命題過程中,將學習到的知識進行再組織,鼓勵其開拓性地發掘新的工程目標,培養創新意識。
挑戰課程的挑戰目標可以分為3類,即案例資源、基礎挑戰和專項挑戰。其內容的選擇在于是否能夠在挑戰過程中提高學生的學習效率與學習主動性,增強學生的團隊合作能力和面對復雜工程問題時解決問題的能力。同時,挑戰內容還需要綜合考慮知識覆蓋面與挑戰目標的平衡以及挑戰難度的階梯遞增關系。另外,專項挑戰任務難度大,需要根據每屆學生的實際能力變化目標難度。
課程根據挑戰目標設計了案例資源,包括案例虛擬盤、文件碎片挑戰包和圖像庫。案例虛擬盤模擬一個刑事案件調查中獲取的證物,學生需要代入司法鑒定所的電子數據鑒定人員角色,通過分區恢復、文件恢復、文件垃圾箱取證、MAC時間取證、關鍵詞搜索等操作,完成鑒定表。文件碎片包為50MB,包含了JPEG、ZIP、HTML、Text和Microsoft Office等文件碎片。挑戰包中包含32個文件,分為若干挑戰場景,例如在碎片化的HTML場景中,HTML文件分為頭尾兩塊,中間是其它數據,例如JPEG文件、Word文件、隨機數據或text文件等。根據教學需要,學生可以自選不同文件格式的類型開發相應工具,盡力從文件碎片包中提取盡量多的文件。圖像庫采用薩格勒布大學視頻通信實驗室提供的復制粘貼圖像庫[14],包括260張偽造圖像,涉及平移、旋轉、縮放、組合和變形處理5大類別。學生需要實現基于離散余弦變換DCT的暴力匹配檢測進行辯偽,然后通過主動學習完成旋轉、縮放、組合和變形處理的圖像取證算法代碼。
基礎挑戰通過教師引入案例故事進行理論知識講解,讓學生熟悉專業術語和行業背景,最后通過案例快速了解行業標準、規范和基礎技能。該挑戰通過虛擬案例完成,2021年的基礎挑戰設計了一個MBR被破壞的虛擬硬盤鏡像文件,虛擬硬盤中有一批圖像文件,以及存放物證的密碼文件(已刪除)。該挑戰目標需要根據取證流程規定,完成包括數據恢復、圖像文件時間線判斷和密碼文件搜索等目標。從課程知識點看,基礎挑戰需要學生熟悉文件系統結構,包括MBR、分區表、FAT文件系統以及文件的MAC時間屬性、哈希計算、文件數據保存位置等內容。除知識點學習外,該環節的教學目標還有兩個:一是使學生熟悉專業方向場景和操作流程;二是在小組中初步嘗試合作解決問題,用最短的時間完成磨合,確保在進行后續挑戰任務前能夠順利組隊。
在專項挑戰目標中設計了3個專項挑戰,即文件雕刻、日志分析和圖像偽造檢測。該階段的教學目標主要為培養學生解決問題的能力。如圖3所示,3個專項挑戰的難度經過刻意安排,呈疊瓦式部署,確保學生在一個星期內只需重點開發一個項目。例如任務最繁忙的第4周,學生需要重點開發日志分析任務,同時學習圖像取證相關內容,但可避免同時編寫兩個項目的代碼,因此不會有太多沖突。另外,組隊的方式需要能夠讓學生合理分配時間。

Fig.3 Stages of specific challenge圖3 專項挑戰的各個階段
文件雕刻需要學生對磁盤中殘留的文件碎片進行恢復,涉及扇區操作以及多種文件格式分析和文件雕刻算法。因此,課程首先介紹文件雕刻原理,并在課堂上通過開源工具Scalpel針對特別制作的挑戰素材進行初步的文件恢復,同時為學生提供了相關論文作為學習資料,再讓各小組各自選擇兩種文件類型開發自己的工具進行文件碎片恢復。出于復雜性方面的考慮,多數同學選擇了JPEG和HTML,部分小組選擇了TXT和ZIP進行數據恢復,沒有小組選擇復合文檔恢復。
日志分析挑戰目標的主要課程內容是學習使用rsylog用于跟蹤用戶登錄、登出等認證活動,并記錄到/var/log/forensics.log 中。課程將指導學生創建一個MySQL數據庫和一個“event”表用于記錄和分析。挑戰目標需要學生開發日志解析程序,該程序具有持續監視日志文件、轉換多種標準格式、解析用戶認證活動中的關鍵信息,將時間戳的GMT格式轉換為UTC格式等功能,最后將分析結果插入到數據庫的“event”表中。該任務要求學生具備較強的綜合能力,需要完成前端、后臺和數據庫交互,構成一個完整框架。學生需要設計與實現相關的數據分析、協議過程分析、格式轉換和數據庫操作等內容。
圖像偽造檢測的挑戰目標是識別數字圖像中偽造的部分,包括區域復制粘貼、不同圖片區域合成等偽造操作。由于多數學生沒有學習數字圖像處理課程,該環節需要讓學生盡快學習數字圖像處理的基礎知識和相關算法庫,主要包括數字圖像處理中的算術運算、空間操作、圖像變換、圖像篡改技術、圖像矩等核心知識。挑戰目標的設計是提供一個圖像庫,圖像庫中有若干偽造的圖像,學生需要通過設計與實現軟件,對圖像庫中所有圖像進行辨認,找出偽造的圖像。課程提供了基礎算法,但只能解決1/3的圖像識別問題,課程還提供了一些常規思路,能解決另外1/3的圖像識別問題,剩下的問題學生必須通過資料查找兩類圖像辨認算法或自己設計新算法來解決。
在經歷了一系列挑戰后,課程進入擂臺賽,該階段著重培養學生提出問題的能力。在擂臺賽階段,由教師和小組出題,即提出“擂臺目標”,學生組從中選擇挑戰題目。該階段要求小組提出挑戰題目的同時也需要提供解決方案和答案。為了讓挑戰題目難度更加合理,課程為擂臺賽作了以下設置:
(1)若存在其他小組選擇本隊提出的擂臺目標,則本隊獲得加分。該規則的設計目的在于避免小組提出的擂臺目標難度過大,其他小組不會選擇該題目。
(2)擂臺賽的評分按小組數量劃分為不同的檔次,且每個分數具有唯一性。該規則的設計目的是為了防止某些小組提出的挑戰內容難度過小,導致其它小組獲得高分。
(3)教師需要提前準備幾個擂臺題目,作為部分小組題目沒有被選中時的候選題目。
在教師確定專項挑戰后,每個專項挑戰安排3個階段,即研討、評估和拓展階段。評估和拓展階段均包含作品展示部分,3個階段均有不同的教學目標。
研討階段的主要目標是培養團隊與團隊間的合作和交流能力。該階段分為課堂小組間研討和課后的小組內部研討。
評估階段的主要目標是提升學生對知識掌握情況的評估能力。學生通過對其它小組的作品進行評估和他隊對自己的評估,從兩個方面取長補短,了解自身的優點和不足。教師既需要對學生的評估進行總結,又需要根據經驗提出各種改進意見。在評估階段,教師需要努力將評估過程轉變為自由發言的腦力風暴,激發創新思維。例如在文件雕刻的評估過程中,一個小組的學生突然意識到調試過程過于繁瑣,因此在拓展階段開發了界面工具,以減少調試過程。
在拓展階段,學生除完成挑戰內容的課程要求外,還需要額外實現與挑戰內容相關的功能。創新性越強,評價越高。從結果中可以看到,當學生通過前兩階段的學習和訓練后,已完全掌握相關知識、算法和技能,在拓展階段的發揮自由度則比較高。有的小組會開發輔助工具,有的小組設計新算法,有的小組增強處理功能,往往令人耳目一新。
課程評價采用形成性評價與總結性評價相結合的形式。形成性評價需要對學生在設計、研討、相互協作、功能實現、成果展示各個階段進行評價,總結性評價主要根據各挑戰報告進行評價。由于設計、成果展示等過程評價的主觀性較強,學生參與上述環節的評價過程,將這些階段的學生評分比例控制在80%左右。評價內容如表2所示,從工程教育角度,通過表達/研討效果鼓勵學生提高組織管理能力、語言和文字表達能力;通過研討工程完整性,培養學生的計算機軟硬件系統設計和方案選擇能力;通過評估成果是否具有突破/創新性,讓學生思考自身的創新意識和國際競爭力。

Table 2 Student evaluation system表2 學生評價系統
此外,評分采用階梯制,防止學生在評分時相互敷衍,同時教師也需要參與所有組的評價,并給出評價報告。評價報告包括展示表現、研討效果、創新能力、代碼可讀性和整潔度等內容。由于學生的主動參與,學生對評分標準的合理性較為滿意(4.5/5分)。
為了解教學效果,課程結束后進行了教學效果調查,如表3所示。

Table 3 Investigation on after-school teaching effect表3 課后教學效果調查
教學效果的統計顯示挑戰課程的難度超出年級學生的平均能力。在60%的學生在基礎挑戰后就退出課程的情況下,堅持學習課程的學生認為課程難度和內容飽和度均為4.5。但從第一個專項挑戰開始到最后的擂臺賽,能夠看到學生各項能力的進步顯著。根據調查,學生認為提升最大的是自學能力、團隊合作和交流能力,其次是編程能力。例如有僅能夠完成編程作業的學生投入大量時間后,也能夠獨立完成圖像取證項目。但統計結果也反映了一些問題,例如文獻查找能力和創新能力提升效果不佳。因此,后續課程需要補充查找文獻的技巧和創新思維教學。從總體上看,學生的實踐能力獲得了較大提升,學生開闊了視野,對項目的把控,以及自學能力、團體協作能力、主動學習和創新能力均得到了提升。
本文通過數據安全與取證挑戰性課程的實踐,形成了分階段的挑戰課程教學設計模式和挑戰目標選擇方法,達到了提升學生學習的主動性、擴大知識面、培養其綜合開發和創新能力的效果。課程安排在第三學年的第二學期,本階段完成該課程的學生參與各種競賽的需求明顯降低,因而很難將所學知識應用到實踐中。因此,第三學年的挑戰課程設計最好以培養學術研究能力出發,增加文獻查詢和創新性引導,可能更能符合該階段學生的需求。最后,本課程未來將建立健全的配置管理措施和標準化的軟件接口,構造跨屆的挑戰項目,以促進各屆學生之間的交流,以取得更好的教學效果。