李秋賢 石云升 周全興



摘? 要:針對(duì)當(dāng)下網(wǎng)絡(luò)安全人才緊缺、網(wǎng)絡(luò)信息安全攻防平臺(tái)無(wú)法滿足學(xué)校開(kāi)展實(shí)踐訓(xùn)練的問(wèn)題,提出了采用Python的Django框架、MySQL+Redis數(shù)據(jù)庫(kù)、基于Docker容器的信息安全攻防平臺(tái)。重點(diǎn)介紹了平臺(tái)的開(kāi)發(fā)思路與實(shí)現(xiàn)過(guò)程,對(duì)學(xué)習(xí)信息安全知識(shí)和技能、了解網(wǎng)絡(luò)攻防競(jìng)賽以及系統(tǒng)開(kāi)發(fā)具有較大幫助。
關(guān)鍵字:Docker;信息安全;網(wǎng)絡(luò)安全;攻防平臺(tái)
中圖分類號(hào):TP309? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2021)02-0114-05
Abstract:In response to the current shortage of network security talents and the network information security attack and defense platform that cannot meet the practical training of schools,this paper proposes an information security attack and defense platform based on Python Django framework,MySQL+Redis database and Docker container. It focuses on the development ideas and implementation process of the platform,which is of great help to learning information security knowledge and skills,understanding network attack and defense competitions,and system development.
Keywords:Docker;information security;network security;attack and defense platform
0? 引? 言
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,移動(dòng)支付讓人們走進(jìn)了“無(wú)現(xiàn)金”社會(huì),各種APP成為生活中不可或缺的一部分。人們?cè)谙硎鼙憷耐瑫r(shí),也時(shí)刻受到網(wǎng)絡(luò)詐騙、隱私泄露等威脅;全球網(wǎng)絡(luò)安全事件頻發(fā),使信息安全技術(shù)和人才受到各國(guó)高度重視[1]。目前大部分院校開(kāi)設(shè)有信息安全相關(guān)專業(yè),培養(yǎng)信息安全技術(shù)人才,但網(wǎng)絡(luò)安全人才仍有巨大缺口[2]。信息化的快速發(fā)展,網(wǎng)絡(luò)安全問(wèn)題更加突出。習(xí)總書(shū)記在國(guó)家網(wǎng)絡(luò)安全宣傳周指出提升全民網(wǎng)絡(luò)安全意識(shí)和技能,堅(jiān)持網(wǎng)絡(luò)安全教育、技術(shù)、產(chǎn)業(yè)融合發(fā)展,形成人才培養(yǎng)、技術(shù)創(chuàng)新、產(chǎn)業(yè)發(fā)展的良性生態(tài)[3]。目前商用的信息安全訓(xùn)練平臺(tái)有實(shí)驗(yàn)吧(https://www.shiyanbar.com)、攻防世界(https://adworld.xctf.org.cn/)等,相關(guān)賽事有奪旗賽(Capture The Flag,CTF)、“西普杯”等。目前商用網(wǎng)絡(luò)攻防平臺(tái)由于其技術(shù)保密、自定化程度低等,不利于開(kāi)展教育教學(xué)活動(dòng)和學(xué)習(xí)最新技術(shù)。研究基于Docker容器的信息安全攻防平臺(tái)對(duì)學(xué)校信息安全人才培養(yǎng)、教育教學(xué)實(shí)訓(xùn)都具有重大意義。
1? 總體設(shè)計(jì)
1.1? 功能需求分析與設(shè)計(jì)
目前主流網(wǎng)絡(luò)攻防競(jìng)賽平臺(tái)基本都是線上比賽,提供線上賽前培訓(xùn),比賽題干類型主要有Web安全、逆向分析、移動(dòng)安全、密碼學(xué)、電子取證和雜項(xiàng)等。其中,Web安全主要圍繞Web服務(wù)來(lái)進(jìn)行滲透測(cè)試;逆向分析包含PWN(黑客語(yǔ)法,意思是砰,實(shí)為二進(jìn)制溢出),使用C/C++、Java等編寫(xiě)的程序通過(guò)反匯編代碼來(lái)理解其功能,并分析其開(kāi)發(fā)過(guò)程中不安全設(shè)計(jì)導(dǎo)致的漏洞[4];移動(dòng)安全主要分析Android應(yīng)用程序的漏洞;密碼學(xué)主要對(duì)已知漏洞的加密方式進(jìn)行破解;電子取證主要對(duì)入侵行為進(jìn)行證據(jù)獲取、分析等行為;雜項(xiàng)包含隱寫(xiě)術(shù)、以及圖片視頻修復(fù)等。本文所實(shí)現(xiàn)的攻防平臺(tái)除包含以上內(nèi)容,還需滿足以下目標(biāo):
(1)由于平臺(tái)有大量涉及信息安全相關(guān)的操作,且用戶可上傳相關(guān)腳本和環(huán)境,平臺(tái)須具有足夠的安全性;
(2)平臺(tái)采用Docker進(jìn)行部署題目,便于管理員進(jìn)行管理;
(3)平臺(tái)應(yīng)具有簡(jiǎn)潔美觀、人性化交互的個(gè)人界面,用戶上手快;
(4)平臺(tái)管理員有超級(jí)管理員、社區(qū)管理員、用戶管理員、題庫(kù)管理員四種,除超級(jí)管理員之外其他管理員權(quán)限各不相同,以更好管理平臺(tái)。
1.2? 開(kāi)發(fā)語(yǔ)言環(huán)境與架構(gòu)設(shè)計(jì)
平臺(tái)基于Python的Django框架進(jìn)行開(kāi)發(fā),分為后臺(tái)模塊、社區(qū)模塊、用戶模塊、題庫(kù)模塊。其中后臺(tái)數(shù)據(jù)庫(kù)使用MySQL、采用Redis作為緩存,使用Vue.js和Element-pro來(lái)作為前端框架,題庫(kù)環(huán)境使用Docker進(jìn)行部署。Docker是基于LXC(全稱為L(zhǎng)inux Container,是一種內(nèi)核虛擬化技術(shù))的高級(jí)容器引擎,由客戶端(Docker Client)、守護(hù)進(jìn)程(Docker Daemon)、鏡像(Docker Image)和容器(Docker Containers)組成[5],其目的是利用LXC來(lái)實(shí)現(xiàn)類似VM(VMware,虛擬機(jī))的功能,其運(yùn)行原理如圖1所示。
2? 平臺(tái)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
2.1? 功能模塊設(shè)計(jì)
平臺(tái)基于B/S(Browser/Server,瀏覽器/服務(wù)器)模式,由前端和后臺(tái)組成,如圖2所示。平臺(tái)需要注冊(cè)、登錄后使用,前端頁(yè)面包括首頁(yè)、安全熱點(diǎn)、攻防演練、排行榜、社區(qū)、個(gè)人空間等模塊,后臺(tái)系統(tǒng)主要有平臺(tái)設(shè)置、服務(wù)器管理、系統(tǒng)監(jiān)控、用戶管理、文案管理、社區(qū)管理、題庫(kù)管理和積分商城管理等模塊。
2.2? 用戶注冊(cè)與登錄
游客通過(guò)注冊(cè)之后成為平臺(tái)用戶,登錄之后可以使用平臺(tái)完整功能;管理員通過(guò)后臺(tái)登錄界面進(jìn)行登錄,登錄之后才能對(duì)平臺(tái)進(jìn)行管理。注冊(cè)與登錄如圖3、圖4所示。
2.3? 題庫(kù)模塊設(shè)計(jì)
題庫(kù)模塊主要含自我學(xué)習(xí)和攻防演練。自我學(xué)習(xí)主要是掌握信息安全理論知識(shí),提升用戶的網(wǎng)絡(luò)信息安全意識(shí)和法律法規(guī)知識(shí)學(xué)習(xí)。在攻防演練中,分為練習(xí)模式、個(gè)人模式以及奪旗模式。練習(xí)模式提供了大量信息安全相關(guān)知識(shí)和攻防技能訓(xùn)練,幫助用戶成長(zhǎng);個(gè)人模式為單人闖關(guān)類,題目難度會(huì)逐步增大,但積分也相應(yīng)增多;奪旗模式定期開(kāi)始,平臺(tái)用戶均可參加,分為單人奪旗和團(tuán)隊(duì)奪旗,根據(jù)最后獲取的分?jǐn)?shù)進(jìn)行排名,不同名次積分各不相同。其中練習(xí)模式和個(gè)人模式包含Web安全、逆向分析、移動(dòng)安全、密碼學(xué)、電子取證和雜項(xiàng)等題型。
2.4? 攻防演練設(shè)計(jì)
練習(xí)模式和個(gè)人模式網(wǎng)絡(luò)環(huán)境類似,其模型如計(jì)算機(jī)網(wǎng)絡(luò)拓?fù)鋱D。用戶進(jìn)入練習(xí)模式和個(gè)人模式的實(shí)驗(yàn)操作過(guò)程如圖5所示。
對(duì)于奪旗模式,分為單人奪旗和團(tuán)隊(duì)奪旗,網(wǎng)絡(luò)拓?fù)淙鐖D6所示,團(tuán)隊(duì)奪旗在單人奪旗基礎(chǔ)上增加操作機(jī)。
奪旗模式每個(gè)人(或者團(tuán)隊(duì))都有一臺(tái)服務(wù)器,所有人服務(wù)器均有相同隱患,在服務(wù)器上存在key,操作機(jī)上存在加密的score文件,score文件與對(duì)手一一對(duì)應(yīng),獲得分?jǐn)?shù)的方式為將對(duì)手的key與對(duì)應(yīng)的score文件提交至Lock服務(wù)器,正確即可獲得分?jǐn)?shù)。比如有6組選手,以其中一組來(lái)看,其獲取分?jǐn)?shù)過(guò)程如圖7所示。
2.5? 后臺(tái)管理
管理員登錄之后進(jìn)行訪問(wèn),對(duì)平臺(tái)進(jìn)行管理。超級(jí)管理員可列出所有管理員,可添加、刪除其他管理員,角色管理,文案管理,進(jìn)行平臺(tái)公告、文案的撰寫(xiě)以及發(fā)布。題庫(kù)管理員在奪旗模式管理中可以添加、刪除和修改比賽題目,并按時(shí)啟動(dòng)奪旗模式。社區(qū)管理員可對(duì)社區(qū)版主進(jìn)行管理,發(fā)布社區(qū)任務(wù)。用戶的管理和積分商城的物品管理由用戶管理員進(jìn)行管理設(shè)置。后臺(tái)系統(tǒng)控制臺(tái)及系統(tǒng)監(jiān)控如圖8所示。
2.6? 數(shù)據(jù)庫(kù)設(shè)計(jì)
平臺(tái)數(shù)據(jù)使用MySQL進(jìn)行存儲(chǔ),通過(guò)Redis來(lái)保存Session,并且Django自帶的model可以很方便處理這些煩瑣的存儲(chǔ)過(guò)程。數(shù)據(jù)庫(kù)連接代碼為:
#MySQL數(shù)據(jù)庫(kù)連接
DATABASES={
default':{
ENGINE':'django.db.backends.mysql',
'NAME':'yunaon',
'USER':'root',
'PASSWORD':'123@Sys.com',
'HOST':'localhost',
'PORT':'3306', }
}
#Redis數(shù)據(jù)庫(kù)連接
CACHES={
'default':{
'BACKEND':'django_redis.cache.RedisCache',
'LOCATION':'redis://localhost:6379/1',
'OPTIONS':{
'CLIENT_CLASS':'django_redis.client.DefaultClient',
'PASSWORD':'fd23!@,)56aSY', }
}
}
平臺(tái)中部分?jǐn)?shù)據(jù)庫(kù)表如表1、表2和表3所示。
3? 結(jié)? 論
本文介紹基于Docker容器的信息安全攻防平臺(tái)的設(shè)計(jì)思路和實(shí)現(xiàn)過(guò)程,對(duì)信息安全攻防平臺(tái)的搭建和網(wǎng)絡(luò)實(shí)踐平臺(tái)建設(shè)具有一定參考價(jià)值。平臺(tái)使用Python+Django進(jìn)行開(kāi)發(fā),基于Docker進(jìn)行攻防平臺(tái)設(shè)計(jì),實(shí)時(shí)更新網(wǎng)絡(luò)信息安全相關(guān)知識(shí)和技術(shù),在提升用戶的網(wǎng)絡(luò)信息安全意識(shí)同時(shí),又降低了培養(yǎng)相關(guān)專業(yè)技術(shù)人才的成本,平臺(tái)采用積分商城的方式提高用戶的黏性和積極性,對(duì)推廣和應(yīng)用具有較大幫助。
參考文獻(xiàn):
[1] 楊路.用于網(wǎng)絡(luò)攻防教學(xué)的AWS+Docker網(wǎng)絡(luò)實(shí)訓(xùn)平臺(tái)設(shè)計(jì)——以安徽公安職業(yè)學(xué)院為例 [J].云南警官學(xué)院學(xué)報(bào),2020(3):35-40.
[2] 李金磊.網(wǎng)絡(luò)安全人才缺口高達(dá)140萬(wàn) 如何緩解缺口? [EB/OL].[2020-09-15].http://it.people.com.cn/n1/2020/0915/c433780-31861783.html.
[3] 馬浚洋,馬建光.落實(shí)“四個(gè)堅(jiān)持”的原則 提升全民網(wǎng)絡(luò)安全意識(shí)和技能 [EB/OL].[2019-09-23].http://www.81.cn/gnxw/2019-09/23/content_9632076.htm.
[4] 馮一凡,朱文龍,楊雙雙.基于Docker的分布式網(wǎng)絡(luò)安全攻防平臺(tái)設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)產(chǎn)品與流通,2020(3):47.
[5] 雷驚鵬,朱小娟.Docker技術(shù)在惡意代碼檢測(cè)環(huán)境部署中的應(yīng)用 [J].西昌學(xué)院學(xué)報(bào)(自然科學(xué)版),2020,34(3):47-49+69.
作者簡(jiǎn)介:李秋賢(1992—),女,漢族,河南焦作人,中級(jí)工程師,碩士,研究方向:密碼學(xué)、博弈論;石云升(1998—),男,漢族,貴州畢節(jié)人,本科在讀,研究方向:計(jì)算機(jī)科學(xué)與技術(shù);通訊作者:周全興(1987—),男,漢族,貴州遵義人,講師,學(xué)士學(xué)位,主要研究方向:信息安全、數(shù)據(jù)分析。