IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社レインフォレストの特許一覧 ▶ GIV株式会社の特許一覧 ▶ FiVE COiN株式会社の特許一覧 ▶ 瀬田 陽介の特許一覧

<>
  • 特開-情報処理システムおよび情報処理方法 図1
  • 特開-情報処理システムおよび情報処理方法 図2
  • 特開-情報処理システムおよび情報処理方法 図3
  • 特開-情報処理システムおよび情報処理方法 図4
  • 特開-情報処理システムおよび情報処理方法 図5
  • 特開-情報処理システムおよび情報処理方法 図6
  • 特開-情報処理システムおよび情報処理方法 図7
  • 特開-情報処理システムおよび情報処理方法 図8
  • 特開-情報処理システムおよび情報処理方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023080657
(43)【公開日】2023-06-09
(54)【発明の名称】情報処理システムおよび情報処理方法
(51)【国際特許分類】
   G06F 21/55 20130101AFI20230602BHJP
【FI】
G06F21/55
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021194123
(22)【出願日】2021-11-30
(71)【出願人】
【識別番号】521523534
【氏名又は名称】株式会社レインフォレスト
(71)【出願人】
【識別番号】519111419
【氏名又は名称】GIV株式会社
(71)【出願人】
【識別番号】519234419
【氏名又は名称】FiVE COiN株式会社
(71)【出願人】
【識別番号】517339981
【氏名又は名称】瀬田 陽介
(74)【代理人】
【識別番号】100109081
【弁理士】
【氏名又は名称】三木 友由
(72)【発明者】
【氏名】岡田 晃市郎
(57)【要約】
【課題】オンラインスキミングへの効果的な対策を提供する。
【解決手段】セキュリティ管理サーバ22は、所定のウェブサイト(図1では加盟店のウェブサイト)のページをウェブブラウザで表示させる際に発生する通信に関する1つ以上の通信先の情報を取得する。セキュリティ管理サーバ22は、上記1つ以上の通信先の中から、上記ウェブサイトのページを管理するユーザにより通信が許可された通信先を含むホワイトリストを生成する。ユーザ端末12は、上記ウェブサイトのページをウェブブラウザで表示させる際に通信が発生した場合に、その通信先を検知する。ユーザ端末12は、検知した通信先が上記ホワイトリストに含まれない場合、所定のアラート処理を実行する。
【選択図】図1
【特許請求の範囲】
【請求項1】
所定のウェブサイトのページをウェブブラウザで表示させる際に発生する通信に関する1つ以上の通信先の情報を取得する通信先情報取得部と、
前記1つ以上の通信先の中から、前記ウェブサイトのページを管理する第1ユーザにより通信が許可された通信先を示すホワイトリストを生成するホワイトリスト生成部と、
前記ウェブサイトのページをウェブブラウザで表示させる際に通信が発生した場合に、その通信先を検知する通信先検知部と、
前記通信先検知部により検知された通信先が前記ホワイトリストに含まれない場合、所定のアラート処理を実行するアラート処理部と、
を備える情報処理システム。
【請求項2】
前記通信先検知部と前記アラート処理部の処理は、前記ウェブサイトのページに秘密情報を入力する第2ユーザのウェブブラウザにより実行される、
請求項1に記載の情報処理システム。
【請求項3】
前記アラート処理部は、前記アラート処理として、前記ホワイトリストに含まれない通信先との通信に関する情報を所定の記憶部に記憶させる、
請求項1または2に記載の情報処理システム。
【請求項4】
スキミング情報提供部をさらに備え、
前記記憶部に記憶される前記通信に関する情報は、前記ホワイトリストに含まれない通信先に送信された、または、前記ホワイトリストに含まれない通信先に送信されようとしたクレジットカードに関する情報を含み、
前記スキミング情報提供部は、前記ホワイトリストに含まれない通信先に送信された、または、前記ホワイトリストに含まれない通信先に送信されようとしたクレジットカードに関する情報を前記第1ユーザに提供する、
請求項3に記載の情報処理システム。
【請求項5】
前記アラート処理部は、前記アラート処理として、JavaScriptのエラーオブジェクトを生成し、前記エラーオブジェクトに含まれる1つ以上のJavaScriptプログラムの呼び出し履歴の情報を所定の記憶部に記憶させる、
請求項1から4のいずれかに記載の情報処理システム。
【請求項6】
前記通信先情報取得部は、前記ウェブサイトのページについての前記1つ以上の通信先の情報を複数回取得し、
前記ホワイトリスト生成部は、前記ウェブサイトのページについての前記1つ以上の通信先の情報を前記第1ユーザに複数回提示し、前記第1ユーザにより通信が許可された通信先が変更された場合にその変更を前記ホワイトリストに反映させる、
請求項1から5のいずれかに記載の情報処理システム。
【請求項7】
所定のウェブサイトのページをウェブブラウザで表示させる際に発生する通信に関する1つ以上の通信先に関する情報を取得するステップと、
前記1つ以上の通信先の中から、前記ウェブサイトのページを管理する第1ユーザにより通信が許可された通信先を示すホワイトリストを生成するステップと、
前記ウェブサイトのページをウェブブラウザで表示させる際に通信が発生した場合に、その通信先を検知するステップと、
前記検知するステップで検知された通信先が前記ホワイトリストに含まれない場合、所定のアラート処理を実行するステップと、
を1台のコンピュータが実行し、または、複数台のコンピュータが分散して実行する情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理技術に関し、特に情報処理システムおよび情報処理方法に関する。
【背景技術】
【0002】
オンラインスキミング(ウェブスキミングとも呼ばれる。)は、EC(Electronic Commerce)サイト等で使われているウェブアプリケーションを改ざん等することにより、利用者が入力した決済情報(例えばクレジットカード番号)を不正に取得する攻撃手法である(例えば、非特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【非特許文献1】“Webスキミングとは?意味・定義 _ ITトレンド用語”,[online],NTTコミュニケーションズ,[令和3年11月2日検索],インターネット<URL:https://www.ntt.com/bizon/glossary/e-w/web-skimming.html>
【発明の概要】
【発明が解決しようとする課題】
【0004】
オンラインスキミングは、自社のウェブアプリケーションが呼び出す外部のJavaScriptプログラム(「JavaScript」は登録商標)の改ざんが原因の場合もあり、このような自社でコントロールできない範囲の改ざんに対して、これまで効果的な対策をとることが困難であった。
【0005】
本開示は、このような課題に鑑みなされたものであり、1つの目的は、オンラインスキミングへの効果的な対策を提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本開示のある態様の情報処理システムは、所定のウェブサイトのページをウェブブラウザで表示させる際に発生する通信に関する1つ以上の通信先の情報を取得する通信先情報取得部と、1つ以上の通信先の中から、ウェブサイトのページを管理する第1ユーザにより通信が許可された通信先を示すホワイトリストを生成するホワイトリスト生成部と、ウェブサイトのページをウェブブラウザで表示させる際に通信が発生した場合に、その通信先を検知する通信先検知部と、通信先検知部により検知された通信先がホワイトリストに含まれない場合、所定のアラート処理を実行するアラート処理部とを備える。
【0007】
本開示の別の態様は、情報処理方法である。この方法は、所定のウェブサイトのページをウェブブラウザで表示させる際に発生する通信に関する1つ以上の通信先に関する情報を取得するステップと、1つ以上の通信先の中から、ウェブサイトのページを管理する第1ユーザにより通信が許可された通信先を示すホワイトリストを生成するステップと、ウェブサイトのページをウェブブラウザで表示させる際に通信が発生した場合に、その通信先を検知するステップと、検知するステップで検知された通信先がホワイトリストに含まれない場合、所定のアラート処理を実行するステップと、を1台のコンピュータが実行し、または、複数台のコンピュータが分散して実行する。
【0008】
なお、以上の構成要素の任意の組合せ、本開示の表現を、装置、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で変換したものもまた、本開示の態様として有効である。
【発明の効果】
【0009】
本開示の技術によれば、オンラインスキミングへの効果的な対策を提供することができる。
【図面の簡単な説明】
【0010】
図1】実施例の情報処理システムの構成を示す図である。
図2図1のセキュリティ管理サーバの機能ブロックを示すブロック図である。
図3】シナリオデータの例を示す図である。
図4図1のユーザ端末の機能ブロックを示すブロック図である。
図5】セキュリティ管理サーバの動作を示すフローチャートである。
図6】ホワイトリスト設定画面の例を示す図である。
図7】ユーザ端末の動作を示すフローチャートである。
図8】セキュリティ管理サーバの動作を示すフローチャートである。
図9】アラート情報画面の例を示す図である。
【発明を実施するための形態】
【0011】
本開示における装置または方法の主体は、コンピュータを備えている。このコンピュータがコンピュータプログラムを実行することによって、本開示における装置または方法の主体の機能が実現される。コンピュータは、コンピュータプログラムにしたがって動作するプロセッサを主なハードウェア構成として備える。プロセッサは、コンピュータプログラムを実行することによって機能を実現することができれば、その種類は問わない。プロセッサは、半導体集積回路(IC、LSI等)を含む1つまたは複数の電子回路で構成される。コンピュータプログラムは、コンピュータが読み取り可能なROM、光ディスク、ハードディスクドライブなどの非一時的な記録媒体に記録される。コンピュータプログラムは、記録媒体に予め格納されていてもよいし、インターネット等を含む広域通信網を介して記録媒体に供給されてもよい。
【0012】
実施例では、オンラインスキミングへの効果的な対策を実現する情報処理システムを提案する。オンラインスキミングは、例えば、ウェブページが表示されているバックグラウンドでJavaScriptプログラムが通信用API(Application Programming Interface)を呼び出すことにより、そのウェブページに入力されたユーザの秘密情報を外部装置に不正に送信する攻撃である。オンラインスキミングにおける不正な通信は、例えば、ウェブページ内のボタンが押されたタイミングや、キーロガーの場合にはテキストフィールド等にデータが入力されたタイミングで実行される。
【0013】
実施例の情報処理システムは、保護対象となるウェブサイト(以下「保護対象サイト」とも呼ぶ。)のウェブページを管理する第1ユーザにより通信が許可された、当該ウェブページ表示時の通信先を含むホワイトリストを生成する。そして、保護対象サイトのウェブページをウェブブラウザで表示させる際に通信が発生した場合にその通信先を検知し、検知した通信先がホワイトリストに含まれない場合、アラート処理を実行する。これにより、オンラインスキミングの可能性が高い状況を精度よく検知し、オンラインスキミングへの対策を支援する。
【0014】
実施例では、保護対象サイトのウェブページを管理する第1ユーザを「サイト管理者」と呼び、そのウェブページに秘密情報を入力する第2ユーザを「サイト利用者」と呼ぶ。保護対象サイトのウェブページは、例えば、ECサイトのウェブページである。サイト利用者は、例えば、ECサイトで商品を購入しようとする顧客である。サイト利用者の秘密情報は、第三者に対して秘匿すべきサイト利用者に関する属性情報とも言え、サイト利用者の個人情報、機微情報、決済に必要な情報のうち少なくとも1つを含んでもよい。例えば、秘密情報は、氏名、性別、生年月日、住所、電話番号、メールアドレス、口座番号、クレジットカード番号、デビットカード番号、カード有効期限、セキュリティコード、暗証番号のうち少なくとも1つを含んでもよい。
【0015】
図1は、実施例の情報処理システム10の構成を示す。情報処理システム10は、ユーザ端末12、加盟店サーバ14、加盟店端末16、決済代行サーバ18、セキュリティ管理サーバ22を備える。図1には、ユーザの秘密情報をオンラインスキミングにより窃取しようとする攻撃者の情報処理装置(攻撃者装置20)も描いている。図1の各装置は、LAN・WAN・インターネットを含み得る通信網を介して接続される。
【0016】
加盟店サーバ14は、ウェブサーバの機能を含む情報処理装置である。加盟店サーバ14は、クレジットカード等の加盟店(以下単に「加盟店」と呼ぶ。)のウェブサイト(例えばECサイト)のウェブアプリケーションを記憶する。ウェブアプリケーションは、例えば、HTMLファイルやJavaScriptプログラムを含む。加盟店サーバ14は、加盟店のウェブサイトのウェブアプリケーションをユーザ端末12へ提供することにより、当該ウェブサイトのウェブページをユーザ端末12に表示させる。
【0017】
加盟店端末16は、加盟店のサイト管理者により操作される情報端末である。ユーザ端末12は、サイト利用者により操作される情報端末である。加盟店端末16とユーザ端末12は、PC、スマートフォンまたはタブレット端末であってもよい。
【0018】
決済代行サーバ18は、クレジットカード会社(決済機関とも言える)と加盟店とを仲介する決済代行会社の情報処理装置である。決済代行サーバ18は、クレジットカード会社の装置(不図示)と連携して、ユーザ端末12から送信されたサイト利用者の秘密情報(クレジットカード番号等)に基づく決済処理を実行する。
【0019】
攻撃者装置20は、オンラインスキミングにより窃取されたサイト利用者の秘密情報の送信先となる情報処理装置である。オンラインスキミングでは、例えば、加盟店のウェブアプリケーションが直接的または間接的に呼び出す外部のJavaScriptプログラムに攻撃者装置20と通信する不正なコードが埋め込まれ、加盟店のウェブページに入力されたサイト利用者の秘密情報がユーザ端末12から攻撃者装置20へ不正に送信されてしまう。
【0020】
セキュリティ管理サーバ22は、保護対象サイト(実施例では加盟店のウェブサイト)をオンラインスキミングから保護するための処理を実行する情報処理装置である。セキュリティ管理サーバ22の構成について詳細に説明する。
【0021】
図2は、図1のセキュリティ管理サーバ22の機能ブロックを示すブロック図である。本明細書のブロック図で示す各ブロックは、ハードウェア的には、コンピュータのプロセッサ(CPU等)、メモリをはじめとする素子や電子回路、機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。また、図2に示す複数の機能ブロックの機能は、1台のコンピュータに実装されてもよく、複数台のコンピュータに分散して実装されてもよい。
【0022】
セキュリティ管理サーバ22は、制御部30、記憶部32、通信部34を備える。制御部30は、各種データ処理を実行する。記憶部32は、制御部30により参照または更新されるデータを記憶する。通信部34は、所定の通信プロトコルにしたがって外部装置と通信する。例えば、制御部30は、通信部34を介して、ユーザ端末12、加盟店サーバ14、加盟店端末16とデータを送受信する。
【0023】
記憶部32は、シナリオ記憶部36、通信先情報記憶部38、ホワイトリスト記憶部40、検査スクリプト記憶部42、アラート情報記憶部44を含む。
【0024】
シナリオ記憶部36は、保護対象サイトのウェブページに対する操作やデータ入力を自動化するためのシナリオデータを記憶する。シナリオデータは、保護対象サイトにおける画面遷移(例えば(1)ログインページ→(2)商品選択ページ→(3)クレジットカード情報入力ページ→(4)最終確認ページの遷移)を考慮して定められる。また、保護対象サイトにおける画面遷移や操作、データ入力のパターンに応じて、複数個のシナリオデータが定められ得る。
【0025】
図3は、シナリオデータの例を示す。同図のシナリオデータ60には、YAML(YAML Ain't Markup Language)を用いて、パスワード「password1」を画面に入力する操作を示すコード、および、ログインボタンをクリックする操作を示すコードが記述されている。このように、シナリオデータは、ウェブブラウザに表示された保護対象サイトのウェブページに対するサイト利用者の操作を擬似するコードを含む。
【0026】
図2に戻り、通信先情報記憶部38は、後述のクローラ部46により取得された、保護対象サイトのウェブページをウェブブラウザで表示させる際に発生する通信に関する1つ以上の通信先の情報を記憶する。
【0027】
ホワイトリスト記憶部40は、後述のホワイトリスト生成部50により生成されたホワイトリストのデータを記憶する。ホワイトリストは、保護対象サイトのウェブページをウェブブラウザで表示させる際に発生する通信の通信先のうち、保護対象サイトのサイト管理者により許可された通信先を示すリストである。言い換えれば、ホワイトリストは、保護対象サイトのウェブページをウェブブラウザで表示させる際に発生する通信の通信先のうち、サイト管理者が許可しない通信先が除外されたリストである。
【0028】
検査スクリプト記憶部42は、後述の検査スクリプト生成部52により生成された、オンラインスキミング対策用のJavaScriptプログラム(以下「検査スクリプト」とも呼ぶ。)を記憶する。検査スクリプトは、保護対象サイトのウェブページを表示するユーザ端末12のウェブブラウザで実行される。検査スクリプトは、保護対象サイトのウェブページをウェブブラウザで表示させる際に発生する通信を監視し、オンラインスキミングのリスクを検知する。実施例では、検査スクリプトは、ホワイトリストのデータを含む。検査スクリプトの機能は、図4に関連して後述する。
【0029】
アラート情報記憶部44は、検査スクリプトによるアラート処理として、ユーザ端末12から送信されたアラート情報を記憶する。アラート情報は、例えば、保護対象サイトのURL(言い換えれば加盟店サイトの識別情報)、不正な通信において送信されたデータ、送信先情報(位置データ、IPアドレス、国名、データサイズ等)、コールスタックデータ(呼び出し先毎のIPアドレス、国名、行位置等)、攻撃コードを含む。
【0030】
制御部30は、クローラ部46、設定画面提供部48、ホワイトリスト生成部50、検査スクリプト生成部52、検査スクリプト提供部54、アラート情報生成部56、アラート情報提供部58を含む。これら複数の機能ブロックの機能が実装されたコンピュータプログラムがセキュリティ管理サーバ22のストレージ(記憶部32等)にインストールされてもよい。制御部30は、セキュリティ管理サーバ22のプロセッサ(CPU等)により実現されてもよい。セキュリティ管理サーバ22のプロセッサは、上記コンピュータプログラムをメインメモリに読み出して実行することにより、上記複数の機能ブロックの機能を発揮してもよい。
【0031】
クローラ部46は、通信先情報取得部とも言え、保護対象サイトのウェブページをウェブブラウザで表示させる際に発生する通信を検知し、検知した通信に関する1つ以上の通信先の情報を取得する。クローラ部46は、1つ以上の通信先の情報を通信先情報記憶部38に格納する。
【0032】
設定画面提供部48は、通信先情報記憶部38に格納された1つ以上の通信先の情報を含むホワイトリスト設定画面のデータを加盟店端末16へ送信し、ホワイトリスト設定画面を加盟店端末16に表示させる。
【0033】
ホワイトリスト生成部50は、通信先情報記憶部38に情報が記憶された1つ以上の通信先の中から、ホワイトリスト設定画面においてサイト管理者が許可した通信先を含むホワイトリストを生成する。ホワイトリスト生成部50は、生成したホワイトリストのデータをホワイトリスト記憶部40に格納する。
【0034】
検査スクリプト生成部52は、ホワイトリスト記憶部40に記憶されたホワイトリストのデータを含む検査スクリプト(JavaScriptプログラム)を生成する。検査スクリプト生成部52は、生成した検査スクリプトを検査スクリプト記憶部42に格納する。
【0035】
検査スクリプト提供部54は、検査スクリプト記憶部42に記憶された検査スクリプトを、保護対象サイトのウェブページを表示するユーザ端末12へ提供するための処理を実行する。例えば、検査スクリプト提供部54は、保護対象サイトのウェブページを表示させるユーザ端末12に対して検査スクリプトを直接送信してもよい。また、検査スクリプト提供部54は、検査スクリプトを予め加盟店サーバ14へ送信してもよく、加盟店サーバ14は、保護対象サイトのウェブアプリケーションを提供するユーザ端末12に対して、さらに検査スクリプトを提供してもよい。
【0036】
アラート情報生成部56は、ユーザ端末12から送信された不正通信情報を受け付け、不正通信情報に基づいてアラート情報を生成する。アラート情報生成部56は、生成したアラート情報をアラート情報記憶部44に格納する。
【0037】
アラート情報提供部58は、アラート情報記憶部44に記憶されたアラート情報を含むアラート情報画面のデータを加盟店端末16へ送信し、アラート情報画面を加盟店端末16に表示させる。
【0038】
図4は、図1のユーザ端末12の機能ブロックを示すブロック図である。ユーザ端末12は、制御部70と通信部72を備える。制御部70は、各種データ処理を実行する。通信部72は、所定の通信プロトコルにしたがって外部装置と通信する。例えば、制御部70は、通信部72を介して、加盟店サーバ14、攻撃者装置20、セキュリティ管理サーバ22と通信する。
【0039】
制御部70は、ウェブブラウザ部74を含む。制御部70は、ユーザ端末12のプロセッサ(CPU等)により実現されてもよい。ウェブブラウザ部74は、ユーザ端末12のプロセッサが、JavaScriptエンジンを含む公知のウェブブラウザソフトウェアを実行することにより実現されてもよい。
【0040】
ウェブブラウザ部74は、通信先検知部76とアラート処理部78を含む。通信先検知部76とアラート処理部78は、加盟店サーバ14またはセキュリティ管理サーバ22から提供された検査スクリプトをウェブブラウザ部74が実行することにより実現される。すなわち、通信先検知部76とアラート処理部78の処理は、保護対象サイトのウェブページに秘密情報を入力するサイト利用者のウェブブラウザにより実行される。
【0041】
通信先検知部76は、保護対象サイトのウェブページをウェブブラウザ部74が表示させる際に通信の発生を監視し、通信が発生した場合にその通信先を検知する。
【0042】
アラート処理部78は、通信先検知部76により検知された通信先が検査スクリプト内のホワイトリストに含まれない場合、所定のアラート処理を実行する。
【0043】
アラート処理部78は、アラート処理として、ホワイトリストに含まれない通信先との通信に関する情報を所定の記憶部に記憶させる。実施例では、アラート処理部78は、不正通信情報をセキュリティ管理サーバ22へ送信することにより、不正通信情報に基づくアラート情報をセキュリティ管理サーバ22のアラート情報記憶部44に記憶させる。
【0044】
また、アラート処理部78は、アラート処理として、JavaScriptのエラーオブジェクトを生成し、そのエラーオブジェクトに自動的に記録される1つ以上のJavaScriptプログラムの呼び出し履歴の情報(いわゆるスタックトレース)を所定の記憶部に記憶させる。実施例では、アラート処理部78は、上記の呼び出し履歴の情報を含む不正通信情報をセキュリティ管理サーバ22へ送信することにより、上記の呼び出し履歴の情報を含むアラート情報をセキュリティ管理サーバ22のアラート情報記憶部44に記憶させる。
【0045】
以上の構成による情報処理システム10の動作を説明する。
図5は、セキュリティ管理サーバ22の動作を示すフローチャートである。セキュリティ管理サーバ22のシナリオ記憶部36には、保護対象サイト毎に予め作成されたシナリオデータが格納される。ここでは、1つの保護対象サイト(以下「加盟店サイト」とも呼ぶ。)に関する動作を説明するが、他の保護対象サイトに関する動作も同様である。
【0046】
予め定められたホワイトリスト更新条件が満たされると(S10のY)、セキュリティ管理サーバ22のクローラ部46は、シナリオ記憶部36に記憶されたシナリオデータにしたがって、加盟店サイトのウェブページをウェブブラウザで表示させる処理、および、そのウェブページに対する操作入力およびデータ入力を自動的に実行する。ホワイトリスト更新条件は、前回のホワイトリストの作成または更新から所定時間が経過したことであってもよく、セキュリティ管理サーバ22の管理者または加盟店のサイト管理者から明示的な更新要求を受け付けたことでもよい。
【0047】
クローラ部46は、公知のAPIフックの手法により、加盟店サイトのウェブページをウェブブラウザで表示させる際に発生する通信を監視する。実施例では、クローラ部46は、加盟店サーバ14から読み込まれたJavaScriptプログラム(ファーストパーティスクリプト)、および、ファーストパーティスクリプトから直接的または間接的に呼び出されたJavaScriptプログラム(サードパーティスクリプト)による通信用APIの呼び出しを監視する。通信用APIは、WebSocketに関するAPIと、XMLHttpRequestに関するAPIを含む。
【0048】
クローラ部46は、加盟店サイトの1つ以上のウェブページをウェブブラウザで表示させる際の通信の発生(実施例では通信用APIの呼び出し)を検知し、その通信に関する1つ以上の通信先の情報(以下「通信先情報」とも呼ぶ。)を取得する。クローラ部46は、通信先情報を通信先情報記憶部38に格納する(S11)。通信先情報は、通信用APIに引数として渡される情報を含んでもよく、上記の通信用APIを介して外部装置へ送信される情報を含んでもよい。例えば、通信先情報は、通信先のドメイン名、アクセス回数(通信回数)、IPアドレス、国名、タイムゾーン、座標、クロール日時(通信先情報を収集した日時)を含んでもよい。通信先情報の一部(例えばIPアドレス、国名、タイムゾーン、座標等)は、通信先のドメイン名をキーとして、外部のデータベースから取得されたデータであってもよい。
【0049】
セキュリティ管理サーバ22の設定画面提供部48は、通信先情報記憶部38に記憶された1つ以上の通信先情報を含むホワイトリスト設定画面のデータを加盟店端末16へ送信し、加盟店端末16にホワイトリスト設定画面を表示させる(S12)。図6は、ホワイトリスト設定画面の例を示す。ホワイトリスト設定画面80は、通信先情報エリア82とチェックエリア84を含む。サイト管理者は、通信先情報エリア82に設定された通信先情報を参照し、チェックエリア84において通信を許可する通信先を選択する。
【0050】
図5に戻り、セキュリティ管理サーバ22のホワイトリスト生成部50は、加盟店端末16から送信された、ホワイトリスト設定画面においてサイト管理者が選択した通信先情報、言い換えれば、サイト管理者が通信を許可する通信先情報を受け付ける。ホワイトリスト生成部50は、サイト管理者により通信が許可された1つ以上の通信先情報(実施例ではドメイン名)を含むホワイトリストのデータを生成する(S13)。変形例として、ホワイトリストは、通信先情報として、ドメイン名に加えてホスト名(およびポート番号)を含んでもよく、また、通信先のFQDN(Fully Qualified Domain Name)を含んでもよい。
【0051】
セキュリティ管理サーバ22の検査スクリプト生成部52は、ホワイトリスト生成部50により生成されたホワイトリストを含む検査スクリプトのデータを生成し、検査スクリプトのデータを検査スクリプト記憶部42に格納する(S14)。ホワイトリスト更新条件が満たされなければ(S10のN)、S11~S14の処理をスキップする。
【0052】
なお、ホワイトリスト更新条件が満たされる都度、S11~S14の処理を繰り返し実行する。例えば、加盟店サイト向けのホワイトリスト(または検査スクリプト)作成後にホワイトリスト更新条件が再度満たされた場合、クローラ部46は、加盟店サイトのウェブページについての1つ以上の通信先情報を再度取得する。すなわち、クローラ部46は、加盟店サイトのウェブページについての1つ以上の通信先情報を複数回取得する。
【0053】
設定画面提供部48は、クローラ部46により取得された加盟店サイトのウェブページについての1つ以上の通信先情報を示すホワイトリスト設定画面を加盟店端末16のサイト管理者に複数回提示する。ホワイトリスト生成部50は、サイト管理者により許可された通信先に変更が生じた場合、その変更を反映するようホワイトリストを更新する。検査スクリプト生成部52は、更新後のホワイトリストを含むよう検査スクリプトを更新する。
【0054】
図7は、ユーザ端末12の動作を示すフローチャートである。ユーザ端末12のウェブブラウザ部74は、サイト利用者の操作に応じて、加盟店サイトのウェブアプリケーションの提供を加盟店サーバ14に要求する。ユーザ端末12のウェブブラウザ部74は、加盟店サーバ14から送信されたウェブアプリケーションを受信し、そのウェブアプリケーションに基づいて、加盟店サイトのウェブページを表示部(不図示)に表示させる(S20)。
【0055】
また、ユーザ端末12のウェブブラウザ部74は、加盟店サーバ14から送信されたウェブアプリケーションの記述にしたがって、セキュリティ管理サーバ22から検査スクリプトを読み込む。ユーザ端末12のウェブブラウザ部74は、検査スクリプトを実行することにより、通信先検知部76およびアラート処理部78の機能を発揮する。
【0056】
ユーザ端末12の通信先検知部76は、公知のAPIフックの手法により、加盟店サイトのウェブページをウェブブラウザ部74で表示させる際に発生する通信を監視する。具体的には、通信先検知部76は、加盟店サーバ14から読み込まれたJavaScriptプログラム(ファーストパーティスクリプト)、および、ファーストパーティスクリプトから直接的または間接的に呼び出されたJavaScriptプログラム(サードパーティスクリプト)による通信用APIの呼び出しを監視する。通信用APIは、WebSocketに関するAPIと、XMLHttpRequestに関するAPIを含む。
【0057】
ユーザ端末12の通信先検知部76は、加盟店サイトの1つ以上のウェブページ(例えばログインページ、商品選択ページ、クレジットカード情報入力ページ、最終確認ページ)をウェブブラウザ部74で表示させる際に通信が発生した場合(S21のY)、その通信先情報を取得する(S22)。通信先情報は、上記の通信用APIに引数として渡されるデータを含んでもよく、上記の通信用APIを介して外部装置へ送信されるデータ(送信データ)を含んでもよい。送信データは、宛先のドメイン名、ホスト名、ポート番号を含んでもよく、さらに、サイト利用者の秘密情報(例えば決済に必要なクレジットカード番号等)を含んでもよい。
【0058】
ユーザ端末12のアラート処理部78は、通信用APIが呼び出された際にAPIフックにより実行される処理として、通信先検知部76により取得された通信先情報(実施例ではドメイン名)が、ホワイトリストのいずれかのエントリ(実施例ではドメイン名)に一致するか否かを判定する(S23)。両者が不一致であり、すなわち、検知された通信先が許可された通信先でなければ(S24のN)、アラート処理部78は、通信先検知部76により取得された通信先情報を含む不正通信情報をセキュリティ管理サーバ22へ送信する(S25)。
【0059】
また、検知された通信先が許可された通信先でなければ、アラート処理部78は、通信用APIが呼び出された際にAPIフックにより実行される更なる処理として、JavaScriptのエラーオブジェクトを生成する。このエラーオブジェクトには、関数呼び出し履歴を示すコールスタック情報が記録される。コールスタック情報は、例えば、通信用APIを呼び出した第1のJavaScriptプログラムの情報(実行された行位置、すなわち攻撃コードの位置を含む)、第1のJavaScriptプログラムを呼び出した第2のJavaScriptプログラムの情報、第2のJavaScriptプログラムを呼び出した第3のJavaScriptプログラムの情報、・・・を含む。
【0060】
通信先検知部76により取得された通信先情報が、ホワイトリストのエントリと一致し、すなわち、検知された通信先が許可された通信先であれば(S24のY)、S25の処理をスキップする。実施例では、通信先検知部76により取得された通信先情報が、ホワイトリストのエントリと一致するか否かにかかわらず、通信用APIを用いた外部との通信を許可する。外部との通信を禁止する構成は後述の変形例にて説明する。加盟店サイトのウェブページ表示時に通信が発生せず、言い換えれば、通信用APIの呼び出しを未検知であれば(S21のN)、S22~S25の処理をスキップする。
【0061】
加盟店サイトのウェブページの処理が終了(例えば商品購入の手続きが終了)した場合(S26のY)、本図の処理を終了する。加盟店サイトのウェブページの処理が未完了(例えば商品購入の手続きが未完了)であれば(S26のN)、S21に戻り、すなわち、通信用APIの呼び出しの監視を継続する。
【0062】
図8は、セキュリティ管理サーバ22の動作を示すフローチャートである。ユーザ端末12から送信された不正通信情報を受け付けた場合(S30のY)、セキュリティ管理サーバ22のアラート情報生成部56は、不正通信情報に基づいてアラート情報を生成し、アラート情報をアラート情報記憶部44に格納する(S31)。セキュリティ管理サーバ22のアラート情報提供部58は、アラート情報記憶部44に記憶されたアラート情報を設定したアラート情報画面のデータを加盟店端末16へ送信する(S32)。加盟店端末16は、アラート情報画面を表示部に表示させる。不正通信情報を受け付けなければ(S30のN)、S31、S32の処理をスキップする。
【0063】
図9は、アラート情報画面の例を示す。アラート情報画面90は、アラート情報として、保護対象サイトのURL(対象サイトURL)、不正な通信先への送信データ、不正な通信先の情報(送信先情報)、コールスタックデータ、攻撃コードを含む。送信先情報は、送信データから抽出された位置データ(ホスト名+ドメイン名+ポート番号)、ドメイン名をもとに検索されたIPアドレス、国名、データサイズを含む。コールスタック情報は、呼び出された関数毎に、ドメイン名をもとに検索されたIPアドレス、国名を含み、さらに実行されたコードの行位置を含む。
【0064】
攻撃コード情報は、通信用APIを呼び出したJavaScriptプログラムであり、言い換えれば、不正な通信を行ったJavaScriptプログラムにおける攻撃コードを示す。このJavaScriptプログラムは、コールスタックデータが示す呼び出し履歴において最後に呼び出されたJavaScriptプログラムである。アラート情報画面90では、エラーオブジェクトに記録された攻撃コードの位置「attack.js」の3行目を強調態様で表示している。図9では、強調態様の例として、3行目に下線を設定した。変形例として、攻撃コードの行をハイライト表示させてもよく、攻撃コードの行を他の行とは異なる色で表示させてもよく、攻撃コードの行を他の行より大きな文字で表示させてもよい。
【0065】
サイト管理者は、アラート情報画面90を確認して、不正な通信先およびその通信先にアクセスしたJavaScriptプログラムを把握し、ファーストパーティスクリプトまたはサードパーティスクリプトの改ざんに対して対策をとることができる。また、アラート情報画面90に表示された通信先が本来許可すべき通信先である場合、サイト管理者は、セキュリティ管理サーバ22に対してホワイトリストの更新を要求して、アラート情報画面90に表示された通信先との通信を許可するようにホワイトリスト(検査スクリプト)を更新させることができる。
【0066】
実施例の情報処理システム10によると、保護対象サイトのウェブページを表示させる際に発生する不正な通信を検知してアラート処理を実行することにより、オンラインスキミングを精度よく検知でき、また、オンラインスキミングへの対策を支援できる。また、情報処理システム10によると、ホワイトリストに含まれない通信先との通信に関する情報(例えばコールスタック情報)をサイト管理者に提示することにより、保護対象サイトのサイト管理者がオンラインスキミングに対して適切な対応がとれるよう支援できる。また、明示的な要求に応じて、もしくは定期的に、通信先のホワイトリストを更新することにより、保護対象サイトにおける環境変化(例えばスクリプト呼び出し関係の変化)に追従して、オンラインスキミングの検知および対策支援を継続的に提供できる。
【0067】
以上、本開示を実施例をもとに説明した。実施例に記載の内容は例示であり、実施例の構成要素や処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本開示の範囲にあることは当業者に理解されるところである。
【0068】
第1変形例を説明する。上記実施例では言及していないが、ユーザ端末12の通信先検知部76により取得された通信先情報が、ホワイトリストのエントリと不一致である場合、ユーザ端末12のアラート処理部78は、通信用APIが呼び出された際にAPIフックにより実行される処理として、外部との通信を一時的に中断し、サイト利用者に対して不正な通信先との通信を継続するか否かを確認してもよい。例えば、アラート処理部78は、ホワイトリストにない通信先の情報を表示し、この通信先との通信を継続するか否かの選択を受け付ける画面(ここでは「選択受付画面」と呼ぶ。)をポップアップ表示させてもよい。アラート処理部78は、選択受付画面でのユーザの選択にしたがって、ホワイトリストにない通信先との通信を継続させ、または、当該通信先との通信を中止させてもよい。
【0069】
別の例として、通信先検知部76により取得された通信先情報が、ホワイトリストのエントリと不一致である場合、アラート処理部78は、通信用APIが呼び出された際にAPIフックにより実行される処理として、上記の選択受付画面を表示させることなく、言い換えれば、サイト利用者に確認することなく、ホワイトリストにない通信先との通信を強制的に中止させてもよい。また、ホワイトリストにない通信先との通信を継続させつつ、加盟店端末16にアラート情報を提供する構成であってもよい。また、上記の選択受付画面をサイト利用者に提示するか否か、言い換えれば、ホワイトリストにない通信先との通信可否をサイト利用者に判断させるか否かは、加盟店のサイト管理者により決定されてよく、また、加盟店のサイト管理者により切り替え可能であってもよい。例えば、セキュリティ管理サーバ22の検査スクリプト生成部52は、加盟店のサイト管理者による設定にしたがって、選択受付画面を表示させるコードを検査スクリプトに含め、または、当該コードを検査スクリプトから除外してもよい。
【0070】
第2変形例を説明する。上記実施例では、ユーザ端末12のアラート処理部78は、通信先検知部76により取得された通信先情報を、検査スクリプトに組み込まれたホワイトリストのエントリと照合した。変形例として、アラート処理部78は、通信先検知部76により取得された通信先情報を、セキュリティ管理サーバ22のホワイトリスト記憶部40に記憶されたホワイトリストのエントリと照合してもよい。すなわち、アラート処理部78は、セキュリティ管理サーバ22と通信して、通信先検知部76により検知された通信先がサイト管理者により許可されたものか否かを確認してもよい。
【0071】
第3変形例を説明する。上記実施例では、通信先検知部76とアラート処理部78の処理をユーザ端末12(ウェブブラウザ部74)が実行した。変形例として、通信先検知部76とアラート処理部78の処理をセキュリティ管理サーバ22が実行してもよく、言い換えれば、通信先検知部76とアラート処理部78の機能がセキュリティ管理サーバ22に実装されてもよい。セキュリティ管理サーバ22は、定期的に保護対象サイトにアクセスして図7のフローチャートに示す処理を実行してもよい。セキュリティ管理サーバ22は、ホワイトリストのエントリに含まれない通信先との通信を検出した場合、アラート情報を加盟店端末16へ提供してもよい。
【0072】
第3変形例に関連する第4変形例を説明する。セキュリティ管理サーバ22のクローラ部46は、シナリオ記憶部36に記憶されたシナリオデータにしたがって、加盟店サイトのウェブページをウェブブラウザで表示させる処理、および、そのウェブページに対する操作入力およびデータ入力を自動的に実行する際に、検査スクリプトをさらに実行して、通信先検知部76とアラート処理部78の機能を発揮してもよい。これにより、加盟店サイトのウェブページから検査スクリプトが呼び出されないように加盟店サイトのウェブページが改ざんされた場合においても、不正な通信先との通信を検知でき、オンラインスキミングを防止しやすくなる。
【0073】
また、セキュリティ管理サーバ22のクローラ部46は、加盟店サイトのウェブページのデータをチェックするチェック部を備えてもよい。チェック部は、加盟店サイトのウェブページのコードの中から検査スクリプトを呼び出すコードを検索し、加盟店サイトのウェブページのコードの中に検査スクリプトを呼び出すコードが存在しない場合(例えば攻撃者により当該コードが削除された場合)、そのことを検出してもよい。セキュリティ管理サーバ22のアラート情報提供部58は、加盟店サイトのウェブページのコードの中に検査スクリプトを読み出すコードが存在しない場合、加盟店サイトのウェブページが改ざんされた可能性があることを示すアラート情報を加盟店端末16へ送信して表示させてもよい。これにより、加盟店サイトのウェブページが改ざんされたことの迅速な検知と、加盟店サイトのウェブページの迅速な改修を支援できる。
【0074】
第5変形例を説明する。既述だが、セキュリティ管理サーバ22のアラート情報記憶部44に記憶されるアラート情報は、ホワイトリストに含まれない不正な通信先へ送信されたデータ、または、(送信がブロックされた場合等)不正な送信先へ送信されようとしたデータを示すスキミング情報を含む。スキミング情報は、サイト利用者に関する情報やサイト利用者が使用したクレジットカードに関する情報を含む。例えば、スキミング情報は、サイト利用者の氏名、性別、生年月日、クレジットカード番号、カード有効期限、セキュリティコード等を含んでもよい。
【0075】
この変形例のセキュリティ管理サーバ22は、スキミング情報提供部をさらに備えてもよい。スキミング情報提供部は、アラート情報記憶部44に記憶された、各加盟店に対応づけられたスキミング情報(例えばサイト利用者の氏名やクレジットカード番号の一覧)を各加盟店の加盟店端末16に送信し、表示させてもよい。なお、スキミング情報提供部は、加盟店端末16に提供するスキミング情報の一部を匿名化してもよい。例えば、スキミング情報提供部は、一部の桁の値(例えば下4桁以外の値)をマスキングしたクレジットカード番号を含むスキミング情報を加盟店端末16に提供してもよい。
【0076】
第5変形例によると、オンラインスキミングの被害を受けたサイト利用者またはクレジットカードの情報を特定しやすくなり、オンラインスキミングによる加盟店の責任を限定しやすくなる。
【0077】
上述した実施例および変形例の任意の組み合わせもまた本開示の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施例および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施例および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
【符号の説明】
【0078】
10 情報処理システム、 12 ユーザ端末、 14 加盟店サーバ、 16 加盟店端末、 22 セキュリティ管理サーバ、 46 クローラ部、 50 ホワイトリスト生成部、 76 通信先検知部、 78 アラート処理部。
図1
図2
図3
図4
図5
図6
図7
図8
図9