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

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

▶ パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカの特許一覧

<>
  • 特許-異常検知装置および異常検知方法 図1
  • 特許-異常検知装置および異常検知方法 図2
  • 特許-異常検知装置および異常検知方法 図3
  • 特許-異常検知装置および異常検知方法 図4
  • 特許-異常検知装置および異常検知方法 図5
  • 特許-異常検知装置および異常検知方法 図6
  • 特許-異常検知装置および異常検知方法 図7
  • 特許-異常検知装置および異常検知方法 図8
  • 特許-異常検知装置および異常検知方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-17
(45)【発行日】2024-05-27
(54)【発明の名称】異常検知装置および異常検知方法
(51)【国際特許分類】
   G06F 21/55 20130101AFI20240520BHJP
【FI】
G06F21/55
【請求項の数】 11
(21)【出願番号】P 2021529982
(86)(22)【出願日】2020-06-24
(86)【国際出願番号】 JP2020024841
(87)【国際公開番号】W WO2021002261
(87)【国際公開日】2021-01-07
【審査請求日】2023-04-04
(31)【優先権主張番号】PCT/JP2019/026722
(32)【優先日】2019-07-04
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】514136668
【氏名又は名称】パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
【氏名又は名称原語表記】Panasonic Intellectual Property Corporation of America
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】平野 亮
(72)【発明者】
【氏名】岸川 剛
(72)【発明者】
【氏名】氏家 良浩
(72)【発明者】
【氏名】芳賀 智之
【審査官】平井 誠
(56)【参考文献】
【文献】国際公開第2019/021402(WO,A1)
【文献】特開2018-190465(JP,A)
【文献】米国特許出願公開第2016/0142303(US,A1)
【文献】米国特許出願公開第2018/0262466(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
イーサネット(登録商標)で構成され、サービス指向型通信が行われる車載ネットワークシステムにおける異常検知装置であって、前記異常検知装置は、
サービス指向型通信の通信確立フェーズにおいて前記イーサネットを流れる通信確立フレームを監視し、前記通信確立フレームに記載される通信IDおよびサーバーアドレスまたはクライアントアドレスを含む検知ルールを通信IDごとに生成する検知ルール生成部と、
サービス指向型通信の通信フェーズにおいて前記イーサネットを流れる通信フレームを監視し、前記通信フレームに記載された通信IDを含む検知ルールを参照し、当該通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該検知ルールに含まれるサーバーアドレスまたはクライアントアドレスと異なる場合に、当該通信フレームを異常フレームとして検知する異常検知部と、
前記異常フレームが検知された場合に、異常を通知する異常通知部と、を備える、
異常検知装置。
【請求項2】
前記検知ルール生成部は、それぞれ同一の通信IDおよびそれぞれ異なるサーバーアドレスまたはそれぞれ異なるクライアントアドレスを含む複数の検知ルールを1以上の通信IDについて生成し、
前記異常検知部は、前記通信フレームに記載された通信IDを含む複数の検知ルールを参照し、当該通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該複数の検知ルールのそれぞれに含まれるサーバーアドレスまたはクライアントアドレスとすべて異なる場合に、当該通信フレームを異常フレームとして検知する、
請求項1に記載の異常検知装置。
【請求項3】
検知ルールは、検知ルールに含まれるサーバーアドレスに対応するサーバーまたはクライアントアドレスに対応するクライアントが、検知ルールに含まれる通信IDに対応するサービスについての通信を行う状態である場合にはONを示し、行わない状態にある場合にはOFFを示す通信確立状態を含み、
前記検知ルール生成部は、
前記通信確立フレームに記載された通信種別を確認し、前記通信種別がサービス提供、サービス購読応答、サービス探索またはサービス購読であれば、当該通信確立フレームに記載された通信IDとサーバーアドレスとの組または、通信IDとクライアントアドレスとの組を含む検知ルールに含まれる通信確立状態をONに変更し、
前記通信種別がサービス提供停止またはサービス購読停止であれば、当該通信確立フレームに記載された通信IDとサーバーアドレスとの組または、通信IDとクライアントアドレスとの組を含む検知ルールに含まれる通信確立状態をOFFに変更し、
前記異常検知部は、前記通信フレームに記載された通信IDを含む検知ルールを参照し、前記通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該検知ルールに含まれるサーバーアドレスまたはクライアントアドレスと一致する場合に、当該検知ルールに含まれる通信確立状態がOFFであれば、当該通信フレームを異常フレームとして検知する、
請求項1または2に記載の異常検知装置。
【請求項4】
前記検知ルール生成部は、前記通信種別がサービス提供停止またはサービス購読停止であれば、所定時間待機した後、前記通信確立フレームに記載された通信IDとサーバーアドレスとの組または、通信IDとクライアントアドレスとの組を含む検知ルールに含まれる通信確立状態をOFFに変更する、
請求項3に記載の異常検知装置。
【請求項5】
前記検知ルール生成部は、
前記通信確立フレームに記載された通信種別を確認し、前記通信種別がサービス提供停止であれば、前記通信確立フレームに記載された通信IDとサーバーアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に異常と判定し、前記通信種別がサービス購読停止であれば、前記通信確立フレームに記載された通信IDとクライアントアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に異常と判定する、
請求項3または4に記載の異常検知装置。
【請求項6】
前記異常検知装置には、前記車載ネットワークシステムにおいて、通信IDごとに利用されるサーバーの最大数を表す通信ID別サーバー数と通信IDごとに利用されるクライアントの最大数を表す通信ID別クライアント数とのうち少なくとも1つが事前に記憶され、
前記検知ルール生成部は、
前記通信確立フレームに記載された通信IDとサーバーアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に、当該通信IDを含む検知ルールにおける当該サーバーアドレスの種類数が前記通信ID別サーバー数よりも大きければ、異常と判定し、同じか小さければ、当該通信確立フレームに記載された通信IDとサーバーアドレスの組を含む検知ルールを追加し、または、
前記通信確立フレームに記載された通信IDとクライアントアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に、当該通信IDを含む検知ルールにおける当該クライアントアドレスの種類数が前記通信ID別クライアント数よりも大きければ、異常と判定し、同じか小さければ、当該通信確立フレームに記載された通信IDとクライアントアドレスの組を含む検知ルールを追加する、
請求項1から5のいずれか1項に記載の異常検知装置。
【請求項7】
前記異常検知装置には、前回起動時に生成した前回検知ルールが記憶され、
前記検知ルール生成部は、前記通信確立フレームを監視して検知ルールを生成するときに、異常と判定した場合、当該通信確立フレームに記載された通信IDを含む前回検知ルールを参照し、当該通信IDを含む検知ルールに記載の内容を当該前回検知ルールに記載の内容に書き換える、
請求項6に記載の異常検知装置。
【請求項8】
前記異常検知装置には、通信IDごとに通信許可される車両状態が事前に記憶され、
前記検知ルール生成部は、前記通信確立フレームを受信した場合に、現在の車両状態を取得し、当該通信確立フレームに記載された通信IDについて、事前に記憶された通信許可される車両状態と、現在の車両状態とが異なる場合に、異常と判定し、
前記異常検知部は、前記通信フレームを受信した場合に、現在の車両状態を取得し、事前に記憶された、当該通信フレームに記載された通信IDについて通信許可される車両状態と、現在の車両状態とが異なる場合に、当該通信フレームを異常フレームとして検知する、
請求項1から7のいずれか1項に記載の異常検知装置。
【請求項9】
前記車両状態は、イグニションの状態、ネットワーク接続状態、シフト状態、運転支援モードの状態、自動運転の状態、および、人物または物体検知の状態のうち少なくとも1つを含む、
請求項8に記載の異常検知装置。
【請求項10】
前記サービス指向型通信における通信フェーズではSOME/IPが用いられ、通信確立フェーズではSOME/IP―SDが用いられ、
通信IDは、Service IDおよびMethod IDであり、
通信種別におけるサービス提供、サービス購読、サービス探索、サービス購読応答、サービス提供停止およびサービス購読停止は、それぞれService Offer、Service Subscribe、Service Find、Service SubscribeAck、Stop OfferおよびStop Subscribeである、
請求項1から9のいずれか1項に記載の異常検知装置。
【請求項11】
イーサネットで構成され、サービス指向型通信が行われる車載ネットワークシステムにおける異常検知方法であって、前記異常検知方法は、
サービス指向型通信の通信確立フェーズにおいて前記イーサネットを流れる通信確立フレームを監視し、前記通信確立フレームに記載される通信IDおよびサーバーアドレスまたはクライアントアドレスを含む検知ルールを通信IDごとに生成する検知ルール生成ステップと、
サービス指向型通信の通信フェーズにおいて前記イーサネットを流れる通信フレームを監視し、前記通信フレームに記載された通信IDを含む検知ルールを参照し、当該通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該検知ルールに含まれるサーバーアドレスまたはクライアントアドレスと異なる場合に、当該通信フレームを異常フレームとして検知する異常検知ステップと、
前記異常フレームが検知された場合に、異常を通知する異常通知ステップと、を含む、
異常検知方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車載ネットワークシステムにおいて、異常な通信を検知する異常検知装置および異常検知方法に関する。
【背景技術】
【0002】
近年、自動車の中のシステムには、電子制御装置(ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。車載ネットワークの1つに、IEEE 802.3で規定されているEthernet(登録商標)という規格が存在する。先進運転支援システムまたは自動運転においては、カメラもしくはLIDAR(Light Detection and Ranging)などのセンサーにより取得されるセンサー情報またはダイナミックマップなどの膨大な情報を処理する必要があるため、データ伝送速度が高いEthernetの導入が進んでいる。そして、Ethernet上の通信プロトコルとして、SOME/IP(Scalable Service-Oriented MiddlewarE over IP)という規格が存在する。SOME/IPでは、Ethernetに接続される各ノードが、ヘッダに記載されるサービスIDによって通信内容を決定するため、SOME/IPはサービス指向型通信と呼ばれる。さらに、SOME/IPでは、SOME/IP―SD(Service Discovery)と呼ばれるSOME/IP通信を開始する前に行われるノード間の通信確立フェーズが存在し、事前に利用したいサービスのサービスIDまたは提供可能なサービスのサービスIDを通信確立フェーズにおいて記憶していれば、通信先ノードのIPアドレスおよびMACアドレスを動的に取得できる。そのため、システム環境に依存するIPアドレスおよびMACアドレスなどの情報を事前に設定する必要はなく、可搬性に優れたソフトウェアを容易に設計することが可能であることから次世代の通信方式として利用の拡大が期待されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】“SOME/IP,Publications,Specifications/Standards”、[online]、[令和1年06月18日検索]、インターネット<URL:http://some-ip.com/papers.shtml/>
【文献】N.Herold,et al、“Anomaly Detection for SOME/IPusing Complex Event Processing”、NOMS 2016,IEEE/IFIP Network Operations and Management Symposium、2016
【発明の概要】
【発明が解決しようとする課題】
【0004】
SOME/IP等のサービス指向型通信において、セキュリティ対策が何も施されていない場合、一つのノードが不正に乗っ取られると、乗っ取られたノードが送信するサービスIDを含むフレームを不正に送受信できるだけでなく、乗っ取られたノード以外の他のノードが送信するはずのサービスIDを含むフレームを送信することで、他のノードになりすまして、不正な通信を成立させることや、通信を停止させることができる脅威がある。
【0005】
特に、車載ネットワークにおいては、車両の「走る、曲がる、止まる」に関わる特に重要なサービスが存在するため、これらのサービスを不正に制御することや、不正に停止することが可能であることは大きな脅威となる。
【0006】
これらの脅威に対して、IPSec(Security Archtecture for Internet Protocol)等を用いてSOME/IP通信を暗号化する対策や、非特許文献2に開示されている対策がある。
【0007】
IPSecを用いる場合、ノード間で共有された鍵を用いて通信を暗号化することで、通信内容の盗聴を防ぐことができる。
【0008】
しかし、鍵が車両内の各々のECUで共通であった場合、特定のECUが不正に乗っ取られると鍵も漏洩し、不正な通信が成立させることができる課題がある。
【0009】
また、ECUごとに異なる鍵または公開鍵を用いる場合、鍵の管理が煩雑になることに加えて、通信の暗号化処理と復号処理が必要となりオーバヘッドが増加する課題がある。
【0010】
また、セキュリティ対策のために、IPSecを用いると、SOME/IPを利用する利点である可搬性が失われる。
【0011】
非特許文献2に開示されている対策では、SOME/IPの通信フレームに対して、事前にサービスIDと対応する送信先IPアドレスおよび送信元IPアドレスを正常ルールとして事前に設定し、通信フレームを監視し、正常ルールに従わない通信フレームを異常なフレームとして検知する。
【0012】
しかしながら、IPアドレス等の情報は車種や車両ごとに異なるため、システム環境に依存する情報を事前に設定することは、SOME/IPを利用する利点である可搬性を低下させる課題がある。
【0013】
本開示は、従来の課題を解決するもので、サービス指向型通信の可搬性を失わずに、自動車の安全性を向上できる異常検知装置等を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記課題を解決するために、本開示の一態様に係る異常検知装置は、イーサネット(登録商標)で構成され、サービス指向型通信が行われる車載ネットワークシステムにおける異常検知装置であって、前記異常検知装置は、サービス指向型通信の通信確立フェーズにおいて前記イーサネットを流れる通信確立フレームを監視し、前記通信確立フレームに記載される通信IDおよびサーバーアドレスまたはクライアントアドレスを含む検知ルールを通信IDごとに生成する検知ルール生成部と、サービス指向型通信の通信フェーズにおいて前記イーサネットを流れる通信フレームを監視し、前記通信フレームに記載された通信IDを含む検知ルールを参照し、当該通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該検知ルールに含まれるサーバーアドレスまたはクライアントアドレスと異なる場合に、当該通信フレームを異常フレームとして検知する異常検知部と、前記異常フレームが検知された場合に、異常を通知する異常通知部と、を備える。
【発明の効果】
【0015】
本開示によれば、サービス指向型通信の可搬性を失わずに、自動車の安全性を向上できる。
【図面の簡単な説明】
【0016】
図1図1は、本開示の実施の形態1における車載ネットワークシステムの全体構成図である。
図2図2は、本開示の実施の形態1におけるIDSECUの構成図である。
図3図3は、本開示の実施の形態1における車載ネットワークシステムのイーサネットにおけるヘッダフォーマットの一例を示した図である。
図4図4は、本開示の実施の形態1における事前設定検知ルールの一例を示した図である。
図5図5は、本開示の実施の形態1における動的設定検知ルールの一例を示した図である。
図6図6は、本開示の実施の形態1における検知ルール生成処理のシーケンスを示した図である。
図7図7は、本開示の実施の形態1における異常検知処理のシーケンスを示した図である。
図8図8は、本開示の実施の形態1における検知ルール生成処理のフローチャートを示した図である。
図9図9は、本開示の実施の形態1における異常検知処理のフローチャートである。
【発明を実施するための形態】
【0017】
上記課題を解決するために、本開示の一態様に係る異常検知装置は、イーサネットで構成され、サービス指向型通信が行われる車載ネットワークシステムにおける異常検知装置であって、前記異常検知装置は、サービス指向型通信の通信確立フェーズにおいて前記イーサネットを流れる通信確立フレームを監視し、前記通信確立フレームに記載される通信IDおよびサーバーアドレスまたはクライアントアドレスを含む検知ルールを通信IDごとに生成する検知ルール生成部と、サービス指向型通信の通信フェーズにおいて前記イーサネットを流れる通信フレームを監視し、前記通信フレームに記載された通信IDを含む検知ルールを参照し、当該通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該検知ルールに含まれるサーバーアドレスまたはクライアントアドレスと異なる場合に、当該通信フレームを異常フレームとして検知する異常検知部と、前記異常フレームが検知された場合に、異常を通知する異常通知部と、を備える。
【0018】
これにより、事前にIPアドレス等を設定することなく、通信確立フェーズにおいて動的に通信IDに対応するサーバーアドレス(例えばサーバーIPアドレス)またはクライアントアドレス(例えばクライアントIPアドレス)を検知ルールとして生成して利用することができる。そして、通信フェーズにおいて、検知ルールに記載されたサーバーIPアドレスまたはクライアントIPアドレスとアドレスが異なる通信フレームは、正規のサービス指向型通信の通信確立フェーズを経由していないフレームであることから、異常フレームであると判断できる。このように、サービス指向型通信の利点であるソフトウェア可搬性を失わずに、異常な通信フレームを検知することができ、自動車の安全性を向上できる。その結果、サービス指向型通信において、不正に乗っ取られたノードが正規の他ノードになりすまして、他ノードが送信するはずのサービスIDを含むフレームを送信することで、不正な通信を成立させる場合または通信を停止させる場合等に、そのフレームを異常フレームとして検知することが可能となる。さらに、システム環境に依存するIPアドレス等の設定が不要となるため、他車種および他車両への展開の際のソフトウェア変更のコストが低減される。
【0019】
また、前記検知ルール生成部は、それぞれ同一の通信IDおよびそれぞれ異なるサーバーアドレスまたはそれぞれ異なるクライアントアドレスを含む複数の検知ルールを1以上の通信IDについて生成し、前記異常検知部は、前記通信フレームに記載された通信IDを含む複数の検知ルールを参照し、当該通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該複数の検知ルールのそれぞれに含まれるサーバーアドレスまたはクライアントアドレスとすべて異なる場合に、当該通信フレームを異常フレームとして検知してもよい。
【0020】
これにより、一つの通信IDに対してそれぞれサーバーアドレスまたはクライアントアドレスが異なる複数の検知ルールを生成することで、サービス指向型通信において、システム冗長化のために同一のサービスを提供する複数のサーバーが存在する場合、または同一のサービスを利用するクライアントが複数存在する場合であっても、誤検知を防ぐことができる。
【0021】
また、検知ルールは、検知ルールに含まれるサーバーアドレスに対応するサーバーまたはクライアントアドレスに対応するクライアントが、検知ルールに含まれる通信IDに対応するサービスについての通信を行う状態である場合にはONを示し、行わない状態にある場合にはOFFを示す通信確立状態を含み、前記検知ルール生成部は、前記通信確立フレームに記載された通信種別を確認し、前記通信種別がサービス提供、サービス購読応答、サービス探索またはサービス購読であれば、当該通信確立フレームに記載された通信IDとサーバーアドレスとの組または、通信IDとクライアントアドレスとの組を含む検知ルールに含まれる通信確立状態をONに変更し、前記通信種別がサービス提供停止またはサービス購読停止であれば、当該通信確立フレームに記載された通信IDとサーバーアドレスとの組または、通信IDとクライアントアドレスとの組を含む検知ルールに含まれる通信確立状態をOFFに変更し、前記異常検知部は、前記通信フレームに記載された通信IDを含む検知ルールを参照し、前記通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該検知ルールに含まれるサーバーアドレスまたはクライアントアドレスと一致する場合に、当該検知ルールに含まれる通信確立状態がOFFであれば、当該通信フレームを異常フレームとして検知してもよい。
【0022】
これにより、サービス指向型通信において、通信IDごとに、通信フレームが通信してよい状態であるか通信してはいけない状態であるかを示す通信確立状態が保持されることで、検知ルールに記載されたサーバーアドレスまたはクライアントアドレスと同じサーバーアドレスまたはクライアントアドレスが記載された通信フレームであっても、通信してはいけない状態で不正に通信された通信フレームを、異常として判断できる。
【0023】
また、前記検知ルール生成部は、前記通信種別がサービス提供停止またはサービス購読停止であれば、所定時間待機した後、前記通信確立フレームに記載された通信IDとサーバーアドレスとの組または、通信IDとクライアントアドレスとの組を含む検知ルールに含まれる通信確立状態をOFFに変更してもよい。
【0024】
これにより、サービス提供停止またはサービス購読停止のフレームが送信されてからサーバーの購読停止の受け取りが完了するまでに、または、クライアントのサービス提供停止の受け取りが完了するまでに所定時間かかる可能性があるため、所定時間待機してから検知ルールの通信確立状態を変更することで、サーバーが購読停止をまだ受け取っていないまたはクライアント側がサービス提供停止をまだ受け取っていない時間帯において、誤検知を防ぐことができる。
【0025】
また、前記検知ルール生成部は、前記通信確立フレームに記載された通信種別を確認し、前記通信種別がサービス提供停止であれば、前記通信確立フレームに記載された通信IDとサーバーアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に異常と判定し、前記通信種別がサービス購読停止であれば、前記通信確立フレームに記載された通信IDとクライアントアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に異常と判定してもよい。
【0026】
これにより、通信確立フェーズにおいて、サービス提供またはサービス購読が実施されていないのにかかわらず、サービス提供またはサービス購読が実施された後に実施されるはずのサービス提供停止またはサービス購読停止が実施された場合は、不正な通信であると分かるため、異常と判断できる。
【0027】
また、前記異常検知装置には、前記車載ネットワークシステムにおいて、通信IDごとに利用されるサーバーの最大数を表す通信ID別サーバー数と通信IDごとに利用されるクライアントの最大数を表す通信ID別クライアント数とのうち少なくとも1つが事前に記憶され、前記検知ルール生成部は、前記通信確立フレームに記載された通信IDとサーバーアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に、当該通信IDを含む検知ルールにおける当該サーバーアドレスの種類数が前記通信ID別サーバー数よりも大きければ、異常と判定し、同じか小さければ、当該通信確立フレームに記載された通信IDとサーバーアドレスの組を含む検知ルールを追加し、または、前記通信確立フレームに記載された通信IDとクライアントアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に、当該通信IDを含む検知ルールにおける当該クライアントアドレスの種類数が前記通信ID別クライアント数よりも大きければ、異常と判定し、同じか小さければ、当該通信確立フレームに記載された通信IDとクライアントアドレスの組を含む検知ルールを追加してもよい。
【0028】
これにより、IPアドレスよりも設定が容易である、通信IDごとに利用されるサーバーの最大数またはクライアントの最大数を事前に設定しておくことで、不正に通信確立フレームが送信された場合に、正常よりも通信確立フレームの種類数言い換えると車載ネットワークシステムに存在するサーバーまたはクライアントの種類数が増加して、上記最大数を超えることから、異常であると判断できる。
【0029】
また、前記異常検知装置には、前回起動時に生成した前回検知ルールが記憶され、前記検知ルール生成部は、前記通信確立フレームを監視して検知ルールを生成するときに、異常と判定した場合、当該通信確立フレームに記載された通信IDを含む前回検知ルールを参照し、当該通信IDを含む検知ルールに記載の内容を当該前回検知ルールに記載の内容に書き換えてもよい。
【0030】
これにより、不正に通信確立フレームが送信された場合に、前回の検知ルールを優先することで、例えば、出荷前は正規の通信確立フレームが流れており正しい検知ルールが作成できており、出荷後に不正な通信確立フレームが送信され検知ルールが不正なものになったおそれがある場合に、出荷前の正しい検知ルールを優先することができ、より正しい検知ルールを用いることができる。
【0031】
また、前記異常検知装置には、通信IDごとに通信許可される車両状態が事前に記憶され、前記検知ルール生成部は、前記通信確立フレームを受信した場合に、現在の車両状態を取得し、当該通信確立フレームに記載された通信IDについて、事前に記憶された通信許可される車両状態と、現在の車両状態とが異なる場合に、異常と判定し、前記異常検知部は、前記通信フレームを受信した場合に、現在の車両状態を取得し、事前に記憶された、当該通信フレームに記載された通信IDについて通信許可される車両状態と、現在の車両状態とが異なる場合に、当該通信フレームを異常フレームとして検知してもよい。
【0032】
これにより、不正な車両状態において、通信確立フレームまたは通信フレームが送信された場合に、異常と判断することができる。
【0033】
また、前記車両状態は、イグニションの状態、ネットワーク接続状態、シフト状態、運転支援モードの状態、自動運転の状態、および、人物または物体検知の状態のうち少なくとも1つを含んでいてもよい。
【0034】
これにより、イグニションONの状態でしか発生しないカメラ映像処理のフレーム、ネットワーク接続状態かつパーキングシフトの状態でしか発生しないソフトアップデートのフレーム、自動駐車モードの状態でしか発生しない操舵指示フレーム、または、自動運転モードかつ人物もしくは物体検知の状態でしか発生しないブレーキ制御指示フレームなどが不正な状態で発生した場合に、異常な通信フレームを検知することができる。
【0035】
また、前記サービス指向型通信における通信フェーズではSOME/IPが用いられ、通信確立フェーズではSOME/IP―SDが用いられ、通信IDは、Service IDおよびMethod IDであり、通信種別におけるサービス提供、サービス購読、サービス探索、サービス購読応答、サービス提供停止およびサービス購読停止は、それぞれService Offer、Service Subscribe、Service Find、Service SubscribeAck、Stop OfferおよびStop Subscribeであってもよい。
【0036】
これにより、SOME/IPにおいて、通信確立フェーズで動的にルールを作成して、通信フェーズで異常な通信フレームを検知することができる。
【0037】
また、本開示の一態様に係る異常検知方法は、イーサネットで構成され、サービス指向型通信が行われる車載ネットワークシステムにおける異常検知方法であって、前記異常検知方法は、サービス指向型通信の通信確立フェーズにおいて前記イーサネットを流れる通信確立フレームを監視し、前記通信確立フレームに記載される通信IDおよびサーバーアドレスまたはクライアントアドレスを含む検知ルールを通信IDごとに生成する検知ルール生成ステップと、サービス指向型通信の通信フェーズにおいて前記イーサネットを流れる通信フレームを監視し、前記通信フレームに記載された通信IDを含む検知ルールを参照し、当該通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該検知ルールに含まれるサーバーアドレスまたはクライアントアドレスと異なる場合に、当該通信フレームを異常フレームとして検知する異常検知ステップと、前記異常フレームが検知された場合に、異常を通知する異常通知ステップと、を含む。
【0038】
これにより、サービス指向型通信の可搬性を失わずに、自動車の安全性を向上できる異常検知方法を提供できる。
【0039】
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD-ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【0040】
以下、実施の形態に係る異常検知装置について図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置および接続形態、並びに、処理の要素としてのステップおよびステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【0041】
(実施の形態1)
[車載ネットワークシステム10の全体構成図]
図1は、本開示の実施の形態1における車載ネットワークシステム10の全体構成図である。
【0042】
図1において、車載ネットワークシステム10は、IDSECU100と、CentralECU200と、ZoneECU300aと、ZoneECU300bと、ZoneECU300cと、ZoneECU300dと、カメラECU400aと、カーナビECU400bと、ステアリングECU400cと、ブレーキECU400dを備える。
【0043】
IDSECU100と、CentralECU200と、ZoneECU300aと、ZoneECU300bと、ZoneECU300cと、ZoneECU300dは、イーサネット13を介して接続される。
【0044】
カメラECU400aとZoneECU300aはイーサネット12を介して接続され、カーナビECU400bとZoneECU300bはイーサネット11を介して接続され、ステアリングECU400cとZoneECU300cはCAN(登録商標)14を介して接続され、ブレーキECU400dとZoneECU300dはCAN-FD15を介して接続される。
【0045】
CentralECU200は、イーサネット13に加えて、インターネット等の外部ネットワークにも接続される。
【0046】
IDSECU100は、イーサネット13を流れるサービス指向型通信プロトコルに従う通信を監視し、異常なフレームを検出し、CentralECU200を介してインターネット上のサーバーへ異常フレームの情報を通知し、ZoneECU300bを介してカーナビECU400bに異常を表示することでドライバー等へ異常フレームの情報を通知する機能を有する異常検知装置である。異常検知方法については後述する。
【0047】
CentralECU200は、ZoneECU300a、300b、300cおよび300dと、IDSECU100と、イーサネット13を介して、サービス指向型通信プロトコルに従って通信を行い、ZoneECU300a、300b、300cおよび300dを制御し、車載ネットワークシステム10全体を制御する。
【0048】
また、CentralECU200は、内部にスイッチ機能を保持し、ZoneECU300a、300b、300cおよび300dとCentralECU200間で送信されるフレームならびに、ZoneECU300a、300b、300cおよび300d間で通信されるフレームをIDSECU100へ転送する機能を有する。また、CentralECU200は、IDSECU100から異常フレームの情報を受信し、外部ネットワークを介して、インターネット上のサーバーへ異常フレームの情報を通知する機能を有する。
【0049】
ZoneECU300aは、イーサネット13を介して、CentralECU200、IDSECU100ならびに、ZoneECU300b、300cおよび300dと通信し、イーサネット12を介して、カメラECU400aと通信し、カメラ映像のON/OFFを制御する。
【0050】
ZoneECU300bは、イーサネット13を介して、CentralECU200、IDSECU100ならびに、ZoneECU300a、300cおよび300dと通信し、イーサネット11を介して、カーナビECU400bと通信し、カーナビの表示を制御する。
【0051】
ZoneECU300cは、イーサネット13を介して、CentralECU200、IDSECU100ならびに、ZoneECU300a、300bおよび300dと通信し、CAN14を介して、ステアリングECU400cと通信し、ステアリングの操舵を制御する。
【0052】
ZoneECU300dは、イーサネット13を介して、CentralECU200、IDSECU100ならびに、ZoneECU300a、300bおよび300cと通信し、CAN-FD15を介して、ブレーキECU400dと通信し、ブレーキを制御する。
【0053】
カメラECU400aは、車両に搭載されるカメラの映像を制御する。
【0054】
カーナビECU400bは、車両に搭載されるカーナビの表示を制御する。
【0055】
ステアリングECU400cは、車両に搭載されるステアリングの操舵を制御する。
【0056】
ブレーキECU400dは、車両に搭載されるブレーキを制御する。
【0057】
[IDSECU100の構成図]
図2は、本開示の実施の形態1におけるIDSECU100の構成図である。図2に示されるように、IDSECU100は、例えば、通信部110と、転送部120と、検知ルール記憶部130と、検知ルール生成部140と、異常検知部150と、異常通知部160と、車両状態抽出部170を備える。
【0058】
通信部110は、イーサネット13と接続され、イーサネット13上に流れるサービス指向型通信プロトコルに従うフレームを受信し、転送部120へ送信する機能を有する。サービス指向型通信プロトコルは例えばSOME/IPである。サービス指向型通信における通信フェーズではSOME/IPが用いられ、通信確立フェーズではSOME/IP―SDが用いられる。SOME/IPのデータフォーマットの詳細は後述する。
【0059】
転送部120は、通信部110からサービス指向型通信プロトコルに従うフレームを受信する。転送部120は、受信したフレームがSOME/IPの通信フェーズにおける通信フレームであれば、受信したフレームを異常検知部150へ転送し、受信したフレームがSOME/IPの通信確立フェーズにおける通信確立フレームであれば、受信したフレームを検知ルール生成部140へ転送する。また、受信したフレームが車両状態に関わる通信フレームであれば、転送部120は、受信したフレームを車両状態抽出部170へ転送する。車両状態は、例えば、イグニションの状態、ネットワーク接続状態、シフト状態、運転支援モードの状態、自動運転の状態、および、人物または物体検知の状態のうち少なくとも1つを含む。
【0060】
ここで、通信確立フレームとはSOME/IP―SDヘッダを有するフレームであり、通信フレームとは、SOME/IPヘッダのみを有するフレームである。車両状態に関わる通信フレームとは、ネットワーク接続状態、車速、シフト状態もしくはイグニション状態が格納されているフレームまたは、自動運転モードもしくは自動駐車モードなどの走行状態が格納されているフレームである。
【0061】
検知ルール記憶部130は、検知ルール生成部140から検知ルールを受信し、現在の検知ルールとして保持する。さらに、検知ルール記憶部130は、前回起動時に検知ルール生成部140が生成した検知ルールを前回検知ルールとして保持する。また、検知ルール記憶部130は、通信IDごとに利用されるサーバーの最大数を表す通信ID別サーバー数と通信IDごとに利用されるクライアントの最大数を表す通信ID別クライアント数とのうち少なくとも1つ(例えばここではその両方)および通信IDごとに通信許可される車両状態などを事前設定検知ルールとして事前に保持する。事前設定検知ルールおよび検知ルールの詳細については後述する。
【0062】
検知ルール生成部140は、サービス指向型通信の通信確立フェーズにおいてイーサネット13を流れる通信確立フレームを監視し、通信確立フレームに記載される通信IDおよびサーバーアドレスまたはクライアントアドレスを含む検知ルールを通信IDごとに生成する。具体的には、検知ルール生成部140は、転送部120から通信確立フレームを受信し、通信確立フレームのヘッダ情報に記載される通信IDごとに検知ルールを生成し、検知ルール記憶部130に記憶する。また、検知ルール生成部140は、車両状態抽出部170から車両状態を取得する。また、検知ルール生成部140は、検知ルール生成時に、異常と判定された通信確立フレームを異常通知部160へ送信する。検知ルールの生成方法については後述するが、検知ルール生成部140は、以下の機能を有していてもよい。
【0063】
検知ルール生成部140は、それぞれ同一の通信IDおよびそれぞれ異なるサーバーアドレスまたはそれぞれ異なるクライアントアドレスを含む複数の検知ルールを1以上の通信IDについて生成する。
【0064】
また、検知ルール生成部140は、通信確立フレームに記載された通信種別を確認し、通信種別がサービス提供、サービス購読応答、サービス探索またはサービス購読であれば、当該通信確立フレームに記載された通信IDとサーバーアドレスとの組または、通信IDとクライアントアドレスとの組を含む検知ルールに含まれる通信確立状態をONに変更する。また、検知ルール生成部140は、通信種別がサービス提供停止またはサービス購読停止であれば、当該通信確立フレームに記載された通信IDとサーバーアドレスとの組または、通信IDとクライアントアドレスとの組を含む検知ルールに含まれる通信確立状態をOFFに変更する。具体的には、検知ルール生成部140は、通信種別がサービス提供停止またはサービス購読停止であれば、所定時間待機した後、通信確立フレームに記載された通信IDとサーバーアドレスとの組または、通信IDとクライアントアドレスとの組を含む検知ルールに含まれる通信確立状態をOFFに変更する。
【0065】
また、検知ルール生成部140は、通信確立フレームに記載された通信種別を確認し、通信種別がサービス提供停止であれば、前記通信確立フレームに記載された通信IDとサーバーアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に異常と判定し、通信種別がサービス購読停止であれば、通信確立フレームに記載された通信IDとクライアントアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に異常と判定する。
【0066】
また、検知ルール生成部140は、通信確立フレームに記載された通信IDとサーバーアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に、当該通信IDを含む検知ルールにおける当該サーバーアドレスの種類数が通信ID別サーバー数よりも大きければ、異常と判定し、同じか小さければ、当該通信確立フレームに記載された通信IDとサーバーアドレスの組を含む検知ルールを追加する。また、検知ルール生成部140は、通信確立フレームに記載された通信IDとクライアントアドレスの組を含む検知ルールが存在するか否かを確認し、当該検知ルールが存在しない場合に、当該通信IDを含む検知ルールにおける当該クライアントアドレスの種類数が通信ID別クライアント数よりも大きければ、異常と判定し、同じか小さければ、当該通信確立フレームに記載された通信IDとクライアントアドレスの組を含む検知ルールを追加する。
【0067】
また、検知ルール生成部140は、通信確立フレームを監視して検知ルールを生成するときに、異常と判定した場合、当該通信確立フレームに記載された通信IDを含む前回検知ルールを参照し、当該通信IDを含む検知ルールに記載の内容を当該前回検知ルールに記載の内容に書き換える。
【0068】
また、検知ルール生成部140は、通信確立フレームを受信した場合に、現在の車両状態を取得し、当該通信確立フレームに記載された通信IDについて、事前に記憶された通信許可される車両状態と、現在の車両状態とが異なる場合に、異常と判定する。
【0069】
異常検知部150は、転送部120から通信フレームを受信し、通信フレームのヘッダ情報に記載される通信IDとサーバーアドレスとクライアントアドレスの組を取得し、車両状態抽出部170から車両状態を取得し、検知ルール記憶部130が保持する現在の検知ルールを参照し、検知ルールを用いて、受信した通信フレームが異常フレームかどうかを検知する。異常フレームの検知方法については後述するが、異常検知部150は、以下の機能を有していてもよい。
【0070】
異常検知部150は、サービス指向型通信の通信フェーズにおいてイーサネット13を流れる通信フレームを監視し、通信フレームに記載された通信IDを含む検知ルールを参照し、当該通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該検知ルールに含まれるサーバーアドレスまたはクライアントアドレスと異なる場合に、当該通信フレームを異常フレームとして検知する。
【0071】
また、異常検知部150は、通信フレームに記載された通信IDを含む複数の検知ルールを参照し、当該通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該複数の検知ルールのそれぞれに含まれるサーバーアドレスまたはクライアントアドレスとすべて異なる場合に、当該通信フレームを異常フレームとして検知する。
【0072】
また、異常検知部150は、通信フレームに記載された通信IDを含む検知ルールを参照し、当該通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該検知ルールに含まれるサーバーアドレスまたはクライアントアドレスと一致する場合に、当該検知ルールに含まれる通信確立状態がOFFであれば、当該通信フレームを異常フレームとして検知する。
【0073】
また、異常検知部150は、通信フレームを受信した場合に、現在の車両状態を取得し、事前に記憶された、当該通信フレームに記載された通信IDについて通信許可される車両状態と、現在の車両状態とが異なる場合に、当該通信フレームを異常フレームとして検知する。
【0074】
異常通知部160は、検知ルール生成部140から異常な通信確立フレームを受信し、異常検知部150から異常な通信フレームを受信し、CentralECU200向けのフレームに異常フレーム(異常な通信確立フレームまたは異常な通信フレーム)の情報を格納し、通信部110へ送信する。
【0075】
車両状態抽出部170は、転送部120から車両状態に関わる通信フレームを受信し、車両状態を抽出して、検知ルール生成部140と異常検知部150へ送信する。
【0076】
[車載ネットワークシステム10におけるヘッダフォーマット]
図3は、本開示の実施の形態1における車載ネットワークシステム10のイーサネット13におけるヘッダフォーマットである。ここで、ヘッダフォーマットは、サービス指向型通信であるSOME/IPにおけるヘッダフォーマットである。
【0077】
SOME/IPにおける通信フェーズの通信フレームには、SOME/IPヘッダのみが格納され、SOME/IPにおける通信確立フェーズの通信確立フレームには、SOME/IPヘッダおよびSOME/IP―SDヘッダが格納される。
【0078】
SOME/IPヘッダには、MessageIDと、Lengthと、RequestIDと、ProtocolVersionと、InterfaceVersionと、MessageTypeと、ReturnCodeが記載される。
【0079】
MessageIDには、ServiceIDとMethodIDが含まれる。MessageIDは、車載ネットワークシステム10においてユニークである。ServiceIDは、サーバーが提供するサービスのアプリケーションを識別する番号を表し、MethodIDは、サーバーが提供するサービスのアプリケーションのメソッドの番号を表す。
【0080】
Lengthは、RequestIDからSOME/IPヘッダの最後までの長さが記載される。
【0081】
RequestIDは、ClientIDとSessionIDが記載される。ClientIDは、クライアントのアプリケーションを識別するための番号であり、SessionIDは、サーバーのアプリケーションとクライアントのアプリケーションとの通信を識別するための番号である。
【0082】
ProtocolVersionは、SOME/IPプロトコルのバージョン情報が記載され、InterfaceVersionは、SOME/IPプロトコルのインターフェイスのバージョンが記載され、MessageTypeは、SOME/IPの通信フレームにおける通信種別が記載され、ReturnCodeは、エラーコードなどの返り値が記載される。
【0083】
MessageTypeは、具体的には、Request、RequestNoReturn、Response、Error、TPRequest、TPNotification、TPResponseおよびTPErrorを識別する番号が記載される。
【0084】
ここで、MessageIDは、以降、通信IDとも記載する。言い換えると、通信IDは、Service IDおよびMethod IDである。通信IDに応じて、通信フレームの内容が定まる。例えば、カメラ映像を要求するサービスを提供する通信フレーム、ソフトアップデートを要求する通信フレーム、ハンドル制御を指示する通信フレーム、ブレーキ制御を指示する通信フレーム、車両状態を提供する通信フレームまたはシフト変更を要求する通信フレームなど、通信IDを確認することで、通信フレームにどのような情報が格納されているかを判断することができる。
【0085】
SOME/IP-SDヘッダには、Flagsと、Reservedと、LengthOfEntriesArrayInBytesと、SD―Typeと、Index1stOptionsと、Index2ndOptionsと、NumberOfOptionsと、SD―ServiceIDとInstanceIDと、MajorVersionと、TTLと、MinorVersionが記載される。
【0086】
Flagsは、フラグ情報が記載され、Reservedは、予約番号が記載され、LengthOfEntriesArrayInBytesは、オプションを除く、SOME/IP-SDヘッダの最後までの長さが記載され、SD―Typeは、SOME/IPの通信確立フレームにおける通信種別が記載され、Index1stOptionsとIndex2ndOptionsは、1つ目のオプションヘッダの有無と2つ目のオプションヘッダの有無が記載され、NumberOfOptionsはオプションヘッダの数が記載され、SD―ServiceIDは、SOME/IP-SDにおける通信確立フレームの識別番号が記載され、InstanceIDは、ECUを識別する番号が記載され、MajorVersionは、通信確立フェーズのメジャーバージョンが記載され、TTLは、TTLが記載され、MinorVersionは、通信確立フェーズのマイナーバージョンが記載される。
【0087】
また、SOME/IP-SDヘッダには、オプションとして、LengthOfOptionsArrayInBytesと、OptionLengthと、OptionTypeと、Reservedと、IPv4―Addressと、L4-Protoと、PortNumberが記載される。オプションは、IPアドレスの情報を共有する場合に利用される。
【0088】
LengthOfOptionsArrayInBytesは、オプションヘッダ全体のデータ長が記載され、OptionLengthは、1つ目のオプションヘッダの長さが記載され、OptionTypeは、オプションにおける通信種別が記載されと、Reservedは、予約番号が記載され、IPv4―Addressは、IPv4のアドレス情報が記載され、L4-Protoは、UDPやTCPなど、IPv4における通信プロトコルの種別が記載され、PortNumberは、ポート番号が記載される。
【0089】
SD―Typeは、SD通信種別とも記載する。SD通信種別には、例えば、サービス提供、サービス購読、サービス探索、サービス購読応答、サービス提供停止およびサービス購読停止が存在する。通信種別におけるサービス提供、サービス購読、サービス探索、サービス購読応答、サービス提供停止およびサービス購読停止は、それぞれService Offer、Service Subscribe、Service Find、Service SubscribeAck、Stop OfferおよびStop Subscribeである。具体的には、SD通信種別は、ServiceOffer、ServiceStopOffer、Subscribe、ServiceSubscribeAck、StopSubscribeおよびServiceFindを識別する番号が記載される。
【0090】
ServiceOfferは、サーバーが提供するサービスが提供可能である状態をクライアントへ通知するために利用され、ServiceStopOfferは、サーバーが提供するサービスが提供不能である状態をクライアントへ通知するために利用され、Subscribeは、クライアントがサービスの購読を開始することをサーバーへ通知するために利用され、StopSubscribeは、クライアントがサービスの購読を中止することをサーバーへ通知するために利用され、ServiceFindは、クライアントが所望のサービスを有するサーバーを探索するために利用される。
【0091】
SOME/IPでは、通信フェーズにおいてSOME/IP通信を行う前に、通信確立フェーズにおいて、サーバーは、SOME/IP―SDのヘッダを格納したフレームをブロードキャスト送信することで、所定のServiceIDと対応するサービスを所望するクライアントを探索し、クライアントは、所望するServiceIDと対応するサービスを提供するサーバーを探索するとともに、通信相手のIPアドレスおよびポート番号などの情報を取得する。その後、SOME/IPヘッダに記載されたServiceIDとMessageTypeとを元に、サービス指向型通信を行う。
【0092】
しかしながら、SOME/IP単体では、データのなりすまし対策ができておらず、SOME/IP-SDのブロードキャスト通信を観測することで、不正なクライアントとして、サーバーと通信確立することや、不正なサーバーとして、クライアントと通信確立することができてしまう課題がある。
【0093】
サーバーからブロードキャストで送信されるSOME/IP―SDのServiceOfferまたはServiceSubscribeAckを参照することで、特定のサービスIDと対応するサービスを提供するサーバーのIPアドレス、プロトコル、ポート番号およびECUの識別番号を取得でき、IPv4パケットを参照することで、MACアドレスを取得することもできる。
【0094】
さらに、サーバーからブロードキャストで送信されるSOME/IP―SDのStopServiceOfferを参照することで、サービスを提供できない状態であることを取得できる。
【0095】
また、クライアントからブロードキャストで送信されるSOME/IP―SDのServiceFindまたはServiceSubscribeを参照することで、特定のサービスIDと対応するサービスを提供するクライアントのIPアドレス、プロトコル、ポート番号およびECUの識別番号を取得でき、IPv4パケットを参照することで、MACアドレスを取得することもできる。
【0096】
さらに、クライアントからブロードキャストで送信されるSOME/IP―SDのStopSubscribeを参照することで、サービスを受信しない状態であることを取得できる。
【0097】
[事前設定検知ルール]
図4は、本開示の実施の形態1における検知ルール記憶部130が保持する事前設定検知ルールの一例を示した図である。図4に示されるように、事前設定検知ルールは、例えば、サービスIDとメソッドIDからなる通信IDと、サーバー数と、クライアント数と、車両状態と、サービス内容から構成される。
【0098】
サービスIDは、図3のイーサネット13におけるSOME/IPのヘッダフォーマットにおけるServiceIDと対応し、メソッドIDは、図3のイーサネット13におけるSOME/IPのヘッダフォーマットにおけるMethodIDと対応する。
【0099】
サーバー数は、通信IDと対応するサービスを提供するサーバーの総数(最大数)すなわち通信ID別サーバー数を示し、クライアント数は、通信IDと対応するサービスを利用するクライアントの総数(最大数)すなわち通信ID別クライアント数を示す。
【0100】
車両状態は、通信IDと対応するサービスが、提供または利用される場合の車両状態の条件を示す。具体的には、車両のイグニションがONである状態を示す「イグニションON状態」、車両のネットワーク接続がONである状態を示す「ネットワークON状態」、車両のシフト状態がパーキングである状態を示す「パーキングON状態」、車両の車速が0km/hである状態を示す「停止状態」、車両の走行モードがオートクルーズモードである状態を示す「オートクルーズモード」、車両の走行モードがオートパーキングモードである状態を示す「オートパーキングモード」または車両のカメラやセンサーが人物を検知している状態を示す「人物検知」などが記載される。
【0101】
車両状態は複数設定することが可能であり、「or」はOR条件を表し、「and」はAND条件を示す。
【0102】
サービス内容は、通信IDと対応するサービスの概要を示す。
【0103】
図4において例えば、2行目に記載される事前設定検知ルールは、サービスIDが「0001」であり、メソッドIDが「0002」であり、通信IDは「00010002」であり、サーバー数は「1」、クライアント数は「5」であり、車両状態は、「ネットワーク接続ON状態かつパーキング状態かつ停止状態」であり、サービス内容は、「ソフトアップデート要求」である。
【0104】
また、図4において例えば、6行目に記載される事前設定検知ルールは、サービスIDが「0009」であり、メソッドIDが「0010」であり、通信IDは「00090010」であり、サーバー数は「1」、クライアント数は「1」であり、車両状態は、「―」であり、サービス内容は、「シフト変更要求」である。ここで「―」は車両状態が任意であることを示す。
【0105】
検知ルール生成部140は、検知ルール記憶部130が有する事前設定検知ルールを参照することで、通信IDと対応するサービスを提供するサーバーの総数、通信IDと対応するサービスを利用するクライアントの総数、通信IDと対応するサービスが通信される際の車両状態の条件を取得することができる。
【0106】
さらに、検知ルール生成部140は、特定の通信IDを含むフレームを受信した際に、その通信IDと対応するサービスを提供するサーバーの総数すなわち通信ID別サーバー数よりも、観測されたサーバー(サーバーアドレス)の総数が多い場合、不正なサーバーが接続されているとして異常と判断でき、通信IDと対応するサービスを利用するクライアントの総数すなわち通信ID別クライアント数よりも、観測されたクライアント(クライアントアドレス)の総数が多い場合、不正なクライアントが接続されているとして異常と判断できる。
【0107】
さらに、検知ルール生成部140は、特定の通信IDを含むフレームを受信した際に、事前設定検知ルールに記載された車両状態と、現在の車両状態が一致しない場合に、不正な車両状態でサービスが提供されているとして異常と判断できる。
【0108】
[動的設定検知ルール]
図5は、本開示の実施の形態1における検知ルール生成部140が生成し、検知ルール記憶部130が記憶し、異常検知部150が参照する動的設定検知ルールの一例を示した図である。図5に示されるように、動的設定検知ルールは、例えば、サービスIDとメソッドIDからなる通信IDと、サーバーアドレスと、クライアントアドレスと、通信確立状態から構成される検知ルールである。
【0109】
サービスIDは、図3のイーサネット13におけるSOME/IPのヘッダフォーマットにおけるServiceIDと対応し、メソッドIDは、図3のイーサネット13におけるSOME/IPのヘッダフォーマットにおけるMethodIDと対応する。サーバーアドレスは、通信IDと対応するサービスを提供するサーバーのIPアドレスを示し、クライアントアドレスは、通信IDと対応するサービスを利用するクライアントのIPアドレスを示す。通信確立状態は、通信IDと対応するサービスが、現在有効であるかどうかを示し、「ON」であれば許可されている状態、「OFF」であれば許可されていない状態を示す。言い換えると、通信確立状態は、検知ルールに含まれるサーバーアドレスに対応するサーバーまたはクライアントアドレスに対応するクライアントが、検知ルールに含まれる通信IDに対応するサービスについての通信を行う状態である場合にはONを示し、行わない状態にある場合にはOFFを示す。
【0110】
図5において例えば、1行目に記載される動的設定検知ルールは、サービスIDが「0001」であり、メソッドIDが「0001」であり、通信IDは「00010001」であり、サーバーアドレスは「X」、クライアントアドレスは「B」であり、通信確立状態は、「ON」である。
【0111】
また、図5において例えば、9行目に記載される動的設定検知ルールは、サービスIDが「0002」であり、メソッドIDが「0003」であり、通信IDは「00020003」であり、サーバーアドレスは「Y」、クライアントアドレスは「B」であり、通信確立状態は、「OFF」である。
【0112】
例えば、検知ルール生成部140は、通信ID「00010001」について、それぞれ同一の通信ID「00010001」ならびにそれぞれ異なるクライアントアドレス「A」および「B」を含む検知ルールを生成し、通信ID「00010002」について、それぞれ同一の通信ID「00010002」ならびにそれぞれ異なるクライアントアドレス「A」、「B」、「C」、「D」および「E」を含む検知ルールを生成し、通信ID「00020003」について、それぞれ同一の通信ID「00020003」、それぞれ異なるサーバーアドレス「X」および「Y」ならびにそれぞれ異なるクライアントアドレス「A」および「B」を含む検知ルールを生成し、通信ID「00030004」について、それぞれ同一の通信ID「00030004」ならびにそれぞれ異なるサーバーアドレス「Z」および「X」を含む検知ルールを生成する。
【0113】
また、検知ルール記憶部130は、車載ネットワークシステム10の電源がONになる場合に、動的設定検知ルールをすべて消去し、車載ネットワークシステム10の電源がOFFになる場合に、動的設定検知ルールを旧動的設定検知ルール(前回検知ルール)として保持する。
【0114】
検知ルール生成部140は、図3のイーサネット13におけるSOME/IPヘッダに含まれるServiceIDとMethodIDを参照して通信IDの項目を生成でき、サーバーから送信されるSOME/IP-SDオプションヘッダに含まれるIPアドレスを通信IDごとに参照して、生成した通信IDの項目に対応させてサーバーアドレスの項目を生成でき、クライアントから送信されるSOME/IP-SDオプションヘッダに含まれるIPアドレスを通信IDごとに参照して、生成した通信IDの項目に対応させてクライアントアドレスの項目を生成でき、サーバーから送信されるオプションヘッダを含むSOME/IP-SDヘッダに含まれるSD―Typeを通信IDごとに参照して、生成した通信IDの項目に対応させて通信確立状態の項目を生成できる。
【0115】
具体的には、SD―Typeが、ServiceOfferまたはServiceSubscribeAckであれば、対応する通信IDとサーバーアドレスを含む動的設定検知ルールの通信確立状態を「ON」に設定でき、SD―Typeが、StopServiceOfferであれば、対応する通信IDとサーバーアドレスを含む動的設定検知ルールの通信確立状態を「OFF」に設定でき、SD―Typeが、ServiceFindまたはServiceSubscribeであれば、対応する通信IDとサーバーアドレスを含む動的設定検知ルールの通信確立状態を「ON」に設定でき、SD―Typeが、StopSubscribeであれば、対応する通信IDとサーバーアドレスを含む動的設定検知ルールの通信確立状態を「OFF」に設定できる。
【0116】
また、異常検知部150は、動的設定検知ルールを参照することで、フレームに含まれる通信IDとサーバーアドレスおよびクライアントアドレスが動的設定検知ルールにおける通信IDとサーバーアドレスおよびクライアントアドレスと適合しているかどうかを確認でき、適合していない場合、異常検知部150は、正規の通信確立フェーズを経ていないとして異常と判断できる。
【0117】
さらに異常検知部150は、特定の通信ID、サーバーアドレスおよびクライアントアドレスを含むフレームが、現在有効であるかどうか(つまり通信確立状態がONであるか)を確認でき、有効でない場合に、異常検知部150は、不正な通信確立状態で送信されたとして、異常と判断できる。
【0118】
[処理のシーケンス]
図6は、本開示の実施の形態1における検知ルール生成処理のシーケンスを示した図である。図7は、本開示の実施の形態1における異常検知処理のシーケンスを示した図である。具体的には、図6図7は、本開示の実施の形態1におけるIDSECU100が車両ネットワークログを取得し、動的設定検知ルールを生成し、動的設定検知ルールと事前設定検知ルールを参照して、異常なフレームを検知して通知するまでの処理シーケンスを示している。図6では、受信したフレームが車両状態フレームの場合と通信確立フレームの場合とで場合分けして処理シーケンスが示されている。具体的には、図6における一点鎖線の上側に、受信したフレームが車両状態フレームの場合の処理シーケンスが示され、図6における一点鎖線の下側に、受信したフレームが通信確立フレームの場合の処理シーケンスが示される。図7では、受信したフレームが通信フレームの場合についての処理シーケンスが示されている。
【0119】
まず、図6について説明する。
【0120】
(S601)IDSECU100の通信部110は、イーサネット13に流れるサービス指向型通信プロトコルに従うフレームを受信し、転送部120へ送信する。
【0121】
(S602)転送部120は、通信部110からフレームを受信し、フレームが、SOME/IP-SDヘッダに車両状態を提供する通信IDが含まれている車両状態フレームである場合、車両状態抽出部170へ車両状態フレームを送信する。
【0122】
(S603)車両状態抽出部170は、転送部120から車両状態フレームを受信し、車両状態フレームに含まれる車両状態を抽出する。
【0123】
(S604)検知ルール生成部140は、車両状態抽出部170に対して、車両状態を要求する。
【0124】
(S605)車両状態抽出部170は、検知ルール生成部140からの車両状態の要求を受信する。
【0125】
(S606)車両状態抽出部170は、車両状態を検知ルール生成部140へ送信する。
【0126】
(S607)検知ルール生成部140は、車両状態抽出部170から車両状態を受信する。
【0127】
(S608)一方、転送部120は、通信部110からフレームを受信し、フレームがSOME/IP-SDヘッダが含まれている通信確立フレームである場合、検知ルール生成部140へ通信確立フレームを送信する。
【0128】
(S609)検知ルール生成部140は、転送部120から通信確立フレームを受信し、動的設定検知ルールを生成し、生成した動的設定検知ルールを検知ルール記憶部130に記憶する。動的設定検知ルールの生成方法は後述する。
【0129】
(S610)検知ルール生成部140は、動的設定検知ルールの生成時に、異常であると判定された通信確立フレームを異常フレームとして、異常通知部160へ通知する。動的設定検知ルールの生成時に通信確立フレームを異常と検知する方法は後述する。
【0130】
(S611)異常通知部160は、S610の異常フレームを受信すると、車両で異常が発生していることを、ドライバーもしくは緊急通報先、他の車両、他のシステムまたは他のIPS(IntrusionPrevensionSystem)への通知を要求するフレームをCentralECU200へ送信する。
【0131】
次に、図7について説明する。
【0132】
(S701)異常検知部150は、車両状態抽出部170に対して、車両状態を要求する。
【0133】
(S702)車両状態抽出部170は、異常検知部150から車両状態の要求を受信し、車両状態を抽出する。
【0134】
(S703)車両状態抽出部170は、車両状態を異常検知部150へ送信する。
【0135】
(S704)異常検知部150は、車両状態抽出部170から車両状態を受信する。
【0136】
(S705)転送部120は、通信部110からフレームを受信し、フレームがSOME/IP-SDヘッダが含まれていない通信フレームである場合、異常検知部150へ通信フレームを送信する。
【0137】
(S706)異常検知部150は、転送部120からフレームを受信すると、検知ルール記憶部130における事前設定検知ルールと動的設定検知ルールを参照して、受信した通信フレームが異常であるか否かを判定する。異常判定方法は後述する。
【0138】
(S707)異常検知部150は、通信フレームが異常と判定した場合、異常フレームを異常通知部160へ送信する。
【0139】
(S708)異常通知部160は、異常検知部150から異常フレームを受信すると、車両において異常が発生していることを、ドライバーまたは警察へ通知することを要求するフレームをCentralECU200へ送信する。
【0140】
[検知ルール生成処理のフローチャート]
図8は、本開示の実施の形態1における検知ルール生成部140の検知ルール生成処理のフローチャートを示した図である。
【0141】
(S801)検知ルール生成部140は、転送部120からSOME/IP-SDヘッダを含む通信確立フレームを受信し、S802を実施する。
【0142】
(S802)検知ルール生成部140は、受信した通信確立フレームのSOME/IP-SDヘッダに含まれるSD通信種別を確認し、SD通信種別がServiceOfferまたはServiceSubscribeAckである場合にS803を実施し、SD通信種別がServiceFindまたはServiceSubscribeである場合にS804を実施し、SD通信種別がStopOfferである場合にS805を実施し、SD通信種別がStopServiceSubscribeである場合にS806を実施する。なお、図示していないが、検知ルール生成部140は、SD通信種別がそれ意外の場合、処理を終了する。
【0143】
(S803)検知ルール生成部140は、受信したフレームのSOME/IP-SDヘッダに含まれるSD-ServiceIDを参照して通信IDを取得し、SOME/IP-SDヘッダに含まれるIPv4Addressを参照してサーバーアドレスを取得し、S807を実施する。ここで、SD通信種別がServiceOfferまたはServiceSubscribeAckであることから、受信するフレームはサーバーから送信されたフレームであるため、IPv4AddressにはサーバーのIPアドレスが記載される。
【0144】
(S804)検知ルール生成部140は、受信したフレームのSOME/IP-SDヘッダに含まれるSD-ServiceIDを参照して通信IDを取得し、SOME/IP-SDヘッダに含まれるIPv4Addressを参照してクライアントアドレスを取得し、S807を実施する。ここで、SD通信種別がServiceFindまたはServiceSubscribeであることから、受信するフレームはクライアントから送信されたフレームであるため、IPv4AddressにはクライアントのIPアドレスが記載される。
【0145】
(S805)検知ルール生成部140は、受信したフレームのSOME/IP-SDヘッダに含まれるSD-ServiceIDを参照して通信IDを取得し、SOME/IP-SDヘッダに含まれるIPv4Addressを参照してサーバーアドレスを取得し、S816を実施する。ここで、SD通信種別がStopOfferであることから、受信するフレームはサーバーから送信されたフレームであるため、IPv4AddressにはサーバーのIPアドレスが記載される。
【0146】
(S806)検知ルール生成部140は、受信したフレームのSOME/IP-SDヘッダに含まれるSD-ServiceIDを参照して通信IDを取得し、SOME/IP-SDヘッダに含まれるIPv4Addressを参照してクライアントアドレスを取得し、S816を実施する。ここで、SD通信種別がStopServiceSubscribeであることから、受信するフレームはクライアントから送信されたフレームであるため、IPv4AddressにはクライアントのIPアドレスが記載される。
【0147】
(S807)検知ルール生成部140は、検知ルール記憶部130が保持する事前設定検知ルールのうち、S803またはS804にて取得した通信IDと同一の通信IDの行を参照し、車両状態抽出部170から取得した現在の車両状態と、上記行の車両状態とが一致しない場合(S807でNo)、S809を実施し、一致する場合(S807でYes)、S808を実施する。
【0148】
(S808)検知ルール生成部140は、検知ルール記憶部130が保持する動的設定検知ルールのうち、S803またはS804にて取得した通信IDと同一の通信IDの行を参照し、S803にて取得した通信IDとサーバーアドレスの組またはS804にて取得した通信IDとクライアントアドレスの組と同一の通信IDとサーバーアドレスの組または同一の通信IDとクライアントアドレスが存在する場合(S808でYes)、S810を実施し、同一の通信IDとサーバーアドレスの組または同一の通信IDとクライアントアドレスの組が存在しない場合(S808でNo)、S811を実施する。
【0149】
(S809)検知ルール生成部140は、不正な車両状態で通信確立フレームが送信されたとして、受信した通信確立フレームを異常フレームとして判断し、異常フレームを異常通知部160へ送信し、終了する。
【0150】
(S810)検知ルール生成部140は、S803にて通信IDとサーバーアドレスの組を取得した場合、検知ルール記憶部130が保持する動的設定検知ルールのうち、取得した通信IDとサーバーアドレスの組と同一の通信IDとサーバーアドレスの組を含む行を参照し、S804にて通信IDとクライアントアドレスの組を取得した場合、取得した通信IDとクライアントアドレスの組と同一の通信IDとクライアントアドレスの組を含む行を参照し、上記行の通信確立状態がOFFである場合(S810でYes)、S820を実施し、上記行の通信確立状態がONである場合(S810のNo)、処理を終了する。
【0151】
(S811)検知ルール生成部140は、S803にて通信IDとサーバーアドレスの組を取得した場合、検知ルール記憶部130が保持する事前設定検知ルールのうち、取得した通信IDと同一の通信IDの行を参照してサーバー数(通信ID別サーバー数)を取得し、次に、動的設定検知ルールのうち、同一の通信IDの動的設定検知ルールを参照してサーバーアドレスの種類数を取得し、サーバーアドレスの種類数がサーバー数以下であれば(S811でYes)、S812を実施し、サーバーアドレスの種類数がサーバー数よりも大きければ(S811でNo)、S814を実施する。
【0152】
また、S804にて通信IDとクライアントアドレスの組を取得した場合、検知ルール記憶部130が保持する事前設定検知ルールのうち、取得した通信IDと同一の通信IDの行を参照してクライアント数(通信ID別クライアント数)を取得し、次に、動的設定検知ルールのうち、同一の通信IDの動的設定検知ルールを参照してクライアントアドレスの種類数を取得し、クライアントアドレスの種類数がクライアント数以下であれば(S811でYes)、S812を実施し、クライアントアドレスの種類数がクライアント数よりも大きければ(S811でNo)、S814を実施する。
【0153】
(S812)検知ルール生成部140は、S803にて通信IDとサーバーアドレスの組を取得した場合、動的設定検知ルールに、その通信IDを含む通信フレームがそのサーバーアドレスから送受信された場合に送受信を許可するルールを追加し(つまり、S803にて取得した通信IDとサーバーアドレスの組を含むルールを追加し)、S804にて通信IDとクライアントアドレスの組を取得した場合、動的設定検知ルールに、その通信IDを含む通信フレームがそのクライアントアドレスから送受信された場合に送受信を許可するルールを追加する(つまり、S804にて取得した通信IDとクライアントアドレスの組を含むルールを追加する)。
【0154】
(S813)検知ルール生成部140は、S812にて登録したすべての行(つまり、S812にて追加したすべてのルール)に対して、通信確立状態の項目をONにし、処理を終了する。
【0155】
(S814)検知ルール生成部140は、車載ネットワークシステム10に接続されているサーバー数またはクライアント数が既定のサーバーの最大数またはクライアントの最大数よりも多いため、不正なサーバーまたは不正なクライアントが車載ネットワークシステム10に追加されて不正な動的設定検知ルールが生成されているとして、異常と判定し、S815を実施する。
【0156】
(S815)検知ルール生成部140は、検知ルール記憶部130が保持している動的設定検知ルールのうち、S814にて異常と判断した通信ID(具体的には、対応するサーバーアドレスの種類数が通信ID別サーバー数よりも大きくなっている通信IDまたは、対応するクライアントアドレスの種類数が通信ID別クライアント数よりも大きくなっている通信ID)を含むすべての行を、検知ルール記憶部130が保持している前回起動時の旧動的設定検知ルールの通信IDの行と同一になるように上書き登録し、処理を終了する。
【0157】
(S816)検知ルール生成部140は、検知ルール記憶部130が保持する事前設定検知ルールのうち、S805またはS806にて取得した通信IDと同一の通信IDの行を参照し、車両状態抽出部170から取得した現在の車両状態と、上記行の車両状態とが一致しない場合(S816でNo)、S818を実施し、一致する場合(S816でYes)、S817を実施する。
【0158】
(S817)検知ルール生成部140は、検知ルール記憶部130が保持する動的設定検知ルールのうち、S805またはS806にて取得した通信IDと同一の通信IDの行を参照し、S805にて取得した通信IDとサーバーアドレスの組またはS806にて取得した通信IDとクライアントアドレスの組と同一の通信IDとサーバーアドレスの組または同一の通信IDとクライアントアドレスの組が存在する場合(S817でYes)、S819を実施し、同一の通信IDとサーバーアドレスの組または同一の通信IDとクライアントアドレスの組が存在しない場合(S817でNo)、S818を実施する。
【0159】
(S818)検知ルール生成部140は、S816でNoの場合、不正な車両状態で通信確立フレームが送信されたとして、また、S817でNoの場合、通信確立フェーズにおいて、サービス提供またはサービス購読が実施されていないのにかかわらず、サービス提供またはサービス購読が実施された後に実施されるはずのサービス提供停止またはサービス購読停止が実施されており、不正に通信確立フレームが送信されたとして、受信した通信確立フレームを異常フレームとして判断し、異常フレームを異常通知部160へ送信し、処理を終了する。
【0160】
(S819)検知ルール生成部140は、S805にて通信IDとサーバーアドレスの組を取得した場合、検知ルール記憶部130が保持する動的設定検知ルールのうち、取得した通信IDと同一の通信IDとサーバーアドレスの組を含む行の通信確立状態をOFFに変更し、S804にて通信IDとクライアントアドレスの組を取得した場合、取得した通信IDと同一の通信IDとクライアントアドレスの組を含む行の通信確立状態をOFFに変更し、処理を終了する。検知ルール生成部140は、通信確立状態をOFFに変更する場合は、例えば1秒など所定時間待機した後、変更する。
【0161】
(S820)検知ルール生成部140は、S803にて通信IDとサーバーアドレスの組を取得した場合、検知ルール記憶部130が保持する動的設定検知ルールのうち、取得した通信IDとサーバーアドレスの組と同一の通信IDとサーバーアドレスの組を含むの通信確立状態をONに変更し、S804にて通信IDとクライアントアドレスの組を取得した場合、取得した通信IDとクライアントアドレスの組と同一の通信IDとクライアントアドレスの組を含む行の通信確立状態をONに変更し、処理を終了する。
【0162】
[異常検知処理のフローチャート]
図9は、本開示の実施の形態1における異常検知部150の異常検知処理のフローチャートである。
【0163】
(S901)異常検知部150は、転送部120からSOME/IPヘッダを含む通信フレームを受信し、S902を実施する。
【0164】
(S902)異常検知部150は、受信したフレームを参照し、通信IDと、サーバーアドレスと、クライアントアドレスを取得する。通信IDは、SOME/IDヘッダに記載されるMessageIDをもとに取得され、サーバーアドレスとクライアントアドレスはIPv4ヘッダに記載される送信元IPv4アドレスおよび送信先IPv4アドレスをもとに取得される。
【0165】
(S903)異常検知部150は、検知ルール記憶部130が保持する事前設定検知ルールのうち、S902にて取得した通信IDと同一の通信IDの行を参照し、車両状態抽出部170から取得した現在の車両状態と、上記行の車両状態とが一致しない場合(S903でNo)、S905を実施し、一致する場合(S903でYes)、S904を実施する。
【0166】
(S904)異常検知部150は、S902にて取得した通信IDとサーバーアドレスとクライアントアドレスの組と、検知ルール記憶部130が保持する動的設定検知ルールに、取得した通信IDとサーバーアドレスとクライアントアドレスの組と同一の通信IDとサーバーアドレスとクライアントアドレスの組が存在する場合(S904でYes)、S905を実施し、存在しない場合(S904でNo)、S906を実施する。
【0167】
(S905)異常検知部150は、検知ルール記憶部130が保持する動的設定検知ルールのうち、S902にて取得した通信IDとサーバーアドレスとクライアントアドレスの組を含む行を参照し、その行における通信確立状態がONである場合(S905でYes)、処理を終了し、通信確立状態がOFFである場合(S905でNo)、S906を実施する。
【0168】
(S906)異常検知部150は、S903でNoの場合、不正な車両状態で通信確立フレームが送信されたとして、また、S904でNoの場合、正規の通信確立フェーズを経由していないフレームが送信されたとして、また、S905でNoの場合、通信が許可されていないフレームが送信されたとして、受信した通信フレームを異常フレームとして判断し、異常フレームを異常通知部160へ送信し、処理を終了する。
【0169】
(他の実施の形態)
以上のように、本開示に係る技術の例示として実施の形態1を説明した。しかしながら、本開示に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本開示の一実施態様に含まれる。
【0170】
(1)上記実施の形態では、本開示の適用例として自動車に対するセキュリティ対策として説明したが、適用範囲はこれに限られない。例えば、自動車に限らず、建機、農機、船舶、鉄道または飛行機などのモビリティにも本開示を適用してもよい。
【0171】
(2)上記の実施の形態では、検知ルール生成部140が生成し、検知ルール記憶部130が記憶する動的設定検知ルールにおいて、サーバーアドレスとクライアントアドレスがIPv4アドレスとして説明したが、サーバーアドレスとクライアントアドレスはIPv6アドレスでもよいし、MACアドレスでもよいし、ポート番号でもよいし、ECUの識別番号でもよいし、通信プロトコルの種別でもよいし、またはこれらの組み合わせでも良い。
【0172】
また、サーバーアドレスとクライアントアドレスには、CANまたはCAN-FDにおいて交換されるフレームに用いられるCANIDを含めてもよい。この場合、CANIDは、SOME/IPの通信フレーム内に格納されて通信される。
【0173】
(3)上記の実施の形態では、IDSECU100は、イーサネット13に接続されるとして説明したが、具体的には、イーサネットスイッチ、イーサネットハブ、ゲートウェイまたはルーターに、ソフトウェアまたはハードウェアとして搭載されてもよいし、それらとイーサネットケーブルで接続されるECUまたはZoneECUに、ソフトウェアまたはハードウェアとして搭載されてもよい。
【0174】
IDSECU100がイーサネットスイッチ、イーサネットハブ、ゲートウェイまたはルーターに搭載される場合、異常検知部150が異常フレームを検出した後、イーサネットスイッチ、イーサネットハブ、ゲートウェイまたはルーターは異常フレームを遮断してもよい。
【0175】
IDSECU100がECUやZoneECUに搭載される場合、ユニキャストパケットを含むイーサネット13上のすべてのパケットをIDSECU100が受信するために、イーサネットスイッチ、イーサネットハブ、ゲートウェイまたはルーターは、すべてのパケットをIDSECU100に転送してもよい。
【0176】
(4)上記の実施の形態では、イーサネット13は、SOME/IPプロトコルに従うフレームによってECU間の情報が交換されると説明したが、SOME/IPプロトコルでなくとも、他のサービス指向型通信プロトコルまたはデータ指向型通信プロトコルであってもよい。例えば、他のデータ指向型通信プロトコルとしてDDS(Data Distribution Service)がある。また、REST通信またはHTTP通信が行われてもよい。この場合、サービス単位ではなく、データ単位で検知ルールが生成される。
【0177】
(5)上記の実施の形態では、異常通知部160は、異常をドライバーまたは警察へ通知するとして説明したが、通知先は、車両と接続されるサーバーでもよいし、交通省でもよいし、近接する車両でもよいし、交通システムでもよいし、脆弱性情報等の共有機関でもよい。
【0178】
(6)上記実施の形態における各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROMおよびRAM等を含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
【0179】
また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部または全部を含むように1チップ化されても良い。
【0180】
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSIまたはウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【0181】
更には、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【0182】
(7)上記各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしても良い。ICカードまたはモジュールは、マイクロプロセッサ、ROMおよびRAM等から構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0183】
(8)本開示は、異常検知装置として実現できるだけでなく、異常検知装置を構成する各構成要素が行うステップ(処理)を含む異常検知方法として実現できる。
【0184】
異常検知方法は、イーサネットで構成され、サービス指向型通信が行われる車載ネットワークシステムにおける異常検知方法であって、異常検知方法は、サービス指向型通信の通信確立フェーズにおいてイーサネットを流れる通信確立フレームを監視し、通信確立フレームに記載される通信IDおよびサーバーアドレスまたはクライアントアドレスを含む検知ルールを通信IDごとに生成する検知ルール生成ステップ(図6のS609)と、サービス指向型通信の通信フェーズにおいてイーサネットを流れる通信フレームを監視し、通信フレームに記載された通信IDを含む検知ルールを参照し、当該通信フレームに記載されたサーバーアドレスまたはクライアントアドレスが、当該検知ルールに含まれるサーバーアドレスまたはクライアントアドレスと異なる場合に、当該通信フレームを異常フレームとして検知する異常検知ステップ(図7のS706)と、異常フレームが検知された場合に、異常を通知する異常通知ステップ(図7のS707)と、を含む。
【0185】
また、異常検知方法におけるステップは、コンピュータ(コンピュータシステム)によって実行されてもよい。そして、本開示は、異常検知方法に含まれるステップをコンピュータに実行させるためのプログラム(コンピュータプログラム)、あるいは、コンピュータプログラムからなるデジタル信号として実現できる。
【0186】
また、本開示の一態様としては、そのコンピュータプログラムまたはデジタル信号を記録した非一時的なコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blue―ray(登録商標) Disc)または半導体メモリ等として実現できる。
【0187】
また、本開示の一態様としては、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。
【0188】
また、本開示の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムに従って動作するとしても良い。
【0189】
また、プログラムもしくはデジタル信号を記録媒体に記録して移送することにより、または、プログラムもしくはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0190】
(9)上記実施の形態で示した各構成要素および機能を任意に組み合わせることで実現される形態も本開示の範囲に含まれる。
【産業上の利用可能性】
【0191】
本開示はサービス指向型通信を用いる車載ネットワークシステムに利用することができる。
【符号の説明】
【0192】
10 車載ネットワークシステム
11、12、13 イーサネット
14 CAN
15 CAN-FD
100 IDSECU
110 通信部
120 転送部
130 検知ルール記憶部
140 検知ルール生成部
150 異常検知部
160 異常通知部
170 車両状態抽出部
200 CentralECU
300a、300b、300c、300d ZoneECU
400a カメラECU
400b カーナビECU
400c ステアリングECU
400d ブレ-キECU
図1
図2
図3
図4
図5
図6
図7
図8
図9