WO2017038005A1 - 不正検知方法、不正検知電子制御ユニット及び不正検知システム - Google Patents

不正検知方法、不正検知電子制御ユニット及び不正検知システム Download PDF

Info

Publication number
WO2017038005A1
WO2017038005A1 PCT/JP2016/003567 JP2016003567W WO2017038005A1 WO 2017038005 A1 WO2017038005 A1 WO 2017038005A1 JP 2016003567 W JP2016003567 W JP 2016003567W WO 2017038005 A1 WO2017038005 A1 WO 2017038005A1
Authority
WO
WIPO (PCT)
Prior art keywords
data frame
fraud detection
reception
fraud
identifier
Prior art date
Application number
PCT/JP2016/003567
Other languages
English (en)
French (fr)
Inventor
剛 岸川
良浩 氏家
前田 学
松島 秀樹
博史 天野
中野 稔久
Original Assignee
パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
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
Priority claimed from JP2016097047A external-priority patent/JP6585001B2/ja
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority to EP16841047.0A priority Critical patent/EP3346647B1/en
Priority to EP20189302.1A priority patent/EP3754940B1/en
Priority to CN202011109730.7A priority patent/CN112261026B/zh
Priority to CN201680001973.4A priority patent/CN107409081B/zh
Publication of WO2017038005A1 publication Critical patent/WO2017038005A1/ja
Priority to US15/873,952 priority patent/US10902109B2/en
Priority to US17/122,659 priority patent/US11636196B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • B60R16/0231Circuits relating to the driving or the functioning of the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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

Definitions

  • This disclosure relates to a technique for detecting transmission of an illegal frame in an in-vehicle network in which an electronic control unit communicates.
  • ECUs electronice control units
  • in-vehicle network A network connecting these ECUs.
  • ISO11898-1 A network connecting these ECUs.
  • CAN Controller Area Network
  • a communication path is composed of two buses, and an ECU connected to the bus is called a node.
  • Each node connected to the bus transmits and receives a message called a frame.
  • a transmission node that transmits a frame applies a voltage to two buses to generate a potential difference between the buses, thereby transmitting a value of “1” called recessive and a value of “0” called dominant.
  • the dominant is transmitted with priority.
  • the receiving node transmits a frame called an error frame.
  • An error frame is a notification of frame abnormality to a transmitting node or another receiving node by transmitting dominants continuously for 6 bits.
  • the transmission node transmits an ID for each frame (that is, sends a signal to the bus), and each reception node only has a frame with a predetermined ID. (I.e. read a signal from the bus).
  • a CSMA / CA Carrier Sense Multiple Access / Collision Avoidance
  • arbitration is performed using a message ID during simultaneous transmission of a plurality of nodes, and a frame with a small message ID value is preferentially transmitted.
  • the in-vehicle network monitoring device described in Patent Document 1 is configured to detect a frame when a difference between a reception interval measured for a frame transmitted to a CAN bus and a predetermined communication interval is out of a prescribed reference range.
  • a fraud detection method that determines that
  • a fraud detection method is a fraud detection method used in an in-vehicle network system including a plurality of electronic control units that perform communication via a bus according to a CAN (Controller Area Network) protocol.
  • the fraud detection method includes a detection step of performing an evaluation according to a reception timing of the reference data frame and a reception timing of the target data frame based on a predetermined rule that defines a reception interval with the target data frame.
  • the fraud detection electronic control unit includes fraud detection electronics in an in-vehicle network system including a plurality of electronic control units that communicate via a bus according to a CAN (Controller Area Network) protocol.
  • CAN Controller Area Network
  • a control unit a receiving unit that receives a data frame transmitted on the bus, a target data frame that is a data frame having a first identifier, and a data frame having a second identifier different from the first identifier
  • a rule holding unit that holds rule information indicating a predetermined rule that defines a reception interval with respect to a certain reference data frame; and fraud detection of the target data frame, based on the predetermined rule, the reception timing of the reference data frame and the target Evaluation is performed according to the reception timing of the data frame.
  • a fraud detection electronic control unit a fraud detection electronic control unit.
  • a fraud detection system is a fraud detection system for fraud detection in an in-vehicle network system including a plurality of electronic control units that perform communication via a bus according to a CAN (Controller Area Network) protocol.
  • a receiving unit that receives a data frame transmitted on the bus, a target data frame that is a data frame having a first identifier, and a reference data frame that is a data frame having a second identifier different from the first identifier
  • a rule holding unit that holds rule information indicating a predetermined rule that defines a reception interval between the reference data frame and a reception timing of the reference data frame and reception of the target data frame based on the predetermined rule as fraud detection of the target data frame
  • a detection unit that performs evaluation according to the timing It is a fraud detection system.
  • FIG. 1 is a diagram showing an overall configuration of the in-vehicle network system according to the first embodiment.
  • FIG. 2 is a diagram showing a format of a data frame defined by the CAN protocol.
  • FIG. 3 is a diagram illustrating an error frame format defined by the CAN protocol.
  • FIG. 4 is a configuration diagram of the fraud detection ECU according to the first embodiment.
  • FIG. 5 is a diagram illustrating an example of rule information held by the rule holding unit of the fraud detection ECU according to the first embodiment.
  • FIG. 6 is a diagram illustrating an example of reception timing information stored in the reception timing holding unit of the fraud detection ECU according to the first embodiment.
  • FIG. 7 is a configuration diagram of the ECU according to the first embodiment.
  • FIG. 1 is a diagram showing an overall configuration of the in-vehicle network system according to the first embodiment.
  • FIG. 2 is a diagram showing a format of a data frame defined by the CAN protocol.
  • FIG. 3 is a diagram illustrating an error frame
  • FIG. 8 is a diagram illustrating an example of a data frame transmitted by the ECU according to the first embodiment.
  • FIG. 9 is a diagram illustrating an example of the fraud detection operation of the data frame by the fraud detection ECU according to the first embodiment.
  • FIG. 10 is a flowchart showing fraud detection processing when a data frame is received by the fraud detection ECU according to the first embodiment.
  • FIG. 11 is a diagram illustrating an overall configuration of the in-vehicle network system according to the second embodiment.
  • FIG. 12 is a configuration diagram of the fraud detection ECU according to the second embodiment.
  • FIG. 13 is a diagram illustrating an example of rule information held by the rule holding unit of the fraud detection ECU according to the second embodiment.
  • FIG. 14 is a diagram illustrating an example of reception state information held by the reception state holding unit of the fraud detection ECU according to the second embodiment.
  • FIG. 15 is a diagram illustrating an example of a data frame transmitted by the ECU according to the second embodiment.
  • FIG. 16 is a diagram illustrating an example of data frame fraud detection operation by the fraud detection ECU according to the second embodiment.
  • FIG. 17 is a diagram illustrating another example of the fraud detection operation of the data frame by the fraud detection ECU according to the second embodiment.
  • FIG. 18 is a flowchart illustrating fraud detection processing when a data frame is received by the fraud detection ECU according to the second embodiment.
  • the fraud detection method of Patent Document 1 when a plurality of frames are received within a reference range based on a predefined communication interval, the plurality of frames may include an unauthorized frame by an attacker. There is. Based on the reception timing of the invalid frame within the reference range, if the reference range based on the specified communication interval is determined to determine the frame to be received next time, the appropriate frame is determined to be illegal as a result. Will get.
  • the present disclosure provides a fraud detection method capable of appropriately detecting fraud by reducing the possibility of misdetecting an appropriate frame as fraud even when an illegal frame is received within a predetermined error range of a communication interval. provide.
  • the present disclosure also provides a fraud detection electronic control unit (fraud detection ECU) that is an ECU capable of realizing the fraud detection method, and a fraud detection system that realizes the fraud detection method.
  • fraud detection ECU fraud detection electronic control unit
  • a fraud detection method is a fraud detection method used in an in-vehicle network system including a plurality of electronic control units that perform communication via a bus according to a CAN (Controller Area Network) protocol.
  • the fraud detection method includes a detection step of performing an evaluation according to a reception timing of the reference data frame and a reception timing of the target data frame based on a predetermined rule that defines a reception interval with the target data frame.
  • a data frame having an ID different from the data frame of the fraud detection identifier (ID) is used as a reference for the reception interval, so that even if an illegal node is connected to the bus and an illegal data frame is transmitted, it is appropriate.
  • ID fraud detection identifier
  • the target data frame is evaluated to be invalid.
  • the rule does not match, it may be evaluated that the target data frame is invalid.
  • the predetermined rule defines an appropriate range of the reception interval, and in the detection step, a difference between the reception timing of the target data frame and the reception timing of the reference data frame preceding the reception timing is the appropriate When it is within the range, the evaluation may be performed as conforming to the predetermined rule. As a result, it is possible to make an evaluation so as not to be fraudulent if the data frame reception interval is within the allowable error range.
  • the fraud detection method further includes detecting the fraud of the target data frame according to an interval between the reception timing of the target data frame and the reception timing of the target data frame preceding the reception timing. Including an initial detection step for evaluating whether or not a frame is illegal, wherein the fraud detection method performs the fraud detection in the initial detection step prior to the fraud detection in the detection step, and After the target data frame is evaluated to be illegal in the detection step, the fraud detection in the initial detection step may be stopped and the fraud detection in the detection step may be started.
  • the standard of the reception interval for fraud detection is switched. It becomes possible.
  • the reception timing of the target data frame is out of an appropriate time zone determined in advance with reference to the reception timing of the target data frame preceding the reception timing. And when the reception timing of the target data frame is within the proper time zone and another target data frame is received at a timing within the proper time zone, it is evaluated as invalid. It is also good to do. As a result, the criterion of the reception interval for fraud detection is switched from the occurrence of a state in which it is not appropriate to continue fraud detection based on the reception interval between the fraud detection target data frames.
  • the fraud detection method further includes a reference detection step for performing fraud detection of the reference data frame, and a data frame having a third identifier different from the first identifier and the second identifier as fraud detection of the target data frame.
  • a subsequent detection step of performing an evaluation according to the reception timing of the different reference data frame and the reception timing of the target data frame based on a rule that defines a reception interval between the different reference data frame and the target data frame The fraud detection method stops the fraud detection at the detection step and detects the fraud at the subsequent detection step when the reference data frame is detected as fraud at the reference detection step. It is good also as starting detection. As a result, it is possible to continue the appropriate fraud detection by changing the data frame serving as the reference after the fraud with respect to the data frame serving as the reference of the reception interval for fraud detection is detected.
  • the fraud detection method may determine the fraud detection in the detection step after determining one identifier selected according to a predetermined selection criterion from among a plurality of identifiers different from the first identifier as the second identifier. Starting and determining one identifier selected according to the predetermined selection criterion among a plurality of identifiers different from the first identifier and the second identifier as the third identifier, and then performing the fraud in the subsequent detection step. It is good also as starting detection. As a result, if selection criteria are properly determined in advance, if fraud is detected for a data frame that is the reference for the reception interval for fraud detection, the fraud detection is continued by changing the criteria to an appropriate data frame. become able to.
  • the fraud detection method selects, as the second identifier, an identifier that has not yet been detected for a data frame having one identifier among a plurality of identifiers different from the first identifier.
  • the fraud detection in the detection step may be performed. As a result, it is possible to appropriately detect fraud as compared to a case where a data frame in which fraud has been detected is used as a reference for a reception interval for fraud detection.
  • the fraud detection method selects one identifier as the second identifier according to a state of a vehicle on which the plurality of electronic control units are mounted among a plurality of identifiers different from the first identifier,
  • the fraud detection in the detection step may be performed.
  • the detection step for each data frame in a set of one or more data frames each having one or more identifiers different from the first identifier and the second identifier and the reference data frame, Based on a rule group including the predetermined rule that defines a reception interval between the data frame and the target data frame, depending on the reception timing of the data frame and the reception timing of the target data frame for each data frame in the set It is also possible to evaluate whether or not the target data frame is illegal and determine whether or not the target data frame is illegal based on the result of each evaluation. Accordingly, it may be possible to accurately determine whether or not the data frame is illegal comprehensively using the evaluation results based on the rules relating to the plurality of reception intervals.
  • the detection step for each data frame in a set of one or more data frames each having one or more identifiers different from the first identifier and the second identifier and the reference data frame, by a predetermined calculation based on a rule group including the predetermined rule that defines a reception interval between a data frame and the target data frame, a reception timing of each data frame in the set, and a reception timing of the target data frame, The evaluation may be performed by calculating the probability that the target data frame is invalid. Thereby, the probability that the data frame is illegal can be obtained.
  • the fraud detection method may further include a recording step for recording the result of the evaluation in the detection step on a storage medium.
  • the fraud detection electronic control unit is a fraud detection electronic control unit in an in-vehicle network system including a plurality of electronic control units that perform communication via a bus according to a CAN (Controller Area ⁇ ⁇ Network) protocol.
  • CAN Controller Area ⁇ ⁇ Network
  • a receiving unit that receives a data frame transmitted on the bus, a target data frame that is a data frame having a first identifier, and a reference data frame that is a data frame having a second identifier different from the first identifier;
  • a rule holding unit that holds rule information indicating a predetermined rule that defines a reception interval of the reference data frame, and a reception timing of the reference data frame and a reception timing of the target data frame based on the predetermined rule as fraud detection of the target data frame
  • a detector that performs evaluation according to It is a fraud detection electronic control unit.
  • a fraud detection system is a fraud detection system for fraud detection in an in-vehicle network system including a plurality of electronic control units that perform communication via a bus according to a CAN (Controller Area Network) protocol.
  • a receiving unit that receives a data frame transmitted on the bus, a target data frame that is a data frame having a first identifier, and a reference data frame that is a data frame having a second identifier different from the first identifier
  • a rule holding unit that holds rule information indicating a predetermined rule that defines a reception interval between the reference data frame and a reception timing of the reference data frame and reception of the target data frame based on the predetermined rule as fraud detection of the target data frame
  • a detection unit that performs evaluation according to the timing It is a fraud detection system. As a result, transmission of an illegal data frame can be detected appropriately.
  • the fraud detection method is a method of detecting that an illegal node is connected to a CAN bus and an illegal frame is transmitted, and is mainly executed by an fraud detection ECU connected to the bus.
  • the fraud detection ECU 100 in the in-vehicle network system 10 detects a fraudulent data frame based on a reception interval between data frames (messages) having two different identifiers (message IDs). Thereby, when an illegal data frame is transmitted, the possibility that a proper data frame having the same identifier (message ID) as the illegal data frame is erroneously detected as illegal is reduced.
  • FIG. 1 is a diagram illustrating an overall configuration of an in-vehicle network system 10 according to the first embodiment.
  • the in-vehicle network system 10 is an example of a network communication system that performs communication according to the CAN protocol, and is a network communication system in a vehicle on which various devices such as a control device, a sensor, an actuator, and a user interface device are mounted.
  • the in-vehicle network system 10 includes a plurality of devices that perform communication related to a frame via a bus, and uses a fraud detection method.
  • the in-vehicle network system 10 includes a bus 300, a fraud detection ECU 100, an ECU (automatic parking ECU) 200 a connected to various devices, an ECU (power steering ECU) 200 b, and an ECU (gear ECU).
  • the in-vehicle network system 10 may include a number of ECUs in addition to the fraud detection ECU 100 and the ECUs 200a, 200b, and 200c.
  • the ECU is a device including, for example, a processor (microprocessor), a digital circuit such as a memory, an analog circuit, a communication circuit, and the like.
  • the memory is a ROM, a RAM, or the like, and can store a control program (computer program) executed by the processor.
  • the processor operates according to a control program (computer program)
  • the ECU realizes various functions.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions for the processor in order to achieve a predetermined function.
  • the automatic parking ECU 200a, the power steering ECU 200b, and the gear ECU 200c are connected to the bus 300, and are connected to the camera 210, the handle (steering wheel) 220, and the gear (transmission mechanism) 230, respectively.
  • automatic parking ECU200a is connected to the touch panel 240, and receives operation of a passenger.
  • the automatic parking ECU 200a periodically transmits a data frame to the bus 300. Further, the operation of the touch panel 240 by the passenger shifts to the automatic parking mode, and transmits a signal indicating the steering angle of the handle 220 to the bus 300 while acquiring information of the camera 210.
  • the power steering ECU 200b receives the data frame on the bus 300 and, when there is a steering wheel instruction, bends the steering wheel 220 to a specified angle.
  • the gear ECU 200 c acquires the state of the gear 230 and periodically transmits a data frame that notifies the state of the gear 230 to the bus 300.
  • the fraud detection ECU 100 is a kind of ECU connected to the bus 300, and monitors data frames flowing on the bus (that is, data frames appearing on the bus) and conforms to fraudulent data frames (that is, predetermined rules). A fraud detection process for discriminating whether or not data frames are not flowing.
  • each ECU exchanges frames according to the CAN protocol.
  • Frames in the CAN protocol include a data frame, a remote frame, an overload frame, and an error frame.
  • the explanation will focus on data frames.
  • FIG. 2 is a diagram showing a data frame format defined by the CAN protocol.
  • a data frame in a standard ID format defined by the CAN protocol is shown.
  • the data frame includes an SOF (Start Of Frame), ID field, RTR (Remote Transmission Request), IDE (Identifier Extension), reserved bit “r”, DLC (Data Length Code), data field, CRC (Cyclic Redundancy Check) sequence.
  • SOF is composed of 1-bit dominant. When the bus is idle, it is recessive, and the start of frame transmission is notified by changing to dominant by SOF.
  • the ID field is a field for storing an ID (message ID) that is a value indicating the type of data, which is composed of 11 bits.
  • ID message ID
  • a frame having a small ID is designed to have a high priority in order to perform communication arbitration in this ID field.
  • RTR is a value for identifying a data frame and a remote frame, and is composed of a dominant 1 bit in the data frame.
  • IDE and “r” are both composed of dominant 1 bit.
  • DLC is composed of 4 bits and is a value indicating the length of the data field.
  • 4 bits for storing the DLC value in the data frame is also referred to as a DLC field.
  • the data field is a value indicating the content of data to be transmitted composed of a maximum of 64 bits. The length can be adjusted every 8 bits.
  • the specification of the data to be sent is not defined by the CAN protocol, but is defined in the in-vehicle network system 10. Therefore, the specification depends on the vehicle type, manufacturer (manufacturer), and the like.
  • CRC sequence consists of 15 bits. It is calculated from the transmission values of the SOF, ID field, control field and data field.
  • CRC delimiter is a delimiter representing the end of a CRC sequence composed of 1-bit recessive.
  • the CRC sequence and the CRC delimiter are collectively referred to as a CRC field.
  • ACK slot consists of 1 bit.
  • the transmitting node performs transmission with the ACK slot being recessive.
  • the receiving node transmits an ACK slot as a dominant if reception is successful up to the CRC sequence. Since dominant is given priority over recessive, if the ACK slot is dominant after transmission, the transmitting node can confirm that any receiving node has received successfully.
  • ACK delimiter is a delimiter representing the end of ACK composed of 1-bit recessive.
  • EOF is composed of 7 bits recessive and indicates the end of the data frame.
  • FIG. 3 is a diagram illustrating an error frame format defined by the CAN protocol.
  • the error frame includes an error flag (primary), an error flag (secondary), and an error delimiter.
  • the error flag (primary) is used to notify other nodes of the occurrence of an error.
  • a node that detects an error continuously transmits a 6-bit dominant to notify other nodes of the occurrence of the error. This transmission violates the bit stuffing rule in the CAN protocol (the same value is not transmitted continuously for 6 bits or more), and causes the transmission of an error frame (secondary) from another node.
  • the error flag (secondary) is composed of a continuous 6-bit dominant used to notify other nodes of the occurrence of an error. All nodes that have received the error flag (primary) and detected a violation of the bit stuffing rule will transmit the error flag (secondary).
  • the error delimiter “DEL” is an 8-bit continuous recess and indicates the end of the error frame.
  • FIG. 4 is a configuration diagram of the fraud detection ECU 100.
  • the fraud detection ECU 100 includes a transceiver unit 130, a controller unit 140, and a microcomputer unit 150.
  • the transceiver unit 130 is an electronic circuit such as a communication circuit.
  • the transceiver unit 130 converts the frame notified from the controller unit 140 into an electrical signal that can be transmitted to the bus 300, and transmits the electrical signal that appears on the bus 300, thereby receiving the contents of the received frame. 140 is notified.
  • the transceiver unit 130 functions as a receiving unit that receives a data frame transmitted on the bus 300.
  • the controller unit 140 is a semiconductor integrated circuit including a storage medium such as a digital circuit and a memory that exchanges signals with the microcomputer unit 150 and the transceiver unit 130.
  • the controller unit 140 includes a protocol processing unit 141.
  • the protocol processing unit 141 communicates with the transceiver unit 130 and performs processing according to a protocol (CAN protocol or the like). For example, when the protocol processing unit 141 detects an error with respect to a frame being received, the protocol processing unit 141 notifies the transceiver unit 130 of transmission of an error frame (that is, a transmission request) so that the transceiver unit 130 transmits the error frame. When the reception of the data frame is completed, the protocol processing unit 141 notifies the microcomputer unit 150 of the completion of the data frame reception. In response to the data frame transmission request from the microcomputer unit 150, the protocol processing unit 141 notifies the transceiver unit 130 so that the data frame can be transmitted according to the protocol. In addition, the protocol processing unit 141 gives the contents (ID, DLC, data, etc.) of the data frame appearing on the bus 300 acquired via the transceiver unit 130 to the microcomputer unit 150.
  • a protocol CAN protocol or the like
  • the microcomputer unit 150 is a semiconductor integrated circuit including a processor (microprocessor) for executing a program and a memory for exchanging signals with the controller unit 140.
  • the microcomputer unit 150 includes a controller communication unit 151, a fraud detection processing unit 152, a frame generation unit 153, a rule holding unit 154, and a timer holding unit 155 as components realized by a processor that executes a program, a memory, and the like. And a reception timing holding unit 156.
  • the controller communication unit 151 notifies the fraud detection processing unit 152 of the data frame received from the controller unit 140.
  • the controller communication unit 151 notifies the controller unit 140 of the data frame notified from the frame generation unit 153 and makes a data frame transmission request.
  • the fraud detection processing unit 152 functions as a detection unit that performs fraud detection processing on the data frame notified from the controller communication unit 151.
  • the fraud detection process is a process for evaluating fraud of a data frame transmitted on the bus 300, that is, a data frame appearing on the bus 300.
  • this data frame fraud evaluation is an evaluation of whether a data frame transmitted on the bus 300, that is, a data frame appearing on the bus 300 is fraud, that is, whether the data frame does not conform to a predetermined rule. It is to determine whether or not.
  • rule information indicating the fraud detection rule stored in the rule holding unit 154 With reference to the reception timing information indicating the past reception timing of the frame, it is determined whether or not the currently received data frame is illegal.
  • rules relating to reception intervals are mainly described as fraud detection rules.
  • fraud detection rules may include rules other than reception intervals.
  • the fraud detection processing unit 152 determines the reception timing when the ID (message ID) of the data frame being received is determined as the target of the fraud detection rule in the rule information of the rule holding unit 154.
  • a test is performed to determine whether or not it is within a range determined by a reception interval and a margin from a reception timing of another data frame that is a reference of the reception interval. If the reception timing of the received data frame is within the range based on the reception interval and margin indicated by the rule information, it is appropriate, and if it is outside this range, it is illegal. That is, the relationship between the two reception timings between the data frames is appropriate if it conforms to the fraud detection rule related to the reception interval and margin indicated by the rule information, and is invalid if it does not conform.
  • the fraud detection processing unit 152 notifies each ECU of the occurrence of fraud (that an invalid data frame has been transmitted).
  • the fraud detection processing unit 152 counts and records the accumulated number of times fraud is detected for each ID of the data frame when an illegal data frame is detected, and performs a comprehensive fraud determination for each ID data frame. It is good also as using for etc.
  • the fraud detection processing unit 152 may record log information (for example, ID of the illegal data frame, other contents, reception date / time) on the recording medium (storage medium) or the like. Control (display, information transmission to a server device located outside the vehicle, etc.) may be performed.
  • the frame generation unit 153 notifies the controller communication unit 151 of a data frame transmission request including information regarding the fraudulent data frame.
  • the rule holding unit 154 holds rule information (see FIG. 5) indicating a fraud detection rule that is a rule (rule) of a communication interval (reception interval) between data frames referred to by the fraud detection processing unit 152.
  • the timer holding unit 155 holds information indicating the current timing (current time) measured based on a timing mechanism such as a counter, and is referred to by the fraud detection processing unit 152 to acquire the timing at which the data frame is received. .
  • the current timing may be measured based on what time, for example, the time when power supply to the fraud detection ECU 100 is started can be counted as zero.
  • the reception timing holding unit 156 holds reception timing information obtained by recording the reception timing of data frames received in the past for each ID.
  • the reception timing information (see FIG. 6) is referred to by the fraud detection processing unit 152, and is used to determine whether or not the currently received data frame is illegal.
  • FIG. 5 is a diagram illustrating an example of rule information indicating fraud detection rules held by the rule holding unit 154.
  • the example in the figure shows the reception interval for the data frame whose ID (message ID) is 0x100.
  • the fraud detection ECU 100 performs fraud detection based on a reception interval between a data frame (referred to as a reference data frame) that is not subject to inspection (fraud detection) and a data frame that is subject to fraud detection (referred to as a target data frame). Do.
  • the fraud detection ECU 100 performs fraud detection on a target data frame having an ID of 0x100 based on a reception interval between a reference data frame having an ID of 0x200 and a target data frame having an ID of 0x100. It will be. If the reception timing of the target data frame with ID 0x100 is after the reception interval of 25 ms has elapsed from the reception timing of the reference data frame (in this example, the data frame with ID 0x200), the target data frame with ID 0x100 Is appropriate.
  • a margin of plus or minus 3 ms is determined for the reception interval of 25 ms. Note that, when a collision between data frames occurs on the bus 300, one retransmission interval is shorter than 1 ms, for example.
  • the reception interval between the reference data frame with ID 0x200 and the target data frame with 0x100 is within the range of 22 ms to 28 ms, it is determined that the target data frame is appropriate. It is determined to be illegal.
  • the fraud detection rule relating only to the data frame with the ID of 0x100 is shown, but the fraud detection rule for each data frame of a plurality of IDs may be defined.
  • the rule information has shown the example showing the fraud detection rule which prescribed
  • the ID of is not limited to one, but may be two or three or more.
  • the fraud detection processing unit 152 can use an arbitrary number of rules for fraud detection.
  • the fraud detection rule does not include the reception interval between target data frames with ID 0x100.
  • the fraud detection rule also applies to the reception interval (for example, 50 ms) of data frames with ID 0x100. May be included.
  • the content of the rule information may be encrypted and held.
  • FIG. 6 is a diagram illustrating an example of reception timing information stored in the reception timing holding unit 156.
  • This reception timing information is obtained by recording the reception timing of the data frame received by the fraud detection ECU 100 in the past with reference to the current timing of the timer holding unit 155 for each ID.
  • the example of FIG. 6 indicates that the timing when the data frame whose ID (message ID) is 0x100 is received last time is 201 ms, and the timing when the data frame whose ID is 0x200 is received last time is 176 ms.
  • FIG. 7 is a configuration diagram of an ECU (automatic parking ECU) 200a.
  • the ECU 200a includes a transceiver unit 130, a controller unit 140, and a microcomputer unit 250.
  • transceiver unit 130 and the controller unit 140 are the same as the transceiver unit 130 and the controller unit 140 in the fraud detection ECU 100 (see FIG. 4), description thereof is omitted.
  • the microcomputer unit 250 is a semiconductor integrated circuit including a processor and a memory that exchanges signals with the controller unit 140 and executes programs.
  • the microcomputer unit 250 includes a controller communication unit 151, a frame processing unit 252, a frame generation unit 253, and an external device input / output unit 254 as components realized by a processor that executes a program, a memory, and the like.
  • the controller communication unit 151 is the same as the controller communication unit 151 in the fraud detection ECU 100 (see FIG. 4). However, the controller communication unit 151 of the ECU 200a notifies the frame processing unit 252 of the data frame received from the controller unit 140. The controller communication unit 151 notifies the controller unit 140 of the data frame notified from the frame generation unit 253 and makes a data frame transmission request.
  • the frame processing unit 252 processes the data frame notified from the controller communication unit 151 and notifies the external device input / output unit 254 of the result.
  • the frame generation unit 253 generates a data frame (see FIG. 8) based on the value notified from the external device input / output unit 254, and notifies the controller communication unit 151 of the data frame.
  • External device input / output unit 254 communicates with an external device connected to ECU 200a. That is, the external device input / output unit 254 receives an instruction to shift to the automatic parking mode in response to an operation from the touch panel 240, acquires information indicating the periphery of the vehicle photographed from the camera 210, and notifies the frame generation unit 253 of the information.
  • the power steering ECU 200b and the gear ECU 200c have the same configuration as the automatic parking ECU 200a described above.
  • the external device input / output unit 254 in the power steering ECU 200b notifies the handle 220 connected to the power steering ECU 200b of a control signal (signal for performing steering) based on the value notified from the frame processing unit 252.
  • the external device input / output unit 254 in the gear ECU 200c acquires the state of the gear 230 and notifies the frame generation unit 253 of it.
  • FIG. 8 is a diagram illustrating an example of an ID (message ID) and a data field (data) for a data frame to be transmitted.
  • FIG. 8A is an example of a data frame transmitted by the automatic parking ECU 200a
  • FIG. 8B is an example of a data frame transmitted by the gear ECU 200c.
  • the message ID of the data frame transmitted by the automatic parking ECU 200a is “0x100”, and the DLC is “4” (4 bytes).
  • the first byte of the data field indicates the mode, and the value becomes 1 in the automatic parking mode.
  • the data field value after the second byte is invalid.
  • the second byte of the data field indicates in which direction the handle 220 is bent in the automatic parking mode. When this value is 0, the handle 220 is bent to the right, and when this value is 1, the handle 220 is bent to the left.
  • the angle when the handle 220 is bent by 2 bytes, including the 3rd byte and the 4th byte of the data field, is represented.
  • the example of (a) of FIG. 8 is an automatic parking mode, and shows that the handle 220 is bent 256 (0x100) degrees to the right.
  • the message ID of the data frame transmitted by the gear ECU 200c is “0x200”, and the DLC is “1” (1 byte).
  • the data field includes a value indicating the state of the gear 230. This value is “0” if the gear 230 is in the neutral state, “1” if the gear 230 is in the reverse state, and “2” if the gear 230 is in the drive state.
  • the example of FIG. 8B indicates that the gear 230 is in the reverse state.
  • FIG. 9 is a diagram illustrating an example in which the fraud detection ECU 100 receives data frames that sequentially appear on the bus 300 and performs fraud detection.
  • the automatic parking ECU 200a periodically transmits data frames F2, F5, and F8 with ID 0x100
  • the gear ECU 200c periodically transmits data frames F1, F4, and F7 with ID 0x200. It shows a state of appearing sequentially at 300.
  • an attacker illegal ECU who can access the bus 300 periodically transmits illegal data frames F3, F6, and F9 having an ID of 0x100 to the bus 300 to perform illegal control of the handle 220. Represents the situation being attempted.
  • the fraud detection ECU 100 performs fraud evaluation (specifically, determination as to whether or not the data frame has an ID of 0x100) as fraud detection (inspection). Although not shown in FIG. 9, the fraud detection ECU 100 can perform fraud detection (evaluation on fraud) for data frames with IDs other than 0x100.
  • the fraud detection ECU 100 holds the timing at which the data frame F1 with ID 0x200 is received as reception timing information. Next, the fraud detection ECU 100 determines that the reception timing of the data frame F2 with ID 0x100 is the reception timing of the data frame F1 with ID 0x200 (the reception timing information is based on the fraud detection rule of the rule information held by the rule holding unit 154. Whether it is within a range T1 of 22 ms to 28 ms from the timing shown in FIG. The range T1 represents a time zone with a margin of 3 ms before and after the reception interval 25 ms indicated by the rule information (see FIG. 5) with the reception timing of the data frame F1 as a reference.
  • the data frame F2 with ID 0x100 transmitted by the automatic parking ECU 200a is received at the timing within the range T1, it is determined that it is an appropriate data frame.
  • the data frame F3 with ID 0x100 transmitted by the next receiving attacker is illegal because it is outside the range T1 as a result of discrimination inside or outside the range T1 (that is, whether or not it is illegal). Is determined.
  • the fraud detection ECU 100 holds the timing at which the data frame F4 with ID 0x200 is received, and the reception timing of the data frame F5 with ID 0x100 is in the range T2 from 22 ms to 28 ms from the reception timing of the data frame F4.
  • the data frame F5 is determined to be appropriate because it is within the range T2
  • the next received data frame F6 with ID 0x100 is determined to be invalid because it is outside the range T2.
  • the fraud detection ECU 100 determines that the data frame F8 with ID 0x100 received within the range T3 is appropriate based on the reception interval from the reception timing of the data frame F7 with ID 0x200, and is outside the range T3.
  • the data frame F9 whose ID is 0x100 is determined to be invalid.
  • the fraud detection ECU 100 receives a data frame from the bus 300 (step S1101).
  • the fraud detection ECU 100 checks whether or not the received data frame ID is 0x100 based on the rule information held by the rule holding unit 154 (step S1102), and if the received data frame ID is not 0x100, It is confirmed whether it is 0x200 (step S1103).
  • step S1103 When it is confirmed in step S1103 that the ID is 0x200, the fraud detection ECU 100 obtains the current timing with reference to the timer holding unit 155 and is stored in the reception timing holding unit 156, and the data related to the ID of 0x200 The reception timing information indicating the frame reception timing is updated so as to indicate the current timing (step S1104), and the process is terminated.
  • step S1103 If it is confirmed in step S1103 that the ID is not 0x200, the fraud detection ECU 100 ends the process corresponding to reception of one data frame.
  • step S1102 fraud detection ECU 100 has a reception timing within the range of 22 ms to 28 ms after the reception of the data frame with ID 0x200. Whether or not (step S1105). That is, the fraud detection ECU 100 receives the reception timing of the data frame (reference data frame) whose ID is 0x200 indicated by the reception timing information stored in the reception timing holding unit 156 and the current timing by referring to the timer holding unit 155.
  • step S1106 It is checked whether or not the timing obtained by adding the reception interval (25 ms) with the data frame whose ID is 0x200 indicated by the rule information is within the range from the value obtained by subtracting the margin (3 ms) to the value obtained by adding the margin. If the reception timing of the data frame (target data frame) whose ID is 0x100 is not within the range based on the reception timing of the reference data frame, fraud detection ECU 100 determines that the target data frame is illegal. The process corresponding to reception of one data frame is finished (step S1106).
  • step S1105 if the reception timing of the target data frame with ID 0x100 is within the range determined by the specified reception interval and margin based on the reception timing of the reference data frame, fraud detection ECU 100 determines that the target data frame is appropriate. It is determined that That is, the fraud detection ECU 100 determines that the target data frame is appropriate when it conforms to the fraud detection rule that defines an appropriate range of the reception interval, and is invalid when it does not conform. Then, the fraud detection ECU 100 refers to the timer holding unit 155 and updates the reception timing information indicating the reception timing of the data frame whose ID is 0x100, stored in the reception timing holding unit 156, to indicate the current timing. In step S1107, the processing corresponding to reception of one data frame is completed.
  • FIG. 10 shows an example in which fraud detection is mainly performed on a data frame with an ID of 0x100, but the fraud detection ECU 100 also performs fraud detection on a data frame with another ID as a fraud detection process. obtain.
  • the reception timing information updated in step S1107 and indicating the reception timing of the data frame with ID 0x100 is, for example, fraud detection other than the example of FIG. 10 (for example, an inspection related to the reception interval between data frames with ID 0x100) Alternatively, it can be used for use as a reference for inspection of data frames of other IDs).
  • the fraud detection process by the fraud detection ECU 100 includes a reception step (step S1101) for receiving the data frame transmitted on the bus 300.
  • the fraud detection process is a data frame having a second identifier (for example, ID of 0x200) different from the first identifier as fraud detection of the target data frame that is a data frame having the first identifier (for example, ID of 0x100).
  • a predetermined rule that defines a reception interval between the reference data frame and the target data frame that is, a fraud detection rule indicated by the rule information
  • an evaluation is performed according to the reception timing of the reference data frame and the reception timing of the target data frame (A detection step (for example, steps S1102, S1105, S1106, etc.) is performed.
  • the fraud detection process may include a recording step of recording the evaluation result in the detection step on a storage medium.
  • the fraud detection ECU 100 has a data frame that is a target of evaluation regarding data frame fraud (determination of whether or not fraud is performed) and an ID (message ID) that is different from the data frame. The evaluation is performed based on the reception interval with the data frame having).
  • the legitimate data frame is determined to be fraudulent.
  • the possibility of being reduced is reduced.
  • a data frame that is estimated to be highly likely not to be an illegal attack target is defined as a reference data frame that serves as a reference for the reception interval.
  • a plurality of fraud detection rules are provided, and a comprehensive evaluation is performed based on each reception interval between each of a plurality of reference data frames and the target data frame ( If it is determined whether the target data frame is illegal or not, there is a possibility that the evaluation regarding the target data frame may be evaluated with higher accuracy.
  • the in-vehicle network system 11 uses a fraud detection method that switches a data frame that is a reference of a reception interval for a data frame that is a fraud detection target.
  • the fraud detection ECU 2100 in the in-vehicle network system 11 first determines whether the fraud is based on the reception interval between the data frames having the same ID, and if it is determined to be fraud, another fraud is not detected. It is determined whether the data frame is illegal based on the reception interval based on the data frame having the ID.
  • FIG. 11 is a diagram showing an overall configuration of the in-vehicle network system 11 according to the present embodiment.
  • the in-vehicle network system 11 includes a bus 300, a fraud detection ECU 2100, an ECU (automatic parking ECU) 200a, an ECU (power steering ECU) 200b, an ECU (gear ECU) 200c, an ECU connected to various devices.
  • a fraud detection ECU 2100 an ECU (automatic parking ECU) 200a, an ECU (power steering ECU) 200b, an ECU (gear ECU) 200c, an ECU connected to various devices.
  • Vehicle speed ECU Each node connected to a bus such as each ECU such as 2200d is configured.
  • constituent elements having the same functions as those in the first embodiment are denoted by the same reference numerals and description thereof is omitted.
  • the in-vehicle network system 11 is the same as the in-vehicle network system 10 in that it is not particularly shown in the present embodiment.
  • the vehicle speed ECU 2200d is connected to the bus 300 and is connected to the vehicle speed sensor 2250.
  • the vehicle speed ECU 2200d has the same configuration as the automatic parking ECU 200a (see FIG. 7).
  • the external device input / output unit 254 in the vehicle speed ECU 2200d notifies the frame generation unit 253 to generate a data frame that notifies the current speed of the vehicle based on the signal notified from the vehicle speed sensor 2250.
  • vehicle speed ECU 2200d periodically transmits a data frame notifying the current speed of the vehicle to bus 300.
  • the fraud detection ECU 2100 is a kind of ECU connected to the bus 300, and performs a fraud detection process for monitoring a data frame flowing on the bus 300 and determining whether or not an illegal data frame is flowing.
  • FIG. 12 is a configuration diagram of the fraud detection ECU 2100.
  • the fraud detection ECU 2100 includes a transceiver unit 130, a controller unit 140, and a microcomputer unit 2150. Components having the same functions as those in the first embodiment are denoted by the same reference numerals and description thereof is omitted.
  • the microcomputer unit 2150 is a semiconductor integrated circuit including a processor that executes a program and a memory that exchanges signals with the controller unit 140.
  • the microcomputer unit 2150 includes a controller communication unit 151, a frame generation unit 153, a fraud detection processing unit 2152, a rule holding unit 2154, and a timer holding unit 155 as components realized by a processor that executes a program, a memory, and the like. And a reception state holding unit 2156.
  • the controller communication unit 151 notifies the fraud detection processing unit 2152 of the data frame received from the controller unit 140.
  • the fraud detection processing unit 2152 performs fraud detection processing on the data frame notified from the controller communication unit 151.
  • the fraud detection processing unit 2152 includes rule information indicating the fraud detection rule stored in the rule holding unit 2154 in the fraud detection processing, current timing information stored in the timer holding unit 155, and a reception state holding unit 2156. And the reception state information indicating the past reception state of the data frame and the like stored in the data frame to determine whether or not the currently received data frame is invalid.
  • the fraud detection processing unit 2152 determines the reception timing when the ID (message ID) of the data frame being received is determined as a fraud detection rule target in the rule information of the rule holding unit 154. Then, a test is performed to determine whether or not it is within the range determined by the reception interval and the margin from the reception timing of the data frame serving as the reference of the reception interval. If the reception timing of the received data frame is within the range based on the reception interval and margin indicated by the rule information, it is appropriate, and if it is outside this range, it is illegal. This range is an appropriate time zone for reception and is referred to as an appropriate reception time zone.
  • the fraud detection processing unit 2152 sends information on the illegal data frame to the frame generation unit 153 in order to notify each ECU of the occurrence of fraud. You can be notified.
  • the fraud detection processing unit 2152 detects an illegal data frame
  • the fraud detection unit 2152 counts and records the accumulated number of times fraud is detected for each ID of the data frame, and performs comprehensive fraud determination on the data frame of each ID. It is good also as using for etc.
  • the fraud detection processing unit 2152 may record log information (for example, illegal data frame ID and other contents, reception date and time) on the recording medium (storage medium) or the like. Control (display, information transmission to a server device located outside the vehicle, etc.) may be performed.
  • the rule holding unit 2154 holds rule information (see FIG. 13) indicating a fraud detection rule that is a rule (rule) of a communication interval (reception interval) between data frames referred to by the fraud detection processing unit 2152. Based on this fraud detection rule, the fraud detection processing unit 2152 identifies an appropriate reception time zone and determines whether the data frame is illegal depending on whether the data frame subject to fraud detection is within the appropriate reception time zone. Determine whether or not. The fraud detection processing unit 2152 identifies the appropriate reception time zone with reference to the reception state information stored in the reception state holding unit 2156.
  • the reception state holding unit 2156 holds reception state information (see FIG. 14). That is, the reception state holding unit 2156 holds the reception timing of the data frame received in the past for each ID of the data frame.
  • the reception state holding unit 2156 is a data frame that satisfies the fraud detection rule related to the reception interval stored in the rule holding unit 2154 (data frame received within the appropriate reception time zone) for fraud detection processing. The current timing is acquired with reference to the timer holding unit 155 and temporarily held as the next reception timing candidate.
  • the reception state holding unit 2156 holds a fraud occurrence state indicating whether fraud has occurred for each ID of the data frame.
  • next reception timing candidate when the next reception timing candidate is set to a state in which there is no candidate every time the end of the appropriate reception time period elapses, a plurality of data frames are included in the appropriate reception time period in which the timing value is already held as the next reception timing candidate.
  • the reception state holding unit 2156 also holds information on the previous reception interval from the reference data frame for each ID of the reference data frame.
  • the reception state information held by the reception state holding unit 2156 is referred to or updated by the fraud detection processing unit 2152, and is used to determine whether or not the currently received data frame is illegal.
  • FIG. 13 is a diagram illustrating an example of rule information indicating fraud detection rules held by the rule holding unit 2154.
  • the rule information shown in FIG. 5 in the first embodiment indicates one reception interval, whereas the reception interval and margin defined for data frames each having a plurality of IDs Is shown.
  • the rule information in FIG. 13 is that, for example, for a data frame with an ID of 0x100, the reception interval with a data frame with an ID of 0x100 is 50 ms, that is, the reception interval between data frames with the same ID is 50 ms. Is shown.
  • the reception appropriate time zone is from 47 ms, which is obtained by adding the reception interval (50 ms) to the reception timing of the immediately preceding data frame and subtracting the margin value, to 53 ms, where the margin value is added. Will do. If a data frame is received in the appropriate reception time zone, the received data frame is basically determined to be appropriate. However, if a plurality of data frames are received within the appropriate reception time zone, it is determined that an illegal data frame has been transmitted.
  • the rule information in FIG. 13 indicates that when a data frame having an ID of 0x100 is targeted for fraud detection (target data frame), a data frame having an ID of 0x200 is used as a reference data frame, and the reference data frame is received. It shows that the reception interval until the target data frame is received is 25 ms. Similarly, the reception proper time zone for the target data frame with ID 0x100 is between 22 ms and 28 ms after receiving the reference data frame with ID 0x200.
  • the rule information in FIG. 13 indicates that when a data frame with an ID of 0x100 is a target for fraud detection (target data frame), a data frame with an ID of 0x300 is used as a reference data frame and a reference data frame is received.
  • the notation “+2” indicates that the reception interval until the target data frame is received is a value obtained by adding 2 ms from the previous reception interval. That is, the reception interval changes with each reception, and in this example, the result of adding 2 ms to the previous reception interval is determined as the next reception interval.
  • the appropriate reception time zone for the next data frame with an ID of 0x100 is: From the reception timing of the data frame whose ID is 0x300, it is calculated that 9 ms to 15 ms have elapsed including a margin of plus or minus 3 ms in 12 ms obtained by adding 2 ms to 10 ms.
  • the range of the reception interval of 9 ms to 15 ms calculated is smaller than 0 or larger than the interval defined for the reference data frames (48 ms for the data frame whose ID is 0x300 as shown in FIG. 13).
  • the range of the reception interval is normalized so that it falls within the value from 0 to the specified reception interval.
  • the reception interval for the reference data frame received immediately before the data frame with ID 0x100 is adjusted. For example, in order to detect fraud of a data frame with an ID of 0x100, when checking the reception interval using a data frame with an ID of 0x300 as a reference data frame, if the previous reception interval is 47 ms, the next reception The interval is 49 ms obtained by adding 2 ms to 47 ms, but this exceeds 48 ms, which is the interval between data frames with ID 0x300. Therefore, the next reception interval is 1 ms obtained by subtracting 48 from 49.
  • the final reception proper time zone is set to a range after 0 to 4 ms and a range after 46 to 48 ms from the reception timing of the data frame of 0x300. Become.
  • the reception interval and margin used for fraud detection when the data frame with ID 0x200 and the data frame with ID 0x300 are targeted for fraud detection are similarly defined by the rule information.
  • FIG. 14 is a diagram illustrating an example of reception state information stored in the reception state holding unit 2156.
  • This reception state information is information in which, for each data frame ID, the reception timing of the data frame received in the past by the fraud detection ECU 2100 is recorded.
  • the previous reception timing is 151 ms
  • the next reception timing candidate is 201 ms
  • fraud occurs due to reception of multiple data frames in the appropriate reception time zone. (That is, the fraud occurrence state is “illegal”).
  • the reception interval between data frames with ID 0x100 is 51 ms
  • the reception interval between the data frame with ID 0x200 and the data frame with ID 0x100 is 25 ms
  • the ID is 0x300. This indicates that the reception interval between the data frame and the data frame whose ID is 0x100 is 10 ms.
  • the reception timing, the next reception timing candidate, the fraud occurrence state, and the previous reception interval are held.
  • the fact that the next reception timing candidate is in the state of “none” indicates that the data frame of the corresponding ID is not received in the appropriate reception time zone at present.
  • fraud detection processing unit 2152 updates the reception timing with the value of the next reception timing candidate in the reception state information, and then updates the next reception timing candidate to indicate “none”. .
  • FIG. 15 is a diagram illustrating an example of an ID (message ID) and a data field (data) for a data frame transmitted by the vehicle speed ECU 2200d.
  • the message ID of the data frame transmitted by the vehicle speed ECU 2200d is “0x300”, and the DLC is “1” (1 byte).
  • the data field includes a value indicating the vehicle speed, and the example of FIG. 15 indicates that the vehicle speed is 16 (0x10) km / h.
  • FIG. 16 is a diagram illustrating an example in which the fraud detection ECU 2100 receives data frames that sequentially appear on the bus 300 and performs fraud detection.
  • the automatic parking ECU 200a periodically transmits data frames F11, F13, F16, and F19 with an ID of 0x100
  • the gear ECU 200c periodically transmits data frames F12, F15, and F18 with an ID of 0x200.
  • an attacker illegal ECU who can access the bus 300 periodically transmits illegal data frames F14, F17, and F20 having an ID of 0x100 to the bus 300 to perform illegal control of the handle 220.
  • the fraud detection ECU 2100 performs fraud evaluation (specifically, determination as to whether or not the data frame has an ID of 0x100) as fraud detection (inspection).
  • fraud evaluation specifically, determination as to whether or not the data frame has an ID of 0x100
  • fraud detection ECU 2100 evaluates fraud of the data frame with ID 0x100, fraud occurs in the data frame that is the reference of the reception interval according to the fraud occurrence state (fault occurrence state).
  • An example of switching to a data frame having a non-identified ID is shown.
  • the fraud detection ECU 2100 can perform fraud detection (evaluation on fraud) for data frames with IDs other than 0x100.
  • the reception state information held by the reception state holding unit 2156 will be described assuming that the fraud occurrence state corresponding to each ID is “no fraud”.
  • the fraud detection ECU 2100 is the target in a situation in which fraud has not occurred (that is, the fraud occurrence state for each ID in the reception state information is “no fraud”) with respect to the data frame whose fraud detection target ID is 0x100.
  • the fraud is detected based on the reception interval based on the reception timing of the data frame having the same ID (0x100).
  • the order of selecting the ID of the data frame as a reference is the order of 0x100, 0x200, and 0x300.
  • the fraud detection ECU 2100 holds the timing at which the data frame F11 with ID 0x100 is received as the reception timing in the reception status information.
  • the fraud detection ECU 2100 receives the data frame F13 with the second ID of 0x100 transmitted from the automatic parking ECU 200a. Based on the fraud detection rule (see FIG. 13) indicated by the rule information, the fraud detection ECU 2100 specifies a range in which 47 ms to 53 ms have elapsed from the reception timing of the data frame F11 with ID 0x100 as the proper reception time zone T11, Since the reception timing of the data frame F13 is within the appropriate reception time zone T11, the data frame F13 is determined to be appropriate (not illegal).
  • the third time data frame F14 with ID 0x100 is transmitted by the attacker. Since the reception timing of the data frame F14 is within the range of the appropriate reception time zone T11, it is appropriate. However, since the fraud detection ECU 2100 has already received the data frame F13 having the same ID of 0x100 within the appropriate reception time zone T11, either the data frame F13 or the data frame F14 is illegal. The data frame having the ID of 0x100 is determined to have been fraudulent, and the fraud state of the data frame having the ID of 0x100 in the reception state information held by the reception state holding unit 2156 is updated to “illegal”.
  • the fraud detection ECU 2100 selects the data frame having the ID of 0x200 in the following order instead of 0x100 as the reference data frame.
  • an appropriate reception time zone is not determined based on a data frame having an ID of 0x100, which may be illegal, and the possibility of erroneously detecting a data frame as illegal is reduced.
  • the fraud detection ECU 2100 holds the timing at which the data frame F15 with ID 0x200 is received as the reception timing in the reception status information.
  • the fraud detection ECU 2100 receives the data frame F16 transmitted by the automatic parking ECU 200a and having the fourth ID of 0x100. Based on the fraud detection rule (see FIG. 13), the fraud detection ECU 2100 specifies a range in which 22 ms to 28 ms have elapsed from the reception timing of the data frame F15 with ID 0x200 as the proper reception time zone T12, and the data frame F16 Since the reception timing is within the range of the proper reception time zone T12, the data frame F16 is determined to be appropriate.
  • the fraud detection ECU 2100 receives the fifth data frame F17 transmitted by the attacker and whose ID is 0x100.
  • the fraud detection ECU 2100 determines that the data frame F17 is illegal because the reception timing of the data frame F17 is outside the range of the appropriate reception time zone T12.
  • the fraud detection ECU 2100 specifies the appropriate reception time zone T13 with reference to the reception timing of the data frame F18 with ID 0x200, and the data frame received by the automatic parking ECU 200a and received within the appropriate reception time zone T13. It is determined that F19 is appropriate, and the data frame F20 received by the attacker outside the proper reception time period T13 is determined to be illegal.
  • FIG. 17 is a diagram illustrating another example in which the fraud detection ECU 2100 receives data frames that sequentially appear on the bus 300 and performs fraud detection.
  • the automatic parking ECU 200a periodically transmits data frames F21, F26, F31, and F36 with ID 0x100
  • the gear ECU 200c periodically transmits data frames F24, F29, and F34 with ID 0x200.
  • the data frames F23, F28, F32, and F37 with ID 0x300 that are periodically transmitted by the vehicle speed ECU 2200d appear on the bus 300 sequentially.
  • an attacker illegal ECU who can access the bus 300 has an illegal data frame F22, F27, F33, F38 with an ID of 0x100 and an illegal data frame F25 with an ID of 0x200.
  • F30 and F35 are transmitted to indicate a situation in which unauthorized control of the handle 220 or the like is attempted.
  • the fraud detection ECU 2100 performs fraud evaluation (specifically, determination as to whether or not the data frame has an ID of 0x100) as fraud detection.
  • fraud evaluation specifically, determination as to whether or not the data frame has an ID of 0x100
  • the fraud detection ECU 2100 has an ID in which fraud has not occurred in the data frame used as a reference for the reception interval according to the fraud occurrence status.
  • An example of switching to a data frame is shown.
  • the fraud detection ECU 2100 can perform fraud detection on a data frame whose ID is other than 0x100.
  • the reception state information held by the reception state holding unit 2156 will be described assuming that the fraud occurrence state corresponding to each ID is “no fraud”.
  • the fraud detection ECU 2100 receives data frames F21 and F22 whose IDs are 0x100 for the first time and the second time, and receives a plurality of data frames in an appropriate reception time zone for the data frame whose ID is 0x100.
  • the reception status information held by the reception status holding unit 2156 updates the fraud occurrence status of the data frame whose ID is 0x100 to “abnormal”.
  • a data frame with an ID of 0x100 is no longer used as a reference data frame for determining an appropriate reception time zone related to the reception interval.
  • the order of selecting the ID of the data frame as a reference is 0x100, 0x200, and 0x300.
  • the fraud detection ECU 2100 receives the first and second data frames F24 and F25 whose ID is 0x200
  • the data frame with ID 0x200 is no longer used as the reference data frame for determining the appropriate reception time zone related to the reception interval, and then the data frame with ID 0x300 is selected as the reference. It will be.
  • the fraud detection ECU 2100 specifies the appropriate reception time zone T21 based on the reception timing with reference to the data frame F23 whose ID is 0x300, and within the appropriate reception time zone T21 for the data frame F26 whose ID is 0x100 for the third time. Whether it is illegal or not is discriminated based on whether it is received or not. Since the data frame F26 was received within the proper reception time zone T21, it is determined as appropriate.
  • the fraud detection ECU 2100 specifies the appropriate reception time zone T22 based on the reception timing with reference to the data frame F28 with ID 0x300, and the appropriate reception time zone T22 for the data frame F31 with ID 0x100. Since the data frame F33 was received outside the proper reception time zone T22, it is determined to be illegal. Further, the fraud detection ECU 2100 specifies the appropriate reception time zone T23 based on the reception timing with reference to the data frame F32 with ID 0x300, and the data frame F36 with ID 0x100 falls within the appropriate reception time zone T23. Since it has been received, it is determined to be appropriate, and the data frame F38 is determined to be illegal because it has been received outside the appropriate reception time period T23.
  • the data frames F23, F28, and F32 with ID 0x300 and the ID that is the fraud detection target is 0x100, which are standards for specifying the appropriate reception time zone.
  • the reception interval with the data frame changes every time a data frame with an ID of 0x100 is received (increases by 2 ms from 36 ms).
  • the fraud detection ECU 2100 receives a data frame from the bus 300 (step S2101).
  • the fraud detection ECU 2100 confirms whether or not the fraud detection rule related to the ID of the received data frame is defined based on the rule information (see FIG. 13) held by the rule holding unit 2154 (step S2102). When the fraud detection rule related to the frame ID is not defined, the processing corresponding to reception of one data frame is finished.
  • step S2102 if it is confirmed that the fraud detection rule related to the ID of the received data frame is defined, the fraud detection ECU 2100 receives the reception timing and the next reception timing candidate in the reception status information (see FIG. 14). Update is performed (step S2103).
  • step S2103 specifically, among all IDs whose next reception timing candidates in the reception status information are not “none”, the current timing obtained from the timer holding unit 155 is the end of the appropriate reception time period corresponding to the ID.
  • the fraud detection ECU 2100 sets the value of the next reception timing candidate to the reception timing in the reception status information (that is, the reception timing is updated with the value of the next reception timing candidate) and “None” is set. As shown, the next reception timing candidate is updated.
  • step S2103 the current timing obtained from the timer holding unit 155 out of all IDs for which the next reception timing candidate in the reception status information is not “none” has passed the end of the appropriate reception time period corresponding to the ID. If no ID exists, nothing is done.
  • the fraud detection ECU 2100 uses an ID for which fraud has not yet occurred (the fraud state of the reception state information is “no fraud”) as the ID of the data frame serving as a reference for specifying the appropriate reception time zone. ID) is selected (step S2104). This selection is performed based on, for example, a selection criterion (selection order, etc.) in the order of the ID value of the data frame related to the fraud detection rule indicated by the rule information (see FIG. 13). In this case, the ID is 0x100, 0x200, and 0x300 can be selected in this order.
  • the fraud detection ECU 2100 refers to the reception state information held by the reception state holding unit 2156 to acquire the reception timing of the data frame having the selected ID.
  • the fraud detection ECU 2100 refers to the fraud detection rule indicated by the rule information held by the rule holding unit 2154, and the reception is determined by the reception timing of the data frame serving as a reference having the selected ID and the ID of the received data frame.
  • An appropriate reception time zone is specified by calculation according to the interval and the margin (step S2105).
  • the fraud detection ECU 2100 determines whether the timing at which the data frame is received (that is, the current timing obtained from the timer holding unit 155) is within the appropriate reception time zone. If the timing at which the data frame is received is not within the appropriate reception time zone, fraud detection ECU 2100 determines that the received data frame is fraudulent (step S2107), and the data frame ID in the reception status information is determined. The fraud occurrence state is updated to indicate “abnormality” (step S2108), and the process ends.
  • fraud detection ECU 2100 receives the next reception timing corresponding to the ID of the received data frame in the reception status information. It is confirmed whether the candidate is “none” (step S2109). If the next reception timing candidate is not “none”, fraud detection ECU 2100 determines that the ID of the received data frame is illegal (step S2107), and indicates the fraud occurrence state for the ID of the data frame in the reception status information. Updating is performed to indicate “invalid” (step S2108), and the process ends. When the next reception timing candidate is not “none”, either the received data frame or the data frame received immediately before it is invalid.
  • the fraud detection ECU 2100 updates the fraud occurrence state in the reception state information to indicate “illegal” and receives a data frame having the same ID as the data frame ID related to the fraud. Do not use it as a standard for specifying the appropriate time zone.
  • step S2109 when it is confirmed that the next reception timing candidate corresponding to the received data frame ID in the reception state information is “none”, fraud detection ECU 2100 determines that the received data frame is appropriate. Then, the current timing is set to the next reception timing candidate for the ID of the data frame in the reception status information (step S2110), and the process is terminated. That is, in step S2110, fraud detection ECU 2100 updates the next reception timing candidate at the current timing obtained from timer holding unit 155, and ends the processing corresponding to reception of one data frame.
  • the fraud detection process by the fraud detection ECU 2100 includes a reception step (step S2101) for receiving the data frame transmitted on the bus 300.
  • a reception step for receiving the data frame transmitted on the bus 300.
  • whether the fraud detection process is the target data frame according to the reception timing interval between the target data frames as fraud detection of the target data frame that is the data frame having the first identifier (for example, ID of 0x100).
  • Including an initial detection step for evaluating whether or not eg, steps S2102 to S2106).
  • this initial detection step as a fraud detection of the target data frame, when the reception timing of the target data frame is outside the appropriate time zone determined in advance with reference to the reception timing of the target data frame preceding the reception timing, And, if the reception timing of the target data frame is within the proper reception time zone and another target data frame is received at a timing within the proper reception time zone, it is evaluated as illegal (step S2109, S2107, S2108). Then, after it is evaluated that the target data frame is illegal in the initial detection step, fraud detection in the initial detection step is stopped, and fraud detection is started in the detection step in which the standard of the appropriate reception time zone is switched.
  • a predetermined rule that is, a fraud detection rule indicated by the rule information
  • a predetermined rule that is, a fraud detection rule indicated by the rule information
  • the fraud detection process includes a reference detection step (for example, steps S2106, S2109, etc.) for performing fraud detection of the reference data frame.
  • the fraud detection process when the reference data frame is detected as illegal in the reference detection step, The fraud detection at the detection step is stopped, and the fraud detection at the subsequent detection step is started.
  • the reception interval between another reference data frame that is a data frame having a third identifier (for example, ID of 0x300) different from the first identifier and the second identifier and the target data frame Is evaluated according to the reception timing of another reference data frame and the reception timing of the target data frame (for example, steps S2102 to S2107).
  • the fraud detection process may include a recording step of recording the evaluation result in the detection step on a storage medium.
  • the fraud detection ECU 2100 has not yet detected the data frame targeted for evaluation (determination of fraud or the like) regarding the fraud of the data frame and the occurrence of fraud.
  • the evaluation is performed based on the reception interval from the reference data frame.
  • another data frame is selected and used as a reference. That is, the fraud detection ECU 2100 performs determination related to the fraud of the data frame based on the reception interval between the data frame in which no fraud has occurred and the data frame that is the target of fraud detection.
  • Embodiments 1 and 2 have been described as examples of the technology according to the present disclosure.
  • the technology according to the present disclosure is not limited to this, and can also be applied to embodiments in which changes, replacements, additions, omissions, and the like are appropriately performed.
  • the following modifications are also included in one embodiment of the present disclosure.
  • fraud detection processing units 152 and 2152 have been described as the constituent elements of the fraud detection ECUs 100 and 2100 in the above-described embodiment, the fraud detection processing units 152 and 2152 may also be constituent elements of other ECUs. Etc.) may be performed by any ECU.
  • the data frame in the CAN protocol is described in the standard ID format, but it may be in the extended ID format.
  • the extended ID format the base ID of the ID position in the standard ID format and the extended ID are combined to represent the ID of the data frame with 29 bits.
  • fraud detection ECUs 100 and 2100 hold the reception timing of the data frame and confirm that the reception interval with a margin has elapsed from the reception timing.
  • the reception timing may not be held.
  • the reception interval may be confirmed by setting the reception interval in a timer that counts down.
  • the fraud detection ECUs 100 and 2100 detect that the data frame is fraudulent, the fraud detection is notified to each ECU, and the cumulative number of frauds detected is counted. Recording, recording log information, notifying fraud, etc., any other processing may be performed. For example, when an illegal frame is detected during reception of a data frame, an invalid frame is invalidated by transmitting an error frame to the bus 300 so that each ECU does not normally process the illegal frame.
  • the reception timing of the fraud detection target data frame is compared with an appropriate reception time zone group in which all the appropriate reception time zones are superimposed.
  • the reception timing of the fraud detection target data frame has a lower probability of being fraud at a time with a higher degree of duplication of the proper reception time zone in the proper reception time zone group, and the duplication degree is low or any appropriate reception time. It can be evaluated that the time that is not a band is more likely to be fraudulent. For example, this evaluation is based on a fraud detection rule (see FIG.
  • fraud accuracy is calculated by a predetermined calculation based on the reception timing of a fraud detection target data frame.
  • the content of the predetermined calculation for calculating the accuracy of fraud can be arbitrarily determined.
  • the determination as to whether or not the data frame is illegal may also be performed by obtaining the appropriate reception time zone based on the data frames of a plurality of IDs included in the fraud detection rule (see FIG. 13).
  • the evaluation result of whether or not the reception timing of the fraud detection target data frame is included in the appropriate reception time zone (that is, the evaluation result of whether or not the data frame is illegal) is integrated, and finally, for example, by majority decision It may be determined whether or not the fraud detection target data frame is fraudulent. In addition to the majority decision, for example, when the reception timing of the data frame subject to fraud detection is not included in all of the plurality of proper reception time zones, it may be determined to be fraudulent.
  • the order in which the ID value is small is exemplified as the selection order of the data frame (that is, the ID of the data frame) that serves as a reference for identifying the appropriate reception time zone in the fraud detection process.
  • This order may be determined by other methods. For example, the IDs may be selected in descending order of the ID value from among the IDs in which fraud has not occurred. Further, the selection may be made with a condition that the ID value is larger or smaller than the ID of the fraud detection target data frame. Further, the ID value may be selected in the order close to the ID value of the fraud detection target data frame.
  • the reception intervals defined for the reference data frames may be selected in the order closer to the reception intervals between the fraud detection target data frames.
  • the order in which the ID value is small is exemplified as the selection order of the data frame (that is, the ID of the data frame) that serves as a reference for specifying the appropriate reception time zone in the fraud detection process. It is not necessary to order. For example, an ID may be selected at random, or the selected ID may be periodically changed (for example, changed to a randomly selected ID). Moreover, you may switch ID to select according to the state of the present vehicle (vehicle in which each ECU is mounted). That is, the ID selection may be switched when the state of the vehicle changes based on a predetermined selection criterion for the ID of the data frame to be selected for each state of the vehicle.
  • the state of the vehicle is a stopped state, a traveling state, or the like.
  • Various states that can be identified by sensors, devices, and the like mounted on the vehicle can be used as the vehicle state.
  • the state in which the ignition key is inserted into the ignition key cylinder the state where the engine is started, the state of the gear position (for example, parking, neutral, 1st speed, 2nd speed, etc.), the state of the network load such as the bus 300, etc. It can be used as a state.
  • the state of the vehicle may be distinguished based on a change in the contents of the data frame flowing on the bus 300, the necessity of fraud detection, or the like.
  • the reception timing of the data frame received first among the data frames received in the appropriate reception time zone is stored.
  • the value of the next reception timing candidate is set to the reception timing in the reception state information after the appropriate reception time zone has elapsed.
  • the reception timing in the reception status information which is the reference for the next appropriate reception time zone
  • the reception timing of the data frame received last in the data frame received in the appropriate reception time zone is set.
  • the reception timing of the data frame received at the closest timing when the reception interval indicated by the fraud detection rule has elapsed may be set.
  • the fraud occurrence state in the reception status information is “abnormal”, but a predetermined number within the proper reception time zone. Only when the above data frame is received, the fraud occurrence state may be set to “with fraud”.
  • the fraud occurrence state in the reception state information held in the reception state holding unit 2156 has been shown as an example in which the fraud occurrence state is not changed after being set to “with fraud” once. It may be changed to “no fraud” under certain conditions. For example, when it is confirmed a certain number of times that only one data frame having an ID corresponding to an appropriate reception time period has been received, the fraud occurrence state may be changed to “no fraud”, or periodically. The fraud occurrence state may be reset to “no fraud”.
  • the fraud detection rule indicated by the rule information held in the rule holding units 154 and 2154 in the above embodiment includes a rule related to the reception interval for each of a plurality of IDs. It is not necessary to specify a rule related to the reception interval for all IDs that can be used in a frame.
  • the fraud detection rule is a rule that serves as a basis for evaluation (determination of fraud or the like) of data frame fraud other than the rule related to the reception interval for each data frame having all or some IDs. (For example, data length, restrictions on data field contents, etc.) may be included.
  • the state of fraud in the reception state information held in the reception state holding unit 2156 indicates the case where a plurality of corresponding data frames are received in the reception appropriate time zone, and the appropriate reception time.
  • An example of updating to “invalid” is shown when a data frame having an ID other than the band is received. This is merely an example. For example, when it is detected that a data frame that does not conform to the rules other than the reception interval is transmitted, the state of occurrence of fraud of the corresponding ID may be updated to “with fraud”.
  • the fraud detection processing is performed by the microcomputer units 150 and 2150.
  • the controller unit 140 may perform all or part of the fraud detection processing.
  • the reception timing in the reception status information is not updated until the appropriate reception time zone has passed in order to determine whether the data frame is appropriate or incorrect based on the reception interval.
  • the reception timing in the reception status information may be updated at the timing when the data frame is received within the time period. Further, the reception timing may not be updated every time a data frame is received within the appropriate reception time zone. For example, the reception proper time zone may be calculated by holding the reception count and multiplying the reception interval and the reception count related to the fraud detection rule indicated by the rule information. At this time, the number of receptions can be reset and the reception timing can be updated at an arbitrary timing.
  • the unit 140 may include one or more of rule holding units 154 and 2154, a timer holding unit 155, a reception timing holding unit 156, and a reception state holding unit 2156.
  • the appropriate reception time is from the value obtained by subtracting the margin from the reception interval indicated by the rule information in the rule holding unit 2154 to the value obtained by adding the margin to the reception interval.
  • it was a belt it is not limited to this.
  • all the time ranges after the value obtained by subtracting the margin from the reception interval indicated by the rule information may be set as the appropriate reception time zone.
  • a data frame flowing on the bus 300 is used as a data frame having an ID different from the ID, which serves as a reference for confirming the reception interval with the data frame having the fraud detection target ID.
  • the reference data frame may be a data frame for control or status notification to be sent on the bus 300, or may be a dummy data frame that has no use other than fraud detection.
  • the dummy data frame is periodically transmitted by any ECU, received by the fraud detection ECU, and need not be received by other than the fraud detection ECU.
  • the fraud detection ECU can perform fraud detection by specifying an appropriate reception time zone for the data frame of the fraud detection target ID based on the reception timing of the dummy data frame.
  • the fraud detection ECU uses a data frame having an ID different from the fraud detection target ID, which is separately transmitted by the ECU that transmits the data frame of the fraud detection target ID, as a data frame serving as a reference for fraud detection. It's also good.
  • the fraud detection ECU and the other ECUs in the above embodiment are devices including a digital circuit such as a processor and a memory, an analog circuit, a communication circuit, and the like, but a hard disk device, a display, a keyboard, Other hardware components such as a mouse may be included. Further, instead of the control program stored in the memory being executed by the processor and realizing the function in software, the function may be realized by dedicated hardware (digital circuit or the like).
  • a part or all of the components constituting each device in the above embodiment may be configured by one system LSI (Large Scale Integration).
  • the system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip.
  • the system LSI is a computer system including a microprocessor, a ROM, a RAM, and the like. .
  • a computer program is recorded in the RAM.
  • the system LSI achieves its functions by the microprocessor operating according to the computer program.
  • each part of the constituent elements constituting each of the above devices may be individually made into one chip, or may be made into one chip so as to include a part or the whole.
  • the system LSI is used here, it may be called IC, LSI, super LSI, or ultra LSI depending on the degree of integration.
  • the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, it is naturally also possible to carry out function block integration using this technology. Biotechnology can be applied as a possibility.
  • a part or all of the constituent elements constituting each of the above devices may be composed of an IC card that can be attached to and detached from each device or a single module.
  • the IC card or the module is a computer system including a microprocessor, a ROM, a RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above.
  • the IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • the execution order of the various processing procedures shown in the above embodiment is not necessarily limited to the order described above.
  • the execution order can be changed, a plurality of procedures can be performed in parallel, or a part of the procedures can be omitted without departing from the gist.
  • a fraud detection method including all or part of the fraud detection processing shown in FIG. 10 or FIG. 18 may be used.
  • the present invention may be a computer program that realizes this method by a computer, or may be a digital signal composed of the computer program.
  • a computer-readable recording medium such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, or a BD can be used as the computer program or the digital signal. (Blu-ray (registered trademark) Disc), recorded on a semiconductor memory or the like. Further, the digital signal may be recorded on these recording media.
  • the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network typified by the Internet, data broadcasting, or the like.
  • an aspect of the present disclosure may be a computer system including a microprocessor and a memory, the memory recording the computer program, and the microprocessor operating according to the computer program.
  • the program or the digital signal may be carried out by recording and transferring the program or the digital signal on the recording medium, or by transferring the program or the digital signal via the network or the like, by another independent computer system It may be carried out.
  • a fraud detection system including a part or all of the functions of the fraud detection ECU described above may be used.
  • the fraud detection system may be configured by, for example, an ECU (which may be a fraud detection ECU or another ECU) connected to a bus, a device (for example, a server device located outside the vehicle) that can communicate with the ECU, and the like.
  • the present disclosure can be used for appropriately detecting transmission of an illegal frame on a bus in an in-vehicle network according to CAN.
  • Fraud detection electronic control unit (fraud detection ECU) 130 transceiver unit 140 controller unit 141 protocol processing unit 150, 250, 2150 microcomputer unit 151 controller communication unit 152, 2152 fraud detection processing unit 153, 253 frame generation unit 154, 2154 rule holding unit 155 timer holding unit 156 reception timing holding unit 200a Electronic control unit (automatic parking ECU) 200b Electronic control unit (power steering ECU) 200c Electronic control unit (gear ECU) 210 Camera 220 Handle (steering wheel) 230 Gear (transmission mechanism) 240 touch panel 252 frame processing unit 254 external device input / output unit 300 bus 2156 reception state holding unit 2200d electronic control unit (vehicle speed ECU) 2250 Vehicle speed sensor

Abstract

CANプロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットは、バス上で送信されたデータフレームを受信する受信ステップを行うトランシーバ部と、第1識別子を有するデータフレームである対象データフレームの不正検知として、第1識別子と異なる第2識別子を有するデータフレームである基準データフレームと対象データフレームとの受信間隔を規定する所定ルールに基づいて、基準データフレームの受信タイミングと対象データフレームの受信タイミングとに応じて、評価を行う検知ステップを行う不正検知処理部とを備える。

Description

不正検知方法、不正検知電子制御ユニット及び不正検知システム
 本開示は、電子制御ユニットが通信を行う車載ネットワークにおける不正なフレームの送信を検知する技術に関する。
 近年、自動車の中のシステムには、電子制御ユニット(ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、ISO11898-1で規定されているCAN(Controller Area Network)という規格が存在する。
 CANでは、通信路は2本のバスで構成され、バスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信する送信ノードは、2本のバスに電圧をかけ、バス間で電位差を発生させることによって、レセシブと呼ばれる「1」の値と、ドミナントと呼ばれる「0」の値を送信する。複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームとは、ドミナントを6bit連続して送信することで、送信ノードや他の受信ノードにフレームの異常を通知するものである。
 またCANでは送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎にIDを付けて送信し(つまりバスに信号を送出し)、各受信ノードは予め定められたIDのフレームのみを受信する(つまりバスから信号を読み取る)。また、CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)方式を採用しており、複数ノードの同時送信時にはメッセージIDによる調停が行われ、メッセージIDの値が小さいフレームが優先的に送信される。
 CANの車載ネットワークシステムについては、攻撃者がバスにアクセスして不正なフレームを送信することでECUを不正に制御するといった脅威が存在し、セキュリティ対策が検討されている。
 例えば特許文献1に記載された車載ネットワーク監視装置は、CANのバスに送信されたフレームについて測定される受信間隔と予め規定された通信間隔との差が規定された基準範囲から外れる場合にそのフレームを不正と判断する不正検知方法を行う。
特許第5664799号公報
 本開示の一態様に係る不正検知方法は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、前記バス上で送信されたデータフレームを受信する受信ステップと、第1識別子を有するデータフレームである対象データフレームの不正検知として、当該第1識別子と異なる第2識別子を有するデータフレームである基準データフレームと当該対象データフレームとの受信間隔を規定する所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知ステップとを含む不正検知方法である。
 また、本開示の一態様に係る不正検知電子制御ユニット(不正検知ECU)は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットであって、前記バス上で送信されたデータフレームを受信する受信部と、第1識別子を有するデータフレームである対象データフレームと、前記第1識別子と異なる第2識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える不正検知電子制御ユニットである。
 また、本開示の一態様に係る不正検知システムは、CAN(Controller Area Network)プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知のための不正検知システムであって、前記バス上で送信されたデータフレームを受信する受信部と、第1識別子を有するデータフレームである対象データフレームと、前記第1識別子と異なる第2識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える不正検知システムである。
 本開示によれば、CANのバスに不正なノードが接続されて不正フレームが送信されたとしても適正なフレームを不正と誤検知する可能性が低減され、適切に不正なフレームの送信を検知し得るようになる。
図1は、実施の形態1に係る車載ネットワークシステムの全体構成を示す図である。 図2は、CANプロトコルで規定されるデータフレームのフォーマットを示す図である。 図3は、CANプロトコルで規定されるエラーフレームのフォーマットを示す図である。 図4は、実施の形態1に係る不正検知ECUの構成図である。 図5は、実施の形態1に係る不正検知ECUのルール保持部が保持するルール情報の一例を示す図である。 図6は、実施の形態1に係る不正検知ECUの受信タイミング保持部に格納される受信タイミング情報の一例を示す図である。 図7は、実施の形態1に係るECUの構成図である。 図8は、実施の形態1に係るECUが送信するデータフレームの一例を示す図である。 図9は、実施の形態1に係る不正検知ECUによるデータフレームの不正検知動作の一例を示す図である。 図10は、実施の形態1に係る不正検知ECUによるデータフレームの受信時の不正検知処理を示すフローチャートである。 図11は、実施の形態2に係る車載ネットワークシステムの全体構成を示す図である。 図12は、実施の形態2に係る不正検知ECUの構成図である。 図13は、実施の形態2に係る不正検知ECUのルール保持部が保持するルール情報の一例を示す図である。 図14は、実施の形態2に係る不正検知ECUの受信状態保持部が保持する受信状態情報の一例を示す図である。 図15は、実施の形態2に係るECUが送信するデータフレームの一例を示す図である。 図16は、実施の形態2に係る不正検知ECUによるデータフレームの不正検知動作の一例を示す図である。 図17は、実施の形態2に係る不正検知ECUによるデータフレームの不正検知動作の別の一例を示す図である。 図18は、実施の形態2に係る不正検知ECUによるデータフレームの受信時の不正検知処理を示すフローチャートである。
 (本発明の基礎となった知見)
 特許文献1の不正検知方法によれば、予め規定された通信間隔に基づく基準範囲内に複数のフレームを受信した場合において、その複数のフレームに攻撃者による不正なフレームが含まれている可能性がある。基準範囲内のその不正なフレームの受信タイミングを基にして、次回に受信するフレームの判断のために規定の通信間隔に基づく基準範囲を定めると、結果的に、適正なフレームが不正と判断され得るようになってしまう。
 本開示は、予め規定された通信間隔の誤差範囲内に不正なフレームを受信した場合にも適正なフレームを不正と誤検知する可能性を低減させ、適切に不正検知を行い得る不正検知方法を提供する。また、本開示は、その不正検知方法を実現可能なECUである不正検知電子制御ユニット(不正検知ECU)、及び、その不正検知方法を実現する不正検知システムを提供する。
 本開示の一態様に係る不正検知方法は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、前記バス上で送信されたデータフレームを受信する受信ステップと、第1識別子を有するデータフレームである対象データフレームの不正検知として、当該第1識別子と異なる第2識別子を有するデータフレームである基準データフレームと当該対象データフレームとの受信間隔を規定する所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知ステップとを含む不正検知方法である。これにより、不正検知対象の識別子(ID)のデータフレームと異なるIDのデータフレームを受信間隔の基準とするので、バスに不正なノードが接続されて不正なデータフレームが送信されたとしても適正なデータフレームを不正と誤検知する可能性が低減され、適切に不正なデータフレームの送信を検知し得るようになる。
 また、前記検知ステップでは、前記対象データフレームの受信タイミングと前記基準データフレームの受信タイミングとの関係が前記所定ルールに適合する場合に前記対象データフレームが不正でないと評価し、前記関係が前記所定ルールに適合しない場合に前記対象データフレームが不正であると評価することとしても良い。これにより、不正検知対象のデータフレームが不正であるか否かについて択一評価による検査が可能となる。なお、この評価結果単独又は他の評価等との組み合わせにより、不正検知対象のデータフレームが不正か否かの決定が可能となる。
 また、前記所定ルールは、前記受信間隔の適正範囲を規定し、前記検知ステップでは、前記対象データフレームの受信タイミングと、当該受信タイミングに先行する前記基準データフレームの受信タイミングとの差が前記適正範囲内である場合に前記所定ルールに適合するとして前記評価を行うこととしても良い。これにより、データフレームの受信間隔が許容誤差の範囲内であれば不正としないような評価が可能となる。
 また、前記不正検知方法は更に、前記対象データフレームの不正検知として、当該対象データフレームの受信タイミングと、当該受信タイミングに先行する前記対象データフレームの受信タイミングとの間隔に応じて、当該対象データフレームが不正であるか否かを評価する初期検知ステップを含み、前記不正検知方法は、前記検知ステップでの前記不正検知に先行して、前記初期検知ステップでの前記不正検知を行い、前記初期検知ステップで前記対象データフレームが不正であると評価された後に、前記初期検知ステップでの前記不正検知を停止して、前記検知ステップでの前記不正検知を開始することとしても良い。これにより、不正検知対象のデータフレーム同士の受信間隔に基づく不正検知を継続することが適切でない状態の発生に対応して、不正検知のための受信間隔の基準を切り替えるので、適切な不正検知が可能となる。
 また、前記初期検知ステップでは、前記対象データフレームの不正検知として、当該対象データフレームの受信タイミングが、当該受信タイミングに先行する前記対象データフレームの受信タイミングを基準として予め定められた適正時間帯外である場合、及び、当該対象データフレームの受信タイミングが前記適正時間帯内でありかつ当該適正時間帯内のタイミングで別の前記対象データフレームが受信されていた場合には、不正であると評価することとしても良い。これにより、不正検知対象のデータフレーム同士の受信間隔に基づく不正検知を継続することが適切でない状態の発生から、不正検知のための受信間隔の基準が切り替えられるようになる。
 また、前記不正検知方法は更に、前記基準データフレームの不正検知を行う基準検知ステップと、前記対象データフレームの不正検知として、前記第1識別子及び前記第2識別子と異なる第3識別子を有するデータフレームである別基準データフレームと当該対象データフレームとの受信間隔を規定するルールに基づいて、前記別基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う後続検知ステップとを含み、前記不正検知方法は、前記基準検知ステップで前記基準データフレームが不正と検知された場合には、前記検知ステップでの前記不正検知を停止して、前記後続検知ステップでの前記不正検知を開始することとしても良い。これにより、不正検知のための受信間隔の基準となるデータフレームについての不正が検知された時から、基準となるデータフレームを変更して適切な不正検知を続行できるようになる。
 また、前記不正検知方法は、前記第1識別子と異なる複数の識別子のうち予め定められた選択基準に従って選択した1つの識別子を前記第2識別子と定めてから、前記検知ステップでの前記不正検知を開始し、前記第1識別子及び前記第2識別子と異なる複数の識別子のうち予め定められた前記選択基準に従って選択した1つの識別子を前記第3識別子と定めてから、前記後続検知ステップでの前記不正検知を開始することとしても良い。これにより、選択基準を予め適切に定めておけば、不正検知のための受信間隔の基準となるデータフレームについて不正が検知された場合に、基準を適切なデータフレームに変更して不正検知を続行できるようになる。
 また、前記不正検知方法は、前記第1識別子と異なる複数の識別子のうち、1つの識別子を有するデータフレームについて未だ不正が検知されていない当該識別子を、前記第2識別子として選択してから、前記検知ステップでの前記不正検知を行うこととしても良い。これにより、不正が検知されたことのあるデータフレームを不正検知のための受信間隔の基準として用いる場合に比べて、不正検知を適切に行うことが可能となる。
 また、前記不正検知方法は、前記第1識別子と異なる複数の識別子のうち、前記複数の電子制御ユニットが搭載される車両の状態に応じて1つの識別子を前記第2識別子として選択してから、前記検知ステップでの前記不正検知を行うこととしても良い。これにより、不正検知のための受信間隔の基準として車両の状態に適した基準を用いて適切に不正検知を行うことが可能となる。
 また、前記検知ステップでは、前記第1識別子及び前記第2識別子と異なる1つ以上の識別子それぞれを1対1に有する1つ以上のデータフレームと前記基準データフレームとの集合における各データフレームについて当該データフレームと前記対象データフレームとの受信間隔を規定する、前記所定ルールを含むルール群に基づいて、前記集合におけるデータフレーム毎に当該データフレームの受信タイミングと前記対象データフレームの受信タイミングとに応じて当該対象データフレームが不正か否かの評価を行い、各評価の結果に基づいて当該対象データフレームが不正か否かを決定することとしても良い。これにより、複数の受信間隔に係るルールそれぞれによる評価結果を用いて総合的にデータフレームが不正か否かについて精度良く判定を行うことが可能となり得る。
 また、前記検知ステップでは、前記第1識別子及び前記第2識別子と異なる1つ以上の識別子それぞれを1対1に有する1つ以上のデータフレームと前記基準データフレームとの集合における各データフレームについて当該データフレームと前記対象データフレームとの受信間隔を規定する、前記所定ルールを含むルール群と、前記集合における各データフレームの受信タイミングと、前記対象データフレームの受信タイミングとに基づく所定演算により、当該対象データフレームが不正である確度を算定することで前記評価を行うこととしても良い。これにより、データフレームが不正である確度が得られるようになる。
 また、前記不正検知方法は更に、前記検知ステップでの前記評価の結果を記憶媒体に記録する記録ステップを含むこととしても良い。これにより、データフレームについての不正検知に係る評価結果を活用した処理を実現し得る。
 また、本開示の一態様に係る不正検知電子制御ユニットは、CAN(Controller Area Network)プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットであって、前記バス上で送信されたデータフレームを受信する受信部と、第1識別子を有するデータフレームである対象データフレームと、前記第1識別子と異なる第2識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える不正検知電子制御ユニットである。これにより、バスに不正なノードが接続されて不正なデータフレームが送信されたとしても適正なデータフレームを不正と誤検知する可能性が低減され、適切に不正なデータフレームの送信を検知し得るようになる。
 また、本開示の一態様に係る不正検知システムは、CAN(Controller Area Network)プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知のための不正検知システムであって、前記バス上で送信されたデータフレームを受信する受信部と、第1識別子を有するデータフレームである対象データフレームと、前記第1識別子と異なる第2識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える不正検知システムである。これにより、適切に不正なデータフレームの送信を検知し得るようになる。
 なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD-ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
 以下、実施の形態に係る車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
 (実施の形態1)
 以下、本開示の実施の形態として、複数の電子制御ユニット(ECU)がバスを介して通信する車載ネットワークシステム10において用いられる不正検知方法について、図面を用いて説明する。
 不正検知方法は、CANのバスに不正なノードが接続されて不正なフレームが送信されることを検知する方法であり、主としてバスに接続された不正検知ECUにより実行される。車載ネットワークシステム10における不正検知ECU100は、互いに異なる2つの識別子(メッセージID)を有するデータフレーム(メッセージ)間の受信間隔を基にして不正なデータフレームを検知する。これにより、不正なデータフレームが送信された場合にその不正なデータフレームと同じ識別子(メッセージID)を有する適正なデータフレームを不正と誤検知する可能性を低減する。
 [1.1 車載ネットワークシステム10の全体構成]
 図1は、実施の形態1に係る車載ネットワークシステム10の全体構成を示す図である。
 車載ネットワークシステム10は、CANプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ、アクチュエータ、ユーザインタフェース装置等の各種機器が搭載された車両におけるネットワーク通信システムである。車載ネットワークシステム10は、バスを介してフレームに係る通信を行う複数の装置を備え、不正検知方法を用いる。具体的には図1に示すように車載ネットワークシステム10は、バス300と、不正検知ECU100、各種機器に接続されたECU(自動駐車ECU)200a、ECU(パワステECU)200b、ECU(ギアECU)200c等の各ECUといったバス300に接続された各ノードとを含んで構成される。なお、車載ネットワークシステム10には、不正検知ECU100及びECU200a、200b、200c以外にもいくつものECUが含まれ得るが、ここでは、便宜上不正検知ECU100及びECU200a、200b、200cに注目して説明を行う。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行される制御プログラム(コンピュータプログラム)を記憶することができる。例えばプロセッサが、制御プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 自動駐車ECU200a、パワステECU200b、ギアECU200cは、バス300と接続され、それぞれカメラ210、ハンドル(ステアリングホイール)220、ギア(変速機構)230に接続されている。また自動駐車ECU200aはタッチパネル240に接続されており、搭乗者の操作を受け付ける。自動駐車ECU200aは、周期的にバス300へ、データフレームを送信する。また搭乗者によるタッチパネル240の操作により、自動駐車モードへ移行し、カメラ210の情報を取得しながら、ハンドル220の操舵角を指示する信号をバス300に送信する。パワステECU200bは、バス300上のデータフレームを受信し、ハンドル操舵指示がある場合には、ハンドル220を指定された角度へ曲げる。ギアECU200cはギア230の状態を取得し、バス300へ、周期的にギア230の状態を通知するデータフレームを送信する。
 不正検知ECU100は、バス300に接続される一種のECUであり、バス上に流れるデータフレーム(つまりバス上に現れるデータフレーム)を監視して、不正なデータフレーム(つまり予め定められたルールに適合しないデータフレーム)が流れているか否かを判別するための不正検知処理を行う機能を有する。
 車載ネットワークシステム10においてはCANプロトコルに従って、各ECUがフレームの授受を行う。CANプロトコルにおけるフレームには、データフレーム、リモートフレーム、オーバーロードフレーム及びエラーフレームがある。ここではデータフレームを中心に説明する。
 [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で構成され、データフィールドの長さを示す値である。ここでは、データフレームにおけるDLCの値を格納する4bitをDLCのフィールドとも称する。
 データフィールドは、最大64bitで構成される送信するデータの内容を示す値である。8bit毎に長さを調整できる。送られるデータの仕様については、CANプロトコルで規定されておらず、車載ネットワークシステム10において定められる。従って、車種、製造者(製造メーカ)等に依存した仕様となる。
 CRCシーケンスは、15bitで構成される。SOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
 CRCデリミタは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。なお、CRCシーケンス及びCRCデリミタを合わせてCRCフィールドと称する。
 ACKスロットは、1bitで構成される。送信ノードはACKスロットをレセシブにして送信を行う。受信ノードはCRCシーケンスまで正常に受信ができていればACKスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にACKスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
 ACKデリミタは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。
 EOFは、7bitのレセシブで構成されており、データフレームの終了を示す。
 [1.3 エラーフレームフォーマット]
 図3は、CANプロトコルで規定されるエラーフレームのフォーマットを示す図である。エラーフレームは、エラーフラグ(プライマリ)と、エラーフラグ(セカンダリ)と、エラーデリミタとから構成される。
 エラーフラグ(プライマリ)は、エラーの発生を他のノードに知らせるために使用される。エラーを検知したノードはエラーの発生を他のノードに知らせるために6bitのドミナントを連続で送信する。この送信は、CANプロトコルにおけるビットスタッフィングルール(連続して同じ値を6bit以上送信しない)に違反し、他のノードからのエラーフレーム(セカンダリ)の送信を引き起こす。
 エラーフラグ(セカンダリ)は、エラーの発生を他のノードに知らせるために使用される連続した6ビットのドミナントで構成される。エラーフラグ(プライマリ)を受信してビットスタッフィングルール違反を検知した全てのノードがエラーフラグ(セカンダリ)を送信することになる。
 エラーデリミタ「DEL」は、8bitの連続したレセシブであり、エラーフレームの終了を示す。
 [1.4 不正検知ECU100の構成]
 図4は、不正検知ECU100の構成図である。不正検知ECU100は、トランシーバ部130と、コントローラ部140と、マイコン部150とを含んで構成される。
 トランシーバ部130は、通信回路等の電子回路である。トランシーバ部130は、コントローラ部140から通知されたフレームをバス300に送信可能な電気信号に変換し送信し、また、バス300に現れる電気信号を受信することで、受信したフレームの内容をコントローラ部140へ通知する。トランシーバ部130は、バス300上で送信されたデータフレームを受信する受信部として機能する。
 コントローラ部140は、マイコン部150及びトランシーバ部130と信号の授受を行う、デジタル回路及びメモリ等の記憶媒体を含む半導体集積回路である。コントローラ部140は、プロトコル処理部141を有する。
 プロトコル処理部141は、トランシーバ部130と通信を行い、プロトコル(CANプロトコル等)に従った処理を行う。プロトコル処理部141は、例えば受信中のフレームについてエラーを検知した場合は、トランシーバ部130にエラーフレームを送信させるべく、エラーフレームの送信(つまり送信要求)をトランシーバ部130に通知する。プロトコル処理部141は、データフレームの受信が完了した場合は、データフレームの受信完了をマイコン部150に通知する。プロトコル処理部141は、マイコン部150からのデータフレーム送信要求に対して、プロトコルに従ってデータフレームを送信できるようにトランシーバ部130に通知する。また、プロトコル処理部141は、トランシーバ部130を介して取得した、バス300に現れたデータフレームの内容(ID、DLC、データ等)をマイコン部150に与える。
 マイコン部150は、コントローラ部140と信号の授受を行う、プログラムを実行するプロセッサ(マイクロプロセッサ)及びメモリを含む半導体集積回路である。マイコン部150は、プログラムを実行するプロセッサ、メモリ等により実現される構成要素として、コントローラ通信部151と、不正検知処理部152と、フレーム生成部153と、ルール保持部154と、タイマ保持部155と、受信タイミング保持部156とを有する。
 コントローラ通信部151は、コントローラ部140から受信したデータフレームを、不正検知処理部152へ通知する。コントローラ通信部151は、フレーム生成部153から通知されたデータフレームを、コントローラ部140へ通知し、データフレーム送信要求を行う。
 不正検知処理部152は、コントローラ通信部151から通知されたデータフレームについて不正検知処理を行う検知部として機能する。不正検知処理は、バス300で送信されたデータフレームつまりバス300に現れたデータフレームの不正に関して評価する処理である。このデータフレームの不正に関する評価は、具体例としては、バス300で送信されたデータフレームつまりバス300に現れたデータフレームが不正であるか否かの評価、つまり予め定められたルールに適合しないか否かを判別することである。この不正検知処理においてルール保持部154に格納されている不正検知ルールを示すルール情報と、タイマ保持部155に格納されている現在タイミングの情報と、受信タイミング保持部156に格納されている、データフレームの過去の受信タイミングを示す受信タイミング情報とを参照して、現在受信したデータフレームが不正であるか否かを判別する。なお、ここでは説明の便宜上、不正検知ルールとして主に受信間隔に係るルールについて説明するが、不正検知ルールは、受信間隔以外のルールを含み得る。不正検知処理部152は、不正検知処理として、受信中のデータフレームのID(メッセージID)が、ルール保持部154のルール情報で不正検知ルールの対象として定められている場合に、その受信タイミングが、受信間隔の基準となる別のデータフレームの受信タイミングからの受信間隔及びマージンで定まる範囲内であるか否かを判別する検査を行う。受信したデータフレームの受信タイミングが、ルール情報が示す受信間隔及びマージンに基づく範囲内であれば、適正であり、この範囲外であれば不正となる。つまりデータフレーム間の両受信タイミングの関係が、ルール情報が示す受信間隔及びマージンに係る不正検知ルールに適合すれば適正であり、適合しなければ不正となる。なお、受信したデータフレームが不正であると判別(判定)した場合には、不正検知処理部152は、不正の発生(不正なデータフレームが送信されたこと)を各ECUに通知するために、フレーム生成部153に、その不正なデータフレームに関する情報を通知し得る。不正検知処理部152は、不正なデータフレームを検知した場合に、データフレームのID毎に不正が検知された累積回数をカウントして記録し、各IDのデータフレームについての総合的な不正の判断等に用いることとしても良い。また不正検知処理部152は、記録媒体(記憶媒体)等に、不正なデータフレームに関するログ情報(例えば不正なデータフレームのIDその他の内容、受信日時等)を記録することとしても良いし、不正を報知するための制御(表示、車両外部に所在するサーバ装置への情報送信等)を行っても良い。
 フレーム生成部153は、例えば不正検知処理部152から不正と判定したデータフレームに関する情報を通知された場合には、コントローラ通信部151に不正なデータフレームに関する情報を含むデータフレームの送信要求を通知する。
 ルール保持部154は、不正検知処理部152が参照する、データフレーム間の通信間隔(受信間隔)の規則(ルール)である不正検知ルールを示すルール情報(図5参照)を保持する。
 タイマ保持部155は、カウンタ等の計時機構に基づいて計時される現在タイミング(現在時刻)を示す情報を保持し、データフレームを受信したタイミングを取得するために不正検知処理部152により参照される。なお、現在タイミングは何時を基準として計時されても良く、例えば、不正検知ECU100に電力供給が開始された時等をゼロとして計時され得る。
 受信タイミング保持部156は、過去に受信したデータフレームの受信タイミングをID毎に記録してなる受信タイミング情報を保持する。受信タイミング情報(図6参照)は、不正検知処理部152から参照され、現在受信したデータフレームが不正であるか否かの判別に用いられる。
 [1.5 不正検知ルール]
 図5は、ルール保持部154が保持する、不正検知ルールを示すルール情報の一例を示す図である。同図の例は、ID(メッセージID)が0x100のデータフレームに関する受信間隔について示している。不正検知ECU100は、検査(不正検知)の対象でないデータフレーム(基準データフレームと称する)と、不正検知の対象であるデータフレーム(対象データフレームと称する)との受信間隔を基にして不正検知を行う。同図の例のルール情報によれば、不正検知ECU100は、IDが0x200の基準データフレームと、IDが0x100の対象データフレームの受信間隔によって、IDが0x100である対象データフレームの不正検知を行うことになる。IDが0x100の対象データフレームの受信タイミングが、基準データフレーム(この例ではIDが0x200のデータフレーム)の受信タイミングから、25msという受信間隔が経過した後であれば、IDが0x100の対象データフレームは適正である。
 バス300でデータフレーム間の衝突が生じた場合の調停(再送制御)による受信間隔のゆらぎを考慮して、25msという受信間隔についてプラスマイナス3msのマージンが定められている。なお、バス300でデータフレーム間の衝突が生じた場合の1回の再送間隔は例えば1msより短い。図5の例では、IDが0x200の基準データフレームと0x100の対象データフレームとの受信間隔が22ms~28msの範囲内であれば対象データフレームが適正であると判定され、その範囲外であれば不正であると判定される。
 この例では、IDが0x100のデータフレームのみに関する不正検知ルールの例を示したが、複数のIDそれぞれのデータフレームを対象とする不正検知ルールを定めておいても良い。また、ルール情報が、IDが0x100の対象データフレームに関して、1つのID(0x200)の基準データフレームに係る受信間隔を規定した不正検知ルールを表す例を示したが、基準データフレームとするデータフレームのIDは、1つに限られず、2つでも良いし、3つ以上あっても良い。また、ルール情報が、複数の基準データフレームそれぞれについてのID及び受信間隔に係るルールを示す場合に、不正検知処理部152は、任意の個数のルールを不正検知に用い得る。例えば、受信間隔に係るルールが5つあり、そのうち3つのルール(互いに異なる3つのIDの各データフレームを各基準データフレームとして各受信間隔を規定したルール)を不正検知に用いた場合に、3つのルールのいずれかを満たさない場合に、総合的に不正と判断しても良いし、3つのルールのいずれかが満たされると、総合的に適正であると判断しても良い。また、多数決により、不正検知に用いた3つのルールのうち2つ以上のルールに基づいて不正と判定した場合(2つ以上のルールに適合しない場合)に、総合的に不正であると判断し、2つ以上のルールに基づいて適正と判定した場合(2つ以上のルールに適合した場合)に、総合的に適正であると判断しても良い。また、図5の例では、IDが0x100の対象データフレーム同士の受信間隔を不正検知ルールに含めていないが、例えば、IDが0x100のデータフレームの受信間隔(例えば50ms)についても、不正検知ルールに含めても良い。なお、また、ルール情報の内容は、暗号化されて保持されても良い。
 [1.6 受信タイミング情報]
 図6は、受信タイミング保持部156に格納される、受信タイミング情報の一例を示す図である。この受信タイミング情報は、不正検知ECU100が過去に受信したデータフレームについての受信タイミングを、タイマ保持部155の現在タイミングを参照してID毎に記録したものである。図6の例は、ID(メッセージID)が0x100であるデータフレームを前回受信したタイミングは201msであり、IDが0x200であるデータフレームを前回受信したタイミングは176msであることを示している。
 [1.7 自動駐車ECU200aの構成]
 図7は、ECU(自動駐車ECU)200aの構成図である。ECU200aは、トランシーバ部130と、コントローラ部140と、マイコン部250とを含んで構成される。
 トランシーバ部130及びコントローラ部140は、不正検知ECU100(図4参照)におけるトランシーバ部130及びコントローラ部140と、同様であるため説明を省略する。
 マイコン部250は、コントローラ部140と信号の授受を行う、プログラムを実行するプロセッサ及びメモリを含む半導体集積回路である。マイコン部250は、プログラムを実行するプロセッサ、メモリ等により実現される構成要素として、コントローラ通信部151と、フレーム処理部252と、フレーム生成部253と、外部機器入出力部254とを有する。
 コントローラ通信部151は、不正検知ECU100(図4参照)におけるコントローラ通信部151と同様である。但し、ECU200aのコントローラ通信部151は、コントローラ部140から受信したデータフレームを、フレーム処理部252へ通知する。コントローラ通信部151は、フレーム生成部253から通知されたデータフレームを、コントローラ部140へ通知し、データフレーム送信要求を行う。
 フレーム処理部252は、コントローラ通信部151から通知されたデータフレームを処理して結果を外部機器入出力部254へ通知する。
 フレーム生成部253は、外部機器入出力部254から通知された値に基づいてデータフレーム(図8参照)を生成し、コントローラ通信部151に、データフレームを通知する。
 外部機器入出力部254は、ECU200aに接続される外部機器と、通信を行う。即ち、外部機器入出力部254は、タッチパネル240から操作に応じて自動駐車モードへの移行指示を受け付けて、カメラ210から撮影した車両周辺を示す情報を取得してフレーム生成部253に通知する。
 パワステECU200b及びギアECU200cも上述の自動駐車ECU200aと同様の構成を備える。但し、パワステECU200bにおける外部機器入出力部254は、パワステECU200bに接続されるハンドル220へ、フレーム処理部252から通知された値に基づいた制御信号(操舵を行うための信号)を通知する。また、ギアECU200cにおける外部機器入出力部254は、ギア230の状態を取得してフレーム生成部253に通知する。
 [1.8 データフレーム例]
 図8は、送信されるデータフレームについてのID(メッセージID)及びデータフィールド(データ)の一例を示す図である。
 図8で(a)は、自動駐車ECU200aが送信するデータフレームの例であり、(b)は、ギアECU200cが送信するデータフレームの例である。
 自動駐車ECU200aが送信するデータフレームのメッセージIDは「0x100」であり、DLCは「4」(4バイト)である。データフィールドの1バイト目はモードを示しており、自動駐車モードのときに値が1になる。自動駐車モードでないときには、2バイト目以降のデータフィールドの値は無効になる。データフィールドの2バイト目は自動駐車モードのときにハンドル220をどの方向に曲げるかを示す。この値が0の時は、ハンドル220を右に曲げ、この値が1の時は、ハンドル220を左に曲げる。データフィールドの3バイト目と4バイト目とを合わせた、2バイトでハンドル220を曲げるときの角度を表す。図8の(a)の例は、自動駐車モードであり、ハンドル220を右に256(0x100)度曲げることを示している。
 ギアECU200cが送信するデータフレームのメッセージIDは「0x200」であり、DLCは「1」(1バイト)である。データフィールドには、ギア230の状態を示す値が含まれる。この値は、ギア230がニュートラル状態であれば「0」となり、ギア230がリバース状態であれば「1」となり、ギア230がドライブ状態であれば「2」となる。図8の(b)の例は、ギア230がリバース状態であることを示している。
 [1.9 不正検知ECU100のデータフレームの不正検知の動作例]
 図9は、バス300に逐次現れるデータフレームを不正検知ECU100が受信して不正検知を行う例を示す図である。図9では、自動駐車ECU200aが周期的に送信する、IDが0x100のデータフレームF2、F5、F8と、ギアECU200cが周期的に送信する、IDが0x200のデータフレームF1、F4、F7とがバス300へ逐次現れる様子を表している。また、図9では、バス300にアクセス可能な攻撃者(不正ECU)が、バス300にIDが0x100の不正なデータフレームF3、F6、F9を周期的に送信して、ハンドル220の不正制御を試みている状況を表している。この例では、不正検知ECU100は不正検知(検査)として、IDが0x100のデータフレームについて不正に関する評価(具体的には不正か否かの判別)を行う。なお、図9では示さないが、不正検知ECU100は、IDが0x100以外のデータフレームを対象とした不正検知(不正に関する評価)を行い得る。
 不正検知ECU100は、IDが0x200のデータフレームF1を受信したタイミングを、受信タイミング情報として、保持する。次に不正検知ECU100は、ルール保持部154が保持するルール情報の不正検知ルールに基づき、IDが0x100のデータフレームF2の受信タイミングが、IDが0x200のデータフレームF1の受信タイミング(受信タイミング情報が示すタイミング)から22ms~28msの範囲T1内であるかを検査する。範囲T1は、データフレームF1の受信タイミングを基準として、ルール情報(図5参照)が示す受信間隔25msを中心として前後にマージン3msをとった時間帯を表す。自動駐車ECU200aが送信した、IDが0x100のデータフレームF2は、範囲T1内のタイミングで受信しているため、適正なデータフレームであると判定する。また、次に受信する攻撃者(不正ECU)が送信する、IDが0x100のデータフレームF3については、範囲T1内外の判別(つまり不正か否かの判別)の結果として範囲T1外であるため不正と判定する。
 また、同様に、不正検知ECU100は、IDが0x200のデータフレームF4を受信したタイミングを保持し、IDが0x100のデータフレームF5の受信タイミングが、データフレームF4の受信タイミングから22ms~28msの範囲T2内であるか否かを検査して、範囲T2内なのでデータフレームF5を適正と判定し、次に受信するIDが0x100のデータフレームF6については、範囲T2外であるため不正と判定する。
 以降も同様に、不正検知ECU100は、IDが0x200のデータフレームF7の受信タイミングからの受信間隔に基づいて、範囲T3内に受信したIDが0x100のデータフレームF8を適正と判定し、範囲T3外に受信したIDが0x100のデータフレームF9を不正と判定する。
 [1.10 不正検知ECU100による不正検知処理]
 以下、不正検知ECU100が、不正検知処理としてデータフレームの受信に際して行う処理について図10のフローチャートに即して説明する。
 不正検知ECU100は、バス300からデータフレームを受信する(ステップS1101)。
 不正検知ECU100は、ルール保持部154が保持するルール情報に基づき、受信したデータフレームのIDが0x100であるか否かを確認し(ステップS1102)、受信したデータフレームのIDが0x100でない場合には0x200であるか否かを確認する(ステップS1103)。
 ステップS1103でIDが0x200であると確認した場合には、不正検知ECU100は、タイマ保持部155を参照して現在タイミングを得て、受信タイミング保持部156に格納されている、IDが0x200に関するデータフレームの受信タイミングを示す受信タイミング情報を、現在タイミングを示すように更新して(ステップS1104)、処理を終了する。
 ステップS1103でIDが0x200でないと確認した場合には、不正検知ECU100は、1つのデータフレームの受信に対応する処理を終える。
 不正検知ECU100は、ステップS1101で受信したデータフレームのIDが0x100である場合には(ステップS1102)、その受信タイミングが、IDが0x200のデータフレームの受信から22ms~28ms経過後の範囲内であるか否かを判別する(ステップS1105)。即ち、不正検知ECU100は、タイマ保持部155の参照による現在タイミングが、受信タイミング保持部156に格納されている受信タイミング情報が示す、IDが0x200のデータフレーム(基準データフレーム)の受信タイミングと、ルール情報が示すIDが0x200のデータフレームとの受信間隔(25ms)を加算したタイミングに、マージン(3ms)を減算した値からマージンを加算した値までの範囲内であるかを検査する。IDが0x100のデータフレーム(対象データフレーム)の受信タイミングが、基準データフレームの受信タイミングに基づくその範囲内に収まっていなければ、不正検知ECU100は、その対象データフレームを不正であると判定して、1つのデータフレームの受信に対応する処理を終える(ステップS1106)。
 ステップS1105で、IDが0x100の対象データフレームの受信タイミングが、基準データフレームの受信タイミングに基づき規定の受信間隔及びマージンで定まる範囲内に収まっていれば、不正検知ECU100は、対象データフレームは適正であると判定する。即ち、不正検知ECU100は、受信間隔の適正範囲を規定した不正検知ルールに適合する場合に対象データフレームは適正であり、適合しない場合に不正であると判定する。そして、不正検知ECU100は、タイマ保持部155を参照して、受信タイミング保持部156に格納されている、IDが0x100のデータフレームの受信タイミングを示す受信タイミング情報を、現在タイミングを示すように更新して(ステップS1107)、1つのデータフレームの受信に対応する処理を終える。
 図10では、主にIDが0x100のデータフレームを対象として不正検知を行う例を示しているが、不正検知ECU100は、不正検知処理として、他のIDのデータフレームを対象とした不正検知も行い得る。なお、ステップS1107で更新された、IDが0x100のデータフレームの受信タイミングを示す受信タイミング情報は、例えば、図10の例以外における不正検知(例えばIDが0x100のデータフレーム同士の受信間隔に係る検査或いはその他のIDのデータフレームの検査)に基準として用いるために利用され得る。
 このように不正検知ECU100による不正検知処理は、バス300上で送信されたデータフレームを受信する受信ステップ(ステップS1101)を含む。また不正検知処理は、第1識別子(例えば0x100というID)を有するデータフレームである対象データフレームの不正検知として、その第1識別子と異なる第2識別子(例えば0x200というID)を有するデータフレームである基準データフレームと対象データフレームとの受信間隔を規定する所定ルール(つまりルール情報が示す不正検知ルール)に基づいて、基準データフレームの受信タイミングと対象データフレームの受信タイミングとに応じて、評価(不正か否かの判別等)を行う検知ステップ(例えばステップS1102、S1105、S1106等)を含む。また、不正検知処理は、検知ステップでの評価の結果を記憶媒体に記録する記録ステップを含み得る。
 [1.11 実施の形態1の効果]
 実施の形態1に係る車載ネットワークシステム10では、不正検知ECU100が、データフレームの不正に関する評価(不正か否かの判別等)の対象とするデータフレームと、そのデータフレームとは異なるID(メッセージID)を有するデータフレームとの受信間隔に基づいて、その評価を行う。
 これにより、攻撃者(バス300にアクセスする不正ECU等)による不正なデータフレームの送信が検知され得る。
 ところで例えば、自動駐車ECU200aが周期的に送信するIDが0x100の正規なデータフレームについての受信間隔(同じIDのデータフレーム同士の間の受信間隔)に基づいてデータフレームの不正に関する評価を行う場合には、攻撃者によるIDが0x100の不正なデータフレームの送信の結果として、正規なデータフレームが不正と判定され得る。例えば、データフレームが適正と判定される時間帯(受信間隔に基づく範囲)に複数のデータフレームが受信された場合に、その複数のうちに攻撃者が送信した不正なデータフレームが存在してその攻撃者により送信されたデータフレームが次回の受信間隔に基づく評価の基準となり得るからである。
 これに対し、車載ネットワークシステム10においては、IDが0x200のデータフレーム(基準データフレーム)からの受信間隔によってIDが0x100のデータフレームの不正に関する評価を行うので、正規なデータフレームが不正と判定される可能性が低減されている。例えば、不正な攻撃の対象でない可能性の高いと推定されるデータフレームが、受信間隔の基準となる基準データフレームとして定められることが有用である。また、あるIDの対象データフレームの不正に関する評価を行うために、複数の不正検知ルールを設けて、複数の基準データフレームそれぞれと対象データフレームとの各受信間隔に基づいて、総合的に評価(不正か否かの判別等)すると、対象データフレームの不正に関する評価をより精度良く行える可能性がある。
 (実施の形態2)
 以下、実施の形態1で示した車載ネットワークシステム10を一部変形してなる車載ネットワークシステム11について説明する。
 本実施の形態に係る車載ネットワークシステム11は、不正検知の対象のデータフレームに対する受信間隔の基準となるデータフレームを切り替える不正検知方法を用いる。車載ネットワークシステム11における不正検知ECU2100は、まず、同一のIDを有するデータフレーム同士の受信間隔を基にして不正か否かの判別を行い、不正と判定すると、不正が検知されていない、別のIDを有するデータフレームを基準として受信間隔を基にして不正か否かの判別を行う。
 [2.1 車載ネットワークシステム11の全体構成]
 図11は、本実施の形態に係る車載ネットワークシステム11の全体構成を示す図である。
 車載ネットワークシステム11は、図11に示すように、バス300と、不正検知ECU2100、各種機器に接続されたECU(自動駐車ECU)200a、ECU(パワステECU)200b、ECU(ギアECU)200c、ECU(車速ECU)2200d等の各ECUといったバスに接続された各ノードとを含んで構成される。本実施の形態において、実施の形態1と同様の機能を有する構成要素については、同じ符号を付して説明を省略する。また、車載ネットワークシステム11は、本実施の形態で特に示さない点については車載ネットワークシステム10と同様である。
 車速ECU2200dは、バス300と接続され、車速センサ2250に接続されている。車速ECU2200dは、自動駐車ECU200aと同様の構成を備える(図7参照)。但し、車速ECU2200dにおける外部機器入出力部254は、車速センサ2250から通知される信号を基にして、車の現在の速度を通知するデータフレームを生成するようにフレーム生成部253に通知する。これにより、車速ECU2200dは、車両の現在の速度を通知するデータフレームを、周期的にバス300に送信することになる。
 不正検知ECU2100は、バス300に接続される一種のECUであり、バス300上に流れるデータフレームを監視して、不正なデータフレームが流れているか否かを判別するための不正検知処理を行う機能を有する。
 [2.2 不正検知ECU2100の構成]
 図12は、不正検知ECU2100の構成図である。不正検知ECU2100はトランシーバ部130と、コントローラ部140と、マイコン部2150とを含んで構成される。実施の形態1と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
 マイコン部2150は、コントローラ部140と信号の授受を行う、プログラムを実行するプロセッサ及びメモリを含む半導体集積回路である。マイコン部2150は、プログラムを実行するプロセッサ、メモリ等により実現される構成要素として、コントローラ通信部151と、フレーム生成部153と、不正検知処理部2152と、ルール保持部2154と、タイマ保持部155と、受信状態保持部2156とを有する。
 コントローラ通信部151は、コントローラ部140から受信したデータフレームを、不正検知処理部2152へ通知する。
 不正検知処理部2152は、コントローラ通信部151から通知されたデータフレームについて不正検知処理を行う。不正検知処理部2152は、この不正検知処理においてルール保持部2154に格納されている不正検知ルールを示すルール情報と、タイマ保持部155に格納されている現在タイミングの情報と、受信状態保持部2156に格納されている、データフレームの過去の受信状態等を示す受信状態情報とを参照して、現在受信したデータフレームが不正であるか否かを判別する。
 不正検知処理部2152は、不正検知処理として、受信中のデータフレームのID(メッセージID)が、ルール保持部154のルール情報で不正検知ルールの対象として定められている場合に、その受信タイミングが、受信間隔の基準となるデータフレームの受信タイミングからの受信間隔及びマージンで定まる範囲内であるか否かを判別する検査を行う。受信したデータフレームの受信タイミングが、ルール情報が示す受信間隔及びマージンに基づく範囲内であれば、適正であり、この範囲外であれば不正となる。この範囲は、受信に係る適正時間帯であり、受信適正時間帯と称する。なお、受信したデータフレームが不正であると判定した場合には、不正検知処理部2152は、不正の発生を各ECUに通知するために、フレーム生成部153に、その不正なデータフレームに関する情報を通知し得る。不正検知処理部2152は、不正なデータフレームを検知した場合に、データフレームのID毎に不正が検知された累積回数をカウントして記録し、各IDのデータフレームについての総合的な不正の判断等に用いることとしても良い。また不正検知処理部2152は、記録媒体(記憶媒体)等に、不正なデータフレームに関するログ情報(例えば不正なデータフレームのIDその他の内容、受信日時等)を記録することとしても良いし、不正を報知するための制御(表示、車両外部に所在するサーバ装置への情報送信等)を行っても良い。
 ルール保持部2154は、不正検知処理部2152が参照する、データフレーム間の通信間隔(受信間隔)の規則(ルール)である不正検知ルールを示すルール情報(図13参照)を保持する。不正検知処理部2152では、この不正検知ルールに基づいて、受信適正時間帯を特定して、不正検知対象となるデータフレームがその受信適正時間帯の範囲内か否かによりそのデータフレームが不正か否かを判別する。不正検知処理部2152は、受信適正時間帯の特定を、受信状態保持部2156に格納されている受信状態情報を参照して行う。
 受信状態保持部2156は、受信状態情報(図14参照)を保持する。即ち、受信状態保持部2156は、データフレームのID毎に過去に受信したデータフレームの受信タイミングを保持する。また、受信状態保持部2156は、不正検知処理のために、ルール保持部2154に格納されている受信間隔に係る不正検知ルールを満たすようなデータフレーム(受信適正時間帯内に受信したデータフレーム)を受信したタイミングについて、タイマ保持部155を参照して現在タイミングを取得して、次回受信タイミング候補として一時的に保持する。また、受信状態保持部2156は、データフレームのID毎に、不正が発生したか否かを示す不正発生状態を保持する。例えば、受信適正時間帯の終期が経過する度に次回受信タイミング候補を、候補がない状態に設定すると、次回受信タイミング候補としてタイミング値が既に保持されている受信適正時間帯内において複数のデータフレームを受信した場合に不正が発生したと判別して、不正発生状態を更新し得る。また、受信状態保持部2156は、基準としたデータフレームのID毎に、基準のデータフレームからの前回の受信間隔についての情報も保持する。受信状態保持部2156が保持する受信状態情報は、不正検知処理部2152から参照又は更新され、現在受信したデータフレームが不正であるか否かの判別に用いられる。
 [2.3 不正検知ルール]
 図13は、ルール保持部2154が保持する、不正検知ルールを示すルール情報の一例を示す図である。同図の例は、実施の形態1で図5により示したルール情報が1つの受信間隔を示したのに対して、複数のIDそれぞれを有するデータフレーム相互間について規定された受信間隔とマージンとを示している。
 図13のルール情報は、例えば、IDが0x100であるデータフレームについては、IDが0x100のデータフレームとの受信間隔が50msであること、つまり同じIDのデータフレーム同士の受信間隔が50msであることを示している。このIDが0x100のデータフレーム同士では、直前のデータフレームの受信タイミングに受信間隔(50ms)を加算してマージンの値を減算した47msから、マージンの値を加算した53msまでを受信適正時間帯とすることになる。この受信適正時間帯にデータフレームを受信すれば、受信したデータフレームは基本的に適正と判定される。但し、その受信適正時間帯内に複数のデータフレームを受信した場合には、不正なデータフレームが送信されたと判定されることになる。
 また、図13のルール情報は、IDが0x100であるデータフレームを不正検知の対象(対象データフレーム)としたときに、IDが0x200のデータフレームを基準データフレームとして、基準データフレームの受信から、対象データフレームを受信するまでの受信間隔が25msであることを示している。同様に、IDが0x200の基準データフレームを受信してから、22ms~28msの間が、IDが0x100の対象データフレームについての受信適正時間帯となる。
 また、図13のルール情報は、IDが0x100であるデータフレームを不正検知の対象(対象データフレーム)としたときに、IDが0x300のデータフレームを基準データフレームとして、基準データフレームの受信から、対象データフレームを受信するまでの受信間隔が、前回の受信間隔より2ms加算した値となることを、「+2」の表記で、表している。つまり、受信間隔が受信の都度変化し、この例では、前回の受信間隔に2msを加算した結果がその次の受信間隔として定まる。例えば、IDが0x300のデータフレームを受信してから、IDが0x100のデータフレームを受信するまでの間隔が、10msであった場合に、次のIDが0x100のデータフレームの受信適正時間帯は、IDが0x300のデータフレームの受信タイミングから、10msに2ms加算してなる12msにプラスマイナス3msのマージンを含んだ9ms~15ms経過後と計算される。この計算される9ms~15msという受信間隔の範囲が、0より小さくなるか、基準となるデータフレーム同士について規定された間隔(図13に示すようにIDが0x300のデータフレームについては48ms)よりも大きくなった場合は、受信間隔の範囲を、0~その規定された受信間隔までの値の間に収まるように正規化する。この正規化により、IDが0x100のデータフレームの直前に受信された基準となるデータフレームに対する受信間隔となるように調整される。例えば、IDが0x100のデータフレームの不正検知のために、IDが0x300のデータフレームを基準データフレームとして受信間隔を検査するときにおいては、前回の受信間隔が47msであったとき、その次の受信間隔は47msに2msを加えた、49msであるが、これは、IDが0x300のデータフレーム同士の間隔である48msを超えてしまっている。そのため、次の受信間隔は、49から48を引いた、1msとする。これにマージンのプラスマイナス3msの範囲が許容されるため、最終的な受信適正時間帯は、0x300のデータフレームの受信タイミングから、0~4ms経過後の範囲と46ms~48ms経過後の範囲とになる。
 IDが0x200のデータフレーム、IDが0x300のデータフレームのそれぞれを不正検知の対象としたときの、不正検知に用いられる受信間隔とマージンとについても、同様にルール情報により規定されている。
 [2.4 受信状態情報]
 図14は、受信状態保持部2156に格納される、受信状態情報の一例を示す図である。この受信状態情報は、データフレームのID毎に、不正検知ECU2100が過去に受信したデータフレームについての受信タイミング等を記録したものである。
 図14の例は、IDが0x100であるデータフレームについて、前回の受信タイミングは151msであり、次回受信タイミング候補は201msであり、受信適正時間帯に複数のデータフレームを受信した等により不正が発生した状態(つまり不正発生状態が「不正あり」)であることを示している。また、図14の例は、前回受信間隔として、IDが0x100のデータフレーム同士の受信間隔が51msで、IDが0x200のデータフレームとIDが0x100のデータフレームとの受信間隔が25ms、IDが0x300のデータフレームとIDが0x100のデータフレームとの受信間隔が10msであったことを示している。
 IDが0x200のデータフレームとIDが0x300のデータフレームとに関しても同様に、受信タイミングと、次回受信タイミング候補と、不正発生状態と、前回受信間隔とが保持されている。次回受信タイミング候補が「なし」の状態であるということは、現状では、受信適正時間帯に、該当するIDのデータフレームを受信していないことを示す。また、不正検知処理部2152は、受信適正時間帯を過ぎると、受信状態情報の次回受信タイミング候補の値で受信タイミングを更新してから、次回受信タイミング候補を「なし」を示すように更新する。
 [2.5 データフレーム例]
 図15は、車速ECU2200dが送信するデータフレームについてのID(メッセージID)及びデータフィールド(データ)の一例を示す図である。
 同図に示すように、車速ECU2200dが送信するデータフレームのメッセージIDは「0x300」であり、DLCは「1」(1バイト)である。データフィールドには、車速を示す値が含まれ、図15の例は、車速が16(0x10)km/hであることを示している。
 [2.6 不正検知ECU2100のデータフレームの不正検知の動作例1]
 図16は、バス300に逐次現れるデータフレームを不正検知ECU2100が受信して不正検知を行う例を示す図である。
 図16では、自動駐車ECU200aが周期的に送信する、IDが0x100のデータフレームF11、F13、F16、F19と、ギアECU200cが周期的に送信する、IDが0x200のデータフレームF12、F15、F18とがバス300へ逐次現れる様子を表している。また、図16では、バス300にアクセス可能な攻撃者(不正ECU)が、バス300にIDが0x100の不正なデータフレームF14、F17、F20を周期的に送信して、ハンドル220の不正制御を試みている状況を表している。この例では、不正検知ECU2100は不正検知(検査)として、IDが0x100のデータフレームについて不正に関する評価(具体的には不正か否かの判別)を行う。図16では、不正検知ECU2100が、IDが0x100のデータフレームの不正に関する評価を行う際に、不正の発生状況(不正発生状態)に応じて、受信間隔の基準とするデータフレームを不正が発生していないIDを有するデータフレームに切り替える例を示している。なお、図16では示さないが、不正検知ECU2100は、IDが0x100以外のデータフレームを対象とした不正検知(不正に関する評価)を行い得る。前提として、受信状態保持部2156が保持する受信状態情報は、最初に、各IDに対応した不正発生状態が「不正なし」となっているものとして説明する。
 不正検知ECU2100は、不正検知の対象とするIDが0x100のデータフレームに関して、まず不正が発生していない状況(つまり受信状態情報の各IDについての不正発生状態が「不正なし」の状態)では対象と同じID(0x100)のデータフレームの受信タイミングを基準とした受信間隔を基に、不正を検知する。なお、この例では、基準とするデータフレームのIDを選択する順序は、0x100、0x200、0x300の順とする。
 不正検知ECU2100は、IDが0x100のデータフレームF11を受信したタイミングを、受信状態情報における受信タイミングとして、保持する。
 次に、不正検知ECU2100は、自動駐車ECU200aが送信した、2回目のIDが0x100のデータフレームF13を受信する。不正検知ECU2100は、ルール情報が示す不正検知ルール(図13参照)に基づいて、IDが0x100のデータフレームF11の受信のタイミングから、47ms~53ms経過した範囲を受信適正時間帯T11として特定し、データフレームF13の受信タイミングは、受信適正時間帯T11の範囲内であるので、データフレームF13は適正(不正でない)と判定する。
 このとき、3回目のIDが0x100のデータフレームF14が攻撃者により送信される。このデータフレームF14の受信タイミングは、受信適正時間帯T11の範囲内であるので一応適正である。しかし、不正検知ECU2100は、受信適正時間帯T11の範囲内に、同じ0x100というIDを有するデータフレームF13を既に受信していることから、データフレームF13及びデータフレームF14のいずれかが不正であるので、0x100というIDを有するデータフレームについて不正が発生したと判定し、受信状態保持部2156が保持する受信状態情報におけるIDが0x100のデータフレームの不正発生状態を「不正あり」に更新する。これ以後は、不正検知ECU2100は、基準とするデータフレームとして、IDが0x100の代わりに、次の順序の、IDが0x200のデータフレームを選択する。これにより、不正な可能性のある0x100というIDを有するデータフレームを基準として受信適正時間帯を定めなくなり、データフレームを不正と誤検知する可能性が低減される。
 不正検知ECU2100は、IDが0x200のデータフレームF15を受信したタイミングを、受信状態情報における受信タイミングとして、保持する。
 次に、不正検知ECU2100は、自動駐車ECU200aが送信した、4回目のIDが0x100のデータフレームF16を受信する。不正検知ECU2100は、不正検知ルール(図13参照)に基づいて、IDが0x200のデータフレームF15の受信のタイミングから、22ms~28ms経過した範囲を受信適正時間帯T12として特定し、データフレームF16の受信タイミングは、受信適正時間帯T12の範囲内であるので、データフレームF16は適正と判定する。
 次に、不正検知ECU2100は、攻撃者が送信した、5回目のIDが0x100のデータフレームF17を受信する。不正検知ECU2100は、このデータフレームF17の受信タイミングは、受信適正時間帯T12の範囲外であるので、データフレームF17は不正であると判定する。
 以降同様に、不正検知ECU2100は、IDが0x200のデータフレームF18の受信タイミングを基準として受信適正時間帯T13を特定して、自動駐車ECU200aが送信した、受信適正時間帯T13内に受信したデータフレームF19を適正と判定し、攻撃者が送信した、受信適正時間帯T13外に受信したデータフレームF20を、不正と判定する。
 [2.7 不正検知ECU2100のデータフレームの不正検知の動作例2]
 図17は、バス300に逐次現れるデータフレームを不正検知ECU2100が受信して不正検知を行う別の例を示す図である。
 図17では、自動駐車ECU200aが周期的に送信する、IDが0x100のデータフレームF21、F26、F31、F36と、ギアECU200cが周期的に送信する、IDが0x200のデータフレームF24、F29、F34と、車速ECU2200dが周期的に送信する、IDが0x300のデータフレームF23、F28、F32、F37とがバス300へ逐次現れる様子を表している。また、図17では、バス300にアクセス可能な攻撃者(不正ECU)が、バス300にIDが0x100の不正なデータフレームF22、F27、F33、F38と、IDが0x200の不正なデータフレームF25、F30、F35とを送信して、ハンドル220等の不正制御を試みている状況を表している。この例では、不正検知ECU2100は不正検知として、IDが0x100のデータフレームについて不正に関する評価(具体的には不正か否かの判別)を行う。図17では、不正検知ECU2100が、IDが0x100のデータフレームの不正に関する評価を行う際に、不正の発生状況に応じて、受信間隔の基準とするデータフレームを不正が発生していないIDを有するデータフレームに切り替える例を示している。なお、図17では示さないが、不正検知ECU2100は、IDが0x100以外のデータフレームを対象とした不正検知を行い得る。
 前提として、受信状態保持部2156が保持する受信状態情報は、最初に、各IDに対応した不正発生状態が「不正なし」となっているものとして説明する。
 不正検知ECU2100は、1回目及び2回目のIDが0x100であるデータフレームF21、F22を受信した時に、IDが0x100のデータフレームに関して、受信適正時間帯に複数のデータフレームを受信して不正が発生していると判定し、受信状態保持部2156が保持する受信状態情報におけるIDが0x100のデータフレームの不正発生状態を「不正あり」に更新する。これにより、以降、受信間隔に係る受信適正時間帯を定めるための基準とするデータフレームとして、IDが0x100のデータフレームは用いられなくなる。この例では、基準とするデータフレームのIDを選択する順序は、0x100、0x200、0x300の順とする。また更に、不正検知ECU2100は、1回目及び2回目のIDが0x200であるデータフレームF24、F25を受信した時に、IDが0x200のデータフレームに関して、受信適正時間帯に複数のデータフレームを受信して不正が発生していると判定し、受信状態保持部2156が保持する受信状態情報におけるIDが0x200のデータフレームの不正発生状態を「不正あり」に更新する。これにより、以降、受信間隔に係る受信適正時間帯を定めるための基準とするデータフレームとして、IDが0x200のデータフレームは用いられなくなり、次にはIDが0x300のデータフレームが基準として選択されることとなる。
 不正検知ECU2100は、IDが0x300のデータフレームF23を基準としてその受信タイミングに基づいて受信適正時間帯T21を特定して、3回目のIDが0x100であるデータフレームF26について、受信適正時間帯T21内に受信したか否かで、不正か否かを判別する。データフレームF26は受信適正時間帯T21内に受信されたので適正と判定される。
 以降同様に、不正検知ECU2100は、IDが0x300のデータフレームF28を基準としてその受信タイミングに基づいて受信適正時間帯T22を特定して、IDが0x100であるデータフレームF31について、受信適正時間帯T22内に受信したので適正と判定し、データフレームF33について受信適正時間帯T22外に受信したので不正と判定する。また、不正検知ECU2100は、IDが0x300のデータフレームF32を基準としてその受信タイミングに基づいて受信適正時間帯T23を特定して、IDが0x100であるデータフレームF36について、受信適正時間帯T23内に受信したので適正と判定し、データフレームF38について受信適正時間帯T23外に受信したので不正と判定する。なお、不正検知ルール(図13参照)に基づいて、受信適正時間帯を特定するための基準となる、IDが0x300のデータフレームF23、F28、F32と、不正検知の対象であるIDが0x100のデータフレームとの受信間隔は、IDが0x100のデータフレームの受信の都度変化(36msから2msずつ増加)している。
 [2.8 不正検知ECU2100による不正検知処理]
 以下、不正検知ECU2100が、不正検知処理としてデータフレームの受信に際して行う処理について図18のフローチャートに即して説明する。
 不正検知ECU2100は、バス300からデータフレームを受信する(ステップS2101)。
 不正検知ECU2100は、ルール保持部2154が保持するルール情報(図13参照)に基づき、受信したデータフレームのIDに関連する不正検知ルールが規定されているかについて確認し(ステップS2102)、受信したデータフレームのIDに関連する不正検知ルールが規定されていない場合は、1つのデータフレームの受信に対応する処理を終える。
 ステップS2102で、受信したデータフレームのIDに関連する不正検知ルールが規定されていると確認した場合には、不正検知ECU2100は、受信状態情報(図14参照)における受信タイミング及び次回受信タイミング候補の更新を行う(ステップS2103)。ステップS2103では、具体的には、受信状態情報における次回受信タイミング候補が「なし」でない全てのIDのうち、タイマ保持部155から得た現在タイミングが、そのIDに対応する受信適正時間帯の終期を経過しているIDについて、不正検知ECU2100は、次回受信タイミング候補の値を、受信状態情報における受信タイミングに設定し(つまり次回受信タイミング候補の値で受信タイミングを更新し)、「なし」を示すように次回受信タイミング候補を更新する。また、ステップS2103では、受信状態情報における次回受信タイミング候補が「なし」でない全てのIDのうち、タイマ保持部155から得た現在タイミングが、そのIDに対応する受信適正時間帯の終期を経過しているIDが存在しなければ、何もしない。
 ステップS2103に続いて、不正検知ECU2100は、受信適正時間帯を特定するための基準となるデータフレームのIDとして、まだ不正が発生していないID(受信状態情報の不正発生状態が「不正なし」であるID)を選択する(ステップS2104)。この選択は、例えば、ルール情報(図13参照)が示す不正検知ルールに係るデータフレームのIDの値の小さい順という選択基準(選択順等)に基づいて行われ、この場合には、IDは0x100、0x200、0x300の順に選択され得る。
 不正検知ECU2100は、受信状態保持部2156が保持する受信状態情報を参照することで、選択したIDを有するデータフレームの受信タイミングを取得する。そして不正検知ECU2100は、ルール保持部2154が保持するルール情報が示す不正検知ルールを参照し、選択したIDを有する基準となるデータフレームの受信タイミングと受信したデータフレームのIDとにより定められた受信間隔及びマージンに応じた計算により受信適正時間帯を特定する(ステップS2105)。
 続いて、不正検知ECU2100は、データフレームを受信したタイミング(つまりタイマ保持部155から得た現在タイミング)が、受信適正時間帯の範囲内であるかを判別する。データフレームを受信したタイミングが受信適正時間帯の範囲内でない場合には、不正検知ECU2100は、受信したデータフレームを不正と判定し(ステップS2107)、受信状態情報における、そのデータフレームのIDについての不正発生状態を「不正あり」を示すように更新して(ステップS2108)、処理を終える。
 ステップS2106で、データフレームを受信したタイミングが受信適正時間帯の範囲内であると判定した場合には、不正検知ECU2100は、受信状態情報における、受信したデータフレームのIDに対応する、次回受信タイミング候補が「なし」であるか否かを確認する(ステップS2109)。次回受信タイミング候補が「なし」でない場合には、不正検知ECU2100は、受信したデータフレームのIDについて不正と判定し(ステップS2107)、受信状態情報における、そのデータフレームのIDについての不正発生状態を「不正あり」を示すように更新して(ステップS2108)、処理を終える。次回受信タイミング候補が「なし」でない場合においては、受信したデータフレーム或いはその直前に受信したデータフレームのいずれかが不正である。なお、データフレームについての不正か否かの判定において、個別のデータフレームの不正の発生と、同じIDの1以上のデータフレームにおける不正の発生とを区別しても良いし、区別しなくても良い。しかし、いずれの場合であっても、不正検知ECU2100は、受信状態情報における不正発生状態が「不正あり」を示すように更新し、その不正に係るデータフレームのIDと同じIDのデータフレームを受信適正時間帯の特定のための基準としないようにする。
 ステップS2109で、受信状態情報における、受信したデータフレームのIDに対応する、次回受信タイミング候補が「なし」であると確認した場合には、不正検知ECU2100は、受信したデータフレームについて適正と判定して、受信状態情報における、そのデータフレームのIDについての次回受信タイミング候補に現在タイミングを設定して(ステップS2110)、処理を終える。つまりステップS2110では、不正検知ECU2100は、タイマ保持部155から得た現在タイミングで次回受信タイミング候補を更新し、1つのデータフレームの受信に対応する処理を終える。
 このように不正検知ECU2100による不正検知処理は、バス300上で送信されたデータフレームを受信する受信ステップ(ステップS2101)を含む。また、不正検知処理は、第1識別子(例えば0x100というID)を有するデータフレームである対象データフレームの不正検知として、その対象データフレーム同士の受信タイミングの間隔に応じてその対象データフレームであるか否かを評価する初期検知ステップ(例えばステップS2102~S2106)を含む。この初期検知ステップでは、対象データフレームの不正検知として、その対象データフレームの受信タイミングが、その受信タイミングに先行する対象データフレームの受信タイミングを基準として予め定められた適正時間帯外である場合、及び、その対象データフレームの受信タイミングが受信適正時間帯内でありかつ受信適正時間帯内のタイミングで別の対象データフレームが受信されていた場合には、不正であると評価する(ステップS2109、S2107、S2108)。そして、初期検知ステップで対象データフレームが不正であると評価された後に、初期検知ステップでの不正検知を停止して、受信適正時間帯の基準を切り替えた検知ステップで不正検知を開始する。この検知ステップでは、第1識別子と異なる第2識別子(例えば0x200というID)を有するデータフレームである基準データフレームと対象データフレームとの受信間隔を規定する所定ルール(つまりルール情報が示す不正検知ルール)に基づいて、基準データフレームの受信タイミングと対象データフレームの受信タイミングとに応じて、評価(不正か否かの判別等)を行う(例えばステップS2102~S2110等)。また、不正検知処理は、基準データフレームの不正検知を行う基準検知ステップ(例えばステップS2106、S2109等)を含み、不正検知処理では、基準検知ステップで基準データフレームが不正と検知された場合には、検知ステップでの不正検知を停止して、後続検知ステップでの不正検知を開始する。この後続検知ステップでは、対象データフレームの不正検知として、第1識別子及び第2識別子と異なる第3識別子(例えば0x300というID)を有するデータフレームである別基準データフレームと対象データフレームとの受信間隔を規定するルール(不正検知ルール)に基づいて、別基準データフレームの受信タイミングと対象データフレームの受信タイミングとに応じて、評価を行う(例えばステップS2102~S2107等)。また、不正検知処理は、検知ステップでの評価の結果を記憶媒体に記録する記録ステップを含み得る。
 [2.9 実施の形態2の効果]
 実施の形態2に係る車載ネットワークシステム11では、不正検知ECU2100が、データフレームの不正に関する評価(不正か否かの判別等)の対象とするデータフレームと、不正の発生がまだ検知されていない、基準となるデータフレームとの受信間隔に基づいて、その評価を行う。そして、基準となるデータフレームについて不正が発生した後には、別のデータフレームを選択して基準として用いる。即ち、不正検知ECU2100は、不正が発生していないデータフレームと、不正検知の対象となるデータフレームとの受信間隔に基づいて、データフレームの不正に係る判定等を行う。
 これにより、攻撃者(バス300にアクセスする不正ECU等)による不正なデータフレームの送信が検知され得るし、正規なデータフレームが不正と判定される可能性が低減されている。
 (他の実施の形態)
 以上のように、本開示に係る技術の例示として実施の形態1、2を説明した。しかしながら、本開示に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本開示の一実施態様に含まれる。
 (1)上記実施の形態では、不正検知処理部152、2152は、不正検知ECU100、2100の構成要素として説明したが、その他のECUの構成要素としても良く、データフレームの不正検知(不正に関する評価等)をどのECUが行っても良い。
 (2)上記実施の形態では、CANプロトコルにおけるデータフレームを標準IDフォーマットで記述しているが、拡張IDフォーマットで合っても良い。拡張IDフォーマットの場合には、標準IDフォーマットにおけるID位置のベースIDと、拡張IDとを合わせて29ビットで、データフレームのIDを表す。
 (3)上記実施の形態の不正検知ECU100、2100は、データフレームについての不正検知を、データフレームの受信完了時に行っても、データフレームの受信中(具体的にはIDフィールドの受信後の任意の時点)に行っても良い。
 (4)上記実施の形態では、不正検知ECU100、2100は、データフレームの受信タイミングを保持して、その受信タイミングからマージン付きの受信間隔が経過したことの確認を行ったが、必ずしもデータフレームの受信タイミングを保持していなくても良く、例えば、データフレームの受信時に受信間隔を、ダウンカウントするタイマにセットする等で、受信間隔の経過の確認を行うこととしても良い。
 (5)上記実施の形態では、不正検知ECU100、2100が、データフレームが不正であることを検知した場合に、不正の発生を各ECUに通知すること、不正が検知された累積回数をカウントして記録すること、ログ情報を記録すること、不正を報知すること等を示したが、他にいかなる処理を行っても良い。例えば、データフレームの受信中に不正であることを検知した場合に、バス300にエラーフレームを送信することで、不正なデータフレームを無効化し、各ECUに不正なデータフレームを正常に処理させないようにしても良い。
 (6)上記実施の形態では、不正検知の対象となるデータフレームについて不正に関する評価として、そのデータフレームが不正であるか否かという判別(つまり択一的な判定)を行う例を示したが、不正に関する評価は、判別に限られず、例えば、不正である確度(例えば確率)を算定することを内容とする評価を行っても良い。データフレームが不正である確度の算定は、例えば次の方法で実現できる。実施の形態2では、不正検知処理として、受信適正時間帯を求める基準となるデータフレーム(或いはそのデータフレームのID)を順に選択していたが、選択するのではなく、不正検知ルール(図13参照)に含まれる全てのIDのデータフレームを基準としてそれぞれ受信適正時間帯を求める。そして、不正検知対象のデータフレームの受信タイミングを、全ての受信適正時間帯を重ね合わせた受信適正時間帯群と比較する。不正検知ECUでは、不正検知対象のデータフレームの受信タイミングが、受信適正時間帯群における受信適正時間帯の重複度合いの高い時刻ほど不正である確度が低く、重複度合いが低い又はいずれの受信適正時間帯でもない時刻ほど、不正である確度が高いと評価し得る。例えば、この評価は、複数のIDの各データフレームと不正検知対象のデータフレームとの受信間隔を規定するルール群としての不正検知ルール(図13参照)と、その各データフレームの受信タイミングと、不正検知対象のデータフレームの受信タイミングに基づく所定演算により、不正の確度を算定する評価である。不正の確度を算定するための所定演算の内容は任意に定め得る。なお、不正の確度を閾値と比較することで不正であるか否かという択一的な判定を行うこととしても良い。また、データフレームが不正であるか否かという判別についても、不正検知ルール(図13参照)に含まれる複数のIDのデータフレームを基準としてそれぞれ受信適正時間帯を求めて行っても良く、各受信適正時間帯に不正検知対象のデータフレームの受信タイミングが含まれるか否かの評価結果(つまりそのデータフレームが不正か否かの評価結果)を総合して、例えば多数決等により、最終的に不正検知対象のデータフレームが不正か否かを決定することとしても良い。なお、多数決の他、例えば、不正検知対象のデータフレームの受信タイミングがその複数の受信適正時間帯全てに含まれない場合に不正であると決定しても良い。
 (7)上記実施の形態では、不正検知処理において受信適正時間帯を特定するための基準となるデータフレーム(つまりデータフレームのID)の選択順として、IDの値の小さい順を例示したが、この順序は他の方法で定めても良い。例えば、不正が発生していないIDの中から、IDの値の大きい順に選択しても良い。また、IDの値が不正検知対象のデータフレームのIDよりも大きいこと或いは小さいこと等の条件を付けて選択しても良い。また、IDの値が、不正検知対象のデータフレームのIDの値に近い順に選択しても良い。また、基準となるデータフレーム同士について規定されている受信間隔が、不正検知対象のデータフレーム同士の受信間隔に近い順に選択しても良い。
 (8)上記実施の形態では、不正検知処理において受信適正時間帯を特定するための基準となるデータフレーム(つまりデータフレームのID)の選択順として、IDの値の小さい順を例示したが、順序を付けなくても良い。例えば、ランダムにIDを選択しても良く、また、選択したIDを定期的に変更(例えばランダムに選択したIDに変更)しても良い。また、現在の車両(各ECUが搭載される車両)の状態に応じて、選択するIDを切り替えても良い。即ち、車両の状態毎に選択されるべきデータフレームのIDを予め定めた選択基準に基づいて、車両の状態が変化した際にIDの選択の切り替えを行っても良い。車両の状態は、停車状態、走行状態等である。車両に搭載されたセンサ、機器等で識別できる各種状態を、車両の状態として用い得る。例えば、イグニッションキーがイグニッションキーシリンダに差し込まれた状態、エンジンを始動した状態、ギアポジション(例えばパーキング、ニュートラル、1速、2速等)の状態、バス300等のネットワーク負荷の状態等を、車両の状態として用い得る。また、バス300に流れるデータフレームの内容の変化や、不正検知の必要性の高さ等に基づいて車両の状態を区別しても良い。
 (9)上記実施の形態では、受信状態保持部2156が保持する受信状態情報の次回受信タイミング候補として、受信適正時間帯に受信したデータフレームの中で最初に受信したデータフレームの受信タイミングが格納され、次回受信タイミング候補の値が受信適正時間帯の経過後に受信状態情報における受信タイミングに設定される例を示した。しかし、これは一例に過ぎない。次回の受信適正時間帯の基準となる、受信状態情報における受信タイミングとして、例えば、受信適正時間帯に受信したデータフレームの中で、最後に受信したデータフレームの受信タイミングが設定されるようにしても良いし、不正検知ルールで示される受信間隔の経過時に最も近いタイミングで受信したデータフレームの受信タイミングが設定されるようにしても良い。なお、上記実施の形態では、受信適正時間帯内に複数のデータフレームを受信した場合に受信状態情報における不正発生状態を「不正あり」としたが、受信適正時間帯内に予め定めた所定数以上のデータフレームを受信した場合にのみ不正発生状態を「不正あり」にすることとしても良い。
 (10)上記実施の形態では、受信状態保持部2156に保持される受信状態情報における不正発生状態は、一度「不正あり」に設定された後には変更されない例を示したが、不正発生状態を一定条件下で「不正なし」に変更することとしても良い。例えば、受信適正時間帯に該当するIDを有するデータフレームを1つしか受信しなくなったことを一定回数確認した場合に不正発生状態を「不正なし」に変更することとしても良いし、定期的に不正発生状態を「不正なし」にリセットすることとしても良い。
 (11)上記実施の形態でルール保持部154、2154に保持されるルール情報が示す不正検知ルールは、複数のIDそれぞれについて受信間隔に係るルールを含んでいたが、バス300で送受されるデータフレームで用いられ得るIDの全てについて受信間隔に係るルールを規定している必要はない。また、不正検知ルールは、全てのID又は一部のIDを有する各データフレームについて、受信間隔に係るルール以外の、データフレームの不正に関する評価(不正か否かの判別等)の基準となるルール(例えばデータ長、データフィールドの内容の制約等)を含んでいても良い。
 (12)上記実施の形態では、受信状態保持部2156に保持される受信状態情報における不正発生状態を、受信適正時間帯に複数の該当するIDのデータフレームを受信した場合、及び、受信適正時間帯以外に該当するIDのデータフレームを受信した場合に「不正あり」に更新する例を示した。これは一例に過ぎず、例えば、受信間隔以外のルールに適合しないデータフレームが送信されたことを検知した場合に、該当するIDの不正発生状態を「不正あり」に更新しても良い。
 (13)上記実施の形態では、マイコン部150、2150で不正検知処理を行ったが、コントローラ部140において不正検知処理の全部又は一部を行っても良い。
 (14)上記実施の形態では、受信間隔に基づくデータフレームの適正、不正の判別のために、受信適正時間帯を経過するまで、受信状態情報における受信タイミングの更新を行わなかったが、受信適正時間帯内で、データフレームを受信したタイミングで受信状態情報における受信タイミングの更新を行っても良い。また受信タイミングの更新を、受信適正時間帯内のデータフレームの受信毎に行わなくても良い。例えば、受信回数を保持しておき、ルール情報が示す不正検知ルールに係る受信間隔と受信回数とを乗算することにより、受信適正時間帯を算定しても良い。このときの受信回数のリセットと受信タイミングの更新とは任意のタイミングで行い得る。
 (15)上記実施の形態では、マイコン部150或いはマイコン部2150が、ルール保持部154、2154、タイマ保持部155、受信タイミング保持部156、受信状態保持部2156を含む例を示したが、コントローラ部140が、ルール保持部154、2154、タイマ保持部155、受信タイミング保持部156、受信状態保持部2156のうちの1つ以上を含んでも良い。
 (16)上記実施の形態では、受信適正時間帯の特定の方法として、ルール保持部2154のルール情報が示す受信間隔からマージンを引いた値から受信間隔からマージンを足した値までを受信適正時間帯としていたが、これに限らない。例えばルール情報が示す受信間隔からマージンを減算した値以降全ての時間範囲を受信適正時間帯としても良い。
 (17)上記実施の形態では、不正検知対象のIDを有するデータフレームとの受信間隔を確認するための基準となる、そのIDと異なるIDを有するデータフレームとして、バス300上に流れるデータフレームを用いた。この基準となるデータフレームは、バス300上に流されるべき制御用或いは状態通知用のデータフレームであっても良いし、不正検知以外の用途のないダミーのデータフレームであっても良い。ダミーのデータフレームは、いずれかのECUにより周期的に送信され、不正検知ECUにより受信され、不正検知ECU以外では受信の必要がない。不正検知ECUでは、ダミーのデータフレームの受信タイミングを基準として、不正検知対象のIDのデータフレームの受信適正時間帯を特定して、不正検知を行い得る。また、不正検知ECUは、不正検知のための基準となるデータフレームとして、不正検知対象のIDのデータフレームを送信するECUが別途送信する、不正検知対象のIDと異なるIDのデータフレームを利用することとしても良い。
 (18)上記実施の形態における不正検知ECU及び他のECUは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいても良い。また、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア(デジタル回路等)によりその機能を実現することとしても良い。
 (19)上記実施の形態における各装置を構成する構成要素の一部又は全部は、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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
 (20)上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしても良い。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしても良い。
 (21)上記実施の形態で示した各種処理の手順(例えば図10、図18に示した処理手順等)の実行順序は、必ずしも、上述した通りの順序に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えたり、複数の手順を並列に行ったり、その手順の一部を省略したりすることができる。
 (22)本開示の一態様としては、例えば図10或いは図18に示す不正検知処理等の全部又は一部を含む不正検知方法であるとしても良い。また、この方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本開示の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
 (23)本開示の一態様としては、例えば上述の不正検知ECUの一部又は全部の機能を備える不正検知システムであっても良い。不正検知システムは、例えばバスに接続されたECU(不正検知ECUでもその他のECUでも良い)、そのECUと通信可能な装置(例えば車両外部に所在するサーバ装置等)等により構成され得る。
 (24)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本開示の範囲に含まれる。
 本開示は、CANに従った車載ネットワークにおいて、バス上への不正なフレームの送信の検知を適切に行うために利用可能である。
 10,11 車載ネットワークシステム
 100,2100 不正検知電子制御ユニット(不正検知ECU)
 130 トランシーバ部
 140 コントローラ部
 141 プロトコル処理部
 150,250,2150 マイコン部
 151 コントローラ通信部
 152,2152 不正検知処理部
 153,253 フレーム生成部
 154,2154 ルール保持部
 155 タイマ保持部
 156 受信タイミング保持部
 200a 電子制御ユニット(自動駐車ECU)
 200b 電子制御ユニット(パワステECU)
 200c 電子制御ユニット(ギアECU)
 210 カメラ
 220 ハンドル(ステアリングホイール)
 230 ギア(変速機構)
 240 タッチパネル
 252 フレーム処理部
 254 外部機器入出力部
 300 バス
 2156 受信状態保持部
 2200d 電子制御ユニット(車速ECU)
 2250 車速センサ

Claims (14)

  1.  CAN(Controller Area Network)プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、
     前記バス上で送信されたデータフレームを受信する受信ステップと、
     第1識別子を有するデータフレームである対象データフレームの不正検知として、当該第1識別子と異なる第2識別子を有するデータフレームである基準データフレームと当該対象データフレームとの受信間隔を規定する所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知ステップとを含む
     不正検知方法。
  2.  前記検知ステップでは、前記対象データフレームの受信タイミングと前記基準データフレームの受信タイミングとの関係が前記所定ルールに適合する場合に前記対象データフレームが不正でないと評価し、前記関係が前記所定ルールに適合しない場合に前記対象データフレームが不正であると評価する
     請求項1記載の不正検知方法。
  3.  前記所定ルールは、前記受信間隔の適正範囲を規定し、
     前記検知ステップでは、前記対象データフレームの受信タイミングと、当該受信タイミングに先行する前記基準データフレームの受信タイミングとの差が前記適正範囲内である場合に前記所定ルールに適合するとして前記評価を行う
     請求項1又は2記載の不正検知方法。
  4.  前記不正検知方法は更に、前記対象データフレームの不正検知として、当該対象データフレームの受信タイミングと、当該受信タイミングに先行する前記対象データフレームの受信タイミングとの間隔に応じて、当該対象データフレームが不正であるか否かを評価する初期検知ステップを含み、
     前記不正検知方法は、前記検知ステップでの前記不正検知に先行して、前記初期検知ステップでの前記不正検知を行い、前記初期検知ステップで前記対象データフレームが不正であると評価された後に、前記初期検知ステップでの前記不正検知を停止して、前記検知ステップでの前記不正検知を開始する
     請求項1~3のいずれか一項に記載の不正検知方法。
  5.  前記初期検知ステップでは、前記対象データフレームの不正検知として、当該対象データフレームの受信タイミングが、当該受信タイミングに先行する前記対象データフレームの受信タイミングを基準として予め定められた適正時間帯外である場合、及び、当該対象データフレームの受信タイミングが前記適正時間帯内でありかつ当該適正時間帯内のタイミングで別の前記対象データフレームが受信されていた場合には、不正であると評価する
     請求項4記載の不正検知方法。
  6.  前記不正検知方法は更に、
     前記基準データフレームの不正検知を行う基準検知ステップと、
     前記対象データフレームの不正検知として、前記第1識別子及び前記第2識別子と異なる第3識別子を有するデータフレームである別基準データフレームと当該対象データフレームとの受信間隔を規定するルールに基づいて、前記別基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う後続検知ステップとを含み、
     前記不正検知方法は、前記基準検知ステップで前記基準データフレームが不正と検知された場合には、前記検知ステップでの前記不正検知を停止して、前記後続検知ステップでの前記不正検知を開始する
     請求項1~5のいずれか一項に記載の不正検知方法。
  7.  前記不正検知方法は、前記第1識別子と異なる複数の識別子のうち予め定められた選択基準に従って選択した1つの識別子を前記第2識別子と定めてから、前記検知ステップでの前記不正検知を開始し、前記第1識別子及び前記第2識別子と異なる複数の識別子のうち予め定められた前記選択基準に従って選択した1つの識別子を前記第3識別子と定めてから、前記後続検知ステップでの前記不正検知を開始する
     請求項6記載の不正検知方法。
  8.  前記不正検知方法は、前記第1識別子と異なる複数の識別子のうち、1つの識別子を有するデータフレームについて未だ不正が検知されていない当該識別子を、前記第2識別子として選択してから、前記検知ステップでの前記不正検知を行う
     請求項1~6のいずれか一項に記載の不正検知方法。
  9.  前記不正検知方法は、前記第1識別子と異なる複数の識別子のうち、前記複数の電子制御ユニットが搭載される車両の状態に応じて1つの識別子を前記第2識別子として選択してから、前記検知ステップでの前記不正検知を行う
     請求項1~6のいずれか一項に記載の不正検知方法。
  10.  前記検知ステップでは、前記第1識別子及び前記第2識別子と異なる1つ以上の識別子それぞれを1対1に有する1つ以上のデータフレームと前記基準データフレームとの集合における各データフレームについて当該データフレームと前記対象データフレームとの受信間隔を規定する、前記所定ルールを含むルール群に基づいて、前記集合におけるデータフレーム毎に当該データフレームの受信タイミングと前記対象データフレームの受信タイミングとに応じて当該対象データフレームが不正か否かの評価を行い、各評価の結果に基づいて当該対象データフレームが不正か否かを決定する
     請求項1~3のいずれか一項に記載の不正検知方法。
  11.  前記検知ステップでは、前記第1識別子及び前記第2識別子と異なる1つ以上の識別子それぞれを1対1に有する1つ以上のデータフレームと前記基準データフレームとの集合における各データフレームについて当該データフレームと前記対象データフレームとの受信間隔を規定する、前記所定ルールを含むルール群と、前記集合における各データフレームの受信タイミングと、前記対象データフレームの受信タイミングとに基づく所定演算により、当該対象データフレームが不正である確度を算定することで前記評価を行う
     請求項1記載の不正検知方法。
  12.  前記不正検知方法は更に、前記検知ステップでの前記評価の結果を記憶媒体に記録する記録ステップを含む
     請求項1~11のいずれか一項に記載の不正検知方法。
  13.  CAN(Controller Area Network)プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットであって、
     前記バス上で送信されたデータフレームを受信する受信部と、
     第1識別子を有するデータフレームである対象データフレームと、前記第1識別子と異なる第2識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、
     前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える
     不正検知電子制御ユニット。
  14.  CAN(Controller Area Network)プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知のための不正検知システムであって、
     前記バス上で送信されたデータフレームを受信する受信部と、
     第1識別子を有するデータフレームである対象データフレームと、前記第1識別子と異なる第2識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、
     前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える
     不正検知システム。
PCT/JP2016/003567 2015-08-31 2016-08-03 不正検知方法、不正検知電子制御ユニット及び不正検知システム WO2017038005A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
EP16841047.0A EP3346647B1 (en) 2015-08-31 2016-08-03 Fraud detection method and fraud detection system
EP20189302.1A EP3754940B1 (en) 2015-08-31 2016-08-03 Fraud detection method and fraud detection electronic control unit
CN202011109730.7A CN112261026B (zh) 2015-08-31 2016-08-03 不正常检测方法、不正常检测电子控制单元以及不正常检测系统
CN201680001973.4A CN107409081B (zh) 2015-08-31 2016-08-03 不正常检测方法、不正常检测电子控制单元以及不正常检测系统
US15/873,952 US10902109B2 (en) 2015-08-31 2018-01-18 Misuse detection method, misuse detection electronic control unit, and misuse detection system
US17/122,659 US11636196B2 (en) 2015-08-31 2020-12-15 Misuse detection method, misuse detection electronic control unit, and misuse detection system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562212120P 2015-08-31 2015-08-31
US62/212,120 2015-08-31
JP2016-097047 2016-05-13
JP2016097047A JP6585001B2 (ja) 2015-08-31 2016-05-13 不正検知方法、不正検知電子制御ユニット及び不正検知システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/873,952 Continuation US10902109B2 (en) 2015-08-31 2018-01-18 Misuse detection method, misuse detection electronic control unit, and misuse detection system

Publications (1)

Publication Number Publication Date
WO2017038005A1 true WO2017038005A1 (ja) 2017-03-09

Family

ID=58186882

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/003567 WO2017038005A1 (ja) 2015-08-31 2016-08-03 不正検知方法、不正検知電子制御ユニット及び不正検知システム

Country Status (2)

Country Link
CN (1) CN112261026B (ja)
WO (1) WO2017038005A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018173732A1 (ja) * 2017-03-23 2018-09-27 株式会社オートネットワーク技術研究所 車載通信装置、コンピュータプログラム及びメッセージ判定方法
JP2020144736A (ja) * 2019-03-08 2020-09-10 大日本印刷株式会社 電子情報記憶媒体、通信機器、通信システム、通信方法、通信プログラム、命令実行方法、命令実行プログラム、応答判断方法及び応答判断プログラム
WO2021065069A1 (ja) * 2019-09-30 2021-04-08 株式会社オートネットワーク技術研究所 検知装置、車両、検知方法および検知プログラム
CN115842875A (zh) * 2023-02-21 2023-03-24 德力西集团仪器仪表有限公司 相似数据帧的确定方法、装置、计算机设备和介质
US11849324B2 (en) 2019-09-30 2023-12-19 Autonetworks Technologies, Ltd. Detection device, vehicle, detection method, and detection program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013094072A1 (ja) * 2011-12-22 2013-06-27 トヨタ自動車 株式会社 通信システム及び通信方法
JP2014146868A (ja) * 2013-01-28 2014-08-14 Hitachi Automotive Systems Ltd ネットワーク装置およびデータ送受信システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198099A1 (en) * 2004-02-24 2005-09-08 Covelight Systems, Inc. Methods, systems and computer program products for monitoring protocol responses for a server application
US7552467B2 (en) * 2006-04-24 2009-06-23 Jeffrey Dean Lindsay Security systems for protecting an asset
EP2339790A1 (en) * 2009-12-28 2011-06-29 Nxp B.V. Definition of wakeup bus messages for partial networking
CN103562900B (zh) * 2011-04-06 2017-02-15 罗伯特·博世有限公司 用于提高串行总线系统中的数据传输容量的方法和设备
US9288048B2 (en) * 2013-09-24 2016-03-15 The Regents Of The University Of Michigan Real-time frame authentication using ID anonymization in automotive networks
KR101472896B1 (ko) * 2013-12-13 2014-12-16 현대자동차주식회사 차량 내 통신 네트워크에서의 보안 강화 방법 및 그 장치
CN104009940B (zh) * 2014-05-30 2017-09-29 长城汽车股份有限公司 控制器局域网中的数据调度方法及装置
CN104320295B (zh) * 2014-10-08 2018-05-29 清华大学 Can报文异常检测方法及系统
CN104301177B (zh) * 2014-10-08 2018-08-03 清华大学 Can报文异常检测方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013094072A1 (ja) * 2011-12-22 2013-06-27 トヨタ自動車 株式会社 通信システム及び通信方法
JP2014146868A (ja) * 2013-01-28 2014-08-14 Hitachi Automotive Systems Ltd ネットワーク装置およびデータ送受信システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3346647A4 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018173732A1 (ja) * 2017-03-23 2018-09-27 株式会社オートネットワーク技術研究所 車載通信装置、コンピュータプログラム及びメッセージ判定方法
JP2018160851A (ja) * 2017-03-23 2018-10-11 株式会社オートネットワーク技術研究所 車載通信装置、コンピュータプログラム及びメッセージ判定方法
JP2020144736A (ja) * 2019-03-08 2020-09-10 大日本印刷株式会社 電子情報記憶媒体、通信機器、通信システム、通信方法、通信プログラム、命令実行方法、命令実行プログラム、応答判断方法及び応答判断プログラム
JP7218621B2 (ja) 2019-03-08 2023-02-07 大日本印刷株式会社 電子情報記憶媒体、通信機器、通信システム、通信方法、通信プログラム、命令実行方法、命令実行プログラム、応答判断方法及び応答判断プログラム
WO2021065069A1 (ja) * 2019-09-30 2021-04-08 株式会社オートネットワーク技術研究所 検知装置、車両、検知方法および検知プログラム
CN114245981A (zh) * 2019-09-30 2022-03-25 株式会社自动网络技术研究所 检测装置、车辆、检测方法及检测程序
JP7396363B2 (ja) 2019-09-30 2023-12-12 株式会社オートネットワーク技術研究所 検知装置、車両、検知方法および検知プログラム
US11849324B2 (en) 2019-09-30 2023-12-19 Autonetworks Technologies, Ltd. Detection device, vehicle, detection method, and detection program
US11870789B2 (en) 2019-09-30 2024-01-09 Autonetworks Technologies, Ltd. Detection device, vehicle, detection method, and detection program
CN115842875A (zh) * 2023-02-21 2023-03-24 德力西集团仪器仪表有限公司 相似数据帧的确定方法、装置、计算机设备和介质

Also Published As

Publication number Publication date
CN112261026B (zh) 2023-02-28
CN112261026A (zh) 2021-01-22

Similar Documents

Publication Publication Date Title
JP6585001B2 (ja) 不正検知方法、不正検知電子制御ユニット及び不正検知システム
WO2017038005A1 (ja) 不正検知方法、不正検知電子制御ユニット及び不正検知システム
US11570184B2 (en) In-vehicle network system, fraud-detection electronic control unit, and fraud-detection method
JP6887040B2 (ja) 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム
JP6203365B2 (ja) 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法
JP6594732B2 (ja) 不正フレーム対処方法、不正検知電子制御ユニット及び車載ネットワークシステム
JP6063606B2 (ja) ネットワーク通信システム、不正検知電子制御ユニット及び不正対処方法
JP6566400B2 (ja) 電子制御装置、ゲートウェイ装置、及び検知プログラム
WO2017119027A1 (ja) 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム
JP2017073765A (ja) セキュリティ装置、攻撃検知方法及びプログラム
JP2017069941A (ja) 不正検知電子制御ユニット、車載ネットワークシステム及び通信方法
JPWO2013171829A1 (ja) 車両用ネットワークの通信管理装置及び通信管理方法
WO2016116973A1 (ja) 不正フレーム対処方法、不正検知電子制御ユニット及び車載ネットワークシステム
WO2017061079A1 (ja) セキュリティ装置、攻撃検知方法及びプログラム
JP2020039177A (ja) 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法
JP2020102771A (ja) 電子制御装置、電子制御装置の制御方法及びプログラム
WO2017104122A1 (ja) 通信装置、通信方法、及び通信プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16841047

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE