JP2010079431A - 情報漏洩防止プログラム - Google Patents
情報漏洩防止プログラム Download PDFInfo
- Publication number
- JP2010079431A JP2010079431A JP2008244599A JP2008244599A JP2010079431A JP 2010079431 A JP2010079431 A JP 2010079431A JP 2008244599 A JP2008244599 A JP 2008244599A JP 2008244599 A JP2008244599 A JP 2008244599A JP 2010079431 A JP2010079431 A JP 2010079431A
- Authority
- JP
- Japan
- Prior art keywords
- server
- web
- client
- domain
- communication
- 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.)
- Pending
Links
Images
Abstract
【課題】 Webクライアントにおけるクロス・ドメイン・アクセスによりWebサーバから入手した情報が他のドメインに漏洩してしまうのを防止する。
【解決手段】 WebクライアントがWebサーバから入手した情報をその入手元ドメインと組にして記憶しておき、WebクライアントがWebサーバへアクセス要求する際にはそのアクセス要求メッセージにアクセス先ドメインとは異なるWebサーバから入手した情報が含まれているか調べ、含む場合にはクライアントから通信要求を遮断することを特徴とする。
【選択図】 図2
【解決手段】 WebクライアントがWebサーバから入手した情報をその入手元ドメインと組にして記憶しておき、WebクライアントがWebサーバへアクセス要求する際にはそのアクセス要求メッセージにアクセス先ドメインとは異なるWebサーバから入手した情報が含まれているか調べ、含む場合にはクライアントから通信要求を遮断することを特徴とする。
【選択図】 図2
Description
本発明は、Webサーバと通信するWebクライアントにおいて情報漏洩を検知または防止する情報漏洩防止プログラムに関するものである。
Ajax(Asynchronous JavaScript + XML)と呼ばれる技術を用いて、複数のWebサーバからダウンロードしたコンテンツやクライアント・サイド・スクリプトをWebクライアント上で連係動作させ表示させることが行われるようになってきた。
例えば、あるWebサーバのページに地図提供WebサーバのWebサービスAPIを呼び出すクライアント・サイド・スクリプトが埋め込まれているとする。ユーザ等の操作によりWebクライアントが前者のWebサーバのページにアクセスすると、Webクライアントがそのページに含まれるクライアント・サイド・スクリプトを実行し、地図提供WebサーバのWebサービスAPIを呼び出して地図をダウンロードしてWebクライアント画面内に同時に表示することができる。
なお、上記のような複数Webサーバへのアクセスのうち、特に異なるWebサイトをまたいでアクセスするものをクロス・ドメイン・アクセスと呼ぶ。
以上のようにAjax技術を用いると複数Webサーバの連携動作を容易に達成できるが、情報漏洩等のセキュリティ上の問題も起き得る。例えばWebサイトAのWebページがWebサイトBにアクセスするクライアント・サイド・スクリプトを含む場合、WebクライアントがWebサイトBから読み込んだコンテンツがWebクライアントのユーザの同意無しにWebサイトAに送られる危険がある。
特に、WebサイトBが個人情報等の機密情報を提供する場合、例えユーザへ認証を要求する場合でも既に認証済みの状態であれば、ユーザに気付かれずに機密情報がWebサイトAに転送される恐れがある。このようなクロス・ドメイン・アクセスによるセキュリティ上の問題を予め防止するためにSame−Originポリシーが定められており、Webクライアントはクロス・ドメイン・アクセス(上記の例ではWebサイトBへのアクセス)できない。
例えば、あるWebサーバのページに地図提供WebサーバのWebサービスAPIを呼び出すクライアント・サイド・スクリプトが埋め込まれているとする。ユーザ等の操作によりWebクライアントが前者のWebサーバのページにアクセスすると、Webクライアントがそのページに含まれるクライアント・サイド・スクリプトを実行し、地図提供WebサーバのWebサービスAPIを呼び出して地図をダウンロードしてWebクライアント画面内に同時に表示することができる。
なお、上記のような複数Webサーバへのアクセスのうち、特に異なるWebサイトをまたいでアクセスするものをクロス・ドメイン・アクセスと呼ぶ。
以上のようにAjax技術を用いると複数Webサーバの連携動作を容易に達成できるが、情報漏洩等のセキュリティ上の問題も起き得る。例えばWebサイトAのWebページがWebサイトBにアクセスするクライアント・サイド・スクリプトを含む場合、WebクライアントがWebサイトBから読み込んだコンテンツがWebクライアントのユーザの同意無しにWebサイトAに送られる危険がある。
特に、WebサイトBが個人情報等の機密情報を提供する場合、例えユーザへ認証を要求する場合でも既に認証済みの状態であれば、ユーザに気付かれずに機密情報がWebサイトAに転送される恐れがある。このようなクロス・ドメイン・アクセスによるセキュリティ上の問題を予め防止するためにSame−Originポリシーが定められており、Webクライアントはクロス・ドメイン・アクセス(上記の例ではWebサイトBへのアクセス)できない。
しかし、Same−Originポリシーはユーザの利便性を損なうため、迂回技術が幾つか開発されている。これら迂回技術の中には、Webクライアントからは依然としてクロス・ドメイン・アクセスとなるSCRIPTタグ(補足:JSONPによるもの)またはFlash(商標、crossdomain.xml指定によるもの)によるものが存在する。
なお、Ajaxによるクロス・ドメイン・アクセス、Same−Originポリシーとその迂回技術については下記の非特許文献1〜3に詳しい。
なお、Ajaxによるクロス・ドメイン・アクセス、Same−Originポリシーとその迂回技術については下記の非特許文献1〜3に詳しい。
福森大喜、"ここが危ない!Web2.0のセキュリティ 第2回 Same−Originポリシーと迂回技術"、技術評論社、2007年7月11日、url=http://gihyo.jp/dev/serial/01/web20sec/0002
福森大喜、"ここが危ない!Web2.0のセキュリティ 第3回 JSONPでのクロスドメインアクセス"、技術評論社、2007年7月25日、url=http://gihyo.jp/dev/serial/01/web20sec/0003
福森大喜、"ここが危ない!Web2.0のセキュリティ 第4回 Flash,JSONでのクロスドメインアクセス"、技術評論社、2007年8月8日、url=http://gihyo.jp/dev/serial/01/web20sec/0004
上記Same−Originポリシーの迂回技術により、クロス・ドメイン・アクセスによる情報漏洩の危険性が復活した。サーバ側での対策方法については非特許文献2,3に詳しいが、Webクライアントを利用するユーザはこれら対策が適切に実施されているか確認する方法がない。
本発明は上記事情を鑑みて行われたものであり、Webクライアントにおいてクロス・ドメイン・アクセスにより生じる情報漏洩を検知し、さらに防止するプログラムを提供することを目的とする。
前記目的を達成するため、請求項1記載のプログラムはサーバとクライアントとの間の通信データを監視し、クライアントからの情報漏洩を防止するプログラムであって、
第一のサーバからクライアントへの通信応答データを受け取るステップと、
第一のサーバのドメインを取得するステップと、
第一のサーバのドメインと通信応答データを組にして記憶するステップと、
クライアントから第二のサーバへの通信要求データを受け取るステップと、
第二のサーバのドメインを取得するステップと、
通信要求データに第一のサーバのドメインから受領した通信応答データの一部を含むか比較するステップと、
含む場合にはクライアントから第二のサーバへの通信要求を遮断するステップと、
をコンピュータに実行させることを特徴とする。
また、前記目的を達成するため、請求項2記載のプログラムは、前記第一のサーバとクライアントとの通信プロトコル及びクライアントと第二のサーバとの通信プロトコルがHTTPまたはHTTPSであり、第一のサーバのドメインと所与のMIMEタイプである通信応答データを組にして記憶するステップとを有することを特徴とする。
また、前記目的を達成するため、請求項3記載のプログラムは、第一のサーバとクライアントとの通信プロトコル及びクライアントと第二のサーバとの通信プロトコルがHTTPまたはHTTPSであり、第一のサーバのドメインと通信応答データに含まれるクッキーを組にして記憶するステップとを有することを特徴とする。
第一のサーバからクライアントへの通信応答データを受け取るステップと、
第一のサーバのドメインを取得するステップと、
第一のサーバのドメインと通信応答データを組にして記憶するステップと、
クライアントから第二のサーバへの通信要求データを受け取るステップと、
第二のサーバのドメインを取得するステップと、
通信要求データに第一のサーバのドメインから受領した通信応答データの一部を含むか比較するステップと、
含む場合にはクライアントから第二のサーバへの通信要求を遮断するステップと、
をコンピュータに実行させることを特徴とする。
また、前記目的を達成するため、請求項2記載のプログラムは、前記第一のサーバとクライアントとの通信プロトコル及びクライアントと第二のサーバとの通信プロトコルがHTTPまたはHTTPSであり、第一のサーバのドメインと所与のMIMEタイプである通信応答データを組にして記憶するステップとを有することを特徴とする。
また、前記目的を達成するため、請求項3記載のプログラムは、第一のサーバとクライアントとの通信プロトコル及びクライアントと第二のサーバとの通信プロトコルがHTTPまたはHTTPSであり、第一のサーバのドメインと通信応答データに含まれるクッキーを組にして記憶するステップとを有することを特徴とする。
本発明によれば、Same−Originポリシーの迂回技術で引き起こされるクロス・ドメイン・アクセスで情報が漏洩することを検知し、防止することが可能となる。
さらに、記憶する通信応答データをそのMIMEタイプで制限可能になる。従って、画像ファイル等の大規模データを除外してテキストデータ等の小規模データだけを記憶することになり、データの記憶に必要な記録領域を小さくできる。
さらに、セッションIDの漏洩を防止し、セッションハイジャックを防止できる。
さらに、記憶する通信応答データをそのMIMEタイプで制限可能になる。従って、画像ファイル等の大規模データを除外してテキストデータ等の小規模データだけを記憶することになり、データの記憶に必要な記録領域を小さくできる。
さらに、セッションIDの漏洩を防止し、セッションハイジャックを防止できる。
以下、図面を用いて本発明の実施形態を説明する。
図1は本発明の第一の実施形態におけるネットワーク構成の概要図である。
図1において、インターネット104に接続して相互に通信可能なWebサーバA101、WebサーバB102、Webクライアント103は、CPU、ROM、RAM、ハードディスクドライブ等の二次記憶装置、ネットワークと物理的接続するネットワーク・インタフェース・カード、キーボードやマウス等の入力装置、ディスプレイ等の出力装置とこれらを相互接続してデータを相互にやり取りするバス等の物理コンポーネントから構成されるコンピュータである。
ROMにはBIOSプログラムと呼ばれる前記入出力装置を制御するための基本的なソフトウェアが格納されている。二次記憶装置には、コンピュータのハードウェアの細かな仕様の違いを吸収し、入出力装置の操作やROM、RAM、二次記憶装置の管理機能、ネットワーク・インタフェース・カードを利用して通信を行う機能などを抽象化して提供するソフトウェアであるOSや、OSが提供する抽象機能を利用してある目的を持った機能を提供するアプリケーションプログラムが格納されている。BIOSプログラムや、二次記憶装置から読み出されてRAM上に一時的に置かれるOSやアプリケーションプログラムはCPUにより実行される。
図1は本発明の第一の実施形態におけるネットワーク構成の概要図である。
図1において、インターネット104に接続して相互に通信可能なWebサーバA101、WebサーバB102、Webクライアント103は、CPU、ROM、RAM、ハードディスクドライブ等の二次記憶装置、ネットワークと物理的接続するネットワーク・インタフェース・カード、キーボードやマウス等の入力装置、ディスプレイ等の出力装置とこれらを相互接続してデータを相互にやり取りするバス等の物理コンポーネントから構成されるコンピュータである。
ROMにはBIOSプログラムと呼ばれる前記入出力装置を制御するための基本的なソフトウェアが格納されている。二次記憶装置には、コンピュータのハードウェアの細かな仕様の違いを吸収し、入出力装置の操作やROM、RAM、二次記憶装置の管理機能、ネットワーク・インタフェース・カードを利用して通信を行う機能などを抽象化して提供するソフトウェアであるOSや、OSが提供する抽象機能を利用してある目的を持った機能を提供するアプリケーションプログラムが格納されている。BIOSプログラムや、二次記憶装置から読み出されてRAM上に一時的に置かれるOSやアプリケーションプログラムはCPUにより実行される。
WebサーバA101、WebサーバB102、Webクライアント103は、所定の目的を達するために作成されたBIOSプログラム、OS、アプリケーションプログラム等のソフトウェアを実行する。
WebサーバA101、WebサーバB102上では、IETF(Internet Engineering Task Force)が規格化したHTTP(Hyper Text Transfer Protocol)またはHTTPS(HTTP over SSL)に準拠して通信を行うアプリケーションプログラムであるWebサーバソフトウェアが稼動するように構成されているものとする。これらWebサーバソフトウェアはWebクライアント103からの接続要求に対して、W3C(World Wide Web Consortium)が規格化したHTML(Hyper Text Markup Language)に準拠して記述されたHTML文書等を返す。
WebサーバA101、WebサーバB102上では、IETF(Internet Engineering Task Force)が規格化したHTTP(Hyper Text Transfer Protocol)またはHTTPS(HTTP over SSL)に準拠して通信を行うアプリケーションプログラムであるWebサーバソフトウェアが稼動するように構成されているものとする。これらWebサーバソフトウェアはWebクライアント103からの接続要求に対して、W3C(World Wide Web Consortium)が規格化したHTML(Hyper Text Markup Language)に準拠して記述されたHTML文書等を返す。
WebサーバA101上で稼動するWebサーバソフトウェアは、所定の接続要求に対して所定のHTML文書を返し、また別の所定の接続要求に対して受信データを二次記憶装置に保存し、その結果を返すように構成されているものとする。
また、WebサーバB102上で稼動するWebサーバソフトウェアはWebメール機能を提供しており、所定の接続要求に対しては利用者が登録した氏名とメールアドレスの組からなるアドレス帳を返すように構成されている。
WebサーバA101とWebサーバB102は異なるドメインで動作しているものとする。
Webクライアント103上では、HTTPに準拠した接続要求を行い、その応答に含まれるHTML文書等の通信データを解析してディスプレイに表示するWebクライアントソフトウェアと、本発明のWeb漏洩防止プログラムが稼動する。
Webクライアントソフトウェア及びWeb漏洩防止プログラムの詳細は図2以降の説明とともに示す。
なお、本発明の第一の実施形態におけるOSとして、Windows(商標)やLinux(商標)を例示可能であるが、これらに限るものではない。同様にWebサーバソフトウェアとして、Apache (商標)HTTP ServerやCosminexus(商標)を例示可能であるが、これらに限るものではない。さらにWebクライアントソフトウェアとして、Internet Explorer(商標)やFirefox(商標)を例示可能であるが、これらに限るものではない。
また、WebサーバB102上で稼動するWebサーバソフトウェアはWebメール機能を提供しており、所定の接続要求に対しては利用者が登録した氏名とメールアドレスの組からなるアドレス帳を返すように構成されている。
WebサーバA101とWebサーバB102は異なるドメインで動作しているものとする。
Webクライアント103上では、HTTPに準拠した接続要求を行い、その応答に含まれるHTML文書等の通信データを解析してディスプレイに表示するWebクライアントソフトウェアと、本発明のWeb漏洩防止プログラムが稼動する。
Webクライアントソフトウェア及びWeb漏洩防止プログラムの詳細は図2以降の説明とともに示す。
なお、本発明の第一の実施形態におけるOSとして、Windows(商標)やLinux(商標)を例示可能であるが、これらに限るものではない。同様にWebサーバソフトウェアとして、Apache (商標)HTTP ServerやCosminexus(商標)を例示可能であるが、これらに限るものではない。さらにWebクライアントソフトウェアとして、Internet Explorer(商標)やFirefox(商標)を例示可能であるが、これらに限るものではない。
図2は、Webクライアント103上で動作するWebクライアントソフトウェア及びWeb漏洩防止プログラムの概要である。
図2内の各箱はソフトウェアやプログラムの機能ブロックを表し、矢印は機能ブロック間のデータや制御の流れを表す。
201〜204はWebクライアントソフトウェアを構成する主要な機能ブロックである。
通信インタフェース201は、ブラウザエンジン202からの指示に基づき、OSから提供される通信機能を用いて通信プロトコルHTTPやHTTPSに準拠したデータ通信をWebサーバA101、WebサーバB102との間で行う。
ブラウザエンジン202は、Webクライアントソフトウェアの中核機能であり、(1)通信インタフェース201受信データを解析して、その送信元Webサーバのドメインや受信データのMIMEタイプを取得し、HTML文書等を抽出する機能、(2)Webクライアント103が備える出力装置へ表示するためにHTML文書等を出力イメージに変換してユーザインタフェース203に渡す機能、(3)Webクライアント103が備える入力装置からユーザインタフェース203に与えられた指示を受け取り、HTML文書等に指定されている処理(例えばハイパーリンクで指定されたリソースを取得要求する通信データの発行)に変換する機能、(4)HTML文書等に含まれるクライアント・サイド・スクリプト(以下、スクリプトと略す)を切り出してスクリプト実行エンジン204に渡し、その実行結果を受け取る機能、(5)Web漏洩防止プログラム205等、Webクライアントソフトウェア外部のプログラムと連係動作するための機能、などを備える。
図2内の各箱はソフトウェアやプログラムの機能ブロックを表し、矢印は機能ブロック間のデータや制御の流れを表す。
201〜204はWebクライアントソフトウェアを構成する主要な機能ブロックである。
通信インタフェース201は、ブラウザエンジン202からの指示に基づき、OSから提供される通信機能を用いて通信プロトコルHTTPやHTTPSに準拠したデータ通信をWebサーバA101、WebサーバB102との間で行う。
ブラウザエンジン202は、Webクライアントソフトウェアの中核機能であり、(1)通信インタフェース201受信データを解析して、その送信元Webサーバのドメインや受信データのMIMEタイプを取得し、HTML文書等を抽出する機能、(2)Webクライアント103が備える出力装置へ表示するためにHTML文書等を出力イメージに変換してユーザインタフェース203に渡す機能、(3)Webクライアント103が備える入力装置からユーザインタフェース203に与えられた指示を受け取り、HTML文書等に指定されている処理(例えばハイパーリンクで指定されたリソースを取得要求する通信データの発行)に変換する機能、(4)HTML文書等に含まれるクライアント・サイド・スクリプト(以下、スクリプトと略す)を切り出してスクリプト実行エンジン204に渡し、その実行結果を受け取る機能、(5)Web漏洩防止プログラム205等、Webクライアントソフトウェア外部のプログラムと連係動作するための機能、などを備える。
ユーザインタフェース203は、ブラウザエンジン202から提供された表示イメージとWebクライアントソフトウェアに指示を与えるためのメニューやアイコンをディスプレイ等に表示し、Webクライアントソフトウェアの利用者がマウスやキーボード等の入力装置を用いて与えた指示をブラウザエンジン202に渡す。
スクリプト実行エンジン204は、ブラウザエンジン202から渡されたスクリプトを実行し、その結果を返す。
なお、以降の説明ではスクリプトの例としてJavaScript(商標)を用いるが、これに限定するものではない。
スクリプト実行エンジン204は、ブラウザエンジン202から渡されたスクリプトを実行し、その結果を返す。
なお、以降の説明ではスクリプトの例としてJavaScript(商標)を用いるが、これに限定するものではない。
Web漏洩防止プログラム205は、クロス・ドメイン・アクセスによるWebコンテンツの漏洩を防止するため、ドメイン取得部206、MIMEタイプ取得部207、受信内容記憶部208、送信内容比較部209から構成される。これらが提供する機能については図3の処理手順を示しながら説明する。
なお、Web漏洩防止プログラム205は、ブラウザエンジン202が通信インタフェース201に対してURLを指定してHTML文書等のリソースのダウンロード指示する直前に呼び出され、ダウンロード実行可否を含む処理結果を通知するとブラウザエンジン202がリソースダウンロード指示を実行するように構成されているものとする。
さらにWeb漏洩防止プログラム205は、ブラウザエンジン202が通信インタフェース201からダウンロードしたリソースを受領直後に呼び出され、処理終了を通知するとブラウザエンジン202がリソースの処理を開始するように構成されているものとする。
なお、Web漏洩防止プログラム205は、ブラウザエンジン202が通信インタフェース201に対してURLを指定してHTML文書等のリソースのダウンロード指示する直前に呼び出され、ダウンロード実行可否を含む処理結果を通知するとブラウザエンジン202がリソースダウンロード指示を実行するように構成されているものとする。
さらにWeb漏洩防止プログラム205は、ブラウザエンジン202が通信インタフェース201からダウンロードしたリソースを受領直後に呼び出され、処理終了を通知するとブラウザエンジン202がリソースの処理を開始するように構成されているものとする。
図3は、本発明の第一の実施形態におけるWeb漏洩防止プログラム205の処理手順を示すフローチャートである。
本処理手順は、ブラウザエンジン202がHTML文書やその文書内でダウンロード指定された画像ファイルやスクリプトファイル等の外部リソースファイルのダウンロードを通信インタフェース201に指示する直前にWeb漏洩防止プログラム205を呼び出すことで始まる。
ここでは、Webクライアントソフトウェアの利用者がWebクライアント103の備える入力装置を操作し、ユーザインタフェース203を介してブラウザエンジン202に対し、WebサーバA101において公開されているHTML文書のURL“http://www.attacker_site.com/index.html”を指定してダウンロード要求したことで本手順が始まったものとする。
まず、ドメイン取得部206はブラウザエンジン202に対してダウンロードしようとするリソースのドメイン“attacker_site.com”を取得する(ステップ301)。
次に、送信内容比較部209はブラウザエンジン202からダウンロード要求メッセージを取得し、その中に他ドメインからダウンロードしたリソースの全部または一部を含んでいるか調べる(ステップ302)。これまでにダウンロードしたリソースはそのダウンロード元ドメインと組にして、Webクライアント103のRAM上に構成された受信内容記憶部208にWebクライアントソフトウェアが終了時まで保存されている。
ここでは受信内容記憶部には何も保存されていないものとする。従って、送信内容比較部209はダウンロード実行許可を含む処理結果をブラウザエンジン202に返してステップ303に進む。
本処理手順は、ブラウザエンジン202がHTML文書やその文書内でダウンロード指定された画像ファイルやスクリプトファイル等の外部リソースファイルのダウンロードを通信インタフェース201に指示する直前にWeb漏洩防止プログラム205を呼び出すことで始まる。
ここでは、Webクライアントソフトウェアの利用者がWebクライアント103の備える入力装置を操作し、ユーザインタフェース203を介してブラウザエンジン202に対し、WebサーバA101において公開されているHTML文書のURL“http://www.attacker_site.com/index.html”を指定してダウンロード要求したことで本手順が始まったものとする。
まず、ドメイン取得部206はブラウザエンジン202に対してダウンロードしようとするリソースのドメイン“attacker_site.com”を取得する(ステップ301)。
次に、送信内容比較部209はブラウザエンジン202からダウンロード要求メッセージを取得し、その中に他ドメインからダウンロードしたリソースの全部または一部を含んでいるか調べる(ステップ302)。これまでにダウンロードしたリソースはそのダウンロード元ドメインと組にして、Webクライアント103のRAM上に構成された受信内容記憶部208にWebクライアントソフトウェアが終了時まで保存されている。
ここでは受信内容記憶部には何も保存されていないものとする。従って、送信内容比較部209はダウンロード実行許可を含む処理結果をブラウザエンジン202に返してステップ303に進む。
Web漏洩防止プログラム205は、ブラウザエンジン202がリソースのダウンロードを完了して通知してくるのを待つ(ステップ303)。
次に、Web漏洩防止プログラム205はブラウザエンジン202から呼び出されると、MIMEタイプ取得部207において、ダウンロードしたリソースのMIMEタイプを取得し、スクリプトのMIMEタイプであるか調べる。
スクリプトのMIMEタイプには、“text/javascript”、“application/x-javascript”、“application/json”などあるが、これらに限るものではない(ステップ304)。
ブラウザエンジン202は、図4に示すHTTP応答を受け取ったとすると、ダウンロードしたリソースのMIMEタイプは“text/html”であるから、Web漏洩防止プログラム205は通信許可を返し(ステップ306)、本手順をひとまず終了する。
ここでブラウザエンジン202によりダウンロードされたHTML文書は、図5に示すスクリプトを含み、更にHTML文書のダウンロード完了直後に同スクリプト内のexecOnLoad関数を実行するように構成されているものとする。
ブラウザエンジン202は、同スクリプトをスクリプトエンジン204に渡して実行させる。
次に、Web漏洩防止プログラム205はブラウザエンジン202から呼び出されると、MIMEタイプ取得部207において、ダウンロードしたリソースのMIMEタイプを取得し、スクリプトのMIMEタイプであるか調べる。
スクリプトのMIMEタイプには、“text/javascript”、“application/x-javascript”、“application/json”などあるが、これらに限るものではない(ステップ304)。
ブラウザエンジン202は、図4に示すHTTP応答を受け取ったとすると、ダウンロードしたリソースのMIMEタイプは“text/html”であるから、Web漏洩防止プログラム205は通信許可を返し(ステップ306)、本手順をひとまず終了する。
ここでブラウザエンジン202によりダウンロードされたHTML文書は、図5に示すスクリプトを含み、更にHTML文書のダウンロード完了直後に同スクリプト内のexecOnLoad関数を実行するように構成されているものとする。
ブラウザエンジン202は、同スクリプトをスクリプトエンジン204に渡して実行させる。
すると、図5の(1)に指示されたURL「http://webmail.example.com/contact_list.js」のリソース取得要求がブラウザエンジン202に渡され(図5(2))、ブラウザエンジン202はWeb漏洩防止プログラム205に図3の処理手順を再び行わせる。
ドメイン取得部206はリソースダウンロード要求先URLのドメイン“example.com”を取得し(ステップ301)、送信内容比較部209がそのダウンロード要求メッセージ内に受信内容記憶部208に保存しておいたダウンロードコンテンツが含まれているか調べる(ステップ302)。この時点でも受信内容記憶部208には何も保存されておらず、ステップ303、304と進む。
ここで、新たにURLで指定されたリソースはWebサーバB102から提供されたアドレス帳であり、IETFにおいてRFC4627で規定されたJSON記法に従い記述されているものとする(図6)。
ドメイン取得部206はリソースダウンロード要求先URLのドメイン“example.com”を取得し(ステップ301)、送信内容比較部209がそのダウンロード要求メッセージ内に受信内容記憶部208に保存しておいたダウンロードコンテンツが含まれているか調べる(ステップ302)。この時点でも受信内容記憶部208には何も保存されておらず、ステップ303、304と進む。
ここで、新たにURLで指定されたリソースはWebサーバB102から提供されたアドレス帳であり、IETFにおいてRFC4627で規定されたJSON記法に従い記述されているものとする(図6)。
図6において、2、3行目のnameキーとコロン(:)に続く文字列が氏名であり、emailキーとコロン(:)に続く文字列がその人の電子メールアドレスである。
MIMEタイプ取得部207は、ダウンロードされたリソースのMIMEタイプをHTTP応答(図7)から取得すると、“application/x-javascript”であるのでスクリプトと判断する(ステップ304)。すると、図6に示すリソースを受信内容記憶部208にそのダウンロード元ドメイン“example.com”と組にして保存する(ステップ305)。保存後の受信内容記憶部208を図8に示す。ここでは便宜上、表形式で示しているが、実際の保存形式はこれに限らない。
以上で、Web漏洩防止プログラムは通信許可をブラウザエンジン202に通知し(ステップ306)、2回目の処理を終了する。
MIMEタイプ取得部207は、ダウンロードされたリソースのMIMEタイプをHTTP応答(図7)から取得すると、“application/x-javascript”であるのでスクリプトと判断する(ステップ304)。すると、図6に示すリソースを受信内容記憶部208にそのダウンロード元ドメイン“example.com”と組にして保存する(ステップ305)。保存後の受信内容記憶部208を図8に示す。ここでは便宜上、表形式で示しているが、実際の保存形式はこれに限らない。
以上で、Web漏洩防止プログラムは通信許可をブラウザエンジン202に通知し(ステップ306)、2回目の処理を終了する。
ここでブラウザエンジン202はダウンロード終了をスクリプトエンジン204に通知すると、スクリプトエンジン204は図5に示すスクリプトの実行を続け、その(3)に示すURL“http://www.attacker_site.com/entry”へのリソース取得要求がブラウザエンジン202に再度渡される。ここでリソース取得要求には先のリソース取得要求で得たHTTP応答(図7)をPOSTするよう指示されている。従って、このリソース要求メッセージは図9に示すものとなる。
続いてブラウザエンジン202はWeb漏洩防止プログラム205に図3の処理手順をもう1回行わせる。
ドメイン取得部206は、リソース取得要求先のドメイン“attacker_site.com”を取得し(ステップ301)、送信内容比較部209はリソース要求メッセージ(図9)と受信内容記憶部208に保存された内容を比較し、同メッセージが他ドメインから入手したコンテンツを含むか調べる(ステップ302)。
ここではドメイン“attacker_site.com”に送られるリソース要求メッセージに、ドメイン“example.com”から入手したコンテンツと同じ内容が含まれているため、通信不可を返し(ステップ307)、本手順を終了する。以上のようにしてWeb漏洩防止プログラムはクロス・ドメイン・アクセスによる情報漏洩を防いでいる。
続いてブラウザエンジン202はWeb漏洩防止プログラム205に図3の処理手順をもう1回行わせる。
ドメイン取得部206は、リソース取得要求先のドメイン“attacker_site.com”を取得し(ステップ301)、送信内容比較部209はリソース要求メッセージ(図9)と受信内容記憶部208に保存された内容を比較し、同メッセージが他ドメインから入手したコンテンツを含むか調べる(ステップ302)。
ここではドメイン“attacker_site.com”に送られるリソース要求メッセージに、ドメイン“example.com”から入手したコンテンツと同じ内容が含まれているため、通信不可を返し(ステップ307)、本手順を終了する。以上のようにしてWeb漏洩防止プログラムはクロス・ドメイン・アクセスによる情報漏洩を防いでいる。
ところで、上記第一の実施形態におけるWeb漏洩防止プログラム205は、ステップ304、305において、ブラウザエンジン202によりダウンロードされたリソースのMIMEタイプがスクリプトの場合のみ受信内容記憶部208に保存し、その漏洩の監視を行うように構成されていた。しかし、MIMEタイプを限定せずに受信内容記憶部208に保存して漏洩を監視するように構成してもよい。これにより、あるドメインからダウンロードした全ての情報について、他のドメインへの漏洩を完全に防ぐことができる。
また、上記第一の実施形態におけるWeb漏洩防止プログラム205は、ステップ304、305においてブラウザエンジン202が受領したHTTP応答ヘッダのSet-Cookieフィールドに設定されたクッキーの値をドメインと組にして受信内容記憶部208に保存し、その漏洩を監視するように構成してもよい。
これにより、あるドメインに属するWebサーバソフトウェアがWebクライアントソフトウェアの利用者をその認証後に一意に特定するために発行するセッションIDの漏洩を防ぐことができる。
これにより、あるドメインに属するWebサーバソフトウェアがWebクライアントソフトウェアの利用者をその認証後に一意に特定するために発行するセッションIDの漏洩を防ぐことができる。
さらに、上記第一の実施形態におけるWeb漏洩防止プログラム205は、WebクライアントソフトウェアがHTTPまたはHTTPSでリソース要求メッセージを送信するものとして説明したが、FTPなどWebクライアントソフトウェアが処理可能なプロトコルであれば本発明は他のプロトコルにも適用可能である。
101…WebサーバA、
102…WebサーバB、
103…Webクライアント、
104…インターネット、
201…通信インタフェース、
202…ブラウザエンジン、
203…ユーザインタフェース、
204…スクリプト実行エンジン、
205…Web漏洩防止プログラム、
206…ドメイン取得部、
207…MIMEタイプ取得部、
208…受信内容記憶部、
209…送信内容比較部。
102…WebサーバB、
103…Webクライアント、
104…インターネット、
201…通信インタフェース、
202…ブラウザエンジン、
203…ユーザインタフェース、
204…スクリプト実行エンジン、
205…Web漏洩防止プログラム、
206…ドメイン取得部、
207…MIMEタイプ取得部、
208…受信内容記憶部、
209…送信内容比較部。
Claims (3)
- サーバとクライアントとの間の通信データをクライアントにおいて監視し、情報漏洩を防止するプログラムであって、
第一のサーバからクライアントへの通信応答データを受け取るステップと、
第一のサーバのドメインを取得するステップと、
第一のサーバのドメインと通信応答データを組にして記憶するステップと、
クライアントから第二のサーバへの通信要求データを受け取るステップと、
第二のサーバのドメインを取得するステップと、
通信要求データに第一のサーバのドメインから受領した通信応答データの一部を含むか比較するステップと、
含む場合にはクライアントから第二のサーバへの通信要求を遮断するステップと、
をコンピュータに実行させることを特徴とする情報漏洩防止プログラム。 - 前記第一のサーバとクライアントとの通信プロトコル及びクライアントと第二のサーバとの通信プロトコルがHTTPまたはHTTPSであり、第一のサーバのドメインと所与のMIMEタイプである通信応答データを組にして記憶するステップと、
を有することを特徴とする請求項1に記載の情報漏洩防止プログラム。 - 前記第一のサーバとクライアントとの通信プロトコル及びクライアントと第二のサーバとの通信プロトコルがHTTPまたはHTTPSであり、第一のサーバのドメインと通信応答データに含まれるクッキーを組にして記憶するステップと、
を有することを特徴とする請求項1に記載の情報漏洩防止プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008244599A JP2010079431A (ja) | 2008-09-24 | 2008-09-24 | 情報漏洩防止プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008244599A JP2010079431A (ja) | 2008-09-24 | 2008-09-24 | 情報漏洩防止プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010079431A true JP2010079431A (ja) | 2010-04-08 |
Family
ID=42209833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008244599A Pending JP2010079431A (ja) | 2008-09-24 | 2008-09-24 | 情報漏洩防止プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010079431A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011257810A (ja) * | 2010-06-04 | 2011-12-22 | Fujitsu Ltd | 中継サーバ装置、クッキー制御方法およびクッキー制御プログラム |
JP2012048357A (ja) * | 2010-08-25 | 2012-03-08 | Nec Corp | 通信制御機能を有する通信装置、方法、プログラム |
WO2012111144A1 (ja) * | 2011-02-18 | 2012-08-23 | 株式会社日立製作所 | 不正操作検知方法、不正操作検知システム及び計算機読み取り可能な非一時的記憶媒体 |
-
2008
- 2008-09-24 JP JP2008244599A patent/JP2010079431A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011257810A (ja) * | 2010-06-04 | 2011-12-22 | Fujitsu Ltd | 中継サーバ装置、クッキー制御方法およびクッキー制御プログラム |
JP2012048357A (ja) * | 2010-08-25 | 2012-03-08 | Nec Corp | 通信制御機能を有する通信装置、方法、プログラム |
WO2012111144A1 (ja) * | 2011-02-18 | 2012-08-23 | 株式会社日立製作所 | 不正操作検知方法、不正操作検知システム及び計算機読み取り可能な非一時的記憶媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE45139E1 (en) | Method and apparatus for cross-domain communication using designated response processing page | |
US8572691B2 (en) | Selecting a web service from a service registry based on audit and compliance qualities | |
CN102473171B (zh) | 将有关本地机器的信息传达给浏览器应用 | |
CN111400722B (zh) | 扫描小程序的方法、装置、计算机设备和存储介质 | |
US20140280883A1 (en) | Secure URL update for HTTP redirects | |
US9712523B2 (en) | Secure transfer of web application client persistent state information into a new domain | |
CN114500054B (zh) | 服务访问方法、服务访问装置、电子设备以及存储介质 | |
US20130074160A1 (en) | Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus | |
US11368472B2 (en) | Information processing device and program | |
US10032027B2 (en) | Information processing apparatus and program for executing an electronic data in an execution environment | |
US20140282374A1 (en) | Generating a predictive data structure | |
JP2011043924A (ja) | Web行動履歴取得システム、Web行動履歴取得方法、ゲートウェイ装置、及びプログラム | |
US9251362B2 (en) | Medium for storing control program, client apparatus, and control method for client apparatus | |
JP2010079431A (ja) | 情報漏洩防止プログラム | |
JP5383923B1 (ja) | 情報処理装置、情報処理システム、情報処理方法およびプログラム | |
US8127314B2 (en) | Method for using information in another domain, program for using information in another domain, and information transfer program | |
JP5682181B2 (ja) | 通信制御機能を有する通信装置、方法、プログラム | |
CN114048483A (zh) | Xss漏洞的检测方法、装置、设备及介质 | |
Bernardo et al. | Web-based fingerprinting techniques | |
US11562092B1 (en) | Loading and managing third-party tools on a website | |
KR101305755B1 (ko) | 주소에 기반하여 스크립트 실행을 필터링하는 장치 및 방법 | |
TWI620091B (zh) | 植基於worker序列化請求的認證處理方法 | |
JP6350235B2 (ja) | 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム | |
Ahmed | Security analysis of HTML5 elements, attributes, and features | |
JP6394326B2 (ja) | 情報処理装置、情報処理システム、情報処理方法、及び、コンピュータ・プログラム |