为什么光有杀毒软件还不够:我是如何编写能够躲避杀毒软件的恶意软件的

来源: 瞻博网络 JunosWebApp Secure首席软件架构师作者:Kyle Adams
2014/9/17 13:46:30
杀毒软件(AV)是一个较大规模安全防护策略的重要组成部分,能够减缓恶意软件在互联网上的传播速度。这就像一个农场主保护自己的牲畜一样。一个聪明的农场主会在生物威胁出现之前给很多牲畜接种这方面的疫苗。

分享到: 新浪微博 腾讯微博
本文关键字: 杀毒软件 DDoS 瞻博网络
在恶意软件攻击者看来,即便是被一家杀毒软件供应商检测到,这也意味着他们的恶意软件将不会持续太久,而恶意软件持续的时间越长,他们所获得的价值也就越多。因此我继续对恶意软件作者让其恶意软件无法被所有已知的杀毒软件客户端所检测的过程进行了演示。由于这个特定的病毒只是被一家杀毒软件供应商所检测到,要做出的努力也不会太多。
代码模拟的工作原理是在杀毒软件应用程序里创建一个微型虚拟机,在这个微型虚拟机里,可疑的恶意软件可以安全地被执行。模拟器会记录这个可疑的恶意软件所实施的一切操作,并使用启发式行为模式来确定这些行动是否代表恶意代码。比如,如果在微型虚拟机里执行一个文件时,模拟机注意到它被设计为添加一个指向回收站里的一个可执行文件的‘自启动’注册表项,它便可以较为准确地认为可疑的文件实际上就是一个恶意软件。这是因为恶意软件经常会添加自启动表项。一个正规的自启动表项绝不会指向回收站里的任何东西,因为这些文件并不能够保证长期存在。另一方面,如果在执行可疑的恶意软件之后,所观察到的行动只是一些拥有很多动画的对话,杀毒软件可能会认为这是一个游戏,不太可能是恶意的。
检测到我特意编写的病毒的这家杀毒软件供应商确实采用了代码模拟。当它观察到我特意编写的病毒被放到系统上之后,它自动在其代码模拟环境中对其进行了执行并对其将要采取的行动进行了分析。由于这是一个病毒,它自然而然地需要编写注册表项、下载文件、隐藏文件等等,而杀毒软件则正确地将此行为认定为恶意行为。
不过,恶意软件作者是很聪明的,他们一直在适应新的检测策略。在遵循恶意软件创造过程的前提下,我接着开始琢磨如何让代码模拟器认为文件不是恶意的。
这一过程涉及了对杀毒软件客户端进行的一些琐碎的逆向工程。我不是说要对二进制进行拆解,也不是说要对内存进行查看,而是一个简单的真假实验和误差检测方法。该方法涉及在恶意软件中额外添加一些代码,以试图检测该恶意软件是否被模拟,并且如果是的话,让该恶意软件在做出任何可疑举动之前放弃行动。如果对模拟器的检测能够正常工作的话,杀毒软件客户端就不会将文件报告为恶意文件。如果检测失败的话,杀毒软件客户端就会将文件报告为恶意文件。
整个过程花了大概一个小时左右的时间,直到第一个成功的躲避策略被识别出来。在此过程中我了解到,这家杀毒软件供应商的代码模拟器在认定程序可以安全运行之前只愿意模拟有限数量的指令和时间。为了利用这一限制,我对测试恶意软件的代码进行了修改,从而让其在运行恶意代码之前运行一个由八万个指令组成的循环。由此一来,这个杀毒软件客户端就会耗费整个的时间限度尝试通过病毒顶端的一个忙碌循环,因而没有足够的时间到达真正具有恶意行为的代码行数。结果就是恶意软件没有被检测出来。
我只利用了一种检测方式来检测我特意编写的恶意软件是否是在一个模拟器中运行,不过我还知道至少六种绕过防护的独立方法。这七种技术使得恶意软件能够躲避杀毒软件供应商的检测。我不是说这些技术代表了突破研究或零日漏洞。事实上,这些技术以及成百上千的技术在近五年来恶意软件作者所使用的论坛中都有很好的记录。
我之所以进行这次研究,之所以要向大家展示这次研究,就是希望大家能够关注可能出现的最初附带损害。我发现,要想让任何已有或新出现的恶意软件变成当今市面上所有杀毒软件客户端都无法检测出的恶意软件是非常简单的事情。我希望这能够增强人们的意识,那就是杀毒软件不是万能的。尽管杀毒软件在防止恶意软件长期传播方面有着巨大价值,但它却无法保护网络免受即便是稍微聪明一点的恶意软件作者的攻击。
那么,当网络管理员发现他们多年以来依赖的工具并不能真正防止攻击者对他们的公司造成重大损害时,他们应当做些什么呢?首先,继续使用客户端杀毒软件。尽管杀毒软件不能检测到一个全新的病毒或一个精心设计的病毒变体,但杀毒软件是病毒出现几天后防止病毒大规模扩散的唯一一道防线。要考虑到损害控制,而不是损害预防。
实际上,对新出现威胁的最佳防御要在与将更多的高级解决方案叠加在一起。新出现的恶意软件检测方面的新创新能够在不使用签名的情况下对恶意软件进行检测。这意味着它们不需要事先知道威胁。与代码模拟最为相似但又比代码模拟更加强大、更难以躲避的是沙箱这一理念。沙箱解决方案的设计旨在一个逼真的客户端环境中对可疑文件进行执行。由此一来,恶意软件将无法将测试环境和真实用户目标区分开来。这使得沙箱能够更加准确地对可疑文件进行分析,从而观察它将在终端用户的系统上做些什么。此外,文件和URL信誉跟踪以及机器学习策略等解决方案将增添更多的效率。
此外,利用包含快速实时情报共享的产品也很重要,这样能够尽可能地缩短恶意软件发布和签名保护之间的时间。 云安全服务是关键。如果恶意软件作者不得不在杀毒软件供应商自己寄存的黑盒检测解决方案中对他们的恶意软件进行测试,那么他们在识别成功的躲避策略方面要变得困难的多。
通过将客户端杀毒软件、网络杀毒软件、沙箱、代码模拟以及声誉服务组合在一起,管理员能够构建一个更加强劲的防护策略。拥有一个强劲的反恶意软件解决方案可能真的能够阻止未来的定向恶意软件攻击。尽管如此,管理员还是要留心网络中的恶意软件检测率,以便对定向攻击进行早期识别和严密监控。如果一个攻击者真的是攻击某家公司,要想防止攻击者成功实施攻击,就不得不进行大量人工干预,而关键就在于要知道什么时候需要进行人工干预。
一切都还来得及,不过这场战争会一直打下去。如果我们希望在未来不被打败,那么我们就必须保持勤奋,根据威胁对我们的保护策略进行改进。而那些跟不上战争节奏的人们将一次又一次地遭受重创。
共2页: [1]2 下一页
责编:李玉琴
vsharing 微信扫一扫实时了解行业动态
portalart 微信扫一扫分享本文给好友
著作权声明:kaiyun体育官方人口 文章著作权分属kaiyun体育官方人口 、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
最新专题
网络安全热点透析

随着移动互联、大数据、云计算、物联网等技术的日益发展,在这些热点技术为个人生活带来便利的同时,也为企业发展..

数据安全医药行业解决方案

采用身份鉴别、访问控制、数据加密以及权限控制等多种安全防护技术手段,保障数据库中医药数据只能被合法用户合规..

    畅享
    首页
    返回
    顶部
    ×
    畅享IT
      信息化规划
      IT总包
      供应商选型
      IT监理
      开发维护外包
      评估维权
    客服电话
    400-698-9918
    Baidu
    map