エンタープライズ:ニュース 2003/06/05 06:45:00 更新


Webアプリの「利便性」は誰のため? 産総研高木氏が指摘するセッション追跡の問題

産業総合研究所の高木浩光氏はRSA Conference 2003 JAPANのセッションの中で、Webアプリケーションにおけるセッション追跡の仕組みに存在する問題点を指摘。さらに、これら欠陥を検出するツールを紹介した。

 セキュリティ上の問題や脆弱性というと、OSやWebブラウザなどが取り上げられることが多い。しかし、インターネット上のさまざまなサービスを形作っているWebアプリケーションにも、数多くの欠陥が存在する。この結果、パスワードの入力といった認証を経ることなくログインされ、電話番号などを含む個人情報を第三者に知られてしまったり、パケット盗聴やちょっとした試行から得られたデータを元に、なりすましアクセスを許してしまう危険性がある。

 6月4日、かねてよりこの問題に取り組んできた産業総合研究所の高木浩光氏(グリッド研究センター セキュアプログラミングチーム長)が、RSA Conference 2003 JAPANのセッションに登場。「Webアプリケーションを正しく安全に作ることがいかに難しいかを、実際のケースを元に紹介」(同氏)した。

高木氏

高木氏は「いまやどんなサイトでもIDが発行されるようになっているが、本当にそれは必要なのだろうか」とも述べた

 一口にWebアプリケーションの欠陥といっても、クロスサイトスクリプティング問題や画面設計・表示上の問題など、さまざまなものがある。今回高木氏が取り上げたのは、セッション追跡パラメータに起因する問題だ。

 Webアプリケーションはたいてい、何らかの手段で、あるアクセスが同一ユーザーからのものであることを確認すべくセッション追跡を行っている。ここで用いられる目印が、ユーザーIDとパスワードの組み合わせや、セッションごとにランダムに設定される文字列、すなわちセッションIDだ。ただ、これらの取り扱い方や格納場所が不適切であるために、センシティブな情報が漏洩し公にさらされてしまったり、なりすましを許してしまっていると高木氏は指摘した。

 最も安易なのは、URLにセッション追跡用パラメータを埋め込んでしまうやり方だ。だが、HTTPのRefererを参照すれば、第三者でもこのパラメータを容易に知り、悪用することができる。

 それではと、Cookieにこれらパラメータを埋め込んでセッション追跡を行うことにしたとする。しかしこの場合も、埋め込まれているのがセッションIDではなく固定的なIDであるならば、同様の危険が存在する。少し仕組みを知っていれば、自由な文字列をCookieとしてセットし、他人を騙ってアクセスすることも可能だからだ。

 また中には、認証でのチェックを経ることなくアクセスを許可していたり、IDのみでログインできてしまうケースもある。

 高木氏は説明の中で、いくつかこうした欠陥サイトの例を挙げたのだが、最も痛烈だったのは、RSA Conference 2003 JAPANのスピーカー専用サイトだった。あろうことか、IDをそのままURLのパラメータに組み込む設計となっており、しかも講演者の個人情報を容易に見られるようになっていたという。高木氏の指摘により問題は修正されたが、その際の対応や連絡体制には不備が残った。

 こうした経緯を踏まえて高木氏は次のように述べる。「今回に限らず、サイトを運営する事業者側は、あくまでユーザーの利便性を高めたいがためのサービスだと主張する。しかし実際には、事業者側がラクをしたり、あるいはコストを削減するためではないかとも推測できる」。

 こういった設計があちこちに見られる背景には、Webアプリケーションというものが誰にでも、しかもスピーディに作成できてしまうといった風潮があるだろう。しかし、「事業者は、まず誰のための利便性であるのかを、そして、本来必要なセキュリティを実現するために、いったいどれだけのコストをかけなければならないかを考えるべきだ」(高木氏)。

欠陥を検出する監査ツール

 高木氏は講演の中で、こうしたWebアプリケーションの欠陥、特にアクセス制御周りの欠陥を検出するための監査ツールを紹介した。

 コードネーム「Vulnagra」、別名「Moroyowa」ともいうこの監査ツールは、IPAセキュリティセンターの「情報セキュリティ関連の調査・開発に関する公募」で採択されたもので、同氏とソフテックが開発を進めている。

 同ツールのアーキテクチャはシンプルで、ユーザーと、監査の対象となるWebサイトとの間のプロキシとして動作する。ユーザーが正規の手順を踏んでアクセスした際の通信内容を分析することで、アクセス制御周りの欠陥を推定、検証する仕組みだ。

 ポイントは、当初は一般コンシューマーによる利用を想定していたこともあって、極力不正アクセス行為を伴わずに検査を行えるようにしたことだ。検査用のリクエストを投げる際にも、推測したセッション追跡パラメータを変更・追加するのではなく、削除するというアプローチを取っている。また3タイプのコースを設定できるようになっており、正規のアクセスのみで検査するか、それとも徹底的に検査して正確な結果を得るかをユーザーが選べるようにした。

 アプリケーションレベルでの脆弱性検出ツールとしては、既に「AppScan」といった製品も登場している。ただ、こうしたツールでは本番稼動中のサーバにさまざまな負荷をかけることになるのに対し、Vulnagraではそうしたことはなく、運用中サイトに対する検査が可能だ。ただ、Vulnagraはアクセス制御に特化していることから、「古典的なWebアプリケーションの脆弱性については、AppScanなどのツールを併用して検査すべき」と高木氏は述べている。

 このツールは、Webアプリケーション開発時のセキュリティ要件を具体化し、検収時の適切なチェックを支援できるとともに、開発ベンダーの社員教育やセキュリティ監査事業者の検査ツールとしても活用できるという。

 同氏によると、ソフテックではVulnagraの製品化も検討しているというが、具体的な時期などは未定だ。しかし、こうしたツールが登場することで、Webアプリケーションを開発する側と運用する側の意識が、納期やコストだけでなく安全性にも向けられるよう期待したい。

関連記事
▼RSA Conference 2003レポート

関連リンク
▼RSA Conference 2003 JAPAN
▼産業技術総合研究所 グリッド研究センター セキュアプログラミングチーム

[高橋睦美,ITmedia]