パスワードを忘れた? アカウント作成
325022 story
セキュリティ

「WebGL」にセキュリティ問題、規格自体の大規模な修正が必要に? 32

ストーリー by hylom
普及する前で良かったというかなんというか 部門より

あるAnonymous Coward 曰く、

Webブラウザ向けの3Dグラフィック描画規格「WebGL」に、深刻なセキュリティ問題があるとの指摘が公表された(ITmedia)。

「任意のコード実行、サービス妨害(DoS)、クロスドメイン攻撃などに利用される恐れがある」とのことで、WebGLが有効になっているFirefox 4やGoogle ChromeなどではWebGLを無効にすることを勧告している。

詳細についてはMono関連の開発者でもあるatsushieno氏のはてなダイアリー「WebGLの(実質的に)仕様上の脆弱性について(日本語訳)」にて紹介されているが、WebGL経由でGPUに悪意のあるコードを実行させられる可能性がある、というものだ。たとえば、非常に負荷の高いレンダリングを行うことによるGPU(やドライバなど)のクラッシュや、クロスドメインの画像読み取りなどが可能になるという。

これらはWebGLの仕様に含まれる問題であるため、対策は難しいようだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 実証コード (スコア:3, 興味深い)

    by edvakf (36600) on 2011年05月12日 18時50分 (#1951179)

    クロスドメインの画像を盗むほうの Proof of Concept
    http://www.contextis.co.uk/resources/blog/webgl/poc/index.html [contextis.co.uk]
    数ピクセルまとめて明暗を読み取っています。このサイズの画像で解析完了するまでに数分。

  • by s02222 (20350) on 2011年05月12日 18時54分 (#1951182)
    具体的に仕様上の特定のここが危ない、って話ではないのか。出来ることが増えたけど、増えた部分のセキュリティはどうなってんのよ? みたいな。

    変な例えだけど、圧縮された画像を展開するライブラリを下手に作ると、 「ある種の細工が施された偽JPEGファイル」を読み込ませたら任意のコードが実行されてしまうようなバグを盛り込んじゃうこともあり得る (実際に、解凍ソフトやTrueTypeのレンダリングエンジンにバッファオーバーランの脆弱性が見つかった例とかもある)。 もちろん、ブラウザにはそんな下手なライブラリは採用されない。 どんなに悪意を持ったページを開いても安全、と保証するためには、 正しい物から間違った物までどんなデータを食わせても、変なことが起こらないというのを徹底的にチェックする必要があるし、(多分)されている。

    WebGLでは画像データに加えて、「3次元のジオメトリデータ」をWebページ上に配置すれば、 ブラウザはそれをGPUのアクセラレーションを最大限使って画面に表示してくれる。 この「GPUのアクセラレーションを最大限使って」というのが、上の画像の例での画像表示ライブラリの部分に当たる。 つまり、GPUのアクセラレーションの部分が、ブラウザ並みにセキュアでバグ無しになってないと困るけど現状はまだまだバグらだけ・・・と言うのが大きな問題。

    GPUメーカーは、高速化には熱心でも、「どんなデータを食わせても安全」という方向性のセキュリティ確保には熱心では無い。 何せ今までは悪意を持って細工されたデータを食わされる可能性は考える必要が無かったから。 どっちかというと、データの方は、どんなGPUでも動くようにとゲームメーカーが誠心誠意、丁寧に調整してくれてたような世界。

    あと、仮にバグが完全に無くなっても、GPU内部でプログラムを動かせるという仕様上DoS攻撃にも使えてしまうやら、クロスサイトで画像の中身を取得する攻撃に使えるやらと、セキュリティを今まで考えていた水準に戻すのは大変、という話っぽい。

    とりあえずは完全にOFFにするか、「WebGLを検出しました。ONにしますか?」とか「このサイトからのWebGLを常に信用する」みたいな昔ながらの対処しか無いんじゃ無いかな。
    • by Anonymous Coward

      なんかGPUとか洋ゲーは今動いてればそれでよしって感が強いよね
      ローカルでチートとか使って遊んでるとゲームエンジンの仕様の範囲内のはずなのに表示がメチャクチャになったり
      異常系のテストしてないっていうのかな

      • ゲームなんて、当たり判定用の設定や
        カメラのパラメータがほんの少し狂うだけで未定義の世界へようこそ状態ですよ…

        おかしな絵が見える所が残ってないか、
        角度を変えながらひたすらキャラに体当たりさせたり
        右スティックぐるんぐるん振り回したりして自分が飽きて死にそうになる事はあっても
        絵が崩壊したときに実際どんな現象が起きるかなんてのはどうでもいい事なのです。

        # ゲームエンジンの仕様とチートで何してるかわからんから適当だけど

    • by Anonymous Coward

      もうひとつ「CPUでレンダリングする」という手もありますよ。
      最近のCPUでならそう非現実的な話でもないでしょう。

  • 今回に限っては完了した仕様を実装するという意味で保守的なほうに傾けているIE9は助かったカンジかなぁ?

    現状WebGLで高性能プログラミングする必要性は低い(今後は増えるかもだけど)から、しばらくシェーダへのコード注入は予防的でいいかもしれませんね。

    # 素の機能だけでも3Dやるにはそれなりに機能あるだろうし...。

    --
    M-FalconSky (暑いか寒い)
  • なお、WebGL対応なプレビュー版 [opera.com]もあるにはあります。

  • いくつもの問題をいっぺんに扱ってるのでわかりにくいけど。
  • by Anonymous Coward on 2011年05月12日 18時37分 (#1951161)

    Firefox 4やGoogle ChromeなどではWebGLを無効にすることを勧告している

    で、無効にする方法はどこにあるんだろう?ワークアラウンドも欲しいです。

    • by Akisame (35837) on 2011年05月12日 18時49分 (#1951177)
      http://www.st.ryukoku.ac.jp/~kjm/security/memo/2011/05.html#20110511_WebGL [ryukoku.ac.jp]
      とりあえずここ視て無効にしてます。
      親コメント
      • by Anonymous Coward on 2011年05月12日 19時04分 (#1951186)

        Chromeの場合、自動アップデートがかかるたびにショートカットを設定しなおしになるのではありませんか?
        あと関連付け経由で起動した場合ショートカットの起動オプションは無視される(そもそも見ない)とか、穴が多すぎていろいろヤバい。

        親コメント
        • by Anonymous Coward
          startupに1つchromeぶち込んでそのプロパティで設定しとけば?
          レジストリで設定という手もあるし。
      • by Anonymous Coward
        Firefox4は初期状態ではハードウェアアクセラレーションが有効になってるので、これも無効にしてもらいたい。
    • by Anonymous Coward
      Chromeなら起動オプションに--disable-webglをつける
      Firefoxは使ってないから知らん
    • by Anonymous Coward
      Google Chromeなら起動オプションに「–disable-webgl」、
      FirefoxならアドオンにConfigration Mania入れて
      Configration Maniaメニューから
      アドレスバーに[about:config]入れてから
      オプション検索で[webgl.disabled]を[true]かな?
      (webglでひっかけて軒並み無効かのほうがいいのだろか?)
      • by Anonymous Coward

        Configuration Maniaを入れる理由がわかりませんが。。。どうして?

        • by Anonymous Coward
          configuration maniaはabout:configでないと見られないような項目をパネルで表示させるだけです。
          今回のために入れる必要はありません。
          そもそもconfigutarion maniaのパネルにwebglの項目がない。
    • by Anonymous Coward
      そもそも仕様上の欠陥なら一日二日で修正できる訳ないんだからさ、MozillaとGoogleはとっとと無効にしたバージョンを配布しろってこった。
      • by Anonymous Coward

        それは非常に正しいのだが、Norton Internet SecurityがFirefox4.0.1に対応したのはここ数日の話(´・ω・`)(ツールバーだけどね)
        18.5.xではHotFix入れてFirefox4.0.0に対応し、18.6.xでFirefox4.0.1に対応した。しかもまだ全ユーザーに18.6.xが入っているわけでもなさそう。

        で、それに対して「 非互換性が問題なので検証してからでないと出せない! [norton.com]」とキリっと言ってのけている。セキュリティアップデートがあればそれを入れる、それ

  • by Anonymous Coward on 2011年05月12日 18時38分 (#1951163)
    GPUにDEP実装して
    EMETみたいなソフト対応で
    緩和していくんでしょうかね?
    • Re:CPUと同じく (スコア:2, 参考になる)

      by shesee (27226) on 2011年05月12日 19時01分 (#1951184) 日記
      DOS攻撃のほうはシェーダーコードを実行してみるまで挙動が推測できないというチューリングマシンの停止性問題に近いかな。不完全な監察官は実装できるだろうけど、CPUプログラムの暴走と同様WDTによるGPUスレッド停止以外根本的解決方法は無いような。
      親コメント
      • by SteppingWind (2654) on 2011年05月13日 13時32分 (#1951628)

        チューリングマシンの停止性問題に近いかな

        プリンタにおけるPostScriptの問題と同様ですね. PostScriptも印刷用として完全なプログラミング言語だったので, 同様の停止問題が起きましたから. PostScriptというか印刷処理については印刷業界とかで必要な項目が洗い出されていましたから, 特殊な用途以外はサブセット的なPDFで対応できましたけど, グラフィックについてはまだまだ発展途上かつ処理のバリエーションが多岐にわたっているので, プログラミング言語であることを捨てられないのでしょうね.

        親コメント
    • by Anonymous Coward

      シェーダー言語というのは、GPUにプログラムを送り込んで実行する「仕様」なので…。

  • by Anonymous Coward on 2011年05月12日 19時01分 (#1951183)

    http://www.itmedia.co.jp/news/articles/1105/12/news017.html [itmedia.co.jp] によると、Chrome Web Store で公開された Angry Birds は、WebGL による高速化が一つのポイントのようですが、こういうゲームは今後どうするんでしょうね

  • by Anonymous Coward on 2011年05月13日 1時46分 (#1951379)

    仕様ならしようがない。

  • by Anonymous Coward on 2011年05月13日 11時00分 (#1951479)
    なんでGPUのドライバは、こんなに品質が悪いんだ? とくにA社。
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...