(57)【要約】  タイムスロットに基づくタイムトリガー方式の通信ネットワークにおける不正検知装置は、フレームを受信するフレーム送受信部（２０１）と、複数のタイムスロットで構成されるサイクルの繰り返し回数及びタイムスロットに基いて不正なフレームの発生を検知する不正検知部（２５２）とを備える。不正検知部（２５２）は、サイクルが１以上の所定の繰り返し回数繰り返される間に受信されたフレームに関する統計量を、統計量の基準範囲を示すルールに照らして不正なフレームの発生を検知する。
2020022444.tif 000002
【特許請求の範囲】
【請求項１】
タイムスロットに基づくタイムトリガー方式の通信ネットワークにおける不正検知装置であって、
前記通信ネットワークには複数の通信装置が接続され、前記複数の通信装置の各々は、複数の前記タイムスロットで構成されるサイクルの繰り返しにおける所定番目のサイクルの所定のタイムスロット内でフレームを送受信し、
前記不正検知装置は、
前記フレームを受信するフレーム受信部と、
前記フレームが受信された前記サイクルの繰り返し回数及び前記タイムスロットに基いて不正なフレームの発生を検知する不正検知部とを備え、
前記不正検知部は、前記サイクルが１以上の所定の繰り返し回数繰り返される間に受信された前記フレームに関する統計量を、前記統計量の基準範囲を示すルールに照らして不正なフレームの発生を検知する、
不正検知装置。
【請求項２】
前記フレームには、当該フレームのメタ情報に応じた種別である第一タイプがあり、
前記統計量は、前記フレームの前記第一タイプごとの受信数に関する第一統計量を含み、
前記不正検知部は、前記第一統計量を、前記第一統計量の基準範囲を示す前記ルールである第一ルールに照らして不正なフレームの発生を検知する、
請求項１に記載の不正検知装置。
【請求項３】
前記フレームには、当該フレームのペイロードの内容に応じた種別である第二タイプがあり、
前記統計量は、前記サイクルが２以上の前記所定の繰り返し回数繰り返される間に受信された前記フレームの前記第二タイプごとの受信数、及び前記サイクルが２以上の前記所定の繰り返し回数繰り返される間に受信された前記第二タイプごとであって前記第一タイプごとの前記フレームの受信数の少なくとも一方に関する第二統計量を含み、
前記不正検知部は、前記第二統計量を、前記第二統計量の基準範囲を示す前記ルールである第二ルールに照らして不正なフレームの発生を検知する、
請求項２に記載の不正検知装置。
【請求項４】
前記不正検知部は、前記第一ルール及び前記第二ルールの一方を用いて不正なフレームの発生を検知した場合に、さらに前記第一ルール及び前記第二ルールの他方を用いて不正なフレームの発生の有無を判定する、
請求項３に記載の不正検知装置。
【請求項５】
前記不正検知部は、不正なフレームの発生を検知した場合、さらに、受信されたフレームごとに当該フレームが不正であるか否かを判断する、
請求項２から４のいずれか一項に記載の不正検知装置。
【請求項６】
前記不正検知部は、受信された前記フレームが受信されたタイムスロットが前記サイクルの繰り返しにおける所定のタイムスロットであり、かつ、当該フレームが送信された前記サイクルの繰り返し回数サイクルカウントから所定のオフセット値を減算し、所定の受信サイクルで割った余りが０となる関係性を満たさない場合に、当該フレームが不正であると判定する、
請求項５に記載の不正検知装置。
【請求項７】
前記サイクルを構成する前記複数のタイムスロットは、前記サイクルの繰り返しの各回において必要に応じてフレームが送受信される動的タイムスロットを含み、
前記不正検知部は、前記動的タイムスロットで受信されたフレームである動的フレームに対し、前記動的フレームを受信する前に受信されたフレームから判定される車両状態、及び前記動的フレームに含まれる情報を用いて不正なフレームであるか否かを判断する、
請求項２から６のいずれか一項に記載の不正検知装置。
【請求項８】
前記不正検知部は、受信した前記動的フレームのスロットＩＤと所定の関係性を満たすサイクルカウントを含む前記動的フレームを受信したタイミングにおける、前記車両状態が所定の状態でない場合に、当該前記動的フレームを不正なフレームであると判断する、
請求項７に記載の不正検知装置。
【請求項９】
前記タイムトリガー方式は、ＦｌｅｘＲａｙ（登録商標）プロトコルによる通信方式であり、
前記サイクルの繰り返し回数は前記ＦｌｅｘＲａｙプロトコルにおけるサイクルカウントであり、
前記第一統計量は、フレームの受信数、Ｎｕｌｌフレームの受信数、Ｓｙｎｃフレームの受信数、Ｓｔａｒｔｕｐフレームの受信数、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１であるフレームの受信数、及びエラーが発生しているフレームの受信数のうち、１つ以上を含む、
請求項２から８のいずれか一項に記載の不正検知装置。
【請求項１０】
タイムスロットに基づくタイムトリガー方式の通信ネットワークであって、複数の通信装置が接続され、前記複数の通信装置の各々は、複数の前記タイムスロットで構成されるサイクルの繰り返しにおける所定番目のサイクルの所定のタイムスロット内でフレームが送受信される通信ネットワークで実行される不正検知方法であって、
前記フレームを受信し、
前記フレームが受信された前記サイクルの繰り返し回数及び前記タイムスロットに基いて不正なフレームの受信を検知し、
前記サイクルが１以上の所定の繰り返し回数繰り返される間に受信された前記フレームに関する統計量を、前記統計量の基準範囲を示すルールに照らして不正なフレームの発生を検知する、
不正検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信ネットワークにおける不正なフレームの発生を検知する技術に関する。
【背景技術】
【０００２】
近年、自動車の車載システムには、電子制御ユニット（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ、以下、ＥＣＵ）と呼ばれる装置が多数配置されている。これらのＥＣＵをつなぐ通信ネットワークは、車載ネットワークとも呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも現在主流となっているＣｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（以下ＣＡＮ（登録商標））よりも高速かつ高信頼のプロトコルとして設計された、ＦｌｅｘＲａｙ（登録商標）という規格が存在する。【０００３】
ＦｌｅｘＲａｙでは、２本のより線の電圧差により“０”の値と“１”の値を表す。バスに接続されているＥＣＵはノードと呼ばれ、バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する点はＣＡＮと共通している。一方で、イベントトリガの通信方式が採用されているＣＡＮに対し、ＦｌｅｘＲａｙではタイムトリガー方式であるＴｉｍｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ（以下、ＴＤＭＡ）が採用されている。ＦｌｅｘＲａｙの車載ネットワークでは、各フレームは事前に定義されたタイミング及び順番で送信される。【０００４】
一方、セキュリティに関しては、ＣＡＮの車載ネットワークでは、攻撃者がバスにアクセスし、不正なフレームを送信することでＥＣＵを不正に制御するといった脅威が存在し、このような脅威に対するセキュリティ対策が検討されている。【０００５】
例えば特許文献１では、車載ネットワーク監視装置を提案しており、フレームが予め規定された通信間隔でバスに送信されているかを検出し、規定された通信間隔から外れるフレームを不正と判断することで、不正なフレームによる制御を防止する方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第５６６４７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＦｌｅｘＲａｙの車載ネットワークでは、予め規定された通信間隔で通信が行われるため、ある特定の識別子（ＩＤ）を持つフレームの受信間隔は一定となり、特許文献１のような不正検知手法を適用することはできない。【０００８】
本開示は、上記課題を解決するため、タイムトリガー方式であるプロトコルを採用している通信ネットワークにおいても不正なフレームの発生を検知可能な不正検知装置及び不正検知方法を提供し、より安全な通信ネットワークシステムを実現することを目的とする。
【課題を解決するための手段】
【０００９】
本開示の一様態に係る不正検知装置は、タイムスロットに基づくタイムトリガー方式の通信ネットワークにおける不正検知装置であって、前記通信ネットワークには複数の通信装置が接続され、前記複数の通信装置の各々は、複数の前記タイムスロットで構成されるサイクルの繰り返しにおける所定番目のサイクルの所定のタイムスロット内でフレームを送受信し、前記不正検知装置は、前記フレームを受信するフレーム受信部と、前記フレームが受信された前記サイクルの繰り返し回数及び前記タイムスロットに基いて不正なフレームの発生を検知する不正検知部とを備え、前記不正検知部は、前記サイクルが１以上の所定の繰り返し回数繰り返される間に受信された前記フレームに関する統計量を、前記統計量の基準範囲を示すルールに照らして不正なフレームの発生を検知する。【００１０】
また、本開示の一様態に係る不正検知方法は、タイムスロットに基づくタイムトリガー方式の通信ネットワークにおける不正検知装置であって、前記通信ネットワークには複数の通信装置が接続され、前記複数の通信装置の各々は、複数の前記タイムスロットで構成されるサイクルの繰り返しにおける所定番目のサイクルの所定のタイムスロット内でフレームを送受信し、前記不正検知装置は、前記フレームを受信するフレーム受信部と、前記フレームが受信された前記サイクルの繰り返し回数及び前記タイムスロットに基いて不正なフレームの発生を検知する不正検知部とを備え、前記不正検知部は、前記サイクルが１以上の所定の繰り返し回数繰り返される間に受信された前記フレームに関する統計量を、前記統計量の基準範囲を示すルールに照らして不正なフレームの発生を検知する。【００１１】
なお、これらの包括的又は具体的な態様は、システム、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、装置、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【００１２】
本開示によれば、タイムトリガー方式を採用している通信ネットワークにおいても不正なフレームの発生の検知を可能とし、安全な車載ネットワークシステムを実現する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施の形態における車載ネットワークシステムの全体構成の例を示すブロック図である。
【図２】図２は、実施の形態におけるＦｌｅｘＲａｙのサイクルを説明するための図である。
【図３】図３は、実施の形態におけるＦｌｅｘＲａｙフレームのフォーマットを示す図である。
【図４】図４は、実施の形態におけるＥＣＵの機能的な構成の例を示すブロック図である。
【図５】図５は、実施の形態における不正検知ＥＣＵの機能的な構成の例を示すブロック図である。
【図６】図６は、実施の形態におけるスターカプラの構成例を示すブロック図である。
【図７】図７は、実施の形態における通信用設定パラメータの一例を示す図である。
【図８】図８は、実施の形態における正規ＩＤリストの一例を示す図である。
【図９】図９は、実施の形態における正規ＩＤリストに従った送受信スケジュールの一例を示す図である。
【図１０】図１０は、実施の形態における個別フレームルールの一例を示す図である。
【図１１】図１１は、実施の形態におけるサイクル別ルールの一例を示す図である。
【図１２】図１２は、実施の形態におけるフレーム種別ルールの一例を示す図である。
【図１３Ａ】図１３Ａは、実施の形態における、受信履歴に含まれるフレームの内容に応じた種別の受信値及び車両状態の一例を示す図である。
【図１３Ｂ】図１３Ｂは、実施の形態における、受信履歴に含まれる、サイクルごとの統計量の一例を示す図である。
【図１３Ｃ】図１３Ｃは、実施の形態における、受信履歴に含まれるフレーム内容に応じた種別の全サイクルにおける統計量の一例を示す図である。
【図１３Ｄ】図１３Ｄは、実施の形態における、受信履歴に含まれる動的フレームのＭｅｓｓａｇｅ  ＩＤごとの統計量の一例を示す図である。
【図１４】図１４は、実施の形態における、不正検知ＥＣＵの動作の手順例を示すフローチャートである。
【図１５】図１５は、実施の形態における、不正検知ＥＣＵで実行されるホワイトリストを用いたチェックの手順例を示すフローチャートである。
【図１６】図１６は、実施の形態における、不正検知ＥＣＵのフレーム不正検知処理の手順例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
本開示の一態様に係る不正検知装置は、タイムスロットに基づくタイムトリガー方式の通信ネットワークにおける不正検知装置であって、前記通信ネットワークには複数の通信装置が接続され、前記複数の通信装置の各々は、複数の前記タイムスロットで構成されるサイクルの繰り返しにおける所定番目のサイクルの所定のタイムスロット内でフレームを送受信し、前記不正検知装置は、前記フレームを受信するフレーム受信部と、前記フレームが受信された前記サイクルの繰り返し回数及び前記タイムスロットに基いて不正なフレームの発生を検知する不正検知部とを備え、前記不正検知部は、前記サイクルが１以上の所定の繰り返し回数繰り返される間に受信された前記フレームに関する統計量を、前記統計量の基準範囲を示すルールに照らして不正なフレームの発生を検知する。これにより、フレームの種類を示すＩＤだけでなく、タイムスロットで構成されるサイクルの繰り返し回数に基づくルールを用いることができる。したがって、例えば単一のフレームを見るだけでは検知が困難な不正なフレームであっても、サイクル単位の所定期間の統計量を監視することで検知できるものに対処することが可能になる。
【００１５】
また、前記フレームには、当該フレームのメタ情報に応じた種別である第一タイプがあり、前記統計量は、前記フレームの前記第一タイプごとの受信数に関する第一統計量を含み、前記不正検知部は、前記第一統計量を、前記第一統計量の基準範囲を示す前記ルールである第一ルールに照らして不正なフレームの発生を検知してもよい。これにより、サイクル単位での不正フレームの発生の検知が可能である。または、前記フレームには、当該フレームのペイロードの内容に応じた種別である第二タイプがあり、前記統計量は、前記サイクルが２以上の前記所定の繰り返し回数繰り返される間に受信された前記フレームの前記第二タイプごとの受信数、及び前記サイクルが２以上の前記所定の繰り返し回数繰り返される間に受信された前記第二タイプごとであって前記第一タイプごとの前記フレームの受信数の少なくとも一方に関する第二統計量を含み、前記不正検知部は、前記第二統計量を、前記第二統計量の基準範囲を示す前記ルールである第二ルールに照らして不正なフレームの発生を検知してもよい。これにより、フレームの内容に応じた種別での不正フレームの発生の検知が可能である。そして、前記フレームには、当該フレームのペイロードの内容に応じた種別である第二タイプがあり、前記統計量は、前記サイクルが２以上の前記所定の繰り返し回数繰り返される間に受信された前記フレームの前記第二タイプごとの受信数、及び前記サイクルが２以上の前記所定の繰り返し回数繰り返される間に受信された前記第二タイプごとであって前記第一タイプごとの前記フレームの受信数の少なくとも一方に関する第二統計量を含み、前記不正検知部は、前記第二統計量を、前記第二統計量の基準範囲を示す前記ルールである第二ルールに照らして不正なフレームの発生を検知してもよい。これにより、例えばサイクル単位での検知と、フレームの内容に応じた種別での発生源の特定に繋がる検知とで、状況に応じた使い分け、又は不正フレームの発生の確認のために両方を用いた精度の高い検知といった運用が可能になる。
【００１６】
また、前記不正検知部は、不正なフレームの発生を検知した場合、さらに、受信されたフレームごとに当該フレームが不正であるか否かを判断してもよい。これにより、従来と比べ高い通信速度でフレームを受信する不正検知装置の処理負荷を抑えつつ、不正フレームの発生の検知後には、より詳細な不正検知処理を実行し、車載ネットワークの安全性を高めることが可能となる。
【００１７】
また、前記不正検知部は、受信された前記フレームが受信されたタイムスロットが前記サイクルの繰り返しにおける所定のタイムスロットであり、かつ、当該フレームが送信された前記サイクルの繰り返し回数サイクルカウントから所定のオフセット値を減算し、所定の受信サイクルで割った余りが０となる関係性を満たさない場合に、当該フレームが不正であると判定してもよい。これにより、サイクルが繰り返される間にサイクル多重化を用いて送信されているフレームの中から同一内容のフレームを抽出し、送受信のスケジュールと照合することで当該フレームにおける不正なフレームの検知が可能となる。
【００１８】
また、前記サイクルを構成する前記複数のタイムスロットは、前記サイクルの繰り返しの各回において必要に応じてフレームが送受信される動的タイムスロットを含み、前記不正検知部は、前記動的タイムスロットで受信されたフレームである動的フレームに対し、前記動的フレームを受信する前に受信されたフレームから判定される車両状態、及び前記動的フレームに含まれる情報を用いて不正なフレームであるか否かを判断してもよい。これにより、動的タイムスロットでフレームが送受信される条件（ルール）を、走行状態等の車両状態により規定することが可能となる。そして、動的タイムスロットで動的フレームが受信された時の車両状態がこのルールに適合しない場合に、不正なフレームであると検知することができる。
【００１９】
また、前記不正検知部は、受信した前記動的フレームのスロットＩＤと所定の関係性を満たすサイクルカウントを含む前記動的フレームを受信したタイミングにおける、前記車両状態が所定の状態でない場合に、当該前記動的フレームを不正なフレームであると判断してもよい。これにより、車両状態に照らして送信されるべきでないタイミングで送信される動的フレームを不正なフレームとして検知することができる。
【００２０】
また、前記タイムトリガー方式は、ＦｌｅｘＲａｙ（登録商標）プロトコルによる通信方式であり、前記サイクルの繰り返し回数は前記ＦｌｅｘＲａｙプロトコルにおけるサイクルカウントであり、前記第一統計量は、フレームの受信数、Ｎｕｌｌフレームの受信数、Ｓｙｎｃフレームの受信数、Ｓｔａｒｔｕｐフレームの受信数、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１であるフレームの受信数、及びエラーが発生しているフレームの受信数のうち、１つ以上を含んでもよい。これにより、ＦｌｅｘＲａｙプロトコルによるサイクル多重化が用いられた状況においても不正なフレームを検知できるようになる。そして、フレームの属性等に関する統計量を監視することで、不正なフレームの注入を検知することが可能となる。
【００２１】
また、本開示の一態様に係る不正検知方法は、タイムスロットに基づくタイムトリガー方式の通信ネットワークにおける不正検知装置であって、前記通信ネットワークには複数の通信装置が接続され、前記複数の通信装置の各々は、複数の前記タイムスロットで構成されるサイクルの繰り返しにおける所定番目のサイクルの所定のタイムスロット内でフレームを送受信し、前記不正検知装置は、前記フレームを受信するフレーム受信部と、前記フレームが受信された前記サイクルの繰り返し回数及び前記タイムスロットに基いて不正なフレームの発生を検知する不正検知部とを備え、前記不正検知部は、前記サイクルが１以上の所定の繰り返し回数繰り返される間に受信された前記フレームに関する統計量を、前記統計量の基準範囲を示すルールに照らして不正なフレームの発生を検知する。これにより、フレームの種類を示すＩＤだけでなく、タイムスロットで構成されるサイクルの繰り返し回数に基づくルールを用いることができる。したがって、例えば単一のフレームを見るだけでは検知が困難な不正なフレームであっても、サイクル単位の所定期間の統計量を監視することで検知できるものに対処することが可能になる。
【００２２】
以下、実施の形態に係る不正検知装置について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも包括的又は具体的な例を示すものである。したがって、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ（工程）及びステップの順序等は一例であって、本開示に係る発明を限定するものではない。また、各図は模式図であり、必ずしも厳密に図示されたものではない。
【００２３】
（実施の形態）
［１．システムの構成］
ここでは、通信ネットワークシステムの例としての車載ネットワークシステム、及び当該車載ネットワークシステムに含まれる、本開示の実施の形態に係る不正検知装置の例としての不正検知ＥＣＵについて図面を参照しながら説明する。
【００２４】
［１．１  車載ネットワークシステムの全体構成］
図１は、本開示に係る車載ネットワークシステム１０の全体構成の例を示すブロック図である。車載ネットワークシステム１０は、ＦｌｅｘＲａｙプロトコルによる通信に用いられるバスであるバス１００ａ、１００ｂ、１００ｃ、１００ｄ及び１００ｅと、各バスに接続されるＥＣＵであるＥＣＵ２００ａ、２００ｂ、２００ｃ、２００ｄ及び不正検知ＥＣＵ２５０と、各ＥＣＵの制御対象であるステアリング２１０、ギア２２０、ブレーキ２３０及びカメラ２４０と、各バス間を接続するスターカプラ３００とから構成される。ＥＣＵ２００ａ〜２００ｄは、それぞれバス１００ａ〜１００ｅを通じてフレームの送受信を行うことで車両の制御を実現する。不正検知ＥＣＵ２５０は、不正なフレームの発生を検知するためにバス１００ａ〜１００ｅを観測する。本実施の形態において、ＥＣＵ２００ａ〜２００ｄは通信装置の例であり、不正検知ＥＣＵ２５０は不正検知装置の例である。また、バス１００ａ〜１００ｅのいずれにも同じ信号が流れるよう、スターカプラ３００が信号の整形を行い、各ＥＣＵは、バス１００ａ〜１００ｅを通じて同期をとっている。なお、本開示では、各バス及び当該バスに接続されるＥＣＵのことを指してブランチとも呼ぶ。
【００２５】
［１．２  ＦｌｅｘＲａｙサイクル］
ＦｌｅｘＲａｙ通信では、４つのセグメントからなるサイクル（Ｃｙｃｌｅ）と呼ばれる周期が繰り返される。ひとつのＦｌｅｘＲａｙネットワーク全体（クラスタともいう）に含まれる各ノードは、サイクルの長さ及び開始時刻を示すグローバルタイムと各々固有のローカルタイムとの差を測定し補正することで同期通信を実現している。
【００２６】
図２は、ＦｌｅｘＲａｙ通信のサイクルを示す図である。ＦｌｅｘＲａｙの通信はこのサイクルを繰り返して実行される。各ノードは、サイクルの繰り返し回数（サイクルカウント）を同期して保持している。サイクルカウントの値（図２における、ｎ＋０、ｎ＋１）は０から６３まで１ずつインクリメントし、６３の次のサイクルではいったんリセットされて再び０となる。
【００２７】
各サイクルは、静的セグメント（Ｓｔａｔｉｃ  ｓｅｇｍｅｎｔ）、動的セグメント（Ｄｙｎａｍｉｃ  ｓｅｇｍｅｎｔ）、シンボルウィンドウ（Ｓｙｍｂｏｌ  ｗｉｎｄｏｗ）、ネットワークアイドルタイム（ＮＩＴ）の４つのセグメントで構成される。各セグメントの時間長は予め設計されたパラメータによってクラスタで共通であるため、１サイクルの時間長もクラスタで共通である。なお、動的セグメント及びシンボルウィンドウはオプションである。各ノードは、静的セグメント及び動的セグメントにおいてフレームを送信する。静的セグメント及び動的セグメントは、タイムスロット又はスロットと呼ばれる、１つのフレームを送信することができる一定の時間を単位として構成される。
【００２８】
静的セグメントは複数のスロットから構成され、各サイクルは静的セグメントで開始する。静的セグメント内のスロットの個数及び各スロットの長さはクラスタ内で共通である。スロットには先頭から順に１ずつインクリメントする番号（スロット番号）が付されており、各スロット内で送信されるフレームには、フレームの識別子（Ｆｒａｍｅ  ＩＤ、以下ではフレームＩＤとも表記する）としてこのスロット番号が用いられる。静的セグメント内のスロットを静的スロット（又は静的タイムスロット）とも呼び、静的セグメント内で送信されるフレームを静的フレームとも呼ぶ。各静的スロットでは、予め定められたＥＣＵが、予め定められたサイクルでは常にフレームを送信する。静的フレームは、ペイロード長がクラスタ内で共通である。
【００２９】
動的セグメントはミニスロットと呼ばれるスロットから構成され、各サイクルで静的セグメントの次に位置する。ただし、上述のとおり必須ではない。ミニスロットにも静的セグメントのスロットと同じく先頭から順に１ずつインクリメントする番号（スロット番号）が付されている。各ＥＣＵには、フレームを送信するタイミング（ミニスロット）が予め定められているが、静的セグメントと異なり、予め定められたサイクルごとにフレームを送信する必要はない。動的セグメント内のスロットを動的スロット（又は動的タイムスロット）とも呼び、動的セグメント内で送信されるフレームを動的フレームとも呼ぶ。動的フレームのペイロード長は、０〜２５４の任意の値をとることができる。つまり、動的スロットの長さは可変である。
【００３０】
シンボルウィンドウは、シンボルと呼ばれる信号の送受信を行う時間帯である。
【００３１】
ネットワークアイドルタイムは、通信を行わない時間帯であり、各サイクルの最後に必ず設けられる。ネットワークアイドルタイムでは、各ＥＣＵはデータの送信を行わずに同期処理等を行い、ネットワークは文字どおりアイドル状態である。
【００３２】
なお、ＦｌｅｘＲａｙプロトコルでは、送信先又は送信元を示す識別子は存在しない。送信ノードは、上述のように予め定められた送信タイミング（スロット）に、予め定められた内容のフレームをバスに送信する。そして受信ノードは、予め決められた受信タイミング（スロット）にのみバスからフレームを受信する。また、静的セグメント又は動的セグメントの同一の番号のスロットであっても、サイクルによって異なる内容のフレームの通信を実現する「サイクルマルチプレキシング」と呼ばれる方法も用いられる。
【００３３】
また、ＦｌｅｘＲａｙプロトコルでは、ＣＡＮのように全てのノードが１つのバスに接続されるバス型のネットワークトポロジだけでなく、スターカプラを介したスター型、バス型とスター型とのハイブリッド型のネットワークトポロジで通信ネットワークを設計することが可能である。
【００３４】
［１．３  フレームフォーマット］
図３は、ＦｌｅｘＲａｙプロトコルのフレームフォーマットを示す図である。このフォーマットは、静的フレーム及び動的フレームで共通である。フレームは、ヘッダセグメント（Ｈｅａｄｅｒ  ｓｅｇｍｅｎｔ）、ペイロードセグメント（Ｐａｙｌｏａｄ  ｓｅｇｍｅｎｔ）、トレーラーセグメント（Ｔｒａｉｌｅｒ  ｓｅｇｍｅｎｔ）の３つのセグメントから構成される。なお、本開示ではそれぞれヘッダ、ペイロード、トレーラーとも呼ぶことがある。
【００３５】
ヘッダセグメントはＲｅｓｅｒｖｅｄ  ｂｉｔから始まり、続いてフレームの属性（種別）に関するメタ情報としての、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒ、Ｎｕｌｌ  ｆｒａｍｅ  ｉｎｄｉｃａｔｏｒ、Ｓｙｎｃ  ｆｒａｍｅ  ｉｎｄｉｃａｔｏｒ、Ｓｔａｒｔｕｐ  ｆｒａｍｅ  ｉｎｄｉｃａｔｏｒがそれぞれ１ビットずつ含まれる。そしてさらに１１ビットのＦｒａｍｅ  ＩＤ、７ビットのＰａｙｌｏａｄ  ｌｅｎｇｔｈ、１１ビットのＨｅａｄｅｒ  ＣＲＣが続き、最後の６ビットのＣｙｃｌｅ  ｃｏｕｎｔまでで構成される。
【００３６】
Ｆｒａｍｅ  ＩＤに用いられているのは上述のスロット番号であって、スロットＩＤとも呼ばれ、静的セグメント又は動的セグメントにおけるフレームの送信タイミング及びフレームの内容に応じた種類を識別するために用いられる。
【００３７】
Ｐａｙｌｏａｄ  ｌｅｎｇｔｈは当該フレームのペイロードの長さを示し、最大値は１２７である。ペイロードセグメントにはＰａｙｌｏａｄ  ｌｅｎｇｔｈの値に２をかけたバイト数のデータが格納される。
【００３８】
Ｈｅａｄｅｒ  ＣＲＣは、Ｓｙｎｃ  ｆｒａｍｅ  ｉｎｄｉｃａｔｏｒからＰａｙｌｏａｄ  ｌｅｎｇｔｈまでの値から計算されるＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）である。
【００３９】
Ｃｙｃｌｅ  ｃｏｕｎｔには、クラスタにおける現在のサイクルの繰り返し回数を示す値（０〜６３）が格納される。
【００４０】
ペイロードセグメントには、フレームの正味のデータが含まれ、最大で２５４バイトである。
【００４１】
トレーラーセグメントには、ヘッダ及びペイロードの全体を含んだ値から計算されるＣＲＣが格納されている。
【００４２】
［１．４  ＥＣＵ（不正検知ＥＣＵを除く）の構成］
図４は、ＥＣＵ２００ａの機能的な構成の例を示すブロック図である。なお、ＥＣＵ２００ｂ、ＥＣＵ２００ｃ及びＥＣＵ２００ｄもＥＣＵ２００ａと共通の構成であってよく、説明を省略する。
【００４３】
ＥＣＵ２００ａは、フレーム送受信部２０１と、フレーム解釈部２０２と、外部機器制御部２０３と、フレーム生成部２０４と、通信用設定パラメータ保持部２０５とを備える。なお、ＥＣＵ２００ａは、例えばプロセッサ及びメモリを含むマイクロコントローラを備え、ここに挙げた構成要素は、メモリに記憶される１個又は複数個のプログラムをプロセッサが実行することで実現される機能的な構成要素である。ＥＣＵ２００ｂ、ＥＣＵ２００ｃ及びＥＣＵ２００ｄについても同様である。
【００４４】
フレーム送受信部２０１は、バス１００ａから受信した物理信号をデジタル信号に変換してフレームのデータを取得する（フレームの受信）。フレーム送受信部２０１は通信用設定パラメータ保持部２０５に保持される、通信用設定パラメータを参照しながら、クラスタである車載ネットワークシステム１０に含まれる他のＥＣＵと同期することで、他のＥＣＵが送信したフレームを正しく受信することができる。また、フレーム送受信部２０１は、フレーム生成部２０４からの送信フレーム要求に従って、フレームを物理信号に変換し、予め定められたタイミング（スロット）でこの物理信号をバス１００ａに送信する（フレームの送信）。
【００４５】
フレーム解釈部２０２は、フレーム送受信部２０１から通知される受信したフレームのペイロードを解釈し、ペイロードの内容に応じてＥＣＵ２００ａに接続されるステアリング２１０の制御を実行させるための通知を外部機器制御部２０３へ出す。この通知によって、例えば、他のＥＣＵから通知される車両の速度の情報に基いてフレーム解釈部２０２が判断した走行状態に応じたステアリングのアシスト制御が実現される。また例えば、自動駐車モード時に、図示しない自動駐車ＥＣＵから受信するステアリング操作指示信号に基づくステアリングの自動操舵が実現される。
【００４６】
外部機器制御部２０３は、ＥＣＵ２００ａに接続されるステアリング２１０の制御を行う。また、外部機器制御部２０３は、ステアリング２１０の状態を監視し、その状態を他のＥＣＵに通知するためのフレーム送信をフレーム生成部に要求する。ステアリング２１０の状態とは、例えば、ステアリング２１０の転舵角（ステアリング角度）である。
【００４７】
フレーム生成部２０４は、外部機器制御部２０３からの要求に基いてフレームを生成し、フレーム送受信部２０１へ当該フレームの送信を要求する。
【００４８】
通信用設定パラメータ保持部２０５は、バス１００ａから受信した物理信号をデジタル信号に正しく変換するためのパラメータが保持されている。このパラメータは、車載ネットワークシステム１０内で共通である。したがって、他のＥＣＵでも同じものが保持される。通信用設定パラメータの詳細は、図７に示す一例を用いて後述する。
【００４９】
［１．５  不正検知ＥＣＵの構成］
図５は、不正検知ＥＣＵ２５０の機能的な構成の例を示すブロック図である。
【００５０】
不正検知ＥＣＵ２５０は、フレーム送受信部２０１、不正検知部２５２、フレーム生成部２０４、通信用設定パラメータ保持部２０５、正規ＩＤリスト保持部２５３、個別フレームルール保持部２５４、サイクル別ルール保持部２５５、フレーム種別ルール保持部２５６、及び受信履歴保持部２５７を備える。なお、ＥＣＵ２００ａと同様の機能の構成要素には、同じ番号を付与して説明を省略する。不正検知ＥＣＵ２５０もまた、例えばプロセッサ及びメモリを含むマイクロコントローラを備え、ここに挙げた構成要素は、メモリに記憶される１個又は複数個のプログラムをプロセッサが実行することで実現される機能的な構成要素である。
【００５１】
不正検知部２５２は、フレーム送受信部２０１がバス１００ｅから受信するフレームを１つ以上用いて不正検知処理を行う。不正検知部２５２が行う不正検知処理には、個別フレーム不正検知処理、サイクル別不正検知処理、フレーム種別不正検知処理の三種類がある。
【００５２】
個別フレーム不正検知処理では、不正検知部２５２は、受信された個々のフレームが、不正なフレームであるか否かを判断する。この判断を実行するために、まず不正検知部２５２は、正規ＩＤリスト保持部２５３に格納されている正規ＩＤリストを参照して、受信したフレームのフレームＩＤが正しいかを確認する。受信したフレームのフレームＩＤが正しい場合、不正検知部２５２は、個別フレームルール保持部２５４に格納されているフレームＩＤごとのルールと、受信履歴保持部２５７に保持されている受信履歴とをさらに参照し、ペイロードの内容がこのルールから外れるフレームを不正であると判断する。受信したフレームが不正なフレームであると判断した場合、不正検知部２５２はさらに、不正なフレームが送信されていることを他のＥＣＵに通知するためのフレームの送信をフレーム生成部２０４に要求する。
【００５３】
サイクル別不正検知処理では、フレーム送受信部２０１から新たなサイクルの開始を通知された不正検知部２５２は、直前のサイクルにおける不正なフレームの発生の有無を判断することで不正なフレームの発生を検知する。この判断を実行するために、不正検知部２５２は、サイクル別ルール保持部２５５に格納されているサイクル別ルールと、直前のサイクルで受信されたフレームに関する統計情報とを用いる。この統計情報は、受信履歴保持部２５７に格納されている受信履歴に基づく。サイクル別不正検知処理の詳細は後述する。
【００５４】
フレーム種別不正検知処理では、不正検知部２５２は、例えば現在のサイクルカウントが０である場合に、直前の６４サイクルにおける不正なフレームの発生の有無を判断することで不正なフレームの発生を検知する。この判断を実行するために、不正検知部２５２は、フレーム種別ルール保持部２５６に格納されているフレーム種別ルールと、直前のサイクルカウント０から６３までで受信されたフレームに関する統計情報とを用いる。この統計情報は、受信履歴保持部２５７に格納されている受信履歴に基づく。サイクル別不正検知処理の詳細は後述する。
【００５５】
サイクル別不正検知処理又はフレーム種別不正検知処理によって不正なフレームの発生を検知した場合、不正検知部２５２はさらに、不正なフレームの発生を他のＥＣＵに通知するためのフレーム送信をフレーム生成部２０４に要求する。また、フレーム種別不正検知処理後は、受信履歴保持部２５７に格納されている直前のサイクルカウント０から６３で受信されたフレームに関する統計情報(図１３Ｃの例を参照して後述)をリセットする。
【００５６】
正規ＩＤリスト保持部２５３は、各スロットでＥＣＵが送信するフレームに関する情報のリストを格納している。正規ＩＤリスト保持部２５３が保持する正規ＩＤリストの一例を図８に示し、詳細は後述する。
【００５７】
個別フレームルール保持部２５４は、不正検知部２５２が、フレームを受信したときに当該フレームが不正であるか否かの判定に用いるルールを格納している。個別フレームルール保持部２５４に格納される個別フレームルールの一例を図１０に示し、詳細は後述する。
【００５８】
サイクル別ルール保持部２５５は、不正検知部２５２が、サイクル単位で、不正なフレームの発生の有無を判断するためのルールを格納している。サイクル別ルール保持部２５５に格納されるサイクル別ルールの一例を図１１に示し、詳細は後述する。
【００５９】
フレーム種別ルール保持部２５６は、不正検知部２５２が、サイクルカウントが０〜６３の一連のサイクルにおいて受信されたフレームに関する統計量を用いることで、不正なフレームの発生の有無を判断するためのルールを格納している。フレーム種別ルール保持部２５６に格納されるフレーム種別ルールの一例を図１２に示し、詳細は後述する。
【００６０】
受信履歴保持部２５７は、フレーム送受信部２０１が受信したフレームに関する情報、例えば、ペイロードが示す値、フレームの属性等のメタ情報、フレームの受信数を格納している。受信履歴保持部２５７に格納される受信履歴の一例を図１３Ａ、図１３Ｂ及び図１３Ｃに示し、詳細は後述する。
【００６１】
なお、不正検知ＥＣＵ２５０のフレーム送受信部２０１は、本実施の形態におけるフレーム受信部の例である。
【００６２】
［１．６  スターカプラの構成図］
図６は、スターカプラ３００の構成例を示すブロック図である。スターカプラ３００は、トランシーバ部３０１ａ、３０１ｂ、３０１ｃ、３０１ｄ及び３０１ｅと、ルーティング部３０２とを備える。
【００６３】
トランシーバ部３０１ａはバス１００ａに接続され、バス１００ａから受信した物理信号をデジタル信号に変換し、このデジタル信号をルーティング部３０２へ通知する。また、ルーティング部３０２から通知されたデジタル信号を物理信号へ変換し、この物理信号をバス１００ａへ送信する。同様に、トランシーバ部３０１ｂはバス１００ｂに、トランシーバ部３０１ｃはバス１００ｃに、トランシーバ部３０１ｄはバス１００ｄに接続される。トランシーバ部３０１ｂ〜３０１ｅの各々は、接続されるバスから受信する物理信号に対してトランシーバ部３０１ａと同様に機能する。
【００６４】
ルーティング部３０２は、トランシーバ部３０１ａから通知されたデジタル信号を、トランシーバ部３０１ｂ、３０１ｃ、３０１ｄ及び３０１ｅへルーティングする。同様に、トランシーバ部３０１ｂから通知されたデジタル信号を、ルーティング部３０２は、トランシーバ部３０１ｂを除く各トランシーバ部へルーティングする。また、ルーティング部３０２は、複数のトランシーバ部からデジタル信号を受信した場合は、最初に受信したデジタル信号を通知したトランシーバ部からの信号を他のトランシーバ部へルーティングする。
【００６５】
［１．７  通信用設定パラメータ］
図７は、通信用設定パラメータ保持部２０５に格納されている通信用設定パラメータの一例を示している。通信用設定パラメータとしては、データ転送の速度が１０Ｍｂｐｓであることと、静的セグメントのスロットＩＤ（すなわち各スロットで送受信されるフレームのフレームＩＤ）が１〜５０であること、動的セグメントのスロットＩＤ（同じく、すなわちフレームＩＤ）が５１〜１００であることを示している。また、静的フレームのペイロード長が８（つまり１６バイト）であることも示されている。クラスタでは、これらのパラメータの値は、ＥＣＵ全てに共有されており、これらのパラメータの値に基づいてＦｌｅｘＲａｙフレームの送受信が実現される。なお、図７に示す通信用設定パラメータの値は一例に過ぎず、別の値であっても構わない。また、上述した通信用設定パラメータも一例に過ぎず、図７に記載のないパラメータ（例えば、各セグメントの長さ、スロットの長さ等）が含まれていてもよいし、逆に、図７に記載されているパラメータの全てが必須というわけではない。
【００６６】
［１．８  正規ＩＤリスト］
図８は、不正検知ＥＣＵ２５０が備える正規ＩＤリスト保持部２５３に格納される正規ＩＤリストの一例を示している。
【００６７】
図８に示す例では、各スロットのスロットＩＤ、Ｃｙｃｌｅ  ｏｆｆｓｅｔ、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎ、フレーム名、及びフレームに含まれるペイロード情報が保持されている。Ｃｙｃｌｅ  ｏｆｆｓｅｔ及びＣｙｃｌｅ  ｒｅｃｅｐｔｉｏｎは、サイクル多重化（サイクルマルチプレキシング）と呼ばれる、同じスロットＩＤであってもサイクルによって異なる内容（種類）のデータを含むフレームを送受信する方法が用いられるときに対象のフレームを抽出するために必要な情報である。例えばスロットＩＤが９９のフレームとしてはＤ、Ｅ、Ｆ、Ｇの４つのフレーム名が存在し、それぞれカメラ情報１、カメラ情報２、カメラ情報３、カメラ情報４の異なる内容の情報をペイロードに含み、異なるサイクルにおいて送受信される。
【００６８】
例えばカメラ情報１では、Ｃｙｃｌｅ  ｏｆｆｓｅｔが０で、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが４である。これは、カメラ情報１のデータをペイロードに含むフレームであるフレームＤの送信は、サイクルカウントが０のサイクルからスタートして４サイクルごとに実行されることを意味する。つまりフレームＤは、サイクルカウントが、０、４、８、１２、１６、・・・、５２、５６、６０のサイクル内の、スロットＩＤが９９のスロットで送信される。同様に、カメラ情報２を含むフレームＥは、サイクルカウントが１、５、９、・・・５３、５７、６１のサイクル内の、スロットＩＤが９９のスロットで送信される。カメラ情報３を含むフレームＦは、サイクルカウントが２、６、１０、・・・、５４、５８、６２のサイクル内の、スロットＩＤが９９のスロットで送信され、カメラ情報４を含むフレームＧは、サイクルカウントが３、７、１１、・・・、５５、５９、６３のサイクル内の、スロットＩＤが９９のスロットで送信される。上記のようにして内容の異なるフレームを異なるサイクル内の同一スロットＩＤのスロットで送信するのが、サイクル多重化（サイクルマルチプレキシング）である。
【００６９】
図８に例示される正規ＩＤリストの中身についてさらに具体的に説明する。
【００７０】
正規ＩＤリストの１行目は、スロットＩＤが１のスロットでは、Ｃｙｃｌｅ  ｏｆｆｓｅｔが０、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが１（つまり全てのサイクルで同一内容のデータを含むフレームが送信される）のスケジュールで、フレーム名がＡのフレームが送信されること、及びフレームＡのペイロードの内容、つまりペイロードが示す情報は、速度に関する情報であることを示している。正規ＩＤリストの２行目は、スロットＩＤが２のスロットではフレームが送信されないことを示している。また、スロットＩＤが３のスロットでは、Ｃｙｃｌｅ  ｏｆｆｓｅｔが０、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが２（つまりサイクルカウントが偶数のサイクルでのみ送信される）のスケジュールで、フレーム名がＢのフレームが送信されること、及びフレームＢのペイロードが示す情報はステアリング角度であることを示している。さらにこの正規ＩＤリストによれば、スロットＩＤが９８のスロットでは、Ｃｙｃｌｅ  ｏｆｆｓｅｔが１、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが２（つまりサイクルカウントが奇数のときのみ送信される）のスケジュールでフレームが送信される。このフレームのフレーム名はＣであり、フレームＣのペイロードが示す情報はギア状態（シフトレバー又はセレクターのポジション）である。また、スロットＩＤが９９のスロットでは、Ｃｙｃｌｅ  ｏｆｆｓｅｔが０、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが４のスケジュールでフレームが送信される。このフレームのフレーム名はＤであり、フレームＤのペイロードは、カメラ情報１と呼ばれる所定の情報を示す。また、スロットＩＤが９９のスロットでは、Ｃｙｃｌｅ  ｏｆｆｓｅｔが１、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが４のスケジュールでもフレームが送信される。このフレームのフレーム名はＥであり、フレームＥのペイロードは、カメラ情報２と呼ばれる所定の情報を示す。また、スロットＩＤが９９のスロットでは、Ｃｙｃｌｅ  ｏｆｆｓｅｔが２、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが４のスケジュールでもフレームが送信される。このフレームのフレーム名はＦであり、フレームＦのペイロードは、カメラ情報３と呼ばれる所定の情報を示す。また、スロットＩＤが９９のスロットでは、Ｃｙｃｌｅ  ｏｆｆｓｅｔが３、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが４のスケジュールでもフレームが送信される。このフレームのフレーム名はＧであり、フレームＧのペイロードは、カメラ情報４と呼ばれる所定の情報を示す。スロットＩＤが１００のスロットでは、Ｃｙｃｌｅ  ｏｆｆｓｅｔが０、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎが４で、フレーム名がＨのフレームが送信される。フレームＨのペイロードが示す情報はドア状態である。なお、図７の通信用設定パラメータに含まれるＩＤによれば、フレームＡ及びＢは静的セグメント内で送信される静的フレームであり、フレームＣからフレームＨは動的セグメント内で送信される動的フレームである。
【００７１】
図９に、図８の正規ＩＤリストの例による車載ネットワークシステム１０における、サイクル０から６３までのフレーム送受信スケジュールを示している。左右に並ぶ欄は、スロットＩＤを示しており、上下に並ぶ行は、繰り返されるサイクルの何番目であるか（繰り返し回数）を示している。スロットＩＤとサイクルの繰り返し回数とで定まるセルには、そのスロット（タイミング）で送信されるフレームのフレーム名が記載されている。なお、図９では、フレームＣからフレームＨが所定のサイクルで送信されるように見えるが、これらのフレームは動的フレームであって、フレーム名を含むセルが示すタイミングでも送信されない場合もある。
【００７２】
なお、正規ＩＤリストは上記のようにフレームの送受信の予め定められたスケジュールを示す。不正検知部２５２は、この正規ＩＤリストをホワイトリストとして利用して、不正検知ＥＣＵ２５０が受信したフレームがこのスケジュールに従うものであるか否かの判断をする。不正検知部２５２による、このホワイトリストを用いた判断については後述する。
【００７３】
［１．９  個別フレームルール］
図１０は、不正検知ＥＣＵ２５０が備える個別フレームルール保持部２５４に格納される個別フレームルールの一例を示す図である。個別フレームルールは、後述する受信履歴と合わせて、不正検知部２５２が行う上記の三種類の不正検知処理のうち、個別フレーム不正検知処理に用いられる。図１０に示す例では、個別フレームルールは、フレーム名で特定されるフレームごとに設定されているルールを各行に示すテーブルとして個別フレームルール保持部２５４に格納されている。動的フレームに関しては、さらにＭｅｓｓａｇｅ  ＩＤごとに受信ルールが設定されている。Ｍｅｓｓａｇｅ  ＩＤは動的フレームのヘッダセグメントに含まれるＰｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のときに有効となり、ペイロードの上位２バイトがＭｅｓｓａｇｅ  ＩＤに用いられる。
【００７４】
この例における個別フレームルールでは、フレームＡに関しては、静的フレームであるためＭｅｓｓａｇｅ  ＩＤは存在せず、ペイロード長は８で固定である。受信ルールとしては、今回受信したフレームＡのペイロードが示す速度と前回受信したフレームＡが示す速度との差分が０．５ｋｍ／ｈ以上である場合に不正なフレームであると判断される。フレームＢに関しては、静的フレームのためＭｅｓｓａｇｅ  ＩＤは存在せず、ペイロード長は８で固定である。受信ルールとしては、今回受信したフレームＢのペイロードが示すステアリング角度と前回受信したフレームＢが示すステアリング角度との差分が３０度以上である場合に不正なフレームであると判断される。フレームＣに関しては、動的フレームであるがＭｅｓｓａｇｅ  ＩＤは存在せず、ペイロード長は１６である。受信ルールとしては、車両が停車中又は走行中の状態にあれば（つまりいつでも）受信する可能性があることを示している。フレームＤに関しては、動的フレームであるがＭｅｓｓａｇｅ  ＩＤは存在せず、ペイロード長は３２である。受信ルールとしては、車両が停車中の状態にあれば受信する可能性がある、つまり走行中に受信した場合に不正なフレームであると判断される。フレームＥに関しては、動的フレームであるがＭｅｓｓａｇｅ  ＩＤは存在せず、ペイロード長は３２である。受信ルールとしては、車両が停車中又は走行中のいずれの状態にあるときも受信する可能性があることを示している。フレームＦに関しては、３つのＭｅｓｓａｇｅ  ＩＤが存在し、０ｘ０００１と０ｘ０００２と０ｘ０００４とのそれぞれに個別の受信ルールが定められている。Ｍｅｓｓａｇｅ  ＩＤが０ｘ０００１のフレームＦはペイロード長が３２である。受信ルールとしては、車両が停車中の状態にあるときに受信することが正常であることを示している。Ｍｅｓｓａｇｅ  ＩＤが０ｘ０００２のフレームＦはペイロード長が３２である。受信ルールとしては、車両が停車中又は走行中のいずれの状態にあるときも受信する可能性があることを示している。Ｍｅｓｓａｇｅ  ＩＤが０ｘ０００４のフレームＦはペイロード長が３２である。受信ルールとしては、車両が走行中の状態にあるときに受信することが正常であることを示している。フレームＧに関しては、動的フレームであるがＭｅｓｓａｇｅ  ＩＤは存在せず、ペイロード長は３２である。受信ルールとしては、車両が停車中又は走行中のいずれの状態にあるときも受信する可能性があることを示している。フレームＨに関しては、動的フレームであるがＭｅｓｓａｇｅ  ＩＤは存在せず、ペイロード長は２である。受信ルールとしては、車両が停車中の状態にあるときに受信することが正常であることを示している。
【００７５】
なお、不正検知ＥＣＵ２５０は、受信したフレームのペイロード長が個別フレームルールに示されるペイロード長に照らして正しいかに基づいて、当該フレームが不正であるか否かを判断してもよい。
【００７６】
［１．１０  サイクル別ルール］
図１１は、不正検知ＥＣＵ２５０が備えるサイクル別ルール保持部２５５に格納されるサイクル別ルールの一例である。サイクル別ルールは、不正検知部２５２が行う上記の三種類の不正検知処理のうち、サイクル別不正検知処理に用いられる。図１１に示す例では、サイクル別ルールは、サイクルごとに設定されているルールを各行に示すテーブルとしてサイクル別ルール保持部２５５に格納されている。このテーブル内では、各フレームはサイクルカウント（図３のＨｅａｄｅｒ  ｓｅｇｍｅｎｔ末尾を参照）で特定されている。
【００７７】
図１１の例におけるサイクル別ルールは、各サイクルにおいて受信されるフレームの、メタ情報に応じた種別ごとの受信数に関するルールである。なお、このメタ情報に応じた種別は本実施の形態における第一タイプの例であり、各フレームは複数の第一タイプに該当する場合もあるし、第一タイプのいずれにも該当しない場合もある。
【００７８】
例えば、車載ネットワークシステム１０においてサイクルカウントが０の通信が実行される間に受信されるフレームでは、動的フレーム数は２０より少なく、Ｓｔａｒｔｕｐ  ｆｒａｍｅは２個より少なく、Ｓｙｎｃ  ｆｒａｍｅは２個より少なく、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１であるフレームは５個より少なく、Ｎｕｌｌ  ｆｒａｍｅは４個より少なく、Ｅｒｒｏｒとなったフレームは５個より少ないというのが、正常時に送受信されるフレームの統計量の基準範囲である。サイクルカウントが１から、６３までの各サイクルについても、同様のルールが設定されている。このようなフレームの統計量の基準範囲の値の決定は、例えば通信用設定パラメータ（図７参照）、正規ＩＤリスト（図８参照）又はこの正規ＩＤリストに基づく送信スケジュール（図９参照）、及びこの通信用設定パラメータ及び送信スケジュールを使った通信ネットワークの試験運用での実績に基づいて行われてもよい。各統計量の基準範囲の上限値は、各サイクルで送信されるフレームに不正なフレームが含まれている可能性がある程度以上であるか否かに基づいて決定される。
【００７９】
不正検知ＥＣＵ２５０では、例えばサイクルカウントが０のサイクルでフレームを受信している間、不正検知部２５２が、各フレームのＨｅａｄｅｒ  ｓｅｇｍｅｎｔ又はＴｒａｉｌｅｒ  ｓｅｇｍｅｎｔに含まれる値に基づいて、各属性を持つフレームの受信数の統計量を取得する。また、不正検知部２５２は、不正検知ＥＣＵ２５０の受信バッファに保持される各フレームでのエラーの有無に関する情報を参照して、Ｅｒｒｏｒが生じたフレームの統計量を取得する。これらの第一タイプ別のフレームの受信数の統計量は、本実施の形態における第一統計量の例である。そして当該サイクルが終わってから不正検知部２５２は、この第一統計量を上記の各基準範囲に照らし、基準範囲から外れるものがある場合に、当該サイクルにおける不正なフレームの発生を検知する。以降、サイクルカウントの１から６３まで、各サイクルでの通信が終わると、第一統計量を、該当するサイクル別ルールに含まれる基準範囲に照らして同様の判断を行う。このように用いられるサイクル別ルールは、本実施の形態における第一ルールの例である。
【００８０】
このような、フレームのメタ情報に応じた種別ごとの、サイクル単位での統計量に基づく不正検知の手法では、タイムトリガー方式を採用している通信ネットワークにおいても不正なフレームの発生の検知が可能である。ただしこの手法は、不正なフレーム又はその原因（送信ノード等）を正確に特定できるものではない。しかしながら、各フレームのペイロードの値における異常の有無に基づく不正検知の手法よりも少ない処理負荷で実行可能である。したがって、例えば平常時はこの手法によってサイクル別ルールに照らして不正なフレームの発生の有無を判断することで、通信ネットワークにおける不正検知に必要なリソースが抑えられてもよい。そして、この手法で不正なフレームの発生が検知された場合に、不正なフレームを送信しているノード又は当該ノードを含むブランチを特定するために各フレームのペイロードの値の詳細なチェックが行われてもよい。また、本実施の形態の例のように車載ネットワークであれば、不正フレームによる運転操作系への介入等による重大な危機の回避策として、この手法で不正なフレームの発生が検知された時点で車両の情報処理を伴う先進的機能が制限されてもよい。
【００８１】
なお、図１１を参照しての上記の説明では、全てのサイクルに個別のルールが規定されている例を示したが、１つのサイクル別ルールが複数のサイクルに対して規定されてもよい。これにより、サイクル別ルールの保持に必要なメモリを削減することができる。例えば、サイクルカウントによらない複数のサイクルに共通のサイクル別ルールであってもよい。また例えば、Ｃｙｃｌｅ  ｏｆｆｓｅｔとＣｙｃｌｅ  ｒｅｃｅｐｔｉｏｎとの組ごとに１つのルールが規定されてもよい。また例えば、２以上の連続するサイクルに対して１つのルールが規定されてもよい。例えば１つめのルールはサイクルカウント０のサイクルからサイクルカウント１のサイクルを通して受信されるフレームの統計量の基準範囲を示すルールであり、以降、２つのサイクルごとに１つのルールが規定されてもよい。この場合には、２サイクルの実行が終わるたびにサイクル別ルールを用いての不正フレームの発生についての判断が１回実行される。したがって、不正検知処理の処理負荷も抑えることができる。
【００８２】
また、サイクル別ルールは、図１１に例示した第一タイプ全ての基準範囲が必須ではなく、これらの一部の第一タイプについてのみの基準範囲を含むものでもよい。また、複数個のサイクル別ルール間で基準範囲が設定されている項目が異なっていてもよい。
【００８３】
［１．１１  フレーム種別ルール］
図１２は、不正検知ＥＣＵ２５０が備えるフレーム種別ルール保持部２５６に格納されるフレーム種別ルールの一例である。フレーム種別ルールは、不正検知部２５２が行う上記の三種類の不正検知処理のうち、フレーム種別不正検知処理に用いられる。図１２に示す例では、フレーム種別ルールは、フレーム名で特定されるフレームごとに設定されているルールを各行に示すテーブルとしてフレーム種別ルール保持部２５６に格納されている。
【００８４】
図１２の例におけるフレーム種別ルールは、車載ネットワークシステム１０においてサイクルカウント０から６３までの６４サイクルの通信が実行される間に受信されるフレームの、図８を用いて説明したペイロードの内容に応じた種別ごとの受信数（「受信数」の欄）、及び図８を用いて説明したペイロードの内容に応じた種別ごとであって第一タイプごとの受信数（「Ｓｔａｒｔｕｐ  ｆｒａｍｅ」の欄から「Ｅｒｒｏｒ」の欄まで）に関するルールである。なお、このペイロードの内容に応じた種別は本実施の形態における第二タイプの例である。
【００８５】
例えば、フレームＡに関しては、サイクルカウント０から６３までの６４サイクルの間の受信数は６４個であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅは３個より少なく、Ｓｙｎｃ  ｆｒａｍｅは６４個、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１であるフレームは０個、Ｎｕｌｌ  ｆｒａｍｅは３個より少なく、Ｅｒｒｏｒとなったフレームは３個より少ないというのが、正常時のフレームの統計量の基準範囲である。フレームＢからフレームＨについても、同様のルールが設定されている。このようなフレームの統計量の基準範囲の値の決定は、フレーム別ルールの場合と同様に、例えば通信用設定パラメータ（図７参照）、正規ＩＤリスト（図８参照）又はこの正規ＩＤリストに基づく送信スケジュール（図９参照）、及びこの通信用設定パラメータ及び送信スケジュールを使った通信ネットワークの試験運用での実績に基づいて行われてもよい。各統計量の基準範囲の上限値は、各サイクルで送信されるフレームに不正なフレームが含まれている可能性がある程度以上であるか否かに基づいて決定される。
【００８６】
不正検知ＥＣＵ２５０では、サイクルカウント０から６３までの６４サイクルの通信でフレームを受信している間、不正検知部２５２が、各フレームのＨｅａｄｅｒ  ｓｅｇｍｅｎｔ若しくはＴｒａｉｌｅｒ  ｓｅｇｍｅｎｔに含まれる値、又は受信バッファに保持される各フレームでのエラーの有無に関する情報に基づいて、このような第二タイプ別のフレームの受信数、及び第二タイプごとに第一タイプ別のフレームの受信数の統計量を取得する。これらの第二タイプに基づく統計量は、本実施の形態における第二統計量の例である。そしてサイクルカウント０から始めて６３までのサイクルが終わった時点で不正検知部２５２は、この第二統計量を上記の各基準範囲に照らし、基準範囲から外れるものがある場合に、当該フレームに関して不正なフレームの発生を検知する。以降、サイクルカウントが０から６３までの６４サイクルでの通信が終わると、第二統計量を、該当するフレーム種別ルールに含まれる基準範囲に照らして同様の判断を行う。このように用いられるフレーム種別ルールは、本実施の形態における第二ルールの例である。
【００８７】
このような、フレームのペイロードの内容に応じた種別ごとの、多サイクルにわたって取得された統計量に基づく不正検知の手法では、タイムトリガー方式を採用している通信ネットワークにおいても不正なフレームの発生の検知が可能である。ただしこの手法は、不正なフレーム又はその原因（送信ノード等）を正確に特定できるものではない。しかしながら、各フレームのペイロードの値の異常の有無に基づく不正検知の手法よりも少ない処理負荷で実行可能である。したがって、例えば平常時はこの手法によってサイクル別ルールに照らして不正なフレームの発生の有無を判断することで、通信ネットワークにおける不正検知に必要なリソースが抑えられてもよい。そして、この手法で不正なフレームの発生が検知された場合に、不正なフレームを送信しているノード又は当該ノードを含むブランチを特定するために各フレームのペイロードの値の詳細なチェックが行われてもよい。また、本実施の形態の例のように車載ネットワークであれば、不正フレームによる運転操作系への介入等による重大な危機の回避策として、この手法で不正なフレームの発生が検知された時点で車両の情報処理を伴う先進的機能が制限されてもよい。
【００８８】
なお、図１２を参照しての上記の説明では、フレームの種別ひとつひとつに個別のルールが規定されている例を示したが、フレーム種別ルールは複数のフレーム種別に対して規定されてもよい。例えば所定の関連性のある機能に関する複数のフレーム種別に共通の１つのルールが規定されてもよい。所定の関連性のある機能に関するフレーム種別の具体例を挙げると、カメラ情報をペイロードに含むフレームＤ、Ｅ、Ｆ及びＧに対する統計量であってもよい。これにより、フレーム種別ルールの保持に必要なメモリを削減することができる。
【００８９】
また、フレーム種別ルールは、図１２に例示したフレームの受信数及び第一タイプ全ての基準範囲が必須ではなく、これらの一部のみを含むものでもよい。また、複数個のフレーム種別ルール間で基準範囲が設定されている項目が異なっていてもよい。
【００９０】
また、上述のサイクル別ルールとの違いでいえば、サイクル別ルールを用いた手法では不正なフレームが発生したフレームの種別は特定できない。しかし、フレーム種別ルールを用いた手法では不正なフレームが発生したフレームの種別の特定が可能であり、場合によっては当該不正なフレームの送信ノード又はこれを含むブランチ、又はこの不正なフレームによる影響を受けるノード又はブランチを特定することができる。したがって、例えば本実施の形態の例のように車載ネットワークであれば、重大な危機の回避策として制限の対象となる先進的機能を、送信ノード若しくはブランチ又は影響を受けるノード若しくはブランチに関連する機能に絞ることができる。ただし、不正検知のための判断の実行頻度がサイクル別ルールを用いた手法よりも低くなり得る。図１１を参照して説明した例と比較すると、図１２を参照して説明した例では、不正検知のための判断の実行頻度は６４分の１である。したがって、両手法は併用されて、不正フレームの発生の早期発見とフレーム種別の特定との両方が図られてもよい。併用の形態としては、常にサイクル別ルールとフレーム種別ルールとの両方が用いられてもよいし、通信ネットワークでの処理負荷又は異常の発生の可能性に応じて切り替えて用いられてもよい。例えば正常時には処理負荷を抑えるために一方のルールを用いて不正検知処理を実行し、不正フレームの発生が検知された場合に、確認のために他方のルールを用いた不正検知処理が実行されてもよい。そして、一方のみの不正検知処理で不正フレームの発生が検知された場合と、両方の不正検知処理で不正フレームの発生が検知された場合とで、異なる対処が実行されてもよい。
【００９１】
また、個別フレーム不正検知処理との関連でいえば、不正検知部２５２は、サイクル別ルール及びフレーム種別ルールの一方又は両方を用いて不正なフレームの発生を検知した場合に、個別フレーム不正検知処理を実行して受信する個々のフレームが不正であるか否かを判断してもよい。このように、タイムトリガー方式を採用している通信ネットワークにおいて実効的な複数種類の不正検知処理であって、処理負荷と不正の検知レベル（有無、フレーム種別、個々のフレーム）が異なるものを切り替えながら用いることで、処理負荷の抑制と、不正検知の精度の確保又は向上による安全性との両立が図られる。
【００９２】
［１．１２  受信履歴］
図１３Ａ、図１３Ｂ、図１３Ｃは、それぞれ不正検知ＥＣＵ２５０が備える受信履歴保持部２５７に格納される受信履歴の一例である。図１３Ａは、受信履歴に含まれる情報のうち、ペイロードの内容に応じた種別（つまり第二タイプ）ごとの、受信したフレームが示す値（以下、受信値という）、及び所定の種別のフレームの受信値に応じて定まる車両状態に関する情報の例を示す。図１３Ｂは、受信履歴に含まれる情報のうち、サイクルごとのメタ情報に応じたフレーム種別（つまり第一タイプ別）の受信数に関する統計量の例を示す。図１３Ｃは、受信履歴に含まれる情報のうち、サイクルカウント０から６３にわたるサイクルでの、フレームのペイロードの内容に応じた種別（つまり第二タイプ）ごとの、メタ情報に応じたフレーム種別（つまり第一タイプ別）の受信数に関する統計量の例を示す。以下、順に詳細に説明する。
【００９３】
図１３Ａに示す受信履歴では、フレームの第二タイプごとの、受信値及び受信時刻の情報が示されている。
【００９４】
図１３Ａの例によれば、車両の速度を示すフレームＡの受信値は４０．５ｋｍ／ｈであり、このフレームＡの受信時刻は１２１００μｓである。ステアリング角度を示すフレームＢの受信値は５度であり、このフレームＢの受信時刻は８１４０μｓであったことを示している。また、ギア状態を示すフレームＣの受信値はＤ（ドライブ）であり、このフレームＣの受信時刻は１２４００μｓであったことを示す。また、カメラ情報１を示すフレームＤの受信値は、前方車両の検知を示し、このフレームＤの受信時刻は１４４０μｓであったことを示す。また、カメラ情報２を示すフレームＥの受信値は歩行者検知を示し、このフレームＥの受信時刻は５４８０μｓであったことを示す。また、カメラ情報３を示すフレームＦの受信値はレーン検知を示し、受信時刻は９５２０μｓであったことを示す。また、カメラ情報４を示すフレームＧの受信値は、車両後方のカメラが未起動であることを示し、このフレームＧの受信時刻は１３５６０μｓであることを示す。また、ドア状態を示すフレームＨの受信値は「全閉」状態であることを示し、受信時刻は１６００μｓであることを示している。さらにこの例では、フレームＡからの判定の結果として、車両状態が走行中であることを示している。この車両状態の情報は、フレームＡが示す車両の速度が０ｋｍ／ｈより大きい場合には「走行中」に更新され、０ｋｍ／ｈの場合には「停止中」に更新される。なお、上記の各受信値は、例えばフレームＡ〜Ｈが受信される度に該当するものが不正検知部２５２によって更新される。
【００９５】
なお、この例では受信時刻が保持されているが、受信時刻は必須ではない。また、受信時刻が、基準となる所定の時刻からの経過時間を示すμｓ単位で表されているが、時間を表す単位であればよい。例えば、ＦｌｅｘＲａｙプロトコルで用いられる、内部クロックから算出されるマイクロティックの個数が用いられてもよいし、マイクロティックを用いて定義されるマクロティックの個数が用いられてもよい。
【００９６】
図１３Ｂに示す受信履歴では、サイクルカウントで特定されるサイクルごとに、第一タイプ別でのフレームの受信数、この例では動的フレームの受信数、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数、Ｓｙｎｃ  ｆｒａｍｅの受信数、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１であるフレームの受信数、Ｎｕｌｌ  ｆｒａｍｅの受信数、Ｅｒｒｏｒフラグのあるフレームの受信数の情報が示されている。
【００９７】
図１３Ｂの例によれば、サイクルカウントが０のサイクルでは、動的フレームの受信数は１０であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は１、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は０、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は１であったことを示す。同様に、サイクルカウントが１のサイクルでは、動的フレームの受信数は１１であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は１、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は０、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は１であったことを示す。同様に、サイクルカウントが２のサイクルでは、動的フレームの受信数は１０であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は１、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は１、ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は１であったことを示している。同様に、サイクルカウントが３のサイクルでは、動的フレームの受信数は１０であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は１２、Ｓｙｎｃ  ｆｒａｍｅの受信数は１、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は１、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は１であったことを示す。同様に、サイクルカウントが６１のサイクルでは、動的フレームの受信数は１０であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は１、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は１、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は１であったことを示す。同様に、サイクルカウントが６２のサイクルでは、動的フレームの受信数は１２であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は１、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は１、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は１であったことを示す。同様に、サイクルカウントが６３のサイクルでは、動的フレームの受信数は１０であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は１、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は１、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は１であったことを示す。これらの値は、例えば各フレームの受信の度に不正検知部２５２によって更新される。
【００９８】
なお、図１３Ｂの例では動的フレームの受信数のみ示されているが、静的フレームの受信数が示されてもよい。また、図１３Ｂの例ではＥｒｒｏｒの発生したフレームの個数を記録していたが、具体的なＥｒｒｏｒフラグごと（シンタックスエラー、コンテンツエラー、境界エラー）の個数が記録されていてもよい。
【００９９】
図１３Ｃに示す受信履歴では、のペイロードの内容に応じた種別ごとのサイクルカウント０から６３にわたるサイクルでの、フレームの受信数、及びメタ情報に応じた種別でのフレームの受信数、この例ではＳｔａｒｔｕｐ  ｆｒａｍｅの受信数、Ｓｙｎｃ  ｆｒａｍｅの受信数、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１であるフレームの受信数、Ｎｕｌｌ  ｆｒａｍｅの受信数、Ｅｒｒｏｒフラグのあるフレームの受信数の情報が示されている。
【０１００】
図１３Ｃの例によれば、フレームＡの受信数は６４であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は６４、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は０、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は０であったことを示す。同様に、フレームＢの受信数は３２であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は０、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は０、ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は１５であったことを示す。同様に、フレームＣの受信数は３２であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は０、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は０、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は０であったことを示す。同様に、フレームＤの受信数は１６であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は０、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は０、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は０であったことを示す。同様に、フレームＥの受信数は１６であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は０、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は０、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は０であったことを示す。同様に、フレームＦの受信数は１６であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、ｓｙｎｃ  ｆｒａｍｅの受信数は０、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は１６、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は０であったことを示す。同様に、フレームＧの受信数は１６であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は０、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は０、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は０であったことを示す。同様に、フレームＨの受信数は８であり、Ｓｔａｒｔｕｐ  ｆｒａｍｅの受信数は０、Ｓｙｎｃ  ｆｒａｍｅの受信数は０、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの受信数は０、Ｎｕｌｌ  ｆｒａｍｅの受信数は０、Ｅｒｒｏｒとなったフレームの数は０であったことを示す。これらの値は、例えば各フレームの受信の度に不正検知部２５２によって更新される。
【０１０１】
なお、図１３Ｃの例では、フレーム名（スロットＩＤと、Ｃｙｃｌｅ  ｏｆｆｓｅｔ、Ｃｙｃｌｅ  ｒｅｃｅｐｔｉｏｎの組）で特定されるフレーム種別ごとに統計量が保持されているが、不正の判定に用い得る統計量はこれに限定されない。例えば、動的フレームにおけるＭｅｓｓａｇｅ  ＩＤごとの統計量が保持されてもよい。図１３Ｄは、受信履歴がこのような動的フレームのＭｅｓｓａｇｅ  ＩＤごとの統計量を含む例を示す図である。
【０１０２】
［１．１３  不正検知ＥＣＵの動作］
次に、上記の構成要素を備え、各ルール及び受信履歴を用いて不正検知を行う不正検知ＥＣＵ２５０の動作の手順について例を用いて説明する。なお、不正検知ＥＣＵ２５０の動作は、不正検知ＥＣＵ２５０の構成要素による処理の実行によって実現される。したがって、以下の不正検知ＥＣＵ２５０の各構成要素による処理の説明をもって、不正検知ＥＣＵ２５０の動作の説明であると理解されたい。
【０１０３】
図１４は、不正検知ＥＣＵ２５０の動作の手順例を示すフローチャートである。
【０１０４】
不正検知ＥＣＵ２５０において、フレームを受信したか否かがフレーム送受信部２０１によって判断される（Ｓ１００１）。
【０１０５】
フレームを受信した場合（Ｓ１００１でＹｅｓ）、不正検知部２５２が正規ＩＤリストをホワイトリストとして用いたチェックを行う（Ｓ１００２）。また、不正検知ＥＣＵ２５０において、フレームが受信されていない場合（Ｓ１００１でＮｏ）、不正検知部２５２はサイクルがスタートするタイミングであるか否かを判断する（Ｓ１００５）。
【０１０６】
ホワイトリストを用いたチェック（Ｓ１００２）でＯＫであった場合（Ｓ１００２でＹｅｓ）、不正検知部２５２は受信した当該フレームに対して個別フレーム不正検知処理を実行する（Ｓ１００３）。その後、不正検知部２５２によって受信履歴保持部２５７に格納される受信履歴が更新されて（Ｓ１００４）、当該フレームに対する不正検知ＥＣＵ２５０の処理は終了する。また、ホワイトリストを用いたチェックがＮＧであった場合（Ｓ１００２でＮｏ）も、当該フレームに対する不正検知ＥＣＵ２５０の処理は終了する。ホワイトリストを用いたチェック（Ｓ１００２）及び個別フレーム不正検知処理（Ｓ１００３）については、手順例を用いて後述する。
【０１０７】
一方、サイクルがスタートするタイミングであると判断（Ｓ１００５）した場合（Ｓ１００５でＹｅｓ）、不正検知部２５２は直前の１個以上のサイクルの進行中に受信されたフレームに対するサイクル別不正検知処理（Ｓ１００６）を実行する。サイクルがスタートするタイミングではない場合（Ｓ１００５でＮｏ）、不正検知ＥＣＵ２５０の動作は、ステップＳ１００１に戻る。
【０１０８】
サイクル別不正検知処理（Ｓ１００６）後、不正検知部２５２はサイクルカウントが０であるか否かを判断する（Ｓ１００７）。サイクルカウントが０である場合（Ｓ１００７でＹｅｓ）、不正検知部２５２は、直前までの２個以上のサイクル、例えばひとつ前のサイクルカウント０から６３までの６４サイクルの間に受信されたフレームに対するフレーム種別不正検知処理（Ｓ１００８）を実行する。その後、不正検知部２５２は、受信履歴保持部２５７に格納されている、実行済みのフレーム種別不正検知処理の対象であったサイクルの統計情報（図１３Ｃ参照）をリセットする（Ｓ１００９）。サイクルカウントが０でない場合は（Ｓ１００７でＮｏ）、不正検知ＥＣＵ２５０の動作は終了する。
【０１０９】
なお、図１４のフローチャートに示す不正検知ＥＣＵ２５０の動作の手順例は一例であり、種々の変形が可能である。例えば図１４の手順例では、三種類の不正検知処理は、対象のデータがフレーム単位又はサイクル単位で受信されたタイミングでそれぞれ実行される。この他に、上述したように、不正検知処理の処理負荷、又は異常（不正なフレーム）の発生の可能性に応じて三種類の不正検知処理の間で切り替える等して選択的に実行されてもよい。
【０１１０】
［１．１４  ホワイトリストを用いたチェック］
図１５は、図１４を参照して説明した不正検知ＥＣＵ２５０の動作における処理のうち、正規ＩＤリストをホワイトリストとして用いたチェック（Ｓ１００２）の詳細を説明するためのフローチャートである。
【０１１１】
不正検知ＥＣＵ２５０では、図１４のＳ１００１でフレームを受信したことが判断されると、不正検知部２５２は、当該フレームに含まれるスロットＩＤを抽出する（Ｓ１１０１）。抽出したスロットＩＤが、正規ＩＤリスト保持部２５３に格納される正規ＩＤリストに存在しない場合（Ｓ１１０２でＮｏ）、不正検知部２５２は、当該フレームは不正なフレームであると（Ｓ１１０６）判断し、不正検知ＥＣＵ２５０での処理は終了する。抽出したスロットＩＤが正規ＩＤリストに存在する場合は、不正検知部２５２は、当該フレームに含まれるサイクルカウント（以下、及び図中ではＣｃとも表記する）を抽出する（Ｓ１１０３）。
【０１１２】
次に不正検知部２５２は、正規ＩＤリストから、受信したフレームのスロットＩＤに対応するＣｙｃｌｅ  ｏｆｆｓｅｔ（以下、及び図中ではＣｏとも表記する）とＣｙｃｌｅ  ｒｅｃｅｐｔｉｏｎ（以下、及び図中ではＣｒとも表記する）の組み合わせを全て抽出する（Ｓ１１０４）。
【０１１３】
次に不正検知部２５２は、受信した当該フレームが、正規ＩＤリストに基づく送受信スケジュールどおりに送信されたものであるかを確認する（Ｓ１１０５）。例えば不正検知部２５２は、ステップＳ１１０４で抽出したＣｏとＣｒとの全ての組み合わせに対して、抽出したＣｃの値からＣｏの値を減算した値をＣｒで割った余りが０であるか否かを判定する。この手法は、送受信スケジュールどおりであれば、この余りの値は０になることに基づく。結果が０である組み合わせが存在しない場合（Ｓ１１０５でＮｏ）、受信したフレームは不正なフレームであるとして（Ｓ１１０６）、不正検知ＥＣＵ２５０の処理は終了する。結果が０である組み合わせが存在する場合（Ｓ１１０５でＹｅｓ）、不正検知部２５２は、次のステップ（Ｓ１００３）に進む。
【０１１４】
［１．１５  個別フレーム不正検知処理］
図１６は、図１４を参照して説明した不正検知ＥＣＵ２５０の動作における処理のうち、個別フレーム不正検知処理（Ｓ１００３）の詳細を説明するためのフローチャートである。
【０１１５】
不正検知部２５２は、ステップＳ１００２において、スケジュールどおりに送受信されたフレームであることから、不正なフレームであるとは判断されなかったフレームが動的フレームであるか否かを判断する（Ｓ１２０１）。当該フレームが動的フレームである場合（Ｓ１２０１でＹｅｓ）、不正検知部２５２は、当該フレームに含まれるＰａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒ（図中、Ｐｐｉ）が１であるかを確認する（Ｓ１２０２）。受信したフレームが動的フレームではない、つまり静的フレームである場合（Ｓ１２０１でＮｏ）、不正検知部２５２は、受信履歴保持部２５７に格納される対応する受信履歴と当該フレームのペイロードの値とに基づき、当該フレームが個別フレームルール保持部２５４に格納される対応する個別フレームルールに（例えば図１０のフレームＡ又はＢのルール）適合するか否かを判断する。（Ｓ１２０６）。
【０１１６】
ステップＳ１２０２において、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１である場合（Ｓ１２０２でＹｅｓ）、Ｍｅｓｓａｇｅ  ＩＤがフレームのペイロード部に含まれている。不正検知部２５２は、このＭｅｓｓａｇｅ  ＩＤを抽出する（Ｓ１２０３）。Ｍｅｓｓａｇｅ  ＩＤを抽出した後、又はＰａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが０であった場合（Ｓ１２０２でＮｏ）、不正検知部２５２は、受信履歴保持部２５７に格納されている受信履歴が示す車両状態が、個別フレームルール保持部２５４に格納されている、対応する個別フレームルールに規定される受信ルールに適合するかを確認する（Ｓ１２０４）。例えば受信履歴が示す車両状態が走行中であって、受信したフレームがフレームＤである場合のこの車両状態は、図１０の個別フレームルールに拠れば受信ルールに適合しない。受信ルールに適合する（個別フレームルールに適合する）場合（Ｓ１２０４でＹｅｓ）、不正検知部２５２は、そのまま次のステップ（Ｓ１００４）に進む。車両状態が受信ルールに適合しない場合（Ｓ１２０４でＮｏ）は、不正検知部２５２は、当該フレームを不正なフレームであると判断して（Ｓ１２０５）、個別フレーム不正検知処理を終了して次のステップ（Ｓ１００４）に進む。このように、個別フレームルールを用いた不正検知処理（ステップＳ１００３）では、先行するホワイトリストを用いたチェックにおいて、含むスロットＩＤとサイクルカウントとが所定の関係性を満たすことで、不正なフレームであるとは判断されなかった動的フレームが、受信されたタイミングにおける車両状態に基づいて不正なフレームであると判断されることがある。
【０１１７】
また、ステップＳ１２０６において、フレームが対応する個別フレームルールに適合しない場合（Ｓ１２０６でＮｏ）、不正検知部２５２は、当該フレームを不正なフレームであると判断して（Ｓ１２０５）、個別フレーム不正検知処理を終了して次のステップ（Ｓ１００４）に進む。個別フレームルールに適合する場合は、不正検知部２５２は、そのまま次のステップ（Ｓ１００４）に進む。
【０１１８】
［２．  変形例及び補足事項］
本開示の一又は複数の態様に係る不正検知装置、不正検知方法及びプログラムは、上記の実施の形態の説明に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が想到する各種の変形を上記の実施の形態に施したものも、本開示の態様に含まれてもよい。下記に、そのような変形の例、及び実施の形態の説明へのその他の補足事項を挙げる。
【０１１９】
（１）上記の実施の形態は、図１に示したスター型のネットワークトポロジにおける例を用いて説明したが、適用可能なネットワークトポロジをこの例に限るものではない。例えば、バス型、又はスター型とバス型とのハイブリッド型などのネットワークトポロジにも本開示の不正検知装置等は適用できる。
【０１２０】
（２）上記の実施の形態では、不正検知部は不正検知ＥＣＵに存在したが、車載ネットワーク上のその他のＥＣＵ上の一部又は全部に存在してもよい。これにより、不正検知部を備える各ＥＣＵが不正検知装置として機能し、不正なフレームの発生を検知することができるため、制御対象の機器の制御の不正なフレームに基づく実行が効果的に抑制される。また、不正検知部を、車載ネットワーク内のサブネットワーク同士を接続するゲートウェイ、又はドメインコントローラが備えてもよい。これにより、ゲートウェイ又はドメインコントローラが不正検知装置として機能することが可能になり、不正なフレームの転送、及び不正なフレームの影響の車載ネットワーク内での拡散の抑制に効果的である。
【０１２１】
（３）上記の実施の形態では、不正なフレームが発生したか否か、又はフレームが不正であるか否かという不正検知処理以降について詳細に述べていないが、この処理の結果の利用例について補足する。例えば、不正検知処理において得られる、不正なフレームのヘッダに含まれる情報、ペイロード値、受信時刻、受信時の車両状態等（これら情報の少なくとも一部を指して、以下では不正フレーム情報ともいう）がログに保存されておいてもよい。また、車載ネットワーク上の他のＥＣＵに不正なフレームの発生又は不正フレーム情報が通知されてもよいし、外部のサーバへ当該車両での不正なフレームの発生又は不正フレーム情報が通知されてもよい。また、当該車両のユーザインタフェースを介して運転者へ車載ネットワークに不正なフレームの発生又は不正フレーム情報が通知されてもよい。また、ゲートウェイ又はドメインコントローラが不正検知部を備える場合は、当該不正フレームを転送しない、又は不正なフレームであることを示す情報を付加して転送する等の処理を実行してもよい。
【０１２２】
（４）上記の実施の形態では、不正検知ＥＣＵによって個別フレーム不正検知処理、サイクル別不正検知処理、及びフレーム種別不正検知処理の三種類の不正検知処理がひととおり実行されている。上述のとおり、これらの不正検知処理が常に全て実行される必要はない。
【０１２３】
各不正検知処理は、それぞれ単独でタイムトリガー方式であるプロトコルを採用している通信ネットワークにおける不正なフレームの発生の検知を可能にするものである。また、三種類の不正検知処理は、処理負荷、実行間隔、又は不正の検知レベルが互いに異なるため、利用可能なリソース又は要求される不正の検知レベルに応じて二種類以上を組み合わせて実行されてもよい。
【０１２４】
例えば、初期状態ではフレーム種別不正検知処理のみが実行され、フレーム種別不正検知処理で不正なフレームの発生が検知され場合に、当該フレームと同名のフレームに対する個別フレーム不正検知処理が実行されてもよい。これにより、不正なフレームの発生が検知されるまでは不正検知処理のための処理負荷を抑制し、不正なフレームの発生が検出されてからは、より詳細な不正検知処理によって不正への適切な対処も可能となり得、処理負荷抑制と安全性向上との両立が可能となる。
【０１２５】
別の例として、サイクル別不正検知処理で不正なフレームの発生を検知した場合に、以降の同じサイクルカウントのサイクルで送信されるフレームの詳細なログの記録、又はこのログの外部サーバへの送信が開始されてもよい。これにより、車内で検知された不正に関する詳細分析を事後的に、又は外部で行うための情報が効率的に取得される。
【０１２６】
（５）上記の実施の形態では、個別フレームルール、サイクル別ルール、及びフレーム種別ルールが平文で保持されているが、暗号化されていてもよい。
【０１２７】
（６）上記の実施の形態では、サイクルの開始時にサイクル別不正検知処理を行っていた（図１４、Ｓ１００５）が、サイクル別不正検知処理の実行タイミングはこれに限定されない。例えば、サイクルの末尾に入るネットワークアイドルタイムに、サイクル別不正検知処理が実行されてもよい。これにより、車載ネットワーク上でフレームの送受信が発生しない時間に不正検知処理が実行されるため、不正検知ＥＣＵ又は不正検知部を備えるＥＣＵの処理負荷の時間的な集中が避けられる。これにより、例えば不正検知ＥＣＵ又は不正検知部を備えるＥＣＵに要求される能力を抑えることができ、安全性の高い車載ネットワーク構築のコストを抑えることができる。
【０１２８】
（７）上記の実施の形態では、個別フレームルールにはそれぞれ１つの受信ルールが設定されている（図１０参照）が、２つ以上が設定されていてもよい。また、受信ルールが設定されていない個別フレームルールが存在してもよい。例えば、重要性の高い第二種別のフレームにのみ受信ルールを設定することで、フレームの重要度に応じたチェックが可能となり、車載ネットワークの安全性を効果的に高めることができる。
【０１２９】
（８）上記の実施の形態では、動的フレームの個別フレームルールには受信時の車両状態に関する受信ルールのみが設定されているがこれに限定されない。動的フレームの個別フレームルールであっても、受信値からの変化量に関するルールが設定されてもよい。
【０１３０】
（９）上記の実施の形態では、Ｐａｙｌｏａｄ  ｐｒｅａｍｂｌｅ  ｉｎｄｉｃａｔｏｒが１のフレームの個別フレームルールは、Ｍｅｓｓａｇｅ  ＩＤごとに設定されているが、フレーム名ごとに設定されていてもよい。これにより、個別フレームルールの保持に必要なメモリを削減することができる。
【０１３１】
（１０）上記の実施の形態では、正規ＩＤリスト（図８）にフレーム名が保持されているが、正規ＩＤリストにフレーム名は必須ではない。
【０１３２】
（１１）上記の実施の形態では、正規ＩＤリスト（図８）によれば、１つのフレームが保持するペイロード情報は１種類１件であるが、これに限定されない。１つのフレームが２種類以上又は同種の情報を複数件保持してもよいし、ペイロード情報が無くてもよい。また、複数件のペイロード情報が保持される場合には、ペイロードセグメントでの各件のフィールドを示す情報（フィールドの位置、長さ、単位等）が含まれていてもよい。
【０１３３】
（１２）上記の実施の形態では、サイクル別ルール保持部に格納されるサイクル別ルール（図１１）に含まれる各基準範囲は固定であったが、可変であってもよい。動的フレームの受信数は車両状態に応じて変わり得るものであり、例えば車両が走行中は基準範囲の境界値を増加（又は減少）させてもよい。
【０１３４】
（１３）上記の実施の形態では、サイクル別不正検知処理及びフレーム種別不正検知処理では、受信フレームに関する各統計量は独立に評価され、いずれかの統計量において適合しないものがあった場合に不正なフレームが発生していると判断するためのルールが用いられている、これらの不正検知処理の手法、又はこれらの不正検知処理で利用されるルール又はデータ形式はこれに限らない。例えば、各統計量を特徴量として、正常状態を学習させたＳｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ等の識別器により、不正なフレームの発生の有無を判断してもよい。また統計量を主成分分析等の手法を用いて次元を削減させた上で、Ｌｏｃａｌ  Ｏｕｔｌｉｅｒ  Ｆａｃｔｏｒなどの外れ値検出手法を用いて不正なフレームの発生の有無を判断してもよい。これにより、各統計量は基準範囲内であったとしても、統計量の組み合わせに基づいて不正なフレームの発生を検知することが可能となり、検知性能の向上の点で効果的である。
【０１３５】
（１４）上記の実施の形態では、サイクル別ルール及びフレーム種別ルールの統計量の基準範囲は予め与えられているが、これに限定されない。例えば車両走行中に正常状態の学習を通じて設定又は更新されてもよい。例えば、不正検知ＥＣＵの電源が入ってから所定の時間分のデータを用いてフレームの正常な統計量が学習されてもよい。これにより、運転者、車両の型式、又は走行環境に合わせてルールの修正が可能となり、検知精度の向上の点で効果的である。
【０１３６】
（１５）上記の実施の形態では、受信履歴（図１３Ａ）の受信値はフレーム名ごとに１信号相当分だけ保持しているが、前回、前々回の受信値のように複数信号相当分保持してもよい。また、ペイロード値をそのまま保持してもよい。
【０１３７】
（１６）上記の実施の形態では、受信履歴（図１３Ａ）に含まれる車両状態は、走行中か停止中の２状態のみであったが、車両状態はこの２状態に限られず、各種のフレームから判定可能な状態であればこれらの２状態を用いた上記の例と同様に用い得る。例えば、イグニッションオン状態、アクセサリーオン状態、低速走行状態、高速走行状態、ステアリング操舵状態、ギア状態、若しくは先進運転支援機能のオンオフ状態、又はこれらを組み合わせた状態が用いられてもよい。また、これらに例示される車両状態を複数組み合わせて含む受信ルール（図１０）が用いられてもよい。特に各種の動的フレームの設計上の送信条件と係る車両状態を選択して受信ルールに含めることで、不正なフレームを精度よく検知できるようになる。
【０１３８】
（１７）上記の実施の形態では、個別フレーム不正検知処理、サイクル別不正検知処理、及びフレーム種別不正検知処理の結果が出力されるのみである、これに限定されない。不正なフレーム又はその発生が検知された処理に応じて、不正検知ログの残し方、又は不正なフレームへの対処方法を変化させてもよい。
【０１３９】
例えば、個別フレーム不正検知の結果、不正であると判定されたフレームについては、当該フレームに係る情報をログに残し、又はさらに外部サーバへ通知する。さらに不正検知部がゲートウェイ等に実装されている場合は、当該フレームを転送しない等の処理を行ってもよい。このように、不正なフレームの送信がフレーム単位で判断できる場合は、より詳細な情報を残し、後の攻撃原因の解析、又は当該フレームを利用しない等の具体的な対処が実行可能になり、安全性の向上に効果的である。
【０１４０】
また例えば、サイクル別不正検知処理で不正なフレームの発生が検知された場合は、当該サイクルの統計量の情報をログとして残し、又はさらに外部サーバへ通知する。このように、サイクル別不正検知処理ではサイクル単位で攻撃の発生時刻を把握することができ、後の攻撃原因の解析に有効である。
【０１４１】
また例えば、フレーム種別不正検知処理で不正なフレームの発生が検知された場合は、フレーム名ごとに統計量を整理し、異常な統計量を含むフレームに関してログを残し、又はさらに外部サーバへ通知する。これにより、単一のフレーム又は単一のサイクルでは、判断できなかったフレームの異常をフレームの種類のレベルで判断することが可能となり、人手による解析時に、攻撃原因の特定を容易する。
【０１４２】
（１８）上記の実施の形態では、フレーム種別ルールは、フレームの種別ごとの受信数に係る統計量に関するルールである、これに限らない。例えば、ペイロードに含まれる信号値の総変化量や、平均変化量、分散等に関するルールであってもよい。
【０１４３】
（１９）上記の実施の形態では、動的フレーム及び静的フレームを併せたサイクル別ルールが利用されているが、これに限られない。静的フレームに関するサイクル別ルールと、動的フレームに関するサイクル別ルールとは分けられてもよい。これにより、恒常的に受信される静的フレームの統計量と、受信の有無が変動的な動的フレームの統計量をもとに、それぞれについて不正なフレームの発生を判断することができ、より正確な検知が可能となる。
【０１４４】
（２０）上記の実施の形態では、車載ネットワークとしてＦｌｅｘＲａｙプロトコルを用いていたが、これに限るものではない。例えば、ＣＡＮ、ＣＡＮ−ＦＤ（ＣＡＮ  ｗｉｔｈ  Ｆｒｅｘｉｂｌｅ  Ｄａｔａ  Ｒａｔｅ）、Ｅｔｈｅｒｎｅｔ（登録商標）、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、ＭＯＳＴ（Ｍｅｄｉａ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍｓ  Ｔｒａｎｓｐｏｒｔ）などを用いてもよい。あるいはこれらのネットワークをサブネットワークとして、組み合わせたネットワークであってもよい。特にタイムトリガー方式を採用しているネットワークに対して有効である。また、実施の形態は車載ネットワークでの不正検知装置又は不正検知方法を例に用いて説明しているが、本開示の態様に係る不正検知装置等は、車載ネットワーク以外の通信ネットワークにも適用可能である。
【０１４５】
（２１）上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。ＲＡＭ又はハードディスクユニットには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１４６】
（２２）上記の実施の形態における各装置は、構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【０１４７】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
【０１４８】
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１４９】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０１５０】
（２３）上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしてもよい。ＩＣカード又はモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカード又はモジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ＩＣカード又はモジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【０１５１】
（２４）本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、このコンピュータプログラムからなるデジタル信号であるとしてもよい。
【０１５２】
また、本開示は、上記のコンピュータプログラム又は上記のデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている上記のデジタル信号であるとしてもよい。
【０１５３】
また、本開示は、上記のコンピュータプログラム又は上記のデジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０１５４】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、当該メモリは、上記コンピュータプログラムを記録しており、当該マイクロプロセッサは、このコンピュータプログラムに従って動作するとしてもよい。
【０１５５】
また、上記のプログラム又は上記のデジタル信号を前記記録媒体に記録して移送することにより、又は当該プログラム又は前記デジタル信号を、当該ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０１５６】
（２５）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０１５７】
本開示に係る技術は、通信ネットワーク、特にタイムトリガー方式を採用しているネットワークにおいて、サイバー攻撃などによる不正なフレームへの対処を可能にするために利用することができる。
【符号の説明】
【０１５８】
１０  車載ネットワークシステム
１００ａ、１００ｂ、１００ｃ、１００ｄ、１００ｅ  バス
２００ａ、２００ｂ、２００ｃ、２００ｄ  ＥＣＵ
２０１  フレーム送受信部
２０２  フレーム解釈部
２０３  外部機器制御部
２０４  フレーム生成部
２０５  通信用設定パラメータ保持部
２１０  ステアリング
２２０  ギア
２３０  ブレーキ
２４０  カメラ
２５０  不正検知ＥＣＵ
２５２  不正検知部
２５３  正規ＩＤリスト保持部
２５４  個別フレームルール保持部
２５５  サイクル別ルール保持部
２５６  フレーム種別ルール保持部
２５７  受信履歴保持部
３００  スターカプラ
３０１ａ、３０１ｂ、３０１ｃ、３０１ｄ、３０１ｅ  トランシーバ部
３０２  ルーティング部
【図１】
2020022444.tif 000003
【図２】
2020022444.tif 000004
【図３】
2020022444.tif 000005
【図４】
2020022444.tif 000006
【図５】
2020022444.tif 000007
【図６】
2020022444.tif 000008
【図７】
2020022444.tif 000009
【図８】
2020022444.tif 000010
【図９】
2020022444.tif 000011
【図１０】
2020022444.tif 000012
【図１１】
2020022444.tif 000013
【図１２】
2020022444.tif 000014
【図１３Ａ】
2020022444.tif 000015
【図１３Ｂ】
2020022444.tif 000016
【図１３Ｃ】
2020022444.tif 000017
【図１３Ｄ】
2020022444.tif 000018
【図１４】
2020022444.tif 000019
【図１５】
2020022444.tif 000020
【図１６】
2020022444.tif 000021
【国際調査報告】
2020022444.tif 000022
2020022444.tif 000023
2020022444.tif 000024
2020022444.tif 000025