杀毒(AV)和反恶意软件产品是最古老、最成熟的网络攻击防护,但似乎每天都有新的恶意软件样本能够绕过传统的杀毒软件的恶意软件查杀方案。在 WannaCry 出现当日,即便是顶级的杀毒引擎,大多数也都错过了第一批样本,但在随后数小时、数天、数周内都逐渐更新了特征库。这就是是基于特征的检测解决方案的延迟性和被动性的最好示例。
基于特征的杀毒软件还会错过知名威胁。业内每天都会发现30万至100万个新的 恶意软件 变种。然而,罪犯分子并没有制造出数百万个新的蠕虫、木马或病毒。即便没有几十万个恶意软件族,至少也有成千上万个。那么,这数百万变种从何而来?
答案是恶意软件逃避技术。随着时间的推移,恶意软件作者已开发出数百种技术,使其恶意软件“焕然一新”,从而逃避安全控制。本文将介绍将介绍四种基本的恶意软件混淆方法,在后续的文章中我们将介绍恶意软件逃避用户及安全软件检测的7种高级逃避技术,并介绍检测这些恶意软件的方法。
打包器Packer
打包器(Packer)是一款可执行文件的压缩程序。它将压缩的可执行文件封装在所需代码中,在运行时自行进行解压缩。压缩改变了可执行文件的图标。基于特征的检测需要恶意软件研究人员或自动化系统在已知恶意软件文件中找到一种模式,如二进制模式的Hash或数量,为恶意软件创建唯一标识符。打包技术改变了标识符,因此杀毒软件检测不到文件。
虽然可合法使用打包器,包括让程序变小或防止代码逆向工程,恶意软件经常使用压缩的可执行文件逃避杀毒软件检测。杀毒软件常常可以发现包装,但由于您可以合法打包可执行文件,杀毒产品不能将其作为判断恶意软件的唯一依据。
加密器Crypter
加密器(Crypter)和打包器类似,但增加了混淆和加密技术。像打包器一样,加密器的目的是改变文件的二进制指纹,逃避检测。简言之,加密器使用加密算法对原始可执行文件进行加密—通常是具有唯一密钥的异或密码。然后Crypter会创建一种桩(Stub)。桩是一种初始程序,具有解密和运行真正的嵌入式负载所需的一切。
通过使用具有异或密码的不同密钥对原始程序进行编码,您可以对同一程序创建出无数个副本。如今,其他罪犯分子在地下市场上出售很多不同的加密器。您也可以找到很多免费版本,如众所周知的Veil-Evasion框架。
打包器和加密器都存在一些问题。例如,这两种技术都能保护恶意软件免受静态分析但并非动态分析。静态分析是指在尚未执行的文件上进行恶意软件检测的技术。为了在恶意软件进入系统前进行阻止,很多杀毒产品在文件通过网络或复制到计算机文件系统时进行文件扫描。然而,静态分析限制了杀毒软件对特定文件的了解,因为这些文件可能被打包或加密。
另一方面,动态分析意味着在文件执行时运用检测技术。通过动态分析,可查看内存中的恶意代码,或注意到恶意代码的行为。包装或加密的程序需要自行打开或解密后运行。因此,通常一旦运行动态分析产品,就能立刻识别基于语义的恶意软件。此外,一旦杀毒软件公司掌握了如何检测特定包装器或加密器桩,有时他们不需要查看解码二进制就可以识别这些恶意文件。
当然,这里只是简而言之。包装器和加密器继续演进,以对抗杀毒软件。现在它们采用这样的技术:每次只解密内存中一小部分载荷,使杀毒产品更难检测发现。
多态恶意软件
在最高级别,多态恶意软件是指重复使用包装和加密的方法不断改变特征的恶意软件。然而,多态恶意软件使用更复杂的、具有随机密钥、变量和解码器的加密算法,而不是像大多数加密器那样使用静态密钥。每复制到一个新位置,恶意软件本身就会发生变异,或者罪犯分子可设置服务器,每发送到一位新的受害者,恶意软件变体就会自动变化。服务器端多态恶意软件非常流行,绝大部分的每日恶意软件变种都属此类。
下载器、Dropper和分阶段加载
很多种类的恶意软件在安装真正的恶意软件前使用Dropper或下载器学习系统。下载和安装有效载荷时,这些Dropper首先对系统进行评估,避免触发安全告警。它们可找出并终止安全进程或检查是否运行在虚拟系统上。它们还可使用加密反向通道下载次要载荷,逃避网络检测或直接将恶意软件注入到已知的Windows进程中逃避检测。另一方面,杀毒软件厂商可设计特征识别这些Dropper和下载器,现代杀毒程序都可进行自我保护,不会再中Dropper的圈套。
黑客可利用这四项技术隐藏恶意软件,简单有效。请继续关注文章第二部分,将继续介绍几种更高级的混淆方法,并介绍公司检测隐藏恶意软件的方法。
原文发布时间:2017年8月31日
本文由:darkreading发布,版权归属于原作者
原文链接:http://toutiao.secjia.com/malware-4anti-killing-technology
本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站