(57)【要約】  車両におけるサイバー脅威を検出するシステムおよび方法は、車載ネットワークに接続された構成要素の悪用に関連するイベントを、基準実行の挙動からの実行可能コードの実行の逸脱に基づき検出することができる。ホワイトリストおよびブラックリストのセットに基づき、逸脱を検出することができる。逸脱に関連するイベントを記録することができる。
2020530624.tif 000002
【特許請求の範囲】
【請求項１】
メモリとセキュリティレイヤとを含むセキュリティシステムであって、
前記セキュリティレイヤは、車載ネットワークに接続された構成要素の悪用に関連するイベントを、基準実行の挙動からの実行可能コードの実行の逸脱に基づき検出するように適合されており、
プロセスツリー、プロセスに関連するメタデータ、リソースへのアクセス、前記実行可能コードにおける関数および命令に対するコール、のうちの少なくとも１つに関連するホワイトリストおよびブラックリストのセットに基づき、逸脱が検出され、さらに
逸脱が検出されたならば、前記イベントのログが作成される、
セキュリティシステム。
【請求項２】
当該システムは、一連のイベントを脅威と関連づけるように適合されたルールエンジンを含む、請求項１記載のシステム。
【請求項３】
当該システムは、検出されたセキュリティ脅威に関連するデータをサーバに供給するように適合されており、前記サーバは、車両のフリートに関連するデータを生成して呈示するように適合されている、請求項１記載のシステム。
【請求項４】
当該システムは、１つまたは複数のソフトウェアセンサからイベントを受信するように適合されている、請求項１記載のシステム。
【請求項５】
前記ソフトウェアセンサのうちの少なくとも一部は、
システムコールまたは命令が実行されるのを妨げ、
妨げられた前記コールまたは前記命令に関連するデータの解析に基づきセキュリティ脅威を検出し、
前記脅威のログを作成する
ように適合されている、請求項４記載のシステム。
【請求項６】
前記ソフトウェアセンサのうちの少なくとも一部は、前記コールまたは前記命令をブロックまたは阻止するように適合されている、
請求項５記載のシステム。
【請求項７】
当該システムは、
セキュリティポリシーを少なくとも１つのアプリケーションに関連づけ、
前記セキュリティポリシーにディジタル署名し、
署名に基づきセキュリティを検証する
ように適合されている、請求項１記載のシステム。
【請求項８】
当該システムは、
セキュリティ脅威を検出し、
前記脅威を信頼レベルに関連づけ、
前記信頼レベルに基づき少なくとも１つの措置の実施を選択する
ように適合されている、請求項１記載のシステム。
【請求項９】
当該システムは、タイマまたはイベントに基づき逸脱を検出するために、メモリをスキャンするように適合されている、請求項１記載のシステム。
【請求項１０】
当該システムは、以下から成るグループすなわち、
前記ネットワークに接続された構成要素のディスエーブル、プロセスのキル、前記ネットワークに接続された構成要素のアクティベート、メッセージのブロック、メッセージの遅延、メッセージタイプの頻度の制限、メッセージのログの作成、ユーザへの警告、メッセージ内の内容の変更、内容の属性の変更、内容に関連するメタデータの変更、実行可能コードのパーミッションの変更、構成要素のリセット、既知の状態への構成要素の復帰およびプロセスの実行、
から成るグループから選択された少なくとも１つの措置を実施するように適合されている、請求項１記載のシステム。
【請求項１１】
前記車両の状態に基づき、または前記車両内に含まれる構成要素の状態に基づき、前記逸脱が識別される、請求項１記載のシステム。
【請求項１２】
車載ネットワークに接続された構成要素の悪用に関連するイベントを、基準実行の挙動からの実行可能コードの実行の逸脱に基づき検出することを含む方法であって、
プロセスツリー、プロセスに関連するメタデータ、リソースへのアクセス、前記実行可能コードにおける関数および命令に対するコール、のうちの少なくとも１つに関連するホワイトリストおよびブラックリストのセットに基づき、逸脱を検出し、さらに
逸脱を検出したならば、前記イベントのログを作成する、
方法。
【請求項１３】
当該方法は、ルールエンジンによって一連のイベントを脅威と関連づけることを含む、  請求項１２記載の方法。
【請求項１４】
当該方法は、
検出されたセキュリティ脅威に関連するデータをサーバに供給すること、
車両のフリートに関連するデータを前記サーバによって生成および呈示すること
を含む、請求項１２記載の方法。
【請求項１５】
当該方法は、１つまたは複数のソフトウェアセンサからイベントを受信することを含み、前記ソフトウェアセンサのうちの少なくとも一部は、前記コールまたは前記命令をブロックまたは阻止するように適合されている、請求項１２記載の方法。
【請求項１６】
当該方法は、
ソフトウェアセンサによって、システムコールまたは命令が実行されるのを妨げること、
前記ソフトウェアセンサによって、妨げられた前記コールまたは前記命令に関連するデータの解析に基づき、セキュリティ脅威を検出すること、
前記脅威のログを作成すること
を含む、請求項１５記載の方法。
【請求項１７】
当該方法は、
セキュリティポリシーを少なくとも１つのアプリケーションに関連づけること、
前記セキュリティポリシーにディジタル署名すること、
署名に基づきセキュリティを検証すること
を含む、請求項１２記載の方法。
【請求項１８】
当該方法は、
セキュリティ脅威を検出すること、
前記脅威を信頼レベルに関連づけること、
前記信頼レベルに基づき少なくとも１つの措置の実施を選択すること
を含む、請求項１２記載の方法。
【請求項１９】
当該方法は、タイマまたはイベントに基づき逸脱を検出するために、メモリをスキャンすることを含む、請求項１２記載の方法。
【請求項２０】
前記車両の状態に基づき、または前記車両内に含まれる構成要素の状態に基づき、前記逸脱を識別する、請求項１２記載の方法。
【請求項２１】
車載ネットワークに接続された構成要素の悪用を検出する方法であって、
実行可能コードの実行を基準実行と比較すること、
前記実行が前記基準実行にマッチしていなければ、前記車載ネットワークに接続された構成要素が悪用されていると判定すること
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はサイバー攻撃の阻止に関する。より具体的には本発明は、車載ネットワークと接続された構成要素の悪用を検出および阻止するシステムおよび方法に関する。
【０００２】
発明の背景
車両がワイヤレスネットワークに接続されることが多くなると、サイバー攻撃に関するリスクが高まる。サイバーセキュリティは、自律車両のことを考えると、特に重要である。したがって脅威を検出すると共にそれに対して応答する目的で、サイバーセキュリティに関連するイベントについて、自律車両のフリートを監視するのが望ましい。
【０００３】
車載ネットワークは、種々の電子制御ユニット（ＥＣＵ）との通信によって、車両の様々な構成要素（たとえばエアコンディショニングシステム、診断システム、エンジン、制御システムなど）の間において、内部のコンピュータデータ通信を可能にする。電子制御ユニットは、センサからの入力（たとえば速度、温度、圧力など）をそれらの解析に使用するために受信することができ、さらにＥＣＵは通常の車両動作中、それらのＥＣＵ間でデータを交換することができる。たとえばエンジンは、エンジン速度がどのようであるかを変速機に伝達しなければならない場合があるし、変速機は、いつギアシフトが行われるのかを他のモジュールに伝達しなければならない場合がある。車載ネットワークは、迅速にかつ高い信頼性でＥＣＵ間の内部通信によりデータを交換することができる。ＥＣＵのうちの一部は、（テレマティックスシステム、マルチメディアシステムおよび運転者支援システムなど）外部インタフェースを介して、外界とダイレクトに接続される場合があり、それらのＥＣＵによって最も高いリスクがもたらされる可能性がある。かかる高性能のＥＣＵは、Ｌｉｎｕｘ、ＱＮＸまたはＡｎｄｒｏｉｄなど一般的な最新のオペレーティングを実行する場合もある。
【０００４】
発明の概要
車両におけるサイバー脅威を検出するシステムおよび方法は、車載ネットワークに接続された構成要素の悪用に関連するイベントを、基準実行の挙動からの実行可能コードの実行の逸脱に基づき検出することができる。ホワイトリストおよびブラックリストのセットに基づき、逸脱を検出することができる。ブラックリストおよびホワイトリストを、プロセスツリー、プロセスに関連するメタデータ、リソースへのアクセス、実行可能コードにおける関数および命令に対するコール、のうちの少なくとも１つに関連させることができる。逸脱に関連するイベントを記録することができる。車両の状態に基づき、または車両内に含まれる構成要素の状態に基づき、逸脱を識別することができる。
【０００５】
１つの実施形態は、一連のイベントを脅威と関連づけるように適合されたルールエンジンを含むことができる。１つの実施形態を、検出されたセキュリティ脅威に関連するデータをサーバに供給するように適合することができ、このサーバを、車両のフリートに関連するデータを生成して呈示するように適合することができる。
【０００６】
１つの実施形態を、１つまたは複数のソフトウェアセンサからのイベントを受信するように適合することができる。ソフトウェアセンサのうちの少なくとも一部を、システムコールまたは命令が実行されるのを妨げ、妨げられたコールまたは命令に関連するデータの解析に基づきセキュリティ脅威を検出し、さらに脅威のログを作成するように、適合することができる。ソフトウェアセンサのうちの少なくとも一部を、コールまたは命令をブロックまたは阻止するように適合することができる。
【０００７】
１つの実施形態を、セキュリティポリシーを少なくとも１つのアプリケーションに関連づけ、そのセキュリティポリシーにディジタル署名し、さらに署名に基づきセキュリティを検証するように適合することができる。１つの実施形態を、セキュリティ脅威を検出し、その脅威を信頼レベルに関連づけ、さらにその信頼レベルに基づき少なくとも１つの措置の実施を選択するように適合することができる。１つの実施形態を、タイマまたはイベントに基づき逸脱を検出するために、メモリをスキャンするように適合することができる。
【０００８】
１つの実施形態を、以下から成るグループから選択された少なくとも１つの措置を実施するように適合することができる。すなわち、ネットワークに接続された構成要素のディスエーブル、プロセスのキル、ネットワークに接続された構成要素のアクティベート、メッセージのブロック、メッセージの遅延、メッセージタイプの頻度の制限、メッセージのログの作成、ユーザへの警告、メッセージ内の内容の変更、内容の属性の変更、内容に関連するメタデータの変更、実行可能コードのパーミッションの変更、構成要素のリセット、既知の状態への構成要素の復帰およびプロセスの実行。本発明のさらに別の態様および／または利点が、本明細書において説明される。
【図面の簡単な説明】
【０００９】
本発明とみなされる保護対象については、本明細書の結びの部分で個別に指摘して明確に請求する。とはいえ添付の図面と共に読むならば、以下の詳細な説明を参照することにより、構成および稼働方法の双方に関して本発明をその目的、特徴および利点と共に最もよく理解することができる。
【図１】本発明の一部の実施形態による例示的なコンピューティングデバイスを示すブロック図である。
【図２】本発明の一部の実施形態による車載ネットワークに対する攻撃を検出するシステムを示すブロック図である。
【図３】本発明の一部の実施形態による検証実行方法を示すフローチャートである。
【図４】本発明の一部の実施形態による車載ネットワークに対する攻撃を検出する方法を示すフローチャートである。
【図５】本発明の一部の実施形態による車載ネットワークに対する攻撃を検出する方法を示すフローチャートである。
【００１０】
自明のとおり、説明を簡単かつ明瞭にするために、各図面に示された要素を必ずしも縮尺どおりには描かなかった。たとえば、わかりやすくするため要素の一部の寸法が、他の要素に対し相対的に誇張されている場合もある。さらに適切とみなされる場合には、対応する要素または類似する要素を表すために、各図面にわたり共通して参照符号が繰り返されている場合もある。
【００１１】
本発明の実施形態の詳細な説明
以下の詳細な説明では、本発明を完全に理解できるよう、多数の詳細な点が述べられている。ただし当業者に自明のとおり、それらの固有の詳細な点がなくても本発明を実施することができる。さらに別の点を挙げておくと、本発明を不明確にしないよう、周知の方法、手順および構成要素については詳述しなかった。
【００１２】
本発明の実施形態はこの点で限定されるものではないが、たとえば「処理する」、「演算する」、「計算する」、「決定する」、「確立する」、「解析する」、「検査する」、または同等のものなどの用語を使用する説明は、コンピュータ、コンピューティングプラットフォーム、コンピューティングシステム、または他の電子的なコンピューティングデバイスのオペレーションおよび／またはプロセスのことを指すことができ、これはコンピュータのレジスタ内および／またはメモリ内で物理的な（たとえば電子的な）量として表現されたデータを、オペレーションおよび／またはプロセスを実施する命令を記憶可能なコンピュータのレジスタ内および／またはメモリ内および／または他の非一時的情報記憶媒体内で、同様に物理的な量として表現された他のデータとなるよう、操作および／または変換する。本発明の実施形態はこの点で限定されるものではないが、本明細書で使用される用語「多数の」および「複数の」は、たとえば「多重の」あるいは「２つまたはそれよりも多くの」を含むことができる。用語「多数の」または「複数の」を、本明細書全体を通して、２つまたはそれよりも多くの構成要素、デバイス、要素、ユニット、パラメータ、または同等のものを説明するために使用することができる。用語「セット」は、本明細書で用いられるときには、１つまたは複数の項目を含むことができる。明示的に述べられていないかぎり、本明細書で説明する方法の実施形態は、特定の順序またはシーケンスに束縛されるものではない。これに加え、説明される方法の実施形態またはその要素の一部は、同時に、同じ時点に、または並行して、発生するまたは実施される可能性がある。
【００１３】
図１を参照すると、この図には、本発明の一部の実施形態による例示的なコンピューティングデバイスのブロック図が示されている。デバイス１００は、たとえば中央処理ユニットプロセッサ（ＣＰＵ）、チップまたは任意の適切なコンピューティングデバイスまたは計算デバイスとすることができるコントローラ１０５と、オペレーティングシステム１１５と、メモリ１２０と、実行可能コード１２５と、入力デバイス１３５および出力デバイス１４０を含むことができる記憶システム１３０とを含むことができる。コントローラ１０５（あるいは場合によっては複数のユニットまたはデバイスにわたる１つまたは複数のコントローラまたはプロセッサ）を、本明細書で説明する方法を実施するように、かつ／または様々なモジュール、ユニットなどとして実行されまたは振る舞うように、コンフィギュレーションすることができる。２つ以上のコンピューティングデバイス１００を含めることができ、１つまたは複数のコンピューティングデバイス１００は、本発明の実施形態によるシステムの構成要素として振る舞うことができる。
【００１４】
オペレーティングシステム１１５を、以下のように設計および／またはコンフィギュレーションされた任意のコードセグメント（たとえば本明細書で説明する実行可能コード１２５と類似のもの）であるとすることができ、またはオペレーティングシステム１１５はそのようなコードセグメントを含むことができる。すなわちこのコードセグメントは、コンピューティングデバイス１００のコーディネート、スケジューリング、調停、監督、制御、またはその他の管理オペレーション、たとえばソフトウェアプログラムまたはタスクの実行をスケジューリングすること、あるいはソフトウェアプログラムまたは他のモジュールまたはユニットが通信できるようにすることなど、を含むタスクを実施する。オペレーティングシステム１１５を、市販のオペレーティングシステムとすることができる。なお、ここで述べておくと、オペレーティングシステム１１５を任意の構成要素とすることができ、たとえば一部の実施形態によればシステムは、オペレーティングシステム１１５を必要としないまたは含まないコンピューティングデバイスを含むことができる。たとえばコンピュータシステムを、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルアレイ（ＦＰＧＡ）、および／またはシステム・オン・チップ（ＳＯＣ）とすることができ、またはコンピュータデバイスはこれらを含むことができ、これらはオペレーティングシステムなしで使用可能である。
【００１５】
メモリ１２０をたとえば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤ−ＲＡＭ）、ダブルデータレート（ＤＤＲ）メモリチップ、フラッシュメモリ、揮発性メモリ、不揮発性メモリ、キャッシュメモリ、バッファ、短期メモリユニット、長期メモリユニット、または他の適切なメモリユニットまたは記憶ユニットとすることができ、またはメモリ１２０はこれらを含むことができる。メモリ１２０を場合によってはそれぞれ異なる複数のメモリユニットとすることができ、またはメモリ１２０はこれらを含むことができる。メモリ１２０を、コンピュータまたはプロセッサの非一時的可読媒体、あるいはコンピュータの非一時的記憶媒体、たとえばＲＡＭ、とすることができる。
【００１６】
実行可能コード１２５を任意の実行可能コードとすることができ、たとえばアプリケーション、プログラム、プロセス、タスクまたはスクリプトとすることができる。実行可能コード１２５を、場合によってはオペレーティングシステム１１５の制御のもとで、コントローラ１０５により実行することができる。たとえば実行可能コード１２５を、本明細書において後で説明する車両におけるセキュリティを強化するアプリケーションとすることができ、たとえばこれによって車載ネットワークに対するサイバー攻撃が検出または阻止される。わかりやすくする目的で、図１には単一の項目の実行可能コード１２５が示されているけれども、本発明の一部の実施形態によるシステムは、実行可能コード１２５と同様の複数の実行可能コードセグメントを含むことができ、それらをメモリ１２０にロードすることができ、それらによって本明細書で説明する方法をコントローラ１０５が実施できるようになる。適用可能である場合には、用語「プロセス」と「実行可能コード」とは同じものを指すことができ、本明細書ではそれらを区別なく用いることができる。たとえばプロセスの検証、妥当性確認および／または認証は、実行可能コードの検証、妥当性確認および／または認証のことを指すことができる。
【００１７】
記憶システム１３０をたとえば、当該技術分野で周知のフラッシュメモリ、当該技術分野で周知のマイクロコンローラまたはチップの内部のまたはそれらに組み込まれたメモリ、ハードディスクドライブ、書き込み可能ＣＤ（ＣＤ−Ｒ）ドライブ、ブルーレイディスク（ＢＤ）、汎用シリアルバス（ＵＳＢ）デバイス、または他の適切なリムーバブル型および／または固定型の記憶ユニットとすることができ、または記憶システム１３０はたとえばこれらを含むことができる。記憶システム１３０に内容を記憶させることができ、その内容を記憶システム１３０からメモリ１２０にロードすることができ、そこにおいてその内容をコントローラ１０５によって処理することができる。一部の実施形態によれば、図１に示した構成要素の一部を省略してもよい。たとえばメモリ１２０を、記憶システム１３０の記憶容量を有する不揮発性メモリとしてもよい。したがって別個の構成要素として示されているけれども、記憶システム１３０をメモリ１２０に組み込むまたは含めることができる。
【００１８】
入力デバイス１３５を、任意の適切な入力デバイス、構成要素またはシステム、たとえば加速度センサ、タコメータ、温度計などの物理センサ、取り外し可能なキーボードまたはキーパッド、マウスおよびその他同類のものとすることができ、または入力デバイス１３５はそれらを含むことができる。出力デバイス１４０は、１つまたは複数の（場合によっては取り外し可能な）ディスプレイまたはモニタ、モータ、サーボモータ、スピーカ、および／または他の適切な出力デバイスを含むことができる。任意の適用可能な入／出力（Ｉ／Ｏ）デバイスを、ブロック１３５および１４０によって示されているように、コンピューティングデバイス１００に接続することができる。たとえば有線または無線のネットワークインタフェースカード（ＮＩＣ）、汎用シリアルバス（ＵＳＢ）デバイス、または外付けハードディスクドライブを、入力デバイス１３５および／または出力デバイス１４０に含めることができる。自明のとおり、任意の適切の個数の入力デバイス１３５および出力デバイス１４０を、ブロック１３５および１４０によって示されているように、コンピューティングデバイス１００に作動的に接続することができる。たとえば、入力デバイス１３５および出力デバイス１４０は、コンピューティングデバイス１００に接続して、ソフトウェアおよびその他同類のものを更新する目的で、技術者またはエンジニアによって利用することができる。入力デバイスおよび／または出力デバイスあるいは構成要素１３５および１４０を、車両内の制御ユニットまたは他のユニットとの相互伝達または通信のために適合させることができ、たとえば入力デバイスおよび／または出力デバイスあるいは構成要素１３５および１４０は、デバイス１００がエンジン制御ユニット、サスペンション制御ユニット、牽引制御部およびその他同類のものと通信できるようにするポートを含むことができる。
【００１９】
本発明の実施形態は、コンピュータまたはプロセッサの非一時的可読媒体といった製品、あるいはたとえばメモリ、ディスクドライブまたはＵＳＢフラッシュメモリといったコンピュータまたはプロセッサの非一時的記憶媒体を含むことができ、これらは命令たとえばコンピュータにより実行可能な命令を符号化、包含または記憶することができ、それらの命令は、プロセッサまたはコントローラにより実行されると、本明細書で開示する方法を実施する。たとえば、メモリ１２０などの記憶媒体、実行可能コード１２５などのコンピュータにより実行可能な命令、およびコントローラ１０５などのコントローラである。
【００２０】
記憶媒体は、以下に限定されるものではないが、光磁気ディスクを含む任意のタイプのディスク、半導体デバイスたとえばリードオンリーメモリ（ＲＯＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、消去可能なプログラマブルリードオンリーメモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的に消去可能なプログラマブルリードオンリー（ＥＥＰＲＯＭ）、磁気カードまたは光学カード、あるいはプログラマブル記憶デバイスを含め、電子的な命令を記憶するのに適した任意のタイプの媒体を含むことができる。
【００２１】
本発明の実施形態は、以下に限定されるものではないが、複数の中央処理ユニット（ＣＰＵ）、あるいは任意の適切な多目的または特定の目的のプロセッサまたはコントローラ（たとえばコントローラ１０５と同様のコントローラ）、複数の入力ユニット、複数の出力ユニット、複数のメモリユニット、および複数の記憶ユニットなどの構成要素を含むことができる。これに加えシステムは、他の適切なハードウェア構成要素および／またはソフトウェア構成要素を含むことができる。一部の実施形態によればシステムはたとえば、パーソナルコンピュータ、デスクトップコンピュータ、モバイルコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ターミナル、ワークステーション、サーバコンピュータ、パーソナルディジタルアシスタント（ＰＤＡ）デバイス、タブレットコンピュータ、ネットワークデバイス、または他の適切なコンピューティングデバイスを含むことができ、あるいはシステムをこれらのものとすることができる。
【００２２】
一部の実施形態によればシステムはたとえば、複数の構成要素を含むことができ、またはシステムをそれらのものとすることができ、それらの構成要素には、個々の複数の中央処理ユニット、たとえば既述の複数のＣＰＵ、オンボードまたは車載のシステムまたはネットワークに組み込まれた複数のＣＰＵ、複数のチップ、ＦＰＧＡまたはＳＯＣ、複数のコンピュータデバイスまたはネットワークデバイス、あるいは他の適切なコンピューティングデバイスが含まれる。たとえば本明細書で説明するシステムは、コンピューティングデバイス１００など１つまたは複数のデバイスを含むことができる。
【００２３】
図２を参照すると、この図には、本発明の一部の実施形態による車載ネットワークにおける異常、サイバー脅威およびこれに対するサイバー攻撃を検出するシステムのブロック図が示されている。一部の実施形態は、図示のサーバ２６０を含むことができ、またはそれらの実施形態を図示のサーバ２６０と接続することができる。たとえばサーバ２６０は、ワイヤレス通信ネットワークを介してセキュリティレイヤ２１０（または車載ネットワーク２００と接続された他の任意の構成要素）と通信することができる。サーバ２６０を、任意の適切なサーバまたはコンピュータとすることができる。一部の実施形態によれば、車載ネットワーク２００に対する攻撃を検出する目的で、かかるシステム２５０を車載ネットワーク２００（または車両バス）に組み込むことができ、たとえば車両電子制御ユニット（ＥＣＵ）に集積することができる。図示されているようにシステム２５０は、プロセッサ２０１、ヒューリスティック（またはルール）エンジン２３０、実行可能コード２２０、セキュリティレイヤ２１０、ソフトウェアセンサ２４０、ＥＣＵ２０２およびＥＣＵ２０４を含むことができる。さらに図示されているようにシステム２５０を、バッテリ２０５または１つまたは複数の他の電力源および通信モジュール２０３と接続することができる。
【００２４】
図２のユニットおよび構成要素を、１つまたは複数のネットワークによって接続することができ、たとえば図示されている既述の車載ネットワーク２００によって、あるいは他の任意のネットワーク、たとえばコントローラエリアネットワーク（ＣＡＮ）バス、ワイヤレスネットワークまたはイーサネットネットワークによって、接続することができる。ネットワーク２００は、たとえばワイヤレスネットワークを含むことができる。さらに図２のユニットの一部を、たとえばワイヤレスネットワークを介して車両外部のユニットと接続することができ、たとえばセルラネットワークを介して通信するように適合された構成要素を、車載ネットワーク２００と接続することができ、これによってネットワーク２００と接続されたユニットおよび構成要素が、車両外部のユニット、デバイスおよびシステムと通信することができるようになる。たとえば、セルラネットワークを介して通信するように適合され、車載ネットワーク２００と接続されたデバイスにより、セキュリティレイヤ２１０がサーバ２６０と通信することができるようになる。
【００２５】
図２に示されているように車載ネットワーク２００を、車両内のモジュール、ユニットおよび構成要素と接続することができ、これによってかかるモジュール、ユニットおよび構成要素が通信できるようになる。簡潔にするため、本明細書で言及される車載ネットワーク２００を、ネットワークそのもの（たとえばＣＡＮバスまたはイーサネットインフラストラクチャ）およびこれに接続された構成要素とすることができ、車載ネットワーク２００はこれらを含むことができ、あるいは車載ネットワーク２００はこれらのものに関連するものとすることができる。車載ネットワーク２００は、車載ネットワーク２００の他の構成要素と通信を行うプロセッサ２０１（たとえば図１に示したコントローラ１０５）を含むことができる（この場合、通信は図２では矢印によって示唆されている）。一部の実施形態によれば、車載ネットワーク２００の各構成要素間の通信を、少なくとも１つのセキュリティレイヤ２１０によって実施することができ、たとえばセキュリティレイヤ２１０を、コントローラ１０５、メモリ１２０および実行可能コード１２５またはプロセッサ２０１を含む、またはこれらによって実装または実行されるコンピューティングユニットまたはソフトウェアモジュールとすることができる。車載ネットワーク２００であれば、たとえばＥＣＵ２０２および２０４など様々な構成要素を、図１で説明したようなシステムとすることができ、またはそれらの構成要素はこのシステムを含むことができる。
【００２６】
本明細書で言及される用語「異常」、「脅威」、「サイバー脅威」および「リスク」を、同じことに関連するものとすることができ、これらを区別なく用いることができる。たとえば異常を、それが検出されたときに脅威またはリスクとみなすことができる。同様に、サイバー脅威はリスクとみなされ、一般的には異常であり、正常ではなく、または予期されたイベントまたは事態ではない。
【００２７】
一部の実施形態によれば、プロセッサ２０１を少なくとも１つのＥＣＵ２０２、２０４に結合することができ、これに結合されたＥＣＵのオペレーションを解析することができる。ここで述べておきたいのは、プロセッサ２０１およびこれと結合されたＥＣＵ２０２、２０４の各々を、車載ネットワーク２００のノードとみなすことができる、ということである。一部の実施形態によれば、車載ネットワーク２００の各ノード間の通信を、少なくとも部分的にワイヤレス通信によって（たとえばブルートゥース通信プロトコルを介して）実施することができる。一部の実施形態によれば、車載ネットワーク２００は通信モジュール２０３を含むことができ、これは外部のデバイスとのワイヤレス通信を可能にするようにコンフィギュレーションされており、たとえばナビゲーションシステムが衛星と通信できるように、かつ／または外部のソースからメッセージ（たとえばタイムスタンプ）を受信できるように、コンフィギュレーションされている。一部の実施形態によれば、車載ネットワーク２００は、車載ネットワーク２００の構成要素に給電するために、バッテリ２０５（たとえば車両のバッテリ）を含むことができる。
【００２８】
一部の実施形態によれば、車載ネットワーク２００の少なくとも１つのノードは、車載ネットワーク２００に対する攻撃を検出するために、データを解析および／または処理することができる。一部の実施形態によれば、少なくとも１つのコンピューティングデバイス（図１に示したデバイス１００など）を、車載ネットワーク２００に組み込むことができ、このデバイスはネットワークからのデータを処理して、車載ネットワーク２００に対する攻撃を検出することができる。少なくとも１つのコンピューティングデバイス（図１に示したデバイス１００など）を、車載ネットワーク２００の少なくとも１つのノードに組み込むことができ、このデバイスは、そのノードからの、かつ／またはネットワークからのデータを処理して、車載ネットワーク２００に対する攻撃を検出することができる。セキュリティレイヤ２１０をコード検証レイヤとすることができ、またはセキュリティレイヤ２１０はコード検証レイヤを含むことができ、このレイヤは、ロード（これにはたとえばプロセスの実行、ライブラリのロード、スクリプトの読み出しなどが含まれる）に応答して、システム２５０におけるすべての実行可能コード２２０を検証するように適合されている。一部の実施形態によれば、セキュリティレイヤ２１０を、変更を検出するために実行可能コード２２０をランタイム中に解析するようにコンフィギュレーションすることができる。
【００２９】
車載ネットワーク２００の少なくとも１つのノードは、車載ネットワーク２００に対する攻撃を検出するために、データを解析および／または処理することができる。一部の実施形態によれば、少なくとも１つのコンピューティングデバイス（図１に示したデバイス１００など）を、車載ネットワーク２００に組み込むことができ、このデバイスはネットワークからのデータを処理して、車載ネットワーク２００に対する攻撃を検出することができる。少なくとも１つのコンピューティングデバイス（図１に示したデバイス１００など）を、車載ネットワーク２００の少なくとも１つのノード（たとえばＥＣＵ２０２）に組み込むことができ、このデバイスは、そのノードからの、かつ／またはネットワークからのデータを処理して、車載ネットワーク２００に対する攻撃を検出することができる。一部の実施形態によれば、少なくとも１つのセキュリティレイヤ２１０は、コード検証（または認証）レイヤを含むことができ、このレイヤは、メモリへの（たとえばメモリ１２０への）実行可能コード２２０のロード前、ロードに応答して、またはロード後、かつ／または、たとえばコントローラ１０５による実行可能コード２２０の実行前、実行に応答して、または実行後、システム２５０における実行可能コード２２０を検証および／または認証する。
【００３０】
一般に、本明細書で説明し言及する実行可能コードの検証、妥当性確認および／または認証は、実行可能コードまたはデータを実際に含むものとして呈示または表現されたファイルまたは他のオブジェクトが、実行可能コードおよび／または付加的なデータを予期されたとおりに本当に含んでいる、ということを確認および／または判定すること、を含むことができる。たとえば、ファイルまたはメモリに記憶された実行可能コードに適用されたハッシュ値または他の関数を用いて、ハッシュ値を計算することができ、（たとえば製造時に）基準ハッシュ値が計算されて以降、実行可能コードが変更されたことを検証するために、ハッシュ値を（たとえばこの値と基準ハッシュ値との比較によって）使用することができる。任意のデータまたはメタデータを検証のために使用することができ、たとえば実行可能コードのタイムスタンプ、名称または実行可能コードへの参照、実行可能コードの提供者などを、実行可能コードを含むファイル内に含めることができ、本明細書で説明する検証、妥当性確認および／または認証は、ファイル内のデータが予期されたとおりであることを検証することを含むことができる。本明細書で説明する検証、妥当性確認および／または認証のために使用されるデータを、たとえば秘密鍵を用いて暗号化することができ、さらにたとえばセキュリティレイヤ２１０により対応する公開鍵を用いて復号することができる。
【００３１】
たとえば、実行可能コード２２０の検証および／または認証を、メモリへの実行可能コード２２０のロードに先立ち行うことができ、検証または認証が失敗した場合には、メモリへの実行可能コード２２０のロードをキャンセル、阻止または中止することができ、たとえば検証または認証が失敗したならば、コントローラ１０５は実行可能コード２２０がメモリ１２０にロードされるのを阻止することができ、またはコントローラ１０５は、メモリ１２０への実行可能コード２２０のロードを中止することができる。かくして本発明の実施形態によれば、悪意のあるまたは不審なコードがコンピュータのメモリにロードされるのを阻止することによって、車両のコンピュータセキュリティの技術が改善され、ひいてはシステムのセキュリティが向上する。
【００３２】
一部の実施形態によれば、セキュリティレイヤ２１０（またはその中のコード検証レイヤ）を、実行可能コード２２０をランタイム中に解析、検証、および／または認証して変更を検出するように、コンフィギュレーションすることができる。本明細書でさらに説明するように、コードを基準コードと比較する（たとえばコードセグメント中またはファイルに記憶されたコード中のバイトを、またはビットでさえも、基準コードセグメントまたは既知のコードセグメントと比較する）ことによって、コードの変更を検出または識別することができる。たとえばパフォーマンスを高める目的で、コントローラ１０５は実行可能コード２２０をメモリ１２０にロードし、実行可能コード２２０の実行を開始させ、次いでバックグラウンドで、実行可能コード２２０が実行されている間にコントローラ１０５は、既述のように実行可能コード２２０を検証および／または認証することができる。コントローラ１０５は、実行可能コード２２０の検証および／または妥当性確認の際に見つけられた妥当性確認エラーのログを作成することができ、妥当性確認または認証が失敗したならば、コントローラ１０５は実行可能コード２２０の実行を終了させることができる。したがって本発明の実施形態によれば、システムが通常どおりに動作し（たとえばコードをメモリにロードしてそのコードを実行し）、次いで既述のように、コードが悪意のないものであるか、またはさもなければ脅威をもたらすものであるか、を検証することができるようにすることで、車両のコンピュータセキュリティの技術が改善される。１つの実施形態によれば、実行可能コード２２０がメモリにロードされる前および／または実行される前に、そのコードの検証、認証または妥当性確認を行うのか、あるいはその後に行うのか、を選択することができる、といったように様々な考察を適用することができる。たとえば１つの実施形態によれば、場合によってはセンシティブなまたはハイリスクのいくつかのＥＣＵにおいては、コードをメモリにロードする前にそのコードを検証することができ、それよりもクリティカルまたはセンシティブでない他のＥＣＵにおいては、この実施形態によれば、コードをさしあたりロードして実行し、次いでその真正性を検証することができる。コードを事前に妥当性確認（ロード前および／または実行前に妥当性確認）するのか、またはコードを事後に妥当性確認（コードがメモリにロードされた後および／または実行が開始された後にコードを妥当性確認または認証）するのかの選択にあたり、実施形態によれば、任意のルール、判定基準、ヒューリスティックまたはロジックを適用することができる。既述のように事前の妥当性確認または事後の妥当性確認のうちの一方を選択するときに、たとえば車両の状態、ＥＣＵの状態、コントローラ１０５における計算負荷などをすべて、セキュリティレイヤ２１０により考慮することができる。したがって本発明の実施形態によれば、セキュリティ、パフォーマンス、効率およびコストを混ぜ合わせた、またはそれらに関連する考察に基づく最適なオペレーションモードを、システムおよび方法が選択できるようにすることで、サイバーセキュリティの領域が改善される。
【００３３】
一部の実施形態は、車両ネットワークに接続されたＥＣＵにおいて実行可能コードを検証するように適合されたセキュリティレイヤを含む。たとえば、実行可能コード２２０を、ＥＣＵ２０２において、またはＥＣＵ２０２により（たとえばＥＣＵ２０２に含まれているプロセッサにより）実行することができ、プロセッサ２０１は、実行可能コード２２０がＥＣＵ２０２において、またはＥＣＵ２０２により実行されている間に（または既述のようにその前に）、実行可能コード２２０の解析、検証および／または認証を行うことができる。本明細書で説明するコードの検証および／または認証は、コードが基準コードまたは既知のコードと類似しているまたは同一である、ということを判定または確認することを含むことができる。たとえば、コードの検証および／または認証は、場合によってはビットごとにコードを基準コードと比較して、検査中のコードに対しなされた変更を検出または識別することを含むことができる。別のケースにおいてハッシュ関数を用いることができ、たとえば、ハッシュ値がメモリセグメントの内容を一義的に識別するように（またはメモリセグメント内の内容が基準コードと同じまたは同一であるか否かを判定するために用いられるように）、メモリセグメント内の内容に基づきそのメモリセグメントについてハッシュ値を計算することができ、たとえばメモリ内容が変更されているならば、ハッシュ値の再計算によって異なるハッシュ値が生成されることになる。したがってメモリ（またはプロセスコード）の検証または認証は、メモリまたはプロセスについてハッシュ値を計算すること、およびそのハッシュ値を基準ハッシュ値と比較することを含むことができる。たとえば基準ハッシュ値を、ＥＣＵの製造業者により、またはプロセスコードの提供者により、供給することができ、または基準ハッシュ値を、学習または初期化のフェーズ中または段階中に計算することができる。
【００３４】
たとえば、１つの実施形態によれば、コードまたはメモリセグメントを考慮することができ、それらが基準コードまたは基準メモリセグメントと同様であれば、類似していれば、または同一ですらあれば、それらを検証または認証することができる。たとえば、コードまたはメモリセグメントを検証または認証するために、既述のマップおよび関連づけられたメタデータを使用することができる。
【００３５】
既述のように、実行可能コードの検証、妥当性確認および／または認証を、コードが実行される直前に、たとえばコードがメモリ１２０にロードされた直後に、実施することができる。実行可能コードの検証、妥当性確認および／または認証を、イベントによってトリガすることができる。たとえば、実行可能コードの実行によって、または実行可能コードを実行する意図によってさえも、実行可能コードの検証、妥当性確認および／または認証を、１つの実施形態（たとえば既述のコントローラ１０５）が行うようにすることができる。たとえば、実行可能コード２２０を実行するリクエスト、コールまたは要求が受信されたかまたは識別されたときはいつでも、たとえばＯＳ１１５によってセキュリティレイヤ２１０に通知することができ、このようにして通知されると、セキュリティレイヤ２１０は、コード２２０の実行を遅延させて、コード２２０の検証、妥当性確認および／または認証を行うことができ、その後でのみ、コード２２０が実行されるのを許可し、または可能にし、あるいはセキュリティレイヤ２１０は、たとえば、検証、妥当性確認および／または認証のプロセスが実施されている間、コード２２０を実行させることによって、既述のようにバックグラウンドの検証、妥当性確認および／または認証のプロセスを開始またはスケジューリングすることができる。
【００３６】
ＥＣＵ２０２および２０４とは別個に、またはこれらの外側に示されているとはいえ、一部の実施形態によれば、プロセッサ２０１、エンジン２３０およびセキュリティレイヤ２１０の一部を、またはすべてでさえも、ＥＣＵ２０２および２０４の各々に含めるまたは組み込むことができる。したがって１つまたは複数のユニットは、集中型の手法で複数のＥＣＵにおける、または複数のＥＣＵのための実行可能コードを検証し保証することができ、別の実施形態によれば、実行可能なコードの保証および検証の機能を分散させることができ、たとえば保護された複数のユニットまたはＥＣＵにおいて、またはこれらによって、実施することができる。
【００３７】
一部の実施形態によれば、セキュリティレイヤ２１０は、実行可能コードを含むまたは包含するファイルごとに証明書を検証するために、非対称暗号を使用することができる。たとえば証明書を、実行可能コードを含むファイル各々のために生成し、そのファイル各々に関連づけることができ、ＥＣＵまたは他の保護されたシステムがあるプロセスをまさに実行しようとするならば、またはあるプロセスをまさに実行しようとするときに、実行されるコードを包含する（たとえばファイルシステム内の）ファイルに関連づけられた証明書が、既述のように実行可能コードの検証、妥当性確認および／または認証のために使用される。一部の実施形態によれば、証明書は以下のうちの少なくとも１つを含むことができる。すなわち、発行者の名前、発行者の公開鍵、発行日、有効期限、ハッシュアルゴリズム、対象ファイルのハッシュ。かかる証明書は、実行可能コードを含むファイルに関連する付加的なセキュリティパラメータを記述することができ、または含むことができる。たとえばこれらのパラメータは、１つまたは複数の許可された経路、許可された通信データ（たとえばインタフェース、リスニング、送信先ポート、プロトコルなど）、および対象メモリマップを含むことができる。
【００３８】
ここで述べておくと、プロセスおよび／または実行可能コードの検証、妥当性確認および／または認証を、ファイル内の内容について、またはメモリ内の内容について、行うことができる。たとえば、プロセスおよび／または実行可能コードの検証、妥当性確認および／または認証を、ファイル内の内容について行うことができ、たとえばコントローラ１０５は、既述の証明書についてファイルの内容を解析または検査することができる（たとえばファイルの内容に基づき証明書または値を計算し、計算された証明書または値を基準証明書値と比較する）。別のケースまたは実施形態によれば、プロセスおよび／または実行可能コードの検証、妥当性確認および／または認証を、メモリ内の内容について行うことができ、たとえば実行可能コード２２０がメモリ１２０にロードされた後、このコードの実行が開始される前または開始された後のいずれかに、セキュリティレイヤ２１０は、実行可能コード２２０を含むメモリセグメントの内容に基づき証明書または値を計算することができ、計算された証明書または値を基準証明書値と比較することができる。
【００３９】
一部の実施形態によれば、検証、認証および／または妥当性確認は、実行可能コードの証明書を検証するために非対称暗号を用いることを含む。たとえば証明書を、実行可能コードを記憶するために使用されるのと同じファイルシステムとすることができるファイルシステム内に記憶することができ（たとえばファイルがファイルシステムに記憶される手法）、さらに証明書を関連する実行可能コードを含むファイルと関連づけるために、基準、リストまたはテーブルを使用することができる。システムにおける集中型レポジトリに、証明書を記憶させることができる。プロセスおよび／または実行可能コードの検証、妥当性確認および／または認証は、証明書が実際に秘密鍵によって署名されたことを、または秘密鍵を用いて署名されたことを検証することを含み、この秘密鍵は個々の特定の公開鍵に関連づけられており、個々の特定の公開鍵自体を、セキュリティユニットまたはセキュリティレイヤ２１０が利用できるように、システムに記憶させることができる。したがって、たとえば記憶システム１３０に記憶された公開鍵を用いて、セキュリティレイヤ２１０は、既述の実行可能コードを妥当性確認、認証および／または検証することができる。
【００４０】
一部の実施形態によれば、セキュリティレイヤ２１０は、たとえばメモリマップに従い制限されていることが既知であるエリア内の変化について、実行中のプロセスおよび／またはライブラリのメモリをスキャン、解析、検査または監視することができる。なお、かかる監視のために他の方法も適用できることを述べておきたい。制限を「ソフト」なものとすることができ、つまりメモリ内のそのエリアは、予め規定された許可された複数の可能性に従い変化可能であり、かつ／または「ハード」なものとすることができ、つまりメモリ内のそのエリアは、すべての実行時間中、変化してはならない。
【００４１】
一部の実施形態によれば検証は、たとえばセキュリティレイヤ２１０によって、実行中のプロセスのメモリを検査すること、さらに検査されたメモリの領域に対する変更を選択的に検出することを含む。たとえばセキュリティレイヤ２１０は、（たとえば記憶システム１３０内に）ＥＣＵ２０２のメモリマップを含むことができ、このマップは、アドレス範囲およびそれらの属性を表すメタデータを含むことができる。たとえば、セキュリティレイヤ２１０により使用されるマップに関するメタデータは、ＥＣＵ２０２における、またはＥＣＵ２０２のメモリ内のアドレス範囲０〜２０４８は（たとえばこのアドレス範囲は命令を含むことから）変化させてはならない、ということを表すことができ、このメタデータはさらに、たとえばＥＣＵ２０２のメモリ内のアドレス範囲２０４９〜４０９６におけるデータは（たとえばこのアドレス範囲は一時的な記憶のために、または動的なパラメータの過渡値のために使用されることから）変化させてよい、ということを表すことができる。かくして上述の実施例の場合、セキュリティレイヤ２１０は、アドレス範囲２０４９〜４０９６における変化を無視してかまわないけれども、アドレス範囲０〜２０４８におけるコードに対する変化が識別または検出されたならば、ＥＣＵ２０２におけるコードの実行を警告することができ、または停止することさえできる。
【００４２】
一部の実施形態によれば、実行可能コードの検証、認証または妥当性確認が失敗したならば、システムは予防措置を講じることができ、たとえば関連プロセス（妨害プロセス）の実行のキルまたは停止、システムのリブート、システムたとえばＥＣＵおよびその他同類のものの既知の状態への復帰を行うことができる。たとえば、セキュリティレイヤ２１０がＥＣＵたとえばＥＣＵ２０２に組み込まれているまたは含まれている実施形態であれば、その場合にはセキュリティレイヤ２１０は既述のようにＥＣＵ２０２において予防措置を実施することができる。別の実施形態によれば、たとえばセキュリティレイヤ２１０がＥＣＵ２０２から分離されているならば、その場合にはセキュリティレイヤ２１０によって、ＥＣＵ２０２において実行されたプロセス（当該技術において周知のエージェント）が既述の予防措置を実施することができるようになる。たとえば、第１のコンピューティングデバイスにおける第１のプログラムが、別のコンピューティングデバイスにおける第２のプログラムからサービス（たとえばリモートプロシージャコール（ＲＰＣ））を要求できるようにする方法を使用することができる。実行可能コードの検証、認証または妥当性確認の失敗に応答して、他の任意の予防措置を実施することができ、たとえばセキュリティレイヤ２１０は既述の失敗に応答して、車載ネットワークに接続された１つの構成要素をディスエーブルすること、このネットワークに接続された１つの構成要素をアクティベートすること、メッセージをブロックすること、メッセージを遅延させること、メッセージタイプの頻度を制限すること、メッセージのログを作成すること、および／または警告を生成することを実施することができる。
【００４３】
１つの実施形態によれば、既述の１つまたは複数の予防措置を、車両内のシステムのセキュリティに関連する任意のイベントに応答して、トリガする、講じる、または実施することができる。たとえば、セキュリティレイヤ２１０が本明細書で説明する技術のうちのいずれかを使用して攻撃を検出したときはいつも、たとえば「悪意のある」システムコールまたはシステムリソースに対する予期されないアクセスを検出したときいつも、何らかの措置を講じるまたは実施することができる。悪意のあるシステムコールを一般に、プロセスにより形成される関数（たとえば実行されたときの実行可能コード２２０）に対する予期されない何らかのコールとすることができる。たとえば、プロセスにより形成される予期されるコールおよびコールシーケンスを含むモデルに基づき、あるコールを予期されない（悪意のある）ものとして識別することができる。
【００４４】
悪意のある予期されないまたは不審なオペレーション、挙動またはイベント、たとえばシステムコール、関数またはルーチンへのコールをたとえば、システムのデバッギングＡＰＩに関連するシステムコール（たとえばｐｔｒａｃｅ）とすることができ、またはそれらはこのようなシステムコールを含むことができる。たとえばデバッギングＡＰＩが（たとえば開発中に）システムをデバッグするために使用される可能性はあるけれども、製造システムにおいて（たとえばユーザに販売される自動車内で）使用されるのは予期されないことから、それをブラックリストに含めることができ、またはホワイトリストから除外することができ（したがってセキュリティレイヤ２１０により阻止することができ）、またはルールまたは判定基準によって、デバッギングＡＰＩが実行されるのをセキュリティレイヤ２１０が阻止できるようになる。
【００４５】
１つの実施形態によれば、車両および／または車両内の車載ネットワークに接続された構成要素のコンテキストまたは状態に基づき、イベント、関数またはオペレーションを悪意のあるもの、予期されないもの、または不審なものとして、指定または識別することができる。既述のホワイトリストおよび／またはブラックリストのセットを、個々のコンテキストセットに関連づけることができ、したがって１つの実施形態によれば、車両および／または車両内の構成要素のコンテキストまたは状態に従って、あるいはそれらに基づいて、既述のように脅威または逸脱を識別することができる。たとえば、車両が第１のコンテキストにあるときには、ある特定のＡＰＩを許可することができ（たとえばホワイトリストに含めることができ）、車両が第２のコンテキストにあるときには、そのＡＰＩを阻止することができる（たとえばそのコンテキストに固有のブラックリストに含めることができるか、またはそのコンテキストのホワイトリストから排除することができる）。
【００４６】
悪意のある、予期されない、または不審なオペレーションまたはイベントを識別するために使用されるリストまたはルールを、システム内の種々の構成要素に対しそれぞれ異なるものとすることができる。たとえば、ＥＣＵ２０２におけるセキュリティレイヤ２１０の第１のインスタンスは、ワイヤレスネットワークを介したデータの送信を試行する関数が、ＥＣＵ２０２により、またはＥＣＵ２０２において実行されるのを許可することができ、（ＥＣＵ２０４における）セキュリティレイヤ２１０の第２のインスタンスは、かかる関数がＥＣＵ２０４において、またはＥＣＵ２０４により実行されるのを阻止することができる。判定基準および／またはルールおよび／またはブラックリストおよびホワイトリストの第１のセットを、第１のＥＣＵのために使用することができ、あるいはこの第１のセットは、第１のＥＣＵのオペレーションを制御することができ、判定基準および／またはルールおよび／またはブラックリストおよびホワイトリストの、第１のセットとは異なる第２のセットを、第２のＥＣＵのために使用することができ、あるいはこの第２のセットは、第２のＥＣＵのオペレーションを制御することができる。よって、本明細書で説明するロジック、ルール、ブラックリストおよびホワイトリストを、１つのシステム内の種々のＥＣＵまたは構成要素に対し、それぞれ異なるものとすることができる。
【００４７】
セキュリティレイヤ２１０は、（たとえばもたらされるリスクが深刻でなければ）コールを予期されないものとして（たとえば悪意のあるものとして）識別することができ、その関数またはコールのログを作成することができ、もたらされるリスクまたは攻撃に関連する確率が高ければ、そのコールをブロック（たとえばそれが実行されるのを阻止）することができる、といった具合である。セキュリティレイヤ２１０は、既述のような予期される挙動、脅威または攻撃からのシステムの挙動の何らかの逸脱に応答して、本明細書で説明する措置のうちのいずれかを、選択的に実施することができる。
【００４８】
たとえば、システムの挙動が予期される挙動から逸脱しているならば、セキュリティレイヤ２１０は、以下のうちの１つまたは複数とすることができる措置、あるいは以下のうちの１つまたは複数を含むことができる措置を実施する、または講じることができる。すなわち、車載通信ネットワークに接続された構成要素をディスエーブルする（たとえばＥＣＵ２０４をシャットダウンする）、ネットワークに接続された構成要素をアクティベートする（たとえばＥＣＵ２０２を作動させる）、メッセージをブロックする（たとえばＥＣＵ２０２からＥＣＵ２０４に送信されるメッセージがＥＣＵ２０４に到達するのを阻止する）、メッセージを遅延する（たとえばメッセージが安全であると判定されるまで、または車載ネットワークを介したメッセージのレートを制御する目的で、ＥＣＵ２０２からＥＣＵ２０４に送信されるメッセージを遅延させる）。
【００４９】
一部の実施形態によれば、セキュリティレイヤ２１０が、悪意のある、予期されない、または不審なオペレーションまたはイベントを識別または検出したならば、セキュリティレイヤ２１０は、プロセスをキルし（たとえばその実行を終了させ）、かつ／または既知のまたは予め規定された状態に構成要素またはシステムを復帰させる。セキュリティレイヤ２１０により実施される何らかの措置と同様に、プロセスをキルすることをたとえば、車両のコンフィギュレーション、コンテキストおよび／または状態、および／または車両内の構成要素のコンテキストおよび／または状態に基づき、選択的に行うことができる。たとえばセキュリティレイヤ２１０は、車両が第１の状態にあるときに、イベントを引き起こしたまたは生成したプロセスをキルすることができ、ただしそのイベントが検出されたときに車両がそれとは異なる第２の状態にあるならば、ＥＣＵをリセットすることができる。
【００５０】
たとえば、悪意のある、予期されない、または不審なオペレーションまたはイベントの識別または検出に応答して、あるいは予期される挙動またはフローからの逸脱の検出に応答して、セキュリティレイヤ２１０は、ＥＣＵ２０４における実行可能コード２２０の実行を終了させることができ、あるいはセキュリティレイヤ２１０はＥＣＵ２０４をリセットすることができ、あるいはセキュリティレイヤ２１０は、ＥＣＵ２０４に対しデフォルトのまたは他のコンフィギュレーションを適用して、ＥＣＵ２０４をリブートさせることができ、かくしてＥＣＵ２０４は既知の予め規定された状態に復帰する。構成要素（たとえばＥＣＵ）の既知のまたは予め規定された状態を、必ずしも以前の状態ではなく特別な状態とすることができ、たとえば１つまたは複数のＥＣＵに強制される既知のまたは予め規定された状態を、リンプホーム状態またはリンプホームモードとすることができ（たとえばこれによって運転者が迅速かつ安全に帰宅できるようになる）、ただしこの場合、車両の機能は制限される（たとえば最高速度が制限され、ヘッドライトは点灯不可など）。
【００５１】
システムの挙動が予期される挙動またはフローから逸脱しているならば、あるいは車両内のシステムのセキュリティに関連するイベントが検出されたならば、セキュリティレイヤ２１０は、以下のうちの１つまたは複数とすることができる措置、または以下のうちの１つまたは複数を含むことができる措置を実施する、または講じることができる。すなわち特定のメッセージタイプの頻度を制限する（たとえば特定のＩＤを有するメッセージに対しレート制御を適用する）、メッセージのログを作成する（たとえばオフライン解析を実施できるよう、任意のメタデータのデータおよび／または内容を記憶する）、ユーザに警告する（たとえば予め規定された受信者セットに電子メールを送信する、インフォテイメントシステムの画面にメッセージを表示する、アラームを鳴らすなど）。
【００５２】
一部の実施形態によれば、実行可能コードを検証または認証するために、セキュリティレイヤ２１０は、メモリ内のコードを基準コードと比較する。たとえば、セキュリティレイヤ２１０にメモリの基準マップを設けることができ、セキュリティレイヤ２１０は、ＥＣＵ２０２のメモリをこの基準マップと比較することができ、かくして基準マップからの変化または逸脱が検出される。セキュリティレイヤ２１０は、基準マップを生成することができる。たとえば、学習フェーズ中にセキュリティレイヤ２１０は、ＥＣＵ２０２のメモリのイメージを記録または記憶することができ、記録されたイメージを基準マップとして使用することができる。別の実施形態によれば、基準マップをたとえばＥＣＵ２０２の製造業者によって供給することができる。
【００５３】
メモリの変化（または既述の基準マップからの逸脱）が検出されたならば、その場合にはセキュリティレイヤ２１０（またはプロセッサ２０１）は、１つまたは複数の措置を実施することができる。たとえば、既述のようにメモリの変化または基準マップからの逸脱が検出されたならば、その場合にはプロセッサ２０１は、警告または警報を発することができ、たとえば電子メール（Ｅメール）メッセージまたはショートメッセージサービス（ＳＭＳ）メッセージを、予め規定された受信者リストに送信することができ、かつ／または車両内のインフォテイメント画面にメッセージを表示することができる。メモリの変化または基準マップからの逸脱の検出に応答して実施される措置は、ＥＣＵを停止すること、たとえばＥＣＵをシャットダウンすること、を含むことができ、あるいはＥＣＵが車載ネットワークを介して通信しないようにすることを含むことができる。他の任意の措置を実施することができる。
【００５４】
セキュリティレイヤ２１０は、システム２５０のメモリを周期的に（たとえば５分に一度）スキャンすることができる。セキュリティレイヤ２１０はシステム２５０の状態を周期的に監視することができ、たとえばセキュリティレイヤ２１０は、ＥＣＵ２０２および２０４の健全性を周期的にチェックすることができ、たとえばＥＣＵ２０２および２０４のＣＰＵ利用率、それらのメモリがどれくらい利用されているのかのチェック、接続されているフラッシュメモリまたは他の記憶装置にデータがどれくらい記憶されているのかのチェックなどである。例を挙げるとリソースの使用量を表す値のセット、たとえばＣＰＵサイクルまたは電力、記憶装置およびメモリの使用量または消費量を含む基準状態を、記憶システム１３０に記憶することができ、セキュリティレイヤ２１０は、ＥＣＵの状態を基準状態と比較することができ、たとえばＥＣＵ２０２における占有メモリ量を基準状態のメモリ占有と比較することができる、ＥＣＵ２０４におけるＣＰＵの利用率を基準状態における基準利用率と比較することができる、といった具合である。一部の実施形態によれば、セキュリティレイヤ２１０はイベントに基づきＥＣＵの状態をチェックする。たとえばイベントを、エンジンの始動、本明細書で説明する基準実行からの逸脱の検出、車載ネットワーク２００への新たなデバイスの接続、車両が予め規定された速度よりも高い速度で走行していること、タイマ期限満了、または他の任意のイベントとすることができる。
【００５５】
たとえば、プロセッサ２０１により実行されたタイマによって、セキュリティレイヤ２１０は、ＥＣＵ２０２および２０４におけるコードまたはメモリのスキャン、検証および／または認証を、１時間ごとに、毎日などというように行うことができるようになる。システム２５０におけるイベントによって、セキュリティレイヤ２１０（またはセキュリティレイヤ２１０におけるコード検証レイヤ）がシステム２５０のメモリをスキャンするよう、トリガすることができる。たとえば、かかるイベントを以下のうちの少なくとも１つとすることができる。すなわち、車両のエンジンの始動、車両のドアの解錠、ＥＣＵにおけるプロセスの実行、ＥＣＵ内のコードによるファイルへのアクセス、通信イベント、たとえばＥＣＵから他へのメッセージの送信、ユーザからの入力の受信、システム内のエンティティからの入力の受信、たとえばＥＣＵ２０４によるＥＣＵ２０２からの入力の受信。
【００５６】
１つの実施形態によれば、不審なイベントまたは状態のセットの検出に応答して、既述のようにメモリをスキャンおよび／または認証することができる。たとえば、車両が毎時５５マイル（ｍｐｈ）で走行中であるという情報を、ＥＣＵ２０２によりプロセッサ２０１に伝達することができ、さらに車両のドアのうちの１つが開いているという情報をＥＣＵ２０４によりプロセッサ２０１に伝達することができ、かかる不審なイベントまたは状態のセット（車両が高速で走行しかつドアが開いている）によって、セキュリティレイヤが少なくとも一部のＥＣＵにおけるコードのスキャンおよび／または認証を行うことができるようになり、たとえば上述の例であれば、たとえばドアが開いていながら車両が５５ｍｐｈで走行しているという状況は、不審であり、かつ／または起こりそうにもないことから、ＥＣＵ２０２および２０４によって実行されたコードを少なくとも、スキャンおよび認証することができる。
【００５７】
一部の実施形態によれば、セキュリティレイヤ２１０は、タイムインターバルおよびイベントのうちの一方に基づき、コードの検証を実施する。図３を参照すると、この図には、本発明の一部の実施形態による検証実行方法のフローチャートが示されている。本明細書で説明する車載ネットワークに対する攻撃の検出方法を、（図１に示されているような）コンピューティングデバイス１００によって、または（図２に示されているような）車載ネットワーク２００に組み込まれた他の任意の計算デバイスによって、実施することができる。
【００５８】
セキュリティレイヤ２１０は、並列モードまたは直列モードで、ファイルの実行および／またはファイルのロードを検証することができる。直列モードの間、セキュリティレイヤ２１０は、さしあたりプロセスを検証することができ、検証の結果を受けてのみ、ファイルをロードおよび／または実行することができる。検証が失敗した場合、セキュリティレイヤ２１０は、ロードおよび／または実行をまるっきり阻止することができ、かつ／またはそのコンフィギュレーションにおいて規定された他の何らかの措置を実施することができる。並列モードの間、セキュリティレイヤ２１０は、ファイルの実行および／またはメモリへのロードを許可することができ、そのファイルが実行されている間にそれを検証することができる。一部の実施形態によれば、システム２５０は、どのファイルを所与の時点および／または所与のシステムの状態で検証すべきかを最適化するために、キャッシュを使用することができる。
【００５９】
セキュリティレイヤ２１０は、並列モードまたは直列モードで、ファイルの実行および／またはファイルのロードを検証することができる。直列モードの間、セキュリティレイヤ２１０は、さしあたりプロセスを検証することができ、検証の結果を受けてのみ、ファイルをロードおよび／または実行することができる。検証が失敗した場合、セキュリティレイヤ２１０は、ロードおよび／または実行をまるっきり阻止することができ、かつ／またはそのコンフィギュレーションにおいて規定された他の何らかの措置を実施することができる。並列モードの間、セキュリティレイヤ２１０は、ファイルの実行を許可することができ、そのファイルが実行されている間にそれを検証する。一部の実施形態によれば、システム２５０は、どのファイルを所与の時点および／または所与のシステムの状態で検証すべきかを最適化するために、キャッシュを使用することができる。
【００６０】
一部の実施形態によれば、検証が選択的に、実行可能コードがメモリに（たとえば実行に備えてメモリ１２０に）ロードされる前またはロードされた後のいずれかに実施され、一部の実施形態によれば、検証が選択的に、実行可能コードが実行される前または実行された後のいずれかに実施される（たとえばコードがメモリにロードされた後であるがそれがコントローラ１０５によって実行される前）。
【００６１】
セキュリティレイヤ２１０は、３０１においてプロセスの実行を検出することができる。たとえば信号、メッセージまたはイベントをＥＣＵ２０２におけるオペレーティングシステムから受信することによって、セキュリティレイヤ２１０またはプロセッサ２０１は、プロセスがＥＣＵ２０２において呼び出されたことを検出、判定または識別することができる。セキュリティレイヤ２１０は、３０２において呼び出されたプロセスがロードされているメモリを読み出すことができる。セキュリティレイヤ２１０は、３０３においてプロセスのハッシュを計算することができ、３０４においてプロセスの証明書を検証することができる。たとえば証明書を、認証または検証されたプロセスのコードに基づき計算された値とすることができ、または証明書はこの値を含むことができる。たとえば、ＥＣＵ２０２において実行されるプロセスまたはソフトウェアの提供者が、ＥＣＵ２０２において実行されるプロセスのオリジナルコードに基づき生成または計算された証明書を供給することができる。別のケースにおいて、たとえば記憶システム１３０に記憶された、またはＥＣＵ２０４のメモリにロードされたプロセスのコードに基づき、プロセッサ２０１によって証明書を生成または計算することができる。たとえば、システムの初期化段階中、プロセッサ２０１は、ＥＣＵ２０２におけるプロセスごとに証明書またはハッシュ値を計算することができ、次いで既述のように証明書を使用することができる。セキュリティレイヤ２１０は、３０５においてプロセスのハッシュを証明書におけるハッシュと比較することができる。プロセスのハッシュが証明書におけるハッシュと同一である場合、セキュリティレイヤ２１０は３０６において実行を許可することができる。プロセスのハッシュが証明書におけるハッシュと同一ではない場合、セキュリティレイヤ２１０は３０７において実行をブロックすることができ、それによって攻撃を阻止することができる。
【００６２】
一部の実施形態によれば、セキュリティレイヤ２１０は、プロセスの実行を検出し、プロセスのコードに基づきハッシュ値を計算し、計算されたハッシュ値を実行可能コード（プロセス）の（またはこれに関連づけられた）証明書と比較することによりプロセスを検証するように、適合されている。既述のように、ファイル内の実行可能コードについて（たとえば実行可能コードをメモリにロードする前にファイルからデータを読み出すことにより）、ハッシュ値を計算することができ、またはメモリ１２０にすでにロードされている実行可能コードに基づき、たとえば実行可能コードをメモリ１２０から読み出すことにより、ハッシュ値を計算することができる。たとえばシステムの応答性を高めるためには、コードが実行された後にそのコードを検証するように、セキュリティレイヤ２１０をコンフィギュレーションすることができ、かくして実行可能コードのレスポンスタイムが速められ、セキュリティを高めるためには、コードがメモリにロードされる前にそのコードを検証するように、セキュリティレイヤ２１０をコンフィギュレーションすることができる。
【００６３】
ここで述べておきたいのは、車両の耐用期間が長いことから（たとえば数年または１０年間を越えることすらある）、攻撃者にとって様々な脆弱性を悪用して既存の防備を迂回する機会がいっそう増える可能性がある、ということである。かかる脅威から護る目的で、システム２５０のＥＣＵ２０２、２０４は、かかる突破がいつ発生するのかを検出するために、ヒューリスティックな挙動に基づく脅威検出エンジンによって動作することができる。
【００６４】
一部の実施形態によれば、かかる突破の検出を、行動解析のアプローチに基づき早期の段階で起こすことができる。かかる検出システムを、予期されない挙動の検出に基づくものとすることができるので、悪用された脆弱性のタイプ（たとえば論理的脆弱性であるのか、またはバッファオーバフローなどメモリにおいて実装ベースの脆弱性であるか）にかかわらず、攻撃を検出することができる。
【００６５】
一部の実施形態によれば、セキュリティレイヤ２１０および／またはセキュリティポリシーによって、予期される挙動からのシステムの挙動の逸脱に基づき、脅威が識別される。一部の実施形態によれば、セキュリティレイヤ２１０は、挙動、たとえば行動解析を利用して規定された挙動、からの逸脱に基づき、セキュリティ脅威を検出するように適合されている。オンラインのコネクティビティおよび／またはユーザのインタラクションを必要とせずに、サイバー脅威（たとえばＥＣＵの制御を獲得しようという試行、または他の何らかの攻撃）を封じ込める、かつ／または制圧するよう、自律的に（たとえばオフラインで）応答するように、検出システムをコンフィギュレーションすることができる。たとえば、ある異常なイベント（たとえば既述の実行可能コードの変更）が検出されたならば、検出システム（たとえばセキュリティレイヤ２１０）は、システムの予め規定されたセキュリティポリシーに従い、レスポンスをトリガすることができる。たとえば可能なレスポンスを、プロセスをキルすること、プロセスをリスタートすること、システムを既知の状態に復帰させること（たとえば「リンプホーム」状態またはバックアップコードのロード）、および／またはイベントのログを作成すること、とすることができる。一部の実施形態によれば、検出システム（たとえばセキュリティレイヤ２１０）は、検出されたイベントに関連する指示を車両のオペレータに求めることができる。
【００６６】
一部の実施形態は、脅威に対し自律的に応答するように適合されている。再び図２を参照する。
【００６７】
一部の実施形態によれば、（たとえばプロセッサ２０１に結合された）ヒューリスティック（またはルール）エンジン２３０を使用して、検出システムにおいて異常を検出することができる。ヒューリスティックエンジン２３０は、ヒューリスティクスセットを使用して、異常とみなされた一連のイベントを規定することができる。１つの実施形態は、一連のイベントを脅威または異常と関連づけるように適合されたヒューリスティクスエンジンを含むことができる。
【００６８】
たとえば、ヒューリスティックエンジン２３０が何らかの関連イベントを検出できるようにするために、たとえばプロセスの実行、リソースへのアクセス（たとえばワイヤレス通信デバイスへのアクセス、センサからのデータ読み出し、ファイルへのアクセス、またはインタフェースポートまたはＥＣＵを使用しようとする試行）を検出できるようにするために、ＥＣＵ２０２におけるオペレーティングシステムに対するフックを利用することができる。ヒューリスティックエンジン２３０は、以下のモデルのうち少なくとも１つに基づき異常を検出することができる。すなわち、予期されるリソース消費レベルからの逸脱の検出（たとえばＥＣＵによる電力消費、ファイルシステムまたはメモリへの過度なアクセス）、予期されるプロセス特権からの逸脱の検出（たとえば制限されたメモリセグメントをアクセスしようという試行、特定のファイルをアクセスしようという試行）、異常な実行パターンの検出（たとえばプログラムの特定のシーケンスの実行、短いタイムインターバル内での同じプロセスの連続的または反復的な実行）、ブラックリストに挙げられたアプリケーションプログラムインタフェース（ＡＰＩ）コールに対する呼び出しまたはその利用の検出、変則的なネットワークアクティビティの検出（たとえばパケットの再送信、センシティブな構成要素と通信しようという反復的試行）、および／またはセンシティブなリソースへの異常なアクセスの検出。異常または不審な挙動を識別または検出するために、ヒューリスティックエンジン２３０によって任意のポリシー、ルール、判定基準または閾値を使用することができる。たとえばあるルールは、リソースにアクセスしてよい毎秒あたりの回数を規定することができ、またはあるルールは、ネットワークを介して特定の送信先に送信されるメッセージ数を規定することができる、といった具合である。本明細書で説明するルール、判定基準またはヒューリスティクスを、動的に規定および／または更新することができる。たとえばヒューリスティックエンジン２３０は、プロセスを監視してそれらの挙動を記録することができ、たとえばヒューリスティックエンジン２３０は、いくつかのプロセスについて、ＣＰＵ消費量、ネットワークアクティビティ、ファイルへのアクセスおよびその他同類のものを記録することができ、このようにしてプロセスに関するプロファイルを生成することができ、次いでかかるプロファイルを、予期される正常なプロセスの挙動からの逸脱を検出するために使用することができる。ヒューリスティックエンジン２３０が既述の挙動または異常の逸脱を検出したならば、ヒューリスティックエンジン２３０は既述の任意の措置を実施することができ、たとえばユーザへの警告、プロセスの停止などを行うことができる。
【００６９】
一部の実施形態によれば、検出システム（たとえば車載ネットワーク２００、またはセキュリティレイヤ２１０、ヒューリスティックエンジンまたはルールエンジン２３０および／またはプロセッサ２０１を含むシステム２５０）を、オフボード型の監視および制御バックエンドシステムを伴った（たとえば少なくとも１つのＥＣＵを備えた）オンボードシステムとすることができる。たとえばオフボードシステムをサーバ２６０内に含めることができ、このシステムは個々の複数の車両内の複数のシステム２５０と通信することができる。オフボードシステムは、検出をフリートマネージャに呈示することができ、このシステムを、潜在的なセキュリティおよび／または検出範囲に関するデータを分類可能なものとすることもできる。
【００７０】
本発明の実施形態は、（たとえば既述のように計算された、かつ／またはセンサから収集された）任意のデータを、車両の外部に配置することのできるサーバ２６０に送信することができ、サーバ２６０はこのデータを用いて、車両のフリートに関連するデータを生成および呈示することができる。オフボード検出システムによって、セキュリティアナリストがデータの表示または呈示からイベントをフィルタリングすることができるようにもなり、たとえばソーティングされたリストとしてイベントを呈示することができ、フィルタを用いて、イベントまたは重要なものだけが示されるように、呈示されたリストから一部のイベントを取り除くことができる。オフボードシステムによって、オペレータがシステムをコンフィギュレーションすることができるようになり、たとえばオペレータが車両内のシステム２５０を、たとえば一部のイベントがシステム２５０によってフィルタリングされるように（たとえばオフボードシステムに報告されないように）、遠隔で制御することができるようになる。したがって１つの実施形態によれば、フリートマネージャが、たとえば個々に画面上で、フリートにおける複数の車両に関連するイベントを見ることができるようになり、さらにフリートの車両内のセキュリティシステムのオペレーションを遠隔で制御できるようになる。
【００７１】
一部の実施形態を、１つまたは複数のソフトウェアセンサからのイベントに関するデータを受信するように適合することができる。一部の実施形態によれば、ヒューリスティックエンジン２３０への入力は、システム２５０全体を通して複数のセンサから受信されたイベントを含むことができ、この場合、それらのセンサは、ヒューリスティックエンジン２３０の基本的な構成ブロックであるイベントを生成することができる。センサを、特別にヒューリスティックエンジン２３０のために、固有に構築してシステムに導入してもよく、かつ／またはシステム２５０内の既存のモジュールから転用してもよい。ソフトウェアセンサ２４０を使用することができ、このセンサはヒューリスティックエンジン２３０へ入力を供給することができる。一般にソフトウェアセンサを、（たとえば実行可能コード１２５と同様の）実行可能コードとすることができ、これによってソフトウェアイベントをセンシングすることができる。たとえばソフトウェアセンサ２４０は、システム２５０内のファイルまたはメモリへのアクセス、ネットワークを介したデータの送信、プロセスの実行などのようなイベントを検出するように適合された実行可能コードを含むことができる。ソフトウェアセンサ２４０は、以下のうちの１つまたは複数に関連する情報を含むことができるセンサデータを収集および／または生成することができる。すなわち、システムコール、Ｌｉｎｕｘ監査イベント、新たな、かつ／または既存の到来コネクションおよび／または送出コネクション、プロセスのフォークおよび／または実行、ライブラリのロード、何らかのシステムリソース（たとえばファイル、共有メモリ、グローバルオブジェクトなど）のアクセスおよび／または読み出しおよび／または書き込みおよび／または状態の変更、メモリまたはＣＰＵの利用率、ログイン試行、および／またはプロセス間通信（ＩＰＣ）メッセージ。
【００７２】
一部の実施形態によれば、ヒューリスティックエンジン２３０において受信された様々なイベントを、実行可能な、かつ／またはコンフィギュレーション可能な、かつ／またはモジュール型のヒューリスティクスセットに従い、解析することができる。それらのヒューリスティクスを互いに独立したものとすることができ、各々がたとえばそれぞれ異なるイベントセットを注視することができる。たとえばヒューリスティックエンジン２３０は、車両用ＥＣＵにおいて以下のヒューリスティクスのうちの少なくとも１つについてチェックすることができる。すなわち、新たにかつ／または最近変更されたファイルの実行、ルート所有ファイルの変更、新たに／最近変更されたファイルを読み出すスクリプトエンジン、ただしスクリプトエンジンを、ｂａｓｈ、ｄａｓｈ、ｐｙｔｈｏｎ、ｐｅａｒｌ、ｌｕｎａなどのスクリプトエンジンのようにコンフィギュレーションされた任意のプロセスとすることができる、”／ｔｍｐ”または”／ｍｅｄｉａ”など「禁止」フォルダからのファイルの実行／ロード、および／または”ｗ／ｒｗ”から”ｘ”への、または”ｘ”から”ｗ／ｒｗ”へのメモリページの属性の変更。他の実施例によれば、ヒューリスティックエンジン２３０は、車両用ＥＣＵにおいて以下のヒューリスティクスのうちの少なくとも１つについてチェックすることができる。すなわち、システム内のセグメンテーション違反後に怪しげに実行されたルートプロセス、「ルート」として実行するようにコンフィギュレーションされていないユーザによりプロセスが実行される、コンフィギュレーションされたものではない値にセットされた環境変数によりプロセスが実行される（たとえばＬＤ＿ＰＲＥＬＯＡＤまたはＰＡＴＨ）、書き込みのために所定のファイルをオープンしようとする試行が繰り返し失敗している、”ｐｔｒａｃｅ”といったブラックリストに挙げられたシステムコールの使用、（たとえば”ｓｙｓｃａｌｌ ｕｔｉｍｅｎｓａｔ”を用いた）ファイルのタイムスタンプの変更、実行するようにコンフィギュレーションされていない他のプロセスまたはユーティリティをプロセスが実行する、コールするようにコンフィギュレーションされていない”ｓｙｓｃａｌｌ”をプロセスがコールする、コンフィギュレーションされているよりも多いかつ／または少ない実行中のインスタンスをプロセスが有する。
【００７３】
一部の実施形態によれば、ヒューリスティックエンジンまたはルールエンジン２３０は、車両用ＥＣＵにおいて以下のヒューリスティクスのうちの少なくとも１つについてチェックする。すなわち、ある一般的なプロセスが新たなロケーションにコピーおよび／または移動される、かつ／またはリネームされる、通常は異なるプロセスにより開始されるデスクトップＢＵＳ（ＤＢＵＳ）サービスをプロセスが記録する、通常は成功するＤＢＵＳサービスをプロセスが記録しようと試行して失敗する、使用されるようにコンフィギュレーションされていないＡＰＩを用いてプロセスがＤＢＵＳサービスを問い合わせる／リクエストする、プロセスがＤＢＵＳイントロスペクションまたは同様の珍しいクエリを問い合わせる、ＤＢＵＳ認証エラーメッセージ（たとえばＡｕｔｈＦａｉｌｅｄ）が受信された、システムへのログイン試行が失敗した（またはコンフィギュレーション可能な回数を超えた）、かつ／またはログインユーザ数がコンフィギュレーションされた数を超えている。別の実施形態によれば、ヒューリスティックエンジン２３０は、車両用ＥＣＵにおいて以下のヒューリスティクスのうちの少なくとも１つについてチェックすることができる。すなわち、オープンするようにコンフィギュレーションされていないデバイス（たとえば”／ｄｅｖ／ｃａｎ”）をオープンしようとプロセスが試行する、通常はデバイスおよび／またはファイルなどに、そのウィンドウがフォアグラウンドにあるときにしかアクセスしないインタラクティブなプロセスが、バックグラウンドにあるときにそれにアクセスする、通常はコールされないＡＰＩへのコールによってボリュームが変更される、ネットワークを介して通信するようにコンフィギュレーションされていないプロセスがネットワークを介して接続しようと試行する、通常はリスニングしないＴＣＰポートおよび／またはＵＤＰポートへのリスニングをプロセスが開始する、システム内でＩＰコンフリクトが検出される、特別に許可されていない主要なシステムファイル（たとえば”／ｅｔｃ／ｓｙｓｃｔｌ．ｃｏｎｆ”、”／ｅｔｃ／ｐａｍ．ｃｏｎｆ”、／ｅｔｃ／ｓｈａｄｏｗ”など）をプロセスが読み出そうと試行する、かつ／または”／ｐｒｏｃ／ｓｙｓ／”および／または”／ｐｒｏｃ／ｎｅｔ”ディレクトリ（ルート、ネットインタフェース）においてカーネルパラメータが変更される。ヒューリスティックエンジンまたはルールエンジン２３０は、ＥＣＵ２０２および２０４における複数のプロセス各々について、許可されたまたは予期されるオペレーションまたはイベントのリストを、（たとえば学習フェーズ中に）生成することができ、またはヒューリスティックエンジンまたはルールエンジン２３０にそれらを設けることができる。たとえば、あるリストは、特定のプロセス、スクリプトまたはプログラムは、第１のフォルダ内のファイルへのアクセスが許可されている、ということを表すことができ、したがってそのプロセスが、これとは異なる第２のフォルダ内のファイルにアクセスするならば、ヒューリスティックエンジンまたはルールエンジン２３０は、ルールが破られたと判定することができ、措置を実施することができる（たとえばそのイベントを報告する、そのプロセスを終了させるなど）。既述のようにヒューリスティックエンジンまたはルールエンジン２３０により使用されるプロセスのためのリストは、任意のイベント、パーミッションおよびその他同類のものを含むことができ、たとえば、ヒューリスティックエンジンまたはルールエンジン２３０により使用されるリストは、許可されたまたはパーミッションが与えられたオペレーション、ネットワークコネクションまたはネットワークアクティビティ、許可されたまたは制限されたリソースなどを含むことができ、たとえば、プロセスＡはディスプレイの使用についてパーミッションが与えられており、ＥＣＵ２０２におけるプロセスＢは、ＥＣＵ２０４との通信を許可されており、プロセスＣは、フォルダ／ｐｒｏｃ／ｃｏｎｆにアクセスすることを制限されている。ヒューリスティックエンジンまたはルールエンジン２３０により使用されるプロセスのためのリストを、以下のうちのいずれか１つに関連するものとすることができる。すなわち、内容の変更（たとえばファイルへのデータの追加／ファイルからのデータの削除）、内容の属性の変更（たとえばリードオンリーからリードライトへのファイルの属性の変更）、内容に関連するメタデータの変更、プロセスのパーミッションおよびオペレーションおよび実行。
【００７４】
一部の実施形態は、以下のうちの少なくとも１つに適用される（たとえばルールエンジン、ユニットまたはモジュールにおけるルールを使用して実装された）ヒューリスティクスに基づき、異常（たとえば既述のようにコードの検証または認証の失敗）を識別するように適合されたルールエンジンを含む。すなわち、内容の変更、内容の属性の変更、内容に関連するメタデータの変更、プロセスのパーミッション、オペレーションおよび実行。
【００７５】
一部の実施形態によれば、例外またはイベント（たとえば基準実行フローからの逸脱、既述のようなコードの検証の失敗または妥当性確認プロセスの結果）を、ホワイトリストまたはブラックリストに関連づけることができ、既述のように適用されたルールを、ホワイトリストおよびブラックリストに関連させることができ、またはそれらに基づくものとすることができる。
【００７６】
検出システム２５０は、ヒューリスティクスのうちの１つまたは複数に関連づけられたホワイトリストのセットを含むことができる。ホワイトリストは、関連づけられたヒューリスティクスに対する例外セットを含むことができる。たとえばホワイトリストは、ルート特権による実行を許可されたプロセスのリストを含むことができる。別の実施例によれば、ホワイトリストはプロセスペアのリストを含むことができ、この場合、各ペアは、ターゲットのＥＣＵ２０２において見られることが予期される親および／または子の関係を記述することができる。検出システム２５０は、ヒューリスティクスのうちの１つまたは複数に関連づけられたブラックリストのセットを含むことができる。たとえばブラックリストは、ルート特権で実行されてはならないプロセスのリストを含むことができる。
【００７７】
一部の実施形態によれば、実行可能コードの検証、認証および／または妥当性確認、または予期される挙動からの逸脱の検出は、たとえばプロセスツリーに関連する情報を用いて、基準実行挙動からの実行可能コードの実行の逸脱に基づき、車載ネットワークに接続された構成要素の悪用に関連するイベントを検出することを含む。たとえば、セキュリティレイヤ２１０におけるルールに従い、特定の子プロセスを生み出すことを、第１のプロセスについては許可することができるが、第２のプロセスについては禁止することができ、したがって第２のプロセスにより子プロセスを生み出すイベントを、既述のように異常、脅威または予期される挙動からの逸脱として識別することができる。
【００７８】
実施形態によれば、セキュリティレイヤ２１０は、ＥＣＵにおいて実行されるプロセスのパーミッションを（たとえば周期的にまたは別のやり方で）監視、チェック、または検査することができ、それらのパーミッションを予め規定されたまたは予期されるパーミッションと比較することができ、プロセスのパーミッションまたは特権が予期されたものでなければ、１つの実施形態によれば、既述のような予防措置または他の措置を実施することができる。たとえば、あるプロセスのリソースへのアクセス権の変更（第１の実行中のプロセスが他の実行中のプロセスに対して引き起こす可能性のあるもの）を検出することができ、予期される挙動からの逸脱または脅威として識別することができ、本明細書で言及するようにそれに対して措置を講じることができる。
【００７９】
検出システム２５０は、検出各々を信頼レベルに結び付けることができる。たとえば信頼レベルを、検出タイプ、その検出を生成したヒューリスティクス、および／またはヒューリスティクスのパラメータ、および／または車両状態、および／または車両における以前の警告に由来するものとすることができる。検出システム２５０を、イベントまたは警告の信頼レベルに基づき、それらに応答するようにコンフィギュレーションすることができる。
【００８０】
たとえば、比較的高い信頼度に関連づけられた実行可能コードの認証の失敗を含むイベントによって、１つの実施形態が本明細書で説明するようにメッセージをブロックすることができるようになり、または車載ネットワーク用の構成要素を隔離することができるようになり、他方、比較的低い信頼度に関連づけられた実行可能コードの認証の失敗を含むイベントは、ログを作成するだけでよい。信頼レベルを、適用可能な任意のデータに依存させることができる。
【００８１】
一部の実施形態によれば、セキュリティレイヤ２１０は、セキュリティ脅威を検出し、その脅威を信頼レベルに関連づけ、その信頼レベルに基づき少なくとも１つの措置の実施を選択するように適合されている。一部の実施形態によれば、信頼レベルは何が検出されるのかに関連づけられる。たとえば、１つの実施形態が実行可能コードの認証に失敗したならば、その場合には、攻撃が進行中であるかまたは攻撃が識別されたと想定することができ、高い信頼レベルまたは信頼値をそのイベントまたは検出に関連づけることができ、たとえばこれによって実施形態は既述のような予防措置を講じるようになる。ただし、予期される挙動またはフローからたいして逸脱していないことが検出されたならば、その場合には低い信頼レベルをその検出に関連づけることができ、たとえばこれによって１つの実施形態は検出を報告するだけとなる。
【００８２】
検出システム２５０は、検出各々をリスクレベルに結び付けることができる。一部の実施形態によれば、イベントに関連づけられたリソースに基づき、リスクのレベル（リスクレベル）が決定または計算される。たとえば、実行可能コードが妥当性確認または認証に失敗し、かつそのコードがＥＣＵにおいて非クリティカルなプロセスのもの、たとえばエアコンディショニング（ＡＣ）システムを制御するプロセス、であるならば、１つの実施形態はかかる失敗イベントを低いリスクのレベルまたはリスクレベル（たとえば「２」）に関連づけることができるが、実行可能コードの認証の失敗が、ＥＣＵにおけるクリティカルなコード、たとえばエンジンまたはワイヤレス通信を制御するコード、について生じたのであれば、その場合には１つの実施形態は、その失敗イベントを高いリスクのレベルまたは値（たとえば「８．５」）に関連づけることができる。
【００８３】
リスクのレベルを、車両または車載ネットワークに接続された構成要素のコンテキストまたは状態に基づき、決定または計算することができる。たとえば１つの実施形態は、（１つの実施形態を含む）車両が駐車されている間、かつ／またはエンジンが稼働中でない間（第１の状態またはコンテキスト）、低いリスクのレベルまたは値を実行可能コードの認証の失敗に関連づけることができ、さらにこの実施形態は、車両が毎時５０マイルで走行している間（第２の状態またはコンテキスト）、高いリスクのレベル（リスクレベル）を同じ実行可能コードの認証の失敗に関連づけることができる。
【００８４】
本明細書で言及される用語「状態」、「コンテキスト」、「車両のコンテキスト」および「車両の状態」は、以下のうちの１つまたは複数のものの任意のコンフィギュレーション、オペレーションまたは機能に関する態様に関連するものとすることができる。すなわち、車両、車載ネットワーク、および／または車載ネットワークに接続された１つまたは複数のノード。たとえば車両の状態またはコンテキストを、たとえば車両における１つまたは複数のセンサまたはノードからセキュリティレイヤ２１０により受信されたデータに基づき、規定することができる。たとえば状態またはコンテキストを、以下のうちの１つまたは複数に基づき決定することができる。すなわち、車両の速度、加速度、先行車両または後続車両に近づく速度、毎分エンジン回転数（ｒｐｍ）、エンジン温度、油圧、水圧、車輪の牽引、道路条件、車両ロケーション、天候条件など。あるコンテキストを、メッセージの内容に基づき決定することができる。たとえば、速度ｒｐｍの変化、ドアの開放などを報告するＥＣＵからのメッセージによって、セキュリティレイヤ２１０は車両の状態またはコンテキストを決定することができるようになる。
【００８５】
検出システム２５０を、イベントまたは警告のリスクレベルに基づき、それらに応答するようにコンフィギュレーションすることができる。たとえばセキュリティレイヤ２１０は、低いリスクのレベルまたは値を有するイベントのログを作成するだけよく、イベントが中庸のリスクレベルに関連づけられている場合には、運転者に警告を発することができ、高いリスクレベルを有するイベントに続く特定の構成要素からのメッセージをブロックすることができ、まだ比較的高いリスクレベルの間、車両内の構成要素をディスエーブルすることができる。
【００８６】
一部の実施形態によれば、セキュリティレイヤ２１０は、セキュリティポリシーを少なくとも１つのアプリケーションに関連づけ、そのセキュリティポリシーにディジタル署名するように適合されている。一部の実施形態によれば、ＥＣＵ２０２および２０４は、車両オペレータによる新たなアプリケーションのインストールをサポートすることができる。検出システム２５０は、アプリケーションごとに１つのセキュリティポリシーをサポートすることができる。セキュリティポリシーは、１つのアプリケーションに関連づけられた種々のヒューリスティクス、判定基準またはルールを規定することができ、たとえば既述のルールまたはヒューリスティクスのセットを、ＥＣＵ２０２および２０４にインストールされたアプリケーション各々に関連づけることができる。セキュリティポリシーは、既述のヒューリスティクスのうちの１つまたは複数に関連するホワイトリストおよび／またはブラックリストのセットを含むことができる。一部の実施形態によれば、各アプリケーションのセキュリティポリシーは、その真正性の検証を可能にする目的で、ディジタル署名される。一部の実施形態によれば、セキュリティポリシーを、関連づけられたアプリケーションと共にターゲットのＥＣＵ２０２、２０４に分散させて配備することができる。
【００８７】
一部の実施形態によれば、セキュリティレイヤ２１０は、少なくとも１つのセンサイベントを受信し、そのイベントのタイプおよびセキュリティポリシーに基づき、異常を識別するように適合されている。
【００８８】
図４を参照すると、この図には、本発明の一部の実施形態による車載ネットワークに対する攻撃を検出する方法のフローチャートが示されている。図示されているように、プロセッサ２０１は、４０１において少なくとも１つのセンサイベントを受信することができ、４０２においてそのイベントをそのタイプに基づき処理して記録することができる。次いでプロセッサ２０１は、４０３においてセキュリティポリシーが有効であるか否かをチェックすることができる。セキュリティポリシーが有効である場合には、４０４においてイベントの実行を継続することができる。セキュリティポリシーが異常であれば、プロセッサ２０１は、４０５においてセキュリティポリシーに従い応答することができる。たとえば記憶システム１３０に、ポリシーを記憶することができる。たとえば、メモリ内のファイルまたはセグメントは、１つのポリシーを規定または構成するヒューリスティクス、判定基準、条件、ルールおよび措置を含むことができる。ポリシーを保証することができ、たとえばポリシーを既述の証明書に関連づけることができ、ポリシー内のデータまたはポリシーのデータを、暗号化および／または署名することができる。ポリシーが有効であるか否かを判定するために、セキュリティレイヤ２１０は、たとえば実行可能コードの妥当性確認および認証に関して本明細書で説明したように、たとえばポリシーに関連づけられた証明書を使用して、ポリシーを妥当性確認、認証および／または検証することができる。かくして本発明の実施形態は、ポリシーが（たとえば攻撃者によって）変更されたか否かを判定することができ、ポリシーが変更されたと判定されたならば、１つの実施形態によってポリシーの使用を回避することができ、本明細書で説明したように警告を発生し、かつ／または任意の措置を講じることができる。
【００８９】
セキュリティレイヤ２１０は、システムの挙動の記録に基づき、セキュリティポリシーを更新することができる。検出システム２５０のセキュリティポリシーを、クリーンな（
または較正された）システムの挙動に基づき規定することができる。コンフィギュレーションプロセスを反復的なものとすることができ、ヒューリスティクスごとにデフォルトのパラメータを含む予め規定された初期コンフィギュレーションから開始することができる。一部の実施形態によれば、かかるコンフィギュレーションをパーミッションが与えられたものとすることができる。次いでシステムを学習モードに置くことができ、通常どおりに実行することをシステムに許可することができ、予め規定されたスクリプトに基づきシステムの種々の特徴をくまなく実施しながら、一般的な手法でシステムを使用することができる。コンフィギュレーションの新たな改訂を生成するために、検出ログを目下のコンフィギュレーションと共に入力として用いることができる。最終的に、スクリプトを繰り返すことによって、コンフィギュレーションをターゲットシステムにおいて検証することができる。
【００９０】
ここで述べておきたいのは、外部のインタフェースと接続された車両のＥＣＵ２０２、２０４は、車載ネットワーク２００と接続される可能性もあることから、それらは他のＥＣＵ２０２、２０４に対する攻撃ベクトルとして振る舞う可能性がある、ということである。たとえば、内部の車載ネットワーク２００へのインタフェースを、ＣＡＮ、イーサネット、ＭＯＳＴおよびフレックスレイのプロトコルのうちの少なくとも１つに基づくものとすることができる。一部の実施形態によれば、セキュリティシステム（たとえばセキュリティレイヤ２１０）を、車両とサーバとの間の通信を監視および／またはフィルタリングする目的で、それらのＥＣＵに配備することができる。セキュリティシステム、セキュリティユニットまたはセキュリティモジュール（たとえばセキュリティレイヤ２１０）を、それらのＥＣＵと車載ネットワーク２００上の他のＥＣＵとの間の通信を監視および／またはフィルタリングする目的で、それらのＥＣＵに配備することができる。
【００９１】
一部の実施形態によれば、監視システムは通信の経過を辿ることができ、システムの仕様からの逸脱を探すことができる。たとえば監視システムは、以下のうちの少なくとも１つを探すことができる。すなわち、通信に関連づけられたアプリケーション、使用されるプロトコル、通信レート、使用されるサービス（たとえばＳＯＭＥ／ＩＰサービスＩＤ）、通信に関連づけられたクライアント（たとえばＩＰおよび／またはＭＡＣアドレスおよび／またはＳＯＭＥ／ＩＰクライアントＩＤ）。
【００９２】
一部の実施形態によれば、監視システムは、通信妨害を検出することができる。かかる検出が行われた結果、システムは検出に応答することができる。たとえばシステムは、通信をブロックすることにより、かつ／または関連づけられたアプリケーションを終了させることにより、かつ／またはイベントのログを作成することにより、応答することができる。たとえばシステムは、インターネットプロトコルを介した診断（ＤｏＩＰ）の通信を監視することができる。システムは、自身のセキュリティポリシーに基づき、特定の診断サービスへのアクセスを制限することができる。たとえばシステムは、システムのセキュリティアクセスのレベルに基づき、かつ／または車両状態に基づき、特定のサービスへのアクセスを制限することができる。一部の実施形態によれば、たとえば暗号によるハンドシェークおよび／またはセキュリティトークンを利用して、システムとセキュアなコネクションを確立することによって、システムのセキュリティアクセスのレベルを変更することができる。
【００９３】
図５を参照すると、この図には、本発明の一部の実施形態による車載ネットワークに対する攻撃を検出する方法のフローチャートが示されている。
【００９４】
車載ネットワークに接続された構成要素の悪用を検出する方法は、実行可能コードの実行を基準実行と比較すること、およびその実行が基準実行にマッチしていなければ、車載ネットワークに接続された構成要素が悪用されていると判定することを含む。たとえば、実行可能コード２２０の実行を、監督された条件のもとで（たとえば実験室内において）記録することができ、たとえば実行された命令の一部を、またはすべてさえも、コールされた関数またはＡＰＩを、さらにはリソースへのありとあらゆるアクセス（たとえばファイルのオープン、通信ポートへのアクセスなど）を記録することができ、このようにして基準実行または基準となるまたは既知の実行の表現が生成される。基準実行を、永続的な記憶デバイスに（たとえばセキュリティレイヤ２１０と作動的に接続された記憶システム１３０に）記憶することができる。たとえば記憶システム１３０に記憶されたファイルは、既述のように実行可能コード２２０の監督された実行を監視している間に収集および／または生成されたすべてのデータを含むことができ、かくしてファイル内の内容を基準実行とすることができ、または基準実行として使用することができる。ここで述べておくと、ファイルの形態の、またはファイルに記憶された基準実行を、任意のユニットまたはシステムによって供給することができる。たとえば既述の基準実行を、たとえばサーバ２６０からセキュリティレイヤ２１０にダウンロードすることができる。たとえば、ＥＣＵ２０２向けの新たなソフトウェアまたはファームウェアのバージョンが（たとえばＥＣＵ２０２の製造業者によって）提供されたならば、新たなまたは更新された基準実行を既述のようにして生成することができ、新たなまたは更新された基準実行をセキュリティレイヤ２１０にダウンロードすることができる。
【００９５】
後の段階または時点において、実行可能コード２２０の実行を監視して基準実行と比較することができ、このようにして予期される基準実行からの逸脱を検出することができる。たとえば、ある特定のＡＰＩに対するコールが基準実行に含まれていないならば、その場合には、（たとえば実行可能コード２２０がハッキングまたは変更されたことから）車両における実行時に実行可能コード２２０がその特定のＡＰＩをコールしたならば、予期される実行または基準実行からの逸脱を既述のように検出または識別することができる。
【００９６】
ブロック５１０によって示されているように、車載ネットワークに接続された構成要素の悪用または侵入に関連するイベントを、基準実行の挙動からの実行可能コードの実行の逸脱に基づき検出することができる。たとえば、適用可能な任意のエンティティをホワイトリストに挙げる（ホワイトリストに含める）またはブラックリストに挙げる（ホワイトリストから除外する、またはブラックリストに含める）ために使用される、ホワイトリストおよびブラックリストのセットに基づき、逸脱を検出することができる。たとえば、特定のＥＣＵまたはそのＥＣＵを含む車両が特定の状態にあるときの、その特定のＥＣＵのためのホワイトリストに、特定のＡＰＩを含めることができ、特定のリソース、たとえば記憶装置、ポートまたはソフトウェアアプリケーションまたはユーティリティを、ブラックリストまたはホワイトリストに挙げることができる、といった具合である。既述のようなブラックリストおよびホワイトリストへの列挙を、以下のうちの１つまたは複数に適用することができる。すなわち、プロセスツリー、プロセスに関連するメタデータ、リソースへのアクセス、実行可能コードにおける関数および命令に対するコール。たとえば、プロセスに関連するメタデータにおける特定のパラメータ値、たとえばパーミッション、親子関係、バイトサイズおよびその他同類のものを、ブラックリストに挙げることができ、たとえばカーネルモードでの実行をブラックリストに挙げることができる。特定のソフトウェアの関数、ユーティリティまたはルーチンへのアクセス、それらのコール、呼び出しまたは実行、あるいは特定の通信ポートまたは外部ポート（リソース）へのアクセスを、ブラックリストに挙げることができ、したがってそのポートへのアクセスまたはその関数のコールは、車載ネットワークに接続された構成要素の悪用に関連するイベントの可能性があり、これは基準実行の挙動からの実行可能コードの実行の逸脱として検出され識別される。かくして本発明の実施形態によれば、特にＥＣＵなどの組み込みシステムにおいて、コードの実行の完全な制御を提供することによって、サイバーセキュリティの領域が改善される。
【００９７】
ブロック５１５によって示されているように、逸脱が検出されたならば、１つの実施形態は、そのイベントのログを作成またはそのイベントを記録することができる。イベントのログの作成は、たとえばフラッシュメモリまたは他の記憶装置（たとえば記憶システム１３０）に、イベントに関連する任意のデータを記憶すること、たとえばプロセスの名前または識別子またはプロセスへの参照、イベントが検出された時点、関連する車両の状態（たとえばセキュリティレイヤ２１０を含む車両）などを記憶すること、を含むことができる。
【００９８】
収集、計算または生成された任意のデータを、たとえば既述のログ、逸脱が検出されたという判定、または検出されたセキュリティ脅威に関連する任意のデータを、データが収集された車両から離れたサーバ（たとえばサーバ２６０）に供給することができ、サーバ２６０は、車両のフリートにおける複数のレイヤ２１０から受信されたデータに基づき、そのフリートに関連する現在のデータを生成することができる。したがって本発明の実施形態によれば、フリートからのデータを統合し、セキュリティに関してフリートの状態をユーザが見えるようにする手法でデータを呈示することによって、フリートの管理およびフリートのセキュリティの領域が改善される。
【００９９】
基準実行の挙動からの実行可能コードの実行の逸脱を、ルールエンジンを用いて検出することができ、このルールエンジンをセキュリティレイヤ２１０が含むことができ、または実行することができ、このルールエンジンは、一連のイベントまたはイベントシーケンスを脅威に関連づけることができる。たとえば、セキュリティ脅威として識別することができる一連のイベントまたはイベントシーケンスを、特定のシーケンスまたは順序での関数またはＡＰＩのセットのコールとすることができ、あるいは特定のシーケンスまたは順序でのリソースのセット（たとえば通信ポート、記憶デバイス、サウンドシステムなど）へのアクセスとすることができる。特定の一連のイベントを、既述のようにブラックリストおよび／またはホワイトリストに挙げることができる。
【０１００】
既述のように本発明の実施形態は、ソフトウェアセンサたとえばソフトウェアセンサ２４０を含むことができる。ソフトウェアセンサは、たとえばＥＣＵ内のコントローラによって、まさに実行されようとしているシステムコールまたは命令を妨げることができる。たとえばソフトウェアセンサは、ＥＣＵ２０２内のコントローラのシステムコールを妨げることができ、妨げられたコールまたは命令に関連するデータの分析に基づき、セキュリティ脅威を検出することができる。ソフトウェアセンサが既述のように脅威を検出したならば、ソフトウェアセンサは、たとえば既述のようにイベントのログを作成することによって、その脅威のログを作成することができる。一般に、セキュリティレイヤ２１０によって提供される任意の機能、オペレーションまたはロジックを、ソフトウェアセンサによって供給または実行することができる。たとえばソフトウェアセンサは、たとえば既述のようにブラックリスト、ヒューリスティクスまたはルールを用いて、脅威または異常が検出または識別されたとそのソフトウェアセンサが判定したならば、コールまたは命令をブロックまたは阻止することができる。
【０１０１】
明示的に述べられていないかぎり、本明細書で説明する方法の実施形態は、特定の時間順序または時系列シーケンスに束縛されるものではない。これに加え、既述の方法の要素の一部を省くことができるし、または１つの方法のオペレーションシーケンスの間にそれらを反復させることができる。
【０１０２】
これまで様々な実施形態を呈示してきた。それらの実施形態各々は、当然ながら、呈示された他の実施形態の特徴を含むことができ、具体的には説明しなかった実施形態が、本明細書で説明した様々な特徴を含むことができる。
【図１】
2020530624.tif 000003
【図２】
2020530624.tif 000004
【図３】
2020530624.tif 000005
【図４】
2020530624.tif 000006
【図５】
2020530624.tif 000007
【国際調査報告】
2020530624.tif 000008
2020530624.tif 000009
2020530624.tif 000010