恶意软件捕获系统在实验教学中的应用

时间:2022-06-24 07:37:20

恶意软件捕获系统在实验教学中的应用

摘要:网络安全是高校计算机网络和信息安全相关专业的重要课程之一,为了满足课程实验教学需要,使学生更好的理解网络安全中恶意软件的工作机理,提高恶意软件防范能力,设计了一个恶意软件捕获与分析教学实验系统,系统基于VMware workstation虚拟平台和低交互蜜罐工具,实现了实验环境中恶意软件的自动捕获和分析,实际应用中有效提高了学生实践能力及对知识的理解。

关键词:恶意软件;虚拟机;低交互蜜罐;Nepenthes

中图分类号:TP393.08文献标识码:A文章编号:1009-3044(2011)10-2477-03

The System of Capturing Malware Uses in Experimental Teaching

ZHAO Bao-peng, ZHANG Hao-jun

(College of information Science and Engineering, Henan University of Technology, Zhengzhou 450001, China)

Abstract: Network security is one of the important courses related computer network and information security in the university. In order to meet the needs of experimental teaching, make students understand the work of malware in the network security better, increase the ability of malware prevention, designed a teaching system to capture and analysis malware which is based on VMware workstation virtual platform and tools for low-interaction honeypots. The system realizes the automatically capture and analysis of malware during the experimental environment. In practice, effectively improves the practical skills and understanding of knowledge of students.

Key words: malware; virtual machine; low-interaction honeypot; nepenthes

实验是教学中重要环节,尤其是针对计算机科学与技术学科,对学生实践能力要求更高。通过理论和实践相结合,有利于提高学生实践能力、动手能力和创新能力。在高校计算机网络和信息安全专业或教学中,帮助学生熟悉网络协议和网络堆栈、掌握网络安全管理和配置的基本方法、了解黑客常用的攻击方式和工具、学习使用基本攻防工具是非常重要的。目前,仍有很多高校的计算机网络安全教学和实验环境滞后于课程建设的要求,主要包括下面两方面原因:一是网络安全教学需要复杂的实验环境和测试设备,特别是课堂教学所需要的硬件环境往往不能满足网络安全攻防演示和实验需求。二是网络安全实验一般具有一定的破坏性,包括对主机、网络设备、操作系统,甚至校园网都会产生一定的危害和影响,因此构建实验环境存在一定风险[1]。

近年来,虽然国内一些实验设备制造商、软件公司和高等院校提出了虚拟实验系统,并开发了一些虚拟平台和产品,但大部分是应用动画技术制作,系统往往只具备简单交互演示功能,缺乏真实性。因此,信息与网络安全教学中迫切需要有交互性和实操性都非常良好的实验系统平台。

该文针对网络安全课程中恶意代码分析,提出了一个实验解决方案,设计了一个用于实验的恶意软件捕获和分析系统,使学生能够在一台计算机上捕获和分析恶意软件,更好地理解恶意软件工作机理。

1 恶意软件

用于恶意目的的软件程序通常被称为恶意软件(malware,源于malicious software)[2]。恶意软件可以利用已知和未知的漏洞在网络中从一台机器自动传播到另一台机器的恶意软件,极具破坏性。这种恶意软件不仅对互联网上的个人计算机具有威胁,而且还可以以僵尸网络的形式对各种服务器和站点进行攻击。例如,通过分布式拒绝服务攻击(DDoS)可能减慢几乎所有的服务器。

在网络环境中收集恶意软件并分析它并不容易。在实践中,通常通过细致地检验被感染主机收集和分析恶意软件,实际的恶意软件需要从被感染的机器中手工分析。随着新的恶意软件的生产效率越来越高,这只能应对一小部分系统威胁;此外,在今天,高级蠕虫和病毒传播如此之快,手动控制人工干预往往为时已晚。因此,实际中需要自动化的恶意软件捕获的分析系统。

2 恶意软件捕获和分析系统

为了能够构建安全的恶意软件捕获与分析实验系统,即实验系统的行为不应破坏或影响基础网络环境,本系统采用虚拟机VMware Workstation虚拟实验平台,使用低交互蜜罐Nepenthes作为自动捕获恶意软件的工具。

2.1 虚拟机

虚拟机是一个由软件提供的、具有模拟真实的特定硬件环境的计算机。虚拟机提供的“计算机”和真正的计算机一样,也包括CPU、内存、硬盘、光驱、软驱、显卡、声卡、SCSI卡、USB接口、PCI接口和BIOS等[3]。在虚拟机中可以和真正的计算机一样安装操作系统、应用程序和软件,也可以对外提供服务。

目前流行的虚拟机软件有VMware公司VMware系列产品和Microsoft的Virtual PC系列,它们都能在Windows系统上虚拟出多个计算机,用于安装Linux、OS/2、FreeBSD等其他操作系统。相比而言,VMware Workstation应用更广泛,通过实验对比,我们发现其效率较高。

VMware Workstation虚拟机的主要特点包括:

1) 支持多种操作系统。可以在一个虚拟机中运行多种客户操作系统,包括Linux、Solaris、Windows和FreeBSD等。

2) 支持多种网络模式。VMware提供了处理网络的3种方式:Use Bridge networking(使用桥接网络)使用VMnet0虚拟交换机,此时虚拟机相当于网络上的一立计算机,与主机一样,拥有一个独立的IP地址;Used network address translation(NAT)(使用NAT网络)使用VMnet8虚拟交换机,此时虚拟机可以通过主机单向访问网络上的其他工作站(包括Internet网络),其他工作站不能访问虚拟机;Use Host―only networking(使用主机网络)使用VMnet1虚拟交换机,此时虚拟机只能与虚拟机、主机互连,与网络上的其他工作站不能相互访问[3]。

3) VMware为每个客户操作系统创建一个映像。这些映像是独立的文件,移植性很好,可以拷贝到其他电脑上,也可以通过创建快照来保存客户操作系统的状态,从而使你可以恢复到一个虚拟机的保存的状态。

4) 使用简单。VMware有图形接口(Windows和Linux),安装、配置、运行都非常简单。

2.2 Nepenthes

Nepenthes[1,4-5]是一种流行的低交互蜜罐,用于自动收集恶意软件。Nepenthes 工具的基本设计思想是通过模拟存有漏洞的网络服务,构建低交互式的蜜罐系统,使其能够与网络上正在传播的恶意代码进行一定程度上的交互,并从交互过程中分析获取恶意代码样本的感染源位置信息,从而对这些恶意代码样本进行自动化地捕获和收集。Nepenthes基于一个非常灵活的、模块化的设计,其核心守护进程处理网络接口、协调其他模块的动作,具体工作由几个在Nepenthes的核心注册的模块执行,在本系统中采用Nepenthes模块:

漏洞模块:模拟网络服务的有漏洞部分,对于效率来讲这是关键,它并不是模拟整个系统或服务,仅是模拟必要的部分。这些模块欺骗入站的漏洞利用尝试,使之相信它攻击的是一个真实的、有漏洞的服务。

代码分析模块:分析漏洞模块接收到的有效载荷。这些模块分析接收到的外壳代码,一种汇编语言程序,并从中提取有关传播恶意软件的信息。

提取模块:使用代码分析模块提取的信息,从远程位置下载恶意软件。这些链接并不一定要求是HTTP或FTP的URL,它们可以是TFTP或其他协议,也可能仅仅是由这些模块产生的内部描述。

提交模块:处理下载的恶意软件,例如,保存二进制到硬盘上,存储到数据库中,或者把它发送给反病毒软件厂商。

日志模块:记录模拟过程的有关信息,并帮助从收集到的数据中得到模式的概貌。

3 系统设计与实现

3.1 系统总体框架

根据上面的分析,该系统的总体逻辑结构如图1所示。各模块的功能和实现如下:

1) 主机模块:系统部署在一台主机上,主机系统采用Windows XP,并安装最新的补丁和杀毒软件,更新最新的病毒库,这样可以降低恶意软件和病毒对主机系统被的感染。

2) 虚拟机模块:在主机系统上安装虚拟机VMware Workstation,本系统采用6.5的版本。

3) 客户机模块:在虚拟机上安装两个客户机操作系统Guest1(Linux操作系统)和Guest2(Windows XP操作系统),Windows XP操作系统用来安装恶意软件,Linux操作系统用来安装Nepenthes,两个系统的连网方式都选择Used Host-Only networking,这样设计可以防止实验中恶意软件感染局域网内的其他主机。

4) 捕获模块:该模块使用低交互蜜罐Nepenthes, Nepenthes安装在Linux系统上。捕获模块实现对恶意软件的侦听和捕获。

3.2 Nepenthes安装与配置

Nepenthes及其支撑环境部署与设置过程如下:

1) 确认在Linux系统中已经安装了Nepenthes所有依赖的软件包。Nepenthes需要GNU adns、libcurl、libmagic和PCRE(Perl Compatible Regular Expressions,Perl兼容正则表达式)库。可以从.uk/~ian/adns/上和curl.haxx.se/上下载最新版本的GNU adns和libcurl;libmagic是ftp:// /pub/file/的一部分,PCRE库可以从/上获得。如果运行的是Fedora Core,可以使用下面命令安装所有依赖的软件包:

$ sudo yum install pcre-devel pcre adns adns-devel curl curl-devel file.

此外,确认使用的GNU编译器套件版本是3.x或4.1。g++的4.0.2版本可以与Nepenthes一起工作,但通常是不稳定的。

2) 从nepenthes.carnivore.it/上下载Nepenthes最新发行版本,包含在bzip2或gzip压缩文件里。

3) 解压缩Nepenthes的源码包,过程如下:

tar xjvf nepenthes-.tar.bz2.

或者

tar xzvf nepenthes-.tar.gz.

4) 通过输入源目录和执行./configure配置该软件包。如果前面没有安装所有依赖的软件包,该配置脚本将失败。请执行./configure --help命令获得帮助。例如,可以使用--enable-postgre启用对PostgreSQL的支持,或者通过--enable-prelude启用对Prelude的支持。还有更多的配置选项,可以根据你的需要定制Nepenthes,因此要多看看配置帮助。

5) 使用命令make编译源代码,一旦编译过程完成(这可能需要一些时间),使用sudo make install安装Nepenthes。另外,如果你没有安装sudo,切换为root用户,然后执行命令make install。

在完成上述步骤之后,Nepenthes应该被安装在/opt/nepenthes目录下,现在可以配置并使用它了。

所有的配置文件位于/opt/nepenthes/etc/nepenthes下,该目录下有很多文件,所有文件都以.conf结尾。主配置文件为nepenthes.conf,所有其他的配置文件的命名,以与它们相关的模块类型开始,Nepenthes的标准安装将可以满足你的需要,所以,本实验保持默认配置即可,当然你也可以根据自己的需要进行配置,由于篇幅原因这里就不在详述了。

接下来打开一个终端,输入以下命令:

cd/opt/nepenthes/bin

./nepenthes

现在Nepenthes已经启动了,可以用它来收集恶意软件了。

4 测试

为测试本实验系统,作者在河南工业大学信息安全研究室进行了实验测试。

测试环境:

单个主机(IP地址为172.18.67.17)上安装Vmware Workstation 6.5,主机的VMnet1使用的网段地址是192.168.40.0,在虚拟机上安装Windows XP和Fedora core 6两个系统,如图2所示。连网方式都设为Used Host-Only networking,硬盘空间默认都为8G,IP地址分别设为192.168.40.5和192.168.40.6,为了便于收集恶意软件,Fedora不安装防火墙。Guest1上安装Nepenthes ,Guest2上安装Korgo、DoomJuice等10种恶意软件。

测试步骤:

1) 在Guest1上配置并运行Nepenthes,配置文件位于/opt/nepenthes/etc/nepenthes下,配置日志目录为opt/nepenthes/var/log,恶意程序提交目录为/opt/nepenthes/var/binaries,并编辑submit-norman.conf,在文件中输入你的e-mail地址,接收有关你收集的恶意软件的分析报告。

2) 在Guest2上依次运行10种恶意软件(不同时运行,防止互相干扰)。

3) 运行了10种恶意软件之后,查看/opt/nepenthes/var/binaries目录中下载到的文件和收到的分析报告。

4) 利用快照恢复Guest2到干净状态,并删除/opt/nepenthes/var/binaries目录的内容,进行下次试验。

实验效果:

在实验过程中,要求学生依次运行恶意代码程序,并通过Guest1查看捕获结果,实验表明,系统能够稳定运行,准确捕获恶意代码。

5 结束语

通过系统测试,该系统可以很好的用于信息安全课程的教学实验,完成恶意软件传播过程和捕获过程的演示,更高效地利用教学资源,增加课堂教学的生动性、实践性和灵活性,帮助学生的更好的理解恶意软件传播的原理和Nepenthes的捕获原理和使用方法,以及虚拟机的安装及配置。同时,本系统还可以进行扩展,应用到更大范围的网络环境中,用于恶意软件的捕获,发现更多恶意攻击,以此来对网络的安全状态进行评估,甚至通过对捕获的恶意软件的分析,我们可以发现僵尸网络,并对其进行追踪,最终发现指挥控制服务器和被感染的主机。

参考文献:

[1] 翟继强,陈宜冬.虚拟网络安全实验平台[J].实验室研究与探索,2009(6):79-82.

[2] Niels Provos,Thorsten Holz.Virtual Honeypots: From Botnet Tracking to Intrusion Detection[M].Addison Wesley Professional,2007.

[3] 虚拟机之家,王春海,刘晓辉,白凤涛.VMware虚拟机实用宝典[M].北京:中国铁道出版社,2007.

[4] Nepenthes[EB/OL].nepenthes.carnivore.it/.

[5] 诸葛建伟,韩心慧,周勇林,等.HoneyBow:一个基于高交互式蜜罐技术的恶意代码自动捕获器[J].通信学报,2007(12):8-13.

上一篇:基于ARM7和LabVIEW的岩土工程多路数据采集系统... 下一篇:基于Jforum搭建讨论式学习平台