想象一下这种场景,公司IT部门打来电话说你的计算机已经被黑客攻破,你必须立即停下手头的一切工作。但你明明通过了公司的安全培训,并十分确定没有打开过任何可疑的邮件附件或点击过任何不良链接。你也知道自己的公司有严格的补丁策略,计算机上的软件都是最新版本。而且,你也不是那种会在工作时间访问非工作相关网站的员工。那么,这到底是怎么发生的呢?
防病毒产品中的严重漏洞
几天过后,公司雇来调查此事件的安全公司给出了一个意料之外的答案:黑客是利用了你电脑上安装的公司防病毒程序中的一个漏洞才得以进入的,而此程序本应保护你的电脑免遭黑客攻击。这个漏洞的触发条件十分简单,攻击者只需要给你发一封邮件,你甚至不需要打开它就中招了。
这一场景听起来似乎有点不大可能,其实不然。通过漏洞研究人员对以往防病毒程序的分析,发现此类攻击非常有可能发生,而且很可能已经发生过了。数年来,已经有一些研究人员试图警告人们终端防病毒产品中的关键漏洞是有多么容易被找到并利用。
近半年以来,研究人员已经发现并报告了数十个防病毒产品中的严重漏洞,涉及的厂商包括卡巴斯基实验室、ESET、Avast、AVG Technologies、英特尔安全(前迈克菲)和Malwarebytes。这些漏洞中的大多数都能让黑客远程执行恶意代码、滥用防病毒产品自身的功能、获取被攻破系统的更高权限,甚至让第三方应用的反漏洞利用防御俯首称臣。
其中某些漏洞甚至不需要用户互动就能被利用,还允许产生计算机蠕虫病毒(能自我复制传播的恶意程序)。很多情况下,攻击者只需要给潜在受害者发送精心编造的电子邮件,在他们经常访问的合法网站中注入恶意代码,或者将带有被感染文件的U盘插入他们的电脑即可。
即将到来的攻击
证据显示,针对防病毒产品的攻击,尤其是在企业环境下,是可行且很有可能的。一些研究人员认为此类攻击早已发生,虽然防病毒厂商可能由于受害者数量少而没有发觉。
各国政府的情报部门一直对防病毒产品漏洞很感兴趣。新闻网站“The Intercept ”6月报道称,英国政府通信总部(GCHQ)在2008年提交申请更新一份授权以便可以对卡巴斯基实验室的防病毒产品进行逆向以找寻弱点。该网站还报道称,根据前NSA承包商斯诺登的泄密,美国国家安全局(NSA)也大肆研究防病毒产品以规避它们的检测。
一个名为“面具”(The Mask)或Careto(西班牙语的mask)的网络间谍组织(可能是受国家支持的),也曾尝试利用卡巴斯基更早版本的防病毒产品中的漏洞来规避检测。在2014年2月该组织的行动被曝光前,超过30个国家的数百个政府和私营企业的电脑被该组织渗透。
除了上述利用防病毒产品漏洞规避检测的主要例子,还有对影响防病毒产品的远程代码执行漏洞利用的需求,这些漏洞利用代码经由专门的代理人在基本上不受监管的漏洞利用市场上销售。
意大利监视公司Hacking Team去年被泄露的邮件中,有一份文档记录了一家名为“漏洞经纪国际”( Vulnerabilities Brokerage International)的机构售卖的多种漏洞利用工具。该文档列出了多款防病毒产品各种不同的提权、信息披露和检测规避漏洞利用,还有一个被标记为“已售出”的ESET NOD32防病毒产品的远程代码执行漏洞利用。
安全研究公司IOActive前首席技术官,入侵检测厂商Vectra现任首席安全官冈特·奥尔曼称,针对防病毒产品的漏洞利用活动已经持续了十几年。有公司专门针对其客户感兴趣的防病毒产品进行逆向工程,这些公司还逆向现有恶意软件以劫持已经被感染的系统。
奥尔曼指出,中国某防病毒产品的远程可利用漏洞在美国和欧洲情报机构眼里价值好几万美元。
从国家行为者的角度,被检测到从事此类活动并不明智,所以目标一般都比较小,且控制严密。
如果美国和欧洲的情报机构对此类漏洞利用大感兴趣,没理由认为俄罗斯、中国和其他国家会对此缺少兴趣。事实上,一些国家的网络间谍组织已多次证明了他们在找寻流行应用程序已知漏洞并开发利用上的能力,将这些技能应用到防病毒产品上应该不成问题。甚至一些防病毒厂商也承认,尽管他们至今还没发现任何一起实例,但对防病毒产品的针对性攻击是有可能的。
卡巴斯基实验室在对2016年的预测中特别提到,对安全研究人员和安全厂商的攻击可能是信息安全界的未来趋势,但大范围攻击的可能性不大。防病毒厂商 Bitdefender则声称,针对终端安全程序的攻击“是绝对可能的”,但可能会是针对企业环境而非消费者。
渗透测试人员长期以来都对防病毒产品被利用的可能性保持警惕。一名在大型科技公司工作的安全研究人员表示,他的团队经常在渗透测试中尝试利用防病毒管理服务器中的漏洞,因为这些服务器拥有对终端系统的控制权限,能用于在公司内部网络中通行无阻。这位研究人员希望保持匿名,因为他的公司不允许他对此作出任何评论。
企业防病毒管理服务器的漏洞利用不仅在 Hacking Team 泄露事件中的漏洞交易货品清单中榜上有名,还能在公共漏洞利用数据库中找到。
防病毒厂商似乎对他们产品受到大范围攻击的可能性不以为然。他们的研究人员大多认为此类攻击目前不太可能,因为典型的网络犯罪团伙有着其它更容易的攻击目标,比如Flash播放器、Java、Silverlight、IE浏览器或者Adobe、微软Office软件等。
然而,这些普遍使用的应用软件在最近几年纷纷加固安全措施,而且随着越来越多的人升级到更新、防护更好的版本,攻击者们将被迫找寻新的目标。因此,未来针对数千万甚至上亿消费者使用的防病毒产品的攻击不能冒然排除在外,尤其是网络犯罪分子可能会像之前做过的那样,有时会借助于零日漏洞。
从目前来看,企业或机构还是比普通消费者面临着更大的防病毒产品漏洞风险,尤其是那些身处时常被网络间谍组织盯上的产业中的公司。
利用防病毒产品太容易
防病毒产品是人编写的,而只要是人就不可能不犯错。虽然期待此类程序完全没有漏洞是不可能的,但我们可以期望它们比其他类型的程序漏洞更少,更难以被利用。
一般情况下人们普遍认为,信息安全相关产业的公司会遵从安全编程指南,在他们的产品中具有反漏洞利用防御措施,并经常性地进行代码审计和漏洞测试。然而不幸的是,上述安全事项在防病毒的世界里似乎是罕见的。
防病毒程序要能够检查来自一系列源头的大量数据和文件类型:Web、电子邮件、本地文件系统、网络共享、USB接入的存储设备等等。它们还要有大量的组件实现分层防护:拦截网络流量的驱动,集成进浏览器和电子邮件客户端的插件,图形用户界面,执行基于签名、基于行为和基于云扫描的子系统防病毒引擎……
这就是安全研究人员所谓的超大攻击界面,意味着有大量潜在的漏洞代码供攻击者以各种方式进行研究。另外,当涉及到防病毒产品,其大部分代码都是以最高可能权限执行的,可这是安全研究人员应该尽可能避免的。
谷歌安全研究员塔维斯·奥曼迪在其9月发表的一篇漏洞分析中表示,“防病毒产品极大增加了对针对性攻击的暴露面,提供了一个很容易得手的攻击界面。因此,安全产品厂商有责任保持尽可能高的安全开发标准以最小化因他们的产品而引发的可能损害。”
近半年来,奥曼迪就发现并报告了超过25个防病毒产品漏洞,涵盖了ESET、卡巴斯基实验室、AVG和Avast。之前他还在守护使和微软产品中发现过漏洞。奥曼迪发现的很多漏洞都源于文件和数据解析操作,这种操作一直以来都是所有应用程序的漏洞来源。
“在未来,我们有可能看到防病毒脱壳器、模拟器和解析器都在沙盒中运行,不以系统权限执行。谷歌浏览器沙盒是开源的,且被多种主流产品使用。别再等着被网络蠕虫盯上你的产品了,也别再等着你的用户被人进行针对性攻击了,今天就在你的开发路线图中加上沙盒技术吧。”
知法犯法
防病毒产品中缺乏类似沙盒这种安全缓解技术,以及它们太多的组件都在系统权限下运行的事实,早在奥尔曼指出之前就已经有人提出警告。
2014年,一位名为乔斯因·柯罗特的安全研究员在14款防病毒产品及它们的引擎中发现了远程和本地可利用漏洞。据柯罗特所言,防病毒产业至少应该采用类似权限分离和沙盒之类的技术,但想要真正令防病毒产品安全,还需要采取更多的安全措施。
很多防病毒产品都对中间人攻击束手无策,因为它们没有采用e SSL/TLS通信,且它们下载的组件通常都没有经过签名。它们没有应用当代浏览器都有的反漏洞利用措施,也没有用仿真模拟来扫描可执行文件或使用内存安全的编程语言。
更糟的是,有证据显示,很多防病毒产品甚至没有对安全缺陷进行适当的审计。比如奥曼迪发现的那些漏洞就明显从未经过审计,因为这种漏洞只要审计的话,在第一轮评估中就很可能在一周之内被审计人员发现。
漏洞情报公司Risk Based Security(RBS)首席研究官卡斯滕·艾拉姆认为,防病毒厂商应该尽可能地以最小权限运行他们的产品,使用沙盒执行敏感功能,并尽力保证一个整体稳固安全的代码成熟度。
RBS的数据显示,自2010年1月1日起,大约有1773个安全软件和设备漏洞被提交,仅2015年就有372个,其中绝大多数可通过篡改输入进行利用。
按理来说,安全厂商应该遵守更高的安全编码标准,但现实情况却恰恰相反。基本的模糊测试(Fuzzing)就能在解析功能里发现一连串的漏洞,而解析功能一直都是极易造成漏洞的元凶,更甚者解析功能竟然是在系统权限下运行。
沙盒的问题
防病毒厂商觉得沙盒技术在防病毒产品中不适用,大多是因为它可能会影响性能。有些厂商宣称他们采取了其他步骤,比如降低权限,进行定期安全评估,开发与沙盒技术同样效果的其他技术等。
赛门铁克正试图减小其产品和服务的攻击界面。该公司称,其所采用的方法是将其安全组件以尽可能低的权限执行以减小成功攻击的可能性。
卡巴斯基实验室则称,有效解决漏洞问题远非只采用一种技术那么简单。该公司采用了多种它认为可以提供最佳客户防护的技术。比如说,采用机器学习算法有效利用起它所采集到的大量安全情报和知识。
‘沙盒’方法除了众所周知的简单性,还有很多严重不足,影响到程序性能、效率和兼容性。
英特尔安全即迈克菲则表示,一旦该得知潜在的问题,将立即对其有效性、属性和严重性进行调查,并着手开发相应的修复程序。
没人认为防病毒厂商在发现漏洞时修复不够快。事实上,其中一些厂商拥有令人惊讶的响应时间,他们的产品也被默认配置为自动更新。但问题在于此类产品中一开始就存在的漏洞数量和类型。
赛门铁克和英特尔安全都拒绝回答关于沙盒技术、针对防病毒产品攻击的可能性、此类产品检测针对性攻击的有效性、或其他安全研究人员提出批评等具体问题。
防病毒厂商Bitdefender称,类似谷歌提供的沙盒并不是安全产品中可行的工程解决方案。因为反恶意软件解决方案必须能够每秒拦截过滤上千个系统事件,沙盒机制将给系统带来很严重的性能影响,或许会比操作系统厂商所能忍受的影响更大。
该公司宣称其大部分产品组件,比如反恶意软件引擎和主动威胁控制子系统,都已经只在登录用户的权限下运行,并正使用交换过程限制以系统权限运行的组件数量,甚至在针对个人消费的产品中也是这么做的。
Bitdefender开发了名为重力区域(Gravity Zone)的解决方案,允许管理员在网络中另一台主机上而不是在终端本身上运行扫描服务。最近他们还引入了基于虚拟机管理程序的内存反思(HVMI)技术,通过在操作系统外部的1型虚拟机管理程序中部署来完全隔离反恶意软件解决方案。
这种隔离将反恶意软件引擎与在用户环境下运行的rootkit或漏洞利用完全分离开来。
风险vs回报
防病毒产品带来的巨大而简单的攻击界面以及针对性攻击的可能性,引发了对于是否值得在某些企业环境中安装此类程序的疑问。
当面对复杂而精心设计的恶意软件程序,比如网络间谍组织的APT攻击,终端防病毒产品是否有效是值得怀疑的。一些安全研究人员认为,与面对的风险相比,回报几乎可忽略不计,尤其是对那些容易被APT攻击者盯上的公司而言。因此,也许防病毒产品只适合于非常小的公司和家庭用户。
无论防病毒程序如何标榜自己的功能强大和酷炫,它也不能检测出未知威胁,而规避防病毒检测对大多数恶意软件开发者而言都是小菜一碟,他们通常都会在发布恶意代码前进行多种防病毒软件的检测。终端防病毒产品的批评者则认为,越来越内置于操作系统的安全防护措施最终将使防病毒产品过时淘汰。
事实上,一些防病毒厂商不得不暗中破坏操作系统内置的安全机制以使他们的产品能够顺利运行。比如最近刚曝光的一起事件,就是一个活生生的例子。
以色列数据防泄漏公司enSilo报告了一个在英特尔安全、卡巴斯基实验室和AVG产品中发现的漏洞,此漏洞可关闭为其他应用程序设计的基于操作系统的反漏洞利用保护措施。
enSilo研究人员在技术文档中描述,这些防病毒产品为属于Adobe阅读器和网页浏览器等应用程序的用户进程分配了一个具有可读可写可执行权限的内存页面,这一行为可帮助攻击者击溃为第三方应用程序而设的Windows漏洞利用缓解机制,比如地址空间布局随机化(ASLR)和数据执行保护(DEP),让攻击者更加容易地利用在这些程序中发现的漏洞。
如何选择防病毒产品
终端防病毒程序可以在很大的程度上减少已知威胁,但其安全性也同时取决于这些威胁发生的可能性和防病毒产品本身的整体安全性。
人们应该慎重考虑什么安全软件适合他们的环境,尤其是什么功能才是他们真正需要启用的。企业购买防病毒产品的时候,应该核查候选厂商的安全记录,查看他们处理影响自身产品漏洞的反应速度,以及这些漏洞的类型和严重性。不能因为觉得这是安全软件就放松警惕,“安全软件不安全”并非危言耸听。
对恶意软件的复杂性永远不能低估,但同时也不能说防病毒产品就是无效的。在开发出全面检测高级威胁和瞄准企业的针对性攻击的综合性策略之前,可以过滤和封锁普通恶意软件的传统杀毒软件也不可或缺。减少企业和个人数据被窃风险的唯一方法,就是综合了传统防病毒软件和下一代防护工具、情报共享、安全服务、IT专业人员培训和对硬软件的定期安全评估的多层策略。
不可否认,确实有防病毒产品漏报恶意软件样本的案例,但与每时每刻都在大量涌现的恶意程序相比,漏报只是小概率事件。防病毒软件还是担当着过滤大部分恶意软件的责任,也就是基于已知漏洞或已知恶意软件样本的过滤,然后再用安全意识程序之类的反恶意软件解决方案来补足。
一种在高风险环境中可以替代防病毒程序的技术是应用程序白名单,这种技术只允许预先批准的应用程序在电脑上运行。美国国家标准与技术研究院(NIST)最近提倡使用这种在某些操作系统里默认可用的防护机制,甚至发布了一份带推荐操作实践的指南。
网络边界防护在保护企业环境免受内部和外部威胁方面也十分重要,比如说可以阻止数据渗漏尝试。然而,用户不应该假设网络级安全设备就没有漏洞。事实上,安全研究人员这些年里也在此类产品中发现了大量缺陷,在无监管的漏洞利用市场上也有此类漏洞的利用代码在售。
,