(57)【要約】      （修正有）【課題】車載通信ネットワークにセキュリティを提供する。【解決手段】グローバル自動車安全システム（ＧＡＳＳ）２０は、データ監視処理ハブ２２ならびにハブと通信し、バス６１、７１およびバスに接続される少なくとも１つのノードを有する車両３０の車載ネットワーク６０の部分に接続されるように構成された少なくとも１つのモジュール（ウォッチマン４０）を含む。モジュールは、部分で伝搬する通信トラフィックのメッセージを監視し、サイバーアタックからの損傷への車載ネットワークの暴露を示す監視されたメッセージの異常なメッセージを識別する。【選択図】図１Ａ
2019013007.tif 000002
【特許請求の範囲】
【請求項１】
バス（６１，７１）と、前記バスに接続される少なくとも１つのノード（６２−６６，７２−７９）と、
車載ネットワークオペレーティングシステム（ＯＳ）と、および
前記ＯＳにホストされたモジュールと、
を備える、車載通信ネットワーク（６０）であって、
前記車載ネットワークオペレーティングシステム（ＯＳ）は、ＯＳプロセスを管理して、前記プロセスを実行するプロセッサを有効化し、かつそれぞれのプロセスコードを実行させ、
前記モジュールは、前記ＯＳを監視し、かつプロセッサによる実行のために前記ＯＳが有効化するプロセスを検証するように構成され、前記プロセスが潜在的に損傷を与える可能性があるかどうか決定して、潜在的に損傷を与える可能性があると決定した場合には、前記プロセスが前記ネットワークバスにアクセスを有することを防ぐように構成される、
車載通信ネットワーク。
【請求項２】
前記モジュールが、前記ＯＳの少なくとも１つの位置にフックを有し、前記ＯＳの動作に応じて前記モジュールに情報を提供して、前記モジュールが前記ＯＳを監視する処理を行うことを特徴とし、前記少なくとも１つの位置がｆｏｒｋ（）、ｅｘｅｃ（）、ｓｐａｗｎ（）、またはｏｐｅｎ（）のうち少なくとも１つまたは１つ以上のそれらの組合せを包含する、請求項１に記載の車載通信ネットワーク。
【請求項３】
前記検出プロセスが、前記プロセスによって実行されかつ前記車載通信ネットワークを介して送信するための通信メッセージを生成する前記プロセスのプロセスコードのコピーが、既知のプロセスのプロセスコードのコピーであるかどうかを決定することを含む、請求項１または請求項２に記載の車載通信ネットワーク。
【請求項４】
前記検出プロセスが、前記プロセッサにより実行される前記プロセスコードの前記コピーが前記車載ネットワーク内に備わる第２のメモリ内の前記プロセスコードの前記コピーと実質的に同一のものであるかを決定することを包含し、前記第２のメモリには、前記プロセス用の前記プロセスコードが保存される、請求項３に記載の車載通信ネットワーク。
【請求項５】
前記情報の処理が、実行されている前記プロセスコードの全ての実行スレッドが前記プロセスコードの前記コードセクションから実行しているかどうかを決定することを包含する、請求項３または請求項４のいずれか１項に記載の車載通信ネットワーク。
【請求項６】
前記検出プロセスが、実行される前記プロセスコードに関連する全ての動的ライブラリが既知で許可されているかどうかを決定することを包含する、請求項３〜５のいずれか１項に記載の車載通信ネットワーク。
【請求項７】
前記ＯＳが、ＱＮＸオペレーティングシステム、Ｌｉｎｕｘ（登録商標）オペレーティングシステム、またはＡｎｄｒｏｉｄオペレーティングシステムから成る群から選択される、請求項１〜６のいずれか１項に記載の車載通信ネットワーク。
【請求項８】
前記モジュールが実行可能な指示および／またはデータを備え、前記実行可能な指示および／またはデータが：
前記車載ネットワーク内で伝搬する通信トラフィック中のメッセージを監視する；
前記車載ネットワークがサイバーアタックからの損傷にさらされることを示す監視された前記メッセージ中に異常なメッセージを識別する；および
前記車載ネットワーク中の前記異常なメッセージに作用するアクションをとる、
ように構成される、請求項１〜７のいずれか１項に記載の車載通信ネットワーク。
【請求項９】
前記モジュールが規則に基づいたモジュールであって、かつ前記モジュールが：
前記異常なメッセージを識別することに応えてとられる応答アクションのメニューと；および
前記メッセージを受信することに応えて前記モジュールによってとられる前記メニュー中の応答アクションを決定するための基準として使用され、または前記基準として確立するのに使用される適合ルールのセットと、
を備える請求項８に記載の車載通信ネットワーク。
【請求項１０】
前記適合ルールおよび応答アクションが枝を有する決定木の中に構成され、かつ前記モジュールが前記異常なメッセージの特徴に応じて前記決定木を横断するように構成され、かつ前記異常なメッセージに応えて前記モジュールによってとられる前記アクションを終了する前記決定木の枝に沿ってナビゲートするように構成される、請求項９に記載の車載通信ネットワーク。
【請求項１１】
前記ライブラリ中の前記応答アクションが：
前記メッセージを許可する；
前記メッセージをブロックする；
前記メッセージを遅延させる；
前記メッセージの頻度を制限する；
前記メッセージを前記モジュール内に備わるメモリに記録する；
前記車両の状態を示す状態特徴ベクトルの構成を変更する；および／または
前記メッセージに応じて警報を発する、
から選択される応答アクションのうち、少なくとも１つまたは１つ以上の組合せを包含する、請求項９または請求項１０に記載の車載通信ネットワーク。
【請求項１２】
前記適合ルールが：
メッセージＩＤを決定する；
前記メッセージのデータコンテンツを決定する；
前記ノードが前記同じＩＤを有するメッセージと遭遇した最後の時間からの期間を決定する；
前記メッセージが送信される送信の頻度を決定する；
前記車両の状態を決定する；若しくは
前記車載ネットワークの状態を決定する、
から選択される適合ルールのうち、少なくとも１つ、あるいは１つ以上の組合せを包含する、請求項９〜１１のいずれか１項に記載の車載通信ネットワーク。
【請求項１３】
外部データ監視処理ハブと、
請求項１〜１２のいずれか１項に記載の複数の車載通信ネットワークを備えるシステムであって、前記車載通信ネットワークが前記ハブと通信するように構成され、かつ前記モジュールが前記ＯＳが適切に動作していないと判断した場合に前記ＯＳの動作に応じてデータを前記ハブに送信するように構成される、
システム。
【請求項１４】
前記ハブが、複数の車載ネットワーク中の１つの車載ネットワークから受信されたデータを処理して信号を生成し、かつ前記車載ネットワークのモジュール内の前記実行可能な指示および／またはデータを変更する前記複数の車載ネットワークのうちの少なくとも１つに前記信号を送信するように構成される、
請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、合衆国法典第３５巻、第１１９条（ｅ）の下で、その開示が参照により本書に組み込まれる、２０１４年1月６日に出願された米国仮出願第６１／９２３，７９０号、および２０１４年１月１５日に出願された第６１／９２７，５１５号、および２０１４年８月１９日に出願された第６２／０３８，８５９号、および２０１４年８月１９日に出願された第６２／０３８，８５６号の利益を主張する。
【０００２】
本開示の実施形態は、車載通信ネットワークにサイバーセキュリティを提供することに関する。
【背景技術】
【０００３】
過去半世紀にわたって、自動車業界は、当初はゆっくりと、その後は非常に急速に車両の機能を制御するための機械制御システムから機能を制御するための電子「ドライブバイワイヤ」制御システムに進化してきた。機械的な車両制御システムでは、車両の運転者は、機械的リンク機構を介して構成要素に運転者を直接的に結合する機械的なシステムを操作することによって車両機能を制御する車両の構成要素を制御する。ドライブバイワイヤ車両制御システムでは、運転者は、直接的な機械的リンク機構よりむしろ、電子制御システムならびに電子有線通信チャネルおよび／または電子無線通信チャネルによって車両機能を制御する車両制御構成要素に直接的に、および／または非常に多くの場合間接的に結合されてよい。運転者は、電子制御システムおよび通信チャネルに入力される電子信号を生成することによって制御構成要素を制御する。
【０００４】
通常、車両電子制御システムは、車両機能を制御することを目的とした運転者のアクションを受け取るためのユーザインタフェースと、アクションを電子制御信号に変換するトランスデューサと、機能に関連する信号を生成する複数のセンサおよび／またはアクチュエータとを含む。制御システムの電子制御ユニット（ＥＣＵ）は、ユーザによって生成される信号、ならびにセンサおよび／またはアクチュエータによって生成される信号を受信し、信号に応えて、機能を実行する上で関与する車両構成要素を制御するために動作する。また、所与の制御システムのＥＣＵは、他の車両制御システムによって、および／または他の車両制御システムの構成要素によって生成される機能の性能に関連する信号を受信し、処理してもよい。センサ、アクチュエータ、および／または他の制御システムは、共用される車載通信ネットワークを介して互いと、および所与の制御システムのＥＣＵと通信して、所与の制御システムの機能を実施する上で協調する。
【０００５】
例として、アクセルペダルとエンジンスロットルとの間の従来のケーブルに代わる車両スロットルバイワイヤ制御システムは、電子アクセルペダル、エンジン制御モジュール（ＥＣＭ）とも呼ばれるＥＣＵ、およびエンジンへの空気流を制御し、それによってエンジンが生じさせるパワーを制御する電子スロットルバルブを含んでよい。電子アクセルペダルは、運転者がペダルを押し下げる位置に応じて電子信号を生成する。ＥＣＭはアクセルペダル信号、加えて他のセンサと、アクチュエータと、車載通信ネットワークを介してエンジンの安全かつ効率的な制御に関連する情報を提供する車両内の電子制御システムとによって生成されてよい電子信号を受信する。ＥＣＭは運転者入力信号および他の関連する信号を処理して、スロットルを制御する電子制御信号を生成する。他のセンサ、アクチュエータ、および車載ネットワーク上でＥＣＭに関連する信号を提供してよい電子制御システムの中には、空気流センサ、スロットル位置センサ、燃料噴射センサ、エンジン速度センサ、車両速度センサ、ブレーキバイワイヤシステムに含まれるブレーキ力センサおよび他のトラクションコントロールセンサ、ならびにクルーズコントロールセンサがある。
【０００６】
現代の車両の車載通信ネットワークは、通常、車両の安全かつ効率的な動作に対して変化する度合のクリティカリティの、相対的に多数のおよびますます多くの電子制御システムのための通信をサポートすることが要求される。現代の車両は、たとえば、互いと、ならびに車載ネットワークを介して車両機能を監視し、制御するセンサおよびアクチュエータと通信する七十以上もの制御システムＥＣＵにとってのホームであってよい。ＥＣＵは、例として、上述されたエンジンスロットルに加えて、パワーステアリング、アンチロックブレーキシステム（ＡＢＳ）、エアバック配備、クルーズコントロール、パワーウィンドウ、ドア、およびミラー調整を制御するために使用されてよい。さらに、車載ネットワークは、通常、車載診断（ＯＢＤ）システムおよび通信ポート、多様な車両ステータス警告システム、衝突回避システム、音声情報エンターテインメントおよび視覚情報エンターテインメント（インフォテインメント）システム、ならびに車載カメラシステムによって取得される画像の処理をサポートする。また、車載ネットワークは、一般に、移動通信ネットワーク、ＷｉＦｉ通信およびブルーツース通信、ＴＰＭＳ（タイヤ圧モニタシステム）Ｖ２Ｘ（車両間通信）、キーレスエントリシステム、インターネットおよびＧＰＳ（グローバルポジショニングシステム）へのアクセスも提供する。
【０００７】
車載通信ネットワークに接続され、車載通信ネットワーク上で通信する車両構成要素の通信を構成、管理、および制御するために多様な通信プロトコルが開発されてきた。現在利用可能な普及している車載ネットワーク通信プロトコルは、ＣＡＮ（コントロールエリアネットワーク）、ＦｌｅｘＲａｙ、ＭＯＳＴ（メディア指向型システムトランスポート）、イーサネット（登録商標）、およびＬＩＮ（ローカル相互接続ネットワーク）である。プロトコルは通信バス、ならびに通信バスに接続される一般にノードと呼ばれるＥＣＵ、センサ、およびアクチュエータがどのようにしてバスにアクセスし、バスを使用して互いに信号を送信するのかを定義してよい。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
車載通信ネットワークがサポートする、増え続ける多数の電子制御システム、センサ、アクチュエータ、ＥＣＵ、ならびに通信インタフェースおよびポートは、車載通信ネットワーク、および通信システムを介して通信する車両構成要素を、車両の安全性および性能を危険なまでに傷つける可能性があるサイバーアタックの対象にますますなりやすくする。
【課題を解決するための手段】
【０００９】
本開示の一実施形態の態様は以下にグローバル自動車安全システム（ＧＡＳＳ）とも呼ばれるシステムを提供することに関し、システムは、相対的に拡大された地理的地域においてＧＡＳＳに加入した車両について、サイバーアタックに対するセキュリティを車載通信システムに提供するために動作する。本開示の一実施形態では、ＧＡＳＳは、以下にサーバハブとも呼ばれるデータ監視処理ハブと、サイバーハブと通信する加入者車両にインストールされるモジュールとを含む。モジュールは、サイバーウォッチマンまたはウォッチマンと呼ばれることもある。
【００１０】
加入者車両にインストールされたサイバーウォッチマンは、車両の車載通信ネットワークの少なくとも一部分で通信トラフィックを監視して、ネットワークまたは車両の通常の動作の妨害を示すことがある通信トラフィックの異常を識別する。妨害は、例として、車載通信ネットワークに接続されている車両内の多様な構成要素、つまりノードのいずれかの誤動作、ならびに／または通信ネットワークに対するサイバーアタックの発生および／もしくは結果を含んでよい。車載通信ネットワーク上での通信の異常を識別することに応えて、サイバーウォッチマンは、異常を報告、軽減、および／または制御するための多様なアクションのいずれか、または異常を報告、軽減、および／または制御するための多様なアクションの複数の任意の組合せをとってよい。
【００１１】
一実施形態では、サイバーウォッチマンは、ウォッチマンが監視する車載通信ネットワーク上の通信トラフィックに応じて、以下に「ウォッチマンデータ」と呼ばれることもあるデータをサイバーハブに送信するために動作する。サイバーハブは加入者車両からのウォッチマンデータを処理して、車両の車載ネットワーク上での通信のウォッチマンによる監視、および／または車両の車載ネットワーク上での通信で検出された異常に対するウォッチマンによる対応を構成するための情報を提供してよい。サイバーハブ、またはサイバーハブから情報を受信する権限を付与されているＧＡＳＳエージェントもしくは加入者等のユーザは、情報を使用してウォッチマンを構成してよい。
【００１２】
本開示の一実施形態では、サイバーハブは複数の加入者車両からのウォッチマンデータを処理して、車両または車両の集団が差し迫ったサイバーアタックの脅威にさらされている可能性があるのか、サイバーアタックを受けているのか、またはサイバーアタックに対する脆弱性を有しているのかを判断する。差し迫ったサイバーアタック、継続中のサイバーアタック、またはサイバーアタックに対する脆弱性を検出することに応えて、サイバーハブは、攻撃に交戦するために１台の加入者車両または複数の加入者車両を構成するようにＧＡＳＳユーザに警告することがある。代わりにまたはさらに、サイバーハブは適切な有線通信チャネルまたは無線通信チャネル上で１つまたは複数のウォッチマンに情報を送信することによって１つまたは複数のウォッチマンを直接的に構成してよい。
【００１３】
任意選択で、サイバーハブは複数のウォッチマンからのウォッチマンデータを処理して、加入者車両のための車両「健康」の測定基準を生成する。サイバーハブまたは加入者車両のウォッチマンは車両健康の測定基準を使用して、加入者車両が含む構成要素および／またはシステムの機械的な誤動作および／または電子的な誤動作を検出し、予測してよい。任意選択で、ウォッチマンは、車両の運転者、サイバーハブ、および／またはＧＡＳＳエージェントもしくは加入者に、車両誤動作が検出される、または予測されることを通知するために警報を生成する。本開示の一実施形態では、ウォッチマンは検出された誤動作または予測された誤動作に対処するために改善策を自動的に呼び出すように構成されてよい。
【００１４】
複数のウォッチマンからのウォッチマンデータを処理することによって、サイバーハブは、車両健康の測定基準および保守を提供し、サイバーアタックに対する脆弱性またはサイバーアタックへの暴露を検出し、係るアタックに対処するための早期の警告および手順を提供する上での改善された統計から恩恵を受けることがある。
【００１５】
一実施形態では、サイバーウォッチマンは規則に基づいたモジュールであり、規則に基づいたモジュールは規則のセットに従って動作して、加入者車両の車載ネットワーク上で送信されるメッセージを識別、分類し、識別されたメッセージに対して、もしあれば、どのような１つまたは複数のアクションをとるのかを決定する。規則のセットは、メッセージが車載ネットワーク上で送信されている間の車両の動作コンテキストに応えて識別されたメッセージをどのように処理するのかを自主的に決定してよい。コンテキストは、車両の動作状態および／または車両が動作している周囲の事情を含んでよい。車両の動作状態は、例として、車両速度、タイヤ圧、周囲温度、車両負荷、および健康の状態を含んでよい。車両が動作している周囲の事情は、例として道路の等級および／またはトラクション、周囲温度および／または周囲湿度、および／または季節を含んでよい。動作コンテキストは、ウォッチマンがサイバーハブによって警告される共通の動作状態を含んでよい。共通の動作状態は、実質的に同時に複数の加入者車両にとって共通の状態である。共通の動作状態は、複数の車両のウォッチマンによってサイバーハブに送信されるウォッチマンデータからサイバーハブによって検出され、定義されてよい。共通の動作状態は、たとえば、実質的に同時に複数の加入者車両が同じサイバーアタックを受けている、または車両制御システムもしくは構成要素の故障の同じ確率にさらされている状態として定義されてよい。一実施形態では、サイバーハブは、おそらく損傷を与える共通の動作状態と交戦し、直面するようにリアルタイムでウォッチマンの規則セットを構成してよい。
【００１６】
この発明の概要は、発明を実施するための形態で以下にさらに説明される概念の精粋を簡略な形で紹介するために示されている。この発明の概要は、主張されている主題の重要な特長または必須の特長を識別することを目的とするのではなく、主張されている主題の範囲を制限するために使用されることを目的とするのでもない。
【００１７】
本開示の実施形態の非制限的な例は、本段落に続き示される本書に添付される図を参照して以下に説明される。複数の図に表示される同一の特長は、概して、特長が表示されるすべての図で同じラベルで名前を付けられる。本開示の一実施形態の所与の特長を表すアイコンに名前を付けるラベルは、所与の特長を参照するために使用されてよい。図中に示される特長の寸法は便宜的におよび提示を明確にするために選ばれ、必ずしも縮尺通りに示されていない。
【図面の簡単な説明】
【００１８】
【図１Ａ】本開示の一実施形態に従って、ＧＡＳＳに加入した複数の車両にサイバーセキュリティを提供するためのＧＡＳＳシステムを概略で示す図である。
【図１Ｂ】本開示の一実施形態に係るＧＡＳＳウォッチマンによって保護される加入者車両の車載通信システムの一部分の概略ブロック図である。
【図２Ａ】本開示の一実施形態に係るウォッチマンの概略ブロック図である。
【図２Ｂ】本開示の一実施形態に従って、ウォッチマンが接続される車載ネットワークからウォッチマンが受信するメッセージに応えて図２Ａに示されるウォッチマンが実行するアルゴリズムの流れ図である。
【図２Ｃ】本開示の一実施形態に従って、図１Ｂに示される車載通信ネットワークのバスを保護するためにウォッチマンが実行するアルゴリズムの流れ図である。
【発明を実施するための形態】
【００１９】
図１Ａは、本開示の一実施形態に従って拡大された地理的領域３２で動作する車両３０にサイバーセキュリティサービスを提供するＧＡＳＳ２０を概略で示す。拡大された地理的領域は、送電網、移動通信ネットワークもしくは複数の係るネットワーク、車両の所与の集団が動作する大都市、州、および／または領域等のインフラ施設によってカバーされる領域等の国の領域を含んでよい。任意選択で、拡大された地理的領域は世界的規模であり、複数の州を含む１つまたは複数の大陸の部分に及んでいる。図１Ａでは、例として、米国本土で車両３０の車載通信ネットワークにサイバーセキュリティを提供するために動作しているＧＡＳＳ２０が示されている。
【００２０】
ＧＡＳＳ２０は、加入者車両３０のそれぞれの車載通信ネットワークを監視し、保護するために、クラウドベースのサイバーハブ２２および加入者車両３０にインストールされたウォッチマン４０を任意選択で含む。本開示の一実施形態に従って複数の任意選択で２つのＧＡＳＳウォッチマン４０が接続される車載ネットワーク６０を含む加入者車両３０を含む加入者車両３０の拡大されたイメージが、概略で差し込み図に示されている。ウォッチマン４０は、ウォッチマン４０が接続されるネットワーク６０の部分での通信トラフィックを監視し、サイバーアタックに対するネットワークの完全性を提供し、維持するための手順を実行し、アクションをとる。車載通信ネットワーク６０は、任意選択で、車両３０の多様な構成要素がノードとして接続される高速ＣＡＮバス６１および中速ＣＡＮバス７１を含むＣＡＮネットワークである。ウォッチマン４０は、本開示の一実施形態に従って、高速ＣＡＮバス６１に、および中速ＣＡＮバス７１に接続される。データは、ＣＡＮパケットまたはＣＡＮメッセージと呼ばれることがあるＣＡＮフレームで、バス６１および７１に接続されているノード間で送信される。
【００２１】
図１Ｂは、加入者車両３０内に含まれてよいネットワークおよび特定の制御システムを保護するウォッチマン４０を示す、車載通信ネットワーク６０の一部分の概略ブロック図を示す。制御システムおよび／または制御システムのそれぞれの構成要素は、高速バスバーおよび中速バスバー６１および７１に接続される。中速ＣＡＮバス７１は、適切に機能し、相対的に低速のデータ伝送速度でデータを受信および送信できる車体制御システムならびにインフォテインメントシステムの構成要素等のノード間での通信をサポートするために、最高毎秒１２５キロビット（Ｋｂｐｓ）のデータ通信速度で動作するＢ級ＣＡＮバスであってよい。例として、中速ＣＡＮバス７１は、それぞれヘッドライトシステム、計器ディスプレイシステム、環境制御システム、ドア制御システム、およびテールランプシステム７２、７３、７４、７５、および７６であるノードに接続されて概略で示される。ブルーツース通信インタフェースおよびＷｉｆｉ通信インタフェース、ならびに携帯電話ネットワークに通信インタフェースを提供し、手を使わないで操作できる電話をサポートするテレマティックスシステム７８を含むインフォテインメントシステム７９は、以下に説明されるウォッチマンを介して中速ＣＡＮバス７１に接続される。ＧＰＳ受信機７７は、任意選択でテレマティックスシステム７８とは別個であり、中速ＣＡＮバス７１に接続される。高速ＣＡＮバス６１は、ノード間のデータの相対的に高速の伝送が適切に動作することを必要とすることがある多様な制御システムのセンサおよびＥＣＵ等のノード間での通信をサポートするために、最高毎秒１メガビットのデータ通信速度で動作するＣ級ＣＡＮバスであってよい。高速ＣＡＮバス６１は、それぞれエンジンシステム、サスペンションシステム、トラクションシステム、ギヤボックスシステム、およびブレーキ制御システム６２、６３、６４、６５、および６６に接続されて概略で示されている。高速ＣＡＮバス６１は、ボディ制御システムゲートウェイ８０によって中速ＣＡＮバス７１に接続される。
【００２２】
車載ネットワーク６０は、ラベル４０Ａ、４０Ｂ、４０Ｃ、および４０Ｄによって個別化された複数の、任意選択で４つのウォッチマン４０の構成によって保護される。ネットワーク６０に接続されたウォッチマンは、数字参照４０によっておよび特定のウォッチマンと関連付けられた特長に関して個別化されたラベル４０Ａ、４０Ｂ、４０Ｃおよび４０Ｄによって総称的に参照される。ウォッチマン４０Ａは、任意選択で、高速バス６１と、高速バスを中速バス７１に接続するゲートウェイ８０との間で接続されるツー通信ポートモジュールである。ウォッチマン４０Ｂは、任意選択で、高速バス６１に接続された単一通信ポートモジュールである。インフォテインメントシステム７９およびテレマティックスシステム７８はウォッチマン４０Ｃを介して中速バス７１に接続され、ＧＰＳ受信機７７はウォッチマン４０Ｄを介して中速バス７１に任意選択で接続される。ウォッチマン４０Ａは本開示の一実施形態に従って動作して、高速バス６１とゲートウェイ８０との間で送信されるＣＡＮメッセージを監視し、ＣＡＮバスとゲートウェイとの間の通信を保護するために異常な通信に応答する。ウォッチマン４０Ｂは高速ＣＡＮバス６１に接続されて、高速バス上での通信を傍受し、バス上で伝搬される通信を保護する。ウォッチマン４０Ｃおよび４０Ｄは、車載通信システム６０のブルーツース通信インタフェース、ＷｉＦｉ通信インタフェース、および携帯電話通信インタフェースを介して車載通信システム６０に進入しようと試みるサイバーアタックから中速ＣＡＮバス７１を保護するために動作する。本開示の一実施形態に係るウォッチマンは図１Ａに示される通信ポートの数に制限されず、図１Ａに示される数とは異なる通信ポートの数を有してよい。
【００２３】
図１Ａおよび図１Ｂでは、ウォッチマン４０は、ハードウェア構成要素であるように見える別々の構成要素として概略で示されているが、本開示の一実施形態に係るウォッチマンは車載通信ネットワーク６０のノードに含まれるソフトウェア構成要素によって定義される「視覚化されたウォッチマン」であってよい。たとえば、ゲートウェイ８０は、コンピュータ実行可能命令およびデータ、または図１Ｂのゲートウェイとは別個に示されるウォッチマン４０Ａによって提供されてよい本開示の一実施形態に係るウォッチマン機能性を提供するソフトウェアおよびハードウェアの組合せを含んでよい。あるいは、エンジン制御システム６２のＥＣＭ（不図示）は、ウォッチマン４０Ａまたはウォッチマン４０Ｂによって提供されてよい、本開示の一実施形態に係るウォッチマン機能性を提供するコンピュータ実行可能命令およびデータを含んでよい。また、ウォッチマンは、ＣＡＮトランシーバとＣＡＮコントローラとの間の車載ネットワーク６０の、テレマティックスユニット７８等のノードのハードウェアに統合されてもよい。
【００２４】
本開示の実施形態に係るウォッチマン４０Ａ、４０Ｂ、４０Ｃ、または４０Ｄ等のウォッチマン４０は、動作モードのライブラリから選択可能な１つまたは複数のモードで動作してよい。ライブラリの各動作モードは、ウォッチマンが監視する車載ネットワーク６０の一部分で送信されるメッセージを処理する、および／またはメッセージに応答するためにウォッチマンが実行してよい任意選択で異なる動作アルゴリズムまたは動作手順を呼び出してよい。動作モードのライブラリは、パッシブモード、記録モード、通信モード、標準保護モード（ＳＰＭ）、検出モード、プログラミングモード、および／または無効モードの内の少なくとも１つ、または複数の任意の組合せを含む。
【００２５】
ウォッチマン４０は、ウォッチマンが有してよいディップスイッチを手動で操作することによって、および／またはウォッチマンに特定の動作モードをとるように指示する制御メッセージを有線通信チャネルまたは無線通信チャネルを介してウォッチマンに送信することによって所与の動作モードに設定されてよい。ウォッチマン４０は、ウォッチマンが第１の動作モードでの動作中に実行する命令が、第２の動作モードで命令を実行するために第２の動作モードにウォッチマンを切り替えるときに、異なる動作モードの間で自主的に切り替わってよい。異なる動作モードは同じまたは類似した機能性を提供または共用してもよく、ウォッチマンは複数の動作モードで同時に動作していてよい。
【００２６】
パッシブモードでは、ウォッチマン４０は、ウォッチマンが受信してよい車載ネットワーク６０でのメッセージの伝搬に干渉せず、ウォッチマンは車載ネットワーク上の通信にとって実質的にトランスペアレントであってよい。ウォッチマン４０は、例として、有利なことに、たとえば新しい構成要素および／またはセンサの車両３０に対する設置、ならびにノードとしての構成要素および／またはセンサの車載通信ネットワーク６０に対する接続の間にパッシブモードに設定されてよい。また、ウォッチマンは、有利なことに、たとえば診断コンソール（不図示）を、車両３０の車載診断（ＯＢＤ）ポート（不図示）に接続して、診断コンソールを車載通信ネットワーク６０に接続し、ネットワークに接続されたシステムに関する情報について車両の自己診断機能および報告機能に照会するときにパッシブに設定されてもよい。また、ウォッチマンは、フェールセーフ機構として、ウォッチマンが重大な内部エラーに遭遇したときに自動的に自身をパッシブモードに設定するように構成されてもよい。
【００２７】
車両３０内のウォッチマン４０をパッシブモードに設定すると、ウォッチマンによる保護活動が一時停止される。したがって、ウォッチマンに制御メッセージを送信することによってウォッチマン４０をパッシブに設定しようと試みることは、制御メッセージが受信された時点で、制御メッセージが権限を付与されたソースから生じたとして認証され、形式について、ならびに車両３０および車両３０の車載通信ネットワーク６０の状態が適切であるのかについて入念に調べられた後でのみ、本開示の一実施形態に従って許されてよい。たとえば、ウォッチマン４０をパッシブに設定しようとする試みは、車両が動いている場合、または試みがＧＡＳＳ２０、ＧＡＳＳの権限を付与されたユーザ、または車両の運転者以外のソースから発する場合、拒絶されることがある。ウォッチマン４０によって受信されるメッセージを認証し、入念に調べることは、以下に説明される。
【００２８】
記録モードでは、ウォッチマン４０は、加入者車両３０の車載通信ネットワーク６０の通信を監視して、ウォッチマン４０が受信するメッセージから、メッセージを特徴付け、メッセージの車両コンテキストを決定し、および／または車両の健康の測定基準を決定するために使用されてよいデータを蓄積する。ＣＡＮメッセージは、たとえば、ＣＡＮメッセージの１１ビットまたは２９ビット拡張アービトレーションＩＤ、ＣＡＮメッセージが概して４タイプの従来のＣＡＮメッセージの内のどれであるのか、ＣＡＮメッセージそれぞれの送信の頻度、ＣＡＮメッセージが含むデータの量およびタイプおよび内容、ＣＡＮメッセージが送信される時点を記録するタイムスタンプ、ならびにタイムスタンプの時点での車両コンテキストによって特徴付けられてよい。ＣＡＮメッセージアービトレーションＩＤは、以後ＣＡＮメッセージＩＤまたはメッセージＩＤと呼ばれることがある。
【００２９】
加入者車両３０の車両コンテキストは、車両の状態および／または車両の車載通信ネットワーク６０の状態を指す。車両３０の状態は、車両内の１台または複数のセンサが、たとえばそれが送信するＣＡＮメッセージのデータ部分の中で提供する少なくとも１つのパラメータのそれぞれの値に応じて定義されてよい。少なくとも１つのパラメータは、たとえば、車両速度、加速度、先行する車両または後続の車両に対する終速度、エンジン毎分回転数、エンジン温度、オイル温度、油圧、ホイールトラクション、道路状況、任意選択でＧＰＳ信号によって提供される車両位置、および／または気象条件の内の１つまたは複数の任意の組合せを含んでよい。車載ネットワーク６０の状態は、例として、ボーレート、ネットワーク上でどのタイプのメッセージが送信中であるのか、および／または車載通信ネットワーク６０のどのノードがネットワーク上でアクティブに通信中であるのかに応じて定義されてよい。また、車載通信ネットワークの状態は、ＣＡＮメッセージが一部である通信セッションの状態またはコンテンツを含んでもよい。車載ネットワーク６０の状態は、車載ネットワーク６０がサイバーアタックによって危険にさらされることがあるかどうか、および／またはどの程度危険にさらされることがあるのかを示すサイバー状態インジケータ（ＣＳＩ）とも呼ばれる、導出パラメータの値に応じて定義されてよい。ＣＳＩは、ウォッチマンが監視する車載ネットワーク上で送信されるメッセージに応えてウォッチマン４０によって、および／またはサイバーハブが、ウォッチマンから、および／または他の車載ネットワークを監視する１つのウォッチマン４０または複数のウォッチマン４０から受信するデータに応じてサイバーハブ２２によって決定されてよい。
【００３０】
ウォッチマン４０は、車両コンテキストを定義し、表すコンテキスト特長ベクトルを生成し、ウォッチマンに含まれるメモリに記憶してよい。コンテキスト特長ベクトルは、タイムスタンプ、車両内の１台または複数のセンサによって提供される少なくとも１つのパラメータの値、および／または車載ネットワーク６０の状態を説明するパラメータの値を含む構成要素を含んでよい。また、コンテキスト特長ベクトルは、車両の種類および年等の車両３０のＩＤデータ、オドメータ表示数値、ならびに任意選択で特長ベクトルタイムスタンプの時点でのＣＳＩ値を含んでもよい。本開示の一実施形態に係るコンテキスト特長ベクトルはヒストグラムの値を含んでよい。たとえば、コンテキスト特長ベクトルは、複数の異なるＣＡＮメッセージＩＤ、またはＣＡＮメッセージの異なるサブセットもしくはタイプのそれぞれに、車載ネットワーク６０上での送信の頻度または相対頻度を提供する、メッセージ頻度ヒストグラムとも呼ばれるヒストグラムの値である成分を含んでよい。任意選択で、コンテキスト特長ベクトルは、メッセージのサブセットごとに１つ、いくつかのヒストグラムを含んでよい。メッセージサブセットは、車載ネットワーク６０に接続された異なるノードの選択対象にまたは選択対象から送信されるメッセージを含んでよい。選択されたノードは、たとえば、エンジン制御システム、サスペンション制御システム、ギヤボックス制御システム、およびドア制御システム６２、６３、６５、および７５を含んでよい。メッセージサブセット種類は、エンジン空気または燃料取込み量を増加するための命令、または近接センサからの信号に応えて近接警報を生成するための命令等の特定の命令または特定の命令の部分を有するメッセージを含む。任意選択で、異なるメッセージＩＤの付いた一連のＣＡＮメッセージを送信することでウォッチマンにウォッチマンの利用可能なすべてのメモリを使い果たさせようとすることがあるアタックからウォッチマンを保護するために、ヒストグラムによって使用されるメモリは制限され、事前に割り当てられることがある。任意選択で、ウォッチマンがヒストグラムのための利用可能なメモリを使い果たした場合、ウォッチマンは旧いヒストグラムデータを破棄することによってメモリを解放してよい。
【００３１】
車両３０の健康の測定基準は、ウォッチマンが受信する、車両の異なる動作状態の下で車両のセンサ、アクチュエータ、および／またはＥＣＵによって車載ネットワーク６０上で送信されるＣＡＮメッセージ中のデータに応じて特徴付けられてよい、または決定されてよい。たとえば、車両３０の車両エンジン制御システムの構成要素によって送信されるメッセージの中で提供される、速度の関数としてのエンジン温度および燃焼消費量、またはエンジン速度の関数としてのエンジン排気中の酸素含有量は、エンジンの健康の測定基準を提供するために使用されてよい。車両速度の関数として車体部品の振動の周波数または振幅を表すデータを提供する振動モニタによって提供されるメッセージは、車両健康の測定基準を決定するために使用されてよい。
【００３２】
ウォッチマン４０は、ウォッチマンが監視するメッセージに応じて車両の健康の測定基準を提供する車両３０のための健康特長ベクトルを生成し、ウォッチマンメモリに記憶してよい。車両コンテキスト特長ベクトルと同様に、車両健康特長ベクトルは、車両ＩＤデータおよびＣＳＩ値を含んでよい。
【００３３】
車載通信ネットワーク６０上で伝搬されるＣＡＮメッセージを特徴付けるデータ、車両コンテキスト特長ベクトルおよび車両健康特長ベクトルに含まれるデータ等の記録モードで動作するときにウォッチマン４０によって取得されるデータは、有利なことに、記録モードにおいて以外の動作モードで動作するときにウォッチマンによる使用のために処理されてよい。たとえば、以下に説明されるように、ウォッチマンによって取得されるウォッチマンデータは、たとえばＳＰＭモードでの動作のためにウォッチマンを構成するために、ＳＰＭモードで、またはプログラミングモードで動作しているときにウォッチマンが受信するメッセージにどのように応答するのかを決定する際にウォッチマンによって使用されてよい。そして、データがサイバー損傷汚染を受けずに取得されたことを示す、ウォッチマンによってＣＳＩ値と関連付けられたデータは、車載通信ネットワーク６０のノード間の規範的な通信のための基準を特徴付ける、および／または確立するために処理されてよい。
【００３４】
たとえば、メッセージＩＤ、およびサイバー損傷を受けていないことを示すＣＳＩ値と関連付けられる、車載通信ネットワーク６０で伝搬されるＣＡＮメッセージを特徴付ける特長を含むデータは、ＣＡＮメッセージの「ホワイトリスト」を提供するために使用されてよい。一実施形態では、ホワイトリストは、車載通信ネットワーク６０がサイバーアタックからの損傷を受けなかった１つまたは複数の期間の間に伝搬されたＣＡＮメッセージのメッセージＩＤ、および任意選択で、１つまたは複数の期間中のＣＡＮメッセージそれぞれの伝搬を特徴付ける「サイバークリーン」データを含む。所与のホワイトリストに記載されたＣＡＮメッセージＩＤのサイバークリーンデータは、所与のＣＡＮメッセージの送信の相対頻度、および任意選択で所与のＣＡＮメッセージの送信が関連付けられる他のＣＡＮメッセージを参照するメッセージのメッセージコンテキストを含んでよい。任意選択で、所与のホワイトリストに記載されたＣＡＮメッセージのサイバークリーンデータは、車両コンテキストの関数として提供される。
【００３５】
任意選択でメッセージの対応する特長およびコンテキストとともに、メッセージの「ホワイトリスト」も、製造メーカの車両が車両、車両付属品および／またはアドオンを制御するために使用するＣＡＮメッセージを定義する車両製造メーカＣＡＮ仕様を参照することによって作成されてよい。任意選択で、ＣＡＮメッセージの車両の製造メーカのカタログは、ウォッチマンによって使用可能なフォーマットのＣＡＮメッセージのホワイトリストを提供するために自動的に変換される。製造メーカの車両で使用される車載ネットワークのグラフィックユーザインタフェース（ＧＵＩ）、ならびにネットワークのモード間で予測される通信トラフィックの量およびタイプは、人が、ＣＡＮメッセージの製造ＣＡＮカタログをウォッチマンフォーマットのホワイトリストに手動で変換するのを支援するために使用されてよい。
【００３６】
一実施形態では、ホワイトリストに記載されたＣＡＮメッセージを受信するウォッチマン４０は、車載ネットワーク６０でのホワイトリストに記載されるＣＡＮメッセージの通常の伝搬と干渉しない。任意選択で、ホワイトリストに記載されるＣＡＮメッセージが、それがホワイトリスト中のＣＡＮメッセージについて参照されてよい「ホワイトリスト」コンテキストと関連して受信されると、不干渉が予測される。
【００３７】
同様に、ウォッチマン４０の記録モード中に取得されたデータに応じて、マルウェアである、マルウェアと関連付けられている、および／またはサイバーアタックによって危険にさらされると判断されるＣＡＮメッセージ、ならびにＣＡＮメッセージのそれぞれの特徴付けの特長およびコンテキストは、「ブラックリスト」に掲載されてよい。一実施形態では、任意選択でＣＡＮメッセージの、対応するブラックリストに記載された特長およびコンテキストと関連して、ウォッチマン４０によって受信されるブラックリストに記載されたＣＡＮメッセージは、ウォッチマンによって車載ネットワーク６０上でのさらなる伝搬からブロックされてよい。また、ＣＡＮメッセージおよびＣＡＮメッセージのそれぞれの特長およびコンテキストは、手作業で分類され、任意選択で適切なＧＵＩを使用することによってサイバーセキュリティアナリストによって既知の記録されているサイバーアタックの「ブラックリスト」に加えられてもよい。
【００３８】
車載通信ネットワーク６０上での通信に関するデータの取得は、記録モードで動作するウォッチマン４０について説明されてきたが、ウォッチマン６０が、ウォッチマンの他の動作モード中に車載ネットワーク６０での通信に関連するデータを取得し、記憶してよいことが留意される。たとえば、ウォッチマンが、ＣＡＮメッセージが車載ネットワーク６０で伝搬されるのを許されるべきかどうかを判断するために定期的にＣＡＮメッセージを入念に調べるＳＰＭ保護モードで動作しているときにウォッチマンによって取得されるデータは、ＣＡＮメッセージをホワイトリストに記載するまたはブラックリストに記載するために使用されてよい。ウォッチマン４０がＳＰＭモードまたは記録モードでの動作中に遭遇するＣＡＮメッセージであって、いままでに分類されたことがない、および／またはおそらくたとえばメッセージが以前遭遇されたことがないもしくはめったに遭遇されないためにホワイトリストまたはブラックリストとして容易に分類され得ないＣＡＮメッセージは、グレイリストに記載されてよい。ウォッチマン４０は、グレイリストに記載されたＣＡＮメッセージに車載通信システム６０に対する限られたアクセスだけを許してよい。たとえば、ウォッチマン４０は車載ネットワークでの送信の頻度を制限してよい。ＣＡＮメッセージは、ウォッチマン４０の動作モードのいずれかの間にウォッチマン４０によってグレイリストに記載されてよい。
【００３９】
ウォッチマン４０が、本開示の一実施形態に従って、記録モードまたは別の動作モードでの動作中に、ＣＡＮメッセージ、車両コンテキストおよび／または車両健康に関連するデータに加えて、ウォッチマン自体の性能および動作に関連するデータを分析のために記録してよいこともさらに留意される。たとえば、ウォッチマン性能データは、ウォッチマンがメッセージをマルウェアとして識別する際にどれほど頻繁に誤検出または検出漏れを生成したのかを判断するために使用されてよい。そして、ウォッチマン性能データは、ウォッチマンが、どれほど頻繁に、サイバーアタックのための識別である可能性がある有効ではないデジタルシグナチャの付いたリモートコマンドまたは更新を受信したのかを判断するために使用されてよい。
【００４０】
ウォッチマン４０によって提供されたデータを処理することは、ウォッチマンがサイバーハブまたは権限を付与されたＧＡＳＳユーザにデータを伝達した後で、ウォッチマンによって、またはサイバーハブ２２によって、またはＧＡＳＳ２０の権限を付与されたユーザによって実行されてよい。ウォッチマン４０は、記録モードの命令の実行に従って、または通信モードでの動作中にデータをエンティティに伝達してよい。サイバーハブ２２は、集団の中の複数の異なるウォッチマンからデータを集めて、集団のサイバーヘルスおよび操作健康に関する高レベルの結論を作成してよい。また、サイバーハブ２２は、異なる集団の間でデータを集めてもよい。サイバーハブは、集団のサイバーヘルスに関する高レベルの情報、および高レベルの情報を理解するためにサイバーアナリストによって使用され得る未処理データを表示するユーザインタフェースを提供してよい。たとえば、ユーザインタフェースは、指定された時間枠および／またはヒートマップのフォーマットでの地理的地域で検出された異常および／またはブロックされたサイバーアタックおよび／または車両誤動作の数を表示してよい。任意選択で、サイバーハブは、どのウォッチマンが指定された期間を超えてサイバーハブと通信していないのか、ならびに他のサイバーおよび操作関係の測定値を追跡調査してよく、この情報をサイバーハブのユーザに対し、適切なユーザインタフェースを介して提供してよい。サイバーハブは、任意選択で重大なイベントに関してＧＡＳＳ２０の加入者に対してライブ警報を発してよい。
【００４１】
通信モードで、ウォッチマン４０は、ウォッチマン４０が取得した、および／または処理したデータを、適切な有線通信信チャネルおよび／または無線通信チャネルを介してサイバーハブ２２におよび／または診断コンソール（不図示）に伝達してよい。ウォッチマン４０は、周期的に通信モードに切り替わり、メッセージ頻度ヒストグラム等の、ウォッチマン４０が記録モードでのまたは別の動作モードでの動作中に取得するデータまたはデータの一部分をサイバーハブ２２にアップロードするように構成されてよい、または制御されてよい。ウォッチマン４０は、動作モードに切り替えるためにアクセスされてよく、ウォッチマン４０が取得するデータを車両３０内のＯＢＤポートに接続された診断コンソールに、またはスマートフォン、ラップトップ、またはタブレット等の移動通信装置に無線チャネルを介して伝達するように要求されてよい。一実施形態では、ウォッチマン４０は、通信モードに切り替わり、任意選択で暗号化された要求されたデータを、およびデータを受信する権限を付与されたエンティティによって要求が行われることを認証した後にのみ、提供してよい。一実施形態では、ウォッチマン４０は、たとえばサイバーハブ２２から情報を要求するために、またはサイバーハブ２２に情報を送信するために自主的に通信モードに切り替わってよい。ウォッチマンが要求してよい情報は、ウォッチマンの規則のセットに対する更新に関する情報、および／またはＳＰＭモードでのウォッチマン動作中にＣＡＮメッセージに応答するための命令であってよい。
【００４２】
利用可能な帯域幅を効率的に活用するために、ウォッチマン４０は、ウォッチマンによってサイバーハブに提供された情報の短い説明に基づいて、サイバーハブ２２がウォッチマン４０に情報をアップロードする許可を与えた後にだけ、サイバーハブ２２に、ウォッチマン４０が取得した情報を任意選択で送信してよい。たとえば、車両の集団全体が同時にサイバーアタックを受けており、集団内のすべてのウォッチマンがサイバーハブ２２にサイバーアタックを報告しようと試みる場合、サイバーハブ２２は、攻撃を受けている相対的に少数の車両から関連データを受信することによって帯域幅の飽和を防止することを選んでよい。任意選択で、帯域幅の追加の節約は、サイバーハブ２２に送信されるデータを圧縮することによって適用されてよい。たとえば、車両３０が取得するメッセージ頻度ヒストグラムは、メッセージＩＤごとの発生数に１バイトを使用して相対的にコンパクトな形で記憶されてよい。オーバフローを回避するために、メッセージＩＤ毎のカウントの値は、たとえば２で周期的に除算され、このようにしてヒストグラムをローカル頻度ヒストグラムにする。任意選択で、ヒストグラムは、ＭＳＢ（最上位ビット）ビットおよびＬＳＢ（最下位ビット）ビットが万一１である場合に、除算がカウント中のＭＳＢビットおよびＬＳＢビットを変更するのを許さないことによってヒストグラムの極値を保ってよい。
【００４３】
図１Ａおよび図１Ｂに概略で示される車載ネットワーク６０等の車載通信ネットワークが、それぞれが任意選択でネットワークの異なる部分を監視する複数のウォッチマン４０に接続されてよいことが留意される。任意選択で、複数のウォッチマン４０に接続された車載通信ネットワークは、ウォッチマン４０、他のウォッチマンのための通信ハブまたはルータとして動作する「スーパーウォッチマン」を有してよい。スーパーウォッチマンは、たとえば、ネットワークに接続されている他のウォッチマンによって取得されたデータを集めて、サイバーハブ２２またはＧＡＳＳ２０の権限を付与されたユーザにデータを伝達してよい。また、スーパーウォッチマンは、サイバーハブからの、または車載通信ネットワークに接続された他のウォッチマン向けの車載通信ネットワークの外部の権限を付与されたエンティティからの通信を受信し、意図されたウォッチマンに通信を送るために動作してもよい。一実施形態では、同じ車載通信ネットワークに接続された複数のウォッチマンは、ネットワーク内のバスを介して通信してよい、または互いと通信するために無線ローカルネットワークとして構成されてよい。
【００４４】
ＳＰＭモードで、ウォッチマン４０は、車載ネットワーク６０で伝搬されるメッセージに応えてウォッチマンによってとられてよい応答アクションのメニュー、およびウォッチマンがメニュー中の少なくとも１つの応答アクションとメッセージを適合させるために使用する、以下に適合規則とも呼ばれる規則のセットのメニューを含む動作アルゴリズムを呼び出す。適合規則は、メッセージの受信に応えて、どの応答アクションがメッセージに適合され、ウォッチマン４０によってとられるべきかを判断するための基準として、または判断するための基準を確立する上で使用されてよいメッセージの特長を決定するために、メッセージの少なくとも一部分を検査するための命令である。適合規則の特定のセットは、ウォッチマンの設定で定義されてよく、ノードが特定の条件および／またはアクションを表してよい決定ツリーデータ構造の変形としてメモリ内に表されてよい。設定は、ツリーの中のルートに対する適切なアクションとともに、規則のレイアウト、タイプ、および特定のパラメータを決定してよい。
【００４５】
ウォッチマン４０が受信する所与のメッセージに応えてとられてよいメニュー中の応答アクションは、例として、メッセージを許すこと、メッセージをブロックすること、メッセージを遅延させること、メッセージの頻度を制限すること、ウォッチマンに含まれるメモリにメッセージを記録すること、車両の状態を表す状態特長ベクトルを変更すること、および／またはメッセージに応えて警報を発することを含んでよい。
【００４６】
ＣＡＮメッセージに対する応答を決定するための適合規則は、例として、メッセージＩＤを決定するためにメッセージのアービトレーション部分を検査する、メッセージが４つの従来のＣＡＮメッセージタイプの内の１つであるかどうか、およびメッセージがどのタイプであるのか判断する、メッセージのウォッチマンでのソースポートを決定する、メッセージ中のデータコンテンツが、たとえば例として車両の種類、型、および機械的な状況等、車両を特徴付ける特長に対して有効であるデータであるかどうかを判断する、メッセージの送信頻度を決定する、メッセージの車両コンテキストを決定する、を含んでよい。規則は、ＡＮＤ、ＯＲ，ＮＯＴ等の論理演算子を使用していくつかのサブ条件を組み込む複雑な論理、およびＣＡＮメッセージのデータの部分だけを検査するためのマスキング方法を使用してよい。たとえば、ウォッチマン４０は、特定のメッセージＩＤを有するメッセージを見ることと、メッセージがウォッチマンのおそらく別のポートに再び表示されるのを許すこととの間に経過しなければならない最小期間を施行して、サイバーアタッカーがバスで通信トラフィックをリスンし、バスで送信される所与の本物のメッセージを待機し、その後すぐに、所与の本物のメッセージを無効にするために悪意のあるコンテンツの別の類似したＩＤが付けられたメッセージを送信するのを妨げてよい。
【００４７】
図２Ａは、本開示の一実施形態に従って、ウォッチマンのＳＰＭモードおよび他の動作モードでのウォッチマンの動作をサポートする、車載通信ネットワーク６０に接続された、たとえばウォッチマン４０Ａ等のウォッチマンの構成要素を概略で示す。
【００４８】
ウォッチマン４０Ａは、任意選択でプロセッサ４１、およびウォッチマンが接続されるＣＡＮバスまたはＣＡＮノードにメッセージを送信し、ウォッチマンが接続されるＣＡＮバスまたはＣＡＮノードからメッセージを受信するための、任意選択で２つの通信ポート４２および５２を含む。たとえば、図１Ｂでは、ウォッチマン４０Ａの通信ポート４２は
高速バス６１に接続され、ウォッチマンのポート５２はＣＡＮゲートウェイ８０に接続される。ポート４２は、ＣＡＮトランシーバ４３およびＣＡＮコントローラ４４によってプロセッサ４１に接続される。トランシーバ４３は、ポート４２で高速バス６１から順次受信されるＣＡＮメッセージ中のビットを、ＣＡＮフォーマットからウォッチマン４０Ａによって使用されるフォーマットに変換し、ＣＡＮコントローラ４４にビットを転送する。ＣＡＮコントローラは、ビットが属するＣＡＮメッセージ中のすべてのビットが受信され、完全なメッセージがアセンブルされるまでビットを記憶する。ＣＡＮコントローラ４４は、本開示の一実施形態に係る処理のために、アセンブルされたメッセージをプロセッサ４１に転送する。また、ＣＡＮコントローラ４４は、ＣＡＮメッセージ中の、ウォッチマン４０Ａから高速ＣＡＮバス６１への送信のためにプロセッサ４１によって生成されるビットを受信し、ビットが生成されるウォッチマンフォーマットからＣＡＮフォーマットへの変換のためにトランシーバ４３にビットを転送する。トランシーバ４３は、ＣＡＮフォーマットのビットをポート４２を介したＣＡＮバス６１への送信のために転送する。ポート４２と同様に、ポート５２は、トランシーバ５３およびコントローラ５４によってプロセッサ４１に接続され、ＣＡＮゲートウェイ８０へ、およびＣＡＮゲートウェイ８０からＣＡＮメッセージを伝送するために動作する。
【００４９】
プロセッサ４１は、プロセッサ４１が適合規則を実行するためのコンピュータ実行可能命令、ＣＡＮメッセージのホワイトリストおよびブラックリスト、および任意選択でメモリ４５に記憶される応答アクションに従って、ならびに任意選択でメッセージがその間に受信される車両コンテキストに従ってポート４２またはポート５２を介して受信するメッセージを処理する。車両コンテキストは、ウォッチマン４Ａが受信し、ウォッチマンがメモリ４６にデータとして記憶するコンテキスト特長ベクトルを定義するために任意選択で使用するメッセージに含まれるデータに応じてウォッチマン４０Ａによって決定されてよい。メモリ４５および／またはメモリ４６は、ウォッチマン４０によって使用される一次メモリおよび／または二次メモリを含んでよく、メモリ４５および４６は別々のユニットとして概略で示されているのに対し、メモリは同じユニットに含まれてもよい。
【００５０】
ウォッチマン４０Ａは、任意選択で、ウォッチマンが受信するメッセージを認証するための認証モジュール４７、ならびに無線通信チャネルを介してサイバーハブ２２、権限を付与されたユーザ、加入者車両の運転者、および他の外部エンティティと通信するための無線通信インタフェース４８を含む。無線インタフェース４８は、Ｗｉｆｉチャネルおよび／またはブルーツースチャネルおよび／または３Ｇネットワーク等の携帯電話ネットワークに対する接続性を提供してよい。係る無線機能がない場合、本開示の一実施形態に係るウォッチマンは、クラウドへの既存の車両接続上でサイバーハブ２２と通信してよい。これは、クラウドに対する接続性を有することがある車載ネットワーク６０内のＥＣＵに、ＣＡＮバス７１または６１等のＣＡＮバスを介してトンネルすることによって実行されてよい。トンネルは、統一診断システム規格（the Unified Diagnostic System Standard）に従ってＰＩＤを読み書きすることによって、またはＣＡＮバスによってサポートされる任意の他のプロトコルを使用することによって実装されてよい。
【００５１】
認証モジュール４７は、ウォッチマンが多様な認証アルゴリズムのいずれかを使用して受信するメッセージを認証するためのコンピュータ実行可能命令を含んでよい。認証モジュール４７によって使用されてよい認証アルゴリズムは、たとえば、非対称鍵暗号化アルゴリズムのいずれか、非対称鍵暗号化アルゴリズムおよび対称鍵暗号化アルゴリズムの組合せを含んでよく、ＴＬＳ（トランスポートレイヤーセキュリティ）、およびＰＧＰ（プリティーグッドプライバシー）等の認証アルゴリズムを含んでよい。任意選択で、認証モジュール４７は受信されたメッセージを認証するためのハードウェアセキュリティモジュール（ＨＳＭ）である、または受信されたメッセージを認証するためのハードウェアセキュリティモジュール（ＨＳＭ）を含む。一実施形態では、認証は、たとえば認証データにタイムスタンプを含むことによって、認証が「リプライアタック」の影響を受けることがないように実装されてよい。ウォッチマン４０Ａの中に安全なタイムスタンプ情報が存在しない場合、ウォッチマンは、ウォッチマンが含むクロックをランダムに初期化し、サイバーハブに「疑似タイムスタンプ」を安全に送信してよく、サイバーハブ２２は同様にサイバーハブとの追加の通信で疑似タイムスタンプを使用してよい。
【００５２】
図２Ｂは、本開示の一実施形態に従って、ウォッチマンがＳＰＭモードでの動作中に受信する車載通信ネットワーク６０上で伝搬されるＣＡＮメッセージに対するウォッチマン４０Ａによる応答の例のシナリオの流れ図１００を示す。
【００５３】
ブロック１０１で、ウォッチマン４０ＡはＣＡＮメッセージを受信し、ブロック１０３で、メッセージがゲートウェイ８０によって送信され、ポート５２（図１Ｂ）を介してプロセッサ４１によって受信されたと任意選択で判断する。ブロック１０５で、プロセッサ４１（図２Ａ）はメモリ４５にアクセスして、メモリ、ならびにポート４５を介して受信されたメッセージに関連するホワイトＣＡＮメッセージリストおよびブラックＣＡＮメッセージリストの中の規則に応じて受信されたメッセージを処理する。決定ブロック１０７で、プロセッサはメッセージの１１ＣＡＮメッセージＩＤビットまたは２９ＣＡＮメッセージＩＤビットを入念に調べて、メッセージＩＤが有効であり、高速バス６１に対する進入を許されてよいかどうかを判断する。
【００５４】
決定ブロック１０７で、メッセージＩＤがホワイトリストＣＡＮメッセージのメッセージＩＤではないとプロセッサ４１が判断する場合、プロセッサはブロック１２０に進み、ＩＤがブラックリストメッセージＩＤであるかどうかを判断する。メッセージがブラックリストメッセージである場合、プロセッサは任意選択でブロック１２２に進み、高速ＣＡバス６１への進入からメッセージをブロックする。任意選択で、ブロック１２４で、プロセッサ４１は、将来の考えられるサイバーハブ２２へのアップロード、参照、ならびに／またはウォッチマンおよび／もしくはサイバーハブによる分析のために、メッセージに関連するデータをメモリ４６に記録する。ブロック１２６で、プロセッサ４１は、メッセージが、たとえばサイバーアタックを示す、反復される同一のメッセージのパターンまたは保証されていないメッセージのパターン等のメッセージのパターンの一部であるように見えるかどうかに関する決定を下す。
【００５５】
メッセージがサイバーアタックを示していないとプロセッサ４１が判断する場合、プロセッサ４１はブロック１３８に進んで、頻度ヒストグラムにＩＤを記録することによってメッセージＩＤを集める、および／またはサイバーハブ２２への将来のアップロードのためにメッセージ全体を記憶する。他方、メッセージがサイバーアタックを示すとプロセッサ４１が判断する場合、プロセッサはブロック１３６に進み、メッセージの受信をサイバー２２に報告するようにウォッチマン４０Ａを制御し、その後ブロック１１９に進み、ブロック１０１に戻って次のＣＡＮメッセージを受信し、処理する。
【００５６】
決定ブロック１２０で、ポート５２で受信されたメッセージがブラックリストメッセージではないとプロセッサ４１が判断する場合、プロセッサは任意選択でブロック１２８に進み、メッセージがグレイリストメッセージである、またはグレイリストメッセージとして分類されてよいと判断する。ブロック１３０で、プロセッサは受信されたメッセージのメッセージＩＤと同じメッセージＩＤを有する多くのメッセージが高速バス６１に転送されるのを制限する、またはメッセージが高速バスに転送される頻度を制限することを決定してよい。任意選択で、ブロック１３２で、プロセッサ４１は、サイバーハブ２２への将来の考えられるアップロード、参照、ならびに／またはウォッチマンおよび／もしくはサイバーハブによる分析のためにメッセージに関連するデータをメモリ４６に記録する。そして、決定ブロック１３４で、プロセッサ４１は、メッセージがサイバーアタックを示しているか、それともサイバーアタックを示していないかを判断する。メッセージがサイバーアタックを示すように見える場合、プロセッサは任意選択でブロック１３６に進んで、メッセージの受信をサイバーハブ２２に報告し、その後ブロック１１９に進み、ブロック１０１に戻って別のＣＡＮメッセージを受信する。
【００５７】
決定ブロック１３４で、グレイリストとして分類される、ポート５２で受信されたメッセージがサイバーアタックを示すように見えないとプロセッサ４１が判断する場合、プロセッサ４１は任意選択でブロック１３８に進んで、頻度ヒストグラムにＩＤを記録することによってメッセージＩＤを集める、および／またはサイバーハブ２２への将来のアップロードのためにメッセージ全体を記憶する。プロセッサは、次いで任意選択でブロック１１９に進んで、ブロック１０１に戻り、別のＣＡＮメッセージを受信する。
【００５８】
ブロック１０７で、プロセッサ４１がポート５２でウォッチマン４０Ａによって受信されたメッセージがホワイトリストメッセージであると判断する場合、プロセッサは任意選択でブロック１０９に進み、メッセージのデータ部分に含まれるデータの検査を開始する。
【００５９】
例示的なシナリオのために、ブロック１１１で、プロセッサは、データセクションが任意選択でエンジン制御システム６２のＥＣＭ（不図示）の中でファームウェアを更新するための命令を含むと判断すると仮定される。推定されるように、データセクションが含むメッセージおよび命令は、車載通信ネットワークを車両３０の外の通信ネットワークに接続するテレマティックスシステム７８（図１Ｂ）に含まれる携帯電話ネットワーク等の通信インタフェースを介して車載ネットワーク６０に入った。メッセージが高速バス６１およびエンジン制御システム６２に進むのを許す前に、プロセッサ４１は、ブロック１１３で、メッセージがウォッチマン４０Ａでまたはウォッチマン４０Ｃで、適切に暗号によって署名されているとして認証モジュール４７によって認証されているかどうかを判断する。メッセージが不適切に署名されている、または署名されていない場合、プロセッサ４１はブロック１１２でメッセージをブロックし、任意選択でブロック１２４で、メッセージを受信したイベントおよび受信に関するデータをメモリ４６に記録し、決定ブロック１２６に進む。決定ブロック１２６で、メッセージが、たとえ署名されていない、または不適切に署名されているとしても、サイバー脅威を示さないとプロセッサが判断する場合、プロセッサはブロック１０１に戻って次のメッセージを受信するようにウォッチマン４０Ａを制御する。そして、メッセージが脅威であるとプロセッサ４１が判断する場合、プロセッサ４１は上述されたブロック１３６から１４０でアクションを実施するために進む。
【００６０】
ブロック１１３で、メッセージが適切に暗号を使用して署名されているとプロセッサが判断する場合、ブロック１１５で、プロセッサは、メッセージに含まれるファームウェア更新命令に関連することがあり、ファームウェア更新命令の実行を制約することがある車両コンテキストデータにアクセスする。例として、メッセージ中の更新命令の実行は、車両３０が毎時十キロメートル（ｋｍｐ）未満の速度で移動中であるという要件によって制約されてよく、プロセッサ３０は車両３０の速度を含むコンテキストデータにアクセスしてよい。一実施形態では、コンテキストデータは、入念に調べられているメッセージがポート５２を介してウォッチマン４０Ａによって受信された時点と実質的に同じ時点で、メモリ４６からアクセスされる、またはＣＡＮメッセージからリアルタイムで抽出される。コンテキストデータが、車両３０が１０ｋｍｐを超える速度で移動中であることを示す場合、プロセッサ４１はブロック１１７に進みメッセージが高速バス６１およびエンジン制御システム６２に伝搬するのをブロックする。プロセッサは、任意選択でその後ブロック１１９およびブロック１０１に進んで、次のメッセージを受信する。他方、車両コンテキストデータが、車両３０の速度が１０ｋｍｐ未満であることを示す場合、プロセッサ４１は任意選択でブロック１１８に進み、ポート５２で受信されたメッセージが高速バス６１およびエンジン制御システム６２に伝搬するのを許し、ファームウェア更新命令を実行する。
【００６１】
上記の例示的なシナリオの説明では、ウォッチマン４０Ａは「サイバー悪意」メッセージが中速バス７１から高速バス６１に伝搬するのを、メッセージがウォッチマンを通過するのを許さないことによって妨げることで高速バス６１を保護する。本開示の一実施形態では、ウォッチマンはウォッチマンが保護する車載ネットワークの一部分に接続されてよく、したがってウォッチマンは一部分およびメッセージを傍受し、任意選択でウォッチマンを通過しないで、一部分に伝搬する、または一部分で伝搬する。
【００６２】
たとえば、図１Ｂに示されるウォッチマン４０Ｂは、ウォッチマン４０Ｂが高速バス６１のトラフィックを監視できるようにであるが、ウォッチマン４０Ｂがサイバーマルウェアメッセージがウォッチマンを通過しないようにすることでサイバーマルウェアメッセージがバス上で伝搬するのをブロックできるようにではなく、高速バス６１に接続される。「バスウォッチマン」４０Ｂ等の傍受するウォッチマンは、メッセージがネットワークに接続されているノードによって受け入れられるまたは使用されることがない範囲までメッセージを壊すためにメッセージを「害する」ことによって、本開示の一実施形態に従って、潜在的に損傷を与えるメッセージが、ウォッチマンが監視する車載ネットワークの一部分で伝搬するのをブロックする。
【００６３】
図２Ｃは、ウォッチマンが本開示の一実施形態に従って接続される車載通信ネットワーク６０の高速バス６１上で伝搬する潜在的に損傷を与えるＣＡＮメッセージに対するウォッチマン４０Ｂによる応答の例のシナリオの流れ図１５０を示す。任意選択でただ１つの通信ポートを有することを除き、ウォッチマン４０Ｂはウォッチマン４Ａについて図２に示される内部構成要素に類似した内部構成要素を有すると仮定される。
【００６４】
ブロック１５２で、ウォッチマン４０Ｂは、高速バス６１で伝搬するＣＡＮメッセージのビットを受信する。決定ブロック１５４で、ウォッチマンのプロセッサ４１はメッセージのＩＤを入念に調べて、メッセージのＩＤが、有利なことに高速バス６１で伝搬するのを許されるべきではない、潜在的に損傷を与えるメッセージのＩＤであるかどうかを判断する。たとえば、ＩＤは、ブラックリストに記載されるメッセージのＩＤ、適切に署名されていないメッセージのＩＤ、または車載通信ネットワーク６０によって使用されるＣＡＮメッセージの受入れ可能なＩＤの目録で既知ではないＩＤである場合がある。メッセージがブロックされるべきであるとウォッチマン４０Ｂが判断する場合、ウォッチマン４０Ｂはブロック１７１に進んで、メッセージが高速バス６１に接続されているノードにとって受入れ不可となるようにメッセージを害し、壊すプロセスを開始する。ブロック１７３で、ウォッチマン４０Ｂは、サイバーハブ２２への将来の考えられるアップロード、参照、ならびに／またはウォッチマンおよび／もしくはサイバーハブによる分析のために、メッセージＩＤおよびメッセージに関連するデータをメモリ４６の中に記録する。
【００６５】
ブロック１７５で、プロセッサ４１は、ウォッチマン４０Ｂに、メッセージを置き換え、壊す目的であるビットを高速バス６１に送信させる。車載ネットワーク６０上でのメッセージ送信を設定するＣＡＮプロトコルはドミナントビットおよびレセッシブビットを使用して、ＣＡＮメッセージを送信する。ドミナントビットは通常「０」ビットであり、レセッシブビットは通常「１」ビットである。ドミナントビットおよびレセッシブビットがＣＡＮネットワークの同じバス、車載ネットワーク６０の係る高速バス６１で同時に送信される場合、ドミナントビットは生き残り、バスに接続されているノードによって受信され、レセッシブビットは生き残らず、ノードによって受信されない。したがって、ブロック１７５で、ウォッチマン４０Ｂのプロセッサ４１は、ウォッチマンに、高速バス６１の上に任意選択で「ポイズンビット」と呼ばれるドミナントビットを送信させ、次いで任意選択でブロック１７７に進んで、高速バス６１で伝搬する望ましくないメッセージを壊し、ブロックするほど十分な数のドミナントビットが送信されたかどうかを判断する。ブロック１７７で、ウォッチマン４０Ｂが十分なポイズンビットを送信していないとプロセッサ４１が判断する場合、プロセッサはブロック１７５に戻り、ウォッチマンに別のドミナントビットを送信させる。ブロック１７７で、メッセージを破壊するために十分な数のドミナント、ポイズンビットが送信されたとプロセッサが判断するまで、ウォッチマン４０Ｂおよびウォッチマン４０Ｂのプロセッサ４１はブロック１７５から１７７を周期的に繰り返す。
【００６６】
ＣＡＮプロトコルに従って、同じビットの中の６個の遮られないシーケンスがＣＡＮメッセージでエラーを生じさせ、メッセージを受信するノードによってメッセージを破棄させる。したがって、ウォッチマン４０Ｂは、高速ハイビット６１で少なくとも６個のドミナントビットを送信して、バス上で伝搬する、プロセッサ４１がブロックされるべきであるとブロック１５４で判断したメッセージを壊し、破壊するために少なくとも５回ブロック１７７からブロック１７５に戻ってよい。
【００６７】
ＣＡＮメッセージは、通常、メッセージのデータ部分の８バイトのデータに続くメッセージの終わりに１５ビットのサイクリックリダンダンシーチェック（ＣＲＣ）コードを含む。本開示の一実施形態では、ＣＡＮメッセージを破壊し、ブロックするために、プロセッサ４１はウォッチマン４０Ｂを制御するために動作して、少なくとも１個のドミナントビットを送信して、メッセージのデータビットを置き換えるよりもむしろ、メッセージの少なくとも１個のパッシブＣＲＣビットを置き換えてよい。たとえば、ウォッチマン４０Ｂは、ＣＡＮメッセージを破壊し、ブロックするために、ドミナント０を送信してＣＲＣのパッシブ１を置き換えてよい。データビットよりむしろＣＲＣビットを置き換えることによって、データビットはブロックされたメッセージの将来の分析のためにメモリ４６（図２Ａ）に記憶されてよい。
【００６８】
少なくとも６個のポイズンビットの送信に続き、プロセッサ４１は、ブロック１３４および１３６に関して図２Ｂを参照して上述されたアクションと同様にブロック１７９から１８１のアクションを実行するために進んで、ポイズンビットの送信によって破壊されるメッセージがサイバーアタックと関連付けられているかどうかを判断し、メッセージがサイバーアタックと関連付けられていると判断される場合、サイバーハブ２２にメッセージを報告する。ブロック１７９で、メッセージがサイバーアタックに関連付けられていないかどうかをプロセッサ４１が判断する場合、プロセッサ４１は任意選択でブロック１８３に進んで、頻度ヒストグラムにＩＤを記録することによってメッセージＩＤを集める、および／またはサイバーハブ２２への将来のアップロードのためにメッセージ全体を記憶する。プロセッサは、次いで任意選択でブロック１６６に進んで、ブロック１５２に戻り、別のＣＡＮメッセージを受信する。
【００６９】
決定ブロック１５４で、たとえばメッセージＩＤがホワイトリストメッセージのメッセージＩＤであるため、メッセージＩＤが、受入れ不可である代わりに受入れ可能であるとプロセッサ４１が判断する場合、プロセッサ４１は任意選択でブロック１５６に進んで、ウォッチマン４０Ｂによって入念に調べられているメッセージがブロックされるべきであるかどうかを判断することに関連することがある車両３０の車両コンテキストデータにアクセスする。任意選択で、コンテキストデータはコンテキスト特長ベクトルの構成要素としてメモリ４６に記憶される。
【００７０】
その後、ブロック１５８から１６２で、プロセッサ４１は高速バス６１で伝搬しているメッセージのビットの任意選択にビット単位のチェックを実施するために進む。ブロック１５８で、プロセッサ４１は、メッセージＩＤビットに続くメッセージの第１のビットをチェックして、第１のビットの値を求める。決定ブロック１６０で、プロセッサは、ブロック１５４でアクセスされた車両コンテキストデータに任意選択で応えて、値に欠陥があり、値が、メッセージが損傷を受けている、または高速バス６１に接続されている制御システム６２から６６の構成要素等のノードに、およびそれによって車両３０に潜在的に損傷を与えていることを示すかどうかを判断する。値が、ビットに欠陥があることを示す場合、プロセッサ４１はブロック１７１に進んで、メッセージを害し、ブロックする。ビットに欠陥がないと判断される場合、プロセッサはブロック１６２に進む。ブロック１６２で、プロセッサ４１は、前回チェックされたビットが、入念に調べられているメッセージの最後のビットであるかどうかを判断する。ビットが最後のビットではない場合、プロセッサはブロック１５８に戻って、メッセージの次のビットに欠陥があるかどうかをチェックする。メッセージの最後のビットのチェック、ならびにビットおよびメッセージに欠陥がないことを発見した後に、任意選択でブロック１６４で、プロセッサ４１はメッセージを許し、ブロック１６４に進んで、ブロック１５２に戻り、次のメッセージを受信し、入念に調べてよい。
【００７１】
以前にチェックされたビットのビット値を含むまたは含まないビット値および関連する車両コンテキストデータが、メッセージに車両３０の効果的で安全な動作に有害となるデータが含まれることを高い確率でまたはある程度の確率で示す場合、プロセッサ４１は、ビットおよびそれによりそのビットを含むメッセージに欠陥があると判断する場合がある。たとえば、ブロック１５８でプロセッサ４１によって以前チェックされたビットの値を考慮して、高い確率で、ビットを含む高速バス６１で伝搬しているメッセージに、ギヤボックス制御６５に対するリバースにシフトする命令が含まれていることをビット値が示していると仮定する。車両３０の車両コンテキストデータが、車両が５０ｋｐｈで前方に移動中であることを示す場合、メッセージは明らかに場違いであり、特に危険である場合がある。係る状況では、プロセッサ４１はビットに欠陥があり、メッセージはブロックされるべきであると判断する。
【００７２】
ウォッチマン４０の検出動作モードで、ウォッチマンはデータおよび／またはコンピュータ実行可能命令、以下、多様なノードのノードソフトウェア、たとえば車載通信ネットワーク６０に接続されるＥＣＵを入念に調べるために動作する。検出モードで、ウォッチマン４０は、エージェント、以下、本開示の一実施形態に従ってノードに組み込まれてよいウォッチマンエージェントと協調してよい。ウォッチマンエージェントは、ハッシュをウォッチマンに送信するチャレンジ要求でウォッチマンによってチャレンジされるときに、ノードメモリでカレントなノードソフトウェアの少なくとも一部分のハッシュを生成するように構成される。ウォッチマンによってなされるチャレンジ要求は、ウォッチマンがエージェントにチャレンジするたびに変わることがあり、したがって予測されるハッシュはすべてのチャレンジについて同じにはならないだろう。結果的に、ノードは、固定され、既知の同じハッシュでウォッチマンのチャレンジに回答するのに成功するためにサイバーアタッカーによって設定可能でなくなる。本開示の一実施形態では、ウォッチマンはサイバーハブ２２に、ハッシュを要求した関連付けられたチャレンジとともにハッシュを送信する。一実施形態では、サイバーハブは、ノードが有さなくてはならないノードソフトウェアのコピーを有し、ノードソフトウェアが、ソフトウェアの正しいバージョンに比して変更されていない、または改ざんされていないという仮定の下に、予想されるハッシュ、以下、ハッシュ基準のコピーを生成できる。サイバーハブは受信したハッシュをハッシュ基準と比較し、受信したハッシュがハッシュ基準と異なる場合、ノードファームウェアが損傷を受けている、または改ざんされていると判断し、任意選択でノードにファームウェアの正しいバージョンを備えさせることを約束する。
【００７３】
本開示の一実施形態では、ウォッチマン４０はハッシュ基準のコピーを有する、またはハッシュ基準のコピーをサイバーハブ２２から受信し、ウォッチマンエージェントから受信されるハッシュをハッシュ基準と比較する。比較が失敗する場合、ウォッチマンはサイバーハブ２２に、ファームウェアが損傷を受けており、交換を必要とすることがあると警告する。本開示の一実施形態では、ウォッチマンは車載通信ネットワーク６０で周期的にウォッチマンエージェントをポーリングして、エージェントが監視するファームウェアが変更されているのか、それとも改ざんされているのかを判断する。
【００７４】
本開示の一実施形態では、ウォッチマン４０はＣＡＮ車載通信ネットワーク６０のオペレーティングシステム内でホストされ、例としてＣＡＮドライバ、ネットワークドライバ、およびｆｏｒｋ（）、ｅｘｅｃ（）、ｓｐａｗｎ（）、およびｏｐｅｎ（）等のシステムコール等のオペレーティングシステム内の位置に接続されている。ホストされている検出動作モードで、ウォッチマンは、フックによって提供される情報を受信することによってオペレーティングシステムのソフトウェアの性能を監視する。情報は、システムに対する潜在的に損傷を与える活動を実行する前にセキュリティ検証を実行するためにウォッチマンを有効にしてよい。
【００７５】
たとえば、ウォッチマンは、例としてテレマティックスユニット７８に含まれるＱＮＸオペレーティングシステム、Ｌｉｎｕｘ（登録商標）オペレーティングシステム、またはＡｎｄｒｏｉｄオペレーティングシステムで接続されてよく、ウォッチマンは、プロセスからの車載ネットワーク６０上での通信トラフィックを許す前に、プロセスが既知のプロセスである（証明書を使用することによって、またはメモリ内および／またはディスク上のプロセスの画像のコンテンツの既知のハッシュを使用することによって検証が行われてよい）こと、ディスク上のそのコードコンテンツがメモリ内と同じであること、実行中のスレッドがすべてコードセクションから（で、データセクションからではなく）実行中であること、プロセスの中にロードされているすべての動的ライブラリが既知であり、許されていること、プロセスが車載ネットワーク６０にアクセスするのを許されていること、およびプロセスが既知のプロセスまたは許されたプロセスによって初期化されたこと、ならびにこのプロセスが車載ネットワーク６０にアクセスするのを許されていることをチェックしてよい。たとえば、車両バスで通信することを希望するシステム内の各プロセスは、デジタル署名された規則のセットをウォッチマンの設定に加えることを要求されることがある。この署名された規則のセットは、ウォッチマンが係るプロセスに暴露してよい指定ＡＰＩを使用して、または関連するプロセスの実行可能ファイルの隣に、ファイルシステムの署名された規則を含むファイルを格納することによってウォッチマンに渡されてよい。
【００７６】
ウォッチマンは不審な行動を検出すると、ウォッチマンが生成するＣＡＮメッセージの送信をブロックするもしくは許す、ならびに／または分析および是正措置のためにサイバーハブ２２に活動を報告してよい。サイバーハブ２２への活動のレポートは、プロセスの疑われるバイナリコード、メモリダンプ、および関連するイベントでのそのスレッドの状態とともに不審な活動を識別するデータを含んでよい。
【００７７】
無効動作モードでは、ウォッチマン４０は、その適合規則の安全な修正が車両バスでの特定のトラフィックを許すことができるようにしてよい。たとえば、通常の動作手順の下で、ウォッチマン４０Ａは、テレマティックスユニット７８からのＣＡＮメッセージが、エンジン制御６２のＥＭＵを制御するのを許さなくてよい。しかし、車両オーナーは車両に乗り込んで車で通勤する前に、寒い冬の日に自宅にいながらにして車両エンジンをオンにできることを希望することがある。この活動を有効にするために、ウォッチマン４０は無効動作モードに設定し、車両オーナーがオーナーの携帯電話を使用してエンジンをオンにできるように構成されてよい。一実施形態で、ウォッチマンは、携帯電話からエンジンをオンにする許可を備えた無効モードに対する要求を受け取って、要求の信頼性を検証した後にだけ無効モードに切り替わる。任意選択で、ウォッチマンは、ウォッチマンが有効にする無効モードを、無効モードに対してウォッチマンが受け取る要求、および無効モードが要求されている活動のタイプに応じて制約する。
【００７８】
たとえば、車両エンジンのリモートターンオンを有効にするために、ウォッチマン４０Ａは、ウォッチマン４０Ａがテレマティックスユニット７８から、高速バス６１へ通過するのを許すＣＡＮメッセージの時間および／または数および／またはコンテンツで無効モードを制限してよい。任意選択で、ウォッチマン４０Ａは、リモートターンオン無効を５分に、およびエンジンをオンにするために概して必要とされるＣＡＮメッセージの数に制限する。無効命令を受信すると、ウォッチマンは、ウォッチマンの決定木に規則を追加してよい、または指定された特定のトラフィックに対して絶好のチャンスが開かれていることを示すためにその内部状態を変更してよい。無効モードは、たとえば、車両でのリモート診断セッションまたは車両でのＯＴＡファームウェア更新を可能にするために使用されてよい。ホストされているウォッチマンはアプリケーションに特有の無効命令を受け入れてよい。
【００７９】
決定規則の特定のセットは、通常は１つのＣＡＮセグメントに対するアクセスだけを必要とし、通常はこのセグメントに対する限られたアクセスだけを必要とする、悪意のある第３者のＯＢＤＩＩドングル、傷つけられた第３者のＯＢＤＩＩドングル、または誤動作している第３者のＯＢＤＩＩドングルから車両を保護するために使用されてよい。たとえば、ウォッチマンは車両のＯＢＤＩＩポートに、もしくは第３者のＯＢＤＤＩドングルに埋め込まれることもあれば、車両のＯＢＤＩＩポートと第３者のドングルとの間に置かれてよいスタンドアロン装置として実装されることもある。係るウォッチマンは、メッセージが車両からドングルに通過することだけを許し、逆に通過することは許さないように構成されてよい。任意選択で、係るウォッチマンはドングルが統一診断システム規格に従ってＰＩＤを読み書きすることだけを許すように構成されてよい。任意選択で、係るウォッチマンは、たとえば高速バス等、ウォッチマンがその通常の動作のために必要とした特定のＣＡＮセグメントに第３者のドングルを物理的に制限してよい。
【００８０】
したがって、本開示の一実施形態に従って、車載通信ネットワークにセキュリティを提供するためのシステムが提供され、システムは、データ監視処理ハブ、ならびにハブと通信するように構成され、バスおよびバスに接続された少なくとも１つのノードを有する車両の車載ネットワークの一部分に接続されるように構成された少なくとも１つのモジュールを含み、モジュールは、一部分で伝搬する通信トラフィックのメッセージを監視するため、車載ネットワークのサイバーアタックからの損傷への暴露を示す監視されたメッセージの異常なメッセージを識別するため、車載ネットワークの異常なメッセージに影響を及ぼすアクションをとるため、および処理のためにハブにメッセージに応じたデータを送信するために実行可能なソフトウェアを含む。
【００８１】
任意選択で、少なくとも１つのモジュールは規則に基づいたモジュールであり、ソフトウェアは、異常なメッセージを識別することに応えてとられてよい応答アクションのメニュー、およびメッセージを受信することに応えてモジュールによってとられるメニューの中の応答アクションを決定するための基準として、または決定するための基準を確立する上で使用されてよい適合規則のセットを含む。任意選択で、適合規則および応答アクションは、少なくとも１つのメモリの内のメモリに記憶される枝を有する決定木内に構成される。任意選択で、モジュールは異常なメッセージの特長に応じて決定木を横断し、異常なメッセージに応えてモジュールによってとられるアクションで終了する決定木の枝に沿ってナビゲートするように構成される。任意選択で、決定木を横断することは、決定木の第１の枝から第２の枝にジャンプすることを含む。任意選択で、ライブラリの応答アクションは、メッセージを許すこと、メッセージをブロックすること、メッセージを遅延させること、メッセージの頻度を制限すること、モジュールに含まれるメモリにメッセージを記録すること、車両の状態を表す状態特長ベクトルの成分を変更すること、および／またはメッセージに応じて警報を発することから選ばれる少なくとも１つの応答アクションまたは複数の応答アクションの任意の組合せを含む。
【００８２】
本開示の一実施形態では、適当規則は、メッセージＩＤを決定する、車載ネットワークの部分でメッセージが送信される送信頻度を決定する、車両の状態を決定する、または車載ネットワークの状態を決定するから選ばれる少なくとも１つの適合規則または複数の適合規則の任意の組合せを含む。
【００８３】
本開示の一実施形態では、モジュールは、少なくとも１つのノードがメッセージを廃棄するように、モジュールが監視するメッセージを改変するためにモジュールが接続される車載ネットワークの部分に信号を送信するように構成される。
【００８４】
本開示の一実施形態では、モジュールは、モジュールが車載通信ネットワークのノードと通信するために車載ネットワークの外のエンティティを有効にする無効動作モードに切り替わるように構成される。
【００８５】
本開示の一実施形態では、システムは車載通信ネットワークのノードに接続され、ノードを監視するように構成された少なくとも１つのエージェントを有する。任意選択で、ノードは、ノードがソフトウェアに応じて動作を実行するソフトウェアを含み、エージェントはソフトウェアの少なくとも一部分のハッシュを生成するように構成される。任意選択で、少なくとも１つのモジュールの内のモジュールは、エージェントが少なくとも１つのモジュールにノードソフトウェアの少なくとも一部分のハッシュを送信することを要求するチャレンジを、少なくとも１つのエージェントの内のエージェントに送信するように構成される。任意選択で、モジュールは、エージェントから受け取られたハッシュがソフトウェアの正しいバージョンに応じて生成されるかどうかを判断する。任意選択で、モジュールは、ハッシュがソフトウェアの正しいバージョンに応じて生成されるかどうかの判断のために、エージェントから受信されるハッシュをハブに送信するように構成される。
【００８６】
本開示の一実施形態では、少なくとも１つのモジュールは、少なくとも１つのモジュールが監視する複数のメッセージからデータを蓄積し、記憶するように構成される。任意選択で、モジュールはモジュールが蓄積するデータをハブに送信するように構成される。さらにまたは代わりに、モジュールはデータに応えて少なくとも１つのヒストグラムを生成するように構成される。任意選択で、少なくとも１つのヒストグラムは少なくとも１つのメッセージ頻度ヒストグラムを含む。任意選択で、少なくとも１つのメッセージ頻度ヒストグラムは、メッセージＩＤのメッセージ頻度ヒストグラム、車載通信ネットワークに接続される特定のノードにまたは特定のノードから送信されるメッセージのメッセージ頻度ヒストグラム、または特定の命令または特定の命令の部分を含むメッセージ頻度の内の少なくとも１つ、または複数の任意の組合せを含む。
【００８７】
本開示の一実施形態では、モジュールはハブに少なくとも１つのヒストグラムのヒストグラムを送信するように構成される。
【００８８】
本開示の一実施形態では、モジュールは、モジュールが蓄積したデータをモジュールがハブに送信すべきかどうかに関してハブにクエリーを送信するように構成される。
【００８９】
本開示の一実施形態では、ハブは、モジュールが蓄積したデータをハブに送るという要求をモジュールに送信するように構成されてよい。
【００９０】
本開示の一実施形態では、ハブは、ハブがモジュールから受信するデータに応えて、モジュール内のソフトウェアを変更するために動作する信号を生成し、送信するように構成される。本開示の一実施形態では、少なくとも１つのモジュールが複数のモジュールを含む。任意選択で、複数のモジュールは、無線ローカルネットワークで互いと通信するように接続される。
【００９１】
本開示の一実施形態では、モジュールは、車載ネットワークのノードのソフトウェアと統合されてよいソフトウェアモジュールである。
【００９２】
本開示の一実施形態では、モジュールは、車載ネットワークの部分に接続されるように構成された物理ポートを含むハードウェアモジュールである。
【００９３】
本開示の一実施形態では、少なくとも１つのモジュールが複数のモジュールを含み、複数のモジュールのそれぞれは異なる車両の車載通信システムに接続される。任意選択で、ハブは複数のモジュールのそれぞれからデータを受信し、複数のモジュールの内の少なくとも１つでソフトウェアを変更するために動作する、データに応じた信号を生成し、送信するように構成される。
【００９４】
本願の説明および特許請求の範囲では、動詞「含む」、「含む」および「有する」、ならびにその同根語のそれぞれは、動詞の１つまたは複数の目的語が必ずしも動詞の１つまたは複数の主語の構成要素、要素、または部分の完全なリストではないことを示すために使用される。
【００９５】
本願での本発明の実施形態の説明は、例として示され、本発明の範囲を制限することを目的としていない。説明されている実施形態は異なる特長を含み、異なる特長のすべてがすべての実施形態で必要とされるわけではない。いくつかの実施形態は特長のいくつか、または特長の考えられる組合せだけしか活用しない。説明される本発明の実施形態の変形形態、および説明されている実施形態に注記される特長の異なる組合せを含む実施形態が、当業者に思い浮かぶだろう。本発明の範囲は特許請求の範囲によってのみ制限される。
【図１Ａ】
2019013007.tif 000003
【図１Ｂ】
2019013007.tif 000004
【図２Ａ】
2019013007.tif 000005
【図２Ｂ】
2019013007.tif 000006
【図２Ｃ】
2019013007.tif 000007