JP5640752B2 - 攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム - Google Patents

攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム Download PDF

Info

Publication number
JP5640752B2
JP5640752B2 JP2011003477A JP2011003477A JP5640752B2 JP 5640752 B2 JP5640752 B2 JP 5640752B2 JP 2011003477 A JP2011003477 A JP 2011003477A JP 2011003477 A JP2011003477 A JP 2011003477A JP 5640752 B2 JP5640752 B2 JP 5640752B2
Authority
JP
Japan
Prior art keywords
browser
element data
attack
server
state
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.)
Expired - Fee Related
Application number
JP2011003477A
Other languages
English (en)
Other versions
JP2012146100A (ja
Inventor
郁也 森川
郁也 森川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011003477A priority Critical patent/JP5640752B2/ja
Publication of JP2012146100A publication Critical patent/JP2012146100A/ja
Application granted granted Critical
Publication of JP5640752B2 publication Critical patent/JP5640752B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本件は、攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラムに関する。
最近、Webブラウザの制御機能を狙った攻撃として、「クロスサイトリクエスト偽造」(cross-site request forgery:以下、「CSRF」と呼ぶ)や、セッションフィクセーション(session fixation)といった攻撃がある(例えば、特許文献1参照)。これらの攻撃は、被害者側ブラウザが、攻撃者にとって都合のよいリクエストをサーバへ送信し、サーバがそれを受け入れてしまうことで実現される攻撃である。したがって、このような攻撃を防ぐためには、例えば、サーバが攻撃者にとって都合のよいリクエストを受け取っても、それを受け入れないようにしておくことが必要となる。
例えば、CSRF攻撃を防ぐ方法には、攻撃者が被害者側ブラウザへ働きかけることでは被害者側ブラウザからサーバに送信され難い値をリクエストに含めておく方法がある。この場合、サーバは、リクエストの正誤によって異常なリクエストを検知する。なお、被害者側ブラウザからサーバに送信され難い値とは、フォーム内のhidden型フィールドやRefererヘッダー値などである。
また、セッションフィクセーション攻撃を防ぐ方法には、サーバがログインなどの重大なリクエストに際して常にセッションを作り直すようにする方法がある。この場合、セッションクッキーが書き換えられた状態で重大なリクエストが送信されたときには、攻撃者のセッションに権限が付与されないようにすることができる。
このように、攻撃ごとに防御する方法が異なることから、サーバには、様々な攻撃を防ぐための機能を設けておくことが望ましい。しかるに、たとえば、サーバにおいて、対策していない箇所があったり、対策方法が間違っていたりする可能性もあるため、Webアプリケーション開発者は、正しい対策が行われているかについてテストを実行する必要がある。
テストの代表的な方法には、実際に攻撃が行われるのと同様の方法を模倣(シミュレート)して、攻撃が失敗したら正しく対策されているとする方法がある。このようなテストはブラックボックステスト方式と呼ばれ、Webアプリケーションの外部からHTTPプロトコルによって通信する方式で行われるのが一般的である。また、一般的なブラックボックステストについては、自動化が進んでいる一方、CSRF攻撃やセッションフィクセーション攻撃に関するテストを自動的に行うことは難しい。これらの攻撃を模倣してテストするには、アプリケーションに依存した適切な処理が必要であり、アプリケーションに関する知識・仕様情報をもたない装置やプログラムでは実現が難しいからである。
このため、CSRF攻撃やセッションフィクセーション攻撃への対策に関するテストは、人間が適切な状態・方法や攻撃の成否を判断しながら対話的に行うのが有力と考えられる。例えば、それぞれが攻撃者側と被害者側の役割を持つ二つ(又はそれ以上)のクライアント(一般的にはWebブラウザが仮想的にクライアントとして動作する)を実行し、その両方を操作しながら行う方法である。
特開2009−301327号公報
しかしながら、従来のWebクライアント、Webブラウザには対話的にテストを行うための機能が用意されていない。また、仮に全て人手で対話的な操作を行おうとすると、大変手間がかかる。このことは、同じテストを何度も繰り返す場合に、特に問題となる。
そこで本件は上記の課題に鑑みてなされたものであり、攻撃に対するテストを簡易に行うことが可能な攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラムを提供することを目的とする。
本明細書に記載の攻撃模倣テスト方法は、サーバへの接続が可能な第1のブラウザが前記サーバに対するアクセスを行った際に当該第1のブラウザが被害を被る可能性のある状態にするための情報である要素データを、前記サーバへの接続が可能な第2のブラウザが表示中のHTMLページから取得する取得工程と、前記取得工程で前記第2のブラウザが取得した前記要素データを、前記第2のブラウザが前記第1のブラウザに送信する送信工程と、前記送信工程で送信された要素データを前記第1のブラウザ受信する受信工程と、前記第1のブラウザが、前記第1のブラウザの状態に、前記受信工程で受信された前記要素データを反映させて、当該第1のブラウザの状態を、前記サーバにアクセスした場合に被害を被る可能性のある状態に設定する設定工程と、を含んでいる。
本明細書に記載の攻撃模倣テスト装置は、サーバへの接続が可能な第1のブラウザと、前記第1のブラウザが前記サーバに対するアクセスを行った際に、当該第1のブラウザが被害を被る可能性のある状態にするための情報である要素データを表示中のHTMLページから取得する、前記サーバへの接続が可能な第2のブラウザと、を備え、前記第2のブラウザは、取得した前記要素データを前記第1のブラウザに送信する送信部を有し、前記第1のブラウザは、前記要素データを受信する受信部と、当該第1のブラウザの状態に前記受信部で受信した前記要素データを反映させて、前記第1のブラウザの状態を前記サーバにアクセスした場合に被害を被る可能性のある状態に設定する設定部と、を有する。
本明細書に記載の攻撃模倣テストプログラムは、サーバへの接続が可能な第1のブラウザが前記サーバに対するアクセスを行った際に、当該第1のブラウザが被害を被る可能性のある状態にするための情報である要素データを、前記サーバへの接続が可能な第2のブラウザが表示中のHTMLページから取得し、前記取得する処理で前記第2のブラウザが取得した前記要素データを前記第2のブラウザから前記第1のブラウザに送信し、前記送信する処理で送信された前記要素データを前記第1のブラウザで受信し、前記第1のブラウザの状態に、前記受信する処理で受信された前記要素データを反映させて、当該第1のブラウザの状態を、前記サーバにアクセスした場合に被害を被る可能性のある状態に設定する処理を、コンピュータに実行させる。

本明細書に記載の攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラムは、攻撃に対するテストを簡易に行うことができるという効果を奏する。
一実施形態に係る攻撃模倣テスト装置を含むシステムの構成を概略的に示す図である。 図1の情報処理部のハードウェア構成を示す図である。 図1の情報処理部の機能ブロック図である。 図4(a)は、攻撃者側ブラウザAの処理を示すフローチャートであり、図4(b)は、被害者側ブラウザBの処理を示すフローチャートである。 要素データ(フォーム)を示す図である。 図6(a)は、要素データがフォームである場合における、図4(a)のステップS12の処理を示すフローチャートであり、図6(b)は、要素データがフォームである場合における、図4(b)のステップS24の処理を示すフローチャートである。 要素データ(クッキー)を示す図である。 図8(a)は、要素データがクッキーである場合における、図4(a)のステップS12の処理を示すフローチャートであり、図8(b)は、要素データがクッキーである場合における、図4(b)のステップS24の処理を示すフローチャートである。 変形例を示す図である。
以下、一実施形態について、図1〜図8に基づいて詳細に説明する。図1には、一実施形態にかかる攻撃模倣テスト方法を実現可能な攻撃模倣テスト装置10を含むシステムの構成が概略的に示されている。図1に示すように、攻撃模倣テスト装置10は、インターネット(IPネットワーク)などのネットワーク12に接続されている。また、ネットワーク12には、テスト対象のサーバ14(Webサイトとも呼ばれる)も接続されている。
攻撃模倣テスト装置10は、汎用的なPC(Personal Computer)などの端末であり、情報処理部20と、ユーザインタフェース22(キーボードやマウス、表示装置など)と、を備える。図2には、情報処理部20のハードウェア構成が示されている。図2に示すように、情報処理部20は、CPU90、ROM92、RAM94、記憶部(ここではHDD(Hard Disk Drive))96、及び可搬型記憶媒体用ドライブ99等を備えており、情報処理部20の構成各部は、バス98に接続されている。情報処理部20では、ROM92あるいはHDD96に格納されているプログラム(攻撃模倣テストプログラム)、或いは可搬型記憶媒体用ドライブ99が可搬型記憶媒体91から読み取ったプログラム(攻撃模倣テストプログラム)をCPU90が実行することにより、図3の各部の機能が実現される。
図3には、情報処理部20の機能ブロック図が示されている。この図3に示すように、情報処理部20では、二つ以上(図3では2つ)のWebクライアント(ブラウザ(クライアント)A及びブラウザ(クライアント)B)が動作する。なお、各ブラウザA,Bはそれぞれが汎用的なオペレーティングシステム(OS)上で動作するアプリケーションプログラムであり、仮想的にクライアントとして動作するものとする。また、本実施形態では、各Webクライアントソフトウェアが攻撃者側と被害者側の両方の機能を兼ね備えているものとする。なお、各ブラウザは、それぞれ攻撃者側又は被害者側として動作することで、役割分担を行っている。
ブラウザAは、図3に示すように、通常処理部32と、要素データ抽出部34と、送信部としての要素データ送信部36と、受信部としての要素データ受信部38と、設定部としての要求可能状態設定部40と、しての機能を有する。これらのうち、要素データ抽出部34及び要素データ送信部36は、ブラウザAが、攻撃者側(第2のブラウザ)となる場合に動作する。一方、要素データ受信部38及び要求可能状態設定部40は、ブラウザAが、被害者側(第1のブラウザ)となる場合に動作する。通常処理部32は、一般的なブラウザの処理を実行する。
ブラウザBも、ブラウザAと同様、通常処理部42と、要素データ抽出部44と、送信部としての要素データ送信部46と、受信部としての要素データ受信部48と、設定部としての要求可能状態設定部50と、しての機能を有する。これらのうち、要素データ抽出部44及び要素データ送信部46は、ブラウザBが、攻撃者側(第2のブラウザ)となる場合に動作する。一方、要素データ受信部48及び要求可能状態設定部50は、ブラウザBが被害者側(第1のブラウザ)となる場合に動作する。
要素データ抽出部34は、他方のブラウザ(ブラウザB)がサーバ14に対するアクセスを行った際に当該ブラウザが被害を被る可能性のある状態にするための情報である要素データを抽出(取得)する。同様に、要素データ抽出部44は、他方のブラウザ(ブラウザA)がサーバ14に対するアクセスを行った際に当該ブラウザが被害を被る可能性のある状態にするための情報である要素データを抽出(取得)する。要素データとしては、例えば、フォームや、クッキーが挙げられる。
要素データ送信部36,46は、要素データ抽出部34,44が取得した要素データを他方のブラウザ(要素データ抽出部34の場合ブラウザB、要素データ抽出部44の場合ブラウザA)に対して送信する。要素データ受信部38,48は、要素データ送信部46,36から送信されてきた要素データを受信する。
要求可能状態設定部40,50は、要素データ受信部38,48が受信した要素データを、ブラウザの状態に反映させて、当該ブラウザの状態をサーバ14にアクセスした場合に被害を被る可能性のある状態に設定する。
ここで、CSRF攻撃と、セッションフィクセーション攻撃について、具体的に説明する。
最近のweb(World Wide Web)では、掲示板やウェブログ(ブログ)のような発信情報の更新処理、ネットワークに接続された機器の管理、商品やサービスの購入といった商取引など、多くのアプリケーションが実現されている。このような高度なWebアプリケーションでは、特定のユーザのみに情報を提供したり操作を許可したりすることが求められる。このため、SSL(Secure Sockets Layer)やTLS(Transport Layer Security)による保護を行うHTTPSプロトコルや、HTTP認証といったセキュリティ機能が出現してきている。またHTTPプロトコルはステートレスであり、プロトコル自体は複数のリクエストを関連付ける機能を持たないため、クッキーと呼ばれる技術も出現してきている。これはサーバがレスポンスに付与した値(クッキー)を、ブラウザが暗黙的に記憶し、ブラウザは、それ以降リクエストのたびにその値を付けてサーバに送信するというものである。
一方で、Webブラウザには、その振舞いをサーバ側の指定で制御できる機能が設けられるようになった。その一つであるクライアント側スクリプトはHTMLページ内やそこから参照されるファイル内に記述できる簡易なプログラム言語であり、Webブラウザの振舞いをある程度制御することができる(例えば、Java(登録商標)Script)。ただし、これらのWebブラウザ制御機能は、ユーザや開発者に機能性や利便性をもたらすのみならず、セキュリティ侵害を起こそうとする者にとっても好都合である。
すなわち、攻撃者は、細工されたHTMLページを任意のサイトに用意し、ユーザにそのページを開かせることにより、そのページに用意されたJava(登録商標)Scriptやその他の要素によってWebブラウザを操作するようにする。このような手段で、被害者側のブラウザに、被害者が意図しないリクエストを送信させることにより引き起こされる攻撃がCSRF攻撃である。このCSRF攻撃は、特に、リクエストが重要な処理、たとえば掲示板などへのメッセージの書き込みや削除、機器への設定変更処理、商品購入やサービスの申し込みなどである場合に、問題となる。CSRF攻撃ではリクエストをサーバへ送信するのは被害者側ブラウザである。このため、ブラウザが記憶しているクッキーによって依頼者を識別している場合や、ブラウザが稼動しているコンピュータの識別子(たとえばIPアドレス)によってアクセス可否を判断している場合などが多い。この場合、本来、攻撃者自身が送信するリクエストでは許可されない処理が、サーバで受け付けられるため、深刻な被害となる。
また、リンクやフォームのような単純なハイパーテキスト部品であっても、ユーザはその送信先や送信内容を必ずしも確認しないので、ユーザが意図しない送信先へ意図しない内容のリクエストを送らせる行為は容易に実現できる。このような手段で、被害者のブラウザが記憶しているセッションクッキー情報を強制的に書き換えておくことで、被害者のリクエストを攻撃者にとって都合の良いセッションに属するものとサーバに識別させる攻撃手法が、セッションフィクセーション攻撃である。この攻撃では、クッキーが書き換えられた状態に気づかずに被害者がリクエストを送信すると、攻撃者にとってアクセス可能なセッションに被害者の送信内容やログイン権限などが付与される。これにより、攻撃者は被害者の送信した情報を盗み見たり、被害者になりすまして別の処理を要求したりすることが可能になる。クッキー情報を書き換える手段としては、ブラウザのバグを悪用したり、適用ドメインを広く指定したクッキーを与えたり、通信路上で改ざんしたりする、などの方法が知られている。
本実施形態では、CSRF攻撃や、セッションフィクセーション攻撃に対して、サーバ14上での対策が有効か否かを検査するためのテスト(ブラックボックステスト)を、攻撃模倣テスト装置10を用いて実行する。このテストは、CSRF攻撃やセッションフィクセーション攻撃を模倣して(同一の攻撃を被害者側ブラウザに仕掛けて)、その結果を見るテストである。
以下、図4(a)、図4(b)のフローチャートに沿って、その他図面を適宜参照しつつ、攻撃模倣テスト装置10のブラウザAとブラウザBを用いた攻撃模倣テストについて、詳細に説明する。
(CSRF攻撃に関するテスト)
本実施形態では、ブラウザAが、第2のブラウザとしての攻撃者側ブラウザであるものとし、ブラウザBが、第1のブラウザとしての被害者側ブラウザであるものとする。すなわち、本処理では、図3の要素データ受信部38、要求可能状態設定部40、要素データ抽出部44、及び要素データ送信部46は、機能しないものとする。
図4(a)のフローチャートは、攻撃者側ブラウザAの処理を示し、図4(b)のフローチャートは、被害者側ブラウザBの処理を示している。これらの処理は同時並行的に実行される。まず、図4(a)のステップS10では、通常処理部32が、攻撃者としての準備処理を行う。より具体的には、ユーザ(テスト実施者)の指示の下、通常処理部32が、ログインや目的のページへの遷移といった準備作業を実行する。また、図4(b)のステップS20では、通常処理部42が、被害者としての準備処理(ログインや目的のページへの遷移など)を行う。
次いで、図4(a)のステップS12では、要素データ抽出部34が、要素データを抽出する。なお、ステップS12の処理は、ユーザ(テスト実施者)からの指示を受けたタイミングで行われる。ここでは、CSRF攻撃のテストを行うので、要素データ抽出部34は、要素データとしてフォームを抽出することになる。要素データ(フォーム)の構成は、一例として、図5に示すような構成となっている。図5に示すように、要素データは、項目「method」、「action」、「パラメータ群」から成る。「method」はHTTPメソッド名であり、formタグのmethod属性から得られる。「action」はフォームの送信先URLであり、formタグのaction属性(および同属性が相対URLの場合にはフォームを含むページを得たリクエストURL)から得られる。「パラメータ群」は一般に複数の下位項目から成り、各下位項目はformタグに含まれるコントロールと呼ばれる要素を表すタグ(inputタグ、selectタグなど)から得ることができ、それぞれが「種類」、「名前」、「値」から成る。
ここで、「種類」はコントロールの種類を指し、例えば、text、password、hidden、textarea、radio、checkbox、selectがある。「名前」はコントロールの名前を指し、name属性から得ることができる。「値」はコントロールに設定されている初期値を指し、value属性から得ることができる。ただし、複数の選択肢を持つコントロール(radio、selectなど)の場合、値は複数であってもよい。
図4(a)のステップS12では、具体的に、図6(a)のフローチャートに沿った処理を実行する。まず、図6(a)のステップS30では、要素データ抽出部34が、表示中のHTMLページ内のformタグを選択する。次いで、ステップS32では、要素データ抽出部34が、ステップS30で選択されたformタグのmethod属性とaction属性を取得する。次いで、ステップS34では、formタグ内の各コントロールについて、種類、名前、値を取り出す。以上のようにして、図5のような要素データが抽出されると、図4(a)のステップS14に移行する。
図4(a)のステップS14では、要素データ送信部36が、要素データの送信を行う。また、これに伴って、図4(b)のステップS22では、要素データ受信部48が、要素データの受信を行う。なお、本実施形態では、攻撃者側ブラウザAと被害者側ブラウザBとが、同一の装置上に存在しているので、要素データの送受信には、一般的なプロセス間通信の手段を用いることができる。ただし、これに限らず、例えば、攻撃者側ブラウザAと被害者側ブラウザBとが異なる装置上に存在している場合には、通信機能(例えばIPネットワーク)を用いて要素データを送受信することができる。たとえば、IPネットワークを用いる場合であれば、被害者側ブラウザが特定のポート番号で待ち受けし、攻撃者側ブラウザがそのポート番号に接続して、要素データを適当な方式で符号化して送受信することで実現できる。なお、接続するクライアントの識別子、例えば名前やポート番号などは、ユーザ(テスト実施者)が事前に登録しておくか、あるいは、必要になったときにユーザ(テスト実施者)に問い合わせるなどの一般的な方法で定めるものとする。なお、上述した構造の要素データを受け渡す際の中間形式としては、たとえばXML文書にするなどの方法がある。
次いで、図4(b)のステップS24では、要求可能状態設定部50が、要求可能状態設定処理を実行する。すなわち、要求可能状態設定部50は、被害者側ブラウザBにおいて、受け取ったフォーム情報をformタグとして反映させたHTMLページを表示させる。この場合、たとえばJava(登録商標)Scriptを用いて動的にHTMLページを作成することが可能である。なお、この場合の「Java(登録商標)Script」には、その他の亜種や類似技術であるECMAScript、JScript、VBScriptなども含まれる。図4(b)のステップS24においては、具体的には、図6(b)のフローチャートに沿った処理が実行される。
図6(b)の処理では、まず、ステップS40において、要求可能状態設定部50が、表示中のHTMLページを選択する。なお、表示中のHTMLページが存在しない場合には、要求可能状態設定部50は、新たな空白のHTMLページを作成する。
次いで、ステップS42では、要求可能状態設定部50が、ステップS22で受信した要素データに含まれるmethod属性とaction属性をもつformタグを生成する。次いで、ステップS44では、要求可能状態設定部50が、各パラメータについてformタグ内に対応する名前、値を持ったコントロールを生成する。なお、フォーム情報に含まれる各パラメータはformタグ内のコントロールとして表現されるが、攻撃者側と異なる種類のコントロールにしても構わない。たとえば、種類がhiddenのパラメータをtext型のコントロールとして表現することで、そのパラメータの値を、送信前にブラウザ上で編集可能になる。したがって、攻撃者側ブラウザAあるいは被害者側ブラウザBに、編集可能なパラメータの値を、ユーザ(テスト実施者)の意図に合わせて編集するための機能を設けてもよい。これにより、テスト結果をより簡単に判別できるような内容や、より実際の攻撃に近い内容に書き換えることが可能となる。
以上の処理により、要求可能状態設定部50は、被害者ブラウザBの状態を要求可能状態とすることができる。すなわち、被害者ブラウザBの状態が攻撃者によって細工されたリクエストをサーバへ送信することが可能な状態に設定されることになる(攻撃模倣)。その後は、図4(b)のステップS26に移行する。
ステップS26に移行すると、通常処理部42は、細工されたリクエストの送信処理を実行する。なお、このステップS26の処理は、ユーザ(テスト実施者)の操作に応じて、すなわち、ユーザがフォーム送信ボタンなどを押したタイミングで、行われる。
そして、次のステップS28では、通常処理部42が、送信したリクエストに対してサーバ14から送信されてきたレスポンスを出力(表示)する。この出力をユーザが確認することで、攻撃模倣による結果を確認することができ、これにより、攻撃模倣テストの目的が達成されることとなる。なお、ユーザは出力されたレスポンスを確認する場合のみならず、例えば、リクエスト送信後のサーバの動作を観察することでも、攻撃模倣による結果を確認することが可能な場合がある。
(セッションフィクセーション攻撃に関するテスト)
次に、セッションフィクセーション攻撃に関するテスト方法について説明する。このセッションフィクセーション攻撃に関するテストの場合、前述したCSRF攻撃の場合と異なり、要素データはクッキーの情報の少なくとも一部となる。また、図4(a)のステップS12と、図4(b)のステップS24の具体的処理内容が、CSRF攻撃の場合と異なる。
要素データ(クッキー)は、具体的には、図7のような構成を有する。すなわち、図7に示すように、要素データ(クッキー)は、「名前」、「値」、「対象ドメイン名」の項目を有する。「名前」と「値」はそれぞれクッキーの名前と値であり、「対象ドメイン名」はクッキーを送信するドメイン名を指す。なお、要素データ(クッキー)の項目としては、上記に加えて、図7に示すように、「対象パス」、「有効期限」、「Secure属性」などの項目を採用してもよいが、必須の項目ではない。
本テストでは、図4(a)のステップS12の処理(要素データ抽出処理)において、図8(a)のフローチャートに沿った処理を実行する。図8(a)の処理では、まず、ステップS50において、要素データ抽出部34が、表示中のHTMLページに属するdocument.cookie(セッションクッキー情報)を取得する。この場合、要素データ抽出部34は、例えば、HTMLページを開いている状態でJava(登録商標)Scriptを実行することで取得することができる。あるいは、要素データ抽出部34は、ブラウザAのクッキー格納領域(通常処理部32が有しているものとする)を直接操作して読み出してもよい。一般にブラウザは複数のクッキーを記憶できる。したがって、ステップS50では、複数のクッキーが取得される場合がある。ステップS52では、ステップS50において複数のクッキーが取得されたか否かを判断する。ここでの判断が否定された場合には、ステップS56に移行するが、ステップS52の判断が肯定された場合には、ステップS54に移行する。
ステップS54では、要素データ抽出部34が、取得された複数のクッキーから適当なクッキーを選択する。この場合、選択される適当なクッキーを、クッキーの名前などにより事前に決めておくなどすることができる。あるいは、ユーザ(テスト実施者)に対してクッキーを表示し、ユーザに選択を促すようにしてもよい。
そして、ステップS56では、要素データ抽出部34が、取得(選択)したクッキーの名前、値、対象、ドメイン名を取得する。
これに対し、図4(b)のステップS24の処理(要求可能状態設定処理)では、図8(b)のステップS60において、要求可能状態設定部50が、ブラウザBに対象ドメイン名のページを表示しているか否かを判断する。ここでの判断が否定された場合には、ステップS64に移行するが、判断が肯定された場合には、ステップS62に移行する。
ステップS62に移行した場合、要求可能状態設定部50は、新たに対象ドメイン名のページを表示する。この場合、要求可能状態設定部50は、たとえばJava(登録商標)Scriptを用いて対象ドメイン名のページを開くことができる。そして、ステップS64に移行すると、要求可能状態設定部50は、対象ドメイン名のページの状態はそのままで、ブラウザAの要素データ送信部36から送信され、ブラウザBの要素データ受信部48で受信したクッキーをブラウザBのクッキー記憶領域(通常処理部42が有しているものとする)に追加または上書きする。この場合、要求可能状態設定部50は、たとえば、対象ドメイン名のページのcookie属性(document.cookie)にクッキーの名前と値を追加する。
なお、上記の処理以外は、CSRF攻撃に対する攻撃模倣テストと同様の処理(図4(a)、図4(b)の処理)を行うことになる。このようにすることで、セッションフィクセーション攻撃に対する攻撃模倣テストを行うことが可能となる。
以上、詳細に説明したように、本実施形態によると、サーバ14への接続が可能な被害者側ブラウザBがサーバ14に対するアクセスを行った際に、被害者側ブラウザBが被害を被る可能性のある状態(要求可能状態)にするための情報である要素データを、サーバ14への接続が可能な加害者側ブラウザAが取得し(ステップS12)、加害者側ブラウザAが取得した要素データを加害者側ブラウザAから被害者側ブラウザBに送信し(ステップS14)、被害者側ブラウザBの状態に要素データを反映させて、被害者側ブラウザBの状態を、サーバ14にアクセスした場合に被害を被る可能性のある状態(要求可能状態)に設定する(ステップS24)。このように、要素データの取得、送受信、要求可能状態への設定を自動化することで、攻撃模倣テスト(ブラックボックステスト)を何度も繰り返すような場合であっても、簡易にテストを行うことが可能となる。
また、本実施形態によると、要素データとしてフォームやクッキーを用いることで、クロスサイトリクエストフォージェリー(CSRF攻撃)や、セッションフィクセーション攻撃に関するテストを簡易に行うことが可能となる。
なお、上記実施形態では、攻撃者側ブラウザAと被害者側ブラウザBとが、同一の装置上に存在しており、各ブラウザ間では、一般的なプロセス間通信の手段を用いて、要素データを送受信する場合について説明した。しかしながら、これに限られるものではなく、要素データの受け渡しをクリップボード経由で行ってもよい。クリップボードとは、情報処理部20のOSやアプリケーションから容易に読み書きできる一時的なデータの仮想的な格納場所であり、一般的に切り取り(カット)、コピー、貼り付け(ペースト)などの機能を実現するために用いられる。この場合、攻撃者側の要素データ送信部36が、要素データ(フォーム情報やクッキー情報)を、クリップボードへ書き込み、被害者側の要素データ受信部48がクリップボードから当該情報を読み出すことで、受け渡しが完了する。なお、クリップボード上に複数のデータを格納して選択的に取り出せるようにしてもよいし、あるいは、クリップボード上で、データの種類(フォーム情報とクッキー情報の区別)をメタデータとして保持するようにしてもよい。
また、要素データの受け渡しをファイル経由で行うこととしてもよい。攻撃者側ブラウザAの要素データ送信部36は、要素データをファイルへ書き出し、被害者側ブラウザBの要素データ受信部48は、そのファイルから要素データを読み出すようにする。この場合、被害者側ブラウザBは、特定のファイルの更新を監視したり、攻撃者側ブラウザAからネットワークなどを介してファイル更新イベント(およびそのファイル名)を受け取ったりしたときを、受信(読み出し)の契機とすることができる。
なお、上記実施形態では、CSRF攻撃に関する攻撃模倣テストを行う場合、被害者側ブラウザBにおいて、受け取ったフォーム情報を含むHTMLページを生成することとしていたが、これに限られるものではない。例えば、当該HTMLページの生成を攻撃者側ブラウザAで行うこととしてもよい。例えば、攻撃者側において上記実施形態の被害者側と同様にHTMLページを生成し、それをファイルに保存する(図9の(1a)参照)。この場合、攻撃者側から被害者側へ渡すデータは、保存したHTMLファイルのURLのみとすることができる(図9の(2)参照)。このようにすることで、被害者側では受け取ったURLへアクセスすることで要求可能状態に設定することが可能である(図9の(3a)参照)。
なお、図9の(1b)、(3b)に示すように、攻撃者側ブラウザAが特定のポート番号で待ち受けて一種のWebサーバとして振る舞うようにしてもよい。この場合、攻撃側ブラウザAにアクセスしてきた被害者側ブラウザBに対して、生成したHTMLページを提供するようにしてもよい。この場合、図9の(2)では、攻撃者側ブラウザAは、待ち受けているポート番号を指すURLを被害者側ブラウザBに送信するのみでよい。
また、図9の(1c)、(3c)に示すように、生成したHTMLページをテスト対象とは別のWebサーバへアップロードすることとしてもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1) サーバへの接続が可能な第1のブラウザが前記サーバに対するアクセスを行った際に当該第1のブラウザが被害を被る可能性のある状態にするための情報である要素データを、前記サーバへの接続が可能な第2のブラウザが取得する取得工程と、前記取得工程で前記第2のブラウザが取得した前記要素データを前記第2のブラウザから前記第1のブラウザに送信する送信工程と、前記送信工程で送信された要素データを前記第1のブラウザで受信する受信工程と、前記第1のブラウザの状態に、前記受信工程で受信された前記要素データを反映させて、当該第1のブラウザの状態を、前記サーバにアクセスした場合に被害を被る可能性のある状態に設定する設定工程と、を含む攻撃模倣テスト方法。
(付記2) 前記要素データは、フォームであり、前記攻撃は、クロスサイトリクエストフォージェリーであることを特徴とする付記1に記載の攻撃模倣テスト方法。
(付記3) 前記要素データは、クッキーであり、前記攻撃は、セッションフィクセーションであることを特徴とする付記1に記載の攻撃模倣テスト方法。
(付記4) 前記送信工程及び前記受信工程では、前記要素データを、IPネットワークを用いた受け渡し、クリップボードを用いた受け渡し、ファイルを用いた受け渡し、のいずれかにより、前記第2のブラウザと前記第1のブラウザとの間の送受信を行うことを特徴とする付記1〜3のいずれか一項に記載の攻撃模倣テスト方法。
(付記5) サーバへの接続が可能な第1のブラウザと、前記第1のブラウザが前記サーバに対するアクセスを行った際に、当該第1のブラウザが被害を被る可能性のある状態にするための情報である要素データを取得する、前記サーバへの接続が可能な第2のブラウザと、を備え、前記第2のブラウザは、取得した前記要素データを前記第1のブラウザに送信する送信部を有し、前記第1のブラウザは、前記要素データを受信する受信部と、当該第1のブラウザの状態に前記受信部で受信した前記要素データを反映させて、前記第1のブラウザの状態を前記サーバにアクセスした場合に被害を被る可能性のある状態に設定する設定部と、を有することを特徴とする攻撃模倣テスト装置。
(付記6) 前記要素データは、フォームであり、前記攻撃は、クロスサイトリクエストフォージェリーであることを特徴とする付記5に記載の攻撃模倣テスト装置。
(付記7) 前記要素データは、クッキーであり、前記攻撃は、セッションフィクセーションであることを特徴とする付記5に記載の攻撃模倣テスト装置。
(付記8) 前記送信部及び前記受信部では、前記要素データを、IPネットワークを用いた受け渡し、クリップボードを用いた受け渡し、ファイルを用いた受け渡し、のいずれかにより、前記第2のブラウザと前記第1のブラウザとの間の送受信を行うことを特徴とする付記5〜7のいずれか一項に記載の攻撃模倣テスト装置。
(付記9) サーバへの接続が可能な第1のブラウザが前記サーバに対するアクセスを行った際に、当該第1のブラウザが被害を被る可能性のある状態にするための情報である要素データを、前記サーバへの接続が可能な第2のブラウザが取得し、前記取得する処理で前記第2のブラウザが取得した前記要素データを前記第2のブラウザから前記第1のブラウザに送信し、前記送信する処理で送信された前記要素データを前記第1のブラウザで受信し、前記第1のブラウザの状態に、前記受信する処理で受信された前記要素データを反映させて、当該第1のブラウザの状態を、前記サーバにアクセスした場合に被害を被る可能性のある状態に設定する処理を、コンピュータに実行させることを特徴とする攻撃模倣テストプログラム。
(付記10) 前記要素データは、フォームであり、前記攻撃は、クロスサイトリクエストフォージェリーであることを特徴とする付記9に記載の攻撃模倣テストプログラム。
(付記11) 前記要素データは、クッキーであり、前記攻撃は、セッションフィクセーションであることを特徴とする付記9に記載の攻撃模倣テストプログラム。
(付記12) 前記送信する処理では、前記要素データを、IPネットワークを用いた受け渡し、クリップボードを用いた受け渡し、ファイルを用いた受け渡し、のいずれかにより、前記第2のブラウザから前記第1のブラウザへ送信することを特徴とする付記9〜11のいずれか一項に記載の攻撃模倣テストプログラム。
10 攻撃模倣テスト装置
12 ネットワーク(IPネットワーク)
14 サーバ
36、46 要素データ送信部(送信部)
38,48 要素データ受信部(受信部)
40,50 要求可能状態設定部(設定部)

Claims (6)

  1. サーバへの接続が可能な第1のブラウザが前記サーバに対するアクセスを行った際に当該第1のブラウザが被害を被る可能性のある状態にするための情報である要素データを、前記サーバへの接続が可能な第2のブラウザが表示中のHTMLページから取得する取得工程と、
    前記取得工程で前記第2のブラウザが取得した前記要素データを、前記第2のブラウザが前記第1のブラウザに送信する送信工程と、
    前記送信工程で送信された要素データを前記第1のブラウザ受信する受信工程と、
    前記第1のブラウザが、前記第1のブラウザの状態に、前記受信工程で受信された前記要素データを反映させて、当該第1のブラウザの状態を、前記サーバにアクセスした場合に被害を被る可能性のある状態に設定する設定工程と、
    を含む攻撃模倣テスト方法。
  2. 前記要素データは、フォームであり、
    前記第1のブラウザが被る被害は、クロスサイトリクエストフォージェリー攻撃による被害であることを特徴とする請求項1に記載の攻撃模倣テスト方法。
  3. 前記要素データは、クッキーであり、
    前記第1のブラウザが被る被害は、セッションフィクセーション攻撃による被害であることを特徴とする請求項1に記載の攻撃模倣テスト方法。
  4. 前記送信工程及び前記受信工程では、前記要素データを、IPネットワークを用いた受け渡し、クリップボードを用いた受け渡し、ファイルを用いた受け渡し、のいずれかにより、前記第2のブラウザと前記第1のブラウザとの間の送受信を行うことを特徴とする請求項1〜3のいずれか一項に記載の攻撃模倣テスト方法。
  5. サーバへの接続が可能な第1のブラウザと、
    前記第1のブラウザが前記サーバに対するアクセスを行った際に、当該第1のブラウザが被害を被る可能性のある状態にするための情報である要素データを表示中のHTMLページから取得する、前記サーバへの接続が可能な第2のブラウザと、を備え、
    前記第2のブラウザは、取得した前記要素データを前記第1のブラウザに送信する送信部を有し、
    前記第1のブラウザは、前記要素データを受信する受信部と、当該第1のブラウザの状態に前記受信部で受信した前記要素データを反映させて、前記第1のブラウザの状態を前記サーバにアクセスした場合に被害を被る可能性のある状態に設定する設定部と、を有することを特徴とする攻撃模倣テスト装置。
  6. サーバへの接続が可能な第1のブラウザが前記サーバに対するアクセスを行った際に、当該第1のブラウザが被害を被る可能性のある状態にするための情報である要素データを、前記サーバへの接続が可能な第2のブラウザが表示中のHTMLページから取得し、
    前記取得する処理で前記第2のブラウザが取得した前記要素データを前記第2のブラウザから前記第1のブラウザに送信し、
    前記送信する処理で送信された前記要素データを前記第1のブラウザで受信し、
    前記第1のブラウザの状態に、前記受信する処理で受信された前記要素データを反映させて、当該第1のブラウザの状態を、前記サーバにアクセスした場合に被害を被る可能性のある状態に設定する処理を、コンピュータに実行させることを特徴とする攻撃模倣テストプログラム。
JP2011003477A 2011-01-11 2011-01-11 攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム Expired - Fee Related JP5640752B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011003477A JP5640752B2 (ja) 2011-01-11 2011-01-11 攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011003477A JP5640752B2 (ja) 2011-01-11 2011-01-11 攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム

Publications (2)

Publication Number Publication Date
JP2012146100A JP2012146100A (ja) 2012-08-02
JP5640752B2 true JP5640752B2 (ja) 2014-12-17

Family

ID=46789606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011003477A Expired - Fee Related JP5640752B2 (ja) 2011-01-11 2011-01-11 攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム

Country Status (1)

Country Link
JP (1) JP5640752B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5326035B1 (ja) * 2012-10-18 2013-10-30 株式会社 ディー・エヌ・エー サーバ装置
JP5662507B2 (ja) * 2013-03-28 2015-01-28 株式会社 ディー・エヌ・エー 認証方法、認証システム、および、サービス提供サーバ
CN112800311A (zh) * 2021-02-05 2021-05-14 厦门市美亚柏科信息股份有限公司 一种浏览器页面数据采集方法、终端设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343626B1 (en) * 2002-11-12 2008-03-11 Microsoft Corporation Automated detection of cross site scripting vulnerabilities
JP5082555B2 (ja) * 2007-04-11 2012-11-28 富士通株式会社 セキュリティ検査用モデル生成装置,セキュリティ検査用モデル検査装置,およびセキュリティ検査用モデル生成プログラム
US20090019525A1 (en) * 2007-07-13 2009-01-15 Dachuan Yu Domain-specific language abstractions for secure server-side scripting
JP5463717B2 (ja) * 2009-04-16 2014-04-09 富士通株式会社 アプリケーションテスト生成プログラム、アプリケーションテスト生成方法及びアプリケーションテスト装置

Also Published As

Publication number Publication date
JP2012146100A (ja) 2012-08-02

Similar Documents

Publication Publication Date Title
US9842093B2 (en) Method and apparatus for intelligent capture of document object model events
US9032085B1 (en) Identifying use of software applications
CN102546576B (zh) 一种网页挂马检测和防护方法、系统及相应代码提取方法
EP3424178B1 (en) Deterministic reproduction of client/server computer state or output sent to one or more client computers
US8898796B2 (en) Managing network data
EP3097509B1 (en) Intercepting and supervising calls to transformed operations and objects
US7343559B1 (en) Computer-readable recorded medium on which image file is recorded, device for producing the recorded medium, medium on which image file creating program is recorded, device for transmitting image file, device for processing image file, and medium on which image file processing program is recorded
Hope et al. Web security testing cookbook: systematic techniques to find problems fast
US8572691B2 (en) Selecting a web service from a service registry based on audit and compliance qualities
JP2009053740A (ja) 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム
CN107016074A (zh) 一种网页加载方法及装置
US20200210584A1 (en) Deterministic Reproduction of Client/Server Computer State or Output Sent to One or More Client Computers
JP5549281B2 (ja) 不正侵入検知・防御システム、クライアントコンピュータ、不正侵入検知・防御装置、方法およびプログラム
WO2015029195A1 (ja) 模擬装置、情報生成装置、模擬方法及び模擬プログラム
JP5709448B2 (ja) アクセス解析装置及びアクセス解析方法及びアクセス解析プログラム
EP1696339A2 (en) System and method for testing data format using targeted variant input
JP5640752B2 (ja) 攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム
US8316103B2 (en) Method for acquiring long data by GET method
WO2019026172A1 (ja) セキュリティ診断装置およびセキュリティ診断方法
US8127314B2 (en) Method for using information in another domain, program for using information in another domain, and information transfer program
KR100987768B1 (ko) 대용량 쿠키 처리 방법 및 장치
CN113901482A (zh) 漏洞检测方法及装置
Rehim Effective python penetration testing
WO2021229696A1 (ja) 攻撃再現支援装置、攻撃再現支援方法、及びコンピュータ読み取り可能な記録媒体
WO2019220480A1 (ja) 監視装置、監視方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140908

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: 20140930

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141013

R150 Certificate of patent or registration of utility model

Ref document number: 5640752

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees