JP6839963B2 - 異常検知方法、異常検知装置及び異常検知システム - Google Patents

異常検知方法、異常検知装置及び異常検知システム Download PDF

Info

Publication number
JP6839963B2
JP6839963B2 JP2016212574A JP2016212574A JP6839963B2 JP 6839963 B2 JP6839963 B2 JP 6839963B2 JP 2016212574 A JP2016212574 A JP 2016212574A JP 2016212574 A JP2016212574 A JP 2016212574A JP 6839963 B2 JP6839963 B2 JP 6839963B2
Authority
JP
Japan
Prior art keywords
vehicle
unit
bus
feature information
determination
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.)
Active
Application number
JP2016212574A
Other languages
English (en)
Other versions
JP2017126978A (ja
Inventor
良浩 氏家
良浩 氏家
芳賀 智之
智之 芳賀
前田 学
学 前田
松島 秀樹
秀樹 松島
剛 岸川
剛 岸川
淳一 鶴見
淳一 鶴見
久嗣 鹿島
久嗣 鹿島
雪乃 鳥海
雪乃 鳥海
拓也 桑原
拓也 桑原
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 CN202110213461.7A priority Critical patent/CN113014464B/zh
Priority to EP16883746.6A priority patent/EP3402128B1/en
Priority to PCT/JP2016/087134 priority patent/WO2017119246A1/ja
Priority to CN201680051251.XA priority patent/CN108028790B/zh
Priority to EP20168399.2A priority patent/EP3697031B1/en
Publication of JP2017126978A publication Critical patent/JP2017126978A/ja
Priority to US16/026,040 priority patent/US10986008B2/en
Application granted granted Critical
Publication of JP6839963B2 publication Critical patent/JP6839963B2/ja
Priority to US17/201,839 priority patent/US11296965B2/en
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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • 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
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/61Time-dependent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/48Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication
    • 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

Description

本発明は、車載ネットワークにおいて送信されるメッセージについての異常を検知する技術に関する。
近年、自動車の中のシステムには、電子制御ユニット(ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、ISO11898−1で規定されているCAN(Controller Area Network)という規格が存在する。
CANでは、通信路は2本のワイヤで構成されたバス(CANバス)であり、バスに接続されているECUはノードと呼ばれる。CANバスに接続されている各ノードは、フレーム(メッセージ)を送受信する。またCANでは、送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎に、メッセージIDと呼ばれるIDを付けて送信し(つまりバスに信号を送出することでブロードキャストし)、各受信ノードは予め定められたメッセージIDのみを受信する(つまりバスから信号を読み取る)。自動車の中のシステムにおいては、多数のECUそれぞれは、様々なフレームの授受を行う。
CANバスに不正なノードを接続すること、或いは、携帯情報端末、車外の通信装置等と通信する機能を有するECU等を攻撃して不正なノードに変化させること等により、攻撃者が、攻撃フレームをCANバスに送信して、自動車を不正にコントロールする可能性がある。攻撃フレームは、不正な攻撃者によってCANバスに送信されたフレームであり、車載ネットワークの正常状態において本来は送信されないフレーム(異常なメッセージ)である。
このような攻撃フレームを検知するための技術として、CANのバス上に送信されたフレームが異常なフレームか否かを統計的な手法を用いて判定する技術が知られている(特許文献1、特許文献2参照)。
特開2015−026252号公報 特開2015−170121号公報
車載ネットワークでの攻撃フレームの検知(つまり異常の検知)のためには、特許文献1、2の技術で十分とは限らず、異常検知のための更なる技術の研究開発が望まれている。
そこで、本発明は、自動車等の車両の車載ネットワークで送信され得る異常なメッセージ(攻撃フレーム)の検知のために有用な異常検知方法を提供する。
上記課題を解決するために本発明の一態様に係る異常検知方法は、CAN(Controller Area Network)プロトコルに従って車両内のバスを介してメッセージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける異常の検知のための異常検知方法であって、単位時間の決定を行い、前記決定された単位時間内に前記バスから受信されたメッセージの数に基づく特徴情報と、メッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理を行い、当該演算処理の結果に応じて異常か否かを判定する異常検知方法である。
また、上記課題を解決するために本発明の一態様に係る異常検知装置は、CAN(Controller Area Network)プロトコルに従って車両内のバスを介してメッセージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて、前記バスに接続されて異常を検知する異常検知装置であって、前記バスからメッセージを受信する受信部と、単位時間を決定する決定部と、前記決定部により決定された単位時間内に前記受信部により受信されたメッセージの数に基づく特徴情報を特定する特定部と、前記特定部で特定された前記特徴情報とメッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理の結果に応じて、異常か否かを判定する判定部とを備える異常検知装置である。
また、上記課題を解決するために本発明の一態様に係る異常検知システムは、一の車両とサーバとを備える異常検知システムであって、前記一の車両は、CAN(Controller Area Network)プロトコルに従って前記一の車両内のバスを介してメッセージの授受を行う複数の電子制御ユニットと当該バスに接続された異常検知装置とを備える車載ネットワークシステムを有し、前記異常検知装置は、前記バスからメッセージを受信する受信部と、前記一の車両の識別のための車両識別情報を前記サーバに送信し、前記サーバからの応答に基づいて単位時間を決定する決定部と、前記決定部により決定された単位時間内に前記受信部により受信されたメッセージの数に基づく特徴情報を特定する特定部と、前記特定部で特定された前記特徴情報とメッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理の結果に応じて、異常か否かを判定する判定部とを備え、前記サーバは、前記一の車両から前記車両識別情報を受信し、当該車両識別情報に基づいて特定した単位時間を示す情報を、前記一の車両に送信する通信部を備える異常検知システムである。
本発明によれば、攻撃者により攻撃フレーム(メッセージ)がバスに流された場合に、車載ネットワークシステムで決定された単位時間におけるメッセージの数が基準と相違することとなり得るので、異常を検知し得る。
実施の形態1に係る異常検知システムの全体構成を示す図である。 CANプロトコルで規定されるデータフレームのフォーマットを示す図である。 電子制御ユニット(ECU)の構成図である。 受信IDリストの一例を示す図である。 エンジンECUが送信するフレームにおけるID及びデータフィールドの一例を示す図である。 ブレーキECUが送信するフレームにおけるID及びデータフィールドの一例を示す図である。 ドア開閉センサECUが送信するフレームにおけるID及びデータフィールドの一例を示す図である。 ウィンドウ開閉センサECUが送信するフレームにおけるID及びデータフィールドの一例を示す図である。 実施の形態1に係るゲートウェイの構成図である。 実施の形態1に係るゲートウェイが保持する車両識別情報の一例を示す図である。 実施の形態1に係るゲートウェイが用いる転送ルールの一例を示す図である。 実施の形態1に係るサーバの構成図である。 実施の形態1に係るサーバが保持する検出窓サイズ特定用テーブルの一例を示す図である。 ECUにおけるフレーム送信処理シーケンスの一例を示す図である。 実施の形態1に係るゲートウェイにおけるフレーム転送処理シーケンスの一例を示す図である。 実施の形態1に係るゲートウェイ及びサーバにおける検出窓サイズ決定処理シーケンスの一例を示す図である。 実施の形態1に係るゲートウェイ及びサーバにおける学習処理シーケンスの一例を示す図である。 実施の形態1に係るゲートウェイが用いる検出窓の説明のための図である。 実施の形態1に係るゲートウェイ及びサーバにおけるモデル更新処理シーケンスの一例を示す図である。 実施の形態1に係るゲートウェイ及びサーバにおける異常検知処理シーケンスの一例を示す図である。 実施の形態2に係る車両の車載ネットワークシステムの構成図である。 実施の形態2に係るゲートウェイの構成図である。 実施の形態2に係るゲートウェイにおける検出窓サイズ決定処理シーケンスの一例を示す図である。 実施の形態2に係るゲートウェイにおける学習処理シーケンスの一例を示す図である。 実施の形態2に係るゲートウェイにおける異常検知処理シーケンスの一例を示す図である。 実施の形態の変形例に係る検出窓の一例を示す図である。
(本発明の基礎となった知見等)
攻撃者により攻撃フレーム(メッセージ)が車載ネットワークのバスに流された場合に、単位時間においてバスから受信されたフレームの数が、正常状態においてその単位時間におけるフレームの出現頻度を示す基準(モデル)と相違することとなれば、異常を検知し得る。車載ネットワークシステムの構成、仕様等(バスで接続されたECUの編成、仕様等)によって正常状態における単位時間におけるバスへのフレームの出現頻度は限定的となり得るためである。このとき単位時間が適切であるか否かは、異常の検知精度に影響を及ぼす。そこで、車両の車載ネットワークシステムで、多様な時間幅の中から例えば10ms等と単位時間を決定(選定)し、決定した単位時間を用いて異常を検知し得る異常検知方法に想到した。車載ネットワークシステムの構成、仕様等は、例えば車両毎或いは車種毎等に異なり得るので、一例としては、車両の車載ネットワークシステムにおいて、その車両、車種等の識別のための車両識別情報に基づいて単位時間を決定し得る。また、攻撃手法の変化、多様化等により、攻撃された状態と正常状態とを区別するために適した単位時間が過去から不変とは限らないので、車両の車載ネットワークシステムにおいて異常の検知のために、単位時間を決定してから異常を検知する方法は有用となり得る。例えば、同一車種の複数車両から集積した、フレームに係る情報の最新の解析結果等に基づいて、異常の検知のために用いる単位時間を決定すること等が有用となる。
本発明の一態様に係る異常検知方法は、CAN(Controller Area Network)プロトコルに従って車両内のバスを介してメッセージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける異常の検知のための異常検知方法であって、単位時間の決定を行い、前記決定された単位時間内に前記バスから受信されたメッセージの数に基づく特徴情報と、メッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理を行い、当該演算処理の結果に応じて異常か否かを判定する異常検知方法である。これにより、攻撃者により攻撃フレーム(メッセージ)がバスに流された場合に、車載ネットワークシステムで決定された単位時間(例えば10ms等)におけるメッセージの数が基準と相違することとなり得るので、適切に異常が検知され得る。
また、例えば、前記メッセージは、メッセージの種類を示すメッセージIDを含み、前記異常検知方法は、単位時間の前記決定を行う決定ステップと、前記決定ステップで決定された単位時間内に前記バスから受信されたメッセージID毎のメッセージの数を成分とする特徴ベクトルを前記特徴情報として特定する特定ステップと、前記特定ステップで特定された前記特徴情報と前記所定モデルとを用いて前記演算処理を行い、当該演算処理の結果に応じて前記判定を行う判定ステップとを含むこととしても良い。これにより、車載ネットワークシステムにおいてメッセージの種類別の受信数に基づきメッセージの出現状況を適切に表す特徴ベクトルが定められることとなり、適切な異常の検知が可能となり得る。
また、例えば、前記決定ステップでは、前記車両の識別のための車両識別情報に基づいて単位時間の前記決定を行うこととしても良い。これにより、車両識別情報で識別される車載ネットワークシステムに対応して精度良い異常の検知が可能となり得る。
また、例えば、前記車両識別情報は、前記車両の製造事業者を示すこととしても良い。これにより、車両製造事業者毎の車載ネットワークの特徴に対応して、異常の検知に用いる単位時間を定め得るので、精度良い異常の検知が可能となり得る。
また、例えば、前記車両識別情報は、前記車両の車種を示すこととしても良い。これにより、車種毎の車載ネットワークの特徴に対応して、異常の検知に用いる単位時間を定め得るので、精度良い異常の検知が可能となり得る。
また、例えば、前記車両識別情報は、前記車両を他の車両と区別する情報であることとしても良い。これにより、個々の車両毎の車載ネットワークシステムの特徴に適応した異常の検知が可能となり得る。
また、例えば、前記決定ステップでは、前記車両識別情報により識別される車両の集合における各車両の車載ネットワークシステムで当該車両内のバスに正常状態で送信されるべき、互いに異なる複数種類のメッセージのうち、送信周期が最短の一種類のメッセージの当該送信周期を、単位時間とするように前記決定を行うこととしても良い。これにより、精度良い異常の検知が可能となり得る。
また、例えば、前記判定ステップでは、前記車両識別情報に対応した前記所定モデルを用いて前記演算処理を行うこととしても良い。これにより、車載ネットワークシステムにおいて決定した単位時間に対応した所定モデルと、車載ネットワークで単位時間において受信したメッセージの数とによって異常を検知することになるので、適切な異常の検知が可能となる。
また、例えば、前記特定ステップでは、前記決定ステップで決定された単位時間毎に、当該単位時間内で前記バスから受信されたメッセージの数に基づく前記特徴情報を、逐次特定し、前記判定ステップでは、前記特定ステップで逐次特定された各前記特徴情報について、当該特徴情報と前記所定モデルとを用いて前記演算処理を行い、前記異常検知方法は更に、前記特定ステップで逐次特定された複数の前記特徴情報に基づいて前記所定モデルを逐次更新する更新ステップを含むこととしても良い。これにより、異常の検知に用いる所定モデルを逐次更新するので、例えば、車載ネットワークの最近の状況(例えば車両の最近の使用状況等)に対応して、適切に異常の検知を行うことが可能となり得る。
また、例えば、前記決定ステップでは、前記車両の製造の際に規定された情報に基づいて、前記車両において単位時間の前記決定を行い、前記特定ステップでは、前記車両において前記特徴情報を特定することとしても良い。これにより、車両において異常の検知に用いる特徴情報の生成の基礎となる単位時間を、車両の製造の際に規定された情報(例えば車台番号等)に基づいて決定し得るので、車両に適応した適切な異常の検知が可能となり得る。
また、例えば、前記決定ステップでは、前記車両のエンジン始動又はアクセサリ−オンの際に、前記車両において単位時間の前記決定を行い、前記特定ステップでは、前記車両において前記特徴情報を特定することとしても良い。これにより、車両において異常の検知に用いる特徴情報の生成の基礎となる単位時間を、車両の使用開始の際(走行開始の際等)に決定し得るので、例えば最近の状況に適応して、適切な異常の検知が可能となり得る。
また、例えば、前記決定ステップでは、所定時間毎に単位時間の前記決定を行い、前記特定ステップでは、前記決定ステップで決定された最新の単位時間毎に、当該単位時間内で前記バスから受信されたメッセージの数に基づく前記特徴情報を、逐次特定し、前記判定ステップでは、前記特定ステップで逐次特定された各前記特徴情報について、当該特徴情報と前記所定モデルとを用いて前記演算処理を行うこととしても良い。これにより、車両において異常の検知に用いる特徴情報の生成の基礎となる単位時間を、所定時間毎に決定するので、例えば最近の状況に適応して、適切な異常の検知が可能となり得る。
また、例えば、前記メッセージは、メッセージの種類を示すメッセージIDを含み、前記特徴情報は、前記決定された単位時間内に前記バスから受信された、全てのメッセージIDのメッセージの総数を示すこととしても良い。これにより、IDを区別しないことで効率的に異常の検知を行うことが可能となり得る。
また、本発明の一態様に係る異常検知装置は、CAN(Controller Area Network)プロトコルに従って車両内のバスを介してメッセージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて、前記バスに接続されて異常を検知する異常検知装置であって、前記バスからメッセージを受信する受信部と、単位時間を決定する決定部と、前記決定部により決定された単位時間内に前記受信部により受信されたメッセージの数に基づく特徴情報を特定する特定部と、前記特定部で特定された前記特徴情報とメッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理の結果に応じて、異常か否かを判定する判定部とを備える異常検知装置である。演算処理は、例えば、異常検知装置で行っても、外部の装置(サーバ)で行っても良く、その結果に応じて、異常検知装置の判定部で判定を行えば良い。演算処理をサーバで行う場合においては、異常検知装置は、例えば、特定部で特定された特徴情報をサーバに送信し、演算処理の結果をサーバから受信することとしても良い。これにより、攻撃者により攻撃フレーム(メッセージ)がバスに流された場合に、異常検知装置で決定された単位時間(例えば10ms等)におけるメッセージの数が基準と相違することとなり得るので、適切に異常が検知され得る。
また、本発明の一態様に係る異常検知システムは、一の車両とサーバとを備える異常検知システムであって、前記一の車両は、CAN(Controller Area Network)プロトコルに従って前記一の車両内のバスを介してメッセージの授受を行う複数の電子制御ユニットと当該バスに接続された異常検知装置とを備える車載ネットワークシステムを有し、前記異常検知装置は、前記バスからメッセージを受信する受信部と、前記一の車両の識別のための車両識別情報を前記サーバに送信し、前記サーバからの応答に基づいて単位時間を決定する決定部と、前記決定部により決定された単位時間内に前記受信部により受信されたメッセージの数に基づく特徴情報を特定する特定部と、前記特定部で特定された前記特徴情報とメッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理の結果に応じて、異常か否かを判定する判定部とを備え、前記サーバは、前記一の車両から前記車両識別情報を受信し、当該車両識別情報に基づいて特定した単位時間を示す情報を、前記一の車両に送信する通信部を備える異常検知システムである。例えば、判定部は、特定部で特定された特徴情報をサーバに送信し、サーバからの応答(例えば、異常か否かを示す情報等)に応じて異常か否かを判定するものであっても良い。この場合にはサーバは、例えば、受信した特徴情報を用いて、所定モデルに係る演算処理を行ってその結果に基づく情報を、受信した特徴情報に対する応答として車両に送信し得る。これにより、車両の車両識別情報に対応して単位時間が決定されるので、車両の車載ネットワークに係る異常か否かの判定が適切に行われ得る。
また、例えば、前記サーバは、更に、前記一の車両から受信した前記車両識別情報に基づいて特定した単位時間内に、当該車両識別情報により識別される車両の集合における1つ以上の車両の車載ネットワークシステムで当該車両内のバスから受信されたメッセージの数に基づく所定情報を取得し、当該所定情報に基づいて、メッセージの出現頻度に係る基準を表す基準モデルを更新する学習部を備え、前記通信部は、前記学習部により更新した前記基準モデルを示す情報を前記一の車両に送信し、前記異常検知装置は、前記サーバから受信した前記基準モデルを示す情報に基づいて、前記所定モデルを更新し、前記判定部は、前記特徴情報と、前記更新された前記所定モデルとを用いた演算処理を行い、当該演算処理の結果に応じて、異常か否かの前記判定を行うこととしても良い。これにより、サーバでは、車両識別情報により識別される車両の集合(例えば同一車種の車両等)における車載ネットワークで受信されたメッセージの数に基づく所定情報(例えば特徴情報と同様の情報)を用いた学習により基準モデルを更新する。そして、車両の異常検知装置では、基準モデルに基づいて、例えば一致させるように、所定モデルを更新して異常か否かの判定に利用できる。従って、異常検知装置では、自装置を搭載する車両(車両識別情報で識別される車両)に適応した、適切な異常の検知(判定)の実行が可能となり得る。
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
以下、実施の形態に係る異常検知方法を用いる異常検知システム、異常検知装置等について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
(実施の形態1)
以下、本発明の実施の一態様として、車両において車載ネットワークの異常を検知する異常検知装置が、異常の検知に用いる検出窓サイズ(単位時間)を、車両外部のサーバとの連携により決定する異常検知システムについて、図面を用いて説明する。この異常検知システムにおいては、異常検知装置は、自装置を搭載している車両の車両識別情報をサーバに通知して応答を得ることで、異常の検知に用いる検出窓サイズを決定する。
[1.1 異常検知システム10の全体構成]
図1は、実施の形態1に係る異常検知システム10の全体構成を示す図である。
異常検知システム10は、車載ネットワークシステムを有する車両と、相互に通信可能なサーバ400とを備える。異常検知システム10は、サーバ400と通信可能な複数台の車両を備えても良いが、図1では、便宜上、一台の車両について示している。
図1に示す車両における車載ネットワークシステムは、CANプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ、アクチュエータ、ユーザインタフェース装置等の各種機器が搭載された車両におけるネットワーク通信システムである。この車載ネットワークシステムは、車両に搭載され各種機器に接続されたECU100a(エンジンECU)、ECU100b(ブレーキECU)、ECU100c(ドア開閉センサECU)、及び、ECU100d(ウィンドウ開閉センサECU)と、バス200a、200bと、ゲートウェイ300(異常検知装置の一例)とを含んで構成される。なお、車載ネットワークシステムには、ゲートウェイ300、ECU100a〜100d以外にもいくつものECUが含まれ得るが、ここでは、便宜上ゲートウェイ300及びECU100a〜100dに注目して説明を行う。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行される制御プログラム(ソフトウェアとしてのコンピュータプログラム)を記憶することができる。例えばプロセッサが、制御プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。ECUは、CANプロトコルに従って車両内のバス200a、200bを介してフレームの授受を行い得る。
ECU100a〜100dは、それぞれ、エンジン101、ブレーキ102、ドア開閉センサ103、ウィンドウ開閉センサ104といった機器に接続されており、その機器の状態を取得し、周期的に状態を表すフレーム(データフレーム)を、バス200a、バス200b等で構成される車載ネットワークに送信している。
ゲートウェイ300は、ECU100aとECU100bとが接続されたバス200a、及び、ECU100cとECU100dとが接続されたバス200bと接続され、一方のバスから受信したフレームを他方のバスに転送する機能を有する一種のECUである。また、ゲートウェイ300は、バスから受信したフレームに基づいて異常か否かを判定すること(例えば攻撃フレームがバスに流れている異常状態であるか否かを判定すること)で異常を検知し、その検知結果(異常検知結果)をサーバ400に通知する機能を有する異常検知装置である。異常検知装置としてのゲートウェイ300における異常の検知は、概ね、検出窓サイズの時間長を有する期間である検出窓毎に、その検出窓内に車載ネットワークに係るバス200a、200bから受信されたデータフレーム(メッセージ)の数に基づく特徴情報と、メッセージの出現頻度に係る基準を表す所定モデルとを用いた比較等の演算処理の結果に応じて異常か否かを判定することで、行われる。また、ゲートウェイ300は、ネットワーク40を介してサーバ400と通信することで、異常検知(異常か否かの判定)に用いるための情報(例えば検出窓サイズ、所定モデルを表す情報等のパラメータ等)を決定する機能を有する。
サーバ400は、車両外部のコンピュータであり、ネットワーク40を介して、各車両におけるゲートウェイ300と通信し、受信した車両識別情報に基づいて、異常検知用の情報(検出窓サイズを示す情報等)をゲートウェイ300に応答(返信)する機能を有する。また、サーバ400は、ゲートウェイ300より通知された異常検知結果を保存する機能を有する。また、サーバ400は、各車両におけるゲートウェイ300と通信し、各車両における車載ネットワークで受信されたフレームに係る情報を集積、解析等を行う機能を有しても良い。なお、ネットワーク40における通信には、無線通信、或いは、有線通信のいかなる通信プロトコルを適用しても良い。
[1.2 データフレームフォーマット]
以下、CANプロトコルに従ったネットワークで用いられるフレームの1つであるデータフレーム(メッセージ)について説明する。
図2は、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フィールドで通信調停を行うために、IDが小さい値を持つフレームが高い優先度となるよう設計されている。
RTRは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント1bitで構成される。
IDEと「r」とは、両方ドミナント1bitで構成される。
DLCは、4bitで構成され、データフィールドの長さを示す値である。なお、IDE、「r」及びDLCを合わせてコントロールフィールドと称する。
データフィールドは、最大64bitで構成される送信するデータの内容を示す値である。8bit毎に長さを調整できる。送られるデータの仕様については、CANプロトコルで規定されておらず、車載ネットワークシステムにおいて定められる。従って、車種、製造者(製造メーカ)等に依存した仕様となる。
CRCシーケンスは、15bitで構成される。SOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
CRCデリミタは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。なお、CRCシーケンス及びCRCデリミタを合わせてCRCフィールドと称する。
ACKスロットは、1bitで構成される。送信ノードはACKスロットをレセシブにして送信を行う。受信ノードはCRCシーケンスまで正常に受信ができていればACKスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にACKスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
ACKデリミタは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。
EOFは、7bitのレセシブで構成されており、データフレームの終了を示す。
[1.3 ECU100aの構成]
図3は、ECU100aの構成図である。ECU100aは、フレーム送受信部110と、フレーム解釈部120と、受信ID判断部130と、受信IDリスト保持部140と、フレーム処理部150と、データ取得部160と、フレーム生成部170とを含んで構成される。これらの各構成要素の各機能は、例えばECU100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU100b〜100dも、ECU100aと同様の構成を備える。
フレーム送受信部110は、バス200aに対して、CANのプロトコルに従ったフレームを送受信する。バス200aからフレームを1bitずつ受信し、フレーム解釈部120に転送する。また、フレーム生成部より通知を受けたフレームの内容をバス200aに送信する。
フレーム解釈部120は、フレーム送受信部110よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。IDフィールドと判断した値は受信ID判断部130へ転送する。フレーム解釈部120は、受信ID判断部130から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるデータフィールドとを、フレーム処理部150へ転送するか、その判定結果を受けた以降においてフレームの受信を中止する(つまりそのフレームとしての解釈を中止する)かを決定する。また、フレーム解釈部120は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部170へ通知する。また、フレーム解釈部120は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
受信ID判断部130は、フレーム解釈部120から通知されるIDフィールドの値を受け取り、受信IDリスト保持部140が保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ID判断部130は、フレーム解釈部120へ通知する。
受信IDリスト保持部140は、ECU100aが受信するID(メッセージID)のリストである受信IDリストを保持する。図4に、受信IDリストの一例を示す。
フレーム処理部150は、受信したフレームのデータに応じてECU毎に異なる機能に係る処理を行う。例えば、エンジン101に接続されたECU100aは、時速が30kmを超えた状態でドアが開いている状態だと、アラーム音を鳴らす機能を備える。ECU100aは、例えばアラーム音を鳴らすためのスピーカ等を有している。そして、ECU100aのフレーム処理部150は、他のECUから受信したデータ(例えばドアの状態を示す情報)を管理し、エンジン101から取得された時速に基づいて一定条件下でアラーム音を鳴らす処理等を行う。なお、フレーム処理部150は、ここで例示した以外のフレームのデータに係る処理を行っても良い。
データ取得部160は、ECUにつながっている機器、センサ等の状態を示すデータを取得し、フレーム生成部170に通知する。
フレーム生成部170は、フレーム解釈部120から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部110へ通知して送信させる。また、フレーム生成部170は、データ取得部160より通知されたデータの値に対して、予め定められたメッセージIDをつけてフレーム(データフレーム)を構成し、フレーム送受信部110へ通知する。なお、ECU100a〜100dのそれぞれが送信するフレームの内容については後に図5〜図8を用いて説明する。
[1.4 受信IDリスト例]
図4は、ECU100a〜100dのそれぞれにおいて保持される受信IDリストの一例を示す図である。同図に例示する受信IDリストは、ID(メッセージID)の値が「1」、「2」、「3」及び「4」のいずれかであるメッセージIDを含むフレーム(メッセージ)を選択的に受信して処理するために用いられる。例えば、ECU100aの受信IDリスト保持部140に図4の受信IDリストが保持されていると、メッセージIDが「1」、「2」、「3」及び「4」のいずれでもないフレームについては、フレーム解釈部120でのIDフィールド以後のフレームの解釈が中止される。
[1.5 エンジンECU100aの送信フレーム例]
図5は、エンジン101に接続されたECU100aから送信されるフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU100aが送信するフレームのメッセージIDは「1」である。データは、時速(km/時)を表し、最低0(km/時)〜最高180(km/時)までの範囲の値を取り、データ長は1byteである。図5の上行から下行へと、ECU100aから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、0km/時から1km/時ずつ加速されている様子を表している。
[1.6 ブレーキECU100bの送信フレーム例]
図6は、ブレーキ102に接続されたECU100bから送信されるフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU100bが送信するフレームのメッセージIDは「2」である。データは、ブレーキのかかり具合を割合(%)で表し、データ長は1byteである。この割合は、ブレーキを全くかけていない状態を0(%)、ブレーキを最大限かけている状態を100(%)としたものである。図6の上行から下行へと、ECU100bから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、100%から徐々にブレーキを弱めている様子を表している。
[1.7 ドア開閉センサECU100cの送信フレーム例]
図7は、ドア開閉センサ103に接続されたECU100cから送信されるフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU100cが送信するフレームのメッセージIDは「3」である。データは、ドアの開閉状態を表し、データ長は1byteである。データの値は、ドアが開いている状態が「1」、ドアが閉まっている状態が「0」である。図7の上行から下行へと、ECU100cから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、ドアが開いている状態から次第に閉められた状態へと移った様子を表している。
[1.8 ウィンドウ開閉センサECU100dの送信フレーム例]
図8は、ウィンドウ開閉センサ104に接続されたECU100dから送信されるフレームにおけるID(メッセージID)及びデータフィールド(データ)の一例を示す図である。ECU100dが送信するフレームのメッセージIDは「4」である。データは、窓(ウィンドウ)の開閉状態を割合(%)で表し、データ長は1byteである。この割合は、窓が完全に閉まっている状態を0(%)、窓が全開の状態を100(%)としたものである。図8の上行から下行へと、ECU100dから逐次送信される各フレームに対応する各メッセージID及びデータを例示しており、窓が閉まっている状態から徐々に開いていく様子を表している。
[1.9 ゲートウェイ300の構成]
図9は、ゲートウェイ300の構成図である。ゲートウェイ300は、フレーム送受信部310と、フレーム解釈部320と、受信ID判断部330と、受信IDリスト保持部340と、加工処理部350と、外部通信部360と、車両識別情報保持部361と、異常検知処理部370と、モデル保持部371と、転送処理部380と、転送ルール保持部381と、フレーム生成部390とを含んで構成される。これらの各構成要素の各機能は、例えばゲートウェイ300における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
フレーム送受信部310は、バス200a、200bそれぞれに対して、CANプロトコルに従ったフレームを送受信する。フレーム送受信部310は、バスからフレームを1bitずつ受信する受信部として機能し、受信したフレームをフレーム解釈部320に転送する。また、フレーム生成部390より通知を受けた転送先のバスを示すバス情報及びフレームに基づいて、そのフレームの内容をバス200a、200bに1bitずつ送信する。
フレーム解釈部320は、フレーム送受信部310よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。IDフィールドと判断した値は受信ID判断部330へ転送する。フレーム解釈部320は、受信ID判断部330から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるデータフィールド(データ)とを、転送処理部380へ転送するか、その判定結果を受けた以降においてフレームの受信を中止するかを決定する。また、フレーム解釈部320は、IDフィールドの値を、加工処理部350に通知する。また、フレーム解釈部320は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部390へ通知する。また、フレーム解釈部320は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
受信ID判断部330は、フレーム解釈部320から通知されるIDフィールドの値を受け取り、受信IDリスト保持部340が保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ID判断部330は、フレーム解釈部320へ通知する。
受信IDリスト保持部340は、ゲートウェイ300が受信するID(メッセージID)のリストである受信IDリスト(図4参照)を保持する。
加工処理部350は、サーバ400から通知された検出窓サイズを示す情報に基づいて検出窓サイズを決定してその検出窓サイズを保持する。つまり加工処理部350は、検出窓サイズを決定する決定部として機能する。加工処理部350は、フレーム解釈部320から通知されるIDフィールドの値に基づいて、検出窓サイズの時間長の検出窓毎に、バス200a、200bから逐次受信されたフレームの集合(逐次通知されたIDフィールドの値の集合)を、検出窓におけるID(メッセージID)別のフレームの受信数(検出窓サイズの検出窓内でフレームの受信をID別にカウントして得られたカウント数)を示す特徴情報に変換して特徴情報を外部通信部360へ通知する。つまり加工処理部350は、特徴情報を特定する特定部としても機能する。また、加工処理部350は、バス200a、200bから検出窓サイズの検出窓内に逐次受信されたフレームの数に基づくその特徴情報を異常検知処理部370へ逐次通知する。
外部通信部360は、車両識別情報保持部361が保持する車両識別情報を、ネットワーク40を介してサーバ400へ通知(送信)し、応答としてサーバ400から通知された検出窓サイズを示す情報を加工処理部350へ通知する。また、外部通信部360は、加工処理部350から通知された特徴情報をサーバ400に通知(送信)する。また、外部通信部360は、サーバ400から通知されたモデル情報(データフレームの出現頻度に係る基準を表す基準モデルを示す情報)を異常検知処理部370へと通知する。また、外部通信部360は、異常検知処理部370から通知された異常検知結果をサーバ400へ通知(送信)する。
車両識別情報保持部361は、車両の識別のための車両識別情報を保持する。図10に、車両識別情報の一例を示す。
異常検知処理部370は、サーバ400から通知されたモデル情報を、外部通信部360を介して取得し、モデル情報に従ってモデル保持部371が保持している所定モデル(データフレームの出現頻度に係る基準を表すモデル)を更新する。例えば、異常検知処理部370は、モデル情報が示す基準モデルと一致させるように所定モデルを更新し得る。また、異常検知処理部370は、フレーム解釈部320から通知されるIDフィールドの値に基づいて加工処理部350で変換された特徴情報を受け取り、モデル保持部371が保持している所定モデルと、その特徴情報とを用いた演算処理を行い、その演算処理の結果に応じて異常か否かを判定する判定部として機能する。即ち、異常検知処理部370は、バスから受信されたフレームの集合に係る特徴情報が、所定モデルが表す基準に適合しているか否かを、特徴情報及び所定モデルを用いた演算処理により判定する。この判定では、特徴情報に反映された検出窓サイズでのID別のデータフレームの受信数が、所定モデルが表す基準(例えば正常状態におけるデータフレームの出現頻度を示す基準)に適合していると正常であり、基準に適合していない(つまり基準を逸脱している)と異常であると判定される。このように判定するために演算処理は定められており、演算処理は、例えば所定モデルと特徴情報との比較、算術演算、論理演算、条件判断等といった各種処理の1つ以上の組み合わせである。異常検知処理部370は、その演算処理による異常か否かの判定結果(つまり異常検知結果)を、外部通信部360へ通知する。
モデル保持部371は、異常検知処理部370から通知された所定モデルを保持する。
転送処理部380は、転送ルール保持部381が保持する転送ルールに従って、受信したフレームのID(メッセージID)に応じて、転送するバス(転送先のバス)を決定し、転送するバスを示すバス情報とフレーム解釈部320より通知されたメッセージIDとデータとをフレーム生成部390へ通知する。
転送ルール保持部381は、バス毎のフレームの転送についてのルールを表す情報である転送ルールを保持する。図11に、転送ルールの一例を示す。
フレーム生成部390は、フレーム解釈部320から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部310へ通知して送信させる。また、フレーム生成部390は、転送処理部380より通知されたメッセージIDとデータとを使ってフレームを構成し、そのフレーム及びバス情報をフレーム送受信部310へ通知する。
[1.10 車両識別情報]
図10は、ゲートウェイ300が保持する車両識別情報の一例を示す。車両識別情報は、車両の識別のための情報であり、図10では、車両識別情報が、カーメーカ(車両の製造事業者)、車種、及び、車台番号を示す例を示している。この例では、例えば、車台番号は、個々の車両を他の車両と区別する情報(各車両を識別する情報)であり、型式(車両形式)と製造番号とから構成される。ここで、車種が同一の車両同士は、車載ネットワークの構成が同一であり、車載ネットワークのCANバスに流れるデータフレーム(メッセージ)の利用に関する仕様(メッセージID毎のデータフィールドの内容の規定等)は同じである。即ち、ここでの車種が同一の車両は、例えば、車両型式が同一の車両である。なお、車両識別情報は、この例に限られず、例えば、車両識別番号(VIN:Vehicle Identification Number)等であっても良い。例えば、車両識別番号における先頭からシリアル番号の前までの桁の値が同一の車両は、同一車種の車両である。なお、車両識別情報は、必ずしも、それだけで個々の車両が識別可能となる情報である必要はない。例えば、車両識別情報は、車両の車種のみを示す情報であっても良く、車両の製造事業者のみを示す情報であっても良く、車台番号のみを示す情報であっても良く、或いはこれらのいずれかと他の情報とを組み合わせた情報等であっても良い。
[1.11 転送ルール]
図11は、ゲートウェイ300の転送ルール保持部381が保持する転送ルールの一例を示す。
この転送ルールは、転送元のバスと転送先のバスと転送対象のID(メッセージID)とを対応付けている。図11中の「*」はメッセージIDにかかわらずフレームの転送がなされることを表している。図11の例は、バス200aから受信されるフレームはメッセージIDにかかわらず、バス200bに転送するように設定されていることを示している。また、バス200bから受信されるフレームのうちメッセージIDが「3」であるフレームのみがバス200aに転送されるように設定されていることを示している。
[1.12 サーバ400の構成]
サーバ400は、車両外部に所在し、例えば複数の車両を管理し得るコンピュータであり、メモリ、ハードディスク等の記憶媒体、プロセッサ、通信回路等を含む。
図12は、サーバ400の構成図である。サーバ400は、同図に示すように、通信部410と、データ蓄積部420と、学習部430と、検出窓サイズ特定部440と、検出窓サイズ特定用テーブル保持部450と、異常検知結果保持部460とを含んで構成される。これらの各構成要素は、サーバ400における通信回路、メモリに格納された制御プログラムを実行するプロセッサ等により実現される。
通信部410は、ネットワーク40を介して各車両のゲートウェイ300と通信する。また、通信部410は、ゲートウェイ300から逐次通知される、検出窓サイズ当たりのID別のカウント数を反映した特徴情報を、車両毎に区別して、データ蓄積部420に蓄積する。また、通信部410は、学習部430から通知された基準モデルを示すモデル情報を、ゲートウェイ300へ通知(送信)する。また、通信部410は、ゲートウェイ300から通知された車両識別情報を検出窓サイズ特定部440に通知して、検出窓サイズ特定部440から通知された検出窓サイズを示す情報をゲートウェイ300に通知(送信)する。また、通信部410は、ゲートウェイ300から通知された異常検知結果を異常検知結果保持部460に保持させる。
データ蓄積部420は、通信部410から通知された特徴情報を車両毎に区別して蓄積(保持)する。
学習部430は、データ蓄積部420に蓄積された車両毎の特徴情報に基づいて、車両毎に対応する基準モデル(車両の車載ネットワークのバスに現れるデータフレームの出現頻度に係る基準を表すモデル)を構築し保持し、特徴情報に基づいて必要に応じて基準モデルを更新する。学習部430は、例えば、通信部410及びデータ蓄積部420によって逐次収集される特徴情報に基づいて、例えば機械学習により、保持している基準モデルを逐次更新する。
検出窓サイズ特定部440は、検出窓サイズ特定用テーブル保持部450が保持する検出窓サイズ特定用テーブルを参照して、通信部410から通知された車両識別情報に応じて検出窓サイズを特定し、特定した検出窓サイズを示す情報を通信部410へと通知する。
検出窓サイズ特定用テーブル保持部450は、車両識別情報に応じて検出窓サイズを特定するために用いられる検出窓サイズ特定用テーブルを保持する。検出窓サイズ特定用テーブルの一例を図13に示す。
異常検知結果保持部460は、通信部410から通知された異常検知結果を、車両毎にログとして保持する。なお、サーバ400が複数の車両を管理する場合においては、例えば、車両から受信した車両識別情報に基づいて各車両からの情報を類別して管理しても良く、例えば、車両のゲートウェイ300は、特徴情報或いは異常検知結果をサーバ400へ送信する際にも車両識別情報の全部或いは一部を付して送信することとしても良い。
[1.13 検出窓サイズ特定用テーブル]
図13は、サーバ400で保持する検出窓サイズ特定用テーブルの一例を示す。図13に示す検出窓サイズ特定用テーブルは、車両識別情報と検出窓サイズとを対応付けたテーブルである。図13に例示する検出窓サイズ特定用テーブルの車両識別情報は、図10の例と同様に、カーメーカ、車種、及び、車台番号を含む。この検出窓サイズは、例えば、車両識別情報により識別される車両の集合における各車両の車載ネットワークシステムでCANバスに正常状態で送信されるべき、複数種類のデータフレーム(つまりメッセージIDが互いに異なる複数のデータフレーム)のうち、送信周期が最短の一種類のデータフレームのその送信周期と一致するように定められ得る。この検出窓サイズを定めるために、車載ネットワークシステムの仕様、或いは、車載ネットワークシステムの正常状態の実情の分析結果等が参照され得る。例えば、車両識別情報が、個々の車両ではなく車種のみを識別するものであれば、その車種の各車両における車載ネットワークシステムで、正常状態で送信される複数のIDのフレームの送信周期のうち最短の周期のものと一致するように、検出窓サイズが定められ得る。検出窓サイズ特定用テーブルにおける検出窓サイズの定め方は、この他の方法によっても良く、結果的に車両の異常検知装置(ゲートウェイ300)において、正常状態と攻撃された状態とを適切に区別できるように、検出窓サイズを定めておくことが有用である。
[1.14 ECU100aのフレーム送信処理]
図14は、ECU100aにおけるフレーム送信処理シーケンスの一例を示す。以下、同図に即してECU100aによるフレーム送信処理について説明する。
ECU100aは、データ取得部160により、センサからデータ(例えばエンジン101に関連してセンサで測定された車速)を取得する(ステップS1101)。
次にECU100aは、取得したセンサのデータに基づいて、フレーム生成部170により、送信すべきフレーム(データフレーム)を生成する(ステップS1102)。
次にECU100aは、生成したフレームをバス200aに対して送信(ブロードキャスト)する(ステップS1103)。このステップS1101からS1103までの処理は、概ね一定の周期で、周期的に繰り返され得る。
ECU100b〜100dにおいても、ECU100aと同様な手順でフレーム送信処理が行われ得る。但し、送信の周期は、ECU毎に異なり得る。
[1.15 ゲートウェイ300のフレーム転送処理]
図15は、ゲートウェイ300におけるフレーム転送処理シーケンスの一例を示す。以下、同図に即してゲートウェイ300によるフレーム転送処理について説明する。ゲートウェイ300は、バス200a及びバス200bのいずれかからフレーム(データフレーム)を受信する度にこのフレーム転送処理を行う。ここでは、ゲートウェイ300が、バス200aから受信したフレームをバス200bに転送する例を用いて説明する。
ゲートウェイ300は、バス200aに送信(ブロードキャスト)されたフレームを受信する(ステップS1201)。
次に、ゲートウェイ300は、転送ルール(図11参照)を確認する(ステップS1202)。
ゲートウェイ300は、転送ルールに基づいて、受信したフレームが転送されるべきフレームであると判定した場合には、そのフレームの内容に基づいて転送用フレームを生成する(ステップS1203)。
次に、ゲートウェイ300は、転送用フレームをバス200bに送信(ブロードキャスト)して、フレーム転送処理を終える(ステップS1204)。なお、ステップS1202で確認した転送ルールに基づいて、受信したフレームが転送されるべきフレームでないと判定した場合には、ゲートウェイ300は、フレームの転送を行わずにフレーム転送処理を終える。
[1.16 検出窓サイズ決定処理シーケンス]
図16は、ゲートウェイ300及びサーバ400の連携による検出窓サイズ決定処理シーケンスの一例を示す。以下、同図に即して検出窓サイズ決定処理シーケンスについて説明する。
ゲートウェイ300は、車両識別情報を取得する(ステップS1301)。ゲートウェイ300は、車両識別情報を車両識別情報保持部361から取得する。車両識別情報保持部361には、例えば、ゲートウェイ300が車両に搭載された際(例えば車両の製造の際等)において車両識別情報が保持されていても良いし、予め記録された車両識別情報を保持する車両内のECUからゲートウェイ300がその車両識別情報を受信することで、車両識別情報保持部361に保持させることとしても良い。
ゲートウェイ300は、ステップS1301で取得した車両識別情報を、サーバ400に送信する(ステップS1302a)。これにより、サーバ400は、車両識別情報を受信する(ステップS1302b)。なお、ゲートウェイ300が、サーバ400に車両識別情報を送信するタイミングは、例えば、ゲートウェイ300が車両に搭載された際(例えば車両の製造の際等)であるが、この他のタイミングであっても良いし、そのタイミングは複数であっても良い。この他のタイミング(ゲートウェイ300がサーバ400に車両識別情報を送信するタイミング)の例としては、車両の走行開始時等といった車両を使用する際毎(例えば車両のエンジン始動の際、アクセサリ−オン(ACC−ON)の際等)、所定時間(例えば1日)毎等が挙げられる。そして、ゲートウェイ300が、サーバ400に車両識別情報を送信するタイミングの到来に合わせて図16に示す検出窓サイズ決定処理シーケンスの全体が実行され得る。
サーバ400では、ステップS1302bで受信した車両識別情報に応じて、検出窓サイズ特定部440により検出窓サイズを特定し(ステップS1303)、特定した検出窓サイズを示す情報(検出窓サイズ情報)を、車両識別情報に対する応答として、ゲートウェイ300に送信する(ステップS1304a)。これにより、ゲートウェイ300は、検出窓サイズ情報を受信する(ステップS1304b)。
ゲートウェイ300は、受信した検出窓サイズ情報に従って、加工処理部350において検出窓サイズを決定して、検出窓サイズを保持する(ステップS1305)。
[1.17 学習処理シーケンス]
図17は、ゲートウェイ300及びサーバ400の連携による学習処理シーケンスの一例を示す。学習処理シーケンスでは、車両の車載ネットワークにおいてゲートウェイ300が受信したフレームの集合に加工処理を加えてなる特徴情報をサーバ400に送信し、サーバ400では特徴情報を基準モデルへ反映する。以下、図17に即して学習処理シーケンスについて説明する。
ゲートウェイ300は、加工処理部350において、保持している検出窓サイズの時間長の検出窓毎に、バス200a及びバス200bからフレーム(データフレーム)を受信すると(ステップS1401)、検出窓内におけるID(メッセージID)別のフレームの受信数をカウントする(ステップS1402)。
加工処理部350は、検出窓サイズ分の時間の経過(つまり1つの検出窓の終期の到来)を判定し(ステップS1403)、検出窓の終期が到来したら、ID別のフレームの受信数(カウント数)に基づき加工処理により特徴情報を生成する(ステップS1404)。続いてゲートウェイ300は、加工処理部350で生成した特徴情報をサーバ400に送信し(ステップS1405a)、加工処理部350ではカウント数をクリアして(ステップS1406)、次の検出窓についての処理に戻る(つまりステップS1401での処理へ戻る)。なお、ゲートウェイ300は、ステップS1403で、検出窓の終期が到来していないと判定された場合には、ステップS1401での処理に戻る。
ステップS1405aでのゲートウェイ300による特徴情報の送信に呼応して、サーバ400では、特徴情報を受信し(ステップS1405b)、学習部430で、受信した特徴情報を基準モデルに反映する(ステップS1407)。なお、サーバ400は、特徴情報を受信する毎に基準モデルへの反映を行うこととしても良いし、複数の特徴情報を受信してからデータ蓄積部420に蓄積し、複数の特徴情報をまとめて学習部430で特徴情報の基準モデルへの反映を行うこととしても良い。この学習処理シーケンスは、車両の車載ネットワークにおいて正常状態で受信されたフレームに係る特徴情報を基準モデルに反映することで、基準モデルが、その車両の車載ネットワークのバスに現れるフレームの出現頻度に係る基準となることを想定している。基準モデルは、例えば、車両から取得した車両識別情報毎に定められる。基準モデルは、例えば車両毎に定められるが、例えば、同一車種の車両においては共通にすることとしても良い。即ち、サーバ400が車両からの車両識別情報に応じて検出窓サイズを示す情報を送信したその送信先の車両に対応して、基準モデルが存在し、その基準モデルを示すモデル情報が、後述のモデル更新処理シーケンスでその車両に送信される。なお、特徴情報の基準モデルへの反映は、例えば、特徴情報を用いた機械学習により基準モデルを更新することで行われるようにしても良い。
以下、学習処理シーケンスで用いた検出窓サイズの時間長の検出窓と加工処理により生成された特徴情報との一例について、図18を用いて説明する。
ゲートウェイ300の加工処理部350では、検出窓サイズの時間長の各期間(各検出窓T1、T2、T3)において、検出窓内にバスから受信されたフレームの数に基づく特徴情報を特定する。図18では、特徴情報として、受信されたメッセージID毎のフレームの数を成分とする特徴ベクトルを特徴情報として特定する例を示している。図18では、IDが1であるフレームをID1、IDが2であるフレームをID2等と表現している。特徴ベクトルは、例えば、検出窓内におけるID1の受信数(カウント数)、ID2の受信数、ID3の受信数、ID4の受信数のそれぞれを成分とするベクトルである。ベクトルの成分数は、例えば、バスに出現する全てのメッセージIDの数である。図18の例では、ID1、ID2、ID3、ID4の各受信数をこの順に並べた成分を有する特徴ベクトルを示している。検出窓T1においてID1、ID2、ID3の受信数は1でありID4の受信数は0であるので、検出窓T1における特徴ベクトルは[1,1,1,0,・・・]となっている。また、検出窓T2においてID1、ID2、ID4の受信数は1でありID3の受信数は0であるので、検出窓T2における特徴ベクトルは[1,1,0,1,・・・]となっている。また、検出窓T3においてID1、ID3の受信数は1でありID2、ID4の受信数は0であるので、検出窓T3における特徴ベクトルは[1,0,1,0,・・・]となっている。なお、ゲートウェイ300で検出窓サイズの期間においてカウントしたID毎の受信したフレームの数を、サーバ400の基準モデルへ反映するまでにおける、ゲートウェイ300とサーバ400との処理(加工処理等)の分担は、いかなるものでも良い。また、加工処理において、主成分分析等を用いることで、特徴情報としての特徴ベクトルの次元数(成分の数)を削減しても良い。
サーバ400では、特徴情報を基準モデルに反映する際に、例えば、その基準モデルと同様の所定モデルを用いたゲートウェイ300での異常の検知を効率的に行えるようにするための加工等を施しても良い。一例としては、サーバ400は、ゲートウェイ300から逐次取得した特徴情報としての、上述の次元数を削減等した特徴ベクトルの集合を、kd木(k-dimensional tree)等の最近傍距離の計算に適したデータ構造にすることをもって基準モデルへの反映を行う。
[1.18 モデル更新処理シーケンス]
図19は、ゲートウェイ300及びサーバ400の連携によるモデル更新処理シーケンスの一例を示す。モデル更新処理シーケンスでは、サーバ400において更新された基準モデルを、車両のゲートウェイ300が保持する所定モデルに反映する。以下、図19に即してモデル更新処理シーケンスについて説明する。モデル更新処理シーケンスは、任意のタイミング(例えば1日毎)に実行される。
サーバ400は、上述の学習処理シーケンスの結果として基準モデルの更新(基準モデルの内容の変化)があったか否かを判定する(ステップS1501)。基準モデルの更新があった場合には、サーバ400は、更新後の基準モデルを示すモデル情報を、ゲートウェイ300に送信する(ステップS1502a)。これに呼応してゲートウェイ300は、基準モデルを示すモデル情報を受信する(ステップS1502b)。
ゲートウェイ300は、モデル情報を受信すると、異常検知処理部370で、モデル情報に従ってモデル保持部371が保持している所定モデルを更新する(ステップS1503)。これにより、所定モデルは、例えばサーバ400における基準モデルと同様となる。
[1.19 異常検知処理シーケンス]
図20は、ゲートウェイ300及びサーバ400の連携による異常検知処理シーケンスの一例を示す。異常検知処理シーケンスは、例えば車両が使用される段階において実行される。ゲートウェイ300が車両の車載ネットワークのバス200a、200bを流れるフレームを監視して、所定モデルを用いて異常状態が生じているか否かを判定することで異常を検知する処理を含む。所定モデルは、上述のモデル更新処理シーケンスにより、上述の学習処理シーケンスで更新された基準モデルと同様となるように構成されている。なお、上述の学習処理シーケンスは、この異常検知処理シーケンスより前(例えば、車両の使用前、つまり製造或いは検査段階等)に行われ得るが、車両が使用される段階で異常検知処理シーケンスと並行して行われても良い。以下、図20に即して異常検知処理シーケンスについて説明する。
ゲートウェイ300では、フレームが受信されると(ステップS1601)、加工処理部350で、検出窓サイズの検出窓内におけるID別のフレームの受信数をカウントし(ステップS1602)、加工処理によって例えば特徴ベクトルである特徴情報を生成する(ステップS1603)。1つの検出窓においてステップS1601〜ステップS1602での処理が繰り返し行われ、検出窓の終期においてステップS1603での特徴情報の生成が行われてID別のフレームの受信数をカウントするカウンタがクリアされる。
次にゲートウェイ300は、異常検知処理部370により、加工処理部350で生成された特徴情報を受け取り、その特徴情報が、モデル保持部371が保持している所定モデルが示す基準に適合しているか、その基準を逸脱しているかを判定する(ステップS1604)。即ち、異常検知処理部370は、特徴情報と所定モデルとを用いた演算処理を行い、その演算処理の結果に応じて、特徴情報が、所定モデルが表す基準を逸脱しているか否か(つまり異常か否か)を判定する。演算処理の一例としては、加工処理部350から受け取った特徴情報としての特徴ベクトル(図18参照)の、kd木等のデータ構造で表された所定モデルが示す基準(例えば正常状態での特徴ベクトルの分布)に対する最近傍距離を計算して、閾値と比較する処理が、挙げられる。例えば、最近傍距離が正規分布に従うとして、閾値で定めた、平均から標準偏差の一定倍(例えば3倍)の範囲内を逸脱した場合に、異常と判定される。
ゲートウェイ300は、ステップS1604で特徴情報が、所定モデルが示す基準を逸脱していない(基準に適合している)と判定した場合には、正常と判定して(ステップS1605)、特にサーバ400への送信を行わない。一方、特徴情報が、所定モデルが示す基準を逸脱していると判定した場合には、異常と判定して(ステップS1606)、異常検知結果をサーバ400に送信する(ステップS1607a)。
サーバ400は、異常検知結果を受信すると(ステップS1607b)、異常検知結果をログとして保存する(ステップS1608)。
[1.20 実施の形態1の効果]
実施の形態1に係る異常検知システム10では、車両に搭載された異常検知装置としてのゲートウェイ300が、その車両の識別のための車両識別情報をサーバ400に送信し、サーバ400からの応答に基づいて検出窓サイズ(異常検知のためにフレームの受信数をカウントするための単位時間)を決定する。これにより、車両毎に適切な検出窓サイズを用いて車載ネットワークの異常の検知を精度良く行うことが可能となり得る。また、異常検知システム10では、異常の判定(検知)に用いるモデル(所定モデル或いは基準モデル)の学習のために、ゲートウェイ300側で受信したフレームに係る特徴ベクトルを生成する加工処理を行うことで、サーバ400との間の通信量の削減が可能となる。また、加工処理では、主成分分析等による特徴ベクトルの次元の削減等も行い得るので、これにより更に通信量を削減することが可能となり、また、結果的にモデルに基づく異常の判定のための演算量を削減することが可能となり得る。また、サーバ400が、データ(車両から受信した特徴情報)の蓄積、特徴情報を反映したモデルの構築(基準モデルの更新等)を行うことで、車載のゲートウェイ300の限られたリソースにより制限を受けることなく、最適なモデルを構築し得る。また、サーバ400で構築(更新)した基準モデルをゲートウェイ300が取得して、異常の判定(検知)のために用いることで、車両において迅速に異常か否かの判定(つまり異常の検知)を行うことが可能となり得る。そして、ゲートウェイ300は、異常検知結果をサーバ400に通知するので、サーバ400では異常検知結果をログとして保存し、車両を管理することができ、また、その異常検知結果に基づいて、より適切な基準モデルを構築する等が可能となり得る。また、例えば、車両識別情報で車種を示すようにした場合においては、サーバ400は、同一車種の複数の車両から特徴情報を収集することでその車種に対応する基準モデルを、その車種で攻撃された状況と正常状態を区別可能に適切に構築することが可能となる。そして、サーバ400が、その同一車種の車両のゲートウェイ300に対して、基準モデルを示すモデル情報を送信することで、同一車種の各車両は、基準モデルと同様の所定モデルに基づいて適切に異常を検知し得る。なお、異常の検知により、異常に対する各種対処(警告の報知、安全のための走行制御その他の処理)が可能となり得る。
(実施の形態2)
以下、実施の形態1で示した異常検知システムにおける車両の車載ネットワークシステムを変形した実施態様について説明する。
実施の形態1では、車両のゲートウェイ300が、車両外部のサーバ400と通信することで検出窓サイズを決定し、車載ネットワークの異常の検知のために用いる所定モデルの基礎となる基準モデルを学習により更新するために、検出窓サイズ分の時間におけるID別のフレームの受信数に基づく特徴情報をサーバ400に送信した。これに対して、本実施の形態では、車両の車載ネットワークシステムにおける異常検知装置が独立して(つまり車両外部のサーバに依存せずに)、異常の検知に用いる検出窓サイズを決定する例について説明する。
[2.1 車載ネットワークシステムの構成]
図21は、本実施の形態に係る車両の車載ネットワークシステムの構成を示す。なお、実施の形態1(図1参照)と同様の構成については、図21において図1と同一の符号を付しており、説明を省略する。
図21に示す車両における車載ネットワークシステムは、ECU100a、ECU100b、ECU100c及びECU100dと、バス200a、200bと、ゲートウェイ1300(異常検知装置の一例)とを含んで構成される。各ECUは、CANプロトコルに従って車両内のバス200a、200bを介してフレームの授受を行い得る。
ゲートウェイ1300は、実施の形態1で示したゲートウェイ300を部分的に変形した異常検知装置であり、ここで特に示さない点についてはゲートウェイ300と同様である。
ゲートウェイ1300は、バス200a及びバス200bと接続され、一方のバスから受信したフレームを他方のバスに転送する機能を有し、バスから受信したフレームに基づいて異常か否かを判定すること(例えば攻撃フレームがバスに流れている異常状態であるか否かを判定すること)で異常を検知する機能を有する。また、ゲートウェイ1300は、異常検知(異常か否かの判定)等に用いるための検出窓サイズを決定する機能、検出窓サイズの時間長の期間である検出窓内に、車載ネットワークで受信されたフレームの数に係る特徴情報に基づいて、異常検知に用いるための所定モデルを更新する機能を有する。
[2.2 ゲートウェイ1300の構成]
図22は、ゲートウェイ1300の構成図である。ゲートウェイ1300は、フレーム送受信部310と、フレーム解釈部320と、受信ID判断部330と、受信IDリスト保持部340と、加工処理部1350と、車両識別情報保持部361と、異常検知処理部1370と、モデル保持部1371と、転送処理部380と、転送ルール保持部381と、フレーム生成部390と、検出窓サイズ決定部1440と、検出窓サイズ特定用テーブル保持部450と、学習部1430と、異常検知結果保持部1460とを含んで構成される。これらの各構成要素の各機能は、例えばゲートウェイ1300における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、図9に示したゲートウェイ300と同様の構成、或いは、図12に示したサーバ400と同様の構成については、図22において同一の符号を付しており、説明を省略する。
検出窓サイズ決定部1440は、検出窓サイズを決定する決定部として機能する。検出窓サイズ決定部1440は、車両識別情報保持部361が保持する車両識別情報に応じて、検出窓サイズ特定用テーブル保持部450が保持する検出窓サイズ特定用テーブル(図13参照)を用いて検出窓サイズを決定し、加工処理部1350へと通知する。
加工処理部1350は、実施の形態1で示した加工処理部350の一部を変形したものであり、検出窓サイズ決定部1440から通知された検出窓サイズを保持し、フレーム解釈部320から通知されるIDフィールドの値に基づいて、検出窓サイズの時間長の検出窓毎に、バス200a、200bから逐次受信されたフレームの集合(逐次通知されたIDフィールドの値の集合)を、検出窓におけるID(メッセージID)別のフレームの受信数(検出窓サイズの検出窓内でフレームの受信をID別にカウントして得られたカウント数)を示す特徴情報に変換して特徴情報を定期的に学習部1430へ通知する。つまり加工処理部1350は、特徴情報を特定する特定部として機能する。また、加工処理部1350は、バス200a、200bから検出窓サイズの検出窓内に逐次受信されたフレームの数に基づくその特徴情報を異常検知処理部1370へ逐次通知する。
モデル保持部1371は、所定モデル(車両の車載ネットワークのバスに現れるデータフレームの出現頻度に係る基準を表すモデル)を保持する。
学習部1430は、加工処理部1350から通知された特徴情報に基づいて、所定モデルを構築して、モデル保持部1371に保持させる。即ち、学習部1430は、モデル保持部1371が保持する所定モデルを、特徴情報に基づいて更新する。学習部1430による所定モデルの更新は、実施の形態1で示した学習部430による基準モデルの更新と同様の方法で行われ得る。学習部1430は、例えば、逐次通知される特徴情報に基づいて、例えば機械学習により、所定モデルを逐次更新し得る。
異常検知処理部1370は、フレーム解釈部320から通知されるIDフィールドの値に基づいて加工処理部1350で生成された特徴情報を受け取り、モデル保持部1371が保持している所定モデルと、その特徴情報とを用いた演算処理を行い、その演算処理の結果に応じて異常か否かを判定する。即ち、異常検知処理部1370は、バスから受信されたフレームの集合に係る特徴情報が、所定モデルが表す基準に適合しているか否かを、特徴情報及び所定モデルを用いた演算処理により判定する判定部として機能する。この判定では、特徴情報に反映された検出窓サイズでのID別のデータフレームの受信数が、所定モデルが表す基準(例えば正常状態におけるデータフレームの出現頻度を示す基準)に適合していると正常であり、基準に適合していない(つまり基準を逸脱している)と異常であると判定される。また、異常検知処理部370は、その演算処理による異常か否かの判定結果(つまり異常検知結果)を、異常検知結果保持部1460にログとして保存する。
[2.3 検出窓サイズ決定処理シーケンス]
図23は、ゲートウェイ1300における検出窓サイズ決定処理シーケンスの一例を示す。以下、同図に即して検出窓サイズ決定処理シーケンスについて説明する。この検出窓サイズ決定処理シーケンスが実行されるタイミングは、例えば、ゲートウェイ1300が車両に搭載された際(例えば車両の製造の際等)であるが、この他のタイミングであっても良いし、そのタイミングは複数であっても良い。この他のタイミングの例としては、車両を使用する際毎(例えば車両のエンジン始動の際、アクセサリ−オン(ACC−ON)の際等)、所定時間(例えば1日)毎等が挙げられる。なお、図16と同様のステップについては、図23において同一の符号を付しており、説明を適宜省略する。
ゲートウェイ1300は、車両識別情報を取得する(ステップS1301)。
次にゲートウェイ1300は、ステップS1301で取得した車両識別情報に応じて、検出窓サイズ特定用テーブル(図13参照)を用いて検出窓サイズを決定する(ステップS2303)。ゲートウェイ1300は、決定した検出窓サイズを保持し、加工処理部1350で加工処理を実行する際に検出窓サイズを用いる。なお、ゲートウェイ1300は、車両外部との通信機能を有していても良く、その場合に、検出窓サイズ特定用テーブルを通信により、車両外部から取得することとしても良いし、記録媒体等から検出窓サイズ特定用テーブルを読み出すことで取得することとしても良い。
[2.4 学習処理シーケンス]
図24は、ゲートウェイ1300における学習処理シーケンスの一例を示す。学習処理シーケンスでは、ゲートウェイ1300が、バス200a、200bから受信したフレームの集合に加工処理を加えてなる特徴情報に基づく学習により、モデル保持部1371が保持する所定モデルを更新する。以下、図24に即して学習処理シーケンスについて説明する。なお、図17と同様のステップについては、図24において同一の符号を付しており、説明を適宜省略する。
ゲートウェイ1300は、検出窓サイズの時間長の検出窓毎に、バス200a及びバス200bからフレームを受信すると(ステップS1401)、検出窓内におけるID別のフレームの受信数をカウントする(ステップS1402)。
加工処理部1350は、検出窓サイズ分の時間が経過(検出窓の終期が到来)したら、ID別のフレームの受信数(カウント数)に基づき加工処理により特徴情報を生成する(ステップS1404)。
ゲートウェイ1300は、加工処理部1350で生成した特徴情報を、学習部1430で、モデル保持部1371が保持する所定モデルに反映する(ステップS2407)。この学習処理シーケンスは、車載ネットワークにおいて正常状態で受信されたフレームに係る特徴情報を所定モデルに反映することで、所定モデルが、この車載ネットワークのバスに現れるフレームの出現頻度に係る基準となることを想定している。特徴情報の所定モデルへの反映は、例えば、特徴情報を用いた機械学習により所定モデルを更新することで行われるようにしても良い。なお、加工処理部1350は、実施の形態1で示した加工処理部350と同様に、検出窓において受信されたメッセージID毎のフレームの数を成分とする特徴ベクトルを特徴情報としても良く、加工処理において、主成分分析等を用いることで、特徴ベクトルの次元数を削減しても良い。また、学習部1430は、特徴情報を所定モデルに反映する際に、例えば、その所定モデルを用いた異常の検知を効率的に行えるようにするための加工等を施しても良い。一例としては、学習部1430は、特徴ベクトルの集合を、kd木等の最近傍距離の計算に適したデータ構造にすることをもって所定モデルへの反映を行う。
ステップS2407での処理に続いて、ゲートウェイ1300は、カウント数をクリアして(ステップS1406)、ステップS1401での処理に戻る。
[2.5 異常検知処理シーケンス]
図25は、ゲートウェイ1300における異常検知処理シーケンスの一例を示す。異常検知処理シーケンスは、例えば車両が使用される段階において実行される。異常検知処理シーケンスでは、ゲートウェイ1300が、車両の車載ネットワークのバス200a、200bを流れるフレームを監視して、所定モデルを用いて異常状態が生じているか否かを判定することで異常を検知する。なお、上述の学習処理シーケンスは、この異常検知処理シーケンスより前(例えば、車両の使用前、つまり製造或いは検査段階等)に行われ得るが、車両が使用される段階で異常検知処理シーケンスと並行して行われても良い。以下、図25に即して異常検知処理シーケンスについて説明する。なお、図20と同様のステップについては、図25において同一の符号を付しており、説明を適宜省略する。
ゲートウェイ1300では、フレームが受信されると(ステップS1601)、加工処理部1350で、検出窓サイズの検出窓内におけるID別のフレームの受信数をカウントし(ステップS1602)、加工処理によって例えば特徴ベクトルである特徴情報を生成する(ステップS1603)。1つの検出窓においてステップS1601〜ステップS1602での処理が繰り返し行われ、検出窓の終期においてステップS1603での特徴情報の生成が行われてID別のフレームの受信数をカウントするカウンタがクリアされる。
次にゲートウェイ1300は、異常検知処理部1370により、加工処理部1350で生成された特徴情報を受け取り、その特徴情報が、モデル保持部1371が保持している所定モデルが示す基準に適合しているか、その基準を逸脱しているかを判定する(ステップS1604)。
ゲートウェイ1300は、ステップS1604で、特徴情報が、所定モデルが示す基準を逸脱していない(基準に適合している)と判定した場合には、正常と判定し(ステップS1605)、一方、特徴情報が、所定モデルが示す基準を逸脱していると判定した場合には、異常と判定して(ステップS1606)、その判定結果をログとして保存する(ステップS2608)。なお、ゲートウェイ1300は、この判定結果を用いて機械学習(例えば教師有り学習)等により所定モデルを更新しても良い。
[2.6 実施の形態2の効果]
実施の形態2に係る異常検知装置(ゲートウェイ1300)は、サーバ等と通信しなくても、自ら自装置が搭載されている車両の識別のための車両識別情報を取得してその車両識別情報に応じて検出窓サイズ(異常検知のためにフレームの受信数をカウントするための単位時間)を決定し得る。これにより、ゲートウェイ1300は、自装置を搭載した車両に適切な検出窓サイズを用いて車載ネットワークの異常の検知を精度良く行うことが可能となり得る。また、ゲートウェイ1300は、車載ネットワークの監視に基づいて生成した特徴情報を反映した所定モデルの構築(所定モデルの更新等)を行い、所定モデルを用いて異常の判定(検知)を行うので、車両において迅速に異常か否かの判定(つまり異常の検知)を行うことが可能となり得る。また、ゲートウェイ1300は、異常か否かの判定結果をログとして保存でき、その判定結果を活用し得る。
(その他変形例)
以上のように、本発明に係る技術の例示として実施の形態1、2を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
(1)上記実施の形態では、決定された検出窓サイズの時間長の検出窓が重複なく連続する例を示したが(図18参照)、検出窓サイズ分の期間である各検出窓は、重複なく連続するものに限られない。図26に示すように、ゲートウェイ(異常検知装置)が、検出窓T1と一部重複する検出窓TA内においてもバスから受信されるフレームの数をID別にカウントすることで、ID別の受信数(カウント数)を成分とする特徴ベクトルを生成して特徴情報としても良い。この場合において、例えば、ゲートウェイは、検出窓TAの開始時点と基準となる開始時点(例えば先行する検出窓T1の開始時点)との差であるオフセット時間を示す情報を特徴情報に含ませてサーバに送信することとしても良い。また、例えば、検出窓サイズ(例えば10ms)分の各検出窓の開始時点を一定時間(例えば1ms)毎等と定めることとしても良い。また、バスから特定のIDのフレームを受信したタイミング等を検出窓の開始時点とすることとしても良い。
(2)上記の実施の形態では、データフレーム(メッセージ)の転送機能を有するゲートウェイ300、1300を、異常を検知する異常検知装置の一例として示したが、異常検知装置は、1つ以上のバスに接続された装置であれば良く、必ずしも転送機能を有する必要はない。異常検知装置は、異常を検知する機能以外の機能を併せ持つECUであっても良い。また、例えば、異常検知装置は、ゲートウェイ300、1300における1つ以上の構成要素を省略し得るし、その1つ以上の構成要素を他のECUに移動させても良い。
(3)上記実施の形態では、CANプロトコルにおけるデータフレーム(メッセージ)を標準IDフォーマット(図2参照)で記述しているが、拡張IDフォーマットであっても良く、メッセージIDは、拡張IDフォーマットでの拡張ID等であっても良い。また、上記実施の形態で示したCANプロトコルは、TTCAN(Time-Triggered CAN)、CANFD(CAN with Flexible Data Rate)等の派生的なプロトコルも包含する広義の意味のものとしても良い。
(4)上記実施の形態1では、ゲートウェイ300が外部通信部360を有する例を示したが、車載ネットワークに接続されたヘッドユニット或いは他のECU(車外と通信する機能を有する装置)を経由して通信するとしても良い。ヘッドユニットは、例えば、マルチメディア再生、カーナビゲーション等の機能のために、車両外部との通信機能を有しているECUである。また、車載ネットワークにおいて、OBD2(On-Board Diagnostics2)等の診断ポートに接続される診断ツール(故障診断ツール)等が、サーバ400との通信機能を有する場合において、ゲートウェイ300は、その診断ツールを経由してサーバ400と通信することとしても良い。
(5)上記実施の形態では、ゲートウェイ300、1300は、検出窓サイズの期間でのID別のフレームの受信数に基づく特徴情報が、所定モデルが示す基準から逸脱する場合に異常と判定しているが、例えば所定モデルの示す内容を逆にすることで、所定モデルに適合する場合(逸脱しない場合)を異常と判定し、逸脱する場合を正常と判定しても良い。また、実施の形態1では、異常検知結果が異常である場合のみ、ゲートウェイ300がサーバ400へ異常検知結果を送信してサーバ400で異常検知結果を保存することとしたが、正常な場合にも異常検知結果を保存するとしても良い。
(6)上記実施の形態では、ゲートウェイ300、1300が検出窓サイズ分の期間である検出窓内にバスから受信したデータフレームの数をID別にカウントすることでその受信数(カウント数)に基づいて特徴情報を生成する例を示した。しかし、特徴情報は、ID別にカウントしたカウント数の総数(受信した全てのIDのデータフレームの総数)に基づいて、特徴情報を生成するようにしても良い。なお、この場合においては、IDを問わずに受信したデータフレームの数をカウントすることとしても良く、また、基準モデル或いは所定モデルは、その特徴情報と対比し得るように同様の構成(つまりIDを区別せずにフレームの出現頻度の基準を示す構成)とする。
(7)上記実施の形態では、所定モデルが、ゲートウェイ300、1300で検出窓サイズの期間にバスから受信されたフレームの数に基づく特徴情報と対比可能な基準(特徴情報が適合すべき基準)を表す例を示した。この他に、所定モデルを、バスから受信されたフレームと対比可能な基準を表すように構成することとしても良い。この場合には、図20及び図25におけるステップS1602、S1603を省略し、ステップS1604において、バスから受信されたフレームが、所定モデルが示す基準に適合するか否(逸脱する)かを判定することとしても良い。また、上記実施の形態1では、ゲートウェイ300で加工処理を行うことで特徴情報を生成してサーバ400に送信することとしたが(例えばステップS1404、S1405a)、ゲートウェイ300では、バスから受信した各フレームについてのID及び受信時刻をサーバ400に送信するようにして、サーバ400で加工処理を行うこととしても良い。
(8)上記実施の形態で示した異常検知結果に係るログは、サーバ400及びゲートウェイ1300以外の装置(例えば車内のデータ保存専用の装置、ストレージの豊富なヘッドユニット等)に保存することとしても良い。ログの情報は、必要に応じて読み出して、車両の管理、或いは、異常の検知に用いるモデルの設計、構築等に活用し得る。
(9)上記実施の形態におけるゲートウェイその他のECUは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等のハードウェア構成要素を含んでいても良い。また、上記実施の形態で示した各装置は、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア(デジタル回路等)によりその機能を実現することとしても良い。
(10)上記実施の形態における各装置を構成する構成要素の一部又は全部は、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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
(11)上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしても良い。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしても良い。
(12)本発明の一態様としては、例えば図14〜図17、図19、図20、図23〜図25等に示す処理手順の全部又は一部を含む異常検知方法であるとしても良い。例えば、異常検知方法は、CANプロトコルに従って車両内のバスを介してメッセージの授受を行う複数のECUを備える車載ネットワークシステムにおける異常の検知のための異常検知方法であって、単位時間(例えば検出窓サイズ分の時間)の決定を行い、決定された単位時間内にバスから受信されたメッセージの数に基づく特徴情報と、メッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理を行い、演算処理の結果に応じて異常か否かを判定する。単位時間の決定は、例えば車両識別情報、車両に関連する者等の識別情報、その他の情報等に基づいて行い得る。メッセージは、メッセージの種類を示すメッセージIDを含み、異常検知方法は、例えば、車両の識別のための車両識別情報に基づいて単位時間の決定を行う決定ステップ(例えばステップS1305、S2303等)と、決定ステップで決定された単位時間(決定が複数回行われる場合においては例えば最新の単位時間)内にバスから受信されたメッセージID毎のメッセージの数を成分とする特徴ベクトルを特徴情報として特定する特定ステップ(例えばステップS1404等)と、特定ステップで特定された特徴情報と所定モデルとを用いて演算処理を行い、演算処理の結果に応じて異常か否かの判定を行う判定ステップ(例えばステップS1604等)とを含む。また、例えば、異常検知方法は更に、特定ステップで逐次特定された複数の特徴情報に基づいて所定モデルを逐次更新する更新ステップ(例えばステップS1503、S2407等)を含む。また、本発明の一態様としては、この異常検知方法に係る処理をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
(13)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。
本発明は、車載ネットワークに対する攻撃を検知するために利用可能である。
10 異常検知システム
40 ネットワーク
100a エンジンECU
100b ブレーキECU
100c ドア開閉センサECU
100d ウィンドウ開閉センサECU
101 エンジン
102 ブレーキ
103 ドア開閉センサ
104 ウィンドウ開閉センサ
110、310 フレーム送受信部
120、320 フレーム解釈部
130、330 受信ID判断部
140、340 受信IDリスト保持部
150 フレーム処理部
160 データ取得部
170、390 フレーム生成部
200a、200b バス
300、1300 ゲートウェイ(異常検知装置)
350、1350 加工処理部
360 外部通信部
361 車両識別情報保持部
370、1370 異常検知処理部
371、1371 モデル保持部
380 転送処理部
381 転送ルール保持部
400 サーバ
410 通信部
420 データ蓄積部
430、1430 学習部
440 検出窓サイズ特定部
450 検出窓サイズ特定用テーブル保持部
460、1460 異常検知結果保持部
1440 検出窓サイズ決定部

Claims (18)

  1. CAN(Controller Area Network)プロトコルに従って車両内のバスを介してメッセ
    ージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける異常の検知のための異常検知方法であって、
    前記車両のエンジン始動又はアクセサリ−オンの際または所定時間毎に、前記車両の識別のための車両識別情報に基づいて単位時間の決定を行い、
    前記決定された単位時間内に前記バスから受信されたメッセージの数に基づく特徴情報と、メッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理を行い、当該演算処理の結果に応じて異常か否かを判定する
    異常検知方法。
  2. 前記単位時間の決定は、
    前記車両のエンジン始動又はアクセサリ−オンの際または所定時間毎に、前記車両の識別のための車両識別情報を、サーバに送信し、前記サーバが前記車両識別情報に応じて特定した単位時間情報を前記サーバから受信し、前記単位時間の決定を行う
    請求項1記載の異常検知方法。
  3. 前記メッセージは、メッセージの種類を示すメッセージIDを含み、
    前記異常検知方法は、
    前記車両のエンジン始動又はアクセサリ−オンの際または所定時間毎に、前記車両の識別のための車両識別情報に基づいて単位時間の前記決定を行う決定ステップと、
    前記決定ステップで決定された単位時間内に前記バスから受信されたメッセージID毎のメッセージの数を成分とする特徴ベクトルを前記特徴情報として特定する特定ステップと、
    前記特定ステップで特定された前記特徴情報と前記所定モデルとを用いて前記演算処理を行い、当該演算処理の結果に応じて前記判定を行う判定ステップとを含む
    請求項1記載の異常検知方法。
  4. 前記車両識別情報は、前記車両の製造事業者を示す
    請求項3記載の異常検知方法。
  5. 前記車両識別情報は、前記車両の車種を示す
    請求項3記載の異常検知方法。
  6. 前記車両識別情報は、前記車両を他の車両と区別する情報である
    請求項3記載の異常検知方法。
  7. 前記決定ステップでは、前記車両識別情報により識別される車両の集合における各車両の車載ネットワークシステムで当該車両内のバスに正常状態で送信されるべき、互いに異なる複数種類のメッセージのうち、送信周期が最短の一種類のメッセージの当該送信周期を、単位時間とするように前記決定を行う
    請求項3〜6のいずれか一項に記載の異常検知方法。
  8. 前記判定ステップでは、前記車両識別情報に対応した前記所定モデルを用いて前記演算処理を行う
    請求項3〜7のいずれか一項に記載の異常検知方法。
  9. 前記特定ステップでは、前記決定ステップで決定された単位時間毎に、当該単位時間内で前記バスから受信されたメッセージの数に基づく前記特徴情報を、逐次特定し、
    前記判定ステップでは、前記特定ステップで逐次特定された各前記特徴情報について、当該特徴情報と前記所定モデルとを用いて前記演算処理を行い、
    前記異常検知方法は更に、前記特定ステップで逐次特定された複数の前記特徴情報に基づいて前記所定モデルを逐次更新する更新ステップを含む
    請求項〜8のいずれか一項に記載の異常検知方法。
  10. 前記決定ステップでは、前記車両の製造の際に規定された情報に基づいて、前記車両において単位時間の前記決定を行い、
    前記特定ステップでは、前記車両において前記特徴情報を特定する
    請求項〜9のいずれか一項に記載の異常検知方法。
  11. 前記決定ステップでは、前記車両のエンジン始動又はアクセサリ−オンの際に、前記車両において単位時間の前記決定を行い、
    前記特定ステップでは、前記車両において前記特徴情報を特定する
    請求項〜9のいずれか一項に記載の異常検知方法。
  12. 前記決定ステップでは、所定時間毎に単位時間の前記決定を行い、
    前記特定ステップでは、前記決定ステップで決定された最新の単位時間毎に、当該単位時間内で前記バスから受信されたメッセージの数に基づく前記特徴情報を、逐次特定し、
    前記判定ステップでは、前記特定ステップで逐次特定された各前記特徴情報について、当該特徴情報と前記所定モデルとを用いて前記演算処理を行う
    請求項〜9のいずれか一項に記載の異常検知方法。
  13. 前記メッセージは、メッセージの種類を示すメッセージIDを含み、
    前記特徴情報は、前記決定された単位時間内に前記バスから受信された、全てのメッセージIDのメッセージの総数を示す
    請求項1記載の異常検知方法。
  14. CAN(Controller Area Network)プロトコルに従って車両内のバスを介してメッセ
    ージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける異常の検知のための異常検知方法であって、
    単位時間の決定を行い、
    前記決定された単位時間内に前記バスから受信されたメッセージの数に基づく特徴情報と、メッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理を行い、当該演算処理の結果に応じて異常か否かを判定し、
    前記メッセージは、メッセージの種類を示すメッセージIDを含み、
    前記異常検知方法は、
    単位時間の前記決定を行う決定ステップと、
    前記決定ステップで決定された単位時間内に前記バスから受信されたメッセージID毎のメッセージの数を成分とする特徴ベクトルを前記特徴情報として特定する特定ステップと、
    前記特定ステップで特定された前記特徴情報と前記所定モデルとを用いて前記演算処理を行い、当該演算処理の結果に応じて前記判定を行う判定ステップとを含み、
    前記決定ステップでは、前記車両のエンジン始動又はアクセサリ−オンの際または所定時間毎に、前記車両の識別のための車両識別情報に基づいて単位時間の前記決定を行い、
    前記決定ステップでは、前記車両識別情報により識別される車両の集合における各車両の車載ネットワークシステムで当該車両内のバスに正常状態で送信されるべき、互いに異なる複数種類のメッセージのうち、送信周期が最短の一種類のメッセージの当該送信周期を、単位時間とするように前記決定を行う
    異常検知方法。
  15. CAN(Controller Area Network)プロトコルに従って車両内のバスを介してメッセ
    ージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける異常の検知のための異常検知方法であって、
    前記車両のエンジン始動又はアクセサリ−オンの際または所定時間毎に、前記車両の識別のための車両識別情報に基づいて単位時間の決定を行い、
    前記決定された単位時間内に前記バスから受信されたメッセージの数に基づく特徴情報と、メッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理を行い、当該演算処理の結果に応じて異常か否かを判定し、
    前記メッセージは、メッセージの種類を示すメッセージIDを含み、
    前記異常検知方法は、
    単位時間の前記決定を行う決定ステップと、
    前記決定ステップで決定された単位時間内に前記バスから受信されたメッセージID毎のメッセージの数を成分とする特徴ベクトルを前記特徴情報として特定する特定ステップと、
    前記特定ステップで特定された前記特徴情報と前記所定モデルとを用いて前記演算処理を行い、当該演算処理の結果に応じて前記判定を行う判定ステップとを含み、
    前記特定ステップでは、前記決定ステップで決定された単位時間毎に、当該単位時間内で前記バスから受信されたメッセージの数に基づく前記特徴情報を、逐次特定し、
    前記判定ステップでは、前記特定ステップで逐次特定された各前記特徴情報について、当該特徴情報と前記所定モデルとを用いて前記演算処理を行い、
    前記異常検知方法は更に、前記特定ステップで逐次特定された複数の前記特徴情報に基づいて前記所定モデルを逐次更新する更新ステップを含む
    異常検知方法。
  16. CAN(Controller Area Network)プロトコルに従って車両内のバスを介してメッセ
    ージの授受を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて、前記バスに接続されて異常を検知する異常検知装置であって、
    前記バスからメッセージを受信する受信部と、
    前記車両のエンジン始動又はアクセサリ−オンの際または所定時間毎に前記車両の識別のための車両識別情報に基づいて単位時間を決定する決定部と、
    前記決定部により決定された単位時間内に前記受信部により受信されたメッセージの数に基づく特徴情報を特定する特定部と、
    前記特定部で特定された前記特徴情報とメッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理の結果に応じて、異常か否かを判定する判定部とを備える
    異常検知装置。
  17. 一の車両とサーバとを備える異常検知システムであって、
    前記一の車両は、CAN(Controller Area Network)プロトコルに従って前記一の車
    両内のバスを介してメッセージの授受を行う複数の電子制御ユニットと当該バスに接続された異常検知装置とを備える車載ネットワークシステムを有し、
    前記異常検知装置は、
    前記バスからメッセージを受信する受信部と、
    前記車両のエンジン始動又はアクセサリ−オンの際または所定時間毎に前記一の車両の識別のための車両識別情報を前記サーバに送信し、前記サーバからの応答に基づいて単位時間を決定する決定部と、
    前記決定部により決定された単位時間内に前記受信部により受信されたメッセージの数に基づく特徴情報を特定する特定部と、
    前記特定部で特定された前記特徴情報とメッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理の結果に応じて、異常か否かを判定する判定部とを備え、
    前記サーバは、前記一の車両から前記車両識別情報を受信し、当該車両識別情報に基づいて特定した単位時間を示す情報を、前記一の車両に送信する通信部を備える
    異常検知システム。
  18. 一の車両とサーバとを備える異常検知システムであって、
    前記一の車両は、CAN(Controller Area Network)プロトコルに従って前記一の車
    両内のバスを介してメッセージの授受を行う複数の電子制御ユニットと当該バスに接続された異常検知装置とを備える車載ネットワークシステムを有し、
    前記異常検知装置は、
    前記バスからメッセージを受信する受信部と、
    前記一の車両の識別のための車両識別情報を前記サーバに送信し、前記サーバからの応答に基づいて単位時間を決定する決定部と、
    前記決定部により決定された単位時間内に前記受信部により受信されたメッセージの数に基づく特徴情報を特定する特定部と、
    前記特定部で特定された前記特徴情報とメッセージの出現頻度に係る基準を表す所定モデルとを用いた演算処理の結果に応じて、異常か否かを判定する判定部とを備え、
    前記サーバは、前記一の車両から前記車両識別情報を受信し、当該車両識別情報に基づいて特定した単位時間を示す情報を、前記一の車両に送信する通信部を備え、
    前記サーバは、更に、前記一の車両から受信した前記車両識別情報に基づいて特定した単位時間内に、当該車両識別情報により識別される車両の集合における1つ以上の車両の車載ネットワークシステムで当該車両内のバスから受信されたメッセージの数に基づく所定情報を取得し、当該所定情報に基づいて、メッセージの出現頻度に係る基準を表す基準モデルを更新する学習部を備え、
    前記通信部は、前記学習部により更新した前記基準モデルを示す情報を前記一の車両に送信し、
    前記異常検知装置は、前記サーバから受信した前記基準モデルを示す情報に基づいて、前記所定モデルを更新し、
    前記判定部は、前記特徴情報と、前記更新された前記所定モデルとを用いた演算処理を行い、当該演算処理の結果に応じて、異常か否かの前記判定を行う
    異常検知システム。
JP2016212574A 2016-01-08 2016-10-31 異常検知方法、異常検知装置及び異常検知システム Active JP6839963B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
EP16883746.6A EP3402128B1 (en) 2016-01-08 2016-12-14 Abnormality detection method, abnormality detection device, and abnormality detection system
PCT/JP2016/087134 WO2017119246A1 (ja) 2016-01-08 2016-12-14 異常検知方法、異常検知装置及び異常検知システム
CN201680051251.XA CN108028790B (zh) 2016-01-08 2016-12-14 异常检测方法、异常检测装置及异常检测系统
EP20168399.2A EP3697031B1 (en) 2016-01-08 2016-12-14 Abnormality detection method, abnormality detection device, and abnormality detection system in a vehicle network
CN202110213461.7A CN113014464B (zh) 2016-01-08 2016-12-14 异常检测方法、异常检测装置及异常检测系统
US16/026,040 US10986008B2 (en) 2016-01-08 2018-07-02 Abnormality detection in an on-board network system
US17/201,839 US11296965B2 (en) 2016-01-08 2021-03-15 Abnormality detection in an on-board network system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016003035 2016-01-08
JP2016003035 2016-01-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021022678A Division JP7013603B2 (ja) 2016-01-08 2021-02-16 異常検知方法、異常検知装置及び異常検知システム

Publications (2)

Publication Number Publication Date
JP2017126978A JP2017126978A (ja) 2017-07-20
JP6839963B2 true JP6839963B2 (ja) 2021-03-10

Family

ID=59364469

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016212574A Active JP6839963B2 (ja) 2016-01-08 2016-10-31 異常検知方法、異常検知装置及び異常検知システム
JP2021022678A Active JP7013603B2 (ja) 2016-01-08 2021-02-16 異常検知方法、異常検知装置及び異常検知システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021022678A Active JP7013603B2 (ja) 2016-01-08 2021-02-16 異常検知方法、異常検知装置及び異常検知システム

Country Status (4)

Country Link
US (1) US10986008B2 (ja)
EP (2) EP3697031B1 (ja)
JP (2) JP6839963B2 (ja)
CN (1) CN108028790B (ja)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10630699B2 (en) * 2017-08-14 2020-04-21 Argus Cyber Security Ltd. Automotive cybersecurity
DE102017217195A1 (de) * 2017-09-27 2019-03-28 Continental Teves Ag & Co. Ohg Verfahren zum Erfassen eines Angriffs auf ein Steuergerät eines Fahrzeugs
DE102017218134B3 (de) * 2017-10-11 2019-02-14 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum Übertragen einer Botschaftsfolge über einen Datenbus sowie Verfahren und Vorrichtung zum Erkennen eines Angriffs auf eine so übertragene Botschaftsfolge
CN110226310B (zh) * 2017-12-01 2022-07-19 松下电器(美国)知识产权公司 电子控制装置、不正当检测服务器、车载网络系统、车载网络监视系统以及方法
JP7006295B2 (ja) * 2018-01-19 2022-01-24 富士通株式会社 攻撃検知装置および攻撃検知方法
US11012409B2 (en) * 2018-03-30 2021-05-18 Intel Corporation Anomaly detection in a controller area network
US11110895B2 (en) * 2018-04-09 2021-09-07 Cisco Technology, Inc. Vehicle network intrusion detection system (IDS) using vehicle state predictions
JP7121737B2 (ja) 2018-05-23 2022-08-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置、異常検知方法およびプログラム
CN111373701B (zh) * 2018-05-23 2022-05-17 松下电器(美国)知识产权公司 异常检测装置、异常检测系统以及控制方法
JP7378089B2 (ja) 2018-06-13 2023-11-13 パナソニックIpマネジメント株式会社 不正通信検知装置、不正通信検知方法及び製造システム
DE102018209407A1 (de) * 2018-06-13 2019-12-19 Robert Bosch Gmbh Verfahren und Vorrichtung zur Behandlung einer Anomalie in einem Kommunikationsnetzwerk
JP6555559B1 (ja) * 2018-06-15 2019-08-07 パナソニックIpマネジメント株式会社 電子制御装置、監視方法、プログラム及びゲートウェイ装置
CN108958217A (zh) * 2018-06-20 2018-12-07 长春工业大学 一种基于深度学习的can总线报文异常检测方法
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
CN108923904A (zh) * 2018-06-29 2018-11-30 百度在线网络技术(北京)有限公司 汽车指令处理方法、装置、设备、云平台及存储介质
JP7000271B2 (ja) * 2018-07-25 2022-01-19 株式会社日立製作所 車両不正アクセス対策装置、及び車両不正アクセス対策方法
US11711384B2 (en) * 2018-08-27 2023-07-25 Lear Corporation Method and system for detecting message injection anomalies
US11038911B2 (en) * 2018-10-19 2021-06-15 Blackberry Limited Method and system for determining risk in automotive ECU components
WO2020105234A1 (ja) * 2018-11-21 2020-05-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知方法、及び異常検知装置
CN112912282A (zh) * 2018-11-27 2021-06-04 住友电气工业株式会社 车辆故障预测系统、监视装置、车辆故障预测方法及车辆故障预测程序
JP7269955B2 (ja) * 2018-11-30 2023-05-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車両ログ送信装置、車両ログ解析サーバおよび車両ログ解析システム
JP7312769B2 (ja) * 2018-12-28 2023-07-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 統計情報生成装置、統計情報生成方法、および、プログラム
WO2020160761A1 (de) * 2019-02-06 2020-08-13 Lisa Dräxlmaier GmbH Verfahren und prüfvorrichtung
CN117118776A (zh) * 2019-02-08 2023-11-24 松下电器(美国)知识产权公司 异常判定方法、异常判定装置以及程序
WO2020179021A1 (ja) * 2019-03-06 2020-09-10 三菱電機株式会社 攻撃検知装置および攻撃検知プログラム
JP7176456B2 (ja) * 2019-03-29 2022-11-22 株式会社デンソー メッセージ監視システム、メッセージ送信電子制御装置、および監視用電子制御装置
WO2020202850A1 (ja) * 2019-04-01 2020-10-08 株式会社デンソー 情報処理装置
JP7234832B2 (ja) * 2019-07-03 2023-03-08 株式会社デンソー 電子制御装置
JP7316129B2 (ja) * 2019-07-16 2023-07-27 株式会社ベリサーブ 処理システム、及び処理プログラム
JP7234839B2 (ja) 2019-07-17 2023-03-08 株式会社デンソー ゲートウェイ装置、異常監視方法、及び異常監視プログラム
JP7284673B2 (ja) * 2019-09-17 2023-05-31 株式会社日立ソリューションズ 変換装置、変換方法、および変換プログラム
JP7065356B2 (ja) 2019-11-11 2022-05-12 パナソニックIpマネジメント株式会社 情報処理装置、情報処理方法、およびプログラム
CN110912908B (zh) * 2019-11-28 2022-08-02 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 网络协议异常检测方法、装置、计算机设备和存储介质
JPWO2021106446A1 (ja) * 2019-11-28 2021-06-03
US11363059B2 (en) * 2019-12-13 2022-06-14 Microsoft Technology Licensing, Llc Detection of brute force attacks
DE112020006470T5 (de) * 2020-01-09 2022-10-27 Sumitomo Electric Industries, Ltd. Detektionsvorrichtung, Fahrzeugsystem und Detektionsverfahren
WO2021144858A1 (ja) * 2020-01-14 2021-07-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知システム、異常検知装置、及び異常検知方法
CN111581037B (zh) * 2020-04-22 2024-03-29 长城汽车股份有限公司 车辆联网检测系统、方法
EP3979590A4 (en) * 2020-04-29 2022-07-27 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR IDENTIFYING ABNORMAL MESSAGES
CN111708661A (zh) * 2020-05-14 2020-09-25 东风汽车集团有限公司 一种适用于中央网关的压力测试系统及方法
CN114205261B (zh) * 2020-08-27 2024-02-20 中车株洲电力机车研究所有限公司 网络通信数据正确性的自动化测试方法及存储介质
CN112866327B (zh) * 2020-11-03 2023-08-11 联合汽车电子有限公司 车辆数据的传输方法、装置、设备、系统和存储介质
CN112565341A (zh) * 2020-11-13 2021-03-26 华人运通(江苏)技术有限公司 诊断路由的方法、装置、系统、设备和存储介质
CN112637013B (zh) * 2020-12-21 2022-11-04 苏州三六零智能安全科技有限公司 Can总线报文异常检测方法及装置、设备、存储介质
CN112668523A (zh) * 2020-12-31 2021-04-16 深圳云天励飞技术股份有限公司 车辆行驶异常检测方法、装置、电子设备及存储介质
JP2022135190A (ja) * 2021-03-04 2022-09-15 トヨタ自動車株式会社 情報処理装置、情報処理方法、およびプログラム
CN113103973A (zh) * 2021-04-06 2021-07-13 深圳元戎启行科技有限公司 无人驾驶车辆的检测方法、装置、介质及无人驾驶车辆
CN115242575B (zh) * 2021-04-22 2023-10-03 广州汽车集团股份有限公司 基于canfd网络的报文处理方法、装置、设备及存储介质
CN113204226B (zh) * 2021-04-25 2022-12-09 重庆长安汽车股份有限公司 整车诊断系统及方法
CN113347022B (zh) * 2021-05-13 2022-11-11 中国航空工业集团公司西安航空计算技术研究所 一种民用飞机机载信息系统网络安保能力检测系统及方法
CN113259200B (zh) * 2021-05-18 2022-06-17 东风汽车集团股份有限公司 车载以太网交换机硬件测试方法、装置、设备及存储介质
CN113625681B (zh) * 2021-07-19 2022-12-13 湖南大学 Can总线异常检测方法、系统及存储介质
CN113904955B (zh) * 2021-09-29 2023-04-07 东风汽车有限公司东风日产乘用车公司 数据传输链路的检测方法、装置及系统
CN114513475B (zh) * 2022-02-15 2024-03-19 一汽解放汽车有限公司 报文交互方法、装置、控制器、存储介质和程序产品
CN115412370B (zh) * 2022-10-31 2023-03-21 广汽埃安新能源汽车股份有限公司 车辆通信数据检测方法、装置、电子设备和可读介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006287739A (ja) * 2005-04-01 2006-10-19 Fujitsu Ten Ltd ゲートウェイ装置
JP2007235313A (ja) * 2006-02-28 2007-09-13 Nissan Motor Co Ltd 計測装置および該計測装置の計測方法
JP2009035237A (ja) * 2007-08-03 2009-02-19 Mitsubishi Fuso Truck & Bus Corp 故障診断装置及び故障診断方法
JP5222002B2 (ja) * 2008-04-03 2013-06-26 株式会社オートネットワーク技術研究所 車載用の中継接続ユニット
CN103999410B (zh) * 2011-12-22 2017-04-12 丰田自动车株式会社 通信系统及通信方法
CN103259686B (zh) * 2013-05-31 2016-04-27 浙江大学 基于离散错误事件的can总线网络故障诊断方法
JP2015026252A (ja) 2013-07-26 2015-02-05 株式会社豊田中央研究所 異常検知装置及びプログラム
JP6361175B2 (ja) 2014-03-06 2018-07-25 株式会社豊田中央研究所 異常診断装置及びプログラム
US8955130B1 (en) * 2014-04-10 2015-02-10 Zephyr Technology Co., Limited Method for protecting vehicle data transmission system from intrusions
CN106170953B (zh) * 2014-04-17 2019-10-18 松下电器(美国)知识产权公司 车载网络系统、网关装置以及不正常检测方法
US10798114B2 (en) * 2015-06-29 2020-10-06 Argus Cyber Security Ltd. System and method for consistency based anomaly detection in an in-vehicle communication network

Also Published As

Publication number Publication date
US10986008B2 (en) 2021-04-20
EP3697031A1 (en) 2020-08-19
EP3402128A4 (en) 2019-01-09
CN108028790B (zh) 2021-02-26
EP3402128B1 (en) 2020-05-27
JP2021073829A (ja) 2021-05-13
CN108028790A (zh) 2018-05-11
JP7013603B2 (ja) 2022-01-31
EP3402128A1 (en) 2018-11-14
EP3697031B1 (en) 2023-11-15
US20180316584A1 (en) 2018-11-01
JP2017126978A (ja) 2017-07-20

Similar Documents

Publication Publication Date Title
JP7013603B2 (ja) 異常検知方法、異常検知装置及び異常検知システム
WO2017119246A1 (ja) 異常検知方法、異常検知装置及び異常検知システム
US11570184B2 (en) In-vehicle network system, fraud-detection electronic control unit, and fraud-detection method
JP6539363B2 (ja) 不正通信検知方法、不正通信検知システム及びプログラム
JP7053449B2 (ja) 不正通信検知基準決定方法、不正通信検知基準決定システム及びプログラム
CN106105105B (zh) 网络通信系统、不正常检测电子控制单元以及不正常应对方法
JP6152228B2 (ja) 電子制御ユニット、車載ネットワークシステム及び車両用通信方法
US20170013005A1 (en) System and method for consistency based anomaly detection in an in-vehicle communication network
US20170109521A1 (en) Vehicle network system whose security is improved using message authentication code
CN110546921B (zh) 不正当检测方法、不正当检测装置以及程序
JP2018026791A (ja) フレーム伝送阻止装置、フレーム伝送阻止方法及び車載ネットワークシステム
CN109076016B (zh) 非法通信检测基准决定方法、决定系统以及记录介质
WO2018186053A1 (ja) 不正通信検知方法、不正通信検知システム及びプログラム
JPWO2019187350A1 (ja) 不正検知方法、不正検知装置及びプログラム
US20220311781A1 (en) Selection method, selection system, and recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200929

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: 20210126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210216

R150 Certificate of patent or registration of utility model

Ref document number: 6839963

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150