漏洞利用情况
典型漏洞攻击事件监测举例
漏洞利用是攻击的常用手段,通过对漏洞攻击事件的监测可以掌握攻击者的技术特点,行为习惯, 进而可以对攻击者进行行为画像,为漏洞预警提供帮助,值得持续监测。本文重点关注 MS17-010 和 CVE-2019-0708 的攻击事件。
2017 年 4 月 Shadow Brokers 发布了针对 Windows 操作系统
以及其他服务器系统软件的多个高危 漏洞利用工具。同年 5 月 EternalBlue 工具被 WannaCry 勒索软件蠕虫利用,在全球范围大爆发,影响 了包括中国在内的多个国家 1。EternalBlue 相关的漏洞主要有 CVE-2017-0144、CVE-2017-0145 以及 CVE-2017-0147,对应 Microsoft 的安全公告 MS17-0102。之后又陆续发生多起与 MS17-010 有关的勒 索或挖矿木马攻击事件,WannaMine、PowerGhost、Satan 等众多恶意软件均利用了 MS17-010 进行 传播。根据绿盟威胁情报中心监测到的 2019 年实际攻击事件显示,利用 CVE-2017-0144 的攻击事件共 计 4919441 次,利用 CVE-2017-0145 的攻击事件共计 27276 次,利用 CVE-2017-0147 的攻击事件共 计 1567618 次,按月分布的情况如图 2.1 所示。我们可以看到在 2019 年中,利用这些漏洞的网络攻击 活动持续活跃在真实网络中。图 2.1 利用 ETERNALBLUE漏洞的攻击事件
2019 年 5 月,Microsoft 在当月的安全更新中,对一个新的 RDP漏洞 CVE-2019-0708[^1] 发布了警告, 该漏洞可以被用作蠕虫攻击,8 月又披露了两个类似的可用作蠕虫的漏洞 CVE-2019-1181/1182。随后 的 9 月针对 CVE-2019-0708 的可利用攻击脚本已被公开 [^2]。截止 2020 年 3 月,绿盟威胁情报中心监测 到相关攻击事件 87211 次,如图 2.2 所示。在漏洞刚披露的 5 月份,漏洞的时效性强,并非所有用户 都及时修复,漏洞利用价值高,高级攻击组织就会在网络中发起攻击,攻击事件出现了短暂的峰值。7 月份漏洞利用的代码被公开,更多黑产、脚本小子等攻击者开始使用,攻击事件再次呈现快速增长的趋势。 随着攻击事件的持续发生,越来越多的用户开始更新补丁,修复漏洞,针对该漏洞的攻击事件逐渐下降。
图 2.2 利用 CVE-2019-0708 漏洞的攻击事件
无论是开源软件还是闭源软件,一旦被攻击者抢先掌握漏洞的利用方式,并实现稳定的攻击工具, 将对相关的软硬件设备造成重大的危害,对用户形成威胁。为了避免类似事件的发生,需要厂商、安全 研究员携手共建安全生态。
实际攻击中常用到 Nday 漏洞
攻击者关注稳定、高效的漏洞利用技术,对漏洞的选择上追求易用性、时效性以及是否能获取目标 的控制权限的攻击能力。
根据绿盟威胁情报中心监测的安全事件
,本文整理出了从 2019 年 1 月至 2020 年 3 月与漏洞利用 相关的攻击事件,提取了漏洞利用比较高的 10 个漏洞信息,如表 2.1 所示。表 2.1 漏洞利用较高的 CVE信息
CVE-2002-2185 ACK-Flood拒绝服务攻击
CVE-2017-0144 Windows SMB 远程代码执行
漏洞 (Shadow Brokers EternalBlue) CVE-2017-12615 Apache Tomcat 远程代码执行漏洞CVE-2003-0486 phpBB viewtopic.php topic_id 远程 SQL注入攻击 CVE-2000-1209 MSSQL ‘sa’ 用户执行登录失败
CVE-2017-5638 Struts2 远程命令执行漏洞
CVE-2014-6271 GNU Bash 环境变量远程命令执行漏洞
CVE-2016-0800 OpenSSl SSLv2 弱加密通信方式易受 DROWN攻击 CVE-2017-9793 Apache Struts2 REST 插件拒绝服务漏洞
CVE-2014-0094 Apache Struts2 (CVE-2014-0094)(S2-020) 漏洞修补绕过
从日志中可以看到,攻击事件的发生不仅会用到近几年的漏洞,像 EternalBlue、Tomcat 远程代码 执行这样好用的 Nday 漏洞也是黑客手中的利器,一些历史悠久的 SQL注入、拒绝服务类型的漏洞,由 于攻击门槛低,效果显著,攻击者依然在大量使用,使用到的漏洞按年份分布情况如图 2.3 所示。
图 2.3 攻击事件使用到的漏洞按年分布
可以看到,即使是在 2019 年,10 年以上的高龄漏洞仍然占据了相当大的比例,说明互联网上依然 存在着大量长期未更新的软件和系统。攻击事件中使用的漏洞和具体的操作系统环境相关,如物理隔离 环境下的内网中,就可能存在没有及时更新补丁或版本的核心系统、数据库、系统和软件,攻击者一旦 进入内网就可以利用这些成熟的漏洞利用代码发起有效的攻击。
总体来说随着时间的推移,老的漏洞会被不断的修补,与此同时又有新的漏洞不断产生,攻防之间 的对抗将会一直持续。
漏洞发展趋势
浏览器漏洞种类复杂多样
浏览器作为用户访问互联网的媒介,为人们的工作、学习和生活带来了极大的便利。浏览器内部在 运行时包含了各种复杂的过程,比如 DOM树的解析、JavaScript 的动态执行、流媒体及协议的支持以 及扩展与插件的实现。关于浏览器的漏洞研究一直是安全研究员关注的主要方向,同时浏览器与用户交 互频繁的特点,也使其成为了攻击者的主要目标之一。主流浏览器的漏洞情况,如图 3.1 所示。
图 3.1 主流浏览器历年漏洞数量
主流的浏览器包括 Chrome、FireFox、Internet Explorer、Edge 以及 Safari,Web 端的漏洞主要类 型有通用跨站脚本攻击 (UXSS)和通用跨域漏洞;应用端的漏洞主要以内存破坏型漏洞为主,包含了缓 冲区溢出、释放后重用、双重释放、越界读写等。
2009 年之前,Internet Explorer 作为 Windows 操作系统默认浏览器,占全球浏览器市场的份额最高, 公布的漏洞数量也是最多的,此阶段的漏洞主要以 ActiveX控件和基于栈的缓冲区溢出为主,通过简单 暴力的超长字符串覆盖栈上保存的函数返回地址就可以控制程序的执行流程。为了提高内存数据的安全 性,Microsoft 在 Windows 7 及后续系统中加入了数据执行保护、栈保护和堆栈地址随机化等多种新的 安全机制,使得 2009 年后的一段时间内 Internet Explorer 漏洞呈现下降的趋势。
与此同时 Google 将 Chrome 浏览器的源代码开放,随着 Chrome 市场份额的增加,越来越多的安 全研究员将线转移过来,漏洞数量也随之增加。浏览器中对象众多且复杂,引起释放后重用 (UAF)类 型的漏洞大量出现,漏洞数量呈现上涨的趋势,Chrome 浏览器的漏洞数量也高居不下。
2013 年 Microsoft 启动 Mitigation Bypass Bounty 项目,对能绕过最新系统的防御措施的攻击技术, 提供最高 10 万美元的奖。此外, Google、Apple 等厂商也都推出漏洞悬赏计划,鼓研究人员挖掘 更多的产品漏洞,在这种利与名的双重驱动下,越界访问、释放后重用等新类型的漏洞一度呈现快速增 长的趋势。
2014 年后 Microsoft 引入堆隔离和延迟释放等新的安全防护机制,同时在新版本操作系统中支持控 制流保护,这些防护机制大大增加了漏洞利用难度和门槛。
2015 年 Microsoft 新发布了 Edge 浏览器,并作为 Windows 10 操作系统的默认浏览器,攻击者的 目标也渐渐从 Internet Explorer 转向 Edge 浏览器,Edge 浏览器的漏洞数量逐渐上升,Internet Explorer 的数量逐渐下降。近年来,各大浏览器为了提高网页的加载和 JavaScript 脚本的运行速度,大量使用 了即时编译 (Just-in-time) 系统,一时间 JIT 引擎成为攻击者主要的目标,大量因过度优化脚本代码导 致数组长度,对象类型等校验错误的类型混淆和数组越界漏洞出现。
浏览器的漏洞总量近年来虽然略有下降,但将其作为攻击的入口在实际利用中深得攻击者的关注。 根据绿盟威胁情报中心监测到的攻击事件,本文分析了应用软件漏洞利用分布,如图 3.2 所示,可以看 到浏览器漏洞在网络攻击中达到了 48.44% 的比例,用户需要加强防护,尽快淘汰历史版本,及时打补丁,
更新软件。
13.08% 其他
图 3.2 应用软件漏洞利用分布
2. 文档类型漏洞利用情况解析
通过对 APT攻击的研究发现,利用文件格式漏洞的鱼叉式钓鱼攻击已成为网络安全的主要威胁之一。 PDF、doc(x)、xls(x)、ppt(x) 等文件格式具有跨平台、应用范围广、用户基数大的特点,受到了攻击者 的持续关注,目标主机上的相应程序一旦存在安全漏洞就会被轻易攻破。本文统计了常见文档处理软件 的漏洞分布,如图 3.3 所示。
图 3.3 文档类型漏洞分布
Acrobat Reader 为载体的 PDF 漏洞数量共 1823 个,占据文档类型的 59.07%,PDF 文件格式复杂, 支持 Javascript 脚本的执行,可以通过 Javascript 调用函数触发漏洞;支持嵌入图片 /XML等外部文件, 可以利用 PDF 中的关键字、XFA(XML Forms Architecture) 结构等嵌入远程文档以实现信息泄漏。
PDF 漏洞数量在常用文档处理软件中最多,但在实际攻击场景中利用却并不常见,最近的在实际场 景中的漏洞利用要追溯到 2018 年 6 月的 CVE-2018-49901 Adobe Acrobat and Reader 堆内存越界访问 释放漏洞,主要原因如下:
- Adobe 公司在 PDF 阅读器软件上同时维护多条产品线。针对 PDF 格式文件阅读器的这一需求, Adobe 公司提供了 Adobe Acrobat 系列、Reader DC 系列以及已经停止维护的 Adobe Reader 系 列产品。根据 Adobe 官方网站的介绍,每种产品的功能略有不同。通过对具体产品的分析调试 可知,同一功能点在不同的产品中实现细节上会有些许差异。因此在其中一个产品上发现了漏洞, 有一定概率不会在另一个产品上出现。如果将上图的接近 60% 的漏洞数量拆分的话,也会发现 每种产品占比平均不到 20%,在正常范围内。更进一步说,即使在不同系列产品上发现了相同 功能点的同一漏洞,为了在多款产品上可以成功触发利用,就需要进行适配。不但增加了攻击 者的攻击成本,还会使最终的恶意文件体积臃肿,增加了被用户和防御工具发现的机会。另一 方面用户使用版本的多样性也降低了攻击成功的几率。
- Adobe 公司 PDF 阅读器自身防护的提高。2017 年 Adobe 公司在 Adobe Reader 10 中正式引入 了沙箱机制。通过引入该机制,可以有效地阻止恶意代码的执行,并阻止对用户系统的提权行为, 增加了攻击难度。
- PDF 漏洞利用方式套路化。针对 PDF 的漏洞利用目前主要的方式为在 PDF 文件中嵌入 Javascript 脚本,通过 Javascript 脚本实现沙箱绕过及后续攻击步骤。一方面攻击脚本呈现套 路化,有较为固定的模式,另一方面用户通常使用的 PDF 文件不会嵌入 Javascript 脚本。最终 导致对包含恶意 Javascript 脚本的 PDF 文件检测率较高。
虽然 PDF 的在野利用不多,但是由于其自身的应用广泛,功能丰富,同时可以嵌入 Javascript 脚 本的便利性等特点,针对 Adobe 公司 PDF 阅读器的漏洞利用成为了每年国际国内比赛上的一个重要项 目。
[^1]Office 相关的漏洞数量虽然比 PDF 格式的要少,但在实际攻击中备受黑客关注,大部分 APT组织 也会选择利用 Office 的高危漏洞进行攻击。从早些年的 ActiveX漏洞 CVE-2012-0158 到近些年新出的 OLE2Link对象逻辑漏洞 CVE-2017-0199、公式编辑器漏洞 CVE-2017-11882、EPS 脚本解析漏洞 CVE- 2017-0262 等,每一个漏洞的杀伤力都十分巨大。
早期 Office 漏洞主要发生在模块解析处理的过程中,随着 Microsoft 不断完善安全措施,对软件持 续更新,现在的 Office 漏洞已经转向了通过链接、嵌入对象加载其他有漏洞模块。从实际攻击的角度看, 由于 Windows 操作系统下,Microsoft 的 Office 系列办公软件的使用量占有绝对的优势,相比 PDF 而 言,攻击者在准备 Word、Excel、PowerPoint 等 Office 系列软件的漏洞利用文档时,只需考虑版本兼容, 不需过多考虑产品兼容,一个稳定的漏洞利用文档基本可以实现一个产品的全覆盖。同时从对实际攻击 事件的检测可以看到攻击者在 Office 漏洞利用中更加偏向成熟稳定的漏洞,以 CVE-2017-11882 公式编 辑器漏洞为主 123 。