JP6566400B2 - 電子制御装置、ゲートウェイ装置、及び検知プログラム - Google Patents

電子制御装置、ゲートウェイ装置、及び検知プログラム Download PDF

Info

Publication number
JP6566400B2
JP6566400B2 JP2016125991A JP2016125991A JP6566400B2 JP 6566400 B2 JP6566400 B2 JP 6566400B2 JP 2016125991 A JP2016125991 A JP 2016125991A JP 2016125991 A JP2016125991 A JP 2016125991A JP 6566400 B2 JP6566400 B2 JP 6566400B2
Authority
JP
Japan
Prior art keywords
message
value
range
frame
reference range
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
JP2016125991A
Other languages
English (en)
Other versions
JP2017112590A5 (ja
JP2017112590A (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 Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
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 Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to PCT/JP2016/005094 priority Critical patent/WO2017104122A1/ja
Priority to EP16875111.3A priority patent/EP3361677B1/en
Priority to US15/770,182 priority patent/US10713106B2/en
Publication of JP2017112590A publication Critical patent/JP2017112590A/ja
Publication of JP2017112590A5 publication Critical patent/JP2017112590A5/ja
Application granted granted Critical
Publication of JP6566400B2 publication Critical patent/JP6566400B2/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
    • 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
    • H04L12/40006Architecture of a communication node
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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
    • H04L12/40006Architecture of a communication node
    • H04L12/40026Details regarding a bus guardian
    • 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
    • H04L12/40006Architecture of a communication node
    • H04L12/40032Details regarding a bus interface enhancer
    • 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
    • H04L12/40169Flexible bus arrangements
    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0681Configuration of triggering conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • 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
    • 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/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、バスで接続された通信システムにおける電子制御装置、ゲートウェイ装置、及び検知プログラムに関する。
車載ネットワークとしてCAN(Controller Area Network)が普及している。車載用途では機器の誤動作の防止がより強く求められる。従ってCANに接続された機器を、CANを介した不正な攻撃から十分に防御する必要がある。例えば、CAN上のメッセージの周期性をチェックすることで、不正メッセージを検知する方法がある(例えば、特許文献1参照)。当該検知方法において、正規メッセージの若干の送信タイミングのずれまたは若干の伝送遅延により、正規メッセージを不正メッセージとして誤検知することを防止する必要がある。そこで、判定用のパラメータにマージンを持たせることが考えられる。
国際公開第2014/115455号
上述のように、不正メッセージを検知するための判定用のパラメータにマージンを持たせると、正規メッセージと近い周期、頻度、またはデータを持つ不正メッセージを正規メッセージとして見逃す可能性が増大する。車載ネットワークにおけるメッセージの不正検知において、正規メッセージを不正メッセージと判定する誤検知と、不正メッセージを正規メッセージと判定する検知漏れの両方を低減する必要がある。
本発明はこうした状況に鑑みなされたものであり、その目的は、車載ネットワークにおけるメッセージの不正検知において、誤検知と検知漏れをバランス良く低減する技術を提供することにある。
上記課題を解決するために、本発明のある態様の通信装置は、ネットワークにおけるメッセージを送受信する通信部と、前記通信部において受信されたメッセージから複数の監視項目の値を検出し、前記複数の監視項目の各検出値が各基準範囲に収まっているか否かを判定して、不正メッセージを検知する第1不正検知部と、を備え、前記複数の監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲とが設定され、前記第1不正検知部は、前記各検出値のいずれかが前記第1基準範囲外の値であるとき、前記メッセージを不正メッセージと判定し、前記各検出値のいずれかが前記第1基準範囲内でかつ前記第2基準範囲外の値であるとき、所定の規則を満たす場合に前記メッセージを不正メッセージと判定する。
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、車載ネットワークにおけるメッセージの不正検知において、誤検知と検知漏れをバランス良く低減することができる。
本発明の実施の形態に係る、車両内に構築される車載ネットワークシステムの構成を示す図である。 CANプロトコルで規定されるデータフレームのフォーマットを示す図である。 ゲートウェイ装置の構成を示す図である。 図4(a)はゲートウェイ装置が受信するメッセージIDリストの一例を示す図、図4(b)はゲートウェイ装置が保有する転送ルールの一例を示す図である。 ゲートウェイ装置のフレーム転送処理を示すフローチャートである。 不正検知パラメータ記憶部に保持される不正検知パラメータテーブルの一例を示す図である。 第1基準パラメータ範囲と第2基準パラメータ範囲の関係を模式的に描いた図である。 ゲートウェイ装置の不正検知処理を示すフローチャートである。 図8のステップS12に係る不正検知処理のサブルーチンを示すフローチャートである。 図8のステップS15に係る不正検知処理のサブルーチンを示すフローチャートである。 図8のステップS15に係る不正検知処理のサブルーチンの変形例を示すフローチャートである。 ゲートウェイ装置の不正検知処理の変形例を示すフローチャートである。 不正検知部を搭載したECUの構成を示す図である。
本発明の実施の形態は車載ネットワークシステムに関する。近年、車両内に多数の電子制御ユニット(ECU:Electronic Control Unit)が搭載されるようになってきている。車載ネットワークシステムは、これら多数のECUを接続し、相互通信する。車載ネットワークに関する多数の規格が存在するが、代表的な車載ネットワーク規格の一つに、ISO11898−1で規定されたCANがある。
CANでは、通信路は2本のバスで構成され、バスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。またCANでは、送信先または送信元を指す識別子は存在せず、送信ノードはフレーム毎にメッセージIDと呼ばれるIDを付加して送信する(つまりバスに信号を送出する)。各受信ノードはバスに送信されたフレームを受信し(つまりバスから信号を読み取り)、フレームに付加されたIDに基づいて必要なフレームに対してのみ処理を行う。
上述の通り、車両内には多数のECUが配置され、それぞれがバスによって接続される。各ECUはCANを介して、様々なメッセージを互いにやりとりしながら動作している。ここで、外部と通信機能を持つECUが外部から攻撃され、CANに対して攻撃メッセージを送信できるようになった場合、他のECUになりすまして不正メッセージを送信することができる。また、あるECU内のファームウェア内に、不正プログラムが忍び込まれている場合も、そのECUはCANに対して攻撃メッセージを送信することができる。また、診断用ポートであるOBD−IIポートまたは車両内のCANに不正な機器を接続された場合も、CANに対して攻撃メッセージが送信されることがある。このような攻撃によって車両が不正に制御されてしまうため、これらの攻撃に対する防御が重要となる。
図1は、本発明の実施の形態に係る、車両1内に構築される車載ネットワークシステム5の構成を示す図である。車載ネットワークシステム5は、各種の機器または補機に接続された複数のECU10、ゲートウェイ装置30を備え、それらはバス20で接続されている。
図1に示す例では、第1ECU10aはエンジン41に、第2ECU10bはブレーキ42に、第3ECU10cはドア開閉センサ43に、第4ECU10dはウインドウ開閉センサ44にそれぞれ接続されている。第1ECU10a−第4ECU10dは、それぞれの状態を示すデータを取得し、当該データを含むフレームを定期的にバス20上に送信している。
第1ECU10a及び第2ECU10bは第1バス20aに接続され、第3ECU10c及び第4ECU10dは第2バス20bに接続されている。第1バス20a及び第2バス20bによって、それぞれサブネットワークシステムが構成されている。ゲートウェイ装置30は、第1バス20aによって構成された第1サブネットワークシステムと、第2バス20bによって構成された第2サブネットワークシステムとを中継する。ゲートウェイ装置30は、一方のサブネットワークシステムのバス20から受信したフレームを、他方のサブネットワークシステムのバス20に転送する機能を持つ。以下では、車載ネットワークシステム5として、CANプロトコルに従ったネットワークシステムを用いる例を示す。
図2は、CANプロトコルで規定されるデータフレームのフォーマットを示す図である。図2には、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のドミナント(dominant)で構成される。バスがアイドルの状態ではレセシブ(recessive)になっており、SOFによりドミナントへ変更することでフレームの送信開始を通知する。
IDフィールドは、11bitで構成される、データの種類を示す値であるID(メッセージID)を格納するフィールドである。複数のノードが同時に送信を開始した場合、このIDフィールドで通信調停を行うために、IDが小さい値を持つフレームが高い優先度となるよう設計されている。
RTRは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント1bitで構成される。
IDEと予約ビット「r」は、両方ドミナント1bitで構成される。DLCは、4bitで構成され、データフィールドの長さを示す値である。なお、IDE、予約ビット「r」及びDLCを合わせてコントロールフィールドと称する。
データフィールドは、最大64bitで構成される送信データを示す値である。データフィールドは、8bit毎に長さを調整することができる。送信データの仕様については、CANプロトコルで規定されておらず、車載ネットワークシステム5において定められる。従って、送信データの仕様は、車種、製造者(製造メーカ)等に依存する。
CRCシーケンスは、15bitで構成され、SOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。CRCデリミタは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。なお、CRCシーケンス及びCRCデリミタを合わせてCRCフィールドと称する。
ACKスロットは、1bitで構成される。送信ノードはACKスロットをレセシブにして送信を行う。受信ノードはCRCシーケンスまで正常に受信ができたとき、ACKスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にACKスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが正常に受信したことを確認できる。
ACKデリミタは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。EOFは、7bitのレセシブで構成されており、データフレームの終了を示す。
図3は、ゲートウェイ装置30の構成を示す図である。ゲートウェイ装置30は、処理部31、記憶部32、通信制御部33及びフレーム送受信部34を備える。処理部31は、フレーム処理部311及び不正検知部312を含む。記憶部32は、受信IDリスト記憶部321、転送ルール記憶部322及び不正検知パラメータ記憶部323を含む。
処理部31は、ハードウェア資源とソフトウェア資源の協働、またはハードウェア資源のみにより実現できる。ハードウェア資源としてマイクロコンピュータ、DSP、FPGA、その他のLSIが利用できる。ソフトウェア資源としてオペレーティングシステム、アプリケーション、ファームウェア等のプログラムが利用できる。記憶部32には揮発性メモリ及び不揮発性メモリが利用できる。通信制御部33には、専用のハードウェアであるCANコントローラが利用できる。なお、通信制御部33の機能を処理部31に統合する構成も可能である。フレーム送受信部34には、専用のハードウェアであるCANトランシーバが利用できる。
フレーム送受信部34は、第1バス20a及び第2バス20bのそれぞれに、CANプロトコルに従ったフレームを送受信する。フレーム送受信部34は、バス20からフレームを1bitずつ受信して、通信制御部33にフレームを転送する。また、フレーム送受信部34は、通信制御部33から取得したバス情報に応じて、フレームをバス20に1bitずつ送信する。
通信制御部33は、フレーム送受信部34から取得したフレームを解釈し、フレームを構成する各値を、CANプロトコルにおける各フィールドにマッピングする。通信制御部33は、マッピングされたフレームの値をフレーム処理部311に転送する。
フレーム処理部311は、通信制御部33から取得したIDフィールドの値(メッセージID)を取得し、受信IDリスト記憶部321に保持されているメッセージIDのリストを参照して、当該フレームを受信するか否かを判定する。IDフィールドの値が当該リストに含まれている場合は受信すると判定し、含まれていない場合は受信しないと判定する。受信すると判定した場合、フレーム処理部311はIDフィールド以降のフィールドの値を不正検知部312に転送する。
また通信制御部33は、フレーム送受信部34から取得したフレームがCANプロトコルに則していないと判断した場合、エラーフレームを生成し、フレーム送受信部34にエラーフレームを転送する。フレーム送受信部34は、通信制御部33から取得したエラーフレームをバス20に送出する。
フレーム処理部311は、通信制御部33から取得したIDフィールド以降のフィールドの値(メッセージ)を不正検知部312に転送し、取得したメッセージが攻撃メッセージであるか否かの判定を不正検知部312に依頼する。
またフレーム処理部311は、転送ルール記憶部322に保持される転送ルールと通信制御部33から取得したメッセージIDとに従い、当該フレームを転送するバスを決定する。フレーム処理部311は、決定された転送するバスの情報(バス情報)と当該メッセージIDとデータを通信制御部33に通知する。
通信制御部33は、フレーム処理部311から取得したメッセージIDとデータをもとにフレームを生成し、バス情報と生成されたフレームをフレーム送受信部34に転送する。フレーム送受信部34は、通信制御部33から取得したフレームを、バス情報に規定されたバス20に送出する。
不正検知部312は、基準値比較部312a及びレンジ判定部312bを含み、受信したメッセージが不正なメッセージであるか否かを判定する。不正検知部312の詳細は後述する。
受信IDリスト記憶部321は、ゲートウェイ装置30が受信するメッセージIDのリストを保持する。転送ルール記憶部322は、転送するルールをバス毎に保持する。不正検知パラメータ記憶部323は、不正検知部312における不正検知処理で使用されるパラメータを保持する。
図4(a)は、ゲートウェイ装置30が受信するメッセージIDリストの一例を示す図である。図4(a)に示すメッセージIDリストテーブル321aは、メッセージIDが「1」、「2」、「3」、「4」のフレームをゲートウェイ装置30が受信する設定を含む。
図4(b)は、ゲートウェイ装置30が保有する転送ルールの一例を示す図である。図4(b)に示す転送ルールテーブル322aは、第1バス20aから受信するフレームはメッセージIDに関わらず、第2バス20bに転送する設定(IDは*で示される)を含む。また、第2バス20bから受信するフレームのうち、メッセージIDが「3」のフレームのみを第1バス20aに転送する設定(IDは3で示される)を含む。
図5は、ゲートウェイ装置30におけるフレーム転送処理を示すフローチャートである。図5では、ゲートウェイ装置30が、第1バス20aから受信したフレームを第2バス20bに転送する処理を説明する。なお、第2バス20bから受信したフレームを第1バス20aに転送する処理も同様であるため、説明を省略する。
まず、フレーム送受信部34は、第1バス20aからフレームを受信する(S1)。フレーム送受信部34は、受信したフレームのIDフィールドの値(メッセージID)を通信制御部33へ転送する。通信制御部33は、フレーム処理部311と連携して、受信したフレームのメッセージIDに基づいて、受信処理する必要があるフレームであるか否かを判定する(S2)。
受信処理する必要があるフレームであると判定された場合(S2のY)、通信制御部33は、フレーム処理部311にフレーム内の各フィールドの値を転送する。フレーム処理部311は、転送ルール記憶部322に保持される転送ルールに従って、当該フレームの転送先のバスを決定する(S3)。
フレーム処理部311は、フレーム内の各フィールドの値を不正検知部312に通知し、攻撃メッセージ(不正メッセージ)であるか否かの判定を依頼する。不正検知部312は、取得した各フィールドの値から、当該フレームが攻撃メッセージであるか否かを判定し、その判定結果をフレーム処理部311に報告する(S4)。
受信したフレームが正常メッセージであると判定された場合(S4のY)、フレーム処理部311は、ステップS3で決定された転送先のバス上に当該フレームを転送するよう、通信制御部33に依頼する。通信制御部33は、フレーム処理部311からの依頼を受けて、指定された転送先へフレームを転送する(S5)。より具体的には、フレーム処理部311は、フレームの各フィールドの値を通信制御部33へ転送し、通信制御部33がフレームを生成し、フレーム送受信部34にフレームを転送する。フレーム送受信部34は、取得したフレームを指定されたバス20に送出する。
ステップS2において、受信処理する必要がないフレームであると判定された場合(S2のN)、またはステップS4において、受信したフレームが攻撃メッセージであると判定された場合(S4のN)、フレームの転送は実施されない。
なお、上述のフローチャートでは、転送先を決定した(ステップS3)後、攻撃メッセージであるか否かを判断した(ステップS4)が、この順番に限定されるものではない。攻撃メッセージであるか否かを判断した(ステップS4)後、転送先を決定(ステップS3)してもよいし、転送先の決定(ステップS3)と攻撃メッセージであるか否かの判断(ステップS4)を同時に行ってもよい。
以下、不正検知部312における不正検知処理の詳細を説明する。基準値比較部312aは、受信したメッセージが不正であるか否かを判定する際、対象となる値と基準パラメータ値との比較により不正であるか否かを判定する。レンジ判定部312bは、受信したメッセージが不正であるか否かを判定する際、対象となる値が基準パラメータ範囲に収まるか否かを判定する。
基準値比較部312aにおける判定に用いられる監視項目は、対象となる値の正解値が一意的に定まっている。当該監視項目の検出値と当該監視項目の基準パラメータ値(固定値)とを比較することにより、当該監視項目の合否を形式的に一意に判定できる。即ち、監視項目の検出値が監視項目の基準パラメータ値と一致していれば合格、不一致であれば不合格と判定される。
一方、レンジ判定部312bにおける判定に用いられる監視項目は、対象となる値の合格基準に幅があり、送信周期など値が変動する監視項目が該当する。例えば、送信周期はバスのトラフィック量、外乱ノイズ等の要因により値が微小に変化する。
レンジ判定部312bにおける判定処理では、2つの基準パラメータ範囲を使用する。第1基準パラメータ範囲は、第2基準パラメータ範囲より広い範囲を持つ。例えば、第2基準パラメータ範囲は、自動車メーカの仕様に基づき、モデル、仕向地を考慮して監視項目ごとに決定された範囲に設定される。第1基準パラメータ範囲は、第2基準パラメータの範囲の前および/または後に所定のマージンを持たせた範囲に設定される。
レンジ判定部312bは、受信したフレームをもとに検出した値が第1基準パラメータ範囲を逸脱している場合は不合格と判定し、第2基準パラメータ範囲に収まっている場合は合格と判定する。また、当該検出値が、第1基準パラメータ範囲には収まるが第2基準パラメータ範囲を逸脱している場合はグレーと判定する。
図6は、不正検知パラメータ記憶部323に保持される不正検知パラメータテーブル323aの一例を示す図である。図6に示すテーブルでは、基準値比較部312aによる判定処理の対象となる監視項目と、レンジ判定部312bによる判定処理の対象となる監視項目に分類されている。なお、図6では両者を同一テーブルで構築する例を示しているが、両者を別のテーブルで構築してもよい。
図6に示す例では、基準値比較部312aによる判定処理の対象となる監視項目として、「ID」、「データ長」、「ペイロード(固定)」の3項目を規定している。
「ID」は、ゲートウェイ装置30が送受信するフレームのIDが登録されているIDリスト中に、受信したフレームのIDが登録されているか否かが判定される項目である。フレームのIDがIDリストに登録されていれば合格、登録されていなければ不合格と判定される。この監視項目においては、検出された値(ID)と、リストに含まれる複数の基準パラメータ値(登録ID)とを照合する必要がある。なお、IDリストに登録されているIDは、車載ネットワークシステム5において送受信されるフレームのIDであってもよい。
「データ長」は、受信したフレームのデータ長が、IDごとに規定された正規の値であるか否かが判定される項目である。データ長が正規の値に一致すれば合格、一致しなければ不合格と判定される。この監視項目においては、検出された値(データ長)と、1つの基準パラメータ値(規定のデータ長)とが比較される。
「ペイロード(固定)」は、データフィールドの所定の位置の値(ビット列)が、あらかじめ自動車メーカの仕様によって規定された値(ビット列)と同じ値であるか否かが判定される項目である。両者の値(ビット列)が一致すれば合格、一致しなければ不合格となる。この監視項目においては、検出された値(ビット列)と、1つの基準パラメータ値(ビット列)とが比較される。なお、データフィールドの複数の箇所のビット列を比較する場合は、各箇所の値(ビット列)が比較される。
また、図6に示す例では、レンジ判定部312bによる判定処理の対象となる監視項目として、「送信周期」、「送信頻度」、「ペイロード(変化量)」、「ペイロード(範囲)」の4項目を規定している。
「送信周期」は、受信したフレームの周期が、規定された周期の範囲に収まっているか否かが判定される項目である。例えば、規定された周期が100msの場合、第1基準パラメータ範囲(第1周期範囲)が80〜120ms(マージン20ms(20%))、第2基準パラメータ範囲(第2周期範囲)が95〜105ms(マージン5ms(5%))に設定される。レンジ判定部312bは、受信したフレームの周期が第1周期範囲外の場合は不合格と判定し、第2周期範囲内の場合は合格と判定し、第1周期範囲内でかつ第2周期範囲外の周期の場合はグレーと判定する。なお、フレームの周期は、今回受信したフレームと、当該受信したフレームと同じメッセージIDを持つ前回受信したフレームとの時間差に基づいて特定される。
「送信頻度」は、受信したフレームの送信頻度が、規定された送信頻度の範囲に収まっているか否かが判定される項目である。例えば、規定された送信頻度が毎秒100フレームの場合、第1基準パラメータ範囲(第1送信頻度)が毎秒0〜110(マージン10フレーム(10%))、第2基準パラメータ範囲(第2送信頻度)が毎秒0〜105(マージン5フレーム(5%))に設定される。レンジ判定部312bは、受信したフレームの送信頻度が第1送信頻度外の場合は不合格と判定し、第2送信頻度範囲内の場合は合格と判定し、第1送信頻度範囲内でかつ第2送信頻度範囲外の送信頻度の場合はグレーと判定する。なお、フレームの送信頻度は、メッセージIDごとに検出される。
「ペイロード(変化量)」は、受信したフレームにおけるデータフィールドのデータの値と、当該受信したフレームと同じメッセージIDを持つ前回受信したフレームにおけるデータフィールドのデータの値との変化量(絶対値)が、規定された変化量(絶対値)の範囲に収まっているか否かが判定される項目である。例えば、データフィールドに含まれるデータがエンジン回転数の場合、第1基準パラメータ範囲(第1変化範囲)が0〜100rms、第2基準パラメータ範囲(第2変化範囲)が0〜80rmsに設定される。レンジ判定部312bは、受信したフレームのデータフィールドのデータ変化量が第1変化範囲を超える場合は不合格と判定し、第2変化範囲未満の場合は合格と判定し、第1変化範囲以下で第2変化範囲以上の場合はグレーと判定する。なお、第1変化範囲および第2変化範囲は、対象となるデータごとに異なる範囲が設定される。
また、一つのデータフィールドには、複数のデータ(エンジン回転数、車速など)が含まれる場合がある。その場合、レンジ判定部312bは、1つの受信フレームに対して、複数のデータのそれぞれにおいて上記の変化量の判定を行う。当該フレームのデータフィールドに含まれ、ペイロード(変化量)の判定対象となるデータのいずれかにおいて、上記変化量の判定に不合格となった場合は、レンジ判定部312bは、当該メッセージを不合格と判定し、すべてのデータが合格となった場合は当該メッセージを合格と判定し、対象となるデータのいずれかがグレーと判定され、かつ不合格となったデータが存在しない場合は当該メッセージをグレーと判定する。
「ペイロード(範囲)」は、受信したフレームのデータフィールドのデータの値が、規定されたデータの値の範囲に収まっているか否かが判定される項目である。例えば、データフィールドに含まれるデータがエンジン回転数の場合、第1基準パラメータ範囲(第1データ範囲)が0rpm〜7000rpm、第2基準パラメータ範囲(第2データ範囲)が0rpm〜6000rpmに設定される。レンジ判定部312bは、受信したフレームのデータフィールドのデータの範囲が第1データ範囲を超える場合は不合格と判定し、第2データ範囲未満の場合は合格と判定し、第1データ範囲以下で第2データ範囲以上の場合はグレーと判定する。なお、第1データ範囲および第2データ範囲は、対象となるデータごとに異なる範囲が設定される。また、各データ範囲は、状況に応じて変化するようにしてもよい。
また、一つのデータフィールドには、複数のデータ(エンジン回転数、車速など)が含まれる場合がある。その場合、レンジ判定部312bは、1つの受信フレームに対して、複数のデータのそれぞれにおいて上記のデータ範囲の判定を行う。当該フレームのデータフィールドに含まれ、ペイロード(範囲)の判定対象となるデータのいずれかにおいて、レンジ判定部312bは、上記変化量の判定に不合格となった場合は不合格と判定し、すべてのデータが合格となった場合は当該メッセージを合格と判定し、対象となるデータのいずれかがグレーと判定され、かつ不合格となったデータが存在しない場合は当該メッセージをグレーと判定する。
図7は、第1基準パラメータ範囲と第2基準パラメータ範囲の関係を模式的に描いた図である。レンジ判定部312bは、検出値がマージンの範囲に位置する場合、追加の判定基準を用いて、最終的に受信したメッセージが不正なメッセージであるか否かを判定する。追加の判定基準については後述する。
図8は、ゲートウェイ装置30の不正検知処理を示すフローチャートである。フレーム送受信部34は、バス20からフレームを受信する(S10)。フレーム送受信部34は、通信制御部33を介して、受信したフレームの各フィールドの値をフレーム処理部311に転送する。図8の例では、当該フレームのメッセージIDが、受信IDリスト記憶部321のメッセージIDリストテーブル321aに含まれているIDであることを前提とする。フレーム処理部311は、当該フレームに対する不正検知処理を不正検知部312に依頼する。
基準値比較部312aは、当該フレームから、基準値比較用の監視項目の値を検出する(S11)。基準値比較部312aは、当該監視項目の検出値と、当該監視項目の基準パラメータ値とを用いて不正検知処理を行う(S12)。
図9は、図8のステップS12に係る不正検知処理のサブルーチンを示すフローチャートである。基準値比較部312aは本サブルーチンで使用するパラメータnに初期値として1を設定し(S121)、定数Tとして当該基準値比較用の監視項目の数(上述の「ID」、「データ長」、「ペイロード(固定)」の例では3)を設定する(S122)。
基準値比較部312aは、監視項目(n)の検出値と、監視項目(n)の基準パラメータ値とを比較する(S123)。両者が一致しない場合(S123の不一致)、基準値比較部312aは項目判定結果(n)に「異常」を設定する(S124)。両者が一致する場合(S123の一致)、基準値比較部312aは項目判定結果(n)に「正常」を設定する(S125)。
基準値比較部312aはパラメータnをインクリメントし(S126)、パラメータnが定数Tを超えるか否かを判定する(S127)。パラメータnが定数Tを超えない場合(S127のN)、ステップS123に戻る。パラメータnが定数Tを超えた場合(S127のY)、基準値比較部312aは、n個の項目判定結果に「異常」が含まれるか否かを判定する(S128)。一つでも異常が含まれる場合(S128のY)、基準値比較部312aは、受信したメッセージを不正メッセージと判定する(S129)。n個の項目判定結果に「異常」が含まれない場合(S128のN)、基準値比較部312aは、受信したメッセージを不正メッセージと判定しない(つまり、受信したメッセージを正常なメッセージと判定する)。
図8に戻り、基準値比較部312aによる判定結果が、不正メッセージであるとの判定結果であった場合(S13のY)、不正検知部312は、受信したメッセージが不正メッセージであることをフレーム処理部311に報告し(S18)、処理を終了する。
基準値比較部312aによる判定結果が、不正メッセージでないとの判定結果であった場合(S13のN)、レンジ判定部312bは、当該フレームからレンジ判定用の監視項目の値を検出する(S14)。レンジ判定部312bは、当該監視項目の検出値と、当該監視項目の基準パラメータ範囲とを用いて不正検知処理を行う(S15)。
図10は、図8のステップS15に係る不正検知処理のサブルーチンを示すフローチャートである。レンジ判定部312bは本サブルーチンで使用するパラメータnに初期値として1を設定し(S151)、定数Tに当該レンジ判定用の監視項目の数(上述の「送信周期」、「送信頻度」、「ペイロード(変化量)」、「ペイロード(範囲)」の例では4)を設定する(S152)。
レンジ判定部312bは、監視項目(n)の検出値が、監視項目(n)の第1基準パラメータ範囲に収まるか否かを判定する(S153)。第1基準パラメータ範囲に収まらない場合(S153の範囲外)、レンジ判定部312bは項目判定結果(n)に「異常」を設定する(S154)。第1基準パラメータ範囲に収まる場合(S153の範囲内)、レンジ判定部312bは、監視項目(n)の検出値が、監視項目(n)の第2基準パラメータ範囲に収まるか否かを判定する(S155)。第2基準パラメータ範囲に収まる場合(S155の範囲内)、レンジ判定部312bは項目判定結果(n)に「正常」を設定する(S156)。第2基準パラメータ範囲に収まらない場合(S155の範囲外)、レンジ判定部312bは項目判定結果(n)に「グレー」を設定する(S157)。
レンジ判定部312bはパラメータnをインクリメントし(S158)、パラメータnが定数Tを超えるか否かを判定する(S159)。パラメータnが定数Tを超えない場合(S159のN)、ステップS153に戻る。パラメータnが定数Tを超えた場合(S159のY)、レンジ判定部312bは、n個の項目判定結果に「異常」が含まれるか否かを判定する(S1510)。一つでも「異常」を含む場合(S1510のY)、レンジ判定部312bは、受信したメッセージを不正メッセージと判定する(S1512)。
n個の項目判定結果に「異常」が含まれない場合(S1510のN)、レンジ判定部312bは、n個の項目判定結果に「グレー」が設定数以上含まれるか否か(追加の判定基準に相当)を判定する(S1511)。「グレー」が設定数(2以上でかつT以下の整数)以上含まれる場合(S1511のY)、レンジ判定部312bは、受信したメッセージを不正メッセージと判定する(S1512)。「グレー」が設定数以上含まれない場合(S1511のN)、レンジ判定部312bは、受信したメッセージを不正メッセージと判定しない(つまり、受信したメッセージを正常なメッセージと判定する)。
図8に戻り、レンジ判定部312bによる判定結果が、不正メッセージであるとの判定結果であった場合(S16のY)、不正検知部312は、受信したメッセージが不正メッセージであることをフレーム処理部311に報告し(S18)、処理を終了する。レンジ判定部312bによる判定結果が、不正メッセージでないとの判定結果であった場合(S16のN)、不正検知部312は、受信したメッセージが正常メッセージであることをフレーム処理部311に報告し(S17)、処理を終了する。
上述の説明では、レンジ判定部312bによる不正検知処理において、異常と判定された監視項目がない場合であっても、「グレー」と判定された監視項目の数が設定数を超えた場合、不正メッセージと判定した。この点、監視項目ごとにグレー判定に重み付けを行ってもよい。
レンジ判定部312bは、図10中のS155においてグレー判定となった場合、監視項目ごとに重み付けするために、項目判定結果(n)に「重み」を設定する。そして、図10中のS1511において、n個の項目判定結果に含まれる「グレー」の数と設定数との比較の代わりに、それぞれの項目判定結果を合算した合計スコアと閾値とが比較される。レンジ判定部312bは、合計スコアが閾値を超えた場合は不正メッセージと判定し、超えない場合は不正メッセージと判定しない。
例えば、「送信周期」の重みを0.8に、「送信頻度」の重みを1.7に、「ペイロード(変化量)」の重みを0.7に、閾値を1.6に設定した場合、「送信周期」と「ペイロード(変化量)」が「グレー」と判定された(合計スコア=1.5)としても閾値を超えない(合計スコア<1.6)ため、不正メッセージとは判定されない。一方、「送信頻度」のみが「グレー」と判定された(合計スコア=1.7)場合でも閾値を超える(合計スコア>1.6)ため、不正メッセージと判定される。
上記の設定数、各監視項目の重み及び閾値は、実験および/またはシミュレーションの結果、設計者の知見などに基づいて設定される。設計者は、これらの値を調整することにより、判定感度を調整することができる。
上記図10に示したフローチャートでは、レンジ判定不正検知部312bにおける不正検知処理として、監視項目(n)の項目判定結果に関わらず、全てのレンジ判定用の監視項目(監視項目の数=T)の判定を実行した後に、受信したメッセージが不正であるか否かを判定し、フレーム処理部311に報告した。
この点、レンジ判定用の監視項目の数と同じ数の項目判定結果が出ていない場合であっても、監視項目(n)の項目判定結果に応じて、受信したメッセージが不正メッセージであるかどうかを判定し、レンジ判定不正検知部312bにおける不正検知処理を終了してもよい。
図11は、図8のステップS15に係る不正検知処理のサブルーチンの変形例を示すフローチャートである。レンジ判定不正検知部312bは本サブルーチンで使用するパラメータnに初期値として1を設定し(S151)、定数Tに当該レンジ判定用の監視項目の数(上述の例では4)を設定する(S152)。
レンジ判定不正検知部312bは、監視項目(n)の検出値が、監視項目(n)の第1基準パラメータ範囲に収まるか否か判定する(S153)。監視項目(n)の検出値が第1基準パラメータ範囲に収まらない場合(S153の範囲外)、レンジ判定不正検知部312bは項目判定結果(n)に「異常」を設定する(S154)。この場合、レンジ判定不正検知部312bは、受信したメッセージを不正メッセージと判定し(S1512)、レンジ判定不正検知部312bにおける不正検知処理を終了する。
監視項目(n)の検出値が第1基準パラメータ範囲に収まる場合(S153の範囲内)、レンジ判定不正検知部312bは、監視項目(n)の検出値が、監視項目(n)の第2基準パラメータ範囲に収まるか否か判定する(S155)。監視項目(n)の検出値が第2基準パラメータ範囲に収まらない場合(S155の範囲外)、レンジ判定不正検知部312bは項目判定結果(n)に「グレー」を設定する(S157)。
監視項目(n)の検出値が、第1基準パラメータ範囲に収まり(S153の範囲内)かつ第2基準パラメータ範囲に収まる場合(S155の範囲内)、レンジ判定不正検知部312bは、項目判定結果(n)に「正常」を設定する(S156)。n個の項目判定結果(項目判定結果(n)以前)に「正常」が第2設定数(1以上のT以下の整数)以上含まれる場合(S1513のY)、レンジ判定不正検知部312bは、受信したメッセージを不正メッセージと判定せず、レンジ判定不正検知部312bにおける不正検知処理を終了する。
n個の項目判定結果(項目判定結果(n)以前)に「正常」が第2設定数以上含まれない場合(S1513のN)、レンジ判定不正検知部312bはパラメータnをインクリメントし(S158)、パラメータnが定数Tを超えるか否か判定する(S159)。パラメータnが定数Tを超えない場合(S159のN)、ステップS153に戻る。
パラメータnが定数Tを超えた場合(S159のY)、レンジ判定不正検知部312bは、n個の項目判定結果に「グレー」が第1設定数以上含まれるか否か(追加の判定基準に相当)判定する(S1511)。「グレー」が第1設定数(2以上のT以下の整数)以上含まれる場合(S1511のY)、レンジ判定不正検知部312bは、受信したメッセージを不正メッセージと判定する(S1512)。「グレー」が設定数以上含まれない場合(S1511のN)、レンジ判定不正検知部312bは、受信したメッセージを不正メッセージと判定しない。
当該変形例では、監視項目(n)までの項目判定結果が所定の数(第2設定数)だけ正常であった場合に、監視項目(n+1)以降の不正検知処理をスキップすることにより、正常メッセージが送受信されている環境において、不正検知処理における処理負荷を低減することが可能となる。特に、上述の例において、第2設定数=1とした場合、最初の項目判定結果(1)が正常の場合、即時不正検知処理をスキップし、最初の項目判定結果(1)がグレーの場合、以降の判定処理を続ける。
また、受信したメッセージに適用する監視項目(n)の数および、監視項目(n)を適用する順番を、受信したメッセージの種別に応じて変更することで、不正メッセージの検知精度を向上させることが可能となる。
上記図8に示したフローチャートでは、先に基準値比較部312aによる不正判定処理を実行し、当該不正判定処理の判定結果が不正メッセージでないとの判定結果であった場合に、レンジ判定部312bによる不正判定処理を行う例を示した。即ち、基準値比較部312aによる不正判定処理の判定結果が不正メッセージであるとの判定結果であった場合、レンジ判定部312bによる不正判定処理はスキップされた。
この点、CPUが複数のコアを持つなどハードウェア資源の仕様が高い場合、以下に詳述するように、基準値比較部312a及びレンジ判定部312bの処理を並列に実行してもよい。
図12は、ゲートウェイ装置30の不正検知処理の変形例を示すフローチャートである。フレーム送受信部34は、バス20からフレームを受信する(S10)。フレーム送受信部34は、通信制御部33を介して、受信したフレームの各フィールドの値をフレーム処理部311に転送する。図12の例でも、当該フレームのメッセージIDが、受信IDリスト記憶部321のメッセージIDリストテーブル321aに含まれているIDであることを前提とする。フレーム処理部311は、当該フレームに対する不正検知処理を不正検知部312に依頼する。
基準値比較部312aは当該フレームから、基準値比較用の監視項目の値を検出する(S11)。基準値比較部312aは、当該監視項目の検出値と、当該監視項目の基準パラメータ値とを用いて不正検知処理を行う(S12)。レンジ判定部312bは当該フレームから、レンジ判定用の監視項目の値を検出する(S14)。レンジ判定部312bは、当該監視項目の検出値と、当該監視項目の基準パラメータ範囲を用いて不正検知処理を行う(S15)。変形例ではステップS11、S12に係る処理と、ステップS14、S15に係る処理を並行して実行する。
不正検知部312は、基準値比較部312aによる判定結果とレンジ判定部312bによる判定結果の少なくとも一方の判定結果が、不正メッセージであるとの判定結果であるか否かを判定する(S16a)。少なくとも一方の判定結果が、不正メッセージであるとの判定結果であった場合(S16aのY)、不正検知部312は、受信したメッセージが不正メッセージであることをフレーム処理部311に報告し(S18)、処理を終了する。両方の判定結果が不正メッセージでないとの判定結果であった場合(S16aのN)、不正検知部312は、受信したメッセージが正常メッセージであることをフレーム処理部311に報告し(S17)、処理を終了する。
当該変形例では、レンジ判定部312bによる不正検知処理を常に実行することになるため、当該処理をスキップできる可能性がある図8に示したアルゴリズムよりもトータルの演算量は多くなる。しかしながら、対象となるフレームが、基準値比較部312aによる不正検知処理では不正メッセージと判定されなかったが、レンジ判定部312bによる不正検知処理では不正メッセージと判定されるケースでは、図8に示したアルゴリズムよりも最終的な判定を行うまでの時間を短縮することができる。
以上の説明では、不正検知部312がゲートウェイ装置30に搭載される例を説明した。この点、不正検知部がECU10に搭載されてもよい。
図13は、不正検知部112を搭載したECU10の構成を示す図である。ECU10は、処理部11、記憶部12、通信制御部13及びフレーム送受信部14を備える。処理部11は、フレーム処理部111、不正検知部112及びアプリケーション実行部113を含む。記憶部12は、受信IDリスト記憶部121、不正検知パラメータ記憶部123を含む。
処理部11は、ハードウェア資源とソフトウェア資源の協働、またはハードウェア資源のみにより実現できる。ハードウェア資源としてマイクロコンピュータ、DSP、FPGA、その他のLSIが利用できる。ソフトウェア資源としてオペレーティングシステム、アプリケーション、ファームウェア等のプログラムが利用できる。記憶部12には揮発性メモリ及び不揮発性メモリが利用できる。通信制御部13には、専用のハードウェアであるCANコントローラが利用できる。なお、通信制御部13の機能を処理部11に統合する構成も可能である。フレーム送受信部14には、専用のハードウェアであるCANトランシーバが利用できる。
フレーム送受信部14は、バス20上に、CANプロトコルに従ったフレームを送受信する。フレーム送受信部14は、バス20からフレームを1bitずつ受信して、通信制御部13にフレームを転送する。また、フレーム送受信部14は、通信制御部13から取得したフレームをバス20に1bitずつ送信する。
通信制御部13は、フレーム送受信部14から取得したフレームを解釈し、フレームを構成する各値を、CANプロトコルにおける各フィールドにマッピングする。通信制御部13は、マッピングされたフレームの値をフレーム処理部111に転送する。
フレーム処理部111は、通信制御部13から取得したIDフィールドの値(メッセージID)を取得し、受信IDリスト記憶部121に保持されているメッセージIDのリストを参照して、当該フレームを受信するか否かを判定する。IDフィールドの値が当該リストに含まれている場合は受信すると判定し、含まれていない場合は受信しないと判定する。受信すると判定した場合、フレーム処理部311はIDフィールド以降のフィールドの値を不正検知部312に転送する。
また通信制御部13は、フレーム送受信部14から取得したフレームがCANプロトコルに則していないと判断した場合、エラーフレームを生成し、フレーム送受信部14にエラーフレームを転送する。フレーム送受信部14は、通信制御部13から取得したエラーフレームをバス20に送出する。
フレーム処理部111は、通信制御部13から取得したIDフィールド以降のフィールドの値(メッセージ)を不正検知部112に転送し、取得したメッセージが攻撃メッセージであるか否かの判定を不正検知部112に依頼する。具体的な不正検知方法は、図8乃至図12で説明した方法と同様である。
フレーム処理部111は、不正検知部112により正常メッセージと判定された場合、受信したフレームのデータをアプリケーション実行部113に転送する。アプリケーション実行部113は、当該データに応じて所定の処理を実行する。当該処理の内容は、ECU10ごとに異なる。
例えば、図1の第1ECU10aは、時速が30kmを超えた状態でドアが開いている場合、アラーム音を鳴らす機能を備える。第3ECU100cは、ブレーキがかかっていない状態でドアが開いた場合、アラーム音を鳴らす機能を備える。
アプリケーション実行部113は、接続されている機器またはセンサの状態を取得し、フレーム処理部111に通知する。フレーム処理部111は、メッセージIDと、アプリケーション実行部113から取得したデータを通信制御部13に通知する。通信制御部13は、フレーム処理部111から取得したメッセージIDとデータをもとにフレームを生成し、フレーム送受信部14に生成したフレームを転送する。フレーム送受信部14は、通信制御部13から取得したフレームをバス20に送出する。
なお、ECU10でメッセージの不正検知処理を行わない構成では、図13の不正検知部112が省略される。また、ECU10において受信したフレームのメッセージIDによる受信制限を行わない構成では、図13の受信IDリスト記憶部121が省略される。
また、図13では、不正検知部112が、ECU10において受信したメッセージの不正検知処理を行う例を説明した。この点、不正検知部112は、接続されている機器から取得したデータが不正であるか否かを判定してもよい。例えば、ECU10がカーナビゲーションシステムと連携したECUである場合、不正検知部112は、カーナビゲーションシステムから送信されたメッセージが攻撃メッセージであるか否かを判定する。不正検知部112は、攻撃メッセージと判定した場合、ECU10からの当該メッセージのバス20への送出を中止する。
以上説明したように本実施の形態によれば、レンジ判定部312bにおいて、検出値が第1基準パラメータ範囲内であるが、第2基準パラメータ範囲外である場合、グレーと判定し、グレーと判定された監視項目の数に応じてメッセージが正常であるか不正であるかを判定する。これにより、グレーゾーンの検出値を持つメッセージの正常/不正を的確に判定することができ、誤検知と検知漏れをバランス良く低減することができる。即ち、CANフィルタの検知精度を向上させることができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素または各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
例えば、上述の実施の形態では、ゲートウェイ装置30において、他のバス20への転送対象となるフレームに対して、不正検知処理を実施する例を説明した。この点、ゲートウェイ装置30で受信した全てのフレームに対して不正検知処理を実施してもよい。
また、上述の実施の形態では、基準値比較部312aとレンジ判定部312bが分離された状態で説明を行ったが、基準値比較部312aとレンジ判定部312bとが一つの不正検知部として構成されていてもよい。その場合、すべての不正検知処理の結果を併せたトータルの最終判定を行う。例えば、「ID」とレンジ判定用の監視項目のグレー判定の数とによって正常/不正を判断してもよい。
また、上述の実施の形態では、基準値比較部312aが、固定値である基準パラメータ値との比較による判定方法を説明した。この点、基準値比較部312aにおいても、基準パラメータ範囲を用いたレンジ判定を取り入れてもよい。
また、上述の実施の形態では、CANプロトコルに従って通信するネットワーク通信システムの例として車載ネットワークを示した。本発明に係る技術は、車載ネットワークでの利用に限定されるものではなく、ロボット、産業機器等のネットワーク、車載ネットワーク以外のCANプロトコルに従って通信するネットワーク通信システムなどに利用してもよい。
また、CANプロトコルでの実施例を示したが、これに限定されるものではなく、オートメーションシステム内の組み込みシステム等に用いられるCANOpen、或いは、TTCAN(Time−Triggered CAN)、CANFD(CAN with Flexible Data Rate)等のCANの派生的なプロトコルであってもよいし、車載ネットワークで用いられる別の通信プロトコル(例えば、Ethernet(登録商標)、MOST、FlexRay等)であってもよい。
なお、実施の形態は、以下の項目によって特定されてもよい。
[項目1]
ネットワーク(5)におけるメッセージを送受信する通信部(34)と、
前記通信部(34)において受信されたメッセージから複数の監視項目の値を検出し、前記複数の監視項目の各検出値が各基準範囲に収まっているか否かを判定して、不正メッセージを検知する第1不正検知部(312b)と、を備え、
前記複数の監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲とが設定され、
前記第1不正検知部(312b)は、
前記各検出値のいずれかが前記第1基準範囲外の値であるとき、前記メッセージを不正メッセージと判定し、
前記各検出値のいずれかが前記第1基準範囲内でかつ前記第2基準範囲外の値であるとき、所定の規則を満たす場合に前記メッセージを不正メッセージと判定する、
ことを特徴とする通信装置(30)。
これによれば、グレーゾーンの検出値を持つフレームの正常/不正を的確に判定することができ、誤検知と検知漏れをバランス良く低減することができる。
[項目2]
前記第1不正検知部(312b)は、前記所定の規則として、前記検出値が前記第1基準範囲内でかつ前記第2基準範囲外の値である監視項目の数が、所定数n(nは2以上かつ前記複数の監視項目の数以下の整数)以上を満たすとき、前記メッセージを不正メッセージと判定する、ことを特徴とする項目1に記載の通信装置(30)。
これによれば、グレーゾーンの検出値を監視項目の数を考慮することにより、グレーゾーンの検出値を持つフレームの正常/不正を的確に判定することができる。
[項目3]
前記第1不正検知部(312b)は、前記検出値が前記第1基準範囲外の値であるとき前記検出値が前記第2基準範囲内か否かの判定をスキップして前記メッセージを不正メッセージと判定し、前記検出値が前記第1基準範囲内の値であるとき前記検出値が前記第2基準範囲内か否かの判定を行う、
ことを特徴とする項目1または2に記載の通信装置(30)。
これによれば、全体の処理量を低減することができる。
[項目4]
前記第1不正検知部(312b)は、前記検出値が前記第1基準範囲内の値であるとき前記検出値が前記第2基準範囲内か否かの判定を行い、もし前記検出値が前記第2基準範囲内と判定された場合に、
前記第2基準範囲内である監視項目の数が所定数m(mは1以上かつ前記複数の監視項目の数以下の整数)以上を満たすとき、次の検出値に対する判定をスキップし、
前記第2基準範囲内である監視項目の数が所定数m未満を満たすとき、次の検出値に対する判定を継続する、
ことを特徴とする請求項1から3のいずれかに記載の通信装置(30)。
これによれば、不正メッセージの検出精度を確保しつつ、処理量を低減することができる。
[項目5]
前記メッセージから、前記第1不正検知部(312b)によって判定される監視項目とは異なる少なくとも1つの監視項目の値を検出し、各検出値と各基準値とを比較して、不正メッセージを検知する第2不正検知部(312a)と、をさらに備え、
前記第2不正検知部(312a)は、各検出値が各基準値と合致しないとき前記メッセージを不正メッセージと判定する、
ことを特徴とする項目1から4のいずれかに通信装置(30)。
これによれば、監視項目ごとに、監視項目の性質に応じた適切な判定方法を採用することができる。
[項目6]
前記第2不正検知部(312a)が前記メッセージを不正メッセージと判定したとき、前記第1不正検知部(312b)による判定をスキップし、前記メッセージを不正メッセージと判定しなかったとき、前記第1不正検知部による判定を行う、
ことを特徴とする項目5に記載の通信装置(30)。
これによれば、全体の処理量を低減することができる。
[項目7]
ネットワークから受信されるメッセージから複数の監視項目の値を検出し、前記複数の監視項目の各検出値が各基準範囲に収まっているか否かを判定して、不正メッセージを検知し、
前記複数の監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲が設定され、
前記各検出値のいずれかが前記第1基準範囲外の値であるとき、前記メッセージを不正メッセージと判定し、
前記各検出値のいずれかが前記第1基準範囲内でかつ前記第2基準範囲外の値であるとき、所定の規則を満たす場合に前記メッセージを不正メッセージと判定する、
通信方法。
これによれば、グレーゾーンの検出値を持つフレームの正常/不正を的確に判定することができ、誤検知と検知漏れをバランス良く低減することができる。
[項目8]
ネットワークから受信されるメッセージから複数の監視項目の値を検出し、前記複数の監視項目の各検出値が各基準範囲に収まっているか否かを判定して、不正メッセージを検知する処理をコンピュータに実行させる通信プログラムであって、
前記複数の監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲が設定され、
前記不正メッセージを検知する処理は、
前記各検出値のいずれかが前記第1基準範囲外の値であるとき、前記メッセージを不正メッセージと判定し、
前記各検出値のいずれかが前記第1基準範囲内でかつ前記第2基準範囲外の値であるとき、所定の規則を場合に前記メッセージを不正メッセージと判定する、
通信プログラム。
1 車両、 5 車載ネットワークシステム、 10 ECU、 41 エンジン、 42 ブレーキ、 43 ドア開閉センサ、 44 ウインドウ開閉センサ、 20 バス、 30 ゲートウェイ装置、 31 処理部、 311 フレーム処理部、 312 不正検知部、 312a 基準値比較部、 312b レンジ判定部、 32 記憶部、 321 受信IDリスト記憶部、 322 転送ルール記憶部、 323 不正検知パラメータ記憶部、 33 通信制御部、 34 フレーム送受信部。

Claims (7)

  1. ネットワークを介してメッセージを受信する通信部と、
    前記受信されたメッセージから取得された少なくとも1つの監視項目の値が各基準範囲内に含まれているか否かに基づいて、前記受信されたメッセージが不正メッセージであるか否かを判定する第1不正検知部と、
    を備え、
    前記監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲とが設定され、
    前記第1不正検知部は、前記監視項目の値が前記第1基準範囲に含まれかつ前記第2基準範囲に含まれない監視項目の数が、予め設定された判定基準となる数以上であることを満たすとき、記メッセージを不正メッセージと判定する、
    電子制御装置。
  2. 前記第2基準範囲は、前記第1基準範囲に含まれた範囲であってかつ前記第1基準範囲より狭い範囲である、
    請求項1に記載の電子制御装置。
  3. 前記第1不正検知部によって判定される監視項目は、送信周期、送信頻度、ペイロードの範囲、および、ペイロードの変化量の少なくともいずれか1つである、
    請求項1又は2に記載の電子制御装置。
  4. 前記受信されたメッセージから取得された、前記第1不正検知部によって判定される監視項目とは異なる少なくとも1つの他の監視項目の値と、当該他の監視項目の値に対応する基準値とを比較して、前記受信されたメッセージが不正メッセージであるか否かを判定する第2不正検知部と、
    をさらに備え、
    前記第2不正検知部は、前記他の監視項目の値が当該他の監視項目の値に対応する基準値と合致しないとき、前記受信されたメッセージを不正メッセージと判定する、
    請求項1からのいずれか1項に記載の電子制御装置。
  5. 前記第2不正検知部によって判定される監視項目は、前記受信されたメッセージを含むフレームのID、前記フレームのデータ長、および、前記フレームに含まれるデータフィールドの所定位置の値の少なくともいずれか1つである、
    請求項に記載の電子制御装置。
  6. ネットワークを介してメッセージを送受信する通信部と、
    前記受信されたメッセージから取得された少なくとも1つの監視項目の値が各基準範囲内に含まれているか否かに基づいて、前記受信されたメッセージが不正メッセージであるか否かを判定する第1不正検知部と、
    を備え、
    前記監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲とが設定され、
    前記第1不正検知部は、前記監視項目の値が前記第1基準範囲に含まれかつ前記第2基準範囲に含まれない監視項目の数が、予め設定された判定基準となる数以上であることを満たすとき、記メッセージを不正メッセージと判定し、
    前記通信部は、前記第1不正検知部によって正常メッセージと判定されたメッセージを前記ネットワークへ送信する、
    ゲートウェイ装置。
  7. ネットワークを介して受信されたメッセージから取得された少なくとも1つの監視項目の値が基準範囲内に含まれているか否かに基づいて、前記受信されたメッセージが不正メッセージであるか否かを判定する処理をコンピュータに実行させるための検知プログラムであって、
    前記監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲が設定され、
    前記不正メッセージであるか否かを判定する処理は、前記監視項目の値が前記第1基準範囲に含まれかつ前記第2基準範囲に含まれない監視項目の数が、予め設定された判定基準となる数以上であることを満たすとき、記メッセージを不正メッセージと判定する、
    検知プログラム。
JP2016125991A 2015-12-14 2016-06-24 電子制御装置、ゲートウェイ装置、及び検知プログラム Active JP6566400B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2016/005094 WO2017104122A1 (ja) 2015-12-14 2016-12-09 通信装置、通信方法、及び通信プログラム
EP16875111.3A EP3361677B1 (en) 2015-12-14 2016-12-09 Communication device, communication method and non-transitory storage medium
US15/770,182 US10713106B2 (en) 2015-12-14 2016-12-09 Communication device, communication method and non-transitory storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015243587 2015-12-14
JP2015243587 2015-12-14

Publications (3)

Publication Number Publication Date
JP2017112590A JP2017112590A (ja) 2017-06-22
JP2017112590A5 JP2017112590A5 (ja) 2019-03-22
JP6566400B2 true JP6566400B2 (ja) 2019-08-28

Family

ID=59081282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016125991A Active JP6566400B2 (ja) 2015-12-14 2016-06-24 電子制御装置、ゲートウェイ装置、及び検知プログラム

Country Status (3)

Country Link
US (1) US10713106B2 (ja)
EP (1) EP3361677B1 (ja)
JP (1) JP6566400B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3726790B1 (en) * 2017-12-15 2021-12-01 Panasonic Intellectual Property Corporation of America Fraud detection device, in-vehicle network system, and fraud detection method
EP3726782B1 (en) 2017-12-15 2022-02-02 Panasonic Intellectual Property Corporation of America Detecting unauthorized messages in a vehicle network
CN110771099B (zh) * 2018-05-23 2022-08-26 松下电器(美国)知识产权公司 异常检测装置、异常检测方法以及记录介质
DE102018212657A1 (de) * 2018-07-30 2020-01-30 Robert Bosch Gmbh Verfahren und Vorrichtung zum Erkennen von Unregelmäßigkeiten in einem Rechnernetz
WO2020044638A1 (ja) 2018-08-30 2020-03-05 住友電気工業株式会社 車載通信システム、データ取得装置、管理装置および監視方法
JPWO2020085330A1 (ja) * 2018-10-25 2021-09-30 パナソニックIpマネジメント株式会社 電子制御装置、電子制御方法及びプログラム
JP7124679B2 (ja) 2018-12-07 2022-08-24 トヨタ自動車株式会社 監視装置
WO2020137304A1 (ja) * 2018-12-28 2020-07-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 統計情報生成装置、統計情報生成方法、および、プログラム
WO2020203352A1 (ja) * 2019-03-29 2020-10-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知方法及び異常検知装置
JP7234839B2 (ja) * 2019-07-17 2023-03-08 株式会社デンソー ゲートウェイ装置、異常監視方法、及び異常監視プログラム
JP7396363B2 (ja) * 2019-09-30 2023-12-12 株式会社オートネットワーク技術研究所 検知装置、車両、検知方法および検知プログラム
JP7383995B2 (ja) * 2019-11-19 2023-11-21 株式会社デンソー 通信システム及び通信装置
US20240031382A1 (en) 2020-12-10 2024-01-25 Autonetworks Technologies, Ltd. In-vehicle apparatus, fraud detection method, and computer program
KR20240032069A (ko) * 2021-07-01 2024-03-08 엘지전자 주식회사 신호 처리 장치 및 이를 구비하는 차량용 통신 장치
JP2024004312A (ja) * 2022-06-28 2024-01-16 株式会社オートネットワーク技術研究所 中継装置、情報処理方法及び車載システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004355330A (ja) * 2003-05-29 2004-12-16 Fujitsu Ltd 診断装置及び診断方法
JP2007292489A (ja) * 2006-04-21 2007-11-08 Toshiba Corp 電気設備の絶縁異常診断システム
JP4901401B2 (ja) * 2006-09-29 2012-03-21 学校法人同志社 アルコール検出装置、および、アルコール検出方法
JP2009171431A (ja) * 2008-01-18 2009-07-30 Oki Electric Ind Co Ltd トラフィック分析装置、トラフィック分析方法及びトラフィック分析システム
JP2012043130A (ja) * 2010-08-18 2012-03-01 Omron Corp 爆発物検知ユニット、およびゲート装置
US9015536B1 (en) * 2011-08-31 2015-04-21 Amazon Technologies, Inc. Integration based anomaly detection service
JP5522160B2 (ja) * 2011-12-21 2014-06-18 トヨタ自動車株式会社 車両ネットワーク監視装置
JP2013255544A (ja) * 2012-06-11 2013-12-26 Panasonic Corp 超音波診断装置
US9197511B2 (en) * 2012-10-12 2015-11-24 Adobe Systems Incorporated Anomaly detection in network-site metrics using predictive modeling
JP5919205B2 (ja) 2013-01-28 2016-05-18 日立オートモティブシステムズ株式会社 ネットワーク装置およびデータ送受信システム
US9843594B1 (en) * 2014-10-28 2017-12-12 Symantec Corporation Systems and methods for detecting anomalous messages in automobile networks
US10082787B2 (en) * 2015-08-28 2018-09-25 International Business Machines Corporation Estimation of abnormal sensors

Also Published As

Publication number Publication date
EP3361677A4 (en) 2018-10-24
US10713106B2 (en) 2020-07-14
JP2017112590A (ja) 2017-06-22
EP3361677B1 (en) 2019-10-23
US20180314571A1 (en) 2018-11-01
EP3361677A1 (en) 2018-08-15

Similar Documents

Publication Publication Date Title
JP6566400B2 (ja) 電子制御装置、ゲートウェイ装置、及び検知プログラム
US11356475B2 (en) Frame transmission prevention apparatus, frame transmission prevention method, and in-vehicle network system
US10931634B2 (en) Security apparatus, attack detection method, and storage medium
US10902109B2 (en) Misuse detection method, misuse detection electronic control unit, and misuse detection system
JP7008100B2 (ja) 不正対処方法、不正検知電子制御ユニットおよびネットワーク通信システム
US10986008B2 (en) Abnormality detection in an on-board network system
US11296965B2 (en) Abnormality detection in an on-board network system
JP7280082B2 (ja) 不正検知方法、不正検知装置及びプログラム
JP7182559B2 (ja) ログ出力方法、ログ出力装置及びプログラム
US11201878B2 (en) Bus-off attack prevention circuit
US11336618B2 (en) Security apparatus, attack detection method, and storage medium
US11843477B2 (en) Anomaly determination method, anomaly determination device, and recording medium
JP6286749B2 (ja) 通信システム、制御装置、及び制御方法
US11218501B2 (en) Detector, detection method, and detection program
JP6527647B1 (ja) 不正検知方法、不正検知装置及びプログラム
JP6528239B2 (ja) 通信装置およびプログラム
WO2017104122A1 (ja) 通信装置、通信方法、及び通信プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190205

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190205

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190205

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190603

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190722

R150 Certificate of patent or registration of utility model

Ref document number: 6566400

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150