恶意代码的编写者需要知道用来对付自己的各种工具。攻击者逃避逆向工程的最好的一种方法是使恶意代码执行一些类似于突破或破坏反恶意工具的操作。我们将看一下恶意软件作者如何使安全分析工具变成“睁眼瞎”。 检测虚拟测试环境 反恶意软件的研究者在过去几年中广泛使用的工具之一就是虚拟化。
在虚拟环境中执行恶意软件的分析有很多好处,包括:易于维护多个虚拟机(配置不同的操作系统和补丁等级),使用快照/复位机制等。 对此,恶意软件的作者们也开始准备应对,已经开始检测虚拟化,进而调整其行为,或者拒绝运行(如果检测到了虚拟机,恶意代码就会拒绝解包)等。 对于反恶意软件的厂商来说,最好的方法是使用自己私有……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
恶意代码的编写者需要知道用来对付自己的各种工具。攻击者逃避逆向工程的最好的一种方法是使恶意代码执行一些类似于突破或破坏反恶意工具的操作。我们将看一下恶意软件作者如何使安全分析工具变成“睁眼瞎”。
检测虚拟测试环境
反恶意软件的研究者在过去几年中广泛使用的工具之一就是虚拟化。在虚拟环境中执行恶意软件的分析有很多好处,包括:易于维护多个虚拟机(配置不同的操作系统和补丁等级),使用快照/复位机制等。
对此,恶意软件的作者们也开始准备应对,已经开始检测虚拟化,进而调整其行为,或者拒绝运行(如果检测到了虚拟机,恶意代码就会拒绝解包)等。
对于反恶意软件的厂商来说,最好的方法是使用自己私有的虚拟化机制,以此作为一种避免虚拟机检测的方式。
JavaScript的模糊代码
在过去的几年中,将JavaScript的模糊代码用于对浏览器的攻击已经成为一种魔法。随着安全厂商强化其自动分析Web威胁的技术(例如,使用脱机的签名开发),恶意软件厂商也日益使用智能技术来粉碎这种分析。
下面我们分析安全分析师如何破解JavaScript模糊代码,以及恶意软件作者如何应对。
正邪较量
以前,反恶意软件的分析师无需费很大劲就可以找出模糊的JavaScript代码。例如,在下面的例子中,可以找到多行模糊化的JavaScript部分。分析师解码这些部分的诀窍,就是允许脚本将模糊化的代码解码为变量“txt”,然后再用其它的东西来替换“eval(txt)”。反病毒的厂商们能够快速地开发出自动分析工具来对付这种模糊代码。
问题在于,分析师必须在执行代码并捕获它之前就对解码部分做出改变。而恶意软件的作者对这个漏洞会迅速做出响应。
例如,依赖于JavaScript的内部特性,恶意代码的作者能够将解码函数自身的特性用作解码过程的一部分,所以对解码函数的任何变更都会使其停止运行。自查是某些编程语言的特性,即潜在地具有修改用此语言编写的软件的能力。在JavaScript中,解码函数能够检查其自身的字符长度,甚至可以用这个值作为解码算法的一部分,所以对调整其长度功能的任何改变都会破坏其解码的能力。此外,脚本还可以利用更广泛的自查功能来监视对其自身的修改。
下文还将讨论其它恶意软件技术,如干扰调试等。
相关推荐
-
企业警告称:基于文档的恶意软件正在增加
根据Barracuda Networks公司研究人员的电子邮件分析发现,在过去12个月检测到的所有恶意文件中, […]
-
AI网络安全如何阻止攻击以及黑客将如何应对
随着我们的数字生活变得更加自动化、集成化和高度连接,安全风险也随之增加;2018年充斥着各种攻击和隐私丑闻,包 […]
-
CrowdStrike报告称攻击者的突破时间正在增加
根据CrowdStrike公司最新研究显示,黑客通常需要更长时间才能在受害者的环境中实现横向移动,但来自某个地 […]
-
Dragos公司Robert Lee探讨最新ICS威胁及其对回击的看法
Robert Lee认为,关键基础设施面临的网络威胁不断增加,但这并不意味着美国即将出现灾难性停电。 Drag […]