(57)【要約】  通信間隔の設計値からのずれに対して頑強な攻撃通信検出装置を提供する。通信ネットワークにおける各電子制御装置の通信から攻撃通信を検出する攻撃通信検出装置であって、攻撃通信を含むか否かが未知である検出用通信データを受信する受信部と、検出用通信データの隣り合う二つの通信間隔の和である通信間隔和を算出する通信間隔和算出部と、攻撃通信を含まない学習用通信データの通信間隔および通信間隔和の推定分布モデルを予め記憶する推定分布モデル記憶部と、推定分布モデルと検出用通信データの通信間隔和に基づいて、検出用通信データが攻撃通信を含むか否かを検出する検出部を含む。
2019087858.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークにおける各電子制御装置の通信から攻撃通信を検出する攻撃通信検出装置であって、
前記攻撃通信を含むか否かが未知である検出用通信データを受信する受信部と、
前記検出用通信データの隣り合う二つの通信間隔の和である通信間隔和を算出する通信間隔和算出部と、
前記攻撃通信を含まない学習用通信データの前記通信間隔および前記通信間隔和の推定分布モデルを予め記憶する推定分布モデル記憶部と、
前記推定分布モデルと前記検出用通信データの前記通信間隔和に基づいて、前記検出用通信データが前記攻撃通信を含むか否かを検出する検出部と、
を含む攻撃通信検出装置。
【請求項２】
通信ネットワークにおける各電子制御装置の通信から攻撃通信を検出する攻撃通信検出装置であって、
前記攻撃通信を含まない学習用通信データと、前記攻撃通信を含むか否かが未知である検出用通信データを受信する受信部と、
前記学習用通信データの通信間隔と、前記検出用通信データの隣り合う二つの前記通信間隔の和である通信間隔和を算出する通信間隔・通信間隔和算出部と、
前記学習用通信データの前記通信間隔および前記通信間隔和の推定分布モデルを学習する学習部と、
前記推定分布モデルと前記検出用通信データの前記通信間隔和に基づいて、前記検出用通信データが前記攻撃通信を含むか否かを検出する検出部と、
を含む攻撃通信検出装置。
【請求項３】
請求項１または２に記載の攻撃通信検出装置であって、
前記推定分布モデルは、
前記学習用通信データの前記通信間隔の推定分布と、前記学習用通信データの前記通信間隔和の推定分布と、これらの推定分布に対する閾値を含む
攻撃通信検出装置。
【請求項４】
請求項３に記載の攻撃通信検出装置であって、
前記検出部は、
前記検出用通信データの任意の時刻における前記通信間隔和が、前記閾値以下となる場合に、前記検出用通信データに前記攻撃通信が含まれていると判断する
攻撃通信検出装置。
【請求項５】
請求項３または４に記載の攻撃通信検出装置であって、
前記学習部は、
前記閾値を、前記学習用通信データの前記通信間隔の平均ａ以上、かつ前記平均ａと予め定めた短間隔ａ’の和であるａ＋ａ’未満として決定する
攻撃通信検出装置。
【請求項６】
請求項１から５の何れかに記載の攻撃通信検出装置であって、
前記学習部は、
前記電子制御装置の機械状態毎に、前記推定分布モデルを学習する
攻撃通信検出装置。
【請求項７】
通信ネットワークにおける各電子制御装置の通信から攻撃通信を検出する攻撃通信検出方法であって、
前記攻撃通信を含むか否かが未知である検出用通信データを受信するステップと、
前記検出用通信データの隣り合う二つの通信間隔の和である通信間隔和を算出するステップと、
前記攻撃通信を含まない学習用通信データの前記通信間隔および前記通信間隔和の推定分布モデルと、前記検出用通信データの前記通信間隔和に基づいて、前記検出用通信データが前記攻撃通信を含むか否かを検出するステップと、
を含む攻撃通信検出方法。
【請求項８】
コンピュータを、請求項１から６の何れかに記載の攻撃通信検出装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば車両、工作機械、建設機械、農業機械等の機械類に搭載されたネットワーク、そのネットワークに接続された通信装置、および、それらで構成される通信システムにおいて、攻撃通信の検出を行う攻撃通信検出装置、攻撃通信検出方法、プログラムに関する。
【背景技術】
【０００２】
車両(自動車、特殊車両、自動二輪車、自転車等)、工作機械、建設機械、農業機械等の機械類には複数の電子制御装置（ＥＣＵ：Electronic Control Unit）が搭載されているものがあり、それらＥＣＵ間の通信ネットワークに用いられる代表的なものに、コントローラエリアネットワーク（ＣＡＮ：Controller Area Network）がある。ＣＡＮのネットワーク構成は各ＥＣＵの通信線が共有される、いわゆるバス型構成をとる。ＥＣＵのバスにおける通信手順には、ＣＳＭＡ／ＣＲ(Carrier Sense Multiple Access/Collision Resolution)、即ち、通信衝突する場合には優先順位の高い通信は衝突影響をうけず、優先順位の低い通信は再送する手順が用いられる。ＣＡＮ上の各ＥＣＵの通信にはＩＤが含まれており、ＩＤは通信調停の優先順位、データ内容や送信ノード等の識別に用いられる。【０００３】
これらの機械制御情報通信ネットワークに対するサイバー攻撃の危険性が示唆されている。ネットワークへの不正なＥＣＵの接続や既存ＥＣＵに対する不正な動作書き換え等の手段により、攻撃対象機能と関連するＩＤの攻撃送信を挿入し、その対象機能の不正な動作を誘発可能であることが知られている。【０００４】
これらの攻撃通信を検出する方法として、各同一ＩＤ通信の通信間隔の異常を検出する方法がある（例えば非特許文献１）。ＣＡＮにおいて、重要な機能に関する通信は周期的に送出するように設計されており、その機能に関連するＩＤの通信の間隔は設計値に従いほぼ一定となる。ある重要機能に対しての攻撃通信が挿入された時、その攻撃対象機能に関するＩＤの通信間隔は設計値よりも短間隔となることから、その間隔異常を検出することで攻撃通信検出が可能となる。ただし、ＣＳＭＡ／ＣＲの通信手順等により、通信間隔は設計値から一定の許容値範囲内でずれることがしばしば起こり、ずれの許容値を考慮して通信間隔異常の検出を行う必要がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】大塚、石郷岡、「既存ＥＣＵを変更不要な車載ＬＡＮ向け侵入検知手法」、情報処理学会研究報告、Vol.2013-EMB-28, No.6, pp.31-35, 2013.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の通信間隔に対する異常検出では、通信間隔の設計値およびずれの許容値を予め把握しておく必要がある。しかし、通信間隔の設計値通りにＥＣＵが実装されていない場合、その設計値自体が未知のＥＣＵ（例えば第三者提供のＥＣＵ）が使用される場合などがあり、事前の把握が困難な場合がある。ずれの許容値に関しては、通信手順自体に不確定要素を含むことから、設計値通りに実装されたＥＣＵであっても、予め把握することが困難な場合が多いと予想される。このように、通信間隔の設計値やずれの許容値を予め把握できない場合は、ＩＤ毎に間隔値を把握し、ずれに対応した調整を実施しなくてはならず、大きな手間がかかる。【０００７】
また、ずれの許容値はその値が大きくなるほど、検出精度は悪化する。例えば、ずれの許容値が設計値の±１０％のものと±５０％のものを比べた場合、正常通信を誤検出しないように検出するならば、前者はその間隔が通常の間隔値と比較して９０％以下になれば異常通信と検出できるのに対し、後者はその間隔が通常の間隔値と比較して５０％以下とならないと検出できず、見逃しが多くなる。より検出精度を高めるためには、ずれ許容値へのより適切な工夫が必要となる。【０００８】
そこで本発明では、通信間隔の設計値からのずれに対して頑強な攻撃通信検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の攻撃通信検出装置は、通信ネットワークにおける各電子制御装置の通信から攻撃通信を検出する装置であって、受信部と、通信間隔和算出部と、推定分布モデル記憶部と、検出部を含む。【００１０】
受信部は、攻撃通信を含むか否かが未知である検出用通信データを受信する。通信間隔和算出部は、検出用通信データの隣り合う二つの通信間隔の和である通信間隔和を算出する。推定分布モデル記憶部は、攻撃通信を含まない学習用通信データの通信間隔および通信間隔和の推定分布モデルを予め記憶する。検出部は、推定分布モデルと検出用通信データの通信間隔和に基づいて、検出用通信データが攻撃通信を含むか否かを検出する。
【発明の効果】
【００１１】
本発明の攻撃通信検出装置は、通信間隔の設計値からのずれに対して頑強である。
【図面の簡単な説明】
【００１２】
【図１】攻撃通信が挿入された場合の通信間隔、通信間隔和の例を示す図。
【図２】任意の時刻を基準とした場合の通信間隔和の推移を示す図。
【図３】実施例１の攻撃通信検出装置の構成を示すブロック図。
【図４】実施例１の攻撃通信検出装置の学習動作を示すフローチャート。
【図５】実施例１の攻撃通信検出装置の検出動作を示すフローチャート。
【図６】オフセットずれがある場合の通信間隔、通信間隔和の例を示す図。
【図７】実施例２の攻撃通信検出装置の構成を示すブロック図。
【図８】実施例２の攻撃通信検出装置の学習動作を示すフローチャート。
【図９】実施例３の攻撃通信検出装置の構成を示すブロック図。
【図１０】実施例３の攻撃通信検出装置の学習動作を示すフローチャート。
【図１１】変形例１の攻撃通信検出装置の構成を示すブロック図。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１４】
以下では、通信ネットワークのプロトコルとしてＣＡＮ（Controller Area Network）を利用するものと想定して説明を進めるが、本発明の攻撃通信検出装置が攻撃通信検出を実行する通信ネットワークのプロトコルは、必ずしもＣＡＮに限定されない。本発明の攻撃通信検出装置は、ＣＡＮ以外の通信ネットワークのプロトコル（例えば、Ethernet）を攻撃通信検出対象としてもよい。
【００１５】
以下の実施例の攻撃通信検出装置は、通信間隔だけではなく、隣り合う二つの通信間隔を足し合わせた和（以下、通信間隔和と呼ぶ）を用い、機械制御情報通信ネットワーク上の通信の傍受または傍受により得られたデータを基に学習を行うことで通信間隔および通信間隔和の設計値およびずれ許容値を適切に推測し、これらの推測を基に、通信間隔和（または加えて通信間隔）の異常を検出することで、挿入された攻撃通信の検出を行うものである。
【００１６】
＜通信間隔和＞
まず通信間隔和を用いた異常検出（攻撃検出）について説明する。図１に示すように、通信間隔は正常通信ではほぼ一定の間隔ａ（通信間隔の設計値）であるが、正常通信−攻撃通信の間隔はより短いｄとなる（同図における時刻Ｓ１と時刻ＳＡの間）。ｄは攻撃を挿入するタイミングに応じて、０≦ｄ≦ａの範囲で、任意に変わりうる。一方、通信間隔和については、正常通信が続く場合は通信間隔の倍である２ａである（例えば、同図における時刻Ｓ２とＳ４の間）が、正常通信−攻撃通信−正常通信のパターンにおける通信間隔和は攻撃挿入タイミングに係らず、必ずａとなる（同図における時刻Ｓ１と時刻Ｓ２の間）。攻撃通信が頻繁に挿入される場合、例えば正常通信−攻撃通信−攻撃通信では、その通信間隔和はａよりも小さな値となる。一方、正常通信−正常通信−攻撃通信の部分における通信間隔和はａ＋ｄであり（同図における時刻Ｓ０とＳＡの間）、攻撃通信−正常通信−正常通信の部分における通信間隔和は２ａ−ｄである（同図における時刻ＳＡとＳ３の間）。
【００１７】
よって攻撃通信が含まれない場合の通信間隔和は２ａ近辺、正常通信−攻撃通信−正常通信のパターンや、正常通信−攻撃通信−攻撃通信のパターンの通信間隔和はａ近辺かそれよりも小さい値となるため、その値に大きく隔たりができ（図２参照）、より精度よく検出することが可能となる。近辺と記述したのは、ずれ許容値を見込む必要があるためであり、後述する。
【００１８】
＜学習＞
次に学習について述べる。通信間隔および通信間隔和に関する設計値およびずれ許容値については、通信間隔および通信間隔和の値の分布を仮定し、正常通信を観察することで得られる通信間隔および通信間隔和の値の標本を用いて、その分布のパラメータを推定するという学習（パラメトリック推定）により推測する。仮定の分布として正規分布を用いた場合を例として以下に説明する。正規分布は標本の算術平均と標準偏差の２つのパラメータを算出することで推定できる。設計値はその算術平均を推定値として用いることができる。ずれ許容値は通信間隔および通信間隔和の推定分布を元に調整・決定することができ、詳細は後述する。仮定の分布は正規分布に限らず、三角分布、一様連続分布、ガンマ分布等、適切な分布を用いてよい。
【００１９】
＜閾値＞
最後にずれに対する適切な調整について述べる。先に述べた内容を踏まえれば、通信間隔和が２ａよりも小さければ、攻撃通信を含んでいると検出してよいように思える。しかし、ずれ許容値を考慮すると、誤検出を抑制するために２ａよりも小さく、検出率を向上させるためにａよりも大きい、適切な閾値Ｔ以下で異常と判定する方がよい（例えば図２の閾値Ｔ）。このとき、閾値Ｔ：＝通信間隔和の設計値−通信間隔和のずれ許容値であるとも言い換えられる。
【００２０】
＜推定分布＞
前述したように、通信間隔和を用いた異常検出では、攻撃通信を含む場合であって、そのパターンが正常通信−攻撃通信−正常通信である場合には、その通信間隔和は正常時の通信間隔の値と同値になる（図１における時刻Ｓ１とＳ２の間）。そこで、正常通信−攻撃通信−正常通信である場合の通信間隔和の推定分布は、正常通信における通信間隔の推定分布で代用することができる。すなわち、正常通信を学習するだけで、正常時の通信間隔の推定分布と正常通信−攻撃通信−正常通信パターンにおける攻撃時の通信間隔和の推定分布の両方を得ることができる。
【００２１】
このとき、推定分布として適切な確率密度関数（全区間の積分結果が１）を用い、許容可能な最大誤検出率（誤検出率：＝異常と誤って検出した正常通信数÷全正常通信数）をｐ−と定めると、正常時の推定分布から以下の式を満たす最大の閾値Ｔを決めることができる。ただしＬ−は正常時の通信間隔和の推定分布である。
∫ＴＬ−（ｘ）ｄｘ≦ｐ−
【００２２】
また、閾値Ｔが定まれば、攻撃時の推定分布から、以下の式で検出率（検出率：＝異常と正しく検出した攻撃通信数÷全攻撃通信数）を予想することができる。ただしＬ＋は（正常時の通信間隔の推定分布で代替した）攻撃時の通信間隔和の推定分布である。
予想検出率＝∫ＴＬ＋（ｘ）ｄｘ
【００２３】
積分値は数値計算等を用いて求めることができる。一方で、例えば、推定分布に正規分布を用いる場合、通信間隔和の平均値μ、標準偏差σ、およびｚ値を用いて、閾値Ｔを以下の通り決定してもよい。
Ｔ＝μ−ｚ×σ
【００２４】
正規分布において、積分値（確率）とｚ値の関係は標準正規分布表として、まとめられており、その表を参照して１−ｐ−×２の確率に近いｚ値を用いればよい。最大誤検出率を０．１５％とした場合、標準正規分布表での確率は１００％−０．１５％×２＝９９．７％であり、表を参照して対応するｚ値をｚ＝３と決めることができる。ｚ値は指定の最大誤検出率のみで決まる値であり、ＩＤ毎に個々に調整しなくてもよい。このように用いる分布に応じて容易に閾値Ｔを算出できる方法を用いることができる。
【００２５】
これにより、許容可能な最大誤検出率を満たし、その際の検出率を予測可能とする、ずれに対する調整を機械的に行うことができ、ＩＤ個々に対する手動調整を必要としない。一方で、特定のＩＤにおいて特に低い誤検出率を必要とする場合等、個別の要件がある場合には、その特定ＩＤ毎に最大誤検出率を指定する等の個別設定を行ってもよい。
【００２６】
また、以下の通り、許容可能な最小検出率ｐ＋を指定して、閾値Ｔやその予想誤検出率を求めてもよく、同様に調整を機械的に行うことができる。
∫ＴＬ＋（ｘ）ｄｘ≦ｐ＋
予想誤検出率＝∫ＴＬ−（ｘ）ｄｘ
【００２７】
通信間隔和を異常検出に用いる利点として、通信間隔よりもずれが比較的小さい点も挙げることができる。ＥＣＵの多くは内部クロックを用いて周期送出のタイミングを計っている。そのため、衝突待ち合わせで遅延した通信の直後の通信は、（設計値の間隔分あけてから送信するのではなく、クロックタイミングで送信されるために）直前に遅延した分だけ間隔が短く早期に送信されるように見える。一方で、通信間隔和はその遅延分と早着分を相殺する結果となる。そのため、通信間隔和のずれは、通信間隔のずれから予想されるよりも小さな値をとり、場合によっては通信間隔のずれよりも小さい値となることさえある。ずれが小さいことは検出精度の向上に有利となる。
【実施例１】
【００２８】
以下、図３を参照して実施例１の攻撃通信検出装置の構成を説明する。同図に示すように本実施例の攻撃通信検出装置１は、受信部１１と、一時保持部１２と、通信間隔・通信間隔和算出部１３と、学習部１４と、推定分布モデル記憶部１５と、検出部１６を含む。以下、図４を参照して学習時の各構成要件の動作を説明する。【００２９】
＜受信部１１（学習時）＞
受信部１１は、機械制御情報通信ネットワークの通信、または、通信の加工等により生成された通信データであって、攻撃通信を含まない学習用通信データを受信する（Ｓ１１−１）。受信部１１は、学習用通信データの各データ単位（例えば各パケット、各フレーム）に通信時刻を付与する。通信のＩＤ毎に学習用通信データが区別されるものとし、以下のステップは、各ＩＤの学習用通信データに対して、ＩＤ毎に別々に実行されるものとする。【００３０】
受信部１１はネットワークやゲートウェイを傍受することで通信を得てもよいし、別途、他のモニタリング機器からログ等のデータとして通信データを得てもよい。傍受で得た通信にはその受信時刻（通信時刻）を付与するが、ログ等のデータとして通信データを得た場合であって、すでに受信時刻（通信時刻）が付与されている場合には、時刻付与を省略してよい。受信部１１では、通信のＩＤを見て、検出対象のもののみを選別して受け入れてもよい。【００３１】
＜一時保持部１２（学習時）＞
一時保持部１２は、学習用通信データの通信時刻を最新のものから複数（例えば３つ）保持する（Ｓ１２−１）。【００３２】
＜通信間隔・通信間隔和算出部１３（学習時）＞
通信間隔・通信間隔和算出部１３は、ステップＳ１２−１で保持された学習用通信データの通信時刻を用い、学習用通信データの通信間隔を算出する（Ｓ１３−１）。また、通信間隔・通信間隔和算出部１３は、前述した閾値Ｔを算出するために、学習用通信データの通信間隔和も併せて算出する。【００３３】
＜学習部１４＞
学習部１４は、設定で指定された仮定分布や最大誤検出率（または最小検出率）を条件に、ステップＳ１３−１で算出された通信間隔、通信間隔和を用いて、学習用通信データの通信間隔の推定分布、学習用通信データの通信間隔和の推定分布、これらの推定分布に対する閾値Ｔなどを学習する（Ｓ１４）。これらの推定分布、閾値Ｔなどは、推定分布モデルとして、推定分布モデル記憶部１５に記憶される。【００３４】
例えば、学習部１４は、ステップＳ１３−１で算出された通信間隔、通信間隔和を標本データとして、設定（装置の管理者などが入力する）で指定された仮定の分布や最大誤検出率（あるいは最小検出率）等を条件に、ＩＤ毎に推定分布や閾値Ｔを確定し、それらを推定分布モデルとして学習し、推定分布モデル記憶部１５に記録する。【００３５】
学習部１４は、標本データをある程度の量をまとめ、前処理を実施してから、推定分布の確定を行う。標本データの前処理の例として、値の大小数％のデータを除去し、例外値による影響を抑制する等がある。一方、可能であれば、学習部１４は、標本データをまとめず、一件ずつ逐次処理し、推定分布モデルを更新していく方法で学習を実施してもよい。例えば正規分布を用いる場合、モーメントを用いて逐次処理することができる。【００３６】
＜推定分布モデル記憶部１５＞
上述したように、推定分布モデル記憶部１５に記憶される推定分布モデルは、学習用通信データの通信間隔の推定分布、学習用通信データの通信間隔和の推定分布、これらの推定分布に対する閾値Ｔを含んでもよいし、この他に推定分布のパラメータを含んでもよい。推定分布モデル記憶部１５にはＩＤ毎に推定分布モデルが納められる。正規分布を例に取ると、推定分布モデルには、それらの平均値、標準偏差、閾値Ｔ等を含む。モデルは要件に応じて適宜必要なもののみ記憶するようにしてもよい。例えば、検出時に用いる閾値Ｔのみを保管してもよい。また、平均値、標準偏差のみを推定分布モデル記憶部１５に記憶し、閾値Ｔは検出部１６にて都度算出するようにしてもよい。【００３７】
以下、図５を参照して検出時の各構成要件の動作を説明する。【００３８】
＜受信部１１（検出時）＞
受信部１１は、機械制御情報通信ネットワークの通信、または、通信の加工等により生成された通信データであって、攻撃通信を含むか否かが未知である検出用通信データを受信する（Ｓ１１−２）。【００３９】
＜一時保持部１２（検出時）＞
一時保持部１２は、検出用通信データの通信時刻を最新のものから複数（少なくとも３つ以上）保持する（Ｓ１２−２）。通信間隔和の算出のためには、同一ＩＤの通信の、直近３つ以上の通信時刻が必要となるため、一時保持部１２はＩＤ毎に直近３つ以上の通信時刻を保持する。【００４０】
通信が新しく到着した場合、一時保持部１２は、そのＩＤを調べ、対応するＩＤの最も古い通信時刻を廃棄し、新しい通信時刻を追加する（Fast in Fast out バッファ）。【００４１】
＜通信間隔・通信間隔和算出部１３（検出時）＞
通信間隔・通信間隔和算出部１３は、ステップＳ１２−２で保持された検出用通信データの通信時刻を用い、検出用通信データの隣り合う二つの通信間隔の和である通信間隔和を算出する（Ｓ１３−２）。図１の例を用いてステップＳ１３−２を説明すると、例えば同図の例において、時刻Ｓ１の通信データの通信単位（例えばパケット、またはフレーム）が受信され、通信時刻Ｓ１が新たに記録された場合、時刻Ｓ１と、時刻Ｓ１より過去の二つの通信時刻を用いて、通信間隔和２ａが算出される。同様に、時刻ＳＡの通信データの通信単位（例えばパケット、またはフレーム）が受信され、通信時刻ＳＡが新たに記録された場合、時刻ＳＡ、時刻Ｓ１、時刻Ｓ０を用いて、通信間隔和ａ＋ｄが算出される。同様に、時刻Ｓ２の通信データの通信単位（例えばパケット、またはフレーム）が受信され、通信時刻Ｓ２が新たに記録された場合、時刻Ｓ２、時刻ＳＡ、時刻Ｓ１を用いて、通信間隔和ａが算出される。従って、同図の例の場合、通信データの受信に伴い、その通信間隔和は、２ａ，ａ＋ｄ，ａ，２ａ−ｄ，２ａの順序で、順次算出されることとなる。【００４２】
＜検出部１６＞
検出部１６は、推定分布モデルと検出用通信データの通信間隔和に基づいて、検出用通信データが攻撃通信を含むか否かを検出する（Ｓ１６）。【００４３】
より具体的には、検出部１６は、ステップＳ１３−２で順次算出される通信間隔和を、推定分布モデル記憶部１５に記憶された推定分布モデルと比較し、検出用通信データの任意の時刻における通信間隔和が、推定分布に対する閾値Ｔ以下となる場合に、検出用通信データに攻撃通信が含まれていると判断し、検出結果を出力する（Ｓ１６）。前述したとおり、閾値Ｔは予め学習時に算出しておいてもよいし、検出部１６で都度算出してもよい。検出処理は通信を受信する都度行ってもよいし、ある程度通信をまとめてから行ってもよい。【００４４】
検出結果は、異常か正常かを出力する形式であってもよいし、異常時のみ検出結果を出力してもよい。検出結果に検出用通信データを特定する情報、例えば受信時刻やＩＤ等を付与してもよい。同一ＩＤに対する異常を連続して検出した場合に、それらを取りまとめ、あるいは加えて、異常検出開始時刻、終了時刻、ＩＤ等を付与して出力してもよい。検出部１６は、検出結果をネットワークで送信してもよいし、他装置を経由して検出結果を送信・通知してもよい。【００４５】
なお、頻繁に攻撃通信が挿入される場合、正常通信と衝突し、どちらかの通信が送出されない場合がある。この場合、受信部１１はＣＡＮにて送信されるエラーフレームを受信し、エラーフレームより送出されなかった通信を推測し、その通信を通常の通信と同様に取り扱ってもよい。攻撃通信が正常通信と衝突し、攻撃通信のみが送出された場合、その通信間隔・通信間隔和は、正常時と区別できない。しかし、前述した通り、エラーフレームも加味することで、同時刻に送出された正常通信と攻撃通信の２つとして取り扱うことでき、通信間隔・通信間隔和での区別が可能となる。【００４６】
攻撃通信検出装置１は、検出部１６を取り除いた学習のみを行う装置、学習部１４を取り除いた検出のみを行う装置としてもよい。学習のみを行う装置は、その学習の結果として推定分布モデルを推定分布モデル記憶部１５に記憶する。記憶された推定分布モデルを、検出のみを行う装置の推定分布モデル記憶部１５に記憶すれば、当該装置において学習なしで検出を行うことができるようになる。検出のみを行う装置については、変形例１において後述する。
【実施例２】
【００４７】
周期型送出には変種が存在し、通常は一定の通信間隔で通信送出されるが、ある契機で、そのときのみ、ずれ許容値を越えて短間隔（または長間隔）で送出され、その後は元の一定間隔で送出されるものがある。この変種であるオフセットずれあり周期型についての異常検出を以下に記述する。【００４８】
オフセットずれあり周期型の通信間隔および通信間隔和を図６に示す。同図に示すように、正常通信の間隔がａ’（＜ａ）と短くなっているところがあるため、設計値ａより短間隔な通信間隔を攻撃通信によるものであると検出するアルゴリズムでは、ａ’を誤検出してしまう。一方、正常時の通信間隔和は、ａ＋ａ’から２ａの間に分布し、異常時の通信間隔和は、正常−攻撃−正常パターンにおいてａ近傍となるため、閾値Ｔをａ近辺とし、通信間隔和が閾値Ｔと等しいか閾値Ｔより小さい場合には、当該通信を異常と検出することができる。閾値Ｔは、ずれ許容値を見込んで、ａからａ＋ａ’の間の適切な値とし、閾値が決まれば、通信間隔和を用いて実施例１と同様に検出を行える。【００４９】
図７を参照して実施例２の攻撃通信検出装置の構成を説明する。同図に示すように、本実施例の攻撃通信検出装置２は、受信部１１と、一時保持部１２と、通信間隔・通信間隔和算出部１３と、学習部２４と、推定分布モデル記憶部１５と、検出部１６を含み、学習部２４以外の各構成要件は、実施例１と同じである。【００５０】
＜学習部２４＞
図８を参照して学習部２４の動作を説明する。前述したように、学習部２４は、閾値Ｔを、学習用通信データの通信間隔の平均ａ以上、かつ平均ａと予め定めた短間隔ａ’の和であるａ＋ａ’未満として決定し、推定分布モデルを学習する（Ｓ２４）。【００５１】
学習部２４は、以下のように推定分布を求める。まず、学習部２４は、学習用通信データの各通信時刻に基づき、短間隔ａ’を除外した通信間隔の推定分布と、短間隔和ａ＋ａ’を除外した通信間隔和の推定分布を求める。この除外には、値の大小数％のデータを除去してから推定分布を求める手法や尤度を用いた分布推定を行う方法がある。【００５２】
次に、学習部２４は、短間隔ａ’のみの推定分布、短間隔和ａ＋ａ’のみの推定分布をそれぞれ求める。短間隔の推定分布は前述の短間隔を除外した推定分布と異なる分布を用いてよい。学習部２４は、例えば前者に正規分布を用い、後者に一様連続分布を用いることができる。このように推定分布が求まれば、実施例１と同様に閾値を求めることができる。
【実施例３】
【００５３】
あるＥＣＵは機械状態、例えば、車両における停車、走行、自動走行等の状態の違いによって、その送出タイミングが変化するものがある。そのような場合、周期型送出において、機械状態により、その通信間隔および通信間隔和が変更されることとなる。以下、機械状態に対応した異常検出を行う実施例３の攻撃通信検出装置３について説明する。【００５４】
図９に示すように本実施例の攻撃通信検出装置３は、受信部１１と、一時保持部１２と、通信間隔・通信間隔和算出部１３と、学習部３４と、推定分布モデル記憶部１５と、検出部１６を含み、学習部３４以外の各構成要件は、実施例１と同じである。【００５５】
＜学習部３４＞
図１０を参照して学習部３４の動作を説明する。学習部３４は、電子制御装置の機械状態毎に、推定分布モデルを学習する（Ｓ３４）。より詳細には、学習部３４は、機械状態毎に推定分布モデルを定め、機械状態毎およびＩＤ毎にその推定分布モデルを推定分布モデル記憶部１５に記憶する。受信部１１は機械状態を示す通信・信号を受信し、その受信内容に応じて機械状態を判断し、推定分布モデル記憶部１５をその機械状態用に切り替える。これにより、機械状態により変化する場合においても異常検出を行える。機械状態を示す通信・信号は、ネットワーク上を送信してもよいし、別経路にて送信してもよい。【００５６】
［変形例１］
図１１を参照して、変形例１の攻撃通信検出装置１Ａについて説明する。本変形例の攻撃通信検出装置１Ａは、実施例１の装置から学習機能を取り除き、検出のみを行う装置とした例である。同図に示すように、本変形例の攻撃通信検出装置１Ａは、受信部１１、一時保持部１２、通信間隔和算出部１３Ａ、推定分布モデル記憶部１５、検出部１６を含む構成である。推定分布モデル記憶部１５には、実施例１のステップＳ１４などで学習済みの推定分布モデルが予め記憶済みである。本変形例において、検出用通信データの通信間隔和の算出は必須であるものの、検出用通信データの通信間隔の算出は必須ではないため、実施例１における通信間隔・通信間隔和算出部１３は、本変形例において通信間隔和算出部１３Ａに名称変更した。【００５７】
＜効果＞
上述の実施例、変形例の攻撃通信検出装置によれば、予め設計値・ずれを知らずとも、学習により把握可能で、様々な車種や機械へ異常検出を適応させることが容易となる。また、ＩＤ個別に手作業での調整はせずとも、許容可能な最大誤検出率等の望む精度を指定により容易に自動調整でき、効率化を図れる。通信間隔和の利用により、検出精度が向上する。【００５８】
＜補記＞
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（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）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータ、組込機器に対する直接の指令ではないがコンピュータ、組込機器の処理を規定する性質を有するデータ等）を含むものとする。【００６６】
また、この形態では、コンピュータ、組込機器上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2019087858.tif 000003
【図２】
2019087858.tif 000004
【図３】
2019087858.tif 000005
【図４】
2019087858.tif 000006
【図５】
2019087858.tif 000007
【図６】
2019087858.tif 000008
【図７】
2019087858.tif 000009
【図８】
2019087858.tif 000010
【図９】
2019087858.tif 000011
【図１０】
2019087858.tif 000012
【図１１】
2019087858.tif 000013
【手続補正書】
【提出日】令和2年3月25日(2020.3.25)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
＜学習＞
次に学習について述べる。通信間隔および通信間隔和に関する設計値およびずれ許容値については、通信間隔および通信間隔和の値の分布を仮定し、正常通信を観察することで得られる通信間隔および通信間隔和の値の標本を用いて、その分布のパラメータを推定するという学習（パラメトリック推定）により推測する。仮定の分布として正規分布を用いた場合を例として以下に説明する。正規分布は標本の算術平均と標準偏差の２つのパラメータを算出することで推定できる。設計値はその算術平均を推定値として用いることができる。ずれ許容値は通信間隔および通信間隔和の推定分布を元に調整・決定することができ、詳細は後述する。仮定の分布は正規分布に限らず、三角分布、連続一様分布、ガンマ分布等、適切な分布を用いてよい。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
通信が新しく到着した場合、一時保持部１２は、そのＩＤを調べ、対応するＩＤの最も古い通信時刻を廃棄し、新しい通信時刻を追加する（First in First out バッファ）。
【国際調査報告】
2019087858.tif 000014
2019087858.tif 000015