(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-21
(45)【発行日】2022-11-30
(54)【発明の名称】情報処理装置、異常分析方法及びプログラム
(51)【国際特許分類】
G06F 11/07 20060101AFI20221122BHJP
G06F 21/55 20130101ALI20221122BHJP
【FI】
G06F11/07 151
G06F11/07 140R
G06F11/07 190
G06F11/07 193
G06F21/55 320
(21)【出願番号】P 2020551221
(86)(22)【出願日】2019-10-10
(86)【国際出願番号】 JP2019040017
(87)【国際公開番号】W WO2020075801
(87)【国際公開日】2020-04-16
【審査請求日】2021-03-23
(31)【優先権主張番号】P 2018192415
(32)【優先日】2018-10-11
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】長谷川 慶太
(72)【発明者】
【氏名】小山 卓麻
(72)【発明者】
【氏名】岡野 靖
(72)【発明者】
【氏名】田中 政志
【審査官】多賀 実
(56)【参考文献】
【文献】米国特許出願公開第2016/0381066(US,A1)
【文献】特開2017-111796(JP,A)
【文献】特開2015-136107(JP,A)
【文献】特開2011-034208(JP,A)
【文献】国際公開第2017/104119(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 11/28-11/36
G06F 21/55
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
1つ又は複数の機器のうちいずれかの機器が出力した第1のデータ
の第1の異常スコアを計算する異常判定部と、
前記第1のデータ及び前記第1の異常スコアを、当該第1のデータに関連する第1の特徴コンテキストと対応付けて記憶部に格納する記憶処理部と、
1つ又は複数の機器のうちいずれかの機器から第2のデータを受信した場合、当該第2のデータに関連する第2の特徴コンテキストを取得し、当該受信した第2のデータ及び当該取得した第2の特徴コンテキストと、前記記憶部に格納された第1のデータ
、第1の異常スコア及び第1の特徴コンテキストとに基づいて、当該受信した第2のデータの異常を分析する分析部と、
を有する情報処理装置。
【請求項2】
前記第1のデータに対して実施すべき対処方法を、前記第1のデータ又は前記第1の特徴コンテキストと対応付けて前記記憶部に登録する登録部を更に有する、請求項1に記載の情報処理装置。
【請求項3】
前記分析部は、前記記憶部から、前記受信した第2のデータに一致又は類似するデータ、又は前記取得した第2の特徴コンテキストに一致又は類似する特徴コンテキストを抽出し、当該抽出されたデータ又は特徴コンテキストに対する対処方法を出力する、請求項2に記載の情報処理装置。
【請求項4】
前記分析部における分析結果に基づいて、前記第2のデータを出力した機器の検知アルゴリズムを変更する変更部を更に有する、請求項1乃至3のうちいずれか1項に記載の情報処理装置。
【請求項5】
前記第1の特徴コンテキスト及び前記第2の特徴コンテキストは、機器の外部環境を示す空間的特徴コンテキスト、機器がデータを出力した時間を示す時間的特徴コンテキスト、及び機器の挙動を示す挙動的特徴コンテキストのうち少なくとも1つを含む、請求項1乃至4のうちいずれか1項に記載の情報処理装置。
【請求項6】
前記分析部は、特徴コンテキストに応じた重みを適用する、請求項1乃至5のうちいずれか1項に記載の情報処理装置。
【請求項7】
情報処理装置が、
1つ又は複数の機器のうちいずれかの機器が出力した第1のデータ
の第1の異常スコアを計算する異常判定手順と、
前記第1のデータ及び前記第1の異常スコアを、当該第1のデータに関連する第1の特徴コンテキストと対応付けて記憶部に格納する記憶処理手順と、
1つ又は複数の機器のうちいずれかの機器から第2のデータを受信した場合、当該第2のデータに関連する第2の特徴コンテキストを取得し、当該受信した第2のデータ及び当該取得した第2の特徴コンテキストと、前記記憶部に格納された第1のデータ
、第1の異常スコア及び第1の特徴コンテキストとに基づいて、当該受信した第2のデータの異常を分析する分析手順と、
を実行する異常分析方法。
【請求項8】
請求項1乃至6のうちいずれか1項に記載の各部として情報処理装置を機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、異常分析方法及びプログラムに関する。
【背景技術】
【0002】
今後普及が見込まれるコネクテッドカー(外部ネットワークに接続する車両)においては、従来においてディーラーでの持ち込み作業であったECU(Electronic Control Unit)のソフトウェアアップデートが無線で行われるなど、利便性の向上が期待されている。
【0003】
一方で、車両やその制御機器が外部ネットワークに繋がることにより、従来のIT機器同様、悪意の有る攻撃者からのサイバー攻撃の対象となる懸念が指摘されている。実際に車両に搭載されたECUを、外部ネットワークからのアクセスによって不正に改竄し、車両制御を乗っ取ることが可能であったとする研究も報告されている。
【0004】
このような脅威に対して、様々な事前の対策技術が検討されているが、サイバー攻撃のリスクを完全に防ぐような対策手段というものは存在しない。したがって、万が一サイバー攻撃が発生した場合に対しても有効な事後の対策を考えておく必要がある。ECUを改竄することで車両の制御を乗っ取るような攻撃を考えた場合、車両での対策を取るためには、車載ネットワークで発生する通信を継続的に監視し、異常を検出する手法がある。しかしながら、一般に車載機器の計算リソースは潤沢ではない場合が多く、計算負荷の大きな異常検知手法は適用困難である場合が多い。
【0005】
そこで、昨今では、車両だけで対処するのではなく、クラウドと車両の双方を利用することによって、計算負荷の高い処理をクラウドで、計算負荷の低い処理や低遅延性が求められる処理を車載機で行うようなサーバクライアント連携でのサイバー攻撃への対処技術の検討が進んでいる(例えば、非特許文献1)。
【先行技術文献】
【非特許文献】
【0006】
【文献】"サイバー攻撃に対抗するオートモーティブ侵入検知防御システムを開発"、[online]、インターネット<URL:https://news.panasonic.com/jp/press/data/2017/10/jn171010-2/jn171010-2.html>
【発明の概要】
【発明が解決しようとする課題】
【0007】
車両に対するサイバー攻撃等の異常は、検知された全体の数から見れば圧倒的少数の事象であることが多い。つまり検知結果には、操作のミスや設定の変更、環境要因の変動等によって発生した、擬陽性の誤検知が含まれることが多い。サイバー攻撃の可能性があるという異常が検知された場合、検知結果に伴って実施すべき対処方法の決定等の分析を行う必要があるが、上記のような誤検知は分析コストを増加させるという問題がある。
【0008】
なお、上記のような問題は、車両に限られず、ネットワークに接続される各種の機器について共通の課題であると考えられる。
【0009】
本発明は、上記の点に鑑みてなされたものであって、機器が出力したデータを分析するコストを低減することを目的とする。
【課題を解決するための手段】
【0010】
そこで上記課題を解決するため、情報処理装置は、1つ又は複数の機器のうちいずれかの機器が出力した第1のデータの第1の異常スコアを計算する異常判定部と、
前記第1のデータ及び前記第1の異常スコアを、当該第1のデータに関連する第1の特徴コンテキストと対応付けて記憶部に格納する記憶処理部と、1つ又は複数の機器のうちいずれかの機器から第2のデータを受信した場合、当該第2のデータに関連する第2の特徴コンテキストを取得し、当該受信した第2のデータ及び当該取得した第2の特徴コンテキストと、前記記憶部に格納された第1のデータ、第1の異常スコア及び第1の特徴コンテキストとに基づいて、当該受信した第2のデータの異常を分析する分析部とを有する。
【発明の効果】
【0011】
機器が出力したデータを分析するコストを低減することができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の実施の形態におけるシステム構成例を示す図である。
【
図2】本発明の実施の形態における監視サーバ10のハードウェア構成例を示す図である。
【
図3】本発明の実施の形態における車両20のハードウェア構成例を示す図である。
【
図4】本発明の実施の形態における車両20及び監視サーバ10の機能構成例を示す図である。
【
図5】ログの発生時における処理手順の一例を説明するためのフローチャートである。
【
図7】制御系ログDB271の構成例を示す図である。
【
図8】センサログDB272の構成例を示す図である。
【
図9】ログの受信時における処理手順の一例を説明するためのフローチャートである。
【
図10】特徴ナレッジDB173の構成例を示す図である。
【
図11】対処方法の決定時における処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【0013】
以下、図面に基づいて本発明の実施の形態を説明する。
図1は、本発明の実施の形態におけるシステム構成例を示す図である。
図1において、複数の車両20は、インターネット等のネットワークN1を介して各種のサーバ(監視サーバ10、サービス提供サーバ30a、サービス提供サーバ30b等)に接続される自動車(コネクテッドカー)である。例えば、各車両20は、移動体通信網等の無線ネットワークを介してネットワークN1に接続し、各種のサーバと通信する。
【0014】
サービス提供サーバ30a及びサービス提供サーバ30b等(以下、それぞれを区別しない場合「サービス提供サーバ30」という。)は、車両20に対して、又は車両20から収集される情報に基づいて所定のサービスを提供する1以上のコンピュータである。例えば、サービス提供サーバ30aは、テレマティクスサービスを提供してもよい。また、サービス提供サーバ30bは、各車両20から収集されるデータに基づくサービスを提供してもよい。
【0015】
監視サーバ10は、車両20から送信(アップロード)されるデータに基づいて、車両20における異常の発生の検知や、異常の内容の解析等を行う1以上のコンピュータである。異常の一例として、車両20に対するネットワークを介したサイバー攻撃等が挙げられる。
【0016】
図2は、本発明の実施の形態における監視サーバ10のハードウェア構成例を示す図である。
図2において、監視サーバ10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
【0017】
監視サーバ10での処理を実現するプログラムは、CD-ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0018】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って監視サーバ10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
【0019】
図3は、本発明の実施の形態における車両20のハードウェア構成例を示す図である。
図3において、車両20は、通信装置210、情報系サブシステム220、制御系サブシステム230及び関門器240等を含む。
【0020】
通信装置210は、ネットワークN1に接続するための通信モジュールや、他の車両20又は道路上の機器等と通信するための通信モジュールや、スマートフォン等と無線LAN又は近距離無線通信を介して接続するための通信モジュール等を含む。
【0021】
情報系サブシステム220は、インストールされたプログラムに応じた情報処理を実行する部分であり、CPU221、メモリ装置222、補助記憶装置223、表示装置224及び入力装置225等を含む。補助記憶装置223には、インストールされたプログラムや、当該プログラムによって利用される各種データが記憶される。メモリ装置222は、起動対象とされたプログラムを補助記憶装置223から読み出して格納する。CPU221は、メモリ装置222に格納されたプログラムに従って情報系サブシステム220に係る機能を実行する。表示装置224はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置225は、ボタン等やタッチパネル等の操作部品であり、様々な操作指示を入力させるために用いられる。なお、例えば、カーナビゲーション、カーオーディオのヘッドユニット等の車載機が情報系サブシステム220の一例である。
【0022】
制御系サブシステム230は、車両20の挙動を制御する部分であり、各種の制御のための複数のマイコン231等を含む。例えば、ECU(Electronic Control Unit)がマイコン231の一例である。
【0023】
関門器240は、情報系サブシステム220と制御系サブシステム230と接続するためのゲートウェイ(例えば、CGW(Central Gateway))である。すなわち、情報系サブシステム220において扱われる通信プロトコルは、例えば、IPプロトコルであり、制御系サブシステム230においてマイコン231間の通信に利用される通信プロトコルは、制御に特化した非IPプロトコル(例えば、CAN(Controller Area Network))である。したがって、これらの通信プロトコルの違いを吸収するための関門器240が設けられる。
【0024】
なお、
図3に示したハードウェア構成は、一例に過ぎない。後述の機能を実現可能であれば、車両20のハードウェア構成は特定のものに限定されない。
【0025】
図4は、本発明の実施の形態における車両20及び監視サーバ10の機能構成例を示す図である。
図4において、車両20の情報系サブシステム220は、制御系ログ取得部251、センサログ生成部252、異常判定部253、特徴コンテキスト生成部254、ログ送信部255及び検知アルゴリズム受信部256等を有する。これら各部は、情報系サブシステム220にインストールされた1以上のプログラムが、CPU221に実行させる処理により実現される。情報系サブシステム220は、また、制御系ログDB271、センサログDB272及び検知アルゴリズムDB273等のデータベース(記憶部)を有する。これら各データベース(記憶部)は、例えば、メモリ装置222又は補助記憶装置223等を用いて実現可能である。
【0026】
制御系ログ取得部251は、制御系ログを取得し、制御系ログDB271に保存(記憶)する。制御系ログとは、制御系サブシステム230における各マイコン231による通信に関するログデータをいう。通信内容のデータ自体が、制御系ログとされてもよい。したがって、制御系ログは、いずれかのマイコン231によって通信が行われるたびに発生する。なお、当該通信の内容は、例えば、車両20の制御、オーディオ、カーナビのようなインフォメント系の情報、車両20内のインジケータ表示等に関する通信等の内容を示すものである。
【0027】
センサログ生成部252は、センサログを生成し、センサログDB272に保存する。センサログとは、車両20の各所に配置されているセンサ(例えば、加速度計やGPS(Global Positioning System)受信機等)から取得されるデータ(例えば、センサによる計測値等)を含むログデータをいう。各センサからのデータの取得及び、当該データに基づくセンサログの生成は、例えば、一定周期、又は特定のイベントの発生等のタイミングにおいて実行される。センサごとにセンサログの生成タイミングは異なっていてもよい。また、センサログが生成されるセンサは、車両20が有する全センサのうちの一部でもよい。
【0028】
異常判定部253は、制御系ログ及びセンサログ(以下、それぞれを区別しない場合、単に「ログ」という。)に基づいて、検知アルゴリズムDB273に記憶されている検知アルゴリズムを用いて、異常の程度(レベル)を判定する。具体的には、異常判定部253は、車両20から生成されるログの異常の程度を示す指標の値(以下、「異常スコア」という。)を計算する。但し、異常スコアの計算には、制御系ログのみが利用されてもよく、センサログのみが利用されてもよい。計算された異常スコアは制御系ログDB271又はセンサログDB272に保存される。
【0029】
特徴コンテキスト生成部254は、ログが取得又は生成されたときの車両20の外部環境、車両20の状態等の状況を示す、ログに関連する情報(以下、「特徴コンテキスト」という。)を生成する。例えば、異常スコアが計算されたときに、特徴コンテキスト生成部254は、ログが取得又は生成された時間、車両20の外部環境、車両20の状態等を表す特徴コンテキストを生成する。特徴コンテキストは、制御系ログDB271又はセンサログDB272に格納されたログに基づいて生成されてもよく、通信装置210から取得された情報に基づいて生成されてもよい。
【0030】
ログ送信部255は、監視サーバ10への送信(アップロード)のタイミング(以下「送信タイミング」という。)が到来したときに、制御系ログDB271又はセンサログDB272に記憶されているログに、特徴コンテキストを付与して監視サーバ10へ送信する。
【0031】
検知アルゴリズム受信部256は、監視サーバ10から配信される検知アルゴリズムの変更要求を受信し、当該変更要求に含まれている検知アルゴリズムによって検知アルゴリズムDB273を変更(更新)する。
【0032】
一方、監視サーバ10は、ログ受信部151、誤検知・対処方法判断部152、検知アルゴリズム変更部153、検知アルゴリズム送信部154及び対処方法登録部155等を有する。これら各部は、監視サーバ10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。監視サーバ10は、また、制御系ログDB171、センサログDB172、特徴ナレッジDB173及び検知アルゴリズムDB174等のデータベース(記憶部)を利用する。これら各データベース(記憶部)は、例えば、補助記憶装置102、又は監視サーバ10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【0033】
ログ受信部151は、車両20から送信(アップロード)されるログを受信し、当該ログを制御系ログDB171又はセンサログDB172に記憶する。また、ログ受信部151は、当該ログの出力元のマイコン231又はセンサの識別情報、当該ログの異常スコア及び特徴コンテキスト等を特徴ナレッジDB173に記憶する。
【0034】
誤検知・対処方法判断部152は、ログ受信部151において受信したログの異常を分析する。車両20の異常判定部253が異常を検知する場合、誤検知・対処方法判断部152は、異常が異常判定部253の誤検知によって発生したものであるか否かを判断する。具体的には、誤検知・対処方法判断部152は、ログ受信部151において受信したログ及び特徴コンテキストの組に一致又は類似する過去のレコードを特徴ナレッジDB173から抽出する。なお、過去のレコードは、異なる車両に関するものでもよく、同じ車両に関するもの(異なる時間に得られたもの)でもよい。また、一致又は類似する過去のレコードは、ログのみが一致又は類似するものでもよく、特徴コンテキストのみが一致又は類似するものでもよい。一致又は類似する過去のレコードが既に異常なしと分析されており、特徴ナレッジDB173の異常スコアが異常検知閾値未満の値に設定されている場合、誤検知・対処方法判断部152は、異常判定部253においてログの異常が検知されたとしても、当該異常が異常判定部253の過検知によって発生したと判断する。また、誤検知・対処方法判断部152は、過検知であると判断すると、検知アルゴリズムの変更を検知アルゴリズム変更部153に要求してもよい。
【0035】
また、誤検知・対処方法判断部152は、受信したログに一致又は類似する過去のレコードに対する対処方法が特徴ナレッジDB173に登録されている場合には、当該ログに対しても当該対処方法を実施する。対処方法の例は、誤検知であると扱って特徴ナレッジDB173の異常スコアを変更すること、検知アルゴリズムを変更すること等である。一方、一致又は類似する過去のレコードが特徴ナレッジDB173に存在しない場合や、対処方法が存在しない場合等には、詳細な分析が必要であるという警告を出力してもよい。
【0036】
検知アルゴリズム変更部153は、誤検知・対処方法判断部152からの要求に応じ、検知アルゴリズムDB174に記憶されている一部又は全ての検知アルゴリズムを変更する。なお、検知アルゴリズムDB174には、各車両20に配信されている検知アルゴリズムが記憶されている。
【0037】
検知アルゴリズム送信部154は、検知アルゴリズム変更部153によって変更された検知アルゴリズムを含む変更要求を各車両20に配信する。
【0038】
対処方法登録部155は、誤検知・対処方法判断部152において詳細な分析が必要であるという警告に対して分析官等により入力された対処方法を特徴ナレッジDB173に登録する。
【0039】
なお、
図4では、異常スコアの計算及び特徴コンテキストの生成が車両20において行われる例について説明したが、異常スコアの計算又は特徴コンテキストの生成は監視サーバ10において行われてもよい。また、異常スコア又は特徴コンテキストは分析官等によって手動で入力されてもよい。
【0040】
異常スコアの計算が監視サーバ10において行われる場合、ログ送信部255は、送信タイミングが到来したときに、ログを監視サーバ10へ送信する。監視サーバ10の異常判定部(図示せず)は、車両20の異常判定部253と同様に異常スコアを計算し、異常スコアを制御系ログDB171又はセンサログDB172に保存する。
【0041】
特徴コンテキストの生成が監視サーバ10において行われる場合、監視サーバ10の特徴コンテキスト生成部(図示せず)は、車両20の特徴コンテキスト生成部254と同様に特徴コンテキストを生成し、特徴コンテキストを特徴ナレッジDB173に記憶する。特徴コンテキストは、監視サーバ10の制御系ログDB171又はセンサログDB172に格納されたログに基づいて生成されてもよく、インタフェース装置105を介して取得された情報に基づいて生成されてもよい。
【0042】
以下、車両20の情報系サブシステム220が実行する処理手順について説明する。
図5は、ログの発生時における処理手順の一例を説明するためのフローチャートである。
【0043】
制御系ログ取得部251による制御系ログの取得、又はセンサログ生成部252によるセンサログの生成等により、制御系ログDB271又はセンサログDB272にいずれかのログ(以下「対象ログ」という。)が保存される(S101)。
【0044】
図6A及び
図6Bは、ログの構成例を示す図である。
図6Aは、制御系ログの一例を示す。制御系ログは、日時、車両ID及び要素IDと、Data[0]、Data[1]、Data[2]、Data[3]、Data[4]、・・・等(以下、「Data[]」という。)とを含む。日時は、制御系ログが取得された日時(当該制御系ログに係る通信が行われた日時)である。車両IDは、車両20の識別情報である。要素IDは、車両20の構成要素の識別情報である。制御系ログにおける要素IDは、当該制御系ログに係る通信を行ったマイコン231の識別情報である。Data[]は、当該通信に含まれているデータである。例えば、当該通信がエンジンの制御に関する通信であれば、エンジンの制御に関する各パラメータの値が、各Data[]の値となる。但し、エンジンの制御に関する各パラメータの値のみならず、チェックサムやカウンタ等のデータが、Data[]に含まれてもよい。
【0045】
一方、
図6Bは、センサログの一例を示す。センサログは、日時、車両ID及び要素IDと、当該センサログに係るセンサに特有のデータとを含む。日時は、センサログが生成された日時である。車両IDは、車両20の識別情報である。要素IDは、当該センサログに係るデータの出力元のセンサの識別情報である。また、
図6Bにおけるセンサログは、加速度センサから取得されたデータに基づくセンサログであるため、加速度センサに特有のデータとして、Acc_X、Acc_Y及びAcc_Zを含む。Acc_X、Acc_Y及びAcc_Zは、それぞれ、X軸方向の加速度、Y軸方向の加速度、Z軸方向の加速度である。
【0046】
図7は、制御系ログDB271の構成例を示す図である。
図7に示されるように、制御系ログDB271の各レコードは、
図6Aに示した各項目と、異常スコアとを含む。このうち、ステップS101の時点において、異常スコアの値は空である。異常スコアの値は、ステップS102において決定されるからである。
【0047】
図8は、センサログDB272の構成例を示す図である。
図8に示されるように、センサログDB272の各レコードは、
図6Bに示した各項目と、異常スコアとを含む。このうち、ステップS101の時点において、異常スコアの値は、制御系ログDB271と同様の理由で空である。なお、センサログの形式は、センサごとに異なる。例えば、GPS受信機のセンサログであれば、緯度及び経度等が含まれる。したがって、センサログDB272には、センサごと(要素IDごと)に区別されて異なるテーブルにセンサログが記憶されてもよい。
【0048】
異常判定部253は、対象ログについての異常スコアを判定(計算)し、制御系ログDB271又はセンサログDB272に保存する(S102)。異常スコアの判定は、一定周期で行われてもよく、特定の値を含むログの発生に応じて行われてもよく、異常の判定に必要な一定量のログが保存されるごとに行われてもよい。
【0049】
対象ログについての異常スコアの判定(計算)は、公知技術を用いて行うことができる。例えば、マイコン231間の通信間隔や、マイコン231が出力したデータ値に基づいて異常スコアが判定されてもよい。また、例えば、ログを入力とし、異常スコアを出力とする学習済みのモデル(例えば、ニューラルネットワーク)に対し、対象ログを入力することで、異常スコアが判定されてもよい。異常スコアは、異常の有無を示す0又は1であってもよいし、異常の程度を最小値(例えば、0)から最大値(例えば、1)の範囲で示す値であってもよい。また、異常スコアの判定は、制御系ログ及びセンサログの双方を用いて行われなくてよい。例えば、制御系ログ及びセンサログのいずれか一方のみが用いられて異常スコアの判定が行われてもよい。
【0050】
特徴コンテキスト生成部254は、異常判定部253において異常スコアが判定されたときに、対象ログについての特徴コンテキストを生成する(S103)。特徴コンテキスト生成部254は、対象ログの異常スコアが異常検知閾値以上である場合、すなわち、異常と検知された場合に特徴コンテキストを生成するだけでなく、対象ログの異常スコアが異常検知閾値未満である場合、すなわち、正常と検知された場合にも特徴コンテキストを生成してもよい。
【0051】
特徴コンテキスト生成部254は、車両20の外部環境を示す空間的特徴コンテキスト、ログが取得又は生成された時間を示す時間的特徴コンテキスト、車両20の挙動を示す挙動的特徴コンテキスト等を生成する。また、車両20の交通状況に関する情報を示す交通ドメイン依存コンテキスト、車両20の状態に関する情報を示す車両ドメイン依存コンテキスト等が生成されてもよい。
【0052】
空間的特徴コンテキストの例は、天候、場所、障害物、気温、雨量、湿度、気圧、風速等である。時間的特徴コンテキストの例は、時間、曜日、季節、イベント等である。挙動的特徴コンテキストの例は、車両20のセンサ又は他の車両のセンサ等から取得される速度、加速度、角速度等である。交通ドメイン依存コンテキストの例は、走行経路、路面状況、交通流量、勾配、標高、幅員、車線等である。車両ドメイン依存コンテキストの例は、車種、年式、オプションの有無、故障履歴、搭載ECU、攻撃履歴、攻撃キャンペーン情報等である。なお、これらの特徴コンテキストの分類は単なる便宜上のものであり、例えば、気温、雨量、湿度、気圧、風速等が時間的特徴コンテキストに分類されてもよく、勾配、標高等が空間的特徴コンテキストに分類されてもよい。また、上記の特徴コンテキストの任意の組み合わせが用いられてもよく、他の特徴コンテキストが用いられてもよい。
【0053】
例えば、スマートフォンや外部のサーバ等から通信装置210を介して天候、気温等の情報が取得できる場合、特徴コンテキスト生成部254は、気象環境を表す空間的特徴コンテキストを生成する。例えば、特徴コンテキスト生成部254は、センサログDB272に保存されているGPS受信機のセンサログから、車両20の場所を表す空間的特徴コンテキストを生成する。例えば、特徴コンテキスト生成部254は、センサログDB272に保存されているGPS受信機のセンサログと、制御系ログDB271に保存されている車速の制御系ログとを用いて、車両20の速度及び加速度を表す挙動的特徴コンテキストを生成する。それぞれの特徴コンテキストは瞬間値として生成されてもよく、或る期間内の連続値又は離散値として生成されてもよい。
【0054】
ログ送信部255は、送信タイミングが到来したときに、対象ログに、特徴コンテキストを付与して監視サーバ10へ送信する(S104)。ログ送信部255は、異常と検知されたログ(すなわち、異常スコアが異常検知閾値以上のログ)及び正常と検知されたログ(すなわち、異常スコアが異常検知閾値未満のログ)の双方を監視サーバ10へ送信してもよく、異常と検知されたログを送信し、正常と検知されたログを送信しなくてもよい。また、ログ送信部255は、予め設定された優先度又は基準に基づいて、送信すべきログを選択してもよい。
【0055】
なお、異常スコアの判定(S102)及び特徴コンテキストの生成(S103)は、監視サーバ10が対象ログを受信した後に監視サーバ10が実行してもよい。
【0056】
以下、監視サーバ10が実行する処理手順について説明する。
図9は、ログの受信時における処理手順の一例を説明するためのフローチャートである。
【0057】
ログ受信部151は、対象ログを特徴コンテキストと共に受信し、対象ログを制御系ログDB171又はセンサログDB172に保存し、特徴コンテキストを特徴ナレッジDB173に保存する(S201)。制御系ログDB171及びセンサログDB172は、それぞれ
図7及び
図8と同様に構成される。
【0058】
図10は、特徴ナレッジDB173の構成例を示す図である。
図10に示されるように、特徴ナレッジDB173の各レコードは、制御系ログDB171又はセンサログDB172の中の日時、車両ID、要素ID及び異常スコアに加えて、特徴コンテキスト及び対処方法を含む。特徴コンテキストには、ログ受信部151が受信した特徴コンテキストが保存される。対処方法は、ステップS303において登録されるため、空である。車両ID及び要素IDの組み合わせによって、対象ログの出力元の車両20及びマイコン231又はセンサが識別できる。なお、特徴ナレッジDB173のレコードと、制御系ログDB171又はセンサログDB172のレコードとの対応関係は、日時と車両IDと要素IDとの組によって識別されてもよく、制御系ログDB171又はセンサログDB172のレコードを示すログIDを特徴ナレッジDB173に追加することによって識別されてもよい。
【0059】
異常スコアが異常検知閾値以上である場合(S202:Yes)、以下の処理が実行される。なお、車両20のログ送信部255が、異常スコアが異常検知閾値未満であるログを送信しない場合には、ステップS202は実施されなくてもよい。
【0060】
誤検知・対処方法判断部152は、対象ログ又は特徴コンテキストと、特徴ナレッジDB173に保存されている過去のレコードとの類似度を判定(計算)する(S203)。特徴コンテキストが連続値として生成されている場合には、類似度の判定のために連続値が離散値に変換されてもよい。
【0061】
一致又は類似の判定方法は、公知技術を用いて行うことができる。例えば、完全一致又は部分一致が用いられてもよい。また、例えば、様々なログ及び特徴コンテキストを入力とし、それぞれの類似度を出力とする学習済みのモデル(例えば、ニューラルネットワーク)に対し、対象ログ及び特徴コンテキストと、特徴ナレッジDB173内のいずれかのレコードとを入力することで、類似度が判定されてもよい。その他に、外れ値検定等の統計処理が行われてもよい。特徴コンテキストの一致又は類似の判定は、複数の特徴コンテキストにまたがって行われてもよい。複数のコンテキストにまたがって判定が行われる場合、特徴コンテキストに応じた重みが適用されてもよい。
【0062】
一致又は類似する過去のレコードが特徴ナレッジDB173に存在する場合(S204:Yes)、且つ、当該レコードに対して自動的に実施可能な対処方法が特徴ナレッジDB173に存在する場合(S205:Yes)、誤検知・対処方法判断部152は、当該対処方法を実施する(S206)。
【0063】
例えば、車両20のブレーキの制御を担うマイコン231が閾値を超えて稼働していると異常判定部253が判定した結果、当該マイコン231の制御系ログからブレーキの挙動を示す挙動的特徴コンテキストが生成され、GPS受信機のセンサログ、カメラ又は距離センサのセンサログ、VICS(登録商標)(Vehicle Information and Communication System)情報、V2V(Vehicle-to-Vehicle)又はV2I(Vehicle-to-Infrastructure)によって得られる情報から、車両20の場所を示す空間的特徴コンテキストと、渋滞の発生を示す交通ドメイン依存コンテキストが生成されたと仮定する。車両20の状態を示す車両ドメイン依存コンテキスト等の他の特徴コンテキストも生成されるが、ブレーキの制御に関係する特徴コンテキストに高い重みが適用される。重みは、誤検知を含む異常の判定において特徴コンテキストに加味される係数であり、例えば、特徴コンテキストに対する対数係数のような形で実装されてもよい。ここでは、挙動的特徴コンテキスト、空間的特徴コンテキスト及び交通ドメイン依存コンテキストの類似度に着目するため、これらの特徴コンテキストに高い重みが適用される。誤検知・対処方法判断部152は、一致又は類似する過去のレコードを特徴ナレッジDB173から検索する。一致又は類似する過去のレコードの異常スコアが異常検知閾値未満である場合、誤検知・対処方法判断部152は、渋滞によって誤検知が発生したと判断し、特徴ナレッジDB173において当該マイコン231の制御系ログに関する異常スコアの値を更新する。また、一致又は類似する過去のレコードに対して自動的に実施可能な対処方法が設定されている場合、誤検知・対処方法判断部152は、当該対処方法を実施する。
【0064】
例えば、車両20のワイパーの制御を担うマイコン231が閾値を超えて稼働していると異常判定部253が判定した結果、当該マイコン231の制御系ログからワイパーの挙動を示す挙動的特徴コンテキストが生成され、外部のサーバから天候が雨天であることを示す空間的特徴コンテキストが生成され、車種を示す車両ドメイン依存コンテキストが生成されたと仮定する。ここでは、ワイパーの制御に関して挙動的特徴コンテキスト、空間的特徴コンテキスト及び車両ドメイン依存コンテキストの類似度に着目するため、これらの特徴コンテキストに高い重みが適用される。誤検知・対処方法判断部152は、一致又は類似する過去のレコードを特徴ナレッジDB173から検索する。一致又は類似する過去のレコードの異常スコアが異常検知閾値未満である場合、誤検知・対処方法判断部152は、ワイパーの異常を判定するための閾値が適正でないことによって誤検知が発生したと判断し、特徴ナレッジDB173において当該マイコン231の制御系ログに関する異常スコアの値を更新する。また、一致又は類似する過去のレコードに対して自動的に実施可能な対処方法が設定されている場合、誤検知・対処方法判断部152は、当該対処方法を実施する。
【0065】
一方、一致又は類似する過去のレコードが特徴ナレッジDB173に存在しない場合(S204:No)、又は、当該レコードに対して自動的に実施可能な対処方法が特徴ナレッジDB173に存在しない場合(S205:No)、誤検知・対処方法判断部152は、未知の検知であるため詳細な分析が必要であるという警告を出力する(S207)。警告は、監視サーバ10から他の分析器又は分析官等に通知されてもよい。
【0066】
上記のブレーキの制御を担うマイコン231の異常検知の例、又はワイパーの制御を担うマイコン231の異常検知の例において、誤検知・対処方法判断部152は、誤検知であるかを判断できない場合、詳細な分析を他の分析器又は分析官等に要求する。
【0067】
他の分析器又は分析官等は、制御系ログDB171又はセンサログDB172に保存されているログと、特徴ナレッジDB173に保存されている特徴コンテキストとを参照して、異常の分析を行う。ログに特徴コンテキストが付与されているため、サイバー攻撃等の大規模な異常(複数の車両20に跨る異常)の発生の可能性の有無も判定できる。斯かる異常の分析方法は、所定の方法に限定されない。例えば、学習済みのモデル(ニューラルネットワーク等)に基づいて行われてもよいし、他の公知技術を用いて行われてもよい。また、異常の発生の可能性の有無の判定には、自動車会社のCERT(Computer Emergency Response Team)、別の企業が有するSOC(Security Operation Center)、セキュリティベンダからの発表等の情報が利用されてもよい。
【0068】
他の分析器又は分析官等の分析結果に応じて対処方法が決定される。例えば、誤検知であると判断されたログに対しては、異常として検知されなくするように検知アルゴリズムを変更する対処方法が決定される。例えば、誤検知でないと判断されたログに対しては、故障箇所の点検又は修理、マイコン231や補助記憶装置223等のソフトウェアの更新等の対処方法が決定される。
【0069】
以下、他の分析器又は分析官等による分析が終了した後に、監視サーバ10が実行する処理手順について説明する。
図11は、対処方法の決定時における処理手順の一例を説明するためのフローチャートである。
【0070】
対処方法登録部155は、他の分析器又は分析官等により決定された対処方法を受け取る(S301)。対処方法には、自動的に実施可能な対処方法と、ディーラーでの点検又は修理等が必要であり自動的に実施不可能な対処方法が存在する。自動的に実施可能な対処方法には、例えば、異常判定部253が用いる検知アルゴリズムを変更すること、誤検知として扱うこと、車両20の所有者等の予め設定された連絡先に通知すること等が含まれる。
【0071】
対処方法登録部155は、自動的に実施可能な対処方法を受け取った場合(S302:Yes)、当該対処方法を特徴ナレッジDB173に登録する(S303)。なお、自動的に実施不可能な対処方法についても、自動的に実施不可能であるという内容を特徴ナレッジDB173に登録してもよい。
【0072】
また、検知アルゴリズムを変更するという対処方法が特徴ナレッジDB173に登録された場合(S304:Yes)、誤検知・対処方法判断部152は、検知アルゴリズムの変更を検知アルゴリズム変更部153に要求し、検知アルゴリズム変更部153は、検知アルゴリズムDB174に記憶されている検知アルゴリズムを変更する(S305)。検知アルゴリズムの変更には、異常判定部253が用いる特徴量の抽出方法の変更、特徴量に対する重みの変更、閾値の調節、異常と判定しない条件を示すホワイトリストの設定等が含まれる。
【0073】
検知アルゴリズム送信部154は、無線等のインタフェース装置150を介して検知アルゴリズムを車両20に送信する(S306)。検知アルゴリズムの送信は、一定周期で行われてもよく、検知アルゴリズムの変更に応じて行われてもよい。なお、検知アルゴリズム送信部154は、検知アルゴリズムの更新が必要であることを車両20の所有者等の予め設定された連絡先に通知し、車両20における検知アルゴリズムの更新は、ディーラー等で行われてもよい。車両20の検知アルゴリズム受信部256は、検知アルゴリズムを受信し、検知アルゴリズムDB273を変更する。変更された検知アルゴリズムは、
図5のステップS102において異常スコアを判定するために用いられる。
【0074】
このように、本実施の形態では、ログに特徴コンテキストが付与されるため、異常が検知された状態を把握することが容易になる。その結果、検知結果の正誤判定や意味づけ等の分析に要するコストが低減できる。また、誤検知であるという判断に応じて検知アルゴリズムを更新することで、誤検知の発生を低減できる。
【0075】
なお、本実施の形態では、車両20を機器の一例として説明したが、通信機能を有する他の機器について本実施の形態が適用されてもよい。例えば、工場におけるロボット等の産業用制御機器、各地に配置されたセンサ、オーディオ機器、家電製品、通信端末(スマートフォン、タブレット端末等)や、一般的にIoT(Internet of Things)機器と呼ばれる機器について、本実施の形態が適用されてもよい。
【0076】
上述したように、本実施の形態によれば、車両20において発生するデータ(ログ)に対して特徴コンテキストが付与されて監視サーバ10へ送信される。監視サーバ10は、送信されたログ及び特徴コンテキストを紐付けて特徴ナレッジDB173に保存することにより、ログの分析に要するコストを低減することができる。
【0077】
また、監視サーバ10は、自動的に実施可能な対処方法を特徴ナレッジDB173に登録することにより、分析官等が分析すべきログの量を減少させることができる。
【0078】
また、監視サーバ10は、過検知が発生したときに、当該過検知が発生しないように車両20の検知アルゴリズムを変更することで、過検知の発生を低減することができる。
【0079】
なお、本実施の形態において、車両20は、機器の一例である。監視サーバ10は、情報処理装置の一例である。ログ受信部151は、記憶処理部の一例である。誤検知・対処方法判断部152は、分析部の一例である。対処方法登録部155は、登録部の一例である。検知アルゴリズム変更部153及び検知アルゴリズム送信部154は、変更部の一例である。
【0080】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0081】
本国際出願は2018年10月11日に出願した日本国特許出願2018-192415号に基づく優先権を主張するものであり、2018-192415号の全内容を本国際出願に援用する。
【符号の説明】
【0082】
10 監視サーバ
20 車両
30a サービス提供サーバ
30b サービス提供サーバ
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
151 ログ受信部
152 誤検知・対処方法判断部
153 検知アルゴリズム変更部
154 検知アルゴリズム送信部
155 対処方法登録部
171 制御系ログDB
172 センサログDB
173 特徴ナレッジDB
174 検知アルゴリズムDB
210 通信装置
221 CPU
222 メモリ装置
223 補助記憶装置
224 表示装置
225 入力装置
220 情報系サブシステム
230 制御系サブシステム
231 マイコン
240 関門器
251 制御系ログ取得部
252 センサログ生成部
253 異常判定部
254 特徴コンテキスト生成部
255 ログ送信部
256 検知アルゴリズム受信部
271 制御系ログDB
272 センサログDB
273 検知アルゴリズムDB
B バス