Webブラウザで3Dグラフィックスの描画を実現する「WebGL」。すでにFirefoxやChromeに実装されているが、Microsoftが16日にTechNet Blogsにおいて、WebGL仕様にはセキュリティ上の欠陥があり、同社のSecurity Development Lifecycleの要求を満たす技術ではないという見解を示した。
今年5月にContext Information SecurityがWebGLの脆弱性を指摘する2つのレポートを公開した。WebGLには仕様と実装方法に問題があり、攻撃者がWebブラウザを通じて、ユーザーのコンピュータのGPUまたはグラフィックスドライバを攻撃するコードを実行させられるという。その結果、コンピュータの機能が奪われたり、ユーザーのデータやプライバシー、セキュリティが危険にさらされる可能性があると指摘した。
このContextのレポートを受けてMicrosoftが独自にWebGL仕様を調査した結果が、今回MSRC Engineeringチームが公開した「WebGL Considered Harmful」というレポートだ。その中で同チームは、3つの問題を指摘している。
1つは、WebGLのすべてのセキュリティが、OEMドライバを含むシステムの下層レベルに依存していること。一部のビデオカードやプラットフォームでは、ハードウエアの機能がWeb側につつぬけになってしまう。
2つめは、Webの利用体験を確保するためにサードパーティを放任しすぎていること。WebGLの脆弱性にはWebGL APIではなく、OEMやIHV(independent hardware vendor)によって持ち込まれたシステムコンポーネントに問題が存在するケースが見られる。問題のあるハードウエアコンフィギュレーションを拒否する実装方法が提案されたものの、既存の脆弱性を修正する方法になり得ていないのが現状だ。
3つめはDoS攻撃シナリオに対する不備。モダンなOSやグラフィックス基盤は攻撃者からのシェーダーやジオメトリを完全に遮断するようには設計されていないものの、ARB_robustnessやARB_robustness_2による対策が可能である。クライアントへのDoSは重度の脅威ではないとはいえ、Webサイトにシステムがフリーズまたは再起動させられる可能性を残しておくリスクは高い。
「WebGLは、修正が困難な脆弱性のソースになり得るとわれわれは考える。現在の形では、Microsoftがセキュリティの観点で承認できる技術ではない。この分野のソリューション提供が必要なことは十分に理解しているが、すべてにおいてセキュアな設計で、デフォルト状態で安全であり、セキュアに実装されるソリューションの実現がわれわれのゴールである」(MSRC Engineering)