(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
最初に、本発明の実施形態の内容を列記して説明する。
【0017】
(1)本発明の実施の形態に係る中継装置は、車両に搭載される複数の機能部間のデータを中継する中継処理を行う中継装置であって、前記中継処理において同類の複数の前記機能部である対象機能部へ中継されるパケットの数である中継パケット数をそれぞれカウントするカウント部と、前記カウント部のカウント値を監視し、前記カウント部によってカウントされた各前記中継パケット数の最大値および最小値に基づいて、前記対象機能部への不正通信を検知する検知部とを備える。
【0018】
各対象機能部は同類であるので、各対象機能部への中継パケット数は同数であると考えられる。そして、各対象機能部への中継パケット数をカウントし、カウントした各中継パケット数の最大値および最小値に基づいて、対象機能部への不正通信を検知する構成により、たとえば、同数であるべき各中継パケット数のばらつきに基づいて、Slow Read DoS攻撃のような車載ネットワークにおける末端に位置する機能部において検知困難な不正通信を検知することができる。また、各中継パケット数をカウントする構成により、通信プロトコルに関わらず不正通信を検知することができる。具体的には、中継されるパケットが、TCPコネクションを用いないUDP(User Datagram Protocol)パケットおよびCAN(Controller Area Network)におけるメッセージである場合においても、Slow Read DoS攻撃を検知することができる。また、車両の走行状態に関係なく中継装置が動作する構成により、車両が駐車している状態に加えて、車両が走行している状態においても不正通信を検知することができる。したがって、車載ネットワークにおいて良好なセキュリティを提供することができる。
【0019】
(2)好ましくは、前記パケットは、各前記対象機能部へ順番に送信され、前記検知部は、前記順番における最後の前記対象機能部以外の前記対象機能部への不正通信を検知可能である。
【0020】
パケットが各対象機能部へ順番に送信される場合において、不正侵入パケットが無いケースでは最大値と最小値とが同じ値となるタイミングがある。一方、最後の対象機能部以外の対象機能部への1つ以上の不正侵入パケットがあるケースでは、最大値と最小値とが同じ値となるタイミングがなくなる。このような相違に着目した上記構成により、最後の対象機能部以外の対象機能部への1つ以上の不正侵入パケットがあったことを検知することができる。
【0021】
(3)好ましくは、前記検知部は、不正通信において2つ以上のパケットがいずれか1つの前記対象機能部へ中継された場合に前記不正通信を検知可能である。
【0022】
不正侵入パケットの個数が少ないケースでは、不正侵入パケットがあっても最大値と最小値とが同じ値となるタイミングがあるが、不正侵入パケットの個数がさらに増加すると、最大値と最小値とが同じ値となるタイミングがなくなる。このような相違に着目した上記構成により、対象機能部への不正侵入パケットがあったことを検知することができる。
【0023】
(4)好ましくは、各前記対象機能部は、共通の前記機能部へパケットを送信する機能部である。
【0024】
このような構成により、たとえば、各対象機能部が共通の機能部からの要求に応じて当該共通の機能部へパケットを送信する場合、当該要求を含むパケットが各対象機能部へ同様に中継されるので、当該要求を含むパケットを各対象機能部への中継数が同数となるパケットとして用いることができる。
【0025】
(5)好ましくは、各前記対象機能部は、パケットの送信先ポート番号が同じであること、アドレスが所定範囲に含まれること、属するネットワークの識別子が同じであること、および所定の定義情報により定義されていることの少なくともいずれか1つを満たす機能部である。
【0026】
上記パケットの到着先のアプリケーションが同じである可能性が高いので、上記パケットが同様に各対象機能部へ伝送されると考えられる。また、各対象機能部のアドレスが類似している可能性が高いので、上記パケットが同様に各対象機能部へ伝送されると考えられる。また、各対象機能部が同じネットワークに属しているので、上記パケットが同様に各対象機能部へ伝送されると考えられる。また、たとえば、上記パケットが同様に伝送される機能部が定義情報に含まれる場合、上記パケットが同様に各対象機能部へ伝送されると考えられる。このようなパケットを、各対象機能部への中継数が同数となるパケットとして用いることができる。
【0027】
(6)好ましくは、各前記対象機能部は、同類の機器を含む。
【0028】
各対象機能部に含まれる機器が同じ動作を行う可能性が高いので、たとえば、当該機器への命令を含むパケットが各対象機能部へ同様に伝送されると考えられる。このようなパケットを、各対象機能部への中継数が同数となるパケットとして用いることができる。
【0029】
(7)好ましくは、前記検知部は、前記最大値および前記最小値の差分の推移に基づいて前記不正通信を検知する。
【0030】
不正侵入パケットが無いケースでは、差分は、時間の経過とともに減少してゼロになった後、増加する。一方、不正侵入パケットがあるケースでは、差分は、時間の経過とともに減少してゼロより大きい値になった後、増加する。このような、差分の時間的推移の相違に着目し、不正なパケットが車載ネットワークへ侵入したことを検知することができる。
【0031】
(8)より好ましくは、前記検知部は、前記推移において前記差分が減少から増加に転じる際の値に基づいて前記不正通信を検知する。
【0032】
不正なパケットが侵入した場合における上記値が、不正なパケットが侵入しない場合における上記値と異なることに着目し、不正通信を簡易に検知することができる。
【0033】
(9)より好ましくは、前記検知部は、前記推移において前記差分が減少してゼロに達する前に増加に転じた場合、前記不正通信が発生したと判断する。
【0034】
このような構成により、不正なパケットが侵入してから不正通信の発生の判断までの時間を短くすることができるので、検知の遅れを防ぐことができる。
【0035】
(10)好ましくは、前記カウント部は、前記検知部によって前記不正通信が検知された場合、各前記中継パケット数をリセットする。
【0036】
このような構成により、不正通信が発生していないのに不正通信が発生していると誤って判断してしまうことを防ぐことができる。
【0037】
(11)好ましくは、前記パケットは、所定の順番で各前記対象機能部へ送信され、前記カウント部は、前記検知部によって前記不正通信が検知された後、前記パケットの中継先となる前記対象機能部が切り替わる際に各前記中継パケット数をリセットする。
【0038】
このように、順番の区切りのタイミングで各中継パケット数をリセットする構成により、上記所定の順番の途中から検知処理を再開することができる。すなわち、実質的な初期状態から検知処理を再開することができる。
【0039】
(12)本発明の実施の形態に係る検知方法は、車両に搭載される複数の機能部間のデータを中継する中継処理を行う中継装置における検知方法であって、前記中継処理において同類の複数の前記機能部である対象機能部へ中継されるパケットの数である中継パケット数をそれぞれカウントするステップと、カウントしたカウント値を監視し、カウントした各前記中継パケット数の最大値および最小値に基づいて、前記対象機能部への不正通信を検知するステップとを含む。
【0040】
各対象機能部は同類であるので、各対象機能部への中継パケット数は同数であると考えられる。そして、各対象機能部への中継パケット数をカウントし、カウントした各中継パケット数の最大値および最小値に基づいて、対象機能部への不正通信を検知する構成により、たとえば、同数であるべき各中継パケット数のばらつきに基づいて、Slow Read DoS攻撃のような車載ネットワークにおける末端に位置する機能部において検知困難な不正通信を検知することができる。また、各中継パケット数をカウントする構成により、通信プロトコルに関わらず不正通信を検知することができる。具体的には、中継されるパケットが、TCPコネクションを用いないUDPパケットおよびCANにおけるメッセージである場合においても、Slow Read DoS攻撃を検知することができる。また、車両の走行状態に関係なく中継装置が動作する構成により、車両が駐車している状態に加えて、車両が走行している状態においても不正通信を検知することができる。したがって、車載ネットワークにおいて良好なセキュリティを提供することができる。
【0041】
(13)本発明の実施の形態に係る検知プログラムは、車両に搭載される複数の機能部間のデータを中継する中継処理を行う中継装置において用いられる検知プログラムであって、コンピュータを、前記中継処理において同類の複数の前記機能部である対象機能部へ中継されるパケットの数である中継パケット数をそれぞれカウントするカウント部と、前記カウント部のカウント値を監視し、前記カウント部によってカウントされた各前記中継パケット数の最大値および最小値に基づいて、前記対象機能部への不正通信を検知する検知部、として機能させるためのプログラムである。
【0042】
各対象機能部は同類であるので、各対象機能部への中継パケット数は同数であると考えられる。そして、各対象機能部への中継パケット数をカウントし、カウントした各中継パケット数の最大値および最小値に基づいて、対象機能部への不正通信を検知する構成により、たとえば、同数であるべき各中継パケット数のばらつきに基づいて、Slow Read DoS攻撃のような車載ネットワークにおける末端に位置する機能部において検知困難な不正通信を検知することができる。また、各中継パケット数をカウントする構成により、通信プロトコルに関わらず不正通信を検知することができる。具体的には、中継されるパケットが、TCPコネクションを用いないUDPパケットおよびCANにおけるメッセージである場合においても、Slow Read DoS攻撃を検知することができる。また、車両の走行状態に関係なく中継装置が動作する構成により、車両が駐車している状態に加えて、車両が走行している状態においても不正通信を検知することができる。したがって、車載ネットワークにおいて良好なセキュリティを提供することができる。
【0043】
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。また、以下に記載する実施の形態の少なくとも一部を任意に組み合わせてもよい。
【0044】
<第1の実施の形態>
[構成および基本動作]
図1は、本発明の第1の実施の形態に係る車載通信システムの構成を示す図である。
【0045】
図1を参照して、車載通信システム301は、スイッチ装置101と、複数の機能部111とを備える。車載通信システム301は、車両1に搭載される。
【0046】
この例では、LiDAR(Light Detection and Ranging)111A,111B,111C,111Dは、同類の複数の機能部111(以下、対象機能部とも称する。)の一例である。ADAS(Advanced Driver Assistance System)111Eは、他の機能部111の一例である。
【0047】
以下、LiDAR111A,111B,111C,111Dの各々を、LiDAR111とも称する。
【0048】
LiDAR111A〜111Dは、たとえば、レーザ光を照射するためのレーザ機器、および物体によるレーザ光の散乱光を受光するための受光素子等の同類の機器を含む。
【0049】
LiDAR111A,111B,111C,111Dは、それぞれ、自己の車両1の左部、右部、前部および後部に設けられ、車両1に対して左側、右側、前側および後側に位置する物体を検知することが可能である。
【0050】
LiDAR111は、ADAS111Eからの計測要求に応じて、車両1の周囲における物体の有無を計測する。
【0051】
ADAS111Eは、たとえば、車両1の運転支援を行うことが可能である。より詳細には、ADAS111Eは、各LiDAR111による計測結果を当該各LiDAR111から取得し、取得した計測結果に基づいて運転支援を行う。
【0052】
なお、機能部111は、LiDAR111およびADAS111Eに限らず、TCU(Telematics Communication Unit)、ゲートウェイ装置、ヒューマンマシンインタフェース、カメラ、ミリ波センサ、およびナビゲーション装置等であってもよい。
【0053】
車載ネットワークにおけるスイッチ装置101と各機能部111との接続関係は、たとえば固定されている。
【0054】
スイッチ装置101は、たとえば、車載のイーサネット(登録商標)通信用のケーブル(以下、イーサネットケーブルとも称する。)により機能部111と接続されている。
【0055】
スイッチ装置101および機能部111は、たとえばイーサネットケーブルを用いて互いに通信を行うことが可能である。
【0056】
具体的には、スイッチ装置101および機能部111は、たとえば、IEEE802.3に従うイーサネットフレームを用いて情報のやり取りを行うことが可能である。
【0057】
スイッチ装置101は、車両1に搭載される複数の機能部111間のデータを中継する中継処理を行う。
【0058】
具体的には、スイッチ装置101は、たとえば、ADAS111EからLiDAR111A〜111Dへそれぞれ伝送されるイーサネットフレームを中継する。また、スイッチ装置101は、LiDAR111A〜111DからADAS111Eへそれぞれ伝送されるイーサネットフレームを中継する。
【0059】
より詳細には、ADAS111Eは、たとえば、所定の取得周期ごとに、LiDAR111A,111B,111C,111Dをそれぞれ宛先とする4つのIPパケットを作成する。
【0060】
以下、宛先をLiDAR111A,111B,111C,111DとするIPパケットを、それぞれ対象パケットA,B,C,Dとも称する。また、対象パケットA,B,C,Dの各々を、対象パケットとも称する。
【0061】
対象パケットA,B,C,Dには、LiDAR111A,111B,111C,111DのIPアドレスがそれぞれ宛先IPアドレスとして含まれる。対象パケットには、ADAS111EのIPアドレスが差出元IPアドレスとして含まれる。
【0062】
また、対象パケットには、たとえばUDPパケットが含まれる。各UDPパケットのヘッダおよびペイロードには、同じ送信先ポート番号、および計測要求等がそれぞれ含まれる。
【0063】
ADAS111Eは、対象パケットA,B,C,Dをそれぞれ含む4つのイーサネットフレームを作成する。
【0064】
対象パケットA,B,C,Dをそれぞれ含む4つのイーサネットフレームには、LiDAR111A,111B,111C,111DのMAC(Media Access Control)アドレスがそれぞれ宛先MACアドレスとして含まれる。
【0065】
また、これら4つのイーサネットフレームには、ADAS111EのMACアドレスが差出元MACアドレスとして含まれる。
【0066】
対象パケットは、たとえば所定の順番で各対象機能部へ送信される。この例では、ADAS111Eは、対象パケットA,B,C,Dをそれぞれ含む4つのイーサネットフレームを、この順番で、スイッチ装置101経由でLiDAR111A,111B,111C,111Dへ送信する。以下、この送信パターンを、シングルパケットパターンとも称する。
【0067】
各対象機能部は、たとえばパケットの受信ポート番号が同じ機能部111である。この例では、LiDAR111A,111B,111C,111Dは、レーザ機器および受光素子等を動作させるための共通のアプリケーションを有している。ADAS111EからのUDPパケットの宛先が、このアプリケーションである。すなわち、UDPパケットのヘッダに含まれる送信先ポート番号の示す宛先が、このアプリケーションである。
【0068】
LiDAR111Aにおけるアプリケーションは、自己のLiDAR111AがADAS111Eから受信したイーサネットフレームに含まれる計測要求を取得する。
【0069】
そして、LiDAR111Aは、取得した計測要求に従ってレーザ機器および受光素子等を制御することにより車両1の周囲における物体の有無を計測し、計測結果を含むUDPパケットを作成する。
【0070】
LiDAR111B,111C,111Dにおけるアプリケーションも、LiDAR111Aにおけるアプリケーションと同様の処理を行う。
【0071】
各対象機能部は、たとえば、共通の機能部111へパケットを送信する。この例では、LiDAR111A,111B,111C,111Dは、計測結果を含むUDPパケットをADAS111Eへ送信する。
【0072】
より詳細には、LiDAR111Aは、アプリケーションにより作成されたUDPパケットをIPパケットに格納した後、当該IPパケットを含むイーサネットフレームを作成し、作成したイーサネットフレームをスイッチ装置101経由でADAS111Eへ送信する。
【0073】
LiDAR111B,111C,111Dも、LiDAR111Aと同様にイーサネットフレームを作成し、作成したイーサネットフレームをスイッチ装置101経由でADAS111Eへ送信する。
【0074】
[課題]
車載通信システム301において、たとえば、ADAS111EからLiDAR111A〜111Dへの通信経路の一部が不正通信により不通になっている場合、ADAS111EからLiDAR111A〜111Dへそれぞれ伝送されるUDPパケットのうち、一部が欠落することがある。
【0075】
これに対して、たとえば末端のLiDAR111において通信タイムアウト時間を設定することにより、最後にUDPパケットを受信してからの経過時間と通信タイムアウト時間との大小関係に基づいてUDPパケットの欠落を検知することが可能である。
【0076】
また、LiDAR111が、UDPパケットを高頻度で送りつけられるDoS攻撃を受けることがある。具体的には、たとえば、車載通信システム301における各機能部111のうちの一部が、DoS攻撃を行う偽の機能部(以下、偽機能部とも称する。)にすり替えられた車載ネットワークにおいて、LiDAR111は偽機能部からDoS攻撃を受ける。
【0077】
このようなDoS攻撃に対して、たとえば、スイッチ装置101およびLiDAR111においてUDPパケットの受信頻度についてのしきい値を設定することにより、UDPパケットの受信頻度がしきい値以上であることに基づいてDoS攻撃を検知する方法が考えられる。
【0078】
しかしながら、偽機能部が、たとえば、ADAS111Eが各LiDAR111へ正規の計測要求を要求する頻度と同程度で、不正なUDPパケットを伝送する場合、スイッチ装置101およびLiDAR111におけるUDPパケットの受信頻度が上記しきい値より小さくなる可能性が高くなる。
【0079】
このようなスローDoS攻撃を、上記の方法を用いて検知することは困難であるため、スローDoS攻撃を検知するための技術が求められる。
【0080】
そこで、本発明の第1の実施の形態に係るスイッチ装置では、以下のような構成および動作により、このような課題を解決する。
【0081】
[スイッチ装置101の構成]
図2は、本発明の第1の実施の形態に係る車載通信システムにおけるスイッチ装置の構成を示す図である。
【0082】
図2を参照して、スイッチ装置(中継装置)101は、スイッチ部31と、カウント部32と、検知部33と、複数の通信ポート34と、記憶部35とを備える。
【0083】
通信ポート34は、イーサネットケーブルを介して機能部111に接続されている。通信ポート34には、固有のポート番号が割り当てられる。
【0084】
以下、説明を分かり易くするために、イーサネットケーブルを介してLiDAR111A,111B,111C,111Dにそれぞれ接続される通信ポート34を、通信ポート34A,34B,34C,34Dとも称する。また、イーサネットケーブルを介してADAS111Eに接続される通信ポート34を、通信ポート34Eとも称する。
【0085】
通信ポート34は、たとえば、接続先の機能部111からイーサネットフレームを受信して、受信したイーサネットフレームのフィルタリング処理等のフレーム処理を行う。そして、通信ポート34は、処理後のイーサネットフレームをスイッチ部31へ出力する。
【0086】
また、通信ポート34は、スイッチ部31からイーサネットフレームを受けて、受けたイーサネットフレームを接続先の機能部111へ送信する。
【0087】
スイッチ部31は、たとえばL2スイッチとして動作し、イーサネットフレームの中継処理を行う。
【0088】
より詳細には、スイッチ部31は、通信ポート34からイーサネットフレームを受けると、受けたイーサネットフレームに含まれる宛先MACアドレスを参照する。
【0089】
スイッチ部31は、たとえば、宛先MACアドレスと出力先の通信ポート34のポート番号との対応関係を示すARL(Address Resolution Logic)テーブルを保持する。
【0090】
ARLテーブルの内容は、上述したように固定されている接続関係に基づいて、たとえばユーザにより予め定められている。
【0091】
スイッチ部31は、参照した宛先MACアドレスに対応するポート番号をARLテーブルから取得し、受信したイーサネットフレームを、取得したポート番号に対応する通信ポート34経由で機能部111へ送信する。
【0092】
なお、スイッチ部31は、レイヤ3(L3)スイッチとしても動作可能な構成であってもよい。
【0093】
図3は、本発明の第1の実施の形態に係るスイッチ装置が正常な各対象パケットを中継した場合における、差分の時間的推移の一例を示す図である。なお、
図3において、横軸は時間を示し、縦軸は差分Difを示す。
【0094】
図1〜
図3を参照して、スイッチ装置101における記憶部35には、たとえばユーザにより作成された設定ファイルが登録されている。設定ファイルには、カウント部32がカウントすべきパケットの条件が含まれる。
【0095】
より詳細には、設定ファイルには、監視対象の通信ポート34のポート番号、IPパケットの差出元IPアドレスおよび宛先IPアドレス、通信プロトコル番号、UDPパケットまたはTCPパケットの差出元ポート番号および宛先ポート番号、ならびにイーサネットフレームの差出元MACアドレスおよび宛先MACアドレス等に基づく条件が含まれる。
【0096】
この例では、設定ファイルには、条件CA〜CDが含まれる。条件CAは、たとえば、差出元IPアドレスおよび宛先ポート番号としてそれぞれADAS111EのIPアドレスおよび2345番を含むパケットが通信ポート34Aから送信されることである。ここで、2345番は、対象パケットA,B,C,Dに含まれる宛先ポート番号の一例である。
【0097】
条件CBは、たとえば、差出元IPアドレスおよび宛先ポート番号としてそれぞれADAS111EのIPアドレスおよび2345番を含むパケットが通信ポート34Bから送信されることである。
【0098】
条件CCは、たとえば、差出元IPアドレスおよび宛先ポート番号としてそれぞれADAS111EのIPアドレスおよび2345番を含むパケットが通信ポート34Cから送信されることである。
【0099】
条件CDは、たとえば、差出元IPアドレスおよび宛先ポート番号としてそれぞれADAS111EのIPアドレスおよび2345番を含むパケットが通信ポート34Dから送信されることである。
【0100】
カウント部32は、中継処理において対象機能部へ中継されるパケットの数である中継パケット数をそれぞれカウントする。
【0101】
より詳細には、カウント部32は、記憶部35に登録された設定ファイルの内容に従って、通信ポート34において送受信されるパケット数をカウントする。
【0102】
この例では、カウント部32は、設定ファイルに含まれる条件CA,CB,CC,CDを用いて、通信ポート34A,34B,34C,34CからLiDAR111A,111B,111C,111Dへそれぞれ送信される対象パケットA,B,C,Dの個数をカウントする。
【0103】
また、カウント部32は、偽機能部からLiDAR111へ伝送される、対象パケットA,B,C,Dのうちのいずれか1つを偽装した不正侵入パケットの個数もカウントする。
【0104】
具体的には、カウント部32は、たとえば、カウント値NA,NB,NC,NDをカウントするための4つの送信カウンタを保持する。
【0105】
ここで、カウント値NAは、対象パケットAの個数、および対象パケットAを偽装した不正侵入パケットの個数の合計を示す。カウント値NBは、対象パケットBの個数、および対象パケットBを偽装した不正侵入パケットの個数の合計を示す。カウント値NCは、対象パケットCの個数、および対象パケットCを偽装した不正侵入パケットの個数の合計を示す。カウント値NDは、対象パケットDの個数、および対象パケットDを偽装した不正侵入パケットの個数の合計を示す。
【0106】
以下、カウント値NA,NB,NC,NDをまとめて、総合カウント値(NA,NB,NC,ND)とも表す。総合カウント値は、初期状態において(0,0,0,0)である。
【0107】
カウント部32は、通信ポート34AがLiDAR111Aへの対象パケットAをタイミングt1において送信すると、カウント値NAをインクリメントする。このとき、総合カウント値は、(1,0,0,0)である。
【0108】
検知部33は、カウント部32のカウント値を監視する。より詳細には、検知部33は、たとえば、カウント部32によってカウントされた各中継パケット数の最大値および最小値の差分Difの時間的推移を監視する。
【0109】
具体的には、検知部33は、カウント部32における総合カウント値を監視し、総合カウント値が更新されるごとに最大値および最小値の差分Difを算出する。
【0110】
より具体的には、検知部33は、タイミングt1において総合カウント値が(1,0,0,0)に更新されると、最大値および最小値として1およびゼロをそれぞれ取得し、差分Difとして1を算出する。
【0111】
次に、カウント部32は、通信ポート34AがLiDAR111Bへの対象パケットBをタイミングt2において送信すると、カウント値NBをインクリメントする。
【0112】
検知部33は、タイミングt2において総合カウント値が(1,1,0,0)に更新されると、最大値および最小値として1およびゼロをそれぞれ取得し、差分Difとして1を算出する。
【0113】
次に、カウント部32は、通信ポート34CがLiDAR111Cへの対象パケットCをタイミングt3において送信すると、カウント値NCをインクリメントする。
【0114】
検知部33は、タイミングt3において総合カウント値が(1,1,1,0)に更新されると、最大値および最小値として1およびゼロをそれぞれ取得し、差分Difとして1を算出する。
【0115】
次に、カウント部32は、通信ポート34DがLiDAR111Dへの対象パケットDをタイミングt4において送信すると、カウント値NDをインクリメントする。
【0116】
検知部33は、タイミングt4において総合カウント値が(1,1,1,1)に更新されると、最大値および最小値として1を取得し、差分Difとしてゼロを算出する。
【0117】
検知部33は、カウント部32によってカウントされた各中継パケット数の最大値および最小値に基づいて、対象機能部への不正通信を検知する。
【0118】
詳細には、検知部33は、たとえば、所定の順番における最後の対象機能部以外の対象機能部への不正通信を検知可能である。
【0119】
この例では、検知部33は、対象パケットA,B,C,Dがシングルパケットパターンで送信されるので、対象パケットDの送信先であるLiDAR111D以外のLiDAR111A〜111Cへの1つ以上の不正侵入パケットを検知可能である。ここで、LiDAR111Dへの不正通信の検知については後述する。
【0120】
検知部33は、たとえば、最大値および最小値の差分Difの時間的推移に基づいて不正通信を検知する。
【0121】
具体的には、検知部33は、たとえば、差分Difの時間的推移において差分Difが減少から増加に転じる際の値に基づいて不正通信を検知する。
【0122】
より具体的には、検知部33は、たとえば、差分Difの時間的推移において差分Difが減少してゼロに達する前に増加に転じた場合、不正通信が発生したと判断する。
【0123】
図3に示す時間的推移の場合、差分Difが減少してゼロに達する前に増加に転じないため、検知部33は、不正通信が発生していないと判断する。
【0124】
図4は、本発明の第1の実施の形態に係るスイッチ装置が正常な各対象パケットおよび不正侵入パケットを中継した場合における、差分の時間的推移の一例を示す図である。
【0125】
なお、
図4の見方は、
図3と同様である。また、
図4には、
図3に示すタイミングt4より後のスイッチ装置101の中継状況が示される。
【0126】
図1、
図2および
図4を参照して、ADAS111Eは、シングルパケットパターンで対象パケットA,B,C,Dを送信する。
【0127】
また、偽機能部は、不正侵入パケットをスイッチ装置101経由でLiDAR111Bへ送信する。
【0128】
スイッチ装置101におけるカウント部32は、通信ポート34Aおよび34Bがそれぞれ対象パケットAおよびLiDAR111Bへの不正侵入パケットをタイミングt5において送信すると、以下の処理を行う。
【0129】
すなわち、カウント部32は、カウント値NAおよびカウント値NBをそれぞれインクリメントする。このとき、総合カウント値は、(2,2,1,1)である。
【0130】
検知部33は、タイミングt5において総合カウント値が(2,2,1,1)に更新されると、最大値および最小値として2および1をそれぞれ取得し、差分Difとして1を算出する。
【0131】
次に、カウント部32は、通信ポート34Bが対象パケットBをタイミングt6において送信すると、カウント値NBをインクリメントする。
【0132】
検知部33は、タイミングt6において総合カウント値が(2,3,1,1)に更新されると、最大値および最小値として3および1をそれぞれ取得し、差分Difとして2を算出する。
【0133】
次に、カウント部32は、通信ポート34Cが対象パケットCをタイミングt7において送信すると、カウント値NCをインクリメントする。
【0134】
検知部33は、タイミングt7において総合カウント値が(2,3,2,1)に更新されると、最大値および最小値として3および1をそれぞれ取得し、差分Difとして2を算出する。
【0135】
次に、カウント部32は、通信ポート34Dが対象パケットDをタイミングt8において送信すると、カウント値NDをインクリメントする。
【0136】
検知部33は、タイミングt8において総合カウント値が(2,3,2,2)に更新されると、最大値および最小値として3および2をそれぞれ取得し、差分Difとして1を算出する。
【0137】
図4に示す時間的推移の場合、差分Difが減少してゼロに達する前に増加に転じないため、検知部33は、不正通信が発生していないと判断する。
【0138】
図5は、本発明の第1の実施の形態に係るスイッチ装置が不正侵入を検知した場合における、差分の時間的推移の一例を示す図である。
【0139】
なお、
図5の見方は、
図3と同様である。また、
図5には、
図4に示すタイミングt8より後のスイッチ装置101の中継状況が示される。
図5では、LiDAR111Bへの不正通信(
図4参照)の検知について説明するが、LiDAR111A,111Cへの不正通信の検知についても同様である。
【0140】
図1、
図2および
図5を参照して、ADAS111Eは、シングルパケットパターンで対象パケットA,B,C,Dを送信する。
【0141】
スイッチ装置101におけるカウント部32は、通信ポート34Aが対象パケットAをタイミングt9において送信すると、カウント値NAをインクリメントする。このとき、総合カウント値は、(3,3,2,2)である。
【0142】
検知部33は、タイミングt9において総合カウント値が(3,3,2,2)に更新されると、最大値および最小値として3および2をそれぞれ取得し、差分Difとして1を算出する。
【0143】
次に、カウント部32は、通信ポート34Bが対象パケットBをタイミングt10において送信すると、カウント値NBをインクリメントする。
【0144】
検知部33は、タイミングt10において総合カウント値が(3,4,2,2)に更新されると、最大値および最小値として4および2をそれぞれ取得し、差分Difとして2を算出する。
【0145】
検知部33は、タイミングt10において、差分Difが減少してゼロに達する前に増加に転じたので不正通信が発生したと判断する。
【0146】
検知部33は、不正通信を検知すると、検知結果を記憶部35に保存するとともに、検知結果を含むイーサネットフレームをスイッチ部31経由でたとえば車両1の外部におけるサーバへ送信する検知結果処理を行う。このサーバは、たとえば、車両1における不正侵入に関する情報を収集するサーバであり、車両1の製造メーカー等により運営される。
【0147】
また、検知部33は、不正通信を検知すると、カウント部32におけるカウント値NA〜NDをリセットするためのリセット命令をカウント部32へ出力する。
【0148】
カウント部32は、たとえば、検知部33によって不正通信が検知された場合、各中継パケット数をリセットする。
【0149】
より詳細には、カウント部32は、たとえば、検知部33によって不正通信が検知された後、パケットの中継先となる対象機能部が切り替わる際に各中継パケット数をリセットする。
【0150】
具体的には、カウント部32は、検知部33からリセット命令を受けると、受けたリセット命令に従って、たとえばリセット準備状態へ遷移する。
【0151】
ここでは、スイッチ装置101が直近に送信した対象パケットが対象パケットBであるので、カウント部32は、自己のスイッチ装置101が対象パケットBと異なる対象パケットを送信した場合に、対応の送信カウンタのカウント値をインクリメントする前にカウント値NA〜NDをリセットする。
【0152】
一方、カウント部32は、自己のスイッチ装置101が新たな対象パケットBを送信した場合、対象パケットBの送信カウンタのカウント値をインクリメントするが、カウント値NA〜NDをリセットしない。
【0153】
次に、カウント部32は、通信ポート34Cが対象パケットCをタイミングt11において送信すると、リセット準備状態において対象パケットBと異なる対象パケットCを送信したので、以下の処理を行う。
【0154】
すなわち、カウント部32は、総合カウント値を(3,4,2,2)から(0,0,0,0)にリセットするとともに、リセット準備状態から通常状態へ遷移する。
【0155】
そして、カウント部32は、カウント値NCをインクリメントする。このとき、総合カウント値は、(0,0,1,0)である。
【0156】
検知部33は、タイミングt11において総合カウント値が(0,0,1,0)に更新されると、最大値および最小値として1およびゼロをそれぞれ取得し、差分Difとして1を算出する。
【0157】
次に、カウント部32は、通信ポート34Dが対象パケットDをタイミングt12において送信すると、カウント値NDをインクリメントする。
【0158】
検知部33は、タイミングt11において総合カウント値が(0,0,1,1)に更新されると、最大値および最小値として1およびゼロをそれぞれ取得し、差分Difとして1を算出する。
【0159】
ADAS111Eは、タイミングt12より後のタイミングにおいて、シングルパケットパターンで新たな対象パケットA,B,C,Dを送信する。
【0160】
カウント部32は、通信ポート34A,34B,34C,34Dが対象パケットA,B,C,Dを、それぞれ、タイミングt13,t14,t15,t16において送信すると、カウント値NA,NB,NC,NDをインクリメントする。
【0161】
総合カウント値は、タイミングt13,t14,t15,t16において、それぞれ(1,0,1,1),(1,1,1,1),(1,1,2,1),(1,1,2,2),である。
【0162】
検知部33は、タイミングt13,t14,t15,t16において総合カウント値が更新されると、差分Difとして1,0,1,1をそれぞれ算出する。
【0163】
タイミングt13〜t16において、差分Difが減少してゼロに達する前に増加に転じないため、検知部33は、不正通信が発生していないと判断する。
【0164】
[シングルパケットパターンでのLiDAR111Dへの不正通信の検知]
図6は、本発明の第1の実施の形態に係るスイッチ装置が正常な各対象パケットおよび不正侵入パケットを中継した場合における、差分の時間的推移の一例を示す図である。
【0165】
なお、
図6の見方は、
図3と同様である。また、
図6には、
図3に示すタイミングt4より後のスイッチ装置101の中継状況が示される。
【0166】
図1、
図2および
図6を参照して、ADAS111Eは、シングルパケットパターンで対象パケットA,B,C,Dを送信する。
【0167】
また、偽機能部は、不正侵入パケットをスイッチ装置101経由でLiDAR111Dへ送信する。
【0168】
検知部33は、たとえば、不正通信において2つ以上のパケットがいずれか1つの対象機能部へ中継された場合に不正通信を検知可能である。
【0169】
より詳細には、スイッチ装置101におけるカウント部32は、通信ポート34Aおよび34Dがそれぞれ対象パケットAおよびLiDAR111Dへの不正侵入パケットをタイミングt5において送信すると、以下の処理を行う。
【0170】
すなわち、カウント部32は、カウント値NAおよびカウント値NDをそれぞれインクリメントする。このとき、総合カウント値は、(2,1,1,2)である。
【0171】
検知部33は、タイミングt5において総合カウント値が(2,1,1,2)に更新されると、最大値および最小値として2および1をそれぞれ取得し、差分Difとして1を算出する。
【0172】
次に、カウント部32は、通信ポート34Bが対象パケットBをタイミングt6において送信すると、カウント値NBをインクリメントする。
【0173】
検知部33は、タイミングt6において総合カウント値が(2,2,1,2)に更新されると、最大値および最小値として2および1をそれぞれ取得し、差分Difとして1を算出する。
【0174】
次に、カウント部32は、通信ポート34Cが対象パケットCをタイミングt7において送信すると、カウント値NCをインクリメントする。
【0175】
検知部33は、タイミングt7において総合カウント値が(2,2,2,2)に更新されると、最大値および最小値として2を取得し、差分Difとしてゼロを算出する。
【0176】
次に、カウント部32は、通信ポート34Dが対象パケットDをタイミングt8において送信すると、カウント値NDをインクリメントする。
【0177】
検知部33は、タイミングt8において総合カウント値が(2,2,2,3)に更新されると、最大値および最小値として3および2をそれぞれ取得し、差分Difとして1を算出する。
【0178】
図6に示す時間的推移の場合、差分Difが減少してゼロに達する前に増加に転じないため、検知部33は、不正通信が発生していないと判断する。
【0179】
図7は、本発明の第1の実施の形態に係るスイッチ装置が不正侵入を検知した場合における、差分の時間的推移の一例を示す図である。
【0180】
図7では、LiDAR111Dへの不正通信の検知について説明する。なお、
図7の見方は、
図3と同様である。また、
図7には、
図6に示すタイミングt8より後のスイッチ装置101の中継状況が示される。
【0181】
図1、
図2および
図7を参照して、ADAS111Eは、シングルパケットパターンで対象パケットA,B,C,Dを送信する。
【0182】
また、偽機能部は、不正侵入パケットをスイッチ装置101経由でLiDAR111Dへ送信する。
【0183】
スイッチ装置101におけるカウント部32は、通信ポート34Aが対象パケットAをタイミングt9において送信すると、カウント値NAをインクリメントする。このとき、総合カウント値は、(3,2,2,3)である。
【0184】
検知部33は、タイミングt9において総合カウント値が(3,2,2,3)に更新されると、最大値および最小値として3および2をそれぞれ取得し、差分Difとして1を算出する。
【0185】
次に、カウント部32は、通信ポート34Bおよび34Dがそれぞれ対象パケットBおよびLiDAR111Dへの不正侵入パケットをタイミングt10において送信すると、以下の処理を行う。
【0186】
すなわち、カウント部32は、カウント値NBおよびカウント値NDをそれぞれインクリメントする。
【0187】
検知部33は、タイミングt10において総合カウント値が(3,3,2,4)に更新されると、最大値および最小値として4および2をそれぞれ取得し、差分Difとして2を算出する。
【0188】
次に、カウント部32は、通信ポート34Cが対象パケットCをタイミングt11において送信すると、カウント値NCをインクリメントする。
【0189】
検知部33は、タイミングt11において総合カウント値が(3,3,3,4)に更新されると、最大値および最小値として4および3をそれぞれ取得し、差分Difとして1を算出する。
【0190】
次に、カウント部32は、通信ポート34Dが対象パケットDをタイミングt12において送信すると、カウント値NDをインクリメントする。
【0191】
検知部33は、タイミングt12において総合カウント値が(3,3,3,5)に更新されると、最大値および最小値として5および3をそれぞれ取得し、差分Difとして2を算出する。
【0192】
検知部33は、タイミングt12において、差分Difが減少してゼロに達する前に増加に転じたので不正通信が発生したと判断し、検知結果処理を行う。
【0193】
また、検知部33は、カウント部32におけるカウント値NA〜NDをリセットするためのリセット命令をカウント部32へ出力する。
【0194】
カウント部32は、検知部33からリセット命令を受けると、受けたリセット命令に従ってリセット準備状態へ遷移する。
【0195】
ここでは、スイッチ装置101が直近に送信した対象パケットが対象パケットDであるので、カウント部32は、自己のスイッチ装置101が対象パケットDと異なる対象パケットを送信した場合に、対応の送信カウンタのカウント値をインクリメントする前にカウント値NA〜NDをリセットする。
【0196】
ADAS111Eは、タイミングt12より後のタイミングにおいて、シングルパケットパターンで新たな対象パケットA,B,C,Dを送信する。
【0197】
カウント部32は、通信ポート34Aが対象パケットAをタイミングt13において送信すると、リセット準備状態において対象パケットDと異なる対象パケットAを送信したので、以下の処理を行う。
【0198】
すなわち、カウント部32は、総合カウント値を(3,3,3,5)から(0,0,0,0)にリセットするとともに、リセット準備状態から通常状態へ遷移する。
【0199】
そして、カウント部32は、カウント値NAをインクリメントする。このとき、総合カウント値は、(1,0,0,0)である。
【0200】
検知部33は、タイミングt13において総合カウント値が(1,0,0,0)に更新されると、最大値および最小値として1およびゼロをそれぞれ取得し、差分Difとして1を算出する。
【0201】
カウント部32は、通信ポート34B,34C,34Dが対象パケットB,C,Dを、それぞれ、タイミングt14,t15,t16において送信すると、カウント値NB,NC,NDをインクリメントする。
【0202】
総合カウント値は、タイミングt14,t15,t16において、それぞれ(1,1,0,0),(1,1,1,0),(1,1,1,1)である。
【0203】
検知部33は、タイミングt14,t15,t16において総合カウント値が更新されると、差分Difとして1,1,0をそれぞれ算出する。
【0204】
タイミングt13〜t16において、差分Difが減少してゼロに達する前に増加に転じないため、検知部33は、不正通信が発生していないと判断する。
【0205】
なお、本発明の第1の実施の形態に係るスイッチ装置では、カウント部32は、通信ポート34が送信するパケットの個数をカウントする構成であるとしたが、これに限定するものではない。カウント部32は、通信ポート34が受信するパケットの個数をカウントする構成であってもよいし、スイッチ部31が受けるパケットの個数をカウントする構成であってもよいし、スイッチ部31が出力するパケットの個数をカウントする構成であってもよい。
【0206】
[対象パケットの伝送の変形パターン]
図8は、本発明の第1の実施の形態に係るスイッチ装置が正常な各対象パケットを中継した場合における、差分の時間的推移の一例を示す図である。なお、
図8の見方は、
図3と同様である。
【0207】
図1、
図2および
図8を参照して、ADAS111Eは、対象パケット群GA,GB,GC,GDを、この順番で、スイッチ装置101経由でLiDAR111A,111B,111C,111Dへそれぞれ送信する。
【0208】
対象パケット群GAは、送信順に、対象パケットAである対象パケットA1,A2,A3を含む。対象パケット群GBは、送信順に、対象パケットBである対象パケットB1,B2,B3を含む。対象パケット群GCは、送信順に、対象パケットCである対象パケットC1,C2,C3を含む。対象パケット群GDは、送信順に、対象パケットDである対象パケットD1,D2,D3を含む。以下、この送信パターンを、マルチパケットパターンとも称する。
【0209】
スイッチ装置101におけるカウント部32は、通信ポート34Aが対象パケットA1,A2,A3をタイミングt1,t2,t3においてそれぞれ送信すると、通信ポート34Aが対象パケットAを送信するごとにカウント値NAをインクリメントする。
【0210】
総合カウント値は、タイミングt1,t2,t3において、それぞれ(1,0,0,0),(2,0,0,0),(3,0,0,0)である。
【0211】
検知部33は、タイミングt1,t2,t3において総合カウント値が更新されると、差分Difとして1,2,3をそれぞれ算出する。
【0212】
次に、カウント部32は、通信ポート34Bが対象パケットB1,B2,B3をタイミングt4,t5,t6においてそれぞれ送信すると、通信ポート34Bが対象パケットBを送信するごとにカウント値NBをインクリメントする。
【0213】
総合カウント値は、タイミングt4,t5,t6において、それぞれ(3,1,0,0),(3,2,0,0),(3,3,0,0)である。
【0214】
検知部33は、タイミングt4,t5,t6において総合カウント値が更新されると、差分Difとして3,3,3をそれぞれ算出する。
【0215】
次に、カウント部32は、通信ポート34Cが対象パケットC1,C2,C3をタイミングt7,t8,t9においてそれぞれ送信すると、通信ポート34Cが対象パケットCを送信するごとにカウント値NCをインクリメントする。
【0216】
総合カウント値は、タイミングt7,t8,t9において、それぞれ(3,3,1,0),(3,3,2,0),(3,3,3,0)である。
【0217】
検知部33は、タイミングt7,t8,t9において総合カウント値が更新されると、差分Difとして3,3,3をそれぞれ算出する。
【0218】
次に、カウント部32は、通信ポート34Dが対象パケットD1,D2,D3をタイミングt10,t11,t12においてそれぞれ送信すると、通信ポート34Dが対象パケットDを送信するごとにカウント値NDをインクリメントする。
【0219】
総合カウント値は、タイミングt10,t11,t12において、それぞれ(3,3,3,1),(3,3,3,2),(3,3,3,3)である。
【0220】
検知部33は、タイミングt10,t11,t12において総合カウント値が更新されると、差分Difとして2,1,0をそれぞれ算出する。
【0221】
図8に示す時間的推移の場合、差分Difが減少してゼロに達する前に増加に転じないため、検知部33は、不正通信が発生していないと判断する。
【0222】
図9は、本発明の第1の実施の形態に係るスイッチ装置が正常な各対象パケットおよび不正侵入パケットを中継した場合における、差分の時間的推移の一例を示す図である。
【0223】
なお、
図9の見方は、
図3と同様である。また、
図9には、
図8に示すタイミングt12より後のスイッチ装置101の中継状況が示される。
【0224】
図1、
図2および
図9を参照して、ADAS111Eは、マルチパケットパターンで対象パケット群GA,GB,GC,GDを送信する。
【0225】
また、偽機能部は、不正侵入パケットをスイッチ装置101経由でLiDAR111Cへ送信する。
【0226】
スイッチ装置101におけるカウント部32は、通信ポート34Aが対象パケットA1をタイミングt13において送信すると、カウント値NAをインクリメントする。このとき、総合カウント値は、(4,3,3,3)である。
【0227】
検知部33は、タイミングt13において総合カウント値が(4,3,3,3)に更新されると、最大値および最小値として4および3をそれぞれ取得し、差分Difとして1を算出する。
【0228】
次に、カウント部32は、通信ポート34Aおよび34Cがそれぞれ対象パケットA2およびLiDAR111Cへの不正侵入パケットをタイミングt14において送信すると、以下の処理を行う。
【0229】
すなわち、カウント部32は、カウント値NAおよびカウント値NCをそれぞれインクリメントする。このとき、総合カウント値は、(5,3,4,3)である。
【0230】
検知部33は、タイミングt14において総合カウント値が(5,3,4,3)に更新されると、最大値および最小値として5および3をそれぞれ取得し、差分Difとして2を算出する。
【0231】
次に、カウント部32は、通信ポート34Aが対象パケットA3をタイミングt15において送信すると、カウント値NAをインクリメントする。
【0232】
検知部33は、タイミングt15において総合カウント値が(6,3,4,3)に更新されると、最大値および最小値として6および3をそれぞれ取得し、差分Difとして3を算出する。
【0233】
次に、カウント部32は、通信ポート34Bが対象パケットB1,B2,B3をタイミングt16,t17,t18においてそれぞれ送信すると、通信ポート34Bが対象パケットBを送信するごとにカウント値NBをインクリメントする。
【0234】
総合カウント値は、タイミングt16,t17,t18において、それぞれ(6,4,4,3),(6,5,4,3),(6,6,4,3)である。
【0235】
検知部33は、タイミングt16,t17,t18において総合カウント値が更新されると、差分Difとして3,3,3をそれぞれ算出する。
【0236】
次に、カウント部32は、通信ポート34Cが対象パケットC1,C2,C3をタイミングt19,t20,t21においてそれぞれ送信すると、通信ポート34Cが対象パケットCを送信するごとにカウント値NCをインクリメントする。
【0237】
総合カウント値は、タイミングt19,t20,t21において、それぞれ(6,6,5,3),(6,6,6,3),(6,6,7,3)である。
【0238】
検知部33は、タイミングt19,t20,t21において総合カウント値が更新されると、差分Difとして3,3,4をそれぞれ算出する。
【0239】
次に、カウント部32は、通信ポート34Dが対象パケットD1,D2,D3をタイミングt22,t23,t24においてそれぞれ送信すると、通信ポート34Dが対象パケットDを送信するごとにカウント値NDをインクリメントする。
【0240】
総合カウント値は、タイミングt22,t23,t24において、それぞれ(6,6,7,4),(6,6,7,5),(6,6,7,6)である。
【0241】
検知部33は、タイミングt22,t23,t24において総合カウント値が更新されると、差分Difとして3,2,1をそれぞれ算出する。
【0242】
図9に示す時間的推移の場合、差分Difが減少してゼロに達する前に増加に転じないため、検知部33は、不正通信が発生していないと判断する。
【0243】
図10は、本発明の第1の実施の形態に係るスイッチ装置が不正侵入を中継する場合における、差分の時間的推移の一例を示す図である。
【0244】
なお、
図10の見方は、
図3と同様である。また、
図10には、
図9に示すタイミングt24より後のスイッチ装置101の中継状況が示される。
【0245】
図10では、LiDAR111Cへの不正通信(
図9参照)の検知について説明するが、LiDAR111A,111Bへの不正通信の検知についても同様である。ここで、LiDAR111Dへの不正通信の検知については後述する。
【0246】
図1、
図2および
図10を参照して、ADAS111Eは、マルチパケットパターンで対象パケット群GA,GB,GC,GDを送信する。
【0247】
スイッチ装置101におけるカウント部32は、通信ポート34Aが対象パケットA1をタイミングt25において送信すると、カウント値NAをインクリメントする。このとき、総合カウント値は、(7,6,7,6)である。
【0248】
検知部33は、タイミングt25において総合カウント値が(7,6,7,6)に更新されると、最大値および最小値として7および6をそれぞれ取得し、差分Difとして1を算出する。
【0249】
次に、カウント部32は、通信ポート34Aが対象パケットA2をタイミングt26において送信すると、カウント値NAをインクリメントする。
【0250】
検知部33は、タイミングt26において総合カウント値が(8,6,7,6)に更新されると、最大値および最小値として8および6をそれぞれ取得し、差分Difとして2を算出する。
【0251】
検知部33は、タイミングt26において、差分Difが減少してゼロに達する前に増加に転じたので不正通信が発生したと判断し、検知結果処理を行う。
【0252】
また、検知部33は、カウント部32におけるカウント値NA〜NDをリセットするためのリセット命令をカウント部32へ出力する。
【0253】
カウント部32は、検知部33からリセット命令を受けると、受けたリセット命令に従ってリセット準備状態へ遷移する。
【0254】
ここでは、スイッチ装置101が直近に送信した対象パケットが対象パケットA2であるので、カウント部32は、自己のスイッチ装置101が対象パケットA1〜A3のいずれとも異なる対象パケットを送信した場合に、対応の送信カウンタのカウント値をインクリメントする前にカウント値NA〜NDをリセットする。
【0255】
次に、カウント部32は、通信ポート34Aが対象パケットA3をタイミングt27において送信すると、カウント値NA〜NDをリセットせずにカウント値NAをインクリメントする。
【0256】
検知部33は、タイミングt27において総合カウント値が(9,6,7,6)に更新されると、最大値および最小値として9および6をそれぞれ取得し、差分Difとして3を算出する。
【0257】
次に、カウント部32は、通信ポート34Bが対象パケットB1をタイミングt28において送信すると、自己のスイッチ装置101がリセット準備状態において対象パケットA1〜A3のいずれとも異なる対象パケットB1を送信したので、以下の処理を行う。
【0258】
すなわち、カウント部32は、総合カウント値を(9,6,7,6)から(0,0,0,0)にリセットするとともに、リセット準備状態から通常状態へ遷移する。
【0259】
そして、カウント部32は、カウント値NBをインクリメントする。このとき、総合カウント値は、(0,1,0,0)である。
【0260】
検知部33は、タイミングt28において総合カウント値が(0,1,0,0)に更新されると、最大値および最小値として1およびゼロをそれぞれ取得し、差分Difとして1を算出する。
【0261】
次に、カウント部32は、通信ポート34Bが対象パケットB2,B3をタイミングt29,t30においてそれぞれ送信すると、通信ポート34Bが対象パケットBを送信するごとにカウント値NBをインクリメントする。
【0262】
総合カウント値は、タイミングt29,t30において、それぞれ(0,2,0,0),(0,3,0,0)である。
【0263】
検知部33は、タイミングt29,t30において総合カウント値が更新されると、差分Difとして2,3をそれぞれ算出する。
【0264】
次に、カウント部32は、通信ポート34Cが対象パケットC1,C2,C3をタイミングt31,t32,t33においてそれぞれ送信すると、通信ポート34Cが対象パケットCを送信するごとにカウント値NCをインクリメントする。
【0265】
総合カウント値は、タイミングt31,t32,t33において、それぞれ(0,3,1,0),(0,3,2,0),(0,3,3,0)である。
【0266】
検知部33は、タイミングt31,t32,t33において総合カウント値が更新されると、差分Difとして3,3,3をそれぞれ算出する。
【0267】
次に、カウント部32は、通信ポート34Dが対象パケットD1,D2,D3をタイミングt34,t35,t36においてそれぞれ送信すると、通信ポート34Dが対象パケットDを送信するごとにカウント値NDをインクリメントする。
【0268】
総合カウント値は、タイミングt34,t35,t36において、それぞれ(0,3,3,1),(0,3,3,2),(0,3,3,3)である。
【0269】
検知部33は、タイミングt34,t35,t36において総合カウント値が更新されると、差分Difとして3,3,3をそれぞれ算出する。
【0270】
[マルチパケットパターンでのLiDAR111Dへの不正通信の検知]
図11は、本発明の第1の実施の形態に係るスイッチ装置が正常な各対象パケットおよび不正侵入パケットを中継した場合における、差分の時間的推移の一例を示す図である。
【0271】
なお、
図11の見方は、
図3と同様である。また、
図11には、
図8に示すタイミングt12より後のスイッチ装置101の中継状況が示される。
【0272】
図1、
図2および
図11を参照して、ADAS111Eは、マルチパケットパターンで対象パケット群GA,GB,GC,GDを送信する。
【0273】
また、偽機能部は、3つの不正侵入パケットをスイッチ装置101経由でLiDAR111Dへ送信する。
【0274】
スイッチ装置101におけるカウント部32は、通信ポート34Aが対象パケットA1をタイミングt13において送信すると、カウント値NAをインクリメントする。このとき、総合カウント値は、(4,3,3,3)である。
【0275】
検知部33は、タイミングt13において総合カウント値が(4,3,3,3)に更新されると、最大値および最小値として4および3をそれぞれ取得し、差分Difとして1を算出する。
【0276】
次に、カウント部32は、通信ポート34Aおよび34Dがそれぞれ対象パケットA2およびLiDAR111Dへの不正侵入パケットをタイミングt14において送信すると、以下の処理を行う。
【0277】
すなわち、カウント部32は、カウント値NAおよびカウント値NDをそれぞれインクリメントする。このとき、総合カウント値は、(5,3,3,4)である。
【0278】
検知部33は、タイミングt14において総合カウント値が(5,3,3,4)に更新されると、最大値および最小値として5および3をそれぞれ取得し、差分Difとして2を算出する。
【0279】
次に、カウント部32は、通信ポート34Aが対象パケットA3をタイミングt15において送信すると、カウント値NAをインクリメントする。
【0280】
検知部33は、タイミングt13において総合カウント値が(6,3,3,4)に更新されると、最大値および最小値として6および3をそれぞれ取得し、差分Difとして3を算出する。
【0281】
次に、カウント部32は、通信ポート34Bおよび34Dがそれぞれ対象パケットB1およびLiDAR111Dへの不正侵入パケットをタイミングt16において送信すると、以下の処理を行う。
【0282】
すなわち、カウント部32は、カウント値NBおよびカウント値NDをそれぞれインクリメントする。このとき、総合カウント値は、(6,4,3,5)である。
【0283】
検知部33は、タイミングt14において総合カウント値が(6,4,3,5)に更新されると、最大値および最小値として6および3をそれぞれ取得し、差分Difとして3を算出する。
【0284】
次に、カウント部32は、通信ポート34Bが対象パケットB2をタイミングt17において送信すると、カウント値NBをインクリメントする。
【0285】
検知部33は、タイミングt17において総合カウント値が(6,5,3,5)に更新されると、最大値および最小値として6および3をそれぞれ取得し、差分Difとして3を算出する。
【0286】
次に、カウント部32は、通信ポート34Bおよび34Dがそれぞれ対象パケットB3およびLiDAR111Dへの不正侵入パケットをタイミングt18において送信すると、以下の処理を行う。
【0287】
すなわち、カウント部32は、カウント値NBおよびカウント値NDをそれぞれインクリメントする。このとき、総合カウント値は、(6,6,3,6)である。
【0288】
検知部33は、タイミングt18において総合カウント値が(6,6,3,6)に更新されると、最大値および最小値として6および3をそれぞれ取得し、差分Difとして3を算出する。
【0289】
次に、カウント部32は、通信ポート34Cが対象パケットC1,C2,C3をタイミングt19,t20,t21においてそれぞれ送信すると、通信ポート34Cが対象パケットCを送信するごとにカウント値NCをインクリメントする。
【0290】
総合カウント値は、タイミングt19,t20,t21において、それぞれ(6,6,4,6),(6,6,5,6),(6,6,6,6)である。
【0291】
検知部33は、タイミングt19,t20,t21において総合カウント値が更新されると、差分Difとして2,1,0をそれぞれ算出する。
【0292】
次に、カウント部32は、通信ポート34Dが対象パケットD1,D2,D3をタイミングt22,t23,t24においてそれぞれ送信すると、通信ポート34Dが対象パケットDを送信するごとにカウント値NDをインクリメントする。
【0293】
総合カウント値は、タイミングt22,t23,t24において、それぞれ(6,6,6,7),(6,6,6,8),(6,6,6,9)である。
【0294】
検知部33は、タイミングt22,t23,t24において総合カウント値が更新されると、差分Difとして1,2,3をそれぞれ算出する。
【0295】
図12は、本発明の第1の実施の形態に係るスイッチ装置が不正侵入を検知した場合における、差分の時間的推移の一例を示す図である。
【0296】
図12では、LiDAR111Dへの不正通信の検知について説明する。なお、
図12の見方は、
図3と同様である。また、
図12には、
図11に示すタイミングt24より後のスイッチ装置101の中継状況が示される。
【0297】
図1、
図2および
図12を参照して、ADAS111Eは、マルチパケットパターンで対象パケット群GA,GB,GC,GDを送信する。
【0298】
また、偽機能部は、1つの不正侵入パケットをスイッチ装置101経由でLiDAR111Dへ送信する。
【0299】
スイッチ装置101におけるカウント部32は、通信ポート34Aが対象パケットA1をタイミングt25において送信すると、カウント値NAをインクリメントする。このとき、総合カウント値は、(7,6,6,9)である。
【0300】
検知部33は、タイミングt25において総合カウント値が(7,6,6,9)に更新されると、最大値および最小値として9および6をそれぞれ取得し、差分Difとして3を算出する。
【0301】
次に、カウント部32は、通信ポート34Aおよび34Dがそれぞれ対象パケットA2およびLiDAR111Dへの不正侵入パケットをタイミングt26において送信すると、以下の処理を行う。
【0302】
すなわち、カウント部32は、カウント値NAおよびカウント値NDをそれぞれインクリメントする。このとき、総合カウント値は、(8,6,6,10)である。
【0303】
検知部33は、タイミングt26において総合カウント値が(8,6,6,10)に更新されると、最大値および最小値として10および6をそれぞれ取得し、差分Difとして4を算出する。
【0304】
次に、カウント部32は、通信ポート34Aが対象パケットA3をタイミングt27において送信すると、カウント値NAをインクリメントする。
【0305】
検知部33は、タイミングt27において総合カウント値が(9,6,6,10)に更新されると、最大値および最小値として10および6をそれぞれ取得し、差分Difとして4を算出する。
【0306】
次に、カウント部32は、通信ポート34Bが対象パケットB1,B2,B3をタイミングt28,t29,t30においてそれぞれ送信すると、通信ポート34Bが対象パケットBを送信するごとにカウント値NBをインクリメントする。
【0307】
総合カウント値は、タイミングt28,t29,t30において、それぞれ(9,7,6,10),(9,8,6,10),(9,9,6,10)である。
【0308】
検知部33は、タイミングt28,t29,t30において総合カウント値が更新されると、差分Difとして4,4,4をそれぞれ算出する。
【0309】
次に、カウント部32は、通信ポート34Cが対象パケットC1,C2,C3をタイミングt31,t32,t33においてそれぞれ送信すると、通信ポート34Cが対象パケットCを送信するごとにカウント値NCをインクリメントする。
【0310】
総合カウント値は、タイミングt31,t32,t33において、それぞれ(9,9,7,10),(9,9,8,10),(9,9,9,10)である。
【0311】
検知部33は、タイミングt31,t32,t33において総合カウント値が更新されると、差分Difとして3,2,1をそれぞれ算出する。
【0312】
次に、カウント部32は、通信ポート34Dが対象パケットD1をタイミングt34において送信すると、カウント値NDをインクリメントする。
【0313】
検知部33は、タイミングt34において総合カウント値が(9,9,9,11)に更新されると、最大値および最小値として11および9をそれぞれ取得し、差分Difとして2を算出する。
【0314】
検知部33は、タイミングt34において、差分Difが減少してゼロに達する前に増加に転じたので不正通信が発生したと判断し、検知結果処理を行う。
【0315】
また、検知部33は、カウント部32におけるカウント値NA〜NDをリセットするためのリセット命令をカウント部32へ出力する。
【0316】
カウント部32は、検知部33からリセット命令を受けると、受けたリセット命令に従ってリセット準備状態へ遷移する。
【0317】
ここでは、スイッチ装置101が直近に送信した対象パケットが対象パケットD1であるので、カウント部32は、自己のスイッチ装置101が対象パケットD1〜D3のいずれとも異なる対象パケットを送信した場合に、対応の送信カウンタのカウント値をインクリメントする前にカウント値NA〜NDをリセットする。
【0318】
次に、カウント部32は、通信ポート34Dが対象パケットD2をタイミングt35において送信すると、カウント値NA〜NDをリセットせずにカウント値NDをインクリメントする。
【0319】
検知部33は、タイミングt35において総合カウント値が(9,9,9,12)に更新されると、最大値および最小値として12および9をそれぞれ取得し、差分Difとして3を算出する。
【0320】
次に、カウント部32は、通信ポート34Dが対象パケットD3をタイミングt36において送信すると、カウント値NA〜NDをリセットせずにカウント値NDをインクリメントする。
【0321】
検知部33は、タイミングt36において総合カウント値が(9,9,9,13)に更新されると、最大値および最小値として13および9をそれぞれ取得し、差分Difとして4を算出する。
【0322】
ADAS111Eは、タイミングt36より後のタイミングにおいて、マルチパケットパターンで新たな対象パケット群GA,GB,GC,GDを送信する。
【0323】
次に、カウント部32は、通信ポート34Aが対象パケットA1をタイミングt37において送信すると、自己のスイッチ装置101がリセット準備状態において対象パケットD1〜D3のいずれとも異なる対象パケットA1を送信したので、以下の処理を行う。
【0324】
すなわち、カウント部32は、総合カウント値を(9,9,9,13)から(0,0,0,0)にリセットするとともに、リセット準備状態から通常状態へ遷移する。
【0325】
そして、カウント部32は、カウント値NCをインクリメントする。このとき、総合カウント値は、(1,0,0,0)である。
【0326】
検知部33は、タイミングt37において総合カウント値が(1,0,0,0)に更新されると、最大値および最小値として1およびゼロをそれぞれ取得し、差分Difとして1を算出する。
【0327】
次に、カウント部32は、通信ポート34Aが対象パケットA2をタイミングt38において送信すると、カウント値NAをインクリメントする。
【0328】
検知部33は、タイミングt38において総合カウント値が(2,0,0,0)に更新されると、最大値および最小値として2およびゼロをそれぞれ取得し、差分Difとして2を算出する。
【0329】
次に、カウント部32は、通信ポート34Aが対象パケットA3をタイミングt39において送信すると、カウント値NAをインクリメントする。
【0330】
検知部33は、タイミングt39において総合カウント値が(3,0,0,0)に更新されると、最大値および最小値として3およびゼロをそれぞれ取得し、差分Difとして3を算出する。
【0331】
以下、スイッチ装置101が対象パケット群GB〜GDを中継したときの動作は、
図8に示すタイミングt4〜t12における動作と同様である。
【0332】
[動作の流れ]
車載通信システム301における各装置は、コンピュータを備え、当該コンピュータにおけるCPU等の演算処理部は、以下のシーケンス図またはフローチャートの各ステップの一部または全部を含むプログラムを図示しないメモリからそれぞれ読み出して実行する。これら複数の装置のプログラムは、それぞれ、外部からインストールすることができる。これら複数の装置のプログラムは、それぞれ、記録媒体に格納された状態で流通する。
【0333】
図13は、本発明の第1の実施の形態に係る車載通信システムにおけるスイッチ装置が不正通信の検知を行う際の動作手順を定めたフローチャートである。
【0334】
図13を参照して、スイッチ装置101が通常状態である状況を想定する。まず、スイッチ装置101は、対象パケットまたは不正侵入パケットをLiDAR111へ送信するまで検知処理を保留する(ステップS102でNO)。
【0335】
そして、スイッチ装置101は、対象パケットまたは不正侵入パケットをLiDAR111へ送信すると(ステップS102でYES)、リセット準備状態であり、かつ今回の送信先のLiDAR111と前回の送信先のLiDAR111とが異なる場合(ステップS104でYESおよびステップS106でYES)、カウント値NA〜NDをリセットするとともに、リセット準備状態から通常状態へ遷移する(ステップS108)。
【0336】
次に、スイッチ装置101は、送信したパケットに対応する送信カウンタのカウント値をインクリメントする(ステップS110)。
【0337】
次に、スイッチ装置101は、カウント値NA〜NDにおける最大値と最小値との差分Difを算出する(ステップS112)。
【0338】
次に、スイッチ装置101は、差分Difの時間的推移において、差分Difが減少してゼロに達する前に再び増加した場合(ステップS114でYES)、不正通信を検知する(ステップS116)。
【0339】
次に、スイッチ装置101は、検知結果処理を行う(ステップS118)。
【0340】
次に、スイッチ装置101は、通常状態からリセット準備状態へ遷移する(ステップS120)。
【0341】
次に、スイッチ装置101は、差分Difの時間的推移において、差分Difが減少してゼロに達する前に再び増加しない場合(ステップS114でNO)、またはリセット準備状態へ遷移すると(ステップS120)、新たな対象パケットまたは不正侵入パケットをLiDAR111へ送信するまで検知処理を保留する(ステップS102でNO)。
【0342】
なお、上記ステップS116およびS118と、上記ステップS120との順番は、上記に限らず、順番を入れ替えてもよい。
【0343】
また、車両1において、故障診断を行うダイアグノシスモード、および維持管理を行うメンテナンスモードの動作が行われることがある。このようなモードでは、対象パケットが各対象機能部へ均等に伝送されないことがある。このため、ダイアグノシスモードおよびメンテナンスモードにおいて、上記動作の流れを無効化する構成であってもよい。
【0344】
また、本発明の第1の実施の形態に係る車載通信システムでは、LiDAR111が対象機能部として動作する構成であるとしたが、これに限定するものではない。車両1に複数設けられたカメラおよびミリ波センサ等が対象機能部として動作する構成であってもよい。
【0345】
また、本発明の第1の実施の形態に係る車載通信システムでは、対象パケットA,B,C,Dは、所定の順番としてこの順番でADAS111EからLiDAR111A,111B,111C,111Dへ伝送される構成であるとしたが、これに限定するものではない。対象パケットは、各対象機能部へ順番に送信される構成であってもよい。具体的には、対象パケットA,B,C,Dの伝送順は、取得周期ごとに異なる構成であってもよい。より具体的には、対象パケットA,B,C,Dは、たとえば、3つの連続した取得周期において、対象パケットA,B,C,D,B,C,A,D,D,A,C,B等の順番で伝送される構成であってもよい。この場合でも、検知部33は、上記順番における最後の対象機能部以外の対象機能部への不正通信を検知可能である。
【0346】
また、本発明の第1の実施の形態に係る車載通信システムでは、対象機能部の一例であるLiDAR111A,111B,111C,111Dは、共通の機能部111の一例であるADAS111Eへ計測結果を含むUDPパケットを送信する機能部111である構成であるとしたが、これに限定するものではない。各対象機能部は、共通の機能部111へパケットを送信しない構成であってもよい。具体的には、各対象機能部は、たとえば、共通の機能部から時刻合わせ情報および設定変更命令等を定期的に受信するだけの機能部111であってもよい。
【0347】
また、本発明の第1の実施の形態に係る車載通信システムでは、対象機能部の一例であるLiDAR111A,111B,111C,111Dは、同類の機器の一例であるレーザ機器および受光素子を含む構成であるとしたが、これに限定するものではない。各対象機能部は、同類の機器を含まない構成であってもよい。
【0348】
また、本発明の第1の実施の形態に係る車載通信システムでは、各対象機能部は、対象パケットの送信先ポート番号が同じであることを満たす機能部111である構成であるとしたが、これに限定するものではない。各対象機能部は、アドレスが所定範囲に含まれることを満たす機能部111である構成であってもよい。具体的には、たとえば、LiDAR111A、111B、111Cおよび111DのIPアドレスが、それぞれ192.168.1.10、192.168.1.11、192.168.1.12および192.168.1.13であり、かつ所定範囲が192.168.1.10〜192.168.1.13である。
【0349】
また、各対象機能部は、属するネットワークの識別子が同じであることを満たす機能部111である構成であってもよい。具体的には、たとえば、各対象機能部は、VLAN1に属するすべての機能部111であってもよい。
【0350】
また、各対象機能部は、所定の定義情報により定義されていることを満たす機能部111である構成であってもよい。具体的には、たとえば、記憶部35に保存された設定ファイルにおいて、対象機能部のIPアドレス、MACアドレスおよびシリアル番号等の識別情報が定義情報として登録されており、カウント部32は、設定ファイルに登録された定義情報に基づいて対象パケットの個数をカウントする。
【0351】
また、各対象機能部は、パケットの送信先ポート番号が同じであること、アドレスが所定範囲に含まれること、属するネットワークの識別子が同じであること、および所定の定義情報により定義されていることの少なくともいずれか1つを満たす機能部111である構成に限らず、他の条件を満たす機能部111である構成であってもよい。
【0352】
また、本発明の第1の実施の形態に係るスイッチ装置では、検知部33は、差分Difの時間的推移に基づいて、対象機能部への不正通信を検知する構成であるとしたが、これに限定するものではない。たとえば、検知部33は、カウント部32によってカウントされた各中継パケット数の最大値および最小値が一致しない期間の長さと所定のしきい値との大小関係に基づいて、対象機能部への不正通信を検知する構成であってもよい。
【0353】
また、本発明の第1の実施の形態に係るスイッチ装置では、検知部33は、差分Difの時間的推移において差分Difが減少から増加に転じる際の値に基づいて不正通信を検知する構成であるとしたが、これに限定するものではない。検知部33は、差分Difが増加から減少に転じる際の値に基づいて不正通信を検知する構成であってもよい。
【0354】
また、本発明の第1の実施の形態に係るスイッチ装置では、検知部33は、差分Difの時間的推移において差分Difが減少してゼロに達する前に増加に転じた場合、不正通信が発生したと判断する構成であるとしたが、これに限定するものではない。検知部33は、たとえば差分Difが減少して1以上の値に達する前に増加に転じた場合に、不正通信が発生したと判断する構成であってもよい。
【0355】
また、本発明の第1の実施の形態に係るスイッチ装置では、カウント部32は、検知部33によって不正通信が検知された場合、各中継パケット数をリセットする構成であるとしたが、これに限定するものではない。カウント部32は、たとえば定期的に各中継パケット数をリセットする構成であってもよい。これにより、不正侵入パケットを中継しない場合においても不正通信が発生したと検知する誤検知が継続することを防ぐことができる。
【0356】
また、本発明の第1の実施の形態に係るスイッチ装置では、カウント部32は、対象パケットが所定の順番で各対象機能部へ送信される場合において、検知部33によって不正通信が検知された後、対象パケットの中継先となる対象機能部が切り替わる際に各中継パケット数をリセットする構成であるとしたが、これに限定するものではない。カウント部32は、たとえば、検知部33によって不正通信が検知された後、最後の順番の対象機能部への対象パケットの送信が完了した際に各中継パケット数をリセットする構成であってもよい。
【0357】
ところで、特許文献1に車載通信システムでは、車両が駐車している状態において車載LANと外部機器との間のゲートウェイを介した通信が禁止されるので、車両外部からゲートウェイを介した車載LANへの不正アクセスが防止される。しかしながら、車両が走行している状態では車両外部からの不正アクセスを防止できない。
【0358】
また、非特許文献1に記載の検知方法では、TCPコネクションおよびタイムアウト時間を用いて攻撃を検知する。しかしながら、TCPコネクションを用いないSlow Read DoS攻撃に対しては、上記の方法を用いた検知が困難である。
【0359】
これに対して、本発明の第1の実施の形態に係るスイッチ装置は、車両1に搭載される複数の機能部111間のデータを中継する中継処理を行う。カウント部32は、中継処理において同類の複数の機能部111である対象機能部へ中継されるパケットの数である中継パケット数をそれぞれカウントする。そして、検知部33は、カウント部32のカウント値を監視し、カウント部32によってカウントされた各中継パケット数の最大値および最小値に基づいて、対象機能部への不正通信を検知する。
【0360】
各対象機能部は同類であるので、各対象機能部への中継パケット数は同数であると考えられる。そして、各対象機能部への中継パケット数をカウントし、カウントした各中継パケット数の最大値および最小値に基づいて、対象機能部への不正通信を検知する構成により、たとえば、同数であるべき各中継パケット数のばらつきに基づいて、Slow Read DoS攻撃のような車載ネットワークにおける末端に位置する機能部111において検知困難な不正通信を検知することができる。また、各中継パケット数をカウントする構成により、通信プロトコルに関わらず不正通信を検知することができる。具体的には、中継されるパケットが、TCPコネクションを用いないUDPパケットである場合においても、Slow Read DoS攻撃を検知することができる。また、車両1の走行状態に関係なくスイッチ装置101が動作する構成により、車両1が駐車している状態に加えて、車両1が走行している状態においても不正通信を検知することができる。したがって、車載ネットワークにおいて良好なセキュリティを提供することができる。
【0361】
また、本発明の第1の実施の形態に係るスイッチ装置では、パケットは、各対象機能部へ順番に送信される。そして、検知部33は、当該順番における最後の対象機能部以外の対象機能部への不正通信を検知可能である。
【0362】
パケットが各対象機能部へ順番に送信される場合において、不正侵入パケットが無いケースでは最大値と最小値とが同じ値となるタイミングがある。一方、最後の対象機能部以外の対象機能部への1つ以上の不正侵入パケットがあるケースでは、最大値と最小値とが同じ値となるタイミングがなくなる。このような相違に着目した上記構成により、最後の対象機能部以外の対象機能部への1つ以上の不正侵入パケットがあったことを検知することができる。
【0363】
また、本発明の第1の実施の形態に係るスイッチ装置では、検知部33は、不正通信において2つ以上のパケットがいずれか1つの対象機能部へ中継された場合に不正通信を検知可能である。
【0364】
不正侵入パケットの個数が少ないケースでは、不正侵入パケットがあっても最大値と最小値とが同じ値となるタイミングがあるが、不正侵入パケットの個数がさらに増加すると、最大値と最小値とが同じ値となるタイミングがなくなる。このような相違に着目した上記構成により、対象機能部への不正侵入パケットがあったことを検知することができる。
【0365】
また、本発明の第1の実施の形態に係るスイッチ装置では、各対象機能部は、共通の機能部111へパケットを送信する機能部である。
【0366】
このような構成により、たとえば、各対象機能部が共通の機能部111からの要求に応じて当該共通の機能部111へパケットを送信する場合、当該要求を含むパケットが各対象機能部へ同様に中継されるので、当該要求を含むパケットを各対象機能部への中継数が同数となるパケットとして用いることができる。
【0367】
また、本発明の第1の実施の形態に係るスイッチ装置では、各対象機能部は、パケットの送信先ポート番号が同じであること、アドレスが所定範囲に含まれること、属するネットワークの識別子が同じであること、および所定の定義情報により定義されていることの少なくともいずれか1つを満たす機能部である。
【0368】
上記パケットの到着先のアプリケーションが同じである可能性が高いので、上記パケットが同様に各対象機能部へ伝送されると考えられる。また、各対象機能部のアドレスが類似している可能性が高いので、上記パケットが同様に各対象機能部へ伝送されると考えられる。また、各対象機能部が同じネットワークに属しているので、上記パケットが同様に各対象機能部へ伝送されると考えられる。また、たとえば、上記パケットが同様に伝送される機能部が定義情報に含まれる場合、上記パケットが同様に各対象機能部へ伝送されると考えられる。このようなパケットを、各対象機能部への中継数が同数となるパケットとして用いることができる。
【0369】
また、本発明の第1の実施の形態に係るスイッチ装置では、各対象機能部は、同類の機器を含む。
【0370】
各対象機能部に含まれる機器が同じ動作を行う可能性が高いので、たとえば、当該機器への命令を含むパケットが各対象機能部へ同様に伝送されると考えられる。このようなパケットを、各対象機能部への中継数が同数となるパケットとして用いることができる。
【0371】
また、本発明の第1の実施の形態に係るスイッチ装置では、検知部33は、最大値および最小値の差分の推移に基づいて不正通信を検知する。
【0372】
不正侵入パケットが無いケースでは、差分は、時間の経過とともに減少してゼロになった後、増加する。一方、不正侵入パケットがあるケースでは、差分は、時間の経過とともに減少してゼロより大きい値になった後、増加する。このような、差分の時間的推移の相違に着目し、不正なパケットが車載ネットワークへ侵入したことを検知することができる。
【0373】
また、本発明の第1の実施の形態に係るスイッチ装置では、検知部33は、最大値および最小値の差分の推移において当該差分が減少から増加に転じる際の値に基づいて不正通信を検知する。
【0374】
不正なパケットが侵入した場合における上記値が、不正なパケットが侵入しない場合における上記値と異なることに着目し、不正通信を簡易に検知することができる。
【0375】
また、本発明の第1の実施の形態に係るスイッチ装置では、検知部33は、最大値および最小値の差分の推移において差分が減少してゼロに達する前に増加に転じた場合、不正通信が発生したと判断する。
【0376】
このような構成により、不正なパケットが侵入してから不正通信の発生の判断までの時間を短くすることができるので、検知の遅れを防ぐことができる。
【0377】
また、本発明の第1の実施の形態に係るスイッチ装置では、カウント部32は、検知部33によって不正通信が検知された場合、各中継パケット数をリセットする。
【0378】
このような構成により、不正通信が発生していないのに不正通信が発生していると誤って判断してしまうことを防ぐことができる。
【0379】
また、本発明の第1の実施の形態に係るスイッチ装置では、パケットは、所定の順番で各対象機能部へ送信される。そして、カウント部32は、検知部33によって不正通信が検知された後、パケットの中継先となる対象機能部が切り替わる際に各中継パケット数をリセットする。
【0380】
このように、順番の区切りのタイミングで各中継パケット数をリセットする構成により、上記所定の順番の途中から検知処理を再開することができる。すなわち、実質的な初期状態から検知処理を再開することができる。
【0381】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【0382】
<第2の実施の形態>
本実施の形態は、第1の実施の形態に係るスイッチ装置と比べて、カウント部においてカウントすべきパケットの条件を自動で取得するスイッチ装置に関する。以下で説明する内容以外は第1の実施の形態に係るスイッチ装置と同様である。
【0383】
[スイッチ装置102の構成]
図14は、本発明の第2の実施の形態に係る車載通信システムにおけるスイッチ装置の構成を示す図である。
【0384】
図14を参照して、スイッチ装置102は、
図2に示すスイッチ装置101と比べて、さらに、設定ファイル更新部36を備える。
【0385】
スイッチ装置102におけるスイッチ部31、カウント部32、検知部33、通信ポート34および記憶部35の動作は、
図2に示すスイッチ装置101におけるスイッチ部31、カウント部32、検知部33、通信ポート34および記憶部35とそれぞれ同様である。
【0386】
設定ファイル更新部36は、各通信ポート34が送受信するイーサネットフレームを監視する。
【0387】
より詳細には、設定ファイル更新部36は、たとえば、監視対象の通信ポート34ごとに、対応のポート番号と、当該通信ポート34において送受信されるイーサネットフレームに含まれる、差出元IPアドレス、宛先IPアドレス、通信プロトコル番号、UDPパケットまたはTCPパケットの差出元ポート番号および宛先ポート番号、ならびに差出元MACアドレスおよび宛先MACアドレスとを監視する。
【0388】
設定ファイル更新部36は、監視結果に基づいて、同類の複数の機能部111へ中継されるパケット(以下、条件具備パケットとも称する。)を特定するための条件を作成する。
【0389】
具体的には、設定ファイル更新部36は、たとえば、差出元IPアドレスおよび宛先ポート番号が同じであるが、宛先IPアドレスがそれぞれ異なる複数のパケットを、条件具備パケットとして特定する。
【0390】
より具体的には、設定ファイル更新部36は、通信ポート34A〜34DにおいてそれぞれLiDAR111A〜111Dへ送信されるパケットに含まれる差出元IPアドレス、宛先IPアドレスおよび宛先ポート番号に基づいて、対象パケットA〜Dを条件具備パケットとして特定する。
【0391】
設定ファイル更新部36は、条件具備パケットが送信される通信ポート34のポート番号、ならびに条件具備パケットに含まれる差出元IPアドレスおよび宛先ポート番号に基づいて条件CA〜CDを作成し、作成した条件CA〜CDを記憶部35における設定ファイルに書き込む。
【0392】
その他の構成および動作は第1の実施の形態に係るスイッチ装置と同様であるため、ここでは詳細な説明を繰り返さない。
【0393】
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【0394】
<第3の実施の形態>
本実施の形態は、第1の実施の形態に係る車載通信システムと比べて、CANの通信規格に従う車載ネットワークにおける不正通信を検知する車載通信システムに関する。以下で説明する内容以外は第1の実施の形態に係る車載通信システムと同様である。
【0395】
[構成および基本動作]
図15は、本発明の第3の実施の形態に係る車載通信システムの構成を示す図である。
【0396】
図15を参照して、車載通信システム311は、ゲートウェイ装置151と、複数の機能部161とを備える。車載通信システム311は、車両1に搭載される。
【0397】
この例では、スレーブECU(Electronic Control Unit)161A,161B,161C,161Dは、対象機能部の一例である。マスタECU161Eは、機能部161の一例である。スレーブECU161A,161B,161C,161Dは、たとえば、アドレスの一例であるCANノードIDとして、21,22,23,24をそれぞれ有する。
【0398】
以下、スレーブECU161A,161B,161C,161Dの各々を、スレーブECU161とも称する。
【0399】
より詳細には、スレーブECU161A,161B,161C,161Dは、たとえば、それぞれ、自己の車両1の左前部、右前部、左後部および右後部における各車輪に設けられる。
【0400】
スレーブECU161A〜161Dは、たとえば、マスタECU161Eの命令に従って動作し、車輪の回転数を計測するための計測モジュール等の同類の機器を含む。
【0401】
スレーブECU161は、たとえば、マスタECU161Eからの計測要求に応じて、対応の車輪の回転数を計測する。
【0402】
なお、機能部161は、スレーブECU161およびマスタECU161Eの他に、エンジン制御デバイス、AT(Automatic Transmission)制御デバイス、HEV(Hybrid Electric Vehicle)制御デバイス、ブレーキ制御デバイス、シャーシ制御デバイス、ステアリング制御デバイス、計器表示制御デバイスおよび盗難検知デバイス等であってもよい。
【0403】
車載ネットワークにおける、ゲートウェイ装置151および各機能部161との接続関係は、たとえば固定されている。
【0404】
ゲートウェイ装置151は、たとえば、CANの通信規格に従うバス(以下、CANバスとも称する。)13により機能部161と接続されている。
【0405】
CANバス13には、ゲートウェイ装置151と、複数の機能部161とが接続される。
【0406】
より詳細には、CANバス13であるCANバス13A,13B,13C,13Dには、スレーブECU161A,161B,161C,161Dがそれぞれ接続される。CANバス13であるCANバス13Eには、マスタECU161Eが接続される。
【0407】
ゲートウェイ装置151および機能部161は、たとえばCANバス13を用いて互いに通信を行うことが可能である。
【0408】
具体的には、ゲートウェイ装置151および機能部161は、たとえば、CANの通信規格に従うメッセージを用いて情報のやり取りを行うことが可能である。
【0409】
また、ゲートウェイ装置151は、たとえば、イーサネットケーブル10により複数の機能部111と接続されている。
【0410】
ゲートウェイ装置151は、車両1に搭載される複数の機能部111,161間のデータを中継する中継処理を行う。
【0411】
より詳細には、ゲートウェイ装置151は、たとえば、異なるCANバス13にそれぞれ接続された機能部161間における情報の中継処理、各機能部111間における情報の中継処理、および機能部111および機能部161間における情報の中継処理を行う。
【0412】
具体的には、ゲートウェイ装置151は、たとえば、マスタECU161EからスレーブECU161A〜161Dへそれぞれ伝送されるメッセージを中継する。また、ゲートウェイ装置151は、スレーブECU161A〜161DからスレーブECU161Aへそれぞれ伝送されるメッセージを中継する。
【0413】
より詳細には、マスタECU161Eは、たとえば、所定の取得周期ごとに、スレーブECU161A,161B,161C,161Dをそれぞれ宛先とする4つのメッセージを作成する。これら4つのメッセージには、計測要求が含まれる。
【0414】
以下、スレーブECU161A,161B,161C,161Dを宛先とするメッセージを、それぞれ対象メッセージMA,MB,MC,MDとも称する。また、対象メッセージMA,MB,MC,MDの各々を、対象メッセージとも称する。
【0415】
対象メッセージMA,MB,MC,MDには、それぞれスレーブECU161A,161B,161C,161Dが宛先であることを示すメッセージIDが含まれる。
【0416】
この例では、マスタECU161Eは、対象メッセージMA,MB,MC,MDを、この順番で、ゲートウェイ装置151経由でスレーブECU161A,161B,161C,161Dへそれぞれ送信する。
【0417】
スレーブECU161Aは、マスタECU161Eから対象メッセージを受信して、受信した対象メッセージに含まれる計測要求を取得する。
【0418】
そして、スレーブECU161Aは、取得した計測要求に従って対応の車輪の回転数を計測し、計測結果を含むメッセージを作成する。
【0419】
スレーブECU161B,161C,161Dも、スレーブECU161Aと同様の処理を行う。
【0420】
各対象機能部は、たとえば、共通の機能部161へメッセージを送信する。この例では、スレーブECU161A,161B,161C,161Dは、計測結果を含むメッセージをマスタECU161Eへ送信する。
【0421】
[ゲートウェイ装置151の構成]
図16は、本発明の第3の実施の形態に係る車載通信システムにおけるゲートウェイ装置の構成を示す図である。
【0422】
図16を参照して、ゲートウェイ装置(中継装置)151は、検知部33と、複数の通信ポート34と、記憶部35と、ゲートウェイ部40と、中継部41と、カウント部42とを備える。
【0423】
ゲートウェイ装置151における検知部33、通信ポート34および記憶部35の動作は、
図2に示すスイッチ装置101における検知部33、通信ポート34および記憶部35とそれぞれ同様である。
【0424】
中継部41には、CANバス13A〜13Eが接続されている。通信ポート34は、イーサネットケーブル10を介して機能部111に接続されている。
【0425】
ゲートウェイ部40は、CANの通信プロトコルおよびイーサネットの通信プロトコル間のプロトコル変換を行うことによりデータを中継する。
【0426】
より詳細には、ゲートウェイ部40は、中継部41からメッセージを受けると、受けたメッセージについてプロトコル変換を行うことにより当該メッセージからイーサネットフレームを作成し、作成したイーサネットフレームを中継部41へ出力する。
【0427】
また、ゲートウェイ部40は、中継部41からイーサネットフレームを受けると、受けたイーサネットフレームについてプロトコル変換を行うことにより当該イーサネットフレームからメッセージを作成し、作成したメッセージを中継部41へ出力する。
【0428】
中継部41は、たとえば、メッセージIDとCANノードIDとの対応関係を示すID対応テーブル、およびCANノードIDおよびMACアドレスと出力先との対応関係を示す出力先対応テーブルを保持する。ここで、出力先は、CANバス13、通信ポート34およびゲートウェイ部40である。
【0429】
ID対応テーブルおよび出力先対応テーブルの内容は、上述したように固定されている接続関係に基づいて、たとえばユーザにより予め定められている。
【0430】
中継部41は、CANバス13経由で機能部161からメッセージを受信すると、受信したメッセージがプロトコル変換を要するメッセージである場合、当該メッセージをゲートウェイ部40へ出力する。
【0431】
また、中継部41は、受信したメッセージがプロトコル変換の不要なメッセージである場合、当該メッセージからメッセージIDを取得する。
【0432】
中継部41は、ID対応テーブルを参照し、取得したメッセージIDに対応するCANノードIDを特定する。そして、中継部41は、出力先対応テーブルを参照し、特定したCANノードIDに対応する出力先としてCANバス13を特定する。そして、中継部41は、受信したメッセージを、特定したCANバス13へ出力する。
【0433】
中継部41は、ゲートウェイ部40から受けるメッセージについても、プロトコル変換の不要なメッセージと同様に処理する。
【0434】
また、中継部41は、通信ポート34経由でイーサネットフレームを受信すると、受信したイーサネットフレームがプロトコル変換を要するイーサネットフレームである場合、当該イーサネットフレームをゲートウェイ部40へ出力する。
【0435】
また、中継部41は、受信したイーサネットフレームがプロトコル変換の不要なイーサネットフレームである場合、当該イーサネットフレームから宛先MACアドレスを取得する。
【0436】
中継部41は、出力先対応テーブルを参照し、特定した宛先MACアドレスに対応する出力先として他の通信ポート34を特定する。そして、中継部41は、受信したイーサネットフレームを、特定した通信ポート34へ出力する。
【0437】
中継部41は、ゲートウェイ部40から受けるイーサネットフレームについても、プロトコル変換の不要なイーサネットフレームと同様に処理する。
【0438】
記憶部35には、たとえばユーザにより作成された、カウント部32がカウントすべきメッセージの条件を含む設定ファイルが登録されている。
【0439】
設定ファイルには、たとえば、宛先の機能部161のCANノードIDが含まれる範囲として21〜24が登録されている。この例では、設定ファイルには、条件CMA〜CMDが含まれる。条件CMA,CMB,CMC,CMDは、たとえば、メッセージIDがそれぞれ11番,12番,13番,14番であることである。
【0440】
ここで、11番,12番,13番,14番は、それぞれ対象メッセージMA,MB,MC,MDに含まれるメッセージIDの一例である。
【0441】
この条件CMA〜CMDは、たとえば、以下のように作成される。すなわち、たとえば、管理者は、ID対応テーブルに基づいて、21〜24のCANノードIDに対応するメッセージIDとして、11〜14をそれぞれ抽出する。管理者は、抽出したメッセージIDに基づいて条件CMA〜CMDを作成する。
【0442】
カウント部42は、中継処理において対象機能部へ中継されるパケット、この例ではメッセージの数である中継メッセージ数をそれぞれカウントする。
【0443】
より詳細には、カウント部42は、記憶部35に登録された設定ファイルの内容に従って、中継部41において送受信されるメッセージ数をカウントする。
【0444】
この例では、カウント部42は、設定ファイルに含まれる条件CMA,CMB,CMC,CMDを用いて、CANバス13A,13B,13C,13Dへそれぞれ中継される対象メッセージの個数をカウントする。
【0445】
また、カウント部32は、DoS攻撃を行うための機能部161からスレーブECU161へ伝送される、対象メッセージMA,MB,MC,MDのうちのいずれか1つを偽装した不正侵入メッセージの個数もカウントする。
【0446】
具体的には、カウント部42は、たとえば、カウント値NA,NB,NC,NDをカウントするための4つの送信カウンタを保持する。
【0447】
ここで、カウント値NAは、対象メッセージMAの個数、および対象メッセージMAを偽装した不正侵入メッセージの個数の合計を示す。カウント値NBは、対象メッセージMBの個数、および対象メッセージMBを偽装した不正侵入メッセージの個数の合計を示す。カウント値NCは、対象メッセージMCの個数、および対象メッセージMCを偽装した不正侵入メッセージの個数の合計を示す。カウント値NDは、対象メッセージMDの個数、および対象メッセージMDを偽装した不正侵入メッセージの個数の合計を示す。
【0448】
カウント部42は、
図3〜
図12に示す場合と同様に、対象メッセージMA,MB,MC,MDのうちのいずれか、または不正侵入メッセージが中継部41において中継されると、対応の送信カウンタのカウント値をインクリメントする。
【0449】
検知部33は、カウント部42のカウント値を監視し、カウント部42によってカウントされた各中継メッセージ数の最大値および最小値に基づいて、対象機能部への不正通信を検知する。
【0450】
具体的には、検知部33は、たとえば、
図3〜
図12に示す場合と同様に、各中継メッセージ数の最大値および最小値の差分Difの時間的推移に基づいて不正通信を検知する。
【0451】
以上のように、本発明の第3の実施の形態に係るゲートウェイ装置は、車両1に搭載される複数の機能部161間のデータを中継する中継処理を行う。カウント部42は、中継処理において同類の複数の機能部161である対象機能部へ中継されるメッセージの数である中継メッセージ数をそれぞれカウントする。そして、検知部33は、カウント部42のカウント値を監視し、カウント部42によってカウントされた各中継メッセージ数の最大値および最小値に基づいて、対象機能部への不正通信を検知する。
【0452】
各対象機能部は同類であるので、各対象機能部への中継メッセージ数は同数であると考えられる。そして、各対象機能部への中継メッセージ数をカウントし、カウントした各中継メッセージ数の最大値および最小値に基づいて、対象機能部への不正通信を検知する構成により、たとえば、同数であるべき各中継メッセージ数のばらつきに基づいて、Slow Read DoS攻撃のような車載ネットワークにおける末端に位置する機能部161において検知困難な不正通信を検知することができる。また、各中継メッセージ数をカウントする構成により、通信プロトコルに関わらず不正通信を検知することができる。具体的には、中継されるメッセージが、TCPコネクションを用いないCANにおけるメッセージである場合においても、Slow Read DoS攻撃を検知することができる。また、車両1の走行状態に関係なくゲートウェイ装置151が動作する構成により、車両1が駐車している状態に加えて、車両1が走行している状態においても不正通信を検知することができる。したがって、車載ネットワークにおいて良好なセキュリティを提供することができる。
【0453】
その他の構成および動作は第1の実施の形態に係る車載通信システムと同様であるため、ここでは詳細な説明を繰り返さない。
【0454】
なお、本発明の第1の実施の形態〜第3の実施の形態に係る各装置の構成要素および動作のうち、一部または全部を適宜組み合わせることも可能である。
【0455】
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0456】
以上の説明は、以下に付記する特徴を含む。
【0457】
[付記1]
車両に搭載される複数の機能部間のデータを中継する中継処理を行う中継装置であって、
前記中継処理において同類の複数の前記機能部である対象機能部へ中継されるパケットの数である中継パケット数をそれぞれカウントするカウント部と、
前記カウント部のカウント値を監視し、前記カウント部によってカウントされた各前記中継パケット数の最大値および最小値に基づいて、前記対象機能部への不正通信を検知する検知部とを備え、
前記中継装置は、スイッチ装置またはゲートウェイ装置であり、
前記カウント部は、前記中継処理において、共通の前記機能部であるADAS(Advanced Driver Assistance System)から複数のLiDAR(Light Detection and Ranging)、ミリ波センサまたはカメラへ中継されるパケットの数である中継パケット数をそれぞれカウントするか、または共通の前記機能部であるマスタECU(Electronic Control Unit)から複数のスレーブECUへ中継されるメッセージの数である中継メッセージ数をそれぞれカウントし、
前記パケットまたは前記メッセージは、共通の前記機能部から各前記対象機能部へ同じ個数ずつ送信されるパケットまたはメッセージである、中継装置。