恶意代码分析实战--第0章


原版:《Pratical Malware Analysis:The Hands-On Guide to Dissectiong Mailcious Software》
译版:《恶意代码分析实战》
Michael Sikorski、Andrew Hoing[著] 诸葛建伟、姜辉、张兆凯[译]


恶意代码分析实战--第0章

任何以某种方式对用户、计算机或网络早成破坏的软件,都可以被认为是恶意代码,包括计算机病毒、木马、蠕虫、内核套件、勒索软件、间谍软件、等等。

0x01 恶意代码分析目标

1、目标


恶意代码分析的目标,通常是为一起网络入侵事件的响应提供所需要的信息;而我们在分析可疑恶意代码时,我们的目标通常应该为确定某一个特定的可疑二进制程序可以做什么,如何在网络上检测出它,以及如何衡量并消除它所带来的危害。


2、特征码

经过分析,当确定了哪些文件需要全面分析时,就编程写出相应的检测特征码了,以便检测出恶意代码感染的主机。


基于主机的特征码

基于主机的特征码(或者称为感染迹象),指用于在受感染的主机上检测出恶意代码。这些迹象通常是恶意代码创建或修改的文件,或是他们对注册表的特定修改。与反病毒软件所使用的病毒特征码不同,恶意代码感染迹象关注的是恶意代码对系统做了什么,而不是恶意代码本身的特性。


网络特征码

网络特征码是通过检测网络流量来检测恶意代码的。网络特征码可以在没有进行恶意代码分析时创建,但在恶意代码分析帮助下提取的特征码往往是跟有效的,可以提供更高的检测率和更少的误报。


在获取特征码之后,最终的目标是要弄清楚恶意代码是如何工作的


0x02 恶意代码分析技术

1、静态分析基础技术

静态分析基础技术包括检查可执行文件但不查看具体指令的一些技术。可以确定一个文件是否是恶意的,提供有关功能的信息,有时还会提供一些信息以生成简单的特征码。


2、动态分析基础技术

动态分析技术技术设计运行恶意代码并并观察系统上的行为,以移除感染,产生有效的检测特征码,或者两者。
在进行动态分析之前,必须搭建安全的环境,以便能在避免对系统与网络带来分享的前提下,研究这些恶意代码。


3、静态分析高级技术

静态分析高级基础,主要是对恶意代码内部机制的****,通过将可执行文件装到反汇编器中,查看程序指令,来发现恶意代码到底做了什么。


4、动态分析高级技术

动态分析高级技术,主要是使用调试器来检查一个恶意可执行程序运行时刻的内部状态。动态分析高级技术提供了从可执行文件中抽取信息的另一条路径。


0x03 恶意代码类型

后门:恶意代码将自身安装到一台计算机来允许攻击者访问。后门程序通常让攻击者只需很少的认证甚至无需认证,便可以连接到远程计算机上,并且可以在本地系统执行命令。


僵尸网络:与后门类似,也允许攻击者访问系统,但是所有被同一个僵尸网络感染的计算机将会从一台控制命令服务器接受到相同的命令。


下载器:这是一类只用来下载其他恶意代码的恶意代码。下载器通常是在攻击者获得系统的访问时受喜爱那个进行安装的。下载器策划那个徐会下载和安装其他的恶意代码。


间谍软件:这是一类从受害计算机上收集信息并发送给攻击者的恶意代码。比如:嗅探器、密码哈希采集器、键盘记录器等。这类恶意代码通常用来获取E-mail、在想网银等账号的访问信息。


启动器:用来启动其他恶意程序的恶意代码。通常情况下,启动器使用一些非传统的技术,来启动其他恶意程序,以确保其隐蔽性或者以更高的权限访问系统。


内核套件:设计用来隐藏其他恶意代码的恶意代码。内核套件通常是与其他恶意代码(如后门)组合工具套装,来允许攻击者提供远程访问,并且是代码很难被受害者发现。


勒索软件:设计成吓唬受感染的用户,来勒索他们购买某些东西的恶意代码。这类软件通常有一个用户界面,是的他看起来像是一个杀毒软件或者其他安全程序。他会通知用户系统中存在恶意代码,二唯一出掉他们的方法只有购买他们的“软件”,而事实是,他们所卖的软件的全部功能只不过是将勒索软件进行移除而已。


发送垃圾邮件的恶意代码:这类恶意代码在感染用户计算机后,便会使用系统与网络资源来发送大量的垃圾邮件。这类恶意代码通过为攻击者出售垃圾邮件发送服务而受益。


蠕虫或计算机病毒:可以自我复制和感染其他计算机的恶意代码。

0x04 恶意代码分析通用规则

第一、不能过于陷入细节;

第二、对于不同的工作任务,可以使用不同的方法和工具;

第三、恶意代码分析就像是猫抓老鼠的游戏。