(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-26
(45)【発行日】2023-08-03
(54)【発明の名称】アクセス権に基づいてコンピューティングデバイス上でタスクを実行するシステムおよび方法
(51)【国際特許分類】
G06F 21/52 20130101AFI20230727BHJP
G06F 21/62 20130101ALI20230727BHJP
G06F 21/56 20130101ALI20230727BHJP
G06F 21/30 20130101ALI20230727BHJP
【FI】
G06F21/52
G06F21/62 345
G06F21/56 360
G06F21/30
【外国語出願】
(21)【出願番号】P 2020012859
(22)【出願日】2020-01-29
【審査請求日】2022-07-14
(32)【優先日】2019-03-29
(33)【優先権主張国・地域又は機関】RU
(32)【優先日】2019-07-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515348585
【氏名又は名称】エーオー カスペルスキー ラボ
【氏名又は名称原語表記】AO Kaspersky Lab
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】イヴァン アイ. タタリノフ
(72)【発明者】
【氏名】ニキータ エー. パブロフ
【審査官】宮司 卓佳
(56)【参考文献】
【文献】米国特許出願公開第2018/0351968(US,A1)
【文献】特表2013-503377(JP,A)
【文献】米国特許出願公開第2015/0339477(US,A1)
【文献】米国特許出願公開第2017/0161490(US,A1)
【文献】米国特許出願公開第2012/0151559(US,A1)
【文献】米国特許出願公開第2013/0300557(US,A1)
【文献】米国特許出願公開第2006/31943(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-21/88
(57)【特許請求の範囲】
【請求項1】
アクセス権に基づいてコンピューティングデバイス上でタスクを実行する方法であって、
前記タスクを実行するのに使用されるファンクション呼び出しをインターセプトすることによって、前記タスクを特徴付けるデータを収集し、かつアクセス権が決定されるまで呼び出されたファンクションを一時的に中断するよう前記コンピューティングデバイスのオペレーティングシステムにリクエストを送信することと、
前記収集したデータおよびタスクテンプレートに基づいて、前記タスクの脅威レベルを決定することと、
前記脅威レベルおよびテスト生成ルールに基づいてテストを生成して該テストをユーザに提示することと、
前記テストの結果を解析して該結果に基づいて前記タスクのアクセス権を決定することと、
前記アクセス権に基づいて前記タスクを実行することと、
を含む方法。
【請求項2】
前記タスクは、
前記ユーザの個人または機密データを含むデータを処理するためのプロセスの制御と、
前記コンピューティングデバイス上で、または前記コンピューティングデバイスに通信可能に連結されている別のコンピューティングデバイス上で実行されるプロセスの制御と、
アプリケーションの制御と、
前記コンピューティングデバイスのオペレーティングシステムの動作パラメータの変更または設定と、
のうちの少なくとも1つを行うためのものである、請求項1に記載の方法。
【請求項3】
前記タスクは、
前記コンピューティングデバイス上の前記ユーザの個人または機密データの作成、修正、または削除と、
コンピュータネットワークを介したデータの送信と、
ファイルの作成または修正と、
前記コンピューティングデバイスの制御と、
前記コンピューティングデバイス上で動作するソフトウェアの制御と、
に関するタスクのうちの少なくとも1つである、請求項1に記載の方法。
【請求項4】
前記コンピューティングデバイスの制御のためのタスクは、少なくとも、
前記コンピューティングデバイスのファイルシステムのオブジェクトを処理し、
前記コンピューティングデバイスのオペレーティングシステムのオブジェクトの権利を処理し、
前記コンピューティングデバイス上のアプリケーションのグラフィックインターフェース構成要素を処理し、
前記コンピューティングデバイスの機器の動作モードを制御する
ためのタスクを含む、請求項3に記載の方法。
【請求項5】
前記タスクを特徴付けるデータは、少なくとも、複数のタスクの中から前記タスクを一意に識別するパラメータおよび属性と、前記タスクを実行するために必要な前記コンピューティングデバイスのパラメータおよび属性とを含む、請求項1に記載の方法。
【請求項6】
前記脅威レベルは、前記コンピューティングデバイスの情報セキュリティに危害を加えるタスクを実行する確率を表す数値として提供され、前記確率は、前記収集したデータ、および脅威レベルが既に決定された別のタスクとのタスクの類似性に基づくものである、請求項1に記載の方法。
【請求項7】
前記タスクの実行は、
仮想マシン上で前記タスクを実行することと、前記ユーザが前記テストに合格するかどうかを判断することと、
前記ユーザが前記テストに合格した場合に、前記仮想マシンで行われた変更を前記コンピューティングデバイスに適用することと、
を含む、請求項1に記載の方法。
【請求項8】
現在のタスクの前記脅威レベルは、1つまたは複数の過去のタスクの脅威レベルに応じて決定される、請求項1に記載の方法。
【請求項9】
アクセス権に基づいてコンピューティングデバイス上でタスクを実行するシステムであって、
前記タスクを実行するのに使用されるファンクション呼び出しをインターセプトすることによって、前記タスクを特徴付けるデータを収集し、かつアクセス権が決定されるまで呼び出されたファンクションを一時的に中断するよう前記コンピューティングデバイスのオペレーティングシステムにリクエストを送信し、
前記収集したデータおよびタスクテンプレートに基づいて、前記タスクの脅威レベルを決定し、
前記脅威レベルおよびテスト生成ルールに基づいてテストを生成して該テストをユーザに提示し、
前記テストの結果を解析して該結果に基づいて前記タスクのアクセス権を決定し、
前記アクセス権に基づいて前記タスクを実行する、
ように構成された少なくとも1つのプロセッサを含むシステム。
【請求項10】
前記タスクは、
前記ユーザの個人または機密データを含むデータを処理するためのプロセスの制御と、
前記コンピューティングデバイス上で、または前記コンピューティングデバイスに通信可能に連結されている別のコンピューティングデバイス上で実行されるプロセスの制御と、
アプリケーションの制御と、
前記コンピューティングデバイスのオペレーティングシステムの動作パラメータの変更または設定と、
のうちの少なくとも1つを行うためのものである、請求項9に記載のシステム。
【請求項11】
前記タスクは、
前記コンピューティングデバイス上の前記ユーザの個人または機密データの作成、修正、または削除と、
コンピュータネットワークを介したデータの送信と、
ファイルの作成または修正と、
前記コンピューティングデバイスの制御と、
前記コンピューティングデバイス上で動作するソフトウェアの制御と、
に関するタスクのうちの少なくとも1つである、請求項9に記載のシステム。
【請求項12】
前記コンピューティングデバイスの制御のためのタスクは、少なくとも、
前記コンピューティングデバイスのファイルシステムのオブジェクトを処理し、
前記コンピューティングデバイスのオペレーティングシステムのオブジェクトの権利を処理し、
前記コンピューティングデバイス上のアプリケーションのグラフィックインターフェース構成要素を処理し、
前記コンピューティングデバイスの機器の動作モードを制御する
ためのタスクを含む、請求項11に記載のシステム。
【請求項13】
前記タスクを特徴付ける前記データは、少なくとも、複数のタスクの中から前記タスクを一意に識別するパラメータおよび属性と、前記タスクを実行するために必要な前記コンピューティングデバイスのパラメータおよび属性とを含む、請求項9に記載のシステム。
【請求項14】
前記脅威レベルは、前記コンピューティングデバイスの情報セキュリティに危害を加えるタスクを実行する確率を表す数値として提供され、前記確率は、前記収集したデータ、および脅威レベルが既に決定された別のタスクとのタスクの類似性とに基づくものである、請求項9に記載のシステム。
【請求項15】
前記タスクの実行は、
仮想マシン上で前記タスクを実行することと、前記ユーザが前記テストに合格するかどうかを判断することと、
前記ユーザが前記テストに合格した場合に、前記仮想マシンで行われた変更を前記コンピューティングデバイスに適用することと、
を含む、請求項9に記載のシステム。
【請求項16】
現在のタスクの前記脅威レベルは、1つまたは複数の過去のタスクの脅威レベルに応じて決定される、請求項9に記載のシステム。
【請求項17】
アクセス権に基づいてコンピューティングデバイス上でタスクを実行するためのコンピュータ実行可能命令を記憶している非一時的なコンピュータ可読記憶媒体であって、
前記タスクを実行するのに使用されるファンクション呼び出しをインターセプトすることによって、前記タスクを特徴付けるデータを収集し、かつアクセス権が決定されるまで呼び出されたファンクションを一時的に中断するよう前記コンピューティングデバイスのオペレーティングシステムにリクエストを送信し、
前記収集したデータおよびタスクテンプレートに基づいて、前記タスクの脅威レベルを決定し、
前記脅威レベルおよびテスト生成ルールに基づいてテストを生成して該テストをユーザに提示し、
前記テストの結果を解析して該結果に基づいて前記タスクのアクセス権を決定し、
前記アクセス権に基づいて前記タスクを実行する、
ための命令を含む、非一時的なコンピュータ可読媒体。
【請求項18】
前記タスクは、
前記ユーザの個人または機密データを含むデータを処理するためのプロセスの制御と、
前記コンピューティングデバイス上で、または前記コンピューティングデバイスに通信可能に連結されている別のコンピューティングデバイス上で実行されるプロセスの制御と、
アプリケーションの制御と、
前記コンピューティングデバイスのオペレーティングシステムの動作パラメータの変更または設定と、
のうちの少なくとも1つを行うためのものである、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項19】
前記タスクは、
前記コンピューティングデバイス上の前記ユーザの個人または機密データの作成、修正、または削除と、
コンピュータネットワークを介したデータの送信と、
ファイルの作成または修正と、
前記コンピューティングデバイスの制御と、
前記コンピューティングデバイス上で動作するソフトウェアの制御と、
に関するタスクのうちの少なくとも1つである、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記コンピューティングデバイスの制御のためのタスクは、少なくとも、
前記コンピューティングデバイスのファイルシステムのオブジェクトを処理し、
前記コンピューティングデバイスのオペレーティングシステムのオブジェクトの権利を処理し、
前記コンピューティングデバイス上のアプリケーションのグラフィックインターフェース構成要素を処理し、
前記コンピューティングデバイスの機器の動作モードを制御する
ためのタスクを含む、請求項19に記載の非一時的なコンピュータ可読媒体。
【請求項21】
前記タスクを特徴付ける前記データは、少なくとも、複数のタスクの中から前記タスクを一意に識別するパラメータおよび属性と、前記タスクを実行するために必要な前記コンピューティングデバイスのパラメータおよび属性とを含む、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項22】
前記脅威レベルは、前記コンピューティングデバイスの情報セキュリティに危害を加えるタスクを実行する確率を表す数値として提供され、前記確率は、前記収集したデータ、および脅威レベルが既に決定された別のタスクとのタスクの類似性とに基づくものである、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項23】
前記タスクの実行は、
仮想マシン上で前記タスクを実行することと、前記ユーザが前記テストに合格するかどうかを判断することと、
前記ユーザが前記テストに合格した場合に、前記仮想マシンで行われた変更を前記コンピューティングデバイスに適用することと、
を含む、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項24】
現在のタスクの前記脅威レベルは、1つまたは複数の過去のタスクの脅威レベルに応じて決定される、請求項17に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータセキュリティ分野に関し、より詳細には、アクセス権に基づいてコンピューティングデバイス上でタスクを実行するシステムおよび方法に関する。
【背景技術】
【0002】
仮想マシンは、現在のネットワークにおいてユビキタスになっている。仮想マシン(Virtual Machine:VM)は、物理マシン(例えば、コンピュータまたはサーバ)内部のコンピューティング環境を仮想化するソフトウェア環境である。物理マシンは、「ホストマシン」としても知られている。
【0003】
過去10年間のコンピュータ技術の急速な発展、および種々のコンピューティングデバイス(パーソナルコンピュータ、ノートブック、タブレット、スマートフォンなど)の普及は、多様な活動分野での膨大な数のタスク(インターネットサーフィンから銀行振替およびファイル転送まで)に対するデバイスの使用に強力に影響を及ぼしている。コンピューティングデバイスの数、およびこれらのデバイス上のソフトウェアの実行量が増え続けるにつれて、これらのデバイス上で処理されるデータへのアクセスを認可する方法の数も増え続けている。加えて、悪意あるプログラムおよびこのデータを利用する不正方法の数も、急速に増え続けている。したがって、情報セキュリティの問題は、特に重要になりつつある。
【0004】
現在、多くの種類の悪意あるプログラムが存在する。悪意あるプログラムには、個人データおよび機密データ(例えば、ログインおよびパスワード、銀行情報、ファイル)をユーザのデバイスから盗むものもある。その他の悪意あるプログラムは、分散型サービス不能(Distributed Denial of Service:DDoS)攻撃、または例えばブルートフォース攻撃によるパスワードの解読などの、他のコンピュータまたはコンピュータネットワークに対する攻撃のために、ユーザのデバイスからいわゆるボットネットを形成する。さらに、他の悪意あるプログラムは、侵入的な広告、有料定期購読、例えば、ショートメッセージサービス(Short Message Services:SMS)による通話番号へのメッセージ送信などを通して、ユーザに有料コンテンツを勧めるように設計されている。
【0005】
上述の脅威を減らすアプローチの1つは、アンチウイルスプログラムを使用することである。しかし、実際には、一定の状況ではアンチウイルスプログラムは効果がない。例えば、このアプローチは、コンピュータシステムに対する標的型サイバー攻撃(例えば、先進的で執拗な攻撃(Advanced Persistent Threats:APT))の場合には効果がない。別の例では、アンチウイルスプログラムは、感染が生じる場合に、コンピュータシステム上で(例えば、アンインストールされて、または接続が切れて)作動しない場合もある。したがって、このアプローチは、一部のシナリオでは役立たない可能性がある。
【0006】
より信頼性の高い防御策では、上述のアプローチと共に、アンチウイルスプログラムの動作の補正および補足に関するユーザの専門知識を活用することが必要な場合が多い。例えば、ユーザは、複数の手段から課題解決方法を選択するか、または、ユーザは、システムが作動し続けることができるように、システムにデータを入力する場合もある。例えば、不正アクセス、標的型サイバー攻撃、不明なプログラムの実行、のうちの1つまたは複数をシステムが検出できるよう、ユーザがデータを入力する場合もある。この目的のために、認可(ログインおよびバスワード)、ユーザアクションの判定、および自動公開チューリングテストの実行のためのツールが用いられる。これらのツールにより、ユーザは、コンピューティングデバイスのセキュリティシステムの構成要素と相互作用することができる。
【0007】
しかし、ユーザの専門知識が用いられる場合であっても、弱点が存在する。例えば、自動公開チューリングテストは、システムにおいて人間が存在するかどうかを判定し、きわめて重要なタスクが自動的に実行されないようブロックするように設計されるが、標的型サイバー攻撃や、マシンがテストに合格することを阻止しない可能性がある。例えば、極めて特化された自動化アルゴリズムが、既定の良く知られたテスト(例えば、テキスト識別ベースのテスト)を合格するように作成される可能性もある。テストの静的特性により、攻撃者には、テストを徹底的に研究し、テストを合格するためのアルゴリズムを開発する時間が与えられる。したがって、データセキュリティに関する既知の技術は、例えば自動公開チューリングテストを伴ったタスクの実行を求めるリクエストを回避するような悪意あるプログラムによる攻撃に対して脆弱である。
【0008】
したがって、コンピュータリソースへのアクセスを認可し、アクセス権に基づいて、コンピューティングデバイスの情報セキュリティにきわめて重要なアクションを実行するためのより最適な解決法が必要とされる。
【発明の概要】
【発明が解決しようとする課題】
【0009】
本開示の態様は、コンピュータセキュリティ分野に関し、より詳細には、アクセス権に基づいてコンピューティングデバイス上でタスクを実行するシステムおよび方法に関する。
【課題を解決するための手段】
【0010】
一例示的態様では、アクセス権に基づいてコンピューティングデバイス上でタスクを実行する方法が、ハードウェアプロセッサを備えたコンピュータに実装され、該方法は、タスクを実行するのに使用されるファンクション呼び出しをインターセプトすることによって、タスクを特徴付けるデータを収集し、かつアクセス権が決定されるまで呼び出されたファンクションを一時的に中断するようコンピューティングデバイスのオペレーティングシステムにリクエストを送信することと、収集したデータおよびタスクテンプレートに基づいて、タスクの脅威レベルを決定することと、脅威レベルおよびテスト生成ルールに基づいてテストを生成して該テストをユーザに提示することと、テストの結果を解析して該結果に基づいてタスクのアクセス権を決定することと、アクセス権に基づいてタスクを実行することとを含む。
【0011】
本開示の一態様に従って、システムが、アクセス権に基づいてコンピューティングデバイス上でタスクを実行するために提供され、該システムは、タスクを実行するのに使用されるファンクション呼び出しをインターセプトすることによって、タスクを特徴付けるデータを収集し、かつアクセス権が決定されるまで呼び出されたファンクションを一時的に中断するようコンピューティングデバイスのオペレーティングシステムにリクエストを送信し、収集したデータおよびタスクテンプレートに基づいて、タスクの脅威レベルを決定し、脅威レベルおよびテスト生成ルールに基づいてテストを生成してユーザにそのテストを提示し、テストの結果を解析してその結果に基づいてタスクのアクセス権を決定し、アクセス権に基づいてタスクを実行するように構成されたハードウェアプロセッサを含む。
【0012】
一例示的態様では、アクセス権に基づいてコンピューティングデバイス上でタスクを実行するための命令のセットを記憶している非一時的なコンピュータ可読媒体が提供され、ここで、該命令のセットは、タスクを実行するのに使用されるファンクション呼び出しをインターセプトすることによって、タスクを特徴付けるデータを収集し、かつアクセス権が決定されるまで呼び出されたファンクションを一時的に中断するようコンピューティングデバイスのオペレーティングシステムにリクエストを送信し、収集したデータおよびタスクテンプレートに基づいて、タスクの脅威レベルを決定し、脅威レベルおよびテスト生成ルールに基づいてテストを生成してユーザにそのテストを提示し、テストの結果を解析してその結果に基づいてタスクのアクセス権を決定し、アクセス権に基づいてタスクを実行するための命令を含む。
【0013】
一態様では、タスクは、ユーザの個人または機密データを含むデータを処理するためのプロセスの制御と、コンピューティングデバイス上で、または該コンピューティングデバイスに通信可能に連結されている別のコンピューティングデバイス上で実行されるプロセスの制御と、アプリケーションの制御と、コンピューティングデバイスのオペレーティングシステムの動作パラメータの変更または設定と、のうちの少なくとも1つを行うためものである。
【0014】
一態様では、タスクは、コンピューティングデバイス上のユーザの個人または機密データの作成、修正、または削除と、コンピュータネットワークを介したデータの送信と、ファイルの作成または修正と、コンピューティングデバイスの制御と、コンピューティングデバイス上で動作するソフトウェアの制御に関するタスクのうち、少なくとも1つである。
【0015】
一態様では、コンピューティングデバイスを制御するタスクは、少なくとも、コンピューティングデバイスのファイルシステムのオブジェクトを処理し、コンピューティングデバイスのオペレーティングシステムのオブジェクトの権利を処理し、コンピューティングデバイス上のアプリケーションのグラフィックインターフェース構成要素を処理し、コンピューティングデバイスの機器の動作モードを制御するためのタスクを含む。
【0016】
一態様では、タスクを特徴付けるデータは、少なくとも、複数のタスクの中から該タスクを一意に識別するパラメータおよび属性と、タスクを実行するために必要なコンピューティングデバイスのパラメータおよび属性とを含む。
【0017】
一態様では、脅威レベルは、コンピューティングデバイスの情報セキュリティに危害を加えるタスクを実行する確率を表す数値として提供され、該確率は、収集したデータ、および脅威レベルが既に決定された別のタスクとのタスクの類似性に基づくものである。
【0018】
一態様では、タスクの実行は、仮想マシン上でタスクを実行することと、ユーザがテストに合格するかどうかを判断することと、ユーザがテストに合格した場合に、仮想マシンで行われた変更をコンピューティングデバイスに適用することとを含む。
【0019】
一態様では、現在のタスクの脅威レベルは、1つまたは複数の過去のタスクの脅威レベルに応じて決定される。
【0020】
一態様では、本開示の方法により、アクセス権に基づいてコンピューティングデバイス上でタスクを実行する。方法は、コンピューティングデバイス上でユーザが実行するアクションに応じてユーザを認可するように設計される。本開示の方法は、有利には、データの情報セキュリティを可能にする。
【図面の簡単な説明】
【0021】
本明細書に組み込まれ、かつ本明細書の一部を構成する添付図面は、発明を実施するための形態と共に本開示の1つまたは複数の例示的態様を示すものであり、それらの原理および実装形態を説明するために提供される。
【0022】
【
図1】
図1は、本開示の態様に従って、アクセス権に基づいてコンピューティングデバイス上でタスクを実行するシステムの例示的構造図を示す図である。
【
図2】
図2は、本開示の態様に従って、アクセス権に基づいてコンピューティングデバイス上でタスクを実行する方法を示す図である。
【
図3】
図3は、例示的な補正可能自動公開チューリングテストを示す図である。
【
図4】
図4は、本開示の態様に従って、コンピューティングデバイス上でユーザを認可するシステムの一例を示す図である。
【
図5】
図5は、本開示の態様に従って、コンピューティングデバイス上でユーザを認可する方法を示す図である。
【
図6】
図6は、本開示の態様が実装され得る汎用コンピュータシステムの一例を示す図である。
【発明を実施するための形態】
【0023】
本明細書では、アクセス権に基づいてコンピューティングデバイス上でタスクを実行するシステム、方法、およびコンピュータプログラムとの関連において例示的態様を記載する。以下の説明は単に例示にすぎず、いかなる点においても限定することを意図するものではないことを当業者であれば理解されるであろう。その他の態様は、本開示より利益を得る当業者であれば容易に連想されるであろう。添付図面に示される例示的な態様の実装形態について、以下で詳しく説明する。同一または類似の項目については、図面および以下の説明を通して、可能な範囲で同じ参照番号を使用する。
【0024】
本開示の教示を明瞭に提示するために、本開示の種々の態様を説明する際に使用されるいくつかの用語および概念が、本明細書において定義される。
【0025】
自動公開チューリングテスト(例えば、Completely Automated Public Turing test to tell Computers and Humans Apart:CAPTCHA、コンピュータと人間を区別するための完全自動公開チューリングテスト)は、システムのユーザが人間か、マシン(例えば、コンピュータ)かを判断するのに使用されるコンピュータテストである。
【0026】
「保護された情報」とは、独自の情報であり、法的文書の要件、または情報の所有者によって定められる要件に従って保護の対象となる情報を意味する。
【0027】
「クリティカルユーザデータ」とは、個人(きわめて重要なデータの主体)または個人が作業しているシステム(例えば、コンピューティングデバイス)に重大な危害を加えるのに使用(例えば、修正、削除、複製)され得るデータを意味する。
【0028】
「個人データ」とは、個人の姓、名、ミドルネーム、生年月日、出身地、住所、親族、社会的および財政的なステータス、学歴、職業、収入またはその他の情報を含む情報に基づいて特定される、または特定可能な個人(すなわち、個人データの主体)に関するいずれかの情報を意味する。
【0029】
「アクセスルール」は、主体(ユーザ)が保護された情報(例えば、個人データ)およびそのキャリアにアクセスする順序および1つまたは複数の条件を定める一連のルールを意味する。
【0030】
「アクセス権」とは、保護された情報にアクセスする場合に使用される一連のルールを意味する。アクセス権は、法的文書または情報の所有者によって定められる。
【0031】
「標的型サイバー攻撃」(APT-先進的で執拗な攻撃)とは、攻撃の中核の人物によって、リアルタイムで、手動で制御されるサイバー攻撃のタイプを指す。攻撃の目的は、特定の企業、組織、または政府のサービスの情報システムから、保護された情報を盗むことである。標的型攻撃の主要な際立った特徴としては、標的型攻撃を実行するための、攻撃の持続時間、リソースを浪費する長い準備期間、および技術および/またはコンピュータシステムの使用が挙げられる。標的型攻撃の設計に向けた包括的なアプローチとしては、心理状態を利用して人々に積極的に影響を与えること、ソーシャルエンジニアリング法、装置に対するゼロデイエクスプロイトなどが挙げられる。
【0032】
自動公開チューリングテストは、抽象的な問題を単に人間的な方法で解答することに基づくものであり、これらのチューリングテストを解く各ユーザは、そのユーザ独自の方法で個別にそれを解く。ユーザの独自性としては、テストに合格するスピード、テストに合格する際のユーザが実行するアクション、および個人の経験から学習してテストに合格するために使用する方法を補正する可能性などの特徴が挙げられる。例えば、テストに合格するこのような個々の方法の最もシンプルな例は、デスク上のオブジェクトを一箇所から別のところへ移動すること、または、左から右に配列された多くの構成要素から1つを選択することなどを含む。したがって、このようなチューリングテストは、テストを受けているのが人間なのかマシンなのかを判断できるだけではなく、所定のテストを以前に受けたことのあるどの個人が現在テストを受けているかを正確に判断することができる。チューリングテストのこれらの原理は、コンピューティングデバイス上で実行されるきわめて重要なタスクを人間に確認させることによって、コンピューティングデバイスの情報セキュリティを強化するための基盤を形成するものである。
【0033】
図1は、本開示の態様に従って、アクセス権に基づいてコンピューティングデバイス上でタスクを実行するシステムの例示的構造
図100を示す。
【0034】
コンピューティングデバイス上でタスクを実行するシステムの構造図は、データ収集部110、脅威評価部120、テスト生成部130、解析部140、訓練部150、ルール生成部160、およびタスクテンプレート生成部170を含む。
【0035】
データ収集部110は、コンピューティングデバイスの制御タスク(以下、タスク101)を特徴付けるデータを収集し、かつ脅威評価部120に該収集したデータを送信するように設計されている。
【0036】
一態様では、コンピューティングデバイスのタスク101は、コンピュータネットワークを介してデータ(例えば、ファイル)を作成、修正、削除または送信するタスクを含む場合がある。
【0037】
一態様では、コンピューティングデバイスのセキュリティにきわめて重要であると認められる場合、タスク101は、後述するように、解析部140によって制御タスク101のアクセス権が決定されるまで、コンピューティングデバイス上での実行をブロックされる。
【0038】
例えば、ファイルの削除、ハードディスクへの書込み、またはコンピュータネットワークを通したデータの送信などのタスク101は、(例えば、以前に収集されて解析された、異なるコンピューティングデバイスに対するサイバー攻撃の統計に基づいて)コンピューティングデバイスのセキュリティにきわめて重要であると認められた場合、(解析部140によって決定されるまで)コンピューティングデバイス上での実行を一時的にブロックされる。これらのタスク101のために、これらのタスク101を特徴付けるデータが収集され、コンピューティングデバイスのユーザが、テスト生成部130によって生成された自動公開チューリングテストに合格した後に、対応するアクセス権141に従って、コンピューティングデバイス上で上述のタスク101(ファイルの削除、ハードディスクへの書込み、またはコンピュータネットワークを通したデータの送信)を実行する許可が与えられる(例えば、オペレーティングシステムに対して対応するコマンドが出される、これらのタスク101を実行するプロセスのブロックまたはブロック解除のためにAPIが使用される、など)。
【0039】
さらに別の態様では、タスク101を特徴付けるデータの収集は、それぞれのタスク101を実行するのに使用されるファンクション呼び出しをインターセプトすることによって行われる。ファンクション呼び出しのインターセプションは、専用のドライバを用いて行われてもよい。
【0040】
例えば、専用のドライバを用いて、所定のタスク101を実行するのに使用されるAPIファンクション呼び出しがインターセプトされる。例えば、Windowsオペレーティングシステムで実行されるような、コンピュータネットワークにデータを送信するタスク101は、ネットワークドライバによってインターセプトされ得る関数socket、recv、sendなどを使用する。
【0041】
さらに別の例では、実行されるタスク101がいくつかの部分タスクを含む場合、異なるデータ収集方法を併せて使用してもよい。例えば、ソフトウェアをインストールするタスクは、ディスクにインストールされるファイルに書き込むためにファイルシステムを処理し、インストールされるファイルを解凍する操作を実施するために大きなデータ容量を割り当てるようメモリを処理し、インストールされるソフトウェアのパラメータを入力するためにレジスタを処理する、などの部分タスクを含む。この場合、ファイルシステムドライバは、CreateFile、ReadFile、WriteFileなどによって実行されるファンクションを追跡するのに使用され、フックは、HeapAlloc、VirtualAlloc、CreateFileMappingなどによって実行されるファンクションを追跡するためにインストールおよび使用され、ならびにソフトウェア設定ファイル、ソフトウェアインストールログなどは、ソフトウェアの動作に影響するパラメータを決定するために監視および解析される。
【0042】
さらに別の例では、ファンクション呼び出しがインターセプトされた後に、呼び出されたファンクションを一時的に中断するようオペレーティングシステムにリクエストを送信することにより、呼び出されたファンクションが実行されないようにする。例えば、スプライシング技術を用いた場合、WinAPIファンクション(例えば、CreateFile)が呼び出されると、監視対象のアプリケーションはまず監視するアプリケーション(例えば、ドライバ)を参照し、その場合にのみ、ドライバは、インターセプトされたファンクションの呼び出しを実行するためオペレーティングシステムにリダイレクトする。一方、ドライバの論理が要求する場合、インターセプトされたファンクションは、オペレーティングシステムに送信されず、この場合、呼び出されたファンクションが正常に実行されたとアプリケーションが「判断」できるよう、インターセプトされたファンクションを呼び出した監視対象アプリケーションに必要なデータが送信される。
【0043】
さらに別の態様では、タスク101は、少なくとも、以下に挙げるタスクを意味する。
・ユーザが直接処理する、ユーザまたは法人の個人または機密データ(例えば、Microsoft Officeファイル)を含む、情報セキュリティにきわめて重要なデータを処理するためのコンピューティングデバイスのオペレーティングシステムによって実行されるプロセスの制御。実行されるプロセスは、ファイルの作成、修正又は削除、コンピューティングデバイスへのソフトウェアのインストール、データアーカイブ処理などのために行われることがある。
・クライアントサーバアーキテクチャなどのコンピュータネットワーク内の所定のコンピューティングデバイス上、または所定のデバイスに接続されている他のコンピューティングデバイス上のオペレーティングシステムによって実行されるプロセスの制御。所定のコンピューティングデバイスと他のコンピューティングデバイスとの間の相互作用は、一例では、ウェブブラウザを使用するサイトとの相互作用である場合がある。この場合、データ収集部110および解析部140は、異なるクライアントおよび/またはサーバ上で操作される場合がある。
・ユーザによるデータの入力またはそのデータの解析の制御を含む、アプリケーションのグラフィックインターフェースを使用するアプリケーションの制御。例えば、タスク101は、管理ツールを用いるログインおよびパスワードなどの機密ユーザデータの入力を含む場合があり、この際、どのタイプの機密データが入力されるかだけではなく、データを入力するのに使用される方式およびインターフェース(すなわち、データを入力するのに使用される手段)も重要である。別の例では、情報は、システムでユーザによって実行されたアクションのリスト、使用されたアプリケーションのグラフィカルインターフェースの構成要素のリスト、データを入力するのにマウスがどのように移動したかに関連する情報、データを入力するのに押されたボタンに関する情報などに関して収集される。
・オペレーティングシステムのモードの変更を含む、オペレーティングシステムの動作パラメータの変更または設定(すなわち、たとえばアクセス権141の制御のため、ユーザによって実行されるアクションおよびオペレーティングシステム内で動作するアプリケーションに、オペレーティングシステムが対応する方法)。例えば、変更または構成は、アプリケーションおよび/またはユーザによって管理者権限およびアクセス権を制御するためのものなどである場合がある。
【0044】
第1の例では、クライアントサーバアーキテクチャを使用する場合、データは、クラウド(1つの遠隔リソース)に格納され、サーバ(もう1つの遠隔リソース)で処理され、そのクライアントからの要求に応じてサーバ(ローカルリソース)によってクライアントに送信される。この場合、タスク101はサーバ上で実行されるが、タスクを実行可能にするためにデータはクライアントからリクエストされ、データ収集部110、脅威評価部120、およびテスト生成部130はサーバ上で動作し、解析部140はクライアント上で動作する。第2の例では、その逆の状況が可能であり、この場合、データ収集部110、脅威評価部120、およびテスト生成部130はクライアント上で動作し、解析部140はサーバ上で動作する。クライアントサーバアーキテクチャで、どのオペレーションスキームが選択されるかに応じて、情報セキュリティが、クライアント(第1の例)またはサーバ(第2の例)に提供される。
【0045】
一態様では、タスク101は、いくつかのタスク101の集合を意味する場合がある。例えば、Adobe PDFファイルを修正するタスクが、いつくかの他のタスク、例えば、サイトからのファイルの入手、必要文書の解凍、および文書を解凍した後の修正などのタスクを伴ってもよい。
【0046】
例えば、データのインターセプト時、タスク101は、実行されずに延期され(例えば、オペレーティングシステムには、タスクの実行を拒否するようコマンドが出される)、コンピューティングデバイスのユーザがテスト生成部130によって生成された自動公開チューリングテストに合格したときだけ、再開される。タスク101は、解析部140によって決定されるアクセス権141に基づいて実行されるが、このアクセス権は、データ収集部110によって収集されたデータに基づいて決定されるものである。
【0047】
一態様では、コンピューティングデバイス上のすべてのタスク101は、仮想化され(すなわち、仮想マシン内で実行され)、ユーザがテストに合格したときのみ、それらのタスク101が実行され、タスクによって行われた変更が物理デバイスに適用される。一定のケースでは、すべてのタスク101ではなく、所定の閾値よりも高い脅威レベルであると脅威評価部120によって決定された脅威レベルのタスクのみが仮想化されることもある。
【0048】
一態様では、解析部140はハイパーバイザのコンポーネントであり、すべてのタスク101は、このハイパーバイザの制御下の仮想マシン上で実行され、ユーザが、テスト生成部130によって生成されたチューリングテストに合格しない場合、タスク101は、実行をブロックされ、仮想マシンは、それらのタスク101を開始する前の状態に戻る。
【0049】
さらに別の態様では、解析部140は、以下によってタスク101を実行する。
・オペレーティングシステムと相互作用すること(例えば、システムによって提供されるAPIを通して)。
・タスク101を処理するアプリケーションのプロセスと相互作用すること(例えば、これらのプロセスを停止または開始すること、プロセスに割り込むことなどによって)。
【0050】
さらに別の態様では、タスク101は、少なくとも以下のものである。
・コンピューティングデバイス上のユーザの個人または機密データの作成、修正、または削除を伴うタスク
・コンピュータネットワークを通したデータの送信を伴うタスク
・ファイルの作成および修正を伴うタスク
・コンピューティングデバイスの制御を伴うタスク
ここで、コンピューティングデバイスの制御に関するタスクは、少なくとも以下を伴う。
a)ファイルシステムのオブジェクトの処理(ファイルおよびそれらの属性の作成、削除、修正)
b)オペレーティングシステムのオブジェクトの権利の処理(実行可能プロセスを含む、ファイルシステムおよびメモリシステムのオブジェクトのアクセス権の修正)
c)アプリケーションのグラフィックインターフェース要素の処理
d)コンピューティングデバイスの装置の動作モードの制御(例えば、ネットワーク装置、ビデオシステム、オーディオシステムなどの処理)
・コンピューティングデバイス上で動作するソフトウェアの制御を伴うタスク
【0051】
例えば、上述のタスク101は、ファイルの作成、修正、または削除と、コンピュータネットワークを通したデータの送信と、コンピューティングデバイスのオブジェクトを処理する(例えば、ファイルを処理する)権利の変更と、コンピューティングデバイスの状態の変更と、コンピューティングデバイス上で作業する特権の変更と、コンピューティングデバイス上で動作するアプリケーションによって提供されるグラフィカルインターフェースを用いるアプリケーションの制御とを含む場合がある。
【0052】
さらに別の態様では、タスク101を特徴付けるデータは、少なくとも、以下のものを含む。
・他のタスクの中から所定のタスク101を一意に識別するパラメータおよび属性
・所定のタスク101を実行するのに必要なコンピューティングデバイスのパラメータおよび属性(例えば、コンピューティングリソースの属性およびパラメータ)
【0053】
例えば、タスク101「ファイル削除」の場合、パラメータは、削除する予定のファイルの名称、プロセスの識別子またはそのタスク101を開始したユーザなどである。
【0054】
さらに別の例では、タスク101「コンピュータネットワークを通したデータの送信」の場合、パラメータは、送信されるデータのポインタ、そのデータを送信するプロセスの識別子、送信されるデータの受信先アドレス、送信されるデータのチェックサムなどを含む場合がある。属性は、データのタイプ(例えば、テキスト、画像、メディアデータ、実行可能アプリケーション、データベース、ファイルなど)、送信されるデータを処理する権利などを含む場合がある。
【0055】
脅威評価部120は、以下を行うように設計される。
・タスク101に関して受信されるデータに基づいてタスク101の脅威レベルを決定する。タスクの脅威レベルは、タスクが実行された場合の、コンピューティングデバイスの情報セキュリティに対する脅威のレベルを特徴付ける。
・テスト生成部130にタスク101の脅威レベルを送信する。
【0056】
一態様では、コンピューティングデバイスに対するタスクの脅威レベルは、タスクの実行がコンピューティングデバイスの情報セキュリティに危害を加える確率を表す数値として提供され、該確率は、タスクを特徴付ける収集されたデータに基づいて、さらに、以前にコンピューティングデバイスに対する脅威レベルが決定された少なくとも1つの以前に指定されたタスクとのタスクの類似性に基づいて、計算される。
【0057】
デバイスの脅威レベルは、アプリケーションの脆弱性の程度を評価する共通脆弱性識別子(Common Vulnerabilities and Exposures:CVE)法(https://www.cvedetails.com参照)を含む、データセキュリティの当業者に一般的に知られている任意の方法によって計算されてよい。CVEを使用する場合、脆弱性の程度の評価は、0(脆弱性がないことを示す)から10(脆弱性の危険レベルを示す、すなわち、情報セキュリティに対して現実に脅威が存在する)までの範囲内の数値で表され、この際に、一定の情報セキュリティ制御システムでは、アプリケーションの使用は、値が4以上では推奨されず、値が8を超える場合は禁止される。
【0058】
さらに別の態様では、現在のタスク101の脅威レベルは、前のタスク101の脅威レベルに応じて決定される。
【0059】
例えば、オペレーティングシステムで、アプリケーションをインストールして、そのアプリケーションの操作をセットアップするタスクは、それぞれ独自の脅威レベルを有する複数の独立したタスクを含んでもよく、前のタスクが実行された後に続く各タスクは、前のタスクが実行されなかった場合のシナリオよりも高い脅威レベルが割り当てられてよい。例えば、ユーザデータバックアップサービスをインストールするタスクは、1)インストールパッケージを解凍すること、2)インストールパッケージを実行すること、3)オペレーティングシステムのシステムフォルダにインストールされているサービスのファイルに書き込むこと、4)オペレーティングシステムのレジストリキーを修正すること(キーの古い値を、新しい値、例えば、インストールされているサービスのファイルへのパスに置き換えることを含む)、5)サービスを開始すること(サービスファイルをメモリにロードすること、ロードされたサービスに対する制御の移行など)、6)コンピュータネットワーク内の外部アドレスに接続すること、7)コンピュータネットワークでタスクを受信すること(例えば、更新すること)、というサブタスクを含んでもよい。上記の各ステップは、コンピューティングデバイスの情報セキュリティに対する脅威を示すものではないため、脅威レベルが低い可能性がある(例えば、その中のステップ1)またはステップ7)は、情報セキュリティに対してまったく影響がない)が、一定のステップが順々に実行されて、前のステップで得た結果を利用する場合、コンピューティングデバイスの情報セキュリティに対して脅威を持つ可能性がある(例えば、ステップ6)、7)、および5)により、コンピュータネットワークで取得された悪意あるコードが実行されたり、または個人または機密ユーザデータがハッカーに送信されたりすることが可能となり、結果的に、こうしたステップの組み合わせの脅威レベルは、実質的に、個々のステップの脅威レベルよりも高くなる)。さらに、各ステップの脅威レベルは、前のステップの脅威レベルに影響されるだけではなく、前のステップで受け取られたデータにも影響される可能性がある。
【0060】
さらに別の態様では、確率が高いほど、コンピューティングデバイスに対する脅威レベルは高くなる。例えば、解析中のタスクが、標的型サイバー攻撃の要素であると判明する場合がある。脅威レベルは、タスクテンプレートデータベース121に基づいて脅威評価部120によって決定され、このタスクテンプレートデータベース121は、機械学習の方法を用いて訓練部150によって生成されるものである。タスク101のパラメータは、予め訓練されたモデルを用いて、訓練部150によって生成および更新されたタスクテンプレートデータベース121のうち示されたテンプレートと比較される。その結果、上述のタスク101と少なくとも1つのタスクテンプレートとの類似性が判定され、タスクの脅威レベルは、上記テンプレートとの類似度および上記テンプレートの脅威レベルによって決定される。
【0061】
例えば、上述の例では、タスク101の脅威レベルは、以下の式によって決定される場合がある。
【数1】
式中、
W
jは、j番目のタスク101の脅威レベルであり、
Nは、訓練済みモデルを用いて見いだされたテンプレートの数であり、
S
ijは、j番目のタスク101とi番目のタスクテンプレートとの間の類似度であり、
W
iは、i番目のタスクテンプレートの脅威レベルであり、
m
i(S
ij)は、上述のモデルが、指定されたj番目のタスク101を処理するためにどれだけ訓練されたかを考慮に入れた補正項(係数)である。
【0062】
第1の例では、特定のコンピューティングデバイスからこれまでにアクセスされたことのないアドレスのコンピュータネットワークからファイルをダウンロードして、高エントロピーの文字列を有する(すなわち、ランダムに生成された可能性の高い)名前のインストールパッケージのダウンロード済みファイルから抽出し、そのファイルを実行することをまとめて、タスク(例えば、標的型サイバー攻撃の特徴を有する方法によって実行されるような、コンピューティングデバイス内に悪意あるソフトウェアを取り込む第1のタスク101など)とみなすことができる。第2の例では、承認済みの名前のリストの中に名前が含まれる実行可能アプリケーションの特定のコンピューティングデバイスによって以前にアクセスされたことのあるアドレスのコンピュータネットワークからダウンロードし、そのアプリケーションを実行することは、タスク(例えば、コンピューティングデバイスに(未検証ではあるが)安全なソフトウェアをインストールする第2のタスク101など)とみなすことができる。第1の例では、コンピューティングデバイスのセキュリティに対して脅威が多大な第1のタスク101は、脅威レベルが第2の例の第2のタスク101(例えば、0.30)よりもが高くなる(例えば、0.80)。
【0063】
さらに別の例では、脅威レベルは、タスク101の実行時間、または実行されるタスク101の所要時間によって決まる場合がある。
【0064】
さらに別の態様では、タスク101の脅威レベルは、上記タスク101がコンピューティングデバイスの情報セキュリティに対して脅威でありうる確率、およびその脅威レベルを表す数値として提供される。
【0065】
例えば、タスク101の脅威レベルは、0.0(コンピューティングデバイスの情報セキュリティに対して脅威ではないことが保証されたタスク101の実行)から1.0(例えば、コンピュータネットワークを介した機密ユーザデータの送信など、コンピューティングデバイスの情報セキュリティに対して脅威であることが確定されたタスク101の実行)の範囲内であり得る。
【0066】
さらに別の態様では、タスクの脅威レベルは、タスクテンプレートデータベース121の以前に決定されたタスクテンプレートに基づいて決定される。ここで、タスクテンプレートは、特定の範囲内のパラメータおよび属性によって特徴付けられた1つまたは複数のタスクを構成する。該タスクパラメータおよび属性は、タスクを互いに比較して、テンプレートデータベース121のタスクと所定のタスクとの類似度を判定するのに使用することができる特性を有し、タスクテンプレートデータベース121の各タスクテンプレートは、脅威レベルと合わせられる。
【0067】
一態様では、タスクテンプレートデータベース121は、種々のコンピューティングデバイス上で実行されたタスク101の累積統計に基づいて事前に生成され、タスクテンプレートそれ自体は、上記テンプレートに基づいて上記タスク101のすべてに対して脅威レベルが適切に決定されるように作成される。
【0068】
例えば、Microsoft Officeアプリケーションがどのように動作するかを把握することで、それらのアプリケーションによって実行されるタスク101のすべてを識別することが可能であり、またそれらのアプリケーションの動作の結果を把握することで、各タスク101の脅威レベルを計算して、対応するタスクテンプレートを生成することが可能である。生成したタスクテンプレートは、後で本開示のシステムを操作する際に使用される。
【0069】
さらに別の例では、コンピューティングデバイスがどう構成されるか、どのタスクを実行するか、どのデータを処理することがコンピューティングデバイスの情報セキュリティにきわめて重要であるかを把握することで、事前にタスクテンプレートデータベース121を生成することが可能であり、その際、各アクションは、コンピューティングデバイスまたはコンピューティングデバイスのデータに危害を加える可能性に基づいて、独自の脅威レベルが割り当てられる。
【0070】
例えば、ファイル上で作業をする処理サイクルは、ユーザの大きいサンプルから収集された統計から把握される。こうしたファイルの処理サイクルは、テンプレート[create]→[modify]→…→[modify]→[save/archive]→[send by email]で表すことができる。悪意あるプログラムの大きなサンプルから収集された他の統計に基づいて、悪意あるプログラムがファイルをどのように処理するかについても把握される。次に、所定の動作/操作が標準的動作から逸脱する度合いを評価するため、ユーザ統計の解析が実施される。特定の動作が標準的動作から逸脱する度合いに応じて、文書を処理する間に実行される一定のアクションに脅威レベルを割り当ててもよい。このような標準的動作からの逸脱は以下のものを含む場合がある。
・ファイルが自動的に生成された(悪意あるプログラムによって生成された場合も含む)ことを示す可能性がある、高エントロピーの文字を使用した名前を有するファイルの作成
・上述のような名前属性のファイル名の変更
・電子メールではなく、他の方法による(例えば、P2Pネットワークを通した)ファイルの送信
・異なるアーカイブへのファイルのアーカイブ
・修正が行われたことがないファイルのアーカイブ
【0071】
さらに別の例では、上述したものを含む種々のコンピューティングデバイスからの以前に収集された統計に基づいて、それらのコンピューティングデバイスに対するユーザの動作および自動化動作については、当該技術分野において一般的に知られている任意の方法によって決定される。例えば、完全に自動化された公開チューリングテストを解くために自動化技術が使用されるが、(人間やマシンによる)異なる手段を使用しても結果が同一となる一連のタスクは、当該技術分野において一般的に知られている任意の方法によって決定される。例えば、人間によるコンピュータネットワーク内でのデータの送信は、マシンによるデータの送信とは、接続確立までの応答時間、データ転送方法の選択、データ暗号化の実現性などが異なる。手順の違いは、類似性を判定する任意の既知の技術を使用することによって、タスクの脅威レベルを計算するために利用される。したがって、テストを解くことに成功したとしても、その解答の方法がマシン特有の方法に近いことがわかれば、テストは(情報セキュリティにきわめて重要な一定のタスクについて)不合格になったものと判定されることになり、その結果、その確証のためにテストが生成されたタスク101は実行されない。
【0072】
例えば、マウスカーソルの動きの解析(直線的な動きからのずれ、一定した動き、高調波の測定など)を用いて、マシンではなく人間がカーソルを動かしていると判断することが可能である。
【0073】
さらに別の態様では、脅威レベルは、特定のタスクとタスクテンプレートデータベース121の少なくとも1つのタスクテンプレートとの類似度によって、そのテンプレートによって示される脅威レベルを考慮して決定される。
【0074】
例えば、タスクテンプレートには、Microsoft Wordファイルへのデータ書込みが記述されているが、コンピューティングデバイス上では、データがMicrosoft Excelファイルに書き込まれているとする。書き込まれているデータが同じXML形式で示され、同じソフトウェア製品Microsoft Officeのファイルに書込みが行われているという事実に基づいて、脅威評価部120は、このタスクは類似していて、Microsoft Excelファイルへの書込みタスクが、Microsoft Wordファイルへの書込みに割り当てられているのと同じ脅威レベルを受けると判断する。なお、当該技術分野において公知の方法が、各タスク101を比較するために使用されてもよい。
【0075】
例えば、各タスク101を比較するために、下記の比較アルゴリズムが使用されてもよい。
1)各タスクを、最小数のパラメータによって特徴付けられる基本アクションに細分化する。
2)各アクションを、固有の一意のハッシュ(最もシンプルなケースでは、一意の数値的識別子)と突き合わせる。該ハッシュは、上述のパラメータと共にバイトコード(中間コード)を形成するものである。
3)レーベンシュタイン距離などの編集距離を計算するためのアルゴリズムを用いて、生成された全バイトコードの各々に対して、類似度を計算する。
4)計算した距離が所定の閾値を超えない場合、比較しているタスク101を、類似するものと見なす。
【0076】
さらに別の態様では、タスク脅威レベルは、標的型サイバー攻撃を特定するために使用される方法を含む任意の既知の方法によって、アンチウイルススキャンの実行中に判定されるコンピューティングデバイスのオブジェクトの有害性の程度と類似する(決定および解釈の類似の技術および方法が使用されている)性質を有している。
【0077】
例えば、アンチウイルススキャンを実行するときに、アンチウイルスにより、解析したオブジェクトの有害性の程度、すなわち解析したオブジェクトが有害であると判明される確率(これは、特に、ヒューリスティック解析または能動的防御策で見られる)が判定され、判定された有害性の程度がどのくらい高いかに応じて、解析したオブジェクトが安全なものか、疑わしいものか、または悪意あるものなのかに関する判断が、アンチウイルスによって行われる。コンピューティングデバイス上の解析されたオブジェクトのうち、安全なもの、疑わしいもの、または悪意あるものの数(または解析されたすべてのオブジェクトの有害性の程度を合計した値)に応じて、アンチウイルスによって、コンピューティングデバイス全体としての有害性の程度が判定される。
【0078】
さらに別の例では、システムの有害性の程度は、上述したアンチウイルスの状態、すなわちアンチウイルスデータベースの状態(容量、最終更新)、接続されているアンチウイルスモジュール(例えば、ヒューリスティック解析または能動的防御策のためのモジュール、ルートキット検索モジュールなど)、隔離されているファイルの存在、などによって影響されることもある。これらのすべての因子次第で、システムへの有害性の高さ、低さの程度が決まる。
【0079】
さらに別の例では、アンチウイルスレコードのデータベースに基づいて有害性について調べるときに、ファイルの署名およびヒューリスティック解析で用いられる方法を使用することが可能である。
【0080】
さらに別の態様では、タスクの脅威レベルは、以前に実行されたタスク101に基づいて訓練部150によって生成された訓練済みモデルを用いて決定される。
【0081】
例えば、タスク101の脅威レベルを決定するための訓練済みモデルの使用により、タスクテンプレートデータベース121が、アクションの実際のテンプレートではなく、これらのテンプレートで訓練されたモデルを含むことを可能にする。これにより、タスクの脅威レベルを決定する速度および精度が上がり、コンピューティングデバイスのコンピューティングリソースの必要量が下がる。一定のケースでは、タスクテンプレート121の使用は、これらのテンプレートで訓練されたモデルの使用と比較した場合、特に、タスク101の脅威レベルを決定するために多数のタスクテンプレート121の使用が必要な場合、あまり効果的ではない。この場合、訓練済みモデルを用いることが得策である。
【0082】
さらに別の例では、タスクが小さい(かつシンプルな)タスクを多く含み、それら小さいタスクもまた他の小さいタスクを含む場合、タスク101の脅威レベルを決定するために訓練済みモデルを使用することができる。この場合、タスクテンプレート121の多くが、タスク101(および、その全てのサブタスク)の脅威レベルを決定するために使用される場合がある。これは、コンピューティングデバイスのコンピューティングリソースの利用、およびタスク101の脅威レベルを計算する時間に悪影響を与えることになるため、上記のタスクテンプレート121をベースとして訓練されたモデルを用いることがより効果的である。
【0083】
テスト生成部130は、以下を行うように設計される。
・特定のテスト生成ルール131に基づいて取得されたタスクの脅威レベルに応じて自動公開チューリングテスト(以下、テスト)を生成する
・解析部140に生成したテストを送信する
【0084】
一態様では、脅威レベルが高いタスクでは、テストコリジョンの確率が低くなるようにテストが生成されるが、この際、テストコリジョンとは、少なくとも、以下を含む。
・コンピューティングデバイスの正規ユーザではない人物がテストに合格すること。
・コンピューティングデバイスなどのマシンがテストに合格すること。
【0085】
例えば、脅威レベルが低いタスク101(例えば、コンピュータネットワークでのデータの送信)を確認するためのテストは、標準的なテキスト311と比較してわずかに歪んで作成されたテキスト312を識別する上で問題となる場合があり、その一方で、脅威レベルが高いタスク101(例えば、ハードディスクのフォーマット化)を確認するためのテストは、標準的なテキスト311と比較して著しく歪んで作成されたテキスト314を識別する上で問題となる場合がある。
【0086】
さらに別の例では、脅威レベルが低いタスク101を確認するためのテストは、よりシンプルなタイプの問題(テキスト識別310)を引き起こす場合があり、その一方で、脅威レベルが高いタスク101を確認するためのテストは、より複雑なタイプの問題(オブジェクト分類320)を引き起こす場合がある。
【0087】
さらに別の態様では、標的型サイバー攻撃が行われる確率が、所定の閾値を上回る場合、テストは、標的型サイバー攻撃に使用されているマシンがそのテストに合格することがないように生成される。この際、標的型サイバー攻撃が行われる確率は、コンピューティングデバイス上で実行中のタスク101が、コンピューティングデバイスの正規ユーザではなく、ハッカーまたはハッカーのマシン(コンピューティングデバイス)によって実行されている確率を表す数値特性を有し、この確率の実際の計算方法は、当該技術分野において公知の任意の方法によって(例えば、能動的なアンチウイルススキャンを実施するために使用される方法によって)実施される。
【0088】
例えば、マシンは、テキスト識別問題310(歪んだテキストの識別、すなわち「チャレンジ・レスポンステスト」311~314など)を高い確率で解決し、分類問題320(種々の鷽321~324の判別など)を低い確率または中程度の確率で解決することができるが、グラフィックパズル330(例えば、主題画像331~334から映画を特定する)のような連想思考およびファジィルールを用いて行うことが必要となる問題を解決することは実質的に不可能である。
【0089】
さらに別の態様では、テストは、少なくとも以下に関するデータに基づいて生成される。
・コンピューティングデバイスに関するユーザ情報の分類、起動中のアプリケーションなどを含むコンピューティングデバイス上のユーザのアクション
・ブラウザのユーザ照会履歴ログから取得されるデータ、ソーシャルネットワークのユーザプロファイルから取得されるデータなどを含む、コンピューティングデバイス上でユーザによって要求される情報
【0090】
例えば、コンピューティングデバイスのユーザが、すばやくかつ正確にすべての画像識別テスト312に合格した場合、次の画像識別テスト313は、(テキストイメージにより大きな歪を加えることによって)より複雑になる可能性がある。テストに合格するまでの時間が、所定の時間を超過し始めた場合、テストの更なる複雑化314は中断される。
【0091】
さらに別の例では、自動分類を回避するために、いくつかの分類項に割り当てられるように、画像を選択することができる。例えば、321は同じ種類の2羽の鷽を示し、322は異なる種類の鷽を示すため、鳥の数や鳥の種別によって分類を行うことができる。
【0092】
さらに別の態様では、生成されたテストは、少なくとも以下を含んでもよい。
・少なくとも以下を含む、画像識別の問題
1)テキスト識別問題310
2)画像分類問題320
3)意味パズル問題330
・音声断片を識別する問題
・メディアデータを識別する問題
【0093】
さらに別の態様では、特定のテスト生成ルール131は、コンピューティングデバイスの正規ユーザによって(たとえば、ユーザの習慣、知識またはし好に応じて)設定される。
【0094】
さらに別の例では、ユーザが自身の知識および習慣に基づいてテストの体裁および内容を設定してもよく、そうすることで、当該ユーザは他のユーザやマシンよりもそのテストにうまく対応できる。例えば、コンピューティングデバイスのユーザが鳥類学者である場合、鳥の種類分類問題320をテストとして選択してもよく、テストの複雑度は、画像の分類項の数を増やすこと、または画像同士の類似性を上げることを伴う。
【0095】
さらに別の態様では、タスクの脅威レベルに応じてテストの複雑度が変わる。
【0096】
図3は、例示的な補正可能自動公開チューリングテストを示す。例えば、テストの複雑度は、少なくとも以下のように変わる。
・テスト識別問題を使用する場合、タスクの危険レベルが上がるにつれて、テストの歪みの程度が上がる(
図3の311~314)
・画像分類問題を使用する場合、分類項の候補数を増やす(
図3の321~324)
・危険レベルが上がるにつれて、生成された問題に新たな意味要素を追加する(例えば、例に解答する数学的テスト、番号問題のテキスト問題への置換など)
【0097】
さらに別の態様では、テスト生成ルール131は、少なくとも以下のものであってもよい。
・外部パラメータに依存しない既成のテスト
・テストに関する情報を含むテストテンプレート(これに基づいて、テストは外部パラメータに応じて直接生成される)
・テストまたはテストテンプレートを生成する論理的、語彙的または意味ルール
【0098】
例えば、分類問題320では、テスト用の画像をランダムに選択するための画像群を事前に指定してもよい。
【0099】
さらに別の例では、意味パズルの問題は、連想規則を変更して、事前に指定された画像群に基づいて生成されてよい。例えば、330では、映画特定問題用の8つの画像が、2つの異なる映画の要素を含むよう組み合わされているため、どの要素が手掛かりかが認識できなければ、問題を正確に解くことはできない。
【0100】
さらに別の態様では、テスト生成部130によってテストを生成した後、以下のことが行われる。
・解答するようテストがユーザに提示される。
・テストの合格(テストに示される問題の解答)について、ユーザからデータが取得される。
・ユーザがテストに合格したことを示すパラメータが決定される。
・得られたテスト合格の結果、および決定されたパラメータが、解析部140に送信される。
【0101】
例えば、テストに合格すると、テスト合格に要した経過時間やユーザのアクションなど(補助アプリケーションが実行されているか、最初に使用されたテスト要素はどれか、そうしたオプションが存在するか、など)についてデータが収集される。このデータは、テスト生成ルールを補正するため、およびテスト実行の成功を評価するため、後で使用される場合がある。
【0102】
さらに別の態様では、ユーザ自身が、事前にテスト生成部130をセットアップする。すなわち、以下を含むテスト生成のために後で使用するルールをユーザが規定する。
・テンプレートによって、画像、テキスト、音声断片などを追加すること
・テストの複雑度を指定すること
・指定された複雑度に応じてテストの歪ませ方を選択すること
【0103】
次に、テスト生成ルール131の1つとして、テストをシリアル化して保存する(暗号化を用いることも含む)。
【0104】
テストを生成する場合、まず、テストを生成する必要がある対象のユーザを(例えば、ユーザのアカウントに応じて)特定し、特定のユーザが「自分用」と示したルールによって、テストが生成される。解析部140は、以下のことを行うように設計される。
・コンピューティングデバイスのユーザが生成したテストの実行結果に応じて、タスク101に対するアクセス権141を決定する
・アクセス権141が決定した上記タスク101を実行する
【0105】
一態様では、コンピューティングデバイスのユーザによるテスト実行の成功を解析する間に、テスト生成部130によって(テスト生成ステップ中に)決定された標準的結果との結果の類似度が判定される。
【0106】
例えば、複数の画像を選択する必要があるテストでは、標準的結果の画像と一致する画像の数が特定され、テストの解答の精度は、正確に選択される画像の数と間違って選択される画像の数との比率として判定される。
【0107】
さらに別の態様では、テスト生成部130によって得られたテスト合格パラメータは、コンピューティングデバイスのユーザによる取得されたテスト実行の成功を解析する際に使用される。
【0108】
例えば、ユーザがテストに合格はしたが、(規定値を超えた)かなりの時間を費やした場合、テストに合格しなかったと見なされる。
【0109】
さらに別の態様では、コンピューティングデバイスのユーザによるテスト実行の成功は、テスト実行の成功の程度を計算することによって評価される。この成功の程度は、最小値が絶対的なテストの不合格に対応し、最大値が絶対的なテストの合格に対応する数値である。
【0110】
例えば、テスト実行の成功のバイナリ評価(「合格」または「不合格」)ではなく、テスト合格の成功の程度が、0.0(絶対的にテスト不合格)から1.0(絶対的にテスト合格)で、(多肢選択解答を含む問題で、正確な解答と不正確な解答との比率を評価する方法を含む、従来技術において既知の任意の方法によって)評価される。そして、テスト合格の成功の程度が規定値(例えば、0.75)よりも高い場合、テストに合格したと見なされる。同様に、テスト合格の成功の程度の最低評価値(例えば、0.25)を使用することも可能であり、この場合、計算されたテスト合格の成功の程度が、規定値よりも低い場合、テストに不合格したと見なされる。しかし、計算されたテスト合格の成功の程度が、最低規定値(0.25)を上回るが、最高規定値(0.75)を下回る場合、テスト合格の成功は、不確定と見なされ、ユーザに対して次のテストが生成される。さらに、下限および上限をさらに厳しく(例えば、それぞれ0.10および0.90)設定することも可能である。
【0111】
さらに別の態様では、タスク101を実行するためのアクセス権は、テスト合格の成功の程度の値に応じて決定される。
【0112】
例えば、タスクがファイルにアクセスすることである場合、成功の程度が規定値(例えば、0.95)を超えたことによってテストに合格すると、コンピューティングデバイスのユーザは、ファイルを処理する全面的権利が付与され、別の規定値(例えば、0.75)を超えた場合、データ読み取りの権利のみが付与され、その他の場合は、ファイルへのアクセスはすべて許可されない。
【0113】
さらに別の態様では、タスク101を実行するアクセス権141は、タスク101の実行を禁止する場合は権利#1、タスク101の実行を許可する場合は権利#2である。
【0114】
例えば、ファイルを削除する際、この操作は、特定のユーザに対してのみ、実行が禁止されるか、または実行が許可される場合がある。その一方で、ファイルを開く操作には複数のアクセス権141、すなわち、読出し権利、書込み権利(削除権利を含む)、および実行権利がある。
【0115】
訓練部150は、(ユーザがテストに合格した後に)どのタスク101が実行を許可されたか、どの権利でタスク101が実行されたか、タスクの実行によってコンピューティングデバイスのセキュリティにどのような影響が生じたか、に応じて脅威レベルを決定するために使用されるモデルを再訓練するように設計される。
【0116】
さらに別の態様では、モデルの訓練/再訓練およびタスクテンプレートデータベース121の生成は、コンピューティングデバイス状態の解析、およびデータセキュリティの当該技術分野において既知の任意の方法による情報セキュリティのその程度に基づいて行われる。
【0117】
ルール生成部160は、少なくとも、以下を行うことによって、テスト生成ルール131を補正するように設計される。
・ルールを生成するために使用される入力パラメータの変更
・古いルールから選択した要素(アセンブリ、コンパイル)に基づく新しいルールの生成
・事前に指定された要素に基づく新しいルールの生成
【0118】
テスト生成ルール131は、コンピューティングデバイスのユーザが、補正されたルール131に基づいて生成されたテストに合格する確率が、補正されていないルール131に基づいて生成されたテストに合格する確率よりも高くなる(すなわち、特定の正規ユーザにとってテストが簡単になる)ように補正される。
【0119】
例えば、テキスト識別問題310では、ユーザにとってテキストがまったく識別できないもの(314)にならないように、規定値を超えない範囲で、テストに合格するごとに歪みの度合いが上がるテキスト311から313が使用される。
【0120】
一態様では、テスト生成ルール131の補正は、テスト生成部130によって生成されたテストの複雑度を変更することを伴い、変更されるテストの複雑度は、解析部140によって計算されたテスト実行の成功の程度に応じるものである。
【0121】
さらに別の態様では、テストの複雑度は、コンピューティングデバイスのユーザがテストを合格する確率を表す数値である。
【0122】
例えば、テストの複雑度は、0.0(補足的な準備や労力なしに、ユーザがテストに合格できる最小複雑度)から1.0(テストを合格するために、ユーザがかなりの時間または補足的な準備を必要とする最大複雑度)で測定されてよい。
【0123】
さらに別の態様では、生成されたテストが、標準的テストと見なされ、テストの複雑度が最小である場合、テストの複雑化(すなわち、標準的テストとの違い)は、少なくとも、以下を含む。
・(グラフィカルテストの)311~314:(画像を扱うテストの場合の画像、音声テストの場合の音などに)歪みを加えていくこと
・321~324:オブジェクト分類の分類項を増やすこと、または互いに異なる分類項のオブジェクトの類似性を上げること
【0124】
さらに別の態様では、新しいテストが作成された場合に後から、テストに合格する時間が、コンピューティングデバイスの特定のユーザにとっては短くなり、他のユーザまたはマシンにとっては長くなるようにルールを補正する。このため、特定のユーザのテストに合格するスピードが上がるようテストを補正する(例えば、特定のユーザにとってテストを簡単にする)ために特定のユーザのテストに合格する時間を監視し、テストのタイプとテーマ(例えば、ユーザが長年業務で取り扱っているものが数値の場合は数値テスト、画像の場合はグラフィカルテスト、テキストの場合はテキストテストなどが作成される)を選択するために、コンピューティングデバイス上のユーザのアクションを監視し、ユーザが実行したタスクを解析する。
【0125】
例えば、ユーザが鳥の画像を容易に識別できる場合、そのユーザに対して生成されるテストでは、珍しい鳥または周知の種属と類似の鳥類の画像が高い頻度で使用される。
【0126】
さらに別の態様では、次に続くテストが生成されるたびに、以前に生成されたテストとその合格結果の外部パラメータを検討する。このため、所定のユーザ(以前に作成されたテストに合格したユーザ)による新たなテストの合格結果は、それまでのテストに対するユーザの合格結果よりも良いものであり、特定の事例では、コンピューティングデバイスのユーザによる以前に生成されたテストの合格結果を知っている場合にのみ生成されたテストに合格することができる。
【0127】
例えば、事前に生成されたテストに解答することが、その後のテストを分類するための前提条件であり、この分類の前提条件を認識することなしに、該分類を実行することは不可能である。
【0128】
さらに別の態様では、コンピューティングデバイスのユーザではなく、マシンでのみ合格できるようにテストが生成される。すなわち、新しいテストの合格結果が低下(悪化)するように、事前に生成されたテストの合格結果に基づいてテストが生成される。したがって、このようなテストの合格は、上述のものとは対照的に、アクション101の侵害、およびその実行の禁止を意味する。例えば、このようなスキームは、(例えば、標的型サイバー攻撃によって)攻撃を受ける可能性があり、かつ攻撃開始の操作上の判断(例えば、ハッカーに対するおとりであるリソースのハニーポット)を行うコンピューティングデバイスに使用される場合があり、「おとり」を通った攻撃が、「おとり」に接続している他のコンピューティングデバイス(例えば、統合ローカルコンピュータネットワーク)に脅威を与えることができないように、上述の防御スキームが必要である。
【0129】
例えば、テキスト識別問題は、テスト生成時にテキスト画像を歪めるアルゴリズムが既知であるという前提で、マシンだけが識別できる歪みのあるテキスト314を含んでもよい。
【0130】
タスクテンプレート生成部170は、以下を行うように設計される。
・少なくとも、以下を特徴付けるデータを収集する
1)上述のタスク実行システムが動作するコンピューティングデバイス
2)該コンピューティングデバイス上で動作するソフトウェア
3)動作中の作業ソフトウェアによって実行されるタスク
・収集したデータに基づいて、少なくとも1つのタスクテンプレートを生成する
・生成したタスクテンプレートをタスクテンプレートデータベース121に書き込む
【0131】
図2は、本開示の態様に従って、アクセス権に基づいてコンピューティングデバイス上でタスクを実行する方法200を示す。
【0132】
コンピューティングデバイス上でタスクを実行する方法は、タスクのためにデータを収集するステップ210と、タスクのために脅威レベルを決定するステップ220と、テストを生成するステップ230と、ユーザデータを解析するステップ240と、アクションを実行するステップ250と、モデルを再訓練させるステップ260と、テスト生成ルールを補正するステップ270と、タスクテンプレートを生成するステップ280とを含む。
【0133】
ステップ210では、方法200により、タスクに関するデータを収集する。例えば、コンピューティングデバイスの所定の制御タスクを特徴付けるデータが収集される。
【0134】
ステップ220では、方法200により、収集したデータおよびタスクテンプレートに基づいて、タスクの脅威レベルを決定する。脅威レベルは、タスクがコンピューティングデバイス上で実行される場合の、コンピューティングデバイスの情報セキュリティに対する脅威(危険)レベルの特徴を表す。一態様では、タスクテンプレートは、データベース、例えば、タスクテンプレートデータベース121から取得される。
【0135】
ステップ230では、方法200により、脅威レベルおよびテスト生成ルールに基づいてテストが生成され、ユーザに提示される。例えば、自動公開チューリングテスト(以下、テスト)が、ステップ220で決定された脅威レベルおよびテスト生成ルール131に基づいて生成される。次に、生成されたテストは、ユーザに提示される。続いて、ユーザはテストを受け、テストの結果が収集される。
【0136】
ステップ240では、方法200により、テストの結果を解析し、その結果に基づいてタスクのアクセス権を決定する。
【0137】
ステップ250では、方法200により、ステップ240で決定されたアクセス権に基づいてタスクを実行する。
【0138】
任意選択のステップ260では、脅威レベルの決定に使用されるモデルが、さらに再訓練される。一態様では、訓練/再訓練は、(ユーザがテストに合格した後に)どのタスクが実行を許可されたか、どの権利でタスクが実行されたか、許可された実行中のタスクによって後から生じたコンピューティングデバイスの情報セキュリティへの影響によって決まる。
【0139】
任意選択のステップ270では、コンピューティングデバイスのユーザが合格する確率が、補正されたルール131に基づいて生成されたテストよりも補正されていないルール131に基づいて生成されたテストの方で高くなるようにテスト生成ルール131はさらに補正される。
【0140】
加えて、任意選択のステップ280では、以下のことが行われる。
・少なくとも以下を特徴付けるデータを収集する
1)上述のタスク実行システムが動作するコンピューティングデバイス
2)該コンピューティングデバイス上で動作するソフトウェア
3)動作中のソフトウェアによって実行されるタスク
・収集したデータに基づいて、少なくとも1つのタスクテンプレートを生成する
・生成したタスクテンプレートをタスクテンプレートデータベース121に書き込む
【0141】
一態様では、タスクは、ユーザの個人または機密データを含むデータを処理するためのプロセスの制御と、コンピューティングデバイス上で、または該コンピューティングデバイスに通信可能に連結されている別のコンピューティングデバイス上で実行されるプロセスの制御と、アプリケーションの制御と、コンピューティングデバイスのオペレーティングシステムの動作パラメータの変更または設定と、のうちの少なくとも1つのためのものである。
【0142】
一態様では、タスクは、コンピューティングデバイス上のユーザの個人または機密データの作成、修正、または削除と、コンピュータネットワークを通したデータの送信と、ファイルの作成または修正と、コンピューティングデバイスの制御と、コンピューティングデバイス上で動作するソフトウェアの制御とを伴う、少なくとも1つのタスクである。
【0143】
一態様では、コンピューティングデバイスを制御するタスクは、少なくとも、コンピューティングデバイスのファイルシステムのオブジェクトを処理し、コンピューティングデバイスのオペレーティングシステムのオブジェクトの権利を処理し、コンピューティングデバイス上のアプリケーションのグラフィックインターフェース構成要素を処理し、コンピューティングデバイスの機器の動作モードを制御するタスクを含む。
【0144】
一態様では、タスクを特徴付けるデータは、少なくとも、複数のタスクの中から該タスクを一意に識別するパラメータおよび属性と、タスクを実行するために必要なコンピューティングデバイスのパラメータおよび属性と、を含む。
【0145】
一態様では、脅威レベルは、コンピューティングデバイスの情報セキュリティに危害を加えるタスクを実行する確率を表す数値として提供され、該確率は、収集したデータ、および脅威レベルが既に決定された別のタスクとのタスクの類似性に基づくものである。
【0146】
一態様では、タスクの実行は、仮想マシン上でタスクを実行することと、ユーザがテストに合格するかどうかを判断することと、ユーザがテストに合格したときに、仮想マシンで行われた変更をコンピューティングデバイスに適用することとを含む。
【0147】
一態様では、現在のタスクの脅威レベルは、1つまたは複数の過去のタスクの脅威レベルに応じて決定される。
【0148】
図4は、本開示の態様に従って、コンピューティングデバイス上でユーザを認可するシステム400の一例を示す。
【0149】
コンピューティングデバイス上でユーザを認可するシステムの構造図は、データ収集部410、テスト生成部420、解析部430、および認可部440を含む。
【0150】
データ収集部410は、
・コンピューティングデバイス上で認可されていないユーザ(すなわち、未認可ユーザ)によって実行される、コンピューティングデバイスの少なくとも2つの制御タスク101(以下、タスク)を特徴付けるデータを収集し、
・テスト生成部420に収集したデータを送信する、
ように設計される。
【0151】
一態様では、データの収集は、
図1のシステムによる上記の方法および
図2のコンピューティングデバイス上でタスクを実行する方法によって行われる。言い換えると、データ収集部410は、
図1のデータ収集部110と同様なものであってよい。
【0152】
別の態様では、認可は、段階的に行われ、その段階的な認可は、未認可のユーザにコンピューティングデバイス上でタスクを実行する部分的な権限を与えることと、制限なくタスクを実行することを認可するかどうかをその後で決定することと、後で下した決定に基づいて全権限でタスクを実行できるようユーザを認可することとを含む。
【0153】
例えば、未認可ユーザは、部分的な権利を与えられた場合、コンピューティングデバイスからデータを読み出す操作を実施することができるが、コンピューティングデバイスへの書込みの権限は与えられない。
【0154】
別の態様では、ユーザの認可は、所定範囲内の数値で提供され、この値は、ユーザがコンピューティングデバイス上でタスクを実行する権利および特権を示す。例えば、認可をバイナリ操作(認可ユーザ、または未認可ユーザ)で行うのではなく、アクセス権の一定の数値が使用されてよく、この値は、コンピューティングデバイス上でユーザが一定のタスクを実行するために持っている権利および特権の特徴を表すものである。
【0155】
一態様では、上記の値はユーザの後続のアクションに基づいて再計算される。例えば、値は再計算されることがあり、それにより、ユーザは、以前は禁止されていた新しいタスクを実行することを許可されるか、逆に、以前は許可されていたタスクを実行する権利が制限される場合がある。
【0156】
テスト生成部420は、タスク101ごとに、収集したデータおよびテスト生成ルールに基づいてテストを生成し、そのテストをユーザに提示するように設計される。例えば、自動公開チューリングテスト(以下、テスト)は、テスト生成ルール131を使用して、データ収集部410から受信され、かつ上記タスク101を特徴付けるデータに基づいて生成されてよい。テスト生成ルールは、ユーザに提示されるテストの結果に基づいて更新される。後続のタスク101ごとに、テスト生成ルール131が前に生成されたテストのユーザの実行結果に応じて補正されるが、前に生成されたテストは、補正前のテスト生成ルール131に基づくものである。
【0157】
例えば、ユーザが、グラフィカルテストは有効に成し遂げるものの語学(言語)テストは苦手である場合、それ以後、そのユーザに対してはより多くのグラフィカルテストが生成される。
【0158】
さらに別の例では、所定のユーザに対するテストの難易度は同じレベルに維持されることから、ユーザが自分用に生成されたテストにすばやく合格できるようになった場合は、テストの難易度が上げられる(または、テストのタイプが変更される)。
【0159】
解析部430は、以下を行うように設計される。
・ユーザに提示されるテストの結果に基づいて、ユーザの真正度が判定される。言い換えると、テスト生成部420によって生成された少なくとも2つのテストの実行に基づいて真正性を判定する。ここで、ユーザの真正度は、ユーザがコンピューティングデバイスの正規ユーザである確率を示すものである。
・ユーザに対して判定された真正度、およびテスト生成ルール431によって規定された経過時間に基づいて、ユーザの簡易真正度を計算する。
【0160】
例えば、ユーザの真正度は、0%から100%の数値であってもよく、この際、0%はそのユーザが正規ユーザでないと確定されている(コンピューティングデバイス上で所定のタスクを実行する権利がない)ことを示し、100%はそのユーザが正規ユーザであることを示し、必然的にそのユーザがコンピューティングデバイス上で認可されていることを意味する。
【0161】
さらに別の例では、ユーザの真正度が一定の予め定められた閾値(例えば、上記の例では85%)を超える場合、ユーザは、正規ユーザであると見なされてよい。
【0162】
一態様では、ユーザの真正度は、ユーザに提示されたテスト、ユーザによって実行されたテストの結果、およびその結果が所定のテストに対して適正である確率を表す数値を関連付ける、一連のルールを表すユーザテンプレートに基づいて判定される。
【0163】
さらに別の態様では、順次計算されたユーザの真正度の値の変化は、単調なものである。
【0164】
さらに別の態様では、テストの合格率が認可されたユーザは上がり認可されなかったユーザは下がるように、前のタスクに対して生成されてユーザに提示されたテストの結果に基づいて、後続のそれぞれのタスク用にテスト生成ルール431を補正する。
【0165】
認可部440は、ユーザがコンピューティングデバイス上でタスクを実行することを認可するかどうか決定するように設計される。決定は、ユーザの簡易真正度が、所定の閾値を超えるかどうかに基づくものである。
【0166】
一態様では、システム認可は、ユーザに一定のタスクを実行する権利を付与するために行われてよい。したがって、ユーザ認可は、バイナリシステム(認可/未認可)ではなく、より複雑な離散的システムであってもよい。
【0167】
例えば、(ユーザが、M個のテストを合格した後に、認可部440から得る)権利Aは、*.docxファイルから読み出すタスクを実行するために必要とされ、(ユーザが、N個(N>M)のテストを合格した後に、認可部440から得る)権利Bは、*.docxファイルに書き込むタスクを実行するために必要とされる。
【0168】
さらに別の態様では、認可部は、数値であり、かつユーザがアクセスできるタスクの特徴を表す特定の信頼指数を、ユーザに割り当てる(例えば、ユーザ信頼指数が、そのタスクに対して規定された一定の値を上回る場合)。
【0169】
例えば、システムファイルで作業するためにはPmin>1000を上回る指数が必要とされ、Microsoft Office文書で作業するためにはPmin>300を上回る指数が必要とされる。この際、テストに1度合格すると、ユーザは、さらにP+75の信頼指数を割り当てられる。
【0170】
図5は、本開示の態様に従って、コンピューティングデバイス上でユーザを認可する方法500を示す。
【0171】
コンピューティングデバイス上でユーザを認可する方法の構造図は、データを収集するステップ510と、テストを生成するステップ520と、ユーザの真正度を判定するステップ530と、ユーザを認可するかどうかを決定するステップ540を含む。
【0172】
ステップ510では、コンピューティングデバイス上で認可されていないユーザによって実行される、コンピューティングデバイスの少なくとも2つのタスク101を特徴付けるデータを収集するため、データ収集部410が使用される。
【0173】
ステップ520では、テスト生成部420が、タスク101ごとに、収集したデータおよびテスト生成ルールに基づいてテストを生成し、そのテストをユーザに提示するために使用される。例えば、自動公開チューリングテストは、タスク101に対してステップ510で収集したデータに基づいて、テスト生成ルール131を使用して生成されてよい。テストはその後ユーザに提示される。テストの結果は、後続のテストを改良するために使用される。言い換えると、ユーザに提示されたテストの結果(すなわち、ユーザがどれだけうまくテストを実行できたか)に従って、テスト生成ルールが後続のタスクごとに補正される。
【0174】
ステップ530では、ユーザに提示されたテストの結果に基づいてユーザの真正度を判定するために解析部430が使用される。ここで、ユーザの真正度は、ユーザが、コンピューティングデバイスの正規ユーザである確率を示すものである。したがって、解析は、少なくとも2つのテストの結果を含む。
【0175】
ステップ540では、ユーザがコンピューティングデバイス上でタスクを実行することを認可するために認可部440が使用される。ユーザは、ユーザの簡易真正度が予め定められた閾値を超える場合に、タスクを実行することが認可され、このユーザの簡易真正度は、タスクごとに判定されたユーザの真正度に基づいて計算される。一態様では、認可はさらに、テスト生成ルールによって規定された経過時間に基づいて行われ、この経過時間は、ユーザがテストを受けた経過時間である。
【0176】
一態様では、ユーザの認可のレベルは、簡易真正度に基づく。一態様では、認可のレベルは、少なくとも、部分的な認可、および全権利を伴う認可(すなわち、無制限の権利)を含む。
【0177】
一態様では、ユーザの認可は、所定範囲内の数値で提供され、この値は、ユーザがコンピューティングデバイス上でタスクを実行できるタスクごとの権利および特権を示す。一態様では、数値は、認可の後に実行されるユーザのアクションに基づいて再計算される。
【0178】
一態様では、前のタスクに対してユーザが受けたテストの結果に基づいて、後続のテストごとにテスト生成ルールが補正される。この補正は、認可されたユーザのテストの合格率を上げて、認可されなかったユーザの合格率を下げるために行われる。
【0179】
図6は、例示的態様に従って、アクセス権に基づいてコンピューティングデバイス上でタスクを実行するためのシステムおよび方法の態様が実装されることがあるコンピュータシステム20を示すブロック図である。コンピュータシステム20は、例えば、上述したような仮想セキュリティデバイス102に相当し得るという点に留意すべきである。コンピュータシステム20は、例えば、デスクトップコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス、スマートフォン、タブレットコンピュータ、サーバ、メインフレーム、埋め込み型デバイス、およびコンピューティングデバイスの他の形態など、複数のコンピューティングデバイスの形態、または、単一のコンピューティングデバイスの形態である場合がある。
【0180】
図示のとおり、コンピュータシステム20は、中央演算処理装置(Central Processing Unit:CPU)21、システムメモリ22、および、中央演算処理装置21に関連付けられたメモリを含む種々のシステムコンポーネントを接続しているシステムバス23を含む。システムバス23は、バスメモリまたはバスメモリコントローラ、周辺バス、および任意の他のバスアーキテクチャと相互作用することが可能なローカルバスを含んでもよい。バスの例としては、PCI、ISA、PCI-Express、HyperTransport(商標)、InfiniBand(商標)、シリアルATA、I2C、およびその他の好適なインターコネクトなどが挙げられる。中央演算処理装置21(プロセッサとも称される)は、単一または複数のコアを有する単一または複数のプロセッサのセットを含むことができる。プロセッサ21は、本開示の技術を実装する1つまたは複数のコンピュータ実行可能コードを実行してもよい。システムメモリ22は、本明細書で使用するデータおよび/またはプロセッサ21によって実行可能なコンピュータプログラムを記憶する任意のメモリであってよい。システムメモリ22は、ランダムアクセスメモリ(Random Access Memory:RAM)25などの揮発性メモリ、および読み取り専用メモリ(Read Only Memory:ROM)24、フラッシュメモリなどの不揮発性メモリ、またはこれらの任意の組み合わせを含んでもよい。基本入出力システム(Basic Input/Output System:BIOS)26は、例えば、ROM24を使用してオペレーティングシステムをロードするときの手順などの、コンピュータシステム20の各要素間の情報の伝送の基本手順を記憶していてもよい。
【0181】
コンピュータシステム20は、1つまたは複数の取り外し可能記憶デバイス27、1つまたは複数の非取り外し可能記憶デバイス28、またはこれらの組み合わせなどの1つまたは複数の記憶デバイスを含んでもよい。1つまたは複数の取り外し可能記憶デバイス27、および非取り外し可能記憶デバイス28は、記憶インターフェース32を介してシステムバス23に接続される。一態様では、記憶デバイスおよび対応するコンピュータ可読記憶媒体は、コンピュータシステム20のコンピュータ命令、データ構造、プログラムモジュール、および他のデータを記憶するための電力独立型モジュールである。システムメモリ22、取り外し可能記憶デバイス27、非取り外し可能記憶デバイス28は、種々のコンピュータ可読記憶媒体を使用してもよい。コンピュータ可読記憶媒体の例としては、例えば、キャッシュ、SRAM、DRAM、ゼロ・コンデンサRAM、ツイントランジスタRAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM(登録商標)、SONOS、PRAMなどのマシンメモリ、ソリッドステートドライブ(Solid State Drive:SSD)またはフラッシュドライブのようなフラッシュメモリまたはその他のメモリ技術、ハードディスクドライブまたはフロッピーディスクのような磁気カセット、磁気テープ、および磁気ディスクストレージ、コンパクトディスク(Compact Disk Read Only Memory:CD-ROM)またはデジタル多用途ディスク(Digital Versatile Disk:DVD)のような光ストレージ、および所望のデータを記憶するために使用され、コンピュータシステム20によってアクセス可能な任意の他の媒体が挙げられる。
【0182】
コンピュータシステム20のシステムメモリ22、取り外し可能記憶デバイス27、および非取り外し可能記憶デバイス28は、オペレーティングシステム35、追加のプログラムアプリケーション37、他のプログラムモジュール38およびプログラムデータ39を記憶するために使用されてよい。コンピュータシステム20は、例えば、キーボード、マウス、スタイラス、ゲームコントローラ、音声入力デバイス、タッチ入力デバイスなどの入力デバイス40からデータを通信するための周辺インターフェース46、または、例えばシリアルポート、パラレルポート、ユニバーサルシリアルバス(Universal Serial Bus:USB)などの1つまたは複数の入出力ポートを介したプリンタまたはスキャナなどの他の周辺デバイス、または他の周辺インターフェースを含んでもよい。1つまたは複数のモニタ、プロジェクタまたは統合ディスプレイなどのディスプレイデバイス47も、ビデオアダプタなどの出力インターフェース48を通してシステムバス23に接続されてもよい。コンピュータシステム20は、ディスプレイデバイス47に加えて、ラウドスピーカおよび他の音響映像デバイスなどの他の周辺出力デバイス(図示せず)を搭載してもよい。
【0183】
コンピュータシステム20は、1つまたは複数のリモートコンピュータ49へのネットワーク接続を使用して、ネットワーク環境で動作してよい。1台又は複数のリモートコンピュータ49は、コンピュータシステム20の性質について記載されている上述の各要素のほとんどまたはすべてを含む、ローカルコンピュータワークステーションまたはサーバであってもよい。ルータ、ネットワーク局、ピアデバイスまたは他のネットワークノードなどのその他のデバイスが、コンピュータネットワーク内に存在する場合があるが、これらに限定されない。コンピュータシステム20は、ローカルエリアコンピュータネットワーク(Local-Area Computer Network:LAN)50、広域コンピュータネットワーク(Wide-Area Computer Network:WAN)、イントラネットおよびインターネットなどの1つまたは複数のネットワークを介して、リモートコンピュータ49と通信するための1つまたは複数のネットワークインターフェース51またはネットワークアダプタを含んでもよい。ネットワークインターフェース51の例としては、イーサネットインターフェース、フレームリレーインターフェース、SONETインターフェースおよび無線インターフェースが挙げられる。
【0184】
本開示の態様は、システム、方法、および/またはコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本開示の態様を実行させるコンピュータ可読プログラム命令を有する、1つ又は複数のコンピュータ可読記憶媒体を含んでもよい。
【0185】
コンピュータ可読記憶媒体は、コンピューティングシステム20などのコンピューティングデバイスのプロセッサによってアクセス可能な命令またはデータ構造の形態でプログラムコードを保持し、記憶することができる有形デバイスであってもよい。コンピュータ可読記憶媒体は、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の好適な組み合わせであってもよい。例として、このようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、EEPROM、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、フラッシュメモリ、ハードディスク、ポータブルコンピュータディスケット、メモリースティック、フロッピーディスク、あるいは、命令を記録したパンチカードまたは溝内の隆起構造などの機械的にコード化されたデバイスを含み得る。本明細書で、コンピュータ可読記憶媒体は、電波またはその他の自由に伝搬する電磁波、導波管または伝送媒体を通して伝搬する電磁波、あるいは有線で伝送される電気信号などの一時的な信号そのものであると解釈されるべきではない。
【0186】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、対応するコンピューティングデバイスに、もしくは、例えば、インターネット、ローカルエリアネットワーク、広域ネットワークおよび/または無線ネットワークなどのネットワークを介して、外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅製の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含んでもよい。各コンピューティングデバイスのネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信して、対応するコンピューティングデバイス内部のコンピュータ可読記憶媒体に記憶するために、コンピュータ可読プログラム命令を転送する。
【0187】
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブリ命令、命令セットアーキテクチャ(Instruction-Set-Architecture:ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、ステート設定データ、あるいはオブジェクト指向プログラミング言語および従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、全面的にユーザのコンピュータで、部分的にユーザのコンピュータで、スタンドアロンソフトウェアパッケージとして、部分的にユーザコンピュータと部分的にリモートコンピュータとで、もしくは全面的にリモートコンピュータまたはサーバで実行されてよい。後半のシナリオでは、リモートコンピュータは、LANまたはWANを含む任意のタイプのネットワークを通してユーザのコンピュータに接続されているか、または、(例えば、インターネットを通して)外部コンピュータに接続されてもよい。いくつかの態様では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)またはプログラマブルロジックアレイ(Programmable Logic Array:PLA)を含む電子回路は、本開示の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して、コンピュータ可読プログラム命令を実行し、電子回路をパーソナル化してもよい。
【0188】
種々の態様では、本開示に記載されるシステムおよび方法を、モジュールの観点から対処することができる。本発明で使用する用語「モジュール」は、例えば、特定用途向け集積回路(ASIC)またはFPGAなどのハードウェアを使用して、または、例えば、マイクロプロセッサシステム、および(実行中に)マイクロプロセッサシステムを専用デバイスに変換するモジュールの機能を実装するための命令のセットなどのハードウェアとソフトウェアとの組み合わせとして実装される、実世界デバイス、コンポーネント、またはコンポーネントの機構を意味する。モジュールはまた、単独でハードウェアによって促進される特定の機能と、ハードウェアとソフトウェアとの組み合わせによって促進される他の機能との、2つの組み合わせとして実装されてもよい。特定の実装形態では、モジュールの少なくとも一部、および場合によってはすべてが、コンピュータシステムのプロセッサ(例えば、上記
図6で詳細に記載されたもの)によって実施されてよい。したがって、各モジュールは、様々な好適な構成で実現される可能性があり、本明細書に例示されるいずれの特定の実装にも限定されるべきではない。
【0189】
明瞭にするために、態様の決まりきった特徴のすべてを本明細書に開示しているわけではない。本開示の任意の実際の実装形態の開発時に、開発者の特定の目的を達成するために非常に多くの実装形態固有の決定が行われる必要があり、これらの特定の目的は実装形態および開発者によって異なることを理解されるであろう。このような開発作業は、複雑であり、かつ時間がかかる可能性があるが、それでも本開示から利益を得る当業者にとって日常的な技術的業務であるものと理解される。
【0190】
さらに、本明細書で用いる表現や用語は説明上のものであって、限定のためではない。したがって、本明細書の用語や表現は、当業者の知見と組み合わされて、本明細書で提示する教示および指導に照らして当業者によって解釈されるものと理解すべきである。加えて、明示的記載がない限り、本明細書または特許請求の範囲におけるいかなる用語も、一般的でない、あるいは特別な意味を持つものと見なされることを意図していない。
【0191】
本明細書に開示された様々な態様は、本明細書で例示により言及された公知のモジュールと均等な現在および将来の公知の均等物を含む。さらに、態様および応用例を示し、かつ説明したが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの変更が可能であることは、本開示から利益を得る当業者には明らかであろう。