(58)【調査した分野】(Int.Cl.,DB名)
前記監視エージェントは、前記第1の仮想マシンを管理するハイパーバイザと通信して、前記第1の仮想マシンによる前記複数のリソースの前記使用量を監視する、請求項1に記載のセキュリティ事象検出方法。
監視エージェントは、前記第1の仮想マシンのメモリ使用量、記憶ディスク使用量、ネットワーク使用量、及びハードウェア使用量のうちの少なくとも1つを監視する、請求項1〜請求項4の何れか1項に記載のセキュリティ事象検出方法。
前記リソースモニタは、前記第1の仮想マシンを管理するハイパーバイザと通信して、前記第1の仮想マシンの前記複数のリソースの前記使用量を監視するものである、請求項8に記載の装置。
リソースモニタは、前記第1の仮想マシンのメモリ使用量、記憶ディスク使用量、ネットワーク使用量、及びハードウェア使用量のうちの少なくとも1つを監視するものである、請求項8〜請求項10の何れか1項に記載の装置。
前記命令は、実行されるときに、前記監視エージェントに、前記第1の仮想マシンを管理するハイパーバイザとさらに通信して、前記第1の仮想マシンの前記複数のリソースの前記使用量を監視させる、請求項14に記載の有形コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0007】
本開示は、概してプロセス制御システムに関し、より具体的には、仮想マシンイントロスペクションを通じたセキュリティ事象検出のための方法及び装置に関する。プロセス制御システムは、該制御システム内に配置されるフィールドデバイスを管理するルーティン、制御ストラテジ、及び/またはアルゴリズムを実施するために制御装置と相互作用するプロセス制御アプリケーションを実行する、ワークステーション及び/またはサーバを含む。フィールドデバイスは、例えば、弁、弁保定装置、スイッチ、及び伝送器であってもよく、弁の開閉及びプロセス制御パラメータの測定などのプロセス制御機能を実施してもよい。フィールドデバイスの管理に加えて、制御装置は、フィールドデバイスから受信する情報に基づいて、プロセスデータ(例えば、プロセス制御情報)を生成してもよい。プロセスデータは、プロセス統計値、アラーム、監視情報、プロセス動向情報、診断情報、フィールドデバイス状態情報、及び/またはフィールドデバイスからのメッセージを含んでもよい。
【0008】
プロセス制御システムは、多くの場合、プロセス制御システムに関わるワークステーション及び/またはサーバを悪意のある攻撃から保護するために、例えば、アンチウイルスソフトウェア、アプリケーションホワイトリスト登録、ソフトウェアファイアウォール、及び/またはオペレーティングシステムセキュリティメカニズムなどの、セキュリティユーティリティに依存する。しかしながら、かかるセキュリティユーティリティは、すり抜けられる可能性がある。現在のマルウェアは、アンチウイルスユーティリティを無効にするか、またはそれから逃れ、自身を能動的に動作するプロセス内に挿入することができる。例えば、マルウェアは、ルートキット(例えば、オペレーティングシステムのカーネルに影響を及ぼすマルウェア)及びブートキット(例えば、コンピュータのブートプロセスに影響を及ぼすマルウェア)をインストールすることができる。多くの場合、ルートキット及びブートキットは、その活動を能動的に隠し、セキュリティユーティリティの前にロードされる。これは、マルウェアが自身を確立し、検出されることなく危険に晒されたコンピュータ上に留まることを可能にする。いくつかの実施例では、マルウェアは、危険に晒されたシステムへのバックドアを確立し、攻撃者が通常のセキュリティユーティリティ及び認証証明書(例えば、ユーザ名及びパスワード、認証コードなど)をすり抜けることを可能にする。いくつかの実施例では、マルウェアは、攻撃者がそのマルウェアを使用してより大きな目的を達成する準備ができるまで、休止したまま検出されずにいることができる。
【0009】
下記に説明される通り、プロセス制御アプリケーションは、仮想化環境(例えば、仮想マシン、コンテナなど)内で実行される。仮想化環境では、管理装置(例えば、ハイパーバイザ、コンテナデーモンなど)は、仮想化環境を管理し(例えば、展開する、終了させる、監視するなど)、仮想化環境の複数のインスタンスが同一の物理的ハードウェア上で実行することを可能にする。それに加えて、管理装置は、仮想化環境を物理的ハードウェアから隔離する。管理装置は、仮想ハードウェア(例えば、仮想プロセッサ(単数または複数)、仮想メモリ、仮想記憶など)、及びそれらの仮想リソースへの加減されたアクセスを作成する。管理装置は、仮想化環境の活動内への可視性を可能にする。例えば、管理装置は、仮想化環境内のメモリ、記憶ディスク、ネットワーク、及び周辺ハードウェア(例えば、ユニバーサルシリアルバス(USB)ドライブ、CD/DVDドライブなど)などの使用へのアクセスを有する。仮想化環境は、仮想リソースを使用するゲストオペレーティングシステム(OS)を実行する。ゲストOSは、あたかもそれが自然にインストールされているかのように実行する(例えば、物理的ハードウェアへの直接的なアクセスを有する)。ゲストOSにインストールされたマルウェアは、同一の仮想化環境内で実行しているセキュリティユーティリティを無効にする場合がある。しかしながら、かかる構成では、マルウェアは、異なる仮想化環境で実行している管理装置またはプロセス制御アプリケーションには影響を及ぼすことができない。
【0010】
その活動を遮蔽するようにプログラムされたマルウェアを検出するために、監視エージェントが管理装置によって展開される。下記に説明される通り、監視エージェントは、その監視エージェントが監視している仮想化環境とは分離している。例えば、監視エージェントは、監視されている仮想マシンまたはコンテナとは異なる仮想マシン、コンテナ、または物理的マシン内で実行している。監視エージェントは、1つ以上の仮想化環境の活動を監視する。かかる様式では、仮想化環境内のマルウェアは、監視エージェントに影響を及ぼすことができない。いくつかの実施例では、監視エージェントは、管理装置に組み込まれる。
【0011】
下記に説明されるいくつかの実施例では、監視エージェントは、イントロスペクションを使用して仮想化環境を監視する。通常、仮想化環境はホスト上で実行している他のプロセスから隔離されているため、仮想化リソースの使用に関する情報は、他のプロセスに利用可能ではない。イントロスペクションは、仮想化環境の外部のアプリケーション(例えば、監視エージェント)が、管理装置による仮想化リソースの使用量を調査するためのアクセスを認められているプロセスである。イントロスペクションは、監視エージェントが、ゲストOS及び/またはゲストOSによって実行されるプロセス制御アプリケーションの状態(例えば、メモリ値、プロセッサレジスタなど)を分析することを可能にする。イントロスペクションを通じて、監視エージェントは、仮想化環境のリソース使用量を監視する。例えば、監視エージェントは、メモリ使用量、記憶ディスク使用量、ネットワーク使用量、及び周辺ハードウェア使用量などを監視することができる。
【0012】
監視エージェントは、リソース使用量をセキュリティ事象パターンと比較する。セキュリティ事象パターンは、マルウェアが仮想化環境にインストールされている可能性を示す、ゲストOSによるリソースの使用を定義する。例えば、セキュリティ事象パターンは、アドレス解決プロトコル(ARP)テーブルが汚染されていることを示すネットワーク使用量を検出するように定義され得る。かかるシナリオでは、ARPテーブルは、ネットワーク上のコンピュータのアドレスの短期メモリである。ARPテーブルを汚染することによって、マルウェアは、例えば、ネットワーク上での介入者攻撃を促進するために、コンピュータのARPテーブル上に偽のアドレスを置くことができる。汚染されたARPテーブルを検出するためのセキュリティ事象パターン例としては、インターネットプロトコル(IP)アドレスマッピングへの以前の値とは異なる媒体アクセス制御(MAC)アドレスと共に伝送されたイーサネットフレームを検出することが挙げられ得る。
【0013】
下記に説明される通り、セキュリティ事象パターンは、異なる深刻度のレベルに関連付けられる。深刻度のレベルは、マルウェアが仮想化環境にインストールされている可能性及び/または検出されたマルウェアの有害性を示す、記号表示及び/または数値であり得る。例えば、セキュリティ事象パターンは、高、中、及び/または低深刻度に関連付けられ得る。例えば、無許可のUSBデバイスはマルウェアのソースであり得るため、USBデバイスの挿入を検出するセキュリティ事象パターンは、低深刻度レベルに関連付けられ得る。別の例として、ネットワークを通じて仮想化環境に接続する多数の試みを検出するセキュリティ事象パターンは、中深刻度レベルに関連付けられ得る。別の例として、特定のメモリ値が仮想化環境の初期インスタンス化と異なることを検出するセキュリティ事象パターンは、高深刻度レベルに関連付けられ得る。
【0014】
下記に説明される通り、監視エージェントは、検出されるセキュリティ事象パターンの深刻度に基づいて、1つ以上の措置を開始し得る。例えば、低深刻度のセキュリティ事象パターンに関して、監視エージェントは、警告をワークステーション上に表示させる、及び/または警告メッセージを管理者に送信させてもよい。別の例として、中深刻度のセキュリティ事象パターンに関して、監視エージェントは、仮想化環境を、読み取り専用モードにさせてもよい(例えば、プロセス制御アプリケーションは、フィールドデバイスの状態を読み取ることのみできるが、そのフィールドデバイスにコマンドを発行することはできない)。別の例として、深刻なセキュリティ事象パターンに関して、監視エージェントは、代替仮想環境を展開させ、影響を受けた仮想環境を終了させてもよい。
【0015】
下記に説明される通り、いくつかの実施例では、監視エージェントは、仮想化環境に整合性レベル(例えば、信用レベル)を割り当てる。整合性レベルは、仮想化環境が危険に晒されている可能性を表す。監視エージェントがセキュリティ事象パターンを検出すると、監視エージェントは、そのセキュリティ事象パターンに関連付けられる深刻度に応じて整合性レベルを調節する。例えば、仮想化環境が初めに展開されるとき、監視エージェントは、仮想化環境に100の整合性レベルを割り当てることができる。かかる例では、低レベルのセキュリティ事象パターンの検出に際して、監視エージェントは、整合性レベルを設定した量(例えば、1、5、10など)だけ引き下げることができる。いくつかの実施例では、検出されるセキュリティ事象パターンの効果は、時間と共に減衰する。例えば、監視エージェントは、低深刻度のセキュリティ事象パターンの整合性レベルに対する効果を、低深刻度のセキュリティ事象パターンが検出された後、24時間後に除去してもよい。いくつかの実施例では、管理者は、1つ以上の整合性レベル閾値を設定し、整合性レベル閾値を満たす整合性レベルに応答して実行するように、監視エージェントのためにセキュリティ措置を定義する。例えば、100中75の整合性レベル閾値において、監視エージェントは、管理者に警告を送信してもよい。別の例として、100中50の整合性レベル閾値において、監視エージェントは、仮想化環境内で実行しているアプリケーションが、フィールドデバイスの状態を読み取ることのみできるが、フィールドデバイスまたは外部コンピュータにコマンドを送信することはできないように、仮想化環境を設定してもよい。別の例として、100中25の整合性レベル闘値において、監視エージェントは、代替仮想環境を展開させ、影響を受けた仮想環境を終了させてもよい。
【0016】
下記に説明される通り、管理者は、例えば、メモリ使用量、記憶ディスク使用量、ネットワーク使用量、及びハードウェア使用量に基づいて、セキュリティ事象パターン定義する。メモリ使用量の例としては、揮発性メモリ及び不揮発性メモリからの読み取り及び/または揮発性メモリ及び不揮発性メモリへの書き込み、メモリに記憶される値、ならびに/またはメモリへのアクセスに関連する機能の使用(例えば、メモリ割り当て、メモリゼロ化など)が挙げられる。記憶ディスク使用量の例としては、記憶ディスクへの読み取り及び書き込み、記憶ディスクに記憶される値(例えば、マスターブートレコード、レジストリファイルなど)、ならびにメモリへのアクセスに関連する機能の使用(例えば、ディレクトリ管理、ボリューム管理など)が挙げられる。ネットワーク使用量の例としては、ネットワーク接続上で送信及び受信されるメッセージ、接続試行などが挙げられる。ハードウェア使用量の例としては、プロセッサ使用量、ハードウェア割り込み、周辺ハードウェアの検出、キーボード入力などが挙げられる。いくつかの実施例では、管理者は、セキュリティ事象パターンの検出に応答して実施するように、監視エージェントのために措置を定義する。それに加えて、いくつかの実施例では、管理者は、セキュリティ事象パターンの検出が仮想化環境の整合性レベルに対して有する効果を定義する。
【0017】
図1は、本明細書に説明されるセキュリティ事象検出システムと共に使用可能なプロセス制御システム例100を例示する。システム例100は、フィールドバス102(HART(登録商標)及び/またはFOUNDATION(商標)フィールドバスなど)、高速分散バス、内蔵先行制御、ならびに先行ユニット及びバッチ管理を含む、1つ以上のスマートプラント性能を統合するプラントプロセス制御アーキテクチャを用いる。プロセス制御システム100内のフィールドバスネットワークフィールドデバイス104は、デバイスの管理、構成、監視、及び診断などを含む多様なアプリケーションのための下部構造を提供する。
【0018】
プロセス制御システム例100は、フィールドデバイス例104、制御装置例106、I/Oデバイス例108、ワークステーション例110、及びサーバ例112を含む。フィールドデバイス例104は、プロセスを制御及び/または監視し、また例えば、弁、センサ、近接スイッチ、モータ始動装置、ドライブなどを含むことができる。例示される実施例では、フィールドデバイス104は、フィールドバス102を介してI/Oデバイス108に通信可能に連結される。I/Oデバイス例108は、フィールドデバイス例104との通信を促進する。I/Oデバイス例108は、多様なフィールドデバイス104と(例えば、デジタル及び/またはアナログ通信を介して)通信するための多様なモジュールを支持する。例えば、I/Oデバイス108は、3線式温度プローブと連動するためのアナログモジュール、及びデジタル弁制御装置と連動するためのデジタルモジュールを有してもよい。I/Oデバイス例108は、フィールドデバイス104からデータを受信し、そのデータを、制御装置例106によって処理され得る通信に変換する。それに加えて、I/Oデバイス例108は、制御装置例106からのデータ及び/または通信を、フィールドデバイス104によって処理され得るフォーマットに変換する。いくつかの実施例では、I/Oデバイス108及び制御装置(単数または複数)106は、1つのユニットに組み合わされる。
【0019】
制御装置例106は、有線または無線ネットワーク(例えば、LAN、WAN、インターネットなど)を介してワークステーション110及び/またはサーバ112に連結される。制御装置例106は、ルーティンを制御して、例えば、監視アプリケーション、アラーム管理アプリケーション、プロセス動向及び/または履歴アプリケーション、診断アプリケーション、バッチプロセス及び/またはキャンペーン管理アプリケーション、統計アプリケーション、ストリーミング動画アプリケーション、先行制御アプリケーション、安全計装アプリケーション、事象アプリケーションなどを含むプロセス制御アプリケーションのために、フィールドデバイス104からの出力に基づいてプロセスデータを算出する。制御装置106は、周期的な間隔で、及び/またはプロセスデータの処理もしくは生成時に、プロセスデータをワークステーション110及び/またはサーバ112に転送する。制御装置106によって伝送されるプロセスデータとしては、プロセス制御値、データ値、アラーム情報、テキスト、ブロックモード要素状態情報、診断情報、エラーメッセージ、パラメータ、事象、及び/またはデバイス識別子が挙げられ得る。
【0020】
図1に例示される実施例では、ワークステーション110及び/またはサーバ112は、プロセス制御アプリケーションを実行する。プロセス制御アプリケーションは、制御装置例106と通信して、フィールドデバイス104を監視、制御、及び/または診断する。例えば、プロセス制御アプリケーションは、制御自動化、プロセス制御システム100の図形表示、変化管理、プロセス制御編集、データ収集、データ分析などを含んでもよい。いくつかの実施例では、ワークステーション110は、プロセスデータを図形形式にして、ワークステーション110のユーザが、フィールドデバイス104によって生成されるプロセスデータを(アプリケーションを介して)図形的に見ることを可能にするために、ユーザインターフェースを介してプロセス制御アプリケーションを表示する。いくつかの実施例では、プロセス制御アプリケーションがサーバ112上で実行しているとき、操作者は、プロセス制御アプリケーションにアクセスするためにワークステーション(例えば、ワークステーション110)からサーバ112へのリモート接続を確立することができる。
【0021】
いくつかの実施例では、セキュリティ及び拡張性を改善するために、プロセス制御アプリケーションは、ワークステーション110及び/またはサーバ112上の仮想化環境(例えば、仮想マシン、コンテナなど)内のゲストオペレーティングシステム(OS)によって実行されてもよい。下記にさらに詳細に開示される通り、仮想化環境は、ゲストOSによって実行されるプロセス制御アプリケーションをワークステーション110及び/またはサーバ112の物理的ハードウェアから隔離する。仮想化環境でのプロセス制御アプリケーションの実行はまた、プロセス制御アプリケーションが互いに隔離されることを可能にする。例えば、あるプロセス制御アプリケーションが危険に晒されている(例えば、セキュリティ事象を有する)場合、異なる仮想化環境内の同一のワークステーション110及び/またはサーバ112上で実行している他のプロセス制御アプリケーションは、影響を受けないままである。
【0022】
図2は、プロセス制御アプリケーション204を有する仮想マシン202上でセキュリティ事象を検出するためのシステム例200を例示する。例示される実施例では、システム200は、ホスト206(例えば、
図1のワークステーション110、サーバ112、制御装置108、I/Oデバイス108など)上で実行する。ホスト206は、物理的ハードウェア208(例えば、プロセッサ(単数または複数)、メモリ、記憶装置、周辺デバイス、ネットワークアクセスなど)及びハイパーバイザ210を含む。ハイパーバイザ例210は、物理的ハードウェア208を管理し、複数の仮想マシン202がホスト206上で実行することを可能にする仮想化ハードウェア(例えば、仮想化プロセッサ(単数または複数)、仮想化メモリ、仮想化記憶など)を作成する。ハイパーバイザ例210は、仮想マシン例(単数または複数)202を隔離し、物理的ハードウェア例208へのアクセスを制御する。かかる様式では、仮想マシン202上で実行しているゲストOS212(例えば、Windows(登録商標)、Linux、UNIXなど)を危険に晒すセキュリティ事象が検出されると、他の仮想マシン及び/または物理的リソース208は、保護される。
【0023】
例示される実施例では、監視エージェント214は、システム200内で動作する。監視エージェント例214は、セキュリティ事象パターンを検出するように構造化される。セキュリティ事象パターンは、マルウェアがゲストOS212上に存在している可能性を示す、メモリ使用量216、記憶ディスク使用量218、ネットワーク使用量220、及び/またはハードウェア使用量222のパターンである。監視エージェント例214は、仮想マシン例202から分離しており、その結果、ゲストOS例212上に存在するマルウェアは、監視エージェント214に影響を及ぼすことができない。例えば、監視エージェント214は、プロセス制御アプリケーション204とは異なる仮想マシンまたは異なるコンテナ内で実行していてもよい。いくつかの実施例では、監視エージェント214は、ハイパーバイザ210内に統合される。
【0024】
監視エージェント例214は、仮想マシン202のメモリ使用量216、記憶ディスク使用量218、ネットワーク使用量220、及び/またはハードウェア使用量222への即時アクセスを促進するイントロスペクション機能を含む。イントロスペクション機能は、監視エージェント214がハイパーバイザ210から仮想マシン202に関する情報を要求することを可能にする。ハイパーバイザ210は仮想リソースを作成及び/または維持するため、イントロスペクション機能は、監視エージェント214が、監視エージェント214が仮想マシン202によって使用される物理的リソースの内容及び使用量を調査し得るように、仮想リソースを物理的リソース208に関連付けることを可能にする。例えば、ハイパーバイザ210は、仮想メモリを物理的メモリにマッピングする仮想メモリページテーブルを維持し得る。かかる実施例では、監視エージェント214が仮想マシン202によって使用される仮想メモリを監視するとき、イントロスペクション機能は、監視エージェント214が、物理的メモリ内のどの場所が仮想マシン202によって使用されているかを知るために仮想メモリページテーブルにアクセスすることを可能にする。
【0025】
図2に例示される実施例では、監視エージェント214は、メモリ使用量216、記憶ディスク使用量218、ネットワーク使用量220、及び/またはハードウェア使用量222を即時に監視して(例えば、リソース使用量216〜222は、その発生の数秒以内に監視される)、マルウェアが仮想マシン202にインストールされているという推測をもたらすセキュリティ事象パターンを検出する。例えば、リソースモニタ214は、記憶ディスク上のマスターブートレコードの変化を、その変化の発生の直後に検出することができる。いくつかの実施例では、監視エージェント214は、別個の事象を検出する。例えば、監視エージェント214は、特定のメモリ値がいつ変化するかを検出することができる。いくつかの実施例では、監視エージェント214は、連続的な事象を検出する。例えば、監視エージェント214は、イーサネットフレームを監視して、ARPテーブルの汚染を検出することができる(例えば、インターネットプロトコル(IP)アドレスマッピングへの以前の値とは異なる媒体アクセス制御(MAC)アドレスを有するイーサネットフレームを検出する)。
【0026】
いくつかの実施例では、監視エージェント214は、管理者と通信して、セキュリティ事象パターンが検出されると管理者に警告する、及び/または特定の仮想マシン202の整合性レベルを通信する。いくつかの実施例では、監視エージェント214は、ハイパーバイザ210と通信して、検出されたセキュリティ事象パターンへの応答を開始する。例えば、特定のセキュリティ事象パターンに応答して、監視エージェント214は、仮想マシン202上で実行しているプロセス制御アプリケーション204が、フィールドデバイス104から状態更新を受信することはできるが、プロセス制御アプリケーション204が、フィールドデバイス104にコマンドを発行するか、または他のワークステーション及び/またはサーバと通信することはできないように、影響を受けた仮想マシン202に入力されるネットワークトラフィックのみを可能にするようにハイパーバイザ210にコマンドすることができる。
【0027】
いくつかの実施例では、監視エージェント214は、時折(例えば、周期的に、非周期的になど)、仮想マシン202のスナップショットを取得させる。スナップショットは、特定の時点の仮想マシン202の状態(例えば、ディスクデータ、メモリ値、構成など)のコピーである。スナップショットは、将来、仮想マシン202をキャプチャした状態に戻すために使用することができる。いくつかの実施例では、スナップショットは、(例えば、管理者によって)予定されてもよい。いくつかのかかる実施例では、監視エージェント214は、特定の深刻度(例えば、中深刻度、高深刻度など)のセキュリティ事象パターンが検出された、及び/または仮想マシン202の整合性レベルが特定の閾値を下回る場合に、スナップショットを中止または遅延してもよい。いくつかの実施例では、監視エージェント214は、整合性レベルが閾値を上回る場合にスナップショットを取得させてもよい。
【0028】
いくつかの実施例では、深刻なセキュリティ事象パターンの検出に応答して、及び/または仮想マシン202の整合性レベルが閾値を下回る場合に、監視エージェント214は、新たな仮想マシン202をハイパーバイザ210によって展開させることができる。いくつかの実施例では、新たな仮想マシン202は、ゲストOS204のクリーンインストールに基づく。いくつかの実施例では、新たな仮想マシン202は、セキュリティ事象が検出される前の仮想マシン202のスナップショットに基づく。いくつかのかかる実施例では、機能性(例えば、フィールドデバイス104、通信表示デバイスなどとの通信)が、新たな仮想マシン202に移動される。いくつかの実施例では、新たな仮想マシン202がフィールドデバイス104と通信した後、監視エージェント214は、危険に晒されている仮想マシン202を終了させる。
【0029】
図3は、セキュリティ事象を検出するための
図2の監視エージェント例214の実装例を例示する。例示される実施例では、監視エージェント214は、リソースモニタ300、セキュリティ事象ハンドラ302、セキュリティ事象パターン管理装置304、及びセキュリティ事象パターンデータベース306を含む。リソースモニタ例300は、仮想マシン202のメモリ使用量216、記憶ディスク使用量218、ネットワーク使用量220、及び/またはハードウェア使用量222を監視する。例示される実施例では、リソースモニタ300は、リソース216〜222が仮想マシン202によって使用されている際にリソース使用量を監視する。リソースモニタ例300は、セキュリティ事象パターンデータベース306からセキュリティ事象パターンを検索して、リソース使用量216〜222のどの態様を監視するかを決定する。例えば、セキュリティ事象パターンがARPテーブルを監視するように定義される場合、リソースモニタ300は、ネットワーク使用量220を監視して、(例えば、ARPテーブルが汚染されたことを示す)インターネットプロトコル(IP)アドレスマッピングへの以前の値とは異なる媒体アクセス制御(MAC)アドレスと共に伝送されたイーサネットフレームを検出する。リソース使用量216〜222がセキュリティ事象パターンを満たす場合、リソースモニタ例300は、セキュリティ事象ハンドラ例302に検出されたセキュリティ事象を知らせる。
【0030】
例示される実施例では、セキュリティ事象ハンドラ302は、セキュリティ事象パターンを検出するリソースモニタ300に応答してセキュリティ措置を実施するように構造化される。セキュリティ措置は、監視エージェント214が、セキュリティ事象パターンに定義される、及び/または検出されたセキュリティ事象パターンの深刻度レベルによって定義される通りに実施するための措置である。いくつかの実施例では、セキュリティ措置は、セキュリティ事象パターン及び/または深刻度レベルが定義されるときに、管理者308によって定義される。例示される実施例では、セキュリティ事象ハンドラ302は、管理者308と通信する。いくつかの実施例では、セキュリティ事象ハンドラ302は、管理者308に通知を送信する。いくつかの実施例では、通知は、検出されたセキュリティ事象パターン及びタイムスタンプに関する情報を含む。いくつかの実施例では、セキュリティ事象ハンドラ302は、管理者302に、セキュリティ事象パターンが検出されたことを通信システム(例えば、電子メール、テキストメッセージ、音声メッセージなど)を介して通知する。
【0031】
図3に例示される実施例では、セキュリティ事象ハンドラ302は、ハイパーバイザ210と通信する。いくつかの実施例では、セキュリティ事象ハンドラ302は、仮想マシン202による物理的リソース208(
図2)へのアクセスを制限するように、ハイパーバイザ210に要求を発行する。例えば、セキュリティ事象ハンドラ302は、周辺デバイス(例えば、USBドライブ、ディスクドライブなど)へのアクセスを防止するように、またはネットワークデバイス上の出力トラフィックを防止するように、要求を発行することができる。いくつかの実施例では、セキュリティ事象ハンドラ302は、仮想マシン202の新たなコピーが展開され、フィールドデバイス104、制御装置106、及び/またはI/Oデバイス108との通信が新たな仮想マシン202に移動され、古い仮想マシン202が終了されることを要求することができる。
【0032】
いくつかの実施例では、セキュリティ事象ハンドラ302は、仮想マシン202の整合性レベルを管理する(例えば、監視する、調節するなど)ことができる。整合性レベルは、仮想マシン202がマルウェアによって危険に晒されている可能性を表す。いくつかの実施例では、セキュリティ事象ハンドラ302がリソースモニタ300によって検出されるセキュリティ事象パターンを取り扱うときに、セキュリティ事象ハンドラ302は、仮想マシン202の整合性レベルを調節する。いくつかの実施例では、整合性レベルに対する効果は、セキュリティ事象パターンに関連付けられる深刻度に依存する。例えば、仮想マシン202の整合性レベルは、初めに100に設定され得る。かかる実施例では、低深刻度に関連付けられるセキュリティ事象パターンがリソースモニタ300によって検出されると、セキュリティ事象ハンドラ302は、仮想マシン202の整合性レベルを95に引き下げることができる。管理者308は、整合性レベル閾値及び対応するセキュリティ措置を定義することができる。例えば、管理者308は、仮想マシン202の整合性レベルが75を下回るときにセキュリティ事象ハンドラ302が警告する(例えば、警告メッセージを表示する、メッセージ(例えば、電子メール、ページ、ショートメッセージサービスメッセージ(SMS)など)を送信する)ように、整合性レベル閾値を設定することができる。いくつかの実施例では、セキュリティ事象ハンドラ302は、検出されたセキュリティ事象の深刻度に基づいて、一定時間後に特定の検出されたセキュリティ事象の効果を逆転する(例えば、仮想マシン202の整合性レベルを引き上げるなど)。例えば、仮想マシン202の整合性レベルに対する低深刻度のセキュリティ事象の効果は、24時間後に取り除かれてもよい。
【0033】
図3の例示される実施例では、セキュリティ事象管理装置304は、セキュリティ事象パターンデータベース306内でセキュリティ事象パターンを管理する(例えば、作成する、消去する、修正するなど)。
図4及び5に関連して下記により詳細に説明される通り、セキュリティ事象管理装置例304は、管理者308が、セキュリティ事象パターン及び/もしくはセキュリティ措置を定義する、既存のセキュリティ事象パターン及び/もしくはセキュリティ措置を修正する、ならびに/または既存のセキュリティ事象パターン及び/もしくはセキュリティ措置を消去することを可能にする、インターフェースを提供する。
【0034】
図2の監視エージェント214を実装する様式例が
図3に例示されているが、
図3に例示される要素、プロセス、及び/またはデバイスのうちの1つ以上は、組み合わされる、分割される、再配置される、省略される、取り除かれる、及び/または任意の他の方法で実装されてもよい。さらに、リソースモニタ例300、セキュリティ事象ハンドラ例302、セキュリティ事象パターン管理装置例304、及び/またはより一般的には
図2の監視エージェント例214は、ハードウェア、ソフトウェア、ファームウェア、ならびに/またはハードウェア、ソフトウェア、及び/もしくはファームウェアの任意の組み合わせによって実装されてもよい。したがって、例えば、リソースモニタ例300、セキュリティ事象ハンドラ例302、セキュリティ事象パターン管理装置例304、及び/またはより一般的には
図2の監視エージェント例214のうちのいずれかは、1つ以上のアナログもしくはデジタル回路(単数もしくは複数)、論理回路、プログラム可能プロセッサ(単数もしくは複数)、特定用途向け集積回路(単数もしくは複数)(ASIC(単数もしくは複数))、プログラム可能論理デバイス(単数もしくは複数)(PLD(単数もしくは複数))、及び/またはフィールドプログラム可能論理デバイス(単数もしくは複数)(FPLD(単数もしくは複数))によって実装されてもよい。本特許を請求する装置またはシステムのいずれかが純粋にソフトウェア及び/またはファームウェア実装を網羅するように読み取ると、リソースモニタ例300、セキュリティ事象ハンドラ例302、及び/またはセキュリティ事象パターン管理装置例304のうちの少なくとも1つは、ソフトウェア及び/またはファームウェアを記憶する有形コンピュータ可読記憶デバイスまたは記憶ディスク、例えば、メモリ、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、ブルーレイディスクなどを含むように本明細書に明白に定義される。またさらに、
図2の監視エージェント例214は、
図3に例示されるものに加えてか、もしくはそれらの代わりに、1つ以上の要素、プロセス、及び/もしくはデバイスを含んでもよく、ならびに/または例示される要素、プロセス、及びデバイスのいずれかもしくは全てのうちの複数を含んでもよい。
【0035】
図4は、セキュリティ事象を検出するために
図2及び3の監視エージェント例214によって使用されるセキュリティ事象パターンを定義するために使用され得る、インターフェース例400を例示する。いくつかの実施例では、インターフェース400は、セキュリティ事象管理装置例304(
図3)によって提供される。インターフェース例400は、セキュリティ事象パターンデータベース例306(
図3)に記憶されるセキュリティ事象パターンを管理する(例えば、作成する、消去する、修正するなど)ために使用される。例示される実施例では、インターフェース400は、名称フィールド例402、深刻度フィールド例404、カテゴリフィールド例405、及び条件フィールド例406を含む。名称フィールド例402は、管理者例308(
図3)がセキュリティ事象パターンに固有の識別子を割り当てるのを促進するために提供される。深刻度フィールド例404は、管理者例308が、マルウェアが仮想マシン202(
図2)上にインストールされている可能性を示す深刻度レベル(例えば、高、中、低、危機的、緊急、重篤、最小など)を割り当てるのを促進するために提供される。
【0036】
例示される実施例では、カテゴリフィールド405は、セキュリティ事象パターンが関連するリソースの種類を示すために提供される。例えば、カテゴリフィールド405は、特定のセキュリティ事象パターンがメモリ使用量216(
図2)に関連していることを示すことができる。条件フィールド例406は、管理者例308が、どの条件がメモリ使用量216、記憶ディスク使用量218、ネットワーク使用量220、及び/またはハードウェア使用量222(
図2)に関連するかを定義し、合致する場合、セキュリティ事象パターンを構成する、1つ以上の条件文を作成するのを促進するために提供される。いくつかの実施例では、条件文は、監視エージェントがメモリ使用量216、記憶ディスク使用量218、ネットワーク使用量220、及び/またはハードウェア使用量222の監視を通じてアクセスを有する特性に関連する、ブール文及び/または閾値である。
【0037】
図5は、セキュリティ事象パターンの検出に応答するために
図2及び3の監視エージェント例によって使用される措置を定義するために使用され得る、インターフェース例500を例示する。いくつかの実施例では、インターフェース500は、セキュリティ事象管理装置例304(
図3)によって提供される。インターフェース例500は、管理者(例えば、
図3の管理者308)が、セキュリティ事象パターンを検出するリソースモニタ300(
図3)に応答してセキュリティ事象ハンドラ例302(
図3)によって実施されるための措置を定義するのを促進する。例示される実施例では、セキュリティハンドラ302によって実施されるための措置は、深刻度に基づいて定義される。例えば、中深刻度のセキュリティ事象パターンの検出に応答して、セキュリティハンドラ302は、フィールドデバイス104にコマンドを発行するプロセス制御アプリケーション204(
図2)の能力を制限することができる。いくつかの実施例では、セキュリティハンドラ302によって実施されるための措置は、特定のセキュリティ事象パターンに基づいてもよい。
【0038】
図2及び3の監視エージェント例214を実装するための方法例を表すフローチャートが、
図6及び/または7に示される。この実施例では、方法は、プロセッサ、例えば、
図8に関連して下記に説明されるプロセッサプラットフォーム例800に示されるプロセッサ812などによる実行のためのプログラムを含む機械可読命令を使用して、実装することができる。プログラムは、プロセッサ812に関連付けられるCD−ROM、フロッピーディスク、ハードドライブ、デジタル多用途ディスク(DVD)、ブルーレイディスク、またはメモリなどの有形コンピュータ可読記憶媒体上に記憶されるソフトウェアに具現化されてもよいが、プログラム全体及び/またはその一部は、別法として、プロセッサ812以外のデバイスによって実行される、及び/またはファームウェアもしくは専用ハードウェアに具現化されてもよい。さらに、プログラム例は、
図6及び/または7に例示されるフローチャートを参照して説明されるが、監視エージェント例214を実装する多数の他の方法が、別法として使用されてもよい。例えば、ブロックの実行の順序は、変更されてもよく、及び/または説明されるブロックのうちのいくつかは、変更されるか、取り除かれるか、もしくは組み合わされてもよい。
【0039】
上述の通り、
図6及び/または7の方法例は、例えば、ハードディスクドライブ、フラッシュメモリ、読み取り専用メモリ(ROM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、キャッシュ、ランダムアクセスメモリ(RAM)、及び/または、情報が任意の期間(例えば、一時的にバッファリングするため、及び/または情報をキャッシュするために、長期間、永久的に、短期間)記憶される任意の他の記憶デバイスもしくは記憶ディスクなどの有形コンピュータ可読記憶媒体上に記憶される、コード化された命令(例えば、コンピュータ及び/または機械可読命令)を使用して、実装することができる。本明細書で使用される、有形コンピュータ可読記憶媒体という用語は、任意の種類のコンピュータ可読記憶デバイス及び/または記憶ディスクを含み、伝搬信号を除外し、伝送媒体を除外するように明白に定義される。本明細書で使用される、「有形コンピュータ可読記憶媒体」及び「有形機械可読記憶媒体」は、互換的に使用される。それに加えてまたは別法として、
図6及び/または7の方法例は、例えば、ハードディスクドライブ、フラッシュメモリ、読み取り専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、及び/または、情報が任意の期間(例えば、一時的にバッファリングするため、及び/または情報をキャッシュするために、長期間、永久的に、短期間)記憶される任意の他の記憶デバイスもしくは記憶ディスクなどの非一時的コンピュータ及び/または機械可読媒体上に記憶される、コード化された命令(例えば、コンピュータ及び/または機械可読命令)を使用して、実装することができる。本明細書で使用される、非一時的コンピュータ可読媒体という用語は、任意の種類のコンピュータ可読記憶デバイス及び/または記憶ディスクを含み、伝搬信号を除外し、伝送媒体を除外するように明白に定義される。本明細書で使用される、語句「少なくとも」が、請求項の前提部分において移行用語として使用される場合、それは、用語「含む(comprising)」が非限定であるのと同一の様式で非限定である。
【0040】
図6は、セキュリティ事象を検出し、応答するための、
図2及び3の監視エージェントを実装するために使用され得る方法例を表すフロー図である。初めに、リソースモニタ300(
図3)は、プロセス制御アプリケーション204(
図2)を実行している仮想マシン202(
図2)によるリソースの使用量を監視する(ブロック602)。ブロック602におけるリソースの使用量の監視は、
図7と共に下記にさらに説明される。リソースモニタ300は、潜在的セキュリティ事象が検出されるまで、リソース使用量を継続して監視する(ブロック604)。リソースモニタ300は、検出された潜在的セキュリティ事象に深刻度レベルを割り当てた(ブロック606)。いくつかの実施例では、深刻度レベルは、セキュリティ事象パターンデータベース306に記憶されるセキュリティ事象パターンに基づいて割り当てられる。セキュリティ事象ハンドラ302(
図3)は、割り当てられた深刻度レベルに基づいてセキュリティ措置を開始する(ブロック608)。いくつかの実施例では、実施されるためのセキュリティ措置は、管理者308(
図3)によって予め定義される。いくつかの実施例では、セキュリティ事象ハンドラ302は、検出される潜在的セキュリティ事象の深刻度に基づいて、仮想マシン202の整合性レベルを調節する。リソースモニタ300は、仮想マシン202の監視が継続されるべきかどうかを決定する(ブロック610)。仮想マシン202の監視が継続される場合、リソースモニタ300は、潜在的セキュリティ事象を検出するために仮想マシン202によって使用されるリソースの使用量を監視する(ブロック602)。そうではない場合、仮想マシン202の監視は継続されず、方法600は終了する。
【0041】
図7は、
図6のブロック602におけるセキュリティ事象の検出を実装するために実施され得る方法例を表す、フロー図である。初めに、リソースモニタ300(
図3)は、仮想マシン202(
図2)のメモリ使用量216(
図2)を監視し、その使用量をセキュリティパターンと比較する(ブロック700)。リソースモニタ300は、メモリ使用量216が、セキュリティ事象パターンデータベース306(
図3)内のセキュリティ事象パターンに合致するかどうか(例えば、条件を満たす、閾値を満たすなど)を決定する(ブロック702)。いくつかの実施例では、メモリ使用量216は、
図4の種類フィールド405によって示される通り、メモリ使用量に関連するセキュリティ事象パターンデータベース306内のセキュリティ事象パターンと比較される。メモリ使用量216がセキュリティ事象パターンに合致するとリソースモニタ300が決定する場合、リソースモニタ300は、潜在的メモリ関連セキュリティ事象が発生したことを(例えば、セキュリティ事象ハンドラ302に)示す(ブロック703)。
【0042】
リソースモニタ300は、仮想マシン202の記憶ディスク使用量218(
図2)を監視する(ブロック706)。リソースモニタ300は、記憶ディスク使用量218が、セキュリティ事象パターンデータベース306内のセキュリティ事象パターンに合致するかどうか(例えば、条件を満たす、閾値を満たすなど)を決定する(ブロック708)。いくつかの実施例では、記憶使用量218は、種類フィールド405によって示される通り、記憶ディスク使用量に関連するセキュリティ事象パターンデータベース306内のセキュリティ事象パターンと比較される。記憶ディスク使用量218がセキュリティ事象パターンに合致するとリソースモニタ300が決定する場合、リソースモニタ300は、潜在的記憶ディスクセキュリティ事象が発生したことを(例えば、セキュリティ事象ハンドラ302に)示す(ブロック709)。
【0043】
リソースモニタ300は、仮想マシン202のネットワーク使用量220(
図2)を監視する(ブロック710)。リソースモニタ300は、ネットワーク使用量220が、セキュリティ事象パターンデータベース306内のセキュリティ事象パターンに合致するかどうか(例えば、条件を満たす、閾値を満たすなど)を決定する(ブロック712)。いくつかの実施例では、ネットワーク使用量220は、種類フィールド405によって示される通り、ネットワーク使用量に関連するセキュリティ事象パターンデータベース306内のセキュリティ事象パターンと比較される。ネットワーク使用量220がセキュリティ事象パターンに合致するとリソースモニタ300が決定する場合、リソースモニタ300は、潜在的ネットワーク関連セキュリティ事象が発生したことを(例えば、セキュリティ事象ハンドラ302に)示す(ブロック713)。
【0044】
リソースモニタ300は、仮想マシン202のハードウェア使用量222(
図2)を監視する(ブロック714)。リソースモニタ300は、ハードウェア使用量222が、セキュリティ事象パターンデータベース306内のセキュリティ事象パターンに合致するかどうか(例えば、条件を満たす、閾値を満たすなど)を決定する(ブロック716)。いくつかの実施例では、ハードウェア使用量222は、種類フィールド405によって示される通り、ハードウェア使用量に関連するセキュリティ事象パターンデータベース306内のセキュリティ事象パターンと比較される。ハードウェア使用量222がセキュリティ事象パターンに合致するとリソースモニタ300が決定する場合、リソースモニタ300は、潜在的ハードウェア関連セキュリティ事象が発生したことを(例えば、セキュリティ事象ハンドラ302に)示す(ブロック717)。次に、方法700は終了する。
【0045】
図8は、
図6及び/または7の方法ならびに
図2及び3の監視エージェント214を実装するための命令を実行するように構造化される、プロセッサプラットフォーム例800のブロック図である。プロセッサプラットフォーム800は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、または任意の他の種類のコンピューティングデバイスであり得る。
【0046】
例示される実施例のプロセッサプラットフォーム800は、プロセッサ812を含む。例示される実施例のプロセッサ812は、ハードウェアである。例示される実施例では、プロセッサ812は、リソースモニタ例300、セキュリティ事象ハンドラ例302、及びセキュリティ事象パターン管理装置例306を含む。例えば、プロセッサ812は、任意の所望のファミリーまたは製造者からの1つ以上の集積回路、論理回路、マイクロプロセッサ、または制御装置によって実装することができる。
【0047】
例示される実施例のプロセッサ812は、ローカルメモリ813(例えば、キャッシュ)を含む。例示される実施例のプロセッサ812は、バス818を介して揮発性メモリ814及び不揮発性メモリ816を含むメインメモリと通信する。揮発性メモリ814は、同期型動的ランダムアクセスメモリ(SDRAM)、動的ランダムアクセスメモリ(DRAM)、RAMBUS動的ランダムアクセスメモリ(RDRAM)、及び/または任意の他の種類のランダムアクセスメモリデバイスによって実装されてもよい。不揮発性メモリ816は、フラッシュメモリ及び/または任意の他の所望の種類のメモリデバイスによって実装されてもよい。メインメモリ814、816へのアクセスは、メモリ制御装置によって制御される。
【0048】
例示される実施例のプロセッサプラットフォーム800はまた、インターフェース回路820も含む。インターフェース回路820は、例えば、イーサネットインターフェース、ユニバーサルシリアルバス(USB)、及び/またはPCIエクスプレスインターフェースなどの任意の種類のインターフェース標準によって実装されてもよい。
【0049】
例示される実施例では、1つ以上の入力デバイス822が、インターフェース回路820に接続される。入力デバイス(単数または複数)822は、ユーザがデータ及びコマンドをプロセッサ812に入力することを許可する。入力デバイス(単数または複数)は、例えば、音センサ、マイクロフォン、カメラ(静止またはビデオ)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、イソポイント(isopoint)、及び/または音声認識システムによって実装することができる。
【0050】
1つ以上の出力デバイス824もまた、例示される実施例のインターフェース回路820に接続される。出力デバイス824は、例えば、ディスプレイデバイス(例えば、発光ダイオード(LED)、有機発光ダイオード(OLED)、液晶ディスプレイ、ブラウン管ディスプレイ(CRT)、タッチスクリーン、触覚出力デバイス、プリンタ、及び/またはスピーカ)によって実装することができる。したがって、例示される実施例のインターフェース回路820は、典型的にはグラフィックドライバカード、グラフィックドライバチップ、またはグラフィックドライバプロセッサを含む。
【0051】
例示される実施例のインターフェース回路820はまた、ネットワーク826(例えば、イーサネット接続、デジタル加入者線(DSL)、電話線、同軸ケーブル、携帯電話システムなど)を介して外部マシン(例えば、任意の種類のコンピューティングデバイス)とのデータ交換を促進する通信デバイス、例えば、伝送器、受信器、送受信器、モデム、及び/またはネットワークインターフェースカードなども含む。
【0052】
例示される実施例のプロセッサプラットフォーム800はまた、ソフトウェア及び/またはデータを記憶するための1つ以上の大容量記憶デバイス828も含む。かかる大容量記憶デバイス828の例としては、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイディスクドライブ、RAIDシステム、及びデジタル多用途ディスク(DVD)ドライブが挙げられる。
【0053】
図6及び/または7の方法を実装するためのコード化された命令832は、大容量記憶デバイス828内、揮発性メモリ814内、不揮発性メモリ816内、及び/またはCDもしくはDVDなどの取り外し可能な有形コンピュータ可読記憶媒体上に記憶されてもよい。
【0054】
特定の方法、装置、及び製品の例が本明細書に開示されているが、本特許の対象の範囲は、それらに限定されるものではない。対照的に、本特許は、本特許の特許請求の範囲に適正に該当する全ての方法、装置、及び製品を網羅する。