(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-14
(45)【発行日】2025-01-22
(54)【発明の名称】認証情報の時間的なタイピング変化に基づく、コンピュータセキュリティフォレンジック
(51)【国際特許分類】
G06F 21/31 20130101AFI20250115BHJP
G06F 3/02 20060101ALI20250115BHJP
【FI】
G06F21/31 360
G06F3/02 500
(21)【出願番号】P 2023512367
(86)(22)【出願日】2021-09-09
(86)【国際出願番号】 IB2021058198
(87)【国際公開番号】W WO2022058847
(87)【国際公開日】2022-03-24
【審査請求日】2024-02-15
(32)【優先日】2020-09-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ハザン、イテイ
【審査官】岸野 徹
(56)【参考文献】
【文献】特表2001-516474(JP,A)
【文献】特開2010-140379(JP,A)
【文献】特開2003-058504(JP,A)
【文献】特開2002-149309(JP,A)
【文献】特開2008-171433(JP,A)
【文献】特開平05-257961(JP,A)
【文献】米国特許出願公開第2010/0036783(US,A1)
【文献】米国特許第8489635(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/31-46
G06F 3/02
(57)【特許請求の範囲】
【請求項1】
1つ以上のプロセッサによって、コンピュータ化システムの複数のユーザについて、当該複数のユーザのうちのそれぞれのユーザに関連付けられた認証情報の複数のタイピングサンプルを含むそれぞれのキーストロークセッションを記録することであって、当該複数のタイピングサンプルは、当該それぞれのユーザによって連続的にタイピングされるものである、ことと、
1つ以上のプロセッサによって、前記それぞれのキーストロークセッションの各々から、前記複数のタイピングサンプル間でのタイピング変化を特徴付ける特徴セットを抽出することと、
1つ以上のプロセッサによって、第1のユーザによるキーストロークダイナミクス認証を回避して前記コンピュータ化システムへログインする試行を、前記複数のユーザのうちの特定のユーザに関連付けられた前記認証情報のうちの特定の1つが繰り返しタイピングされていることを検出することにより、検出することと、
1つ以上のプロセッサによって、前記第1のユーザによる前記特定の認証情報の前記繰り返しのタイピングから、繰り返し間でのタイピング変化を特徴付ける特徴セットを抽出することと、
1つ以上のプロセッサによって、前記第1のユーザによる前記認証情報の前記繰り返しのタイピングから抽出された前記特徴セットを、前記キーストロークセッションのセットから抽出された前記特徴セットと比較し、前記複数のユーザのうちのどのユーザが当該第1のユーザであるかを推定することと、
を含む方法。
【請求項2】
前記それぞれのキーストロークセッションの各々から前記特徴セットを抽出することは、
前記タイピングサンプルの各々について、
(a)キーに依存しないキーストロークイベントであって、プレスから連続プレス、プレスから連続リリース、リリースから連続リリース、およびリリースから連続プレス、からなる群から選択されるキーストロークイベント間のダイグラフ時間差、および
(b)前記キーストロークイベントの最初の1つと、当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算し、
前記タイピングサンプルの最初の1つを除いた当該タイピングサンプルの各々について、
(c)前記キーストロークイベントの最初の1つと、前のタイピングサンプルにおける当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算することを含む、
請求項1に記載の方法。
【請求項3】
前記それぞれのキーストロークセッションの各々から前記特徴セットを抽出することは、
1つ以上のプロセッサによって、前記タイピングサンプルの少なくとも一部の間での、キーに依存しないキーストロークイベント間のダイグラフ時間差、当該キーストロークイベントの最初の1つと当該キーストロークイベントの最後の1つとの間のダイグラフ時間差、および当該キーストロークイベントの最初の1つと前記前のタイピングサンプルにおける当該キーストロークイベントの最後の1つとの間のダイグラフ時間差からなる群から選択される、ダイグラフ時間差の少なくとも1つのダイグラフ時間差における変化を計算することをさらに含む、
請求項2に記載の方法。
【請求項4】
前記それぞれのキーストロークセッションの各々から前記特徴セットを抽出することは、
1つ以上のプロセッサによって、前記計算した変化を統計的に処理し、前記それぞれのキーストロークセッションの特徴ベクトルを生成することをさらに含み、
前記キーストロークセッションの前記特徴ベクトルは、一様な長さと一様な構造で生成される、
請求項3に記載の方法。
【請求項5】
前記第1のユーザによる前記特定の認証情報の前記繰り返しのタイピングから前記特徴セットを抽出することは、
前記繰り返しの各々について、
(a)キーに依存しないキーストロークイベントであって、プレスから連続プレス、プレスから連続リリース、リリースから連続リリース、およびリリースから連続プレス、からなる群から選択されるキーストロークイベント間のダイグラフ時間差、および
(b)前記キーストロークイベントの最初の1つと、当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算し、
前記繰り返しの最初の1つを除いた当該繰り返しの各々について、
(c)前記キーストロークイベントの最初の1つと、前のタイピングサンプルにおける当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算することを含む、
請求項1に記載の方法。
【請求項6】
前記第1のユーザによる前記特定の認証情報の前記繰り返しのタイピングから前記特徴セットを抽出することは、
1つ以上のプロセッサによって、前記繰り返しの少なくとも一部の間での、キーに依存しないキーストロークイベント間のダイグラフ時間差、当該キーストロークイベントの最初の1つと当該キーストロークイベントの最後の1つとの間のダイグラフ時間差、および当該キーストロークイベントの最初の1つと前の繰り返しにおける当該キーストロークイベントの最後の1つの間とのダイグラフ時間差のうちの少なくとも1つのダイグラフ時間差における変化を計算することをさらに含む、
請求項5に記載の方法。
【請求項7】
前記第1のユーザによる前記特定の認証情報の前記繰り返しのタイピングから前記特徴セットを抽出することは、
1つ以上のプロセッサによって、前記計算した変化を統計的に処理し、前記第1のユーザによる前記試行の特徴ベクトルを生成することをさらに含む、
請求項6に記載の方法。
【請求項8】
前記比較は、機械学習アルゴリズムに基づく、
請求項1に記載の方法。
【請求項9】
前記比較は、数学的距離メトリックに基づく、
請求項1に記載の方法。
【請求項10】
1つ以上のプロセッサによって、前記比較に使用される前記キーストロークセッションのセットとして、前記コンピュータ化システムにおいて前記特定のユーザとリンクしているそれぞれのユーザに関連付けられたキーストロークセッションを選択することをさらに含む、
請求項1に記載の方法。
【請求項11】
1つ以上のコンピュータ可読記憶媒体と、当該1つ以上のコンピュータ可読記憶媒体に記憶されたプログラム命令と、を含むコンピュータプログラム製品であって、当該プログラム命令は、
コンピュータ化システムの複数のユーザについて、当該複数のユーザのうちのそれぞれのユーザに関連付けられた認証情報の複数のタイピングサンプルを含むそれぞれのキーストロークセッションを記録するプログラム命令であって、当該複数のタイピングサンプルは、当該それぞれのユーザによって連続的にタイピングされるものである、プログラム命令と、
前記それぞれのキーストロークセッションの各々から、前記複数のタイピングサンプル間でのタイピング変化を特徴付ける特徴セットを抽出するプログラム命令と、
第1のユーザによるキーストロークダイナミクス認証を回避して前記コンピュータ化システムへログインする試行を、前記複数のユーザのうちの特定のユーザに関連付けられた前記認証情報のうちの特定の1つが繰り返しタイピングされていることを検出することにより、検出するプログラム命令と、
前記第1のユーザによる前記特定の認証情報の前記繰り返しのタイピングから、繰り返し間でのタイピング変化を特徴付ける特徴セットを抽出するプログラム命令と、
前記第1のユーザによる前記認証情報の前記繰り返しのタイピングから抽出された前記特徴セットを、前記キーストロークセッションのセットから抽出された前記特徴セットと比較し、前記複数のユーザのうちのどのユーザが当該第1のユーザであるかを推定するプログラム命令と、を含む、
コンピュータプログラム製品。
【請求項12】
前記それぞれのキーストロークセッションの各々から前記特徴セットを抽出することは、
前記タイピングサンプルの各々について、
(a)キーに依存しないキーストロークイベントであって、プレスから連続プレス、プレスから連続リリース、リリースから連続リリース、およびリリースから連続プレス、からなる群から選択されるキーストロークイベント間のダイグラフ時間差、および
(b)前記キーストロークイベントの最初の1つと、当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算するプログラム命令と、
前記タイピングサンプルの最初の1つを除いた当該タイピングサンプルの各々について、
(c)前記キーストロークイベントの最初の1つと、前のタイピングサンプルにおける当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算するプログラム命令とを含む、
請求項11に記載のコンピュータプログラム製品。
【請求項13】
前記第1のユーザによる前記特定の認証情報の前記繰り返しのタイピングから前記特徴セットを抽出することは、
前記繰り返しの各々について、
(a)キーに依存しないキーストロークイベントであって、プレスから連続プレス、プレスから連続リリース、リリースから連続リリース、およびリリースから連続プレス、からなる群から選択されるキーストロークイベント間のダイグラフ時間差、および
(b)前記キーストロークイベントの最初の1つと、当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算するプログラム命令と、
前記繰り返しの最初の1つを除いた当該繰り返しの各々について、
(c)前記キーストロークイベントの最初の1つと、前のタイピングサンプルにおける当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算するプログラム命令とを含む、
請求項11に記載のコンピュータプログラム製品。
【請求項14】
前記1つ以上のコンピュータ可読記憶媒体に記憶されたプログラム命令であって、前記比較に使用される前記キーストロークセッションのセットとして、前記コンピュータ化システムにおいて前記特定のユーザとリンクしているそれぞれのユーザに関連付けられたキーストロークセッションを選択するプログラム命令をさらに含む、
請求項11に記載のコンピュータプログラム製品。
【請求項15】
1つ以上のコンピュータプロセッサと、
1つ以上のコンピュータ可読記憶媒体と、
前記1つ以上のプロセッサの少なくとも1つによって実行するために前記コンピュータ可読記憶媒体に記憶されたプログラム命令と、を含むコンピュータシステムであって、当該プログラム命令は、
コンピュータ化システムの複数のユーザについて、当該複数のユーザのうちのそれぞれのユーザに関連付けられた認証情報の複数のタイピングサンプルを含むそれぞれのキーストロークセッションを記録するプログラム命令であって、当該複数のタイピングサンプルは、当該それぞれのユーザによって連続的にタイピングされるものである、プログラム命令と、
前記それぞれのキーストロークセッションの各々から、前記複数のタイピングサンプル間でのタイピング変化を特徴付ける特徴セットを抽出するプログラム命令と、
第1のユーザによるキーストロークダイナミクス認証を回避して前記コンピュータ化システムへログインする試行を、前記複数のユーザのうちの特定のユーザに関連付けられた前記認証情報のうちの特定の1つが繰り返しタイピングされていることを検出することにより、検出するプログラム命令と、
前記第1のユーザによる前記特定の認証情報の前記繰り返しのタイピングから、繰り返し間でのタイピング変化を特徴付ける特徴セットを抽出するプログラム命令と、
前記第1のユーザによる前記認証情報の前記繰り返しのタイピングから抽出された前記特徴セットを、前記キーストロークセッションのセットから抽出された前記特徴セットと比較し、前記複数のユーザのうちのどのユーザが当該第1のユーザであるかを推定するプログラム命令と、を含む、
コンピュータシステム。
【請求項16】
前記それぞれのキーストロークセッションの各々から前記特徴セットを抽出することは、
前記タイピングサンプルの各々について、
(a)キーに依存しないキーストロークイベントであって、プレスから連続プレス、プレスから連続リリース、リリースから連続リリース、およびリリースから連続プレス、からなる群から選択されるキーストロークイベント間のダイグラフ時間差、および
(b)前記キーストロークイベントの最初の1つと、当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算するプログラム命令と、
前記タイピングサンプルの最初の1つを除いた当該タイピングサンプルの各々について、
(c)前記キーストロークイベントの最初の1つと、前のタイピングサンプルにおける当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算するプログラム命令とを含む、
請求項15に記載のコンピュータシステム。
【請求項17】
前記それぞれのキーストロークセッションの各々から前記特徴セットを抽出することは、
前記タイピングサンプルの少なくとも一部の間での、キーに依存しないキーストロークイベント間のダイグラフ時間差、当該キーストロークイベントの最初の1つと当該キーストロークイベントの最後の1つとの間のダイグラフ時間差、および当該キーストロークイベントの最初の1つと前記前のタイピングサンプルにおける当該キーストロークイベントの最後の1つとの間のダイグラフ時間差からなる群から選択される、ダイグラフ時間差の少なくとも1つのダイグラフ時間差における変化を計算するプログラム命令をさらに含む、
請求項16に記載のコンピュータシステム。
【請求項18】
前記第1のユーザによる前記特定の認証情報の前記繰り返しのタイピングから前記特徴セットを抽出することは、
前記繰り返しの各々について、
(a)キーに依存しないキーストロークイベントであって、プレスから連続プレス、プレスから連続リリース、リリースから連続リリース、およびリリースから連続プレス、からなる群から選択されるキーストロークイベント間のダイグラフ時間差、および
(b)前記キーストロークイベントの最初の1つと、当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算するプログラム命令と、
前記繰り返しの最初の1つを除いた当該繰り返しの各々について、
(c)前記キーストロークイベントの最初の1つと、前のタイピングサンプルにおける当該キーストロークイベントの最後の1つとの間のダイグラフ時間差
を計算するプログラム命令とを含む、
請求項15に記載のコンピュータシステム。
【請求項19】
前記それぞれのキーストロークセッションの各々から前記特徴セットを抽出することは、
前記繰り返しの少なくとも一部の間での、キーに依存しないキーストロークイベント間のダイグラフ時間差、当該キーストロークイベントの最初の1つと当該キーストロークイベントの最後の1つとの間のダイグラフ時間差、および当該キーストロークイベントの最初の1つと前の繰り返しにおける当該キーストロークイベントの最後の1つの間とのダイグラフ時間差のうちの少なくとも1つのダイグラフ時間差における変化を計算することをさらに含む、
請求項18に記載のコンピュータシステム。
【請求項20】
前記1つ以上のプロセッサの少なくとも1つによって実行するために前記コンピュータ可読記憶媒体に記憶されたプログラム命令であって、前記比較に使用される前記キーストロークセッションのセットとして、前記コンピュータ化システムにおいて前記特定のユーザとリンクしているそれぞれのユーザに関連付けられたキーストロークセッションを選択するプログラム命令をさらに含む、
請求項15に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にコンピュータセキュリティの分野に関し、より具体的には、キーストロークダイナミクス(keystroke dynamics)に関する。
【背景技術】
【0002】
キーストロークダイナミクスは、行動バイオメトリクス(behavioral biometrics)分野において盛んに研究されているトピックである。キーストロークダイナミクスは、ある人物がキーボード(物理キーボードまたは仮想キーボード)上でタイピングする仕方およびリズムを識別および測定するものである。例えば、キーストロークダイナミクスシステムは、どの程度の速度でタイピングする傾向があるか、すべての文字を同じペースでタイピングするか、あるいは特定の文字をタイピングする前に手を止める傾向があるか、各キーを通常どのくらいの時間押下しているか、などによって、異なる人物を区別することができる。
【0003】
キーストロークダイナミクスによる認証は、一般的には、記録されたいくつかのキーストロークセッション(keystroke sessions)を使用して、関連するユーザの特徴であるモデルを訓練する機械学習アルゴリズムを含む。次に、ユーザ(またはユーザと称している人物)の新たなキーストロークセッションを、機械学習アルゴリズムによって、モデルと比較することができる。この新たなキーストロークセッションの内容がモデルに十分に適合する場合、ユーザの身元が認証される。
【発明の概要】
【0004】
本発明の態様は、キーストロークダイナミクス認証を採用するための方法、コンピュータプログラム製品、およびシステムを開示する。方法は、コンピュータ化システムの複数のユーザについて、当該複数のユーザのうちのそれぞれのユーザに関連付けられた認証情報の複数のタイピングサンプルを含むそれぞれのキーストロークセッションを記録する1つ以上のプロセッサを含む。当該複数のタイピングサンプルは、当該それぞれのユーザによって連続的にタイピングされる。方法は、前記それぞれのキーストロークセッションの各々から、前記複数のタイピングサンプル間でのタイピング変化を特徴付ける特徴セットを抽出する1つ以上のプロセッサをさらに含む。方法は、第1のユーザによるキーストロークダイナミクス認証を回避して前記コンピュータ化システムへログインする試行を、前記複数のユーザのうちの特定のユーザに関連付けられた前記認証情報のうちの特定の1つが繰り返しタイピングされていることを検出することにより、検出する1つ以上のプロセッサをさらに含む。方法は、前記第1のユーザによる前記特定の認証情報の前記繰り返しのタイピングから、繰り返し間でのタイピング変化を特徴付ける特徴セットを抽出する1つ以上のプロセッサをさらに含む。方法は、前記第1のユーザによる前記認証情報の前記繰り返しのタイピングから抽出された前記特徴セットを、前記キーストロークセッションのセットから抽出された前記特徴セットと比較し、前記複数のユーザのうちのどのユーザが当該第1のユーザであるかを推定する1つ以上のプロセッサをさらに含む。
【図面の簡単な説明】
【0005】
例示的な実施形態を、参照図面に示す。図面に示すコンポーネントおよび機能の寸法は総じて、説明上の便宜および明確さのために選択されたものであり、必ずしも縮尺通りに示されたものではない。図面を以下に列挙する。
【0006】
【
図1】本発明の実施形態に係る、キーストロークダイナミクス認証機能を回避してシステムにログインしようとするユーザの身元を推定するための一例としてのシステムのブロック図である。
【
図2】本発明の実施形態に係る、キーストロークダイナミクス認証機能を回避してシステムにログインしようとするユーザの身元を推定するための方法のフローチャートである。
【発明を実施するための形態】
【0007】
本発明の実施形態は、各個人のキーストロークダイナミクスは極めて独特であるので、セキュリティシステムは、測定した個人のキーストロークダイナミクスに基づいて、個人の身元を確実に認証可能であると認識するものである。したがって、いくつかのセキュリティシステムは、従来の認証技術(パスワード、トークン、二要素認証など)のアドオンとして、またはこれらの技術に完全に代わるものとして、キーストロークダイナミクスを使用している。
【0008】
関連技術の上記例およびそれに関連する限定は、例示的であって排他的なものではないことを意図している。関連技術の他の限定は、明細書を読むことおよび図面を検討することによって当業者に明らかとなるであろう。
【0009】
本明細書は、認証情報の時間的なタイピング変化(temporal typing changes)に基づく、コンピュータセキュリティフォレンジックのための、方法、システム、およびコンピュータプログラム製品として具体化される技術を開示する。本発明の実施形態は、キーストロークダイナミクス認証機能を回避してコンピュータ化システムにログインしようとするコンピュータシステムユーザの身元を推定するように動作する。
【0010】
本発明の様々な実施形態は、ユーザに認証情報(例えば、ユーザ名、パスワードなど)のタイピングを要求し、次に、ユーザのログインを許可するかどうかを決定するためにタイピングのキーストロークダイナミクスを分析する種類のキーストロークダイナミクス認証機能と共に動作する場合に、利点を提供するものである。認証情報があらかじめ定められたユーザの認証情報と一致し、かつキーストロークダイナミクスがあらかじめ構築されたユーザのキーストロークダイナミクスモデルと一致する場合に、ユーザはログインを許可される。
【0011】
攻撃者は、まず(フィッシング、ソーシャルエンジニアリング、当てずっぽう(guesswork)などにより)ユーザの認証情報にアクセスし、この認証情報をタイピングしてコンピュータ化システムへのログインを試みることで、このようなキーストロークダイナミクス認証機能を回避しようとする場合がある。ログインの試行が失敗すると、攻撃者は、入力を次々繰り返していく中の1つが有効なものとしてコンピュータ化システムに受け付けられることを期待して、認証情報を何度もタイピングする。攻撃者が同じ認証情報を連続して何度もタイピングすると、タイピングスタイルが無意識のうちに徐々に変化する傾向がある。これは主に、同じ文字列を繰り返しタイピングすることに関係する認知学習プロセス(「学習曲線」)によるものである。
【0012】
コンピュータ化システムは通常、このような一連のログイン試行の失敗から、攻撃が進行中であることを推測することができるが、本発明の実施形態は、各種の一般的な識別子(攻撃者のインターネットプロトコル(IP)アドレスなど。これは偽造されている場合もあり、決定的な識別に役立たない場合もある)を記録する以外は、システムが攻撃者を識別することは依然として容易ではないことを認識するものである。
【0013】
さらに、本発明の実施形態は、攻撃がコンピュータシステムの特定のユーザによるものであるとコンピュータ化システムが特定できるようにし、それによって攻撃者の識別を支援することができる。この判断および特定は、攻撃者が多くの場合、攻撃を開始する前に、コンピュータ化システムが採用しているセキュリティ対策を研究し、潜在的に、標的とする適切なユーザを探すためにも、コンピュータ化システムに対して自分のユーザアカウントのサインアップを行う傾向があるという認識に基づいている。
【0014】
攻撃がコンピュータ化システムの特定のユーザによるものであると特定することは、潜在的な攻撃者を含むすべてのユーザが、サインアップ時(または後の、認証情報変更プロセス時)に、自分の認証情報について複数のタイピングサンプルを提供したという事実を活用してもよい。ユーザによって連続して入力されたタイピングサンプルは、キーストロークダイナミクス認証機能によって従来の方法で使用され、各ユーザのキーストロークダイナミクスモデルを作成する。例えば、ユーザが認証情報の文字をどのように入力する傾向があるかを判断する。単純な例として、ユーザの認証情報が「a1b」と読むパスワードである場合、キーストロークダイナミクス認証機能は、文字「a」、「1」、「b」の各々をプレスする平均時間、「a」と「1」をタイピングする間および「1」と「b」をタイピングする間の平均間隔、もしくは特定の文字に関連付けられる他の同様の統計、またはその組み合わせに基づいて、ユーザのモデルを形成することができる。
【0015】
本発明の実施形態は、キーストロークダイナミクスモデルを作成するための標準的な利用方法を越えて、各ユーザのタイピングサンプルをさらに利用することができる。さらに、本発明の実施形態は、サンプルから、複数のタイピングサンプル間でのタイピング変化を特徴付ける特徴セットを抽出する。これら特徴は、サインアップ(または認証情報の変更)時に同じ認証情報を繰り返しタイピングする際のユーザの「学習曲線」と呼ぶことができるものから得られる。ユーザのキーストロークダイナミクスは、連続したタイピングに沿って徐々に変化する傾向があり、これはまさに、攻撃者が標的ユーザの認証情報を何度も入力する場合に際に起こり得ることである。したがって、攻撃者によるログイン試行の時間的な変化を、各ユーザについて先に記録されている時間的な変化と比較することにより、攻撃者を、コンピュータ化システムのユーザの一人として特定できる可能性がある。
【0016】
しかしながら、本発明の実施形態は、攻撃者の時間的なタイピング変化を他のユーザの時間的なタイピング変化と照合することは、単純ではないことを認識するものである。これは主に、攻撃者自身の認証情報(例えば、「john2020」と読むパスワード)がほとんどの場合、標的ユーザの認証情報(例えば、「jane123」と読むパスワード)と異なるためである。したがって、このような比較を容易にするために、本発明の実施形態は、最終的に全ユーザの特徴セットを一様に(in a uniform manner)表現する一連の計算を実行することが可能である。これは、(a)各認証情報をタイピングするために押された実際のキー、および(b)各認証情報の長さ、の両方に依存しない(agnostic)。例えば、各特徴セットは、一様な長さおよび同じ構造を有する特徴ベクトルとして表すことができる。
【0017】
そのような一様な特徴セットがすべてのユーザについて利用可能になると、コンピュータ化システムは、攻撃者のログイン試行についてもそのような一様な特徴セットを抽出し、攻撃者の特徴セットをコンピュータ化システムのすべてまたは一部のユーザの特徴セットと比較することによって、攻撃に対応することができる。例えば、比較は、特徴セットに機械学習アルゴリズムを適用すること、または、攻撃者の特徴セットと他の特徴セットとの間の数学的な距離メトリック(mathematical distance metric)を計算することを含んでもよい。
【0018】
別の態様では、そのような各比較に必要な計算リソースを減らすために、本発明の実施形態は、コンピュータ化システムのユーザのより小さなサブセットを選択して、比較を行うことができる。例えば、コンピュータ化システムがソーシャルネットワークのものである場合、比較は、標的ユーザ(target user)とリンクしている(例えば、「フレンド」である)ソーシャルネットワークユーザ間でのみ実行されてもよい。同様に、攻撃者の特徴セットと比較されるユーザのリストを絞り込むために、過去のインタラクションや、ユーザ同士が関連していることを示す他の方法など、コンピュータ化システムのユーザ間でのいずれの形の関係が利用されてもよい。
【0019】
次に、
図1を参照する。
図1は、キーストロークダイナミクス認証機能を回避してログインしようとするユーザの身元を推定するように構成された一例としてのコンピュータシステム100のブロック図である。システム100は、1つ以上のハードウェアプロセッサ102、ランダムアクセスメモリ(RAM)104、および1つ以上のコンピュータ可読記憶装置106を含むことができる。
【0020】
記憶装置106は、ハードウェアプロセッサ102を動作させるように構成されたプログラム命令もしくはコンポーネントまたはその両方を記憶していてもよい。プログラム命令は、攻撃者識別モジュール108など、1つ以上のソフトウェアモジュールを含んでもよい。ソフトウェアコンポーネントは、一般的なシステムタスク(例えば、メモリ管理、記憶装置制御、電力管理など)を制御および管理し、様々なハードウェアおよびソフトウェアコンポーネント間の通信を容易にするための様々なソフトウェアコンポーネントもしくはドライバまたはその両方を有するオペレーティングシステムを含んでもよい。
【0021】
システム100は、攻撃者識別モジュール108の命令を、プロセッサ102による実行時にRAM104にロードすることによって動作してもよい。攻撃者識別モジュール108の命令によって、システム100は、サインアッププロセスもしくは認証情報変更プロセスまたはその両方において、システムのユーザの各々についてユーザキーストロークセッションを記録し(ブロック110)、キーストロークセッションの複数のタイピングサンプル間でのタイピング変化を特徴付けるそれぞれのユーザ特徴セットを抽出してもよい(ブロック112)。攻撃を検出した場合に、攻撃者識別モジュール108の命令によって、システム100は、攻撃者が繰り返し行った認証情報のタイピング間のタイピング変化を特徴付ける特徴セットを抽出し(ブロック114)、その特徴を、ユーザの一部またはすべてについて先に抽出したユーザ特徴セットと比較し(ブロック112)、システムのユーザの中で攻撃者の身元を推定してもよい(ブロック116)。
【0022】
本明細書に記載のシステム100は、本発明の例示的な実施形態に過ぎず、実際には、ハードウェアのみ、ソフトウェアのみ、またはハードウェアとソフトウェアの両方の組み合わせで実装されてもよい。システム100は、図示よりも多いまたは少ないコンポーネントおよびモジュールを有していてもよいし、2つ以上のコンポーネントを組み合わせてもよいし、コンポーネントの構成または配置が異なっていてもよい。システム100は、マザーボード、データバス、電源、ネットワークインタフェースカード、ディスプレイ、入力デバイス(例えば、キーボード、ポインティングデバイス、タッチセンサ式ディスプレイ)など、システム100が動作可能なコンピュータシステムとして機能することを可能にする追加のコンポーネントを含んでもよい(不図示)。さらに、システム100のコンポーネントは、同じ場所に配置されてもよいし、分散されてもよい。あるいは、システムは、当該技術分野において既知であるように、1つ以上のクラウドコンピューティング「インスタンス」、「コンテナ」、もしくは「仮想マシン」またはその組み合わせとして実行されてもよい。
【0023】
次に、攻撃者識別モジュール108の命令について、
図2のフローチャートを参照して説明する。
図2は、本発明の実施形態に係る、キーストロークダイナミクス認証機能を回避して
図1のシステム100などのコンピュータ化システムにログインしようとするユーザの身元を推定するための方法200を示す図である。
【0024】
方法200のステップは、提示されている順序で実施されてもよいし、特定のステップに対して必要な入力が先行ステップの出力から得られるような順序である限り、異なる順序で(あるいは並列に)実施されてもよい。さらに、方法200のステップは、別段の具体的な記載がない限り、自動的に(例えば、
図1のシステム100によって)実施される。
【0025】
ステップ202にて、方法200は、システムの複数のユーザの各々について、キーストロークセッションを記録する。そのようなキーストロークセッションの各々は、それぞれのユーザに関連付けられた認証情報(例えば、当該ユーザによって選択されるかまたはシステムによって当該ユーザに割り当てられた、ユーザ名、電子メールアドレス、パスワード、または他の任意の複数文字認証情報(1つ以上の文字、数字、記号、もしくは同様のものまたはその組み合わせを含む))の複数のタイピングサンプルを含んでもよい。様々な実施形態において、ユーザは、例えば、システムが提供するグラフィカルユーザインタフェース(GUI)内で提供される1つ以上のフィールド内において、認証情報を複数回連続して(例えば、合計時間は5、10、20、30、40、50、もしくは60秒、またはそれらの間の値もしくはそれらを超える値に制限される)タイピングするようにシステムからプロンプトされてもよい。方法200は、ユーザによるこのようなタイピングをそれぞれ別のタイピングサンプルとして記録することができる。これにより、記録されたキーストロークセッションは、連続的にタイピングされたタイピングサンプルの順序付けられたセット(ordered set)を含む。
【0026】
ユーザは、例えばローカルエリアネットワーク(LAN)やインターネットなどのコンピュータネットワークを介してシステムに接続されているコンピュータ化デバイス上で、認証情報を入力することができる。ユーザは、自身のコンピュータ化デバイスの物理キーボードまたは仮想キーボード(例えば、タッチスクリーン、またはポインティングデバイスを使用して操作される画面上の仮想キーボードによって支援される)を使用して、認証情報を入力することができる。
【0027】
ステップ202に基づき、方法200は、システムのキーストロークダイナミクス認証機能を利用して、関連するユーザに関する従来のキーストロークダイナミクスモデルを作成することができる。一実施形態において、キーストロークダイナミクス認証機能は、方法200が、本発明の様々な態様に従って利用可能な認証システムの一態様である。したがって、ここでは説明しないが、本発明の実施形態は、ステップ202にて従来の方法を実行することができる。
【0028】
ステップ204にて、方法200は、キーストロークセッションの各々から、複数のタイピングサンプル間でのタイピング変化を特徴付ける特徴セットを抽出する。様々な実施形態において、ステップ204にてキーストロークセッションから特徴を抽出するプロセスは、以下で詳述するサブステップ204a、204b、204cを含むことができる。
【0029】
サブステップ204aにて、方法200は、タイピングサンプルの各々のキーストロークイベント(keystroke events)間のダイグラフ時間差(digraph latencies)を計算する。キーストロークダイナミクスの分野で既知であるように、ダイグラフ時間差とは、2つのキーストロークイベント間の時間差である。例えば、このようなキーストロークイベントは、プレスから連続プレス(press to consecutive press)、プレスから連続リリース(press to consecutive release)、リリースから連続リリース(release to consecutive release)、もしくは、リリースから連続プレス(release to consecutive press)またはその組み合わせを含んでもよい。例示的な実施形態では、キーストロークイベントは、キーに依存しない(key-agnostic)。すなわち、キーストロークイベントは、タイピングサンプルにおける各プレスされたキーのシリアル位置(serial position)のみを考慮し、キー自体のアイデンティティ(入力された特定の文字、数字または記号)は考慮しない。簡単な例として、認証情報「a1b」のタイピングサンプルに基づき、3つの文字にそれぞれ1から3のシリアル番号を付与する。そして、9つのダイグラフ時間差を次のように計算することができる。
【0030】
【0031】
異なるユーザの認証情報が異なる長さを有する場合があるという事実を考慮して、方法200は、4つの例示的なキーストロークイベント種類について計算されたダイグラフ時間差のすべてを使用する必要はない。その代わりに、方法200は、各キーストロークイベント種類について、計算されたダイグラフ時間差を単一の値に減らすことができる。例えば、方法200は、各キーストロークイベント種類のダイグラフ時間差の中央値または平均値を、そのキーストロークイベント種類の代表値として利用することができる。上記の例を参照すると、プレスから連続リリースまでの時間差が、キー#1について300ms(ミリ秒)、キー#2について170ms、キー#3について130msであった場合、方法200は、そのタイピングサンプルにおけるこのキーストロークイベントのダイグラフ時間差の代表値として、200msの平均値または170msの中央値を利用でき、このようにすることで、認証情報の長さに依存しなくなる。
【0032】
別の実施形態において、方法200は、キーストロークイベントの最初の1つ(上記の例では、キー#1のプレス)とキーストロークイベントの最後の1つ(上記の例では、キー#3のリリース)との間のダイグラフ時間差を(各タイピングサンプルについて)計算することもできる。このダイグラフ時間差は、タイピングされた認証情報の長さに明らかに依存するが、この値は、すべてのタイピングサンプルにわたってこのようなダイグラフ時間差を比較する場合に、有用なメトリックとなり得る。例えば、方法200は、この値を利用して、特定のユーザが、各連続するサンプルを前のサンプルに比べて20%速くタイピングする傾向があるという観察を行うことができる。これについてはさらに後述する。
【0033】
さらなる実施形態において、方法200は、キーストロークイベントの最初の1つ(上記の例では、キー#1のプレス)と、前のタイピングサンプルのキーストロークイベントの最後の1つ(上記の例では与えられていない)との間のダイグラフ時間差を(各タイピングサンプルについて)計算することもできる。言い換えれば、これは、各2つの連続するタイピングサンプル間の間隔である。当然ながら、方法200は、キーストロークセッションにおける最初のタイピングサンプルについてはこの値を計算せず、2番目以降のタイピングサンプルについてのみ計算する。
【0034】
上述したダイグラフ時間差に加えて、またはこれらのダイグラフ時間差の一部の代わりに、本発明の実施形態は、各タイピングサンプルにおける他の種類のキーストローク関連イベント間のダイグラフ時間差を計算し利用するように動作することができる。さらに、本発明の実施形態は、一度に3つ以上のキーストロークイベントについて様々な統計的指標を計算することができる。
【0035】
例示的な実施形態において、サブステップ204aが終了すると、任意の態様として、各キーストロークセッションは特徴行列(feature matrix)として表される。特徴行列において、行がキーストロークセッションの連続サンプルであり、列が対応する特徴(すなわち、計算された種々のダイグラフ時間差)である。このような特徴行列の一例を以下の表2に示す。
【0036】
例えば、タイピングサンプルが6つのダイグラフ時間差(プレスから連続プレス、プレスから連続リリース、リリースから連続リリース、リリースから連続プレス、最初のプレスから最後のリリース、および前のタイピングサンプルからの間隔)を有すると仮定すると、方法200は(サブステップ204aを介して)、6つのそれぞれの特徴を提供するよう動作する。例えば、ユーザが自身の認証情報を10回連続してタイピングしたことをシステムが記録した場合、キーストロークセッションの特徴行列は、10×6のオーダーになる。
【0037】
【0038】
サブステップ204bにて、キーストロークセッションの各々について、方法200は、タイピングサンプルの少なくとも一部の間でのダイグラフ時間差の変化を計算することができる。サブステップ204bの計算は、それぞれのユーザによるキーストロークセッションに沿った認証情報のタイピングの仕方の時間的な変化(temporal changes)を検出するように動作することができる。一般に、キーストロークダイナミクスは、ユーザが一連のタイピングサンプルに沿って進行するにつれて、徐々に変化する傾向がある。この変化は、通常、ユーザがこのタイピングタスクの実行において急速に認知力を向上させた結果である。
【0039】
本発明の様々な実施形態は、変化の計算をペアワイズ法(pair-wise method)で行うことができ、各ペアは、タイピングサンプルのうちの2つからの特徴(ダイグラフ時間差)の値を含む。サンプルは、連続するタイピングサンプル(例えば、サンプル1とサンプル2)であってもよいし、不連続のタイピングサンプル(例えば、サンプル2とサンプル5)であってもよい。別のオプションとして、2つ以上のタイピングサンプル(連続または不連続)からの特徴値を集計し、その集計値を、単一のタイピングサンプルからの特徴値、または別の集計値と比較する方法もある。例えば、集計は、値の平均化などの統計計算を含んでもよい。別の例として、集計は、あるサンプル(例えば、サンプル1)における特徴を、他の複数のサンプル(例えば、サンプル2、3、4、5)の各々における同じ特徴と比較することを含んでもよい。そして、サンプルに沿って計算された変化は、例えば、線形、指数、または、カスタム関数(例えば、多項関数、区分関数など)により定義される変化率であってもよい。
【0040】
注目すべき点として、すべてのタイピングサンプルが必ずしも計算に含まれるわけではない。例えば、本発明の実施形態は、あるシナリオにおいて、最初の2つのタイピングサンプルおよび最後の2つのタイピングサンプルだけに基づく計算によって、キーストロークセッションに沿った最も大きな時間的変化を十分に補足できると判断することができる。そのようなシナリオでは、先行するサブステップ204aは、利用されないタイピングサンプルに対するダイグラフ時間差の計算を含む必要はない。
【0041】
サブステップ204bのペアワイズ計算は、ペアの2つの値に適用される少なくとも1つの数学的演算を含んでもよい。例えば、値は、減算、加算、乗算、除算、互いへの累乗、平均化、もしくは同様な演算またはその組み合わせを行ってもよい。方法200は、値を増幅するように、または、あらかじめ定義された係数(線形または指数)によって値を減衰させるように動作することもできる。
【0042】
次に、サブステップ204cにて、方法200は、キーストロークセッションの各々について一様な特徴ベクトル(uniform feature vector)を生成することができる。すなわち、方法200は、すべてのキーストロークセッションにわたって一様な長さおよび構造で特徴ベクトルを生成することができ、これにより、異なるユーザのキーストロークセッションを表現したものが、ユーザ間で異なる認証情報の長さに依存しないことを一様に保証することができる。
【0043】
サブステップ204cにおいて一様な特徴ベクトルの各々を生成することは、それぞれのキーストロークセッションの計算された変化を統計的に処理することを含んでもよい。この処理は、前のサブステップ204bで計算された変化に対する、標準偏差、平均、中央値、平均勾配、もしくはヒストグラム分析またはその組み合わせなどの1つ以上の統計関数の計算を伴ってもよい。なお、これらは使用可能な統計関数のほんの一例である。当技術分野で既知の1つ以上の他の統計関数も、特徴ごとに計算された複数の変化を意味のある形で要約できる限り、同様に使用してもよい。
【0044】
各キーストロークセッションについて、統計処理は、キーストロークセッションに沿った特徴の時間的変化を表す、特徴ごとの数値を生成してもよい。あるキーストロークセッションのすべての特徴の数値は、そのキーストロークセッションの一様な特徴ベクトルを形成する。方法200は、すべてのキーストロークセッションについてサブステップ204a、204b、204cを一様に適用することができるので、得られる特徴ベクトルは、長さ(特徴ベクトルが含む特徴の数)および構造(特徴の種類およびベクトル内での順序)が確かに一様なものとなる。
【0045】
任意の態様として、各特徴ベクトルはまた、その最も重要な特徴を保持するように圧縮するために、次元削減が行われる。例えば、本発明の様々な実施形態は、当該技術分野で既知のように、主成分分析(PCA:Principal Component Analysis)または線形判別分析(LDA:Linear Discriminant Analysis)を利用して、次元を削減することができる。別のオプションとして、本発明の実施形態は、キーストロークセッションに沿った時間的なタイピング変化をより良く特徴付ける種々の特徴サブセットを検索し評価するために、各特徴ベクトルに対して、当該技術分野で既知の特徴選択アルゴリズムを適用することができる。
【0046】
次に、ステップ206にて、方法200は、特徴セット(ステップ204で抽出されたもの。すなわち、サブステップ204cで最終的に生成された特徴ベクトル)をコンピュータ化データベースに格納する。データベースは、システム100(
図1)の一部であってもよいし、システムとネットワーク通信している別のコンピュータサーバに含まれていてもよい。
【0047】
注目すべき点として、新規のユーザがシステム100(
図1)にサインアップすることもあるが、方法200は、そのようなサインアップごとにステップ202~206を実行し、生成された特徴ベクトルをデータベースに追加することができる。同様に、既存のユーザについて認証情報変更プロセスが開始されるたびに、方法200はステップ202~206を実行することができ、生成された特徴ベクトルは、データベース内での当該ユーザの古い特徴ベクトルに取って代わる。既存のユーザを有するシステムに本技術を新たに適用するように動作する場合、方法200は、ユーザに関して以前に記録されたキーストロークセッションに対して、ユーザが最初にサインアップしたときからこのような記録が保持されていると仮定して、ステップ202~206を実行することができる。
【0048】
ステップ208にて、方法200は、システムのキーストロークダイナミクス認証を回避し、システムにログインしようとする攻撃者の試行を検出する。例えば、この検出は、本発明の様々な実施形態に従って、システムのキーストロークダイナミクス認証機能によって行われてもよいし、システムが有する他の任意のセキュリティ関連機能によって行われてもよい。
【0049】
検出される試行は、特定のユーザに関連付けられる認証情報のうちの特定の1つを繰り返しタイピングすることを含んでもよい。方法200は、このような試行の失敗があらかじめ定められた回数、例えば、3、4、もしくは5回(または、システム管理者によって定義される、これより少ないまたは多い回数)記録されると、検出を行うことができる。試行の失敗を検出することは、認証情報をタイピングしている人物が、おそらく、関連するユーザアカウントを所有する真のユーザではなく、当該ユーザの認証情報を何らかの方法で不正に入手し、当該ユーザとしてシステムにログインしようとしている攻撃者であることを示すものである。
【0050】
ステップ210にて、方法200は、その繰り返されたタイピングから、検出された繰り返しの間でのタイピング変化を特徴付ける特徴セットを抽出する。この特徴抽出ステップは、システムのユーザのキーストロークセッションに対してステップ204で実行されるのと同じ動作を(適宜変更して)含むことができる。すなわち、方法200は、攻撃者による認証情報の各タイピングを、ユーザのタイピングサンプルと同じように扱い、一連の繰り返しタイピングを、ユーザのキーストロークセッションと同じように扱うことができる。したがって、攻撃者による繰り返しタイピングから特徴セットを抽出する方法の説明はここでは繰り返さず、詳細は上述した通りである。
【0051】
ステップ210が終了すると、方法200は、任意の態様では特徴ベクトルとして表される、攻撃試行(attack attempt)の最終的な特徴セットを提供することができる。ステップ210の実行において、方法200は、各キーストロークセッションに対してステップ204で実行した動作と同様に、すべての動作を実行することができる。これにより、攻撃試行の特徴ベクトルが、すべてのキーストロークセッションの特徴ベクトルと(長さおよび構造にわたって)一様になる。したがって、後に特徴ベクトルを容易に比較することができる。
【0052】
ステップ212にて、方法200は、データベースからフェッチされる、システムのユーザのキーストロークセッションの少なくとも一部の特徴セットに対して、攻撃試行の特徴セットを比較する。任意でのサブステップ212aにて、攻撃者の特徴セットをシステムのすべてのユーザのキーストロークセッションの特徴セットと比較することで生じ得る大きな計算負荷を低減するために、方法200は、より少ない数のユーザの知的選択(intelligent selection)を実行することができる。例えば、システムにおいて、攻撃の標的となったアカウントを有する特定のユーザとリンクしているユーザに関連するキーストロークセッションの中から選択を行ってもよい。例えば、システムがソーシャルネットワーク(例えば、ソーシャルネットワーキングウェブサイトやソーシャルネットワーキングプラットフォームなど)またはインスタントメッセージングプラットフォーム(例えば、インターネットメッセージングサービスやソーシャルメディアメッセージングサービスなど)のものである場合、比較は、標的ユーザとリンクしている(例えば、「フレンド」である)とシステムが定義したユーザのキーストロークセッションに対してのみ実行されてもよい。
【0053】
上記に加えて、または上記に代えて、本発明の様々な実施形態は、コンピュータ化システムのユーザ間の何らかの暗黙の関連性(implicit linkage)を活用して、キーストロークセッションを比較するユーザを絞り込むことができる。このような暗黙の関連性は、例えば、システム内で過去にユーザ間でインタラクションが行われたという事実から推定されてもよい。インタラクションは例えば、ユーザ間での直接のメッセージ交換や、システム内で別のユーザが投稿した内容に対する一のユーザのインタラクション(例えば、投稿にコメントする、投稿を「いいね」するなど)などである。
【0054】
例示的な実施形態において、方法200は、選択したユーザのキーストロークセッションの各々について、該当のユーザが攻撃者である可能性を示す確率スコアを生成する機械学習アルゴリズムに基づいて、ステップ212の比較を行うことができる。機械学習アルゴリズムは、例えば、ランダムフォレストアルゴリズム、サポートベクターマシン(SVM)、ナイーブベイズアルゴリズムなどであってもよい。なお、当業者であれば、確率スコアの生成に適した他の機械学習アルゴリズムも認識可能である。
【0055】
本発明の様々な実施形態は、複数のユーザ(例えば、少なくとも50、100、200、または500人のユーザ)の特徴ベクトルを含む訓練セットで機械学習アルゴリズムを訓練することができ、各特徴ベクトルは、該当のユーザの一意の識別子(例えば、訓練の目的のためにそのユーザに割り当てられた単純なシリアルナンバー)でラベル付けされる。訓練セットにおいて、各ユーザは、そのユーザに関連する少なくとも1つの特徴ベクトルを有する。ただし、各ユーザについて複数の特徴ベクトル、すなわち、少なくとも数分、数時間、あるいは数日離れて記録されたそのユーザの別々のキーストロークセッションから得られる特徴ベクトルを有することが有益な場合がある。本発明の実施形態は、各ユーザについて利用可能な特徴ベクトルが多ければ多いほど、機械学習アルゴリズムが、これらの特徴ベクトルの基礎となる特徴(これらの特徴ベクトルを、ラベルによって示される同じクラス(すなわち、ユーザ識別子)に帰属させる特徴)を学習できることを認識するものである。
【0056】
そして、この訓練によって生成された機械学習モデル(「分類器」ともいう)は、新たな、これまでに見られなかった特徴ベクトルが、様々な既知のクラスに属する確率を計算することができる。既知のクラスとは、システムの既存のユーザ(またはユーザの絞り込まれたサブセット)である。すなわち、学習済みの機械学習モデルを新たな特徴ベクトル(すなわち、攻撃特徴ベクトル)に適用すると、学習済み機械学習モデルは、様々な既存ユーザに対して確率スコアを割り当てることになる。
【0057】
機械学習の代替として、方法200は、攻撃者のベクトルとユーザのうちの1人のベクトルとからなる、各2つのフィーチャベクトル間の距離(または「類似度」)を定量化する数学的距離メトリックに基づいて、ステップ212の比較を行うことができる。適切な距離メトリックの例としては、マンハッタン距離、ユークリッド距離、チェビシェフ距離などが挙げられる。なお、当業者であれば、2つのフィーチャベクトル間の距離の計算に適した他の数学的距離メトリックも認識可能である。
【0058】
次に、ステップ214にて、方法200は、ユーザのうちのどの人物が攻撃者である可能性が高いかを推定する。様々な実施形態において、方法200は、ステップ212の比較結果に基づいて推定を決定する。このようにして、方法200は、攻撃者(すなわち、攻撃特徴ベクトル)との比較で最高確率スコア(機械学習アルゴリズムの場合)または最短距離(数学的距離メトリックの場合)となったユーザ(すなわち、キーストロークセッション特徴ベクトル)を推定攻撃者として特定する。複数のユーザが同じ最高確率スコアまたは同じ最短距離を有する場合、方法200は、対応するすべてのユーザを攻撃者の可能性があるとしてフラグを立てることができる。
【0059】
さらに、方法200は、上位k(top-k probability)確率スコアまたは下位k(bottom-k)距離に基づいて、可能性の高い攻撃者のランク付けリストを出力するように動作することができる。ここで、kは、2~20またはそれ以上など、所望のように設定することができる。いずれの場合も、方法200は、可能性の高い攻撃者の身元、すなわち、システムにおける対応するユーザアカウントの詳細(例えば、ユーザ名、電子メールアドレス、リンクされたシングルサインオンアカウントなど)を、システムの管理者、システムのセキュリティの責任者、もしくは同様の人物またはその組み合わせに送信することができる。これらの人物は、攻撃を停止する、または以後の攻撃を防止するための措置を講じることができる。これらの措置は例えば、攻撃者のユーザアカウントを停止する、標的とされたユーザに認証情報を変更するよう要求する、もしくは同様の措置またはその組み合わせである。あるいは、本発明の実施形態は、攻撃者である可能性の高い身元が判明次第、システムによって自動的に1つ以上のこのような措置を開始することができる。
【0060】
本技術の利点の1つは、潜在的な攻撃者の間で抑止力を形成できる可能性があることである。あるシステムが、攻撃者を特定するために本技術を使用していることが明らかになると、潜在的な攻撃者は、当該システムのユーザを標的とすることを思いとどまる可能性が高い。攻撃者は、不正に入手したあるユーザの認証情報を繰り返しタイピングすることによって当該システム内の他のユーザアカウントにログインしようとしても、それによって当該システムがそのような攻撃を、攻撃の準備に際して開設した攻撃者自身のアカウントに関連付けることができることを理解する。したがって、攻撃者は、最初の試行または最初の数回の試行でシステムのキーストロークダイナミクス認証機能を回避できると確信しない限り(その可能性は極めて低い)、ユーザの認証情報を繰り返しタイピングすることで、自分の存在がより明らかになってしまうことを知る。
【0061】
本技術は、コンピュータセキュリティフォレンジックの他の従来の方法と共に採用してもよい。例えば、各ユーザのキーストロークセッションおよび攻撃者の試行を記録することに加えて、IPアドレス、ユーザエージェント文字列、もしくはMAC(Media Access Control)アドレスまたはその組み合わせなどの識別子を収集してもよい。攻撃者がユーザアカウントにサインアップしてから攻撃を実行するまでの間、同じ識別子を維持していた場合、攻撃と特定のユーザアカウントとの関連付けを、より確度高く行うことができる。識別子として使用可能なものとしてはさらに、従来の行動バイオメトリクス技術によって作成されるもの(ポインティングデバイスの動きの固有パターン、タッチスクリーンのインタラクションなど)が挙げられる。一般に、本技術と1つ以上の追加のユーザ識別子とを組み合わせることにより、特定のシステムのユーザの中で誰が攻撃者であるかの推定精度を高めることができる。
【0062】
本発明は、システム、方法もしくはコンピュータプログラム製品またはそれらの組み合わせとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでもよい。
【0063】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0064】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピュータ装置/処理装置へダウンロード可能である。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部記憶装置へダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピュータ装置/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピュータ装置/処理装置におけるコンピュータ可読記憶媒体に記憶するために転送する。
【0065】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0066】
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行可能である。
【0067】
これらのコンピュータ可読プログラム命令は、機械を生産するために、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサに提供することができる。これにより、このようなコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。これらのコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他の装置またはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶することができる。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
【0068】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他の装置にロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他の装置上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
【0069】
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行されてもよい。例えば、関係する機能に応じて、連続して示される2つのブロックが、実際には、1つの工程として達成されてもよいし、同時もしくは略同時に実行されてもよいし、部分的もしくは全体的に時間的に重複した態様で実行されてもよいし、ブロックが場合により逆順で実行されてもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実行可能である。
【0070】
数値範囲の説明は、すべての可能な部分範囲(subranges)およびそれらの範囲内にある個々の数値を具体的に開示したものとみなすべきである。例えば、「1から6」などの範囲の記述は、1から3、1から4、1から5、2から4、2から6、3から6などの部分範囲と、その範囲内の個々の値(例えば1、2、3、4、5、および6)を具体的に開示したものとみなすべきである。これは、範囲の広さに関係なく適用される。
【0071】
本発明の種々の実施形態を例示として説明してきたが、網羅的であることや、これらの実施形態に限定することを意図したものではない。当業者には明らかなように、本発明の範囲および主旨から逸脱することなく、多くの変更および変形が可能である。本明細書で用いられる用語は、本実施形態の原理、実際の用途、または市場で確認される技術に対する技術的な改善を最もよく説明するために、または、当業者が本明細書に開示する各実施形態を理解できるように選択されたものである。