当产品的某个功能可能引发安全副作用的时候,如何界定这是漏洞还是产品特性是一件非常棘手的事情。
这是一场持续了几十年的争论。
2022 年,在这样的争论面前,一代“霸主”竟选择了让安全妥协。
2021 年 3 月,一家名为 Positive Security 的安全公司向微软提交了漏洞报告。
报告中介绍了他们利用“ms-officecmd:” URI 参数注入问题,在微软云会议软件 Teams 中实现 1-click 远程命令执行的过程。
“ms-officecmd:” URI 本来是为方便用户通过点击链接就可以启动不同微软 Office 应用而设计的。
由于微软 Office 组件的复杂性,这个 URI 需要传递非常复杂的参数。
在具体的“ms-officecmd:” URI 处理函数中,会根据参数,生成、拼接和执行相应的 shell 命令。
在这个过程中,对 URI 参数的处理不当,就很容易产生命令注入等类型的远程代码执行问题。
抛开微软与 Positive Security 就这个漏洞奖金额度产生的争论不提,Positive Security 提到了一个非常严重的攻击面:Windows 平台上大量不同 URI 的处理接口。
这个工作启发了很多后续研究。
2022 年 3 月,有研究人员在 blog 里,提到了利用“ms-msdt:” URI 执行恶意程序的技巧。
这里的 msdt 是“Microsoft Support Diagnostic Tool”的缩写,是 Windows 系统上一个用于生成诊断报告的服务。
这个攻击技巧甚至可以追溯到 2020 年的一篇本科学位论文里。
2022 年 4 月 12 日,有人向微软提交了一个在俄罗斯捕获的在野利用。
在一个伪装成采访邀请函的文档里,使用了“ms-msdt:” URI 实现攻击。
出人意料的是,4 月 21 日,微软回复称这不是一个安全问题。
5 月,越来越多的在野样本被发现。
例如,白俄罗斯也发现了类似的恶意文档,使用 ms-msdt: 执行 PowerShell 代码。
随着 Virustotal 上的样本被公开,越来越多的安全研究人员注意到了这些在野攻击。
最终,英国的一个研究人员 Kevin Beaumont 意识到,这是一个 0-day 攻击。
因为在禁用宏的、最新的 Office 版本里,依然能重现这个攻击!
他把这个漏洞命名为 Follina,通过社交媒体分享了细节。
在大量的在野样本面前,微软不得不认可这是一个安全问题,分配了漏洞编号 CVE-2022–30190,紧急发布 blog 向业界预警 。
可惜,在这个时间窗口期,微软没有提供补丁。
研究人员随后发现更多的投递“ms-msdt:” URI 的途径,这使得 Follina 顷刻成为了“最受欢迎”的漏洞。
直到 6 月 14 日,微软在其例行的更新发布日“Patch Tuesday”才修复了 CVE-2022–30190。
这距离最初的漏洞报告提交时间,已经过去了 15 个月。
这个最“难”修复的漏洞,并不是因为漏洞的成因有多复杂,修复的技术难度有多大,而是因为在安全与功能的争论面前,微软选择让安全妥协。
《我们过去一年从黑客/漏洞学到的》,这个出自微软的简明扼要的固定演讲主题,曾经在 00-10 年代的各大安全会议上广受欢迎。从最初对黑客充满敌意,到走近黑客社区、招募优秀黑客加盟,再到成立最早的安全响应中心、发起最早的漏洞情报分享计划等等,微软从零起步做到曾经的业界安全标杆,言传身教,影响了后来的几乎整个 IT 行业。
然而作为曾经的标杆,微软在此次事件上对漏洞修复的态度和策略却如此不堪;加上最新的微软营收数据显示,微软安全已经成为事实上的全球安全行业霸主,难怪有人质疑:
“微软是在靠自家产品的安全漏洞来攫取财务收益……微软公司一方面是在传播漏洞并托管恶意软件,另一方面又收费‘保护’用户免受这些漏洞和威胁的侵害。”
安全向功能和特性妥协,向兼容性妥协,向可用性妥协,还得向 timeline 妥协。
当安全一而再、再而三地妥协之后,还有安全可言吗?
参 考:
越狱社区过往的活跃,给越狱发烧友造成了一种错觉:越狱工具总是会有的。
然而,2022 年,当 iOS 16 发布面世时,针对 iPhone Xs 及以后型号上 iOS 15 的公开越狱工具却仍未出现,直到一个月后 Fugu 15 的发布。
这样的姗姗来迟,是一种偶然吗?
请关注《深蓝洞察 | 2022 年度十大安全漏洞与利用》第三篇:
扫码进 DarkNavy 官方交流群
你的洞见 群里见