(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022191757
(43)【公開日】2022-12-28
(54)【発明の名称】認証装置、認証システム、認証装置の制御方法、及びプログラム
(51)【国際特許分類】
G06F 21/31 20130101AFI20221221BHJP
【FI】
G06F21/31
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2021100188
(22)【出願日】2021-06-16
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】田上 泰之
(57)【要約】 (修正有)
【課題】認証攻撃を精度よく検知する認証システムを提供する。
【解決手段】ユーザの識別情報と本人確認情報とでユーザを認証する認証サーバであって、ユーザの認証試行に対して認証を行う認証手段と、認証試行に対する失敗回数及び最終の認証試行に対する認証の成否を表す成否情報を、ユーザ毎に格納する格納手段と、現時点から遡る所定期間内の、前記成否情報が失敗であるユーザの失敗回数の分布に基づいて、攻撃による認証試行を検知する検知手段と、を有する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
ユーザの識別情報と本人確認情報とでユーザを認証する認証装置であって、
ユーザの認証試行に対して認証を行う認証手段と、
前記認証試行に対する失敗回数、及び最終の前記認証試行に対する認証の成否を表す成否情報を、ユーザごとに格納する格納手段と、
現時点から遡る所定期間内の、前記成否情報が失敗であるユーザの前記失敗回数の分布に基づいて、攻撃による前記認証試行を検知する検知手段と、
を有することを特徴とする認証装置。
【請求項2】
前記検知手段は、前記分布に基づいて、攻撃の種類を判別することを特徴とする請求項1に記載の認証装置。
【請求項3】
前記検知手段により検出された攻撃の種類に応じて、異なる攻撃対策処理を行うことを特徴とする請求項1又は2に記載の認証装置。
【請求項4】
前記検知手段は、前記分布の経時的な変化に基づいて、攻撃による前記認証試行を検知することを特徴とする請求項1乃至3の何れか1項に記載の認証装置。
【請求項5】
前記検知手段は、前記失敗回数が1回であって、且つ前記成否情報が失敗であるユーザの検出数を閾値と比較することにより、第1の攻撃を検知することを特徴とする請求項1に記載の認証装置。
【請求項6】
前記検知手段は、前記失敗回数が1回であって、且つ前記成否情報が成功であるユーザの検出数に対する、前記失敗回数が1回であって、且つ前記成否情報が失敗であるユーザの検出数の比率を閾値と比較することにより、第1の攻撃を検知することを特徴とする請求項1に記載の認証装置。
【請求項7】
前記検知手段により前記第1の攻撃が検知された場合に、前記認証試行を行うユーザに対して、前記本人確認情報に加えて、他の本人確認情報を要求することを特徴とする請求項5又は6に記載の認証装置。
【請求項8】
前記検知手段は、前記失敗回数が2回以上であって、且つ前記成否情報が失敗であるユーザの検出数を閾値と比較することにより、第2の攻撃を検知することを特徴とする請求項1に記載の認証装置。
【請求項9】
前記検知手段は、前記失敗回数が2回以上の所定回数であって、且つ前記成否情報が成功であるユーザの検出数に対する、前記失敗回数が前記所定回数であって、且つ前記成否情報が失敗であるユーザの検出数の比率を閾値と比較することにより、第2の攻撃を検知することを特徴とする請求項1に記載の認証装置。
【請求項10】
前記検知手段は、前記失敗回数が2回以上の所定回数であって、且つ前記成否情報が成功であるユーザの検出数に対する、前記失敗回数が前記所定回数であって、且つ前記成否情報が失敗であるユーザの検出数の比率の増加速度を閾値と比較することにより、第2の攻撃を検知することを特徴とする請求項4に記載の認証装置。
【請求項11】
前記認証手段は、所定時間内の前記失敗回数が基準回数以上となった場合に、そのユーザの認証を行わないようにし、
前記検知手段により前記第2の攻撃が検知された場合に、前記基準回数を変更することを特徴とする請求項8乃至10の何れか1項に記載の認証装置。
【請求項12】
前記検知手段は、前記失敗回数が1回であって、且つ前記成否情報が成功であるユーザの検出数に対する、前記失敗回数が1回であって、且つ前記成否情報が失敗であるユーザの検出数の比率の増加速度を閾値と比較することにより、第1の攻撃を検知することを特徴とする請求項4に記載の認証装置。
【請求項13】
前記検知手段により前記第1の攻撃が検知された場合に、前記認証試行を行うユーザに対して、前記本人確認情報の変更を要求することを特徴とする請求項12に記載の認証装置。
【請求項14】
前記成否情報が失敗であるユーザの前記失敗回数の分布に関する情報を表示する表示手段をさらに有することを特徴とする請求項1乃至13の何れか1項に記載の認証装置。
【請求項15】
前記検知手段は、前記所定期間の、前記成否情報が失敗であるユーザの検出数と、前記成否情報が成功であるユーザの検出数とを、前記失敗回数ごとに集計したテーブルを生成することを特徴する請求項1乃至14の何れか1項に記載の認証装置。
【請求項16】
ユーザ端末、およびユーザの識別情報と本人確認情報とでユーザを認証する認証装置からなる認証システムであって、
前記認証装置が、
前記ユーザ端末からの認証試行に対して認証を行う認証手段と、
前記認証試行に対する失敗回数、及び最終の前記認証試行に対する認証の成否を表す成否情報を、ユーザごとに格納する格納手段と、
現時点から遡る所定期間内の、前記成否情報が失敗であるユーザの前記失敗回数の分布に基づいて、攻撃による前記認証試行を検知する検知手段と、
を有することを特徴とする認証システム。
【請求項17】
ユーザの識別情報と本人確認情報とでユーザを認証する認証装置の制御方法であって、
ユーザの認証試行に対して認証を行う認証ステップと、
前記認証試行に対する失敗回数、及び最終の前記認証試行に対する認証の成否を表す成否情報を、ユーザごとに格納する格納ステップと、
前記格納ステップにより格納される情報から得られる、現時点から遡る所定期間内の、前記成否情報が失敗であるユーザの前記失敗回数の分布に基づいて、攻撃による前記認証試行を検知する検知ステップと、
を含むことを特徴とする認証装置の制御方法。
【請求項18】
コンピュータを、請求項1乃至15の何れか1項に記載された認証装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザを認証するシステムに関する。
【背景技術】
【0002】
近年、インターネットに接続して様々なサービスが利用できるようになってきている。これらのサービスを利用するユーザは、ユーザIDとパスワード等の情報によって認証される。このような中で、他のサービスで漏洩したユーザIDとパスワードの組み合わせのリストを利用した認証攻撃(パスワードリスト型攻撃)や、パスワードとして利用されることが多い文字列を利用した認証攻撃(辞書攻撃)などの認証攻撃が知られる。特許文献1には、このような認証攻撃を検知する方法として、汚染パスワードリストとの照合により認証攻撃を検知することが記載されている。このシステムでは、外部に流出した汚染パスワードリストと認証に利用される情報を照合し認証攻撃を検知している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来技術では、汚染パスワードリストを利用するために同リストの精度に認証攻撃検知の精度が依存する。また、認証攻撃を種類ごとに検知することができないため、適切な対策をとることが困難であった。
【0005】
そこで本発明は、認証攻撃を精度よく検知することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る認証装置は、ユーザの識別情報と本人確認情報とでユーザを認証する認証装置であって、ユーザの認証試行に対して認証を行う認証手段と、前記認証試行に対する認証の失敗回数、及び最終の前記認証試行に対する認証の成否を表す成否情報を、ユーザごとに格納する格納手段と、現時点から遡る所定期間内の、前記成否情報が失敗であるユーザの前記失敗回数の分布に基づいて、攻撃による前記認証試行を検知する検知手段と、を有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、認証攻撃を精度よく検知することができる。
【図面の簡単な説明】
【0008】
【
図2】認証サーバのハードウェア構成例を示すブロック図である。
【
図3】認証サーバの機能構成例を示すブロック図である。
【
図4】ユーザ情報格納部に格納されている情報の一例を示す図である。
【
図5】認証試行情報格納部に格納されている情報の一例を示す図である。
【
図6】認証失敗回数テーブルに集計される情報の一例を示す図である。
【
図7】認証試行が行なわれた際に実行される処理を示すフローチャートである。
【
図8】実施形態1に係る認証攻撃検知処理を示すフローチャートである。
【
図9】実施形態2に係る認証攻撃検知処理を示すフローチャートである。
【
図10】認証サーバの管理者向け画面例を示す図である。
【発明を実施するための形態】
【0009】
以下、添付の図面を参照して、本発明の実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【0010】
<実施形態1>
本実施形態に係る認証サーバは、ユーザIDとパスワードとでユーザを認証する。一般のユーザが認証試行を行う場合では、同じユーザIDで行う試行回数は不規則になることが予想される。一方で、事前に入手したユーザIDとパスワードの組み合わせのリストを利用した認証攻撃(リスト型攻撃という)では、同じユーザIDで続けて認証試行を行わないことが予想される。また辞書にある単語を片端から入力して有効なパスワードを得ようとする認証攻撃(辞書攻撃という)では、同じユーザIDで行う試行回数は規則的になることが予想される。そこで本実施形態では、認証に失敗して終了したユーザの認証失敗回数の分布を利用して、認証攻撃を検知する。また、攻撃手法によって上記の分布が異なることを利用して、認証攻撃の種類を判別する。
【0011】
まず、本実施形態に係る認証サーバを含む認証システムの構成例について、
図1に示すブロック図を用いて説明する。
図1は、本実施形態に係る認証システムの構成例を示す模式図である。この認証システムは、認証サーバ101、及びユーザ端末102を有している。また、各構成要素はネットワーク103を介して接続されており相互に通信可能である。認証サーバ101は、ユーザ端末102からユーザIDとパスワードを受信すると、保持しているユーザ情報と照合することで、ユーザを認証するサーバ装置である。認証サーバ101は、認証装置の一例である。ここで、ユーザIDと、パスワード等の本人であることを確認する情報(本人確認情報)とを合わせて、認証情報と称する。ユーザ端末102は、ユーザが操作する端末装置であり、PC(パーソナルコンピュータ)、モバイル端末等である。ユーザ端末102は、認証サーバ101に対してユーザの認証情報を送信することで認証試行を行う。なお、本実施形態では、ユーザ端末102から直接認証サーバ101に対する認証試行が行われるが、このような構成に限られず、ネットワーク103に接続される外部サーバを介して認証試行が行われてもよい。
【0012】
次に、本実施形態に係る認証サーバ101のハードウェア構成例について、
図2に示すブロック図を用いて説明する。
図2は、本実施形態に係る認証サーバ101のハードウェア構成例を示すブロック図である。なお、ユーザ端末102についても、
図2に示すブロック図と同様の構成で実現できる。
認証サーバ101は、主として、CPU201、RAM202、ROM203、ネットワークI/F(インタフェース)204、外部記憶装置205、表示装置206、及び入力装置207を備えている。これら各部は、バス208を介して相互に接続されている。CPU201は、認証サーバ101を構成する各部の動作制御を行うと共に、認証サーバ101が行う後述する各種の処理を実行する主体となる。RAM202は、データや制御情報を一時的に格納するメモリであり、CPU201が各種の処理を実行する際に用いるワークエリアとなる。ROM203には、認証サーバ101の固定の動作設定値や動作プログラム等が格納されている。ネットワークI/F204は、ネットワーク103に接続して通信するための機能を提供するものである。認証サーバ101は、このネットワークI/F204によって、外部装置とデータの送受信を行うことができる。
【0013】
外部記憶装置205は、データを記憶する装置であり、データの読み書きを行うためのI/Oコマンドを受け付けるインタフェースを備える。外部記憶装置205は、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、光ディスクドライブ、半導体記憶装置等の記憶装置である。外部記憶装置205には、認証サーバ101が行う後述するフローチャートの各処理をCPU201に実行させるためのプログラムやデータが格納されている。表示装置206は、例えば、LCD(Liquid Crystal Display)であり、CPU201の制御下で、ユーザに必要な情報を表示する。入力装置207は、キーボード、マウス、タッチパネル等であり、ユーザから必要な入力操作を受け付ける。
【0014】
次に、本実施形態に係る認証サーバ101の機能構成例について、
図3に示すブロック図を用いて説明する。
図3は、本実施形態に係る認証サーバ101の機能構成例を示すブロック図である。認証サーバ101は、CPU201が外部記憶装置205等に格納されるプログラムを実行することにより、認証処理部301、攻撃検知部302、及び表示情報提供部305として機能する。また、認証サーバ101は、ユーザ情報格納部303、及び認証試行情報格納部304を保持するための記憶領域を外部記憶装置205等に確保している。
【0015】
ユーザ情報格納部303には、ユーザを認証するためのユーザ情報が格納されている。
図4は、ユーザ情報格納部303に格納されている情報の一例を示す。
図4に示すように、ユーザ情報格納部303には、ユーザID401に関連付けて、メールアドレス402、パスワード403、及びソフトロック404からなる情報が格納される。ユーザID401、メールアドレス402、及びパスワード403のセットが、ユーザ情報に相当する。ユーザID401は、システム内でユーザを一意に識別するID(ユーザの識別情報)である。メールアドレス402は、ユーザのメールアドレスである。ここでは、ユーザを認証するためにユーザのメールアドレスを用いているが、他の認証情報を用いてもよい。パスワード403は、ユーザが本人であることを確認するための文字列である。ソフトロック404は、該当ユーザ情報がソフトロック状態であるかを示すフラグである。ソフトロックは、特定のユーザアカウントに対して基準回数以上の認証失敗が短時間(所定時間)に発生した場合に、該当ユーザアカウントを一時的に利用不可能にする機構であり、ソフトロック状態のユーザ情報は認証処理に利用されない。なおソフトロックは、アカウントロックと呼ばれることもある。以下、ソフトロックの基準回数をソフトロック閾値と称する。
【0016】
認証試行情報格納部304には、現時点までに行われた認証試行における最終の認証試行である最終認証試行の日時、最終認証試行の成否、及び最終的な認証失敗回数を含む認証試行情報が、ユーザごとに格納されている。
図5は、認証試行情報格納部304に格納されている情報の一例を示す。
図5に示すように、認証試行情報格納部304には、
図4のユーザID401と同一のユーザID501に関連付けて、最終認証試行502、最終試行日時503、及び認証失敗回数504からなる情報が保持される。最終認証試行502は、最終認証試行の成否を示す成否情報である。最終試行日時503は、最終認証試行が行われた日時である。認証失敗回数504は、最終認証試行が成功となるまでに行われた認証試行に対する失敗回数である。なお、認証失敗回数504は、最終認証試行が成功した後の最初の認証試行時にリセットされる。
図5の上段では、「000001」というユーザID501を用いた認証試行が、失敗することなく「Succsess(成功)」で終了したことを示している。また
図5の下段では、「000002」というユーザID501を用いた認証試行が、3回認証失敗して「Fail(失敗)」で終了したことを示している。
【0017】
認証処理部301は、認証サーバ101がユーザ端末102よりユーザIDとパスワードを受信すると、ユーザ情報格納部303に格納されているユーザ情報に基づきユーザの認証処理を実行する。また、認証処理部301は、認証処理の実行結果に基づき、認証試行情報格納部304に格納される情報を更新する。また、認証処理部301は、同一ユーザIDを用いて所定時間内にソフトロック閾値以上の認証失敗を検出した場合、ユーザ情報格納部303に格納される情報を更新して、該当ユーザ情報をソフトロック状態とする。
攻撃検知部302は、攻撃の検知にあたり、定期的に認証試行情報格納部304のデータを認証失敗回数テーブルに集計する。
図6は、認証失敗回数テーブルの一例を示す図である。認証失敗回数テーブルには、認証失敗回数601ごとに、成功終了ユーザ数602と、失敗終了ユーザ数603とが集計されたデータが格納される。成功終了ユーザ数602は、現時点から遡った所定期間(例えば、1分)内に、該当の失敗回数で最終認証試行に成功したユーザの検出数である。失敗終了ユーザ数603は、上記の所定期間と同じ期間内に、該当の失敗回数で最終認証試行に失敗したユーザの検出数である。攻撃検知部302は、認証失敗回数テーブルをデータの集計時間に対応付けて外部記憶装置205等に保持してもよい。また、攻撃検知部302は、同じ認証失敗回数601ごとに成功終了ユーザ数602に対する失敗終了ユーザ数603の比率を導出し、当該比率を閾値と比較することで、認証攻撃を検知する。攻撃検知部302は、認証失敗回数601が1回の当該比率を閾値と比較することで、リスト型攻撃を検知し、認証失敗回数601が2回以上の所定回数の当該比率を閾値と比較することで、辞書攻撃を検知する。このようにして攻撃検知部302は、認証失敗で終了したユーザが何回の認証失敗で認証試行を終了しているかの傾向に基づき、認証攻撃の種類を判別する。
表示情報提供部305は、外部記憶装置205等に保持される認証失敗回数テーブルを用いて、認証サーバ101のシステム管理者向けの表示情報を生成して表示装置206に出力する。
【0018】
図7は、認証試行が行なわれた場合に、本実施形態に係る認証サーバ101によって実行される処理を示すフローチャートである。
図7のフローチャートは、CPU201が外部記憶装置205等に格納されるプログラムをRAM202に展開して実行することにより実現される。以下、フローチャートの各工程(ステップ)は、それら符号の先頭にはS(ステップ)を付与して説明する。
【0019】
S701にて、CPU201は、ユーザ端末102からユーザの認証情報を含む認証要求を受信したか否かを判定する。CPU201が認証要求を受信するまで、S701の処理を繰り返し、CPU201が認証要求を受信すると、認証試行があったとして、処理はS702へ進む。S702にて、CPU201は、S701で受信したユーザIDに対応付けて試行回数をカウントする。
次にS703にて、CPU201は、S701で受信したユーザIDと同一ユーザIDを用いて所定時間内にカウントされた認証失敗回数がソフトロック閾値未満か否かを判定する。CPU201がソフトロック閾値未満であると判定した場合、処理はS704へ進み、ソフトロック閾値以上と判定した場合、処理はS710へ進む。S710では、CPU201が、該当のユーザIDのソフトロック404のフラグ情報を「1」にする。その後
図7に示すフローチャートの一連の処理が終了する。
S704にて、CPU201は、認証処理を行う。具体的には、CPU201は、S701で受信したユーザの認証情報を、ユーザ情報格納部303に格納されているユーザ情報と照合する。
S705にて、CPU201は、S704の認証処理の結果に基づき認証成功か認証失敗かを判定する。CPU201が認証成功と判定した場合、ユーザ端末102に認証成功を応答して(S706)、処理はS709へ進む。CPU201が認証失敗と判定した場合、ユーザ端末102に認証失敗を応答して(S707)、処理はS708へ進む。S708にて、CPU201は、S701で受信したユーザIDに対応付けて認証失敗回数をカウントする。その後処理はS709へ進む。
S709にて、CPU201は、認証試行情報格納部304に格納される情報を更新する。まず、CPU201は、S701で受信したユーザIDと同一ユーザID501の最終試行日時503を、S701にて認証試行が検出された日時で更新する。また、上記ユーザID501の最終認証試行502について、認証成功であった場合には、成功を示す情報で更新し、認証失敗であった場合には、失敗を示す情報で更新する。更に、認証失敗であった場合には、認証失敗回数504を、S708にてカウントされた認証失敗回数で更新する。その後
図7に示すフローチャートの一連の処理が終了する。
【0020】
以上のような
図7のフローチャートの処理によれば、認証試行情報格納部304に格納される情報を逐次更新することで、認証試行情報格納部304には、最終認証試行の日時、最終認証試行の成否、及び最終的な認証失敗回数が、ユーザごとに保持される。
【0021】
次に、本実施形態に係る認証サーバ101によって実行される認証攻撃検知処理について説明する。
図8は、本実施形態に係る認証攻撃検知処理を示すフローチャートである。
図8のフローチャートは、CPU201が外部記憶装置205等に格納されるプログラムをRAM202に展開して実行することにより実現される。
図8のフローチャートは、定期的(例えば、1分ごと)に実行される。
【0022】
まずS801にて、CPU201は、認証試行情報格納部304のデータのうち、
図5の最終試行日時503を参照し、現時点から遡った所定期間内(例えば、1分前まで)のデータを、認証失敗回数テーブルに集計する。CPU201は、
図5の認証失敗回数504を参照し、
図6の認証失敗回数601ごとに、最終認証試行502が成功のユーザの数を集計して成功終了ユーザ数602に格納し、最終認証試行502が失敗のユーザの数を集計して失敗終了ユーザ数603に格納する。以上のようにして、CPU201は、認証失敗回数テーブルを更新する。
次にS802にて、CPU201は、S801で更新された認証失敗回数テーブルにおいて、認証失敗回数601が1回の失敗終了ユーザ数603を、認証失敗回数601が1回の成功終了ユーザ数602で除算して得られた値を閾値と比較する。そして、同値が閾値を超えるか否かを判定する。以下、認証失敗回数601がi回の失敗終了ユーザ数603を、認証失敗回数601がi回の成功終了ユーザ数602で除算して得られた値を、失敗回数i回の失敗ユーザ比率と称する。本実施形態では、比較対象の指標として失敗ユーザ比率を用いるが、失敗ユーザ比率に代えて失敗終了ユーザ数603をそのまま用いてもよい。比較に用いる閾値は、管理者により適宜設定された値でもよく、前回以前の
図8のフローの実行時に導出された失敗ユーザ比率に基づく値でもよい。CPU201が同値が閾値を超えると判定した場合(S802でYes)、処理はS803へ進み、CPU201が同値が閾値以下であると判定した場合(S802でNo)、iに2を設定して(S805)、処理はS806へ進む。
【0023】
S803にて、CPU201は、リスト型攻撃(第1の攻撃)を検出する。1回の認証試行に失敗して認証試行を終了するユーザが大量にいる場合には、事前に入手したユーザIDとパスワードの組み合わせのリストを用いたリスト型の認証攻撃が行なわれていることが想定できるからである。
次にS804にて、CPU201は、S803にて検出した認証攻撃に応じた攻撃対策処理を行う。本実施形態において、CPU201は、リスト型攻撃に対する対策処理として、認証モードを多要素認証モードに切り替える。多要素認証モードでは、ユーザ端末102に対して、ユーザIDとパスワードに加え、別の認証情報の提供を要求する。別の認証情報は、指紋や虹彩などの生体認証情報、ワンタイムパスワード、登録メールアドレス宛に送信される本人確認用のURL、第二のパスワード、セキュリティ質問など、ユーザIDとパスワード以外の本人確認のための情報を指すが、これらに限定されない。なお本実施形態では、リスト型攻撃に対する対策処理として、多要素認証モードに変更する処理を行うが、対策処理としてはこれに限定されない。その後
図8に示す一連の攻撃検知処理が終了する。
【0024】
S806にて、CPU201は、S801で更新された認証失敗回数テーブルにおいて、認証失敗回数601がi回の失敗ユーザ比率を閾値と比較し、同値が閾値を超えるか否かを判定する。なお閾値は、管理者により適宜設定された値でもよく、前回以前の
図8のフローの実行時に導出された失敗ユーザ比率に基づく値でもよい。CPU201が同値が閾値を超えると判定した場合(S806でYes)、処理はS807へ進み、CPU201が同値が閾値以下であると判定した場合(S806でNo)、処理はS809へ進む。
S807にて、CPU201は、試行回数i回の辞書攻撃(第2の攻撃)を検出する。認証失敗を特定の回数繰り返すユーザが大量にいる場合には、辞書にある単語を片端から入力して有効なパスワードを得ようとする認証攻撃が行なわれていることが想定できるからである。なお、ここで検出される認証攻撃は、辞書攻撃に限られず、パスワードの総当たり攻撃でもよい。
次にS808にて、CPU201は、S807にて検出した認証攻撃に応じた攻撃対策処理を行う。本実施形態において、CPU201は、試行回数i回の辞書攻撃に対する対策処理として、ソフトロック閾値をi未満に変更する。なお本実施形態では、辞書攻撃に対する対策処理として、ソフトロック閾値を変更する処理を行うが、対策処理としてはこれに限定されない。その後
図8に示す一連の攻撃検知処理が終了する。
【0025】
S809にて、CPU201は、iがソフトロック閾値に達したか否かを判定し、CPU201がソフトロック閾値に達したと判定した場合、
図8に示す一連の攻撃検知処理が終了する。CPU201がソフトロック閾値に達していないと判定した場合、iに1を加算して(S810)、処理はS806へ進む。
【0026】
以上のような実施形態1に係る認証サーバ101によれば、最終認証試行が失敗であるユーザの認証失敗回数の分布を用いて、認証攻撃を精度よく検知することができる。また、上記分布が攻撃手法によって異なることを利用して、リスト型攻撃と辞書攻撃とを分けて検知することができる。したがって、認証攻撃の種類に応じた対策をとることが可能となり、認証攻撃検知時のシステム挙動を最適化することができる。
【0027】
なお実施形態1の変形例として、攻撃検知の方法は、最終認証試行が失敗であるユーザの認証失敗回数の分布を用いる方法であれば、認証失敗テーブル中の各認証失敗回数601における失敗ユーザ比率を閾値と比較する方法に限定されない。例えば、失敗回数i回の失敗ユーザ比率と、失敗回数i+1回の失敗ユーザ比率との相違度合を閾値と比較する方法など、認証失敗回数の異なる失敗ユーザ比率間を比較する方法を用いてもよい。
【0028】
<実施形態2>
上述の実施形態1では、認証失敗テーブル中の各認証失敗回数における失敗ユーザ比率を閾値と比較することで、攻撃検知を行う方法について説明した。実施形態2では、失敗ユーザ比率の経時的な変化量に対する閾値を設定し、当該閾値と比較することで、攻撃検知を行う方法について説明する。以下、実施形態1と同様の部分は説明を省略し、相違する部分を中心に説明する。
【0029】
図9は、本実施形態に係る認証サーバ101によって実行される認証攻撃検知処理について説明する。
図9は、認証攻撃検知処理を示すフローチャートである。
図9のフローチャートは、
図8のS802をS902に、
図8のS804をS904に、
図8のS806をS906にそれぞれ置き換えたフローチャートである。従ってS902、S904、及びS906について詳細に説明し、他の工程(ステップ)の説明を省略する。
図9のフローチャートは、定期的に実行される。ただし
図9では、
図8よりも長期間(例えば、1日)ごとに実行される。
【0030】
まずS901にて、CPU201は、認証試行情報格納部304のデータのうち、
図5の最終試行日時503を参照し、現時点から遡った所定期間内(例えば、1日前まで)のデータを、所定間隔(例えば、1分ごと)に区切って認証失敗回数テーブルに集計する。これにより経過時間に対する失敗ユーザ比率の推移が把握可能になる。
次にS902にて、CPU201は、S901で集計された認証失敗回数テーブルを用いて、失敗回数1回の失敗ユーザ比率の増加速度を導出し、当該増加速度を閾値と比較する。またCPU201は、全期間における失敗ユーザ比率の増加速度の変化量を導出し、当該変化量を閾値と比較してもよい。なお閾値は、管理者により適宜設定された値でもよく、前回以前の
図9のフローの実行時に導出された増加速度に基づく値でもよい。CPU201が同値が閾値を超えると判定した場合(S902でYes)、処理はS803と同様のS903へ進み、CPU201が同値が閾値以下であると判定した場合(S902でNo)、処理はS805と同様のS905へ進む。本実施形態では、ユーザの認証失敗回数の分布の経時的な変化を用いるため、長期且つ少量のいわゆるスロータイプのリスト型攻撃(第1の攻撃)を検出することが可能である。
S904にて、CPU201は、スロータイプのリスト型攻撃に対する対策処理として、登録メールアドレスに対してパスワード変更リクエストを送信する。実施形態1では、攻撃速度が高い場合もあるため、多要素認証モードに変更するが、実施形態2では、攻撃速度が高くない場合を想定しているため、ユーザ自身に対策を促す。これにより、ユーザビリティの低下を極力回避することができる。
【0031】
S906にて、CPU201は、S902と同様にして、S901で集計された認証失敗回数テーブルを用いて、失敗回数i回の失敗ユーザ比率の増加速度を導出し、当該増加速度を閾値と比較する。CPU201が同値が閾値を超えると判定した場合(S906でYes)、処理はS807と同様のS907へ進み、CPU201が同値が閾値以下であると判定した場合(S906でNo)、処理はS809と同様のS909へ進む。本実施形態では、ユーザの認証失敗回数の分布の経時的な変化を用いるため、長期且つ少量のいわゆるスロータイプの辞書攻撃(第2の攻撃)を検出することが可能である。
【0032】
以上のような実施形態2に係る認証サーバ101によれば、失敗ユーザ比率の経時的な変化量を閾値と比較することで、攻撃速度の高くない認証攻撃を精度よく検知することができる。また、ユーザの認証失敗回数の分布が攻撃手法によって異なることを利用して、リスト型攻撃と、辞書攻撃とを分けて検知することができる。したがって、スロータイプの認証攻撃検知時にもシステム挙動を最適化することができる。
【0033】
<実施形態3>
実施形態1、2では、主として、攻撃検知を行う方法について説明したが、実施形態3では、システム管理者に対して攻撃検知の結果を提示する方法について説明する。本実施形態では、CPU201が、
図8のフローチャートが実行されるたびに、
図8のS801で生成された認証失敗回数テーブルを、フローの実行開始時間に対応付けて外部記憶装置205等に経時的に保持する。そしてCPU201は、入力装置207の操作に応じて、外部記憶装置205等に保持される認証失敗回数テーブルを選択的に取得し、認証失敗回数601ごとに、成功終了ユーザ数602の累積値と、失敗終了ユーザ数603の累積値をそれぞれ導出する。続いてCPU201は、横軸に認証試行失敗回数を示し、縦軸に上記の累積値、又は当該累積値を用いて導出された失敗ユーザ比率を示すグラフを生成し、表示装置206に出力する。
【0034】
図10は、表示装置206に出力されるグラフの一例を示す図である。
図10に示すように、表示エリア804の中央には生成されたグラフが表示され、表示エリア804の上側には表示中のグラフに関する情報が表示される。グラフに関する情報としては、情報を表示する日時801、期間802、表示する情報803がある。情報を表示する日時801は、表示されるグラフの基準とする日時である。期間802は、データの集計期間であり、1分間、1時間、1日、及び1か月の中から、システム管理者の操作により選択することができる。表示する情報803は、失敗終了数、成功終了数、及び失敗/成功の中から、システム管理者の操作により選択することができる。失敗終了数は、失敗終了ユーザ数603の期間802内の累積値に相当し、成功終了数は、成功終了ユーザ数602の期間802内の累積値に相当し、失敗/成功は、当該累積値を用いて導出された失敗ユーザ比率に相当する。
【0035】
以上のような実施形態3に係る認証サーバ101は、認証失敗で終了したユーザの失敗回数の分布と、認証成功で終了したユーザの失敗回数の分布を比較可能にして表示装置206に表示する。これにより、システム管理者は認証攻撃が行われているかを確認するために有益な情報を得ることができる。
【0036】
以上、本発明を各実施形態と共に説明したが、上記実施形態は本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0037】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0038】
101:認証サーバ、102:ユーザ端末