病毒分析师,你了解多少?

病毒分析师,你了解多少?

病毒分析师的职业需求

  1.较强的汇编语言知识及高级语言代码编写能力
  2.对Windows系统体系结构及底层有所了解
  3.Windows PE文件构型
  4.熟练使用诸如OD、IDA等工具对文件进行脱壳解密和逆向分析

  病毒分析需要多种技术知识融合才能达到一个比较高的境界,但每个步骤都需要我们有一定的专业知识做基础才能有所扩展,而且知识的入门阶段往往会晦涩难懂,略显枯燥,经常会有没有任何进步的感觉,但一定要有明知山有虎,偏向虎山行的精神。

  举个例子:学习汇编知识,大家都知道,汇编是机器语言的一种表示方法,虽然有较机器语言好的可读性,但是学习过程中一般会经历,一点都看不懂,能看懂但自己写不出来,能写一些简单的过程,最后达到精通。但是当你精通了汇编,后面的脱壳等步骤可能就会有柳暗花明的感觉,很容易上手,多加练习即可。

  就像之前提到过的,病毒的发展是日新月异,时刻不停的,那么反病毒工作也必须夜以继日,这样才能尽可能地让大多数人在安全的环境下使用电脑,尽可能地减少计算机犯罪的发生以及用户信息和财产的丢失。

  看病毒分析师如何“解剖”病毒

  一切都从折腾电脑开始

  我和大多数我这个年龄段的人接触电脑的过程差不多,从红警、QQ等开始接触计算机,后来大学选择了计算机专业,大学阶段主要给自己补充了计算机相关知识原理的基础部分,对能够影响计算机的各种病毒产生了浓厚的兴趣。为什么同样是程序(病毒也是一段程序),病毒却能够达到这么大的破坏力呢?

  起初我对于病毒也和大多数人一样,仅限于说自己或朋友的机器中毒了,会去参谋怎么手工修复,也就是看看进程管理器,改改注册表之类的,而且最重要的是常常弄到最后,灰头土脸地发现重装系统才是正道……

  后来工作中接触了病毒才发现,其实当时的操作也算是一种正确的努力,只不过缺少专门的工具和发现解决问题的经验。当时的折腾也给我带来了浓厚的兴趣和不屈不挠的钻研精神,而这正是这份工作需要的,因为这个工作要面对枯燥代码。

  我这样进行病毒分析

  病毒分析其实跟很多软件的白盒测试相同,需要在虚拟系统的环境下对病毒发挥作用时影响到的位置进行监测,并对病毒最后造成的效果进行评估。这中间就会用到虚拟机去模拟病毒运行的环境,用监测软件对虚拟机中受病毒影响的位置进行监控,针对有加壳的病毒(换句话说就是病毒的变种)使用脱壳软件进行脱壳,然后使用反编译软件对病毒的编码进行破解,下面就是一个标准的病毒分析流程。

  第一,在虚拟机中模拟它的运行,但有时必须是在真机上,因为某些病毒狡猾无比可以检测是否在虚拟环境下运行。此过程中我们要从以下几个方面进行检测获取相应信息:

  1.文件系统的变化,即与样本运行前相比,系统是否增减了某些文件,一些原有文件是否有被修改的痕迹,注册表的修改痕迹。

  2.进程变化,即样本运行后进程中是否出现某些可疑进程。

  3.网络链接监控,检查进出系统的数据包是否异常。

  4.API调用,其实就是样本与操作系统的交互,程序希望系统完成什么任务。

  以上可称之为主动检测,即主动获取系统变化。常用Process Explorer、Filemon、TracePlus/Win32、Wireshark等来完成。

 

  另外我还会通过例如Installwatch或者Installspy等工具对系统进行监控,称之为系统完整性检测,查看系统的变化。

                    用Installwatch对系统进行有效监控

  第二,软件尤其是恶意软件,常常在生成时就使用一些加壳或加密程序,以避开安全保护设备,或反病毒软件的查杀追捕,为了更加全面地分析样本文件,需要将其从壳中提取出来。

  这个过程一般都会利用例如PEid等查壳工具检验壳的类型,然后或者利用专门的脱壳工具例如ASpack等进行操作,或者使用OllyDbg来查找程序真正的入口点,手动脱壳。脱壳后的程序一般是不可执行的,因为某些部分例如导入表被破坏了,这时我们就需要用一些专门软件或OD插件来修复此PE程序。然后我们在确认壳被成功脱去后,就该去检查它的一些嵌入文本,例如某些包括有效信息的字符串、文件信息等。

                   用OllyDbg查找程序真正的入口点

  第三,对文件进行反汇编,常用功能强大的IDA Pro,比如木马类样本,我会通过监控它的API来查看函数命令,可以知道它主要偷偷地记录些什么内容,通过什么方式发送给木马操控者等。

  第四,通过以上的步骤我大概能明白样本的行为及目的,但为了更全面的理解有必要对PE文件本身进行一个深入的分析。此步骤中我们会对PE文件的一些资源进行检查,针对不同高级语言类型有不同的编辑工具,可以获得此样本在执行时可能会显示的一些资源文件,比如窗体、某些小控件、类似虚拟键盘、按钮等。从中可以发现更多有关恶意行为的线索。

  第五,根据之前的分析,我会获得一些程序运行所依赖的函数或命令,我还可以利用比如SpyStudio等工具进行函数剖析,具体查看程序的返回值,从中可以获得大量恶意行为的证据,例如某些木马文件通过调用某些网址呈现给用户一个假的页面来截获账户密码及其他隐私信息等。

  过程描述相对简单,但是其中包括环境搭建及调整,以及软件操作需要的相关知识还是需要专门学习才能更好地应用和掌握。整合所有分析发现的文件行为及编码,给此文件编写一个特征码并纳入病毒库,此病毒便可以被有效地查杀了。

 

为掌握趋势扮黑客

  其实所有的行业都可以套用“不学习就会被淘汰”这句话。但是做病毒分析工作,可以算是这句话的极端表现。随着电子技术日新月异的发展,每秒钟世界上都会有大量新的病毒及其变种产生。所以只有不断去充电,了解当前病毒的发展趋势和黑客关注的方向,我才能在得到病毒后有一个大体的认知,从而有的放矢地“解剖”病毒。

  为了第一时间掌握安全界的动向,我和我的同事都是各大黑客论坛的常客,而且我们也会有一些黑客身份,以便我们去探知最新的消息。当然了,我从没有去干过什么入侵的事情,这可是违法的。讨论技术可以,被邀请参与某些活动的时候,往往都会以工作或者其他原因去拒绝,因此,也会被一些黑客嘲笑为眼高手低,但是谁又知道我的真正目的呢?

 

你可能感兴趣的:(病毒分析师,你了解多少?)