(57)【要約】      （修正有）【課題】コントローラエリアネットワークに対する侵入検出機能を提供する。【解決手段】異常検出エンジンは、第１の時間にわたる第１データストリームを受信すること、第１ウィンドウ和を算出することを含む、第１データストリームを記号化および近似すること、第１の時間と実質的に長さの等しい第２の時間にわたる第２データストリームであって、第１データストリームからの複数の次元にわたるデータを含む第２データストリームを受信すること、第２ウィンドウ和を算出することを含む、第２データストリームを記号化および近似すること、第１ウィンドウ和と第２ウィンドウ和との間の差分を算出すること、差分が閾値を超えていること、および、複数の次元にわたる相関が破られていることを判断すること、並びに、潜在的な異常を警告することを行うように構成される。【選択図】図８
2019208199.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアプラットフォームと、
認証のためのネイティブサポートが欠如したバスへ通信可能に結合するネットワークインタフェースと、
前記ハードウェアプラットフォームにて動作する異常検出エンジンと
を備え、
前記異常検出エンジンは、
第１の時間にわたる第１データストリームであって、複数の次元にわたるデータを有し、前記複数の次元のデータが互いに相関する第１データストリームを受信すること、
第１ウィンドウ和を算出することを有する、前記第１データストリームを記号化および近似すること、
前記第１の時間と実質的に長さの等しい第２の時間にわたる第２データストリームであって、前記第１データストリームからの前記複数の次元にわたるデータを有する第２データストリームを受信すること、
第２ウィンドウ和を算出することを有する、前記第２データストリームを記号化および近似すること、
前記第１ウィンドウ和と前記第２ウィンドウ和との間の差分を算出すること、
前記差分が閾値を超えていること、および、前記複数の次元にわたる前記相関が破られていることを判断すること、並びに、
潜在的な異常を警告すること
を行うように構成される、コンピューティング装置。
【請求項２】
記号化および近似することは、
前記第１データストリームを複数のフレームに分割すること、
それぞれのフレームの少なくとも一部を記号化することであって、前記フレームのデータユニットに対する潜在的値のデータ空間を複数のｎ個のバケット記号に分割すること、および、それぞれのデータユニットに対してそのバケットに従った記号を割り当てることを有する、記号化すること、並びに、
前記第１の時間にわたって第１の和を算出することであって、前記第１データストリームを、Ｌｓ個の記号分の長さを有する複数のシーケンスであって、それぞれのシーケンスがＬｏ個の記号分前のシーケンスとオーバーラップしている複数のシーケンスに分割すること、および、それぞれのシーケンスの発生数を集計することを有する、前記第１ウィンドウ和を算出すること
を有する、請求項１に記載のコンピューティング装置。
【請求項３】
それぞれのシーケンスの前記発生数を集計することは、ｎ×ｎ×Ｌｓのアレイに前記集計を記録することを有し、前記アレイにおけるそれぞれのセルは、記号シーケンスに対する可能な値を表す、請求項２に記載のコンピューティング装置。
【請求項４】
前記第１ウィンドウ和と前記第２ウィンドウ和との間の前記差分を算出することは、前記アレイにおけるそれぞれのセル間のセル毎の差分の絶対値を算出すること、および、前記セル毎の差分の前記絶対値を合計することを有する、請求項３に記載のコンピューティング装置。
【請求項５】
前記データユニットは８ビットバイトであり、それぞれのフレームの前記一部は、それぞれのフレームの固定されたバイトである、請求項２に記載のコンピューティング装置。
【請求項６】
前記固定されたバイトは第１のバイトである、請求項５に記載のコンピューティング装置。
【請求項７】
ｎ＝８である、請求項１に記載のコンピューティング装置。
【請求項８】
ｎ＝４である、請求項１に記載のコンピューティング装置。
【請求項９】
Ｌｏ＝１である、請求項８に記載のコンピューティング装置。
【請求項１０】
前記第１の時間は２秒である、請求項９に記載のコンピューティング装置。
【請求項１１】
前記閾値は３，０００である、請求項１０に記載のコンピューティング装置。
【請求項１２】
前記異常検出エンジンは、前記異常を潜在的侵入としてさらに特定する、請求項１から請求項１１のいずれか１項に記載のコンピューティング装置。
【請求項１３】
前記異常検出エンジンは、是正措置をさらに講じる、または、セキュリティエージェントに是正措置を講じるようにさらに通知する、請求項１２に記載のコンピューティング装置。
【請求項１４】
前記バスは、自動車のためのコントローラエリアネットワーク（ＣＡＮ）バスである、請求項１から請求項１１のいずれか１項に記載のコンピューティング装置。
【請求項１５】
前記コンピューティング装置は、前記ＣＡＮバスのための車内ネットワークゲートウェイとして動作するように構成される、請求項１４に記載のコンピューティング装置。
【請求項１６】
コンピュータに、
認証のためのネイティブサポートが欠如したバスへネットワークインタフェースを通信可能に結合すること、
第１の時間にわたる第１データストリームであって、複数の次元にわたるデータを有し、前記複数の次元のデータが互いに相関する第１データストリームを受信すること、
第１ウィンドウ和を算出することを有する、前記第１データストリームを記号化および近似すること、
前記第１の時間と実質的に長さの等しい第２の時間にわたる第２データストリームであって、前記第１データストリームからの前記複数の次元にわたるデータを有する第２データストリームを受信すること、
第２ウィンドウ和を算出することを有する、前記第２データストリームを記号化および近似すること、
前記第１ウィンドウ和と前記第２ウィンドウ和との間の差分を算出すること、
前記差分が閾値を超えていること、および、前記複数の次元にわたる前記相関が破られていることを判断すること、並びに、
潜在的な異常を警告すること
を実行させる、コンピュータプログラム。
【請求項１７】
記号化および近似することは、
前記第１データストリームを複数のフレームに分割すること、
それぞれのフレームの少なくとも一部を記号化することであって、前記フレームのデータユニットに対する潜在的値のデータ空間を複数のｎ個のバケット記号に分割すること、および、それぞれのデータユニットに対してそのバケットに従った記号を割り当てることを有する、記号化すること、並びに、
前記第１の時間にわたって第１の和を算出することであって、前記第１データストリームを、Ｌｓ個の記号分の長さを有する複数のシーケンスであって、それぞれのシーケンスがＬｏ個の記号分前のシーケンスとオーバーラップしている複数のシーケンスに分割すること、および、それぞれのシーケンスの発生数を集計することを有する、前記第１ウィンドウ和を算出すること
を有する、請求項１６に記載のコンピュータプログラム。
【請求項１８】
それぞれのシーケンスの前記発生数を集計することは、ｎ×ｎ×Ｌｓのアレイに前記集計を記録することを有し、前記アレイにおけるそれぞれのセルは、記号シーケンスに対する可能な値を表す、請求項１７に記載のコンピュータプログラム。
【請求項１９】
前記第１ウィンドウ和と前記第２ウィンドウ和との間の前記差分を算出することは、前記アレイにおけるそれぞれのセル間のセル毎の差分の絶対値を算出すること、および、前記セル毎の差分の前記絶対値を合計することを有する、請求項１８に記載のコンピュータプログラム。
【請求項２０】
前記データユニットは８ビットバイトであり、それぞれのフレームの前記一部は、それぞれのフレームの固定されたバイトである、請求項１７に記載のコンピュータプログラム。
【請求項２１】
前記固定されたバイトは第１のバイトである、請求項２０に記載のコンピュータプログラム。
【請求項２２】
ｎ＝８である、請求項１６に記載のコンピュータプログラム。
【請求項２３】
ｎ＝４である、請求項１６に記載のコンピュータプログラム。
【請求項２４】
Ｌｏ＝１である、請求項２３に記載のコンピュータプログラム。
【請求項２５】
前記第１の時間は２秒である、請求項２４に記載のコンピュータプログラム。
【請求項２６】
請求項１６から請求項２５のいずれか１項に記載のコンピュータプログラムを格納する、１または複数の有形な非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、コンピュータネットワーキングの分野に関し、排他的にではないが、より具体的には、コントローラエリアネットワークに対する侵入検出のためのシステムおよび方法に関する。
【背景技術】
【０００２】
いくつかの最新のデータセンタにおいて、デバイスまたは機器の機能は、特定の固定されたハードウェア構成に対して結び付けられていなくてよい。むしろ、いくつかの場合においては、処理、メモリ、ストレージ、およびアクセラレータ機能が、複数の異なる位置から統合されて、仮想的な「複合ノード」を形成してよい。現代のネットワークは、例えばサーバラックに含まれ、ハイパーバイザによって制御された、多数の汎用のハードウェアサーバデバイスをホストするデータセンタを含んでよい。それぞれのハードウェアデバイスは、ワークロードサーバまたは仮想デスクトップのような、仮想デバイスの１または複数のインスタンスを実行してよい。コンピューティングデバイスは、個々のコンピューティングデバイス、または特定用途デバイス（例えば、自動車を制御するもの）のように、データセンタの外部にてホストされることもまたできる。
【図面の簡単な説明】
【０００３】
本開示は、添付の図面とともに読まれた場合に、以下の詳細な説明から最も良く理解される。業界の慣例に従い、様々な特徴は、必ずしも縮尺通りに描かれてはおらず、例示のみを目的として使用されていることを強調しておく。縮尺が示されているところでは、明示的に、または暗示的に、それは１つの説明のための例を提供するのみである。他の実施形態において、様々な特徴の寸法は、説明の明確さのために、任意に増加または縮小されてよい。
【０００４】
【図１】本明細書の１または複数の例に係る、コントローラエリアネットワーク（ＣＡＮ）をホストし得る自動車のブロック図である。
【０００５】
【図２】本明細書の１または複数の例に係る、ＣＡＮに接続されたシステムのブロック図である。
【０００６】
【図３】本明細書の１または複数の例に係る、ＣＡＮバスデータフレームのブロック図である。
【０００７】
【図４】本明細書の１または複数の例に係る、記号集約近似（ＳＡＸ）値表のブロック図である。
【０００８】
【図５】本明細書の１または複数の例に係る、ＳＡＸシーケンス表のブロック図である。
【０００９】
【図６】本明細書の１または複数の例に係る、ＳＡＸ頻度表のブロック図である。
【００１０】
【図７】本明細書の１または複数の例に係る、潜在的侵入を示し得る異常の検出を例示するグラフである。
【００１１】
【図８】本明細書の１または複数の例に係る、異常検出を実行する方法のフローチャートである。
【００１２】
【図９】本明細書の１または複数の例に係る、距離算出の例を例示する。
【００１３】
【図１０】本明細書の１または複数の例に係る、コンピューティングプラットフォームのコンポーネントのブロック図である。
【００１４】
【図１１】本明細書の１または複数の例に係る、中央処理装置（ＣＰＵ）のブロック図である。
【発明を実施するための形態】
【００１５】
以下の開示は、本開示の様々な特徴を実装するための、多くの異なる実施形態または例を提供する。コンポーネントおよび構成の具体例が、本開示を簡略化すべく以下に説明される。これらは、もちろん単なる例に過ぎず、限定的であることは意図されない。さらに、本開示は、様々な例における参照番号および／または文字を繰り返してよい。この繰り返しは、簡略化および明確さを目的としており、本質的に、様々な実施形態および／または説明される構成間の関係を規定するものではない。異なる実施形態は異なる利点を有してよく、特定の利点が、あらゆる実施形態に必ず必要なわけではない。
【００１６】
インテル（登録商標）または同様なものによって提供されるハードウェアプラットフォームのような現代のコンピューティングプラットフォームは、デバイス性能を監視し、リソースプロビジョニングについて判断するための機能を含んでよい。例えば、クラウドサービスプロバイダ（ＣＳＰ）によって提供され得るもののような大きなデータセンタにおいて、ハードウェアプラットフォームは、プロセッサ、メモリ、ストレージプール、アクセラレータ、およびその他の同様なリソースのような計算リソースを有するラックマウント式のサーバを含んでよい。本明細書にて使用されるように、「クラウドコンピューティング」は、データ、リソース、および／または技術へのユビキタス（多くの場合ワールドワイド）なアクセスを可能にする、ネットワーク接続されたコンピューティングリソースおよび技術を含む。概してクラウドリソースは、現在のワークロードおよびニーズに従って、動的にリソースを割り当てるための大きなフレキシビリティによって特徴付けられる。これは、例えば、ハードウェア、ストレージ、およびネットワークのようなリソースが、ソフトウェア抽象化層を介して仮想マシン（ＶＭ）へ提供される仮想化によって、および／または、ネットワーク機能のインスタンスが、互いに分離されてはいるが、基本的なオペレーティングシステム、メモリ、およびドライバリソースを共有する「コンテナ」に提供されるコンテナ化によって実現され得る。ハードウェアプラットフォームは、組み込みシステム、および、以下の図１０および図１１に例示されるもののようなシステムを含む、他のタイプのコンピューティングシステムもまた含んでよい。
【００１７】
現代の自動車は、車両の最適な動作を保証すべく互いに通信することが必要であろうコントローラ、センサ、入力、および他のデータシステムの複雑なネットワークを含み得る。これは、いわゆるスマートカーにおいて特に複雑な問題になり得る。この場合車両は、車両のエンドユーザまたはオペレータに対して情報を提供するのみでなく、いくつかの限定された環境、または、完全に自律的な自動運転車の場合のいずれかにおいて、車両のいくつかまたは全ての機能もまた制御する。最新の車両は、数十年間にわたって最新の車両に見られてきた電子制御ユニット（ＥＣＵ）を含み得るのみでなく、センサ、コンピュータビジョンシステム、検出器、インフォテイメントシステム、および車両と全てとの間（Ｖ２Ｘ）の通信（すなわち、車車間または車両とインフラストラクチャ間の通信システム、つまり、車両が、それ自身のサブシステムとのみでなく、他の車両、トラフィック情報、天気情報などのような外部システムともまた通信し得ることを意味する）もまた含み得る。
【００１８】
車両ネットワークへのＶ２Ｘの導入は、悪意のある行為者にとって、実質的に新たな攻撃のベクトルを提供する。以前であれば、車両は、外部ネットワークアクセスがほとんどまたは全く無い、完全に自己完結型のネットワークであった。これに対し、Ｖ２Ｘの導入は、悪意のある行為者が、今や多くの車両ネットワークへの侵入インタフェースを有することを意味している。これは、インジェクション攻撃またはスプーフィング攻撃のような悪意のあるペイロードを導入する機会を攻撃者に提供する。これに対し、以前は、車両自身内のコンポーネントに物理的に不正に侵入すること無しには、そのような攻撃はほぼ不可能であった。
【００１９】
互いに通信することが可能であるべき車両のサブシステムに対する要求に応じて、コントローラエリアネットワーク（ＣＡＮ）バスが生まれた。ＣＡＮバスは、特に、集中ホストコンピュータまたは他の中央コントローラユニットが欠如し得る環境において、様々なデバイスが互いに通信することを可能にするロバスト規格によって定義される。ＣＡＮバスは、それぞれのデバイスが１つのノードとして既知であるマルチマスタシリアルモニタにて動作する。ノードは、単一の周期的出力を有する単純なセンサから、高性能なソフトウェアを実行する極めて複雑な組み込みコンピュータまで、どのようなものであってもよい。これを書いている時点において、ＣＡＮバスの最新のイテレーションは、国際標準化機構ＩＳＯ  １１８９８−２規格によって定義される。これは、１２０オームの抵抗器によってそれぞれの端部が終端された線形バスを使用した高速ＣＡＮバスユニットを定義する。ＣＡＮバスは、その物理的な実装がＣＡＮＨおよびＣＡＮＬと名付けられた２つのワイヤを含む、差動シグナリングモデルを使用する。ノードが「低」を駆動するときにはいつでも、ＣＡＮＨおよびＣＡＮＬは、それぞれ、３．５Ｖおよび１．５Ｖの信号を仮定し、これは「優勢」信号として知られている。ノードが「高」を駆動するときにはいつでも、ＣＡＮＨおよびＣＡＮＬは、両方ともに１．５Ｖの信号を仮定し、これは「劣性」として知られている。駆動されていない場合、終端抵抗器は、２つのワイヤを１．５ボルトの公称差動電圧へ受動的に戻す。
【００２０】
ＣＡＮバスは、元々、大抵の自動車が外部への接続を実質的に有しておらず、従って、侵入に対するセキュリティが現在ほどには重要な懸念ではなかった（例えば、自動車中のノードは、車両自身の外部へ何の通信機能も有さなかった）時代に設計された。従って、ＣＡＮバス規格は、元々、いかなるネイティブなセキュリティ機能も無しで考えられていた。しかしながら、ＣＡＮバスが依然として事実上の業界標準である現代の自動車の実施においては、車内ネットワークの外部からこのバスへ接続可能になってきた。特に、ＣＡＮバスへ接続されたＶ２Ｘノードの導入は、攻撃面を拡大し、外部の行為者がＣＡＮバスに到達して悪意のある動作をリモートで実行することを可能にしてきた。これは、完全な、または一部の自律的制御を車両が有する場合、特に懸念となり得る。そのような場合、ＣＡＮバスネットワークへの侵入は、重大な安全性の懸念を表し得る。
【００２１】
例えば、攻撃者は、ＣＡＮバス内のデータを改ざんし得る、もしくは、ＣＡＮバス上の有効ノードまたはＥＣＵになりすますことができ得るメッセージをＣＡＮバスへとインジェクトし、これにより、システムを安全動作基準から外れさせ得るだろう。ＣＡＮバスにはあらゆるネイティブな認証メカニズムが欠如しているので、不正なメッセージが、本物のメッセージとしてシステムによって使われかねない。いくつかの場合において、データ元認証のための暗号メカニズムが、信頼できるドメインをＣＡＮバスに導入するために使用され得る。しかし、これでさえも、不正に侵入されてしまったＥＣＵの場合を軽減し得ず、従って、攻撃者のペイロードを含んでいるのに、外見的には本物のようなメッセージを送信してしまいかねない。
【００２２】
自動車のようなＣＡＮバスネットワークの安全性およびセキュリティを改善すべく、自動的にバスを検査し、異常を検出することのできる侵入検出システム（ＩＤＳ）を導入することが有利である。そのようなＩＤＳはメッセージ頻度を基礎とすることが可能であり、インジェクション攻撃を検出することに成功し得る。
【００２３】
しかしながら、スプーフィング攻撃を検出することもまた可能であることが有利である。この目的には機械学習アルゴリズムが適切なものであり得るが、それらは、トレーニング段階の間に攻撃サンプルを必要とする。これは、それらが攻撃をリアルタイムに検出することが可能ではないかもしれないということを意味する。従って、改善されたＩＤＳを提供すべく、本明細書は、複数の時系列のストリームを使用して、データ中の固有パターンを観察する記号集約近似（Ｓｙｍｂｏｌｉｃ  Ａｇｇｒｅｇａｔｉｏｎ  Ａｐｐｒｏｘｉｍａｔｉｏｎ）（ＳＡＸ）に基づく方法を例示する。これは、システムがＣＡＮバス（または、他のネットワーク）中の異常を検出すること、および、それらの異常を考えられる侵入または他のエラーとして特定することを可能にする。
【００２４】
本明細書の侵入検出システムの実施形態は、車内ネットワークのような多くのネットワークにおいて、大抵のメッセージはＣＡＮバスに対して規則的に送信され、メッセージペイロードの大部分のコンテンツは、一定のままであるか、または、所与の期間にわたって漸進的にのみ変化するかのいずれかであるという事実に依拠している。従って、ＣＡＮバスペイロードストリームは、所与の動作状況に対してあるパターンを形成する。ＣＡＮバスは、本明細書のいくつかの部分において、本明細書にて説明されるＩＤＳから恩恵を受け得る特定のバスの具体的な例として使用されているが、非限定的で、単に説明のための例であることが理解されるべきであることに留意されたい。本明細書のＩＤＳは、多くの異なるタイプのネットワークに適用されることができ、デバイスまたはメッセージ認証のための内蔵サポートまたはネイティブサポートを何ら有さないネットワークまたはバスにおいて特に有益であり得る。非限定的例として、内部のメッセージ偽造に対して脆弱でありかねず、有効な認証タグとともに送信され得る悪意のあるペイロードに対し、接続されたデバイスを危険にさらすイーサネット（登録商標）を含む、他のタイプのネットワークまたはバスが、本明細書のＩＤＳの恩恵を受けるだろう。
【００２５】
攻撃者が、例えば、エンジン回転またはギア値を変化させることのようなスプーフィング攻撃、もしくは、フェイクメッセージを挿入することのようなインジェクション攻撃を実行する場合、それらの確立されたパターンが、おそらく破られるだろう。
【００２６】
その結果、時系列データストリームパターン中の異常が、潜在的侵入の証拠として理解されるだろう。
【００２７】
時系列異常検出は、ある期間内で複数の数の平均を算出する「移動平均」のような、広範囲の実装を含む。しかしながら、いくつかの既存の時系列異常検出法は、単一次元の時系列に依拠している。ＣＡＮバスデータは、複数の次元に沿ったメッセージを含んでよく、それぞれの次元は、異なるタイプのメッセージを表す。例えば、それぞれのメッセージタイプは、異なるシステムからの異なるタイプの入力を表してよい。
【００２８】
しかしながら、ＣＡＮバス内では、複数の次元または複数のメッセージタイプにわたって固有のパターンが観察されてよい。例えば、ギアの変化は、速度およびブレーキの解除における同時の変化を生じさせ得る。これらのメッセージは互いに一致する。より一般的な意味において、メッセージＢがメッセージＡと相関すると言われ得る。例えば、メッセージＡの値が００である場合、メッセージＢの値は００であり、メッセージＡの値が０８の場合、メッセージＢの値は０４である。いくつかの場合において、車両内の多くのシステムが相互に依存するので、これらの相関は確定的に適用できる。メッセージＡまたはメッセージＢを別個のストリームとしてのみ見る時系列異常検出システムは、これらのうちの一方が外れた場合には、侵入を警告することが可能ではないだろう。しかし、メッセージＡの値が０８且つメッセージＢの値が００という観察結果は、既知の確定的な相関と合致しない。従って、侵入または異常とのより程度の高い相関信頼性を提供する。従って、複数の次元または複数のメッセージタイプの間のこの基本的な相関は、ベースラインパターンを生成するために使用されてよい。本明細書の侵入検出モデルは、ベースラインからのあらゆる逸脱を検出して、潜在的な異常を報告し得る。
【００２９】
ここで、コントローラエリアネットワークに対する侵入検出を提供するためのシステムおよび方法が、添付の図面をより具体的に参照して説明されるであろう。図面全体にわたって、特定のデバイスまたはブロックが完全にまたは実質的に複数の図面にわたって一貫していることを示すべく、いくつかの参照番号が繰り返され得ることに留意されるべきである。しかしながら、これは、開示される様々な実施形態の間のいかなる具体的な関係を示唆することも意図していない。いくつかの例において、複数の要素の属が特定の参照番号（「ウィジェット１０」）で呼ばれることがある。これに対し、その属の個々の種または例は、ハイフンでつながれた数字（「第１の特定のウィジェット１０−１」および「第２の特定のウィジェット１０−２」）で呼ばれることがある。
【００３０】
図１は、本明細書の１または複数の例に係る、コントローラエリアネットワーク（ＣＡＮ）をホストし得る自動車１００のブロック図である。
【００３１】
車両１００は、ＣＡＮバスのようなバスにおけるノードとなり得る、多くのユニットを含んでよい。例えば、車両１００は、空気燃料混合物、加速、燃料噴射、および同様な機能のようなことを制御すべく、一般的に車に使用されているＥＣＵと同様であり得る主電子制御ユニット（ＥＣＵ）１０４を含んでよい。いくつかの例において、一般的なＥＣＵは、車の速度または方向を直接は制御し得ないが、電子ステアリング制御、ブレーキをかけること、加速などのようなユーザの入力に応答した多くの信号を処理し得る。本開示の実施形態において、車両１００は、上記にて説明されたように、車車間および車両とインフラストラクチャ間の通信を実行するように構成されたＶ２Ｘインタフェースを含んでよい。
【００３２】
車両１００は、多くの他のセンサおよびプロセッサもまた含んでよく、これらの数およびタイプは、車のタイプに関連し得る。例えば、ローエンドで安価な車両は少数のセンサのみを有してよく、これに対して電子補助機能を有する車両は、はるかに多くの機能セットを有してよく、自律的な自動運転車は、自動運転機能をサポートするためのさらに多くの機能セットを有してよい。例示的且つ非限定的な例として、車両１００は、速度計１４０、タイヤの空気圧センサ１０８、超音波センサ１２８、レーダ１２４、フロントカメラ１１６、リアカメラ１１２、レーン追従センサ１２０、周囲温度センサ１３６を含んでよい。その他のセンサおよびサブシステムが、非限定的な例として、タコメータ、コンパス、ＧＰＳ、加速度計、自動ブレーキシステム、自動トラクション制御システム、ステアリング制御サブシステム、およびその他を含んでよい。
【００３３】
これらのシステムのそれぞれは、これらのシステムのうちの他の１または複数と、いくつか複数の時刻において通信する必要があり得る。他のシステムと通信するために、ＣＡＮバス上のノードが、メッセージのソースを特定するとともに任意でメッセージのターゲットもまた特定するヘッダを有するメッセージを、ＣＡＮバスへブロードキャストしてよい。ＣＡＮバスはブロードキャスト方式で動作するので、ＣＡＮバス上のノードの全てがこのメッセージを受信し得る。そして、ターゲットではないメッセージまたはそのメッセージを必要としないメッセージは、そのメッセージを単純に破棄または無視してよい。
【００３４】
図２は、本明細書の１または複数の例に係る、ＣＡＮに接続されたシステムのブロック図である。
【００３５】
この例において、ＣＡＮバス２００は、高ワイヤ２０２および低ワイヤ２０３を含む。上記にて説明されたように、そしてＣＡＮバスの規格に詳述されるように、ＣＡＮバス上のノードは、高ワイヤおよび低ワイヤに信号を駆動して論理０および論理１を表すことにより通信し得る。明細書において定義されるように、高ワイヤ２０２および低ワイヤ２０３は、それらの端部が一対の１２０オームの抵抗器によって終端される。
【００３６】
例示的且つ非限定的な例として、ＣＡＮバス２００は、ＥＣＵ２０４、超音波センサ２２８、レーン追従センサ２２０、速度計２４０、Ｖ２Ｘインタフェース２３２、リアカメラ２１２、フロントカメラ２１６、タイヤの空気圧センサ２０８、レーダ２２４、および車内ネットワークゲートウェイ２５０を含む、多くのノードを自身に取り付けている。
【００３７】
ＣＡＮバス規格に従うと、ＣＡＮバス２００上の様々なノードは、ピアノードであるものとみなされてよく、必ずしも「マスタノード」として選択または指定されるノードが存在する必要は無い。しかしながら、車内ネットワークゲートウェイ２５０は、特定のセキュリティ機能を有してよい。具体的に、車内ネットワークゲートウェイ２５０は、ＣＡＮバス２００を監視し、考えられる異常を検出し、この考えられる異常を、考えられる侵入として特定するように構成されてよい。車内ネットワークゲートウェイ２５０が異常または侵入を特定する場合、それは、車両のオペレータに警告すること、Ｖ２Ｘインタフェース２２４を介して外部セキュリティベンダに尋ねること、そして、その異常が解決され得て車両が再び安全に動作できるまで、安全な静止位置へと車両をおそらく強制することのような、適切な是正措置を講じるように構成されてもまたよい。
【００３８】
図３は、本明細書の１または複数の例に係る、ＣＡＮバスデータフレーム３００のブロック図である。
【００３９】
図３に例示されるように、ＣＡＮバスデータフレーム３００は、１ビットの開始フレームフラグ３０４を含み、メッセージＩＤ３０８がこれに続く。メッセージＩＤ３０８は、１１から２９ビットの間であってよく、データフィールドにおいて送信される信号のセットを特定する。ＣＡＮバスデータフレーム３００は制御フィールド３１２もまた含み、制御フィールド３１２は、これが標準的フレームかまたは拡張されたフレームであるかどうかのような、および、リモートフレームを要求するためのもののような、制御データを提供する。制御フィールド３１２は、データフィールドの長さを示す４ビットもまた含む。
【００４０】
ＣＡＮバスデータフレーム３００のペイロードは、０から８バイト（０から６４ビット）の間を含み得るデータフィールド３１６に含まれる。エラー検出のために使用される巡回冗長チェック（ＣＲＣ）フィールド３２０がこれに続く。ＡＣＫフィールド３２４は、確認応答を送信するために使用される。７ビットのエンド・オブ・フレーム３２８は、ＣＡＮバスデータフレーム３００を終端する。
【００４１】
上記にて例示されるように、ＣＡＮバスデータフレーム３００は、８バイトまでのペイロードをデータフィールド３１６中に含む。アプリケーションに応じて、データフィールドは、特定のコンテンツを伝えるサブフィールドにさらに分割されてよい。例えば、１分当たりの回転（ＲＰＭ）、車輪角度、速度、または他のデータポイントを伝えるために、特定のサブフィールドが使用されてよい。自動車という状況においては、ＣＡＮバスメッセージの大部分が一定の時間間隔で送信されることが観察されてきた。そのため、（例えば、同一のメッセージＩＤを有する）一連の同一タイプのメッセージを検討することにより、いくつかの予測可能なパターンを観察することが可能である。複数のパターンが、複数のタイプのメッセージをカバーする一連のメッセージにもまた観察され得る。
【００４２】
ＣＡＮバス上のメッセージシーケンスＭが、Ｍ＝｛…，ｍｉ−１，ｍｉ，ｍｉ＋１，…｝としてモデル化され得る。ここで、ｍｉは複数のメッセージのうちの１つであり、ｉはメッセージの順序を表す。それぞれのメッセージｍｉは、Ｄｉ＝｛…，ｄｊ｝としてモデル化され得る８バイトまでのデータを、データフィールド３１６中に含んでよい。ここで、Ｄｉは１バイトであり、１≦ｊ≦８である。個々のバイトのそれぞれは、０から２５５の間（または、１６進数の場合は０からＦＦの間）の、個々の１０進数の値または１６進数の値として解釈されてよい。
【００４３】
ある期間内にＣＡＮバスにおいてブロードキャストされる全メッセージのうちのｊ番目のバイトを考慮すると、数的な時系列が観察され得る。例えば、第１のバイトが選択される場合を考慮すると、それぞれのＣＡＮバスデータフレームの第１のバイトが０から２５５の間の値としてプロットされる。
【００４４】
観察に基づいて、この時系列が一定のデータパターンに従ってモデル化され得ることが見出されてきた。異なるタイプのメッセージが、同一または同様なデータペイロードを有するかもしれないが、時系列にわたって一連のＣＡＮバスデータフレームの固定されたバイトを検討することは、同様なグラフをもたらす傾向があることに留意されたい。
【００４５】
従って、攻撃者がＣＡＮバスにてインジェクションまたはスプーフィングによるもののような攻撃を実行する場合、悪意のあるペイロードが、通常の一連のデータストリームを妨害し、従って、通常のパターンからの逸脱を表す。本明細書は、データストリーム中の異常を特定し、これらを潜在的に悪意あるものとして特定すべく、時系列異常検出スキームを使用する。
【００４６】
いくつか従来の時系列異常検出法が単一の時系列スレッドに対して使用されるが、これとは対照的に、ＣＡＮバスは、単一のデータストリーム内に複数の時系列メッセージを含んでよいことに留意されたい。従って、異常検出モデルをＣＡＮバスデータストリームに合わせるべく、記号集約近似（ＳＡＸ）に基づいた新規なアルゴリズムが適用される。
【００４７】
図４を参照すると、図４は、本明細書の１または複数の例に係る、記号集約近似（ＳＡＸ）値表４００のブロック図である。
【００４８】
ＳＡＸ値表４００は、８ビット値（例えば、図３のデータフィールド３１６内の単一の特定されたバイト）が８個の異なる「バケット」に分割されているＳＡＸの実施形態を表す。ここでは、説明のための例として８個のバケットが使用されているが、実際には、任意の数のバケットが使用されてよい。さらに、この例においては、それぞれのバケットが互いのバケットと等しいサイズとなっているが、これは、全ての場合に必要なわけではない。
【００４９】
いくつかの場合において、アドレス空間が、より大きな関心またはより小さな関心の複数の領域に分割されてよい。この場合、より高い粒度のバケットサイズが、より高い関心の領域に対して使用されてよく、より低い粒度のバケットサイズが、より小さな関心の領域に対して使用されてよい。
【００５０】
実際には、２５６個の値を有する８ビットのアドレス空間が、低解像度極限（言い換えると、２５６個全ての値が１個のバケットにグループ化される）における１個のバケットから、高解像度極限（言い換えると、それぞれの値がそれ自身の個々のバケットを有する）における２５６個のバケットまでの間の、任意の数のバケットに分割されてよい。これらの極限の場合は、限定された実際上の値を有する。実際問題として、２個、４個、８個、１６個、またはいくつかの他の値のバケット個数のような、解像度と処理の容易さとの間の適切なトレードオフを提供するいくつかのバケット数を選択することが重要である。
【００５１】
図４から図６の目的のために、例示的な値として８個のバケットが選択されているが、本明細書にて説明される方法はまた、わずか４個のバケットによって実験的に適用されてきており、その場合にも好結果を得てきたことにもまた留意されるべきである。
【００５２】
８個のバケットの実施形態において、８ビットのアドレス空間は、（実施形態に応じて、等しいサイズまたは異なるサイズの）値の複数の範囲に分割され、その各々に対して、文字値によって特定されるバケットが割り当てられる。例えば、範囲０から３１はバケットＡに割り当てられ、範囲３２から６３まではバケットＢに割り当てられ、範囲６４から９５はバケットＣに割り当てられ、範囲９６から１２７はバケットＤに割り当てられ、範囲１２８から１５９はバケットＥに割り当てられ、範囲１６０から１９１はバケットＦに割り当てられ、範囲１９２から２２３はバケットＧに割り当てられ、範囲２２４から２５５はバケットＨに割り当てられる。
【００５３】
ＳＡＸは、未処理の時系列をバケット化された表現へと変換する方法である。一般論としては、全ての可能な値がｎ個のバケットに分割され、１個のバケットがＳＡＸ法における１つの記号によって表される。例えば、ＳＡＸ値表４００中のバケットＡからＨは、それぞれ、ＳＡＸ法中の１つの記号を表す。
【００５４】
図５を参照すると、図５は、本明細書の１または複数の例に係る、ＳＡＸシーケンス表５００のブロック図である。
【００５５】
ＳＡＸシーケンス表５００は、ＳＡＸ法の「シーケンス」の外観を例示する。ＳＡＸシーケンス表５００は、８ビットのアドレス空間が、２記号シーケンスによる８個のバケットに分割されている例を例示する。言い換えると、時系列を算出することにおいて、そのシーケンスにわたってスライディングウィンドウが適用され、それぞれの個々の記号は、２記号シーケンスにおける第１の事項として機能する。従って、この例においては、可能なシーケンス、すなわち、シーケンスＡＡからＨＨが、表５００によって特定される。
【００５６】
これは、潜在的に大きく、煩雑なバイナリデータストリームを、より扱いやすい離散的なシーケンスの形に縮小する。例えば、３記号シーケンスが選択されていた場合、第３の次元が表５００に加えられ、そのシーケンスはＡＡＡからＨＨＨまでの範囲に及ぶであろうことに留意されたい。概して、ＳＡＸシーケンス表５００は、アレイのそれぞれの次元にｎ×ｎのグリッドが含まれる多次元アレイとして考えられ得る。
【００５７】
図６を参照すると、図６は、本明細書の１または複数の例に係る、ＳＡＸ頻度表６００のブロック図である。
【００５８】
ＳＡＸ頻度表６００は、入力ストリング内の離散的なシーケンス値のそれぞれの発生の集計を保持する。図６の例においては、疑似ランダムな入力ストリング６０２が生成された。入力ストリング６０２は、記号ＢＦＣＤＦＤＣＧＡＧＦで始まる。入力ストリング６０２は、次に、２記号シーケンス、言い換えると、ＢＦ、ＦＣ、ＣＤ、ＤＦ、ＦＤ、ＤＣ、ＣＧ、ＧＡ、ＡＧ、ＧＦなどに分割される。それぞれの記号の発生の集計が、ＳＡＸ頻度表６００に保持されてよい。
【００５９】
一般論として、ｎ×ｎのグリッドが、それぞれのサブシーケンスの頻度を含むように設定される。ここで、ｎはＳＡＸモデルにおけるバケットの数である。全てのサブシーケンスの頻度が、ＳＡＸ頻度表６００中の対応するスロットに記録されてよい。このグリッドは、「時系列ビットマップ」ともまた呼ばれ得る。
【００６０】
２つのｎ×ｎビットマップＡとＢの間の距離は、
2019208199.tif 000003
として数学的に定義され得る。２つのビットマップ間の距離は、次に、それぞれの時間インスタンスにおける異常スコアとして測定されてよい。２つの要素間の距離は、互いの距離に対して等しい重みである必要はないことに留意されたい。複数の実施形態が、いくつかの要素に対して、より大きな、またはより小さな重みを与えてよい。
【００６１】
図７を参照すると、図７は、本明細書の１または複数の例に係る、潜在的侵入を示し得る異常の検出を例示するグラフ７００である。グラフ７００は、ある時間ウィンドウにわたってＳＡＸ時系列を測定した実際の実験結果を例示する。
【００６２】
実験的に、悪意のあるパケットがデータストリーム中に意図的に挿入された。グラフ７００に明らかなように、潜在的侵入７０４は、その前の系列から、定義されている異常スコア閾値７０８を超えるほどの距離を有する。潜在的侵入７０４は閾値７０８を超えているので、これは異常として特定される。そして次に、是正措置が講じられ得るように、さらに解析されてよい。
【００６３】
図８は、本明細書の１または複数の例に係る、異常検出を実行する方法８００のフローチャートである。
【００６４】
方法８００のいくつかまたは全ては、例えば、本明細書の図９および図１０に例示されるハードウェアのようなハードウェアで具現化され得る、図２の車内ネットワークゲートウェイ２５０によって実行され得ることに留意されたい。方法８００は、ハードウェアプラットフォームにホストされる１または複数のロジック要素によって実行されてよく、これは、ハードウェア、ソフトウェア、ファームウェア、または他の適切なロジック要素の任意の組み合わせを含んでよい。方法８００の説明全体にわたって、いくつかの動作が「ロジック」によって実行されると言われてよく、これは、本明細書の教示に従って実装される任意のロジックであると理解されるべきである。
【００６５】
ブロック８０４において、ロジックは、本明細書ではＷｃｕｒおよびＷｐａｓｔと呼ばれる２つの連結された時間ウィンドウを、時系列にわたってスライドさせる。それぞれのビットマップが、時間ウィンドウＳｗを有する一連の詰められたメッセージにわたって生成されると仮定すると、ロジックは、２つの別個のビットマップ、すなわち、過去のウィンドウＷｐａｓｔにわたるＢｐａｓｔおよび現在のウィンドウＷｃｕｒにわたるＢｃｕｒを保持する。
【００６６】
ブロック８０８において、ロジックは、２つのウィンドウに対する時系列ビットマップＢｃｕｒおよびＢｐａｓｔを更新する。例えば、ロジックは時刻０において開始するものと仮定する。Ｂｐａｓｔは、第１のＳｗ時間ウィンドウ（すなわち、｛Ｓｗ，２Ｓｗ｝）内で観察されるデータを使用して構築されてよい。時刻ｔ＝２Ｓｗにおいて２つのビットマップが構築された後、それぞれの時間ステップにおいて異常スコアを生成する上述のｄｉｓｔ関数を使用して２つのビットマップ間の距離を算出することにより検出が開始されてよい。
【００６７】
ブロック８１２において、ロジックは２つのウィンドウ間の差分を算出する。この差分は、それぞれの時間ステップにおいて異常スコアを生成する上述のｄｉｓｔ関数に従って算出され得る。
【００６８】
ひとたび検出を開始すると、２つのビットマップは、スライディングウィンドウメカニズムを使用して、それぞれの時間ステップにおいて更新される。具体的に、それぞれの時間ステップｔｉにおいて、ｔｉにて観察された新たなデータ記号を追加し、Ｗｃｕｒにて観察された最も古いデータ記号を破棄することにより、Ｂｃｕｒが更新される。すなわち、［ｔｉ−Ｓｗ，ｔｉ］によって観察されたデータシーケンスがＢｃｕｒに保持される。Ｂｐａｓｔも同様に更新される。すなわち、ウィンドウ［ｔｉ−２Ｓｗ，ｔｉ−Ｓｗ］の間のデータを記録する。
【００６９】
図９を参照すると、図９は、本明細書の１または複数の例に係る、距離算出の例を例示する。
【００７０】
この例示を簡略化する目的のため、図９は、４個のバケットのみが提供されるが、前述の実施形態のように、シーケンスサイズが依然として２である一実施形態を例示する。簡単に言うと、この距離は、２つの表の間のセル毎の差分の絶対値の合計であると言うことができる。従って、図９において、Ｂｐａｓｔ９０４およびＢｃｕｒ９０８は、１１の値だけ異なる。Ｂｐａｓｔ９０４中のそれぞれのセルを、Ｂｃｕｒ９０８中のその対応するセルと比較することによってこの数に到達する。差分があるところでは、その差分の絶対値が全体の距離に加えられる。この場合、距離は１１である。これらのセルは等しい重みを有する必要がないことに留意されたい。異なるセルに対して異なる重みが割り当てられ得る。
【００７１】
ここで、図８に戻って参照すると、判断ブロック８１６において、ロジックは、２つのウィンドウ間の差分が閾値を超えるかどうかを判断する。この差分が閾値を超えない場合、異常は検出されず、ブロック８９８において、この方法は終了される。
【００７２】
しかしながら、差分が閾値を超える場合、ブロック８２０において、ロジックは、潜在的侵入として特定され得る潜在的な異常を警告してよい。潜在的侵入としてひとたび異常が特定されると、是正措置が講じられてよい。異常を検出することは、閾値を上回る差分の検出に加えて、相関が破られることを検出する（例えば、次元ＡとＢとの間に既知の相関があり、フレーム間のＳＡＸの差分が閾値Ｔを上回る場合、および、ＡとＢとの間の相関が２つのフレームにわたって破られる場合に異常が検出される）ことをさらに有し得る点に留意されたい。代替的に、フレーム間の差分が閾値Ｔを上回ることにより、または、ＡとＢとの間の相関が破られた場合に、異常が検出されてよい。２つの次元の相関がここでは非限定的な例として使用されるが、実際には、相関は３つまたはより多くの次元の間のものであってよいことにもまた留意されたい。
【００７３】
是正措置のいくつかの例が上記にて与えられているものの、それらの例は例示的且つ非限定的であり、検出される侵入に応じて任意の適切な是正措置が講じられてよいことが理解されるべきであることにさらに留意されたい。
【００７４】
ブロック８９８において、この方法は終了する。
【表１】
2019208199.tif 000004
【００７５】
上記の表１は、本明細書に開示される方法を検証すべく実験的に使用された、本明細書の一実施形態において使用されるパラメータの例を提供する。ここで開示されている値は、様々なタイプの車、様々なタイプのＣＡＮバス、様々なプロセッサ速度、または他の要因のような、様々な場合に対して調整され得ることに留意されたい。バケット数およびチャンクサイズは、パターンの粒度を決定する。異常スコアの閾値は、どれだけ正確に異常が検出され得るかを決定する。閾値は、真の異常を見つけられるように十分低くすべきであるが、誤検知を避けられるように十分高くすべきである。
【００７６】
いくつかの実施形態において、誤検知を減らすべく、データを収集し、適切な異常スコアを決定すべく、構成段階が最初に実行されてよい。適切な異常スコアは、侵入または他の異常の無い時系列における最も高い差分スコアよりも高くなるように選択されてよい。ウィンドウサイズは、どれほど遠くの先まで異常なパターンを探すかに従って選択される。いくつかの場合において、大抵の周期的メッセージが少なくとも２つまたは３つの時刻においてカバーされるようにウィンドウサイズを設定するのが合理的である。ウィンドウサイズは、適切なウィンドウサイズをヒューリスティックに決定すべく、参照される時系列に対してもまた調整され得る。
【００７７】
実験的な例において、バケットサイズは４、チャンクサイズは１バイトであり、ＣＡＮバスデータフレームのペイロード中の８バイトのパターンから選択された。ウィンドウサイズは２秒であり、サブシーケンス長は２バイトであった。サブシーケンスオーバーラップ長は１バイトであった。別段の定めの無い限り、それぞれのサブシーケンスは記号２つ分の長さであり、１つの記号が前のシーケンスとオーバーラップされた。差分に対して選択された閾値は３０００であった。
【００７８】
実際の車両からのＣＡＮバスデータセットを使用して、評価が実行された。これは、ギア値およびＲＰＭ値がスプーフィングされたスプーフィング攻撃とともに、最も優勢なメッセージＩＤのメッセージ、およびランダムメッセージＩＤのメッセージが挿入されたインジェクション攻撃を含んでいた。
【００７９】
本明細書の教示の例示的な実装例が、８バイトの各ストリームをトラッキングし、異常スコアが閾値を越えると異常を報告した。閾値は、各バイトのストリームに対して異なるように設定されてよく、誤検知を減らすべく、通常のデータストリームによって予め参照されてよいことに留意されたい。
【００８０】
上記の設定を使用して、シミュレーションされた攻撃がロジックによって成功裏に検出された。図７のグラフ７００とは同一ではないが、シミュレーションされた攻撃は、異常として識別可能であり、これにより潜在的侵入として警告され得る、同様なスパイクをデータパターンにもたらした。
【００８１】
図１０は、本明細書の１または複数の例に係る、コンピューティングプラットフォーム１００２Ａのコンポーネントのブロック図である。示される実施形態において、プラットフォーム１００２Ａ、１００２Ｂ、および１００２Ｃが、データセンタ管理プラットフォーム１００６およびデータ解析エンジン１００４とともに、ネットワーク１００８を介して相互接続される。他の実施形態において、コンピュータシステムは、任意の適切な数の（すなわち、１または複数の）プラットフォームを含んでよい。いくつかの実施形態において（例えば、コンピュータシステムが単一のプラットフォームのみを含む場合）、システム管理プラットフォーム１００６の全てまたは一部がプラットフォーム１００２に含まれてよい。プラットフォーム１００２は、１または複数の中央処理装置（ＣＰＵ）１０１２、（任意の数の様々なモジュールを含み得る）メモリ１０１４、チップセット１０１６、通信インタフェース１０１８、並びに、プラットフォーム１００２上で実行されるアプリケーションと関連付けられたワークロードを実行することの可能な、ハイパーバイザ１０２０またはその他のオペレーティングシステムを実行するための任意の他の適切なハードウェアおよび／またはソフトウェアを有するプラットフォームロジック１０１０を含んでよい。いくつかの実施形態において、プラットフォーム１００２は、これらのアプリケーションを起動する１または複数のゲストシステム１０２２のためのホストプラットフォームとして機能してよい。プラットフォーム１００２Ａは、高性能コンピューティング環境、データセンタ、通信サービスプロバイダインフラストラクチャ（例えば、進化型パケットコアの１または複数の部分）、インメモリコンピューティング環境、車両（例えば、自動車または航空機）のコンピューティングシステム、モノのインターネット環境、工業制御システム、他のコンピューティング環境、またはそれらの組み合わせのような、任意の適切なコンピューティング環境を表してよい。
【００８２】
本開示の様々な実施形態において、複数のハードウェアリソース（例えば、コアおよびアンコア）の蓄積されたストレスおよび／または蓄積されたストレスのレートが監視され、コンピュータプラットフォーム１００２Ａのエンティティ（例えば、システム管理プラットフォーム１００６、ハイパーバイザ１０２０、または、他のオペレーティングシステム）が、ストレス情報に従ってワークロードを実行すべく、プラットフォームロジック１０１０のハードウェアリソースを割り当ててよい。いくつかの実施形態において、より正確にハードウェアリソースの健全性を決定すべく、自己診断機能がストレス監視と組み合わされてよい。各プラットフォーム１００２は、プラットフォームロジック１０１０を含んでよい。プラットフォームロジック１０１０は、プラットフォーム１００２の機能を可能にするロジックの中でも特に、１または複数のＣＰＵ１０１２、メモリ１０１４、１または複数のチップセット１０１６、および通信インタフェース１０２８を有する。３つのプラットフォームが例示されているものの、コンピュータプラットフォーム１００２Ａは、任意の適切な数のプラットフォームと相互接続されてよい。様々な実施形態において、プラットフォーム１００２は、（例えば、ラックまたはバックプレーンスイッチを有し得る）ネットワーク１００８を通じて一緒に結合された複数のプラットフォームを有する筐体、ラック、または他の適切な構造中にインストールされた回路基板に存在してよい。
【００８３】
ＣＰＵ１０１２は、それぞれ、任意の適切な数のプロセッサコアおよびサポートロジック（例えば、アンコア）を有してよい。これらのコアは、ＣＰＵ１０１２および／またはチップセット１０１６にある１または複数のコントローラを通じて、互いに、メモリ１０１４に、少なくとも１つのチップセット１０１６に、および／または、通信インタフェース１０１８に結合されてよい。特定の実施形態において、ＣＰＵ１０１２は、プラットフォーム１００２Ａに対して恒久的に、または取り外し可能に結合されたソケット内で具現化される。４つのＣＰＵが示されているものの、プラットフォーム１００２は、任意の適切な数のＣＰＵを含んでよい。
【００８４】
メモリ１０１４は、限定するものではないが、磁気媒体（例えば、１または複数のテープドライブ）、光媒体、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、フラッシュメモリ、リムーバブル媒体、もしくは、任意の他の適切なローカルまたはリモートメモリコンポーネントまたは複数のコンポーネントを含む、揮発性または不揮発性メモリの任意の形態を有してよい。メモリ１０１４は、プラットフォーム１００２Ａによる短期、中期、および／または長期のストレージのために使用されてよい。メモリ１０１４は、コンピュータ可読媒体に組み込まれたソフトウェア、および／または、ハードウェアに組み込まれた、さもなければ格納されたエンコードされたロジック（例えばファームウェア）を含む、プラットフォームロジック１０１０によって利用される任意の適切なデータまたは情報を格納してよい。メモリ１０１４は、ＣＰＵ１０１２のコアによって使用されるデータを格納してよい。いくつかの実施形態において、メモリ１０１４は、マネージャビリティエンジン１０２６またはプラットフォームロジック１０１０の他のコンポーネントと関連付けられた機能を提供すべく、ＣＰＵ１０１２のコアまたは他の処理要素（例えば、チップセット１０１６に常駐するロジック）によって実行され得る命令のためのストレージもまた有してよい。プラットフォーム１００２は、ＣＰＵ１０１２の動作をサポートするための任意の適切なロジックを有する１または複数のチップセット１０１６もまた含んでよい。様々な実施形態において、チップセット１０１６は、ＣＰＵ１０１２と同一のダイまたはパッケージに存在してよい。もしくは、１または複数の異なるダイまたはパッケージに存在してよい。それぞれのチップセットは、任意の適切な数のＣＰＵ１０１２をサポートしてよい。チップセット１０１６は、プラットフォームロジック１０１０の他のコンポーネント（例えば、通信インタフェース１０１８またはメモリ１０１４）を１または複数のＣＰＵへ結合するための１または複数のコントローラもまた含んでよい。示される実施形態において、それぞれのチップセット１０１６は、マネージャビリティエンジン１０２６もまた含む。マネージャビリティエンジン１０２６は、チップセット１０１６の動作をサポートするための任意の適切なロジックを含んでよい。特定の実施形態において、マネージャビリティエンジン１０２６（イノベーションエンジンともまた呼ばれ得る）は、チップセット１０１６、チップセット１０１６によって管理されるＣＰＵ１０１２および／またはメモリ１０１４、プラットフォームロジック１０１０の他のコンポーネント、および／または、プラットフォームロジック１０１０のコンポーネント間の様々な接続から、リアルタイムのテレメトリデータを収集することが可能である。様々な実施形態において、収集されたテレメトリデータは、本明細書にて説明されるストレス情報を含む。
【００８５】
様々な実施形態において、マネージャビリティエンジン１０２６は、ＣＰＵ１０１２上で実行されている処理を全く中断せず、または最低限の中断だけでテレメトリデータを収集すべく、プラットフォームロジック１０１０の様々な要素とインタフェース接続の可能な帯域外の非同期算出エージェントとして動作する。例えば、マネージャビリティエンジン１０２６は、（例えば、ソフトウェア命令を実行することによって）マネージャビリティエンジン１０２６の機能を提供し、これにより、プラットフォームロジック１０１０によって実行されるワークロードに関連付けられる動作のためのＣＰＵ１０１２の処理サイクルを節約する、チップセット１０１６上の専用の処理要素（例えば、プロセッサ、コントローラ、または他のロジック）を有してよい。さらに、マネージャビリティエンジン１０２６のための専用のロジックは、ＣＰＵ１０１２に対して非同期で動作してよく、ＣＰＵの負荷を増大させること無く、テレメトリデータの少なくともいくつかを収集してよい。
【００８６】
マネージャビリティエンジン１０２６は、収集するテレメトリデータを処理してよい（ストレス情報の処理の具体例が本明細書に提供される）。様々な実施形態において、マネージャビリティエンジン１０２６は、収集するデータおよび／またはその処理の結果を、１または複数のハイパーバイザ１０２０または他のオペレーティングシステムおよび／または（システム管理プラットフォーム１００６のような任意の適切なロジック上で実行され得る）システム管理ソフトウェアのような、コンピュータシステム中の他の要素に報告する。特定の実施形態において、コアが過剰な量のストレスを蓄積したというような重大なイベントが、テレメトリデータを報告するための通常の間隔よりも前に報告されてよい（例えば、検出すると直ちに通知が送信されてよい）。
【００８７】
加えて、マネージャビリティエンジン１０２６は、特定のチップセット１０１６がどのＣＰＵ１０１２を管理するか、および／または、どのテレメトリデータが収集され得るかを設定するように構成可能な、プログラム可能なコードを含んでよい。
【００８８】
チップセット１０１６は、それぞれ、通信インタフェース１０２８もまた含む。通信インタフェース１０２８は、チップセット１０１６と１または複数のＩ／Ｏデバイス、１または複数のネットワーク１００８、および／または、ネットワーク１００８に結合された１または複数のデバイス（例えば、システム管理プラットフォーム１００６）との間における、シグナリングおよび／またはデータの通信のために使用されてよい。例えば、通信インタフェース１０２８は、データパケットのようなネットワークトラフィックを送信および受信するために使用されてよい。特定の実施形態において、通信インタフェース１０２８は、ネットワークインタフェースカードまたはネットワークアダプタとしてもまた知られている、１または複数の物理ネットワークインタフェースコントローラ（ＮＩＣ）を有する。ＮＩＣは、任意の適切な物理層、および、（例えば、ＩＥＥＥ８０２．３規格で定義されるような）イーサネット（登録商標）、ファイバチャネル、インフィニバンド、ＷｉＦｉ（登録商標）、または他の適切な規格のようなデータリンク層規格を使用して通信するための電子回路を含んでよい。ＮＩＣは、ケーブル（例えば、イーサネット（登録商標）ケーブル）へ結合し得る１または複数の物理ポートを含んでよい。ＮＩＣは、チップセット１０１６の任意の適切な要素（例えば、マネージャビリティエンジン１０２６またはスイッチ１０３０）と、ネットワーク１００８へ結合された別のデバイスとの間の通信を可能にし得る。様々な実施形態において、ＮＩＣは、チップセットと統合されてよい（すなわち、チップセットロジックの残りと同一の集積回路または回路基板にあってよい）、もしくは、電気機械的にチップセットへ結合されている別の集積回路または回路基板にあってよい。
【００８９】
特定の実施形態において、通信インタフェース１０２８は、マネージャビリティエンジン１０２６によって実行される管理および監視機能と関連付けられたデータの（例えば、マネージャビリティエンジン１０２６とデータセンタ管理プラットフォーム１００６との間の）通信を可能にしてよい。様々な実施形態において、プラットフォームロジック１０１０によって実行されるワークロードに関連付けられる動作のために通信インタフェース１０１８のＮＩＣの使用量を確保すべく、マネージャビリティエンジン１０２６は、テレメトリデータを（例えば、システム管理プラットフォーム１００６へ）報告するために、通信インタフェース１０２８の要素（例えば、１または複数のＮＩＣ）を利用してよい。
【００９０】
スイッチ１０３０は、通信インタフェース１０２８の（例えば、ＮＩＣによって提供される）様々なポートへ結合してよく、これらのポートとチップセット１０１６の様々なコンポーネント（例えば、ＣＰＵ１０１２へ結合された１または複数のペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）レーン）との間でデータを切り替えてよい。スイッチ１０３０は、物理的または仮想的（すなわち、ソフトウェア）スイッチであってよい。
【００９１】
プラットフォームロジック１０１０は、追加の通信インタフェース１０１８を含んでよい。通信インタフェース１０２８と同様に、通信インタフェース１０１８は、プラットフォームロジック１０１０と１または複数のネットワーク１００８およびネットワーク１００８に結合された１または複数のデバイスとの間のシグナリングおよび／またはデータの通信のために使用されてよい。例えば、通信インタフェース１０１８は、データパケットのようなネットワークトラフィックを送信および受信するために使用されてよい。特定の実施形態において、通信インタフェース１０１８は、１または複数の物理ＮＩＣを有する。これらのＮＩＣは、プラットフォームロジック１０１０の任意の適切な要素（例えば、ＣＰＵ１０１２またはメモリ１０１４）と、ネットワーク１００８に結合された別のデバイス（例えば、１または複数のネットワークを通じてネットワーク１００８に結合された他のプラットフォームまたはリモートコンピューティングデバイスの要素）との間の通信を可能にし得る。
【００９２】
プラットフォームロジック１０１０は、任意の適切なタイプのワークロードを受信および実行してよい。ワークロードは、１または複数のコアまたは関連付けられたロジックのような、プラットフォームロジック１０１０の１または複数のリソースを利用するための任意の要求を含んでよい。例えば、ワークロードは、Ｉ／Ｏデバイスドライバ１０２４またはゲストシステム１０２２のようなソフトウェアコンポーネントをインスタンス化するための要求、仮想マシン１０３２または（ネットワーク１００８に結合されたネットワークノードのような）プラットフォーム１００２Ａの外部のデバイスから受信されるネットワークパケットを処理するための要求、ゲストシステム１０２２、プラットフォーム１００２Ａ上で実行されているアプリケーション、プラットフォーム１００２Ａ上で実行されているハイパーバイザ１０２０または他のオペレーティングシステムに関連付けられた処理またはスレッドを実行するための要求、もしくは、その他の適切な処理要求を有してよい。
【００９３】
仮想マシン１０３２は、それ自身の専用ハードウェアを有するコンピュータシステムをエミュレートしてよい。仮想マシン１０３２は、ハイパーバイザ１０２０に加えてゲストオペレーティングシステムを実行してよい。プラットフォームロジック１０１０のコンポーネント（例えば、ＣＰＵ１０１２、メモリ１０１４、チップセット１０１６、および通信インタフェース１０１８）は、ゲストオペレーティングシステムにとって仮想マシン１０３２がそれ自身の専用コンポーネントを有するように見えるように、仮想化されてよい。
【００９４】
仮想マシン１０３２は、仮想マシンによってそのネットワークインタフェースとして使用される、仮想化ＮＩＣ（ｖＮＩＣ）を含んでよい。ｖＮＩＣは、媒体アクセス制御（ＭＡＣ）アドレスまたは他の識別子が割り当てられてよく、これにより、複数の仮想マシン１０３２がネットワーク中で個別にアドレス指定可能なようにできる。
【００９５】
ＶＮＦ１０３４は、仮想化インフラストラクチャに配置され得る、定義されたインタフェースおよび挙動を有する機能的構成単位のソフトウェア実装を有してよい。特定の実施形態において、ＶＮＦ１０３４は、特定の機能（例えば、ワイドエリアネットワーク（ＷＡＮ）最適化、仮想プライベートネットワーク（ＶＰＮ）終了、ファイアウォール動作、負荷分散動作、セキュリティ機能、など）を集合的に提供する、１または複数の仮想マシン１０３２を含んでよい。プラットフォームロジック１０１０上で実行されているＶＮＦ１０３４は、専用ハードウェアを通じて実装される従来のネットワークコンポーネントと同一の機能を提供してよい。例えば、ＶＮＦ１０３４は、仮想化進化型パケットコア（ｖＥＰＣ）コンポーネント、モビリティ管理エンティティ、第３世代パートナーシッププロジェクト（３ＧＰＰ）制御およびデータプレーンコンポーネントなどのような、任意の適切なＮＦＶワークロードを実行するためのコンポーネントを含んでよい。
【００９６】
ＳＦＣ１０３６は、ネットワークパケット処理動作のような一連の動作を実行するためのチェーンとしてまとめられたＶＮＦ１０３４のグループである。サービス機能チェイニングは、サービスチェーンを形成すべく、ネットワークにおいて一緒につなぎ合わされたネットワークサービス（例えば、ファイアウォール、負荷分散装置）の順序付けられたリストを定義する能力を提供してよい。
【００９７】
ハイパーバイザ１０２０（仮想マシンモニタとしてもまた知られている）は、ゲストシステム１０２２を形成および実行するためのロジックを有してよい。ハイパーバイザ１０２０は、仮想マシンによって、仮想動作プラットフォームで実行されるゲストオペレーティングシステムを提供してよく（すなわち、仮想マシンにとって、それらが実際に単一のハードウェアプラットフォームに統合される場合、それらが別個の物理ノードにて実行されているように見える）、また、プラットフォームロジック１０１０によるゲストオペレーティングシステムの実行を管理してよい。ハイパーバイザ１０２０のサービスは、ソフトウェア中の仮想化により、または、最低限のソフトウェア介在が必要なハードウェア補助によるリソースを通じて、またはその両方によって提供されてよい。様々なゲストオペレーティングシステムの複数のインスタンスがハイパーバイザ１０２０によって管理されてよい。それぞれのプラットフォーム１００２は、ハイパーバイザ１０２０の別個のインスタンス化を有してよい。
【００９８】
ハイパーバイザ１０２０は、プラットフォームロジックを制御し、ゲストオペレーティングシステムを管理すべく、プラットフォームロジック１０１０上で直接実行されるネイティブまたはベアメタルハイパーバイザであってよい。代替的に、ハイパーバイザ１０２０は、ホストオペレーティングシステム上で実行され、ホストオペレーティングシステムからゲストオペレーティングシステムを取り出す、ホストされたハイパーバイザであってよい。ハイパーバイザ１０２０は、仮想スイッチングおよび／またはルーティング機能をゲストシステム１０２２の仮想マシンへ提供し得る仮想スイッチ１０３８を含んでよい。仮想スイッチ１０３８は、複数の仮想マシン１０３２のｖＮＩＣを互いに結合する論理スイッチングファブリックを有してよく、これにより、これを通じて複数の仮想マシンが互いに通信し得る仮想ネットワークを形成する。
【００９９】
仮想スイッチ１０３８は、プラットフォームロジック１０１０のコンポーネントを使用して実行されるソフトウェア要素を有してよい。様々な実施形態において、ハイパーバイザ１０２０は、プラットフォーム１００２において変化する条件（例えば、仮想マシン１０３２の追加または削除、もしくは、プラットフォームの性能を高めるべく行われ得る最適化の特定）に応じて、ハイパーバイザ１０２０に仮想スイッチ１０３８のパラメータを再設定させ得る任意の適切なエンティティ（例えば、ＳＤＮコントローラ）と通信してよい。
【０１００】
ハイパーバイザ１０２０は、（ストレス情報を含み得る）テレメトリデータに基づいてプラットフォームリソースの割り当てを決定するためのロジックを含み得る、リソース割り当てロジック１０４４もまた含んでよい。リソース割り当てロジック１０４４は、プラットフォームロジック１０１０のコンポーネントのような、そのような最適化を実装するためのプラットフォーム１００２Ａのプラットフォームロジック１０１０エンティティの様々なコンポーネントと通信するためのロジックもまた含んでよい。
【０１０１】
任意の適切なロジックが、これらの最適化判断の１または複数を形成してよい。例えば、システム管理プラットフォーム１００６、ハイパーバイザ１０２０のリソース割り当てロジック１０４４または他のオペレーティングシステム、もしくは、コンピュータプラットフォーム１００２Ａの他のロジックが、そのような判断を行うことが可能であってよい。様々な実施形態において、システム管理プラットフォーム１００６は、複数のプラットフォーム１００２からテレメトリデータを受信し、複数のプラットフォーム１００２にわたるワークロード配置を管理してよい。システム管理プラットフォーム１００６は、システム管理プラットフォームによって指示されたワークロード配置を実装すべく、ハイパーバイザ１０２０と（例えば、帯域外の方式で）、または様々なプラットフォーム１００２の他のオペレーティングシステムと通信してよい。
【０１０２】
プラットフォームロジック１０１０の要素は、任意の適切な態様で一緒に結合されてよい。例えば、バスが複数のコンポーネントのいずれかを一緒に結合してよい。バスは、マルチドロップバス、メッシュインターコネクト、リングインターコネクト、ポイントツーポイントインターコネクト、シリアルインターコネクト、パラレルバス、コヒーレント（例えば、キャッシュコヒーレント）バス、層状プロトコルアーキテクチャ、差動バス、または、ガニングトランシーバロジック（ＧＴＬ）バスのような、任意の既知のインターコネクトを含んでよい。
【０１０３】
コンピュータプラットフォーム１００２Ａの要素は、１または複数のネットワーク１００８を通じたもののような、任意の適切な態様で一緒に結合されてよい。ネットワーク１００８は、任意の適切なネットワーク、もしくは、１または複数の適切なネットワーキングプロトコルを使用して動作する１または複数のネットワークの組み合わせであってよい。ネットワークは、通信システムを通じて伝搬する情報のパケットを受信および送信するための、一連のノード、ポイント、および相互接続された通信パスを表してよい。例えば、ネットワークは、１または複数のファイアウォール、ルータ、スイッチ、セキュリティ機器、アンチウイルスサーバ、もしくは、他の有用なネットワークデバイスを含んでよい。
【０１０４】
図１１は、本明細書の１または複数の例に係る、中央処理装置（ＣＰＵ）１１１２のブロック図である。ＣＰＵ１１１２は特定の構成を示しているが、ＣＰＵ１１１２のコアおよび他のコンポーネントは、任意の適切な態様で配置されてよい。ＣＰＵ１１１２は、マイクロプロセッサ、組み込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、アプリケーションプロセッサ、コプロセッサ、システムオンチップ（ＳＯＣ）、または、コードを実行するための他のデバイスのような、任意のプロセッサまたは処理デバイスを有してよい。ＣＰＵ１１１２は、示される実施形態において、非対称処理要素または対称処理要素を含み得る、４つの処理要素（示される実施形態においてはコア１１３０）を含む。しかしながら、ＣＰＵ１１１２は、対称または非対称であり得る任意の数の処理要素を含んでよい。
【０１０５】
ハードウェア処理要素の例は、スレッドユニット、スレッドスロット、スレッド、処理ユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、および／または、実行状態またはアーキテクチャ状態のようなプロセッサについての状態を保持することの可能な任意の他の要素を含む。言い換えると、処理要素は、一実施形態において、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、または他のコードのようなコードに独立に関連付けられることの可能な任意のハードウェアを指す。物理プロセッサ（またはプロセッサソケット）は、通常、コアまたはハードウェアスレッドのような任意の数の他の処理要素を潜在的に含む集積回路を指す。
【０１０６】
コアは、独立なアーキテクチャ状態を保持することの可能な集積回路に配置されるロジックを指してよい。ここで、それぞれ独立に保持されるアーキテクチャ状態は、少なくともいくつかの専用実行リソースに関連付けられる。ハードウェアスレッドは、独立なアーキテクチャ状態を保持することの可能な集積回路に配置される任意のロジックを指してよい。ここで、独立に保持されるアーキテクチャ状態は、実行リソースへのアクセスを共有する。物理ＣＰＵは、任意の適切な数のコアを含んでよい。様々な実施形態において、コアは、１または複数のアウトオブオーダプロセッサコアもしくは１または複数のインオーダプロセッサコアを含んでよい。しかしながら、コアは、ネイティブコア、ソフトウェア管理されたコア、ネイティブ命令セットアーキテクチャ（ＩＳＡ）を実行するように構成されたコア、翻訳されたＩＳＡを実行するように構成されたコア、協調設計コア、または他の既知のコアのような、任意のタイプのコアから個別に選択されてよい。ヘテロジニアスなコア環境（すなわち、非対称コア）において、バイナリ変換のようないくつかの形態の変換が、一方または両方のコアにおいてコードをスケジューリングまたは実行するために利用されてよい。
【０１０７】
示される実施形態において、コア１１３０Ａは、入ってくる命令をフェッチし、様々な処理（例えば、キャッシュ、デコーディング、分岐予測など）を実行し、命令／動作をアウトオブオーダ（ＯＯＯ）エンジンへと渡すために使用されるフロントエンドユニット１１７０を有するアウトオブオーダプロセッサを含む。ＯＯＯエンジンは、デコードされた命令にさらなる処理を実行する。
【０１０８】
フロントエンド１１７０は、フェッチされた要素をデコードするためのフェッチロジックに結合されたデコードモジュールを含んでよい。フェッチロジックは、一実施形態において、コア１１３０のスレッドスロットに関連付けられた個々のシーケンサを含む。通常、コア１１３０は、コア１１３０にて実行可能な命令を定義／規定する第１のＩＳＡに関連付けられる。多くの場合、第１のＩＳＡの一部であるマシンコード命令が、実行されるべき命令または動作を参照／規定する命令（オペコードと呼ばれる）の一部を含む。デコードモジュールは、それらのオペコードからこれらの命令を認識し、デコードされた命令を、第１のＩＳＡによって定義されるように処理するためのパイプラインに渡す回路を含んでよい。コア１１３０のデコーダは、一実施形態において、同一のＩＳＡ（または、それらのサブセット）を認識する。代替的に、ヘテロジニアスなコア環境において、１または複数のコア（例えば、コア１１３０Ｂ）のデコーダは、第２のＩＳＡ（第１のＩＳＡのサブセットまたは異なるＩＳＡのいずれか）を認識してよい。
【０１０９】
示される実施形態において、アウトオブオーダエンジンは、１または複数のマイクロ命令またはｕｏｐの形態であり得るデコードされた命令をフロントエンドユニット１１７０から受信し、これらをレジスタなどのような適切なリソースへ割り当てるための割り当てユニット１１８２を含む。次に、これらの命令は、リソースを確保し、複数の実行ユニット１１８６Ａ−１１８６Ｎのうちの１つにおいてこれらを実行するようにスケジューリングするリザベーションステーション１１８４へ提供される。例えば、中でも特に、演算ロジックユニット（ＡＬＵ）、ロードおよびストアユニット、ベクトル処理ユニット（ＶＰＵ）、浮動小数点実行ユニットを含む、様々なタイプの実行ユニットが存在し得る。これらの様々な実行ユニットからの結果は、順序付けられていない結果を取り込み、これらを正しいプログラム順序に戻すリオーダバッファ（ＲＯＢ）１１８８へ提供される。
【０１１０】
示される実施形態において、フロントエンドユニット１１７０およびアウトオブオーダエンジン１１８０の両方が、メモリ階層の様々なレベルに結合される。命令レベルキャッシュ１１７２が具体的に示されており、これは次に中間レベルキャッシュ１１７６へ結合し、これは次に最終レベルキャッシュ１１９５へ結合する。一実施形態において、最終レベルキャッシュ１１９５は、オンチップ（アンコアと呼ばれることがある）ユニット１１９０に実装される。アンコア１１９０は、例示される実施形態においては混載ＤＲＡＭ（ｅＤＲＡＭ）によって実装されるシステムメモリ１１９９と通信してよい。ＯＯＯエンジン１１８０内の様々な実行ユニット１１８６が、中間レベルキャッシュ１１７６ともまた通信する第１レベルキャッシュ１１７４と通信する。追加のコア１１３０Ｂ−１１３０Ｄが、同様に、最終レベルキャッシュ１１９５に結合してよい。
【０１１１】
特定の実施形態において、アンコア１１９０は、コアの電圧ドメインおよび／または周波数ドメインとは別個の電圧ドメインおよび／または周波数ドメインにあってよい。すなわち、アンコア１１９０は、コアに電力を供給するために使用される供給電圧とは異なる供給電圧によって動力を供給されてよい。および／または、コアの動作周波数とは異なる周波数で動作してよい。
【０１１２】
ＣＰＵ１１１２は、電力制御ユニット（ＰＣＵ）１１４０もまた含んでよい。様々な実施形態において、ＰＣＵ１１４０は、複数のコアのそれぞれ（コア毎に）およびアンコアに適用される供給電圧および動作周波数を制御してよい。ＰＣＵ１１４０は、また、ワークロードを実行していない場合、アイドル状態（電圧およびクロックが供給されない状態）に入るように、コアまたはアンコアに命令してもよい。
【０１１３】
様々な実施形態において、ＰＣＵ１１４０は、コアおよびアンコアのようなハードウェアリソースの１または複数のストレス特性を検出してよい。ストレス特性は、ハードウェアリソースにかかっているストレスの量の表示を有してよい。例として、ストレス特性は、ハードウェアリソースに適用される電圧または周波数、ハードウェアリソースで感知される電力レベル、電流レベル、または電圧レベル、ハードウェアリソースで感知される温度、もしくは、その他の適切な測定であってよい。様々な実施形態において、特定のストレス特性の複数の測定（例えば、異なる位置におけるもの）が、特定の時間インスタンスにおいてストレス特性を感知する場合に実行されてよい。様々な実施形態において、ＰＣＵ１１４０は、任意の適切な間隔でストレス特性を検出してよい。
【０１１４】
様々な実施形態において、ＰＣＵ１１４０は、コア１１３０とは別個のコンポーネントである。特定の実施形態において、ＰＣＵ１１４０は、コア１１３０によって使用されるクロック周波数とは異なるクロック周波数で動作する。ＰＣＵがマイクロコントローラであるいくつかの実施形態において、ＰＣＵ１１４０は、コア１１３０によって使用されるＩＳＡとは異なるＩＳＡに従って命令を実行する。
【０１１５】
様々な実施形態において、ＣＰＵ１１１２は、電力が失われた場合でもストレス情報が保持されるように、コア１１３０またはアンコア１１９０に関連付けられた（ストレス特性、増加分のストレス値、蓄積されたストレス値、ストレス蓄積レート、または、他のストレス情報のような）ストレス情報を格納するための不揮発性メモリ１１５０もまた含んでよい。
【０１１６】
前述したものは、本明細書に開示される主題の１または複数の実施形態の特徴の概要を説明するものである。これらの実施形態は、当該分野の通常の技術を有する者（当業者）が本開示の様々な態様をより良好に理解することを可能にすべく提供されている。いくつかの十分に理解される用語、並びに基本的な技術および／または規格は、詳細に説明されることなく参照されてよい。当業者は、本明細書の教示を実施するのに十分なそうした技術および規格における背景知識または情報を持っている、またはそれらへのアクセスを有するであろうことが期待される。
【０１１７】
当業者は、本明細書にて導入される実施形態と同一の目的を実行するためおよび／または同一の利点を実現するための他の処理、構造、または変更を設計または修正するための基礎として、当業者が本開示を容易に使用し得ることを理解するであろう。当業者は、そのような等価な構造が、本開示の趣旨および範囲から逸脱するものではないこと、および、当業者が、本開示の趣旨および範囲から逸脱せずに本明細書に様々な変化、代替、および変更を成し得ることもまた認識するであろう。
【０１１８】
前述の説明において、いくつかまたは全ての実施形態のうちのいくつかの態様が、添付の請求項を実現するために厳密に必要なものよりも詳細に説明される。これらの詳細は、開示される実施形態の状況および例示を提供する目的で、非限定的な例としてのみ提供されるものである。そのような詳細が必要なものと理解されるべきではなく、また、限定として請求項「中に読み込まれる」べきではない。この用語は、「一実施形態」または「複数の実施形態」を指し得る。これらの用語、および実施形態への任意の他の参照は、１または複数の実施形態の任意の組み合わせを指すものとして広く理解されるべきである。さらに、特定の「実施形態」において開示されるいくつかの特徴は、複数の実施形態にわたって、全く同じように拡張され得るだろう。例えば、特徴１および２が「一実施形態」に開示される場合、実施形態Ａは特徴１を有するが特徴２は無くてよく、これに対し、実施形態Ｂは特徴２を有するが特徴１は無くてよい。
【０１１９】
本明細書は、ブロック図の形式で例示を提供してよく、そこでは、いくつかの特徴が別個のブロックで開示されている。これらは、様々な特徴がどのように相互に動作するのかを開示するものとして広く理解されるべきであり、それらの特徴が、別個のハードウェアまたはソフトウェアにおいて必ず具現化されなければならないということを示唆することは意図されない。さらに、単一のブロックが同一のブロック中に１つよりも多くの特徴を開示するところでは、それらの特徴は、同一のハードウェアおよび／またはソフトウェアにおいて必ずしも具現化される必要はない。例えば、コンピュータ「メモリ」は、いくつかの環境において、複数レベルのキャッシュまたはローカルメモリ、メインメモリ、バッテリバックアップされた揮発性メモリ、および、ハードディスク、ストレージサーバ、光ディスク、テープドライブ、または同様なもののような様々な形式の永続メモリの間で分散またはマッピングされ得る。いくつかの実施形態において、複数のコンポーネントのいくつかは、省略または統合されてよい。一般的な意味において、図面に示される構成は、それらの表現においてより論理的であり得る。これに対し、物理的なアーキテクチャは、これらの要素の様々な順列、組み合わせ、および／またはハイブリッドを含み得る。本明細書にて概説される動作目的を実現すべく、無数の可能な設計上の構成が使用され得る。従って、関連付けられるインフラストラクチャは、無数の代替的な構成、設計選択、デバイスの可能性、ハードウェア構成、ソフトウェア実装、および機器のオプションを有する。
【０１２０】
有形且つ非一時的コンピュータ可読媒体であり得るコンピュータ可読媒体への参照が本明細書において成されてよい。本明細書において、および請求項全体にわたって使用されるように、「コンピュータ可読媒体」とは、同一または異なるタイプの１または複数のコンピュータ可読媒体を含むものと理解されるべきである。コンピュータ可読媒体は、非限定的な例として、光学式ドライブ（例えば、ＣＤ／ＤＶＤ／ブルーレイ）、ハードドライブ、ソリッドステートドライブ、フラッシュメモリ、またはその他の不揮発性媒体を含んでよい。コンピュータ可読媒体は、適切な場合且つ特定のニーズに基づいて、リードオンリメモリ（ＲＯＭ）、所望の命令を実行するように構成されたＦＰＧＡまたはＡＳＩＣのような媒体、所望の命令を実行するようにＦＰＧＡまたはＡＳＩＣをプログラミングするための格納された命令、ハードウェアで他の回路に統合され得るインテレクチュアルプロパティ（ＩＰ）ブロック、もしくは、ハードウェアに直接エンコードされた命令またはマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、マイクロコントローラ、または任意の他の適切なコンポーネント、デバイス、要素、またはオブジェクトのようなプロセッサ上のマイクロコードもまた含み得る。非一時的ストレージ媒体は、本明細書において、開示された動作を提供するように、または開示された動作をプロセッサに実行させるように構成された任意の非一時的特定用途向またはプログラマブルハードウェアを含むことが明確に意図されている。
【０１２１】
本明細書および請求項の全体にわたって、様々な要素が互いに「通信可能に」、「電気的に」、「機械的に」、さもなければ単に「結合され」てよい。そのような結合は、直接的なポイントツーポイント結合であってよい。または、中間デバイスを含んでよい。例えば、２つのデバイスは、通信を促進するコントローラを介して互いに通信可能に結合されてよい。複数のデバイスは、信号ブースタ、分圧器、またはバッファのような中間デバイスを介して互いに電気的に結合されてよい。機械的に結合された複数のデバイスが、間接的に機械的に結合されてよい。
【０１２２】
本明細書に開示される任意の「モジュール」または「エンジン」は、ソフトウェア、ソフトウェアスタック、ハードウェア、ファームウェア、および／またはソフトウェアの組み合わせ、エンジンまたはモジュールの機能を実行するように構成された回路、もしくは、上記にて開示されるような任意のコンピュータ可読媒体を指してよい。またはこれらを含んでよい。そのようなモジュールまたはエンジンは、適切な環境において、プロセッサ、メモリ、ストレージ、インターコネクト、ネットワークおよびネットワークインタフェース、アクセラレータ、またはその他の適切なハードウェアのようなハードウェア計算リソースを含み得るハードウェアプラットフォーム上に、または、このようなハードウェアプラットフォームとともに提供されてよい。そのようなハードウェアプラットフォームは、（例えば、ＰＣフォームファクタ中の）単一のモノリシックデバイスとして、もしくは、その機能のいくつかまたは一部が分散された状態で提供されてよい（例えば、算出、メモリ、ストレージ、およびその他のリソースが動的に割り当てられてよく、互いにローカルな必要がなくてよい、ハイエンドデータセンタにおける「複合ノード」）。
【０１２３】
本明細書において、フローチャート、信号フロー図、または、特定の順序で実行される動作を示すその他の図が開示されてよい。明確にそうでないことが留意されていない限り、または、特定の状況において必要とされない限り、順序は、非限定的な例としてのみ理解されるべきである。さらに、１つの動作が別のものに続くように示される場合、関連していようと関連していなかろうと、他の介在する動作もまた起きてよい。いくつかの動作はまた、同時に、または並列に実行されてもよい。ある動作が別の事項または動作「に基づいて」またはこれら「に従って」いるものと言われる場合、これは、この動作が、他の事項または動作に対して少なくとも部分的に基づいていること、または少なくとも部分的に従っていることを示唆するものと理解されるべきである。これは、この動作がその事項または動作にのみ、または排他的に基づいていること、もしくは、これらにのみ、または排他的に従っていることを示唆するものとして解釈されるべきではない。
【０１２４】
本明細書にて開示される任意のハードウェア要素の全てまたは一部は、中央処理装置（ＣＰＵ）パッケージを含むシステムオンチップ（ＳｏＣ）において容易に提供され得る。ＳｏＣは、コンピュータまたは他の電子システムのコンポーネントを単一のチップに統合した集積回路（ＩＣ）を表す。従って、例えば、クライアントデバイスまたはサーバデバイスは、全てにおいて、または一部において、ＳｏＣに提供され得る。ＳｏＣは、デジタル、アナログ、ミックス信号、および無線周波数機能を含んでよく、それらの全てが単一のチップ基板に提供されてよい。他の実施形態は、単一の電子パッケージ内に配置され、電子パッケージを通じて互いに密接に相互作用するように構成された複数のチップを有するマルチチップモジュール（ＭＣＭ）を含んでよい。
【０１２５】
一般的な意味において、任意の適切に構成された回路またはプロセッサは、本明細書にて詳述される動作を実現すべく、データと関連付けられた任意のタイプの命令を実行することができる。本明細書に開示される任意のプロセッサは、ある要素または項目（例えば、データ）を、１つの状態もしくは物から別の状態もしくは物へ変えることができるであろう。さらに、トラッキングされる、送信される、受信される、またはプロセッサに格納される情報は、具体的なニーズおよび実装に基づいて、任意のデータベース、レジスタ、表、キャッシュ、キュー、制御リスト、またはストレージ構造に提供され得るだろう。それらの全ては、任意の適切なタイムフレームで参照され得るだろう。本明細書に開示されるメモリまたはストレージ要素のいずれも、適宜、広範な用語「メモリ」および「ストレージ」内に包含されるものとして解釈されるべきである。
【０１２６】
本明細書に説明される機能の全てまたは一部を実装するコンピュータプログラムロジックは、決して限定されるものではないが、ソースコードの形式、コンピュータ実行可能な形式、マシン命令またはマイクロコード、プログラマブルハードウェア、および様々な中間的な形式（例えば、アセンブラ、コンパイラ、リンカ、またはロケータによって生成される形式）を含む、様々な形式で具現化される。一例において、ソースコードは、オブジェクトコード、アセンブリ言語、または、様々なオペレーティングシステムまたは動作環境で使用するためのＯｐｅｎＣＬ、ＦＯＲＴＲＡＮ、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、またはＨＴＭＬのようなハイレベル言語のような様々なプログラミング言語、もしくは、Ｓｐｉｃｅ、Ｖｅｒｉｌｏｇ、およびＶＨＤＬのようなハードウェア記述言語で実装される、一連のコンピュータプログラム命令を含む。ソースコードは、様々なデータ構造および通信メッセージを定義および使用してよい。ソースコードは、（例えば、インタプリタを介しての）コンピュータ実行可能な形式であってよい。または、ソースコードは、（例えば、トランスレータ、アセンブラ、またはコンパイラを介して）コンピュータ実行可能な形式に変換されてよい。もしくはバイトコードのような中間的な形式に変換されてよい。適切な場合には、逐次マシン、連結マシン、ステートマシン、または他のものであるかどうかにかかわらず、適切なディスクリート回路または集積回路を形成または表すために前述の任意のものが使用されてよい。
【０１２７】
一例の実施形態において、図面の任意の数の電気回路が、関連する電子デバイスの基板に実装されてよい。この基板は、電子デバイスの内部電子システムの様々なコンポーネントを保持することができ、さらに、その他の周辺機器のためのコネクタを提供できる一般的な回路基板であり得る。任意の適切なプロセッサおよびメモリが、特定の構成上のニーズ、処理要求、およびコンピューティング設計に基づいて、適切に基板に結合され得る。本明細書にて提供される多数の例により、２、３、４、またはそれより多くの電気コンポーネントに関して相互作用が説明されてよいことに留意されたい。しかしながら、これは、明確性および例示のみを目的として成されている。このシステムは、任意の適切な態様で統合され得る、または再構成され得ることが理解されるべきである。同様な設計代替物に従って、例示される図面中のコンポーネント、モジュール、および要素のいずれも様々な可能な構成で組み合わされてよく、それらの全ては、本明細書の広範な範囲内にある。
【０１２８】
多数のその他の変化、代替、変形、変更、および修正は、当業者に確認され得るものであり、そのような変化、代替、変形、変更、および修正が添付の請求項の範囲内に含まれるように、本開示はそれらの全てを包含することが意図されている。米国特許商標庁（ＵＳＰＴＯ）、また、加えてこの出願で発行されるあらゆる特許のあらゆる読者達が本明細書に添付される請求項を解釈することを補助すべく、出願人が（ａ）添付の請求項のいずれも、「するための手段」または「するためのステップ」という語が特定の請求項において具体的に使用されない限り、本願の出願日において存在するような、米国特許法第１１２条第６段落（ＡＩＡ前）または同条の段落（ｆ）（ＡＩＡ後）を適用することを意図しないということ、および、（ｂ）明細書中のいかなる記述によっても、そうでないことが明確に添付の請求項に反映されていなければ、本開示を決して限定することを意図しないということに留意するよう、出願人は望む。
例示的な実装例
【０１２９】
以下の例は、例示として提供される。
【０１３０】
例１は、ハードウェアプラットフォームと、認証のためのネイティブサポートが欠如したバスへ通信可能に結合するネットワークインタフェースと、ハードウェアプラットフォームにて動作する異常検出エンジンとを備えるコンピューティング装置を含む。異常検出エンジンは、第１の時間にわたる第１データストリームであって、複数の次元にわたるデータを有し、複数の次元のデータが互いに相関する第１データストリームを受信すること、第１ウィンドウ和を算出することを有する、第１データストリームを記号化および近似すること、第１の時間と実質的に長さの等しい第２の時間にわたる第２データストリームであって、第１データストリームからの複数の次元にわたるデータを有する第２データストリームを受信すること、第２ウィンドウ和を算出することを有する、第２データストリームを記号化および近似すること、第１ウィンドウ和と第２ウィンドウ和との間の差分を算出すること、差分が閾値を超えていること、および、複数の次元にわたる相関が破られていることを判断すること、並びに、潜在的な異常を警告することを行うように構成される。
【０１３１】
例２は例１のコンピューティング装置を含み、記号化および近似することは、データストリームを複数のフレームに分割すること、それぞれのフレームの少なくとも一部を記号化することであって、フレームのデータユニットに対する潜在的値のデータ空間を複数のｎ個のバケット記号に分割すること、および、それぞれのデータユニットに対してそのバケットに従った記号を割り当てることを有する、記号化すること、並びに、この時間にわたって第１の和を算出することであって、データストリームを、Ｌｓ個の記号分の長さを有する複数のシーケンスであって、それぞれのシーケンスがＬｏ個の記号分前のシーケンスとオーバーラップしている複数のシーケンスに分割すること、および、それぞれのシーケンスの発生数を集計することを有する、ウィンドウ和を算出することを有する。
【０１３２】
例３は例２のコンピューティング装置を含み、それぞれのシーケンスの発生数を集計することは、ｎ×ｎ×Ｌｓのアレイに集計を記録することを有し、このアレイにおけるそれぞれのセルは、記号シーケンスに対する可能な値を表す。
【０１３３】
例４は例３のコンピューティング装置を含み、第１ウィンドウ和と第２ウィンドウ和との間の差分を算出することは、このアレイにおけるそれぞれのセル間のセル毎の差分の絶対値を算出すること、および、セル毎の差分の絶対値を合計することを有する。
【０１３４】
例５は例１のコンピューティング装置を含み、データユニットは８ビットバイトであり、それぞれのフレームの一部は、それぞれのフレームの固定されたバイトである。
【０１３５】
例６は例５のコンピューティング装置を含み、この固定されたバイトは第１のバイトである。
【０１３６】
例７は例１のコンピューティング装置を含み、ｎ＝８である。
【０１３７】
例８は例１のコンピューティング装置を含み、ｎ＝４である。
【０１３８】
例９は例８のコンピューティング装置を含み、Ｌｏ＝１である。
【０１３９】
例１０は例９のコンピューティング装置を含み、第１の時間は２秒である。
【０１４０】
例１１は例１０のコンピューティング装置を含み、閾値は３，０００である。
【０１４１】
例１２は例１から例１１のうちのいずれかのコンピューティング装置を含み、異常検出エンジンは、異常を潜在的侵入としてさらに特定する。
【０１４２】
例１３は例１２のコンピューティング装置を含み、異常検出エンジンは、是正措置をさらに講じる、または、セキュリティエージェントに是正措置を講じるようにさらに通知する。
【０１４３】
例１４は例１から例１１のうちのいずれかのコンピューティング装置を含み、バスは、自動車のためのコントローラエリアネットワーク（ＣＡＮ）バスである。
【０１４４】
例１５は例１４のコンピューティング装置を含み、このコンピューティング装置は、ＣＡＮバスのための車内ネットワークゲートウェイとして動作するように構成される。
【０１４５】
例１６は、１または複数の有形な非一時的コンピュータ可読記憶媒体を含み、この媒体には、認証のためのネイティブサポートが欠如したバスへネットワークインタフェースを通信可能に結合すること、第１の時間にわたる第１データストリームであって、複数の次元にわたるデータを有し、複数の次元のデータが互いに相関する第１データストリームを受信すること、第１ウィンドウ和を算出することを有する、第１データストリームを記号化および近似すること、第１の時間と実質的に長さの等しい第２の時間にわたる第２データストリームであって、第１データストリームからの複数の次元にわたるデータを有する第２データストリームを受信すること、第２ウィンドウ和を算出することを有する、第２データストリームを記号化および近似すること、第１ウィンドウ和と第２ウィンドウ和との間の差分を算出すること、差分が閾値を超えていること、および、複数の次元にわたる相関が破られていることを判断すること、並びに、潜在的な異常を警告することを行うための実行可能な命令が格納される。
【０１４６】
例１７は例１６の１または複数の有形な非一時的コンピュータ可読媒体を含み、記号化および近似することは、データストリームを複数のフレームに分割すること、それぞれのフレームの少なくとも一部を記号化することであって、フレームのデータユニットに対する潜在的値のデータ空間を複数のｎ個のバケット記号に分割すること、および、それぞれのデータユニットに対してそのバケットに従った記号を割り当てることを有する、記号化すること、並びに、この時間にわたって第１の和を算出することであって、データストリームを、Ｌｓ個の記号分の長さを有する複数のシーケンスであって、それぞれのシーケンスがＬｏ個の記号分前のシーケンスとオーバーラップしている複数のシーケンスに分割すること、および、それぞれのシーケンスの発生数を集計することを有する、ウィンドウ和を算出することを有する。
【０１４７】
例１８は例１６の１または複数の有形な非一時的コンピュータ可読媒体を含み、それぞれのシーケンスの発生数を集計することは、ｎ×ｎ×Ｌｓのアレイに集計を記録することを有し、このアレイにおけるそれぞれのセルは、記号シーケンスに対する可能な値を表す。
【０１４８】
例１９は例１７の１または複数の有形な非一時的コンピュータ可読媒体を含み、第１ウィンドウ和と第２ウィンドウ和との間の差分を算出することは、このアレイにおけるそれぞれのセル間のセル毎の差分の絶対値を算出すること、および、セル毎の差分の絶対値を合計することを有する。
【０１４９】
例２０は例１６の１または複数の有形な非一時的コンピュータ可読媒体を含み、データユニットは８ビットバイトであり、それぞれのフレームの一部は、それぞれのフレームの固定されたバイトである。
【０１５０】
例２１は例２０の１または複数の有形な非一時的コンピュータ可読媒体を含み、この固定されたバイトは第１のバイトである。
【０１５１】
例２２は例１６の１または複数の有形な非一時的コンピュータ可読媒体を含み、ｎ＝８である。
【０１５２】
例２３は例１６の１または複数の有形な非一時的コンピュータ可読媒体を含み、ｎ＝４である。
【０１５３】
例２４は例２３の１または複数の有形な非一時的コンピュータ可読媒体を含み、Ｌｏ＝１である。
【０１５４】
例２５は例２４の１または複数の有形な非一時的コンピュータ可読媒体を含み、第１の時間は２秒である。
【０１５５】
例２６は例２５の１または複数の有形な非一時的コンピュータ可読媒体を含み、閾値は３，０００である。
【０１５６】
例２７は例１６から例２６のうちのいずれかの１または複数の有形な非一時的コンピュータ可読媒体を含み、これらの命令は、異常を潜在的侵入としてさらに特定する。
【０１５７】
例２８は例２７の１または複数の有形な非一時的コンピュータ可読媒体を含み、これらの命令は、是正措置をさらに講じる、または、セキュリティエージェントに是正措置を講じるようにさらに通知する。
【０１５８】
例２９は例１６から例２６のうちのいずれかの１または複数の有形な非一時的コンピュータ可読媒体を含み、バスは、自動車のためのコントローラエリアネットワーク（ＣＡＮ）バスである。
【０１５９】
例３０は例２９の１または複数の有形な非一時的コンピュータ可読媒体を含み、バスは、ＣＡＮバスのための車内ネットワークゲートウェイである。
【０１６０】
例３１は、認証のためのネイティブサポートが欠如したバスにおける異常検出を提供するコンピュータ実装方法を含み、このバスへネットワークインタフェースを通信可能に結合すること、第１の時間にわたる第１データストリームであって、複数の次元にわたるデータを有し、複数の次元のデータが互いに相関する第１データストリームを受信すること、第１ウィンドウ和を算出することを有する、第１データストリームを記号化および近似すること、第１の時間と実質的に長さの等しい第２の時間にわたる第２データストリームであって、第１データストリームからの複数の次元にわたるデータを有する第２データストリームを受信すること、第２ウィンドウ和を算出することを有する、第２データストリームを記号化および近似すること、第１ウィンドウ和と第２ウィンドウ和との間の差分を算出すること、差分が閾値を超えていること、および、複数の次元にわたる相関が破られていることを判断すること、並びに、潜在的な異常を警告することを有する。
【０１６１】
例３２は例３１の方法を含み、記号化および近似することは、データストリームを複数のフレームに分割すること、それぞれのフレームの少なくとも一部を記号化することであって、フレームのデータユニットに対する潜在的値のデータ空間を複数のｎ個のバケット記号に分割すること、および、それぞれのデータユニットに対してそのバケットに従った記号を割り当てることを有する、記号化すること、並びに、この時間にわたって第１の和を算出することであって、データストリームを、Ｌｓ個の記号分の長さを有する複数のシーケンスであって、それぞれのシーケンスがＬｏ個の記号分前のシーケンスとオーバーラップしている複数のシーケンスに分割すること、および、それぞれのシーケンスの発生数を集計することを有する、ウィンドウ和を算出することを有する。
【０１６２】
例３３は例３１の方法を含み、それぞれのシーケンスの発生数を集計することは、ｎ×ｎ×Ｌｓのアレイに集計を記録することを有し、このアレイにおけるそれぞれのセルは、記号シーケンスに対する可能な値を表す。
【０１６３】
例３４は例３２の方法を含み、第１ウィンドウ和と第２ウィンドウ和との間の差分を算出することは、このアレイにおけるそれぞれのセル間のセル毎の差分の絶対値を算出すること、および、セル毎の差分の絶対値を合計することを有する。
【０１６４】
例３５は例３１の方法を含み、データユニットは８ビットバイトであり、それぞれのフレームの一部は、それぞれのフレームの固定されたバイトである。
【０１６５】
例３６は例３５の方法を含み、この固定されたバイトは第１のバイトである。
【０１６６】
例３７は例３１の方法を含み、ｎ＝８である。
【０１６７】
例３８は例３１の方法を含み、ｎ＝４である。
【０１６８】
例３９は例３８の方法を含み、Ｌｏ＝１である。
【０１６９】
例４０は例３９の方法を含み、第１の時間は２秒である。
【０１７０】
例４１は例４０の方法を含み、閾値は３，０００である。
【０１７１】
例４２は例３１から例４１のうちのいずれかの方法を含み、異常を潜在的侵入として特定することをさらに有する。
【０１７２】
例４３は例３１の方法を含み、是正措置を講じること、または、セキュリティエージェントに是正措置を講じるように通知することをさらに有する。
【０１７３】
例４４は例３１から例４１のうちのいずれかの方法を含み、バスは、自動車のためのコントローラエリアネットワーク（ＣＡＮ）バスである。
【０１７４】
例４５は例４４の方法を含み、バスは、ＣＡＮバスのための車内ネットワークゲートウェイである。
【０１７５】
例４６は、例３１から例４５のうちのいずれかの方法を実行するための手段を備える装置を含む。
【０１７６】
例４７は例４６の装置を含み、方法を実行するための手段は、プロセッサおよびメモリを有する。
【０１７７】
例４８は例４７の装置を含み、メモリは、実行された場合に例３１から例４５のうちのいずれかの方法をこの装置に実行させる、機械可読命令を有する。
【０１７８】
例４９は例４６から例４８のうちのいずれかの装置を含み、この装置はコンピューティングシステムである。
【０１７９】
例５０は、実行された場合に、例３１から例４９のうちのいずれかに例示されるような方法を実装するまたは装置を実現する命令を有する、少なくとも１つのコンピュータ可読媒体を含む。
その他の可能な項目は次の通りである。
［項目１］
ハードウェアプラットフォームと、
認証のためのネイティブサポートが欠如したバスへ通信可能に結合するネットワークインタフェースと、
ハードウェアプラットフォームにて動作する異常検出エンジンと
を備え、
異常検出エンジンは、
第１の時間にわたる第１データストリームを受信すること、
第１ウィンドウ和を算出することを有する、第１データストリームを記号化および近似すること、
第１の時間と実質的に長さの等しい第２の時間にわたる第２データストリームであって、第１データストリームからの複数の次元にわたるデータを有する第２データストリームを受信すること、
第２ウィンドウ和を算出することを有する、第２データストリームを記号化および近似すること、
第１ウィンドウ和と第２ウィンドウ和との間の差分を算出すること、
差分が閾値を超えていること、および、複数の次元にわたる相関が破られていることを判断すること、並びに、
潜在的な異常を警告すること
を行うように構成される、コンピューティング装置。
［項目２］
記号化および近似することは、
データストリームを複数のフレームに分割すること、
それぞれのフレームの少なくとも一部を記号化することであって、フレームのデータユニットに対する潜在的値のデータ空間を複数のｎ個のバケット記号に分割すること、および、それぞれのデータユニットに対してそのバケットに従った記号を割り当てることを有する、記号化すること、並びに、
この時間にわたって第１の和を算出することであって、データストリームを、Ｌｓ個の記号分の長さを有する複数のシーケンスであって、それぞれのシーケンスがＬｏ個の記号分前のシーケンスとオーバーラップしている複数のシーケンスに分割すること、および、それぞれのシーケンスの発生数を集計することを有する、ウィンドウ和を算出すること
を有する、項目１に記載のコンピューティング装置。
［項目３］
それぞれのシーケンスの発生数を集計することは、ｎ×ｎ×Ｌｓのアレイに集計を記録することを有し、このアレイにおけるそれぞれのセルは、記号シーケンスに対する可能な値を表す、項目２に記載のコンピューティング装置。
［項目４］
第１ウィンドウ和と第２ウィンドウ和との間の差分を算出することは、このアレイにおけるそれぞれのセル間のセル毎の差分の絶対値を算出すること、および、セル毎の差分の絶対値を合計することを有する、項目３に記載のコンピューティング装置。
［項目５］
データユニットは８ビットバイトであり、それぞれのフレームの一部は、それぞれのフレームの固定されたバイトである、項目１に記載のコンピューティング装置。
［項目６］
この固定されたバイトは第１のバイトである、項目５に記載のコンピューティング装置。
［項目７］
ｎ＝８である、項目１に記載のコンピューティング装置。
［項目８］
ｎ＝４である、項目１に記載のコンピューティング装置。
［項目９］
Ｌｏ＝１である、項目８に記載のコンピューティング装置。
［項目１０］
第１の時間は２秒である、項目９に記載のコンピューティング装置。
［項目１１］
閾値は３，０００である、項目１０に記載のコンピューティング装置。
［項目１２］
異常検出エンジンは、異常を潜在的侵入としてさらに特定する、項目１に記載のコンピューティング装置。
［項目１３］
異常検出エンジンは、是正措置をさらに講じる、または、セキュリティエージェントに是正措置を講じるようにさらに通知する、項目１２に記載のコンピューティング装置。
［項目１４］
バスは、自動車のためのコントローラエリアネットワーク（ＣＡＮ）バスである、項目１に記載のコンピューティング装置。
［項目１５］
コンピューティング装置は、ＣＡＮバスのための車内ネットワークゲートウェイとして動作するように構成される、項目１４に記載のコンピューティング装置。
［項目１６］
認証のためのネイティブサポートが欠如したバスへネットワークインタフェースを通信可能に結合すること、
第１の時間にわたる第１データストリームであって、複数の次元にわたるデータを有し、複数の次元のデータが互いに相関する第１データストリームを受信すること、
第１ウィンドウ和を算出することを有する、第１データストリームを記号化および近似すること、
第１の時間と実質的に長さの等しい第２の時間にわたる第２データストリームであって、第１データストリームからの複数の次元にわたるデータを有する第２データストリームを受信すること、
第２ウィンドウ和を算出することを有する、第２データストリームを記号化および近似すること、
第１ウィンドウ和と第２ウィンドウ和との間の差分を算出すること、
差分が閾値を超えていること、および、複数の次元にわたる相関が破られていることを判断すること、並びに、
潜在的な異常を警告すること
を行うための実行可能な命令が格納される、１または複数の有形な非一時的コンピュータ可読記憶媒体。
［項目１７］
記号化および近似することは、
データストリームを複数のフレームに分割すること、
それぞれのフレームの少なくとも一部を記号化することであって、フレームのデータユニットに対する潜在的値のデータ空間を複数のｎ個のバケット記号に分割すること、および、それぞれのデータユニットに対してそのバケットに従った記号を割り当てることを有する、記号化すること、並びに、
この時間にわたって第１の和を算出することであって、データストリームを、Ｌｓ個の記号分の長さを有する複数のシーケンスであって、それぞれのシーケンスがＬｏ個の記号分前のシーケンスとオーバーラップしている複数のシーケンスに分割すること、および、それぞれのシーケンスの発生数を集計することを有する、ウィンドウ和を算出すること
を有する、項目１６に記載の１または複数の有形な非一時的コンピュータ可読媒体。
［項目１８］
それぞれのシーケンスの発生数を集計することは、ｎ×ｎ×Ｌｓのアレイに集計を記録することを有し、このアレイにおけるそれぞれのセルは、記号シーケンスに対する可能な値を表す、項目１６に記載の１または複数の有形な非一時的コンピュータ可読媒体。
［項目１９］
第１ウィンドウ和と第２ウィンドウ和との間の差分を算出することは、アレイにおけるそれぞれのセル間のセル毎の差分の絶対値を算出すること、および、セル毎の差分の絶対値を合計することを有する、項目１７に記載の１または複数の有形な非一時的コンピュータ可読媒体。
［項目２０］
データユニットは８ビットバイトであり、それぞれのフレームの一部は、それぞれのフレームの固定されたバイトである、項目１６に記載の１または複数の有形な非一時的コンピュータ可読媒体。
［項目２１］
この固定されたバイトは第１のバイトである、項目２０に記載の１または複数の有形な非一時的コンピュータ可読媒体。
［項目２２］
ｎ＝４且つＬｏ＝１である、項目１６に記載の１または複数の有形な非一時的コンピュータ可読媒体。
［項目２３］
第１の時間は２秒である、項目２２に記載の１または複数の有形な非一時的コンピュータ可読媒体。
［項目２４］
認証のためのネイティブサポートが欠如したバスにおける異常検出を提供するコンピュータ実装方法であって、
このバスへネットワークインタフェースを通信可能に結合すること、
第１の時間にわたる第１データストリームであって、複数の次元にわたるデータを有し、複数の次元のデータが互いに相関する第１データストリームを受信すること、
第１ウィンドウ和を算出することを有する、第１データストリームを記号化および近似すること、
第１の時間と実質的に長さの等しい第２の時間にわたる第２データストリームであって、第１データストリームからの複数の次元にわたるデータを有する第２データストリームを受信すること、
第２ウィンドウ和を算出することを有する、第２データストリームを記号化および近似すること、
第１ウィンドウ和と第２ウィンドウ和との間の差分を算出すること、
差分が閾値を超えていること、および、複数の次元にわたる相関が破られていることを判断すること、並びに、
潜在的な異常を警告すること
を有する方法。
［項目２５］
記号化および近似することは、
データストリームを複数のフレームに分割すること、
それぞれのフレームの少なくとも一部を記号化することであって、フレームのデータユニットに対する潜在的値のデータ空間を複数のｎ個のバケット記号に分割すること、および、それぞれのデータユニットに対してそのバケットに従った記号を割り当てることを有する、記号化すること、並びに、
この時間にわたって第１の和を算出することであって、データストリームを、Ｌｓ個の記号分の長さを有する複数のシーケンスであって、それぞれのシーケンスがＬｏ個の記号分前のシーケンスとオーバーラップしている複数のシーケンスに分割すること、および、それぞれのシーケンスの発生数を集計することを有する、ウィンドウ和を算出すること
を有する、項目２４に記載の方法。
【図１】
2019208199.tif 000005
【図２】
2019208199.tif 000006
【図３】
2019208199.tif 000007
【図４】
2019208199.tif 000008
【図５】
2019208199.tif 000009
【図６】
2019208199.tif 000010
【図７】
2019208199.tif 000011
【図８】
2019208199.tif 000012
【図９】
2019208199.tif 000013
【図１０】
2019208199.tif 000014
【図１１】
2019208199.tif 000015
【外国語明細書】
2019208199000001.pdf