JP2018170754A - 異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法 - Google Patents

異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法 Download PDF

Info

Publication number
JP2018170754A
JP2018170754A JP2017118669A JP2017118669A JP2018170754A JP 2018170754 A JP2018170754 A JP 2018170754A JP 2017118669 A JP2017118669 A JP 2017118669A JP 2017118669 A JP2017118669 A JP 2017118669A JP 2018170754 A JP2018170754 A JP 2018170754A
Authority
JP
Japan
Prior art keywords
type message
target data
received
message
vehicle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017118669A
Other languages
English (en)
Other versions
JP6846991B2 (ja
Inventor
淳一 鶴見
Junichi Tsurumi
淳一 鶴見
良浩 氏家
Yoshihiro Ujiie
良浩 氏家
崇光 佐々木
Takamitsu Sasaki
崇光 佐々木
剛 岸川
Takeshi Kishikawa
剛 岸川
若林 徹
Toru Wakabayashi
徹 若林
中野 稔久
Toshihisa Nakano
稔久 中野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Priority to EP17824059.4A priority Critical patent/EP3484103B1/en
Priority to PCT/JP2017/023471 priority patent/WO2018008453A1/ja
Priority to CN201780018767.9A priority patent/CN108886480B/zh
Publication of JP2018170754A publication Critical patent/JP2018170754A/ja
Priority to US16/237,243 priority patent/US11190533B2/en
Application granted granted Critical
Publication of JP6846991B2 publication Critical patent/JP6846991B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • B60R16/0231Circuits relating to the driving or the functioning of the vehicle
    • B60R16/0232Circuits relating to the driving or the functioning of the vehicle for measuring vehicle parameters and indicating critical, abnormal or dangerous conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Small-Scale Networks (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)

Abstract

【課題】不正なメッセージが送信された場合に適切に異常検知を行う異常検知ECUを提供する。
【解決手段】異常検知ECU110は、監視対象データを含む第1種メッセージを送信するECUと、比較対象データを含む第2種メッセージを送信するECUとが接続された通信路に接続され、メッセージを逐次受信する受信部112と、受信部112で受信された第1種メッセージが正常であるか異常であるかを、その第1種メッセージの内容と、その第1種メッセージの受信時に受信部112で最後に受信されていた第2種メッセージの内容と、受信部112でその第1種メッセージより過去に受信された第1種メッセージの内容、及び、受信部112でその最後に受信された第2種メッセージより過去に受信された第2種メッセージの内容のうちのいずれかとに基づいて、判定する判定部111と、判定部111による判定の結果に応じて送信を行う送信部113とを備える。
【選択図】図3

Description

本発明は、ネットワークを流れる異常なメッセージを検知するセキュリティ対策技術に関する。
近年、自動車の中のシステムには、電子制御ユニット(ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の通信規格が存在する。その中でも最も主流な車載ネットワークの一つに、ISO11898で規定されているCAN(Controller Area Network)という規格が存在する。
CANでは、通信路は2本のワイヤで構成されたバス(ネットワークバス)であり、バスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信する送信ノードは、2本のワイヤに電圧をかけ、ワイヤ間で電位差を発生させることによって、レセシブと呼ばれる「1」の値と、ドミナントと呼ばれる「0」の値を送信する。複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームとは、ドミナントを6bit連続して送信することで、送信ノード及び他の受信ノードにフレームの異常を通知するものである。
またCANでは送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎にIDを付けて送信し、各受信ノードは予め定められたIDのフレームのみを受信する。また、CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)方式を採用しており、複数ノードの同時送信時にはIDによる調停が行われ、IDの値が小さいフレームが優先的に送信される。
CANの車載ネットワークシステムについては、攻撃者がバスにアクセスして不正なフレームを送信することでECUを不正に制御するといった脅威が存在し、セキュリティ対策が検討されている。
例えば特許文献1には、ネットワークにおいて規定された通信間隔内に同一の識別子を有する2つ目のデータを受信したときに不正が発生したと判断する異常検知の方法が記載されている。
特開2014−146868号公報
しかしながら、特許文献1の方法では、攻撃者が正規のECUから送信される正しいデータを含むメッセージの周期と同様の周期で不正なデータを含むメッセージを送信し、不正なメッセージを正規のメッセージの直前に送信した場合に、不正なメッセージであると適切に検知できない。この方法では、その直後に続く正規のメッセージの送信について不正が発生したと判定してしまう。また、この方法では、正規のECUによる正規のメッセージの送信を止めさせて、代わりに不正なメッセージを送信するような攻撃に対しては、異常検知ができない。
そこで、本発明は、攻撃者によりネットワークに不正なメッセージが送信された場合において、適切に異常検知を行う異常検知電子制御ユニット(異常検知ECU)を提供する。また、不正なメッセージが送信された場合に、適切に異常検知を行う車載ネットワークシステム、及び、適切に異常検知を行うための異常検知方法を提供する。
上記課題を解決するために本発明の一態様に係る異常検知電子制御ユニットは、監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備えるネットワークシステムにおける前記通信路に接続された異常検知電子制御ユニットであって、前記通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信部と、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの内容と、当該第1種メッセージの受信時において前記受信部によって最後に受信されていた第2種メッセージの内容と、前記受信部によって当該第1種メッセージより過去に受信された第1種メッセージの内容、及び、前記受信部によって前記最後に受信された第2種メッセージより過去に受信された第2種メッセージの内容のうちのいずれかとに基づいて、判定する判定部と、前記判定部による前記判定の結果に応じて送信を行う送信部とを備える異常検知電子制御ユニットである。
また、上記課題を解決するために本発明の一態様に係る車載ネットワークシステムは、監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、前記通信路に接続された異常検知電子制御ユニットを備え、前記異常検知電子制御ユニットは、前記通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信部と、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの内容と、当該第1種メッセージの受信時において前記受信部によって最後に受信されていた第2種メッセージの内容と、前記受信部によって当該第1種メッセージより過去に受信された第1種メッセージの内容、及び、前記受信部によって前記最後に受信された第2種メッセージより過去に受信された第2種メッセージの内容のうちのいずれかとに基づいて、判定する判定部とを備える車載ネットワークシステムである。
また、上記課題を解決するために本発明の一態様に係る異常検知方法は、監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備えるネットワークシステムで用いられる異常検知方法であって、前記通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信ステップと、前記受信ステップで受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの内容と、当該第1種メッセージの受信時において前記受信ステップで最後に受信されていた第2種メッセージの内容と、前記受信ステップで当該第1種メッセージより過去に受信された第1種メッセージの内容、及び、前記受信ステップで前記最後に受信された第2種メッセージより過去に受信された第2種メッセージの内容のうちのいずれかとに基づいて、判定する判定ステップと、前記判定ステップでの前記判定の結果に応じて送信を行う送信ステップとを含む異常検知方法である。
本発明によれば、ネットワークに流される不正なメッセージが適切に検知され得る。
実施の形態1に係る異常検知システムの全体構成を示す図である。 実施の形態1に係る車載ネットワークシステムの構成を示す図である。 実施の形態1に係る異常検知ECUの構成を示す図である。 CANプロトコルで規定されるデータフレームのフォーマットを示す図である。 CANプロトコルで規定されるエラーフレームのフォーマットを示す図である。 実施の形態1に係る速度制御ECUが送信するデータフレームの例を示す図である。 速度制御ECUが送信するデータフレームにおける速度制御情報の読み取り方法の一例を示す図である。 実施の形態1に係るギア制御ECUが送信するデータフレームの例を示す図である。 ギア制御ECUが送信するデータフレームにおけるギア制御情報の読み取り方法の一例を示す図である。 実施の形態1に係る異常検知ECUが用いるルールを示す図である。 実施の形態1に係る異常検知ECUのルール記憶部に保持されるルールテーブルの具体例を示す図(其の一)である。 実施の形態1に係る異常検知ECUのルール記憶部に保持されるルールテーブルの具体例を示す図(其の二)である。 実施の形態1に係る異常検知ECUのルール記憶部に保持されるルールテーブルの具体例を示す図(其の三)である。 実施の形態1に係る異常検知ECUのデータ記憶部に保持されるデータテーブルの一例を示す図である。 実施の形態1に係る異常検知ECUが行う異常判定処理の各パターンで用いられるデータを示す図である。 実施の形態1に係る異常検知ECU等の、異常がない場合の処理シーケンスの一例を示す図である。 実施の形態1に係る異常検知ECUの異常判定処理パターン1に係る処理シーケンスの一例を示す図である。 実施の形態1に係る異常検知ECUの異常判定処理パターン2に係る処理シーケンスの一例を示す図である。 実施の形態1に係る異常検知ECUの異常判定処理パターン3に係る処理シーケンスの一例を示す図である。 実施の形態1に係る異常検知ECUにより実行される処理の一例を示すフローチャートである。 実施の形態1に係る異常検知ECUによるデータ保存処理の一例を示すフローチャートである。 実施の形態1に係る異常検知ECUによる異常判定処理パターン1に係る異常判定処理の一例を示すフローチャートである。 実施の形態1に係る異常検知ECUによる異常判定処理パターン2に係る異常判定処理の一例を示すフローチャートである。 実施の形態1に係る異常検知ECUによる異常判定処理パターン3に係る異常判定処理の一例を示すフローチャートである。 実施の形態1に係る異常検知ECUによる車両保護処理の一例を示すフローチャートである。 実施の形態1に係る異常検知ECUによる車両保護処理の別の一例を示すフローチャートである。 車両のヘッドユニットにおける警告通知の一例を示す図である。 実施の形態2に係る車載ネットワークシステムの構成を示す図である。 実施の形態2に係る異常検知ECUの構成を示す図である。 実施の形態2に係るハンドル制御指示ECUが送信するデータフレームの例を示す図である。 ハンドル制御指示ECUが送信するデータフレームにおけるハンドル制御指示の読み取り方法の一例を示す図である。 実施の形態2に係るハンドル制御ECUが送信するデータフレームの例を示す図である。 ハンドル制御ECUが送信するデータフレームにおけるハンドル状態情報の読み取り方法の一例を示す図である。 実施の形態2に係る異常検知ECUが用いるルールを示す図である。 実施の形態2に係る異常検知ECUのルール記憶部に保持されるルールテーブルの具体例を示す図である。 実施の形態2に係る異常検知ECUのデータ記憶部に保持されるデータテーブルの一例を示す図である。 実施の形態2に係る異常検知ECU等の、異常がない場合の処理シーケンスの一例を示す図である。 実施の形態2に係る異常検知ECUの異常判定処理に係る処理シーケンスの一例を示す図である。 実施の形態2に係る異常検知ECUにより実行される処理の一例を示すフローチャートである。 実施の形態2に係る異常検知ECUによるデータ保存処理の一例を示すフローチャートである。 実施の形態2に係る異常検知ECUによる異常判定処理に係る異常判定処理の一例を示すフローチャートである。 実施の形態2に係る異常検知ECUによる車両保護処理の一例を示すフローチャートである。 実施の形態2に係る異常検知ECUによる車両保護処理の別の一例を示すフローチャートである。
本発明の一態様に係る異常検知電子制御ユニットは、監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備えるネットワークシステムにおける前記通信路に接続された異常検知電子制御ユニットであって、前記通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信部と、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの内容と、当該第1種メッセージの受信時において前記受信部によって最後に受信されていた第2種メッセージの内容と、前記受信部によって当該第1種メッセージより過去に受信された第1種メッセージの内容、及び、前記受信部によって前記最後に受信された第2種メッセージより過去に受信された第2種メッセージの内容のうちのいずれかとに基づいて、判定する判定部と、前記判定部による前記判定の結果に応じて送信を行う送信部とを備える異常検知電子制御ユニットである。第1種メッセージ及び第2種メッセージはネットワークで予め定められた規則に従って周期的に伝送され、個々のメッセージの内容としての逐次監視対象データ及び比較対象データの各値は、メッセージが送信される時に応じて、例えば相互に一定の関係性を持って変化する。このため、例えば、時間の経過に伴って逐次送信される複数の第2種メッセージの複数の比較対象データの値に現れる変化とその変化の際における第1種メッセージの監視対象データの値との関係等が、予め規定された、正常時に満たされるべき或いは異常時に満たされるべき所定基準を、満たすか否かに基づいて、適切な判定が可能となる。このように、監視対象データと比較対象データとについての関係性を利用して監視対象データが異常であるか否かを判定部が判定できるように比較対象データに係る第2種メッセージを定めて利用されると、異常検知電子制御ユニットは、監視対象データを不正な内容にして攻撃者によりネットワークに流された第1種メッセージを、異常であると適切に検知し得る。例えば、攻撃者が、ネットワークシステムにおける正規の電子制御ユニットから送信される周期と同様の周期で不正な第1種メッセージを送信したとしても、適切に異常を検知でき、ネットワークのセキュリティの確保が可能となる。
また、前記異常検知電子制御ユニットは、記憶部を有し、前記受信部は、受信した第1種メッセージ及び第2種メッセージのそれぞれの内容を前記記憶部に格納し、前記判定部は、前記記憶部を参照して前記判定を行うこととしても良い。これにより、異常検知電子制御ユニットは、異常検知電子制御ユニット内における記憶部を利用して、適切な判定を迅速に行い得る。
また、前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、当該第1種メッセージに含まれる第1監視対象データと、前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、前記受信部によって当該第1種メッセージより1回前に受信された第1種メッセージに含まれる第2監視対象データとが、所定基準を満たすか否かに応じて判定することとしても良い。これにより、2つの第1種メッセージの各監視対象データの値と、第2種メッセージの比較対象データの値とに一定の関係があることを利用して、第1種メッセージについての異常を適切に判定することが可能となる。
また、前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、当該第1種メッセージに含まれる第1監視対象データと、前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、前記受信部によって最後の1回前に受信された第2種メッセージに含まれる第2比較対象データとが、所定基準を満たすか否かに応じて判定することとしても良い。これにより、第1種メッセージの監視対象データの値と、2つの第2種メッセージの各比較対象データの値とに一定の関係があることを利用して、第1種メッセージについての異常を適切に判定することが可能となる。
また、前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、当該第1種メッセージに含まれる第1監視対象データと、前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、前記受信部によって当該第1種メッセージより1回前に受信された第1種メッセージに含まれる第2監視対象データと、前記受信部によって最後の1回前に受信された第2種メッセージに含まれる第2比較対象データとが、所定基準を満たすか否かに応じて判定することとしても良い。これにより、2つの第1種メッセージの各監視対象データの値と、2つの第2種メッセージの各比較対象データの値とに一定の関係があることを利用して、第1種メッセージについての異常を適切に判定することが可能となる。
また、前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、当該第1種メッセージに含まれる第1監視対象データと、前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、前記受信部によって、当該第1種メッセージの受信時より前において最後に受信された、前記第1監視対象データとは異なる値の第2監視対象データを含む第1種メッセージにおける当該第2監視対象データとが、所定基準を満たすか否かに応じて判定することとしても良い。これにより、時間の経過に伴って逐次送信される複数の第1種メッセージの監視対象データの値の遷移と、その遷移の際に送信される第2種メッセージの比較対象データの値との間に一定の関係があることを利用して、第1種メッセージについての異常を適切に判定することが可能となる。
また、前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、当該第1種メッセージに含まれる第1監視対象データと、前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、前記受信部によって、前記最後に受信された第2種メッセージの受信時より前において最後に受信された、前記第1比較対象データとは異なる値の第2比較対象データを含む第2種メッセージにおける当該第2比較対象データとが、所定基準を満たすか否かに応じて判定することとしても良い。これにより、時間の経過に伴って逐次送信される複数の第2種メッセージの比較対象データの値の遷移と、その遷移の際に送信される第1種メッセージの監視対象データの値との間に一定の関係があることを利用して、第1種メッセージについての異常を適切に判定することが可能となる。
また、前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、当該第1種メッセージに含まれる第1監視対象データと、前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、前記受信部によって、当該第1種メッセージの受信時より前において最後に受信された、前記第1監視対象データとは異なる値の第2監視対象データを含む第1種メッセージにおける当該第2監視対象データと、前記受信部によって、前記最後に受信された第2種メッセージの受信時より前において最後に受信された、前記第1比較対象データとは異なる値の第2比較対象データを含む第2種メッセージにおける当該第2比較対象データとが、所定基準を満たすか否かに応じて判定することとしても良い。これにより、時間の経過に伴って逐次送信される複数の第1種メッセージの監視対象データの値の遷移と、その遷移の際において逐次送信される複数の第2種メッセージの比較対象データの値の遷移との間に一定の関係があることを利用して、第1種メッセージについての異常を適切に判定することが可能となる。
また、前記複数の電子制御ユニットは、参照データを含む第3種メッセージを周期的に送信する電子制御ユニットを含み、前記受信部は更に第3種メッセージを逐次受信し、前記判定部は、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの受信時において前記受信部によって最後に受信されていた第3種メッセージの内容と、前記受信部によって前記最後に受信された第3種メッセージより過去に受信された第3種メッセージの内容とにも基づいて、判定することとしても良い。これにより、監視対象データ及び比較対象データに係る関係性に加えて、第3種メッセージの参照データとの関係を用いるので、適切に第3種メッセージを定めておくことで、より適切に第1種メッセージについての異常を判定することが可能となる。
また、前記複数の電子制御ユニットは、参照データを含む第3種メッセージを周期的に送信する電子制御ユニットを含み、前記受信部は更に第3種メッセージを逐次受信し、前記判定部は更に、前記受信部によって受信された第2種メッセージが正常であるか否かを、当該第2種メッセージの内容と、当該第2種メッセージの受信時において前記受信部によって最後に受信されていた第3種メッセージの内容と、前記受信部によって当該第2種メッセージより過去に受信された第2種メッセージの内容、及び、前記受信部によって前記最後に受信された第3種メッセージより過去に受信された第3種メッセージの内容のうちのいずれかとに基づいて判別し、前記判定部は、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの内容と、当該第1種メッセージの受信時において前記受信部によって最後に受信されて正常と判別された第2種メッセージの内容と、前記受信部によって当該第1種メッセージより過去に受信された第1種メッセージの内容、及び、前記受信部によって前記最後に受信されて正常と判別された第2種メッセージより過去に受信され正常と判別された第2種メッセージの内容のうちのいずれかとに基づいて、判定することとしても良い。これにより、比較対象データと参照データとの関係性に基づいて正常と判別した比較対象データを用いて、監視対象データについての判定がなされるので、より正確な判定が可能となる。
また、前記ネットワークシステムは車両に搭載され、前記監視対象データ及び前記比較対象データは、前記車両の制御のために用いられるデータであり、前記通信路は、前記車両における有線通信路であり、前記複数の電子制御ユニットは、CANプロトコル又はEthernet(登録商標)プロトコルに従ってメッセージの授受を行うこととしても良い。これにより、車載ネットワークへの攻撃の検知が可能となり、車両のセキュリティの確保が可能となり得る。
また、前記判定部は、前記受信部によって第1種メッセージにおける監視対象データが受信されて当該第1種メッセージの最後尾のビットが受信される前において、当該第1種メッセージが正常であるか異常であるかを判定し、前記送信部は、前記判定部により第1種メッセージが異常であると判定された場合には前記受信部によって当該第1種メッセージの最後尾のビットが受信される前に、当該第1種メッセージを無効化する所定メッセージを前記通信路へ送信することとしても良い。これにより、ネットワークに不正なメッセージを流す攻撃からネットワークシステムを防御することが可能となる。
また、前記通信路はネットワークバスであり、前記複数の電子制御ユニットは、CANプロトコルに従って、フレームの授受を行い、前記第1種メッセージは、所定値をIDフィールドに含み、監視対象データをデータフィールドに含むデータフレームであり、前記第2種メッセージは、前記所定値とは異なる特定値をIDフィールドに含み、比較対象データをデータフィールドに含むデータフレームであり、前記送信部は、前記所定メッセージとしてエラーフレームを送信することとしても良い。これにより、車載ネットワークにおいて効率的に不正な監視対象データを含むデータフレームを無効化することが可能となる。
また、前記通信路はネットワークバスであり、前記送信部は、前記判定部により第1種メッセージが異常であると判定された場合に、異常通知メッセージを前記ネットワークバスへ送信することとしても良い。これにより、他の電子制御ユニットに異常が通知される。このため、異常の通知を受けた電子制御ユニットは、例えば、不正なメッセージを正規のメッセージと同様に処理することを抑止する等といったセキュリティ対策を実施し得る。
また、本発明の一態様に係る車載ネットワークシステムは、監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、前記通信路に接続された異常検知電子制御ユニットを備え、前記異常検知電子制御ユニットは、前記通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信部と、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの内容と、当該第1種メッセージの受信時において前記受信部によって最後に受信されていた第2種メッセージの内容と、前記受信部によって当該第1種メッセージより過去に受信された第1種メッセージの内容、及び、前記受信部によって前記最後に受信された第2種メッセージより過去に受信された第2種メッセージの内容のうちのいずれかとに基づいて、判定する判定部とを備える車載ネットワークシステムである。これにより、監視対象データを不正な内容にして攻撃者によりネットワークに流された第1種メッセージを、異常であると適切に判定し得る。このため、この車載ネットワークシステムは、攻撃に対する適切な防御を行うことが可能となる。
また、前記車載ネットワークシステムは更に、前記判定部により第1種メッセージが異常であると判定された場合に、当該車載ネットワークシステムを搭載する第1車両の外部に所在するサーバ又は当該第1車両以外の第2車両に、異常を通知する通知装置を備えることとしても良い。これにより、ある車両の車載ネットワークシステムで異常が検知された場合において、他の車両に直接又はサーバを介して異常が通知され得る。このため、他の車両において攻撃に対して効率的な防御を行うことが可能となる。また、サーバは、異常の通知を受けて、1台又は複数台の各車両に対してセキュリティ対策について指示できるようになる。
また、前記通知装置は、前記判定部により第1種メッセージが異常であると判定された場合に、前記第1車両と同一車種である前記第2車両に、異常を示す情報を送信することで、異常を通知することとしても良い。また、前記通知装置は、前記判定部により第1種メッセージが異常であると判定された場合に、前記第1車両の周囲に所在する前記第2車両に、異常を示す情報を送信することで、異常を通知することとしても良い。これらにより、攻撃者による同一車種の複数車両への連続攻撃、局所的な複数車両への連続攻撃等に対する防御が可能となり得る。
本発明の一態様に係る異常検知方法は、監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備えるネットワークシステムで用いられる異常検知方法であって、前記通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信ステップと、前記受信ステップで受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの内容と、当該第1種メッセージの受信時において前記受信ステップで最後に受信されていた第2種メッセージの内容と、前記受信ステップで当該第1種メッセージより過去に受信された第1種メッセージの内容、及び、前記受信ステップで前記最後に受信された第2種メッセージより過去に受信された第2種メッセージの内容のうちのいずれかとに基づいて、判定する判定ステップと、前記判定ステップでの前記判定の結果に応じて送信を行う送信ステップとを含む異常検知方法である。これにより、不正な監視対象データを含む第1種メッセージをネットワークに流す攻撃に対しての適切な防御が可能となり得る。
本発明の一態様に係る異常検知電子制御ユニットは、監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備えるネットワークシステムにおける前記通信路に接続された異常検知電子制御ユニットであって、前記通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信部と、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの内容と、当該第1種メッセージの受信時において前記受信部によって最後に受信されていた第2種メッセージの内容と、に基づいて判定する判定部と、を備える異常検知電子制御ユニットである。第1種メッセージ及び第2種メッセージはネットワークで予め定められた規則に従って周期的に伝送され、個々のメッセージの内容としての逐次監視対象データ及び比較対象データの各値は、メッセージが送信される時に応じて、例えば相互に一定の関係性を持って変化する。このため、例えば、時間の経過に伴って逐次送信される複数の第2種メッセージの複数の比較対象データの値に現れる変化とその変化の際における第1種メッセージの監視対象データの値との関係等が、予め規定された、正常時に満たされるべき或いは異常時に満たされるべき所定基準を、満たすか否かに基づいて、適切な判定が可能となる。このように、監視対象データと比較対象データとについての関係性を利用して監視対象データが異常であるか否かを判定部が判定できるように比較対象データに係る第2種メッセージを定めて利用されると、異常検知電子制御ユニットは、監視対象データを不正な内容にして攻撃者によりネットワークに流された第1種メッセージを、異常であると適切に検知し得る。例えば、攻撃者が、ネットワークシステムにおける正規の電子制御ユニットから送信される周期と同様の周期で不正な第1種メッセージを送信したとしても、適切に異常を検知でき、ネットワークのセキュリティの確保が可能となる。
また、前記第1種メッセージは、車両の挙動を制御する制御装置に対する指示を示す指示情報を含み、前記第2種メッセージは、前記制御装置の状態を示す状態情報を含むこととしても良い。これにより、異常検知電子制御ユニットは、車両の挙動に対するセキュリティの確保が可能となる。
また、前記指示情報はハンドルを回転させるための指示情報を含み、前記状態情報はハンドルの回転に関係する状態情報を含むこととしても良い。これにより、異常検知電子制御ユニットは、車両の挙動に関係するハンドルに対するセキュリティの確保が可能となる。
また、前記指示情報は速度を減速させるための指示情報を含み、前記状態情報は速度に関係する状態情報を含むこととしても良い。これにより、異常検知電子制御ユニットは、車両の挙動に関係する減速に対するセキュリティの確保が可能となる。
また、前記指示情報は速度を加速させるための指示情報を含み、前記状態情報は速度に関係する状態情報を含むこととしても良い。これにより、異常検知電子制御ユニットは、車両の挙動に関係する加速に対するセキュリティの確保が可能となる。
また、前記異常検知電子制御ユニットは、記憶部を有し、前記受信部は、受信した第1種メッセージ及び第2種メッセージのそれぞれの内容を前記記憶部に格納し、前記判定部は、前記記憶部を参照して前記判定を行うこととしても良い。これにより、異常検知電子制御ユニットは、異常検知電子制御ユニット内における記憶部を利用して、適切な判定を迅速に行い得る。
また、前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、当該第1種メッセージに含まれる第1監視対象データと、前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データとが、所定基準を満たすか否かに応じて判定することとしても良い。これにより、第1種メッセージの各監視対象データの値と、第2種メッセージの比較対象データの値とに一定の関係があることを利用して、第1種メッセージについての異常を適切に判定することが可能となる。
また、前記複数の電子制御ユニットは、参照データを含む第3種メッセージを周期的に送信する電子制御ユニットを含み、前記受信部は更に第3種メッセージを逐次受信し、前記判定部は、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの受信時において前記受信部によって最後に受信されていた第3種メッセージの内容と、前記受信部によって前記最後に受信された第3種メッセージより過去に受信された第3種メッセージの内容と、に基づいて判定することとしても良い。これにより、監視対象データ及び比較対象データに係る関係性に加えて、第3種メッセージの参照データとの関係を用いるので、適切に第3種メッセージを定めておくことで、より適切に第1種メッセージについての異常を判定することが可能となる。
また、前記複数の電子制御ユニットは、参照データを含む第3種メッセージを周期的に送信する電子制御ユニットを含み、前記受信部は更に第3種メッセージを逐次受信し、前記判定部は更に、前記受信部によって受信された第2種メッセージが正常であるか否かを、当該第2種メッセージの内容と、当該第2種メッセージの受信時において前記受信部によって最後に受信されていた第3種メッセージの内容とに基づいて判定し、前記判定部は、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの内容と、当該第1種メッセージの受信時において前記受信部によって最後に受信されて正常と判定された第2種メッセージの内容と、に基づいて判定することとしても良い。これにより、比較対象データと参照データとの関係性に基づいて正常と判定した比較対象データを用いて、監視対象データについての判定がなされるので、より正確な判定が可能となる。
また、前記ネットワークシステムは車両に搭載され、前記監視対象データ及び前記比較対象データは、前記車両の制御のために用いられるデータであり、前記通信路は、前記車両における有線通信路であり、前記複数の電子制御ユニットは、CANプロトコル又はEthernet(登録商標)プロトコルに従ってメッセージの授受を行うこととしても良い。これにより、車載ネットワークへの攻撃の検知が可能となり、車両のセキュリティの確保が可能となり得る。
また、前記判定部は、前記受信部によって第1種メッセージにおける監視対象データが受信されて当該第1種メッセージの最後尾のビットが受信される前において、当該第1種メッセージが正常であるか異常であるかを判定し、前記送信部は、前記判定部により第1種メッセージが異常であると判定された場合には前記受信部によって当該第1種メッセージの最後尾のビットが受信される前に、当該第1種メッセージを無効化する所定メッセージを前記通信路へ送信することとしても良い。これにより、ネットワークに不正なメッセージを流す攻撃からネットワークシステムを防御することが可能となる。
また、前記通信路はネットワークバスであり、前記複数の電子制御ユニットは、CANプロトコルに従って、フレームの授受を行い、前記第1種メッセージは、所定値をIDフィールドに含み、監視対象データをデータフィールドに含むデータフレームであり、前記第2種メッセージは、前記所定値とは異なる特定値をIDフィールドに含み、比較対象データをデータフィールドに含むデータフレームであり、前記送信部は、前記所定メッセージとしてエラーフレームを送信することとしても良い。これにより、車載ネットワークにおいて効率的に不正な監視対象データを含むデータフレームを無効化することが可能となる。
また、前記通信路はネットワークバスであり、前記送信部は、前記判定部により第1種メッセージが異常であると判定された場合に、異常通知メッセージを前記ネットワークバスへ送信することとしても良い。これにより、他の電子制御ユニットに異常が通知される。このため、異常の通知を受けた電子制御ユニットは、例えば、不正なメッセージを正規のメッセージと同様に処理することを抑止する等といったセキュリティ対策を実施し得る。
また、本発明の一態様に係る車載ネットワークシステムは、監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、前記通信路に接続された異常検知電子制御ユニットを備え、前記異常検知電子制御ユニットは、前記通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信部と、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの内容と、当該第1種メッセージの受信時において前記受信部によって最後に受信されていた第2種メッセージの内容と、に基づいて判定する判定部とを備える車載ネットワークシステムである。これにより、監視対象データを不正な内容にして攻撃者によりネットワークに流された第1種メッセージを、異常であると適切に判定し得る。このため、この車載ネットワークシステムは、攻撃に対する適切な防御を行うことが可能となる。
また、前記車載ネットワークシステムは更に、前記判定部により第1種メッセージが異常であると判定された場合に、当該車載ネットワークシステムを搭載する第1車両の外部に所在するサーバ又は当該第1車両以外の第2車両に、異常を通知する通知装置を備えることとしても良い。これにより、ある車両の車載ネットワークシステムで異常が検知された場合において、他の車両に直接又はサーバを介して異常が通知され得る。このため、他の車両において攻撃に対して効率的な防御を行うことが可能となる。また、サーバは、異常の通知を受けて、1台又は複数台の各車両に対してセキュリティ対策について指示できるようになる。
また、前記通知装置は、前記判定部により第1種メッセージが異常であると判定された場合に、前記第1車両と同一車種である前記第2車両に、異常を示す情報を送信することで、異常を通知することとしても良い。また、前記通知装置は、前記判定部により第1種メッセージが異常であると判定された場合に、前記第1車両の周囲に所在する前記第2車両に、異常を示す情報を送信することで、異常を通知することとしても良い。これらにより、攻撃者による同一車種の複数車両への連続攻撃、局所的な複数車両への連続攻撃等に対する防御が可能となり得る。
本発明の一態様に係る異常検知方法は、監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備えるネットワークシステムで用いられる異常検知方法であって、前記通信路から第1種メッセージ及び第2種メッセージを逐次受信し、前記受信された第1種メッセージが正常であるか異常であるかを、当該第1種メッセージの内容と、当該第1種メッセージの受信時において最後に受信されていた第2種メッセージの内容と、に基づいて判定する異常検知方法である。これにより、不正な監視対象データを含む第1種メッセージをネットワークに流す攻撃に対しての適切な防御が可能となり得る。
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
以下、実施の形態に係る異常検知方法を用いる異常検知ECUを含む車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、処理の要素としてのステップ及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
(実施の形態1)
以下、本発明の実施の形態1として、車載ネットワークを流れるメッセージについての異常の検知が可能な車載ネットワークシステムを搭載する車両と、他の車両と、サーバとを含む異常検知システム10について、図面を用いて説明する。
[1.1 異常検知システム10の全体構成]
図1は、異常検知システム10の全体構成を示す図である。異常検知システム10は、自動車である複数の車両それぞれの異常を検知して対処するための通信システムである。異常検知システム10は、図1に示すように、車載ネットワークシステム100を搭載する車両200と、他の車両500と、サーバ400とを外部ネットワーク300で接続して構成される。異常検知システム10は、車両200及び車両500以外に、例えば多数の車両を含んで構成され得るが、図1では省略している。
車両200における車載ネットワークシステム100は、車両200の電子制御部品等である各ECUが、車載ネットワークにより車両の制御等のために必要な情報の授受を行うための車両内の通信システムである。車両200以外の車両も、車両200と同様に車載ネットワークシステムを搭載している。
外部ネットワーク300は、無線或いは有線の通信路で構成される通信網であり、例えばインターネット等の広域ネットワークを含み得る。
車両200は、異常が発生した場合に、外部に異常を通知する通知装置を備える。通知装置は例えば外部通信装置として実現され得る。具体例として、車両200は、車載ネットワークシステム100に、外部ネットワーク300と通信する無線通信回路等を含む外部通信装置を備え、車載ネットワークで異常が発生した場合に、サーバ400或いは車両500に、異常を示す情報を送信することで、異常を通知する。
サーバ400は、各車両において発生した異常の情報を処理するコンピュータである。サーバ400は、例えば、車両200から異常を示す情報を受信した場合に、車両200に異常が発生したことを、例えば異常を示す情報の車両500への送信等によって、車両500に通知する。サーバ400で、車両200から異常を示す情報を受信した場合に、その情報に基づいて各種分析等を行って異常に対する対処方法等を決定しても良い。
[1.2 車載ネットワークシステム100の構成]
図2は、車載ネットワークシステム100の構成を示す。車載ネットワークシステム100は、CANプロトコルに従って通信する通信システムの一例であり、制御装置、センサ、アクチュエータ、ユーザインタフェース装置等の各種機器が搭載された車両200における通信システムである。車載ネットワークシステム100は、バス(ネットワークバス)を介してフレーム(メッセージとも称する)に係る通信を行う複数のECUを備え、異常検知方法を用いる。具体的には図2に示すように車載ネットワークシステム100は、バス150と、バス150に接続された異常検知ECU110、ギア制御ECU120、速度制御ECU130、及び、一種のECUである外部通信装置140を含んで構成される。バス150は、車載ネットワークの有線通信路であり、各ECUに接続される。なお、車載ネットワークシステム100には、異常検知ECU110、ギア制御ECU120、速度制御ECU130、及び、外部通信装置140以外にもいくつものECUが含まれ得るが、ここでは便宜上、主に図2に示したECUに注目して説明を行う。
各ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行されるプログラム(コンピュータプログラム)を記憶することができる。例えばプロセッサが、プログラムに従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。ECUは、各種機器に接続され得る。
各ECUは、CANプロトコルに従って、バス150を介してフレームの授受を行い得る。ECU間で授受されるフレームにはデータフレームがある。データフレームは、例えば、車両の状態に関するデータ、車両に対して制御を指示するデータ等といった、車両の制御のために用いられるデータ等を含み得る。
異常検知ECU110は、バス150に接続され、車載ネットワークのバス150に流れる第1種メッセージ、第2種メッセージ等を受信して、第1種メッセージが正常か異常かを判定し、判定の結果に基づいて所定の処理を行うECUである。異常検知ECU110は、第1種メッセージが正常か異常かの判定に、受信した第1種メッセージ及び第2種メッセージを用いる。第1種メッセージは、監視対象データを含むこととして定められた、所定の識別情報(ID)を有するメッセージである。また、第2種メッセージは、比較対象データを含むこととして定められた、第1種メッセージとは異なる識別情報(ID)を有するメッセージである。
ギア制御ECU120は、例えば変速機構であるギアに接続されており、一定の周期で、ギアポジションに関するギア制御情報を送信する。
速度制御ECU130は、例えば速度センサに接続されており、一定の周期で、車両の速度に関する速度制御情報を送信する。
外部通信装置140は、外部ネットワーク300に接続し、異常を示す情報等といった車両200に関する情報を、車両200の外部に送信する機能を有する。
[1.3 異常検知ECU110の構成]
図3は、異常検知ECU110の構成を示す。異常検知ECU110は、同図に示すように、判定部111と、受信部112と、送信部113と、ルール記憶部114と、データ記憶部115とを含んで構成される。図3に示した異常検知ECU110の各構成要素は、異常検知ECU110のメモリ等の記憶媒体、通信回路、メモリに格納されたプログラムを実行するプロセッサ等で実現され得る。
判定部111は、受信部112が受信中のデータフレームと、データ記憶部115に保持されて逐次更新されるデータテーブル(図12参照)におけるデータと、ルール記憶部114に保持されるルールテーブルが示すルール(図8〜図11参照)とを用いて異常判定処理を行うことで、受信中のデータフレームが正常か異常かを判定する。判定部111は、受信中のデータフレームが異常であると判定した場合には、後述する車両保護処理(図23、図24参照)を行う。判定部111は、例えばプログラムを実行するプロセッサ等で実現され得る。
受信部112は、車載ネットワークシステム100内の各ECUから送信されてバス150に現れるメッセージ(つまりデータフレーム)が、ルールテーブルの情報から、監視対象データの判定に必要な識別情報(ID)を有するメッセージであれば、そのメッセージを受信する。また、受信部112は、受信したメッセージの内容をデータ記憶部115が保持するデータテーブルに含ませるようにそのデータテーブルを更新する処理であるデータ保存処理(図19参照)を行う。受信部112は、通信回路等により実現され得る。
送信部113は、判定部111の制御下で、判定部111による判定の結果に応じて送信を行う。送信部113は、判定部111が受信中のデータフレームを異常と判定した場合に、例えば、このデータフレームの送信阻止処理として、このデータフレームを無効化する所定メッセージをバス150に送信する。所定メッセージは、例えばエラーフレームである。また、例えば、送信部113は、判定部111が異常と判定した場合において、外部通信装置140にサーバ400或いは他の車両500に対して、車両200での異常の発生を通知させるべく、外部通信装置140が受信するように予め定められた識別情報(ID)を有して異常を示す情報を含むメッセージを、バス150に送信する。送信部113は、通信回路等により実現され得る。
記憶部つまりルール記憶部114及びデータ記憶部115は、例えば記憶媒体の一領域で実現される。
ルール記憶部114は、監視対象データと、比較対象データとの関係についてのルールテーブルを保持する。
データ記憶部115は、受信部112により受信されたメッセージの識別情報(ID)に対応して、監視対象データ或いは比較対象データを含むメッセージの内容であるデータを含むデータテーブルを記憶する。
[1.4 データフレームフォーマット]
以下、CANプロトコルに従ったネットワークで用いられるデータフレームについて説明する。
図4は、CANプロトコルで規定されるデータフレームのフォーマットを示す図である。同図には、CANプロトコルで規定される標準IDフォーマットにおけるデータフレームを示している。データフレームは、SOF(Start Of Frame)、IDフィールド、RTR(Remote Transmission Request)、IDE(Identifier Extension)、予約ビット「r」、DLC(Data Length Code)、データフィールド、CRC(Cyclic Redundancy Check)シーケンス、CRCデリミタ「DEL」、ACK(Acknowledgement)スロット、ACKデリミタ「DEL」、及び、EOF(End Of Frame)の各フィールドで構成される。
SOFは、1bitのドミナントで構成される。バスがアイドルの状態はレセシブになっており、SOFによりドミナントへ変更することが、フレームの送信開始の通知となる。
IDフィールドは、11bitで構成される、データの種類を示す値であるIDを格納するフィールドである。複数のノードが同時に送信を開始した場合、このIDフィールドで通信調停を行うために、IDが小さい値を持つフレームが高い優先度となるよう設計されている。
RTRは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント1bitで構成される。
IDEと「r」とは、両方ドミナント1bitで構成される。
DLCは、4bitで構成され、データフィールドの長さを示す値である。
データフィールドは、最大64bitで構成される送信するデータの内容を示す値である。データフィールドは、8bit毎に長さを調整できる。送られるデータの仕様については、CANプロトコルで規定されておらず、車載ネットワークシステムにおいて定められる。従って、車種、製造者等に依存した仕様となる。
CRCシーケンスは、15bitで構成される。CRCシーケンスは、SOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
CRCデリミタは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。
ACKスロットは、1bitで構成される。送信ノードはACKスロットをレセシブにして送信を行う。受信ノードはCRCシーケンスまで正常に受信ができていればACKスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にACKスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
ACKデリミタは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。
EOFは、7bitのレセシブで構成されており、データフレームの終了を示す。
[1.5 エラーフレームフォーマット]
図5は、CANプロトコルで規定されるエラーフレームのフォーマットを示す図である。エラーフレームは、エラーフラグ(プライマリ)と、エラーフラグ(セカンダリ)と、エラーデリミタ「DEL」とから構成される。
エラーフラグ(プライマリ)は、エラーの発生を他のノードに知らせるために使用される。エラーを検知したノードはエラーの発生を他のノードに知らせるために6bitのドミナントを連続で送信する。この送信は、CANプロトコルにおけるビットスタッフィングルール(つまり連続して同じ値を6bit以上送信しないルール)に違反し、他のノードからのエラーフレーム(セカンダリ)の送信を引き起こす。
エラーフラグ(セカンダリ)は、エラーの発生を他のノードに知らせるために使用される連続した6ビットのドミナントで構成される。エラーフラグ(プライマリ)を受信してビットスタッフィングルール違反を検知した全てのノードがエラーフラグ(セカンダリ)を送信することになる。
エラーデリミタ「DEL」は、8bitの連続したレセシブであり、エラーフレームの終了を示す。
[1.6 速度制御ECU130が送信するデータフレーム]
図6は、速度制御ECU130が送信する、速度制御情報を含むデータフレームの一例を示す図である。この例では、速度制御情報を含むデータフレームは、所定値「0x01」であるIDを有し、DLCが示すデータ長は2である。このデータフレームのデータフィールドにおけるデータが速度制御情報を示す。速度制御情報に係るデータの1バイト目は、車両200が前進しているか、後退しているかを表し、2バイト目は、車両200の速度を表す。
図6Aは、具体例としての速度制御情報のデータ値の示す意味を、データの読み取り結果として表している。速度制御情報に係るデータの1バイト目が0x00で、2バイト目が0x00でなければ「前進中」、2バイト目が0x00なら「停車中」を意味し、1バイト目が0x10で、2バイト目が0x00でなければ「後退中」を意味する。図6に例示したデータフレームのデータは、1バイト目が0x10であり、2バイト目が0x12であるので、異常検知ECU110は、このデータフレームの速度制御情報を「後退中」として読み取る。
[1.7 ギア制御ECU120が送信するデータフレーム]
図7は、ギア制御ECU120が送信する、ギア制御情報を含むデータフレームの一例を示す図である。この例では、ギア制御情報を含むデータフレームは、速度制御情報を含むデータフレームとは異なる値「0x02」であるIDを有し、DLCが示すデータ長は1である。このデータフレームのデータフィールドにおけるデータがギア制御情報を示す。ギア制御情報に係る1バイトのデータは、車両200の変速機構に係る現在のギアポジションを表す。
図7Aは、具体例としてのギア制御情報のデータ値の示す意味を、データの読み取り結果として表している。ギア制御情報に係るデータが0x00であれば、駐車のためのギアポジションである「パーキング」、0x01であれば、前進でも後退でもない「ニュートラル」、0x02であれば、車両の前進のためのギアポジションである「ドライブ」、0x03であれば、車両の後退のためのギアポジションである「リバース」を意味する。例えば図7に例示したデータフレームのデータの値は、0x01であるので、異常検知ECU110は、このデータフレームのギア制御情報を「ニュートラル」として読み取る。
[1.8 ルールテーブルのルール]
図8は、ルール記憶部114が保持するルールテーブルで規定されるルールの概念を示す図である。
車載ネットワークのバス150に流される、所定値のIDを有するメッセージである第1種メッセージにおける特定のビット列であるデータの値を、値Aとし、所定値と異なる特定値のIDを有するメッセージである第2種メッセージにおける特定のビット列であるデータの値を、値Bとして、ルールを説明する。第1種メッセージと第2種メッセージとがそれぞれ周期的に逐次送信される場合に、時の経過に応じて、バス150に現れる各メッセージが示す値Aと値Bという2つの値について、正常状態において一定の規則を持って値の変化が生じるのであれば、この値の遷移を遷移図で表せる(図8中央上段参照)。この遷移図の例では、値Aは具体値として0又は1をとり、値Bは具体値として0、1又は2をとることとしている。
ルールテーブルは、例えば、この遷移図を2つの行列で表している。図8の例では、値Aが0の場合においては、値Bは0、1及び2の範囲でどのような変化をしても正常であることを示す。また、値Aが1の場合においては、値Bは0のままで変化しないとき、1のままで変化しないとき、1から2へ変化するとき、2のままで変化しないとき、及び、2から1へ変化するときのいずれかであるときのみ、正常であり、その他のときには異常であることを示す。このように、ルールテーブルは、少なくとも、あるIDを有するメッセージが示す値と、別のIDを有するメッセージが示す値と、いずれかのIDを有するメッセージが示す過去の値との関係性に基づいて、メッセージについて正常か異常かを判定するための基準となるルールを示す。なお、ここでは、互いに異なるIDを有する2種類のメッセージのそれぞれにおける1つの値を用いたルールの例を示したが、これはルールの一例に過ぎず、例えば、同じメッセージ内の複数の値を用いても、同様にルールを規定し得る。
[1.9 ルールテーブルの具体例]
図9、図10、図11は、ルール記憶部114が保持するルールテーブルの例を示す。これらの例では、監視対象データはギア制御情報であり、比較対象データは速度制御情報であるとしている。即ち、監視対象データは、第1種メッセージのデータフィールドに、つまり、所定値(図6の例では「0x01」)をIDフィールドに含むデータフレームのデータフィールドに含まれる。また、比較対象データは、第2種メッセージのデータフィールドに、つまり、所定値とは異なる特定値(図7の例では「0x02」)をIDフィールドに含むデータフレームのデータフィールドに含まれる。
図9は、ギア制御情報の変化についてのルールテーブルの一例を示す。この例のルールテーブルは、車両が停車中の場合、及び、車両が前進中の場合のそれぞれに対するギア制御情報の変化についてのルールを示している。具体的には、ルールテーブルで、ギア制御情報の過去の状態と現在の状態との組み合わせ毎に、正常か、異常かを規定しており、その組み合わせが生じ得ないものについては図9の例では該当なし(N/A)としているが、異常と看做すことができる。なお、図9に示す現在のギア状態は、ギア制御情報の最新の値である現在値、つまり、異常検知ECU110において最後に受信した第1種メッセージのギア制御情報が示す値に、対応する。最後に受信した第1種メッセージのギア制御情報は、例えば異常検知ECU110が現在受信中である第1種メッセージに含まれるギア制御情報である。また、図9に示す過去のギア状態は、ギア制御情報の過去値、例えば、ギア制御情報の現在値を含む第1種メッセージの1回前に受信した第1種メッセージのギア制御情報が示す値に、対応する。異常検知ECU110は、このルールテーブルに従って、ギア制御情報を含むメッセージが正常か異常かを判定できる。例えば、バス150に流れる第2種メッセージに含まれる速度制御情報によって、車両の動きが前進中であることを認識できている状態において、周期的に送信される第1種メッセージに含まれるギア制御情報が、「ドライブ」を示す状態から「リバース」を示す状態に変化した場合には、図9の例のルールテーブルに基づいて、異常検知ECU110は、ギア制御情報を含むメッセージを異常と判定する。
図10は、速度制御情報の変化についてのルールテーブルの一例を示す。この例のルールテーブルは、車両のギアポジションが「ドライブ」となっている場合、及び、車両のギアポジションが「リバース」となっている場合のそれぞれに対する速度制御情報の変化についてのルールを示している。具体的には、ルールテーブルで、速度制御情報の過去の状態と現在の状態との組み合わせ毎に、正常か、異常かを規定しており、その組み合わせが生じ得ないものについては図10の例では該当なし(N/A)としているが、異常と看做すことができる。なお、図10に示す現在の車両の動きに係る状態は、速度制御情報の最新の値である現在値、つまり、異常検知ECU110において最後に受信した第2種メッセージの速度制御情報が示す値に、対応する。また、図10に示す過去の車両の動きに係る状態は、速度制御情報の過去値、例えば、速度制御情報の現在値を含む第2種メッセージの1回前に受信した第2種メッセージの速度制御情報が示す値に、対応する。異常検知ECU110は、このルールテーブルに従って、ギア制御情報を含むメッセージが正常か異常かを判定できる。例えば、バス150に送信された第1種メッセージに含まれるギア制御情報が、「ドライブ」を示す状態である場合に、バス150に周期的に流れる第2種メッセージに含まれる速度制御情報の過去値が停車中で現在値が後退中であることを認識した状態であれば、図10の例のルールテーブルに基づいて、異常検知ECU110は、ギア制御情報を含むメッセージを異常と判定する。
図11は、ギア制御情報の変化及び速度制御情報の変化についてのルールテーブルの一例を示している。この例のルールテーブルは、車両が停車中から前進中に変化した場合、及び、車両が後退中から停車中に変化した場合のそれぞれに対するギア制御情報の変化についてのルールを示している。具体的には、速度制御情報の変化毎に対応するルールテーブルで、ギア制御情報の過去の状態と現在の状態との組み合わせ毎に、正常か、異常かを規定しており、その組み合わせが生じ得ないものについては図11の例では該当なし(N/A)としているが、異常と看做すことができる。なお、図11に示す現在のギア状態は、図9の場合と同様に、ギア制御情報の現在値に対応する。また、図11に示す過去のギア状態は、図9の場合と同様に、ギア制御情報の過去値に対応する。異常検知ECU110は、このルールテーブルに従って、ギア制御情報を含むメッセージが正常か異常かを判定できる。例えば、バス150に周期的に流れる第2種メッセージに含まれる速度制御情報によって、車両の動きが停車中から前進中に変化したことを認識できている状態において、周期的に送信される第1種メッセージに含まれるギア制御情報が、「ドライブ」を示す状態から「リバース」を示す状態に変化した場合には、図11の例のルールテーブルに基づいて、異常検知ECU110は、ギア制御情報を含むメッセージを異常と判定する。
[1.10 データテーブル]
図12は、データ記憶部115が保持するデータテーブルの一例を示す。データテーブルは、第1種メッセージの監視対象データと、第2種メッセージの比較対象データとのそれぞれについて、例えばメッセージの受信順に記録したテーブルである。このデータテーブルは、異常検知ECU110においてデータ保存処理(図19参照)が行われることにより逐次更新される。
図12の例のデータテーブルは、第1種メッセージの監視対象データとしてのギア制御情報の現在値と過去値とを含み、第2種メッセージの比較対象データとしての速度制御情報の現在値と過去値とを含んでいる。
[1.11 異常判定処理に使用するデータ]
図13は、異常検知ECU110が行う異常判定処理のパターンを示す図である。図13に示す3つのパターンのそれぞれは、異常判定処理で用いるデータが、相違する。
異常判定処理パターン1では、監視対象データの現在値及び過去値、並びに、比較対象データの現在値という3つの値を用いて、その3つの値が所定基準を満たすか否かにより、監視対象データを含むメッセージが正常か異常かの判定を行う。この判定には、例えば、比較対象データが現在値である状態において、監視対象データが特定の変化をしたこと或いは変化しなかったことに対して、正常又は異常を予め規定する所定基準を用いる。
異常判定処理パターン2では、監視対象データの現在値、並びに、比較対象データの現在値及び過去値という3つの値を用いて、その3つの値が所定基準を満たすか否かにより、監視対象データを含むメッセージが正常か異常かの判定を行う。この判定には、例えば、比較対象データが過去値から現在値に変化した状態において、監視対象データが現在、特定の値であったことに対して、正常又は異常を予め規定する所定基準を用いる。
異常判定処理パターン3では、監視対象データの現在値及び過去値、並びに、比較対象データの現在値及び過去値という4つの値を用いて、その4つの値が所定基準を満たすか否かにより、監視対象データを含むメッセージが正常か異常かの判定を行う。この判定には、例えば、比較対象データが過去値から現在値に変化した状態において、監視対象データが特定の変化をしたこと或いは変化しなかったことに対して、正常又は異常を予め規定する所定基準を用いる。
[1.12 異常検知ECU等の処理シーケンス]
以下、図14〜図17を用いて、車載ネットワークシステム100における異常検知ECU110の動作について説明する。
図14は、バス150を流れるメッセージに異常がない場合の異常検知ECU110等の処理シーケンスの一例を示す。ここでは、異常検知ECU110は、図9に示したルールテーブルを用いて異常判定処理を行うものとする。
速度制御ECU130は、速度制御情報「0x00、0x23」を含むメッセージをバス150へ送信する(ステップS1001)。このメッセージを受信した異常検知ECU110は、そのメッセージの速度制御情報から「前進中」を読み取ってデータテーブルに保存する(ステップS1002)。
ギア制御ECU120は、ギア制御情報「0x02」を含むメッセージをバス150へ送信する(ステップS1003)。このメッセージを受信した異常検知ECU110は、そのメッセージのギア制御情報から「ドライブ」を読み取ってデータテーブルに保存する(ステップS1004)。
次に、速度制御ECU130は、速度制御情報「0x00、0x00」を含むメッセージをバス150へ送信する(ステップS1005)。このメッセージを受信した異常検知ECU110は、そのメッセージの速度制御情報から「停車中」を読み取ってデータテーブルに保存する(ステップS1006)。
また、ギア制御ECU120は、ギア制御情報「0x03」を含むメッセージをバス150へ送信する(ステップS1007)。このメッセージを受信した異常検知ECU110は、そのメッセージのギア制御情報から「リバース」を読み取ってデータテーブルに保存する(ステップS1008)。
そして、異常検知ECU110は、監視対象データであるギア制御情報の現在値「リバース」、監視対象データであるギア制御情報の過去値「ドライブ」、比較対象データである速度制御情報の現在値「停車中」の3つを、図9に示すルールテーブルを用いて、正常と判定する(ステップS1009)。
図15は、バス150に不正なメッセージが流れた場合の異常検知ECU110等の処理シーケンスの一例を示す。ここでは、異常検知ECU110は、図9に示したルールテーブルを用いて、異常判定処理パターン1に係る異常判定処理を行うものとする。なお、不正なメッセージは、例えば、攻撃者がギア制御ECU120を支配した状態で、ギア制御ECU120から送信され得る。また、攻撃者は、例えば、ギア制御ECU120による正規のメッセージの送信を止めさせて代わりに不正なメッセージを送信し得る。
速度制御ECU130は、速度制御情報「0x00、0x23」を含むメッセージをバス150へ送信する(ステップS2001)。このメッセージを受信した異常検知ECU110は、そのメッセージの速度制御情報から「前進中」を読み取ってデータテーブルに保存する(ステップS2002)。
ギア制御ECU120は、ギア制御情報「0x02」を含むメッセージをバス150へ送信する(ステップS2003)。このメッセージを受信した異常検知ECU110は、そのメッセージのギア制御情報から「ドライブ」を読み取ってデータテーブルに保存する(ステップS2004)。
次に、速度制御ECU130は、速度制御情報「0x00、0x49」を含むメッセージをバス150へ送信する(ステップS2005)。このメッセージを受信した異常検知ECU110は、そのメッセージの速度制御情報から「前進中」を読み取ってデータテーブルに保存する(ステップS2006)。
また、ギア制御ECU120は、ギア制御情報「0x03」を含むメッセージをバス150へ送信する(ステップS2007)。このメッセージを受信した異常検知ECU110は、そのメッセージのギア制御情報から「リバース」を読み取ってデータテーブルに保存する(ステップS2008)。
そして、異常検知ECU110は、監視対象データであるギア制御情報の現在値「リバース」、監視対象データであるギア制御情報の過去値「ドライブ」、比較対象データである速度制御情報の現在値「前進中」の3つを、図9に示すルールテーブルを用いて、異常と判定する(ステップS2009)。この判定は、例えば、その監視対象データを含むメッセージであるデータフレームの受信中で最後尾のビットをバス150から受信する前に完了する。
続いて、異常検知ECU110は、異常と判定したので、車両保護処理として、監視対象データであるギア制御情報を含むメッセージの送信阻止処理を行う(ステップS2010)。異常検知ECU110は、監視対象データを含むメッセージの送信阻止処理として、例えば、その監視対象データを含むメッセージであるデータフレームの受信中で最後尾のビットをバス150から受信する前に、エラーフレームをバス150に送信する。このエラーフレームにより、受信中であったデータフレームは、バス150上で上書きされて無効化され、バス150に接続された各ECUはその元のデータフレームを完全には受信できなくなる。また、異常検知ECU110は、車両保護処理として更に、外部通信装置140に、異常を示す情報をサーバ400へと送信する異常通知送信処理を行わせるように指示する(ステップS2011)。この指示は、例えば、外部通信装置140が受信するように予め定められたIDを有して異常を示す情報を含むデータフレームである異常通知メッセージをバス150に送信することで行われる。
図16は、バス150に不正なメッセージが流れた場合の異常検知ECU110等の処理シーケンスの別の例を示す。ここでは、異常検知ECU110は、図10に示したルールテーブルを用いて、異常判定処理パターン2に係る異常判定処理を行うものとする。
速度制御ECU130は、速度制御情報「0x00、0x00」を含むメッセージをバス150へ送信する(ステップS3001)。このメッセージを受信した異常検知ECU110は、そのメッセージの速度制御情報から「停車中」を読み取ってデータテーブルに保存する(ステップS3002)。
ギア制御ECU120は、ギア制御情報「0x02」を含むメッセージをバス150へ送信する(ステップS3003)。このメッセージを受信した異常検知ECU110は、そのメッセージのギア制御情報から「ドライブ」を読み取ってデータテーブルに保存する(ステップS3004)。
次に、速度制御ECU130は、速度制御情報「0x10、0x45」を含むメッセージをバス150へ送信する(ステップS3005)。このメッセージを受信した異常検知ECU110は、そのメッセージの速度制御情報から「後退中」を読み取ってデータテーブルに保存する(ステップS3006)。
また、ギア制御ECU120は、ギア制御情報「0x02」を含むメッセージをバス150へ送信する(ステップS3007)。このメッセージを受信した異常検知ECU110は、そのメッセージのギア制御情報から「ドライブ」を読み取ってデータテーブルに保存する(ステップS3008)。
そして、異常検知ECU110は、監視対象データであるギア制御情報の現在値「ドライブ」、比較対象データである速度制御情報の現在値「後退中」、比較対象データである速度制御情報の過去値「停車中」の3つを、図10に示すルールテーブルを用いて、異常と判定する(ステップS3009)。
続いて、異常検知ECU110は、異常と判定したので、車両保護処理として、監視対象データであるギア制御情報を含むメッセージの送信阻止処理を行う(ステップS3010)。異常検知ECU110は、例えば、その監視対象データを含むメッセージであるデータフレームの受信中に、送信阻止処理としてエラーフレームをバス150に送信する。また、異常検知ECU110は、車両保護処理として更に、外部通信装置140に、異常を示す情報をサーバ400へと送信する異常通知送信処理を行わせるように指示する(ステップS3011)。
図17は、バス150に不正なメッセージが流れた場合の異常検知ECU110等の処理シーケンスの更に別の例を示す。ここでは、異常検知ECU110は、図11に示したルールテーブルを用いて、異常判定処理パターン3に係る異常判定処理を行うものとする。
速度制御ECU130は、速度制御情報「0x00、0x00」を含むメッセージをバス150へ送信する(ステップS4001)。このメッセージを受信した異常検知ECU110は、そのメッセージの速度制御情報から「停車中」を読み取ってデータテーブルに保存する(ステップS4002)。
ギア制御ECU120は、ギア制御情報「0x02」を含むメッセージをバス150へ送信する(ステップS4003)。このメッセージを受信した異常検知ECU110は、そのメッセージのギア制御情報から「ドライブ」を読み取ってデータテーブルに保存する(ステップS4004)。
次に、速度制御ECU130は、速度制御情報「0x00、0x45」を含むメッセージをバス150へ送信する(ステップS4005)。このメッセージを受信した異常検知ECU110は、そのメッセージの速度制御情報から「前進中」を読み取ってデータテーブルに保存する(ステップS4006)。
また、ギア制御ECU120は、ギア制御情報「0x03」を含むメッセージをバス150へ送信する(ステップS4007)。このメッセージを受信した異常検知ECU110は、そのメッセージのギア制御情報から「リバース」を読み取ってデータテーブルに保存する(ステップS4008)。
そして、異常検知ECU110は、監視対象データであるギア制御情報の現在値「リバース」、監視対象データであるギア制御情報の過去値「ドライブ」、比較対象データである速度制御情報の現在値「前進中」、比較対象データである速度制御情報の過去値「停車中」の4つを、図11に示すルールテーブルを用いて、異常と判定する(ステップS4009)。
続いて、異常検知ECU110は、異常と判定したので、車両保護処理として、監視対象データであるギア制御情報を含むメッセージの送信阻止処理を行う(ステップS4010)。異常検知ECU110は、例えば、その監視対象データを含むメッセージであるデータフレームの受信中に、送信阻止処理としてエラーフレームをバス150に送信する。また、異常検知ECU110は、車両保護処理として更に、外部通信装置140に、異常を示す情報を他の車両500へと送信する異常通知送信処理を行わせるように指示する(ステップS4011)。これにより、外部通信装置140が、異常を示す情報を車両500へ送信する。そして車両500は、異常を示す情報を受信すると、例えばインストルメンタルパネル等を制御する一種のECUであるヘッドユニットで、警告通知を行う(ステップS4012)。ステップS4012では、ヘッドユニットは、例えば、インストルメンタルパネルに設けられたディスプレイの表示等を制御し、そのディスプレイの表示内容を、運転者に異常を知らせるための警告通知用表示に切り替える。
[1.13 異常検知ECUにおける処理]
図18は、異常検知ECU110により実行される処理の一例を示すフローチャートである。以下、同図に即して異常検知ECU110の動作について説明する。
異常検知ECU110は、バス150に流れるメッセージであるデータフレームのIDフィールドまで受信してIDを確認する(ステップS100)。
次に異常検知ECU110は、確認したIDが、ルール記憶部114で保持されるルールテーブルで示される監視対象データ又は比較対象データの種類を示すと予め規定されているIDであるか否かを判断し(ステップS110)、否定的に判断した場合には、その受信中のデータフレームを破棄して、処理を終える。ステップS110で肯定的に判断した場合には、異常検知ECU110は、バス150上に現れるデータフレームのデータフィールドまで受信する(ステップS120)。ステップS120では、必ずしもデータフィールドの全てのビットを受信するまで待つ必要はなく、ルールテーブルに基づく判定を行うために必要なビットの値まで受信した時点で次に処理を進めて良い。
次に異常検知ECU110は、データ保存処理(図19参照)により、受信中のデータフレームのデータフィールドが示す情報をデータテーブルに記録する(ステップS130)。
続いて、異常検知ECU110は、ルール記憶部114で保持されるルールテーブルを参照し、受信中のメッセージが監視対象データを含むデータフレームであるか否かを判断する(ステップS140)。そして、監視対象データを含むデータフレームであれば異常判定処理(図20〜図22参照)を行って、その受信中のデータフレームが正常であるか異常であるかを判定する(ステップS150)。異常検知ECU110は、ステップS140で、監視対象データを含むデータフレームでないと判断した場合には、処理を終える。
ステップS150での判定の後に、異常検知ECU110は、異常判定処理での判定の結果が、正常であるか異常であるかを判断し(ステップS160)、異常である場合に限り、車両保護処理(図23、図24参照)を行う(ステップS170)。
[1.14 異常検知ECU110におけるデータ保存処理]
図19は、異常検知ECU110におけるデータ保存処理の一例を示すフローチャートである。以下、同図に即してデータ保存処理を説明する。
異常検知ECU110は、受信中のデータフレームのデータフィールドが示す情報を、そのデータフレームのIDに対応する、データテーブルのデータとして保存する(ステップS121)。
次に、異常検知ECU110は、ステップS121で情報を保存した結果として、データテーブルのデータ数が一定数以上になったかどうかを判断し(ステップS122)、一定数以上になった場合に限って、最も古いデータを削除する(ステップS123)。この一定数は、例えば、異常判定処理で判定に用いられるデータを考慮して予め定められた数であり、例えば現在値と1つの過去値とを保存する場合では3となる。
[1.15 異常検知ECU110における異常判定処理]
図20、図21、図22は、異常検知ECU110における異常判定処理を示すフローチャートであり、それぞれ、異常判定処理パターン1に係る異常判定処理、異常判定処理パターン2に係る異常判定処理、異常判定処理パターン3に係る異常判定処理を示す。
図20で示す異常判定処理パターン1に係る異常判定処理では、監視対象データの現在値及び過去値、並びに、比較対象データの現在値という3つの値を用いて、判定を行う。なお、図9のルールテーブルでは、監視対象データに対応する比較対象データは、速度制御情報だけであることとしたが、比較対象データが複数存在しても良い。例えば参照データを含む第3種メッセージ(つまり第1種メッセージ及び第2種メッセージと異なるIDを有するデータフレーム)におけるその参照データを、2つ目の比較対象データとして取り扱っても良い。図20では、比較対象データが複数存在し得る場合に対応した異常判定処理の例を示している。以下、図20に即して異常判定処理パターン1に係る異常判定処理を説明する。
まず、異常検知ECU110は、データ記憶部115におけるデータテーブルに監視対象データの過去値が存在するか否かを判断する(ステップS141)。異常検知ECU110は、データテーブルに監視対象データの過去値が存在しなければ、異常判定処理を終了する。
データテーブルに監視対象データの過去値が存在する場合には、異常検知ECU110は、データテーブルの中で、未判定の比較対象データを選択する(ステップS142)。そして、異常検知ECU110は、比較対象データが現在値つまり最新の状態における監視対象データの変化を判定するために、図9に示したルールテーブルを参照する(ステップS143)。
次に異常検知ECU110は、ルールテーブルに基づいて、監視対象データの変化が正常なものか否かを判定して(ステップS144)、否定的に判定した場合に、監視対象データを含むデータフレームが異常であると判定して、異常判定処理を終える(ステップS147)。
ステップS144で、監視対象データの変化が正常なものと判断した場合に、異常検知ECU110は、全ての比較対象データについてステップS144での判定を行ったか否かを判断する(ステップS145)。全ての比較対象データについて判定を行っていない場合には、異常検知ECU110は、ステップS142での、比較対象データを選択する処理に戻る。また、全ての比較対象データについて判定を行った場合に、異常検知ECU110は、監視対象データを含むデータフレームが正常であると判定して、異常判定処理を終える(ステップS146)。
図21で示す異常判定処理パターン2に係る異常判定処理では、監視対象データの現在値、並びに、比較対象データの現在値及び過去値という3つの値を用いて、判定を行う。なお、図10のルールテーブルでは、監視対象データに対応する比較対象データは、速度制御情報だけであることとしたが、比較対象データが複数存在しても良い。例えば、バス150に接続されたいずれかのECUに周期的に送信される参照データを含む第3種メッセージにおけるその参照データを、2つ目の比較対象データとして取り扱っても良い。図21では、比較対象データが複数存在し得る場合に対応した異常判定処理の例を示している。以下、図21に即して異常判定処理パターン2に係る異常判定処理を説明する。なお、この異常判定処理パターン2に係る異常判定処理において、図20で示した異常判定処理パターン1に係る異常判定処理と同様の処理ステップについては、図21でも同じ符号を付しており、ここでは説明を適宜省略する。
まず、異常検知ECU110は、未判定の比較対象データを選択する(ステップS142)。
次に、異常検知ECU110は、データテーブルに比較対象データの過去値が存在するか否かを判断する(ステップS241)。異常検知ECU110は、データテーブルに比較対象データの過去値が存在しなければ、ステップS145での判断に移る。ステップS241で、データテーブルに比較対象データの過去値が存在すると判断した場合には、異常検知ECU110は、受信した監視対象データに対応した、図10に示したルールテーブルを参照する(ステップS242)。
次に異常検知ECU110は、ルールテーブルに基づいて、比較対象データの変化が正常なものか否かを判定して(ステップS243)、否定的に判定した場合に、監視対象データを含むデータフレームが異常であると判定して、異常判定処理を終える(ステップS147)。
ステップS243で、比較対象データの変化が正常なものと判断した場合に、異常検知ECU110は、全ての比較対象データについてステップS243での判定を行ったか否かを判断する(ステップS145)。全ての比較対象データについて判定を行っていない場合には、異常検知ECU110は、ステップS142での、比較対象データを選択する処理に戻る。また、全ての比較対象データについて判定を行った場合に、異常検知ECU110は、監視対象データを含むデータフレームが正常であると判定して、異常判定処理を終える(ステップS146)。
図22で示す異常判定処理パターン3に係る異常判定処理では、監視対象データの現在値及び過去値、並びに、比較対象データの現在値及び過去値という4つの値を用いて、判定を行う。なお、図11のルールテーブルでは、監視対象データに対応する比較対象データは、速度制御情報だけであることとしたが、比較対象データが複数存在しても良い。例えば参照データを含む第3種メッセージにおけるその参照データを、2つ目の比較対象データとして取り扱っても良い。図22では、比較対象データが複数存在し得る場合に対応した異常判定処理の例を示している。以下、図22に即して異常判定処理パターン3に係る異常判定処理を説明する。なお、この異常判定処理パターン3に係る異常判定処理において、図20或いは図21で示した異常判定処理と同様の処理ステップについては、図22でも同じ符号を付しており、ここでは説明を適宜省略する。
まず、異常検知ECU110は、データテーブルに監視対象データの過去値が存在するか否かを判断する(ステップS141)。異常検知ECU110は、データテーブルに監視対象データの過去値が存在しなければ、異常判定処理を終了する。
データテーブルに監視対象データの過去値が存在する場合には、異常検知ECU110は、データテーブルの中で、未判定の比較対象データを選択する(ステップS142)。
次に、異常検知ECU110は、データテーブルに比較対象データの過去値が存在するか否かを判断する(ステップS241)。異常検知ECU110は、データテーブルに比較対象データの過去値が存在しなければ、ステップS145での判断に移る。ステップS241で、データテーブルに比較対象データの過去値が存在すると判断した場合には、異常検知ECU110は、比較対象データの過去値から現在値への変化、つまり最新の比較対象データの変化に対応した、図11に示したルールテーブルを参照する(ステップS341)。
次に異常検知ECU110は、ルールテーブルに基づいて、監視対象データの変化が正常なものか否かを判定して(ステップS144)、否定的に判定した場合に、監視対象データを含むデータフレームが異常であると判定して、異常判定処理を終える(ステップS147)。
ステップS144で、監視対象データの変化が正常なものと判断した場合に、異常検知ECU110は、全ての比較対象データについてステップS144での判定を行ったか否かを判断する(ステップS145)。全ての比較対象データについて判定を行っていない場合には、異常検知ECU110は、ステップS142での、比較対象データを選択する処理に戻る。また、全ての比較対象データについて判定を行った場合に、異常検知ECU110は、監視対象データを含むデータフレームが正常であると判定して、異常判定処理を終える(ステップS146)。
[1.16 異常検知ECU110における車両保護処理]
図23及び図24のそれぞれは、異常検知ECU110による車両保護処理の例を示す。
図23の例では、車両保護処理は、現在受信中のメッセージの送信阻止によって車両200の安全を確保する例を示す。この例では、異常検知ECU110が、バス150から受信中の監視対象データを含むメッセージを無効化する所定メッセージを送信する(ステップS171)。具体的には、所定メッセージは、エラーフレームである。
図24の例では、車両保護処理は、車両200に異常が発生していることを、外部通信装置140を用いてサーバ400に通知する例を示す。この例では、異常検知ECU110が、外部通信装置140に指示することで、外部通信装置140から外部ネットワーク300を介して異常の発生をサーバ400に通知する(ステップS172)。ステップS172では、外部通信装置140が、車両200の周囲に所在する他の車両に車車間通信によって異常を示す情報を送信しても良い。外部通信装置140は、異常を示す情報に、車両200についての車両識別番号(VIN:Vehicle Identification Number)、車台番号等を含ませて、サーバ400に送信しても良い。サーバ400は、車両200から通知を受けて、他の車両に対して異常を示す情報の送信を行っても良い。サーバ400は、例えば、車両200から通知された車両識別番号、車台番号等に基づいて、これらと車種とを対応付けたリスト情報を参照する等によって、車両200と同一の車種の車両を特定して、その同一の車種の車両に対して、異常を示す情報の送信を行うこととしても良い。なお、車種が同一の車両同士は、例えば、車載ネットワークの構成が概ね同一である。また、同一の車種の車両は、例えば車台番号における型式(つまり車両型式)が同一の車両であり、或いは、例えば車両識別番号における先頭からシリアル番号の前までの桁の値が同一の車両である。また、外部通信装置140が、車両200と同一車種である車両に対して、異常を示す情報を送信することとしても良い。これらの異常の通知によって、車両200以外の車両においても危険の回避等が可能となり得る。
車両保護処理は、図23及び図24に示した各処理を組み合わせたものであっても良いし、これ以外の処理であっても良い。なお、車両200は、異常検知ECU110での異常判定処理により、メッセージに係る異常が発生していると判定された場合に、車両200の外部に所在するサーバ400、車両500等に異常を通知する通知装置を備え得る。この車両200における通知装置の一例が、外部通信装置140であるが、通知装置は、通信機能を有する装置に限られず、光、音等を発することで周囲の車両に注意を促す警報装置(例えば非常点滅表示灯の点灯制御を行う装置、警笛を鳴らす制御を行う装置等)であっても良い。
[1.17 異常の通知を受信した車両500における警告通知]
図25は、車両500のヘッドユニットにおける警告通知の一例を示す図である。車両500は、車両200の異常検知ECU110によって車両保護処理として、同一の車種に対して異常を示す情報の送信がなされた場合に、その情報を、直接又はサーバ400経由で受信する。そして、車両500は、ヘッドユニットで警告通知として、例えば図25に示すような警告通知用表示をディスプレイに表示する。図25の例では、車両500と同じ車種の車両で異常が発生していることから、運転者に迅速に停車することを勧めるメッセージが警告通知用表示としてディスプレイに表示されている。これにより、同じ車種に対する攻撃に対する被害を未然に防止できる。なお、ヘッドユニットでの警告通知は、警告通知用表示のディスプレイへの表示の他、音声出力その他の方法で行われても良い。
[1.18 実施の形態1の効果]
本実施の形態に係る車載ネットワークシステム100では、攻撃者が、車載ネットワークに接続する正規のECUから送信される周期と同様の周期で不正なメッセージを送信したとしても、受信した監視対象データと、比較対象データの最新の値としての現在値と、監視対象データの過去値及び比較対象データの過去値の少なくとも1つとに基づいてメッセージが異常であることを判定可能となる。そして、車載ネットワークシステム100は、この判定結果に応じて攻撃に対処可能となる。また、車載ネットワークシステム100を含む複数の車両及びサーバで構成される異常検知システム10では、車両間での異常の発生の通知によって、攻撃の影響を抑えることが可能になる。
(実施の形態2)
次に、本発明の実施の形態2として、車載ネットワークを流れるメッセージについての異常の検知が可能な車載ネットワークシステムを搭載する車両と、他の車両と、サーバとを含む異常検知システムについて、図面を用いて説明する。
[2.1 異常検知システムの全体構成]
本発明の実施の形態2における異常検知システムの構成については、実施の形態1にて説明した異常検知システム10の構成と同様であるため、ここではその説明を省略する。
[2.2 車載ネットワークシステム2600の構成]
図26は、車載ネットワークシステム2600の構成を示す。車載ネットワークシステム2600は、CANプロトコルに従って通信する通信システムの一例であり、制御装置、センサ、アクチュエータ、ユーザインタフェース装置等の各種機器が搭載された車両200における通信システムである。車載ネットワークシステム2600は、バス(ネットワークバス)を介してフレーム(メッセージとも称する)に係る通信を行う複数のECUを備え、異常検知方法を用いる。具体的には図26に示すように車載ネットワークシステム2600は、バス2605と、バス2605に接続された異常検知ECU2601、ハンドル制御指示ECU2602、ハンドル制御ECU2603、及び、一種のECUである外部通信装置2604を含んで構成される。バス2605は、車載ネットワークの有線通信路であり、各ECUに接続される。なお、車載ネットワークシステム2600には、異常検知ECU2601、ハンドル制御指示ECU2602、ハンドル制御ECU2603、及び、外部通信装置2604以外にもいくつものECUが含まれ得るが、ここでは便宜上、主に図26に示したECUに注目して説明を行う。
各ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行されるプログラム(コンピュータプログラム)を記憶することができる。例えばプロセッサが、プログラムに従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。ECUは、各種機器に接続され得る。
各ECUは、CANプロトコルに従って、バス2605を介してフレームの授受を行い得る。ECU間で授受されるフレームにはデータフレームがある。データフレームは、例えば、車両の状態に関するデータ、車両に対して制御を指示するデータ等といった、車両の制御のために用いられるデータ等を含み得る。
異常検知ECU2601は、バス2605に接続され、車載ネットワークのバス2605に流れる第1種メッセージ、第2種メッセージ等を受信して、第1種メッセージが正常か異常かを判定し、判定の結果に基づいて所定の処理を行うECUである。異常検知ECU2601は、第1種メッセージが正常か異常かの判定に、受信した第2種メッセージを用いる。第1種メッセージは、監視対象データを含むこととして定められた、所定の識別情報(ID)を有するメッセージである。また、第2種メッセージは、比較対象データを含むこととして定められた、第1種メッセージとは異なる識別情報(ID)を有するメッセージである。
ハンドル制御指示ECU2602は、例えば、駐車支援機能やレーンキープ機能等のハンドル操作を伴う先進運転者支援システム(ADAS:Advanced Driver Assistance System)を実現する場合に、一定の周期で、ハンドルを制御する指示(例えば、ハンドルを回転させる角度等)に関するハンドル制御指示情報を送信する。
ハンドル制御ECU2603は、例えばハンドルに接続されており、ハンドル制御指示ECU2602が送信するハンドル制御指示情報を受信して、受信したハンドル制御指示情報に基づきハンドルを制御すると共に、一定の周期で、ハンドルの現在の状態(例えば、ハンドルが何度回転しているか等)に関するハンドル状態情報を送信する。
外部通信装置2604は、外部ネットワーク300に接続し、異常を示す情報等といった車両200に関する情報を、車両200の外部に送信する機能を有する。
[2.3 異常検知ECU2601の構成]
図27は、異常検知ECU2601の構成を示す。異常検知ECU2601は、同図に示すように、判定部2701と、受信部2702と、送信部2703と、ルール記憶部2704と、データ記憶部2705とを含んで構成される。図27に示した異常検知ECU2601の各構成要素は、異常検知ECU2601のメモリ等の記憶媒体、通信回路、メモリに格納されたプログラムを実行するプロセッサ等で実現され得る。
判定部2701は、受信部2702が受信中のデータフレームと、データ記憶部2705に保持されて逐次更新されるデータテーブルにおけるデータ(図34参照)と、ルール記憶部2704に保持されるルールテーブルが示すルール(図33参照)とを用いて異常判定処理を行うことで、受信中のデータフレームが正常か異常かを判定する。判定部2701は、受信中のデータフレームが異常であると判定した場合には、後述する車両保護処理(図40、図41参照)を行う。判定部2701は、例えばプログラムを実行するプロセッサ等で実現され得る。
受信部2702は、車載ネットワークシステム2600内の各ECUから送信されてバス2605に現れるメッセージ(つまりデータフレーム)が、ルールテーブルの情報から、監視対象データの判定に必要な識別情報(ID)を有するメッセージであれば、そのメッセージを受信する。また、受信部2702は、受信したメッセージの内容をデータ記憶部2705が保持するデータテーブルに含ませるようにそのデータテーブルを更新する処理であるデータ保存処理(図38参照)を行う。受信部2702は、通信回路等により実現され得る。
送信部2703は、判定部2701の制御下で、判定部2701による判定の結果に応じて送信を行う。送信部2703は、判定部2701が受信中のデータフレームを異常と判定した場合に、例えば、このデータフレームの送信阻止処理として、このデータフレームを無効化する所定メッセージをバス2605に送信する。所定メッセージは、例えばエラーフレームである。また、例えば、送信部2703は、判定部2701が異常と判定した場合において、外部通信装置2604にサーバ400或いは他の車両500に対して、車両200での異常の発生を通知させるべく、外部通信装置2604が受信するように予め定められた識別情報(ID)を有して異常を示す情報を含むメッセージを、バス2605に送信する。送信部2703は、通信回路等により実現され得る。
記憶部つまりルール記憶部2704及びデータ記憶部2705は、例えば記憶媒体の一領域で実現される。
ルール記憶部2704は、監視対象データと、比較対象データとの関係についてのルールテーブルを保持する。
データ記憶部2705は、受信部2702により受信されたメッセージの識別情報(ID)に対応して、監視対象データ或いは比較対象データを含むメッセージの内容であるデータを含むデータテーブルを記憶する。
[2.4 データフレームフォーマット]
CANプロトコルに従ったネットワークで用いられるデータフレームについては、実施の形態1と同様であるため、ここではその説明を省略する。
[2.5 エラーフレームフォーマット]
CANプロトコルで規定されるエラーフレームのフォーマットについては、実施の形態1と同様であるため、ここではその説明を省略する。
[2.6 ハンドル制御指示ECU2602が送信するデータフレーム]
図28は、ハンドル制御指示ECU2602が送信する、ハンドル制御指示情報を含むデータフレームの一例を示す図である。この例では、ハンドル制御指示情報を含むデータフレームは、所定値「0x10」であるIDを有し、DLCが示すデータ長は3である。このデータフレームのデータフィールドにおけるデータがハンドル制御指示情報を示す。ハンドル制御指示情報に係るデータの1バイト目は、当該ハンドル制御指示が有効か、無効かを表し、2バイト目から3バイト目は、ハンドルの操舵指示角(ハンドルを回転させる角度の指示)を表す。
図29は、具体例としてのハンドル制御指示情報のデータ値の示す意味を、データの読み取り結果として表している。ハンドル制御指示情報に係るデータの1バイト目が0x01の場合は、当該ハンドル制御指示情報が有効であり、0x01以外の場合は、当該ハンドル制御指示が無効であることを意味する。ここで、ハンドル制御指示情報が「有効」とは、当該ハンドル制御指示情報を受信したハンドル制御ECU2603が、当該ハンドル制御指示情報に従いハンドルを制御することを意味し、「無効」とは、ハンドル制御ECU2603が、当該ハンドル制御指示情報には従わずハンドルを制御しないことを意味する。
更に、ハンドル制御指示情報に係るデータの2バイト目から3バイト目が操舵指示角を示す。操舵指示角とは、ハンドルを何度傾けた状態にさせるか(言い換えればハンドルを何度まで回転させるか)を示し、操舵指示角が「右方向に45度」の場合、右方向に45度だけ回転させた状態までハンドルを動かし、「左方向に45度」の場合、左方向に45度だけ回転させた状態までハンドルを動かすことを意味する。ここでは、車両が直進している時のハンドルの角度を基準として0度とする。
図29に例示したデータフレームのデータは、1バイト目が0x01であり、2バイト目から3バイト目が0x02、0xFDであるので、当該ハンドル制御指示情報を受信した異常検知ECU2601及びハンドル制御ECU2603は、このデータフレームのハンドル制御指示情報を「制御指示が有効」であり、「ハンドルを右方向に45度まで回転させる」として読み取る。
ここで、2バイト目から3バイト目が示す操舵指示角は、16進表記を10進表記に変換し、その変換した値と「720」との差分がハンドルを回転させる際の目標角度となる。例えば、変換した値が「720」よりも大きい場合は右方向の回転を意味し、小さい場合は左方向の回転を意味する。また、変換した値と「720」との差分値が目標とするハンドルの角度を示す。具体的には、変換した値が「765」の場合、ハンドルを右方向に45度となるまで回転させ、変換した値が「675」の場合、ハンドルを左方向に45度となるまで回転させることを意味する。
[2.7 ハンドル制御ECU2603が送信するデータフレーム]
図30は、ハンドル制御ECU2603が送信する、ハンドル状態情報を含むデータフレームの一例を示す図である。この例では、ハンドル状態情報を含むデータフレームは、ハンドル制御指示情報を含むデータフレームとは異なる値「0x20」であるIDを有し、DLCが示すデータ長は2である。このデータフレームのデータフィールドにおけるデータがハンドル状態情報を示す。ハンドル状態情報に係るデータの1バイト目から2バイト目は、ハンドルの操舵状態角(現在ハンドルが何度傾いているかの状態)を表す。
図31は、具体例としてのハンドル状態情報のデータ値の示す意味を、データの読み取り結果として表している。ハンドル状態情報に係るデータの1バイト目から2バイト目が操舵状態角を示す。操舵状態角とは、現在のハンドルの回転角(ハンドルが何度傾いているかの状態)を示し、操舵状態角が「右方向に40度」の場合、現在のハンドルの状態は右方向に40度だけ傾いた状態であり、「左方向に40度」の場合、現在のハンドルの状態は左方向に40度だけ傾いた状態であることを意味する。ここでは、車両が直進している時のハンドルの角度を基準として0度とする。
図31に例示したデータフレームのデータは、1バイト目から2バイト目が0x02、0xF8であるので、当該ハンドル状態情報を受信する異常検知ECU2601、ハンドル制御指示ECU2602は、このデータフレームのハンドル状態情報を「現在のハンドルは右方向に40度だけ傾いた状態である」として読み取る。
ここで、1バイト目から2バイト目が示す操舵状態角は、16進表記を10進表記に変換し、その変換した値と「720」との差分が現在のハンドルの傾き度合いとなる。例えば、変換した値が「720」よりも大きい場合は右方向に傾いていることを意味し、小さい場合は左方向に傾いていることを意味する。また、その差分値がハンドルの傾いている角度を示す。具体的には、変換した値が「760」の場合、現在のハンドルは右方向に40度だけ傾いており、変換した値が「680」の場合、現在のハンドルは左方向に40度だけ傾いていることを意味する。
[2.8 ルールテーブルのルール]
図32は、ルール記憶部2704が保持するルールテーブルで規定されるルールの概念を示す図である。
車載ネットワークのバス2605に流される、所定値のIDを有するメッセージである第3種メッセージにおける特定のビット列であるデータの値を、値Cとし、所定値と異なる特定値のIDを有するメッセージである第4種メッセージにおける特定のビット列であるデータの値を、値Dとして、ルールを説明する。第3種メッセージと第4種メッセージとがそれぞれ周期的に逐次送信される場合に、時の経過に応じて、バス2605に現れる各メッセージが示す値Cと値Dという2つの値について、正常状態において一定の規則に従い値の変化が生じるのであれば、この値の差分値をルールとして規定する。ここで、第3種メッセージの値Cを監視対象データとし、第4種メッセージの値Dを比較対象データとする。第3種メッセージが正常であるか否かを判定する場合、第3種メッセージに含まれる監視対象データ(値C)と、第4種メッセージに含まれる比較対象データ(値D)の差分値を算出し、算出した差分値が予め定められた一定範囲内か否かを判定することで、第3種メッセージが正常であるか否かを判定する。
[2.9 ルールテーブルの具体例]
図33は、ルール記憶部2704が保持するルールテーブルの例を示す。この例では、監視対象データはハンドル制御指示情報であり、比較対象データはハンドル状態情報であるとしている。即ち、監視対象データは、ハンドル制御指示情報のデータフィールドに、つまり、所定値(図33の例では「0x10」)をIDフィールドに含むデータフレームのデータフィールドに含まれる。また、比較対象データは、ハンドル状態情報のデータフィールドに、つまり、所定値とは異なる特定値(図33の例では「0x20」)をIDフィールドに含むデータフレームのデータフィールドに含まれる。また、ここでのルールは、「監視対象データと比較対象データの値の差分値が30以内の場合」を正常としている。
具体例として、異常検知ECU2601が、図28に示すハンドル制御指示情報と図30に示すハンドル状態情報とを受信した場合の異常判定処理の一例を示す。異常検知ECU2601は、ハンドル制御指示情報(図28)を受信した際、最後に受信したハンドル状態情報(図30)を用いて、当該ハンドル制御指示情報が正常か否かの判定を行う。図28の例における監視対象データは「0x02、0xFD」であり(10進表記では765)、図30の例における比較対象データは「0x02、0xF8」であり(10進表記では760)、その差分値は「5」である。よって、ハンドル制御指示情報とハンドル状態情報との差分はルールで規定されている「30」以内であり、異常検知ECU2601は、受信したハンドル制御指示情報を正常であると判定する。
[2.10 データテーブル]
図34は、データ記憶部2705が保持するデータテーブルの一例を示す。データテーブルは、第3種メッセージの監視対象データと、第4種メッセージの比較対象データとのそれぞれについて、例えばメッセージの受信順に記録したテーブルである。このデータテーブルは、異常検知ECU2601においてデータ保存処理(図38参照)が行われることにより逐次更新される。
図34の例のデータテーブルは、第3種メッセージの監視対象データとしてのハンドル制御指示情報(ID=0x10)の現在値と過去値とを含み、第4種メッセージの比較対象データとしてのハンドル状態情報(ID=0x20)の現在値と過去値とを含んでいる。
[2.11 異常検知ECU等の処理シーケンス]
以下、図35、図36を用いて、車載ネットワークシステム2600における異常検知ECU2601の動作について説明する。
図35は、バス2605を流れるメッセージに異常がない場合の異常検知ECU2601等の処理シーケンスの一例を示す。ここでは、異常検知ECU2601は、図33に示したルールテーブルを用いて異常判定処理を行うものとする。
ハンドル制御ECU2603は、ハンドル状態情報「0x02、0xF8」を含むメッセージをバス2605へ送信する(ステップS3501)。このメッセージを受信した異常検知ECU2601は、そのメッセージのハンドル状態情報から「操舵状態角」を読み取ってデータテーブルに保存する(ステップS3502)。
ハンドル制御指示ECU2602は、ハンドル制御指示情報「0x01、0x02、0xFD」を含むメッセージをバス2605へ送信する(ステップS3503)。このメッセージを受信した異常検知ECU2601は、そのメッセージのハンドル制御指示情報から「操舵指示角」を読み取ってデータテーブルに保存する(ステップS3504)。
そして、異常検知ECU2601は、監視対象データであるハンドル制御指示情報の現在値「操舵指示角」、比較対象データであるハンドル状態情報の過去値「操舵状態角」の2つを、図33に示すルールテーブルを用いて、正常と判定する(ステップS3505)。ここで、過去値とは、現在に最も近い過去の値である。言い換えれば、定期的に値を受信している場合、現在値がm回目に受信したときの値である場合、過去値はm−1回目に受信したときの値である。
図36は、バス2605に不正なメッセージが流れた場合の異常検知ECU2601等の処理シーケンスの一例を示す。ここでは、異常検知ECU2601は、図33に示したルールテーブルを用いて異常判定処理を行うものとする。なお、不正なメッセージは、例えば、攻撃者がハンドル制御指示ECU2602を支配した状態で、ハンドル制御指示ECU2602から送信され得る。また、攻撃者は、例えば、ハンドル制御指示ECU2602による正規のメッセージの送信を止めさせて代わりに不正なメッセージを送信し得る。
ハンドル制御ECU2603は、ハンドル状態情報「0x02、0xF8」を含むメッセージをバス2605へ送信する(ステップS3601)。このメッセージを受信した異常検知ECU2601は、そのメッセージのハンドル状態情報から「操舵状態角」を読み取ってデータテーブルに保存する(ステップS3602)。
ハンドル制御指示ECU2602は、ハンドル制御指示情報「0x01、0x03、0x20」を含むメッセージをバス2605へ送信する(ステップS3603)。このメッセージを受信した異常検知ECU2601は、そのメッセージのハンドル制御指示情報から「操舵指示角」を読み取ってデータテーブルに保存する(ステップS3604)。
そして、異常検知ECU2601は、監視対象データであるハンドル制御指示情報の現在値「操舵指示角」、比較対象データであるハンドル状態情報の過去値「操舵状態角」の2つを、図33に示すルールテーブルを用いて、異常と判定する(ステップS3605)。この判定は、例えば、その監視対象データを含むメッセージであるデータフレームの受信中で最後尾のビットをバス2605から受信する前に完了する。
続いて、異常検知ECU2601は、異常と判定したので、車両保護処理として、監視対象データであるハンドル制御指示情報を含むメッセージの送信阻止処理を行う(ステップS3606)。異常検知ECU2601は、監視対象データを含むメッセージの送信阻止処理として、例えば、その監視対象データを含むメッセージであるデータフレームの受信中で最後尾のビットをバス2605から受信する前に、エラーフレームをバス2605に送信する。このエラーフレームにより、受信中であったデータフレームは、バス2605上で上書きされて無効化され、バス2605に接続された各ECUはその元のデータフレームを完全には受信できなくなる。また、異常検知ECU2601は、車両保護処理として更に、外部通信装置2604に、異常を示す情報をサーバ400へと送信する異常通知送信処理を行わせるように指示する(ステップS3607)。この指示は、例えば、外部通信装置2604が受信するように予め定められたIDを有して異常を示す情報を含むデータフレームである異常通知メッセージをバス2605に送信することで行われる。
[2.12 異常検知ECUにおける処理]
図37は、異常検知ECU2601により実行される処理の一例を示すフローチャートである。以下、同図に即して異常検知ECU2601の動作について説明する。
異常検知ECU2601は、バス2605に流れるメッセージであるデータフレームのIDフィールドまで受信してIDを確認する(ステップS3701)。
次に異常検知ECU2601は、確認したIDが、ルール記憶部2704で保持されるルールテーブルで示される監視対象データ又は比較対象データの種類を示すと予め規定されているIDであるか否かを判断し(ステップS3702)、否定的に判断した場合には、その受信中のデータフレームを破棄して、処理を終える。ステップS3702で肯定的に判断した場合には、異常検知ECU2601は、バス2605上に現れるデータフレームのデータフィールドまで受信する(ステップS3703)。ステップS3703では、必ずしもデータフィールドの全てのビットを受信するまで待つ必要はなく、ルールテーブルに基づく判定を行うために必要なビットの値まで受信した時点で次に処理を進めて良い。
次に異常検知ECU2601は、データ保存処理(図38参照)により、受信中のデータフレームのデータフィールドが示す情報をデータテーブルに記録する(ステップS3704)。
続いて、異常検知ECU2601は、ルール記憶部2704で保持されるルールテーブルを参照し、受信中のメッセージが監視対象データを含むデータフレームであるか否かを判断する(ステップS3705)。そして、監視対象データを含むデータフレームであれば異常判定処理(図39参照)を行って、その受信中のデータフレームが正常であるか異常であるかを判定する(ステップS3706)。異常検知ECU2601は、ステップS3705で、監視対象データを含むデータフレームでないと判断した場合には、処理を終える。
ステップS3706での判定の後に、異常検知ECU2601は、異常判定処理での判定の結果が、正常であるか異常であるかを判断し(ステップS3707)、異常である場合に限り、車両保護処理(図40、図41参照)を行う(ステップS3708)。
[2.13 異常検知ECU2601におけるデータ保存処理]
図38は、異常検知ECU2601におけるデータ保存処理の一例を示すフローチャートである。以下、同図に即してデータ保存処理を説明する。
異常検知ECU2601は、受信中のデータフレームのデータフィールドが示す情報を、そのデータフレームのIDに対応する、データテーブルのデータとして保存する(ステップS3801)。
次に、異常検知ECU2601は、ステップS3801で情報を保存した結果として、データテーブルのデータ数が一定数以上になったかどうかを判断し(ステップS3802)、一定数以上になった場合に限って、最も古いデータを削除する(ステップS3803)。この一定数は、例えば、異常判定処理で判定に用いられるデータを考慮して予め定められた数であり、例えば現在値と2つの過去値とを保存する場合では4となる。
[2.14 異常検知ECU2601における異常判定処理]
図39は、異常検知ECU2601における異常判定処理を示すフローチャートである。以下、同図に即して異常判定処理を説明する。
図39で示す異常判定処理では、監視対象データの現在値及び比較対象データの過去値という2つの値を用いて、判定を行う。なお、図33のルールテーブルでは、監視対象データに対応する比較対象データは、ハンドル状態情報だけであることとしたが、比較対象データが複数存在しても良い。例えば参照データを含む第5種メッセージ(つまり第3種メッセージ及び第4種メッセージと異なるIDを有するデータフレーム)におけるその参照データを、2つ目の比較対象データとして取り扱っても良い。図39では、比較対象データが複数存在し得る場合に対応した異常判定処理の例を示している。
まず、異常検知ECU2601は、データ記憶部2705におけるデータテーブルから未判定の比較対象データを選択する(ステップS3901)。そして、異常検知ECU2601は、ルール記憶部2704におけるルールテーブルから、監視対象データに対応したルールテーブル(図33に示したルールテーブル)を読み込む(ステップS3902)。
次に異常検知ECU2601は、ルールテーブルに基づいて、監視対象データの変化(比較対象データとの差分値)が正常なものか否かを判定して(ステップS3903)、否定的に判定した場合に、監視対象データを含むデータフレームが異常であると判定して、異常判定処理を終える(ステップS3906)。
ステップS3903で、監視対象データの変化が正常なものと判断した場合に、異常検知ECU2601は、全ての比較対象データについてステップS3903での判定を行ったか否かを判断する(ステップS3904)。全ての比較対象データについて判定を行っていない場合には、異常検知ECU2601は、ステップS3901での、比較対象データを選択する処理に戻る。また、全ての比較対象データについて判定を行った場合に、異常検知ECU2601は、監視対象データを含むデータフレームが正常であると判定して、異常判定処理を終える(ステップS3905)。
[2.15 異常検知ECU2601における車両保護処理]
図40及び図41のそれぞれは、異常検知ECU2601による車両保護処理の例を示す。
図40の例では、車両保護処理は、現在受信中のメッセージの送信阻止によって車両200の安全を確保する例を示す。この例では、異常検知ECU2601が、バス2605から受信中の監視対象データを含むメッセージを無効化する所定メッセージを送信する(ステップS4001)。具体的には、所定メッセージは、エラーフレームである。
図41の例では、車両保護処理は、車両200に異常が発生していることを、外部通信装置2604を用いてサーバ400に通知する例を示す。この例では、異常検知ECU2601が、外部通信装置2604に指示することで、外部通信装置2604から外部ネットワーク300を介して異常の発生をサーバ400に通知する(ステップS4101)。ステップS4101では、外部通信装置2604が、車両200の周囲に所在する他の車両に車車間通信によって異常を示す情報を送信しても良い。外部通信装置2604は、異常を示す情報に、車両200についての車両識別番号(VIN:Vehicle Identification Number)、車台番号等を含ませて、サーバ400に送信しても良い。サーバ400は、車両200から通知を受けて、他の車両に対して異常を示す情報の送信を行っても良い。サーバ400は、例えば、車両200から通知された車両識別番号、車台番号等に基づいて、これらと車種とを対応付けたリスト情報を参照する等によって、車両200と同一の車種の車両を特定して、その同一の車種の車両に対して、異常を示す情報の送信を行うこととしても良い。なお、車種が同一の車両同士は、例えば、車載ネットワークの構成が概ね同一である。また、同一の車種の車両は、例えば車台番号における型式(つまり車両型式)が同一の車両であり、或いは、例えば車両識別番号における先頭からシリアル番号の前までの桁の値が同一の車両である。また、外部通信装置2604が、車両200と同一車種である車両に対して、異常を示す情報を送信することとしても良い。これらの異常の通知によって、車両200以外の車両においても危険の回避等が可能となり得る。
車両保護処理は、図40及び図41に示した各処理を組み合わせたものであっても良いし、これ以外の処理であっても良い。なお、車両200は、異常検知ECU2601での異常判定処理により、メッセージに係る異常が発生していると判定された場合に、車両200の外部に所在するサーバ400、車両500等に異常を通知する通知装置を備え得る。この車両200における通知装置の一例が、外部通信装置2604であるが、通知装置は、通信機能を有する装置に限られず、光、音等を発することで周囲の車両に注意を促す警報装置(例えば非常点滅表示灯の点灯制御を行う装置、警笛を鳴らす制御を行う装置等)であっても良い。
[2.16 異常の通知を受信した車両500における警告通知]
車両500のヘッドユニットにおける警告通知については、実施の形態1と同様であるため、ここではその説明を省略する。
[2.17 実施の形態2の効果]
本実施の形態に係る車載ネットワークシステム2600では、攻撃者が、車載ネットワークに接続する正規のECUから送信される周期と同様の周期で不正なメッセージを送信したとしても、受信した監視対象データの現在値と、比較対象データの過去値に基づいてメッセージが正常であるか否かを判定可能となる。そして、車載ネットワークシステム2600は、この判定結果に応じて攻撃に対処可能となる。また、車載ネットワークシステム2600を含む複数の車両及びサーバで構成される異常検知システム10では、車両間での異常の発生の通知によって、攻撃の影響を抑えることが可能になる。
(他の実施の形態)
以上のように、本発明に係る技術の例示として実施の形態1を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
(1)上記実施の形態では、判定部111(2701)と、ルール記憶部114(2704)と、データ記憶部115(2705)とは、複数のECUがフレームの授受を行うためのバス150(2605)に接続された異常検知ECU110(2601)の構成要素として説明したが、その他の1つ又は複数のECUの構成要素としても良い。上述した異常検知ECU110(2601)は、車載ネットワークシステムにおいてバスに接続されたECUであれば、異常検知専用のECUである必要はなく、異常検知及び対処とは異なる機能を併せ持っても構わない。また、例えば異常検知ECU110(2601)における1つ以上の構成要素を他のECUに移動させても良い。異常検知ECU110(2601)における異常判定処理、車両保護処理等をどのECUが行っても良い。例えば、データフレームを受信しそのデータフレームの内容に応じて車両の制御を行うECU等が、上述した異常検知ECU110(2601)と同様の構成要素を有することとしても良い。また、例えば、車載ネットワークを複数のバスで構成した場合におけるバス間でのデータフレームの転送を行うゲートウェイECUに、異常検知ECU110(2601)の構成要素を含ませても良い。これは、ゲートウェイECUが、各バスの状態を監視できるので、有用である。この異常検知ECU110(2601)の構成を含むゲートウェイECUでは、異常と判定したデータフレームによって車両が不正に制御されることを抑止するために、エラーフレームによるその異常なデータフレームの無効化の他に、異常と判定したデータフレームのバス間での転送を抑止する等の処理を行うことができる。また、上述した異常検知ECU110(2601)の構成要素を、秘密鍵の管理を行う鍵管理マスタECUの構成要素として含めても良い。
(2)上記実施の形態では、CANプロトコルにおけるデータフレームを標準IDフォーマットで記述しているが、拡張IDフォーマットであっても良く、データフレームの識別情報であるIDは、拡張IDフォーマットでの拡張ID等であっても良い。
(3)上記実施の形態では、異常検知ECU110(2601)が、データテーブルに受信したデータの履歴を保持して、現在値と過去値とを異常判定処理での判定に用いる例を示したが、より多数の履歴を保持して判定に活用しても良い。また、予め定められたデータフレームの送信周期を考慮して、受信していない時間のデータを補間して、データテーブル等に保持しておいても良い。
(4)上記実施の形態では、データ記憶部115(2705)が、受信されたデータフレームの内容として、データフィールドの値を保持する例を示したが、データフィールドの内容から抽出した複数の値を保持しても良いし、更に受信時刻その他の情報を保持しても良い。
(5)上記実施の形態では、異常判定処理で判定に用いられるルールとして、ギア制御情報と速度制御情報との関係、つまりギアポジションと車速との関係性に関するルールを示したが、ギアポジション、車速等は一例に過ぎない。判定に用いられるルールは、センサにより得られたデータ、制御指示を示すデータその他の任意のデータ間の関係性を判定基準として規定するものであっても良い。監視対象データ或いは比較対象データは、車速、ギアポジション等の他、例えば、車輪の回転速度、ヨーレート、加速度、操舵角、アクセルペダル開度、制動レベル、エンジンの回転数、モータの回転数、イグニッションスイッチの状態、ハンドル(ステアリングホイール)の操舵トルク、前方障害物の有無、後方障害物の有無、前方障害物までの距離、後方障害物までの距離、左右の区画線の認識状態、左右の区画線までの距離等であり得る。また、例えば、監視対象データ或いは比較対象データは、車両の状態を示すデータに限られず、車両の制御用のパラメータ等を示すデータであっても良い。例えば、車両が先進運転者支援システム(ADAS:Advanced Driver Assistance System)の一機能としての駐車支援機能を有し、異常検知ECU110が、駐車支援機能を対象とした異常検知を行う場合には、自動操舵のメッセージ内のデータを監視対象データとし、車速、ギアポジション等のデータを比較対象データとしても良い。また、上記実施の形態では、異常検知ECU110が、異常判定処理として、バス150から時間的に前後関係を有して受信した同一種類の複数のデータの変化等と、他の種類のデータの値との関係性に基づいて、判定を行う例を示した。この他に、異常検知ECU110は、更に、相違する種類のデータ同士の関係性に基づいて、一方の種類のデータを含むメッセージが異常であるか否かを判定することとしても良い。後退駐車時に自動操舵を行う駐車支援機能では、安全上の理由等から自動操舵を行う際の後退速度に上限が設けられている。このため、例えば、異常検知ECU110は、受信したデータが示す車速が上限速度を超過している場合、受信したデータが示すギアポジションが「リバース」でない場合等において、自動操舵の制御指示のデータを含むメッセージを受信するとそのメッセージを異常と判定することができる。
また例えば、異常検知ECU110が、ADASの一機能としての車線維持支援機能を対象に異常検知を行う場合には、自動操舵の制御指示に係るメッセージ内のデータを監視対象データとし、車速、車両の左右の区画線の認識状態、左右の区画線までの距離等を示すデータを比較対象データとしても良い。車両が車線から逸脱しないように自動操舵を行う車線維持支援機能は、安全上の理由等から自動操舵を行う際の前進速度に下限が設けられている。このため、例えば、異常検知ECU110は、受信したデータが示す車速が下限速度まで到達していない場合、車両が走行する車線を把握する上で必要となる左右の区画線を認識できていない場合、車両が左右いずれの区画線にも一定距離内に接近していない場合等において、自動操舵のメッセージを受信するとそのメッセージを異常と判定することができる。
また例えば、異常検知ECU110が、ADASの一機能としての衝突回避支援機能に係る自動緊急ブレーキを対象に異常検知を行う場合には、自動制動の制御指示に係るメッセージ内のデータを監視対象データとし、車速、障害物の有無、障害物までの距離等を示すデータを比較対象データとしても良い。障害物との衝突を回避又は衝突の影響を緩和するように自動制動を行う自動緊急ブレーキは、安全上の理由等から自動制動を行う際の車速に上限や下限が設けられている。このため、例えば、異常検知ECU110は、受信したデータが示す車速が上限から下限までの範囲に収まっていない場合、回避又は緩和する衝突の対象である障害物が存在しない場合、障害物が一定距離内に接近していない場合等において、自動制動のメッセージを受信するとそのメッセージを異常と判定することができる。
また例えば、異常検知ECU110が、ADASの一機能としての自動追従走行機能を対象に異常検知を行う場合には、自動加減速の制御指示に係るメッセージ内のデータを監視対象データとし、現在の車速、目標の車速、先行車両の有無、先行車両までの距離等を比較対象データとしても良い。目標の速度を上限とする範囲内で先行車両との距離を保つように自動加減速を行う自動追従走行機能は、安全上の理由等から自動加減速を行う際の前進速度に下限が設けられている。このため、例えば、異常検知ECU110は、受信したデータが示す現在の車速が下限速度まで到達していない状態で自動加速又は自動減速を指示するメッセージを受信した場合、追従する先行車両が存在せず、かつ現在の車速が目標の車速まで到達していない状態で自動減速を指示するメッセージを受信した場合、先行車両までの距離が一定距離を超えて離れ、かつ、現在の車速が目標の車速まで到達していない状態で自動減速を指示するメッセージを受信した場合、現在の車速が目標の車速まで到達している状態で自動加速を指示するメッセージを受信した場合、先行車両が一定距離内に接近している状態で自動加速を指示するメッセージを受信した場合等において、自動加減速に係るメッセージを異常と判定することができる。
(6)上記実施の形態では、異常検知ECU110が、監視対象データと比較対象データとの関係性に基づいて監視対象データを含むメッセージが正常か異常かを判定する例を示したが、判定を連鎖的に行うようにしても良い。例えば、異常検知ECU110は、監視対象データに係るメッセージの判定に用いる比較対象データを含むメッセージが正常か異常かを判定することとしても良い。例えば、上記実施の形態では、異常検知ECU110は、速度制御情報が正しいことを前提に、ギア制御情報を含むメッセージが異常か否かを判定しているが、速度制御情報が不正である可能性も考えられる。そこで、異常検知ECU110は、例えば、速度制御情報と、ハイブリッド車における駆動方式の情報との関係性に基づいて、例えばモータで駆動している状態において、時速50kmの車速に変化した速度制御情報を含むメッセージが異常であることと判定しても良い。また、異常検知ECU110は、更に駆動方式の情報が不正かどうかを、例えばバッテリー残量の減少量等を利用して判定しても良い。
例えば、車載ネットワークシステム100で、第1種メッセージに含まれる監視対象データ及び第2種メッセージに含まれる比較対象データとは異なる種類の参照データを含む第3種メッセージを周期的に送信するECUを含む場合においては、異常検知ECU110は、次のように変形しても良い。受信部112は、更に第3種メッセージを逐次受信する。判定部111は、更に、受信部112によって受信された第2種メッセージが正常であるか否かを、その第2種メッセージの内容と、その第2種メッセージの受信時において受信部112によって最後に受信されていた第3種メッセージの内容と、受信部112によってその第2種メッセージより過去に受信された第2種メッセージの内容、及び、受信部112によってその最後に受信された第3種メッセージより過去に受信された第3種メッセージの内容のうちのいずれかとに基づいて判別し、判定部111は、受信部112によって受信された第1種メッセージが正常であるか異常であるかを、その第1種メッセージの内容と、その第1種メッセージの受信時において受信部112によって最後に受信されて正常と判別された第2種メッセージの内容と、受信部112によってその第1種メッセージより過去に受信された第1種メッセージの内容、及び、受信部112によってその最後に受信されて正常と判別された第2種メッセージより過去に受信され正常と判別された第2種メッセージの内容のうちのいずれかとに基づいて、判定することとしても良い。このように監視対象データの判定に用いられる比較対象データが正常か異常かを第3種メッセージの内容である参照データに基づいて判別する等の連鎖的な判定を行うと、攻撃に対する耐性が一層高まり得る。このため、各種データ間の関係性を把握して攻撃しなければ攻撃に成功しなくなり、攻撃コストを増加させ得る。
また例えば、上記変形例(5)で示した、異常検知ECU110が駐車支援機能を対象に異常検知を行う例では、後退駐車のための自動操舵が行われる前に、停車し、ギアポジションが「リバース」へ変化し、上限速度を超えない範囲で車両が後退する。このため、車速等の速度制御情報、ギアポジション等のギア制御情報、自動操舵の制御指示等といった各種メッセージ内のデータのいずれかを、その時々で監視対象データと比較対象データとして扱い、車両が停車中にギアポジションが「リバース」へ変化したこと、ギアポジションが「リバース」の状態で車両が後退中へ変化したこと、車両の後退中は上限速度を超えないこと等を順に充足するかを判定し、順に充足していない場合には、自動操舵に係るメッセージは異常と判定しても良い。同様に、上記変形例(5)で示した車線維持支援機能、自動緊急ブレーキ、自動追従走行機能のそれぞれについても、それぞれの自動制御が行われる前に必ず発生する事象のシーケンスについて、順に充足するかを判定し、順に充足していない場合には、自動制御のメッセージを異常と判定しても良い。
(7)上記実施の形態では、異常検知ECU110の判定部111は、ルールテーブルに基づいてメッセージが正常か異常かの判定を行うこととしたが、ルールテーブルはその判定のための基準の一例に過ぎず、判定部111は、予め定めた所定基準を満たすか否かに応じてその判定を行えば良い。所定基準は、例えば、時間的に前後関係を有して受信された同一種類のデータを含む複数のメッセージそれぞれのデータと、そのメッセージとは別の種類のデータを含むメッセージのデータとを含むデータ群の関係性に関する条件を規定する。例えば、判定部111は、受信部112によって第1種メッセージが受信された際に、その第1種メッセージが正常であるか異常であるかを、その第1種メッセージに含まれる第1監視対象データと、受信部112によって最後に受信された第2種メッセージに含まれる第1比較対象データと、受信部112によってその第1種メッセージより1回前に受信された第1種メッセージに含まれる第2監視対象データとが、予め定められた所定基準Aを満たすか否かに応じて判定しても良い。また、例えば、判定部111は、受信部112によって第1種メッセージが受信された際に、その第1種メッセージが正常であるか異常であるかを、その第1種メッセージに含まれる第1監視対象データと、受信部112によって最後に受信された第2種メッセージに含まれる第1比較対象データと、受信部112によって最後の1回前に受信された第2種メッセージに含まれる第2比較対象データとが、予め定められた所定基準Bを満たすか否かに応じて判定することとしても良い。また、例えば、判定部111は、受信部112によって第1種メッセージが受信された際に、その第1種メッセージが正常であるか異常であるかを、その第1種メッセージに含まれる第1監視対象データと、受信部112によって最後に受信された第2種メッセージに含まれる第1比較対象データと、受信部112によってその第1種メッセージより1回前に受信された第1種メッセージに含まれる第2監視対象データと、受信部112によって最後の1回前に受信された第2種メッセージに含まれる第2比較対象データとが、予め定められた所定基準Cを満たすか否かに応じて判定することとしても良い。
また、判定部111は、第2種メッセージに加えて、周期的に送信される第3種メッセージを利用して、監視対象データを含むメッセージが正常か異常かの判定を行っても良い。例えば、判定部111は、更に、受信部112によって受信された第1種メッセージが正常であるか異常であるかを、上述した所定基準A〜Cのいずれかを満たすか否かに加えて、その第1種メッセージの受信時において受信部112によって最後に受信されていた第3種メッセージの内容と、受信部112によってその最後に受信された第3種メッセージより過去に受信された第3種メッセージの内容とにも基づいて、判定することとしても良い。
(8)上記実施の形態では、判定部111は、監視対象データの現在値と比較対象データの現在値と監視対象データの1回前に受信された過去値及び比較対象データの1回前に受信された過去値の少なくとも1つとに基づいて判定する例を示したが、1回前に受信された過去値の代わりに、更に過去に受信されたデータの値を用いて判定を行っても良い。例えば、判定部111は、受信部112によって第1種メッセージが受信された際に、その第1種メッセージが正常であるか異常であるかを、その第1種メッセージに含まれる第1監視対象データと、受信部112によって最後に受信された第2種メッセージに含まれる第1比較対象データと、受信部112によって、その第1種メッセージの受信時より前において最後に受信された、第1監視対象データとは異なる値の第2監視対象データを含む第1種メッセージにおけるその第2監視対象データとが、予め定められた所定基準Dを満たすか否かに応じて判定することとしても良い。また、例えば、判定部111は、受信部112によって第1種メッセージが受信された際に、その第1種メッセージが正常であるか異常であるかを、その第1種メッセージに含まれる第1監視対象データと、受信部112によって最後に受信された第2種メッセージに含まれる第1比較対象データと、受信部112によって、その最後に受信された第2種メッセージの受信時より前において最後に受信された、第1比較対象データとは異なる値の第2比較対象データを含む第2種メッセージにおけるその第2比較対象データとが、所定基準Eを満たすか否かに応じて判定することとしても良い。また、例えば、判定部111は、受信部112によって第1種メッセージが受信された際に、その第1種メッセージが正常であるか異常であるかを、その第1種メッセージに含まれる第1監視対象データと、受信部112によって最後に受信された第2種メッセージに含まれる第1比較対象データと、受信部112によって、その第1種メッセージの受信時より前において最後に受信された、その第1監視対象データとは異なる値の第2監視対象データを含む第1種メッセージにおけるその第2監視対象データと、受信部112によって、その最後に受信された第2種メッセージの受信時より前において最後に受信された、その第1比較対象データとは異なる値の第2比較対象データを含む第2種メッセージにおけるその第2比較対象データとが、所定基準Fを満たすか否かに応じて判定することとしても良い。
(9)上記実施の形態では、異常検知ECUが、車両に搭載され、車両の制御のための通信を行う車載ネットワークシステムに含まれる例を示したが、車両以外の制御対象の制御のためのネットワークシステムに含まれるものであっても良い。車両以外の制御対象は、例えば、ロボット、航空機、船舶、機械等である。
(10)上記の実施の形態では、車載ネットワークでCANプロトコルに従って、データフレームの伝送が行われるものとしたが、CANプロトコルは、オートメーションシステム内の組み込みシステム等に用いられるCANOpen、或いは、TTCAN(Time-Triggered CAN)、CANFD(CAN with Flexible Data Rate)等の派生的なプロトコルを包含する広義の意味のものと扱われることとしても良い。また、車載ネットワークは、CANプロトコル以外のプロトコルを用いるものであっても良い。車両の状態に関する情報を含むメッセージ、車両に対して制御を指示するメッセージ等の伝送がなされる車載ネットワークのプロトコルとして、例えばLIN(Local Interconnect Network)、MOST(登録商標)(Media Oriented Systems Transport)、FlexRay(登録商標)、Ethernet(登録商標)等を用いても良い。また、これらのプロトコルを用いたネットワークをサブネットワークとして、複数種類のプロトコルに係るサブネットワークを組み合わせて、車載ネットワークを構成しても良い。また、Ethernet(登録商標)プロトコルは、IEEE802.1に係るEthernet(登録商標)AVB(Audio Video Bridging)、或いは、IEEE802.1に係るEthernet(登録商標)TSN(Time Sensitive Networking)、Ethernet(登録商標)/IP(Industrial Protocol)、EtherCAT(登録商標)(Ethernet(登録商標) for Control Automation Technology)等の派生的なプロトコルを包含する広義の意味のものと扱われることとしても良い。なお、車載ネットワークの通信路は、ネットワークバス或いはその他のワイヤ、光ファイバ等で構成される有線通信路であっても良いし、その他の通信路であっても良い。
(11)上記実施の形態で示したECU等の各装置は、メモリ、プロセッサ等の他に、ハードディスクユニット、ディスプレイユニット、キーボード、マウス等を備えるものであっても良い。また、外部通信装置140(2604)は、バス150(2605)に接続されずに、異常検知ECU110(2601)と通信路で接続され、メモリ、プロセッサ、通信回路等を備える装置であっても良い。また、上記実施の形態で示したECU等の各装置は、メモリに記憶されたプログラムがプロセッサにより実行されてソフトウェア的にその各装置の機能を実現するものであっても良いし、専用のハードウェア(デジタル回路等)によりプログラムを用いずにその機能を実現するものであっても良い。また、その各装置内の各構成要素の機能分担は変更可能である。また、異常検知ECU110(2601)における判定部111(2701)、受信部112(2702)、送信部113(2703)、並びに、記憶部(ルール記憶部114(2704)及びデータ記憶部115(2705))は、それぞれ、例えば、判定回路、受信回路、送信回路、記憶回路といった集積回路として実現され得る。
(12)上記実施の形態における各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全部を含むように1チップ化されても良い。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
(13)上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしても良い。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしても良い。
(14)本発明の一態様としては、例えば図14〜図24(図35〜図41)等に示す処理手順の全部又は一部を含む異常検知方法であるとしても良い。例えば、異常検知方法は、監視対象データを含む第1種メッセージを周期的に送信するECUと、比較対象データを含む第2種メッセージを周期的に送信するECUとを含む、車載ネットワークの通信路を介して通信を行う複数のECUを備える車載ネットワークシステムで用いられる異常検知方法であって、車載ネットワークの通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信ステップ(例えばステップS100、S120(S3701、S3703))と、受信ステップで受信された第1種メッセージが正常であるか異常であるかを、その第1種メッセージの内容と、その第1種メッセージの受信時において受信ステップで最後に受信されていた第2種メッセージの内容と、受信ステップでその第1種メッセージより過去に受信された第1種メッセージの内容、及び、受信ステップでその最後に受信された第2種メッセージより過去に受信された第2種メッセージの内容のうちのいずれかとに基づいて、判定する判定ステップ(例えばステップS150(S3706))と、判定ステップによる判定の結果に応じて送信を行う送信ステップ(例えばステップS171、S172(S4001、S4101))とを含む方法である。送信ステップでは、例えば、エラーフレームの送信、異常を示す情報の車外への送信等がなされ得る。また、本発明の一態様としては、この方法をコンピュータにより実現するプログラム(コンピュータプログラム)であるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標)Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
(15)上記実施の形態では、監視対象データが含まれる情報をハンドル制御指示情報とし、比較対象データが含まれる情報をハンドル状態情報として説明したが、本発明はこの構成に限定されない。監視対象データが含まれる情報を、フットブレーキやエンジンブレーキ等を利用して車両の速度を減速させる減速制御指示情報とし、比較対象データが含まれる情報を、車速情報、車輪の回転速度情報、ブレーキペダルの踏み具合、エンジンの回転数やモータの回転数等、車両の速度に関係する状態を示す情報であっても良い。更に、監視対象データが含まれる情報を、アクセル等を利用して車両の速度を加速させる加速制御指示情報とし、比較対象データが含まれる情報を、車速情報、車輪の回転速度情報、アクセルペダルの開度、エンジンの回転数やモータの回転数等、車両の速度に関係する状態を示す情報であっても良い。
また、車載ネットワークシステム100で、第1種メッセージに含まれる監視対象データ及び第2種メッセージに含まれる比較対象データとは異なる種類の参照データを含む第3種メッセージを周期的に送信するECUを含む場合においては、異常検知ECU2601は、次のように変形しても良い。受信部2702は、更に第3種メッセージを逐次受信する。判定部2701は、更に、受信部2702によって受信された第2種メッセージが正常であるか否かを、その第2種メッセージの内容と、その第2種メッセージの受信時において受信部2702によって最後に受信されていた第3種メッセージの内容と、受信部2702によってその第2種メッセージより過去に受信された第2種メッセージの内容、及び、受信部2702によってその最後に受信された第3種メッセージより過去に受信された第3種メッセージの内容のうちのいずれかとに基づいて判定し、判定部2701は、受信部2702によって受信された第1種メッセージが正常であるか異常であるかを、その第1種メッセージの内容と、その第1種メッセージの受信時において受信部2702によって最後に受信されて正常と判定された第2種メッセージの内容と、受信部2702によってその第1種メッセージより過去に受信された第1種メッセージの内容、及び、受信部2702によってその最後に受信されて正常と判定された第2種メッセージより過去に受信され正常と判定された第2種メッセージの内容のうちのいずれかとに基づいて、判定することとしても良い。このように監視対象データの判定に用いられる比較対象データが正常か異常かを第3種メッセージの内容である参照データに基づいて判定する等の連鎖的な判定を行うと、攻撃に対する耐性が一層高まり得る。このため、各種データ間の関係性を把握して攻撃しなければ攻撃に成功しなくなり、攻撃コストを増加させ得る。
(16)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。
本発明は、車載ネットワークを含む車載ネットワークシステムに利用可能である。
10 異常検知システム
100、2600 車載ネットワークシステム
110、2601 異常検知ECU
111、2701 判定部
112、2702 受信部
113、2703 送信部
114、2704 ルール記憶部
115、2705 データ記憶部
120 ギア制御ECU
130 速度制御ECU
140、2604 外部通信装置
150、2605 バス
200、500 車両
300 外部ネットワーク
400 サーバ
2602 ハンドル制御指示ECU
2603 ハンドル制御ECU

Claims (19)

  1. 監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備えるネットワークシステムにおける前記通信路に接続された異常検知電子制御ユニットであって、
    前記通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信部と、
    前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、
    当該第1種メッセージの内容と、
    当該第1種メッセージの受信時において前記受信部によって最後に受信されていた第2種メッセージの内容と、
    前記受信部によって当該第1種メッセージより過去に受信された第1種メッセージの内容、及び、前記受信部によって前記最後に受信された第2種メッセージより過去に受信された第2種メッセージの内容のうちのいずれかとに基づいて、判定する判定部と、
    前記判定部による前記判定の結果に応じて送信を行う送信部とを備える
    異常検知電子制御ユニット。
  2. 前記異常検知電子制御ユニットは、記憶部を有し、
    前記受信部は、受信した第1種メッセージ及び第2種メッセージのそれぞれの内容を前記記憶部に格納し、
    前記判定部は、前記記憶部を参照して前記判定を行う
    請求項1記載の異常検知電子制御ユニット。
  3. 前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、
    当該第1種メッセージに含まれる第1監視対象データと、
    前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、
    前記受信部によって当該第1種メッセージより1回前に受信された第1種メッセージに含まれる第2監視対象データとが、所定基準を満たすか否かに応じて判定する
    請求項1又は2記載の異常検知電子制御ユニット。
  4. 前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、
    当該第1種メッセージに含まれる第1監視対象データと、
    前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、
    前記受信部によって最後の1回前に受信された第2種メッセージに含まれる第2比較対象データとが、所定基準を満たすか否かに応じて判定する
    請求項1又は2記載の異常検知電子制御ユニット。
  5. 前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、
    当該第1種メッセージに含まれる第1監視対象データと、
    前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、
    前記受信部によって当該第1種メッセージより1回前に受信された第1種メッセージに含まれる第2監視対象データと、
    前記受信部によって最後の1回前に受信された第2種メッセージに含まれる第2比較対象データとが、所定基準を満たすか否かに応じて判定する
    請求項1又は2記載の異常検知電子制御ユニット。
  6. 前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、
    当該第1種メッセージに含まれる第1監視対象データと、
    前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、
    前記受信部によって、当該第1種メッセージの受信時より前において最後に受信された、前記第1監視対象データとは異なる値の第2監視対象データを含む第1種メッセージにおける当該第2監視対象データとが、所定基準を満たすか否かに応じて判定する
    請求項1又は2記載の異常検知電子制御ユニット。
  7. 前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、
    当該第1種メッセージに含まれる第1監視対象データと、
    前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、
    前記受信部によって、前記最後に受信された第2種メッセージの受信時より前において最後に受信された、前記第1比較対象データとは異なる値の第2比較対象データを含む第2種メッセージにおける当該第2比較対象データとが、所定基準を満たすか否かに応じて判定する
    請求項1又は2記載の異常検知電子制御ユニット。
  8. 前記判定部は、前記受信部によって第1種メッセージが受信された際に、当該第1種メッセージが正常であるか異常であるかを、
    当該第1種メッセージに含まれる第1監視対象データと、
    前記受信部によって最後に受信された第2種メッセージに含まれる第1比較対象データと、
    前記受信部によって、当該第1種メッセージの受信時より前において最後に受信された、前記第1監視対象データとは異なる値の第2監視対象データを含む第1種メッセージにおける当該第2監視対象データと、
    前記受信部によって、前記最後に受信された第2種メッセージの受信時より前において最後に受信された、前記第1比較対象データとは異なる値の第2比較対象データを含む第2種メッセージにおける当該第2比較対象データとが、所定基準を満たすか否かに応じて判定する
    請求項1又は2記載の異常検知電子制御ユニット。
  9. 前記複数の電子制御ユニットは、参照データを含む第3種メッセージを周期的に送信する電子制御ユニットを含み、
    前記受信部は更に第3種メッセージを逐次受信し、
    前記判定部は、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、
    当該第1種メッセージの受信時において前記受信部によって最後に受信されていた第3種メッセージの内容と、
    前記受信部によって前記最後に受信された第3種メッセージより過去に受信された第3種メッセージの内容とにも基づいて、判定する
    請求項1又は2記載の異常検知電子制御ユニット。
  10. 前記複数の電子制御ユニットは、参照データを含む第3種メッセージを周期的に送信する電子制御ユニットを含み、
    前記受信部は更に第3種メッセージを逐次受信し、
    前記判定部は更に、
    前記受信部によって受信された第2種メッセージが正常であるか否かを、
    当該第2種メッセージの内容と、
    当該第2種メッセージの受信時において前記受信部によって最後に受信されていた第3種メッセージの内容と、
    前記受信部によって当該第2種メッセージより過去に受信された第2種メッセージの内容、及び、前記受信部によって前記最後に受信された第3種メッセージより過去に受信された第3種メッセージの内容のうちのいずれかとに基づいて判別し、
    前記判定部は、前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、
    当該第1種メッセージの内容と、
    当該第1種メッセージの受信時において前記受信部によって最後に受信されて正常と判別された第2種メッセージの内容と、
    前記受信部によって当該第1種メッセージより過去に受信された第1種メッセージの内容、及び、前記受信部によって前記最後に受信されて正常と判別された第2種メッセージより過去に受信され正常と判別された第2種メッセージの内容のうちのいずれかとに基づいて、判定する
    請求項1又は2記載の異常検知電子制御ユニット。
  11. 前記ネットワークシステムは車両に搭載され、
    前記監視対象データ及び前記比較対象データは、前記車両の制御のために用いられるデータであり、
    前記通信路は、前記車両における有線通信路であり、
    前記複数の電子制御ユニットは、CANプロトコル又はEthernet(登録商標)プロトコルに従ってメッセージの授受を行う
    請求項1〜10のいずれか一項に記載の異常検知電子制御ユニット。
  12. 前記判定部は、前記受信部によって第1種メッセージにおける監視対象データが受信されて当該第1種メッセージの最後尾のビットが受信される前において、当該第1種メッセージが正常であるか異常であるかを判定し、
    前記送信部は、前記判定部により第1種メッセージが異常であると判定された場合には前記受信部によって当該第1種メッセージの最後尾のビットが受信される前に、当該第1種メッセージを無効化する所定メッセージを前記通信路へ送信する
    請求項1〜11のいずれか一項に記載の異常検知電子制御ユニット。
  13. 前記通信路はネットワークバスであり、
    前記複数の電子制御ユニットは、CANプロトコルに従って、フレームの授受を行い、
    前記第1種メッセージは、所定値をIDフィールドに含み、監視対象データをデータフィールドに含むデータフレームであり、
    前記第2種メッセージは、前記所定値とは異なる特定値をIDフィールドに含み、比較対象データをデータフィールドに含むデータフレームであり、
    前記送信部は、前記所定メッセージとしてエラーフレームを送信する
    請求項12記載の異常検知電子制御ユニット。
  14. 前記通信路はネットワークバスであり、
    前記送信部は、前記判定部により第1種メッセージが異常であると判定された場合に、異常通知メッセージを前記ネットワークバスへ送信する
    請求項1〜11のいずれか一項に記載の異常検知電子制御ユニット。
  15. 監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、
    前記通信路に接続された異常検知電子制御ユニットを備え、
    前記異常検知電子制御ユニットは、
    前記通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信部と、
    前記受信部によって受信された第1種メッセージが正常であるか異常であるかを、
    当該第1種メッセージの内容と、
    当該第1種メッセージの受信時において前記受信部によって最後に受信されていた第2種メッセージの内容と、
    前記受信部によって当該第1種メッセージより過去に受信された第1種メッセージの内容、及び、前記受信部によって前記最後に受信された第2種メッセージより過去に受信された第2種メッセージの内容のうちのいずれかとに基づいて、判定する判定部とを備える
    車載ネットワークシステム。
  16. 前記車載ネットワークシステムは更に、前記判定部により第1種メッセージが異常であると判定された場合に、当該車載ネットワークシステムを搭載する第1車両の外部に所在するサーバ又は当該第1車両以外の第2車両に、異常を通知する通知装置を備える
    請求項15記載の車載ネットワークシステム。
  17. 前記通知装置は、前記判定部により第1種メッセージが異常であると判定された場合に、前記第1車両と同一車種である前記第2車両に、異常を示す情報を送信することで、異常を通知する
    請求項16記載の車載ネットワークシステム。
  18. 前記通知装置は、前記判定部により第1種メッセージが異常であると判定された場合に、前記第1車両の周囲に所在する前記第2車両に、異常を示す情報を送信することで、異常を通知する
    請求項16又は17記載の車載ネットワークシステム。
  19. 監視対象データを含む第1種メッセージを周期的に送信する電子制御ユニットと、比較対象データを含む第2種メッセージを周期的に送信する電子制御ユニットとを含む、通信路を介して通信を行う複数の電子制御ユニットを備えるネットワークシステムで用いられる異常検知方法であって、
    前記通信路から第1種メッセージ及び第2種メッセージを逐次受信する受信ステップと、
    前記受信ステップで受信された第1種メッセージが正常であるか異常であるかを、
    当該第1種メッセージの内容と、
    当該第1種メッセージの受信時において前記受信ステップで最後に受信されていた第2種メッセージの内容と、
    前記受信ステップで当該第1種メッセージより過去に受信された第1種メッセージの内容、及び、前記受信ステップで前記最後に受信された第2種メッセージより過去に受信された第2種メッセージの内容のうちのいずれかとに基づいて、判定する判定ステップと、
    前記判定ステップでの前記判定の結果に応じて送信を行う送信ステップとを含む
    異常検知方法。
JP2017118669A 2016-07-05 2017-06-16 異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法 Active JP6846991B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP17824059.4A EP3484103B1 (en) 2016-07-05 2017-06-27 Abnormality detecting electronic control unit, vehicle-mounted network system and abnormality detecting method
PCT/JP2017/023471 WO2018008453A1 (ja) 2016-07-05 2017-06-27 異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法
CN201780018767.9A CN108886480B (zh) 2016-07-05 2017-06-27 异常检测电子控制单元、车载网络系统以及异常检测方法
US16/237,243 US11190533B2 (en) 2016-07-05 2018-12-31 Anomaly detection electronic control unit, onboard network system, and anomaly detection method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2016133759 2016-07-05
JP2016133759 2016-07-05
JP2017085179 2017-04-24
JP2017085179 2017-04-24

Publications (2)

Publication Number Publication Date
JP2018170754A true JP2018170754A (ja) 2018-11-01
JP6846991B2 JP6846991B2 (ja) 2021-03-24

Family

ID=64018941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017118669A Active JP6846991B2 (ja) 2016-07-05 2017-06-16 異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法

Country Status (4)

Country Link
US (1) US11190533B2 (ja)
EP (1) EP3484103B1 (ja)
JP (1) JP6846991B2 (ja)
CN (1) CN108886480B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023002771A1 (ja) * 2021-07-21 2023-01-26 住友電気工業株式会社 検知装置、検知方法および検知プログラム
JP7450829B1 (ja) 2023-05-09 2024-03-15 三菱電機株式会社 光ファイバケーブル断線検出装置、光ファイバケーブル断線特定システム、光ファイバケーブル断線検出方法及びプログラム

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016213495A1 (de) * 2016-07-22 2018-01-25 Robert Bosch Gmbh Fahrassistenzverfahren, Fahrassistenzsystem und Fahrzeug
US20180351980A1 (en) * 2017-05-30 2018-12-06 Argus Cyber Security Ltd System and method for providing fleet cyber-security
JP6761793B2 (ja) * 2017-10-13 2020-09-30 日立オートモティブシステムズ株式会社 車両用制御装置
CN111052681B (zh) * 2018-05-08 2022-06-10 松下电器(美国)知识产权公司 异常检测电子控制单元、车载网络系统及异常检测方法
AU2018423506B2 (en) 2018-05-15 2021-02-25 Cylus Cyber Security Ltd. Railway cyber security systems
WO2019225257A1 (ja) * 2018-05-23 2019-11-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置、異常検知方法およびプログラム
US11354406B2 (en) * 2018-06-28 2022-06-07 Intel Corporation Physics-based approach for attack detection and localization in closed-loop controls for autonomous vehicles
US11711384B2 (en) * 2018-08-27 2023-07-25 Lear Corporation Method and system for detecting message injection anomalies
WO2020044638A1 (ja) * 2018-08-30 2020-03-05 住友電気工業株式会社 車載通信システム、データ取得装置、管理装置および監視方法
CN111324680B (zh) * 2019-01-25 2021-05-18 北京嘀嘀无限科技发展有限公司 一种信息展示方法及装置
CN117118776A (zh) * 2019-02-08 2023-11-24 松下电器(美国)知识产权公司 异常判定方法、异常判定装置以及程序
RU2716871C1 (ru) * 2019-03-19 2020-03-17 Дмитрий Михайлович Михайлов Система и способ защиты электронных систем управления транспортных средств от несанкционированного вторжения
JP7176456B2 (ja) * 2019-03-29 2022-11-22 株式会社デンソー メッセージ監視システム、メッセージ送信電子制御装置、および監視用電子制御装置
EP3799589B1 (en) * 2019-05-16 2022-08-24 Cylus Cyber Security Ltd. Self organizing cyber rail-cop
WO2021002013A1 (ja) * 2019-07-04 2021-01-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置および異常検知方法
DE102019210225A1 (de) * 2019-07-10 2021-01-14 Robert Bosch Gmbh Verfahren und Vorrichtung zur Analyse dienste-orientierter Kommunikation
US11921853B2 (en) 2019-07-23 2024-03-05 Denso Corporation System for adaptive vehicle security and response
JP7346981B2 (ja) * 2019-07-30 2023-09-20 マツダ株式会社 車両制御システム
CN110457373B (zh) * 2019-08-19 2022-08-05 东软睿驰汽车技术(沈阳)有限公司 一种隐性因素的确定方法、装置、存储介质及电子设备
US20210053574A1 (en) * 2019-08-21 2021-02-25 Micron Technology, Inc. Monitoring controller area network bus for vehicle control
JP7226248B2 (ja) * 2019-10-31 2023-02-21 トヨタ自動車株式会社 通信装置および異常判定装置
US11172219B2 (en) 2019-12-30 2021-11-09 Texas Instruments Incorporated Alternating frame processing operation with predicted frame comparisons for high safety level use
JP7283427B2 (ja) * 2020-03-25 2023-05-30 トヨタ自動車株式会社 車両制御システム、攻撃判定方法及びプログラム
WO2021217477A1 (zh) * 2020-04-29 2021-11-04 华为技术有限公司 异常消息的识别方法和装置
JP7409247B2 (ja) * 2020-07-14 2024-01-09 株式会社デンソー 不正侵入防止装置、不正侵入防止方法、及び不正侵入防止用プログラム
US11386204B2 (en) * 2020-09-24 2022-07-12 Intel Corporation Agile reconfigurable approach for real-time replacement of on-chip safety-critical modules
KR20220059579A (ko) * 2020-11-03 2022-05-10 현대자동차주식회사 자율주행 차량의 통신 리던던시 시스템
CN112817827A (zh) * 2021-01-22 2021-05-18 中国银联股份有限公司 运维方法、装置、服务器、设备、系统及介质
US11465636B2 (en) * 2021-02-01 2022-10-11 Ree Automotive Ltd. Control systems for vehicle corner modules and methods of operation
DE102021112328A1 (de) * 2021-05-11 2022-11-17 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Erkennen einer Manipulation einer Nachricht eines Bussystems eines Fahrzeugs durch ein Steuergerät eines Fahrzeugs, computerlesbares Medium, System, und Fahrzeug
CN113489633B (zh) * 2021-06-29 2022-06-17 东风汽车集团股份有限公司 车载网关CAN-Ethernet存储转发方法及网关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015159486A1 (ja) * 2014-04-17 2015-10-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、不正検知電子制御ユニット及び不正検知方法
WO2015159520A1 (ja) * 2014-04-17 2015-10-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、不正検知電子制御ユニット及び不正検知方法

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0211644D0 (en) * 2002-05-21 2002-07-03 Wesby Philip B System and method for remote asset management
EP1616746B1 (en) * 2004-07-15 2010-02-24 Hitachi, Ltd. Vehicle control system
US7561846B2 (en) * 2005-09-07 2009-07-14 Gm Gobal Technology Operations, Inc. Vehicle-to-vehicle communication
JP2008312024A (ja) * 2007-06-15 2008-12-25 Auto Network Gijutsu Kenkyusho:Kk 中継接続ユニット
JP2009143459A (ja) * 2007-12-17 2009-07-02 Hitachi Ltd 車載エレクトロニクス・システム及び自動車
EP2083276B1 (en) * 2008-01-22 2014-10-29 STMicroelectronics Srl Method and device for detecting anomalous events for an electronic apparatus, in particular a portable apparatus
WO2010007469A1 (en) * 2008-07-16 2010-01-21 Freescale Semiconductor, Inc. Micro controller unit including an error indicator module
US10665040B2 (en) * 2010-08-27 2020-05-26 Zonar Systems, Inc. Method and apparatus for remote vehicle diagnosis
JP5722150B2 (ja) * 2011-07-21 2015-05-20 ルネサスエレクトロニクス株式会社 マイクロコントローラ
WO2013105916A1 (en) * 2011-12-01 2013-07-18 Intel Corporation Secure message filtering to vehicle electronic control units with secure provisioning of message filtering rules
ES2805290T3 (es) * 2012-03-29 2021-02-11 Arilou Information Security Tech Ltd Dispositivo para proteger un sistema electrónico de un vehículo
CN105050868B (zh) * 2012-10-17 2018-12-21 安全堡垒有限责任公司 用于检测和防止对交通工具的攻击的设备
JP5919205B2 (ja) * 2013-01-28 2016-05-18 日立オートモティブシステムズ株式会社 ネットワーク装置およびデータ送受信システム
WO2015013440A1 (en) * 2013-07-23 2015-01-29 Battelle Memorial Institute Systems and methods for securing real-time messages
US9288048B2 (en) * 2013-09-24 2016-03-15 The Regents Of The University Of Michigan Real-time frame authentication using ID anonymization in automotive networks
US9401923B2 (en) * 2013-10-23 2016-07-26 Christopher Valasek Electronic system for detecting and preventing compromise of vehicle electrical and control systems
EP3358800B1 (en) * 2014-01-06 2021-10-20 Argus Cyber Security Ltd Bus watchman
WO2016151566A1 (en) * 2015-03-26 2016-09-29 Tower-Sec Ltd Security system and methods for identification of in-vehicle attack originator
US9705678B1 (en) * 2014-04-17 2017-07-11 Symantec Corporation Fast CAN message authentication for vehicular systems
JP6417407B2 (ja) * 2014-05-08 2018-11-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 車載ネットワークシステム、電子制御ユニット及び不正検知方法
CN105594155B (zh) * 2014-05-08 2019-08-02 松下电器(美国)知识产权公司 车载网络系统、电子控制单元以及更新处理方法
WO2015170453A1 (ja) * 2014-05-08 2015-11-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、不正検知電子制御ユニット及び不正対処方法
US9477843B2 (en) * 2014-06-11 2016-10-25 GM Global Technology Operations LLC Inhibiting access to sensitive vehicle diagnostic data
KR101519793B1 (ko) * 2014-06-24 2015-05-12 현대자동차주식회사 차량용 네트워크 시스템 및 이 시스템 내 이종 통신 제어기의 데이터 전송 방법
US9460567B2 (en) * 2014-07-29 2016-10-04 GM Global Technology Operations LLC Establishing secure communication for vehicle diagnostic data
EP3192703B1 (en) * 2014-09-12 2019-01-30 Panasonic Intellectual Property Corporation of America Vehicle communication device, in-vehicle network system, and vehicle communication method
US9843594B1 (en) * 2014-10-28 2017-12-12 Symantec Corporation Systems and methods for detecting anomalous messages in automobile networks
JP6218184B2 (ja) * 2014-11-13 2017-10-25 日立オートモティブシステムズ株式会社 情報処理装置、メッセージ認証方法
EP3337102B1 (en) * 2014-12-01 2020-03-25 Panasonic Intellectual Property Corporation of America Illegality detection electronic control unit, car onboard network system, and illegality detection method
WO2016108962A1 (en) * 2014-12-30 2016-07-07 Battelle Memorial Institute Fast efficient evaluation of messages on automotive networks using look-up tables
FR3031268B1 (fr) * 2014-12-30 2017-01-13 Valeo Comfort & Driving Assistance Procede d’inscription d’un utilisateur a un service de commande d’une fonctionnalite d’un vehicule au moyen d’un terminal utilisateur
US10083071B2 (en) * 2014-12-30 2018-09-25 Battelle Memorial Institute Temporal anomaly detection on automotive networks
FR3031212A1 (fr) * 2014-12-30 2016-07-01 Valeo Comfort & Driving Assistance Unite electronique, procede mis en œuvre dans une telle unite electronique, procede de partage d'une base de temps entre un serveur et une unite electronique, et procede de synchronisation d'un serveur et d'une unite electronique
US9843597B2 (en) * 2015-01-05 2017-12-12 International Business Machines Corporation Controller area network bus monitor
US9380070B1 (en) * 2015-01-20 2016-06-28 Cisco Technology, Inc. Intrusion detection mechanism
DE102015205670A1 (de) * 2015-03-30 2016-06-09 Volkswagen Aktiengesellschaft Angriffserkennungsverfahren, Angriffserkennungsvorrichtung und Bussystem für ein Kraftfahrzeug
US11115433B2 (en) * 2015-06-29 2021-09-07 Argus Cyber Security Ltd. System and method for content based anomaly detection in an in-vehicle communication network
MX2018000903A (es) * 2015-08-04 2018-05-22 Ford Global Tech Llc Determinacion de la posicion de un dispositivo en un vehiculo.
US10361934B2 (en) * 2015-09-28 2019-07-23 Nxp B.V. Controller area network (CAN) device and method for controlling CAN traffic
US10402561B2 (en) * 2015-10-01 2019-09-03 Samsung Electronics Co., Ltd. Apparatus and method for protection of critical embedded system components via hardware-isolated secure element-based monitor
US9967274B2 (en) * 2015-11-25 2018-05-08 Symantec Corporation Systems and methods for identifying compromised devices within industrial control systems
US10091077B1 (en) * 2016-06-27 2018-10-02 Symantec Corporation Systems and methods for detecting transactional message sequences that are obscured in multicast communications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015159486A1 (ja) * 2014-04-17 2015-10-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、不正検知電子制御ユニット及び不正検知方法
WO2015159520A1 (ja) * 2014-04-17 2015-10-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、不正検知電子制御ユニット及び不正検知方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023002771A1 (ja) * 2021-07-21 2023-01-26 住友電気工業株式会社 検知装置、検知方法および検知プログラム
JP7450829B1 (ja) 2023-05-09 2024-03-15 三菱電機株式会社 光ファイバケーブル断線検出装置、光ファイバケーブル断線特定システム、光ファイバケーブル断線検出方法及びプログラム

Also Published As

Publication number Publication date
JP6846991B2 (ja) 2021-03-24
CN108886480B (zh) 2021-11-12
CN108886480A (zh) 2018-11-23
US20190141070A1 (en) 2019-05-09
US11190533B2 (en) 2021-11-30
EP3484103A4 (en) 2019-06-19
EP3484103B1 (en) 2021-09-29
EP3484103A1 (en) 2019-05-15

Similar Documents

Publication Publication Date Title
JP6846991B2 (ja) 異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法
JP7033499B2 (ja) 異常検知装置および異常検知方法
JP6956844B2 (ja) 不正制御抑止方法、不正制御抑止装置及び車載ネットワークシステム
JP6908563B2 (ja) セキュリティ処理方法及びサーバ
JP7496404B2 (ja) セキュリティ処理方法及びサーバ
JP7231559B2 (ja) 異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法
JP6807906B2 (ja) 車両へのコンピュータ攻撃を阻止するためのルールを生成するシステムおよび方法
JP6762347B2 (ja) 交通手段に対するコンピュータ攻撃を阻止するためのシステムおよび方法
JPWO2019117184A1 (ja) 車載ネットワーク異常検知システム及び車載ネットワーク異常検知方法
WO2019021403A1 (ja) 制御ネットワークシステム、車両遠隔制御システム及び車載中継装置
JP6964277B2 (ja) 通信遮断システム、通信遮断方法及びプログラム
WO2018008453A1 (ja) 異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法
JP2019008618A (ja) 情報処理装置、情報処理方法及びプログラム
JP6558703B2 (ja) 制御装置、制御システム、及びプログラム
WO2019021922A1 (ja) 異常検知装置および異常検知方法
WO2020085330A1 (ja) 電子制御装置、電子制御方法及びプログラム
JPWO2019225258A1 (ja) 異常検出装置、異常検出システム及び制御方法
JP2021140460A (ja) セキュリティ管理装置
JP2019146145A (ja) 通信装置、通信方法及びプログラム
EP3547192B1 (en) System and method of blocking a computer attack on a means of transportation
CN113556271B (zh) 非法控制抑止方法、非法控制抑止装置和车载网络系统
US20230052852A1 (en) Method for Authentic Data Transmission Between Control Devices of a Vehicle, Arrangement with Control Devices, Computer Program, and Vehicle
JP2019209961A (ja) 情報処理装置、監視方法、プログラム及びゲートウェイ装置
JP2019172261A (ja) 制御装置、制御システム、及び制御プログラム
WO2018179630A1 (ja) 情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210302

R150 Certificate of patent or registration of utility model

Ref document number: 6846991

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150