浅谈恶意代码的研究分析

恶意代码(malicious code)是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据、运行具有入侵性或破坏性的程序、破坏被感染电脑 数据的安全性和完整性的目的。恶意程序创作者有一套不断扩充且技术先进的工具组合可供他们任意运用,其中包含了傀儡程序与傀儡网络、Rootkit、社交 工程技巧、间谍程序与广告程序等等。他们受到金钱利益驱使的情况更甚于以往,而且创造出许多专门生产恶意程序、犯罪程序与间谍程序/广告程序的地下经济 体。他们不再制作以删除文件及破坏大量计算机为目的的恶意程序,改以潜藏于计算机中,等候傀儡程序主控者下达命令采取各种行动,或在适当时机窃取个人信息 的恶意程序取而代之。他们不断创造出行踪更隐匿的恶意程序,像是视频垃圾邮件-内含视频而非文字的垃圾邮件。
恶意代码按传播方式可以分成几类:病毒,木马,蠕虫,移动代码。
病毒一般都具有自我复制的功能,同时,它们还可以把自己的副本分发到其他文件、程序或电脑中去。病毒一般镶嵌在主机的程序中,当被感染文件执行操作的时候(例如:打开一个文件,运行一个程序,点击邮件的附件等),病毒就会自我繁殖。
特洛伊木马这类恶意代码是根据古希腊神话中的木马来命名的,它从表面上看是正常的程序,但是实际上却隐含着恶意 意图。一些木马程序会通过覆盖系统中已经存在的文件的方式存在于系统之中,同时它能以加载恶意代码动态库的方式携带恶意代码程序,还有一些木马会以一个软 件的身份出现(例如:一个可供下载的游戏,将木马捆绑在软件安装程序上),但它实际上是一个窃取密码的工具。这类应用通常在网络游戏盗号木马上。大多数木 马都可以使木马的控制者登录到被感染电脑上,并拥有绝大部分的管理员级别的控制权限。为了达到这个目的,木马一般都包括一个客户端和一个服务器端。客户端 放在木马控制者的电脑中,服务器端放置在被入侵电脑中,木马控制者通过客户端与被入侵电脑的服务器端建立远程连接。一旦连接建立,木马控制者就可以通过对 被入侵电脑发送指令来传输和修改文件。通常木马具有很强的隐敝性,会采用多种手段隐藏木马。隐藏恶意进程的痕迹,例如使恶意进程不在进程列表中显示出来 等。常见的木马有灰鸽子、彩虹桥、Poison_Ivy、守望者、上兴远控、turkojan等一些木马。
蠕虫是一种能在没有任何用户动作的情况下自动传染计算机的病毒变形。蠕虫不修改文件,而是常驻在内存里并复制自 己。蠕虫使用操作系统的一部分,这部分对于用户来说是自动且无形的。通常只有在它的无法控制的疯狂复制占用了系统资源使得其他的 任务缓慢甚至停滞的情况下才会发现它们。蠕虫的自我复制不像其他的病毒,它可以自动创建与它的功能完全相同的副本,并在没人干涉的情况下自动运行。蠕虫是 通过系统存在的漏洞和设置的不安全性(例如:设置共享)来进行入侵的。它的自身特性可以使它以极快的速度传输(在几秒中内从地球的一端传送到另一端)。其 中比较典型的有Blaster和SQL Slammer。
移动代码是能够从主机传输到客户端计算机上并执行的代码,它通常是作为病毒,蠕虫,或是特洛伊木马的一部分被传 送到客户计算机上的。另外,移动代码可以利用系统的漏洞进行入侵,例如非法的数据访问和盗取root账号。通常用于编写移动代码的工具包括Java applets,ActiveX,JavaScript,和VBScript。


了解了恶意代码的基本概念后,叶子再跟大家一起来研究对恶意代码的分析流程。
◆首先,我们通过各种渠道收集到最新的未知恶意代码样本时,进行文件格式分析。通过PEID之类的工具进行文件格式检查,分析样本是否进行加壳处 理?样本是何种语言编写的?以及是否有其它附加的数据等。样本经过加壳的程序,需要对其进行查壳,确定程序的加壳类型,并通过脱壳工具或手段进行脱壳,分 析出程序的编程语言。如果无法查出壳类型,则认为是一个未知的壳,可以结合动态脱壳进行分析。另外通过PE文件的区段来确定是否有附加进去的数据。
◆接着,我们对样本文件的属性进行查看分析。查看样本的数字签名,排除伪造签名的情况。对于持有那些大公司的数字签名,可以通过文件属性中的相关信息进行查看分析。另外查看文件的文件属性,可以对文件的是否正常、或已被修改的情况进一步的分析。
接下来,我们对样本的行为进行分析,分析它的本地感染行为,以及网络传播行为。本地行为分析过程需要使用文件监视工具、注册表监视工具来确定恶意代 码对系统做了哪些行为。通常情况下样本会释放出病毒体,并把它拷贝到系统目录下,而且通过添加注册表到系统启动项、系统服务启动、注入系统进程中等等方 式。另外通过网络抓包工具(sniffer、IRIS等),分析其与哪个网站进行连接,打开哪个端口,下载哪些文件,执行哪些操作命令等等的过程。
然后,我们通过静态反汇编工具(IDA等)对的恶意代码程序的PE文件进行反汇编。通过分析静态反汇编后的文件中所使用的字符串、API函数等信息,来判断此样本的基本功能和特点。通过查看PE文件的导入表来判断基本功能和特点等。
最后,我们通过动态调试对恶意代码加载调试,进一步分析代码的操作。用动态调试器(OD等工具)载入病毒后,在程序进程的各个可疑的地方下断点,根 据代码来确定恶意代码的有害操作。当然最后还要形成相关的恶意代码分析报告,并对恶意代码进行命名规范,而且还需要对样本使用MD5进行完整性校验。
下面叶子举个例子来对恶意代码进行分析:
从用户的网络环境中收集到熊猫烧香的变种样本,我们需要对其进行初步的分析及了解。我们先把病毒样本放入带有病毒分析环境的虚拟机中,包含分析过程需要的各种工具。
 

网络安全学习资源分享:

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享🎁

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

在这里插入图片描述

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享🎁

因篇幅有限,仅展示部分资料,需要点击上方链接即可获取

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值