(57)【要約】【課題】不正アクセス行為に対する脆弱性が内在するウェブサイトが多く存在する。【解決手段】検査装置１００は、ウェブサイト５０とブラウザ１４との通信内容を取得する。検査装置１００は、通信内容に基づいてセッションを特定するセッション追跡パラメータを推定する。そして、検査装置１００は、セッション追跡パラメータに基づいて、ウェブサイト５０に内在する脆弱性を分析する。これにより、ウェブサイト５０に対して検査のための信号を送ることなく、通常の通信内容に基づいて脆弱性を分析できる。【選択図】        図１
2004310267.tif 000002
【特許請求の範囲】
【請求項１】
ウェブサイトとクライアントとの通信内容を取得する取得部と、
前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、
推定されたセッション追跡パラメータに基づいて前記ウェブサイトに内在する脆弱性を分析する分析部と、
を備えることを特徴とするウェブサイトの検査装置。
【請求項２】
請求項１に記載の装置において、
前記推定部は、
前記通信内容に基づいて前記セッション追跡パラメータの候補を抽出する抽出部と、
前記ウェブサイトにおけるウェブページの取得処理を繰り返すことにより、前記候補の中からセッション追跡パラメータを絞り込む絞込部と、
を有することを特徴とするウェブサイトの検査装置。
【請求項３】
請求項２に記載の装置において、
前記ウェブサイトと前記クライアントとのセッションにおいて、前記通信内容に前記セッション追跡パラメータが含まれる可能性が高いウェブページを注目ページとして特定する特定部を更に備え、
前記絞込部は、前記候補のうち、前記注目ページに係るセッションにおいて取得した通信内容に基づいて抽出した候補に高い優先度をつけることを特徴とするウェブサイトの検査装置。
【請求項４】
請求項３に記載の装置において、前記特定部は、所定の文字列が含まれているウェブページを前記注目ページと定めることを特徴とするウェブサイトの検査装置。
【請求項５】
請求項３に記載の装置において、
当該装置はさらに、前記注目ページの指定をユーザから受け付ける受付部を備え、
前記特定部は前記ユーザに指定されたウェブページを注目ページと定めることを特徴とするウェブサイトの検査装置。
【請求項６】
請求項２から５のいずれかに記載の装置において、
前記絞込部は、前記ウェブサイトと前記クライアントとのセッションを繰り返すことにより取得された複数の通信内容から統計的手法を用いてセッション追跡パラメータを絞り込むことを特徴とするウェブサイトの検査装置。
【請求項７】
請求項１から６のいずれかに記載の装置において、
当該装置はさらに、個人情報を保持する格納部を備え、
前記分析部は、前記セッション追跡パラメータに前記個人情報が含まれているか否かを判定することを特徴とするウェブサイトの検査装置。
【請求項８】
請求項１から７のいずれかに記載の装置において、
前記分析部は、前記セッション追跡パラメータが規則性を有するか否かを一連の通信内容に含まれる前記セッション追跡パラメータに基づいて判定することを特徴とするウェブサイトの検査装置。
【請求項９】
請求項１から８のいずれかに記載の装置において、
セッション追跡パラメータの伝送形式を判断する判断部を更に備えることを特徴とするウェブサイトの検査装置。
【請求項１０】
請求項９に記載の装置において、
判断された伝送形式に応じて異なるコメントを前記クライアントに提供する提供部を更に備えることを特徴とするウェブサイトの検査装置。
【請求項１１】
ウェブサイトとクライアントとの通信内容を取得する取得部と、
前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、
推定されたセッション追跡パラメータを取り除いて通信を行うことにより、セッション追跡パラメータの推定の正否を検証する検証部と、
を備えることを特徴とするウェブサイトの検査装置。
【請求項１２】
請求項１１に記載の装置において、
前記検証部は、
前記の推定されたセッション追跡パラメータを前記ウェブサイトへ出すべきリクエストメッセージの中から削除する編集部と、
編集部で改変されたリクエストメッセージにより、本来取得されるべきウェブページが取得できなかった場合、前記セッション追跡パラメータの推定が正しかったと判定する判定部と、
を有することを特徴とするウェブサイトの検査装置。
【請求項１３】
請求項１２に記載の装置において、
前記判定部にて、前記セッション追跡パラメータの推定が正しくなかったと判定されたとき、前記編集部および判定部は、別のパラメータを新たにセッション追跡パラメータとして処理を繰り返すことを特徴とするウェブサイトの検査装置。
【請求項１４】
請求項１１から１３のいずれかに記載の装置において、
前記検証部の動作許否をユーザに指定せしめる許可部を更に備え、
前記検証部は、ユーザから許可された場合に前記検証部の動作を許可することを特徴とするウェブサイトの検査装置。
【請求項１５】
請求項１２から１４のいずれかに記載の装置において、
当該装置はさらに、個人情報を保持する格納部を備え、
前記判定部は、前記ウェブページに前記個人情報が含まれているか否かを判定することを特徴とするウェブサイトの検査装置。
【請求項１６】
ウェブサイトとクライアントとの通信内容を取得する取得部と、
前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、
第１のユーザ情報を利用して前記ウェブサイトにログインするログイン部と、
前記第１のユーザ情報とは異なる第２のユーザ情報を利用してログインしたときの所定のウェブページを取得するためのリクエストメッセージに含まれるセッション追跡パラメータを、前記第１のユーザ情報を利用してログインした後、推定されたセッション追跡パラメータに置き換える置換部と、
セッション追跡パラメータを置換したリクエストメッセージに応じて、前記ウェブサイトから送信されたウェブページに、前記第２のユーザに関係する情報が含まれているか否かを判定する判定部と、
を備えることを特徴とするウェブサイトの検査装置。
【請求項１７】
請求項１から１６のいずれかに記載の装置において、
前記クライアントが前記ウェブサイトからログアウトした後、前記セッション追跡パラメータを利用して、ログアウト前に実施していたセッションを再現しうるか否かを判定する調査部を更に備えることを特徴とするウェブサイトの検査装置。
【請求項１８】
ウェブサイトとクライアントとの通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを保持する設定部と、
前記クライアントと前記ウェブサイトとのセッションが途絶えた後の経過時間を計測する計測部と、
前記経過時間が所定のしきい値を超えた後、前記セッション追跡パラメータを利用し、ウェブページの提供を前記ウェブサイトに要求する指示部と、
を備えることを特徴とするウェブサイトの検査装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は装置を検査する技術に関し、とくにネットワークを介してコンテンツを提供するウェブサイトに内在する脆弱性を検査する技術に関する。
【０００２】
【従来の技術】
ネットワーク技術が発展することにより、例えば電子メールの利用やウェブサイトの閲覧のためにネットワーク利用者数が増大している。こうしたネットワークの利用は、今や当然の情報取得手段として日々の生活に浸透しつつある。また、ユーザ数の増加と相乗して、様々なサービスを提供するウェブサイトの数も増加している。こうしたウェブサイトの中には、例えばショッピングサイト等のようにユーザの個人情報を扱い、ユーザ毎にサービスを提供するものが多く存在する。
【０００３】
本来、そうしたウェブサイトは、個人情報の漏洩が無いようにセキュリティを考えたウェブアプリケーションの設計がなされ、作成される必要があるが、実際には欠陥を有するウェブサイトが多く存在する。ハッカーやクラッカーなどと呼ばれる意図的にウェブサイトに攻撃を仕掛ける者は、ウェブサイトにおける欠陥を探し出し、例えば、なりすましやクロスサイトスクリプティングなどの攻撃を仕掛け、個人情報を盗用する。
【０００４】
近年、ウェブサイトにおける個人情報の漏洩問題が頻繁に取り沙汰され、その攻撃手法なども公表されているにも拘わらず、一向に問題は減少しない。こうした問題を引き起こすセキュリティ上の欠陥は、例えばウェブアプリケーションの開発、作成時の基礎的な誤りであることが多い。また、ウェブサイトの運用者の問題意識が欠落していることにより、個人情報の漏洩が起こりうる欠陥があるにもかかわらず、欠陥を放置したまま運用がされているウェブサイトもある。
【０００５】
こうした個人情報の漏洩を防止する技術として、既知の攻撃パターンと、実際の通信パターンとを比較して攻撃を検出し、サイト管理者に通知するＩＤＳ（Ｉｎｔｒｕｄｅｒ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）や、既知の攻撃パターンを検査対象のウェブサイトに対してテスト目的で仕掛けることで、脆弱性の有無を検出する技術がある（特許文献１）。
【０００６】
【特許文献１】
米国特許第６３１１２７８号明細書
【０００７】
【発明が解決しようとする課題】
しかしながら、こうしたセキュリティ対策技術は、既知の攻撃が対象であり、新たなパターンで攻撃された場合には、それを防ぐことはできない。また、特許文献１で開示される技術では、検査対象のウェブサイトに対して攻撃を直接行うので、仮に調査対象のウェブサイトに脆弱性が存在する場合、検査のためにそのウェブサイトに予期せぬダメージを与えかねない。
【０００８】
本発明は上記課題に鑑みてなされたものであり、その目的は、ウェブサイトに内在する脆弱性を検査する技術、ウェブサイトに対して攻撃を仕掛けることなく脆弱性を判断する技術、客観的な基準に基づいてウェブサイトの安全性を評価するための技術を提供することにある。また、副次的には、いわゆる不正アクセスとみなしうる検査手法を回避した検査技術を提供することにある。さらに別の目的としては、実際にウェブサイトを利用しようとしている個人本人が、その利用に先立ってウェブサイトの安全性を個人レベルで確認する技術を提供することにある。
【０００９】
【課題を解決するための手段】
本発明のある態様は、ウェブサイトを検査する装置である。この装置は、ウェブサイトとクライアントとの通信内容を取得する取得部と、前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、推定されたセッション追跡パラメータに基づいて前記ウェブサイトに内在する脆弱性を分析する分析部とを備える。これにより、この装置は、通信内容に含まれるセッション追跡パラメータに基づいて、間接的にウェブサイトの脆弱性を分析することができるので、検査行為によりウェブサイトに悪影響を及ぼさない。
【００１０】
前記推定部は、前記通信内容に基づいて前記セッション追跡パラメータの候補を抽出する抽出部と、前記ウェブサイトにおけるウェブページの取得処理を繰り返すことにより、前記候補の中からセッション追跡パラメータを絞り込む絞込部とを有してもよい。これにより、通信内容に含まれる各種のパラメータから、セッション追跡パラメータとして利用されている可能性の高いパラメータを抽出できる。
【００１１】
この装置は、前記ウェブサイトと前記クライアントとのセッションにおいて、前記通信内容に前記セッション追跡パラメータが含まれる可能性が高いウェブページを注目ページとして特定する特定部を更に備え、前記絞込部は、前記候補のうち、前記注目ページに係るセッションにおいて取得した通信内容に基づいて抽出した候補に高い優先度をつけてもよい。これにより、セッション追跡パラメータを更に絞り込むことができる。「注目ページ」は、例えばログイン画面、個人情報設定画面など本来セッションを特定する情報が付加されるべきウェブページである。
【００１２】
前記特定部は、所定の文字列が含まれているウェブページを前記注目ページと定めてもよい。これにより、特定部は、通信内容に基づいて注目ページを特定できる。
【００１３】
この装置は、前記注目ページの指定をユーザから受け付ける受付部を備え、前記特定部は前記ユーザに指定されたウェブページを注目ページと定めてもよい。これにより、ユーザの指示に基づいて注目ページを特定できるので、個人の写真など自動的に特定することが困難な形式で、個人情報がウェブページに含まれている場合でも、注目ページを特定できる。
【００１４】
前記絞込部は、前記ウェブサイトと前記クライアントとのセッションを繰り返すことにより取得された複数の通信内容から統計的手法を用いてセッション追跡パラメータを絞り込んでよい。これにより、例えば再現回数の多いものを残すようにセッション追跡パラメータの候補を絞り込むことができる。
【００１５】
この装置はさらに、個人情報を保持する格納部を備え、前記分析部は、前記セッション追跡パラメータに前記個人情報が含まれているか否かを判定してもよい。これにより、この装置は、セッション追跡パラメータを容易に推測できるか否かを判断できる。
【００１６】
前記分析部は、前記セッション追跡パラメータが規則性を有するか否かを一連の通信内容に含まれる前記セッション追跡パラメータに基づいて判定してもよい。これにより、この装置は、一連の通信内容に含まれるセッション追跡パラメータの値の推移に基づいて、セッション追跡パラメータを容易に推測できるか否かを判断できる。
【００１７】
この装置は、セッション追跡パラメータの伝送形式を判断する判断部を更に備えてもよい。これにより、この装置は、伝送形式に応じて生じうる脆弱性を判断できる。
【００１８】
この装置は、判断された伝送形式に応じて異なるコメントを前記クライアントに提供する提供部を更に備えてもよい。これにより、この装置は分析結果をコメントとしてユーザに提示できる。
【００１９】
本発明の別の態様は、ウェブサイトを検査する装置である。この装置は、ウェブサイトとクライアントとの通信内容を取得する取得部と、前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、推定されたセッション追跡パラメータを取り除いて通信を行うことにより、セッション追跡パラメータの推定の正否を検証する検証部とを備える。これにより、この装置は通信内容から抽出したセッション追跡パラメータの正否を検証できる。
【００２０】
前記検証部は、前記の推定されたセッション追跡パラメータを前記ウェブサイトへ出すべきリクエストメッセージの中から削除する編集部と、編集部で改変されたリクエストメッセージにより、本来取得されるべきウェブページが取得できなかった場合、前記セッション追跡パラメータの推定が正しかったと判定する判定部とを有する。これにより、推定されたセッション追跡パラメータをリクエストメッセージから取り除いて、新たなリクエストメッセージを生成することができる。
【００２１】
この装置は、前記判定部にて、前記セッション追跡パラメータの推定が正しくなかったと判定されたとき、前記編集部および判定部は、別のパラメータを新たにセッション追跡パラメータとして処理を繰り返してもよい。これにより、複数のセッション追跡パラメータの候補の中から、正しいセッション追跡パラメータを特定できる。
【００２２】
この装置は、前記検証部の動作許否をユーザに指定せしめる許可部を更に備え、前記検証部は、ユーザから許可された場合に前記検証部の動作を許可してもよい。これにより、ユーザの認識の元で、この装置は検証処理を実行できる。すなわち、検査行為が不正アクセスとして認識されない。
【００２３】
この装置は、さらに、個人情報を保持する格納部を備え、前記判定部は、前記ウェブページに前記個人情報が含まれているか否かを判定してもよい。
【００２４】
本発明の更に別の態様は、ウェブサイトを検査する装置である。この装置は、ウェブサイトとクライアントとの通信内容を取得する取得部と、前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、第１のユーザ情報を利用して前記ウェブサイトにログインするログイン部と、前記第１のユーザ情報とは異なる第２のユーザ情報を利用してログインしたときの所定のウェブページを取得するためのリクエストメッセージに含まれるセッション追跡パラメータを、前記第１のユーザ情報を利用してログインした後、推定されたセッション追跡パラメータに置き換える置換部と、セッション追跡パラメータを置換したリクエストメッセージに応じて、前記ウェブサイトから送信されたウェブページに、前記第２のユーザに関係する情報が含まれているか否かを判定する判定部とを備える。これにより、この装置は、ウェブサイトに内在するアクセス制御の機能不全による、第３者のなりすまし行為に対する脆弱性を検証できる。
【００２５】
この装置は、前記クライアントが前記ウェブサイトからログアウトした後、前記セッション追跡パラメータを利用して、ログアウト前に実施していたセッションを再現しうるか否かを判定する調査部を更に備えてもよい。これにより、ウェブサイトにおけるログアウト機能を検査できる。
【００２６】
本発明の更に別の態様は、ウェブサイトを検査する装置である。この装置は、ウェブサイトとクライアントとの通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを保持する設定部と、前記クライアントと前記ウェブサイトとのセッションが途絶えた後の経過時間を計測する計測部と、前記経過時間が所定のしきい値を超えた後、前記セッション追跡パラメータを利用し、ウェブページの提供を前記ウェブサイトに要求する指示部とを備える。これにより、ウェブサイトにおけるタイムアウト機能を検査できる。
【００２７】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００２８】
【発明の実施の形態】
実施の形態に係る検査システムは、既知のシステムのごとく、ウェブサイトへ実際に攻撃を掛けるものではなく、その運用は基本的に個人レベルの意思によってなされる。したがって、実施の形態に係る検査システムを分散的にいろいろな個所に設置することにより、より多くの個人が自己のアクセスの安全性確保を目的として、可能な限り自主的にシステムの利用を図ることが基本形となる。このことは、以下の副次的効果をも産む。
１．個人が自己の責任で自己の安全を確保する習慣が広まり、国民レベルでセキュリティに対する意識を高める契機となる。
２．ウェブサイトは、多数の個人から常に検査される立場におかれ、セキュリティ意識の低いサイトは淘汰されざるを得ず、結果として、サイト運営側の意識改革の契機となる。
【００２９】
図１は、実施の形態に係る検査システム１０の構成図である。ウェブサイト５０は、検査対象となるサイトであり、ネットワーク１２を介してブラウザ１４にコンテンツを提供する。検査装置１００は、ブラウザ１４のプロキシとして機能し、ブラウザ１４とウェブサイト５０との通信を中継するとともに、通信内容を取得する。そして検査装置１００は、その通信内容に基づいてウェブサイト５０の脆弱性を判断する。ブラウザ１４と検査装置１００は、所定のプログラムを実行することにより同一のコンピュータ上に形成されてもよいし、異なるコンピュータ上に形成されてもよい。
【００３０】
一般にブラウザ１４とウェブサイト５０との通信はＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）に基づいて行われる。ＨＴＴＰに準じてコンテンツを取得する場合、ブラウザ１４はウェブサイト５０に対してリクエストメッセージ２０を送信する。そしてウェブサイト５０は、そのリクエストメッセージ２０に応じてレスポンスメッセージ２２を送信する。ＨＴＴＰに準じて通信を行う場合、リクエストとレスポンスが通信の単位（以下、単に「アクセス」という）となる。そのため、例えばショッピングサイトなどのように、ユーザ毎に複数のウェブページにまたがったコンテンツを提供する場合、ユーザ毎に、提供中のウェブページを管理する必要がある。つまり、ユーザにコンテンツを提供するための一連のアクセス（以下、単に「セッション」という）を管理する必要がある。その管理手法として、セッション毎に識別情報を割り当てることが一般的に行われる。
【００３１】
図２は、図１のウェブサイト５０の内部構成図である。ウェブサイト５０は任意のコンピュータに所定のプログラムを実行させることにより形成され、単一のコンピュータに単一のウェブサイトが形成されてもよいし、複数のウェブサイトが形成されてもよい。ウェブサーバ５８は、ＨＴＴＰに準じてコンテンツを提供する。通常コンテンツ格納部５６は、例えばＨＴＭＬ形式のコンテンツを格納する。ウェブサーバ５８は、ネットワーク１２を介して要求されたコンテンツを通常コンテンツ格納部５６から読み込み、送信する。
【００３２】
ウェブアプリケーション５４は、例えばユーザ毎のウェブページを個人情報格納部５２に保持された個人情報に基づいて形成する。そして、ユーザ毎に生成したウェブページを、ウェブサーバ５８を介してユーザに提供する。こうしたユーザ毎のウェブページを提供するサイトとして、例えばショッピングサイト、個人のスケジュール管理サイト、ウェブメールサイトなどがある。このような個人情報を取り扱うウェブサイト５０は、ユーザ毎にウェブページを提供するため、セッション毎に識別情報（以下、単に「セッション追跡パラメータ」という）を割り当てる必要がある。
【００３３】
一般にウェブサイトの脆弱性は、主に、ウェブサーバ５８に内在するバグにより生じる場合と、ウェブアプリケーション５４に内在するバグにより生じる場合とがある。ウェブアプリケーション５４は、例えばＣＧＩやＪＳＰ（商標）などであり、開発時の設計上の誤りや開発者のミスによりバグを含むことが多々ある。図１の検査装置１００は、主にウェブアプリケーション５４に内在する脆弱性を分析する。ウェブアプリケーション５４における脆弱性の多くは、例えばセッション追跡パラメータの取り扱い上のミスにより生じるアクセス制御機能の不良に関するものが多い。
【００３４】
例えば、セッション追跡パラメータの値が、セッション毎に変わらない、ユーザの個人情報が含まれている、推測が容易などの場合、悪意のある者が、例えば本来のユーザになりすまして個人情報を取得したり、本来のユーザに代わってサービスを受けたりすることがある。こうしたウェブアプリケーション５４に内在する脆弱性は、図１のウェブサイト５０とブラウザ１４とで行われる通信の内容に含まれるセッション追跡パラメータに基づいて分析できる。
【００３５】
図３は、図１のリクエストメッセージ２０のデータ構造の一例を示す図である。リクエストメッセージ２０は、リクエストヘッダ２４とリクエストボディ２６とを有する。セッション追跡パラメータ２８は、セッション毎に割り当てられた識別情報であり、本図ではクッキーに設定されている。他の例では、セッション追跡パラメータ２８は、リクエストボディ２６、リクエストヘッダ２４におけるＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）やＡｕｔｈｅｎｔｉｃａｔｉｏｎフィールドのいずれかに埋め込まれてもよい。ユーザＩＤ３０は、例えばウェブサイト５０におけるユーザＩＤを示す情報である。
【００３６】
図４は、図１のレスポンスメッセージ２２のデータ構造の一例を示す図である。レスポンスメッセージ２２は、レスポンスヘッダ３２とレスポンスボディ３４とを有する。本図のレスポンスヘッダ３２には、新しいセッション追跡パラメータ３６をクッキーに設定するためのコマンドが付加されている。図３のセッション追跡パラメータ２８や図４のセッション追跡パラメータ３６などのパラメータから、ウェブサイト５０におけるセッション追跡パラメータの取り扱い状態を判断できる。
【００３７】
本例では、ウェブサイト５０は、セッションを行うごとにインクリメントした値とユーザＩＤとを組み合わせることでセッション追跡パラメータを生成していることがわかる。このようなセッション追跡パラメータを推定することは容易なので、ウェブサイト５０は、不正アクセスにより個人情報が漏洩する可能性があると判断できる。このように、リクエストメッセージ２０およびレスポンスメッセージ２２（以下、単に「通信内容」という）に含まれるセッション追跡パラメータに基づいて、ウェブサイト５０に内在する脆弱性を分析することができる。図１の検査装置１００は、通信内容に基づいてウェブサイト５０の脆弱性を判断するため、従来の検査装置のようにウェブサイト５０に対して攻撃を仕掛けることがない。このため、ウェブサイト５０に被害が生じることはない。また、従来の検査装置のように既知の脆弱性を判断するだけでなく、ウェブサイト５０に内在する本質的な脆弱性を分析することができる。
【００３８】
図５は、図１の検査装置１００の内部構成図である。検査装置１００の各構成要素は、ハードウエアコンポーネントで言えば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インターフェース、ファクシミリ通信用のモデム等を中心に実現されるが、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。これから説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。
【００３９】
取得部１５０は、ウェブサイト５０とブラウザ１４との通信内容を取得し、取得した通信内容を通信内容格納部１０２に格納する。推定部２００は、通信内容格納部１０２に保持された通信内容に基づいて、セッション追跡パラメータの候補を推定し、分析部３００に出力する。分析部３００は、セッション追跡パラメータ等に基づいてウェブサイト５０に内在する脆弱性を分析する。検証部４００は、推定部２００により推定されたセッション追跡パラメータの正否を検証する。試験内容の詳細は後述するが、試験部３５０は、例えばウェブサイト５０におけるログアウト機能やタイムアウト機能など、セッション追跡パラメータに係る種々の機能を試験する。
【００４０】
個人情報格納部１０４は、検査のために利用するウェブサイト５０におけるユーザＩＤやパスワードなどの個人情報を保持する。検査制御部１０６は、取得部１５０、分析部３００、推定部２００および検証部４００のそれぞれを制御する。また、検査制御部１０６は、操作受付部１０８を介してユーザから受け付けた操作指示を、その指示を必要とするユニットに提供する。また検査制御部１０６は操作画面や分析結果などを表示するための情報を表示処理部１１０に出力する。表示処理部１１０は、それらの情報を表示部に表示する。
【００４１】
図６は、図５の個人情報格納部１０４におけるデータ構造の一例を示す図である。本実施の形態では、個人情報格納部１０４はＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で個人情報を保持する。ユーザ情報欄５００は、２ユーザ分の個人情報を保持する。第１ユーザ情報欄５０２は、第１ユーザの個人情報を保持する。また、第２ユーザ情報欄５０４は、第２ユーザの個人情報を保持する。個人情報欄５０６は、例えば、ユーザＩＤ、パスワード、氏名、住所、電子メールアドレス、電話番号、クレジットカード番号など個々のユーザ情報を保持する。個人情報欄５０６は、漏洩により生じるリスクに関する情報を保持する損害値欄５０８と、個人情報の種類を特定するキーワードを保持する項目欄５１０と、キーワードで特定されるユーザ情報を保持する値欄５１２とを有する。詳細は後述するが、こうした個人情報が通信内容に含まれるか否かに基づいて、ウェブサイト５０の脆弱性を分析することが可能になる。
【００４２】
図７は、図５の取得部１５０の内部構成図である。第１判定部１５２および第２判定部１５６は、例えばＨＴＴＰＳ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  ＳＳＬ）などにより通信内容が暗号化されているか否かを判定する。通信内容が暗号化されている場合に、第１暗号化・復号部１５８および第２暗号化・復号部１５９はその通信内容を復号する。また、第１暗号化・復号部１５８および第２暗号化・復号部１５９は、必要に応じて通信内容を暗号化する。取得部１５０の抽出部１５４は、通信内容から例えば検査に利用する情報などの所定の情報を抽出して格納処理部１６０に出力する。格納処理部１６０は、個々の情報を通信内容格納部１０２に格納する。格納処理部１６０は、例えばウェブページを取得するためのセッションごとにオブジェクトを生成し、そのオブジェクトに抽出した情報を格納してもよい。
【００４３】
図８は、図５の通信内容格納部１０２に保持されるオブジェクトのクラス構造を説明するための図である。通信クラス５２０は、例えばプロトコル、通信日時、ヘッダ、ボディ等をメンバに持つ。リクエストクラス５２２は、通信クラス５２０を継承したクラスであり、更にメンバとして、例えばリクエスト時のメソッド、ＵＲＬ、パラメータを持つ。パラメータは、リクエストヘッダ、リクエストボディなどに含まれる引数を保持するためのメンバである。このパラメータを保持するためのメンバは、パラメータを管理するためのクラス（以下、単に「パラメータクラス」という）のオブジェクトのポインタ等を保持してもよい。そして、パラメータクラスが複数のパラメータを保持できる構造を有することで、リクエストクラス５２２は、リクエストメッセージに含まれる複数のパラメータを保持できる。リクエストメッセージのヘッダ部分およびボディ部分は、それぞれ、ヘッダならびにボディのメンバに保持される。
【００４４】
レスポンスクラス５２４は、通信クラス５２０を継承したクラスであり、更にメンバとして応答コード、パラメータ等を持つ。レスポンスメッセージのヘッダ部分およびボディ部分は、それぞれ、ヘッダならびにボディのメンバに保持される。クッキーなどは、パラメータのメンバに保持される。
【００４５】
アクセスクラス５２６は、リクエストクラス５２２およびレスポンスクラス５２４を継承したクラスであり、アクセス時のリクエストメッセージとレスポンスメッセージを記録し通信内容を管理する。アクセスクラス５２６は、更にメンバとしてセッション名、ページ属性、アクセス番号、ユーザ情報等を持つ。セッション名は、セッションを識別するための名称である。ページ属性は、例えばログイン画面、個人情報表示画面など取得したウェブページの種類を特定する情報を保持するためのメンバである。詳細は後述するが、図５の検査制御部１０６は、検査のために取得すべきウェブページに関する情報をユーザに提示する。そのウェブページに関する情報は、ページ属性として検査制御部１０６から図７の格納処理部１６０に通知される。格納処理部１６０は、そのページ属性をオブジェクトに格納する。これにより、ページ属性を付加しながらアクセス毎のオブジェクトを生成できる。アクセス番号は、セッションにおけるアクセスの順番、すなわちウェブサイトの検査を開始してから何番目のアクセスなのかを指定する情報を保持するためのメンバである。ユーザ情報は、そのセッションを行うために利用した個人情報を特定する情報を保持するためのメンバである。図７の格納処理部１６０は、アクセスが発生する毎にアクセスクラス５２６のオブジェクトを生成して、そのオブジェクトを、セッションを管理するオブジェクトに関連付けて通信内容を記録する。
【００４６】
図７に戻り、ウェブサイト５０からレスポンスメッセージ（以下、単に「レスポンス」ともいう）を受信した場合、第１判定部１５２はそのレスポンスが暗号化されているか否かを判定する。例えば、そのレスポンスがＨＴＴＰに準じている場合、すなわち暗号化されていない場合、第１判定部１５２はそのレスポンスを取得部１５０の抽出部１５４に出力する。抽出部１５４は、図８のアクセスクラス５２６のメンバに保持する情報を抽出した後、そのレスポンスを第２判定部１５６に出力する。第２判定部１５６は、抽出部１５４から供給されたレスポンスをそのままブラウザ１４に出力する。
【００４７】
ウェブサイト５０からのレスポンスがＨＴＴＰＳに準じている場合、すなわち暗号化されている場合、第１判定部１５２はその暗号化されたレスポンスを第１暗号化・復号部１５８に出力する。第１暗号化・復号部１５８は、その暗号化されたレスポンスを復号して抽出部１５４に出力する。抽出部１５４は、前述した情報を抽出し、格納処理部１６０に出力する。そして抽出部１５４は、そのレスポンスを第２暗号化・復号部１５９に出力する。第２暗号化・復号部１５９は、そのレスポンスを再び暗号化して、第２判定部１５６に出力する。第２判定部１５６は、その暗号化されたレスポンスをブラウザ１４に出力する。このように、レスポンスがＨＴＴＰＳに準じている場合、取得部１５０は、第１判定部１５２、第１暗号化・復号部１５８、抽出部１５４、第２暗号化・復号部１５９、および第２判定部１５６を介してレスポンスをブラウザ１４に出力する。また、ＨＴＴＰに準じている場合、取得部１５０は、第１判定部１５２、抽出部１５４、および第２判定部１５６を介してレスポンスをブラウザ１４に出力する。
【００４８】
ブラウザ１４からリクエストメッセージ（以下、単に「リクエスト」ということもある）を受信しウェブサイト５０に送信する場合も前述のように、暗号化されているリクエストの場合、取得部１５０は、第２判定部１５６、第２暗号化・復号部１５９、抽出部１５４、第１暗号化・復号部１５８、および第１判定部１５２を介してリクエストをウェブサイト５０に出力する。また、暗号化されていないリクエストの場合、取得部１５０は、第２判定部１５６、抽出部１５４、および第１判定部１５２を介してリクエストをウェブサイト５０に出力する。
【００４９】
図９は、図５の推定部２００の内部構成図である。抽出部２０２は、通信内容格納部１０２に保持された通信内容に基づいてセッション追跡パラメータの候補（以下、単に「パラメータ候補」という）を抽出し、絞込部２０４に出力する。抽出部２０２は、通信内容に含まれるパラメータについて、以下の事実が確認されたときに、加点し、合計点の高いものから順に、セッション追跡パラメータである可能性が高いと推定し抽出する。
【００５０】
（１）そのパラメータが、Ａｕｔｈｏｒｉｚａｔｉｏｎフィールド中にある場合
（２）そのパラメータが、クッキーに含まれており、後述のログアウト機能検査フェーズで、ログアウト時にそのクッキーが設定されている場合
（３）そのパラメータが、セキュアフラグのセットされたクッキー中にある場合
（４）そのパラメータが、例えば「ｓｅｓｓｉｏｎ」、「ｓｉｄ」など特定の文字列を含むパラメータ名の場合
（５）後述のセッション追跡パラメータ検証フェーズで、そのパラメータを削ると個人情報画面が表示されなくなることが確認された場合
（６）ログインフェーズで、ログイン直後の画面にそのパラメータが含まれていた場合
（７）個人情報を表示する画面を出すためのリクエスト中に、そのパラメータが常に含まれていた場合
【００５１】
図１０は、図９の推定部２００におけるパラメータ候補の選択処理のフローチャートの一例である。図９の抽出部２０２は、まずクッキーからパラメータ候補を抽出する（Ｓ１００）。次に、抽出部２０２は、ＵＲＬからパラメータ候補を抽出する。次に、抽出部２０２は、ボディからパラメータ候補を抽出する。そして、抽出部２０２は、認証用のフィールドからパラメータ候補を抽出する。他の例では、これらの処理の順序を変えてもよい。これにより抽出部２０２は、例えばクッキー、ＧＥＴ、ＰＯＳＴ、ベーシック認証などのいずれかの伝送方式で送信された値からパラメータ候補を抽出できる。
【００５２】
図９に戻り、特定部２０６は、通信内容格納部１０２に保持されたページ属性に基づいて、個人情報を含むウェブページ（以下、単に「注目ページ」という）を特定し、絞込部２０４に出力する。また、特定部２０６は、通信内容に、例えば個人情報、ＨＩＤＤＥＮタグ、パスワード入力ボックスなどの文字列が含まれているウェブページを注目ページとして特定してもよい。そして、特定部２０６は、注目ページの情報を絞込部２０４に供給する。
【００５３】
注目ページは、ユーザ毎に提供されることが多いため、注目ページにはセッション追跡パラメータが含まれている可能性が高い。絞込部２０４は、注目ページの情報と抽出部２０２から供給されたセッション追跡パラメータの候補とに基づいて、セッション追跡パラメータの候補を絞り込む。絞込部２０４は、例えば、再現頻度の多い順にセッション追跡パラメータの候補を絞り込んでもよいし、注目ページに含まれるセッション追跡パラメータの候補を残すように絞り込んでもよい。
【００５４】
図１１は、図５の検証部４００の内部構成図である。パラメータ検査部４０２は、推定部２００により抽出されたパラメータ候補の中から、セッション追跡パラメータを特定する。検証対象となるパラメータ候補は、本図では分析部３００から供給されているが、他の例では抽出部２０２から直接供給されてもよい。なりすまし検査部４０４は、他のユーザになりすましてウェブサイト５０を利用することができるか否かを検証する。許可部４０６は、検査制御部１０６を介してユーザから、パラメータ検査部４０２又はなりすまし検査部４０４における検証処理の実行許否を受け付ける。そして、ユーザから許可された場合、許可部４０６は、パラメータ検査部４０２、およびなりすまし検査部４０４にその検証処理の実行を許可する。パラメータ検査部４０２およびなりすまし検査部４０４は、ユーザの個人情報を利用して自動的にウェブサイト５０にアクセスを行うため、その許否をユーザから求める。
【００５５】
図１２は、図１１のパラメータ検査部４０２の内部構成図である。パラメータ候補入力部４１０は、分析部３００からパラメータ候補を受け付ける。そして受け付けたパラメータ候補を選択部４１２に出力する。選択部４１２はパラメータ候補の中から一つを選び出し、選択したセッション追跡パラメータ（以下、単に「検証パラメータ」という）を編集部４１６に出力するとともに選択したことを読込部４１４に通知する。
【００５６】
図１３は、選択部４１２における検証パラメータを選択するためのパラメータ選択画面７２の一例を示す図である。検証パラメータを選択する場合、パラメータ選択画面７２が表示される。伝送方式欄５５０には、パラメータ候補毎に伝送方式が表示される。名称欄５５２は、セッション追跡パラメータの名称が表示される。値欄５５４には、その値が表示される。スコア欄５５６は、例えば抽出回数などにより加算して得たポイントが表示される。この値は、例えば図９の推定部２００がパラメータ候補を決める際に算出する。状態欄５５８は、検証を既に行ったか否かを示す情報を保持する。ユーザは、任意のセッション候補を選択して検証パラメータを決めてよい。また、スコアの高いものから順に選択部４１２が検証パラメータを決めてもよい。
【００５７】
図１２に戻り、読込部４１４は、既に行ったセッション、つまり通信内容格納部１０２に保持されている通信内容を読み込み、編集部４１６に供給する。編集部４１６は、供給された通信内容から検証パラメータを取り除いて新たな通信内容つまり新たなリクエストを生成する。そして、そのリクエストを通信部４１８に出力する。そのリクエストは、本実施形態では、注目ページを取得するためのリクエストである。通信部４１８は、そのリクエストをウェブサイト５０に出力し、それに応じたレスポンスをウェブサイト５０から受信する。通信部４１８は、ウェブサイト５０からのレスポンスを判定部４２０に出力する。新たに取得したレスポンスを、「現レスポンス」という。
【００５８】
判定部４２０は、図５の個人情報格納部１０４に含まれる個人情報と現レスポンスとを比較して、現レスポンスに、正常のアクセス時、すなわち検証パラメータを削除していないリクエストに対するレスポンスに含まれる個人情報が含まれているかを判断する。現レスポンスに個人情報が含まれていない場合、すなわち注目ページを取得できなかった場合、判定部４２０は、検証パラメータがセッション追跡パラメータとして利用されていると判断する。また個人情報が含まれている場合、判定部４２０は、検証パラメータがセッション追跡パラメータとして利用されていないと判断する。そして、判定部４２０は、別の検証パラメータを選択することを選択部４１２に指示する。選択部４１２は、パラメータ候補中の別のセッション追跡パラメータを選択し、再び読込部４１４と編集部４１６に指示を行う。パラメータ検査部４０２はこの処理を繰り返すことにより、セッション追跡パラメータを特定する。
【００５９】
また、他の例では、判定部４２０は、現レスポンスと、例えば注目ページ取得時の過去のレスポンスとして通信内容格納部１０２に保持されている通信内容とを比較して同一のレスポンスを取得したか否かを判定してもよい。本実施形態では、通信内容格納部１０２は、通信内容毎にページ属性を付加して保持する。判定部４２０は、このページ属性に注目ページであることを指定する情報が付加された通信内容を通信内容格納部１０２から読み込み判定に利用する。例えば、判定部４２０は、現レスポンスと通信内容とが完全に一致しているか否かを判定してもよいし、現レスポンスと通信内容とが部分的に一致している否かを判定してもよい。現レスポンスと通信内容とが一致しない場合、判定部４２０は、検証パラメータがセッション追跡パラメータとして利用されていると判断する。また、現レスポンスと通信内容とが一致した場合、判定部４２０は、検証パラメータがセッション追跡パラメータとして利用されていないと判断し、別の検証パラメータを選択することを選択部４１２に指示する。
【００６０】
図１４は、図１１のなりすまし検査部４０４の内部構成図である。ログイン処理部４３０は、分析部３００から指示された場合に図５の個人情報格納部１０４に保持されている第２ユーザの情報を利用してウェブサイト５０にログインする。そしてログイン処理部４３０は、ログインしたことを読込部４３２に通知する。パラメータ取得部４４０は、図１２のパラメータ検査部４０２により特定されたセッション追跡パラメータを、第２ユーザでログインして得られたセッションから取得する。この第２ユーザでログインしたときのセッション追跡パラメータを、以下、単に「現セッションパラメータ」という。パラメータ取得部４４０は、現セッションパラメータを置換部４３４に出力する。読込部４３２は、通信内容格納部１０２から過去に記録した、第１ユーザでログインしたときの注目ページを取得するためのリクエストを読み込み置換部４３４に出力する。置換部４３４は、そのリクエストに含まれるセッション追跡パラメータを現セッションパラメータに置き換えて新たなリクエストを生成する。そして、置換部４３４は、生成したリクエストを通信部４３６に出力する。
【００６１】
通信部４３６は、そのリクエストをウェブサイト５０に出力する。そしてウェブサイト５０からのレスポンスを受信し、なりすまし検査部４０４の判定部４３８に出力する。判定部４３８は、個人情報格納部１０４に含まれる情報とレスポンスとを比較して、そのレスポンスに第１ユーザと第２ユーザのどちらの個人情報が含まれているかを判断する。レスポンスが第１ユーザの個人情報の場合、判定部４３８は、ウェブサイト５０は、なりすまし行為に対する脆弱性を有すると判断する。また個人情報を取得できなかった場合、ウェブサイト５０は、なりすまし行為により個人情報が漏洩することはないと判断する。判定部４３８は、その判断結果を分析部３００に送信する。
【００６２】
図１５は、図５の試験部３５０の内部構成図である。ログアウト機能検査部３５２は、分析部３００からの指示に基づいてウェブサイト５０におけるログアウト機能を検査する。ログアウト機能は、ログアウトした時点で、セッション追跡パラメータを破棄する機能である。破棄されないウェブサイト５０の場合、不正にアクセスされる脆弱性が内在すると判断できる。タイムアウト機能検査部３５４は、分析部３００からの指示に基づいてウェブサイト５０におけるタイムアウト機能を検査する。タイムアウト機能は、セッションが放置された状態で、所定の時間が経過した場合に、セッション追跡パラメータを破棄する機能である。破棄されないウェブサイト５０の場合、不正にアクセスされる脆弱性が内在すると判断できる。
【００６３】
図１６は、図１５のログアウト機能検査部３５２の内部構成図である。ログアウト処理部３６０は、分析部３００からの指示に応じてウェブサイト５０からログアウトをする。リクエスト指示部３６２は、ログアウトの後、過去のリクエストを１０２から読み込み、通信部３６４に出力する。通信部３６４は、そのリクエストをウェブサイト５０に送信する。また通信部３６４は、ウェブサイト５０からのレスポンスを受信し判定部３６６に出力する。判定部３６６は、現レスポンスと、例えば注目ページ取得時の過去のレスポンスとして通信内容格納部１０２に保持されている通信内容とを比較する。例えば、判定部３６６は、現レスポンスと通信内容とが完全に一致しているか否かを判定してもよいし、現レスポンスと通信内容とが部分的に一致しているか否かを判定してもよいし、現レスポンスに部分的に含まれる個人情報が図５の個人情報格納部１０４に保持されている個人情報に一致するか否かを判定してもよい。現レスポンスと過去の通信内容とが一致している場合、判定部３６６は、ウェブサイト５０におけるログアウト機能は不十分であると判断する。また一致しない場合、判定部３６６は、ウェブサイト５０におけるログアウト機能は正常に機能していると判断する。判定部３６６は、判断結果を分析部３００に送信する。
【００６４】
図１７は、図１５のタイムアウト機能検査部３５４の内部構成図である。設定部３７０は、タイムアウト機能を試験するための時間すなわちリクエストを送信するまでの待ち時間を設定し、計時部３７２に計時を開始することを指示する。計時部３７２は、設定部３７０に設定された時間が経過した後、その旨を指示部３７４に通知する。指示部３７４は、計時部３７２からの通知により通信部３７６に対してリクエストを送信することを指示する。通信部３７６は、その指示に応じて設定部３７０に一時的に保持されていたリクエストを取得し、ウェブサイト５０に送信する。そして通信部３７６は、ウェブサイト５０からのレスポンスを受信し、タイムアウト機能検査部３５４の判定部３７８に出力する。判定部３７８は、レスポンスと通信内容格納部１０２に保持された通信内容とを比較する。一致している場合、判定部３７８は、ウェブサイト５０においてタイムアウト機能が検査で設定した時間では動作していないと判断する。また一致していない場合、判定部３７８は、検査で設定した時間が経過した場合には、ウェブサイト５０においてタイムアウト機能が正常に動作していると判断する。
【００６５】
図１８は、図５の分析部３００の内部構成図である。パラメータ状態判断部３０２は、通信内容格納部１０２に保持されたデータを参照してセッション追跡パラメータの状態を判断する。例えばセッション追跡パラメータにセキュアフラグが設定されているか否かを判断し、その判断結果を数値化部３１２に出力する。推測容易性判断部３０４は、通信内容格納部１０２および個人情報格納部１０４に保持された一連のデータに基づいてセッション追跡パラメータの推測が容易か否かを判断し、その判断結果を数値化部３１２に出力する。例えばその容易性はセッション追跡パラメータにユーザＩＤが含まれていること、規則性があることなどに基づいて容易性を判断する。
【００６６】
伝送形式判断部３０６は、通信内容格納部１０２及びに推定部２００に保持されているデータに基づいてセッション追跡パラメータの伝送形式を判断する。そして判断結果を数値化部３１２に出力する。伝送形式判断部３０６は、例えばセッション追跡パラメータがクッキー、ＧＥＴ、ＰＯＳＴ、ベーシック認証のいずれを利用して伝送されているかを判断する。伝送形式判断部３０６は、リクエストメッセージ及びレスポンスメッセージに含まれるセッション追跡パラメータの埋め込み位置を調べることで伝送方式を特定する。
【００６７】
検証結果受付部３０８は、検証部４００から検証結果を受け付け数値化部３１２に出力する。試験結果受付部３１０は、試験部３５０から試験結果を受け付け数値化部３１２に出力する。数値化部３１２は、それぞれのユニットから供給された値を数値化し、例えば合計ポイントを選択部３１４に出力する。選択部３１４は、そのポイントや各ユニットからの診断結果の組み合わせに応じて知識データベース３１６から所定のコメントを選択し、検査制御部１０６に出力する。そして、選択されたコメントが図５の表示処理部１１０を介して表示部に表示される。
【００６８】
それぞれのユニットから供給される判断結果には、それぞれ重み付けがされており、その重み付けに応じて数値化部３１２は、加算処理などの数値化処理を行ってもよい。知識データベース３１６は、単に数値とコメントを対応づけるだけでなくそれぞれの判断結果の組み合わせに応じて所定のコメントが選択可能になるようなデータ構造を有する。例えばセッション追跡パラメータの伝送形式ごとにコメントが対応づけられていてもよいし、その他の判断結果の組み合わせも対応づけられていてもよい。
【００６９】
図１９は、検査結果画面７０の一例を示す図である。検査結果画面７０には、調査対象となったウェブサイト、診断の状況、診断結果、セッション追跡パラメータなどに関する情報の一覧が表示される。
【００７０】
図２０は、検査結果画面７４の他の例を示す図である。この検査結果画面７４は、調査対象のウェブサイトに内在する脆弱性に関する情報を表示した画面である。図１８の選択部３１４は、セッション追跡パラメータがクッキーに格納されている場合に、もしウェブサイトにクロスサイトスクリプティングに対する脆弱性が内在すると、なりすまし行為により個人情報が盗用される可能性があることを通知するコメントを選択する。これにより、本図の画面が表示される。
【００７１】
図２１は、検査結果画面７６の他の例を示す図である。この検査結果画面７６も、図２０と同様に調査対象のウェブサイトに内在する脆弱性に関する情報を表示した画面である。図１８の選択部３１４は、セッション追跡パラメータの値が、ユーザ毎に似通っていて容易に推定できる場合に、なりすまし行為に対する脆弱性が内在することを通知するコメントを選択する。これにより、本図の画面が表示される。
【００７２】
図２２は、図１の検査装置１００におけるウェブサイト５０の脆弱性を検査するための処理のフローチャートの一例である。まず、検査装置１００は、ブラウザ１４とウェブサイト５０との通信内容に基づいてセッション追跡パラメータを推定する（Ｓ１０）。次に、検査装置１００は、推定したセッション追跡パラメータの正否を検証する（Ｓ１２）。次に、検査装置１００は、ウェブサイト５０における、なりすまし行為に対する脆弱性すなわちアクセス制御の機能を検証する（Ｓ１４）。
【００７３】
図２３は、図２２のステップ１０の詳細なフローチャートの一例である。セッション追跡パラメータの推定処理を開始すると、検査装置１００は、通信内容の記録を開始する（Ｓ２０）。そして、検査装置１００は、ウェブサイト５０にログインすることをユーザに指示する（Ｓ２２）。次に、検査装置１００は、個人情報ページの取得をユーザに指示する。そして、この指示に応じてユーザはウェブページのリンクをたどり、個人情報ページを探索してブラウザ１４に表示させる。検査装置１００は、その個人情報ページを記録する（Ｓ２４）。この探索作業中も、検査装置１００は通信内容を記録している。
【００７４】
次に、検査装置１００は、ウェブサイト５０が提供する複数のウェブページを任意に探索することを指示し、この間の通信内容を記録しセッション追跡パラメータを統計的に推定するために複数の通信内容を収集する（Ｓ２６）。そして、検査装置１００は、ウェブサイト５０からログアウトを指示する（Ｓ２７）。そして、検査装置１００は、ログアウト後に再度セッション追跡パラメータをリクエストに付加して、個人情報ページの取得を試みることでログアウト機能の検査を行う（Ｓ２８）。
【００７５】
ログアウト機能を検査した後、検査装置１００は通信内容の記録を終了する（Ｓ３０）。そして、検査装置１００は、ステップ２８までの一連のセッションにおける通信内容に基づいてセッション追跡パラメータを推定する（Ｓ３２）。そして、検査装置１００は、推定したセッション追跡パラメータの伝送形式やデータ構成などに基づいて分析を行い（Ｓ３４）、ウェブサイト５０に存在する脆弱性を分析結果として表示する（Ｓ３６）。
【００７６】
図２４は、図２２のステップ１２の詳細なフローチャートの一例である。セッション追跡パラメータの検証処理を開始すると、検査装置１００は、通信内容の記録を開始する（Ｓ４０）。そして、検査装置１００は、ウェブサイト５０にログインすることをユーザに指示する（Ｓ４２）。次に、検査装置１００は、個人情報ページを取得することをユーザに指示し、この指示に応じて表示された個人情報ページを記録する（Ｓ４２）。
【００７７】
そして、検査装置１００は、ユーザ情報を利用してセッション追跡パラメータの検証を行うことをユーザに通知し、その処理の実行の許否を問い合わせる（Ｓ４４）。許可された場合（Ｓ４４のＹ）、検査装置１００は、パラメータ候補の中から検証パラメータを選択する（Ｓ４６）。そして、検査装置１００は、ステップ４２で個人情報ページを取得するためにウェブサイト５０に送信したリクエストから、検証パラメータを取り除いて新たなリクエストを生成する（Ｓ４８）。
【００７８】
そして、検査装置１００はそのリクエストをウェブサイト５０に送信し（Ｓ５０）、ウェブサイト５０からレスポンスを受信する（Ｓ５２）。次に、検査装置１００は、そのレスポンスの内容に基づいて個人情報ページを取得できたか否かを判定する（Ｓ５４）。個人情報ページを取得できた場合（Ｓ５４のＹ）、ステップ４６に戻り、検査装置１００は別のパラメータ候補を検証パラメータとして選択する。個人情報ページを取得できなかった場合（Ｓ５４のＮ）、検査装置１００は通信内容の記録を終了する（Ｓ５６）。そして、検査装置１００は、個人情報ページを取得できなかったときの、検証パラメータをセッション追跡パラメータとして特定する（Ｓ５８）。検査装置１００は、特定したセッション追跡パラメータの伝送方式などに基づいて、図２３のステップ３４における分析より更にウェブサイト５０に内在する脆弱性を絞り込んで分析を行い（Ｓ６０）、分析結果を表示する（Ｓ６２）。ステップ４４で、許可されなかった場合（Ｓ４４のＮ）、検査装置１００は処理を中止する。
【００７９】
図２５は、図２２のステップ１４の詳細なフローチャートの一例である。なりすましの検証処理を開始すると、検査装置１００は、通信内容の記録を開始する（Ｓ７０）。そして、検査装置１００は、ユーザに第２ユーザ情報でウェブサイト５０にログインすることを指示する（Ｓ７２）。次に、検査装置１００は、個人情報ページを取得することをユーザに指示し、この指示に応じて表示された個人情報ページを記録する（Ｓ７４）。
【００８０】
そして、検査装置１００は、なりすましの脆弱性を検証するための処理を行うことをユーザに通知し、その処理の実行の許否を問い合わせる（Ｓ７６）。許可された場合（Ｓ７６のＹ）、検査装置１００は、ステップ７４で個人情報ページを取得するためにウェブサイト５０に送信したリクエストに含まれるセッション追跡パラメータを、第２ユーザでログインした後に得られた現セッションパラメータに置き換えて新たなリクエストを生成する（Ｓ７８）。
【００８１】
そして、検査装置１００はそのリクエストをウェブサイト５０に送信し（Ｓ８０）、ウェブサイト５０からレスポンスを受信する（Ｓ８２）。検査装置１００は、通信内容の記録を終了する（Ｓ８４）。次に、検査装置１００は、そのレスポンスの内容に基づいて、第１ユーザの個人情報を取得できたか否かを判定する（Ｓ８６）。第１ユーザの個人情報を取得できた場合、ウェブサイト５０はなりすまし行為に対する脆弱性を有する。そして検査装置１００は、セッション追跡パラメータの伝送方式などを考慮しながら分析を行い（Ｓ８８）、分析結果を表示する（Ｓ９０）。ステップ７６で、許可されなかった場合（Ｓ７６のＮ）、検査装置１００は処理を中止する。
【００８２】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、そうした観点から留意点を述べる。
【００８３】
実施の形態では、本システムの運用を基本的に個人の意思に委ねるとした。しかし、本システムの公益性の高さに鑑みれば、その運用は当然公益的な事業を実施可能な主体に一括管理させることができる。その場合、図１等の検査装置１００を当該運用者のサーバなどで実現すればよい。本発明はその運用主体や運用形式を問うものではない。
【００８４】
例えば、システム監査業者がシステムのセキュリティ監査に本システムを利用してもよいし、ウェブアプリケーションの発注者が、システムの検収のために、本システムを利用してもよい。従来、こうした監査や検収の基準を定めることが難しく、明確にされることはなかった。しかし、本システムにより脆弱性が検出されないことという客観的な基準を設けることができる。
【００８５】
個人レベルで行った検査結果を収集するサーバをネットワーク１２に設ける。そして、ウェブサイトにアクセスする際に、ブラウザ１４がまずサーバに接続し、そのウェブサイトの安全性を確認、もしくはユーザに提示したのち、アクセスを開始するようにしてもよい。こうした機能を有するブラウザ１４の構成としては、アクセス指示を検出する検出部と、アクセス先として指定されたＵＲＬを検索キーとして検査結果を保持するサーバに安全性を問い合わせるアクセス先情報取得部と、取得した安全性をユーザに提示する提示部とを有する。これにより、他のユーザにより集められたウェブサイトの検査結果を有効的に利用できる。また、無数に存在するウェブサイトの検査結果を極短期間に収集できる。
【００８６】
更に、このブラウザ１４は、検査装置１００を有し、アクセス先情報取得部が、アクセス先の検査結果を取得できなかった場合に、検査装置１００にアクセス先の検査をさせてもよい。そして、ブラウザ１４は新たに取得した検査結果をサーバに登録するようにしてもよい。
【００８７】
【発明の効果】
本発明によれば、検査対象となるウェブサイトとクライアントとの通信内容に基づいて、ウェブサイトに内在する脆弱性を検査できる。
【図面の簡単な説明】
【図１】実施の形態にかかる検査システムの構成図である。
【図２】図１のウェブサイトの内部構成図である。
【図３】図１のリクエストメッセージのデータ構造の一例を示す図である。
【図４】図１のレスポンスメッセージのデータ構造の一例を示す図である。
【図５】図１の検査装置の内部構成図である。
【図６】図５の個人情報格納部におけるデータ構造の一例を示す図である。
【図７】図５の取得部の内部構成図である。
【図８】図５の通信内容格納部に保持されるオブジェクトのクラス構造を説明するための図である。
【図９】図５の推定部の内部構成図である。
【図１０】図９の推定部におけるパラメータ候補の選択処理のフローチャートである。
【図１１】図５の検証部の内部構成図である。
【図１２】図１１のパラメータ検査部の内部構成図である。
【図１３】図１２の選択部における検証パラメータを選択するためのパラメータ選択画面の一例を示す図である。
【図１４】図１１のなりすまし検査部の内部構成図である。
【図１５】図５の試験部の内部構成図である。
【図１６】図１５のログアウト機能検査部の内部構成図である。
【図１７】図１５のタイムアウト機能検査部の内部構成図である。
【図１８】図５の分析部の内部構成図である。
【図１９】検査結果画面の一例を示す図である。
【図２０】検査結果画面の他の例を示す図である。
【図２１】検査結果画面の他の例を示す図である。
【図２２】図１の検査装置におけるウェブサイトの脆弱性を検査するための処理のフローチャートの一例である。
【図２３】図２２のステップ１０の詳細なフローチャートの一例である。
【図２４】図２２のステップ１２の詳細なフローチャートの一例である。
【図２５】図２２のステップ１４の詳細なフローチャートの一例である。
【符号の説明】
１０  検査システム、１２  ネットワーク、１４  ブラウザ、２０  リクエストメッセージ、２２  レスポンスメッセージ、５０  ウェブサイト、１００  検査装置、１０２  通信内容格納部、１０４  個人情報格納部、１０６  検査制御部、１０８  操作受付部、１１０  表示処理部、１５０  取得部、１５２  第１判定部、１５４  抽出部、１５６  第２判定部、１５８  第１暗号化・復号部、１５９  第２暗号化・復号部、１６０  格納処理部、２００  推定部、２０２  抽出部、２０４  絞込部、２０６  特定部、２０８  ユーザ指示受付部、３００分析部、３０２  パラメータ状態判断部、３０４  推測容易性判断部、３０６伝送形式判断部、３０８  検証結果受付部、３１０  試験結果受付部、３１２数値化部、３１４  選択部、３１６  知識データベース、３５０  試験部、３５２  ログアウト機能検査部、３５４  タイムアウト機能検査部、３６  セッション追跡パラメータ、３６０  ログアウト処理部、３６２  リクエスト指示部、３６４  通信部、３６６  判定部、３７０  設定部、３７２  計時部、３７４  指示部、３７６  通信部、３７８  判定部、４００  検証部、４０２  パラメータ検査部、４０４  なりすまし検査部、４０６  許可部、４１０  パラメータ候補入力部、４１２  選択部、４１４  読込部、４１６  編集部、４１８  通信部、４２０  判定部、４３０  ログイン処理部、４３２  読込部、４３４  置換部、４３６  通信部、４３８  判定部、４４０  パラメータ取得部。
【図１】
2004310267.tif 000003
【図２】
2004310267.tif 000004
【図３】
2004310267.tif 000005
【図４】
2004310267.tif 000006
【図５】
2004310267.tif 000007
【図６】
2004310267.tif 000008
【図７】
2004310267.tif 000009
【図８】
2004310267.tif 000010
【図９】
2004310267.tif 000011
【図１０】
2004310267.tif 000012
【図１１】
2004310267.tif 000013
【図１２】
2004310267.tif 000014
【図１３】
2004310267.tif 000015
【図１４】
2004310267.tif 000016
【図１５】
2004310267.tif 000017
【図１６】
2004310267.tif 000018
【図１７】
2004310267.tif 000019
【図１８】
2004310267.tif 000020
【図１９】
2004310267.tif 000021
【図２０】
2004310267.tif 000022
【図２１】
2004310267.tif 000023
【図２２】
2004310267.tif 000024
【図２３】
2004310267.tif 000025
【図２４】
2004310267.tif 000026
【図２５】
2004310267.tif 000027