对黑客而言,有什么能比在一个应用广泛的软件中不费吹灰之力发现漏洞更让人激动的了?
如今,在旧版Mac ESET杀毒软件中就发现了这样一个易被利用的高危漏洞,允许任何未经身份验证的攻击者运用Mac系统中的root特权远程执行任意代码。
漏洞描述
该漏洞的漏洞编号为CVE-2016-9892,是由谷歌安全团队的Jason Geffner和Jan Bee两位研究人员于2016年11月在为 macOS 系统设计的 ESET Endpoint Antivirus 6软件版本中发现。
ESET Endpoint Antivirus是ESET公司专为中小企业和集团企业客户开发的新一代防毒产品。本产品可根据风险数据库的比对结果,采用为安全文件设置白名单的扫描技术,以提升系统整体运行效能。 ESET Endpoint Antivirus 6存在远程代码执行漏洞,远程未经身份验证的攻击者可利用漏洞以易受攻击的客户端上的root身份执行任意代码执行。
据悉,攻击者可以通过中间人攻击方式来进行针对性的入侵,不仅拦截许可证书的数据传输,还能够让一台机器伪装成许可服务器进行虚假数据传输,后续的数据传输还可能包含有允许执行 Root 级代码的恶意 XML 包。
根据分析发现,该实际问题与一项名为“esets_daemon”且以root权限运行的服务有关。该服务静态连接一个旧版本的POCO XML解析库,存在漏洞的POCO 1.4.6p1版本发布于2013年3月。
该POCO版本是基于一套受CVE-2016-0718漏洞影响的Expat XML解析器库2.0.1版本。Expat拒绝服务及任意代码执行漏洞(CVE-2016-0718)允许攻击者通过经过设计的XML内容执行任意代码。
现在,当esets_daemon服务在ESET Endpoint Antivirus产品处于运行状态时向https://edf.eset.com/edf发送请求,中间人攻击者利用此项安全漏洞拦截该请求,并利用一份自签名的HTTPS证书交付恶意XML文件。
在此情况下,CVE-2016-0718就会被触发,最终导致esets_daemon解析该XML内容时引发恶意代码以root权限得到执行。这种攻击是可能的,因为在这种情况下,该杀毒软件将无法确保Web服务器的证书有效性,因此会导致安全问题。
以下为两名研究人员的解释:
脆弱版本的ESET Endpoint Antivirus 6静态连接一个过时的XML解析库,无法执行适当的服务器身份验证,能够允许远程未经身份验证的攻击者用客户端上的root身份执行任意代码执行。
现在,攻击者控制了连接,他们就可以发送恶意内容到Mac设备中劫持XML解析器和执行代码作为root。谷歌安全研究人员已经展示了概念验证代码(POC),但是它只显示了如何引发ESET反病毒应用崩溃。
后续修复
据了解,谷歌的研究人员发现这个漏洞以后,已经于 2016 年 11 月初提交给了 ESET,ESET公司则在 2 月 21 日发布的补丁中已经对该POCO解析库进行了升级,同时配置该产品以验证SSL证书,从而解决了此项安全漏洞。需要注意的是,所有安装了 ESET 软件的 Mac 电脑都有可能被该漏洞攻击,因此已经安装了 ESET Endpoint Antivirus 6 的 Mac 用户最好尽快升级至 6.4.168.0 版本。
据悉,这已经不是谷歌公司的研究人员第一次在ESET产品当中发现安全漏洞。早在2015年6月,谷歌安全专家Tavis Ormandy就发现该公司的Windows与OS X产品当中存在一项高危漏洞——“minifilter”,攻击者可以通过该漏洞执行远程访问。minifilter出现在ESET防病毒软件和安全应用的软件产品中,主要用于拦截和分析写入和读取HDD或者SSD的数据,如果数据是可执行的那么代码就会自动运行,同时minifilter还确保ESET的代码是否安全完整。