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

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

▶ NTTセキュリティ・ジャパン株式会社の特許一覧

特許7585569情報処理システム、情報処理方法、及びプログラム
<>
  • 特許-情報処理システム、情報処理方法、及びプログラム 図1
  • 特許-情報処理システム、情報処理方法、及びプログラム 図2
  • 特許-情報処理システム、情報処理方法、及びプログラム 図3
  • 特許-情報処理システム、情報処理方法、及びプログラム 図4
  • 特許-情報処理システム、情報処理方法、及びプログラム 図5
  • 特許-情報処理システム、情報処理方法、及びプログラム 図6
  • 特許-情報処理システム、情報処理方法、及びプログラム 図7
  • 特許-情報処理システム、情報処理方法、及びプログラム 図8
  • 特許-情報処理システム、情報処理方法、及びプログラム 図9
  • 特許-情報処理システム、情報処理方法、及びプログラム 図10
  • 特許-情報処理システム、情報処理方法、及びプログラム 図11
  • 特許-情報処理システム、情報処理方法、及びプログラム 図12
  • 特許-情報処理システム、情報処理方法、及びプログラム 図13
  • 特許-情報処理システム、情報処理方法、及びプログラム 図14
  • 特許-情報処理システム、情報処理方法、及びプログラム 図15
  • 特許-情報処理システム、情報処理方法、及びプログラム 図16
  • 特許-情報処理システム、情報処理方法、及びプログラム 図17
  • 特許-情報処理システム、情報処理方法、及びプログラム 図18
  • 特許-情報処理システム、情報処理方法、及びプログラム 図19
  • 特許-情報処理システム、情報処理方法、及びプログラム 図20
  • 特許-情報処理システム、情報処理方法、及びプログラム 図21
  • 特許-情報処理システム、情報処理方法、及びプログラム 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】情報処理システム、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06F 21/55 20130101AFI20241112BHJP
【FI】
G06F21/55 320
【請求項の数】 9
(21)【出願番号】P 2021030478
(22)【出願日】2021-02-26
(65)【公開番号】P2022131504
(43)【公開日】2022-09-07
【審査請求日】2024-01-29
(73)【特許権者】
【識別番号】515129744
【氏名又は名称】NTTセキュリティ・ジャパン株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】千葉 靖伸
【審査官】岸野 徹
(56)【参考文献】
【文献】国際公開第2020/075808(WO,A1)
【文献】特開2010-152773(JP,A)
【文献】特開2020-119090(JP,A)
【文献】特開2019-050477(JP,A)
【文献】欧州特許出願公開第03490223(EP,A1)
【文献】国際公開第2020/189669(WO,A1)
【文献】欧州特許出願公開第3490223(EP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
車両に搭載されるネットワーク、及び前記ネットワークを介して通信を行う複数の構成要素を含むシステムのログデータを取得する取得部と、
前記車両で攻撃が検知された場合、前記車両に対応する前記ネットワークに含まれる前記構成要素の間の通信パターンの情報を含むネットワーク構成情報を取得する構成情報取得部と、
前記取得部が取得したログデータに基づいて、前記攻撃に関連する前記構成要素を特定する構成要素特定部と、
前記通信パターンの情報を用いて、前記攻撃の進行方向を特定する攻撃経路特定部と、
前記攻撃の進行方向に基づいて、前記攻撃関連する前記構成要素をノードとし、前記攻撃に関連するノード間の通信経路をリンクとした有向グラフで、前記攻撃の進行方向を示す1つ以上の攻撃経路の情報を出力する出力部と、
を有する、情報処理システム。
【請求項2】
記取得部が取得した前記ログデータから、前記攻撃に関連するログデータを抽出する関連ログ抽出部を有し、
前記構成要素特定部は、前記攻撃に関連するログデータから、前記攻撃に関連する前記構成要素を特定する、請求項1に記載の情報処理システム。
【請求項3】
前記ネットワーク構成情報は、前記ネットワークのトポロジの情報を含む、請求項に記載の情報処理システム。
【請求項4】
記ネットワークのトポロジの情報を用いて、前記攻撃の経路に関連する前記構成要素の間の接続関係を特定する、請求項に記載の情報処理システム。
【請求項5】
前記ネットワーク構成情報は、前記ネットワークに含まれる各構成要素に接続する通信路の情報を含む、請求項乃至のいずれか一項に記載の情報処理システム。
【請求項6】
前記ネットワーク構成情報は、前記ネットワークに接続する前記複数の構成要素に対応する通信アドレス、又は識別情報の情報を含む、請求項乃至のいずれか一項に記載の情報処理システム。
【請求項7】
記1つ以上の攻撃経路の情報は、当該攻撃経路に含まれる電子制御装置の情報を含む、請求項1乃至のいずれか一項に記載の情報処理システム。
【請求項8】
情報処理システムが、
車両に搭載されるネットワーク、及び前記ネットワークを介して通信を行う複数の構成要素を含むステムのログデータを取得するログデータ取得処理と、
前記車両で攻撃が検知された場合、前記車両に対応する前記ネットワークに含まれる前記構成要素の間の通信パターンの情報を含むネットワーク構成情報を取得する処理と、
前記ログデータ取得処理で取得したログデータに基づいて、前記攻撃に関連する前記構成要素を特定する処理と、
前記通信パターンの情報を用いて、前記攻撃の進行方向を特定する処理と、
前記攻撃の進行方向に基づいて、前記攻撃関連する前記構成要素をノードとし、前記攻撃に関連するノード間の通信経路をリンクとした有向グラフで、前記攻撃の進行方向を示す1つ以上の攻撃経路の情報を出力する処理と、
を実行する、情報処理方法。
【請求項9】
請求項に記載の情報処理方法を情報処理システムに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
自動車等の車両に搭載されたセキュリティセンサからの出力データを解析することで、サイバー攻撃等の攻撃を検知し、その影響範囲等を特定する車両用のSOC(Security Operation Center)を実現する技術がある。
【0003】
例えば、SOCサーバにおいて、車載ネットワークから送信されるログデータに基づいて、異常動作を検知して、影響の範囲、危険の度合い、脅威の種別又は原因等を推定し、車両に対応指示を送信するシステムが知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2020-119090号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
サイバー攻撃等の攻撃に対して対策を行うためには、複数の段階から構成される攻撃において、当該攻撃に加担又は関与したシステムの構成要素を特定した上で、(当該構成要素の特徴から導き出せる)攻撃により発生し得る事象を明確化することが望ましい。特に、多数の構成要素から構成される車両のようなシステムでは、攻撃に加担又は関与したシステムの構成要素を特定せずに、攻撃が成功した要因や攻撃により発生しうる事象を明確化することは困難である。
【0006】
特許文献1には、例えば、異常動作を示すログデータを発生した装置と同一のバス上に接続されている装置を、異常動作が及ぼす影響の範囲として推定すること等が開示されているが、これだけでは、攻撃に加担又は関与した装置を推定することは困難である。
【0007】
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、ネットワーク、及びネットワークを介して通信を行う複数の構成要素を含むシステムにおいて、攻撃を検知したときに、攻撃に加担又は関与した構成要素を推定することを容易にする。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明の一実施形態に係る情報処理システムは、車両に搭載されるネットワーク、及び前記ネットワークを介して通信を行う複数の構成要素を含むシステムのログデータを取得する取得部と、前記車両で攻撃が検知された場合、前記車両に対応する前記ネットワークに含まれる前記構成要素の間の通信パターンの情報を含むネットワーク構成情報を取得する構成情報取得部と、前記取得部が取得したログデータに基づいて、前記攻撃に関連する前記構成要素を特定する構成要素特定部と、前記通信パターンの情報を用いて、前記攻撃の進行方向を特定する攻撃経路特定部と、前記攻撃の進行方向に基づいて、前記攻撃関連する前記構成要素をノードとし、前記攻撃に関連するノード間の通信経路をリンクとした有向グラフで、前記攻撃の進行方向を示す1つ以上の攻撃経路の情報を出力する出力部と、を有する。

【発明の効果】
【0009】
本発明の一実施形態によれば、ネットワーク、及びネットワークを介して通信を行う複数の構成要素を含むシステムにおいて、攻撃を検知したときに、攻撃に加担又は関与した構成要素を推定することが容易になる。
【図面の簡単な説明】
【0010】
図1】一実施形態に係る情報処理システムの全体構成の例を示す図である。
図2】一実施形態に係る車載ネットワークの構成の一例を示す図である。
図3】一実施形態に係るコンピュータのハードウェア構成の例を示す図である。
図4】一実施形態に係るSOCサーバの機能構成の例を示す図である。
図5】一実施形態に係る推定部の機能構成の例を示す図である。
図6】一実施形態に係るネットワーク構成情報の例を示す図(1)である。
図7】一実施形態に係るネットワーク構成情報の例を示す図(2)である。
図8】一実施形態に係るネットワーク構成情報の例を示す図(3)である。
図9】一実施形態に係るネットワーク構成情報の例を示す図(4)である。
図10】一実施形態に係るネットワーク構成情報の例を示す図(5)である。
図11】一実施形態に係るログデータの例を示す図である。
図12】一実施形態に係るSOCサーバの処理の例を示すフローチャートである。
図13】一実施形態に係る関連ログ抽出処理の例を示すフローチャートである。
図14】一実施形態に係る関連ログ抽出処理について説明するための図である。
図15】一実施形態に係るログデータの関連付け処理の例を示すフローチャートである。
図16】一実施形態に係る間接比較による抽出処理について説明するための図である。
図17】一実施形態に係る構成要素の特定処理の例を示すフローチャートである。
図18】一実施形態に係る構成要素の特定処理について説明するための図である。
図19】一実施形態に係る接続関係の特定処理の例を示すフローチャートである。
図20】一実施形態に係る接続関係の特定処理について説明するための図である。
図21】一実施形態に係る攻撃経路の特定処理の例を示すフローチャートである。
図22】一実施形態に係る攻撃経路の特定処理について説明するための図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施形態を説明する。なお、以下で説明する実施形態は一例であり、本発明が適用される実施の形態は、以下の実施の形態に限られない。
【0012】
<全体構成>
図1は、一実施形態に係る情報処理システムの全体構成の例を示す図である。情報処理システム1は、例えば、通信ネットワークを介して、互いに通信可能なSOC(Security Operation Center)サーバ10、及びSIRT(Security Incident Response Team)サーバ40等を有する。
【0013】
SOCサーバ10は、コンピュータの構成を有する情報処理装置、又は複数の情報処理装置を含むシステムである。SOCサーバ10は、例えば、自動車等の車両20が送信する車載ネットワーク100のログデータを取得し、取得したログデータを用いて、車両20に対するサイバー攻撃の検知、及び攻撃経路の特定等を行う車両用のセキュリティ監視を行う。例えば、SOCサーバ10は、車両20に対するサイバー攻撃(以下、単に「攻撃」と呼ぶ)を検知した場合、攻撃を検知したことを示す情報、及び1つ以上の攻撃経路の情報を含むレポートをSIRTサーバ40等に送信する。
【0014】
ここで、攻撃経路とは、検知した攻撃の経路に関連する、車載ネットワーク100の構成要素、当該構成要素間の接続関係、又は攻撃の進行方向等を表す。好ましくは、攻撃経路は、攻撃の進行を、車載ネットワーク100に接続する構成要素をノード、通信経路をリンクとした有向グラフで表現したものである。ただし、これに限られず、攻撃経路は、方向を含まない無向グラフで表現したものであっても良いし、攻撃に加担、又は関与した構成要素を列挙したもの等であっても良い。
【0015】
SOCサーバ10は、1つ以上の車両20が送信するログデータ31を、1つ以上の車両20から収集するログサーバ30等から取得する。ただし、これに限られず、SOCサーバ10は、1つ以上の車両20が送信するログデータ31を、移動通信ネットワークを介して、1つ以上の車両20から取得しても良い。例えば、ログサーバ30の機能は、SOCサーバ10が有していても良い。
【0016】
また、SOCサーバ10は、例えば、Auto-ISAC(Automotive Information Sharing and Analysis Center)等が運用する外部サーバ50から、インターネット等の通信ネットワークを介して、セキュリティ情報51を取得することができる。このセキュリティ情報51には、例えば、コネクテッドカー関連のサイバー脅威、及び潜在的な脆弱性等の様々なサイバーセキュリティ情報が含まれる。
【0017】
SOCサーバ10は、取得したログデータ31、及びセキュリティ情報51に基づいて、車両20に対する攻撃を検知しても良いし、車両20、又はログサーバ30等から通知される攻撃検知通知等によって車両20に対する攻撃を検知しても良い。
【0018】
また、SOCサーバ10は、車両20に対する攻撃を検知したときに、取得したセキュリティ情報51、又はSIRTサーバ40からの指示等に基づいて、車両20に対する暫定処置を実施する機能を有していても良い。
【0019】
SIRTサーバ40は、コンピュータの構成を有する情報処理装置、又は複数の情報処理装置を含むシステムである。SIRTサーバ40は、例えば、車両メーカ、又は車載装置メーカ等が、自社が製造、販売した製品の安全を確保するために、製品の安全性を脅かす外的脅威に対するセキュリティ対応を行う組織(SIRT)が運用するサーバである。なお、SIRTは、PSIRT(Product Security Incident Response Team)とも呼ばれる。
【0020】
SIRTサーバ40は、例えば、SOCサーバ10が送信するセキュリティに関するレポートに基づいてメーカごとに決定された対応方針等が入力された場合、当該対応方針を含む恒久処置を、車両20に実施する機能を有する。また、SIRTサーバ40は、外部サーバ50とセキュリティ情報51を共有し、セキュリティ情報51に基づいて、車両20に対する暫定処置を、SOCサーバ10、又は車両20に指示する機能を有していても良い。
【0021】
(車載ネットワークの例)
図2は、一実施形態に係る車載ネットワークの一例を示している。なお、車両20に搭載される車載ネットワーク100の構成は、車両メーカによって異なるため、図2に示す車載ネットワーク100の構成は、あくまで一例である。
【0022】
図2の例では、車載ネットワーク100は、情報系NW(ネットワーク)210、駆動系NW220、シャーシ系NW230、ボディ系NW240、・・・等の複数のネットワーク、外部通信装置260、ODB-2コネクタ270、及びゲートウェイ200等を含む。
【0023】
情報系NW210は、例えば、イーサネット(登録商標)、又はCAN(Control Area Network)(登録商標)、MOST(Media Oriented Systems Transport)(登録商標)等のバス(通信路)211に接続する1つ以上のECU(Electronic Control Unit)を含む。ECUは、所定のプログラムを実行することにより、所定の制御機能を実現する電子制御装置である。情報系NW210に接続されるECU201a、201bには、例えば、車両20内において、情報の提供と、娯楽の提供を実現するIVI(In-Vehicle Infotainment)等の車載装置が含まれる。IVIは、例えば、カーナビゲーション、オーディオ、ビデオプレーヤ、及び車両の設定等の機能に加え、例えば、USB(Universal Serial Bus)、Bluetooth(登録商標)、無線LAN(Local Area Network)等による通信機能を有している。
【0024】
駆動系NW220は、例えば、CAN、又はFlexRay(登録商標)等のバス(通信路)221に接続する1つ以上のECU250c、250d等を含む。駆動系NW220に接続されるECU250c、250dには、例えば、センサ、及びアクチュエータ等が接続され、所定のプログラムの実行することにより、エンジン、ブレーキ、又はモータ等を制御する。
【0025】
シャーシ系NW230は、例えば、CAN、又はFlexRay等のバス(通信路)231に接続する1つ以上のECU250e、250f等を含む。シャーシ系NW230に接続されるECU250e、250fには、例えば、センサ、及びアクチュエータ等が接続され、所定のプログラムを実行することにより、ステアリング、又はサスペンション等を制御する。
【0026】
ボディ系NW240は、例えば、CAN、又はLIN(Local Interconnect Network)等のバス(通信路)241に接続する1つ以上のECU250g、250h等を含む。ボディ系NW240に接続されるECU250g、250hには、例えば、センサ、及びアクチュエータ等が接続され、所定のプログラムを実行することにより、主にエアコン、ドア、ランプ等の内装品を制御する。なお、以下の説明において、ECU250a~250hのうち、任意のECUを示す場合、「ECU250」を用いる。
【0027】
外部通信装置260は、例えば、イーサネット等のネットワーク(通信路)265で、ゲートウェイ200に接続される移動通信装置261、及びV2X(Vehicle-to-Everything)通信装置262等を含む。移動通信装置261は、例えば、LTE(Long Term Evolution)、又は5G(5th Generation)等の移動通信ネットワーク201を介して、通信ネットワーク202に接続し、ログサーバ30、SOCサーバ10、又はSIRTサーバ40等と通信を行う。V2X通信装置262は、例えば、DSRC(Dedicated Short Range Communications)通信、又はセルラーV2X通信等により、車車間通信、路車間通信、又は歩車間通信等を行う。
【0028】
OBD-2コネクタ270は、車載ネットワーク100に、故障診断を行う診断装置等を接続するためのコネクタである。
【0029】
ゲートウェイ200は、情報系NW210、駆動系NW220、シャーシ系NW230、ボディ系NW240、外部通信装置260、及びOBD-2コネクタ270に接続され、ネットワーク間のデータ転送、及びプロトコル変換等を行う中継装置である。
【0030】
なお、ゲートウェイ200、移動通信装置261、及びV2X通信装置262等は、例えば、ECU250によって実現されるものであっても良い。また、以下の説明において、複数のECU250、ゲートウェイ200、移動通信装置261、V2X通信装置262、及びOBD-2コネクタ270等、車載ネットワーク100を介して通信する構成要素を、単に「構成要素」と呼ぶ場合がある。
【0031】
(ログデータについて)
車載ネットワーク100に含まれるゲートウェイ200、外部通信装置260、及びECU250等の構成要素は、自己の動作履歴等を示すログデータを継続的に取得し、取得したログデータを、ログサーバ30等に送信する機能を有している。
【0032】
例えば、ゲートウェイ200には、ファイアウォール、IDS(Intrusion Detection System)、アンチウィルス、メッセージフィルタ、又はエラーセンサ等のセキュリティセンサが実装されている。ゲートウェイ200は、これらのセキュリティセンサで所定イベント(例えば、エラー等)が発生すると、発生したイベントの情報を含むログデータを生成し、生成したログデータを所定のタイミングでログサーバ30等に送信する。
【0033】
同様に、外部通信装置260、及びECU250にも、例えば、ファイアウォール、IDS、アンチウィルス、メッセージフィルタ、又はエラーセンサ等のセキュリティセンサが実装されている。外部通信装置260、及びECU250は、これらのセキュリティセンサで所定イベント(例えば、エラー等)が発生すると、発生したイベントの情報を含むログデータを生成し、生成したログデータを所定のタイミングでログサーバ30等に送信する。
【0034】
なお、車載ネットワーク100の移動通信装置261は、生成されたログデータを記憶部等に記憶しておき、所定のタイミングで、記憶部等に記憶したログデータを、ログサーバ30等にまとめて送信しても良い。
【0035】
(処理の概要)
例えば、車載ネットワーク100に対する攻撃に対して対策を行うためには、複数の段階から構成される攻撃において、当該攻撃に加担又は関与したシステムの構成要素を特定した上で、攻撃により発生し得る事象を明確化することが望ましい。特に、図2に示すように複数のネットワーク、及び通信プロトコルを含む車載ネットワーク100等では、攻撃に加担又は関与したシステムの構成要素を特定せずに、攻撃が成功した要因や攻撃により発生しうる事象を明確化することは困難である。
【0036】
特許文献1には、例えば、異常動作を示すログデータを発生した装置と同一のバス上に接続されている装置を、異常動作が及ぼす影響の範囲として推定すること等が開示されている。しかし、この方法では、例えば、図2の情報系NW210で、エラーが検知された場合、情報系NW210のバス211に接続されているECU250a、250b、・・・等が列挙されるだけであり、攻撃に加担又は関与したシステムの構成要素を特定することはできない。
【0037】
そこで、本実施形態に係るSOCサーバ10は、例えば、図2に示すような車載ネットワーク100において、攻撃が検知されたときに、当該攻撃が可能な攻撃経路を列挙する機能を有している。
【0038】
例えば、SOCサーバ10は、例えば、図2に示すような車載ネットワーク100のネットワーク構成に関するネットワーク構成情報を、記憶部等に予め記憶しておく。或いは、SOCサーバ10は、車載ネットワーク100のネットワーク構成情報を、車両20、又は外部サーバ50等から取得するものであっても良い。
【0039】
また、SOCサーバ10は、車載ネットワーク100で攻撃が検知された場合、車載ネットワーク100のログデータとネットワーク構成情報とに基づいて、攻撃の経路に関連する構成要素の情報を含む1つ以上の攻撃経路の情報を出力する。好ましくは、SOCサーバ10は、攻撃に関連する構成要素をノードとし、攻撃に関連するノード間の通信経路をリンクとした有向グラフで、攻撃経路の情報を出力する。なお、攻撃経路の情報を出力する方法については、具体的な実施形態を例示して後述する。
【0040】
これにより、本実施形態に係る情報処理システム1によれば、ネットワーク、及びネットワークを介して通信を行う複数の構成要素を含む車載ネットワーク100において、攻撃を検知したときに、攻撃に加担又は関与した構成要素を推定することが容易になる。
【0041】
なお、本実施形態は、車載ネットワーク100と同様に、ネットワーク構成情報を特定可能な他の情報処理システムにも適用することができる。
【0042】
<ハードウェア構成>
図2のECU250、ゲートウェイ200、移動通信装置261、及びV2X通信装置262等は、例えば、図3に示すようなコンピュータ300のハードウェア構成を有している。また、図1のSOCサーバ10、SIRTサーバ40、ログサーバ30、及び外部サーバ50等は、例えば、1つ以上のコンピュータ300によって構成される。
【0043】
図3は、一実施形態に係るコンピュータのハードウェア構成の例を示す図である。コンピュータ300は、例えば、CPU(Central Processing Unit)301、メモリ302、ストレージデバイス303、ネットワークI/F(Interface)304、及び内部バス305等を有している。また、コンピュータ300は、外部接続I/F306、出力装置307、入力装置308、又は通信装置309等を、さらに有していても良い。
【0044】
CPU301は、例えば、メモリ302、又はストレージデバイス303等の記憶媒体に記憶したプログラムを実行することにより、様々な機能を実現するプロセッサである。メモリ302には、CPU301が一時的な記憶領域として利用する揮発性のメモリであるRAM(Random Access Memory)、及びCPU301の起動用のプログラム等を記憶する不揮発性のメモリであるROM(Read Only Memory)等が含まれる。ストレージデバイス303は、例えば、SSD(Solid State Drive)、又はHDD(Hard Disk Drive)等の大容量の記憶デバイスである。ネットワークI/F304は、コンピュータ300を通信ネットワーク202、又は車載ネットワーク100等のネットワークに接続する1つ以上のインタフェースを含む。
【0045】
外部接続I/F306は、コンピュータ300に外部装置を接続するためのインタフェースである。外部接続I/F306には、例えば、センサ、アクチュエータ、情報端末、又は外部メモリ等の様々なデバイスが接続され得る。出力装置307は、外部への出力を行う出力デバイス(例えば、ディスプレイ、スピーカ、又はランプ等)である。入力装置308は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、又はセンサ等)等である。なお、入力装置308と出力装置307は、一体となった入出力装置(例えば、タッチパネルディスプレイ等)であっても良い。通信装置309は、例えば、LTE、5G等の移動通信、無線LAN通信、又はBluetooth等の近距離無線通信等の様々な通信を行う通信デバイスである。内部バス305は、上記の各構成要素に共通に接続され、例えば、アドレス信号、データ信号、及び各種の制御信号等を伝送する。
【0046】
<機能構成>
(SOCサーバの機能構成)
図4は、一実施形態に係るSOCサーバの機能構成の例を示す図である。SOCサーバ10は、SOCサーバ10が備える1つ以上のコンピュータ300で所定のプログラムを実行することにより、取得部401、推定部402、及び出力部403等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【0047】
また、SOCサーバ10は、一例として、図3のストレージデバイス303等の記憶部に、ネットワーク構成情報410を記憶している。また、別の一例として、ネットワーク構成情報410は、SOCサーバ10の外部のストレージサーバ等に記憶しているものであっても良い。
【0048】
取得部401は、1つ以上の車両20の車載ネットワーク100が送信するログデータ31を、例えば、ログサーバ30等から取得する取得処理を実行する。なお、車載ネットワーク100は、ネットワーク、及び前記ネットワークを介して通信を行う複数の構成要素を含むシステムの一例である。
【0049】
出力部403は、車載ネットワーク100で攻撃が検知された場合、取得部401が取得したログデータと、ネットワーク構成情報410とに基づいて、攻撃の経路に関連する構成要素の情報を含む1つ以上の攻撃経路の情報を出力する出力処理を実行する。
【0050】
推定部402は、取得部401が取得したログデータ31のうち、所定の期間のログデータを関連付けることにより、攻撃の経路に関連する構成要素の情報を含む1つ以上の攻撃経路を推定する推定処理を実行する。
【0051】
上記の構成により、出力部403は、例えば、推定部402が、ログデータ31とネットワーク構成情報410とに基づいて推定した、1つ以上の攻撃経路の情報を含むレポートを、SIRTサーバ40等に出力する。
【0052】
なお、図4に示すSOCサーバ10の機能構成は一例である。例えば、推定部402の機能は、出力部403に含まれていても良い。また、SOCサーバ10は、ログデータ31に基づいて、攻撃を検知する機能を有し、外部からの攻撃検知通知によらずに、車載ネットワーク100に対する攻撃を検知しても良い。さらに、推定部402は、SOCサーバの外部(例えば、外部サーバ50、又は車両20等)から、攻撃が検知された車両20に対応するネットワーク構成情報のみを取得するものであっても良い。
【0053】
変形例として、出力部403は、攻撃を受けた車両20のネットワーク構成情報、及びログデータを学習データとし、攻撃経路の情報を教師データとして予め機械学習した推定モデル等を用いて、1つ以上の攻撃経路の情報を推定し、出力しても良い。この場合、SOCサーバ10は、攻撃が検知された車両20のネットワーク構成情報、及びログデータを、学習済の推定モデルに入力することにより、1つ以上の攻撃経路の情報を取得することができるので、推定部402を有していなくても良い。
【0054】
(推定部の機能構成)
図5は、一実施形態に係る推定部の機能構成の例を示す図である。推定部402は、例えば、構成情報取得部501、関連ログ抽出部502、構成要素特定部503、接続関係特定部504、及び攻撃経路特定部505等を有する。
【0055】
構成情報取得部501は、例えば、SOCサーバ10が備えるストレージデバイス303等に予め記憶したネットワーク構成情報410から、攻撃が検知された車両20に対応するネットワーク構成情報を取得する。なお、構成情報取得部501は、例えば、外部サーバ50、又は車両20等から、攻撃が検知された車両20に対応するネットワーク構成情報を取得するものであっても良い。
【0056】
ネットワーク構成情報410には、例えば、図4に示すように、トポロジ情報DB(Database)411、ネットワーク情報DB412、アプリケーション情報DB413、ECU情報DB414、及び通信パターンDB415等が含まれる。
【0057】
図6~10は、一実施形態に係るネットワーク構成情報の例を示す図である。図6(A)は、一実施形態に係るトポロジ情報DB411の一例のイメージを示している。トポロジ情報DB411には、複数の車両20の車載ネットワーク100のトポロジ情報が記憶されている。
【0058】
図6(A)の例では、トポロジ情報DB411には、項目として、車両識別番号、ノードX、ノードYの情報が含まれる。車両識別番号は、車両20を識別する識別情報であり、例えば、VIN(Vehicle Identification Number)等を適用することができる。ノードXは、接続元の構成要素(ECU等)、ノードYは、接続先の構成要素を示す。
【0059】
図6(A)に示すトポロジ情報DB411において、車両識別番号「JP000000000000001」の車両20の車載ネットワーク100は、図6(B)に示すように、ノードX「TCU601」がノードY「CGW602」に接続されていることが示されている。同様に、ノードX「CGW602」が、2つのノードY「IVI603」、及び「ENGINE604」に接続されていることが示されている。
【0060】
なお、トポロジ情報DB411は、図6(B)のように、TCU601、CGW602、IVI603、ENGINE604等の構成要素をノードとし、構成要素間の接続関係をリンク611、612、613で表すグラフ形式で記憶されていても良い。
【0061】
図7(A)、(B)は、一実施形態に係るネットワーク情報DB412の一例のイメージを示している。ネットワーク情報DB412には、複数の車両20の車載ネットワーク100に含まれる各ECU(構成要素の一例)に接続する通信路の情報が記憶されている。
【0062】
図7(A)の例では、ネットワーク情報DB412-1には、項目として、車両識別番号、ECU、Ethernet(登録商標)インタフェース、及びEthernetセグメント等の情報が含まれる。車両識別番号は、前述したように車両20を識別する識別情報である。ECUは、車載ネットワーク100に接続する構成要素の名称、又は識別情報である。Ethernetインタフェースは、各構成要素が持つイーサネットインタフェースの名称、又は識別情報である。Ethernetセグメントは、各構成要素がイーサネットインタフェースを介して接続するイーサネットセグメント(イーサネットインタフェースにおいて通信が行われる物理ネットワークの最小単位)の名称、又は識別情報である。
【0063】
図7(A)に示すネットワーク情報DB412-1には、例えば、車両識別番号「JP000000000000001」の車両20のECU「TCU」のEthernetインタフェース「eth0」がEthernetセグメント「Ethernet-0」に接続されていることが示されている。同様に、ECU「CGW」のEthernetインタフェース「eth0」がEthernetセグメント「Ethernet-0」に接続されていること等が示されている。
【0064】
図7(B)の例では、ネットワーク情報DB412-2には、項目として、車両識別番号、ECU、CANインタフェース、及びCANバス等の情報が含まれる。車両識別番号は、前述したように車両20を識別する識別情報である。ECUは、車載ネットワーク100に接続する構成要素の名称、又は識別情報である。CANインタフェースは、各構成要素が持つCANインタフェースの名称、又は識別情報である。CANバスは、各構成要素がCANインタフェースを介して接続するCANバスの名称、又は識別情報である。
【0065】
図7(B)に示すネットワーク情報DB412-2には、例えば、車両識別番号「JP000000000000001」の車両20のECU「CGW」、及び「IVI」のCANインタフェース「can0」がCANバス「CAN-0」に接続されていること等が示されている。また、ECU「CGW」のCANインタフェース「can1」がCANバス「CAN-1」も接続され、ECU「ENGINE」のCANインタフェース「can0」がCANバス「CAN-1」に接続されていること等が示されている。このように、ネットワーク情報DB412は、複数のネットワーク情報DB412-1、412-2によって構成されていても良い。
【0066】
図8(A)、(B)は、一実施形態に係るアプリケーション情報DB413の一例のイメージを示している。アプリケーション情報DB413には、複数の車両20の車載ネットワーク100に含まれる各アプリケーション(構成要素の別の一例)に対応する通信路の情報、及び識別情報等が記憶されている。
【0067】
図8(A)の例では、アプリケーション情報DB413-1には、項目として、車両識別番号、Ethernetセグメント、アプリケーション識別子、及びアプリケーション等の情報が含まれる。車両識別番号は、前述したように車両20を識別する識別情報である。Ethernetセグメントは、アプリケーションを実行するECUが接続されているイーサネットセグメントの名称、又は識別情報等を示す情報である。アプリケーション識別情報は、アプリケーションを識別する識別情報である。アプリケーションは、アプリケーションの名称、又は機能等を示す情報である。
【0068】
図8(A)に示すアプリケーション情報DB413-1には、例えば、車両識別番号「JP000000000000001」の車両20でアプリケーション「渋滞情報通知」を実行するECUが、Ethernetセグメント「Ethernet-0」に接続されていること等が示されている。
【0069】
図8(B)の例では、アプリケーション情報DB413-2には、項目として、車両識別番号、CANバス、CAN ID、アプリケーション等の情報が含まれる。車両識別番号は、前述したように車両20を識別する識別情報である。CANバスは、アプリケーションを実行するECUが接続されているCANバスの名称、又は識別情報等を示す情報である。CAN IDは、アプリケーションが利用するCAN IDを示す情報である。なお、CAN IDは、CANバスで送信されるデータに含まれる、データ内容、及び送信先のノード等を示す識別子である。アプリケーションは、アプリケーションの名称、又は機能等を示す情報である。
【0070】
図8(B)に示すアプリケーション情報DB413-2には、車両識別番号「JP000000000000001」の車両20でアプリケーション「回転数通知」を実行するECUが、CANバス「CAN-0」に接続され、CAN ID「0x192」を用いること等が示されている。このように、アプリケーション情報DB413は、複数のアプリケーション情報DB413-1、413-2によって構成されていても良い。
【0071】
図9(A)、(B)は、一実施形態に係るECU情報DB414の一例のイメージを示している。ECU情報DB414には、複数の車両20の車載ネットワークに含まれる各構成要素に対応する通信アドレス、又は識別情報等が記憶されている。
【0072】
図9(A)の例では、ECU情報DB414-1には、項目として、車両識別番号、MACアドレス、及びECU等の情報が含まれる。車両識別番号は、前述したように車両20を識別する識別情報である。MAC(Media Access Control address)アドレスは、ECUに割り当てられたMACアドレスを示す情報である。ECUは、車載ネットワーク100に接続するECU(構成要素の一例)の名称、又は識別情報等を示す情報である。
【0073】
図9(A)に示すECU情報DB414-1には、例えば、車両識別番号「JP000000000000001」の車両20におけるECU「TCU」のMACアドレスが「02:00:00:00:01:01」であること等が示されている。
【0074】
図9(B)の例では、ECU情報DB414-2には、項目として、車両識別番号、IPアドレス、及びECU等の情報が含まれる。車両識別番号は、前述したように車両20を識別する識別情報である。IP(Internet Protocol)アドレスは、ECU割り当てられたIPアドレスを示す情報である。ECUは、車載ネットワーク100に接続するECU(構成要素の一例)の名称、又は識別情報等を示す情報である。
【0075】
図9(B)に示すECU情報DB414-2には、例えば、車両識別番号「JP000000000000001」の車両20におけるECU「CGW」のIPアドレスが「192.168.0.2」であること等が示されている。このように、ECU情報DB414は、複数のECU情報DB414-1、414-2によって構成されていても良い。
【0076】
図10(A)、(B)は、一実施形態に係る通信パターン情報DB415の一例のイメージを示している。通信パターン情報DB415には、複数の車両20の車載ネットワークに含まれる構成要素間の通信パターンの情報が記憶されている。
【0077】
図10(A)の例では、通信パターン情報DB415-1には、項目として、車両識別番号、CANバス、CAN ID、及び受信ECU等の情報が含まれる。車両識別番号は、前述したように、車両20を識別する識別情報である。CANバスは、受信ECUが接続するCANバスの名称、又は識別情報等を示す情報である。CAN IDは、受信ECUが受信するCANデータのCAN IDを示す情報である。受信ECUは、CANデータを受信するECUの名称、又は識別情報等を示す情報である。
【0078】
図10(A)に示す通信パターン情報DB415-1には、例えば、車両識別番号「JP000000000000001」の車両20において、CANバス「CAN-0」のCAN ID「0x192」のデータを受信する受信ECUが「IVI」であること等が示されている。
【0079】
図9(B)の例では、通信パターン情報DB415-2には、項目として、車両識別番号、送信元IPアドレス、宛先IPアドレス、IPプロトコル、送信元ポート番号、及び宛先ポート番号等の情報が含まれている。車両識別番号は、前述したように、車両20を識別する識別情報である。送信元IPアドレスは、送信元の構成要素のIPアドレスである。宛先IPアドレスは、宛先の構成要素のIPアドレスである。IPプロトコルは、例えば、UDP(User Datagram Protocol)、又はTCP(Transmission Control Protocol)等の通信プロトコルを示す情報である。送信元ポート番号は、送信元のポート番号を示す情報である。宛先ポート番号は、宛先のポート番号を示す情報である。
【0080】
図10(B)に示す通信パターン情報DB415-2には、例えば、車両識別番号「JP000000000000001」の車両20において、送信元IPアドレス「192.168.0.1」、宛先IPアドレス「192.168.0.2」で送信される通信パターンがあることが示されている。また、当該通信パターンでは、IPプロトコル「UDP」、及び宛先ポート番号「31000」で通信が行われること等が示されている。このように、通信パターン情報DB415は、複数の通信パターン情報DB415-1、415-2によって構成されていても良い。
【0081】
ここで、図5に戻り、推定部402の機能構成の説明を続ける。
【0082】
構成情報取得部501は、例えば、図6~10で説明したネットワーク構成情報410のうち、攻撃が検知された車両20の車両識別番号に対応するネットワーク構成情報を取得する。
【0083】
関連ログ抽出部502は、取得部401が取得したログデータ31から、検知された攻撃に関連するログデータを抽出する。例えば、関連ログ抽出部502は、取得部401が取得したログデータ31から、攻撃が検知された車両20の車両識別番号に対応するログデータを取得する。また、関連ログ抽出部502は、攻撃が検知された車両20の車両識別番号に対応するログデータから、予め設定された所定の期間のログデータを取得する。
【0084】
好ましくは、関連ログ抽出部502は、構成情報取得部501が取得したネットワーク構成情報を用いて、抽出した複数のログデータを関連付ける。例えば、関連ログ抽出部502は、抽出した複数のログデータを、比較可能と予め定義した項目を直接、又は間接的に比較することにより、検知された攻撃に関連するログデータを抽出する。
【0085】
構成要素特定部503は、関連ログ抽出部502が抽出したログデータから、検知された攻撃に関連する構成要素(ECU等)を特定する構成要素特定処理を実行する。
【0086】
接続関係特定部504は、構成情報取得部501が取得したネットワーク構成情報に含まれるトポロジ情報を用いて、構成要素特定部503が特定した構成要素間の接続関係を特定する接続特定処理を実行する。
【0087】
攻撃経路特定部505は、構成情報取得部501が取得したネットワーク構成情報に含まれる通信パターン情報、及びログデータの検知日時等を用いて、接続関係特定部504が特定した接続関係における攻撃の進行方向を特定する攻撃経路の特定処理を実行する。なお、構成要素特定部503が実行する構成要素の特定処理、接続関係特定部504が実行する接続関係の特定処理、及び攻撃経路特定部505が実行する攻撃経路の特定処理については、具体的な実施形態を例示して後述する。
【0088】
(ログデータの例)
図11は、一実施形態に係るログデータの例を示す図である。図11の例では、ログデータ31には、項目として、検知日時、車両識別情報、センサ名、ECU名、入力インタフェース名、出力インタフェース名、送信元MACアドレス、送信先MACアドレス、アプリケーション識別子、CAN ID、及び検知イベント等の情報が含まれる。
【0089】
検知日時は、予め定められた検知イベントが検知された日時を示す情報である。車両識別番号は、当該検知イベントが検知された車両20の車両識別番号を示す情報である。センサ名は、当該検知イベントを検知したセキュリティセンサの名称、又は機能等を示す情報である。ECU名は、当該検知イベントを検知したECUの名称、又は識別情報等を示す情報である。
【0090】
入力インタフェース名は、検知イベントの検知がECUにおけるデータの入力に起因する場合に、データが入力されたインタフェースの名称、又は識別情報等を示す情報である。出力インタフェース名は、検知イベントの検知がECUにおけるデータの出力に起因する場合に、データを出力したインタフェースの名称、又は識別情報等を示す情報である。送信元MACアドレスは、検知イベントを検知したデータに含まれる送信元MACアドレスを示す情報である。送信先MACアドレスは、検知イベントを検知したデータに含まれる送信先MACアドレスを示す情報である。
【0091】
アプリケーション識別子は、検知イベントを検知したデータに含まれるアプリケーション識別子を示す情報である。CAN IDは、検知イベントを検知したデータに含まれるCAN IDを示す情報である。検知イベントは、検知した検知イベントの名称、又は識別情報等を示す情報である。
【0092】
なお、ログデータ31の各レコードには、例えば、車両20の車載ネットワーク100で予め定められた検知イベントが検知されたとき等に、検知イベントを検知したECUがログサーバに送信したログデータが記憶される。
【0093】
<処理の流れ>
続いて、本実施形態に係る情報処理方法の処理の流れについて説明する。
【0094】
(SOCサーバの処理)
図12は、一実施形態に係るSOCサーバの処理の例を示すフローチャートである。ここでは、図4、5で説明したSOCサーバ10、及び推定部402が実行する処理の概要について説明する。なお、詳細な処理内容については、図13~21を用いて後述する。
【0095】
ステップS1201において、SOCサーバ10は、例えば、ログサーバ30、又は車両20等から、攻撃を検知したことを示す攻撃検知通知を受け付けると、ステップS1202以降の処理を実行する。なお、攻撃検知通知には、例えば、攻撃を受けた車両20の車両識別番号(VIN)、及び攻撃を検知した検知時刻等の情報が含まれる。
【0096】
ステップS1202において、取得部401は、例えば、ログサーバ30等から、図11に示すようなログデータ31を取得する。
【0097】
ステップS1203において、推定部402の構成情報取得部501は、攻撃検知通知に含まれる、攻撃を受けた車両20の車両識別番号に対応するネットワーク構成情報を、ネットワーク構成情報410に含まれる各DB411~415から取得する。
【0098】
ステップS1204において、推定部402の関連ログ抽出部502は、取得部401が取得したログデータ31から、攻撃に関連するログデータを抽出する関連ログ抽出処理を実行する。
【0099】
ステップS1205において、推定部402の構成要素特定部503は、関連ログ抽出部502が抽出したログデータと、構成情報取得部501が取得したネットワーク構成情報とを用いて、攻撃に関連する構成要素を特定する構成要素の特定処理を実行する。
【0100】
ステップS1206において、推定部402の接続関係特定部504は、構成情報取得部501が取得したネットワーク構成情報に含まれるトポロジ情報を用いて、構成要素特定部503が特定した構成要素間の接続関係を特定する接続関係特定処理を実行する。
【0101】
ステップS1207において、推定部402の攻撃経路特定部505は、構成情報取得部501が取得したネットワーク構成情報に含まれる通信パターン情報、又はログデータの検知日時等に基づいて、攻撃の進行方向を特定する攻撃経路の特定処理を実行する。
【0102】
ステップS1208において、SOCサーバ10の出力部403は、推定部402が推定した1つ以上の攻撃経路の情報を出力する。例えば、出力部403は、検知された攻撃に関連する構成要素をノード、攻撃の進行に利用された通信路をリンクとして、攻撃の進行を有向グラフで表現した1つ以上の攻撃経路を列挙したレポートを、SIRTサーバ40等に出力する。
【0103】
(関連ログの抽出処理)
図13は、一実施形態に係る関連ログ抽出処理の例を示すフローチャートである。この処理は、図12のステップS1204で、関連ログ抽出部502が実行する関連ログの抽出処理の一例を示している。
【0104】
ステップS1301において、関連ログ抽出部502は、取得部401が取得したログデータ31から、攻撃が検知された車両20のログデータを取得する。取得部401が取得したログデータ31には、例えば、図14(A)に示すように、車両識別番号が異なる複数のログデータ1401~1406が含まれる。関連ログ抽出部502は、例えば、攻撃通知に含まれる車両識別番号が「JP000000000000001」である場合、複数のログデータ1401~1406のうち、車両識別番号「JP000000000000001」を含むログデータ1401、1402、1404~1406を選択的に取得する。
【0105】
ステップS1302において、関連ログ抽出部502は、ステップS1301で、攻撃が検知された車両20のログデータを取得できたか否かを判断し、ログデータを取得できた場合、処理をステップS1303に移行させる。一方、関連ログ抽出部502は、ステップS1301で、攻撃が検知された車両20のログデータを取得できない場合、図13の処理を終了させる。
【0106】
ステップS1303に移行すると、関連ログ抽出部502は、ステップS1301で取得したログデータのうち、所定の期間内のログデータを抽出する。例えば、図4(B)に示すように、ステップS1301で取得したログデータ1401、1402、1404~1406には、検知日時の情報が含まれる。関連ログ抽出部502は、ログデータ1401、1402、1404~1406のうち、所定の期間を経過したログデータ(例えば、ログデータ1406)を除外して、所定の期間内のログデータ1401、1402、1404、1405を選択的に取得する。これにより、関連ログ抽出部502は、検知された攻撃との関連性が低い、古いデータを除外することができる。
【0107】
ステップS1304において、関連ログ抽出部502は、ステップS1303で、所定の期間内のログデータを取得できたか否かを判断し、ログデータを取得できた場合、処理をステップS1305に移行させる。一方、関連ログ抽出部502は、ステップS1303で、所定の期間内のログデータを取得できない場合、図13の処理を終了させる。
【0108】
ステップS1305において、関連ログ抽出部502は、構成情報取得部501が取得したネットワーク構成情報を用いて、ステップS1303で抽出したログデータを関連付ける。例えば、関連ログ抽出部502は、図15に示すようなログデータの関連付け処理を実行する。
【0109】
図15は、一実施形態に係るログデータの関連付け処理の例を示すフローチャートである。この処理は、図13のステップS1305において、関連ログ抽出部502が、図13のステップS1303で取得した抽出したログデータに対して実行する処理の一例を示している。
【0110】
ステップS1501において、関連ログ抽出部502は、ステップS1303で抽出したログデータのうち、未取得のログデータの中から、一のログデータを取得する。
【0111】
ステップS1502において、関連ログ抽出部502は、ログデータを取得できたか否かを判断し、ログデータを取得できた場合、処理をステップS1503に移行させる。一方、関連ログ抽出部502は、ログデータを取得できない場合、処理をステップS1505に移行させる。
【0112】
ステップS1503において、関連ログ抽出部502は、取得した一のログデータと、図13のステップS1303で抽出した他のログデータとを直接比較して、取得した一のログデータと関連する他のログデータを抽出する。
【0113】
例えば、関連ログ抽出部502は、取得した一のログデータにおいて、「直接比較可能」と事前定義された項目の値と、他のログデータの各々において、当該事前定義された項目と同じ意味を持つ項目の値とを比較し、値が一致するかを判断する。値が一致した場合、関連ログ抽出部502は、一致する値を含む他のログデータを抽出する。なお、ここでは、例えば、図11に示すようなログデータ31に含まれる項目のうち、例えば、送信元MACアドレス、送信先MACアドレス、アプリケーション識別子、又はCAN ID等が、「直接比較可能」と予め定義されているものとする。
【0114】
ステップS1504において、関連ログ抽出部502は、取得した一のログデータと、ステップS1503で抽出されなかった他のログデータとを間接比較して、取得した一のログデータと関連する他のログデータを抽出する。
【0115】
例えば、関連ログ抽出部502は、取得した一のログデータにおいて、「間接比較可能」と事前定義された項目の値をキーとし、事前定義したネットワーク構成情報(例えば、ネットワーク情報、アプリケーション情報等)を検索する。また、関連ログ抽出部502は、検索して得られた値と、ステップS1503で抽出されなかった他のログデータに含まれる項目の値とを比較し、値が一致する場合、一致する値を含む他のログデータを抽出する。
【0116】
図16は、一実施形態に係る間接比較による抽出処理について説明するための図である。ここでは、図14(B)で抽出されたログデータ1401とログデータ1402とに、直接比較可能な項目がなく、間接比較する場合の例について説明する。なお、ここでは、構成情報取得部501は、図6~10に示すような各DBから、車両識別番号「JP000000000000001」に対応するレコードを、ネットワーク構成情報として取得済であるものとする。
【0117】
関連ログ抽出部502は、ログデータ1401における、例えば、ECU名称「CGW」、及び入力インタフェース名「eth0」をキーとして、構成情報取得部501が取得したネットワーク構成情報を検索する。これにより、例えば、図16に示すようなネットワーク情報1601が検索される。このネットワーク情報1601により、ログデータ1401は、Ethernetセグメント「Ethernet-0」に関連するログデータであることが判る。
【0118】
続いて、関連ログ抽出部502は、Ethernetセグメント「Ethernet-0」と、ログデータ1401における、例えば、アプリケーション識別子「0x123」とをキーとして、構成情報取得部501が取得したネットワーク構成情報を検索する。これにより、例えば、図16に示すようなアプリケーション情報1602が検索される。関連ログ抽出部502は、このアプリケーション情報1602により、ログデータ1401が、アプリケーション「渋滞情報通知」に関するログデータであることを、間接的に特定することができる。
【0119】
同様にして、関連ログ抽出部502は、ログデータ1402における、例えば、ECU名称「CGW」、及び出力インタフェース名「can0」をキーとして、構成情報取得部501が取得したネットワーク構成情報を検索する。これにより、例えば、図16に示すようなネットワーク情報1611が検索される。このネットワーク情報1611により、ログデータ1402は、CANバス「CAN-0」に関連するログデータであることが判る。
【0120】
続いて、関連ログ抽出部502は、CANバス「CAN-0」と、ログデータ1402における、例えば、CAN ID「0x2e8」とをキーとして、構成情報取得部501が取得したネットワーク構成情報を検索する。これにより、例えば、図16に示すようなアプリケーション情報1612が検索される。関連ログ抽出部502は、このアプリケーション情報1612により、ログデータ1402も、アプリケーション「渋滞情報通知」に関するログデータであることを、間接的に特定することができる。この場合、関連ログ抽出部502は、ログデータ1402を、ログデータ1401に関連するログデータとして抽出する。
【0121】
ここで、図15に戻り、フローチャートの説明を続ける。
【0122】
ステップS1504の処理が終わると、関連ログ抽出部502は、再びステップS1501、S1502の処理を実行し、未取得のログデータがなくなると、処理をステップS1505に移行させる。
【0123】
ステップS1505に移行すると、関連ログ抽出部502は、ステップS1503、S1504で抽出したログデータを、検知した攻撃に関連するログデータ(以下、関連ログデータと呼ぶ)として、構成要素特定部503等に出力する。
【0124】
(構成要素の特定処理)
図17は、一実施形態に係る構成要素の特定処理の例を示すフローチャートである。この処理は、図12のステップS1205において、構成要素特定部503が実行する構成要素の特定処理の一例を示している。
【0125】
ステップS1701において、構成要素特定部503は、関連ログ抽出部502が抽出した関連ログデータのうち、未取得のログデータの中から、一のログデータを取得する。
【0126】
ステップS1702において、構成要素特定部503は、ステップS1701で、ログデータを取得できたか否かを判断し、ログデータを取得できた場合、処理をステップS1703に移行させる。一方、構成要素特定部503は、ステップS1701で、ログデータを取得できない場合、処理をステップS1706に移行させる。
【0127】
ステップS1703に移行すると、構成要素特定部503は、取得したログデータに記載されたECU名を取得する。
【0128】
ステップS1704において、構成要素特定部503は、取得したログデータが、通信関係のログデータであるか否かを判断する。例えば、構成要素特定部503は、図11に示したログデータ31の項目のうち、送信元アドレス、送信先アドレス、又はCAN ID等の項目を含むログデータを、通信関係のログデータであると判断する。取得したログデータが通信関係のログデータである場合、構成要素特定部503は、処理をステップS1705に移行させる。一方、取得したログデータが通信関係のログデータでない場合、構成要素特定部503は、処理をステップS1701に戻す。
【0129】
ステップS1705に移行すると、構成要素特定部503は、通信関係のログデータから、通信元、及び通信先のECU名を取得する。例えば、構成要素特定部503は、図11に示したログデータ31の項目のうち、送信元アドレス、送信先アドレス、又はCAN ID等をキーとして、構成情報取得部501が取得したネットワーク構成情報を検索して、当該通信に関連するECU名を取得する。
【0130】
図18は、一実施形態に係る構成要素の特定処理について説明するための図である。ここでは、構成要素特定部503が、図18に示すような通信関係のログデータ1401、1402から、通信元、又は通信先のECU名を取得する場合の例について説明する。なお、ここでは、構成情報取得部501は、図6~10に示すような各DBから、車両識別番号「JP000000000000001」に対応するレコードを、ネットワーク構成情報として取得済であるものとする。
【0131】
構成要素特定部503は、ログデータ1401における、例えば、送信元MACアドレス「02:00:00:00:01:01」、及び送信先MACアドレス「02:00:00:00:01:02」をキーとして、構成情報取得部501が取得したネットワーク構成情報を検索する。これにより、例えば、図18に示すようなECU情報1801が検索される。この場合、構成要素特定部503は、ECU情報1801に含まれるECU「TCU」、「CGW」を、攻撃の経路に関連するECUとして取得する。
【0132】
同様にして、構成要素特定部503は、ログデータ1402における、例えば、ECU名称「CGW」、出力インタフェース名「can0」、及びCAN ID「0x28」をキーとして、構成情報取得部501が取得したネットワーク構成情報を検索する。これにより、例えば、図18に示すようなネットワーク情報1802、及び通信パターン情報1803が検索される。この場合、ネットワーク情報1802と、通信パターン情報1803は、共通の項目であるCANバス「CAN-0」を有しているので、構成要素特定部503は、この2つの情報を関連付けて、受信ECU「IVI」を、攻撃の経路に関連するECUとして取得する。
【0133】
ここで、図17に戻り、フローチャートの説明を続ける。
【0134】
ステップS1705の処理が終わると、構成要素特定部503は、再びステップS1701、S1702の処理を実行し、未取得のログデータがなくなると、処理をステップS1706に移行させる。
【0135】
ステップS1708に移行すると、構成要素特定部503は、ステップS1703、S1705で取得したECU名を、攻撃に関連するECUとして、接続関係特定部504等に出力する。
【0136】
(接続関係の特定処理)
図19は、一実施形態に係る接続関係の特定処理の例を示すフローチャートである。この処理は、例えば、図12のステップS1206において、接続関係特定部504が実行する接続関係の特定処理の一例を示している。
【0137】
ステップS1901において、接続関係特定部504は、構成情報取得部501が取得したネットワーク構成情報から、車載ネットワーク100のトポロジ情報を取得する。例えば、接続関係特定部504は、図6(B)に示すようなグラフ形式のトポロジ情報600を取得する。或いは、接続関係特定部504は、図6(A)に示すようなリスト形式のトポロジ情報を取得して、図6(B)に示すようなグラフ形式のトポロジ情報600を生成しても良い。
【0138】
ステップS1902において、接続関係特定部504は、取得したトポロジ情報600に含まれるノードの中から、例えば、図18で構成要素特定部503が特定した、経路に関連するECU1800の各々に対応するノードを特定する。
【0139】
図20は、一実施形態に係る接続関係の特定処理について説明するための図である。図20の例では、接続関係特定部504は、ECU名「TCU」に基づいて、経路に関連するECU1800に含まれるECU「TCU」が、トポロジ情報600のノード「TCU601」に対応していることを特定する。同様にして、接続関係特定部504は、経路に関連するECU1800に含まれるECU「CGW」、「IVI」が、それぞれ、トポロジ情報600のノード「CGW602」、「IVI603」に対応していることを特定する。
【0140】
図19のステップS1903において、接続関係特定部504は、ステップS1902で特定したノード間を接続するリンクを特定する。図20の例では、接続関係特定部504は、ノード「TCU601」と「CGW602」とを接続するリンク611、及びノード「CGW602」と「IVI603」とを接続するリンク612とを特定する。これにおり、トポロジ情報600から、攻撃の経路に関連しないノード「ENGINE604」、及びリンク613が除外され、図20に示すように、攻撃の経路に関連するノードとリンクとを示す接続関係情報2010が得られる。
【0141】
ステップS1904において、接続関係特定部504は、ステップS1901~S1903の処理で得た、接続関係情報2010を、攻撃経路特定部505等に出力する。
【0142】
(攻撃経路の特定処理)
図21は、一実施形態に係る攻撃経路の特定処理の例を示すフローチャートである。この処理は、例えば、図12のステップS1207において、攻撃経路特定部505が実行する攻撃経路の特定処理の一例を示している。
【0143】
ステップS2101において、攻撃経路特定部505は、接続関係特定部504が出力する1つ以上の接続関係情報のうち、未取得の接続関係情報の中から、一の接続関係情報を取得する。例えば、攻撃経路特定部505は、図20に示すような接続関係情報2010を取得する。
【0144】
ステップS2102において、攻撃経路特定部505は、ステップS2101で、接続関係情報を取得できたか否かを判断し、接続関係情報を取得できた場合、処理をステップS2103に移行させる。一方、攻撃経路特定部505は、ステップS2101で、接続関係情報を取得できない場合、処理をステップS2108に移行させる。
【0145】
ステップS2103に移行すると、攻撃経路特定部505は、例えば、図12のステップS1204で関連ログ抽出部502が抽出した関連ログデータのうち、通信関連のログデータを取得する。例えば、攻撃経路特定部505は、関連ログデータのうち、送信元アドレス、送信先アドレス、又はCAN ID等の項目を含むログデータを、通信関係のログデータとして取得する。
【0146】
ステップS2104において、攻撃経路特定部505は、通信関連のログデータに含まれる、例えば、送信元アドレス、送信先アドレス、又はCAN ID等の項目の値をキーとして、構成情報取得部501が取得したネットワーク構成情報を検索する。これにより、攻撃経路特定部505は、ステップS2101で取得した接続関係情報2010において、通信元、又は通信先となる構成要素を特定する。
【0147】
図22は、一実施形態に係る攻撃経路の特定処理について説明するための図である。図22において、攻撃経路特定部505は、例えば、ログデータ1401の送信元MACアドレス「02:00:00:00:01:01」、及び送信先MACアドレス「02:00:00:00:01:02」をキーとして、構成情報取得部501が取得したネットワーク構成情報を検索する。これにより、攻撃経路特定部505は、例えば、図22に示すようなECU情報2201を検索結果として得ることができる。この場合、攻撃経路特定部505は、検索結果から、送信元MACアドレスに対応するノード「TCU601」を送信元、送信先MACアドレスに対応するノード「CGW602」を送信先と特定することができる。
【0148】
また、攻撃経路特定部505は、例えば、ログデータ1402のECU名称「CGW」、出力インタフェース名「can0」、及びCAN ID「0x2e8」をキーとして、構成情報取得部501が取得したネットワーク構成情報を検索する。これにより、攻撃経路特定部505は、例えば、図22に示すような、ネットワーク情報2202、及び通信パターン情報2203を、検索結果として得ることができる。この場合、攻撃経路特定部505は、検索結果から、CAN ID「0x2e8」に対応するノード「IVI603」を送信先と特定することができる。
【0149】
図21のステップS2105において、攻撃経路特定部505は、ステップS2104で特定した通信元、及び通信先から、ノード間のリンクの方向を特定する。例えば、図22において、攻撃経路特定部505は、ノード「TCU601」と「CGW602」との間のリンク611を、送信元から送信先に向かう有向リンクに更新する。同様に、攻撃経路特定部505は、ノード「CGW602」と「IVI603」との間のリンク612を、送信先に向かう有向リンクに更新する。これにより、攻撃経路特定部505は、例えば、図22に示すような攻撃経路情報2210を作成することができる。
【0150】
ステップS2106において、攻撃経路特定部505は、攻撃経路情報2210の全てのリンクが有向リンクになっているか否かを判断し、全リンクが有向リンクになっていない場合、処理をステップS2107に移行させる。一方、攻撃経路特定部505は、攻撃経路情報2210の全てのリンクが有向リンクになっている場合、処理をステップS2101に戻す。
【0151】
ステップ2102において、攻撃経路特定部505は、攻撃経路情報2210に含まれるリンクのうち、方向が特定されていないリンクの方向を、ログデータの日時情報に基づいて特定する。例えば、攻撃経路特定部505は、関連ログ抽出部502が抽出した関連ログデータのうち、構成要素を特定可能な情報(例えば、ECU名、CAN ID等)を含むログデータを、検知日時等によって昇順(又は降順)に整列(ソート)する。また、攻撃経路特定部505は、攻撃経路情報2210に含まれるリンクのうち、方向が特定されていないリンクの方向を、整列した順番に従って決定する。例えば、攻撃経路特定部505は、より早い検知日時を有するログデータを始点、より遅い検知日時を有するログデータを終点として、方向が特定されていないリンクの方向を決定する。
【0152】
ステップS2107の処理が終わると、攻撃経路特定部505は、再びステップS2101、S2102の処理を実行し、未取得の接続関係情報がなくなると、処理をステップS2108に移行させる。
【0153】
ステップS2108に移行すると、攻撃経路特定部505は、ステップS2103~S2107の処理で作成した1つ以上の攻撃経路情報を、出力部403に出力する。
【0154】
SOCサーバ10の出力部403は、攻撃経路特定部505が出力した1つ以上の攻撃経路情報の情報を含むレポートを、例えば、SIRTサーバ40等に出力する。
【0155】
上記の各処理により、SOCサーバ10は、車載ネットワーク100で攻撃が検知された場合、車載ネットワーク100のログデータとネットワーク構成情報とに基づいて、攻撃の経路に関連する構成要素の情報を含む1つ以上の攻撃経路の情報を出力する。また、SOCサーバ10は、攻撃に関連する構成要素をノードとし、攻撃に関連するノード間の通信経路をリンクとした有向グラフで、攻撃経路の情報を出力することができる。
【0156】
なお、図1で説明した情報処理システム1のシステム構成、及び図4、5で説明したSOCサーバ10の機能構成は一例であり、様々な変形、及び応用が可能である。例えば、SOCサーバ10が有する各機能構成のうち、少なくとも一部は、SIRTサーバ40、車両20、ログサーバ30、又は外部サーバ50等が備えていても良い。また、SOCサーバ10は、1つ以上の攻撃経路の情報を含むレポートを、SIRTサーバ40に限られず、例えば、車両20、又は外部サーバ50等に出力しても良い。
【0157】
また、本実施形態に係る情報処理システム、及び情報処理方法は、車両20に搭載される車載ネットワーク100に限られず、ネットワーク構成情報を特定可能な他の通信ネットワークにも適用することができる。
【0158】
さらに、SOCサーバ10が出力する、検知された攻撃の経路に関連する構成要素の情報を含む1つ以上の攻撃経路の情報は、図22に示すような攻撃経路情報2210に限られず、例えば、図20に示すような接続関係情報2010であっても良い。SOCサーバ10が出力する、検知された攻撃の経路に関連する構成要素の情報を含む1つ以上の攻撃経路の情報は、攻撃に関連する構成要素の情報を時系列に並べたリスト形式の情報等であっても良い。
【0159】
以上、本発明の実施形態によれば、ネットワーク、及びネットワークを介して通信を行う複数の構成要素を含むシステムにおいて、攻撃を検知したときに、攻撃に加担又は関与した構成要素を推定することが容易になる。
【0160】
以上、本発明の実施一実施形態について詳述したが、本発明は、特許請求の範囲に記載された要旨の範囲内において、種々の変形、及び応用が可能である。
【符号の説明】
【0161】
1 情報処理システム
31 ログデータ
100 車載ネットワーク(ネットワーク)
200 ゲートウェイ
250 ECU(電子制御装置)
261 移動通信装置
262 V2X通信装置
401 取得部
402 推定部
403 出力部
410 ネットワーク構成情報
600 トポロジ情報
2010 接続関係情報(接続関係を示す情報)
2210 攻撃経路情報(攻撃経路の情報)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22