情報処理装置及び情報処理方法及びプログラム
【課題】重要パラメタについての改ざん攻撃に対する脆弱性検査を確実に行う。
【解決手段】Webページ種類特定部122が、Webページ特徴情報DB121等の情報を参照して試験対象のWebページの種類を特定し、Webページ重要度判定部125が、試験対象のWebページ群により実現される取引フローを取引フローパターンDB124の情報を参照して特定する。取引フローパターンDB124には取引フローごとに重要ページが定義されており、Webページ重要度判定部125は特定した取引フローにおける重要ページを特定する。パラメタ属性DB126では重要なパラメタが定義されており、重要パラメタ特定部127は、パラメタ属性DB126の情報を参照して、重要ページ内の重要なパラメタを特定する。評価データ生成部112は、重要ページにおける重要パラメタを改ざんして疑似的な改ざん攻撃をWebアプリケーション131に行う。
【解決手段】Webページ種類特定部122が、Webページ特徴情報DB121等の情報を参照して試験対象のWebページの種類を特定し、Webページ重要度判定部125が、試験対象のWebページ群により実現される取引フローを取引フローパターンDB124の情報を参照して特定する。取引フローパターンDB124には取引フローごとに重要ページが定義されており、Webページ重要度判定部125は特定した取引フローにおける重要ページを特定する。パラメタ属性DB126では重要なパラメタが定義されており、重要パラメタ特定部127は、パラメタ属性DB126の情報を参照して、重要ページ内の重要なパラメタを特定する。評価データ生成部112は、重要ページにおける重要パラメタを改ざんして疑似的な改ざん攻撃をWebアプリケーション131に行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Webページの改ざん攻撃に対する脆弱性を検査する技術に関する。
【背景技術】
【0002】
通常、Webアプリケーションの開発では、一般的なアプリケーションの開発と同様、開発元において開発仕様に基づいて試験を行い、開発仕様どおりにWebアプリケーションが動作することを確認してからリリースされる。
昨今、Webアプリケーションの脆弱性を狙った攻撃による被害が増加する中、Webアプリケーションに対しては、開発仕様に基づいた機能の動作試験だけではなく、Webアプリケーションのセキュリティに関する試験も実施する必要性がでてきた。
一般には、この場合、Webアプリケーションの機能試験を完了した後、Webアプリケーションをインターネットへ公開する前に、セキュリティサービスベンダが提供するWebアプリケーション診断サービスを利用して、開発したWebアプリケーションにセキュリティの脆弱性がないことを確認する。
これは、Webアプリケーションのセキュリティ試験では、Webアプリケーションの脆弱性に関する専門的な知識が必要とされるため、Webアプリケーションの開発元では、十分な試験が行えないためである。
しかしながら、Webアプリケーションのセキュリティ試験は、Webアプリケーションが完成してからの実施となるため、仮に、Webアプリケーションに脆弱性が見つかった場合には、脆弱性を修正するための工期が別途かかってしまうことが課題であった。
【0003】
上記の課題を解決するため、Webアプリケーション開発時の試験においてWebアプリケーションの脆弱性に関する専門的な知識がない開発元においても、セキュリティ試験を実施できるようにすることを目的とした従来技術として、システム仕様や設計書に記載されているブラウザ画面上の入力項目に関する項目属性(データ長・文字データ種類・データ範囲など)を予め仕様情報として設定しておくことによって、正常または異常系の評価データの生成、及び、試験の実施を自動で行えるようにしている技術がある(例えば、特許文献1)。
また、同様にシステム仕様や設計書の情報を予め設定しておき、設定した仕様書情報を基に、Webアプリケーションの応答メッセージに含まれる値が仕様書の定義と一致しているかどうかを自動で検査する方法も提案されている(例えば、特許文献2、特許文献3)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−113993号公報
【特許文献2】特開2008−112300号公報
【特許文献3】特開2008−242738号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のWebアプリケーションのセキュリティ試験では、Webアプリケーションから出力されるWebページに含まれるパラメタ値の改ざん攻撃に成功したとしても、そのパラメタ値が持つ意味やセキュリティ上の重要性が不明であったため、それが、後の処理においてセキュリティの不具合を引き起こすかどうかまでは検出できないことが課題としてある。
つまり、セキュリティ上の不具合を引き起こす重要なパラメタについて、改ざん攻撃に対する脆弱性検査を確実に実施すること必要であるが、従来技術では、重要なパラメタであっても改ざん攻撃に対する脆弱性検査から漏れてしまうという課題がある。
【0006】
この発明は上記のような課題を解決することを主な目的としており、従来のWebアプリケーションのセキュリティ試験では実施できなかった、重要な意味を持つパラメタについての改ざん攻撃に対する脆弱性の検査を確実にできるようにし、Webアプリケーションのセキュリティ試験の精度向上を実現することを主な目的とする。
【課題を解決するための手段】
【0007】
本発明に係る情報処理装置は、
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるWebページを選別するための選別基準が定義されている選別基準情報を記憶する選別基準情報記憶部と、
疑似改ざん攻撃の対象となるパラメタが疑似攻撃対象パラメタとして定義されているパラメタ情報を記憶するパラメタ情報記憶部と、
前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Webページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Webページを選別するWebページ選別部と、
前記Webページ選別部により選別された疑似攻撃対象Webページに含まれているパラメタの中から前記パラメタ情報に定義されている疑似攻撃対象パラメタに該当するパラメタを抽出し、抽出したパラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施部とを有することを特徴とする。
【発明の効果】
【0008】
本発明では、疑似改ざん攻撃の攻撃対象となるWebページの選別基準が定義されている選別基準情報に基づき疑似攻撃対象Webページを選別し、また、疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報に基づき、疑似攻撃対象Webページに含まれているパラメタの中から疑似改ざん攻撃の対象となるパラメタを抽出し、抽出したパラメタのパラメタ値を改ざん値にして疑似改ざん攻撃を実施する。
このため、セキュリティ上の不具合を引き起こす重要なWebページを選別基準情報において定義し、また、セキュリティ上の不具合を引き起こす重要なパラメタをパラメタ情報において定義することにより、重要なWebページの重要なパラメタについて改ざん攻撃に対する脆弱性の検査を実施することができる。
【図面の簡単な説明】
【0009】
【図1】実施の形態1に係るWebアプリケーション自動試験装置の構成例を示す図。
【図2】実施の形態1に係る試験対象ページ情報DBに記憶されているデータの例を示す図。
【図3】実施の形態1に係るWebページ画面遷移情報DBに記憶されているデータの例を示す図。
【図4】実施の形態1に係るWebページ特徴情報DBに記憶されているデータの例を示す図。
【図5】実施の形態1に係るWebページ構成要素DBに記憶されているデータの例を示す図。
【図6】実施の形態1に係るWebページ種類特定部の動作例を示すフローチャート図。
【図7】実施の形態1に係るWebページ種類特定部の動作例を示すフローチャート図。
【図8】実施の形態1に係る取引フローパターンDBに記憶されているデータの例を示す図。
【図9】実施の形態1に係るWebページ重要度判定部の動作例を示すフローチャート図。
【図10】実施の形態1に係るパラメタ属性DBに記憶されているデータの例を示す図。
【図11】実施の形態1に係る重要パラメタ特定部の動作例を示すフローチャート図。
【図12】実施の形態1に係る重要パラメタ特定部の動作例を示すフローチャート図。
【図13】実施の形態1に係るWebページ重要パラメタDBに記憶されているデータの例を示す図。
【図14】実施の形態2に係るWebアプリケーション自動試験装置の構成例を示す図。
【図15】実施の形態2に係る仕様書DBに記憶されているデータの例を示す図。
【図16】実施の形態2に係る評価項目決定部の動作例を示すフローチャート図。
【図17】実施の形態2に係る評価項目決定部の動作例を示すフローチャート図。
【図18】実施の形態1に係る脆弱性検査データDBに記憶されているデータの例を示す図。
【図19】実施の形態1及び2に係るWebアプリケーション自動試験装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【0010】
実施の形態1.
本実施の形態では、従来のWebアプリケーションのセキュリティ試験では分からなかった、重要な意味を持つパラメタの改ざん攻撃成功を検出できるようにすることで、Webアプリケーションのセキュリティ試験の精度向上を実現する構成を説明する。
【0011】
図1は、実施の形態1におけるWebアプリケーション自動試験装置の構成概要を示す図である。
【0012】
図1において、101は、Webアプリケーション自動試験装置を表しており、102は、試験対象となるWebアプリケーション131が動作するWebサーバ装置(以下、単にWebサーバともいう)を表している。
Webアプリケーション自動試験装置101は、情報処理装置の例である。
【0013】
また、図1において、試験対象ページ情報DB111は、試験対象となるWebアプリケーションが提供するWebページの情報を格納したデータベースである。
評価データ生成部112は、試験対象ページ情報DB111、Webアプリケーションのセキュリティ脆弱性を検査するための脆弱性検査データを格納した脆弱性検査データDB113、Webアプリケーションのセキュリティ試験で行う一般的な評価項目を定義したセキュリティ評価項目一覧118からWebアプリケーションを試験するための評価データを生成する。
セキュリティ評価項目一覧118で定義される一般的な評価項目の例としては、SQLインジェクション、OSコマンドインジェクション/ステルスコマンド、パス名やパラメタの未チェック/ディレクトリトラバーサル、セッション管理の不備/強制ブラウジング/セキュアモードでないクッキー、クロスサイトスクリプティング、クロスサイトリクエストフォージェリ、HTTPヘッダインジェクション、メールの第三者中継、アクセス制御や認可制御の欠落、隠しフィールドの操作、パラメタの改ざん、バックドアとデバッグオプション、Cookieの濫用、不要な情報の開示、などがある。
【0014】
生成された評価データは、評価データ送信部114からWebサーバ102で稼動しているWebアプリケーション131に送信され、その応答メッセージを、応答受信部115で受信する。
応答メッセージは、評価結果判定部116に送られ、そこで脆弱性の有無の判定を行い、判定結果を評価結果表示部117に表示する。
【0015】
また、Webページ種類特定部122は、Webページ画面遷移情報DB120、Webページ特徴情報DB121、Webページ構成要素DB123の情報を基に、試験対象ページのWebページのカテゴリー(商品ページ、購入フォーム、確認ページ、決済完了ページ、ユーザ登録ページ、ユーザ情報表示・編集ページ、パスワード変更ページ、情報一覧ページなど)を特定する。
【0016】
Webページ重要度判定部125は、Webページ種類特定部122で特定された試験対象ページのWebページのカテゴリー、Webページ画面遷移情報DB120、Webアプリケーションで提供される各取引フローのパターンを格納した取引フローパターンDB124を基に、試験対象となる一連の取引フローにおける重要ページを特定する。
【0017】
重要パラメタ特定部127は、Webページ間で渡されるパラメタのうち、改ざん攻撃が成功することによって、後の処理においてセキュリティの不具合を発生させる可能性のある重要なパラメタ(商品購入フローにおける、金額、ユーザ情報、クレジットカード番号など)を、取引フローごと重要となるパラメタ文字列を格納したパラメタ属性DB126の情報を参照して決定する。
【0018】
Webページ重要度判定部125及び重要パラメタ特定部127によって特定された取引フロー(商品購入フロー、ユーザ登録フロー、ユーザパスワードの変更フローなど)における重要ページ、及び、重要ページに含まれる重要パラメタの情報は、Webページ重要パラメタDB128に格納され、後の、評価結果判定部116における重要パラメタ改ざん攻撃の成否の判定で用いられる。
【0019】
ここで、Webアプリケーション自動試験装置101の動作を詳細に説明する前に、Webアプリケーション自動試験装置101の動作の概要を説明する。
【0020】
本実施の形態に係るWebアプリケーション自動試験装置101は、改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となる重要なWebページ(以下、疑似攻撃対象Webページともいう)を選別する。
つまり、本実施の形態に係るWebアプリケーション自動試験装置101は、疑似改ざん攻撃の攻撃対象の候補である複数の試験対象ページ(以下、候補Webページともいう)の中から疑似攻撃対象Webページを選別し、選別した疑似攻撃対象Webページ内のパラメタのうち疑似改ざん攻撃の対象となるパラメタ(以下、疑似攻撃対象パラメタともいう)を抽出し、抽出したパラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する。
疑似改ざん攻撃とは、Webアプリケーションの試験の一試験項目として実施される改ざん攻撃を模擬したテストであり、パラメタ値を改ざん値にしたWebページ(評価データ)をWebサーバ102に送信することである。
疑似改ざん攻撃により疑似攻撃対象Webページの改ざん攻撃に対する脆弱性を評価することができる。
疑似攻撃対象Webページは、例えば、改ざん攻撃があった場合の被害が他のWebページに比べて大きいと推測されるWebページである。
また、疑似改ざん攻撃の対象となるパラメタも、例えば、改ざん攻撃があった場合の被害が他のパラメタに比べて大きいと推測されるパラメタである。
【0021】
Webページ特徴情報DB121、Webページ構成要素DB123、取引フローパターンDB124には、疑似攻撃対象Webページを選別するための選別基準が定義されている。
より具体的には、Webページ特徴情報DB121には、Webページのカテゴリー(商品ページ、購入フォーム、確認ページ等)が複数示され、カテゴリーごとに、各カテゴリーに属するWebページのページ構成における特徴及び他のWebページとのリンクにおける特徴が示されるデータが格納されている。
また、Webページ構成要素DB123には、Webページのリンク先URL(Uniform Resource Locator)に出現する可能性のある文字列が示されるデータが格納されている。
更に、取引フローパターンDB124には、Webアプリケーションにより提供される複数の取引フロー(商品購入フロー、ユーザ登録フロー、ユーザパスワードの変更フローなど)が示され、取引フローごとに、各取引フローにおいて利用されるWebページのカテゴリーが示され、取引フローごとに、重要ページのカテゴリー、つまり、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されるデータが格納されている。
詳細は、後述するが、Webページ特徴情報DB121には、例えば図4に示すデータが記憶されており、Webページ構成要素DB123には、例えば図5に示すデータが記憶されており、取引フローパターンDB124には、例えば図8に示すデータが記憶されている。
なお、Webページ特徴情報DB121、Webページ構成要素DB123、取引フローパターンDB124に記憶されているデータは、疑似攻撃対象Webページを選別するための選別基準を定義しており、選別基準情報の例に相当する。
また、Webページ特徴情報DB121、Webページ構成要素DB123、取引フローパターンDB124は、選別基準情報記憶部の例に相当する。
【0022】
Webページ種類特定部122は、Webページ特徴情報DB121に示されているカテゴリーごとのページ構成における特徴及び他のWebページとのリンクにおける特徴に基づいて、各候補Webページを複数のカテゴリーのうちのいずれかのカテゴリーに分類する。
つまり、WebページAは商品ページ、WebページBは購入フォーム、WebページCは確認ページというように各候補Webページを該当するカテゴリーに分類する。
また、Webページ重要度判定部125は、取引フローパターンDB124の取引フローパターンとWebページ種類特定部122による候補Webページのカテゴリーの分類結果に基づき、複数の候補Webページが複数の取引フローのうちのいずれの取引フローに対応しているのかを判定する。
また、Webページ重要度判定部125は、取引フローパターンDB124の取引フローパターンに基づき、判定した取引フローにおける重要ページ(すなわち、疑似攻撃対象Webページ)を選別する。
前述したように、取引フローパターンには、重要ページのカテゴリー、つまり、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されている。
このため、Webページ重要度判定部125は、取引フローパターンを参照し、判定した取引フローについて疑似改ざん攻撃の攻撃対象とされているカテゴリーに分類されたWebページを疑似攻撃対象Webページとして選別する。
なお、Webページ種類特定部122とWebページ重要度判定部125は、Webページ選別部の例である。
また、Webページ種類特定部122とWebページ重要度判定部125による重要ページの選別処理は、Webページ選別ステップに相当する。
また、Webページ種類特定部122によるWebページ特徴情報DB120の情報及びWebページ構成要素DB123の情報の読み出し処理、Webページ重要度判定部125による取引フローパターンDB124の情報の読み出し処理は、選別基準情報読み出しステップに相当する。
【0023】
パラメタ属性DB126には、重要パラメタ、つまり、疑似改ざん攻撃の対象となるパラメタが定義されているデータが格納されている。
パラメタ属性DB126に格納されているデータはパラメタ情報の例であり、パラメタ属性DB126はパラメタ情報記憶部の例に相当する。
【0024】
重要パラメタ特定部127は、Webページ重要度判定部125により選別された疑似攻撃対象Webページに含まれているパラメタの中からパラメタ属性DB126で定義されている重要パラメタに該当するパラメタを抽出する。
重要パラメタに該当するとして抽出されたパラメタは疑似攻撃対象パラメタの例に相当する。
また、評価データ生成部112と評価データ送信部114は、疑似改ざん攻撃を実施する。
具体的には、評価データ生成部112が、重要パラメタ特定部127により抽出されたパラメタのパラメタ値を所定の改ざん値にしたWebページ(評価データ)を生成し、評価データ送信部114が、評価データをWebサーバ102に送信する。
重要パラメタ特定部127、評価データ生成部112及び評価データ送信部114は、疑似改ざん攻撃実施部の例に相当する。
なお、重要パラメタ特定部127、評価データ生成部112及び評価データ送信部114による重要パラメタの抽出処理、疑似改ざん攻撃の実施処理は、疑似改ざん攻撃実施ステップに相当する。
また、重要パラメタ特定部127によるパラメタ属性DB126からの情報の読み出し処理は、パラメタ情報読み出しステップに相当する。
【0025】
次に、図面を参照して、本実施の形態に係るWebアプリケーション自動試験装置101の動作を詳細に説明する。
【0026】
まず、準備として、Webアプリケーションによって提供されるWebページの一覧の取得と、それらの画面遷移情報の生成を行う。
また、Webアプリケーション131によって提供されるWebページ一覧は、試験実施者が手動でWebアプリケーションにアクセスして収集してもよいし、自動でWebページ一覧を収集する技術(Webクローリング技術)を用いて収集してもよい。
Webページの画面遷移情報に関しては、収集したWebページのHTML(Hyper Text Markup Language)で記載されているページのリンク関係を抽出することで、各ページを頂点とし、リンク関係をエッジとした有向グラフで生成する。
抽出したWebページの画面遷移情報は、Webページ画面遷移情報DB120に格納しておく。
【0027】
図2に、Webアプリケーション131によって提供されるWebページの一覧を格納しておく、試験対象ページ情報DB111の構造(200)を示す。
図2では、試験対象ページのURL、Webアプリケーション131への送信メッセージと、送信メッセージに対するWebアプリケーション131からの応答メッセージ(Webページ)を関連付けて保存しておく。
【0028】
図3に、Webページ画面遷移情報DB120の構造(300)を示す。
図3では、試験対象ページURLに対する、リンク元URL、及び、リンク先URLが格納されている。
複数のリンク元URLからリンクされている試験対象ページのURLに関しては、リンク元URLが異なる複数の行が格納される。
複数のリンク先URLを持つ試験対象ページURLに関しても同様である。
Webページ画面遷移情報DB120の情報を基に、試験対象ページのURLのリンク関係を有向グラフで抽出できる。
【0029】
次に、評価結果判定部116において重要パラメタ(疑似攻撃対象パラメタ)の改ざん攻撃の成否を判定するために用いるWebページ重要パラメタDB128に格納されている、重要ページ(疑似攻撃対象Webページ)と重要ページに含まれる重要パラメタを決定する方法について説明する。
【0030】
Webページ種類特定部122では、Webページ特徴情報DB121に格納されているWebページの種類を特定するための特徴情報、及び、Webページ構成要素DB123に格納されているWebページの構成要素を特定するための構成要素特定文字列を基に、読み込んだWebページ(候補Webページ)の種類(カテゴリー)を特定する。
Webページの種類としては、例えば、商品取引であれば、商品情報表示ページ、購入のための購入フォーム入力ページ、購入フォーム入力で入力した値の確認ページ、購入決済完了ページなどがある。
それぞれのページには種類を示す特徴がある。
【0031】
図4に、Webページ特徴情報DB121の構造(400)を示す。
なお、図4では説明を簡単にするため、各Webページ種類別の特徴を文章で記載しているが、実際には、コンピュータで処理しやすいよう、条件式や数値によって記述するものとする。
Webページの種類を示す特徴としては、例えば、購入決済完了ページであれば、トップページからのリンク経路が長い傾向にある。
また、購入決済完了ページには、例えば、印刷ボタンが表示されている、結果を送信するためのメールアドレス入力がある、購入後アンケート入力画面へのリンクがあるといった構成要素の存在が考えられる。
これらの各構成要素にスコアをつけておき、ページを構成する要素のスコアを加算していき、得られたスコアが予め定められた閾値を超えた場合に、購入決済完了ページであると特定する。
なお、判定で用いる閾値は、ページ種類ごとに設定してもよいし、ページ種類間で同一の閾値としてもよい。
【0032】
また、図5に、Webページ構成要素DB123の構造(500)を示す。
図5に示すように、構成要素ごとに構成要素特定文字列が定義されており、試験対象ページのリンク先URL(構成要素)に、構成要素特定文字列と一致する文字列があった場合に、その構成要素名を特定できる。
URLに関しては、その主たるコンテンツに関係した文字列がURLに表れる可能性が高い。
例えば、印刷ページへのURLであれば、印刷に最適なページ整形を行うコンテンツが主たるコンテンツとなるため、印刷に関連した文字列(例えば、print、outputなど)の文字列がURLに含まれている可能性が高い。
このような、URLに現れる主たるコンテンツに関連した文字列を手がかりに、試験対象ページの構成要素を特定する。
なお、図5に示すように、構成要素特定文字列は、正規表現を用いて定義してもよい。
正規表現を用いることにより、類似した複数の構成要素特定文字列をまとめて定義できるため、Webページ構成要素DB123に格納しておくデータ量を削減できる。
【0033】
次に、Webページ種類特定部122の動作について詳細を説明する。
図6及び図7に、Webページ種類特定部122の処理のフローチャートを示す。
【0034】
Webページ種類特定部122では、最初に、試験対象ページ情報DB111に格納されている、Webアプリケーション131からの応答メッセージ(Webページ)を1つ読み込む(S601)。
次に、Webページ種類特定部122は、試験対象ページ(候補Webページ)のURLを基に、Webページ画面遷移情報DB120を参照して、TOPページからのリンクの長さを計算する(S602)。
このとき複雑な画面遷移の構造をもつWebアプリケーションでは冗長な経路やループが発生する場合がある。
これらに関しては、最短の経路を探索する既存の技術が応用できる。
例えば、ダイクストラ法などが有名である。
次に、Webページ種類特定部122は、得られたTOPページからのリンクの長さを基に、Webページ特徴情報DB121の情報を読み出し、リンクの長さが条件と一致するWebページ種類を検索する(S603)。
リンクの長さの特徴に当てはまるWebページ種類が検索で抽出された場合は、特徴の当てはまるWebページ種類のスコアを加算する(S604、S605)。
次に、Webページ種類特定部122は、Webページ画面遷移情報DB120から試験対象ページのリンク先URLを抽出し(S606)、リンク先を1つ選択し(S607)、抽出したリンク先URLの文字列を基にWebページ構成要素DB123を検索し、該当する情報を読み出し、試験対象ページの構成要素を特定する(S608)。
次に、Webページ種類特定部122は、Webページ画面遷移情報DB120から抽出した全てのリンク先URLについて構成要素を特定する(S609)。
【0035】
次に、Webページ種類特定部122は、特定した構成要素から1つを選択し(S610)、Webページ特徴情報DB121を検索(S611)した結果として、構成要素の特徴が当てはまるWebページ種類が存在した場合には、特徴の当てはまるWebページ種類にスコアを加算する(S612、S613)。
S609で特定した試験対象ページの構成要素全てに関してWebページ特徴情報DB121を検索して、Webページ種類のスコアについて加算が完了(S614)した後に、仮に、スコアが加算されたWebページ種類が1つも存在しなかった場合は、Webページ種類特定部122は、S601で読み込んだ試験対象ページに関するWebページ種類は不明と判定する(S615、S616)。
スコアが加算されたWebページ種類が1つでも存在した場合、Webページ種類特定部122は、そのスコアが閾値を超えているかどうかを判断する(S617)。
スコアが閾値を超えたWebページ種類がただ1つであった場合、試験対象ページは、そのWebページ種類であると判定する(S618、S622)。
閾値を超えたWebページ種類が複数あった場合、及び、閾値を超えたWebページ種類が無かった場合は、スコアの大きさからWebページ種類を判定する。
仮に、スコアの最高値を持つWebページ種類が複数同じスコアであった場合には、試験対象ページは、複数のWebページ種類の特徴を持つものと判定する(S619、S620、S622)。
また、スコアの最高値を持つWebページ種類がただ1つであった場合、その試験対象ページのWebページ種類として判定する(S619、S621、S622)。
最終的に、試験対象ページ情報DB111に含まれる全ての試験対象ページに対して、Webページ種類が特定できた場合に処理を終了する(S623)。
【0036】
例えば、購入決済完了ページが特定された場合、購入決済完了ページへリンクしているページを確認ページ、また、確認ページへリンクしているページは、購入フォーム入力ページ、購入フォーム入力ページへリンクしているページは、商品情報表示ページ、というようにリンクをさかのぼって、各Webページの種類を特定していくことも可能である。
さらに、各ページの種類は、ページのタイトルにも特徴が表れたり、確認ページではCSRF(Cross Site Request Forgeries)対策のための乱数を値にもつパラメタが含まれていたりといった特徴もあるため、これらの情報も併用することによって、Webページの種類を特定する精度が向上する。
【0037】
次に、Webページ重要度判定部125の動作について説明する。
Webページ重要度判定部125は、Webアプリケーションで提供される各取引フローのパターンを格納した取引フローパターンDB124を基に、試験対象となる一連の取引フローにおける重要ページを特定する。
【0038】
図8に、取引フローパターンDB124の構造(700)を示す。
図8に示すように、Webページのリンク元、及び、リンク先の情報を下に、取引フローパターンごとにページのリンクパターン、取引フローパターンにおいて重要なページに対する重要フラグが定義されている。
【0039】
取引フローパターンDB124では、取引フローにおいて重要なページには、重要フラグが設定されている(図8の確認ページ)。
例えば、商品購入フローにおいては、最終的に購入決済完了ページへ遷移する確認ページが重要である。
なぜなら、確認ページから購入決済完了ページへ送信されるパラメタは、そのまま購入決済の処理に利用される可能性があるため、確認ページから購入決済完了ページへ送信されるパラメタが改ざんされた場合、適切な処理を行っていなければ、改ざんされた値で決済処理が行われてしまう危険性がある。
したがって、Webページ重要度判定部125は、この各取引フローにおける重要フラグの情報を基に、確認ページを意味する試験対象ページを重要ページ(疑似攻撃対象Webページ)として特定する。
【0040】
図9に、Webページ重要度判定部125における重要ページの特定処理を表すフローチャートを示す。
図9を用いて、Webページ重要度判定部125の処理を説明する。
【0041】
Webページ重要度判定部125では、まず、Webページ種類特定部122の出力である、試験対象ページのWebページ種類特定結果から、試験対象ページのURLと、そのWebページ種類を選択する(S801)。
次に、Webページ重要度判定部125は、試験対象ページのURLを基に、Webページ画面遷移情報DB120を検索して、試験対象ページのリンク元URLとリンク先URLを取得する(S802)。
次に、Webページ重要度判定部125は、リンク元URLとリンク先URLのWebページ種類を、Webページ種類特定部122の出力から特定し、それらと、試験対象ページのWebページ種類を基に、取引フローパターンDB124の情報を検索し、取引フローパターンと重要フラグを取得する(読み出す)(S803)。
取引パターンが特定された場合(S804)、Webページ重要度判定部125は、試験対象ページ、取引フローパターン、重要フラグを取引フロー特定結果として記憶する(S805)。
全ての試験対象ページについて、取引フローパターンの特定の処理を完了した場合、Webページ重要度判定部125は、取引フローパターンの特定結果から、重要フラグが1である試験対象ページを、取引フロー上重要ページとして抽出し、取引フローパターンと重要ページ(複数可)を、重要ページ特定結果として出力して処理を終了する(S806、S807、S808)。
【0042】
Webページ重要度判定部125では、例えば、商品情報表示ページ、購入フォーム入力ページ、確認ページ、購入決済完了ページが順にリンクされている取引フローパターンは、商品購入フローであると特定する。
【0043】
次に、重要パラメタ特定部127の動作について説明する。
重要パラメタ特定部127では、Webページ重要度判定部125の出力である、重要ページ特定結果に含まれる、取引フローパターンと重要ページからパラメタ属性DB126を参照して、重要パラメタ(疑似攻撃対象パラメタ)を特定する。
【0044】
重要パラメタ(疑似攻撃対象パラメタ)とは、その後の処理においてセキュリティの不具合を引き起こす可能性のある値が設定されたHTML(HyperText Markup Language)のformタグ内の変数を指す。
したがって重要パラメタが存在する試験対象ページには、少なくとも1つのformタグが存在する。
formタグ内の変数は、次の画面へ遷移する際に、Webアプリケーションに送られ処理される。
【0045】
図10にパラメタ属性DB126の構成(900)を示す。
図10に示すように、取引フローごとに、重要なパラメタ文字列が定義されている。
なお、図10に示すように、重要パラメタ文字列は、正規表現を用いて定義してもよい。
正規表現を用いることにより、類似した複数のパラメタ名をまとめて定義できるため、パラメタ属性DB126に格納しておくデータ量を削減できる。
【0046】
重要パラメタ特定部127では、まず、Webページ重要度判定部125によって特定された取引フローを基にパラメタ属性DB126を検索し、重要パラメタ文字列を取得する。
【0047】
図11及び図12に、重要パラメタ特定部127における重要パラメタの特定処理を表すフローチャートを示す。
図11及び図12を用いて、重要パラメタ特定部127の処理を説明する。
【0048】
重要パラメタ特定部127では、まず、Webページ重要度判定部125によって特定された重要ページに複数のformタグがあるかどうか判断する(S1001)。
重要ページに複数のformタグが含まれている場合には、その中から1つのformタグを選択する(S1002)。
次に、重要パラメタ特定部127は、選択したformタグ内のaction(リンク先ページ)の値を基に、Webページ画面遷移情報DB120を参照し、リンク先ページへリンクしている全てのページを抽出する(S1003)。つまり、リンク先ページをリンク先としている他のWebページの存否を判断する。
抽出した結果、リンク先ページへリンクしているページが複数あった場合(当該リンク先ページをリンク先としている他のWebページが存在する場合)、当該リンク先ページは広告ページや検索ページといった、取引フローとは関係のないリンクであると判断し、次のformタグを選択する(S1004)。
重要パラメタ特定部127は、S1002からS1004の処理を繰り返し、重要ページのみからリンクされているページへのformタグ(つまり、リンク先のWebページにリンクしている他のWebページが存在しないformタグ)を特定する。
なお、重要ページには、重要パラメタを含むformタグからのみ遷移するページが必ず1つ存在するため、S1002からS1004のループは、必ず終了する。
重要ページにformタグが1つしかなかった場合、及び、S1002からS1004の処理によって、重要ページにこのページからのみリンクされたページへのリンクを持つformが特定された場合、S1005の処理に移る。
S1005では、重要パラメタ特定部127は、Webページ重要度判定部125で特定された、取引フローパターンを基に、パラメタ属性DB126を検索し、重要パラメタ文字列を抽出する(読み出す)。
【0049】
次に、重要パラメタ特定部127は、重要ページのform内に含まれているパラメタを1つ選択(S1006)し、選択したformタグ内のパラメタ名と重要パラメタ文字列を比較する(S1007)。
比較の結果、重要パラメタ文字列と一致するパラメタ名がformタグ内に存在した場合、そのパラメタを重要パラメタとして記憶する(S1008)。
重要パラメタ特定部127は、formタグ内に存在する全てのパラメタ名について比較を行った後に(S1009)、比較の結果得られた重要パラメタ(複数可)を出力する(S1010)。
出力された、重要ページのURL、重要パラメタが含まれているformタグのactionの値、重要パラメタはWebページ重要パラメタDB128に格納される(S1011)。
【0050】
図13に、Webページ重要パラメタDB128の構造(1100)を示す。
Webページ重要パラメタDB128では、重要ページのURL、重要パラメタを含むformタグに設定されたactionの値(リンク先ページ)、重要パラメタのパラメタ名を重要パラメタのパラメタ名別に関連付けて保存しておく。
これらの情報は、後の、評価結果判定部116において参照され、重要パラメタに関する改ざん攻撃の成否の判定で用いられる。
【0051】
試験対象ページに含まれる全ての重要ページについて、Webページ重要パラメタDB128への重要パラメタの特定が完了した後に、Webアプリケーション自動試験装置101は、Webサーバ102上で動作するWebアプリケーション131の試験を開始する。
試験は、試験対象ページ情報DB111、及び、脆弱性検査データDB113の情報を基に、評価データ生成部112において、試験対象ページに対して、セキュリティ評価項目一覧118に記載された全ての試験を実施するために必要な評価データを生成するところから始まる。
【0052】
図18に、脆弱性検査データDB113の構造(1500)を示す。
図18に示すように、脆弱性検査データDB113では、試験項目と、その試験項目を検査するために用いられる脆弱性検査データが対応づけられて格納されている。
評価データ生成部112は、脆弱性検査データDB113で定義されている試験項目、脆弱性検査データに基づいて、重要ページの重要パラメタの値を改ざん値に変更して評価ページを生成する。
例えば、図13の重要パラメタ名に含まれるproductIDに対して、評価データ生成部112は、現実には存在しない商品名を設定したWebページを評価データとして生成する。
評価データの作成が完了した後、評価データ送信部114によって、作成された評価データが試験対象ページ別に、試験対象ページの提供元であるWebアプリケーション131に対して送信される。
送信した評価データに対するWebアプリケーションからの応答メッセージは、応答受信部115で受信する。
【0053】
評価結果判定部116では、応答受信部115で受信した応答メッセージと、試験対象ページ情報DB111に格納されているWebアプリケーション131へ正常にアクセスした際のWebアプリケーション131からの応答メッセージとを比較し、送信した評価データによって、Webアプリケーション131の応答メッセージに変化が見られたかどうか判定する。
【0054】
なお、上述した、評価データ生成部112での評価データの作成処理、作成した評価データをWebアプリケーション131に送信する評価データ送信部114の処理、Webアプリケーション131からの応答を受信する応答受信部115の処理、応答受信部115で受信したWebアプリケーション131からの応答メッセージを判定する評価結果判定部116における、重要パラメタ改ざん攻撃成功の判定処理以外の処理は、既存技術として様々な手法が公開されており、本実施の形態においても既存技術と同様の実装が行われているものとする。
【0055】
評価結果判定部116において、パラメタが改ざんされた評価データを送信した場合のWebアプリケーション131の応答メッセージが、Webページ画面遷移情報DB120に格納されているWebアプリケーション131の遷移情報と比較した結果、エラーページなど正常ページとは異なるページへ遷移しなかった場合、疑似改ざん攻撃が成功した可能性がある。
この場合、評価結果判定部116では、Webページ重要パラメタDB128を参照し、疑似改ざん攻撃に成功したパラメタが重要パラメタかどうか判定する。
つまり、重要パラメタを改ざんした評価データに対するWebアプリケーション131からの応答がエラーページ等のWebアプリケーション131において異常を検知したことが示される応答ではない場合には、重要パラメタを改ざんした疑似改ざん攻撃が成功したと判定する。
疑似改ざん攻撃に成功したパラメタが、重要パラメタであった場合には、セキュリティ上重要なパラメタの改ざん攻撃に成功したものとして検出する。
それ以外は、改ざんされてもセキュリティ上のリスクが低いパラメタか、改ざんされたパラメタをWebアプリケーション131が検出し、エラー処理したことを意味するため、改ざん攻撃の成功とは見なさない。
最終的に、評価結果判定部116で判定された結果は、評価結果表示部117に表示され、ユーザへ通知される。
【0056】
以上のように、本実施の形態では、試験対象ページの種類をWebページの特徴情報を基に特定して、特定したWebページの前後関係から、取引フローパターン情報を基に、Web取引フローの種別を特定し、特定した取引フローに対してセキュリティ上重要なWebページを特定するとともに、パラメタ値に改ざん攻撃が発生した場合にその後の処理においてセキュリティの不具合を引き起こす可能性のある重要パラメタを予め特定しておく。
このため、これまでは、難しかった重要なパラメタの改ざん攻撃の成否を検出することができる。
また、重要パラメタの特定では、重要ページに複数のformタグがあった場合であっても正確に重要なパラメタを特定可能である。
これにより、Webアプリケーションの試験において、セキュリティ試験精度が向上する。
【0057】
以上、本実施の形態では、
試験対象ページの種類を、Webページの特徴情報を基に特定する手段と、特定したWebページの前後関係から、取引フローパターン情報を基に、Web取引フローの種別を特定する手段と、特定した取引フローに対してセキュリティ上重要なWebページを特定する手段と、パラメタ値の改ざん攻撃が発生した場合にその後の処理においてセキュリティの不具合を引き起こす可能性のある重要なパラメタを特定する手段と、重要なパラメタの改ざん攻撃の成否を検査する手段とを備えた、Webアプリケーション自動試験装置を説明した。
【0058】
実施の形態2.
以上の実施の形態1では、試験対象であるWebアプリケーションが出力するWebページにおける重要ページを特定し、その重要ページに含まれる重要パラメタを特定しておくことにより、重要パラメタの改ざん攻撃の成否を検出するようにしたものであるが、次に、試験を効率的に実施する場合の形態を示す。
【0059】
図14は、実施の形態2におけるWebアプリケーション自動試験装置101の構成概要を示す図である。
図14において、仕様書DB1201は、ユーザが入力したWebアプリケーションの仕様書情報を格納しておくデータベースである。
評価項目決定部1202は、試験対象ページ情報DB、仕様書DB1201、Webアプリケーションのセキュリティ試験で行う一般的な評価項目を定義したセキュリティ評価項目一覧118の情報を基に、試験で実施する評価項目を自動で決定する。
より具体的には、評価項目決定部1202は、Webページに対する評価項目(試験項目)が複数示されているセキュリティ評価項目一覧118(試験項目情報の例)を入力し、仕様書情報を参照して、試験対象ページごとに、セキュリティ評価項目一覧118に示されている評価項目(試験項目)が対象としている対象属性が含まれているか否かを判断する。
そして、試験対象ページに対象属性が含まれていない場合に当該対象属性に対応する評価項目を当該試験対象ページに対する試験での実施項目(試験実施項目)から除外して、試験対象ページごとに実施項目を決定する。
なお、評価項目決定部1202は試験実施項目決定部の例である。
なお、符号111から131は、図1の構成と同様であるため説明を省略する。
【0060】
次に動作について説明する。
まず、実施の形態1で説明したWebページ重要パラメタDB128への情報の出力(図12のS1011)までの一連の処理は既に完了しているものとする。
ユーザは、Webアプリケーションの試験を開始する際に、ユーザインタフェースから、Webアプリケーションの仕様情報を入力する。
入力されたWebアプリケーションの仕様情報は、仕様書DB1201に格納される。
【0061】
図15に、仕様書DBの構造と、ユーザが入力するWebアプリケーションの仕様書情報の例を示す(1300)。
図15に示すように、仕様書情報には、試験対象ページごとに、試験対象ページに設定されている属性が示される。
なお、設定項目にDBと記述されている試験対象ページは、DBアクセスを行うという属性を有する。
また、設定項目にPARAMと記述され、タイプにhiddenと記述されている試験対象ページは、hiddenパラメタが存在するという属性を有する。
また、設定項目にSSLと記述されている試験対象ページは、SSL通信を行うという属性を有する。
また、設定項目にCOOKIEと記述されている試験対象ページは、Cookieを用いるという属性を有する。
また、設定項目にMAILと記述されている試験対象ページは、電子メール送信を行うという属性を有する。
【0062】
次に、評価項目決定部1202では、仕様書DB1201、及び、試験対象ページ情報DB111の情報を基に、セキュリティ評価項目一覧118から、ページごと試験する項目を自動で決定する。
【0063】
図16及び図17に、評価項目決定部1202における動作のフローチャートを示す。
図16及び図17を用いて、評価項目決定部1202における動作を説明する。
【0064】
評価項目決定部1202では、まず、試験対象ページ情報DB111を参照し、試験対象ページの一覧を取得する(S1401)。
次に、評価項目決定部1202は、取得した試験対象ページの一覧から、試験対象ページを1つ選択する(S1402)。
次に、評価項目決定部1202は、選択した試験対象ページに関して、仕様書DB1201から仕様情報を取得する(S1403)。
次に、評価項目決定部1202は、セキュリティ評価項目一覧118を読み込み、初期設定として、セキュリティ評価項目一覧118に記載の全ての項目を実施するよう設定する(S1404)。
次に、評価項目決定部1202は、仕様書DB1201から取得した仕様情報を基に、不要な評価項目を不実施に設定していく(S1405〜S1416)。
S1405では、評価項目決定部1202は、仕様情報を基に、試験対象ページがDBアクセスするかどうかを判定して、DBアクセスしない場合は、SQLインジェクションの項目を不実施に設定する(S1406)。
S1407では、評価項目決定部1202は、試験対象ページにhiddenパラメタがあるかどうか判定して、無い場合には、隠しフィールドの操作の項目を不実施に設定する(S1408)。
S1409では、評価項目決定部1202は、試験対象ページにパラメタがあるかどうか判定し、無い場合には、パラメタの改ざんの項目、及び、クロスサイトスクリプティングの項目を不実施に設定する(S1410)。
S1411では、評価項目決定部1202は、診断対象ページにてCookieを使用しているか判断し、使用していない場合には、Cookieの濫用の項目を不実施に設定する(S1412)。
S1413では、評価項目決定部1202は、試験対象ページがSSL通信を行うかどうか判断して、行わない場合には、セキュアモードでないCookieの項目を不実施に設定する(S1414)。
S1415では、評価項目決定部1202は、診断対象ページにて、メールを送信するかどうかを判定し、メールを送信しない場合には、メールの第三者中継の項目を不実施に設定する(S1416)。
S1417まで到達した際に、S1401で取得した試験対象ページの一覧に記載されている全ての試験対象ページについて試験項目を決定したかどうか判断し、残りがあれば、再びS1402からの処理を行う。
最終的に、S1417にて、全ての試験対象ページについて試験項目を決定したと判断された場合、試験対象ページごとの評価項目を出力して動作を終了する(S1418)。
【0065】
評価項目決定部1202において、全ての試験対象ページに対する試験実施項目が決定された後に、評価データ生成部112では、評価項目決定部でページごとに決定された試験実施項目、仕様書DB1201、及び、脆弱性検査データDB113の情報を基に、ページごとの評価データを作成する。
評価データに設定するデータは、仕様書DB1201で設定項目がパラメタ(図15において設定項目がPARAMである項目)に設定されているパラメタの値が取りうる範囲(最小値、最大値)を基に決定される。
作成された評価データは、評価データ送信部114を介してWebアプリケーション131に送信される。
その後の、Webアプリケーション131からの応答メッセージ受信から、評価結果表示部117に評価結果が表示されるまでの処理は、実施の形態1と同様である。
【0066】
以上のように、本実施の形態では、実施の形態1に加え、ユーザが入力したWebアプリケーションの仕様情報を基に、ページごと試験を実施するセキュリティ評価項目を決定し、決定した評価項目ごとに評価データを作成することで、Webアプリケーションに対して、仕様上必要のない試験を行わないようにしているため、Webアプリケーションの試験全体の実施効率が向上し、試験実施時間の短縮を図ることができる。
【0067】
以上、本実施の形態では、
Webアプリケーションの仕様情報を入力する手段と、入力したWebアプリケーションの仕様情報と、セキュリティ評価項目一覧の情報とを基に、試験項目を自動で決定する手段とを備えた、Webアプリケーション自動試験装置を説明した。
【0068】
最後に、実施の形態1及び2に示したWebアプリケーション自動試験装置101のハードウェア構成例について説明する。
図19は、実施の形態1及び2に示すWebアプリケーション自動試験装置101のハードウェア資源の一例を示す図である。
なお、図19の構成は、あくまでもWebアプリケーション自動試験装置101のハードウェア構成の一例を示すものであり、Webアプリケーション自動試験装置101のハードウェア構成は図19に記載の構成に限らず、他の構成であってもよい。
【0069】
図19において、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及び2で説明した「〜DB」は、RAM914や磁気ディスク装置920により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
【0070】
通信ボード915は、ネットワークに接続されている。
例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
【0071】
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
【0072】
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
【0073】
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
Webアプリケーション自動試験装置101の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
【0074】
上記プログラム群923には、実施の形態1及び2の説明において「〜部」、「〜手段」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
【0075】
ファイル群924には、実施の形態1及び2の説明において、「〜の判断」、「〜の計算」、「〜の加算」、「〜の比較」、「〜の選択」、「〜の特定」、「〜の抽出」、「〜の評価」、「〜の検索」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の生成」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメタが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメタは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメタは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1及び2で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0076】
また、実施の形態1及び2の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態1及び2で説明したフローチャートに示すステップ、手順、処理により、本発明に係る情報処理方法を実現することができる。
また、「〜部」、「〜手段」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1及び2の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態1及び2の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【0077】
このように、実施の形態1及び2に示すWebアプリケーション自動試験装置101は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【0078】
101 Webアプリケーション自動試験装置、102 Webサーバ、111 試験対象ページ情報DB、112 評価データ生成部、113 脆弱性検査データDB、114 評価データ送信部、115 応答受信部、116 評価結果判定部、117 評価結果表示部、118 セキュリティ評価項目一覧、120 Webページ画面遷移情報DB、121 Webページ特徴情報DB、122 Webページ種類特定部、123 Webページ構成要素DB、124 取引フローパターンDB、125 Webページ重要度判定部、126 パラメタ属性DB、127 重要パラメタ特定部、128 Webページ重要パラメタDB、131 Webアプリケーション、1201 仕様書DB、1202 評価項目決定部。
【技術分野】
【0001】
本発明は、Webページの改ざん攻撃に対する脆弱性を検査する技術に関する。
【背景技術】
【0002】
通常、Webアプリケーションの開発では、一般的なアプリケーションの開発と同様、開発元において開発仕様に基づいて試験を行い、開発仕様どおりにWebアプリケーションが動作することを確認してからリリースされる。
昨今、Webアプリケーションの脆弱性を狙った攻撃による被害が増加する中、Webアプリケーションに対しては、開発仕様に基づいた機能の動作試験だけではなく、Webアプリケーションのセキュリティに関する試験も実施する必要性がでてきた。
一般には、この場合、Webアプリケーションの機能試験を完了した後、Webアプリケーションをインターネットへ公開する前に、セキュリティサービスベンダが提供するWebアプリケーション診断サービスを利用して、開発したWebアプリケーションにセキュリティの脆弱性がないことを確認する。
これは、Webアプリケーションのセキュリティ試験では、Webアプリケーションの脆弱性に関する専門的な知識が必要とされるため、Webアプリケーションの開発元では、十分な試験が行えないためである。
しかしながら、Webアプリケーションのセキュリティ試験は、Webアプリケーションが完成してからの実施となるため、仮に、Webアプリケーションに脆弱性が見つかった場合には、脆弱性を修正するための工期が別途かかってしまうことが課題であった。
【0003】
上記の課題を解決するため、Webアプリケーション開発時の試験においてWebアプリケーションの脆弱性に関する専門的な知識がない開発元においても、セキュリティ試験を実施できるようにすることを目的とした従来技術として、システム仕様や設計書に記載されているブラウザ画面上の入力項目に関する項目属性(データ長・文字データ種類・データ範囲など)を予め仕様情報として設定しておくことによって、正常または異常系の評価データの生成、及び、試験の実施を自動で行えるようにしている技術がある(例えば、特許文献1)。
また、同様にシステム仕様や設計書の情報を予め設定しておき、設定した仕様書情報を基に、Webアプリケーションの応答メッセージに含まれる値が仕様書の定義と一致しているかどうかを自動で検査する方法も提案されている(例えば、特許文献2、特許文献3)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−113993号公報
【特許文献2】特開2008−112300号公報
【特許文献3】特開2008−242738号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のWebアプリケーションのセキュリティ試験では、Webアプリケーションから出力されるWebページに含まれるパラメタ値の改ざん攻撃に成功したとしても、そのパラメタ値が持つ意味やセキュリティ上の重要性が不明であったため、それが、後の処理においてセキュリティの不具合を引き起こすかどうかまでは検出できないことが課題としてある。
つまり、セキュリティ上の不具合を引き起こす重要なパラメタについて、改ざん攻撃に対する脆弱性検査を確実に実施すること必要であるが、従来技術では、重要なパラメタであっても改ざん攻撃に対する脆弱性検査から漏れてしまうという課題がある。
【0006】
この発明は上記のような課題を解決することを主な目的としており、従来のWebアプリケーションのセキュリティ試験では実施できなかった、重要な意味を持つパラメタについての改ざん攻撃に対する脆弱性の検査を確実にできるようにし、Webアプリケーションのセキュリティ試験の精度向上を実現することを主な目的とする。
【課題を解決するための手段】
【0007】
本発明に係る情報処理装置は、
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるWebページを選別するための選別基準が定義されている選別基準情報を記憶する選別基準情報記憶部と、
疑似改ざん攻撃の対象となるパラメタが疑似攻撃対象パラメタとして定義されているパラメタ情報を記憶するパラメタ情報記憶部と、
前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Webページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Webページを選別するWebページ選別部と、
前記Webページ選別部により選別された疑似攻撃対象Webページに含まれているパラメタの中から前記パラメタ情報に定義されている疑似攻撃対象パラメタに該当するパラメタを抽出し、抽出したパラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施部とを有することを特徴とする。
【発明の効果】
【0008】
本発明では、疑似改ざん攻撃の攻撃対象となるWebページの選別基準が定義されている選別基準情報に基づき疑似攻撃対象Webページを選別し、また、疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報に基づき、疑似攻撃対象Webページに含まれているパラメタの中から疑似改ざん攻撃の対象となるパラメタを抽出し、抽出したパラメタのパラメタ値を改ざん値にして疑似改ざん攻撃を実施する。
このため、セキュリティ上の不具合を引き起こす重要なWebページを選別基準情報において定義し、また、セキュリティ上の不具合を引き起こす重要なパラメタをパラメタ情報において定義することにより、重要なWebページの重要なパラメタについて改ざん攻撃に対する脆弱性の検査を実施することができる。
【図面の簡単な説明】
【0009】
【図1】実施の形態1に係るWebアプリケーション自動試験装置の構成例を示す図。
【図2】実施の形態1に係る試験対象ページ情報DBに記憶されているデータの例を示す図。
【図3】実施の形態1に係るWebページ画面遷移情報DBに記憶されているデータの例を示す図。
【図4】実施の形態1に係るWebページ特徴情報DBに記憶されているデータの例を示す図。
【図5】実施の形態1に係るWebページ構成要素DBに記憶されているデータの例を示す図。
【図6】実施の形態1に係るWebページ種類特定部の動作例を示すフローチャート図。
【図7】実施の形態1に係るWebページ種類特定部の動作例を示すフローチャート図。
【図8】実施の形態1に係る取引フローパターンDBに記憶されているデータの例を示す図。
【図9】実施の形態1に係るWebページ重要度判定部の動作例を示すフローチャート図。
【図10】実施の形態1に係るパラメタ属性DBに記憶されているデータの例を示す図。
【図11】実施の形態1に係る重要パラメタ特定部の動作例を示すフローチャート図。
【図12】実施の形態1に係る重要パラメタ特定部の動作例を示すフローチャート図。
【図13】実施の形態1に係るWebページ重要パラメタDBに記憶されているデータの例を示す図。
【図14】実施の形態2に係るWebアプリケーション自動試験装置の構成例を示す図。
【図15】実施の形態2に係る仕様書DBに記憶されているデータの例を示す図。
【図16】実施の形態2に係る評価項目決定部の動作例を示すフローチャート図。
【図17】実施の形態2に係る評価項目決定部の動作例を示すフローチャート図。
【図18】実施の形態1に係る脆弱性検査データDBに記憶されているデータの例を示す図。
【図19】実施の形態1及び2に係るWebアプリケーション自動試験装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【0010】
実施の形態1.
本実施の形態では、従来のWebアプリケーションのセキュリティ試験では分からなかった、重要な意味を持つパラメタの改ざん攻撃成功を検出できるようにすることで、Webアプリケーションのセキュリティ試験の精度向上を実現する構成を説明する。
【0011】
図1は、実施の形態1におけるWebアプリケーション自動試験装置の構成概要を示す図である。
【0012】
図1において、101は、Webアプリケーション自動試験装置を表しており、102は、試験対象となるWebアプリケーション131が動作するWebサーバ装置(以下、単にWebサーバともいう)を表している。
Webアプリケーション自動試験装置101は、情報処理装置の例である。
【0013】
また、図1において、試験対象ページ情報DB111は、試験対象となるWebアプリケーションが提供するWebページの情報を格納したデータベースである。
評価データ生成部112は、試験対象ページ情報DB111、Webアプリケーションのセキュリティ脆弱性を検査するための脆弱性検査データを格納した脆弱性検査データDB113、Webアプリケーションのセキュリティ試験で行う一般的な評価項目を定義したセキュリティ評価項目一覧118からWebアプリケーションを試験するための評価データを生成する。
セキュリティ評価項目一覧118で定義される一般的な評価項目の例としては、SQLインジェクション、OSコマンドインジェクション/ステルスコマンド、パス名やパラメタの未チェック/ディレクトリトラバーサル、セッション管理の不備/強制ブラウジング/セキュアモードでないクッキー、クロスサイトスクリプティング、クロスサイトリクエストフォージェリ、HTTPヘッダインジェクション、メールの第三者中継、アクセス制御や認可制御の欠落、隠しフィールドの操作、パラメタの改ざん、バックドアとデバッグオプション、Cookieの濫用、不要な情報の開示、などがある。
【0014】
生成された評価データは、評価データ送信部114からWebサーバ102で稼動しているWebアプリケーション131に送信され、その応答メッセージを、応答受信部115で受信する。
応答メッセージは、評価結果判定部116に送られ、そこで脆弱性の有無の判定を行い、判定結果を評価結果表示部117に表示する。
【0015】
また、Webページ種類特定部122は、Webページ画面遷移情報DB120、Webページ特徴情報DB121、Webページ構成要素DB123の情報を基に、試験対象ページのWebページのカテゴリー(商品ページ、購入フォーム、確認ページ、決済完了ページ、ユーザ登録ページ、ユーザ情報表示・編集ページ、パスワード変更ページ、情報一覧ページなど)を特定する。
【0016】
Webページ重要度判定部125は、Webページ種類特定部122で特定された試験対象ページのWebページのカテゴリー、Webページ画面遷移情報DB120、Webアプリケーションで提供される各取引フローのパターンを格納した取引フローパターンDB124を基に、試験対象となる一連の取引フローにおける重要ページを特定する。
【0017】
重要パラメタ特定部127は、Webページ間で渡されるパラメタのうち、改ざん攻撃が成功することによって、後の処理においてセキュリティの不具合を発生させる可能性のある重要なパラメタ(商品購入フローにおける、金額、ユーザ情報、クレジットカード番号など)を、取引フローごと重要となるパラメタ文字列を格納したパラメタ属性DB126の情報を参照して決定する。
【0018】
Webページ重要度判定部125及び重要パラメタ特定部127によって特定された取引フロー(商品購入フロー、ユーザ登録フロー、ユーザパスワードの変更フローなど)における重要ページ、及び、重要ページに含まれる重要パラメタの情報は、Webページ重要パラメタDB128に格納され、後の、評価結果判定部116における重要パラメタ改ざん攻撃の成否の判定で用いられる。
【0019】
ここで、Webアプリケーション自動試験装置101の動作を詳細に説明する前に、Webアプリケーション自動試験装置101の動作の概要を説明する。
【0020】
本実施の形態に係るWebアプリケーション自動試験装置101は、改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となる重要なWebページ(以下、疑似攻撃対象Webページともいう)を選別する。
つまり、本実施の形態に係るWebアプリケーション自動試験装置101は、疑似改ざん攻撃の攻撃対象の候補である複数の試験対象ページ(以下、候補Webページともいう)の中から疑似攻撃対象Webページを選別し、選別した疑似攻撃対象Webページ内のパラメタのうち疑似改ざん攻撃の対象となるパラメタ(以下、疑似攻撃対象パラメタともいう)を抽出し、抽出したパラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する。
疑似改ざん攻撃とは、Webアプリケーションの試験の一試験項目として実施される改ざん攻撃を模擬したテストであり、パラメタ値を改ざん値にしたWebページ(評価データ)をWebサーバ102に送信することである。
疑似改ざん攻撃により疑似攻撃対象Webページの改ざん攻撃に対する脆弱性を評価することができる。
疑似攻撃対象Webページは、例えば、改ざん攻撃があった場合の被害が他のWebページに比べて大きいと推測されるWebページである。
また、疑似改ざん攻撃の対象となるパラメタも、例えば、改ざん攻撃があった場合の被害が他のパラメタに比べて大きいと推測されるパラメタである。
【0021】
Webページ特徴情報DB121、Webページ構成要素DB123、取引フローパターンDB124には、疑似攻撃対象Webページを選別するための選別基準が定義されている。
より具体的には、Webページ特徴情報DB121には、Webページのカテゴリー(商品ページ、購入フォーム、確認ページ等)が複数示され、カテゴリーごとに、各カテゴリーに属するWebページのページ構成における特徴及び他のWebページとのリンクにおける特徴が示されるデータが格納されている。
また、Webページ構成要素DB123には、Webページのリンク先URL(Uniform Resource Locator)に出現する可能性のある文字列が示されるデータが格納されている。
更に、取引フローパターンDB124には、Webアプリケーションにより提供される複数の取引フロー(商品購入フロー、ユーザ登録フロー、ユーザパスワードの変更フローなど)が示され、取引フローごとに、各取引フローにおいて利用されるWebページのカテゴリーが示され、取引フローごとに、重要ページのカテゴリー、つまり、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されるデータが格納されている。
詳細は、後述するが、Webページ特徴情報DB121には、例えば図4に示すデータが記憶されており、Webページ構成要素DB123には、例えば図5に示すデータが記憶されており、取引フローパターンDB124には、例えば図8に示すデータが記憶されている。
なお、Webページ特徴情報DB121、Webページ構成要素DB123、取引フローパターンDB124に記憶されているデータは、疑似攻撃対象Webページを選別するための選別基準を定義しており、選別基準情報の例に相当する。
また、Webページ特徴情報DB121、Webページ構成要素DB123、取引フローパターンDB124は、選別基準情報記憶部の例に相当する。
【0022】
Webページ種類特定部122は、Webページ特徴情報DB121に示されているカテゴリーごとのページ構成における特徴及び他のWebページとのリンクにおける特徴に基づいて、各候補Webページを複数のカテゴリーのうちのいずれかのカテゴリーに分類する。
つまり、WebページAは商品ページ、WebページBは購入フォーム、WebページCは確認ページというように各候補Webページを該当するカテゴリーに分類する。
また、Webページ重要度判定部125は、取引フローパターンDB124の取引フローパターンとWebページ種類特定部122による候補Webページのカテゴリーの分類結果に基づき、複数の候補Webページが複数の取引フローのうちのいずれの取引フローに対応しているのかを判定する。
また、Webページ重要度判定部125は、取引フローパターンDB124の取引フローパターンに基づき、判定した取引フローにおける重要ページ(すなわち、疑似攻撃対象Webページ)を選別する。
前述したように、取引フローパターンには、重要ページのカテゴリー、つまり、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されている。
このため、Webページ重要度判定部125は、取引フローパターンを参照し、判定した取引フローについて疑似改ざん攻撃の攻撃対象とされているカテゴリーに分類されたWebページを疑似攻撃対象Webページとして選別する。
なお、Webページ種類特定部122とWebページ重要度判定部125は、Webページ選別部の例である。
また、Webページ種類特定部122とWebページ重要度判定部125による重要ページの選別処理は、Webページ選別ステップに相当する。
また、Webページ種類特定部122によるWebページ特徴情報DB120の情報及びWebページ構成要素DB123の情報の読み出し処理、Webページ重要度判定部125による取引フローパターンDB124の情報の読み出し処理は、選別基準情報読み出しステップに相当する。
【0023】
パラメタ属性DB126には、重要パラメタ、つまり、疑似改ざん攻撃の対象となるパラメタが定義されているデータが格納されている。
パラメタ属性DB126に格納されているデータはパラメタ情報の例であり、パラメタ属性DB126はパラメタ情報記憶部の例に相当する。
【0024】
重要パラメタ特定部127は、Webページ重要度判定部125により選別された疑似攻撃対象Webページに含まれているパラメタの中からパラメタ属性DB126で定義されている重要パラメタに該当するパラメタを抽出する。
重要パラメタに該当するとして抽出されたパラメタは疑似攻撃対象パラメタの例に相当する。
また、評価データ生成部112と評価データ送信部114は、疑似改ざん攻撃を実施する。
具体的には、評価データ生成部112が、重要パラメタ特定部127により抽出されたパラメタのパラメタ値を所定の改ざん値にしたWebページ(評価データ)を生成し、評価データ送信部114が、評価データをWebサーバ102に送信する。
重要パラメタ特定部127、評価データ生成部112及び評価データ送信部114は、疑似改ざん攻撃実施部の例に相当する。
なお、重要パラメタ特定部127、評価データ生成部112及び評価データ送信部114による重要パラメタの抽出処理、疑似改ざん攻撃の実施処理は、疑似改ざん攻撃実施ステップに相当する。
また、重要パラメタ特定部127によるパラメタ属性DB126からの情報の読み出し処理は、パラメタ情報読み出しステップに相当する。
【0025】
次に、図面を参照して、本実施の形態に係るWebアプリケーション自動試験装置101の動作を詳細に説明する。
【0026】
まず、準備として、Webアプリケーションによって提供されるWebページの一覧の取得と、それらの画面遷移情報の生成を行う。
また、Webアプリケーション131によって提供されるWebページ一覧は、試験実施者が手動でWebアプリケーションにアクセスして収集してもよいし、自動でWebページ一覧を収集する技術(Webクローリング技術)を用いて収集してもよい。
Webページの画面遷移情報に関しては、収集したWebページのHTML(Hyper Text Markup Language)で記載されているページのリンク関係を抽出することで、各ページを頂点とし、リンク関係をエッジとした有向グラフで生成する。
抽出したWebページの画面遷移情報は、Webページ画面遷移情報DB120に格納しておく。
【0027】
図2に、Webアプリケーション131によって提供されるWebページの一覧を格納しておく、試験対象ページ情報DB111の構造(200)を示す。
図2では、試験対象ページのURL、Webアプリケーション131への送信メッセージと、送信メッセージに対するWebアプリケーション131からの応答メッセージ(Webページ)を関連付けて保存しておく。
【0028】
図3に、Webページ画面遷移情報DB120の構造(300)を示す。
図3では、試験対象ページURLに対する、リンク元URL、及び、リンク先URLが格納されている。
複数のリンク元URLからリンクされている試験対象ページのURLに関しては、リンク元URLが異なる複数の行が格納される。
複数のリンク先URLを持つ試験対象ページURLに関しても同様である。
Webページ画面遷移情報DB120の情報を基に、試験対象ページのURLのリンク関係を有向グラフで抽出できる。
【0029】
次に、評価結果判定部116において重要パラメタ(疑似攻撃対象パラメタ)の改ざん攻撃の成否を判定するために用いるWebページ重要パラメタDB128に格納されている、重要ページ(疑似攻撃対象Webページ)と重要ページに含まれる重要パラメタを決定する方法について説明する。
【0030】
Webページ種類特定部122では、Webページ特徴情報DB121に格納されているWebページの種類を特定するための特徴情報、及び、Webページ構成要素DB123に格納されているWebページの構成要素を特定するための構成要素特定文字列を基に、読み込んだWebページ(候補Webページ)の種類(カテゴリー)を特定する。
Webページの種類としては、例えば、商品取引であれば、商品情報表示ページ、購入のための購入フォーム入力ページ、購入フォーム入力で入力した値の確認ページ、購入決済完了ページなどがある。
それぞれのページには種類を示す特徴がある。
【0031】
図4に、Webページ特徴情報DB121の構造(400)を示す。
なお、図4では説明を簡単にするため、各Webページ種類別の特徴を文章で記載しているが、実際には、コンピュータで処理しやすいよう、条件式や数値によって記述するものとする。
Webページの種類を示す特徴としては、例えば、購入決済完了ページであれば、トップページからのリンク経路が長い傾向にある。
また、購入決済完了ページには、例えば、印刷ボタンが表示されている、結果を送信するためのメールアドレス入力がある、購入後アンケート入力画面へのリンクがあるといった構成要素の存在が考えられる。
これらの各構成要素にスコアをつけておき、ページを構成する要素のスコアを加算していき、得られたスコアが予め定められた閾値を超えた場合に、購入決済完了ページであると特定する。
なお、判定で用いる閾値は、ページ種類ごとに設定してもよいし、ページ種類間で同一の閾値としてもよい。
【0032】
また、図5に、Webページ構成要素DB123の構造(500)を示す。
図5に示すように、構成要素ごとに構成要素特定文字列が定義されており、試験対象ページのリンク先URL(構成要素)に、構成要素特定文字列と一致する文字列があった場合に、その構成要素名を特定できる。
URLに関しては、その主たるコンテンツに関係した文字列がURLに表れる可能性が高い。
例えば、印刷ページへのURLであれば、印刷に最適なページ整形を行うコンテンツが主たるコンテンツとなるため、印刷に関連した文字列(例えば、print、outputなど)の文字列がURLに含まれている可能性が高い。
このような、URLに現れる主たるコンテンツに関連した文字列を手がかりに、試験対象ページの構成要素を特定する。
なお、図5に示すように、構成要素特定文字列は、正規表現を用いて定義してもよい。
正規表現を用いることにより、類似した複数の構成要素特定文字列をまとめて定義できるため、Webページ構成要素DB123に格納しておくデータ量を削減できる。
【0033】
次に、Webページ種類特定部122の動作について詳細を説明する。
図6及び図7に、Webページ種類特定部122の処理のフローチャートを示す。
【0034】
Webページ種類特定部122では、最初に、試験対象ページ情報DB111に格納されている、Webアプリケーション131からの応答メッセージ(Webページ)を1つ読み込む(S601)。
次に、Webページ種類特定部122は、試験対象ページ(候補Webページ)のURLを基に、Webページ画面遷移情報DB120を参照して、TOPページからのリンクの長さを計算する(S602)。
このとき複雑な画面遷移の構造をもつWebアプリケーションでは冗長な経路やループが発生する場合がある。
これらに関しては、最短の経路を探索する既存の技術が応用できる。
例えば、ダイクストラ法などが有名である。
次に、Webページ種類特定部122は、得られたTOPページからのリンクの長さを基に、Webページ特徴情報DB121の情報を読み出し、リンクの長さが条件と一致するWebページ種類を検索する(S603)。
リンクの長さの特徴に当てはまるWebページ種類が検索で抽出された場合は、特徴の当てはまるWebページ種類のスコアを加算する(S604、S605)。
次に、Webページ種類特定部122は、Webページ画面遷移情報DB120から試験対象ページのリンク先URLを抽出し(S606)、リンク先を1つ選択し(S607)、抽出したリンク先URLの文字列を基にWebページ構成要素DB123を検索し、該当する情報を読み出し、試験対象ページの構成要素を特定する(S608)。
次に、Webページ種類特定部122は、Webページ画面遷移情報DB120から抽出した全てのリンク先URLについて構成要素を特定する(S609)。
【0035】
次に、Webページ種類特定部122は、特定した構成要素から1つを選択し(S610)、Webページ特徴情報DB121を検索(S611)した結果として、構成要素の特徴が当てはまるWebページ種類が存在した場合には、特徴の当てはまるWebページ種類にスコアを加算する(S612、S613)。
S609で特定した試験対象ページの構成要素全てに関してWebページ特徴情報DB121を検索して、Webページ種類のスコアについて加算が完了(S614)した後に、仮に、スコアが加算されたWebページ種類が1つも存在しなかった場合は、Webページ種類特定部122は、S601で読み込んだ試験対象ページに関するWebページ種類は不明と判定する(S615、S616)。
スコアが加算されたWebページ種類が1つでも存在した場合、Webページ種類特定部122は、そのスコアが閾値を超えているかどうかを判断する(S617)。
スコアが閾値を超えたWebページ種類がただ1つであった場合、試験対象ページは、そのWebページ種類であると判定する(S618、S622)。
閾値を超えたWebページ種類が複数あった場合、及び、閾値を超えたWebページ種類が無かった場合は、スコアの大きさからWebページ種類を判定する。
仮に、スコアの最高値を持つWebページ種類が複数同じスコアであった場合には、試験対象ページは、複数のWebページ種類の特徴を持つものと判定する(S619、S620、S622)。
また、スコアの最高値を持つWebページ種類がただ1つであった場合、その試験対象ページのWebページ種類として判定する(S619、S621、S622)。
最終的に、試験対象ページ情報DB111に含まれる全ての試験対象ページに対して、Webページ種類が特定できた場合に処理を終了する(S623)。
【0036】
例えば、購入決済完了ページが特定された場合、購入決済完了ページへリンクしているページを確認ページ、また、確認ページへリンクしているページは、購入フォーム入力ページ、購入フォーム入力ページへリンクしているページは、商品情報表示ページ、というようにリンクをさかのぼって、各Webページの種類を特定していくことも可能である。
さらに、各ページの種類は、ページのタイトルにも特徴が表れたり、確認ページではCSRF(Cross Site Request Forgeries)対策のための乱数を値にもつパラメタが含まれていたりといった特徴もあるため、これらの情報も併用することによって、Webページの種類を特定する精度が向上する。
【0037】
次に、Webページ重要度判定部125の動作について説明する。
Webページ重要度判定部125は、Webアプリケーションで提供される各取引フローのパターンを格納した取引フローパターンDB124を基に、試験対象となる一連の取引フローにおける重要ページを特定する。
【0038】
図8に、取引フローパターンDB124の構造(700)を示す。
図8に示すように、Webページのリンク元、及び、リンク先の情報を下に、取引フローパターンごとにページのリンクパターン、取引フローパターンにおいて重要なページに対する重要フラグが定義されている。
【0039】
取引フローパターンDB124では、取引フローにおいて重要なページには、重要フラグが設定されている(図8の確認ページ)。
例えば、商品購入フローにおいては、最終的に購入決済完了ページへ遷移する確認ページが重要である。
なぜなら、確認ページから購入決済完了ページへ送信されるパラメタは、そのまま購入決済の処理に利用される可能性があるため、確認ページから購入決済完了ページへ送信されるパラメタが改ざんされた場合、適切な処理を行っていなければ、改ざんされた値で決済処理が行われてしまう危険性がある。
したがって、Webページ重要度判定部125は、この各取引フローにおける重要フラグの情報を基に、確認ページを意味する試験対象ページを重要ページ(疑似攻撃対象Webページ)として特定する。
【0040】
図9に、Webページ重要度判定部125における重要ページの特定処理を表すフローチャートを示す。
図9を用いて、Webページ重要度判定部125の処理を説明する。
【0041】
Webページ重要度判定部125では、まず、Webページ種類特定部122の出力である、試験対象ページのWebページ種類特定結果から、試験対象ページのURLと、そのWebページ種類を選択する(S801)。
次に、Webページ重要度判定部125は、試験対象ページのURLを基に、Webページ画面遷移情報DB120を検索して、試験対象ページのリンク元URLとリンク先URLを取得する(S802)。
次に、Webページ重要度判定部125は、リンク元URLとリンク先URLのWebページ種類を、Webページ種類特定部122の出力から特定し、それらと、試験対象ページのWebページ種類を基に、取引フローパターンDB124の情報を検索し、取引フローパターンと重要フラグを取得する(読み出す)(S803)。
取引パターンが特定された場合(S804)、Webページ重要度判定部125は、試験対象ページ、取引フローパターン、重要フラグを取引フロー特定結果として記憶する(S805)。
全ての試験対象ページについて、取引フローパターンの特定の処理を完了した場合、Webページ重要度判定部125は、取引フローパターンの特定結果から、重要フラグが1である試験対象ページを、取引フロー上重要ページとして抽出し、取引フローパターンと重要ページ(複数可)を、重要ページ特定結果として出力して処理を終了する(S806、S807、S808)。
【0042】
Webページ重要度判定部125では、例えば、商品情報表示ページ、購入フォーム入力ページ、確認ページ、購入決済完了ページが順にリンクされている取引フローパターンは、商品購入フローであると特定する。
【0043】
次に、重要パラメタ特定部127の動作について説明する。
重要パラメタ特定部127では、Webページ重要度判定部125の出力である、重要ページ特定結果に含まれる、取引フローパターンと重要ページからパラメタ属性DB126を参照して、重要パラメタ(疑似攻撃対象パラメタ)を特定する。
【0044】
重要パラメタ(疑似攻撃対象パラメタ)とは、その後の処理においてセキュリティの不具合を引き起こす可能性のある値が設定されたHTML(HyperText Markup Language)のformタグ内の変数を指す。
したがって重要パラメタが存在する試験対象ページには、少なくとも1つのformタグが存在する。
formタグ内の変数は、次の画面へ遷移する際に、Webアプリケーションに送られ処理される。
【0045】
図10にパラメタ属性DB126の構成(900)を示す。
図10に示すように、取引フローごとに、重要なパラメタ文字列が定義されている。
なお、図10に示すように、重要パラメタ文字列は、正規表現を用いて定義してもよい。
正規表現を用いることにより、類似した複数のパラメタ名をまとめて定義できるため、パラメタ属性DB126に格納しておくデータ量を削減できる。
【0046】
重要パラメタ特定部127では、まず、Webページ重要度判定部125によって特定された取引フローを基にパラメタ属性DB126を検索し、重要パラメタ文字列を取得する。
【0047】
図11及び図12に、重要パラメタ特定部127における重要パラメタの特定処理を表すフローチャートを示す。
図11及び図12を用いて、重要パラメタ特定部127の処理を説明する。
【0048】
重要パラメタ特定部127では、まず、Webページ重要度判定部125によって特定された重要ページに複数のformタグがあるかどうか判断する(S1001)。
重要ページに複数のformタグが含まれている場合には、その中から1つのformタグを選択する(S1002)。
次に、重要パラメタ特定部127は、選択したformタグ内のaction(リンク先ページ)の値を基に、Webページ画面遷移情報DB120を参照し、リンク先ページへリンクしている全てのページを抽出する(S1003)。つまり、リンク先ページをリンク先としている他のWebページの存否を判断する。
抽出した結果、リンク先ページへリンクしているページが複数あった場合(当該リンク先ページをリンク先としている他のWebページが存在する場合)、当該リンク先ページは広告ページや検索ページといった、取引フローとは関係のないリンクであると判断し、次のformタグを選択する(S1004)。
重要パラメタ特定部127は、S1002からS1004の処理を繰り返し、重要ページのみからリンクされているページへのformタグ(つまり、リンク先のWebページにリンクしている他のWebページが存在しないformタグ)を特定する。
なお、重要ページには、重要パラメタを含むformタグからのみ遷移するページが必ず1つ存在するため、S1002からS1004のループは、必ず終了する。
重要ページにformタグが1つしかなかった場合、及び、S1002からS1004の処理によって、重要ページにこのページからのみリンクされたページへのリンクを持つformが特定された場合、S1005の処理に移る。
S1005では、重要パラメタ特定部127は、Webページ重要度判定部125で特定された、取引フローパターンを基に、パラメタ属性DB126を検索し、重要パラメタ文字列を抽出する(読み出す)。
【0049】
次に、重要パラメタ特定部127は、重要ページのform内に含まれているパラメタを1つ選択(S1006)し、選択したformタグ内のパラメタ名と重要パラメタ文字列を比較する(S1007)。
比較の結果、重要パラメタ文字列と一致するパラメタ名がformタグ内に存在した場合、そのパラメタを重要パラメタとして記憶する(S1008)。
重要パラメタ特定部127は、formタグ内に存在する全てのパラメタ名について比較を行った後に(S1009)、比較の結果得られた重要パラメタ(複数可)を出力する(S1010)。
出力された、重要ページのURL、重要パラメタが含まれているformタグのactionの値、重要パラメタはWebページ重要パラメタDB128に格納される(S1011)。
【0050】
図13に、Webページ重要パラメタDB128の構造(1100)を示す。
Webページ重要パラメタDB128では、重要ページのURL、重要パラメタを含むformタグに設定されたactionの値(リンク先ページ)、重要パラメタのパラメタ名を重要パラメタのパラメタ名別に関連付けて保存しておく。
これらの情報は、後の、評価結果判定部116において参照され、重要パラメタに関する改ざん攻撃の成否の判定で用いられる。
【0051】
試験対象ページに含まれる全ての重要ページについて、Webページ重要パラメタDB128への重要パラメタの特定が完了した後に、Webアプリケーション自動試験装置101は、Webサーバ102上で動作するWebアプリケーション131の試験を開始する。
試験は、試験対象ページ情報DB111、及び、脆弱性検査データDB113の情報を基に、評価データ生成部112において、試験対象ページに対して、セキュリティ評価項目一覧118に記載された全ての試験を実施するために必要な評価データを生成するところから始まる。
【0052】
図18に、脆弱性検査データDB113の構造(1500)を示す。
図18に示すように、脆弱性検査データDB113では、試験項目と、その試験項目を検査するために用いられる脆弱性検査データが対応づけられて格納されている。
評価データ生成部112は、脆弱性検査データDB113で定義されている試験項目、脆弱性検査データに基づいて、重要ページの重要パラメタの値を改ざん値に変更して評価ページを生成する。
例えば、図13の重要パラメタ名に含まれるproductIDに対して、評価データ生成部112は、現実には存在しない商品名を設定したWebページを評価データとして生成する。
評価データの作成が完了した後、評価データ送信部114によって、作成された評価データが試験対象ページ別に、試験対象ページの提供元であるWebアプリケーション131に対して送信される。
送信した評価データに対するWebアプリケーションからの応答メッセージは、応答受信部115で受信する。
【0053】
評価結果判定部116では、応答受信部115で受信した応答メッセージと、試験対象ページ情報DB111に格納されているWebアプリケーション131へ正常にアクセスした際のWebアプリケーション131からの応答メッセージとを比較し、送信した評価データによって、Webアプリケーション131の応答メッセージに変化が見られたかどうか判定する。
【0054】
なお、上述した、評価データ生成部112での評価データの作成処理、作成した評価データをWebアプリケーション131に送信する評価データ送信部114の処理、Webアプリケーション131からの応答を受信する応答受信部115の処理、応答受信部115で受信したWebアプリケーション131からの応答メッセージを判定する評価結果判定部116における、重要パラメタ改ざん攻撃成功の判定処理以外の処理は、既存技術として様々な手法が公開されており、本実施の形態においても既存技術と同様の実装が行われているものとする。
【0055】
評価結果判定部116において、パラメタが改ざんされた評価データを送信した場合のWebアプリケーション131の応答メッセージが、Webページ画面遷移情報DB120に格納されているWebアプリケーション131の遷移情報と比較した結果、エラーページなど正常ページとは異なるページへ遷移しなかった場合、疑似改ざん攻撃が成功した可能性がある。
この場合、評価結果判定部116では、Webページ重要パラメタDB128を参照し、疑似改ざん攻撃に成功したパラメタが重要パラメタかどうか判定する。
つまり、重要パラメタを改ざんした評価データに対するWebアプリケーション131からの応答がエラーページ等のWebアプリケーション131において異常を検知したことが示される応答ではない場合には、重要パラメタを改ざんした疑似改ざん攻撃が成功したと判定する。
疑似改ざん攻撃に成功したパラメタが、重要パラメタであった場合には、セキュリティ上重要なパラメタの改ざん攻撃に成功したものとして検出する。
それ以外は、改ざんされてもセキュリティ上のリスクが低いパラメタか、改ざんされたパラメタをWebアプリケーション131が検出し、エラー処理したことを意味するため、改ざん攻撃の成功とは見なさない。
最終的に、評価結果判定部116で判定された結果は、評価結果表示部117に表示され、ユーザへ通知される。
【0056】
以上のように、本実施の形態では、試験対象ページの種類をWebページの特徴情報を基に特定して、特定したWebページの前後関係から、取引フローパターン情報を基に、Web取引フローの種別を特定し、特定した取引フローに対してセキュリティ上重要なWebページを特定するとともに、パラメタ値に改ざん攻撃が発生した場合にその後の処理においてセキュリティの不具合を引き起こす可能性のある重要パラメタを予め特定しておく。
このため、これまでは、難しかった重要なパラメタの改ざん攻撃の成否を検出することができる。
また、重要パラメタの特定では、重要ページに複数のformタグがあった場合であっても正確に重要なパラメタを特定可能である。
これにより、Webアプリケーションの試験において、セキュリティ試験精度が向上する。
【0057】
以上、本実施の形態では、
試験対象ページの種類を、Webページの特徴情報を基に特定する手段と、特定したWebページの前後関係から、取引フローパターン情報を基に、Web取引フローの種別を特定する手段と、特定した取引フローに対してセキュリティ上重要なWebページを特定する手段と、パラメタ値の改ざん攻撃が発生した場合にその後の処理においてセキュリティの不具合を引き起こす可能性のある重要なパラメタを特定する手段と、重要なパラメタの改ざん攻撃の成否を検査する手段とを備えた、Webアプリケーション自動試験装置を説明した。
【0058】
実施の形態2.
以上の実施の形態1では、試験対象であるWebアプリケーションが出力するWebページにおける重要ページを特定し、その重要ページに含まれる重要パラメタを特定しておくことにより、重要パラメタの改ざん攻撃の成否を検出するようにしたものであるが、次に、試験を効率的に実施する場合の形態を示す。
【0059】
図14は、実施の形態2におけるWebアプリケーション自動試験装置101の構成概要を示す図である。
図14において、仕様書DB1201は、ユーザが入力したWebアプリケーションの仕様書情報を格納しておくデータベースである。
評価項目決定部1202は、試験対象ページ情報DB、仕様書DB1201、Webアプリケーションのセキュリティ試験で行う一般的な評価項目を定義したセキュリティ評価項目一覧118の情報を基に、試験で実施する評価項目を自動で決定する。
より具体的には、評価項目決定部1202は、Webページに対する評価項目(試験項目)が複数示されているセキュリティ評価項目一覧118(試験項目情報の例)を入力し、仕様書情報を参照して、試験対象ページごとに、セキュリティ評価項目一覧118に示されている評価項目(試験項目)が対象としている対象属性が含まれているか否かを判断する。
そして、試験対象ページに対象属性が含まれていない場合に当該対象属性に対応する評価項目を当該試験対象ページに対する試験での実施項目(試験実施項目)から除外して、試験対象ページごとに実施項目を決定する。
なお、評価項目決定部1202は試験実施項目決定部の例である。
なお、符号111から131は、図1の構成と同様であるため説明を省略する。
【0060】
次に動作について説明する。
まず、実施の形態1で説明したWebページ重要パラメタDB128への情報の出力(図12のS1011)までの一連の処理は既に完了しているものとする。
ユーザは、Webアプリケーションの試験を開始する際に、ユーザインタフェースから、Webアプリケーションの仕様情報を入力する。
入力されたWebアプリケーションの仕様情報は、仕様書DB1201に格納される。
【0061】
図15に、仕様書DBの構造と、ユーザが入力するWebアプリケーションの仕様書情報の例を示す(1300)。
図15に示すように、仕様書情報には、試験対象ページごとに、試験対象ページに設定されている属性が示される。
なお、設定項目にDBと記述されている試験対象ページは、DBアクセスを行うという属性を有する。
また、設定項目にPARAMと記述され、タイプにhiddenと記述されている試験対象ページは、hiddenパラメタが存在するという属性を有する。
また、設定項目にSSLと記述されている試験対象ページは、SSL通信を行うという属性を有する。
また、設定項目にCOOKIEと記述されている試験対象ページは、Cookieを用いるという属性を有する。
また、設定項目にMAILと記述されている試験対象ページは、電子メール送信を行うという属性を有する。
【0062】
次に、評価項目決定部1202では、仕様書DB1201、及び、試験対象ページ情報DB111の情報を基に、セキュリティ評価項目一覧118から、ページごと試験する項目を自動で決定する。
【0063】
図16及び図17に、評価項目決定部1202における動作のフローチャートを示す。
図16及び図17を用いて、評価項目決定部1202における動作を説明する。
【0064】
評価項目決定部1202では、まず、試験対象ページ情報DB111を参照し、試験対象ページの一覧を取得する(S1401)。
次に、評価項目決定部1202は、取得した試験対象ページの一覧から、試験対象ページを1つ選択する(S1402)。
次に、評価項目決定部1202は、選択した試験対象ページに関して、仕様書DB1201から仕様情報を取得する(S1403)。
次に、評価項目決定部1202は、セキュリティ評価項目一覧118を読み込み、初期設定として、セキュリティ評価項目一覧118に記載の全ての項目を実施するよう設定する(S1404)。
次に、評価項目決定部1202は、仕様書DB1201から取得した仕様情報を基に、不要な評価項目を不実施に設定していく(S1405〜S1416)。
S1405では、評価項目決定部1202は、仕様情報を基に、試験対象ページがDBアクセスするかどうかを判定して、DBアクセスしない場合は、SQLインジェクションの項目を不実施に設定する(S1406)。
S1407では、評価項目決定部1202は、試験対象ページにhiddenパラメタがあるかどうか判定して、無い場合には、隠しフィールドの操作の項目を不実施に設定する(S1408)。
S1409では、評価項目決定部1202は、試験対象ページにパラメタがあるかどうか判定し、無い場合には、パラメタの改ざんの項目、及び、クロスサイトスクリプティングの項目を不実施に設定する(S1410)。
S1411では、評価項目決定部1202は、診断対象ページにてCookieを使用しているか判断し、使用していない場合には、Cookieの濫用の項目を不実施に設定する(S1412)。
S1413では、評価項目決定部1202は、試験対象ページがSSL通信を行うかどうか判断して、行わない場合には、セキュアモードでないCookieの項目を不実施に設定する(S1414)。
S1415では、評価項目決定部1202は、診断対象ページにて、メールを送信するかどうかを判定し、メールを送信しない場合には、メールの第三者中継の項目を不実施に設定する(S1416)。
S1417まで到達した際に、S1401で取得した試験対象ページの一覧に記載されている全ての試験対象ページについて試験項目を決定したかどうか判断し、残りがあれば、再びS1402からの処理を行う。
最終的に、S1417にて、全ての試験対象ページについて試験項目を決定したと判断された場合、試験対象ページごとの評価項目を出力して動作を終了する(S1418)。
【0065】
評価項目決定部1202において、全ての試験対象ページに対する試験実施項目が決定された後に、評価データ生成部112では、評価項目決定部でページごとに決定された試験実施項目、仕様書DB1201、及び、脆弱性検査データDB113の情報を基に、ページごとの評価データを作成する。
評価データに設定するデータは、仕様書DB1201で設定項目がパラメタ(図15において設定項目がPARAMである項目)に設定されているパラメタの値が取りうる範囲(最小値、最大値)を基に決定される。
作成された評価データは、評価データ送信部114を介してWebアプリケーション131に送信される。
その後の、Webアプリケーション131からの応答メッセージ受信から、評価結果表示部117に評価結果が表示されるまでの処理は、実施の形態1と同様である。
【0066】
以上のように、本実施の形態では、実施の形態1に加え、ユーザが入力したWebアプリケーションの仕様情報を基に、ページごと試験を実施するセキュリティ評価項目を決定し、決定した評価項目ごとに評価データを作成することで、Webアプリケーションに対して、仕様上必要のない試験を行わないようにしているため、Webアプリケーションの試験全体の実施効率が向上し、試験実施時間の短縮を図ることができる。
【0067】
以上、本実施の形態では、
Webアプリケーションの仕様情報を入力する手段と、入力したWebアプリケーションの仕様情報と、セキュリティ評価項目一覧の情報とを基に、試験項目を自動で決定する手段とを備えた、Webアプリケーション自動試験装置を説明した。
【0068】
最後に、実施の形態1及び2に示したWebアプリケーション自動試験装置101のハードウェア構成例について説明する。
図19は、実施の形態1及び2に示すWebアプリケーション自動試験装置101のハードウェア資源の一例を示す図である。
なお、図19の構成は、あくまでもWebアプリケーション自動試験装置101のハードウェア構成の一例を示すものであり、Webアプリケーション自動試験装置101のハードウェア構成は図19に記載の構成に限らず、他の構成であってもよい。
【0069】
図19において、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及び2で説明した「〜DB」は、RAM914や磁気ディスク装置920により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
【0070】
通信ボード915は、ネットワークに接続されている。
例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
【0071】
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
【0072】
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
【0073】
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
Webアプリケーション自動試験装置101の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
【0074】
上記プログラム群923には、実施の形態1及び2の説明において「〜部」、「〜手段」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
【0075】
ファイル群924には、実施の形態1及び2の説明において、「〜の判断」、「〜の計算」、「〜の加算」、「〜の比較」、「〜の選択」、「〜の特定」、「〜の抽出」、「〜の評価」、「〜の検索」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の生成」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメタが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメタは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメタは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1及び2で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0076】
また、実施の形態1及び2の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態1及び2で説明したフローチャートに示すステップ、手順、処理により、本発明に係る情報処理方法を実現することができる。
また、「〜部」、「〜手段」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1及び2の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態1及び2の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【0077】
このように、実施の形態1及び2に示すWebアプリケーション自動試験装置101は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【0078】
101 Webアプリケーション自動試験装置、102 Webサーバ、111 試験対象ページ情報DB、112 評価データ生成部、113 脆弱性検査データDB、114 評価データ送信部、115 応答受信部、116 評価結果判定部、117 評価結果表示部、118 セキュリティ評価項目一覧、120 Webページ画面遷移情報DB、121 Webページ特徴情報DB、122 Webページ種類特定部、123 Webページ構成要素DB、124 取引フローパターンDB、125 Webページ重要度判定部、126 パラメタ属性DB、127 重要パラメタ特定部、128 Webページ重要パラメタDB、131 Webアプリケーション、1201 仕様書DB、1202 評価項目決定部。
【特許請求の範囲】
【請求項1】
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるWebページを選別するための選別基準が定義されている選別基準情報を記憶する選別基準情報記憶部と、
疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を記憶するパラメタ情報記憶部と、
前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Webページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Webページを選別するWebページ選別部と、
前記Webページ選別部により選別された疑似攻撃対象Webページに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出し、抽出した疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施部とを有することを特徴とする情報処理装置。
【請求項2】
前記選別基準情報記憶部は、
Webページのカテゴリーが複数示され、カテゴリーごとに、各カテゴリーに属するWebページの特徴としてWebページ内のページ構成における特徴及び他のWebページとのリンクにおける特徴が示され、更に、Webアプリケーションにより提供される複数の取引フローが示され、取引フローごとに、各取引フローにおいて利用されるWebページのカテゴリーが示され、取引フローごとに、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されている選別基準情報を記憶し、
前記Webページ選別部は、
前記選択基準情報に示されているカテゴリーごとのページ構成における特徴及び他のWebページとのリンクにおける特徴に基づいて、各候補Webページを複数のカテゴリーのうちのいずれかのカテゴリーに分類し、候補Webページのカテゴリーの分類結果に基づき、前記複数の候補Webページが前記複数の取引フローのうちのいずれの取引フローに対応しているのかを判定し、判定した取引フローにおいて疑似改ざん攻撃の攻撃対象とされているカテゴリーに分類されたWebページを疑似攻撃対象Webページとして選別することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記選別基準情報記憶部は、
取引フローごとに、各取引フローにおいて利用されるWebページのカテゴリーと、カテゴリー間のリンク関係とが示され、取引フローごとに、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されている選別基準情報を記憶し、
前記Webページ選別部は、
各候補Webページを複数のカテゴリーのうちのいずれかのカテゴリーに分類した後に、前記複数の候補Webページの間のリンク関係を解析して、前記複数の候補Webページが前記複数の取引フローのうちのいずれの取引フローに対応しているのかを判定することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記パラメタ情報記憶部は、
取引フローごとに疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を記憶しており、
前記疑似改ざん攻撃実施部は、
前記Webページ選別部により判定された取引フローに対応するパラメタを前記パラメタ情報から取得し、前記Webページ選別部により選別された疑似攻撃対象Webページに含まれているパラメタの中から、取得したパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出することを特徴とする請求項2又は3に記載の情報処理装置。
【請求項5】
前記疑似改ざん攻撃実施部は、
前記Webページ選別部により選別された疑似攻撃対象Webページ内のformタグに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタ抽出することを特徴とする請求項1〜4のいずれかに記載の情報処理装置。
【請求項6】
前記疑似改ざん攻撃実施部は、
前記Webページ選別部により選別された疑似攻撃対象Webページ内のformタグごとに、action値で指定されているリンク先のWebページをリンク先としている他のWebページの存否を判断し、
前記リンク先のWebページをリンク先としている他のWebページが存在しないformタグに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出することを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記疑似改ざん攻撃実施部は、
疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にした疑似攻撃対象Webページを、当該疑似攻撃対象Webページの提供元のWebサーバ装置に送信して、疑似改ざん攻撃を実施することを特徴とする請求項1〜6のいずれかに記載の情報処理装置。
【請求項8】
前記Webページ選別部は、
改ざん攻撃があった場合の被害が他のWebページに比べて大きいと推測されるWebページが疑似改ざん攻撃の攻撃対象として選別される選別基準が定義されている選別基準情報を記憶しており、
前記パラメタ情報記憶部は、
改ざん攻撃があった場合の被害が他のパラメタに比べて大きいと推測されるパラメタが定義されているパラメタ情報を記憶していることを特徴とする請求項1〜7のいずれかに記載の情報処理装置。
【請求項9】
前記情報処理装置は、更に、
Webページに対する試験項目が複数示されている試験項目情報を入力し、
試験の対象となるWebページごとに、前記試験項目情報に示されている試験項目が対象としている対象属性が含まれているか否かを判断し、Webページに対象属性が含まれていない場合に当該対象属性に対応する試験項目を当該Webページに対する試験での試験実施項目から除外して、Webページごとに試験実施項目を決定する試験実施項目決定部とを有することを特徴とする請求項1〜8のいずれかに記載の情報処理装置。
【請求項10】
前記試験実施項目決定部は、
試験の対象となるWebページの仕様書情報を参照して、Webページに対象属性が含まれているか否かを判断することを特徴とする請求項9に記載の情報処理装置。
【請求項11】
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるWebページを選別するための選別基準が定義されている選別基準情報を、コンピュータが、所定の記憶領域から読み出す選別基準情報読み出しステップと、
疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を、前記コンピュータが、所定の記憶領域から読み出すパラメタ情報読み出しステップと、
前記コンピュータが、前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Webページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Webページを選別するWebページ選別ステップと、
前記コンピュータが、前記Webページ選別ステップにより選別された疑似攻撃対象Webページに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出し、抽出した疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施ステップとを有することを特徴とする情報処理方法。
【請求項12】
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるWebページを選別するための選別基準が定義されている選別基準情報を、所定の記憶領域から読み出す選別基準情報読み出しステップと、
疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を、所定の記憶領域から読み出すパラメタ情報読み出しステップと、
前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Webページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Webページを選別するWebページ選別ステップと、
前記Webページ選別ステップにより選別された疑似攻撃対象Webページに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出し、抽出した疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施ステップとをコンピュータに実行させることを特徴とするプログラム。
【請求項1】
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるWebページを選別するための選別基準が定義されている選別基準情報を記憶する選別基準情報記憶部と、
疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を記憶するパラメタ情報記憶部と、
前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Webページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Webページを選別するWebページ選別部と、
前記Webページ選別部により選別された疑似攻撃対象Webページに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出し、抽出した疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施部とを有することを特徴とする情報処理装置。
【請求項2】
前記選別基準情報記憶部は、
Webページのカテゴリーが複数示され、カテゴリーごとに、各カテゴリーに属するWebページの特徴としてWebページ内のページ構成における特徴及び他のWebページとのリンクにおける特徴が示され、更に、Webアプリケーションにより提供される複数の取引フローが示され、取引フローごとに、各取引フローにおいて利用されるWebページのカテゴリーが示され、取引フローごとに、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されている選別基準情報を記憶し、
前記Webページ選別部は、
前記選択基準情報に示されているカテゴリーごとのページ構成における特徴及び他のWebページとのリンクにおける特徴に基づいて、各候補Webページを複数のカテゴリーのうちのいずれかのカテゴリーに分類し、候補Webページのカテゴリーの分類結果に基づき、前記複数の候補Webページが前記複数の取引フローのうちのいずれの取引フローに対応しているのかを判定し、判定した取引フローにおいて疑似改ざん攻撃の攻撃対象とされているカテゴリーに分類されたWebページを疑似攻撃対象Webページとして選別することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記選別基準情報記憶部は、
取引フローごとに、各取引フローにおいて利用されるWebページのカテゴリーと、カテゴリー間のリンク関係とが示され、取引フローごとに、疑似改ざん攻撃の攻撃対象となるカテゴリーが示されている選別基準情報を記憶し、
前記Webページ選別部は、
各候補Webページを複数のカテゴリーのうちのいずれかのカテゴリーに分類した後に、前記複数の候補Webページの間のリンク関係を解析して、前記複数の候補Webページが前記複数の取引フローのうちのいずれの取引フローに対応しているのかを判定することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記パラメタ情報記憶部は、
取引フローごとに疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を記憶しており、
前記疑似改ざん攻撃実施部は、
前記Webページ選別部により判定された取引フローに対応するパラメタを前記パラメタ情報から取得し、前記Webページ選別部により選別された疑似攻撃対象Webページに含まれているパラメタの中から、取得したパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出することを特徴とする請求項2又は3に記載の情報処理装置。
【請求項5】
前記疑似改ざん攻撃実施部は、
前記Webページ選別部により選別された疑似攻撃対象Webページ内のformタグに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタ抽出することを特徴とする請求項1〜4のいずれかに記載の情報処理装置。
【請求項6】
前記疑似改ざん攻撃実施部は、
前記Webページ選別部により選別された疑似攻撃対象Webページ内のformタグごとに、action値で指定されているリンク先のWebページをリンク先としている他のWebページの存否を判断し、
前記リンク先のWebページをリンク先としている他のWebページが存在しないformタグに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出することを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記疑似改ざん攻撃実施部は、
疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にした疑似攻撃対象Webページを、当該疑似攻撃対象Webページの提供元のWebサーバ装置に送信して、疑似改ざん攻撃を実施することを特徴とする請求項1〜6のいずれかに記載の情報処理装置。
【請求項8】
前記Webページ選別部は、
改ざん攻撃があった場合の被害が他のWebページに比べて大きいと推測されるWebページが疑似改ざん攻撃の攻撃対象として選別される選別基準が定義されている選別基準情報を記憶しており、
前記パラメタ情報記憶部は、
改ざん攻撃があった場合の被害が他のパラメタに比べて大きいと推測されるパラメタが定義されているパラメタ情報を記憶していることを特徴とする請求項1〜7のいずれかに記載の情報処理装置。
【請求項9】
前記情報処理装置は、更に、
Webページに対する試験項目が複数示されている試験項目情報を入力し、
試験の対象となるWebページごとに、前記試験項目情報に示されている試験項目が対象としている対象属性が含まれているか否かを判断し、Webページに対象属性が含まれていない場合に当該対象属性に対応する試験項目を当該Webページに対する試験での試験実施項目から除外して、Webページごとに試験実施項目を決定する試験実施項目決定部とを有することを特徴とする請求項1〜8のいずれかに記載の情報処理装置。
【請求項10】
前記試験実施項目決定部は、
試験の対象となるWebページの仕様書情報を参照して、Webページに対象属性が含まれているか否かを判断することを特徴とする請求項9に記載の情報処理装置。
【請求項11】
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるWebページを選別するための選別基準が定義されている選別基準情報を、コンピュータが、所定の記憶領域から読み出す選別基準情報読み出しステップと、
疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を、前記コンピュータが、所定の記憶領域から読み出すパラメタ情報読み出しステップと、
前記コンピュータが、前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Webページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Webページを選別するWebページ選別ステップと、
前記コンピュータが、前記Webページ選別ステップにより選別された疑似攻撃対象Webページに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出し、抽出した疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施ステップとを有することを特徴とする情報処理方法。
【請求項12】
改ざん攻撃に対する脆弱性検査として実施される疑似改ざん攻撃の攻撃対象となるWebページを選別するための選別基準が定義されている選別基準情報を、所定の記憶領域から読み出す選別基準情報読み出しステップと、
疑似改ざん攻撃の対象となるパラメタが定義されているパラメタ情報を、所定の記憶領域から読み出すパラメタ情報読み出しステップと、
前記選別基準情報の選別基準に基づき、疑似改ざん攻撃の攻撃対象の候補である複数の候補Webページの中から疑似改ざん攻撃の攻撃対象となる疑似攻撃対象Webページを選別するWebページ選別ステップと、
前記Webページ選別ステップにより選別された疑似攻撃対象Webページに含まれているパラメタの中から前記パラメタ情報に定義されているパラメタに該当するパラメタを疑似攻撃対象パラメタとして抽出し、抽出した疑似攻撃対象パラメタのパラメタ値を所定の改ざん値にして疑似改ざん攻撃を実施する疑似改ざん攻撃実施ステップとをコンピュータに実行させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2012−174082(P2012−174082A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−36664(P2011−36664)
【出願日】平成23年2月23日(2011.2.23)
【出願人】(000006013)三菱電機株式会社 (33,312)
【出願人】(000236056)三菱電機ビルテクノサービス株式会社 (1,792)
【Fターム(参考)】
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願日】平成23年2月23日(2011.2.23)
【出願人】(000006013)三菱電機株式会社 (33,312)
【出願人】(000236056)三菱電機ビルテクノサービス株式会社 (1,792)
【Fターム(参考)】
[ Back to top ]