【実施例1】
【0014】
図1は実施形態を示し、本発明を適用する計算機システムのハードウェア構成を示すブロック図である。
【0015】
図1において、ネットワーク101にはユーザが業務を行うモバイル端末装置110と、ユーザの端末操作を分析し不正利用の監視を行う操作分析サーバ130と、ユーザが業務を行うためのアプリケーションプログラムが動作する業務Webサーバ170が接続されている。
【0016】
モバイル端末装置110は、演算処理を行うCPU111と、プログラムやデータを格納するメモリ112と、ネットワーク101を介して他のサーバと通信を行う通信インターフェース113と、モバイル端末の位置を検出するための位置検出モジュール114と、モバイル端末の加速度を測定するための加速度センサ115と、操作画面を表示するための画面表示装置116と、画面表示装置においてユーザが触れた位置を検出するためのタッチセンサ117を備える。ユーザはタッチセンサ117を操作することによりWebブラウザ121を操作する。通信インターフェース113とネットワーク101の接続は、有線ネットワークもしくは無線ネットワークのどちらでもよい。
【0017】
モバイル端末装置110のメモリ112には、Webブラウザ121が、プログラムとして存在する。さらにWebブラウザ121は、業務Webサーバ170からのレスポンスを画面表示するレンダリングエンジン122と、レスポンスに含まれる操作記録機能124および操作ログ送信機能125を実行するスクリプトエンジン123を含む。操作記録機能124は、ユーザがWebブラウザ121上で行った操作を操作ログとして記録し、操作ログ送信機能125は、記録された操作ログを操作分析サーバ130へ送信する。
【0018】
操作分析サーバ130は、CPU131と、メモリ132と、通信インターフェース133と、ディスクコントローラ134と、ローカルディスク135と、を備える。操作分析サーバ130のメモリ132には、操作分析プログラム141が存在し、操作分析プログラム141は、操作記録モジュール挿入機能142と、レスポンス改変機能143と、不正利用検出機能144と、を含む。CPU131がメモリに記録されている各種プログラムを読み出して実行することにより、各種機能を実現する。また、ローカルディスク135には、操作ログテーブル145と、操作特徴量テーブル146と、操作特徴量重みテーブル147と、判定閾値テーブル148と、判定結果テーブル149が格納されている。
【0019】
業務Webサーバ170は、CPU171と、メモリ172と、通信インターフェース173と、ディスクコントローラ174と、ローカルディスク175と、を備える。操作分析サーバ170のメモリ172には、業務アプリケーションプログラム181が存在する。ここで業務アプリケーションプログラム181は、例えば、メール送受信、商品在庫管理、勤怠管理、営業案件管理などをWebブラウザから操作することが可能なプログラムである。
【0020】
はじめに、
図2から
図7を用いて、不正利用判定処理に必要な操作特徴量重みを算出する処理について説明する。
【0021】
図2は、操作特徴量重みを算出する際の処理の流れを表すシステム構成図である。
【0022】
ユーザはモバイル端末装置110のWebブラウザ121を用いて、業務Webサーバ170で動作する業務アプリケーション181にアクセスする。Webブラウザ121がリクエスト(S201)を発行すると、そのリクエストを操作分析サーバ130の操作記録モジュール142がトラップし、操作記録モジュール142が同一のリクエストを業務Webサーバ170の業務アプリケーション181へ送信する(S202)。業務アプリケーション181はリクエストに対するレスポンスを送信し(S203)、操作記録モジュール142は受信したレスポンスへ操作記録機能124および操作ログ送信機能125を埋め込んで、Webブラウザ121へ送信する(S205)。
【0023】
Webブラウザ121では業務アプリケーション181の画面が表示されるが、同時に操作記録機能124および操作ログ送信機能125がスクリプトエンジン123において実行される。画面上でユーザが操作を行った場合(S206)、その操作内容を操作記録機能124が記録し(S207)、操作ログ送信機能125が操作分析サーバ130へ送信する(S208)。
【0024】
操作分析サーバ130上の不正利用検出機能144はモバイル端末装置110からの操作ログを受信すると、操作ログテーブル145へ操作ログを格納する。さらに、受信した操作ログから操作特徴量を算出し、操作特徴量テーブル146に格納する(S209)。さらに、操作特徴量テーブル146から特徴量の重みを算出し、操作特徴量重みテーブル147へ格納する(S210)。
【0025】
上記のように、操作記録モジュール142が、モバイル端末装置110へのレスポンスS205に操作記録機能124および操作ログ送信機能125を埋め込むことによって、モバイル端末装置110および業務Webサーバ170を変更することなく、自動的にWebブラウザ121において操作記録機能124および操作ログ送信機能125を動作させることが可能となる。
【0026】
図3に、操作ログテーブル145の一例を示す。
【0027】
操作ログテーブル145には、ユーザを識別するためのID301、操作が行われた日時302、操作が行われたWebページのURL303、操作によって発生したイベントの種別304、イベント種別に応じた属性値305が含まれる。
【0028】
例として、ユーザがWebページを表示した際には、イベント種別が“load”である操作ログレコードが記録される。ユーザが別のWebページを表示したり、Webブラウザを終了した場合には、イベント種別“unload”が記録される。また、ユーザがタッチパネルに手を触れた際には、イベント種別が“touchstart”、タッチパネルから手を離した際には、イベント種別が“touchend”である操作ログレコードが記録される。この際、属性値には手を触れたもしくは離した際のタッチパネル上の座標が記録される。
【0029】
また、ユーザがWebブラウザ上に表示されたWebページをスクロールさせた場合には、イベント種別“scroll”がスクロール移動量とともに記録される。
【0030】
また、ユーザがWebページ内の入力欄にテキストを入力した場合は、その内容が“keypress”として記録される。
【0031】
また、ユーザがWebページ上に表示されたボタンや他のWebページへのリンクなどを押した場合には、“click”が記録される。
【0032】
また、ユーザがモバイル端末装置110の画面表示方向(縦長方向または横長方向)を変更した場合には、イベント種別”orientationchange”が記録される。
【0033】
また、位置検出モジュール114から取得された端末位置情報(緯度、経度、移動速度)は、イベント種別“geolocation”として記録される。
【0034】
また、加速度センサ115から取得された加速度情報は、イベント種別“devicemotion”として記録される。
【0035】
図4に、操作特徴量テーブル146の一例を示す。
【0036】
操作特徴量テーブル146には、WebページのURL401、ユーザを識別するためのID402、モバイル端末装置の利用状況403の組み合わせに対し、N個の操作特徴量404から406が記録される。ここでは、利用状況が机上である場合のユーザXの操作特徴量V
iの値をV
Xi_Dと記載し、利用状況が手持ちである場合をV
Xi_Hと記載している。利用状況403については、
図7の説明において詳細を述べる。
【0037】
操作特徴量は、モバイル端末の加速度センサ115で取得される加速度情報、位置検出モジュール114で取得される位置情報、さらにはタッチセンサ117で取得されるタッチパネルの操作情報などから算出される。
【0038】
ここで操作特徴量とは、例えば次のようなものである。“load”から“unload”までの所要時間から算出されるページの閲覧時間、“touchstart”から“touchend”までの所要時間の平均から算出されるタッチ平均時間、スクロール移動量およびスクロール時のタッチ所要時間から算出されるスクロール操作速度、“touchstart”および“touchend”の座標から算出されるタッチパネル上でのスクロール操作位置、“touchstart”および“touchend”の座標から算出されるタッチ操作によるWebページ表示の拡大・縮小の操作方向および頻度、“keypress”から算出される文字の入力速度、“orientationchange”に記録された画面表示方向(縦長/横長)、“devicemotion”に記録された加速度から算出される端末の角度および振動量である。
【0039】
また、操作特徴量テーブル146は、Webページ毎に全てのユーザについて各々の操作特徴量を平均した操作特徴量平均値V
i_avgが格納されている。
【0040】
図5に、操作特徴量重みテーブル147の一例を示す。
【0041】
操作特徴量重みテーブル147には、WebページのURL501、ユーザを識別するためのID502、モバイル端末装置の利用状況503の組み合わせに対し、N個の操作特徴量重み504から506が含まれる。ここでは、ユーザXの操作特徴量V
iに対する操作特徴量重みの値W
iを、W
Xi_Dと記載している。
【0042】
図6に、不正利用検出機能144における特徴量重み算出処理のフローチャートを示す。
【0043】
モバイル端末装置110からのユーザの操作ログを受信すると、その操作ログを操作ログテーブル145へ書き込む(S601)。次に、受信した操作ログを基に、当該ユーザの操作特徴量を算出する(S602)。次に、
図7で述べる利用状況判定処理により、当該ユーザのモバイル端末の利用状況を判定する(S603)。当該WebページURLおよび当該ユーザおよび利用状況に対し、操作特徴量を操作特徴量テーブル146へ書き込み(S604)、操作特徴量テーブル146における平均値V
i_avgを再度算出し更新する(S604)。
【0044】
さらに数1によって操作特徴量重みを算出し、当該ユーザのS604で判定した利用状況における操作特徴量重みを記録する(S606)。
【0045】
【数1】
【0046】
数1における操作特徴量重み算出は、全ユーザの平均からより異なっている特徴量の重みを高くするようになっている。これにより、各ユーザの特徴が出やすい操作に対して特徴量重みが高くなるため、不正利用検出精度の向上効果が得られる。
【0047】
図7に、不正利用検出機能144における利用状況判定処理S603のフローチャートの例を示す。
【0048】
操作特徴量テーブル146に格納された振動量を用いて、振動量が一定値以上かを判定する(S701)。振動量が一定値より大きい場合は、振動周期が一定値以下であるか判定する(S702)。振動周期が一定値以下である場合は、電車や自動車等に「乗車中」であると判定する(S703)。振動周期が一定以上である場合は、端末角度に変動があるかを判定し(S704)、変動がある場合は端末を「手持ち歩行中」であると判定する(S705)。端末角度に変動が無い場合は、利用状況を「その他不明」とする(S706)。S701において振動量が一定値以下である場合も、S704と同様に端末角度に変動があるがを判定し(S707)、変動がある場合は端末を「手持ち静止中」であると判定する(S708)。端末角度に変動が無い場合は、利用状況を「机上」とする(S709)。
【0049】
上記では端末角度および振動量により判定処理を行う例を示したが、端末位置情報を組み合わせて判定してもよい。
【0050】
モバイル端末装置は、机上に置いて両手で操作する場合と、片手で持ちもう一方の手で操作する場合で操作の傾向が大きく異なる。また歩行中や、電車や自動車等に乗車中などでは周囲の環境により操作の傾向が変わる可能性がある。そのため上記のように振動量や端末角度からモバイル端末装置の利用状況を判定(S604)して、利用状況毎の操作特徴量重みを算出することにより、不正利用検出精度の向上が期待できる。
【0051】
以上まで、操作特徴量重みを算出する際の処理について説明した。次に、ユーザがアクセスした際に不正利用検出処理を行う際の処理の流れについて
図8から
図11を用いて説明する。
【0052】
図8は、不正利用検出処理の流れを表すシステム構成図である。
【0053】
ユーザが、Webブラウザ121において業務アプリケーション181の画面を表示して操作を行うと(S801)、操作記録機能124および操作ログ送信機能125により、その操作ログが操作分析サーバ130へ送信される(S802、S803)。操作分析サーバ130上の不正利用検出機能144はモバイル端末装置110からの操作ログを受信すると、操作ログテーブル145へ操作ログを格納する。さらに、受信した操作ログから操作特徴量を算出し、当該ユーザIDに対応する操作特徴量および操作特徴量重みを、操作特徴量テーブル146および操作特徴量重みテーブル147から取得する。受信した操作ログから算出された操作特徴量と、操作特徴量テーブル146に記録されている操作特徴量の類似度を算出する。この時、操作特徴量重みテーブル147に記録されている操作特徴量重みを使用して操作特徴量の類似度を重みつきで算出する。これにより、正規ユーザの特徴が表れやすい特徴量をより重視して操作特徴量の類似度を算出することが可能となり、不正利用の判定精度の向上が可能となる。この特徴量の重み付き類似度の算出方法については後述の
図11の説明において詳細に説明する。この特徴量の重み付き類似度を不正利用確度とする。算出された不正利用確度に対して、判定閾値テーブル148に格納されている判定閾値と比較することにより不正利用判定結果を算出し、判定結果テーブル149に格納する(S804)。
【0054】
その後、ユーザからWebページのリクエストが行われた場合、S805からS808の流れは
図2におけるS201からS204の流れと同一であるが、レスポンス改変機能143は、判定結果テーブル149を参照し、当該ユーザにおける判定結果を基に、モバイル端末装置110へのレスポンスを改変する(S809)。
【0055】
不正利用の可能性が疑われる場合の再認証において、常にモバイル端末におけるユーザIDやパスワードの再入力をさせることは、ユーザにとって操作が煩雑となる。そこで、本実施例では、不正利用確度に応じて再認証の方法を切り替える。これにより、ユーザIDやパスワードによる煩雑な認証を行わずにすむため、ユーザビリティを向上させることが可能となる。以下、詳細に説明する。
【0056】
図9に、判定閾値テーブル148の一例を示す。
【0057】
判定閾値テーブル148には、レスポンス種別901、および、各レスポンス種別に対応した判定閾値902が含まれる。判定閾値902は、端末が管理エリア内にある場合の判定閾値903と、管理エリア外にある場合の判定閾値904からなる。管理エリア外の場合の判定閾値905はさらに、ユーザのアクセス先がWebサイトAである場合の判定閾値905と、WebサイトBである場合の判定閾値906からなる。ここで管理エリアとは、端末が安全に利用可能な場所であり、例えばオフィスの執務室である。この例では、管理エリア外の場合の判定閾値904のみがアクセス先のWebサイトにより異なる判定閾値が設定されているが、管理エリア内の場合の判定閾値903についても同様にWebサイト毎に判定閾値を設定してもよい。
【0058】
端末の位置情報から端末が管理エリア内にあるか判定し、管理エリア内にある場合は、不正利用確度がT
IN_1以上である場合に判定結果はアクセス拒否となり、不正利用確度がT
IN_1未満T
IN_2以上である場合に判定結果は認証要となり、不正利用確度がT
IN_2未満T
IN_3以上である場合に判定結果は再操作要となり、不正利用確度がT
IN_3未満である場合に判定結果は問題なしとなる。端末が管理エリア外にある場合も、T
OUT_1〜T
OUT_3を用いて同様に判定する。操作分析サーバは、端末が管理エリア内にあるかを判定するために、管理エリア内外に対応する位置情報を予め保持している。また、判定閾値は、操作分析サーバの管理者が、外部から設定可能である。
【0059】
管理エリア外判定閾値904(T
OUT_1〜T
OUT_3)を管理エリア内判定閾値903(T
IN_1〜T
IN_3)より低く設定することにより、移動中など端末の盗難や紛失が発生しやすい状況における不正利用検出確率を向上させることが可能となる。また、アクセス先Webサイトに応じた判定閾値を使用することにより、機密性の高いWebサイトは判定閾値を厳しくし、機密性の低いWebサイトは判定閾値を緩くするといった、Webサイトの特性に応じた判定処理が可能となる。
【0060】
図10に、判定結果テーブル149の一例を示す。
【0061】
判定結果テーブル149には、ユーザID1001、および、各ユーザIDに対応した判定結果1002が含まれる。
【0062】
レスポンス改変機能143は、ユーザからのリクエストが行われた際に、当該ユーザのユーザIDに対応する不正利用判定結果を判定結果テーブル149から取得し、不正利用判定結果に応じたレスポンス改変を行って、Webブラウザ121へレスポンスを送信する。
【0063】
不正利用判定結果が「アクセス拒否」である場合は、レスポンスを送信せず、ユーザからのアクセスを拒否する。不正利用判定結果が「認証要」である場合は、ユーザIDおよびパスワードによる認証用Webページへユーザを移動させる。不正利用判定結果が「再操作要」である場合は、操作特徴量の違いが表れやすい他のWebページへユーザを移動させる。ここで、ユーザをどのWebページへ移動させるかは、数2により当該ユーザにおける各Webページの操作特徴量感度を算出し、最も操作特徴量感度が高いWebページを移動先ページとして選択する。
【0064】
【数2】
【0065】
不正利用判定結果が「問題なし」である場合は、レスポンスを改変せずWebブラウザ121へ送信する。
【0066】
上記のとおり、不正利用確度に応じて再認証の方法を切り替えることにより、不正利用確度が大きくない場合にユーザIDやパスワードによる煩雑な認証手順を行わずに済むため、ユーザビリティを向上させることが可能となる。
【0067】
図11に、不正利用検出機能144における不正利用判定処理のフローチャートを示す。
【0068】
モバイル端末装置110からのユーザの操作ログを受信すると、その操作ログを操作ログテーブル145へ書き込む(S1101)。次に、受信した操作ログを基に、当該ユーザの操作特徴量を算出する(S1102)。次に、
図7で述べた利用状況判定処理により、当該ユーザのモバイル端末の利用状況を判定する(S1103)。WebページURL、ユーザID、利用状況の組み合わせに対応する操作特徴量を、操作特徴量テーブル146から取得し(S1104)、数3により不正利用確度を算出する(S1105)。算出した不正利用確度と判定閾値テーブル148により、不正利用判定処理を行い、判定結果を判定結果テーブルへ書き込む(S1106)。
【0069】
【数3】
【0070】
以上の実施例構成により、複数の操作特徴量の組み合わせ、および、ユーザ間の操作特徴量のばらつきを考慮するための操作特徴量重み算出判定処理により、不正利用検出精度を向上させることが可能となる。
【0071】
また、不正利用確度に応じて再認証の方法を切り替えることにより、ユーザIDやパスワードによる煩雑な認証を行わずにすむため、ユーザビリティを向上させることが可能となる。
【実施例2】
【0072】
本実施例では、モバイル端末装置110側で不正利用判定処理を行う方法について示す。
【0073】
図12に、モバイル端末装置110側で不正利用判定処理を行う場合のシステム構成および処理の流れを示す。
【0074】
ユーザはモバイル端末装置110のWebブラウザ121を用いて、業務Webサーバ170で動作する業務アプリケーション181にアクセスする。Webブラウザ121がリクエスト(S1201)を発行すると、そのリクエストを操作分析サーバ130の操作記録モジュール142がトラップし、操作記録モジュール142が同一のリクエストを業務Webサーバ170の業務アプリケーション181へ送信する(S1202)。業務アプリケーション181はリクエストに対するレスポンスを送信し(S1203)、操作記録モジュール142は受信したレスポンスへ操作記録機能124および端末側不正利用検出機能150を埋め込んで、Webブラウザ121へ送信する(S1205)。この際、端末側不正利用検出機能150には、操作分析サーバの操作特徴量テーブル146、操作特徴量重みテーブル147、判定閾値テーブル148の当該ユーザに関する情報が送信される(S1204)。
【0075】
ユーザが、Webブラウザ121において業務アプリケーション181の画面を表示して操作を行うと(S1206)、操作記録機能124により操作内容が取得される(S1207)。
【0076】
端末側不正利用検出機能150は、取得された操作内容および操作特徴量テーブル146、操作特徴量重みテーブル147、判定閾値テーブル148から、不正利用判定処理を行い、その結果を判定結果テーブル149へ格納する。この際の判定処理方法は、
図11に記載のものと同一である。
【0077】
端末側不正利用検出機能150は、判定処理結果に基づいて、Webブラウザ121へページ遷移リクエストを行う(S1209)。
【0078】
以上の通り、モバイル端末装置110において不正利用検出処理を行うことにより、ユーザがWebページにアクセスするタイミングに限らず、任意のタイミングで不正利用検出処理を行うことが可能である。
【0079】
以上の実施例1および実施例2では、操作記録機能124、操作ログ送信機能125、端末側不正利用検出機能150は、Webブラウザ121上で動作するものとして説明したが、Webブラウザでなく、業務アプリケーションに対応した独立したプログラムであってもよい。
【0080】
また、操作分析プログラム141を業務サーバ170の上で動作させ、操作分析サーバ130を不要としてもよい。
【0081】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0082】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。