导语:McAfee Advanced Threat Research团队带领我们深入了解Flash开发的历史和未来趋势,通过数据讲述为什么尽管Adobe在2020年将停止开发Flash,而Flash仍将继续吸引攻击者。
McAfee Advanced Threat Research团队分析人员多年来一直在研究Adobe Flash Player,因为它是受攻击的热门目标。与往常一样,我们建议客户随时关注McAfee最新的DAT版本。在这篇文章中,我们想深入了解Flash开发的历史和未来趋势。
Morphisec发布了一个新的Flash漏洞CVE-2018-4878,此漏洞在野外已被利用。McAfee Labs的Hardik Shah在3月2日发布了CVE-2018-4878机制的技术分析:
由于Adobe推出了各种加强Flash安全性的措施,Flash Player漏洞利用的数量最近有所下降。然而,有时候,还是会出现漏洞。1月31日,Kr-Cert报告了一个零日漏洞,被确定为CVE-2018-4878,已被利用。(Adobe发布了一个更新来修复这个漏洞。)
本文将回顾自2006年发布Flash的第一个通用漏洞(CVE)以来,Flash的漏洞历史。通过这些数据,使用Flash的用户和网站所有者可以更好地理解Flash漏洞,以及为什么尽管Adobe在2020年将停止开发Flash,而Flash仍将继续吸引攻击者。
我们查阅了有关Flash漏洞的历史数据,也考虑了Flash的当前安装和使用情况。通过分析,我们认为,尽管Adobe宣布Flash的使用寿命即将到来,但即使有的网站使用了其他技术,也免不了许多网站仍将继续使用并依赖于Flash。(请参阅下面的示例站点列表。)故此,Flash在不久的将来继续为攻击者提供可利用的漏洞集。
以下图表使用CVE数据,虽然并非所有可被利用和已被利用的漏洞都会收录到CVE,但通过安全研究发现或报告主要软件供应商产品的大多数漏洞最终都会获得一个CVE编号,并将其发布到Mitre保存的CVE数据库中。因此,CVE提供了一个方便的漏洞数据库来帮助研究。
在整个数据库中搜索Flash Player或Adobe Flash Player,返回2006-2017年度的1,050个CVE。
在2006年和2014年之间,报告的漏洞数量稳步增加,然后在2015年和2016年我们看到了大幅度增长。在1,050个漏洞中,大约79%(830)为攻击者提供了某种代码执行能力,但并非830中的每一个漏洞都允许远程代码执行。尽管如此,攻击者仍然可以通过运行代码获益。 McAfee Labs分析显示,CVE-2018-4878是远程代码执行的另一个例子,通常会导致完全沦陷。这一点表明,Flash漏洞仍将是一个重要目标。
数据源CVE Details 提供了如下Flash CVE漏洞分布:
从2015年到2017年,81%的漏洞导致了这种或那种形式的代码执行。
CVE Details 还采用CVSS(Common Vulnerability Scoring System scores) 为Flash漏洞评分。2015-2017年的许多漏洞得分高于9分,这被认为是严重的。
· 2015年:294个漏洞≥9
· 2016年:224个漏洞≥9
· 2017:60个漏洞≥9
这些严重漏洞的分数,进一步突出了为什么攻击者仍然有兴趣利用Flash漏洞;因为它们为攻击者提供了重要的攻击价值。看看漏洞的历史分布,2015年达到了一个高峰,然后峰值下降。在2014年下半年,Adobe改变了软件安全战略。
Adobe公司首席安全官Brad Arkin在2014年10月的一次会议上说:“找到并修复漏洞并不是要走的路,它让…… [攻击者]取得成功变得更加困难和昂贵。”他敦促组织停止修补每一个漏洞,而是增加开发成本来挫败攻击者。 “坏人并不愚蠢,”他补充道。 “他们将以尽可能高的成本效益应用资源,所以会尽量减少利用漏洞的成本。”
Adobe在软件安全战略方面的转变使利用问题变得过于昂贵,以至于攻击者会挖掘更容易、更少资源密集型以及更可靠的方法。正如标准的安全开发生命周期技术试图阻止新的漏洞被发现一样,Adobe的方法并非追逐每一个漏洞,而是专注于构建漏洞的防御技术。
软件开发很少会立即生效,尤其是在大规模的情况下。战略转变和结果之间通常存在滞后(通常是一到两年)。无论如何,要消除的第一个问题往往是最容易解决的。随着该计划的有效性提高,资源可用于解决更棘手的问题。
Brad Arkin谈到了2014年秋季的战略转变。我们预计这种转变需要时间,这就是在数据中看到的情况:2016年,新发现的漏洞数量开始下降。但是,2015年和2016年的漏洞急剧增加还需要做进一步的考察。
当安全研究人员专注于代码库时,他们通常找到的是最容易发现的问题。当这些问题被发现并修复后,研究人员会更深入的探究,转向那些增加难度的技术。由于难度越来越大,我们经常看到发现的漏洞在减少;而发现棘手的问题需要更多的时间和精力。
将发现漏洞难度的增加与软件安全计划效率的提高结合起来,我们发现了一个类似于从2015年到2017年的Flash CVE报告中看到的分布。直到2015年发现,攻击者利用相对容易找到的跨站点脚本漏洞,但它们在2014年之后基本消失。然而突然间,在2015年难以发现的内存漏洞和代码执行方面有了巨大的提升。CVE数字的飞跃反映了更多技术上具有挑战性的问题,就像Adobe的软件战略正在转变一样。
新战略到2015年还没有完全有效。另外,Flash与所有复杂的软件一样,携带大量遗留代码。就在研究人员深入挖掘代码基础时,Adobe的软件安全变更不仅需要追踪漏洞修复程序,还需要生成保护性代码和设计,所有这些都需要时间来实施。这种典型的情况解释了2015年新型严重漏洞的涌入以及随后的持续减少。
尽管如此,没有任何单一或安全技术的集合是完美的。在2017年,Flash标记了70个新漏洞。到2018年为止,已经发现了三个。最新的CVE-2018-4878在技术上具有挑战性,似乎处于Adobe为防止这些内存结构被滥用而放置在字节数组内的保护范围之内。迈克菲的Hardik Shah在“黑客如何绕过Adobe Flash保护机制”一文中写道:
[CVE-2018-4878]绕过了为防止Flash中的”长度破坏“攻击而引入的字节数组缓解功能。
在编写任何其他代码时,实施软件保护时无意中添加利用机会是可能的。在2017年和2018年发现的73个漏洞中,没有任何方法可以在没有跟踪代码变化的情况下知道每个漏洞何时引入。其中一些可能出现在从早期版本转入的代码中,也就是从传统代码中产生。软件开发者有一个约定俗成,即在每个新版本中重复使用尽可能多的代码。这比较便宜,因为它节省了时间。
在Flash(超过10年)历史的产品中,其一些代码是针对不同的威胁环境编写的,而不是针对当今的攻击者以及更复杂的工具和技术。我们有理由怀疑过去两年中新发现问题的很大一部分代码已出现在最新版本中。这些漏洞与最新的漏洞CVE-2018-4878形成对比,CVE-2018-4878绕过并滥用Adobe在战略转移后可能实施的保护措施。CVE-2018-4878滥用的代码旨在使字节数组的开发“更加昂贵”。
为了衡量Flash的普及程度,我们调阅了Q-Success的W3Techs网络调查数据。下表显示了四种客户端语言的使用情况,Flash自2011年以来一直稳步下降。另一方面,JavaScript今天几乎无处不在,达到95%。这两种主要语言都绘制在表格后面的图表中。
网站使用客户端编程语言的年度趋势
网站客户端编程语言的使用情况(占网站的百分比)
图表数据截至2018年3月8日,表格和图表来源:©2009-2018 Q-Success DI Gelbmann GmbH。
根据W3Techs的数据,我们可以看到Flash的使用量稳步下降,仅为接受调查的网站的5%。这意味着Flash的利用率也会下降甚至停止吗?不幸的是,事实并非如此。
下面W3Techs图表显示,尽管使用Flash的网站数量相当少,但只要有高流量的网站使用它,就能保证Flash的流行。
高流量网站仍在使用Adobe Flash
来源:PublicWWW
如果受欢迎的网站继续使用Flash,则Flash Player将在用户的计算机上保留一段时间。Adobe承诺将继续支持Flash Player,直到2020年底。不幸的是,这意味着不再增加软件更新,功能和补丁;而它并没有有效地改变Flash的整体使用。只有网站不再需要Flash,才会真正消除漏洞。
高度针对性的攻击仅需攻陷一台能访问组织基础架构的计算机即可达成战略目标。这台计算机可能运行未打补丁或过时的Flash。
随着Flash的使用下降,客户端JavaScript已成为事实上的浏览器编程语言。然而,JavaScript的接管不能完全解决问题,因为它可以提供Flash payload。尽管我们分析的一些Flash漏洞可以被远程利用,但许多并不能。攻击者通常需要受害者进行一些交互才能成功利用Flash漏洞。为此,JavaScript已经成为一种日益普遍的传播机制。
DIY: 集成为一个工具包
对于攻击者来说更重要的是可以在许多漏洞工具包中轻松获得Flash漏洞。工具包打包了所有必需的代码,以执行一系列已知的漏洞。在工具包中获得随时可用的漏洞意味着攻击者的努力要少得多。工具包也降低了技术条件。攻击者无需了解漏洞如何工作;他们可以在不知道技术细节的情况下简单地利用工具包即可。
McAfee Advanced Threat Research团队的Tim Hux表示,老的Flash漏洞利用以及CVE-2018-4878等新漏洞仍然可用。Bizarro Sundown(又名GreenFlash)和ThreadKit漏洞利用工具包上个月将此新漏洞利用添加到他们的列表中。他说, “Rig and Magnitude开发工具包本月将这个漏洞添加到了他们的武器库中。”
添加新的漏洞并不意味着老漏洞不再可用,利用工具包是添加型的。2014年出现的Rig包含以下Flash漏洞利用:
CVE-2013-0634 CVE-2015-3113 CVE-2014-0497 CVE-2015-5119 CVE-2014-0515 CVE-2015-5122 CVE-2014-0569 CVE-2015-7645 CVE-2015-0311 CVE-2016-1019 CVE-2015-0359 CVE-2016-4117 CVE-2015-3090
旧的漏洞不会消失,它们不经常使用是因为软件打了补丁。如果攻击者发现使用中的Flash存在有漏洞的版本,则就会利用该漏洞。
总结
证明软件没有错误是困难的,甚至是不可能的。正如著名计算机科学家Edsger Dijkstra所说:“测试显示了存在,而不是缺少错误。”(Software Engineering Techniques,北约科学委员会)换句话说,即使在发布之前已通过一系列安全测试的软件仍可能包含可利用的漏洞。
根据我们对Flash CVEs与Flash持续使用(尤其是在高流量站点)之间关系的分析,McAfee Advanced Threat Research团队认为,Flash漏洞将继续为攻击者提供一种达到恶意目的的手段。然而,Adobe在安全战略方面的转变是减少新发现问题的一个很好的步骤。
近期利用Flash Player漏洞的攻击行动
CVE-2018-4878: Currently being exploited in a massive spam mail campaign.
· https://www.mcafee.com/threat-center/threat-landscape-dashboard/Vulnerabilities/cve20184878.html
CVE-2017-11292: Black Oasis Advanced Persistent Threat
· https://threatpost.com/adobe-patches-flash-zero-day-exploited-by-black-oasis-apt/128467/
CVE-2016-4117: Hidden Cobra APT/CryptXXX Ransomware/Erebus APT
· https://www.mcafee.com/threat-center/threat-landscape-dashboard/Vulnerabilities/cve20164117.html
· http://securityaffairs.co/wordpress/48415/cyber-crime/scarcruft-apt.html
CVE-2016-1019: Cerber and Locky ransomware/Hidden Cobra APT
· https://www.mcafee.com/threat-center/threat-landscape-dashboard/Vulnerabilities/749.html
· https://www.proofpoint.com/us/threat-insight/post/killing-zero-day-in-the-egg
CVE-2015-3133: CryptoWall Ransomware
· https://www.mcafee.com/threat-center/threat-landscape-dashboard/Vulnerabilities/786.html
· https://www.mcafee.com/threat-center/threat-landscape-dashboard/Ransomware/58.html
· https://nakedsecurity.sophos.com/2015/06/29/latest-flash-hole-already-exploited-ransomware/
CVE-2015-0311: TeslaCrypt and FessLeak Ransomware
· https://www.mcafee.com/threat-center/threat-landscape-dashboard/Vulnerabilities/804.html
· http://malware.dontneedcoffee.com/2015/01/cve-2015-0311-flash-up-to-1600287.html
CVE-2014-8439: Cerber Ransomware
· https://www.mcafee.com/threat-center/threat-landscape-dashboard/Vulnerabilities/cve20148439.html
· https://www.f-secure.com/weblog/archives/00002768.html
CVE-2015-7645: Cerber and Alpha Crypt Ransomware
· https://www.mcafee.com/threat-center/threat-landscape-dashboard/Vulnerabilities/883.html
· http://malware.dontneedcoffee.com/2015/10/cve-2015-7645.html