JPWO2022114025A5 - - Google Patents

Download PDF

Info

Publication number
JPWO2022114025A5
JPWO2022114025A5 JP2022565387A JP2022565387A JPWO2022114025A5 JP WO2022114025 A5 JPWO2022114025 A5 JP WO2022114025A5 JP 2022565387 A JP2022565387 A JP 2022565387A JP 2022565387 A JP2022565387 A JP 2022565387A JP WO2022114025 A5 JPWO2022114025 A5 JP WO2022114025A5
Authority
JP
Japan
Prior art keywords
message
messages
attack
certain period
fixed period
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022565387A
Other languages
English (en)
Other versions
JPWO2022114025A1 (ja
Filing date
Publication date
Application filed filed Critical
Priority claimed from PCT/JP2021/043063 external-priority patent/WO2022114025A1/ja
Publication of JPWO2022114025A1 publication Critical patent/JPWO2022114025A1/ja
Publication of JPWO2022114025A5 publication Critical patent/JPWO2022114025A5/ja
Pending legal-status Critical Current

Links

Images

Description

本開示は、車載ネットワークにおいて送信されるメッセージについての異常を検知する異常検知方法、異常検知装置、及び、プログラムに関する。
近年、自動車の中のシステムには、電子制御ユニット(ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、CAN(Controller Area Network)があり、CANバスとも称される。
CANバスは、自動車のECU間の大量の物理的な配線を回避するように設計されている。CANパケットすなわちメッセージのペイロードには、車速センサ、加速度センサ、ヨーレートセンサ等の車両の挙動を検出するセンサと呼ばれる1以上のECUからのデータが含まれる。
CANバスでは、各ECUが事前に割り当てられたIDを利用してメッセージをブロードキャスト通信する。しかし、現状のCANバスは、セキュリティ機能が十分でないため、サイバー攻撃につながる不正なメッセージが挿入されるおそれすなわちインジェクション攻撃されるおそれがある。なお、インジェクション攻撃は、一般的なサイバー攻撃の1つである。
このため、CANバスに対するインジェクション攻撃を検知し対応するために多くの技術が提案されている(例えば非特許文献1)
非特許文献1には、ディープニューラルネットワーク(DNN)を用いて、CANパケットから、CANバスにおける攻撃を精度よく検知する技術が開示されている。
Min-Joo Kang and Je-Won Kang. Intrusion detection system using deep neural network for in-vehicle network security. PloS one,11(6):e0155781, 2016.
しかしながら、非特許文献1で開示された技術では、サイバー攻撃手法がスマートになるにつれてCANバスにおける攻撃を検知できなくなる可能性がある。
本開示は、上述の事情を鑑みてなされたもので、車載ネットワークに対する攻撃を精度よく検知することができる異常検知方法、異常検知装置、及び、プログラムを提供することを目的とする。
上記課題を解決するために、本開示の一形態に係る異常検知方法は、車両内のネットワークを介してメッセージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける前記ネットワークの異常を検知するための異常検知方法であって、前記ネットワークから受信されたメッセージ系列のうちの一定期間のメッセージ系列に含まれる複数のメッセージの受信間隔またはセンサ値の推移を画像データ化し、学習済みCNN(Convolution Neural Networks)を用いて、画像データから、前記一定期間に攻撃メッセージが挿入されているか否かを分類し、前記一定期間に攻撃メッセージが挿入されている場合には、前記一定期間において攻撃メッセージが挿入される追加型攻撃がある旨の検知結果を出力する。
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
本開示の異常検知方法等によれば、車載ネットワークに対する攻撃を精度よく検知することができる。
図1は、実施の形態1に係る異常検知装置の概要を示す図である。 図2Aは、実施の形態1に係るCANバスデータフレームの構造を示す図である。 図2Bは、実施の形態1に係るインジェクション攻撃の攻撃手法の説明図である。 図3は、実施の形態に係る異常検知装置の機能をソフトウェアにより実現するコンピュータのハードウェア構成の一例を示す図である。 図4は、実施の形態1に係る異常検知装置の構成の一例を示すブロック図である。 図5は、図4に示す入力処理部の詳細構成の一例を示すブロック図である。 図6Aは、実施の形態1に係るウィンドウ生成処理部のウィンドウの生成方法の説明図である。 図6Bは、実施の形態1に係るウィンドウ生成処理部が生成するサブウィンドウのサイズの一例を示す図である。 図7は、実施の形態1に係るウィンドウ生成処理部が生成する現在のサブウィンドウに攻撃メッセージが含まれる場合の一例を示す図である。 図8Aは、追加型攻撃がされていない場合における正常なメッセージ系列の受信間隔を概念的に示す図である。 図8Bは、追加型攻撃がされている場合における異常なメッセージ系列の受信間隔を概念的に示す図である。 図9Aは、追加型攻撃がされていない場合における正常なメッセージ系列のセンサ値を概念的に示す図である。 図9Bは、追加型攻撃がされている場合における異常なメッセージ系列のセンサ値を概念的に示す図である。 図10Aは、実施の形態1に係る追加型攻撃がされていない場合のメッセージ系列の受信間隔の画像の一例を示す図である。 図10Bは、実施の形態1に係る追加型攻撃がされている場合のメッセージ系列の受信間隔の画像の一例を示す図である。 図11Aは、実施の形態1に係る追加型攻撃がされていない場合のメッセージ系列のセンサ値の画像の一例を示す図である。 図11Bは、実施の形態1に係る追加型攻撃がされている場合のメッセージ系列のセンサ値の画像の一例を示す図である。 図12は、実施の形態1に係る学習済みCNNの処理の概念図である。 図13は、図12に示す学習済みCNNの処理の流れを概念的に説明するための図である。 図14は、実施の形態1に係る学習済みCNNの構造の一例を示す図である。 図15は、実施の形態1に係る異常検知装置の動作概要を示すフローチャートである。 図16は、実施の形態2に係る異常検知装置の構成の一例を示すブロック図である。 図17は、実施の形態2に係るメッセージ分類処理部の詳細構成の一例を示すブロック図である。 図18は、実施の形態2に係る異常検知の粒度を概念的に説明するための図である。 図19は、実施の形態2に係るCNN Message Classifierの処理の流れを概念的に説明するための図である。 図20Aは、実施の形態2に係るメッセージ分類器に入力される複数のメッセージと特徴量との具体例を示す図である。 図20Bは、実施の形態2に係るメッセージ分類器による判定結果の具体例を示す図である。 図21は、実施の形態2に係るメッセージ分類器が行う特徴抽出処理を概念的に説明するための図である。 図22は、実施の形態2に係るLSTM Message Classifierの処理の流れを概念的に説明するための図である。 図23Aは、実施の形態2に係るメッセージ分類器に入力される複数のメッセージと特徴量との具体例を示す図である。 図23Bは、実施の形態2に係るメッセージ分類器による判定結果の具体例を示す図である。 図24は、同値攻撃に対するメッセージレベルの分類の問題点とその対策を説明するための図である。 図25は、メッセージ系列におけるメッセージ間のセンサ値の差分を計算することで、同値攻撃か否かを判定することができることを概念的に説明するための図である。 図26は、実施の形態2に係る異常検知装置の動作概要を示すフローチャートである。 図27は、図26に示すステップS243の詳細処理の一例を示すフローチャートである。 図28は、図26に示すステップS243の詳細処理の別の例を示すフローチャートである。 図29は、実施の形態2の変形例に係る一定期間に含まれる全メッセージが受信間隔に基づいて分類できる場合の異常なメッセージ系列の一例を示す図である。 図30は、実施の形態2の変形例に係る一定期間に含まれる全メッセージが受信間隔に基づいて分類できた場合の異常なメッセージ系列の分類結果の一例を示す図である。 図31は、実施の形態2の変形例に係る一定期間に含まれる全メッセージが受信間隔に基づいて分類できなかった場合の異常なメッセージ系列の分類結果の一例を示す図である。 図32は、図28に示すステップS2434Aの詳細処理の一例を示すフローチャートである。 図33Aは、図32に示すステップS24345でYesの場合の一例を概念的に示す図である。 図33Bは、図32に示すステップS24347でYesの場合の一例を概念的に示す図である。 図33Cは、図32に示すステップS24347でNoの場合の一例を概念的に示す図である。 図34は、図28に示すステップS2435Aの詳細処理の一例を示すフローチャートである。 図35は、図28に示すステップS2435Aの詳細処理で用いる判定ルールを示す図である。 図36Aは、分類できなかったメッセージが攻撃の終端であるかを概念的に説明するための図である。 図36Bは、図35に示す同一グループ内の受信間隔ルールを概念的に説明するための図である。 図36Cは、図34に示すステップS24354でYesの場合の一例を概念的に示す図である。 図36Dは、図34に示すステップS24354でYesの場合の一例を概念的に示す図である。 図36Eは、図34に示すステップS24359の判定結果の一例を示す図である。
本開示の一形態に係る異常検知方法は、車両内のネットワークを介してメッセージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける前記ネットワークの異常を検知するための異常検知方法であって、前記ネットワークから受信されたメッセージ系列のうちの一定期間のメッセージ系列に含まれる複数のメッセージの受信間隔またはセンサ値の推移を画像データ化し、学習済みCNN(Convolution Neural Networks)を用いて、画像データから、前記一定期間に攻撃メッセージが挿入されているか否かを分類し、前記一定期間に攻撃メッセージが挿入されている場合には、前記一定期間において攻撃メッセージが挿入される追加型攻撃がある旨の検知結果を出力する。
これによれば、複数のメッセージの受信間隔またはセンサ値の推移の画像を用いることで、一定期間のメッセージ系列に追加型攻撃があったことを精度よく検知できる。よって、車載ネットワークに対する攻撃を精度よく検知することができる。
ここで、例えば、前記ネットワークから受信されるメッセージ系列を、スライディングウィンドウを用いて分割することで、前記一定期間に含まれる複数のメッセージを取得し、取得した前記複数のメッセージから、前記複数のメッセージの受信間隔を表す画像データまたは前記複数のメッセージのセンサ値の推移を表す画像を生成することで、前記複数のメッセージの受信間隔またはセンサ値の推移を画像データ化する。
このように、スライディングウィンドウを用いることで、一定期間のメッセージ系列の受信処理の高速化を図れるので、一定期間のメッセージ系列に追加型攻撃があったことの検知を時間的な遅延を減らして行うことができる。
また、例えば、前記一定期間に攻撃メッセージが挿入されている場合には、さらに、前記一定期間のメッセージ系列に含まれる複数のメッセージのそれぞれに含まれるセンサ値から、予め定められたルールに基づいて、前記複数のメッセージが、攻撃メッセージであるか否かを判定してもよい。
これにより、一定期間のメッセージ系列に含まれる複数のメッセージそれぞれについて、正常メッセージか異常メッセージかを、ルールベースで判定できる。
また、例えば、前記一定期間に攻撃メッセージが挿入されている場合には、さらに、前記一定期間のメッセージ系列に含まれる複数のメッセージのうち、受信時刻で前後する2つのメッセージからなる組み合わせすべてのセンサ値の差分値を計算し、計算した前記差分値に対して、グルーピングを行い、グルーピングされた各グループに含まれるすべての前記差分値が0であるかを判定し、前記すべての差分値が0でない場合、前記一定期間に攻撃メッセージが挿入されている追加型攻撃がある旨の検知結果を出力し、前記すべての差分値が0である場合、前記一定期間のうち、前記差分値が0であるグループのメッセージは攻撃メッセージでないとして前記検知結果を出力してもよい。
これにより、車載ネットワークが搭載される車両の挙動に影響をしない同値攻撃を正常と扱うことで、正常メッセージを攻撃メッセージと判定される誤りを抑制できる。よって、車載ネットワークに対する攻撃を精度よく検知することができる。
また、例えば、前記一定期間に攻撃メッセージが挿入されている場合には、さらに、前記学習済みCNNと異なる学習済みCNNを用いて、前記一定期間のメッセージ系列に含まれる複数のメッセージから、前記複数のメッセージのうち、攻撃メッセージであるメッセージと、攻撃されたセンサとを検知してもよい。
これにより、一定期間のメッセージ系列に含まれる複数のメッセージそれぞれについて正常メッセージか異常メッセージかを検知できる。
また、例えば、前記一定期間に攻撃メッセージが挿入されている場合には、さらに、学習済みLSTM(Long short-term memory)を用いて、前記一定期間のメッセージ系列に含まれる複数のメッセージから、前記複数のメッセージが、攻撃メッセージであるか否かを検知してもよい。
これにより、一定期間のメッセージ系列に含まれる複数のメッセージそれぞれについて正常メッセージか異常メッセージかを判定できる。
また、例えば、前記一定期間に攻撃メッセージが挿入されている場合には、さらに、前記一定期間のメッセージ系列に含まれる複数のメッセージのそれぞれに含まれるセンサ値から、予め定められたルールに基づいて、前記複数のメッセージが、攻撃メッセージであるか否かを判定することで得た判定結果を取得し、前記学習済みCNNと異なる学習済みCNNを用いて、前記一定期間のメッセージ系列に含まれる複数のメッセージから、前記複数のメッセージのうち、攻撃メッセージであるメッセージと、攻撃されたセンサとを検知した第1検知結果を取得し、学習済みLSTMを用いて、前記一定期間のメッセージ系列に含まれる複数のメッセージから、前記複数のメッセージが、攻撃メッセージであるか否かを検知した第2検知結果を取得し、取得した前記判定結果、前記第1検知結果、及び前記第2検知結果をアンサンブル処理して出力し、前記アンサンブル処理では、前記判定結果、前記第1検知結果、及び前記第2検知結果のうちのいずれかを選択する、または、取得した前記判定結果、前記第1検知結果、及び前記第2検知結果を荷重平均することで統合するとしてもよい。
これにより、ルールベース、CNN及びLSTMといった個々の結果のばらつきを抑えながら個々の良さを選択または組み合わせた結果を出力できるので、一定期間のメッセージ系列に含まれる複数のメッセージそれぞれについて正常メッセージか異常メッセージかを精度よく検知できる。
また、本開示の一形態に係る異常検知装置は、車両内のネットワークを介してメッセージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける前記ネットワークの異常を検知するための異常検知装置であって、プロセッサと、メモリとを備え、前記ネットワークから受信されたメッセージ系列のうちの一定期間のメッセージ系列に含まれる複数のメッセージの受信間隔またはセンサ値の推移を画像データ化し、学習済みCNNを用いて、画像データから、前記一定期間に攻撃メッセージが挿入されているか否かを分類し、前記一定期間に攻撃メッセージが挿入されている場合には、前記一定期間において攻撃メッセージが挿入される追加型攻撃がある旨の検知結果を出力する。
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また全ての実施の形態において、各々の内容を組み合わせることもできる。
(実施の形態1)
以下では、図面を参照しながら、実施の形態1に係る異常検知装置10の情報処理方法等の説明を行う。
[1. 異常検知装置10の概要]
図1は、実施の形態1に係る異常検知装置10の概要を示す図である。
異常検知装置10は、車両内のネットワークである車載ネットワークを介してメッセージの授受を行う複数の電子制御ユニット(ECU)を備える車載ネットワークシステムにおける車載ネットワークの異常を検知するための装置である。図1に示すように、異常検知装置10は、車載ネットワークに流れるCANデータストリームを受信して、イベントレベルで車載ネットワークの異常を検知した検知結果を出力する。ここで、CANデータストリームは、車載ネットワークから受信されるメッセージ系列であり、複数のメッセージを含む。
図2Aは、実施の形態1に係るCANバスデータフレームの構造を示す図である。
図2Aに示すCANバスデータフレームは、CANバスのCANパケットともメッセージとも称されるが、以降、メッセージと称する。
メッセージの構造は、図2Aに示すように、SOF(Start Of Frame)、IDフィールド、RTR(Remote Transmission Request)、IDE(Identifier Extension)、予約ビット「r」、DLC(Data Length Code)、データフィールド、CRC(Cyclic Redundancy Check)シーケンス、CRCデリミタ「DEL」、ACK(Acknowledgement)スロット、ACKデリミタ「DEL」、及び、EOF(End Of Frame)の各フィールドで構成される。
なお、メッセージは、IDフィールド、DLC及びメインコンテンツが含まれるデータフィールドとの3つの重要な部分を含む単純構造となっている。IDは、メッセージを識別するために用いられる。IDフィールドは、例えば11bitで構成され、データの種類を示す値が格納されている。例えば小さい値のIDをもつメッセージの方が、大きい値のIDをもつメッセージよりも優先されるなど、IDの値は、メッセージの優先度にも用いられる。DLCは、4bitで構成され、データフィールドの長さを示す値である。データフィールドは、最大64bitで構成され、メッセージの内容示す値が格納される。
図2Bは、実施の形態1に係るインジェクション攻撃の攻撃手法の説明図である。
上述したように、インジェクション攻撃は、メッセージ系列に対して不正または異常なメッセージである攻撃メッセージを挿入するサイバー攻撃である。インジェクション攻撃は、一般的なサイバー攻撃の1つであるが、本実施の形態で想定されるサイバー攻撃である。インジェクション攻撃の攻撃手法は、図2Bに示すように、追加型攻撃と置換型攻撃とに分けることができる。
追加型攻撃は、正常なメッセージ系列に、攻撃メッセージを挿入する攻撃手法である。すなわち、追加型攻撃は、図2Bに示すように、ハッチングされた実線丸で示される攻撃メッセージが、ハッチングされた点線丸で示される正常なメッセージの間に挿入されることで、メッセージ系列に攻撃メッセージが挿入されるインジェクション攻撃である。
置換型攻撃は、正常メッセージを攻撃メッセージで上書きする攻撃手法である。すなわち、置換型攻撃は、図2Bに示すように、ハッチングされた実線丸で示される攻撃メッセージが、ハッチングされた点線丸で示される正常なメッセージと置き換わることで、メッセージ系列に攻撃メッセージが挿入されるインジェクション攻撃である。
[1.1 異常検知装置10のハードウェア構成]
図3は、実施の形態に係る異常検知装置10の機能をソフトウェアにより実現するコンピュータ1000のハードウェア構成の一例を示す図である。
コンピュータ1000は、図3に示すように、入力装置1001、出力装置1002、CPU1003、内蔵ストレージ1004、RAM1005、読取装置1007、送受信装置1008およびバス1009を備えるコンピュータである。入力装置1001、出力装置1002、CPU1003、内蔵ストレージ1004、RAM1005、読取装置1007および送受信装置1008は、バス1009により接続される。
入力装置1001は、入力ボタン、タッチパッド、タッチパネルディスプレイなどといったユーザインタフェースとなる装置であり、ユーザの操作を受け付ける。なお、入力装置1001は、ユーザの接触操作を受け付ける他、音声での操作、リモコン等での遠隔操作を受け付ける構成であってもよい。
出力装置1002は、入力装置1001と兼用されており、タッチパッドまたはタッチパネルディスプレイなどによって構成され、ユーザに知らすべき情報を通知する。
内蔵ストレージ1004は、フラッシュメモリなどである。また、内蔵ストレージ1004は、異常検知装置10の機能を実現するためのプログラムなどが予め記憶されていてもよい。
RAM1005は、ランダムアクセスメモリ(Random Access Memory)であり、プログラム又はアプリケーションの実行に際してデータ等の記憶に利用される。
読取装置1007は、USB(Universal Serial Bus)メモリなどの記録媒体から情報を読み取る。読取装置1007は、上記のようなプログラムやアプリケーションが記録された記録媒体からそのプログラム、アプリケーションを読み取り、内蔵ストレージ1004に記憶させる。
送受信装置1008は、無線又は有線で通信を行うための通信回路である。送受信装置1008は、例えばネットワークに接続されたサーバ装置またはクラウドと通信を行い、サーバ装置またはクラウドから上記のようなプログラム、アプリケーションをダウンロードして内蔵ストレージ1004に記憶させてもよい。
CPU1003は、中央演算処理装置(Central Processing Unit)であり、内蔵ストレージ1004に記憶されたプログラム、アプリケーションをRAM1005にコピーし、そのプログラムやアプリケーションに含まれる命令をRAM1005から順次読み出して実行する。なお、内蔵ストレージ1004から直接実行してもよい。
[1.2 異常検知装置10の構成]
図4は、実施の形態1に係る異常検知装置10の構成の一例を示すブロック図である。
本実施の形態に係る異常検知装置10は、図1に示すように入力処理部11と、イベント分類処理部12と、出力処理部13とで構成されている。なお、出力処理部13は必須の構成でなく、イベント分類処理部12の分類結果を取得できればよい。
[1.2.1 入力処理部11]
入力処理部11は、車載ネットワークに流れるCANデータストリームが入力されると、複数のメッセージを取得する。また、入力処理部11は、取得した複数のメッセージの受信間隔またはセンサ値の推移を画像データ化する。本実施の形態では、入力処理部11は、車載ネットワークから受信されたメッセージ系列のうちの一定期間のメッセージ系列に含まれる複数のメッセージの受信間隔またはセンサ値の推移を画像データ化する。
図5は、図4に示す入力処理部11の詳細構成の一例を示すブロック図である。
図5に示すように、本実施の形態に係る入力処理部11は、メッセージ受信部111と、ウィンドウ生成処理部112と、画像化処理部113とを備える。
[1.2.1.1 メッセージ受信部111]
メッセージ受信部111は、車載ネットワークに流れるCANデータストリームが入力されることで、車載ネットワークからメッセージ系列を受信する。
[1.2.1.2 ウィンドウ生成処理部112]
ウィンドウ生成処理部112は、メッセージ受信部111により車載ネットワークから受信されるメッセージ系列を、スライディングウィンドウを用いて分割することで、一定期間に含まれる複数のメッセージを取得する。
図6Aは、実施の形態1に係るウィンドウ生成処理部112のウィンドウの生成方法の説明図である。図6Bは、実施の形態1に係るウィンドウ生成処理部112が生成するサブウィンドウのサイズの一例を示す図である。なお、ウィンドウは、受信したメッセージを溜めておくためのバッファ領域を意味する。
図6Aの(a)には、メッセージ受信部111により受信されるメッセージ系列の一例を示されている。メッセージ系列に含まれる複数のメッセージのそれぞれは丸で表されている。図6Aの(b)には、ウィンドウ生成処理部112により生成されるスライディングウィンドウの一例が示されている。
より具体的には、ウィンドウ生成処理部112は、過去、現在、未来のサブウィンドウの3つの部分に分割されたスライディングウィンドウを生成する。ここで、図6Bに示されるように、本実施の形態では、過去のサブウィンドウのサイズは200msに設定され、現在のサブウィンドウのサイズは100msに設定され、未来のサブウィンドウのサイズは100msに設定される。
図7は、実施の形態1に係るウィンドウ生成処理部112が生成する現在のサブウィンドウに攻撃メッセージが含まれる場合の一例を示す図である。
図7に示すように、現在のサブウィンドウに攻撃イベントが含まれるかどうかすなわち攻撃メッセージが挿入されているかどうかを検知するために、過去、現在、未来のサブウィンドウが生成される。なお、未来のサブウィンドウを生成することで、検知時間に待ち時間が発生するものの、現在のサブウィンドウに攻撃メッセージが挿入されていることをより確実に検知できる。
[1.2.1.3 画像化処理部113]
画像化処理部113は、ウィンドウ生成処理部112により取得された複数のメッセージから、当該複数のメッセージの受信間隔を表す画像データまたは複数のメッセージのセンサ値の推移を表す画像を生成する。このようにして、画像化処理部113は、ウィンドウ生成処理部112により取得された複数のメッセージから、当該複数のメッセージの受信間隔またはセンサ値の推移を画像データ化する。
ここで、図8A~図9Bを用いて、追加型攻撃がされている場合とされていない場合の違いについて説明する。
図8Aは、追加型攻撃がされていない場合における正常なメッセージ系列の受信間隔を概念的に示す図である。図8Bは、追加型攻撃がされている場合における異常なメッセージ系列の受信間隔を概念的に示す図である。
CANバスでは、メッセージが周期的に送信されるため、図8Aに示すように、正常なメッセージ系列では、メッセージの受信間隔は乱れない。一方、図8Bに示すように、異常なメッセージ系列では、メッセージの受信間隔が乱れている。換言すると、図8A及び図8Bを比較するとわかるように、追加型攻撃がされると、メッセージの受信間隔が乱れる。
図9Aは、追加型攻撃がされていない場合における正常なメッセージ系列のセンサ値を概念的に示す図である。図9Bは、追加型攻撃がされている場合における異常なメッセージ系列のセンサ値を概念的に示す図である。
図9Aに示すように、正常なメッセージ系列では、メッセージに含まれるセンサ値は乱れない。一方、図9Bに示すように、異常なメッセージ系列では、メッセージに含まれるセンサ値が乱れている。換言すると、図9A及び図9Bを比較するとわかるように、追加型攻撃がされると、メッセージのセンサ値が乱れる。
以上から、複数のメッセージの受信間隔または複数のメッセージのセンサ値の推移を用いると、追加型攻撃がされているかどうかを検知できるのがわかる。
このため、画像化処理部113は、ウィンドウ生成処理部112により取得された複数のメッセージから、当該複数のメッセージの受信間隔またはセンサ値の推移を画像データ化する。
図10Aは、実施の形態1に係る追加型攻撃がされていない場合のメッセージ系列の受信間隔の画像の一例を示す図である。図10Bは、実施の形態1に係る追加型攻撃がされている場合のメッセージ系列の受信間隔の画像の一例を示す図である。
図11Aは、実施の形態1に係る追加型攻撃がされていない場合のメッセージ系列のセンサ値の画像の一例を示す図である。図11Bは、実施の形態1に係る追加型攻撃がされている場合のメッセージ系列のセンサ値の画像の一例を示す図である。図11A及び図11Bには、複数の画像が一例として示されている。なお、図10A~図11Bに示される各画像は、例えば96ピクセル×96ピクセルの画像として生成される。
画像化処理部113は、ウィンドウ生成処理部112により取得された複数のメッセージから、当該複数のメッセージの受信間隔を画像データ化することで、例えば、図10Aまたは図10Bに示すよう画像を得ることができる。同様に、画像化処理部113は、ウィンドウ生成処理部112により取得された複数のメッセージから、当該複数のメッセージのセンサ値を画像データ化することで、例えば、図11Aまたは図11Bに示されるような各画像を得ることができる。そして、図10A及び図10Bと、図11A及び図11Bとを比較すると、追加型攻撃されている場合の画像である図11A及び図11Bには、センサ値及びメッセージ受信頻度において特徴的な変化が含まれているのがわかる。
[1.2.2 イベント分類処理部12]
イベント分類処理部12は、車載ネットワークから受信されたメッセージ系列のうちの一定期間に対して追加型攻撃が有るかどうかを検知する。より具体的には、イベント分類処理部12は、学習済みCNN(Convolution Neural Networks)121を用いて、画像データから、一定期間に含まれる複数のメッセージに攻撃メッセージが挿入されているか否かを分類する。一定期間に含まれる複数のメッセージは、上述した現在のサブウィンドウに含まれる複数のメッセージである。
学習済みCNN121は、画像データから、一定期間に含まれる複数のメッセージに攻撃メッセージが挿入されているか否かを分類可能なイベント分類器の一例である。このイベント分類器は、例えば図10A~図11Bに示されたような画像すなわち、正常メッセージと攻撃メッセージのセンサ値または受信間隔を示す画像を教師データとして用いて、学習される。
なお、イベント分類器は、CNN121である場合に限らず、LSTM(Long short-term memory)であってもよく、BLSTM(Bi-directional Long short-term memory)であってもよい。
また、イベント分類処理部12は、予め定めたルールに基づいて、一定期間に攻撃メッセージが挿入されているか否かを判定してもよい。この場合、イベント分類処理部12は、ウィンドウ生成処理部112により取得された複数のメッセージの受信頻度または受信間隔の統計値から、一定期間に攻撃メッセージが挿入されているか否かを判定すればよい。ここでの受信間隔の統計値としては、複数のメッセージの受信時刻の差分または複数のメッセージの受信間隔の平均などが例として挙げられる。
図12は、実施の形態1に係る学習済みCNN121の処理の概念図である。図13は、図12に示す学習済みCNN121の処理の流れを概念的に説明するための図である。
図12に示すように、学習済みCNN121は、一定期間における複数のメッセージの受信間隔を表す画像またはセンサ値の推移を表す画像が入力されると、入力された画像に含まれる一定期間における複数のメッセージに追加型攻撃されているか否かを分類する。
より具体的には、まず、図13の(a)に示されるように、車載ネットワークから受信されるメッセージ系列が、スライディングウィンドウを用いて分割されることで、現在のサブウィンドウに含まれる複数のメッセージが取得される。次いで、図13の(b)において、現在のサブウィンドウに含まれる複数のメッセージの受信間隔またはセンサ値の推移が画像データ化されて、イベント分類器に入力される。次いで、図13の(c)において、イベント分類器としての学習済みCNN121は、入力された画像データに含まれる一定期間における複数のメッセージに追加型攻撃されているか否かを分類する。そして、図13の(d)において、学習済みCNN121は、検知結果として、現在のサブウィンドウに含まれる複数のメッセージに追加型攻撃があるか、それ以外かを出力する。
図14は、実施の形態1に係る学習済みCNN121の構造の一例を示す図である。
すなわち、CNN121は、例えば複数の畳み込み層と、複数のプーリング層と、全結合層と、カスタム層とを備え、画像データが入力され、分類結果を出力する。なお、カスタム層は、画像セグメンテーションを行う層として用いられる。
[1.2.3 出力処理部13]
出力処理部13は、車載ネットワークから受信されたメッセージ系列のうちの一定期間に攻撃メッセージが挿入されている場合には、当該一定期間において攻撃メッセージが挿入される追加型攻撃がある旨の検知結果を出力する。つまり、出力処理部13は、イベント分類処理部12により、車載ネットワークから受信されたメッセージ系列のうちの一定期間に対して追加型攻撃が有ることが検知された場合には、その旨を示す検知結果を出力する。
一方、出力処理部13は、イベント分類処理部12により、当該一定期間に対して追加型攻撃がないことが検知された場合には、当該一定期間に含まれる複数のメッセージは正常である旨を示す検知結果を出力する。
なお、出力処理部13は、イベント分類処理部12により、当該一定期間に対して追加型攻撃がないことが検知された場合には、さらに、当該一定期間に含まれる複数のメッセージに対して置換型攻撃がされているかを判定してもよい。この場合、出力処理部13は、例えばCNNなどのニューラルネットワークモデルを用いることで、当該一定期間に含まれる複数のメッセージに対して置換型攻撃がされているかを判定することができる。そして、出力処理部13は、当該一定期間に含まれる複数のメッセージに異常なメッセージが含まれていれば置換型攻撃がされていると判定し、その旨を示す検知結果を出力すればよい。一方、出力処理部13は、当該一定期間に含まれる複数のメッセージに異常なメッセージが含まれていなければ、当該一定期間に含まれる複数のメッセージは正常である旨を示す検知結果を出力すればよい。
[1.3 異常検知装置10の動作]
次に、上記のように構成された異常検知装置10の動作について説明する。
図15は、実施の形態1に係る異常検知装置10の動作概要を示すフローチャートである。
まず、異常検知装置10は、サブウィンドウ(一定期間)に含まれるメッセージの受信間隔またはセンサ値の推移を画像化する(S11)。より具体的には、異常検知装置10は、車載ネットワークから受信されたメッセージ系列のうちの一定期間のメッセージ系列に含まれる複数のメッセージの受信間隔またはセンサ値の推移を画像データ化する。これにより、異常検知装置10は、複数のメッセージの受信間隔またはセンサ値の推移を示す画像を得ることができる。
次に、異常検知装置10は、入力された画像をCNNを用いて分類する(S12)。より具体的には、異常検知装置10は、学習済みCNNを用いて、ステップS11で得た複数のメッセージの受信間隔またはセンサ値の推移を示す画像から、当該一定期間に攻撃メッセージが挿入されているか否かを分類する。
次に、異常検知装置10は、ステップS12の分類結果が追加型攻撃があることを示すかを判定する(S13)。
ステップS13において、分類結果が追加型攻撃があることを示す場合(S13でYes)、異常検知装置10は、ウィンドウ内に追加型攻撃有りとの検知結果を出力する(S14)。つまり、異常検知装置10は、当該一定期間に攻撃メッセージが挿入されている場合には、当該一定期間において攻撃メッセージが挿入される追加型攻撃がある旨の検知結果を出力する。
一方、ステップS13において、分類結果が追加型攻撃があることを示さない場合(S13でNo)、異常検知装置10は、ウィンドウ内に追加型攻撃がないことを含むそれ以外との検知結果を出力する(S15)。
[1.4 効果等]
以上のように、本実施の形態に係る異常検知装置10及び異常検知方法によれば、追加型攻撃がされると、メッセージの受信間隔またはセンサ値が乱れることから、複数のメッセージの受信間隔またはセンサ値の推移の画像を用いることで、一定期間のメッセージ系列に追加型攻撃があったことを精度よく検知できる。また、追加型攻撃がされた場合にメッセージの受信間隔またはセンサ値が乱れることは、サイバー攻撃手法がスマートになったとしても偽装できない現象である。したがって、サイバー攻撃手法がスマートになったとしてもCANバスにおける攻撃を検知できなくなる可能性は低い。
よって、本実施の形態に係る異常検知装置10及び異常検知方法によれば、車載ネットワークに対する攻撃を精度よく検知することができる。
また、スライディングウィンドウを用いることで、一定期間のメッセージ系列の受信処理を高速化を図れるので、一定期間のメッセージ系列に追加型攻撃があったことの検知を時間的な遅延を減らして行うことができる。
(実施の形態2)
実施の形態1では、ウィンドウ単位で攻撃イベントを検知する、すなわち、車載ネットワークから受信されたメッセージ系列のうちの一定期間のメッセージ系列に追加型攻撃がされているか否か検知することについて説明したが、これに限らない。ウィンドウ単位で攻撃イベントを検知した場合には、さらにメッセージ単位で各メッセージが正常か異常かを検知してもよい。つまり、一定期間のメッセージ系列に追加型攻撃がされていることを検知した場合に、当該メッセージ系列に含まれる複数のメッセージそれぞれが正常メッセージか攻撃メッセージかどうかをさらに判定または検知してもよい。この場合を実施の形態2として、以下説明する。
[2.1 異常検知装置10Aの構成]
図16は、実施の形態2に係る異常検知装置10Aの構成の一例を示すブロック図である。
本実施の形態に係る異常検知装置10Aは、図16に示すように入力処理部11Aと、イベント分類処理部12と、出力処理部13Aと、メッセージ分類処理部14Aとで構成されている。なお、図4と同様の要素には同一の符号を付しており、詳細な説明は省略する。
[2.1.1 入力処理部11A]
入力処理部11Aは、車載ネットワークに流れるCANデータストリームが入力されると、複数のメッセージを取得する。入力処理部11は、取得した複数のメッセージの受信間隔またはセンサ値の推移を画像データ化して、イベント分類処理部12に出力する。また、入力処理部11は、取得した複数のメッセージを、メッセージ分類処理部14Aに出力する。
より具体的には、入力処理部11Aは、車載ネットワークに流れるCANデータストリームが入力されることで、車載ネットワークからメッセージ系列を受信する。入力処理部11Aは、車載ネットワークから受信されるメッセージ系列を、スライディングウィンドウを用いて分割することで、一定期間に含まれる複数のメッセージを取得する。
入力処理部11Aは、一定期間に含まれる取得した複数のメッセージから、当該複数のメッセージの受信間隔を表す画像データまたは複数のメッセージのセンサ値の推移を表す画像を生成して、イベント分類処理部12に出力する。
また、入力処理部11Aは、取得した一定期間に含まれる複数のメッセージを、メッセージ分類処理部14Aに出力する。なお、入力処理部11Aは、イベント分類処理部12において攻撃イベントが検知された場合に、取得した一定期間に含まれる複数のメッセージを、メッセージ分類処理部14Aに出力してもよい。
[2.1.2 出力処理部13A]
出力処理部13は、イベント分類処理部12において攻撃イベントが検知された場合に、メッセージ分類処理部14Aに、メッセージ単位で各メッセージが正常か異常かを検知するよう指示を送信し、メッセージ分類処理部14Aから検知結果を取得する。この場合、出力処理部13は、当該一定期間において攻撃メッセージが挿入される追加型攻撃がある旨と、各メッセージが正常または異常である旨とを示す検知結果を出力すればよい。
なお、出力処理部13は、イベント分類処理部12において攻撃イベントが検知されない場合すなわちイベント分類処理部12により当該一定期間に対して追加型攻撃がないことが検知された場合の機能については、実施の形態で説明した通りであるので、説明を省略する。
[2.1.3 メッセージ分類処理部14A]
メッセージ分類処理部14Aは、イベント分類処理部12においてウィンドウ単位で攻撃イベントが検知された場合、メッセージ単位で各メッセージが正常か異常かを検知する。より具体的には、メッセージ分類処理部14Aは、イベント分類処理部12においてウィンドウ単位で攻撃イベントが検知された場合、入力処理部11Aにより入力された一定期間のメッセージ系列が入力される。メッセージ分類処理部14Aは、入力された一定期間のメッセージ系列に含まれる複数のメッセージそれぞれが正常メッセージか攻撃メッセージであるかを検知する。
図17は、実施の形態2に係るメッセージ分類処理部14Aの詳細構成の一例を示すブロック図である。
図17に示すように、本実施の形態に係るメッセージ分類処理部14Aは、CNN Message Classifier141と、LSTM Message Classifier142と、Human Message Classifier143と、アンサンブル処理部144とを備える。
[2.1.3.1 CNN Message Classifier141]
CNN Message Classifier141は、イベント分類処理部12においてウィンドウ単位で攻撃イベントが検知された場合、入力処理部11Aにより入力された一定期間のメッセージ系列が入力される。
CNN Message Classifier141は、学習済みCNNを用いて、入力された一定期間のメッセージ系列に含まれる複数のメッセージから、複数のメッセージのうち、攻撃メッセージであるメッセージと、攻撃されたセンサとを検知する。
この学習済みCNNは、実施の形態1に係るCNN121と異なるCNNモデルであり、メッセージ系列から、当該メッセージ系列に含まれる複数のメッセージそれぞれが攻撃メッセージであるか正常メッセージかを分類するためのメッセージ分類器の一例である。当該メッセージ分類器は、例えば複数の畳み込み層と、複数のプーリング層と、全結合層とを備え、例えば図7に示されたようなメッセージ系列を教師データとして用いて、学習される。
ここで、実施の形態2に係る異常検知の粒度について図18を用いて説明する。
図18は、実施の形態2に係る異常検知の粒度を概念的に説明するための図である。
図18の最上段には、車載ネットワークから受信されたメッセージ系列の一例が示されており、四角は、各メッセージを表している。
実施の形態2に係る異常検知装置10は、まず、1)に示すウィンドウ単位の粒度ですなわちメッセージ系列の一定区間(一定期間)において攻撃イベントがあったかを検知する。次に、異常検知装置10は、2)に示すメッセージ単位の粒度ですなわちメッセージ系列の一定区間(ウィンドウ単位)に含まれる各メッセージが攻撃メッセージであるか正常メッセージであるかを検知する。さらに、異常検知装置10は、3)に示すようにセンサ単位の粒度で、すなわち各々のメッセージに含まれるセンサ値を用いて、各メッセージが攻撃メッセージか正常メッセージかを検知する。より具体的には、メッセージに複数のセンサ値が含まれる場合には、異常検知装置10は、各々のセンサ値が攻撃を示すか正常を示すかを判定する。一方、メッセージに単一のセンサ値が含まれる場合には、異常検知装置10は、センサ値が攻撃を示すか正常を示すかによりメッセージが攻撃メッセージであるか正常メッセージであるかを判定することができる。
本実施の形態では、CNN Message Classifier141は、図18の2)に示すメッセージ単位の粒度で各メッセージが正常(正常メッセージ)か異常(攻撃メッセージ)かを検知する。
以下、図19、図20A及び図20Bを用いて、CNN Message Classifier141の処理を概念的に説明する。
図19は、実施の形態2に係るCNN Message Classifier141の処理の流れを概念的に説明するための図である。図19の(a)は、図7に示すメッセージ系列と同様の表記で示されており、図19の(a)に示されるメッセージ系列は、図13の(a)に示される車載ネットワークから受信されるメッセージ系列に該当する。
まず、図19の(a)に示されるように、車載ネットワークから受信されるメッセージ系列が、スライディングウィンドウを用いて分割されることで、現在のサブウィンドウに含まれる複数のメッセージが取得され、メッセージ分類器としての学習済みCNNに入力される。
図20Aは、実施の形態2に係るメッセージ分類器に入力される複数のメッセージと特徴量との具体例を示す図である。
本実施の形態では、現在のサブウィンドウ(1ウィンドウ)に含まれる例えば72のメッセージがメッセージ分類器に入力される。ここで、各メッセージには複数の特徴量が含まれている。特徴量は、センサ値とメッセージの受信間隔を示す値とを1以上のセンサ値が含まれている。センサ値としては、例えば図20Aに示すように、車速センサにより得られた車速を示すセンサ値、操舵角センサにより得られた操舵角を示すセンサ値、加速度センサにより得られた加速度を示すセンサ値などがある。センサ値とメッセージの受信間隔を示す値とを含めてメッセージの特徴量と称してもよい。
次いで、図19の(b)において、メッセージ分類器としての学習済みCNNは、入力されたメッセージ系列に含まれる複数のメッセージのそれぞれが、正常メッセージまたは異常メッセージかを分類する。なお、異常メッセージは、攻撃下にあるセンサにより得られるセンサ値かつ異常な値を示すセンサ値を含むため、本実施の形態では攻撃メッセージと呼んでいる。
そして、図19の(c)において、メッセージ分類器としての学習済みCNNは、検知結果として、現在のサブウィンドウに含まれる複数のメッセージのそれぞれが正常メッセージまたは攻撃メッセージであるかを出力する。
図20Bは、実施の形態2に係るメッセージ分類器による判定結果の具体例を示す図である。図20Aに示される例では、メッセージNo3の速度値80km/hが、攻撃により異常を示しているとし、その他のセンサ値は正常であるとしている。この場合において、メッセージ分類器としての学習済みCNNは、図20Bに示すように、メッセージNo3が異常であることを分類し、さらに例えば2など、メッセージNo3の速度値を出力した速度センサを示すセンサID(インデックス)を含めて判定結果として出力する。
なお、1メッセージに複数センサから得たセンサ値が含まれる場合には、メッセージ分類器としての学習済みCNNは、センサ単位で異常か正常かを判定することができない。1メッセージに複数センサから得たセンサ値が含まれるか否かは、車種ごとに異なる。
図21は、実施の形態2に係るメッセージ分類器が行う特徴抽出処理を概念的に説明するための図である。図21の(a)には、メッセージ分類器に入力される複数のメッセージと特徴量との具体例が示されており、図20Aと同様となっている。図21の(b)には、現在のサブウィンドウに含まれる複数のメッセージに対して、予め定められた小さなフィルタを用いて畳み込みが行われた結果得られる判定結果が示されている。
図21の(a)において、メッセージ分類器としての学習済みCNNは、例えばメッセージNo1~3の中でメッセージNo1に対して、例えばメッセージNo2~4の中でメッセージNo2に対して、例えばメッセージNo3~5の中でメッセージNo3に対して畳み込みを行う。メッセージ分類器としての学習済みCNNは、このような特徴抽出処理をした結果、メッセージNo3、5が異常であること、さらに例えば2のセンサIDで示される速度センサが攻撃を受けていることを示す判定結果(分類結果)を出力する。
[2.1.3.2 LSTM Message Classifier142]
LSTM Message Classifier142は、イベント分類処理部12においてウィンドウ単位で攻撃イベントが検知された場合、入力処理部11Aにより入力された一定期間のメッセージ系列が入力される。
LSTM Message Classifier142は、学習済みLSTMを用いて、入力された一定期間のメッセージ系列に含まれる複数のメッセージから、複数のメッセージが、攻撃メッセージであるか否かを検知する。
この学習済みLSTMは、BLSTMであってもよい。この学習済みLSTMは、メッセージ系列から、当該メッセージ系列に含まれる複数のメッセージそれぞれが攻撃メッセージであるか正常メッセージか分類するためのメッセージ分類器の一例である。このメッセージ分類器は、例えば図7に示されたようなメッセージ系列を教師データとして用いて、学習される。
以下、図22、図23A及び図23Bを用いて、LSTM Message Classifier142の処理を概念的に説明する。
図22は、実施の形態2に係るLSTM Message Classifier142の処理の流れを概念的に説明するための図である。図22の(a)は、図19の(a)と同じ図であり、図19の(a)に示されるメッセージ系列は、図13の(a)に示される車載ネットワークから受信されるメッセージ系列に該当する。図22の(b)には、メッセージ分類器としてのLSTMがBLSTMである場合の例が示されている。メッセージ分類器としての学習済みBLSTMは、2つのBLSTM層と、2つのDense層とを重ねて構成されている。
まず、図22の(a)に示されるように、車載ネットワークから受信されるメッセージ系列が、スライディングウィンドウを用いて分割されることで、現在のサブウィンドウに含まれる複数のメッセージが取得され、メッセージ分類器としてのBLSTMに入力される。
図23Aは、実施の形態2に係るメッセージ分類器に入力される複数のメッセージと特徴量との具体例を示す図である。なお、図23Aは、図20Aと同じ図であるので、説明を省略する。また、図23Aには、図示されていないが、特徴量として、さらに各センサ値の欠損状態が含まれてもよい。この場合、センサ値の欠損があれば1と表され、センサ値の欠損がなければ0と表されればよい。
次いで、図22の(b)において、メッセージ分類器としての学習済みBLSTMは、入力されたメッセージ系列に含まれる複数のメッセージのそれぞれが、正常メッセージまたは異常メッセージかを分類する。
そして、図22の(c)において、メッセージ分類器としての学習済みBLSTMは、検知結果として、現在のサブウィンドウに含まれる複数のメッセージのそれぞれが正常メッセージまたは攻撃メッセージであるかを出力する。
図23Bは、実施の形態2に係るメッセージ分類器による判定結果の具体例を示す図である。図23Aに示される例では、メッセージNo3の速度値80km/hが、攻撃により異常を示しており、その他のセンサ値は正常である。この場合において、メッセージ分類器としての学習済みBLSTMは、図23Bに示すように、検知対象となったセンサ数及びメッセージ数に、攻撃されたセンサを例えば1という値、正常なセンサを0という値で分類した結果を含めた判定結果として出力する。
[2.1.3.3 Human Message Classifier143]
Human Message Classifier143は、イベント分類処理部12においてウィンドウ単位で攻撃イベントが検知された場合、入力処理部11Aにより入力された一定期間のメッセージ系列が入力される。
Human Message Classifier143は、入力された一定期間のメッセージ系列に含まれる複数のメッセージのそれぞれに含まれるセンサ値から、予め定められたルールに基づいて、複数のメッセージが、攻撃メッセージであるか否かを判定する。
ここで、予め定められたルールは、メッセージレベルの分類に有効な人間の直感に基づくルールである。例えば、上述したように、追加型攻撃では、攻撃メッセージは、正常なメッセージ系列の間に挿入されるため、攻撃メッセージが含まれる異常なメッセージ系列の受信間隔は乱れる。さらに、例えば車速などの速度に対する攻撃のように、攻撃メッセージに含まれるセンサ値は、正常なメッセージ系列に含まれるセンサ値から逸脱する。つまり、攻撃メッセージと正常なメッセージ系列に含まれる正常なメッセージとをクラスタリングした場合、互いに素なグループを形成する。このような人間の直感を予めルールに定めておくことで、Human Message Classifier143は、一定期間のメッセージ系列に含まれる複数のメッセージのそれぞれに含まれるセンサ値から、複数のメッセージが、攻撃メッセージであるか否かを判定する。
なお、攻撃メッセージに含まれるセンサ値が、正常なメッセージと同じ値を持つ場合も存在する。正常なメッセージと同じセンサ値を持つ攻撃メッセージによる攻撃を同値攻撃と称する。正常なメッセージと異なるセンサ値を持つ攻撃メッセージによる攻撃をシフト攻撃と称する。以下、同値攻撃に対するメッセージレベルの分類に有効な人間の直感について説明する。
図24は、同値攻撃に対するメッセージレベルの分類の問題点とその対策を説明するための図である。図24の(a)及び(b)では、縦方向がセンサ値を示し、横方向が受信時刻を示す。
図24の(a)に示すように、同値攻撃された場合でも、異常なメッセージ系列の受信間隔は乱れるため、追加型攻撃として検出される。しかし、異常なメッセージ系列が、図24の(b)の上段または下段のような並びかはわからない。つまり、同値攻撃された場合、追加型攻撃として検出されるものの、正常メッセージと攻撃メッセージの区別がつかず、正常メッセージを攻撃メッセージと誤検知してしまう可能性が高い。
一方で、同値攻撃された場合、メッセージ系列の受信間隔は乱れるものの、車両への副作用は小さい。
これらを鑑みると、同値攻撃と判定した攻撃メッセージは、異常検知の対象としないでよいという直感を得るに至る。そこで、追加型攻撃が検知された場合、さらに、直前のメッセージのセンサ値の差分を計算することで、同値攻撃かそうでないかを判定する。
図25は、メッセージ系列におけるメッセージ間のセンサ値の差分を計算することで、同値攻撃か否かを判定することができることを概念的に説明するための図である。
図25の(a)には、同値攻撃されたメッセージ系列が示されている。攻撃メッセージは、B、D、Fの丸で示され、正常メッセージは、A、C、Eの丸で示されているとする。
この場合、図25の(b)に示されるように、A及びB、C及びD、E及びFの差分値はゼロ(0)であり、差分値0が続いているため、同値攻撃されていると判定できる。このため、A~Fで示されるメッセージ系列のそれぞれは、正常メッセージであると判定すればよい。
つまり、追加型攻撃が検知された場合でも、直前のメッセージのセンサ値の差分を計算し、差分が0で続き、同値攻撃であると判定した場合、同値攻撃と判定した攻撃メッセージを正常メッセージと判定すればよい。一方、差分が0ではない場合、同値攻撃ではないため、異常検知の対象とし、後述するアンサンブル処理部144で他のMessage Classifierの結果が利用されればよい。
より具体的には、まず、Human Message Classifier143は、入力された一定期間のメッセージ系列に含まれる複数のメッセージのうち、受信時刻で前後する2つのメッセージからなる組み合わせすべてのセンサ値の差分値を計算する。次に、Human Message Classifier143は、計算した差分値に対して、グルーピングを行い、グルーピングされた各グループに含まれるすべての差分値が0であるかを判定する。
すべての差分値が0でない場合、Human Message Classifier143は、入力された一定期間に攻撃メッセージが挿入されている追加型攻撃がある旨の検知結果を出力する。一方、すべての差分値が0である場合、Human Message Classifier143は、入力された一定期間のうち、差分値が0であるグループのメッセージは攻撃メッセージでないとして検知結果を出力する。
[2.1.3.4 アンサンブル処理部144]
アンサンブル処理は、機械学習において利用される手法であり、個々のモデルの予測結果のばらつきを抑えながら個々のモデルの良さを組み合わせた予測結果を出力できる処理である。
本実施の形態では、アンサンブル処理部144は、CNN Message Classifier141の検知結果と、LSTM Message Classifier142の検知結果と、Human Message Classifier143の判定結果とをスタッキングして出力する。なお、アンサンブル処理部144は、CNN Message Classifier141の検知結果と、LSTM Message Classifier142の検知結果と、Human Message Classifier143の判定結果とのいずれかを選択して出力してもよい。
より具体的には、まず、アンサンブル処理部144は、CNN Message Classifier141の検知結果を取得する。換言すると、アンサンブル処理部144は、学習済みCNNと異なる学習済みCNNを用いて、一定期間のメッセージ系列に含まれる複数のメッセージから、複数のメッセージのうち、攻撃メッセージであるメッセージと、攻撃されたセンサとを検知した第1検知結果を取得する。また、アンサンブル処理部144は、LSTM Message Classifier142の検知結果を取得する。換言すると、アンサンブル処理部144は、学習済みLSTMを用いて、一定期間のメッセージ系列に含まれる複数のメッセージから、複数のメッセージが、攻撃メッセージであるか否かを検知した第2検知結果を取得する。
また、アンサンブル処理部144は、Human Message Classifier143の判定結果を取得する。換言すると、アンサンブル処理部144は、一定期間のメッセージ系列に含まれる複数のメッセージのそれぞれに含まれるセンサ値から、予め定められたルールに基づいて、複数のメッセージが、攻撃メッセージであるか否かを判定することで得た判定結果を取得する。
次に、アンサンブル処理部144は、取得した判定結果、第1検知結果、及び、第2検知結果をアンサンブル処理して出力する。アンサンブル処理では、アンサンブル処理部144は、判定結果、第1検知結果、及び第2検知結果のうちのいずれかを選択する、または、取得した判定結果、第1検知結果、及び第2検知結果を荷重平均することで統合する。
[2.2 異常検知装置10Aの動作]
次に、上記のように構成された異常検知装置10Aの動作について説明する。
図26は、実施の形態2に係る異常検知装置10Aの動作概要を示すフローチャートである。
まず、異常検知装置10Aは、ウィンドウ単位で入力処理を行う(S21)。より具体的には、異常検知装置10Aは、車載ネットワークから受信されるメッセージ系列を、スライディングウィンドウを用いて分割することで、現在のサブウィンドウ(一定期間)に含まれる複数のメッセージを取得する。異常検知装置10Aは、一定期間に含まれる取得した複数のメッセージから、当該複数のメッセージの受信間隔を表す画像データまたは複数のメッセージのセンサ値の推移を表す画像を生成する。
次に、異常検知装置10Aは、イベント分類処理を行う(S22)。より具体的には、異常検知装置10Aは、学習済みCNN121を用いて、ステップS21の入力処理で生成された複数のメッセージの受信間隔またはセンサ値の推移を示す画像から、当該一定期間に攻撃メッセージが挿入されている攻撃イベントがあったか否かを分類する。
次に、異常検知装置10は、ステップS22で行われたイベント分類処理の分類結果が、追加型攻撃があることを示すかを判定する(S23)。
ステップS23において、分類結果が追加型攻撃があることを示す場合(S23でYes)、異常検知装置10Aは、さらに、メッセージ分類処理を行う(S24)。より具体的には、異常検知装置10Aは、入力された一定期間のメッセージ系列に含まれる複数のメッセージそれぞれが正常メッセージか攻撃メッセージであるかを検知する処理を行う。
ここで、ステップS24の詳細処理について説明する。
ステップS24において、まず、異常検知装置10Aは、CNN Message Classifier処理(S241)と、LSTM Message Classifier処理(S242)と、Human Message Classifier処理(S243)とを行う。なお、CNN Message Classifier処理は、上述したCNN Message Classifier141により行われ、LSTM Message Classifier処理は、上述したLSTM Message Classifier142により行われるので、詳細な説明は省略する。同様に、Human Message Classifier処理は、上述したHuman Message Classifier143により行われる。この詳細処理については後述する。
次いで、異常検知装置10Aは、ステップS241で得た第1検知結果と、ステップS242で得た第2検知結果と、ステップS243で得た判定結果とをアンサンブル処理して出力する。
以下、図26に戻って説明を続ける。
一方、ステップS23において、分類結果が追加型攻撃があることを示さない場合(S23でNo)、異常検知装置10Aは、入力された一定期間のメッセージ系列には、追加型攻撃がないことを示す検知結果すなわち正常を示す検知結果を出力する(S25)。
図27は、図26に示すステップS243の詳細処理の一例を示すフローチャートである。
図27において、まず、異常検知装置10Aは、受信メッセージのセンサ値の差分値を計算する(S2431)。より具体的には、異常検知装置10Aは、ステップS21の入力処理で取得された現在のサブウィンドウ(一定期間)に含まれる複数のメッセージのうち、受信時刻で前後する2つのメッセージからなる組み合わせすべてのセンサ値の差分値を計算する。
次に、異常検知装置10Aは、ステップS2431で計算したセンサ値の差分に対して、グルーピング(分類)を行う(S2432)。より具体的には、異常検知装置10Aは、ステップS2431で計算した、受信時刻で前後する2つのメッセージからなる組み合わせすべてのセンサ値の差分値に対してグルーピングを行い、グループを生成する。
次に、異常検知装置10Aは、ステップS2432で生成した各グループに含まれる差分値を取得する(S2433)。
次に、異常検知装置10Aは、ステップS2433で取得したされた各グループに含まれる差分値が0であるかを判定する(S2434)。
ステップS2434において、グループに含まれる差分値が0である場合(S2434でYes)、異常検知装置10Aは、差分値0の同値攻撃であると判定し、グループに含まれる受信メッセージを正常と判定する(S2435)。より具体的には、異常検知装置10Aは、グループに含まれる差分値が0である場合、当該グループに含まれる複数のメッセージがすべて正常メッセージであると判定する。
一方、ステップS2434において、グループに含まれる差分値が0でない場合(S2434でNo)、異常検知装置10Aは、グループに含まれる受信メッセージを検知対象と判定する(S2436)。より具体的には、異常検知装置10Aは、グループに含まれる差分値が0でない場合、当該グループに含まれる複数のメッセージには攻撃メッセージが含まれている可能性があるとして、当該グループに含まれる複数のメッセージを検知対象と判定する。
このように、同値攻撃された場合、追加型攻撃として検出されるものの、車両への副作用が小さいため、正常メッセージとして扱うことで、正常メッセージを攻撃メッセージと誤検知してしまうことを抑制する。
[2.3 効果等]
以上のように、本実施の形態に係る異常検知装置10及び異常検知方法によれば、車載ネットワークに対する攻撃を、一定期間のメッセージ系列に攻撃イベントがあるかないかを検知し、攻撃イベントがあった場合に、攻撃メッセージを検知するという2段階で検知する。これにより、車載ネットワークに対する攻撃を精度よく検知することができる。
より具体的には、攻撃メッセージを検知する段階では、学習済みCNNを用いた検知と学習済みのLSTMを用いた検知と予め定めたルールに基づく検知とを並列に行い、結果をアンサンブル処理することで、ニューラルネットワークモデルによる検知とルールベースによる検知とを掛け合わせることができる。
これにより、攻撃メッセージの誤検知率をゼロに近づけることができるので、車載ネットワークに対する攻撃を精度よく検知することができる。
(変形例)
なお、本変形例では、Human Message Classifier143は、上述した予め定められたルールの別の例として、クラスタリングと回帰とを利用するルールに基づいて、一定期間のメッセージ系列に含まれる複数のメッセージのそれぞれが、攻撃メッセージであるか否かを判定する場合について説明する。換言すると、異常検知装置10Aは、図26に示すステップS243の詳細処理として、図27に示す詳細処理を行う場合に限らず、以下に説明する図28に示す詳細処理を行ってもよい。
図28は、図26に示すステップS243の詳細処理の別の例を示すフローチャートである。
図28において、まず、異常検知装置10Aは、受信間隔とセンサ値の差分を計算する(S2431A)。より具体的には、異常検知装置10Aは、ステップS21の入力処理で取得された現在のサブウィンドウ(一定期間)に含まれる複数のメッセージの受信間隔と、受信時刻で前後する2つのメッセージからなる組み合わせすべてのセンサ値の差分値を計算する。
次に、異常検知装置10Aは、ステップS2431Aで計算した受信間隔に基づいてメッセージを分類する(S2432A)。より具体的には、異常検知装置10Aは、ステップS2431Aで計算した受信間隔に基づいて、一定期間に含まれる複数のメッセージのそれぞれを、正常なメッセージと異常なメッセージとに分類する。
次に、異常検知装置10Aは、ステップS2432Aにおいて、一定期間に含まれる全メッセージが分類できたかを判定する(S2433A)。
ステップS2433Aにおいて、全メッセージが分類できた場合(S2433AでYes)、異常検知装置10Aは、ステップS2432Aにおけるメッセージの分類結果に基づき、各センサを判定する(S2434A)。
ここで、図29及び図30を用いて、メッセージの受信間隔に基づいて、一定期間に含まれる全メッセージが、正常なメッセージと異常なメッセージ(攻撃メッセージ)とに分類できる場合を概念的に説明する。
図29は、実施の形態2の変形例に係る一定期間に含まれる全メッセージが受信間隔に基づいて分類できる場合の異常なメッセージ系列の一例を示す図である。図29の(a)には、攻撃メッセージが正常メッセージの直後に挿入されている場合が示されている。図29の(b)には、攻撃メッセージが正常メッセージの直前に挿入されている場合が示されている。
図30は、実施の形態2の変形例に係る一定期間に含まれる全メッセージが受信間隔に基づいて分類できた場合の異常なメッセージ系列の分類結果の一例を示す図である。
図29の(a)及び(b)に示されるような場合、攻撃メッセージと正常メッセージとの受信間隔は、異常な間隔となっている。また、正常メッセージ間の受信間隔は既知である。これらから、受信間隔に基づいて、例えば図30に示すように、全メッセージが攻撃メッセージと正常メッセージとに分類できる。
一方、ステップS2433Aにおいて、全メッセージが分類できなかった場合(S2433AでNo)、異常検知装置10Aは、一定期間に含まれるメッセージとセンサとを複数のルールで判定する(S2435A)。
ここで、図31を用いて、メッセージの受信間隔に基づいて、一定期間に含まれる全メッセージが、正常なメッセージと攻撃メッセージとに分類できない場合を概念的に説明する。
図31は、実施の形態2の変形例に係る一定期間に含まれる全メッセージが受信間隔に基づいて分類できなかった場合の異常なメッセージ系列の分類結果の一例を示す図である。
例えば、攻撃メッセージが正常メッセージの直前または直後に挿入されず、正常メッセージの受信間隔の中間で挿入される場合には、図31に示すように、受信間隔に基づく正常メッセージと攻撃メッセージとの分類が正しくできない。つまり、攻撃メッセージが正常メッセージの受信間隔の中間で挿入される場合には、異常なメッセージ系列の受信間隔だけだと、攻撃メッセージと正常メッセージを区別できない場合が発生する。
以下、ステップS2434AとステップS2435Aとのうち、まず、ステップS2434Aの詳細処理すなわち全メッセージが分類できた場合の各センサの判定処理について説明する。
図32は、図28に示すステップS2434Aの詳細処理の一例を示すフローチャートである。図33Aは、図32に示すステップS24345でYesの場合の一例を概念的に示す図である。図33Bは、図32に示すステップS24347でYesの場合の一例を概念的に示す図である。図33Cは、図32に示すステップS24347でNoの場合の一例を概念的に示す図である。
ステップS2434Aにおいて、まず、異常検知装置10Aは、メッセージ内に複数のセンサの情報があるかを判定する(S24341)。より具体的には、異常検知装置10Aは、一定期間に含まれる全メッセージのそれぞれに複数のセンサから得たセンサ値が含まれていないかを判定する。
ステップS24341において、メッセージ内に複数のセンサの情報がない場合(S24341でNo)、異常検知装置10Aは、図28に示すステップS2432Aで行った全メッセージの分類結果を採用する(S24342)。より具体的には、異常検知装置10Aは、一定期間に含まれる全メッセージのそれぞれに複数のセンサから得たセンサ値が含まれていない場合、ステップS2432Aで行った全メッセージの分類結果を、ステップS24342の詳細処理の結果として出力する。
一方、ステップS24341において、メッセージ内に複数のセンサの情報がある場合(S24341でYes)、異常検知装置10Aは、センサ毎に、ステップS24343~ステップS24348の処理を行う。より具体的には、ステップS24341において、メッセージ内に複数のセンサの情報がある場合(S24341でYes)、異常検知装置10Aは、メッセージの受信間隔に基づいて、2グループに分ける処理を行う(S24343)。
次に、異常検知装置10Aは、図28に示すステップS2431Aで計算した差分値を用いて、ステップS24343で分けた2グループのうち少なくとも一方のグループでセンサ値の差分値が一定であるかを判定する(S24344)。
ステップS24344において、少なくとも一方のグループでセンサ値の差分値が一定でない場合(S24344でNo)、異常検知装置10Aは、ステップS24342に進む。
一方、ステップS24344において、少なくとも一方のグループでセンサ値の差分値が一定である場合(S24344でYes)、異常検知装置10Aは、2グループにわたってセンサ値が同じ値であるかを判定する(S24345)。
ステップS24345において、2グループにわたってセンサ値が同じ値である場合(S24345でYes)、異常検知装置10Aは、ステップS24348に進む。より具体的には、2グループにわたってセンサ値が同じ値である場合、例えば図33Aに示すように攻撃メッセージ及び正常メッセージのセンサ値がフラットとなっており、攻撃メッセージと正常メッセージとの区別がつかない。このため、異常検知装置10Aは、ステップS24348に進み、すべてのメッセージを正常メッセージと判定する。
一方、ステップS24345において、2グループにわたってセンサ値が同じ値でない場合(S24345でNo)、異常検知装置10Aは、クラスタリングのアルゴリズムとしてK-means法などを用いて、センサ値に関して2グループに分ける(S24346)。
次に、異常検知装置10Aは、ステップS24346の処理の結果、同じ値のセンサ値をもつグループがないかを判定する(S24347)。
ステップS24347において、同じ値のセンサ値をもつグループがない場合(S24347でYes)、ステップS24348に進む。より具体的には、ステップS24346の処理の結果、同じ値のセンサ値をもつグループがない場合、例えば図33Bに示すように、正常なセンサ値のコピーが並び、かつ正常なセンサ値(固定値)が変動していると考えられる。このため、異常検知装置10Aは、ステップS24348に進み、すべてのメッセージを正常メッセージと判定する。
一方、ステップS24347において、同じ値のセンサ値をもつグループがある場合(S24347でNo)、ステップS24342に進む。より具体的には、ステップS24346の処理の結果、同じ値のセンサ値をもつグループがある場合、例えば図33Cに示すように、正常なセンサ値でかつ一定の値のセンサ値のグループと、固定値のグループの2グループに分けられていると考えられる。このため、異常検知装置10Aは、ステップS24342に進み、ステップS2432Aで行った全メッセージの分類結果を採用する。
このようにして、異常検知装置10Aは、図28に示すステップS2433Aにおいて分類されたメッセージが同値攻撃によるものか否か(同値攻撃またはシフト攻撃によるものか)を、受信間隔及びセンサ値をクラスタリングし、正常または異常のグルーピングを行うことで判定することができる。
続いて、図28に示すステップS2435Aの詳細処理すなわち全メッセージが分類できなかった場合の各センサの判定処理について説明する。
図34は、図28に示すステップS2435Aの詳細処理の一例を示すフローチャートである。図35は、図28に示すステップS2435Aの詳細処理で用いる判定ルールを示す図である。図36Aは、分類できなかったメッセージが攻撃の終端であるかを概念的に説明するための図である。図36Bは、図35に示す同一グループ内の受信間隔ルールを概念的に説明するための図である。図36C及び図36Dは、図34に示すステップS24354でYesの場合の一例を概念的に示す図である。図36Eは、図34に示すステップS24359の判定結果の一例を示す図である。
ステップS2435Aにおいて、まず、異常検知装置10Aは、攻撃の終端であるかを判定する(S24351)。より具体的には、異常検知装置10Aは、ステップ2433Aにおいて分類できなかったメッセージが終端となる攻撃メッセージの続く正常メッセージであるかを判定する。
ここで、図36Aには、メッセージ系列において、現在のサブウィンドウで分類できなかったAとして示されるメッセージと、かつ、終端となる攻撃メッセージであるBとして示されるメッセージとが例示されている。すなわち、図36Aに示すように、Bとして示されるメッセージが攻撃メッセージの終端である場合、Aとして示される現在のサブウィンドウの1つ目のメッセージのみ、受信間隔が短くなっているものの、以降のメッセージの受信間隔は正常となっている。
攻撃の終端である場合、上記のように想定できるので、本変形例では、異常検知装置10Aは、以下の3つの条件を満たすか否かで攻撃の終端であるかを確認する。3つの条件を満たすか否かとは、現在のサブウィンドウの1つ目のメッセージだけが分類できず、かつ、他のメッセージは正常な受信間隔を示し、かつ、過去のサブウィンドウでは追加型攻撃があったという条件を満たすか否かである。
ステップS24351において、攻撃の終端であることを確認した場合(S24351でYes)、異常検知装置10Aは、ステップS24352に進み、すべてのセンサを正常と判定する(S24352)。
一方、ステップS24351において、攻撃の終端でないことを確認した場合(S24351でNo)、異常検知装置10Aは、センサ毎に、ステップS24353~ステップS24359の処理を行う。より具体的には、ステップS24351において、攻撃の終端でないことを確認した場合(S24351でNo)、異常検知装置10Aは、クラスタリングのアルゴリズムとしてK-means法などを用いて、メッセージの受信間隔に基づくクラスタリングを行う(S24353)。
次に、異常検知装置10Aは、クラスタリングを行い生成したグループに含まれる複数のメッセージが明らかに異常な受信間隔をもち、かつ、コピーパタン(同値)でないかを判定する(S24354)。
ステップS24354において、明らかに異常な受信間隔をもち、かつ、コピーパタン(同値)でない場合(S24354でYes)、同一グループ内の受信間隔ルールに基づいて判定する(S24355)。
ここで、明らかに異常な受信間隔をもつ場合とは、例えば攻撃メッセージ及び正常メッセージの受信間隔が乱れているなどにより、メッセージの受信間隔で明らかに正常、攻撃グループに分類できる場合に該当する。
また、同一グループ内の受信間隔ルールには、同じ受信間隔のメッセージ同士は同じ判定結果とすることが予め定めされている。より具体的には、同一グループ内の受信間隔ルールには、例えば図35の最上段に例示されるルールが予め定められている。
図35に示される同一グループ内の受信間隔ルールでは、正常グループに分類されればその受信間隔は正常、攻撃グループに分類されればその受信間隔は異常(攻撃されたもの)と判定することを定めている。例えば図36Bに示すように、同じ受信間隔のメッセージ同士は同じグループに分類されるからである。より具体的には、メッセージが例えば枠Aに含まれる場合には正常グループに分類されることになるので、その受信間隔は正常と判定できる。同様に、メッセージが例えば枠Bに含まれる場合には攻撃グループに分類されることになるので、その受信間隔は異常であり攻撃されたものと判定できる。
一方、ステップS24354において、明らかに異常な受信間隔をもたない、または、コピーパタン(同値)である場合(S24354でNo)、ステップS24356に進み、同値攻撃判定ルールを用いて判定する(S24356)。
ここで、異常な受信間隔をもたない場合とは、例えば図36Cに示すように、攻撃メッセージが正常メッセージの周期の中間に挿入され、攻撃メッセージ及び正常メッセージの受信間隔がほぼ均等になった場合に該当する。また、異常な受信間隔をもたない場合とは、ウィンドウの途中から攻撃メッセージが挿入された場合にも該当する。コピーパタン(同値)である場合とは、例えば図36Dに示すように、正常メッセージのセンサ値(正常値)と同値のセンサ値をもつ攻撃メッセージが挿入された場合に該当する。
また、同値攻撃判定ルールには、例えば図35の中段に例示されるルールが予め定められている。すなわち、図35に示される同値攻撃判定ルールでは、直前メッセージのセンサ値と差分値とを計算してグルーピングし、0の差分値が続くグループを正常、0でない差分値が続くグループを異常と判定することを定めている。
次に、異常検知装置10Aは、未分類のメッセージがあるかを判定する(S24357)。
ステップS24357において、未分類のメッセージがない場合(S24357でNo)、全メッセージが分類できたので、異常検知装置10Aは、処理を終了する。
一方、ステップS24357において、未分類のメッセージがある場合(S24357でYes)、過去のサブウィンドウが正常であるかを判定する(S24358)。ここで、異常検知装置10Aは、過去のサブウィンドウに含まれる複数のメッセージのセンサ値がすべて正常か否かを判定することで、過去のサブウィンドウが正常であるか否かを判定することができる。
ステップS24358において、過去のサブウィンドウが正常でない場合(S24358でNo)、ステップS24355の処理へ進む。
一方、ステップS24358において、過去のサブウィンドウが正常である場合(S24358でYes)、異常検知装置10Aは、回帰判定ルールを用いて判定する(S24359)。
ここで、回帰判定ルールには、例えば図35の最下段に例示されるルールが予め定められている。
図35に示される回帰判定ルールでは、正常メッセージのセンサ値は連続的に変化することから、回帰誤差が小さければ正常、回帰誤差が大きければ異常と判定することを定めている。例えば図36Eに示すように、枠で囲まれた過去のサブウィンドウが正常である場合、過去のサブウィンドウの最後の正常メッセージに続いて、現在のサブウィンドウ内では同傾向でセンサ値が連続して変化する正常メッセージの範囲が存在することが想定される。このため、枠で囲まれた過去のサブウィンドウの回帰直線を計算し、現在のサブウィンドウ内のメッセージが示すセンサ値と回帰直線との誤差を計算する。これにより、現在のサブウィンドウ内のメッセージが示すセンサ値との回帰誤差が小さければ正常、回帰誤差が大きければ異常(攻撃されたもの)と判定することができる。
このようにして、異常検知装置10Aは、図28に示すステップS2433Aにおいて受信間隔では分類できなかったメッセージを分類し、さらにセンサごとの判定することで、受信間隔では分類できなかったメッセージが正常または異常であることを判定することができる。
(他の実施態様の可能性)
以上、実施の形態において本開示の異常検知方法及び異常検知装置について説明したが、各処理が実施される主体や装置に関しては特に限定しない。ローカルに配置された特定の装置内に組み込まれたプロセッサなどによって処理されてもよい。またローカルの装置と異なる場所に配置されているクラウドサーバなどによって処理されてもよい。
なお、本開示は、上記実施の形態に限定されるものではない。例えば、本明細書において記載した構成要素を任意に組み合わせて、また、構成要素のいくつかを除外して実現される別の実施の形態を本開示の実施の形態としてもよい。また、上記実施の形態に対して本開示の主旨、すなわち、請求の範囲に記載される文言が示す意味を逸脱しない範囲で当業者が思いつく各種変形を施して得られる変形例も本開示に含まれる。
また、本開示は、さらに、以下のような場合も含まれる。
(1)上記の装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(2)上記の装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
(3)上記の装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(4)また、本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
(5)また、本開示は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本開示は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
本開示は、車載ネットワークにおいて送信されるメッセージについての異常を検知する異常検知方法、異常検知装置、及び、プログラムに利用でき、特に車載ネットワークとともに車両に搭載されて車載ネットワークにおいて送信されるメッセージについての異常を検知する異常検知方法、異常検知装置、及び、プログラムに利用できる。
10、10A 異常検知装置
11、11A 入力処理部
12 イベント分類処理部
13、13A 出力処理部
14A メッセージ分類処理部
111 メッセージ受信部
112 ウィンドウ生成処理部
113 画像化処理部
121 CNN
141 CNN Message Classifier
142 LSTM Message Classifier
143 Human Message Classifier
144 アンサンブル処理部
1000 コンピュータ
1001 入力装置
1002 出力装置
1004 内蔵ストレージ
1007 読取装置
1008 送受信装置
1009 バス

Claims (9)

  1. 車両内のネットワークを介してメッセージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける前記ネットワークの異常を検知するための異常検知方法であって、
    前記ネットワークから受信されたメッセージ系列のうちの一定期間のメッセージ系列に含まれる複数のメッセージの受信間隔またはセンサ値の推移を画像データ化し、
    学習済みCNN(Convolution Neural Networks)を用いて、画像データから、前記一定期間に攻撃メッセージが挿入されているか否かを分類し、
    前記一定期間に攻撃メッセージが挿入されている場合には、前記一定期間において攻撃メッセージが挿入される追加型攻撃がある旨の検知結果を出力する、
    異常検知方法。
  2. 前記ネットワークから受信されるメッセージ系列を、スライディングウィンドウを用いて分割することで、前記一定期間に含まれる複数のメッセージを取得し、
    取得した前記複数のメッセージから、前記複数のメッセージの受信間隔を表す画像データまたは前記複数のメッセージのセンサ値の推移を表す画像を生成することで、前記複数のメッセージの受信間隔またはセンサ値の推移を画像データ化する、
    請求項1に記載の異常検知方法。
  3. 前記一定期間に攻撃メッセージが挿入されている場合には、
    さらに、
    前記一定期間のメッセージ系列に含まれる複数のメッセージのそれぞれに含まれるセンサ値から、予め定められたルールに基づいて、前記複数のメッセージが、攻撃メッセージであるか否かを判定する、
    請求項1または2に記載の異常検知方法。
  4. 前記一定期間に攻撃メッセージが挿入されている場合には、
    さらに、
    前記一定期間のメッセージ系列に含まれる複数のメッセージのうち、受信時刻で前後する2つのメッセージからなる組み合わせすべてのセンサ値の差分値を計算し、
    計算した前記差分値に対して、グルーピングを行い、
    グルーピングされた各グループに含まれるすべての前記差分値が0であるかを判定し、
    前記すべての差分値が0でない場合、前記一定期間に攻撃メッセージが挿入されている追加型攻撃がある旨の検知結果を出力し、
    前記すべての差分値が0である場合、前記一定期間のうち、前記差分値が0であるグループのメッセージは攻撃メッセージでないとして前記検知結果を出力する、
    請求項1~3のいずれか1項に記載の異常検知方法。
  5. 前記一定期間に攻撃メッセージが挿入されている場合には、
    さらに、
    前記学習済みCNNと異なる学習済みCNNを用いて、前記一定期間のメッセージ系列に含まれる複数のメッセージから、前記複数のメッセージのうち、攻撃メッセージであるメッセージと、攻撃されたセンサとを検知する、
    請求項1または2に記載の異常検知方法。
  6. 前記一定期間に攻撃メッセージが挿入されている場合には、
    さらに、
    学習済みLSTM(Long short-term memory)を用いて、前記一定期間のメッセージ系列に含まれる複数のメッセージから、前記複数のメッセージが、攻撃メッセージであるか否かを検知する、
    請求項1または2に記載の異常検知方法。
  7. 前記一定期間に攻撃メッセージが挿入されている場合には、
    さらに、
    前記一定期間のメッセージ系列に含まれる複数のメッセージのそれぞれに含まれるセンサ値から、予め定められたルールに基づいて、前記複数のメッセージが、攻撃メッセージであるか否かを判定することで得た判定結果を取得し、
    前記学習済みCNNと異なる学習済みCNNを用いて、前記一定期間のメッセージ系列に含まれる複数のメッセージから、前記複数のメッセージのうち、攻撃メッセージであるメッセージと、攻撃されたセンサとを検知した第1検知結果を取得し、
    学習済みLSTMを用いて、前記一定期間のメッセージ系列に含まれる複数のメッセージから、前記複数のメッセージが、攻撃メッセージであるか否かを検知した第2検知結果を取得し、
    取得した前記判定結果、前記第1検知結果、及び前記第2検知結果をアンサンブル処理して出力し、
    前記アンサンブル処理では、
    前記判定結果、前記第1検知結果、及び前記第2検知結果のうちのいずれかを選択する、または、取得した前記判定結果、前記第1検知結果、及び前記第2検知結果を荷重平均することで統合する、
    請求項1または2に記載の異常検知方法。
  8. 車両内のネットワークを介してメッセージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける前記ネットワークの異常を検知するための異常検知装置であって、
    プロセッサと、メモリとを備え、
    前記ネットワークから受信されたメッセージ系列のうちの一定期間のメッセージ系列に含まれる複数のメッセージの受信間隔またはセンサ値の推移を画像データ化し、
    学習済みCNNを用いて、画像データから、前記一定期間に攻撃メッセージが挿入されているか否かを分類し、
    前記一定期間に攻撃メッセージが挿入されている場合には、前記一定期間において攻撃メッセージが挿入される追加型攻撃がある旨の検知結果を出力する、
    異常検知装置。
  9. 車両内のネットワークを介してメッセージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける前記ネットワークの異常を検知するための異常検知方法をコンピュータに実行させるプログラムであって、
    前記ネットワークから受信されたメッセージ系列のうちの一定期間のメッセージ系列に含まれる複数のメッセージの受信間隔またはセンサ値の推移を画像データ化し、
    学習済みCNNを用いて、画像データから、前記一定期間に攻撃メッセージが挿入されているか否かを分類し、
    前記一定期間に攻撃メッセージが挿入されている場合には、前記一定期間において攻撃メッセージが挿入される追加型攻撃がある旨の検知結果を出力することを、
    コンピュータに実行させるプログラム。
JP2022565387A 2020-11-24 2021-11-24 Pending JPWO2022114025A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063117690P 2020-11-24 2020-11-24
PCT/JP2021/043063 WO2022114025A1 (ja) 2020-11-24 2021-11-24 異常検知方法、異常検知装置、及び、プログラム

Publications (2)

Publication Number Publication Date
JPWO2022114025A1 JPWO2022114025A1 (ja) 2022-06-02
JPWO2022114025A5 true JPWO2022114025A5 (ja) 2023-08-08

Family

ID=81755555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022565387A Pending JPWO2022114025A1 (ja) 2020-11-24 2021-11-24

Country Status (5)

Country Link
US (1) US20230283622A1 (ja)
EP (1) EP4254236A4 (ja)
JP (1) JPWO2022114025A1 (ja)
CN (1) CN116457783A (ja)
WO (1) WO2022114025A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115150198B (zh) * 2022-09-01 2022-11-08 国汽智控(北京)科技有限公司 车载入侵检测系统、方法、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018168291A1 (ja) * 2017-03-13 2018-09-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報処理方法、情報処理システム、及びプログラム
JP2019216305A (ja) * 2018-06-11 2019-12-19 国立大学法人 東京大学 通信装置、パケット処理方法及びプログラム
CN111031071B (zh) * 2019-12-30 2023-01-24 杭州迪普科技股份有限公司 恶意流量的识别方法、装置、计算机设备及存储介质
CN111245848B (zh) * 2020-01-15 2022-11-25 太原理工大学 一种分层依赖关系建模的工控入侵检测方法

Similar Documents

Publication Publication Date Title
EP3598329B1 (en) Information processing method, information processing system, and program
CN108401491B (zh) 信息处理方法、信息处理系统以及程序
RU2680738C1 (ru) Каскадный классификатор для приложений компьютерной безопасности
CN103593609B (zh) 一种可信行为识别的方法和装置
WO2018168291A1 (ja) 情報処理方法、情報処理システム、及びプログラム
KR20070068845A (ko) 네트워크 침입 탐지 시스템 및 그 탐지 방법
US20200234101A1 (en) Device and method for classifying data in particular for a controller area network or an automotive ethernet network
CN111508588B (zh) 训练装置、训练方法和计算机可读记录介质
CN114154990B (zh) 一种基于在线支付的大数据防攻击方法及存储介质
US20230283622A1 (en) Anomaly detection method, anomaly detection device, and recording medium
JPWO2022114025A5 (ja)
WO2021260984A1 (ja) 情報処理装置、情報処理方法及びプログラム
CN111586071A (zh) 一种基于循环神经网络模型的加密攻击检测方法及装置
Francia et al. Applied machine learning to vehicle security
US11297082B2 (en) Protocol-independent anomaly detection
WO2020023742A1 (en) Cyber anomaly detection using an artificial neural network
CN111507934B (zh) 训练设备、训练方法和计算机可读记录介质
Dwivedi Anomaly detection in intra-vehicle networks
CN115470504B (zh) 结合人工智能的数据风险分析方法及服务器
CN115189961A (zh) 一种故障识别方法、装置、设备及存储介质
CN104615922B (zh) 一种基于用户软件行为模式的身份认证装置和方法
CN112560085A (zh) 业务预测模型的隐私保护方法及装置
CN111209552A (zh) 一种基于用户行为的身份认证方法及装置
JP7312965B2 (ja) 情報処理装置、情報処理方法、およびプログラム
WO2023166571A1 (ja) 評価方法、評価プログラム及び情報処理装置