(57)【要約】メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出するシステムおよび方法が、提供される。オペレーティングシステムのプログラムプロシージャが起動されたことを示すメッセージが、受信され得る。メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み得る。起動ハッシュが、メッセージに基づいて生成され得る。起動ハッシュは、より小さい起動識別子に変換され得る。起動識別子は、一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに含まれ得る。変換された呼び出しシーケンスが以前に生成された事前決定された呼び出しシーケンスに含まれるかどうかに応じて、変換された呼び出しシーケンスは、異常として、または異常ではないとして決定され得る。
2019527429.tif 000002
【特許請求の範囲】
【請求項１】
メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出する方法であって、前記方法は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、ことと、
少なくとも前記プログラムプロシージャ識別子および前記受信側プロセス識別子に基づいて、起動ハッシュを生成することと、
前記起動ハッシュを起動識別子に変換することと、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むことと、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定することと
を含む、方法。
【請求項２】
前記起動ハッシュは、前記送信側プロセス識別子にも基づく、請求項１に記載の方法。
【請求項３】
前記メッセージは、前記プログラムプロシージャに渡されるパラメータの指示を含み、前記起動ハッシュは、前記プログラムプロシージャに渡されるパラメータの指示にも基づく、請求項１または請求項２に記載の方法。
【請求項４】
前記メッセージは、チャネル識別子を含み、前記起動ハッシュは、前記チャネル識別子にも基づく、請求項１−３のうちのいずれか１項に記載の方法。
【請求項５】
前記メッセージは、受信側ノード識別子を含み、前記起動ハッシュは、前記受信側ノード識別子にも基づく、請求項１−４のうちのいずれか１項に記載の方法。
【請求項６】
前記起動ハッシュを変換することは、前記起動識別子に関連付けられた起動ハッシュを備えている変換テーブルにおいて前記起動ハッシュに対して検索することを含む、請求項１−５のうちのいずれか１項に記載の方法。
【請求項７】
前記起動識別子は、前記起動ハッシュを含む前記変換テーブルにおける行番号である、請求項６に記載の方法。
【請求項８】
コンピュータ実行可能命令を備えている非一過性コンピュータ読み取り可能な記憶媒体であって、前記コンピュータ実行可能命令は、プロセッサによって実行可能であり、前記コンピュータ実行可能命令は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信するために実行可能な命令であって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、命令と、
前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成するために実行可能な命令と、
前記起動ハッシュを起動識別子に変換するために実行可能な命令と、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むために実行可能な命令と、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定するために実行可能な命令であって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、命令と、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定するために実行可能な命令と
を備えている、非一過性コンピュータ読み取り可能な記憶媒体。
【請求項９】
前記変換された呼び出しシーケンスが、前記事前決定された呼び出しシーケンスに含まれているかどうかの決定は、テーブルにおける前記変換された呼び出しシーケンスに対する検索に基づき、前記テーブルは、起動識別子の組の行を備え、前記起動識別子の各々は、変換データ構造において対応する起動ハッシュに関連付けられている、請求項８に記載の非一過性コンピュータ読み取り可能な記憶媒体。
【請求項１０】
前記メッセージの受信は、トレースファイルからの前記プログラムプロシージャの前記起動についての情報の読み取りを含む、請求項８または請求項９に記載の非一過性コンピュータ読み取り可能な記憶媒体。
【請求項１１】
前記メッセージの受信は、前記オペレーティングシステムからの登録されたコールバックの形態における前記メッセージの受信を含む、請求項８−１０のうちのいずれか１項に記載の非一過性コンピュータ読み取り可能な記憶媒体。
【請求項１２】
前記起動ハッシュの生成は、恣意的サイズのデータを固定サイズのデータにマッピングするハッシュ関数の適用を含み、前記ハッシュ関数は、前記プログラムプロシージャ識別子と、前記送信側プロセス識別子と、前記受信側プロセス識別子とを含むデータに適用される、請求項８−１１のうちのいずれか１項に記載の非一過性コンピュータ読み取り可能な記憶媒体。
【請求項１３】
メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出するためのシステムであって、前記システムは、プロセッサを備え、
前記プロセッサは、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、ことと、
前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成することと、
前記起動ハッシュを起動識別子に変換することと、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むことと、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定することと
を行うように構成されている、システム。
【請求項１４】
前記プロセッサは、少なくとも前記受信側プロセス識別子に基づいて、前記起動ハッシュを生成するように構成されている、請求項１３に記載のシステム。
【請求項１５】
前記プロセッサは、少なくとも前記送信側プロセス識別子および前記受信側プロセス識別子に基づいて、前記起動ハッシュを生成するように構成されている、請求項１３または請求項１４に記載のシステム。
【請求項１６】
前記メッセージは、前記プログラムプロシージャ識別子、前記送信側プロセス識別子、前記受信側プロセス識別子、チャネル識別子、受信側ノード識別子、前記プログラムプロシージャのパラメータ、および／または前記プログラムプロシージャに渡される前記パラメータの指示を備えている、請求項１３−１５のうちのいずれか１項に記載のシステム。
【請求項１７】
前記プロセッサは、前記プログラムプロシージャ識別子、前記送信側プロセス識別子、前記受信側プロセス識別子、前記チャネル識別子、前記受信側ノード識別子、前記プログラムプロシージャのパラメータ、および／または前記プログラムプロシージャに渡されるパラメータの指示のうちの少なくとも１つに基づいて、前記起動ハッシュを生成するように構成されている、請求項１６に記載のシステム。
【請求項１８】
前記プロセッサは、異常としての前記変換された呼び出しシーケンスの識別に応答して、セキュリティレベルを変更するように構成されている、請求項１３−１７のうちのいずれか１項に記載のシステム。
【請求項１９】
前記プロセッサは、異常としての前記変換された呼び出しシーケンスの前記識別がある閾値数の異常を超えているという決定に応答して、前記セキュリティレベルを変更するように構成されている、請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（技術分野）
本願は、呼び出しシーケンス異常検出、特に、オペレーティングシステム呼び出しにおける異常検出に関する。
【背景技術】
【０００２】
メッセージベースのオペレーティングシステムでは、オペレーティングシステムの殆どのプログラムプロシージャの呼び出しまたは起動は、メッセージングシステムを伴う。メッセージベースのオペレーティングシステムでは、オペレーティングシステムのプログラムプロシージャの起動は、対応するメッセージがメッセージングシステムを通して送信側プロセスから受信側プロセスに渡されることをもたらし得る。
【０００３】
いくつかの例では、メッセージングシステムは、マイクロカーネル内に実装される。マイクロカーネルは、オペレーティングシステムを実装するために必要とされる比較的少数のサービスを提供し得る。例えば、マイクロカーネルのサービスは、低レベルアドレス空間管理、プロセス管理、およびプロセス間通信（ＩＰＣ）を含み得る。メッセージングシステムは、プロセス間通信サービスの一部であり得る。
【０００４】
プロセスは、実行されているコンピュータプログラムのインスタンスである。いくつかのオペレーティングシステムでは、プロセスは、命令を並列して実行する複数の実行スレッドから構成され得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出する方法およびシステムが、提供される。ソフトウェア攻撃または他の異常が、本明細書に説明される方法およびシステムによって検出され得る。ゼロデイ攻撃として公知である、以前まで不明であったソフトウェア脆弱性に対する攻撃であっても、検出され得る。他の検出される異常は、例えば、ソフトウェア欠陥またはハードウェア障害およびタイムアウト等の他の通常ではないイベントを含み得る。
【図面の簡単な説明】
【０００６】
実施形態は、以下の図面および説明を参照してより深く理解され得る。図における構成要素は、必ずしも、縮尺通りではない。さらに、図では、同様の参照番号は、異なる図全体を通して対応する部分を指定する。
【図１】図１は、メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出するためのシステムの例を図示する。
【図２】図２は、例示的メッセージを図示する。
【図３】図３は、例示的プロファイルを図示する。
【図４】図４は、呼び出しシーケンス異常を検出するためのシステムの例示的論理のフロー図を図示する。
【図５】図５は、メモリとプロセッサとを含むシステムの例を図示する。
【発明を実施するための形態】
【０００７】
図１は、メッセージベースのオペレーティングシステム（ＯＳ）１０２における呼び出しシーケンス異常を検出するためのシステム１００の例を図示する。システム１００は、ＯＳ１０２内で実行されるか、または代替として、図１に示されるように、ＯＳ１０２の外側で実行されるプロセスとしての異常検出器１０４を含み得る。ＯＳ１０２は、１つ以上のプロセス１０６（図１にＰ１、Ｐ２、およびＰ３と指定される）からの対応するメッセージを処理することによって、オペレーティングシステム呼び出しの起動を取り扱う。付随して、ＯＳ１０２は、異常検出器１０４がＯＳ１０２の外側のプロセスとして起動する場合、異常検出器１０４によって生じるオペレーティングシステム呼び出しの起動も取り扱う。ＯＳ１０２は、類似する機構を通してプロセス間通信も取り扱い、ソフトウェアバス１０８を経由してプロセス１０６間でメッセージを渡し得る。ＯＳ１０２は、いくつかの例では、ＯＳ１０２のメッセージ渡し機能性を実装するマイクロカーネル１１０を含み得る。
【０００８】
プロセス間通信に加えて、ＯＳ１０２は、いくつかの実装では、ノード間通信を取り扱い得る。例えば、ＯＳ１０２、プロセス１０６、および異常検出器１０４は、第１のノード１１２上に含まれ得る一方、第２のノード１１４は、オペレーティングシステムと、１つ以上のプロセスとを含み得る。第１のノード１１２上の１つ以上のプロセス１０６のいずれかは、第１のノード１１２のＯＳ１０２にメッセージを渡すことによって、第２のノード１１４上の標的プロセスと通信し得、ＯＳ１０２は、メッセージを第２のノード１１４上の標的プロセスに送達する。
【０００９】
ノード１１２、１１４は、同じデバイス上にあるか、または代替として、ネットワークを経由して通信する別個の物理的デバイス上にあり得る。各ノードは、サーバのインスタンス、仮想マシンのインスタンス、コンピューティングデバイス、またはネットワーク上の任意の他のデバイスであり得、デバイスは、現実または仮想のものであり得る。
【００１０】
異常検出器１０４は、トレーナ１１６と、モニタ１１８と、ハンドラ１２０とを含み得る。トレーナ１１６は、通常の挙動の指示を提供するプロファイルを構築し得る。通常の挙動は、既知の挙動および／または事前決定された挙動である。モニタ１１８は、ＯＳ１０２から受信された起動情報を処理し、任意の異常を検出し得る。特に、モニタ１１８は、プロファイルにおいて記述される事前決定された挙動からの逸脱を検出し得る。ハンドラ１２０は、任意の検出された異常に反応し得る。例えば、ハンドラ１２０は、異常の検出に応答して、アラームを発するか、または別様に措置を講じ得る。
【００１１】
トレーナ１１６は、プロセス１０６が通常の動作下で生じるオペレーティングシステムプログラムプロシージャの起動のシーケンスを識別するプロファイル１２２を構築する。例えば、図１は、Ｐ１プロファイル、Ｐ２プロファイル、およびＰ３プロファイルと指定される３つのプロファイル１２２を図示し、３つのプロセス１０６の各々のための１つのプロファイルが、図示される（Ｐ１、Ｐ２、およびＰ３）。
【００１２】
システム呼び出しの短いシーケンスは、プロセスの通常の挙動および異常な挙動間の良好な判別基準である。システム呼び出しの短いシーケンスの集合は、通常の挙動の比較的に安定したシグネチャであり得る。
【００１３】
プロセスにおいて実行される重要なソフトウェアプログラムに対して、プログラムプロシージャ起動の完全な組は、膨大であり得る。しかしながら、起動のローカルな（コンパクトな）順序付けは、プロセスのより長い期間の動作にわたって著しく一貫し得る。トレーナ１１６の動作を例証するための例が、下記に提供される。
【００１４】
例えば、プロセス１０６のうちの１つは、以下の順序において以下のオペレーティングシステムプログラムプロシージャを起動し得る：ｏｐｅｎ（）、ｒｅａｄ（）、ｍｍａｐ（）、ｍｍａｐ（）、ｏｐｅｎ（）、ｇｅｔｒｌｉｍｉｔ（）、ｍｍａｐ（）、およびｃｌｏｓｅ（）。ウィンドウサイズＬが、選択され得、ウィンドウサイズＬは、ウィンドウ内に含むべき連続した起動の数を示す。起動の数ｋが、ウィンドウ内で第１の起動に続く（言い換えると、ｋは、先読みサイズである）。ウィンドウサイズＬは、先読みサイズｋ＋１に等しい。下記の表１は、ウィンドウが起動の例示的シーケンスを横断してスライドする場合の４（ｋ＝３）のウィンドウサイズで形成される連続した起動の組を図示する：ｏｐｅｎ（）、ｒｅａｄ（）、ｍｍａｐ（）、ｍｍａｐ（）、ｏｐｅｎ（）、ｇｅｔｒｌｉｍｉｔ（）、ｍｍａｐ（）、およびｃｌｏｓｅ（）。
【００１５】
【表１】
2019527429.tif 000003
【００１６】
表２は、ウィンドウ内の第１の呼び出しによって順序付けられ、圧縮された表１からの呼び出し（起動）を図示する。圧縮されると、それぞれの位置における起動（前の呼び出し、２つ前の呼び出し、または３つ前の呼び出し等）は、そのそれぞれの位置に対して許容可能であるように統合される。例えば、以下の呼び出しシーケンス（直近の起動から最も古い起動に順序付けられる）は、同じシーケンスが表１にリストアップされていないが、表２に見出されると見なされるであろう：ｍｍａｐ（）、ｒｅａｄ（）、ｒｅａｄ（）、ｏｐｅｎ（）。その理由は、ｒｅａｄ（）がｍｍａｐ（）呼び出しに対する２つ前の呼び出し位置において許容可能と見なされるからである。
【００１７】
【表２】
2019527429.tif 000004
【００１８】
呼び出しシーケンスにおける異常は、プロセスが監視されている間、プロセスによって生じるオペレーティングシステムプログラムプロシージャの連続した起動にわたって同じサイズのウィンドウをスライドさせることによって検出され得る。例えば、プロセスは、監視されている間、以下の順序における以下のオペレーティングシステムプログラムプロシージャを起動し得る：ｏｐｅｎ、ｒｅａｄ、ｍｍａｐ、ｏｐｅｎ、ｏｐｅｎ、ｇｅｔｒｌｉｍｉｔ、ｍｍａｐ、ｃｌｏｓｅ。下記の表３は、ウィンドウが、プロセスが監視されている間、プロセスによって生じる起動のシーケンスを横断してスライドする場合に形成される連続した起動の組と比較した場合の表２からの逸脱を図示する。逸脱は、大文字で示される。言い換えると、「ｏｐｅｎ」は、最終的に、１行目における２つ前の呼び出しでは「ｍｍａｐ」の代わりに「ｒｅａｄ」によって先行され、「ｏｐｅｎ」は、最終的に、１行目における３つ前の呼び出しでは「ｒｅａｄ」の代わりに「ｏｐｅｎ」によって先行され、「ｏｐｅｎ」は、１行目における前の呼び出しでは「ｍｍａｐ」の代わりに「ｏｐｅｎ」によって先行され、「ｇｅｔｒｌｉｍｉｔ」は、最終的に、３行目における２つ先の呼び出しでは「ｍｍａｐ」の代わりに「ｏｐｅｎ」によって先行される。
【００１９】
【表３】
2019527429.tif 000005
【００２０】
メッセージベースのＯＳ１０２では、問題は、オペレーティングシステムプログラムプロシージャ起動の（全てではないが）大部分が、オペレーティングシステム１０２を通して送信される対応するメッセージを通して生じることであり得る。メッセージの各々は、図２に示されるメッセージ２０２と類似するフォーマットを有し得、それは、上で説明される単純な１つのプロセス方法起動よりも複雑である。
【００２１】
メッセージ２０２は、プログラムプロシージャ識別子２０４、送信側プロセス識別子２０６、受信側プロセス識別子２０８、チャネル識別子２１０、受信側ノード識別子２１２、および／または、プログラムプロシージャに渡される１つ以上のパラメータ２１４を含み得る。メッセージ２０２は、追加の、より少ない、または異なるコンポーネントを含み得る。例えば、メッセージ２０２は、プログラムプロシージャ識別子２０４、送信側プロセス識別子２０６、受信側プロセス識別子２０８、チャネル識別子２１０、および／または受信側ノード識別子２１２を含むヘッダ２１６を含み得る。いくつかの例では、ヘッダ２１６は、プログラムプロシージャに渡されるパラメータ２１４の指示２１８を含み得る。例えば、パラメータ２１４の指示２１８は、パラメータ２１４のいずれかの最初の１２バイトを含む固定サイズ値であり得る。いかなるパラメータも渡されない場合、および／または、１２バイトを下回るパラメータがパラメータとして渡される場合、パラメータ２１４の指示２１８は、固定サイズ値の任意の使用されていない部分においてゼロ等のプレースホルダを含み得る。
【００２２】
プログラムプロシージャ識別子２０４は、起動されたプログラムプロシージャの任意の識別子であり得る。プログラムプロシージャ識別子２０４は、プログラムプロシージャのテキスト名、プログラムプロシージャを識別する数値、またはプログラムプロシージャを識別する任意の他の値であり得る。例えば、プログラムプロシージャ識別子は、プロセス１０６が起動し得るＯＳ１０２のプログラムプロシージャの全てにＯＳ１０２が割り当てた一意の番号であり得る。
【００２３】
送信側プロセス識別子２０６は、メッセージ２０２において識別されるプログラムプロシージャを起動したプロセス１０６を識別する任意の識別子であり得る。同様に、受信側プロセス識別子２０８は、メッセージ２０２を受信すべきプロセス１０６を識別する任意の識別子であり得る。例えば、受信側プロセス識別子２０８は、ＯＳ１０２内で実行されるプロセス、ＯＳ１０２上で実行されるプロセス１０６のうちの任意のもの、および／または別のノード上の任意のプロセスを識別し得る。ＯＳ１０２は、プロセス識別子２０６、２０８がノード１１２、１１４の再起動後であっても同じままであるように、静的プロセス識別子２０６、２０８を割り当て得る。例えば、ＯＳ１０２は、一意の番号または名称をプログラム実行ファイルに割り当て得る。例えば、いくつかのオペレーティングシステム上でファイルの一覧表を提供する「ｄｉｒ」実行ファイルは、「ｄｉｒ」という名称を割り当てられ得る。プログラム実行ファイルの複数のインスタンス化は、いくつかの例では、プロセス識別子２０６、２０８に追加される追加の情報を有し得る。例えば、「ｄｉｒ」実行ファイルの第２のインスタンスは、送信側プロセス識別子２０６として「ｄｉｒ−２」を割り当てられ得る。
【００２４】
チャネル識別子２１０は、プロセス間および／またはプロセスとＯＳ１０２との間の通信チャネルを識別する任意の識別子であり得る。例えば、プロセスが作成する各チャネルのために、ＯＳ１０２は、連続的により大きい数を割り当て得る。例証的例として、プロセスによって作成される第１のチャネル識別子は、識別子「１」を割り当てられ得、プロセスによって作成される第２のチャネル識別子は、識別子「２」を割り当てられ得、以下同様である。
【００２５】
受信側ノード識別子２１２は、メッセージ２０２を受信すべきノードを識別する任意の識別子であり得る。ノード識別子２１２の例は、静的ネットワークアドレス、メディアアクセス制御アドレス（ＭＡＣアドレス）、イーサネット（登録商標）アドレス、無線ハードウェアアドレス、静的インターネットプロトコル（ＩＰ）アドレス、または任意の他のそのような識別子を含み得る。
【００２６】
パラメータ２１４は、パラメータがプログラムプロシージャに渡される順序で配列される各パラメータのデータタイプ等のパラメータの定義を含み得る。パラメータの定義は、いくつかの例では、オーバーロード（複数のプログラムプロシージャが、同じ名称を有するが、異なるパラメータを有する）されているプログラムプロシージャ間を区別するために有用であり得る。代替として、または加えて、パラメータ２１４は、入力としてプログラムプロシージャに渡される１つ以上の実際の値を含み得る。
【００２７】
異常検出器１０４は、メッセージ２０２に基づいて、起動ハッシュ２２２を生成し得る（２２０）。起動ハッシュ２２２は、メッセージ２０２の全てまたは任意の部分の非暗号ハッシュであり得る。代替として、起動ハッシュ２２２は、メッセージ２０２の全てまたは任意の部分の暗号ハッシュであり得る。異常検出器１０４は、任意の好適なハッシュ関数を使用して起動ハッシュ２２２を生成し得る。ハッシュ関数は、恣意的サイズのデータを固定サイズのデータにマッピングする任意の関数であり得る。異常検出器１０４がプロセス１０６をリアルタイムで監視するように構成される場合、選定されるハッシュ関数は、比較的に迅速に完了するものであり得る。起動ハッシュ２２２は、３２ビット、６４ビット、または任意の他のサイズであり得る。
【００２８】
一例では、起動ハッシュ２２２は、プログラムプロシージャ識別子２０４および受信側プロセス識別子２０８のハッシュであり得る。代替として、起動ハッシュ２２２は、プログラムプロシージャ識別子２０４、送信側プロセス識別子２０６、および受信側プロセス識別子２０８のハッシュであり得る。代替として、起動ハッシュ２２２は、プログラムプロシージャ識別子２０４、送信側プロセス識別子２０６、受信側プロセス識別子２０８、チャネル識別子２１０、受信側ノード識別子２１２、および／またはプログラムプロシージャに渡されるパラメータ２１４の指示２１８のハッシュであり得る。言い換えると、起動ハッシュ２２２は、メッセージ２０２および／またはメッセージ２０２のコンポーネントの任意の組み合わせのハッシュであり得る。
【００２９】
起動ハッシュ２２２は、プログラムプロシージャ起動を識別する革新的構造である。ハッシュ関数に渡されるメッセージ２０２のコンポーネントが多いほど、プログラムプロシージャ起動は、より綿密に識別される。例えば、受信側ノード識別子２１２をハッシュ関数に渡すことは、起動がその他の点で同じである場合であっても、起動ハッシュ２２２に複数のノードへの起動を区別させるであろう。
【００３０】
起動ハッシュ２２２は比較的にサイズが大きくあり得るので、革新的変換機構が、提供される。図３は、変換機構を具現化するプロファイル１２２の例を図示する。上で先に示されるように、プロファイル１２２は、プロセス１０６のうちの特定の１つが通常の動作下で生じるオペレーティングシステムプログラムプロシージャの起動のシーケンスを識別する。特に、プロファイル１２２は、変換テーブル３０４または他の好適な変換データ構造と、事前決定された呼び出しシーケンス３０６とを含み得る。
【００３１】
異常検出器１０４のトレーナ１１６の動作中、トレーナ１１６は、１つ以上のプロセス１０６のためのプロファイル１２２を生成し得る。制御された環境で実行される１つ以上のプロセス１０６は、プロセス１０６の通常の、または予期される挙動を表す呼び出しシーケンスをもたらす。
【００３２】
異常検出器１０４および／またはトレーナ１１６は、オペレーティングシステム１０２のプログラムプロシージャが起動されたことを示すメッセージ２０２を受信し得る。例えば、異常検出器１０４および／またはトレーナ１１６は、リアルタイムでメッセージ２０２のコピー（およびプログラムプロシージャ起動に対応する他のメッセージのコピー）を受信するために、ＯＳ１０２の追跡特徴に登録していることもある。代替として、異常検出器１０４および／またはトレーナ１１６は、ＯＳ１０２の一部であり得、リアルタイムでメッセージ２０２（およびプログラムプロシージャ起動に対応する他のメッセージ）のコピーを受信するように構成され得る。なお別の例では、異常検出器１０４および／またはトレーナ１１６は、リアルタイムで、またはプログラムプロシージャが起動されてからかなり後、トレースファイルからのメッセージ２０２（およびオペレーティングシステム１０２のプログラムプロシージャが起動されたことを示す他のメッセージ）を読み取り得る。
【００３３】
異常検出器１０４および／またはトレーナ１１６は、上で説明されるように、メッセージ２０２に基づいて、起動ハッシュ２２２を生成し得る（２２０）。上で説明されるように、メッセージ２０２に基づいて起動ハッシュ２２２を生成すること（２２０）は、メッセージ２０２全体のハッシュを生成することまたはメッセージ２０２の１つ以上のコンポーネントのハッシュを生成することを含む。
【００３４】
異常検出器１０４および／またはトレーナ１１６は、起動ハッシュ２２２を起動識別子３０２に変換し得る。起動ハッシュ２２２と同様に、起動識別子３０２は、プログラムプロシージャ起動を識別する識別子である。しかしながら、起動識別子３０２は、起動ハッシュ２２２よりもサイズが小さい。
【００３５】
変換を実施するために、異常検出器１０４および／またはトレーナ１１６は、変換テーブル３０４または他の変換データ構造を使用し得る。変換テーブル３０４は、起動ハッシュおよび対応する起動識別子を備えている行を含み得る。起動ハッシュ２２２を起動識別子３０２に変換するために、変換テーブル３０４は、ちょうど生成された起動ハッシュ２２２と合致する起動ハッシュを有する行に対して検索され得る。そのような行が存在する場合、起動識別子３０２は、変換テーブル３０４のその行から読み取られる。代替として、いかなる合致するエントリも存在しない場合、起動ハッシュ２２２は、新しく割り当てられた対応する起動識別子３０２に加えて、起動テーブル３０４に追加され得る。起動識別子３０２は、起動テーブル３０４における行に特有である（または任意の他の変換データ構造におけるエントリに特有である）任意の識別子であり得る。
【００３６】
代替として、または加えて、起動識別子は、変換テーブル３０４における行番号であり得る。そのような例では、起動識別子は、変換テーブル３０４の行内に記憶される必要がないこともある。いくつかの例では、行は、より速い検索性能のためにプログラムプロシージャ識別子を含み得る。そのような例では、行は、メッセージ２０２内のプログラムプロシージャ識別子２０４と合致するプログラムプロシージャ識別子に対して検索され得、結果として生じる合致する行は、次いで、起動ハッシュ２２２に対して検索され得る。起動ハッシュ２２２がそのようなテーブルに追加される必要がある場合、プログラムプロシージャ２０４が、行内に含まれ得る。
【００３７】
任意の他の好適なデータ構造が、変換テーブル３０４の代わりに使用され得る。例えば、変換データ構造は、プログラムプロシージャ識別子を備えているキーと、第２のハッシュテーブルを備えている対応する値とを有する第１のハッシュテーブルを含み得る。第２のハッシュテーブルは、対応するプログラムプロシージャ識別子に対する起動ハッシュを備えているキーと、対応する起動識別子を備えている値とを有し得る。
【００３８】
メッセージ２０２において識別されるプログラムプロシージャの起動は、メッセージ２０２の送信側プロセス識別子２０６によって識別されるプロセス１０６から生じるプログラムプロシージャの一連の起動における１回の起動であり得る。起動識別子３０２が取得されると、起動識別子３０２は、ここで、一連のプログラムプロシージャ起動のための起動識別子を備えている変換された呼び出しシーケンス３０８内に含まれ得る。例えば、変換された呼び出しシーケンス３０８は、起動ハッシュ２２２によって（および起動識別子３０２によって）識別されるプログラムプロシージャの起動前に生じたプログラムプロシージャ起動を識別する起動識別子を含み得る。変換された呼び出しシーケンス３０８における起動識別子の数は、ウィンドウサイズＬに等しくあり得る。
【００３９】
異常検出器１０４および／またはトレーナ１１６は、変換された呼び出しシーケンス３０８が事前決定された呼び出しシーケンス３０６内に含まれるかどうかを決定し得る。事前決定された呼び出しシーケンスの各々は、それぞれの呼び出しシーケンス内のプログラムプロシージャ起動を識別する起動識別子を備えている。事前決定された呼び出しシーケンス３０６内の起動識別子の各々は、変換テーブル３０４または他の変換データ構造内の起動ハッシュにマッピングされる。事前決定された呼び出しシーケンス３０６は、任意の好適なデータ構造内に記憶され得る。例えば、事前決定された呼び出しシーケンス３０６は、呼び出しシーケンス置換テーブル３１０内に記憶され得る。事前決定された呼び出しシーケンス３０６は、呼び出しシーケンスのコンパクトな組であり得る。コンパクトである場合、事前決定された呼び出しシーケンス３０６は、現在のプログラムプロシージャ起動の起動識別子３０２に対して、変換された呼び出しシーケンス３０８内の各対応する以前の位置に対して許容可能な起動識別子の組を示し得、任意の以前の位置に対する許容可能な起動識別子の組は、変換された呼び出しシーケンス３０８内の他の以前の位置に対する許容可能な起動識別子の組から独立している。故に、変換された呼び出しシーケンス３０８が事前決定された呼び出しシーケンス３０６内に含まれるかどうかを決定することは、変換された呼び出しシーケンス３０８の内容と合致するテーブル内の行を探すことよりも複雑であり得る。例えば、許容可能な起動の組は、変換された呼び出しシーケンス３０８内の以前の位置に対して連続してチェックされ得る。
【００４０】
変換された呼び出しシーケンス３０８が事前決定された呼び出しシーケンス内にまだ含まれていない場合、異常検出器１０４および／またはトレーナ１１６は、変換された呼び出しシーケンス３０８を事前決定された呼び出しシーケンス３０６に追加し得る。
【００４１】
異常検出器１０４および／またはトレーナ１１６は、プロセス１０６のうちの１つ以上のものに対するプロファイル１２２を開発するために、上で説明されるプロシージャを繰り返し得る。繰り返すとき、変換された呼び出しシーケンス３０８内の起動識別子は、シフトされ、最も古い起動のための起動識別子を除去し、それによって、次のプログラムプロシージャ起動の起動識別子のための場所を空け得る。
【００４２】
事前決定された呼び出しシーケンス３０６が十分に投入されると、プロセス１０６の各々のためのプロファイル１２２は、異常を検出するために使用され得る。事前決定された呼び出しシーケンス３０６が十分に投入されているかどうかを決定するための任意の技法が、使用され得る。例えば、トレーナ１１６は、事前決定された長さの時間にわたって動作し得る。別の例では、トレーナ１１６は、変換された呼び出しシーケンス３０８が、事前決定された呼び出しシーケンス３０６においてその時間の事前決定された割合見出されるまで動作し得る。なお別の例では、トレーナ１１６は、事前決定された使用事例の組が実行される間、動作し得る。
【００４３】
図４は、メッセージベースのオペレーティングシステム１０２における呼び出しシーケンス異常を検出するためのシステム１００の例示的論理のフロー図を図示する。論理は、追加の、異なる、またはより少ない動作を含み得る。
【００４４】
プロセス１０６が開始されると、プロファイル１２２が、プロセス１０６において実行されるソフトウェアプログラムのためにロードされ得る（４０２）。例えば、モニタ１１８は、プロセス１０６がちょうど生成または開始されたことを示すメッセージをＯＳ１０２から受信し得る。プロセス１０６は、プロセス識別子によってメッセージにおいて識別され得る。モニタ１１８は、同じプロセス識別子を有していたプロセスに関して以前に生成されたプロファイル１２２をロードし得る。
【００４５】
ＯＳ１０２のプログラムプロシージャの起動が生じたことを示すメッセージ２０２が、受信され得る（４０４）。例えば、モニタ１１８は、ＯＳ１０２からメッセージ２０２を受信し得る。上で説明されるように、メッセージ２０２は、プログラムプロシージャ識別子２０４、送信側プロセス識別子２０６、受信側プロセス識別子、および／または他のコンポーネントを含み得る。送信側プロセス識別子２０６は、先にロードされたプロファイル１２２に対応するプロセス識別子と合致し得る。
【００４６】
起動ハッシュ２２２が、メッセージ２０２に基づいて生成され得る（２２０）。例えば、モニタ１１８は、プログラムプロシージャ識別子２０４、送信側プロセス識別子２０６、受信側プロセス識別子２０８、および／またはメッセージ２０２の他のコンポーネントに基づいて、起動ハッシュ２２２を生成し得る（２２０）。
【００４７】
起動ハッシュ２２２は、上で説明されるように、起動識別子３０２に変換され得る（４０６）。例えば、モニタ１１８は、変換テーブル３０４を使用して、起動ハッシュ２２２を起動識別子３０２に変換し得る。起動ハッシュ２２２が変換テーブル３０４内に見出されることができない場合、起動識別子３０２は、未知の起動を示すプレースホルダ値に設定され得る。プレースホルダは、変換された呼び出しシーケンス３０８が事前決定された呼び出しシーケンス３０６内で見出されないことを保証するであろう。
【００４８】
起動識別子３０２が、変換された呼び出しシーケンス３０８内に含まれ得る（４０８）。上で説明されるように、変換された呼び出しシーケンス３０８は、プログラムプロシージャの一連の起動に対する起動識別子を備えている。変換された呼び出しシーケンス３０８の長さが、起動識別子３０２を含む前のウィンドウサイズＬである場合、最も古い起動に対応する起動識別子は、ちょうど取得された起動識別子３０２のための場所を空けるために除去され得る。代替として、変換された呼び出しシーケンス３０８の長さが、まだウィンドウサイズＬではない場合、動作は、プロセス１０６が別のプログラムプロシージャを起動したことを示す次のメッセージを受信する（４０４）ために戻り得る。
【００４９】
変換された呼び出しシーケンス３０８がプロファイル１２２の事前決定された呼び出しシーケンス３０６内に含まれるかどうかの決定（４１０）が、行われ得る。例えば、モニタ１１８は、変換された呼び出しシーケンス３０８に対して事前決定された呼び出しシーケンス３０６を検索し得る。上で説明されるように、そのような検索は、例えば、変換された呼び出しシーケンス３０８における各位置に対して許容可能な起動識別子の組を連続してチャックすることを伴い得る。
【００５０】
変換された呼び出しシーケンス３０８が事前決定された呼び出しシーケンス３０６内に含まれない場合、変換された呼び出しシーケンス３０８は、異常として識別され得る（４１２）。そうでなければ、変換された呼び出しシーケンス３０８は、異常ではないと決定され得る（４１４）。
【００５１】
変換された呼び出しシーケンス３０８が異常ではないと決定される場合、動作は、プロセス１０６が別のプログラムプロシージャを起動したことを示す次のメッセージを受信する（４０４）ために戻り得る。しかしながら、変換された呼び出しシーケンス３０８が異常として識別される場合、動作は、例えば、アラームを発することによって終了し得る。
【００５２】
代替として、または加えて、変換された呼び出しシーケンス３０８が異常として識別される場合、任意のタイプの措置が、講じられ得る。例えば、動作は、プロセス１０６が別のプログラムプロシージャを起動したことを示す次のメッセージを受信する（４０４）ために戻ることによって、異常を継続して検出しようとし得る。ハンドラ１２０は、アラームを発すること、プロセス１０６を減速させること、プロセス１０６を停止すること、および／または、システムの安全レベルを改変すること等、任意の検出された異常を取り扱い得る。例えば、ＯＳ１０２が車両操向システムを制御する場合、車両操向システムは、車両操向システムを動作停止させることが潜在的ソフトウェア攻撃の観点からより安全な動作レベルと見なされ得るので、異常の検出に応答してオフに切り替え得る。ハンドラ１２０は、例えば、プラグインアーキテクチャを使用して、特定の用途のためにカスタマイズされ得る。
【００５３】
さらに、ハンドラ１２０は、異常検出の感受性を取り扱い得る。例えば、変換された呼び出しシーケンス３０８が異常として識別される（４１２）場合、ハンドラ１２０は、直ちに異常を検出する代わりに、カウンタをインクリメントさせ得る。ハンドラ１２０は、カウンタがある閾値を過ぎるまで異常を検出することを待ち得る。
【００５４】
システム１００は、追加の、異なる、またはより少ないコンポーネントとともに実装され得る。例えば、図５は、メモリ５０４と、プロセッサ５０２とを含むシステム１００の例を図示する。
【００５５】
プロセッサ５０２は、メモリ５０４と通信し得る。一例では、プロセッサ５０２は、ネットワークインターフェース（図示せず）等の追加の要素とも通信し得る。プロセッサ５０２の例は、汎用プロセッサ、中央処理ユニット、マイクロコントローラ、サーバ、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および／またはデジタル回路、アナログ回路を含み得る。
【００５６】
プロセッサ５０２は、論理を実行するために動作可能な１つ以上のデバイスであり得る。論理は、プロセッサ５０２によって実行されると、プロセッサ５０２に、異常検出器１０４および／またはシステム１００の論理によって実装される特徴を実施させる、メモリ５０４内または他のメモリ内で具現化されるコンピュータ実行可能命令もしくはコンピュータコードを含み得る。コンピュータコードは、プロセッサ５０２を用いて実行可能な命令を含み得る。
【００５７】
メモリ５０４は、データまたはそれらの任意の組み合わせを記憶および読み出すための任意のデバイスであり得る。メモリ５０４は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、またはフラッシュメモリ等の不揮発性および／もしくは揮発性メモリを含み得る。代替として、または加えて、メモリ５０４は、光学、磁気（ハードドライブ）、または任意の他の形態のデータ記憶デバイスを含み得る。
【００５８】
メモリ５０４は、ノード１１２、第２のノード１１４、異常検出器１０４、トレーナ１１６、モニタ１１８、ハンドラ１２０、および／またはＯＳ１０２を含み得る。
【００５９】
各コンポーネントは、追加の、異なる、またはより少ないコンポーネントを含み得る。例えば、異常検出器１０４は、モニタ１１８のみを含み得る。別の例として、メッセージ２０２は、パラメータ２１４の指示２１８を含まないこともある。
【００６０】
システム１００は、多くの異なる方法で実装され得る。異常検出器１０４、トレーナ１１６、モニタ１１８、およびハンドラ１２０等の各モジュールは、ハードウェアまたはハードウェアおよびソフトウェアの組み合わせであり得る。例えば、各モジュールは、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、回路、デジタル論理回路、アナログ回路、離散回路の組み合わせ、ゲート、または任意の他のタイプのハードウェアもしくはそれらの組み合わせを含み得る。代替として、または加えて、各モジュールは、例えば、モジュールの特徴のうちの１つ以上のものを実装するためにプロセッサ５０２もしくは他のプロセッサを用いて実行可能な命令を備えている、メモリ５０４の一部等のメモリハードウェアを含み得る。モジュールのうちのいずれか１つが、プロセッサを用いて実行可能な命令を備えているメモリの一部を含むとき、モジュールは、プロセッサを含むことも、含まないこともある。いくつかの例では、各モジュールは、任意の他のハードウェアを含むモジュールを伴わずに対応するモジュールの特徴を実装するためにプロセッサ５０２または他のプロセッサを用いて実行可能な命令を備えているメモリ５０４もしくは他の物理的メモリの一部のみであり得る。各モジュールは、含まれるハードウェアがソフトウェアを備えているときであっても、少なくともいくつかのハードウェアを含むので、各モジュールは、ハードウェアモジュールと同義的に称され得る。
【００６１】
コンピュータ読み取り可能な記憶媒体内に記憶されるいくつかの特徴が、示される（例えば、コンピュータ実行可能命令として実装される論理として、またはメモリ内のデータ構造として）。システムならびにその論理およびデータ構造の全てまたは一部は、１つ以上のタイプのコンピュータ読み取り可能な記憶媒体上に記憶されるか、それを横断して分散されるか、もしくはそれから読み取られ得る。コンピュータ読み取り可能な記憶媒体の例は、ハードディスク、フロッピディスク、ＣＤ−ＲＯＭ、フラッシュドライブ、キャッシュ、揮発性メモリ、不揮発性メモリ、ＲＡＭ、フラッシュメモリ、または任意の他のタイプのコンピュータ読み取り可能な記憶媒体もしくは複数の記憶媒体を含み得る。コンピュータ読み取り可能な記憶媒体は、ＣＤ−ＲＯＭ、揮発性メモリ、不揮発性メモリ、ＲＯＭ、ＲＡＭ、または任意の他の好適な記憶デバイス等の任意のタイプの非一過性コンピュータ読み取り可能な媒体を含み得る。しかしながら、コンピュータ読み取り可能な記憶媒体は、信号を伝搬するための一過性伝送媒体ではない。
【００６２】
システム１００の処理能力は、随意に、複数の分散処理システムを含む、複数のプロセッサおよびメモリ間等、複数のエンティティ間で分散され得る。パラメータ、データベース、および他のデータ構造は、別個に記憶および管理され得、単一のメモリまたはデータベースに組み込まれ得、多くの異なる方法で論理的かつ物理的に編成され得、リンクリスト、ハッシュテーブル、または暗示的記憶機構等の異なるタイプのデータ構造を用いて実装され得る。プログラムまたは回路等の論理は、複数のプログラム間で組み合わせられるか、または分割され、いくつかのメモリおよびプロセッサを横断して分散され得、共有ライブラリ（例えば、ダイナミックリンクライブラリ（ＤＬＬ））等のライブラリ内で実装され得る。
【００６３】
議論は全て、説明される特定の実装にもかかわらず、限定ではなく、本質的に例示的である。例えば、実装の選択される側面、特徴、またはコンポーネントは、メモリ内に記憶されるものとして描写されるが、システムまたは複数のシステムの全てもしくは一部は、他のコンピュータ読み取り可能な記憶媒体、例えば、ハードディスク、フラッシュメモリドライブ、フロッピディスク、およびＣＤ−ＲＯＭ等の二次記憶デバイス上に記憶される、それを横断して分散される、またはそれから読み取られ得る。さらに、種々のモジュールおよびスクリーンディスプレイ機能性は、そのような機能性の一例にすぎず、類似する機能性を包含する任意の他の構成が、可能である。
【００６４】
上で議論されるプロセス、方法、および／または技法を実装するためのそれぞれの論理、ソフトウェア、もしくは命令は、コンピュータ読み取り可能な記憶媒体上に提供され得る。図に図示される、または本明細書に説明される機能、行為、もしくはタスクは、コンピュータ読み取り可能な媒体内またはその上に記憶される論理もしくは命令の１つ以上の組に応答して実行され得る。機能、行為、またはタスクは、特定のタイプの命令セット、記憶媒体、プロセッサ、もしくは処理方略から独立し、ソフトウェア、ハードウェア、集積回路、ファームウェア、マイクロコード、および同等物によって実施され、単独で、または組み合わせにおいて動作し得る。同様に、処理方略は、マルチ処理、マルチタスキング、並列処理、および同等物を含み得る。一例では、命令は、ローカルまたは遠隔システムによる読み取りのために取り外し可能メディアデバイス上に記憶される。他の例では、論理または命令は、コンピュータネットワークを通した、または電話回線を経由する転送のために遠隔場所において記憶される。また他の例では、論理または命令は、所与のコンピュータ、中央処理ユニット（「ＣＰＵ」）、グラフィックス処理ユニット（「ＧＰＵ」）、またはシステム内に記憶される。
【００６５】
さらに、具体的コンポーネントが上で説明されるが、本明細書に説明される方法、システム、および製造品は、追加の、より少ない、または異なるコンポーネントを含み得る。例えば、プロセッサは、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、離散論理、または他のタイプの回路もしくは論理の組み合わせとして実装され得る。同様に、メモリは、ＤＲＡＭ、ＳＲＡＭ、Ｆｌａｓｈ、または任意の他のタイプのメモリであり得る。フラグ、データ、データベース、テーブル、エンティティ、および他のデータ構造は、別個に記憶および管理され、単一のメモリもしくはデータベースに組み込まれ、分散され、または多くの異なる方法で論理的かつ物理的に編成され得る。コンポーネントは、独立して動作するか、または同じプログラムもしくは装置の一部であり得る。コンポーネントは、別個の取り外し可能回路基板等の別個のハードウェア上に常駐するか、またはメモリからの命令を実装するために同じメモリおよびプロセッサ等の共通ハードウェアを共有し得る。プログラムは、単一のプログラムの一部であり、別個のプログラムであり、または、いくつかのメモリおよびプロセッサを横断して分散され得る。
【００６６】
第２の措置が、第２の措置が第１の措置から直接または間接的にもたらされるかにかかわらず、第１の措置に「応答している」と考えられ得る。第２の措置は、第１の措置よりも実質的に後の時間に起こり、依然として、第１の措置に応答し得る。同様に、第２の措置は、介入措置が第１の措置と第２の措置との間で起こる場合であっても、および介入措置のうちの１つ以上のものが直接第２の措置が実施されるようにする場合であっても、第１の措置に応答していると考えられ得る。例えば、第１の措置がフラグを設定し、第３の措置がフラグが設定されるときは常に第２の措置を後で開始する場合、第２の措置は、第１の措置に応答し得る。
【００６７】
公共への告示の使用を明瞭化し、本明細書によってそれを提供するために、語句「＜Ａ＞、＜Ｂ＞、・・・および＜Ｎ＞のうちの少なくとも１つ」または「＜Ａ＞、＜Ｂ＞、・・・＜Ｎ＞、またはそれらの組み合わせのうちの少なくとも１つ」もしくは「＜Ａ＞、＜Ｂ＞、・・・および／または＜Ｎ＞」は、本出願者によって広い意味で定義され、そうではないことが本出願者によって明確に主張されない限り、本明細書の前後の任意の他の含意される定義に優先し、Ａ、Ｂ、・・・およびＮから成る群から選択される１つ以上の要素を意味する。言い換えると、その語句は、任意の１つの要素のみを含む、または列挙されない追加の要素もまた組み合わせにおいて含み得る他の要素のうちの１つ以上のものとの組み合わせにおける１つの要素を含む、要素Ａ、Ｂ、・・・またはＮのうちの１つ以上のものの任意の組み合わせを意味する。
【００６８】
種々の実施形態が説明されたが、多くのさらなる実施形態および実装が可能であることが、当業者に明白となるであろう。故に、本明細書に説明される実施形態は、例であり、唯一の可能な実施形態および実装ではない。
【００６９】
本開示の主題は、とりわけ、以下の側面に関し得る。
１．  メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出する方法であって、方法は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、プログラムプロシージャの起動は、送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、ことと、
少なくともプログラムプロシージャ識別子および受信側プロセス識別子に基づいて、起動ハッシュを生成することと、
起動ハッシュを起動識別子に変換することと、
一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに起動識別子を含むことと、
変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
変換された呼び出しシーケンスが事前決定された呼び出しシーケンスに含まれていない場合、変換された呼び出しシーケンスを異常として識別し、そうでなければ、変換された呼び出しシーケンスが異常ではないと決定することと
を含む、方法。
２．  起動ハッシュは、送信側プロセス識別子にも基づく、側面１に記載の方法。
３．  メッセージは、プログラムプロシージャに渡されるパラメータの指示を含み、起動ハッシュは、プログラムプロシージャに渡されるパラメータの指示にも基づく、側面１−２のいずれかに記載の方法。
４．  メッセージは、チャネル識別子を含み、起動ハッシュは、チャネル識別子にも基づく、側面１−３のいずれかに記載の方法。
５．  メッセージは、受信側ノード識別子を含み、起動ハッシュは、受信側ノード識別子にも基づく、側面１−４のいずれかに記載の方法。
６．  起動ハッシュを変換することは、起動識別子に関連付けられた起動ハッシュを備えている変換テーブルにおいて起動ハッシュに対して検索することを含む、側面１−５のいずれかに記載の方法。
７．  起動識別子は、起動ハッシュを含む変換テーブルにおける行番号である、側面６に記載の方法。
８．  コンピュータ実行可能命令を備えている非一過性コンピュータ読み取り可能な記憶媒体であって、コンピュータ実行可能命令は、プロセッサによって実行可能であり、コンピュータ実行可能命令は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信するために実行可能な命令であって、メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、プログラムプロシージャの起動は、送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、命令と、
メッセージの少なくとも一部に基づいて、起動ハッシュを生成するために実行可能な命令と、
起動ハッシュを起動識別子に変換するために実行可能な命令と、
一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに起動識別子を含むために実行可能な命令と、
変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定するために実行可能な命令であって、事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、対応する起動識別子の各々は、起動ハッシュにマッピングされる、命令と、
変換された呼び出しシーケンスが事前決定された呼び出しシーケンスに含まれていない場合、変換された呼び出しシーケンスを異常として識別し、そうでなければ、変換された呼び出しシーケンスが異常ではないと決定するために実行可能な命令と
を備えている、非一過性コンピュータ読み取り可能な記憶媒体。
９．  変換された呼び出しシーケンスが、事前決定された呼び出しシーケンスに含まれているかどうかの決定は、テーブルにおいて変換された呼び出しシーケンスに対する検索に基づき、テーブルは、起動識別子の組の行を備え、起動識別子の各々は、変換データ構造において対応する起動ハッシュに関連付けられている、側面８に記載の非一過性コンピュータ読み取り可能な記憶媒体。
１０．  メッセージの受信は、トレースファイルからのプログラムプロシージャの起動についての情報の読み取りを備えている、側面８−９のいずれかに記載の非一過性コンピュータ読み取り可能な記憶媒体。
１１．  メッセージの受信は、オペレーティングシステムからの登録されたコールバックの形態におけるメッセージの受信を備えている、側面８−１０のいずれかに記載の非一過性コンピュータ読み取り可能な記憶媒体。
１２．  起動ハッシュの生成は、恣意的サイズのデータを固定サイズのデータにマッピングするハッシュ関数の適用を備え、ハッシュ関数は、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを備えているデータに適用される、側面８−１１のいずれかに記載の非一過性コンピュータ読み取り可能な記憶媒体。
１３．  メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出するためのシステムであって、プロセッサを備え、
プロセッサは、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、プログラムプロシージャの起動は、送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、ことと、
メッセージの少なくとも一部に基づいて、起動ハッシュを生成することと、
起動ハッシュを起動識別子に変換することと、
一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに起動識別子を含むことと、
変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定し、事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
変換された呼び出しシーケンスが事前決定された呼び出しシーケンスに含まれていない場合、変換された呼び出しシーケンスを異常として識別し、そうでなければ、変換された呼び出しシーケンスが異常ではないと決定することと
を行うように構成されている、システム。
１４．  プロセッサは、少なくとも受信側プロセス識別子に基づいて、起動ハッシュを生成するように構成されている、側面１３に記載のシステム。
１５．  プロセッサは、少なくとも送信側プロセス識別子および受信側プロセス識別子に基づいて、起動ハッシュを生成するように構成されている、側面１３−１４のいずれかに記載のシステム。
１６．  メッセージは、プログラムプロシージャ識別子、送信側プロセス識別子、受信側プロセス識別子、チャネル識別子、受信側ノード識別子、プログラムプロシージャのパラメータ、および／またはプログラムプロシージャに渡されるパラメータの指示を備えている、側面１３−１５のいずれかに記載のシステム。
１７．  プロセッサは、プログラムプロシージャ識別子、送信側プロセス識別子、受信側プロセス識別子、チャネル識別子、受信側ノード識別子、プログラムプロシージャのパラメータ、および／またはプログラムプロシージャに渡されるパラメータの指示のうちの少なくとも１つに基づいて、起動ハッシュを生成するように構成されている、側面１３−１６のいずれかに記載のシステム。
１８．  プロセッサは、異常としての変換された呼び出しシーケンスの識別に応答して、セキュリティレベルを変更するように構成されている、側面１３−１７のいずれかに記載のシステム。
１９．  プロセッサは、異常としての変換された呼び出しシーケンスの識別がある閾値数の異常を超えているという決定に応答して、セキュリティレベルを変更するように構成されている、側面１８に記載のシステム。
【図１】
2019527429.tif 000006
【図２】
2019527429.tif 000007
【図３】
2019527429.tif 000008
【図４】
2019527429.tif 000009
【図５】
2019527429.tif 000010
【手続補正書】
【提出日】平成31年3月19日(2019.3.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
呼び出しシーケンス異常を検出する方法であって、前記方法は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、ことと、
前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成することと、
前記起動ハッシュを起動識別子に変換することと、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むことと、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定することと
を含む、方法。
【請求項２】
前記起動ハッシュは、少なくとも前記受信側プロセス識別子に基づく、請求項１に記載の方法。
【請求項３】
前記起動ハッシュは、少なくとも前記送信側プロセス識別子と前記受信側プロセス識別子とに基づく、請求項１に記載の方法。
【請求項４】
前記メッセージは、前記プログラムプロシージャに渡されるパラメータの指示を含み、前記起動ハッシュは、前記プログラムプロシージャに渡されるパラメータの指示にも基づく、請求項１−３のうちのいずれか１項に記載の方法。
【請求項５】
前記メッセージは、チャネル識別子を含み、前記起動ハッシュは、前記チャネル識別子にも基づく、請求項１−４のうちのいずれか１項に記載の方法。
【請求項６】
前記メッセージは、受信側ノード識別子を含み、前記起動ハッシュは、前記受信側ノード識別子にも基づく、請求項１−５のうちのいずれか１項に記載の方法。
【請求項７】
前記起動ハッシュを変換することは、前記起動識別子に関連付けられた起動ハッシュを備えている変換テーブルにおいて前記起動ハッシュに対して検索することを含む、請求項１−６のうちのいずれか１項に記載の方法。
【請求項８】
前記起動識別子は、前記起動ハッシュを含む前記変換テーブルにおける行番号である、請求項７に記載の方法。
【請求項９】
コンピュータ実行可能命令を備えているコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ実行可能命令は、プロセッサによって実行可能であり、前記コンピュータ実行可能命令は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信するために実行可能な命令であって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、命令と、
前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成するために実行可能な命令と、
前記起動ハッシュを起動識別子に変換するために実行可能な命令と、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むために実行可能な命令と、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定するために実行可能な命令であって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、命令と、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定するために実行可能な命令と
を備えている、コンピュータ読み取り可能な記憶媒体。
【請求項１０】
前記変換された呼び出しシーケンスが、前記事前決定された呼び出しシーケンスに含まれているかどうかの決定は、テーブルにおける前記変換された呼び出しシーケンスに対する検索に基づき、前記テーブルは、起動識別子の組の行を備え、前記起動識別子の各々は、変換データ構造において対応する起動ハッシュに関連付けられている、請求項９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１１】
前記メッセージの受信は、トレースファイルからの前記プログラムプロシージャの前記起動についての情報の読み取りを含む、請求項９または請求項１０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１２】
前記メッセージの受信は、前記オペレーティングシステムからの登録されたコールバックの形態における前記メッセージの受信を含む、請求項９−１１のうちのいずれか１項に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３】
前記起動ハッシュの生成は、恣意的サイズのデータを固定サイズのデータにマッピングするハッシュ関数の適用を含み、前記ハッシュ関数は、前記プログラムプロシージャ識別子と、前記送信側プロセス識別子と、前記受信側プロセス識別子とを含むデータに適用される、請求項９−１２のうちのいずれか１項に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４】
呼び出しシーケンス異常を検出するためのシステムであって、前記システムは、プロセッサを備え、
前記プロセッサは、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、ことと、
前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成することと、
前記起動ハッシュを起動識別子に変換することと、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むことと、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定することと
を行うように構成されている、システム。
【請求項１５】
前記プロセッサは、少なくとも前記受信側プロセス識別子に基づいて、前記起動ハッシュを生成するように構成されている、請求項１４に記載のシステム。
【請求項１６】
前記プロセッサは、少なくとも前記送信側プロセス識別子および前記受信側プロセス識別子に基づいて、前記起動ハッシュを生成するように構成されている、請求項１４または請求項１５に記載のシステム。
【請求項１７】
前記メッセージは、前記プログラムプロシージャ識別子、前記送信側プロセス識別子、前記受信側プロセス識別子、チャネル識別子、受信側ノード識別子、前記プログラムプロシージャのパラメータ、および／または前記プログラムプロシージャに渡される前記パラメータの指示を備えている、請求項１４−１６のうちのいずれか１項に記載のシステム。
【請求項１８】
前記プロセッサは、前記プログラムプロシージャ識別子、前記送信側プロセス識別子、前記受信側プロセス識別子、前記チャネル識別子、前記受信側ノード識別子、前記プログラムプロシージャのパラメータ、および／または前記プログラムプロシージャに渡されるパラメータの指示のうちの少なくとも１つに基づいて、前記起動ハッシュを生成するように構成されている、請求項１７に記載のシステム。
【請求項１９】
前記プロセッサは、異常としての前記変換された呼び出しシーケンスの識別に応答して、セキュリティレベルを変更するように構成されている、請求項１４−１８のうちのいずれか１項に記載のシステム。
【請求項２０】
前記プロセッサは、異常としての前記変換された呼び出しシーケンスの前記識別がある閾値数の異常を超えているという決定に応答して、前記セキュリティレベルを変更するように構成されている、請求項１９に記載のシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出する方法およびシステムが、提供される。ソフトウェア攻撃または他の異常が、本明細書に説明される方法およびシステムによって検出され得る。ゼロデイ攻撃として公知である、以前まで不明であったソフトウェア脆弱性に対する攻撃であっても、検出され得る。他の検出される異常は、例えば、ソフトウェア欠陥またはハードウェア障害およびタイムアウト等の他の通常ではないイベントを含み得る。
本発明はさらに、例えば、以下を提供する。
（項目１）
メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出する方法であって、前記方法は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、ことと、
少なくとも前記プログラムプロシージャ識別子および前記受信側プロセス識別子に基づいて、起動ハッシュを生成することと、
前記起動ハッシュを起動識別子に変換することと、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むことと、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定することと
を含む、方法。
（項目２）
前記起動ハッシュは、前記送信側プロセス識別子にも基づく、項目１に記載の方法。
（項目３）
前記メッセージは、前記プログラムプロシージャに渡されるパラメータの指示を含み、前記起動ハッシュは、前記プログラムプロシージャに渡されるパラメータの指示にも基づく、項目１または項目２に記載の方法。
（項目４）
前記メッセージは、チャネル識別子を含み、前記起動ハッシュは、前記チャネル識別子にも基づく、項目１−３のうちのいずれか１項に記載の方法。
（項目５）
前記メッセージは、受信側ノード識別子を含み、前記起動ハッシュは、前記受信側ノード識別子にも基づく、項目１−４のうちのいずれか１項に記載の方法。
（項目６）
前記起動ハッシュを変換することは、前記起動識別子に関連付けられた起動ハッシュを備えている変換テーブルにおいて前記起動ハッシュに対して検索することを含む、項目１−５のうちのいずれか１項に記載の方法。
（項目７）
前記起動識別子は、前記起動ハッシュを含む前記変換テーブルにおける行番号である、項目６に記載の方法。
（項目８）
コンピュータ実行可能命令を備えている非一過性コンピュータ読み取り可能な記憶媒体であって、前記コンピュータ実行可能命令は、プロセッサによって実行可能であり、前記コンピュータ実行可能命令は、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信するために実行可能な命令であって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、命令と、
前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成するために実行可能な命令と、
前記起動ハッシュを起動識別子に変換するために実行可能な命令と、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むために実行可能な命令と、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定するために実行可能な命令であって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、命令と、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定するために実行可能な命令と
を備えている、非一過性コンピュータ読み取り可能な記憶媒体。
（項目９）
前記変換された呼び出しシーケンスが、前記事前決定された呼び出しシーケンスに含まれているかどうかの決定は、テーブルにおける前記変換された呼び出しシーケンスに対する検索に基づき、前記テーブルは、起動識別子の組の行を備え、前記起動識別子の各々は、変換データ構造において対応する起動ハッシュに関連付けられている、項目８に記載の非一過性コンピュータ読み取り可能な記憶媒体。
（項目１０）
前記メッセージの受信は、トレースファイルからの前記プログラムプロシージャの前記起動についての情報の読み取りを含む、項目８または項目９に記載の非一過性コンピュータ読み取り可能な記憶媒体。
（項目１１）
前記メッセージの受信は、前記オペレーティングシステムからの登録されたコールバックの形態における前記メッセージの受信を含む、項目８−１０のうちのいずれか１項に記載の非一過性コンピュータ読み取り可能な記憶媒体。
（項目１２）
前記起動ハッシュの生成は、恣意的サイズのデータを固定サイズのデータにマッピングするハッシュ関数の適用を含み、前記ハッシュ関数は、前記プログラムプロシージャ識別子と、前記送信側プロセス識別子と、前記受信側プロセス識別子とを含むデータに適用される、項目８−１１のうちのいずれか１項に記載の非一過性コンピュータ読み取り可能な記憶媒体。
（項目１３）
メッセージベースのオペレーティングシステムにおける呼び出しシーケンス異常を検出するためのシステムであって、前記システムは、プロセッサを備え、
前記プロセッサは、
オペレーティングシステムのプログラムプロシージャの起動を示すメッセージを受信することであって、前記メッセージは、プログラムプロシージャ識別子と、送信側プロセス識別子と、受信側プロセス識別子とを含み、前記プログラムプロシージャの前記起動は、前記送信側プロセス識別子によって識別されるプロセスから生じるオペレーティングシステムプログラムプロシージャの一連の起動における１回の起動である、ことと、
前記メッセージの少なくとも一部に基づいて、起動ハッシュを生成することと、
前記起動ハッシュを起動識別子に変換することと、
前記一連の起動のための起動識別子を備えている変換された呼び出しシーケンスに前記起動識別子を含むことと、
前記変換された呼び出しシーケンスが、複数の事前決定された呼び出しシーケンスに含まれているかどうかを決定することであって、前記事前決定された呼び出しシーケンスの各々は、対応する起動識別子を備え、前記対応する起動識別子の各々は、起動ハッシュにマッピングされる、ことと、
前記変換された呼び出しシーケンスが前記事前決定された呼び出しシーケンスに含まれていない場合、前記変換された呼び出しシーケンスを異常として識別し、そうでなければ、前記変換された呼び出しシーケンスが異常ではないと決定することと
を行うように構成されている、システム。
（項目１４）
前記プロセッサは、少なくとも前記受信側プロセス識別子に基づいて、前記起動ハッシュを生成するように構成されている、項目１３に記載のシステム。
（項目１５）
前記プロセッサは、少なくとも前記送信側プロセス識別子および前記受信側プロセス識別子に基づいて、前記起動ハッシュを生成するように構成されている、項目１３または項目１４に記載のシステム。
（項目１６）
前記メッセージは、前記プログラムプロシージャ識別子、前記送信側プロセス識別子、前記受信側プロセス識別子、チャネル識別子、受信側ノード識別子、前記プログラムプロシージャのパラメータ、および／または前記プログラムプロシージャに渡される前記パラメータの指示を備えている、項目１３−１５のうちのいずれか１項に記載のシステム。
（項目１７）
前記プロセッサは、前記プログラムプロシージャ識別子、前記送信側プロセス識別子、前記受信側プロセス識別子、前記チャネル識別子、前記受信側ノード識別子、前記プログラムプロシージャのパラメータ、および／または前記プログラムプロシージャに渡されるパラメータの指示のうちの少なくとも１つに基づいて、前記起動ハッシュを生成するように構成されている、項目１６に記載のシステム。
（項目１８）
前記プロセッサは、異常としての前記変換された呼び出しシーケンスの識別に応答して、セキュリティレベルを変更するように構成されている、項目１３−１７のうちのいずれか１項に記載のシステム。
（項目１９）
前記プロセッサは、異常としての前記変換された呼び出しシーケンスの前記識別がある閾値数の異常を超えているという決定に応答して、前記セキュリティレベルを変更するように構成されている、項目１８に記載のシステム。
【国際調査報告】
2019527429.tif 000011
2019527429.tif 000012
2019527429.tif 000013