以降、本発明を実施するための形態(実施例)を説明する。本実施例では、それぞれに重みが付与された悪性度を判定する推測器を複数用意してアクセス先Webサイトの悪性度を判定し、悪性度が一定の閾値より高かった場合には、ユーザに追加認証を要求する。ユーザは、追加認証を要求された際に該アクセス先Webサイトへの接続可否を判断し、問題ないと判断した場合のみ追加認証を突破し、該Webサイトへアクセスする。これにより、利用者が意図しない、あるいは追加認証の存在を想定しておらず、該追加認証を突破できないマルウェア等による悪性サイトへのアクセスを抑制できる。また、該利用者判断と該Webサイト悪性度判定プログラムが算出した結果を突合し、両者が一致したか否かによって該Webサイト悪性度判定プログラムを構成する各推測器の重みを更新する。これにより、精度の高い推測器の判定を重視するようにし、全体としての悪性度判定精度を向上する。また、利用者判断を確認する際、付随的に得られる情報を用いて該判断が正しいか否か推定し、より確からしい利用者判断の結果を悪性度判定機構に反映する。これにより、誤った利用者判断を反映することによる悪性度判定精度の低下を抑制できる。
図1は、本発明の実施例に係るWebアクセス制御装置の構成例を示す図である。実施例に係るWebアクセス制御装置101は、ユーザが操作するユーザ端末121と、インターネット123と、をネットワーク122を介して接続される。
Webアクセス制御装置101は、CPU(Central Processing Unit)103と、CPU103が処理を実行するために必要なデータを格納するためのメインメモリ104と、大量のデータを記憶する容量を持つハードディスクやフラッシュメモリなどの記憶装置105と、他装置と通信を行なうためのIF(インタフェース)102と、キーボード、ディスプレイなどの入出力を行うための入出力装置106と、これらの各装置を接続する通信路107と、を備えたコンピュータである。なお、通信路107は、例えば、バスやケーブルなどの情報伝達媒体である。
CPU103は、メインメモリ104に格納されたアクセス中継プログラム108を実行することにより不審な通信の制御を、Webサイト悪性度判定プログラム109を実施することによりアクセス先Webサイトの悪性度の判定を、追加認証要求プログラム110を実行することによりユーザ端末121を操作するユーザの追加認証を、アクセス先情報取得プログラム111を実行することによりアクセス先Webサイトの情報取得を、リスト更新プログラム112を実行することによりグレーリスト118、ブラックリスト119、ホワイトリスト120の更新を、フィードバック値算出プログラム113を実行することによりWebサイト悪性度判定プログラム109を構成する各悪性度推測器124に割り当てられた重みへフィードバックする値の算出を、重み更新プログラム114を実行することによりフィードバック値算出プログラム113での算出値に基づいて推測器管理表116に記録されているWebサイト悪性度判定プログラム109を構成する各悪性度推測器124に割り当てられた重みの更新を行う。 記憶装置105には、ユーザ端末121を操作するユーザの追加認証結果やその際の付随情報を示す追加認証履歴115、Webサイト悪性度判定プログラム109を構成する悪性度推測器124の情報を管理する推測器管理表116、該推測器の時系列ごとの重みを管理する推測器重み履歴117、不審な通信先の情報を示すグレーリスト118、危険な通信先の情報を示すブラックリスト119、安全な通信先の情報を示すホワイトリスト120が格納されている。
上記の各プログラムやデータは、あらかじめメモリ104または記憶装置105に格納されていてもよいし、必要な時に、入出力装置106からまたは、IF102を介して他の装置から、インストール(ロード)されても良い。
図2は、追加認証履歴115の一例を示す図である。図2に示すように、追加認証履歴115は、ID201と、認証結果202と、付随情報203と、ユーザ識別情報207と、URL208とを含んで構成される。また、付随情報は、例えば、認証に要した時間204と、正解数205と、サイト情報表示有無206とから構成される。
ID201は、認証情報を一意に識別できる情報を表す。
認証結果202は、ユーザが追加認証に成功したか否かを表す。例えば、認証結果202が「成功」の場合は、ユーザが追加認証の突破に成功したことを、認証結果202が「失敗」の場合は、ユーザが追加認証の突破に失敗したことを表す。
付随情報203は、ユーザが追加認証に臨んだ際に付随的に得られる情報を表す。ここでは、付随情報203は、認証に要した時間204と、正解数205と、サイト情報表示有無206とから構成されるものとして説明する。
認証に要した時間204は、ユーザに追加認証画面が提示されてから、認証が試行されるまでに要した時間を表す。例えば、追加認証画面が表示されてから認証の試行に4.3秒を要した場合、認証の成否に関わらず、「4.3」と記録される。また、あらかじめ定められた一定時間認証突破の試行がなかった場合、「timeout」と記録される。
正解数205は、追加認証に文字列での認証を用いた場合に、全体の文字数のうち、どれだけ正解したかの数と、その正解率とを表す。例えば、認証文字列が「abcd」だった際、「abvf」と入力があったならば、全4文字中前半の2文字が正解しているため、「2(50%)」と記録される。なお、該時間は、追加認証要求プログラム110において、追加認証画面を提示した時間とユーザからの追加認証文字列を受信した時間の差分によって算出される。
サイト情報表示有無206は、追加認証時にユーザが該アクセス先Webサイトが悪性か否か判断する材料として追加情報を要求したか否かを表す。例えば、「有」の場合は、ユーザが追加情報を要求したことを、「無」の場合には、ユーザが追加情報を要求しなかったことを表す。なお、ユーザの判断を補助するための追加情報としては、該アクセス先Webサイトのサムネイル画像、whois情報、およびDNS情報等が挙げられる。
なお、追加認証履歴115の格納情報は、不審サイトへのアクセス試行があった際の追加認証時に取得され、格納されるものとする。また、今回は、付随情報として認証に要した時間204と、正解数205と、サイト情報表示有無206とを挙げたが、該情報以外に付随的に得られる情報を用いても良いものとする。
ユーザ識別情報207は、追加認証に臨んだユーザを一意に識別できる情報を表す。例えば、該ネットワーク環境において、「123」と識別子を付与されたユーザが該認証に望んだ場合、該ユーザを表す「123」が記録される。なお、今回はネットワークシステム上でユーザに付与された識別子を用いたが、ユーザを一意に識別できればよく、例えば、ユーザ端末のIP(Internet Protocol)アドレスや、該ユーザのユーザ名を用いても良い。
URL208は、該追加認証の対象となった不審な接続先のURLを表す。例えば、「foo.com」の場合は、該URLは、該追加認証の対象となった不審な接続先であることを表す。なお、今回は、URLを用いたが、不審な接続先を識別できれば良く、例えば、IPアドレスや、FQDN(Fully Qualified Domain Name)を用いても良い。
図3は、推測器管理表116の一例を示す図である。図3に示すように、推測器管理表116は、ID301と、正解率302と、重み303と、直近の悪性度判定結果304とを含んで構成される。
ID301は、Webサイト悪性度判定プログラム109を構成する各悪性度推測器124を一意に識別できる情報を表す。
正解率302は、これまでの各不審サイトに対する判定結果(悪性/良性)とユーザの追加認証結果(非突破/突破)の一致率を表す。例えば、「80%」の場合は、N回の不審サイトの悪性度判定機会のうち、0.8N回分の判定結果がユーザの追加認証結果と一致していたことを表す。該正解率が高い推測器ほどWebアクセス制御装置を導入した組織での悪性サイトの判別精度が高いものとして、重みを大きく付与される。各推測器に付与する重みを算出する際の具体的な処理手順については、図11を用いて後述する。
重み303は、各推測器に割り当てられた重みの合計値が1になるように正規化された値を表す。例えば、「0.2」の場合は、全推測器のうち20%の判断権を該推測器が有することを表す。
直近の悪性度判定結果304は、直近の悪性度判断機会において、判定対象の悪性度をどのように判定したかを表す。例えば、「75%」の場合は、当該推測器は、判定対象が75%の確率で悪性であると判断したことを表す。なお、今回はアクセス先Webサイトの不審度を表す指標として、該アクセス先Webサイトの悪性度を用いて説明したが、該アクセス先Webサイトの良性度等、不審度を表すことのできる指標であれば、どのような情報を用いても良い。
なお、推測器管理表116の各情報は、管理者が必要に応じて、入力または更新しても良い。
図4は、推測器重み履歴117の一例を示す図である。図4に示すように、推測器重み履歴117は、時刻401と、重み402と、悪性度判定結果403と、認証結果との一致404とを含んで構成される。また、推測器重み履歴117は、Webサイト悪性度判定プログラム109を構成する悪性度推測器124毎に用意され、該推測器に関する情報を格納する。なお、図4では、図3のIDが0の悪性度推測器124に対応する悪性度重み履歴117を例示している。
時刻401は、推測器が不審サイトの悪性度を判定した時間を表す。なお、図では、年/月/日 時間:分:秒.小数秒の表記を用いているが、Unixtime等、時刻が判別できる情報であれば、どのような情報を用いても良い。
重み402は、当該時刻における該推測器の重みを表す。例えば、「0.3」の場合は、当該時刻に該推測器へ0.3の重みが付与されていたことを表す。
悪性度判定結果403は、当該時刻における悪性度判定対象のWebサイトに対して、該推測器が算出した悪性度を表す。例えば、「75%」の場合は、該推測器は、当該時刻に判定対象が75%の確率で悪性であると判断したことを表す。
認証結果との一致404は、当該時刻における不審サイトに対する判定結果(悪性/良性)とユーザの追加認証結果(非突破/突破)が一致したか否かを表す。例えば、「一致」の場合は、両者が一致していたことを、「不一致」の場合は、両者が一致していなかったことを表す。
図5は、グレーリスト118の一例を示す図である。図5に示すように、グレーリスト118は、ID501と、URL502と、認証成功ユーザ数503と、認証失敗ユーザ数504と、ユーザ毎の認証結果505とを含んで構成される。
ID501は、グレーリスト118を一意に識別できる情報を表す。
URL502は、不審な接続先のURLを表す。例えば、「example.com」の場合は、該URLは不審な接続先であることを表す。なお、今回は、URLを用いたが、不審な接続先を識別できれば良く、例えば、IPアドレスや、FQDNを用いても良い。
認証成功ユーザ数503は、該接続先の追加認証を突破したユーザのユニーク数を表す。例えば、「2」の場合は、2人のユーザが該接続先の追加認証を突破したことを表す。なお、該成功回数は、後述するユーザ毎の認証結果505を用いることによって算出できる。
認証失敗ユーザ数504は、該接続先の追加認証を突破しなかったユーザのユニーク数を表す。例えば、「4」の場合は、4人のユーザが該接続先の追加認証を突破しなかったことを表す。なお、該失敗回数は、後述するユーザ毎の認証結果505を用いることによって算出できる。
ユーザ毎の認証結果505は、該接続先に対するユーザ毎の最新の認証結果を表す。例えば、「123:成功, 789:失敗」の場合は、識別子123のユーザが追加認証を突破したことと識別子789のユーザが追加認証を突破しなかったことを表す。
グレーリスト118は、Webサイト悪性度判定プログラム109によって悪性であると判定された接続先がリスト更新プログラム110によって登録される。Webサイト悪性度判定プログラム109と、リスト更新プログラム110との具体的な処理については、図9と、図10とを用いて後述する。
なお、グレーリスト118の各情報は、管理者が必要に応じて、登録または更新しても良い。
図6は、ブラックリスト119の一例を示す図である。図6に示すように、ブラックリスト119は、ID601と、URL602とを含んで構成される。
ID601は、ブラックリスト119を一意に識別できる情報を表す。
URL602は、悪性サイトのURLを表す。例えば、「black.com」の場合は、該URLは悪性サイトであることを表す。なお、今回は、URLを用いたが、悪性サイトを識別できれば良く、例えば、IPアドレスや、FQDNを用いても良い。
ブラックリスト119は、Webサイト悪性度判定プログラム109によって悪性であると判定され、かつ一定数以上ユーザが認証を突破しなかった接続先がリスト更新プログラム110によって登録される。Webサイト悪性度判定プログラム109と、リスト更新プログラム110との具体的な処理については、図9と、図10とを用いて後述する。
なお、グレーリスト119の各情報は、管理者が必要に応じて、登録または更新しても良い。
図7は、ホワイトリスト120の一例を示す図である。図7に示すように、ホワイトリスト120は、ID701と、URL702とを含んで構成される。
ID701は、ホワイトリスト120を一意に識別できる情報を表す。
URL702は、良性サイトのURLを表す。例えば、「white.com」の場合は、該URLは良性サイトであることを表す。なお、今回は、URLを用いたが、悪性サイトを識別できれば良く、例えば、IPアドレスや、FQDNを用いても良い。
ホワイトリスト120は、Webサイト悪性度判定プログラム109によって悪性であると判定されたものの、一定数以上ユーザが認証を突破した接続先がリスト更新プログラム110によって登録される。Webサイト悪性度判定プログラム109と、リスト更新プログラム110との具体的な処理については、図9と、図10とを用いて後述する。
なお、ホワイトリスト119の各情報は、管理者が必要に応じて、登録または更新しても良い。
続いて、Webアクセス制御装置101のアクセス中継プログラム108が、端末121からの通信を中継し、Webサイト悪性度判定プログラム109がアクセス先Webサイトの悪性度を判定し、追加認証要求プログラム110がユーザ121に対して追加認証を要求し、アクセス先情報取得プログラム111がアクセス先Webサイトの情報を取得し、リスト更新プログラム112がグレーリスト118、ブラックリスト119、およびホワイトリスト120を更新し、フィードバック値算出プログラム113がWebサイト悪性度判定プログラム109を構成する各悪性度推測器124に割り当てられた重みへフィードバックする値を算出し、重み更新プログラム114がフィードバック値算出プログラム113での算出値に基づいてWebサイト悪性度判定プログラム109を構成する各悪性度推測器124に割り当てられた重みを更新する処理について説明する。
図8は、Webアクセス制御装置101の全体処理フローを示す図である。図8に示すように、アクセス中継プログラム108は、CPU103により実行され、ユーザ端末121からの通信をIF102a経由で中継する(ステップ801)。
アクセス中継プログラム108は、ブラックリストを参照し、アクセス先Webサイトが該ブラックリストに該当した場合はステップ810aに進み、該当しなかった場合はステップ803に進む(ステップ802)。
アクセス中継プログラム108は、ホワイトリストを参照し、アクセス先Webサイトが該ホワイトリストに該当した場合はステップ811aに進み、該当しなかった場合はステップ804に進む(ステップ803)。
Webサイト悪性度判定プログラム109は、アクセス先Webサイトの悪性度を算出し、ステップ805に進む(ステップ804)。なお、Webサイト悪性度判定プログラム109の悪性度算出フローについては、図9を用いて後述する。
アクセス中継プログラム108は、ステップ804で算出した悪性度をあらかじめ制定しておいた閾値と比較し、該悪性度が閾値よりも低い場合はステップ811aに進み、高い場合はステップ806へ進む(ステップ805)。
追加認証要求プログラム110は、ユーザに追加認証を要求し、ステップ807へ進む(ステップ806)。
ここで、追加認証要求プログラム110は、ユーザへの追加認証に、CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)のような人間と機械を分別するような方式を利用することが考えられる。これにより、マルウェアが機械的に悪性サイトへアクセスしようとした場合でも、該認証を突破することは困難であり、人間の悪性サイトへのアクセスに加え、マルウェアによる悪性サイトへのアクセスも抑制できる。ユーザの。なお、追加認証要求プログラム110の表示画面については、図13を用いて後述する。
追加認証要求プログラム110は、ユーザがアクセスWeb先サイトの追加認証に際して追加情報を要求したか確認し、要求があった場合はステップ808へ、要求が無かった場合はステップ809へ進む(ステップ807)。
アクセス先情報取得プログラム111は、アクセス先のサイト情報を取得し、取得した情報をユーザ端末118へ表示する。(ステップ808)。
追加認証要求プログラム110は、ユーザが追加認証に成功したか確認し、成功していた場合は811bへ、失敗していた場合は810bへ進む(ステップ809)。
アクセス中継プログラム108は、ユーザの当該サイトへのアクセスを拒否し、処理を終了する(ステップ810a)。
アクセス中継プログラム108は、ユーザの当該サイトへのアクセスを許可し、処理を終了する(ステップ811a)。
アクセス中継プログラム108は、ユーザの当該サイトへのアクセスを拒否し、ステップ812へ進む(ステップ810b)。
アクセス中継プログラム108は、ユーザの当該サイトへのアクセスを許可し、ステップ812へ進む(ステップ811b)。
アクセス中継プログラム108は、ユーザからの追加認証文字列を受信し、追加認証履歴115に、該追加認証文字列による認証結果や該認証時の付随情報等の追加認証の情報を記録し、ステップ813へ進む(ステップ812)。
アクセス中継プログラム108は、ユーザの追加認証結果(認証を突破したか否か)をリスト更新プログラム112とフィードバック内容値プログラム113に通知し、各プログラムの処理であるステップ814と、ステップ815とに進む(ステップ813)。
リスト更新プログラム112は、追加認証履歴115を参照し、ユーザの追加認証結果を取得後、該情報を用いてグレーリスト118、ブラックリスト119、およびホワイトリスト120を更新する(ステップ814)。なお、リスト更新プログラム112の各リスト更新フローについては、図10を用いて後述する。
フィードバック値算出プログラム113は、追加認証履歴115を参照し、ユーザの追加認証結果や付随情報を取得後、該情報を用いてフィードバック値を算出し、ステップ815へ進む(ステップ815)。なお、フィードバック値算出プログラム113のフィードバック値算出フローについては、図11を用いて後述する。
重み更新プログラム114は、フィードバック値算出プログラム113が算出した値を基に推測器管理表116に記録されている各推測器の重みを更新し、処理を終了する(ステップ816)。
なお、ステップ806において、アクセス先Webサイトの悪性度が閾値以上の場合にユーザへ追加認証を要求しているが、ユーザの認証結果をキャッシュしておき、該ユーザが該アクセス先サイトに対する追加認証を1度でも突破していた場合、追加認証を要求せずアクセスを許可しても良い。これにより、ユーザの利便性が効率することが期待できる。
図9は、Webサイト悪性度判定プログラム109の処理フローの一例を示す図である。図9に示すように、CPU103により実行され、ユーザ端末121の通信先のうち、ブラックリストと、ホワイトリストとに記録されていないものをアクセス中継プログラム108より受信すると、処理を開始する(ステップ901)。なお、Webサイト悪性度判定プログラムは、それぞれが重みを持つ複数の悪性度推測器124から構成されており、各推測器の判断結果を統合して最終的な値を算出する。ここでの悪性度推測器としては、URLの文字列から該Webサイトの悪性度を推測するもの、該Webサイトに関する外部情報(whois情報やDNS情報等)から該Webサイトの悪性度を推測するもの、および該Webサイトのコンテンツから該Webサイトの悪性度を推測するものが考えられる。
Webサイト悪性度判定プログラム109は、アクセス中継プログラム108から受信したアクセス先Webサイトを各悪性度推測器124へ入力し、ステップ903へ進む(ステップ902)。
Webサイト悪性度判定プログラム109は、各悪性度推測器124の判定結果の受信を開始し、全ての推測器から結果を受信した後、ステップ904へ進む(ステップ903)。
Webサイト悪性度判定プログラム109は、ステップ903で受信した各推測器の判定結果を推測器管理表116と推測器重み履歴117へ記録し、ステップ905へ進む(ステップ904)
Webサイト悪性度判定プログラム109は、ステップ903で受信した各推測器の推測結果を推測器管理表116を参照することによって得られる各推測器に付与された重みに掛け合わせ、その合計値を最終予測結果として算出し、処理を終了する(ステップ905)。なお、上述の算出手順は、次の計算式(数1)のように示すことができる。
なお、今回は上述の計算式を用いた最終予測結果の算出手順を例示したが、各推測器の予測結果に対して重みを反映させ、最終的に統合する方式であれば、どのような方式を用いても良い。
また、悪性度推測器124の追加・削除は可能であり、管理者が必要に応じて該悪性度推測器124の追加・削除を行っても良い。
図10は、リスト更新プログラム112の処理フローの一例を示す図である。図10に示すように、CPU103により実行され、ユーザ端末121の通信先のうち、Webサイト悪性度判定プログラム109によって、その悪性度が閾値以上と判定されたWebサイトに対するユーザの追加認証結果をアクセス中継プログラム108より受信すると、処理を開始する(ステップ1001)。
リスト更新プログラム112は、グレーリスト118を参照し、アクセス先Webサイトが該グレーリストに該当した場合はステップ1004に進み、該当しなかった場合はステップ1003に進む(ステップ1002)。
リスト更新プログラム112は、アクセス先Webサイトをグレーリスト118に登録し、ステップ1004に進む(ステップ1003)。
リスト更新プログラム112は、アクセス中継プログラム108より受信したユーザの追加認証結果を参照し、該追加認証結果をグレーリスト118に記録し、グレーリスト118の認証成功ユーザ数、認証失敗ユーザ数、およびユーザ毎の認証結果を更新した後、ステップ1005に進む(ステップ1004)。
リスト更新プログラム112は、アクセス中継プログラム108より受信したユーザの追加認証結果を参照し、認証に成功していた場合はステップ1006に進み、認証に失敗していた場合はステップ1009に進む(ステップ1005)。
リスト更新プログラム112は、グレーリスト118を参照し、アクセス先Webサイトの累計認証成功ユーザ数が一定数を超えていた場合はステップ1007に進み、超えていなかった場合は処理を終了する(ステップ1006)。
リスト更新プログラム112は、アクセス先Webサイトをホワイトリスト120に登録し、ステップ1008に進む(ステップ1007)
リスト更新プログラム112は、アクセス先Webサイトに対応する行をグレーリスト118から削除し、処理を終了する(ステップ1008)。
リスト更新プログラム112は、グレーリスト118を参照し、アクセス先Webサイトの累計認証失敗ユーザ数が一定数を超えていた場合はステップ1010に進み、超えていなかった場合は処理を終了する(ステップ1009)。
リスト更新プログラム112は、アクセス先Webサイトをブラックリスト119に登録し、ステップ1011に進む(ステップ1010)
リスト更新プログラム112は、アクセス先Webサイトに対応する行をグレーリスト118から削除し、処理を終了する(ステップ1011)。
図11は、フィードバック値算出プログラム113の処理フローを示す図である。図11に示すように、CPU103により実行され、ユーザ端末121の通信先のうち、Webサイト悪性度判定プログラム109によって、その悪性度が閾値以上と判定されたアクセス先Webサイトに対するユーザの追加認証結果をアクセス中継プログラム108より受信すると、処理を開始する(ステップ1101)。なお、今回は認証結果202と付随情報203として認証に要した時間204、正解数205、およびサイト情報表示有無206を用いた場合の一例を説明するが、該情報以外を用いることや同様の情報を用いた場合でも異なる処理フローで最終的な値を算出することも可能である。
フィードバック値算出プログラム113は、値の初期値1.0を設定し、ステップ1103に進む(ステップ1102)。
フィードバック値算出プログラム113は、追加認証履歴115の最新エントリから認証情報を取得し、ステップ1104に進む(ステップ1103)。
フィードバック値算出プログラム113は、ステップ1103で取得した認証情報を参照し、認証に成功していた場合はステップ1109に進み、認証に失敗していた場合はステップ1105に進む(ステップ1104)。
フィードバック値算出プログラム113は、ステップ1103で取得した認証情報を参照し、認証がタイムアウトしていた場合はステップ1112に進み、していなかった場合はステップ1106に進む(ステップ1105)。
フィードバック値算出プログラム113は、ステップ1103で取得した認証情報を参照し、サイト情報の表示があった場合はステップ1112に進み、なかった場合はステップ1107に進む(ステップ1106)。
フィードバック値算出プログラム113は、値を0.5倍し、ステップ1108に進む(ステップ1107)
フィードバック値算出プログラム113は、ステップ1103で取得した認証情報を参照し、値を正解数に応じて減少し、ステップ1112に進む(ステップ1108)
フィードバック値算出プログラム113は、ステップ1103で取得した認証情報を参照し、値を認証に要した時間に応じて減少し、ステップ1110に進む(ステップ1109)
フィードバック値算出プログラム113は、ステップ1103で取得した認証情報を参照し、サイト情報の表示があった場合はステップ1112に進み、なかった場合はステップ1111に進む(ステップ1110)。
フィードバック値算出プログラム113は、値を0.5倍し、ステップ1112に進む(ステップ1111)
フィードバック値算出プログラム113は、ここまでのステップで算出した最終的な値を返却し、処理を終了する(ステップ1112)。
本処理により、ユーザの認証結果の確からしさを数値化し、該確からしさに応じてWebサイト悪性度判定プログラム109を構成する各推測器124へフィードバックを行うことが可能となる。
なお、今回付随情報203として認証に要した時間204、正解数205、およびサイト情報表示有無206を用いた理由は、以下の通りである。
認証に要した時間204は、主に人間によるアクセスとマルウェアによるアクセスを分別するために用いる。不審サイトへアクセスした際に要求する追加認証は、通常のWebアクセス時には発生せず、人間は該追加認証が出た際に人間は柔軟に対応できるのに対し、該追加認証を想定していないマルウェアは、これを突破できずタイムアウトになる。あるいは、近年の攻撃の高度化に伴い、追加認証を突破する機能を持つマルウェアも報告されているが、この場合は、プログラムによって人間では達成困難な入力速度で認証突破を試みると推察される。以上のように、マルウェアが認証に要する時間には、タイムアウト、あるいはきわめて短いといった特徴があり、人間による認証と分類に有用であることから、該情報を利用した。
また、認証結果が成功だった場合、フィードバック値算出プログラム113は、ステップ1109において、認証に要した時間に応じてフィードバックする値を減算している。一方で、認証結果が失敗の場合は、同減算は行っていない。これは、アクセス先Webサイトが不審な場合でもリスクを鑑みずにアクセスしてしまうユーザを考慮したものである。セキュリティレベルの低いユーザは、アクセス先Webサイトが不審であると警告を受けたとしても、そのリスクを鑑みずにアクセスしてしまうことが考えられる。一方で、追加認証を突破せずにアクセスを中止した場合は、アクセス先Webサイトのリスクを考慮した上のものであると推察される。上述の追加認証結果の性質から、認証成功の信頼性は、認証失敗の信頼性よりも高いと推察される。以上の理由から、認証突破の場合は、認証を突破しなかった場合にはないフィードバックする値の減算を行っており、これによって、該追加認証の信頼性を反映している。
正解数205は、主に認証失敗時、該失敗がヒューマンエラーによるものか否かを分別するために用いる。例えば、認証に失敗した際、意図したものであれば、何も入力しない、あるいは適当な文字を入力することにより、認証突破のために要求された文字列から大きく外れることが推察される。一方で、意図しないもの(ヒューマンエラー)は、突破しようとしたものの外れてしまった入力であることから、認証突破のために要求された文字列から大きくは外れないことが推察される。以上のように、認証の失敗がヒューマンエラーによるか否かは、認証突破のために要求された文字列に対する入力の正解数に現れることから、該情報を利用した。
サイト情報表示有無206は、主にユーザの認証結果の確からしさを検証するために用いる。Webアクセス制御装置101は、前述の通り、ユーザが追加認証を要求された際にユーザの要求に応じてアクセス先Webサイトの情報を追加で取得・表示する機能を有する。該情報を要求したユーザは、追加情報を要求し、アクセス先Webサイトの性質を多角的に判断しようとするセキュリティ意識の高いユーザであることが推察されることに加え、その際の判断は追加情報を見た上のものであることから、該追加情報を見ていない判断よりも信頼性が高いと推察される。以上のように、サイト情報表示有無206は、ユーザの認証結果の信頼性を検証するのに有用であることから、該情報を利用した。
図12は、重み更新プログラム114の処理フローを示す図である。図12に示すように、CPU103により実行され、フィードバック値算出プログラム113よりWebサイト悪性度判定プログラムを構成する各悪性度推測器124に反映するフィードバック値を受信すると、処理を開始する(ステップ1201)。
重み更新プログラム114は、悪性度推測器124のIDを意味する変数iに初期値0を設定し、ステップ1203に進む(ステップ1202)。
重み更新プログラム114は、追加認証履歴115と推測器管理表116を参照し、IDが変数iの推測器の推測結果と認証結果を取得した後、ステップ1204に進む(ステップ1203)。
重み更新プログラム114は、ステップ1103で取得したIDが変数iの推測器の推測結果と認証結果を比較し、両者が一致していた場合はステップ1205に進み、一致していなかった場合はステップ1206に進む(ステップ1204)。
重み更新プログラム114は、IDが変数iの推測器の重みをフィードバック値算出プログラム113より受信した値に応じて加算し、推測器管理表116に記録されている該推測器の重みを加算後の値に更新した後、ステップ1207へ進む(ステップ1205)。
重み更新プログラム114は、IDが変数iの推測器の重みをフィードバック値算出プログラム113より受信した値に応じて減算し、推測器管理表116に記録されている該推測器の重みを減算後の値に更新した後、ステップ1207へ進む(ステップ1206)。
重み更新プログラム114は、変数iに1加算し、ステップ1203に進む(ステップ1207)。
重み更新プログラム114は、変数iと推測器管理表116を参照することによって得ることのできる推測器数を比較し、変数iが推測器数に満たない場合はステップ1203に戻り、推測器数を上回っていた場合はステップ1209へ進む(ステップ1208)。
重み更新プログラム114は、推測器の重みの合計が1になるように、推測器管理表116に記録されている各悪性度推測器124の重みを正規化し、処理を終了する(ステップ1209)。
図13は、追加認証要求プログラム110によって表示される追加認証画面の一例を示す図である。図13aに示すように、アクセス先Webサイト悪性度判定プログラムによって閾値以上の悪性度を示したWebサイトへアクセスしようとした際、追加認証画面を表示し、画面内の追加認証を突破した場合のみ、該Webサイトへのアクセスを許可する。該追加認証画面は、アクセス先Webサイトが不審であるという警告文1301と、追加認証用の文字列表示欄1302と、追加認証文字列入力フォーム1303と、追加認証文字列送信ボタン1304と、追加情報要求ボタン1305とから構成される。ユーザは、該Webサイトが悪性でないと判断した場合のみ追加認証用の文字列表示欄1302に示された文字列を追加認証文字列入力フォーム1303に正しく入力し、追加認証文字列送信ボタン1304を押下することにより、アクセスを続行できる。また、ユーザがアクセス可否の判断に窮した際には、追加情報要求ボタン1305を押下することにより、該判断のための追加情報を取得・表示できる。該追加情報表示後の画面の一例を図13bに示す。追加情報表示後の追加認証画面は、Webサイト情報表示欄1306と、Webサイトサムネイル表示欄1307とから構成される。Webサイト情報表示欄1306には、whois情報やDNS情報といった該アクセス先Webサイトに関する公開情報が表示される。Webサイトサムネイル表示欄1307には、実際に該該アクセス先Webサイトにアクセスした際のサムネイルが画像で表示される。ユーザはこれらの情報を基に、該アクセス先Webサイトへのアクセス可否を判断する。
なお、本実施例の一部を変更して以下のように実施しても良い。
アクセス先Webサイトの悪性度の最終予測結果が閾値以下であっても、ある1つ以上の推測器が高い悪性度を算出した場合は、追加認証を要求しても良い。これにより、汎用性の低さから重みが少なくなりがちな特定の悪性サイトを検出することに特化したような推測器であっても、Webサイト悪性度判定プログラム110に組み込むことが可能になり、検出漏れを抑制できる。
また、悪性度の値によって追加認証の難易度を上下させても良い。例えば、悪性度が相対的に低い場合はボタンのクリックのみ、高い場合はCAPTCHA認証を行うことが考えられる。これにより、良性よりのグレーなサイトに対するユーザの認証にかかる負荷を抑制できる。
また、検証後のユーザの追加認証結果を正解データ(Ground Truth)として扱い、データが与えられる毎に逐次的に学習し、モデルを構築するオンライン学習の教師データに利用しても良い。これにより、各推測器に付与する重みの最適化だけでなく、推測器そのものの最適化も可能となる。
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。