特許第6939898号(P6939898)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

特許6939898ビットアサイン推定装置、ビットアサイン推定方法、プログラム
<>
  • 特許6939898-ビットアサイン推定装置、ビットアサイン推定方法、プログラム 図000004
  • 特許6939898-ビットアサイン推定装置、ビットアサイン推定方法、プログラム 図000005
  • 特許6939898-ビットアサイン推定装置、ビットアサイン推定方法、プログラム 図000006
  • 特許6939898-ビットアサイン推定装置、ビットアサイン推定方法、プログラム 図000007
  • 特許6939898-ビットアサイン推定装置、ビットアサイン推定方法、プログラム 図000008
  • 特許6939898-ビットアサイン推定装置、ビットアサイン推定方法、プログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6939898
(24)【登録日】2021年9月6日
(45)【発行日】2021年9月22日
(54)【発明の名称】ビットアサイン推定装置、ビットアサイン推定方法、プログラム
(51)【国際特許分類】
   H04L 12/70 20130101AFI20210909BHJP
   H04L 12/28 20060101ALI20210909BHJP
【FI】
   H04L12/70 100Z
   H04L12/28 100A
   H04L12/28 200M
【請求項の数】8
【全頁数】15
(21)【出願番号】特願2019-557131(P2019-557131)
(86)(22)【出願日】2018年11月14日
(86)【国際出願番号】JP2018042081
(87)【国際公開番号】WO2019107149
(87)【国際公開日】20190606
【審査請求日】2020年4月30日
(31)【優先権主張番号】特願2017-231762(P2017-231762)
(32)【優先日】2017年12月1日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100121706
【弁理士】
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【弁理士】
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【弁理士】
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】小山 卓麻
(72)【発明者】
【氏名】田中 政志
(72)【発明者】
【氏名】岡野 靖
【審査官】 野元 久道
(56)【参考文献】
【文献】 岸川 剛 外7名,車載ネットワーク異常検知システムの自動構築を実現する汎用CANメッセージフィールド抽出手法,2017年 暗号と情報セキュリティシンポジウム(SCIS2017)予稿集 [USB] 2017年 暗号と情報セキュリティシンポジウム概要集,日本,電子情報通信学会,2017年01月27日,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/70
H04L 12/28
(57)【特許請求の範囲】
【請求項1】
通信ネットワークにおける各電子制御装置の通信データに含まれるペイロードのビットアサインを推定するビットアサイン推定装置であって、
前記通信データを受信する受信部と、
受信した前記通信データの前記ペイロードを予め定めた固定ビット長毎に分割して複数のブロックを生成するブロック生成部と、
前記ブロック毎の統計量に基づいて、前記ブロックの前記ビットアサインを固定値型、状態値型、連続値型の何れかに推定する単位ブロックビットアサイン推定部と、
前記連続値型と推定された前記ブロック、または隣り合う前記ブロック同士を複数連結してなる連結ブロックであって前記連続値型と推定された前記連結ブロック、のいずれかに上位ビット側で隣接する前記ブロックが、前記状態値型、または前記連続値型と推定されている場合に、隣接する前記ブロックを、前記連続値型と推定された前記ブロック、または前記連結ブロックに連結するブロック連結部と、
前記連結ブロック毎の統計量に基づいて、前記連結ブロックが前記連続値型であるか否かを推定する連結ブロックビットアサイン推定部と、
前記連結ブロックが前記連続値型でないと推定された場合に、直近に連結した前記ブロックを対応する前記連結ブロックから分離するブロック分離部
を含むビットアサイン推定装置。
【請求項2】
請求項1に記載のビットアサイン推定装置であって、
前記単位ブロックビットアサイン推定部は、
前記ブロックのユニークな値の種類数、前記ブロックの値が変化した回数の割合、前記ブロックの値の変化量の差分の分散、の少なくとも何れか一つ以上に設定した閾値に基づいて、前記ブロックが前記状態値型であるか前記連続値型であるかを推定し、
前記連結ブロックビットアサイン推定部は、
前記連結ブロックのユニークな値の種類数、前記連結ブロックの値が変化した回数の割合、前記連結ブロックの値の変化量の差分の分散、の少なくとも何れか一つ以上に設定した閾値に基づいて、前記連結ブロックが前記連続値型であるか否かを推定する
ビットアサイン推定装置。
【請求項3】
請求項1または2に記載のビットアサイン推定装置であって、
前記単位ブロックビットアサイン推定部は、
前記連続値型と推定された前記ブロックを、対応する前記分散および前記分散の算出に用いた前記変化量に基づいて、符号無し連続値型、符号付き連続値型、カウンタ値型、チェックサム値型の何れかに推定する
ビットアサイン推定装置。
【請求項4】
請求項1から3の何れかに記載のビットアサイン推定装置であって、
前記単位ブロックビットアサイン推定部は、
受信した前記通信データの送信周期が予め定めたパターンに該当する場合、対応する前記ブロックが前記状態値型と推定されやすくなるように、推定に用いる閾値を変更する
ビットアサイン推定装置。
【請求項5】
通信ネットワークにおける各電子制御装置の通信データに含まれるペイロードのビットアサインを推定するビットアサイン推定方法であって、
前記通信データを受信する受信ステップと、
受信した前記通信データの前記ペイロードを予め定めた固定ビット長毎に分割して複数のブロックを生成するブロック生成ステップと、
前記ブロック毎の統計量に基づいて、前記ブロックの前記ビットアサインを固定値型、状態値型、連続値型の何れかに推定する単位ブロックビットアサイン推定ステップと、
前記連続値型と推定された前記ブロック、または隣り合う前記ブロック同士を複数連結してなる連結ブロックであって前記連続値型と推定された前記連結ブロック、のいずれかに上位ビット側で隣接する前記ブロックが、前記状態値型、または前記連続値型と推定されている場合に、隣接する前記ブロックを、前記連続値型と推定された前記ブロック、または前記連結ブロックに連結するブロック連結ステップと、
前記連結ブロック毎の統計量に基づいて、前記連結ブロックが前記連続値型であるか否かを推定する連結ブロックビットアサイン推定ステップと、
前記連結ブロックが前記連続値型でないと推定された場合に、直近に連結した前記ブロックを対応する前記連結ブロックから分離するブロック分離ステップ
を含むビットアサイン推定方法。
【請求項6】
請求項5に記載のビットアサイン推定方法であって、
前記単位ブロックビットアサイン推定ステップは、
前記ブロックのユニークな値の種類数、前記ブロックの値が変化した回数の割合、前記ブロックの値の変化量の差分の分散、の少なくとも何れか一つ以上に設定した閾値に基づいて、前記ブロックが前記状態値型であるか前記連続値型であるかを推定し、
前記連結ブロックビットアサイン推定ステップは、
前記連結ブロックのユニークな値の種類数、前記連結ブロックの値が変化した回数の割合、前記連結ブロックの値の変化量の差分の分散、の少なくとも何れか一つ以上に設定した閾値に基づいて、前記連結ブロックが前記連続値型であるか否かを推定する
ビットアサイン推定方法。
【請求項7】
請求項5または6に記載のビットアサイン推定方法であって、
前記単位ブロックビットアサイン推定ステップは、
前記連続値型と推定された前記ブロックを、対応する前記分散および前記分散の算出に用いた前記変化量に基づいて、符号無し連続値型、符号付き連続値型、カウンタ値型、チェックサム値型の何れかに推定する
ビットアサイン推定方法。
【請求項8】
コンピュータを請求項1から4の何れかに記載のビットアサイン推定装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば車両、工作機械、建設機械、農業機械等の機械類に搭載されたネットワーク、そのネットワークに接続された通信装置、および、それらで構成される通信システムにおいて、通信データに含まれるペイロードのビットアサイン(型)を推定するビットアサイン推定装置、ビットアサイン推定方法、プログラムに関する。
【背景技術】
【0002】
車両(自動車、特殊車両、自動二輪車、自転車等)、工作機械、建設機械、農業機械等の機械類には複数の電子制御装置(ECU:Electronic Control Unit)が搭載されているものがあり、それらECU間の通信ネットワークに用いられる代表的なものに、コントローラエリアネットワーク(CAN:Controller Area Network)がある。CANのネットワーク構成は各ECUの通信線が共有される、いわゆるバス型構成をとる。ECUのバスにおける通信手順には、CSMA/CR(Carrier Sense Multiple Access/Collision Resolution)、即ち、通信衝突する場合には優先順位の高い通信は衝突影響をうけず、優先順位の低い通信は再送する手順が用いられる。CAN上の各ECUの通信にはIDが含まれており、IDは通信調停の優先順位、ペイロードの内容や送信ノード等の識別に用いられる。ペイロードの長さはID毎に1バイトから8バイトまで1バイト刻みで規定されており、ペイロードの内容は設計者が自由に指定できる。
【0003】
これらの車両機器通信ネットワークに対するサイバー攻撃の危険性が示唆されている。ネットワークへの不正なECUの接続や既存ECUの不正な動作書き換え等の手段により、攻撃対象機能と関連するIDの攻撃送信を挿入し、その対象機能の不正な動作を誘発可能であることが知られている。
【0004】
これらの攻撃通信を検知する方法として、ペイロードを監視することによる異常検知方法が提案されている。この方法において検知精度を向上するためには、ペイロードの内容を分析し正常状態を把握することが重要である。CANのペイロードの内容を把握する方法として、例えば非特許文献1がある。正常な通信を基に、ペイロードのビットアサイン(型の種類。例えば、固定値、カウンタやチェックサムなどの変数)を推定する方法である。CANの場合、複数の型が同一ペイロード内に混在している場合がある。そのため、ペイロードが何ビットの何個の型から構成されるかという分割パターンの推定と、分割された各部(フィールドと呼称する)の型の種類の推定を行う。従来技術はあり得る全ての分割パターンのフィールドに対して複数の統計量を算出し、各統計量に対して型の判別基準に合致するかどうかで分割パターンの候補を選別する。ある分割パターンがある型に推定できたら、それと矛盾する分割パターンを候補から除外し、残った分割パターンに対して別の型との合致を確認し、これを全型に対して繰り返す。最終的に残った1通りの分割パターンならびに分割された各フィールドの型の種類を推定結果とする。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】岸川剛、前田学、鶴見淳一、芳賀智之、高橋良太、佐々木崇光、安齋潤、松島秀樹、「車載ネットワーク異常検知システムの自動構築を実現する汎用CANメッセージフィールド抽出手法」、SCIS2017−暗号と情報セキュリティシンポジウム、2017
【発明の概要】
【発明が解決しようとする課題】
【0006】
まず、従来技術はあり得る全ての分割パターンに対して統計量を算出する必要がある。CANの場合、例えばペイロードが8バイト(64ビット)のIDでは
【0007】
【数1】
【0008】
通りの分割パターンが存在する。分割パターン例として、1ビット長のフィールドが64個連なっているパターンや、64ビット長のフィールド1つからなるパターン等が挙げられる。従来技術では、それら全分割パターンに対して取り得る値の種類数や値が変化した時の変化量の分散、値の変化割合等の統計量を算出するが、多くの分割パターンはそのフィールドがオーバーラップしているため、同一の統計値を何度も算出することになり手間がかかる。例えばペイロードが8ビットのあるIDについて、正解となる推定結果が上位4ビットは固定値、下位4ビットは変数であったとする。このとき従来技術では全分割パターンの取り得る値の数や値の変化量の分散、変化した割合等を算出するが、中でも下位4、5、6、7、8ビットをそれぞれ1つのフィールドとみなした場合の5通りの統計量はいずれも同一の値である。
【0009】
つぎに、各フィールドを値の変化の有無という特徴により分類すると定数(固定値型)と変数型の2種類に大別できる。変数型はさらにその変化の特徴で細分化でき、従来技術は、4種類の変数型を定義しているが、各変数型をその中の状態値型と誤って推定する場合があるという課題がある。
【0010】
従来技術の変数型は、センサから取得した物理量など連続的に値が変化する連続値型、通信のたびに値がインクリメントされ連続的に値が変化するカウンタ型、他のフィールドから所定のアルゴリズムに従い導出され誤り検出等に用いられるチェックサム値型、シフトポジションなどの車両状態やフラグなどを表す状態値型の4種類である。従来技術では、各フィールドを固定値型かどうか、カウンタ型かどうか、連続値型かどうか、あるいはチェックサム値型かどうか、分割パターンの統計量を基に条件を満たすかどうか、順に推定し、推定できなかった残りのフィールドを全て状態値型とみなす。つまり、従来技術はフィールドが状態値型かどうかを直接推定するのではなくその他の型と推定できなかった残りのフィールドを消去法的に状態値型と推定するのである。従って従来技術は、連続値型とカウンタ型、チェックサム値型という変数としての特徴が異なる型を状態値型と誤って推定する場合がある。ペイロードの内容を基に異常検知を行うためには各フィールドの特徴を精度良く推定する必要があり、フィールドの推定手順および推定基準をより適切に工夫する必要がある。
【0011】
そこで本発明では、従来技術よりも少ない分割パターンで、精度よくペイロードのビットアサインを推定することができるビットアサイン推定装置を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明のビットアサイン推定装置は、通信ネットワークにおける各電子制御装置の通信データに含まれるペイロードのビットアサインを推定する。本発明のビットアサイン推定装置は、受信部と、ブロック生成部と、単位ブロックビットアサイン推定部と、ブロック連結部と、連結ブロックビットアサイン推定部と、ブロック分離部を含む。
【0013】
受信部は、通信データを受信する。ブロック生成部は、受信した通信データのペイロードを予め定めた固定ビット長毎に分割して複数のブロックを生成する。単位ブロックビットアサイン推定部は、ブロック毎の統計量に基づいて、ブロックのビットアサインを固定値型、状態値型、連続値型の何れかに推定する。ブロック連結部は、連続値型と推定されたブロック、または隣り合うブロック同士を複数連結してなる連結ブロックであって連続値型と推定された連結ブロック、のいずれかに上位ビット側で隣接するブロックが、状態値型、または連続値型と推定されている場合に、隣接するブロックを、連続値型と推定されたブロック、または連結ブロックに連結する。連結ブロックビットアサイン推定部は、連結ブロック毎の統計量に基づいて、連結ブロックが連続値型であるか否かを推定する。ブロック分離部は、連結ブロックが連続値型でないと推定された場合に、直近に連結したブロックを対応する連結ブロックから分離する。
【発明の効果】
【0014】
本発明のビットアサイン推定装置によれば、従来技術よりも少ない分割パターンで、精度よくペイロードのビットアサインを推定することができる。
【図面の簡単な説明】
【0015】
図1】実施例1のビットアサイン推定装置の構成を示すブロック図。
図2】実施例1のビットアサイン推定装置の動作を示すフローチャート。
図3】実施例1のビットアサイン推定方法のステップS13、S14を説明する図。
図4】実施例1のビットアサイン推定方法のステップS15、S16、S17を説明する図。
図5】実施例2のビットアサイン推定装置の構成を示すブロック図。
図6】実施例2のビットアサイン推定装置の動作を示すフローチャート。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【実施例1】
【0017】
以下、図1を参照して実施例1のビットアサイン推定装置の構成を説明する。同図に示すように、本実施例のビットアサイン推定装置1は、受信部11と、一時保持部12と、ブロック生成部13と、単位ブロックビットアサイン推定部14と、ブロック連結部15と、連結ブロックビットアサイン推定部16と、ブロック分離部17と、推定用情報記憶部18と、推定結果記憶部19を含む。以下、図2を参照して各構成要件の動作を説明する。
【0018】
<受信部11>
受信部11は、車両機器通信ネットワークにおける各電子制御装置の通信データ、または通信の加工等により生成された通信データを受信する(S11)。
【0019】
<一時保持部12>
一時保持部12は、ID毎に受信順序を保持したまま、受信した全てのペイロードを保持する(S12)。
【0020】
<ブロック生成部13>
ブロック生成部13は、受信した通信データのペイロードを予め定めた固定ビット長毎に分割して複数のブロックを生成する(S13、図3参照)。CANの場合、最小ビット長である8ビットの約数である1、2、4、8ビットのいずれかをブロック長として定める。例えばブロック長を8ビットと定めた場合、あるIDのペイロードのビット長が64ビットなら、ブロック生成部13は、ペイロードを8個の8ビットブロックに分割する。生成したブロックについては、後述の処理によって統計量が算出される。ステップS13において生成したブロックは、互いにオーバーラップしていないため、統計量を算出する回数を削減できる。
【0021】
<単位ブロックビットアサイン推定部14>
単位ブロックビットアサイン推定部14は、ブロック毎に統計量を算出し、ブロック毎の統計量に基づいて、ブロックのビットアサインを固定値型、状態値型、連続値型の何れかに推定する(S14、図3参照)。
【0022】
≪固定値型の推定方法≫
まず単位ブロックビットアサイン推定部14は、各ブロックが固定値型かどうか推定する。単位ブロックビットアサイン推定部14は、正常な通信の傍受あるいは傍受により事前に得た個々のIDのデータ列を基に、各ブロックのユニークな値の種類数uniqiを統計量として算出する。iは上位i番目のブロックを意味する。例えば、uniq1だけが値1だったとする。このとき、ペイロードの最上位1ブロックは1種類の値しかとらない、つまり固定値型であると推定できる。
【0023】
≪状態値型と連続値型の推定方法≫
次に単位ブロックビットアサイン推定部14は、残ったブロックが状態値型と連続値型のいずれかであるかを推定する。例えば、単位ブロックビットアサイン推定部14は、総メッセージ数に対する各ブロックの値が変化した回数の割合changing_ratei、変化した時の変化量の差分の分散variの2つの統計量を算出する。一般に、連続値型は状態値型よりもuniqとchanging_rateが大きく、varが小さい傾向にある。単位ブロックビットアサイン推定部14は、この傾向に基づいてuniq、changing_rate、varの少なくとも何れか一つ以上に設定された閾値を参照し、各ブロックが状態値型か連続値型かを推定する。各閾値の設定方法、および各統計量を判定の根拠とする重み付けは任意の方法でよい。例えば、各ブロックのuniq、changing_rate、varの値を特徴量としたクラスタリングを実施して、各ブロックを状態値型か連続値型の2通りに分割する閾値を定める。クラスタリングには混合正規分布のパラメータ推定法やK-means法、ノンパラメトリックベイズモデルに基づく推定法など、適切な方法を用いればよい。その他に、対象となるIDに関する事前知識が存在する場合は、その事前知識を基に閾値を設定してもよい。上述したように従来技術は「推定できなかったその他の値」を消去法的に状態値型に当てはめる手順を採用していたが、本方法はこのような手順によらず、閾値等を用いて状態値型の特徴を有するブロックを状態値型と直接推定する手順を採用している。本方法によれば、uniqの値に閾値を設定することで状態数の種類数によって状態値型をさらに分割して推定することができる。
【0024】
≪連続値型の詳細な推定方法≫
次に単位ブロックビットアサイン推定部14は、連続値型をその値の変化の特徴によって、符号無し連続値型、符号付き連続値型、カウンタ値型、チェックサム値型等に細分化する。
【0025】
符号付き連続値とは、ブロックの最上位ビットが値の正負を意味する符号になっている変数である。一方、符号無し連続値では、ブロックの最上位ビットが符号でなく、値を意味する変数になっている。カウンタ値は値が単調に増加(または単調に減少)し、かつ何らかの契機においては値が変化せず、上限値(または下限値)に到達すると初期値に戻る変数である。チェックサム値は他のフィールドから所定のアルゴリズムに従い導出され、誤り検出等に用いられる変数である。状態値型と連続値型を閾値等を基に分類した手順と同様に、これらの連続値型に属する型も閾値等を適切に設定すれば分類できる。連続値型を細分化する場合は、varだけでなくvarの算出に用いたメッセージ間の変化量を分類の判断に用いる。
【0026】
例えば、カウンタ値型は限界値から初期値に戻るとき以外は定数の増加(または減少)を繰り返すため、varが他の連続値型よりも小さい傾向にある。そのためvarが非常に小さく、またvarを基にしたある閾値を超えて値が大きく変化したとき、その変化量がブロックの最大値にほぼ等しく、このような大きな変化が定期的に発生する場合はカウンタ値と推定してよい。
【0027】
次に、符号無し連続値はvarが符号付き連続値、チェックサム値よりも小さく、またカウンタ値のように値が最大値から最小値に1メッセージで変化する場合は少なく、またカウンタ値とは異なり値の増加及び減少の両方が発生する傾向にある。
【0028】
一方、符号付き連続値は符号反転する際に値が大きく変化し、その変化量がブロックの最大値にほぼ等しくなり、またカウンタ値と符号無し連続値よりもvarが大きく、値の増加及び減少の両方が発生する傾向にある。ブロック長がbビットの場合、単位ブロックビットアサイン推定部14は、注目しているブロックが符号付き連続値であるか否かを推定するために、以下の統計量を算出する。単位ブロックビットアサイン推定部14は、ブロックに出現した全ての値に対して2(b-1)を加算して、2bで除算した余りを算出する。単位ブロックビットアサイン推定部14は、この余りのデータ列に対してvarを算出する。これにより符号付き連続値の正負の基準を値ゼロから値2(b-1)付近に変更することができ、符号反転による値の急激な変化が消失する。単位ブロックビットアサイン推定部14は、上記の処理後、余りのデータ列の値が符号無し連続値のような振る舞い(var)に変化するかどうかを確認する。単位ブロックビットアサイン推定部14は、余りのデータ列のvarが符号無し連続値とみなせる場合は、注目しているブロックを符号付き連続値と推定する。
【0029】
最後に、単位ブロックビットアサイン推定部14は、注目しているブロックの値が符号付き連続値同様varが大きく、前述の余りのデータ列を算出するとそのvarもまた符号無し連続値とみなせない場合、注目しているブロックをチェックサム値と推定する。また、チェックサム値はその性質からペイロードの最後(最下位)のブロックに置かれる傾向があるため、単位ブロックビットアサイン推定部14は、この傾向等を利用して閾値を適切に設定することにより、連続値型に属する各型をその値変化の特徴に従って分類してもよい。
【0030】
単位ブロックビットアサイン推定部14は、各ブロックの推定結果に対して統計情報を算出して推定結果と共に、所定の記憶領域に記憶してもよい。統計情報とは、例えば各ブロックのuniq、changing_rate、varの値、さらにブロック毎の値の分布の平均値や中央値、最頻値、値の分散、歪度、尖度等である。
【0031】
<ブロック連結部15>
図4(A)に示すように、ブロック連結部15は、連続値型と推定されたブロックに上位ビット側で隣接するブロックが、固定値型以外(すなわち、状態値型か連続値型)と推定されている場合に、当該隣接するブロックを連続値型と推定されたブロックと連結して連結ブロック(隣り合うブロック同士を複数連結したブロック)を生成する(S15)。
【0032】
また図4(B)に示すように、ブロック連結部15は、連続値型と推定された連結ブロックに上位ビット側で隣接するブロックが、固定値型以外(すなわち、状態値型、または連続値型)と推定されている場合に、隣接するブロックを、連続値型と推定された連結ブロックに連結する(S15)。
【0033】
一方、ブロック連結部15は、連続値型と推定されたブロック、または連続値型と推定された連結ブロックに上位ビット側で隣接するブロックが、固定値型と推定されている場合に、当該隣接するブロックは、連続値型と推定されたブロックまたは連結ブロックとは独立であると推定し、連結を行わずに、各ブロックについて推定した結果を維持する。
【0034】
<連結ブロックビットアサイン推定部16>
連結ブロックビットアサイン推定部16は、連結ブロック毎の統計量に基づいて、連結ブロックが連続値型であるか否かを推定する(S16)。例えば、連結ブロックビットアサイン推定部16は、図4(A)に示すように、連結した2つのブロックを連結ブロックとみなし、当該連結ブロックに対して統計量を算出して、その型を推定する。この場合、連結ブロックビットアサイン推定部16は、2ブロック長の連結ブロックのuniq、changing_rate、varの少なくとも何れか一つ以上を算出し、uniq、changing_rate、varの少なくとも何れか一つ以上に設定した閾値に基づいて、連結ブロック全体が連続値型とみなせる場合には、2ブロック長からなる連結ブロックを1つの連続値型(に属する型)と推定する。
【0035】
また、例えば上位ブロックが状態値型と推定され、下位ブロックが符号無し連続値型と推定される場合において、当該二つのブロックを連結して2ブロック長の連結ブロックが生成されている場合、連結ブロックビットアサイン推定部16は、当該連結ブロック全体が連続値型とみなせる場合には、この2ブロック長の連結ブロック全体を、符号無し連続値型と推定する。
【0036】
また、例えば連結ブロックビットアサイン推定部16は、2ブロック長の連結ブロックのchanging_rateが1ブロック長の符号付き連続値型のブロックと等しく、かつ連結ブロックのvarが1ブロック長の符号付き連続値型のブロックより大きい場合は、2ブロック長の連結ブロック全体を符号付き連続値型か、または独立した2つの1ブロック長のブロックのいずれかと推定する。ブロック長がbビットの場合、連結ブロックビットアサイン推定部16は、2ブロック長とみなした場合の全値に対して、2(b-1)を加算して、2bで除算した余りを算出する。連結ブロックビットアサイン推定部16は、この余りのデータ列に対してvarを算出する。余りのデータ列のvarの値がもとの2ブロックのvarの値より小さい場合、連結ブロックビットアサイン推定部16は、2ブロック長の連結ブロックを符号付き連続値型と推定し、それ以外の場合は独立した2つの1ブロック長のブロックと推定する。
<ブロック分離部17>
図4(C)に示すように、ブロック分離部17は、連結ブロックが連続値型でないと推定された場合に、直近に連結したブロックを対応する連結ブロックから分離し(S17)、下位ビット側のブロックまたは連結ブロックの型を連続値型として推定を確定させる。
【0037】
<推定用情報記憶部18>
推定用情報記憶部18には、各ブロックの型を推定する際に用いる閾値やモデルが記憶されている。これらの閾値やモデルは、推定途中でビットアサイン推定装置1が算出・更新してもよいし、推定前にあらかじめ推定用情報記憶部18に記憶しておいてもよい。
【0038】
<再帰的な型推定>
ビットアサイン推定装置1は、最下位ビットのブロックから上位ビットのブロックに向かう方向に、ステップS15〜S17を順次実行していく。ビットアサイン推定装置1は、ステップS15〜S17を繰り返し実行することにより、再帰的な型推定を実行する。例えばステップS16において、2ブロック長の連結ブロック全体が連続値型(に属する型)と推定され、さらに左隣に固定値型以外と推定されたブロックが存在する場合には、ステップS15において連結が実行され、3ブロック長の連結ブロックが生成される。その後、再びステップS16において、3ブロック長の連結ブロック全体が連続値型と推定され、さらに左隣に固定値型以外と推定されたブロックが存在する場合には、ステップS15において連結が実行され、4ブロック長の連結ブロックが生成される。左隣のブロックが固定値型であった場合には、このブロックより上位のブロックから再び再帰的な型推定が開始される。ビットアサイン推定装置1は、左隣のブロックが存在しない場合に、再帰的な型推定を停止する。最終的にペイロードは、固定値型、状態値型、連続値型のいずれかの組み合わせによる、ある1通りに定まる。ビットアサイン推定装置1は、最終的な推定結果を推定結果記憶部19に記憶する(S19)。
【0039】
上記ステップS15〜S17において、統計量を計算する回数が最も多くなるのは、例えば、最初の1ブロック長毎の推定(S14)で全てのブロックを連続値型と推定した場合であり、全ての隣りあうブロックを連結して推定を行うため、例えばペイロードが8バイトでブロックが8ビット長ならば8+7=15回であり、ペイロードが8バイトでブロックが1ビット長ならば64+63=127回である。
【0040】
上記ステップS15〜S17において、統計量を計算する回数が最も少なくなるのは、最初の1ブロック長毎の推定(S14)で全てのブロックを固定値型、あるいは状態値型と推定した場合であり、例えばペイロードが8バイトでブロックが8ビット長ならば8回であり、ペイロードが8バイトでブロックが1ビット長ならば64回である。あるIDのビット長をaとし、ブロック長をbとする。従来技術は
【0041】
【数2】
【0042】
回の統計量算出を行う。一方、本実施例のステップS15〜S17において、(x|a/b≦x≦a/b+a/b-1)回の統計量算出を行う。xは常にa×(a+1)/2以下である。つまり、どのブロック長を選択しても統計量の算出回数は従来技術の算出回数以下となる。
【0043】
上述のように、隣りあうブロックを連結して再推定する手順により、ブロックの型を誤って推定する可能性を小さくすることができる。例えば、本来2ブロック長の連続値型であるペイロードの一部分を1ブロックずつに分割すると、上位1ブロックは下位1ブロックよりもchanging_rateとvarの値が小さくなる。これは上位ブロックの値の変化が下位ブロックの値の変化よりも緩慢だからである。このように、2ブロック長の連続値型における上位1ブロックのchanging_rateとvarの値は小さくなる傾向があるため、ステップS14において、この上位1ブロックを状態値型と誤って推定してしまう場合がある。このような場合であっても、下位ブロックが連続値型と推定できる場合は、ステップS15において、連結が実行され、ステップS16において連結ブロック全体について型の再推定が実行されるため、上記の誤った推定を訂正することができる。
【実施例2】
【0044】
CANはメッセージの送信タイミングを規定しておらず、各機器は自身に設計されたタイミングで送信できる。このとき送信タイミングの違いによって送信周期を4通りに分類できる。それぞれ(1)一定周期で送信されるID、(2)通常は一定周期で送信されるが、ある契機で、そのときのみ、一定の周期よりも短間隔(または長間隔)で送信され、その後は元の一定周期で送信されるID、(3)通常は一定周期で送信されるが、ある契機で、そのときのみ、一定の周期よりも短間隔で送信され、一定周期の送信間隔は変化しないID、(4)一定周期では送信されず、ある契機で、そのときのみ、散発的に送信されるID、である。実施例2のビットアサイン推定装置は、上述のような送信周期の特徴の違いを考慮して、ペイロードの型を推定する各閾値の設定方法を変更した。
【0045】
図5に示すように、本実施例のビットアサイン推定装置2は、受信部11と、一時保持部12と、ブロック生成部13と、単位ブロックビットアサイン推定部24と、ブロック連結部15と、連結ブロックビットアサイン推定部16と、ブロック分離部17と、推定用情報記憶部18と、推定結果記憶部19を含み、単位ブロックビットアサイン推定部24以外の構成は実施例1と同じである。
【0046】
図6に示すように、単位ブロックビットアサイン推定部24は、受信した通信データの送信周期が予め定めたパターンに該当する場合、対応するブロックが状態値型と推定されやすくなるように、推定に用いる閾値を変更して、ブロックのビットアサインを推定する(S24)。
【0047】
例えば、送信周期(2)、(3)、(4)のパターンのIDの場合、機器内外の契機により一定周期から逸脱したタイミングでメッセージが送信されるため、当該契機を示す何らかの状態値型をペイロードに含んでいる可能性があると推測できる。そこで単位ブロックビットアサイン推定部24は、推定対象のIDの送信周期が任意の方法で送信周期(2)、(3)、(4)のいずれかであると推定できている、あるいは確定できている場合は、状態値型か連続値型か推定する手順において、対応するブロックが状態値型と推定されやすくなるように、推定に用いる閾値を適切な値に変更する。
【0048】
<推定結果とメーカー仕様の一致、不一致について>
上述のビットアサイン推定装置は異常検知技術の検知精度向上のために、ペイロードの内容を分析し正常状態を推定することを利用目的としている。
【0049】
すなわち、異常検知技術の検知精度向上のためには、ある分割長のペイロードの振る舞いを精度良く推定できる事が重要なのであり、その分割長がメーカー仕様と一致しているかどうかは精度向上に必ずしも寄与しない。従って、ビットアサイン推定装置の推定結果によるペイロードの分割の切れ目とメーカーが規定したペイロードの仕様とが一致することは必須の要件ではない。
【0050】
例えば、メーカーがある4ビットの状態値型のフィールド2つから成る8ビットのペイロードを規定していたとして、実施例に係るビットアサイン推定装置がこれを8ビットの状態値型フィールド1つから成るペイロードと推定したとする。このとき実施例に係るビットアサイン推定装置はメーカーの仕様通りの推定結果を得ることはできなかったものの、8ビット全体をまとめて観測しても当該フィールドがなお状態値型としての値の振る舞いをしているのであれば、状態値型8ビットのペイロードとみなして、監視および異常の検知を実行することができる。
【0051】
また、実際に利用されているハードウェアの多くは4ないし8ビットの倍数(8、16、32、64ビット)のデータ列を一度に処理するアーキテクチャである。そのため、ハードウェアの処理効率からフィールドの設計もまた8ビットの倍数であることが多く、上述のビットアサイン推定装置において上述のいずれの定数(1、2、4、8ビット)で分割したとしても、仕様による分割パターンと推定結果が著しく乖離するおそれは小さい。
【0052】
<効果>
上述の実施例のビットアサイン推定装置によれば、ペイロードのビットアサインが不明な車両機器通信ネットワークの通信に対して、ブロック単位の分割という従来技術よりも少ない分割パターンの統計量算出によってペイロードの型を推定することができるため、推定に要する計算コストを削減できる。
【0053】
また、上述の実施例のビットアサイン推定装置によれば、隣りあうブロックを連結して型を推定し直すことにより、各ブロックの推定精度を高めて連続値型を状態値型と誤って推定しにくくすることができるため、精度良くビットアサインを推定できる。
【0054】
また、上述の実施例のビットアサイン推定装置によれば、分類する変数型の値変化の特徴を基にした閾値設定を行うことにより、従来技術では分類できなかった連続値型の符号付き連続値と符号無し連続値とを識別できるようになるため、より子細にビットアサインを推定できる。
【0055】
<補記>
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD−ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータ、組込機器などがある。
【0056】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
【0057】
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
【0058】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0059】
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータ、組込機器によって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータ、組込機器で実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ、組込機器上で実現される。
【0060】
この処理内容を記述したプログラムは、コンピュータ、組込機器で読み取り可能な記録媒体に記録しておくことができる。コンピュータ、組込機器で読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0061】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータ、組込機器にそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0062】
このようなプログラムを実行するコンピュータ、組込機器は、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータ、組込機器は、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータ、組込機器が可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータ、組込機器にサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータ、組込機器へのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータ、組込機器に対する直接の指令ではないがコンピュータ、組込機器の処理を規定する性質を有するデータ等)を含むものとする。
【0063】
また、この形態では、コンピュータ、組込機器上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
図1
図2
図3
図4
図5
図6