(57)【要約】【課題】ネットワークで送信されるフレームを監視することで不正状態が発生したことを検知し得る不正検知方法を提供する。【解決手段】車載ネットワークシステムにおいてネットワークに接続された監視電子制御ユニットで用いられる不正検知方法では、第１識別子を有するフレームと、第２識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を用いて、ネットワークから受信されたフレームの集合が当該第１条件を満たすか否かを判定し、第１識別子を有するフレームと、第３識別子を有するフレームとの内容の関係についての条件である第２条件を示す不正検知ルール情報を用いて、ネットワークから受信されたフレームの集合が当該第２条件を満たすか否かを判定し、満たされないと判定された条件の数に応じて前記第１種フレームの送信に関する異常度を算定し、算定された異常度に応じて所定フレームを送信する。【選択図】図６
2020102886.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットで用いられる不正検知方法であって、
前記監視電子制御ユニットは不正検知ルール情報を保持し、前記不正検知ルール情報は、第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての条件である第１条件を示し、前記第１種フレームと、前記第１識別子とも前記第２識別子とも異なる第３識別子を有するデータフレームである第３種フレームとの、データフィールドの内容の関係についての条件である第２条件を示し、
前記不正検知方法は、
前記ネットワーク上に送信されたデータフレームを逐次受信する受信ステップと、
前記受信ステップで受信された前記第１種フレーム及び前記第２種フレームが、前記第１条件を満たすか否かを判定し、前記受信ステップで受信された前記第１種フレーム及び前記第３種フレームが、前記第２条件を満たすか否かを判定する不正判定ステップと、
前記第１条件及び前記第２条件のうち前記不正判定ステップで満たされないと判定された条件の数に応じて前記第１種フレームの送信に関する異常度を算定する異常度算定ステップと、
前記異常度算定ステップにより算定された異常度が所定異常条件を満たす場合に、前記第１種フレームを送信する電子制御ユニットが受信可能となるように所定フレームを送信する送信ステップとを含む
不正検知方法。
【請求項２】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットで用いられる不正検知方法であって、
前記監視電子制御ユニットは不正検知ルール情報と侵入検知ルール情報を保持し、前記不正検知ルール情報は、第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての条件である第１条件を示し、前記侵入検知ルール情報はデータフレームの識別子毎に定められるデータフレームについての条件を示し、前記侵入検知ルール情報が示す、一の識別子のデータフレームについての条件は、当該識別子を有するデータフレーム間の受信間隔と、一定時間内に受信される当該識別子を有するデータフレームの数と、当該識別子を有するデータフレーム間でのデータフィールドから抽出される値の差異である変化量とのいずれかに関する条件を含み、
前記不正検知方法は、
前記ネットワーク上に送信されたデータフレームを逐次受信する受信ステップと、
前記受信ステップで受信された前記第１種フレーム及び前記第２種フレームが、前記第１条件を満たすか否かを判定する不正判定ステップと、
前記侵入検知ルール情報を用いて、前記受信ステップで前記ネットワークから受信されたデータフレームが、当該侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定ステップと、
前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処ステップと、
前記ネットワークから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証ステップとを含み、
前記対処ステップでは、前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果と前記検証ステップでの検証結果との組み合わせに応じて対処処理の内容の前記決定を行い、一定条件下で当該対処処理の内容として、認証用の鍵の更新に関する鍵更新処理を決定する
不正検知方法。
【請求項３】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットで用いられる不正検知方法であって、
第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を用いて、前記ネットワークから受信されたフレームの集合が当該第１条件を満たすか否かを判定し、当該第１条件が満たされない場合に不正状態が発生したと検知し、
前記不正検知方法は更に、前記不正状態が発生したと検知した場合において、対処処理を実行し、
前記対処処理は、
前記ネットワークに接続された特定の電子制御ユニットが受信可能となるように診断用のフレームを送信することと、
前記ネットワークに接続された特定の電子制御ユニットの正当性をチャレンジレスポンス認証により確認することと、
前記ネットワークにおける診断ポートの確認を促すための通知を行うことと、
前記車載ネットワークシステムを搭載する車両の運転者に停車又は徐行を促すための通知を行うことと、
前記車載ネットワークシステムを搭載する車両の運転者にディーラへ行くことを促すための通知を行うことと、
前記車載ネットワークシステムを搭載する車両の運転者に不正状態が発生していることの通知を行うことと、
前記ネットワークに接続された電子制御ユニットに、特定の識別子を有するデータフレームが不正であることの通知を行うことと、
前記車載ネットワークシステムを搭載する車両の外部のサーバに、不正なデータフレームが送信されていることの通知を行うことと、
前記車載ネットワークシステムを搭載する車両の近隣の車両又は路側機へ、不正状態が発生していることの通知を行うことと、
前記車載ネットワークシステムを予め定めたフェールセーフモードに切り替えることと、
不正状態が発生したことをログとして記録することとのいずれかを含む
不正検知方法。
【請求項４】
前記不正検知ルール情報は、前記第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての前記第１条件を示し、
前記不正検知方法は、
前記ネットワーク上に送信されたデータフレームを逐次受信する受信ステップと、
前記受信ステップで受信された前記第１種フレーム及び前記第２種フレームが、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定ステップとを含む
請求項３記載の不正検知方法。
【請求項５】
前記不正検知ルール情報は、前記第１条件として、１つ以上の前記第１種フレームにおけるデータフィールドの内容に基づいて特定される値と、１つ以上の前記第２種フレームのデータフィールドの内容との関係を規定し、
前記不正判定ステップでは、１つ又は複数の単位時間それぞれにおいて前記受信ステップで受信された、各前記第１種フレームにおけるデータフィールドの内容に基づく第１値と、前記１つ又は複数の単位時間のうち最後から１つ以上の単位時間それぞれにおいて前記受信ステップで受信された、各前記第２種フレームにおけるデータフィールドの内容に基づく第２値とを用いて、前記第１条件が満たされるか否かを区別する所定演算処理を実行することにより、前記判定を行う
請求項４記載の不正検知方法。
【請求項６】
前記不正検知ルール情報は、前記第１条件として、複数の前記第１種フレームにおけるデータフィールドの内容に基づいて特定される値と、１つ以上の前記第２種フレームのデータフィールドの内容との関係を規定し、
前記不正判定ステップでは、複数の単位時間それぞれにおいて前記受信ステップで受信された、各前記第１種フレームにおけるデータフィールドの内容に基づく第１値と、前記複数の単位時間のうち最後から１つ以上の単位時間それぞれにおいて前記受信ステップで受信された、各前記第２種フレームにおけるデータフィールドの内容に基づく第２値とを用いて、前記第１条件が満たされるか否かを区別する所定演算処理を実行することにより、前記判定を行う
請求項４記載の不正検知方法。
【請求項７】
前記所定演算処理は、質的変数の値毎に量的変数の値の範囲を規定した基準に基づいて、前記第２値を質的変数の値として用いて算定される量的変数の値の範囲に前記第１値が該当するか否かにより、前記第１条件が満たされるか否かを区別する処理である
請求項５又は６記載の不正検知方法。
【請求項８】
前記所定演算処理は、目的変数と説明変数との関係を示す関係式に基づいて、前記第１値を説明変数の値として用いて算定される目的変数の値の範囲に前記第２値が該当するか否かにより、前記第１条件が満たされるか否かを区別する処理である
請求項５又は６記載の不正検知方法。
【請求項９】
前記不正検知ルール情報は、前記第１条件として、１つ以上の前記第１種フレームにおけるデータフィールドの内容と、１つ以上の前記第２種フレームのデータフィールドの内容との関係を、ピアソンの積率相関係数、最大情報係数、又は、正準相関係数を用いた関係式で規定する
請求項４記載の不正検知方法。
【請求項１０】
前記不正検知ルール情報は更に、前記第１種フレームと、前記第１識別子とも前記第２識別子とも異なる第３識別子を有するデータフレームである第３種フレームとの、データフィールドの内容の関係についての条件である第２条件を示し、
前記不正判定ステップでは、更に、前記受信ステップで受信された前記第１種フレーム及び前記第３種フレームが、前記不正検知ルール情報が示す前記第２条件を満たすか否かを判定し、
前記不正検知方法は更に、
前記第１条件及び前記第２条件のうち前記不正判定ステップで満たされないと判定された条件の数に応じて前記第１種フレームの送信に関する異常度を算定する異常度算定ステップと、
前記異常度算定ステップにより算定された異常度が所定異常条件を満たす場合に、前記第１種フレームを送信する電子制御ユニットが受信可能となるように所定フレームを送信する送信ステップとを含む
請求項４〜９のいずれか一項に記載の不正検知方法。
【請求項１１】
前記不正検知方法は更に、
データフレームの識別子毎に定められるデータフレームについての条件を示す侵入検知ルール情報を用いて、前記受信ステップで前記ネットワークから受信されたデータフレームが、当該侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定ステップと、
前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処ステップとを含み、
前記侵入検知ルール情報が示す、一の識別子のデータフレームについての前記条件は、当該識別子を有するデータフレーム間の受信間隔と、一定時間内に受信される当該識別子を有するデータフレームの数と、当該識別子を有するデータフレーム間でのデータフィールドから抽出される値の差異である変化量とのいずれかに関する条件を含む
請求項４〜１０のいずれか一項に記載の不正検知方法。
【請求項１２】
前記不正検知方法は更に、前記ネットワークから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証ステップを含み、
前記対処ステップでは、前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果と前記検証ステップでの検証結果との組み合わせに応じて対処処理の内容の前記決定を行い、一定条件下で当該対処処理の内容として、認証用の鍵の更新に関する鍵更新処理を決定する
請求項１１記載の不正検知方法。
【請求項１３】
前記不正検知方法は更に、
前記対処ステップで前記鍵更新処理を実行した後において前記受信ステップで受信されたデータフレームについて、前記不正判定ステップでの前記判定、前記侵入判定ステップでの前記判定、及び、前記検証ステップでの前記検証を行い、当該不正判定ステップでの判定結果と当該侵入判定ステップでの判定結果と当該検証ステップでの検証結果との組み合わせが所定条件を満たす場合に、前記鍵更新処理とは異なる対処処理を行う追加対処ステップを含む
請求項２または１２記載の不正検知方法。
【請求項１４】
前記不正検知方法は更に、
前記不正状態が発生したと検知した場合において、当該不正状態の発生に関係があったフレームが送信されたサブネットワークと、当該フレームを送信する電子制御ユニットと、当該フレームの識別子とのいずれかを特定する
請求項３〜１２のいずれか一項に記載の不正検知方法。
【請求項１５】
前記不正検知方法では、前記ネットワークから受信されたフレームの集合に基づく多変量解析により、相互に異なる識別子を有するフレーム同士の間でのフレームの内容の関係を特定し、特定した関係を表す条件を示すように前記不正検知ルール情報を生成又は更新する
請求項１〜１４のいずれか一項に記載の不正検知方法。
【請求項１６】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットであって、
第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、
前記不正検知ルール情報は、前記第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての前記第１条件を示し、前記第１種フレームと、前記第１識別子とも前記第２識別子とも異なる第３識別子を有するデータフレームである第３種フレームとの、データフィールドの内容の関係についての条件である第２条件を示し、
前記ネットワークからフレームを逐次受信する受信部と、
前記受信部で受信された前記第１種フレーム及び前記第２種フレームが、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定し、かつ、前記受信部で受信された前記第１種フレーム及び前記第３種フレームが、前記不正検知ルール情報が示す前記第２条件を満たすか否かを判定する不正判定部であって、前記第１条件及び前記第２条件のうち前記不正判定部で満たされないと判定された条件の数に応じて前記第１種フレームの送信に関する異常度を算定する不正判定部と、
前記不正判定部により算定された異常度が所定異常条件を満たす場合に、前記第１種フレームを送信する電子制御ユニットが受信可能となるように所定フレームを送信する送信部とを備える
監視電子制御ユニット。
【請求項１７】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットであって、
第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、
前記不正検知ルール情報は、前記第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての前記第１条件を示し、
前記ネットワークからフレームを逐次受信する受信部と、
前記受信部で受信された前記第１種フレーム及び前記第２種フレームが、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定部と、
データフレームの識別子毎に定められるデータフレームについての条件を示す侵入検知ルール情報を用いて、前記受信部で前記ネットワークから受信されたデータフレームが、当該侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定部と、
前記侵入検知ルール情報が示す、一の識別子のデータフレームについての前記条件は、当該識別子を有するデータフレーム間の受信間隔と、一定時間内に受信される当該識別子を有するデータフレームの数と、当該識別子を有するデータフレーム間でのデータフィールドから抽出される値の差異である変化量とのいずれかに関する条件を含み、
前記不正判定部での判定結果と前記侵入判定部での判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処部と、
前記ネットワークから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証部とを備え、
前記対処部では、前記不正判定部での判定結果と前記侵入判定部での判定結果と前記検証部での検証結果との組み合わせに応じて対処処理の内容の前記決定を行い、一定条件下で当該対処処理の内容として、認証用の鍵の更新に関する鍵更新処理を決定する
監視電子制御ユニット。
【請求項１８】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットであって、
第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、
前記ネットワークからフレームを逐次受信する受信部と、
前記受信部により前記ネットワークから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定し、当該第１条件が満たされない場合に不正状態が発生したと検知する不正判定部とを備え、
前記監視電子制御ユニットは更に、前記不正状態が発生したと検知した場合において、対処処理を実行し、
前記対処処理は、
前記ネットワークに接続された特定の電子制御ユニットが受信可能となるように診断用のフレームを送信することと、
前記ネットワークに接続された特定の電子制御ユニットの正当性をチャレンジレスポンス認証により確認することと、
前記ネットワークにおける診断ポートの確認を促すための通知を行うことと、
前記車載ネットワークシステムを搭載する車両の運転者に停車又は徐行を促すための通知を行うことと、
前記車載ネットワークシステムを搭載する車両の運転者にディーラへ行くことを促すための通知を行うことと、
前記車載ネットワークシステムを搭載する車両の運転者に不正状態が発生していることの通知を行うことと、
前記ネットワークに接続された電子制御ユニットに、特定の識別子を有するデータフレームが不正であることの通知を行うことと、
前記車載ネットワークシステムを搭載する車両の外部のサーバに、不正なデータフレームが送信されていることの通知を行うことと、
前記車載ネットワークシステムを搭載する車両の近隣の車両又は路側機へ、不正状態が発生していることの通知を行うことと、
前記車載ネットワークシステムを予め定めたフェールセーフモードに切り替えることと、
不正状態が発生したことをログとして記録することとのいずれかを含む
監視電子制御ユニット。
【請求項１９】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、
第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、
前記不正検知ルール情報は、前記第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての前記第１条件を示し、前記第１種フレームと、前記第１識別子とも前記第２識別子とも異なる第３識別子を有するデータフレームである第３種フレームとの、データフィールドの内容の関係についての条件である第２条件を示し、
前記ネットワークからフレームを逐次受信する受信部と、
前記受信部で受信された前記第１種フレーム及び前記第２種フレームが、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定し、かつ、前記受信部で受信された前記第１種フレーム及び前記第３種フレームが、前記不正検知ルール情報が示す前記第２条件を満たすか否かを判定する不正判定部であって、前記第１条件及び前記第２条件のうち前記不正判定部で満たされないと判定された条件の数に応じて前記第１種フレームの送信に関する異常度を算定する不正判定部と、
前記不正判定部により算定された異常度が所定異常条件を満たす場合に、前記第１種フレームを送信する電子制御ユニットが受信可能となるように所定フレームを送信する送信部とを備える
車載ネットワークシステム。
【請求項２０】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、
第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、
前記不正検知ルール情報は、前記第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての前記第１条件を示し、
前記ネットワークからフレームを逐次受信する受信部と、
前記受信部で受信された前記第１種フレーム及び前記第２種フレームが、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定部と、
データフレームの識別子毎に定められるデータフレームについての条件を示す侵入検知ルール情報を用いて、前記受信部で前記ネットワークから受信されたデータフレームが、当該侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定部と、
前記侵入検知ルール情報が示す、一の識別子のデータフレームについての前記条件は、当該識別子を有するデータフレーム間の受信間隔と、一定時間内に受信される当該識別子を有するデータフレームの数と、当該識別子を有するデータフレーム間でのデータフィールドから抽出される値の差異である変化量とのいずれかに関する条件を含み、
前記不正判定部での判定結果と前記侵入判定部での判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処部と、
前記ネットワークから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証部とを備え、
前記対処部では、前記不正判定部での判定結果と前記侵入判定部での判定結果と前記検証部での検証結果との組み合わせに応じて対処処理の内容の前記決定を行い、一定条件下で当該対処処理の内容として、認証用の鍵の更新に関する鍵更新処理を決定する
車載ネットワークシステム。
【請求項２１】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、
第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、
不正状態が発生したか否かを判定するために、前記ネットワークから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定部とを備え、
前記車載ネットワークシステムは更に、前記不正状態が発生したと検知した場合において、対処処理を実行し、
前記対処処理は、
前記ネットワークに接続された特定の電子制御ユニットが受信可能となるように診断用のフレームを送信することと、
前記ネットワークに接続された特定の電子制御ユニットの正当性をチャレンジレスポンス認証により確認することと、
前記ネットワークにおける診断ポートの確認を促すための通知を行うことと、
前記車載ネットワークシステムを搭載する車両の運転者に停車又は徐行を促すための通知を行うことと、
前記車載ネットワークシステムを搭載する車両の運転者にディーラへ行くことを促すための通知を行うことと、
前記車載ネットワークシステムを搭載する車両の運転者に不正状態が発生していることの通知を行うことと、
前記ネットワークに接続された電子制御ユニットに、特定の識別子を有するデータフレームが不正であることの通知を行うことと、
前記車載ネットワークシステムを搭載する車両の外部のサーバに、不正なデータフレームが送信されていることの通知を行うことと、
前記車載ネットワークシステムを搭載する車両の近隣の車両又は路側機へ、不正状態が発生していることの通知を行うことと、
前記車載ネットワークシステムを予め定めたフェールセーフモードに切り替えることと、
不正状態が発生したことをログとして記録することとのいずれかを含む
車載ネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御ユニットが通信を行う車載ネットワークにおける不正なフレームの送信を検知する技術に関する。
【背景技術】
【０００２】
近年、自動車の中のシステムには、電子制御ユニット（ＥＣＵ：Electronic Control Unit）と呼ばれる装置が多数配置されている。これらのＥＣＵをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、ＩＳＯ１１８９８−１で規定されているＣＡＮ（Controller Area Network）という規格が存在する。
【０００３】
ＣＡＮでは、通信路は２本のワイヤで構成されたバスであり、バスに接続されているＥＣＵはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信する送信ノードは、２本のバスに電圧をかけ、バス間で電位差を発生させることによって、レセシブと呼ばれる「１」の値と、ドミナントと呼ばれる「０」の値を送信する。複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームとは、ドミナントを６ｂｉｔ連続して送信することで、送信ノードや他の受信ノードにフレームの異常を通知するものである。
【０００４】
またＣＡＮでは送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎にＩＤを付けて送信し（つまりバスに信号を送出し）、各受信ノードは予め定められたＩＤのフレームのみを受信する（つまりバスから信号を読み取る）。また、ＣＳＭＡ／ＣＡ（Carrier Sense Multiple Access/Collision Avoidance）方式を採用しており、複数ノードの同時送信時にはメッセージＩＤによる調停が行われ、メッセージＩＤの値が小さいフレームが優先的に送信される。
【０００５】
ＣＡＮの車載ネットワークシステムについては、攻撃者がバスにアクセスして不正なフレーム（攻撃のためのフレーム）を送信することでＥＣＵを不正に制御するといった脅威が存在し、セキュリティ対策が検討されている。
【０００６】
例えば特許文献１に記載された車載ネットワーク監視装置は、ＣＡＮのバスに送信されたフレームについて測定される受信間隔と予め規定された通信間隔との差が規定された基準範囲から外れる場合にそのフレームを不正と判断する不正検知方法を行う。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第５６６４７９９号公報
【特許文献２】国際公開第２０１５／０４１１６１号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１のような不正検知方法では、攻撃者が、正規のＥＣＵのファームウェアを不正に書き換えることで支配し、そのＥＣＵに、車載ネットワークシステムで規定された正規の送信間隔で、攻撃のためのフレームを送信させる場合には、その攻撃のためのフレームを検知できない。また、ＥＣＵのファームウェアが書き換えられなくても、マルウェア（不正なプログラム）がＥＣＵ上で実行されると同様の状況が発生し、そのＥＣＵがＣＡＮのバスに送信する、攻撃のためのフレームを検知できない。また、特許文献２は、ＥＣＵと通信することでＥＣＵのプログラム又はデータの不正な書き換えを検出する技術を示すが、この技術を用いて車載ネットワークのバスに接続された各ＥＣＵの不正な書き換えを随時確認するためには各ＥＣＵとの通信が必要となり、バストラフィック量の増大という弊害が生じてしまう。
【０００９】
そこで、本発明は、ファームウェアの不正な書き換え、マルウェアの実行等によりＥＣＵが不正状態になった場合においても、バスで送信されるフレームを監視することで不正状態（異常）が発生したことを検知し得る不正検知方法を提供する。また、本発明は、その不正検知方法を用いる車載ネットワークシステム、及び、その車載ネットワークシステムにおいて不正検知を行う監視電子制御ユニット（監視ＥＣＵ）を提供する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために本発明の一態様に係る不正検知方法は、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットで用いられる不正検知方法であって、前記監視電子制御ユニットは不正検知ルール情報を保持し、前記不正検知ルール情報は、第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての条件である第１条件を示し、前記第１種フレームと、前記第１識別子とも前記第２識別子とも異なる第３識別子を有するデータフレームである第３種フレームとの、データフィールドの内容の関係についての条件である第２条件を示し、前記不正検知方法は、前記ネットワーク上に送信されたデータフレームを逐次受信する受信ステップと、前記受信ステップで受信された前記第１種フレーム及び前記第２種フレームが、前記第１条件を満たすか否かを判定し、前記受信ステップで受信された前記第１種フレーム及び前記第３種フレームが、前記第２条件を満たすか否かを判定する不正判定ステップと、前記第１条件及び前記第２条件のうち前記不正判定ステップで満たされないと判定された条件の数に応じて前記第１種フレームの送信に関する異常度を算定する異常度算定ステップと、前記異常度算定ステップにより算定された異常度が所定異常条件を満たす場合に、前記第１種フレームを送信する電子制御ユニットが受信可能となるように所定フレームを送信する送信ステップとを含む。
【００１１】
また、上記課題を解決するために本発明の他の一態様に係る不正検知方法は、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットで用いられる不正検知方法であって、前記監視電子制御ユニットは不正検知ルール情報と侵入検知ルール情報を保持し、前記不正検知ルール情報は、第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての条件である第１条件を示し、前記侵入検知ルール情報はデータフレームの識別子毎に定められるデータフレームについての条件を示し、前記侵入検知ルール情報が示す、一の識別子のデータフレームについての条件は、当該識別子を有するデータフレーム間の受信間隔と、一定時間内に受信される当該識別子を有するデータフレームの数と、当該識別子を有するデータフレーム間でのデータフィールドから抽出される値の差異である変化量とのいずれかに関する条件を含み、前記不正検知方法は、前記ネットワーク上に送信されたデータフレームを逐次受信する受信ステップと、前記受信ステップで受信された前記第１種フレーム及び前記第２種フレームが、前記第１条件を満たすか否かを判定する不正判定ステップと、前記侵入検知ルール情報を用いて、前記受信ステップで前記ネットワークから受信されたデータフレームが、当該侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定ステップと、前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処ステップと、前記ネットワークから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証ステップとを含み、前記対処ステップでは、前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果と前記検証ステップでの検証結果との組み合わせに応じて対処処理の内容の前記決定を行い、一定条件下で当該対処処理の内容として、認証用の鍵の更新に関する鍵更新処理を決定する。
【００１２】
また、上記課題を解決するために本発明の他の一態様に係る不正検知方法は、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットで用いられる不正検知方法であって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を用いて、前記ネットワークから受信されたフレームの集合が当該第１条件を満たすか否かを判定し、当該第１条件が満たされない場合に不正状態が発生したと検知し、前記不正検知方法は更に、前記不正状態が発生したと検知した場合において、対処処理を実行し、前記対処処理は、前記ネットワークに接続された特定の電子制御ユニットが受信可能となるように診断用のフレームを送信することと、前記ネットワークに接続された特定の電子制御ユニットの正当性をチャレンジレスポンス認証により確認することと、前記ネットワークにおける診断ポートの確認を促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者に停車又は徐行を促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者にディーラへ行くことを促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者に不正状態が発生していることの通知を行うことと、前記ネットワークに接続された電子制御ユニットに、特定の識別子を有するデータフレームが不正であることの通知を行うことと、前記車載ネットワークシステムを搭載する車両の外部のサーバに、不正なデータフレームが送信されていることの通知を行うことと、前記車載ネットワークシステムを搭載する車両の近隣の車両又は路側機へ、不正状態が発生していることの通知を行うことと、前記車載ネットワークシステムを予め定めたフェールセーフモードに切り替えることと、不正状態が発生したことをログとして記録することとのいずれかを含む。
【００１３】
また、上記課題を解決するために本発明の一態様に係る監視電子制御ユニットは、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットであって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、前記不正検知ルール情報は、前記第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての前記第１条件を示し、前記第１種フレームと、前記第１識別子とも前記第２識別子とも異なる第３識別子を有するデータフレームである第３種フレームとの、データフィールドの内容の関係についての条件である第２条件を示し、前記ネットワークからフレームを逐次受信する受信部と、前記受信部で受信された前記第１種フレーム及び前記第２種フレームが、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定し、かつ、前記受信部で受信された前記第１種フレーム及び前記第３種フレームが、前記不正検知ルール情報が示す前記第２条件を満たすか否かを判定する不正判定部であって、前記第１条件及び前記第２条件のうち前記不正判定部で満たされないと判定された条件の数に応じて前記第１種フレームの送信に関する異常度を算定する不正判定部と、前記不正判定部により算定された異常度が所定異常条件を満たす場合に、前記第１種フレームを送信する電子制御ユニットが受信可能となるように所定フレームを送信する送信部とを備える。
【００１４】
また、上記課題を解決するために本発明の他の一態様に係る監視電子制御ユニットは、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットであって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、前記不正検知ルール情報は、前記第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての前記第１条件を示し、前記ネットワークからフレームを逐次受信する受信部と、前記受信部で受信された前記第１種フレーム及び前記第２種フレームが、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定部と、データフレームの識別子毎に定められるデータフレームについての条件を示す侵入検知ルール情報を用いて、前記受信部で前記ネットワークから受信されたデータフレームが、当該侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定部と、前記侵入検知ルール情報が示す、一の識別子のデータフレームについての前記条件は、当該識別子を有するデータフレーム間の受信間隔と、一定時間内に受信される当該識別子を有するデータフレームの数と、当該識別子を有するデータフレーム間でのデータフィールドから抽出される値の差異である変化量とのいずれかに関する条件を含み、前記不正判定部での判定結果と前記侵入判定部での判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処部と、前記ネットワークから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証部とを備え、前記対処部では、前記不正判定部での判定結果と前記侵入判定部での判定結果と前記検証部での検証結果との組み合わせに応じて対処処理の内容の前記決定を行い、一定条件下で当該対処処理の内容として、認証用の鍵の更新に関する鍵更新処理を決定する。
【００１５】
また、上記課題を解決するために本発明の他の一態様に係る監視電子制御ユニットは、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記ネットワークに接続された監視電子制御ユニットであって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、前記ネットワークからフレームを逐次受信する受信部と、前記受信部により前記ネットワークから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定し、当該第１条件が満たされない場合に不正状態が発生したと検知する不正判定部とを備え、前記監視電子制御ユニットは更に、前記不正状態が発生したと検知した場合において、対処処理を実行し、前記対処処理は、前記ネットワークに接続された特定の電子制御ユニットが受信可能となるように診断用のフレームを送信することと、前記ネットワークに接続された特定の電子制御ユニットの正当性をチャレンジレスポンス認証により確認することと、前記ネットワークにおける診断ポートの確認を促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者に停車又は徐行を促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者にディーラへ行くことを促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者に不正状態が発生していることの通知を行うことと、前記ネットワークに接続された電子制御ユニットに、特定の識別子を有するデータフレームが不正であることの通知を行うことと、前記車載ネットワークシステムを搭載する車両の外部のサーバに、不正なデータフレームが送信されていることの通知を行うことと、前記車載ネットワークシステムを搭載する車両の近隣の車両又は路側機へ、不正状態が発生していることの通知を行うことと、前記車載ネットワークシステムを予め定めたフェールセーフモードに切り替えることと、不正状態が発生したことをログとして記録することとのいずれかを含む。
【００１６】
また、上記課題を解決するために本発明の一態様に係る車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、前記不正検知ルール情報は、前記第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての前記第１条件を示し、前記第１種フレームと、前記第１識別子とも前記第２識別子とも異なる第３識別子を有するデータフレームである第３種フレームとの、データフィールドの内容の関係についての条件である第２条件を示し、前記ネットワークからフレームを逐次受信する受信部と、前記受信部で受信された前記第１種フレーム及び前記第２種フレームが、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定し、かつ、前記受信部で受信された前記第１種フレーム及び前記第３種フレームが、前記不正検知ルール情報が示す前記第２条件を満たすか否かを判定する不正判定部であって、前記第１条件及び前記第２条件のうち前記不正判定部で満たされないと判定された条件の数に応じて前記第１種フレームの送信に関する異常度を算定する不正判定部と、前記不正判定部により算定された異常度が所定異常条件を満たす場合に、前記第１種フレームを送信する電子制御ユニットが受信可能となるように所定フレームを送信する送信部とを備える。
【００１７】
また、上記課題を解決するために本発明の他の一態様に係る車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、前記不正検知ルール情報は、前記第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての前記第１条件を示し、前記ネットワークからフレームを逐次受信する受信部と、前記受信部で受信された前記第１種フレーム及び前記第２種フレームが、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定部と、データフレームの識別子毎に定められるデータフレームについての条件を示す侵入検知ルール情報を用いて、前記受信部で前記ネットワークから受信されたデータフレームが、当該侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定部と、前記侵入検知ルール情報が示す、一の識別子のデータフレームについての前記条件は、当該識別子を有するデータフレーム間の受信間隔と、一定時間内に受信される当該識別子を有するデータフレームの数と、当該識別子を有するデータフレーム間でのデータフィールドから抽出される値の差異である変化量とのいずれかに関する条件を含み、前記不正判定部での判定結果と前記侵入判定部での判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処部と、前記ネットワークから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証部とを備え、前記対処部では、前記不正判定部での判定結果と前記侵入判定部での判定結果と前記検証部での検証結果との組み合わせに応じて対処処理の内容の前記決定を行い、一定条件下で当該対処処理の内容として、認証用の鍵の更新に関する鍵更新処理を決定する。
【００１８】
また、上記課題を解決するために本発明の他の一態様に係る車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、不正状態が発生したか否かを判定するために、前記ネットワークから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定部とを備え、前記車載ネットワークシステムは更に、前記不正状態が発生したと検知した場合において、対処処理を実行し、前記対処処理は、前記ネットワークに接続された特定の電子制御ユニットが受信可能となるように診断用のフレームを送信することと、前記ネットワークに接続された特定の電子制御ユニットの正当性をチャレンジレスポンス認証により確認することと、前記ネットワークにおける診断ポートの確認を促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者に停車又は徐行を促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者にディーラへ行くことを促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者に不正状態が発生していることの通知を行うことと、前記ネットワークに接続された電子制御ユニットに、特定の識別子を有するデータフレームが不正であることの通知を行うことと、前記車載ネットワークシステムを搭載する車両の外部のサーバに、不正なデータフレームが送信されていることの通知を行うことと、前記車載ネットワークシステムを搭載する車両の近隣の車両又は路側機へ、不正状態が発生していることの通知を行うことと、前記車載ネットワークシステムを予め定めたフェールセーフモードに切り替えることと、不正状態が発生したことをログとして記録することとのいずれかを含む。
【００１９】
上記課題を解決するために本発明の一態様に係る不正検知方法は、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて不正状態が発生したことを検知するための不正検知方法であって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を用いて、前記バスから受信されたフレームの集合が当該第１条件を満たすか否かを判定し、当該第１条件が満たされない場合に不正状態が発生したと検知する不正検知方法である。
【００２０】
また、上記課題を解決するために本発明の一態様に係る監視電子制御ユニット（監視ＥＣＵ）は、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記バスに接続された監視電子制御ユニットであって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、前記バスからフレームを逐次受信する受信部と、前記受信部により前記バスから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定部とを備える監視電子制御ユニットである。
【００２１】
また、上記課題を解決するために本発明の一態様に係る車載ネットワークシステムは、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、不正状態が発生したか否かを判定するために、前記バスから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定部とを備える車載ネットワークシステムである。
【発明の効果】
【００２２】
本発明によれば、ファームウェアの不正な書き換え或いはマルウェアの実行によりＥＣＵが不正状態になった場合に、そのＥＣＵが送信するフレームと他のＥＣＵが送信するフレームとの関係が乱れること等から、不正状態が発生したことが検知され得る。
【図面の簡単な説明】
【００２３】
【図１】実施の形態１に係る車載ネットワークシステムの全体構成を示す図である。
【図２】ＣＡＮプロトコルで規定されるデータフレームのフォーマットを示す図である。
【図３】ＣＡＮプロトコルで規定されるエラーフレームのフォーマットを示す図である。
【図４】実施の形態１に係る監視ＥＣＵの構成図である。
【図５】実施の形態１に係る監視ＥＣＵのフレーム受信履歴保持部が保持するフレーム受信履歴の一例を示す図である。
【図６】実施の形態１に係る監視ＥＣＵの不正検知ルール保持部が保持する不正検知ルール情報の一例を示す図である。
【図７】実施の形態１に係る監視ＥＣＵの不正判定結果保持部が保持する不正判定結果の一例を示す図である。
【図８】実施の形態１に係る監視ＥＣＵのＥＣＵ情報テーブル保持部が保持するＥＣＵ情報テーブルの一例を示す図である。
【図９】実施の形態１に係るＥＣＵの構成図である。
【図１０】実施の形態１に係るＥＣＵが送信するデータフレームの一例を示す図である。
【図１１】実施の形態１に係る監視ＥＣＵの動作の一例を示すフローチャートである。
【図１２】実施の形態１に係る車載ネットワークシステムにおけるバス監視の動作例を示す図である。
【図１３】実施の形態２に係る車載ネットワークシステムの全体構成を示す図である。
【図１４】実施の形態２に係る監視ＥＣＵの構成図である。
【図１５】実施の形態２に係る監視ＥＣＵのフレーム受信履歴保持部が保持するフレーム受信履歴の一例を示す図である。
【図１６】実施の形態２に係る監視ＥＣＵの侵入検知ルール保持部が保持する侵入検知ルール情報の一例を示す図である。
【図１７】実施の形態２に係る監視ＥＣＵの侵入判定結果保持部が保持する侵入判定結果の一例を示す図である。
【図１８】実施の形態２に係る監視ＥＣＵの異常対応テーブル保持部が保持する異常対応テーブルの一例を示す図である。
【図１９】実施の形態２に係る監視ＥＣＵの動作の一例を示すフローチャートである。
【図２０】実施の形態２に係る車載ネットワークシステムにおけるバス監視の動作例１を示す図である。
【図２１】実施の形態２に係る車載ネットワークシステムにおけるバス監視の動作例２を示す図である。
【図２２】実施の形態３に係る車載ネットワークシステムの全体構成を示す図である。
【図２３】実施の形態３に係る監視ＥＣＵの構成図である。
【図２４】実施の形態３に係る監視ＥＣＵのＭＡＣ検証部の構成図である。
【図２５】実施の形態３に係る監視ＥＣＵのフレーム受信履歴保持部が保持するフレーム受信履歴の一例を示す図である。
【図２６】実施の形態３に係る監視ＥＣＵの不正判定結果保持部が保持する不正判定結果の一例を示す図である。
【図２７】実施の形態３に係る監視ＥＣＵの侵入判定結果保持部が保持する侵入判定結果の一例を示す図である。
【図２８】実施の形態３に係る監視ＥＣＵの異常対応テーブル保持部が保持する異常対応テーブルの一例を示す図である。
【図２９】実施の形態３に係るＥＣＵの構成図である。
【図３０】実施の形態３に係る車載ネットワークシステムにおけるバス監視の動作例１を示す図である。
【図３１】実施の形態３に係る車載ネットワークシステムにおけるバス監視の動作例２を示す図である。
【発明を実施するための形態】
【００２４】
本発明の一態様に係る不正検知方法は、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて不正状態が発生したことを検知するための不正検知方法であって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を用いて、前記バスから受信されたフレームの集合が当該第１条件を満たすか否かを判定し、当該第１条件が満たされない場合に不正状態が発生したと検知する不正検知方法である。これにより、例えば正常状態において満たされるように第１条件を規定しておけば、ファームウェアの不正な書き換え或いはマルウェアの実行により電子制御ユニット（ＥＣＵ）が不正状態になった場合に、そのＥＣＵが送信するフレームと例えば他のＥＣＵが送信するフレームとの関係が乱れることで、第１条件が満たされなくなり得るので、バスの監視によって、不正状態が発生したことが検知され得る。
【００２５】
また、前記複数の電子制御ユニットは、前記バスを介してＣＡＮ（Controller Area Network）プロトコルに従ってデータフレームの授受を行い、前記不正検知ルール情報は、前記第１識別子を有するデータフレームである第１種フレームと、前記第１識別子とは異なる第２識別子を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての前記第１条件を示し、前記不正検知方法は、前記バスに接続された監視電子制御ユニットが、前記バス上に送信されたデータフレームを逐次受信する受信ステップと、前記受信ステップで受信された前記第１種フレーム及び前記第２種フレームが、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定ステップとを含むこととしても良い。これにより、ＥＣＵ間でフレームの授受を行うためのＣＡＮに従う車載ネットワークにおいて不正状態が発生した場合に適切に検知を行うことが可能となる。
【００２６】
また、前記不正検知ルール情報は、前記第１条件として、１つ以上の前記第１種フレームにおけるデータフィールドの内容に基づいて特定される値と、１つ以上の前記第２種フレームのデータフィールドの内容との関係を規定し、前記不正判定ステップでは、１つ又は複数の単位時間それぞれにおいて前記受信ステップで受信された、各前記第１種フレームにおけるデータフィールドの内容に基づく第１値と、前記１つ又は複数の単位時間のうち最後から１つ以上の単位時間それぞれにおいて前記受信ステップで受信された、各前記第２種フレームにおけるデータフィールドの内容に基づく第２値とを用いて、前記第１条件が満たされるか否かを区別する所定演算処理を実行することにより、前記判定を行うこととしても良い。これにより、互いに異なるＩＤ（識別子）を有する２種類のデータフレームの系列間の同時期の内容間の関係が正常状態と区別される状態になった場合に、不正状態の発生が検知され得る。
【００２７】
また、前記不正検知ルール情報は、前記第１条件として、複数の前記第１種フレームにおけるデータフィールドの内容に基づいて特定される値と、１つ以上の前記第２種フレームのデータフィールドの内容との関係を規定し、前記不正判定ステップでは、複数の単位時間それぞれにおいて前記受信ステップで受信された、各前記第１種フレームにおけるデータフィールドの内容に基づく第１値と、前記複数の単位時間のうち最後から１つ以上の単位時間それぞれにおいて前記受信ステップで受信された、各前記第２種フレームにおけるデータフィールドの内容に基づく第２値とを用いて、前記第１条件が満たされるか否かを区別する所定演算処理を実行することにより、前記判定を行うこととしても良い。これにより、これにより、互いに異なるＩＤ（識別子）を有する２種類（２系列）のデータフレームのうち一方の系列における複数のデータフレームの内容の差分（変化量）、合計（積算量）等といった演算で算定された第１値と、他方の系列における１つ又は複数のデータフレームの内容に基づく第２値との関係が正常状態と区別される状態になった場合に、不正状態の発生が検知され得る。
【００２８】
また、前記所定演算処理は、質的変数の値毎に量的変数の値の範囲を規定した基準に基づいて、前記第２値を質的変数の値として用いて算定される量的変数の値の範囲に前記第１値が該当するか否かにより、前記第１条件が満たされるか否かを区別する処理であることとしても良い。これにより、互いに異なるＩＤを有する２種類のデータフレームの内容のうち、一方の内容が例えば車両の状態（ギアの状態等）を区分するような場合において、他方の内容がその車両の状態で定まる一定範囲に収まっているか否かにより、不正状態の発生が検知され得る。
【００２９】
また、前記所定演算処理は、目的変数と説明変数との関係を示す関係式に基づいて、前記第１値を説明変数の値として用いて算定される目的変数の値の範囲に前記第２値が該当するか否かにより、前記第１条件が満たされるか否かを区別する処理であることとしても良い。これにより、互いに異なるＩＤを有する２種類のデータフレームの内容のうち、一方の内容と他方の内容とが正常状態において例えば一定の因果関係を有するような場合にその関係を条件として定めておくことで、不正状態の発生の検知が可能となり得る。
【００３０】
また、前記不正検知ルール情報は、前記第１条件として、１つ以上の前記第１種フレームにおけるデータフィールドの内容と、１つ以上の前記第２種フレームのデータフィールドの内容との関係を、ピアソンの積率相関係数、最大情報係数、又は、正準相関係数を用いた関係式で規定することとしても良い。これにより、互いに異なるＩＤを有する２種類のデータフレームの内容を関係式で規定した条件により、不正状態の発生の検知が可能となり得る。
【００３１】
また、前記不正検知ルール情報は更に、前記第１種フレームと、前記第１識別子とも前記第２識別子とも異なる第３識別子を有するデータフレームである第３種フレームとの、データフィールドの内容の関係についての条件である第２条件を示し、前記不正判定ステップでは、更に、前記受信ステップで受信された前記第１種フレーム及び前記第３種フレームが、前記不正検知ルール情報が示す前記第２条件を満たすか否かを判定し、前記不正検知方法は更に、前記第１条件及び前記第２条件のうち前記不正判定ステップで満たされないと判定された条件の数に応じて前記第１種フレームの送信に関する異常度を算定する異常度算定ステップと、前記異常度算定ステップにより算定された異常度が所定異常条件を満たす場合に、前記第１種フレームを送信する電子制御ユニットが受信可能となるように前記監視電子制御ユニットが所定フレームを送信する送信ステップとを含むこととしても良い。これにより、不正状態（異常）の発生への関連性の高さが反映されて異常度が算定されるので、異常度に応じて不正状態の発生源の特定等が可能となり得る。また、例えば所定フレームを個々のＥＣＵの診断用に用いる場合において、異常度に応じて状態を診断すべきＥＣＵを絞り込んで送信を行うことが可能となるので、ＥＣＵの診断のための通信によるバストラフィックの増大が抑制され得る。
【００３２】
また、前記不正検知方法は更に、データフレームの識別子毎に定められるデータフレームについての条件を示す侵入検知ルール情報を用いて、前記受信ステップで前記バスから受信されたデータフレームが、当該侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定ステップと、前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処ステップとを含み、前記侵入検知ルール情報が示す、一の識別子のデータフレームについての前記条件は、当該識別子を有するデータフレーム間の受信間隔と、一定時間内に受信される当該識別子を有するデータフレームの数と、当該識別子を有するデータフレーム間でのデータフィールドから抽出される値の差異である変化量とのいずれかに関する条件を含むこととしても良い。これにより、侵入検知ルール情報に基づく侵入判定で、外部から不正なデータフレームが送信されていることを検知できる。また、少なくとも不正検知ルール情報に基づく不正判定と侵入検知ルール情報に基づく侵入判定との組み合わせにより、攻撃者による攻撃の内容等を分類し得るので、攻撃に対して適切な対処処理を決定（選定）して対応することが可能となり得る。
【００３３】
また、前記不正検知方法は更に、前記バスから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証ステップを含み、前記対処ステップでは、前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果と前記検証ステップでの検証結果との組み合わせに応じて対処処理の内容の前記決定を行い、一定条件下で当該対処処理の内容として、認証用の鍵の更新に関する鍵更新処理を決定することとしても良い。これにより、不正検知ルール情報に基づく不正判定と侵入検知ルール情報に基づく侵入判定と認証子の検証結果との組み合わせにより、攻撃者による攻撃の内容或いは影響等を分類し得るので、必要に応じて認証に係る鍵の更新を行う等、攻撃に対して適切な対処処理を決定（選定）して対応することが、可能となり得る。
【００３４】
また、前記不正検知方法は更に、前記対処ステップで前記鍵更新処理を実行した後において前記受信ステップで受信されたデータフレームについて、前記不正判定ステップでの前記判定、前記侵入判定ステップでの前記判定、及び、前記検証ステップでの前記検証を行い、当該不正判定ステップでの判定結果と当該侵入判定ステップでの判定結果と当該検証ステップでの検証結果との組み合わせが所定条件を満たす場合に、前記鍵更新処理とは異なる対処処理を行う追加対処ステップを含むこととしても良い。これにより、鍵更新処理の実行によって状況が改善されない場合等を検知し得るように所定条件を規定しておくことで、鍵更新処理で改善されない状況に他の対処処理により適切に対応することが可能となり得る。
【００３５】
また、前記不正検知方法は更に、前記不正状態が発生したと検知した場合において、当該不正状態の発生に関係があったフレームが送信されたサブネットワークと、当該フレームを送信する電子制御ユニットと、当該フレームの識別子とのいずれかを特定することとしても良い。これにより、不正状態の発生に関する情報が特定されると、攻撃者による攻撃の内容等を、より詳しく分類可能となるので、攻撃に対して、より適切に対応することが可能となり得る。
【００３６】
また、前記不正検知方法は更に、前記不正状態が発生したと検知した場合において、対処処理を実行し、前記対処処理は、前記バスに接続された特定の電子制御ユニットが受信可能となるように診断用のフレームを送信することと、前記バスに接続された特定の電子制御ユニットの正当性をチャレンジレスポンス認証により確認することと、前記バスにおける診断ポートの確認を促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者に停車又は徐行を促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者にディーラへ行くことを促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者に不正状態が発生していることの通知を行うことと、前記バスに接続された電子制御ユニットに、特定の識別子を有するデータフレームが不正であることの通知を行うことと、前記車載ネットワークシステムを搭載する車両の外部のサーバに、不正なデータフレームが送信されていることの通知を行うことと、前記車載ネットワークシステムを搭載する車両の近隣の車両又は路側機へ、不正状態が発生していることの通知を行うことと、前記車載ネットワークシステムを予め定めたフェールセーフモードに切り替えることと、不正状態が発生したことをログとして記録することとのいずれかを含むこととしても良い。これにより、攻撃に対して適切に対応することが可能となり得る。
【００３７】
また、前記不正検知方法では、前記バスから受信されたフレームの集合に基づく多変量解析により、相互に異なる識別子を有するフレーム同士の間でのフレームの内容の関係を特定し、特定した関係を表す条件を示すように前記不正検知ルール情報を生成又は更新することとしても良い。これにより、不正状態の発生を適切に検知できるように不正検知ルール情報の適切な生成等が可能となり得る。
【００３８】
また、本発明の一態様に係る監視電子制御ユニット（監視ＥＣＵ）は、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記バスに接続された監視電子制御ユニットであって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、前記バスからフレームを逐次受信する受信部と、前記受信部により前記バスから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定部とを備える監視電子制御ユニットである。これにより、ファームウェアの不正な書き換え或いはマルウェアの実行により電子制御ユニット（ＥＣＵ）が不正状態になった場合にそのＥＣＵが送信するフレームと、他の識別子を有するフレームとの関係の乱れにより、不正状態が発生したことが検知され得る。
【００３９】
また、本発明の一態様に係る車載ネットワークシステムは、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、不正状態が発生したか否かを判定するために、前記バスから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第１条件を満たすか否かを判定する不正判定部とを備える車載ネットワークシステムである。これにより、ファームウェアの不正な書き換え或いはマルウェアの実行により電子制御ユニット（ＥＣＵ）が不正状態になったことが、不正判定部の判定結果により検知され得る。
【００４０】
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なＣＤ−ＲＯＭ等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
【００４１】
以下、実施の形態に係る車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ（工程）及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【００４２】
（実施の形態１）
以下、本発明の実施の形態として、複数の電子制御ユニット（ＥＣＵ）がバスを介して通信する車載ネットワークシステムにおいて用いられる不正検知方法について、図面を用いて説明する。不正検知方法は、不正なノード（例えば攻撃者により支配されたＥＣＵ等）からバスに不正なフレームが送信されることを検知する方法であり、主としてバスに接続された監視ＥＣＵにより実行される。車載ネットワークシステムにおける監視ＥＣＵは、互いに異なる２つの識別子（メッセージＩＤ）を有するデータフレーム（メッセージ）同士の内容の関係を基にして、不正状態の発生（不正なデータフレームが送信されたこと）を検知する。
【００４３】
［１．１  車載ネットワークシステム１０の全体構成］
図１は、車載ネットワークシステム１０の全体構成を示す図である。
【００４４】
車載ネットワークシステム１０は、ＣＡＮプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ、アクチュエータ、ユーザインタフェース装置等の各種機器が搭載された車両におけるネットワーク通信システムである。車載ネットワークシステム１０は、車載ネットワークを構成するＣＡＮのバスを介してフレームに係る通信を行う複数の装置を備え、不正検知方法を用いる。具体的には図１に示すように車載ネットワークシステム１０は、バス３００と、監視ＥＣＵ１００、各種機器に接続されたＥＣＵ２００ａ、ＥＣＵ２００ｂ、ＥＣＵ２００ｃ、ＥＣＵ２００ｄ等の各ＥＣＵといったバス３００に接続された各ノードとを含んで構成される。なお、車載ネットワークシステム１０には、監視ＥＣＵ１００及びＥＣＵ２００ａ、２００ｂ、２００ｃ、２００ｄ以外にもいくつものＥＣＵが含まれ得るが、ここでは、便宜上、監視ＥＣＵ１００及びＥＣＵ２００ａ、２００ｂ、２００ｃ、２００ｄに注目して説明を行う。ＥＣＵは、例えば、プロセッサ（マイクロプロセッサ）、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ＲＯＭ、ＲＡＭ等であり、プロセッサにより実行される制御プログラム（コンピュータプログラム）を記憶することができる。例えばプロセッサが、制御プログラム（コンピュータプログラム）に従って動作することにより、ＥＣＵは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【００４５】
ＥＣＵ２００ａ、ＥＣＵ２００ｂ、ＥＣＵ２００ｃ、及び、ＥＣＵ２００ｄは、バス３００と接続され、それぞれ速度センサ２１０、加速度センサ２２０、ギア（変速機構）２３０、インストルメントパネル（インパネ）２４０に接続されている。ＥＣＵ２００ａは、周期的に速度センサ２１０から車両の速度を取得し、取得した速度を通知するデータフレームを、周期的にバス３００へ送信する。ＥＣＵ２００ｂは、周期的に加速度センサ２２０から車両の加速度を取得し、取得した加速度を通知するデータフレームを、周期的にバス３００へ送信する。ＥＣＵ２００ｃは、周期的にギア２３０の状態を取得し、ギア２３０の状態を通知するデータフレームを、周期的にバス３００へ送信する。ＥＣＵ２００ｄは、車両の速度或いはギアの状態を通知する各データフレームを受信して、インパネ２４０で表示する情報を更新する。
【００４６】
監視ＥＣＵ１００は、バス３００に接続される一種のＥＣＵであり、バス上に流れるデータフレーム（つまりバス上に現れるデータフレーム）を監視して、不正なデータフレームが送信されたか否かの判定（不正判定）を行うための不正検知処理を行う。
【００４７】
車載ネットワークシステム１０においてはＣＡＮプロトコルに従って、各ＥＣＵがフレームの授受を行う。ＣＡＮプロトコルにおけるフレームには、データフレーム、リモートフレーム、オーバーロードフレーム及びエラーフレームがある。ここではデータフレームを中心に説明する。
【００４８】
［１．２  データフレームフォーマット］
以下、ＣＡＮプロトコルに従ったネットワークで用いられるフレームの１つであるデータフレームについて説明する。
【００４９】
図２は、ＣＡＮプロトコルで規定されるデータフレームのフォーマットを示す図である。同図には、ＣＡＮプロトコルで規定される標準ＩＤフォーマットにおけるデータフレームを示している。データフレームは、ＳＯＦ（Start Of Frame）、ＩＤフィールド、ＲＴＲ（Remote Transmission Request）、ＩＤＥ（Identifier Extension）、予約ビット「ｒ」、ＤＬＣ（Data Length Code）、データフィールド、ＣＲＣ（Cyclic Redundancy Check）シーケンス、ＣＲＣデリミタ「ＤＥＬ」、ＡＣＫ（Acknowledgement）スロット、ＡＣＫデリミタ「ＤＥＬ」、及び、ＥＯＦ（End Of Frame）の各フィールドで構成される。
【００５０】
ＳＯＦは、１ｂｉｔのドミナントで構成される。バスがアイドルの状態はレセシブになっており、ＳＯＦによりドミナントへ変更することでフレームの送信開始を通知する。
【００５１】
ＩＤフィールドは、１１ｂｉｔで構成される、データの種類を示す値であるＩＤ（メッセージＩＤ）を格納するフィールドである。複数のノードが同時に送信を開始した場合、このＩＤフィールドで通信調停を行うために、ＩＤが小さい値を持つフレームが高い優先度となるよう設計されている。
【００５２】
ＲＴＲは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント１ｂｉｔで構成される。
【００５３】
ＩＤＥと「ｒ」とは、両方ドミナント１ｂｉｔで構成される。
【００５４】
ＤＬＣは、４ｂｉｔで構成され、データフィールドの長さを示す値である。
【００５５】
データフィールドは、最大６４ｂｉｔで構成される送信するデータの内容を示す値である。８ｂｉｔ毎に長さを調整できる。送られるデータの仕様については、ＣＡＮプロトコルで規定されておらず、車載ネットワークシステム１０において定められる。従って、車種、製造者（製造メーカ）等に依存した仕様となる。
【００５６】
ＣＲＣシーケンスは、１５ｂｉｔで構成される。ＳＯＦ、ＩＤフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
【００５７】
ＣＲＣデリミタは、１ｂｉｔのレセシブで構成されるＣＲＣシーケンスの終了を表す区切り記号である。なお、ＣＲＣシーケンス及びＣＲＣデリミタを合わせてＣＲＣフィールドと称する。
【００５８】
ＡＣＫスロットは、１ｂｉｔで構成される。送信ノードはＡＣＫスロットをレセシブにして送信を行う。受信ノードはＣＲＣシーケンスまで正常に受信ができていればＡＣＫスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にＡＣＫスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
【００５９】
ＡＣＫデリミタは、１ｂｉｔのレセシブで構成されるＡＣＫの終了を表す区切り記号である。
【００６０】
ＥＯＦは、７ｂｉｔのレセシブで構成されており、データフレームの終了を示す。
【００６１】
［１．３  エラーフレームフォーマット］
図３は、ＣＡＮプロトコルで規定されるエラーフレームのフォーマットを示す図である。エラーフレームは、エラーフラグ（プライマリ）と、エラーフラグ（セカンダリ）と、エラーデリミタとから構成される。
【００６２】
エラーフラグ（プライマリ）は、エラーの発生を他のノードに知らせるために使用される。エラーを検知したノードはエラーの発生を他のノードに知らせるために６ｂｉｔのドミナントを連続で送信する。この送信は、ＣＡＮプロトコルにおけるビットスタッフィングルール（連続して同じ値を６ｂｉｔ以上送信しない）に違反し、他のノードからのエラーフレーム（セカンダリ）の送信を引き起こす。
【００６３】
エラーフラグ（セカンダリ）は、エラーの発生を他のノードに知らせるために使用される連続した６ビットのドミナントで構成される。エラーフラグ（プライマリ）を受信してビットスタッフィングルール違反を検知した全てのノードがエラーフラグ（セカンダリ）を送信することになる。
【００６４】
エラーデリミタ「ＤＥＬ」は、８ｂｉｔの連続したレセシブであり、エラーフレームの終了を示す。
【００６５】
［１．４  監視ＥＣＵ１００の構成］
図４は、監視ＥＣＵ１００の構成図である。監視ＥＣＵ１００は、フレーム送受信部１１０と、フレーム処理部１２０と、不正判定部１３０と、不正対応部１４０と、フレーム生成部１５０と、フレーム受信履歴保持部１６０と、不正検知ルール保持部１７０と、不正判定結果保持部１８０と、ＥＣＵ情報テーブル保持部１９０とを含んで構成される。図４に示した監視ＥＣＵ１００の各構成要素は、監視ＥＣＵ１００のメモリ等の記憶媒体、通信回路、メモリに格納されたプログラムを実行するプロセッサ等で、実現され得る。
【００６６】
フレーム送受信部１１０は、バス３００に対して、ＣＡＮのプロトコルに従ったフレーム（データフレーム等）を送受信する。フレーム送受信部１１０は、バス３００からフレームを１ｂｉｔずつ受信する受信部としての機能を有する。フレーム送受信部１１０は、エラー無くデータフレームの受信を完了すると、データフレーム内のＩＤ、ＤＬＣ、データといった情報をフレーム処理部１２０に転送する。また、フレーム送受信部１１０は、ＣＡＮプロトコルに則っていないデータフレームと判断した場合は、エラーフレームを送信する。また、フレーム送受信部１１０は、データフレームの受信中にエラーフレームを受信した場合、つまり受け取ったデータフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのデータフレームを破棄する。フレーム送受信部１１０は、フレーム生成部１５０からデータフレームの送信要求を受けた場合には、そのデータフレームの内容をバス３００に１ｂｉｔずつ送信する。通信調停といったＣＡＮのプロトコルに則った処理も、フレーム送受信部１１０において実現される。
【００６７】
フレーム処理部１２０は、フレーム送受信部１１０よりデータフレームの情報を受け取り、データフレームの内容を解釈する。フレーム処理部１２０は、ＥＣＵ２００ａ、２００ｂ、２００ｃのそれぞれから送信されるデータフレームが示す車速、加速度、或いは、ギアの状態等の情報を取得し、取得した情報に基づいて、フレーム受信履歴保持部１６０に格納されている各データフレームに関する情報（フレーム受信履歴）を更新する。
【００６８】
不正判定部１３０は、不正なデータフレームを受信したか否かの判定（不正なデータフレームが送信されたか否かに係る不正判定）を、不正検知ルール保持部１７０が保持する不正検知ルール情報と、フレーム受信履歴保持部１６０が保持するフレーム受信履歴とに基づいて、所定の単位時間（例えば１００ｍｓ）を周期として周期的に行う。不正判定部１３０は、不正検知ルール情報が示す複数の異なるＩＤを有するフレーム間の関係に係る条件毎について条件が満たされるか否かにより不正判定を行い、例えば、条件が満たされなかった場合に不正と判定する。不正判定部１３０は、不正判定の結果に基づいて、不正判定結果保持部１８０が保持する不正判定結果を更新する。なお、不正判定部１３０は、フレームの各ＩＤについて、そのＩＤのフレームに関して不正検知ルール情報が示す条件に基づいて不正と検知された数（例えば満たされなかった条件の数）に応じて、異常度を算定し、異常度を、不正判定結果保持部１８０が保持する不正判定結果に付加する。不正と検知された数が０であれば異常度は０となり、異常度の０は、異常が検知されなかったことを表す。また、不正判定部１３０は、不正判定の結果として不正と判定された場合（つまり不正状態の発生が検知された場合）に、不正を検知したことを不正対応部１４０へ通知する。
【００６９】
不正対応部１４０は、不正判定部１３０から不正を検知したことが通知されると、不正判定結果保持部１８０に格納されている不正判定結果と、ＥＣＵ情報テーブル保持部１９０に格納されているＥＣＵ情報テーブルとを参照して、不正への対応としての対処処理の内容を決定する。不正対応部１４０は、対処処理を決定した場合において、その対処処理の実行のための制御を行う。例えば、不正対応部１４０は、不正判定結果から、特定のＩＤを有するデータフレームに関連して不正が検知された場合（一例としては不正が検知されかつ算定された異常度が最も高い場合）に、ＥＣＵ情報テーブルを参照して、該当するデータフレームを送信するＥＣＵに対する診断メッセージの生成をフレーム生成部１５０に要求する。
【００７０】
フレーム生成部１５０は、送信すべきデータフレームの生成が要求された場合にそのデータフレームを生成して、そのデータフレームをフレーム送受信部１１０に送信させる。例えば、フレーム生成部１５０は、診断メッセージの生成が要求された場合に、予め定められた診断メッセージを表すデータフレームを生成して、そのデータフレームを、フレーム送受信部１１０を介してバス３００へ送信する。
【００７１】
フレーム受信履歴保持部１６０は、監視ＥＣＵ１００が逐次受信したデータフレームに関する情報であるフレーム受信履歴（図５参照）を保持する。
【００７２】
不正検知ルール保持部１７０は、不正判定部１３０が不正判定のために参照する不正検知ルール情報（図６参照）を保持する。
【００７３】
不正判定結果保持部１８０は、不正判定部１３０が、不正検知ルール情報が示すルール（条件）に適合するか否かを判定した結果としての不正判定結果（図７参照）を保持する。
【００７４】
ＥＣＵ情報テーブル保持部１９０は、各ＩＤについてそのＩＤのデータフレームを送信するＥＣＵに関する情報を対応付けて構成されるＥＣＵ情報テーブル（図８参照）を保持する。
【００７５】
［１．５  フレーム受信履歴］
図５は、フレーム受信履歴保持部１６０が保持するフレーム受信履歴の一例を示す。フレーム受信履歴は、監視ＥＣＵ１００が過去から現在までに受信したデータフレームの内容に関する情報であり、同図の例では、フレーム受信履歴のうち、３つのＩＤそれぞれについての、現在（最新）から３回前までの単位時間（例えば１００ｍｓ）毎に受信されたデータフレームの内容が示す特定の値（車速、加速度、ギアの状態のそれぞれを示す値）を示している。この例は、車速に関する０ｘ１００というＩＤを有するデータフレームのうち、最新に受信したデータフレームの示す車速の値が１８．０ｋｍ／ｈであり、１回前に受信したデータフレームの車速の値が１９．２ｋｍ／ｈ、２回前に受信した値が１９．６ｋｍ／ｈ、３回前に受信した値が２０．０ｋｍ／ｈであったことを示している。また、加速度に関する０ｘ２００というＩＤを有するデータフレームのうち、最新から３回前までに受信したデータフレームの示す加速度の値がそれぞれ、０．１０ｍ／ｓ＾２、０．１０ｍ／ｓ＾２、０．２０ｍ／ｓ＾２、０．２０ｍ／ｓ＾２であったことを示している。また、ギアの状態に関する０ｘ３００というＩＤを有するデータフレームのうち、最新から３回前までに受信したデータフレームの示すギアの状態の値が、全て「Ｄ」（ドライブ）の状態を表すものであったことを示している。
【００７６】
このフレーム受信履歴は、不正判定部１３０で、互いに異なるＩＤを有するデータフレーム間の内容の関係の確認（不正検知ルール情報が示す条件を満たすか否かの判定）のために用いられる。図５では、最新から３回前に受信したデータフレームの内容が示す値までしか示していないが、フレーム受信履歴は、不正検知ルール情報を用いて不正判定部１３０が行う不正判定において必要な情報を含むように構成され得る。例えば、フレーム受信履歴は、車両の走行の開始時（例えばエンジン始動時）等以降に監視ＥＣＵ１００が受信した全てのデータフレームの内容を示す情報であり得る。なお、フレーム受信履歴保持部１６０は、例えば、加速度の積分値を記憶するための領域を１つ有することとしても良い。
【００７７】
［１．６  不正検知ルール情報］
図６は、不正検知ルール保持部１７０が保持する不正検知ルール情報の一例を示す。不正検知ルール情報は、互いに異なるＩＤのデータフレームの内容間の関係に係る条件（ルール）を１つ以上（図６の例では３つ）含んでいる。
【００７８】
図６の例では、不正検知ルール情報は、ルール番号１のルールとして、ＩＤが０ｘ１００のデータフレームの内容（車速）とＩＤが０ｘ２００のデータフレームの内容（加速度）との関係についての条件を含んでいる。この条件は、ある単位時間（例えば１００ｍｓ）内に受信されたＩＤが０ｘ１００のデータフレームが示す車速（速度）の値は、その単位時間及びそれより過去の単位時間（例えば車両の走行の開始時以降の各単位時間）に受信されたＩＤが０ｘ２００のデータフレームが示す加速度の値を累積してなる、加速度の積分値の±１ｋｍ／ｈの範囲に入るという条件である。この条件が満たされれば適正な関係が保たれている正常状態であることになり、この条件が満たされなければ不正判定部１３０により不正と判定されること（つまり不正状態が発生していること）になる。なお、加速度の積分値は、例えば単位の換算を含めて以下の式で算定できる。
【００７９】
積分値＝（Σ（受信したＩＤ０ｘ２００のデータフレームが示す加速度×３．６））÷（１／ＩＤ０ｘ２００のデータフレームの送信周期）
【００８０】
また、図６の例では、不正検知ルール情報は、ルール番号２のルールとして、ＩＤが０ｘ１００のデータフレームの内容（車速）とＩＤが０ｘ３００のデータフレームの内容（ギアの状態）との関係についての条件を含んでいる。この条件は、ある単位時間内に受信されたＩＤが０ｘ３００のデータフレームが示すギアの状態の値が「Ｄ」（ドライブ）を表す場合には、同じ単位時間内に受信されたＩＤが０ｘ１００のデータフレームが示す車速の、前回の単位時間内に受信されたデータフレームが示す車速からの変化量（例えば差分）が、１．０ｋｍ／ｈ以下に抑えられ、「Ｄ」ではなく「Ｒ」（リバース）を表す場合には、その車速の変化量が、０．５ｋｍ／ｈ以下に抑えられているという条件である。この条件が満たされなければ不正判定部１３０により不正と判定されることになる。
【００８１】
また、図６の例では、不正検知ルール情報は、ルール番号３のルールとして、ＩＤが０ｘ２００のデータフレームの内容（加速度）とＩＤが０ｘ３００のデータフレームの内容（ギアの状態）との関係についての条件を含んでいる。この条件は、ある単位時間内に受信されたＩＤが０ｘ３００のデータフレームが示すギアの状態の値が「Ｄ」（ドライブ）を表す場合には、同じ単位時間内に受信されたＩＤが０ｘ２００のデータフレームが示す加速度の、前回の単位時間内に受信されたデータフレームが示す加速度からの変化量（例えば差分）が、１．０ｍ／ｓ＾２以下に抑えられ、「Ｄ」ではなく「Ｒ」（リバース）を表す場合には、その加速度の変化量が、０．５ｍ／ｓ＾２以下に抑えられているという条件である。この条件が満たされなければ不正判定部１３０により不正と判定されることになる。
【００８２】
［１．７  不正判定結果］
図７は、不正判定結果保持部１８０が保持する不正判定結果の一例を示す。図７の例では、不正判定結果は、データフレームの各ＩＤ（同図左端）について、そのＩＤのデータフレームと別のＩＤのデータフレームとの間の関係に係る条件に基づいて、不正判定部１３０により不正と判定されたか、否か（適正と判定されたか）を示す。なお、図７では、不正と判定されたか否かに加えて、その判定に用いられた、不正検知ルール情報におけるルール（条件）についてのルール番号を付記している。この例は、不正判定部１３０により、ルール番号１の条件と、ルール番号２の条件とは満たされなかったと判定され（つまり不正と判定され）、ルール番号３の条件は満たされたと判定された（つまり適正と判定された）例を示している。
【００８３】
また、不正判定結果には、不正判定部１３０により、各ＩＤのフレームについて不正と判定（検知）された数に応じて算定された異常度が付加されている。図７に示すように、ＩＤが０ｘ１００のデータフレームは、ルール番号１の条件で不正と判定された上にルール番号２の条件で不正と判定されているので、異常度が２と算定されている。ＩＤが０ｘ２００のデータフレームは、ルール番号１の条件で不正と判定されているが、ルール番号３の条件では不正と判定されていないので、異常度は１と算定されている。ＩＤが０ｘ３００のデータフレームは、ルール番号２の条件で不正と判定されているが、ルール番号３の条件では不正と判定されていないので、異常度は１と算定されている。
【００８４】
［１．８  ＥＣＵ情報テーブル］
図８は、ＥＣＵ情報テーブル保持部１９０が保持するＥＣＵ情報テーブルの一例を示す。ＥＣＵ情報テーブルは、同図に示すように、データフレームのＩＤ毎に、そのＩＤのデータフレームの送信元のＥＣＵについての情報（送信ＥＣＵ情報）を対応付けたテーブルである。図８の例は、ＩＤが０ｘ１００のデータフレームはＥＣＵ２００ａから送信され、ＩＤが０ｘ２００のデータフレームはＥＣＵ２００ｂから送信され、０ｘ３００のデータフレームはＥＣＵ２００ｃから送信されることを示している。図８では省略しているが、ＥＣＵ情報テーブルが示す、ＥＣＵについての送信ＥＣＵ情報は、例えばそのＥＣＵに対して、そのＥＣＵの状態を診断するために送信されるデータフレームである診断メッセージの内容を特定するために必要な情報等を含み得る。あるＥＣＵの状態を診断するために送信される診断メッセージは、例えば、そのＥＣＵを識別するための識別情報、そのＥＣＵの診断に必要な情報等を含む。監視ＥＣＵ１００が診断メッセージを送信することにより開始されるＥＣＵの診断は、例えば、予め定められた方式に従ってなされる、ＥＣＵのファームウェアが不正に書き換えられているか否かの診断であり、例えばＥＣＵは、この診断に対応して、診断用情報（例えばメモリ内容のハッシュ値等）を監視ＥＣＵ１００に送信する等といった予め定められた処理を行うように構成されている。
【００８５】
［１．９  ＥＣＵ２００ａの構成］
図９は、ＥＣＵ２００ａの構成図である。ＥＣＵ２００ａは、フレーム送受信部２０１と、フレーム処理部２０２と、機器入出力部２０３と、フレーム生成部２０４とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ＥＣＵ２００ａにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ＥＣＵ２００ｂ、ＥＣＵ２００ｃ及びＥＣＵ２００ｄもＥＣＵ２００ａと概ね同様の構成を有する。
【００８６】
フレーム送受信部２０１は、バス３００に対して、ＣＡＮのプロトコルに従ったフレーム（データフレーム等）を送受信する。フレーム送受信部２０１は、バス３００からデータフレームを１ｂｉｔずつ受信し、エラー無くデータフレームの受信を完了すると、データフレーム内のＩＤ、ＤＬＣ、データといった情報をフレーム処理部２０２に転送する。フレーム送受信部２０１は、ＣＡＮプロトコルに則っていないデータフレームと判断した場合は、エラーフレームを送信する。フレーム送受信部２０１は、データフレームの受信中にエラーフレームを受信した場合には、それ以降そのデータフレームを破棄する。また、フレーム送受信部２０１は、フレーム生成部２０４より通知を受けたフレームの内容をバス３００に送信する。通信調停といったＣＡＮのプロトコルに則った処理も、フレーム送受信部２０１において実現される。
【００８７】
フレーム処理部２０２は、受信したデータフレームの内容を解釈する。ＥＣＵ２００ａと同様の構成を備えるＥＣＵ２００ｄを例として説明すると、ＥＣＵ２００ｄのフレーム処理部２０２では、ＥＣＵ２００ａ及びＥＣＵ２００ｃからそれぞれ送信されるデータフレームに含まれる車速（速度センサ２１０の情報）、ギアの状態（ギア２３０の状態の情報）を解釈し、インパネ２４０の表示の更新等のために必要な情報を、ＥＣＵ２００ｄの機器入出力部２０３に通知する。また、フレーム処理部２０２は、例えば、監視ＥＣＵ１００から診断メッセージであるデータフレームを受信した場合には予め定められた処理を行って診断用情報を、監視ＥＣＵ１００が受信可能となるようにフレーム送受信部２０１を介してバス３００に送信し得る。
【００８８】
機器入出力部２０３は、ＥＣＵ２００ａ、ＥＣＵ２００ｂ或いはＥＣＵ２００ｃにおいて、そのＥＣＵに接続される機器と通信を行う。例えば、速度センサ２１０と接続されたＥＣＵ２００ａにおいては、機器入出力部２０３は、現在の車両の速度を、速度センサ２１０から取得してフレーム生成部２０４に通知する。加速度センサ２２０に接続されたＥＣＵ２００ｂにおいては、機器入出力部２０３は、現在の車両の加速度を、加速度センサ２２０から取得してフレーム生成部２０４に通知する。ギア２３０に接続されたＥＣＵ２００ｃにおいては、機器入出力部２０３は、現在のギアのシフトポジションを取得してフレーム生成部２０４に通知する。インパネ２４０に接続されたＥＣＵ２００ｄにおいては、機器入出力部２０３は、フレーム処理部２０２から通知された値に基づいて制御情報をインパネ２４０へ送出することで、インパネ２４０の表示の更新等を行う。
【００８９】
フレーム生成部２０４は、機器入出力部２０３から通知された情報に基づいてバス３００へ送信するデータフレームを生成し、生成したデータフレームを、フレーム送受信部２０１を介してバスへ送信する。例えばＥＣＵ２００ａにおいては、フレーム生成部２０４は、機器入出力部２０３から通知された速度センサ２１０からの車速の情報を含んだデータフレームを、予め定められた周期（例えば１００ｍｓ間隔）で生成し、フレーム送受信部２０１に通知する。ＥＣＵ２００ａ、ＥＣＵ２００ｂ、ＥＣＵ２００ｃがそれぞれ送信するデータフレームの例について次に図１０を用いて説明する。
【００９０】
［１．１０  ＥＣＵが送信するデータフレーム］
図１０は、ＥＣＵ２００ａ、ＥＣＵ２００ｂ及びＥＣＵ２００ｃのそれぞれにより送信されるデータフレームの例を示す。
【００９１】
ＥＣＵ２００ａが送信するデータフレーム４０１は、ＩＤが０ｘ１００であり、ＤＬＣが２であり、そのデータフィールドは、１バイト目と２バイト目とを合わせた２バイトで車速（０．１ｋｍ／ｈ単位）を表す。図１０では、２０．０ｋｍ／ｈ（０ｘＣ８）の車速を示す例を示している。
【００９２】
ＥＣＵ２００ｂが送信するデータフレーム４０２は、ＩＤが０ｘ２００であり、ＤＬＣが２であり、そのデータフィールドは、１バイト目と２バイト目とを合わせた２バイトで加速度（０．０１ｍ／ｓ＾２単位）を表す。図１０では、０．１０ｍ／ｓ＾２の加速度を示す例を示している。
【００９３】
ＥＣＵ２００ｃが送信するデータフレーム４０３は、ＩＤが０ｘ２００であり、ＤＬＣが１であり、そのデータフィールドは、ギア２３０の状態を示す値を示している。この値は、ギア２３０が、「Ｎ」（ニュートラル）状態においては、０となり、「Ｒ」（リバース）状態においては、１となり、「Ｄ」（ドライブ）状態においては、２となる。図１０では、ギア２３０の状態が「Ｄ」であることを表す例を示している。
【００９４】
［１．１１  監視ＥＣＵ１００の動作］
図１１は、監視ＥＣＵ１００の動作例を示すフローチャートである。監視ＥＣＵ１００は、所定の単位時間（例えば１００ｍｓ）毎に周期的に不正検知処理（不正判定）を行う。
【００９５】
監視ＥＣＵ１００は、周期的に行われる不正判定のタイミングになるまで待って（ステップＳ１１０１）、バス３００の監視による不正判定を行う（ステップＳ１１０２）。
【００９６】
ステップＳ１１０２では、監視ＥＣＵ１００は、不正判定部１３０により、フレーム受信履歴保持部１６０に保持されているフレーム受信履歴を参照して、不正検知ルール保持部１７０に保持されている不正検知ルール情報が示す各ルール（条件）が満たされたか否かに基づいて、適正か不正かを判定する。
【００９７】
監視ＥＣＵ１００は、不正判定部１３０により、ステップＳ１１０２での判定の結果を、不正判定結果保持部１８０に不正判定結果として記録し、不正判定結果に応じて異常度を算定して、算定した異常度を、不正判定結果に付加するように記録する（ステップＳ１１０３）。例えば、算定された異常度が０であれば、異常が検知されなかったことを示し、異常度が０より大きければ、異常が検知されたことを示す。
【００９８】
監視ＥＣＵ１００は、不正判定の結果、異常が検知されたか否かを判別する（ステップＳ１１０４）。異常が検知されなかった場合には、監視ＥＣＵ１００は、ステップＳ１１０１に移行し、次の不正判定のタイミングの到来を待つ。
【００９９】
異常（不正状態の発生）が検知された場合には、監視ＥＣＵ１００は、不正対応部１４０により、不正への対応としての対処処理の内容を決定する。具体的には、異常が検知された場合に、監視ＥＣＵ１００は、不正判定結果保持部１８０に保持されている不正判定結果において最も高い異常度のＩＤを有するデータフレームを送信するＥＣＵについての情報を、ＥＣＵ情報テーブル保持部１９０のＥＣＵ情報テーブルを参照することで取得して、ＥＣＵを特定し（ステップＳ１１０５）、特定したＥＣＵに対する診断メッセージをそのＥＣＵに送信することで、例えばそのＥＣＵから診断用情報を受信する等によってそのＥＣＵの状態を確認する（ステップＳ１１０６）。ステップＳ１１０６の後に、監視ＥＣＵ１００は、ステップＳ１１０１に移行し、次の不正判定のタイミングの到来を待つ。なお、ステップＳ１１０６でのＥＣＵの状態の確認によりそのＥＣＵに異常が生じていることを検知した場合には、監視ＥＣＵ１００は、車両の運転者等への警告通知、外部のサーバへの情報通知その他の対処のための制御を行い得る。
【０１００】
［１．１２  車載ネットワークシステム１０におけるバス３００の監視動作］
図１２は、車載ネットワークシステム１０におけるバス３００の監視の動作例を示す図である。
【０１０１】
この例は、ＥＣＵ２００ａ、ＥＣＵ２００ｂ及びＥＣＵ２００ｃからそれぞれ、ＩＤが０ｘ１００のデータフレーム（車速を示すデータフレーム）と、ＩＤが０ｘ２００のデータフレーム（加速度を示すデータフレーム）と、ＩＤが０ｘ３００のデータフレーム（ギアの状態を示すデータフレーム）とが、周期的にバス３００へ送信される様子を示している。この例は更に、攻撃者によりＥＣＵ２００ａのファームウェアが不正に書き換えられてしまい、ＥＣＵ２００ａは、ある時点から、速度センサ２１０から通知される車速を改竄して、不正な車速を示すデータフレームをバス３００へ送信する例を示している。
【０１０２】
監視ＥＣＵ１００は、ＩＤが０ｘ３００のデータフレームを受信したタイミングの直後から１００ｍｓの周期で定期的に、不正判定（不正検知処理）を行う。この不正判定を行うタイミングを各単位時間（１００ｍｓ）の終期であるとすれば、最初の３回の単位時間それぞれでバス３００から受信されたデータフレームについては、不正検知ルール保持部１７０に格納されている不正検知ルール情報が示すルール番号１から３のいずれのルールでも不正は検知されていない。この例の最初の時点で加速度の積分値は２０．０ｋｍ／ｈであったとする。そのため、加速度の積分値は１回目から４回目までの加速度を示す各データフレームの受信により、２０．０７２、２０．１４４、２０．１８、２０．２１ｋｍ／ｈと順次変化する。監視ＥＣＵ１００は、４回目に受信した車速のデータフレームが示す車速（１８．０ｋｍ／ｈ）と、加速度のデータフレームが示す加速度に基づく積分値（２０．２ｋｍ／ｈ）の差（変化量）が１．０ｋｍ／ｈを超えたので、ルール番号１のルール（条件）が満たされずに不正を検知する。更に、監視ＥＣＵ１００は、４回目に受信したデータフレームが示すギアの状態が「Ｄ」（ドライブ）である場合において、速度の変化量（４回目に受信した車速のデータフレームが示す車速１８．０ｋｍ／ｈと前回受信したデータフレームが示す車速１９．２ｋｍ／ｈとの差）が１．０ｋｍ／ｈを超えたので、ルール番号２の不正を検知する。これにより、監視ＥＣＵ１００は、２つのルール（条件）を満たさないことで異常度が最も高く２と算定された、ＩＤが０ｘ１００のデータフレームの送信元を、ＥＣＵ情報テーブル保持部１９０が保持するＥＣＵ情報テーブルを参照することにより、ＥＣＵ２００ａであると特定する。そして、監視ＥＣＵ１００は、ＥＣＵ２００ａに対して、診断メッセージを送信する。
【０１０３】
［１．１３  実施の形態１の効果］
実施の形態１に係る車載ネットワークシステム１０では、監視ＥＣＵ１００が、互いに異なる複数のＩＤを有するデータフレームの内容間の関係に基づいて不正を検知する。これにより、攻撃者によりＥＣＵのファームウェアが不正に書き換えられ、或いは、ＥＣＵ上で不正なプログラムが実行される等により、正規の送信タイミングで不正な内容のデータフレームが送信されたとしても、ＩＤの相違するデータフレーム間の内容の関係の崩れから、不正なデータフレームの送信が検知され得る。例えば、攻撃者があるＥＣＵを支配して不正なデータフレームを送信しても、他のＥＣＵが送信するデータフレームとの間での関係に基づいて不正が検知されることから、不正を検知されずに攻撃者が攻撃を行うことが困難となる。
【０１０４】
また監視ＥＣＵ１００は、不正検知ルール情報が示す複数の条件に基づく不正判定を行った結果に基づいて、異常度の算定により、不正なデータフレームのＩＤ及びその送信元のＥＣＵを絞り込み、効率的に診断メッセージの送信等を行う。このようにＥＣＵに対応した診断メッセージを送信するためにＥＣＵを絞り込むことは、バス３００のトラフィック量の増大の抑制のために有用であり、診断メッセージの送信以外の対処を行う場合であっても、不正状態の発生原因となるＥＣＵへの対処を効率的に行うために、異常度の算定によりＥＣＵを絞り込むことは有用である。
【０１０５】
（実施の形態２）
以下、実施の形態１で示した車載ネットワークシステム１０を一部変形してなる車載ネットワークシステム１１について説明する。
【０１０６】
本実施の形態に係る車載ネットワークシステム１１における監視ＥＣＵは、互いに異なるＩＤを有するデータフレームの内容間の関係を基にして、不正状態の発生を検知する方法（実施の形態１で示した不正判定の方法）の他に、単一のＩＤのデータフレームについてＩＤ毎に定められたルール（条件）に基づいても不正状態の発生を検知する方法を用いて、総合的に対処処理を決定する。
【０１０７】
［２．１  車載ネットワークシステム１１の全体構成］
図１３は、車載ネットワークシステム１１の全体構成を示す図である。
【０１０８】
車載ネットワークシステム１１は、バス３００と、監視ＥＣＵ２１００、センサ等の各種機器に接続されたＥＣＵ２００ａ、ＥＣＵ２００ｂ、ＥＣＵ２００ｃ、ＥＣＵ２００ｄ等の各ＥＣＵといったバス３００に接続された各ノードとを含んで構成される。車載ネットワークシステム１１では、更にバス３００に接続された診断ポート２４００が存在する。車載ネットワークシステム１１は、ここで特に説明しない点については実施の形態１で示した車載ネットワークシステム１０（図１参照）と同じであり、車載ネットワークシステム１０と同様の構成要素については、図１３において、図１と同じ符号を付しており、ここでの説明を省略する。
【０１０９】
監視ＥＣＵ２１００は、実施の形態１で示した監視ＥＣＵ１００を部分的に変形したものであり、バス３００に流れるデータフレームを監視して、不正なデータフレームが送信されたか否かの判定（不正判定及び侵入判定）を行い不正状態の発生を検知する。更に監視ＥＣＵ２１００は、不正なデータフレームが送信された状況（不正判定及び侵入判定の結果）に応じて対処処理の内容を決定して、対処処理を行う。
【０１１０】
診断ポート２４００は、バス３００にアクセス可能なポートである。診断ポート２４００を介して、診断ツール等といった機器によるバス３００へのアクセスが可能となる。即ち、診断ポート２４００に診断ツール等を接続し、バス３００に繋がるＥＣＵの状態を診断することができる。この診断ポート２４００から、バス３００に対してデータフレームの送受信が可能となるため攻撃者が、診断ポート２４００を介して、不正なデータフレームを送信することも考えられる。ここでは、診断ポート２４００を介した不正なデータフレームのバス３００への注入（送信）を、侵入とも称する。
【０１１１】
［２．２  監視ＥＣＵ２１００の構成］
図１４は、監視ＥＣＵ２１００の構成図である。監視ＥＣＵ２１００は、フレーム送受信部１１０と、フレーム処理部１２０と、不正判定部１３０と、侵入判定部２１３１と、異常対応部２１４０と、フレーム生成部１５０と、フレーム受信履歴保持部２１６０と、不正検知ルール保持部１７０と、侵入検知ルール保持部２１７１と、不正判定結果保持部１８０と、侵入判定結果保持部２１８１と、ＥＣＵ情報テーブル保持部１９０と、異常対応テーブル保持部２１９１とを含んで構成される。実施の形態１と同様の機能を有する構成要素は、図１４において、図４と同じ符号を付しており、ここでの説明を省略する。図１４に示した監視ＥＣＵ２１００の各構成要素は、監視ＥＣＵ２１００のメモリ等の記憶媒体、通信回路、メモリに格納されたプログラムを実行するプロセッサ等で、実現され得る。
【０１１２】
侵入判定部２１３１は、外部からバス３００に不正なデータフレームが注入されているか否かの判定（不正なデータフレームが注入されたか否かに係る侵入判定）を、侵入検知ルール保持部２１７１が保持する侵入検知ルール情報と、フレーム受信履歴保持部２１６０が保持するフレーム受信履歴に基づいて、所定の単位時間（例えば１００ｍｓ）を周期として周期的に行う。侵入判定部２１３１は、侵入判定の結果に基づいて、侵入判定結果保持部２１８１が保持する侵入判定結果を更新する。また、侵入判定部２１３１は、侵入判定の結果として侵入と判定された場合つまり異常発生が検知された場合に、侵入を検知したことを異常対応部２１４０へ通知する。
【０１１３】
異常対応部２１４０は、不正判定部１３０或いは侵入判定部２１３１から、不正或いは侵入を検知したこと（異常発生）を通知されると、不正判定結果保持部１８０に格納されている不正判定結果と、侵入判定結果保持部２１８１に格納されている侵入判定結果と、ＥＣＵ情報テーブル保持部１９０に格納されているＥＣＵ情報テーブルと、異常対応テーブル保持部２１９１に格納されている異常対応テーブルとを参照して、異常への対応としての対処処理の内容を決定する。異常対応部２１４０は、対処処理を決定した場合において、その対処処理の実行のための制御を行う。例えば、異常対応部２１４０は、特定のＩＤを含むデータフレームが異常（例えば不正であり算定された異常度が最も高い等）という不正判定結果と、その特定のＩＤを含むデータフレームについて侵入と判定した侵入判定結果とを取得した場合には、診断ポート２４００を介して不正なデータフレームが注入されている可能性が高いので、診断ポート２４００に不正なデバイスが接続されていないかの確認をユーザ（運転者等）に促すべく送信するためのデータフレームの生成を、フレーム生成部１５０に要求する。また、例えば、異常対応部２１４０は、特定のＩＤを含むデータフレームの侵入が検知されていないという侵入判定結果と、その特定のＩＤを含むデータフレームの異常が検知されている不正判定結果とを取得した場合には、ＥＣＵのファームウェアが不正に書き換えられている可能性が高いとして、ＥＣＵ情報テーブルを参照して、該当するデータフレームを送信するＥＣＵに対しての診断メッセージの生成を、フレーム生成部１５０に要求する。
【０１１４】
フレーム受信履歴保持部２１６０は、監視ＥＣＵ２１００が逐次受信したデータフレームに関する情報であるフレーム受信履歴（図１５参照）を保持する。
【０１１５】
侵入検知ルール保持部２１７１は、侵入判定部２１３１が侵入判定のために参照する単一のＩＤのデータフレームについてＩＤ毎に定められた条件を示す侵入検知ルール情報（図１６参照）を保持する。
【０１１６】
侵入判定結果保持部２１８１は、侵入判定部２１３１が、侵入検知ルール情報が示す条件を満たすか否かを判定した結果としての侵入判定結果（図１７参照）を保持する。
【０１１７】
異常対応テーブル保持部２１９１は、不正判定結果及び侵入判定結果に応じて、不正或いは侵入の発生に対して適切な対処処理の内容を決定するために用いられる異常対応テーブル（図１８参照）を保持する。
【０１１８】
［２．３  フレーム受信履歴］
図１５は、フレーム受信履歴保持部２１６０が保持するフレーム受信履歴の一例を示す。フレーム受信履歴は、監視ＥＣＵ２１００が過去から現在までに受信したデータフレームの内容に関する情報であり、同図の例では、フレーム受信履歴のうち、３つのＩＤそれぞれについての、現在（最新）から２回前までに受信されたデータフレームの受信時刻とデータフレームの内容が示す特定の値（車速、加速度、ギアの状態のそれぞれを示す値）とを示している。この例は、車速に関する０ｘ１００というＩＤを有するデータフレームのうち、最新のデータフレームの受信時刻が２１０ｍｓであって、受信したデータフレームの示す車速の値が１８．０ｋｍ／ｈであり、１回前の受信時刻が１１０ｍｓであって、受信したデータフレームの車速の値が１９．２ｋｍ／ｈであり、２回前の受信時刻が１０ｍｓであって、受信した値が１９．６ｋｍ／ｈであったことを示している。また、加速度に関する０ｘ２００というＩＤを有するデータフレームのうち、最新から２回前までに受信したデータフレームの受信時刻がそれぞれ２２０ｍｓ、１２０ｍｓ、２０ｍｓであって、受信した各データフレームの示す加速度の値がそれぞれ、０．１０ｍ／ｓ＾２、０．１０ｍ／ｓ＾２、０．２０ｍ／ｓ＾２であったことを示している。また、ギアの状態に関する０ｘ３００というＩＤを有するデータフレームのうち、最新から２回前までに受信したデータフレームの受信時刻がそれぞれ２３０ｍｓ、１３０ｍｓ、３０ｍｓであって、受信した各データフレームの示すギアの状態の値が、全て「Ｄ」（ドライブ）の状態を表すものであったことを示している。
【０１１９】
このフレーム受信履歴は、不正判定部１３０での不正判定、及び、侵入判定部２１３１での侵入判定において用いられる。図１５では、最新から２回前に受信したデータフレームの内容が示す値までしか示していないが、フレーム受信履歴は、不正検知ルール情報を用いて不正判定部１３０が行う不正判定において必要な情報、及び、侵入検知ルール情報を用いて侵入判定部２１３１が行う侵入判定において必要な情報を含むように構成され得る。例えば、フレーム受信履歴は、車両の走行の開始時（例えばエンジン始動時）等以降に監視ＥＣＵ２１００が受信した全てのデータフレームの内容を示す情報であり得る。なお、フレーム受信履歴保持部２１６０は、例えば、加速度の積分値を記憶するための領域を１つ有することとしても良い。
【０１２０】
［２．４  侵入検知ルール情報］
図１６は、侵入検知ルール保持部２１７１が保持する侵入検知ルール情報の一例を示す。侵入検知ルール情報は、ＩＤ毎に、そのＩＤを有するデータフレームについて満たれるべき条件（ルール）を含んでいる。侵入検知ルール情報が示す条件が満たされるか否かが、侵入判定のために侵入判定部２１３１で確認される。この条件を満たさないデータフレームを検知することで侵入判定部２１３１は、侵入を検知する。図１６の例では、侵入検知ルール情報は、ＩＤ毎に、条件を規定するための受信間隔とマージンとデータ変化量とを示している。受信間隔は、対応するＩＤのデータフレームが受信される間隔を示し、マージンは、受信間隔の揺らぎの許容範囲を示す。図１６の例では、例えばＩＤが０ｘ１００のデータフレームについては、受信間隔が１００ｍｓであり、マージンが５ｍｓであるので、ＩＤが０ｘ１００のデータフレームを受信した間隔が、９５ｍｓから１０５ｍｓの範囲内であれば条件が満たされ、条件が満たされると侵入判定においては正常（侵入でない）と判定される。この条件が満たされない場合には、侵入判定において異常（侵入検知）と判定される。データ変化量は、対応するＩＤの、前回受信されたデータフレームのデータフィールドから抽出されたデータ値から現在受信されたデータフレームのデータフィールドから抽出されたデータ値までに変化する変化量（値の差異）の上限という条件を示すものである。図１６の例では、例えばＩＤが０ｘ１００のデータフレーム（車速）についてのデータ変化量が２ｋｍ／ｈであるので、ＩＤが０ｘ１００の連続して受信したデータフレームのデータ（車速）間の変化量が、２ｋｍ／ｈ以内の変化であれば上限条件が満たされ、条件が満たされると侵入判定においては正常（侵入でない）と判定される。例えば、監視ＥＣＵ２１００が、車速１９．２ｋｍ／ｈを示すＩＤが０ｘ１００のデータフレームを受信してから、次に受信する、ＩＤが０ｘ１００のデータフレームの車速の値が１７．２〜２１．２ｋｍ／ｈであれば、正常と判定される。この条件が満たされない場合には、侵入判定において異常（侵入）と判定される。図１６の例では、ＩＤが０ｘ２００のデータフレームについての条件として、受信間隔１００ｍｓと、マージン５ｍｓと、データ変化量５ｍ／ｓ＾２とが規定されている。また、ＩＤが０ｘ３００のデータフレームについての条件として、受信間隔１００ｍｓと、マージン５ｍｓとが規定されているが、データ変化量は規定されていない。これはデータ変化量に関する条件がないことを意味する。このように、侵入検知ルール情報が示す各ＩＤのデータフレームについての条件としては、そのＩＤの正常なデータフレームが周期的に送信されている状況において、そのＩＤを有する不正なデータフレームが外部から注入されたときに正常なデータフレームとの間で齟齬が生じることで条件が満たされなくなるような条件が規定されることが有用である。図１６の例は、正常なデータフレームと外部から注入された不正なデータフレームとの混在により、受信間隔及びデータ変化量に係る条件が満たされなくなる可能性に鑑みて、その条件が規定されている。
【０１２１】
［２．５  侵入判定結果］
図１７は、侵入判定結果保持部２１８１が保持する侵入判定結果の一例を示す。図１７の例では、侵入判定結果は、データフレームの各ＩＤについて、そのＩＤのデータフレームに係る条件に基づいて、侵入判定部２１３１により正常（侵入でない）と判定されたか、異常（侵入検知）と判定されたかを示す。図１７の例は、侵入判定部２１３１により、ＩＤが０ｘ１００のデータフレームが正常と判定され、ＩＤが０ｘ２００のデータフレームが異常と判定され、ＩＤが０ｘ３００のデータフレームが正常と判定されたことを示している。
【０１２２】
［２．６  異常対応テーブル］
図１８は、異常対応テーブル保持部２１９１が保持する異常対応テーブルの一例を示す。この異常対応テーブルを参照して、異常対応部２１４０は、不正判定結果及び侵入判定結果に基づいて異常への対応としての対処処理の内容を決定する。図１８に示すように、不正判定結果と侵入判定結果との組み合わせにより、対応が変化する。異常対応テーブルは、図１８の例では、不正判定結果が正常（例えば異常度が０）であって侵入判定結果が正常である場合には、対処処理として特に何もしない（何の対応も行わない）ことを示す。
【０１２３】
また、この例の異常対応テーブルは、不正判定結果が異常（例えば異常度が０より大きい）であって侵入判定結果が正常である場合には、異常なデータフレームの送信元に該当するＥＣＵへ診断メッセージを送信することで状況を確認することを対処処理の内容とすることを示す。この該当のＥＣＵへの診断メッセージの送信は、外部から不正メッセージ（攻撃のためのデータフレーム）が注入されていないが互いに異なるＩＤのデータフレームの内容間の関係が崩れていることから該当のＥＣＵのファームウェアが不正に書き換えられている可能性があるので、これに対応するために有用な処理である。
【０１２４】
また、この例の異常対応テーブルは、不正判定結果が正常であって侵入判定結果が異常である場合には、診断ポート２４００等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことを対処処理の内容とすることを示す。このユーザへの通知は、攻撃者によるＥＣＵのファームウェアの書き換え等でのＥＣＵの支配がなされていないが、外部から正常なメッセージを再送する等の攻撃の試行がなされている可能性があるので、これに対応するために有用な処理である。ユーザへの通知は、例えば、監視ＥＣＵ２１００から所定ＩＤのデータフレームをバス３００に送信し、その所定ＩＤのデータフレームをＥＣＵ２００ｄが受信すると予め定められたメッセージをインパネ２４０に表示するよう制御する等により実現され得る。
【０１２５】
また、この例の異常対応テーブルは、不正判定結果が異常であって侵入判定結果も異常である場合には、診断ポート２４００等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことと、各ＥＣＵへ異常が発生していることを通知するフレーム（異常通知メッセージ）を送信することとを、対処処理の内容とすることを示す。これは、外部から攻撃フレームが注入されてＥＣＵが支配されている可能性があって車両の制御への危険度が高いと想定される場合への対応の一例である。なお、車載ネットワークシステム１１における各ＥＣＵは異常通知メッセージを受信した場合に、予め定められたセキュリティ対策（例えば車両を減速させ停止させる等の走行制御、自動走行機能の縮退等）を行うように構成され得る。
【０１２６】
［２．７  監視ＥＣＵ２１００の動作］
図１９は、監視ＥＣＵ２１００の動作例を示すフローチャートである。監視ＥＣＵ２１００は、例えば１００ｍｓ毎に周期的に不正検知処理（不正判定）及び侵入検知処理（侵入判定）を行う。
【０１２７】
監視ＥＣＵ２１００は、周期的に行われる不正判定のタイミングになるまで待って（ステップＳ２１０１）、バス３００の監視による不正判定を行う（ステップＳ２１０２）。ステップＳ２１０２では、監視ＥＣＵ２１００は、不正判定部１３０により、フレーム受信履歴保持部２１６０に保持されているフレーム受信履歴を参照して、不正検知ルール保持部１７０に保持されている不正検知ルール情報が示す各ルール（条件）が満たされたか否かに基づいて、適正か不正かを判定する。なお、不正判定部１３０は、不正判定結果を不正判定結果保持部１８０に格納し、異常度の算定結果を不正判定結果に付加する。
【０１２８】
次に監視ＥＣＵ２１００は、侵入判定を行う（ステップＳ２１０３）。ステップＳ２１０３では、監視ＥＣＵ２１００は、侵入判定部２１３１により、フレーム受信履歴保持部２１６０に保持されているフレーム受信履歴を参照して、侵入検知ルール保持部２１７１に保持されている侵入検知ルール情報が示す条件が満たされたか否かに基づいて、正常か異常（侵入検知）かを判定する。なお、侵入判定部２１３１は、侵入判定結果を侵入判定結果保持部２１８１に格納する。
【０１２９】
次に監視ＥＣＵ２１００は、不正判定結果及び侵入判定結果に基づいて、異常対応テーブル保持部２１９１が保持する異常対応テーブルに従って、対処処理の内容を決定する（ステップＳ２１０４）。
【０１３０】
そして、監視ＥＣＵ２１００は、ステップＳ２１０４で決定した内容の対処処理を実行し（ステップＳ２１０５）、ステップＳ２１０１へと移行する。なお、監視ＥＣＵ２１００は、不正判定結果及び侵入判定結果のいずれもが正常であった場合において、特に対処処理は実行しない。
【０１３１】
［２．８  車載ネットワークシステム１１におけるバス３００の監視の動作例１］
図２０は、車載ネットワークシステム１１におけるバス３００の監視の動作例１を示す。
【０１３２】
この例は、ＥＣＵ２００ａ、ＥＣＵ２００ｂ及びＥＣＵ２００ｃからそれぞれ、ＩＤが０ｘ１００のデータフレーム（車速を示すデータフレーム）と、ＩＤが０ｘ２００のデータフレーム（加速度を示すデータフレーム）と、ＩＤが０ｘ３００のデータフレーム（ギアの状態を示すデータフレーム）とが、周期的にバス３００へ送信される様子を示している。この例は更に、ある時点で攻撃者により診断ポート２４００からＩＤが０ｘ２００の不正なデータフレームが注入（送信）される例を示している。
【０１３３】
監視ＥＣＵ２１００はバス３００を監視しており、診断ポート２４００からＩＤが０ｘ２００の不正なデータフレーム（加速度−１．５０を示すデータフレーム）が注入されると、不正検知ルール情報（図６参照）が示すルール番号３の条件（ギアの状態「Ｄ」と加速度の変化量との関係に係る条件）が満たされなくなる。このため、監視ＥＣＵ２１００では不正判定において不正と判定されることで異常が検知される。また、この不正なデータフレームの注入により、ＩＤが０ｘ２００のデータフレームの受信間隔が５０ｍｓとなり、侵入検知ルール情報（図１６参照）が示す、ＩＤが０ｘ２００のデータフレームについての受信間隔及びマージンで規定された条件が、満たされなくなる。このため、監視ＥＣＵ２１００では侵入判定において異常が検知される。そして、監視ＥＣＵ２１００は、不正判定及び侵入判定のいずれでも異常が検知されたので、異常対応テーブル（図１８参照）に従って、診断ポート２４００の確認をユーザに促し、かつ、各ＥＣＵへ車載ネットワークに異常が発生していることを通知する対処処理（予め定められたデータフレームの送信等）を実行する。
【０１３４】
［２．９  車載ネットワークシステム１１におけるバス３００の監視の動作例２］
図２１は、車載ネットワークシステム１１におけるバス３００の監視の動作例２を示す。
【０１３５】
この例は、動作例１と同様に、ＥＣＵ２００ａ、ＥＣＵ２００ｂ及びＥＣＵ２００ｃからそれぞれ、車速を示すデータフレームと、加速度を示すデータフレームと、ギアの状態を示すデータフレームとが、周期的にバス３００へ送信される様子を示している。この例は更に、ある時点で攻撃者により診断ポート２４００からＩＤが０ｘ１００の不正なデータフレームが注入（送信）される例を示している。
【０１３６】
この例では、診断ポート２４００から不正なデータフレームが注入されることにより、ＩＤが０ｘ１００のデータフレームの受信間隔が８０ｍｓとなり、侵入検知ルール情報が示す、ＩＤが０ｘ１００のデータフレームについての受信間隔及びマージンで規定された条件が、満たされなくなる。このため、監視ＥＣＵ２１００における不正判定では不正と判定されない（つまり異常が検知されない）が、侵入判定では異常が検知される。そして、監視ＥＣＵ２１００は、侵入判定のみで異常が検知されたので、異常対応テーブル（図１８参照）に従って、診断ポート２４００の確認をユーザに促す対処処理（予め定められたデータフレームの送信等）を実行する。
【０１３７】
［２．１０  実施の形態２の効果］
実施の形態２に係る車載ネットワークシステム１１では、監視ＥＣＵ２１００が、互いに異なる複数のＩＤを有するデータフレームの内容間の関係に基づいて不正を検知する不正判定の他に、単一のＩＤのデータフレームに関してＩＤ毎に定められた条件に基づいて侵入を検知する侵入判定を行う。そして、不正判定結果及び侵入判定結果の組み合わせに応じて、対処処理の内容を決定して、対処処理を実行する。これにより、攻撃者によりＥＣＵのファームウェアが不正に書き換えられ、或いは、ＥＣＵ上で不正なプログラムが実行される等により、正規の送信タイミングで不正な内容のデータフレームが送信されたとしても、ＩＤの相違するデータフレーム間の内容の関係の崩れから、不正なデータフレームの送信が検知され得る。例えば、攻撃者があるＥＣＵを支配して不正なデータフレームを送信しても、他のＥＣＵが送信するデータフレームとの間での関係に基づいて不正が検知されることから、不正を検知されずに攻撃者が攻撃を行うことが困難となる。更に、攻撃者が外部から不正なデータフレームを注入する場合に対しても適切に検知でき、不正判定結果及び侵入判定結果の組み合わせに応じて、攻撃の状況に応じた適切な対応が可能となる。
【０１３８】
（実施の形態３）
以下、実施の形態２で示した車載ネットワークシステム１１を一部変形してなる車載ネットワークシステム１２について説明する。
【０１３９】
本実施の形態に係る車載ネットワークシステム１２における監視ＥＣＵは、互いに異なるＩＤを有するデータフレームの内容間の関係に基づいて不正状態の発生を検知する方法、及び、単一のＩＤのデータフレームについてＩＤ毎に定められたルール（条件）に基づいて不正状態の発生を検知する方法の他に、データフレームに付されたメッセージ認証コード（ＭＡＣ：Message Authentication Code）の検証の成否を判別する方法を用いて、総合的に対処処理を決定する。
【０１４０】
［３．１  車載ネットワークシステム１２の全体構成］
図２２は、車載ネットワークシステム１２の全体構成を示す図である。
【０１４１】
車載ネットワークシステム１２は、バス３００と、監視ＥＣＵ３１００、センサ等の各種機器に接続されたＥＣＵ３２００ａ、ＥＣＵ３２００ｂ、ＥＣＵ３２００ｃ、ＥＣＵ３２００ｄ等の各ＥＣＵといったバス３００に接続された各ノードと、バス３００に接続された診断ポート２４００とを含んで構成される。車載ネットワークシステム１２は、ここで特に説明しない点については実施の形態２で示した車載ネットワークシステム１１（図１３参照）と同じであり、車載ネットワークシステム１１と同様の構成要素については、図２２において、図１３と同じ符号を付しており、ここでの説明を省略する。
【０１４２】
監視ＥＣＵ３１００は、実施の形態２で示した監視ＥＣＵ２１００を部分的に変形したものであり、バス３００に流れるデータフレームを監視して、不正なデータフレームが送信されたか否かの判定（不正判定及び侵入判定）を行い不正状態の発生を検知する。更に監視ＥＣＵ３１００は、バス３００に流れるデータフレームに付されたＭＡＣを検証し、ＭＡＣの検証結果と不正なデータフレームが送信された状況（不正判定及び侵入判定の結果）とに応じて対処処理の内容を決定して、対処処理を行う。
【０１４３】
ＥＣＵ３２００ａ、ＥＣＵ３２００ｂ、ＥＣＵ３２００ｃ、及び、ＥＣＵ３２００ｄは、バス３００と接続され、それぞれ速度センサ２１０、加速度センサ２２０、ギア２３０、インパネ２４０に接続されている。ＥＣＵ３２００ａは、周期的に速度センサ２１０から車両の速度を取得し、取得した速度を示す情報とＭＡＣとを含ませたデータフレームを、周期的にバス３００へ送信する。ＥＣＵ３２００ｂは、周期的に加速度センサ２２０から車両の加速度を取得し、取得した加速度を示す情報とＭＡＣとを含ませたデータフレームを、周期的にバス３００へ送信する。ＥＣＵ３２００ｃは、周期的にギア２３０の状態を取得し、ギア２３０の状態を示す情報とＭＡＣとを含ませたデータフレームを、周期的にバス３００へ送信する。ＥＣＵ２００ｄは、車両の速度を示す情報或いはギアの状態を示す情報を含む各データフレームを受信して、データフレームに付されたＭＡＣを検証し、検証に成功した場合（ＭＡＣが正当であると検証できた場合）に、インパネ２４０で表示する情報を更新する。
【０１４４】
監視ＥＣＵ３１００と、ＥＣＵ３２００ａと、ＥＣＵ３２００ｂと、ＥＣＵ３２００ｃと、ＥＣＵ３２００ｄとは、共通の秘密鍵を共有し、例えばＡＥＳ（Advanced Encryption Standard）―ＣＭＡＣ（Cipher-based MAC）アルゴリズムによりＭＡＣを生成及び検証する。また、車載ネットワークシステム１２においてはＣＡＮプロトコルに従って、各ＥＣＵがフレームの授受を行う。
【０１４５】
［３．２  監視ＥＣＵ３１００の構成］
図２３は、監視ＥＣＵ３１００の構成図である。監視ＥＣＵ３１００は、フレーム送受信部１１０と、フレーム処理部１２０と、不正判定部３１３０と、侵入判定部３１３１と、異常対応部３１４０と、フレーム生成部１５０と、ＭＡＣ検証部３５００と、ＭＡＣ生成部３５１０と、フレーム受信履歴保持部３１６０と、不正検知ルール保持部１７０と、侵入検知ルール保持部２１７１と、不正判定結果保持部３１８０と、侵入判定結果保持部３１８１と、ＥＣＵ情報テーブル保持部１９０と、異常対応テーブル保持部３１９１とを含んで構成される。実施の形態１の監視ＥＣＵ１００或いは実施の形態２の監視ＥＣＵ２１００と同様の機能を有する構成要素は、図２３において、図４或いは図１４と同じ符号を付しており、ここでの説明を省略する。図２３に示した監視ＥＣＵ３１００の各構成要素は、監視ＥＣＵ３１００のメモリ等の記憶媒体、通信回路、メモリに格納されたプログラムを実行するプロセッサ等で、実現され得る。
【０１４６】
不正判定部３１３０は、実施の形態１で示した不正判定部１３０を部分的に変形したものであり、不正なデータフレームを受信したか否かの判定（不正なデータフレームが送信されたか否かに係る不正判定）を、不正検知ルール保持部１７０が保持する不正検知ルール情報と、ＭＡＣの検証結果を含むフレーム受信履歴保持部３１６０が保持するフレーム受信履歴とに基づいて、所定の単位時間（例えば１００ｍｓ）を周期として周期的に行う。不正判定部３１３０は、ここで特に示さない点は、不正判定部１３０と同様である。不正判定部３１３０は、不正判定の結果に基づいて、不正判定結果保持部３１８０が保持する不正判定結果を更新する。また、不正判定部３１３０は、不正判定の結果として不正と判定された場合（つまり不正状態の発生が検知された場合）に、不正を検知したことを異常対応部３１４０へ通知する。
【０１４７】
侵入判定部３１３１は、外部からバス３００に不正なデータフレームが注入されているか否かの判定（不正なデータフレームが注入されたか否かに係る侵入判定）を、侵入検知ルール保持部２１７１が保持する侵入検知ルール情報と、フレーム受信履歴保持部３１６０が保持するフレーム受信履歴に基づいて、所定の単位時間（例えば１００ｍｓ）を周期として周期的に行う。侵入判定部３１３１は、侵入判定の結果に基づいて、侵入判定結果保持部３１８１が保持する侵入判定結果を更新する。また、侵入判定部３１３１は、侵入判定の結果として侵入と判定された場合つまり異常発生が検知された場合に、侵入を検知したことを異常対応部３１４０へ通知する。
【０１４８】
異常対応部３１４０は、不正判定部３１３０或いは侵入判定部３１３１から、不正或いは侵入を検知したこと（異常発生）を通知されると、不正判定結果保持部３１８０に格納されている不正判定結果と、侵入判定結果保持部３１８１に格納されている侵入判定結果と、ＥＣＵ情報テーブル保持部１９０に格納されているＥＣＵ情報テーブルと、異常対応テーブル保持部３１９１に格納されている異常対応テーブルとを参照して、異常への対応としての対処処理の内容を決定する。異常対応部３１４０は、対処処理を決定した場合において、その対処処理の実行のための制御を行う。例えば、異常対応部３１４０は、ＭＡＣの検証に成功しているが不正判定結果が異常を示して侵入検知結果が異常を示さない場合において、ＥＣＵのファームウェアが不正に書き換えられて認証用の鍵（ＭＡＣ生成に用いられる秘密鍵）を利用されている可能性が高いので、異常に係るデータフレームの送信元のＥＣＵに対して送信すべき診断メッセージの生成を、フレーム生成部１５０に要求し、更に、他のＥＣＵに対して秘密鍵の更新を促すために送信すべき、予め定められた更新用メッセージ（更新用のデータフレーム）の生成を、フレーム生成部１５０に要求する。
【０１４９】
ＭＡＣ検証部３５００は、図２４に示すように、ＭＡＣ生成部３５１０と、ＭＡＣ比較部３５２０とを含んで構成される。ＭＡＣ生成部３５１０は、データ処理部３５１１と、ＡＥＳ暗号化部３５１２と、秘密鍵保持部３５１３とを含んで構成される。データ処理部３５１１は、受信したデータフレームにおいてＭＡＣの生成用に用いられることが定められた部分を抽出し（例えばＩＤとデータフィールドにおけるＭＡＣ以外の部分等とを連結し）、ＡＥＳ暗号化部３５１２の入力サイズに適合するようにパディング等の処理を行う。ＡＥＳ暗号化部３５１２は、例えば暗号化関数等として実装され、データ処理部３５１１が処理したデータを、秘密鍵保持部３５１３が保持する秘密鍵を用いて、暗号化し、暗号化で得られた値の一部をＭＡＣとして生成し、ＭＡＣ比較部３５２０へ通知する。データ処理部３５１１は、再送攻撃対策として逐次カウントアップさせるカウンタ値を、暗号化対象のデータに含ませても良い。ＭＡＣ比較部３５２０は、ＭＡＣ生成部３５１０から通知されたＭＡＣと、受信したデータフレームのデータフィールドに含まれるＭＡＣと比較して等しいか否かを判断する。ＭＡＣ検証部３５００は、ＭＡＣ比較部３５２０の比較により両ＭＡＣが等しかった場合にＭＡＣが正当であったこと（検証に成功したこと）を示す検証結果を、等しくなかった場合にＭＡＣが不正であったこと（検証に失敗したこと）を示す検証結果を、出力する。なお、ＭＡＣ検証部３５００によるＭＡＣの検証結果は、フレーム送受信部１１０で受信されたデータフレームの情報と一緒に、フレーム処理部１２０に通知される。フレーム処理部１２０では、取得したデータフレームの情報とＭＡＣの検証結果とに基づいて、フレーム受信履歴保持部３１６０に格納されている各データフレームに関する情報（フレーム受信履歴）を更新する。
【０１５０】
フレーム受信履歴保持部３１６０は、監視ＥＣＵ３１００が逐次受信したデータフレームに関する情報であってＭＡＣの検証結果を含む情報であるフレーム受信履歴（図２５参照）を保持する。
【０１５１】
不正判定結果保持部３１８０は、不正判定部３１３０が、不正検知ルール情報が示すルール（条件）に適合するか否かを判定した結果としての不正判定結果（図２６参照）を保持する。
【０１５２】
侵入判定結果保持部３１８１は、侵入判定部３１３１が、侵入検知ルール情報が示す条件を満たすか否かを判定した結果としての侵入判定結果（図２７参照）を保持する。
【０１５３】
異常対応テーブル保持部３１９１は、不正判定結果、侵入判定結果及びＭＡＣの検証結果に応じて、不正或いは侵入の発生に対して適切な対処処理の内容を決定するために用いられる異常対応テーブル（図２８参照）を保持する。
【０１５４】
［３．３  フレーム受信履歴］
図２５は、フレーム受信履歴保持部３１６０が保持するフレーム受信履歴の一例を示す。フレーム受信履歴は、監視ＥＣＵ３１００が過去から現在までに受信したデータフレームの内容及びＭＡＣの検証結果に関する情報であり、同図の例では、フレーム受信履歴のうち、３つのＩＤそれぞれについての、現在（最新）から２回前までに受信されたデータフレームの受信時刻とＭＡＣの検証結果とデータフレームの内容が示す特定の値（車速、加速度、ギアの状態のそれぞれを示す値）とを示している。この例は、車速に関する０ｘ１００というＩＤを有するデータフレームのうち、最新のデータフレームの受信時刻が２１０ｍｓであって、ＭＡＣが正当であって、受信したデータフレームの示す車速の値が１８．０ｋｍ／ｈであり、１回前の受信時刻が１１０ｍｓであって、ＭＡＣが正当であって、受信したデータフレームの車速の値が１９．２ｋｍ／ｈであり、２回前の受信時刻が１０ｍｓであって、ＭＡＣが不正であって、受信した値が０．０ｋｍ／ｈであったことを示している。また、加速度に関する０ｘ２００というＩＤを有するデータフレームのうち、最新から２回前までに受信したデータフレームの受信時刻がそれぞれ２２０ｍｓ、１２０ｍｓ、２０ｍｓであって、受信した各データフレームの示す加速度の値がそれぞれ、０．１０ｍ／ｓ＾２、０．１０ｍ／ｓ＾２、０．２０ｍ／ｓ＾２であって、ＭＡＣは全て正当であったことを示している。また、ギアの状態に関する０ｘ３００というＩＤを有するデータフレームのうち、最新から２回前までに受信したデータフレームの受信時刻がそれぞれ２３０ｍｓ、１３０ｍｓ、３０ｍｓであって、受信した各データフレームの示すギアの状態の値が、全て「Ｄ」（ドライブ）の状態を表すものであって、ＭＡＣは全て正当であったことを示している。
【０１５５】
このフレーム受信履歴は、不正判定部３１３０での不正判定、及び、侵入判定部３１３１での侵入判定において用いられる。図２５では、最新から２回前に受信したデータフレームの内容が示す値までしか示していないが、フレーム受信履歴は、不正検知ルール情報を用いて不正判定部３１３０が行う不正判定において必要な情報、及び、侵入検知ルール情報を用いて侵入判定部３１３１が行う侵入判定において必要な情報を含むように構成され得る。例えば、フレーム受信履歴は、車両の走行の開始時（例えばエンジン始動時）等以降に監視ＥＣＵ３１００が受信した全てのデータフレームの内容を示す情報であり得る。なお、フレーム受信履歴保持部３１６０は、例えば、加速度の積分値を記憶するための領域を１つ有することとしても良い。
【０１５６】
［３．４  不正判定結果］
図２６は、不正判定結果保持部３１８０が保持する不正判定結果の一例を示す。同図の例では、不正判定結果は、データフレームの各ＩＤ（同図左端）について、そのＩＤのデータフレームと別のＩＤのデータフレームとの間の関係に係る条件に基づいて、不正判定部１３０により不正と判定されたか、否か（適正と判定されたか）を示す。なお、図２６では、不正と判定されたか否かに加えて、その判定に用いられた、不正検知ルール情報におけるルール（条件）についてのルール番号を付記している。この例は、不正判定部３１３０により、ルール番号１の条件と、ルール番号２の条件とは満たされなかったと判定され（つまり不正と判定され）、ルール番号３の条件は満たされたと判定された（つまり適正と判定された）例を示している。
【０１５７】
また、不正判定結果には、不正判定部３１３０により、各ＩＤのフレームについて不正と判定（検知）された数に応じて算定された異常度が付加されている。図２６に示すように、ＩＤが０ｘ１００のデータフレームは、ルール番号１の条件で不正と判定された上にルール番号２の条件で不正と判定されているので、異常度が２と算定されている。ＩＤが０ｘ２００のデータフレームは、ルール番号１の条件で不正と判定されているが、ルール番号３の条件では不正と判定されていないので、異常度は１と算定されている。ＩＤが０ｘ３００のデータフレームは、ルール番号２の条件で不正と判定されているが、ルール番号３の条件では不正と判定されていないので、異常度は１と算定されている。
【０１５８】
更に、不正判定結果には、不正判定部３１３０により、ＩＤ毎に、そのＩＤのデータフレームについてのＭＡＣの検証結果が不正となった数が付加されている。不正判定部３１３０は、フレーム受信履歴に基づいて、ＭＡＣの検証結果が不正となった数をカウントすることで、カウント結果を、不正判定結果にＭＡＣの不正回数として付加する。
【０１５９】
［３．５  侵入判定結果］
図２７は、侵入判定結果保持部３１８１が保持する侵入判定結果の一例を示す。図２７の例では、侵入判定結果は、データフレームの各ＩＤについて、そのＩＤのデータフレームに係る条件に基づいて、侵入判定部３１３１により正常（侵入でない）と判定されたか、異常（侵入検知）と判定されたかを示す。
【０１６０】
更に、侵入判定結果には、侵入判定部３１３１により、ＩＤ毎に、そのＩＤのデータフレームについてのＭＡＣの検証結果が付加されている。侵入判定部３１３１は、フレーム受信履歴に基づいて、ＭＡＣの正当性の検証結果を侵入判定結果に付加する。
【０１６１】
図２７の例は、侵入判定部３１３１により、ＩＤが０ｘ１００のデータフレームが正常と判定され、同様にＩＤが０ｘ２００及び０ｘ３００の各データフレームが正常と判定されたことを示している。また、この例は、ＩＤが０ｘ１００のデータフレームには不正なＭＡＣが付加されていたことを示しており、ＩＤが０ｘ２００及び０ｘ３００の各データフレームには、正当なＭＡＣが付加されていたことを示している。
【０１６２】
［３．６  異常対応テーブル］
図２８は、異常対応テーブル保持部３１９１が保持する異常対応テーブルの一例を示す。この異常対応テーブルに従って、異常対応部３１４０は、不正判定結果、侵入判定結果及びＭＡＣの検証結果（ＭＡＣが正当か否か）に基づいて、異常への対応としての対処処理の内容を決定する。図２８に示すように、不正判定結果と侵入判定結果とＭＡＣの検証結果との組み合わせにより、対応が変化する。異常対応テーブルは、図２８の例では、不正判定結果が正常（例えば異常度が０）であって、侵入判定結果が正常である場合において、ＭＡＣが正当であったときには、対処処理として特に何もしない（何の対応も行わない）ことを示す。また、この例の異常対応テーブルは、不正判定結果が正常であって侵入判定結果が正常である場合において、ＭＡＣが不正であったときには、不正なＭＡＣを付加したデータフレームの送信元に該当するＥＣＵへ診断メッセージを送信することで状況を確認することと、鍵の更新（鍵更新処理）を行うこと（例えばＭＡＣ生成用の秘密鍵の更新に係る更新用メッセージを送信すること）とを、対処処理の内容とすることを示す。この対処処理は、ＭＡＣが不正であったので、ＥＣＵにおける秘密鍵の共有、再送攻撃対策として用いるカウンタの同期等に問題がある可能性に鑑みた対応である。なお、各ＥＣＵは、更新用メッセージを受信した場合に、鍵の更新、カウンタのリセット等を行うように構成され得る。なお、更新用メッセージを送信してＥＣＵに秘密鍵を更新させた場合に、監視ＥＣＵ３１００は、その更新に対応した同様の方法で、秘密鍵保持部３５１３における秘密鍵を更新する。
【０１６３】
また、この例の異常対応テーブルは、不正判定結果が異常（例えば異常度が０より大きい）であって侵入判定結果が正常である場合において、ＭＡＣが正当であったときには、異常なデータフレームの送信元に該当するＥＣＵへ診断メッセージを送信することで状況を確認することと、鍵更新処理を行うこととを、対処処理の内容とすることを示す。この対処処理は、外部から不正メッセージ（攻撃のためのデータフレーム）が注入されていないが互いに異なるＩＤのデータフレームの内容間の関係が崩れていることから該当のＥＣＵのファームウェアが不正に書き換えられている可能性があり、ＭＡＣが正当であることから秘密鍵が漏洩している可能性があるので、これに対応するために有用な処理である。また、この例の異常対応テーブルは、不正判定結果が異常であって侵入判定結果が正常である場合において、ＭＡＣが不正であったときには、異常なデータフレームの送信元に該当するＥＣＵへ診断メッセージを送信することで状況を確認することを、対処処理の内容とすることを示す。この対処処理は、外部から不正メッセージが注入されていないが互いに異なるＩＤのデータフレームの内容間の関係が崩れていることから該当のＥＣＵのファームウェアが不正に書き換えられている可能性があり、ＭＡＣが不正であることから秘密鍵が漏洩していない可能性が高いと想定されるので、有用な対応である。
【０１６４】
また、この例の異常対応テーブルは、不正判定結果が正常であって侵入判定結果が異常である場合において、ＭＡＣが正当であったときには、診断ポート２４００等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことと、鍵更新処理を行うこととを、対処処理の内容とすることを示す。この対処処理は、互いに異なるＩＤのデータフレームの内容間の関係は崩れていないが、外部から不正メッセージが注入されており、ＭＡＣが正当であることから、正常なデータフレームを再送する等の攻撃の試行がなされている可能性があるので、これに対応するために有用な処理である。この対処処理における鍵更新処理により、正当なＭＡＣを含むデータフレームの外部からの注入を防ぎ得る。また、この例の異常対応テーブルは、不正判定結果が正常であって侵入判定結果が異常である場合において、ＭＡＣが不正であったときには、診断ポート２４００等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことを対処処理の内容とすることを示す。これは、外部から正常なメッセージを再送する等の攻撃の試行がなされている可能性があるが、秘密鍵が漏洩していない可能性が高いと想定されるので、有用な対応である。ユーザへの通知は、例えば、監視ＥＣＵ３１００から所定ＩＤのデータフレームをバス３００に送信し、その所定ＩＤのデータフレームをＥＣＵ３２００ｄが受信すると予め定められたメッセージをインパネ２４０に表示するよう制御する等により実現され得る。
【０１６５】
また、この例の異常対応テーブルは、不正判定結果が異常であって侵入判定結果も異常である場合において、ＭＡＣが正当であったときには、診断ポート２４００等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことと、各ＥＣＵへ異常が発生していることを通知するフレーム（異常通知メッセージ）を送信することと、鍵更新処理を行うこととを対処処理の内容とすることを示す。この対処処理は、外部から不正メッセージが注入されている可能性が高く、秘密鍵も漏洩しており、車両の制御への悪影響が大きいと想定されるので、有用な対応である。また、この例の異常対応テーブルは、不正判定結果が異常であって侵入判定結果も異常である場合において、ＭＡＣが不正であったときには、診断ポート２４００等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことと、各ＥＣＵへ異常通知メッセージを送信することとを、対処処理の内容とすることを示す。これは、外部から攻撃フレームが注入されてＥＣＵが支配されている可能性があるが、秘密鍵が漏洩していない可能性が高いと想定されるので、有用な対応である。なお、車載ネットワークシステム１２における各ＥＣＵは異常通知メッセージを受信した場合に、予め定められたセキュリティ対策（例えば車両を減速させ停止させる等の走行制御、自動走行機能の縮退等）を行うように構成され得る。
【０１６６】
［３．７  ＥＣＵ３２００ａの構成］
図２９は、ＥＣＵ３２００ａの構成図である。ＥＣＵ３２００ａは、フレーム送受信部２０１と、フレーム処理部２０２と、機器入出力部２０３と、フレーム生成部２０４と、ＭＡＣ検証部３５００と、ＭＡＣ生成部３５１０とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ＥＣＵ３２００ａにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ＥＣＵ３２００ｂ、ＥＣＵ３２００ｃ及びＥＣＵ３２００ｄもＥＣＵ３２００ａと概ね同様の構成を有する。図２９において、実施の形態１で示したＥＣＵ２００ａ（図９参照）と同様の構成要素については、図９と同じ符号を付しており、ここでは説明を省略する。また、ＭＡＣ検証部３５００とＭＡＣ生成部３５１０とは、図２４に示す監視ＥＣＵ３１００の構成要素と同様であるので、ここでは説明を省略する。
【０１６７】
フレーム処理部３２０２は、フレーム送受信部２０１により受信され、ＭＡＣ検証部３５００での検証結果として、ＭＡＣが正当であるとされたデータフレームの内容を解釈する。例えばＥＣＵ３２００ａと同様の構成を備えるＥＣＵ３２００ｄのフレーム処理部３２０２では、ＥＣＵ３２００ａ及びＥＣＵ３２００ｃからそれぞれ送信されるデータフレームに含まれる車速（速度センサ２１０の情報）、ギアの状態（ギア２３０の状態の情報）を解釈し、インパネ２４０の表示の更新等のために必要な情報を、ＥＣＵ３２００ｄの機器入出力部２０３に通知する。また、フレーム処理部３２０２は、例えば、監視ＥＣＵ３１００から診断メッセージであるデータフレームを受信した場合には予め定められた処理を行って診断用情報を、監視ＥＣＵ３１００が受信可能となるようにフレーム送受信部２０１を介してバス３００に送信し得る。
【０１６８】
［３．８  監視ＥＣＵ３１００の動作］
監視ＥＣＵ３１００は、実施の形態２で示した監視ＥＣＵ２１００と同様に、例えば１００ｍｓ毎に周期的に不正検知処理（不正判定）及び侵入検知処理（侵入判定）を行う（図１９参照）。但し、フレーム受信履歴には、バス３００から受信されたデータフレームにおけるＭＡＣの検証結果も格納される。そして、監視ＥＣＵ３１００は、不正判定結果、侵入判定結果及びＭＡＣの検証結果に基づいて、異常対応テーブルに従って、対処処理の内容を決定する。そして、監視ＥＣＵ３１００は、決定した内容の対処処理を実行する。
【０１６９】
［３．９  車載ネットワークシステム１２におけるバス３００の監視の動作例１］
図３０は、車載ネットワークシステム１２におけるバス３００の監視の動作例１を示す。
【０１７０】
この例は、ＥＣＵ３２００ａ、ＥＣＵ３２００ｂ及びＥＣＵ３２００ｃからそれぞれ、ＩＤが０ｘ１００のデータフレーム（車速を示すデータフレーム）と、ＩＤが０ｘ２００のデータフレーム（加速度を示すデータフレーム）と、ＩＤが０ｘ３００のデータフレーム（ギアの状態を示すデータフレーム）とが、周期的にバス３００へ送信される様子を示している。この例は更に、攻撃者によりＥＣＵ３２００ａのファームウェアが不正に書き換えられてしまい、ＥＣＵ３２００ａは、ある時点から、速度センサ２１０から通知される車速を改竄して、不正な車速を示すデータフレームをバス３００へ送信する例を示している。この例では、秘密鍵は漏洩しており、全てのデータフレームに含まれるＭＡＣが正当である状況を想定している。
【０１７１】
監視ＥＣＵ３１００は、ＩＤが０ｘ３００のデータフレームを受信したタイミングの直後から１００ｍｓの周期で定期的に、不正判定（不正検知処理）を行う。この不正判定を行うタイミングを各単位時間（１００ｍｓ）の終期であるとすれば、最初の３回の単位時間それぞれでバス３００から受信されたデータフレームについては、不正検知ルール保持部１７０に格納されている不正検知ルール情報が示すルール番号１から３のいずれのルールでも不正は検知されていない。この例の最初の時点で加速度の積分値は２０．０ｋｍ／ｈであったとする。そのため、加速度の積分値は１回目から３回目までの加速度を示す各データフレームの受信により、２０．０７２、２０．１４４、２０．１８ｋｍ／ｈと順次変化する。監視ＥＣＵ３１００は、３回目に受信した車速のデータフレームが示す車速（１８．０ｋｍ／ｈ）と、加速度のデータフレームが示す加速度に基づく積分値（２０．１８ｋｍ／ｈ）の差（変化量）が１．０ｋｍ／ｈを超えたので、ルール番号１のルール（条件）が満たされずに不正を検知する。更に、監視ＥＣＵ３１００は、受信したデータフレームが示すギアの状態が「Ｄ」（ドライブ）である場合において、速度の変化量（３回目に受信した車速のデータフレームが示す車速１８．０ｋｍ／ｈと前回受信したデータフレームが示す車速１９．６ｋｍ／ｈとの差）が１．０ｋｍ／ｈを超えたので、ルール番号２の不正を検知する。これにより、監視ＥＣＵ３１００は、不正判定結果が異常であり、侵入判定結果が正常であり、かつ、ＭＡＣの検証結果が正当であることから、異常対応テーブルに従って、該当ＥＣＵへの診断メッセージの送信及び鍵更新処理を対処処理の内容として決定して、対処処理を行う。即ち、監視ＥＣＵ３１００は、２つのルール（条件）を満たさないことで異常度が最も高く２と算定された、ＩＤが０ｘ１００のデータフレームの送信元を、ＥＣＵ情報テーブル保持部１９０が保持するＥＣＵ情報テーブルを参照することにより、ＥＣＵ３２００ａであると特定し、ＥＣＵ３２００ａに対して、診断メッセージを送信する。また監視ＥＣＵ３１００は、各ＥＣＵに対して鍵更新処理を促す通知（秘密鍵の更新に係る更新用メッセージの送信）を行う。
【０１７２】
［３．１０  車載ネットワークシステム１２におけるバス３００の監視の動作例２］
図３１は、車載ネットワークシステム１２におけるバス３００の監視の動作例２を示す。図３１の動作例２は、監視ＥＣＵ３１００の動作例１と似たような状況であるが、秘密鍵の漏洩はしておらず、ＥＣＵ３２００ａの送信するデータフレームに含まれるＭＡＣが不正となっている例を示している。この例では、監視ＥＣＵ３１００は、不正判定結果が異常であり、侵入判定結果が正常であり、かつ、ＭＡＣの検証結果が不正であることから、異常対応テーブルに従って、該当ＥＣＵ（つまりＥＣＵ３２００ａ）への診断メッセージの送信を対処処理の内容として決定して、対処処理を行う。
【０１７３】
［３．１１  実施の形態３の効果］
実施の形態３に係る車載ネットワークシステム１２では、監視ＥＣＵ３１００が、互いに異なる複数のＩＤを有するデータフレームの内容間の関係に基づいて不正を検知する不正判定と、単一のＩＤのデータフレームに関してＩＤ毎に定められた条件に基づいて侵入を検知する侵入判定と、ＭＡＣの正当性の検証結果との組み合わせに応じて、対処処理の内容を決定して、対処処理を実行する。これにより、攻撃者によりＥＣＵのファームウェアが不正に書き換えられ、或いは、ＥＣＵ上で不正なプログラムが実行される等により、正規の送信タイミングで不正な内容のデータフレームが送信されたとしても、ＩＤの相違するデータフレーム間の内容の関係の崩れから、不正なデータフレームの送信が検知され得る。例えば、攻撃者があるＥＣＵを支配して不正なデータフレームを送信しても、他のＥＣＵが送信するデータフレームとの間での関係に基づいて不正が検知されることから、不正を検知されずに攻撃者が攻撃を行うことが困難となる。更に、攻撃者が外部から不正なデータフレームを注入する場合に対しても適切に検知でき、不正判定結果、侵入判定結果及びＭＡＣの検証結果の組み合わせに応じて、攻撃の状況に応じた適切な対応が可能となる。
【０１７４】
（他の実施の形態）
以上のように、本発明に係る技術の例示として実施の形態１〜３を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
【０１７５】
（１）上記実施の形態では、バス３００の監視と監視結果に応じた対処を行う監視ＥＣＵについて説明したが、監視ＥＣＵは、車載ネットワークシステムにおいてバスに接続されたＥＣＵであれば、監視専用のＥＣＵである必要はなく、監視及び対処とは異なる機能を併せ持っても構わない。また、例えば監視ＥＣＵにおける１つ以上の構成要素を他のＥＣＵに移動させても良い。例えば、監視ＥＣＵにおける不正判定のための構成（不正判定部等）、侵入判定のための構成（侵入判定部等）等を他のＥＣＵに含ませても良い。例えば、車載ネットワークを複数のバスで構成した場合におけるバス間でのデータフレームの転送を行うゲートウェイＥＣＵが、不正判定部を有することとしても良いし、秘密鍵の管理を行う鍵管理マスタＥＣＵが不正判定部、侵入判定部、ＭＡＣ検証部等を有することとしても良い。
【０１７６】
（２）上記実施の形態では、ＣＡＮプロトコルにおけるデータフレームを標準ＩＤフォーマットで記述しているが、拡張ＩＤフォーマットであっても良く、データフレームの識別子であるＩＤは、拡張ＩＤフォーマットでの拡張ＩＤ等であっても良い。
【０１７７】
（３）上記実施の形態では、監視ＥＣＵが、例えば１００ｍｓの周期で定期的に、不正検知処理（不正判定）及び侵入検知処理（侵入判定）を行う例を示したが、周期は任意であり、また必ずしも周期的に行う必要はない。例えば、監視ＥＣＵは、データフレームを受信する毎に、不正判定或いは侵入判定を行うこととしても良い。また、不正判定と侵入判定とはそれぞれ別のタイミングで実行されても良い。
【０１７８】
（４）上記実施の形態で示したフレーム受信履歴保持部は、フレーム受信履歴として、何回分の受信履歴を保持しても良い。また、フレーム受信履歴保持部は、実際に受信されたデータフレームの情報に基づくデータ補間によって、実際には受信されていない時刻の受信履歴としての情報を、フレーム受信履歴として保持することとしても良い。
【０１７９】
（５）上記実施の形態では、フレーム受信履歴保持部が、フレーム受信履歴として、受信時刻、ＭＡＣの正当性の検証結果、データフィールドの内容が示す値等を保持する例を示したが、この他の情報を保持することとしても良い。フレーム受信履歴保持部は、不正検知処理（不正判定）或いは侵入検知処理（侵入判定）に必要な任意の情報を保持すれば良い。また、データフィールドの内容が、複数の値を表すような場合において、各値を区別して保持することとしても良く、監視ＥＣＵでは、その各値に関連した条件を示す不正検知ルール情報或いは侵入検知ルール情報を用いた不正判定或いは侵入判定を行うこととしても良い。
【０１８０】
（６）上記実施の形態では、不正検知ルール情報が示すルール（条件）として、速度（車速）と加速度との関係に係る条件と、ギアの状態と車速の変化量との関係に係る条件と、ギアの状態と加速度の変化量との関係に係る条件とを例示したが、これは一例に過ぎない。正常時において、互いに異なるＩＤの複数のデータフレームが示すデータの間で、一定の関係が保たれるものであれば何でも良い。特にセンサにより測定されたデータ間の関係を用いることが有用である。また、データフィールドが示すデータの値の間の関係のみならず、不定期に送信される複数のデータフレームがバスに流れる時刻についての関係等といったデータフレームの受信時刻の関係等を、不正判定のための条件として加えることとしても良い。また、不正検知ルール情報は、例えば、条件として、一のＩＤを有するデータフレームのデータフィールドの内容が示す値ｙと、他のＩＤを有するデータフレームのデータフィールドの内容が示す値ｘとの関係を示す関係式ｙ＝ｆ（ｘ）等の一定誤差の範囲内に収まっていることを示すものであっても良い。
【０１８１】
（７）上記実施の形態では、不正検知ルール情報が示すルール（条件）として、ＩＤが０ｘ２００の複数のデータフレームのデータフィールドの内容に基づいて特定される、加速度の積分値と、ＩＤが０ｘ１００の１つのデータフレームのデータフィールドの内容が示す車速との関係に係る条件（目的変数と説明変数との関係に係る条件）等を例示したが、この関係は一例に過ぎない。以下、不正検知ルール情報が、あるＩＤ（第１識別子）を有するデータフレームである第１種フレームと、その第１識別子とは異なるＩＤ（第２識別子）を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての条件を示す例を挙げて、関係の例について説明する。不正検知ルール情報が示す条件は、例えば、１つ以上（或いは複数）の第１種フレームにおけるデータフィールドの内容に基づいて特定される値と、１つ以上の第２種フレームのデータフィールドの内容との関係を規定する。第１種フレームにおけるデータフィールドの内容に基づいて特定される値は、数値でも良いし、大、中、小等の程度を示す値でも、状態を区別する文字列等であっても良い。例えば、不正検知ルール情報が示す条件は、１つ以上の第１種フレームにおけるデータフィールドの内容と、１つ以上の第２種フレームのデータフィールドの内容との関係を、ピアソンの積率相関係数、最大情報係数、又は、正準相関係数を用いた関係式で規定するものであっても良い。例えば、車速と加速度との各時系列データに対して、線形関係の強弱を表す指標としての相関係数（ピアソンの積率相関係数）を求めることによって、その相関係数の高さについての条件を規定しても良いし、非線形の関係も表せる指標としての最大情報係数の高さについての条件を規定しても良いし、多変量データにおいて多数の変数が２つの変数群を構成するときに変数群間の相互関係を表す指標としての正準相関係数の高さについての条件を規定しても良い。なお、車速と加速度との各時系列データに対する相関係数等を求める他に、車速とタイヤの回転数との各時系列データに対する相関係数等を求めることで条件を規定しても良いし、車速とタイヤの回転数との関係式を求めることで条件を規定しても良い。また、相関係数、関係式等に基づいて不正検知ルール情報における条件を規定する対象となる数量としては、例えば、加速度と車速の変化量との組、アクセルの変位と車速の変化量との組、ブレーキの変位と車速の変化量との組、ステアリング角度（操舵角）とヨーレートとの組等が挙げられる。
【０１８２】
（８）上記実施の形態では、不正判定部が、バスから受信されたデータフレームについての情報（フレーム受信履歴）に基づいて、不正検知ルール情報が示す条件が満たされるか否かを判定することとした。この判定（不正判定）は、不正検知ルール情報が示す条件に応じて、任意の具体方法で実現され得る。この不正判定は、例えば、１つ又は複数の単位時間それぞれにおいてバスから受信された、上述の各第１種フレームにおけるデータフィールドの内容に基づく第１値と、その１つ又は複数の単位時間のうち最後から１つ以上の単位時間それぞれにおいてバスから受信された、上述の各第２種フレームにおけるデータフィールドの内容に基づく第２値とを用いて、不正検知ルール情報が示す条件が満たされるか否かを区別する所定演算処理を実行することにより、実現される。ここで、所定演算処理は、少なくとも第１値と第２値とを用いて不正検知ルール情報が示す条件が満たされるか否かを区別する演算処理であれば、いかなる演算処理であっても良い。所定演算処理は、例えば、質的変数の値毎に量的変数の値の範囲を規定した基準に基づいて、第２値を質的変数の値として用いて算定される量的変数の値の範囲に第１値が該当するか否かにより、不正検知ルール情報が示す条件が満たされるか否かを区別する処理であり得る。例えば第１値は、センサにより測定された物理量等に関連する値（車速、車速の変化量等）であり得る。また、第２値は、車両の状態を示すフラグ値（ギアの状態を示すフラグ値、車線維持機能の作動状態を示すフラグ値、自動駐車支援機能の作動状態を示すフラグ値、クルーズコントロール機能の作動状態を示すフラグ値等）であり得る。また、所定演算処理は、例えば、目的変数と説明変数との関係を示す関係式に基づいて、第１値を説明変数の値として用いて算定される目的変数の値の範囲に第２値が該当するか否かにより、不正検知ルール情報が示す条件が満たされるか否かを区別する処理であっても良い。この第１値と第２値とは、例えば、因果関係を有する物理事象に関する値である。
【０１８３】
（９）上記実施の形態では、不正検知ルール情報が示す条件として、２種（２つの異なるＩＤ）のデータフレームの内容間の関係を用いていたが、２種に限られることはなく、３種以上（３つ以上のＩＤ）のデータフレームの内容間の関係を用いても良い。例えば、不正検知ルール情報は、同じ単位時間内で受信された３つ以上の異なる所定ＩＤのデータフレームの内容が示す各値に基づく所定の演算（例えば算術演算、論理演算等）の結果が所定の閾値を超えること等といった条件を示すものであっても良い。
【０１８４】
（１０）上記実施の形態では、不正判定部が算定した異常度が最も高いＩＤのデータフレームを送信するＥＣＵを特定して、そのＥＣＵに対する診断メッセージを送信する等の対処処理を実行する例を示したが、異常度について閾値を設けて、閾値以上の異常度であるＩＤのデータフレームを送信するＥＣＵを特定し、そのＥＣＵに対する診断メッセージを送信する等の対処処理を実行することとしても良い。
【０１８５】
（１１）上記実施の形態では、監視ＥＣＵの不正判定部が、異常度を算定して不正判定結果に付加する例を示したが、必ずしも異常度を算定しなくても良い。監視ＥＣＵは、異常度を算定しない場合において、不正と判定された複数のデータフレームそれぞれの送信元のＥＣＵに、診断メッセージを送信することで診断を行うこととしても良い。なお、異常度の算定により、不正検知ルール情報が示す条件を満たさないことで不正と判定された複数のデータフレームそれぞれの送信元のＥＣＵのうち、診断メッセージを送信する対象を絞り込むことは、バストラフィック量の増大抑制等のために有用である。不正検知ルール情報が、あるＩＤ（第１識別子、例えば０ｘ１００というＩＤ）を有するデータフレームである第１種フレームと、第１識別子とは異なるＩＤ（第２識別子、例えば０ｘ２００というＩＤ）を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての第１条件（例えば図６に示すルール番号１の条件）を示し、更に、その第１種フレームと、第１識別子とも第２識別子とも異なるＩＤ（第３識別子、例えば０ｘ３００というＩＤ）を有するデータフレームである第３種フレームとの、データフィールドの内容の関係についての条件である第２条件（例えば図６に示すルール番号２の条件）を示している場合については、不正判定において第１条件及び第２条件のうち満たされないと判定された条件の数に応じて第１種フレームの送信に関する異常度が算定され得る。そして、算定された異常度が所定異常条件（例えば閾値より高い、或いは別途算定された他種のフレームの送信に関する異常度より高い等）を満たす場合に、第１種フレームを送信するＥＣＵが受信可能となるように所定フレーム（診断メッセージ等）を送信することで、バストラフィック量の増大抑制等が実現され得る。
【０１８６】
（１２）上記実施の形態では、監視ＥＣＵは、ＩＤ間を関係付けたテーブルの形式で、不正判定結果を保持する例を示したが、不正判定部が、バスから受信されたフレームの集合が不正検知ルール情報に示される条件を満たすか否かを判定した際に、判定結果を示す何らかの情報（例えばルール番号とそのルール番号に係る条件による判定結果との組を示す情報等）が、監視ＥＣＵが備えるメモリ、ハードディスク等といった記憶媒体に記憶されれば十分であり、いかなる形式で情報が保持されても良い。不正判定部により不正判定が行われると、記憶媒体にその判定結果を示す何らかの情報が格納されることになる。
【０１８７】
（１３）上記実施の形態では、侵入検知ルール情報が示す条件として、単一ＩＤのデータフレームに関する受信間隔及びデータの変化量に係る条件を例示したが、これは一例に過ぎず、他の条件であっても良く、例えば受信頻度（一定時間内にその単一ＩＤを有するデータフレームが受信される数等）に係る条件であっても良い。侵入検知ルール情報が示す条件としては、正常なデータフレームが満たすべき条件が規定される。そして、攻撃のためのデータフレームが外部から注入されて、不正なデータフレームと正常なデータフレームとの両方がバスに流れる状態となった場合には、その条件が満たされなくなるように、条件が規定されることが有用となる。
【０１８８】
（１４）上記実施の形態では、侵入判定結果保持部が、ＩＤ毎に、正常か、異常（侵入検知）かを区別する侵入判定結果を保持する例を示したが、侵入判定結果はこれに限られず、例えば、ＩＤを区別せずに一定期間内に正常と判定された数或いは異常と判定された数等を、侵入判定結果としても良い。侵入判定結果は、侵入検知ルール情報に基づく侵入判定の結果に関連した情報であれば良く、これにより、監視ＥＣＵでは、侵入検知ルール情報に基づく侵入判定結果と不正検知ルール情報に基づく不正判定結果との組み合わせに基づいて、異常に対応する対処処理を決定し得る。
【０１８９】
（１５）上記実施の形態では、ＭＡＣの生成にＡＥＳ−ＣＭＡＣを用いる例を示したが、ＭＡＣの生成方法はこれに限らない。例えばＡＥＳ以外のブロック暗号を用いても良いし、ＨＭＡＣ（Hash-based Message Authentication Code）等を用いても良い。
【０１９０】
（１６）上記実施の形態では、ＭＡＣの生成のために、ＩＤとデータフィールドの値とを、ＡＥＳ暗号化部（例えば暗号化関数）の入力としたが、入力値はこれに限らない。例えばデータフィールドの値のみを入力としても良いし、ＤＬＣを入力に含めても良い。また再送攻撃対策として、カウンタ値の他に、時刻情報等をその入力に含めても良い。
【０１９１】
（１７）上記実施の形態では、不正判定結果に応じた対応、或いは不正判定結果と侵入判定結果との組み合わせ等に応じた対応（対処処理の内容）として、該当ＥＣＵへの診断メッセージの送信、認証用の鍵の更新（鍵更新処理）、診断ポート等の確認をユーザへ促す通知、各ＥＣＵへの異常通知メッセージの送信等を例示した。しかし、対処処理の内容は、上述した以外のものであっても良い。対処処理は、例えば、バスに接続された特定のＥＣＵが受信可能となるように診断用のフレームを送信すること、バスに接続された特定のＥＣＵの正当性をチャレンジレスポンス認証により確認すること、バスにおける診断ポートの確認を促すための通知を行うこと、車載ネットワークシステムを搭載する車両の運転者に停車又は徐行を促すための通知を行うこと、車載ネットワークシステムを搭載する車両の運転者にディーラへ行くことを促すための通知を行うこと、車載ネットワークシステムを搭載する車両の運転者に不正状態が発生していることの通知を行うこと、バスに接続されたＥＣＵに、特定のＩＤ（識別子）を有するデータフレームが不正であることの通知を行うこと、車載ネットワークシステムを搭載する車両の外部のサーバ（例えば車両製造メーカ等が運用するサーバ等）に、不正なデータフレームが送信されていることの通知を行うこと、車載ネットワークシステムを搭載する車両の近隣の車両又は路側機へ、不正状態が発生していることの通知を行うこと、車載ネットワークシステムを、診断ポートの遮断、自動制御機能の縮退等を含み得る、予め定めたフェールセーフモードに切り替えること、不正状態が発生したことをログとして記録すること等であっても良い。監視ＥＣＵは、上述した対処処理のいずれか１つ以上を、不正判定部が算定した異常度が所定異常条件を満たす場合（例えば閾値を超える等の場合）に実行し得る。また、監視ＥＣＵは、不正判定部が算定した異常度の高さを反映するように対処処理の内容を変更しても良い。
【０１９２】
（１８）上記実施の形態では、監視ＥＣＵは、不正判定部での判定（不正判定）の結果（不正判定結果）と、侵入判定部での判定（侵入判定）の結果（侵入判定結果）と、ＭＡＣ検証部での認証子（ＭＡＣ）の正当性の検証結果との組み合わせに応じて、対処処理の内容を決定し、一定条件下で（例えば不正判定結果或いは侵入判定結果が異常でＭＡＣが正当の場合に）、認証用の鍵の更新に関する鍵更新処理を対処処理として決定して実行することとした。更に、監視ＥＣＵは、鍵更新処理を実行した後において、バスから受信されたデータフレームについて、不正判定、侵入判定、及び、ＭＡＣの検証を行い、その不正判定結果と侵入判定結果と検証結果との組み合わせが所定条件を満たす場合（例えばＭＡＣが正当であるが不正判定結果或いは侵入判定結果が異常な状態が継続しているような場合等）に、鍵更新処理とは異なる対処処理（ユーザへの危険状態の通知、サーバへの通知等）を行うこととしても良い。この鍵更新処理とは異なる対処処理は、鍵の更新が有効に作用しなかった場合等において有用となり得る。
【０１９３】
（１９）上記実施の形態では、不正検知ルール保持部が、互いに異なるＩＤのデータフレームの内容間の関係に係る条件を示す不正検知ルール情報を保持している例を示したが、不正検知ルール情報は、バスを流れるデータフレームを監視及び分析して学習した結果を用いて随時更新されることとしても良い。バスを流れる各ＩＤのデータフレームの内容についての情報を集積して統計処理、多変量解析等を行うことで、互いに異なる複数のＩＤのデータフレームの内容間の相関係数を求めて、予め定められた閾値以上の相関係数の値になる、データフレームの内容間の関係を、満たされるべき新たな条件として不正検知ルール情報に含ませても良いし、例えば説明変数と目的変数との関係式等の推定のための回帰分析、重回帰分析、判別分析等で得られた説明変数と目的変数との関係を、条件として不正検知ルール情報に含ませても良い。即ち、監視ＥＣＵは、バスから受信されたデータフレームの集合に基づく多変量解析により、相互に異なるＩＤを有するデータフレーム同士の間でのデータフレームの内容の関係を特定し、特定した関係を表す条件を示すように不正検知ルール情報を生成又は更新することとしても良い。
【０１９４】
（２０）上記実施の形態では、ＭＡＣの検証結果に基づいて、不正判定部が不正判定結果にＭＡＣの不正回数を付加し、侵入判定部が侵入判定結果にＭＡＣの正当性を付加することとしたが、不正判定結果及び侵入判定結果にＭＡＣの検証結果に基づく情報を含まなくても良い。異常対応部は、例えばフレーム受信履歴保持部が保持するフレーム受信履歴からＭＡＣの検証結果を取得し得る。なお、不正判定部がＭＡＣの検証結果を踏まえて不正判定結果を特定することとした場合においては、その不正判定結果は、異常対応部が各種対応を行う際に活用され得る。
【０１９５】
（２１）上記実施の形態では、監視ＥＣＵは、不正判定結果或いは侵入判定結果が異常でありＭＡＣの検証結果としてＭＡＣが正当であった場合に、鍵が漏洩している可能性に鑑みて鍵更新処理を対処処理として実行する例を示したが、検証結果としてＭＡＣが正当であった回数に基づいて、鍵更新処理を対処処理の内容とするか否かを区別しても良い。監視ＥＣＵは、不正判定結果或いは侵入判定結果が異常である場合において、例えば、予め定められた回数ＮだけＭＡＣの検証が成功したときに、鍵が漏洩している可能性が高いので、鍵更新処理を実行することとしても良い。なお、この回数Ｎとしては、例えば、逐次ランダムな値をＭＡＣとして付加したデータフレームが逐次送信された場合に、Ｎ回の検証においてＭＡＣが正当であると判定される確率が十分低くなるような回数を、設定することが有用となる。
【０１９６】
（２２）上記実施の形態では、監視ＥＣＵは、不正判定結果と侵入判定結果とＭＡＣの検証結果との組み合わせ等に応じて対応処理の内容を決定（選定）して実行する例を示した。不正判定結果と侵入判定結果とＭＡＣの検証結果との組み合わせによれば、不正状態（特定ＩＤのデータフレームの異常、異常度の高いデータフレーム、異常の可能性の高いＥＣＵ、異なるＩＤのデータフレーム間の関係の異常等）を複数に類別してそれぞれに適切な対応を行うことが可能となる。監視ＥＣＵは、不正判定結果と侵入判定結果とＭＡＣの検証結果とのいずれか１つ以上を用いて、対処処理の決定を行っても良いし、更に、攻撃範囲を区別し、その区別も利用して、適切な対処処理を決定することとしても良い。例えば、監視ＥＣＵは、不正状態が発生したと検知した場合において、その不正状態の発生に関係があったデータフレームが送信されたサブネットワークと、そのフレームを送信するＥＣＵと、そのデータフレームのＩＤとのいずれかを特定し、特定に際してその特定したものをメモリ等の記憶媒体に記録することとしても良い。この特定されたサブネットワーク、ＥＣＵ、ＩＤ等を、上述の不正判定結果と侵入判定結果とＭＡＣの検証結果と合わせて用いる等により、不正状態（異常）の詳細の把握（例えばＩＤに基づいて、運転支援機能等といった特定機能に関わるデータフレームのグループでの異常発生の把握等）が可能となり、このような不正状態に係る情報の収集は、攻撃目的、攻撃範囲等の特定において有用となり得る。
【０１９７】
（２３）上記実施の形態では、不正検知ルール情報が示す条件に係る互いに異なる２つのＩＤのデータフレームの各送信元のＥＣＵが相違する例（図１２等参照）を示したが、これは一例に過ぎない。１つのＥＣＵが、互いに異なる複数のＩＤのデータフレームを送信することもあり得るので、同一のＥＣＵが送信する複数のＩＤのデータフレームの内容間の関係についての条件を不正検知ルール情報が示すようにしても良い。これにより、例えば攻撃者が不正なプログラムによりＥＣＵが送信するデータフレームを改竄したことで、同一のＥＣＵが送信する他のＩＤのデータフレームとの関係が崩れたような場合において、不正状態の発生が検知され得る。
【０１９８】
（２４）上記の実施の形態では、ＣＡＮプロトコルに従って通信する車載ネットワークを示した。このＣＡＮプロトコルは、ＣＡＮＦＤ（CAN with Flexible Data Rate）等の派生的なプロトコルも包含する広義の意味のものと扱われるべきである。また、車載ネットワークにおいては、ＣＡＮプロトコル以外の通信プロトコル、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、ＬＩＮ（Local Interconnect Network）、ＭＯＳＴ（登録商標）（Media Oriented Systems Transport）、ＦｌｅｘＲａｙ（登録商標）等を用いても良い。また、これらの各プロトコルが用いられるサブネットワークを組み合わせて車載ネットワークを構成しても良い。
【０１９９】
（２５）上記実施の形態で示した各種処理の手順（例えば図１１、図１９に示した手順等）の実行順序は、必ずしも、上述した通りの順序に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えたり、複数の手順を並列に行ったり、その手順の一部を省略したりすることができる。
【０２００】
（２６）上記実施の形態における監視ＥＣＵその他のＥＣＵは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等のハードウェア構成要素を含んでいても良い。また、上記実施の形態で示した各装置（監視ＥＣＵ等）は、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア（デジタル回路等）によりその機能を実現することとしても良い。
【０２０１】
（２７）上記実施の形態における各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしても良い。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等を含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全部を含むように１チップ化されても良い。また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。更には、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【０２０２】
（２８）上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしても良い。前記ＩＣカード又は前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等から構成されるコンピュータシステムである。前記ＩＣカード又は前記モジュールは、上記の超多機能ＬＳＩを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカード又は前記モジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしても良い。
【０２０３】
（２９）本発明の一態様としては、例えば図１１、図１９等に示す処理手順の全部又は一部を含む不正検知方法であるとしても良い。例えば、不正検知方法は、バスを介して通信を行う複数のＥＣＵを備える車載ネットワークシステムにおいて不正状態が発生したことを検知するための不正検知方法であって、第１識別子を有するフレームと、第１識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第１条件を示す不正検知ルール情報を用いて、バスから受信されたフレームの集合が第１条件を満たすか否かを判定し、第１条件が満たされない場合に不正状態が発生したと検知する方法である。例えば、この複数のＥＣＵは、バスを介してＣＡＮプロトコルに従ってデータフレームの授受を行い、不正検知ルール情報は、ＩＤ（第１識別子）を有するデータフレームである第１種フレームと、第１識別子とは異なるＩＤ（第２識別子）を有するデータフレームである第２種フレームとの、データフィールドの内容の関係についての第１条件を示し、不正検知方法は、バスに接続された監視ＥＣＵが、バス上に送信されたデータフレームを逐次受信する受信ステップと、受信ステップで受信された第１種フレーム及び第２種フレームが、不正検知ルール情報が示す第１条件を満たすか否かを判定する不正判定ステップ（例えばステップＳ１１０２、Ｓ２１０２）とを含むこととしても良い。また、不正判定ステップでは、第１種フレーム及び第３種フレーム（第１識別子とも第２識別子とも異なるＩＤを有するデータフレーム）の内容間の関係に係る第２条件を満たすか否かを判定することとしても良く、不正検知方法は、第１条件及び第２条件のうち不正判定ステップで満たされたと判定された条件の数に応じて第１種フレームの送信に関する異常度を算定する異常度算定ステップ（例えばステップＳ１１０３）を含むこととしても良い。不正検知方法は、異常度算定ステップにより算定された異常度が所定異常条件を満たす場合に、第１種フレームを送信するＥＣＵが受信可能となるように監視ＥＣＵが所定フレーム（例えば診断用のフレーム）を送信する送信ステップ（例えばステップＳ１１０４〜Ｓ１１０６）を含んでも良い。また、不正検知方法は、データフレームのＩＤ（識別子）毎に定められるデータフレームについての条件を示す侵入検知ルール情報を用いて、受信ステップでバスから受信されたデータフレームが、侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定ステップ（例えばステップＳ２１０３）と、不正判定ステップでの判定結果と侵入判定ステップでの判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処ステップ（例えばステップＳ２１０４、Ｓ２１０５）とを含んでも良い。また、不正検知方法は、バスから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証ステップを含んでも良い。なお、不正判定ステップ、異常度算定ステップ及び侵入判定ステップでの処理の少なくとも一部は、監視ＥＣＵ以外の装置（例えば監視ＥＣＵと通信可能な車両外部のサーバ或いは他のＥＣＵ等）で実行するようにしても良い。また、本発明の一態様としては、この不正検知方法に係る処理をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Blu-ray（登録商標） Disc）、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【０２０４】
（３０）上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。
【産業上の利用可能性】
【０２０５】
本発明は、車載ネットワークに対する攻撃を検知して適切に対処するために利用可能である。
【符号の説明】
【０２０６】
１０、１１、１２  車載ネットワークシステム
１００、２１００、３１００  監視電子制御ユニット（監視ＥＣＵ）
１１０、２０１  フレーム送受信部
１２０、２０２  フレーム処理部
１３０、３１３０  不正判定部
１４０  不正対応部
１５０、２０４  フレーム生成部
１６０、２１６０、３１６０  フレーム受信履歴保持部
１７０  不正検知ルール保持部
１８０、３１８０  不正判定結果保持部
１９０  ＥＣＵ情報テーブル保持部
２００ａ〜２００ｄ、３２００ａ〜３２００ｄ  電子制御ユニット（ＥＣＵ）
２０３  機器入出力部
２１０  速度センサ
２２０  加速度センサ
２３０  ギア（変速機構）
２４０  インストルメントパネル（インパネ）
３００  バス
２１３１、３１３１  侵入判定部
２１４０、３１４０  異常対応部
２１７１  侵入検知ルール保持部
２１８１、３１８１  侵入判定結果保持部
２１９１、３１９１  異常対応テーブル保持部
２４００  診断ポート
３２０２  フレーム処理部
３５００  ＭＡＣ検証部
３５１０  ＭＡＣ生成部
３５１１  データ処理部
３５１２  ＡＥＳ暗号化部
３５１３  秘密鍵保持部
３５２０  ＭＡＣ比較部
【図１】
2020102886.tif 000003
【図２】
2020102886.tif 000004
【図３】
2020102886.tif 000005
【図４】
2020102886.tif 000006
【図５】
2020102886.tif 000007
【図６】
2020102886.tif 000008
【図７】
2020102886.tif 000009
【図８】
2020102886.tif 000010
【図９】
2020102886.tif 000011
【図１０】
2020102886.tif 000012
【図１１】
2020102886.tif 000013
【図１２】
2020102886.tif 000014
【図１３】
2020102886.tif 000015
【図１４】
2020102886.tif 000016
【図１５】
2020102886.tif 000017
【図１６】
2020102886.tif 000018
【図１７】
2020102886.tif 000019
【図１８】
2020102886.tif 000020
【図１９】
2020102886.tif 000021
【図２０】
2020102886.tif 000022
【図２１】
2020102886.tif 000023
【図２２】
2020102886.tif 000024
【図２３】
2020102886.tif 000025
【図２４】
2020102886.tif 000026
【図２５】
2020102886.tif 000027
【図２６】
2020102886.tif 000028
【図２７】
2020102886.tif 000029
【図２８】
2020102886.tif 000030
【図２９】
2020102886.tif 000031
【図３０】
2020102886.tif 000032
【図３１】
2020102886.tif 000033