浅谈基于CentOS7的网络安全靶场的架设
2020-03-04吴佳骅
摘 要:近年来网络安全的地位日益加重,而网络安全的人才缺口依旧巨大。网络安全人才需要从实践中培养,靶场是不可或缺的。本文介绍了网络安全靶场的相关情况,并以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)