(57)【要約】【課題】自装置のセキュリティ状態に応じた適切な内容またはタイミングで、外部装置への通報を実現する。【解決手段】ＥＣＵ１４は、ＣＡＮ２４から受信したフレームに対するメッセージ認証の結果に基づいてフレームが不正かを判定する第１判定と、フレームの態様と予め定められたルールとに基づいてフレームが不正かを判定する第２判定とを実行する。ＥＣＵ１４は、第１判定の結果と第２判定の結果との組み合わせに応じて、車両監視サーバ１００へ通報する内容または通報の優先度を変更する。【選択図】図１
2018160786.tif 000002
【特許請求の範囲】
【請求項１】
通信網からフレームを受信する受信部と、
前記フレームに対するメッセージ認証の結果に基づいて前記フレームが不正かを判定する第１判定と、前記フレームの態様と予め定められたルールとに基づいて前記フレームが不正かを判定する第２判定とを行い、前記第１判定の結果と前記第２判定の結果との組み合わせに応じて、外部装置へ通報する内容または通報の優先度の少なくとも一方を変更する処理部と、
を備える監視装置。
【請求項２】
前記第１判定により判定対象フレームが正当と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合、前記処理部は、前記判定対象フレームに関する情報を通報する優先度を、他の通信より高い優先度に設定する、
請求項１に記載の監視装置。
【請求項３】
前記第１判定により判定対象フレームが不正と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合、前記処理部は、前記判定対象フレームに関する情報を通報する優先度を、他の通信より低い優先度に設定する、
請求項１または２に記載の監視装置。
【請求項４】
前記第１判定により判定対象フレームが不正と判定され、前記第２判定により前記判定対象フレームが正当と判定された場合、前記処理部は、前記判定対象フレームに関する情報を通報する優先度を、前記第１判定により判定対象フレームが正当と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合より低い優先度であり、かつ、前記第１判定により判定対象フレームが不正と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合より高い優先度に設定する、
請求項１から３のいずれかに記載の監視装置。
【請求項５】
前記第１判定により判定対象フレームが正当と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合、前記処理部は、少なくとも前記判定対象フレームに含まれるコマンドの情報および前記判定対象フレームの送信元装置の情報を通報する、
請求項１または２に記載の監視装置。
【請求項６】
前記第１判定により判定対象フレームが正当と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合であって、かつ、前記判定対象フレームと同じＩＤのフレームの受信頻度が所定値を超える場合、前記処理部は、少なくとも前記判定対象フレームに含まれるコマンドの情報を通報する、
請求項１または２に記載の監視装置。
【請求項７】
前記第１判定により判定対象フレームが不正と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合、前記処理部は、少なくとも前記判定対象フレームに含まれるコマンドの情報を通報する、
請求項１から３のいずれかに記載の監視装置。
【請求項８】
前記第１判定により判定対象フレームが不正と判定され、前記第２判定により前記判定対象フレームが正当と判定された場合、前記処理部は、少なくとも前記判定対象フレームに含まれるコマンドの情報および当該コマンドに関連する他のコマンドの情報を通報する、
請求項１から４のいずれかに記載の監視装置。
【請求項９】
前記第１判定の対象外となったフレームが前記第２判定により不正と判定された場合であって、かつ、前記フレームと同じＩＤのフレームの受信頻度が所定値に整合する場合、前記処理部は、他の通信より低い優先度で、少なくとも前記フレームに含まれるコマンドの情報および前記フレームの送信元装置の情報を通報する、
請求項１から４のいずれかに記載の監視装置。
【請求項１０】
前記第１判定の対象外となったフレームが前記第２判定により不正と判定された場合であって、かつ、前記フレームと同じＩＤのフレームの受信頻度が所定値を超える場合、前記処理部は、他の通信より低い優先度で、少なくとも前記フレームに含まれるコマンドの情報を通報する、
請求項１から４のいずれかに記載の監視装置。
【請求項１１】
前記処理部は、判定対象フレームの態様と、予め定められた複数のルールとに基づいて、複数の中間判定を実行し、複数の中間判定の結果に応じて前記第２判定の結果を導出し、
前記処理部は、前記複数の中間判定の結果の中にルールに不適合であることを示す結果が存在する場合、前記複数の中間判定の結果を外部装置へ通報し、前記ルールに不適合であることを示す結果の数に応じて、通報の優先度を変更する、
請求項１から１０のいずれかに記載の監視装置。
【請求項１２】
通信網からフレームを受信し、
前記フレームに対するメッセージ認証の結果に基づいて前記フレームが不正かを判定する第１判定と、
前記フレームの態様と予め定められたルールとに基づいて前記フレームが不正かを判定する第２判定と、を行い、
前記第１判定の結果と前記第２判定の結果との組み合わせに応じて、外部装置へ通報する内容または通報の優先度の少なくとも一方を変更する、
ことをコンピュータが実行する監視方法。
【請求項１３】
通信網からフレームを受信し、
前記フレームに対するメッセージ認証の結果に基づいて前記フレームが不正かを判定する第１判定と、
前記フレームの態様と予め定められたルールとに基づいて前記フレームが不正かを判定する第２判定と、を行い、
前記第１判定の結果と前記第２判定の結果との組み合わせに応じて、外部装置へ通報する内容または通報の優先度の少なくとも一方を変更する、
ことをコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理技術に関し、特に監視装置、監視方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、自動車には、多数の電子制御ユニット（Electronic Control Unit、以下「ＥＣＵ」と呼ぶ。）が搭載されている。これらのＥＣＵを繋ぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには多数の規格が存在するが、広く普及した規格としてＣＡＮ（Controller Area Network）がある。
【０００３】
自動車の電動化に伴い、車載ネットワーク経由でステアリング等のアクチュエータを制御することが可能である。一方で、車載ネットワークで不正コマンドが伝送されることによるアクチュエータの不正操作等を防止するため、メッセージ認証コード（Message Authentication Code、以下「ＭＡＣ」と呼ぶ。）を用いたメッセージ認証が実行されることがある（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１３／０６５６８９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
今後、インターネットへ常時接続される車両の普及に伴い、インターネットを介して車両と接続された装置群（以下「クラウド」とも呼ぶ。）が、車両のセキュリティ状態を常時監視することが考えられる。このようなクラウドサービスを利用する車両は、自車のセキュリティ状態をクラウドへ通報する必要があるが、通信量が過度に増加することは好ましくない。
【０００６】
本願発明は上記課題に鑑みたもので、１つの目的は、自装置のセキュリティ状態に応じた適切な内容またはタイミングで、外部装置への通報を実現することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の監視装置は、通信網からフレームを受信する受信部と、フレームに対するメッセージ認証の結果に基づいてフレームが不正かを判定する第１判定と、フレームの態様と予め定められたルールとに基づいてフレームが不正かを判定する第２判定とを行い、第１判定の結果と第２判定の結果との組み合わせに応じて、外部装置へ通報する内容または通報の優先度の少なくとも一方を変更する処理部と、を備える。
【０００８】
本発明の別の態様は、監視方法である。この方法は、通信網からフレームを受信し、フレームに対するメッセージ認証の結果に基づいてフレームが不正かを判定する第１判定と、フレームの態様と予め定められたルールとに基づいてフレームが不正かを判定する第２判定と、を行い、第１判定の結果と第２判定の結果との組み合わせに応じて、外部装置へ通報する内容または通報の優先度の少なくとも一方を変更する、ことをコンピュータが実行する。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を、コンピュータプログラム、コンピュータプログラムを記録した記録媒体、本装置を搭載した車両などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によれば、自装置のセキュリティ状態に応じた適切な内容またはタイミングで、外部装置への通報を実現することができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施例の車載ネットワークシステムの構成を示す図である。
【図２】図１のＣＧＷの機能構成を示すブロック図である。
【図３】図１のＥＣＵの機能構成を示すブロック図である。
【図４】不正検出パターン別の不正対策を示す図である。
【図５】図１のＣＧＷの動作を示すフローチャートである。
【図６】図１のＥＣＵの動作を示すフローチャートである。
【図７】変形例のＣＧＷのハードウェア構成を示す図である。
【図８】第２実施例の車載ネットワークシステムの構成を示す図である。
【図９】図８のＥＣＵの機能構成を示すブロック図である。
【図１０】不正検出パターンを示す図である。
【図１１】図８のＥＣＵの動作を示すフローチャートである。
【発明を実施するための形態】
【００１２】
［第１実施例］
第１実施例の詳細な構成を説明する前にまず概要を述べる。実施例の車載ネットワークシステムでは、ＭＡＣを用いたメッセージ認証（以下「ＭＡＣ検証」とも呼ぶ。）と、車載ネットワークを流れるフレーム（言い換えればコマンド）に対する振る舞い検証を併用する。振る舞い検証は、振る舞い検知技術と言え、侵入検知技術とも言える。振る舞い検証には、例えば「特開２０１４−１４６８６８号公報」に記載された技術を適用してもよい。実施例の車載ネットワークシステムでは、ＭＡＣ検証の結果と、振る舞い検証の結果の両方を総合的に判断して、不正対策アクション（言い換えれば防御アクション）を実行する。
【００１３】
図１は、第１実施例の車載ネットワークシステムの構成を示す。実施例の車載ネットワークシステム１２は、車両１０に構築された通信システムであり、車載ネットワークにおける不正検知システムとしての機能を備える。車載ネットワークシステム１２は、ＥＣＵ１４で総称されるＥＣＵ１４ａ、ＥＣＵ１４ｂ、ＥＣＵ１４ｃ、ＥＣＵ１４ｄ、ＩＶＩ装置１６、ＯＢＤアダプタ１８、ＣＧＷ２０、ＣＭＩ２２を備える。これらの装置はＣＡＮ２４を介して接続される。
【００１４】
複数のＥＣＵ１４のそれぞれは、不図示のセンサまたはアクチュエータに接続され、センサによる検知内容を示すフレームをＣＡＮ２４へ送信し、または、ＣＡＮ２４から受信したフレームが示すコマンドに基づいてアクチュエータを制御する。ＣＡＮ２４の複数のバスのうちパワートレインバス２６ａに接続されるＥＣＵ１４ａは、例えばエンジンＥＣＵである。また、運転支援バス２６ｂに接続されるＥＣＵ１４ｂは、例えばステアリングＥＣＵである。また、シャーシバス２６ｃに接続されるＥＣＵ１４ｃは、例えばサスペンションＥＣＵである。また、ボディバス２６ｄに接続されるＥＣＵ１４ｄは、例えばパワーウィンドウＥＣＵである。
【００１５】
ＩＶＩ（In-Vehicle Infotainment）装置１６は、様々な情報を乗員へ提示する情報機器であり、例えばカーナビゲーション装置である。ＩＶＩ装置１６は、車両１０外部の通信網（インターネット等）である外部通信網２８と接続される。車両１０は、外部通信網２８を介してルール生成装置２９と接続される。ルール生成装置２９は、後述の振る舞いルールを生成するサーバである。ＯＢＤアダプタ１８は、ＣＡＮ２４を流れる様々な情報、例えば車両１０の動作状態を示す情報を外部装置へ出力するアダプタである。ＩＶＩ装置１６およびＯＢＤアダプタ１８は、ＣＡＮ２４の複数のバスのうち外部バス２６ｅに接続される。外部バス２６ｅは、ＥＣＵ１４以外の装置から送信されたフレームが流れるバスである。外部バス２６ｅを流れるフレームは、例えば、外部通信網２８側の装置から送信されたフレーム、および、ＯＢＤアダプタ１８に接続された装置から送信されたフレームを含む。
【００１６】
ＣＧＷ（Central GateWay）２０は、ＣＡＮ２４の複数のバスに接続され、バス間でのフレームの中継処理およびルーティング処理を実行するゲートウェイＥＣＵである。ＣＭＩ（Centralized Monitoring and Interceptor）２２は、ＣＡＮ２４の複数のバスに接続され、各バスを流れるフレームを監視するＥＣＵである。変形例として、ＣＭＩ２２がＣＡＮ２４に非接続の構成であってもよく、言い換えれば、車載ネットワークシステム１２は、ＣＭＩ２２を備えなくてもよい。
【００１７】
実施例では、ＭＡＣを用いたメッセージ認証に対応する複数の装置に監視モジュールが導入される。具体的には、ＣＧＷ２０と一部のＥＣＵ１４に監視モジュールが導入される。監視モジュールが導入されたＣＧＷ２０とＥＣＵ１４は、ＣＡＮ２４を流れる不正フレーム（言い換えれば不正コマンド）を監視し、不正対策を実行する監視装置として機能する。変形例として、（１）ＣＧＷ２０にのみ監視モジュールを導入する構成でもよく、（２）ＣＭＩ２２にのみ監視モジュールを導入する構成でもよく、（３）ＭＡＣを用いたメッセージ認証に対応するＥＣＵ１４にのみ監視モジュールを導入する構成でもよい。
【００１８】
図２は、図１のＣＧＷ２０の機能構成を示すブロック図である。ＣＧＷ２０は、フレーム受信部３０、フレーム送信部３２、ＭＡＣ検証部３４、振る舞い検証部３６、不正対策部３８を備える。なお、図１のＣＭＩ２２が監視モジュールを備える場合、ＣＭＩ２２の機能構成は図２と同様になる。また、ＭＡＣ検証部３４、振る舞い検証部３６、不正対策部３８を含めて、監視モジュールとして１つの処理部を構成してもよい。
【００１９】
本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのＣＰＵ・メモリをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。例えば、図２の各ブロックに対応するモジュールを含むコンピュータプログラムがＣＧＷ２０のメモリに格納されてもよい。ＣＧＷ２０のＣＰＵは、そのコンピュータプログラムを適宜読み出して実行することにより、各ブロックの機能を発揮してもよい。
【００２０】
フレーム受信部３０は、ＣＡＮ２４の各バスからフレームを受信する。フレーム受信部３０は、受信したフレームのデータを、当該フレームを受信したバスの識別情報とともにＭＡＣ検証部３４、振る舞い検証部３６を経て、不正対策部３８へ入力する。フレーム送信部３２は、ＣＡＮ２４の各バスへフレームを送信する。例えば、フレーム送信部３２は、あるバスから受信したフレームを、そのバスを除く他のバスへ転送する。
【００２１】
ＭＡＣ検証部３４は、フレーム受信部３０により受信されたフレーム（以下「対象フレーム」とも呼ぶ。）に対するメッセージ認証を実行する。例えば、ＭＡＣ検証部３４は、予め定められたメッセージ認証用の共通鍵（以下「ＭＡＣ鍵」と呼ぶ。）に基づいてＭＡＣを生成する。ＭＡＣ検証部３４は、生成したＭＡＣと、予め送信元装置（例えばＥＣＵ１４）が対象フレームに付加したＭＡＣとを比較する。ＭＡＣ検証部３４は、両者のＭＡＣが一致する場合、メッセージ認証に成功したと判定し、両者のＭＡＣが不一致の場合、メッセージ認証に失敗したと判定する。ＭＡＣ検証部３４は、メッセージ認証に成功した場合、対象フレームを正当と判定し、メッセージ認証に失敗した場合、対象フレームを不正と判定する。
【００２２】
振る舞い検証部３６は、振る舞い検証処理として、対象フレームの態様と予め定められた振る舞いルールとに基づいて、対象フレームが不正か否かを判定する。振る舞い検証部３６は、ルール生成装置２９から提供された振る舞いルールを所定の記憶領域に保持する。振る舞いルールは、フレーム（言い換えればメッセージ）のフォーマットに関する規定を含む。フォーマットに関する規定は、具体的には、ＩＤ・ＤＬＣ（データ長コード）・ペイロード等における固定値の規定を含む。例えば、振る舞いルールは、フレームの所定位置に特定の固定値が設定されることを規定してもよい。
【００２３】
また、振る舞いルールは、フレームの振る舞いに関する規定を含む。振る舞いに関する規定は、具体的には、周期・頻度・ペイロードに関する可変値の規定を含む。例えば、振る舞いルールは、複数のＩＤ（フレームＩＤとも言え、ＣＡＮ−ＩＤとも言える）のそれぞれについて、前回のフレーム受信から今回のフレーム受信までの時間間隔の範囲または差分の規定を含んでもよい。また、振る舞いルールは、フレームＩＤごとに、ペイロードの所定位置に設定されたデータ項目、または、ペイロード内の所定名称のデータ項目について、前回受信したフレームからの差分の制限（許容する範囲等）を含んでもよい。
【００２４】
なお、振る舞いルールは、ブラックリストとホワイトリストのいずれも含みうる。振る舞い検証部３６は、対象フレームがブラックリストとしてのルールを充足する場合、対象フレームを不正と判定する。また、振る舞い検証部３６は、対象フレームがホワイトリストとしてのルールから逸脱する場合、対象フレームを不正と判定する。
【００２５】
不正対策部３８は、ＭＡＣ検証部３４による不正判定結果と、振る舞い検証部３６による不正判定結果との組み合わせに応じて、対象フレームに関する処理（「コマンド対策」とも呼ぶ。）と、フレームの送信元装置に関する処理（「ＥＣＵ対策」とも呼ぶ。）の少なくとも一方を実行する。なお、不正対策部３８は、ＭＡＣ検証と振る舞い検証の両方で対象フレームが正当と判定された場合、対象フレームをフレーム送信部３２に渡してＣＡＮ２４へ送信させる。
【００２６】
不正対策部３８は、無効化部４０、受信フレーム記憶部４２、ログ保存部４４、ルール更新部４６、構成情報記憶部４８、対象検出部５０、プログラム更新部５２、鍵更新部５４を含む。
【００２７】
無効化部４０は、対象フレームの無効化処理として、ＣＡＮ２４のバス上に存在する対象フレームを消去する処理を実行する。具体的には、無効化部４０は、対象フレームに対するエラーフレームを生成し、フレーム送信部３２からＣＡＮ２４へエラーフレームを出力させる。これにより、ＣＡＮ２４上の他の装置（ＥＣＵ１４等）における対象フレームも無効にする。フレームの無効化処理には、非特許文献「T. Matsumoto, M. Hata, M. Tanabe, K. Yoshioka, and K. Oishi, "A Method of Preventing Unauthorized Data Transmission in Controller Area Network,"Vehiclular Technology Conference, 2012.」に記載の技術を適用してもよい。実施例のＣＧＷ２０は、不正なフレームに対して無効化処理を実行するが、後述のＥＣＵ１４と同様に、不正なフレームに対して破棄処理（言い換えればフィルタ処理）を実行してもよい。
【００２８】
受信フレーム記憶部４２は、フレーム受信部３０により受信された複数のフレームを所定の記憶領域に記憶させ、蓄積する。受信フレーム記憶部４２は、受信されてから所定時間（３０分等）が経過したフレームを記憶領域から順次消去しても良い。受信フレーム記憶部４２は、フレームのデータと、そのフレームに対するＭＡＣ検証部３４による判定結果と振る舞い検証部３６による判定結果を対応付けて蓄積してもよい。
【００２９】
ログ保存部４４は、ＭＡＣ検証部３４により対象フレームが不正と判定され、振る舞い検証部３６により対象フレームが正当と判定された場合に、少なくとも対象フレームに関するログデータを保存する。そして、オフライン上で（例えばディーラーでのメンテナンスにおいて）、保存されたログデータを収集し、上記判定結果をルール生成装置２９へ送信する。これにより、ルール生成装置２９は、振る舞い検証において対象フレームが不正と判断されるように、振る舞いルールを更新する。具体的には、ログ保存部４４は、受信フレーム記憶部４２に保持されたフレームのうち対象フレームとＩＤが一致する過去のフレームと、対象フレームとを含むルール更新指示データをログデータとして保存する。例えば、対象フレームと過去のフレームはともに、ステアリングの制御コマンドを指定し、かつ、ステアリングの回動角度を指定するものであってもよい。
【００３０】
過去のフレームは、ＭＡＣ検証部３４による判定結果と振る舞い検証部３６による判定結果の組み合わせが対象フレームとは異なるフレームであってもよい。そのため、過去のフレームを含めてルール生成装置２９へ提供することにより、ルール生成装置２９による振る舞いルール更新を支援できる。また、ログ保存部４４は、過去のフレームと対象フレームそれぞれの、ＭＡＣ検証部３４による判定結果と振る舞い検証部３６による判定結果を、ログデータとしてルール更新指示データに含めてもよい。また、対象フレームより後に受信されたフレームのうち対象フレームとＩＤが一致するフレームをルール更新データに含めてもよい。
【００３１】
ルール生成装置２９は、生成または更新した振る舞いルールを外部通信網２８を介して車両１０へ配信する。ルール更新部４６は、ルール生成装置２９から提供された振る舞いルールをＣＡＮ２４を介して取得する。そしてルール更新部４６は、取得した振る舞いルールを振る舞い検証部３６に渡し、振る舞い検証部３６が保持する振る舞いルールを更新させる。
【００３２】
構成情報記憶部４８は、ＣＡＮ２４の様々な構成要素に関する属性情報（ここでは「構成情報」と呼ぶ。）を記憶する。実施例の構成情報は、複数のＥＣＵ１４のそれぞれが接続されたバスの識別情報と、複数のＥＣＵ１４のそれぞれが送信するフレームのＩＤとを含む。
【００３３】
対象検出部５０は、複数のＥＣＵ１４から送信された複数のフレームにおける不正有無に基づいて、複数のＥＣＵ１４の中から不正対策の対象となるＥＣＵ（以下「対象ＥＣＵ」と呼ぶ。）を検出する。対象検出部５０は、各ＥＣＵ１４から送信されたフレームの不正率または不正回数に基づいて、対象ＥＣＵを検出してもよい。対象ＥＣＵは、不正なＥＣＵともいえ、不正者により乗っ取られたＥＣＵとも言える。
【００３４】
実施例の対象検出部５０は、ＭＡＣ検証と振る舞い検証の少なくとも一方で不正と判定されたフレームについて、ＩＤごとの不正判定回数を蓄積する。対象検出部５０は、不正判定回数が予め定められた閾値（例えば５回）以上になったＩＤを検出し、構成情報記憶部４８を参照して、そのＩＤのフレームを送信するＥＣＵ１４を対象ＥＣＵとして検出する。
【００３５】
以下、ＥＣＵ対策のための４種類の構成を説明するが、実際にはいずれか１つの対策が実行されてもよく、２つ以上の対策の組み合わせが実行されてもよい。
【００３６】
（１）無効化部４０は、構成情報記憶部４８を参照して、対象ＥＣＵから送信されうる全てのＩＤのフレームを無効化する処理を実行する。（２）無効化部４０は、構成情報記憶部４８を参照して、対象ＥＣＵが接続されたＣＡＮ２４のバスを識別し、識別したバスからフレーム受信部３０が受信した全てのフレームを無効化する処理を実行する。
【００３７】
（３）プログラム更新部５２は、対象ＥＣＵのＲＯＭに格納されたコンピュータプログラムを更新させるための処理（すなわちリプログラミング）を実行する。例えば、ＣＧＷ２０は、個々のＥＣＵ１４ごとの正規のプログラムを予め保持し、プログラム更新部５２は、対象ＥＣＵ用の正規のプログラムを、対象ＥＣＵのＲＯＭに上書き保存してもよい。また、プログラム更新部５２は、対象ＥＣＵ用の正規のプログラムを、外部通信網２８を介して外部のサーバから取得し、対象ＥＣＵのＲＯＭに上書き保存してもよい。
【００３８】
（４）鍵更新部５４は、複数のＥＣＵ１４に亘り使用される共通鍵であるＭＡＣ鍵を更新する。鍵更新部５４は、更新したＭＡＣ鍵を複数のＥＣＵ１４へ配布する。後述するように、ＭＡＣ検証の結果と振る舞い検証の結果の組み合わせに応じて、鍵更新部５４は、全てのＥＣＵ１４へ更新したＭＡＣ鍵を送信して、全てのＥＣＵ１４が使用するＭＡＣ鍵を変更させる。または、鍵更新部５４は、対象ＥＣＵを除く残りのＥＣＵ１４へ更新したＭＡＣ鍵を送信して、対象ＥＣＵ以外のＥＣＵ１４が使用するＭＡＣ鍵を変更させる。なお、鍵更新部５４は、予め定められたＥＵＣごとに異なる鍵（ＭＡＣ鍵とは異なる鍵）を使用して暗号化したＭＡＣ鍵を各ＥＣＵへ配布してもよい。
【００３９】
実施例では、鍵更新部５４は、ＭＡＣ検証部３４により対象フレームが正当と判定され、振る舞い検証部３６により対象フレームが不正と判定された場合であり、かつ、対象フレームが、ＥＣＵ１４以外から送信されたフレームが流れるバス（実施例では外部バス２６ｅ）から受信されたものであるとき、全てのＥＣＵ１４が使用するＭＡＣ鍵を更新する。この判定の場合、ＭＡＣ検証は成功したため、ＭＡＣ鍵が漏洩している可能性がある。また、不正フレームは外部から注入されたものである。そこで、全てのＥＣＵ１４が使用するＭＡＣ鍵を更新することで、ＭＡＣ鍵の漏洩リスクを解消し、セキュリティを向上させる。
【００４０】
その一方、不正フレームが外部バス２６ｅ以外のバス（パワートレインバス２６ａ等）から受信された場合、対象ＥＣＵが不正者により乗っ取られ、さらにＭＡＣ鍵を不正者が使用可能である状況が想定される。そこで、不正フレームが外部バス２６ｅ以外のバスから受信された場合、鍵更新部５４は、対象ＥＣＵ以外のＥＣＵ１４が使用するＭＡＣ鍵を更新する。
【００４１】
図３は、図１のＥＣＵ１４の機能構成を示すブロック図である。図３では、図１の複数のＥＣＵ１４のうちＭＡＣを用いたメッセージ認証に対応するＥＣＵ１４の機能構成を示している。また、図３では、図２で説明したＣＧＷ２０の機能ブロックと同一または対応する機能ブロックに同一の符号を付している。以下、図２に関連して説明済みの内容は適宜省略する。
【００４２】
ＥＣＵ１４は、フレーム受信部３０、フレーム送信部３２、ＭＡＣ検証部３４、振る舞い検証部３６、不正対策部３８、コマンド実行部５６、フレーム生成部５８を備える。コマンド実行部５６は、フレームで指定されたコマンドを実行する。例えば、コマンド実行部５６は、自ＥＣＵに接続されたアクチュエータをコマンドにしたがって制御する。フレーム生成部５８は、外部装置（例えば他のＥＣＵ１４）に対するコマンドを指定したフレームを生成し、生成したフレームをフレーム送信部３２に渡して送信させる。
【００４３】
ＥＣＵ１４の不正対策部３８は、受信フレーム記憶部４２、ログ保存部４４、ルール更新部４６、構成情報記憶部４８、対象検出部５０、プログラム更新部５２、鍵更新部５４、フィルタ部６０、モード切替部６２を含む。フィルタ部６０は、ＣＧＷ２０における無効化部４０に対応し、ＥＣＵ１４のコマンド対策を実行する。具体的には、フィルタ部６０は、不正と判定された対象フレームを破棄し、言い換えれば、対象フレームで指定されたコマンドを破棄する。例えば、フィルタ部６０は、対象フレームのデータをＥＣＵ１４内部のメモリ（不図示）から消去してもよい。
【００４４】
また、ＥＣＵ１４は、既述したＥＣＵ対策を実行する。ただし、実施例のＣＧＷ２０におけるＥＣＵ対策（１）（２）ではフレームの無効化処理を実行したが、ＥＣＵ１４におけるＥＣＵ対策（１）（２）ではフレームの廃棄処理、言い換えればフィルタ処理を実行する。ＥＣＵ対策（３）（４）はＣＧＷ２０と同様である。
【００４５】
モード切替部６２は、ＣＧＷ２０を経由して伝送されたフレームが振る舞い検証で不正と判定された場合、複数のバスに接続して車載ネットワークの要であるＣＧＷ２０のセキュリティ機能が突破されている状態であると判断し、車両１０の自動運転のモードをフェイルセーフモードへ切り替える。例えば、モード切替部６２は、構成情報記憶部４８を参照して、不正と判定された対象フレームのＩＤに基づいて送信元のＥＣＵ１４を特定してもよい。そして、送信元のＥＣＵ１４が、自ＥＣＵが接続されたバスとは異なるバスに接続されたものである場合に、モード切替部６２は、対象フレームがＣＧＷ２０により中継されたと判定してもよい。また、フェイルセーフモードは、自動運転制御（言い換えれば電動による運転支援処理）をオフにした状態であってもよい。
【００４６】
ＣＧＷ２０を経由して伝送されたフレームが不正であることは、ＣＧＷ２０が不正者に乗っ取られた可能性が高いことを意味する。ＣＡＮ２４におけるＣＧＷ２０は、複数のＥＣＵ１４間の通信の基盤であり、ＣＧＷ２０が乗っ取られたことはセキュリティ上、重大な問題である。そこで、実施例のモード切替部６２は、ＣＧＷ２０を経由して伝送されたフレームが不正である場合に自動運転をフェイルセーフモードへ移行させることで、車両運転の安全性を一層高める。なお、ＣＭＩ２２に監視モジュールが導入される場合、ＣＭＩ２２は、モード切替部６２を備えてもよい。
【００４７】
変形例として、ＣＧＷ２０を経由して伝送されたフレームが不正である場合に限らず、車載ネットワークシステム１２のセキュリティの根幹装置から送信されたフレームが不正である場合に、モード切替部６２は、車両１０の自動運転のモードをフェイルセーフモードへ切り替えてもよい。セキュリティの根幹装置は、例えば、個々のＥＣＵ１４ごとの鍵を保持し、ＥＣＵごとの鍵で暗号化したＭＡＣ鍵を各ＥＣＵ１４へ配布する装置（ＣＧＷ２０、ＥＣＵ１４等）が該当する。モード切替部６２は、構成情報記憶部４８を参照して、不正と判定された対象フレームのＩＤに基づいて、対象フレームの送信元がセキュリティの根幹装置かを判定してもよい。
【００４８】
図４は、不正検出パターン別の不正対策を示す。ここでは、監視モジュールが導入されうる装置（ＥＣＵ１４、ＣＧＷ２０、ＣＭＩ２２）を総称して「監視装置」と呼ぶ。図４のコマンド対策欄では、監視装置がＥＣＵ１４、ＣＧＷ２０、ＣＭＩ２２の場合の処理をそれぞれ示している。
【００４９】
ＭＡＣ検証で対象フレームが正当と判定され、振る舞い検証で対象フレームが不正と判定された場合（パターン１およびパターン５）、または、ＭＡＣ検証で対象フレームが不正と判定され、振る舞い検証で対象フレームが不正と判定された場合（パターン２）、監視装置の不正対策部３８は、コマンド対策として、対象フレームを破棄または無効化する。なお、パターン２において、ＥＣＵ１４でのコマンド対策が「なし」であるのは、メッセージ認証に対応するＥＣＵ１４では、通常、ＭＡＣ検証のＮＧに伴いエラー処理が実行されるからである。また、パターン２において、ＣＧＷ２０のコマンド対策が無効化であるのは、ＤｏＳ攻撃（Denial of Service attack）への対策として有効だからである。
【００５０】
パターン１およびパターン２の場合、不正対策部３８は、４種類のＥＵＣ対策のうち１つまたは複数を実行する。パターン５の場合、不正対策部３８は、ＥＵＣ対策として、全てのＥＣＵ１４のＭＡＣ鍵を更新する。
【００５１】
ＭＡＣ検証で対象フレームが不正と判定され、振る舞い検証で対象フレームが正当と判定された場合（パターン６）、監視装置の不正対策部３８は、対象フレームとその前後のフレームを含むルール更新指示データをログデータとして保存することにより、ルール生成装置２９に対象フレームとその前後のフレームに基づいて振る舞いルールを更新させる。例えば、ルール生成装置２９は、監視装置が再度対象フレームを受け付けた場合、振る舞い検証において不正を検出するように振る舞いルールを更新する。
【００５２】
図４のパターン３とパターン４は、ＭＡＣを用いたメッセージ認証に対応しないＥＣＵ１４から送信されたフレームが不正であるパターンである。すなわち、フレームにＭＡＣが付加されないためＭＡＣ検証はできず、振る舞い検証にて不正が検出されたパターンである。なお、パターン３は、不正と判定された対象フレームがＥＣＵ１４から送信されたパターンであり、パターン４は、不正と判定された対象フレームが外部から注入された（言い換えれば外部バス２６ｅから受信された）パターンである。
【００５３】
パターン３とパターン４のいずれでも、監視装置の不正対策部３８は、コマンド対策として、対象フレームを破棄または無効化する。パターン４は、不正フレームが外部注入された状況であり、ＭＡＣ鍵の漏洩はないため、ＥＣＵ対策は実行しない。その一方、パターン３では対象ＥＣＵが乗っ取られた可能性が高いため、不正対策部３８は、パターン１等と同様のＥＣＵ対策を実行する。
【００５４】
以上の構成による車載ネットワークシステム１２の動作を説明する。図５は、図１のＣＧＷ２０の動作を示すフローチャートである。フレーム受信部３０は、ＣＡＮ２４からフレームを受信する（Ｓ１０）。ＭＡＣ検証部３４は、受信された対象フレームに対するＭＡＣ検証を実行して、対象フレームが正当か不正かを判定する（Ｓ１２）。振る舞い検証部３６は、受信された対象フレームに対する振る舞い検証を実行して、対象フレームが正当か不正かを判定する（Ｓ１４）。なお、Ｓ１２とＳ１４の実行順序に制限はなく、並行して実行してもよい。
【００５５】
ＭＡＣ検証と振る舞い検証の両方で対象フレームが正当と判定された場合（Ｓ１６のＹ）、不正対策部３８は、対象フレームをフレーム送信部３２に渡し、フレーム送信部３２は、フレームＩＤ、転送元バス、転送先バスを対応付けたルーティングテーブルにしたがって、対象フレームを転送する（Ｓ１８）。ＭＡＣ検証で対象フレームが不正と判定され、振る舞い検証で対象フレームが正当と判定された場合（Ｓ１６のＮ、Ｓ２０のＹ）、不正対策部３８は、ルール生成装置２９に振る舞いルールを更新させるためのログデータであり、対象フレームとその前後のフレームを含むログデータを保存する（Ｓ２２）。ＭＡＣ検証結果が不正かつ振る舞い検証結果が不正となった場合、または、ＭＡＣ検証結果が正当かつ振る舞い検証結果が不正となった場合（Ｓ２０のＮ）、不正対策部３８は、図４に示したコマンド対策を実行する（Ｓ２４）。
【００５６】
不正検出パターン（図４）にしたがってＥＣＵ対策が必要な場合（Ｓ２６のＹ）、不正対策部３８は、乗っ取られた可能性が高い対象ＥＣＵを特定する（Ｓ２８）。不正対策部３８は、対象ＥＣＵおよび／または他のＥＣＵ１４に関するＥＣＵ対策を実行する（Ｓ３０）。ＥＣＵ対策が不要であれば（Ｓ２６のＮ）、Ｓ２８、Ｓ３０をスキップする。
【００５７】
図６は、図１のＥＣＵ１４の動作を示すフローチャートである。Ｓ４０〜Ｓ４４の処理は図５のＳ１０〜Ｓ１４と同じであるため説明を省略する。ＭＡＣ検証と振る舞い検証の両方で対象フレームが正当と判定された場合（Ｓ４６のＹ）、不正対策部３８は、対象フレームをコマンド実行部５６に渡し、コマンド実行部５６は、対象フレームで指定されたコマンドにしたがいデータ処理を実行する（Ｓ４８）。対象フレームがＣＧＷ２０経由のフレームであり、かつ、少なくとも振る舞い検証により不正と判定された場合（Ｓ４６のＮ、Ｓ５０のＹ）、不正対策部３８は、車両１０の自動運転をフェイルセーフモードへ移行させる（Ｓ５２）。Ｓ５０のＮ以降、Ｓ５４〜Ｓ６４の処理は図５のＳ２０〜Ｓ３０と同じであるため説明を省略する。
【００５８】
実施例の監視装置（例えばＥＣＵ１４、ＣＧＷ２０）によると、メッセージ認証の結果と振る舞い検証の結果との組み合わせに基づいて、セキュリティの脅威の種類をきめ細かに認識し、脅威の種類に応じた適切なコマンド対策およびＥＣＵ対策を自動実行する。これにより、車載ネットワークシステム１２のセキュリティを担保できる。例えば、ＭＡＣ鍵の漏洩、および、ＭＡＣ対応ＥＣＵの乗っ取りを検知し、ＭＡＣ鍵の更新およびＥＣＵのリプログラミングを適切に実行できる。また、車載ネットワークシステム１２内にＭＡＣ未対応のＥＣＵ１４が存在し、ＭＡＣ未対応のＥＣＵ１４が脅威にさらされた場合も、セキュリティを担保しやすくなる。
【００５９】
以上、本発明を第１実施例をもとに説明した。この実施例は例示であり、それらの各構成要素あるいは各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００６０】
第１変形例を説明する。実施例の振る舞い検証部３６は、対象フレームを正当または不正に分類したが、変形例として、振る舞い検証部３６は、対象フレームの態様と振る舞いルールとの乖離の度合い（もしくは一致の度合い）に応じて、対象フレームを正当、不正、グレーのいずれかに分類してもよい。不正対策部３８のログ保存部４４は、対象フレームがグレーに分類された場合、対象フレームと、同じＩＤの過去のフレームとを含むルール更新指示データをログデータとして保存する。既述したように、ルール更新指示データは、対象フレームより後に受信された同ＩＤのフレームを含んでもよい。これにより、保存されたログデータはオフライン上で収集されてルール生成装置２９に通知され、ルール生成装置２９は、例えば対象フレームを不正と判定するように振る舞いルール更新する。
【００６１】
具体例として、振る舞い検証部３６は、検知パラメータＡ〜Ｅのそれぞれで対象フレームを評価し、各検知パラメータによる中間判定結果Ａ〜Ｅを生成し、４つ以上の中間判定結果が不正となった場合に最終判定結果を不正としてもよい。また、不正となった中間判定結果の個数が３個以下であれば最終判定結果を正当としてもよい。この構成において、振る舞い検証部３６は、各フレームで指定されるフレームＩＤ（コマンドＩＤでもよい）ごとに中間判定結果が不正となった回数を累計していく。振る舞い検証部３６は、中間判定結果が不正となった累計数が所定の閾値（例えば１０回等）を超えたＩＤのフレームをグレーと判定する。
【００６２】
また、振る舞い検証部３６は、フレームＩＤ（コマンドＩＤ）で区別せずに全てのフレームを母集団として、中間判定結果が不正となった回数を累計してもよい。振る舞い検証部３６は、中間判定結果が不正となった累計数が所定の閾値（例えば１０回等）を超えた場合にグレーと判定してもよい。この場合、ログ保存部４４は、過去の一定期間に受信した全フレームを含むルール更新指示データをログデータとして保存してもよい。
【００６３】
フレームの正当性がグレーと判定されることは本来望ましくないが、第１変形例によると、振る舞いルールを適切に更新し、車載ネットワークシステム１２のセキュリティを向上させることができる。なお、振る舞い検証部３６は、対象フレームの振る舞い検証において、対象フレームのＩＤに紐付く不正判定累計数が所定の閾値を超過した場合、対象フレームの最終判定結果を「不正」としてもよい。この態様によると、グレー判定となったフレームに基づいてコマンド対策およびＥＣＵ対策が実行され、車載ネットワークシステム１２のセキュリティを一層高めることができる。
【００６４】
第２変形例を説明する。図７は、変形例のＣＧＷ２０のハードウェア構成を示す。ＣＧＷ２０は、ＣＰＵ７０、監視モジュール７２、ＬＡＮコントローラ７４、ＬＡＮコントローラ７６を備える。ＬＡＮコントローラ７４およびＬＡＮコントローラ７６は、ＣＡＮ２４の各バスに接続される。ＣＰＵ７０は、ＣＧＷ２０全体の動作を制御するとともに、図２に示した各機能ブロックの機能を実行する。
【００６５】
監視モジュール７２は、ＣＰＵ７０と物理的に異なるＬＳＩであり、言い換えれば、ＣＰＵ７０と物理的に分離または独立して実装されたＬＳＩである。監視モジュール７２は、図２に示した機能ブロックのうちＭＡＣ検証部３４、振る舞い検証部３６、不正対策部３８の機能を実行する。監視モジュール７２が備える不正対策部３８の機能は、図４に示したパターン別のコマンド対策およびＥＣＵ対策を決定する機能を少なくとも含む。
【００６６】
ＣＰＵ７０と監視モジュール７２は、互いに並行して、同じ対象フレームに対する不正判定処理を実行する。監視モジュール７２は、不正判定処理の結果と、ＣＰＵ７０におえるフレーム処理の内容に基づいて、ＣＰＵ７０が正常か否かを判定する。例えば、監視モジュール７２は、ＭＡＣ検証と振る舞い検証の少なくとも一方で対象フレームが不正と判定された場合であって、かつ、ＣＰＵ７０が対象フレームをＣＡＮ２４へ送信した場合に、ＣＰＵ７０（特にＣＰＵ７０のルーティング機能）が異常と判定する。また、監視モジュール７２は、ＭＡＣ検証と振る舞い検証の両方で対象フレームが正当と判定された場合であって、かつ、ＣＰＵ７０が対象フレームを破棄または無効化した場合に、ＣＰＵ７０が異常と判定する。
【００６７】
ＣＰＵ７０が異常と判定した場合、監視モジュール７２は、所定のエラー処理、リカバリー処理、乗員または外部の人等への通知処理のうち少なくとも１つを実行してもよい。第２変形例によると、ＣＧＷ２０のＣＰＵ７０が不正者により乗っ取られた場合も、その事実を監視モジュール７２により検出して、セキュリティの脅威を解消するための処理を実行可能になる。なお、ＣＰＵ７０と監視モジュール７２は、仮想的または論理的に分離して実装されてもよい。また、ここではＣＧＷ２０の例を示したが、監視装置として動作するＥＣＵ１４においても本変形例の構成を適用可能である。
【００６８】
第３変形例を説明する。上記実施例では、車載ネットワークをＣＡＮとしたが、変形例として、車載ネットワークをイーサネット（登録商標）にしてもよく、この場合も、ＥＣＵ１４およびＣＧＷ２０には実施例と同様の構成を適用できる。
【００６９】
第４変形例を説明する。第３変形例に関連して、車載ネットワークにおいてＣＡＮとイーサネットが混在してもよい。監視装置としてのＣＧＷ２０は、ＣＡＮとイーサネットを接続し、ＣＡＮのフレームとイーサネットフレームとを相互に変換する機能をさらに備えてもよい。ＣＧＷ２０は、ＭＡＣ検証と振る舞い検証の少なくとも一方で不正と判定されたＣＡＮフレームをイーサネットフレームへ変換することを抑制する。同様に、上記不正と判定されたイーサネットフレームをＣＡＮフレームへ変換することを抑制する。
【００７０】
また、ＣＧＷ２０は、ＣＡＮの複数のバスと、イーサネットの複数のバスに接続されてもよい。この場合に、或るフレームがＭＡＣ検証と振る舞い検証の少なくとも一方で不正と判定された場合、ＣＧＷ２０は、そのフレームが流れるバスから他のバスへの、全フレームの変換および中継を抑制してもよい。さらにまた、ＣＧＷ２０は、不正と判定されたフレームが流れるバスへの他のバスからの、全フレームの変換および中継を抑制してもよい。
【００７１】
さらにまた、ＣＧＷ２０は、イーサネットにおけるセキュリティ機能（例えばファイヤウォール機能、ＭＡＣアドレスフィルタ等）を備えてもよい。ＣＧＷ２０は、イーサネットにおけるセキュリティ機能とＭＡＣ検証との少なくとも一方で対象フレームが不正と判定されたことを、実施例においてＭＡＣ検証で不正と判定した場合と同等に取り扱ってもよい。なお、ＣＧＷ２０は、イーサネットにおけるセキュリティ機能とＭＡＣ検証の両方で対象フレームが不正と判定された場合、不正の確度が高いと判定して、コマンド対策およびＥＣＵ対策の実行に代えて、もしくはコマンド対策およびＥＣＵ対策の実行とともに、車両１０の自動運転のモードをフェイルセーフモードへ移行させてもよい。なお、第４変形例は、ＣＧＷ２０に限らず、異なる種類のネットワークを接続する装置全般に適用可能である。
【００７２】
第５変形例を説明する。車載ネットワークシステム１２のＥＣＵ１４、ＣＧＷ２０には、自装置の改ざん有無を判定するセキュリティチップ（Trusted Platform Module、以下「ＴＰＭ」と呼ぶ。）が搭載されてもよい。監視装置（例えばＣＧＷ２０、ＥＣＵ１４）の対象検出部５０は、少なくとも振る舞い検証で不正と判定されたフレームを送信したＥＣＵのＴＰＭに対して改ざん有無を問い合わせてもよい（Attestation）。なお、第２変形例との組み合わせ時、対象検出部５０は、ＣＧＷ２０のＳｏＣ（System on Chip）に対して改ざん有無を問い合わせてもよい。対象検出部５０は、問い合わせの結果が改ざんありを示す場合、問い合わせ先の装置（例えばＣＧＷ２０、ＥＣＵ１４）を不正と判定し、言い換えれば、不正対策の対象装置と判定する。
【００７３】
第１実施例および変形例に記載の技術は、以下の項目によって特定されてもよい。
［項目１］
通信網からフレームを受信する受信部と、フレームに対するメッセージ認証の結果に基づいてフレームが不正かを判定する第１判定と、フレームの態様と予め定められたルールとに基づいてフレームが不正かを判定する第２判定とを行い、第１判定の結果と第２判定の結果との組み合わせに応じて、フレームに関する処理とフレームの送信元装置に関する処理の少なくとも一方を実行する処理部と、を備える監視装置。
この監視装置によると、通信システムのセキュリティを向上させることができる。
［項目２］
第１判定により判定対象フレームが正当と判定され、第２判定により判定対象フレームが不正と判定された場合、または、第１判定により判定対象フレームが不正と判定され、第２判定により判定対象フレームが不正と判定された場合、処理部は、判定対象フレームを破棄または無効化する処理を実行してもよい。
この態様によると、不正なフレームによるセキュリティのリスクを低減できる。
［項目３］
第１判定により判定対象フレームが正当と判定され、第２判定により判定対象フレームが不正と判定された場合、または、第１判定により判定対象フレームが不正と判定され、第２判定により判定対象フレームが不正と判定された場合に、複数の送信元装置から送信された複数のフレームにおける不正有無に基づいて、複数の送信元装置の中から不正対策の対象装置を検出し、（１）対象装置から送信されるフレームを破棄または無効化する処理、（２）対象装置におけるコンピュータプログラムを更新する処理、（３）対象装置以外の送信元装置におけるメッセージ認証の鍵を更新する処理、（４）対象装置が接続された通信網のバスから受信されたフレームを破棄または無効化する処理、のうち少なくとも１つを実行してもよい。
この態様によると、不正なフレームの検出に基づいて、フレームの送信元装置に関する不正対策を実施できる。
［項目４］
第１判定により判定対象フレームが正当と判定され、第２判定により判定対象フレームが不正と判定された場合であり、かつ、判定対象フレームが、所定の送信元装置以外から送信されたフレームが流れるバスから受信されたものであるとき、処理部は、所定の送信元装置におけるメッセージ認証の鍵を更新する処理を実行してもよい。
この態様によると、外部から不正なフレームが注入され、メッセージ認証の鍵が漏洩している可能性がある場合に、メッセージ認証の鍵を更新し、セキュリティのリスクを低減できる。
［項目５］
第１判定により判定対象フレームが不正と判定され、第２判定により判定対象フレームが正当と判定された場合に、処理部は、少なくとも判定対象フレームに関するログデータを保存してもよい。
この態様によると、第２判定のためのルールが不完全であることが想定される場合に、ルールの改善を支援できる。
［項目６］
処理部は、判定対象フレームの態様とルールとの乖離の度合いに応じて、判定対象フレームを正当、不正、グレーのいずれかに分類し、判定対象フレームがグレーに分類された場合、少なくとも判定対象フレームに関するログデータを保存してもよい。
この態様によると、本来望ましくないグレー判定に伴い、第２判定のためのルールの改善を支援できる。
［項目７］
監視装置は、車両に搭載された電子制御ユニットであってもよい。処理部は、車載ネットワークにおける所定のゲートウェイ装置を経由して伝送されたフレームが第２判定により不正と判定された場合、車両の自動運転のモードをフェイルセーフモードへ切り替えてもよい。
この態様によると、車両運転の安全性を一層高めることができる。
［項目８］
通信網からフレームを受信し、受信されたフレームに対するメッセージ認証の結果に基づいてフレームが不正かを判定する第１判定と、受信されたフレームの態様と予め定められたルールとに基づいてフレームが不正かを判定する第２判定と、を行い、第１判定の結果と第２判定の結果との組み合わせに応じて、受信されたフレームに関する処理と受信されたフレームの送信元装置に関する処理の少なくとも一方を実行する、ことをコンピュータが実行する監視方法。
この監視方法によると、通信システムのセキュリティを向上させることができる。
［項目９］
通信網からフレームを受信し、受信されたフレームに対するメッセージ認証の結果に基づいてフレームが不正かを判定する第１判定と、受信されたフレームの態様と予め定められたルールとに基づいてフレームが不正かを判定する第２判定と、を行い、第１判定の結果と第２判定の結果との組み合わせに応じて、受信されたフレームに関する処理と受信されたフレームの送信元装置に関する処理の少なくとも一方を実行する、ことをコンピュータに実行させるためのコンピュータプログラム。
このコンピュータプログラムによると、通信システムのセキュリティを向上させることができる。
【００７４】
［第２実施例］
第２実施例の詳細な構成を説明する前にまず概要を述べる。コネクテッドカー等、インターネットへ常時接続される車両の普及に伴い、クラウド側で車両を常時監視し、クラウドから適切なサービスを車両へ提供することが考えられる。このようなクラウドサービスを利用する車両は、自車のセキュリティ状態をリアルタイムにクラウドへ伝える必要があるが、リアルタイム性を重視するほど通信量は増大する。そのため車両には、セキュリティ状態の検知結果に応じた適切な通信が求められる。
【００７５】
第２実施例では、ＭＡＣ検証の結果と、振る舞い検証の結果とに基づいて、車両のセキュリティ状態を判定し、車両のセキュリティ状態に応じて、適切なタイミングで、かつ、適切な内容をクラウドへ送信する車載ネットワークシステムを説明する。以下の図面において、第１実施例と同一または対応するブロックには、第１実施例と同一の符号を付している。また、第１実施例で説明済みの内容は適宜省略し、主に、第１実施例と異なる構成を説明する。
【００７６】
図８は、第２実施例の車載ネットワークシステムの構成を示す。車載ネットワークシステム１２のハードウェア構成は第１実施例と同様である。第２実施例では、車両１０は、外部通信網２８を介して車両監視サーバ１００と接続される。
【００７７】
車両監視サーバ１００は、車両１０のセキュリティ状態に応じたサービスを提供する。車両監視サーバ１００は、第１実施例においてＣＧＷ２０、ＥＣＵ１４等に実装された不正対策部３８に対応する機能を備えてもよい。例えば、車両監視サーバ１００は、車両１０から通報された車両１０のセキュリティ状態に応じて、ＥＣＵ１４のリプログラミングまたは鍵更新を車両１０に指示してもよい。なお、車両監視サーバ１００は、第１実施例のルール生成装置２９の機能を含む。
【００７８】
第２実施例の車載ネットワークシステム１２では、ＭＡＣを用いたメッセージ認証に対応するＥＣＵ１４に監視モジュールが導入される。監視モジュールが導入されたＥＣＵ１４は、ＣＡＮ２４を流れる不正フレーム（言い換えれば不正コマンド）を監視し、その監視結果を車両監視サーバ１００へ通報する監視装置として機能する。変形例として、（１）ＣＧＷ２０にのみ監視モジュールを導入する構成でもよく、（２）ＣＭＩ２２にのみ監視モジュールを導入する構成でもよく、（３）ＣＧＷ２０と、ＭＡＣを用いたメッセージ認証に対応するＥＣＵ１４とに監視モジュールを導入する構成でもよい。
【００７９】
図９は、図８のＥＣＵ１４の機能構成を示すブロック図である。ＥＣＵ１４は、フレーム受信部３０、フレーム送信部３２、ＭＡＣ検証部３４、振る舞い検証部３６、ルール更新部４６、コマンド実行部５６、フレーム生成部５８、通報部１１４を備える。図８のＣＧＷ２０またはＣＭＩ２２が監視モジュールを備える場合も、図９と同様の構成になる。
【００８０】
図９のＭＡＣ検証部３４、振る舞い検証部３６、ルール更新部４６、通報要否判定部１１２、通報部１１４は、監視モジュールとして処理部１１０を構成してもよい。また、図９のフレーム受信部３０、フレーム送信部３２、ＭＡＣ検証部３４、振る舞い検証部３６、ルール更新部４６、コマンド実行部５６、フレーム生成部５８は、第１実施例と同じ機能であるため説明を省略する。
【００８１】
通報部１１４は、ＣＡＮ２４から受信されたフレーム（以下「対象フレーム」とも呼ぶ。）をフレーム受信部３０から受信する。また、通報部１１４は、対象フレームに対するＭＡＣ検証の結果をＭＡＣ検証部３４から取得し、対象フレームに対する振る舞い検証の結果を振る舞い検証部３６から取得する。通報部１１４は、対象フレームに対するＭＡＣ検証の結果と振る舞い検証の結果の組み合わせに基づいて、車両監視サーバ１００へ通報する内容または通報の優先度を設定し、また、複数の対象フレーム間で、車両監視サーバ１００へ通報する内容または通報の優先度を変更する。実施例では、通報する内容と通報の優先度の両方を変更する。
【００８２】
通報部１１４は、受信フレーム記憶部４２、構成情報記憶部４８、解析部１２０、メッセージ生成部１２２、メッセージ出力部１２４を含む。
【００８３】
受信フレーム記憶部４２は、フレーム受信部３０により受信された複数のフレームを所定の記憶領域に記憶し、蓄積する。受信フレーム記憶部４２は、受信されてから所定時間が経過したフレームを記憶領域から順次消去しても良い。受信フレーム記憶部４２は、フレームのデータと、ＭＡＣ検証部３４による判定結果と振る舞い検証部３６による判定結果とを対応付けて蓄積してもよい。
【００８４】
構成情報記憶部４８は、ＣＡＮ２４の様々な構成要素に関する属性情報（ここでは「構成情報」と呼ぶ。）を記憶する。実施例の構成情報は、複数のＥＣＵ１４のＩＤと、複数のＥＣＵ１４のそれぞれが送信するフレームに含まれるコマンドのＩＤを含む。なお、構成情報は、コマンドのＩＤに代えて、フレームＩＤ（言い換えればＣＡＮ−ＩＤ）を含んでもよい。もしくは、構成情報は、コマンドのＩＤとともに、フレームのＩＤ（ＣＡＮ−ＩＤ）を含んでもよい。
【００８５】
また、実施例の構成情報は、複数のコマンドのＩＤと、各コマンドの送信頻度とを対応付けた情報を含む。コマンドの送信頻度は、送信元のＥＣＵが当該コマンドを含むフレームを送信する頻度（例えば単位時間あたりの送信個数）であってもよい。また、実施例の構成情報は、複数のコマンドのＩＤと、各コマンドに関連する他のコマンドのＩＤとを対応付けた情報を含む。特定のコマンドに関連する他のコマンドは、特定のコマンドと依存関係を有する他のコマンドでもよく、特定のコマンドと対になって送信される他のコマンドでもよい。例えば、車速制御コマンドに関連する他のコマンドは、ブレーキアクチュエータ制御コマンドでもよい。
【００８６】
解析部１２０は、対象フレームに対するＭＡＣ検証の結果と振る舞い検証の結果との組み合わせに基づいて、対象フレームの不正検出パターンを識別する。図１０は、不正検出パターンを示す。解析部１２０は、対象フレームの不正検出パターンとして、図１０に示す７つの不正検出パターンのうちいずれかを特定する。
【００８７】
パターン１とパターン５の識別方法を説明する。解析部１２０は、あるコマンドＩＤ（フレームＩＤでもよい）を含むフレームに対するＭＡＣ検証結果が正当（図１０における「ＯＫ」）を示すと共に、振る舞い検証結果が不正（図１０における「ＮＧ」）を示す場合、受信フレーム記憶部４２を参照して、そのコマンドＩＤを含むフレームの受信頻度を特定する。特定した受信頻度が、構成情報記憶部４８に記憶された当該コマンドＩＤの送信頻度と整合する（例えば、特定した受信頻度と当該コマンドＩＤの送信頻度との差異が所定の範囲内）の場合、パターン１と識別する。その一方、特定した受信頻度が、送信頻度を上回る場合（例えば、特定した受信頻度と当該コマンドＩＤの送信頻度との差異が所定の閾値を超過する場合）、パターン５と識別する。
【００８８】
このように識別する理由は、ＥＣＵが乗っ取られた場合（パターン１）は、送信頻度が変わらないが、不正コマンドが外部注入された場合（パターン５）は、正常なＥＣＵが送信するコマンドと外部注入されたコマンドの両方が存在することで受信頻度が高くなるからである。
【００８９】
パターン３とパターン４の識別方法を説明する。パターン３またはパターン４に分類されうる対象フレームは、ＭＡＣのコード値が付加されていないフレームであり、言い換えれば、ＭＡＣ検証部３４によるＭＡＣ検証の対象外となるフレームである。解析部１２０は、あるコマンドＩＤ（フレームＩＤでもよい）を含むフレームに対するＭＡＣ検証結果がなく（図１０における「ｎ／ａ」）、振る舞い検証結果が不正（図１０における「ＮＧ」）を示す場合、受信フレーム記憶部４２を参照して、そのコマンドＩＤを含むフレームの受信頻度を特定する。特定した受信頻度が、構成情報記憶部４８に記憶された当該コマンドＩＤの送信頻度と整合する場合、パターン３と識別する。その一方、特定した受信頻度が、送信頻度を上回る場合、パターン４と識別する。
【００９０】
解析部１２０は、対象フレームの不正検出パターンとしてパターン１またはパターン３を識別した場合、乗っ取られた可能性があるＥＣＵのＩＤを特定する。例えば、解析部１２０は、構成情報記憶部４８を参照して、対象フレームが示すコマンドＩＤに対応づけられたＥＣＵを、乗っ取られた可能性があるＥＣＵとして特定する。なお、ＥＣＵが乗っ取られていることは、当該ＥＣＵで想定外のプログラムが実行されていることを含む。
【００９１】
図９に戻り、メッセージ生成部１２２は、解析部１２０により識別された対象フレームの不正検出パターンに応じて、対象フレームに関する情報を車両監視サーバ１００へ通報するためのメッセージを生成する。このメッセージは、車両１０のセキュリティ状態を示す。メッセージ生成部１２２は、対象フレームの不正検出パターンに該当する図１０の通報内容および付加情報をメッセージに含める。
【００９２】
メッセージ生成部１２２は、上記メッセージをペイロードに設定したフレームであり、車両１０のセキュリティ状態（具体的には不正検出状態）を車両監視サーバ１００へ通報するための通報フレームを生成する。メッセージ生成部１２２は、上記メッセージを複数に分割し、分割後のメッセージをそれぞれ含む複数の通報フレームを生成してもよい。メッセージ出力部１２４は、メッセージ生成部１２２により生成された通報フレームをフレーム送信部３２へ出力し、フレーム送信部３２からＣＡＮ２４へ出力させる。通報フレームは、ＣＡＮ２４〜外部バス２６ｅ〜外部通信網２８を介して車両監視サーバ１００へ伝送される。
【００９３】
メッセージ内容の設定処理の詳細を説明する。対象フレームの不正検出パターンがパターン１であるとき、メッセージ生成部１２２は、図１０のパターン１の通報内容をメッセージに含める。また、メッセージ生成部１２２は、付加情報（Ａ）（Ｂ）（Ｃ）をメッセージに含める。なお、いずれのパターンにおいても、図１０の「通報内容」欄の文章に代えて、図１０の「想定される脅威」欄の文章をメッセージに含めてもよい。
【００９４】
具体的には、メッセージ生成部１２２は、ＭＡＣ検証と振る舞い検証の結果を付加情報（Ａ）としてメッセージに含める。また、メッセージ生成部１２２は、対象フレームが含むコマンドＩＤを付加情報（Ｂ）としてメッセージに含める。また、メッセージ生成部１２２は、解析部１２０により特定されたＥＣＵ（ここでは「不正ＥＣＵ」と呼ぶ。）のＩＤを付加情報（Ｃ）としてメッセージに含める。また、メッセージ生成部１２２は、構成情報記憶部４８を参照して、不正ＥＣＵに対応づけられたコマンドＩＤであり、すなわち、不正ＥＣＵが送信するコマンドＩＤを特定し、そのコマンドＩＤを付加情報（Ｃ）としてメッセージに含める。
【００９５】
対象フレームの不正検出パターンがパターン２であるとき、メッセージ生成部１２２は、付加情報として（Ａ）（Ｂ）のみをメッセージに含める。この理由は、ＭＡＣ検証と振る舞い検証のいずれも機能しており、パターン１の場合よりも問題が小さいからである（つもり、この場合、付加情報を減らすことによって、通信量の削減効果を高めている）。変形例として、パターン１と同様の付加情報（すなわち（Ａ）〜（Ｃ））をメッセージに含めてもよい。
【００９６】
次に、対象フレームの不正検出パターンがパターン６であるときの、メッセージ生成部１２２の処理を説明する。第１実施例でも言及したように、パターン６は、振る舞い検証が本来ＮＧになるべきところがＯＫになった可能性があり、すなわち、振る舞い検証ルールが不完全の可能性がある。メッセージ生成部１２２は、図１０のパターン６の通報内容をメッセージに含める。また、メッセージ生成部１２２は、付加情報（Ａ）（Ｂ）（Ｄ）（Ｅ）をメッセージに含める。
【００９７】
具体的には、メッセージ生成部１２２は、受信フレーム記憶部４２を参照して、対象フレームのフレームＩＤと同じＩＤが設定されたフレームであり、対象フレームより前に受信された所定個数（例えば１０個）のフレームを特定する。また、メッセージ生成部１２２は、受信フレーム記憶部４２を参照して、対象フレームのフレームＩＤと同じＩＤが設定されたフレームであり、対象フレームより後に受信された所定個数（例えば１０個）のフレームを特定する。メッセージ生成部１２２は、特定した各フレームに含まれるコマンドＩＤを付加情報（Ｄ）としてメッセージに含める。変形例として、メッセージ生成部１２２は、付加情報（Ｄ）として、対象フレームの前後で受信した所定個数のフレームの全体データをメッセージに含めてもよい。
【００９８】
また、メッセージ生成部１２２は、構成情報記憶部４８を参照して、対象フレームに含まれるコマンドに関連する他のコマンドのＩＤを特定し、他のコマンドのＩＤを付加情報（Ｅ）としてメッセージに含める。変形例として、メッセージ生成部１２２は、付加情報（Ｅ）として、上記他のコマンドのＩＤを含む所定個数のフレームの全体データをメッセージに含めてもよい。
【００９９】
なお、メッセージ生成部１２２は、通報内容および付加情報（Ａ）（Ｂ）を含む第１メッセージと、付加情報（Ｄ）（Ｅ）を含む第２メッセージとを別個に生成する。このように生成する理由は、後述するように、第１メッセージの通報タイミングと、第２メッセージの通報タイミングとが異なるからである。
【０１００】
メッセージ生成部１２２は、対象フレームの不正検出パターンがパターン７であるとき、フレームを生成しない。ただし、不正検出パターンがパターン７である状態が所定時間以上継続する場合、メッセージ生成部１２２は、セキュリティに異常がないことを示すフレームを定期的（例えば１分経過毎に）に生成してもよい。
【０１０１】
次に、通報の優先度の設定処理の詳細を説明する。メッセージ生成部１２２は、対象フレームの不正検出パターンに応じた優先度（図１０）を通報フレームに設定する。メッセージ生成部１２２は、対象フレームの不正検出パターンがパターン１または５の場合、優先度を高に設定し、すなわち、通報フレーム以外の他の通信より高い優先度を通報フレームに設定する。この理由は、パターン１または５は、ＭＡＣ鍵が漏洩もしくはＥＣＵが乗っ取られている可能性が高いため、早急に対処すべきだからである。
【０１０２】
また、対象フレームの不正検出パターンがパターン２〜４の場合、メッセージ生成部１２２は、優先度を低に設定し、すなわち、通報フレーム以外の他の通信より低い優先度を通報フレームに設定する。この理由は、パターン２〜４では、不正コマンドを問題なく検出できているからである。また、この理由は、パターン３および４の判定対象フレームにはＭＡＣが付与されず、ＭＡＣが付与されない判定対象フレームは、運転上重要性が低いからである。
【０１０３】
また、対象フレームの不正検出パターンがパターン６の場合、メッセージ生成部１２２は、通報内容および付加情報（Ａ）（Ｂ）を含む第１メッセージのフレームの優先度を中に設定する。すなわち、通報フレーム以外の他の通信と同程度の優先度を通報フレームに設定する。この理由は、ＭＡＣ検証がＮＧであるため、不正コマンドによる被害は回避できているが、振る舞い検証ではＯＫとなっているため、振る舞い検証のルールを改善すべきだからである。また、メッセージ生成部１２２は、付加情報（Ｄ）（Ｅ）を含む第２メッセージのフレームの優先度を低に設定する。この理由は、付加情報（Ｄ）（Ｅ）はデータ量が多いからである。ただし、ＣＡＮ２４などの通信量が空いている場合には、付加情報（Ｄ）（Ｅ）を含む第２メッセージのフレームの優先度を中に設定してもよい。
【０１０４】
メッセージ生成部１２２は、優先度高に設定された通報フレームに、ＣＡＮ２４で優先的に伝送されるＩＤを付与してもよい。メッセージ出力部１２４は、優先度高に設定された通報フレームを、他のフレームが送信中か否かに関わらず、即時にＣＡＮ２４へ出力してもよい。また、メッセージ生成部１２２は、外部通信網２８と接続されたＩＶＩ装置１６に対して、優先度高に設定され通報フレームを、他の通信に優先して送信するように指示するデータを付与してもよい。他の通信は、車両１０の自動運転に必要な情報の送受信を含んでもよく、例えば、ダイナミックマップや標識情報のアップロードおよびダウンロードを含んでもよい。
【０１０５】
メッセージ生成部１２２は、優先度中に設定された通報フレームに、ＣＡＮ２４で他の種類のフレームと同等の優先度で扱われるＩＤを付与してもよい。メッセージ出力部１２４は、優先度中に設定された通報フレームを、他のフレームが送信されていない間にＣＡＮ２４へ出力してもよい。また、メッセージ生成部１２２は、優先度中に設定された通報フレームに、他の通信と同等に扱って送信する（例えば早い者勝ちで送信する）ようにＩＶＩ装置１６に指示するデータを付与してもよい。
【０１０６】
メッセージ生成部１２２は、優先度低に設定された通報フレームに、ＣＡＮ２４で他の種類のフレームより低い優先度で扱われるＩＤを付与してもよい。メッセージ出力部１２４は、優先度低に設定された通報を、イグニッションオフまたは電源オフ等、通信の空き時間にＣＡＮ２４へ出力してもよい。また、メッセージ生成部１２２は、優先度低に設定された通報フレームに、他の通信より低い優先度で送信するようにＩＶＩ装置１６指示するデータを付与してもよい。例えば、メッセージ生成部１２２は、優先度低に設定された通報フレームに、通信処理のアイドル中に車両監視サーバ１００へ送信するようにＩＶＩ装置１６に指示するデータを付与してもよい。
【０１０７】
なお、メッセージ生成部１２２は、優先度が高以外に設定された通報フレームを、第１実施例と同様に、ログとして不揮発メモリに保存してもよい。メッセージ出力部１２４は、ＣＡＮ２４が空いた場合等、通報フレームの送信が可能になった場合に、不揮発メモリに保存された通報フレームを読み出し、通報フレームをＣＡＮ２４へ出力してもよい。
【０１０８】
車両１０が複数種類の通信網に接続されるケースを説明する。例えば、車両１０は、複数の通信装置を備えてもよく、例えば、ＩＶＩ装置１６、ＴＣＵ（Telematics. Communication Unit）（不図示）、緊急通信ユニット（不図示）を備えてもよい。ＩＶＩ装置１６は、ＷｉＦｉ（登録商標）に接続されてもよい。また、ＴＣＵは、４Ｇ／ＬＴＥ（Long Term Evolution）（登録商標）ネットワークに接続されてもよい。また、緊急通信ユニットは、３Ｇネットワークに接続されてもよい。上述に挙げた通信網および各装置との組合せは一例であり、その他にも組み合わせることが可能であることは、当業者にとっては理解されよう。
【０１０９】
このような車両１０において、通報の優先度が高の場合、緊急通信ユニットを使用して通報処理を実行してもよい。また、通報の優先度が中の場合、ＴＣＵを使用して通報処理を実行してもよい。また、通報の優先度が低の場合、ＩＶＩ装置１６を使用して通報処理を実行してもよい。あるいは、通報の優先度が低の場合、複数種類の通信網のうち空いている通信網を選択して通報処理を実行してもよい。その一方、通報の優先度が高の場合、他の通信による高速な通信網の使用を中止させ、その高速な通信網を使用して通報処理を実行してもよい。上述に挙げた優先度の設定および各処理との組合せは一例であり、その他にも組み合わせることが可能であることは、当業者にとっては理解されよう。
【０１１０】
以上の構成によるＥＣＵ１４の動作を説明する。図１１は、図８のＥＣＵ１４の動作を示すフローチャートである。フレーム受信部３０は、ＣＡＮ２４からフレームを受信する（Ｓ７０）。ＭＡＣ検証部３４は、受信された対象フレームに対するＭＡＣ検証を実行して、対象フレームが正当か不正かを判定する（Ｓ７２）。振る舞い検証部３６は、受信された対象フレームに対する振る舞い検証を実行して、対象フレームが正当か不正かを判定する（Ｓ７４）。
【０１１１】
ＭＡＣ検証と振る舞い検証の両方で対象フレームが正当と判定された場合（Ｓ７６のＹ）、通報部１１４のメッセージ出力部１２４は、対象フレームをコマンド実行部５６に渡す。コマンド実行部５６は、対象フレームで指定されたコマンドにしたがいデータ処理を実行する（Ｓ７８）。
【０１１２】
また、ＭＡＣ検証と振る舞い検証の両方で対象フレームが正当と判定される状態が継続する場合、メッセージ生成部１２２は、車両１０のセキュリティ状態が正常であることを示すフレームを定期的に生成する。メッセージ出力部１２４は、当該フレームを車両監視サーバ１００へ送信する。
【０１１３】
ＭＡＣ検証と振る舞い検証の少なくとも一方で対象フレームが不正と判定された場合（Ｓ７６のＮ）、通報部１１４の解析部１２０は、対象フレームの不正検出パターンとして、図１０の７つのパターンの中から１つのパターンを特定する（Ｓ８０）。メッセージ生成部１２２は、特定された対象フレームの不正検出パターンにしたがって、車両監視サーバ１００へ通報するメッセージと、通報の優先度を設定する（Ｓ８２）。メッセージ出力部１２４は、メッセージ生成部１２２により生成されたメッセージを含む通報フレームを、メッセージ生成部１２２により設定された優先度にしたがって車両監視サーバ１００へ送信する（Ｓ８４）。このように、通報部１１４は、不正が検出されたフレームごとに、その不正検出パターンに応じて、通報フレームの内容および優先度を変更する。
【０１１４】
対象フレームの不正検出パターンがパターン１または５の場合（優先度高）、車両１０の通信部（不図示）は、自動運転のためのダイナミックマップのダウンロードおよびアップロード（以下「他の通信」と呼ぶ。）より優先して通報フレームを処理し、通報フレームを車両監視サーバ１００へ送信してもよい。また、対象フレームの不正検出パターンがパターン６の場合、上記通信部は、他の通信と同程度の優先度（例えば早い者勝ち）で通報フレームを処理してもよい。また、対象フレームの不正検出パターンがパターン２〜４の場合、上記通信部は、他の通信を処理中であれば、通報フレームの処理を後回しにしてもよい。
【０１１５】
第２実施例のＥＣＵ１４によると、車両１０（言い換えれば車載ネットワークシステム１２内の各装置）のセキュリティ状態に応じた適切なタイミングで、かつ、適切な内容を車両監視サーバ１００へ通報することができる。
【０１１６】
以上、本発明を第２実施例をもとに説明した。この実施例は例示であり、それらの各構成要素あるいは各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１１７】
第１変形例を説明する。本変形例は、第１実施例の第１変形例に対応する。振る舞い検証部３６は、対象フレームの態様と、予め定められた複数のルールとに基づいて、複数の中間判定を実行し、複数の中間判定の結果に応じて、振る舞い検証の結果を導出する。振る舞い検証部３６は、振る舞い検証の結果とともに、複数の中間判定の結果を通報部１１４へ出力する。メッセージ生成部１２２は、複数の中間判定結果の中にルールに不適合であることを示す結果が存在する場合、複数の中間判定結果を含む通報フレームを生成する。メッセージ出力部１２４は、上記の通報フレームを車両監視サーバ１００へ送信する。また、メッセージ生成部１２２は、ルールに不適合であることを示す中間判定結果の数に応じて、通報の優先度を変更する。
【０１１８】
具体例として、振る舞い検証部３６は、１つの対象フレームのデータを、複数の検知パラメータＡ〜Ｅのそれぞれで評価し、各検知パラメータによる中間判定結果（ルールに適合するか否かの判定結果）を生成してもよい。振る舞い検証部３６は、複数の中間判定結果のうちＮＧとなった中間判定結果の個数が３以上であれば、対象フレームの最終判定結果を不正としてもよい。ＮＧとは、例えば、判定対象フレームのデータが、個々の中間判定のルールに不適合であることを含む。
【０１１９】
１）フレーム単位での通報処理を説明する。メッセージ生成部１２２は、複数の中間判定結果の中にルール不適合を示す結果が１つ以上存在する場合、全ての中間判定結果を含む通報フレームを生成してもよい。中間判定結果は、中間判定で使用されたパラメータの情報を含んでよく、また、中間判定で正否が判定されたフレームのデータを含んでもよい。また、メッセージ生成部１２２は、中間判定結果がＮＧになった数に応じて、車両監視サーバ１００への通報の優先度を変更してもよい。例えば、５つの中間判定が行われる場合、中間判定結果のＮＧ数が１または２であれば実施例の優先度低を設定してもよい。また、中間判定結果のＮＧ数が３または４であれば実施例の優先度中を設定し、中間判定結果のＮＧ数が５であれば優先度高を設定してもよい。
【０１２０】
次に、２）コマンド単位での通報処理を説明する。メッセージ生成部１２２は、コマンドＩＤごと（もしくはフレームＩＤごと）に、振る舞い検証部３６による中間判定結果のＮＧ数の累計値（ここでは「コマンド別中間ＮＧ累計数」と呼ぶ。）を記憶してもよい。メッセージ生成部１２２は、コマンド別中間ＮＧ累計数が第１閾値（例えば２０回）を超えた場合に、コマンド別中間ＮＧ累計数が第１閾値を超えた旨の情報とコマンドＩＤとを含む通報フレームを生成し、通報の優先度を低に設定してもよい。また、メッセージ生成部１２２は、コマンド別中間ＮＧ累計数が第２閾値（例えば４０回）を超えた場合に、コマンド別中間ＮＧ累計数が第２閾値を超えた旨の情報とコマンドＩＤとを含む通報フレームを生成し、通報の優先度を中に設定してもよい。
【０１２１】
次に、３）車両１０全体としての通報処理を説明する。メッセージ生成部１２２は、コマンドＩＤに関係なく、複数のコマンド（複数の対象フレーム）について振る舞い検証部３６から入力された中間判定結果のＮＧ数の累計値（ここでは「全体中間ＮＧ累計数」と呼ぶ。）を記憶してもよい。メッセージ生成部１２２は、全体中間ＮＧ累計数が第１閾値（例えば１００回）を超えた場合に、全体中間ＮＧ累計数が第１閾値を超えた旨の情報を含む通報フレームを生成し、通報の優先度を低に設定してもよい。また、メッセージ生成部１２２は、全体中間ＮＧ累計数が第２閾値（例えば２００回）を超えた場合に、全体中間ＮＧ累計数が第２閾値を超えた旨の情報を含む通報フレームを生成し、通報の優先度を中に設定してもよい。
【０１２２】
第２変形例を説明する。第１実施例の任意の構成要素と第２実施例の任意の構成要素の組み合わせが可能である。例えば、第１実施例に記載したように、車両１０のＣＧＷ２０は、ＭＡＣ検証および振る舞い検証により不正と判定したフレームを破棄または無効化する機能を備えてもよい。上記第２実施例では、ＥＣＵ１４の構成情報記憶部４８は、コマンドＩＤと、そのコマンドを送信するＥＣＵ−ＩＤとを対応付けた構成情報を記憶する。変形例として、構成情報記憶部４８は、自機とは異なるＣＡＮ２４のバスに接続されたＥＣＵが送信するコマンドについて、そのコマンドＩＤとＣＧＷ２０のＩＤとを対応付けた構成情報を記憶してもよい。この理由は、自機とは異なるＣＡＮ２４のバスに接続されたＥＣＵから送信されるフレームは、ＣＧＷ２０により中継されるからである。
【０１２３】
第２変形例の解析部１２０は、対象フレームの不正検出パターンがパターン１またはパターン３であり、かつ、その対象フレームがＣＧＷ２０を経由して受信されたものである場合、乗っ取られた可能性があるＥＣＵとして、ＣＧＷ２０のＩＤを特定する。具体的には、構成情報記憶部４８の構成情報は、当該対象フレームに含まれるコマンドＩＤとＣＧＷ２０のＩＤとを対応付けている。解析部１２０は、その構成情報を参照することにより、対象フレームがＣＧＷ２０を経由して受信されたものである場合、ＣＧＷ２０のＩＤを特定する。メッセージ生成部１２２は、ＣＧＷ２０が乗っ取られた可能性があることを示す通報フレームを生成する。
【０１２４】
既述したように、ＣＧＷ２０が正常に動作していれば、不正フレームを破棄または無効化する。そのため、ＣＧＷ２０により中継されたフレームの不正がＥＣＵ１４で検出された場合、ＣＧＷ２０の動作が異常であり、乗っ取られた可能性がある。本変形例の態様によると、ＣＧＷ２０の異常を精度よく検出して、車両監視サーバ１００へ通報することができる。なお、第２変形例の構成は、ＣＭＩ２２に監視モジュールが導入される場合も適用可能である。
【０１２５】
第２実施例および変形例に記載の技術は、以下の項目によって特定されてもよい。
［項目１］
通信網からフレームを受信する受信部と、
前記フレームに対するメッセージ認証の結果に基づいて前記フレームが不正かを判定する第１判定と、前記フレームの態様と予め定められたルールとに基づいて前記フレームが不正かを判定する第２判定とを行い、前記第１判定の結果と前記第２判定の結果との組み合わせに応じて、外部装置へ通報する内容または通報の優先度の少なくとも一方を変更する処理部と、
を備える監視装置。
この監視装置によると、自装置のセキュリティ状態に応じた適切な内容またはタイミングで、外部装置への通報を実行することができる。
［項目２］
前記第１判定により判定対象フレームが正当と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合、前記処理部は、前記判定対象フレームに関する情報を通報する優先度を、他の通信より高い優先度に設定する、
項目１に記載の監視装置。
この態様によると、メッセージ認証の鍵が漏洩している危険がある場合に、外部装置への通報を迅速に実行することができる。
［項目３］
前記第１判定により判定対象フレームが不正と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合、前記処理部は、前記判定対象フレームに関する情報を通報する優先度を、他の通信より低い優先度に設定する、
項目１または２に記載の監視装置。
この態様によると、第１判定と第２判定のいずれでも判定対象フレームが不正と判定された場合、不正フレームによる被害は回避できているため、他の通信を阻害してしまうことを抑制した通報を実現できる。
［項目４］
前記第１判定により判定対象フレームが不正と判定され、前記第２判定により前記判定対象フレームが正当と判定された場合、前記処理部は、前記判定対象フレームに関する情報を通報する優先度を、前記第１判定により判定対象フレームが正当と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合より低い優先度であり、かつ、前記第１判定により判定対象フレームが不正と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合より高い優先度に設定する、
項目１から３のいずれかに記載の監視装置。
この態様によると、第１判定により不正が検出されることで、不正フレームによる被害は回避できているが、第２判定のルールが不完全である可能性があるため、中程度の優先度での通報を実現できる。
［項目５］
前記第１判定により判定対象フレームが正当と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合、前記処理部は、少なくとも前記判定対象フレームに含まれるコマンドの情報および前記判定対象フレームの送信元装置の情報を通報する、
項目１または２に記載の監視装置。
この態様によると、不正が検出されたコマンドに加えて、乗っ取られた可能性があるＥＣＵの情報を外部装置へ通報することにより、外部装置側での適切なデータ処理を支援することができる。
［項目６］
前記第１判定により判定対象フレームが正当と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合であって、かつ、前記判定対象フレームと同じＩＤのフレームの受信頻度が所定値を超える場合、前記処理部は、少なくとも前記判定対象フレームに含まれるコマンドの情報を通報する、
項目１または２に記載の監視装置。
この態様によると、不正なフレームが外部から注入されたことを検出して、適切な内容を通報することができる。
［項目７］
前記第１判定により判定対象フレームが不正と判定され、前記第２判定により前記判定対象フレームが不正と判定された場合、前記処理部は、少なくとも前記判定対象フレームに含まれるコマンドの情報を通報する、
項目１から３のいずれかに記載の監視装置。
この態様によると、監視装置では判定対象フレームの不正を正しく検知できているため、通報内容を不正が検出されたコマンドの情報に抑えることで、通信トラフィックの増加を抑制することができる。
［項目８］
前記第１判定により判定対象フレームが不正と判定され、前記第２判定により前記判定対象フレームが正当と判定された場合、前記処理部は、少なくとも前記判定対象フレームに含まれるコマンドの情報および当該コマンドに関連する他のコマンドの情報を通報する、
項目１から４のいずれかに記載の監視装置。
この態様によると、ルールが不完全である可能性がある場合に、ルールの改善を支援することができる。
［項目９］
前記第１判定の対象外となったフレームが前記第２判定により不正と判定された場合であって、かつ、前記フレームと同じＩＤのフレームの受信頻度が所定値に整合する場合、前記処理部は、他の通信より低い優先度で、少なくとも前記フレームに含まれるコマンドの情報および前記フレームの送信元装置の情報を通報する、
項目１から４のいずれかに記載の監視装置。
この態様によると、メッセージ認証用の鍵を有しない電子機器が乗っ取られたことを検出して、適切な優先度で適切な内容を通報することができる。
［項目１０］
前記第１判定の対象外となったフレームが前記第２判定により不正と判定された場合であって、かつ、前記フレームと同じＩＤのフレームの受信頻度が所定値を超える場合、前記処理部は、他の通信より低い優先度で、少なくとも前記フレームに含まれるコマンドの情報を通報する、
項目１から４のいずれかに記載の監視装置。
この態様によると、メッセージ認証用のコードを持たないフレームであり、不正なフレームが外部から注入されたことを検出して、適切な優先度で適切な内容を通報することができる。
［項目１１］
前記処理部は、判定対象フレームの態様と、予め定められた複数のルールとに基づいて、複数の中間判定を実行し、複数の中間判定の結果に応じて前記第２判定の結果を導出し、
前記処理部は、前記複数の中間判定の結果の中にルールに不適合であることを示す結果が存在する場合、前記複数の中間判定の結果を外部装置へ通報し、前記ルールに不適合であることを示す結果の数に応じて、通報の優先度を変更する、
項目１から１０のいずれかに記載の監視装置。
この監視装置によると、振る舞い検証によるセキュリティの強度を高めることができる。
［項目１２］
通信網からフレームを受信し、
前記フレームに対するメッセージ認証の結果に基づいて前記フレームが不正かを判定する第１判定と、
前記フレームの態様と予め定められたルールとに基づいて前記フレームが不正かを判定する第２判定と、を行い、
前記第１判定の結果と前記第２判定の結果との組み合わせに応じて、外部装置へ通報する内容または通報の優先度の少なくとも一方を変更する、
ことをコンピュータが実行する監視方法。
この監視方法によると、自装置のセキュリティ状態に応じた適切な内容またはタイミングで、外部装置への通報を実行することができる。
［項目１３］
通信網からフレームを受信し、
前記フレームに対するメッセージ認証の結果に基づいて前記フレームが不正かを判定する第１判定と、
前記フレームの態様と予め定められたルールとに基づいて前記フレームが不正かを判定する第２判定と、を行い、
前記第１判定の結果と前記第２判定の結果との組み合わせに応じて、外部装置へ通報する内容または通報の優先度の少なくとも一方を変更する、
ことをコンピュータに実行させるためのコンピュータプログラム。
このコンピュータプログラムによると、自装置のセキュリティ状態に応じた適切な内容またはタイミングで、外部装置への通報を実行することができる。
【０１２６】
上述した実施例および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施例および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施例および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
【符号の説明】
【０１２７】
１０  車両、  １２  車載ネットワークシステム、  １４  ＥＣＵ、  ２４  ＣＡＮ、  ３０  フレーム受信部、  １００  車両監視サーバ、  １１０  処理部、  １１４  通報部、  １２０  解析部、  １２２  メッセージ生成部、  １２４  メッセージ出力部。
【図１】
2018160786.tif 000003
【図２】
2018160786.tif 000004
【図３】
2018160786.tif 000005
【図４】
2018160786.tif 000006
【図５】
2018160786.tif 000007
【図６】
2018160786.tif 000008
【図７】
2018160786.tif 000009
【図８】
2018160786.tif 000010
【図９】
2018160786.tif 000011
【図１０】
2018160786.tif 000012
【図１１】
2018160786.tif 000013