[go: up one dir, main page]

JP2004310267A - Website inspection equipment - Google Patents

Website inspection equipment Download PDF

Info

Publication number
JP2004310267A
JP2004310267A JP2003100271A JP2003100271A JP2004310267A JP 2004310267 A JP2004310267 A JP 2004310267A JP 2003100271 A JP2003100271 A JP 2003100271A JP 2003100271 A JP2003100271 A JP 2003100271A JP 2004310267 A JP2004310267 A JP 2004310267A
Authority
JP
Japan
Prior art keywords
unit
website
session
session tracking
tracking parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003100271A
Other languages
Japanese (ja)
Other versions
JP3896486B2 (en
Inventor
Hiromitsu Takagi
浩光 高木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
National Institute of Advanced Industrial Science and Technology AIST
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Institute of Advanced Industrial Science and Technology AIST filed Critical National Institute of Advanced Industrial Science and Technology AIST
Priority to JP2003100271A priority Critical patent/JP3896486B2/en
Publication of JP2004310267A publication Critical patent/JP2004310267A/en
Application granted granted Critical
Publication of JP3896486B2 publication Critical patent/JP3896486B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Abstract

【課題】不正アクセス行為に対する脆弱性が内在するウェブサイトが多く存在する。
【解決手段】検査装置100は、ウェブサイト50とブラウザ14との通信内容を取得する。検査装置100は、通信内容に基づいてセッションを特定するセッション追跡パラメータを推定する。そして、検査装置100は、セッション追跡パラメータに基づいて、ウェブサイト50に内在する脆弱性を分析する。これにより、ウェブサイト50に対して検査のための信号を送ることなく、通常の通信内容に基づいて脆弱性を分析できる。
【選択図】 図1
[PROBLEMS] There are many websites inherently vulnerable to unauthorized access.
An inspection apparatus acquires communication contents between a website and a browser. The inspection device 100 estimates a session tracking parameter for specifying a session based on the communication content. Then, the inspection device 100 analyzes the vulnerability existing in the website 50 based on the session tracking parameter. Thus, the vulnerability can be analyzed based on the normal communication content without sending a signal for inspection to the website 50.
[Selection diagram] Fig. 1

Description

【0001】
【発明の属する技術分野】
この発明は装置を検査する技術に関し、とくにネットワークを介してコンテンツを提供するウェブサイトに内在する脆弱性を検査する技術に関する。
【0002】
【従来の技術】
ネットワーク技術が発展することにより、例えば電子メールの利用やウェブサイトの閲覧のためにネットワーク利用者数が増大している。こうしたネットワークの利用は、今や当然の情報取得手段として日々の生活に浸透しつつある。また、ユーザ数の増加と相乗して、様々なサービスを提供するウェブサイトの数も増加している。こうしたウェブサイトの中には、例えばショッピングサイト等のようにユーザの個人情報を扱い、ユーザ毎にサービスを提供するものが多く存在する。
【0003】
本来、そうしたウェブサイトは、個人情報の漏洩が無いようにセキュリティを考えたウェブアプリケーションの設計がなされ、作成される必要があるが、実際には欠陥を有するウェブサイトが多く存在する。ハッカーやクラッカーなどと呼ばれる意図的にウェブサイトに攻撃を仕掛ける者は、ウェブサイトにおける欠陥を探し出し、例えば、なりすましやクロスサイトスクリプティングなどの攻撃を仕掛け、個人情報を盗用する。
【0004】
近年、ウェブサイトにおける個人情報の漏洩問題が頻繁に取り沙汰され、その攻撃手法なども公表されているにも拘わらず、一向に問題は減少しない。こうした問題を引き起こすセキュリティ上の欠陥は、例えばウェブアプリケーションの開発、作成時の基礎的な誤りであることが多い。また、ウェブサイトの運用者の問題意識が欠落していることにより、個人情報の漏洩が起こりうる欠陥があるにもかかわらず、欠陥を放置したまま運用がされているウェブサイトもある。
【0005】
こうした個人情報の漏洩を防止する技術として、既知の攻撃パターンと、実際の通信パターンとを比較して攻撃を検出し、サイト管理者に通知するIDS(Intruder Detection System)や、既知の攻撃パターンを検査対象のウェブサイトに対してテスト目的で仕掛けることで、脆弱性の有無を検出する技術がある(特許文献1)。
【0006】
【特許文献1】
米国特許第6311278号明細書
【0007】
【発明が解決しようとする課題】
しかしながら、こうしたセキュリティ対策技術は、既知の攻撃が対象であり、新たなパターンで攻撃された場合には、それを防ぐことはできない。また、特許文献1で開示される技術では、検査対象のウェブサイトに対して攻撃を直接行うので、仮に調査対象のウェブサイトに脆弱性が存在する場合、検査のためにそのウェブサイトに予期せぬダメージを与えかねない。
【0008】
本発明は上記課題に鑑みてなされたものであり、その目的は、ウェブサイトに内在する脆弱性を検査する技術、ウェブサイトに対して攻撃を仕掛けることなく脆弱性を判断する技術、客観的な基準に基づいてウェブサイトの安全性を評価するための技術を提供することにある。また、副次的には、いわゆる不正アクセスとみなしうる検査手法を回避した検査技術を提供することにある。さらに別の目的としては、実際にウェブサイトを利用しようとしている個人本人が、その利用に先立ってウェブサイトの安全性を個人レベルで確認する技術を提供することにある。
【0009】
【課題を解決するための手段】
本発明のある態様は、ウェブサイトを検査する装置である。この装置は、ウェブサイトとクライアントとの通信内容を取得する取得部と、前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、推定されたセッション追跡パラメータに基づいて前記ウェブサイトに内在する脆弱性を分析する分析部とを備える。これにより、この装置は、通信内容に含まれるセッション追跡パラメータに基づいて、間接的にウェブサイトの脆弱性を分析することができるので、検査行為によりウェブサイトに悪影響を及ぼさない。
【0010】
前記推定部は、前記通信内容に基づいて前記セッション追跡パラメータの候補を抽出する抽出部と、前記ウェブサイトにおけるウェブページの取得処理を繰り返すことにより、前記候補の中からセッション追跡パラメータを絞り込む絞込部とを有してもよい。これにより、通信内容に含まれる各種のパラメータから、セッション追跡パラメータとして利用されている可能性の高いパラメータを抽出できる。
【0011】
この装置は、前記ウェブサイトと前記クライアントとのセッションにおいて、前記通信内容に前記セッション追跡パラメータが含まれる可能性が高いウェブページを注目ページとして特定する特定部を更に備え、前記絞込部は、前記候補のうち、前記注目ページに係るセッションにおいて取得した通信内容に基づいて抽出した候補に高い優先度をつけてもよい。これにより、セッション追跡パラメータを更に絞り込むことができる。「注目ページ」は、例えばログイン画面、個人情報設定画面など本来セッションを特定する情報が付加されるべきウェブページである。
【0012】
前記特定部は、所定の文字列が含まれているウェブページを前記注目ページと定めてもよい。これにより、特定部は、通信内容に基づいて注目ページを特定できる。
【0013】
この装置は、前記注目ページの指定をユーザから受け付ける受付部を備え、前記特定部は前記ユーザに指定されたウェブページを注目ページと定めてもよい。これにより、ユーザの指示に基づいて注目ページを特定できるので、個人の写真など自動的に特定することが困難な形式で、個人情報がウェブページに含まれている場合でも、注目ページを特定できる。
【0014】
前記絞込部は、前記ウェブサイトと前記クライアントとのセッションを繰り返すことにより取得された複数の通信内容から統計的手法を用いてセッション追跡パラメータを絞り込んでよい。これにより、例えば再現回数の多いものを残すようにセッション追跡パラメータの候補を絞り込むことができる。
【0015】
この装置はさらに、個人情報を保持する格納部を備え、前記分析部は、前記セッション追跡パラメータに前記個人情報が含まれているか否かを判定してもよい。これにより、この装置は、セッション追跡パラメータを容易に推測できるか否かを判断できる。
【0016】
前記分析部は、前記セッション追跡パラメータが規則性を有するか否かを一連の通信内容に含まれる前記セッション追跡パラメータに基づいて判定してもよい。これにより、この装置は、一連の通信内容に含まれるセッション追跡パラメータの値の推移に基づいて、セッション追跡パラメータを容易に推測できるか否かを判断できる。
【0017】
この装置は、セッション追跡パラメータの伝送形式を判断する判断部を更に備えてもよい。これにより、この装置は、伝送形式に応じて生じうる脆弱性を判断できる。
【0018】
この装置は、判断された伝送形式に応じて異なるコメントを前記クライアントに提供する提供部を更に備えてもよい。これにより、この装置は分析結果をコメントとしてユーザに提示できる。
【0019】
本発明の別の態様は、ウェブサイトを検査する装置である。この装置は、ウェブサイトとクライアントとの通信内容を取得する取得部と、前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、推定されたセッション追跡パラメータを取り除いて通信を行うことにより、セッション追跡パラメータの推定の正否を検証する検証部とを備える。これにより、この装置は通信内容から抽出したセッション追跡パラメータの正否を検証できる。
【0020】
前記検証部は、前記の推定されたセッション追跡パラメータを前記ウェブサイトへ出すべきリクエストメッセージの中から削除する編集部と、編集部で改変されたリクエストメッセージにより、本来取得されるべきウェブページが取得できなかった場合、前記セッション追跡パラメータの推定が正しかったと判定する判定部とを有する。これにより、推定されたセッション追跡パラメータをリクエストメッセージから取り除いて、新たなリクエストメッセージを生成することができる。
【0021】
この装置は、前記判定部にて、前記セッション追跡パラメータの推定が正しくなかったと判定されたとき、前記編集部および判定部は、別のパラメータを新たにセッション追跡パラメータとして処理を繰り返してもよい。これにより、複数のセッション追跡パラメータの候補の中から、正しいセッション追跡パラメータを特定できる。
【0022】
この装置は、前記検証部の動作許否をユーザに指定せしめる許可部を更に備え、前記検証部は、ユーザから許可された場合に前記検証部の動作を許可してもよい。これにより、ユーザの認識の元で、この装置は検証処理を実行できる。すなわち、検査行為が不正アクセスとして認識されない。
【0023】
この装置は、さらに、個人情報を保持する格納部を備え、前記判定部は、前記ウェブページに前記個人情報が含まれているか否かを判定してもよい。
【0024】
本発明の更に別の態様は、ウェブサイトを検査する装置である。この装置は、ウェブサイトとクライアントとの通信内容を取得する取得部と、前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、第1のユーザ情報を利用して前記ウェブサイトにログインするログイン部と、前記第1のユーザ情報とは異なる第2のユーザ情報を利用してログインしたときの所定のウェブページを取得するためのリクエストメッセージに含まれるセッション追跡パラメータを、前記第1のユーザ情報を利用してログインした後、推定されたセッション追跡パラメータに置き換える置換部と、セッション追跡パラメータを置換したリクエストメッセージに応じて、前記ウェブサイトから送信されたウェブページに、前記第2のユーザに関係する情報が含まれているか否かを判定する判定部とを備える。これにより、この装置は、ウェブサイトに内在するアクセス制御の機能不全による、第3者のなりすまし行為に対する脆弱性を検証できる。
【0025】
この装置は、前記クライアントが前記ウェブサイトからログアウトした後、前記セッション追跡パラメータを利用して、ログアウト前に実施していたセッションを再現しうるか否かを判定する調査部を更に備えてもよい。これにより、ウェブサイトにおけるログアウト機能を検査できる。
【0026】
本発明の更に別の態様は、ウェブサイトを検査する装置である。この装置は、ウェブサイトとクライアントとの通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを保持する設定部と、前記クライアントと前記ウェブサイトとのセッションが途絶えた後の経過時間を計測する計測部と、前記経過時間が所定のしきい値を超えた後、前記セッション追跡パラメータを利用し、ウェブページの提供を前記ウェブサイトに要求する指示部とを備える。これにより、ウェブサイトにおけるタイムアウト機能を検査できる。
【0027】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【0028】
【発明の実施の形態】
実施の形態に係る検査システムは、既知のシステムのごとく、ウェブサイトへ実際に攻撃を掛けるものではなく、その運用は基本的に個人レベルの意思によってなされる。したがって、実施の形態に係る検査システムを分散的にいろいろな個所に設置することにより、より多くの個人が自己のアクセスの安全性確保を目的として、可能な限り自主的にシステムの利用を図ることが基本形となる。このことは、以下の副次的効果をも産む。
1.個人が自己の責任で自己の安全を確保する習慣が広まり、国民レベルでセキュリティに対する意識を高める契機となる。
2.ウェブサイトは、多数の個人から常に検査される立場におかれ、セキュリティ意識の低いサイトは淘汰されざるを得ず、結果として、サイト運営側の意識改革の契機となる。
【0029】
図1は、実施の形態に係る検査システム10の構成図である。ウェブサイト50は、検査対象となるサイトであり、ネットワーク12を介してブラウザ14にコンテンツを提供する。検査装置100は、ブラウザ14のプロキシとして機能し、ブラウザ14とウェブサイト50との通信を中継するとともに、通信内容を取得する。そして検査装置100は、その通信内容に基づいてウェブサイト50の脆弱性を判断する。ブラウザ14と検査装置100は、所定のプログラムを実行することにより同一のコンピュータ上に形成されてもよいし、異なるコンピュータ上に形成されてもよい。
【0030】
一般にブラウザ14とウェブサイト50との通信はHTTP(Hyper Text Transfer Protocol)に基づいて行われる。HTTPに準じてコンテンツを取得する場合、ブラウザ14はウェブサイト50に対してリクエストメッセージ20を送信する。そしてウェブサイト50は、そのリクエストメッセージ20に応じてレスポンスメッセージ22を送信する。HTTPに準じて通信を行う場合、リクエストとレスポンスが通信の単位(以下、単に「アクセス」という)となる。そのため、例えばショッピングサイトなどのように、ユーザ毎に複数のウェブページにまたがったコンテンツを提供する場合、ユーザ毎に、提供中のウェブページを管理する必要がある。つまり、ユーザにコンテンツを提供するための一連のアクセス(以下、単に「セッション」という)を管理する必要がある。その管理手法として、セッション毎に識別情報を割り当てることが一般的に行われる。
【0031】
図2は、図1のウェブサイト50の内部構成図である。ウェブサイト50は任意のコンピュータに所定のプログラムを実行させることにより形成され、単一のコンピュータに単一のウェブサイトが形成されてもよいし、複数のウェブサイトが形成されてもよい。ウェブサーバ58は、HTTPに準じてコンテンツを提供する。通常コンテンツ格納部56は、例えばHTML形式のコンテンツを格納する。ウェブサーバ58は、ネットワーク12を介して要求されたコンテンツを通常コンテンツ格納部56から読み込み、送信する。
【0032】
ウェブアプリケーション54は、例えばユーザ毎のウェブページを個人情報格納部52に保持された個人情報に基づいて形成する。そして、ユーザ毎に生成したウェブページを、ウェブサーバ58を介してユーザに提供する。こうしたユーザ毎のウェブページを提供するサイトとして、例えばショッピングサイト、個人のスケジュール管理サイト、ウェブメールサイトなどがある。このような個人情報を取り扱うウェブサイト50は、ユーザ毎にウェブページを提供するため、セッション毎に識別情報(以下、単に「セッション追跡パラメータ」という)を割り当てる必要がある。
【0033】
一般にウェブサイトの脆弱性は、主に、ウェブサーバ58に内在するバグにより生じる場合と、ウェブアプリケーション54に内在するバグにより生じる場合とがある。ウェブアプリケーション54は、例えばCGIやJSP(商標)などであり、開発時の設計上の誤りや開発者のミスによりバグを含むことが多々ある。図1の検査装置100は、主にウェブアプリケーション54に内在する脆弱性を分析する。ウェブアプリケーション54における脆弱性の多くは、例えばセッション追跡パラメータの取り扱い上のミスにより生じるアクセス制御機能の不良に関するものが多い。
【0034】
例えば、セッション追跡パラメータの値が、セッション毎に変わらない、ユーザの個人情報が含まれている、推測が容易などの場合、悪意のある者が、例えば本来のユーザになりすまして個人情報を取得したり、本来のユーザに代わってサービスを受けたりすることがある。こうしたウェブアプリケーション54に内在する脆弱性は、図1のウェブサイト50とブラウザ14とで行われる通信の内容に含まれるセッション追跡パラメータに基づいて分析できる。
【0035】
図3は、図1のリクエストメッセージ20のデータ構造の一例を示す図である。リクエストメッセージ20は、リクエストヘッダ24とリクエストボディ26とを有する。セッション追跡パラメータ28は、セッション毎に割り当てられた識別情報であり、本図ではクッキーに設定されている。他の例では、セッション追跡パラメータ28は、リクエストボディ26、リクエストヘッダ24におけるURL(Uniform Resource Locator)やAuthenticationフィールドのいずれかに埋め込まれてもよい。ユーザID30は、例えばウェブサイト50におけるユーザIDを示す情報である。
【0036】
図4は、図1のレスポンスメッセージ22のデータ構造の一例を示す図である。レスポンスメッセージ22は、レスポンスヘッダ32とレスポンスボディ34とを有する。本図のレスポンスヘッダ32には、新しいセッション追跡パラメータ36をクッキーに設定するためのコマンドが付加されている。図3のセッション追跡パラメータ28や図4のセッション追跡パラメータ36などのパラメータから、ウェブサイト50におけるセッション追跡パラメータの取り扱い状態を判断できる。
【0037】
本例では、ウェブサイト50は、セッションを行うごとにインクリメントした値とユーザIDとを組み合わせることでセッション追跡パラメータを生成していることがわかる。このようなセッション追跡パラメータを推定することは容易なので、ウェブサイト50は、不正アクセスにより個人情報が漏洩する可能性があると判断できる。このように、リクエストメッセージ20およびレスポンスメッセージ22(以下、単に「通信内容」という)に含まれるセッション追跡パラメータに基づいて、ウェブサイト50に内在する脆弱性を分析することができる。図1の検査装置100は、通信内容に基づいてウェブサイト50の脆弱性を判断するため、従来の検査装置のようにウェブサイト50に対して攻撃を仕掛けることがない。このため、ウェブサイト50に被害が生じることはない。また、従来の検査装置のように既知の脆弱性を判断するだけでなく、ウェブサイト50に内在する本質的な脆弱性を分析することができる。
【0038】
図5は、図1の検査装置100の内部構成図である。検査装置100の各構成要素は、ハードウエアコンポーネントで言えば、任意のコンピュータのCPU、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インターフェース、ファクシミリ通信用のモデム等を中心に実現されるが、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。これから説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。
【0039】
取得部150は、ウェブサイト50とブラウザ14との通信内容を取得し、取得した通信内容を通信内容格納部102に格納する。推定部200は、通信内容格納部102に保持された通信内容に基づいて、セッション追跡パラメータの候補を推定し、分析部300に出力する。分析部300は、セッション追跡パラメータ等に基づいてウェブサイト50に内在する脆弱性を分析する。検証部400は、推定部200により推定されたセッション追跡パラメータの正否を検証する。試験内容の詳細は後述するが、試験部350は、例えばウェブサイト50におけるログアウト機能やタイムアウト機能など、セッション追跡パラメータに係る種々の機能を試験する。
【0040】
個人情報格納部104は、検査のために利用するウェブサイト50におけるユーザIDやパスワードなどの個人情報を保持する。検査制御部106は、取得部150、分析部300、推定部200および検証部400のそれぞれを制御する。また、検査制御部106は、操作受付部108を介してユーザから受け付けた操作指示を、その指示を必要とするユニットに提供する。また検査制御部106は操作画面や分析結果などを表示するための情報を表示処理部110に出力する。表示処理部110は、それらの情報を表示部に表示する。
【0041】
図6は、図5の個人情報格納部104におけるデータ構造の一例を示す図である。本実施の形態では、個人情報格納部104はXML(eXtensible Markup Language)形式で個人情報を保持する。ユーザ情報欄500は、2ユーザ分の個人情報を保持する。第1ユーザ情報欄502は、第1ユーザの個人情報を保持する。また、第2ユーザ情報欄504は、第2ユーザの個人情報を保持する。個人情報欄506は、例えば、ユーザID、パスワード、氏名、住所、電子メールアドレス、電話番号、クレジットカード番号など個々のユーザ情報を保持する。個人情報欄506は、漏洩により生じるリスクに関する情報を保持する損害値欄508と、個人情報の種類を特定するキーワードを保持する項目欄510と、キーワードで特定されるユーザ情報を保持する値欄512とを有する。詳細は後述するが、こうした個人情報が通信内容に含まれるか否かに基づいて、ウェブサイト50の脆弱性を分析することが可能になる。
【0042】
図7は、図5の取得部150の内部構成図である。第1判定部152および第2判定部156は、例えばHTTPS(Hyper Text Transfer Protocol over SSL)などにより通信内容が暗号化されているか否かを判定する。通信内容が暗号化されている場合に、第1暗号化・復号部158および第2暗号化・復号部159はその通信内容を復号する。また、第1暗号化・復号部158および第2暗号化・復号部159は、必要に応じて通信内容を暗号化する。取得部150の抽出部154は、通信内容から例えば検査に利用する情報などの所定の情報を抽出して格納処理部160に出力する。格納処理部160は、個々の情報を通信内容格納部102に格納する。格納処理部160は、例えばウェブページを取得するためのセッションごとにオブジェクトを生成し、そのオブジェクトに抽出した情報を格納してもよい。
【0043】
図8は、図5の通信内容格納部102に保持されるオブジェクトのクラス構造を説明するための図である。通信クラス520は、例えばプロトコル、通信日時、ヘッダ、ボディ等をメンバに持つ。リクエストクラス522は、通信クラス520を継承したクラスであり、更にメンバとして、例えばリクエスト時のメソッド、URL、パラメータを持つ。パラメータは、リクエストヘッダ、リクエストボディなどに含まれる引数を保持するためのメンバである。このパラメータを保持するためのメンバは、パラメータを管理するためのクラス(以下、単に「パラメータクラス」という)のオブジェクトのポインタ等を保持してもよい。そして、パラメータクラスが複数のパラメータを保持できる構造を有することで、リクエストクラス522は、リクエストメッセージに含まれる複数のパラメータを保持できる。リクエストメッセージのヘッダ部分およびボディ部分は、それぞれ、ヘッダならびにボディのメンバに保持される。
【0044】
レスポンスクラス524は、通信クラス520を継承したクラスであり、更にメンバとして応答コード、パラメータ等を持つ。レスポンスメッセージのヘッダ部分およびボディ部分は、それぞれ、ヘッダならびにボディのメンバに保持される。クッキーなどは、パラメータのメンバに保持される。
【0045】
アクセスクラス526は、リクエストクラス522およびレスポンスクラス524を継承したクラスであり、アクセス時のリクエストメッセージとレスポンスメッセージを記録し通信内容を管理する。アクセスクラス526は、更にメンバとしてセッション名、ページ属性、アクセス番号、ユーザ情報等を持つ。セッション名は、セッションを識別するための名称である。ページ属性は、例えばログイン画面、個人情報表示画面など取得したウェブページの種類を特定する情報を保持するためのメンバである。詳細は後述するが、図5の検査制御部106は、検査のために取得すべきウェブページに関する情報をユーザに提示する。そのウェブページに関する情報は、ページ属性として検査制御部106から図7の格納処理部160に通知される。格納処理部160は、そのページ属性をオブジェクトに格納する。これにより、ページ属性を付加しながらアクセス毎のオブジェクトを生成できる。アクセス番号は、セッションにおけるアクセスの順番、すなわちウェブサイトの検査を開始してから何番目のアクセスなのかを指定する情報を保持するためのメンバである。ユーザ情報は、そのセッションを行うために利用した個人情報を特定する情報を保持するためのメンバである。図7の格納処理部160は、アクセスが発生する毎にアクセスクラス526のオブジェクトを生成して、そのオブジェクトを、セッションを管理するオブジェクトに関連付けて通信内容を記録する。
【0046】
図7に戻り、ウェブサイト50からレスポンスメッセージ(以下、単に「レスポンス」ともいう)を受信した場合、第1判定部152はそのレスポンスが暗号化されているか否かを判定する。例えば、そのレスポンスがHTTPに準じている場合、すなわち暗号化されていない場合、第1判定部152はそのレスポンスを取得部150の抽出部154に出力する。抽出部154は、図8のアクセスクラス526のメンバに保持する情報を抽出した後、そのレスポンスを第2判定部156に出力する。第2判定部156は、抽出部154から供給されたレスポンスをそのままブラウザ14に出力する。
【0047】
ウェブサイト50からのレスポンスがHTTPSに準じている場合、すなわち暗号化されている場合、第1判定部152はその暗号化されたレスポンスを第1暗号化・復号部158に出力する。第1暗号化・復号部158は、その暗号化されたレスポンスを復号して抽出部154に出力する。抽出部154は、前述した情報を抽出し、格納処理部160に出力する。そして抽出部154は、そのレスポンスを第2暗号化・復号部159に出力する。第2暗号化・復号部159は、そのレスポンスを再び暗号化して、第2判定部156に出力する。第2判定部156は、その暗号化されたレスポンスをブラウザ14に出力する。このように、レスポンスがHTTPSに準じている場合、取得部150は、第1判定部152、第1暗号化・復号部158、抽出部154、第2暗号化・復号部159、および第2判定部156を介してレスポンスをブラウザ14に出力する。また、HTTPに準じている場合、取得部150は、第1判定部152、抽出部154、および第2判定部156を介してレスポンスをブラウザ14に出力する。
【0048】
ブラウザ14からリクエストメッセージ(以下、単に「リクエスト」ということもある)を受信しウェブサイト50に送信する場合も前述のように、暗号化されているリクエストの場合、取得部150は、第2判定部156、第2暗号化・復号部159、抽出部154、第1暗号化・復号部158、および第1判定部152を介してリクエストをウェブサイト50に出力する。また、暗号化されていないリクエストの場合、取得部150は、第2判定部156、抽出部154、および第1判定部152を介してリクエストをウェブサイト50に出力する。
【0049】
図9は、図5の推定部200の内部構成図である。抽出部202は、通信内容格納部102に保持された通信内容に基づいてセッション追跡パラメータの候補(以下、単に「パラメータ候補」という)を抽出し、絞込部204に出力する。抽出部202は、通信内容に含まれるパラメータについて、以下の事実が確認されたときに、加点し、合計点の高いものから順に、セッション追跡パラメータである可能性が高いと推定し抽出する。
【0050】
(1)そのパラメータが、Authorizationフィールド中にある場合
(2)そのパラメータが、クッキーに含まれており、後述のログアウト機能検査フェーズで、ログアウト時にそのクッキーが設定されている場合
(3)そのパラメータが、セキュアフラグのセットされたクッキー中にある場合
(4)そのパラメータが、例えば「session」、「sid」など特定の文字列を含むパラメータ名の場合
(5)後述のセッション追跡パラメータ検証フェーズで、そのパラメータを削ると個人情報画面が表示されなくなることが確認された場合
(6)ログインフェーズで、ログイン直後の画面にそのパラメータが含まれていた場合
(7)個人情報を表示する画面を出すためのリクエスト中に、そのパラメータが常に含まれていた場合
【0051】
図10は、図9の推定部200におけるパラメータ候補の選択処理のフローチャートの一例である。図9の抽出部202は、まずクッキーからパラメータ候補を抽出する(S100)。次に、抽出部202は、URLからパラメータ候補を抽出する。次に、抽出部202は、ボディからパラメータ候補を抽出する。そして、抽出部202は、認証用のフィールドからパラメータ候補を抽出する。他の例では、これらの処理の順序を変えてもよい。これにより抽出部202は、例えばクッキー、GET、POST、ベーシック認証などのいずれかの伝送方式で送信された値からパラメータ候補を抽出できる。
【0052】
図9に戻り、特定部206は、通信内容格納部102に保持されたページ属性に基づいて、個人情報を含むウェブページ(以下、単に「注目ページ」という)を特定し、絞込部204に出力する。また、特定部206は、通信内容に、例えば個人情報、HIDDENタグ、パスワード入力ボックスなどの文字列が含まれているウェブページを注目ページとして特定してもよい。そして、特定部206は、注目ページの情報を絞込部204に供給する。
【0053】
注目ページは、ユーザ毎に提供されることが多いため、注目ページにはセッション追跡パラメータが含まれている可能性が高い。絞込部204は、注目ページの情報と抽出部202から供給されたセッション追跡パラメータの候補とに基づいて、セッション追跡パラメータの候補を絞り込む。絞込部204は、例えば、再現頻度の多い順にセッション追跡パラメータの候補を絞り込んでもよいし、注目ページに含まれるセッション追跡パラメータの候補を残すように絞り込んでもよい。
【0054】
図11は、図5の検証部400の内部構成図である。パラメータ検査部402は、推定部200により抽出されたパラメータ候補の中から、セッション追跡パラメータを特定する。検証対象となるパラメータ候補は、本図では分析部300から供給されているが、他の例では抽出部202から直接供給されてもよい。なりすまし検査部404は、他のユーザになりすましてウェブサイト50を利用することができるか否かを検証する。許可部406は、検査制御部106を介してユーザから、パラメータ検査部402又はなりすまし検査部404における検証処理の実行許否を受け付ける。そして、ユーザから許可された場合、許可部406は、パラメータ検査部402、およびなりすまし検査部404にその検証処理の実行を許可する。パラメータ検査部402およびなりすまし検査部404は、ユーザの個人情報を利用して自動的にウェブサイト50にアクセスを行うため、その許否をユーザから求める。
【0055】
図12は、図11のパラメータ検査部402の内部構成図である。パラメータ候補入力部410は、分析部300からパラメータ候補を受け付ける。そして受け付けたパラメータ候補を選択部412に出力する。選択部412はパラメータ候補の中から一つを選び出し、選択したセッション追跡パラメータ(以下、単に「検証パラメータ」という)を編集部416に出力するとともに選択したことを読込部414に通知する。
【0056】
図13は、選択部412における検証パラメータを選択するためのパラメータ選択画面72の一例を示す図である。検証パラメータを選択する場合、パラメータ選択画面72が表示される。伝送方式欄550には、パラメータ候補毎に伝送方式が表示される。名称欄552は、セッション追跡パラメータの名称が表示される。値欄554には、その値が表示される。スコア欄556は、例えば抽出回数などにより加算して得たポイントが表示される。この値は、例えば図9の推定部200がパラメータ候補を決める際に算出する。状態欄558は、検証を既に行ったか否かを示す情報を保持する。ユーザは、任意のセッション候補を選択して検証パラメータを決めてよい。また、スコアの高いものから順に選択部412が検証パラメータを決めてもよい。
【0057】
図12に戻り、読込部414は、既に行ったセッション、つまり通信内容格納部102に保持されている通信内容を読み込み、編集部416に供給する。編集部416は、供給された通信内容から検証パラメータを取り除いて新たな通信内容つまり新たなリクエストを生成する。そして、そのリクエストを通信部418に出力する。そのリクエストは、本実施形態では、注目ページを取得するためのリクエストである。通信部418は、そのリクエストをウェブサイト50に出力し、それに応じたレスポンスをウェブサイト50から受信する。通信部418は、ウェブサイト50からのレスポンスを判定部420に出力する。新たに取得したレスポンスを、「現レスポンス」という。
【0058】
判定部420は、図5の個人情報格納部104に含まれる個人情報と現レスポンスとを比較して、現レスポンスに、正常のアクセス時、すなわち検証パラメータを削除していないリクエストに対するレスポンスに含まれる個人情報が含まれているかを判断する。現レスポンスに個人情報が含まれていない場合、すなわち注目ページを取得できなかった場合、判定部420は、検証パラメータがセッション追跡パラメータとして利用されていると判断する。また個人情報が含まれている場合、判定部420は、検証パラメータがセッション追跡パラメータとして利用されていないと判断する。そして、判定部420は、別の検証パラメータを選択することを選択部412に指示する。選択部412は、パラメータ候補中の別のセッション追跡パラメータを選択し、再び読込部414と編集部416に指示を行う。パラメータ検査部402はこの処理を繰り返すことにより、セッション追跡パラメータを特定する。
【0059】
また、他の例では、判定部420は、現レスポンスと、例えば注目ページ取得時の過去のレスポンスとして通信内容格納部102に保持されている通信内容とを比較して同一のレスポンスを取得したか否かを判定してもよい。本実施形態では、通信内容格納部102は、通信内容毎にページ属性を付加して保持する。判定部420は、このページ属性に注目ページであることを指定する情報が付加された通信内容を通信内容格納部102から読み込み判定に利用する。例えば、判定部420は、現レスポンスと通信内容とが完全に一致しているか否かを判定してもよいし、現レスポンスと通信内容とが部分的に一致している否かを判定してもよい。現レスポンスと通信内容とが一致しない場合、判定部420は、検証パラメータがセッション追跡パラメータとして利用されていると判断する。また、現レスポンスと通信内容とが一致した場合、判定部420は、検証パラメータがセッション追跡パラメータとして利用されていないと判断し、別の検証パラメータを選択することを選択部412に指示する。
【0060】
図14は、図11のなりすまし検査部404の内部構成図である。ログイン処理部430は、分析部300から指示された場合に図5の個人情報格納部104に保持されている第2ユーザの情報を利用してウェブサイト50にログインする。そしてログイン処理部430は、ログインしたことを読込部432に通知する。パラメータ取得部440は、図12のパラメータ検査部402により特定されたセッション追跡パラメータを、第2ユーザでログインして得られたセッションから取得する。この第2ユーザでログインしたときのセッション追跡パラメータを、以下、単に「現セッションパラメータ」という。パラメータ取得部440は、現セッションパラメータを置換部434に出力する。読込部432は、通信内容格納部102から過去に記録した、第1ユーザでログインしたときの注目ページを取得するためのリクエストを読み込み置換部434に出力する。置換部434は、そのリクエストに含まれるセッション追跡パラメータを現セッションパラメータに置き換えて新たなリクエストを生成する。そして、置換部434は、生成したリクエストを通信部436に出力する。
【0061】
通信部436は、そのリクエストをウェブサイト50に出力する。そしてウェブサイト50からのレスポンスを受信し、なりすまし検査部404の判定部438に出力する。判定部438は、個人情報格納部104に含まれる情報とレスポンスとを比較して、そのレスポンスに第1ユーザと第2ユーザのどちらの個人情報が含まれているかを判断する。レスポンスが第1ユーザの個人情報の場合、判定部438は、ウェブサイト50は、なりすまし行為に対する脆弱性を有すると判断する。また個人情報を取得できなかった場合、ウェブサイト50は、なりすまし行為により個人情報が漏洩することはないと判断する。判定部438は、その判断結果を分析部300に送信する。
【0062】
図15は、図5の試験部350の内部構成図である。ログアウト機能検査部352は、分析部300からの指示に基づいてウェブサイト50におけるログアウト機能を検査する。ログアウト機能は、ログアウトした時点で、セッション追跡パラメータを破棄する機能である。破棄されないウェブサイト50の場合、不正にアクセスされる脆弱性が内在すると判断できる。タイムアウト機能検査部354は、分析部300からの指示に基づいてウェブサイト50におけるタイムアウト機能を検査する。タイムアウト機能は、セッションが放置された状態で、所定の時間が経過した場合に、セッション追跡パラメータを破棄する機能である。破棄されないウェブサイト50の場合、不正にアクセスされる脆弱性が内在すると判断できる。
【0063】
図16は、図15のログアウト機能検査部352の内部構成図である。ログアウト処理部360は、分析部300からの指示に応じてウェブサイト50からログアウトをする。リクエスト指示部362は、ログアウトの後、過去のリクエストを102から読み込み、通信部364に出力する。通信部364は、そのリクエストをウェブサイト50に送信する。また通信部364は、ウェブサイト50からのレスポンスを受信し判定部366に出力する。判定部366は、現レスポンスと、例えば注目ページ取得時の過去のレスポンスとして通信内容格納部102に保持されている通信内容とを比較する。例えば、判定部366は、現レスポンスと通信内容とが完全に一致しているか否かを判定してもよいし、現レスポンスと通信内容とが部分的に一致しているか否かを判定してもよいし、現レスポンスに部分的に含まれる個人情報が図5の個人情報格納部104に保持されている個人情報に一致するか否かを判定してもよい。現レスポンスと過去の通信内容とが一致している場合、判定部366は、ウェブサイト50におけるログアウト機能は不十分であると判断する。また一致しない場合、判定部366は、ウェブサイト50におけるログアウト機能は正常に機能していると判断する。判定部366は、判断結果を分析部300に送信する。
【0064】
図17は、図15のタイムアウト機能検査部354の内部構成図である。設定部370は、タイムアウト機能を試験するための時間すなわちリクエストを送信するまでの待ち時間を設定し、計時部372に計時を開始することを指示する。計時部372は、設定部370に設定された時間が経過した後、その旨を指示部374に通知する。指示部374は、計時部372からの通知により通信部376に対してリクエストを送信することを指示する。通信部376は、その指示に応じて設定部370に一時的に保持されていたリクエストを取得し、ウェブサイト50に送信する。そして通信部376は、ウェブサイト50からのレスポンスを受信し、タイムアウト機能検査部354の判定部378に出力する。判定部378は、レスポンスと通信内容格納部102に保持された通信内容とを比較する。一致している場合、判定部378は、ウェブサイト50においてタイムアウト機能が検査で設定した時間では動作していないと判断する。また一致していない場合、判定部378は、検査で設定した時間が経過した場合には、ウェブサイト50においてタイムアウト機能が正常に動作していると判断する。
【0065】
図18は、図5の分析部300の内部構成図である。パラメータ状態判断部302は、通信内容格納部102に保持されたデータを参照してセッション追跡パラメータの状態を判断する。例えばセッション追跡パラメータにセキュアフラグが設定されているか否かを判断し、その判断結果を数値化部312に出力する。推測容易性判断部304は、通信内容格納部102および個人情報格納部104に保持された一連のデータに基づいてセッション追跡パラメータの推測が容易か否かを判断し、その判断結果を数値化部312に出力する。例えばその容易性はセッション追跡パラメータにユーザIDが含まれていること、規則性があることなどに基づいて容易性を判断する。
【0066】
伝送形式判断部306は、通信内容格納部102及びに推定部200に保持されているデータに基づいてセッション追跡パラメータの伝送形式を判断する。そして判断結果を数値化部312に出力する。伝送形式判断部306は、例えばセッション追跡パラメータがクッキー、GET、POST、ベーシック認証のいずれを利用して伝送されているかを判断する。伝送形式判断部306は、リクエストメッセージ及びレスポンスメッセージに含まれるセッション追跡パラメータの埋め込み位置を調べることで伝送方式を特定する。
【0067】
検証結果受付部308は、検証部400から検証結果を受け付け数値化部312に出力する。試験結果受付部310は、試験部350から試験結果を受け付け数値化部312に出力する。数値化部312は、それぞれのユニットから供給された値を数値化し、例えば合計ポイントを選択部314に出力する。選択部314は、そのポイントや各ユニットからの診断結果の組み合わせに応じて知識データベース316から所定のコメントを選択し、検査制御部106に出力する。そして、選択されたコメントが図5の表示処理部110を介して表示部に表示される。
【0068】
それぞれのユニットから供給される判断結果には、それぞれ重み付けがされており、その重み付けに応じて数値化部312は、加算処理などの数値化処理を行ってもよい。知識データベース316は、単に数値とコメントを対応づけるだけでなくそれぞれの判断結果の組み合わせに応じて所定のコメントが選択可能になるようなデータ構造を有する。例えばセッション追跡パラメータの伝送形式ごとにコメントが対応づけられていてもよいし、その他の判断結果の組み合わせも対応づけられていてもよい。
【0069】
図19は、検査結果画面70の一例を示す図である。検査結果画面70には、調査対象となったウェブサイト、診断の状況、診断結果、セッション追跡パラメータなどに関する情報の一覧が表示される。
【0070】
図20は、検査結果画面74の他の例を示す図である。この検査結果画面74は、調査対象のウェブサイトに内在する脆弱性に関する情報を表示した画面である。図18の選択部314は、セッション追跡パラメータがクッキーに格納されている場合に、もしウェブサイトにクロスサイトスクリプティングに対する脆弱性が内在すると、なりすまし行為により個人情報が盗用される可能性があることを通知するコメントを選択する。これにより、本図の画面が表示される。
【0071】
図21は、検査結果画面76の他の例を示す図である。この検査結果画面76も、図20と同様に調査対象のウェブサイトに内在する脆弱性に関する情報を表示した画面である。図18の選択部314は、セッション追跡パラメータの値が、ユーザ毎に似通っていて容易に推定できる場合に、なりすまし行為に対する脆弱性が内在することを通知するコメントを選択する。これにより、本図の画面が表示される。
【0072】
図22は、図1の検査装置100におけるウェブサイト50の脆弱性を検査するための処理のフローチャートの一例である。まず、検査装置100は、ブラウザ14とウェブサイト50との通信内容に基づいてセッション追跡パラメータを推定する(S10)。次に、検査装置100は、推定したセッション追跡パラメータの正否を検証する(S12)。次に、検査装置100は、ウェブサイト50における、なりすまし行為に対する脆弱性すなわちアクセス制御の機能を検証する(S14)。
【0073】
図23は、図22のステップ10の詳細なフローチャートの一例である。セッション追跡パラメータの推定処理を開始すると、検査装置100は、通信内容の記録を開始する(S20)。そして、検査装置100は、ウェブサイト50にログインすることをユーザに指示する(S22)。次に、検査装置100は、個人情報ページの取得をユーザに指示する。そして、この指示に応じてユーザはウェブページのリンクをたどり、個人情報ページを探索してブラウザ14に表示させる。検査装置100は、その個人情報ページを記録する(S24)。この探索作業中も、検査装置100は通信内容を記録している。
【0074】
次に、検査装置100は、ウェブサイト50が提供する複数のウェブページを任意に探索することを指示し、この間の通信内容を記録しセッション追跡パラメータを統計的に推定するために複数の通信内容を収集する(S26)。そして、検査装置100は、ウェブサイト50からログアウトを指示する(S27)。そして、検査装置100は、ログアウト後に再度セッション追跡パラメータをリクエストに付加して、個人情報ページの取得を試みることでログアウト機能の検査を行う(S28)。
【0075】
ログアウト機能を検査した後、検査装置100は通信内容の記録を終了する(S30)。そして、検査装置100は、ステップ28までの一連のセッションにおける通信内容に基づいてセッション追跡パラメータを推定する(S32)。そして、検査装置100は、推定したセッション追跡パラメータの伝送形式やデータ構成などに基づいて分析を行い(S34)、ウェブサイト50に存在する脆弱性を分析結果として表示する(S36)。
【0076】
図24は、図22のステップ12の詳細なフローチャートの一例である。セッション追跡パラメータの検証処理を開始すると、検査装置100は、通信内容の記録を開始する(S40)。そして、検査装置100は、ウェブサイト50にログインすることをユーザに指示する(S42)。次に、検査装置100は、個人情報ページを取得することをユーザに指示し、この指示に応じて表示された個人情報ページを記録する(S42)。
【0077】
そして、検査装置100は、ユーザ情報を利用してセッション追跡パラメータの検証を行うことをユーザに通知し、その処理の実行の許否を問い合わせる(S44)。許可された場合(S44のY)、検査装置100は、パラメータ候補の中から検証パラメータを選択する(S46)。そして、検査装置100は、ステップ42で個人情報ページを取得するためにウェブサイト50に送信したリクエストから、検証パラメータを取り除いて新たなリクエストを生成する(S48)。
【0078】
そして、検査装置100はそのリクエストをウェブサイト50に送信し(S50)、ウェブサイト50からレスポンスを受信する(S52)。次に、検査装置100は、そのレスポンスの内容に基づいて個人情報ページを取得できたか否かを判定する(S54)。個人情報ページを取得できた場合(S54のY)、ステップ46に戻り、検査装置100は別のパラメータ候補を検証パラメータとして選択する。個人情報ページを取得できなかった場合(S54のN)、検査装置100は通信内容の記録を終了する(S56)。そして、検査装置100は、個人情報ページを取得できなかったときの、検証パラメータをセッション追跡パラメータとして特定する(S58)。検査装置100は、特定したセッション追跡パラメータの伝送方式などに基づいて、図23のステップ34における分析より更にウェブサイト50に内在する脆弱性を絞り込んで分析を行い(S60)、分析結果を表示する(S62)。ステップ44で、許可されなかった場合(S44のN)、検査装置100は処理を中止する。
【0079】
図25は、図22のステップ14の詳細なフローチャートの一例である。なりすましの検証処理を開始すると、検査装置100は、通信内容の記録を開始する(S70)。そして、検査装置100は、ユーザに第2ユーザ情報でウェブサイト50にログインすることを指示する(S72)。次に、検査装置100は、個人情報ページを取得することをユーザに指示し、この指示に応じて表示された個人情報ページを記録する(S74)。
【0080】
そして、検査装置100は、なりすましの脆弱性を検証するための処理を行うことをユーザに通知し、その処理の実行の許否を問い合わせる(S76)。許可された場合(S76のY)、検査装置100は、ステップ74で個人情報ページを取得するためにウェブサイト50に送信したリクエストに含まれるセッション追跡パラメータを、第2ユーザでログインした後に得られた現セッションパラメータに置き換えて新たなリクエストを生成する(S78)。
【0081】
そして、検査装置100はそのリクエストをウェブサイト50に送信し(S80)、ウェブサイト50からレスポンスを受信する(S82)。検査装置100は、通信内容の記録を終了する(S84)。次に、検査装置100は、そのレスポンスの内容に基づいて、第1ユーザの個人情報を取得できたか否かを判定する(S86)。第1ユーザの個人情報を取得できた場合、ウェブサイト50はなりすまし行為に対する脆弱性を有する。そして検査装置100は、セッション追跡パラメータの伝送方式などを考慮しながら分析を行い(S88)、分析結果を表示する(S90)。ステップ76で、許可されなかった場合(S76のN)、検査装置100は処理を中止する。
【0082】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、そうした観点から留意点を述べる。
【0083】
実施の形態では、本システムの運用を基本的に個人の意思に委ねるとした。しかし、本システムの公益性の高さに鑑みれば、その運用は当然公益的な事業を実施可能な主体に一括管理させることができる。その場合、図1等の検査装置100を当該運用者のサーバなどで実現すればよい。本発明はその運用主体や運用形式を問うものではない。
【0084】
例えば、システム監査業者がシステムのセキュリティ監査に本システムを利用してもよいし、ウェブアプリケーションの発注者が、システムの検収のために、本システムを利用してもよい。従来、こうした監査や検収の基準を定めることが難しく、明確にされることはなかった。しかし、本システムにより脆弱性が検出されないことという客観的な基準を設けることができる。
【0085】
個人レベルで行った検査結果を収集するサーバをネットワーク12に設ける。そして、ウェブサイトにアクセスする際に、ブラウザ14がまずサーバに接続し、そのウェブサイトの安全性を確認、もしくはユーザに提示したのち、アクセスを開始するようにしてもよい。こうした機能を有するブラウザ14の構成としては、アクセス指示を検出する検出部と、アクセス先として指定されたURLを検索キーとして検査結果を保持するサーバに安全性を問い合わせるアクセス先情報取得部と、取得した安全性をユーザに提示する提示部とを有する。これにより、他のユーザにより集められたウェブサイトの検査結果を有効的に利用できる。また、無数に存在するウェブサイトの検査結果を極短期間に収集できる。
【0086】
更に、このブラウザ14は、検査装置100を有し、アクセス先情報取得部が、アクセス先の検査結果を取得できなかった場合に、検査装置100にアクセス先の検査をさせてもよい。そして、ブラウザ14は新たに取得した検査結果をサーバに登録するようにしてもよい。
【0087】
【発明の効果】
本発明によれば、検査対象となるウェブサイトとクライアントとの通信内容に基づいて、ウェブサイトに内在する脆弱性を検査できる。
【図面の簡単な説明】
【図1】実施の形態にかかる検査システムの構成図である。
【図2】図1のウェブサイトの内部構成図である。
【図3】図1のリクエストメッセージのデータ構造の一例を示す図である。
【図4】図1のレスポンスメッセージのデータ構造の一例を示す図である。
【図5】図1の検査装置の内部構成図である。
【図6】図5の個人情報格納部におけるデータ構造の一例を示す図である。
【図7】図5の取得部の内部構成図である。
【図8】図5の通信内容格納部に保持されるオブジェクトのクラス構造を説明するための図である。
【図9】図5の推定部の内部構成図である。
【図10】図9の推定部におけるパラメータ候補の選択処理のフローチャートである。
【図11】図5の検証部の内部構成図である。
【図12】図11のパラメータ検査部の内部構成図である。
【図13】図12の選択部における検証パラメータを選択するためのパラメータ選択画面の一例を示す図である。
【図14】図11のなりすまし検査部の内部構成図である。
【図15】図5の試験部の内部構成図である。
【図16】図15のログアウト機能検査部の内部構成図である。
【図17】図15のタイムアウト機能検査部の内部構成図である。
【図18】図5の分析部の内部構成図である。
【図19】検査結果画面の一例を示す図である。
【図20】検査結果画面の他の例を示す図である。
【図21】検査結果画面の他の例を示す図である。
【図22】図1の検査装置におけるウェブサイトの脆弱性を検査するための処理のフローチャートの一例である。
【図23】図22のステップ10の詳細なフローチャートの一例である。
【図24】図22のステップ12の詳細なフローチャートの一例である。
【図25】図22のステップ14の詳細なフローチャートの一例である。
【符号の説明】
10 検査システム、12 ネットワーク、14 ブラウザ、20 リクエストメッセージ、22 レスポンスメッセージ、50 ウェブサイト、100 検査装置、102 通信内容格納部、104 個人情報格納部、106 検査制御部、108 操作受付部、110 表示処理部、150 取得部、152 第1判定部、154 抽出部、156 第2判定部、158 第1暗号化・復号部、159 第2暗号化・復号部、160 格納処理部、200 推定部、202 抽出部、204 絞込部、206 特定部、208 ユーザ指示受付部、300分析部、302 パラメータ状態判断部、304 推測容易性判断部、306伝送形式判断部、308 検証結果受付部、310 試験結果受付部、312数値化部、314 選択部、316 知識データベース、350 試験部、352 ログアウト機能検査部、354 タイムアウト機能検査部、36 セッション追跡パラメータ、360 ログアウト処理部、362 リクエスト指示部、364 通信部、366 判定部、370 設定部、372 計時部、374 指示部、376 通信部、378 判定部、400 検証部、402 パラメータ検査部、404 なりすまし検査部、406 許可部、410 パラメータ候補入力部、412 選択部、414 読込部、416 編集部、418 通信部、420 判定部、430 ログイン処理部、432 読込部、434 置換部、436 通信部、438 判定部、440 パラメータ取得部。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a technology for inspecting a device, and more particularly, to a technology for inspecting a vulnerability existing in a website that provides contents via a network.
[0002]
[Prior art]
With the development of network technology, the number of network users is increasing, for example, for using e-mail and browsing websites. The use of such networks is now permeating everyday life as a natural means of acquiring information. In addition, the number of websites providing various services is increasing in synergy with the increase in the number of users. Many of these websites, such as shopping sites, handle personal information of users and provide services for each user.
[0003]
Originally, such a website needs to be designed and created for a web application in consideration of security so that there is no leakage of personal information. However, there are actually many websites having defects. Intentionally attacking websites, such as hackers and crackers, seek out flaws in websites and launch attacks such as spoofing and cross-site scripting to steal personal information.
[0004]
In recent years, the problem of leakage of personal information on websites has been frequently reported, and despite the disclosure of attack methods, the problem has not been reduced at all. Security flaws that cause such problems are often fundamental mistakes in developing and creating web applications, for example. In addition, some websites are operated while leaving the defect in spite of a defect that may cause leakage of personal information due to lack of problem awareness of the website operator.
[0005]
As a technique for preventing such leakage of personal information, a known attack pattern is compared with an actual communication pattern to detect an attack, and an IDS (Intruder Detection System) that notifies a site administrator of the attack and a known attack pattern are used. There is a technique for detecting the presence or absence of a vulnerability by setting a Web site to be inspected for testing purposes (Patent Document 1).
[0006]
[Patent Document 1]
U.S. Pat. No. 6,311,278
[0007]
[Problems to be solved by the invention]
However, such security countermeasures are intended for known attacks, and cannot be prevented when attacked in a new pattern. Further, in the technology disclosed in Patent Document 1, since an attack is directly performed on a website to be inspected, if a vulnerability exists in the website to be inspected, the website is expected to be inspected for inspection. It can cause serious damage.
[0008]
The present invention has been made in view of the above problems, and has as its object to provide a technique for inspecting vulnerabilities inherent in a website, a technique for determining vulnerabilities without attacking a website, and an objective technique. An object of the present invention is to provide a technique for evaluating the safety of a website based on criteria. Another object of the present invention is to provide an inspection technique that avoids an inspection technique that can be regarded as so-called unauthorized access. Still another object is to provide a technique for an individual who actually intends to use a website to confirm the security of the website at an individual level before using the website.
[0009]
[Means for Solving the Problems]
One embodiment of the present invention is an apparatus for inspecting a website. The apparatus includes: an obtaining unit that obtains communication content between a website and a client; an estimating unit that estimates a session tracking parameter that specifies a session between the website and the client included in the communication content; An analysis unit for analyzing vulnerabilities inherent in the website based on the session tracking parameters. This allows the device to indirectly analyze the vulnerability of the website based on the session tracking parameter included in the communication content, so that the inspection action does not adversely affect the website.
[0010]
The estimating unit narrows down the session tracking parameter from the candidates by repeating a process of obtaining a web page on the website, the extracting unit extracting the session tracking parameter candidate based on the communication content. May be included. This makes it possible to extract, from various parameters included in the communication content, a parameter that is highly likely to be used as a session tracking parameter.
[0011]
The apparatus further includes a specifying unit that specifies a web page having a high possibility that the session tracking parameter is included in the communication content as a target page in a session between the website and the client, and the narrowing unit includes: Among the candidates, a high priority may be given to a candidate extracted based on communication contents acquired in a session related to the page of interest. As a result, the session tracking parameters can be further narrowed down. The “attention page” is a web page to which information that originally specifies a session, such as a login screen and a personal information setting screen, should be added.
[0012]
The specifying unit may determine a web page including a predetermined character string as the page of interest. Thereby, the specifying unit can specify the page of interest based on the communication content.
[0013]
The apparatus may include a receiving unit that receives designation of the page of interest from a user, and the specifying unit may determine a web page designated by the user as a page of interest. Thus, the page of interest can be specified based on the user's instruction, so that the page of interest can be specified in a format that is difficult to automatically specify, such as a personal photograph, even when personal information is included in the web page. .
[0014]
The narrowing unit may narrow down session tracking parameters using a statistical method from a plurality of communication contents obtained by repeating a session between the website and the client. This makes it possible to narrow down the session tracking parameter candidates so as to leave, for example, those with a large number of reproductions.
[0015]
The apparatus may further include a storage unit for storing personal information, and the analysis unit may determine whether the session tracking parameter includes the personal information. This allows the device to determine whether the session tracking parameters can be easily estimated.
[0016]
The analysis unit may determine whether the session tracking parameter has regularity based on the session tracking parameter included in a series of communication contents. Thus, the device can determine whether or not the session tracking parameter can be easily estimated based on the transition of the value of the session tracking parameter included in the series of communication contents.
[0017]
The apparatus may further include a determination unit that determines a transmission format of the session tracking parameter. This allows the device to determine the possible vulnerabilities depending on the transmission format.
[0018]
The apparatus may further include a providing unit that provides a different comment to the client according to the determined transmission format. Thereby, this device can present the analysis result to the user as a comment.
[0019]
Another embodiment of the present invention relates to an apparatus for inspecting a website. The apparatus includes: an obtaining unit that obtains communication content between a website and a client; an estimating unit that estimates a session tracking parameter that specifies a session between the website and the client included in the communication content; A verification unit that verifies whether the estimation of the session tracking parameter is correct by removing the session tracking parameter and performing communication. This allows the device to verify the validity of the session tracking parameter extracted from the communication content.
[0020]
The verification unit deletes the estimated session tracking parameter from the request message to be sent to the website, and obtains a web page to be originally obtained by the request message modified by the editing unit. A determination unit that determines that the estimation of the session tracking parameter is correct when the estimation is not possible. Thereby, a new request message can be generated by removing the estimated session tracking parameter from the request message.
[0021]
In the apparatus, when the determination unit determines that the estimation of the session tracking parameter is incorrect, the editing unit and the determination unit may repeat the process using another parameter as a new session tracking parameter. Thereby, a correct session tracking parameter can be specified from among a plurality of session tracking parameter candidates.
[0022]
The apparatus may further include a permission unit that allows a user to specify whether or not the operation of the verification unit is permitted, and the verification unit may permit the operation of the verification unit when the operation is permitted by the user. This allows the device to execute the verification process under the recognition of the user. That is, the inspection is not recognized as an unauthorized access.
[0023]
The apparatus may further include a storage unit that holds personal information, and the determination unit may determine whether the web page includes the personal information.
[0024]
Still another embodiment of the present invention relates to an apparatus for inspecting a website. The apparatus includes: an obtaining unit configured to obtain communication content between a website and a client; an estimating unit configured to estimate a session tracking parameter included in the communication content that specifies a session between the website and the client; And a request message for acquiring a predetermined web page when logging in using second user information different from the first user information. A login unit that logs in the session tracking parameter included in the first user information, and then replaces the session tracking parameter with the estimated session tracking parameter. Related to the second user in the transmitted web page And a determination unit configured to determine whether or not that information is included. As a result, the device can verify the vulnerability of a third party to impersonation due to malfunction of access control inherent in the website.
[0025]
The apparatus may further include a research unit that determines whether or not the session performed before the logout can be reproduced using the session tracking parameter after the client logs out of the website. Thus, the logout function on the website can be inspected.
[0026]
Still another embodiment of the present invention relates to an apparatus for inspecting a website. The apparatus includes a setting unit that holds a session tracking parameter that specifies a session between the website and the client, which is included in communication content between the website and the client, and a session between the client and the website is disconnected. A measuring unit that measures a later elapsed time; and an instruction unit that requests the website to provide a web page using the session tracking parameter after the elapsed time exceeds a predetermined threshold. This allows you to check the timeout function on the website.
[0027]
It is to be noted that any combination of the above-described components and any conversion of the expression of the present invention between a method, an apparatus, a system, a recording medium, a computer program, and the like are also effective as embodiments of the present invention.
[0028]
BEST MODE FOR CARRYING OUT THE INVENTION
The inspection system according to the embodiment does not actually attack a website like a known system, and its operation is basically performed at an individual level. Therefore, by installing the inspection system according to the embodiment in various places in a distributed manner, as many individuals as possible can voluntarily use the system for the purpose of securing their own access security. Is the basic form. This also has the following side effects.
1. The habit of ensuring the safety of individuals at their own risk will be widespread, and this will be an opportunity to raise security awareness at the national level.
2. Websites are constantly being inspected by a large number of individuals, and sites with low security awareness have to be screened, which in turn triggers a change in attitudes on the part of the site operator.
[0029]
FIG. 1 is a configuration diagram of an inspection system 10 according to the embodiment. The website 50 is a site to be inspected, and provides content to the browser 14 via the network 12. The inspection device 100 functions as a proxy of the browser 14, relays communication between the browser 14 and the website 50, and acquires communication contents. Then, the inspection device 100 determines the vulnerability of the website 50 based on the communication content. The browser 14 and the inspection apparatus 100 may be formed on the same computer by executing a predetermined program, or may be formed on different computers.
[0030]
Generally, communication between the browser 14 and the website 50 is performed based on HTTP (Hyper Text Transfer Protocol). When acquiring the content according to the HTTP, the browser 14 transmits a request message 20 to the website 50. Then, the website 50 transmits the response message 22 in response to the request message 20. When communication is performed according to HTTP, a request and a response are communication units (hereinafter, simply referred to as “access”). Therefore, when providing content that extends over a plurality of web pages for each user, such as a shopping site, it is necessary to manage the web pages being provided for each user. That is, it is necessary to manage a series of accesses (hereinafter, simply referred to as “sessions”) for providing the content to the user. As the management method, it is common to assign identification information for each session.
[0031]
FIG. 2 is an internal configuration diagram of the website 50 of FIG. The website 50 is formed by causing a given computer to execute a predetermined program. A single website may be formed on a single computer, or a plurality of websites may be formed. The web server 58 provides contents according to HTTP. The normal content storage unit 56 stores, for example, HTML format content. The web server 58 reads the requested content from the normal content storage unit 56 via the network 12, and transmits the read content.
[0032]
The web application 54 forms a web page for each user based on the personal information stored in the personal information storage unit 52, for example. Then, the web page generated for each user is provided to the user via the web server 58. Sites that provide such web pages for each user include, for example, shopping sites, personal schedule management sites, web mail sites, and the like. In order to provide a web page for each user, the website 50 handling such personal information needs to assign identification information (hereinafter simply referred to as “session tracking parameter”) for each session.
[0033]
Generally, the vulnerability of a website may be mainly caused by a bug inherent in the web server 58 or may be caused by a bug inherent in the web application 54. The web application 54 is, for example, CGI or JSP (trademark), and often includes a bug due to a design error during development or a developer mistake. The inspection device 100 in FIG. 1 mainly analyzes vulnerabilities inherent in the web application 54. Many of the vulnerabilities in the web application 54 relate to poor access control functions caused by, for example, errors in handling session tracking parameters.
[0034]
For example, if the value of the session tracking parameter does not change for each session, contains the user's personal information, or is easy to guess, a malicious person may acquire personal information by impersonating the original user, for example. Or receive services on behalf of the original user. The vulnerability inherent in the web application 54 can be analyzed based on the session tracking parameter included in the content of the communication performed between the web site 50 and the browser 14 in FIG.
[0035]
FIG. 3 is a diagram showing an example of the data structure of the request message 20 in FIG. The request message 20 has a request header 24 and a request body 26. The session tracking parameter 28 is identification information assigned for each session, and is set in a cookie in this figure. In another example, the session tracking parameter 28 may be embedded in any of a URL (Uniform Resource Locator) and an Authentication field in the request body 26 and the request header 24. The user ID 30 is information indicating a user ID on the website 50, for example.
[0036]
FIG. 4 is a diagram showing an example of the data structure of the response message 22 in FIG. The response message 22 has a response header 32 and a response body 34. A command for setting a new session tracking parameter 36 in a cookie is added to the response header 32 in FIG. From the parameters such as the session tracking parameter 28 in FIG. 3 and the session tracking parameter 36 in FIG. 4, the handling state of the session tracking parameter in the website 50 can be determined.
[0037]
In this example, it is understood that the website 50 generates the session tracking parameter by combining the value incremented each time the session is performed and the user ID. Since it is easy to estimate such a session tracking parameter, the website 50 can determine that personal information may be leaked due to unauthorized access. In this way, the vulnerability inherent in the website 50 can be analyzed based on the session tracking parameters included in the request message 20 and the response message 22 (hereinafter, simply referred to as “communication content”). Since the inspection device 100 in FIG. 1 determines the vulnerability of the website 50 based on the communication content, the inspection device 100 does not attack the website 50 unlike the conventional inspection device. For this reason, the website 50 is not damaged. Further, it is possible to not only determine known vulnerabilities as in a conventional inspection apparatus but also analyze essential vulnerabilities inherent in the website 50.
[0038]
FIG. 5 is an internal configuration diagram of the inspection device 100 of FIG. Each component of the inspection apparatus 100 is, in terms of hardware components, a CPU of an arbitrary computer, a memory, a program loaded into the memory to realize the components of the drawing, a storage unit such as a hard disk storing the program, It is realized mainly by an interface for network connection, a modem for facsimile communication, and the like, and it will be understood by those skilled in the art that there are various modifications in the method and apparatus for realizing the method. Each of the drawings to be described below shows a block of a functional unit, not a configuration of a hardware unit.
[0039]
The acquisition unit 150 acquires the communication contents between the website 50 and the browser 14, and stores the acquired communication contents in the communication content storage unit 102. The estimating unit 200 estimates session tracking parameter candidates based on the communication content held in the communication content storage unit 102, and outputs the estimated session tracking parameter to the analysis unit 300. The analysis unit 300 analyzes the vulnerability existing in the website 50 based on the session tracking parameters and the like. The verification unit 400 verifies whether the session tracking parameter estimated by the estimation unit 200 is correct. Although details of the test content will be described later, the test unit 350 tests various functions related to the session tracking parameter, such as a logout function and a timeout function in the website 50, for example.
[0040]
The personal information storage unit 104 holds personal information such as a user ID and a password on the website 50 used for the inspection. The inspection control unit 106 controls each of the acquisition unit 150, the analysis unit 300, the estimation unit 200, and the verification unit 400. In addition, the inspection control unit 106 provides an operation instruction received from the user via the operation reception unit 108 to a unit that needs the instruction. Further, the inspection control unit 106 outputs information for displaying an operation screen, an analysis result, and the like to the display processing unit 110. The display processing unit 110 displays the information on the display unit.
[0041]
FIG. 6 is a diagram showing an example of a data structure in the personal information storage unit 104 of FIG. In the present embodiment, the personal information storage unit 104 holds personal information in an XML (extensible Markup Language) format. The user information column 500 holds personal information for two users. The first user information column 502 holds personal information of the first user. The second user information column 504 holds personal information of the second user. The personal information column 506 holds individual user information such as a user ID, a password, a name, an address, an e-mail address, a telephone number, and a credit card number. The personal information column 506 includes a damage value column 508 that holds information relating to risk caused by leakage, an item column 510 that holds a keyword that specifies the type of personal information, and a value column 512 that holds user information specified by the keyword. And Although details will be described later, it is possible to analyze the vulnerability of the website 50 based on whether or not such personal information is included in the communication content.
[0042]
FIG. 7 is an internal configuration diagram of the acquisition unit 150 of FIG. The first determination unit 152 and the second determination unit 156 determine whether or not the communication content is encrypted by, for example, HTTPS (Hyper Text Transfer Protocol over SSL). When the communication content is encrypted, the first encryption / decryption unit 158 and the second encryption / decryption unit 159 decrypt the communication content. In addition, the first encryption / decryption unit 158 and the second encryption / decryption unit 159 encrypt communication contents as necessary. The extraction unit 154 of the acquisition unit 150 extracts predetermined information such as information used for an inspection from the communication contents and outputs the extracted information to the storage processing unit 160. The storage processing unit 160 stores individual information in the communication content storage unit 102. The storage processing unit 160 may generate an object for each session for acquiring a web page, for example, and store the extracted information in the object.
[0043]
FIG. 8 is a diagram for explaining a class structure of an object held in the communication content storage unit 102 in FIG. The communication class 520 has, for example, a protocol, a communication date and time, a header, a body, and the like as members. The request class 522 is a class that inherits the communication class 520, and has, as members, for example, a method at the time of request, a URL, and parameters. The parameter is a member for holding arguments included in the request header, request body, and the like. The member for holding the parameter may hold a pointer or the like of an object of a class for managing the parameter (hereinafter, simply referred to as “parameter class”). Since the parameter class has a structure capable of holding a plurality of parameters, the request class 522 can hold a plurality of parameters included in the request message. The header part and the body part of the request message are held in the header and body members, respectively.
[0044]
The response class 524 is a class that inherits the communication class 520, and has a response code, a parameter, and the like as members. The header part and the body part of the response message are held in the header and body members, respectively. Cookies and the like are stored in the parameter members.
[0045]
The access class 526 is a class that inherits the request class 522 and the response class 524, records a request message and a response message at the time of access, and manages communication contents. The access class 526 further has a session name, a page attribute, an access number, user information, and the like as members. The session name is a name for identifying a session. The page attribute is a member for holding information for specifying the type of the acquired web page, such as a login screen and a personal information display screen. Although details will be described later, the inspection control unit 106 in FIG. 5 presents information on a web page to be acquired for the inspection to the user. The information regarding the web page is notified from the inspection control unit 106 to the storage processing unit 160 in FIG. 7 as a page attribute. The storage processing unit 160 stores the page attribute in the object. Thus, an object for each access can be generated while adding a page attribute. The access number is a member for holding information for designating the order of access in the session, that is, the number of the access after starting the inspection of the website. The user information is a member for holding information for specifying personal information used for performing the session. The storage processing unit 160 in FIG. 7 generates an object of the access class 526 every time an access occurs, and records the communication content in association with the object that manages the session.
[0046]
Referring back to FIG. 7, when a response message (hereinafter, also simply referred to as “response”) is received from the website 50, the first determination unit 152 determines whether the response is encrypted. For example, when the response conforms to the HTTP, that is, when the response is not encrypted, the first determination unit 152 outputs the response to the extraction unit 154 of the acquisition unit 150. After extracting the information held in the members of the access class 526 in FIG. 8, the extracting unit 154 outputs the response to the second determining unit 156. The second determination unit 156 outputs the response supplied from the extraction unit 154 to the browser 14 as it is.
[0047]
If the response from the website 50 conforms to HTTPS, that is, if the response is encrypted, the first determination unit 152 outputs the encrypted response to the first encryption / decryption unit 158. The first encryption / decryption unit 158 decrypts the encrypted response and outputs it to the extraction unit 154. The extraction unit 154 extracts the information described above and outputs the information to the storage processing unit 160. Then, extraction section 154 outputs the response to second encryption / decryption section 159. The second encryption / decryption unit 159 encrypts the response again and outputs it to the second determination unit 156. The second determination unit 156 outputs the encrypted response to the browser 14. As described above, when the response conforms to the HTTPS, the acquisition unit 150 determines the first determination unit 152, the first encryption / decryption unit 158, the extraction unit 154, the second encryption / decryption unit 159, and the second determination unit. The response is output to the browser 14 via the unit 156. When the HTTP is followed, the acquisition unit 150 outputs a response to the browser 14 via the first determination unit 152, the extraction unit 154, and the second determination unit 156.
[0048]
As described above, when a request message (hereinafter, also simply referred to as “request”) is received from the browser 14 and transmitted to the website 50, as described above, in the case of an encrypted request, the acquisition unit 150 performs the second determination. The request is output to the website 50 via the unit 156, the second encryption / decryption unit 159, the extraction unit 154, the first encryption / decryption unit 158, and the first determination unit 152. In the case of an unencrypted request, the acquisition unit 150 outputs the request to the website 50 via the second determination unit 156, the extraction unit 154, and the first determination unit 152.
[0049]
FIG. 9 is an internal configuration diagram of the estimation unit 200 of FIG. The extracting unit 202 extracts session tracking parameter candidates (hereinafter, simply referred to as “parameter candidates”) based on the communication content held in the communication content storage unit 102 and outputs the extracted session tracking parameter candidates to the narrowing-down unit 204. When the following facts are confirmed for the parameters included in the communication content, the extraction unit 202 estimates and extracts, in descending order of the total score, the highest possibility of being a session tracking parameter.
[0050]
(1) When the parameter is in the Authorization field
(2) When the parameter is included in the cookie and the cookie is set at the time of logout in the logout function inspection phase described below.
(3) If the parameter is in a cookie with the secure flag set
(4) When the parameter is a parameter name including a specific character string such as “session” or “sid”
(5) When it is confirmed in the session tracking parameter verification phase described later that the personal information screen is not displayed if the parameter is deleted.
(6) When the parameter is included in the screen immediately after login in the login phase
(7) When a request to display a screen displaying personal information always includes that parameter
[0051]
FIG. 10 is an example of a flowchart of a parameter candidate selection process in the estimating unit 200 in FIG. The extracting unit 202 in FIG. 9 first extracts parameter candidates from the cookie (S100). Next, the extraction unit 202 extracts parameter candidates from the URL. Next, the extraction unit 202 extracts parameter candidates from the body. Then, the extraction unit 202 extracts a parameter candidate from the authentication field. In another example, the order of these processes may be changed. Thus, the extraction unit 202 can extract parameter candidates from values transmitted by any of the transmission methods such as cookie, GET, POST, and basic authentication.
[0052]
Returning to FIG. 9, the specifying unit 206 specifies a web page including personal information (hereinafter, simply referred to as “attention page”) based on the page attribute held in the communication content storage unit 102, Output. Further, the specifying unit 206 may specify a web page in which the communication content includes a character string such as, for example, personal information, a HIDDEN tag, and a password input box as the page of interest. Then, the specifying unit 206 supplies the information of the page of interest to the narrowing unit 204.
[0053]
Since the attention page is often provided for each user, there is a high possibility that the attention page includes a session tracking parameter. The narrowing-down unit 204 narrows down the session tracking parameter candidates based on the information of the page of interest and the session tracking parameter candidates supplied from the extraction unit 202. For example, the narrowing-down unit 204 may narrow down candidates for session tracking parameters in descending order of reproduction frequency, or may narrow down candidates for session tracking parameters included in the page of interest.
[0054]
FIG. 11 is an internal configuration diagram of the verification unit 400 of FIG. The parameter inspection unit 402 specifies a session tracking parameter from the parameter candidates extracted by the estimation unit 200. Although the parameter candidates to be verified are supplied from the analysis unit 300 in this figure, they may be supplied directly from the extraction unit 202 in other examples. The spoofing inspection unit 404 verifies whether or not the user can use the website 50 by impersonating another user. The permission unit 406 receives from the user via the inspection control unit 106, whether or not the parameter inspection unit 402 or the impersonation inspection unit 404 is permitted to execute the verification process. When permitted by the user, the permitting unit 406 permits the parameter checking unit 402 and the spoofing checking unit 404 to execute the verification process. The parameter inspection unit 402 and the spoof inspection unit 404 automatically access the web site 50 using the user's personal information, and thus request permission from the user.
[0055]
FIG. 12 is an internal configuration diagram of the parameter inspection unit 402 in FIG. Parameter candidate input section 410 receives parameter candidates from analysis section 300. Then, the received parameter candidates are output to the selection unit 412. The selection unit 412 selects one of the parameter candidates, outputs the selected session tracking parameter (hereinafter simply referred to as “verification parameter”) to the editing unit 416, and notifies the reading unit 414 of the selection.
[0056]
FIG. 13 is a diagram illustrating an example of a parameter selection screen 72 for selecting a verification parameter in the selection unit 412. When selecting a verification parameter, a parameter selection screen 72 is displayed. In the transmission method column 550, a transmission method is displayed for each parameter candidate. The name column 552 displays the name of the session tracking parameter. The value column 554 displays the value. The score column 556 displays points obtained by adding the number of times of extraction, for example. This value is calculated, for example, when the estimation unit 200 in FIG. 9 determines a parameter candidate. The status column 558 holds information indicating whether verification has already been performed. The user may select any session candidate and determine the verification parameters. Alternatively, the selection unit 412 may determine the verification parameters in order from the one with the highest score.
[0057]
Returning to FIG. 12, the reading unit 414 reads the session that has already been performed, that is, the communication content held in the communication content storage unit 102, and supplies the content to the editing unit 416. The editing unit 416 removes the verification parameter from the supplied communication content and generates new communication content, that is, a new request. Then, the request is output to the communication unit 418. In the present embodiment, the request is a request for acquiring a page of interest. The communication unit 418 outputs the request to the website 50 and receives a response from the website 50. The communication unit 418 outputs a response from the website 50 to the determination unit 420. The newly obtained response is called the “current response”.
[0058]
The determination unit 420 compares the personal information included in the personal information storage unit 104 of FIG. 5 with the current response, and includes the current response in a normal access, that is, a response to a request for which the verification parameter has not been deleted. Determine if personal information is included. If the current response does not include personal information, that is, if the page of interest cannot be obtained, the determination unit 420 determines that the verification parameter is used as a session tracking parameter. If personal information is included, the determination unit 420 determines that the verification parameter is not used as a session tracking parameter. Then, determination section 420 instructs selection section 412 to select another verification parameter. The selection unit 412 selects another session tracking parameter from the parameter candidates, and instructs the reading unit 414 and the editing unit 416 again. The parameter inspection unit 402 specifies the session tracking parameter by repeating this processing.
[0059]
In another example, the determination unit 420 compares the current response with, for example, the communication content held in the communication content storage unit 102 as a past response at the time of acquiring the page of interest, and obtains the same response. It may be determined whether or not. In this embodiment, the communication content storage unit 102 holds a page attribute for each communication content. The determination unit 420 reads the communication content added with the information specifying that the page attribute is the page of interest from the communication content storage unit 102 and uses the communication content for the determination. For example, the determining unit 420 may determine whether or not the current response and the communication content completely match, or determine whether or not the current response and the communication content partially match. Is also good. When the current response does not match the communication content, the determination unit 420 determines that the verification parameter is used as a session tracking parameter. If the current response matches the communication content, the determination unit 420 determines that the verification parameter is not used as the session tracking parameter, and instructs the selection unit 412 to select another verification parameter.
[0060]
FIG. 14 is an internal configuration diagram of the spoofing inspection unit 404 of FIG. The login processing unit 430 logs in to the website 50 using the information of the second user stored in the personal information storage unit 104 of FIG. 5 when instructed by the analysis unit 300. Then, the login processing unit 430 notifies the reading unit 432 that the user has logged in. The parameter acquisition unit 440 acquires the session tracking parameters specified by the parameter inspection unit 402 in FIG. 12 from the session obtained by logging in as the second user. The session tracking parameter at the time of logging in as the second user is hereinafter simply referred to as “current session parameter”. The parameter acquisition unit 440 outputs the current session parameters to the replacement unit 434. The reading unit 432 reads, from the communication content storage unit 102, a request for acquiring a page of interest when the first user has logged in, which has been recorded in the past, and outputs the request to the replacing unit 434. The replacing unit 434 generates a new request by replacing the session tracking parameter included in the request with the current session parameter. Then, the replacement unit 434 outputs the generated request to the communication unit 436.
[0061]
Communication unit 436 outputs the request to website 50. Then, the response from the website 50 is received and output to the determination unit 438 of the spoofing inspection unit 404. The determination unit 438 compares the information included in the personal information storage unit 104 with the response, and determines which personal information of the first user or the second user is included in the response. If the response is the personal information of the first user, the determination unit 438 determines that the website 50 has vulnerability to impersonation. When the personal information cannot be obtained, the website 50 determines that the personal information is not leaked due to the spoofing. The determination unit 438 transmits the determination result to the analysis unit 300.
[0062]
FIG. 15 is an internal configuration diagram of the test unit 350 of FIG. The logout function inspection unit 352 inspects the logout function of the website 50 based on an instruction from the analysis unit 300. The logout function is a function for discarding session tracking parameters at the time of logout. In the case of the website 50 that is not destroyed, it can be determined that there is a vulnerability for unauthorized access. The timeout function inspection unit 354 inspects the timeout function in the website 50 based on an instruction from the analysis unit 300. The timeout function is a function of discarding a session tracking parameter when a predetermined time has elapsed while a session is left unattended. In the case of the website 50 that is not destroyed, it can be determined that there is a vulnerability for unauthorized access.
[0063]
FIG. 16 is an internal configuration diagram of the logout function inspection unit 352 of FIG. The logout processing unit 360 logs out of the website 50 according to an instruction from the analysis unit 300. After logging out, the request instructing unit 362 reads a past request from 102 and outputs it to the communication unit 364. The communication unit 364 transmits the request to the website 50. The communication unit 364 receives a response from the website 50 and outputs the response to the determination unit 366. The determination unit 366 compares the current response with, for example, the communication content stored in the communication content storage unit 102 as a past response at the time of acquiring the page of interest. For example, the determining unit 366 may determine whether or not the current response and the communication content completely match, or determine whether or not the current response and the communication content partially match. Alternatively, it may be determined whether or not the personal information partially included in the current response matches the personal information stored in the personal information storage unit 104 in FIG. When the current response matches the past communication content, the determination unit 366 determines that the logout function of the website 50 is insufficient. If they do not match, the determination unit 366 determines that the logout function of the website 50 is functioning normally. The determination unit 366 transmits the determination result to the analysis unit 300.
[0064]
FIG. 17 is an internal configuration diagram of the timeout function inspection unit 354 of FIG. The setting unit 370 sets a time for testing the timeout function, that is, a waiting time until the request is transmitted, and instructs the timer 372 to start clocking. After the time set in setting section 370 has elapsed, timer section 372 notifies instruction section 374 of the fact. The instruction unit 374 instructs the communication unit 376 to transmit the request based on the notification from the clock unit 372. The communication unit 376 acquires the request temporarily stored in the setting unit 370 according to the instruction, and transmits the request to the website 50. Then, the communication unit 376 receives the response from the website 50 and outputs the response to the determination unit 378 of the timeout function inspection unit 354. The determination unit 378 compares the response with the communication content stored in the communication content storage unit 102. If they match, the determination unit 378 determines that the timeout function is not operating in the website 50 for the time set in the inspection. If they do not match, the determination unit 378 determines that the timeout function is operating normally in the website 50 when the time set in the inspection has elapsed.
[0065]
FIG. 18 is an internal configuration diagram of the analysis unit 300 of FIG. The parameter status determination unit 302 determines the status of the session tracking parameter with reference to the data stored in the communication content storage unit 102. For example, it determines whether or not the secure flag is set in the session tracking parameter, and outputs the result of the determination to the digitizing unit 312. The guessability determining unit 304 determines whether it is easy to guess the session tracking parameter based on a series of data stored in the communication content storage unit 102 and the personal information storage unit 104, and quantifies the determination result. 312. For example, the easiness is determined based on the fact that the user ID is included in the session tracking parameter, that there is regularity, and the like.
[0066]
The transmission format determination unit 306 determines the transmission format of the session tracking parameter based on the data held in the communication content storage unit 102 and the estimation unit 200. Then, the judgment result is output to the digitizing unit 312. The transmission format determining unit 306 determines, for example, whether the session tracking parameter is transmitted using cookie, GET, POST, or basic authentication. The transmission format determination unit 306 specifies the transmission method by checking the position where the session tracking parameter included in the request message and the response message is embedded.
[0067]
The verification result receiving unit 308 receives the verification result from the verification unit 400 and outputs the result to the digitizing unit 312. The test result receiving unit 310 receives a test result from the test unit 350 and outputs the test result to the digitizing unit 312. The digitizing unit 312 quantifies the value supplied from each unit, and outputs, for example, the total points to the selecting unit 314. The selection unit 314 selects a predetermined comment from the knowledge database 316 according to the combination of the points and the diagnosis results from each unit, and outputs the selected comment to the inspection control unit 106. Then, the selected comment is displayed on the display unit via the display processing unit 110 in FIG.
[0068]
The determination results supplied from each unit are weighted, and the digitizing unit 312 may perform a digitizing process such as an adding process according to the weighting. The knowledge database 316 has a data structure in which not only a numerical value is associated with a comment, but also a predetermined comment can be selected according to a combination of the respective determination results. For example, a comment may be associated with each transmission format of the session tracking parameter, and other combinations of the determination results may be associated with each other.
[0069]
FIG. 19 is a diagram showing an example of the inspection result screen 70. The test result screen 70 displays a list of information on the websites to be investigated, the status of the diagnosis, the results of the diagnosis, the session tracking parameters, and the like.
[0070]
FIG. 20 is a diagram illustrating another example of the inspection result screen 74. The inspection result screen 74 is a screen that displays information on vulnerabilities inherent in the website to be investigated. The selection unit 314 in FIG. 18 indicates that if session tracking parameters are stored in a cookie, if the website is inherently vulnerable to cross-site scripting, there is a possibility that personal information may be stolen by spoofing. Select the comment to notify. As a result, the screen shown in the figure is displayed.
[0071]
FIG. 21 is a diagram showing another example of the inspection result screen 76. The inspection result screen 76 is also a screen that displays information on vulnerabilities inherent in the website to be investigated, as in FIG. When the values of the session tracking parameters are similar for each user and can be easily estimated, the selection unit 314 in FIG. 18 selects a comment that notifies that the vulnerability to the impersonation is inherent. As a result, the screen shown in the figure is displayed.
[0072]
FIG. 22 is an example of a flowchart of a process for inspecting the vulnerability of the website 50 in the inspection device 100 of FIG. First, the inspection device 100 estimates a session tracking parameter based on the communication content between the browser 14 and the website 50 (S10). Next, the inspection device 100 verifies whether the estimated session tracking parameter is correct (S12). Next, the inspection device 100 verifies the vulnerability to the spoofing action, that is, the access control function in the website 50 (S14).
[0073]
FIG. 23 is an example of a detailed flowchart of step 10 in FIG. When the estimation process of the session tracking parameter is started, the inspection device 100 starts recording communication contents (S20). Then, the inspection device 100 instructs the user to log in to the website 50 (S22). Next, the inspection device 100 instructs the user to obtain a personal information page. In response to this instruction, the user follows the link of the web page, searches for the personal information page, and causes the browser 14 to display it. The inspection device 100 records the personal information page (S24). Even during this search operation, the inspection device 100 records the communication contents.
[0074]
Next, the inspection apparatus 100 instructs to arbitrarily search for a plurality of web pages provided by the website 50, and records a plurality of communication contents in order to record communication contents during the search and statistically estimate session tracking parameters. Are collected (S26). Then, the inspection device 100 instructs logout from the website 50 (S27). Then, the inspection apparatus 100 performs an inspection of the logout function by adding the session tracking parameter to the request again after logging out and attempting to acquire the personal information page (S28).
[0075]
After inspecting the logout function, the inspection device 100 ends the recording of the communication contents (S30). Then, the inspection device 100 estimates a session tracking parameter based on the communication contents in a series of sessions up to Step 28 (S32). Then, the inspection device 100 performs an analysis based on the transmission format and the data configuration of the estimated session tracking parameter (S34), and displays the vulnerability existing in the website 50 as an analysis result (S36).
[0076]
FIG. 24 is an example of a detailed flowchart of step 12 in FIG. When the verification process of the session tracking parameter is started, the inspection device 100 starts recording communication contents (S40). Then, the inspection device 100 instructs the user to log in to the website 50 (S42). Next, the inspection device 100 instructs the user to acquire the personal information page, and records the displayed personal information page in response to the instruction (S42).
[0077]
Then, the inspection apparatus 100 notifies the user that the session tracking parameter is to be verified using the user information, and inquires whether or not to execute the processing (S44). When the inspection is permitted (Y in S44), the inspection apparatus 100 selects a verification parameter from the parameter candidates (S46). Then, the inspection apparatus 100 removes the verification parameter from the request transmitted to the website 50 to acquire the personal information page in step 42, and generates a new request (S48).
[0078]
Then, the inspection device 100 transmits the request to the website 50 (S50), and receives a response from the website 50 (S52). Next, the inspection device 100 determines whether the personal information page has been acquired based on the content of the response (S54). When the personal information page has been acquired (Y in S54), the process returns to step 46, and the inspection apparatus 100 selects another parameter candidate as a verification parameter. When the personal information page cannot be acquired (N in S54), the inspection device 100 ends the recording of the communication contents (S56). Then, the inspection device 100 specifies the verification parameter as the session tracking parameter when the personal information page cannot be obtained (S58). The inspection device 100 further analyzes the vulnerability inherent in the website 50 based on the specified transmission method of the session tracking parameter and the like in the analysis in step 34 of FIG. 23 (S60), and displays the analysis result. (S62). In step 44, when the inspection is not permitted (N in S44), the inspection apparatus 100 stops the processing.
[0079]
FIG. 25 is an example of a detailed flowchart of step 14 in FIG. When the spoofing verification process is started, the inspection device 100 starts recording communication contents (S70). Then, the inspection apparatus 100 instructs the user to log in to the website 50 with the second user information (S72). Next, the inspection apparatus 100 instructs the user to acquire the personal information page, and records the displayed personal information page in response to the instruction (S74).
[0080]
Then, the inspection device 100 notifies the user that the process for verifying the spoofing vulnerability is performed, and inquires whether to permit the execution of the process (S76). If permitted (Y in S76), the inspection apparatus 100 obtains the session tracking parameters included in the request sent to the website 50 to obtain the personal information page in step 74 after logging in as the second user. A new request is generated by replacing the current session parameter with the current session parameter (S78).
[0081]
Then, the inspection device 100 transmits the request to the website 50 (S80), and receives a response from the website 50 (S82). The inspection device 100 ends the recording of the communication contents (S84). Next, the inspection device 100 determines whether the personal information of the first user has been acquired based on the content of the response (S86). If the personal information of the first user can be obtained, the website 50 has vulnerability to spoofing. Then, the inspection device 100 performs the analysis while considering the transmission method of the session tracking parameter and the like (S88), and displays the analysis result (S90). If the permission is not granted in step 76 (N in S76), the inspection apparatus 100 stops the processing.
[0082]
The present invention has been described based on the embodiments. It should be understood by those skilled in the art that the embodiments are exemplifications, and that various modifications can be made to the combination of each component and each processing process, and that such modifications are also within the scope of the present invention. . The following are points to keep in mind from such a viewpoint.
[0083]
In the embodiment, the operation of this system is basically left to the individual. However, in view of the high public interest of this system, its operation can naturally be managed collectively by an entity capable of implementing public interest projects. In this case, the inspection apparatus 100 shown in FIG. The present invention does not ask the operation subject or the operation form.
[0084]
For example, a system auditor may use the system for security auditing of the system, or a web application orderer may use the system for acceptance of the system. Traditionally, these standards for auditing and acceptance have been difficult and unclear. However, an objective criterion can be set that no vulnerabilities are detected by the system.
[0085]
A server for collecting the test results performed at the individual level is provided on the network 12. Then, when accessing the website, the browser 14 may first connect to the server, confirm the security of the website, or present it to the user, and then start the access. As a configuration of the browser 14 having such a function, a detection unit for detecting an access instruction, an access destination information acquisition unit for inquiring about security to a server holding inspection results using a URL designated as an access destination as a search key, And a presentation unit that presents the user with safety information. Thereby, the inspection results of the website collected by other users can be effectively used. In addition, it is possible to collect inspection results of a myriad of websites in an extremely short time.
[0086]
Further, the browser 14 may include the inspection device 100, and may cause the inspection device 100 to inspect the access destination when the access destination information acquisition unit cannot acquire the inspection result of the access destination. Then, the browser 14 may register the newly acquired inspection result in the server.
[0087]
【The invention's effect】
According to the present invention, a vulnerability inherent in a website can be inspected based on the communication content between the website to be inspected and the client.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of an inspection system according to an embodiment.
FIG. 2 is an internal configuration diagram of the website of FIG. 1;
FIG. 3 is a diagram illustrating an example of a data structure of a request message in FIG. 1;
FIG. 4 is a diagram illustrating an example of a data structure of a response message in FIG. 1;
FIG. 5 is an internal configuration diagram of the inspection device of FIG. 1;
FIG. 6 is a diagram illustrating an example of a data structure in a personal information storage unit in FIG. 5;
FIG. 7 is an internal configuration diagram of an acquisition unit in FIG. 5;
8 is a diagram for explaining a class structure of an object held in a communication content storage unit in FIG. 5;
FIG. 9 is an internal configuration diagram of an estimation unit in FIG. 5;
FIG. 10 is a flowchart of a parameter candidate selection process in the estimation unit in FIG. 9;
11 is an internal configuration diagram of the verification unit of FIG.
FIG. 12 is an internal configuration diagram of a parameter inspection unit in FIG. 11;
13 is a diagram showing an example of a parameter selection screen for selecting a verification parameter in the selection unit of FIG.
FIG. 14 is an internal configuration diagram of the spoofing inspection unit of FIG. 11;
FIG. 15 is an internal configuration diagram of a test unit in FIG. 5;
FIG. 16 is an internal configuration diagram of a logout function inspection unit in FIG. 15;
FIG. 17 is an internal configuration diagram of a timeout function inspection unit in FIG. 15;
FIG. 18 is an internal configuration diagram of the analysis unit of FIG. 5;
FIG. 19 is a diagram illustrating an example of an inspection result screen.
FIG. 20 is a diagram showing another example of the inspection result screen.
FIG. 21 is a diagram showing another example of the inspection result screen.
FIG. 22 is an example of a flowchart of a process for inspecting a website for vulnerability in the inspection device of FIG. 1;
FIG. 23 is an example of a detailed flowchart of Step 10 in FIG. 22;
FIG. 24 is an example of a detailed flowchart of Step 12 in FIG. 22;
FIG. 25 is an example of a detailed flowchart of Step 14 in FIG. 22;
[Explanation of symbols]
Reference Signs List 10 inspection system, 12 network, 14 browser, 20 request message, 22 response message, 50 website, 100 inspection device, 102 communication content storage unit, 104 personal information storage unit, 106 inspection control unit, 108 operation reception unit, 110 display Processing unit, 150 acquisition unit, 152 first determination unit, 154 extraction unit, 156 second determination unit, 158 first encryption / decryption unit, 159 second encryption / decryption unit, 160 storage processing unit, 200 estimation unit, 202 extraction unit, 204 narrowing down unit, 206 specifying unit, 208 user instruction receiving unit, 300 analyzing unit, 302 parameter state determining unit, 304 guessability determining unit, 306 transmission format determining unit, 308 verification result receiving unit, 310 test Result receiving unit, 312 digitizing unit, 314 selecting unit, 316 knowledge database, 350 testing unit , 352 logout function inspection section, 354 timeout function inspection section, 36 session tracking parameters, 360 logout processing section, 362 request instruction section, 364 communication section, 366 determination section, 370 setting section, 372 clock section, 374 instruction section, 376 communication Section, 378 determination section, 400 verification section, 402 parameter inspection section, 404 impersonation inspection section, 406 permission section, 410 parameter candidate input section, 412 selection section, 414 reading section, 416 editing section, 418 communication section, 420 determination section, 430 login processing unit, 432 reading unit, 434 replacement unit, 436 communication unit, 438 determination unit, 440 parameter acquisition unit.

Claims (18)

ウェブサイトとクライアントとの通信内容を取得する取得部と、
前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、
推定されたセッション追跡パラメータに基づいて前記ウェブサイトに内在する脆弱性を分析する分析部と、
を備えることを特徴とするウェブサイトの検査装置。
An acquisition unit for acquiring communication contents between the website and the client;
An estimating unit that estimates a session tracking parameter that specifies a session between the website and the client, which is included in the communication content,
An analysis unit that analyzes vulnerabilities inherent in the website based on the estimated session tracking parameters;
A website inspection apparatus, comprising:
請求項1に記載の装置において、
前記推定部は、
前記通信内容に基づいて前記セッション追跡パラメータの候補を抽出する抽出部と、
前記ウェブサイトにおけるウェブページの取得処理を繰り返すことにより、前記候補の中からセッション追跡パラメータを絞り込む絞込部と、
を有することを特徴とするウェブサイトの検査装置。
The apparatus according to claim 1,
The estimating unit,
An extracting unit that extracts a candidate for the session tracking parameter based on the communication content;
By narrowing down a session tracking parameter from among the candidates by repeating a web page acquisition process on the website, a narrowing unit,
A website inspection apparatus, comprising:
請求項2に記載の装置において、
前記ウェブサイトと前記クライアントとのセッションにおいて、前記通信内容に前記セッション追跡パラメータが含まれる可能性が高いウェブページを注目ページとして特定する特定部を更に備え、
前記絞込部は、前記候補のうち、前記注目ページに係るセッションにおいて取得した通信内容に基づいて抽出した候補に高い優先度をつけることを特徴とするウェブサイトの検査装置。
The apparatus according to claim 2,
In the session between the website and the client, further includes a specifying unit that specifies a web page that is likely to include the session tracking parameter in the communication content as a page of interest,
The website inspection apparatus, wherein the narrowing unit assigns a high priority to a candidate extracted from the candidates based on communication content acquired in a session related to the page of interest.
請求項3に記載の装置において、前記特定部は、所定の文字列が含まれているウェブページを前記注目ページと定めることを特徴とするウェブサイトの検査装置。The apparatus according to claim 3, wherein the specifying unit determines a web page including a predetermined character string as the page of interest. 請求項3に記載の装置において、
当該装置はさらに、前記注目ページの指定をユーザから受け付ける受付部を備え、
前記特定部は前記ユーザに指定されたウェブページを注目ページと定めることを特徴とするウェブサイトの検査装置。
The device according to claim 3,
The apparatus further includes a receiving unit that receives designation of the page of interest from a user,
The apparatus for inspecting a website, wherein the specifying unit determines a web page designated by the user as a page of interest.
請求項2から5のいずれかに記載の装置において、
前記絞込部は、前記ウェブサイトと前記クライアントとのセッションを繰り返すことにより取得された複数の通信内容から統計的手法を用いてセッション追跡パラメータを絞り込むことを特徴とするウェブサイトの検査装置。
The apparatus according to any one of claims 2 to 5,
The website inspection apparatus, wherein the narrowing unit narrows down session tracking parameters from a plurality of communication contents obtained by repeating a session between the website and the client by using a statistical method.
請求項1から6のいずれかに記載の装置において、
当該装置はさらに、個人情報を保持する格納部を備え、
前記分析部は、前記セッション追跡パラメータに前記個人情報が含まれているか否かを判定することを特徴とするウェブサイトの検査装置。
The apparatus according to any one of claims 1 to 6,
The device further comprises a storage unit for holding personal information,
The website inspection apparatus, wherein the analysis unit determines whether the personal information is included in the session tracking parameter.
請求項1から7のいずれかに記載の装置において、
前記分析部は、前記セッション追跡パラメータが規則性を有するか否かを一連の通信内容に含まれる前記セッション追跡パラメータに基づいて判定することを特徴とするウェブサイトの検査装置。
The apparatus according to any one of claims 1 to 7,
The website inspection apparatus according to claim 1, wherein the analysis unit determines whether the session tracking parameter has regularity based on the session tracking parameter included in a series of communication contents.
請求項1から8のいずれかに記載の装置において、
セッション追跡パラメータの伝送形式を判断する判断部を更に備えることを特徴とするウェブサイトの検査装置。
The device according to any one of claims 1 to 8,
An inspection apparatus for a website, further comprising a determination unit configured to determine a transmission format of a session tracking parameter.
請求項9に記載の装置において、
判断された伝送形式に応じて異なるコメントを前記クライアントに提供する提供部を更に備えることを特徴とするウェブサイトの検査装置。
The device according to claim 9,
An apparatus for inspecting a website, further comprising a providing unit for providing a different comment to the client according to the determined transmission format.
ウェブサイトとクライアントとの通信内容を取得する取得部と、
前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、
推定されたセッション追跡パラメータを取り除いて通信を行うことにより、セッション追跡パラメータの推定の正否を検証する検証部と、
を備えることを特徴とするウェブサイトの検査装置。
An acquisition unit for acquiring communication contents between the website and the client;
An estimating unit that estimates a session tracking parameter that specifies a session between the website and the client, which is included in the communication content,
By performing communication by removing the estimated session tracking parameter, a verification unit that verifies whether the estimation of the session tracking parameter is correct,
A website inspection apparatus, comprising:
請求項11に記載の装置において、
前記検証部は、
前記の推定されたセッション追跡パラメータを前記ウェブサイトへ出すべきリクエストメッセージの中から削除する編集部と、
編集部で改変されたリクエストメッセージにより、本来取得されるべきウェブページが取得できなかった場合、前記セッション追跡パラメータの推定が正しかったと判定する判定部と、
を有することを特徴とするウェブサイトの検査装置。
The apparatus according to claim 11,
The verification unit,
An editing unit for deleting the estimated session tracking parameter from a request message to be sent to the website;
A determination unit that determines that the estimation of the session tracking parameter is correct when a web page that should be originally obtained cannot be obtained by the request message modified by the editing unit,
A website inspection apparatus, comprising:
請求項12に記載の装置において、
前記判定部にて、前記セッション追跡パラメータの推定が正しくなかったと判定されたとき、前記編集部および判定部は、別のパラメータを新たにセッション追跡パラメータとして処理を繰り返すことを特徴とするウェブサイトの検査装置。
An apparatus according to claim 12,
When the determining unit determines that the estimation of the session tracking parameter is not correct, the editing unit and the determining unit repeat the process using another parameter as a new session tracking parameter. Inspection equipment.
請求項11から13のいずれかに記載の装置において、
前記検証部の動作許否をユーザに指定せしめる許可部を更に備え、
前記検証部は、ユーザから許可された場合に前記検証部の動作を許可することを特徴とするウェブサイトの検査装置。
Apparatus according to any of claims 11 to 13,
Further comprising a permission unit that allows the user to specify the operation permission of the verification unit,
The inspection apparatus for a website, wherein the verification unit permits the operation of the verification unit when permitted by a user.
請求項12から14のいずれかに記載の装置において、
当該装置はさらに、個人情報を保持する格納部を備え、
前記判定部は、前記ウェブページに前記個人情報が含まれているか否かを判定することを特徴とするウェブサイトの検査装置。
An apparatus according to any of claims 12 to 14,
The device further comprises a storage unit for holding personal information,
The website inspection apparatus, wherein the determination unit determines whether the personal information is included in the web page.
ウェブサイトとクライアントとの通信内容を取得する取得部と、
前記通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを推定する推定部と、
第1のユーザ情報を利用して前記ウェブサイトにログインするログイン部と、
前記第1のユーザ情報とは異なる第2のユーザ情報を利用してログインしたときの所定のウェブページを取得するためのリクエストメッセージに含まれるセッション追跡パラメータを、前記第1のユーザ情報を利用してログインした後、推定されたセッション追跡パラメータに置き換える置換部と、
セッション追跡パラメータを置換したリクエストメッセージに応じて、前記ウェブサイトから送信されたウェブページに、前記第2のユーザに関係する情報が含まれているか否かを判定する判定部と、
を備えることを特徴とするウェブサイトの検査装置。
An acquisition unit for acquiring communication contents between the website and the client;
An estimating unit that estimates a session tracking parameter that specifies a session between the website and the client, which is included in the communication content,
A login unit that logs in to the website using first user information;
A session tracking parameter included in a request message for obtaining a predetermined web page when logging in using second user information different from the first user information is obtained by using the first user information. After logging in, replacing the estimated session tracking parameter with a replacement unit,
A determining unit that determines whether a web page transmitted from the website includes information related to the second user in response to the request message that has replaced the session tracking parameter,
A website inspection apparatus, comprising:
請求項1から16のいずれかに記載の装置において、
前記クライアントが前記ウェブサイトからログアウトした後、前記セッション追跡パラメータを利用して、ログアウト前に実施していたセッションを再現しうるか否かを判定する調査部を更に備えることを特徴とするウェブサイトの検査装置。
The device according to any one of claims 1 to 16,
After the client logs out of the website, further comprising a research unit that determines whether or not the session performed before the logout can be reproduced using the session tracking parameter. Inspection equipment.
ウェブサイトとクライアントとの通信内容に含まれる、前記ウェブサイトと前記クライアントとのセッションを特定するセッション追跡パラメータを保持する設定部と、
前記クライアントと前記ウェブサイトとのセッションが途絶えた後の経過時間を計測する計測部と、
前記経過時間が所定のしきい値を超えた後、前記セッション追跡パラメータを利用し、ウェブページの提供を前記ウェブサイトに要求する指示部と、
を備えることを特徴とするウェブサイトの検査装置。
A setting unit that holds a session tracking parameter that specifies a session between the website and the client, which is included in the communication content between the website and the client,
A measuring unit for measuring the elapsed time after the session between the client and the website is interrupted,
After the elapsed time exceeds a predetermined threshold, using the session tracking parameters, an instruction unit for requesting the website to provide a web page,
A website inspection apparatus, comprising:
JP2003100271A 2003-04-03 2003-04-03 Website inspection equipment Expired - Lifetime JP3896486B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003100271A JP3896486B2 (en) 2003-04-03 2003-04-03 Website inspection equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003100271A JP3896486B2 (en) 2003-04-03 2003-04-03 Website inspection equipment

Publications (2)

Publication Number Publication Date
JP2004310267A true JP2004310267A (en) 2004-11-04
JP3896486B2 JP3896486B2 (en) 2007-03-22

Family

ID=33464459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003100271A Expired - Lifetime JP3896486B2 (en) 2003-04-03 2003-04-03 Website inspection equipment

Country Status (1)

Country Link
JP (1) JP3896486B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146636A (en) * 2004-11-22 2006-06-08 Fujitsu Ltd Web browsing method via relay server
JP2008135029A (en) * 2006-11-17 2008-06-12 Hewlett-Packard Development Co Lp Web application assessment based on intelligent generation of attack string
JP2008171397A (en) * 2006-11-17 2008-07-24 Hewlett-Packard Development Co Lp Method for characterizing web application input
JP2010288313A (en) * 2005-06-28 2010-12-24 Internatl Business Mach Corp <Ibm> Secure data communications in web services
JP7320211B1 (en) * 2023-06-12 2023-08-03 株式会社エーアイセキュリティラボ Systems, methods and programs for testing website vulnerabilities
JP7344614B1 (en) * 2023-05-08 2023-09-14 株式会社エーアイセキュリティラボ Systems, methods, and programs for testing website vulnerabilities

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5411381B1 (en) 2013-06-03 2014-02-12 株式会社 ディー・エヌ・エー Server inspection system, server inspection apparatus, and server inspection program
CN104537307A (en) * 2014-12-23 2015-04-22 北京奇虎科技有限公司 Method and system for detecting website vulnerability

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146636A (en) * 2004-11-22 2006-06-08 Fujitsu Ltd Web browsing method via relay server
JP2010288313A (en) * 2005-06-28 2010-12-24 Internatl Business Mach Corp <Ibm> Secure data communications in web services
TWI416923B (en) * 2005-06-28 2013-11-21 Ibm Secure data communications in web services
JP2008135029A (en) * 2006-11-17 2008-06-12 Hewlett-Packard Development Co Lp Web application assessment based on intelligent generation of attack string
JP2008171397A (en) * 2006-11-17 2008-07-24 Hewlett-Packard Development Co Lp Method for characterizing web application input
JP7344614B1 (en) * 2023-05-08 2023-09-14 株式会社エーアイセキュリティラボ Systems, methods, and programs for testing website vulnerabilities
JP7440150B1 (en) 2023-05-08 2024-02-28 株式会社エーアイセキュリティラボ Systems, methods, and programs for testing website vulnerabilities
WO2024232110A1 (en) * 2023-05-08 2024-11-14 株式会社エーアイセキュリティラボ System, method, and program for inspecting vulnerability of website
JP7320211B1 (en) * 2023-06-12 2023-08-03 株式会社エーアイセキュリティラボ Systems, methods and programs for testing website vulnerabilities

Also Published As

Publication number Publication date
JP3896486B2 (en) 2007-03-22

Similar Documents

Publication Publication Date Title
USRE49089E1 (en) Security for WAP servers
Petsas et al. Two-factor authentication: is the world ready? Quantifying 2FA adoption
US7647631B2 (en) Automated user interaction in application assessment
WO2020233022A1 (en) Vulnerability detection method and apparatus, computer device, and storage medium
US8656495B2 (en) Web application assessment based on intelligent generation of attack strings
US8925051B1 (en) Automated login session extender for use in security analysis systems
Malik et al. CREDROID: Android malware detection by network traffic analysis
US20110035784A1 (en) Method and apparatus for detecting cyber threats
US10033761B2 (en) System and method for monitoring falsification of content after detection of unauthorized access
CN105933268A (en) Webshell detection method and apparatus based on total access log analysis
CN113868659B (en) Vulnerability detection method and system
US9059987B1 (en) Methods and systems of using single sign-on for identification for a web server not integrated with an enterprise network
KR20120135041A (en) Access monitoring method, information processing apparatus, and computer-readable medium storing access monitoring program
CN112003864B (en) Website security detection system and method based on full flow
Riadi et al. Vulnerability analysis of E-voting application using open web application security project (OWASP) framework
Kaur et al. Browser fingerprinting as user tracking technology
CN109145585A (en) There are the method and devices of weak passwurd for a kind of detection website
JP3896486B2 (en) Website inspection equipment
CN108028843A (en) Passive type web application firewalls
CN113868670B (en) A vulnerability detection process inspection method and system
CN113868669B (en) Vulnerability detection method and system
CN113886837B (en) A vulnerability detection tool credibility verification method and system
Munir et al. {PURL}: Safe and Effective Sanitization of Link Decoration
Vecchiato et al. A security configuration assessment for android devices
CN111241547B (en) Method, device and system for detecting override vulnerability

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061128

R150 Certificate of patent or registration of utility model

Ref document number: 3896486

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term