基于Kali Linux的网络安全课程教学设计

2018-12-10 09:13董小燕
软件导刊 2018年9期

董小燕

摘要 针对网络安全课程设计破坏性强、知识内容繁杂、对实验环境配置要求高等特点,设计实验教学软硬件环境:硬件平台购入服务器作为靶机系统,软件平台采用基于Web的攻防实验管理系统,在此基础上依据网络安全渗透测试方法选择教学内容。渗透测试阶段包含信息搜索、信息收集、漏洞扫描、渗透攻击;为避免预装过多开源安全软件,提出以网络安全应用为主的Kali Linux系统作为攻击方,介绍了Kali Linux提供的安全功能,阐述其在课程设计中的应用。实践结果表明该设计在教学中取得了良好效果。

关键词 网络安全课程设计;攻防管理平台;渗透测试; Kali Linux

DOIDOI:10.11907/rjdk.181467

中图分类号:G434

文献标识码:A文章编号文章编号:16727800(2018)009022205

英文标题Study Of Teaching Network Security Course Design Based on Kali Linux

--副标题

英文作者DONG Xiaoyan

英文作者单位(School of Internet of Things,Nanjing University of Posts and Telecommunications,Nanjing 210003,China)

英文摘要Abstract:Network security course design is an important course for network engineer major in practice.According to the features of great destruction,difficult configuration and high demands of experiment environment,the experimental teaching software and hardware platform is designed and the purchased server is used as the target attacked system and the webbased attack and defense experiment management system is developed.On this basis,the teaching content is selected according to the network security penetration testing method.The penetration testing phase includes information search,information collection and vulnerability scanning,penetration attack; in order to avoid security experiments requiring teachers or students to preinstall a lot of open source security softwares, Kali Linux system is selected as the attacker,the security features and functions of Kali are explained,the practice shows that the course design has achieved good results.

英文關键词Key Words:network security course design; experimental management platform; penetration testing; Kali Linux

0引言

互联网应用日益发展,各种网络安全问题层出不穷,作为网络工程专业学生,除了要掌握网络安全相关理论基础知识,熟悉常见的网络攻击和防御原理与操作外,还需设计编写一些安全软件,从而为以后从事网络安全管理及安全产品研发打下坚实的基础。为此,物联网学院网络工程专业开设两门必修课程:网络安全理论课和网络安全课程设计,其中网络安全课程以讲述相关安全理论为主,辅以少量的实验课加深对课堂理论知识的理解,网络安全课程设计则是集中实践类必修课。实践教学作为高校教学体系的一个重要环节,与理论教学相比,具有直观性、实践性、启发性和探索性特点。开设网络安全课程设计目的是锻炼学生对网络攻击防御的能力,能设计并编写网络攻击程序,提高分析和解决实际问题的能力。该实践课是在学生学完“网络安全”与“计算机网络”两门核心专业理论课之后,利用学期末两周时间集中完成,是一门综合性较强的实践课。

网络安全实验教学[1-7]中的安全实验具有特殊性和破坏性,绝大多数网络安全实验是针对网络安全理论课程设置相关实验内容,因此将数据的加/解密、操作系统的安全配置和管理、防火墙的配置管理、数据库的安全配置与管理以及入侵检测等作为主要内容,对网络攻防方面的实验涉及较少,因为攻防实验对实验教学环境与平台配置要求较高,教师在实验环境配置及修复方面需要花费大量精力。另外,网络攻防的真实情况很难完全模拟,有的只是基于少量的仿真环境,实验条件相对落后。很多学校虽然开发了网络攻防模拟实验平台[8-10],但是对于选择哪些攻防内容及攻防过程涉及较少。清华大学“网络安防”实践课程重点讨论了攻防内容的选择[11],着重借鉴网络安全技能竞赛经验,设置一些网页渗透、漏洞利用等软件,同时借助物联网应用,设置一些开放硬件课题,课题涉及范围较广,主要是一些竞赛类题目,对于初涉安全领域的学生各种综合能力要求高。

Kali Linux[12]是专门用于网络安全渗透和测试的开源操作系统,该系统预装了安全渗透测试各个环节的测试工具,并附带说明文档[13],每一步操作都有详细说明,非常适合学习及研究。学生通过使用这些集成的安全软件,可以更好地测试各类攻击。很多安全研究人员都以Kali系统进行安全攻击和测试[14-15]实验,如Lulu Liang[16]作拒绝服务攻击实验时,将Kali装在虚拟机上作为攻击者,Brandon Scott[17]在教学局域网ARP攻击实验时同样选择Kali Linux作为攻击系统。但安全攻击会破坏系统,利用虚拟机技术搭建和部署网络安全实验平台是教学首选,如使用XEN[18]以及Openstack[19]等。

本文以网络安全攻击和防御为重点目标,研究网络安全课程设计教学硬件环境与软件平台建设,提出基于网络安全渗透测试的攻防实验,在此基础上阐述Kali Linux 系统在网络安全实践教学中的应用,旨在让学生更好地掌握各类网络攻击原理及运行过程,设计编写高质量的安全软件程序,提高实际操作能力,增强安全软件开发经验。

1网络安全综合性实践教学现状与问题

网络安全课程设计实践教学不同于一般课程设计教学,攻击与防范内容涉及的知识面广、内容多,同时网络安全技术知识更新快,各类网络攻击和防范技术层出不穷。如何在有限的时间内让学生掌握常见的网络攻击与防范原理,在此基础上自己动手设计并编写完成一个简单的安全攻击与防御小软件,从而让学生更好地掌握网络协议工作过程,体会网络安全底层工作原理,是网络安全实践教学需要探索和解决的问题。

安全实践课程设计普遍存在以下问题:

(1) 网络攻击和防御类型多、知识面广,网络底层编程难度大。安全问题涉及多门学科,如操作系统安全、漏洞安全、Web安全、Sql注入安全、主机安全、协议安全等,集中实践课程只有两周时间,在已有的知识架构下,学生需要选择合适的安全课题,动手编写安全程序,除了要熟悉计算机网络的基本协议原理及格式规范外,还需掌握网络编程基本知识,掌握协议实现及在网络中的通信方式。底层网络知识编程难度大,很多学生不知从何下手。

(2) 网络安全实践教学具有很强的破坏性。在局域网环境中实现ARP攻击时,虽然针对某台机器实施ARP欺骗,可使其无法上网,但在实验时多组同学同时操作,有的学生故意设置攻击交换机,导致实验室局域网多次瘫痪,交换机被迫重启;在作木马攻击时,通常需要测试木马软件,如果没按照规定的操作进行,这些攻击会损害实验室机器系统,甚至在实验室所有机器中蔓延传播,导致整个局域网运行速度慢;有的学生甚至搞恶作剧,有意对实验室其它机器进行各种攻击,导致正常实操无法进行。

(3) 在实验室局域网环境中有些实验无法利用现有的软硬件设备完成。如果没有专门针对网络安全实践教学的软硬件平台,一些关键性的实验就无法在局域网环境中完成,如分布式拒绝服务DDOS攻击,需要多台傀儡机和被攻击目标,同时需要多台机器发送大量的攻击报文,如果只是针对实验室某台PC机,攻击效果不明显。

(4) 实验过程监控不能得到有效保证。设计性实验是以组为单位实施的,一部分学生出现“搭便车”现象,即小组的工作任务仅由少数同学完成,其他同学不积极参与或者根本没有贡献。教师虽然随堂观测实践情况,但整个实验过程不能得到有效监控。

2教学环境

由于很多安全攻击程序涉及多台主机并需要构建特定的网络拓扑结构,而实验室的硬件资源有限,使得实验环境的构建成为网络安全实践教学要考虑的重要问题。教学实验网络拓扑环境如图1所示。

2.1硬件设备

硬件设备包括两台攻防服务器、学生实验操作的PC客户机与教师监控机、路由和交换通信设备3个部分。其中学生PC机70台,能满足两个班的学生上课实践,路由和交换设备包含无线AP接入点。

2.2软件配置

攻防服务器上安装攻防实验管理系统及靶机仿真系统。靶机系统由高性能服务器通过虚拟化技术虚拟出多个预置漏洞或存在安全問题的系统。学生在做安全攻防测试时,需要被攻击的靶机系统,比如拒绝服务攻击、缓冲区溢出攻击、口令攻击等。为此,实验室购买了某厂商提供的安全攻防服务器,在该服务器上安装有多台虚拟机作为被攻击的靶机仿真系统,各台虚拟主机具备特定的脆弱和安全漏洞特性。学生在测试网络攻击时,对靶机系统发起安全渗透测试,一方面可有效避免以往没有特定靶机时将PC客户端作为攻击目标,造成实验室网络和电脑经常断网和无法使用现象;另一方面对部分典型的网络攻击,如DDOS攻击以及缓冲区溢出漏洞攻击,如著名的MS08-067,必须向学生提供靶机环境,否则实验没法完成。

3基于Kali Linux的安全渗透测试教学

3.1Kali Linux 操作系统

Kali Linux 是开源操作系统。进行网络安全渗透测试需要各类测试工具,安装这些工具是很繁琐且浩大的工程,于是Offensive Security 开发团队通过重写BackTrack实现功能强大的Kali Linux,该系统已经集成了很多现有的安全和测试工具,如图2所示,这些工具程序大体分为以下几类:

(1)信息收集:收集目标的DNS、网络扫描、路由、SNMP、SMB等各类信息。

(2)漏洞分析与漏洞利用工具集:扫描目标系统上的漏洞。

(3)Web程序:与Web应用有关的工具,包括CMS(内容管理系统)扫描器、数据库漏洞利用程序、Web应用模糊测试、Web爬虫等。

(4)密码攻击:包含常见的在线攻击与离线秘密破解。

(5)无线攻击:可攻击蓝牙、WiFi及其它无线设备工具。

(6)嗅探/欺骗:监听网络和Web流量。

(7)权限维持、逆向工程、压力测试、硬件Hacking、数字取证及报告工具集。

(8)系统服务:在渗透测试时可能用到的常见服务类软件,如Apache服务、MySQL服务等。

为降低渗透测试人员筛选工具难度,Kali Linux 单独划分了一类软件,即10大首选安全工具,包含安全人员经常使用的网络嗅探软件wireshark、端口扫描nmap、Arp攻击etterca等,Kali Linux还能与其它渗透测试软件和系统兼容,因此可以直接利用Kali Linux系统提供的这些安全攻击测试软件,在课程设计过程中验证各类攻击和防范原理,不需像以往做实验那样对每一个安全课题都动手安装开源软件,避免了因环境问题导致软件不可运行的各种情况。

3.2基于渗透测试选择教学内容

Kali Linux提供的各类安全攻击软件有几百种,在较短时间内要熟悉这些内容不切实际,根据学生实际所学课程选择合适的教学内容是课程设计首要考虑的问题。所谓渗透测试就是通过模拟恶意黑客的攻击,评估计算机网络系统安全的一种评估方法。渗透测试过程一般需要对目标系统进行主动探测分析,以发现潜在的系统漏洞,包括不恰当的系统配置,已知或未知的软硬件漏洞,以及在安全计划与响应过程中的操作性弱点。

渗透测试分为发现和探测、信息收集、查找漏洞和分析、攻击、报告生成等阶段。可根据渗透测试的几个阶段,选择合适的攻防课题内容,如表1所示。

(1)发现和探测阶段:端口扫描nmap,信息收集阶段,网络嗅探Wireshark。

(2)查找漏洞和分析阶段:metasploit,Web漏洞检测WVS。

(3)渗透攻击阶段:Arp攻击,拒绝服务DOS攻击,口令攻击,缓冲区溢出攻击,木马攻击。

目前使用较多的渗透测试工具是Metasploit[20]。

Metasploit是一种开源漏洞检测工具,也是目前少数几个能执行渗透测试且能多步骤执行的工具,自身附带数百个安全攻击测试软件,可快速对系统和网站实行安全攻击。Metasploit的控制接口能发现漏洞、攻击漏洞、提交漏洞检测报告。Metasploit不仅仅是一个工具软件,安全人员可轻松选择渗透攻击模块、攻击载荷以及编码完成一次轻松的渗透攻击,还可在metesploit基础上进一步编写更新的攻击模块并进行测试。

Metasploit的工作原理是:攻击着利用收集到的信息,分析了解到目标系统上的漏洞,从攻击机加载并向目标系统发送包含payload(攻击载荷)某个漏洞的攻击代码,该攻击代码针对发现的特定漏洞。当攻击代码运行目标系统被攻陷后,攻击载荷开始运行,当这两个都成功之后就获得目标系统的控制权限,可在目标系统上进行攻击操作,比如添加账号密码、查看特定信息、安装木马等。

利用Metasploit 攻击著名漏洞Ms08-067如图3所示。通过扫描软件nmap,发现在靶机系统10.20.148229上存在MS08-067漏洞。

4攻防实验管理平台

该平台是教师和学生安全实践课程设计操作的统一入口,从教师角度,安全攻防实验平台应提供以下功能:

①实验监控。教师可从4个方面监控:学生实验情况,是否出勤以及登陆系统上下课时间等;监控当前虚拟机靶机系统运行情况;服务器系统运行情况;设备状态等信息;

②实验数据归档及实验报告上传与批改。系统能记录实验过程中产生的数据及实验操作结果,教师能查看和监控实验操作过程,防止部分学生拷贝和抄袭他人实验结果,同时系统可上传实验报告,为实践教学提供良好的支撑环境;

③发布实验和管理实验。设置攻防实验安排,管理后台靶机系统,如开启、还原等操作。

从学生角度,攻防管理平台功能包括3部分,如图5所示。

①学习区 :分为理论学习部分和攻防视频操作演示部分。其中理论学习部分主要向学生提供该实验相关的理论知识,包括实验原理、实验步骤及实验具体操作文档;攻防视频操作演示部分以视频方式展示实验过程,方便学生更加直观地模拟操作。学生根据学习进度和掌握情况,按照视频操作步骤完成实验;

②实验区:每次一个班级近40人同时做实验,将学生分为8组,每组分配一个靶机IP地址。学生做实验时,需要查看靶机系统地址,选择攻防服务器;

③考试区:针对每个实验,回答其中几个典型问题,掌握实验情况,同时学生可上传实验结果。

5结语

网络安全课程设计是提高学生计算机网络安全知識及开发能力的重要途径。本文部署设计了网络安全课程设计教学环境,包括靶机系统及基于Web的攻防实验管理系统。以学生兴趣为导向,依据当前网络安全渗透测试的各阶段,基于Kali Linux选择教学模式和内容。经过两届学生的实际教学,取得了良好效果,今后还将不断完善教学平台与教学内容。

参考文献参考文献:

[1] 周敏.计算机网络安全实验教学改革[J].实验技术与管理,2013,6(30):113117.

[2]戴佳筑,雷咏梅.研讨式教学法在网络安全实践课程中的应用[J].计算机教育,2013,1(2):9395.

[3]张卫东,李晖,尹钰.网络安全实验教学方法的研究[J].实验室研究与探索,2007,12(26):286289.

[4]汪永生,李岩."互联网+"时代高校网络安全实验教学探究[J].浙江工商职业技术学院学报,2016,15(1):8286.

[5]王军号.网络信息安全实验教学研究[J].实验科学与技术,2012,8(10):138140.

[6]陈世尧.高校信息安全实验室的建设探讨[J].无线互联科技,2016(19):115116.

[7]李海鹏.网络安全课程理论与实践教学中的几点探讨[J].电脑知识与技术,2012(8):67396742.

[8]孔轶艳.网络攻防模拟实验平台的设计与实现[J].通信技术,2012,11(45):3739.

[9]康辰.朱志祥.基于云计算技术的网络攻防实验平台[J].西安邮电大学学报,2013,18(3):8791.

[10]黄晓芳.网络攻防实验平台开发与实现[J].实验技术与管理,2017,5(34):7376.

[11]乌晓钧,郑宁汉,陈永强,等.面向创新人才培养的网络安全软硬件实验[J].计算机教育,2018(3):4145.

[12]刘倩.基于Kali Linux的网络安全技术探讨与研究[D].长春:吉林大学,2016.

[13]仇宇琛.Web安全评估及渗透测试研究[D].北京:北方交通大学,2017.

[14]雷惊鹏,沙有闯.利用Kali Linux开展渗透测试[J].长春大学学报,2015,6(25):4952.

[15]徐光.基于Kali Linux的Web渗透测试研究[J].信息安全与技术,2015(3):5658.

[16]LIANG L L.A denial of service attack method for an IOT system[C].ITME: Fuzhou, 2016:360364.

[17]SCOTT B,XU J S,ZHANG J H.An interactive visualization tool for teaching ARP spoofing attack[C].IEEE Frontiers in Education Conference(FIE): Indianapolis,2017:15.

[18]吳迪,薛政,潘荣.基于XEN云平台的网络安全实验教学[J].实验室研究与探索,2013,7(32):6266.

[19]BHOSALE Y S,JENIA L.VLab: a mobile virtual lab for network security studies[J].International Journal of computer applications, 2014,20(93):3538.

[20]席亚娟.基于metasploit的渗透测试与攻击方法的研究[D].北京:华北电力大学,2017.

责任编辑(责任编辑:杜能钢)