WebGL Considered Harmful
Khronos Group的WebGL技术是一种跨平台、低层次的Web 3D图形API。近期,Context信息安全公司发布了两份批评WebGL技术的报告:《WebGL——浏览器利用的新维度》和《WebGL——更多WebGL安全缺陷》。
MSRC工程部门的职能之一是分析各种技术,以了解它们可能如何影响微软产品和客户。作为这一职责的一部分,我们近期研究了WebGL。我们的分析使我们得出结论:支持WebGL的微软产品难以满足微软安全开发生命周期的要求。主要担忧包括:
浏览器对WebGL的支持以过度宽松的方式直接向Web暴露硬件功能
WebGL的整体安全性依赖于系统底层,包括OEM驱动程序,这些组件此前从未需要担心安全保证。以往可能导致本地权限提升的攻击,现在可能导致远程入侵。虽然可能在一定程度上减轻这些风险,但WebGL暴露的大规模攻击面仍然令人担忧。我们预计会出现仅存在于特定平台或特定显卡的漏洞,可能助长定向攻击。
浏览器对WebGL安全维护的责任过于依赖第三方来保障Web体验
随着WebGL漏洞的发现,它们并不总是表现在WebGL API本身。问题可能存在于IHV提供的各种OEM和系统组件中。尽管有人建议WebGL实现可以阻止使用受影响的硬件配置,但这一策略似乎尚未成功用于解决现有漏洞。
我们相信,随着配置被阻止,客户中断可能会不断增加。如果没有高效的显卡驱动程序安全维护模型(例如Windows Update),用户可能会选择覆盖保护以在其硬件上使用WebGL,或者在易受攻击的配置未被正确禁用时保持不安全状态。用户不习惯确保他们拥有最新的显卡驱动程序,而这正是获得安全Web体验所必需的。在某些情况下,当OEM图形产品随PC一起提供时,零售驱动程序被阻止安装。OEM通常每年只更新一次驱动程序,这一现实与安全更新过程的需求不符。
有问题的系统拒绝服务(DoS)场景
现代操作系统和图形基础设施从未设计为完全防御攻击者提供的着色器和几何图形。尽管诸如ARB_robustness和即将推出的ARB_robustness_2等缓解措施可能有所帮助,但它们尚未证明能够全面应对DoS威胁。虽然传统上客户端DoS不是高严重性威胁,但如果这个问题未得到全面解决,任何网站都将能够随意冻结或重启系统。这对一些重要使用场景(如关键基础设施)来说是一个问题。
我们相信WebGL很可能成为持续难以修复的漏洞来源。就其当前形式而言,WebGL不是微软从安全角度可以认可的技术。
我们认识到需要在这一领域提供解决方案,但我们的目标是所有此类解决方案在设计上安全、默认安全且在部署中安全。
- MSRC工程部门