自恶意软件诞生以来,恶意代码同用来检测和阻止它的反恶意软件之间的较量就没有停止过。在不断的斗争中,总有一些企业或个人成为恶意软件的牺牲品。安全研究、检测、设计人员加班加点分析恶意代码,而恶意代码的编写者们早就在设计新的独创性方法来挫败分析人员和和各种自动化的工具。本文将分析恶意软件的作者们用于逃避、击败检测和分析的主要方法,并提出应对措施。
恶意软件的把戏只不过是将恶意代码安装并维持在受害者的电脑上。恶意软件依赖于在受害人不知晓的情况下使用其计算机,如监视击键信息以窃取登录凭证,发送垃圾邮件,或使其成为僵尸网络的一部分。
逆向工程是商业秘密的大敌,也是恶意软件制作者的眼中钉。一段时间以来,恶意软件的"厂商们"已经认识到,逆向工程是它们的敌人。每天大量的安全研究人员对大量的可疑代码部署大量的分析和检测工具。这使得恶意软件的"厂商们"必须不断地改进其"产品",以避开这些安全工具,使其恶意代码更难以被实施逆向工程。
必须正视这一点:反恶意软件是一种"反应性"的技术。你可以针对一段特定的恶意代码开发一种签名(不管你是否喜欢,多数反恶意软件仍是基于签名技术的),当然,前提条件是你见到过这种代码。虽然安全厂商们都部署了蜜罐等工具,但它们调查研究的多数文件仍来自于用户提交的内容。如果反恶意软件的厂商们无法看到恶意代码,又怎会将其标记为"恶意软件"呢?恶意软件的厂商们遵循的原则其实很简单,就是其尽最大可能减少其代码被提交、被捕获的可能性,其伎俩不一而足。
从表面来看,这似乎有背于恶意软件的一般商业模式。但是,一种新的日益增长的恶意软件生产模式,已经开始兴风作浪,即小型的专用恶意软件的生产,它专门针对一家特定的公司,甚至针对个别人。这种小型的专用恶意软件一般有一个目标,即收集商业情报。它限制其散布模式,对于根据签名来分析和检测恶意软件的公司来说,这是一个巨大的挑战。
与此类似的还有一个现象。有些恶意软件制作者(有的早已成立了公司)不再试图用相对有限的恶意程序来攻击尽量多的机器,而是发布大量的个别的恶意程序或其不同的变种,以此来隐藏"大规模"暴发的现象。
这种恶意软件在利用网络进行通信时,小心谨慎,并仅通过模仿用户行为的机制进行通信。打个比方,就是让一只鹰看起来、走起来像个鸭子,叫起来也像个鸭子,虽然它实际上是一只"冒牌"鹰。
这种恶意软件并不像一个吸干人全部血液的吸血鬼那样,它在使用服务器或终端用户的机器时,很有分寸,几乎不可能触发安全管理人员或工具的调查和分析。