(57)【要約】  検知装置は、1つ以上の電子制御装置から送信される1つ以上の通信データから、所定の条件を満たす通信データに含まれるペイロードの少なくとも一部と、その通信データの通信間隔を算出することができる情報と、その通信データの通番とを対象データとして抽出する対象データ抽出部と、抽出した対象データを用いて、同一の通番を持ち、2つ以上の対象データから、ペイロードの少なくとも一部に対応する情報と、通信間隔を示す情報とを含む部分系列を作成する部分系列作成部と、作成した部分系列を用いて、ペイロードの少なくとも一部の順序関係と通信間隔に基づいて、所定の通信データを検知する検知部とを含み、所定の条件は、周期的に送信され、かつ所定のイベントにも連動して送信される通信データのみを抽出するための条件である。
2019142602.tif 000002
【特許請求の範囲】
【請求項１】
一連の通信データには同一の通番が与えられるものとし、1つ以上の電子制御装置から送信される1つ以上の通信データから、所定の条件を満たす通信データに含まれるペイロードの少なくとも一部と、その通信データの通信間隔を算出することができる情報と、その通信データの通番とを対象データとして抽出する対象データ抽出部と、
抽出した対象データを用いて、同一の通番を持ち、2つ以上の対象データから、ペイロードの少なくとも一部に対応する情報と、通信間隔を示す情報とを含む部分系列を作成する部分系列作成部と、
作成した部分系列を用いて、ペイロードの少なくとも一部の順序関係と通信間隔に基づいて、所定の通信データを検知する検知部とを含み、
前記所定の条件は、周期的に送信され、かつ所定のイベントにも連動して送信される通信データのみを抽出するための条件である、
検知装置。
【請求項２】
請求項１の検知装置であって、
通信データに含まれるペイロードの少なくとも一部の取り得る値の種類数が閾値以下であることが、前記所定の条件である、
検知装置。
【請求項３】
請求項１の検知装置であって、
通信データに含まれるデータの種別と、通信データの送信元と、通信データの宛先との少なくとも何れかが予め定めたものであること、または、通信データに含まれるデータの種別と、通信データの送信元と、通信データの宛先との少なくとも何れかが予め定めた変化をするものであることが、前記所定の条件である、
検知装置。
【請求項４】
請求項１から請求項３の何れかの検知装置であって、
前記検知部は、
2つ以上のペイロードの少なくとも一部の変化量と通信間隔に基づいて、所定の通信データを検知する、
検知装置。
【請求項５】
請求項１から請求項４の何れかの検知装置であって、
前記検知部は、
ペイロードの少なくとも一部の取り得る値を複数の集合に分類し、ペイロードの少なくとも一部が属している集合の順序関係と通信間隔に基づいて、所定の通信データを検知する、
検知装置。
【請求項６】
一連の通信データには同一の通番が与えられるものとし、1つ以上の電子制御装置から送信される1つ以上の通信データから、所定の条件を満たす通信データに含まれるペイロードの少なくとも一部と、その通信データの通信間隔を算出することができる情報と、その通信データの通番とを対象データとして抽出する対象データ抽出ステップと、
抽出した対象データを用いて、同一の通番を持ち、2つ以上の対象データから、ペイロードの少なくとも一部に対応する情報と、通信間隔を示す情報とを含む部分系列を作成する部分系列作成ステップと、
作成した部分系列を用いて、ペイロードの少なくとも一部の順序関係と通信間隔に基づいて、所定の通信データを検知する検知ステップとを含み、
前記所定の条件は、周期的に送信され、かつ所定のイベントにも連動して送信される通信データのみを抽出するための条件である、
検知方法。
【請求項７】
請求項１から請求項５の何れかの検知装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両、工作機械、建設機械、農業機械等の機械類に搭載されたネットワーク、そのネットワークに接続された通信装置、および、それらで構成される通信システムで伝達される通信データの系列から所定の通信データを検知する検知装置、その方法、及びプログラムに関する。
【背景技術】
【０００２】
車両(自動車、特殊車両、自動二輪車、自転車等)、工作機械、建設機械、農業機械等の機械類には複数の電子制御装置(ECU: Electronic Control Unit)が搭載されているものがあり、それらECU間の通信ネットワークに用いられる代表的なものに、コントローラエリアネットワーク(CAN: Controller Area Network)がある。 CANのネットワーク構成は各ECUの通信線が共有される、いわゆるバス型構成をとる。ECUのバスにおける通信手順には、CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance)、即ち、通信衝突する場合には優先順位の高い通信から順次送信する手順が用いられる。CAN上の各ECUの通信にはIDが含まれており、IDは通信調停の優先順位、ペイロードの内容や送信ノード等の識別に用いられる。ペイロードの長さはID毎に１バイトから8バイトまで１バイト刻みのいずれか規定されており、ペイロードの内容は設計者が自由に指定できる。【０００３】
これらの車両機器通信ネットワークに対するサイバー攻撃の危険性が示唆されている。ネットワークへの不正なECUの接続や既存ECUの不正な動作書き換え等の手段により、攻撃対象機能と関連するIDの攻撃送信を挿入し、その対象機能の不正な動作を誘発可能であることが知られている。【０００４】
これらの攻撃通信を検出する方法として、通信間隔に着目した方法とペイロードの順序関係に着目した方法とがある。通信間隔に着目した手法として非特許文献１が知られている。非特許文献１では、周期的に送信されるIDの通信間隔が周期からずれていることに基づいて攻撃を検知している。ペイロードの順序関係に着目した手法として非特許文献２が知られている。非特許文献２では、速度やドアの開閉を状態として捉え、状態の遷移を隠れマルコフモデルでモデル化し、起こる確率が低い状態の遷移を攻撃として検知している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】大塚、石郷岡、「既存ECUを変更不要な車載LAN向け侵入検知手法」、情報処理学会研究報告、Vol.2013-EMB-28, No.6, pp.31-35, 2013.
【非特許文献２】S. N. Narayanan, S. Mittal, and A. Joshi. “Using Data Analytics to Detect Anomalous States in Vehicles”, arXiv:1512.08048, 2015.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の攻撃通信検知手法では、周期的に送信され、かつ運転手の操作等のイベントにも連動して送信されるID（以下、周期＋イベント型と呼ぶ）に対する攻撃通信の検知は困難である。具体的には、周期＋イベント型のIDではイベントが発生した際に、攻撃と同様に通信間隔が周期からずれるため、通信間隔に着目した方法では正常なイベントと攻撃通信を区別することができない。ペイロードの順序関係に着目した方法でも、攻撃者が正規のイベントによるペイロードの遷移と同一となるように攻撃通信を挿入すると検知することができない。【０００７】
そこで、本発明では、ペイロードの順序関係と通信間隔の両方に着目し、周期＋イベント型のIDに対して挿入された攻撃通信を検知する検知装置、その方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明の一態様によれば、検知装置は、一連の通信データには同一の通番が与えられるものとし、1つ以上の電子制御装置から送信される1つ以上の通信データから、所定の条件を満たす通信データに含まれるペイロードの少なくとも一部と、その通信データの通信間隔を算出することができる情報と、その通信データの通番とを対象データとして抽出する対象データ抽出部と、抽出した対象データを用いて、同一の通番を持ち、2つ以上の対象データから、ペイロードの少なくとも一部に対応する情報と、通信間隔を示す情報とを含む部分系列を作成する部分系列作成部と、作成した部分系列を用いて、ペイロードの少なくとも一部の順序関係と通信間隔に基づいて、所定の通信データを検知する検知部とを含み、所定の条件は、周期的に送信され、かつ所定のイベントにも連動して送信される通信データのみを抽出するための条件である。
【発明の効果】
【０００９】
本発明によれば、周期＋イベント型のIDに対して挿入された攻撃通信を検知することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】第一実施形態に係る検知装置の機能ブロック図。
【図２】第一実施形態に係る検知装置の学習フェーズの処理フローの例を示す図。
【図３】第一実施形態に係る検知装置の検知フェーズの処理フローの例を示す図。
【図４】既知通信データのデータ例を示す図。
【図５】対象データ抽出部の処理を説明するための図。
【図６】部分系列作成部の処理を説明するための図。
【図７】部分系列作成部の処理を説明するための図。
【図８】対象通信データのデータ例を示す図。
【図９】検知部の処理（検知例１）を説明するための図。
【図１０】検知部の処理（検知例２）を説明するための図。
【図１１】検知部の処理（検知例３）を説明するための図。
【図１２】検知部の処理（検知例４）を説明するための図。
【図１３】検知部の処理（検知例４）を説明するための図。
【図１４】検知部の処理（検知例５）を説明するための図。
【図１５】検知部の処理（検知例５）を説明するための図。
【図１６】検知部の検知例４と検知例５の違いを説明するための図。
【図１７】検知部の検知例４と検知例５の違いを説明するための図。
【図１８】収集用車両の車載システムの構成例を示す図。
【図１９】実行用車両の車載システムの構成例を示す図。
【図２０】対象データ抽出ルールの例を示す図。
【図２１】部分系列生成ルールの例を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。以下の説明において、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
【００１２】
＜第一実施形態＞
図１は第一実施形態に係る検知装置１の機能ブロック図を示す。
【００１３】
検知装置１は、対象通信入力部２と、既知通信入力部３と、対象データ抽出部４と、部分系列作成部５と、検知部６と、検知器作成部７とを含む。
【００１４】
検知装置１は、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。検知装置１は、例えば、中央演算処理装置の制御のもとで各処理を実行する。検知装置１に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。検知装置１の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。検知装置１が備える各記憶部は、例えば、RAM（Random Access Memory）などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ（Flash Memory）のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。
【００１５】
検知装置１には、学習フェーズと検知フェーズがある。図２は学習フェーズの処理フローを示し、図３は検知フェーズの処理フローを示す。
【００１６】
学習フェーズでは、検知装置１は、既知通信データを入力とし、検知器を生成し、生成した検知器を検知部６に設定する。
【００１７】
検知フェーズでは、検知装置１は、対象通信データを入力とし、検知器を用いて、所定の通信データを検知し、検知結果を出力する。
【００１８】
なお、各フェーズを別装置により実装してもよい。その場合、学習フェーズを実装する装置(以下、学習装置ともいう)は、対象通信入力部２と検知部６とを含まなくともよい。検知フェーズを実装する検知装置は、既知通信入力部３と検知器作成部７とを含まなくともよい。
【００１９】
[学習フェーズ]
まず、図１及び図２を用いて学習フェーズにおける各部の処理内容を説明する。
【００２０】
＜既知通信入力部３＞
既知通信入力部３は、正常であることが既知である通信データ、または攻撃であることが既知である通信データ(以下、まとめて既知通信データともいう)を入力として許容し（Ｓ３）、出力する。
【００２１】
図４は、既知通信データの例を示す。既知通信データには、通番、時刻、データ種別、送信元、宛先、単数または複数のデータ、ラベルが含まれる。データ種別、送信元、宛先は、これらのうち少なくともどれか1つが含まれていればよいが、複数が含まれていてもよい。図４はデータ種別を含む例である。ただし、既知通信データに同一のデータ種別、または送信元、または宛先の通信のみが含まれている場合は、データ種別、送信元、宛先の情報が全て含まれていなくてもよい。既知通信データのデータ種別、送信元、宛先が決まっており、区別する必要がないためである。通番は同一のログに含まれる通信データ(一連の通信データ)には同一の番号が与えられる。時刻は、2017/10/30 12:00等の時刻が考えられるが、通信間隔が算出することができる情報であれば、ログの記録を開始してからの経過時間等でも良い。データ種別としてはCAN ID等が考えられるが、同一のデータ種別の通信が特定できる情報であればどのような情報であってもよい。送信元や宛先も、同一の送信元または宛先の通信が特定できる情報であればどのような情報であってもよい。データは、数値が考えられるが、文字列等の他の形式でもよい。1つの通信に含まれるデータの数はデータ種別ごとに異なっていても良いが、同一のデータ種別の通信に含まれるデータの数は同一である必要がある。ラベルは、「正常」、「攻撃」等が考えられるが、「挿入」、「書き換え」、「削除」等でもよい。ラベルは、通信ごとに記録されていることが考えられるが、通番ごと、通番内のいくつかの通信ごとに記録されていても良い。ただし、既知通信データが全て「正常」または「攻撃」等に決まっている(1つのラベルに対応するものであり統一されている)場合には、ラベルを含まなくともよい。
【００２２】
＜対象データ抽出部４＞
対象データ抽出部４は、既知通信入力部３で許容された既知通信データ（以下、単に通信データともいう）を入力とし、1つ以上の通信データから、所定の条件を満たす通信データに含まれるペイロードの少なくとも一部と、その通信データの通信間隔を算出することができる情報と、その通信データの通番と、ラベルとを対象データとして抽出し（Ｓ４）、出力する。以下、ペイロードの少なくとも一部を単にデータとも言う。なお、所定の条件を満たさない通信データは、抽出しなくともよい。抽出する対象データは、データの取り得る値の種類数が事前に決められた閾値以下のデータを対象とする方法等が考えられるが、事前に手動で他の抽出条件を設定してもよい。
【００２３】
所定の条件としては、例えば、以下のような条件が考えられる。
(1)通信データに含まれるデータの取り得る値の種類数が閾値以下であること
(2)通信データに含まれるデータの種別と、通信データの送信元と、通信データの宛先との少なくとも何れかが予め定めたものであること
(3)通信データに含まれるデータの種別と、通信データの送信元と、通信データの宛先との少なくとも何れかが予め定めた変化をするものであること
図５は、検査対象データの抽出例を示す。
【００２４】
このような条件を設けることで、周期+イベント型の通信データのみを抽出する。つまり、所定の条件とは、周期+イベント型の通信データのみを抽出するための条件と言える。なお、周期+イベント型の通信データとは、周期的に送信され(発生し)、かつ所定のイベント(例えば、ドアの開閉変化やライトのON/OFFの状態変化等)にも連動して送信される通信データである。
【００２５】
上述の(1)の条件では、一般的に周期+イベント型の通信データに含まれるデータは取り得る値の種類数が少ないという特徴を利用し、周期+イベント型の通信データのみを抽出する。なお、「データの取り得る値の種類数」は、例えば、あるデータが取り得る値が0,1なら2、0〜199を1刻みで取れるなら200である。
【００２６】
また、特定のイベントの発生によって生じるデータ種別、または送信元、または宛先やデータが特定できている場合は、上述の(2)の条件を設定することで、周期+イベント型の通信データのみを抽出する。
【００２７】
また、特定のイベントの発生によって連動して変化するデータ種別、または送信元、または宛先やデータが特定できている場合は、上述の(3)の条件を設定することで、周期+イベント型の通信データのみを抽出する。
【００２８】
上述の条件(2),(3)の場合、イベントの発生時のみ、特定のデータ種別等が生じる、または特定のデータ種別等に変化が生じるため、抽出の精度を向上させることができる。なお、複数のデータ種別、または送信元、または宛先の通信データを抽出する場合は、それらの通信データを抽出しうるように条件を設定すればよい。例えば、「種別」=1、または、「種別」=2であること、を所定の条件とすればよい。
【００２９】
通信データに含まれるペイロードに複数のデータが含まれる場合には、予め定めたデータを前述のペイロードの少なくとも一部として設定しておけばよい。例えば、図５の例では通信データに含まれるデータ１、データ２、データ３のうち、データ１をペイロードの一部としている。
【００３０】
＜部分系列作成部５＞
部分系列作成部５は、対象データ抽出部４で抽出した対象データを用いて、同一の通番を持ち、2つ以上の対象データから、データに対応する情報と、通信間隔を示す情報と、ラベルとを含む部分系列を作成し（Ｓ５）、出力する。
【００３１】
図６及び図７は、部分系列の作成例を示す。
【００３２】
例えば、同一の通番をもつ対象データの系列から、複数の対象データを抽出して部分系列を作成する。
【００３３】
例えば、連続する事前に決められた数の対象データを部分系列として作成してもよいが、事前に決められた時間内に送信された対象データを部分系列として作成してもよい。連続する事前に決められた数の対象データを部分系列として作成する場合、事前に決められた数の対象データがない場合には、その対象データからは部分系列を作成しない構成としてもよい（図７参照）。対象データの系列に複数のデータ種別、または送信元、または宛先が含まれる場合は、複数のデータ種別、または送信元、または宛先が混在するように部分系列を作成してもよいし、データ種別毎、または送信元毎、または宛先毎に部分系列を作成してもよい。
【００３４】
対象データの系列に複数のデータ種別、または送信元、または宛先からの対象データが含まれる場合は、それらの情報を部分系列に含めてもよい。
【００３５】
部分系列作成部５は、対象データに含まれる通信データの通信間隔を算出することができる情報から通信間隔を算出し、部分系列の一部とする。例えば、二つの通信データの送信時刻からそれら二つの通信データの通信間隔を算出して部分系列の一部とする。(i)部分系列における直前の通信データの時刻との差分を算出してもよいし、(ii)直前の同一のデータ種別、または送信元、または宛先からの通信データの時刻との差分を算出してもよい。さらに、直前のデータの時刻との差分だけでなく、(iii)2つ前や3つ前のデータとの時刻の差分を通信間隔として用いてもよい。通信間隔を示す情報としては、例えば、上述の(i)〜(iii)等が考えられる。
【００３６】
データに対応する情報として、(a)データそのもの、(b)二つのデータの間の変化量、(c)データの取りうる値を分類して作成された複数の集合のうち、どの集合に属しているかを示す情報等が考えられる。
【００３７】
＜検知器作成部７＞
検知器作成部７は、既知通信データに基づき作成した部分系列を入力とし、これらの値を用いて、検知器を作成し（Ｓ７）、出力する。検知器とは、入力データ(本実施形態では対象通信データから作成した部分系列)を入力したときに、検知結果（正常、攻撃等）を出力するものである。検知器は、検知部６で用いるものであり、検知の方法に合わせて作成するため、その作成方法は、検知部６で合わせて説明する。
【００３８】
学習フェーズで作成した検知器を検知フェーズに移る前に、同一装置、または、別装置の検知部６に設定する。
【００３９】
[検知フェーズ]
次に、図１及び図３を用いて検知フェーズにおける各部の処理内容を説明する。
【００４０】
＜対象通信入力部２＞
対象通信入力部２は、検知対象の通信データ(対象通信データ)を入力として許容し（Ｓ２）、出力する。
【００４１】
図８は、対象通信データの例を示す。対象通信データに含まれる情報の種類は、例えば、既知通信データと同じである。ただし、ラベルを含まない。
【００４２】
＜対象データ抽出部４及び部分系列作成部５＞
対象データ抽出部４及び部分系列作成部５における処理Ｓ４，Ｓ５は、処理対象が既知通信データに基づくデータではなく、対象通信データに基づくデータをあることを除いて学習フェーズと同じである。なお、ラベルを含まない対象通信データに基づくデータに対して処理を行うため、ラベルに対する処理は行わない。
【００４３】
＜検知部６＞
検知部６は、対象通信データに基づき作成した部分系列を入力とし、これらの値と検知器とを用いて、データの順序関係と通信間隔に基づいて、所定の通信データを検知し（Ｓ６）、検知結果(攻撃、正常等)を出力する。なお、ここでいう順序関係とは時間的な順序関係を意味する。
【００４４】
以下、検知方法と検知器とを例示する。以下の検知例では、所定の通信データとして、攻撃と見做される通信データを検知するが、用途に合わせて他の通信データ(「正常」、「攻撃」、「挿入」、「書き換え」、「削除」等)を検知してもよい。
【００４５】
（検知例１）
既知通信データから作成された部分系列に対象通信データから作成された部分系列と同一のものがあるかに基づいて所定の通信データを検知する。
【００４６】
この場合、予め既知通信データから作成された部分系列を図示しない記憶部に記憶しておく。検知器は、対象通信データから作成された部分系列を入力とし、図示しない記憶部に対象通信データから作成された部分系列と同一の部分系列が存在するか否かを検索し、検索結果に基づき検知結果を求め、出力する。検知器作成部７は、既知通信データから作成された部分系列からなるデータベースと、対象通信データから作成された部分系列をデータベースの中から検索する検索機能とを含む検知器を作成する。図９は、検知例１を説明するための図である。
【００４７】
図９の例では、既知通信データから作成された部分系列の通番2と、対象通信データから作成された部分系列の通番1は同一であり、既知通信データから作成された部分系列の通番2のラベルは正常なので、この対象通信データから作成された部分系列は正常と判断される。攻撃を検知する場合には、この対象通信データは攻撃として検知されない。
【００４８】
例えば、既知通信データから作成された部分系列のラベルが攻撃の場合には、その部分系列と同一の対象通信データから作成された部分系列を、攻撃と判断し、検出する。
【００４９】
例えば、既知通信データが全て「正常」等に決まっており(統一されており)、既知通信データにラベルが含まれない場合には、対象通信データから作成された部分系列と同一の部分系列が図示しない記憶部に存在する場合には、その統一されたものと同一(「正常」等)であると判断する。
【００５０】
以下の検知例では、既知通信データとして正常な通信データのみを用いた例を示すが、正常と攻撃の通信データを用いて異常検知手法を適用してもよい。また、設計書や仕様書から検知ルールを事前に作成し、そのルールに従って検知してもよい。
【００５１】
（検知例２）
ベイジアンネットワークやニューラルネットワーク等の機械学習手法を用いて検知器を作成し、攻撃を検知してもよい。ベイジアンネットワークやニューラルネットワーク等の機械学習手法により、所定の通信データを検知するためのモデルを学習し、このモデルを用いて検知結果を求める。
【００５２】
ベイジアンネットワークを用いた場合の挙動を示す（図１０参照）。図１０では既知通信データとして正常な通信データのみを用いて異常検知手法を適用するものとし、ラベルを省略している。ベイジアンネットワークでは、まず部分系列に含まれるデータと通信間隔間に依存関係が存在するかを推定する。図１０では、2番目のデータの生起確率が、1番目のデータと通信間隔に依存していると推定された場合の例を示している。依存関係の推定が完了したら、既知通信データから条件つき確率を推定する。例えば、1番目のデータが「0」であり、通信間隔が「0’01”」である条件のとき、2番目のデータが「1」の場合が4回、「0」の場合が1回存在するため、「1」となる確率が4/(4+1)=0.8、「0」となる確率が1/(4+1)=0.2と算出される。条件付確率はこの様に求めてもよいし、事前分布を仮定して算出してもよい。条件付確率を求める処理がモデルの学習に相当する。このようにして、既知通信データを用いて、ベイジアンネットワークを含むモデルを備える検知器を作成する。
【００５３】
対象通信データの判定では、検知器は、対象通信データから作成された部分系列を入力とし、検知結果を出力する。例えば、検知器は、部分系列を入力とし、ベイジアンネットワークにて条件つき確率を推定し、各部分系列の2番目のデータの条件つき確率が閾値（例えば、0.3）以上の場合は正常、閾値未満の場合は攻撃と判定する。図１０の例では対象通信データから作成された部分系列の通番1は条件つき確率が0.8で閾値以上のため「正常」と判定され、通番2は条件つき確率が0.2で閾値未満のため攻撃と判定される。
【００５４】
この場合、検知器作成部７は、既知通信データから作成された部分系列からなるデータベースから学習したモデルと、対象通信データから作成された部分系列をモデルに入力して得られる出力値（条件付き確率）と閾値との大小関係に基づき検知結果を求める判定機能とを含む検知器を作成する。なお、モデルは上述のモデルに限定されない。要は、所定の通信データを検知することができるモデルであればどのようなものであってもよく、モデルの出力がそのまま検知結果であってもよい。既知通信データに攻撃や正常等のラベルを含んだものを学習データとしてモデルを学習すれば、モデルの出力自体が攻撃や正常等を示す検知結果となる。この場合、モデル自体が検知器に相当する。
【００５５】
（検知例３）
図１１は、互いに独立な複数のデータが含まれる場合の攻撃の検知例を示す。
【００５６】
この例では、データ1とは独立なデータ2が部分系列に含まれている。例えば、データ1はライトのON/OFFの状態値を示し、データ2は送信ごとに1ずつ増加するカウンタを示す。対象通信データから作成された部分系列と同一の既知通信データから作成された部分系列は存在しないため、この部分系列は攻撃と検知される。しかし、データ1の挙動は図１０と同一であることから正常である。さらに、データ2がカウンタとして動作するデータであった場合、対象通信データから作成された部分系列のデータ2の挙動も正常である。したがって、図１１の部分系列を攻撃と検知するのは誤りである。この部分系列からデータ1だけ抽出した場合は図１０と同一となるため、正常と判定され誤検知を防ぐことができる。このように、検査対象のデータを限定することで、誤検知を削減し検知精度を向上させることができる。
【００５７】
この場合、検知器作成部７は、既知通信データから作成された部分系列(ただしデータ２を除く)を用いて、ベイジアンネットワークやニューラルネットワーク等の機械学習手法により、検知モデルを学習する。検知モデルは、部分系列(ただしデータ２を除く)を入力とし、検知結果を出力するモデルである。
【００５８】
（検知例４）
図１３は、データの変化量に基づく検知例を示す。図１２及び図１３を用いてデータをそのまま用いた場合の検知結果とデータの変化量を用いた場合の検知結果の違いを示す。データをそのまま用いた場合では、対象通信データから作成された部分系列と同一の既知通信データから作成された部分系列が存在しないため、攻撃と検知される（図１２参照）。このデータが、速度等のデータであった場合は、対象通信データから作成された部分系列はなめらかに速度が変化しており正常な動作であるため検知結果は誤りである。
【００５９】
これらのデータから変化量を算出した場合は、対象通信データから作成された部分系列と既知通信データから作成された部分系列に同一の部分系列が存在するため、正常と判定される（図１３）。このように、速度等のデータの値より変化量の方がばらつきが少ない場合は、データの変化量を算出することで、データの増加や減少等の挙動に着目して検知することができ、誤検知を削減し検知精度を向上させることができる。
【００６０】
この場合、予め既知通信データから作成された部分系列を用いて、部分系列に含まれるデータの変化量(例えば差分)を求め、通番と変化量と送信間隔との組合せを新たな部分系列として図示しない記憶部に記憶しておく。検知器は、対象通信データから作成された部分系列を入力とし、その部分系列に含まれるデータの変化量を求め、これを新たな部分系列とし、図示しない記憶部に対象通信データから作成された新たな部分系列が存在するか否かを検索し、検索結果に基づき検知結果を求め、出力する。検知器作成部７は、既知通信データから作成された部分系列から新たな部分系列(通番と変化量と送信間隔との組合せ)を生成する機能と、新たな部分系列からなるデータベースと、対象通信データから作成された部分系列から新たな部分系列(通番と変化量と送信間隔との組合せ)を生成する機能と、データベースの中から対象通信データに基づき生成された新たな部分系列を検索する検索機能とを含む検知器を作成する。
【００６１】
（検知例５）
図１５にデータがどの集合に属するかに基づく検知例を示す。図１４、図１５を用いて、データをそのまま用いた場合の検知結果とデータがどの集合に属するかに基づいて検知した場合の違いを示す。データをそのまま用いた場合は、対象通信データから作成された部分系列と同一の既知通信データから作成された部分系列が存在しないため、攻撃として検知される（図１４参照）。データがセンサから取得された値であり、誤差が生じる可能性がある場合、図１４内の破線で囲まれた数字の違いは誤差と考えられ、攻撃と検知するのは誤りである。データがどの集合に属するかに基づくことで、この誤差を許容することができ、正常と判定される（図１５参照）。
【００６２】
この場合、予め既知通信データから作成された部分系列を用いて、部分系列に含まれるデータを2以上の集合に分類し、通番と集合と送信間隔との組合せを新たな部分系列として図示しない記憶部に記憶しておく。検知器は、対象通信データから作成された部分系列を入力とし、その部分系列に含まれるデータを2以上の集合に分類し、これを新たな部分系列とし、図示しない記憶部に対象通信データから作成された新たな部分系列が存在するか否かを検索し、検索結果に基づき検知結果を求め、出力する。検知器作成部７は、既知通信データから作成された部分系列から新たな部分系列(通番と集合と送信間隔との組合せ)を生成する機能と、新たな部分系列からなるデータベースと、対象通信データから作成された部分系列から新たな部分系列(通番と集合と送信間隔との組合せ)を生成する機能と、データベースの中から対象通信データに基づき生成された新たな部分系列を検索する検索機能とを含む検知器を作成する。
【００６３】
図１６と図１７を用いて、データの変化量に基づく場合（検知例４）の検知結果とデータがどの集合に属するかに基づいて検知した場合（検知例５）の違いを示す。データの変化量に基づく場合、図１６の例では、対象通信データから作成された部分系列と同一の部分系列が既知通信データから作成された部分系列に存在するため正常と判定される。データがどの集合に属するかに基づく場合、図１７の例では、集合1から集合3への変化は、既知通信データには含まれていないため、攻撃と判定される。このように、データがどの集合に属するかに基づくことで、データの多少の誤差は許容しつつ、異常なデータの変化を検知することができ、誤検出を削減することができる。
【００６４】
上述の通り、取りうる値の種類数が多いデータに対しては、データがどの集合に属するかを用いることで誤検知や見逃しを削減し検知精度を向上させることができる。どのデータがどの集合に属するかは手動で設定してもよいが、クラスタリング等の手法を用いて分類してもよい。
【実施例１】
【００６５】
第一実施形態を自動車の車載システムおけるサイバー攻撃の検知に適用した場合の実施例を説明する。本実施例の大きな流れは以下の通りである。【００６６】
（学習フェーズ）
(1-1)収集用車両にて、正常に動作している車両のデータを収集する。
(1-2)学習用システムにて、前記収集した車両のデータを入力とし、正常な部分系列の集合を求める。【００６７】
（検知フェーズ）
(2)実行用車両に、前記正常な部分系列の集合を搭載し、同車両にて発生するサイバー攻撃による異常の検知と対処を行う。【００６８】
以下、上記の流れに沿って具体的な動作を説明する。【００６９】
手順(1-1)で用いる収集用車両の車載システムの構成例を図１８に示す。【００７０】
車載システムは、収集部１１とデータ蓄積部１２とゲートウェイ１３と1台以上のECU１４とを含む。図１８において、ECU１４は自動車を制御・監視するためのマイコンであり、それぞれ、ドアロックやブレーキ、エンジンなどを制御したり、車速や車外気温、タイヤ空気圧などのデータを観測したりなどといった固有の機能を有する。各ECU１４は通信バスで接続されており、制御信号や観測データのやり取りがCANプロトコルに従って行われる。一つ一つの制御信号や観測データをCANメッセージと呼ぶ。１つのCANメッセージには、その制御信号ないし観測データが関わる機能の種別に対応するCAN-IDと、制御信号や観測データの値が一ないし複数含まれる。ゲートウェイ１３は、複数のバスを接続しており、それらを跨ったECU間のCANメッセージのやりとりを可能とする。収集部１１はゲートウェイ１３に接続されており、すべてのバスに流れるすべてのECU１４のすべてのCANメッセージを観測し、データ蓄積部１２へと記録する。このとき、CANメッセージが観測された時刻を当該CANメッセージの送信時刻として、当該CANメッセージの中身（CAN-IDおよび一つ以上の値）と合わせて記録するようにしておく。以上のシステムを搭載した車両を実際に動作させて、ECU１４が送受するCANメッセージを収集、蓄積する。収集作業は何度かに分けて行っても良い。その場合、分割された収集作業ごとに通番を振って蓄積したCANメッセージ群を管理するようにする。データ蓄積部１２は磁気ディスクやフラッシュメモリなどで実現されており、データ蓄積部１２そのものを収集用車両から取り出し、別のシステムに接続できるようになっている。蓄積したデータを別のシステムに渡すための手段としては、データ蓄積部１２に通信インターフェイスを備えさせておき、通信によって行っても構わない。また、メディアドライブを具備させて置き、蓄積データを当該メディアドライブにて可搬メディアに書込み、当該メディアを別のシステムに挿入して用いても良い。【００７１】
手順(1-2)で用いる学習用システムは、市販のパーソナルコンピュータやワークステーションに、本実施形態による既知通信入力部３と対象データ抽出部４と部分系列作成部５と検知器作成部７とをソフトウェア・プログラムとして実装して搭載して構成することが出来る。既知通信入力部３と対象データ抽出部４と部分系列作成部５と検知器作成部７の動作原理は、上述の通りである。また、当該パーソナルコンピュータあるいはワークステーションの記憶媒体を、手順(1-1)によって収集した正常なCANメッセージ群を格納しておくデータ蓄積部１２、対象データ抽出部４と部分系列作成部５と検知器作成部７とで参照するルールを格納しておくルール蓄積部１５、手順(1-2)の結果を書きだすモデル蓄積部１６として用いる。【００７２】
まず、手順(1-1)によって収集した送信時刻付きのCANメッセージ群を、学習用システムのデータ蓄積部１２に格納し、これらを入力として対象データ抽出を行う。対象データの抽出においては、どのデータ種別を対象として、どのデータを抽出するかを予め定めておく。本実施例では、抽出対象とするCAN-IDと、そのCAN-IDのCANメッセージに含まれる値のどの位置にあるデータを抽出するかを対応付けて定めた対象データ抽出ルールをルール蓄積部１５に格納しておく。その例を図２０に示す。この例では、CAN-IDが0x1AAであるCANメッセージからその値の中の先頭1バイト目のデータのみを取り出し、同じく0x2BBであるCANメッセージからはその値の中の先頭から2バイト目と4バイト目のデータを取り出すことを示している。当該車両の車載システム内にて流れ得るすべてのCAN-IDについてこうしたルールを定めても良いし、特に攻撃が疑われるCAN-IDや特に攻撃がなされた場合の影響が大きいCAN-IDなどに絞って定義しても良い。【００７３】
こうして抽出された対象データを対象に部分系列作成を実施する。なお、第一実施形態では、部分系列作成部５において対象データから部分系列を作成し、検知器作成部７において、検知方法に合わせて、通信データから作成された部分系列から新たな部分系列(検知例４では通番と変化量と送信間隔との組合せ、検知例５では通番と集合と送信間隔との組合せ)を生成する機能を持つ検知器を作成していたが、部分系列作成部５において、対象データから直接、上述の新たな部分系列に相当する部分系列を作成する構成としてもよい。この場合、検知器は新たな部分系列を入力とし、検知結果を出力する。何れの場合であっても、検知部６が、部分系列作成部５において作成した部分系列を用いて、データの順序関係と通信間隔に基づいて、所定の通信データを検知するという点は同じである。この実施例では、対象データから直接、上述の新たな部分系列に相当する部分系列を作成する例について説明する。【００７４】
部分系列の作成においては、上述の通り、複数の方針を取りうる。複数の方針とは、例えば、
(1)CANメッセージ中の単一データ(例えばデータ1のみ)に着目するか複数データ(例えばデータ１とデータ２)に着目するか、といった着目するデータの数に関する方針
(2)CANメッセージ中に含まれていたデータの値そのものに着目するか、二つの関連するCANメッセージ（例えば連続して到着する同一CAN-IDのCANメッセージ）に含まれるデータの差分(上述の変化量にも相当)に着目するか、CANメッセージに含まれるデータをその値に応じていくつかのグループに分類してその分類先のグループ(上述の集合に相当)に着目するか、といったデータの特徴量化に関する方針
(3)関連するCANメッセージの内いくつをまとめて部分系列の作成に用いるかといった入力メッセージ数に関する方針
(4)一つのCANメッセージの中の複数のデータを抽出する場合、それらから別々の部分系列を作成するか、それらを連接して共通の部分系列を作成するかといったデータの分解能に関する方針
等である。【００７５】
本実施例では、抽出対象とするCAN-IDとそこから抽出したデータの位置に、それらのデータからどのように部分系列を作成するか定めた生成条件を対応付けて定めた部分系列生成ルールをルール蓄積部１５に格納しておく。その例を図２１に示す。この例では、CAN-IDが0x1AAであるCANメッセージの先頭１バイト目から取り出したデータについては、直前の同様のデータとの差分を計算してその値を用い、同じく送信時間の差分（送信間隔）と共に特徴量として、連続する４つのCANメッセージから部分系列を生成する。CAN-IDが0x2BBであるCANメッセージの先頭から2バイト目から取り出したデータについては、その値が0から63、64から127、128から255のいずれの範囲に入っているかを判定し、その帰属する範囲の順序（例えば値が66であれば範囲は2番）を用いる。同じく0x2BBであるCANメッセージの4バイト目から取り出したデータについては、その値をそのまま用いる。0x2BBからは二か所のデータが取り出されるが、それらは別々の部分系列として生成される。一方、0x3DDからは3バイト目と5バイト目が取り出され、それらはそれぞれそのデータの値がそのまま用いられ、かつ、連接して（１つのデータとして）用いられ、共通の部分系列が生成される。【００７６】
以上の処理をデータ蓄積部１２に格納されている送信時刻付きのすべてのCANメッセージ群に対して実施することにより生成された、CAN-ID毎の正常な部分系列の集合は、モデル蓄積部１６に格納される。【００７７】
手順(2)で用いる実行用車両の車載システムの構成例を図１９に示す。図１９におけるECU１４やゲートウェイ１３は図１８におけるそれらと同様である。ルール蓄積部１５とモデル蓄積部１６は記憶媒体である。本実施形態の対象通信入力部２と、対象データ抽出部４と、部分系列作成部５と、検知部６とを含む検知装置１は、マイコン上に実装される。検知装置１の対象データ抽出部４と部分系列作成部５は手順(1-2)にて説明したものと同様であり、検知装置１の検知部６の動作原理は、上述の＜検知部６＞で説明した通りである。検知装置１はまた、収集用車両（図１８）の収集部１１と同様、すべてのバスに流れるすべてのECU１４のすべてのCANメッセージとその到着時刻を観測することができ、それらを入力として、対象データ抽出部４等を実行するよう構成されている。通知部２１は、検知部６が攻撃を検知した場合に、そのことを当該車両の運転手あるいは当該車両の運行を遠隔から監視しているセンターに無線通信を使って通知する機能を持つ。運転手への通知はディスプレイ表示を通じて行ったり、ハンドルに振動を与えることで触覚を通じて行ったりする方法が取りうる。【００７８】
実行用車両のルール蓄積部１５に手順(1-2)で用いた対象データ抽出ルールと部分系列生成ルールを格納し、また、モデル蓄積部１６に手順(1-2)で生成された部分系列の集合を格納した後、検知装置１の動作をオンにして実行用車両の利用（運行）を開始する。その後、車載システムに流れるCANメッセージはすべてゲートウェイ１３を介して検知装置１にも送られる。検知装置１では、次々と到達するCANメッセージを対象に、ルール蓄積部１５にある対象データ抽出ルールに従い対象データ抽出を行う。その結果、必要な数のCANメッセージが揃っている場合にはルール蓄積部１５にある部分系列生成ルールに従って部分系列作成を行い、得られた部分系列を対象として、モデル蓄積部１６に格納されている正常な部分系列の集合を用いて当該部分系列が正常であるか攻撃であるかを判定する。攻撃と判定した場合には、通知部２１に指示し、運転手やあるいは遠隔の監視センターに対して攻撃があったことを通知し、車両の運行停止や一部機能の停止、機能の利用制限などの対処を促す。【００７９】
＜効果＞
以上の構成により、周期＋イベント型のIDに対して挿入された攻撃通信を検知することができる。対象データ抽出部４において、周期＋イベント型の通信データのみを抽出し、この通信データに着目することが可能なため攻撃の見逃しを増加させることなく誤検知を削減し、検知精度を向上させることができる。【００８０】
＜変形例＞
本実施形態では、ECU間の通信ネットワークにCANを用いているが、他の手法を用いてもよい。【００８１】
＜その他の変形例＞
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。【００８２】
＜プログラム及び記録媒体＞
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。【００８３】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。【００８４】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。【００８５】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。【００８６】
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2019142602.tif 000003
【図２】
2019142602.tif 000004
【図３】
2019142602.tif 000005
【図４】
2019142602.tif 000006
【図５】
2019142602.tif 000007
【図６】
2019142602.tif 000008
【図７】
2019142602.tif 000009
【図８】
2019142602.tif 000010
【図９】
2019142602.tif 000011
【図１０】
2019142602.tif 000012
【図１１】
2019142602.tif 000013
【図１２】
2019142602.tif 000014
【図１３】
2019142602.tif 000015
【図１４】
2019142602.tif 000016
【図１５】
2019142602.tif 000017
【図１６】
2019142602.tif 000018
【図１７】
2019142602.tif 000019
【図１８】
2019142602.tif 000020
【図１９】
2019142602.tif 000021
【図２０】
2019142602.tif 000022
【図２１】
2019142602.tif 000023
【国際調査報告】
2019142602.tif 000024
2019142602.tif 000025
2019142602.tif 000026
2019142602.tif 000027