HTML5は安全か? 開発者が留意すべきセキュリティ問題

脆弱性の多いFlashの代替として注目を集めるHTML5だが、HTML5にもセキュリティをめぐる幾つかの問題がある。

» 2010年05月19日 11時45分 公開
[Brian Prince,eWEEK]
eWEEK

 米Appleと米Adobe Systemsとの間の論戦は、HTML5の運命をめぐってさまざまな憶測を呼び起こした。HTML5はまだ開発途上にあるが、1つだけ確実に言えるのは、HTML5を採用する開発者は、アプリケーションセキュリティ開発ライフサイクルの一部として同標準の新たな機能セットを考慮に入れる必要があるということだ。

 では、HTML5はセキュリティにどういった影響を及ぼし、脆弱部分をどうカバーすべきなのだろうか。米eWEEKでは、HTML5のセキュリティをめぐる幾つかの重要な問題について専門家に話を聞いた。

クライアントサイドのセキュリティ

 「従来版のHTMLでは、Webサイトはローカル情報としてcookieしか保存できない。しかもこれらは比較的小さなデータであり、シンプルなプロフィール情報や、ほかの場所に保存されたデータの識別情報(セッションIDなど)を保存するのに使われるだけだ」――Denim Groupのアプリケーションセキュリティ研究責任者、ダン・コーネル氏はそう説明する。しかしHTML5のLocalStorage機能では、Webブラウザがはるかに多くのデータをローカルマシンに保存でき、これにより新たなタイプのアプリケーションが可能になる。

 「これに伴うリスクは、センシティブなデータがユーザーのワークステーションにローカル保存されている場合、そのワークステーションに物理的にアクセスできる攻撃者や、外部からワークステーションに侵入した攻撃者が、そのデータにアクセスできる可能性があることだ」とコーネル氏は指摘する。「これは共有コンピュータを使っているユーザーにとって特に深刻な問題だ」

 Rapid7のセキュリティ研究員、ジョッシュ・エイブラハム氏は「定義の上では、これはクライアントシステムに情報を保存できるという仕様にすぎない」とeWEEKの取材で語った。「つまり、クライアントサイド型SQLインジェクションを実行できる可能性があるということだ。また、クライアントに悪質なデータベースが保存される可能性もある。そしてこのクライアントが業務システムと同期化しようとした場合、同期化処理で問題が生じたり、クライアントのデータベースに含まれる悪質なデータが業務システムに挿入される恐れがある」

 「この問題に対処するには、開発者はそのデータが適正なものか悪質なものかを確認できる必要があるが、これは複雑な問題になるかもしれない」とエイブラハム氏は語る。

 これがどれくらい重要な問題なのかについては、すべての専門家の意見が一致しているわけではない。Veracodeのクリス・ワイソパルCTO(最高技術責任者)は、WebアプリケーションがプラグインやWebブラウザの拡張機能を利用して、クライアントサイドにデータを保存する手段はこれまでも存在したという事実を指摘する。

 「現在実装されているHTML5 SessionStorage機能を不正に操作する方法は知られているが、HTML5標準の最終版が完成するまでには、この問題が修正されている可能性がある」とワイソパル氏は話す。

クロスドメイン通信

 従来版のHTMLでは、JavaScriptはXML HTTPリクエストコールを元のサーバに送信することしかできないが、HTML5ではこの制限が緩和され、XML HTTPリクエストを許可する任意のサーバにそれを送信できるようになっている。これはもちろん、サーバが信頼できない場合にセキュリティ上のリスクにつながる。

 「例えば、JSON(JavaScript Object Notation)を利用してサードパーティーのWebサイトからスポーツの試合データを引き出すマッシュアップを作成したとする。その場合、このWebサイトが、ユーザーのWebブラウザ内で動作できるアプリケーションに悪質なデータを送ってくる可能性もある。HTML5の多くの新機能がそうであるように、この機能も新たなタイプのアプリケーションの開発を可能にするが、開発者がセキュリティへの影響を理解せずにこれらの機能を利用すると、ユーザーをセキュリティリスクにさらすアプリケーションを作ってしまうことになりかねない」とコーネル氏は話す。

 「PostMessage()に依存するアプリケーションを作成する開発者は、メッセージがそのアプリケーション自身のWebサイトから送信されるように注意深くチェックすることが大切だ。そうでないと、ほかのWebサイトからの悪質なコードが不正なメッセージを忍び込ませるかもしれないからだ」とワイソパル氏は話す。しかしこの機能自体にセキュリティが欠如しているというわけではなく、開発者は以前から各種のDOM(Document Object Model)機能やWebブラウザの機能を利用してクロスドメインメッセージングをエミュレートしてきたという。

 「これに関連した問題として、クロスオリジンのリソース共有のためのWide Web Consortiumの現在の草案では、クロスドメインメッセージングと同様のメカニズムを利用することによって、同一オリジンポリシーを回避する手段が存在することが挙げられる」とワイソパル氏は続ける。

 「さらにややこしいのは、IE(Internet Explorer)ではこの機能をFirefox、Chrome、Safariとは異なる方法で実装していることだ。開発者は寛容過ぎるアクセスコントロールリストを作成することの危険性を理解しておく必要がある。この問題に関して出回っているドキュメントの中には、セキュリティが甚だしく欠如した参考コードが掲載されているものもあるからだ」(同氏)

Iframeのセキュリティ

 セキュリティという観点では、HTML5に関して朗報もある。iframe用のサンドボックス機能をサポートする計画もその1つだ。

 「この機能は、データをどう解釈するかを開発者が選択することを可能にする」とワイソパル氏は説明する。「ただし残念ながら、HTMLの多くの機能と同様、このデザインは開発者に誤解され、利便性のためにこの機能が無効にされてしまう可能性が高い。この機能を正しく利用すれば、サードパーティーの悪質な広告や、信頼できないコンテンツを受け取るフレームなどが再表示されるのを防ぐのに役立つのだが」

企業向け情報を集約した「ITmedia エンタープライズ」も併せてチェック

Editorial items that were originally published in the U.S. Edition of “eWEEK” are the copyrighted property of Ziff Davis Enterprise Inc. Copyright (c) 2011. All Rights Reserved.

注目のテーマ