1つ以上のプログラムに関連したコミュニケーションをネットワーク内の1つ以上の装置へ発信する段階と、前記1つ以上の装置の各々からの前記コミュニケーションに対する応答を検出する段階と、前記応答を分析する段階と、前記応答が、警告、又は予期していない応答、又は前記1つ以上の装置からの応答の欠如を示す応答時間切れの内の1つを表しているとき、該応答を脅威応答として識別する段階と、前記脅威応答の識別に基づいてネットワークの脆弱性を判定する段階と、を有する方法。更に、開始事象を検出する段階と、前記開始事象が検出されたとき前記1つ以上の装置へのコミュニケーションの発信を開始する段階とを有している請求項1記載の方法。更に、前記ネットワーク内のマスター装置から前記ネットワーク内の1つ以上の代理装置へ委託コミュニケーションを送って、前記1つ以上のプログラムの少なくとも一部分を処理する段階を有している請求項1記載の方法。更に、前記ネットワーク内の事象ロガーへ警告を送る段階を有している請求項1記載の方法。更に、前記1つ以上の装置の各々について、前記脅威応答が前記1つ以上のプログラムに対する装置の障害を表しているとき、装置警告を発生する段階を有している請求項1記載の方法。更に、エミュレータ装置で前記1つ以上のプログラムを実行する段階を有し、該段階は、1つ以上の監視プログラムに関連したコミュニケーションを前記エミュレータ装置へ発信し、前記エミュレータ装置からの前記コミュニケーションに対するエミュレータ応答を検出し、前記応答が、警告、又は予期していない応答、又は応答の欠如を示す応答時間切れの内の1つを表しているとき、該エミュレータ応答をエミュレータ脅威応答として識別し、前記脅威応答の識別に基づいて前記エミュレータ装置の脆弱性を判定すること、を含んでいる、請求項1記載の方法。更に、前記1つ以上の装置へコミュニケーションを発信すると同時に、前記エミュレータ装置で前記1つ以上のプログラムを実行する段階を有している請求項6記載の方法。更に、前記ネットワーク内の前記1つ以上の装置へコミュニケーションを発信する前に、前記エミュレータ装置で前記1つ以上のプログラムを実行する段階を有している請求項6記載の方法。更に、前記脅威応答を返した前記1つ以上の装置へフォローアップコミュニケーションを送る段階と、前記脅威応答を返した前記1つ以上の装置の各々からのフォローアップ応答を検出する段階と、前記フォローアップ応答を分析して、前記脅威応答を生じさせるネットワーク脅威状態を決定する段階と、を有している請求項1記載の方法。プロセッサによって実行したとき、前記プロセッサに所定の方法を遂行させるようなコンピュータプログラムのコンピュータ読取り可能な命令を有しているコンピュータ読取り可能な媒体であって、前記方法が、1つ以上のプログラムに関連したコミュニケーションをネットワーク内の1つ以上の装置へ発信する段階と、前記1つ以上の装置の各々からの前記コミュニケーションに対する応答を検出する段階と、前記応答を分析する段階と、前記応答が、警告、又は予期していない応答、又は前記1つ以上の装置からの応答の欠如を示す応答時間切れの内の1つを表しているとき、該応答を脅威応答として識別する段階と、前記脅威応答の識別に基づいてネットワークの脆弱性を判定する段階と、を有していること、を特徴とするコンピュータ読取り可能な媒体。図面には複数の実施形態を示しているが、以下の説明で述べるように、本発明の他の実施形態も考えられる。いかなる場合においても、例示された本発明の実施形態は代表的なものであって制限を表しているものではない。当業者には、本発明の原理の範囲及び精神内に入る多数の他の修正及び実施形態を考え出すことができよう。本書に記述される実施形態は、電力系統の様々な装置のネットワークにおけるセキュリティ保全を対象とする。本発明の実施形態をエネルギ又は電気ユーティリティネットワークに関して記述するが、当業者には、本発明による方法及びシステムが他の種類のネットワークにも同様に用いることができることが理解されよう。本書で用いる用語モジュールとは、ソフトウエア、ハードウエア又はこれらの任意の組合せ、或いは本書に記述したプロセスを遂行し又は容易にする任意のシステム、プロセス又は機能を表しているものとする。電力ユーティリティネットワークにおいて、様々なユーティリティ計測器は、顧客並びにユーティリティに対して重要な情報を提供するために必要な構成要素である。計測及びコミュニケーション技術が進歩するにつれて、ユーティリティ計測器を遠隔で読み取ることが可能になってきている。更に、様々なユーティリティが計測器を遠隔で制御することも可能になってきている。このような遠隔制御には、例えば、特定の契約者の電力を遠隔でターンオフすることが含まれる、電力系統が技術の進歩により益々スマートになるにつれて、電力系統の様々な装置と顧客と様々なユーティリティとの間のコミュニケーションが増大している。任意の他のコミュニケーションネットワークと同様に、電力系統又はネットワークはサイバー攻撃に対して脆弱である危険性がある。図1に、本発明の一実施形態に従った模範的なネットワークセキュリティ保全又は監視システムを示している。このシステム100は、ネットワーク150を介して様々な装置120、ホスト装置130及び事象ロガー140に結合された調整器110を含む。プログラムデータベース160及び脅威応答データベース170が調整器110に結合される。プログラムデータベース160は、例えば、ネットワークを監視し且つ試験するためのプログラムを含む様々なプログラムを記憶する。本発明の実施形態についての説明を容易にするために、図1には、1つの調整器110、並びに少数の装置120、ホスト装置130及び事象ロガー140を示している。しかしながら、本発明の実施形態はこのような数に制限されないこと、及びネットワークにおける調整器110、装置120、ホスト装置130及び事象ロガー140の数を任意にすることができることを理解されたい。別の実施形態では、これらの装置の機能は共存することができる。例えば、ホスト130、事象ロガー140、装置120、エミュレータ装置210図2及び調整器110が、単一のホスト上に存在する多数の機能部とすることができる。本書で説明する例では、調整器110は、ユーティリティ又は任意の他のパーティに配置し及び/又はそれによってホスティングすることができる。或る実施例では並列に動作する複数の調整器を持つことができ、また或る実施例では調整器相互の間でコミュニケーションを持つ。模範的な実施形態では、装置120は、ユーティリティの顧客に関連したユーティリティ計測器である。他の実施形態では、装置120は、変電所、継電器、分散型自動制御装置、再投入装置、線路スイッチ、及びコンデンサ群とすることができる。装置120はまた、1つ以上のハニーポットを含むことができる。装置120はネットワーク環境内で見られる任意の装置とすることができる。プログラムデータベース160内のプログラムは、サイバー攻撃の脅威に対する脆弱性について装置120を調べるための能動的又は受動的プログラムとすることができる。より詳しく述べると、プログラムは、警告を生じさせる又は装置の故障を調べさせるコミュニケーションを意図的に送ることができる。プログラムはまた、適切なコミュニケーションを装置へ送ることによって装置を探索して、その応答に基づいて装置の故障を判定することも可能である。事象ロガーは、試験中の装置から情報を受け取る。事象ロガーは、それらのメッセージを保存し及び/又は別の装置へ転送することができる。事象ロガーは、一群のログ事象を保持することができ、また、他のプログラムにより、検出、相関及び警報通知のためにこれらの事象を検査できるようにする。それらの結果はファイル内に又はデータベース内に保持することができる。他のプロセスにより、これらの事象を検査して、事象を報告する装置名、時刻、事象メッセージ内のパターンなどに基づいて特定の事象を探すことができる。システムによっては複数の事象ロガーを持つことができ、また他のシステムでは、問合せを許容する集中型データベースを使用することができる。本発明の実施形態では、分散型及び集中型事象ロガーを支援する。調整器は、情報の相関のために事象を検査する。図2は、本発明の別の模範的な実施形態を例示する。このシステム200では、エミュレータ装置210が調整器110と脅威応答データベース170とに結合される。唯1つのエミュレータ装置210が示されているが、本発明の実施形態ではこの数に制限されないこと、及び任意の数のエミュレータ装置210を設け得ることを理解されたい。複数の装置エミュレータを設けて、仮想環境における様々な事例をシミュレートすることができる。計測器をネットワーク内の装置とする模範的な実施形態では、実際の計測器を含み、且つ計測器の挙動を分析するようにソフトウエア及び/又はハードウエアを修正した複数の計測器エミュレータを設けることができる。装置エミュレータ210はまた、適切な応答が何であるべきかを決定するために探索することができる。1つの事例では、脅威エミュレータ210が、脅威応答データベース170に保存されていた既知の脅威を取り上げて、試験又はプログラムを実行して、特徴付けることのできるデータを求める。更に、脅威応答データベース170は先ずエミュレータ装置210で妥当性確認して、その後に装置120へ送り出すことができる。この態様では、所望の試験事例についてのデータを生成することができる。換言すれば、エミュレータ装置210はセキュリティ設計の検証及びセキュリティ配備の検証のために用いることができる。図3は、脅威応答データベース170の模範的な実施形態を例示する。脅威応答データベース170は、主に、また場合によってはそれのみで、記録保存ユニット又はメモリ310、及び検索エンジンを含む論理手段312を含んでいると共に、二次的に且つ随意選択により、コミュニケーション発信ユニット又はインターフェイス314、及び論理制御装置316を含む。メモリ310は、問合せを受けたネットワーク装置120からの脅威応答を受け取って保存する。脅威応答データベース170はまた、記憶装置318、例えば、ディスク、RAID安価なディスクの冗長アレイのようなディスクアレイなどを含むことができる。論理手段312及び論理制御装置316は、現在生じている脅威応答を分析する目的で、記録保存された脅威応答を検索するための要求に応答する。随意選択によるインターフェイス314及び論理制御装置316は、脅威応答を返した装置120について問合せを行うように用いることができる。一例として、幾分かの脅威応答は複数の脅威状態を表すことができる。複数の起こり得る脅威状態の中から特定の脅威状態を識別するために、論理制御装置316が、脅威応答を返した装置120に向けて一連のコミュニケーションをインターフェイス314から発信させるようにすることができる。この場合、一連のコミュニケーション、及び該一連のコミュニケーションに対する装置の応答は、脅威の曖昧さを除き且つ特定の脅威状態を識別するように考案され分析される。ネットワーク150は、有線で構成し、又はZigBee、WiFi、WiMAX、HomePlugアーキテクチャのようなコミュニケーションを用いる無線で構成し、或いは有線及び無線構成要素を有するハイブリッドアーキテクチャとすることができる。装置120とホスト装置130と事象ロガー140と調整器110との間のコミュニケーションは、警告アラート、警報アラーム及び基盤ディレクティブを含む。調整器110は、監視及び検証センタとして作用する。調整器110は、不適切な又は異常なものとして自動的に認識された受信メッセージの情報をネットワーク150及び装置120から受け取る。不適切な又は異常なメッセージの一例は、不適切に署名されたパケットのような、標準的な構成要素を用いて容易に生成されることのないパケットである。調整器110は、空間的に分散した一組の演算及び制御モジュールとすることができる。ネットワーク150内の調整器110又は装置120は、適切な及び/又は不適切なパケットを生成することがある。例えば、或る装置は、不適切に構成されたパケット、又は不適切に暗号化された及び/又は認証されたパケットを生成することがある。試験中の装置は、適切に機能している場合、通常このようなパケットを拒絶する。従って、或る装置は、試験中の装置から事象を事象ロガーへ送らせるように作用するパケットを送信することがある。調整器110は、ネットワーク150又は装置120が不適切な又は異常なメッセージをカプセル化して試験中の装置へ転送することを要求することができる。装置の或る実施例では不適切なパケットを無視することができる。他の実施例では、不正な形式のパケットを受け取った回数を追跡し続けることができ、またそれらを事象ロガーへ定期的に報告することができる。また他の実施例又は実施形態では装置120が、警告又は警報、或いは不適切な活動の報告を生成し、それをパケットの検出時に事象ロガーへ送るようにすることもできる。本発明の別の実施形態によれば、調整器110は、不適切な又は異常なメッセージを装置エミュレータ210へ発信して、該メッセージがネットワークのサイバーセキュリティを劣化させる潜在能力を持っているかどうか評価させる。エミュレータ装置210は、1つ以上の装置のハードウエア及び/又はネットワークトポロジイをエミュレートする装置のような、システムの特別な修正版をエミュレートする。例えば、該装置は、計測器に対応するハードウエアをエミュレートすることができる。別の可能性のある修正は、プログラム内のブランチの位置を全て検出するためにソフトウエアを変更することを含み、またカウンタにより各ブランチを通った回数を追跡し続ける。これは、試験範囲を決定するために、例えば、全ての論理ブランチがファームウエア内で探索されたことをチェックするための試験を行う際に用いられる。探索されなかった論理ブランチは、実行されなかったプログラムの区域を表し、従って該区域はプログラムの論理内に検出されないバグ欠陥を含んでいることがある。エミュレータ装置210はまた不適切な装置の活動及び使用を検出することができる。別の実施形態では、エミュレータ装置210又は装置120は、そのプログラミング及びそのキーイング暗号変数の全てを含む特別な試験を処理して、装置120について首尾良い又は不正な再プログラミングが遂行されたかどうかを評価するためにエミュレータ装置210によってチェックすることのできるワード又は暗号ベースの検証コードを作成することが要求される。本発明の一実施形態によれば、エミュレータ装置210は、それ自身のファイアウォールが適切に設けられている特殊な試験ベッド上で実現される。本発明の一実施形態によれば、調整器110又はエミュレータ装置210は、受信メッセージが以前に遭遇したものであるかどうか調べるために、脅威応答データベース170を検索する。該メッセージが調整器110にとって新しいものである場合に、該メッセージが新しいサイバーセキュリティの脅威をもたらすことがエミュレータ装置210によって判定されると、該メッセージは脅威応答データベース170に追加される。本発明の実施形態によれば、調整器110は、限定するものではないが、次のような機能を遂行する。すなわち、ファームウエアのバージョン及びシステム構成について装置に問い合わせを行い、また1つ以上の装置においてファームウエアをアップグレードし、また不適切なパケットを検出し、拒絶し及び報告するための装置の有効性を測定し、装置の脆弱性を分析し装置の脆弱性を検出し、装置の脆弱性を利用する試験を含む、侵入を検出し防止し、コミュニケーション基盤を再構築し例えば、ネットワークのメンバーを変更し、新しいネットワークをインスタンス化し、ハニーポットを設定して保持し、これは、ネットワークのスマートな装置又は他の構成要素と相互動作するように設計されたソフトウエアの更新を含む、また、例えば、巧妙に取り込まれた破壊工作ソフトウエアマルウェアを隔離して閉じ込めるためにネットワークコミュニケーションプロトコルを修正する。装置120は、充分に巧妙な暗号法及び暗号化プロトコルを設計して備えることにより、装置120は、限定するものではないが、指令の順序又はタイミングを混乱させる再生行動に抵抗し、プレーンテキスト平文を不適切な指令又は報告に変更しようとした暗号文の意図的な変更のようなスプーフィングなりすまし行動に抵抗するなどの機能を遂行することができ、また介入者攻撃に対して脆弱でなく、また安全に1つのネットワークから取り外して別のネットワークに組み入れることができるようにされる。制限ではない一例として、上記のような要件を満足することのできる暗号法を達成するため、各装置内の複数の暗号化キーイング変数を、該複数の暗号化キーイング変数の内の該装置に固有の1つによりインスタンス化しこの固有の暗号変数は、他の暗号変数の外部再キーイング又は本質的なセキュリティ機能の再設定のような目的のために用いられる、装置暗号法を、暗号文内の単一の記号変更によりプレーンテキストに有意な変更を生じさせる暗号帰還のようなモードで動作させ、次いで、首尾良く解読されたメッセージの単一の実行のみを可能にする外部から問い合わせ可能なカウンタを備えた装置暗号法を提供する。図4は、本発明の一実施形態に従ってネットワーク内の装置を試験し又は監視するための流れ図を示す。このプロセス400では、調整器110が、装置120、ホスト装置130及び事象ロガー140と情報を交換する。調整器110はまた、プログラムデータベース160及び脅威応答データベース170と情報を交換する。情報は、ネットワークがサイバー攻撃の脅威のエージェントに対して脆弱であるかどうかを判定するために用いられる。段階410において、調整器110が装置120へメッセージを送る。段階412において、装置120がメッセージを受け取り、次いで段階414において、装置120は、警告を発信するほどにメッセージが不適切又は異常であるかどうが判定する。何ら警告が発信されない場合、段階416へ進んで、装置120がメッセージに応答するかどうか判定する。状況によっては、何らかのメッセージがプログラムの論理にエラーを引き起こすデータを含んでいることがあり、また装置に予期していない論理ブランチを遂行させることがある。これは例外を生じさせ、或いは装置に機能を停止させることがある。監視タイマが、エラー回復プロセスの一部として装置に再初期化を行わせることができる。装置120が応答しない場合、段階418へ進み、装置120はメッセージを無視する。装置120がメッセージに応答する場合、段階420において、装置は応答を調整器へ送る。段階414において警告が発信される場合、段階422において、装置120は関連した事象ロガー140へメッセージを送る。警告を生じさせるメッセージの一例は、適切に認証されなかったメッセージ、不適切に書式設定されたメッセージ、或いは無効であると装置が知っている行為を遂行する要求である。それは、検証プロセスを失敗したファームウエアをアップロードする試みであることがある。一般に、装置は、様々な理由で無効であると装置が知っているメッセージを検出する。これは装置に不正侵入しようとする試みを表していることがあるので、警報を事象ロガーへ送ることができる。段階424において、事象ロガー140は、警告事象に対応する情報を保存して、警告メッセージを調整器110へ送る。段階426において、調整器は、装置120からの応答又は事象ロガー140からの警告メッセージのいずれかを受け取るのを待ち、或いは所定の時間後に何ら応答を受け取らなかったときに時間切れを発生する。状況によっては、調整器110は、装置からの応答及び事象ロガー140からの警告メッセージの両方を受け取ることがある。これは、不適切な要求が装置に送られたときに起こり得る。装置は、メッセージを送った装置へエラー応答を持つパケットを送ることによって、要求が無効であったことを表すことができる。装置はまた、この無効な要求を、無許可の要求を遂行する企てとして事象ロガーへ報告することができる。段階428において、調整器110は、装置120に送られたメッセージに応答して受け取った情報を分析する。情報は、例えば、限定するものではないが、該情報と保存されたデータとの比較、又は確率的データ分析のような、用途に適した任意の態様で分析することができる。情報は、調整器110へ送られる前に装置又はホスト装置で分析することができ、或いは調整器110によって分析することができる。段階430において、調整器は、分析された情報に基づいて警告を発信すべきかどうか判定する。情報が予期してない又は異常な情報である場合、段階432において、調整器110は、関連した装置が脆弱であることを表す警告を発信する。調整器110によって又は装置120によって、或いは時間切れ事象が生じたことによって警告が発信された場合、段階434において、応答が脅威応答データベース170に保存される。最後に、段階436において、装置検証プロセスが遂行される。プロセス400は様々な用途で遂行することができる。例えば、プロセス400は、ネットワーク内の各装置120についてプログラムデータベース160内の各プログラムに対して遂行することができる。プロセス400はまた、ネットワーク内の1つの装置120についてプログラムデータベース160内の全てのプログラムに対して、又はネットワーク内の全ての装置120についてプログラムデータベース160内の1つのプログラムに対して、或いは1つの装置120について1つのプログラムに対して、また用途に適した任意の他の態様で遂行することができる。プロセス400は開始事象によって開始される。開始事象には、ネットワーク構成の変更が含まれ、例えば、とりわけ、ネットワークにおける1つ以上の装置120又は何らかの他の装置の追加、除去又は修正、或いはプログラムデータベース160におけるプログラムの1つ以上の追加、除去又は修正が含まれる。プロセス400はまた何らかの時間データに基づいて、例えば周期的に開始することができ、或いは、最後のプログラムが実行されてからの時間、プログラムのバージョン、装置の位置などのような他の判定基準に基づいて開始することができる。プロセスはまた、理知的に実行、例えば、規則に基づいた決定を実行するためのプログラムを選択することができる。更に、プロセス400は調整器110によって開始し又はユーザーによって開始することができる。図5は、本発明の一実施形態に従った模範的な開始プロセス500を例示する。段階510において開始事象が検出され、次いで、段階512において各装置が考察される。段階514において、装置120の構成が以前の構成と同じであるかどうか判定される。これは、装置がネットワークにとって新しいものであるかどうか判定することを含む。装置の構成が同じである場合、プロセスは段階512へ戻って、次の装置120についての情報を読み出す。段階514において構成が変わっていると判定された場合、プロセスは段階516へ進み、段階516における各試験又はプログラムについて、段階518において、該プログラムを装置120について遂行すべきであるか判定される。もしプログラムを遂行すべきでない場合には、プロセスは段階516へ戻って、プログラムデータベース160内の次のプログラムについての情報を読み出す。プログラムを遂行すべきである場合は、プロセスは段階520へ進んで、装置120についてプログラムが実行される。関連した装置120についてのプロセスが完了したとき、プロセスは段階512へ戻る。図5に示した例は各装置について各プログラムを実行することを意図したものであるが、本発明はこの事に関して上記のようなものに制限されない。この制御ループを最適化する他の手段も可能である。先ず試験についてチェックし、次いで可能性のある装置全てについて順次にチェックすることができる。随意選択により、物理的な場所、最後の試験の時間、試験の優先順位などような他の選択事項を考慮することができる。本発明の実施形態によれば、調整器110は、プロセスを遂行するか、又はネットワーク150内の1つ以上の代理装置又はホスト装置130に動作を委託するように選択することができる。この態様では、並列処理のために複数のプログラムを同時に又はほぼ同時に処理することができる。調整器110はまた、処理の一部分をネットワーク150内のホスト装置130に委託することができる。他の実施形態では、ホスト装置130は更に、プログラムの処理を別のホスト装置130に委託して、最初のホスト装置130がマスター装置になり且つ第2のホスト装置130がスレーブ装置になると云う様にすることができる。図6は、検証プロセス600の流れ図を示す。段階610及び612において、装置について遂行された各プログラムについての応答が分析される。段階614において、分析に基づいて警告を発信すべきかどうか判定される。警告が発信されない場合、プロセスは段階612へ戻って、段階610において識別された関連した装置からの次のプログラムについての応答を求める。警告を発信すべきであると判定された場合、プロセスは段階616へ進んで、プログラムが関連した装置について失敗したことを表し、装置の脆弱性を表す警告が発信される。プロセスは、次のプログラムのために段階612へ戻る。段階618が装置についての処理の終わりを判定して、プロセスは次の装置のために段階610へ進む。プログラムの結果は結果データベース180に保存される。プロセス600において分析され検証される装置の中にエミュレータ装置210を含めることができる。検証プロセスは何らかの時間に基づいて生じさせることができ、或いはユーザーによって又は他の適当な時間によって開始させることも可能である。検証プロセスはポリシー駆動型である。或る1つの装置についてプロセスが完了したとき、プロセスは段階620へ進み、そこで、結果を相互に相関させ及び/又は保存する。本発明の実施形態は複数の試験が遂行されるまで待機することができ、また複数の結果を調べることによって、試験結果の原因、例えば、ハードウエアの故障、ファームウエア内のソフトウエアのバグ、タイミングエラー、又は競合状態などを突き止めることができる。ファームウエアのバージョンの検証のような、他の試験結果は相関させる必要がないことがある。他の障害は、試験中の装置へ通信する構成要素の故障、例えば、ルーターとして作用する装置の故障が原因であることがある。要約して説明すると、本発明の模範的な実施形態は、ネットワークを監視してサイバー攻撃に対するネットワークの脆弱性を検出するための方法及びシステムを提供する。本発明の実施形態は、複数の事象の間で情報を相関させる。この場合、これらの事象は正常なトラフィック、及び装置によって発生される警告の両方である。分析は、警告、正常な応答、及び応答の欠如の組み合わせに基づいて遂行されて、セキュリティの脆弱性があるかどうか判定する。本発明の幾つかの模範的な実施形態を計測に関連して説明したが、当業者には、本発明の方法及びシステムが任意のコミュニケーションネットワークに用いることができることが理解されよう。本書では本発明の特定の特徴のみを図示し説明したが、当業者には種々の修正および変更をなし得よう。従って、特許請求の範囲の記載が本発明の真の精神および趣旨の範囲内にあるこの様な全ての修正および変更を包含するものであることを理解されたい。