摘 要:近年來網絡安全的地位日益加重,而網絡安全的人才缺口依舊巨大。網絡安全人才需要從實踐中培養,靶場是不可或缺的。本文介紹了網絡安全靶場的相關情況,并以CentOS7為載體講解了架設網絡安全靶場的一種方案。
關鍵詞:網絡安全;靶場
近幾年,隨著互聯網技術的高速發展,網絡已經滲透進這個世界的方方面面。企業的各項業務中、人們的日常工作生活中隨處可見各種形形色色的網絡服務;同時,網絡攻擊的發生頻率也呈幾何級數地迅猛提升。因此,網絡安全變得尤其重要,而在網絡安全領域的人才缺口仍舊十分巨大。
我國為了遏制社會上網絡安全方面的風險,在法律上對網絡攻擊行為做了界定和禁止,并且將懲罰條款寫入了刑法。
于是矛盾就出現了,一方面是網絡安全技術的提升需要大量的攻擊實戰訓練,另一方面是海量的公網資源受到法律保護即便存在安全漏洞也不能拿來隨意做攻擊訓練。因此,架設專門的網絡安全靶場來進行網絡安全攻擊訓練幾乎成為了唯一途徑。
一、網絡安全靶場
專門的網絡安全靶場可以按照使用成本可以分為付費靶場和免費靶場。
付費靶場通常有兩種形式,一種定制的私有云靶場,通常是軟硬件一體的本地解決方案,購買和使用成本高昂;另一種是利用云計算技術在公有云或混合云上托管的在線靶場,屬于按需付費的訂閱模式,相對前者來說成本較低,但由于處于公網,使用的流暢性會受制于網絡帶寬等各類靶場以外的因素。
免費靶場也有兩種形式,一種是利用公有云或混合云托管的在線靶場的免費資源,通常是收費靶場的入門級版本,故資源較少、速度較慢、靶場難度也不容易按需自定義,使用體驗并不算很好;另一種則是自己在本地服務器上架設的本地靶場,通過在本地服務器上部署開源的靶場環境和帶有漏洞的網站資源,使本地服務器成為網絡安全攻擊訓練的靶場,由于是本地部署,基本不用考慮在線靶場的網絡延遲等問題,而靶場難度也可以通過部署不同難度的開源靶場環境來完全的自定義,對于想通過攻擊訓練提升網絡安全技術水平且條件不允許使用付費靶場的訓練者是個相當合適的選擇。
二、開源靶場環境
開源靶場環境是世界上各種黑客和反黑客組織的程序員精心構造的網站程序,其中包含了各種漏洞程序用來模擬公網上的各種存在安全漏洞的網站和服務器。這些組織通常會將他們構造的這些網站程序的源碼掛在自己的網站上或者托管在開源倉庫供用戶自由下載使用。用戶將這些網站程序在自己的服務器上正確部署發布后,就得到了可供進行攻擊訓練的靶場。我們這里主要介紹兩種。
DVWA,是一個用PHP語言編寫,用mysql做數據庫后臺的web應用程序。其建立的宗旨是向安全技術人員提供一個合法的環境用于測試自己的技術能力和工具,幫助web開發人員更好地理解web應用程序的安全漏洞的規避,為在校的教師和學生提供教授和學習web應用程序安全的環境。最新版的DVWA包含14個模塊,基本包括了常見的各種web安全漏洞。
Sqli-labs,是一個用來學習sql注入的專用平臺,包含GET和POST兩種request方式。Sqli-labs共包含65個關卡,涵蓋12種注入方式,Sqli-labs的關卡難度也是逐步增加,非常適合作為學習SQL注入知識的靶場環境。
三、服務器載體的選擇
要架設自己的網絡安全靶場,首先需要搭建合適的服務器來作為載體。開源靶場環境屬于網站程序,在服務器的選擇上限制不多,Windows Server、BSD和Linux都可以作為其服務器載體。
但從載體精簡和虛擬化性能提升的角度來看,Linux是三者中最好選擇。故這里選擇用Linux中的CentOS來做載體,從官網下載ISO,燒錄制作成啟動盤就可以安裝運行了。
四、開源靶場運行環境的部署
開源靶場無論是DVWA還是Sqli-labs,實際上都是用php語言編寫的,數據庫后臺使用mysql的Web應用程序,所以需要在服務器上搭建相關的運行環境。一般可以考慮直接使用lamp類的套件包來安裝部署運行環境,也可以單獨安裝apache、mysql和php并對其進行配置。這里考慮到我們只是需要一個測試用的運行環境而并非搭建實際的商用WEB服務環境,故為了簡化操作,使用LANMP包來構筑運行環境。
LANMP包是WDLInux維護的集成安裝包,用如下命令下載:
#wget http://dl.wdlinux.cn/files/lanmp.tar.gz
下載完成后將其解壓,然后運行其中的lanmp.sh腳本,在出現的5個選項中選擇1,3,4中的任意一個都可以構建我們需要的LAMP環境,等腳本自動運行完成,運行環境就準備好了,且會自動將服務運行起來。
五、靶場的部署
運行環境完備之后,就可以來部署靶場了。
(一)DVWA的部署
從DVWA的官方下載地址下載文件并解壓,然后將解壓出的dvwa-master目錄復制到apache的documentroot中,并將目錄名改短為dvwa。
接著修改dvwa的config文件,進入dvwa/config目錄,將其中的config.inc.php.dist文件復制并改名為config.inc.php;用VIM編輯復制后的文件config.inc.php,修改以下值:
$_DVWA[ 'db_server' ]? ?= '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]? ? ?= 'root';//本地mysql數據庫的用戶名
$_DVWA[ 'db_password' ] = '123456';//本地mysql數據庫的口令
$_DVWA[ 'db_port '] = '3306';//本地mysql數據庫的端口
接著打開firefox瀏覽器,輸入本地地址http://127.0.0.1/dvwa,點擊setup dvwa生成后臺數據庫。
生成成功會出現dvwa的登錄頁,輸入賬號admin和口令password登錄進去。
DVWA的靶場就部署完畢了,可以從左側的條目中進入相關的模塊了。
(二)Sqli-labs的部署
Sqli-labs的官方下載地址是https://github.com/Audi-1/sqli-labs/archive/master.zip,從Sqli-labs的官方下載地址下載文件并解壓,然后將解壓出的master目錄復制到apache的documentroot中,并將目錄名改短為sqli。
接著修改Sqli-labs的數據庫連接配置文件,進入sqli\sql-connections,用VIM打開db-creds.inc文件,修改以下值:
$dbuser ='root';//本地mysql數據庫的用戶名
$dbpass ='123456';//本地mysql數據庫的口令
接著打開firefox瀏覽器,輸入本地地址http://127.0.0.1/sqli,點擊Setup/reset Database for labs生成后臺數據庫。
Sqli-labs的靶場就部署完畢了,可以從下方的關卡鏈接進入相關的關卡。
參考文獻:
[1]石淑華,池瑞楠. 計算機網絡安全技術(第四版)[M]. 北京:人民郵電出版社,2016
[2]王世剛,徐偉. Linux系統管理及服務器配置[M]. 長春:吉林大學出版社,2017
[3]陳云志,宣樂飛,郝阜平. Web滲透與防御[M]. 北京:電子工業出版社,2019
作者簡介:
吳佳驊(1984.02--);性別:男,籍貫:湖北武漢人,民族:土家族,學歷:本科,畢業于華中師范大學;現有職稱:講師;研究方向:網絡技術。
(武漢城市職業學院? 湖北? 武漢? 430064)