Web 2.0ではコンテンツの多様化により問題が深刻化
Web 2.0におけるセキュリティについて、浦本直彦氏にうかがった。浦本氏は日本IBMの東京基礎研究所、次世代Webインフラストラクチャの次長であり工学博士でもある。IBMの基礎研究部門は世界8か所にあり、開発グループやサービス部門と協力して先進的なテクノロジを研究している。浦本氏は「『Web 2.0に特有のセキュリティはあるのか』という質問をよく受けますが、これはWeb 1.0とWeb 2.0がどう違うのかということと同じで、基本的には従来からある脅威と同じものが存在します。ただし、Webアプリケーションを取り巻く社会の方が変わってきたことで、より問題が深刻化しています」という。
Web 2.0によって我々を取り巻く社会の方が変わった点を、大きく2つに分けることができるという。一つは、情報(コンテンツ)がコモディティ化し、信頼性や価値が相対的に低下したこと。もう一つは、コモディティ化に伴ってシステムやコンポーネントの作り方や実行環境が変わってきたことである。情報のコモディティ化という観点では、以前は企業や限られた一部のユーザーがインターネットで情報を発信していたが、現在では子供や主婦、高齢者など、幅広い年代のユーザーが、いつでもどこでも情報を発信できるようになった。このようなITに疎いユーザーでも情報を発信できるようにしているのは、Web 2.0の技術が支えているためだと言える。
このような情報のCGM化(注1)によって情報そのものの量が増え、情報の信頼性や価値が希薄になると同時に、さまざまな脅威が表面化してきた。プログラミング上の問題では、クロスサイト・スクリプティング(XSS)や、クロスサイト・リクエストフォージェリ(CSRF)が挙げられる。XSSは、悪意のある第三者が攻撃対象となるサイトに入力フォームなどを通してJavaScriptなどのコードを押し込み、そこにアクセスしたユーザーの個人情報を盗み出すなど、意図しない操作を実行させるものである。またCSRF攻撃により、例えばショッピングサイトのセッションを乗っ取り、ユーザーが気づかないうちに他人がそのユーザーの個人情報を使って買い物をするといった被害を受ける。ほかにもSQLインジェクションやフィシングなどの従来からの攻撃に加えて、XSSやCSRFは、Web 1.0の時代から存在するものであるが、情報のコモディティ化によって攻撃の機会が増え、顕在化してきた。また、コンテンツの内容に関する問題では、ブログに書いた内容によって誹謗、中傷を受けたり、会社の評判を落としたり、といったケースがある。
Consumer Generated Media;消費者生成型のメディア。
一方、コモディティ化に伴ってシステムやコンポーネントの作り方や実行環境が変わってきたという点では、AjaxのようなWeb 2.0技術の普及により、Webブラウザが静的なHTML文書の閲覧環境から、動的なコンテンツやWebアプリケーションの実行プラットフォームとなってきたため、ロジックがクライアント側でも動くようになった点をあげよう。つまり、従来サーバー側を主に守っていればよかったセキュリティが、クライアント側でのプログラム実行にも注意を払う必要が出てきた。この意味では、守るべき範囲が広くなったということになる。
また、Web 2.0ではWebブラウザ上に複数の機能やAPIをコンポーネント化してマッシュアップしている。Web 1.0の時代には、複数の会社のサービスを横断して組み合わせることはあまり考えられなかったが、Web 2.0ではそれが可能になり、またそこにマッシュアップとしての大きな可能性がある。このためシステムやコンポーネントの作り方が変わり、それに合わせてセキュリティ上の要件も変わってきている。例えば、Web 2.0ではWebブラウザ上に異なるドメインのサービスを組み合わせているが、そもそもWebブラウザに実装されているセキュリティポリシーは、あるサイトからダウンロードされたJavaScriptコードが他のサイトにアクセスすることを抑制する(このポリシーはSame Origin Policyと呼ばれている)ものであり、マッシュアップは想定されていないシナリオだといえる。
さらに、Webブラウザは、信用できないドメインではJavaScriptを無効にすることもできるが、現在では多くのWebページでJavaScriptが使用されているため、ドメイン単位で無効にしてしまうとサービスそのものが動かなくなってしまうし、上で述べたXSSでは、悪意を持ったコードが信頼できるサーバーから送られるため注意が必要である。このように、Web 2.0時代では従来のWebブラウザのセキュリティモデルが陳腐化していると言えるだろう。
では、このようなWeb 2.0時代のセキュリティについて、浦本氏のチームはどのように取り組み、対策しているのだろうか。「Web 2.0のセキュリティは、2006年頃から取り組んでいます。Web 2.0はそもそもコンシューマが簡単に利用できることを目的としていたので、セキュリティについてはあまり議論されていませんでした。しかし現在ではエン タープライズ向けのサービスも多くなり、企業での利用も増加しています。そうするとセキュリティは欠かせないものとなり、IBMがそれを提供することに意味が出てきます。ポイントは、ユーザービリティなどのWeb 2.0の良さを損なわずにエンド・ツー・エンドのセキュリティを提供することです」という。
IBMは、より良い効果を期待できるさまざまな製品を自社ブランドに取り込んでいる。Web 2.0のセキュリティに有効な製品としては、まず旧Watchfire社の「Rational AppScan」がある。この製品はWebアプリケーションの脆弱性評価ツールで、特定のURLを入力するとトップページから下の階層までをクロールして、ページの情報をためた上でさまざまな疑似攻撃を行い、脆弱性がないかをチェックする。具体的には、入力エリアがあるとそこにスクリプトコードや予想外の値を入れるといったテストを自動的に行い結果をレポートする。このほかにも旧インターネットセキュリティシステムズ(ISS)のセキュリティアプライアンス製品や、古くからある「Tivoli」製品などが有効としている。
浦本氏のチームでは、これらの製品ではカバーできない部分について研究を進めているという。「現在、2つのプロジェクトが進行しています。一つは『セキュアマッシュアップ』で、これは例えば企業でWeb 2.0を利用する場合、信頼できるコンポーネントとそうでないものを組み合わせることがあります。ブラウザ上では一つのサービスになっているため、信頼できないコンポーネントをハッキングされると、そこから顧客データなど機密情報が入ったコンポーネントにアクセスされる可能性があります。個々のコンポーネントを孤立化させて通信できなくすれば安全ですが、それではマッシュアップした意味がありません。そこで、USのワトソン研究所と共同で、コンポーネント同士のセキュアな情報アクセス制御技術を研究しています。IBMはこの技術の実装を、Ajax技術の普及を目指す業界団体であるOpenAjaxに寄付しており、ゆくゆくは標準化してIBMの製品に組み込むことを考えています」。
「もう一つは『アクティブコンテンツフィルタ』で、これはWebアプリケーションをチェックしてHTMLやJSON、Feedといったコンテンツ中のJavaScriptコードを見つけ出し、設定条件に基づいてそれらを除去するというものです。この機能は、既にいくつかのIBM製品 に搭載されています」という。
最後に、研究を通じて心がけていることや感じていることをうかがってみると、「開発者は必ずしもセキュリティの専門家ではありません。そこで、信頼できるツールをうまく使い、ベストプラクティスを学んでいく必要があります。しかし、やはりセキュリティは『イタチごっこ』の世界で、攻撃者は通常では考えられないような手法を次々と使ってきます」。
「また、現在のように多数のWebブラウザが混在している状況は問題であると感じています。ブラウザはバージョンによってさまざまな脆弱性が存在し、そこに組み合わされるプラグインも同様で、これらを乗算した環境が存在しているのが現状で す。このすべてを検証するわけにはいきませんから、できるかぎりブラウザに依存しないようなソリューションやブラウザのセキュリティモデルを共通化していくことが必要になってくるでしょうね。これは、いろいろなフレームワークを使用しているサーバー側にも同じことが言えます」。
「セキュリティに100%はあり得ません。そこで私たちは複数の技術を組み合わせてより100%に近づけていこうと研究しています。Web 2.0ではサーバーとクライアントの両方にセキュリティ対策が必要で、またマッシュアップしていく上での落とし穴も存在します。あまり表に出るような技術ではありませんが、技術を組み合わせてエンドtoエンドでサービスを提供していくことは、IBMの得意分野なのです。今後も様々な技術が提供される予定です。ご期待ください」と締めくくった(聞き手/吉澤)。