如何应对恶意软件新技术(三)

日期: 2011-11-22 作者:茫然 来源:TechTarget中国

如何应对恶意软件新技术(二)中,我们介绍了恶意软件作者通过高级规避技术阻止逆向工程。本文介绍了反恶意软件如何工作来去除恶意代码的模糊性。   迷雾重重   模糊过程的致命弱点也很容易掌握:在执行之前,被模糊的程序(不管是一段脚本或是一个可执行的程序)必须被解码。不管恶意软件分析师是否通过人工或自动化的方式来对一个模糊化的可执行程序进行分析,对恶意工具来说,其观念就是让程序能够对自身解码,然后在执行之前,抓取被解码程序的一个副本。

这可以通过一个调试器(如IDAPro或Ollydbg),或通过一个专用工具如LordPE来实现。   从本质上说,分析师是利用恶意代码自身来为其进行解码的工作——分析师……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

如何应对恶意软件新技术(二)中,我们介绍了恶意软件作者通过高级规避技术阻止逆向工程。本文介绍了反恶意软件如何工作来去除恶意代码的模糊性。

  迷雾重重

  模糊过程的致命弱点也很容易掌握:在执行之前,被模糊的程序(不管是一段脚本或是一个可执行的程序)必须被解码。不管恶意软件分析师是否通过人工或自动化的方式来对一个模糊化的可执行程序进行分析,对恶意工具来说,其观念就是让程序能够对自身解码,然后在执行之前,抓取被解码程序的一个副本。这可以通过一个调试器(如IDAPro或Ollydbg),或通过一个专用工具如LordPE来实现。

  从本质上说,分析师是利用恶意代码自身来为其进行解码的工作——分析师只是在最后一步做点儿工作,并获得结果。模糊技术的表现可能极为复杂,如果让恶意软件对自身解码,就可以将分析师从分析解码程序算法的负担中解放出来。

  在某些情况下,当一种模糊工具被广泛使用时,就可以开发出新技术,并将其融合到现有的工具中,从而自动地识别和去除代码的模糊性。

  如果解码方案相当简单,那么,还需要模糊性恶意软件吗?问题的答案在于反恶意软件产品如何工作。

  如前所述,当今的多数反恶意软件工具主要仍基于签名。一段恶意代码的签名必须能够检查足够异常(不正常)的代码,不会因为将一个合法的程序确认为恶意软件而造成“似是而非”的情况。同时,签名还必须保持足够的通用性,不会因为代码的一点小小的改变就使其无效。

  例如,如果一家安全厂商为上文所提到的被编码脚本编制了一个签名,那么,厂商应当针对这段代码的哪一部分启动触发?虽然对代码的“eval(base64_decode())”进行触发很有诱惑性,但这样一个签名会造成似是而非的可能性。要知道,这些是内置的PHP函数,而且这种函数用法未必是唯一的。

  这代表着攻击者的一个巨大胜利。如果他们想改变其脚本来避免被签名检测到,只需改变原始脚本中的变量名,从而形成一个完全不同的base64字符串。这种改变可能就像将变量”clicker”替换成“entre”一样简单,从而形成一个完全不同的编码串。

  这种改变绝对不会影响到脚本的功能,却有可能避开为原始脚本所设计的签名。

  对于可执行的代码部分,只需简单地改变用于原始可执行代码的包装器(或者,根据所使用的包装器,对代码进行多次包装,或者用多种不同的包装器进行包装等),就足以延长一段以前被安全软件所识别的可执行恶意代码的寿命。

  不能败之,则取其器

  很多情况下,反恶意软件厂商和恶意软件制作者之间的战斗是一个不断升级的过程。一方发现了某种技术,另一方反过来会再次改变招数。

  在反病毒研究人员开始研究技术和工具来应对模糊代码时,恶意软件的公司早已快马加鞭,应用多层编码技术、混合编码机制等。不过,对这些制造模糊代码的人来说,安全分析师完全可以在性能遭受损失之前调整或改变代码。

  恶意软件需要独辟蹊径来提高自己,使自己占领战略制高点,它需要不断地提升其技术水平。为了能够熟练地逃避逆向工程,恶意代码的编写者需要知道用来对付自己的各种工具。攻击者逃避逆向工程的最好的一种方法是使恶意代码执行一些类似于突破或破坏反恶意工具的操作。后文中,我们将看一下恶意软件作者如何使安全分析工具变成“睁眼瞎”。

作者

茫然
茫然

暂无

相关推荐