一次利用Python开源工具的恶意代码分析实践

摘 要

恶意代码的泛滥,给很多用户、企业带了很大的经济上的损失。恶意代码的制作者为了利益对恶意代码反分析技术做了很多工作,采用的技术手段也越来越复杂,防御起来也十分困难。因此,恶意代码的检测和分析也变得十分重要。

本文主要是讲述了恶意代码,对其进行分类,通过现如今的恶意代码现状确立了恶意代码的研究,对恶意代码分析技术展开一系列的阐述,恶意代码可能存在的攻击行为,静态分析恶意代码,对特征码、行为特征以及文件完整性进行分析,恶意代码在仿真分析工具运行时对系统动态链接库的调用,恶意代码在内存中可能的所有执行路径进行动态分析。使用各种开源工具对恶意代码进行分析,为了避免恶意代码的流窜,在沙箱实现抓捕行为特征,并给出可视化的分析报告,为研究分析、检测恶意代码提供强大的支持以及后续技术研究对恶意程序的分析带了借鉴。

关键词:恶意代码 开源工具 行为特征 行为分析 沙箱技术


Abstract

The proliferation of malicious code has caused great economic losses to many users and enterprises. The producers of malicious code have done a lot of work on the anti-analysis technology of malicious code for the benefit, and the technical methods adopted are becoming more and more complicated, and it is very difficult to defend. Therefore, the detection and analysis of malicious code also becomes very important.

This article mainly describes malicious code, classifies it, establishes the research of malicious code through the current status of malicious code, and launches a series of elaboration on malicious code analysis technology. , Analysis of signatures, behavioral characteristics, and file integrity, malicious code calls the system dynamic link library when the simulation analysis tool is running, and dynamic analysis of all possible execution paths of malicious code in memory. Using various open source tools to analyze malicious code, in order to avoid the flow of malicious code, implement the capture behavior characteristics in the sandbox, and give a visual analysis report, provide strong support for research analysis, detection of malicious code and subsequent technical research The analysis of malicious programs is a reference.

Key word:Malicious code Open source tools Behavioral characteristics Behavior analysis Sandbox technology


目录

第一章 绪论11.1 恶意代码定义与分类11.2 恶意代码的研究现状与发展状况11.3 课题的研究意义和目的2第二章 恶意代码的分析及沙箱技术综述32.1 恶意代码攻击行为32.2 恶意代码分析技术32.2.1静态分析技术32.2.2动态分析技术32.2.3 两者对比42.3虚拟化技术及沙箱技术5第三章 恶意代码自动化分析系统部署实践73.1 使用viper分析与管理二进制文件73.2 使用clamav对恶意代码分类73.3 使用pyew管理与分析恶意代码83.4使用pestudio分析可疑文件93.5分析网络数据包93.5.1利用captipper分析网络包93.5.2使用pcap-analyzer分析网络包103.5.3使用net-creds获取重要信息103.6 Cuckoo总体介绍113.6.1实践目的113.6.2系统功能研究113.6.3系统实践要求113.7 Cuckoo实践研究123.7.1基本准备及分析样本类型123.7.2 Cuckoo系统主要架构123.8 分析结果13第四章 使用内存分析应对入侵事故15第五章 总结与展望175.1 实践总结175.2 实践展望17参 考 文 献18致 谢19

第一章 绪论

1.1 恶意代码定义与分类

从程序用途上看,恶意代码是一个对普通电脑用户完全没有什么可用的程序,但就是这个“无用”的程序,悄无声息的将自身携带的恶意代码镶嵌到别的程序中,造成感染恶意代码的主机数据不再安全、完整,也可能通过执行别的恶意程序去入侵系统。

恶意代码类型如下表1.1包括:

表1-1 恶意代码类型

添加图片注释,不超过 140 字(可选)

1.2 恶意代码的研究现状与发展状况

互联网技术的快速发展给人类带来便利的同时,也有越来越多的人利用它牟取利益。自1999至2003年,近乎每年都遭受到庞大的经济损失。恶意代码的猖獗泛滥,用户、企业,甚至是国家安全都受到威胁。

最初的加油恶意代码特征的程序是1986左右开发出来的,一开始只是娱乐,但也消耗了系统资源,有了一定的破坏能力,一定程度上影响电脑的正常运行。随着网络时代的不断进步,恶意代码的技术也是急速发展,从20世纪七十年代上期第一个真正意义上的恶意代码“爬行者”,20世纪八十年代后期的第一个蠕虫计算机病毒,到后面出现木马、病菌、后门程序等,类型逐渐多样化,技术也越来越复杂,反恶意代码技术也随之不断进步。

现如今的黑客已经不止是为了炫耀技术,更多的是为了非法谋取利益。僵尸程序、木马以及后门等是现在最多的恶意代码表现形式。对企业、国家网络安全造成很大的威胁,故此,对于恶意代码的分析工作依旧不可忽略,仍需努力!

1.3 课题的研究意义和目的

恶意代码的诞生,可以说是必然的,人们在享受互联网的快捷方便之际,也受到了不同程度的损失,这也促进了反恶意代码技术的发展,其中,木马、蠕虫病毒以及后门等现已研究的十分深刻了。至今,接近40年的发展,如今的恶意代码功能性更强,危害也更大。

利用Python开源工具分析恶意代码行为是分析样本的功能、最终目标的过程,这个过程安全分析人员可以了解到恶意代码具有何种特征,其行为于正常程序的差异,如何检测出来的。可就是如此,恶意软件的新变种花样百出,手工静态分析已经严重滞后了,无法应对应急响应这样高效的实施要求,无法迅速、准确的进行恶意软件的控制。由此可见,利用Python开源工具对恶意代码的自动化分析是志在必行的。

至今为止,恶意代码的检测技术还不是特别完善,没有办法检测出全部恶意代码,但是可以发现基于系统应用级的恶意代码检测起来比基于系统内存的恶意代码相对来说比较简单。检测过程中可以发现,木马、蠕虫等都是通过代码特征或者行为特征进行分析,分析结果作为提取特征的关键参考。于此同时,在分析恶意代码的过程,也是安全分析人员了解攻击者想法设法编写以对抗安全工具的技巧的大好时机,能及时了解新的突破方式,提升恶意代码应急响应能力。

总而言之,利用Python开源工具分析恶意代码减少了分析人手,效率也大大提高,利用沙箱环境的健壮性进而重复分析恶意代码,分析过程也不用分析人员时刻查看,节省人力,最后的分析结果也提供了恶意代码的详细信息,为后续的恶意代码分析提供了强大的支持。

  1. 恶意代码的分析及沙箱技术综述 2.1 恶意代码攻击行为 大部分的程序是借助操作系统本身为应用程序供应的API函数来实行自己的功能。恶意代码行为就是针对操作系统资源进行操作,如不经允许就访问文件系统,对重要文件进行读写等操作,通过大量占据系统资源,造成受感染的主机拒绝服务,还有就是创建不被允许的网络连接,为接下来的攻击提供网络连接点,也有可能是非法修改主机注册表信息为下一步恶意代码行为铺路,等等一系列的非法恶意行为。 2.2 恶意代码分析技术 2.2.1静态分析技术 (1)特征码扫描技术 特征码扫描技术,通俗理解是利用已有的恶意代码特征对恶意代码进行判断,这个过程是执行早已编写好的检测逻辑,加入触发的逻辑,使用速度更快的字符串扫描模式匹配算法,另外还通过对检测操作上的流程进行更合理的分解,在特征码库中检索,从而实现特征码的扫描。 就传统的特征码扫描而言,现在很多改进的特征码扫描技术已经有所进步。拿变种和未知恶意代码来说,已知恶意代码的特征是恶意代码运行起来才能有相应的恶意行为,恶意代码它自己也是程序以及恶意的目的,借此可以裁剪特征码库,从而可以快捷检测到可能存在的恶意代码[2]。 (2)启发式扫描技术 这里所说的启发式扫描技术,就是凭借经验丰富的安全分析人员或者有安全意识的开发人员等的经验,通过已知程序的异常行为设定一些判断恶意代码的条件以及事先定义好的扫描技术,之后借助编程语言表达出来,进而实现检测未知程序是否可能为恶意程序[4]。 (3)文件完整性分析技术 从字面意思理解,文件完整性是指文件完好无损,没有出现任何变化,文件完整性分析技术是借助一些单项散列算法得出此时文件的哈希值,然后再跟别的环境中相同文件对应的哈希值比对校验,看看是否有改变,有则表示该文件可能受到恶意代码感染了。系统哈希值正常不会进行修改,所以这种检测手段的误判几率也很低[6]。 2.2.2动态分析技术 (1)代码仿真分析技术 代码仿真分析技术通过模拟一个“真实环境”,让恶意代码在其中运行,监测其恶意行为,这样就算恶意代码有破坏性的行为,对“真实环境”造成了损坏,在虚拟环境下也可以快速回复正常状态,不会对真正的主机系统环境造成影响,对恶意代码分析工作的快速开展有很好的促进作用。 现有的恶意代码仿真分析工具有很多,如VMware,通过指令集虚拟技术模拟虚拟系统的指令集,再由真实系统分配资源完成虚拟机系统发出的指令。 (2)行为监控分析技术 运行某种未知的程序,通过观察它对系统造成的影响,影响的范围,影响的对象等信息进行判断,针对主机行为而言,程序如果有对系统API函数进行非法操作、将自身程序复制到别的目录,修改注册表将其设置为自启动或者注册成服务,以及释放一个或者多个dll,并将其镶嵌到别的进程中,等等这些恶意行为,可以判定该程序是恶意程序。相应来说,网络行为分析是将未知程序下载或运行后,观察它在网络中的通信情况进行判定是否为恶意程序。一般来说,通过监控主机和网络行为,对其进行分析的技术就是行为监控分析技术[2]。 (3)可执行路径分析技术 就目前的可行执行路径分析技术而言,利用静态分析技术的文件完整性分析技术,在操作系统上运行的恶意代码所利用的内存,对该内存路径使用文件完整性的比对校验。还有就是针对内存中所有的存在的,恶意代码可能执行的路径进行分析,尽可能的找到存在的恶意代码的内存执行路径[5]。 2.2.3 两者对比 静态分析技术支持具体的细粒度分析且不受运行环境的限制,不需要运行二进制程序,只需要在程序中提取特征码,通过特征码就可以一定程序上判定该程序是否为恶意程序。还有就是对比前后文件,进行完整性对比校验也进行判定。静态分析技术可以将所有存在可能的特征码,恶意代码运行后的可能执行路径进行分析,十分尽责对每个关卡进行把关。当然,静态分析也有一些局限的问题,首先就是手动分析的工程量较大。其次,分析过程中恶意代码跟后期真正执行的恶意代码有很多不同,而且现如今代码也具有了一定的混淆、迷惑技术,对分析人员来说就更显得心有余而力不足,不能准确无误的分析代码的内部结构与功能。此外,恶意代码在执行期间有可能有不可判定因素,静态分析也不能追踪,只能凭借安全分析人员的高专业技术、经验,不适用于应急响应。同时多态、加壳,变反分析型等手段的不断发展,恶意代码的特征码提取工作难度也十分艰难。 动态分析的恶意代码样本一般是运行模拟的真实环境中,分析恶意代码运行时的动态行为特征,如修改注册表、文件系统,执行不允许的网络连接操作等,在一定程度上克服了静态分析技术的一部分局限,如不受多态、加壳的影响。动态分析相对静态分析而言,提高了恶意代码可能执行文件路径的检索速率,减少了了恶意程序特征码提取的工作量,有更加直观、方便的表达方式。 2.3虚拟化技术及沙箱技术 2.3.1虚拟化技术 虚拟机需要虚拟化技术才得以实现,虚拟机就是在正常、真实的主机系统上通过虚拟化技术模拟并运行别的操作系统,此操作系统与真实主机下的操作系统在使用上没有什么差异。 虚拟化技术也有两种类型的虚拟化,一种是基于硬件的虚拟化,另一种则是指令集的虚拟化。其中硬件虚拟化比较常见,一般就是在真实主机系统上,将硬盘系统虚拟化,进而让虚拟机有了虚拟的硬盘空间,虚拟机中的系统所进行的操作都是使用真实主机的CPU,在虚拟机中就能拥有主机系统才有CPU处理效率。这种硬件虚拟化技术借助VMM(Virtual Machine Monitor)来将主机系统硬件与虚拟机的虚拟系统分隔开,具体来说,是将虚拟资源映射到真实物理资源,利用主机物理资源进行处理,将处理结果返回给虚拟机的虚拟系统,保证了主机系统与虚拟系统之间的有效隔离。指令集虚拟化为了解决硬件虚拟化中限制了虚拟系统的体系架构,不允许与主机系统的体系架构不相同,进而提出模拟虚拟系统的指令集和一些必备的硬件设备来实现虚拟系统。 2.3.2沙箱技术 (1)沙箱技术概述 人工处理数以万计的恶意程序样本需要消耗大量的人力物力才能完成,已经不适用现如今恶意代码技术的飞速发展。沙箱此时也是应运而生,在自动化分析恶意代码样本方面具有很高的效率,在收集关于恶意动态行为特征上有很大的作用。在沙箱中运行恶意样本后沙箱就会监测它调用的接口或者函数、进行的操作,判定为恶意代码后对沙箱进行恢复,继续使用正常系统对别的恶意代码进行检测。简单来说,沙箱是一个“虚拟环境”,不会对真实主机的操作系统造成影响,可以用来检测一些不确定意图的程序。在网络安全方面可以做出很大的贡献,譬如提高恶意代码特征码提取工作的效率,也为恶意代码的观测提供了一个环境[8]。 (2)沙箱技术的发展 应用程序一般是运行在用户运行态,只执行自身的代码,当进行系统调用时就陷入系统内核,也就是运行在内核运行态。沙箱中应用程序的运行也是如此,改变的只是从硬件内核转换到虚拟内核中。由此,可以将沙箱的衍生形态分为以下三种: (a)基于应用程序虚拟化沙箱,通过基于软件的隔离技术实现。现在可以找到的此类沙箱有chrome,X_Reader等。应用软件的操作是可以被记录的。应用也须要执行架构上的修改,例如将单进程修改为多进程,沙箱中需要运行其中一个进程,剩余进程用于管理沙箱的其它要求。 (b)基于部分虚拟化沙箱,将虚拟机的应用程序保存在真实主机,应用系统的相关操作调用的则是虚拟机的资源。这样对于沙箱而言,它必须要与主机系统共享一样的操作系统内核,有一定的局限性,安全方面也没用保证。此类沙箱中比较经典的一款就是Xen。 (c)基于完全虚拟化沙箱,通过驻留在操作系统内存,依赖硬件存储器的保护机制实现隔离。完全虚拟化沙箱中,恶意代码在运行后感染到的程序或者系统内核并没有在真实主机的内核中运行,只停留于表面,也就是用户运行态,无法对真实主机造成损坏。现有的沙箱应该有sanboxie、cuckoo等[7]。 目前比较流行的沙箱是基于部分虚拟化的沙箱,每个应用程序都是需要运行在用户态以执行自身的代码,将虚拟机内核与操作系统内核分割开又有利于防治恶意代码对真实环境的损坏。所以,真正意义上、好的沙箱应该是两者都能兼顾的,将恶意代码在沙箱中的运行状态进行监测,管控沙箱资源,运行完恶意代码后沙箱自动恢复正常状态,将恶意代码分析结果形成报告。

  2. 恶意代码自动化分析系统部署实践

3.1 使用viper分析与管理二进制文件

Viper是用python编写的二进制分析平台和管理框架。它的用途是提供解决方案,收集恶意代码、攻击样本和创建或发现的脚本,以方便后续研究。可以认为它是专门为恶意软件分析者打造的Metasploit。该框架提供了可用的终端界面,方便用户分析、检索、保存文件,并使用框架轻松创建任何类型的插件。结果如图3-1所示:

添加图片注释,不超过 140 字(可选)

图3-1 viper使用

3.2 使用clamAV对恶意代码分类

clamAV是一款开源杀毒引擎,通常是应对应急响应,检测恶意程序,保护恶意程序,分析取证,另外也能当作一些杀毒扫描软件的补充和替代工具。也就是说在文件进入局域网网络前先对文件进行初步检测,为网络隔离以及垃圾邮件等提供安全解决方案,还有就是基于签名对文件扫描检测恶意代码。其使用签名的一个区域,即16进制数部分检测文件。检测文件时,如果文件存在相关值,则将检测文件判定为恶意代码文件。

分析结果如图3-2所示:

添加图片注释,不超过 140 字(可选)

图3-2 clamAV使用

3.3 使用pyew管理与分析恶意代码

pyew是一款Python语言开发的用于分析恶意程序的命令行工具,支持对程序进行反汇编以及对PE、ELF、PDF等格式的文件进行分析,此外也可以通过添加更多地自定义插件到程序中实现更多自定义的功能。如下图4-3所示:

添加图片注释,不超过 140 字(可选)

图3-3 pyew使用结果

3.4 使用PEStudio分析可疑文件

PEStudio是带有GUI的分析工具,用于快速、准确给出可执行文件的基本信息和导入函数等信息,与VirusTotal协同判断被分析文件是否为恶意代码文件。如下图3-4所示:

添加图片注释,不超过 140 字(可选)

图3-4 PEStudio 运行结果

3.5 分析网络数据包

3.5.1利用captipper分析网络包

captipper是非常有效的CLI Python开源工具。它可以详细分析各个包文件对象。将对象文件dump和VirusTotal服务进行对比,从而判断被分析文件是否为恶意代码文件。结果如下图3.5.1所示:

添加图片注释,不超过 140 字(可选)

图3-5-1 captipper使用结果

3.5.2使用pcap-analyzer分析网络包

pcap-analyzer是基于Web页面的开源网网络包分析工具,通过将转储的包文件上传到Web页面,查看连接IP地址、HTTP响应状态码、连接URL统计等多种信息。如下图3-5-2所示:

添加图片注释,不超过 140 字(可选)

图3-5-2 pcap-analyzer使用结果

3.5.3使用net-creds获取重要信息

黑客入侵企业内部系统后,会拦截网络间传送的数据包,并从中获取重要信息,进而发动下一次攻击,如果该企业内部在通信时不采用加密方式,黑客就可以通过截取数据包,使用net-creds工具经过分析就能获取到其中的大量重要数据。使用net-creds工具不仅可以分析数据包,还能查看网络包信息,截获通信中以明文传送的信息。如下图3-5-3所示:

添加图片注释,不超过 140 字(可选)

图3-5-3 net-creds使用结果

3.6 Cuckoo总体介绍

3.6.1实践目的

对于各种网络设备的恶意代码与日俱增的,人工分析恶意代码的人工和时间成本十分高昂,这也导致恶意代码的分析效率非常有限,不利于恶意代码分析工作的开展。利用Cuckoo Sandbox搭建的环境能够让恶意代码分析变得更快、更安全,这正是安全分析人员希望看到的,针对恶意程序入侵事件也能更加从容,快速准确的做出及时的应急措施,创建更加安全的防御体系。

3.6.2系统功能研究

本文实践的恶意代码自动化分析系统Cuckoo Sandbox运行在Ubuntu操作系统平台上,由中央管理软件管理客户机(虚拟机)的中样本的分析。经过分析,它可以输出以下的结果:

(a)恶意代码更改的所有进程的Win32 API 调用的追踪信息。

(b)恶意代码运行时船舰、删除、下载的文件信息。

(c)被感染进程的内存转储文件。

(d)网络通信追踪信息及PCAP文件。

(e)恶意代码执行时Windows桌面截图文件。

(f)虚拟机(运行恶意代码的客户机)的全内存转储文件[1]。

3.6.3系统实践要求

为达到实践所需要的效果,本文将实践要求列举如下:

(a)分析过程自动化

这里所说的自动化是通过Cuckoo系统自动化分析,产生相应的恶意代码分析报告,不需要人工分析成千上万的恶意代码,从时间上来说,提高了应急响应的速度。

(b)分析结果准确

后续处理恶意代码分析报告,根据报告所给的行为特征得出相应的解决手段。所以分析报告结果的准确与否对行为特征码的质量有着决定性的关系,进而决定能否采取正确的处理方案。

(c)分析结果有效性

这里所提及的有效性是说不论是正常程序还是恶意程序都会有代码行为,只收集恶意代码行为,而不是正常代码行为都收集。在对其进行恶意代码行为分析时的关注点在于恶意行为,也就是说在恶意代码所有行为表现中应该有效的界定恶意行为和正常行为的区别,这也是分析结果有效性的关键所在。

(d)分析过程的隐蔽性

现如今,恶意代码也采用了各式各样的反分析技术应对分析工具,例如多态变型、反跟踪、反调试等技术,以此来绕过杀毒软件及安全分析人员。这里所说的隐蔽性是识别并绕开反分析技术的恶意代码,不让恶意代码发现正在被分析。

(e)分析环境的健壮性

在分析过程中,样本可能存在恶意代码行为会对系统或者网络设备造成无法预计的损坏。健壮的分析环境就是为了保护样本在运行之后对主机系统造成影响,也不会影响其余关联的网络设备。这个前提下,虚拟机,指令模拟器等都是解决此问题的好方法。

3.7 Cuckoo实践研究

3.7.1基本准备及分析样本类型

在VMware中安装了Ubuntu 18作为Host,然后在Ubuntu 18里面再装 VirtualBox,继而搭建Windows XP作为Guest。

Host中安装Cuckoo,安装Cuckoo的所需要的依赖库,在VirtualBox中建立一个虚拟机作为Guest,进行相关网络配置等关键操作,确保host与guest之间能相互ping通以及Windows XP能连接外网,启动Guest的agent,对其进行配置,还需要在VirtualBox保存Windows XP虚拟机快照,得到多个Guest。其中,Cuckoo配置文件的配置直接影响最终能否运行,需要仔细修改配置文件。最后可以提交样本进行分析,得到恶意代码分析报告。

Cuckoo是一个模块化的框架,不仅能单独当作应用程序来使用,而且能被当成模块,集成到别的框架。可用于分析:

(1)clp、exe、dll、vbs等基本的Windows文件

(2)pdf、xls、doc等文档文件

(3)html、jar、url信息

(4)php脚本

(5)python文件

(6)zip文件

(7)CPL files

(8)其它大部分文件

3.7.2 Cuckoo系统主要架构

Cuckoo Sanbox的构成主要是一个中央管理软件,负责对恶意代码样本进行分析,并且每一次分析都会重新启动虚拟机。它的基础设施就是前面提及的Ubuntu主机和创建的好几个客户机(Windows XP)。

在主机中运行Cuckoo的主要组件,负责恶意代码分析,客户机是恶意代码运行的环境,相对于主机来说,它是隔离的,不具备反虚拟化技术的恶意代码样本是可以被安全的分析的

Cuckoo的主要架构如下图3-7所示:

添加图片注释,不超过 140 字(可选)

图3-7 Cuckoo主要架构图

3.8 分析结果

Cuckoo提供多种形式的分析结果报告,有JSONdump报告、HTML报告、MMDef报告。这些报告应用灵活,既可以原样应用于其它系统,也可以应用于多种数据库。最终分析报告结果分为五个部分,有Quick Overview、Static Analysis、Behavioral Analysis、Network Analysis、Dropped Files。

(1)Quick Overview简略显示了分析恶意代码的全部分析流程。其中,分别有恶意代码的格式、分析开始与结束时间、分析耗时、文件说明等。

(2)Static Analysis是指对静态的恶意代码文件进行分析,通过对组成文件的各节区、导入的DLL、各种函数、包含的字符串以及VirusTotal实现操作。

(3)Behavioral Analysis是指对恶意代码进行动态分析,通过实际执行恶意代码获取其运行日志记录,包含网络、文件系统、进程、服务、注册表、同步等多种动态信息,用颜色加以区分。

(4)Network Analysis是以网络分析的信息为基础,分为Hosts、DNS、HTTP、ICMP、IRC等几个部分显示各种信息。此外,还可以下载捕获包的PCAP文件。

(5)Dropped Files,使用Cuckoo Sandbox分析恶意代码时,恶意代码运行后额外创建与删除的所有文件都会被收集并单独保存。这些保存的文件可以通过Web页面进行下载,并可以通过文件的散列值验证完成完整性。各文件最后一项为VirusTotal,点击其中的Search for analysis可以直接查看VirusTotal的检测结果。

Cuckoo分析结果如下图3-8所示:

添加图片注释,不超过 140 字(可选)

图3-8 Cuckoo分析报告

第四章 使用内存分析应对入侵事故

Volatility是最具代表性的内存分析框架工具,支持多种系统环境跨平台使用,广泛应用于内存取证分析,从内存文件(转储文件)中获取易挥发的信息[3]。进行内存分析时,首先要做的工作之一是快速转储相应系统的内存。内存转储是获取包含二进制文件的系统的完成物理内存的过程。而内存转储工具有很多,这里就不仔细介绍了。转储成果后,可以使用Volatility进行分析。

(1)在Win7SP1x86下使用工具dumpit获取到了内存文件,保存为WIN-HOQ9J720SN8-20200423-194149.raw,随即Volatility使用获取基本信息,主要是获取profile的类型。结果如下图4-1所示:

添加图片注释,不超过 140 字(可选)

图4-1 Win7SP1x86的基本信息

  1. 借助 psxview参数,列出WIN-HOQ9J720SN8-20200423-194149.raw的所有进程,包括隐藏的进程。如下图4-2所示:

添加图片注释,不超过 140 字(可选)

图4-2 Win7SP1x86中所有进程

  1. 结合使用grep参数,提取出MD-DOS.com进程的内容,如下图4-3所示:

添加图片注释,不超过 140 字(可选)

图4-3 MD-DOS.com进程内容

  1. 使用memdump参数把MD-DOS.com,pid为3768进程的数据保存为dmp格式,并将其保存到/home/cuckoo目录下边。如下图4-4所示:

添加图片注释,不超过 140 字(可选)

图4-4 转储MD-DOS.com进程

  1. 使用Winhex打开转储后的3768.dmp,展开分析。如下图4-5所示:

添加图片注释,不超过 140 字(可选)

图4-5 转储得到的dmp文件

第五章 总结与展望

5.1 实践总结

经过此次利用各种开源工具分析恶意代码的实践,不仅让我掌握了恶意代码可能存在形式,还让我了解恶意代码的分析检测技术。从中也有所体会,现如今的恶意代码发展十分迅猛,越来越复杂,对网络安全的威胁也越来越大。

文中介绍了恶意代码的定义、分类与一些分析技术,对当前恶意代码发展的局势进行简略说明。还有就是,此次实践中采用基于沙箱技术的恶意代码分析技术结合其它开源工具在虚拟机中对恶意代码进行监控,还有就是对磁盘上的文件系统的创建、修改、删除、注册表键及键值的修改等行为都有可能是恶意代码行为。另外,对进程的创建和终止上也需要格外注意。需要并对日志文件进行审计分析。实践结果也达到了分析恶意代码的目的,并将恶意代码行为特征统计到分析报告中。

5.2 实践展望

随着网络安全的不断发展、壮大,检测恶意代码的难度也随着反分析技术的不断研究深入变得越来越大,需要不断的研究新技术来提高检测分析的水平。

在本文中,对恶意代码、收集的分析报告进行进一步分析时也发现底层的知识并不牢固,需要继续加强。再有就是此次实践的还真是一小部分的恶意代码分析工具,分析的样本还远远不够。接下来将继续扩大分析样本的数据,利用新的分析工具分析恶意代码,研究新技术,提高恶意代码的检测范围以及检测效率,为中国网络安全贡献自己的一份微薄之力。

参 考 文 献

[1] 赵涏元 利用Python开源工具分析恶意代码[M] 2018.

[2] 斯科尔斯基, 哈尼克. 恶意代码分析实战[M]. 2014.

[3] 徐佳. 恶意代码内存镜像分析方法研究[D]. 2015.

[4] 陈共龙.恶意代码分析技术综述[J].无线互联科技,2014(03):113-114+221.

[5] 高成龙. 基于cuckoo的沙箱分析引擎研究与实现[D].兰州大学,2017.

[6] 温强.文件完整性检测的设计与实现[J].科技情报开发与经济,2011,21(09):137-139.

[7] 梁晓. 恶意代码行为自动化分析的研究与实现[D].电子科技大学,2008.

[8] 雷家怡,庞建民,梁光辉,师炜,周鑫.基于行为信息的恶意代码抗分析技术检测系统设计与实现[J].信息工程大学学报,2018,19(04):494-497.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代论文网课招代理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值