(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-21
(45)【発行日】2022-03-02
(54)【発明の名称】プログラム、情報処理装置及び情報処理方法
(51)【国際特許分類】
G06F 21/31 20130101AFI20220222BHJP
G06F 21/44 20130101ALI20220222BHJP
H04L 67/00 20220101ALI20220222BHJP
【FI】
G06F21/31
G06F21/44
H04L67/00
(21)【出願番号】P 2019203534
(22)【出願日】2019-11-08
【審査請求日】2021-04-23
【早期審査対象出願】
(73)【特許権者】
【識別番号】522015777
【氏名又は名称】EGセキュアソリューションズ株式会社
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】澤井 祐史
(72)【発明者】
【氏名】根岸 寛徳
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2009-175984(JP,A)
【文献】特開2014-132448(JP,A)
【文献】特開2017-010494(JP,A)
【文献】特開2016-126670(JP,A)
【文献】齋藤 考道,世界のウェブアーカイブ,2019年04月19日,https://web.archive.org/web/20190419123706/https://www.saitolab.org/fp_site/
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/31
G06F 21/44
H04L 29/00
(57)【特許請求の範囲】
【請求項1】
ウェブアプリケーションファイアウォールプログラムにおいて、
ユーザ端末からユーザが保護対象のウェブサイトへログインした第1ログイン時点での第1IPアドレスを取得し、
取得した前記第1IPアドレスに基づき、プロバイダ
及び国を含む第1地域情報を特定し、
前記第1ログイン時点と異なる第2ログイン時点での第2IPアドレスを取得し、
取得した前記第2IPアドレスに基づき、第2地域情報を特定し、
前記第1ログイン時点での第1ログイン時間及び前記第1地域情報と、前記第2ログイン時点での第2ログイン時間及び前記第2地域情報とに基づき、第1異常を判定
し、
前記ユーザ端末から複数種類の端末情報を取得し、
前記端末情報を記憶したデータベースから前記ユーザ端末に対応する複数種類の端末情報を読み出し、
取得した複数種類の端末情報と読み出した複数種類の端末情報とを比較し、
相互に端末情報が一致しない不一致数を計数し、
計数した不一致数が所定数以上である場合、第2異常と判定し、
前記ユーザの操作ログを取得し、
取得した前記操作ログに基づき、第2リスクスコアを算出し、
算出した第2リスクスコアが所定の基準スコア以上であると判定した場合、第3異常を判定し、
第1異常、第2異常または第3異常を含む異常を判定したユーザのアクセス履歴情報及び異常判定結果を監視者端末に出力する
処理をコンピュータに実行させるプログラム。
【請求項2】
前記ユーザ端末から端末情報を取得し、
前記ユーザ端末の識別に使用するトークンを発行し、
発行した前記トークンに対応付けて、取得した前記端末情報を
前記データベースに記憶する
処理を実行させる請求項1に記載のプログラム。
【請求項3】
前記端末情報は、アクセス先ホスト情報、アクセス元情報、VPN(Virtual Private
Network)利用情報、プロキシ利用情報、位置情報、オペレーティングシステム情報またはブラウザ情報を含む
請求項2に記載のプログラム。
【請求項4】
ユーザが前記ウェブサイトにログインしていると判定した場合、前記端末情報に基づき、認証処理を行うためのリスクスコアを算出し、
算出したリスクスコアが所定の基準スコア以上であると判定した場合、多要素認証処理を行う
処理を実行させる請求項
1から
3までのいずれかひとつに記載のプログラム。
【請求項5】
ウェブアプリケーションファイアウォールがインストールされた情報処理装置において、
ユーザ端末からユーザが保護対象のウェブサイトへログインした第1ログイン時点での第1IPアドレスを取得する第1取得部と、
取得した前記第1IPアドレスに基づき、プロバイダ及び国を含む第1地域情報
を特定する第1特定部と、
前記第1ログイン時点と異なる第2ログイン時点での第2IPアドレスを取得する第2取得部と、
取得した前記第2IPアドレスに基づき、第2地域情報を特定する第2特定部と、
前記第1ログイン時点での第1ログイン時間及び前記第1地域情報と、前記第2ログイン時点での第2ログイン時間及び前記第2地域情報とに基づき、第1異常を判定する
第1判定部と
、
前記ユーザ端末から複数種類の端末情報を取得する第3取得部と、
前記端末情報を記憶したデータベースから前記ユーザ端末に対応する複数種類の端末情報を読み出す読出部と、
取得した複数種類の端末情報と読み出した複数種類の端末情報とを比較する比較部と、
相互に端末情報が一致しない不一致数を計数する計数部と、
計数した不一致数が所定数以上である場合、第2異常と判定する第2判定部と、
前記ユーザの操作ログを取得する第4取得部と、
取得した前記操作ログに基づき、第2リスクスコアを算出する算出部と、
算出した第2リスクスコアが所定の基準スコア以上であると判定した場合、第3異常を判定する第3判定部と、
第1異常、第2異常または第3異常を含む異常を判定したユーザのアクセス履歴情報及び異常判定結果を監視者端末に出力する出力部と
を備えることを特徴とする情報処理装置。
【請求項6】
ウェブアプリケーションファイアウォールがインストールされたコンピュータに、
ユーザ端末からユーザが保護対象のウェブサイトへログインした第1ログイン時点での第1IPアドレスを取得し、
取得した前記第1IPアドレスに基づき、プロバイダ
及び国を含む第1地域情報を特定し、
前記第1ログイン時点と異なる第2ログイン時点での第2IPアドレスを取得し、
取得した前記第2IPアドレスに基づき、第2地域情報を特定し、
前記第1ログイン時点での第1ログイン時間及び前記第1地域情報と、前記第2ログイン時点での第2ログイン時間及び前記第2地域情報とに基づき、第1異常を判定
し、
前記ユーザ端末から複数種類の端末情報を取得し、
前記端末情報を記憶したデータベースから前記ユーザ端末に対応する複数種類の端末情報を読み出し、
取得した複数種類の端末情報と読み出した複数種類の端末情報とを比較し、
相互に端末情報が一致しない不一致数を計数し、
計数した不一致数が所定数以上である場合、第2異常と判定し、
前記ユーザの操作ログを取得し、
取得した前記操作ログに基づき、第2リスクスコアを算出し、
算出した第2リスクスコアが所定の基準スコア以上であると判定した場合、第3異常を判定し、
第1異常、第2異常または第3異常を含む異常を判定したユーザのアクセス履歴情報及び異常判定結果を監視者端末に出力する
処理を実行させることを特徴とする情報処理方法。
【請求項7】
ウェブアプリケーションファイアウォールプログラムにおいて、
ユーザ端末からユーザが保護対象のウェブサイトへログインした第1ログイン時点での第1IPアドレスを取得し、
取得した前記第1IPアドレスに基づき、プロバイダ及び国を含む第1地域情報を特定し、
前記第1ログイン時点と異なる第2ログイン時点での第2IPアドレスを取得し、
取得した前記第2IPアドレスに基づき、第2地域情報を特定し、
前記第1ログイン時点での第1ログイン時間及び前記第1地域情報と、前記第2ログイン時点での第2ログイン時間及び前記第2地域情報とに基づき、第1異常を判定するための複数の評価項目のリスクスコアのそれぞれを算出し、
算出した複数の評価項目のリスクスコアのいずれかのリスクスコアが基準スコア以上である場合、前記第1異常を判定する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理装置及び情報処理方法に関する。
【背景技術】
【0002】
特許文献1には、未知の攻撃を未然に防ぎ、正当なパラメータを有するリクエストを誤って遮断することを防止する検知システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に係る発明は、ログイン時間及びログイン時点での地域情報に基づいて異常を判定することができない恐れがある。
【0005】
一つの側面では、ログイン時間及びログイン時点での地域情報に基づいて異常を判定することが可能なプログラム等を提供することにある。
【課題を解決するための手段】
【0006】
一つの側面に係るプログラムは、ウェブアプリケーションファイアウォールプログラムにおいて、ユーザ端末からユーザが保護対象のウェブサイトへログインした第1ログイン時点での第1IPアドレスを取得し、取得した前記第1IPアドレスに基づき、プロバイダ及び国を含む第1地域情報を特定し、前記第1ログイン時点と異なる第2ログイン時点での第2IPアドレスを取得し、取得した前記第2IPアドレスに基づき、第2地域情報を特定し、前記第1ログイン時点での第1ログイン時間及び前記第1地域情報と、前記第2ログイン時点での第2ログイン時間及び前記第2地域情報とに基づき、第1異常を判定し、前記ユーザ端末から複数種類の端末情報を取得し、前記端末情報を記憶したデータベースから前記ユーザ端末に対応する複数種類の端末情報を読み出し、取得した複数種類の端末情報と読み出した複数種類の端末情報とを比較し、相互に端末情報が一致しない不一致数を計数し、計数した不一致数が所定数以上である場合、第2異常と判定し、前記ユーザの操作ログを取得し、取得した前記操作ログに基づき、第2リスクスコアを算出し、算出した第2リスクスコアが所定の基準スコア以上であると判定した場合、第3異常を判定し、第1異常、第2異常または第3異常を含む異常を判定したユーザのアクセス履歴情報及び異常判定結果を監視者端末に出力する処理をコンピュータに実行させる。
【発明の効果】
【0007】
一つの側面では、ログイン時間及びログイン時点での地域情報に基づいて異常を判定することが可能となる。
【図面の簡単な説明】
【0008】
【
図1】クラウド型ウェブアプリケーションファイアウォールサービスを提供するシステムの概要を示す説明図である。
【
図3】端末情報DBのレコードレイアウトの一例を示す説明図である。
【
図4】リスクスコアDBのレコードレイアウトの一例を示す説明図である。
【
図5】操作ログDBのレコードレイアウトの一例を示す説明図である。
【
図6】異常判定結果DBのレコードレイアウトの一例を示す説明図である。
【
図7】アクセス履歴DBのレコードレイアウトの一例を示す説明図である。
【
図8】ウェブサーバの構成例を示すブロック図である。
【
図9】ユーザ端末の構成例を示すブロック図である。
【
図10】監視者端末の構成例を示すブロック図である。
【
図11】クラウド型ウェブアプリケーションファイアウォールサービスを提供するシステムの構造図である。
【
図12】異常を判定する動作を説明する説明図である。
【
図13】異常を判定する際の処理手順を示すフローチャートである。
【
図14】異常を判定する際の処理手順を示すフローチャートである。
【
図15】第1異常を判定する処理のサブルーチンの処理手順を示すフローチャートである。
【
図16】第2異常を判定する処理のサブルーチンの処理手順を示すフローチャートである。
【
図17】第3異常を判定する処理のサブルーチンの処理手順を示すフローチャートである。
【
図18】監視者端末上で異常判定結果を表示するイメージ図である。
【
図19】多要素認証処理を行う際の処理手順を示すフローチャートである。
【
図20】多要素認証処理のサブルーチンの処理手順を示すフローチャートである。
【
図21】合計リスクスコアにより異常を判定する際の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明をその実施形態を示す図面に基づいて詳述する。
【0010】
(実施形態1)
実施形態1は、ユーザの行動分析または不正操作検出を行うことにより異常を判定する形態に関する。ユーザの行動は、例えばウェブサイトへのアクセス、またはユーザの移動によるアクセス元の地域情報の変更等を含む。不正操作は、ユーザの操作ログに基づいて検出された不審な操作であり、例えばマウス操作無しのアクセス、存在しないページへのアクセスまたはVPN(Virtual Private Network)を使用したアクセス等である。
【0011】
図1は、クラウド型ウェブアプリケーションファイアウォール(WAF:Web Application Firewall)サービスを提供するシステムの概要を示す説明図である。本実施形態のシステムは、情報処理装置1、情報処理装置2、情報処理端末3及び情報処理端末4を含み、各装置はインターネット等のネットワークNを介して情報の送受信を行う。
【0012】
情報処理装置1は、種々の情報に対する処理、記憶及び送受信を行う情報処理装置である。情報処理装置1は、例えばサーバ装置、パーソナルコンピュータ等である。本実施形態において、情報処理装置1はサーバ装置であるものとし、以下では簡潔のためサーバ1と読み替える。
【0013】
情報処理装置2は、ウェブアプリケーション、ウェブサイトまたはウェブサービスの運用業務等を行う情報処理装置であり、例えばサーバ装置、パーソナルコンピュータ等である。情報処理装置2は、例えばEC(Electronic Commerce)サイト、通販サイトまたはゲーム等を運営するための情報処理装置であっても良い。なお、情報処理装置2に、該情報処理装置2上のウェブサイトまたはウェブアプリケーションを監視するためのWAFサービスを提供するアプリケーションがインストールされる。本実施形態において、情報処理装置2はサーバ装置であるものとし、以下では簡潔のためウェブサーバ2と読み替える。
【0014】
情報処理端末3は、ウェブサーバ2へのアクセス、及びウェブサーバ2から送信されたウェブコンテンツの表示等を行う端末装置である。情報処理端末3は、例えばスマートフォン、携帯電話、アップルウォッチ(Apple Watch:登録商標)等のウェアラブルデバイス、タブレット、パーソナルコンピュータ端末等の情報処理機器である。以下では簡潔のため、情報処理端末3をユーザ端末3と読み替える。
【0015】
情報処理端末4は、ユーザの不正操作または外部の攻撃等の各種の異常の受信及び表示等を行う端末装置である。情報処理端末4は、例えばスマートフォン、携帯電話、アップルウォッチ等のウェアラブルデバイス、タブレット、パーソナルコンピュータ端末等の情報処理機器である。以下では簡潔のため、情報処理端末4を監視者端末4と読み替える。
【0016】
本実施形態に係るサーバ1は、ユーザがウェブサーバ2上で運営されている保護対象のウェブサイトへアクセスした場合、ユーザのユーザ端末3の端末情報及びログインの有無情報を含むアクセス情報を取得して記憶する。サーバ1は、ログインの有無情報に基づき、ログインありでのアクセスであると判定した場合、端末情報及びユーザの操作ログに基づいて各種の異常を判定する。サーバ1は、異常を判定したユーザのアクセス履歴情報及び異常判定結果を監視者端末4に送信する。
【0017】
図2は、サーバ1の構成例を示すブロック図である。サーバ1は、制御部11、記憶部12、通信部13、入力部14、表示部15、読取部16及び大容量記憶部17を含む。各構成はバスBで接続されている。
【0018】
制御部11はCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を含み、記憶部12に記憶された制御プログラム1Pを読み出して実行することにより、サーバ1に係る種々の情報処理、制御処理等を行う。なお、
図2では制御部11を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【0019】
記憶部12はRAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ素子を含み、制御部11が処理を実行するために必要な制御プログラム1P又はデータ等を記憶している。また、記憶部12は、制御部11が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部13は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、ウェブサーバ2、ユーザ端末3及び監視者端末4等との間で情報の送受信を行う。
【0020】
入力部14は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部11へ出力する。表示部15は、液晶ディスプレイ又は有機EL(electroluminescence)ディスプレイ等であり、制御部11の指示に従い各種情報を表示する。
【0021】
読取部16は、CD(Compact Disc)-ROM又はDVD(Digital Versatile Disc)-ROMを含む可搬型記憶媒体1aを読み取る。制御部11が読取部16を介して、制御プログラム1Pを可搬型記憶媒体1aより読み取り、大容量記憶部17に記憶しても良い。また、ネットワークN等を介して他のコンピュータから制御部11が制御プログラム1Pをダウンロードし、大容量記憶部17に記憶しても良い。さらにまた、半導体メモリ1bから、制御部11が制御プログラム1Pを読み込んでも良い。
【0022】
大容量記憶部17は、例えばHDD(Hard disk drive:ハードディスク)、SSD(Solid State Drive:ソリッドステートドライブ)等の記録媒体を備える。大容量記憶部17は、端末情報DB171、リスクスコアDB172、操作ログDB173、異常判定結果DB174及びアクセス履歴DB175を含む。
【0023】
端末情報DB171は、ユーザの端末情報を記憶している。リスクスコアDB172は、各種の異常を判定(検出)するための各評価項目に対するリスクスコアの評価ルール等を記憶している。操作ログDB173は、ユーザの操作ログを記憶している。異常判定結果DB174は、各種の異常を判定した判定結果を記憶している。アクセス履歴DB175は、ユーザが保護対象のウェブサイトへアクセスした時間等の履歴情報を記憶している。
【0024】
なお、本実施形態において記憶部12及び大容量記憶部17は一体の記憶装置として構成されていても良い。また、大容量記憶部17は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部17はサーバ1に接続された外部記憶装置であっても良い。
【0025】
なお、本実施形態では、サーバ1は一台の情報処理装置であるものとして説明するが、複数台により分散して処理させても良く、または仮想マシンにより構成されていても良い。
【0026】
図3は、端末情報DB171のレコードレイアウトの一例を示す説明図である。端末情報DB171は、トークン列、端末ID列、アクセス先ホスト列、アクセス元列、Torネットワーク利用可否列、VPN利用可否列、プロキシ利用可否列、パブリッククラウド利用可否列、OS(Operating System)列及びブラウザ列を含む。
【0027】
トークン列は、ユーザの端末に対応付けて発行したトークンを記憶している。トークンは、ウェブサービスを利用する際に、サーバがユーザの端末を識別するために発行する情報である。トークンは、例えばユニークなランダムの英数字を所定の長さ(16桁、32桁、64桁等)で発行したトークンID、生成日時及び有効期間等を含む情報であっても良い。
【0028】
端末ID列は、ユーザの端末を識別するための固有のID、または端末情報(例えば、OS情報またはブラウザ情報等)に基づいて生成された端末IDを記憶している。アクセス先ホスト列は、アクセス先のホスト情報(IPアドレス、ホスト名等)を記憶している。アクセス元列は、グローバルIPアドレス列、プライベートIPアドレス列、国列、ISP列、シティ列、緯度列及び経度列を含む。
【0029】
グローバルIPアドレス列は、グローバルIPアドレス(IzyInternet Protocol Address)を記憶している。グローバルIPアドレスは、インターネットに接続するコンピュータまたは通信機器等の機器に割り当てられるIPアドレスである。インターネットに接続する機器がインターネット上で通信を行う場合は、重複しないグローバルIPアドレスが必要になる。
【0030】
プライベートIPアドレス列は、プライベートIPアドレスを記憶している。プライベートIPアドレス(ローカルIPアドレス)は、組織内のネットワーク(プライベートネットワーク)でのみ使用できるIPアドレスである。プライベートIPアドレスは、個々のプライベートネットワーク内のみで使うことができるIPアドレスであるが、同じネットワーク内で重複して使うことができない。
【0031】
国列は、アクセス元の国の情報を記憶している。ISP(Internet Services Provider)列は、公衆通信回線等を経由して契約者にインターネットへの接続を提供するプロバイダ(事業者)を記憶している。シティ列は、シティの情報を記憶している。緯度列及び経度列は、アクセス元の位置情報を記憶している。具体的には、緯度列は、アクセス元の緯度を記憶している。経度列は、アクセス元の経度を記憶している。
【0032】
Torネットワーク利用可否列は、Tor(The Onion Router)ネットワークの利用可否情報を記憶している。VPN利用可否列は、VPNの利用可否情報を記憶している。プロキシ利用可否列は、プロキシの利用可否情報を記憶している。パブリッククラウド利用可否列は、業界・業種を問わず企業もしくは個人に向けてクラウドコンピューティング環境を提供しているオープンな形態であるパブリッククラウドの利用可否情報を記憶している。OS列は、オペレーティングシステムに関する情報(バージョン、セキュリティパッチ等)を記憶している。ブラウザ列は、ブラウザに関する情報(バージョン、プラグイン等)を記憶している。
【0033】
図4は、リスクスコアDB172のレコードレイアウトの一例を示す説明図である。リスクスコアDB172は、項目ID列、項目名称列、リスクスコア評価ルール列及び基準スコア列を含む。項目ID列は、各評価項目を識別するために、一意に特定される評価項目のIDを記憶している。項目名称列は、評価項目の名称を記憶している。リスクスコア評価ルール列は、評価項目に対するリスクスコア(得点)の付与ルール(規則)を記憶している。基準スコア列は、異常を判定するための基準となるリスクスコアを記憶している。
【0034】
図5は、操作ログDB173のレコードレイアウトの一例を示す説明図である。操作ログDB173は、番号列、ユーザID列、端末ID列、アクセス先IPアドレス列、アクセス元IPアドレス列、操作列及び日時列を含む。番号列は、各操作ログを識別するために、一意に特定される操作ログのIDを記憶している。ユーザID列は、ユーザを特定するユーザIDを記憶している。
【0035】
端末ID列は、ユーザの端末を識別するための固有のIDを記憶している。アクセス先IPアドレス列は、アクセス先のIPアドレスを記憶している。アクセス元IPアドレス列は、アクセス元のIPアドレスを記憶している。操作列は、操作の名称を記憶している。操作列には、例えば「マウスクリック」、「ページアクセス」、「プロキシ利用あり」または「Java(登録商標)scriptブラウザON」等のユーザ操作の名称が記憶されても良い。日時列は、操作を行った日時情報を記憶している。
【0036】
図6は、異常判定結果DB174のレコードレイアウトの一例を示す説明図である。異常判定結果DB174は、ユーザID列、端末ID列、異常項目列、異常メッセージ列、リスクスコア列及び判定日時列を含む。ユーザID列は、ユーザを特定するユーザIDを記憶している。端末ID列は、ユーザの端末を識別するための固有のIDを記憶している。
【0037】
異常項目列は、異常項目の名称を記憶している。異常メッセージ列は、異常の内容を示す異常メッセージを記憶している。リスクスコア列は、異常項目に対応するリスクスコアを記憶している。判定日時列は、異常を判定した日時情報を記憶している。
【0038】
図7は、アクセス履歴DB175のレコードレイアウトの一例を示す説明図である。アクセス履歴DB175は、トークン列、端末ID列、アクセス先ホスト列、アクセス時間帯列、ログインなしアクセス日時列、ログインありアクセス日時列及びログインユーザID列を含む。
【0039】
トークン列は、ユーザの端末に対応付けて発行したトークンを記憶している。端末ID列は、ユーザの端末を識別するための固有のIDを記憶している。アクセス先ホスト列は、アクセス先のホスト情報を記憶している。アクセス時間帯列は、平日列及び休日列を含む。平日列は、ユーザがウェブサイトへアクセスした日が平日である場合、アクセスした時点での時間帯を記憶している。
【0040】
休日列は、ユーザがウェブサイトへアクセスした日が休日である場合、アクセスした時点での時間帯を記憶している。ログインなしアクセス日時列は、ログインなしでのアクセス日時を記憶している。ログインありアクセス日時列は、ログインありでのアクセス日時を記憶している。ログインユーザID列は、ログインしたユーザIDを記憶している。
【0041】
なお、上述した各DBの記憶形態は一例であり、データ間の関係が維持されていれば、他の記憶形態であっても良い。
【0042】
図8は、ウェブサーバ2の構成例を示すブロック図である。ウェブサーバ2は、制御部21、記憶部22、通信部23、入力部24、表示部25、読取部26及び大容量記憶部27を含む。各構成はバスBで接続されている。
【0043】
制御部21はCPU、MPU、GPU等の演算処理装置を含み、記憶部22に記憶された制御プログラム2Pを読み出して実行することにより、ウェブサーバ2に係る種々の情報処理、制御処理等を行う。なお、
図8では制御部21を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【0044】
記憶部22はRAM、ROM等のメモリ素子を含み、制御部21が処理を実行するために必要な制御プログラム2P又はデータ等を記憶している。また、記憶部22は、制御部21が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部23は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、サーバ1及びユーザ端末3等との間で情報の送受信を行う。
【0045】
入力部24は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部21へ出力する。表示部25は、液晶ディスプレイ又は有機ELディスプレイ等であり、制御部21の指示に従い各種情報を表示する。
【0046】
読取部26は、CD-ROM又はDVD-ROMを含む可搬型記憶媒体2aを読み取る。制御部21が読取部26を介して、制御プログラム2Pを可搬型記憶媒体2aより読み取り、大容量記憶部27に記憶しても良い。また、ネットワークN等を介して他のコンピュータから制御部21が制御プログラム2Pをダウンロードし、大容量記憶部27に記憶しても良い。さらにまた、半導体メモリ2bから、制御部21が制御プログラム2Pを読み込んでも良い。
【0047】
大容量記憶部27は、例えばHDD、SSD等の記録媒体を備える。なお、本実施形態において記憶部22及び大容量記憶部27は一体の記憶装置として構成されていても良い。また、大容量記憶部27は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部27はウェブサーバ2に接続された外部記憶装置であっても良い。
【0048】
なお、本実施形態では、ウェブサーバ2は一台の情報処理装置であるものとして説明するが、複数台により分散して処理させても良く、または仮想マシンにより構成されていても良い。
【0049】
図9は、ユーザ端末3の構成例を示すブロック図である。ユーザ端末3は、制御部31、記憶部32、通信部33、入力部34及び表示部35を含む。各構成はバスBで接続されている。
【0050】
制御部31はCPU、MPU等の演算処理装置を含み、記憶部32に記憶された制御プログラム3Pを読み出して実行することにより、ユーザ端末3に係る種々の情報処理、制御処理等を行う。なお、
図9では制御部31を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。記憶部32はRAM、ROM等のメモリ素子を含み、制御部31が処理を実行するために必要な制御プログラム3P又はデータ等を記憶している。また、記憶部32は、制御部31が演算処理を実行するために必要なデータ等を一時的に記憶する。
【0051】
通信部33は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、サーバ1、ウェブサーバ2等と情報の送受信を行う。入力部34は、キーボード、マウスまたは表示部35と一体化したタッチパネルでも良い。表示部35は、液晶ディスプレイ又は有機ELディスプレイ等であり、制御部31の指示に従い各種情報を表示する。
【0052】
図10は、監視者端末4の構成例を示すブロック図である。監視者端末4は、制御部41、記憶部42、通信部43、入力部44及び表示部45を含む。各構成はバスBで接続されている。
【0053】
制御部41はCPU、MPU等の演算処理装置を含み、記憶部42に記憶された制御プログラム4Pを読み出して実行することにより、監視者端末4に係る種々の情報処理、制御処理等を行う。なお、
図10では制御部41を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。記憶部42はRAM、ROM等のメモリ素子を含み、制御部41が処理を実行するために必要な制御プログラム4P又はデータ等を記憶している。また、記憶部42は、制御部41が演算処理を実行するために必要なデータ等を一時的に記憶する。
【0054】
通信部43は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、サーバ1等と情報の送受信を行う。入力部44は、キーボード、マウスまたは表示部45と一体化したタッチパネルでも良い。表示部45は、液晶ディスプレイ又は有機ELディスプレイ等であり、制御部41の指示に従い各種情報を表示する。
【0055】
図11は、クラウド型ウェブアプリケーションファイアウォールサービスを提供するシステムの構造図である。クラウド型WAFサービスを提供するシステムは、ユーザ層(プレーヤー)、WAF層、IPS(Intrusion Prevention System)/IDS(Intrusion Detection System)層及びFW(Firewall)層を含む。ユーザ層は、ユーザの行動分析または不正操作検出を行うことにより各種の異常を判定するユーザセキュリティ層である。WAF層は、ウェブアプリケーションへの攻撃を防御する層である。WAF層は、ウェブアプリケーションの脆弱性を突いた攻撃のパターンを検出し、その通信を遮断する。
【0056】
IPS/IDS層は、ネットワークへの攻撃を防御する層である。IPSは、不正アクセスまたは攻撃等の異常を検出した場合に、自動で通信を遮断するシステムである。IDSは、不正アクセスまたは攻撃等の異常な通信があった場合に、侵入を検知して管理者に通知するシステムである。FW層は、企業または組織等の内部ネットワークに外部のネットワークからの攻撃または不正侵入を防御する層である。
【0057】
該システムは、第1異常、第2異常及び第3異常を含む異常を判定することができる。第1異常は、ログイン時間及びログイン時点での地域情報に基づいて検出する異常である。第2異常は、同一ユーザIDで過去ログイン時の端末と異なる端末が利用された場合に検出する異常である。第3異常は、ユーザの操作ログに基づいて不正操作を検出する異常である。図示のように、第1異常及び第2異常がユーザ層から検出され、第3異常が各層から検出される。
【0058】
図12は、異常を判定する動作を説明する説明図である。ユーザがウェブサーバ2上で運営されている保護対象のウェブサイトへアクセスした場合、ユーザ端末3の制御部31は、通信部33を介して、該ウェブサイトへのアクセスリクエストをサーバ1に送信する。サーバ1の制御部11は、通信部13を介して、ユーザ端末3から送信されたアクセスリクエストを受信し、受信したアクセスリクエストからアクセス情報を抽出する。
【0059】
アクセス情報は、アクセス元の複数種類の端末情報及びログインの有無情報を含む。複数種類の端末情報は、端末ID、アクセス先ホスト、アクセス元のIPアドレス、位置情報(緯度及び経度)、Torネットワークの利用可否情報、VPNの利用可否情報、プロキシの利用可否情報、パブリッククラウドの利用可否情報、OS情報またはブラウザ情報を含む。
【0060】
制御部11は、抽出したアクセス情報に含まれた端末情報を取得する。制御部11は、取得した複数種類の端末情報から端末IDを取得する。なお、本実施形態では、端末IDを端末情報から取得した例を説明したが、これに限るものではない。例えば、制御部11は、取得した複数種類の端末情報中の任意の端末情報(例えば、OS情報またはブラウザ情報等)に基づき、端末IDを生成しても良い。制御部11は、取得した端末IDに対応付けて該端末の識別に使用するトークン(Token)を発行する。制御部11は、取得した端末情報からアクセス元のIPアドレスを取得する。制御部11は、取得したIPアドレスに基づいて、IPアドレスによる地域情報抽出用のAPI(Application Programming Interface)を用いて、アクセス元のプロバイダ、国及び地域(例えば、シティ等)を含むアクセス元の地域情報を特定する。
【0061】
制御部11は、発行したトークンに対応付けて、受信した端末情報と、特定した地域情報とを大容量記憶部17の端末情報DB171及びアクセス履歴DB175に記憶する。具体的には、制御部11は、トークンに対応付けて、端末ID、アクセス先ホスト、アクセス元のIPアドレス、国、プロバイダ、シティ、緯度、経度、Torネットワークの利用可否情報、VPNの利用可否情報、プロキシの利用可否情報、パブリッククラウドの利用可否情報、OS情報及びブラウザ情報を一つのレコードとして端末情報DB171に記憶する。制御部11は、トークン、端末ID、アクセス先ホスト、アクセス時間帯、ログインなしでのアクセス日時、ログインありでのアクセス日時、及びログイン時に使用されたユーザIDを一つのレコードとしてアクセス履歴DB175に記憶する。
【0062】
制御部11は、アクセス情報からログインの有無情報を取得し、取得したログインの有無情報に基づき、ユーザがログインしているか否かを判定する。制御部11は、ユーザがログインしていると判定した場合、第1異常、第2異常及び第3異常を判定する。
【0063】
具体的には、制御部11は、第1異常、第2異常及び第3異常を判定するための各評価項目に対応付けられた評価ルール及び基準スコアを大容量記憶部17のリスクスコアDB172から取得する。評価項目は、グローバルIPアドレス、プライベートIPアドレス、国、ISP、シティ、VPN、プロキシ、OS、ブラウザ、レスポンスコード、メソッド、Torネットワーク、パブリッククラウドID、Torネットワーク、Javascript、マウス操作、存在しないURLへのアクセス、ブラウザプラグインまたはログイン時間帯等を含む。
【0064】
先ず、第1異常を判定する処理を説明する。制御部11は端末IDに基づき、大容量記憶部17のアクセス履歴DB175から前回ログイン時点でのトークン及びログイン時間を取得する。制御部11は、取得したトークンに基づいて、前回ログイン時点での地域情報(以下、「前回地域情報」と読み替える)を大容量記憶部17の端末情報DB171から取得する。制御部11は、取得した前回ログイン時間及び前回地域情報と、今回ログイン時間及び今回地域情報とに基づき、第1異常であるか否かを判定する。第1異常に対する評価項目は、ログイン時間帯、国、プロバイダまたはシティ等を含む。
【0065】
例えば、制御部11はログイン時間に基づいて第1異常を判定する場合、「ログイン時間帯」評価項目の評価ルールに応じて、今回ログイン時間の時間帯及び前回ログイン時間の時間帯に基づき、「ログイン時間帯」評価項目のリスクスコアを算出する。制御部11は、算出したリスクスコアが基準スコア以上である場合、第1異常として判定する。
【0066】
例えば、制御部11は地域情報に基づいて第1異常を判定する場合(例えば地域情報に含まれた「国」を例として説明する)、「国」評価項目の評価ルールに応じて、今回ログイン時点での国情報と前回ログイン時点での国情報に基づき、「国」評価項目のリスクスコアを算出する。制御部11は、算出したリスクスコアが基準スコア以上である場合、第1異常として判定する。
【0067】
なお、本実施形態では、前回のログイン時間及び前回地域情報の例を説明したが、これに限るものではない。例えば、制御部11は過去の複数回のログイン時間及び地域情報を取得する。制御部11は、取得した複数回のログイン時間の平均値に基づいて第1異常を判定しても良い。または、制御部11は、複数回の地域情報に対し、ログインした地域の回数を集計する。制御部11は、集計した回数に応じて決められる評価ルールに基づいて第1異常を判定しても良い。例えば、ログインした地域の回数が少ない場合、高いリスクスコアが設定されても良く、またはログインした地域の回数が多い場合、低いリスクスコアが設定されても良い。また、ログインした地域の回数に対し、いくつかのランクを設定しても良い。例えば、回数が「5回以下」である場合、リスクスコアが40であり、回数が「5回~10回」である場合、リスクスコアが30である。
【0068】
次に、第2異常を判定する処理を説明する。制御部11は、ユーザIDに基づき、大容量記憶部17のアクセス履歴DB175から前回ログイン時点でのトークン及び端末IDを取得する。制御部11は、取得したトークン及び端末IDに基づき、大容量記憶部17の端末情報DB171に記憶された前回ログイン時点での端末情報を取得する。
【0069】
制御部11は、所定の評価項目に基づき、今回ログインの端末情報と前回ログインの端末情報とを比較する。評価項目は、例えば端末ID、アクセス元のIPアドレス、OSまたはブラウザを含む。例えば、制御部11は今回ログインの端末IDと前回ログインの端末IDとが異なると判定した場合、第2異常として判定する。
【0070】
制御部11は、今回ログインの端末IDと前回ログインの端末IDとが一致すると判定した場合、端末ID以外の評価項目(IPアドレス、OS等)に対して比較する。制御部11は、端末ID以外の不一致の評価項目数が所定数(例えば、2)以上であると判定した場合、第2異常として判定する。
【0071】
そして、第3異常を判定する処理を説明する。制御部11は、ユーザID及び端末IDに基づき、大容量記憶部17の操作ログDB173からユーザの操作ログを取得する。制御部11は、取得した操作ログから、第3異常を判定するための評価項目を抽出する。評価項目は、例えばレスポンスコード、メソッド、Torネットワーク、Javascript、マウス操作、存在しないURLへのアクセス、またはブラウザプラグイン等を含む。
【0072】
制御部11は、取得した各評価項目に対して、各評価項目に対応付けられた評価ルールに基づき、各評価項目のリスクスコアを算出する。制御部11は、算出した各評価項目のリスクスコアと基準スコアとを比較する。制御部11は、例えば各評価項目の中のいずれかの評価項目のリスクスコアが基準スコア以上であると判定した場合、第3異常として判定する。または、制御部11は、評価項目のリスクスコアが基準スコア以上である評価項目数が所定数(例えば、4)以上であると判定した場合、第3異常として判定しても良い。
【0073】
以下では、「メソッド」評価項目の例として説明する。制御部11は、不審なメソッドを使用したか否かを判定する。不審なメソッドは、例えば信頼できない引数を与えることにより攻撃のリスクが高いメソッド、または将来廃止されるメソッド等であっても良い。制御部11は、不審なメソッドを使用したと判定した場合、「メソッド」評価項目の評価ルールに基づき、「メソッド」評価項目のリスクスコアを算出する。
【0074】
例えば、「メソッド」評価項目の評価ルールが「不審なメソッド使用:30 不審なメソッド未使用:0」である場合、制御部11は、「メソッド」評価項目のリスクスコアが30であると算出する。制御部11は、算出した「メソッド」評価項目のリスクスコアと基準スコア(例えば、30)とを比較する。制御部11は、算出した「メソッド」評価項目のリスクスコアが基準スコア以上であると判定した場合、第3異常として判定する。
【0075】
なお、上述した処理で、第1異常、第2異常及び第3異常の判定処理の順に説明したが、これに限らず、任意の順で異常を判定しても良い。
【0076】
制御部11は、第1異常、第2異常または第3異常を含む異常を判定した場合、判定した異常の判定結果を大容量記憶部17の異常判定結果DB174に記憶する。具体的には、制御部11は、ユーザID、端末ID、異常項目、異常メッセージ、リスクスコア及び判定日時を一つのレコードとして異常判定結果DB174に記憶する。
【0077】
制御部11は、異常を判定したユーザのアクセス履歴情報を大容量記憶部17のアクセス履歴情報DB176から取得する。アクセス履歴情報は、端末ID、アクセス先ホスト、アクセス時間帯、ログイン有無情報付きのアクセス日時、またはログインがある場合のユーザID等を含む。制御部11は、取得したユーザのアクセス履歴情報及び異常判定結果を通信部13により監視者端末4に送信する。制御部11は、異常を判定した旨を含むメッセージを通信部13によりユーザ端末3に送信する。
【0078】
制御部11は、第1異常、第2異常または第3異常を含む異常を判定していない場合、アクセス情報を通信部13によりウェブサーバ2に送信する。なお、アクセス情報の代わりに、制御部11は、ユーザ端末3から送信されたアクセスリクエストをそのままにウェブサーバ2に送信しても良い。
【0079】
図13及び
図14は、異常を判定する際の処理手順を示すフローチャートである。ユーザ端末3の制御部31は、通信部33を介して、保護対象のウェブサイトへのアクセスリクエストをサーバ1に送信する(ステップS301)。サーバ1の制御部11は、通信部13を介して、ユーザ端末3から送信されたアクセスリクエストを受信する(ステップS101)。制御部11は、受信したアクセスリクエストからアクセス情報を抽出する(ステップS102)。アクセス情報は、アクセス元の端末情報及びログインの有無情報を含む。
【0080】
制御部11は、抽出したアクセス情報に含まれた複数種類の端末情報から端末IDを取得し(ステップS103)、取得した端末IDに対応付けて該端末の識別に使用するトークンを発行する(ステップS104)。制御部11は、端末情報からアクセス元のIPアドレスを取得する(ステップS105)。制御部11は、取得したIPアドレスに基づいて、IPアドレスによる地域情報抽出用のAPIを用いて、アクセス元のプロバイダ、国及び地域を含むアクセス元の地域情報を特定する(ステップS106)。制御部11は、発行したトークンに対応付けて、受信した端末情報と、特定した地域情報とを大容量記憶部17の端末情報DB171及びアクセス履歴DB175に記憶する(ステップS107)。
【0081】
制御部11は、アクセス情報からログインの有無情報を取得し、取得したログインの有無情報に基づき、ユーザがログインしているか否かを判定する(ステップS108)。制御部11は、ユーザがログインしていないと判定した場合(ステップS108でNO)、後述するステップS118に遷移する。制御部11は、ユーザがログインしていると判定した場合(ステップS108でYES)、第1異常、第2異常及び第3異常を判定するための各評価項目に対応付けられた評価ルール及び基準スコアを大容量記憶部17のリスクスコアDB172から取得する(ステップS109)。
【0082】
制御部11は、第1異常を判定する(ステップS110)。制御部11は、第2異常を判定する(ステップS111)。制御部11は、第3異常を判定する(ステップS112)。なお、第1異常、第2異常及び第3異常の判定処理サブルーチンについては後述する。制御部11は、第1異常、第2異常または第3異常を判定した判定結果に基づき、異常があるか否かを判定する(ステップS113)。
【0083】
制御部11は、異常がないと判定した場合(ステップS113でNO)、アクセス情報を通信部13によりウェブサーバ2に送信する(ステップS118)。ウェブサーバ2の制御部21は、通信部23を介して、サーバ1から送信されたアクセス情報を受信する(ステップS201)。
【0084】
制御部11は、異常があると判定した場合(ステップS113でYES)、異常の判定結果を大容量記憶部17の異常判定結果DB174に記憶する(ステップS114)。制御部11は、異常を判定したユーザのアクセス履歴情報を大容量記憶部17のアクセス履歴情報DB176から取得する(ステップS115)。制御部11は、取得したユーザのアクセス履歴情報及び異常判定結果を通信部13により監視者端末4に送信する(ステップS116)。制御部11は、異常を判定した旨を含む異常メッセージを通信部13によりユーザ端末3に送信する(ステップS117)。
【0085】
監視者端末4の制御部41は、通信部43を介して、サーバ1から送信されたユーザアクセス履歴情報及び異常判定結果を通信部43により受信する(ステップS401)。制御部41は、受信したユーザアクセス履歴情報及び異常判定結果を表示部45により表示する(ステップS402)。ユーザ端末3の制御部31は、サーバ1から送信された異常メッセージを通信部33により受信し(ステップS303)、受信した異常メッセージを表示部35により表示する(ステップS304)。
【0086】
図15は、第1異常を判定する処理のサブルーチンの処理手順を示すフローチャートである。制御部11は端末IDに基づき、大容量記憶部17のアクセス履歴DB175から前回ログイン時点でのトークン及びログイン時間を取得する(ステップS11)。制御部11は、取得したトークンに基づいて、前回ログイン時点での前回地域情報を大容量記憶部17の端末情報DB171から取得する(ステップS12)。
【0087】
制御部11は、「ログイン時間帯」評価項目の評価ルールに応じて、前回ログイン時間の時間帯と今回ログイン時間の時間帯とに基づき、「ログイン時間帯」評価項目のリスクスコアを算出する(ステップS13)。「ログイン時間帯」評価項目の評価ルールは、過去の時間帯の終了時間と今回の時間帯の開始時間との時間間隔によって設定されても良い。時間間隔が長い場合、高いリスクスコアが設定されても良い。逆に、時間間隔が短い場合、低いリスクスコアが設定されても良い。例えば「ログイン時間帯」評価項目の評価ルールは、「前回(8:00-12:00)、且つ、今回(19:00-21:00):15 前回(8:00-12:00)、且つ、今回(21:00-23:00):30」である。前回ログイン時間の時間帯が「8:00-12:00」であり、且つ、今回ログイン時間の時間帯が「19:00-21:00」であると判定した場合、制御部11は、「ログイン時間帯」評価項目のリスクスコアが15であると算出する。
【0088】
制御部11は、算出した「ログイン時間帯」評価項目のリスクスコアが基準スコア以上であるか否かを判定する(ステップS14)。制御部11は、算出した「ログイン時間帯」評価項目のリスクスコアが基準スコア以上である場合(ステップS14でYES)、第1異常である判定処理結果を出力し(ステップS22)、リターンする。制御部11は、算出した「ログイン時間帯」評価項目のリスクスコアが基準スコア未満である場合(ステップS14でNO)、「国」評価項目の評価ルールに応じて、前回ログイン時点での国情報と今回ログイン時点での国情報に基づき、「国」評価項目のリスクスコアを算出する(ステップS15)。
【0089】
「国」評価項目の評価ルールは、過去ログイン時点での国情報と今回ログイン時点での国情報との相違性によって設定されても良い。変更がある場合、高いリスクスコアが設定される。また、変更がない場合、低いリスクスコアが設定される。
【0090】
例えば「国」評価項目の評価ルールは、「変更あり:70 変更なし:0」である。制御部11は、前回ログイン時点での国情報(例えば、日本)と今回ログイン時点での国情報(例えば、米国)とが一致しないと判定した場合、「国」評価項目の評価ルールに基づき、「国」評価項目のリスクスコアが70であると算出する。制御部11は、前回ログイン時点での国情報(例えば、日本)と今回ログイン時点での国情報(例えば、日本)とが一致すると判定した場合、「国」評価項目の評価ルールに基づき、「国」評価項目のリスクスコアが0であると算出する。
【0091】
制御部11は、算出した「国」評価項目のリスクスコアが基準スコア以上であるか否かを判定する(ステップS16)。制御部11は、算出した「国」評価項目のリスクスコアが基準スコア以上である場合(ステップS16でYES)、ステップS22に遷移する。制御部11は、算出した「国」評価項目のリスクスコアが基準スコア未満である場合(ステップS16でNO)、「シティ」評価項目の評価ルールに応じて、前回ログイン時点でのシティ情報と今回ログイン時点でのシティ情報に基づき、「シティ」評価項目のリスクスコアを算出する(ステップS17)。
【0092】
「シティ」評価項目の評価ルールは、過去ログイン時点でのシティと今回ログイン時点でのシティとの相違性によって設定されても良い。変更がある場合、高いリスクスコアが設定される。また、変更がない場合、低いリスクスコアが設定される。
【0093】
例えば「シティ」評価項目の評価ルールは、「変更あり:40 変更なし:0」である。制御部11は、前回ログイン時点でのシティ情報(例えば、東京)と今回ログイン時点でのシティ情報(例えば、大阪)とが一致しないと判定した場合、「シティ」評価項目の評価ルールに基づき、「シティ」評価項目のリスクスコアが40であると算出する。制御部11は、前回ログイン時点でのシティ情報(例えば、東京)と今回ログイン時点でのシティ情報(例えば、東京)とが一致すると判定した場合、「シティ」評価項目の評価ルールに基づき、「シティ」評価項目のリスクスコアが0であると算出する。
【0094】
また、「シティ」評価項目の評価ルールは、過去ログイン時点でのシティと今回ログイン時点でのシティとの距離によって設定されても良い。距離が遠い場合、高いリスクスコアが設定される。また、距離が近い場合、低いリスクスコアが設定される。距離に応じて、いくつかのランクを設定しても良い。例えば、「10km(kilometer)以下:5 10km~30km:10 30km~50km:15」である評価ルールが設定されても良い。
【0095】
制御部11は、算出した「シティ」評価項目のリスクスコアが基準スコア以上であるか否かを判定する(ステップS18)。制御部11は、算出した「シティ」評価項目のリスクスコアが基準スコア以上である場合(ステップS18でYES)、ステップS22に遷移する。制御部11は、算出した「シティ」評価項目のリスクスコアが基準スコア未満である場合(ステップS18でNO)、「プロバイダ」評価項目の評価ルールに応じて、前回ログイン時点でのプロバイダ情報と今回ログイン時点でのプロバイダ情報に基づき、「プロバイダ」評価項目のリスクスコアを算出する(ステップS19)。
【0096】
「プロバイダ」評価項目の評価ルールは、過去ログイン時点でのプロバイダと今回ログイン時点でのプロバイダとの相違性によって設定されても良い。変更がある場合、高いリスクスコアが設定される。また、変更がない場合、低いリスクスコアが設定される。
【0097】
例えば「プロバイダ」評価項目の評価ルールは、「変更あり:30 変更なし:0」である。制御部11は、前回ログイン時点でのプロバイダ情報(例えば、プロバイダA)と今回ログイン時点でのプロバイダ情報(例えば、プロバイダB)とが一致しないと判定した場合、「プロバイダ」評価項目の評価ルールに基づき、「プロバイダ」評価項目のリスクスコアが30であると算出する。制御部11は、前回ログイン時点でのプロバイダ情報(例えば、プロバイダA)と今回ログイン時点でのプロバイダ情報(例えば、プロバイダA)とが一致すると判定した場合、「プロバイダ」評価項目の評価ルールに基づき、「プロバイダ」評価項目のリスクスコアが0であると算出する。
【0098】
制御部11は、算出した「プロバイダ」評価項目のリスクスコアが基準スコア以上であるか否かを判定する(ステップS20)。制御部11は、算出した「プロバイダ」評価項目のリスクスコアが基準スコア以上である場合(ステップS20でYES)、ステップS22に遷移する。制御部11は、算出した「プロバイダ」評価項目のリスクスコアが基準スコア未満である場合(ステップS20でNO)、第1異常でない判定処理結果を出力し(ステップS21)、リターンする。
【0099】
なお、第1異常を判定する処理には、上述した「ログイン時間帯」、「国」、「シティ」及び「プロバイダ」評価項目に限らず、他の評価項目にも同様に適用される。例えば制御部11は、今回のログイン時間と前回のログイン時間との間隔を利用して第1異常を判定しても良い。具体的には、制御部11は、今回のログイン時間と前回のログイン時間との間隔を算出する。制御部11は、「ログイン間隔」評価項目の評価ルールに応じて、算出した間隔に基づき、「ログイン間隔」評価項目のリスクスコアを算出する。
【0100】
「ログイン間隔」評価項目の評価ルールは、過去ログインの時間と今回ログインの時間との時間間隔によって設定されても良い。時間間隔が長い場合、高いリスクスコアが設定されても良い。逆に、時間間隔が短い場合、低いリスクスコアが設定されても良い。
【0101】
例えば「ログイン間隔」評価項目の評価ルールは、「10日未満:5 …… 三ヵ月~半年:30 半年~1年:40」である。例えば、算出した間隔が「八カ月」である場合、制御部11は「ログイン間隔」評価項目の評価ルールに基づき、「ログイン間隔」評価項目のリスクスコアが40であると算出する。制御部11は、算出した「ログイン間隔」評価項目のリスクスコアが基準スコア(例えば、30)以上である場合、第1異常として判定する。
【0102】
また、「ログイン時間帯」及び「ログイン間隔」のほかに、例えば制御部11は、ログイン時間により平日・休日、曜日等の情報を特定し、特定した、平日・休日、曜日等の評価ルールに基づいて第1異常を判定しても良い。
【0103】
図16は、第2異常を判定する処理のサブルーチンの処理手順を示すフローチャートである。制御部11は、ユーザIDに基づき、大容量記憶部17のアクセス履歴DB175から前回ログイン時点でのトークン及び端末IDを取得する(ステップS31)。制御部11は、取得したトークン及び端末IDに基づき、大容量記憶部17の端末情報DB171に記憶された前回ログイン時点での端末情報を取得する(ステップS32)。
【0104】
制御部11は、今回ログイン時点での端末IDと前回ログイン時点での端末IDとが一致するか否かを判定する(ステップS33)。制御部11は、今回ログイン時点での端末IDと前回ログイン時点での端末IDとが一致しないと判定した場合(ステップS33でNO)、第2異常である判定処理結果を出力し(ステップS42)、リターンする。
【0105】
制御部11は、今回ログイン時点での端末IDと前回ログイン時点での端末IDとが一致すると判定した場合(ステップS33でYES)、今回ログイン時点でのアクセス元のIPアドレスと前回ログイン時点でのアクセス元のIPアドレスとが一致するか否かを判定する(ステップS34)。制御部11は、今回ログイン時点でのIPアドレスと前回ログイン時点でのIPアドレスとが一致しないと判定した場合(ステップS34でNO)、不一致の項目数を累積し(ステップS35)、後述するステップS36に遷移する。
【0106】
制御部11は、今回ログイン時点でのIPアドレスと前回ログイン時点でのIPアドレスとが一致すると判定した場合(ステップS34でYES)、今回ログイン時点でのOS情報と前回ログイン時点でのOS情報とが一致するか否かを判定する(ステップS36)。制御部11は、今回ログイン時点でのOS情報と前回ログイン時点でのOS情報とが一致しないと判定した場合(ステップS36でNO)、不一致の項目数を累積し(ステップS37)、後述するステップS38に遷移する。
【0107】
制御部11は、今回ログイン時点でのOS情報と前回ログイン時点でのOS情報とが一致すると判定した場合(ステップS36でYES)、今回ログイン時点でのブラウザ情報と前回ログイン時点でのブラウザ情報とが一致するか否かを判定する(ステップS38)。制御部11は、今回ログイン時点でのブラウザ情報と前回ログイン時点でのブラウザ情報とが一致しないと判定した場合(ステップS38でNO)、不一致の項目数を累積し(ステップS39)、後述するステップS40に遷移する。
【0108】
制御部11は、今回ログイン時点でのブラウザ情報と前回ログイン時点でのブラウザ情報とが一致すると判定した場合(ステップS38でYES)、累積した不一致の項目数が所定数(例えば、2)以上であるか否かを判定する(ステップS40)。制御部11は、不一致の項目数が所定数以上であると判定した場合(ステップS40でYES)、ステップS42に遷移する。制御部11は、不一致の項目数が所定数より小さいと判定した場合(ステップS40でNO)、第2異常でない判定処理結果を出力し(ステップS41)、リターンする。
【0109】
なお、第2異常を判定する処理には、上述した「端末ID」、「IPアドレス」、「OS」及び「ブラウザ」評価項目に限らず、他の評価項目にも同様に適用される。
【0110】
図17は、第3異常を判定する処理のサブルーチンの処理手順を示すフローチャートである。制御部11は、ユーザID及び端末IDに基づき、大容量記憶部17の操作ログDB173からユーザの操作ログを取得する(ステップS61)。制御部11は、取得した操作ログから、第3異常を判定するための複数の評価項目を抽出する(ステップS62)。評価項目は、例えばレスポンスコード、メソッド、Torネットワーク、Javascript、マウス操作、存在しないURLへのアクセス、またはブラウザプラグイン等を含む。
【0111】
制御部11は、抽出した複数の評価項目の中から、一つの評価項目を取得する(ステップS63)。例えば、「Torネットワーク」評価項目を取得する。制御部11は、取得した評価項目に対応付けられた評価ルールに基づき、該評価項目のリスクスコアを算出する(ステップS64)。例えば、制御部11は、取得した「Torネットワーク」評価項目に基づき、Torネットワークを利用したか否かを判定する。制御部11は、Torネットワークを利用したと判定した場合、「Torネットワーク」評価項目の評価ルールを取得する。
【0112】
例えば、「Torネットワーク」評価項目の評価ルールが「Torネットワーク利用:70 Torネットワーク未利用:0」である場合、制御部11は、「Torネットワーク」評価項目のリスクスコアが70であると算出する。制御部11は、算出した評価項目のリスクスコアが基準スコア以上であるか否かを判定する(ステップS65)。例えば、「Torネットワーク」評価項目の基準スコアが「50」である場合、制御部11は、「Torネットワーク」評価項目のリスクスコアが50以上であるか否かを判定する。
【0113】
制御部11は、算出した評価項目のリスクスコアが基準スコア以上であると判定した場合(ステップS65でYES)、評価項目数を累積し(ステップS66)、後述するステップS67に遷移する。制御部11は、算出した評価項目のリスクスコアが基準スコア未満であると判定した場合(ステップS65でNO)、複数の評価項目の中で該評価項目が最後の項目であるか否かを判定する(ステップS67)。
【0114】
制御部11は、該評価項目が最後の項目でないと判定した場合(ステップS67でNO)、ステップS63に遷移する。制御部11は、該評価項目が最後の項目であると判定した場合(ステップS67でYES)、累積した評価項目数が所定数以上であるか否かを判定する(ステップS68)。
【0115】
制御部11は、累積した評価項目数が所定数以上であると判定した場合(ステップS68でYES)、第3異常である判定処理結果を出力し(ステップS70)、リターンする。制御部11は、累積した評価項目数が所定数より小さいと判定した場合(ステップS68でNO)、第3異常でない判定処理結果を出力し(ステップS69)、リターンする。
【0116】
なお、上述した第3異常の判定処理に限るものではない。例えば、制御部11は、それぞれの評価項目のリスクスコアを合計し、合計した合計リスクスコアと、基準合計リスクスコアとを比較する。制御部11は、合計した合計リスクスコアが基準合計リスクスコア以上であると判定した場合、第3異常として判定しても良い。
【0117】
図18は、監視者端末4上で異常判定結果を表示するイメージ図である。サーバ1の制御部11は、異常判定結果を通信部13により監視者端末4に送信する。監視者端末4の制御部41は、サーバ1から送信された異常判定結果を通信部43により受信し、受信した異常判定結果を表示部45により表示する。図示のように、異常判定結果は、端末ID、ユーザID、ログイン時間、異常メッセージ、リスクスコア、操作ログ及び詳細情報を含む。
【0118】
本実施形態によると、ユーザのログイン時間及びアクセス元の地域情報に基づいて異常を検出することが可能となる。
【0119】
本実施形態によると、同一ユーザIDで過去ログイン際の端末と異なる端末を利用する場合の異常を検出することが可能となる。
【0120】
本実施形態によると、ユーザの操作ログに基づいて不正操作の異常を検出することが可能となる。
【0121】
本実施形態によると、ユーザ層を含むクラウド型WAFサービスを提供することにより、ユーザの行動分析または不正操作検出を行うため、高いセキュリティを実現することが可能となる。
【0122】
(実施形態2)
実施形態2は、ユーザがログインした際に、高いリスクを検出した場合、多要素認証処理を行う形態に関する。なお、実施形態1と重複する内容については説明を省略する。
【0123】
ユーザが保護対象のウェブサイトへログインした場合、サーバ1の制御部11は、ログイン認証処理を行う。具体的には、制御部11は、認証処理を行うための各評価項目を端末情報から抽出する。評価項目は、例えばグローバルIPアドレス、プライベートIPアドレス、国、プロバイダ、シティ、VPN、プロキシ等を含む。制御部11は、抽出した各評価項目に対応付けられた評価ルール及び基準スコアを大容量記憶部17のリスクスコアDB172から取得する。
【0124】
制御部11は、取得した評価ルールに基づき、各評価項目に対してリスクスコアを算出する。なお、リスクスコアの算出処理に関しては、実施形態1でのリスクスコアの算出処理と同様であるため、説明を省略する。制御部11は、算出した各評価項目のリスクスコアと、各評価項目の基準スコアとを比較する。例えば制御部11は、リスクスコアが基準スコア以上である評価項目数が所定数(例えば、3つ)以上であると判定した場合、多要素認証処理を行う。
【0125】
なお、多要素認証処理を行うか否かの判定処理は、上述した判定方法に限るものではない。例えば、各評価項目の中のいずれかの評価項目のリスクスコアが基準スコア以上であると判定した場合、多要素認証処理を行う。
【0126】
多要素認証処理は、認証の3要素である「知識情報」、「所持情報」、「生体情報」のうち、2つ以上を組み合わせて認証することである。知識情報は、例えばパスワード、ピンコードまたは秘密の質問等を含む。所持情報は、携帯電話、ハードウェアトークンまたはICカード等を含む。生体情報は、指紋、静脈または声紋等を含む。
【0127】
例えば、ユーザがユーザID及びパスワードを用いてウェブサイトへログインした場合、サーバ1の制御部11は、各評価項目に対してリスクスコアを算出する。制御部11は、各評価項目の中のいずれかの評価項目のリスクスコアが基準スコア以上であると判定した場合、ユーザ端末3へ認証コードの発行指示、または指紋認証指示の送信等を行う。多要素認証処理を行うことにより、攻撃者が正規ユーザのユーザID及びパスワード等の情報を盗んだ可能性があると判定された場合、不正アクセスを防ぐことができる。
【0128】
図19は、多要素認証処理を行う際の処理手順を示すフローチャートである。サーバ1の制御部11は、認証処理を行うための複数の評価項目を端末情報から抽出する(ステップS121)。制御部11は、抽出した各評価項目に対応付けられた評価ルール及び基準スコアを大容量記憶部17のリスクスコアDB172から取得する(ステップS122)。
【0129】
制御部11は、抽出した複数の評価項目の中から、一つの評価項目を取得する(ステップS123)。制御部11は、取得した評価項目に対応付けられた評価ルールに基づき、該評価項目のリスクスコアを算出する(ステップS124)。制御部11は、算出した評価項目のリスクスコアが基準スコア以上であるか否かを判定する(ステップS125)。
【0130】
制御部11は、算出した評価項目のリスクスコアが基準スコア以上であると判定した場合(ステップS125でYES)、評価項目数を累積する(ステップS126)、後述するステップS127に遷移する。制御部11は、算出した評価項目のリスクスコアが基準スコア未満であると判定した場合(ステップS125でNO)、複数の評価項目の中で該評価項目が最後の項目であるか否かを判定する(ステップS127)。
【0131】
制御部11は、該評価項目が最後の項目でないと判定した場合(ステップS127でNO)、ステップS123に遷移する。制御部11は、該評価項目が最後の項目であると判定した場合(ステップS127でYES)、累積した評価項目数が所定数以上であるか否かを判定する(ステップS128)。
【0132】
制御部11は、累積した評価項目数が所定数以上であると判定した場合(ステップS128でYES)、多要素認証処理を行う(ステップS129)。なお、多要素認証処理を行うサブルーチンについては後述する。制御部11は、多要素認証処理を行った認証結果を通信部13によりウェブサーバ2に送信する(ステップS130)。ウェブサーバ2の制御部21は、サーバ1から送信された認証結果を通信部23により受信する(ステップS221)。制御部11は、累積した評価項目数が所定数より小さいと判定した場合(ステップS128でNO)、処理を終了する。
【0133】
図20は、多要素認証処理のサブルーチンの処理手順を示すフローチャートである。なお、
図20では、多要素認証処理の一つ要素である認証コードをユーザ端末3へ発行する例として説明するが、他の要素を利用して多要素認証処理を行っても良い。
【0134】
サーバ1の制御部11は、ユーザID及び認証コードの発行指示を通信部13によりウェブサーバ2に送信する(ステップS141)。ウェブサーバ2の制御部21は、サーバ1から送信されたユーザID及び認証コードの発行指示を通信部23により受信する(ステップS241)。制御部21は、受信した認証コードの発行指示に応じて、受信したユーザIDに基づいてユーザの電話番号を大容量記憶部17から取得する(ステップS242)。制御部21は、取得した電話番号を通信部23によりサーバ1に送信する(ステップS243)。
【0135】
サーバ1の制御部11は、ウェブサーバ2から送信されたユーザの電話番号を通信部13により受信する(ステップS142)。制御部11は、受信した電話番号に基づき、例えばSMS(Short Message Service)経由でユーザ端末3に認証コード(例えば、4桁の数字等)を送信する(ステップS143)。ユーザ端末3の制御部31は、SMS経由でサーバ1から送信された認証コードを通信部33により受信する(ステップS341)。
【0136】
制御部31は、入力部34を介して、例えばユーザにより認証コードの入力画面で入力された認証コードを受け付ける(ステップS342)。制御部31は、ユーザにより入力された認証コードを通信部33によりサーバ1に送信する(ステップS343)。サーバ1の制御部11は、通信部13を介して、ユーザにより入力された認証コードをユーザ端末3から受信する(ステップS144)。
【0137】
制御部11は、ユーザにより入力された認証コードと、ユーザ端末3に発行した認証コードとを比較し、ユーザにより入力された認証コードが正しいか否かを判定する(ステップS145)。制御部11は、ユーザにより入力された認証コードが正しいと判定した場合(ステップS145でYES)、多要素認証に成功した結果を出力し(ステップS146)、リターンする。制御部11は、ユーザにより入力された認証コードが正しくないと判定した場合(ステップS145でNO)、多要素認証に失敗した結果を出力し(ステップS147)、リターンする。
【0138】
本実施形態によると、高いリスクを検出した場合に多要素認証処理を行うことにより、攻撃者が正規ユーザになりすましてウェブサイトへのアクセスを防止するため、セキュリティレベルの向上を図ることが可能となる。
【0139】
(実施形態3)
実施形態3は、端末情報に基づき、所定の評価項目のリスクスコアを算出することにより、第2異常を判定する形態に関する。なお、実施形態1~2と重複する内容については説明を省略する。
【0140】
サーバ1の制御部11は、ユーザIDに基づき、大容量記憶部17のアクセス履歴DB175から前回ログイン時点でのトークン及び端末IDを取得する。制御部11は、取得したトークン及び端末IDに基づき、大容量記憶部17の端末情報DB171に記憶された前回ログイン時点での端末情報を取得する。制御部11は、所定の評価項目に基づき、今回ログインの端末情報と前回ログインの端末情報とを比較する。評価項目は、例えば端末ID、アクセス元のIPアドレス、OSまたはブラウザを含む。
【0141】
具体的には、制御部11は、今回ログイン時点での評価項目と、前回のログイン時点での評価項目とを比較する。例えば、制御部11は、「端末ID」、「アクセス元のIPアドレス」、「OS」、「ブラウザ」評価項目に対し、今回ログイン時点での項目内容と、前回ログイン時点での項目内容とを比較する。
【0142】
制御部11は、比較対象の評価項目が一致していないと判定した場合、該評価項目の評価ルールに応じて、該評価項目のリスクスコアを算出する。評価ルールは、例えば「端末ID 不一致:100 一致:0、アクセス元のIPアドレス 不一致:60 一致:0、OS 不一致:70 一致:0、ブラウザ 不一致:30 一致:0」等であっても良い。
【0143】
例えば、制御部11は、今回のログイン時点での端末IDと、前回ログイン時点での端末IDとが一致していないと判定した場合、上述した評価ルールに基づき、「端末ID」評価項目のリスクスコアが100であると算出する。制御部11は、算出した「端末ID」評価項目のリスクスコアが基準スコア(例えば、60)以上であるか否かを判定する。制御部11は、「端末ID」評価項目のリスクスコアが基準スコア以上であると判定した場合、第2異常として判定する。
【0144】
制御部11は、今回のログイン時点での端末IDと前回ログイン時点での端末IDとが一致すると判定した場合、端末ID以外の評価項目(例えば、IPアドレス、OS等)に対して比較する。この場合、例えば制御部11は、端末ID以外の評価項目のリスクスコアが基準スコア以上である評価項目数が所定数(例えば、2)以上であると判定した場合、第2異常として判定する。
【0145】
なお、上述したリスクスコアにより異常を判定する処理の流れに関しては、実施形態1での判定処理の流れと同様であるため、フローチャートの説明を省略する。
【0146】
本実施形態によると、端末情報に基づき、所定の評価項目のリスクスコアを算出することにより第2異常を判定することが可能となる。
【0147】
(実施形態4)
実施形態4は、第1異常、第2異常及び第3異常の合計リスクスコアにより、異常を判定する形態に関する。なお、実施形態1~3と重複する内容については説明を省略する。
【0148】
サーバ1の制御部11は、第1異常を判定した場合、第1異常を判定した各評価項目のリスクスコアに基づき、第1合計リスクスコアを算出する。制御部11は、第2異常を判定した場合、第2異常を判定した各評価項目のリスクスコアに基づき、第2合計リスクスコアを算出する。制御部11は、第3異常を判定した場合、第3異常を判定した各評価項目のリスクスコアに基づき、第3合計リスクスコアを算出する。
【0149】
制御部11は、算出した第1合計リスクスコア、第2合計リスクスコア及び第3合計リスクスコアの合計リスクスコアを算出する。制御部11は、算出した合計リスクスコアと、合計リスクスコアにより異常を判定するための基準スコアとを比較する。制御部11は、算出した合計リスクスコアが基準スコア以上であると判定した場合、異常として判定する。
【0150】
制御部11は、第1合計リスクスコア、第2合計リスクスコア、第3合計リスクスコアに基づき、例えば縦棒グラフまたは円グラフを生成する。制御部11は、通信部13を介して、生成したグラフ情報を監視者端末4に送信する。監視者端末4は、サーバ1から送信したグラフ情報を通信部43により受信し、受信したグラフ情報を表示部45により表示する。なお、上述したグラフに限るものではない。例えば、制御部11は、第1合計リスクスコア、第2合計リスクスコア、第3合計リスクスコア、または三者の合計リスクスコアに基づき、表の形式でのレポートを生成する。制御部11は、生成したレポートを通信部13により監視者端末4に送信しても良い。
【0151】
図21は、合計リスクスコアにより異常を判定する際の処理手順を示すフローチャートである。なお、第1異常、第2異常及び第3異常の判定処理に関しては、実施形態1での判定処理と同様であるため、説明を省略する。
【0152】
サーバ1の制御部11は、第1異常を判定した各評価項目のリスクスコアに基づき、第1合計リスクスコアを算出する(ステップS161)。制御部11は、第2異常を判定した各評価項目のリスクスコアに基づき、第2合計リスクスコアを算出する(ステップS162)。制御部11は、第3異常を判定した各評価項目のリスクスコアに基づき、第3合計リスクスコアを算出する(ステップS163)。
【0153】
制御部11は、算出した第1合計リスクスコア、第2合計リスクスコア及び第3合計リスクスコアの合計リスクスコアを算出する(ステップS164)。制御部11は、合計リスクスコアにより異常を判定するための基準スコアを記憶部12または大容量記憶部17から取得する(ステップS165)。制御部11は、算出した合計リスクスコアが基準スコア以上であるか否かを判定する(ステップS166)。
【0154】
制御部11は、算出した合計リスクスコアが基準スコア以上であると判定した場合(ステップS166でYES)、ステップS167~S169を実行する。監視者端末4の制御部41は、ステップS461~S462を実行する。なお、ステップS167~S169、及びS461~S462の処理は、
図14でのステップS114~S116、及びS401~S402と同様であるため、説明を省略する。制御部11は、算出した合計リスクスコアが基準スコア未満であると判定した場合(ステップS166でNO)、
図14でのステップS118に遷移する。
【0155】
本実施形態によると、合計リスクスコアにより異常を判定することができるため、総合的に異常を判定することが可能となる。
【0156】
今回開示された実施形態は全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0157】
1 情報処理装置(サーバ)
11 制御部
12 記憶部
13 通信部
14 入力部
15 表示部
16 読取部
17 大容量記憶部
171 端末情報DB
172 リスクスコアDB
173 操作ログDB
174 異常判定結果DB
175 アクセス履歴DB
1a 可搬型記憶媒体
1b 半導体メモリ
1P 制御プログラム
2 情報処理装置(ウェブサーバ)
21 制御部
22 記憶部
23 通信部
24 入力部
25 表示部
26 読取部
27 大容量記憶部
2a 可搬型記憶媒体
2b 半導体メモリ
2P 制御プログラム
3 情報処理端末(ユーザ端末)
31 制御部
32 記憶部
33 通信部
34 入力部
35 表示部
3P 制御プログラム
4 情報処理端末(監視者端末)
41 制御部
42 記憶部
43 通信部
44 入力部
45 表示部
4P 制御プログラム