(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-27
(54)【発明の名称】攻撃的サイバー作戦を検出する訓練システムのためのシステムおよび方法
(51)【国際特許分類】
G06F 21/57 20130101AFI20240319BHJP
G06F 21/53 20130101ALI20240319BHJP
【FI】
G06F21/57 370
G06F21/53
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023561014
(86)(22)【出願日】2022-04-01
(85)【翻訳文提出日】2023-11-27
(86)【国際出願番号】 US2022023042
(87)【国際公開番号】W WO2022212837
(87)【国際公開日】2022-10-06
(32)【優先日】2021-04-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523374471
【氏名又は名称】エリーズ セキュリティ、エルエルシー
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】マルクス、ブライアン
(72)【発明者】
【氏名】バルジャー、ティモシー
(72)【発明者】
【氏名】ハフテバニ、アーレン
(72)【発明者】
【氏名】ロソウスキー、ジェフ
(57)【要約】
動的仮想マシンを提供するための方法が、1つまたは複数のソフトウェア脆弱性を実装する仮想マシンを生成することと、仮想マシンをクライアントコンピュータシステムに割り当てることと、クライアントコンピュータシステムのディスプレイデバイスに表示するためのグラフィカルユーザインターフェースをレンダリングすることであって、グラフィカルユーザインターフェースは、仮想マシンのシミュレーション中にユーザからの入力を受信するために、仮想マシンのパラメータおよびインターフェースツールを表示するように構成される、レンダリングすることと、クライアントコンピュータシステムにおける仮想マシンのシミュレーション中にユーザからの入力を監視することと、ユーザからの入力の監視に応答して、入力から1つまたは複数のソフトウェア脆弱性の識別の正当性を検証することと、を含む。
【特許請求の範囲】
【請求項1】
動的仮想マシンを提供するための方法であって、前記方法が、
1つまたは複数のソフトウェア脆弱性を実装する仮想マシンを生成するステップと、
前記仮想マシンをクライアントコンピュータシステムに割り当てるステップと、
前記クライアントコンピュータシステムのディスプレイデバイスに表示するためのグラフィカルユーザインターフェースをレンダリングするステップであって、前記グラフィカルユーザインターフェースが、前記仮想マシンのシミュレーション中にユーザからの入力を受信するために、前記仮想マシンのパラメータおよびインターフェースツールを表示するように構成される、ステップと、
前記クライアントコンピュータシステム上の前記仮想マシンの前記シミュレーション中に前記ユーザからの入力を監視するステップと、
前記ユーザからの前記入力を監視するステップに応答して、前記入力からの前記1つまたは複数のソフトウェア脆弱性の識別の正当性を検証するステップと
を含む、方法。
【請求項2】
1つまたは複数の第2のソフトウェア脆弱性を実装する第2の仮想マシンを生成するステップを更に含み、
前記1つまたは複数のソフトウェア脆弱性の前記識別の前記正当性の検証が、前記識別が正しくないことを示すとき、更に第2のソフトウェア脆弱性うちの1つが、前記仮想マシンに実装された前記1つまたは複数のソフトウェア脆弱性と類似するように構成され、
前記1つまたは複数のソフトウェア脆弱性の前記識別の前記正当性の検証が、前記識別が正しいことを示すとき、更に第2のソフトウェア脆弱性うちの1つが、前記仮想マシンに実装された前記1つまたは複数のソフトウェア脆弱性と異なるように構成される、
請求項1に記載の方法。
【請求項3】
データベースから前記仮想マシンのパラメータを選択するステップを更に含む、請求項1に記載の方法。
【請求項4】
前記パラメータが、前記仮想マシンのコンピュータアドレス、ポート構成、メモリ要件、および/またはCPU要件のうちの少なくとも1つを含む、請求項3に記載の方法。
【請求項5】
前記ユーザが前記仮想マシンの前記1つまたは複数のソフトウェア脆弱性の前記識別を示すソリューションを構築することを可能にするように構成された、ボタン、ドロップダウンメニュー、および/またはテキストボックスのうちの少なくとも1つを、前記インターフェースツールが備える、請求項1に記載の方法。
【請求項6】
前記仮想マシンを実装する前記クライアントコンピュータシステムのスコアを生成するステップを更に含み、前記スコアが、前記1つまたは複数のソフトウェア脆弱性の正しい識別に応答して増加する、請求項1に記載の方法。
【請求項7】
前記1つまたは複数のソフトウェア脆弱性が、前記仮想マシンのアプリケーションサービスおよび/またはネットワークのうちの少なくとも1つに関連する、エラー、不具合、障害、および/または脆弱性のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項8】
所定のトークンが、前記1つまたは複数のソフトウェア脆弱性のうちの1つのソフトウェア脆弱性を識別する前記仮想マシンの仮想メモリユニット内に配置される、請求項1に記載の方法。
【請求項9】
前記入力からの前記1つまたは複数のソフトウェア脆弱性の前記識別の前記正当性を検証するステップが、前記ユーザから入力として受信したトークンを前記所定のトークンと比較するステップを含む、請求項8に記載の方法。
【請求項10】
前記1つまたは複数のソフトウェア脆弱性とは異なる1つまたは複数の第2のソフトウェア脆弱性を実装する第2の仮想マシンを生成するステップと、
前記第2の仮想マシンを第2のクライアントコンピュータシステムに割り当てるステップと、
前記第2のクライアントコンピュータシステムのディスプレイデバイスに表示するための第2のグラフィカルユーザインターフェースをレンダリングするステップであって、前記第2のグラフィカルユーザインターフェースが、前記第2の仮想マシンのシミュレーション中に第2のユーザから入力を受信するために、前記第2の仮想マシンのパラメータおよびインターフェースツールを表示するように構成される、ステップと、
前記第2のクライアントコンピュータシステム上の前記第2の仮想マシンの前記シミュレーション中に前記第2のユーザからの入力を監視するステップと、
前記第2のユーザからの前記入力を監視するステップに応答して、前記入力からの前記1つまたは複数の第2のソフトウェア脆弱性の識別の正当性を検証するステップと
を更に含む、請求項1に記載の方法。
【請求項11】
前記クライアントコンピュータシステムの前記ディスプレイデバイスに表示するための第2のグラフィカルユーザインターフェースをレンダリングするステップであって、前記第2のグラフィカルユーザインターフェースが、ソフトウェアツールまたはプログラミング言語に基づく動的に構築された構文問題と、前記動的に構築された構文問題に応答して適切な構文を入力するように前記ユーザを促すインターフェースと、を含む、ステップを更に含む、請求項1に記載の方法。
【請求項12】
前記クライアントコンピュータシステムの前記ディスプレイデバイスに表示するための第3のグラフィカルユーザインターフェースをレンダリングするステップであって、前記第3のグラフィカルユーザインターフェースが、複数の列を含み、第1の列が、複数の異なるプロトコルを含み、第2の列が、複数の異なるポートを含み、前記複数の異なるプロトコルの各々が、前記複数の異なるポートのうちの1つまたは複数に関連付けられる、ステップと、
前記複数の異なるポートと前記複数の異なるプロトコルとの間の照合を選択するように前記ユーザを促すステップと、
前記ユーザが正しい照合を提供したか否かを決定するために、前記選択された照合を検証するステップと
を更に含む、請求項1に記載の方法。
【請求項13】
動的仮想マシンを提供するためのシステムであって、前記システムが、
プロセッサ、および非一時的コンピュータ可読媒体を備える管理コンピュータデバイスと、
前記管理コンピュータデバイスの非一時的コンピュータ可読メモリに記憶された機械可読命令セットであって、前記プロセッサによって実行されたとき、前記システムに、
1つまたは複数のソフトウェア脆弱性を実装する仮想マシンを生成することと、
前記仮想マシンをクライアントコンピュータシステムに割り当てることと、
前記クライアントコンピュータシステムのディスプレイデバイスに表示するためのグラフィカルユーザインターフェースをレンダリングすることであって、前記グラフィカルユーザインターフェースが、前記仮想マシンのシミュレーション中にユーザからの入力を受信するために、前記仮想マシンのパラメータおよびインターフェースツールを表示するように構成される、レンダリングすることと、
前記クライアントコンピュータシステム上の前記仮想マシンの前記シミュレーション中に前記ユーザからの入力を監視することと、
前記ユーザからの前記入力を監視することに応答して、前記入力からの前記1つまたは複数のソフトウェア脆弱性の識別の正当性を検証することと
を少なくとも実施させる、機械可読命令セットと
を備える、システム。
【請求項14】
前記機械可読命令セットが、前記プロセッサによって実行されたとき、前記システムに、データベースから前記仮想マシンのパラメータを更に選択させる、請求項13に記載のシステム。
【請求項15】
前記パラメータが、前記仮想マシンのコンピュータアドレス、ポート構成、メモリ要件、および/またはCPU要件のうちの少なくとも1つを含む、請求項14に記載のシステム。
【請求項16】
前記機械可読命令セットが、前記プロセッサによって実行されたとき、前記システムに、前記仮想マシンを実装する前記クライアントコンピュータシステムのスコアを更に生成させ、前記スコアが、前記1つまたは複数のソフトウェア脆弱性の正しい識別に応答して増加する、請求項13に記載のシステム。
【請求項17】
前記1つまたは複数のソフトウェア脆弱性が、前記仮想マシンのアプリケーションサービスおよび/またはネットワークのうちの少なくとも一方に関連する、エラー、不具合、障害、および/または脆弱性のうちの少なくとも1つを含む、請求項13に記載のシステム。
【請求項18】
所定のトークンが、前記1つまたは複数のソフトウェア脆弱性のうちの1つのソフトウェア脆弱性を識別する前記仮想マシンの仮想メモリユニット内に配置され、
前記入力からの前記1つまたは複数のソフトウェア脆弱性の前記識別の前記正当性の検証が、前記ユーザから入力として受信したトークンを前記所定のトークンと比較することを含む、
請求項13に記載のシステム。
【請求項19】
命令を備える動的仮想マシンを提供するためのコンピュータプログラムであって、前記コンピュータプログラムが、コンピュータによって実行されると、前記コンピュータに、
1つまたは複数のソフトウェア脆弱性を実装する仮想マシンを生成することと、
前記仮想マシンをクライアントコンピュータシステムに割り当てることと、
前記クライアントコンピュータシステムのディスプレイデバイスに表示するためのグラフィカルユーザインターフェースをレンダリングすることであって、前記グラフィカルユーザインターフェースが、前記仮想マシンのシミュレーション中にユーザからの入力を受信するために、前記仮想マシンのパラメータおよびインターフェースツールを表示するように構成される、レンダリングすることと、
前記クライアントコンピュータシステム上の前記仮想マシンの前記シミュレーション中に前記ユーザからの入力を監視することと、
前記ユーザからの前記入力を監視することに応答して、前記入力からの前記1つまたは複数のソフトウェア脆弱性の識別の正当性を検証することと
を含むステップを実行させる、コンピュータプログラム。
【請求項20】
前記コンピュータプログラムが前記コンピュータによって実行されると、前記コンピュータに、
前記仮想マシンを実装する前記クライアントコンピュータシステムのスコアを生成することであって、前記スコアが、前記1つまたは複数のソフトウェア脆弱性の正しい識別に応答して増加する、生成すること、
を含むステップを実行させる、命令を更に含む、請求項19に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータシステムセキュリティ侵害識別に対する仮想マシンの動的作成のためのシステムおよび方法に関し、より詳細には、シミュレートされた仮想マシン、コンピュータシステム試験パラメータを動的に生成するためのシステムおよび方法に関する。
【背景技術】
【0002】
コンピュータシステムは、第三者によって引き起こされる悪意のある操作に対して脆弱である可能性があり、コンピュータシステムまたはソフトウェア内の弱点の利用を可能にし、ひいてはコンピュータシステムまたはソフトウェアのセキュリティ侵害を可能にする。したがって、シミュレートされたアプリケーションおよびネットワークサービスに対する悪意のある操作を動的に識別および改善するために、ユーザおよび/またはコンピュータシステム(例えば、機械学習システム)を訓練するシステムが必要とされている。
【発明の概要】
【0003】
一実施形態では、動的仮想マシンを提供するための方法は、1つまたは複数のソフトウェア脆弱性を実装する仮想マシンを生成することと、仮想マシンをクライアントコンピュータシステムに割り当てることと、クライアントコンピュータシステムのディスプレイデバイスに表示するためのグラフィカルユーザインターフェースをレンダリングすることであって、グラフィカルユーザインターフェースは、仮想マシンのシミュレーション中にユーザからの入力を受信するために、仮想マシンのパラメータおよびインターフェースツールを表示するように構成される、レンダリングすることと、クライアントコンピュータシステム上の仮想マシンのシミュレーション中にユーザからの入力を監視することと、ユーザからの入力を監視することに応答して、入力からの1つまたは複数のソフトウェア脆弱性の識別の正当性を検証することと、を含む。
【0004】
別の実施形態では、動的仮想マシンを提供するためのシステムを開示する。システムは、プロセッサ、および非一時的コンピュータ可読媒体を備える管理コンピュータデバイスと、管理コンピュータデバイスの非一時的コンピュータ可読メモリに記憶された機械可読命令セットであって、プロセッサによって実行されたとき、システムに、1つまたは複数のソフトウェア脆弱性を実装する仮想マシンを生成することと、仮想マシンをクライアントコンピュータシステムに割り当てることと、クライアントコンピュータシステムのディスプレイデバイスに表示するためのグラフィカルユーザインターフェースをレンダリングすることとであって、グラフィカルユーザインターフェースは、仮想マシンのシミュレーション中にユーザからの入力を受信するために、仮想マシンのパラメータおよびインターフェースツールを表示するように構成される、レンダリングすることと、クライアントコンピュータシステム上の仮想マシンのシミュレーション中にユーザからの入力を監視することと、ユーザからの入力を監視することに応答して、入力からの1つまたは複数のソフトウェア脆弱性の識別の正当性を検証することと、を少なくとも実施させる、機械可読命令セットと、を含む。
【0005】
別の実施形態では、命令を備える動的仮想マシンを提供するためのコンピュータプログラムであって、コンピュータプログラムは、コンピュータによって実行されると、コンピュータに、1つまたは複数のソフトウェア脆弱性を実装する仮想マシンを生成することと、仮想マシンをクライアントコンピュータシステムに割り当てることと、クライアントコンピュータシステムのディスプレイデバイスに表示するためのグラフィカルユーザインターフェースをレンダリングすることであって、グラフィカルユーザインターフェースは、仮想マシンのシミュレーション中にユーザからの入力を受信するために、仮想マシンのパラメータおよびインターフェースツールを表示するように構成される、レンダリングすることと、クライアントコンピュータシステム上の仮想マシンのシミュレーション中にユーザからの入力を監視することと、ユーザからの入力を監視することに応答して、入力からの1つまたは複数のソフトウェア脆弱性の識別の正当性を検証することと、を含むステップを実行させる、コンピュータプログラム。
【0006】
本明細書に説明する実施形態によって提供されるこれらおよび追加の特徴は、図面と併せて、以下の詳細な説明を考慮して完全に理解されるであろう。
【0007】
図面に記載した実施形態は、本質的に例示的で、例証的であり、特許請求の範囲によって定義される主題の限定を意図しない。例示的な実施形態の以下の詳細な説明は、同様の構造を同様の参照番号で示す以下の図面と併せて読むと理解され得る。
【図面の簡単な説明】
【0008】
【
図1】本明細書に示し、説明する1つまたは複数の実施形態による、ランダム化されたパラメータに基づいて仮想マシンを生成し、複数のクライアントコンピュータシステムを使用して予め定義されたソフトウェア脆弱性を識別するようにユーザまたはコンピュータシステムを訓練するための例示的なシステムを概略的に示す図である。
【
図2】本明細書に示し、説明する1つまたは複数の実施形態による、シミュレーションセッションのためにクライアントコンピュータデバイスのインターフェースによって表示される例示的なスクリーンショットを概略的に示す図である。
【
図3】本明細書に示し、説明する1つまたは複数の実施形態による、仮想マシンについて動的に生成されたパラメータを含むシミュレーションセッションについてクライアントコンピュータデバイスのインターフェースによって表示される例示的なスクリーンショットを概略的に示す図である。
【
図4】本明細書に示し、説明する1つまたは複数の実施形態による、第1の構文に対する構文チャレンジシステムについてクライアントコンピュータデバイスのインターフェースによって表示される例示的なスクリーンショットを概略的に示す図である。
【
図5】本明細書に示し、説明する1つまたは複数の実施形態による、第2の構文に対する構文チャレンジシステムについてクライアントコンピュータデバイスのインターフェースによって表示される例示的なスクリーンショットを概略的に示す図である。
【
図6】本明細書に示し、説明する1つまたは複数の実施形態による、照合システムについてクライアントコンピュータデバイスのインターフェースによって表示される例示的なスクリーンショットを概略的に示す図である。
【
図7】本明細書に示し、説明する1つまたは複数の実施形態による、ソフトウェア脆弱性を検出し、対処するようにユーザおよび/またはコンピュータシステムを訓練するために、ソフトウェア脆弱性を実装する仮想マシンを提供するための方法の例示的なフロー図である。
【発明を実施するための形態】
【0009】
本明細書に説明する実施形態は、クライアントコンピュータシステムと、管理コンピュータシステムと、を含む。管理コンピュータシステムは、仮想マシンを動的に作成し、仮想マシンをクライアントコンピュータシステムに割り当てる。管理コンピュータシステムは、ソフトウェア脆弱性を識別する。クライアントコンピュータシステムは、仮想マシンを受け取り、ソフトウェア脆弱性を識別する能力を向上するために、クライアントコンピュータシステムを訓練するための教師あり訓練アルゴリズムの一部としてソフトウェア脆弱性を識別しようと試みる。
【0010】
図面を参照すると、本開示の実施形態は、一般に、ランダム化されたパラメータに基づいて仮想マシンを生成し、複数のクライアントコンピュータシステムを使用して予め定義されたソフトウェア脆弱性を識別するためにユーザまたはコンピュータシステムを訓練する、デバイス、システム、および方法に関する。仮想プロセッサおよびサービスが、コンピュータ環境上またはコンピュータ環境内で利用され、それらが物理マシンであるかのように機能し得るように、仮想マシンはコンテナ化され得る。実施形態では、管理コンピュータシステムは、複数のクライアントコンピュータシステムに通信可能に接続され、管理コンピュータシステムは、仮想エンジンの動的パラメータを生成するオーケストレーションエンジンを含む。管理コンピュータシステムは、仮想エンジンをクライアントコンピュータシステムの各々に割り当て、仮想マシンに従って仮想コンピュータリソースを展開する。仮想マシンは各々、仮想プロセッサによって実行可能な機械可読命令を含み、機械可読命令の各々は、その中に意図的に符号化された1つまたは複数のソフトウェア脆弱性を含み得る。管理コンピュータシステムは、展開する1つまたは複数の仮想マシンに仮想マシンが作成されるときに、1つまたは複数のソフトウェア脆弱性を動的に決定し得る。これにより、管理コンピュータシステムは、様々なパラメータおよび様々なソフトウェア脆弱性を有する仮想マシンを生成し得る。したがって、管理コンピュータシステムは、各クライアントコンピュータデバイスに、異なるソフトウェア脆弱性を有する1つまたは複数の異なる仮想マシンを提供し得る。
【0011】
各クライアントコンピュータシステムは、1つまたは複数のディスプレイデバイスを介して1つまたは複数のグラフィカルユーザインターフェースをレンダリングし得る。グラフィカルユーザインターフェースは、仮想マシンのパラメータを表示し得る。グラフィカルユーザインターフェースは、仮想マシンのシミュレーション中にユーザからの入力を受信するためのインターフェースツールを更に提供し得る。各クライアントコンピュータシステムのユーザ(またはクライアントコンピュータシステムが訓練されている実施形態ではクライアントコンピュータシステム自体)は、それらそれぞれの仮想マシンを評価し、仮想マシンに固有の予め定義されたソフトウェア脆弱性を識別しようと試み得る。クライアントコンピュータシステムは、ソフトウェア脆弱性の識別を受信し、ソフトウェア脆弱性の識別の正当性を検証し得る。
【0012】
所与のソフトウェアツールまたはプログラミング言語に基づいて、一般に、構文問題を動的に構築するように構成された構文チャレンジシステムのためのデバイス、システム、および方法に関する本開示の実施形態を、本明細書で更に説明する。構文問題は、動的に選択されるパラメータを含み得る。構文チャレンジシステムは、動的に構築された構文問題に応答してソリューションを更に計算する。構文チャレンジシステムは、動的に選択されたパラメータを取り込み得るグラフィカルユーザインターフェースをユーザに提供し得る。グラフィカルユーザインターフェースは、ユーザ生成(またはクライアントコンピュータシステムが訓練されている実施形態ではクライアントコンピュータシステム自体の)ソリューションを受け取るために、入力を受け入れるインターフェースツールを更に提供する。構文チャレンジシステムは、ユーザ生成ソリューションを検証する。
【0013】
したがって、構文チャレンジシステムは、所与のツールのための適切な構文の使用についてユーザ(またはクライアントコンピュータシステムが訓練されている実施形態ではクライアントコンピュータシステム自体)を訓練または試験し得る。構文チャレンジシステムは、要件のランダム化された組合せをユーザに提供する(例えば、ユーザが解くべき質問)。ランダム化された要件は、所与のツール(tcpdump、Snort(登録商標)など)に基づく。構文チャレンジシステムはまた、ユーザが回答を入力するためのインターフェースを提供する。インターフェースは、ユーザが構文問題に対するソリューションまたは回答を構成し、構築することを可能にし、許可するグラフィカルインターフェースツール(例えば、ボタン、ドロップダウンメニュー、テキストボックスなど)を含み得る。インターフェースツールは、所与の侵入検知/防止ツールに応じて異なり得る。
【0014】
更に、一般に、照合システムのためのデバイス、システム、および方法に関する本開示の実施形態を説明する。照合システムは、複数の関連アイテムを動的に選択し得る。複数の関連アイテムは、表示デバイスを介して、グラフィカルユーザインターフェースに表示され得る。実施例では、グラフィカルユーザインターフェースは、複数の列を含み、列は、一般カテゴリ(例えば、プロトコル、ポートなど)に関連する。例えば、第1の列は、複数の異なるコンピュータプロトコルを含んでもよく、第2の列は、複数の異なるポートを含んでもよい。複数の異なるプロトコルの各々は、複数の異なるポートのうちの1つまたは複数に関連付けられ得る。ユーザ(またはクライアントコンピュータシステムが訓練されている実施形態ではクライアントコンピュータシステム自体)は、ポートおよびプロトコルの照合を選択し得る。照合システムは、ユーザが正しい照合を提供されたか否かを決定するために、選択された照合を検証し得る。実施形態では、照合システムは、様々な訓練目的およびプロセスを欺き、および/または回避するために、ユーザの能力を低減する関連アイテムの選択、アイテムの順序などをランダム化してもよい。
【0015】
本明細書で説明するように、管理コンピュータシステムは、クライアントコンピュータシステムを監視し、ユーザの進捗を追跡し、識別の結果を追跡し、クライアントコンピュータシステムに関する報告を管理者に提供し得る。識別、照合、または他の入力の正当性の検証に応答して、シミュレーションを完了し、および/または異なる仮想マシンの別のシミュレーションを開始し得る。
【0016】
シミュレーションまたは試験セッションの完了時またはその間に、管理コンピュータシステムは、複数のコンピュータシステムの各クライアントコンピュータシステムのスコアを生成し、報告し得る。その後、管理コンピュータシステムは、クライアントコンピュータシステムの各クライアントコンピュータシステムのランキングを示す報告をランク付けし、生成し得る。
【0017】
したがって、攻撃的サイバー作戦訓練システムは、ユーザおよび/またはシステムが、メモリ破損問題、メモリ脆弱性問題、メモリ開示問題、情報漏洩問題、論理脆弱性問題、暗号問題などの悪意のある第三者の行為によって生じ得る様々なコンピュータシステムおよびネットワーク問題を識別し、修正する能力を向上し得る。
【0018】
本明細書で使用する場合、「複数のソフトウェア脆弱性」または「ソフトウェア脆弱性」という用語は、アプリケーションサービスおよび/またはコンピュータシステムのネットワークの少なくとも1つに関連する、エラー、不具合、障害、および/または脆弱性を指す。本明細書で使用する場合、「予め定義されたソフトウェア脆弱性」という用語は、アプリケーションサービスおよび/またはコンピュータシステムのネットワークの少なくとも1つに関連する、エラー、不具合、障害、および/または脆弱性の所定のセットから選択されるエラー、不具合、障害、および/または脆弱性を指す。
【0019】
ここで
図1を参照すると、ランダム化されたパラメータに基づいて仮想マシンを生成し、複数のクライアントコンピュータシステムを使用して予め定義されたソフトウェア脆弱性を識別するためにユーザまたはコンピュータシステムを訓練するためのシステム10を、概略的に示している。実施形態では、システム10は、管理コンピュータシステム20と、(クライアントコンピュータシステム30と総称する)第1のクライアントコンピュータシステム30-1と、第2のクライアントコンピュータシステム30-2と、第3のクライアントコンピュータシステム30-3と、を含む。3つのクライアントコンピュータシステム30-1、30-2、30-3を示しているが、他の実施形態では、システム10は、任意の数のクライアントコンピュータシステム30を含み得ることを理解されたい。クライアントコンピュータシステム30および管理コンピュータシステムは、ネットワーク80を介して通信可能に接続され得る。
【0020】
図1に示すように、管理コンピュータシステム20は、管理者40によって操作され、制御され得る。更に、第1のクライアントコンピュータシステム30-1は、ユーザ50-1によって操作され、制御され、第2のクライアントコンピュータシステム30-2は、ユーザ50-2によって操作され、制御され、第3のクライアントコンピュータシステム30-3は、ユーザ50-3によって操作され、制御され得る。システム10は、(ユーザ50と総称される)ユーザ50-1、50-2、50-3によって操作され、制御されているクライアントコンピュータシステム30を示しているが、クライアントコンピュータシステム30の操作および制御は、ユーザとの対話なしに、クライアントコンピュータシステム30によって部分的または全体的に実行され得ることを理解されたい。非限定的な例として、クライアントコンピュータシステム30は、1つもしくは複数の機械学習および/または1つもしくは複数のディープラーニングアルゴリズムを使用して、ユーザ50からの入力なしに、本明細書に説明する機能を実行する人工知能(AI)コンピュータシステムであってもよい。
【0021】
例えば、AIコンピュータシステムは、クライアントコンピュータシステム(例えば、クライアントコンピュータデバイス)のコンピュータセキュリティプログラムまたはネットワークセキュリティモニタの一部として実装されてもよい。AIコンピュータシステムは、シミュレートされた仮想マシンがクライアントコンピュータシステムに展開される訓練モードに構成され得る。本明細書で詳細に説明するように、仮想マシンは、ソフトウェアの脆弱性を有するプログラム、コンピュータシステム、またはネットワーク構成であってもよい。管理コンピュータシステムによって監視されるクライアントコンピュータシステム上のシミュレーションに仮想マシンを展開することによって、AIコンピュータシステムは、異なる仮想マシンの反復を通して、ソフトウェア脆弱性を識別するように学習し得る。更に、AIコンピュータシステムは、異なるシナリオで提示されるため、ソフトウェアの脆弱性を検出する能力を学習し、改善し得る。更に、クライアントコンピュータシステム上に展開される仮想マシンにおけるソフトウェア脆弱性の実装は、ソフトウェア脆弱性をクライアントコンピュータシステム上のコアプロセスおよびプログラムから分離して維持する。言い換えれば、限定された訓練のためにソフトウェア脆弱性を仮想マシンに展開することにより、AIコンピュータシステムがソフトウェア脆弱性を検出する能力を学習および/または改善している間に、クライアントコンピュータシステムが脆弱になることを回避する。
【0022】
実施形態では、管理コンピュータシステム20は、1つまたは複数のプロセッサ54と、1つまたは複数の非一時的コンピュータ可読媒体62と、を含むか、またはそれらと接続され得る。各々がコンピュータ処理装置(CPU)であり得る1つまたは複数のプロセッサ54は、1つまたは複数の非一時的コンピュータ可読媒体62に記憶された機械可読命令を受信し、実行し得る。非限定的な例として、1つまたは複数のプロセッサ54は、共用プロセッサ回路、専用プロセッサ回路、またはグループプロセッサ回路のいずれかであってもよい。「共有プロセッサ回路」という用語は、複数のモジュールからの一部または全部の機械可読命令を実行する単一のプロセッサ回路を指す。「グループプロセッサ回路」という用語は、追加のプロセッサ回路と組み合わせて、1つまたは複数の非一時的コンピュータ可読媒体の複数のモジュールからの一部または全部の機械実行可能命令を実行するプロセッサ回路を指す。複数のプロセッサ回路への言及は、個別のダイ上の複数のプロセッサ回路、単一のダイ上の複数のプロセッサ回路、単一のプロセッサ回路の複数のコア、単一のプロセッサ回路の複数のスレッド、または上記の組合せを包含する。
【0023】
1つまたは複数の非一時的コンピュータ可読媒体62は、1つまたは複数のプロセッサ54に通信可能に接続される。非限定的な例として、1つまたは複数の非一時的コンピュータ可読媒体62は、共有メモリ回路、専用メモリ回路、またはグループメモリ回路のいずれかであってもよい。「共有メモリ回路」という用語は、複数のモジュールからの一部または全部の機械可読命令を記憶する単一のメモリ回路を指し、これについては以下で更に詳細に説明する。「グループメモリ回路」という用語は、追加のメモリと組み合わせて、複数のモジュールからの一部または全部の機械可読命令を記憶するメモリ回路を指す。1つまたは複数の非一時的コンピュータ可読媒体62の非限定的な例は、ランダムアクセスメモリ(SRAM、DRAM、および/または他のタイプのランダムアクセスメモリを含む)、読み出し専用メモリ(ROM)、フラッシュメモリ、レジスタ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、および/または他の種類の記憶構成要素を含む。
【0024】
更に
図1を参照すると、管理コンピュータシステム20は、オーケストレーションエンジン22を含むか、またはそれに接続され得る。1つまたは複数の非一時的コンピュータ可読媒体62に記憶され、1つまたは複数のプロセッサ54によって実行され得るコンピュータ可読命令を、オーケストレーションエンジン22は含み得る。一例では、オーケストレーションエンジン22は、クライアントコンピュータシステム30の各々にコンピュータリソースを提供する仮想マシンを構築してもよい。仮想マシンは各々、仮想プロセッサによって実行可能な機械可読命令を含み得る。
【0025】
実施形態では、複数の仮想マシンの構成が変更されるように、オーケストレーションエンジン22は、仮想マシンのパラメータを動的に選択してもよい。仮想マシンの構成を変更することにより、仮想マシンが一意(または例えば所与の可能性のセット内で一意など、半一意)であることを保証し得る。これにより、管理コンピュータシステム20は、一意に構成された仮想マシンをクライアントコンピュータシステム30の各々に提供し得る。
【0026】
オーケストレーションエンジン22は、所定のパラメータのデータベース(例えば、1つまたは複数の非一時的コンピュータ可読媒体62に記憶されているなど)からパラメータを動的に選択し得る。パラメータは、コンピュータアドレス(例えば、インターネットプロトコル(「IP」)アドレス)、ポート構成、メモリ要件、CPU要件、または仮想マシンの動作要件に関する他の情報を含んでもよい。実施例では、例えば、クライアントコンピュータシステム30が第三者コンピュータシステムに接続することを試みないように、所定のパラメータは、他の方法でアドレス指定できないIPアドレスを含んでもよい。
【0027】
オーケストレーションエンジン22は、選択プロセスに従って、複数の仮想マシンのパラメータを動的に選択し得る。選択プロセスは、ランダム化アルゴリズム(半ランダム化アルゴリズムを含む)、重み付けアルゴリズム、機械学習および/またはディープラーニングアルゴリズム(例えば、AI)、あるいはパラメータを動的に選択するための他のアルゴリズムを利用してもよい。いくつかの実施形態では、オーケストレーションエンジン22は、クライアントコンピュータシステム30、ユーザ50、またはクライアントコンピュータシステム30もしくはユーザ50に関連する履歴に基づいて、仮想マシンのパラメータを選択してもよい。本明細書で説明するように、動的選択は、様々なパラメータを有する仮想マシンの作成を可能にする。更に、動的選択は、以下で詳細に説明するように、クライアントコンピュータシステム30から受信した要求に応答して、仮想マシンを作成することを可能にする。
【0028】
実施形態では、オーケストレーションエンジン22は、複数の仮想マシンのソフトウェア脆弱性を更に決定してもよい。複数の仮想マシンの脆弱性は、パラメータの動的選択に応答して、オーケストレーションエンジン22によって決定され得る。一例として、オーケストレーションエンジン22は、動的に選択されたパラメータのうちの1つまたは複数に基づいて、仮想マシンのメモリ内の位置を識別してもよい。オーケストレーションエンジン22は、ソフトウェア脆弱性を表すために、メモリ内の位置にトークンを配置し得る。ユーザ50がソフトウェア脆弱性を特定しようとするシミュレーションでは、オーケストレーションエンジン22は、例えば、1つまたは複数の非一時的コンピュータ可読媒体62に記憶された所定のトークンから、マーカまたはトークンを選択し得る。所定のトークンは、英数字文字列を含むパスフレーズを含み得る。英数字文字列は、例えば、語句の単語の所定の組合せを含み得る。
【0029】
クライアントコンピュータシステム30(および/またはユーザ50)が、仮想マシンをあたかも物理マシンであるかのように実装するように、オーケストレーションエンジン22は、仮想マシンを生成する。例えば、仮想マシンは、プロキシなし、または他の中間システムなし、またはサービスなしで、直接IPアクセスを通してクライアントコンピュータシステムに接続されてもよい。したがって、クライアントコンピュータシステム30および/またはユーザ50は、現実的な体験を提供され、仮想マシンが個々の物理マシンではないことを認識していない可能性がある。
【0030】
更に
図1を参照すると、オーケストレーションエンジン22は、クライアントコンピュータシステム30からの要求に基づいて、管理コンピュータシステム20の負荷分散を行い得る。管理コンピュータシステム20がクライアントコンピュータシステム30にサービスを提供し得るように、負荷分散は、CPU使用量、ストレージ、位置、コンピュータサービス、または他の動作パラメータを監視し、管理することを含み得る。更に、オーケストレーションエンジン22は、管理コンピュータシステム20の利用可能なリソースに基づいて、クライアントコンピュータシステム30からの要求を所与の時間に作成し得るか否かを、更に決定する。場合によっては、オーケストレーションエンジン22は、クライアントコンピュータシステムからの現在の要求または予想される要求に基づいて、管理コンピュータシステム20のCPU使用を修正または再割り当てしてもよい。
【0031】
様々な実施形態において、オーケストレーションエンジン22は、管理コンピュータシステム20を使用して、クライアントコンピュータシステム30の各々に展開されたシミュレーションセッションに、様々な仮想マシンを割り当ててもよい。非限定的な例として、
図2~
図5を参照して以下で更に詳細に説明するように、管理者40は、特定のクライアントコンピュータシステム30にユーザ50の各々を割り当て、仮想マシン内に含まれるソフトウェア脆弱性を動的に定義し、シミュレーションセッションの長さを定義してもよい。
【0032】
図2~
図5を参照して以下で更に詳細に説明するように、シミュレーションセッション中に、クライアントコンピュータシステム30の各々(またはユーザとの対話なしのクライアントコンピュータシステム30)のユーザ50は、それらのそれぞれの展開された仮想マシンを評価し、予め定義されたソフトウェア脆弱性を特定し、識別または修正し、検証のために管理コンピュータシステム20に予め定義されたソフトウェア脆弱性を送出し得る。管理コンピュータシステム20が、対応するクライアントコンピュータシステム30(またはユーザとの対話なしのそれぞれのクライアントコンピュータシステム30)のユーザ50が予め定義されたソフトウェア脆弱性を適切に修正または識別したことを検証したことに応答して、管理コンピュータシステム20は、対応するクライアントコンピュータシステム30に関連するスコアを増加させる。
【0033】
クライアントコンピュータシステム30は、1つまたは複数のプロセッサと、1つまたは複数の非一時的コンピュータ可読媒体と、を含むか、またはそれらと接続されてもよい。加えて、クライアントコンピュータシステム30は、アンテナ、モデム、LANポート、ワイヤレスフィデリティ(Wi-Fi)カード、WiMaxカード、ロングタームエボリューション(LTE)カード、ZigBeeカード、Bluetoothチップ、USBカード、モバイル通信ハードウェア、ならびに/あるいは他のネットワークおよび/またはデバイスと通信するための他のハードウェアを含む、ネットワーク80を介した通信のための任意の有線または無線ネットワークハードウェアを含み得るネットワークインターフェースハードウェアを含み得る。クライアントコンピュータシステム30は、キーボード、マウス(例えば、ポインティングデバイス)、ジョイスティック、リモートコントローラ、ゲームコントローラ、タッチスクリーン、スタイラス、ディスプレイデバイス(例えば、コンピュータモニタ、プロジェクタ、テレビ画面など)、または他の人間入出力デバイスなど、ユーザインターフェースデバイスを更に含んでもよい。
【0034】
図1を参照しつつ、
図2~
図3を参照すると、クライアントコンピュータシステム30は、ディスプレイデバイスを介してインターフェース200および300をレンダリングし得る。インターフェース200は、ユーザ50がシミュレーションセッションのための仮想マシンの生成を要求し得るグラフィカルユーザインターフェースツールを含む。図示のように、インターフェース200は、問題識別ウィンドウ202を含み得る。問題識別ウィンドウ202は、動的に決定されるパラメータのユーザのためのプロンプトまたは命令および識別204を含む。ユーザ50がシミュレーションセッションを開始する準備ができたとき、ユーザは、ユーザ(またはクライアントコンピュータシステムが訓練されている実施形態ではクライアントコンピュータシステム自体)の訓練を開始するために、起動ツール206を選択し得る。
【0035】
図3に示すように、インターフェース300は、起動ツール206の選択、および管理コンピュータシステム20から提供される入力に応答して、
図2のインターフェース200から更新、またはそうでなければ変更されている。例えば、管理コンピュータシステム20は、クライアントコンピュータシステム30からの起動の要求を受信したことに応答して仮想マシンを動的に構築してもよい。本明細書で説明するように、管理コンピュータシステム20(例えば、オーケストレーションエンジン22を介して)は、仮想マシンがランダム化または半ランダム化されたパラメータを含むように、仮想マシンのパラメータを選択または計算する。これにより、仮想マシンの動的な作成が可能になり、訓練が可能になり、ユーザ50による回答の共有またはコピーを防止する。
【0036】
更に
図1~
図3を参照すると、インターフェース300は、クライアントコンピュータシステム30に割り当てられた仮想マシンのための1つまたは複数の動的に識別されたパラメータ304を含む識別ウィンドウ202を含む。インターフェース300は、クライアントコンピュータシステム30が仮想マシンに割り当てられたクライアントコンピュータシステム30のうちの少なくとも1つであること、管理コンピュータシステム20からサービスを受信すること、またはシミュレーションセッションを展開すること、を識別するライブサービス識別子308を更に含み得る。インターフェース300は、ユーザがシミュレーションを終了し、シミュレーションを一時停止し、新規に動的に作成された仮想マシンを要求し、またはそうでなければシミュレーションセッションを修正し得るシミュレーション制御ツール306を更に含み得る。
【0037】
実施形態では、ユーザ50は、クライアントコンピュータシステム30を介してインターフェース300を受け取り、シミュレーションセッションを実施するために表示デバイスと対話してもよい。例として、クライアントコンピュータシステム30は、識別ウィンドウ202内で動的に識別されたパラメータ304をユーザに提供する。識別ウィンドウ202は、ユーザ50が解決するためのプロンプトまたは問題を提供する。ユーザが動的に識別されたパラメータ304を受信すると、ユーザは、クライアントコンピュータデバイスを介して適切なステップを実行して、問題の解決を試み得る。この例では、ソリューションは、ソフトウェアの脆弱性を表すためにメモリ内の任意の位置にトークンを含む。本明細書で説明するように、トークンは、動的に識別される位置に配置され、動的な英数字文字列を含む。シミュレーションでは、ユーザ50は、トークンの位置を特定しようとし、回答ボックス310内でトークンを提供する。次いで、管理コンピュータシステム20は、ユーザの回答を検証して、動的に生成されたトークンと照合するか否かを決定し得る。クライアントコンピュータシステム30自体が訓練されている実施形態では、クライアントコンピュータシステム30は、インターフェース300を介して回答を提供しても、しなくてもよい。
【0038】
シミュレーションセッションが完了すると、管理コンピュータシステム20は、クライアントコンピュータシステム30の各々についてスコアを生成し、報告し得る。いくつかの実施形態では、管理コンピュータシステム20は、仮想マシン、トークンなどのパラメータを、メモリ(例えば、1つまたは複数の非一時的コンピュータ可読媒体62)に記憶してもよい。ユーザ50、またはユーザ50のサブセット(例えば、共通の組織にいるユーザ、共通の場所にいるユーザなど)が仮想マシンおよび/またはトークンについて同じ仮想パラメータを受信しないことを保証するために、将来動的に作成される仮想マシンは、以前に利用された仮想マシンおよび/またはトークンについて、記憶されたパラメータと相互参照され得る。しかしながら、仮想マシンおよび/またはトークンについて同一のパラメータを生成する可能性は、極めて低くなり得ることに留意されたい。
【0039】
図1および
図4~
図5を参照すると、クライアントコンピュータシステム30は、構文チャレンジシステムのためのディスプレイデバイスを介して、インターフェース400および500をレンダリングし得る。構文チャレンジシステムは、本明細書に説明する他の実施形態の一部として、または本明細書に記載の他の実施形態から分離して展開されてもよい。いくつかの実施形態では、クライアントコンピュータシステム30は、管理コンピュータシステム20からの動的に識別されたパラメータに基づいて、または構文チャレンジシステムのローカル置換もしくはインストールに基づいて、インターフェース400および500をレンダリングしてもよい。少なくとも説明を簡単にするために、実施形態は、計算演算を実施して実行する管理コンピュータシステム20またはクライアントコンピュータシステム30の一方として説明され得る。しかしながら、管理コンピュータシステム20またはクライアントコンピュータシステム30のうちの1つまたは複数は、演算を実行し得ることを理解されたい。
【0040】
実施形態によれば、クライアントコンピュータシステム30は、1つまたは複数のプロセッサ54によって実行され得るコンピュータ実行可能命令(例えば、1つまたは複数の非一時的コンピュータ可読媒体62に記憶される)を含む構文チャレンジシステム論理を含んでもよい。クライアントコンピュータシステム30は、仮想マシンのパラメータを動的に生成するために構文チャレンジシステム論理を実行することができ、パラメータは、コンピュータツール(例えば、tcpdump、tshark、Snort(登録商標)など)、または他の適切なツールの構文に関する。
図4は、tshark構文の例を示し、
図5は、Snort(登録商標)構文の例を示す。システム構文チャレンジシステムは、サイバーセキュリティ関連ツールに限定されず、任意のコンピュータ分野におけるコマンド/アプリケーションの構文の訓練に使用され得ることに留意されたい。
【0041】
パラメータは、利用される所望の構文に基づいて、所定の複数のパラメータ(例えば、1つまたは複数の非一時的コンピュータ可読媒体62に記憶される)から選択され得る。選択プロセスは、ランダム化アルゴリズム(半ランダム化アルゴリズムを含む)、重み付けアルゴリズム、機械学習および/またはディープラーニングアルゴリズム(例えば、AI)、あるいはパラメータを動的に選択するための他のアルゴリズムを利用してもよい。いくつかの実施形態では、オーケストレーションエンジン22は、クライアントコンピュータシステム30、ユーザ50、またはクライアントコンピュータシステム30もしくはユーザ50に関連する履歴に基づいて、仮想マシンのパラメータを選択してもよい。本明細書で説明するように、動的選択は、様々なパラメータを有する仮想マシンの作成を可能にする。更に、動的選択は、以下で詳細に説明するように、クライアントコンピュータシステム30から受信した要求に応答して、仮想マシンを作成することを可能にする。
【0042】
更に
図4~
図5を参照すると、インターフェース400および500はそれぞれ、動的に選択されたパラメータを表示するためのパラメータ識別ウィンドウ402,502と、パラメータによって定義された問題を解決するためのユーザ入力を受信するためのソリューション作成ウィンドウ404と、ユーザ50が生成したソリューションに関するユーザ入力を受信するためのソリューション入力ウィンドウ406,506と、を含み得る。クライアントコンピュータシステム30は、ユーザ入力を受信し、管理コンピュータシステム20は、ユーザ50のソリューションを検証し得る。
【0043】
本明細書で説明するように、構文チャレンジシステムは、所与のソフトウェアツールまたはプログラミング言語に基づいて、構文問題を動的に構築し得る。構文問題は、動的に選択されるパラメータを含み得る。構文チャレンジシステムは、動的に構築された構文問題に応答してソリューションを更に計算する。構文チャレンジシステムは、動的に選択されたパラメータを取り込み得るグラフィカルユーザインターフェースをユーザに提供し得る。グラフィカルユーザインターフェースは、ユーザが生成した(またはクライアントコンピュータシステムが訓練されている実施形態ではクライアントコンピュータシステム自体の)ソリューションを受け取るために、入力を除くインターフェースツールを更に提供する。構文チャレンジシステムは、ユーザ生成ソリューションを検証する。
【0044】
したがって、構文チャレンジシステムは、所与のツールのための適切な構文の使用についてユーザ(またはクライアントコンピュータシステムが訓練されている実施形態ではクライアントコンピュータシステム自体)を訓練または試験し得る。構文チャレンジシステムは、要件のランダム化された組合せをユーザに提供する(例えば、ユーザが解くべき質問)。ランダム化された要件は、所与の侵入検知/防止ツール(tcpdump、Snort(登録商標)など)に基づく。構文チャレンジシステムはまた、ユーザが回答を入力するためのインターフェースを提供する。インターフェースは、ユーザが構文問題に対するソリューションまたは回答を構成し、構築し得るグラフィカルインターフェースツール(例えば、ボタン、ドロップダウンメニュー、テキストボックスなど)を含み得る。インターフェースツールは、所与の侵入検知/防止ツールに応じて異なり得る。
【0045】
ここで
図1および
図6を参照すると、クライアントコンピュータシステム30、管理コンピュータシステム20、またはその両方によって展開され得る照合システムのためのインターフェース600がある。照合システムは、複数の関連アイテムを動的に選択し得る。複数の関連アイテムは、表示デバイスを介して、グラフィカルユーザインターフェースに表示され得る。実施例では、グラフィカルユーザインターフェースは、複数の列を含み、列は、一般カテゴリ(例えば、プロトコル、ポートなど)に関連する。例えば、第1の列は、複数の異なるコンピュータプロトコルを含んでもよく、第2の列は、複数の異なるポートを含んでもよい。複数の異なるプロトコルの各々は、複数の異なるポートのうちの1つまたは複数に関連付けられ得る。ユーザ(またはクライアントコンピュータシステムが訓練されている実施形態ではクライアントコンピュータシステム自体)は、ポートおよびプロトコルの照合を選択し得る。照合システムは、ユーザが正しい照合を提供されたか否かを決定するために、選択された照合を検証し得る。実施形態では、照合システムは、特定のプロセスおよび/または要件を欺き、および/または回避するために、ユーザの能力を低減する関連アイテムの選択、アイテムの順序などをランダム化してもよい。
【0046】
図7を参照すると、本明細書に示し、説明する1つまたは複数の実施形態による、ソフトウェア脆弱性を検出し、対処するために、ユーザおよび/またはコンピュータシステムを訓練するようにソフトウェア脆弱性を実装する仮想マシンを提供するための方法の例示的なフロー
図700。本フロー図のブロックは、本明細書に説明するシステム10の1つまたは複数の要素によって実行され得ることを理解されたい。限定ではなく説明の目的のために、管理コンピュータシステム20およびクライアントコンピュータシステム30を参照して、フロー
図700によって示される方法を説明する。いくつかの実施形態では、オーケストレーションエンジン22は、フロー
図700の方法ブロックによって示されるプロセスを実行するように構成されたコンピュータプログラム製品および/または機械可読命令セットであってもよい。ブロック710において、管理コンピュータシステム20は、様々なパラメータおよび様々なソフトウェア脆弱性を有する仮想マシンを生成する。したがって、管理コンピュータシステム20は、各クライアントコンピュータデバイス30に、異なるソフトウェア脆弱性を有する1つまたは複数の異なる仮想マシンを提供し得る。ブロック720において、管理コンピュータシステム20は、クライアントコンピュータシステム30のうちの1つまたは複数をシミュレーションするために生成された仮想マシンを割り当てる。非限定的な例として、管理者40は、ユーザ50の各々を特定のクライアントコンピュータシステム30に割り当て、仮想マシン内に含まれるソフトウェア脆弱性を動的に定義し、シミュレーションセッションの長さを定義してもよい。
【0047】
ブロック730において、1つまたは複数のグラフィカルユーザインターフェースが、クライアントコンピュータシステムのディスプレイデバイスに表示するためにレンダリングされる。レンダリングされたグラフィカルユーザインターフェースにより、ユーザ50は、シミュレーションセッションのための仮想マシンの生成を要求し得る。ユーザ50がシミュレーションセッションを開始する準備ができたとき、ユーザは、ユーザ(またはクライアントコンピュータシステムが訓練されている実施形態ではクライアントコンピュータシステム自体)の訓練を開始するために、起動ツール206を選択し得る。グラフィカルユーザインターフェースは、仮想マシンのパラメータを表示し得る。グラフィカルユーザインターフェースは、仮想マシンのシミュレーション中にユーザからの入力を受信するためのインターフェースツールを更に提供し得る。ブロック740において、クライアントコンピュータシステム上の仮想マシンのシミュレーションが実行される。仮想マシンのシミュレーションの実行は、様々なユーザインターフェースをユーザに提供すること、またはクライアントコンピュータシステムに、人工知能モデルの実装および訓練を通してプロンプトに自動的に応答させること、を含んでもよい。ブロック750において、管理コンピュータシステム20は、ユーザによって提供された入力を、または人工知能モデルからの自動応答を、含むクライアントコンピュータシステム30のアクティビティを監視する。いくつかの実施形態では、管理コンピュータシステム20は、クライアントコンピュータシステム30を監視し、ユーザの進捗を追跡し、識別の結果を追跡し、クライアントコンピュータシステムに関する報告を管理者に提供してもよい。
【0048】
ブロック760において、管理コンピュータシステム20および/またはクライアントコンピュータシステム30は、ソフトウェア脆弱性の識別の正当性を検証するように構成される。いくつかの実施形態では、検証プロセスは、構文応答および/または照合選択をチェックすることを含んでもよい。シミュレーションまたは試験セッションの完了時またはその間に、管理コンピュータシステム20は、複数のクライアントコンピュータシステム30の各クライアントコンピュータシステム30のスコアを生成し、報告し得る。その後、管理コンピュータシステム20は、クライアントコンピュータシステム30の各クライアントコンピュータシステム30のランキングを示す報告をランク付けし、生成し得る。
【0049】
実施形態では、訓練プロセスは反復的である。したがって、1つまたは複数のソフトウェア脆弱性の識別が正しい場合、追加の仮想マシンは、実装され、追加の訓練のためにクライアントコンピュータシステムに割り当てられ得る。例えば、1つまたは複数のソフトウェア脆弱性の識別の正当性の検証が、識別が正しくないことを示すとき、第2の仮想マシンは、仮想マシンに実装された1つまたは複数のソフトウェア脆弱性と類似するように構成された更に第2のソフトウェア脆弱性うちの1つを実装して生成されてもよい。逆に、1つまたは複数のソフトウェア脆弱性の識別の正当性の検証が、識別が正しいことを示すとき、第2の仮想マシンは、仮想マシンに実装された1つまたは複数のソフトウェア脆弱性と類似するように構成された更に第2のソフトウェア脆弱性うちの1つを実装して生成されてもよい。このようにして、正しい識別が行われると、訓練は、新規のシナリオに進み得るが、誤った識別が行われると、訓練は、同様のシナリオを提供し、これにより、特定のソフトウェア脆弱性の識別に関する訓練は、更に改善され得る。
【0050】
本明細書に説明する機能ブロックおよび/またはフローチャート要素は、機械可読命令に変換され得る。非限定的な例として、機械可読命令は、解析されるべき記述テキスト(例えば、ハイパーテキストマークアップ言語、拡張可能マークアップ言語など)、(ii)アセンブリ言語、(iii)コンパイラによってソースコードから生成されたオブジェクトコード、(iv)インタプリタによる実行のために任意の適切なプログラミング言語からの構文を使用して書き込まれたソースコード、(v)ジャストインタイムコンパイラによるコンパイルおよび実行のためのソースコードなど、任意のプログラミングプロトコルを使用して書き込まれてもよい。あるいは、機械可読命令は、フィールドプログラマブルゲートアレイ(FPGA)構成、または特定用途向け集積回路(ASIC)のいずれかを介して実装されたロジックなどのハードウェア記述言語(HDL)、またはそれらの同等物で書き込まれてもよい。したがって、本明細書に説明の機能は、任意の従来のコンピュータプログラミング言語において、予めプログラムされたハードウェア要素として、またはハードウェア構成要素とソフトウェア構成要素との組合せとして、実装されてもよい。
【0051】
ここで、本明細書で説明するように、ソフトウェア脆弱性を実装する仮想マシンを提供するためのシステムおよび方法は、ソフトウェア脆弱性を識別し、対処するAIコンピュータシステムの能力を改善することを理解されたい。より具体的には、仮想マシンを介して試験シナリオを展開することにより、ソフトウェアの脆弱性が訓練中にクライアントコンピュータシステムに悪影響を及ぼすことを防止する。そのような悪影響は、攻撃的サイバー作戦のためにクライアントコンピュータシステムを開くことを含み得る。更に、クライアントコンピュータシステムがオンラインである間に訓練が行われてもよいことを理解されたい。更に、コンピュータシステム上の仮想マシンのシミュレーションを監視することにより、管理コンピュータシステムは、クライアントコンピュータシステム、および/またはクライアントコンピュータシステムによって実装されたAIコンピュータシステムによる、ソフトウェア脆弱性の識別の正当性を検証することを可能にする。それに応答して、管理コンピュータシステムは、クライアントコンピュータシステム、および/またはクライアントコンピュータシステムによって実装されるAIコンピュータシステムによる、ソフトウェア脆弱性の識別を改善するために、さらなる様々な仮想マシンを生成し得る。
【0052】
本開示の範囲から逸脱することなく、様々な修正および変形を行い得ることに留意されたい。本開示の精神および物質を組み込んだ開示された実施形態の修正、組合せ、部分的組合せおよび変形が当業者に想起され得るので、本開示は、添付の特許請求の範囲およびそれらの均等物の範囲内のすべてを含むと解釈されるべきである。
【国際調査報告】