(57)【要約】  過検知を減らすことができる異常通信検知装置を提供する。識別子を含む学習用通信データと、識別子を含む検知用通信データを受信する受信部と、学習用通信データの時間的特性、ペイロードの特性のうちの少なくとも何れか一方の特性に関する情報である知識情報を取得する知識情報取得部と、知識情報に基づいて、複数の検知器のうちの何れの検知器に何れの識別子の通信データを振り分けるかを規定するルールである振分ルールを生成する振分ルール生成部と、振分ルールに基づいて、検知器の何れかに通信データを振り分ける振分部と、学習用通信データが振り分けられた場合に、当該検知器に振り分けられる通信データの正常、異常の別を検知するモデルを学習し、検知用通信データが振り分けられた場合に、学習したモデルに基づいて検知用通信データの正常、異常の別を検知する複数の検知器を含む。
2019102911.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークにおける各電子制御装置の通信から異常通信を検知する異常通信検知装置であって、
識別子を含む学習用通信データと、前記識別子を含む検知用通信データを受信する受信部と、
前記学習用通信データの時間的特性、ペイロードの特性のうちの少なくとも何れか一方の特性に関する情報である知識情報を取得する知識情報取得部と、
前記知識情報に基づいて、複数の検知器のうちの何れの前記検知器に何れの前記識別子の通信データを振り分けるかを規定するルールである振分ルールを生成する振分ルール生成部と、
前記振分ルールに基づいて、前記検知器の何れかに前記通信データを振り分ける振分部と、
前記学習用通信データが振り分けられた場合に、当該検知器に振り分けられる前記通信データの正常、異常の別を検知するモデルを学習し、前記検知用通信データが振り分けられた場合に、学習した前記モデルに基づいて前記検知用通信データの正常、異常の別を検知する複数の前記検知器を含む
異常通信検知装置。
【請求項２】
請求項１に記載の異常通信検知装置であって、
前記通信データが複数の機械状態を持つ前記電子制御装置から送信された前記通信データである場合に、
前記知識情報取得部は、
前記機械状態毎に前記知識情報を取得し、
前記振分ルール生成部は、
前記機械状態毎に前記振分ルールを生成し、
前記検知器は、
前記機械状態毎に前記モデルを学習する
異常通信検知装置。
【請求項３】
請求項１または２に記載の異常通信検知装置であって、
性能が同一な検知器群である特定検知器群を含み、
前記振分ルール生成部は、
前記特定検知器群に属する前記検知器のそれぞれに振り分けられる前記通信データの単位時間当たりの通信量の合計が均一になるように、前記振分ルールを生成する
異常通信検知装置。
【請求項４】
請求項１から３の何れかに記載の異常通信検知装置であって、
前記振分ルール生成部は、
前記通信データが複数の前記検知器に同時に振り分けられるように前記振分ルールを生成し、
前記通信データに対する複数の前記検知器による検知結果を集計して、集計された前記検知結果に基づいて、前記通信データの最終検知結果を出力する検知結果集計部を含む
異常通信検知装置。
【請求項５】
通信ネットワークにおける各電子制御装置の通信から異常通信を検知する異常通信検知方法であって、
識別子を含む学習用通信データと、前記識別子を含む検知用通信データを受信する受信ステップと、
前記学習用通信データの時間的特性、ペイロードの特性のうちの少なくとも何れか一方の特性に関する情報である知識情報を取得する知識情報取得ステップと、
前記知識情報に基づいて、複数の検知器のうちの何れの前記検知器に何れの前記識別子の通信データを振り分けるかを規定するルールである振分ルールを生成する振分ルール生成ステップと、
前記振分ルールに基づいて、前記検知器の何れかに前記通信データを振り分ける振分ステップと、
前記学習用通信データが振り分けられた場合に、当該検知器に振り分けられる前記通信データの正常、異常の別を検知するモデルを学習する学習ステップと、
前記検知用通信データが振り分けられた場合に、学習した前記モデルに基づいて前記検知用通信データの正常、異常の別を検知する検知ステップを含む
異常通信検知方法。
【請求項６】
請求項５に記載の異常通信検知方法であって、
前記通信データが複数の機械状態を持つ前記電子制御装置から送信された前記通信データである場合に、
前記知識情報取得ステップは、
前記機械状態毎に前記知識情報を取得し、
前記振分ルール生成ステップは、
前記機械状態毎に前記振分ルールを生成し、
前記学習ステップは、
前記機械状態毎に前記モデルを学習する
異常通信検知方法。
【請求項７】
請求項５または６に記載の異常通信検知方法であって、
前記振分ルール生成ステップは、
性能が同一な検知器群である特定検知器群に属する前記検知器のそれぞれに振り分けられる前記通信データの単位時間当たりの通信量の合計が均一になるように、前記振分ルールを生成する
異常通信検知方法。
【請求項８】
コンピュータを請求項１から４の何れかに記載の異常通信検知装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば車両、工作機械、建設機械、農業機械等の機械類に搭載されたネットワーク、そのネットワークに接続された通信装置、および、それらで構成される通信システムにおいて、攻撃通信等に起因する異常通信の検知を行う異常通信検知装置、異常通信検知方法、プログラムに関する。
【背景技術】
【０００２】
車両(自動車、特殊車両、自動二輪車、自転車等)、工作機械、建設機械、農業機械等の機械類には複数の電子制御装置（ＥＣＵ：Electronic Control Unit）が搭載されているものがあり、それらＥＣＵ間の通信ネットワークに用いられる代表的なものに、コントローラエリアネットワーク（ＣＡＮ：Controller Area Network）がある。ＣＡＮのネットワーク構成は各ＥＣＵの通信線が共有される、いわゆるバス型構成をとる。ＥＣＵのバスにおける通信手順には、ＣＳＭＡ／ＣＲ(Carrier Sense Multiple Access/Collision Resolution)、即ち、通信衝突する場合には優先順位の高い通信は衝突影響をうけず、優先順位の低い通信は再送する手順が用いられる。ＣＡＮ上の各ＥＣＵの通信にはＩＤが含まれており、ＩＤは通信調停の優先順位、データ内容や送信ノード等の識別に用いられる。【０００３】
これらの機械制御情報通信ネットワークに対するサイバー攻撃の危険性が示唆されている。ネットワークへの不正なＥＣＵの接続や既存ＥＣＵに対する不正な動作書き換え等の手段により、攻撃対象機能と関連するＩＤの攻撃送信を挿入し、その対象機能の不正な動作を誘発可能であることが知られている。【０００４】
これらの攻撃、異常通信を検知する方法として、例えば非特許文献１、非特許文献２がある。非特許文献１は、判定指標が異なる複数の検知器（同文献ではフィルタと呼称）を組み合わせて各通信が異常かどうかを判定する。非特許文献１は、通信のＩＤ、ＤＬＣ（Data Length Code、通信のペイロード長を示すＣＡＮのヘッダフィールド）、送信周期（または送信頻度）を指標とした検知器を提案している。非特許文献２は非特許文献１の方式において検知器の種類を増やした方式を提案している。両方式は、通信の正常／異常判定を各検知器による判定のＡＮＤ条件で実施する。例えば、非特許文献１の方式はまずＩＤによる検知器を用いて判定し、正常と判定した通信のみＤＬＣによる検知器で判定し、さらに正常と判定した通信のみ送信周期（または送信頻度）による検知器で判定する。なお、両方式の全ての検知器は車両の仕様が明らかであることを前提とする。例えば、非特許文献２が提案する固定データフィールドによる検知器は、各ＩＤのペイロードのビットアサイン（何ビット目から何ビット目までが固定値か変数かどうか、また変数ならば上限値や下限値といった仕様）を判定指標として、本来固定値のデータが仕様と異なる値だったら異常と判定する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】氏家良浩、岸川剛、芳賀智之、松島秀樹、田邊正人、北村嘉彦、安齋潤、「車載ネットワークにおけるCANフィルタの提案」、Symposium on Cryptography and Information Security SCIS 2015, Jan. 20-23, 2015.
【非特許文献２】田邊正人、安齋潤、前田学、氏家良浩、松島秀樹、若林徹、「車載ゲートウェイにおける多層連携CANフィルタの提案」、Symposium on Cryptography and Information Security SCIS 2016, Jan. 19-22, 2016.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の異常検知方法では、全ての検知結果のＡＮＤ条件によって正常な通信かどうかを判定するため、いずれかの検知器が異常と検知すれば判定結果は異常となる。つまりいずれかの検知器が誤検知（正常な通信を異常と誤って検知すること）すれば、その通信を異常と判定するので、正常な通信を異常と検知しやすい（過検知、第一種過誤）という課題がある。【０００７】
そこで本発明では、過検知を減らすことができる異常通信検知装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の異常通信検知装置は、受信部と、知識情報取得部と、振分ルール生成部と、振分部と、複数の検知器を含む。【０００９】
受信部は、識別子を含む学習用通信データと、識別子を含む検知用通信データを受信する。知識情報取得部は、学習用通信データの時間的特性、ペイロードの特性のうちの少なくとも何れか一方の特性に関する情報である知識情報を取得する。振分ルール生成部は、知識情報に基づいて、複数の検知器のうちの何れの検知器に何れの識別子の通信データを振り分けるかを規定するルールである振分ルールを生成する。振分部は、振分ルールに基づいて、検知器の何れかに通信データを振り分ける。複数の検知器は、学習用通信データが振り分けられた場合に、当該検知器に振り分けられる通信データの正常、異常の別を検知するモデルを学習し、検知用通信データが振り分けられた場合に、学習したモデルに基づいて検知用通信データの正常、異常の別を検知する。
【発明の効果】
【００１０】
本発明の異常通信検知装置によれば、過検知を減らすことができる。
【図面の簡単な説明】
【００１１】
【図１】実施例１の異常通信検知装置の構成を示すブロック図。
【図２】実施例１の検知器の構成を示すブロック図。
【図３】実施例１の異常通信検知装置の動作を示すフローチャート。
【図４】実施例２の異常通信検知装置の構成を示すブロック図。
【図５】実施例２の検知器の構成を示すブロック図。
【図６】実施例２の異常通信検知装置の動作を示すフローチャート。
【図７】実施例３の異常通信検知装置の構成を示すブロック図。
【図８】実施例３の異常通信検知装置の動作を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１３】
以下では、通信ネットワークのプロトコルとしてＣＡＮ（Controller Area Network）を利用するものと想定して説明を進める場合があるが、本発明の異常通信検知装置が異常通信検知を実行する通信ネットワークのプロトコルは、必ずしもＣＡＮに限定されない。本発明の異常通信検知装置は、ＣＡＮ以外の通信ネットワークのプロトコル（例えば、FlexRay、ＬＩＮ(Local INterconnect Network)、車載Ethernet）を異常通信検知対象としてもよい。
【００１４】
以下の実施例の異常通信検知装置、異常通信検知方法では、通信ネットワーク上の正常な通信の傍受あるいは傍受により得たデータ列を基に、通信の振る舞いの特性（正常通信の送信周期や頻度といった時間的特性、またはペイロードの特性、あるいはその両方の特性）によって、通信データを相異なるいくつかのグループに分類し、各グループの特性に応じた検知器、および検知精度向上に必要な学習器を１ないし複数種類用意し、グループ毎に学習および検知を実施して、グループ毎の検知結果を基に、総合的に正常／異常を検知する。
【００１５】
以下の実施例の異常通信検知装置、異常通信検知方法は、三段階のフェーズ（知識情報取得フェーズ／学習フェーズ／検知フェーズ）を実行する。各フェーズについて説明する。
【００１６】
＜知識情報取得フェーズ＞
知識情報取得フェーズでは、通信データの時間的特性、ペイロードの特性のうち何れか一方の特性、あるいはその両方の特性を学習し、学習結果に応じて、通信をいくつかのグループに分類する。学習する手順を知識情報取得と呼称し、知識情報取得による学習結果（分類結果）を知識情報と呼称する。なお、知識情報には各グループとそれに含まれる要素だけが記録されてもよいし、各要素を学習する過程で算出した特性の推定値や平均や分散などの各種統計情報も併せて記録されてもよい。そして、知識情報に基づいて複数の検知器のうちの何れの検知器に何れの識別子（ＣＡＮの場合、ＩＤ）の通信データを振り分けるかを規定するルールを振分ルールと呼称する。
【００１７】
知識情報取得の手段は任意の方法を用いてよい。例えば、対象の仕様が明らかであれば、送信周期や送信頻度、ペイロードのビットアサインといった特性に関する知識情報をその仕様に基づいて決めてもよい。他方、仕様が不明である場合には、正常な通信の傍受あるいは傍受により取得したデータ列を基に機械学習を実施し、それぞれの特性をモデル化して知識情報を取得してもよい。さらに、機械学習による知識情報取得の後に、人手で知識情報のパラメータを微調整するなど、アルゴリズムと人間の判断を組み合わせたヒューリスティック手法によって知識情報を取得してもよい。
【００１８】
知識情報取得において機械学習を利用する場合、その学習方法は任意のアルゴリズムを用いてよい。例えばＣＡＮの場合、正常な通信を基に送信周期特性をモデル化してＩＤ毎にいくつかの型に分類できる。具体的には、常に一定周期で送信される通信のＩＤである周期型ＩＤの通信間隔の出現分布を仮定し、各ＩＤの分布に対して周期型ＩＤの分布との合致度合いを測ることで学習、分類する。あるＩＤが周期型ＩＤの分布に完全に合致していれば周期型ＩＤ、周期型ＩＤの分布にほぼ合致しているものの合致しない特異点が存在する場合は周期＋イベント型ＩＤ、ほぼ全体に渡って周期型ＩＤの分布に合致しない場合はイベント型ＩＤと分類すればよい。
【００１９】
周期＋イベント型ＩＤとは、一定周期で送信されるが、何らかの契機（イベント）で、そのときのみ周期の許容値を超えた短間隔（あるいは長間隔）で送信される周期特性を有する通信のＩＤを指す。同様にイベント型ＩＤとは、一定の周期を持たず、何らかのイベントで、そのときのみ送信される周期特性を有する通信のＩＤを指す。
【００２０】
周期型ＩＤの出現分布は正規分布やガンマ分布など任意の確率分布を用いてよい。さらに、周期型ＩＤの通信間隔の長短や通信間隔の分散や歪度等の統計情報、一定時間内の通信頻度、周期＋イベント型ＩＤのイベントの発生特性による違い等その他の時間的特性によって分類してもよいし、これらの特性を複数組み合わせて細かく分類した結果を知識情報としてもよい。
【００２１】
またＣＡＮの場合、ペイロードのビットアサインもまたいくつかの型に分類できる。例えばＣＡＮの場合、ペイロードの変化の特性を基にして、一切その値が変化しない固定値フィールド、車速などセンサ情報を示し連続的に変化する連続値フィールド、シフトポジションなどあらかじめ決められた状態のいずれかを示す状態値フィールド、送信回数などを示すカウンタフィールド、通信エラー訂正などに利用するためのチェックサムフィールド等に分類できる。さらに、例えば連続値フィールドは車速などゼロ以上の正数だけを取る符号無し連続値フィールドや、直進時の舵角を基準とした場合の操舵角など正負の値を取る符号付き連続値フィールドなどと細かく分類してもよい。その他の分類例として、フィールドの値の変化率や変化時の値の差分の平均や分散、各フィールドのビット長等が挙げられる。具体的には、毎回必ず値が変化する状態値フィールドを有する通信と、１０回の通信のうち１回だけ変化する状態値フィールドを有する通信を識別する、８ビット長の連続値フィールドを持つ通信と１６ビット長の連続値フィールドを持つ通信とを識別する等である。ペイロードの特性を機械学習する場合もまた、送信周期特性を学習するときと同様に任意のアルゴリズムを用いてよい。
【００２２】
なお、ＣＡＮの場合は通信を排他的に分類するための識別子として、ヘッダ情報のＩＤを利用できるため上記ではＩＤを基に知識情報取得の手順および知識情報を説明したが、その他のヘッダ情報やフッタ情報、ペイロードの特定ビット位置の特性など、任意の識別子を基準に分類してもよい。
【００２３】
振分ルールは、搭載する検知器を決めた後に次のいずれかの方法で決める。まず各検知器が精度良く検知できるグループがあらかじめ判明している場合、知識情報が得られれば、振分ルールは直ちに決まる。他方、どの検知器がどのグループの検知を得意とするか不明な場合、正常な通信データに攻撃を挿入した擬似的な攻撃通信データを準備し、各検知器を個別に適用してどのグループの検知を最も精度良く実施できるか明らかにしたのち、振分ルールを定めてもよい。また、各グループをいずれか１つの検知器に振り分けてもよいし、複数の検知器に振り分けてもよい。１つのグループを複数の検知器に振り分ける場合は、後述する検知フェーズにて複数の判定結果をまとめて総合的に判断する処理を行う。振分ルールは、各検知器とＩＤ等の識別子とを直接対応づけた表などとして実現してもよいし、各検知器がどのような特性のグループを検知可能かを記録した表、各グループにどのＩＤが属しているかを記録した表、などといった集合同士を対応づけたものとして実現してもよい。
【００２４】
＜学習フェーズ＞
学習フェーズでは、搭載する各検知器に対応する学習器を用いて、正常な通信のみ、または正常な通信と異常な通信、および知識情報を基にして各グループに分類される各通信の正常（異常）モデルを学習、生成する。例えば、ペイロードを基にＩＤ毎に検知を行う方式を搭載する場合、知識情報に記録されたペイロードの特性（ビットアサインや各種統計情報）を用いることで、どのフィールド位置が攻撃されやすいか、言い換えると学習しなければならないフィールド位置はどこか、フィールド毎の値域等が推定できるため、学習器の閾値の決定やモデル生成が効率化される。
【００２５】
各検知器のモデル学習に用いる学習用通信データは、知識情報取得フェーズで用いる学習用通信データと同一であってもよいし異なっていてもよい。
【００２６】
＜検知フェーズ＞
検知フェーズでは、通信ネットワークにて検知対象となる通信を受信したら、振分ルールに従って検知用通信データを適切な検知器に振り分け、担当する検知器それぞれが正常、異常の別を検知する。振分ルールに従って、最適な（検知精度が高い）検知器に通信を振り分けているため、全ての検知器を連結して検知結果を出す場合と比べて過検知率を下げることができる。なお、各検知器は通信１メッセージごとに正常か異常かの判定結果を出力してもよいし、異常と判定した場合のみ結果を出力してもよい。
【００２７】
１つの通信データが複数の検知器に同時に振り分けられるように振分ルールを生成することもできる。この場合、以下の判断基準に従い、複数の検知器による検知結果を集計し、集計された検知結果に基づいて、最終検知結果を出力する。なお、この動作は後述する検知結果集計部が行えばよい。
【００２８】
一般的に、異常通信の見逃し（第二種過誤）を減らそうとすれば過検知（第一種過誤）が増え、過検知（第一種過誤）を減らそうとすれば見逃し（第二種過誤）が増える。利用者は事前に方針を決定する。例えば、見逃しをなるべく減らしたい場合、いずれかの検知器が異常を検知したら本装置（本方法）の最終的な検知結果（最終検知結果）も異常とすればよい。一方、過検知をなるべく減らしたい場合、振り分けられた全てあるいは過半数の検知器が異常を検知したら本装置（本方法）の最終検知結果を異常とすればよい。その他の方法として、各検知器に重み付けを行い、各検知結果をそれぞれの重み付けと乗じて足し合わせ、異常度を尤度として算出し、最終検知結果としてもよい。
【実施例１】
【００２９】
以下、図１、図２を参照して通信ネットワークにおける各電子制御装置の通信から異常通信を検知する実施例１の異常通信検知装置の構成を説明する。図１に示すように、本実施例の異常通信検知装置１は、フェーズ切替部１１と、受信部１２と、一時保持部１３と、知識情報取得部１４と、知識情報記憶部１４ａと、振分ルール生成部１５と、振分ルール記憶部１５ａと、振分部１６と、Ｎ個（Ｎは２以上の自然数）の検知器である第１検知器１７−１、…、第Ｎ検知器１７−Ｎと、検知結果集計部１８を含む。【００３０】
図２に示すように、第ｎ検知器１７−ｎ（ｎ＝１，…，Ｎ）は、受信部１７１と、一時保持部１７２と、学習部１７３と、モデル記憶部１７３ａと、検知部１７４を含む。なお、第ｎ検知器１７−ｎは同図に示す構成要件以外の構成要件を有してもよいし、同図に示す構成要件の一部を有さなくてもよい。例えば、第ｎ検知器１７−ｎの受信部１７１は学習用通信データを、一時保持部１７２を経由せずに直接学習部１７３に送信してもよいし、学習用通信データを、一時保持部１７２を経由して学習部１７３に送信してもよい。【００３１】
以下の説明では、Ｎ＝３とし、第１検知器１７−１は、時間的特性である送信間隔のみを基に学習・検知を実行するものとし、第２検知器１７−２、第３検知器１７−３は、複数の時間的特性とペイロードの両特性を基に学習・検知するものとする。【００３２】
また以下の説明では、知識情報として時間的特性とペイロードの特性の両方を取得する場合、そして対象となるネットワークに３つの異なるＩＤ（ＩＤ−ａ、ＩＤ−ｂ、ＩＤ−ｃ）に係る通信データが送受信されている場合について述べる。【００３３】
また以下の説明では、各検知器に対応する学習器は、検知器内部の１機能である学習部として実現することとした。本実施例では以上の構成を仮定して装置を説明するが、本発明が適用可能な検知器の個数や方式、知識情報の内容、対象のネットワーク構成を限定するものではない。【００３４】
以下、図３を参照して、異常通信検知装置１の動作について説明する。まず、受信部１２は、各フェーズにおいて、通信ネットワークの通信、または通信の加工等により生成された通信データをその識別子（ＣＡＮの場合、ＩＤ）と共に受信し、当該通信データに受信時刻を付与する（Ｓ１２）。以下、フェーズごとの各構成要件の動作について説明する。【００３５】
＜知識情報取得フェーズ＞
異常通信検知装置１が知識情報取得フェーズ、学習フェーズにある場合、受信部１２が受信する通信データを学習用通信データと呼称する。この場合、受信部１２は、一時保持部１３に学習用通信データを送信する。一時保持部１３は少なくとも学習用通信データを１つ、最大で学習用通信データの全てを保持できる記憶容量を有するものとし、受信部１２から受信した学習用通信データを一時的に保持する（Ｓ１３）。【００３６】
次に、知識情報取得部１４は事前に規定された知識情報取得方法に従い、一時保持部１３に保持された学習用通信データを基に、学習用通信データの時間的特性、ペイロードの特性のうちの少なくとも何れか一方の特性に関する情報である知識情報を取得する（Ｓ１４）。仮に各通信間隔の差分の変化率を基準にして時間的特性を判定する方法を基に、ＩＤ−ａは周期型、ＩＤ−ｂは周期＋イベント型、ＩＤ−ｃはイベント型と判定されたとする。さらに、ペイロードのフィールドを推定する任意のアルゴリズムを適用し、ＩＤ−ａのペイロードは固定値と連続値、ＩＤ−ｂは固定値と状態値とカウンタ、ＩＤ−ｃは状態値とカウンタとチェックサムから構成されていると推定されたとする。この場合、知識情報取得部１４はこれらの各ＩＤのグループ分けの結果および、各フィールドの統計情報を知識情報として、知識情報記憶部１４ａに記憶（格納）する。知識情報取得部１４は、一時保持部１３に保持された全ＩＤの通信データに対応する知識情報を知識情報記憶部１４ａに記憶した場合、振分ルール生成部１５に所定の通知を行う。【００３７】
振分ルール生成部１５は、知識情報、設定等に基づいて振分ルールを生成する（Ｓ１５）。例えば、事前知識として、第１検知器１７−１は周期型ＩＤの検知精度において第２検知器１７−２、第３検知器１７−３を上回ることが既に分かっていたものとする。また、第２検知器１７−２はペイロードのチェックサムの変化を利用する検知器であることが既に分かっていたものとする。また、第３検知器１７−３は状態値とカウンタの両方の変化を利用する検知器であることが既に分かっていたものとする。この場合、これらの事前知識を設定に予め記憶しておく。受信部１２は、当該設定を外部装置などから受信し、受信した設定を振分ルール生成部１５に送信する。【００３８】
振分ルール生成部１５は、知識情報に基づいて、複数の検知器のうちの何れの検知器に何れの識別子（ＩＤ）の通信データを振り分けるかを規定するルールである振分ルールを生成する（Ｓ１５）。例えば振分ルール生成部１５は、知識情報に基づいて周期型ＩＤと判明しているＩＤ−ａの通信データを、受信した設定に基づいて、第１検知器１７−１に振り分ける振分ルールを生成する。同様に、振分ルール生成部１５は、知識情報に基づいて状態値とカウンタとチェックサムから構成されていると推定されるＩＤ−ｃの通信データを、受信した設定に基づいて、第２検知器１７−２に振り分ける振分ルールを生成する。同様に、固定値と状態値とカウンタから構成されていると推定されるＩＤ−ｂの通信データを、受信した設定に基づいて、第３検知器１７−３に振り分ける振分ルールを生成する。振分ルール生成部１５は、生成した振分ルールを振分ルール記憶部１５ａに記憶し、フェーズ切替部１１に処理完了の通知を送信する。【００３９】
振分ルール生成部１５から処理完了の通知を受け取ったフェーズ切替部１１は、一時保持部１３の記憶内容を消去し、異常通信検知装置１を学習フェーズに切り替える。または、フェーズ切替部１１は、一時保持部１３の記憶内容を消去した後、異常通信検知装置１の利用者に対して何らかの手段によるフェーズの切替を要求する。【００４０】
＜学習フェーズ＞
異常通信検知装置１が学習フェーズにある場合、受信部１２は、学習用通信データを受信して、当該学習用通信データを１つずつ振分部１６に送信する。振分部１６は振分ルール記憶部１５ａに記憶されている振分ルールに基づいて、受信した学習用通信データをどの検知器に振り分けるか、ＩＤを基に判断し、振分先の検知器に学習用通信データを送信する（Ｓ１６）。【００４１】
第ｎ検知器１７−ｎの受信部１７１は、自器に振り分けられた学習用通信データを受信する（Ｓ１７１）。第ｎ検知器１７−ｎの一時保持部１７２は、受信した学習用通信データを一時的に保持する（Ｓ１７２）。第ｎ検知器１７−ｎの学習部１７３は、当該検知器に振り分けられる通信データの正常、異常の別を検知するモデルを学習する（Ｓ１７３）。【００４２】
上記ステップＳ１７３について、ＩＤ−ａの学習用通信データが第１検知器１７−１に振り分けられた場合の動作例を開示する。この場合、第１検知器１７−１の学習部１７３は、受信した学習用通信データを基にＩＤ−ａのモデルを学習する（Ｓ１７３）。具体的には、通信データには異常通信検知装置１における受信時間が付与されているので、第１検知器１７−１の学習部１７３は、通信データ間の送信間隔を算出し、送信間隔の平均値や分散などを算出し、正常通信データにおけるＩＤ−ａの送信周期モデル（その値の閾値を含む）を学習する。第１検知器１７−１の学習部１７３は、ＩＤ−ａの学習用通信データが全て第１検知器１７−１に送信されたことを設定等、外部からの通知を受け、学習したモデルをモデル記憶部１７３ａに記憶して、フェーズ切替部１１に通知を送信する。他の検知器も、第１検知器１７−１と同様に、自器が担当するＩＤの学習用通信データに対して、モデル（閾値を含む）を学習する。フェーズ切替部１１は、全ての検知器から通知を受け取ったのち、異常通信検知装置１を検知フェーズに切り替える。または、異常通信検知装置１の利用者に対して何らかの手段によるフェーズの切替を要求する。【００４３】
＜検知フェーズ＞
異常通信検知装置１が検知フェーズにある場合、受信部１２が受信する通信データを検知用通信データと呼称する。受信部１２は、受信した検知用通信データを１つずつ振分部１６に送信する。振分部１６は振分ルール記憶部１５ａに記憶されている振分ルールに基づいて、受信した検知用通信データをどの検知器に振り分けるか、ＩＤを基に判断し、振分先の検知器に検知用通信データを送信する（Ｓ１６）。【００４４】
第ｎ検知器１７−ｎの受信部１７１は、自器に振り分けられた検知用通信データを受信する（Ｓ１７１）。第ｎ検知器１７−ｎの一時保持部１７２は、受信した検知用通信データを一時的に保持する（Ｓ１７２）。第ｎ検知器１７−ｎの検知部１７４は、ステップＳ１７３で学習され、モデル記憶部１７３ａに記憶済みのモデルに基づいて検知用通信データの正常、異常の別を検知する（Ｓ１７４）。【００４５】
上記ステップＳ１７４について、ＩＤ−ａの検知用通信データが第１検知器１７−１に振り分けられた場合、第１検知器１７−１の検知部１７４は、１つ前のＩＤ−ａの検知用通信データと直近の検知用通信データの時間差を求め、上記のモデルにおける閾値を下回る短間隔が発生したかどうかで正常、異常の別を検知する（Ｓ１７４）。また、上記ステップＳ１７４について、ＩＤ−ｃの検知用通信データが第２検知器１７−２に振り分けられた場合、第２検知器１７−２の検知部１７４は、状態値とチェックサムの対応関係を丸ごと記憶したモデルを基に検知用通信データのペイロードがモデルに従うかどうかで正常、異常の別を検知する（Ｓ１７４）。また、上記ステップＳ１７４について、ＩＤ−ｂの検知用通信データが第３検知器１７−３に振り分けられた場合、１つ前のＩＤ−ｂの検知用通信データと、直近のＩＤ−ｂの検知用通信データの状態値とカウンタとの順序性がモデルに従うかどうかで正常、異常の別を検知する（Ｓ１７４）。【００４６】
各検知器は検知部１７４の検知結果を随時、検知結果集計部１８に送信する。検知結果集計部１８は最終的な検知結果（最終検知結果）を装置外部に出力する。本実施例では各ＩＤの通信データを各検知器に振り分けたので、検知結果集計部１８は各検知器の出力をそのまま異常通信検知装置１の出力として外部に出力してもよいし、情報を追加して出力してもよい（例えば、どのメッセージをどの検知器がいつ検知したか等）。【００４７】
なお、各フェーズにおいて受信部１２はネットワークやゲートウェイを傍受することで通信データを得てもよいし、別途、他のモニタリング機器からログ等のデータとして通信データを得てもよい。傍受した通信データにはその受信時刻を付与するが、ログ等の通信データにすでに受信時刻が付与されているなら時刻付与は省略してもよい。【００４８】
本実施例の異常通信検知装置１は、設定等の入力あるいはあらかじめ定めた通信を受信することにより、任意のタイミングでフェーズ切替部１１を動作させ、任意のフェーズに移行する機能を備えていてもよい。つまり、本実施例の異常通信検知装置１は、検知フェーズに移行した後も任意のタイミングで知識情報取得フェーズあるいは学習フェーズに移行してもよい。その際は、知識情報取得部１４および学習部１７３のアルゴリズムに応じて、既存の知識情報および正常モデルを基にした追加学習を実施してもよいし、既存の知識情報および正常モデルを消去して学習しなおしてもよい。【００４９】
本実施例の異常通信検知装置１は、各フェーズのみを実行する複数の装置群を組み合わせて構成してもよいし、各検知器を独立した装置とするなど、複数の装置を組み合わせて構成してもよい。また、本実施例の異常通信検知装置１を検知器の１つとみなし、複数の検知装置が入れ子状となるように構成してもよい。
【実施例２】
【００５０】
機械状態、例えば、車両における停車、走行、自動走行等の状態の違いによって、何れの検知器に振り分けるべきかが変化する通信がある。例えば、車両からの通信データには、車両のイグニッションがＯＮの状態では周期＋イベント型で出現するが、ＯＦＦの状態ではイベント型で出現するＩＤがある。【００５１】
以下、図４、図５を参照して複数の機械状態を持つ電子制御装置から送信された通信データを取り扱う、実施例２の異常通信検知装置の構成を説明する。図４に示すように、本実施例の異常通信検知装置２は、フェーズ切替部１１と、受信部１２と、一時保持部１３と、知識情報取得部２４と、知識情報記憶部１４ａと、振分ルール生成部２５と、振分ルール記憶部１５ａと、振分部１６と、Ｎ個（Ｎは２以上の自然数）の検知器である第１検知器２７−１、…、第Ｎ検知器２７−Ｎと、検知結果集計部１８を含み、知識情報取得部２４、振分ルール生成部２５、第１検知器２７−１、…、第Ｎ検知器２７−Ｎ以外の構成については、実施例１と同じ機能を有する。【００５２】
図５に示すように、第ｎ検知器２７−ｎ（ｎ＝１，…，Ｎ）は、受信部１７１と、一時保持部１７２と、学習部２７３と、モデル記憶部１７３ａと、検知部１７４を含み、学習部２７３以外の構成については、実施例１と同じ機能を有する。以下、図６を参照して、実施例１と異なる動作について説明する。【００５３】
＜知識情報取得フェーズ＞
図６に示すように、知識情報取得部２４は、機械状態毎（例えば、イグニッションのＯＮ／ＯＦＦの２通り）に知識情報を取得し（Ｓ２４）、振分ルール生成部２５は、機械状態毎に振分ルールを生成し（Ｓ２５）、振分ルール記憶部１５ａに記憶する。【００５４】
＜学習フェーズ＞
第ｎ検知器２７−ｎの学習部２７３は、機械状態毎にモデルを学習し（Ｓ２７３）、モデル記憶部１７３ａに記憶する。【００５５】
＜検知フェーズ＞
受信部１２は、機械状態を示す通信を受信するか、機械状態を示す設定を受信する。振分部１６は、受信した機械状態に基づき、ステップＳ２５で生成された振分ルールに基づいて、検知用通信データを適切な検知器に振り分ける（Ｓ１６）。これにより、機械状態によりその特性が変化するＩＤに対しても異常検知を実施することができる。
【実施例３】
【００５６】
機械の構成や、搭載した検知器の組み合わせ等によって、通信データの大部分が１つのグループに所属し、特定の検知器のみに振り分けられる場合がある。異常通信検知装置が複数のタスクを並列処理可能であるか、検知器を独立した装置として構成できる等の場合は、同一の学習器、検知器を複数用意することで、学習および検知に要する処理時間、処理負荷を削減、分散できる。【００５７】
以下、図７を参照して同一の検知器を複数用意した実施例３の異常通信検知装置の構成を説明する。図７に示すように、本実施例の異常通信検知装置３は、フェーズ切替部１１と、受信部１２と、一時保持部１３と、知識情報取得部１４と、知識情報記憶部１４ａと、振分ルール生成部３５と、振分ルール記憶部１５ａと、振分部１６と、Ｎ個（Ｎは２以上の自然数）の検知器である第１検知器３７−１、…、第Ｎ検知器３７−Ｎと、検知結果集計部１８を含み、振分ルール生成部３５、第１検知器３７−１、…、第Ｎ検知器３７−Ｎ以外の構成については、実施例１と同じ機能を有する。第１検知器３７−１、…、第Ｎ検知器３７−Ｎの中には、性能が同一なｍ個（２≦ｍ≦Ｎ−１）の検知器群である特定検知器群が含まれるものとする。以下、図８を参照して、実施例１と異なる動作について説明する。【００５８】
＜知識情報取得フェーズ＞
振分ルール生成部３５は、特定検知器群に属する検知器のそれぞれに振り分けられる通信データの単位時間当たりの通信量の合計が均一になるように、振分ルールを生成する（Ｓ３５）。【００５９】
例えば、特定検知器群に属する、性能が同一な検知器が二つあるものとし、これらを検知器Ｅ１，Ｅ２と呼称し、特定検知器群に振り分けられる学習用通信データの集合を集合Ｆと呼称する。集合Ｆに含まれる学習用通信データはＩＤによって送信間隔が異なるものとする。【００６０】
例えば、特定検知器群に属する検知器1器あたりの負荷を均等にする（すなわち、この場合は負荷を半分ずつにする）ためには、まず集合Ｆの学習用通信データをＩＤによって二分する。具体的には、知識情報から得られる各ＩＤの送信間隔をもとに単位時間あたりの通信量が均一（ほぼ半分ずつ）になるようにＩＤを仕分け、それぞれを、検知器Ｅ１に振り分けられる学習用通信データの集合Ｆ１、検知器Ｅ２に振り分けられる学習用通信データの集合Ｆ２とする。【００６１】
従って、振分ルール生成部３５は、検知器Ｅ１に集合Ｆ１に属するＩＤの通信データが振り分けられ、検知器Ｅ２に集合Ｆ２に属するＩＤの通信データが振り分けられるように、振分ルールを生成する。これにより、特定検知器群に属する各検知器の処理負荷を均一にし、低減することができ、異常通信検知装置３全体の処理が効率化される。また、上記と同様に性能が同一な複数個の学習器群である特定学習器群におけるそれぞれの学習器に対し、学習用通信データが均一に振り分けられるように、振分ルールを生成することでモデル生成等の学習時間を削減できる。【００６２】
［実施例１〜３に記載の異常通信検知装置１〜３が奏する効果］
実施例１〜３に記載の異常通信検知装置１〜３によれば、取得した通信データの知識情報（通信の振る舞いの特性、正常通信の送信周期や頻度といった時間的特性、またはペイロードの特性、あるいはその両方の特性を学習した結果および学習結果によって通信を分類した結果）に応じて、最も検知精度が高い検知器を用いて正常、異常の別を検知するため、過検知を減らし、検知精度を向上できる。また、複数の検知器を用意しておき、ＩＤ毎に適切な検知器に通信データを振り分けることにより、単独の検知器を通信全体に適用する場合と比較して検知精度が向上する。【００６３】
また、実施例１〜３に記載の異常通信検知装置１〜３によれば、取得した各通信データの知識情報を用いることで、通信に関する設計値や仕様を知らなくとも、適切な学習器および検知器を用いてモデルを学習し、通信データの正常、異常の別を検知することができるため、様々な車種や機械に適用させることが容易である。【００６４】
また、実施例２に記載の異常通信検知装置２によれば、機械状態に応じて振分ルールを使い分けることにより、検知精度が向上する。また、実施例３に記載の異常通信検知装置２によれば、対象通信の知識情報および振分ルールを基に複数の特定学習器群および特定検知器群に通信データを均一に振り分けることで、個々の学習器および検知器の処理負荷を分散させ、異常通信検知装置の処理全体の平準化を図ることができる。【００６５】
＜補記＞
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい）、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記録媒体を読み書きできる装置（ドライブ）などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータ、組込機器などがある。【００６６】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくこととしてもよい）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。【００６７】
ハードウェアエンティティでは、外部記憶装置（あるいはＲＯＭなど）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（上記、…部、…手段などと表した各構成要件）を実現する。【００６８】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。【００６９】
既述のように、上記実施形態において説明したハードウェアエンティティ（本発明の装置）における処理機能をコンピュータ、組込機器によって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータ、組込機器で実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ、組込機器上で実現される。【００７０】
この処理内容を記述したプログラムは、コンピュータ、組込機器で読み取り可能な記録媒体に記録しておくことができる。コンピュータ、組込機器で読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。【００７１】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータ、組込機器にそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。【００７２】
このようなプログラムを実行するコンピュータ、組込機器は、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータ、組込機器は、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータ、組込機器が可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータ、組込機器にサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータ、組込機器へのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータ、組込機器に対する直接の指令ではないがコンピュータ、組込機器の処理を規定する性質を有するデータ等）を含むものとする。【００７３】
また、この形態では、コンピュータ、組込機器上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2019102911.tif 000003
【図２】
2019102911.tif 000004
【図３】
2019102911.tif 000005
【図４】
2019102911.tif 000006
【図５】
2019102911.tif 000007
【図６】
2019102911.tif 000008
【図７】
2019102911.tif 000009
【図８】
2019102911.tif 000010
【手続補正書】
【提出日】令和2年4月27日(2020.4.27)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
なお、各フェーズにおいて受信部１２はネットワークやゲートウェイにおいて傍受することで通信データを得てもよいし、別途、他のモニタリング機器からログ等のデータとして通信データを得てもよい。傍受した通信データにはその受信時刻を付与するが、ログ等の通信データにすでに受信時刻が付与されているなら時刻付与は省略してもよい。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
また、実施例２に記載の異常通信検知装置２によれば、機械状態に応じて振分ルールを使い分けることにより、検知精度が向上する。また、実施例３に記載の異常通信検知装置３によれば、対象通信の知識情報および振分ルールを基に複数の特定学習器群および特定検知器群に通信データを均一に振り分けることで、個々の学習器および検知器の処理負荷を分散させ、異常通信検知装置の処理全体の平準化を図ることができる。
【国際調査報告】
2019102911.tif 000011
2019102911.tif 000012