(本開示の基礎となった知見)
近年、外部ネットワークに接続されるコネクテッドカーの普及が進んでいる。例えば、インターネットに接続される車の数は、2020年までに2.5億台に達する可能性がある。
一方、車両が不正に制御される可能性も指摘され始めている。特に、車載ネットワークの通信規格として広く普及するCAN(Controller Area Network)に不正データが侵入する可能性が指摘されている。そして、不正データによって車両が不正に制御される可能性がある。したがって、不正データによって車両が不正に制御されないように、不正データから車両を保護する技術が検討されている。
例えば、各車両に搭載されるシステムである車載システムが、不正データから車両を保護するため、車載システムにおけるデータを監視してもよい。しかし、車載システムは、車両に搭載されるため、十分な処理能力を有していない場合がある。そのため、車載システムが単独で車載システムにおけるデータを適切に監視し、適切な監視レベルを維持することが困難な場合がある。
また、例えば、車両の外部のシステムが、車載システムにおけるデータを監視してもよい。しかし、この場合、大量の監視対象データが車載システムから外部のシステムへ送信される可能性がある。このような大量の監視対象データを処理するための資源を準備することは容易ではない。
そこで、本開示の一態様に係る情報処理装置は、車両に搭載される情報処理装置であって、前記車両の車載ネットワークにおける通信データに異常が含まれるか否かの異常検知結果を異常検知器から取得する取得器と、前記通信データの2種類のログのうち単位時間あたりに生じるデータ量が他方のログよりも小さいログであるサンプリングログを前記車両に搭載された送信器から前記車両の外部に設けられたサーバ装置へ周期的に送信させるサンプリングログ送信指示を出力する出力器とを備え、前記出力器は、さらに、前記通信データに異常が含まれることを示す前記異常検知結果を前記取得器が取得した場合、前記2種類のログのうち単位時間あたりに生じるデータ量が前記サンプリングログよりも大きいログであるフルログを前記送信器から前記サーバ装置へ送信させるフルログ送信指示を出力する。
これにより、車両に搭載された送信器からサーバ装置へ、データ量が比較的小さいサンプリングログが周期的に送信され、データ量が比較的大きいフルログが異常時に送信される。そして、車両の外部に設けられるサーバ装置は、車載のための要件に制約されない十分な処理能力を用いて、サンプリングログ及びフルログを監視し分析し得る。したがって、情報処理装置は、適切な監視レベルを維持しつつ、車載システムから送信される監視対象データのデータ量を削減することができる。
例えば、前記取得器は、前記サーバ装置に含まれる前記異常検知器から前記異常検知結果を取得してもよい。
これにより、情報処理装置は、サンプリングログの送信先であるサーバ装置に含まれる異常検知器から、異常検知結果を取得することができる。サーバ装置に含まれる異常検知器は、車載のための要件に制約されない十分な処理能力を有し得る。また、サーバ装置に含まれる異常検知器は、サンプリングログに従って異常が含まれるか否かを判定し得る。したがって、情報処理装置は、サーバ装置に含まれる異常検知器から、適切な異常検知結果を取得することができる。
また、例えば、前記情報処理装置は、さらに、前記異常検知器を備え、前記異常検知器は、前記車載ネットワークから前記通信データを取得し、前記通信データに異常が含まれるか否かを判定してもよい。
これにより、情報処理装置は、車載ネットワークから取得される通信データに従って、通信データに異常が含まれるか否かを適切に判定することができる。また、情報処理装置は、サンプリングログが周期的に車載システムから送信され、フルログが異常時に車載システムから送信されるように、送信器を制御することができる。したがって、通信データに含まれると判定された異常等が適切に分析され得る。
また、例えば、前記サンプリングログは、それぞれが第1時間長の期間である複数のサンプリング間隔のうち、前記複数のサンプリング間隔にそれぞれ含まれる複数の期間でありそれぞれが前記第1時間長よりも短い第2時間長の期間である複数のサンプリング期間における前記通信データのログであってもよい。
これにより、サンプリングログのデータ量が適切に削減される。したがって、車載システムから送信される監視対象データのデータ量が適切に削減される。また、車両を不正に制御するための不正データは連続的に送信される可能性が高いため、複数のサンプリング間隔にそれぞれ含まれる複数のサンプリング期間におけるサンプリングログによって、通信データに含まれる異常等が適切に分析され得る。
また、例えば、前記サンプリングログは、前記複数のサンプリング期間における前記通信データを構成する複数のフレームのそれぞれについて、(i)当該フレームのサンプリング時刻、(ii)当該フレームとサンプリング期間が同じ1以上のフレームにおいて当該フレームが最初のフレームであるか否か、及び、(iii)当該フレームのデータを示してもよい。
これにより、各フレームについて、サンプリング時刻、及び、サンプリング期間において最初のフレームか否か等がサンプリングログによって示される。そして、例えば、サンプリング期間において、最初のフレームとは異なるフレームのサンプリング時刻と、その前のフレームのサンプリング時刻との差等に従って、適切に異常が判定され得る。
また、例えば、前記フルログは、複数の種別の前記通信データのログであり、前記サンプリングログは、前記複数の種別よりも少ない1以上の種別の前記通信データのログであり、前記複数のサンプリング期間における前記1以上の種別の前記通信データを構成する複数のフレームのそれぞれについて、(i)当該フレームのサンプリング時刻、(ii)当該フレームと種別及びサンプリング期間が同じ1以上のフレームにおいて当該フレームが最初のフレームであるか否か、及び、(iii)当該フレームのデータを示してもよい。
これにより、各フレームについて、サンプリング時刻、及び、同一種別及び同一サンプリング期間において最初のフレームか否か等がサンプリングログによって示される。そして、例えば、同一種別及び同一サンプリング期間において、最初のフレームとは異なるフレームのサンプリング時刻と、その前のフレームのサンプリング時刻との差等に従って、適切に異常が判定され得る。
また、例えば、前記フルログは、複数の種別の前記通信データのログであり、前記サンプリングログは、前記複数の種別よりも少ない1以上の種別の前記通信データのログであってもよい。
これにより、サンプリングログのデータ量が適切に削減される。したがって、車載システムから送信される監視対象データのデータ量が適切に削減される。また、複数の種別が1以上の種別に削減されることにより、例えば重要な種別の通信データのログがサンプリングログとして適用され得る。
また、例えば、前記情報処理装置は、さらに、前記送信器を備え、前記送信器は、前記出力器から出力された前記サンプリングログ送信指示に従って前記サンプリングログを前記サーバ装置へ送信し、前記出力器から出力された前記フルログ送信指示に従って前記フルログを前記サーバ装置へ送信してもよい。
これにより、情報処理装置は、サンプリングログ及びフルログをサーバ装置へ適時に送信することができる。
また、例えば、前記送信器は、前記出力器から出力された前記サンプリングログ送信指示に従って、前記サンプリングログを可逆的に圧縮し、圧縮された前記サンプリングログを前記サーバ装置へ送信し、前記出力器から出力された前記フルログ送信指示に従って、前記フルログを可逆的に圧縮し、圧縮された前記フルログを前記サーバ装置へ送信してもよい。
これにより、サンプリングログ及びフルログが圧縮されて送信される。したがって、情報処理装置は、車載システムから送信される監視対象データのデータ量を削減することができる。
また、例えば、前記フルログ及び前記サンプリングログは、前記車両に搭載されたログ生成器によって生成され、前記出力器は、前記ログ生成器で生成された前記サンプリングログを前記送信器から前記サーバ装置へ周期的に送信させる前記サンプリングログ送信指示を出力し、前記通信データに異常が含まれることを示す前記異常検知結果を前記取得器が取得した場合、前記ログ生成器で生成された前記フルログを前記送信器から前記サーバ装置へ送信させる前記フルログ送信指示を出力してもよい。
これにより、情報処理装置は、車載システムにおいて生成されたサンプリングログ及びフルログが車載システムからサーバ装置へ送信されるように、車載システムを適切に制御することができる。
また、例えば、前記サンプリングログは、それぞれが第1時間長の期間である複数のサンプリング間隔のうち、前記複数のサンプリング間隔にそれぞれ含まれる複数の期間でありそれぞれが前記第1時間長よりも短い第2時間長の期間である複数のサンプリング期間における前記通信データのログであり、前記出力器は、さらに、前記ログ生成器に前記第2時間長よりも長い範囲で前記第1時間長を変更させる変更指示を出力してもよい。
これにより、情報処理装置は、サンプリングログに関連するサンプリング間隔の時間長を変更することができる。したがって、情報処理装置は、サンプリングログに、固定のサンプリング間隔では含まれない異常等を含ませることができる。
また、例えば、前記出力器は、前記通信データに異常が含まれることを示す前記異常検知結果を前記取得器が取得した場合、前記ログ生成器に前記第2時間長よりも長い範囲で前記第1時間長を短くさせる前記変更指示を出力してもよい。
これにより、情報処理装置は、異常時以降において、サンプリングログのデータ量を増加させることができる。また、情報処理装置は、サンプリングログに、長いサンプリング間隔では含まれない異常等を含ませることができる。
また、例えば、前記出力器は、前記通信データに異常が含まれることを示す前記異常検知結果を前記取得器が取得しなかった場合、前記ログ生成器に前記第1時間長を長くさせる前記変更指示を出力してもよい。
これにより、情報処理装置は、異常がない場合、サンプリングログのデータ量を減少させることができる。
また、例えば、前記第1時間長は、前記通信データに関する複数の種別のそれぞれについて定められ、前記出力器は、前記複数の種別のうちの1つの種別について前記通信データに異常が含まれることを示す前記異常検知結果を前記取得器が取得した場合、前記ログ生成器に前記第2時間長よりも長い範囲で前記1つの種別について前記第1時間長を短くさせる前記変更指示を出力してもよい。
これにより、情報処理装置は、異常時以降において、サンプリングログのデータ量を種別毎に増加させることができる。
また、例えば、前記第1時間長は、前記通信データに関する複数の種別のそれぞれについて定められ、前記出力器は、前記複数の種別のうちの1つの種別について前記通信データに異常が含まれることを示す前記異常検知結果を前記取得器が取得した場合、前記ログ生成器に前記第2時間長よりも長い範囲で前記複数の種別のそれぞれについて前記第1時間長を短くさせる前記変更指示を出力してもよい。
これにより、情報処理装置は、異常時以降において、サンプリングログのデータ量を種別によらず増加させることができる。したがって、情報処理装置は、異常時以降において、種別によらず詳細な情報をサンプリングログに含ませることができる。
また、例えば、前記出力器は、前記通信データに異常が含まれることを示す前記異常検知結果を前記取得器が取得しなかった場合、前記ログ生成器に短くされた前記第1時間長を長くさせる前記変更指示を出力してもよい。
これにより、情報処理装置は、異常がない場合、増加したデータ量を減少させることができる。
また、例えば、前記出力器は、前記ログ生成器に前記第2時間長よりも長い範囲で前記第1時間長をランダムに変更させる前記変更指示を出力してもよい。
これにより、情報処理装置は、サンプリング間隔を解析されにくくすることができる。したがって、情報処理装置は、不正なデータに基づく異常等がサンプリングログに含まれない現象を抑制することができる。
また、例えば、前記出力器は、前記ログ生成器に前記第2時間長よりも長い範囲で前記第1時間長を線形的に変更させる前記変更指示を出力してもよい。
これにより、情報処理装置は、サンプリング間隔を様々に変更することができる。したがって、情報処理装置は、サンプリングログに、固定のサンプリング間隔では含まれない異常等を適切に含ませることができる。
また、例えば、前記取得器は、さらに、前記サーバ装置から前記第1時間長の変更指示を外部指示として取得し、前記出力器は、前記サーバ装置から前記取得器が取得した前記外部指示に従って、前記ログ生成器に前記第2時間長よりも長い範囲で前記第1時間長を変更させる前記変更指示を出力してもよい。
これにより、情報処理装置は、サーバ装置から取得した指示に従って、サンプリング間隔を変更することができる。したがって、サンプリング間隔の集中的な制御が可能になる。
また、例えば、前記フルログは、複数の種別の前記通信データのログであり、前記サンプリングログは、前記複数の種別のうち1以上の種別の前記通信データのログであり、前記出力器は、前記ログ生成器に前記1以上の種別を特定させる特定情報を出力してもよい。
これにより、サンプリングログのデータ量が適切に削減される。したがって、車載システムから送信される監視対象データのデータ量が適切に削減される。また、複数の種別が1以上の種別に削減されることにより、例えば重要な種別の通信データのログがサンプリングログとして適用され得る。また、情報処理装置は、サンプリングログに適用される適切な種別を指定することができる。
また、例えば、前記情報処理装置は、さらに、前記ログ生成器を備え、前記ログ生成器は、前記車載ネットワークから前記通信データを取得し、前記通信データに従って前記フルログ及び前記サンプリングログを生成してもよい。
これにより、情報処理装置は、車載ネットワークから取得される通信データに従って、サンプリングログ及びフルログを適切に生成することができる。
また、本開示の一態様に係る情報処理方法は、車両に搭載される情報処理装置が行う情報処理方法であって、前記車両の車載ネットワークにおける通信データに異常が含まれるか否かの異常検知結果を異常検知器から取得する取得ステップと、前記通信データの2種類のログのうち単位時間あたりに生じるデータ量が他方のログよりも小さいログであるサンプリングログを前記車両に搭載された送信器から前記車両の外部に設けられたサーバ装置へ周期的に送信させるサンプリングログ送信指示を出力する出力ステップとを含み、前記出力ステップでは、さらに、前記通信データに異常が含まれることを示す前記異常検知結果を前記取得ステップで取得した場合、前記2種類のログのうち単位時間あたりに生じるデータ量が前記サンプリングログよりも大きいログであるフルログを前記送信器から前記サーバ装置へ送信させるフルログ送信指示を出力する情報処理方法であってもよい。
これにより、車両に搭載された送信器からサーバ装置へ、データ量が比較的小さいサンプリングログが周期的に送信され、データ量が比較的大きいフルログが異常時に送信される。そして、車両の外部に設けられるサーバ装置は、車載のための要件に制約されない十分な処理能力を用いて、サンプリングログ及びフルログを監視し分析し得る。したがって、この情報処理方法を行う情報処理装置は、適切な監視レベルを維持しつつ、車載システムから送信される監視対象データのデータ量を削減することができる。
さらに、これらの包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、又は、コンピュータ読み取り可能なCD−ROMなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム、及び、記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、請求の範囲を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態)
[多層防御及び遠隔監視]
図1は、本実施の形態におけるセキュリティシステムの構成を示すブロック図である。図1に示されたセキュリティシステム100は、サーバ装置300、及び、車載システム410等を備える。車載システム410は、車両400に搭載されるシステムであって、セキュリティECU440、並びに、その他のECU451及び452等を備える。なお、ECUは、電子制御ユニット(Electronic Control Unit)であり、エンジン制御ユニット(Engine Control Unit)とも呼ばれる。
車両400において、車載システム410は、4層の多層防御を行う。1層目は、車外通信デバイスにおける防御である。車外通信デバイスは、通信先を認証し、状況に応じて通信を暗号化する。車外通信デバイスは、ヘッドアップディスプレイ421、テレマティクス通信ユニット(TCU:Telematics Communication Unit)422、V2Xモジュール423、又は、OBD(On−Board Diagnostics)モジュール424等である。
例えば、ヘッドアップディスプレイ421は、BLUETOOTH(登録商標)機器又はUSB機器等と通信する。テレマティクス通信ユニット422は、外部サーバ等と通信する。V2Xモジュール423は、インフラ等と通信する。OBDモジュール424は、車外の診断デバイス等と通信する。
また、ヘッドアップディスプレイ421のように演算資源に余裕を有する車外通信デバイスは、認証及び暗号化に加えて、車外から受信された通信データを確認し、事前に認められたデータのみを通すフィルタリングを行うことで、不正データの侵入を防ぐ。
2層目は、ゲートウェイ装置430における防御である。ゲートウェイ装置430は、ネットワークゲートウェイとも呼ばれ、車外通信デバイスが繋がるネットワークと、車両400に搭載された制御系ネットワークとを繋ぐ。制御系ネットワークは、車載ネットワークとも呼ばれ、具体的には、CANである。ゲートウェイ装置430は、車外から受信された通信データを確認し、事前に認められたデータのみを制御系ネットワークへ転送するフィルタリングを行うことで、不正データの侵入を防ぐ。
3層目は、制御系ネットワークに配置されたセキュリティECU440における防御である。セキュリティECU440は、制御系ネットワークに流れる通信データを監視し、通信データのフォーマット、周期、及び、値の変化量等に基づいて、不正データを特定し無効化する。例えば、セキュリティECU440は、通信データをホワイトリスト又はルールにマッチングすることによって、不正データを特定してもよい。また、セキュリティECU440は、CANのエラーフレームを用いて不正データを無効化してもよい。
4層目は、ECU451及び452等における防御である。ECU451及び452等は、耐タンパ性を有するように、実装されている。例えば、ECU451及び452等は、セキュアブートによって、ソフトウェアプログラムが改ざんされていないことをチェックしてもよい。また、ECU451及び452等は、セキュアコーディングによって生成されたソフトウェアプログラム、又は、ソースコードが難読化されたソフトウェアプログラムを用いることによって、ソフトウェアプログラムの改ざんを防いでもよい。
さらに、セキュリティシステム100は、車載システム410における多層防御に加えて、サーバ装置300において、車両400の遠隔監視も行う。
例えば、不正データの侵入方法の高度化によって、不正データが多層防御を通り抜けて侵入する可能性がある。そこで、サーバ装置300は、多層防御を通り抜けて侵入した不正データを検知してもよい。そして、新たな防御策が適用されてもよいし、ドライバーへ警告が通知されてもよい。また、不正データが多層防御で対処された場合でも、不正アクセスを異常として検知し、不正アクセスの傾向を把握することは、新たな不正データの侵入を防ぐため有用である。
そこで、例えば、サーバ装置300は、車載ネットワークにおける通信データのログである通信ログを収集し分析する。さらに、車両400の外部のサーバ装置300は、1つの車両400だけでなく、複数の車両から多くの通信ログを収集し分析し得る。そして、様々な地域における様々な車両から得られる通信ログによって、様々な車両の異常などについて、一元的な把握が可能である。したがって、不正アクセスが頻繁に行われる地域、時間帯及び車種等が特定され得る。
また、車両400の外部のサーバ装置300は、車載のための要件に制約されず、豊富な演算資源を備え得る。したがって、車両400の外部のサーバ装置300は、例えば機械学習に基づく高度な異常検知等の複雑な処理を行い得る。したがって、サーバ装置300は、車載システム410が検知できない不正データ、不正アクセス又はそれらの予兆等を検知し得る。
車両400の外部のサーバ装置300は、情報を収集し分析するためのSIEM(Security Information Event Management)に対応する処理を行い得る。この処理は、AutoSIEM(Automotive SIEM)とも表現され得る。
また、例えば、セキュリティシステム100を運用する組織としてSOC(Security Operation Centor)及びASIRT(Automotive Security Incident Response Team)が存在してもよい。SOCは、サーバ装置300における検知結果を監視する組織であり、ASIRTは、異常が検知された場合に、異常の対処を行う組織である。
そして、例えば、ASIRTは、多層防御で検知されなかった異常がサーバ装置300において検知された場合、新しい検知ルールを作成する。そして、サーバ装置300によって、作成された新しい検知ルールがヘッドアップディスプレイ421及びセキュリティECU440等に配布されてもよい。
サーバ装置300に接続された端末装置200は、サーバ装置300と通信を行う装置であり、SOC又はASIRT等において利用される。例えば、端末装置200は、サーバ装置300から異常通知を受信する。
[データ量の削減]
上記の通り、サーバ装置300によって、通信ログが収集され分析される。そのため、車両400における車載システム410は、通信ログをサーバ装置300へアップロードする。サーバ装置300は、アップロードされた通信ログを蓄積し分析する。また、例えば、SOC及びASIRT等が、詳細分析及び証拠保全のため、サーバ装置300から通信ログを端末装置200へダウンロードする。すなわち、端末装置200は、SOC及びASIRT等の指示に従って、サーバ装置300から通信ログをダウンロードする。
しかしながら、サーバ装置300へアップロードされる通信ログのデータ量が大きいほど、通信、蓄積及び分析などに、より大きな資源が用いられる。
例えば、CANのビットレートは、おおよそ500Kbps〜1Mbps程度である。仮にCANのビットレートが500Kbpsであった場合、CANの通信ログのデータ量は、付加情報などのオーバヘッドを除いても、1時間で225MBに到達すると想定される。そして、仮に1万台の車両がサーバ装置300へ通信ログをアップロードした場合、サーバ装置300へアップロードされる通信ログのデータ量は、1時間で2250GBに到達すると想定される。
このような大きなデータ量に対応する大きな資源を準備することは容易ではない。そのため、本実施の形態におけるセキュリティシステム100は、適切な監視レベルを維持しつつ、車載システム410からサーバ装置300へ送信される監視対象データのデータ量を削減するための構成を備える。
また、車載システム410における各車載デバイスの動作ログが、監視対象データとして車載システム410からサーバ装置300へ送信されてもよい。本実施の形態では、特に、車載ネットワークの通信ログが、監視対象データとして車載システム410からサーバ装置300へ送信される。
車両400に対する不正アクセスでは、不正データが車載ネットワークを流れる可能性が高い。したがって、通信ログは、不正アクセスから車両400を保護するための監視に有用である。一方、様々な車両に広く採用されている車載ネットワークであるCANの通信ログのデータ量は、上記の通り大きいことが想定される。すなわち、通信ログは監視に有用であるが、そのデータ量は大きい。
そこで、本実施の形態におけるセキュリティシステム100は、特に、車載システム410からサーバ装置300へ送信される通信ログのデータ量を削減する。なお、セキュリティシステム100は、さらに、同様の方法を用いて、車載システム410からサーバ装置300へ送信される動作ログのデータ量を削減してもよい。
セキュリティシステム100は、車載システム410からサーバ装置300へ送信される監視対象データのデータ量を削減するための3つの削減方法を用いる。ここで、データ量が削減される監視対象データは、具体的には、車載システム410からサーバ装置300へ送信される通信ログである。
1つ目の削減方法は、種別の削減である。具体的には、CANを流れる全ての種別のデータフレームのうち重要度の高い種別のデータフレームのみが、車載システム410からサーバ装置300へ送信される監視対象データに含められる。例えば、CANを流れる様々な種別の通信データのうち、アクセル又はブレーキ等の通信データは、車の挙動に直接関係するが、ウィンドウ又はワイパー等の通信データは、車の挙動に直接関係しない。
そこで、CANを流れる様々な種別の通信データのうち車の挙動に直接関係する通信データのみが、重要度の高い通信データとして、車載システム410からサーバ装置300へ送信される監視対象データに含められる。例えば、CANを流れる全100種類のデータのうち車の挙動に直接関係する20種類のデータのみが監視対象データに含められる場合、全100種類のデータのうち約80%のデータが削減されることが見込まれる。なお、CANにおいて、種別は、データフレームに含まれるIDに対応する。
2つ目の削減方法は、期間の間引きである。具体的には、複数のサンプリング間隔にそれぞれ含まれる複数のサンプリング期間における通信データが、車載システム410からサーバ装置300へ送信される監視対象データに含められる。
図2は、図1に示されたセキュリティシステム100で用いられるサンプリング期間を示す模式図である。図2において、サンプリング間隔T1よりもサンプリング期間T2は短い。そして、サンプリング間隔T1における通信データのうち、サンプリング期間T2における通信データが、車載システム410からサーバ装置300へ送信される監視対象データに含められる。これにより、データ量の(1−T2/T1)×100%が削減される。
サンプリング期間T2は、サーバ装置300において異常を検知するための最小データフレーム数等に従って規定されてもよい。例えば、少なくともK個のデータフレームがサーバ装置300における異常検知アルゴリズムに用いられる場合、少なくともK個のデータフレームがサンプリング期間T2に存在するように、サンプリング期間T2が規定される。
具体的には、異常検知アルゴリズムにおいて単一のデータフレーム毎に異常の有無が判定される場合、上記のKは1である。したがって、この場合、CANを周期的に流れる同種のデータフレームの1周期分の期間が、サンプリング期間T2として規定され得る。
また、サンプリング間隔T1は、不正データの侵入が連続して行われる期間よりも短く規定されてもよい。例えば、CANにおいて、単発的に流れる各データフレームが車両400に及ぼす影響は小さく、連続的に流れる複数のデータフレームが車両400に及ぼす影響は大きい。すなわち、不正データの単発的な侵入が車両400に及ぼす影響は小さく、不正データの連続的な侵入が車両400に及ぼす影響は大きい。
したがって、例えば、不正データの侵入が連続して行われる期間が5秒間と想定される場合、サンプリング間隔T1は、5秒間よりも短く規定されてもよい。これにより、不正データの侵入によってCANを流れる異常データが監視対象データに含められる。また、不正データの侵入が連続して行われる期間が長いと想定される場合、サンプリング間隔T1が長く規定され得る。したがって、この場合、データ量の削減効果が大きい。
不正データの侵入が連続して行われる期間が想定され難い場合、サンプリング間隔T1は動的に変更されてもよい。サンプリング間隔T1は、通信ログの取得タイミングでランダムに変更されてもよいし、車種、地域又は種別毎に、変更されてもよい。これにより、不正データの侵入によってCANを流れる異常データが、車載システム410からサーバ装置300へ送信される監視対象データに含められる可能性が高くなる。
サンプリング間隔T1及びサンプリング期間T2が適切に規定されることにより、CANを流れる異常データが、サーバ装置300へ送信される監視対象データに含められ、かつ、サーバ装置300へ送信される監視対象データが削減される。
3つ目の削減方法は、データ圧縮である。具体的には、車載システム410は、zip、gzip又は7−Zip等のデータ圧縮方法に従って、監視対象データを圧縮することにより、サーバ装置300へ送信される監視対象データのデータ量を削減してもよい。
データ圧縮に関して、様々なデータ圧縮方法が、パーソナルコンピュータ向けの様々なソフトウェアプログラムに実装されており、広く利用されている。例えば、バイナリファイルに関して、データ圧縮によって約30〜60%のデータ量の削減が可能である。バイナリファイルに類する監視対象データに関しても、データ圧縮によってデータ量の削減が見込まれる。実際に監視対象データを圧縮した結果、69.4%のデータ量が削減された。
図3は、図1に示されたセキュリティシステム100で用いられるサンプリングログとフルログとの比較図である。サンプリングログ及びフルログは、それぞれ、CANの通信ログであって、監視対象データである。サンプリングログには、上述した3つの削減方法が適用される。すなわち、サンプリングログには、種別の削減、期間の間引き、及び、データ圧縮が適用される。フルログは、上述した3つの削減方法のうち、データ圧縮のみが適用される。
サンプリングログは、CANの全ての通信ログのうち一部の通信ログのみを含む。そのため、サンプリングログのデータ量は、比較的小さい。また、サンプリングログは、通信データに含まれる異常を検知するための最小限のデータを含み得る。
フルログは、基本的に、CANの全ての通信ログを含む。そのため、フルログのデータ量は、比較的大きい。しかしながら、フルログは、CANの通信データに関する詳細な情報を含み得る。すなわち、フルログは、通信データに含まれる異常を詳細に示し得る。
セキュリティシステム100は、サンプリングログ及びフルログの2種類の監視対象データを適切に使い分ける。すなわち、セキュリティシステム100は、サンプリングログ及びフルログを選択的に用いる。
具体的には、セキュリティシステム100は、通常時の監視のためサンプリングログを生成する。そして、セキュリティシステム100は、周期的にサンプリングログを車載システム410からサーバ装置300へ送信する。また、セキュリティシステム100は、異常検知時の詳細分析及び証拠保全のためフルログを生成する。そして、セキュリティシステム100は、異常検知時にフルログを車載システム410からサーバ装置300へ送信する。
異常検知時にフルログが送信されることによって、適切な詳細分析及び証拠保全が可能である。一方で、異常発生頻度は少ないと想定されるため、車載システム410からサーバ装置300へ送信される監視対象データのデータ量は、サンプリングログのデータ量に近似し得る。したがって、車載システム410からサーバ装置300へ送信される監視対象データのデータ量は小さい。これにより、監視レベルの低下が抑制され、車載システム410からサーバ装置300へ送信される監視対象データのデータ量が削減される。
図4は、図1に示されたセキュリティシステム100で用いられるログフォーマットを示すデータ構成図である。サンプリングログ及びフルログは、図4に示されたログフォーマットで車載システム410からサーバ装置300へ送信される。
具体的には、車両ID、タイムスタンプ、長さ、バージョン及び予約が、ログフォーマットのヘッダ部分に含まれる。さらに、フラグ、予約、ID、DLC(データ長コード)、タイムスタンプ及びデータの組でそれぞれが構成されるN個の組が、ログフォーマットのペイロード部分に含まれる。
ヘッダ部分における車両IDは、複数の車両から車両400を識別するための識別子を示す。ヘッダ部分におけるタイムスタンプは、通信ログがサンプリングログ又はフルログとして送信される時刻を示す。ヘッダ部分における長さは、ペイロード部分の長さを示す。ヘッダ部分におけるバージョンは、ログフォーマットのバージョンを示す。ヘッダ部分における予約は、ヘッダ部分における未使用の領域である。
ペイロード部分におけるフラグは、そのフラグを含む組におけるデータがサンプリング期間において最初のフレームのデータであるか否かを示す。すなわち、このフラグは、前のデータが欠けているか否かを示す。このフラグは、そのフラグを含む組におけるデータが同一種別及び同一サンプリング期間において最初のフレームのデータであるか否かを示していてもよい。
ペイロード部分における予約は、ペイロード部分における未使用の領域である。ペイロード部分におけるIDは、CANのフレームにおけるIDであり、通信データの種別を示す。ペイロード部分におけるDLCは、CANのフレームにおけるDLCであり、ペイロード部分におけるデータの長さを示す。ペイロード部分におけるタイムスタンプは、CANの車載ネットワークからCANのフレームが取得された時刻であるサンプリング時刻を示す。ペイロード部分におけるデータは、CANのフレームにおけるデータである。
サンプリングログ及びフルログは、さらに、サンプリングログ又はフルログを識別するための識別フラグを含んでいてもよい。例えば、このような識別フラグは、ログフォーマットのヘッダ部分に含まれる。
発明者は、上記のようなサンプリングログ及びフルログに基づく監視対象データの削減量を評価した。具体的には、1分間におけるCANの実際の通信データについて、通信ログ、サンプリングログ及びフルログのそれぞれのデータ量を計測することにより、削減量の評価が行われた。評価における通信ログは、データ量が削減されていないログであって、圧縮前のフルログと同じである。通信ログのデータ量は、1158KBであった。
まず、種別の削減が適用された。具体的には、CANにおける約100種の通信データのうち、車の制御に深く関係するステアリング、アクセル、ブレーキ及び車速度の4種の通信データがサンプリングログの生成に用いられた。そして、種別の削減が適用されたサンプリングログのデータ量は、200KBであった。つまり、元の通信ログのデータ量と比較して、82.7%のデータ量が削減された。
次に、種別の削減に加えて、期間の間引きが適用された。その際、サンプリング期間の時間長を72msに固定し、サンプリング間隔の時間長を変えながら、通信データのサンプリングログのデータ量が計測された。
図5は、サンプリング間隔とサンプリングログのデータ量との関係を示すグラフである。図5の通り、サンプリング間隔とサンプリングログのデータ量とは、サンプリング間隔が長いほど、サンプリングログのデータ量が小さいという関係を有する。本評価において、最終的に、1秒のサンプリング間隔が採用された。その結果、期間の間引きが適用されたサンプリングログのデータ量は、14.4KBであった。すなわち、200KBから14.4KBへ、92.8%のデータ量が削減された。
さらに、データ圧縮が適用された。具体的には、zip、cab、gzip、bzip2、lzh及び7−Zipの7種の圧縮方法のそれぞれを用いて、サンプリングログを圧縮し、圧縮後のデータ量を比較した。
図6は、圧縮前後のデータ量を示す比較図である。ここで、第1種〜第4種は、ステアリング、アクセル、ブレーキ及び車速度の4種に対応する。図6のように、最も圧縮効果の高い圧縮方法は7−Zipであり、7−Zipによって圧縮されたサンプリングログのデータ量は、4.4KBであった。すなわち、14.4KBから4.4KBへ、69.4%のデータ量が削減された。
なお、第2種及び第4種のデータにおいて、第1種及び第3種のデータよりも、0の値が連続していた。そのため、第2種及び第4種のデータにおいて、高い圧縮効果が得られたと推定される。
種別の削減、期間の間引き、及び、圧縮によって、最終的に4.4KBのサンプリングログが生成された。すなわち、1158KBから4.4KBへ、99.6%のデータ量が削減された。
また、7−Zipを用いて圧縮された通信ログのデータ量、より具体的には、7−Zipを用いて圧縮されたフルログのデータ量は、462KBであった。すなわち、フルログに関して、1158KBから462KBへ、60.1%のデータ量が削減された。
上記の通り、サンプリングログ及びフルログの両方においてデータ量が削減され、サンプリングログではフルログよりもデータ量が削減されるという評価結果が得られた。通常時においてサンプリングログが車載システム410からサーバ装置300へ送信されるため、車載システム410からサーバ装置300へ送信される監視対象データのデータ量は、適切に削減されることが期待される。
[基本構成]
次に、適切な監視レベルを維持しつつ、車載システム410から送信される監視対象データのデータ量を削減するための基本的な構成を説明する。
図7は、本実施の形態におけるセキュリティECU440の基本的な構成を示すブロック図である。セキュリティECU440は、車両400に搭載される情報処理装置の例である。セキュリティECU440は、取得器441及び出力器442を備える。
取得器441は、情報を取得する。具体的には、取得器441は、車両400の車載ネットワークにおける通信データに異常が含まれるか否かの異常検知結果を異常検知器510から取得する。
出力器442は、情報を出力する。具体的には、出力器442は、車両400に搭載された送信器530から車両400の外部のサーバ装置300へ周期的にサンプリングログを送信させるサンプリングログ送信指示を出力する。また、出力器442は、通信データに異常が含まれることを示す異常検知結果が取得された場合、送信器530からサーバ装置300へフルログを送信させるフルログ送信指示を出力する。
ここで、サンプリングログは、通信データの2種類のログのうち単位時間あたりに生じるデータ量が他方のログよりも小さいログである。また、フルログは、2種類のログのうち単位時間あたりに生じるデータ量がサンプリングログよりも大きいログである。
例えば、フルログは、複数の種別の通信データのログであってもよい。そして、サンプリングログは、フルログに関する複数の種別よりも少ない1以上の種別の通信データのログであってもよい。
また、サンプリングログは、複数のサンプリング間隔のうち、複数のサンプリング間隔にそれぞれ含まれる複数のサンプリング期間における通信データのログであってもよい。ここで、複数のサンプリング間隔のそれぞれは、第1時間長の期間である。また、複数のサンプリング期間のそれぞれは、第1時間長よりも短い第2時間長の期間である。
また、サンプリングログは、複数のサンプリング期間における通信データを構成する各フレームについて、(i)当該フレームのサンプリング時刻、(ii)当該フレームが最初のフレームであるか否か、及び、(iii)当該フレームのデータを示していてもよい。ここで、当該フレームが最初のフレームであるか否かは、例えば、当該フレームとサンプリング期間が同じ1以上のフレームにおいて当該フレームが最初のフレームであるか否かである。
また、サンプリングログは、複数のサンプリング期間における1以上の種別の通信データを構成する複数のフレームのそれぞれについて、(i)当該フレームのサンプリング時刻、(ii)当該フレームが最初のフレームであるか否か、及び、(iii)当該フレームのデータを示していてもよい。ここで、当該フレームが最初のフレームであるか否かは、例えば、当該フレームと種別及びサンプリング期間が同じ1以上のフレームにおいて当該フレームが最初のフレームであるか否かである。
また、例えば、ログ生成器520は、車載ネットワークから通信データを取得し、通信データに従ってフルログ及びサンプリングログを生成する。ログ生成器520は、車載ネットワークから通信データを直接的に取得することに限られず、車載ネットワークから他の装置を介して通信データを間接的に取得してもよい。例えば、ログ生成器520は、車載ネットワークから、通信データが蓄えられるメモリを介して、通信データを取得してもよい。また、ログ生成器520は、セキュリティECU440に含まれていてもよい。
そして、出力器442は、ログ生成器520で生成されたサンプリングログを送信器530からサーバ装置300へ周期的に送信させるサンプリングログ送信指示を出力してもよい。また、通信データに異常が含まれることを示す異常検知結果が取得された場合、出力器442は、ログ生成器520で生成されたフルログを送信器530からサーバ装置300へ送信させるフルログ送信指示を出力してもよい。
また、出力器442は、サンプリング期間に関する第2時間長よりも長い範囲で、サンプリング間隔に関する第1時間長をログ生成器520に変更させる変更指示を出力してもよい。
例えば、通信データに異常が含まれることを示す異常検知結果が取得された場合、出力器442は、ログ生成器520に第2時間長よりも長い範囲で第1時間長を短くさせる変更指示を出力してもよい。そして、通信データに異常が含まれることを示す異常検知結果が取得されなかった場合、出力器442は、ログ生成器520に第1時間長を長くさせる変更指示を出力してもよい。
また、例えば、第1時間長は、通信データに関する複数の種別のそれぞれについて定められてもよい。そして、1つの種別について通信データに異常が含まれることを示す異常検知結果が取得された場合、出力器442は、ログ生成器520に第2時間長よりも長い範囲でその種別について第1時間長を短くさせる変更指示を出力してもよい。
あるいは、1つの種別について通信データに異常が含まれることを示す異常検知結果が取得された場合、出力器442は、ログ生成器520に第2時間長よりも長い範囲で複数の種別のそれぞれについて第1時間長を短くさせる変更指示を出力してもよい。すなわち、この場合、出力器442は、ログ生成器520に第2時間長よりも長い範囲で全ての種別について第1時間長を短くさせる変更指示を出力してもよい。
そして、通信データに異常が含まれることを示す異常検知結果が取得されなかった場合、出力器442は、ログ生成器520に短くさせられた第1時間長を長くさせる変更指示を出力してもよい。
また、例えば、出力器442は、ログ生成器520に第2時間長よりも長い範囲で第1時間長をランダムに変更させる変更指示を出力してもよい。また、出力器442は、ログ生成器520に第2時間長よりも長い範囲で第1時間長を線形的に変更させる変更指示を出力してもよい。
また、例えば、取得器441は、サーバ装置300から第1時間長の変更指示を外部指示として取得してもよい。そして、出力器442は、サーバ装置300から取得された外部指示に従って、ログ生成器520に第2時間長よりも長い範囲で第1時間長を変更させる変更指示を出力してもよい。
また、例えば、出力器442は、サンプリングログに関する1以上の種別をログ生成器520に特定させる特定情報を出力してもよい。
また、異常検知器510は、サーバ装置300に含まれていてもよい。そして、取得器441は、サーバ装置300に含まれる異常検知器510から異常検知結果を取得してもよい。
また、異常検知器510は、セキュリティECU440に含まれていてもよい。そして、異常検知器510は、車載ネットワークから通信データを取得し、通信データに異常が含まれるか否かを判定してもよい。異常検知器510は、車載ネットワークから通信データを直接的に取得することに限られず、車載ネットワークから他の装置を介して通信データを間接的に取得してもよい。例えば、異常検知器510は、ログ生成器520を介して、車載ネットワークの通信データから生成されるフルログ等を通信データとして取得してもよい。
また、例えば、送信器530は、出力器442から出力されたサンプリングログ送信指示に従って、サンプリングログをサーバ装置300へ送信し、出力器442から出力されたフルログ送信指示に従って、フルログをサーバ装置300へ送信する。送信器530は、セキュリティECU440に含まれていてもよい。
また、送信器530は、出力器442から出力されたサンプリングログ送信指示に従って、サンプリングログを可逆的に圧縮し、圧縮されたサンプリングログをサーバ装置300へ送信してもよい。また、送信器530は、出力器442から出力されたフルログ送信指示に従って、フルログを可逆的に圧縮し、圧縮されたフルログをサーバ装置300へ送信してもよい。
また、出力器442は、送信器530からサーバ装置300へ周期的にサンプリングログを送信させるサンプリングログ送信指示を周期的に出力することにより、送信器530からサーバ装置300へ周期的にサンプリングログを送信させてもよい。あるいは、出力器442は、送信器530からサーバ装置300へ周期的にサンプリングログを送信させるサンプリングログ送信指示を単一の指示として出力することにより、送信器530からサーバ装置300へ周期的にサンプリングログを送信させてもよい。
また、例えば、通信データに異常が含まれると判定された場合、通信データに異常が含まれることを示す異常検知結果を異常検知器510が送信し、取得器441は、送信され異常検知結果を取得してもよい。そして、通信データに異常が含まれないと判定された場合、異常検知器510が異常検知結果を送信せず、取得器441は、異常検知結果を取得しなくてもよい。あるいは、この場合、通信データに異常が含まれないことを示す異常検知結果を異常検知器510が送信し、取得器441が、送信された異常検知結果を取得してもよい。
なお、取得器441及び出力器442は、専用又は汎用の電気回路であってもよい。そして、セキュリティECU440、異常検知器510、ログ生成器520、送信器530及びサーバ装置300は、電気回路で構成されていてもよい。具体的には、これらはそれぞれコンピュータであってもよい。
また、上記の通り、異常検知器510、ログ生成器520及び送信器530は、それぞれ、セキュリティECU440に含まれていてもよい。取得器441は、セキュリティECU440の内部の装置から情報を取得してもよいし、出力器442は、セキュリティECU440の内部の装置へ情報を出力してもよい。
また、異常検知器510、ログ生成器520及び送信器530は、それぞれ、車載ネットワークに接続されるECUでもよい。また、送信器530は、図1に示されたテレマティクス通信ユニット422、V2Xモジュール423又はゲートウェイ装置430等に対応する装置であってもよい。取得器441は、セキュリティECU440の外部の装置から車載ネットワークを介して情報を取得してもよいし、出力器442は、車載ネットワークを介してセキュリティECU440の外部の装置へ情報を出力してもよい。
さらに、取得器441は、セキュリティECU440の外部の装置から、車載ネットワークとは異なるネットワークを介して、情報を取得してもよい。また、出力器442は、車載ネットワークとは異なるネットワークを介して、セキュリティECU440の外部の装置へ、情報を出力してもよい。
図8は、本実施の形態におけるサーバ装置300の基本的な構成を示すブロック図である。サーバ装置300は、車両400の外部に設けられる情報処理装置の例である。サーバ装置300は、取得器301、判定器302及び出力器303を備える。
取得器301は、情報を取得する。具体的には、取得器301は、サンプリングログを車両400の車載システム410から取得する。
判定器302は、判定処理を行う。具体的には、判定器302は、サンプリングログを用いて通信データに異常が含まれるか否かを判定する。
出力器303は、情報を出力する。具体的には、出力器303は、通信データに異常が含まれると判定された場合、フルログを車載システム410からサーバ装置300へ送信させる送信指示として、通信データに異常が含まれることを示す異常検知結果を車載システム410へ出力する。
上述した通り、サンプリングログは、車両400の車載ネットワークにおける通信データの2種類のログのうち単位時間あたりに生じるデータ量が他方のログよりも小さいログである。フルログは、2種類のログのうち単位時間あたりに生じるデータ量がサンプリングログよりも大きいログである。
また、例えば、フルログは、複数の種別の通信データのログであってもよい。そして、サンプリングログは、フルログに関する複数の種別よりも少ない1以上の種別の通信データのログであってもよい。
また、サンプリングログは、複数のサンプリング間隔のうち、複数のサンプリング間隔にそれぞれ含まれる複数のサンプリング期間における通信データのログであってもよい。ここで、複数のサンプリング間隔のそれぞれは、第1時間長の期間である。また、複数のサンプリング期間のそれぞれは、第1時間長よりも短い第2時間長の期間である。
出力器303は、上記のようなサンプリングログを生成する車載システム410に第2時間長よりも長い範囲で第1時間長を変更させる変更指示を車載システム410へ出力してもよい。例えば、出力器303は、通信データに異常が含まれると判定された場合、車載システム410に第2時間長よりも長い範囲で第1時間長を短くさせる変更指示を出力してもよい。また、出力器303は、通信データに異常が含まれないと判定された場合、車載システム410に第1時間長を長くさせる変更指示を出力してもよい。
また、例えば、第1時間長は、通信データに関する複数の種別のそれぞれについて定められてもよい。そして、出力器303は、1つの種別について通信データに異常が含まれると判定された場合、車載システム410に第2時間長よりも長い範囲でその種別について第1時間長を短くさせる変更指示を出力してもよい。
あるいは、出力器303は、1つの種別について通信データに異常が含まれると判定された場合、車載システム410に第2時間長よりも長い範囲で複数の種別のそれぞれについて第1時間長を短くさせる変更指示を出力してもよい。すなわち、出力器303は、この場合、車載システム410に第2時間長よりも長い範囲で全ての種別について第1時間長を短くさせる変更指示を出力してもよい。
また、出力器303は、通信データに異常が含まれないと判定された場合、車載システム410に短くさせられた第1時間長を長くさせる変更指示を出力してもよい。
さらに、出力器303は、上記のような変更指示を車両400と車種が同じ複数の車両の複数の車載システムへ出力してもよい。また、出力器303は、変更指示を車両400と地域が同じ複数の車両の複数の車載システムへ出力してもよい。
また、サンプリングログは、複数のサンプリング期間における通信データを構成する各フレームについて、(i)当該フレームのサンプリング時刻、(ii)当該フレームが最初のフレームであるか否か、及び、(iii)当該フレームのデータを示していてもよい。ここで、当該フレームが最初のフレームであるか否かは、例えば、当該フレームとサンプリング期間が同じ1以上のフレームにおいて当該フレームが最初のフレームであるか否かである。
そして、判定器302は、当該フレームとサンプリング期間が同じ1以上のフレームにおいて当該フレームが最初のフレームでない場合、サンプリング時刻の差及びデータの差の少なくとも一方を用いて、通信データに異常が含まれるか否かを判定してもよい。
ここで、サンプリング時刻の差は、当該フレームとサンプリング期間が同じ1以上のフレームのうち当該フレームの前のフレームのサンプリング時刻と、当該フレームのサンプリング時刻との差である。データの差は、このような前のフレームのデータと、当該フレームのデータとの差である。ここで、前のフレームは、例えば、直前のフレームである。
また、サンプリングログは、複数のサンプリング期間における1以上の種別の通信データを構成する複数のフレームのそれぞれについて、(i)当該フレームのサンプリング時刻、(ii)当該フレームが最初のフレームであるか否か、及び、(iii)当該フレームのデータを示していてもよい。ここで、当該フレームが最初のフレームであるか否かは、例えば、当該フレームと種別及びサンプリング期間が同じ1以上のフレームにおいて当該フレームが最初のフレームであるか否かである。
そして、判定器302は、当該フレームと種別及びサンプリング期間が同じ1以上のフレームにおいて当該フレームが最初のフレームでない場合、サンプリング時刻の差及びデータの差の少なくとも一方を用いて、通信データに異常が含まれるか否かを判定してもよい。
ここで、サンプリング時刻の差は、当該フレームと種別及びサンプリング期間が同じ1以上のフレームのうち当該フレームの前のフレームのサンプリング時刻と、当該フレームのサンプリング時刻との差である。データの差は、このような前のフレームのデータと、当該フレームのデータとの差である。
また、取得器301は、送信指示の出力後、フルログを車載システム410から取得してもよい。そして、判定器302は、さらに、フルログを用いて通信データに異常が含まれるか否かを判定してもよい。
また、出力器303は、サンプリングログを用いて通信データに異常が含まれると判定された場合、異常検知結果を車載システム410へ出力してもよい。そして、出力器303は、フルログを用いて通信データに異常が含まれると判定された場合、異常検知結果を車載システム410へ出力しなくてもよい。すなわち、出力器303は、フルログが取得されていない場合において、通信データに異常が含まれると判定された場合、異常検知結果を車載システム410へ出力してもよい。
また、出力器303は、通信データに異常が含まれると判定された場合、異常検知結果を端末装置200へ出力してもよい。
また、取得器301は、車載システム410において圧縮されたサンプリングログを車載システム410から取得し、圧縮されたサンプリングログを解凍してもよい。同様に、取得器301は、車載システム410において圧縮されたフルログを車載システム410から取得し、圧縮されたフルログを解凍してもよい。
なお、取得器301、判定器302及び出力器303は、専用又は汎用の電気回路であってもよい。そして、端末装置200、サーバ装置300及び車載システム410は、電気回路で構成されていてもよい。具体的には、これらはそれぞれコンピュータであってもよい。また、取得器301は、サーバ装置300の外部の装置から外部ネットワークを介して情報を取得してもよいし、出力器303は、外部ネットワークを介してサーバ装置300の外部の装置へ情報を出力してもよい。
また、例えば、単位時間あたりに生じるサンプリングログの平均データ量は、単位時間あたりに生じるフルログの平均データ量よりも小さい。単位時間は、1秒間であってもよいし、1分間であってもよいし、1時間であってもよいし、サンプリングログに関するサンプリング間隔であってもよい。
[具体例]
図9は、本実施の形態の具体例におけるセキュリティシステム100の構成を示すブロック図である。
本具体例において、セキュリティシステム100は、端末装置200、サーバ装置300、ゲートウェイ装置430、セキュリティECU440、及び、複数のECU450を備える。図9に示されたセキュリティシステム100、端末装置200、サーバ装置300、ゲートウェイ装置430、及び、セキュリティECU440は、それぞれ、図1に示された構成要素に対応する。また、図9に示された複数のECU450は、図1に示された複数のECU451及び452に対応する。
ゲートウェイ装置430、セキュリティECU440、及び、複数のECU450は、車載ネットワークに接続される。サーバ装置300は、端末装置200及び外部ネットワークに接続される。サーバ装置300は、外部ネットワークを介して端末装置200に接続されてもよい。外部ネットワークと車載ネットワークとは、ゲートウェイ装置430を介して互いに接続される。ゲートウェイ装置430は、車載ネットワークと外部ネットワークとの間において、通信の中継を行う。
例えば、ゲートウェイ装置430は、外部ネットワークに無線で接続される。ゲートウェイ装置430は、図1に示されたテレマティクス通信ユニット422又はV2Xモジュール423等を介して外部ネットワークに接続されてもよい。また、外部ネットワークは、無線通信のネットワークであってもよいし、有線通信のネットワークであってもよい。
セキュリティECU440、サーバ装置300及び端末装置200は、不正アクセスから、車両400及び車載ネットワーク等を保護する役割を有する。
セキュリティECU440は、車載ネットワークにおける通信データを直接的に監視する。サーバ装置300は、車載ネットワークにおける通信データを間接的に監視することにより、遠隔監視を行う。端末装置200は、遠隔監視の結果等をサーバ装置300から取得する。端末装置200は、SOC又はASIRT等の監視組織において用いられる。
図10は、図9に示されたセキュリティシステム100の変形構成を示すブロック図である。この変形構成では、図9のゲートウェイ装置430及びセキュリティECU440が統合されている。そして、セキュリティシステム100は、ゲートウェイ装置430及びセキュリティECU440が統合されたセキュリティゲートウェイ装置460を備える。
なお、セキュリティゲートウェイ装置460は、ゲートウェイ装置430を含むセキュリティECU440であってもよいし、セキュリティECU440を含むゲートウェイ装置430であってもよい。
図11は、図9に示されたセキュリティECU440の構成を示すブロック図である。セキュリティECU440は、サンプリングログ生成器443、フルログ生成器444、異常検知器445、異常データ無効化器446、蓄積器447及び通信器448を備える。これらの構成要素は、図7に示された取得器441、出力器442、異常検知器510、ログ生成器520及び送信器530等の役割を果たす。
サンプリングログ生成器443は、通信器448を介して車載ネットワークにおける通信データを取得し、取得された通信データのサンプリングログを生成し、生成されたサンプリングログを蓄積器447に格納する。
フルログ生成器444は、通信器448を介して車載ネットワークにおける通信データを取得し、取得された通信データのフルログを生成し、生成されたフルログを蓄積器447に格納する。
異常検知器445は、通信器448を介して車載ネットワークにおける通信データを取得し、取得された通信データに異常が含まれるか否かを判定する。異常検知器445は、蓄積器447に格納されたフルログに異常が含まれるか否かを判定することにより、通信データに異常が含まれるか否かを判定してもよい。あるいは、異常検知器445は、蓄積器447に格納されたサンプリングログに異常が含まれるか否かを判定することにより、通信データに異常が含まれるか否かを簡易的に判定してもよい。
異常データ無効化器446は、通信データに異常が含まれると判定された場合、異常な通信データを無効化する。具体的には、異常データ無効化器446は、通信器448を介して、CANのエラーフレームを車載ネットワークに出力することにより、異常な通信データを無効化してもよい。
蓄積器447は、サンプリングログ生成器443で生成されたサンプリングログ、及び、フルログ生成器444で生成されたフルログを蓄積する。例えば、蓄積器447は、メモリで構成される。
通信器448は、車載ネットワークから情報を取得し、車載ネットワークへ情報を出力することにより、複数のECU450及びゲートウェイ装置430等と通信する。さらに、通信器448は、ゲートウェイ装置430を介して、サーバ装置300等と通信してもよい。
なお、図7に示された取得器441、出力器442及び送信器530は、通信器448に含まれていてもよい。図7に示された異常検知器510は、異常検知器445に含まれていてもよい。図7に示されたログ生成器520は、サンプリングログ生成器443、フルログ生成器444及び蓄積器447で構成されていてもよい。
例えば、通信器448において、出力器442が、サンプリングログを周期的に送信するための送信指示を送信器530へ出力してもよい。そして、通信器448に含まれる取得器441が、通信データに異常が含まれるか否かの異常検知結果を異常検知器445から取得してもよい。そして、通信器448において、通信データに異常が含まれることを取得する異常検知結果が取得された場合、出力器442が、フルログを送信するための送信指示を送信器530へ出力してもよい。
また、例えば、通信器448に含まれる出力器442が、ログ生成器520を構成するサンプリングログ生成器443へサンプリング間隔又は種別に関する指示を出力してもよい。
図7に示された構成要素と、図11に示された構成要素との間における上記の関係は一例であって、これらの関係は上記の例に限られない。例えば、図7に示された取得器441及び出力器442は、異常検知器445に含まれていてもよい。そして、異常検知器445において、取得器441は、通信データに異常が含まれるか否かを判定する異常検知器510から、通信データに異常が含まれるか否かの異常検知結果を取得してもよい。
図12は、図10に示されたセキュリティゲートウェイ装置460の構成を示すブロック図である。セキュリティゲートウェイ装置460は、サンプリングログ生成器463、フルログ生成器464、異常検知器465、異常データ無効化器466、蓄積器467、転送処理器469、車外通信器470及び車内通信器471を備える。これらの構成要素は、図7に示された取得器441、出力器442、異常検知器510、ログ生成器520及び送信器530等の役割を果たす。
また、図12のサンプリングログ生成器463、フルログ生成器464、異常検知器465、異常データ無効化器466及び蓄積器467は、それぞれ、図11のサンプリングログ生成器443、フルログ生成器444、異常検知器445、異常データ無効化器446及び蓄積器447と同様の構成要素である。
転送処理器469は、車両400の外部から車外通信器470を介して情報を取得し、車内通信器471を介して情報を出力することにより、車両400の外部から内部へ情報を転送する。また、転送処理器469は、車両400の内部から車内通信器471を介して情報を取得し、車両400の外部へ車外通信器470を介して情報を出力することにより、車両400の内部から外部へ情報を転送する。
車外通信器470は、例えば外部ネットワークを介して、車両400の外部のサーバ装置300等と通信する。車内通信器471は、車載ネットワークを介して、車両400の内部の複数のECU450等と通信する。また、車外通信器470及び車内通信器471は、セキュリティECU440の通信器448と同様の役割を果たす。
なお、以下において示されるセキュリティECU440の動作は、セキュリティゲートウェイ装置460によって行われてもよい。例えば、セキュリティECU440の通信器448によって行われる動作は、セキュリティゲートウェイ装置460の車外通信器470又は車内通信器471によって行われてもよい。
また、一例として、図7に示された取得器441、出力器442及び送信器530は、車外通信器470に含まれていてもよい。図7に示された異常検知器510は、異常検知器465に含まれていてもよい。図7に示されたログ生成器520は、サンプリングログ生成器463、フルログ生成器464及び蓄積器467で構成されていてもよい。
図13は、図9等に示されたサーバ装置300の構成を示すブロック図である。サーバ装置300は、サンプリングログ処理器343、フルログ処理器344、異常検知器345、異常通知器346、蓄積器347及び通信器348を備える。これらの構成要素は、図8に示された取得器301、判定器302及び出力器303等の役割を果たす。
サンプリングログ処理器343は、通信器348を介してサンプリングログを取得し、取得されたサンプリングログを蓄積器347に格納する。
フルログ処理器344は、通信器348を介してフルログを取得し、取得されたフルログを蓄積器347に格納する。
異常検知器345は、蓄積器347に格納されたサンプリングログ又はフルログに異常が含まれるか否かを判定することにより、通信データに異常が含まれるか否かを判定する。
異常通知器346は、通信データに異常が含まれると判定された場合、通信器348を介して異常通知を端末装置200及びセキュリティECU440へ送信する。
蓄積器347は、サンプリングログ処理器343で取得されたサンプリングログ、及び、フルログ処理器344で取得されたフルログを蓄積する。例えば、蓄積器347は、メモリで構成される。
通信器348は、例えば外部ネットワークを介して、セキュリティECU440等と通信する。また、通信器348は、端末装置200と通信する。
なお、一例として、図8に示された取得器301及び出力器303は、通信器348に含まれていてもよい。図8に示された判定器302は、異常検知器345に含まれていてもよい。
図14は、図9に示されたセキュリティシステム100におけるサンプリングログの送信に関連する動作を示すシーケンス図である。
まず、セキュリティECU440の通信器448は、車載ネットワークから通信データを取得する(S101)。次に、セキュリティECU440のサンプリングログ生成器443は、車載ネットワークから取得された通信データに従って、蓄積器447にサンプリングログを記録する(S102)。また、セキュリティECU440のフルログ生成器444は、車載ネットワークから取得された通信データに従って、蓄積器447にフルログを記録する(S103)。
また、セキュリティECU440の異常検知器445は、車載ネットワークから取得された通信データに従って、異常検知処理を行う(S104)。すなわち、セキュリティECU440の異常検知器445は、車載ネットワークから取得された通信データに異常が含まれるか否かを判定する。
異常が検知されなかった場合において、すなわち、車載ネットワークから取得された通信データに異常が含まれないと判定された場合において、セキュリティECU440の通信器448は、サンプリングログを周期的に送信する(S105)。例えば、セキュリティECU440の通信器448は、蓄積器447に記録されたサンプリングログを圧縮して、圧縮されたサンプリングログをサーバ装置300へ送信する。
サーバ装置300の通信器348は、セキュリティECU440からサンプリングログを取得する。そして、サーバ装置300のサンプリングログ処理器343は、セキュリティECU440から取得されたサンプリングログを蓄積器347に記録する。例えば、サーバ装置300のサンプリングログ処理器343は、圧縮されたサンプリングログを解凍し、解凍されたサンプリングログを蓄積器347に記録する。
そして、サーバ装置300の異常検知器345は、蓄積器347に記録されたサンプリングログに従って、異常検知処理を行う(S106)。すなわち、サーバ装置300の異常検知器345は、サンプリングログに異常が含まれるか否かを判定することにより、車載ネットワークにおける通信データに異常が含まれるか否かを判定する。
図15は、図9等に示されたサーバ装置300で行われる異常検知処理に関連する動作を示すシーケンス図である。
サーバ装置300で行われる異常検知処理(S106)において異常が検知された場合、サーバ装置300の異常通知器346は、通信器348を介して異常通知を送信する。すなわち、サンプリングログに従って車載ネットワークにおける通信データに異常が含まれると判定された場合、サーバ装置300の異常通知器346は、通信器348を介して異常通知を送信する。
例えば、サーバ装置300の異常通知器346は、通信器348を介して、端末装置200へ異常通知を送信する(S107)。そして、端末装置200は、サーバ装置300から異常通知を取得し、監視組織に異常を通知する。
また、サーバ装置300の異常通知器346は、通信器348を介して、セキュリティECU440へ異常通知を送信する(S108)。そして、セキュリティECU440の通信器448は、異常通知を取得し、ドライバーへ異常を通知する(S109)。
例えば、セキュリティECU440の通信器448は、ディスプレイ又はスピーカ等の通知インタフェースを有するECU450へ異常通知を出力することにより、通知インタフェースを介して、ドライバーへ異常を通知する。あるいは、セキュリティECU440が、通知インタフェースを有している場合、セキュリティECU440は、セキュリティECU440の通知インタフェースを介して、ドライバーへ異常を通知してもよい。
また、セキュリティECU440の通信器448は、異常通知を取得した場合、フルログをサーバ装置300へ送信する(S110)。例えば、セキュリティECU440の通信器448は、蓄積器447に記録されたフルログを圧縮して、圧縮されたフルログをサーバ装置300へ送信する。
そして、サーバ装置300の通信器348は、セキュリティECU440からフルログを取得する。そして、サーバ装置300のフルログ処理器344は、セキュリティECU440から取得されたフルログを蓄積器347に記録する。例えば、サーバ装置300のフルログ処理器344は、圧縮されたフルログを解凍し、解凍されたフルログを蓄積器347に記録する。
そして、サーバ装置300の異常検知器345は、蓄積器347に記録されたフルログに従って、異常検知処理を行う(S111)。すなわち、サーバ装置300の異常検知器345は、フルログに異常が含まれるか否かを判定することにより、車載ネットワークにおける通信データに異常が含まれるか否かを判定する。
そして、サーバ装置300の通信器348は、異常検知処理の結果を端末装置200へ送信する(S112)。サーバ装置300の異常通知器346が、通信器348を介して、異常検知処理の結果として異常通知を端末装置200へ送信してもよい。端末装置200は、サーバ装置300から異常検知処理の結果を取得し、監視組織に異常検知処理の結果を通知する。
そして、端末装置200は、監視組織によって操作されることにより、異常に関する詳細分析を行う(S113)。また、端末装置200は、監視組織によって操作されることにより、証拠保全を行う(S114)。端末装置200は、詳細分析及び証拠保全のため、サーバ装置300からフルログをダウンロードしてもよい。
図16は、図9等に示されたセキュリティECU440で行われる異常検知処理に関連する動作を示すシーケンス図である。
セキュリティECU440で行われる異常検知処理(S104)において異常が検知された場合、セキュリティECU440の通信器448は、ドライバーへ異常を通知する(S131)。すなわち、車載ネットワークから取得された通信データに異常が含まれると判定された場合において、セキュリティECU440の通信器448は、ドライバーへ異常を通知する。
例えば、セキュリティECU440の通信器448は、通知インタフェースを有するECU450へ異常通知を出力することにより、通知インタフェースを介して、ドライバーへ異常を通知する。あるいは、セキュリティECU440が、通知インタフェースを有している場合、セキュリティECU440は、セキュリティECU440の通知インタフェースを介して、ドライバーへ異常を通知してもよい。
そして、セキュリティECU440の通信器448は、フルログを送信する(S132)。例えば、セキュリティECU440の通信器448は、蓄積器447に記録されたフルログを圧縮して、圧縮されたフルログをサーバ装置300へ送信する。
そして、サーバ装置300の通信器348は、セキュリティECU440からフルログを取得する。そして、サーバ装置300のフルログ処理器344は、セキュリティECU440から取得されたフルログを蓄積器347に記録する。例えば、サーバ装置300のフルログ処理器344は、圧縮されたフルログを解凍し、解凍されたフルログを蓄積器347に記録する。
そして、サーバ装置300の異常検知器345は、蓄積器347に記録されたフルログに従って、異常検知処理を行う(S133)。すなわち、サーバ装置300の異常検知器345は、フルログに異常が含まれるか否かを判定することにより、車載ネットワークにおける通信データに異常が含まれるか否かを判定する。
そして、異常が検知された場合、すなわち、フルログに従って車載ネットワークにおける通信データに異常が含まれると判定された場合、サーバ装置300の異常通知器346は、通信器348を介して異常通知を送信する。例えば、サーバ装置300の異常通知器346は、通信器348を介して、端末装置200へ異常通知を送信する(S134)。そして、端末装置200は、サーバ装置300から異常通知を取得し、監視組織に異常を通知する。
また、サーバ装置300の異常通知器346は、通信器348を介して、セキュリティECU440へ異常通知を送信する(S135)。そして、セキュリティECU440の通信器448は、異常通知を取得し、ドライバーへ異常を通知する(S136)。また、セキュリティECU440の通信器448は、異常通知を取得した場合、フルログをサーバ装置300へ送信する(S137)。
そして、サーバ装置300の通信器348は、セキュリティECU440からフルログを取得する。そして、サーバ装置300のフルログ処理器344は、セキュリティECU440から取得されたフルログを蓄積器347に記録する。そして、サーバ装置300の異常検知器345は、蓄積器347に記録されたフルログに従って、異常検知処理を行う(S138)。
そして、サーバ装置300の通信器348は、異常検知処理の結果を端末装置200へ送信する(S139)。サーバ装置300の異常通知器346が、通信器348を介して、異常検知処理の結果として異常通知を端末装置200へ送信してもよい。端末装置200は、サーバ装置300から異常検知処理の結果を取得し、監視組織に異常検知処理の結果を通知する。
そして、端末装置200は、監視組織によって操作されることにより、異常に関する詳細分析を行う(S140)。また、端末装置200は、監視組織によって操作されることにより、証拠保全を行う(S141)。
図16に示された端末装置200に対する異常通知の送信(S134)から証拠保全(S141)までの処理は、図15に示された端末装置200に対する異常通知の送信(S107)から証拠保全(S114)までの処理と同様である。また、処理の繰り返しを避けるため、セキュリティECU440に対する異常通知の送信(S135)から、端末装置200に対する異常検知処理結果の送信(S139)までの処理は、省略されてもよい。
図17は、図9等に示されたセキュリティECU440の動作を示すフローチャートである。
セキュリティECU440は、車載ネットワークにおける通信データのログを記録するためのログ記録処理を行う(S201)。また、セキュリティECU440は、通信データにおける異常を検知するための異常検知処理を行う(S202)。そして、セキュリティECU440は、通信ログをサーバ装置300へ送信するためのログ送信処理を行う(S203)。セキュリティECU440は、これらの処理(S201〜S203)を繰り返す。
図18は、図9等に示されたセキュリティECU440で行われるログ記録処理の第1態様を示すフローチャートである。
まず、通信器448は、車載ネットワークにおける通信データを受信することにより通信データを取得する(S301)。具体的には、通信器448は、CANのフレームを通信データとして取得する。
次に、フルログ生成器444は、取得された通信データをフルログとして蓄積器447に記録する(S302)。具体的には、フルログ生成器444は、取得されたフレームを図4のログフォーマットに従ってフルログとして蓄積器447に記録する。また、例えば、過去に取得されたフレームがフルログとして蓄積器447に記録されている場合、フルログ生成器444は、新たに取得されたフレームの情報を図4のログフォーマットにおけるペイロードに追加する。
次に、サンプリングログ生成器443は、例えばサンプリングログ生成器443におけるサンプリングタイマを確認することにより、現在時刻がサンプリング期間内であるか否かを判定する(S303)。現在時刻がサンプリング期間内でない場合(S304でNo)、セキュリティECU440は、ログ記録処理を終了する。
現在時刻がサンプリング期間内である場合(S304でYes)、サンプリングログ生成器443は、取得された通信データが特定の種別の通信データであるか否かを判定する。その際、具体的には、サンプリングログ生成器443は、取得されたフレームに含まれるIDが特定のIDであるか否かを判定することにより、取得されたフレームが特定の種別のフレームであるか否かを判定する。
取得された通信データが特定の種別の通信データでないと判定された場合(S305でNo)、セキュリティECU440は、ログ記録処理を終了する。
取得された通信データが特定の種別の通信データであると判定された場合(S305でYes)、サンプリングログ生成器443は、取得された通信データをサンプリングログとして蓄積器447に記録する(S306)。
具体的には、サンプリングログ生成器443は、取得されたフレームを図4のログフォーマットに従ってサンプリングログとして蓄積器447に記録する。また、例えば、過去に取得されたフレームがサンプリングログとして蓄積器447に記録されている場合、サンプリングログ生成器443は、新たに取得されたフレームの情報を図4のログフォーマットにおけるペイロードに追加する。そして、セキュリティECU440は、ログ記録処理を終了する。
なお、サンプリングログ生成器443及びフルログ生成器444は、基本的に、サンプリングログとフルログとを別々に蓄積器447に記録する。
図19は、図9等に示されたセキュリティECU440で行われるログ記録処理の第2態様を示すフローチャートである。図19に示されたログ記録処理の第2態様において、通信データを取得してから通信データをサンプリングログとして記録するまでの処理(S301〜S306)は、図18に示されたログ記録処理の第1態様と同じである。
図19に示されたログ記録処理の第2態様において、サンプリングログ生成器443は、通信データをサンプリングログとして記録した後、サンプリング間隔の時間長を更新する(S307)。
例えば、サンプリングログ生成器443は、最小値と最大値との間の範囲でランダムにサンプリング間隔の時間長を更新する。ここで、最小値及び最大値は、それぞれ、サンプリング期間の時間長よりも大きい値に予め定められる。あるいは、サンプリングログ生成器443は、最小値と最大値との間の範囲で線形的にサンプリング間隔の時間長を更新してもよい。
具体的には、サンプリングログ生成器443は、サンプリング間隔の時間長を最小値から最大値まで徐々に大きくしてもよい。すなわち、サンプリングログ生成器443は、サンプリング間隔の時間長を最小値から最大値まで段階的に大きくしてもよい。そして、サンプリング間隔の時間長が最大値に到達した後、サンプリング間隔の時間長を最大値から最小値まで徐々に小さくしてもよい。すなわち、サンプリングログ生成器443は、サンプリング間隔の時間長を最小値から最大値まで段階的に小さくしてもよい。
これにより、セキュリティECU440は、サンプリングログに関連するサンプリング間隔の時間長を様々に変更することができる。したがって、セキュリティECU440は、サンプリングログに、固定のサンプリング間隔では含まれない異常等を含ませることができる。また、セキュリティECU440は、サンプリング間隔を解析されにくくすることができる。したがって、セキュリティECU440は、不正なデータに基づく異常等がサンプリングログに含まれない現象を抑制することができる。
なお、サンプリングログ生成器443は、サンプリング間隔の更新に加えて、又は、サンプリング間隔の更新に代えて、サンプリングログに関連する特定の種別を更新してもよい。
また、上記のログ記録処理において、例えば、通信器448に含まれる出力器442から、サンプリングログ生成器443で構成されるログ生成器520へ、サンプリング間隔又は特定の種別に関する指示が出力される。そして、サンプリング間隔又は特定の種別に関する指示に従って、サンプリング間隔又は特定の種別が更新される。
図20は、図9等に示されたセキュリティECU440で行われる異常検知処理を示すフローチャートである。
異常検知処理において、異常検知器445は、通信器448で取得された通信データと異常パターンとのマッチング処理を行う(S401)。すなわち、異常検知器445は、通信器448で取得された通信データが予め定められた異常パターンにマッチするか否かを判定する。ここで、通信器448で取得された通信データは、より具体的には、通信器448で通信データとして取得された1以上のデータフレームである。
そして、異常検知器445は、通信器448で取得された通信データが予め定められた異常パターンにマッチすると判定した場合(S402でYes)、異常を検知する(S403)。言い換えれば、異常検知器445は、この場合、通信データに異常が含まれると判定する。さらに言い換えれば、異常検知器445は、通信器448で取得された通信データが予め定められた異常パターンにマッチすることを通信データにおける異常として検知する。
また、通信器448は、サーバ装置300から異常通知を受信するための異常通知受信処理を行う(S404)。具体的には、サーバ装置300から異常通知が送信された場合、通信器448は、サーバ装置300から送信された異常通知を受信する。
そして、異常検知器445は、通信器448がサーバ装置300から異常通知を受信した場合(S405でYes)、異常を検知する(S406)。言い換えれば、異常検知器445は、この場合、通信データに異常が含まれると判定する。さらに言い換えれば、異常検知器445は、通信器448がサーバ装置300から異常通知を受信したことを通信データにおける異常として検知する。
また、通信器448で取得された通信データが予め定められた異常パターンにマッチしないと判定され、通信器448がサーバ装置300から異常通知を受信しなかった場合、異常検知器445は異常を検知しない。すなわち、この場合、異常検知器445は、通信データに異常が含まれないと判定する。
なお、上記の異常検知処理において、通信データと異常パターンとのマッチング処理が行われているが、通信データと正常パターンとのマッチング処理が行われてもよい。この場合、通信データが予め定められた正常パターンにマッチしないと判定された場合、異常検知器445は異常を検知する。
また、CANにおいて、同種のデータフレームは一定の周期で流れることが想定される。したがって、同種のデータフレームが一定の周期で流れていない場合、異常検知器445は異常を検知してもよい。具体的には、異常検知器445は、データフレームが取得された時間間隔を用いて、データフレームが一定の周期で流れているか否かを判定し、その判定結果に従って異常を検知してもよい。また、異常パターン又は正常パターンに、CANを流れる同種のデータフレームの周期が含まれていてもよい。
また、一定の周期で流れる同種の複数のデータフレームはデータ内容において連続性を有することが想定される。例えば、異常検知器445は、同種の複数のデータフレームにおいて、前のデータフレームのデータ値から乖離の大きいデータ値を有するデータフレームを異常として検知してもよい。また、異常パターン又は正常パターンに、乖離の大きさが含まれていてもよい。乖離の大きさは、データ値の差とも表現され得る。
また、異常通知受信処理(S404)のタイミングは、図20の例に限られない。通信器448は、サーバ装置300から異常通知が送信されたタイミングで、サーバ装置300から送信された異常通知を受信する。
また、セキュリティECU440は、セキュリティECU440における独自の異常検知(S401〜S403)と、サーバ装置300に基づく異常検知(S404〜S406)とのうち、一方のみを行ってもよい。
セキュリティECU440が独自の異常検知(S401〜S403)を行う構成は、図7に示された異常検知器510がセキュリティECU440に含まれる構成に対応する。セキュリティECU440がサーバ装置300に基づく異常検知(S404〜S406)を行う構成は、図7に示された異常検知器510がサーバ装置300に含まれる構成に対応する。
そして、独自の異常検知(S401〜S403)と、サーバ装置300に基づく異常検知(S404〜S406)との両方が行われる構成は、異常検知器510がセキュリティECU440及びサーバ装置300のそれぞれに含まれる構成に対応する。
図21は、図9等に示されたセキュリティECU440で行われるログ送信処理の第1態様を示すフローチャートである。
本態様において、異常検知器445は、通信データの異常が検知されたか否かを判定する(S501)。そして、通信データの異常が検知されたと判定された場合、すなわち、通信データに異常が含まれると判定された場合、通信器448は、ドライバーへ異常を通知する(S502)。例えば、通信器448は、通知インタフェースを有するECU450へ異常通知を出力することにより、通知インタフェースを介して、ドライバーへ異常を通知する。
そして、通信器448は、蓄積器447に記録されたフルログを圧縮する(S503)。例えば、通信器448は、7−Zip等の圧縮方法を用いてフルログを可逆的に圧縮する。そして、通信器448は、圧縮されたフルログをサーバ装置300へ送信する(S504)。通信器448は、フルログの送信後、蓄積器447に記録されたフルログを蓄積器447から削除してもよい。
一方、通信データの異常が検知されなかったと判定された場合、すなわち、通信データに異常が含まれないと判定された場合、通信器448は、定期送信タイマを確認することにより、現在時刻が定期送信のタイミングであるか否かを判定する(S511)。現在時刻が定期送信のタイミングでないと判定された場合(S512でNo)、セキュリティECU440は、ログ送信処理を終了する。
現在時刻が定期送信のタイミングであると判定された場合(S512でYes)、通信器448は、蓄積器447に記録されたサンプリングログを圧縮する(S513)。例えば、通信器448は、7−Zip等の圧縮方法を用いてサンプリングログを可逆的に圧縮する。そして、通信器448は、圧縮されたサンプリングログをサーバ装置300へ送信する(S514)。通信器448は、サンプリングログの送信後、蓄積器447に記録されたサンプリングログを蓄積器447から削除してもよい。
上記のログ送信処理により、セキュリティECU440からサーバ装置300へ、データ量が比較的小さいサンプリングログが周期的に送信され、データ量が比較的大きいフルログが異常時に送信される。
なお、定期送信のタイミングは、例えば、1分間に1回である。そして、通信器448は、前にサンプリングログを送信してから1分以上経過している場合、現在時刻が定期送信のタイミングであると判定してもよい。これにより、通信器448は、周期的にサンプリングログを送信する。基本的に、サンプリングログが送信される周期は、サンプリングログの記録に関するサンプリング間隔よりも長い。
また、例えば、サーバ装置300へ送信されるフルログは、過去の所定期間におけるフルログである。所定期間は、例えば、1時間である。蓄積器447には、所定期間分のフルログが記録されてもよい。そのため、フルログの記録には、所定期間分のフルログを記録するためのリングバッファが用いられてもよい。同様に、サンプリングログの記録にも、送信周期分のサンプリングログを記録するためのリングバッファが用いられてもよい。
また、上記のログ送信処理では、異常が検知された場合、フルログが送信され、サンプリングログが送信されない。しかしながら、サンプリングログは、異常が検知されたか否かにかかわらず、周期的に送信されてもよい。
また、上記のログ送信処理において、例えば、通信器448に含まれる取得器441は、異常検知器445から異常検知結果を取得する。そして、通信器448において、出力器442から送信器530へ、異常検知結果に従ってサンプリングログ又はフルログの送信の指示が出力される。そして、送信の指示に従って、サンプリングログ又はフルログが送信される。
図22は、図9等に示されたセキュリティECU440で行われるログ送信処理の第2態様を示すフローチャートである。図22に示されたログ送信処理の第2態様において、フルログ及びサンプリングログを送信するまでの処理(S501〜S504及びS511〜S514)は、図21に示されたログ送信処理の第1態様と同じである。
本態様では、フルログが送信された後、サンプリングログ生成器443は、サンプリング間隔を短く更新する(S505)。すなわち、異常が検知された場合、サンプリングログ生成器443は、サンプリング間隔の時間長を小さくする。また、サンプリングログが送信された後、サンプリングログ生成器443は、サンプリング間隔を長く更新する(S515)。すなわち、異常が検知されなかった場合、サンプリングログ生成器443は、サンプリング間隔の時間長を大きくする。
上記の更新において、サンプリングログ生成器443は、最小値と最大値との間の範囲でサンプリング間隔の時間長を更新する。サンプリングログ生成器443は、1回の更新で、予め定められた固定長分、サンプリング間隔の時間長を小さく又は大きくしてもよい。サンプリングログ生成器443は、1回の更新で、ランダムな長さ分、サンプリング間隔の時間長を小さく又は大きくしてもよい。
上記のような更新により、セキュリティECU440は、異常時以降において、サンプリングログのデータ量を増加させることができる。そして、セキュリティECU440は、サンプリングログに、長いサンプリング間隔では含まれない異常等を含ませることができる。また、セキュリティECU440は、異常がない場合、サンプリングログのデータ量を減少させることができる。
なお、本態様では、異常が検知された通信データの種別にかかわらず、全ての種別について、サンプリング間隔を更新する。すなわち、異常が検知されたフレームのIDにかかわらず、全てのIDについて、サンプリング間隔を更新する。
また、上記の更新において、例えば、通信器448に含まれる出力器442から、ログ生成器520を構成するサンプリングログ生成器443へ、サンプリング間隔に関する指示が出力される。そして、サンプリング間隔に関する指示に従って、サンプリング間隔が更新される。
図23は、図9等に示されたセキュリティECU440で行われるログ送信処理の第3態様を示すフローチャートである。図23に示されたログ送信処理の第3態様において、フルログ及びサンプリングログを送信するまでの処理(S501〜S504及びS511〜S514)は、図21及び図22に示されたログ送信処理の第1態様及び第2態様と同じである。
本態様では、フルログが送信された後、サンプリングログ生成器443は、異常が検知された通信データの種別について、サンプリング間隔を短く更新する(S506)。そして、サンプリングログ生成器443は、他の種別について、サンプリング間隔を維持する。すなわち、1つの種別の通信データにおいて異常が検知された場合、サンプリングログ生成器443は、その1つの種別について、サンプリング間隔の時間長を小さくする。
また、サンプリングログが送信された後、サンプリングログ生成器443は、短く更新されていたサンプリング間隔を長く更新する(S516)。すなわち、異常が検知されなかった場合、サンプリングログ生成器443は、サンプリング間隔の時間長を元の時間長に戻す。あるいは、この場合、サンプリングログ生成器443は、サンプリング間隔の時間長を元の時間長に近づける。
図22に示されたログ送信処理の第2態様と同様に、サンプリングログ生成器443は、最小値と最大値との間の範囲でサンプリング間隔の時間長を更新する。サンプリングログ生成器443は、1回の更新で、予め定められた固定長分、サンプリング間隔の時間長を小さく又は大きくしてもよい。サンプリングログ生成器443は、1回の更新で、ランダムな長さ分、サンプリング間隔の時間長を小さく又は大きくしてもよい。
上記のような更新により、セキュリティECU440は、異常時以降において、サンプリングログのデータ量を種別毎に増加させることができる。また、セキュリティECU440は、異常がない場合、増加したデータ量を減少させることができる。
図24は、図9等に示されたサーバ装置300の動作の第1態様を示すフローチャートである。
まず、通信器348は、セキュリティECU440からサンプリングログ又はフルログを受信する(S601)。サンプリングログが受信された場合(S602でYes)、サンプリングログ処理器343は、サンプリングログを蓄積器347に記録する。例えば、サンプリングログ処理器343は、圧縮されたサンプリングログを解凍し、解凍されたサンプリングログを蓄積器347に記録する。
そして、異常検知器345は、サンプリングログに従って異常検知処理を行う(S603)。例えば、異常検知器345は、セキュリティECU440の異常検知器445が行うマッチング処理(S401)と同じように、通信データと異常パターンとのマッチング処理を行う。ただし、異常検知器345は、サンプリングログによって示される通信データをマッチング処理に用いる。
すなわち、異常検知器345は、サンプリングログによって示される通信データが予め定められた異常パターンにマッチするか否かを判定する。より具体的には、異常検知器345は、サンプリングログによって示されるデータフレームが予め定められた異常パターンにマッチするか否かを判定する。
そして、異常検知器345は、サンプリングログによって示される通信データが予め定められた異常パターンにマッチすると判定した場合、異常を検知する。言い換えれば、異常検知器345は、この場合、通信データに異常が含まれると判定する。さらに言い換えれば、異常検知器345は、サンプリングログによって示される通信データが予め定められた異常パターンにマッチすることを通信データにおける異常として検知する。
ログの受信(S601)において、サンプリングログが受信されなかった場合(S602でNo)、すなわち、フルログが受信された場合、フルログ処理器344は、フルログを蓄積器347に記録する。例えば、フルログ処理器344は、圧縮されたフルログを解凍し、解凍されたフルログを蓄積器347に記録する。
そして、異常検知器345は、フルログに従って異常検知処理を行う(S604)。例えば、異常検知器345は、セキュリティECU440の異常検知器445が行うマッチング処理(S401)と同じように、通信データと異常パターンとのマッチング処理を行う。ただし、異常検知器345は、フルログによって示される通信データをマッチング処理に用いる。
すなわち、異常検知器345は、フルログによって示される通信データが予め定められた異常パターンにマッチするか否かを判定する。より具体的には、異常検知器345は、フルログによって示されるフレームが予め定められた異常パターンにマッチするか否かを判定する。
そして、異常検知器345は、フルログによって示される通信データが予め定められた異常パターンにマッチすると判定した場合、異常を検知する。言い換えれば、異常検知器345は、この場合、通信データに異常が含まれると判定する。さらに言い換えれば、異常検知器345は、フルログによって示される通信データが予め定められた異常パターンにマッチすることを通信データにおける異常として検知する。
次に、異常検知器345は、通信データの異常が検知されたか否かを判定する(S605)。そして、通信データの異常が検知されたと判定された場合、すなわち、通信データに異常が含まれると判定された場合(S605でYes)、通信器348は、端末装置200へ異常通知を送信する(S606)。ログの受信(S601)において、フルログが受信されていた場合(S607でYes)、サーバ装置300は、一連の処理を終了する。
ログの受信(S601)において、フルログが受信されていなかった場合(S607でNo)、すなわち、サンプリングログが受信されていた場合、通信器348は、セキュリティECU440へ異常通知を送信する(S608)。通信器348は、セキュリティECU440へ異常通知を送信することにより、セキュリティECU440にフルログをサーバ装置300へ送信させる。そして、サーバ装置300は、一連の処理を終了する。
なお、サンプリングログの異常検知処理(S603)と、フルログの異常検知処理(S604)とは、図24において別々に記載されているが、これらは共通の処理であってもよい。すなわち、異常検知器345は、サンプリングログかフルログかによらず、共通の異常検知処理を行ってもよい。
また、上記の異常検知処理(S603及びS604)において、通信データと異常パターンとのマッチング処理が行われているが、通信データと正常パターンとのマッチング処理が行われてもよい。この場合、通信データが予め定められた正常パターンにマッチしないと判定された場合、異常検知器345は異常を検知する。
また、セキュリティECU440において行われるマッチング処理(S401)よりも複雑なマッチング処理が上記の異常検知処理(S603及びS604)において行われてもよい。サーバ装置300は、車載のための要件に制約されない十分な処理能力を用いて、マッチング処理を行い得る。例えば、セキュリティECU440において行われるマッチング処理(S401)よりも多くの異常パターンが上記の異常検知処理(S603及びS604)において用いられてもよい。
また、CANにおいて、同種のデータフレームは一定の周期で流れることが想定される。したがって、同種のデータフレームが一定の周期で流れていない場合、異常検知器345は異常を検知してもよい。具体的には、異常検知器345は、データフレームが取得された時間間隔を用いて、データフレームが一定の周期で流れているか否かを判定し、その判定結果に従って異常を検知してもよい。また、異常パターン又は正常パターンに、CANを流れる同種のデータフレームの周期が含まれていてもよい。
ただし、データフレームが一定の周期で流れているか否かの判定は、前のデータフレームが欠落していない場合において有効であり、前のデータフレームが欠落している場合において有効でない。
したがって、サンプリングログに含まれるデータフレームがサンプリング期間の最初のデータフレームである場合、異常検知器345は、データフレームが一定の周期で流れているか否かの判定を異常の検知に用いない。一方、サンプリングログに含まれるデータフレームがサンプリング期間の最初のデータフレームでない場合、異常検知器345は、データフレームが一定の周期で流れているか否かの判定を異常の検知に用いる。
具体的には、サンプリングログに含まれるデータフレームがサンプリング期間の最初のデータフレームでない場合、異常検知器345は、データフレームのサンプリング時刻と、その前のデータフレームのサンプリング時刻との差を異常の検知に用いる。サンプリング時刻の差が一定の周期間隔に該当する場合、異常検知器345は、データフレームを正常と判定する。一方、サンプリング時刻の差が一定の周期間隔に該当しない場合、異常検知器345は、データフレームを異常と判定する。
また、種別も周期に関連するため、同種のデータフレームに関するサンプリング時刻の差が異常の検知に用いられてもよい。つまり、同じサンプリング期間及び同じ種別において、データフレームのサンプリング時刻と、その前のデータフレームのサンプリング時刻との差が異常の検知に用いられてもよい。
サンプリングログに含まれるデータフレームが最初のデータフレームに該当するか否かは、図4に示されたログフォーマットのフラグによって識別され得る。また、フルログではデータフレームが欠落しないため、フルログに対して、サンプリング時刻の差が異常の検知に用いられてもよい。
また、一定の周期で流れる同種のデータフレームはデータ内容において連続性を有することが想定される。したがって、データフレームと、その前のデータフレームとの間におけるデータ値の差が、サンプリング時刻の差と同様に、異常の検知に用いられてもよい。この場合も、サンプリング時刻の差と同様に、最初のデータフレームとは異なるデータフレームに対して、異常の検知にデータ値の差が用いられてもよい。
図25は、図9等に示されたサーバ装置300の動作の第2態様を示すフローチャートである。図25に示された第2態様において、ログを受信してから異常通知を送信するまでの処理(S601〜S608)は、図24に示された第1態様と同じである。
本態様において、サーバ装置300は、その後、サンプリング間隔更新処理を行う(S609)。例えば、通信器348は、セキュリティECU440にサンプリング間隔の時間長を変更させる変更指示をセキュリティECU440へ送信する。そして、セキュリティECU440は、サンプリング間隔の時間長を変更する。図26及び図27は、上記のサンプリング間隔更新処理に関するより具体的な態様を示す。
図26は、図9等に示されたサーバ装置300及びセキュリティECU440で行われるサンプリング間隔更新処理の第1態様を示すフローチャートである。
本態様では、まず、サーバ装置300において、通信器348が、ログの受信(S601)において受信されたログの送信元である車両400の車種を特定する(S701)。通信器348は、ログに含まれる車両IDに従って、車両400の車種を特定してもよい。あるいは、通信器348は、新たにセキュリティECU440等と通信することにより、車両400の車種を特定してもよい。
次に、通信器348は、特定された車種について、現在のサンプリング間隔を取得する(S702)。現在のサンプリング間隔は、車種毎に、蓄積器347に記録されていてもよい。そして、通信器348は、蓄積器347から現在のサンプリング間隔を取得してもよい。あるいは、通信器348は、新たにセキュリティECU440等と通信することにより、現在のサンプリング間隔を取得してもよい。
そして、異常検知処理(S603又はS604)において異常が検知された場合(S703でYes)、通信器348は、サンプリング間隔を短く更新する(S704)。すなわち、通信器348は、現在のサンプリング間隔よりも短いサンプリング間隔を定める。
一方、異常検知処理(S603又はS604)において異常が検知されなかった場合(S703でNo)、通信器348は、サンプリング間隔を長く更新する(S705)。すなわち、通信器348は、現在のサンプリング間隔よりも長いサンプリング間隔を定める。
そして、通信器348は、特定された車種と車種が同じである複数の車両の複数のセキュリティECUへ、更新されたサンプリング間隔、つまり新たに定められたサンプリング間隔を送信する(S706)。
サンプリング間隔が送信された複数のセキュリティECUに含まれるセキュリティECU440において、通信器448は、サーバ装置300から送信されたサンプリング間隔を受信する(S801)。そして、サンプリングログ生成器443は、受信されたサンプリング間隔に現在のサンプリング間隔を更新する(S802)。すなわち、通信器448は、サーバ装置300からサンプリング間隔の変更指示を外部指示として受信し、サンプリングログ生成器443は、外部指示に従ってサンプリング間隔を更新する。
これにより、サーバ装置300は、異常時以降において、サンプリングログのデータ量を増加させることができる。そして、サーバ装置300は、サンプリングログに、長いサンプリング間隔では含まれない異常等を含ませることができる。また、サーバ装置300は、異常がない場合、サンプリングログのデータ量を減少させることができる。また、サーバ装置300は、同一車種の複数の車載システムについて、サンプリングログに関連するサンプリング間隔の時間長を変更することができる。
なお、通信器348は、種別毎にサンプリング間隔を更新してもよい。例えば、1つの種別について異常が検知された場合、通信器348は、その1つの種別についてサンプリング間隔を短くしてもよい。そして、異常が検知されなかった場合、通信器348は、短くされたサンプリング間隔を長くしてもよい。そして、このような更新を同一車種に対して行ってもよい。これにより、車種毎及び種別毎に適切にデータ量が調整される。
あるいは、1つの種別について異常が検知された場合、通信器348は、種別によらず、全ての種別についてサンプリング間隔を短くしてもよい。そして、異常が検知されなかった場合、通信器348は、種別によらず、全ての種別についてサンプリング間隔を長くしてもよい。これにより、種別によらず、車種毎に適切にデータ量が調整される。
図27は、図9等に示されたサーバ装置300及びセキュリティECU440で行われるサンプリング間隔更新処理の第2態様を示すフローチャートである。
本態様では、まず、サーバ装置300において、通信器348が、ログの受信(S601)において受信されたログの送信元である車両400の地域を特定する(S711)。通信器348は、ログに含まれる車両IDに従って、車両400の地域を特定してもよい。あるいは、通信器348は、新たにセキュリティECU440等と通信することにより、車両400の地域を特定してもよい。
なお、基本的に国のような大きな範囲が地域として想定されている。このような地域は車両400に対して予め定められ得る。しかしながら、現在走行している車両400のより具体的な地域が用いられてもよい。このような地域は、GPS(Global Positioning System)等により特定され得る。
次に、通信器348は、特定された地域について、現在のサンプリング間隔を取得する(S712)。現在のサンプリング間隔は、地域毎に、蓄積器347に記録されていてもよい。そして、通信器348は、蓄積器347から現在のサンプリング間隔を取得してもよい。あるいは、通信器348は、新たにセキュリティECU440等と通信することにより、現在のサンプリング間隔を取得してもよい。
そして、異常検知処理(S603又はS604)において異常が検知された場合(S713でYes)、通信器348は、サンプリング間隔を短く更新する(S714)。すなわち、通信器348は、現在のサンプリング間隔よりも短いサンプリング間隔を定める。
一方、異常検知処理(S603又はS604)において異常が検知されなかった場合(S713でNo)、通信器348は、サンプリング間隔を長く更新する(S715)。すなわち、通信器348は、現在のサンプリング間隔よりも長いサンプリング間隔を定める。
そして、通信器348は、特定された地域と地域が同じである複数の車両の複数のセキュリティECUへ、更新されたサンプリング間隔、つまり新たに定められたサンプリング間隔を送信する(S716)。
サンプリング間隔更新処理の第1態様と同様に、サンプリング間隔が送信された複数のセキュリティECUに含まれるセキュリティECU440において、通信器448は、サーバ装置300から送信されたサンプリング間隔を受信する(S801)。そして、サンプリングログ生成器443は、受信されたサンプリング間隔に現在のサンプリング間隔を更新する(S802)。すなわち、セキュリティECU440は、サンプリング間隔の変更指示を外部指示として受信し、外部指示に従ってサンプリング間隔を更新する。
これにより、サーバ装置300は、同一地域の複数の車載システムについて、サンプリングログに関連するサンプリング間隔の時間長を変更することができる。
また、サンプリング間隔更新処理の第1態様と同様に、通信器348は、種別毎にサンプリング間隔を更新してもよい。これにより、地域毎及び種別毎に適切にデータ量が調整される。あるいは、通信器348は、種別によらず、サンプリング間隔を更新してもよい。これにより、種別によらず、地域毎に適切にデータ量が調整される。
[補足]
上記の実施の形態では、車載ネットワークとしてCANプロトコルを用いていたが、これに限るものではない。例えば、CAN−FD(CAN with Flexible Data Rate)、FlexRay、Ethernet、LIN(Local Interconnect Network)、MOST(Media Oriented Systems Transport)などを用いてもよい。あるいはこれらのネットワークをサブネットワークとして、CANと組み合わせたネットワークであってもよい。
なお、上記実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサなどのプログラム実行器が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記実施の形態の情報処理装置などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、情報処理装置であるコンピュータに、車両に搭載される情報処理装置が行う情報処理方法であって、前記車両の車載ネットワークにおける通信データに異常が含まれるか否かの異常検知結果を異常検知器から取得する取得ステップと、前記通信データの2種類のログのうち単位時間あたりに生じるデータ量が他方のログよりも小さいログであるサンプリングログを前記車両に搭載された送信器から前記車両の外部に設けられたサーバ装置へ周期的に送信させるサンプリングログ送信指示を出力する出力ステップとを含み、前記出力ステップでは、さらに、前記通信データに異常が含まれることを示す前記異常検知結果を前記取得ステップで取得した場合、前記2種類のログのうち単位時間あたりに生じるデータ量が前記サンプリングログよりも大きいログであるフルログを前記送信器から前記サーバ装置へ送信させるフルログ送信指示を出力する情報処理方法を実行させる。
また、このプログラムは、CD−ROM等の非一時的な記録媒体に記録されてもよい。また、情報処理装置は、集積回路で実装されてもよい。
また、上記実施の形態において、各構成要素は、回路でもよい。複数の構成要素が、全体として1つの回路を構成してもよいし、それぞれ別々の回路を構成してもよい。また、回路は、それぞれ、汎用的な回路でもよいし、専用の回路でもよい。
また、上記実施の形態において、送信元から送信先へ情報を送信するための送信方法は、送信される情報に送信元及び送信先の情報が含まれない送信方法であってもよく、結果として送信元から送信先へ情報が送信されるような送信方法であればよい。具体的には、ブロードキャストのような送信方法が用いられてもよい。出力元から出力先へ情報を出力するための出力方法も同様である。また、取得先から情報を取得する取得するための取得方法も、結果として取得先から情報が取得されるような取得方法であればよい。
以上、一つまたは複数の態様に係る情報処理装置について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、及び異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
例えば、上記実施の形態において、特定の構成要素が実行する処理を特定の構成要素の代わりに別の構成要素が実行してもよい。また、複数の処理の順序が変更されてもよいし、複数の処理が並行して実行されてもよい。