IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ バテル メモリアル インスティチュートの特許一覧

<>
  • 特表-CANバス保護システムおよび方法 図1
  • 特表-CANバス保護システムおよび方法 図2
  • 特表-CANバス保護システムおよび方法 図3
  • 特表-CANバス保護システムおよび方法 図4
  • 特表-CANバス保護システムおよび方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-09-30
(54)【発明の名称】CANバス保護システムおよび方法
(51)【国際特許分類】
   G06F 21/55 20130101AFI20220922BHJP
【FI】
G06F21/55
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022504153
(86)(22)【出願日】2020-07-22
(85)【翻訳文提出日】2022-03-15
(86)【国際出願番号】 US2020042995
(87)【国際公開番号】W WO2021016307
(87)【国際公開日】2021-01-28
(31)【優先権主張番号】62/878,419
(32)【優先日】2019-07-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591072086
【氏名又は名称】バテル メモリアル インスティチュート
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】ウィー, コリン
(72)【発明者】
【氏名】ロベルド, イアン
(72)【発明者】
【氏名】ソーントン, ダグラス エー.
(57)【要約】
CANバス信号フォーマット推論は、訓練CANバスメッセージトラフィックから候補信号を抽出することと、1つ以上の信号を定義することであって、各信号は、合致するデータタイプの構造的特性に合致する候補信号であり、各信号は、合致するデータタイプを割り当てられる、ことと、定義された1つ以上の信号が準拠する、推論されたCANバスプロトコルを発生させることとを含む。信号が、推論されたCANバスプロトコルを使用して、CANバスメッセージトラフィックから抽出され、抽出された信号の異常が、検出され、検出された異常を示すアラートが、発生される。別の側面では、トランスポートプロトコル(TP)信号が、機械言語命令セットのオペコードに合致するTP信号の割合を判定するために抽出および分析され、異常が、少なくとも部分的に、判定された割合がオペコード異常閾値を超えることに基づいて検出される。
【選択図】図1
【特許請求の範囲】
【請求項1】
電子デバイスであって、
コントローラエリアネットワーク(CAN)バスと通信可能に結合される、電子プロセッサと、
複数のCANバスプロトコルを表す記述子ファイルと、CANバスセキュリティ方法を実施するために前記電子プロセッサによって可読かつ実行可能な命令とを記憶する、非一過性記憶媒体であって、前記方法は、
前記CANバス上のCANバスメッセージトラフィックから信号を抽出することであって、各抽出された信号は、前記複数のCANバスプロトコルのうちの1つに準拠する、ことと、
抽出された信号の異常を検出することと、
前記検出された異常を示すアラートを発生させることと
を含む、非一過性記憶媒体と
を備える、電子デバイス。
【請求項2】
訓練CANバスメッセージトラフィックから候補信号を抽出することであって、各候補信号は、前記CANバスメッセージトラフィック内のデータビットの順序付けられたグループの繰り返しの時間シーケンスであり、前記データビットの順序付けられたグループは、1つ以上のメッセージヘッダによって区切られる、ことと、
1つ以上の信号を定義することであって、各信号は、合致するデータタイプの構造的特性に合致する候補信号であり、各信号は、前記合致するデータタイプを割り当てられる、ことと、
前記定義された1つ以上の信号が準拠する、推論されたCANバス信号フォーマットを表す記述子ファイルを発生させることと
を含む、CANバス信号フォーマット推論方法を実施するように構成される、電子機器をさらに備え、
前記複数のCANバスプロトコルは、前記推論されたCANバス信号フォーマットを含み、
前記電子機器は、(i)前記電子プロセッサ、および前記CANバス信号フォーマット推論方法を実施するために前記電子プロセッサによって可読かつ実行可能な命令をさらに記憶する、前記非一過性記憶媒体、および/または(ii)前記電子プロセッサと異なる訓練電子プロセッサ、および前記非一過性記憶媒体と異なり、前記CANバス信号フォーマット推論方法を実施するために前記訓練電子プロセッサによって可読かつ実行可能な命令を記憶する、訓練非一過性記憶媒体のうちの少なくとも1つを備える、請求項1に記載の電子デバイス。
【請求項3】
前記1つ以上の信号を定義することは、
カウンタデータタイプを割り当てられた信号を、前記カウンタデータタイプによって定義された前記データビットの順序付けられたグループの値が、前記データビットの順序付けられたグループの時間シーケンスにわたって単調に増加する、または単調に減少する、前記カウンタデータタイプの構造的特性に合致する候補信号として定義することを含む、請求項2に記載の電子デバイス。
【請求項4】
前記1つ以上の信号を定義することは、
定数データタイプを割り当てられた信号を、前記データビットの順序付けられたグループの値が、前記データビットの順序付けられたグループの時間シーケンスにわたって一定である、前記定数データタイプの構造的特性に合致する候補信号として定義することを含む、請求項2-3のいずれか1項に記載の電子デバイス。
【請求項5】
前記1つ以上の信号を定義することは、
指数および仮数を有する浮動小数点データタイプを割り当てられた信号を、
16、32、または64ビットである前記データビットの順序付けられたグループと、
前記浮動小数点データタイプの仮数を表す前記データビットの順序付けられたグループの第2のサブセットよりも前記時間シーケンスにわたって低いエントロピを有する、前記浮動小数点データタイプの指数を表す前記データビットの順序付けられたグループの第1のサブセットと
を含む、前記浮動小数点データタイプの構造的特性に合致する候補信号として定義することを含む、請求項2-4のいずれか1項に記載の電子デバイス。
【請求項6】
前記1つ以上の信号を定義することは、
整数データタイプを割り当てられた信号を、
4、8、12、16、または32ビットである前記データビットの順序付けられたグループと、
前記整数データタイプの最下位ビットを表す前記データビットの順序付けられたグループの第2のサブセットよりも前記時間シーケンスにわたって低いエントロピを有する、前記整数データタイプの最上位ビットを表す前記データビットの順序付けられたグループの第1のサブセットと
を含む、前記整数データタイプの構造的特性に合致する候補信号として定義することを含む、請求項2-5のいずれか1項に記載の電子デバイス。
【請求項7】
前記整数データタイプを割り当てられた前記信号を定義することは、
連続性基準を満たす前記時間シーケンスにわたる連続性を有する、前記整数データタイプによって定義された前記データビットの順序付けられたグループの値と、
エントロピ基準を満たす前記時間シーケンスにわたる連続性を有する、前記整数データタイプによって定義された前記データビットの順序付けられたグループの値と
をさらに含む、前記整数データタイプの前記構造的特性に合致する、請求項6に記載の電子デバイス。
【請求項8】
前記1つ以上の信号を定義することは、
ビットフィールドデータタイプを割り当てられた信号を、前記データビットの順序付けられたグループの値が、バイナリ状態を示す、前記ビットフィールドデータタイプの構造的特性に合致する候補信号として定義することを含む、請求項2-7のいずれかに記載の電子デバイス。
【請求項9】
前記抽出することは、初期時間間隔にわたって実施され、
前記検出することは、前記初期時間間隔に続く後の時間間隔にわたって、前記複数のCANバスプロトコルのうちの準拠する1つからの前記抽出された信号のうちの1つの逸脱を検出することを含む、請求項1-8のいずれか1項に記載の電子デバイス。
【請求項10】
前記記述子ファイルは、DBCファイルである、請求項1-9のいずれか1項に記載の電子デバイス。
【請求項11】
前記非一過性記憶媒体はさらに、1つ以上の機械言語命令セットを記憶し、各機械言語命令セットは、オペコードのセットを備え、
前記抽出することは、CAN-TPプロトコルに準拠する複数のメッセージのデータバイトを備える、トランスポートプロトコル(TP)信号を抽出することを含み、
前記検出することは、
前記1つ以上の機械言語命令セットの機械言語命令セット毎に、前記機械言語命令セットのオペコードに合致する前記TP信号の割合を判定することと、
少なくとも部分的に、前記判定された割合のうちの少なくとも1つがオペコード異常閾値を超えることに基づいて、異常を検出することと
を含む、請求項1-10のいずれか1項に記載の電子デバイス。
【請求項12】
電子デバイスであって、
コントローラエリアネットワーク(CAN)バスと通信可能に結合される、電子プロセッサと、
(i)各機械言語命令セットが、オペコードのセットを備える、1つ以上の機械言語命令セットと、(ii)CANバスセキュリティ方法を実施するために前記電子プロセッサによって可読かつ実行可能な命令とを記憶する、非一過性記憶媒体であって、前記方法は、
前記CANバス上のCANバスメッセージトラフィックからCAN-TPプロトコルに準拠する複数のメッセージのデータバイトを備える、トランスポートプロトコル(TP)信号を抽出することと、
前記1つ以上の機械言語命令セットの機械言語命令セット毎に、前記機械言語命令セットのオペコードに合致する前記TP信号の割合を判定することと、
少なくとも部分的に、前記判定された割合のうちの少なくとも1つがオペコード異常閾値を超えることに基づいて、異常を検出することと
を含む、非一過性記憶媒体と
を備える、電子デバイス。
【請求項13】
前記検出することは、
前記TP信号を前記機械言語命令セットのオペコードと合致させる前に、前記TP信号のバイトに対してエンディアン補正を実施することを含む、請求項12に記載の電子デバイス。
【請求項14】
前記検出することは、
前記TP信号を前記機械言語命令セットのオペコードと合致させる前に、前記TP信号のバイトに対してバイトローテーションを実施することを含む、請求項12-13のいずれか1項に記載の電子デバイス。
【請求項15】
前記検出することは、
(I)前記判定された割合のうちの少なくとも1つが、オペコード異常閾値を超え、(II)前記TP信号が、許可されたファームウェア更新として識別されない場合、異常を検出することを含む、請求項12-14のいずれか1項に記載の電子デバイス。
【請求項16】
CANバス信号フォーマット推論方法を実施するために少なくとも1つの電子プロセッサによって可読かつ実行可能な命令を記憶する非一過性記憶媒体であって、前記方法は、
訓練CANバスメッセージトラフィックから候補信号を抽出することであって、各候補信号は、前記CANバスメッセージトラフィック内のデータビットの順序付けられたグループの繰り返しの時間シーケンスであり、前記データビットの順序付けられたグループは、1つ以上のメッセージヘッダによって区切られる、ことと、
1つ以上の信号を定義することであって、各信号は、合致するデータタイプの構造的特性に合致する候補信号であり、各信号は、前記合致するデータタイプを割り当てられる、ことと、
前記定義された1つ以上の信号が準拠する、推論されたCANバスプロトコルを発生させることと
を含む、非一過性記憶媒体。
【請求項17】
前記1つ以上の信号を定義することは、
カウンタデータタイプを割り当てられた信号を、前記カウンタデータタイプによって定義された前記データビットの順序付けられたグループの値が、前記データビットの順序付けられたグループの時間シーケンスにわたって単調に増加する、または単調に減少する、前記カウンタデータタイプの構造的特性に合致する候補信号として定義することを含む、請求項16に記載の非一過性記憶媒体。
【請求項18】
前記1つ以上の信号を定義することは、
定数データタイプを割り当てられた信号を、前記データビットの順序付けられたグループの値が、前記データビットの順序付けられたグループの時間シーケンスにわたって一定である、前記定数データタイプの構造的特性に合致する候補信号として定義することを含む、請求項16-17のいずれか1項に記載の非一過性記憶媒体。
【請求項19】
前記1つ以上の信号を定義することは、
指数および仮数を有する浮動小数点データタイプを割り当てられた信号を、
16、32、または64ビットである前記データビットの順序付けられたグループと、
前記浮動小数点データタイプの仮数を表す前記データビットの順序付けられたグループの第2のサブセットよりも前記時間シーケンスにわたって低いエントロピを有する、前記浮動小数点データタイプの指数を表す前記データビットの順序付けられたグループの第1のサブセットと
を含む、前記浮動小数点データタイプの構造的特性に合致する候補信号として定義することを含む、請求項16-18のいずれか1項に記載の非一過性記憶媒体。
【請求項20】
前記1つ以上の信号を定義することは、
整数データタイプを割り当てられた信号を、
4、8、12、16、または32ビットである前記データビットの順序付けられたグループと、
前記整数データタイプの最下位ビットを表す前記データビットの順序付けられたグループの第2のサブセットよりも前記時間シーケンスにわたって低いエントロピを有する、前記整数データタイプの最上位ビットを表す前記データビットの順序付けられたグループの第1のサブセットと
を含む、前記整数データタイプの構造的特性に合致する候補信号として定義することを含む、請求項16-19のいずれか1項に記載の非一過性記憶媒体。
【請求項21】
前記整数データタイプを割り当てられた前記信号を定義することは、
連続性基準を満たす前記時間シーケンスにわたる連続性を有する、前記整数データタイプによって定義された前記データビットの順序付けられたグループの値と、
エントロピ基準を満たす前記時間シーケンスにわたる連続性を有する、前記整数データタイプによって定義された前記データビットの順序付けられたグループの値と
をさらに含む、前記整数データタイプの前記構造的特性に合致する、請求項20に記載の非一過性記憶媒体。
【請求項22】
前記1つ以上の信号を定義することは、
ビットフィールドデータタイプを割り当てられた信号を、前記データビットの順序付けられたグループの値が、バイナリ状態を示す、前記ビットフィールドデータタイプの構造的特性に合致する候補信号として定義することを含む、請求項16-19のいずれか1項に記載の非一過性記憶媒体。
【請求項23】
CANバス上のCANバスメッセージトラフィックから信号を抽出することであって、前記抽出された信号は、前記推論されたCANバスプロトコルに準拠する、ことと、
前記抽出された信号の異常を検出することと、
前記検出された異常を示すアラートを発生させることと
を含む、CANバス信号フォーマット推論方法を実施するために少なくとも1つの電子プロセッサによって可読かつ実行可能な命令をさらに記憶する、請求項16-22のいずれか1項に記載の非一過性記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、参照することによってその全体として本明細書に組み込まれる、2019年7月25日に出願され、「CAN BUS PROTECTION SYSTEMS AND METHODS」と題された、米国仮特許出願第62/878,419号の利益を主張する。
【0002】
以下は、電子データネットワークセキュリティ技術、コントローラエリアネットワーク(CAN)セキュリティ技術、電子制御ユニット(ECU)セキュリティ技術、地上車両電子セキュリティ技術、水上車両電子セキュリティ技術、宇宙車両電子セキュリティ技術、および同等物に関する。
【背景技術】
【0003】
(背景)
現代の車両は、アンチブレーキシステム(ABS)モジュール、機関制御モジュール、および操向、スロットル、走行制御、気候制御システム、ならびに種々の他の車両機能を制御するためのモジュール等のモジュール化された電子コンポーネントを採用する。これらのモジュールは、CANバスを用いて相互通信する。車両エンターテインメントシステム、ナビゲーションシステム等の補助システムもまた、時として、CANバスに接続されるECUを含む。アプリケーション層におけるCANバスを経由する通信は、アービトレーション識別子(ARB ID)と、最大8のデータバイトとから成る。ARB IDは、メッセージ内に含有されるデータの意味を示す。例えば、車輪速度は、4つの車輪毎の回転速度を表す2バイトのデータを伴うARB ID 0x354上に含有され得る。車輪速度を把握する必要性を有する車両上の全てのECUは、ARB ID 0x354を車輪速度と関連付けるようにプログラムされる。データバイトによって伝えられる情報は、信号と称される。メッセージあたり最大8バイトを用いて、単一のメッセージが、最大8バイトの任意の信号を伝えることができる。さらに、単一のメッセージが、個々の信号が、8よりも少ないバイトによって表される場合、2つ以上の信号を伝えることができる(それぞれ、単一のバイトから成る、最大8つの信号)。逆に、8を上回るバイトを要求する信号が、2つ以上のメッセージによって伝えられることができる。そのような状況の実施例は、ファームウェア更新をECUに送信することである。ファームウェア更新は、単一の信号と見なされるが、数百、数千、またはそれを上回るバイトから成り得るものであり得る。そのような状況に対処するために、CAN-TPプロトコル(「TP」は、「転送プロトコル」を示す)として公知である、アプリケーション層CANプロトコルが、複数のメッセージを介してファームウェア更新等のより長い信号を送信することを可能にする。国際規格ISO 15765-2(ISO-TPとしても公知である)は、CAN-TPプロトコルの一般的実装であるが、しかしながら、同一の機能を達成する他のプロトコルも、存在する。
【0004】
CANバスは、有利なこととして、新しい電子コンポーネントのアドホック追加を可能にする。これは、異なる特徴を伴う様々なモデルにおける車両を販売する自動車製造業者にとって理想的であり、加えて、(例えば)アフターマーケット音響システムを供給するアフターマーケット製造業者にとっても理想的である。
【0005】
しかしながら、本オープンアーキテクチャは、セキュリティ課題を導入する。CANバス上の任意のECU(またはより一般的に、CANバス上の任意の電子デバイス)が、CANバスと接続され得(もしくはCANバスとすでに接続されているECUが、セキュリティ侵害され得)、次いで、CANバス上でメッセージを伝送し得、これらのメッセージは、CANバス上で全てのECUまたは他の電子デバイスによって受信される。メッセージは、セキュアな様式で送信者を識別するための認証を含まない。したがって、デバイスが、正当な伝送において使用されるものと同一のARB IDヘッダおよびペイロードフォーマットを採用することによって、正当な伝送を模倣するようにプログラムされるCANバス(またはそのようにプログラムされるようにセキュリティ侵害される既存のデバイス)に追加され、それによって、CANバスを介して、不正な、潜在的に悪意のある活動を実施することに対して、いかなる障壁も、存在しない。そのような悪意のある活動は、データの不正な収集から、危険なスロットルまたは制動アクションを誘発すること等の潜在的に生命を危うくするアクションに及び得る。CAN-TP伝送のペイロード容量が大きくなると、悪意のあるコードをECUに伝送し、それによって、ECUのファームウェアをハッキングし、悪意のある行為を実施するようにこれを再プログラムする潜在性さえも、存在する。
【0006】
2017年10月17日に発行され、「Anomaly Detection for Vehicular Networks for Intrusion and Malfunction Detection」と題された、Harris et al.の米国特許第9,792,435号が、参照することによってその全体として本明細書に組み込まれる。2018年9月25日に発行され、「Temporal Anomaly Detection on Automotive Networks」と題された、Sonalker et al.の米国特許第10,083,071号が、参照することによってその全体として本明細書に組み込まれる。これらの特許は、CANバス上で異常なメッセージングを検出し、それによって、CANバス上の潜在的に悪意のある活動のアラートを提供するためのいくつかのアプローチを説明している。
故に、CANアーキテクチャのセキュリティおよび応答性に対するある改良が、本明細書に提供される。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】米国特許第9,792,435号公報
【特許文献2】米国特許第10,083,071号公報
【発明の概要】
【課題を解決するための手段】
【0008】
(簡単な要約)
本明細書に開示されるいくつかの例証的実施形態によると、電子デバイスは、コントローラエリアネットワーク(CAN)バスと通信可能に結合される、電子プロセッサと、複数のCANバスプロトコルを表す記述子ファイルおよびCANバスセキュリティ方法を実施するために電子プロセッサによって可読かつ実行可能な命令を記憶する、非一過性記憶媒体とを備える。本方法は、CANバス上のCANバスメッセージトラフィックから信号を抽出することであって、各抽出された信号は、複数のCANバスプロトコルのうちの1つに準拠する、ことと、抽出された信号の異常を検出することと、検出された異常を示すアラートを発生させることとを含む。
【0009】
いくつかの実施形態では、直前の段落の電子デバイスはさらに、訓練CANバスメッセージトラフィックから候補信号を抽出することであって、各候補信号は、CANバスメッセージトラフィック内のデータビットの順序付けられたグループの繰り返しの時間シーケンスであり、データビットの順序付けられたグループは、1つ以上のメッセージヘッダによって区切られる、ことと、1つ以上の信号を定義することであって、各信号は、合致するデータタイプの構造的特性に合致する候補信号であり、各信号は、合致するデータタイプを割り当てられる、ことと、定義された1つ以上の信号が準拠する、推論されたCANバス信号フォーマットを表す記述子ファイルを発生させることとを含む、CANバス信号フォーマット推論方法を実施するように構成される、電子機器を備える。直前の段落に言及される複数のCANバスプロトコルは、次いで、推論されたCANバス信号フォーマットを含む。電子機器は、電子プロセッサと、記憶媒体がさらに、CANバス信号フォーマット推論方法を実施するために電子プロセッサによって可読かつ実行可能な命令を記憶する、直前の段落の非一過性記憶媒体とを備えてもよい、および/または直前の段落の電子プロセッサと異なる訓練電子プロセッサと、訓練記憶媒体が、CANバス信号フォーマット推論方法を実施するために訓練電子プロセッサによって可読かつ実行可能な命令を記憶する、直前の段落の非一過性記憶媒体と異なる訓練非一過性記憶媒体とを備えてもよい。
【0010】
本明細書に開示されるいくつかの例証的実施形態によると、非一過性記憶媒体は、訓練CANバスメッセージトラフィックから候補信号を抽出することであって、各候補信号は、CANバスメッセージトラフィック内のデータビットの順序付けられたグループの繰り返しの時間シーケンスであり、データビットの順序付けられたグループは、1つ以上のメッセージヘッダによって区切られる、ことと、1つ以上の信号を定義することであって、各信号は、合致するデータタイプの構造的特性に合致する候補信号であり、各信号は、合致するデータタイプを割り当てられる、ことと、定義された1つ以上の信号が準拠する、推論されたCANバス信号フォーマットを発生させることとを含む、CANバス信号フォーマット推論方法を実施するために少なくとも1つの電子プロセッサによって可読かつ実行可能な命令を記憶する。
【0011】
本明細書に開示されるいくつかの例証的実施形態によると、電子デバイスは、コントローラエリアネットワーク(CAN)バスと接続可能な電子プロセッサと、(i)各機械言語命令セットが、オペコードのセットを備える、1つ以上の機械言語命令セットと、(ii)CANバスセキュリティ方法を実施するために電子プロセッサによって可読かつ実行可能な命令とを記憶する、非一過性記憶媒体とを備える。本方法は、CANバス上のCANバスメッセージトラフィックからCAN TPプロトコルに準拠する複数のメッセージのデータバイトを備える、トランスポートプロトコル(TP)信号を抽出することと、1つ以上の機械言語命令セットの機械言語命令セット毎に、機械言語命令セットのオペコードに合致するTP信号の割合を判定することと、少なくとも部分的に、判定された割合のうちの少なくとも1つがオペコード異常閾値を超えることに基づいて、異常を検出することとを含む。
【図面の簡単な説明】
【0012】
図面に示される任意の定量的寸法は、非限定的な例証的実施例として理解されるものである。別様に示されない限り、図面は、縮尺通りではなく、図面の任意の側面が、縮尺通りであるとして示される場合、図示される縮尺は、非限定的な例証的実施例として理解されるものである。
【0013】
図1図1は、CANバスを有する車両の図式的表現、および本明細書に開示されるような異常検出の実施形態を実装する、CANバス上の1つのECUの機能図を提示する。
【0014】
図2図2は、図1の独自CANバス信号フォーマット推論ブロックの例証的実施形態を図式的に示す。
【0015】
図3図3は、図1の信号抽出ブロックの例証的実施形態を図式的に示す。
【0016】
図4図4は、図1のオペコード検出器ブロックの例証的実施形態を図式的に示す。
【0017】
図5図5は、図4に示されるオペコード検出器の拡大された表現を図式的に示す。
【発明を実施するための形態】
【0018】
(詳細な説明)
CANバスセキュリティの文脈における異常検出の目標は、疑わしいと見なされ得るCANバス上の異常なメッセージを検出することである。本アプローチは、CANバス上のトラフィックを監視する一般的なセキュリティコンポーネントから見ると、CANバスメッセージの情報コンテンツが、概して、未知であるため、採用される。したがって、通常ではない、すなわち、異常なメッセージの検出は、情報コンテンツの知識に基づく検出のための代用物としての役割を果たす。加えて、検出された異常は、コンポーネント故障の予示を表し、保守問題と関連付けられ得る。
【0019】
CANバスは、広い範囲の上位層信号フォーマットをサポートし得る、物理的トランスポート層を提供する。信号の信号フォーマットは、信号と関連付けられるメッセージヘッダ(例えば、具体的ARB IDまたはその部分)を識別し、信号が準拠する構造的表現を定義する。構造的表現は、典型的には、データタイプ(例えば、カウンタ、定数、整数、浮動小数点)と、バイトカウント、エンディアン等の関連付けられる性質とを含む。これらの上位層信号フォーマットのうちのいくつかは、信号フォーマットがDBCファイルまたは他の信号フォーマット記憶装置として公的に利用可能である、公開されたプロトコルである。公開されたCANバスプロトコルのいくつかの実施例は、SAE J1939、ISO14229、MilCAN等を含む。公開されたCANバスプロトコルの場合であっても、異常の検出は、メッセージの情報コンテンツが、例えば、公開されたプロトコルの一部が、独自データに関して留保されるとき、常に把握されるわけではないため、困難である。それにもかかわらず、公開されたプロトコルの知識は、伝えられている信号の信号フォーマットに関する情報を提供する。例えば、公開されたプロトコルの知識は、異常検出が、メッセージのデータバイトの所与のセットが整数データタイプの(または浮動小数点データタイプ等の)信号を表すことを認識することを可能にする。本知識は、予期せぬ信号値に基づいて等、より洗練された異常検出を可能にする。
【0020】
しかしながら、いくつかのECUは、その信号フォーマットが公的に把握されていない独自信号を使用して、CANバス上で通信する。この場合では、情報コンテンツが、未知であるだけではなく、信号フォーマットさえも、未知である。これは、実質的に、異常検出に関する課題を増加させる。Harris et al.の米国特許第9,792,435号およびSonalker et al.の米国特許第10,083,071号に開示されるもの等の信号非依存異常検出器が、構築されることができる。しかしながら、信号およびそれらの信号フォーマットに関する付加的情報は、より高度な異常検出を可能にするであろう。
【0021】
本明細書に開示されるいくつかの異常検出アプローチは、データが、概して、構造化される方法の知識が、独自メッセージ内の構造を推論するために使用され得るという本明細書で行われる洞察を活用する。構造を推論することによって、基礎データは、CANバスメッセージ内で伝えられる信号の識別および信号のデータタイプを含む、構造化データとして扱われる。構造の本知識は、訓練時間を減少させ、下流の異常検出アルゴリズムの有効性を増加させることができる。信号抽出のための開示されるアプローチは、基礎データが構造化される(すなわち、指定された信号フォーマットの信号から構成される)が、その構造が未知である、独自信号フォーマットに適用可能である。開示される信号抽出は、基礎データの情報コンテンツを抽出せず、むしろ、信号およびそれらのデータタイプを抽出する。信号抽出は、CANバストラフィック上で訓練され、本訓練は、オフラインおよび/またはオンラインで行われることができる(例えば、信号抽出をリアルタイムで微調整するための適応訓練)。本方法は、復号化キーが、存在し、メッセージおよび/または信号が、信号抽出段階に先立って、もしくはその間に復号化されるという条件で、CANバス上のメッセージが、暗号化される場合、依然として機能することができる。
【0022】
悪意のある攻撃の特に関連するモダリティは、ECUにコードを実行させる様式におけるECUへの実行可能コードの潜在的配信である。これは、種々の方法で行われることができる。1つのアプローチでは、ECUファームウェアが、例えば、CAN-TPを使用して、CANバスを介して更新可能である場合、攻撃者は、正当ではないファームウェア更新をECUに伝送することができ、これは、CANバスを介したファームウェア更新のための設計ベースプロトコルに従う。別のアプローチでは、CAN-TPは、不良に設計されたECU処理アーキテクチャにおけるスタックオーバーフローまたは他のメモリリークにつながる実行可能コードの大きいブロックを伝送することができ、オーバーフローまたはメモリリークされた実行可能コードは、次いで、ECUによって実行され得る。これらは、単に、本タイプの攻撃のいくつかの非限定的実施例である。
【0023】
本明細書に開示されるいくつかの異常検出アプローチは、これに正当ではないコードを実行させる目的のために正当ではない実行可能コードをECUに伝送する確かな試みであり得る、異常を検出するように設計される。これらのアプローチは、CAN-TPプロトコル下で伝送されるデータタイプのブロックを識別し、次いで、機械言語命令セットのオペコードに関するデータバイトを検索することを含む。機械言語命令セットは、例えば、中央処理ユニット(CPU)アーキテクチャの命令セットまたはJava(登録商標)仮想マシン(JVM)等の仮想マシンアーキテクチャの命令セット等であってもよい。これらのオペコード検出器アプローチが、プロセッサのメモリ内でのメッセージデータの集約を引き起こす、CAN-TPのようなプロトコルへのオペコード検出器の適用を拡張するために、本明細書に同様に開示される信号抽出アプローチと有用に組み合わせられ得ることを理解されたい。しかしながら、開示されるオペコード検出器アプローチはまた、信号抽出を伴わずに使用され、オペコード検出器は、ISO 15765-2等の公開されたCAN-TPプロトコルに限定されることができる。
【0024】
図1を参照すると、車両10が、それにいくつかの電子制御ユニット(ECU)14が接続される、コントローラエリアネットワーク(CAN)バス12を含む。より一般的に、車両10は、地上車両(例えば、図示されるような自動車10、またはトラック、オフロード車両、オートバイ、バス、もしくは同等物)、水上車両(例えば、外航船、潜水艦、または同等物)、もしくは宇宙車両(例えば、軌道衛星、惑星間探測器、または同等物)であってもよい。より一般的に、ECUは、機関制御モジュール、ABSモジュール、動力操向モジュール、および/または他の車両動作関連電子デバイス、カーステレオもしくは他の車両内エンターテインメントシステム、車両外通信のために使用される無線送受信機(例えば、通信衛星送受信機)、車両気候制御モジュール等のCANバスまたは他のネットワーク12と接続される、任意の電子デバイスであり得る。CANバス12は、CANバス上のトラフィックが、CANバス上の全ての電子デバイスによって受信され、CANバス上のトラフィックが、メッセージ認証を含まない、プロミスキャスネットワークである。本文脈におけるメッセージ認証は、それによって受信デバイスが、メッセージのソースを検証し得る、メッセージ内またはネットワークのアーキテクチャ内に含有される情報である。CANバスは、メッセージ認証を提供しない。CANバス上のメッセージは、ペイロードと、メッセージヘッダとを備える。多くの場合、ヘッダは、アービトレーション識別子(ARB ID)自体である。しかしながら、ARB IDが、3つの優先度ビットを含むJ-1939 ARB ID等の信号抽出および識別目的のためのヘッダの一部と見なされない付加的情報を含む状況が、存在する。
【0025】
継続して図1を参照すると、少なくとも1つの保護ECU14prot(またはより一般的に、CANバス12上の電子デバイス14prot)は、図1に図式的に表されるような異常検出能力を含む。保護ECU14protは、電子プロセッサ20と、電子プロセッサ20によって可読かつ実行可能である命令を記憶する、非一過性記憶媒体22とを含む。ハードウェアコンポーネント20、22は、多様に実装されてもよい。例えば、いくつかの実施形態では、電子プロセッサ20および非一過性記憶媒体22は、印刷回路基板(PCB、図示せず)上に配置される、別個の集積回路(IC)チップであり、PCBの伝導性トレースが、プロセッサ20および記憶媒体22を動作的に接続してもよい。いくつかの実施例として、電子プロセッサ20は、マイクロプロセッサまたはマイクロコントローラICチップを備えてもよく、非一過性記憶媒体22は、フラッシュメモリチップ、読取専用メモリ(ROM)ICチップ、電子的プログラマブル読取専用メモリ(EPROM)ICチップ等のメモリICチップを備えてもよい。他の実施形態では、電子プロセッサ20および非一過性記憶媒体22は、単一のICチップとしてモノリシックに統合されてもよい。いくつかの実施例として、ECU14protは、特定用途向け集積回路(ASIC)チップまたはフィールドプログラマブルゲートアレイ(FPGA)チップとして実装され、記憶装置およびデジタルプロセッサの両方は、単一のASICもしくはFPGA上にモノリシックに加工される。既述のように、ECU14protは、CANバス12からCANトラフィック26を受信する。
【0026】
継続して図1を参照すると、非一過性記憶媒体22上に記憶される命令は、本明細書に開示されるような信号抽出30を実施し、1つ以上の異常検出器32(例えば、時間異常検出器、メッセージ毎異常検出器、例証的オペコード検出器34等)を実装し、異常検出器32によって検出された異常のアラートおよび/またはログ付け36を実装するために、電子プロセッサ20によって可読かつ実行可能である。信号抽出30は、標準的DBCファイル40を利用し、これは、公開されたCANバスプロトコルに関する信号フォーマットを記憶する。(より一般的に、DBC以外の別のファイルフォーマットが、標準的プロトコル信号フォーマットを記憶するために想定される。)加えて、信号抽出30は、独自DBCファイル42を利用し、これは、本明細書に開示されるようなCANバストラフィックの分析から推論された独自CANバス信号フォーマットを記憶する。標準的および独自DBCファイル40、42は、非一過性記憶媒体22上に好適に記憶される。
【0027】
いくつかの実施形態では、非一過性記憶媒体22上に記憶される命令はさらに、本明細書に開示されるような独自CANバス信号フォーマット推論44を実施し、独自DBCファイル42を発生させるために、電子プロセッサ20によって可読かつ実行可能である。他の実施形態では、開示される独自CANバス信号フォーマット推論44は、オフラインで、すなわち、いくつかの他の電子プロセッサ(例えば、デスクトップコンピュータ、サーバコンピュータ等)によって実施され、独自DBCファイル42を発生させ、これは、次いで、CANバス12を介して、または別の転送機構によってECU14protに転送され(例えば、車両10上へのそのインストールに先立って、ECU14prot上に事前にロードされ)、電子プロセッサ20上で実行される信号抽出30によるアクセスのために、非一過性記憶媒体22上に記憶される。また他の実施形態では、これらの2つのアプローチの組み合わせが、採用されてもよく、例えば、独自CANバス信号フォーマット推論のインスタンスが、オフラインで実施され、初期独自DBCファイル42を発生させてもよく、これは、続けて、車両10の動作の間に電子プロセッサ20によって実行される独自CANバス信号フォーマット推論44のインスタンスによってリアルタイムで更新される。
【0028】
さらに、オペコード検出器34は、機械言語命令セット46のデータベースを利用し、これは、CANバス12に接続されるECUにおいて展開されることが確実に予期され得る、種々のCPUおよび/または仮想マシンアーキテクチャのための命令セットを記憶する。いくつかの典型的なCPUアーキテクチャは、(非限定的な例証的実施例として)Intel x86、8051等のCPUアーキテクチャ、ARM A32、T32、A64等のCPUアーキテクチャ、種々のRISCおよびSPARCアーキテクチャ等を含む。CPUアーキテクチャのための機械言語命令セットは、そのCPUアーキテクチャに準拠するCPUによって認識され、実行可能であるオペコードを識別する。同様に、Java(登録商標)仮想マシン(JVM)等の仮想マシンは、時として、バイトコードまたはある他の類似する名称と称される、命令を採用する。CPUまたは仮想マシンアーキテクチャのための機械言語命令セットは、そのアーキテクチャに準拠するCPUもしくは仮想マシンによって認識され、実行可能であるオペコードを識別する。一般に、CPUまたは仮想マシンによって実行可能な機械言語命令は、オペコードと、オペランドとから成る。オペコードは、実施されるべき動作を識別し、オペランドは、オペコードの実行のために必要とされる任意のデータを提供する。(いくつかのオペコードは、いかなる関連付けられるオペランドも有していない場合がある。)任意の所与のCPUまたは仮想マシンアーキテクチャが、オペコードの有限セットを認識し、それを実行することが可能であり、これらは、非一過性記憶媒体22上に好適に記憶される、機械言語命令セット46のデータベース内で識別される。
【0029】
いくつかの実施形態では、ECU14protは、異常検出のみを実施する、専用電子デバイスである。他の実施形態では、ECU14protは、ある他の機能を実施する、ECUである(例えば、ECU14protは、アンチロック制動を制御するABSモジュール、走行制御モジュール等であり得る)。そのような実施形態では、非一過性記憶媒体22上に記憶される命令はさらに、アンチロック制動等を制御するためのABSモジュール機能性等のECU機能的動作48を実施するために、電子プロセッサ20によって可読かつ実行可能である。図1に図式的に示されるように、ECU機能的動作48は、ある場合には、CANバス12を介して伝送されるメッセージを発生させてもよい、すなわち、ECU機能的動作48は、メッセージをCANトラフィック26の中に投入してもよい。典型的には、これらの発信メッセージは、動作30、32、34、36によって処理されない(但し、代替として、例えば、ECU14prot自体がハッキングされ、ECU機能的動作48のその性能を修正する場合に、動作30、32、34、36によって発信メッセージを処理することもまた、想定される)。
【0030】
CANバスの文脈における用語「信号」は、データの単一の自己完結した単位である。信号は、1つの変数、例えば、機関冷却剤温度のセンサ測定値であり得る。これはまた、デジタルコマンド、例えば、トルク要求であり得る。単一のCANメッセージ内の4つの8ビットタイヤ圧力信号のように、複数の信号が、単一のメッセージ内に存在することができる。または、J-1939トランスポートプロトコルが、ファームウェア更新を転送するために使用されているとき等、信号が、複数のメッセージ内に存在することができる。ファームウェア更新は、CAN-TPプロトコルを介して伝送される単一の信号と見なされることができる。より一般的に、信号は、基礎情報である。信号は、サポートする信号フォーマットまたはヘッダを含有しない。
【0031】
信号抽出は、2つのレジーム、すなわち、独自CANバス信号フォーマット推論44に対応する訓練レジームと、信号抽出30に対応する動作レジームとを有する。一実施形態では、訓練は、CANバストラフィックのコーパス上での展開の前に行われ、好ましくは、その上で信号抽出30が続けて展開されるであろう、CANバスの予期される動作エンベロープを包含する。別の実施形態では、訓練は、インストール後に、セキュリティ装置がアクティブ化されることに先立ってオンラインで実施される。第3の実施形態は、展開前訓練に続けて、展開の間に進行中の適応更新訓練を実施することによって、これらの2つの選択肢を組み合わせる。訓練(すなわち、独自CANバス信号フォーマット推論44)は、CANバストラフィック内の構造を識別する。動作レジーム(すなわち、信号抽出30)は、訓練された構造を利用し、未加工データストリームから信号をリアルタイムで抽出する。これらの2つのレジームは、不揮発性記憶媒体22を通して通信する。例証的実施形態は、CANバスプロトコルに関して一般的に採用されるフォーマットである記述子ファイル、すなわち、Vector Informatik GmbHによって作成されるDBCフォーマットを使用する。しかしながら、JSONまたはXML等の他の記述子ファイルフォーマットが、採用されてもよい。訓練の間、独自信号に関する識別された信号フォーマットは、信号フォーマット毎に記述子ファイルに書き込まれる。また、独自CANバス信号フォーマット推論44が、典型的には、その信号フォーマットが推論される必要がある未知のCANバス信号が、独自信号フォーマットであるため、そのように言及されることに留意されたい。しかしながら、より一般的に、独自CANバス信号フォーマット推論44は、信号フォーマットが利用可能ではない理由にかかわらず、その信号フォーマットが利用不可能である任意のCANバス信号の信号フォーマットを推論するために使用されることができる。
【0032】
ここで図2を参照すると、独自CANバス信号フォーマット推論44の例証的実施形態が、説明される。独自CANバス信号フォーマット推論44の出力は、動作データ50を提供するDBCファイル42として示される、記述子ファイルである。図2はまた、その信号フォーマットが推論される必要がないプロトコルベースの非独自信号の取扱を示す。これらの標準的DBCファイル40は、プロトコル定義から明示的にプログラムされ、例えば、手動プログラミング、転写されたフォーマットにおける情報の購入、プロトコル文書化からの自動化抽出等を通して記述子ファイル40に転写される(52)。図2の非限定的な例証的実施例では、標準的DBCファイル40は、標準的MICAN 54、J1939 56、およびISO14229 58のためのDBCファイルを含む。
【0033】
継続して図2を参照すると、例証的独自CANバス信号フォーマット推論44は、推論されるべき信号フォーマットにおける独自信号を含む、訓練CANバスデータ60に対して訓練される自動化信号フォーマット識別を提供する。入力訓練CANバスデータ60は、予期される動作エンベロープにわたるループシミュレーションにおいて計装されたプラットフォームまたはハードウェアから好適に収集される。訓練CANバスデータ60は、全データ幅を識別するために十分な全ての信号の移動を捕捉するべきである。訓練CANバスデータ60は、完全である必要はなく、例えば、信号が、16ビットとして定義されるが、最上位4ビットが、決して誘発されず、事実上測定不可能である場合、正常な識別は、12ビットを登録することのみ必要とする。独自CANバス信号フォーマット推論44は、未加工データ60を取り込み、信号フォーマットを見出すために、プログラム的リバースエンジニアリングステップを実施する。動作62において、候補信号が、訓練CANバスメッセージトラフィック60から抽出される。各候補信号は、CANバスメッセージトラフィック60内のデータビットの順序付けられたグループの繰り返し(すなわち、繰り返されるブロードキャスト)の時間シーケンスであり、データビットの順序付けられたグループは、1つ以上のメッセージヘッダによって区切られる。動作64において、1つ以上の信号が、定義される。各信号は、合致するデータタイプの構造的特性に合致する候補信号であり、各信号は、合致するデータタイプを割り当てられる。以下では、動作64の処理は、カウンタデータタイプ、定数データタイプ、浮動小数点データタイプ、整数データタイプ、およびビットフィールドデータタイプの非限定的実施例に関して説明される。
【0034】
カウンタデータタイプを割り当てられた信号は、カウンタデータタイプによって定義されたデータビットの順序付けられたグループの値が、データビットの順序付けられたグループの時間シーケンスにわたって(すなわち、連続するブロードキャストに伴って)単調に増加する、または単調に減少する、カウンタデータタイプの構造的特性に合致する候補信号として定義される。カウンタは、単調に増加または減少するフィールドである。概して、これらの値は、モジュールによるアクティブな通信を確実にし、モジュールが一時的にネットワークから外され、値のスキップを引き起こさない、またはスレッドがフリーズし、繰り返し値を送信させないことを確実にするために使用される。カウンタは、信号のブロードキャストの間の一定の差異を調べることによって識別される。ロールオーバー(すなわち、値が最大値または最小値のいずれかを横断するとき)が、時間シーケンスのサブ間隔にわたるモノリシック増加または減少を識別することによって取り扱われることができる。カウンタの幅は、最初に、カウンタの最下位ビットを表す、交互するビットを見出すことによって推論される。次に上位のビットが、第1のビットの全ての2番目の変化に伴って変化するビットを識別することによって、第1のビットに隣接して検索される。エンディアンに応じて、本変化は、先行または後続ビットにあり得る。第2のビットは、エンディアンを定義し、ビッグエンディアンの場合、第2のビットは、第1のものに先行し、リトルエンディアンの場合、第2のビットは、第1のものに続くであろう。カウンタの第2のビットを識別した後、検索は、ビットのパターンが、先行するビットの全ての他の変化に伴ってもはや変化しなくなるまで、第2のビットによって定義されるようなリトルエンディアンまたはビッグエンディアンのいずれかの方向において継続する。カンタは、サイズが単一ビットから複数バイトに及ぶことができる。
【0035】
定数データタイプを割り当てられた信号は、データビットの順序付けられたグループの値が、データビットの順序付けられたグループの時間シーケンスにわたって(すなわち、繰り返されるブロードキャストにわたって)一定である、定数データタイプの構造的特性に合致する候補信号として定義される。定数データタイプ値の信号を見出すことは、データビットの順序付けられたグループを構成するビットのセットが、決して変化しない候補信号を識別することを伴う。定数値は、空のプレースホルダであり得る、またはこれは、通常の条件下で誘発されない信号であり得る。これが、後者である場合、定数信号の変化を識別することは、いったん定数信号が認識されると、容易に検出される異常であろう。定数信号のいくつかの実施例は、デバイスシリアル番号、ソフトウェアバージョン、または識別番号を含む。定数として推測され得る信号は、実際に、変化する情報を伴う信号を表し得るが、しかしながら、その情報は、通常の状況下で誘発されない。例えば、信号が、エアバッグの状態を展開状態(第1の信号値によって表される)または非展開状態(第2の信号値によって表される)として表し得る。訓練された通常の条件下で、その信号は、一定であろう(すなわち、非展開状態を表す第2の信号値である)。エアバッグ展開事象の場合では、信号は、第1の値に変化し、したがって、異常としてマーキングされ、これは、車両が、展開の時点で予期される挙動における異常を被っている点において、正しい判定である。
【0036】
指数および仮数を有する浮動小数点データタイプを割り当てられた信号は、浮動小数点データタイプの構造的特性に合致する候補信号として定義される。これらの構造的特性は、16、32、または64ビットであるデータビットの順序付けられたグループと、浮動小数点データタイプの仮数を表すデータビットの順序付けられたグループの第2のサブセットよりも時間シーケンスにわたって低いエントロピを有する、浮動小数点データタイプの指数を表すデータビットの順序付けられたグループの第1のサブセットとを含む。浮動小数点数は、IEEEによって16、32、および64ビットとして定義される。さらにより大きいサイズが、利用可能であるが、しかしながら、ECUが、64ビットまたはより高い精度を使用するであろう可能性は低い。浮動小数点データタイプの信号を識別することは、エンディアンを交換し、検索を実施することを通して、平滑な低エントロピ出力を見出すことを伴う。一般に、指数は、仮数よりも低い頻度で変化することが予期される。エントロピの観点から、仮数は、指数よりも無秩序である(すなわち、より高いエントロピを有する)ことが予期される。これを確認するために、1~999で変動する浮動小数点値を検討する。「MMM」が仮数を表し、「XX」が指数を表す、形態0.MMMEXXの指数表記を使用すると、本範囲は、0.100E01~0.999E03として記載されることができる。そこから分かり得るように、仮数は、本質的にその範囲全体にわたって変動する一方、指数は、01~03にのみ変動する。本実施例は、基数10を採用する一方、CANバス上の浮動小数点信号は、バイナリ、すなわち、基数2を採用するが、原理は、同一のままであり、仮数は、通常、指数よりもエントロピが高く、浮動小数点データタイプの本構造的特性は、これらの信号を検出するために活用される。
【0037】
整数データタイプを割り当てられた信号は、整数データタイプの構造的特性に合致する候補信号として定義される。これらの構造的特性は、4、8、12、16、または32ビットであるデータビットの順序付けられたグループと、整数データタイプの最下位ビットを表すデータビットの順序付けられたグループの第2のサブセットよりも時間シーケンスにわたって低いエントロピを有する、整数データタイプの最上位ビットを表すデータビットの順序付けられたグループの第1のサブセットとを含む。プラットフォームにおけるデータは、概して、測定値または制御パラメータを表すため、データは、緩慢に変動する値を表す。これらの緩慢な変動は、メッセージの間の変化を殆ど伴わない、平滑である時系列履歴をもたらす。したがって、情報理論の観点から、データチャネル(信号の合計ビット)は、単位時間あたりにこれが通信することが可能であるものよりも有意に少ない情報を通信している。本特性は、低エントロピを有する信号をもたらす。データが、誤って表されるとき、より低いビットは、より高いビット位置に設置され、より大きい信号変動性をもたらす。信号は、次いで、急速に変化するように現れ、単位時間あたりの情報のより多い知覚される転送、したがって、より高いエントロピをもたらす。一般に、整数表現は、種々のビットサイズ、エンディアン、および符号属性を含む。目的は、試験データに関して平滑である最も大きい一貫した表現を見出すことである。各順列は、エントロピ測定値を介して達成される、平滑度に関して検証される必要がある。メッセージの時間履歴を使用して、サイズおよびエンディアンの各順列が、試験され、最良の最も平滑なフィットが、識別される。平滑なフィットは、多くの場合、近似エントロピ技法またはサンプルエントロピと称される、時系列エントロピ計算を使用して数値的に判定される。ここでは、近似エントロピ計算は、全ての順列に関して同じパラメータを用いて実行され、各順列が結果として生じる定量的エントロピ値を有することをもたらす。ビットサイズは、典型的には、4、8、12、16、および32ビットの間である。整数フォーマットである殆どのECUデータは、16ビットまたはそれを下回るものであり、32ビットは、多くの場合、クロックのためにのみ使用される。符号なしまたは2つの補数のいずれかである、2つの形態の符号属性が、存在する。最後に、エンディアンは、バイト順序付け、すなわち、最上位ビットを反映するバイトおよびそれらのバイトがメッセージにパックされる方法を表す。バイト順序付けは、8ビットを上回るそれらの信号のみに関する基準である。
【0038】
ビットフィールドデータタイプを割り当てられた信号は、ビットフィールドデータタイプの構造的特性に合致する候補信号として定義される。ビットフィールドデータタイプは、単一ビットまたは単一ビットのグルーピングがバイナリ状態を表す場合である。本バイナリ状態は、CANメッセージ内のバイトのサブセットとして反映されることができ、例えば、0000 0011は、ブレーキがアクティブであることを表し得、0000 0000は、ブレーキが非アクティブであることを表し得る。代替として、メッセージは、アクティブに関して0000 0010または非アクティブに関して0000 0001であり得る。これらの先述の表現では、最左端の6ビットは、他の状態を表し得る。メモリまたは伝送における単一ビットエラーを軽減するために、状態を表すために1を上回るビットを使用することが、一般的である。ビットフィールドの検出は、例えば、等しいまたは等しくない、同一の関係を常に有する隣接するビットを検索することによって行われ、値は、訓練データセットにおいて少なくとも1回変化する。
【0039】
最も大きい一貫した表現を識別するために、前述の整数表現の異なる組み合わせが、信号として解釈され、次いで、平滑度に関して試験される。より具体的には、平滑度に関する試験は、解釈された信号のエントロピを分析し、時間が進行するにつれて、妥当な連続性に関してこれを試験することを伴う。過剰に不連続またはエントロピ的のいずれかである信号の解釈は、無効と見なされる。最も大きい解釈(これを表すために必要とされるビットの数の観点から)が、整数の最も可能性が高い表現として選定される。前述の1つの好適な公式化では、整数データタイプの構造的特性はさらに、連続性基準を満たす時間シーケンスにわたる連続性を有する、整数データタイプによって定義されたデータビットの順序付けられたグループの値と、エントロピ基準を満たす時間シーケンスにわたる連続性を有する、整数データタイプによって定義されたデータビットの順序付けられたグループの値とを含んでもよい。定数データが、より高次のビットにおいて存在する場合、上記の方法が、それらのビットがその独自の信号ではなく、信号に属することを推定することが可能である。このように、一定のビット変化が、実際には、異常な事象を表すであろうため、異常検出におけるいかなるエラーも、行われない。
【0040】
継続して図2を参照すると、動作64において定義された1つ以上の信号は、DBCファイル42における定義された信号の信号フォーマットを記述するために、DBCビルダ66に出力される。これらのDBCファイル42は、推論された信号フォーマットにおいて信号を搬送するCANメッセージが、再び遭遇されるとき、DBCファイル42が、迅速に信号を正しく解釈するために参照され得るように、信号フォーマット推論段階44の訓練された結果を保存する。DBCファイルは、信号をヘッダおよびその信号の構造的表現に関連させるために定義される。異常検出は、受信の予期される頻度、受信の頻度の変動性、上限および下限、ならびに異常の識別を支援する他のメタデータ等の他の特徴もまた含むように共通フォーマットを拡張する。
【0041】
ここで図3を参照すると、信号抽出30の例証的実施形態が、示される。制御フローの全ての分岐は、いくつかのプロトコルがその他の上に層化され得ることを示すために列挙される(各プロトコルを具体的に命名する)。一般性を失うことなく、プロトコル検出動作70は、最初に、標準的DBC40のうちの1つを使用して、使用されるプロトコルを識別し、次いで、適切なプロトコルのDBCを用いてメッセージを解析することを試みる。例えば、MilCANパーサ72が、プロトコルをMilCANとして識別することを試みる。決定74において、MilCANプロトコルが、認識される場合、MilCAN信号抽出器76が、MilCAN DBC40MilCANを使用して、信号を抽出するために適用される。同様に、J1939パーサ82が、プロトコルをJ1939として識別することを試みる。決定84において、J1939プロトコルが、認識される場合、J1939信号抽出器86が、J1939 DBC40J1939を使用して、信号を抽出するために適用される。J1939プロトコルが、CAN-TPをサポートするため、J1939パーサ82は、J1939 CAN-TP変形が、遭遇される場合、TPアグリゲータ88を呼び出してもよい。同様に、ISO 14229パーサ92が、プロトコルをISO 14229として識別することを試みる。決定(空間制約に起因して図示せず)において、ISO 14229プロトコルが、認識される場合、ISO 14229信号抽出器96が、J1939 DBC40J1939を使用して、信号を抽出するために適用される。ISO 14229プロトコルが、CAN-TPをサポートするため、ISO 14229パーサ92は、ISO 14229 CAN-TP変形が、遭遇される場合、TPアグリゲータ98を呼び出してもよい。これらが、例証的実施例にすぎず、付加的および/または他の標準的プロトコルを採用する信号が、同様に抽出され得ることを理解されたい。解析されたメッセージが、独自フォーマットである(したがって、標準的DBCを有していない)場合、信号抽出器100が、任意の利用可能な信号およびメタデータを抽出するために、(図2を参照して説明される)訓練段階の一部として発生される独自DBC42を使用する。全ての抽出された信号102およびメタデータ104(標準的または独自の両方)が、収集され、パイプラインにおける次の段階に出力される。
【0042】
再び図1を参照すると、図2および3を参照して説明されるように抽出された信号は、種々の方法で異常検出器32によって活用されることができる。前述のように、信号が、定数データタイプであるとして識別される場合、その予期される定数値からのその信号の任意の逸脱が、異常としてフラグ付けされることができる。より一般的に、信号抽出30は、個別のCANバス信号フォーマットに準拠する信号を抽出するために、初期時間間隔にわたって実施されてもよい。次いで、異常検出器32のいくつかの実施形態は、初期時間間隔に続く後の時間間隔にわたって、準拠するCANバス信号フォーマットからの抽出された信号のうちの1つの任意の逸脱を異常として検出することによって動作してもよい。
【0043】
別の実施例として、オペコード検出器34は、CAN-TPまたは類似する信号の大きいペイロードが、悪意のある機械コードがECUに配信されるサイバー攻撃の機会を提供するため、これらの多くのバイト信号にオペコード検出を集中させるために、そのような信号の検出を活用してもよい。オペコードベースの攻撃が、有効性を有するための最小数のオペコードを転送する必要があるであろうと仮定される。再び図1を参照すると、以下では、オペコード検出器34のいくつかの実施形態が、説明される。
【0044】
ここで図4を参照すると、オペコード検出器34は、CANバス12を横断して送信される機械コードを含有するバイナリペイロードを検出するように構成され、したがって、オペコード実行の脅威に対して保護する。ECUにコードを実行させることを試みる車両10のCANバス12に対する典型的な攻撃が、図4に図式的に示され、攻撃者110が、CANバス12上のECUまたは他の電子デバイス112をセキュリティ侵害し、同様にCANバス12上にある別のECUもしくは電子デバイス116によって受信および実行されるエクスプロイト機械コード114を投入する。CANバス上12の侵入検出システム(IDS)120(例えば、図1のECU14protとして具現化される)もまた、攻撃者110によってECUまたは他の電子コンポーネント116を感染させることが意図される悪意のあるペイロード試行114を受信する。これは、CANバス12が、ネットワーク上の全てのデバイスが全てのメッセージを受信する、プロミスキャスネットワークであるためである。
【0045】
攻撃者が個々のCANメッセージをコード実行エクスプロイトに活用する尤度は、低い。不良なコーディング実践が、何らかの方法で個々のCANメッセージ内に含有される機械コードの実行を許可した場合であっても、8バイトのデータのみが、シェルコードとして一般的に公知である、エクスプロイトを含有するオペコードに関して利用可能であろう。しかしながら、CAN-TPプロトコルが、使用される場合、複数のメッセージが、単一の信号に集約される。本集約は、より多くの量のデータを提供し、これによって、脆弱性を誘発するはるかに大きい潜在性を提供する。1つの可能性として考えられる攻撃の一非限定的な例証的実施例として、新しい証明書が、制御モジュールにアップロードされるべきである、x509証明書パーサを検討する。証明書は、サイズが数キロバイトである。証明書が、不良に設計されたコードによって解析される場合、これは、攻撃者が、シェルコードを証明書の中に組み込み、次いで、プログラムフローをそのコードにリダイレクトすることを可能にし得る。別の実施例として、ファームウェア更新が、CANバス12を介してECUに伝送され得、プロミスキャスネットワークとして、ファームウェア更新プロセスの十分な知識を伴う悪意のある行為者が、正当ではないファームウェア更新を細工し、これが、次いで、ECUによって受信および実行されるであろうことに対して、いかなる障壁も、存在しない。一般に、いったんより高いレベルのCAN-TPプロトコルが、複数のメッセージを集約するために使用されると、一般的なソフトウェア脆弱性を通したコード実行のリスクは、現実的になる。
【0046】
継続して図4を参照すると、信号抽出30の出力は、CAN-TPプロトコルにおける信号または所定の数のバイト、例えば、32よりも大きい類似する信号を識別する。動作122において、CAN-TP信号のペイロードは、集約され、待ち行列124において待ち行列に入れられる。抽出されたペイロードは、有効なオペコードを検出するために検査される。前述のように、オペコードは、攻撃者がサイバー攻撃を実行するために悪意のある「シェルコード」の中に組み込む、CPUまたは仮想マシン命令セットの機械言語命令である。CANバス12のプロミスキャス性質は、IDS120が、これらのCAN TPペイロードを抽出し、CANバス12上の(または潜在的にその上の)ECUもしくは他の電子デバイスにおいて使用されるCPUまたは仮想マシンアーキテクチャに関する大量の有効なオペコードに関してそれらを検査することもまた可能にする。CPUまたは仮想マシンの命令セットに属するオペコードは、そのCPUもしくは仮想マシンによって認識され、実行可能であるが、しかしながら、オペコードは、バイナリシーケンスであるため、それらはまた、悪意のないメッセージにおいて偶然に生じ得る。
【0047】
これを考慮して、1つのアプローチでは、CAN TPプロトコルに準拠する複数のメッセージのデータバイトを備えるCAN-TP信号内の疑わしい機械コードの検出が、以下のように実施される。1つ以上の機械言語命令セット46の機械言語命令セット毎に、機械言語命令セットのオペコードに合致するTP信号の割合が、判定される。サイバー攻撃の標的であり得るCPUまたは仮想マシンアーキテクチャは、先験的に把握されないため、これは、機械言語命令セット46のセットの機械言語命令毎に繰り返される。異常が、(少なくとも部分的に)判定された割合のうちの少なくとも1つがオペコード異常閾値を超えることに基づいて検出される。すなわち、脅威のレベルを判別するために、有効なオペコードを表すメッセージの割合が、随意に、オペコードの連続性等の他の因子とともに、考慮される。本情報は、アラートエンジン36に転送される信頼性測度を作成するために分析される。
【0048】
継続して図4を参照し、さらに図5を参照すると、オペコード検出器34の例証的実装が、さらに詳細に説明される。動作130において、ペイロードのバイトが、機械言語命令セットのオペコードに合致される。これを行うために、バイトは、適切に解釈されなければならない。異なるプロトコルは、オペコードのエンディアンおよびローテーションに影響を及ぼし得、動作130は、既知のアーキテクチャのうちの1つに関する有効なコードを生成する(すなわち、機械言語命令セットのオペコードに合致する)バイトのエンディアンならびにローテーションが、存在するかどうかを判定するために、エンディアンおよびローテーションの異なる組み合わせを試験する。いったんこれらが、把握されると、動作132において、識別されたオペコードは、分析され、所与の機械言語命令セットのオペコードから構成されるCAN-TP信号の割合を判定し、随意に、ペイロードが疑わしい機械コードを含有するかどうかを立証し得る、他のメトリックを判定する。例えば、悪意のあるコード実行を得る試みを示す具体的な機能的測度は、(オペコードから構成されるペイロードの割合に加えて)命令多様性、スタック効果、ジャンプまたはコールである、もしくは別様に(CPUまたは仮想マシンアーキテクチャに応じて)プログラムカウンタ(PC)もしくは命令ポインタ(IP)を移動させるように動作するオペコードの割合、戻り動作を実装するオペコードの割合、および/またはソフトウェア割り込みを実装するオペコードの割合のメトリックを含んでもよい。PCまたはIPを移動させる、もしくは戻りまたは割り込み動作を実装するオペコードは、これらがプログラムフローを投入された悪意のあるコードにリダイレクトするために使用され得るため、特に重要である。動作134において、機械言語命令セットのオペコードに合致するTP信号の割合は、他の随意のメトリックとともに、CAN-TP信号がサイバー攻撃を成す尤度を算出するために分析される。本尤度が、あるアラート閾値を超える場合、アラート/ログ付け36が、異常をログ付けするために行使される。図5の例証的実施例では、動作134は、脅威の尤度を以下として算出する。
【数1】
式中、Aは、脅威の尤度であり、kは、算出されたメトリックの数であり、指数nは、k個のメトリックにわたって及び、wは、n番目のメトリックに関する加重であり、Rは、n番目のメトリックに関するペイロードの単位量あたりのリスクであり、tは、調整パラメータである。
【0049】
一般に、CAN-TP信号内の検出された機械言語コンテンツの存在が、重要である。しかしながら、CAN-TP内の機械言語コンテンツが、悪意のないものであり得るいくつかのインスタンスが、存在し得る。例えば、ECUが、CANバス12を介してファームウェア更新を受信する場合、正当なファームウェア更新は、ECUによって受信および実行されるべきである悪意のないメッセージである。これらのタイプの状況に適応するために、随意の決定動作136(図5にのみ示される)が、CAN-TP信号が許可されたファームウェア更新であるかどうかをチェックし、CAN-TP信号が、許可されたファームウェア更新として識別されない場合のみ、異常が、フラグ付けされる。例えば、証明書または他の認証機構が、採用されてもよく、これは、ECU14protにセキュアに配信され、そこに記憶される。その後、CAN-TP信号が、機械コードを含有すると判定されるが、また、証明書または他の認証も含有する場合、決定136は、認証されたファームウェア更新を認識し、これを異常としてフラグ付けしない。
【0050】
再び図1を参照すると、アラート/ログ付け36は、種々の形態をとることができ、アラートのタイプ(またはいかなるアラートも全く発行されないかどうか)ならびに/もしくはログ付けされる異常は、異常のタイプに依存し得る。いくつかの例証的実施例では、アラートが、(例えば、ECU14protがアラートメッセージをダッシュボードを制御するECUに送信することによって)車両10のダッシュボード上に表示されてもよい、アラートが、3G、4G、5G、または他のセルラー通信リンクもしくは他の無線リンクを介して(車両10がそのような無線通信を装備すると仮定して)車両製造業者に伝送されてもよい、アラートが、ハンドヘルドまたは自動車ショップベースのCANバスコードリーダを使用して、後での読出のためにECU14protのメモリ内にログ付けされてもよいこと等が考えられる。
【0051】
好ましい実施形態が、例証および説明された。明白なこととして、修正および改変が、先述の発明を実施するための形態を熟読し、理解することに応じて、他者に想起されるであろう。本発明が、それらが、添付される請求項またはその均等物の範囲内に該当する限り、全てのそのような修正および改変を含むものとして解釈されることを意図している。
【0052】
上記に開示される、および他の特徴ならびに機能の変形またはそれらの代替が、多くの他の異なるシステムもしくはアプリケーションに組み合わせられ得ることを理解されたい。種々の現在予見されていない、または予想されていない代替、修正、変形例、もしくはそれにおける改良が、当業者によって続けて行われ得、これもまた、以下の請求項によって包含されることを意図している。
【0053】
特許庁および本願ならびに任意の結果として生じる特許の任意の読者が、本明細書に添付される請求項を解釈することを支援するために、出願人らは、単語「~のための手段」または「~のためのステップ」が、特定の請求項において明示的に使用されない限り、添付される請求項もしくは請求項要素のうちのいずれかが、35 U.S.C. § 112(f)を行使することを意図していない。
図1
図2
図3
図4
図5
【国際調査報告】