馬文靜 吳建軍 周家慶
摘要:Web安全漏洞是網(wǎng)絡(luò)安全的主要的威脅之一,網(wǎng)絡(luò)空間安全專業(yè)實驗不同于普通實驗,安全測試實驗不允許在真實網(wǎng)絡(luò)環(huán)境中實施。因此,本文作者通過虛擬仿真項目構(gòu)建了“真實”的漏洞場景,Docker容器虛擬化技術(shù)為仿真提供了低成本、高效率的實驗環(huán)境,在實驗平臺的綜合協(xié)調(diào)下,實現(xiàn)了Web安全漏洞實驗的線上共享開放教學(xué)。項目體現(xiàn)了網(wǎng)絡(luò)空間安全的特色,符合虛擬仿真項目建設(shè)要求。
關(guān)鍵詞:虛擬仿真;Web安全漏洞;Docker
中圖分類號:G434? 文獻(xiàn)標(biāo)識碼:A? 論文編號:1674-2117(2021)08-0101-04
● 引言
“Web安全基礎(chǔ)”是網(wǎng)絡(luò)空間安全專業(yè)的主要專業(yè)課程之一,該課程配套的Web安全漏洞實驗教學(xué),將Web安全領(lǐng)域典型安全漏洞的滲透測試和對應(yīng)防御安全威脅的安全開發(fā)能力培養(yǎng)相結(jié)合,讓學(xué)生既具有一定的Web安全滲透測試能力,也具有較好的Web軟件安全開發(fā)能力,體現(xiàn)了本專業(yè)的人才培養(yǎng)特色。
網(wǎng)絡(luò)安全漏洞實驗,本身就帶有安全漏洞的測試靶機(jī),它們不適合部署在常規(guī)的Web服務(wù)器容器中。在常規(guī)服務(wù)器部署安全漏洞靶機(jī),會因滲透實驗過程而使整個服務(wù)器被攻擊利用,無法實現(xiàn)正常的實驗教學(xué),一般只適合在用戶本地機(jī)器進(jìn)行實驗測試?!案鶕?jù)實驗教學(xué)計劃和實際情況,本著‘能實不虛的原則加大虛擬仿真實驗教學(xué)項目建設(shè)力度,探索線上線下教學(xué)相結(jié)合的新型實驗教學(xué)模式?!盵1]Web安全漏洞仿真實驗,基于虛擬仿真實驗建設(shè)的文件精神,遵循“虛實結(jié)合,能實不虛,開放共享”的原則,將“Web安全漏洞實驗”通過虛擬化容器管理模式,實現(xiàn)漏洞實驗的安全測試,實現(xiàn)了實驗教學(xué)的過程化管理。它明顯優(yōu)于傳統(tǒng)的實驗靶機(jī)分散本地測試模式,較完善地達(dá)到了課程教學(xué)目標(biāo)。
● Web安全漏洞仿真實驗平臺建設(shè)目標(biāo)
本項目基于Web安全漏洞靶機(jī),以Docker容器虛擬化技術(shù)進(jìn)行部署,在本項目框架平臺中實現(xiàn)統(tǒng)一管理和自動測評。部署本項目后,教師可以統(tǒng)一管理實驗,學(xué)生按相關(guān)任務(wù)完成并提交實驗結(jié)果,系統(tǒng)自動給予操作評價,并指出錯誤原因。
基于Docker容器虛擬化技術(shù)的仿真實驗系統(tǒng),每個學(xué)生的實驗環(huán)境都是獨立的,不會因為滲透測試行為而使相互之間的實驗受到影響;每個學(xué)生的實驗環(huán)境都是封閉的,測試行為不會對部署本項目平臺的服務(wù)器產(chǎn)生安全影響;每個學(xué)生的實驗行為和結(jié)果都實現(xiàn)了過程化管理,能滿足線上線下混合式教學(xué)需求。通過實驗,主要學(xué)習(xí)和驗證跨站點腳本攻擊(XSS)、命令執(zhí)行漏洞、CSRF跨站請求偽造、SQL注入、Authentication Flaws認(rèn)證缺陷、Access Control Flaws訪問控制缺陷等Web安全漏洞。平臺能實現(xiàn)Web安全漏洞仿真實驗的有效組織與評價,記錄、分析學(xué)生的實驗學(xué)習(xí)過程,可全面提交、匯總整個課程實驗教學(xué)的綜合評價結(jié)果。
● 仿真實驗原理
Web安全漏洞仿真實驗不同于傳統(tǒng)的計算機(jī)軟件開發(fā)類實驗,它首先需要滿足安全漏洞靶機(jī)在服務(wù)器上的安全部署,其次需要解決不同學(xué)生的獨立實驗環(huán)境,最后還需要有一個統(tǒng)一的管理平臺。為此,該項目由Docker容器虛擬化技術(shù)、實驗平臺與靶機(jī)即時信息交互技術(shù),以及實驗管理系統(tǒng)三部分組成。
1.Docker容器虛擬化技術(shù)
基于Docker容器虛擬化技術(shù),為每個學(xué)生構(gòu)建封閉、獨立的實驗環(huán)境。容器可以按需要構(gòu)建或銷毀,獨立的實驗環(huán)境確保提供自主學(xué)習(xí)過程。
如圖1所示,與傳統(tǒng)的主機(jī)虛擬化技術(shù)相比,Docker具有更高的資源利用率、更低的資源需求、更快的速度、簡單的管理。Docker容器虛擬化技術(shù),在完成預(yù)設(shè)的Image構(gòu)建后,啟動Image,將Docker容器的端口映射到服務(wù)器主機(jī)端口,使用Docker Run命令執(zhí)行啟動、運行、停止等操作。[2]可以在實驗平臺管理下快速生成(數(shù)秒級)靶機(jī)容器,也可以快速銷毀容器,可控的Docker容器降低了實驗成本,滿足了相關(guān)的實驗要求,并且確保了實驗環(huán)境的安全性問題不易被帶到實際環(huán)境中。
本項目基于Docker容器虛擬化技術(shù)較好地解決了Web安全漏洞靶機(jī)不允許在常規(guī)服務(wù)器部署、Web安全漏洞禁止在真實網(wǎng)站測試、安全漏洞測試如何反復(fù)重現(xiàn)實驗等多個矛盾,體現(xiàn)了虛擬仿真的意義。
2.實驗平臺與靶機(jī)信息交互
實驗平臺在每個學(xué)生的實驗過程中,即時訪問靶機(jī)容器,獲取實驗數(shù)據(jù),這是本系統(tǒng)的關(guān)鍵環(huán)節(jié)。Docker容器運行后,以Web程序方式提供學(xué)生實驗操作環(huán)境,學(xué)生的漏洞測試過程通過Web界面操作并提交給Docker容器。Docker容器的Web程序與實驗平臺(也是一個Web程序)分屬不同的Web域,本系統(tǒng)通過學(xué)生實驗過程中的憑據(jù)提交、后臺請求響應(yīng)的方法實現(xiàn)實驗數(shù)據(jù)的獲取。
(1)學(xué)生開始實驗,將本次實驗的身份憑據(jù)提交給實驗平臺。
(2)實驗平臺獲得憑據(jù)后,實現(xiàn)后臺訪問Docker容器的Web程序權(quán)限,并按需要,隨時訪問、記錄實驗數(shù)據(jù)。
(3)實驗平臺對實驗數(shù)據(jù)進(jìn)行匯總、分析,記錄實驗學(xué)習(xí)過程,提出改進(jìn)策略。
Docker靶機(jī)設(shè)計了測試信息訪問接口,并合成于Image,每個容器啟動均自動啟用訪問接口;實驗平臺獲取學(xué)生提交的身份憑據(jù),封裝為WebRequest提交至Docker靶機(jī),獲得訪問權(quán)限;通過Docker的訪問接口,實驗平臺獲得靶機(jī)的WebResponse,通過解析存儲至實驗平臺數(shù)據(jù)庫,并按需要提供數(shù)據(jù)呈現(xiàn)。
3.實驗平臺管理
實現(xiàn)線上線下相結(jié)合、共享開放的新型實驗教學(xué)模式,是計算機(jī)虛擬仿真實驗項目建設(shè)的一個重要目標(biāo)。實驗平臺是整個項目的中心,它基于一個主流的MVC框架開發(fā),以保證自身在線上實驗教學(xué)過程的安全、穩(wěn)定運行。
● 實驗平臺設(shè)計
在虛擬仿真實驗建設(shè)過程中,一定要秉持“虛實結(jié)合,能實不虛,共享開放”的原則,有效利用虛擬仿真技術(shù),有效使用線上平臺,實現(xiàn)共享開放。Web安全實驗不適合在真實網(wǎng)站進(jìn)行測試學(xué)習(xí),Web安全漏洞靶機(jī)也不適合在服務(wù)器上以真實網(wǎng)站的形式進(jìn)行部署實驗。前者,安全測試可能會導(dǎo)致真實網(wǎng)站的不可逆破壞;后者,會因為漏洞靶機(jī)給服務(wù)器帶來嚴(yán)重的安全后果。本實驗平臺以Docker容器應(yīng)用為基礎(chǔ),在安全可控的范圍內(nèi),低成本、高效率地為每個學(xué)生的實驗虛擬了獨立的漏洞靶機(jī),實驗環(huán)境是“真實”的,整體達(dá)到了虛擬仿真項目的基本要求。
1.系統(tǒng)組成
Web安全漏洞仿真實驗平臺主要由實驗管理平臺和Web安全漏洞靶機(jī)Docker系統(tǒng)兩部分組成(如圖2)。對實驗用戶而言,Docker靶機(jī)是透明的,用戶面對的就是一個帶有Web安全漏洞的真實網(wǎng)站。
整個系統(tǒng)的管理操作包括教學(xué)管理、教學(xué)信息、實驗任務(wù)安排、成績匯總分析等,在實驗管理平臺完成。實驗過程:①學(xué)生啟動實驗后,平臺自動發(fā)送指令生成Docker靶機(jī);②靶機(jī)啟動完成后,在實驗平臺的監(jiān)控下,自動打開瀏覽器訪問靶機(jī)Web程序,整個Web漏洞實驗過程是在瀏覽器中操作完成;③實驗過程中,實驗平臺隨時收集實驗數(shù)據(jù),在實驗完成后進(jìn)行匯總分析,呈現(xiàn)實驗結(jié)果;④實驗完成后,銷毀實驗靶機(jī)。
平臺按學(xué)生的需要管理Docker靶機(jī)等實驗資源,自動完成實驗數(shù)據(jù)收集和實驗結(jié)果呈現(xiàn)。
2.實驗平臺功能
實驗平臺是一個完整的實驗教學(xué)軟件,滿足了線上虛擬仿真實驗共享開放的相關(guān)要求。
(1)用戶管理與認(rèn)證授權(quán)。系統(tǒng)主要分為管理員、課程組長、教師和學(xué)生等角色,在登錄后完成授權(quán)使用。管理員主要對本系統(tǒng)的教師賬戶進(jìn)行創(chuàng)建管理,包括平臺數(shù)據(jù)備份、平臺運行等綜合性管理。課程組長對實驗內(nèi)容進(jìn)行管理,可以新增、修改實驗任務(wù)等。教師是實驗教學(xué)的組織者,基于實驗課程布置任務(wù),檢查實驗進(jìn)度,指導(dǎo)學(xué)生實驗。在本系統(tǒng)中,學(xué)生除了完成教師安排的實驗任務(wù)外,可以自主選擇實驗進(jìn)行學(xué)習(xí)操作;同時,學(xué)生個人中心可以展示學(xué)生的實驗過程和成績,以及改進(jìn)實驗的方法等。
(2)教學(xué)信息。
(3)實驗任務(wù)管理。
(4)實驗幫助與實驗過程。作為共享開放的線上實驗需求,為用戶提供實驗幫助是一個重要的輔助形式,幫助內(nèi)容包括漏洞的成因、危害,以及解決的思路等。
平臺的每個實驗,均通過Web頁面引導(dǎo)完成,每個步驟的操作都是開放的。例如,一個sql注入實驗,注入的sql語句可以形式繁多,但最終結(jié)果都可以統(tǒng)一實現(xiàn)。這也是本虛擬仿真項目的設(shè)計目標(biāo)之一,即以虛擬的環(huán)境實現(xiàn)真實的漏洞測試過程。
(5)實驗數(shù)據(jù)匯總分析?;诒卷椖繉崿F(xiàn)的平臺與靶機(jī)之間的信息訪問技術(shù),平臺隨時收集學(xué)生在實驗過程中的嘗試過程,包括失敗和成功的測試。在實驗結(jié)果呈現(xiàn)時,對個人可以呈現(xiàn)每個步驟的每次操作記錄,對整個教學(xué)班級可以呈現(xiàn)學(xué)生的分類信息,較好地體現(xiàn)了教學(xué)軟件的自動化功能,改進(jìn)了實驗教學(xué)成效。
3.實驗課程內(nèi)容
本系統(tǒng)的實驗課程參照國際主流的OWASP(Open Web Application Security Project,開放式Web應(yīng)用程序安全項目)組織公布的Web安全應(yīng)用Top 10文檔[3],同步關(guān)注Web安全領(lǐng)域的十大威脅,力爭能夠激發(fā)學(xué)生興趣,培養(yǎng)其安全應(yīng)用思維和安全開發(fā)方法。具體實驗內(nèi)容如上表所示,每次實驗為2課時,共18課時。
● 結(jié)語
實驗教學(xué)是培養(yǎng)學(xué)生掌握發(fā)現(xiàn)、分析和解決問題能力的重要環(huán)節(jié)。[4]筆者所在學(xué)校的Web安全漏洞仿真實驗項目開發(fā)已初步完成,整個系統(tǒng)基本實現(xiàn)了設(shè)計目標(biāo)?;诒緦嶒炂脚_,學(xué)生可在虛擬環(huán)境下實施Web安全測試,觀察靶機(jī)在漏洞利用狀況下的受害顯示,充分理解Web安全威脅。同時,實驗平臺對實驗行為的數(shù)據(jù)收集和匯總分析,不僅自動化地實現(xiàn)了實驗成績統(tǒng)計,而且根據(jù)學(xué)生的實驗過程,提出了操作改進(jìn),有效地提高了實驗教學(xué)需求。項目符合虛擬仿真建設(shè)要求,基本滿足該實驗課程的線上共享開發(fā)需求。
參考文獻(xiàn):
[1]教育部辦公廳.關(guān)于2017—2020年開展示范性虛擬仿真實驗教學(xué)項目建設(shè)的通知[Z].教高廳[2017]4號.
[2]高禮, 高昕.Docker技術(shù)在軟件開發(fā)過程中的應(yīng)用研究[J].軟件,2016(03):110-113.
[3]OWASP, OWASP Top 10 2017[EB/OL].http://www.owasp.org.cn/owasp-project/OWASPTop102017v1.3.pdf.
[4]杜曄,陳賀男,黎妹紅,等.Web應(yīng)用安全實驗教學(xué)探討與案例評析[J].計算機(jī)教育,2015(19):17-19.
基金項目:2019年度浙江師范大學(xué)虛擬仿真實驗教學(xué)項目(ZC303919020)。