説明

管理装置及び管理方法及びプログラム

【課題】Webアプリケーションに対する診断を効率的に行う。
【解決手段】フレームワーク識別情報蓄積部113は、診断対象Webアプリケーション111で使用されているフレームワークを判別するための文字列が含まれるフレームワーク識別情報を記憶し、通信記録部114は、診断対象Webアプリケーション111との間の通信を記録し、フレームワーク判定部112が、通信記録から診断対象Webアプリケーション111から受信したWebページを抽出し、抽出したWebページにフレームワーク識別情報の文字列が含まれているか否かを解析し、Webページに文字列が含まれている場合に、当該文字列に対応するフレームワークが使用されていると判断し、セキュリティホール判定部102及び擬似攻撃生成部103が、当該フレームワーク用の擬似攻撃を省略してWebアプリケーションに対する擬似攻撃を行ってセキュリティホールを診断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Webアプリケーションの管理に関し、特にWebアプリケーションフレームワークが使用されているWebアプリケーションの管理に関する。
【背景技術】
【0002】
Webアプリケーションとは、Webサーバもしくはアプリケーションサーバ上で動作するソフトウェアであり、HTTP(HyperText Transfer Protocol)プロトコルを通じてWebブラウザから呼び出され、処理結果をHTML(HyperText Markup Language)としてブラウザに返すことでユーザにサービスを提供するものである。
Webアプリケーションの呼び出しは、URL(Uniform Resource Locator)の他に、ユーザがフォームへ入力したデータなど呼び出し時のパラメータをHTTPリクエストに格納して、Webサーバに送信することで行われる。
近年、パラメータに不正なデータを格納して、Webアプリケーションを呼び出すことで、セキュリティ上の欠陥(セキュリティホールもしくは脆弱性)を悪用する攻撃が増加してきている。
このようなWebアプリケーションのセキュリティホールに対する対策技術の一つとして、Webアプリケーションに対して擬似攻撃を行うことで、悪用される前にセキュリティホールを見つけ出すWebアプリケーション診断技術が存在する。
Webアプリケーション診断技術においては、各パラメータに対し、攻撃を模擬した不正データを設定したHTTPリクエストを送信し、その応答からセキュリティホールの有無を判断する。
その際、Webアプリケーションの入口でのパラメータチェックを回避するために、様々な文字種や形式の不正データを用いて検査を行うのが一般的である。
検査の効率を上げるため、事前に数パターンのデータを送信し、パラメータチェックに合格する文字セットなどを特定して、パラメータチェックに合格する不正データのみを送信する方法が知られている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−135029号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、Webアプリケーションの開発を効率化するために、Webアプリケーションフレームワーク(以下、単に「フレームワーク」ともいう)を使用した開発が主流となっている。
フレームワークを利用した開発では、セッション管理やページ遷移の制御といった複数のWebアプリケーションに共通する機能をフレームワークが行うため、開発者は本来行いたい処理の実装に専念できるというメリットがある。
このようなフレームワークを用いたWebアプリケーションでは、ブラウザから送信されるHTTPリクエストに、本来Webアプリケーションが必要とするパラメータの他に、フレームワークが動作するために必要なパラメータが大量に付加される場合がある。
例えば、図10はDWR(Direct Web Remoting)と呼ばれるフレームワーク上で生成されたWebページからのHTTPリクエストで送信されるパラメータ(計9個)を示す。
ところが、これらの中で実際に開発者の実装したプログラムに渡されるパラメータはc0−param中の“Joe”のみであり、残りは全てフレームワーク内で処理される。
従来はこれらのパラメータ全てを診断対象とし、各パラメータに擬似攻撃を加えて診断を行っていた。
しかし、フレームワークのセキュリティホールは、フレームワークを提供するベンダやセキュリティコミュニティによって十分検証されており、フレームワークが消費するパラメータに関する診断は単に診断時間を浪費するのみである。
つまり、従来は、フレームワークのパラメータとWebアプリケーション独自のパラメータとを区別していないので、本来は不要であるフレームワークのパラメータに対する診断が行われ、このため、無駄に診断時間が長くなり、また、無駄な計算機リソースの消費が生じるという課題がある。
【0005】
この発明は、上記のような課題を解決することを主な目的の一つとしており、Webアプリケーションに対する診断の効率化を図ることを主な目的の1つとする。
【課題を解決するための手段】
【0006】
本発明に係る管理装置は、
Webアプリケーションフレームワークが使用されているWebアプリケーションと通信を行い、前記Webアプリケーションを管理する管理装置であって、
Webアプリケーションフレームワークの判別に用いられる判別情報を記憶している判別情報記憶領域から判別情報を取得する判別情報取得部と、
前記Webアプリケーションとの通信を記録する通信記録部と、
前記通信記録部による通信記録と前記判別情報取得部により取得された判別情報とを用いて、前記WebアプリケーションにおいていずれのWebアプリケーションフレームワークが使用されているかを判別するフレームワーク判定部とを有することを特徴とする。
【発明の効果】
【0007】
本発明では、Webアプリケーションに使用されているWebアプリケーションフレームワークを判別し、判別したWebアプリケーションフレームワークに対する診断を省略することにより、Webアプリケーションに対する診断の効率化を図ることができる。
【図面の簡単な説明】
【0008】
【図1】実施の形態1〜4に係るシステム構成例を示す図。
【図2】実施の形態1〜4に係るWebアプリケーション診断装置の動作の概略を示すフローチャート図。
【図3】実施の形態1〜4に係るWebアプリケーション診断装置の動作の詳細を示すフローチャート図。
【図4】実施の形態1〜4に係るWebアプリケーション診断装置の動作の詳細を示すフローチャート図。
【図5】実施の形態1に係るフレームワーク識別情報の例を示す図。
【図6】実施の形態2に係るフレームワーク識別情報の例を示す図。
【図7】実施の形態3に係るフレームワーク識別情報の例を示す図。
【図8】実施の形態4に係るフレームワーク識別情報の例を示す図。
【図9】実施の形態1〜4に係るWebアプリケーション診断装置のハードウェア構成例を示す図。
【図10】従来技術を説明する図。
【発明を実施するための形態】
【0009】
実施の形態1.
図1は、本実施の形態に係るWebアプリケーション診断装置101の機能構成を示す図である。
Webアプリケーション診断装置101は、インターネット(あるいはIP網)108を介して、診断対象Webアプリケーション111が稼動しているWebサーバ110と接続されている。
Webアプリケーション診断装置101は、管理装置の例である。
【0010】
診断対象Webアプリケーション111は、いずれかのWebアプリケーションフレームワーク(以下、フレームワークともいう)を使用している。
Webアプリケーション診断装置101は、診断対象Webアプリケーション111を管理する。
より具体的には、Webアプリケーション診断装置101は、診断対象Webアプリケーション111においていずれのWebアプリケーションフレームワークが使用されているかを判別するとともに、判別したWebアプリケーションフレームワークに対応させてWebアプリケーションに対する擬似攻撃を行って、Webアプリケーションにおけるセキュリティホールの診断を行う。
【0011】
Webアプリケーション診断装置101は、HTTPリクエスト送信部105、HTTPレスポンス受信部106、雛形HTTPリクエスト生成部107、擬似攻撃生成部103、セキュリティホール判定部102、診断結果表示部104および通信記録部114といった従来のWebアプリケーション診断装置に備えられた機能に加え、フレームワーク判定部112、フレームワーク識別情報蓄積部113を備えている。
【0012】
HTTPリクエスト送信部105は、診断対象Webアプリケーション111が稼動しているサーバアドレスとHTTPリクエストを入力として、同アドレスで指定されるサーバにHTTPリクエストを送信する機能である。
【0013】
同様にHTTPレスポンス受信部106は、診断対象WebアプリケーションからのHTTPレスポンスを受信する機能である。
【0014】
雛形HTTPリクエスト生成部107は、Webアプリケーションにとって正常に処理可能なHTTPリクエストを生成する機能である。
【0015】
擬似攻撃生成部103は、後述するフレームワーク判定部112により特定されたフレームワークに固有のセキュリティホールに対する診断のための擬似攻撃は省略して診断対象Webアプリケーション111におけるセキュリティホールの診断のための擬似攻撃を行う。
前述したように、フレームワークのセキュリティホールは、フレームワークを提供するベンダやセキュリティコミュニティによって十分検証されており、フレームワークが消費するパラメータに関する診断は単に診断時間を浪費するのみであるため、擬似攻撃生成部103は、診断対象Webアプリケーション111に使用されているフレームワークのパラメータに対する擬似攻撃は省略し、診断対象Webアプリケーション111独自のパラメータに対する擬似攻撃のみを行う。
【0016】
セキュリティホール判定部102は、擬似攻撃生成部103による擬似攻撃を通じて診断対象Webアプリケーション111におけるセキュリティホールを判定する。
【0017】
擬似攻撃生成部103及びセキュリティホール判定部102は、Webアプリケーション診断部の例である。
【0018】
診断結果表示部104は、セキュリティホール判定部102によるセキュリティホールの判定結果を表示する。
【0019】
フレームワーク判定部112は、診断対象Webアプリケーション111から取得されたHTML、JavaScript(登録商標)ファイルのテキストを解析し、診断対象Webアプリケーション111で使用されているフレームワークを特定する機能である。
フレームワーク判定部112は、フレームワーク判定部及び判別情報取得部の例である。
【0020】
フレームワーク識別情報蓄積部113は、Webアプリケーションで使用されているフレームワークを特定するためのフレームワーク識別情報(シグニチャ)を蓄積する機能である。
フレームワーク識別情報は、フレームワークの判別に用いられる情報であり、判別情報の例である。
また、フレームワーク識別情報蓄積部113は、判別情報記憶領域の例である。
【0021】
通信記録部114は、診断対象Webアプリケーション111との間の通信を記録する。
具体的には、診断対象Webアプリケーション111とHTTPリクエスト送信部105との間の通信、及び診断対象Webアプリケーション111とHTTPレスポンス受信部106との間の通信を記録する。
【0022】
図2を用いてWebアプリケーション診断装置101の概略動作について説明する。
はじめにWebアプリケーション診断装置101は、診断実施者に対し診断対象サイトのトップページURLを入力させ(S202)、指定されたURLまで移動する(S203)。
さらに、Webアプリケーション診断装置101は、診断実施者に診断対象ページまでの移動操作を行わせ、トップページから診断対象ページに至る間のWebサーバとの通信を通信記録部114に記録する(S204)。
【0023】
次にWebアプリケーション診断装置101は、診断実施者に診断対象ページ指定を行わせた(S205)上で、診断対象Webアプリケーション111の操作を行わせる。
Webアプリケーション診断装置101は、診断実施者による診断対象Webアプリケーション111の操作によって発生するWebサーバ110との通信を診断対象の通信として通信記録部114に記録する(S206)(通信記録ステップ)。
【0024】
Webアプリケーション診断装置101は、診断対象者に対して診断対象Webアプリケーション111の操作終了後に診断開始指示を行わせ(S207)、診断開始指示が行われた時点で診断対象の通信に対してセキュリティ診断を開始する。
セキュリティ診断では、Webアプリケーション診断装置101は、診断対象Webアプリケーション111の操作によって発生したWebサーバ110との通信記録の中から診断対象Webアプリケーション111から受信したWebページを取得し(S208)、フレームワーク判定部112がフレーム識別情報を取得しWebページに照合して診断対象Webアプリケーション111で使用されているフレームワークを特定する(S209)(判別情報取得ステップ)(フレームワーク判定ステップ)。
フレームワークを特定する動作については、後で詳述する。
【0025】
フレームワークの特定が終わると、雛形HTTPリクエスト生成部107が、診断対象Webアプリケーション111へ送信する擬似攻撃のHTTPリクエストを生成するための雛形となるHTTPリクエストを生成する(S210)。
このHTTPリクエストは、Webアプリケーションで正常に処理されるものである。
次に、擬似攻撃生成部103は、特定したフレームワークの情報を元に診断対象のパラメータを特定し、生成したHTTPリクエストの雛形から擬似攻撃データを作成する(S211)。この擬似攻撃データは、フレームワークのパラメータを除外した診断対象Webアプリケーション111独自のパラメータに対する擬似攻撃を行うためのデータである。
そして、セキュリティホール判定部102は、作成された擬似攻撃データを用いて診断対象Webアプリケーション111の診断を行う(S212)。
診断対象のパラメータを特定し、擬似攻撃データを作成、診断を行う処理動作の詳細に関しては、本明細書では言及しない。
【0026】
以降では、フレームワークを特定する動作について説明する。
図5は、フレームワーク識別情報蓄積部113に格納されているフレームワーク識別情報の例を示した図である。
フレームワーク識別情報蓄積部113には、0個以上のフレームワーク識別情報が格納されている。
各フレームワーク識別情報は、フレームワーク名402、ファイルタイプ404、詳細指定405、パターン文字列406で構成されている。
【0027】
図5で示したようにファイルタイプ404が“HTML”である場合には、詳細指定405は特定の部分を指定する構文(XPathなど)で表されたHTML文書内の照合対象ノード条件と照合箇所を特定するための情報である。
つまり、詳細指定405は、後述のパターン文字列406が配置されているWebページ内の文字列配置位置を示す。
【0028】
パターン文字列406は、フレームワークを特定するための正規表現文字列である。パターン文字列は、フレームワークの判別に用いられる文字列であり、判別用文字列の例である。
フレームワーク名402は、使用されているフレームワークの名前を表す。
【0029】
図3及び図4を用いてフレームワーク判定部112がフレームワークを特定する動作について説明する。
フレームワーク判定部112は、フレームワーク識別情報蓄積部113からフレームワーク識別情報を取り出す(S302)。
取り出すべきフレームワーク識別情報がない場合には、フレームワーク判定部112は該当するフレームワークが存在しないとし、「該当なし」を出力し(S313)、処理を終了する(S314)。
フレームワーク判定部112は、取り出したフレームワーク識別情報のファイルタイプ404と、診断対象のファイルタイプが同一であるかを確認し(S303)、同一である場合にはファイルタイプが“HTML”である事を確認する(S304)。
本実施の形態では、ファイルタイプは必ず“HTML”となる。
また、取り出したフレームワーク識別情報のファイルタイプ404と、診断対象のファイルタイプが異なる場合には、フレームワーク判定部112は次のフレームワーク識別情報を取り出す。
【0030】
次にフレームワーク判定部112は、フレームワーク識別情報の詳細指定405が空でない事を確認し(S305)、XPathで特定部分を指定する構文で記述された詳細指定405を用い、診断対象ページファイルから照合対象箇所を抽出する(S306)。
そして、フレームワーク判定部112は、抽出した箇所それぞれに対して(S307)、フレームワーク識別情報のパターン文字列406とのマッチングを行う(S308)。
抽出した箇所とフレームワーク識別情報のパターン文字が一致した場合(S309でYES)には、フレームワーク判定部112は、フレームワーク識別情報のフレームワーク名402を出力し(S315)、処理を終了する(S314)。
【0031】
照合箇所が複数抽出された場合には、フレームワーク判定部112は、抽出された照合箇所それぞれに対してパターンマッチングを行う(S307〜S310)。
抽出された照合箇所のいずれもパターンに一致しない場合には、フレームワーク判定部112は次の詳細指定を用いる。
つまり、フレームワーク識別情報の詳細指定が複数指定されている場合には、フレームワーク判定部112は、指定されている詳細指定それぞれに対して照合箇所を抽出し、抽出された照合箇所全てに対してパターンマッチングを行う(S306〜S311)。
指定された詳細指定のいずれでもパターンに一致になければ、フレームワーク判定部112は次のフレームワーク識別情報を用いる。
フレームワーク判定部112は、複数のフレームワーク識別情報に対して個々に照合を行い(S302〜S312)、最初にマッチしたフレームワークを診断対象のフレームワークとしてみなす。
【0032】
以上のように、診断対象Webアプリケーションからの応答(Webページファイル)に対して、Webページのファイルタイプを判別し、特定の部分を指定する構文(XPathなど)で表されたHTML文書内の照合対象ノード条件と照合箇所を特定する情報を元に照合箇所を抽出し、特定のパターンにマッチするかを判断する事で、フレームワークを特定し、フレームワーク情報を元にした擬似攻撃データを作成する事が可能になる、という効果がある。
【0033】
つまり、本実施の形態では、通信記録とフレームワーク識別情報を用いてWebアプリケーションに使用されているフレームワークを判別し、既に十分な検証が行われているフレームワークについての診断を省略し、Webアプリケーション独自のパラメータにのみ擬似攻撃を行って、Webアプリケーションに対する診断の効率化を図ることができる。
【0034】
なお、本実施の形態では、フレームワーク識別情報蓄積部113が、Webアプリケーション診断装置101と同一装置内で機能することを想定しているが、フレームワーク識別情報蓄積部113がリモートのデータベースサーバに格納されていてももちろん構わない。
また、フレームワーク識別情報蓄積部113内のフレームワーク識別情報を、リモートの配布サーバから定期的に取得して、常に最新のフレームワークに対応するようにする構成も可能である。
【0035】
以上、本実施の形態では、
擬似攻撃データを含んだHTTPリクエストを診断対象のWebアプリケーションへ送信し、その応答であるHTTPレスポンスを解析することによって該Webアプリケーション上のセキュリティホールの有無を判定するWebアプリケーション診断装置において、
Webアプリケーションからの応答に含まれるテキストの中から、Webアプリケーションが使用しているフレームワーク名を特定するフレームワーク判定部を有するWebアプリケーション診断装置を説明した。
【0036】
また、本実施の形態では、フレームワーク判定部から参照され、フレームワーク名、1つ乃至複数の照合箇所、パターン文字列で構成されたフレームワーク識別情報が格納されたフレームワーク識別情報蓄積部を有するWebアプリケーション診断装置を説明した。
【0037】
また、本実施の形態では、照合箇所が、ファイルタイプとファイルタイプ固有の詳細指定情報で構成されたフレームワーク識別情報が格納されたフレームワーク識別情報蓄積部を有するWebアプリケーション診断装置を説明した。
【0038】
また、本実施の形態では、ファイルタイプがHTMLであって、詳細指定では特定の部分を指定する構文によりHTML文書内の照合対象ノード条件と照合箇所を特定可能であるWebアプリケーション診断装置を説明した。
【0039】
実施の形態2.
実施の形態1では、フレームワーク識別情報が、フレームワーク名、ファイルタイプ、詳細指定、パターン文字列で構成されており、ファイルタイプが“HTML”である場合のフレームワーク判定部の動作について説明した。
本実施の形態では、フレームワーク識別情報が、フレームワーク名、ファイルタイプ、パターン文字列で構成されており、ファイルタイプが“HTML”である場合(図5の詳細設定405が省略されている場合)のフレームワーク判定部112の動作について説明する。
【0040】
図6は、本実施の形態に係るフレームワーク識別情報蓄積部113に格納されているフレームワーク識別情報の例を示した図である。
フレームワーク識別情報蓄積部113には、0個以上のフレームワーク識別情報が格納されている。
各フレームワーク識別情報は、フレームワーク名502、ファイルタイプ504、パターン文字列505で構成されている。
パターン文字列505は、フレームワークを特定するための正規表現文字列であり、判別用文字列の例である。
フレームワーク名502は、使用されているフレームワークの名前を表す。
【0041】
図3及び図4を用いてフレームワーク判定部112がフレームワークを特定する動作について説明する。
フレームワーク判定部112は、フレームワーク識別情報蓄積部113からフレームワーク識別情報を取り出す(S302)。
取り出すべきフレームワーク識別情報がない場合には、フレームワーク判定部112は該当するフレームワークが存在しないとし、「該当なし」を出力し(S313)、処理を終了する(S314)。
フレームワーク判定部112は、取り出したフレームワーク識別情報のファイルタイプ504と、診断対象のファイルタイプが同一であるかを確認し(S303)、同一である場合にはファイルタイプが“HTML”である事を確認する(S304)。
本実施の形態では、ファイルタイプは必ず“HTML”となる。
また、取り出したフレームワーク識別情報のファイルタイプと、診断対象のファイルタイプが異なる場合には、フレームワーク判定部112は次のフレームワーク識別情報を取り出す。
【0042】
次にフレームワーク判定部112は、フレームワーク識別情報の詳細指定が空(詳細指定が存在しない)である事を確認し(S305)、診断対象ページファイル全てに対してフレームワーク識別情報のパターン文字列505とのマッチングを行う(S316)。
そして、診断対象ページファイルとフレームワーク識別情報のパターン文字列505が一致した場合には、フレームワーク判定部112は、フレームワーク識別情報のフレームワーク名502を出力し(S315)、処理を終了する(S314)。
【0043】
診断対象ページファイルにパターン文字列505と一致する箇所が存在しない場合には、フレームワーク判定部112は、次のフレームワーク識別情報を用いる。
フレームワーク判定部は、複数のフレームワーク識別情報に対して個々に照合を行い(S302〜S312)、最初にマッチしたフレームワークを診断対象のフレームワークとしてみなす。
【0044】
以上のように、診断対象Webアプリケーションからの応答(Webページファイル)に対してWebページのファイルタイプを判別し、タグも含めたHTMLファイル全体に特定パターンにマッチする箇所が存在するかを判断することで、フレームワークを特定し、フレームワーク情報を元にした擬似攻撃データを作成する事が可能になる、という効果がある。
【0045】
本実施の形態では、フレームワーク識別情報蓄積部113が、Webアプリケーション診断装置101と同一装置内で機能することを想定しているが、フレームワーク識別情報蓄積部113がリモートのデータベースサーバに格納されていてももちろん構わない。
また、フレームワーク識別情報蓄積部113内のフレームワーク識別情報を、リモートの配布サーバから定期的に取得して、常に最新のフレームワークに対応するようにする構成も可能である。
【0046】
また、本実施の形態で示したフレームワーク識別情報蓄積部113は、実施の形態1で示したフレームワーク識別情報蓄積部113と統一してももちろん構わない。
この場合、実施の形態2で使用されるフレームワーク識別情報はフレームワーク名、ファイルタイプ、空の詳細指定、パターン文字列から構成される。
【0047】
以上、本実施の形態では、照合箇所が、ファイルタイプで構成されたフレームワーク識別情報が格納されたフレームワーク識別情報蓄積部を有するWebアプリケーション診断装置を説明した。
【0048】
また、本実施の形態では、ファイルタイプがHTMLであって、タグも含め、HTML文書全体が照合対象となるWebアプリケーション診断装置を説明した。
【0049】
実施の形態3.
実施の形態1では、ファイルタイプが“HTML”である場合のフレームワーク判定部の動作について説明した。本実施の形態では、ファイルタイプが“JavaScript”(登録商標)である場合のフレームワーク判定部の動作について説明する。
【0050】
近年ではAjax(Asynchronous JavaScript(登録商標) And XML)とよばれるJavaScript(登録商標)からWebアプリケーションへの非同期通信による画面更新技術を利用したWebアプリケーションも普及しつつある。
AjaxではJavaScript(登録商標)からWebアプリケーションへと送信されるパラメータの様式が定まっておらず、従来のWeb診断技術では独自のフォーマットを使用してパラメータを送信するWebアプリケーション向けの擬似攻撃(HTTPリクエスト)を生成することができないという課題がある。
本実施の形態では、このような課題に対応するWebアプリケーション診断装置101を説明する。
【0051】
図7は、本実施の形態に係るフレームワーク識別情報蓄積部113に格納されているフレームワーク識別情報の例を示した図である。
フレームワーク識別情報蓄積部113には、0個以上のフレームワーク識別情報が格納されている。
各フレームワーク識別情報は、フレームワーク名602、ファイルタイプ604、詳細指定605、パターン文字列606で構成されている。
図7で示したようにファイルタイプが“JavaScript”(登録商標)である場合には、詳細指定605は照合開始行と照合終了行である。
照合開始行が省略された場合には、ファイル先頭が、照合終了行が省略された場合には、ファイル末尾が指定される。
そして、パターン文字列606は、フレームワークを特定するための正規表現文字列であり、判別用文字列の例である。
フレームワーク名602は、使用されているフレームワークの名前を表す。
【0052】
図3及び図4を用いてフレームワーク判定部112がフレームワークを特定する動作について説明する。
フレームワーク判定部112は、フレームワーク識別情報蓄積部113からフレームワーク識別情報を取り出す(S302)。
取り出すべきフレームワーク識別情報がない場合には、フレームワーク判定部112は該当するフレームワークが存在しないとし、「該当なし」を出力し(S313)、処理を終了する(S314)。
フレームワーク判定部112は、取り出したフレームワーク識別情報のファイルタイプ604と、診断対象のファイルタイプが同一であるかを確認し(S303)、同一である場合にはファイルタイプが“JavaScript”(登録商標)である事を確認する(S318)。
本実施の形態では、ファイルタイプは必ず“JavaScript”(登録商標)となる。
また、取り出したフレームワーク識別情報のファイルタイプ604と、診断対象のファイルタイプが異なる場合には、フレームワーク判定部112は次のフレームワーク識別情報を取り出す。
【0053】
次にフレームワーク判定部112は、フレームワーク識別情報の詳細指定が空でない事を確認し(S319)、フレームワーク識別情報の詳細指定605で指定された照合開始行から順に診断対象ページファイルから照合対象行を抽出する(S320)。
そして、フレームワーク判定部112は、抽出した照合対象行それぞれに対してフレームワーク識別情報のパターン文字列606とのマッチングを行う(S321)。
照合対象行とフレームワーク識別情報のパターン文字列606が一致した場合には、フレームワーク判定部112は、フレームワーク識別情報のフレームワーク名602を出力し(S315)、処理を終了する(S314)。
照合対象行とフレームワーク識別情報のパターン文字列606が一致しない場合には、フレームワーク判定部112は、照合対象行とフレームワーク識別情報のパターン文字列606とのマッチングを、詳細指定605で指定された照合終了行まで行う(S320〜S323)。
照合開始行から照合終了行までにパターン文字列606と一致しなければ、フレームワーク判定部112は、次のフレームワーク識別情報を用いる。
フレームワーク判定部112は、複数のフレームワーク識別情報に対して個々に照合を行い(S302〜S312)、最初にマッチしたフレームワークを診断対象のフレームワークとしてみなす。
【0054】
以上のように、診断対象Webアプリケーションからの応答(Webページファイル)に対して、Webページのファイルタイプを判別し、照合開始行から照合終了行までを抽出し、特定のパターンにマッチするかを判断する事で、フレームワークを特定し、フレームワーク情報を元にした擬似攻撃データを作成する事が可能になる、という効果がある。
【0055】
本実施の形態におけるフレームワーク識別情報蓄積部113が、Webアプリケーション診断装置101と同一装置内で機能することを想定しているが、フレームワーク識別情報蓄積部113がリモートのデータベースサーバに格納されていてももちろん構わない。
また、フレームワーク識別情報蓄積部113内のフレームワーク識別情報を、リモートの配布サーバから定期的に取得して、常に最新のフレームワークに対応するようにする構成も可能である。
また、本実施の形態で示したフレームワーク識別情報蓄積部113は、実施の形態1で示したフレームワーク識別情報蓄積部113と統一してももちろん構わない。
【0056】
以上、本実施の形態では、フレームワーク判定部から参照され、フレームワーク名、照合箇所、パターン文字列で構成されたフレームワーク識別情報が格納されたフレームワーク識別情報蓄積部を有するWebアプリケーション診断装置を説明した。
【0057】
また、本実施の形態では、照合箇所が、ファイルタイプとファイルタイプ固有の詳細指定情報で構成されたフレームワーク識別情報が格納されたフレームワーク識別情報蓄積部を有するWebアプリケーション診断装置を説明した。
【0058】
また、本実施の形態では、ファイルタイプがJavaScript(登録商標)であって、照合開始行と照合終了行を指定可能であるWebアプリケーション診断装置を説明した。
【0059】
実施の形態4.
実施の形態3では、フレームワーク識別情報が、フレームワーク名、ファイルタイプ、詳細指定情報、パターン文字列で構成されており、ファイルタイプが“JavaScript”(登録商標)である場合のフレームワーク判定部の動作について説明した。
本実施の形態では、フレームワーク識別情報が、フレームワーク名、ファイルタイプ、パターン文字列で構成されており、ファイルタイプが“JavaScript”(登録商標)である場合(図7の詳細指定605が省略されている場合)のフレームワーク判定部の動作について説明する。
【0060】
図8は、本実施の形態に係るフレームワーク識別情報蓄積部113に格納されているフレームワーク識別情報の例を示した図である。
フレームワーク識別情報蓄積部113には、0個以上のフレームワーク識別情報が格納されている。
各フレームワーク識別情報は、フレームワーク名702、ファイルタイプ704、パターン文字列705で構成されている。
パターン文字列705は、フレームワークを特定するための正規表現文字列であり、判別用文字列の例である。
フレームワーク名702は、使用されているフレームワークの名前を表す。
【0061】
図3及び図4を用いてフレームワーク判定部112がフレームワークを特定する動作について説明する。
フレームワーク判定部112は、フレームワーク識別情報蓄積部113からフレームワーク識別情報を取り出す(S302)。
取り出すべきフレームワーク識別情報がない場合には、フレームワーク判定部112は、該当するフレームワークが存在しないとし、「該当なし」を出力し(S313)、処理を終了する(S314)。
フレームワーク判定部112は、取り出したフレームワーク識別情報のファイルタイプ704と、診断対象のファイルタイプが同一であるかを確認し(S303)、同一である場合にはファイルタイプが“JavaScript”(登録商標)である事を確認する(S318)。
本実施の形態では、ファイルタイプは必ず“JavaScript”(登録商標)となる。
また、取り出したフレームワーク識別情報のファイルタイプ704と、診断対象のファイルタイプが異なる場合には、フレームワーク判定部112は次のフレームワーク識別情報を取り出す。
【0062】
次にフレームワーク判定部112は、フレームワーク識別情報の詳細指定が空(詳細指定が存在しない)である事を確認し(S319)、診断対象ページファイル全てに対してフレームワーク識別情報のパターン文字列705とのマッチングを行う(S316)。
そして、診断対象ページファイルとフレームワーク識別情報のパターン文字列705が一致した場合には、フレームワーク識別情報のフレームワーク名702を出力し(S315)、処理を終了する(S314)。
【0063】
診断対象ページファイルにパターン文字列705と一致する箇所が存在しない場合には、フレームワーク判定部112は、次のフレームワーク識別情報を用いる。
フレームワーク判定部112は、複数のフレームワーク識別情報に対して個々に照合を行い(S302〜S312)、最初にマッチしたフレームワークを診断対象のフレームワークとしてみなす。
【0064】
以上のように、診断対象Webアプリケーションからの応答(Webページファイル)に対してWebページのファイルタイプを判別し、JavaScript(登録商標)ファイル全体に特定パターンにマッチする箇所が存在するかを判断することで、フレームワークを特定し、フレームワーク情報を元にした擬似攻撃データを作成する事が可能になる、という効果がある。
【0065】
本実施の形態におけるフレームワーク識別情報蓄積部113が、Webアプリケーション診断装置101と同一装置内で機能することを想定しているが、フレームワーク識別情報蓄積部113がリモートのデータベースサーバに格納されていてももちろん構わない。
また、フレームワーク識別情報蓄積部113内のフレームワーク識別情報を、リモートの配布サーバから定期的に取得して、常に最新のフレームワークに対応するようにする構成も可能である。
【0066】
また、本実施の形態で示したフレームワーク識別情報蓄積部113は、実施の形態1及び実施の形態3で示したフレームワーク識別情報蓄積部113と統一してももちろん構わない。
この場合、実施の形態4で使用されるフレームワーク識別情報はフレームワーク名、ファイルタイプ、空の詳細指定、パターン文字列から構成される。
【0067】
以上、本実施の形態では、照合箇所が、ファイルタイプで構成されたフレームワーク識別情報が格納されたフレームワーク識別情報蓄積部を有するWebアプリケーション診断装置を説明した。
【0068】
また、本実施の形態では、ファイルタイプがJavaScript(登録商標)であって、スクリプトファイル全体が照合対象となるWebアプリケーション診断装置を説明した。
【0069】
最後に、実施の形態1〜4に示したWebアプリケーション診断装置101のハードウェア構成例について説明する。
図9は、実施の形態1〜4に示すWebアプリケーション診断装置101のハードウェア資源の一例を示す図である。
なお、図9の構成は、あくまでもWebアプリケーション診断装置101のハードウェア構成の一例を示すものであり、Webアプリケーション診断装置101のハードウェア構成は図9に記載の構成に限らず、他の構成であってもよい。
【0070】
図9において、Webアプリケーション診断装置101は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態1〜4で説明した「フレームワーク識別情報蓄積部113」及び「通信記録部114」は、RAM914、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
【0071】
通信ボード915は、図1に示すように、ネットワークに接続されている。例えば、通信ボード915は、インターネットの他、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されていても構わない。
【0072】
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
【0073】
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
【0074】
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
Webアプリケーション診断装置101の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
【0075】
上記プログラム群923には、実施の形態1〜4の説明において「〜部」(「フレームワーク識別情報蓄積部113」及び「通信記録部114」以外、以下同様)として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
【0076】
ファイル群924には、実施の形態1〜4の説明において、「〜の判断」、「〜の判定」、「〜の計算」、「〜の比較」、「〜の照合」、「〜の診断」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜4で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0077】
また、実施の形態1〜4の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1〜4の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1〜4の「〜部」の手順や方法をコンピュータに実行させるものである。
【0078】
このように、実施の形態1〜4に示すWebアプリケーション診断装置101は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【0079】
101 Webアプリケーション診断装置、102 セキュリティホール判定部、103 擬似攻撃生成部、104 診断結果表示部、105 HTTPリクエスト送信部、106 HTTPレスポンス受信部、107 雛形HTTPリクエスト生成部、108 インターネット、110 Webサーバ、111 診断対象Webアプリケーション、112 フレームワーク判定部、113 フレームワーク識別情報蓄積部、114 通信記録部。

【特許請求の範囲】
【請求項1】
Webアプリケーションフレームワークが使用されているWebアプリケーションと通信を行い、前記Webアプリケーションを管理する管理装置であって、
前記Webアプリケーションとの通信を記録する通信記録部と、
Webアプリケーションフレームワークの判別に用いられる判別情報を記憶している判別情報記憶領域から判別情報を取得する判別情報取得部と、
前記通信記録部による通信記録と前記判別情報取得部により取得された判別情報とを用いて、前記WebアプリケーションにおいていずれのWebアプリケーションフレームワークが使用されているかを判別するフレームワーク判定部とを有することを特徴とする管理装置。
【請求項2】
前記判別情報取得部は、
前記判別情報記憶領域から、Webアプリケーションフレームワークごとに固有の判別用文字列が示される判別情報を取得し、
前記フレームワーク判定部は、
前記通信記録部による通信記録のうち前記Webアプリケーションから受信したWebページを抽出するとともに、抽出したWebページにいずれかのWebアプリケーションフレームワークの判別用文字列が含まれているか否かを判定し、前記Webページに含まれている判別用文字列に対応するWebアプリケーションフレームワークが前記Webアプリケーションにおいて使用されていると判定することを特徴とする請求項1に記載の管理装置。
【請求項3】
前記判別情報取得部は、
前記判別情報記憶領域から、判別用文字列と当該判別用文字列が配置されているWebページ内の文字列配置位置が示される判別情報を取得し、
前記フレームワーク判定部は、
抽出したWebページ内の文字列配置位置に判別用文字列が含まれているか否かを判定することを特徴とする請求項2に記載の管理装置。
【請求項4】
前記管理装置は、更に、
前記フレームワーク判定部により判別されたWebアプリケーションフレームワークに対応させて、前記Webアプリケーションにおけるセキュリティホールの診断を行うWebアプリケーション診断部を有することを特徴とする請求項1〜3のいずれかに記載の管理装置。
【請求項5】
前記Webアプリケーション診断部は、
前記フレームワーク判定部により判別されたWebアプリケーションフレームワークに対応させて前記Webアプリケーションに対する擬似攻撃を行って、前記Webアプリケーションにおけるセキュリティホールの診断を行うことを特徴とする請求項4に記載の管理装置。
【請求項6】
前記Webアプリケーション診断部は、
前記フレームワーク判定部により判別されたWebアプリケーションフレームワークに固有のセキュリティホールの診断のための擬似攻撃は省略して前記Webアプリケーションに対する擬似攻撃を行うことを特徴とする請求項5に記載の管理装置。
【請求項7】
Webアプリケーションフレームワークが使用されているWebアプリケーションと通信を行うコンピュータが行う、前記Webアプリケーションの管理方法であって、
前記コンピュータが、前記Webアプリケーションとの通信を記録する通信記録ステップと、
前記コンピュータが、Webアプリケーションフレームワークの判別に用いられる判別情報を記憶している判別情報記憶領域から判別情報を取得する判別情報取得ステップと、
前記コンピュータが、前記通信記録ステップによる通信記録と前記判別情報取得ステップにより取得された判別情報とを用いて、前記WebアプリケーションにおいていずれのWebアプリケーションフレームワークが使用されているかを判別するフレームワーク判定ステップとを有することを特徴とする管理方法。
【請求項8】
Webアプリケーションフレームワークが使用されているWebアプリケーションと通信を行うコンピュータに、
前記Webアプリケーションとの通信を記録する通信記録処理と、
Webアプリケーションフレームワークの判別に用いられる判別情報を記憶している判別情報記憶領域から判別情報を取得する判別情報取得処理と、
前記通信記録処理による通信記録と前記判別情報取得処理により取得された判別情報とを用いて、前記WebアプリケーションにおいていずれのWebアプリケーションフレームワークが使用されているかを判別するフレームワーク判定処理とを実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−28665(P2011−28665A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−176099(P2009−176099)
【出願日】平成21年7月29日(2009.7.29)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】