(57)【特許請求の範囲】
【請求項１】
車載ネットワーク向けの制御装置を前記車載ネットワークに接続していない状態で、前記制御装置のセキュリティを診断するセキュリティ検査システムであって、
前記制御装置のセキュリティを診断するための、不正信号を含むランダムなテスト信号を送信するテスト信号送信部、及び、前記テスト信号による前記制御装置の処理結果に基づいて前記不正信号を特定する診断部、を有するセキュリティ検査ユニットと、
前記制御装置の処理結果に関連する情報を取得する処理情報取得部、前記テスト信号に基づく前記制御装置の処理結果の異常を検出する異常検出部、及び、検出された前記異常の情報を出力する異常情報出力部、を有する機能評価ユニットと、
を備え、
前記機能評価ユニットは、前記制御装置が前記車載ネットワーク上で置かれ得る状態をテスト条件として設定し、前記制御装置に送信するテスト条件設定部を備える、車載ネットワーク向けの制御装置のセキュリティ検査システム。
【請求項２】
前記セキュリティ検査ユニットは、直前までの検査結果に基づいて、以降送信される前記ランダムなテスト信号を設定するテスト信号適合部を備える、請求項１に記載のセキュリティ検査システム。
【請求項３】
前記セキュリティ検査ユニットの前記テスト信号送信部は、前記制御装置と併せて前記機能評価ユニットに前記テスト信号を送信し、前記機能評価ユニットの前記異常情報出力部は、正常であった前記処理結果に対応する前記テスト信号を除外して、前記異常となった前記処理結果に対応する前記テスト信号の情報を出力する、請求項１又は２に記載のセキュリティ検査システム。
【請求項４】
前記機能評価ユニットの前記異常情報出力部は、前記セキュリティ検査ユニットに前記異常の情報を送信する、請求項１〜３のいずれか１項に記載のセキュリティ検査システム。
【請求項５】
前記機能評価ユニットの前記異常情報出力部は、前記機能評価ユニットに設けられた記憶部に前記異常の情報を記憶させる、請求項１〜３のいずれか１項に記載のセキュリティ検査システム。
【請求項６】
前記車載ネットワークが、ＣＡＮ（Controller  Area  Network）、ＬＩＮ（Local  Interconnect  Network）、ＦｌｅｘＲａｙ、ＭＯＳＴ（Media  Oriented  Systems  Transport）、ＣＡＮ−ＦＤ（ＣＡＮ  with  Flexible  Data  rate）、又は、Ａｕｔｏｍｏｔｖｅ  Ｅｔｈｅｒｎｅｔである、請求項１〜５のいずれか１項に記載のセキュリティ検査システム。
【請求項７】
前記機能評価ユニットの前記異常検出部は、前記制御装置の処理結果として出力される出力信号の送信周波数が想定される周波数を超える場合に、前記処理結果の異常を検出する、請求項１〜６のいずれか１項に記載のセキュリティ検査システム。
【請求項８】
前記機能評価ユニットの前記異常検出部は、前記制御装置の処理結果として出力される出力信号又は入力される入力信号としてのアナログ信号又はデジタル信号の電圧値が想定される上限を超え又は下限を下回る場合に、前記処理結果の異常を検出する、請求項１〜６のいずれか１項に記載のセキュリティ検査システム。
【請求項９】
前記機能評価ユニットの前記異常検出部は、前記制御装置の処理結果として出力される出力信号又は入力される入力信号としてのアナログ信号又はデジタル信号の周波数が想定される周波数を超える場合に、前記処理結果の異常を検出する、請求項１〜６のいずれか１項に記載のセキュリティ検査システム。
【請求項１０】
前記機能評価ユニットの前記異常検出部は、前記制御装置の処理結果に基づいて表示制御が行われる表示装置を撮影した撮像情報に基づいて、前記処理結果の異常を検出する、請求項１〜６のいずれか１項に記載のセキュリティ検査システム。
【請求項１１】
前記機能評価ユニットの前記異常検出部は、前記撮像情報に基づいて前記表示装置の矛盾する表示を検出した場合に、前記処理結果の異常を検出する、請求項１０に記載のセキュリティ検査システム。
【請求項１２】
前記機能評価ユニットの前記異常検出部は、前記制御装置の処理結果に関連する所定の値の単位時間当たりの変化量が想定される闇値を超える場合に、前記処理結果の異常を検出する、請求項１〜６のいずれか１項に記載のセキュリティ検査システム。
【請求項１３】
前記機能評価ユニットの前記異常検出部は、前記制御装置の処理結果として、前記制御装置内のメモリアドレスに含まれる変更不可能な値が上書きされた場合に、前記処理結果の異常を検出する、請求項１〜６のいずれか１項に記載のセキュリティ検査システム。
【請求項１４】
車載ネットワーク向けの制御装置を前記車載ネットワークに接続していない状態で、前記制御装置のセキュリティを診断するセキュリティ検査方法であって、
機能評価ユニットが、前記制御装置が前記車載ネットワーク上で置かれ得る状態をテスト条件として設定し、前記制御装置に送信するステップと、
セキュリティ検査ユニットが、前記制御装置のセキュリティを診断するための、不正信号を含むランダムなテスト信号を送信するステップと、
前記機能評価ユニットが、前記制御装置の処理結果に関連する情報を取得するステップと、
前記機能評価ユニットが、前記テスト信号に基づく前記制御装置の処理結果の異常を検出するステップと、
前記機能評価ユニットが、検出された前記異常の情報を記憶又は前記セキュリティ検査ユニットに送信するステップと、
前記セキュリティ検査ユニットが、前記テスト信号による前記制御装置の処理結果に基づいて前記不正信号を特定するステップと、
を含む、車載ネットワーク向けの制御装置のセキュリティ検査方法。
【請求項１５】
車載ネットワーク向けの制御装置を前記車載ネットワークに接続していない状態で、前記制御装置のセキュリティを診断する、車載ネットワーク向けの制御装置の機能評価装置であって、
前記制御装置が前記車載ネットワーク上で置かれ得る状態をテスト条件として設定し、前記制御装置に送信するテスト条件設定部と、
前記制御装置の処理結果に関連する情報を取得する処理情報取得部と、
前記テスト条件下で、前記制御装置のセキュリティを診断するセキュリティ検査ユニットから前記車載ネットワークを介して前記制御装置に送信された、不正信号を含むランダムなテスト信号による前記制御装置の処理結果の異常を検出する異常検出部と、
検出された前記異常の情報を出力する異常情報出力部と、
を備えた、車載ネットワーク向けの制御装置の機能評価装置。
【請求項１６】
コンビュータにより、
車載ネットワーク向けの制御装置を前記車載ネットワークに接続していない状態で、前記制御装置が前記車載ネットワーク上で置かれ得る状態をテスト条件として設定し、前記制御装置に送信するテスト条件設定部と、
前記制御装置の処理結果に関連する情報を取得する処理情報取得部と、
前記テスト条件下で、前記制御装置のセキュリティを診断するセキュリティ検査ユニットから前記車載ネットワークを介して前記制御装置に送信された、不正信号を含むランダムなテスト信号による前記制御装置の処理結果の異常を検出する異常検出部と、
検出された前記異常の情報を出力する異常情報出力部と、
の機能を実現させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、車載ネットワーク向けの制御装置のセキュリティ検査を行うセキュリティ検査システム及びセキュリティ検査方法、並びに、当該セキュリティ検査システムに利用可能な機能評価装置及びプログラムに関する。
【背景技術】
【０００２】  従来、ソフトウェアの脆弱性を発見するための検査方法として、不正信号を含むランダムなテスト信号を、検査対象のソフトウェアが実行され得る装置に入力し、その際の装置の動作を監視する方法が知られている。かかる検査方法としては、例えば、ファジングテストが挙げられる。ファジングテストは、ソフトウェアの内部構造を知らない、いわゆるブラックボックスの状態で行われる検査方法であり、検査装置は、テスト信号をランダムに大量に検査対象の装置に送信し、当該装置による演算処理の結果を受けて不正信号を特定する等により、ソフトウェアの脆弱性を発見する（特許文献１及び２を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２２９３０１号公報
【特許文献２】特開２０１５−７５８０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】  ここで、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に代表される車載の通信ネットワークでは、ネットワーク上の各制御装置（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）が適宜のタイミングでネットワーク上にメッセージ（ＣＡＮメッセージ）を送信するようになっている。つまり、このようなネットワーク上のＥＣＵは、検査装置からネットワークを介して取得したテスト信号に基づき演算処理を行った後、当該テスト信号に対応して検査装置に対して応答を返すようには構成されていない。したがって、かかる検査装置は、車載ネットワーク向けのＥＣＵに対して適用することが困難であった。【０００５】  さらに、仮にＥＣＵがテスト信号に対応して検査装置に対して検査結果についての応答を返すように構成されていたとしても、実際にＥＣＵが周辺機器や他のＥＣＵとの間で異常な信号のやり取りをしていないかを把握することは困難であった。【０００６】  本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ＥＣＵに改変を加えることなく、ランダムなテスト信号を用いてＥＣＵのセキュリティ検査を実行可能な、新規かつ改良されたセキュリティ検査システム及びセキュリティ検査方法、並びに、当該セキュリティ検査システムに利用可能な機能評価装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある観点によれば、車載ネットワーク向けの制御装置を車載ネットワークに接続していない状態で、制御装置のセキュリティを診断するセキュリティ検査システムであって、車載ネットワーク向けの制御装置のセキュリティを診断するための、不正信号を含むランダムなテスト信号を送信するテスト信号送信部、及び、テスト信号による制御装置の処理結果に基づいて不正信号を特定する診断部、を有するセキュリティ検査ユニットと、制御装置の処理結果に関連する情報を取得する処理情報取得部、テスト信号に基づく制御装置の処理結果の異常を検出する異常検出部、及び、検出された異常の情報を出力する異常情報出力部、を有する機能評価ユニットと、を備え、機能評価ユニットは、制御装置が車載ネットワーク上で置かれ得る状態をテスト条件として設定し、制御装置に送信するテスト条件設定部を備えた、車載ネットワーク向けの制御装置のセキュリティ検査システムが提供される。
【０００８】  本発明に係るセキュリティ検査システムによれば、セキュリティ検査ユニットとは別に従来から使用されている、制御装置（ＥＣＵ）による処理結果の機能評価を行う機能評価ユニットが、セキュリティ検査ユニットのセキュリティ検査に用いられ得る異常の情報を出力する異常情報出力部を備える。このため、制御装置に改変を加えることなく、セキュリティ検査ユニットは、機能評価ユニットの異常情報出力部が出力する異常情報を用いて、制御装置のセキュリティを診断することができる。【０００９】  セキュリティ検査ユニットは、直前までの検査結果に基づいて、以降送信されるランダムなテスト信号を設定するテスト信号適合部を備えてもよい。【００１１】  セキュリティ検査ユニットのテスト信号送信部は、制御装置と併せて機能評価ユニットにテスト信号を送信し、機能評価ユニットの異常情報出力部は、正常であった処理結果に対応するテスト信号を除外して、異常となった処理結果に対応するテスト信号の情報を出力してもよい。【００１２】  機能評価ユニットの異常情報出力部は、セキュリティ検査ユニットに異常の情報を送信してもよい。【００１３】  機能評価ユニットの異常情報出力部は、機能評価ユニットに設けられた記憶部に異常の情報を記憶させてもよい。【００１４】  車載ネットワークが、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、ＦｌｅｘＲａｙ、ＭＯＳＴ（Ｍｅｄｉａ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍｓ  Ｔｒａｎｓｐｏｒｔ）、ＣＡＮ−ＦＤ（ＣＡＮ  ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｄａｔａ  ｒａｔｅ）、又は、Ａｕｔｏｍｏｔｉｖｅ  Ｅｔｈｅｒｎｅｔであってもよい。【００１５】  機能評価ユニットの異常検出部は、制御装置の処理結果として出力される出力信号の送信周波数が想定される周波数を超える場合に、処理結果の異常を検出してもよい。【００１６】  機能評価ユニットの異常検出部は、制御装置の処理結果として出力される出力信号又は入力される入力信号としてのアナログ信号又はデジタル信号の電圧値が想定される上限を超え又は下限を下回る場合に、処理結果の異常を検出してもよい。【００１７】  機能評価ユニットの異常検出部は、制御装置の処理結果として出力される出力信号又は入力される入力信号としてのアナログ信号又はデジタル信号の周波数が想定される周波数を超える場合に、処理結果の異常を検出してもよい。【００１８】  機能評価ユニットの異常検出部は、制御装置の処理結果に基づいて表示制御が行われる表示装置を撮影した撮像情報に基づいて、処理結果の異常を検出してもよい。【００１９】  機能評価ユニットの異常検出部は、撮像情報に基づいて表示装置の矛盾する表示を検出した場合に、処理結果の異常を検出してもよい。【００２０】  機能評価ユニットの異常検出部は、制御装置の処理結果に関連する所定の値の単位時間当たりの変化量が想定される閾値を超える場合に、処理結果の異常を検出してもよい。【００２１】  機能評価ユニットの異常検出部は、制御装置の処理結果として、制御装置内のメモリアドレスに含まれる変更不可能な値が上書きされた場合に、処理結果の異常を検出してもよい。【００２���】
また、本発明の別の観点によれば、車載ネットワーク向けの制御装置を車載ネットワークに接続していない状態で、制御装置のセキュリティを診断するセキュリティ検査方法であって、機能評価ユニットが、制御装置が車載ネットワーク上で置かれ得る状態をテスト条件として設定し、制御装置に送信するステップと、セキュリティ検査ユニットが、制御装置のセキュリティを診断するための、不正信号を含むランダムなテスト信号を送信するステップと、機能評価ユニットが、制御装置の処理結果に関連する情報を取得するステップと、機能評価ユニットが、テスト信号に基づく制御装置の処理結果の異常を検出するステップと、機能評価ユニットが、検出された異常の情報を記憶又はセキュリティ検査ユニットに送信するステップと、セキュリティ検査ユニットが、テスト信号による制御装置の処理結果に基づいて不正信号を特定するステップと、を含む、車載ネットワーク向けの制御装置のセキュリティ検査方法が提供される。
【００２３】
また、本発明のさらに別の観点によれば、車載ネットワーク向けの制御装置を車載ネットワークに接続していない状態で、制御装置のセキュリティを診断する制御装置の機能評価装置であって、制御装置が車載ネットワーク上で置かれ得る状態をテスト条件として設定し、制御装置に送信するテスト条件設定部と、制御装置の処理結果に関連する情報を取得する処理情報取得部と、テスト条件下で、制御装置のセキュリティを診断するセキュリティ検査ユニットから車載ネットワークを介して制御装置に送信された、不正信号を含むランダムなテスト信号による制御装置の処理結果の異常を検出する異常検出部と、検出された異常の情報を出力する異常情報出力部と、を備えた、車載ネットワーク向けの制御装置の機能評価装置が提供される。
【００２４】
また、本発明の更に別の観点によれば、コンビュータにより、車載ネットワーク向けの制御装置を前記車載ネットワークに接続していない状態で、制御装置が車載ネットワーク上で置かれ得る状態をテスト条件として設定し、制御装置に送信するテスト条件設定部と、制御装置の処理結果に関連する情報を取得する処理情報取得部と、テスト条件下で、制御装置のセキュリティを診断するセキュリティ検査ユニットから車載ネットワークを介して制御装置に送信された、不正信号を含むランダムなテスト信号による制御装置の処理結果の異常を検出する異常検出部と、検出された異常の情報を出力する異常情報出力部と、の機能を実現させる、プログラムが提供される。
【発明の効果】
【００２５】  以上説明したように本発明によれば、ＥＣＵに改変を加えることなく、ランダムなテスト信号を用いてＥＣＵのセキュリティ検査を実行することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の検査対象のＥＣＵを含む車載ネットワークの構成例を示す模式図である。
【図２】第１の実施の形態に係るセキュリティ検査システムの構成例を示す模式図である。
【図３】同実施形態に係るセキュリティ検査システムによる異常判定方法を示す説明図である。
【図４】同実施形態に係るセキュリティ検査システムによる処理のフローチャートの一例を示す説明図である。
【図５】同実施形態の第１の変形例に係るセキュリティ検査システムの構成例を示す模式図である。
【図６】同実施形態の第１の変形例に係るセキュリティ検査システムによる異常判定方法を示す説明図である。
【図７】同実施形態の第２の変形例に係るセキュリティ検査システムの構成例を示す模式図である。
【図８】同実施形態の第２の変形例に係るセキュリティ検査システムによる処理のフローチャートの一例を示す説明図である。
【図９】同実施形態の第３の変形例に係るセキュリティ検査システムによる処理のフローチャートの一例を示す説明図である。
【図１０】第２の実施の形態に係るセキュリティ検査システムの構成例を示す模式図である。
【図１１】同実施形態に係るセキュリティ検査システムによる処理のフローチャートの一例を示す説明図である。
【図１２】第３の実施の形態に係るセキュリティ検査システムの構成例を示す模式図である。
【図１３】同実施形態に係るセキュリティ検査システムによる処理のフローチャートの一例を示す説明図である。
【図１４】同実施形態の変形例に係るセキュリティ検査システムの構成例を示す模式図である。
【図１５】同実施形態の変形例に係るセキュリティ検査システムによる処理のフローチャートの一例を示す説明図である。
【図１６】第４の実施の形態に係るセキュリティ検査システムの構成例を示す模式図である。
【図１７】同実施形態に係るセキュリティ検査システムによる処理のフローチャートの一例を示す説明図である。
【図１８】第５の実施の形態に係るセキュリティ検査システムの構成例を示す模式図である。
【図１９】セキュリティ検査システムの別の構成例を示す模式図である。
【発明を実施するための形態】
【００２７】  以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２８】＜＜１．第１の実施の形態＞＞
＜１−１．車載ネットワーク＞
まず、図１を参照して、第１の実施の形態に係るセキュリティ検査システムによるセキュリティ検査を適用可能なＥＣＵ（制御装置）を備えた車載の通信ネットワーク（以下、「車載ネットワーク」ともいう。）の構成例について簡単に説明する。図１は、乗用車や商用車等の車両に搭載された複数のＥＣＵ１０Ａ〜１０Ｅが接続された車載ネットワーク１を示している。
【００２９】  複数のＥＣＵ１０Ａ〜１０Ｅは、例えば、車両のエンジンを制御するためのエンジンコントロールユニット、自動変速機を制御するためのトランスミッションコントロールユニット、ハイブリッド車両の駆動用モータ又は発電用モータを制御するためのモータコントロールユニット、ハイブリッド車両の高電圧バッテリを制御するためのバッテリコントロールユニット、ハイブリッド車両の駆動力あるいは回生力を統合的に制御するためのハイブリッドコントロールユニット、インストルメントパネルやドアロック、パワーウィンドウ等を制御するためのボディコントロールユニット、エアバッグ装置を制御するためのエアバッグコントロールユニット等である。
【００３０】  各ＥＣＵ１０Ａ〜１０Ｅには、それぞれの制御対象の制御に必要とされる各種のアクチュエータやセンサ等の周辺機器が接続されている。ＥＣＵ１０Ａ〜１０Ｅは、演算処理結果に基づいて周辺機器に対して信号を送信し、あるいは、周辺機器からセンサ信号等を受信する。例えば、ＥＣＵ１０Ａに接続された周辺機器２１〜２４のように、周辺機器２１〜２４が個別にＥＣＵ１０Ａに接続されていてもよい。あるいは、ＥＣＵ１０Ｃに接続された周辺機器３１〜３４のように、周辺機器３１〜３４が、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）等のサブネットワーク３０を介してＥＣＵ１０Ｃに接続されていてもよい。
【００３１】  各ＥＣＵ１０Ａ〜１０Ｅは、例えば、通信バス５との通信回路、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、及び、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の記憶素子を備えて構成されている。ＲＯＭには、例えば、ＣＰＵによって実行されるプログラムや、プログラムの演算処理に用いられるパラメータ等の情報が記憶される。ＲＡＭには、例えば、ＣＰＵによる演算処理結果や各種周辺機器への送信信号、各種周辺機器からの受信信号の情報が記憶される。
【００３２】  これらの複数のＥＣＵ１０Ａ〜１０Ｅは、それぞれ通信バス５に接続され、通信バス５を介して互いに情報の送受信が可能となっている。本実施形態に係る車載ネットワーク１は、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）システムとして構築され、複数のＥＣＵ１０Ａ〜１０Ｅは、通信バス５を介してＣＡＮメッセージを送受信することにより、互いに情報を送受信可能に構成されている。
【００３３】  各ＥＣＵ１０Ａ〜１０Ｅは、自身のＥＣＵにおいて取得あるいは算出された情報を、他のＥＣＵにより共有されるようにするために、通信バス５上にＣＡＮメッセージを送信する。ＣＡＮメッセージの送信は、所定の時間間隔で行われるように設定され得る。他のＥＣＵからのＣＡＮメッセージを受信したＥＣＵは、ＣＡＮメッセージに含まれる情報を用いて、制御対象の制御を実行することができる。
【００３４】  本実施形態においては、１つのＥＣＵから送信されたＣＡＮメッセージを他のＥＣＵが受信して演算処理を実行したとしても、送信されたＣＡＮメッセージに対する応答として、なんらかのメッセージが送信元のＥＣＵに返信される構成とはなっていない。
【００３５】  なお、車載ネットワーク１に接続されるＥＣＵの数は限定されない。また、通信バス５に対して接続される装置はＥＣＵに限られず、通信バス５との通信回路及び駆動回路を備えた各種周辺機器が接続されていてもよい。また、上記車載ネットワーク１はＣＡＮシステムとして構築されているが、車載ネットワーク１は、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、ＦｌｅｘＲａｙ、ＭＯＳＴ（Ｍｅｄｉａ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍｓ  Ｔｒａｎｓｐｏｒｔ）、ＣＡＮ−ＦＤ（ＣＡＮ  ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｄａｔａ  ｒａｔｅ）、又は、Ａｕｔｏｍｏｔｉｖｅ  Ｅｔｈｅｒｎｅｔであってもよい。通信バス５を介して送受信される信号は、車載ネットワーク１の規格に沿って構成される。各ＥＣＵ１０Ａ〜１０Ｅと通信バス５との間で行われる通信は、有線通信に限られず、無線通信であってもよい。
【００３６】  ＜１−２．セキュリティ検査システム＞
（１−２−１．全体概要）
次に、車載ネットワーク１上のＥＣＵ１０Ａ〜１０Ｅ（以下、特に区別する必要がある場合を除き、「ＥＣＵ１０」と表記する。）のセキュリティの脆弱性を検査する本実施形態に係るセキュリティ検査システムについて説明する。上述のとおり、車載ネットワーク１上には複数のＥＣＵ１０等が存在し、さらに、車両の機能の多様化にも対応できるように、追加のＥＣＵや各種周辺機器が車載ネットワーク１に接続可能になっている。ＥＣＵ１０では、意図的に、あるいは、意図せずに、ＥＣＵ１０に送信されてくる不正な信号によって異常な制御動作が引き起こされないように、不正信号に対するセキュリティが補償されなければならない。
【００３７】  このため、ＥＣＵ１０の開発段階においては、ＥＣＵ１０のＲＯＭ等に格納されるソフトウェアのセキュリティ検査が行われ、ＥＣＵ１０の演算処理に異常を引き起こし得る不正信号が特定され、ソフトウェアの修正が行われる。一般的なソフトウェアのセキュリティ検査は、ソフトウェアの内部構造の情報を持たないセキュリティ検査装置（セキュリティ検査ツール）により、ブラックボックスの状態で行われている。かかるセキュリティ検査装置としては、一般的に、不正信号を含むランダムなテスト信号を送信しつつ、当該テスト信号に対する何らかの返信をテスト対象の装置から受け取って、不正信号を特定する。このようなセキュリティ検査としては、例えばファジングが知られている。
【００３８】  このため、他のＥＣＵ等から信号を受け取り、演算処理を行った結果を当該他のＥＣＵ等に返信する構成とはなっていないＥＣＵ１０では、一般的なセキュリティ検査装置によるセキュリティ検査を実行することができない。
【００３９】  他方で、ＥＣＵ１０の開発段階において、ＥＣＵ１０の動作を検査する装置として、検査対象のＥＣＵ１０から他のＥＣＵあるいは周辺機器への出力信号、又は、周辺機器から検査対象のＥＣＵ１０への入力信号を監視して、評価を行う機能評価装置（テスト評価ツール）が用いられている。かかる機能評価装置は、ＥＣＵ１０に対して特定の指令あるいは条件を入力したときのＥＣＵ１０からの出力信号又はＥＣＵ１０への入力信号を評価するようになっている。したがって、考え得るあらゆる入力信号に対するセキュリティを検査できるものではない。
【００４０】  これに対して、本実施形態に係るセキュリティ検査システムでは、セキュリティ検査装置から出力されるランダムなテスト信号に基づいてＥＣＵ１０が演算処理を行った結果としてＥＣＵ１０から出力される出力信号、又は、周辺機器からＥＣＵ１０に対して入力される入力信号に異常が見られないかを、機能評価装置により監視する。また、ＥＣＵ１０からの出力信号又はＥＣＵ１０への入力信号に異常が見られた場合には、当該異常の情報に基づいて、セキュリティ検査装置が、異常を発生させた不正信号を特定する。これにより、ＥＣＵ１０に大幅な改変を加えることなく、セキュリティ検査装置によるセキュリティ検査が可能となっている。
【００４１】  図２は、本実施形態に係るセキュリティ検査システムの全体構成を示すブロック図である。セキュリティ検査システムは、セキュリティ検査ユニット１００と、機能評価ユニット（機能評価装置）１５０とを備える。すでに述べたとおり、本実施形態に係るセキュリティ検査システムは、セキュリティ検査ユニット１００と機能評価ユニット１５０とは独立した装置として構成されている。ただし、セキュリティ検査ユニット１００と機能評価ユニット１５０とが単体の装置として構成されてもよい。以下、車載ネットワーク１がＣＡＮシステムである場合を例に採って、各ユニットの構成、及び、セキュリティ検査システムによるセキュリティ検査方法について説明する。
【００４２】  （１−２−２．セキュリティ検査ユニット）
セキュリティ検査ユニット１００は、例えばＣＰＵ等のプロセッサを備え、テスト信号送信部１１０と、診断部１２０と、記憶部１３０とを有する。プロセッサは、プログラムを実行することにより、テスト信号送信部１１０及び診断部１２０として機能する。記憶部１３０は、ＲＡＭ及びＲＯＭを含み、プロセッサにより実行されるプログラム及び各種のデータを記憶する。また、記憶部１３０は、半導体メモリやハードディスク、外付けの記憶装置等を含んでいてもよい。
【００４３】  テスト信号送信部１１０は、例えばプロセッサ及び駆動回路により構成され、不正信号を含むランダムなテスト信号を、通信バス５を介して検査対象のＥＣＵ１０に送信する。かかるテスト信号は、例えばファジング信号であってもよい。本実施形態に係るセキュリティ検査システムでは、テスト信号送信部１１０は、テスト信号として、構成され得るＣＡＮメッセージを、ＥＣＵ１０に対してランダムに送信する。例えば、構成され得るすべてのＣＡＮメッセージをＥＣＵ１０に対してランダムに送信してもよい。このＣＡＮメッセージには、不正信号も含まれ得る。
【００４４】  診断部１２０は、テスト信号送信部１１０から送信されたテスト信号に基づいてＥＣＵ１０が演算処理を実行した結果、処理結果に異常が見られた場合に、当該異常を発生させた不正信号を特定する。例えば、診断部１２０は、機能評価ユニット１５０から出力されて記憶部１３０に記憶された異常の情報に基づき、当該異常を発生させたテスト信号の送信時期を特定することで、不正信号を特定してもよい。ただし、診断部１２０による不正信号の特定方法は上記の例に限られず、従来公知のセキュリティ検査装置による方法を含む種々の方法が採用され得る。
【００４５】  記憶部１３０は、機能評価ユニット１５０から出力される異常の情報を記憶する。当該異常の情報は、テスト信号送信部１１０からＥＣＵ１０に送信されたテスト信号のうちの不正信号によって、ＥＣＵ１０による演算処理の結果に異常が見られた場合の、当該演算処理結果に関連する情報である。具体的には、機能評価ユニット１５０の異常検出部１７０の説明において詳述する。
【００４６】  （１−２−３．機能評価ユニット）
機能評価ユニット１５０は、例えばＣＰＵ等のプロセッサを備え、テスト条件設定部１５５と、処理情報取得部１６０と、異常検出部１７０と、異常情報出力部１８０とを有する。プロセッサは、プログラムを実行することにより、テスト条件設定部１５５、処理情報取得部１６０、異常検出部１７０及び異常情報出力部１８０として機能する。また、機能評価ユニット１５０は、図示しない記憶部を備える。記憶部は、ＲＡＭ及びＲＯＭを含み、プロセッサにより実行されるプログラム及びデータを記憶する。記憶部は、半導体メモリやハードディスク、外付けの記憶装置等を含んでいてもよい。
【００４７】  テスト条件設定部１５５は、検査対象のＥＣＵ１０が正常なテスト環境下に置かれるように、当該ＥＣＵ１０に対してテスト条件の信号を送信する。例えば、ＥＣＵ１０が実際に車両に搭載された場合に生じ得る車両の状態をテスト条件として設定し、ＥＣＵ１０に対して送信する。例えば、送信され得るテスト条件の信号には、イグニッションスイッチのオンオフ状態を示す信号、周辺機器等からＥＣＵ１０に入力され得る種々の情報を含むアナログ信号あるいはデジタル信号、及び車速やギヤポジション等の情報を含むＣＡＮメッセージのうちの少なくとも１つが含まれ得る。テスト条件は、ユーザにより手動で設定されてもよく、あるいは、あらかじめ設定された１つ又は複数のテスト条件の中から手動又は自動で選択されてもよい。複数のテスト条件下でセキュリティ検査を実行する場合、テスト条件設定部１５５は、テスト条件を切り替えながら様々なテスト条件下でセキュリティ検査を実行させてもよい。
【００４８】  処理情報取得部１６０は、セキュリティ検査ユニット１００から送信されたテスト信号に基づいて行われたＥＣＵ１０による処理結果の情報を取得する。かかる処理結果の情報は、処理結果としてＥＣＵ１０から出力される出力信号、周辺機器からＥＣＵ１０に入力される入力信号、及び、ＥＣＵ１０に備えられたＲＡＭやＲＯＭ等の記憶部に記憶されたデータ等を含み得る。より具体的には、処理結果の情報は、ＥＣＵ１０から通信バス５上に送信されたＣＡＮメッセージ、ＥＣＵ１０から周辺機器に送信されたアナログ信号又はデジタル信号、周辺機器からＥＣＵ１０に入力されたアナログ信号又はデジタル信号、及び、ＥＣＵ１０の記憶部に記憶されたメモリアドレスのデータ等を含み得る。処理情報取得部１６０は、取得した情報を図示しない記憶部に記憶してもよい。
【００４９】  異常検出部１７０は、処理情報取得部１６０により取得された処理結果の情報から、処理結果の異常を検出する。ＥＣＵ１０がランダムなテスト信号を用いて演算処理を行った結果として生じ得る異常は、様々な態様で現れ得る。例えば、ＥＣＵ１０によるＣＡＮメッセージの転送の有無が適切に行われているか否か、あるいは、ＥＣＵ１０に入力されるセンサ値が適切な範囲であるか否か、センサ値の変化が適切か否か、又は、センサ値の周波数が適切であるか否かにより、ＥＣＵ１０の処理結果の異常を判定することができる。これらの異常の有無は、テスト条件設定部１５５により設定されたテスト条件下において出力された処理結果として適切であるか否かを判別することにより判定され得る。
【００５０】  図３は、異常検出部１７０による異常判定方法のいくつかを例示した判定テーブルを示している。例えば、ＥＣＵ１０からの出力信号として、通信バス５に送信されるＣＡＮメッセージの送信周波数ｆｅが、設定されたテスト条件下において想定される上限の周波数ｆｅ＿０を超える場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。例えば、あるＣＡＮメッセージが、１００ミリ秒ごとに送信されるように設定されているにもかかわらず、より高い頻度でＣＡＮメッセージが送信された場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。
【００５１】  また、ＥＣＵ１０からの出力信号として、周辺機器に対して送信されるアナログ又はデジタルの指令信号の電圧値Ｖが、設定されたテスト条件下において想定される上限の値Ｖ＿０を超える場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。例えば、指令信号の電圧値Ｖが２．０Ｖ（＝Ｖ＿０）を大きく上回っている場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。電圧値Ｖの上限値だけでなく下限値が定められてもよい。
【００５２】  ＥＣＵ１０から周辺機器に対して送信されるアナログ又はデジタルの指令信号の送信周波数ｆｖが、設定されたテスト条件下において想定される上限の周波数ｆｖ＿０を超える場合においても、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。ＥＣＵ１０では、制御対象に応じて演算処理のサイクルあるいは指令信号の送信サイクルが設定されているため、かかる指令信号の送信周波数ｆｖを異常検出に用いることができる。例えば、アナログ又はデジタルの指令信号の送信周波数ｆｖが１０，０００Ｈｚ（＝ｆｖ＿０）を大きく上回っている場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。
【００５３】  また、ＥＣＵ１０による演算処理の結果を反映して、周辺機器からＥＣＵ１０に対して入力されるアナログ信号又はデジタル信号の電圧値Ｖが、設定されたテスト条件下において想定される上限の値Ｖ＿０を超える場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。例えば、センサ信号の電圧値Ｖが２．０Ｖ（＝Ｖ＿０）を大きく上回っている場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。電圧値Ｖの上限値だけでなく下限値が定められてもよい。
【００５４】  周辺機器からＥＣＵ１０に対して入力されるアナログ信号又はデジタル信号の周波数ｆｖが、設定されたテスト条件下において想定される上限の周波数ｆｖ＿０を超える場合においても、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。例えば、ＥＣＵ１０では、各種センサからＥＣＵ１０へのセンサ信号の送信サイクルが設定されているため、かかるセンサ信号の周波数ｆｖを異常検出に用いることができる。
【００５５】  また、ＥＣＵ１０から通信バス５に送信されるＣＡＮメッセージに含まれる情報、ＥＣＵ１０から周辺機器への出力信号、又は、周辺機器からＥＣＵ１０への入力信号に含まれ得る値の単位時間当たりの変化量ΔＸが、設定されたテスト条件下において想定される閾値ΔＸ＿０を超える場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。例えば、ＥＣＵ１０からの出力信号又はＥＣＵ１０への入力信号に含まれる情報としてのエンジン回転数が、短時間の間に３，０００回転から８，０００回転に上昇した場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。
【００５６】  また、ＥＣＵ１０による演算処理の結果を反映して、ＥＣＵ１０内の所定のメモリアドレスに含まれる変更不可能なメモリアドレス値Ｙが上書きされた場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。例えば、ＣＡＮメッセージのバッファフレームの終わりを意味するメモリアドレス値Ｙは、変更不可能な値とされているにもかかわらず、当該メモリアドレス値Ｙが上書きされた場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。
【００５７】  例えば、異常判定を行うための閾値等は、設定し得るテスト条件ごとに設定される。好ましくは、設定され得るテスト条件ごとにあらかじめ判定テーブルが用意されて記憶部に記憶される。異常判定方法は、図３に示した例に限られない。図３に例示した判定種別のいくつかが省略されていてもよい。あるいは、異常判定部１７０は、ここに示した例以外の方法により、ＥＣＵ１０の処理結果の異常を判定してもよい。例えば、ゲートウェイとしての機能を有するＥＣＵ１０がＣＡＮメッセージを受信した場合に、他のＥＣＵに対して受信したＣＡＮメッセージを転送するよう設定されているにもかかわらず、転送されない場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。
【００５８】  異常情報出力部１８０は、異常検出部１７０によりＥＣＵ１０の演算処理結果の異常が検出された場合に、当該異常の情報を出力し、セキュリティ検査ユニット１００の記憶部１３０に記憶させる。かかる異常の情報がセキュリティ検査ユニット１００の記憶部１３０に記憶される際に、例えば、ＥＣＵ１０による出力あるいは入力の時刻、機能評価ユニット１５０の処理情報取得部１６０が処理結果の情報を取得した時刻、異常検出部１７０により異常が検出された時刻、あるいは、異常情報出力部１８０から出力した時刻の少なくとも１つの情報とともに記憶されてもよい。
【００５９】  セキュリティ検査ユニット１００の診断部１２０は、例えば、異常の情報に紐付けされた時刻の情報と、テスト信号送信部１１０からランダムに送信されたそれぞれのテスト信号の送信時刻の情報とに基づいて、ＥＣＵ１０の処理結果の異常を発生させた不正信号を特定することができる。ただし、セキュリティ検査ユニット１００の診断部１２０による不正信号の特定方法は、かかる例に限定されるものではなく、診断部１２０は、以下のようにして、ＥＣＵ１０の処理結果の異常を発生させた不正信号を特定してもよい。
【００６０】  例えば、セキュリティ検査ユニット１００のテスト信号送信部１１０が短い間隔で複数のテスト信号を送信するような場合には、上記の例のように、異常の情報に紐付けされた時刻の情報と、送信時刻の情報とに基づいて不正信号を一旦特定した後、再び、当該特定された不正信号の前後に送信された複数のテスト信号を、テスト信号送信部１００が再送する。このとき、テスト信号送信部１００は、最初にテスト信号を送信したときの送信間隔よりも大きい送信間隔でテスト信号を再送する。これにより、特定される不正信号の確からしさが保証され得る。
【００６１】  例えば、テスト信号送信部１１０が、１巡目に、テスト信号ＴＳ１，ＴＳ２，ＴＳ３，ＴＳ４，ＴＳ５，ＴＳ６，ＴＳ７，ＴＳ８，ＴＳ９，ＴＳ１０を送信して、テスト信号ＴＳ６が不正信号と特定された場合、テスト信号送信部１１０は、２巡目に、テスト信号ＴＳ４，ＴＳ５，ＴＳ６，ＴＳ７，ＴＳ８を、送信間隔を大きくして送信する。１回目と同様に機能評価ユニット１５０の異常検出部１７０で異常判定が行われてフィードバックされた異常の情報に基づいて、診断部１２０が再度不正信号を特定する。このとき、テスト信号の送信間隔が大きいことから、時刻情報の対応付けが容易になるため、例えば、実際の不正信号が、テスト信号ＴＳ６ではなくテスト信号ＴＳ５であることを発見することが可能になる。
【００６２】  また、別の例として、機能評価ユニット１５０の処理情報取得部１６０が、ＥＣＵ１０から演算処理の結果の情報を取得する際に、併せて、当該演算処理を実行させたＣＡＮメッセージとしてのテスト信号の情報を取得する。この場合、機能評価ユニット１５０の異常検出部１７０は、処理結果の異常を検出する際に、テスト信号（不正信号）を把握することができ、異常情報出力部１８０は、不正信号の情報も含む異常の情報を出力して、セキュリティ検査ユニット１００の記憶部１３０に記憶させる。その結果、セキュリティ検査ユニット１００の診断部１２０が、不正信号を特定することができる。
【００６３】  さらなる別の例として、セキュリティ検査ユニット１００のテスト信号送信部１１０が、機能評価ユニット１５０から異常の情報がフィードバックされ得る最大待機時間以上の送信間隔でテスト信号を送信してもよい。この場合、診断部１２０は、機能評価ユニット１５０からＥＣＵ１０の処理結果の異常の情報がフィードバックされてきたときに、直前に送信したテスト信号が不正信号であることを特定することができる。
【００６４】  （１−２−４．フローチャート）
次に、図４を参照して、本実施形態に係るセキュリティ検査システムによるセキュリティ検査方法のフローチャートの一例を説明する。以下のフローチャートによる処理は、例えば、ＥＣＵ１０の開発過程の最終段階で実施されてもよい。
【００６５】  まず、機能評価ユニット１５０のテスト条件設定部１５５は、テスト条件を設定して、検査対象のＥＣＵ１０に送信する（ステップＳ８）。テスト条件は、例えば、イグニッションスイッチのオンオフ状態、ＥＣＵ１０にアナログ信号あるいはデジタル信号が入力され得る周辺機器等の差動状態、及び車速やギヤポジション等の車両の状態などを含む。これらの条件は、ユーザにより手動で設定されてもよく、あるいは、あらかじめ設定された１つ又は複数のテスト条件の中から手動又は自動で選択されてもよい。
【００６６】  次いで、セキュリティ検査ユニット１００のテスト信号送信部１１０は、不正信号を含むランダムなテスト信号を、通信バス５を介してＥＣＵ１０に送信する（ステップＳ１０）。ランダムなテスト信号の生成は、所定のランダム信号生成プログラムにより実行されてもよい。次いで、テスト信号を受信したＥＣＵ１０は、当該テスト信号に基づいて演算処理を実行する（ステップＳ１４）。その結果、ＥＣＵ１０から通信バス５へＣＡＮメッセージが出力されたり、ＥＣＵ１０に接続された周辺機器に対して指令信号が出力されたり、さらに、周辺機器からＥＣＵ１０に対してセンサ信号等が入力されたりする。
【００６７】  次いで、機能評価ユニット１５０の処理情報取得部１６０が、ＥＣＵ１０から、処理結果としてＥＣＵ１０からの出力信号、周辺機器からＥＣＵ１０への入力信号、及び、ＥＣＵ１０に備えられたＲＡＭやＲＯＭ等の記憶部に記憶されたデータ等を取得し、異常検出部１７０が異常判定を行う（ステップＳ１８）。例えば、異常検出部１７０は、図３に例示したテスト条件に応じた対応する異常判定の基準を参照して、ＥＣＵ１０の処理結果の異常の有無を判定する。
【００６８】  次いで、機能評価ユニット１５０の異常検出部１７０は、ＥＣＵ１０の処理結果に異常があったか否かを判別し（ステップＳ２２）、異常が無い場合（Ｓ２２：Ｎｏ）にはステップＳ３４に進む。一方、異常が有った場合（Ｓ２２：Ｙｅｓ）、機能評価ユニット１５０の異常情報出力部１８０は、セキュリティ検査ユニット１００に対して異常の情報を出力する（ステップＳ２６）。これにより、ＥＣＵ１０の処理結果の異常の情報は、セキュリティ検査ユニット１００の記憶部１３０に記憶される。
【００６９】  次いで、セキュリティ検査ユニット１００の診断部１２０は、記憶部１３０に記憶された異常の情報と、テスト信号送信部１１０から送信されたテスト信号の情報とに基づいて、ＥＣＵ１０の処理結果の異常を発生させた不正信号を特定する（ステップＳ３０）。例えば、診断部１２０は、機能評価ユニット１５０から出力されて記憶部１３０に記憶された異常の情報に基づき、当該異常を発生させたテスト信号の送信時期を特定することで、不正信号を特定してもよい。なお、不正信号を特定する方法は上記の例に限定されない。特定された不正信号の情報は、後に参照可能なように、記憶部１３０に記憶されてもよい。
【００７０】  ステップＳ２２において異常が見られなかった場合（Ｓ２２：Ｎｏ）、あるいは、ステップＳ３０で不正信号が特定された場合、セキュリティ検査ユニット１００のテスト信号送信部１１０は、検査を継続するか否かを判別する（ステップＳ３４）。検査すべきテスト信号が残存する場合（Ｓ３４：Ｙｅｓ）、ステップＳ１０に戻って、ここまでに説明した処理を繰り返し実行する。一方、すべてのテスト信号の送信が終了している場合（Ｓ３４：Ｎｏ）、セキュリティ検査システムによるセキュリティ検査が終了する。
【００７１】  この後、ＥＣＵ１０のソフトウェアのプログラマー等は、セキュリティ検査ユニット１００の記憶部１３０に記憶された不正信号の情報を参照し、ソフトウェアの修正等を行うことで、ソフトウェアの脆弱性を改善する。すべてのテスト信号に対して、ＥＣＵ１０の処理結果がすべて正常となるまでかかるセキュリティ検査が繰り返し実行される。これにより、ＥＣＵ１０のセキュリティが保証される。
【００７２】  ＜１−３．変形例＞
ここまでに説明した実施形態に係るセキュリティ検査システムは、上記の構成に限られず、種々の変形が可能である。以下、本実施形態に係るセキュリティ検査システムの変形例のいくつかを説明する。
【００７３】  （１−３−１．第１の変形例）
図５は、本実施形態の第１の変形例に係るセキュリティ検査システムの構成例を示している。第１の変形例に係るセキュリティ検査システムは、ＥＣＵ１０の処理結果に基づいて表示制御が行われる表示装置８０と、かかる表示装置８０の表示状態を撮像する撮像ユニット９０とを備える。
【００７４】  表示装置８０は、例えば、インストルメントクラスターであってよく、ＥＣＵ１０の制御指令に基づく車両の制御状態が疑似的にインストルメントクラスター上に表示される。
【００７５】  撮像ユニット９０は、表示装置８０の表示部を撮像範囲に捉える３台のカメラ９１，９２，９３を備える。それぞれのカメラ９１，９２，９３は、表示装置８０の表示部を分割して撮像する。カメラの台数は３つに限られない。カメラは、例えば、ＣＣＤ（Ｃｈａｒｇｅ−Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）イメージセンサ又はＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージセンサを備えたカラー画像を取得可能なカメラとすることができる。撮像ユニット９０で撮像された画像情報は、機能評価ユニット１５０の異常検出部１７０に送信される。
【００７６】  異常検出部１７０は、例えば、画像認識や文字認識等の画像処理を実行するとともに、当該画像処理の結果に基づいて、ＥＣＵ１０の演算処理結果の異常判定を実行する。例えば、異常検出部１７０は、画像処理により、表示装置８０上の数値を認識したり、ゲージの角度を認識したり、ランプの点灯の有無を認識したりすることにより、表示内容を算出することができる。
【００７７】  図６は、第１の変形例に係るセキュリティ検査システムの機能評価ユニット１５０における、異常検出部１７０による異常判定方法のいくつかを例示した判定テーブルを示している。図６に示した判定種別のうち、１〜３，５の判定種別は、図３に示した判定テーブルと同じである。
【００７８】  また、判定種別の４では、ＥＣＵ１０から通信バス５に送信されるＣＡＮメッセージに含まれる情報、ＥＣＵ１０から周辺機器への出力信号、又は、周辺機器からＥＣＵ１０への入力信号に含まれ得る値だけでなく、表示装置８０の撮像情報を用いて、所定の値の単位時間当たりの変化量ΔＸが想定される閾値ΔＸ＿０を超える場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。例えば、表示装置８０の表示部のエンジン回転数メータに表示されたエンジン回転数が、短時間の間に３，０００回転から８，０００回転に上昇した場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。
【００７９】  さらに、判定種別の６では、表示装置８０の表示内容に矛盾がある場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。例えば、テスト信号に基づくＥＣＵ１０の演算処理の結果により、表示装置８０におけるギヤレンジの位置の表示の「Ｄ（ドライブ）」及び「Ｐ（パーキング）」がともに点灯した場合に、異常検出部１７０は、ＥＣＵ１０の処理結果が異常であると判定することができる。
【００８０】  第１の変形例に係るセキュリティ検査システムによるセキュリティ検査方法は、図４に示したフローチャートの例に沿って実行され得る。第１の変形例に係るセキュリティ検査システムによれば、ＥＣＵ１０の制御指令に基づく車両の制御状態が表示される表示装置８０の撮像情報を用いて、視覚的にＥＣＵ１０の動作を監視することもできるようになる。
【００８１】  （１−３−２．第２の変形例）
図７は、本実施形態の第２の変形例に係るセキュリティ検査システムの構成例を示している。第２の変形例に係るセキュリティ検査システムは、機能評価ユニット１５０の異常情報出力部１８５が、セキュリティ検査ユニット１００に異常の情報を送信するのではなく、機能評価ユニット１５０に備えられた記憶部１９０に異常の情報を出力し、記憶させる。記憶部１９０は、半導体メモリやハードディスク、外付けの記憶装置等からなり、後に、セキュリティ検査ユニット１００が、記憶された異常の情報を読み込み可能になっている。
【００８２】  例えば、セキュリティ検査ユニット１００と機能評価ユニット１５０とを通信線により接続したり、異常の情報を記憶したハードディスクやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等をセキュリティ検査ユニット１００に接続したりすることにより、セキュリティ検査ユニット１００が異常の情報を読み込んでもよい。これにより、セキュリティ検査ユニット１００の診断部１２０は、ＥＣＵ１０の処理結果の異常の情報と、ランダムに送信されたテスト信号の情報とに基づいて、不正信号を特定することができる。
【００８３】  図８は、第２の変形例に係るセキュリティ検査システムによるセキュリティ検査方法のフローチャートを示している。セキュリティ検査ユニット１００、ＥＣＵ１０、及び、機能評価ユニット１５０は、それぞれ、図４のフローチャートに基づいて説明した手順と同様の手順で、ステップＳ８〜ステップＳ２２の各処理を実行する。第２の変形例に係るセキュリティ検査システムでは、ＥＣＵ１０の処理結果に異常があった場合（Ｓ２２：Ｙｅｓ）、ステップＳ２７において、機能評価ユニット１５０の異常情報出力部１８５が、記憶部１９０にＥＣＵ１０の処理結果の異常の情報を記憶する。
【００８４】  ステップＳ２２において異常が見られなかった場合（Ｓ２２：Ｎｏ）、あるいは、ステップＳ２７で異常の情報が記憶部１９０に記憶された場合、セキュリティ検査ユニット１００のテスト信号送信部１１０は、検査を継続するか否かを判別する（ステップＳ３４）。検査すべきテスト信号がすべて終了するまで（Ｓ３４：Ｎｏ）、ステップＳ１０に戻って、ここまでの各ステップの処理を繰り返し実行する。
【００８５】  第２の変形例に係るセキュリティ検査システムによれば、機能評価ユニット１５０の異常検出部１７０により検出された異常の情報を、一旦記憶部１９０に記憶させておき、後で不正信号をまとめて特定することができる。第２の変形例に係るセキュリティ検査システムによれば、例えば、ファジング等のランダムなテスト信号の送信中におけるセキュリティ検査ユニット１００の負荷を低減させることができる。
【００８６】  （１−３−３．第３の変形例）
図９は、図２に示した本実施形態に係るセキュリティ検査システムによるセキュリティ検査方法のフローチャートの変形例（第３の変形例）を示している。第３の変形例では、機能評価ユニット１５０のテスト条件設定部１５５により複数のテスト条件が順次に設定され、それぞれのテスト条件下においてセキュリティ検査が実行されるようになっている。
【００８７】  機能評価ユニット１５０のテスト条件設定部１５５は、図示しない記憶部にあらかじめ記憶された複数のテスト条件の中から、セキュリティ検査を実行するテスト条件を選択し、検査対象のＥＣＵ１０に対してテスト条件の信号を送信可能になっている。また、テスト条件設定部１５５は、あるテスト条件についてのセキュリティ検査が終了した場合、次のテスト条件へと順次切り替えて、複数のテスト条件下においてセキュリティ検査が実行されるようにする。
【００８８】  複数のテスト条件は、例えば、以下のように設定され得る。
テスト条件１：イグニッションスイッチ＝オフ、ギヤレンジ＝パーキングレンジ、車速＝０ｋｍ／ｈ、など
テスト条件２：イグニッションスイッチ＝オン、ギヤレンジ＝ドライブレンジ、車速＝５０ｋｍ／ｈ、など
テスト条件３：イグニッションスイッチ＝オン、ギヤレンジ＝リバースレンジ、車速＝５ｋｍ／ｈ、など
【００８９】  なお、テスト条件は３つに限られない。また、上記に例示したテスト条件以外に、想定され得る車両の状態の情報がテスト条件に含まれてもよい。以下のフローチャートの説明においては、上記のテスト条件１〜テスト条件３をこの順に設定しながらセキュリティ検査を行う例について説明する。ただし、テスト条件の設定順序はランダムであってもよい。
【００９０】  図９に示したフローチャートを参照すると、まず、機能評価ユニット１５０のテスト条件設定部１５５は、あらかじめ設定された複数のテスト条件の中から、いずれかのテスト条件を選択する（ステップＳ６）。例えば、セキュリティ検査の開始直後において、テスト条件設定部１５５は、上記のテスト条件１を選択する。
【００９１】  以降、選択されたテスト条件下で、セキュリティ検査ユニット１００、ＥＣＵ１０、及び、機能評価ユニット１５０は、それぞれ図４のフローチャートに基づいて説明した手順と同様の手順で、ステップＳ８〜ステップＳ３０の各処理を実行する。当該処理の結果、あるテスト信号が不正信号であるか否かが判定された後、テスト条件設定部１５５は、現在のテスト条件下で検査を継続するか否かを判別する（ステップＳ３６）。例えば、テスト条件設定部１５５は、現在のテスト条件下で、すべてのテスト信号についての検査を終了したか否かを判別することにより、ステップＳ３６の判別を行ってもよい。
【００９２】  現在のテスト条件下での検査を継続する場合（Ｓ３６：Ｙｅｓ）、ステップＳ８に戻って、ステップＳ８〜ステップＳ３０の処理が繰り返し実行される。一方、現在のテスト条件下での検査が終了している場合（Ｓ３６：Ｎｏ）、テスト条件設定部１５５は、異なるテスト条件下で検査を継続するか否かを判別する（ステップＳ３８）。検査が終了していないテスト条件が残っており、異なるテスト条件下での検査を継続する場合（Ｓ３８：Ｙｅｓ）、テスト条件設定部１５５は、ステップＳ６に戻って次のテスト条件を選択する。例えば、テスト条件設定部１５５は、テスト条件１の下での検査が終了した後にテスト条件２を選択し、さらに、テスト条件２の下での検査が終了した後にテスト条件３を選択する。
【００９３】  このように、複数のテスト条件が順次選択されつつ、セキュリティ検査ユニット１００、ＥＣＵ１０及び機能評価ユニット１５０は、選択されたテスト条件下でステップＳ８〜ステップＳ３０の各処理を実行する。そして、すべてのテスト条件下での検査が終了した場合、テスト条件設定部１５５は、異なるテスト条件下での検査を継続しないと判定し（Ｓ３８：Ｎｏ）、セキュリティ検査システムによるセキュリティ検査が終了する。
【００９４】  第３の変形例に係るセキュリティ検査システムによれば、あらかじめ想定され得る様々な車両の状態に応じて設定される複数のテスト条件下でのセキュリティ検査が自動で行われ、各テスト条件下において存在し得る不正信号を特定することができる。
【００９５】  なお、図９に示したフローチャートは、図４に示した処理のフローチャートに対して第３の変形例を適用した例であるが、図８に示した第２の変形例による処理のフローチャートに第３の変形例が適用されてもよい。第２の変形例に第３の変形例を適用する場合、図８に示したフローチャートのステップＳ８の前処理としてステップＳ６が設けられ、さらに、ステップＳ３４の代わりにステップＳ３６及びステップＳ３８が設けられる。
【００９６】  以上説明したように、第１の実施の形態に係るセキュリティ検査システムは、ＥＣＵ１０に対して通信バス５を介してランダムなテスト信号を送信するセキュリティ検査ユニット１００と、テスト信号に基づくＥＣＵ１０の演算処理結果の情報を取得して異常判定を行い、検出された異常の情報をセキュリティ検査ユニット１００にフィードバックし、あるいは、記憶部１９０に記憶する機能評価ユニット１５０とを備える。したがって、受信されたＣＡＮメッセージに対して処理結果等の何らかの応答を返す構成とはなっていないＥＣＵ１０であっても、セキュリティ検査ユニット１００を用いたセキュリティ検査を行うことができるようになる。
【００９７】＜＜２．第２の実施の形態＞＞
次に、第２の実施の形態に係るセキュリティ検査システムについて説明する。図１０は、本実施形態に係るセキュリティ検査システムの全体構成を示すブロック図である。セキュリティ検査システムは、セキュリティ検査ユニット３００と、機能評価ユニット３５０とを備える。以下、各ユニットの構成、及び、セキュリティ検査システムによるセキュリティ検査方法について、第１の実施の形態と異なる点を中心に説明する。
【００９８】  セキュリティ検査ユニット３００は、例えばＣＰＵ等のプロセッサを備え、テスト信号送信部３１０と、診断部３２０と、記憶部３３０とを有する。このうち、診断部３２０及び記憶部３３０は、図２に示したセキュリティ検査ユニット１００の診断部１２０及び記憶部１３０と同様の構成とすることができる。また、本実施形態に係るセキュリティ検査システムにおいて、テスト信号送信部３１０は、不正信号を含むランダムなテスト信号を、通信バス５を介して検査対象のＥＣＵ１０に送信するだけでなく、機能評価ユニット３５０にも送信する。
【００９９】  機能評価ユニット３５０は、例えばＣＰＵ等のプロセッサを備え、テスト条件設定部３５５と、処理情報取得部３６０と、異常検出部３７０と、異常情報出力部３８０とを有する。このうち、テスト条件設定部３５５、処理情報取得部３６０及び異常情報出力部３８０は、図２に示した機能評価ユニット１５０のテスト条件設定部１５５、処理情報取得部１６０及び異常情報出力部１８０と同様の構成とすることができる。
【０１００】  また、本実施形態に係るセキュリティ検査システムにおいて、機能評価ユニット３５０の異常検出部３７０は、セキュリティ検査ユニット３００のテスト信号送信部３１０から送信されるテスト信号の情報を取得する。また、異常検出部３７０は、テスト信号のうち、ＥＣＵ１０に送信するＣＡＮメッセージとして適切でない不正信号候補を抽出する。そして、異常検出部３７０は、処理情報取得部３６０が取得したＥＣＵ１０の処理結果の情報のうち、抽出した不正信号候補に基づく処理結果の情報のみを対象として、異常判定を実行する。異常判定処理は、図３に例示した異常判定方法と同様に行うことができる。
【０１０１】  不正信号候補の抽出は、例えば、検査対象のＥＣＵ１０に対して想定外の情報を含むテスト信号等、想定される不正信号が把握される場合には、あらかじめ当該テスト信号を不正信号候補として設定することにより行われてもよい。あるいは、不正信号候補の抽出は、すでに同一のテスト条件下で検査が行われて正常であると判定されたテスト信号を除外することにより行われてもよい。この他、異常検出部３７０は、ＣＡＮメッセージの構造上適切でないと考えられるテスト信号を不正信号候補として選択する等、種々の方法により不正信号候補を抽出してもよい。
【０１０２】  異常情報出力部３８０は、異常判定処理の結果、実際に異常が見られたＥＣＵ１０の処理結果の情報を、セキュリティ検査ユニット３００に出力し、セキュリティ検査ユニット３００の記憶部３３０に記憶させる。セキュリティ検査ユニット３００の診断部３２０は、記憶部３３０に記憶されたＥＣＵ１０の処理結果の異常の情報と、ランダムに送信されたテスト信号の情報とに基づいて、不正信号を特定する。
【０１０３】  図１１は、本実施形態に係るセキュリティ検査システムによるセキュリティ検査方法のフローチャートの一例を示している。図１１に示したフローチャートは、ステップＳ１１及びステップＳ１７以外は、図４に示したフローチャートと同様のステップＳ８，Ｓ１４，Ｓ１８，Ｓ２２，Ｓ２６，Ｓ３０，Ｓ３４を含む。
【０１０４】  まず、機能評価ユニット１５０のテスト条件設定部１５５は、テスト条件を設定して、検査対象のＥＣＵ１０に送信する（ステップＳ８）。次いで、セキュリティ検査ユニット３００のテスト信号送信部３１０は、不正信号を含むランダムなテスト信号を、通信バス５を介してＥＣＵ１０に送信するとともに、機能評価ユニット３５０に送信する（ステップＳ１１）。次いで、テスト信号を受信したＥＣＵ１０は、当該テスト信号に基づいて演算処理を実行する（ステップＳ１４）。次いで、機能評価ユニット３５０の異常検出部３７０は、テスト信号の中から、ＣＡＮメッセージとして適切でない不正信号候補を抽出する（ステップＳ１７）。
【０１０５】  次いで、機能評価ユニット３５０の処理情報取得部３６０が、ＥＣＵ１０から、処理結果の情報を取得するとともに、異常検出部３７０が、ステップＳ１７で抽出した不正信号候補に基づく処理結果の情報について異常判定を行う（ステップＳ１８）。異常検出部３７０は、図３に例示した異常判定の基準を参照して、ＥＣＵ１０の処理結果の異常の有無を判定してもよい。
【０１０６】  以降、ＥＣＵ１０の処理結果に異常が見られた場合（Ｓ２２：Ｙｅｓ）、機能評価ユニット３５０の異常情報出力部３８０は、セキュリティ検査ユニット３００に異常の情報を送信し（ステップＳ２６）、セキュリティ検査ユニット３００の診断部３２０は、不正信号を特定する（ステップＳ３０）。ステップＳ２２〜ステップＳ３４までの各処理は、図４に示したフローチャートに基づいて説明した各処理と同様に実行することができる。
【０１０７】  以上説明したように、第２の実施の形態に係るセキュリティ検査システムは、機能評価ユニット３５０が、あらかじめ抽出した不正信号候補に対応するＥＣＵ１０の処理結果の情報についてのみ異常判定を行い、検出された異常の情報をセキュリティ検査ユニット３００にフィードバックする。したがって、第１の実施の形態に係るセキュリティ検査システムと比較して、機能評価ユニット３５０の負荷を低減することができる。
【０１０８】  なお、本実施形態に係るセキュリティ検査システムにおいても、第１の実施の形態の第１の変形例〜第３の変形例を適宜組み合わせてセキュリティ検査が実行されてもよい。
【０１０９】  ＜＜３．第３の実施の形態＞＞
次に、第３の実施の形態に係るセキュリティ検査システムについて説明する。図１２は、本実施形態に係るセキュリティ検査システムの全体構成を示すブロック図である。セキュリティ検査システムは、セキュリティ検査ユニット４００と、機能評価ユニット４５０とを備える。以下、各ユニットの構成、及び、セキュリティ検査システムによるセキュリティ検査方法について、第１及び第２の実施の形態と異なる点を中心に説明する。
【０１１０】  セキュリティ検査ユニット４００は、例えばＣＰＵ等のプロセッサを備え、テスト信号送信部４１０と、診断部４２０と、記憶部４３０とを有する。このうち、診断部４２０及び記憶部４３０は、図２に示したセキュリティ検査ユニット１００の診断部１２０及び記憶部１３０と同様の構成とすることができる。また、本実施形態に係るセキュリティ検査システムにおいて、テスト信号送信部４１０は、不正信号を含むランダムなテスト信号を機能評価ユニット４５０に送信する。
【０１１１】  機能評価ユニット４５０は、例えばＣＰＵ等のプロセッサを備え、テスト条件設定部４５５と、不正信号候補抽出部４６０と、処理情報取得部４７０と、異常検出部４８０と、異常情報出力部４９０とを有する。このうち、テスト条件設定部４５５、処理情報取得部４７０、異常検出部４８０、及び、異常情報出力部４９０は、図２に示した機能評価ユニット１５０のテスト条件設定部１５５、処理情報取得部１６０、異常検出部１７０、及び、異常情報出力部１８０と同様の構成とすることができる。
【０１１２】  本実施形態に係るセキュリティ検査システムにおいて、機能評価ユニット４５０の不正信号候補抽出部４６０は、セキュリティ検査ユニット４００のテスト信号送信部４１０からランダムに送信されるテスト信号から、ＥＣＵ１０に送信されるＣＡＮメッセージとして不適切な不正信号候補を抽出する。また、不正信号候補抽出部４６０は、抽出した不正信号候補のテスト信号を、通信バス５を介してＥＣＵ１０に送信する。これにより、ＥＣＵ１０では、不正信号と思われるテスト信号のみに基づいて演算処理が行われる。その結果、処理情報取得部４７０により取得されるＥＣＵ１０の処理結果の情報は少なくなり、異常判定部４８０による判定処理の負荷が低減される。
【０１１３】  不正信号候補の抽出は、例えば、検査対象のＥＣＵ１０に対して想定外の情報を含むテスト信号等、想定される不正信号が把握される場合には、あらかじめ当該テスト信号を不正信号候補として設定することにより行われてもよい。あるいは、不正信号候補の抽出は、すでに同一のテスト条件下で検査が行われて正常であると判定されたテスト信号を除外することにより行われてもよい。この他、不正信号候補抽出部４６０は、ＣＡＮメッセージの構造上適切でないと考えられるテスト信号を不正信号候補として選択する等、種々の方法により不正信号候補を抽出してもよい。
【０１１４】  図１３は、本実施形態に係るセキュリティ検査システムによるセキュリティ検査方法のフローチャートの一例を示している。図１３に示したフローチャートは、ステップＳ１２及びステップＳ１３以外は、図４に示したフローチャートと同様のステップＳ８，Ｓ１４，Ｓ１８，Ｓ２２，Ｓ２６，Ｓ３０，Ｓ３４を含む。
【０１１５】  本実施形態では、まず、機能評価ユニット１５０のテスト条件設定部４５５は、テスト条件を設定して、検査対象のＥＣＵ１０に送信する（ステップＳ８）。次いで、セキュリティ検査ユニット４００のテスト信号送信部４１０は、不正信号を含むランダムなテスト信号を機能評価ユニット４５０に送信する（ステップＳ１２）。次いで、テスト信号を受信した機能評価ユニット４５０の不正信号候補抽出部４６０は、テスト信号の中から、ＥＣＵ１０に送信されるＣＡＮメッセージとして不適切な不正信号候補を抽出し、抽出されたテスト信号をＥＣＵ１０に転送する（ステップＳ１３）。
【０１１６】  以降、ＥＣＵ１０が、受信したテスト信号に基づいて演算処理を実行し（ステップＳ１４）、機能評価ユニット４５０の処理情報取得部４７０が、ＥＣＵ１０から、処理結果の情報を取得するとともに、異常検出部４８０が、処理結果の情報について異常判定を行う（ステップＳ１８）。ＥＣＵ１０の処理結果に異常が見られた場合（Ｓ２２：Ｙｅｓ）、機能評価ユニット４５０の異常情報出力部４９０は、セキュリティ検査ユニット４００に異常の情報を送信し（ステップＳ２６）、セキュリティ検査ユニット４００の診断部４２０は、不正信号を特定する（ステップＳ３０）。ステップＳ１４〜ステップＳ３４までの各処理は、図４に示したフローチャートに基づいて説明した各処理と同様に実行することができる。
【０１１７】  以上説明したように、第３の実施の形態に係るセキュリティ検査システムは、機能評価ユニット４５０が、ランダムに送信されるテスト信号の中から、あらかじめ不正信号候補を抽出してＥＣＵ１０に転送する。そして、機能評価ユニット４５０は、不正信号候補に基づくＥＣＵ１０の演算処理結果の情報についてのみ異常判定を行い、検出された異常の情報をセキュリティ検査ユニット４００にフィードバックする。したがって、第１の実施の形態に係るセキュリティ検査システムと比較して、機能評価ユニット４５０の負荷を低減することができる。
【０１１８】  なお、本実施形態に係るセキュリティ検査システムにおいても、第１の実施の形態の第１の変形例〜第３の変形例を適宜組み合わせてセキュリティ検査が実行されてもよい。例えば、図１４は、本実施形態に係るセキュリティ検査システムに、第１の実施の形態の第２の変形例を組み合わせた構成例を示している。かかる変形例に係るセキュリティ検査システムは、機能評価ユニット４５０の異常情報出力部４９５が、セキュリティ検査ユニット４００に異常の情報を送信するのではなく、機能評価ユニット４５０に備えられた記憶部４９８に異常の情報を出力し、記憶させる。記憶部４９８は、半導体メモリやハードディスク、外付けの記憶装置等からなり、後に、セキュリティ検査ユニット３００が、記憶された異常の情報を読み込み可能になっている。
【０１１９】  例えば、セキュリティ検査ユニット４００と機能評価ユニット４５０とを通信線により接続したり、異常の情報を記憶したハードディスクやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等をセキュリティ検査ユニット４００に接続したりすることにより、セキュリティ検査ユニット４００が異常の情報を読み込んでもよい。これにより、セキュリティ検査ユニット４００の診断部４２０は、ＥＣＵ１０の処理結果の異常の情報と、ランダムに送信されたテスト信号の情報とに基づいて、不正信号を特定することができる。
【０１２０】  図１５は、変形例に係るセキュリティ検査システムによるセキュリティ検査方法のフローチャートを示している。セキュリティ検査ユニット４００、ＥＣＵ１０、及び、機能評価ユニット４５０は、それぞれ、図１３のフローチャートに基づいて説明した手順と同様の手順で、ステップＳ８〜ステップＳ２２の各処理を実行する。変形例に係るセキュリティ検査システムでは、ＥＣＵ１０の処理結果に異常があった場合（Ｓ２２：Ｙｅｓ）、ステップＳ２７において、機能評価ユニット４５０の異常情報出力部４９５が、記憶部４９８にＥＣＵ１０の処理結果の異常の情報を記憶する。
【０１２１】  ステップＳ２２において異常が見られなかった場合（Ｓ２２：Ｎｏ）、あるいは、ステップＳ２７で異常の情報が記憶部４９８に記憶された後、検査すべきテスト信号がすべて終了するまで（Ｓ３４：Ｎｏ）、ステップＳ８に戻って、ここまでの各ステップの処理を繰り返し実行する。
【０１２２】  本実施形態の変形例に係るセキュリティ検査システムによれば、機能評価ユニット４５０の異常検出部４８０により検出された異常の情報を、一旦記憶部４９８に記憶させておき、後で不正信号をまとめて特定することができる。変形例に係るセキュリティ検査システムによれば、例えば、ファジング等のランダムなテスト信号の送信中におけるセキュリティ検査ユニット４００の負荷を低減させることができる。
【０１２３】  ＜＜４．第４の実施の形態＞＞
次に、第４の実施の形態に係るセキュリティ検査システムについて説明する。本実施形態に係るセキュリティ検査システムは、多大な数の入力信号の中からＥＣＵ１０を不正に動作させ得る不正信号の特定を効率的に実行できるように構成されている。図１６は、本実施形態に係るセキュリティ検査システムの全体構成を示すブロック図である。セキュリティ検査システムは、セキュリティ検査ユニット５００と、機能評価ユニット５５０とを備える。以下、各ユニットの構成、及び、セキュリティ検査システムによるセキュリティ検査方法について、第１の実施の形態と異なる点を中心に説明する。
【０１２４】  セキュリティ検査ユニット５００は、例えばＣＰＵ等のプロセッサを備え、テスト信号送信部５１０と、診断部５２０と、記憶部５３０と、テスト信号適合部５４０とを有する。このうち、テスト信号送信部５１０、診断部５２０及び記憶部５３０は、図２に示したセキュリティ検査ユニット１００のテスト信号送信部１１０、診断部１２０及び記憶部１３０と同様の構成とすることができる。テスト信号適合部５４０は、直前までに実行された検査結果に基づいて、テスト信号送信部５１０からＥＣＵ１０に対して送信されるテスト信号の適合を行う。これにより、セキュリティ検査ユニット５００は、セキュリティ検査が効率よく正しい方向へと進行するように、テスト信号を生成することができる。
【０１２５】  例えば、車載ネットワークとしてのＣＡＮシステムにおいて、標準フォーマットのＣＡＮメッセージは、データフレーム内に１１ビット長の識別子（ＩＤ：Ｉｄｅｎｔｉｆｉｅｒ）を含む。拡張フォーマットのＣＡＮメッセージは、標準フォーマットにおける１１ビット長の識別子に加えて、１８ビット長の拡張識別子を含む。標準フォーマットのＣＡＮメッセージの場合、２，０４８種類の識別が可能であり、拡張フォーマットのＣＡＮメッセージの場合、約５，４００，０００種類の識別が可能である。これら個々の識別子を有するＣＡＮメッセージについて、データ内容が異なるすべてのＣＡＮメッセージを送信してセキュリティ検査を行うには、膨大な工数が必要になる。
【０１２６】  そこで、本実施形態に係るセキュリティ検査システムでは、あるテスト条件下においてセキュリティ検査を実行する場合、テスト信号送信部５１０は、まず、識別子が異なる複数のＣＡＮメッセージをテスト信号としてＥＣＵ１０にランダムに送信する。送信されたいずれかのテスト信号に基づくＥＣＵ１０の処理結果に異常が見られた場合、セキュリティ検査ユニット５００の診断部５２０によって不正信号が特定される。つまり、どの識別子を含むＣＡＮメッセージが不正信号であるかが特定される。
【０１２７】  そうすると、テスト信号適合部５４０は、以降の検査用に、不正信号とされたＣＡＮメッセージと同一の識別子を含みデータ内容が異なるＣＡＮメッセージがテスト信号として送信されるように適合する。これにより、テスト信号送信部５１０は、当該識別子を含みデータ内容が異なる複数のＣＡＮメッセージをランダムにＥＣＵ１０に送信する。これにより、以降の検査においては、特定の識別子を含むＣＡＮメッセージに特化したセキュリティ検査が実行される。その結果、すでに不正信号と特定されたＣＡＮメッセージと同一の識別子を有するＣＡＮメッセージであって、データ内容の異なるＣＡＮメッセージについての検査を効率的に行うことができる。つまり、識別子及びデータ内容の異なる大量のＣＡＮメッセージを無作為に送信しつつ不正信号を特定する場合に比べて、不正信号が含まれる可能性の高いＣＡＮメッセージが優先的に検査対象とされるため、セキュリティ検査が効率的に実行されるようになる。
【０１２８】  なお、テスト信号適合部５４０によるテスト信号の適合（絞り込み）の方法は、上記のような識別子を特定する例に限られない。テスト信号適合部５４０は、その他の適宜の条件により、直前までに実行された検査結果に基づいてテスト信号の適合を行ってもよい。
【０１２９】  図１７は、本実施形態に係るセキュリティ検査システムによるセキュリティ検査方法のフローチャートの一例を示している。図１７に示したフローチャートは、ステップＳ７を含む点以外、図４に示したフローチャートと同様のステップＳ８，Ｓ１０，Ｓ１４，Ｓ１８，Ｓ２２，Ｓ２６，Ｓ３０，Ｓ３４を含む。
【０１３０】  まず、セキュリティ検査ユニット５００のテスト信号適合部５４０は、テスト信号送信部５１０からＥＣＵ１０に対して送信させるＣＡＮメッセージ（テスト信号）を適合する（ステップＳ７）。例えば、セキュリティ検査の開始直後において、テスト信号適合部５４０は、複数の異なる識別子を含むＣＡＮメッセージがテスト信号としてランダムに送信されるように設定する。以降、セキュリティ検査ユニット５００、ＥＣＵ１０及び機能評価ユニット１５０は、それぞれ図４のフローチャートに基づいて説明した手順と同様の手順で、ステップＳ８〜ステップＳ３０の各処理を実行する。ステップＳ１０において、セキュリティ検査ユニット５００のテスト信号送信部５１０は、ＥＣＵ１０に対して、テスト信号適合部５４０により設定された複数のテスト信号をランダムに送信する。
【０１３１】  ステップＳ８〜ステップＳ３０における各処理の結果、あるＣＡＮメッセージが不正信号であるか否かが判定された後、テスト信号適合部５４０は、検査を継続するか否かを判別する（ステップＳ３４）。すべてのテスト信号の送信が終了している場合（Ｓ３４：Ｎｏ）、セキュリティ検査システムによるセキュリティ検査が終了する。一方、検査すべきテスト信号が残存する場合（Ｓ３４：Ｙｅｓ）、テスト信号適合部５４０は、テスト信号としてのＣＡＮメッセージの再適合が必要か否かを判別する（ステップＳ３９）。例えば、直前に送信されたテスト信号に基づくＥＣＵ１０の処理結果に異常が見られなかった場合（ステップＳ２２がＮｏ判定であった場合）において、現在の適合（絞り込み）条件によるすべてのテスト信号の送信が終了していない場合には、テスト信号の再適合は不要と判定される（Ｓ３９：Ｎｏ）。この場合、ステップＳ８に戻って、ここまでに説明した処理を繰り返し実行する。
【０１３２】  一方、直前に送信されたテスト信号に基づくＥＣＵ１０の処理結果に異常が見られて不正信号が特定された場合（ステップＳ２２がＹｅｓ判定であった場合）において、テスト信号のさらなる絞り込みが可能な場合には、テスト信号の再適合が要と判定される（Ｓ３９：Ｙｅｓ）。この場合、ステップＳ７に戻って、ここまでに説明した処理を繰り返し実行する。例えば、ステップＳ７において、テスト信号適合部５４０は、直前に不正信号として特定されたＣＡＮメッセージと同一の識別子を含みデータ内容の異なる複数のＣＡＮメッセージがテスト信号としてランダムに送信されるように設定する。これにより、不正信号が含まれる可能性の高いＣＡＮメッセージが優先的に検査対象とされ得る。
【０１３３】  あるいは、ステップＳ３９において、現在の適合（絞り込み）条件によるすべてのＣＡＮメッセージの送信が終了している場合であって、さらに別の適合（絞り込み）が可能な場合においても、テスト信号の再適合が要と判定される（Ｓ３９：Ｙｅｓ）。この場合、ステップＳ７に戻って、別の適合（絞り込み）条件でテスト信号を設定した上で、ここまでに説明した処理を繰り返し実行する。
【０１３４】  以上説明したように、第４の実施の形態に係るセキュリティ検査システムでは、セキュリティ検査ユニット５００から検査対象のＥＣＵ１０に対して送信されるテスト信号として、不正信号が含まれる可能性の高いＣＡＮメッセージが優先的に選択される。したがって、不正信号を特定するセキュリティ検査を効率的に実行することができる。
【０１３５】  なお、本実施形態に係るセキュリティ検査システムにおいても、第１の実施の形態の第１の変形例〜第３の変形例、あるいは、第２の実施の形態又は第３の実施の形態を適宜組み合わせて構成されてもよい。
【０１３６】  ＜＜５．第５の実施の形態＞＞
次に、第５の実施の形態に係るセキュリティ検査システムについて説明する。本実施形態に係るセキュリティ検査システムは、例えばスマートホンや無線電波を発信する電子機器等によるドアロックシステムを司るＥＣＵのセキュリティ検査を実行するためのシステムとして構成される。図１８は、本実施形態に係るセキュリティ検査システムの全体構成を示すブロック図である。セキュリティ検査システムは、セキュリティ検査ユニット６００と、機能評価ユニット６５０とを備える。以下、各ユニットの構成、及び、セキュリティ検査システムによるセキュリティ検査方法について、第１の実施の形態と異なる点を中心に説明する。
【０１３７】  セキュリティ検査ユニット６００は、例えばＣＰＵ等のプロセッサを備え、テスト信号送受信部６１０と、診断部６２０と、記憶部６３０とを有する。このうち診断部６２０及び記憶部６３０は、基本的には図２に示したセキュリティ検査ユニット１００の診断部１２０及び記憶部１３０と同様の構成とすることができる。本実施形態に係るセキュリティ検査システムにおいて、テスト信号送受信部６１０は、ＣＡＮ等の車載用の通信プロトコルではなく、Ｗｉ−ｆｉやＢｌｕｅｔｏｏｔｈ（登録商標）、あるいはＵＳＢ等の通信手段８を介してＥＣＵ１０との間で信号の送受信を行う。
【０１３８】  例えば、テスト信号送受信部６１０は、通信手段８を介して、ドアロックのオンオフの指示信号等をテスト信号として検査対象のＥＣＵ１０に送信する。また、テスト信号送受信部６１０は、通信手段８を介して、テスト信号に基づくＥＣＵ１０の処理結果としてのドアロックの駆動信号をＥＣＵ１０から受信する。テスト信号送受信部６１０が受信したＥＣＵ１０の処理結果の情報は、診断部６２０によっても参照可能になっている。
【０１３９】  機能評価ユニット６５０は、例えばＣＰＵ等のプロセッサと記憶部を備え、テスト条件設定部６５５と、処理情報取得部６６０と、異常検出部６７０と、異常情報出力部６８０とを有する。これらの各部は、基本的には図２に示した機能評価ユニット１５０のテスト条件設定部１５５、処理情報取得部１６０、異常検出部１７０、及び異常情報出力部１８０と同様に構成され得る。
【０１４０】  かかる構成を有する本実施形態に係るセキュリティ検査システムは、テスト信号に対する応答結果をセキュリティ検査ユニット６００に返信可能なＥＣＵ１０であっても、さらに当該テスト信号に基づいてＥＣＵ１０と周辺機器や他のＥＣＵとの間で異常な信号がやり取りされていないかを検査することができる。したがって、セキュリティ検査ユニット６００の診断部６２０は、テスト信号に対する応答がＥＣＵ１０によって適切に行われているかの検査だけでなく、テスト信号によってＥＣＵ１０が異常な動作を起こしていないかを検査することができる。これにより、ＥＣＵ１０のソフトウェアの脆弱性がより的確に発見されやすくなり、セキュリティ検査の精度を向上させることができる。
【０１４１】  なお、本実施形態に係るセキュリティ検査システムにおいても、第１の実施の形態の第１の変形例〜第３の変形例、あるいは、第２の実施の形態、第３の実施の形態又は第４の実施の形態を適宜組み合わせて構成されてもよい。
【０１４２】  以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【０１４３】  例えば、上記各実施形態では、セキュリティ検査ユニットと、機能評価ユニットとが、それぞれ独立した装置として構成された例について説明したが、本発明は係る例に限定されない。図１９に例示するように、セキュリティ検査ユニット１００と機能評価ユニット１５０とは、１つの装置７００内に格納され、それぞれ異なるソフトウェアプログラムが実行されるようになっていてもよい。この場合、機能評価ユニット１５０からセキュリティ検査ユニット１００への異常情報のフィードバックは、装置７００内のフィードバック回路として構成され得る。また、かかる構成の場合、各ユニットの記憶部の一部が共通のメモリ等により構成されてもよい。
【符号の説明】
【０１４４】  １        車載ネットワーク
５        通信バス
１０      ＥＣＵ
８０      表示装置
９０      撮像ユニット
９１，９２，９３    カメラ
１００    セキュリティ検査ユニット（セキュリティ検査装置）
１１０    テスト信号送信部
１２０    診断部
１３０    記憶部
１５０    機能評価ユニット（機能評価装置）
１６０    処理情報取得部
１７０    異常判定部
１８０    異常情報出力部
【図１】
0006718960.tif 000002
【図２】
0006718960.tif 000003
【図３】
0006718960.tif 000004
【図４】
0006718960.tif 000005
【図５】
0006718960.tif 000006
【図６】
0006718960.tif 000007
【図７】
0006718960.tif 000008
【図８】
0006718960.tif 000009
【図９】
0006718960.tif 000010
【図１０】
0006718960.tif 000011
【図１１】
0006718960.tif 000012
【図１２】
0006718960.tif 000013
【図１３】
0006718960.tif 000014
【図１４】
0006718960.tif 000015
【図１５】
0006718960.tif 000016
【図１６】
0006718960.tif 000017
【図１７】
0006718960.tif 000018
【図１８】
0006718960.tif 000019
【図１９】
0006718960.tif 000020