(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-18
(45)【発行日】2024-12-26
(54)【発明の名称】決定方法、決定システム及びプログラム
(51)【国際特許分類】
H04L 12/28 20060101AFI20241219BHJP
B60R 16/023 20060101ALI20241219BHJP
【FI】
H04L12/28 100A
B60R16/023 P
(21)【出願番号】P 2021567259
(86)(22)【出願日】2020-12-11
(86)【国際出願番号】 JP2020046435
(87)【国際公開番号】W WO2021131824
(87)【国際公開日】2021-07-01
【審査請求日】2023-09-13
(31)【優先権主張番号】P 2019231730
(32)【優先日】2019-12-23
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】514136668
【氏名又は名称】パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
【氏名又は名称原語表記】Panasonic Intellectual Property Corporation of America
(74)【代理人】
【識別番号】100109210
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】前田 学
(72)【発明者】
【氏名】国宗 大介
【審査官】速水 雄太
(56)【参考文献】
【文献】特開2019-083534(JP,A)
【文献】特開2018-182725(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
B60R 16/023
(57)【特許請求の範囲】
【請求項1】
ネットワーク及び前記ネットワークに接続される1以上の電子制御ユニットを含む車載ネットワークシステムにおける不正通信の検知に用いられる基準メッセージの決定方法であって、
前記基準メッセージは、前記ネットワークに送出されるメッセージが異常メッセージであるか否かの判定の基準に用いられるメッセージであり、
前記決定方法は、
前記基準メッセージの候補である1以上の基準メッセージ候補に関する候補情報を保存する保存ステップと、
前記保存ステップで保存された前記候補情報に含まれる前記1以上の基準メッセージ候補に基づいて、複数のルールの中から前記基準メッセージを決定するためのルールを決定する第1決定ステップと、
前記第1決定ステップで決定された前記ルールを用いて、前記1以上の基準メッセージ候補から前記基準メッセージを決定する第2決定ステップとを含み、
前記第1決定ステップでは、前記複数のルールのそれぞれについて前記1以上の基準メッセージ候補の中から前記基準メッセージを決定することの適切度合いを示す適切度を算出し、前記複数のルールのそれぞれについて算出された前記適切度に基づいて、前記基準メッセージを決定するためのルールを決定
し、
前記適切度は、前記ネットワークに送出されるメッセージに対する予測値と、前記1以上の基準メッセージ候補が示す値それぞれとの第1の差を算出し、算出された2以上の前記第1の差同士の差である第2の差として算出される、
決定方法。
【請求項2】
前記第1決定ステップでは、前記複数のルールの中で、前記適切度が最も高いルールを、前記1以上の基準メッセージ候補から前記基準メッセージを決定するためのルールに決定する、
請求項1に記載の決定方法。
【請求項3】
前記第1決定ステップにおいて、前記1以上の基準メッセージ候補が示す値が3つ以上ある場合、前記予測値に近い2つの前記値を抽出し、抽出した2つの前記値と前記予測値とに基づいて2つの前記第1の差を算出する、
請求項
1又は2に記載の決定方法。
【請求項4】
前記予測値は、過去に決定された前記基準メッセージが示す値に基づいて算出される、
請求項
1~3のいずれか1項に記載の決定方法。
【請求項5】
前記予測値は、予め作成された予測モデルに同一IDの前記1以上の基準メッセージ候補を入力することで取得される、
請求項
1~3のいずれか1項に記載の決定方法。
【請求項6】
前記複数のルールは、前記ネットワークに送出されるメッセージが送信される周期に基づいて前記基準メッセージを決定するための周期判定ルール、及び、前記ネットワークに送出されるメッセージに含まれるデータの値に基づいて前記基準メッセージを決定するためのデータ判定ルールの少なくとも一つを含む、
請求項1
~5のいずれか1項に記載の決定方法。
【請求項7】
さらに、前記ネットワークに送出されるメッセージが異常メッセージであるか否かを判定する判定ステップを含み、
前記1以上の基準メッセージ候補には、前記判定ステップにおいて異常であると判定された前記異常メッセージを含み、
前記第2決定ステップでは、前記1以上の基準メッセージ候補のうち前記異常メッセージ以外のメッセージが前記基準メッセージに決定される、
請求項1
~6のいずれか1項に記載の決定方法。
【請求項8】
さらに、前記ネットワークに送出されるメッセージが異常メッセージであるか否かを判定する判定ステップを含み、
前記第2決定ステップでは、現在の受信周期において正常と判定された1以上のメッセージを基準メッセージ候補として、次の受信周期における基準メッセージを、前記次の受信周期の前に決定する、
請求項1
~6のいずれか1項に記載の決定方法。
【請求項9】
ネットワーク及び前記ネットワークに接続される1以上の電子制御ユニットを含む車載ネットワークシステムにおける不正通信の検知に用いられる基準メッセージの決定システムであって、
1以上のプロセッサと、
記憶部とを備え、
前記基準メッセージは、前記ネットワークに送出されるメッセージが異常メッセージであるか否かの判定の基準に用いられるメッセージであり、
前記1以上のプロセッサは、前記記憶部を用いて、
前記基準メッセージの候補である1以上の基準メッセージ候補に関する候補情報を保存し、
保存された前記候補情報に含まれる前記1以上の基準メッセージ候補に基づいて、複数のルールの中から前記基準メッセージを決定するためのルールを決定し、
決定されたルールを用いて、前記1以上の基準メッセージ候補から前記基準メッセージを決定し、
前記基準メッセージを決定するためのルールの決定において、前記複数のルールのそれぞれについて前記1以上の基準メッセージ候補の中から前記基準メッセージを決定することの適切度合いを示す適切度を算出し、前記複数のルールのそれぞれについて算出された前記適切度に基づいて、前記基準メッセージを決定するためのルールを決定
し、
前記適切度は、前記ネットワークに送出されるメッセージに対する予測値と、前記1以上の基準メッセージ候補が示す値それぞれとの第1の差を算出し、算出された2以上の前記第1の差同士の差である第2の差として算出される、
決定システム。
【請求項10】
請求項1
~8のいずれか1項に記載の決定方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ネットワークシステムにおける不正通信の検知に用いられる基準メッセージの決定方法等に関する。
【背景技術】
【0002】
近年、自動車の中のシステムには、電子制御ユニット(ECU:Electronic Control Unit、以下、ECUとも表記する)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の通信規格が存在する。その中でも最も主流な車載ネットワークの規格の一つに、Controller Area Network(以下、CANとも表記する)がある。
【0003】
CANの規格によるネットワーク(以下、CANネットワークとも表記する)では、通信路(バス)は2本のケーブルで構成され、バスに接続されているECUはノードとも呼ばれる。バスに接続されている各ノードは、フレーム又はメッセージと呼ばれる単位でデータを送受信する。またCANでは、データの送信先又は送信元を示す識別子は用いられない。フレームを送信するノード(以下、送信ノードとも表記するう)は、メッセージ毎にメッセージの種類を示すメッセージIDと呼ばれるIDを付けて送信、つまりバスに信号を送出する。メッセージを受信するノード(以下、受信ノードとも表記する)は、あらかじめ決められたメッセージIDを含むメッセージのみ受信、つまりバスから信号を読み取る。同一IDのメッセージは、所定の一定の周期で送信される。
【0004】
上述の通り、自動車の中のシステムに多数配置されているECUは、それぞれがCANネットワークに接続され、様々なメッセージを互いにやりとりしながら動作している。ここで、CANネットワークの外部と通信機能を持つECUが外部から攻撃される等して乗っ取られ、CANネットワークに対して不正なメッセージ(以降、異常メッセージとも表記する)を送信するようになることが起こり得る。このような乗っ取られたECU(以下、不正ECUとも表記する)は、例えば他のECUになりすまして異常メッセージを送信することで、自動車を不正に制御することが可能となる。このような、いわゆるなりすまし攻撃を検知するための方法として、例えば、特許文献1に記載の方法がある。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載の方法では、発生しているなりすまし攻撃を検知できるだけであり、どのメッセージが異常メッセージであるかを判断できないという課題がある。当該課題の解決として、異常メッセージであるか否かを判断するための基準メッセージを決定し、決定された基準メッセージに基づいてメッセージが異常メッセージであるか否かを個別に判断する方法が考えられる。この場合、基準メッセージは適切に設定されることが望まれる。
【0007】
そこで、本開示は、上記課題を解決するもので、ネットワークに送出された個別のメッセージが異常メッセージであるか否かを判定するための基準メッセージを適切に決定する基準メッセージの決定方法等を提供する。
【課題を解決するための手段】
【0008】
上記の課題を解決するために、本開示の一態様に係る決定方法は、ネットワーク及び前記ネットワークに接続される1以上の電子制御ユニットを含む車載ネットワークシステムにおける不正通信の検知に用いられる基準メッセージの決定方法であって、前記基準メッセージは、前記ネットワークに送出されるメッセージが異常メッセージであるか否かの判定の基準に用いられるメッセージであり、前記決定方法は、前記基準メッセージの候補である1以上の基準メッセージ候補に関する候補情報を保存する保存ステップと、前記保存ステップで保存された前記候補情報に含まれる前記1以上の基準メッセージ候補から前記基準メッセージを決定するための前記決定方法を、前記1以上の基準メッセージ候補に基づいて決定する第1決定ステップと、前記第1決定ステップで決定された前記決定方法を用いて、前記1以上の基準メッセージ候補から前記基準メッセージを決定する第2決定ステップとを含む。
【0009】
また、本開示の一態様に係る決定システムは、ネットワーク及び前記ネットワークに接続される1以上の電子制御ユニットを含む車載ネットワークシステムにおける不正通信の検知に用いられる基準メッセージの決定システムであって、1以上のプロセッサと、記憶部とを備え、前記基準メッセージは、前記ネットワークに送出されるメッセージが異常メッセージであるか否かの判定の基準に用いられるメッセージであり、前記1以上のプロセッサは、前記記憶部を用いて、前記基準メッセージの候補である1以上の基準メッセージ候補に関する候補情報を保存し、保存された前記候補情報に含まれる前記1以上の基準メッセージ候補から前記基準メッセージを決定するための決定方法を、前記1以上の基準メッセージ候補に基づいて決定し、前記1以上の基準メッセージ候補から、前記決定方法を用いて前記基準メッセージを決定する。
【0010】
また、本開示の一態様に係るプログラムは、上記の決定方法をコンピュータに実行させるためのプログラムである。
【0011】
なお、これらの包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROMなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0012】
本開示の一態様に係る決定方法等によれば、ネットワークに送出された個別のメッセージが異常メッセージであるか否かを判定するための基準メッセージを適切に決定することができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、実施の形態1における車載ネットワークシステムの全体構成を示すブロック図である。
【
図2】
図2は、CANプロトコトルのデータフレームフォーマットを示す図である。
【
図3】
図3は、実施の形態1における車載ネットワークシステムに含まれるゲートウェイの機能構成の一例を示すブロック図である。
【
図4】
図4は、実施の形態1における受信IDリストのデータ構成の一例を示す図である。
【
図5】
図5は、実施の形態1におけるゲートウェイで保持される転送ルールのデータ構成の一例を示す図である。
【
図6】
図6は、実施の形態1における不正検知処理機能群の機能構成の一例を示すブロック図である。
【
図7】
図7は、実施の形態1における不正検知部の機能構成の一例を示すブロック図である。
【
図8】
図8は、実施の形態1におけるメッセージの受信パターンを示す図である。
【
図9】
図9は、実施の形態1における車載ネットワークシステムに含まれるECUの機能構成の一例を示すブロック図である。
【
図10】
図10は、実施の形態1における不正検知処理の一例を示すフロー図である。
【
図11】
図11は、実施の形態1における基準メッセージ決定処理の一例を示すフロー図である。
【
図12】
図12は、実施の形態2における車載ネットワークシステムの全体構成を示すブロック図である。
【
図13】
図13は、実施の形態2における車載ネットワークシステムに含まれるゲートウェイの機能構成の一例を示すブロック図である。
【
図14】
図14は、実施の形態2における不正検知処理機能群の機能構成の一例を示すブロック図である。
【
図15】
図15は、実施の形態2におけるサーバの機能構成の一例を示すブロック図である。
【
図16】
図16は、その他の変形例における不正検知処理機能群の機能構成の第1例を示すブロック図である。
【
図17】
図17は、その他の変形例における不正検知処理の一例を示すフロー図である。
【
図18】
図18は、その他の変形例における不正検知処理機能群の機能構成の第2例を示すブロック図である。
【
図19】
図19は、その他の変形例における不正検知処理機能群の機能構成の第3例を示すブロック図である。
【
図20】
図20は、その他の変形例におけるECUの機能構成の第1例を示すブロック図である。
【
図21】
図21は、その他の変形例におけるECUの機能構成の第2例を示すブロック図である。
【
図22】
図22は、その他の変形例におけるECUの機能構成の第3例を示すブロック図である。
【発明を実施するための形態】
【0014】
(本開示の基礎になった知見)
不正ECUから異常メッセージが送信され始めると、CANネットワークでは同じIDのメッセージに正常メッセージと異常メッセージとが混在するようになる。このような状況では、正常メッセージの送信のタイミングと異常メッセージの送信のタイミングとがごく近くなる、又は攻撃者によって意図的に近づけられた結果、異常メッセージの送信のタイミングも許容差内(正常メッセージが送信されると予測されるタイミングとの差が許容差内)に収まる場合がある。このような場合には、正常メッセージと異常メッセージとの区別が難しくなり、誤検知の発生の可能性が高まる。同様のことは、メッセージの送信のタイミングのみならず、メッセージが含むデータ値についても起こり得る。このような許容差内の正常メッセージ及び異常メッセージに基づいて異常メッセージであるか否かを判断するための基準メッセージが決定される場合、基準メッセージは適切に設定されることが望まれる。例えば、正常メッセージ及び異常メッセージのうち正常メッセージが基準メッセージに設定されることが望まれる。
【0015】
そこで、本開示の一態様に係る決定方法は、ネットワーク及び前記ネットワークに接続される1以上の電子制御ユニットを含む車載ネットワークシステムにおける不正通信の検知に用いられる基準メッセージの決定方法であって、前記基準メッセージは、前記ネットワークに送出されるメッセージが異常メッセージであるか否かの判定の基準に用いられるメッセージであり、前記決定方法は、前記基準メッセージの候補である1以上の基準メッセージ候補に関する候補情報を保存する保存ステップと、前記保存ステップで保存された前記候補情報に含まれる前記1以上の基準メッセージ候補から前記基準メッセージを決定するための前記決定方法を、前記1以上の基準メッセージ候補に基づいて決定する第1決定ステップと、前記第1決定ステップで決定された前記決定方法を用いて、前記1以上の基準メッセージ候補から前記基準メッセージを決定する第2決定ステップとを含む。
【0016】
これにより、1以上の基準メッセージ候補に応じた決定方法が決定されるので、例えば、1以上の基準メッセージ候補に異常メッセージが含まれる場合、当該異常メッセージが基準メッセージに設定されることを抑制することができる。よって、より適切な基準メッセージを決定することができる。また、例えば、基準メッセージの決定方法が固定されている場合に比べて、より適切な基準メッセージを決定することができる。
【0017】
また、前記第1決定ステップでは、前記基準メッセージを決定するための複数の決定方法のそれぞれにおいて、前記1以上の基準メッセージ候補の中から当該決定方法により前記基準メッセージを決定することの適切度合いを示す適切度を算出し、算出された前記適切度に基づいて前記決定方法を決定してもよい。
【0018】
これにより、適切度に基づいて、基準メッセージを決定するための決定方法を適切に決定することができる。
【0019】
また、前記第1決定ステップでは、前記複数の決定方法の中で、前記適切度が最も高い決定方法を、前記1以上の基準メッセージ候補から前記基準メッセージを決定するための決定方法に決定してもよい。
【0020】
これにより、適切度に基づいて、基準メッセージを決定するための決定方法をさらに適切に決定することができる。
【0021】
また、前記適切度は、前記ネットワークに送出されるメッセージに対する予測値と、前記1以上の基準メッセージ候補が示す値それぞれとの第1の差を算出し、算出された2以上の前記第1の差同士の差である第2の差として算出されてもよい。
【0022】
基準メッセージ候補に正常メッセージ及び異常メッセージが含まれる場合、正常メッセージにおける第1の差と、異常メッセージにおける第1の差とは、離れた値となり得る。つまり、基準メッセージ候補に異常メッセージが含まれると、第2の差が大きくなり得る。
【0023】
そこで、第2の差が大きくなる決定方法を基準メッセージの決定方法に決定することで、正常メッセージと異常メッセージとが含まれる基準メッセージ候補において、正常メッセージを基準メッセージに決定することができるので、より適切に基準メッセージを決定することができる。
【0024】
また、前記第1決定ステップにおいて、前記1以上の基準メッセージ候補が示す値が3つ以上ある場合、前記予測値に近い2つの前記値を抽出し、抽出した2つの前記値と前記予測値とに基づいて2つの前記第1の差を算出してもよい。
【0025】
これにより、予測値に近い2つの値、つまり基準メッセージに適していると考えられる2つの値に基づいて決定方法を決定できるので、基準メッセージの決定により適した決定方法を決定することができる。
【0026】
また、前記予測値は、過去に決定された前記基準メッセージが示す値に基づいて算出されてもよい。
【0027】
これにより、過去の基準メッセージが示す値を利用して予測値を算出することができるので、予測値の算出における処理量を低減することができる。
【0028】
また、前記予測値は、予め作成された予測モデルに同一IDの前記1以上の基準メッセージ候補を入力することで取得されてもよい。
【0029】
これにより、予測モデルを用いることで、容易に予測値を算出することができる。
【0030】
また、前記決定方法は、前記ネットワークに送出されるメッセージが送信される周期に基づいて前記基準メッセージを決定するための周期判定方法、及び、前記ネットワークに送出されるメッセージに含まれるデータの値に基づいて前記基準メッセージを決定するためのデータ判定方法の少なくとも一つを含んでもよい。
【0031】
これにより、ネットワークで一般的に使用される指標である周期、又は、データ値のどちらかの判定種別を利用して、基準メッセージを決定することができる。
【0032】
また、さらに、前記ネットワークに送出されるメッセージが異常メッセージであるか否かを判定する判定ステップを含み、前記1以上の基準メッセージ候補には、前記判定ステップにおいて異常であると判定された前記異常メッセージを含み、前記第2決定ステップでは、前記1以上の基準メッセージ候補のうち前記異常メッセージ以外のメッセージが前記基準メッセージに決定されてもよい。
【0033】
これにより、異常メッセージが含まれる場合に、当該異常メッセージが基準メッセージに決定されることを抑制することができる。つまり、基準メッセージをより一層適切に決定することができる。
【0034】
また、さらに、前記ネットワークに送出されるメッセージが異常メッセージであるか否かを判定する判定ステップを含み、前記第2決定ステップでは、現在の受信周期において正常と判定された1以上のメッセージを基準メッセージ候補として、次の受信周期における基準メッセージを、前記次の受信周期の前に決定してもよい。
【0035】
これにより、現在の受信周期内において、次の受信周期の基準メッセージを決定するので、決定された基準メッセージ以外の基準メッセージ候補を現在の受信周期内に削除することが可能となる。よって、基準メッセージの決定方法を実行する装置が有する記憶装置の容量を減らすことが可能となる。
【0036】
また、本開示の一態様に係る決定システムは、ネットワーク及び前記ネットワークに接続される1以上の電子制御ユニットを含む車載ネットワークシステムにおける不正通信の検知に用いられる基準メッセージの決定システムであって、1以上のプロセッサと、記憶部とを備え、前記基準メッセージは、前記ネットワークに送出されるメッセージが異常メッセージであるか否かの判定の基準に用いられるメッセージであり、前記1以上のプロセッサは、前記記憶部を用いて、前記基準メッセージの候補である1以上の基準メッセージ候補に関する候補情報を保存し、保存された前記候補情報に含まれる前記1以上の基準メッセージ候補から前記基準メッセージを決定するための決定方法を、前記1以上の基準メッセージ候補に基づいて決定し、前記1以上の基準メッセージ候補から、前記決定方法を用いて前記基準メッセージを決定する。また、本開示の一態様に係るプログラムは、上記に記載の基準メッセージの決定方法をコンピュータに実行させるためのプログラムである。
【0037】
これにより、上記の基準メッセージの決定方法と同様の効果を奏する。
【0038】
以下、実施の形態について図面を参照しながら具体的に説明する。
【0039】
なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。つまり、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、ステップ、ステップの順序などは、本開示の一例であり、本開示を限定する主旨ではない。本開示は、請求の範囲の記載に基づいて特定される。したがって、以下の実施の形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素は、本開示の課題を達成するために必ずしも必要ではないが、より好ましい形態を構成する構成要素として説明される。
【0040】
(実施の形態1)
[1.概要]
ここでは、送信されているメッセージが異常メッセージであるか否かの判定がなされる車載ネットワークシステムを例に用いて実施の形態1について図面を参照しながら説明する。
【0041】
[1.1 車載ネットワークシステムの全体構成]
図1は、本実施の形態における車載ネットワークシステム10の全体構成を示すブロック図である。車載ネットワークシステム10は、例えば、車両1に搭載される。
【0042】
車載ネットワークシステム10は、CANネットワークで構成され、ECU(図中のECU100a、ECU100b、ECU100c、及びECU100dであり、以下ではこれらを集合的に、又は特定しない一部を指して、以下ではECU100とも表記する)と、バス(図中のバス200a及びバス200bであり、以下ではこれらを集合的に、又は特定しない一方を指して、以下ではバス200とも表記する)と、ゲートウェイ300とを備える。
【0043】
ECU100aはエンジン101に、ECU100bはブレーキ102に、ECU100cはドア開閉センサ103に、ECU100dはウィンドウ開閉センサ104にそれぞれ接続されている。ECU100は、それぞれが接続されている機器の状態を取得し、取得した状態を表すメッセージを周期的にバス200に送出している。例えばECU100aは、エンジン101の一状態である回転数を取得し、この回転数を表すデータ値を含むメッセージに所定のIDを付けてバス200に送出する。また、各ECU100は、他のEUC100が送信したメッセージをバス200から読み出し、メッセージに付されたIDに応じて選択的に受信する。この選択的な受信については後述する。
【0044】
ゲートウェイ300は、ECU100a及びECU100bが接続されているバス200aと、ECU100c及びECU100dが接続されているバス200bとを接続している。ゲートウェイ300は一方のバスから受信したメッセージを、もう一方のバスに転送する機能を持つ。ゲートウェイ300もまた、CANネットワーク上ではひとつのノードである。
【0045】
なお、車載ネットワークシステム10は、メッセージが異常メッセージであるか否かの判定をする不正通信検知基準決定システム(例えば、基準メッセージの決定システム)等が適用可能な対象を説明するための例であり、その適用対象は車載ネットワークシステム10に限定されない。
【0046】
[1.2 メッセージのデータフォーマット]
図2は、CANプロトコルのデータフレームフォーマット(メッセージのフォーマット)を示す図である。ここではCANプロトコルにおける標準IDフォーマットにおけるメッセージを示している。
【0047】
メッセージは、Start Of Frame(図中及び以下、SOFとも表記する)と、IDフィールドと、Remote Transimission Request(図中及び以下、RTRとも表記する)と、IDentifier Extension(図中及び以下、IDEとも表記する)と、予約bit(図中及び以下、rとも表記する)と、データレングスコード(図中及び以下、DLCとも表記する)と、データフィールドと、Cycric Redundancy Check(図中及び以下、CRCとも表記する)シーケンスと、CRCデリミタ(図中、左のDEL)と、Acknowledgement(図中及び以下、ACKとも表記する)スロットと、ACKデリミタ(図中、右のDEL)と、エンドオブフレーム(図中及び以下、EOFとも表記する)とから構成される。
【0048】
SOFは、1bitのドミナントである。ドミナント(優性の意)とは、データの伝達にデジタル方式が用いられるCANネットワークにおいて、“0”の値を送信するようにバスを構成する2本のケーブルに電圧がかけられた状態、又は送信されるこの“0”の値のことである。これに対し、“バスを構成する2本のケーブルに1”の値を送信するように電圧がかけられた状態、又は送信されるこの“1”の値のことはレセシブ(劣性の意)と呼ばれる。2つのノードからバスに同時に“0”の値と“1”の値とが送信された場合には、“0”の値が優先される。アイドル時のバスはレセシブである。各ECU100は、バス200の状態をレセシブからドミナントへ変化させることでメッセージの送信を開始し、他のECU100はこの変化を読み取って同期する。
図2中のメッセージを構成するドミナント又はレセシブを示す線が実線である部分は、ドミナント又はレセシブの各値を取り得ることを示す。SOFはドミナント固定であるため、ドミナントの線は実線であり、レセシブの線は破線である。
【0049】
IDとは、メッセージが含むデータの種類を示す11bitの値である。またCANでは、複数のノードが同時に送信を開始したメッセージ間での通信調停において、IDの値がより小さいメッセージがより高い優先度となるよう設計されている。
【0050】
RTRとは、フレームがメッセージ(データフレーム)であることを示す1bitのドミナントである。
【0051】
IDEとrは、それぞれ1bitのドミナントである。
【0052】
DLCは、続くデータフィールドの長さを示す4bitの値である。
【0053】
データフィールドは、送信されるデータの内容を示す値であり、最大64bit長であり8bit単位で長さを調整できる。送られるデータのこの部分への割り当てに関する仕様は、車種や製造者に依存する。
【0054】
CRCシーケンスは、SOF、IDフィールド、コントロールフィールド、及び、データフィールドの送信値より算出される15bitの値である。
【0055】
CRCデリミタは1bitのレセシブ固定の、CRCシーケンスの終了を表す区切り記号である。受信ノードは、受信したメッセージのSOF、IDフィールド、コントロールフィールド、及びデータフィールドの値から算出した結果をCRCシーケンスの値と比較することで、受信したメッセージの異常の有無を判断する。
【0056】
ACKスロットは1bit長で、送信ノードはこの部分でレセシブを送信する。受信ノードはCRCシーケンスまで正常に受信ができていれば確認応答としてドミナントを送信する。ドミナントが優先されるため、1メッセージの通信がCRCシーケンスまで正常に行われていれば、ACKスロットの送信中のバス200はドミナントである。
【0057】
ACKデリミタは1bitのレセシブ固定の、ACKスロットの終了を表す区切り記号である。
【0058】
EOFは7bitのレセシブ固定で、メッセージの終了を示す。
【0059】
なお、メッセージのデータフォーマットは、メッセージが異常メッセージであるか否かの判定をする不正通信検知基準決定システム等が適用可能な対象を説明するための例であり、その適用対象は本データフォーマットに限定されない。
【0060】
[1.3 ゲートウェイの構成]
図3は、車載ネットワークシステム10に含まれるゲートウェイ300の機能構成の一例を示すブロック図である。ゲートウェイ300は、フレーム送受信部310と、フレーム解釈部320と、受信ID判断部330と、受信IDリスト保持部340と、フレーム処理部350と、転送ルール保持部360と、不正検知処理機能群370と、フレーム生成部380とを備える。ゲートウェイ300は、ネットワーク及びネットワークに接続される1以上の電子制御ユニット(ECU)を含む車載ネットワークシステム10における不正通信の検知に用いる基準メッセージを決定する。
【0061】
なお、これらの構成要素は機能構成要素であり、ゲートウェイ300は、例えばプロセッサで実現される処理部、半導体メモリ等で実現される記憶部、入出力ポートで実現される入出力部等を備える情報処理装置として提供される。上記に挙げた各機能構成要素は、記憶部に保持されるプログラムの処理部による読み出し及び実行、記憶部による所定のデータの保持、若しくは入出力部を介してのデータの送受信、又はこれらの組み合わせで実現される。
【0062】
フレーム送受信部310は、バス200a、200bのそれぞれに対して、CANのプロトコルに従ったメッセージを送受信する。より具体的には、フレーム送受信部310は、バス200に送出されたメッセージを1bitずつ読み出し、読み出したメッセージをフレーム解釈部320に転送する。また、フレーム送受信部310は、フレーム生成部380より通知を受けたバス情報に応じて、メッセージをバス200a及び200bに1bitずつ送出する。フレーム送受信部310は、バス200aから受信したメッセージをバス200bに送信し、バス200bから受信したメッセージをバス200aに送信することでバス200間でのメッセージの転送を実行する。
【0063】
フレーム解釈部320は、フレーム送受信部310よりメッセージの値を受け取り、CANプロトコルにおける各フィールドにマッピングするようにしてフレーム(メッセージ)の解釈を行う。この解釈においてIDフィールドの値と判断した一連の値を、フレーム解釈部320は受信ID判断部330へ転送する。
【0064】
フレーム解釈部320はさらに、受信ID判断部330から通知される判定結果に応じて、メッセージのIDフィールドの値及びIDフィールド以降に現れるデータフィールドをフレーム処理部350へ転送するか、メッセージの受信を中止するかを決定する。
【0065】
またフレーム解釈部320は、CANプロトコルに則っていないメッセージと判断した場合は、エラーフレームを送信するようにフレーム生成部380へ要求する。エラーフレームとは、CANネットワーク上でエラーが発生した場合にノードから送信される、上述のメッセージとは異なる、CANプロトコルで規定される所定のフォーマットのフレームである。例えば、エラーフラグがバスに送出されると、そのネットワークでの直近のメッセージの送信は中断される。
【0066】
また、フレーム解釈部320は、他のノードが送信したエラーフレームを受信したと判断した場合、読取中のメッセージを破棄する。
【0067】
受信ID判断部330は、フレーム解釈部320からIDフィールドの値を受け取り、受信IDリスト保持部340が保持しているメッセージIDのリストに従い、読み出したメッセージを受信するか否かの判定を行う。受信ID判断部330は、この判定の結果をフレーム解釈部320へ通知する。
【0068】
受信IDリスト保持部340は、ゲートウェイ300が受信するメッセージIDのリスト(以下、受信IDリストともいう)を保持する。
図4は、受信IDリストのデータ構成の一例を示す図である。受信IDリストの詳細は、この例を用いて後述する。
【0069】
フレーム処理部350は、転送ルール保持部360が保持する転送ルールに従って、受信したメッセージのIDに応じて転送先のバスを決定し、転送先のバスと、フレーム解釈部320より通知されたメッセージIDと、転送するデータとをフレーム生成部380へ渡す。
【0070】
またフレーム処理部350は、フレーム解釈部320より受け取ったメッセージを不正検知処理機能群370へ送り、そのメッセージが、異常メッセージであるか否かの判定を要求する。フレーム処理部350は、不正検知処理機能群370で異常メッセージであると判定されたメッセージを、転送しない。
【0071】
転送ルール保持部360は、バス毎のデータ転送に関するルール(以下、転送ルールともいう)を保持する。
図5は、転送ルールのデータ構成の一例を示した図である。転送ルールの詳細は、この例を用いて後述する。
【0072】
不正検知処理機能群370は、受信中のメッセージが異常メッセージであるかどうかを判定する機能群である。不正検知処理機能群370に含まれる機能構成の詳細は後述する。
【0073】
フレーム生成部380は、フレーム解釈部320からのエラーフレーム送信の要求に従い、エラーフレームを構成してフレーム送受信部310に送出させる。
【0074】
またフレーム生成部380は、フレーム処理部350より受け取ったメッセージID及びデータを使ってメッセージフレームを構成し、バス情報とともに、フレーム送受信部310へ送る。
【0075】
[1.4 受信IDリスト]
図4は、本実施の形態における受信IDリストのデータ構成の一例を示す図である。受信IDリストは、ゲートウェイ300が受信するメッセージIDのリストである。この例では、各行にゲートウェイ300がバス200から受信して処理する対象であるメッセージのIDが含まれている。この例の受信IDリストによる設定では、ゲートウェイ300は、メッセージIDが「1」、「2」、「3」又は「4」のメッセージを受信する。受信IDリストに含まれないIDを持つメッセージの受信は中止される。なお、この例におけるIDの値及びリストに含まれるIDの個数は説明のための例であり、ゲートウェイ300で用いられる受信IDリストの構成を限定するものではない。
【0076】
[1.5 転送ルール]
図5は、本実施の形態におけるゲートウェイ300で保持される転送ルールのデータ構成の一例を示す図である。この例では、各行にメッセージの転送元のバスと転送先のバス(この例では200a及び200bで示される)との組み合わせ、及び転送対象のメッセージのIDが含まれる。この例の転送ルールによる設定では、ゲートウェイ300は、バス200aから受信するメッセージは、IDが何であってもバス200bに転送する。
【0077】
また、バス200bから受信するメッセージは、メッセージIDが「3」のメッセージのみバス200aに転送される。
【0078】
[1.6 不正検知処理機能群の構成]
図6は、本実施の形態における不正検知処理機能群370の機能構成の一例を示すブロック図である。
図6は、ゲートウェイ300が備える不正検知処理機能群370の機能構成を示すブロック図である。不正検知処理機能群370は、不正検知部371と、基準メッセージ情報保持部372と、メッセージ保存処理部373と、正常メッセージ情報保持部374と、基準メッセージ決定部375と、判定種別決定部376と、周期判定部377と、データ判定部378とを有する。
【0079】
なお、これらの機能構成要素も、ゲートウェイ300において記憶部に保持されるプログラムの処理部による読み出し及び実行、記憶部による所定のデータの保持、若しくは入出力部を介してのデータの送受信、又はこれらの組み合わせで実現される。
【0080】
不正検知部371は、フレーム処理部350から受け取ったメッセージが異常メッセージであるか否かを判定する。
【0081】
不正検知部371は、複数種類の判定機能を持つ。各判定機能では、あらかじめ設定されて記憶部に保存(格納)されている、各判定機能で互いに異なるルール(図示なし)を参照し、参照したルールを用いて受信したメッセージのチェック、つまり、各メッセージがこのルールに適合するか否かの判定を行う。そして、不正検知部371は、各判定機能の判定結果に基づいて、受信したメッセージが異常メッセージであるか否かを判定する。受信したメッセージが異常メッセージであれば、不正検知部371は不正の発生を検知する。
【0082】
図7は、本実施の形態における不正検知部371の機能構成の一例を示すブロック図である。この例では、不正検知部371は、メッセージの所定のポイントをチェックする6種類の判定機能を持つ。具体的には、6種類の判定機能は、メッセージのIDフィールドをチェックする機能(ID判定機能)と、メッセージのデータ長をチェックする機能(データ長判定機能)と、メッセージが送信される周期(時間間隔)をチェックする機能(送信周期判定機能)と、メッセージが送信される頻度をチェックする機能(送信頻度判定機能)と、メッセージのデータフィールドの値(データ値)をチェックする機能(データ値判定機能)と、これらの判定機能の判定結果、送信周期、頻度、データ値、又はデータ値の変化量などに基づいて車両の状態を認識し、車両状態をチェックする機能(例えば、車両状態判定機能)とを含む。さらに不正検知部371は、受信したメッセージが異常メッセージであるか否かを、これらの判定機能による判定結果から総合的に判定する最終結果判定機能を持つ。最終結果判定機能の結果が、不正検知部371による不正の検知の結果となる。
【0083】
なお、これらの機能構成要素も、ゲートウェイ300において記憶部に保持されるプログラムの処理部による読み出し及び実行、記憶部による所定のデータの保持、若しくは入出力部を介してのデータの送受信、又はこれらの組み合わせで実現される。
【0084】
上記の各判定機能においてメッセージの所定のポイントをチェックする際に、過去に受信した同一IDのメッセージの情報、又は関連するメッセージの情報を基準としてチェックする場合がある。各判定機能は、基準メッセージ情報保持部372から、基準となるメッセージの情報を取得する。
【0085】
図6の説明に戻って、不正検知部371は、受信したメッセージから、基準メッセージの候補となるメッセージに関する情報を、基準メッセージ情報保持部372へ通知する。不正検知部371は、受信したメッセージのうち、最終結果判定機能が「正常メッセージ」と判定したメッセージを基準メッセージの候補となるメッセージ(基準メッセージ候補)として基準メッセージ情報保持部372へ通知する。基準メッセージ候補は、ネットワークに送出されるメッセージが異常メッセージであるか否かの判定の基準に用いる基準メッセージの候補である。
【0086】
不正検知部371は、最終結果判定機能が「正常メッセージ」と判定したメッセージをメッセージ保存処理部373へも通知する。
【0087】
基準メッセージ情報保持部372は、不正検知部371が利用する基準メッセージに関する情報と、基準メッセージの候補に関する情報とを保持する。例えば、周期的に送信されるメッセージの場合、1周期分古い同一IDのメッセージが基準メッセージになる。一方で、今の周期に受信したメッセージは、1周期後のメッセージに対して基準メッセージとなる可能性があるメッセージ(基準メッセージ候補)であるため、今の周期では基準メッセージ候補として保持しておく。
【0088】
なお、基準メッセージに関する情報は、例えば、基準メッセージ決定部375により決定された基準メッセージを示す情報である。また、基準メッセージの候補に関する情報は、候補情報の一例であり、例えば、1以上の基準メッセージ候補を示す情報である。基準メッセージに関する情報は、例えば、候補情報に含まれる1以上の基準メッセージ候補のうちの1つの基準メッセージ候補を示す情報である。
【0089】
なお、基準メッセージ情報保持部372は、さらに、基準メッセージ候補が保存されていない場合に基準メッセージとして用いられ得るメッセージを保持していてもよい。基準メッセージ情報保持部372は、予め当該メッセージを保持していてもよい。
【0090】
基準メッセージ情報保持部372は、不正検知部371から通知された基準メッセージの候補となるメッセージに関する情報を保持する。また、基準メッセージ情報保持部372は、基準メッセージ決定部375からの要求に応じて、基準メッセージの候補となるメッセージに関する情報を基準メッセージ決定部375に通知する。さらに、基準メッセージ情報保持部372は、基準メッセージ決定部375が決定した基準メッセージに関する情報も保持し、不正検知部371からの要求に応じて、不正検知部371へ基準メッセージに関する情報を通知する。基準メッセージ情報保持部372は、基準メッセージ決定部375が、基準メッセージ候補から基準メッセージを決定すると、その際に利用された基準メッセージ候補を削除する。
【0091】
メッセージ保存処理部373は、不正検知部371から通知されたメッセージに関する情報を、正常メッセージ情報保持部374へ保存する処理を行う。また、メッセージ保存処理部373は、ある周期に複数の同一IDのメッセージを正常メッセージとして保存したときに、基準メッセージ決定部375により、それら複数の同一IDのメッセージから、1つのメッセージが基準として選択されると、その基準メッセージとして選択されたメッセージのみを残し、他のメッセージを削除する、又は、どのメッセージが基準メッセージとして選択されたかを示す情報を一緒に保存する。
【0092】
正常メッセージ情報保持部374は、不正検知部371が正常メッセージと判定したメッセージに関する情報を保持する。この情報は、周期判定部377又はデータ判定部378が過去に受信したメッセージから今受信したメッセージの受信時刻又はデータの値の予測値を算出する際に利用する。
【0093】
基準メッセージ決定部375は、不正検知部371の送信周期判定機能での1周期分古い同一IDのメッセージからの送信時間の差、及びデータ値判定機能での1周期分古い同一IDのメッセージからの変化量の算出に基づいて、基準として用いられる基準メッセージを決定する。
【0094】
例えば、周期的に送信されるメッセージについて、受信予定時刻(例えば、
図8に示す受信想定時刻T1を参照)の前後に時間長α(
図8を参照)のマージンが考慮され、データの変化量の前後にデータ値のマージンが考慮されている場合、どちらのマージンからも外れない複数のメッセージが送信される場合がある。このとき、基準メッセージ決定部375は、これらの複数のメッセージを基準メッセージ候補として、1周期後の同一IDのメッセージのための基準メッセージとして用いるメッセージを決定する。
【0095】
基準メッセージ決定部375は、基準メッセージ情報保持部372から基準メッセージの候補となるメッセージ(基準メッセージ候補)に関する情報を取得し、判定種別決定部376が決定した決定方法を用いてその候補から基準メッセージとして用いるメッセージを決定する。
【0096】
基準メッセージ決定部375は、基準メッセージを決定するときに、判定種別決定部376へ基準メッセージの候補を通知し、判定種別決定部376が決定した結果に応じた判定種別を用いて、基準メッセージ候補から、基準メッセージを決定する。
【0097】
判定種別決定部376は、1以上の基準メッセージ候補から基準メッセージを決定するための決定方法を、1以上の基準メッセージ候補に基づいて決定する。決定方法は、2以上の判定方法を含み、ネットワークに送出されるメッセージが送信される周期に基づいて基準メッセージを決定するための判定を行う周期判定方法、及び、ネットワークに送出されるメッセージに含まれるデータの値に基づいて基準メッセージを決定するための判定を行うデータ判定方法の少なくとも一つを含む。本実施の形態では、決定方法は、周期判定方法及びデータ判定方法を含む。
【0098】
判定種別決定部376は、例えば、基準メッセージ決定部375から通知された基準メッセージ候補と、不正検知部371が保持するルールの値とを取得し、周期判定部377とデータ判定部378とに判定を依頼する。判定種別決定部376は、周期判定部377の判定結果として得られる明確度とデータ判定部378の判定結果として得られる明確度とから、周期判定とデータ値判定とのどちらの判定種別を使用して1以上の基準メッセージ候補から基準メッセージを決定すれば良いかを決定して基準メッセージ決定部375へ通知する。
【0099】
なお、明確度の算出方法は後述するが、明確度は、1以上の基準メッセージ候補の中から基準メッセージを明確に決定できるかどうかの度合いを示す。明確度は、1以上の基準メッセージ候補のうち当該基準メッセージ候補が基準メッセージであることの適切度合いを示すとも言える。また、明確度は、複数の決定方法のそれぞれにおいて、1以上の基準メッセージ候補の中から当該決定方法により基準メッセージを決定することの適切度合いを示すとも言える。明確度は、適切度の一例である。
【0100】
例えば、基準メッセージ候補としてメッセージM1(
図8を参照)とメッセージM2(
図8を参照)とがあり、現在の基準メッセージと比較した際に、明確度は、メッセージM1もメッセージM2も基準メッセージからの差が同じような場合には低く、メッセージM1とメッセージM2とで基準メッセージからの差が大きく違う場合には高くなる。そして、判定種別決定部376は、周期判定とデータ値判定とで明確度の高い判定種別を選択する。例えば、判定種別決定部376は、周期判定とデータ値判定とで最も高い(1番高い)明確度の判定種別を選択する。判定種別決定部376は、例えば、複数の決定方法のそれぞれにおいて明確度を算出し、複数の決定方法の中で、明確度が最も高い決定方法を、1以上の基準メッセージ候補から基準メッセージを決定するための決定方法に決定するとも言える。
【0101】
これにより、基準メッセージとの差が基準メッセージ候補のメッセージ間で似たような差でありどちらとも判定が難しい判定種別ではなく、基準メッセージとの差が基準メッセージ候補のメッセージ間で大きく異なり明らかに判定可能な判定種別を用いて基準メッセージを選択することができるため、基準メッセージ決定部375による基準メッセージの選択がより確実なものとなる。
【0102】
判定種別決定部376は、周期判定部377から得られた明確度と、データ判定部378から得られた明確度とを比較する際に、例えば、それぞれの明確度の大きさをそろえるために、それぞれのルールにおけるマージンで正規化する。例えば、判定種別決定部376は、受信時刻に対するマージンが想定値T1±αの幅(
図8を参照)の場合、周期判定部377から得られた明確度を2αで割った値を用いて判定種別を決定する。なお、後述する
図8では、想定値T1は時刻の想定値T1を示しており、受信想定時刻T1とも記載する。
【0103】
なお、明確度の正規化方法としては、ルールにおけるマージンで正規化したが、これに限定されない。例えば、マージンが想定値T1±αの幅の場合は、明確度を2αで割るのではなく、αで割ってもよいし、想定値T1(予測値)で割ることで正規化してもよい。また、あらかじめ、テストデータなどを用いて想定値T1と実際の受信時刻又はデータ値とのずれ量を計測し、ずれ量の分散値σを算出し、その分散値(σ、2σ、3σなど)で正規化してもよい。これに限らず、異なる単位の値を正規化できる手法であればよい。また、事前に周期判定とデータ判定とで、判定結果の明確さ(明確度)に差があることが分かっていれば、それを加味して正規化してもよい。例えば、周期判定の明確度の方がデータ判定の明確度より高いとすれば、正規化した周期判定の明確度にさらに係数を掛ける、又は、定数を足すなどしてもよい。
【0104】
周期判定部377は、現在の基準メッセージの受信時刻と、不正検知部371の送信周期判定機能が参照するルールに含まれる周期の情報とから、今の周期における受信想定時刻(T1)を受信時刻の予測値として算出する。周期判定部377は、判定種別決定部376から通知された複数の基準メッセージ候補の受信時刻と、予測値である受信想定時刻(T1)とを比較することで複数の基準メッセージ候補の中から基準メッセージを選択する。
【0105】
図8は、本実施の形態におけるメッセージの受信パターンを示す図である。例えば、
図8に示すように、メッセージM1の受信時刻がT11で、メッセージM2の受信時刻がT12であった場合、T11もT12も、ルールのマージンの範囲であるT1-αとT1+αとの間にあるため、不正検知部371はどちらも正常メッセージであると判定する。しかし、基準メッセージとしてはどちらかを選択する必要がある。そこで、周期判定部377は、メッセージM1の受信時刻(T11)とメッセージM2の受信時刻(T12)とで、予測値である受信想定時刻(T1)に近いメッセージを、基準メッセージとして選択する。
図8においては、周期判定部377は、メッセージM1の方がメッセージM2よりも受信想定時刻(T1)に近いため、メッセージM1を基準メッセージとして選択する。
【0106】
周期判定部377は、複数の基準メッセージ候補の受信時刻と予測値である受信想定時刻との差から、明確度を算出する。例えば、
図8においては、メッセージM1の受信時刻T11と受信想定時刻T1との差(T11-T1)と、メッセージM2の受信時刻T12と受信想定時刻T1との差(T1-T12)の差(|(T11-T1)-(T1-T12)|、又は、||T11-T1|-|T12-T1||)を明確度と定義する。ここで“|A|”はAの絶対値を示す。例えば、受信想定時刻T1を中心として、メッセージM1とメッセージM2とが同程度離れている場合、つまり、|T11-T1|と|T12-T1|との値が同じような値になる場合、明確度が低くなる。一方、
図8のように、メッセージM1の受信時刻T11がメッセージM2の受信時刻T12より受信想定時刻T1に近い場合、つまり|T11-T1|の方が|T12-T1|よりも十分小さい場合、明確度が高くなる。
【0107】
なお、差(T11-T1)、及び、差(T1-T12)は、第1の差の一例であり、差(|(T11-T1)-(T1-T12)|、又は、差(|T11-T1|-|T12-T1||)は第2の差の一例である。明確度は、例えば、正の値(例えば絶対値)である。本実施の形態では、第2の差は、明確度を意味する。また、明確度は、1以上の基準メッセージ候補の中に異常メッセージが含まれている度合いを示すとも言える。
【0108】
なお、周期判定部377は、正常メッセージ情報保持部374が保持する同一IDの複数のメッセージの受信時刻の情報から、受信するメッセージの受信想定時刻としての予測値を算出してもよいし、受信時刻に相関のある異なるIDの1以上のメッセージの受信時刻の情報から、受信するメッセージの受信想定時刻としての予測値を算出してもよい。
【0109】
図6の説明に戻って、データ判定部378は、現在の基準メッセージのデータ値と、不正検知部371のデータ値判定機能が参照するルールに含まれるデータ値との変化量の情報から、今の周期における想定データ値(D1)をデータ値の予測値として算出する。データ判定部378は、判定種別決定部376から通知された複数の基準メッセージ候補のデータ値と、予測値である想定データ値(D1)とを比較することで複数の基準メッセージ候補の中から基準メッセージを選択する。
【0110】
また、データ判定部378は、複数の基準メッセージ候補のデータ値と予測値である想定データ値との差から、明確度を算出する。例えば、周期判定部377の場合と同様に、メッセージM1のデータ値D11と想定データ値D1との差(D11-D1)と、メッセージM2のデータ値D12と想定データ値D1との差(D1-D12)の差(|(D11-D1)-(D1-D12)|、又は、||D11-D1|-|D12-D1||)を明確度と定義する。なお、差(D11-D1)、及び、差(D1-D12)は、第1の差の一例であり、差(|(D11-D1)-(D1-D12)|、又は、||D11-D1|-|D12-D1||)は第2の差の一例である。本実施の形態では、第2の差は、明確度を意味する。また、明確度は、1以上の基準メッセージ候補の中に異常メッセージが含まれている度合いを示すとも言える。
【0111】
上記のように、判定方法は、ネットワークに送出されるメッセージに対する予測値と、基準メッセージ候補に関する情報の値それぞれとの差を算出し、それぞれの差(第1の差)の差(第2の差)を明確度とする。これにより、基準メッセージの候補として保存されたメッセージに応じて、明確度を算出することが可能となる。
【0112】
なお、データ判定部378は、正常メッセージ情報保持部374が保持する同一IDの複数のメッセージのデータ値から、受信するメッセージの想定データ値としての予測値を算出しても良いし、データ値に相関のある異なるIDの1以上のメッセージのデータ値の情報から、受信するメッセージの想定データ値としての予測値を算出しても良い。
【0113】
周期判定部377、又はデータ判定部378は、予め作成され、予測値を算出可能な予測モデルに基づいて予測値を予測してもよい。周期判定部377又はデータ判定部378は、例えば、同一IDの複数のメッセージのデータ値又は同一IDの複数のメッセージの受信時刻を入力データとして予測モデルに入力して得られる出力データ(データ値又は受信時刻の予測値)を予測値として取得してもよい。例えば、周期判定部377、又はデータ判定部378は、機械学習、統計的処理、又は確率理論を用いて、正常メッセージに関する情報からAR(AutoRegressive)モデル、ARMA(AutoRegressive Moving Average)モデル、HMM(Hidden Markov Model)、ベイジアンモデル(Bayesian Model)、SVM(Support Vector Machine)、ニューラルネットワーク、又はDeep Learningなどのモデルを生成し、そのモデルを用いて、受信するメッセージの受信想定時刻、又は、想定データ値に関する予測値を算出してもよい。
【0114】
また、周期判定部377、又はデータ判定部378は、現在(現フレーム)又は過去(過去のフレーム)の基準メッセージが示す値を次の受信周期の基準メッセージを決定するための予測値としてもよい。データ判定部378は、例えば、現在又は過去の基準メッセージが示す値(データ値)を次の受信周期の基準メッセージを決定するための予測値としもよい。例えば、予測値は、過去の基準メッセージが示す値に基づいて算出されてもよい。例えば、予測値は、過去の基準メッセージが示す値の平均値、中央値、最頻値であってもよいし、直近の基準メッセージが示す値と同じ値であってもよい。なお、本実施の形態では、基準メッセージが示す値は、例えば、受信時刻又はデータ値である。
【0115】
なお、周期判定部377、又はデータ判定部378は、3つ以上の基準メッセージ候補のメッセージがある場合、全ての基準メッセージ候補のメッセージから1つのメッセージM1を基準メッセージと判定した後に、基準メッセージと判定されなかった残りのメッセージから、次に基準メッセージの候補となり得るメッセージM2を判定し、最初に基準メッセージと判定されたメッセージM1と次に基準メッセージと判定されたメッセージM2との2つのメッセージから明確度を算出してもよい。例えば、周期判定部377、又はデータ判定部378は、3つ以上の基準メッセージ候補がある場合(例えば、1以上の基準メッセージ候補が示す値が3つ以上ある場合)、予測値に近い2つの基準メッセージ候補(例えば、2つの値)を抽出し、抽出した2つの基準メッセージ候補が示す値と予測値とに基づいて明確度を算出してもよい。
【0116】
なお、周期判定部377、又はデータ判定部378では、予測値との単純な値の差が小さいメッセージを基準メッセージと判定したが、これに限定されない。周期判定部377、又はデータ判定部378は、複数の基準メッセージ候補から、1つのメッセージを基準メッセージとして判定できる方法であればよく、例えば、実際の正常メッセージの受信時刻やデータ値などを真値としたときに、テストデータなどを用いて、事前に、真値と予測値のずれ量を学習し、そのずれ量の分布を加味して、基準メッセージを判定してもよい。例えば、周期判定部377、又はデータ判定部378は、実際の受信時刻が予測値から遅れる方向にずれることが少なければ、少しの遅れでも予測値から大きな差になるようにし、予測値より早い場合は、大きな差があっても少しの差になるようにしてもよい。また、周期判定部377、又はデータ判定部378は、ずれ量以外の指標を用いてもよいし、事前に学習するのではなく、受信したメッセージをリアルタイムに学習してもよい。この時、明確度の算出においても、分布を加味して算出する。
【0117】
なお、周期判定部377、又はデータ判定部378は、複数の基準メッセージ候補の情報と予測値との差から、明確度を算出するとしたが、これに限定されない。周期判定部377、又はデータ判定部378は、事前に、判定種別ごとに明確度を算出してもよい。この時、判定種別決定部376は、不正検知部371が保持している受信したメッセージに関連するルールの中で、一番明確度の高い判定種別を、基準メッセージを決定するために利用する判定種別として決定してもよい。
【0118】
なお、基準メッセージ情報保持部372が保持する基準メッセージの候補に関する情報としては、例えば、メッセージID、DLC、データ値、受信時刻などの情報を保持する。また、基準メッセージ情報保持部372は、基準メッセージを決定する際に必要となるメッセージIDごとのルールの情報を保持してもよい。また、データ値は、受信した全てのデータ値を保持していてもよいし、受信したデータ値のうちの特定の領域のデータ値のみを保存してもよいし、データ値をそのまま保存してもよいし、データ値に対して何らか演算した結果を保存してもよい。
【0119】
なお、不正検知部371は、受信したメッセージのうち、最終結果判定機能が「正常メッセージ」と判定したメッセージを基準メッセージの候補となるメッセージとして基準メッセージ情報保持部372へ通知するとしたが、これに限定されない。例えば、正常メッセージであるかどうかを判定するルールとは別に、基準メッセージであるかどうかを判定するルールを持ち、そのルールを満たすメッセージを基準メッセージ候補として、基準メッセージ情報保持部372へ通知してもよい。これにより、不正検知部371は、正常メッセージの中でもより基準メッセージにふさわしいメッセージのみを基準メッセージ候補とすることができる。また、逆に、不正検知部371は、正常メッセージから少し外れる異常メッセージを基準メッセージ候補とすることもでき、より広い範囲のメッセージから基準メッセージを決定することが出来る。
【0120】
[1.7 ECUの構成]
図9は、本実施の形態における車載ネットワークシステム10に含まれるECU100の機能構成の一例を示すブロック図である。ECU100は、フレーム送受信部110と、フレーム解釈部120と、受信ID判断部130と、受信IDリスト保持部140と、フレーム処理部150と、データ取得部170と、フレーム生成部180とを有する。
【0121】
なお、これらの構成要素は機能構成要素であり、ECU100は、例えばプロセッサで実現される処理部、半導体メモリ等で実現される記憶部、入出力ポートで実現される入出力部等を備える情報処理装置として提供される。上記に挙げた各機能構成要素は、記憶部に保持されるプログラムの処理部による読み出し及び実行、記憶部による所定のデータの保持、若しくは入出力部を介してのデータの送受信、又はこれらの組み合わせで実現される。
【0122】
フレーム送受信部110は、バス200に対して、CANのプロトコルに従ったメッセージを送受信する。より具体的には、フレーム送受信部110は、バス200に送出されたメッセージを1bitずつ読み出し、読み出したメッセージをフレーム解釈部120に転送する。また、フレーム送受信部110は、フレーム生成部180より通知を受けたメッセージをバス200に送出する。
【0123】
フレーム解釈部120は、フレーム送受信部110よりメッセージの値を受け取り、CANプロトコルにおける各フィールドにマッピングするようにしてフレーム(メッセージ)の解釈を行う。この解釈においてIDフィールドと判断した一連の値を、フレーム解釈部120は受信ID判断部130へ転送する。
【0124】
フレーム解釈部120はさらに、受信ID判断部130から通知される判定結果に応じて、メッセージのIDフィールドの値及びIDフィールド以降に現れるデータフィールドをフレーム処理部150へ転送するか、メッセージの受信を中止するかを決定する。
【0125】
またフレーム解釈部120は、CANプロトコルに則っていないメッセージと判断した場合は、エラーフレームを送信するようにフレーム生成部180へ要求する。
【0126】
またフレーム解釈部120は、他のノードが送信したエラーフレームを受信したと判断した場合、読取中のメッセージを破棄する。
【0127】
受信ID判断部130は、フレーム解釈部120からIDフィールドの値を受け取り、受信IDリスト保持部140が保持しているメッセージIDのリストに従い、読み出したメッセージを受信するか否かの判定を行う。受信ID判断部130は、この判定の結果をフレーム解釈部120へ通知する。
【0128】
受信IDリスト保持部140は、ECU100が受信するメッセージIDのリストである受信IDリストを保持する。受信IDリストは、
図4と同様であり、ここでは説明を省略する。
【0129】
フレーム処理部150は、受信したメッセージのデータに応じた処理を行う。処理の内容は、各ECU100によって異なる。例えば、ECU100aでは、時速が30kmを超えているときに、ドアが開いていることを示すメッセージを受信すると、アラーム音を鳴らすための処理を実行する。ECU100cは、ブレーキがかかっていないことを示すメッセージを受信しているときにドアが開くと、アラーム音を鳴らすための処理を実行する。これらの処理は説明を目的として挙げる例であり、ECU100は上記以外の処理を実行してもよい。このような処理を実行するために送出するフレームを、フレーム処理部150はフレーム生成部180に生成させる。
【0130】
データ取得部170は、各ECU100に接続されている機器状態又はセンサによる計測値等を示す出力データを取得し、フレーム生成部180に転送する。
【0131】
フレーム生成部180は、フレーム解釈部120から通知されたエラーフレーム送信の要求に従い、エラーフレームを構成してフレーム送受信部110へ送る。
【0132】
またフレーム生成部180は、データ取得部170より受け取ったデータの値に対してあらかじめ定められたメッセージIDを付けてメッセージフレームを構成し、フレーム送受信部110へ送る。
【0133】
[1.8 不正検知処理]
図10は、本実施の形態における不正検知処理の一例を示すフロー図である。具体的には、
図10は、不正検知処理機能群370での不正検知処理の一例を示すフロー図である。
【0134】
まず、不正検知部371は、フレーム処理部350からメッセージを受け取る(ステップS1001)。
【0135】
メッセージを受け取った不正検知部371は、周期的に送信されるメッセージの受信周期が次の受信周期に移ったかどうかを判定する(ステップS1002)。
【0136】
ステップS1002において、不正検知部371が次の受信周期に移っていると判定した場合(S1002でYes)、不正検知部371は基準メッセージ決定部375に新しい基準メッセージの決定を依頼し、基準メッセージ決定部375は基準メッセージを決定する(ステップS1003)。
【0137】
ステップS1003で新しい基準メッセージを決定した後、又はステップS1002において次の受信周期に移っていないと判定した場合(S1002でNo)、フレーム処理部350は、転送ルール保持部360に保持される転送ルールに従って、転送先のバスを決定する(ステップS1004)。
【0138】
フレーム処理部350は、フレーム解釈部320から受け取ったメッセージ内の各フィールドの値を不正検知処理機能群370へ通知し、異常メッセージであるか否かの判定を要求する。不正検知部371は、不正検知処理を行う(ステップS1005)。不正検知部371は、ID判定機能などの各種の判定機能を利用して、受信したメッセージが異常メッセージであるか正常メッセージであるかの判定を行う。このとき、不正検知部371の各種の判定機能は、必要に応じて、ステップS1003で決定された基準メッセージを用いて判定を行う。
【0139】
不正検知部371の最終結果判定機能は、ID判定機能などの各種の判定機能の判定の結果から総合的に、当該メッセージについての最終的な判定、つまり受信したメッセージが異常メッセージであるか否かの判定を行い(ステップS1006)、その判定の結果をフレーム処理部350へ通知する。ステップS1006は、判定ステップの一例である。
【0140】
異常メッセージであると不正検知部371が判定した場合(ステップS1006でYes)、当該メッセージの保存や転送は行われない。
【0141】
ステップS1006でメッセージが異常メッセージではなく正常メッセージであると判定された場合(ステップS1006でNo)、不正検知部371は、メッセージ保存処理部373に正常メッセージの保存を依頼し、メッセージ保存処理部373により正常メッセージに関する情報を正常メッセージ情報保持部374へ保存(格納)する処理と、不正検知部371が基準メッセージ候補として基準メッセージ情報保持部372へメッセージを保存(格納)する処理を行う(S1007)。ステップS1007は、保存ステップの一例である。
【0142】
その後、フレーム処理部350は、そのメッセージをステップS1004で決定した転送先のバスに、転送するようフレーム生成部380へ要求する。フレーム生成部380は、フレーム処理部350からの要求を受けて、指定された転送先が受信するようメッセージを生成し、このメッセージをフレーム送受信部310に送出させる。つまり、フレーム生成部380は、フレーム送受信部310を介してメッセージを転送先に転送する。(ステップS1008)。
【0143】
[1.9 基準メッセージ決定処理]
図11は、本実施の形態における基準メッセージ決定処理の一例を示すフロー図である。具体的には、
図11は、不正検知処理機能群370での基準メッセージの決定処理の一例を示すフロー図である。
【0144】
まず、基準メッセージ決定部375は、基準メッセージ情報保持部372から基準メッセージ候補を取得する(S1101)。
【0145】
基準メッセージ決定部375は、基準メッセージ情報保持部372から取得した基準メッセージ候補となるメッセージが複数あるか、一つなのかを判定する(S1102)。
【0146】
ステップS1102において、基準メッセージ候補となるメッセージが複数あった場合(ステップS1102でYes)、基準メッセージ決定部375は、判定種別決定部376に基準メッセージを決定するための判定方式の決定を依頼する。なお、複数の基準メッセージ候補には、異常メッセージが含まれ得る。
【0147】
判定種別決定部376は、不正検知部371からメッセージIDに紐付けられたルールを取得し、周期に関するルール、及び、データ値の変化に関するルールの2つのルールがあるかどうかを確認する(S1103)。
【0148】
ステップS1103において、周期に関するルール、及び、データ値の変化に関するルールの両方のルールがあった場合(ステップS1103でYes)、判定種別決定部376は、周期判定部377に周期による判定を依頼し、周期判定部377が複数の基準メッセージ候補の受信時刻から基準メッセージを判定する(S1104)。さらに、判定種別決定部376は、データ判定部378にデータ値の変化による判定を依頼し、データ判定部378が複数の基準メッセージ候補のデータ値から基準メッセージを判定する(S1105)。
【0149】
判定種別決定部376は、周期判定部377による判定結果と、データ判定部378による判定結果とから、どちらの判定種別(判定方法)を利用すべきかを決定し(S1106)、基準メッセージ決定部375へ通知する。判定種別決定部376は、例えば、周期判定部377から取得した明確度と、データ判定部378から取得した明確度とに基づいて、ステップS1106の判定を行う。例えば、判定結果は、明確度を含んでいてもよい。ステップS1106は、第1決定ステップの一例である。
【0150】
基準メッセージ決定部375は、判定種別決定部376から通知された判定方法を用いて、最終的な基準メッセージを決定する(S1107)。基準メッセージ決定部375は、明確度に基づいて基準メッセージを決定することで、1以上の基準メッセージ候補のうち異常メッセージ以外のメッセージを基準メッセージに決定することができる。ステップS1107は、第2決定ステップの一例である。
【0151】
ステップS1103においてNoの場合、判定種別決定部376は、周期に関するルールがあるかどうかを確認する(S1108)。ステップS1108で周期に関するルールがあった場合(ステップS1108でYes)、判定種別決定部376は、周期判定部377に周期による判定を依頼し、周期判定部377が複数の基準メッセージ候補の受信時刻から基準メッセージを判定する(S1109)。判定種別決定部376は、周期判定部377が判定した基準メッセージを最終的な基準メッセージとして決定する(S1110)。
【0152】
ステップS1108においてNoの場合、判定種別決定部376は、データ変化に関するルールがあるかどうかを確認する(S1111)。ステップS1111でデータ変化に関するルールがあった場合(S1111でYes)、判定種別決定部376は、データ判定部378にデータ値の変化による判定を依頼し、データ判定部378が複数の基準メッセージ候補のデータ値の変化量から基準メッセージを判定する(S1112)。判定種別決定部376は、データ判定部378が判定した基準メッセージを最終的な基準メッセージとして決定する(S1113)。
【0153】
ステップS1111においてNoの場合、判定種別決定部376は判定不能として基準メッセージ決定部375へ通知する。基準メッセージ決定部375は、あらかじめ決められた方法により、複数の基準メッセージ候補から、最終的な基準メッセージを決定する(S1114)。
【0154】
また、ステップS1102においてNoの場合、つまり基準メッセージ候補となるメッセージが1つのみあった場合、基準メッセージ決定部375は、当該1つの基準メッセージ候補を基準メッセージに決定する(S1115)。この場合、明確度を算出する処理は、行われない。
【0155】
なお、基準メッセージ決定部375は、周期に関するルールとデータ値の変化に関するルールとの両方のルールがあるかどうかを判定し、両方のルールがあった場合にのみ、判定種別決定部376にどちらの判定種別を利用すべきかの判定を依頼してもよい。この時、基準メッセージ決定部375は、周期に関するルールしかない場合、周期判定部377に周期による判定を依頼し、データ値に関するルールしかない場合、データ判定部378にデータ値による判定を依頼し、どちらのルールもない場合は、あらかじめ決められた方法により判定し、基準メッセージを決定してもよい。周期やデータ値に関するルールがない場合であっても、受信時刻、又は、データ値が予測できる場合には、その予測値を使って、基準メッセージを決定しても良い。
【0156】
[1.10 効果]
本実施の形態では、不正検知処理機能群370での不正検知処理において、不正検知部371の各種判定機能が利用する基準メッセージを決定する際に、周期判定とデータ値判定とにおいて、より明確に判定できる判定種別を選択し、選択した判定種別による判定結果から基準メッセージを決定する。これにより、従来起こり得た、異常メッセージを基準メッセージとして用いた結果、不正検知が正しくできない状況の発生を抑えることができるので、より高い精度で異常メッセージであるか否かの判定をすることができる。その結果、車載ネットワークシステム10の安全が高められる。
【0157】
(実施の形態2)
[2.概要]
ここでは、実施の形態2として、不正検知処理機能群の一部の機能が車両の外のサーバに配置され、ゲートウェイとサーバとが通信する車載ネットワークシステムについて、図面を参照しながら説明する。
【0158】
[2.1 車載ネットワークシステムの全体構成]
図12は、本実施の形態における車載ネットワークシステム10aの全体構成を示すブロック図である。
図12において、
図1に示される車載ネットワークシステム10と共通の構成要素については共通の参照符号を用いて示し、その説明を省略する。
【0159】
車載ネットワークシステム10aは、CANネットワークで構成され、ECU(図中のECU100a、ECU100b、ECU100c、及びECU100dであり、以下ではこれらを集合的に、又は特定しない一部を指して、以下ではECU100とも表記する)と、バス(図中のバス200a及びバス200bであり、以下ではこれらを集合的に、又は特定しない一方を指して、以下ではバス200とも表記する)と、ゲートウェイ300bと、外部ネットワーク400と、サーバ500とを備える。
【0160】
ゲートウェイ300bは、ECU100a及びECU100bが接続されているバス200aと、ECU100c及びECU100dが接続されているバス200bとを接続している。ゲートウェイ300bは一方のバスから受信したメッセージを、もう一方のバスに転送する機能を持つ。ゲートウェイ300bもまた、CANネットワーク上ではひとつのノードである。
【0161】
外部ネットワーク400は、ゲートウェイ300bとサーバ500とが通信するための通信ネットワークである。外部ネットワーク400の通信方法は、有線であっても無線であってもよい。また、無線通信方式は特に限定されないが、例えば既存技術であるWi-Fi、3G、又はLTE(Long Term Evolution)であってもよい。
【0162】
サーバ500は、外部ネットワーク400を介してゲートウェイ300bと通信を行う。
【0163】
ゲートウェイ300bとサーバ500とは、それぞれが実施の形態1における不正検知処理機能群370の一部の機能を分担して備え、ゲートウェイ300bとサーバ500とが連携して動作することで実施の形態1における不正検知処理機能群370の不正検知処理を実行する。
【0164】
[2.2 ゲートウェイの構成]
図13は、本実施の形態における車載ネットワークシステム10aに含まれるゲートウェイ300bの機能構成の一例を示すブロック図である。
図13において、
図3と共通の構成要素については共通の参照符号で示し、説明を省略する。以下、ゲートウェイ300bについて、ゲートウェイ300との差異点を中心に説明する。
【0165】
ゲートウェイ300bは、ゲートウェイ300の構成における不正検知処理機能群370に代えて不正検知処理機能群370bを有し、また、さらに外部通信部390を有する点が異なる。これらの構成要素も機能構成要素であり、ゲートウェイ300bにおいて記憶部に保持されるプログラムの処理部による読み出し及び実行、記憶部による所定のデータの保持、若しくは入出力部を介してのデータの送受信、又はこれらの組み合わせで実現される。
【0166】
不正検知処理機能群370bは、受信したメッセージが異常メッセージであるか否かの判定を、サーバ500と通信し、連携して実行する。不正検知処理機能群370bに含まれる構成の詳細は後述する。
【0167】
外部通信部390は、サーバ500との通信を行う。
【0168】
[2.3 不正検知処理機能群の構成]
図14は、本実施の形態における不正検知処理機能群370bの機能構成の一例を示すブロック図である。
図14において、
図6と共通の構成要素は共通の参照符号で示し、説明を省略する。
【0169】
不正検知処理機能群370bは、不正検知部371と、メッセージ保存処理部373bと、周期判定部377bと、データ判定部378bとを有する。
【0170】
メッセージ保存処理部373bは、不正検知部371の判定結果を受けて、受信したメッセージが正常メッセージであり、保存が必要と判定した場合には、外部通信部390を介してサーバ500と通信を行い、サーバ500に正常メッセージに関する情報を送信して保存させる。メッセージの保存の要否の判定については、実施の形態1と同様である。
【0171】
周期判定部377b及びデータ判定部378bは、判定種別決定部376からの判定要求に応じて、複数の基準メッセージ候補から基準メッセージを判定する。周期判定部377b及びデータ判定部378bは、この判定を行う際に、外部通信部390を介してサーバ500と通信を行い、サーバ500で生成された予測モデルを受信し、その受信した予測モデルを用いて予測値を計算する。
【0172】
なお、サーバ500での予測モデルの生成では、機械学習、統計的処理又は確率理論等の方式を用いて、正常メッセージに関する情報のモデルを取得し、そのモデルを予測モデルとしてもよい。また、サーバ500では、予測モデルの生成から周期判定部377b及びデータ判定部378bからの依頼に応じた予測値の計算までを行い、周期判定部377b及びデータ判定部378bは、予測値から基準メッセージを判定する処理のみを行ってもよい。
【0173】
なお、不正検知処理機能群370bとサーバ500との処理の分担は、上記に限定されず、適宜決定されるとよい。
【0174】
[2.4 サーバの構成]
図15は、本実施の形態におけるサーバ500の機能構成の一例を示すブロック図である。サーバ500は、正常メッセージ情報保持部374bと、予測モデル生成部379とを有する。これらの構成要素は機能構成要素であって、サーバ500は、いわゆるサーバコンピュータであり、プロセッサ等の情報処理装置、半導体メモリ等の記憶装置、入出力ポートを含む入出力部等を備える1台以上のコンピュータで実現される。上記に挙げた各機能構成要素は、記憶部に保持されるプログラムの処理部による読み出し及び実行、記憶部による所定のデータの保持、若しくは入出力部を介してのデータの送受信、又はこれらの組み合わせで実現される。
【0175】
正常メッセージ情報保持部374bは、ゲートウェイ300bのメッセージ保存処理部373から保存を指示された正常メッセージに関する情報を保持する。また、予測モデル生成部379からの要求に応じて、保持している正常メッセージに関する情報を出力する。
【0176】
予測モデル生成部379は、正常メッセージ情報保持部374bから、正常メッセージに関する情報を取得し、過去に受信した正常メッセージから受信想定時刻、及び、データ値の少なくとも一方を予測する。この時、受信想定時刻の予測には受信時刻情報のみを用いて予測しても良いし、さらにデータ値を加えて予測してもよい。また、同一IDのメッセージのみを用いて予測してもよいし、さらに他のIDのメッセージも加えて予測してもよい。具体的な予測方法としては、機械学習、統計的処理、又は確率理論を用いて、正常メッセージに関する情報からAR(AutoRegressive)モデル、ARMA(AutoRegressive Moving Average)モデル、HMM(Hidden Markov Model)、ベイジアンモデル(Bayesian Model)、SVM(Support Vector Machine)、ニューラルネットワーク、又はDeep Learningなどのモデル(ネットワーク)を生成し、そのモデルを用いて、受信するメッセージの受信想定時刻、又は、想定データ値に関する予測値を算出してもよい。また、上記に示していない予測方法を用いて予測してもよい。
【0177】
また、予測モデル生成部379は、ゲートウェイ300bの周期判定部377b、又はデータ判定部378bからの要求に応じて、予測モデルを送信する。
【0178】
なお、サーバ500は、複数の車両1と通信し、各車両1における不正検知処理機能群の一部の機能を担ってもよい。この場合、サーバ500は、それぞれの車両1に対して個別の正常メッセージ情報保持部374b及び予測モデル生成部379を有してもよいし、通信する複数の車両1に対して、一組の正常メッセージ情報保持部374b及び予測モデル生成部379を有してもよい。またサーバ500は、通信する複数の車両1の一部に対して一組の正常メッセージ情報保持部374b及び予測モデル生成部379を有してもよい。複数の車両1に対して一組を備える場合、正常メッセージ情報保持部374bは、各車両1から取得した正常メッセージに関する情報を、各車両1を識別する情報と一緒に保持する。
【0179】
また、予測モデル生成部379は、各車両1から受信した情報から予測モデルを個別に生成し、個別のモデルを各車両1へ送信してもよいし、各車両1からの情報を統合したものを用いて予測モデルを生成し、各車両1へそのモデルを送信してもよい。
【0180】
ここで、各車両1からの情報を統合する方法は、例えば全ての車両1からの情報を統合してもよいし、各車両1の製造メーカ又は車種、さらに型式、グレードごとに統合してもよい。又は、各車両1の車両クラス(大きさ、排気量等)ごと、各車両1の所在地ごと、又は各車両1が持つ機能(例えば、自動運転機能、運転支援機能、通信機能等)ごとに統合してもよい。又は、各車両1上のECU100等で実行されるファームウェア又はソフトウェアの種類若しくはさらにバージョンごとに統合してもよい。また、これらの統合方法の組み合わせでもよい。
【0181】
[2.5 効果]
本実施の形態では、ゲートウェイ300bと車両1の外部のサーバ500とが通信し、実施の形態1における不正検知処理機能群370の一部の機能が、サーバ500によって担われる。
【0182】
従来では、個々の車両1で収集される情報のみから予測モデルが生成され、予測モデルの精度が限られていた。しかし、本実施の形態においては、サーバ500に情報を保持することで、複数の車両1の情報から予測モデルを生成することが可能にある。これにより、より多くの正常メッセージに基づいて予測モデルが迅速に、又はより高い精度で生成される。そして各車両1ではこの予測モデルが用いられることで、より高い精度での基準メッセージの判定をすることができる。その結果、車載ネットワークシステム10aの安全が高められる。また、正常メッセージに関する情報がサーバ500に保持されるため、ゲートウェイ300bに大容量の情報保持装置を備える必要が無く、各車両1の製造及び維持コストを抑えることも可能となる。
【0183】
[3.その他の変形例]
本開示は、上記で説明した各実施の形態に限定されないのはもちろんであり、本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態に施したもの、及び異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の範囲内に含まれる。例えば以下のような変形例も本開示に含まれる。
【0184】
(1)上記の実施の形態では、不正検知処理機能群370の基準メッセージ決定部375は、不正検知部371から基準メッセージの決定を依頼されるとしたが、これに限定されない。
図16は、本変形例における不正検知処理機能群370cの機能構成の第1例を示すブロック図である。例えば、
図16に示すように、基準メッセージを決定するタイミングをフレーム処理部350が決定し、フレーム処理部350から基準メッセージ決定部375へ基準メッセージの決定が依頼されてもよい。
【0185】
これにより、基準メッセージを必要に応じて任意のタイミングで決定することが可能となる。
【0186】
(2)上記の実施の形態では、不正検知処理において、周期的に送信されるメッセージの受信周期が次に移った際に、基準メッセージ候補から基準メッセージを決定するとしたが、これに限定されない。
図17は、本変形例における不正検知処理の一例を示すフロー図である。例えば、
図17に示すように、受信したメッセージが正常メッセージであると判定された場合(ステップS1006でNo)、不正検知部371は、同じ受信周期内に正常と判定されたメッセージが複数あるかどうかを判定する(S1010)。
【0187】
ステップS1010で複数あると判定された場合(ステップS1010でYes)、不正検知部371は、次の受信周期に対する基準メッセージの決定を、基準メッセージ決定部375へ依頼し、基準メッセージ決定部375は次の受信周期における基準メッセージを決定する(S1011)。この処理は、実施の形態1における基準メッセージを決定する処理(S1003、
図11)と同じであるため詳細は省略する。
【0188】
ステップS1010で複数ない、つまり、受信周期において初めの正常メッセージであると判定された場合(ステップS1010でNo)、不正検知部371は、正常メッセージである受信メッセージを、次の受信周期に対する基準メッセージ候補に決定する(S1012)。
【0189】
このように、不正検知処理機能群370cの基準メッセージ決定部375は、現在の受信周期において正常と判定された1以上のメッセージを基準メッセージ候補として、次の受信周期における基準メッセージを、次の受信周期の前に決定する。ステップS1011及び1012は、第2決定ステップの一例である。
【0190】
以降は、実施の形態1と同様に、不正検知部371は、正常メッセージを正常メッセージ情報保持部374へ、基準メッセージ候補を基準メッセージ情報保持部372へ保存し(S1007)、フレーム処理部350は、転送先にメッセージを転送する(S1008)。それぞれの詳細は省略する。
【0191】
また、不正検知部371は、周期的に送信されるメッセージの受信周期が次に移った際(ステップS1002でYes)に、基準メッセージ情報保持部372へ1つだけ保存されている基準メッセージ候補を、新しい受信周期における基準メッセージとして更新する(S1009)。
【0192】
これにより、基準メッセージ候補が常に1つとなり、基準メッセージ情報保持部372へ保持するデータ量を削減できる。特に、異常なメッセージが連続して送信された場合に、基準メッセージ候補として保存すべきデータ量の増加を抑えることができる。また、実施の形態1では、基準メッセージ候補の数がシステム動作時に動的に変化してしまうため、基準メッセージ候補のメッセージを保存する領域を可変長にするか、あらかじめ上限を決めて基準メッセージ候補を保存し、上限を超えた場合は入れ替えるか、破棄するかする必要があったが、基準メッセージ候補を1つにすることができるため、システムの簡素化が可能となる。
【0193】
(3)上記実施の形態では、周期判定部377及びデータ判定部378がそれぞれ個別に予測値を算出するとしたが、これに限定されない。
図18は、本変形例における不正検知処理機能群370dの機能構成の第2例を示すブロック図である。例えば、
図18に示すように、不正検知処理機能群370dが予測モデル生成部379を有し、生成した予測モデルを周期判定部377及びデータ判定部378が利用して予測値を算出してもよいし、予測モデル生成部379自身が、生成した予測モデルを使って予測値を算出し、周期判定部377及びデータ判定部378へ通知しても良い。予測モデル生成部379は、実施の形態2において説明した機能を持つ。
【0194】
これにより、予測モデルを周期判定部377とデータ判定部378との両方が持つ必要がなくなり、記憶領域のコストの節約、モデル生成処理又は予測値の算出処理などを減らすことができる。また、周期判定部377での受信時刻のみを用いた予測又はデータ判定部378でのデータ値のみを用いた予測ではなく、複数の情報を利用した予測モデルの生成と予測を行うことで、予測精度が向上し、最終的には、不正検知部371での検知精度を向上させることができる。
【0195】
(4)上記実施の形態では、不正検知処理機能群370は、不正検知部371と、基準メッセージ情報保持部372と、メッセージ保存処理部373と、正常メッセージ情報保持部374と、基準メッセージ決定部375と、判定種別決定部376と、周期判定部377と、データ判定部378とを有するとしたが、これに限定されない。
図19は、本変形例における不正検知処理機能群370eの機能構成の第3例を示すブロック図である。例えば、
図19に示すように、不正検知処理機能群370eは、不正検知部371と、基準メッセージ情報保持部372と、基準メッセージ決定部375と、判定種別決定部376と、周期判定部377と、データ判定部378とを有してもよいし、他の構成要素をさらに含んでもよい。この場合、例えば、周期判定部377及びデータ判定部378は、基準メッセージ情報保持部372に保持されている基準メッセージを用いて判定処理を行う。
【0196】
(5)上記実施の形態では、ECU100は、フレーム送受信部110と、フレーム解釈部120と、受信ID判断部130と、受信IDリスト保持部140と、フレーム処理部150と、データ取得部170と、フレーム生成部180と、から構成されるとしたが、これに限定されるものではない。
【0197】
図20は、本変形例におけるECU100eの機能構成の第1例を示すブロック図である。例えば、
図20に示すように、ECU100eが不正検知処理機能群370を備えてもよい。この時、フレーム処理部150が、不正検知処理機能群370へ異常メッセージであるかどうかの判定を依頼してもよいし、フレーム解釈部120が、不正検知処理機能群370へ異常メッセージであるかどうかの判定を依頼してもよい。なお、複数のECU100eのそれぞれが不正検知処理機能群370を有していてもよいし、少なくとも1つのECU100eが不正検知処理機能群370を有していてもよい。この場合、ゲートウェイ300は、不正検知処理機能群370を有していなくてもよい。
【0198】
図21は、本変形例におけるECU100fの機能構成の第2例を示すブロック図である。例えば、
図21に示すように、ECU100fは、フレーム送受信部110と、フレーム解釈部120と、フレーム生成部180と、不正検知処理機能群370とから構成されてもよい。この場合、フレーム解釈部120は、全てのメッセージを受信し、不正検知処理機能群370へ異常メッセージであるかどうかの判定を依頼する。
【0199】
また、ECU100fは、
図21の構成に加えて、受信ID判断部130と、受信IDリスト保持部140と、を有し、受信IDリスト保持部が保持する受信IDリストに記載されたメッセージIDを持つメッセージのみを受信し、そのメッセージに関して、不正検知処理機能群370へ異常メッセージであるかどうかの判定を依頼してもよい。なお、不正検知処理機能群370の構成は、不正検知処理機能群370、370bのどちらであってもよい。
【0200】
これにより、ゲートウェイ300だけでなく、ECU100でも、バス200に送信されているメッセージが、異常メッセージであるかどうかを判定できる。
【0201】
図22は、本変形例におけるECU100gの機能構成の第3例を示すブロック図である。さらに、
図22に示すように、ECU100gは、バス200へ送信するデータを他から取得する送信データ取得部171を有し、不正検知処理機能群370は、送信データ取得部171から受信したデータが異常メッセージであるかどうかを判定し、異常メッセージではないと判定した場合のみ、フレーム生成部180へ、メッセージの送信を依頼してもよい。
【0202】
これにより、カーナビゲーションなどと一緒に利用されるECU100gで、カーナビゲーションなどから異常メッセージが送信されるような場合において、それを防止することができる。
【0203】
なお、上記の
図20~
図22に記載の不正検知処理機能群370は、不正検知処理機能群370b~370eのいずれかに置き換えられてもよい。
【0204】
(6)上記実施の形態では、不正を検知したアクションとして、受信したメッセージを転送しない例を示したが、不正検知後のアクションはこれに限らない。例えばゲートウェイ300は、メッセージの受信中に不正検知処理を行うことで、異常メッセージであると判定した段階で、エラーフレームの送信により受信中のメッセージを無効化してもよい。
【0205】
これにより、異常メッセージが見つかったネットワークに接続された他のECU100に対して、異常メッセージを受信できなくすることができる。また、転送しないメッセージに対しても、適用できる。
【0206】
さらに、ゲートウェイ300は、ユーザに異常が発生したことを通知してもよいし、車両をフェールセーフモードに移行させてもよいし、発生した異常をログに残してもよいし、発生した異常について、携帯電話網などを通じて、サーバに通知してもよい。
【0207】
これにより、不正検知後の柔軟な対応が可能となる。また異常メッセージと判定した系列について、データの値又は受信間隔の集合を異常なラベルとして学習してもよい。
【0208】
また、ECU100は、メッセージの受信中に不正検知処理を行うことで、異常メッセージであると判定した段階で、エラーフレームの送信により受信中のメッセージを無効化してもよい。これにより、異常メッセージが見つかったネットワークに接続された他のECUに対して、異常メッセージを受信できなくすることができる。
【0209】
(7)上記実施の形態では、標準フォーマットのIDにおける例を示したが、拡張フォーマットのIDであってもよい。
【0210】
(8)上記実施の形態では、メッセージは平文で送信される例を示したが、暗号化されていてもよい。またメッセージにメッセージ認証コードを含んでいてもよい。
【0211】
(9)上記実施の形態では、正常メッセージに関する情報及び基準メッセージに関する情報を暗号化せずに保持している例を示したが、これらを暗号化して保持していてもよいし、改ざんされたことを検出できる仕組みを用いて保存してもよい。
【0212】
(10)上記の実施の形態では、CANプロトコルに従って通信するネットワーク通信システムの例として車載ネットワークを示した。本開示に係る技術は、車載ネットワークでの利用に限定されるものではなく、ロボット、産業機器等のネットワークその他、車載ネットワーク以外のCANプロトコルに従って通信するネットワーク通信システムに利用してもよい。
【0213】
また、車載ネットワークとしてCANプロトコルを用いていたが、これに限るものではない。例えば、CAN-FD(CAN with Flexible Data Rate)、FlexRay、Ethernet、LIN(Local Interconnect Network)、MOST(Media Oriented Systems Transport)などを用いてもよい。あるいはこれらのネットワークをサブネットワークとして、組み合わせたネットワークであってもよい。
【0214】
(11)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAM又はハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0215】
(12)上記の実施の形態における各装置は、構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
【0216】
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されてもよい。
【0217】
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【0218】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0219】
(13)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。ICカード又はモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカード又はモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカード又はモジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【0220】
(14)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0221】
また、本開示は、コンピュータプログラム又はデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
【0222】
また、本開示は、コンピュータプログラム又はデジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0223】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムに従って動作するとしてもよい。
【0224】
また、プログラム又はデジタル信号を記録媒体に記録して移送することにより、又はプログラム又はデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0225】
(15)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【0226】
(16)また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを1つの機能ブロックとして実現したり、1つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【0227】
(17)また、上記実施の形態において説明された複数の処理の順序は一例である。複数の処理の順序は、変更されてもよいし、複数の処理は、並行して実行されてもよい。また、複数の処理の一部は、実行されなくてもよい。
【0228】
(18)また、上記実施の形態における基準メッセージの決定方法を実行する基準メッセージの決定システムは、1以上のプロセッサと、記憶部とを備える。ここでの決定システムは、複数の装置により構成されてもよいし、1つの装置により構成されていてもよい。
【0229】
(19)また、上記実施の形態では、基準メッセージの決定方法は、車載ネットワークシステムにおける不正通信の検知に用いられる例について説明したが、これに限定されない。基準メッセージの決定方法は、建物内(例えば、宅内、ビル内)のネットワークシステムなどにおける不正通信の検知に用いられてもよい。基準メッセージの決定方法は、例えば、メッセージの送信タイミングが予め定められているネットワークシステムにおける不正通信の検知に用いられてもよい。
【0230】
以上、一つ又は複数の態様に係る車載ネットワークにおける、不正メッセージによる不正制御を目的とする不正通信検知の基準として用いられるメッセージの決定のための技術について実施の形態及びその変形例に基づいて説明した。これらの各実施の形態及びその変形例では、車載ネットワークシステムに接続されて通信するゲートウェイ若しくはECU、又はこれらとサーバコンピュータとの組み合わせによって不正通信検知の基準として用いられるメッセージが決定される。このような不正通信検知を実行する、1個以上のプロセッサ及び記憶部を含むシステムを、本開示では不正通信検知基準決定システムと呼ぶ。したがって、不正通信検知基準決定システムは車載ネットワークシステムに接続される1台のゲートウェイのように1個の装置によって実現されるものも、このようなゲートウェイとECUとの組み合わせ、又はゲートウェイ若しくはECUと遠隔にあるサーバコンピュータとの組み合わせのように複数個の装置によって実現されるものも含む。
【0231】
また、この技術は、上記各実施の形態又はその変形例において、各構成要素が実行する処理のステップの一部又は全部を含む方法として、又は不正通信検知基準決定システムのプロセッサに実行されて、不正通信検知基準決定システムがこの方法を実施させるためのプログラムとしても実現可能である。
【0232】
また、上記実施の形態又はその変形例において、特定の構成要素が実行する処理を特定の構成要素の代わりに別の構成要素が実行してもよい。また、複数の処理の順序が変更されてもよいし、複数の処理が並行して実行されてもよい。
【産業上の利用可能性】
【0233】
本開示にかかる決定方法等は、複数の判定方式による判定結果のなかで、明確度が高く判定できる判定方式の判定結果を用いて基準メッセージ候補の中から基準メッセージを選定することで異常を検知するための基準メッセージを決定する。これにより従来では、正常メッセージと異常メッセージの識別が困難であったメッセージに関しても、精度よく、正常なメッセージを識別することができ、ネットワークの保護が可能となる。
【符号の説明】
【0234】
1 車両
10、10a 車載ネットワークシステム
100、100a、100b、100c、100d、100e、100f、100g ECU
101 エンジン
102 ブレーキ
103 ドア開閉センサ
104 ウィンドウ開閉センサ
110、310 フレーム送受信部
120、320 フレーム解釈部
130、330 受信ID判断部
140、340 受信IDリスト保持部
150、350 フレーム処理部
170 データ取得部
171 送信データ取得部
180、380 フレーム生成部
200、200a、200b バス
300、300b ゲートウェイ
360 転送ルール保持部
370、370b、370c、370d、370e 不正検知処理機能群
371 不正検知部
372 基準メッセージ情報保持部
373、373b メッセージ保存処理部
374、374b 正常メッセージ情報保持部
375 基準メッセージ決定部
376 判定種別決定部
377、377b 周期判定部
378、378b データ判定部
379 予測モデル生成部
390 外部通信部
400 外部ネットワーク
500 サーバ