(本開示に至った経緯)
本開示の実施の形態の説明に先立ち、本開示に至った経緯について説明する。
「背景技術」でも記載したように、近年、車両、電子機器などの物体からの情報に基づいて当該物体のセキュリティ状態を監視することが検討されている。例えば、物体が車両である場合、当該車両に搭載された各監視センサの異常検知結果に基づいて、サーバにより当該車両のセキュリティ状態(例えば、サイバー攻撃の内容、又は、サイバー攻撃による物体への影響)を監視することが検討されている。この場合、車両には、例えば、車両に搭載される車載機器の異常を検知したことを示す異常検知結果を含むログ情報を各監視センサから集約し、サーバに送信する送信判定モジュールが搭載される。このような送信判定モジュールとして想定される構成について、図16を参照しながら説明する。図16は、比較例に係る送信判定モジュール410aの機能構成を示すブロック図である。
図16に示すように、送信判定モジュール410aは、取得部411と、監視ログ保存部412と、送信判定部413と、生成部414と、出力部415とを有する。
取得部411は、車両が備える各監視センサからログ情報を取得する。ログ情報は、監視センサによる車載機器の監視結果を含む情報であり、例えば、監視センサが異常を検知したことを示す情報を含む。また、ログ情報は、異常を検知した車載機器を特定する情報、異常の種別を示す情報、異常の発生時刻を示す情報などの少なくとも1つを含んでいてもよい。
監視ログ保存部412は、取得部411が取得したログ情報を保存する。
送信判定部413は、監視ログ保存部412に保存されたログ情報を監視システム500に送信するか否かを判定する。送信判定部413は、例えば、所定数のログ情報が監視ログ保存部412に保存されると、保存された複数のログ情報を監視システム500に送信すると判定してもよい。
生成部414は、送信判定部413がログ情報を送信すると判定した場合、複数のログ情報を監視システム500に送信するための車両監視ログ情報を生成する。
出力部415は、生成部414が生成した車両監視ログ情報を監視システム500に送信する。
また、監視システム500は、送信判定モジュール410aが搭載された車両のセキュリティ状態を監視する。監視システム500は、送信判定モジュール410aから送信された複数のログ情報に基づいて、車両のセキュリティ状態を分析する。
ここで、車両は、複数の車載機器(例えば、ECU(Electronic Control Unit:電子制御ユニット))を有しており、当該複数の車載機器により1つの車載ネットワークシステムが構築されている。そのため、車両へのサイバー攻撃(以降、単に攻撃とも記載する)は、各車載機器への攻撃、つまり複数の攻撃の組み合わせにより行われることが多い。このため、車両への攻撃内容、攻撃による影響等を正確に把握するためには、1つの車載機器への攻撃を分析するだけでは不十分であり、複数の攻撃(例えば、連続し行われる複数の攻撃)をまとめて分析することが求められる。つまり、監視システム500は、複数のログ情報を用いて車両へのサイバー攻撃に対する分析処理を行うことが求められる。監視システム500は、互いに関連のある複数の攻撃を1つの攻撃とみなし、車両へのサイバー攻撃に対する分析処理を行うことが求められるとも言える。1つの攻撃とみなされる複数の攻撃を一連の攻撃とも記載する。一連の攻撃は、同一の攻撃者による攻撃であってもよいし、同一の攻撃目的を達成するための攻撃であってもよいし、所定時間内に行われる攻撃であってもよいし、所定の領域(地図上の領域)で行われる攻撃であってもよい。
送信判定部413は、例えば、一連の攻撃に対する複数のログ情報が監視ログ保存部412に保存された場合、当該複数のログ情報を含む車両監視ログ情報を監視システム500へ送信してもよい。これにより、監視システム500では、一連の攻撃に対する複数のログ情報を一括して取得することができるので、送信判定モジュール410aが搭載された車両へのサイバー攻撃に対する分析処理を効率的に行うことができる。
続いて、上記のような送信判定システム400aにおいて想定される動作について図17を参照しながら説明する。図17は、比較例に係る送信判定モジュール410aの動作を示すフローチャートである。
図17に示すように、取得部411は、各監視センサからログ情報を収集する(S501)。取得部411は、収集したログ情報を監視ログ保存部412に保存する。
次に、送信判定部413は、ステップS501で収集したログ情報を監視システム500に送信必要か否かを判定する(S502)。送信判定部413は、例えば、車両への一連の攻撃に対するログ情報が監視ログ保存部412に保存されたか否かにより、ステップS502の判定を行う。
次に、生成部414は、送信判定部413が送信必要と判定すると(S502でYes)、複数のログ情報に基づいて車両監視ログ情報を生成し(S503)、生成した車両監視ログ情報を監視システム500に送信する(S504)。また、取得部411は、送信判定部413が送信必要ではないと判定すると(S502でNo)、ログ情報の収集を継続する。
しかしながら、車両において、複数のログ情報を保存(記憶)するには、多大な記憶領域(メモリ容量)が必要となる。一方、監視ログ保存部412の記憶領域は、制約を受けることがある。つまり、監視ログ保存部412は、一連の攻撃に対する複数のログ情報を保存するための記憶領域を有していないことがある。
このような場合、一連の攻撃に対する複数のログ情報を分割して監視システム500に送信することが想定される。監視システム500は、複数回受信したログ情報のどれが一連の攻撃に対するログ情報であるかを判定し、一連の攻撃に対するログ情報であると判定された1以上のログ情報を用いて車両へのサイバー攻撃を分析することができる。
しかしながら、一連の攻撃に対するログ情報であるか否かの判定処理を監視システム500が行うので、監視システム500における処理負担が増加する。監視システム500には複数の車両からログ情報が送信されてくるので、それぞれの車両に対しての判定処理を行う場合、その処理負担は大きなものとなり得る。このため、一連の攻撃に対する複数のログ情報が分割して監視システム500に送信される場合、監視システム500における処理負担が増加することが抑制されることが望まれる。
そこで、本願発明者らは、一連の攻撃に対する複数のログ情報が分割して監視システム500に送信される場合であっても、監視システム500における処理負担の増加を抑制する、つまり監視システム500における処理負担を低減することができる情報送信装置等について鋭意検討を行い、以下に示す情報送信装置等を創案した。
本開示の一態様に係る情報送信装置は、1以上の機器及び各機器を監視する監視センサを有する物体に搭載される情報送信装置であって、前記1以上の機器のいずれかの機器において異常を検知したことを示す第1の検知情報を前記監視センサから取得する取得部と、前記監視センサから取得された前記1以上の機器のいずれかの機器において異常を検知したことを示す第2の検知情報であって、前記第1の検知情報に関連し、かつ、当該第1の検知情報よりも前に外部の装置に送信された第2の検知情報と、前記第1の検知情報との関連を示す関連情報、及び、前記第1の検知情報を含む監視情報を前記外部の装置に送信する送信部とを備える。
これにより、外部の装置(例えば、サーバ)は、監視情報を取得するだけで、第1の検知情報と既に受信している第2の検知情報との関連を示す情報を取得することができる。つまり、第1の検知情報と第2の検知情報とを処理する外部の装置において、第1の検知情報と第2の検知情報との関連を判定するための処理を行わなくてもよい。よって、情報送信装置は、外部の装置の処理負担を低減することができる。
また、例えば、前記関連情報は、前記第2の検知情報が存在することを示す情報、及び、前記第2の検知情報を特定するための情報であって当該第2の検知情報に含まれる情報の少なくとも一方を含んでいてもよい。
これにより、外部の装置における、第2の検知情報が存在するか否かの判定処理、及び、複数の検知情報の中から第2の検知情報を特定するための処理の少なくとも一方を省くことができる。
また、例えば、前記送信部は、所定の条件を満たす場合に前記第1の検知情報を送信し、前記監視情報には、さらに前記所定の条件を満たすことを示す情報が含まれてもよい。
これにより、外部の装置は、所定の条件を満たすことを示す情報、つまり第1の検知情報が送信されるに至った理由を取得することができる。つまり、外部の装置は、第1の検知情報に対して当該理由に応じた処理を実行可能である。よって、情報送信装置は、外部の装置における処理を効率的に行わせることができるので、外部の装置の処理負担をさらに低減することができる。
また、例えば、さらに前記第1の検知情報が保存される保存部を備え、前記所定の条件は、前記第1の検知情報が示す異常の影響度が所定の影響度以上であること、異常の原因となったサイバー攻撃が終了したと判定されること、前記第1の検知情報が示す異常が検知されてから所定時間が経過したこと、及び、前記保存部の空き容量が所定の容量以下であることの少なくとも1つを含んでいてもよい。
これにより、外部の装置は、第1の検知情報が示す異常の影響度が所定の影響度以上である場合、異常の原因となったサイバー攻撃が終了した場合、第1の検知情報が示す異常が検知されてから所定時間が経過した場合、及び、保存部の空き容量が所定の容量以下となった場合のいずれかに応じた処理を行うことができる。例えば、所定の条件が、第1の検知情報が示す異常の影響度が所定の影響度以上である場合、物体が脅威にさらされている可能性があるので、外部の装置は、第1の検知情報及び既に取得している第2の検知情報のみを用いて先行して分析等の処理を行うことができる。また、例えば、所定の条件が、保存部の空き容量が所定の容量以下である場合、第1の検知情報の後にさらに検知情報を取得する(サイバー攻撃が継続している)可能性があるので、外部の装置は、サイバー攻撃が終了するまで待機しサイバー攻撃の終了後に処理を行うことで、サイバー攻撃に対する複数の検知情報を一括して効率的に処理することができる。
また、例えば、前記所定の条件は、さらに前記第1の検知情報及び前記第2の検知情報が示す異常の影響度が前記所定の影響度以上であることを含んでいてもよい。
これにより、第1の検知情報及び第2の検知情報に基づいた物体としての異常の影響度に応じて第1の検知情報が送信される。例えば、物体が脅威にさらされている場合に第1の検知情報がすぐに送信されるので、外部の装置において、当該第1の検知情報に対する処理を迅速に行うことが可能となる。
また、例えば、さらに、前記第1の検知情報及び前記第2の検知情報の取得時刻、又は、前記第1の検知情報及び前記第2の検知情報が示す異常が検知された機器及び異常の種別の時系列パターンに基づいて、前記第2の検知情報が前記第1の検知情報に関連するか否かを判定する判定部を備えていてもよい。
これにより、情報送信装置は、検知情報を取得してから、当該検知情報に対応する監視情報を送信するまでの処理を、一括して行うことができる。
また、例えば、前記判定部は、前記第2の検知情報が取得されてから所定時間以内に前記第1の検知情報が取得された場合、又は、前記時系列パターンが予め設定された時系列パターンの少なくとも一部と一致する場合、前記第2の検知情報が前記第1の検知情報に関連すると判定してもよい。
これにより、情報送信装置は、第1の検知情報及び第2の検知情報の取得時刻の差分を算出する、又は、第1の検知情報及び第2の検知情報に基づく時系列パターンと、予め設定された時系列パターンとを比較するだけで、第1の検知情報と第2の検知情報との関連に関する情報を取得することができる。つまり、判定部における判定処理に対する処理負担を低減することができる。
また、例えば、前記判定部は、前記第1の検知情報よりも前に前記監視センサから取得され、かつ、当該第1の検知情報が取得された時点で送信されていない第3の検知情報と前記第1の検知情報とが関連するか否かを判定し、前記送信部は、前記判定部が前記第1の検知情報及び前記第2の検知情報と前記第3の検知情報とが関連すると判定した場合、前記第1の検知情報と前記第3の検知情報とをまとめて送信してもよい。
これにより、第1の検知情報と関連があり、かつ、未送信である第3の検知情報を、第1の検知情報とまとめて送信することができる。外部の装置では、第3の検知情報も用いて処理を行うことができるので、例えば外部の装置における分析精度の向上が期待できる。
また、例えば、前記物体は、車両であり、前記1以上の機器及び前記情報送信装置は、通信路を介して接続された車載ネットワークを構成してもよい。
これにより、車両の車載ネットワークに当該情報送信装置を用いることができる。
また、本開示の一態様に係るサーバは、上記に記載の情報送信装置から送信された前記第1の検知情報を受信する受信部と、前記第1の検知情報と、前記第1の検知情報に含まれる前記関連情報が示す前記第2の検知情報であって前記第1の検知情報よりも前に受信した前記第2の検知情報とに基づいて、前記物体へのサイバー攻撃に関する分析を行う制御部とを備える。
これにより、サーバは、監視情報を取得するだけで、第1の検知情報と既に受信している第2の検知情報との関連を示す情報を取得することができる。つまり、サーバは、第1の検知情報と第2の検知情報との関連を判定するための処理を行わなくてもよい。よって、サーバの処理負担が低減される。
また、本開示の一態様に係る情報送信方法は、1以上の機器及び各機器を監視する監視センサを有する物体における情報送信方法であって、前記1以上の機器のいずれかの機器において異常を検知したことを示す第1の検知情報を前記監視センサから取得し、前記監視センサから取得された前記1以上の機器のいずれかの機器において異常を検知したことを示す第2の検知情報であって、前記第1の検知情報に関連し、かつ、当該第1の検知情報よりも前に外部の装置に送信された第2の検知情報と、前記第1の検知情報との関連を示す関連情報、及び、前記第1の検知情報を含む監視情報を前記外部の装置に送信する。
これにより、上記情報送信装置と同様の効果を奏する。
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD-ROM等の非一時的記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。プログラムは、記録媒体に予め記憶されていてもよいし、インターネット等を含む広域通信網を介して記録媒体に供給されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。また、各図において、同じ構成部材については同じ符号を付している。
また、本明細書において、一致、同じなどの要素間の関係性を示す用語、及び、数値は、厳格な意味のみを表す表現ではなく、実質的に同等な範囲、例えば数%程度の差異をも含むことを意味する表現である。
(実施の形態)
以下、本実施の形態に係る送信判定モジュールを備える車両監視システムについて、図面を参照しながら説明する。
[1.車両監視システムの構成]
まずは、本実施の形態に係る車両監視システム1の構成について、図1及び図2を参照しながら説明する。図1は、本実施の形態に係る車両監視システム1の機能構成を示すブロック図である。車両監視システム1は、車両100からのログ情報に基づいて当該車両100へのサイバー攻撃の分析処理を行う情報処理システムである。
図1に示すように、車両監視システム1は、車両100と、通信ネットワーク200と、監視システム300とを備える。なお、図1では、1台の車両100を図示しているが、車両監視システム1が備える車両100の数は特に限定されず、2台以上であってもよい。
車両100は、ゲートウェイ110と、1以上のECU120、121、130、131、140、141及び142と、IVI(In-Vehicle Infotainment:車載インフォテイメント)150と、TCU(Telematics Control Unit:テレマティクス通信ユニット)160とを有する。以降において、1以上のECU120、121、130、131、140、141及び142を区別なく記載する場合は、ECU120等とも記載する。なお、ゲートウェイ110、ECU120等、IVI150及びTCU160は、機器(車載機器)の一例である。また、車両100が備える機器の数は特に限定されず、1以上であればよい。
なお、1以上のECU120等は、互いに車載ネットワークで接続されている。車載ネットワークには、多数の通信規格(通信プロトコル)が存在するが、その中でも最も主流な車載ネットワークの一つに、Controller Area Network(以降、CAN(登録商標、以下同様))という通信規格が存在する。本実施の形態では、1以上のECU120等はCANにより接続されているとするが、これに限定されず、CAN-FD(CAN with Flexible Data Rate)、FlexRay(登録商標)、Ethernet(登録商標)などにより接続されていてもよい。また、バスごとに通信規格が異なっていてもよい。
ゲートウェイ110は、ECU120等、IVI150及びTCU160との間でログ情報などのデータを交換する。本実施の形態では、ゲートウェイ110は、各ECU120等、IVI150及びTCU160からのログ情報を集約する集約装置として機能する。また、ゲートウェイ110は、受信したデータを他のバスへ転送する処理を行ってもよい。
ゲートウェイ110は、バスを介して車両100が有する各構成要素と接続される。ゲートウェイ110は、例えば、バス(第1のバス)を介してECU120及び121と接続され、バス(第2のバス)を介してECU130及び131と接続され、バス(第3のバス)を介してECU140と接続される。また、ゲートウェイ110は、バス(第4のバス)を介してIVI150と接続され、バス(第5のバス)を介してTCU160と接続される。また、ゲートウェイ110は、ECU140を介してECU141及び142と接続される。ECU141及び142とECU140とはそれぞれ、バス(第6のバス及び第7のバス)を介して接続される。ゲートウェイ110、ECU120等、IVI150及びTCU160は、バス(通信路)を介して構成された車載ネットワークに接続されて、相互にデータの送受信を行う。
ゲートウェイ110は、送信判定モジュール110aと監視センサ110bとを有する。
送信判定モジュール110aは、車両100の各構成要素(例えば、各車載機器)から取得したログ情報を監視システム300に送信するための処理を行う処理部である。送信判定モジュール110aの詳細は後述するが、いずれかの車載機器において異常が検知された場合、異常が検知されたことを示す車両監視ログ情報を生成し、生成した車両監視ログ情報を監視システム300に向けて送信する。なお、送信判定モジュール110aは、情報送信装置の一例である。
監視センサ110bは、ゲートウェイ110を監視するセンサである。監視センサ110bは、ゲートウェイ110における異常を検知する。
ECU120等は、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。ECU120等は、車両100が有する車載コンピュータである。ECU120等には、例えば、エンジン制御機能を有するECU、ハンドル制御機能を有するECU、ブレーキ制御機能を有するECUなどが含まれる。
ECU120等はそれぞれ、例えば、当該ECUを監視する監視センサを有する。ECU120は監視センサ120aを有し、ECU121は監視センサ121aを有し、ECU130は監視センサ130aを有し、ECU140は監視センサ140aを有する。
IVI150は、車両100に乗車するユーザに情報、娯楽等を提供する機能を有する。IVI150は、ナビゲーション機能、位置情報サービス機能、音楽又は動画などのマルチメディア再生機能、音声通信機能、データ通信機能、インターネット接続機能などを有していてもよい。また、IVI150は、ユーザからの入力を受け付けるキーボード、マウス等の入力デバイスと、データ表示を行うための液晶表示装置等の表示デバイスとを有していてもよい。また、IVI150は、データ入力とデータ表示の両方が可能なタッチパネル機能付きの表示デバイスであってもよい。
IVI150は、例えば、ゲートウェイ110を介してECU120等と通信を行う。また、IVI150は、例えば、ゲートウェイ110及びTCU160を介して車両100の外部の装置と通信を行う。なお、IVI150は、バスを介してTCU160と直接接続されていてもよい。
IVI150は、当該IVI150を監視する監視センサ150aを有する。監視センサ150aは、IVI150の異常を検知する機能を有する。
TCU160は、通信装置であり、車両100の外部の装置との無線通信を実行することによって、外部の装置と通信する。本実施の形態では、TCU160は、通信ネットワーク200を利用して、監視システム300と通信する。
TCU160は、当該TCU160を監視する監視センサ160aを有する。監視センサ160aは、TCU160の異常を検知する機能を有する。
監視センサ120a等は、対象となる車載機器を監視する。監視センサ120a等は、車載機器への制御信号に車両100に異常な動作を起こさせる信号が含まれる場合、異常を検知してもよいし、車載機器が制御する制御対象を計測し(例えば、速度、加速度、舵角などを計測し)、計測結果に基づいて異常を検知してもよい。監視センサ120a等は、異常を検知すると異常を検知したことを含むログ情報を送信判定モジュール110aに出力する。監視センサ120a等が送信判定モジュール110aに出力するログ情報は、検知情報(例えば、第1の検知情報、第2の検知情報)の一例である。
監視センサ120a等は、振動、歪み、音、温度、湿度、加速度、角速度、舵角等の1以上の項目を測定可能なセンサ、又は、画像解析用のカメラを含んで構成されてもよい。また、監視センサ120a等は、接続されたバスの通信データを監視する監視センサであってもよい。また、監視センサ120a等は、車載機器への制御信号を分析可能な処理部を含んで構成されてもよい。なお、車両100が備える監視センサ120a等の数は特に限定されず、1以上であればよい。また、1つの監視センサ120a等が複数の車載機器を監視してもよい。
通信ネットワーク200は、車両100と監視システム300とが通信するためのネットワークであり、例えば、インターネット等の広域ネットワークであってもよく、ローカルエリアネットワーク(Local Area Network:LAN)であってもよい。また、通信ネットワーク200は、有線ネットワーク若しくは無線ネットワークであってもよく、又は、有線ネットワークと無線ネットワークとの組合せであってもよい。本実施の形態では、通信ネットワーク200は、無線ネットワークである。
監視システム300は、車両100とは異なる遠隔地に設けられる車両100の監視のためのシステムであり、例えば、車両100の監視のための監視センター内に配置される。監視システム300は、受信した車両監視ログ情報に基づいて、車両100を監視する。具体的には、監視システム300は、受信した車両監視ログ情報に基づいて、車両100のサイバー攻撃に対する分析処理を行う。
監視センターは、監視システム300を用いてログ情報を監視する組織であるSOC(Security Operation Center)が管理するセンターであってもよい。監視システム300は、車両監視ログ受信部310と、制御部320と、表示部330と、操作部340とを有する。
車両監視ログ受信部310は、車両100と通信するための通信インターフェースである。車両監視ログ受信部310は、通信ネットワーク200を介して車両100から車両監視ログ情報を受信する。車両監視ログ受信部310は、例えば、一連の攻撃に対する複数のログ情報を複数回に分けて受信する。車両監視ログ受信部310は、例えば、アンテナと、無線通信回路とにより実現されるが、これに限定されない。車両監視ログ受信部310は、受信部の一例である。
制御部320は、監視システム300が有する各構成要素を制御する処理部である。制御部320は、例えば、車両監視ログ受信部310が受信した車両監視ログ情報を保存部(図示しない)に保存する。また、制御部320は、車両監視ログ情報に含まれるログ情報を分析することにより車両100へのサイバー攻撃を分析する。制御部320は、例えば、車両100から一連の攻撃に対する複数のログ情報が複数回に分割して送信された場合、複数のログ情報をまとめて分析することにより車両100へのサイバー攻撃を分析する。制御部320は、複数の車両監視ログ情報を受信した場合、当該複数の車両監視ログ情報のそれぞれに含まれるログ情報のうち、関連する1以上のログ情報を抽出して分析することにより車両100へのサイバー攻撃を分析するとも言える。また、制御部320は、例えば、現時点で取得した車両監視ログ情報に含まれるログ情報(対象ログ情報)と、当該車両監視ログ情報に含まれる関連情報が示すログ情報(先行ログ情報)であって、対象ログ情報よりも前に受信した先行ログ情報とに基づいて、車両100へのサイバー攻撃に関する分析を行うとも言える。関連情報は、対象ログ情報と先行ログ情報との関連性を示す情報である。
なお、制御部320は、車両監視ログ受信部310が受信した車両監視ログ情報に関連する車両監視ログ情報を既に受信しているか否かの判定は行わない。また、以降において、車両監視ログ情報に含まれるログ情報を分析することを、単にログ情報を分析するとも記載する。
監視システム300における車両監視ログ受信部310及び制御部320によりサーバ装置が実現されてもよい。
なお、保存部は、制御部320が実行する制御プログラム等を保存してもよい。
表示部330は、車両100へのサイバー攻撃の分析結果を、車両100を監視する監視者に表示する。表示部330は、例えば、液晶ディスプレイ又は有機EL(Electro Luminescence)ディスプレイ等のモニタ装置である。なお、監視者は、走行する車両100を直接的に監視できない遠隔地から当該車両100を監視する。直接的に監視できないとは、例えば、車両100を肉眼で視認することができないことを意味している。つまり、監視者は、車両100の周囲とは異なる位置から当該車両100を遠隔監視する。また、車両100が自動運転車両である場合、監視者は、当該車両100を遠隔操作してもよい。
操作部340は、監視者からの操作を受け付ける。操作部340は、キーボード、マウス、押しボタン、タッチパネルなどにより実現される。また、操作部340は、監視者の音声、ジェスチャなどにより操作を受け付ける構成であってもよい。
ここで、送信判定モジュール110aの構成について、図2を参照しながら説明する。図2は、本実施の形態に係る送信判定モジュール110aの機能構成を示すブロック図である。
図2に示すように、送信判定モジュール110aは、取得部111と、監視ログ保存部112と、送信判定部113と、送信状態保存部114と、関連づけ判定部115と、生成部116と、出力部117とを有する。
取得部111は、ECU120等、IVI150、TCU160等の車載機器からログ情報を取得する。具体的には、取得部111は、各車載機器がそれぞれ有する監視センサからログ情報を取得する。取得部111は、取得したログ情報を監視ログ保存部112に保存する。
監視ログ保存部112は、取得部111が取得したログ情報及び監視センサ110bから取得したログ情報を保存する。監視ログ保存部112は、上記でも説明したように、記憶領域の制約(メモリ容量の制約)により、一連の攻撃に対する複数のログ情報の全てを保存するだけの十分な記憶領域を有していないことがある。監視ログ保存部112は、保存部の一例である。
送信判定部113は、監視ログ保存部112に保存されたログ情報を監視システム300に送信するか否かを判定する。本実施の形態では、送信判定部113は、一連の攻撃に対する複数のログ情報を分割して送信するか否かを判定する。
送信状態保存部114は、ログ情報に対する、送信判定部113による判定結果、出力部117による送信結果等の送信状態情報を保存する。送信状態情報の詳細は図13及び図14を参照しながら後述するが、監視センサ、異常の種別(アラートの種別)、送信に関するフラグ、送信に関する識別子(ID)などが対応付けられた情報である。送信状態情報は、例えば、送信判定部113が送信必要か否かの判定を行う、又は、出力部117が車両監視ログ情報を送信するごとに更新されるが、これに限定されない。
関連づけ判定部115は、送信判定部113が送信すると判定したログ情報(対象ログ情報)と、当該対象ログ情報よりも前に検知された異常を示すログ情報であって、既に送信済みのログ情報の履歴とに基づいて、対象ログ情報と関連する送信済みのログ情報(先行ログ情報)があるか否かを判定する。関連づけ判定部115は、例えば、対象ログ情報と送信状態情報とに基づいて、当該対象ログ情報に関連する先行ログ情報があるか否かを判定する。関連づけ判定部115は、対象ログ情報と関連する先行ログ情報がある場合、2つのログ情報を関連づける。先行ログ情報は、送信判定部113により送信すると判定されたログ情報である。なお、先行ログ情報は、第2の検知情報の一例である。
また、関連づけ判定部115は、対象ログ情報と、当該対象ログ情報よりも前に検知された異常を示すログ情報であって送信判定部113により送信が必要ではないと判定されたログ情報(未送信ログ情報)の履歴とに基づいて、対象ログ情報と関連する未送信ログ情報があるか否かを判定してもよい。
関連づけ判定部115は、少なくとも先行ログ情報があるか否かを判定すればよい。関連づけ判定部115は、判定部の一例である。
生成部116は、送信判定部113が送信すると判定したログ情報(対象ログ情報)と、当該ログ情報に対して関連づけ判定部115が判定した判定結果とに基づいて、監視システム300へ送信するための車両監視ログ情報を生成する。生成部116は、例えば、対象ログ情報と関連がある送信済みログ情報が存在する場合、対象ログ情報と、当該対象ログ情報及び送信済み情報の関連性を示す情報(関連情報)とを含む車両監視ログ情報を生成する。
出力部117は、生成部116が生成した車両監視ログ情報を監視システム300に送信する。出力部117は、送信部の一例である。
取得部111、送信判定部113、関連づけ判定部115、生成部116及び出力部117等の処理部は、例えば、保存部(図示しない)に保存される制御プログラム及び当該制御プログラムを実行するプロセッサにより実現される。
監視ログ保存部112、送信状態保存部114及び保存部は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)等により実現される。
上記のように、送信判定モジュール110aは、1以上の車載機器(機器の一例)及び各機器を監視する監視センサ(例えば、1以上の監視センサ120a等)を有する車両100に搭載される装置であって、1以上の車載機器のいずれかの車載機器において異常を検知したことを示す第1のログ情報(第1の検知情報の一例)を監視センサから取得する取得部111と、監視センサから取得された1以上の車載機器のいずれかの車載機器において異常を検知したことを示す第2のログ情報(第2の検知情報の一例)であって、第1のログ情報に関連し、かつ、当該第1のログ情報よりも前に監視システム300(外部の装置の一例)に送信された第2のログ情報と、第1のログ情報との関連を示す関連情報、及び、第1のログ情報を含む車載監視ログ情報(監視情報の一例)を監視システム300に送信する出力部117(送信部の一例)とを備える。
なお、第1のログ情報及び第2のログ情報は、同一の車載機器において異常が検知された場合のログ情報であってもよいし、互いに異なる車載機器において異常が検知された場合のログ情報であってもよい。また、例えば、第1のログ情報及び第2のログ情報は、同一の外部の装置に送信される。
[2.車両監視システムの動作]
続いて、上記の車両監視システム1の動作について、図3~図15を参照しながら説明する。
[2-1.送信判定モジュールの動作]
まずは、送信判定モジュール110aの基本動作について図3を参照しながら説明する。図3は、本実施の形態に係る送信判定モジュール110aの基本動作を示すフローチャートである。
図3に示すように、取得部111は、ECU120等の車載機器が有する監視センサ120a等からログ情報を収集する(S101)。言い換えると、監視センサ120a等は、異常を検知すると、異常を検知したことを示すログ情報を、送信判定モジュール110aに出力する。取得部111は、取得したログ情報を、監視ログ保存部112に保存する。
次に、送信判定部113は、取得したログ情報を監視システム300に送信する必要があるか否かを判定する(S102)。送信判定部113は、例えば、ログ情報が示す異常に対する車両100への影響度が高い場合、ログ情報を送信必要であると判定する。影響度が高いとは、例えば、車両100の安全性に対する影響度が所定の影響度以上であること、つまり危険度が所定以上であることを示す。送信判定部113は、ログ情報が示す異常の種別(エラーの種別)と、異常の種別及び影響度が対応付けられたテーブルとに基づいて、当該ログ情報に対する影響度を取得するが、影響度の取得方法はこれに限定されない。
また、送信判定部113は、ログ情報及び当該ログ情報より過去に取得されたログ情報と、異常の検知箇所及び異常の種別の少なくとも1つの組み合わせを示す異常パターンとのパターンマッチングにおける一致度により送信するか否かを判定してもよい。異常パターンは、例えば、複数の攻撃が一連の攻撃であるか否かを判定するための、異常の検知箇所及び異常の種別の少なくとも1つの時系列パターンである。異常の検知箇所は、異常が検知された車載機器を示す。例えば、異常パターンは、複数の車載機器において異常が検知された場合、異常が検知された車載機器の順番、及び、異常が検知された車載機器それぞれの異常の種別を含む。
なお、異常パターンは、予め設定されており、保存部に保存されている。異常パターンは、過去に一連の攻撃を受けたときの異常の検知箇所及び異常の種別の時系列データに基づいて決定されてもよいし、攻撃を受ける際に想定される異常の検知箇所及び異常の種別の時系列データの予想に基づいて決定されてもよい。
送信判定部113は、例えば一致度が所定以上である場合、ログ情報を送信すると判定し、一致度が所定未満である場合、関連するログ情報がない又は少ないので、ログ情報を送信しないと判定してもよい。これにより、一連の攻撃が行われている可能性が高い場合に、ログ情報を監視システム300に優先して送信することができる。
なお、送信判定部113は、例えば一致度が所定以上である場合、ログ情報を送信しないと判定し、一致度が所定未満である場合、ログ情報を送信すると判定してもよい。また、送信判定部113は、監視ログ保存部112の空き容量が所定以下となった場合、ログ情報を送信すると判定してもよい。
これにより、一連の攻撃に対する複数のログ情報の少なくとも一部をまとめて送信することができるので、通信量の削減につながる。さらに、監視システム300は、一連の攻撃に対する複数のログ情報のうちの少なくとも一部のログ情報をまとめて受信するので、当該少なくとも一部のログ情報に対する処理を一括して行うことができる。
また、送信判定部113は、例えば、一連の攻撃が終了した場合、つまり異常の原因となったサイバー攻撃が終了した場合(例えば、サイバー攻撃が終了したと判定した場合)、ログ情報を送信必要であると判定してもよい。送信判定部113は、ログ情報及び当該ログ情報より過去に取得されたログ情報と、異常パターンとに基づいて、サイバー攻撃が終了したか否かを判定してもよい。送信判定部113は、例えば、ログ情報が示す異常が予め設定された異常パターンにおいて最後に発生する異常と一致する場合、ログ情報を送信必要であると判定してもよい。なお、一連の攻撃が終了したか否かの判定は、異常パターンを用いることに限定されず、他の方法により行われてもよい。送信判定部113は、例えば、ログ情報を取得してから所定期間経過すると一連の攻撃が終了したと判定してもよい。
また、送信判定部113は、例えば、ログ情報を取得してから所定時間経過した場合(タイムアウトした場合)、ログ情報を送信必要であると判定してもよい。所定時間は、共通の値であってもよいし、異常の種別ごとに互いに異なる値であってもよい。
また、送信判定部113は、例えば、監視ログ保存部112の空き容量が所定の容量以下となった場合(例えば、監視ログ保存部112がメモリフルとなった場合)、ログ情報を送信必要であると判定してもよい。
ログ情報が示す異常の影響度が所定の影響度以上であること、異常の原因となったサイバー攻撃が終了したこと、ログ情報が示す異常が検知されてから所定時間が経過したこと、及び、監視ログ保存部112の空き容量が所定の容量以下となったことの少なくとも1つは、ログ情報を送信するか否かを判定するための所定の条件の一例である。
送信判定部113は、ログ情報が送信必要である場合(S102でYes)、送信状態保存部114に当該ログ情報の送信状態を保存する(S103)。送信判定部113は、例えば、当該ログ情報と、送信必要であることを示す情報(例えば、送信フラグを「1」)とを対応づけて、送信状態保存部114に保存する。また、送信判定部113は、ログ情報が送信必要ではない場合(S102でNo)、ステップS101に戻り処理を継続する。
なお、送信判定部113は、ステップS102でNoと判定した場合、当該ログ情報と、当該ログ情報を送信する必要がないことを示す情報(例えば、送信フラグ「0」)とを対応づけて、送信状態保存部114に保存してもよい。
次に、関連づけ判定部115は、送信必要と判定されたログ情報(対象ログ情報)に先行ログ情報があるか否かを判定する(S104)。先行ログ情報は、対象ログ情報より前に取得されたログ情報であって、対象ログ情報と関連するログ情報であり、かつ、既に監視システム300に送信されたログ情報(送信済みのログ情報)である。関連するとは、先行ログ情報と対象ログ情報とが一連の攻撃に対して検知された一連のログ情報であることを意味する。
関連づけ判定部115は、例えば、対象ログ情報及び送信済みのログ情報の取得時刻、又は、対象ログ情報及び送信済みのログ情報が示す異常が検知された機器及び異常の種別の時系列パターンの一致度に基づいて、送信済みのログ情報が対象ログ情報に関連するか否かを判定する。関連づけ判定部115は、送信済みのログ情報が取得されてから所定時間以内に対象ログ情報が取得された場合、又は、対象ログ情報及び送信済みのログ情報が示す異常が検知された機器及び異常の種別の時系列の異常パターンが予め設定された異常パターンの少なくとも一部と一致する場合、送信済みのログ情報が対象ログ情報に関連すると判定する。つまり、関連づけ判定部115は、対象ログ情報に対する先行ログ情報があると判定する。
関連づけ判定部115は、先行ログ情報がある場合(S104でYes)、対象ログ情報に関連づけ情報を設定する(S105)。関連づけ判定部115は、送信状態保存部114に保存されている送信状態情報に、対象ログ情報に関係するログ情報として先行ログ情報に関する情報を追加する。先行ログ情報に関する情報は、監視システム300が受信した複数のログ情報の中から対象ログ情報に関連するログ情報(先行ログ情報)を特定可能な情報であればよい。先行ログ情報に関する情報は、例えば、先行ログ情報を送信したときのログ送信IDであるが、先行ログ情報の送信時刻又は異常の検知時刻であってもよい。また、関連づけ判定部115は、先行ログ情報が存在することを示すフラグ情報と共に、先行ログ情報を送信したときのログ送信IDを、対象ログ情報を送信するときのログ送信IDとして使用する、あるいは同一の一連の攻撃に関連するログであることを示す共通の攻撃判定IDを追加することで、先行ログ情報の存在と対象ログ情報との関連を特定可能としてもよい。
次に、生成部116は、送信必要と判定されたログ情報を含む車両監視ログ情報を生成する(S106)。ステップS104でYesの場合、車両監視ログ情報には、関連づけ情報(関連情報)が含まれる。
次に、出力部117は、生成部116が生成した車両監視ログ情報を監視システム300に向けて送信する(S107)。なお、ステップS102でNoである場合、車両監視ログ情報は送信されない。つまり、出力部117は、所定の条件を満たす場合に対象ログ情報を含む車両監視ログ情報を監視システム300に送信する。
なお、ステップS104の判定処理は、先行ログ情報と対象ログ情報とが一連の攻撃に対して検知された一連のログ情報であるかどうかを判定するとしたが、先行ログ情報の存在を判定するのみであり、先行ログ情報と対象ログ情報とが一連の攻撃に対して検知されたものであるか否かは判定しなくてもよい。この場合、先行ログ情報が存在するなら、対象ログ情報は前記先行ログ情報と関連があるものとされる。また、ステップS104の判定処理は、送信判定モジュール110a以外の他の装置により行われ、送信判定モジュール110aは他の装置の判定結果を取得してもよい。なお、例えば、当該他の装置に、監視システム300は含まれない。また、ステップS102、および/またはステップS104における、対象ログ情報とそれ以前に受信したログ情報が一連の攻撃に対して検知された一連のログ情報であるか否かの判定は、送信判定モジュール110a以外の他の装置により行われ、送信判定モジュール110aは他の装置の判定結果を取得してもよい。
続いて、2つの監視センサにおいて連続して異常が検知された場合の動作について、図4~図11を参照しながら説明する。図4は、監視センサによる異常検知の一例を示す図である。アラートA及びBは、ログ情報の一例である。
図4では、監視センサA及びBの2台の監視センサにおいて、連続して異常が検知された例を示している。具体的には、時刻t1において監視センサAにより異常(アラートA)が検知され、時刻t1より後の時刻t2において監視センサBにより異常(アラートB)が検知された例を示している。なお、図4では、監視センサA及びBは互いに異なる監視センサである例を示しているが、同一の監視センサであってもよい。なお、監視センサAに対するアラートA、及び、監視センサBに対するアラートBは、一連の攻撃によるものとする。
時刻t1では、監視センサA及びBのうち、監視センサAのみにおいて異常が検知されたとする。この場合、送信判定モジュール110aの取得部111は、監視センサAからアラートAを含むログ情報を取得する。そして、ステップS102において、送信必要と判定されると、生成部116は、図5に示す車両監視ログ情報を生成する。図5は、時刻t1におけるアラートAに基づいて生成される車両監視ログ情報の概要を示す図である。
図5に示すように、アラートAに対応する車両監視ログ情報(ログA送信内容)には、ログ送信ID、アラート種別、先行ログ有無、先行ログ送信ID、影響度高、攻撃終了、タイムアウト及びメモリフルに関する情報が含まれる。車両監視ログ情報には、アラートAが検知された時刻に関する項目が含まれていてもよい。
ログ送信IDは、アラートAを含むログ情報を送信する際に付される識別情報である。
アラート種別は、監視センサAで検知された異常の種別を示す。図5では、アラートAに対応する異常が監視センサAで検知された例を示している。
先行ログ有無は、アラートAに対応するログ情報に関連する先行ログ情報があるか否かを示す。図5の例では、先行ログ情報がないことを示している。
先行ログ送信IDは、先行ログ情報がある場合、当該先行ログ情報を送信する際に付されたログ送信IDが設定される。先行ログ送信IDは、先行ログ情報を特定するための情報であって、先行ログ情報に含まれる情報である。図5の例では、先行ログ情報がないので、先行ログ送信IDは設定されない。
影響度高は影響度が高いか否かを示す情報である。図5の例では、影響度が高いことを示している。
攻撃終了は、アラートAが示す異常により一連の攻撃が終了したか否かを示す。図5の例では、攻撃が継続していることを示す。
タイムアウトは、アラートAが検知されてからの経過時間が所定時間を経過したか否かを示す。図5の例では、タイムアウトしていないことを示している。
メモリフルは、監視ログ保存部112の空き容量が所定の容量以下であるか否かを示す。図5の例は、メモリフルではないことを示している。
なお、影響度、攻撃終了、タイムアウト及びメモリフルの項目は、アラートAを送信必要と判定した理由を示す情報であるとも言える。図5では、アラートAの影響度が高いので、送信判定部によりアラートAを単独で送信すると判定された例を示している。つまり、アラートAの危険度が高く緊急性が高いので、当該両監視ログ情報が送信されたことを示している。このように、車両監視ログ情報には、対象ログ情報が送信必要と判定された理由を示す情報が含まれる。車両監視ログ情報には、送信必要と判定されるための所定の条件を満たすことを示す情報が含まれるとも言える。
次に、時刻t2におけるアラートBに基づいて生成される車両監視ログ情報(ログB送信内容)について、図6を参照しながら説明する。図6は、時刻t2におけるアラートBに基づいて生成される車両監視ログ情報の概要を示す図である。なお、車両監視ログ情報の項目は、図5と同様である。
図6に示すように、ログ送信IDには、時刻t1に送信した車両監視ログ情報のログ送信IDとは別のIDが設定される。つまり、ログ送信IDにより、アラートA又はBを特定可能である。なお、設定されるログ送信IDは特に限定されない。
先行ログ情報が存在する場合、先行ログ有無には、先行ログ情報が存在することを示す「1」が設定され、先行ログ送信IDには既に送信済みであるアラートAに対応する車両監視ログ情報のログ送信IDが設定される。
これにより、監視システム300は、例えば、アラートBに対応する車両監視ログ情報の先行ログ送信IDの情報を確認するだけで、既に受信済みであるアラートAに対応する車両監視ログ情報と関連があることがわかる。
なお、先行ログ送信IDにアラートAの送信IDが設定されている場合、アラート種別にアラートAは含まれない。
なお、先行ログ有無及び先行ログ送信IDは、2つのログ情報の関連性を示す関連情報の一例である。先行ログ有無及び先行ログ送信IDは、2つのログ情報の相関を示す情報であるとも言える。また、車両監視ログ情報には、先行ログ有無及び先行ログ送信IDの少なくとも1つが含まれていればよい。つまり、関連情報は、先行ログ情報が存在することを示す情報、及び、先行ログ情報を特定するための情報であって当該先行ログ情報に含まれる情報の少なくとも一方を含んでいればよい。車両監視ログ情報に先行ログ有無が含まれることで、監視システム300による先行ログ情報があるか否かの判定処理を省くことができる。また、車両監視ログ情報に先行ログ送信IDが含まれることで、監視システム300による先行ログ情報を抽出する処理を省くことができる。監視システム300の処理負担をより低減する観点から、車両監視ログ情報には先行ログ送信IDが含まれているとよい。なお、先行ログ有無を示す情報と、同一の一連の攻撃に関連するログであることを示す共通の攻撃判定IDとを車両監視ログ情報に追加することにより、監視システム300による処理負担を低減してもよい。関連づけ判定部115は、例えば、ステップS105において、一連の攻撃と判定されたログ情報に同一の攻撃判定ID(共通の攻撃判定ID)を、関連づけ情報として設定してもよい。この場合、監視システム300は、攻撃判定IDが一致するか否かを判定するだけで、既に取得したログ情報の中から対象ログ情報と関連するログ情報を抽出することができる。
なお、車両監視ログ情報には、影響度、攻撃終了、タイムアウト及びメモリフルに関する情報は含まれなくてもよい。
図7は、図4に示す異常が検知されたときに送信判定モジュール110aが行う一連の動作の一例を示すフローチャートである。なお、時刻t1以前にアラートAと関連するアラートは検知されていないものとする。つまり、アラートAは、一連の攻撃において最初に検知された異常に対するアラートであるとする。
取得部111は、時刻t1に検知された異常を示すアラートAを取得する(S201)。ステップS201は、図3に示すステップS101に相当する。
次に、送信判定部113は、アラートAが送信必要か否かを判定する(S202)。
次に、出力部117は、アラートAが送信必要である場合(S202でYes)、生成部116が生成したアラートAを含む車両監視ログ情報を監視システム300に向けて送信する。つまり、出力部117は、アラートAを送信する(S203)。また、出力部117は、アラートAが送信必要ではない場合(S202でNo)、アラートAを含む車両監視ログ情報の送信を行わない。ステップS202は、図3に示すS102に相当し、ステップS203は図3に示すS107に相当する。
図8は、図7に示すステップS203で送信される車両監視ログ情報の概要を示す図である。なお、図8~図11では、車両監視ログ情報に含まれる各項目のうち一部の項目を抜粋して示している。
図8に示すように、ステップS203で送信される車両監視ログ情報には、ログ送信IDが「XXXXA」であり、アラート種別が「アラートA」であり、先行ログ有無が「なし」であることが含まれる。
図7を再び参照して、次に、取得部111は、時刻t2に検知された異常を示すアラートBを取得する(S204)。ステップS204は、図3に示すステップS101に相当する。
次に、送信判定部113は、アラートA及びBが一連の攻撃によるものであるか否かを判定する(S205)。ステップS205の判定は、アラートA及びBが関連しているか否かを判定することに相当する。送信判定部113は、アラートA及びBが一連の攻撃によるものである場合(S205でYes)、アラートA及びBが送信必要か否かを判定する(S206)。送信判定部113は、アラートA及びBを1つのアラートとした場合の影響度に基づいてステップS206の判定を行ってもよい。当該影響度は、例えば、アラートAの後にアラートBが起こった場合の影響度であってもよいし、アラートAの影響度及びアラートBの影響度に所定の演算(例えば、重み付け加算)を行うことで算出された影響度であってもよい。
次に、送信判定部113は、アラートA及びBが送信必要である場合(S206でYes)、さらにアラートAが送信済みであるか否かを判定する(S207)。送信判定部113は、例えば、送信状態保存部114に保存されている送信状態情報(例えば、図13に示す送信済みフラグ)に基づいて、アラートAが送信済みであるか否かを判定する。
次に、出力部117は、アラートAが送信済みである場合(S207でYes)、生成部116が生成したアラートBを含む車両監視ログ情報を監視システム300に向けて送信する。つまり、出力部117は、アラートBを送信する(S208)。
図9は、図7に示すステップS208で送信される車両監視ログ情報の概要を示す図である。
図9に示すように、ステップS208で送信される車両監視ログ情報には、ログ送信IDが「XXXXB」であり、アラート種別が「アラートB」であり、先行ログ有無が「あり」であり、先行ログ送信IDが「XXXXA」であることが含まれる。つまり、アラートBの先行ログ情報は、ステップS203で送信されたアラートAであることを示す情報が含まれる。
図7を再び参照して、出力部117は、アラートAが未送信である場合(S207でNo)、生成部116が生成したアラートA及びBを含む車両監視ログ情報を監視システム300に向けて送信する。つまり、出力部117は、アラートA及びBを送信する(S209)。
図10は、図7に示すステップS209で送信される車両監視ログ情報の概要を示す図である。
図10に示すように、ステップS209で送信される車両監視ログ情報には、ログ送信IDが「XXXXB」であり、アラート種別が「アラートA、B」であり、先行ログ有無が「なし」であることが含まれる。つまり、ステップS209では、アラートA及びBの両方が送信される。また、アラートA及びBは同じタイミングで送信されるので、共通のログ送信IDが設定される。
図7を再び参照して、送信判定部113は、アラートA及びBが送信必要ではない場合(S206でNo)、処理を終了する。
また、送信判定部113は、アラートA及びBが一連の攻撃によるものではない場合(S205でNo)、アラートBが送信必要か否かを判定する(S210)。
次に、出力部117は、アラートBが送信必要である場合(S210でYes)、生成部116が生成したアラートBを含む車両監視ログ情報を監視システム300に向けて送信する。つまり、出力部117は、アラートBを送信する(S211)。
図11は、図7に示すステップS211で送信される車両監視ログ情報の概要を示す図である。
図11に示すように、ステップS211で送信される車両監視ログ情報には、ログ送信IDが「XXXXB」であり、アラート種別が「アラートB」であり、先行ログ有無が「なし」であることが含まれる。つまり、ステップS211では、関連するログ情報がないことを示す情報を含む車両監視ログ情報が送信される。
図7を再び参照して、送信判定部113は、アラートBが送信必要ではない場合(S210でNo)、処理を終了する。
なお、ステップS205は、図3に示すステップS104に相当し、ステップS206及びS210は、図3に示すステップS102に相当し、ステップS208、S209、S211は、図3に示すステップS107に相当する。
続いて、送信判定モジュール110aの詳細動作を、図12を参照しながら説明する。図12は、本実施の形態に係る送信判定モジュール110aの詳細動作を示すフローチャートである。図12では、送信状態保存部114に保存される送信状態情報を用いて説明する。なお、図12では、影響度の一例である単体スコア及び車両スコアを用いて、アラートを送信するか否かを判定する例について説明する。
図12に示すように、取得部111は、アラート(対象アラート)を取得する(S301)。ステップS301は、図3に示すS101に相当する。
次に、送信判定部113は、単体スコアを設定する(S302)。単体スコアは、アラートによる脅威(例えば、車両100の安全性に対する脅威)の度合いを示している。単体スコアは、脅威の度合いが高いほど、例えば影響度が高いほど、高く設定される。単体スコアは、例えば、0~100の数値であるがこれに限定されない。送信判定部113は、例えば、アラートの検知箇所及びアラートの種別と単体スコアとが対応づけられたテーブルに基づいて、ステップS301で取得したアラートに対する単体スコアを設定してもよい。
次に、送信判定部113は、単体スコアが第1閾値以上であるか否かを判定する(S303)。ステップS303では、ステップS301で取得したアラート(対象アラート)が送信必要であるか否かが判定される。第1閾値は、例えば、予め設定されており、保存部に保存されている。
次に、送信判定部113は、単体スコアが第1閾値以上である場合(S303でYes)、送信フラグをセットする(S304)。つまり、送信判定部113は、ステップS303でYesである場合、送信フラグを「1」に設定する。ステップS303でYesと判定されることは、送信必要と判定されることに相当する。
ここで、送信状態保存部114に保存されている送信状態情報について図13を参照しながら説明する。図13は、送信状態保存部114に保存されている送信状態情報の一例を示す図である。
図13に示すように、送信状態情報には、センサと、アラート種別、単体スコア、車両スコア、アラートID、送信フラグ、送信済みフラグ、ログ送信ID、先行ログ送信ID、及び、有効タイマの項目を含む。なお、図13及び図14に示す送信状態情報には、3つの監視センサの異常の検知に対する情報が含まれるが、1行目から3行目の順に異常が検知され、当該3つの異常は、一連の攻撃によるものであるとする。また、送信状態情報には、異常が検知された時刻を示す情報が含まれていてもよい。
センサは、異常を検知した監視センサがどの車載機器に配置される監視センサであるか、つまりどの車載機器で異常が検知されたかを示す。センサは、異常を検知した検知箇所を示すとも言える。例えば、1行目はIVI150が有する監視センサ150aが異常を検知したことを示す。
アラート種別は、監視センサが検知した異常の種別を示す。
単体スコアは、アラートによる脅威を示す数値であり、ステップS302で設定される数値である。
アラートIDは、アラートを識別する識別情報である。
送信フラグは、送信必要か否かの判定結果を示す。送信フラグ「1」は送信必要であることを示しており、送信フラグ「0」は送信不要であることを示す。
送信済みフラグは、アラートが監視システム300に向けて送信されたか否かの送信結果を示す。送信済みフラグ「1」は、送信済みであることを示しており、送信済みフラグ「0」は未送信であることを示している。
例えば、IVI150及びゲートウェイ110(GW)のアラートは、送信フラグ及び送信済みフラグとも「1」であるので、送信必要であり、かつ、送信済みである。また、例えば、CAN(例えば、いずれかのECU)のアラートは、送信フラグが「1」であり、送信済みフラグが「0」であるので、送信必要であるが、未送信である。
先行ログ送信IDは、関連する先行ログ情報のログ送信IDを示す。例えば、図13の例では、ゲートウェイ110のアラートは、IVI150のアラートと関連があり、例えば、CANのアラートは、IVI150及びGW110と関連があることを示している。
有効タイマは、一連の攻撃と判定するための時間を示す。例えばIVI150では、有効タイマが30秒に設定されているので、IVI150でアラート種別Aのアラートが検知された後、車両100の各車載機器のいずれかの要素において30秒以内にアラートがさらに検知された場合、当該アラートはIVI150のアラートAと関連していると判定される。
送信判定部113は、ステップS303でYesの場合、当該アラートに対する送信フラグを「0」から「1」に更新する。
図12を再び参照して、関連づけ判定部115は、単体スコアが第1閾値未満である場合(S303でNo)、又は、ステップS304の処理の後に、関連アラートがあるか否かを判定する(S305)。関連アラートは、対象アラートと関連があるアラートである。
次に、送信判定部113は、関連アラートがある場合(S305でYes)、車両スコアを算出する(S306)。車両スコアは、対象アラート及び関連アラートを含む車両100の総合的な脅威の度合いを示す。車両スコアは、脅威の度合いが高いほど、例えば影響度が高いほど、高く設定される。車両スコアは、例えば、0~100の数値であるがこれに限定されない。送信判定部113は、例えば、対象アラート及び関連アラートの出方(例えば、アラートの検知箇所、種別の時系列データなど)と、車両スコアとが対応づけられたテーブルを用いて、車両スコアを算出するが、これに限定されない。
次に、送信判定部113は、車両スコアが第2閾値以上であるか否かを判定する(S307)。第2閾値は第1閾値と同じ値であってもよいし、異なっていてもよい。例えば、第2閾値は、第1閾値より大きな値であってもよい。
次に、送信判定部113は、車両スコアが第2閾値以上である場合(S307でYes)、関連アラートが送信済みであるか否かを判定する(S308)。送信判定部113は、図13に示す送信状態情報において、関連アラートの送信済みフラグが「1」であるか「0」であるかによってステップS308の判定を行う。
送信判定部113は、関連アラートの送信済みフラグが「1」である場合、つまり関連アラートが送信済みである場合(S308でYes)、関連アラートのログ送信IDを対象アラートの先行ログ送信IDにセットする(S309)。また、送信判定部113は、関連アラートの送信済みフラグが「0」である場合、つまり関連アラートが未送信である場合(S308でNo)、関連アラートの送信フラグをセットする(S310)。つまり、送信判定部113は、ステップS308でNoの場合、関連アラートの送信フラグを「0」から「1」に更新する。なお、関連アラートの送信済みフラグが「0」であり、かつ、送信フラグが「1」である場合、ステップS310は省略されてもよい。
次に、送信判定部113は、対象アラートの送信フラグをセットする(S311)。つまり、送信判定部113は、対象アラートの送信フラグを「1」にする。
また、送信判定部113は、関連アラートがない場合(S305でNo)、車両スコアが第2閾値未満である場合(S307でNo)、又は、ステップS311の処理の後に、対象アラートを送信状態情報に登録する(S312)。つまり、送信判定部113は、ステップS311までの処理においてセットされたフラグを含む対象アラートの情報を、送信状態情報に追加する。
次に、送信判定部113は、対象アラートの送信フラグ及び送信済みフラグが「1」であるか否かを判定する(S313)。送信判定部113は、対象アラートの送信フラグ及び送信済みフラグが「1」ではない場合(S313でNo)、対象アラートを含む車両監視ログ情報を監視システム300に向けて送信する(S314)。ステップS313でNoと判定されるのは、例えば、対象アラートの送信フラグが「1」であり、かつ、送信済みフラグが「0」である場合である。
ここで、例えば、送信済みの関連アラートがある場合、車両監視ログ情報には、当該関連アラートのログ送信IDが先行ログ送信IDに設定され、未送信の関連アラートがある場合、車両監視ログ情報には当該関連アラートが含まれ、関連アラートがない場合、車両監視ログには関連アラートがないことを示す情報が含まれる。なお、送信済みの関連アラートがある場合、車両監視ログ情報には関連アラートがあることを示す情報(先行ログ有無)が含まれてもよい。
次に、送信判定部113は、車両監視ログ情報の送信が成功すると(S315でYes)、図13に示す送信状態情報に登録する(S316)。つまり、送信判定部113は、送信状態情報の送信済みフラグを「0」から「1」に更新する。送信判定部113は、未送信の関連アラートがある場合、未送信の関連アラート及び対象アラートの送信済みフラグを「0」から「1」に更新し、それ以外の場合は対象アラートの送信済みフラグを「0」から「1」に更新する。また、送信判定部113は、車両監視ログ情報の送信が失敗すると(S315でNo)、ステップS305に戻り処理を継続する。なお、成功の有無は、例えば、監視システム300からの返信により取得可能である。
送信判定部113は、対象アラートの送信フラグ及び送信済みフラグが「1」である場合(S313でYes)、又は、ステップS316の後、処理を終了する。
ここで、図13及び図14について説明する。
図13は、IVI150においてアラートAが検知され、当該アラートAが監視システム300に向けて送信された後、ゲートウェイ110(GW)においてアラートBが検知され、さらに、当該アラートBが監視システム300に向けて送信された後、CANにおいてアラートCが検知されたときの送信状態情報を示している。なお、アラートCに対する送信済みフラグが「0」であるので、アラートCは未送信である。第1閾値及び第2閾値は、例えば、70であるとする。
アラートAの車両スコアが70から100に更新されている。アラートAの単体スコアは70であり、そのときの車両スコアは70である。また、アラートBの単体スコアは90である。アラートBが検知され、アラートBはアラートAと関連があるので、アラートBの車両スコアは、アラートA及びBのときのスコアに更新される。図13の例では、アラートA及びBのときの車両スコアは、アラートA及びBそれぞれの単体スコアよりも高く、例えば100である。そのため、アラートAに対する車両スコアも、アラートBが検知された後、アラートA及びBの車両スコアである100に更新される。なお、車両スコアが70から100に更新された履歴は、送信状態情報に保存されていなくてもよい。図13では、車両スコアの時間変化を示すために70から100に変化したことを図示しているが、変更後の車両スコアのみが送信状態情報に保存されていればよい。
また、アラートBの先行ログ送信IDは、アラートAのログ送信IDである。監視システム300は、アラートBを受信することで、アラートBがアラートAと関連があることを認識することができる。また、アラートCの先行ログ送信IDは、アラートA及びBのログ送信IDである。監視システム300は、アラートCを受信することで、アラートCがアラートA及びBと関連があることを認識することができる。このように、監視システム300は、アラートCを受信することで、アラートA~Cが一連の攻撃に対するアラートであることがわかるので、アラートA~Cが一連の攻撃に対するアラートであるか否かを判定することなく、アラートA~Cに基づいて車両100へのサイバー攻撃を分析することができる。
また、図14は、送信状態保存部114に保存されている送信状態情報の他の一例を示す図である。
図14は、IVI150においてアラートPが検知され、当該アラートPが送信不要と判定された後、ゲートウェイ110においてアラートQが検知され、さらに、当該アラートP及びQが監視システム300に向けて送信された後、CANにおいてアラートRが検知され、当該アラートRが監視システム300に向けて送信された状態の送信状態情報を示している。第1閾値及び第2閾値は、例えば、80であるとする。
アラートPでの単体スコアは50(<第1閾値)であるので、アラートP単体でのステップS303及びS307の判定はNoとなる。つまり、アラートP~RのうちアラートPしか取得していない状態では、アラートPは送信不要と判定されるので、アラートPは送信されない。よって、アラートPの送信フラグ及び送信済みフラグはともに「0」である。
次に、アラートQが取得されるが、アラートQの単体スコアは70(<第1閾値)であるので、アラートQ単体ではアラートQは送信不要と判定される。しかしながら、アラートP及びQの車両スコアが90(>第2閾値)となるので、この時点でアラートP及びQは送信必要と判定される。つまり、アラートP及びQは同じタイミングで送信される。よって、アラートPの送信フラグ及び送信済みフラグは「0」から「1」に更新される。また、アラートP及びQのログ送信IDは、共通のIDとなる。このときの、アラートPは、アラートQと関連があり、かつ未送信なアラートであり、第3の検知情報の一例である。
例えば、図12に示すステップS301でアラートQが取得された場合(アラートQが対象アラートである場合)、送信判定部113は、ステップS305において、アラートQ(第1の検知情報の一例)よりも前に1以上の監視センサ120a等から取得され、かつ、当該アラートQが取得された時点で送信されていないアラートPとアラートQとが関連するか否かを判定する。そして、出力部117は、送信判定部113がアラートP及びQが関連すると判定した場合、アラートP及びQをまとめて送信してもよい。つまり、出力部117は、アラートP及びQを一括で送信してもよい。
なお、送信判定部113は、ステップS305において、さらにアラートQと関連があり、かつ、送信済みのアラート(第2の検知情報の一例)がある場合、アラートQ及び送信済みのアラートと、アラートPとが関連するか否かを判定してもよい。
なお、アラートQを取得した時点でアラートPが送信済みであり、かつ、アラートQ単体スコアが第2閾値未満であるとする。この場合、アラートQ単体では、アラートQは送信不要と判定される。しかしながら、アラートP及びQの車両スコアが第2閾値以上となる場合、アラートQは送信必要と判定される。つまり、アラートQが送信必要と判定される条件は、アラートP及Qが示す車両スコア(異常の影響度の一例)が第2閾値(所定の影響度の一例)以上であることであってもよい。当該条件は、所定の条件の一例である。この場合、例えば、車両監視ログ情報における影響度高の項目に「1」が設定される。
図14を再び参照して、次に、アラートRが取得される。アラートR単体スコア及び車両スコアはともに100(>第1閾値及び第2閾値)となっている。つまり、アラートRは送信必要と判定される。アラートRの先行ログ送信IDには、アラートP及びQに共通のログ送信IDが設定される。
監視システム300は、アラートRを受信することで、アラートP~Rが一連の攻撃に対するアラートであることがわかるので、アラートP~Rが一連の攻撃に対するアラートであるか否かを判定することなく、アラートP~Rに基づいて車両100へのサイバー攻撃を分析することができる。
[2-2.監視システムの動作]
続いて、監視システム300の動作について図15を参照しながら説明する。図15は、本実施の形態に係る監視システム300の動作を示すフローチャートである。具体的には、図15は、車両監視ログ受信部310及び制御部320を含んで構成されるサーバの動作を示すフローチャートである。なお、以下において、一例として、ステップS401において図14に示すアラートRを取得した場合について補足する。
図15に示すように、監視システム300の車両監視ログ受信部310は、車両監視ログ情報を取得する(S401)。車両監視ログ受信部310は、アラートRを含む車両監視ログ情報を受信する。
次に、制御部320は、ステップS401で取得した車両監視ログ情報に先行ログ送信IDがあるか否かを判定する(S402)。制御部320は、アラートRを含む車両監視ログ情報に含まれる先行ログ送信IDを抽出することで、先行ログ情報があるか否かを判定する。なお、車両監視ログ情報が先行ログ送信IDに代えて先行ログ有無の情報を含む場合、制御部320は、当該先行ログ有無の情報に基づいてステップS402の判定を実行可能である。このように制御部320は、自装置により先行ログ情報の有無を判定することなく、車両監視ログ情報に含まれる情報を抽出することで先行ログ情報の有無を取得する。
次に、制御部320は、先行ログ情報がある場合(S402でYes)、攻撃が終了したか否かを判定する(S403)。制御部320は、車両監視ログ情報に攻撃終了に関する情報(図5及び図6を参照)が含まれる場合、当該情報に基づいて攻撃が終了したか否かを判定する。制御部320は、アラートRが一連の攻撃による最後のアラートであるか否かを判定する。
制御部320は、攻撃が終了した場合(S403でYes)、取得した車両監視ログ情報、及び、先行ログ情報に基づいて車両100へのサイバー攻撃を分析する(S404)。つまり、制御部320は、複数のアラート(例えば、アラートP~R)を一連の攻撃に属するアラートとして処理する。また、制御部320は、攻撃が終了していない場合(S403でNo)、ステップS401に戻り処理を継続する。
また、制御部320は、先行ログ情報がない場合(S402でNo)、取得した車両監視ログ情報に基づいて車両100へのサイバー攻撃を分析する(S405)。
次に、制御部320は、ステップS404又はS405の分析結果を出力する(S406)。制御部320は、例えば、分析結果を表示部330に表示する。
これにより、監視システム300は、取得した車両監視ログ情報から先行ログ情報の有無を取得することができるので、先行ログ情報の有無についての判定処理を行わなくてもよい。よって、一連の攻撃に対する複数のログ情報が分割されて監視システム300に送信される場合であっても、監視システム300における処理負担が増加することを抑制する、つまり監視システム300における処理負担を低減することができる。
なお、攻撃が終了したか否かの判定(S403)を省略して、ステップS404を実施してもよい。
(他の実施の形態)
以上、一つまたは複数の態様に係る車両監視システム1について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示に含まれてもよい。
例えば、上記実施の形態において、送信判定モジュール110aはゲートウェイ110が有する例について説明したが、これに限定されない。例えば、車両100に搭載されたいずれかのECUを送信判定モジュールとして機能させることで、送信判定モジュール110aが実現されてもよい。
また、上記実施の形態では、関連情報に先行ログ送信IDが含まれる例について説明したが、先行ログ送信IDに替えて又は先行ログ送信IDに加えて先行ログ情報が検知された時刻が含まれてもよい。つまり、関連情報は、先行ログ情報が検知された時刻を示す情報であってもよい。
また、上記実施の形態では、車両100には複数の監視センサ120a等が搭載される例について説明したがこれに限定されず、搭載される監視センサ120aは1つでもよい。
また、上記実施の形態では、送信判定モジュール110aが車両100に搭載される例について説明したが、これに限定されない。送信判定モジュール110aは、1以上の機器を備え、かつ、外部の装置と無線通信可能に接続される装置に搭載されてもよい。当該装置は、例えば、ドローンなどの飛行体であってもよいし、宅内等に設置される1以上の家電機器を備える宅内機器システムであってもよい。
また、上記実施の形態では、車両100が有する各車載機器は、有線通信により通信する例について説明したが、これに限定されず、少なくとも一部の機器間では無線通信により通信が行われてもよい。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを1つの機能ブロックとして実現したり、1つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。例えば、監視ログ保存部112と送信状態保存部114とは1つの記憶装置により実現されてもよいし、3つ以上の記憶装置により実現されてもよい。また、表示部330及び操作部340は、監視システム300が有していなくてもよい。例えば、表示部330及び操作部340は、監視システム300と通信可能に接続され、かつ、監視センターとは異なる場所に設置されていてもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
また、上記実施の形態における送信判定モジュール110a及び監視システム300が有する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。
システムLSIは、複数の処理部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM(Read Only Memory)、RAM(Random Access Memory)などを含んで構成されるコンピュータシステムである。ROMには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。なお、上記各種処理の全部又は一部は、電子回路等のハードウェアにより実現されてもよい。
また、本開示の一態様は、送信判定モジュール110a及び監視システム300の制御方法に含まれる特徴的な各ステップをコンピュータに実行させるコンピュータプログラムであってもよい。また、本開示の一態様は、そのようなプログラムが記録された、コンピュータ読み取り可能な非一時的な記録媒体であってもよい。例えば、そのようなプログラムを記録媒体に記録して頒布又は流通させてもよい。例えば、頒布されたプログラムを、他のプロセッサを有する装置にインストールして、そのプログラムをそのプロセッサに実行させることで、その装置に、上記各処理を行わせることが可能となる。