湯榮秀
(天津工業(yè)職業(yè)學(xué)院,天津 300400)
漏洞靶場是目前每個安全人員以及想學(xué)習(xí)信息安全的人必備的知識,但目前商業(yè)化產(chǎn)品居多,還有一些類似dvwa、sqli-labs這類的開源項目,但是其漏洞環(huán)境比較固定,使用完一次后就失去其作用。且搭建的成本過高,每次啟動的流程會比較繁瑣,甚至很多場景是不滿足的,之前關(guān)于漏洞環(huán)境鏡像使用多的是vulhub,但是作為企業(yè)、高校以及相關(guān)的培訓(xùn),單純的漏洞環(huán)境不一定能滿足使用的需求,所以我們基于當下的一些靶場項目做了小小的改進來符合我們的一些需求,比如增加flag的形式,來滿足一些考核與驗證的需求,可以對我們內(nèi)部人員能力進行考核,于是Vulfocus就誕生了[1]。
Cardinal是由Vidar-Team開發(fā)的AWD比賽平臺,使用Go編寫。本程序可以作為CTF線下比賽平臺,亦可用于團隊內(nèi)部AWD模擬練習(xí)。
Cardinal這個名字來源于作品《刀劍神域》中的Cardinal System游戲系統(tǒng),小說中描述為可在無需任何人工外界輸入就可以獨立完成對玩家的監(jiān)控、維護游戲數(shù)據(jù)平衡、自動產(chǎn)生新的游戲任務(wù)、進行自我修復(fù)與完善[2]。
這也是我們對于AWD比賽平臺的愿景,我們希望能有一個監(jiān)測管理選手靶機動態(tài),準確計算得分,自動更新靶機狀態(tài),并在發(fā)生異常時能及時反饋甚至自我調(diào)節(jié)修復(fù)的平臺。因此,我將這個項目命名為Cardinal。
Docker是使用Google公司推出的Go語言進行開發(fā)實現(xiàn),基于Linux內(nèi)核的CGroup、Namespace以及AUFS技術(shù),對進程進行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進程獨立于宿主和其他隔離的進程,因此也被稱為容器[3]。
Docker的三個概念如下。
(1)鏡像:鏡像是創(chuàng)建Docker容器的基礎(chǔ),Docker鏡像類似于虛擬機鏡像,可以將它理解為一個面向Docker引擎的只讀模塊,包含文件系統(tǒng)。
(2)容器:容器是由鏡像創(chuàng)建出來,一個鏡像可以創(chuàng)建出多個相同的容器實例,每個容器為獨立的應(yīng)用進程。容器可以進行編輯,重新打包為鏡像(創(chuàng)建鏡像的一種方式,但一般不這么做)。
(3)倉庫:存在鏡像的倉庫,有遠程倉庫、有本地倉庫,如同git。
官網(wǎng)的鏡像倉庫:https://hub.docker.com
阿里云鏡像倉庫:https://cr.console.aliyun.com/cn-hangzhou/images
與傳統(tǒng)虛擬機和Docker容器技術(shù)比較,虛擬機不僅包括應(yīng)用,也包括操作系統(tǒng)。操作系統(tǒng)一般要占用幾個GB的磁盤空間,而Docker容器共用宿主的內(nèi)核,只需按照應(yīng)用和必要的類庫,非常輕量。
如果在測試服務(wù)器上使用Docker,會極大節(jié)省應(yīng)景資源,簡單企業(yè)成本。Docker支持鏡像構(gòu)建和鏡像部署,有類似Github的Docker hub的鏡像開源倉庫(hub.docker.com),這上面有十萬多種免費鏡像資源,目標國內(nèi)也有很大Docker鏡像網(wǎng)站。使用Docker容器,只需獲取鏡像,一鍵安裝即可。同時,也可以將常用的系統(tǒng)軟件集成構(gòu)建成鏡像后部署到其他容器。支持測試環(huán)境和線上環(huán)境使用Docker容器技術(shù)進行軟件的構(gòu)建發(fā)布。
攻防兼?zhèn)銩WD模式是一種綜合考核參賽團隊攻擊、防御技術(shù)能力、即時策略的比賽模式。在攻防模式中,參賽隊伍分別防守同樣配置的虛擬靶機,并在有限的博弈時間內(nèi),找到其他戰(zhàn)隊的薄弱環(huán)節(jié)進行攻擊,同時要對自己的靶機環(huán)境進行加固防守[4]。
比賽采用零和積分方式,即每個戰(zhàn)隊都擁有相同的起始分數(shù),挖掘網(wǎng)絡(luò)服務(wù)漏洞并攻擊對手服務(wù)取得flag獲得積分,被攻擊方扣減相應(yīng)分數(shù);修補自身服務(wù)漏洞進行防御來避免丟分,最終以得分高低直接分出勝負。因為AWD競賽方式,戰(zhàn)隊得分情況對技術(shù)水平高低的反饋非常直接,對抗性強,而且選手會在競賽過程中衍生出各種各樣的競技技巧及戰(zhàn)略戰(zhàn)術(shù),經(jīng)驗豐富和技術(shù)嫻熟的選手可以以壓倒性的技術(shù)收割分數(shù),在CTF選手間擁有較高的口碑。
Vulhub是一個基于Docker和Docker-compose的漏洞環(huán)境集合,進入對應(yīng)目錄并執(zhí)行一條語句即可啟動一個全新的漏洞環(huán)境,讓漏洞復(fù)現(xiàn)變得更加簡單,讓安全研究者更加專注于漏洞原理本身。官網(wǎng):https://vulhub.org。
Vulfocus的特性如下。
①啟動:一鍵漏洞環(huán)境啟動,方便簡單;
②自帶Flag功能:每次啟動flag都會自動更新,明確漏洞是否利用成功;
③帶有計分功能也可適用于相關(guān)安全人員能力的考核;
④兼容Vulhub、Vulapps 中所有漏洞鏡像。
官方也有Docker鏡像版本的安裝,本次安裝的方式是使用官方提供的Docker鏡像進行安裝,本次使用的服務(wù)器是centos 7。
(1)掛載鏡像
mkdir /mnt/cdrom:創(chuàng)建掛載點;
mount /dev/cdrom /mnt/cdrom:鏡像掛載。
注意:這個必須已連接,否則鏡像掛載失敗。
(2)配置yum源
進入yum配置文件目錄 cd /etc/yum.repos.d/;
修改配置文件vim CentOS-Media.repo。
Docker的安裝步驟包括:
(1)查看linux的版本;
(2)安裝所需要的安裝包;
(3)設(shè)置yum源;
(4)查看倉庫中的docker版本;
(5)驗證docker是否安裝成功,如圖1所示。
(1)拉取Vulfocus最新的鏡像;
docker pull vulfocus/vulfocus:latest
注意:這里鏡像拉取不上重新啟動一下docker環(huán)境;
(2)運行vulfocus;
(3)在宿主機瀏覽器測試:輸入docker服務(wù)器地址(centos7);
在centos測試:URL輸入回環(huán)地址或服務(wù)器地址都可以;容器已經(jīng)通過8081端口映射運行,訪問IP+端口。
平臺初始的管理員賬戶和密碼為admin/admin,管理員可以對平臺漏洞環(huán)境、用戶等進行操作。所有的漏洞都是Docker鏡像,在Docker hub上有一個官方的開源的漏洞鏡像庫。https://hub.docker.com/u/vulshare。在管理員端,鏡像管理界面可以添加剛剛下載的鏡像,選中鏡像以后可以一鍵添加,此時容器已經(jīng)被部署。
管理同時還可以進行普通用戶的信息管理、靶場的鏡像管理、操作日志管理等。靶場的使用:首頁注冊以后進入,可以看到已經(jīng)添加的漏洞環(huán)境,這里以phpimapcve_2018_19518為例。點擊“啟動”稍等片刻以后環(huán)境啟動,靶場自動分配地址,訪問提供地址后即可看到靶場環(huán)境,如圖1所示。
圖1 靶場界面
通過對漏洞的學(xué)習(xí),利用此漏洞拿到flag進行提交,完成漏洞學(xué)習(xí)。
Cardinal由Vidar-Team團隊開發(fā),接受并允許各大高校、安全團隊、技術(shù)愛好者使用Cardinal作為比賽訓(xùn)練平臺或舉辦內(nèi)部訓(xùn)練賽[5]。
4.5.1 GO 語言環(huán)境部署
4.5.2 初次搭建Cardinal
(1)下載網(wǎng)址:https://github.com/vidar-team/Cardinal/releases
適用于您目標機器的架構(gòu)程序,運行即可。
(2)解壓程序包:$tar -zxvf Cardinal_VERSION_OS_ARCH.tar.gz
(3)賦予執(zhí)行權(quán)限:$chmod +x ./Cardinal
(4)運行:$./Cardinal
初次運行需要配置/conf/Cardinal.toml 配置文件。
(5)此時再次啟動:$./Cardinal
訪問目標服務(wù)器8082端口,如圖2所示。
圖2 平臺界面啟動
隨著國家網(wǎng)絡(luò)安全教育的大力發(fā)展,相信一定會有越來越多的人投入學(xué)習(xí)網(wǎng)絡(luò)安全的隊伍中。在目前的發(fā)展趨勢下,單一的課本技能已經(jīng)不能解決日益復(fù)雜的網(wǎng)絡(luò)安全問題,需要一個可以貼近實戰(zhàn)的平臺對學(xué)生所學(xué)的知識進行整理和實踐。網(wǎng)絡(luò)安全學(xué)習(xí)平臺的設(shè)計便是以此為初衷,它的設(shè)計在于提高學(xué)生對于網(wǎng)絡(luò)安全的學(xué)習(xí)熱情,通過各類型靶場訓(xùn)練、CTF比賽以便更好地選拔網(wǎng)絡(luò)安全人才,對網(wǎng)絡(luò)安全人才的培養(yǎng)非常有意義。