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

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

▶ 日本電信電話株式会社の特許一覧

特許7593406ネットワーク構成推定装置、ネットワーク構成推定方法、及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】ネットワーク構成推定装置、ネットワーク構成推定方法、及びプログラム
(51)【国際特許分類】
   H04L 41/0853 20220101AFI20241126BHJP
   H04L 41/12 20220101ALI20241126BHJP
【FI】
H04L41/0853
H04L41/12
【請求項の数】 10
(21)【出願番号】P 2022550459
(86)(22)【出願日】2021-09-02
(86)【国際出願番号】 JP2021032301
(87)【国際公開番号】W WO2022059503
(87)【国際公開日】2022-03-24
【審査請求日】2023-02-21
(31)【優先権主張番号】PCT/JP2020/035621
(32)【優先日】2020-09-18
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】松林 勝
(72)【発明者】
【氏名】小山 卓麻
(72)【発明者】
【氏名】岡野 靖
(72)【発明者】
【氏名】田中 政志
【審査官】速水 雄太
(56)【参考文献】
【文献】国際公開第2019/073932(WO,A1)
【文献】特開2007-099145(JP,A)
【文献】韓国公開特許第10-2020-0143961(KR,A)
【文献】米国特許出願公開第2014/0188330(US,A1)
【文献】中国特許出願公開第110908357(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
(57)【特許請求の範囲】
【請求項1】
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置であって、
前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて、前記内部ネットワーク上の電子制御装置に対してメッセージを送信し、当該メッセージに対する応答を受信する診断通信送受信部と、
前記診断通信送受信部により得られた前記応答と接続方法の公知情報とに基づいて、前記内部ネットワークのトポロジを含む前記構成情報を推定する構成情報推定部と
を備えるネットワーク構成推定装置。
【請求項2】
前記構成情報推定部は、
前記応答に基づいて、前記内部ネットワーク上の電子制御装置の存在を確認する存在確認部と、
前記存在確認部による電子制御装置の存在確認結果に基づいて、前記内部ネットワークのトポロジを推定するトポロジ推定部と、
前記応答に基づいて、前記内部ネットワーク上の電子制御装置に関する情報を抽出する情報抽出部と
を備える請求項1に記載のネットワーク構成推定装置。
【請求項3】
前記診断通信送受信部は、前記内部ネットワークにおける第1ネットワークと第2ネットワークのそれぞれにメッセージを送信し、その応答を受信し、
前記構成情報推定部は、前記第1ネットワークに送信したメッセージの応答により前記第1ネットワークに接続した電子制御装置の存在を確認し、前記第2ネットワークに送信したメッセージの応答により前記第2ネットワークに接続した電子制御装置の存在を確認する
請求項1又は2に記載のネットワーク構成推定装置。
【請求項4】
前記診断通信送受信部は、データIDを設定したメッセージを送信し、その応答を受信し、
前記構成情報推定部は、前記データIDを設定したメッセージに対する応答から、当該データIDに対応する情報を抽出する
請求項1ないし3のうちいずれか1項に記載のネットワーク構成推定装置。
【請求項5】
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置であって、
前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて、前記内部ネットワーク上の電子制御装置に対してメッセージを送信し、当該メッセージに対する応答を受信する装置により得られた前記応答と接続方法の公知情報とに基づいて、前記内部ネットワークのトポロジを含む前記構成情報を推定する構成情報推定部
を備えるネットワーク構成推定装置。
【請求項6】
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置であって、
非輻輳時の状態において、前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて、前記内部ネットワーク上の第1電子制御装置のラウンドトリップタイムを算出するベースRTT算出部と、
第2電子制御装置に対して診断要求を高頻度で送信している輻輳時の状態において、前記第1電子制御装置のラウンドトリップタイムを算出する輻輳RTT算出部と、
前記非輻輳時の状態におけるラウンドトリップタイムと、前記輻輳時の状態におけるラウンドトリップタイムとを比較することにより、前記第1電子制御装置と前記第2電子制御装置が同一バスに接続されているか否かを推定する推定部と
を備えるネットワーク構成推定装置。
【請求項7】
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置であって、
前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて、前記内部ネットワーク上の対象電子制御装置に再起動命令を送信する再起動命令送信部と、
前記再起動命令に起因して発生したアラートを前記内部ネットワークから受信するアラート受信部と、
前記アラートに含まれるIDを、前記対象電子制御装置が送信する通常通信のIDであると推定する推定部と
を備えるネットワーク構成推定装置。
【請求項8】
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置であって、
前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて取得した対象電子制御装置の型番の全体、及び、当該型番における機能に関する桁を用いて、電子制御装置の機能を検索するWeb検索部と、
前記Web検索部により得られた検索結果に含まれる単語の支持度の和が最大となる機能を前記対象電子制御装置の機能と推定する推定部と
を備えるネットワーク構成推定装置。
【請求項9】
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置が実行するネットワーク構成推定方法であって、
前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて、前記内部ネットワーク上の電子制御装置に対してメッセージを送信し、当該メッセージに対する応答を受信するステップと、
前記応答と接続方法の公知情報とに基づいて、前記内部ネットワークのトポロジを含む前記構成情報を推定するステップと
を備えるネットワーク構成推定方法。
【請求項10】
コンピュータを、請求項1ないし8のうちいずれか1項に記載のネットワーク構成推定装置における各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自動車等の対象装置における内部ネットワークの構成情報を推定する技術に関連するものである。
【背景技術】
【0002】
近年、コネクテッドカー社会の到来とともに自動車へのサイバー攻撃の脅威が増加している。すなわち、自動車に搭載されるコネクティッド機能により、自動車がネットワークを通して外部と接続できるようになることで、逆に外部からのサイバー攻撃の脅威が増加する。
【0003】
そのため、自動車へのサイバー攻撃を検知し、その攻撃の経路・原因を特定し、その攻撃に対処する事後対策の実施が重要となっている。攻撃の経路・原因を正確に特定するには、車載ネットワーク(NW)の構成(トポロジ)やNW上の情報処理装置(IVIやTCU等)や電子制御装置(ECU)に関する情報が必要である。
【0004】
上記以外にも、アセット管理や構成の異常検知など、様々な目的を達成するためにも車両構成情報は必要である。
【0005】
NWの構成等を推定する従来技術として、例えば非特許文献1に開示された技術がある。非特許文献1に開示された技術では、SNMPを用いて対象NW内の各SwitchのMACアドレス転送テーブルを取得し、取得した情報を解析することで対象NWのL2トポロジを推定する。
【先行技術文献】
【非特許文献】
【0006】
【文献】Jing Jiang, Xiao Xu, Ning Cao, "Research on improved physical topology discovery based on SNMP," In 2017 IEEE International Conference on Computational Science and Engineering (CSE) and IEEE Conference on Embedded and Ubiquitous Computing (EUC), pp.219-222, (2017).
【発明の概要】
【発明が解決しようとする課題】
【0007】
車載NWのトポロジや各ECUの情報を取得するために、非特許文献1に開示されているSNMPベースの方法を用いることが考えられる。しかし、SNMPベースの方法で車載NWのトポロジや各ECUの情報を取得するためには、各ECUに対してSNMPエージェントの動作を可能とするためのリソース増強やSNMPのサポートをすることが必要となり、追加のコストがかかるという問題がある。
【0008】
本発明は上記の点に鑑みてなされたものであり、対象装置における内部ネットワークの構成装置に対してリソースの増強や新たなプロトコルのサポートを行うことなく、当該内部ネットワークの構成情報を推定することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
開示の技術によれば、対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置であって、
前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて、前記内部ネットワーク上の電子制御装置に対してメッセージを送信し、当該メッセージに対する応答を受信する診断通信送受信部と、
前記診断通信送受信部により得られた前記応答と接続方法の公知情報とに基づいて、前記内部ネットワークのトポロジを含む前記構成情報を推定する構成情報推定部と
を備えるネットワーク構成推定装置が提供される。

【発明の効果】
【0010】
開示の技術によれば、対象装置における内部ネットワークの構成装置に対してリソースの増強や新たなプロトコルのサポートを行うことなく、当該内部ネットワークの構成情報を推定することが可能となる。
【図面の簡単な説明】
【0011】
図1】車載構成情報の例を示す図である。
図2】診断通信の例を説明するための図である。
図3】第1の実施の形態における構成情報推定システムの構成例を示す図である。
図4】診断通信送受信部の処理手順例を説明するためのフローチャートである。
図5】構成情報推定部の処理手順例を説明するためのフローチャートである。
図6】第1の実施の形態における実施例1におけるシステム構成図である。
図7】第1の実施の形態における実施例2におけるシステム構成図である。
図8】第1の実施の形態における実施例3におけるシステム構成図である。
図9】第1の実施の形態における実施例4におけるシステム構成図である。
図10】第1の実施の形態における実施例5におけるシステム構成図である。
図11】第1の実施の形態における実施例6におけるシステム構成図である。
図12】車両構成情報の一例を示す図である。
図13】第2の実施の形態で前提としている自動車のネットワークを示す図である。
図14】要素技術1の目標を説明するための図である。
図15】要素技術1の適用対象を説明するための図である。
図16】診断通信のRTTを説明するための図である。
図17】要素技術1の推定方法を説明するための図である。
図18】要素技術1の推定手順を説明するための図である。
図19】要素技術1の推定手順を説明するための図である。
図20】要素技術1の推定手順を説明するための図である。
図21】要素技術2の目標を説明するための図である。
図22】要素技術2のポイントと手順を説明するための図である。
図23】要素技術3に関する従来技術を説明するための図である。
図24】要素技術3の目標を説明するための図である。
図25】要素技術3の推定方法を説明するための図である。
図26】要素技術3の推定方法を説明するための図である。
図27】第2の実施の形態における実施例A1の構成図である。
図28】第2の実施の形態における実施例A1の全体の処理を示すフローチャートである。
図29】第2の実施の形態における実施例A1のS1030の処理を示すフローチャートである。
図30】第2の実施の形態における実施例A1のS1031の処理を示すフローチャートである。
図31】第2の実施の形態における実施例A1の表3031を示す図である。
図32】第2の実施の形態における実施例A1のS1032の処理を示すフローチャートである。
図33】第2の実施の形態における実施例A1のS1033の処理を示すフローチャートである。
図34】第2の実施の形態における実施例A1の表3032を示す図である。
図35】第2の実施の形態における実施例A1のS1034の処理を示すフローチャートである。
図36】第2の実施の形態における実施例A1の表3033を示す図である。
図37】第2の実施の形態における実施例A1のS1035の処理を示すフローチャートである。
図38】第2の実施の形態における実施例A1の表3034を示す図である。
図39】第2の実施の形態における実施例A1の表3035を示す図である。
図40】第2の実施の形態における実施例A1の表3036を示す図である。
図41】第2の実施の形態における実施例A1のS1036の処理を示すフローチャートである。
図42】第2の実施の形態における実施例A1の表3037を示す図である。
図43】第2の実施の形態における実施例A1のS1037の処理を示すフローチャートである。
図44】第2の実施の形態における実施例A1のS1038の処理を示すフローチャートである。
図45】第2の実施の形態における実施例A1の表3038を示す図である。
図46】第2の実施の形態における実施例A1のS1039の処理を示すフローチャートである。
図47】第2の実施の形態における実施例A1の表3039を示す図である。
図48】第2の実施の形態における実施例A1のS1040の処理を示すフローチャートである。
図49】第2の実施の形態における実施例A1のS1061の処理を示すフローチャートである。
図50】第2の実施の形態における実施例A1の表3081を示す図である。
図51】第2の実施の形態における実施例A1のS1091の処理を示すフローチャートである。
図52】第2の実施の形態における実施例A1のS1101の処理を示すフローチャートである。
図53】第2の実施の形態における実施例A1のS1111の処理を示すフローチャートである。
図54】第2の実施の形態における実施例A1の表3111を示す図である。
図55】第2の実施の形態における実施例A1の支持度の和を説明する際に参照する表である。
図56】第2の実施の形態における実施例A1の表3112を示す図である。
図57】第2の実施の形態における実施例A1の表3113を示す図である。
図58】第2の実施の形態における実施例A1のS1120の処理を示すフローチャートである。
図59】第2の実施の形態における実施例A1のS1121の処理を示すフローチャートである。
図60】第2の実施の形態における実施例A1のトレースルートの記録の例を示す図である。
図61】第2の実施の形態における実施例A1のS1122の処理を示すフローチャートである。
図62】第2の実施の形態における実施例A1のECU型番と物理的なECUの1対1対応を示す図である。
図63】第2の実施の形態における実施例A1のネットワークインターフェースの設定を示す図である。
図64】第2の実施の形態における実施例A1のECU情報の割り当てを示す図である。
図65】第2の実施の形態における実施例A1の接続関係を示す図である。
図66】第2の実施の形態における実施例A1のS1130の処理を示すフローチャートである。
図67】第2の実施の形態における実施例A1のS1141の処理を示すフローチャートである。
図68】第2の実施の形態における実施例A1の送信時刻と受信時刻の記録を示す図である。
図69】第2の実施の形態における実施例A1の表3141を示す図である。
図70】第2の実施の形態における実施例A1のS1151の処理を示すフローチャートである。
図71】第2の実施の形態における実施例A1のS1152の処理を示すフローチャートである。
図72】第2の実施の形態における実施例A1の送信時刻と受信時刻の記録を示す図である。
図73】第2の実施の形態における実施例A1の表3151を示す図である。
図74】第2の実施の形態における実施例A1のS1161の処理を示すフローチャートである。
図75】第2の実施の形態における実施例A1の表3161を示す図である。
図76】第2の実施の形態における実施例A1の表3162を示す図である。
図77】第2の実施の形態における実施例A1のS1171の処理を示すフローチャートである。
図78】第2の実施の形態における実施例A1のECU型番と物理的なECUの1対1対応を示す図である。
図79】第2の実施の形態における実施例A1のECUに要求NW_A-IDを追加することを示す図である。
図80】第2の実施の形態における実施例A1のS1172の処理を示すフローチャートである。
図81】第2の実施の形態における実施例A1のNW_Aトポロジの推定結果を示す図である。
図82】第2の実施の形態における実施例A1のNW_AトポロジにEUC情報を追加したことを示す図である。
図83】第2の実施の形態における実施例A1のGW同士の接続を示す図である。
図84】第2の実施の形態における実施例A1のS1180の処理を示すフローチャートである。
図85】第2の実施の形態における実施例A1のS1191の処理を示すフローチャートである。
図86】第2の実施の形態における実施例A1のS1192の処理を示すフローチャートである。
図87】第2の実施の形態における実施例A1のECURese送信時刻の記録を示す図である。
図88】第2の実施の形態における実施例A1のS1201の処理を示すフローチャートである。
図89】第2の実施の形態における実施例A1のNW_A-IDSのアラート発報時刻の記録を示す図である。
図90】第2の実施の形態における実施例A1のS1211の処理を示すフローチャートである。
図91】第2の実施の形態における実施例A1の表3211を示す図である。
図92】第2の実施の形態における実施例A1の追加後の結果を示す図である。
図93】第2の実施の形態における実施例A1の表3212を示す図である。
図94】第2の実施の形態における実施例A2の構成図である。
図95】第2の実施の形態における実施例A3の構成図である。
図96】第2の実施の形態における実施例A4の構成図である。
図97】第2の実施の形態における実施例A5の構成図である。
図98】第2の実施の形態における実施例A6の構成図である。
図99】第2の実施の形態における実施例A7の構成図である。
図100】第2の実施の形態における実施例B1の構成図である。
図101】第2の実施の形態における実施例B2の構成図である。
図102】第2の実施の形態における実施例B3の構成図である。
図103】第2の実施の形態における実施例B4の構成図である。
図104】第2の実施の形態における実施例C1の構成図である。
図105】第2の実施の形態における実施例C2の構成図である。
図106】第2の実施の形態における実施例C3の構成図である。
図107】第2の実施の形態における実施例C4の構成図である。
図108】装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【0013】
以下で説明する本実施の形態(第1及び第2の実施の形態)では、構成情報の推定対象となる内部ネットワークを備える対象装置として、自動車を例に挙げて説明するが、本発明に係る技術を適用可能な対象装置は自動車に限定されるわけではない。本発明に係る技術は、自動車と同様に「診断通信によってネットワーク上の機器から情報を取得可能である」という特性を有する対象装置に対して適用可能である。また、第2の実施の形態で説明する要素技術については、少なくとも、その適用対象に記載の条件を持つものに適用可能である。
【0014】
本実施の形態では、車載ネットワーク(NW)の構成、NW上の情報処理装置(IVIやTCU等)に関する情報、及び電子制御装置(ECU)に関する情報を総称して「車両構成情報」と呼称する場合がある。「車両構成情報」は、「内部ネットワークの構成情報」の例である。
【0015】
なお、TCUはTelematics Control Unitの略称であり、IVIはIn-Vehicle Infotainmentの略称であり、ECUはElectronic Control Unitの略称である。
【0016】
以下の説明(及び図面)において、CAN(登録商標)をNW_A(ネットワークA)と呼称し、Ethernet(登録商標)をNW_B(ネットワークB)と呼称する。なお、CAN(登録商標)はController Area Networkの略称である。
【0017】
ただし、以下の説明で登場するNW_AはCAN(登録商標)以外のネットワークでもよく、NW_BはEthernet(登録商標)以外のネットワークであってもよい。例えば、NW_Aは、FlexRay(登録商標)、LIN、K-Line等であってもよい。
【0018】
本実施の形態では、対象車両のネットワークの構成情報の推定を実現する手法について説明する。対象車両のネットワークの構成情報は例えば下記の情報である。
【0019】
・対象ネットワーク(車載NW_Bと車載NW_A)のトポロジ
・ネットワークに接続している装置に関する情報(型番やソフトウェアバージョン等)
・各装置の機能(=名称)に関する情報
・各装置が行う正常通信の情報(特に各装置が送信している正常通信の情報)
以下、本発明の実施の形態として、第1の実施の形態と第2の実施の形態を説明する。第1の実施の形態において基本的な構成と動作を説明し、第2の実施の形態ではより具体的な構成と動作を説明する。第1の実施の形態において説明する構成及び処理と、第2の実施の形態において説明する構成及び処理は、組み合わせて実施することが可能である。
――――――――――第1の実施の形態――――――――――
【0020】
(車両構成情報の例)
本実施の形態では、構成情報推定システムが自動車の車両構成情報を推定する。図1に車両構成情報の一例を示す。図1の例では、NW_Bに接続されるTCUとIVIが、GW(Gateway-ECU)にスター型に接続されている。また、GWにはNW_Aが接続され、NW_Aに接続されたECUがGW配下のNW_Aにバス型に接続されている。また、図1には、各ECU等の情報も示されている。図1に示されるOBD-IIは、自己診断機能である。
【0021】
以下では、情報処理装置(IVIやTCU等)と電子制御装置(ECU)を総称して「ECU」と呼称する。第2の実施の形態でも同様である。
【0022】
(診断通信について)
本実施の形態では、構成情報推定システムは、自動車に搭載されているECU等の機器において標準的にサポートされている診断通信によって得られる情報を収集・分析することで車両構成情報を推定することとしている。なお、診断通信はほとんどすべての自動車・ECUに実装されている。ここでは、その診断通信について説明する。
【0023】
診断通信は、ECUの故障診断やリプログラミングを行う際に利用される通信である。また、診断通信により、ECUの型番やソフトウェアのバージョン情報等も取得できる。診断通信の手順例を、図2を参照して説明する。図2は、外部診断機_AとECU_Bとの間で診断通信を行う場合の例を示している。
【0024】
S1において、外部診断機_AからECU_Bに対して診断要求を送信する。S2において、ECU_Bが診断要求に対応した処理を実行する。S3において、ECU_Bから外部診断機_Aに対して診断応答を送信する。診断応答には、処理の結果等が格納されている。
【0025】
(システム構成)
図3に、本実施の形態における構成情報推定システムの構成例を示す。図3に示すように、本実施の形態における構成情報推定システムは、診断通信送受信部100、診断系ログDB200、及び構成情報推定部300を有する。構成情報推定部300は、ECU存在確認部310、トポロジ推定部320、ECU情報抽出部330、出力部340を有する。各機能部の概要は下記のとおりである。
【0026】
診断通信送受信部100は、後述するフロー図に従って診断通信の送受信を行い、受信した応答を診断系ログDB200に格納する。
【0027】
診断系ログDB200は、診断通信送受信部100により取得したログを予め定めた形式で格納するDB(データベース)である。
【0028】
構成情報推定部300は、後述するフロー図に従って各内部ブロックが動作することで、診断系ログDB200に格納されている情報を利用して車両構成情報を推定する。なお、構成情報推定部300の入力には診断系ログ以外の情報を用いてもよい。例えば、構成に関する公知の情報や非診断系のログを用いてもよい。
【0029】
なお、後述する実施例1~6で説明するように、診断通信送受信部100、診断系ログDB200、及び構成情報推定部300は種々の形態で1つ又は複数の装置に実装することが可能である。診断通信送受信部100と構成情報推定部300を備える装置をネットワーク構成推定装置と呼んでもよい。このネットワーク構成推定装置において、診断通信送受信部100と構成情報推定部300が遠隔の離れた場所にあり、互いにネットワークを介して通信する構成であってもよい。
【0030】
また、診断通信送受信部100で得られた応答を利用して構成情報を推定する構成情報推定部300を備える装置をネットワーク構成推定装置と呼んでもよい。
【0031】
(診断通信送受信部の動作)
続いて、診断通信送受信部100の動作例について説明する。まず、後述するフローに登場するUDS、DID、DoIPについて説明する。
【0032】
UDSは、Unified Diagnostic Servicesの略称であり、診断通信における診断メッセージの形式等を定める標準仕様(ISO14229-1等)の名称である。
【0033】
DIDはData IDの略称である。UDSの診断要求(リクエストメッセージ)に設定されるIDであり、診断サービスの対象を示す。例えば、DIDとして、ソフトウェアのバージョン番号を指定するDIDが設定された診断要求がECUに送信されると、ECUは、ソフトウェアのバージョン番号を設定した診断応答(レスポンスメッセージ)を返す。
【0034】
また、UDSをNW-A上に実装するためのネットワーク層の仕様を規定した標準仕様として、DoCAN(Diagnostic communication over Controller Area Network)と呼ばれるISO15765-2がある。
【0035】
DoIPは、Diagnostic communication over Internet Protocolの略称であり、UDSをIP上に実装するためのネットワーク層の仕様を規定した標準仕様(ISO 13400-1、ISO 13400-2)の名称である。
【0036】
DoIPにおいては、例えば図1に示したように、診断機能(テスター)に対するゲートウェイとなるECUと、特に高速なデータ転送が求められるECUのみがNW_Bでの通信を行い、他のECUはNW_A等の車載ネットワークでゲートウェイECUと接続され、このゲートウェイECU経由で診断を行う構成がとられる。
【0037】
本実施の形態における診断通信送受信部100及びECUは、少なくとも上述した一般的な標準仕様に準拠した診断通信を行う。
【0038】
図4のフローチャートを参照して、診断通信送受信部100の動作例について説明する。なお、図4を参照して説明する動作例において送受信するメッセージの内容や順序は一例であり、これに限定されるわけではない。
【0039】
S101において、診断通信送受信部100は、DoIPのVehicle Identification RequestをNW_B接続のECUにブロードキャストし、各ECUからの応答を受信する。Vehicle Identification Requestは、NW_Bに接続されたECUに対して、アドレス情報を要求するメッセージである。
【0040】
S102において、診断通信送受信部100は、UDSのtesterPresentをNW_A接続の各ECUに送信し、応答を受信する。testerPresentは、NW_A接続のECUの存在とNW_A-ID(すなわち、CAN-ID)を確認するためのメッセージである。
【0041】
S103において、診断通信送受信部100は、DoIPのEntity Status Requestを車載NW_B接続の各ECUに送信し、応答を受信する。Entity Status Requestは、ECUに対して、ノードタイプ(例:ゲートウェイ)等を要求するメッセージである。
【0042】
S104において、診断通信送受信部100は、DIDとして1以上の値を設定したUDSのReadDataByIdentifierを、車載NW_B接続とNW_A接続の各ECUに送信し、応答を受信する。ReadDataByIdentifierは、ECUに対してDIDで指定したデータを要求するメッセージである。
【0043】
S104で使用されるDIDは、例えば、0xF181、0xF183、0xF184、0xF188、0xF189、0xF18A、0xF194、0xF195、0xF19F、0xF18B、0xF18C、0xF184、0xF191、0xF192、0xF193、0xF19Fである。ただし、これらは例であり、これらに限定されるわけではない。
【0044】
0xF181は、applicationSoftwareIdentificationDataIdentifierを示す。0xF183は、bootSoftwareFingerprintDataIdentifierを示す。0xF184は、applicationSoftwareFingerprintDataIdentifierを示す。0xF188は、vehicleManufacturerECUSoftwareNumberDataIdentifierを示す。0xF189は、vehicleManufacturerECUSoftwareVersionNumberDataIdentifierを示す。0xF18Aは、systemSupplierIdentifierDataIdentifierを示す。0xF194は、systemSupplierECUSoftwareNumberDataIdentifierを示す。0xF195は、systemSupplierECUSoftwareVersionNumberDataIdentifierを示す。0xF19Fは、EntityDataIdentifierを示す。0xF18Bは、ECUManufacturingDateDataIdentifier を示す。0xF18Cは、ECUSerialNumberDataIdentifier を示す。0xF184は、applicationSoftwareFingerprintDataIdentifierを示す。0xF191は、vehicleManufacturerECUHardwareNumberDataIdentifierを示す。0xF192は、systemSupplierECUHardwareNumberDataIdentifierを示す。0xF193は、systemSupplierECUHardwareVersionNumberDataIdentifierを示す。0xF19Fは、EntityDataIdentifierを示す。
【0045】
(構成情報推定部の動作例)
上記のS101~S104においてECUに送信された要求に対して受信した応答は、診断系ログDB200に格納される。構成情報推定部300は、診断系ログDB200からデータを読み出すことで対象装置の内部ネットワークの構成情報の推定を行う。
【0046】
以下、図5のフローチャートを参照して、構成情報推定部300による推定及び把握の動作の例を説明する。なお、ここで説明する推定・把握の順序や内容は一例であり、ここで説明するものに限定されるわけではない。
【0047】
<S201>
S201において、ECU存在確認部310は、ECUの存在確認を行う。具体的には下記のとおりである。
【0048】
ECU存在確認部310は、NW_B接続のECUにブロードキャストされたDoIPのVehicle Identification Requestに対しての応答から、NW_B接続のECUの存在とそのECUのアドレス情報を確認する。つまり、Vehicle Identification Requestに対する応答として、アドレス情報を受信していれば、そのアドレス情報のECUがNW_B上に存在すると推定できる。
【0049】
また、ECU存在確認部310は、NW_A接続の各ECUに送信したUDSのtesterPresentに対しての応答から、NW_A接続のECUの存在とNW_A-IDを確認する。つまり、testerPresentに対する応答として、NW_A-IDを受信していれば、そのNW_A-IDのECUがNW_A上に存在すると推定できる。
【0050】
また、ECU存在確認部310は、DoIPのEntity Status Requestに対しての応答からGateway-ECUの存在とそのアドレス情報を確認する。つまり、Entity Status Requestに対しての応答として、ノードタイプがGatewayである応答を受信した場合、Gateway-ECUが存在すると推定できる。
【0051】
<S202>
S202において、トポロジ推定部320は、対象装置(ここでは自動車)の内部ネットワークのトポロジの推定を行う。具体的には下記のとおりである。
【0052】
トポロジ推定部320は、NW_B接続のECUが1つのSwitchにスター型に接続される構成を有すると推定する。
【0053】
例えば、トポロジ推定部320は、S201での確認結果により、1つのGateway-ECU(Switchとしても機能する)が存在し、NW_B上にECUが存在することが確認されたことに基づいて、内部ネットワークは、NW_B接続のECUが1つのSwitchにスター型に接続される構成を有すると推定する。このような推定は、例えば、予め定めたルールに基づいて行うことができる。
【0054】
また、トポロジ推定部320は、Gateway-ECUにはNW_Aが接続していると推定する。例えば、トポロジ推定部320は、S201での確認結果により、Gateway-ECUの存在が確認され、かつ、NW_A接続のECUの存在が確認されたことに基づいて、Gateway-ECUにはNW_Aが接続されていると推定する。このような推定は、例えば、予め定めたルールに基づいて行うことができる。
【0055】
また、トポロジ推定部320は、NW_A接続のECUがGateway-ECU配下のNW_Aにバス型に接続されていると推定する。例えば、トポロジ推定部320は、Gateway-ECUにはNW_Aが接続しているという推定結果と、NW_AへのECUの接続方法の公知情報(例:バス型に接続されること)に基づいて、NW_A接続のECUがGateway-ECU配下のNW_Aにバス型に接続されていると推定する。このような推定は、例えば、予め定めたルールに基づいて行うことができる。
【0056】
<S203>
S203において、ECU情報抽出部330は、ECU情報の抽出を行う。具体的には下記のとおりである。
【0057】
ECU情報抽出部330は、DIDに0xF181、0xF183、0xF184、0xF188、0xF189、0xF18A、0xF194、0xF195、0xF19F、0xF18B、0xF18C、0xF184、0xF191、0xF192、0xF193、0xF19F(これらのDIDは一例である)それぞれを設定したUDSのReadDataByIdentifierに対しての応答から、各ECUにおけるECU情報(VINや型番、ソフトウェアバージョン等)を把握する。
【0058】
<S204>
S204において、出力部340は、S201~S203により得られた情報を出力する。例えば、出力部340は、S201~S203により得られた情報から、図1に示すようなグラフィカルな画像を作成し、当該画像を出力(表示)する。また、出力部340は、S201~S203により得られた情報をリストや自然言語の形で出力してもよい。また、自然言語の音声を出力してもよい。
【0059】
図3に示す本実施の形態における構成情報推定システムは、種々の形態で実装可能である。以下、本実施の形態における実装方法の例として実施例1~実施例6を説明する。
【0060】
(実施例1)
図6は、実施例1における構成情報推定システムの構成図である。図6に示すように、実施例1では、構成情報推定システムの全ての機能、すなわち、診断通信送受信部100、診断系ログDB200、及び構成情報推定部300を有する外部装置が、自動車400に接続される。
【0061】
外部装置を自動車400に接続する接続方法については、当該外部装置を自動車400に物理的に接続する方法でもよいし、当該外部装置をクラウド等のネットワーク上で実現し、当該ネットワーク上の外部装置から遠隔で自動車400に接続する方法でもよい。
【0062】
(実施例2)
図7は、実施例2における構成情報推定システムの構成図である。実施例2では、診断通信送受信部100を備える診断通信送受信装置と、診断系ログDB200と構成情報推定部300とを備える構成情報推定装置との2つの装置が自動車400に接続される。
【0063】
図7の例では、診断通信送受信装置が自動車400に物理的に接続され、構成情報推定装置がクラウド上に配置され、ネットワークを介して診断通信送受信装置に接続される構成例を示している。なお、このような接続形態は一例であり、診断通信送受信装置と構成情報推定装置の配置場所は特定のものに限定されない。
【0064】
(実施例3)
図8は、実施例3における構成情報推定システムの構成図である。実施例3は、実施例2の構成において、診断系ログDB200を診断通信送受信装置に備えた例である。
【0065】
なお、実施例2、3において、診断系ログDB200を診断通信送受信装置あるいは構成情報推定装置の内部ではなく、これらの装置の外部に配置してもよい。
【0066】
(実施例4)
図9は、実施例4における構成情報推定システムの構成図である。実施例4では、診断通信送受信部100から構成情報推定部300までの全ての機能を実現する処理装置が車載NW上に配置される。すなわち、図9に示すように、自動車400の内部に、診断通信送受信部100、診断系ログDB200、及び構成情報推定部300を有する処理装置が備えられる。
【0067】
なお、自動車400に備えられる上記処理装置は、車載NW内に物理的に接続する形態で配置されてもよいし、任意のECU上で実現されてもよい。つまり、1又は複数のECUが、診断通信送受信部100、診断系ログDB200、及び構成情報推定部300を有してもよい。
【0068】
(実施例5)
図10は、実施例5における構成情報推定システムの構成図である。実施例5では、車載NW上で処理を実施する処理装置を自動車400内部に備え、外部装置が自動車400に接続される。図10に示すように、処理装置は診断通信送受信部100を備え、外部装置は診断系ログDB200と構成情報推定部300を備える。
【0069】
なお、処理装置について、当該装置を車載NW内に物理的に接続する形態で配置してもよいし、任意のECU上で実現してもよい。また、外部装置の接続方法については、当該装置を自動車400に物理的に接続する方法でもよいし、クラウド等のネットワーク上の装置として外部装置を備え、遠隔で自動車400に接続する方法でもよい。
【0070】
(実施例6)
図11は、実施例6における構成情報推定システムの構成図である。実施例6は、実施例5の構成において、診断系ログDB200を処理装置に備えた例である。
【0071】
なお、実施例5、6において、診断系ログDB200を処理装置あるいは外部装置の内部ではなく、これらの装置の外部に配置してもよい。
――――――――――第2の実施の形態――――――――――
続いて、第2の実施の形態について説明する。
【0072】
(車両構成情報の例)
第2の実施の形態においても、構成情報推定システムが自動車の車両構成情報を推定する。図12に車両構成情報の一例を示す。図12における車載ネットワークのトポロジ、ECU情報(2つの表)、正常通信(右側の表の太線で囲んだ枠)の3つが車両構成情報を構成する情報である。なお、これらの情報は、後述する要素技術1~3の範囲での情報である。
【0073】
第2の実施の形態においても、第1の実施の形態と同様に診断通信を利用する。診断通信については図2を参照して説明したとおりである。
【0074】
(自動車のネットワークについて)
第2の実施の形態で前提としている自動車のネットワークを図13に示す。図13に示すように、本ネットワークでは、1つのOBD-IIポートはNW_Aバスと車載NW-Bの双方と接続する。1つのOBD-IIポートから次の(1)、(2)の診断通信が可能である。
【0075】
(1)NW_Aのみを用いて(SWを経由せず)、NW_A接続のECUと診断通信が可能である。また、OBD-IIからGWまで車載NW_Bを利用し、GW以降でNW_Aを利用してNW_A接続のECUと診断通信を実施することも可能である。
【0076】
(2)車載NW_B接続のECUに対しては、車載NW_Bのみを用いて(SWを経由して)診断通信を実施する。
【0077】
(要素技術について)
ここで、第2の実施の形態における要素技術について説明する。第2の実施の形態における要素技術は下記の(1)~(3)である。なお、(4)、(5)には第1の実施の形態で説明した技術を要素技術4、要素技術5として示している。
【0078】
(1)NW_Aのトポロジを推定する技術(要素技術1)
(2)NW_A接続のECUが送信する通常(非診断)NW_A-ID(000~6FF)を特定する技術(要素技術2)
(3)各ECUの機能(=名称)を推定する技術(要素技術3)
(4)各ECUのECU情報を取得する技術(要素技術4)
(5)NW_Bのトポロジを推定する技術(要素技術5)
以下、第2の実施の形態における要素技術1~3のそれぞれについて説明する
(要素技術1)
<要素技術1に関する従来技術、課題>
要素技術1に関する従来技術は、既に説明した非特許文献1に開示された技術である。前述したように、非特許文献1に開示された技術では、SNMPを用いて対象NW内の各SwitchのMACアドレス転送テーブルを取得し、取得した情報を解析することで対象NWのL2トポロジを推定する。
【0079】
しかし、非特許文献1のようなSNMPベースの手法でNW_Aバスのトポロジを取得するためには、SNMPエージェントの動作を可能とするためのリソース増強やSNMPのサポートが各ECUで必要となり、追加のコストがかかる。
【0080】
<要素技術1のポイント、効果>
要素技術1においても、ほとんどの自動車において標準的に利用可能な診断通信の送受信を利用する。具体的には、特定のバスの占有率を強引増加(輻輳)させた際の、診断通信のRTTを利用してNW_Aバスのトポロジを推定する。本技術の詳細は後述する。
【0081】
診断通信プロトコルは各ECUにおいて標準的にサポートされているので、本技術により、リソースの増強や新たなプロトコルのサポートといった追加のコストをかけることなくNW_Aバスのトポロジを推定できるようになる。
【0082】
<要素技術1の目標、適用対象>
要素技術1では、同一のNW_Aバスに繋がっているECUを特定することを目標としている。例えば、図14に示す構成の場合、下記のような情報を推定する。
【0083】
・ECU-AとECU-Bは同一バス接続
・ECU-AとECU-Cは異なるバス接続
・ECU-BとECU-Cは異なるバス接続
要素技術1の適用対象は、ドメインアーキテクチャを持つバスが存在するものであり、例えば図15に示すように、GW配下に複数のバスが存在するものである。GWは診断通信を適切なバスにルーティングする。例えば、ECU-Aに対応するNW_A-IDを持つ診断通信は、ECU-Aが接続しているバスにのみGWから送信される
<要素技術1の推定方法のポイントについて>
前述したとおり、要素技術1では、特定のバスの占有率を強引増加(輻輳)させた際の、診断通信のRTT(Round Trip Time)を利用することでNW_Aのトポロジを推定する。
【0084】
診断通信のRTTの定義を、図16を参照して説明する。なお、図16は、一例としてPCからECU-Aに対して診断通信を行う場合の例を示している。診断通信のRTTは、診断要求(S1)をPCが1つのECUに送信し始めてから、そのECUからの診断応答(S2)をPCが受信し終わるまでの時間である。
【0085】
ここで、図17に示すように、バス1のみ輻輳させるとする。バス1のみを輻輳させた場合、バス1に接続しているECUとの診断通信のRTTは輻輳していない場合と比較して大きくなる。他方、バス2に接続しているECUとの診断通信のRTTは輻輳していない場合と比較して変化しない。要素技術1では、このような事象を利用してトポロジを推定する。
【0086】
<要素技術1の推定手順の概要>
要素技術1の推定手順の概要について、図18図20を参照して説明する。まず、図18に示すように、ECU-BとECU-Cに対して診断要求を数回送信し、ECU-BとECU-CそれぞれのRTTの平均値を調べる。図18(及び図19図20)の左下にECU-BとECU-CそれぞれのRTTの平均値のイメージを示している。
【0087】
次に、図19に示すように、ECU-Aに対して診断要求を高頻度で送信することでECU-AとECU-Bが接続しているバスの占有率を上げる。図19の例では、当該バスの占有率が99%であることが示されている。
【0088】
続いて、図20に示すように、ECU-Aが接続しているバスが輻輳している状況下で、ECU-BとECU-Cに対して診断要求を数回送信し、ECU-BとECU-CのRTTの平均値を調べる。
【0089】
図20の左下に示すように、RTTの統計値の平均値が非輻輳時と比較して増加(左下図)していれば、そのECUはECU-Aと同一バスに接続していると判定する。図20の例では、「ECU-AとBが同一バスに接続」と判定される。
【0090】
(要素技術2)
次に、要素技術2について説明する。
【0091】
<要素技術2に関する従来技術、課題>
要素技術2に関する従来技術として、「Sekar Kulandaivel, Tushar Goyal, Arnav Kumar Agrawal, and Vyas Sekar, "CANvas: Fast and Inexpensive Automotive Network Mapping," In the Proceedings of the 28th USENIX Security Symposium, pp.389-405, (2019).」がある。
【0092】
本従来技術では、ECUが送信したメッセージの衝突が一定回数異常発生すると、そのECUのメッセージ送信が停止(バスオフ)するというNW_Aの特性を利用し、一つのECUが送信しているNW_Aメッセージの全NW_A-IDを特定する。
【0093】
従来技術による手法の具体例は下記のとおりである。
【0094】
NW_Aバス上のあるECU-AがNW_A-ID=0x300のNW_Aメッセージを送信するタイミングに合わせて、NW_Aバスに接続した推定機器からNW_A-ID=0x300のNW_Aメッセージを送信する。
【0095】
これによりNW_A-ID=0x300のNW_Aメッセージの衝突を発生させる。この衝突を繰り返すことで、ECU-Aがバスオフする。
【0096】
ECU-Aがバスオフすると、NW_A-ID=0x300を含め、ECU-Aが送信している全てのNW_A-IDのNW_Aメッセージ(例えば他に0x301,0x302)も停止する。
【0097】
このとき送信されなくなったNW_AメッセージのNW_A-IDを推定機器で調べることで、ECU-Aが送信しているNW_AメッセージのNW_A-IDを特定する。今回の例で言えば「ECU-AはNW_A-ID=0x300,0x301,0x302のNW_Aメッセージを送信している」ことを特定する。
【0098】
しかし、上記の従来技術には下記のような課題がある。
【0099】
車載NW_Aバスへのアクセス用に搭載されているOBD-IIポートは、近年のほとんどの自動車において診断通信しか送受信できない設定となっている。一方で、上記の従来技術においてNW_Aメッセージの衝突を発生させるためには非診断通信を車載NW_Aバスに送信できる必要がある。よって、OBD-IIポートを利用するという一般的な形態で従来技術を実施することは困難である。
【0100】
<要素技術2のポイント、効果>
要素技術2では、診断通信を利用して対象ECUのNW_Aメッセージの送信周期を狂わせ、そのNW_Aメッセージの送信周期の狂いをNW_A-IDSで検知する。そして、その検知結果と対象ECUの情報を関連付けることで、そのECUが送信しているNW_AメッセージのNW_A-IDを特定する。
【0101】
本技術により、近年のほとんどの自動車を対象に、OBD-IIポートを利用する形で「ECUが送信しているNW_AメッセージのNW_A-ID」を特定することができる
<要素技術2の目標、適用対象>
要素技術2では、例えば図21に示すように、NW_A接続のECUが送信する通常NW_A-ID(000~6FF)を診断用NW_A-ID(700~7FF)と関連付け、延いてはECU情報と関連付けることを目標としている。
【0102】
要素技術2では、対象NW上にIDSが存在し、通常メッセージを監視していることを前提としている。当該IDSは、通常メッセージの送信時刻の間隔が設計値よりも短い/長い場合やペイロードに異常変化があった場合にアラートを発報する。IDSのアラートには、異常と検知されたメッセージの情報(自動車の例ではNW_A-ID)が含まれている。また、車両構成推定装置は、IDSのアラートを何らかの方法で取得できる。
【0103】
<要素技術2の推定方法のポイントと手順について>
図22を参照して、要素技術3のポイントとなる処理手順を説明する。
【0104】
(1)ECUReset(例えばNW_A-ID=7E0で)を利用して対象ECUが送信する通常NW_A-ID(例えばNW_A-ID=300)のメッセージ送信の周期性やペイロード変化を狂わせる。
【0105】
(2)NW_A-IDSにアラートを発報させる。例えばアラートには、NW_A-ID=300が含まれている。
【0106】
(3)そして「そのアラートに含まれるNW_A-IDは対象ECUが送信する通常NW_A-IDである」と判定する。
【0107】
(要素技術3)
次に、要素技術3について説明する。
【0108】
<要素技術3に関する従来技術、課題>
要素技術3に関する従来技術として、「X.Feng, et al : Acquisitional Rule-based Engine for Discovering Internet-of-Things Dvices. USENIX (2018)」がある。本従来技術では、IoT機器から収集した応答情報とWebクローリング・スクレイピング技術を活用してIoT機器の情報(機器種別・ベンダ・型番)を特定する。
【0109】
より具体的には、本従来技術では、あるIoT機器の応答から抽出したキーワードAに対して、複数のWebクローリング・スクレイピング結果Bが得られる。自動車の例では、あるECUから「12345-67890」というECU型番を取得できたとする。このとき、A=12345-67890である。そして、Aを用いたクローリング・スクレイピング結果が図23に示す通りであったとする。
【0110】
本従来技術では、その複数ある結果Bを対象に下記の確信度conf(A⇒B)を算出する。
【0111】
conf(A⇒B)=(AとBの双方が含まれる結果の数)/(Aが含まれる結果の数)
そして確信度の最も高い結果を1つの結果として抽出する。図23の例では、A=12345-67890、B=Engine Moduleがconf(A⇒B)=0.67で抽出される。
【0112】
上記の従来技術には下記のような課題がある。
【0113】
ECU型番全体をキーワードとしてクローリング・スクレイピングをすると、検索結果が不在によりECUの機能を推定できないことが多い。
【0114】
また、上記従来技術のように、最も確信度の高い結果を抽出する場合、情報量の少ない結果が選ばれる場合がある。例えば、図23の場合は「Hybrid Engine Module」の方が、情報量が多いため、この結果が抽出されてほしい。しかし、従来技術の場合は、図23のようなスクレイピング結果(表)が得られた場合には、出現回数の多い「Engine Module」が選ばれてしまう。
【0115】
<要素技術3のポイント、効果>
要素技術3のポイントとして、下記のポイント1、ポイント2がある。
【0116】
ポイント1は、ECU型番の命名規則に基づいて、機能を示す桁のみを用いたスクレイピング結果も利用することである。ポイント2は、各Webクローリング・スクレイピング結果に含まれる単語の支持度の和が最大となる結果を抽出することである。
【0117】
本技術により、検索結果不在によるECUの機能(名称)推定不可を回避できる。また、信頼度が高く、かつ、情報量の多い結果を出力できる。
【0118】
<要素技術3の目標、適用対象>
要素技術3では、各ECU(NW_B接続含む)の機能(名称)を推定することを目標としている。例えば、図24に示す例において、「ECU-XはIVIである」、「ECU-YはTCUである」、「ECU-AはエンジンECUである」等を推定する。また、要素技術3では、機器を一意に特定する情報を取得可能であり、自動車の例でいえば「ECU型番」を取得可能である。
【0119】
<要素技術3の推定方法のポイントと手順について>
まず、要素技術3の推定方法の全体像について説明する。要素技術3では、診断通信で取得した各ECU型番とWebクローリング・スクレイピング技術を活用して機能(名称)を特定する。図25にそのイメージを示す。以下、前述したポイント1とポイント2をより詳細に説明する。
【0120】
<ポイント1>
ポイント1では、ECU型番の命名規則に基づいて、ECU型番の機能に関する桁のみを用いたWebクローリング・スクレイピング結果も利用する。
【0121】
ECU型番の多くは、機能情報を示す桁と車種年式を示す桁が結合された構成をとる。
機能情報を示す桁を○、車種年式を示す桁を△としたとき、例えば下記のようなECU型番構成がある
・○○○○○-△△△△△
・△△△-○○○○○○-△
ポイント1のように機能に関する桁のみを用いることで検索結果不在が減る理由は下記のとおりである。
【0122】
「ECU型番の全桁が一致」という条件で検索を行うことは、「指定された車種年式の車に搭載」かつ「指定された機能」のECUを検索することである。一方、「ECU型番の機能を示す桁のみが一致」という条件で検索を行うことは、「指定された機能」のECUを検索することである。つまり、検索時の限定条件を減らすことができるため検索結果不在を減らすことができる。
【0123】
機能に関する桁の抽出方法は特定の抽出方法に限定されないが、例えば下記の抽出方法1~3のいずれかを用いることができる。
【0124】
抽出方法1)
抽出方法1では、公開されている「ECU型番の命名規則の情報」に基づいて機能に関する桁を決定する。例えば、自動車会社のホームページ等において命名規則が公開されている場合は、その公開情報に基づいて機能に関する桁を決定する。
【0125】
抽出方法2)
抽出方法2では、とある一つの機能に関連するECU型番のみを抽出・分析し、その分析結果に基づいて機能に関する桁を決定する。例えば、エンジンECUに関連するECU型番のみを抽出・分析すると、どのECU型番においても値が変化しない桁がある。その桁を機能に関する桁として決定する。
【0126】
抽出方法3)
抽出方法3では、とある一台の自動車に搭載されているECUのECU型番を抽出・分析し、その分析結果に基づいて機能に関する桁を決定する。例えば、一台の自動車に搭載されているECUのECU型番を抽出・分析すると、どのECU型番においても値が変化しない桁がある。その桁は機能ではなく車種を示す桁であると考えられるため、その桁を除外した桁を機能に関する桁として決定する。
【0127】
<ポイント2>
要素技術3のポイント2では、各Webクローリング・スクレイピング結果に含まれる単語の支持度の和が最大となる結果を抽出する。具体的には下記のとおりである。
【0128】
ECU型番が「12345-67890」であるECUの機能(名称)を推定する際に、図26に示すWebクローリング・スクレイピング結果が得られたとする。図26に含まれる単語Xについて下記の支持度sup(X)を算出する。
【0129】
sup(X)=(Xが含まれる結果の数)/(全てのWebクローリング・スクレイピング結果の数)
そして、各行に含まれる単語の支持度の和を各行で算出し、その和が最大の結果を1つの結果として抽出する。図26の例では、Hybrid Engine Moduleが抽出される。ここで、sup(Engine)=1、sup(Module)=1、sup(Hybrid)=0.3、和=2.3である。
【0130】
(実施例)
以下、第2の実施の形態における具体的な装置構成、及び動作を実施例として説明する。各実施例の概要は下記のとおりである。
【0131】
A.要素技術の組み合わせの観点での実施例の列挙
・実施例A1:最も基本的な要素技術の組み合わせでの実施例(処理フローの詳細を説明)
・実施例A2~A4:各要素技術を単体で利用する実施例
・実施例A5~A7:要素技術を部分的に組み合わせる実施例
B.物理的な機能配備の観点での実施例の列挙
・実施例B1:本発明に係る機能を車載NW上に配備する実施例
・実施例B2:本発明に係る機能をOBD-IIポートに直接接続する実施例
・実施例B3:本発明に係る機能を充電ポートから実施する例
なおB1~B3は、後述する車載NW1とメッセージ送受信部23以外を切り出してクラウド上に配備しても良い。
【0132】
・実施例B4:外部ネットワーク上に配備した本発明に係る機能により推定を実施する例
C.目的の観点での実施例の列挙
・実施例C1:SOC(Security Operation Center)等でのセキュリティ分析に活用する実施例
・実施例C2:アセット管理に活用する実施例
・実施例C3:異常検知を実施する実施例
・実施例C4:セキュリティ診断に活用する実施例
なお、実際に実施する際は上記AとBの実施例を組み合わせる。例えば、実施例A1を実施例B1の機能配備で実施する等である。そしてそれをCに記載の目的のために使用する。以下、各実施例を説明する。
【0133】
(実施例A1)
実施例A1は、コア技術の最も基本的な組み合わせでの実施例である。ここでは、一例として、実施例B2の物理配備を想定して説明する。
【0134】
<装置構成(ブロック図)>
図27に、実施例A1における構成情報推定システムの構成図を示す。図27に示すように、構成情報推定システムは、構成要素推定部2と構成情報推定結果DB22を備える。構成要素推定部2を、車両構成推定装置あるいはネットワーク構成推定装置と呼んでもよい。構成情報推定システムを構成情報推定装置と呼んでもよい。構成要素推定部2は、車載NW1とWebサイト7(Webサーバ)に接続され、これらと通信可能である。
【0135】
構成要素推定部2は、ECU基本情報取得部3、ECU機能推定部4、NW_Bトポロジ推定部12、NW_Aバストポロジ推定部13、正常NW_A通信推定部18、メッセージ送受信部23,構成情報取得・登録部24を備える。
【0136】
ECU機能推定部4は、Web検索部6、検索結果DB8、完全一致抽出部9、特定部分一致抽出部10、推定部11を備える。なお、「完全一致抽出部9、特定部分一致抽出部10、推定部11」をまとめて推定部と呼んでもよい。
【0137】
NW_Aバストポロジ推定部13は、ベースRTT算出部14,輻輳RTT算出部15、RTT比較部16、推定部17を備える。なお、「RTT比較部16、推定部17」をまとめて推定部と呼んでもよい。
【0138】
正常NW_A通信推定部18は、再起動命令送信部19、車両アラート受信部20、及び推定部21を備える。
【0139】
以下、フローチャートを参照して装置動作を説明する。以下の説明において、なお、車載NW1や車載ECUへのメッセージ送受信は、メッセージ送受信部23を経由して実施する。
【0140】
<全体の処理の流れ>
図28を参照して、構成情報推定システムの全体の処理の流れを説明する。なお、図28に示す処理の順番は一例である。
【0141】
S1030において、ECU基本情報取得部3がECU基本情報を取得する。S1040において、ECU機能推定部4がECU機能を推定する。S1120において、NW_Bトポロジ推定部12が、NW_Bのトポロジを推定する。S1130において、NW_Aバストポロジ推定部13が、NW_Aバストポロジを推定する。S1180において、正常NW_A通信推定部18が、正常NW_A通信の推定を行う。
【0142】
以下、個々のステップの処理内容を詳細に説明する。
【0143】
<S1030>
S1030について、図29を参照して説明する。
【0144】
S1030-1において、車両構成推定装置を車載NW1のOBD-IIポート(NW_B)に接続する
S1030-2において、ECU基本情報取得部3は、S1031を実行する。S1030-3において、ECU基本情報取得部3は、S1032を実行する。S1032において、S1033とS1034も実行する。
【0145】
S1030-4において、ECU基本情報取得部3は、S1035を実行する。S1030-5において、ECU基本情報取得部3は、車両構成推定装置をOBD-IIポート(NW_B)から切断し、OBD-IIポート(NW_A)に接続する。
【0146】
S1030-6において、ECU基本情報取得部3は、S1036を実行する。S1030-7において、ECU基本情報取得部3は、S1037を実行する。S1037において、S1038も実行する。S1030-8において、ECU基本情報取得部3は、S1039を実行する。
【0147】
<S1031>
次に、S1031の処理を、図30を参照して説明する。
【0148】
S1031-1において、ECU基本情報取得部3は、DoIPの規定に従い、AutoIPもしくはDHCPにより車載NW1上のローカルIPアドレスを取得する。
【0149】
S1031―2において、ECU基本情報取得部3が、DoIPの規定に従って車載NW1上の各ECUがブロードキャストするVehicle Announcementを受信した場合はS1031-5に進み、受信しない場合はS1031-3に進む。
【0150】
S1031-3において、ECU基本情報取得部3は、車載NW1上にVehicle Identification Request(DoIPで規定)をブロードキャストする。
【0151】
S1031-4において、車載NW1上の各ECUはDoIPの既定に従い、Vehicle Identification Requestに対してVehicle Identification Responseを応答する。ECU基本情報取得部3は、そのVehicle Identification Responseを受信する。
【0152】
S1031-5において、ECU基本情報取得部3は、受信したVehicle AnnouncementやVehicle Identification Responseに含まれる送信元IPアドレスなどの情報をメモリ等の記憶手段に記録する。記録した情報を図31(表3031)に示す。なお、記録する情報は表3031のものに限らない。
【0153】
<S1032>
次に、図32を参照してS1032の処理について説明する。S1032-1において、ECU基本情報取得部3は、下記の変数を宣言する。
【0154】
・前のステップ(S1031)で記憶した表3031のIPアドレスのリスト"IP=[192.168.10.1,192.168.10.2,192.168.10.3]"
・IPリストの長さ"Length(IP)"(本例の場合、Length(IP)=3)
・"DID=[0xF18C,0xF190,0xF191,0xF194,0xF195,0xF19F]"
・DIDの長さ"Length(DID)"(本例の場合Length(DID)=6)
・i=0
なお、変数名は上記以外でも良い。また、IPの中身をIPアドレス以外の値で統一しても良い。DIDには上記以外の値を追加しても良い
S1032―2において、ECU基本情報取得部3は、i<Length(IP)であるか否かを判断し、YesであればS1032-3に進み、Noであれば処理を終了する。
【0155】
S1032-3において、ECU基本情報取得部3は、S1033の処理を実行する。S1032-4において、ECU基本情報取得部3は、S1034の処理を実行する。S1032―5において、i=i+1とし、S1032-2に戻る。
【0156】
<S1033>
次に、図33を参照してS1033の処理について説明する。S1033-1において、ECU基本情報取得部3は、車載NW1上のIP[i]に対してDoIP Entity Status Requestを送信する。
【0157】
S1033-2において、車載NW1上のIP[i]を持つECUはDoIPの既定に従い、DoIP Entity Status Requestに対してDoIP Entity Status Responseを応答する。ECU基本情報取得部3は、そのDoIP Entity Status Responseを受信する。
【0158】
S1033-3において、ECU基本情報取得部3は、受信したDoIP Entity Status Responseに含まれる「Node type」とIP[i]を記憶手段に記録する。記録した情報の例を図34(表3032)に示す。
【0159】
<S1034>
次に、図35を参照してS1034の処理について説明する。S1034-1において、ECU基本情報取得部3は、変数j=0を宣言する。なお、変数名はj以外でも良い。S1034-2において、ECU基本情報取得部3は、j<Length(DID)を満たすか否かを判断し、YesであればS1034-3に進み、Noであれば処理を終了する。
【0160】
S1034-3において、ECU基本情報取得部3は、DIDにDID[j]を設定したreadDataByIdentifier(UDSで規定)をIP[i]に送信し、応答を受信する。S1034-4において、ECU基本情報取得部3は、受信した応答のdataRecordをIP[i]とDID[j]とともに記憶手段に記録する。記録した情報の例を図36(表3033)に示す。S1034-5において、ECU基本情報取得部3は、j=j+1とし、S1034-2に戻る。
【0161】
<S1035>
次に、図37を参照してS1035を説明する。S1035-1において、ECU基本情報取得部3は、図36(表3033)のDIDをUDSの規定に基づいて「説明」に変更し、dataRecordをASCII(16進数)→文字列変換する。図36(表3033)を変更・変換後の結果は図38(表3034)の通りである。なお、説明の内容やdataRecordの変換方法はこれに限らない。
【0162】
S1035-2において、ECU基本情報取得部3は、図38(表3034)のデータを「IPアドレス」と「ECU型番」を複合主キーとして整理する。整理した結果は図39(表3035)に示す通りである。なお、まとめ方はこれに限らない。
【0163】
S1035-3において、ECU基本情報取得部3は、図39(表3035)と図31(表3031)と図34(表3032)を「IPアドレス」をキーとして結合する。その結果は図40(表3036)に示す通りである。
【0164】
S1035-4において、ECU基本情報取得部3は、図40(表3036)の結合結果を、構成情報取得・登録部24を経由して構成情報推定結果DB22に格納する。
【0165】
<S1036>
次に、S1036を、図41を参照して説明する。S1036-1において、ECU基本情報取得部3は、DoCANとUDSの規定に従い、診断用NW_A-ID=0x700~0x7FFや診断用の拡張NW_A-ID(以降、これらを単に「NW_A-ID」と総称)のすべてに対して順々にTesterPresent要求を送信する。
【0166】
S1036-2において、ECU基本情報取得部3は、前のステップでTesterPresent要求を送信した際に対しての応答が車載ネットワーク上で発生すれば、自身が送信したNW_A-ID(要求NW_A-ID)などを記憶手段に記録する。例えば、NW_A-ID = 700を設定したTesterPresentを送信した際に応答があれば、NW_A-ID=700や応答に設定されているNW_A-ID(応答NW_A-ID)を記録する。その結果は図42(表3037)に示す通りである。
【0167】
<S1037>
次に、S1037を、図43を参照して説明する。S1037-1において、ECU基本情報取得部3は、下記の変数を宣言する。
【0168】
・前のステップで記録した図42(表3037)の要求NW_A-IDリスト"NW_A-ID=[0x700,0x724,0x750,0x7E0,0x7E1]"
・リストの長さ"Length(NW_A-ID)"(本例の場合はLength(NW_A-ID)=5)
・"DID =[0xF18C,0xF190,0xF191,0xF194,0xF195, 0xF19F]"
・DIDの長さ"Length(DID)"(本例の場合はLength(DID)=6)
・i=0
なお、変数名は上記以外でも良い。また、NW_A-IDの中身をNW_A-ID以外の値で統一しても良い。DIDには上記以外の値を追加しても良い
S1037-2において、i<Length(NW_A-ID)を満たすかどうかを確認し、YesであればS1037-3に進み、Noであれば処理を終了する。S1037―3において、ECU基本情報取得部3は、S1038を実行する。S1037-4において、i=i+1としてS1037-2に戻る。
【0169】
<S1038>
次に、図44を参照してS1038について説明する。S1038-1において、ECU基本情報取得部3は、変数j=0を宣言する。なお、変数名はj以外でも良い。
【0170】
S1038-2において、ECU基本情報取得部3は、j<Length(DID)を満たすかどうか判断する。YesであればS1038-3に進み、Noであれば処理を終了する。
【0171】
S1038―3において、ECU基本情報取得部3は、DIDにDID[j]を設定したreadDataByIdentifier(UDSで規定)をNW_A-ID[i]に送信し、応答を受信する。
【0172】
S1038―4において、ECU基本情報取得部3は、受信した応答のdataRecordをNW_A-ID[i](要求NW_A-ID)と応答NW_A-ID、DID[j]とともに記憶手段に記録する。記録した情報の例を図45(表3038)に示す。S1038-5において、j=j+1としてS1038-2に戻る。
【0173】
<S1039>
次に、図46を参照してS1039について説明する。S1039-1において、ECU基本情報取得部3は、図45(表3038)のDIDをUDSの規定に基づいて「説明」に変更し、dataRecordをASCII(16進数)→文字列変換する。なお、説明の内容やdataRecordの変換方法はこれに限らない。
【0174】
S1039-2において、ECU基本情報取得部3は、前ステップのデータを「NW_A-ID」と「ECU型番」を複合主キーとして整理する。整理した結果は図47(表3039)に示す通りである。なお、まとめ方はこれに限らない。
【0175】
S1039-3において、ECU基本情報取得部3は、図47(表3039)の整理結果を構成情報取得・登録部24を経由して構成情報推定結果DB22に渡す。
【0176】
<S1040>
次に、図48を参照してS1040について説明する。S1040-1において、ECU機能推定部4は、下記の変数を宣言する。
【0177】
・構成情報取得・登録部24を経由して構成情報推定結果DB22から取得した、図40(表3036)と図47(表3039)の重複のないECU型番のリスト
・"PN=[11111-56789,22222-56789,33333-56789,44444-56789,55555-56789,66666-56789,77777-56789,88888-56789]"
・PNリストの長さ"Length(PN)"(本例の場合はLength(PN)=8)
・i=0
なお、変数名は上記以外でも良い。また、IPの中身をIPアドレス以外の値で統一しても良い。
【0178】
S1040-2において、ECU機能推定部4は、i<Length(PN)を満たすかどうかを判断し、YesであればS1040-3に進み、Noであれば処理を終了する。S1040-3において、PN[i]についてS1061を実施し、S1040-4において、PN[i]についてS1091を実施し、S1040-5において、PN[i]についてS1101を実施し、S1040-6において、PN[i]についてS1111を実施する。S1040-7においてi=i+1としてS1040-2に戻る。
【0179】
<S1061>
次に、図49を参照してS1061について説明する。S1061-1において、Web検索部6は、構成情報推定結果DB22から取得したECU型番を検索ワードとして利用しWebページをクローリングする。このときクローリングするWebページは、ECUの型番からECUの機能(=名称)を検索するのにふさわしいWebサイトが好ましい。また、検索ワードとしてECU型番全体と、ECU型番の機能に関する桁の2種類を用いる。
【0180】
なお、ECU型番の機能に関する桁については、要素技術3のポイント1の説明のところで述べた手法などにより特定する。なお、特定手法はそれに限定しない。
【0181】
S1061-2において、Web検索部6は、前のステップでクローリングしたWebページからECU型番とそのECU型番に対応する機能のペア情報をスクレイピングする。
【0182】
S1061-3において、Web検索部6は、ペア情報を過去の検索結果DB8に格納する。なお、過去の検索結果DB8は、例えば図50(表3081)のようなDB構造を持つ
<S1091>
次に、図51を参照してS1091を説明する。S1091において、完全一致抽出部9は、検索結果DB8からECU型番が完全に一致するペア情報を取得する。
【0183】
<S1101>
次に、図52を参照してS1101を説明する。S1101において、特定部分一致抽出部10は、検索結果DB8からECU型番の機能に関する桁が一致するペア情報を取得する。
【0184】
<S1111>
次に、図53を参照してS1111を説明する。S1111-1において、推定部11は、上記のステップにより取得したペア情報のうち、機能の情報を単語ごとに分割する。例えば「Genuine Engine Control Module」という機能の情報を持つペア情報が得られた場合、これを「Genuine」「Engine」「Control」「Module」の4つに分割する。
【0185】
S1111-2において、推定部11は、前のステップで分割した単語のうち、機能に関係ない頻出単語を削除する。例えば、前のステップの例で言うと「Genuine」を削除する。なお、削除しなくても良い。
【0186】
S1111-3において、推定部11は、分割した各単語の支持度を算出する。具体的には、単語xの支持度は下記の式で計算される。支持度の計算結果例を図54(表3111)に示す。
【0187】
支持度(x)=(xを含むペア情報の数)/(全ペア情報の数)
S1111-4において、推定部11は、各ペア情報の機能の情報に含まれる単語の支持度の和を計算する。そして和が最も大きいペア情報を出力する。なお、和以外に、平均や積が最大の物を選んでも良い。
【0188】
一例として、図55に示す支持度の例に基づく和を算出する過程と結果を以下に示す。
【0189】
1.Gas Motor Module
和=0.25+0.5+1.0=1.75
2.Engine Motor Control Module
和=0.75+0.5+0.75+1.0=3.0
3.Engine Control Module
和=0.75+0.75+1.0=2.5
4.Engine Control Module
和=0.75+0.75+1.0=2.5
2の情報が最大値を持つので、2のペア情報を出力する。なお、図55の基となったペア情報の機能の情報は下記のとおりである。
【0190】
1.Gas Motor Module
2.Engine Motor Control Module
3.Engine Control Module
4.Engine Control Module
S1111―5において、推定部11は、以下で説明するラベル付けした結果を、構成情報取得・登録部24を経由して構成情報推定結果DB22の図40(表3036)もしくは図47(表3039)の適切なECU型番を持つ行に追加する。その結果の例を図56(表3112)と図57(表3113)に示す。ラベル付けに関しては下記のとおりである。
【0191】
検索結果DB8から取得した「ECU型番が完全に一致するペア情報」を本処理で利用する場合は、ECU型番が完全に一致するペア情報のみを利用して処理を行う。そして、出力結果には「完全一致」というラベルを付ける。一方、検索結果DB8から取得した「ECU型番の特定部分が一致するペア情報」を本処理で利用する場合は、ECU型番の特定部分が一致するペア情報のみを利用して処理を行う。そして、出力結果には「部分一致」というラベルを付ける。
【0192】
<S1120>
次に、S1120について図58を参照して説明する。S1120-1において、NW_Bトポロジ推定部12は、S1121を実行する。S1120-2において、NW_Bトポロジ推定部12は、S1122を実行する。
【0193】
<S1121>
次に、図59を参照してS1121を説明する。S1121-1において、NW_Bトポロジ推定部12は、下記の変数を宣言する。
【0194】
・構成情報取得・登録部24を経由して構成情報推定結果DB22から取得した、図54(表3111)のIPアドレスのリスト"IP=[192.168.10.1,192.168.10.2,192.168.10.3]"
・IPリストの長さ"Length(IP)"(本例の場合はLength(IP)=3)
・i=0
なお、変数名は上記以外でも良い。また、IPの中身をIPアドレス以外の値で統一しても良い。
【0195】
S1121-2において、NW_Bトポロジ推定部12は、i<Length(IP)を満たすか否かを判断し、YesであればS1121-3に進み、Noであれば処理を終了する。
【0196】
S1121-3において、NW_Bトポロジ推定部12は、車載NW1上のIP[i]に対してICMPのtracerouteを実行し、結果を記憶手段に記録する。記録される情報の例を図60に示す。S1121-4において、i=i+1とし、S1121-2に戻る。
【0197】
<S1122>
図61を参照してS1122について説明する。
【0198】
S1122-1において、NW_Bトポロジ推定部12は、構成情報取得・登録部24を経由して構成情報推定結果DB22の図56(表3112)からすべてのECU型番を取り出す。次に、NW_Bトポロジ推定部12は、取り出したECU型番の重複を削除する。そして、重複が削除されたECU型番と物理的なECUを1対1対応させる。結果の例を図62に示す。
【0199】
S1122-2において、NW_Bトポロジ推定部12は、構成情報取得・登録部24を経由して構成情報推定結果DB22から取得した、図56(表3112)の「ECU型番」と「MACアドレス」と「IPアドレス」に基づいて、ネットワークインターフェースを図62の情報に追加する。その結果は図63に示すとおりである。
【0200】
S1122-3において、NW_Bトポロジ推定部12は、構成情報取得・登録部24を経由して構成情報推定結果DB22から取得した、図56(表3112)のすべての情報をECUやECUのインターフェースに適切に割り当てる。その結果は図64に示す通りである。
【0201】
S1122-4において、NW_Bトポロジ推定部12は、tracerouteの記録(図62)を基に、OBD-IIポートとECUのネットワークインターフェース(延いては物理的なECU)とIPルータのNW_Bケーブルによる接続関係を整理する。なお、同一IPルータの配下に複数のECUが存在する場合は、それらのECUとIPルータが一つのNW_B switchで接続されていると推定する。また、複数のECUが車載ネットワークに存在するが、IPルータが存在しない場合も、それらのECUが一つのNW_B switchで接続されていると推定する。その結果は図65に示すとおりである。なお、ECU同士の接続関係の整理方法はこれに限るものではない。
【0202】
S1122-5において、NW_Bトポロジ推定部12は、図65の推定結果を構成情報取得・登録部24を経由して構成情報推定結果DB22に格納する。
【0203】
<S1130>
次に、図66を参照して、NW_Aバストポロジ推定部13によるS1130について説明する。
【0204】
S1130-1において、ベースRTT算出部14がS1141を実行する。S1130-2において、輻輳RTT算出部15がS1151を実行する。S1130-3において、輻輳RTT算出部15がS1152を実行する。S1130-4において、RTT比較部16がS1161を実行する。S1130-5において、推定部17がS1171を実行する。S1130-6において、推定部17がS1172を実行する。
【0205】
<S1141>
次に、図67を参照してS1141について説明する。
【0206】
S1141―1において、ベースRTT算出部14は、NW_A-ID[i]に対してUDSで規定されるTesterPresent要求を200ms間隔で100回送信する。そして、それに対しての応答を受信する。さらに、それらの送信時刻と受信時刻を記憶手段に記録する。記録した情報の例を図68に示す。なお、送信間隔や送信回数はこれに限らない。
【0207】
S1141―2において、ベースRTT算出部14は、前のステップの記録(図68)を用いて応答時間(以降、ペース応答時間と呼称)の統計値を算出する。そしてその結果をNW_A-ID[i]とともに記録する(例:図69(表3141))。なお、要求NW_A-ID(図68で言えば0x700)でTesterPresentを送信した時刻と、その直後に応答NW_A-ID(図68で言えば0x708)でTesterPresentを受信した時刻の差をベース応答時間とする。また、統計値として平均値・最大値、最小値、標準偏差を算出する。ただし、その他の統計値を算出しても良い。
【0208】
<S1151>
次に、図70を参照してS1151について説明する。
【0209】
S1151-1において、輻輳RTT算出部15は、下記の変数を宣言する。
【0210】
・構成情報取得・登録部24を経由して構成情報推定結果DB22から取得した、図57(表3113)の要求NW_A-IDを昇順にしたリスト"NW_A-ID=[0x700,0x724,0x750,0x7E0,0x7E1]"
・リストの長さ"Length(NW_A-ID)"(本例の場合はLength(NW_A-ID)=5)
・i=0
なお、変数名は上記以外でも良い。また、NW_A-IDの中身をNW_A-ID以外の値で統一しても良い。
【0211】
S1151-2において、輻輳RTT算出部15は、i<Length(NW_A-ID)を満たすか否かを判断する。YesであればS1151-2に進み、Noであれば処理を終了する。S1151-3において、j=i+1とする。
【0212】
S1151-4において、輻輳RTT算出部15は、j<Length(NW_A-ID)を満たすか否かを判断する。YesであればS1151-5に進み、Noであれば処理を終了する。S1151-5において、輻輳RTT算出部15は、S1152を実行して、S1151-2に戻る。
【0213】
<S1152>
次に、図71を参照してS1152について説明する。
【0214】
S1152-1において、輻輳RTT算出部15は、NW_A-ID[i]に対してUDSで規定されるTesterPresent要求を0.5ms間隔で、S1152が終了するまで送信し続け、NW_A-ID[i]のNW_Aメッセージが送信されるNW_Aバスを輻輳させる。なお、送信間隔はこれに限らない。
【0215】
S1152-2において、輻輳RTT算出部15は、NW_A-ID[j]に対してUDSで規定されるTesterPresent要求を200ms間隔で100回送信する。そして、それに対しての応答を受信する。さらに、それらの送信時刻と受信時刻を記憶手段に記録する。記録された情報の例を図72に示す。なお、送信間隔や送信回数はこれに限らない。
【0216】
S1152-3において、輻輳RTT算出部15は、前のステップの記録を用いて応答時間(以降、輻輳時応答時間と呼称)の統計値を算出する。そしてその結果をNW_A-ID[i](図73(表3151)では輻輳NW_A-IDと呼称)とNW_A-ID[j](図73(表3151)では統計値算出対象NW_A-IDと呼称)とともに記憶手段に記録する。記録された情報の例を図73(表3151)に示す。
【0217】
なお、要求NW_A-IDでTesterPresentを送信した時刻と、その直後に応答NW_A-IDでTesterPresentを受信した時刻の差を輻輳時応答時間とする。また、統計値として平均値・最大値、最小値、標準偏差を算出する。ただし、その他の統計値を算出しても良い
<S1162>
次に、図74を参照してS1161について説明する。
【0218】
S1161-1において、RTT比較部16は、とあるNW_A-ID=xについて、図69(表3141)のNW_A-ID=xの統計値と図73(表3151)の統計値算出用のNW_A-ID=xの統計値を比較する。そして、図73(表3151)側の統計値のいずれかの値が図69(表3141)よりも50%以上増加している行を図73(表3151)から抽出する。抽出結果は図75(表3161)に示す通りである。なお、図75(表3161)の抽出方法はこれに限るものではない。
【0219】
S1161-2において、RTT比較部16は、図75(表3161)の各行の輻輳NW_A-IDと統計値算出対象NW_A-IDをグルーピングする。例えば、0x700と0x724は一つのグループであり、0x700と0x7E0は一つのグループであり、0x724と0x7E0は一つのグループであり、0x750と0x7E1は一つのグループである。
【0220】
S1161-3において、RTT比較部16は、前のステップで作ったグループを可能な限りまとめる。例えば、0x700と0x724は一つのグループであり、0x700と0x7E0は一つのグループであり、0x724と0x7E0は一つのグループでることから、これら3つは一つのグループであるとする。その結果は図76(表3162)の通りである。
【0221】
<S1171>
次に、図77を参照してS1171を説明する。
【0222】
S1171-1において、推定部17は、構成情報推定結果DB22に格納されている図56(表3112)相当の情報からすべてのECU型番を取り出す。次に、取り出したECU型番の重複を削除する。そして重複が削除されたECU型番と物理的なECUを1対1対応させる。結果は図78に示す通りである。
【0223】
S1171-2において、推定部17は、構成情報推定結果DB22に格納されている図56(表3112)相当の情報に基づいて要求NW_A-IDの情報を図78に追加する。その結果は図79に示すとおりである。
【0224】
S1171-3において、推定部17は、とあるNW_A-ID=xについて、図69(表3141)のNW_A-ID=xの統計値と図73(表3151)の統計値算出用のNW_A-ID=xの統計値を比較する。そして、図73(表3151)側の統計値のいずれかの値が図69(表3141)よりも50%以上増加している行を図73(表3151)から抽出する。抽出結果は図75(表3161)に示すとおりである。なお、図75(表3161)の抽出方法はこれに限るものではない。
【0225】
S1171-4において、推定部17は、図75(表3161)の各行の輻輳NW_A-IDと統計値算出対象NW_A-IDをグルーピングする。例えば、0x700と0x724は一つのグループであり、0x700と0x7E0は一つのグループであり、0x724と0x7E0は一つのグループであり、0x750と0x7E1は一つのグループである。
【0226】
S1171-5において、推定部17は、前のステップで作ったグループを可能な限りまとめる。例えば、0x700と0x724は一つのグループであり、0x700と0x7E0は一つのグループであり、0x724と0x7E0は一つのグループでることから、これら3つは一つのグループであるとする。その結果は図76(表3162)の通りである。
【0227】
<S1172>
次に、図80を参照してS1172を説明する。
【0228】
S1172-1において、推定部17は、図76(表3162)で一つのグループにまとめられているNW_A-IDのNW_Aメッセージに対して応答するECUは同一のNW_Aバスに接続されていると判定する。そして推定部17は、その判定結果を基に、図79の情報をNW_Aバスのトポロジ図(図81)に変換する。
【0229】
S1172-2において、推定部17は、構成情報推定結果DB22(構成情報整理部)に渡された図56(表3112)のすべての情報をECUに適切に割り当てる。その結果は図82に示す通りである。
【0230】
S1172-3において、推定部17は、構成情報推定結果DB22(構成情報整理部)に渡された図65のNodeType=0x1のECUと、図82のECUの機能の「完全一致」もしくは「部分一致」にGW(gateway)が含まれているECUを探索する。
【0231】
S1172-4において、推定部17は、前のステップで見つけたECUをNW_Aバスで接続する。その結果は図83に示す通りである。
【0232】
S1172-5において、推定部17は、図83に示す情報を構成情報取得・登録部24を経由して構成情報推定結果DB22に格納する
<S1180>
次に、図84を参照して正常NW_A通信推定部18によるS1180を説明する。
【0233】
S1180-1において、再起動命令送信部19は、S1191を実行する。S1180-2において、再起動命令送信部19は、S1192を実行する。S1180-3において、車両アラート受信部20は、S1201を実行する。S1180-4において、車両アラート受信部20は、S1211を実行する。
【0234】
<S1191>
次に、図85を参照してS1191を説明する。
【0235】
S1191-1において、再起動命令送信部19は、下記の変数を宣言する。
【0236】
・構成情報推定結果DB22に格納された図56(表3112)の要求NW_A-IDリスト"NW_A-ID=[0x700,0x724,0x750,0x7E0,0x7E1]"
・リストの長さ"Length(NW_A-ID)"(本例の場合はLength(NW_A-ID)=5)
・i=0
なお、変数名は上記以外でも良い。また、NW_A-IDの中身をNW_A-ID以外の値で統一しても良い。
【0237】
S1191-2において、再起動命令送信部19は、i<Length(NW_A-ID)が成り立つかどうかを判断する。Yesの場合はS1191-3に進み、Noの場合は処理を終了する。S1191-3において、再起動命令送信部19は、S1192を実行する。S1191-3において、再起動命令送信部19は、i=i+1として、S1191-2に戻る。
【0238】
<S1192>
次に、図86を参照してS1192について説明する。
【0239】
S1192-1において、再起動命令送信部19は、NW_A-ID[i]に対してUDSで規定されるECUReset(ResetType=HardReset)要求を5秒から10秒のランダムな間隔で10回送信する。なお、送信間隔や送信回数、ResetTypeはこれに限らない。
【0240】
S1192-2において、再起動命令送信部19は、前のステップでECUReset要求を送信した時刻をNW_A-ID[i]とともに記憶手段に記録する。記録した情報の例を図87に示す。
【0241】
<S1201>
次に、図88を参照してS1201について説明する。
【0242】
まず、前提を説明する。車載ネットワーク1上のECUはあるNW_A-IDのNW_Aメッセージを一定(設計値)の時間間隔(送信間隔)で送信している。また、車載ネットワーク1上のNW_A-IDSはあるNW_A-IDのNW_Aメッセージの送信間隔が設計値を大きく逸脱している場合にアラートを発報する。なお、アラートには発報時刻と検知されたNW_AメッセージのNW_A-IDが格納されているとする。
【0243】
ECUResetを受信したECUはECUの再起動を実行するため、一時的にNW_Aメッセージの送信を停止する。また、再起動後は任意の時間を空けてNW_Aメッセージの送信を再開する。そのため、ECUResetを受信したECUが送信するNW_Aメッセージの送信間隔は一時的に大きくなる、あるいは小さくなる。NW_A-IDSはこれを異常と判定しアラートを発報する
S1201-1において、車両アラート受信部20は、NW_A-IDSのアラートを時刻とともに記憶手段に記録する。記憶した情報の例を図89に示す。
【0244】
<S1211>
次に、図90を参照してS1211について説明する。
【0245】
S1211-1において、推定部21は、図87に示す情報として記録されているNW_A-IDと図89に示す情報として記録されているNW_A-IDを関連付ける。関連付ける際は、記録された時刻の類似性を基に行う。関連付けを行った結果の例を図91(表3211)に示す。
【0246】
S1211-2において、推定部21は、図91(表3211)の結果を車両構成推定の結果(例えば図83図56(表3112))に追加する。その際は、「表3211のECUResetのNW_A-ID列」=「図83や表3112の要求NW_A-ID」の条件を満たす行を図83図56(表3112)に追加する。
【0247】
なお、追加する際は例えば「定常送信NW_A-ID」という列名で追加する。その結果例は図92図93(表3212)に示す通りである。
【0248】
(実施例A2)
次に、実施例A2について説明する。図94は、実施例A2におけるシステムの構成図である。図94に示すように、実施例A2における構成は、推定部として、要素技術3に対応するECU機能推定部4のみを備えた構成である。各部の処理については実施例A1において説明した処理と同じである。
【0249】
(実施例A3)
次に、実施例A3について説明する。図95は、実施例A3におけるシステムの構成図である。図95に示すように、実施例A3における構成は、推定部として、要素技術1に対応するNW_Aバストポロジ推定部13のみを備えた構成である。各部の処理については実施例A1において説明した処理と同じである。
【0250】
(実施例A4)
次に、実施例A4について説明する。図96は、実施例A4におけるシステムの構成図である。図96に示すように、実施例A4における構成は、推定部として、要素技術2に対応する正常NW_A通信推定部18のみを備えた構成である。各部の処理については実施例A1において説明した処理と同じである。
【0251】
(実施例A5)
次に、実施例A5について説明する。図97は、実施例A5におけるシステムの構成図である。図97に示すように、実施例A5における構成は、実施例A1(図27)の構成から、正常NW_A通信推定部18を除いた構成である。各部の処理については実施例A1において説明した処理と同じである。
【0252】
(実施例A6)
次に、実施例A6について説明する。図98は、実施例A6におけるシステムの構成図である。図98に示すように、実施例A6における構成は、実施例A1(図27)の構成から、NW_Aバストポロジ推定部13を除いた構成である。各部の処理については実施例A1において説明した処理と同じである。
【0253】
(実施例A7)
次に、実施例A7について説明する。図99は、実施例A7におけるシステムの構成図である。図99に示すように、実施例A7における構成は、実施例A1(図27)の構成から、ECU機能推定部4を除いた構成である。各部の処理については実施例A1において説明した処理と同じである。
【0254】
(実施例B1)
次に、実施例B1について説明する。実施例B1は、本発明に係る構成情報推定システムを車載NW上に配備する実施例である。図100は、実施例B1における自動車(車載NW)の構成図である。図100に示すように、車載NW上のECUの機能として車両構成推定装置2及び構成情報推定結果DB22が備えられる。
【0255】
なお、図100のように構成情報推定結果DB22をECUに備えることに代えて、構成情報推定結果DB22をクラウド上に備えることとしてもよい。また、車両構成推定装置2において、メッセージ送受信部23以外の1つ又は複数の機能部をクラウド上に備えることとしてもよい。例えば車両構成推定装置2におけるECU機能推定部4のみをクラウド上に備えることとしてもよい。
【0256】
(実施例B2)
次に、実施例B2について説明する。実施例B2は、本発明に係る構成情報推定システム(装置)をOBD-IIポートに直接接続する実施例である。図101は、実施例B2におけるシステムの構成図である。図101に示すように、構成情報推定システムがOBD-IIポートに直接接続する。
【0257】
なお、図101のように構成情報推定結果DB22を構成情報推定システム(装置)上に備えることに代えて、構成情報推定結果DB22をクラウド上に備えることとしてもよい。また、車両構成推定装置2において、メッセージ送受信部23以外の1つ又は複数の機能部をクラウド上に備えることとしてもよい。例えば車両構成推定装置2におけるECU機能推定部4のみをクラウド上に備えることとしてもよい。
【0258】
(実施例B3)
次に、実施例B3について説明する。図102に実施例B3におけるシステムの構成を示す。図102に示すように、実施例B3では、本発明に係る構成情報推定システムが、充電器に備えられ、充電ポートに接続される。構成情報推定システムの処理は充電ポートを介して実行される。
【0259】
なお、図102のように構成情報推定結果DB22を充電器上に備えることに代えて、構成情報推定結果DB22をクラウド上に備えることとしてもよい。また、車両構成推定装置2において、メッセージ送受信部23以外の1つ又は複数の機能部をクラウド上に備えることとしてもよい。例えば車両構成推定装置2におけるECU機能推定部4のみをクラウド上に備えることとしてもよい。
【0260】
(実施例B4)
次に、実施例B4について説明する。図103に実施例B4におけるシステムの構成を示す。図103に示すように、実施例B4では、本発明に係る構成情報推定システムが外部ネットワーク上に備えられ、構成情報推定システムの処理は外部ネットワークを経由して実行される。
【0261】
(実施例C1)
次に、実施例C1を説明する。実施例C1は、構成情報推定システムをSOC等でのセキュリティ分析に活用する実施例である。図104は、実施例C1におけるシステム構成図である。
【0262】
図104に示すとおり、本システムは、自動車に接続される車両構成推定装置2、及び構成情報推定結果DB22に加えて、構成情報取得部30、セキュリティ分析部31、分析結果提示部32を備える。各部は、図示のとおりに接続されている。
【0263】
構成情報取得部30は、構成情報推定結果DB22から必要な構成情報を抽出し、セキュリティ分析部31に渡す。セキュリティ分析部31は、車両構成推定装置2が推定した車両構成情報を利用してより高度なセキュリティ分析を行う。そして分析結果を分析結果提示部32に渡す。
【0264】
分析結果提示部32は、分析結果を受け取り、適宜加工を施し分析官に結果を提示する。なお、分析官は人に限らず、分析結果を利用してさらに別の分析を行うプログラムでも良い。
【0265】
セキュリティ分析部31が実行するセキュリティ分析は特定のものに限定されないが、例えば、下記に列挙する例がある。
【0266】
・トポロジ情報を取得利用した攻撃経路の推定
・トポロジ情報や各ECUのソフトウェアバージョンを利用したエントリーポイントの推定
・トポロジ情報や各ECUのソフトウェアバージョンを利用した原因推定
・トポロジ情報や各ECUのソフトウェアバージョン、正常通信の情報を利用した異常な通信やプロセスの推定
・トポロジ情報や各ECUのソフトウェアバージョンを利用した、正常通信の情報、各ECUの機能の情報を利用した影響の推定
・トポロジ情報や各ECUのソフトウェアバージョンを利用した対処方法の推定
(実施例C2)
次に、実施例C2を説明する。実施例C2は、構成情報推定システムをアセット管理に活用する実施例である。図105は、実施例C2におけるシステム構成図である。
【0267】
図105に示すとおり、本システムは、自動車に接続される車両構成推定装置2、及び構成情報推定結果DB22に加えて、構成情報取得部30、アセット管理部33、管理情報提示部34を備える。各部は、図示のとおりに接続されている。
【0268】
構成情報取得部30は、構成情報推定結果DB22から必要な構成情報を抽出し、アセット管理部33に渡す。アセット管理部33は管理情報を保持しており、受け取った構成情報を基に、管理情報にないECUやサポート切れのECUが存在しないか等の管理を行う。このとき、ECUのソフトウェアのサポート状況等の公開情報も利用する。
【0269】
管理情報提示部34は、アセット管理部33より管理情報を取得し、適宜加工を施し(例えば管理情報にないECUの機器名やアドレス情報のみを抽出・整理)管理者に結果を提示する。なお、管理者は人に限らず、管理情報を利用してさらに別の分析を行うプログラムでも良い。
【0270】
(実施例C3)
次に、実施例C3を説明する。実施例C3は、構成情報推定システムを異常検知に活用する実施例である。図106は、実施例C3におけるシステム構成図である。
【0271】
図106に示すとおり、本システムは、自動車に接続される車両構成推定装置2、及び構成情報推定結果DB22に加えて、構成情報取得部30、異常検知部35を備える。各部は、図示のとおりに接続されている。
【0272】
構成情報取得部30は、構成情報推定結果DB22から必要な構成情報を抽出し、異常検知部35に渡す。異常検知部35は、正常な車両構成情報が格納されたDBの情報や異常検知ルール、公開情報(例えば脆弱性DBの情報)を利用して、車両構成情報の異常状態を検知する。さらに、異常検知結果を自動車の管理者やSOC等の分析官に通知する。
【0273】
異常検知手法は特定の手法に限定されないが、例えば、下記に列挙する例がある。
【0274】
・正常な車両構成情報DBに格納されている車両構成情報と構成情報推定結果DBに格納されている車両構成情報を比較し、そこに差異があれば異常として検知する。
【0275】
・構成情報推定結果DB22に格納されている車両構成情報が、異常検知ルールを満たす場合や、公開情報(脆弱性DB)などで異常状態として定義されている構成情報を持つ場合に異常があるとして検知する。
【0276】
・正常な自動車の車両構成情報を機械学習し、学習したモデルに基づいて機械学習ベースの異常検知を行う。
【0277】
(実施例C4)
次に、実施例C4を説明する。実施例C4は、構成情報推定システムをセキュリティ診断に活用する実施例である。図107は、実施例C4におけるシステム構成図である。
【0278】
図107に示すとおり、本システムは、自動車に接続される車両構成推定装置2、及び構成情報推定結果DB22に加えて、構成情報取得部30、セキュリティ診断部36、診断結果提示部37を備える。各部は、図示のとおりに接続されている。
【0279】
構成情報取得部30は、構成情報推定結果DB22から必要な構成情報を抽出し、セキュリティ診断部36に渡す。セキュリティ診断部36は受け取った構成情報を基に、自動車にセキュリティ的に問題のあるECUが存在しないか等の診断を行う。このとき、ECUのソフトウェアのサポート状況等の公開情報を利用して問題の有無を確認する。
【0280】
診断結果提示部37は、セキュリティ診断部36より診断結果を取得し、適宜加工(例えば診断結果を点数化する等)を施し管理者に結果を提示する。なお、管理者は人に限らず、管理情報を利用してさらに別の分析を行うプログラムでも良い。
【0281】
例えば、セキュリティ診断部36が使用する診断ルールには、脆弱性の確認されているECUのECU型番や、ソフトウェアのバージョン情報(ブラックリスト)が記録されている。セキュリティ診断部36は、診断ルールに格納されている車両構成情報(ブラックリスト)と構成情報推定結果DB22の車両構成情報を比較し、ブラックリストに該当する情報があれば、脆弱性を指摘する。
【0282】
(ハードウェア構成例)
第1の実施の形態で説明した診断通信送受信部100、診断系ログDB200、及び構成情報推定部300からなる装置、診断通信送受信部100と診断系ログDB200からなる装置、診断系ログDB200と構成情報推定部300からなる装置、診断通信送受信部100と構成情報推定部300からなる装置、診断通信送受信部100からなる装置、診断系ログDB200からなる装置、及び構成情報推定部300からなる装置はいずれも、例えば、コンピュータにプログラムを実行させることにより実現できる。このコンピュータは、物理的なコンピュータであってもよいし、クラウド上の仮想マシンであってもよい。
【0283】
また、第2の実施の形態で説明したシステム、装置、機能部についても、例えば、コンピュータにプログラムを実行させることにより実現できる。このコンピュータは、物理的なコンピュータであってもよいし、クラウド上の仮想マシンであってもよい。
【0284】
上記のプログラムが動作する主体を「装置」と呼ぶことにする。当該装置は、コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0285】
図108は、上記コンピュータのハードウェア構成例を示す図である。図108のコンピュータは、それぞれバスBSで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、入力装置1007、出力装置1008等を有する。なお、これらのうち、一部の装置を備えないこととしてもよい。例えば、表示を行わない装置は、表示装置1006を備えなくてもよい。
【0286】
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0287】
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、当該装置に係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられ、送信部及び受信部として機能する。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。
【0288】
(実施の形態の効果)
以上、説明したとおり、本発明の実施の形態では、各ECUにおいて標準的にサポートされている診断通信プロトコル(DoCAN、DoIP、UDS等)を用いた診断通信の送受信を行うことで車両構成情報の推定に有効な情報を収集し、収集した情報を分析することで車両構成情報の推定を行うこととした。これにより、車両構成情報の推定において、リソースの増強や新たなプロトコルのサポートを行う必要が無く、追加のコストを削減できる。
【0289】
(実施の形態のまとめ)
本明細書には、少なくとも下記各項のネットワーク構成推定装置、ネットワーク構成推定方法、及びプログラムが開示されている。
(第1項)
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置であって、
前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて、前記内部ネットワーク上の電子制御装置に対してメッセージを送信し、当該メッセージに対する応答を受信する診断通信送受信部と、
前記診断通信送受信部により得られた前記応答に基づいて、前記内部ネットワークの構成情報を推定する構成情報推定部と
を備えるネットワーク構成推定装置。
(第2項)
前記構成情報推定部は、
前記応答に基づいて、前記内部ネットワーク上の電子制御装置の存在を確認する存在確認部と、
前記存在確認部による電子制御装置の存在確認結果に基づいて、前記内部ネットワークのトポロジを推定するトポロジ推定部と、
前記応答に基づいて、前記内部ネットワーク上の電子制御装置に関する情報を抽出する情報抽出部と
を備える第1項に記載のネットワーク構成推定装置。
(第3項)
前記診断通信送受信部は、前記内部ネットワークにおける第1ネットワークと第2ネットワークのそれぞれにメッセージを送信し、その応答を受信し、
前記構成情報推定部は、前記第1ネットワークに送信したメッセージの応答により前記第1ネットワークに接続した電子制御装置の存在を確認し、前記第2ネットワークに送信したメッセージの応答により前記第2ネットワークに接続した電子制御装置の存在を確認する
第1項又は第2項に記載のネットワーク構成推定装置。
(第4項)
前記診断通信送受信部は、データIDを設定したメッセージを送信し、その応答を受信し、
前記構成情報推定部は、前記データIDを設定したメッセージに対する応答から、当該データIDに対応する情報を抽出する
第1項ないし第3項のうちいずれか1項に記載のネットワーク構成推定装置。
(第5項)
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置であって、
前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて、前記内部ネットワーク上の電子制御装置に対してメッセージを送信し、当該メッセージに対する応答を受信する装置により得られた前記応答に基づいて、前記内部ネットワークの構成情報を推定する構成情報推定部
を備えるネットワーク構成推定装置。
(第6項)
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置であって、
非輻輳時の状態において、前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて、前記内部ネットワーク上の第1電子制御装置のラウンドトリップタイムを算出するベースRTT算出部と、
第2電子制御装置に対して診断要求を高頻度で送信している輻輳時の状態において、前記第1電子制御装置のラウンドトリップタイムを算出する輻輳RTT算出部と、
前記非輻輳時の状態におけるラウンドトリップタイムと、前記輻輳時の状態におけるラウンドトリップタイムとを比較することにより、前記第1電子制御装置と前記第2電子制御装置が同一バスに接続されているか否かを推定する推定部と
を備えるネットワーク構成推定装置。
(第7項)
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置であって、
前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて、前記内部ネットワーク上の対象電子制御装置に再起動命令を送信する再起動命令送信部と、
前記再起動命令に起因して発生したアラートを前記内部ネットワークから受信するアラート受信部と、
前記アラートに含まれるIDを、前記対象電子制御装置が送信する通常通信のIDであると推定する推定部と
を備えるネットワーク構成推定装置。
(第8項)
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置であって、
前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて取得した対象電子制御装置の型番の全体、及び、当該型番における機能に関する桁を用いて、電子制御装置の機能を検索するWeb検索部と、
前記Web検索部により得られた検索結果に含まれる単語の支持度の和が最大となる機能を前記対象電子制御装置の機能と推定する推定部と
を備えるネットワーク構成推定装置。
(第9項)
対象装置における内部ネットワークの構成情報を推定するネットワーク構成推定装置が実行するネットワーク構成推定方法であって、
前記内部ネットワーク上の電子制御装置において標準的にサポートされる診断通信方法を用いて、前記内部ネットワーク上の電子制御装置に対してメッセージを送信し、当該メッセージに対する応答を受信するステップと、
前記応答に基づいて、前記内部ネットワークの構成情報を推定するステップと
を備えるネットワーク構成推定方法。
(第10項)
コンピュータを、第1項ないし第8項のうちいずれか1項に記載のネットワーク構成推定装置における各部として機能させるためのプログラム。
【0290】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0291】
本特許出願は2020年9月18日に出願した国際特許出願PCT/JP2020/035621に基づきその優先権を主張するものであり、国際特許出願PCT/JP2020/035621の全内容を本願に援用する。
【符号の説明】
【0292】
1 車載NW
2 構成要素推定部
3 ECU基本情報取得部
4 ECU機能推定部
6 Web検索部
7 Webサイト
8 検索結果DB
9 完全一致抽出部
10 特定部分一致抽出部
11 推定部
12 NW_Bトポロジ推定部
13 NW_Aバストポロジ推定部
14 ベースRTT算出部
15 輻輳RTT算出部
16 RTT比較部
17 推定部
18 正常NW_A通信推定部
19 再起動命令送信部
20 車両アラート受信部
21 推定部
22 構成情報推定結果DB
23 メッセージ送受信部
24 構成情報取得・登録部
30 構成情報取得部
31 セキュリティ分析部
32 分析結果提示部
33 アセット管理部
34 管理情報提示部
35 異常検知部
36 セキュリティ診断部
37 診断結果提示部
500 ECU
100 診断通信送受信部
200 診断系ログDB
300 構成情報推定部
310 ECU存在確認部
320 トポロジ推定部
330 ECU情報抽出部
340 出力部
400 自動車
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46
図47
図48
図49
図50
図51
図52
図53
図54
図55
図56
図57
図58
図59
図60
図61
図62
図63
図64
図65
図66
図67
図68
図69
図70
図71
図72
図73
図74
図75
図76
図77
図78
図79
図80
図81
図82
図83
図84
図85
図86
図87
図88
図89
図90
図91
図92
図93
図94
図95
図96
図97
図98
図99
図100
図101
図102
図103
図104
図105
図106
図107
図108