WO2017119027A1 - 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム - Google Patents

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

Info

Publication number
WO2017119027A1
WO2017119027A1 PCT/JP2016/004993 JP2016004993W WO2017119027A1 WO 2017119027 A1 WO2017119027 A1 WO 2017119027A1 JP 2016004993 W JP2016004993 W JP 2016004993W WO 2017119027 A1 WO2017119027 A1 WO 2017119027A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
fraud
condition
ecu
fraud detection
Prior art date
Application number
PCT/JP2016/004993
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 JP2016208084A external-priority patent/JP6684690B2/ja
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority to CN201680051842.7A priority Critical patent/CN108028784B/zh
Priority to EP16883533.8A priority patent/EP3402125B1/en
Publication of WO2017119027A1 publication Critical patent/WO2017119027A1/ja
Priority to US16/011,677 priority patent/US10992688B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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

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
  • the communication path is a bus composed of two wires, and the 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
  • the present disclosure detects that an illegal state (abnormality) has occurred by monitoring frames transmitted over the bus even when the ECU becomes in an illegal state due to unauthorized rewriting of firmware, execution of malware, etc.
  • a possible fraud detection method is provided.
  • the present disclosure also provides an in-vehicle network system that uses the fraud detection method and a monitoring electronic control unit (monitoring ECU) that performs fraud detection in the in-vehicle network system.
  • a fraud detection method is a fraud detection method for detecting that an improper state has occurred in an in-vehicle network system including a plurality of electronic control units that communicate via a bus.
  • fraud detection rule information indicating a first condition, which is a condition regarding a relationship between contents of a frame having an identifier and a frame having an identifier different from the first identifier
  • a set of frames received from the bus This is a fraud detection method that determines whether or not a first condition is satisfied and detects that an unauthorized state has occurred when the first condition is not satisfied.
  • a recording medium such as an apparatus, a system, an integrated circuit, a computer program, or a computer-readable CD-ROM.
  • the apparatus, system, method, computer program, and You may implement
  • an ECU when an ECU becomes in an unauthorized state due to unauthorized rewriting of firmware or execution of malware, the relationship between a frame transmitted by the ECU and a frame transmitted by another ECU is disturbed. It can be detected that a condition has occurred.
  • FIG. 1 is a diagram illustrating an overall configuration of an in-vehicle network system according to Embodiment 1.
  • FIG. It is a figure which shows the format of the data frame prescribed
  • 2 is a configuration diagram of a monitoring ECU according to Embodiment 1.
  • FIG. It is a figure which shows an example of the frame reception log
  • FIG. 1 is a configuration diagram of an ECU according to Embodiment 1.
  • FIG. 1 It is a figure which shows an example of the data frame which ECU which concerns on Embodiment 1 transmits.
  • 3 is a flowchart illustrating an example of an operation of a monitoring ECU according to the first embodiment.
  • 6 is a diagram illustrating an example of bus monitoring operation in the in-vehicle network system according to Embodiment 1.
  • FIG. FIG. 6 is a configuration diagram of a monitoring ECU according to a second embodiment. It is a figure which shows an example of the frame reception log
  • FIG. 10 is a diagram showing an operation example 1 of bus monitoring in the in-vehicle network system according to the second embodiment.
  • FIG. 10 is a diagram showing an operation example 2 of bus monitoring in the in-vehicle network system according to the second embodiment. It is a figure which shows the whole structure of the vehicle-mounted network system which concerns on Embodiment 3.
  • FIG. FIG. 6 is a configuration diagram of a monitoring ECU according to a third embodiment.
  • FIG. 10 is a configuration diagram of a MAC verification unit of a monitoring ECU according to a third embodiment. It is a figure which shows an example of the frame reception log
  • FIG. 5 is a configuration diagram of an ECU according to a third embodiment.
  • FIG. 10 is a diagram showing an operation example 1 of bus monitoring in the in-vehicle network system according to the third embodiment.
  • FIG. 11 is a diagram showing an operation example 2 of bus monitoring in the in-vehicle network system according to the third embodiment.
  • a fraud detection method is a fraud detection method for detecting that an improper state has occurred in an in-vehicle network system including a plurality of electronic control units that communicate via a bus.
  • fraud detection rule information indicating a first condition, which is a condition regarding a relationship between contents of a frame having an identifier and a frame having an identifier different from the first identifier
  • a set of frames received from the bus This is a fraud detection method that determines whether or not a first condition is satisfied and detects that an unauthorized state has occurred when the first condition is not satisfied.
  • the ECU electronice control unit
  • the ECU transmits Since the first condition may not be satisfied because the relationship between a frame to be transmitted and a frame transmitted by another ECU, for example, may not be satisfied, it can be detected that an illegal state has occurred by monitoring the bus.
  • the plurality of electronic control units exchange data frames according to a CAN (Controller Area Network) protocol via the bus, and the fraud detection rule information is a first type that is a data frame having the first identifier.
  • the connected monitoring electronic control unit sequentially receives the data frame transmitted on the bus, and the fraud detection rule includes the first type frame and the second type frame received in the receiving step.
  • a fraud determination step for determining whether or not the first condition indicated by the information is satisfied may be included. This makes it possible to appropriately detect when an unauthorized state occurs in the in-vehicle network that conforms to the CAN for transferring frames between ECUs.
  • the fraud detection rule information includes, as the first condition, a value specified based on the content of a data field in one or more first type frames and a data field of one or more second type frames.
  • the determination may be performed by executing a predetermined calculation process for distinguishing whether or not the first condition is satisfied.
  • the fraud detection rule information includes, as the first condition, a value specified based on data field contents in a plurality of the first type frames and contents of one or more second type frame data fields.
  • the fraud determination step the first value based on the contents of the data field in each first type frame received in the reception step in each of the plurality of unit times, and the plurality of unit times Whether the first condition is satisfied using the second value based on the content of the data field in each second type frame received in the reception step in each of one or more unit times from the last. It is good also as performing the said determination by performing the predetermined calculation process which distinguishes these. As a result, operations such as the difference (change amount), total (integrated amount), etc.
  • the predetermined calculation processing is performed on the basis of a quantitative variable that is calculated using the second value as the value of the qualitative variable based on a standard that defines a range of the value of the quantitative variable for each value of the qualitative variable. It may be a process of discriminating whether or not the first condition is satisfied depending on whether or not the first value falls within a value range.
  • a quantitative variable that is calculated using the second value as the value of the qualitative variable based on a standard that defines a range of the value of the quantitative variable for each value of the qualitative variable. It may be a process of discriminating whether or not the first condition is satisfied depending on whether or not the first value falls within a value range.
  • the predetermined calculation process may include the second value within a range of the value of the objective variable calculated using the first value as the value of the explanatory variable based on a relational expression indicating a relationship between the objective variable and the explanatory variable. It is good also as a process which distinguishes whether said 1st condition is satisfy
  • the relationship is determined as a condition. Thus, it may be possible to detect the occurrence of an unauthorized state.
  • the fraud detection rule information includes, as the first condition, a relationship between contents of data fields in one or more first type frames and contents of data fields of one or more second type frames, It may be defined by a relational expression using a Pearson product-moment correlation coefficient, a maximum information coefficient, or a canonical correlation coefficient. Accordingly, it may be possible to detect the occurrence of an illegal state based on a condition in which the contents of two types of data frames having different IDs are defined by relational expressions.
  • the fraud detection rule information further includes a relationship of data field contents between the first type frame and a third type frame that is a data frame having a third identifier different from both the first identifier and the second identifier.
  • the first type frame and the third type frame received in the reception step further indicate the second condition indicated by the fraud detection rule information.
  • the fraud detection method further determines whether the first type frame is in accordance with the number of conditions determined not to be satisfied in the fraud determination step among the first condition and the second condition.
  • the monitoring electronic control unit electronic control unit for transmitting the frame so that can be received may be include a transmission step of transmitting a predetermined frame.
  • the fraud detection method may further use intrusion detection rule information indicating a condition for the data frame defined for each identifier of the data frame, so that the data frame received from the bus in the receiving step is the intrusion detection rule.
  • Intrusion determination step for determining whether or not the corresponding condition indicated by the information is satisfied, and determining the content of the countermeasure processing according to the combination of the determination result in the fraud determination step and the determination result in the intrusion determination step,
  • the coping step of executing coping processing according to the determination wherein the condition for the data frame of one identifier indicated by the intrusion detection rule information is received within a predetermined interval and a receiving interval between the data frames having the identifier Number of data frames having the identifier and data between the data frames having the identifier It may include a condition relating to any of the differences is that the variation of the value to be extracted from the field.
  • the fraud detection method further includes a verification step of verifying the authenticity of the authenticator for authentication in the data frame received from the bus.
  • the determination result in the fraud determination step and the intrusion The determination of the content of the countermeasure process is performed according to the combination of the determination result in the determination step and the verification result in the verification step, and the key update relating to the update of the authentication key is performed as the content of the countermeasure process under a certain condition
  • the processing may be determined. As a result, it is possible to classify the content or impact of an attack by an attacker by combining the fraud determination based on the fraud detection rule information, the intrusion determination based on the intrusion detection rule information, and the verification result of the authenticator. It may be possible to determine (select) appropriate response processing for an attack, such as updating a key related to authentication.
  • the fraud detection method may further include the determination at the fraud determination step and the determination at the intrusion determination step for the data frame received at the reception step after the key update process is executed at the handling step. And the verification in the verification step, and when the combination of the determination result in the fraud determination step, the determination result in the intrusion determination step and the verification result in the verification step satisfies a predetermined condition, An additional coping step for performing coping processing different from the key update processing may be included. As a result, by defining a predetermined condition so that the case where the situation is not improved by the execution of the key update process can be detected, the situation that is not improved by the key update process can be appropriately dealt with by another countermeasure process. could be possible.
  • the fraud detection method detects that the fraud state has occurred, a subnetwork to which a frame related to the occurrence of the fraud state is transmitted, an electronic control unit that transmits the frame, One of the identifiers of the frame may be specified.
  • information related to the occurrence of an unauthorized state is specified, it is possible to classify the details of the attack by the attacker in more detail, so that it is possible to respond more appropriately to the attack.
  • the fraud detection method further executes a countermeasure process when it is detected that the fraud state has occurred, so that the specific electronic control unit connected to the bus can receive the countermeasure process.
  • Transmitting a diagnostic frame confirming the correctness of a specific electronic control unit connected to the bus by challenge response authentication, and performing a notification to prompt confirmation of a diagnostic port in the bus; , Notifying the driver of the vehicle equipped with the in-vehicle network system to stop or slow down, and notifying the driver of the vehicle equipped with the in-vehicle network system to go to the dealer And notifying a driver of a vehicle equipped with the in-vehicle network system that an unauthorized state has occurred, The electronic control unit connected to the network is notified that the data frame having the specific identifier is illegal, and the illegal data frame is transmitted to a server outside the vehicle equipped with the in-vehicle network system.
  • a multivariate analysis based on a set of frames received from the bus is used to specify a relationship between frame contents between frames having different identifiers, and to indicate the specified relationship.
  • the fraud detection rule information may be generated or updated so as to indicate a condition. Thereby, it is possible to appropriately generate fraud detection rule information so that the occurrence of the fraud state can be appropriately detected.
  • a monitoring electronic control unit (monitoring ECU) is a monitoring electronic control unit connected to the bus in an in-vehicle network system including a plurality of electronic control units that communicate via a bus.
  • a fraud detection rule holding unit that holds fraud detection rule information indicating a first condition that is a condition regarding a relationship between contents of a frame having a first identifier and a frame having an identifier different from the first identifier;
  • a fraud determination unit that determines whether a set of frames received from the bus by the reception unit satisfies the first condition indicated by the fraud detection rule information.
  • the electronic control unit enters an unauthorized state due to unauthorized rewriting of firmware or execution of malware
  • the unauthorized state is caused by a disturbance in the relationship between a frame transmitted by the ECU and a frame having another identifier. It can be detected that.
  • An in-vehicle network system is an in-vehicle network system including a plurality of electronic control units that communicate via a bus, and a frame having a first identifier and an identifier different from the first identifier
  • a fraud detection rule holding unit for holding fraud detection rule information indicating a first condition, which is a condition regarding a content relationship with a frame having a reception, and received from the bus to determine whether or not an illegal state has occurred
  • An in-vehicle network system including a fraud determination unit that determines whether or not a set of frames that have been satisfied satisfies the first condition indicated by the fraud detection rule information.
  • the fraud detection method is a method for detecting that an illegal frame is transmitted to a bus from an unauthorized node (for example, an ECU controlled by an attacker), and is mainly executed by a monitoring ECU connected to the bus.
  • the monitoring ECU in the in-vehicle network system detects an illegal state (an illegal data frame has been transmitted) based on the relationship between the contents of data frames (messages) having two different identifiers (message IDs). Detect.
  • FIG. 1 is a diagram showing an overall configuration of the in-vehicle network system 10.
  • 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 CAN bus that configures the in-vehicle network, and uses a fraud detection method.
  • the in-vehicle network system 10 includes a bus 300, a monitoring ECU 100, nodes connected to the bus 300 such as ECUs 200 a, ECU 200 b, ECU 200 c, and ECU 200 d connected to various devices.
  • the in-vehicle network system 10 may include a number of ECUs in addition to the monitoring ECU 100 and the ECUs 200a, 200b, 200c, and 200d.
  • 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.
  • ECU 200a, ECU 200b, ECU 200c, and ECU 200d are connected to bus 300, and are connected to speed sensor 210, acceleration sensor 220, gear (transmission mechanism) 230, and instrument panel (instrument panel) 240, respectively.
  • the ECU 200a periodically acquires the speed of the vehicle from the speed sensor 210, and periodically transmits a data frame notifying the acquired speed to the bus 300.
  • the ECU 200b periodically acquires the acceleration of the vehicle from the acceleration sensor 220, and periodically transmits a data frame that notifies the acquired acceleration to the bus 300.
  • the ECU 200 c periodically acquires the state of the gear 230 and periodically transmits a data frame notifying the state of the gear 230 to the bus 300.
  • the ECU 200d receives each data frame notifying the speed of the vehicle or the state of the gear, and updates the information displayed on the instrument panel 240.
  • the monitoring ECU 100 is a kind of ECU that is connected to the bus 300, and monitors data frames that flow on the bus (that is, data frames that appear on the bus) to determine whether or not an unauthorized data frame has been transmitted (unauthorized). Fraud detection processing for performing (determination).
  • 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.
  • 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 monitoring ECU 100.
  • the monitoring ECU 100 includes a frame transmission / reception unit 110, a frame processing unit 120, a fraud determination unit 130, a fraud handling unit 140, a frame generation unit 150, a frame reception history holding unit 160, a fraud detection rule holding unit 170, The fraud determination result holding unit 180 and the ECU information table holding unit 190 are configured.
  • Each component of the monitoring ECU 100 shown in FIG. 4 can be realized by a storage medium such as a memory of the monitoring ECU 100, a communication circuit, a processor that executes a program stored in the memory, or the like.
  • the frame transmission / reception unit 110 transmits / receives a frame (data frame or the like) according to the CAN protocol to the bus 300.
  • the frame transmission / reception unit 110 has a function as a reception unit that receives a frame from the bus 300 bit by bit.
  • the frame transmission / reception unit 110 transfers information such as ID, DLC, and data in the data frame to the frame processing unit 120. If the frame transmission / reception unit 110 determines that the data frame does not conform to the CAN protocol, the frame transmission / reception unit 110 transmits an error frame.
  • the frame transmission / reception unit 110 receives an error frame during reception of a data frame, that is, when it interprets that the value in the received data frame is an error frame, the data frame is discarded thereafter. To do.
  • the frame transmission / reception unit 110 transmits the contents of the data frame to the bus 300 one bit at a time. Processing in accordance with the CAN protocol such as communication arbitration is also realized in the frame transmission / reception unit 110.
  • the frame processing unit 120 receives data frame information from the frame transmitting / receiving unit 110 and interprets the contents of the data frame.
  • the frame processing unit 120 acquires information such as vehicle speed, acceleration, or gear state indicated by the data frame transmitted from each of the ECUs 200a, 200b, and 200c, and based on the acquired information, the frame reception history holding unit 160
  • the information (frame reception history) related to each data frame stored in is updated.
  • the fraud determination unit 130 determines whether or not an illegal data frame has been received (fraud determination related to whether or not an illegal data frame has been transmitted) and fraud detection rule information held by the fraud detection rule holding unit 170. Based on the frame reception history held by the frame reception history holding unit 160, the predetermined period of time (for example, 100 ms) is periodically performed. The fraud determination unit 130 performs fraud determination depending on whether the condition is satisfied for each condition related to the relationship between frames having a plurality of different IDs indicated by the fraud detection rule information. For example, when the condition is not satisfied Judged as illegal. The fraud determination unit 130 updates the fraud determination result held by the fraud determination result holding unit 180 based on the fraud determination result.
  • the fraud determination unit 130 determines that each frame ID is abnormal depending on the number of fraud detected based on the condition indicated by the fraud detection rule information regarding the frame of the ID (for example, the number of conditions that are not satisfied). The degree of abnormality is calculated, and the degree of abnormality is added to the fraud determination result held by the fraud determination result holding unit 180. If the number detected as illegal is 0, the degree of abnormality is 0, and the degree of abnormality of 0 indicates that no abnormality was detected. The fraud determination unit 130 also notifies the fraud handling unit 140 that fraud has been detected when it is determined as fraudulent as a result of the fraud determination (that is, when the occurrence of a fraud state is detected).
  • the fraud handling unit 140 When the fraud handling unit 140 is notified from the fraud determination unit 130 that fraud has been detected, the fraud determination result stored in the fraud determination result holding unit 180 and the ECU stored in the ECU information table holding unit 190 Referring to the information table, the content of the countermeasure processing as a countermeasure against fraud is determined.
  • the fraud handling unit 140 performs control for executing the handling process when the handling process is determined. For example, the fraud handling unit 140 detects that fraud is detected in relation to a data frame having a specific ID from the fraud determination result (for example, when fraud is detected and the calculated abnormality degree is the highest).
  • the frame generation unit 150 is requested to generate a diagnostic message for the ECU that transmits the corresponding data frame.
  • the frame generation unit 150 When the generation of a data frame to be transmitted is requested, the frame generation unit 150 generates the data frame and causes the frame transmission / reception unit 110 to transmit the data frame. For example, when the generation of a diagnostic message is requested, the frame generation unit 150 generates a data frame representing a predetermined diagnostic message and transmits the data frame to the bus 300 via the frame transmission / reception unit 110. To do.
  • the frame reception history holding unit 160 holds a frame reception history (see FIG. 5), which is information on data frames received sequentially by the monitoring ECU 100.
  • the fraud detection rule holding unit 170 holds fraud detection rule information (see FIG. 6) that the fraud determination unit 130 refers to for fraud determination.
  • the fraud determination result holding unit 180 holds the fraud determination result (see FIG. 7) as a result of the fraud determination unit 130 determining whether or not the rule (condition) indicated by the fraud detection rule information is met.
  • the ECU information table holding unit 190 holds an ECU information table (see FIG. 8) configured by associating information on an ECU that transmits a data frame of the ID for each ID.
  • FIG. 5 shows an example of a frame reception history held by the frame reception history holding unit 160.
  • the frame reception history is information relating to the contents of the data frame received by the monitoring ECU 100 from the past to the present.
  • three times from the current (latest) for each of the three IDs in the frame reception history three times from the current (latest) for each of the three IDs in the frame reception history.
  • Specific values values indicated by the contents of the data frame received every unit time (for example, 100 ms) up to the previous time are shown.
  • the value of the vehicle speed indicated by the latest received data frame is 18.0 km / h
  • the value of the vehicle speed of the data frame received one time before is 19 2 km / h
  • the value received 2 times before is 19.6 km / h
  • the value received 3 times before is 20.0 km / h.
  • the acceleration values indicated by the data frames received three times before the latest are 0.10 m / s ⁇ 2, 0.10 m / s ⁇ 2, 0, respectively. .20 m / s ⁇ 2, 0.20 m / s ⁇ 2.
  • all the values of the gear state indicated by the data frame received from the latest three times before represent the state of “D” (drive). It shows that.
  • the frame reception history is used by the fraud determination unit 130 to confirm the relationship of contents between data frames having different IDs (determination as to whether or not the conditions indicated by the fraud detection rule information are satisfied).
  • FIG. 5 only the value indicated by the content of the data frame received three times before the latest is shown, but the frame reception history is information necessary for fraud determination performed by the fraud determination unit 130 using fraud detection rule information.
  • the frame reception history may be information indicating the contents of all data frames received by the monitoring ECU 100 after the vehicle starts to travel (for example, when the engine is started).
  • the frame reception history holding unit 160 may have, for example, one area for storing the integral value of acceleration.
  • FIG. 6 shows an example of fraud detection rule information held by the fraud detection rule holding unit 170.
  • the fraud detection rule information includes one or more conditions (rules) relating to the relationship between the contents of data frames having different IDs (three in the example of FIG. 6).
  • the fraud detection rule information includes, as the rule of rule number 1, a condition regarding the relationship between the content (vehicle speed) of the data frame with ID 0x100 and the content (acceleration) of the data frame with ID 0x200. It is out.
  • This condition is that the value of the vehicle speed (speed) indicated by the data frame whose ID is 0x100 received within a certain unit time (for example, 100 ms) is the unit time and the past unit time (for example, when the vehicle starts to travel).
  • the condition is that the acceleration value is within a range of ⁇ 1 km / h of the integrated value of acceleration, which is obtained by accumulating the acceleration value indicated by the data frame whose ID is 0x200 received in each subsequent unit time).
  • the integrated value of acceleration can be calculated by the following formula including unit conversion, for example.
  • Integral value ( ⁇ (acceleration indicated by received ID0x200 data frame ⁇ 3.6)) / (1 / ID0x200 data frame transmission cycle)
  • the fraud detection rule information includes a rule with rule number 2 and the relationship between the content of the data frame with ID 0x100 (vehicle speed) and the content of the data frame with ID 0x300 (gear state). Including the conditions. This condition is that when the value of the state of the gear indicated by the data frame with ID 0x300 received within a certain unit time represents “D” (drive), the ID received within the same unit time is 0x100.
  • the amount of change (for example, difference) of the vehicle speed indicated by the data frame from the vehicle speed indicated by the data frame received within the previous unit time is suppressed to 1.0 km / h or less, and is not “D” but “R” ( In the case of representing (reverse), it is a condition that the amount of change in the vehicle speed is suppressed to 0.5 km / h or less. If this condition is not satisfied, the fraud determination unit 130 determines that it is illegal.
  • the fraud detection rule information includes, as a rule with rule number 3, a relationship between the contents (acceleration) of the data frame with ID 0x200 and the contents (gear state) of the data frame with ID 0x300. Including the conditions.
  • This condition is that when the value of the state of the gear indicated by the data frame with ID 0x300 received within a certain unit time represents “D” (drive), the ID received within the same unit time is 0x200.
  • the change amount (for example, difference) of the acceleration indicated by the data frame from the acceleration indicated by the data frame received within the previous unit time is suppressed to 1.0 m / s ⁇ 2 or less, and “R” instead of “D”.
  • "(Reverse)" represents a condition that the amount of change in acceleration is suppressed to 0.5 m / s ⁇ 2 or less. If this condition is not satisfied, the fraud determination unit 130 determines that it is illegal.
  • FIG. 7 shows an example of the fraud determination result held by the fraud determination result holding unit 180.
  • the fraud determination result is obtained based on the condition relating to the relationship between the data frame of the ID and the data frame of another ID for each ID of the data frame (the left end in the figure). 130 indicates whether it is determined to be fraudulent or not (whether determined to be appropriate).
  • a rule number for a rule (condition) in fraud detection rule information used for the determination is appended.
  • the fraud determination unit 130 determines that the condition of rule number 1 and the condition of rule number 2 are not satisfied (that is, it is determined to be illegal), and the condition of rule number 3 is determined to be satisfied.
  • An example that is, determined to be appropriate is shown.
  • the degree of abnormality calculated according to the number of fraud determination (detection) for each ID frame by the fraud determination unit 130 is added.
  • the data frame with ID 0x100 is determined to be illegal under the condition of rule number 1 and determined to be illegal under the condition of rule number 2, so the degree of abnormality is calculated as 2.
  • a data frame with an ID of 0x200 is determined to be illegal under the condition of rule number 1, but is not determined to be illegal under the condition of rule number 3, so the degree of abnormality is calculated as 1.
  • the data frame with ID 0x300 is determined to be illegal under the condition of rule number 2, but is not determined to be illegal under the condition of rule number 3, so the degree of abnormality is calculated as 1.
  • FIG. 8 shows an example of an ECU information table held by the ECU information table holding unit 190.
  • the ECU information table is a table in which information (transmission ECU information) about the ECU that is the transmission source of the data frame of the ID is associated with each ID of the data frame.
  • the example of FIG. 8 indicates that the data frame with ID 0x100 is transmitted from the ECU 200a, the data frame with ID 0x200 is transmitted from the ECU 200b, and the data frame with 0x300 is transmitted from the ECU 200c. Although omitted in FIG.
  • the transmission ECU information about the ECU indicated by the ECU information table is, for example, the contents of a diagnostic message that is a data frame transmitted to the ECU to diagnose the state of the ECU. It may include information necessary for specifying
  • the diagnosis message transmitted to diagnose the state of a certain ECU includes, for example, identification information for identifying the ECU, information necessary for diagnosis of the ECU, and the like.
  • the ECU diagnosis that is started when the monitoring ECU 100 transmits a diagnosis message is, for example, a diagnosis of whether or not the firmware of the ECU has been illegally rewritten according to a predetermined method.
  • a predetermined process such as transmitting diagnostic information (for example, a hash value of memory contents) to the monitoring ECU 100 is performed.
  • FIG. 9 is a configuration diagram of the ECU 200a.
  • the ECU 200a includes a frame transmission / reception unit 201, a frame processing unit 202, a device input / output unit 203, and a frame generation unit 204.
  • Each of these components is a functional component, and each function is realized by a communication circuit in the ECU 200a, a processor that executes a control program stored in a memory, a digital circuit, or the like.
  • the ECU 200b, the ECU 200c, and the ECU 200d have substantially the same configuration as the ECU 200a.
  • the frame transmission / reception unit 201 transmits / receives a frame (data frame or the like) according to the CAN protocol to the bus 300.
  • the frame transmitting / receiving unit 201 receives a data frame from the bus 300 one bit at a time, and when the reception of the data frame is completed without error, transfers information such as ID, DLC, and data in the data frame to the frame processing unit 202. If the frame transmission / reception unit 201 determines that the data frame does not conform to the CAN protocol, the frame transmission / reception unit 201 transmits an error frame. If the frame transmission / reception unit 201 receives an error frame while receiving a data frame, the frame transmission / reception unit 201 discards the data frame thereafter.
  • the frame transmission / reception unit 201 transmits the contents of the frame received from the frame generation unit 204 to the bus 300. Processing in accordance with the CAN protocol such as communication arbitration is also realized in the frame transmission / reception unit 201.
  • the frame processing unit 202 interprets the contents of the received data frame.
  • the ECU 200d having the same configuration as the ECU 200a will be described as an example.
  • Information necessary for updating the display of the instrument panel 240 and the like is notified to the device input / output unit 203 of the ECU 200d.
  • the frame processing unit 202 performs a predetermined process so that the monitoring ECU 100 can receive diagnostic information. It can be transmitted to the bus 300 via 201.
  • the device input / output unit 203 communicates with devices connected to the ECU 200a, ECU 200b, or ECU 200c.
  • the device input / output unit 203 acquires the current vehicle speed from the speed sensor 210 and notifies the frame generation unit 204 of it.
  • the device input / output unit 203 acquires the current vehicle acceleration from the acceleration sensor 220 and notifies the frame generation unit 204 of the acceleration.
  • the device input / output unit 203 acquires the current gear shift position and notifies the frame generation unit 204 of it.
  • the device input / output unit 203 updates the display of the instrument panel 240 by sending control information to the instrument panel 240 based on the value notified from the frame processing unit 202.
  • the frame generation unit 204 generates a data frame to be transmitted to the bus 300 based on the information notified from the device input / output unit 203, and transmits the generated data frame to the bus via the frame transmission / reception unit 201.
  • the frame generation unit 204 generates a data frame including vehicle speed information from the speed sensor 210 notified from the device input / output unit 203 at a predetermined cycle (for example, at an interval of 100 ms). Notify the transmission / reception unit 201.
  • a predetermined cycle for example, at an interval of 100 ms
  • FIG. 10 shows an example of a data frame transmitted by each of the ECU 200a, the ECU 200b, and the ECU 200c.
  • the data frame 401 transmitted by the ECU 200a has an ID of 0x100 and a DLC of 2, and the data field indicates the vehicle speed (0.1 km / h unit) with 2 bytes including the first byte and the second byte. To express. In FIG. 10, the example which shows the vehicle speed of 20.0 km / h (0xC8) is shown.
  • the data frame 402 transmitted by the ECU 200b has an ID of 0x200 and a DLC of 2, and the data field has an acceleration (0.01 m / s ⁇ 2 units) with 2 bytes including the first byte and the second byte. ).
  • the example which shows the acceleration of 0.10 m / s ⁇ 2 is shown.
  • the ID is 0x200
  • the DLC is 1
  • the data field indicates a value indicating the state of the gear 230. This value is 0 when the gear 230 is in the “N” (neutral) state, 1 when the gear 230 is in the “R” (reverse) state, and 2 when the gear 230 is in the “D” (drive) state.
  • FIG. 10 shows an example indicating that the state of the gear 230 is “D”.
  • FIG. 11 is a flowchart illustrating an operation example of the monitoring ECU 100.
  • the monitoring ECU 100 periodically performs fraud detection processing (fraud determination) every predetermined unit time (for example, 100 ms).
  • the monitoring ECU 100 waits until the timing of fraud determination performed periodically (step S1101), and performs fraud determination by monitoring the bus 300 (step S1102).
  • step S1102 the monitoring ECU 100 refers to the frame reception history held in the frame reception history holding unit 160 by the fraud determination unit 130 and indicates the fraud detection rule information held in the fraud detection rule holding unit 170. Whether each rule (condition) is satisfied or not is determined as appropriate or illegal.
  • the monitoring ECU 100 records the determination result in step S1102 as the fraud determination result in the fraud determination result holding unit 180 by the fraud determination unit 130, calculates the degree of abnormality according to the fraud determination result, and calculates the calculated degree of abnormality. Is added to the fraud determination result (step S1103). For example, if the calculated degree of abnormality is 0, it indicates that no abnormality has been detected, and if the degree of abnormality is greater than 0, it indicates that an abnormality has been detected.
  • Monitoring ECU100 discriminate
  • the monitoring ECU 100 determines the content of the handling process as a response to the unauthorized operation by the unauthorized response unit 140. Specifically, when an abnormality is detected, the monitoring ECU 100 displays information about the ECU that transmits the data frame having the highest abnormality degree ID in the fraud determination result held in the fraud determination result holding unit 180.
  • the ECU is acquired by referring to the ECU information table of the ECU information table holding unit 190, the ECU is identified (step S1105), and a diagnostic message for the identified ECU is transmitted to the ECU.
  • the state of the ECU is confirmed by receiving information or the like (step S1106).
  • step S1106 the monitoring ECU 100 proceeds to step S1101 and waits for the next timing of fraud determination. If it is detected in step S1106 that an abnormality has occurred in the ECU, the monitoring ECU 100 sends a warning notification to the vehicle driver, information notification to an external server, etc. Control for coping with this can be performed.
  • FIG. 12 is a diagram illustrating an operation example of monitoring the bus 300 in the in-vehicle network system 10.
  • a data frame (data frame indicating a vehicle speed) with an ID of 0x100, a data frame (data frame indicating an acceleration) with an ID of 0x200, and a data frame (gear with an ID of 0x300) are respectively sent from the ECUs 200a, 200b, and 200c.
  • the data frame indicating the state of (1) is periodically transmitted to the bus 300.
  • the firmware of the ECU 200a is illegally rewritten by the attacker, and the ECU 200a falsifies the vehicle speed notified from the speed sensor 210 from a certain point in time, and sends a data frame indicating the unauthorized vehicle speed to the bus 300.
  • An example of transmission is shown.
  • the monitoring ECU 100 performs fraud determination (fraud detection processing) periodically at a period of 100 ms immediately after the timing when the data frame with the ID of 0x300 is received. Assuming that the timing of performing the fraud determination is the end of each unit time (100 ms), the data frame received from the bus 300 in each of the first three unit times is stored in the fraud detection rule holding unit 170. No fraud is detected in any of the rule numbers 1 to 3 indicated by the fraud detection rule information. It is assumed that the integrated value of acceleration is 20.0 km / h at the first time point in this example. For this reason, the integrated value of acceleration sequentially changes to 20.072, 20.144, 20.18, 20.21 km / h by receiving each data frame indicating the first to fourth accelerations.
  • fraud determination fraud detection processing
  • the monitoring ECU 100 has a difference (change amount) between the vehicle speed (18.0 km / h) indicated by the vehicle speed data frame received the fourth time and the integral value (20.2 km / h) based on the acceleration indicated by the acceleration data frame. Since it exceeds 1.0 km / h, the rule (condition) of rule number 1 is not satisfied and fraud is detected. Further, when the gear state indicated by the data frame received for the fourth time is “D” (drive), the monitoring ECU 100 changes the speed change (the vehicle speed of 18.0 km indicated by the data frame of the vehicle speed received for the fourth time). Since the difference between / h and the vehicle speed of 19.2 km / h indicated by the previously received data frame exceeds 1.0 km / h, the fraud of rule number 2 is detected.
  • the monitoring ECU 100 is the ECU in which the ECU information table holding unit 190 holds the transmission source of the data frame with the ID of 0x100, which is calculated as 2 with the highest degree of abnormality because the two rules (conditions) are not satisfied.
  • the ECU 200a is specified.
  • monitoring ECU100 transmits a diagnostic message with respect to ECU200a.
  • monitoring ECU 100 detects fraud based on the relationship between the contents of data frames having a plurality of different IDs.
  • the ID The transmission of an illegal data frame can be detected from the collapse of the content relationship between different data frames. For example, even if an attacker controls an ECU and transmits an illegal data frame, the fraud is detected based on the relationship with the data frame transmitted by another ECU. It becomes difficult for an attacker to attack.
  • the monitoring ECU 100 narrows down the ID of the illegal data frame and the ECU of the transmission source by calculating the degree of abnormality based on the result of the fraud determination based on the plurality of conditions indicated by the fraud detection rule information, and efficiently Send diagnostic messages.
  • narrowing down the ECUs to transmit diagnostic messages corresponding to the ECUs is useful for suppressing an increase in the traffic volume of the bus 300, and even when taking measures other than transmitting diagnostic messages.
  • it is useful to narrow down the ECUs by calculating the degree of abnormality.
  • the monitoring ECU in the in-vehicle network system 11 is a method for detecting the occurrence of a fraud state based on the relationship between the contents of data frames having different IDs (the fraud determination shown in the first embodiment).
  • a countermeasure process is comprehensively determined using a method for detecting the occurrence of an unauthorized state based on a rule (condition) defined for each ID for a data frame having a single ID.
  • FIG. 13 is a diagram showing the overall configuration of the in-vehicle network system 11.
  • the in-vehicle network system 11 includes a bus 300 and nodes connected to the bus 300 such as ECUs 200a, 200b, 200c, 200d connected to various devices such as a monitoring ECU 2100 and sensors. In the in-vehicle network system 11, there is further a diagnostic port 2400 connected to the bus 300.
  • the in-vehicle network system 11 is the same as the in-vehicle network system 10 (see FIG. 1) shown in the first embodiment except for points that are not particularly described here.
  • the same components as the in-vehicle network system 10 are shown in FIG. 1 are denoted by the same reference numerals as those in FIG. 1, and description thereof is omitted here.
  • the monitoring ECU 2100 is a partial modification of the monitoring ECU 100 shown in the first embodiment.
  • the monitoring ECU 2100 monitors data frames flowing through the bus 300 and determines whether or not an unauthorized data frame has been transmitted (unauthorized determination and Intrusion detection) to detect the occurrence of an unauthorized state. Furthermore, the monitoring ECU 2100 determines the content of the countermeasure process according to the situation (the result of the fraud determination and the intrusion determination) in which the unauthorized data frame is transmitted, and performs the countermeasure process.
  • the diagnostic port 2400 is a port that can access the bus 300. Via the diagnostic port 2400, the bus 300 can be accessed by a device such as a diagnostic tool. That is, a diagnosis tool or the like can be connected to the diagnosis port 2400 to diagnose the state of the ECU connected to the bus 300. Since it is possible to transmit / receive data frames to / from the bus 300 from the diagnostic port 2400, it is also conceivable that an attacker transmits an illegal data frame via the diagnostic port 2400. Here, injection (transmission) of an unauthorized data frame to the bus 300 via the diagnostic port 2400 is also referred to as intrusion.
  • FIG. 14 is a configuration diagram of the monitoring ECU 2100.
  • the monitoring ECU 2100 includes a frame transmission / reception unit 110, a frame processing unit 120, a fraud determination unit 130, an intrusion determination unit 2131, an abnormality handling unit 2140, a frame generation unit 150, a frame reception history holding unit 2160, and fraud detection.
  • the rule holding unit 170, the intrusion detection rule holding unit 2171, the fraud determination result holding unit 180, the intrusion determination result holding unit 2181, the ECU information table holding unit 190, and the abnormality correspondence table holding unit 2191 are configured.
  • the Components having the same functions as those in the first embodiment are denoted by the same reference numerals as those in FIG. 4 in FIG.
  • Each component of the monitoring ECU 2100 illustrated in FIG. 14 can be realized by a storage medium such as a memory of the monitoring ECU 2100, a communication circuit, a processor that executes a program stored in the memory, or the like.
  • the intrusion detection unit 2131 holds an intrusion detection rule holding unit 2171 for determining whether or not an illegal data frame is injected into the bus 300 from the outside (intrusion determination related to whether or not an illegal data frame is injected). Based on the intrusion detection rule information to be performed and the frame reception history held by the frame reception history holding unit 2160, it is periodically performed with a predetermined unit time (for example, 100 ms) as a cycle.
  • the intrusion determination unit 2131 updates the intrusion determination result held by the intrusion determination result holding unit 2181 based on the result of the intrusion determination.
  • the intrusion determination unit 2131 notifies the abnormality handling unit 2140 that an intrusion has been detected when it is determined as an intrusion as a result of the intrusion determination, that is, when an abnormality has been detected.
  • the abnormality handling unit 2140 When the abnormality handling unit 2140 is notified from the fraud determination unit 130 or the intrusion determination unit 2131 that fraud or intrusion is detected (occurrence of abnormality), the fraud determination result stored in the fraud determination result holding unit 180, Refer to the intrusion determination result stored in the intrusion determination result holding unit 2181, the ECU information table stored in the ECU information table holding unit 190, and the abnormality correspondence table stored in the abnormality correspondence table holding unit 2191. Then, the content of the countermeasure processing as a response to the abnormality is determined. The abnormality handling unit 2140 performs control for executing the handling process when the handling process is determined.
  • the abnormality handling unit 2140 determines that the data frame including the specific ID is abnormal (for example, illegal and has the highest degree of abnormality calculated), and determines that the data frame including the specific ID is intrusion. If the intrusion determination result is acquired, there is a high possibility that an unauthorized data frame is injected through the diagnostic port 2400. Therefore, the user is requested to confirm whether an unauthorized device is connected to the diagnostic port 2400.
  • the frame generation unit 150 is requested to generate a data frame for transmission to prompt the driver (such as a driver). Further, for example, the abnormality handling unit 2140 obtains an intrusion determination result that an intrusion of a data frame including a specific ID is not detected, and an injustice determination result that an abnormality of the data frame including the specific ID is detected. If acquired, it is highly likely that the firmware of the ECU has been illegally rewritten, and referring to the ECU information table, a diagnostic message is generated for the ECU that transmits the corresponding data frame. Request to unit 150.
  • the frame reception history holding unit 2160 holds a frame reception history (see FIG. 15) that is information on data frames received sequentially by the monitoring ECU 2100.
  • the intrusion detection rule holding unit 2171 holds intrusion detection rule information (see FIG. 16) indicating the conditions defined for each ID for the data frame of a single ID that the intrusion determination unit 2131 refers to for intrusion determination.
  • the intrusion determination result holding unit 2181 holds the intrusion determination result (see FIG. 17) as a result of determining whether or not the intrusion determination unit 2131 satisfies the condition indicated by the intrusion detection rule information.
  • the anomaly correspondence table holding unit 2191 holds an anomaly correspondence table (see FIG. 18) that is used to determine the content of appropriate countermeasure processing for the occurrence of fraud or intrusion according to the fraud determination result and the intrusion determination result. To do.
  • FIG. 15 shows an example of a frame reception history held by the frame reception history holding unit 2160.
  • the frame reception history is information relating to the contents of the data frame received by the monitoring ECU 2100 from the past to the present.
  • twice from the current (latest) for each of the three IDs in the frame reception history twice from the current (latest) for each of the three IDs in the frame reception history.
  • the reception time of the data frame received before and the specific value (the value indicating each of the vehicle speed, acceleration, and gear state) indicated by the content of the data frame are shown.
  • the reception time of the latest data frame among data frames having an ID of 0x100 related to vehicle speed is 210 ms
  • the value of the vehicle speed indicated by the received data frame is 18.0 km / h.
  • the vehicle speed value of the received data frame was 19.2 km / h
  • the previous reception time was 10 ms
  • the received value was 19.6 km / h It is shown that.
  • the reception times of the data frames received from the latest two times before are 220 ms, 120 ms, and 20 ms, respectively, and the acceleration value indicated by each received data frame is It shows that they were 0.10 m / s ⁇ 2, 0.10 m / s ⁇ 2, and 0.20 m / s ⁇ 2, respectively.
  • the reception times of the data frames received from the latest to the previous two times are 230 ms, 130 ms, and 30 ms, respectively.
  • the state values all indicate the state of “D” (drive).
  • This frame reception history is used in fraud determination by the fraud determination unit 130 and intrusion determination by the intrusion determination unit 2131.
  • the frame reception history is information necessary for fraud determination performed by the fraud determination unit 130 using fraud detection rule information.
  • the information required in the intrusion determination performed by the intrusion determination unit 2131 using the intrusion detection rule information may be included.
  • the frame reception history may be information indicating the contents of all the data frames received by the monitoring ECU 2100 after the vehicle starts to travel (for example, when the engine is started).
  • the frame reception history holding unit 2160 may have, for example, one area for storing an integral value of acceleration.
  • FIG. 16 shows an example of intrusion detection rule information held by the intrusion detection rule holding unit 2171.
  • the intrusion detection rule information includes a condition (rule) that should be satisfied for a data frame having the ID for each ID. Whether or not the condition indicated by the intrusion detection rule information is satisfied is checked by the intrusion determination unit 2131 for intrusion determination.
  • the intrusion determining unit 2131 detects an intrusion by detecting a data frame that does not satisfy this condition.
  • the intrusion detection rule information indicates a reception interval, a margin, and a data change amount for defining a condition for each ID.
  • the reception interval indicates an interval at which the data frame with the corresponding ID is received, and the margin indicates an allowable range of fluctuation of the reception interval.
  • the reception interval is 100 ms and the margin is 5 ms. Therefore, the interval at which the data frame with an ID of 0x100 is received is within the range of 95 ms to 105 ms. If the condition is satisfied, the intrusion determination is normal (not intrusion). If this condition is not satisfied, it is determined that there is an abnormality (intrusion detection) in the intrusion determination.
  • the data change amount is the change amount (value of the value) of the corresponding ID that changes from the data value extracted from the data field of the previously received data frame to the data value extracted from the data field of the currently received data frame. This indicates the condition of the upper limit of (difference).
  • the data change amount for the data frame (vehicle speed) with ID 0x100 is 2 km / h, so the change amount between the data frames (vehicle speed) of the continuously received data frames with ID 0x100 is If the change is within 2 km / h, the upper limit condition is satisfied, and if the condition is satisfied, it is determined that the intrusion determination is normal (not intrusion).
  • the monitoring ECU 2100 receives a data frame with an ID of 0x100 indicating a vehicle speed of 19.2 km / h
  • the value of the vehicle speed of the data frame with an ID of 0x100 is 17.2 to 21.2 km / h If h, it is determined to be normal. If this condition is not satisfied, it is determined that there is an abnormality (intrusion) in the intrusion determination.
  • a condition for a data frame whose ID is 0x200 a reception interval of 100 ms, a margin of 5 ms, and a data change amount of 5 m / s ⁇ 2 are defined.
  • condition for a data frame whose ID is 0x300 a reception interval of 100 ms and a margin of 5 ms are defined, but a data change amount is not defined. This means that there is no condition regarding the data change amount.
  • the condition for the data frame of each ID indicated by the intrusion detection rule information is that an illegal data frame having the ID is externally transmitted in a situation where normal data frames of the ID are periodically transmitted. It is useful to define conditions such that when injected, the condition is not met due to wrinkling with a normal data frame. In the example of FIG. 16, the condition is defined in view of the possibility that the condition related to the reception interval and the data change amount may not be satisfied due to the mixture of the normal data frame and the illegal data frame injected from the outside. Yes.
  • FIG. 17 shows an example of the intrusion determination result held by the intrusion determination result holding unit 2181.
  • the intrusion determination result indicates that each ID of the data frame is determined to be normal (not intrusion) by the intrusion determination unit 2131 based on the condition relating to the data frame of the ID, or abnormal (intrusion detection). It is determined whether or not.
  • the intrusion determination unit 2131 determines that the data frame with the ID of 0x100 is normal, determines that the data frame with the ID of 0x200 is abnormal, and determines that the data frame with the ID of 0x300 is normal. Show.
  • FIG. 18 shows an example of the abnormality correspondence table held by the abnormality correspondence table holding unit 2191.
  • the abnormality handling unit 2140 determines the content of the countermeasure processing as a response to the abnormality based on the fraud determination result and the intrusion determination result.
  • the correspondence changes depending on the combination of the fraud determination result and the intrusion determination result.
  • the fraud determination result is normal (for example, the degree of abnormality is 0) and the intrusion determination result is normal
  • the abnormality correspondence table does nothing particularly as a countermeasure process (no action is taken). Not).
  • the abnormality correspondence table of this example shows that when the fraud determination result is abnormal (for example, the degree of abnormality is greater than 0) and the intrusion determination result is normal, the ECU corresponding to the transmission source of the abnormal data frame is sent to the ECU. This indicates that checking the situation by sending a diagnostic message is the content of the countermeasure processing.
  • the transmission of the diagnostic message to the relevant ECU is based on the fact that the relationship between the contents of the data frames with different IDs is broken, although an illegal message (data frame for attack) is not injected from the outside. This is a useful process to deal with this because there is a possibility that the firmware of the system is illegally rewritten.
  • the abnormality correspondence table of this example performs notification that prompts the user to confirm an interface for connecting an external device such as the diagnostic port 2400 when the fraud determination result is normal and the intrusion determination result is abnormal. Indicates the content of the countermeasure processing.
  • the notification to this user is not controlled by the ECU in rewriting the firmware of the ECU by the attacker, but there is a possibility that an attack attempt such as resending a normal message from the outside is made, This is a useful process to cope with this.
  • the notification to the user is performed, for example, by transmitting a data frame having a predetermined ID from the monitoring ECU 2100 to the bus 300 and controlling the display of a predetermined message on the instrument panel 240 when the ECU 200d receives the data frame having the predetermined ID. Can be realized.
  • the abnormality correspondence table of this example performs notification that prompts the user to confirm an interface for connecting an external device such as the diagnostic port 2400 when the fraud determination result is abnormal and the intrusion determination result is also abnormal. And transmitting a frame (abnormality notification message) for notifying each ECU that an abnormality has occurred is the content of the countermeasure process. This is an example of a response to a case where there is a possibility that an attack frame is injected from the outside and the ECU is controlled and the risk of control of the vehicle is high.
  • each ECU in the in-vehicle network system 11 is configured to perform predetermined security measures (for example, traveling control such as decelerating and stopping the vehicle, degeneration of the automatic traveling function, etc.) when the abnormality notification message is received. Can be done.
  • predetermined security measures for example, traveling control such as decelerating and stopping the vehicle, degeneration of the automatic traveling function, etc.
  • FIG. 19 is a flowchart illustrating an operation example of the monitoring ECU 2100.
  • the monitoring ECU 2100 periodically performs fraud detection processing (fraud determination) and intrusion detection processing (intrusion determination), for example, every 100 ms.
  • the monitoring ECU 2100 waits until the timing of fraud determination performed periodically (step S2101), and performs fraud determination by monitoring the bus 300 (step S2102).
  • the monitoring ECU 2100 refers to the frame reception history held in the frame reception history holding unit 2160 by the fraud determination unit 130, and indicates the fraud detection rule information held in the fraud detection rule holding unit 170. Whether each rule (condition) is satisfied or not is determined as appropriate or illegal.
  • the fraud determination unit 130 stores the fraud determination result in the fraud determination result holding unit 180 and adds the abnormality degree calculation result to the fraud determination result.
  • the monitoring ECU 2100 performs intrusion determination (step S2103).
  • step S ⁇ b> 2103 the monitoring ECU 2100 refers to the frame reception history held in the frame reception history holding unit 2160 by the intrusion determination unit 2131 and indicates the intrusion detection rule information held in the intrusion detection rule holding unit 2171. Whether it is normal or abnormal (intrusion detection) is determined based on whether the condition is satisfied.
  • the intrusion determination unit 2131 stores the intrusion determination result in the intrusion determination result holding unit 2181.
  • the monitoring ECU 2100 determines the content of the handling process according to the abnormality handling table held by the abnormality handling table holding unit 2191 (step S2104).
  • the monitoring ECU 2100 executes the processing for the content determined in step S2104 (step S2105), and proceeds to step S2101. Note that the monitoring ECU 2100 does not particularly perform the countermeasure process when both the fraud determination result and the intrusion determination result are normal.
  • FIG. 20 shows a first operation example of monitoring the bus 300 in the in-vehicle network system 11.
  • a data frame (data frame indicating a vehicle speed) with an ID of 0x100, a data frame (data frame indicating an acceleration) with an ID of 0x200, and a data frame (gear with an ID of 0x300) are respectively sent from the ECUs 200a, 200b, and 200c.
  • the data frame indicating the state of (1) is periodically transmitted to the bus 300.
  • This example further shows an example in which an illegal data frame having an ID of 0x200 is injected (transmitted) from the diagnostic port 2400 by an attacker at a certain point in time.
  • the monitoring ECU 2100 monitors the bus 300, and when a fraudulent data frame (data frame indicating acceleration-1.50) with an ID of 0x200 is injected from the diagnostic port 2400, fraud detection rule information (see FIG. 6) is displayed.
  • the condition of rule number 3 shown (the condition relating to the relationship between the gear state “D” and the amount of change in acceleration) is not satisfied. For this reason, the monitoring ECU 2100 detects an abnormality by determining that it is illegal in the fraud determination.
  • the reception interval of the data frame with ID 0x200 becomes 50 ms, and is specified by the reception interval and margin for the data frame with ID 0x200 indicated by the intrusion detection rule information (see FIG. 16).
  • the monitoring ECU 2100 detects an abnormality in the intrusion determination.
  • the monitoring ECU 2100 prompts the user to confirm the diagnostic port 2400 according to the abnormality correspondence table (see FIG. 18) and detects an abnormality in the in-vehicle network to each ECU because an abnormality is detected in both the fraud determination and the intrusion determination.
  • a coping process (such as transmission of a predetermined data frame) for notifying that occurrence has occurred is executed.
  • FIG. 21 shows an operation example 2 of monitoring the bus 300 in the in-vehicle network system 11.
  • the ECU 200a, the ECU 200b, and the ECU 200c periodically transmit a data frame indicating the vehicle speed, a data frame indicating the acceleration, and a data frame indicating the gear state to the bus 300, respectively. It shows how it is done.
  • This example further shows an example in which an unauthorized data frame having an ID of 0x100 is injected (transmitted) from the diagnostic port 2400 by an attacker at a certain point in time.
  • the reception interval of the data frame with ID 0x100 becomes 80 ms, and the reception interval for the data frame with ID 0x100 indicated by the intrusion detection rule information and The condition specified by the margin is not satisfied.
  • the fraud determination in the monitoring ECU 2100 does not determine fraud (that is, no abnormality is detected), but the abnormality is detected in the intrusion determination. Since the abnormality is detected only by the intrusion determination, the monitoring ECU 2100 performs a countermeasure process (such as transmission of a predetermined data frame) that prompts the user to confirm the diagnostic port 2400 according to the abnormality correspondence table (see FIG. 18). Execute.
  • the monitoring ECU 2100 has a single ID data frame in addition to the fraud determination in which fraud is detected based on the relationship between the contents of data frames having different IDs.
  • An intrusion determination for detecting an intrusion is performed based on conditions defined for each ID.
  • the content of the countermeasure process is determined according to the combination of the fraud determination result and the intrusion determination result, and the countermeasure process is executed.
  • the ID The transmission of an illegal data frame can be detected from the collapse of the content relationship between different data frames. For example, even if an attacker controls an ECU and transmits an illegal data frame, the fraud is detected based on the relationship with the data frame transmitted by another ECU. It becomes difficult for an attacker to attack. Furthermore, even when an attacker injects an unauthorized data frame from the outside, it can be detected appropriately, and an appropriate response according to the attack situation can be made according to the combination of the fraud determination result and the intrusion determination result. .
  • the monitoring ECU in the in-vehicle network system 12 uses a method for detecting the occurrence of an illegal state based on the relationship between the contents of data frames having different IDs, and IDs for data frames having a single ID.
  • a method for determining success or failure of verification of a message authentication code (MAC) attached to a data frame is used. And comprehensively determine the handling process.
  • MAC message authentication code
  • FIG. 22 is a diagram illustrating the overall configuration of the in-vehicle network system 12.
  • the in-vehicle network system 12 is connected to the bus 300 and each node connected to the bus 300 such as each ECU such as the ECU 3200a, the ECU 3200b, the ECU 3200c, and the ECU 3200d connected to various devices such as the monitoring ECU 3100 and sensors. And a diagnostic port 2400.
  • the in-vehicle network system 12 is the same as the in-vehicle network system 11 (see FIG. 13) shown in the second embodiment except for points that are not particularly described here, and the same components as the in-vehicle network system 11 are shown in FIG. , The same reference numerals as those in FIG. 13 are attached, and the description thereof is omitted here.
  • the monitoring ECU 3100 is a partial modification of the monitoring ECU 2100 shown in the second embodiment.
  • the monitoring ECU 3100 monitors a data frame flowing through the bus 300 and determines whether or not an unauthorized data frame has been transmitted (incorrect determination and Intrusion detection) to detect the occurrence of an unauthorized state. Further, the monitoring ECU 3100 verifies the MAC attached to the data frame flowing through the bus 300, and performs countermeasure processing according to the MAC verification result and the situation (the result of the fraud determination and the intrusion determination) that the illegal data frame is transmitted. Decide the contents and take corrective action.
  • ECU 3200a, ECU 3200b, ECU 3200c, and ECU 3200d are connected to bus 300, and are connected to speed sensor 210, acceleration sensor 220, gear 230, and instrument panel 240, respectively.
  • the ECU 3200a periodically acquires the speed of the vehicle from the speed sensor 210, and periodically transmits a data frame including information indicating the acquired speed and the MAC to the bus 300.
  • ECU 3200b periodically acquires the acceleration of the vehicle from acceleration sensor 220, and periodically transmits a data frame including information indicating the acquired acceleration and MAC to bus 300.
  • the ECU 3200c periodically acquires the state of the gear 230, and periodically transmits a data frame including information indicating the state of the gear 230 and the MAC to the bus 300.
  • the ECU 200d receives each data frame including information indicating the speed of the vehicle or information indicating the state of the gear, verifies the MAC attached to the data frame, and if the verification is successful (verifies that the MAC is valid). If it can, the information displayed on the instrument panel 240 is updated.
  • the monitoring ECU 3100, ECU 3200a, ECU 3200b, ECU 3200c, and ECU 3200d share a common secret key, and generate and verify a MAC by, for example, an AES (Advanced Encryption Standard) -CMAC (Cipher-based MAC) algorithm.
  • AES Advanced Encryption Standard
  • CMAC Cipher-based MAC
  • FIG. 23 is a configuration diagram of the monitoring ECU 3100.
  • the monitoring ECU 3100 includes a frame transmission / reception unit 110, a frame processing unit 120, a fraud determination unit 3130, an intrusion determination unit 3131, an abnormality handling unit 3140, a frame generation unit 150, a MAC verification unit 3500, and a MAC generation unit 3510.
  • Each component of the monitoring ECU 3100 shown in FIG. 23 can be realized by a storage medium such as a memory of the monitoring ECU 3100, a communication circuit, a processor that executes a program stored in the memory, or the like.
  • the fraud determination unit 3130 is a partial modification of the fraud determination unit 130 shown in the first embodiment, and determines whether or not an illegal data frame has been received (whether or not an illegal data frame has been transmitted). Fraud determination) based on fraud detection rule information held by the fraud detection rule holding unit 170 and a frame reception history held by the frame reception history holding unit 3160 including the MAC verification result. For example, 100 ms) is periodically performed.
  • the fraud determination unit 3130 is the same as the fraud determination unit 130, unless otherwise specified.
  • the fraud determination unit 3130 updates the fraud determination result held by the fraud determination result holding unit 3180 based on the fraud determination result. Also, the fraud determination unit 3130 notifies the abnormality handling unit 3140 that fraud has been detected when it is determined as fraud as a result of the fraud determination (that is, when the occurrence of a fraud state is detected).
  • the intrusion detection unit 3131 holds the intrusion detection rule holding unit 2171 for determining whether or not an illegal data frame is injected into the bus 300 from the outside (intrusion determination related to whether or not an illegal data frame is injected). Based on the intrusion detection rule information to be performed and the frame reception history held by the frame reception history holding unit 3160, it is periodically performed with a predetermined unit time (for example, 100 ms) as a cycle. The intrusion determination unit 3131 updates the intrusion determination result held by the intrusion determination result holding unit 3181 based on the result of the intrusion determination. The intrusion determination unit 3131 notifies the abnormality handling unit 3140 that an intrusion has been detected when it is determined as an intrusion as a result of the intrusion determination, that is, when an abnormality has been detected.
  • a predetermined unit time for example, 100 ms
  • the abnormality handling unit 3140 When notified by the fraud determination unit 3130 or the intrusion determination unit 3131 that the fraud or intrusion is detected (abnormality occurrence), the abnormality handling unit 3140 receives the fraud determination result stored in the fraud determination result holding unit 3180, and Referring to the intrusion determination result stored in intrusion determination result holding unit 3181, the ECU information table stored in ECU information table holding unit 190, and the abnormality handling table stored in abnormality handling table holding unit 3191. Then, the content of the countermeasure processing as a response to the abnormality is determined. The abnormality handling unit 3140 performs control for executing the handling process when the handling process is determined.
  • the abnormality handling unit 3140 when the MAC verification is successful but the fraud determination result indicates an abnormality and the intrusion detection result does not indicate an abnormality, the ECU firmware is rewritten illegally and the authentication key ( The secret key used for generating the MAC is highly likely to be used, so the frame generation unit 150 is requested to generate a diagnostic message to be transmitted to the ECU that is the transmission source of the data frame related to the abnormality. The frame generation unit 150 is requested to generate a predetermined update message (update data frame) to be transmitted to prompt the other ECUs to update the secret key.
  • a predetermined update message update data frame
  • the MAC verification unit 3500 includes a MAC generation unit 3510 and a MAC comparison unit 3520 as shown in FIG.
  • the MAC generation unit 3510 includes a data processing unit 3511, an AES encryption unit 3512, and a secret key holding unit 3513.
  • the data processing unit 3511 extracts a portion of the received data frame that is determined to be used for generating a MAC (for example, concatenates an ID and a portion other than the MAC in the data field), and an AES encryption unit 3512. Processes such as padding to match the input size.
  • the AES encryption unit 3512 is implemented as an encryption function, for example, and encrypts the data processed by the data processing unit 3511 using the secret key held by the secret key holding unit 3513, and the value obtained by encryption Is generated as a MAC and notified to the MAC comparison unit 3520.
  • the data processing unit 3511 may include, in the data to be encrypted, a counter value that is sequentially counted up as a countermeasure against retransmission attacks.
  • the MAC comparison unit 3520 determines whether the MAC notified from the MAC generation unit 3510 is equal to the MAC included in the data field of the received data frame.
  • the MAC verification unit 3500 gives a verification result indicating that the MAC is valid (successful verification) when both MACs are equal by the comparison of the MAC comparison unit 3520, and when the MACs are not equal, the MAC is invalid. A verification result indicating that (verification failed) is output. Note that the MAC verification result by the MAC verification unit 3500 is notified to the frame processing unit 120 together with the data frame information received by the frame transmission / reception unit 110. The frame processing unit 120 updates information (frame reception history) regarding each data frame stored in the frame reception history holding unit 3160 based on the acquired data frame information and the MAC verification result.
  • the frame reception history holding unit 3160 holds a frame reception history (see FIG. 25) that is information on the data frames sequentially received by the monitoring ECU 3100 and is information including a MAC verification result.
  • the fraud determination result holding unit 3180 holds the fraud determination result (see FIG. 26) as a result of the fraud determination unit 3130 determining whether or not the rule (condition) indicated by the fraud detection rule information is met.
  • the intrusion determination result holding unit 3181 holds the intrusion determination result (see FIG. 27) as a result of determining whether or not the intrusion determination unit 3131 satisfies the condition indicated by the intrusion detection rule information.
  • the anomaly correspondence table holding unit 3191 is an anomaly correspondence table (see FIG. 5) used to determine the content of appropriate countermeasure processing for the occurrence of fraud or intrusion according to the fraud determination result, the intrusion determination result, and the MAC verification result. 28).
  • FIG. 25 shows an example of a frame reception history held by the frame reception history holding unit 3160.
  • the frame reception history is information on the contents of the data frame and the MAC verification result received by the monitoring ECU 3100 from the past to the present.
  • It shows the reception time of the data frame received two times before the latest), the MAC verification result, and specific values (values indicating the vehicle speed, acceleration, and gear state) indicated by the contents of the data frame. .
  • the reception time of the latest data frame is 210 ms
  • the MAC is valid
  • the value of the vehicle speed indicated by the received data frame is 18.0 km / h
  • the reception time one time before is 110 ms
  • the MAC is valid
  • the value of the vehicle speed of the received data frame is 19.2 km / h
  • the reception time two times before is 10 ms. This indicates that the MAC is invalid and the received value is 0.0 km / h.
  • the reception times of the data frames received from the latest two times before are 220 ms, 120 ms, and 20 ms, respectively, and the acceleration value indicated by each received data frame is They are 0.10 m / s ⁇ 2, 0.10 m / s ⁇ 2, and 0.20 m / s ⁇ 2, respectively, indicating that the MACs were all valid.
  • the reception times of the data frames received from the latest to the previous two times are 230 ms, 130 ms, and 30 ms, respectively.
  • the state values all represent the state of “D” (drive), and all the MACs are valid.
  • This frame reception history is used in fraud determination by the fraud determination unit 3130 and intrusion determination by the intrusion determination unit 3131.
  • the frame reception history is information necessary for fraud determination performed by the fraud determination unit 3130 using fraud detection rule information.
  • the information required in the intrusion determination performed by the intrusion determination unit 3131 using the intrusion detection rule information may be included.
  • the frame reception history may be information indicating the contents of all data frames received by the monitoring ECU 3100 after the vehicle starts to travel (for example, when the engine is started).
  • the frame reception history holding unit 3160 may have one area for storing the integral value of acceleration, for example.
  • FIG. 26 shows an example of the fraud determination result held by the fraud determination result holding unit 3180.
  • the fraud determination result is obtained based on the condition relating to the relationship between the data frame of the ID and the data frame of another ID for each ID of the data frame (the left end of the figure). 130 indicates whether it is determined to be fraudulent or not (whether determined to be appropriate).
  • a rule number for a rule (condition) in fraud detection rule information used for the determination is appended.
  • the fraud determination unit 3130 determines that the rule number 1 condition and the rule number 2 condition are not satisfied (that is, it is determined to be illegal), and it is determined that the rule number 3 condition is satisfied.
  • An example that is, determined to be appropriate) is shown.
  • the degree of abnormality calculated according to the number of fraud determination (detection) for each ID frame by the fraud determination unit 3130 is added.
  • the degree of abnormality is calculated as 2.
  • a data frame with an ID of 0x200 is determined to be illegal under the condition of rule number 1, but is not determined to be illegal under the condition of rule number 3, so the degree of abnormality is calculated as 1.
  • the data frame with ID 0x300 is determined to be illegal under the condition of rule number 2, but is not determined to be illegal under the condition of rule number 3, so the degree of abnormality is calculated as 1.
  • the fraud determination result is added by the fraud determination unit 3130 for each ID, the number of MAC verification results for the data frame of the ID being fraudulent.
  • the fraud determination unit 3130 adds the count result to the fraud determination result as the number of frauds in the MAC by counting the number of MAC verification results that have become illegal based on the frame reception history.
  • FIG. 27 shows an example of the intrusion determination result held by the intrusion determination result holding unit 3181.
  • the intrusion determination result is determined as normal (not intrusion) by the intrusion determination unit 3131 or abnormal (intrusion detection) for each ID of the data frame based on the condition relating to the data frame of the ID. It is determined whether or not.
  • the intrusion determination result is added with a MAC verification result for the data frame of the ID for each ID by the intrusion determination unit 3131.
  • the intrusion determination unit 3131 adds the MAC validity verification result to the intrusion determination result based on the frame reception history.
  • the intrusion determination unit 3131 determines that the data frame with the ID of 0x100 is normal, and similarly determines that the data frames with the IDs of 0x200 and 0x300 are normal. This example also shows that an illegal MAC is added to the data frame with ID 0x100, and that a valid MAC is added to each data frame with ID 0x200 and 0x300. Show.
  • FIG. 28 shows an example of the abnormality correspondence table held by the abnormality correspondence table holding unit 3191.
  • the abnormality handling unit 3140 determines the content of the countermeasure processing as a response to the abnormality based on the fraud determination result, the intrusion determination result, and the MAC verification result (whether or not the MAC is valid).
  • the correspondence changes depending on the combination of the fraud determination result, the intrusion determination result, and the MAC verification result.
  • the abnormality correspondence table shows that the fraud determination result is normal (for example, the degree of abnormality is 0) and the intrusion determination result is normal, and when the MAC is valid, what is the countermeasure process?
  • the abnormality correspondence table in this example corresponds to the transmission source of the data frame to which the invalid MAC is added.
  • Checking the situation by sending a diagnostic message to the ECU, and performing key update (key update processing) (for example, sending an update message related to updating a secret key for MAC generation) Indicates the content of the countermeasure process.
  • This countermeasure processing is a response in view of the possibility that there is a problem in the sharing of the secret key in the ECU, the synchronization of the counter used as a countermeasure against the retransmission attack, etc., because the MAC is illegal.
  • Each ECU may be configured to perform key update, counter reset, and the like when an update message is received.
  • the monitoring ECU 3100 updates the secret key in the secret key holding unit 3513 by the same method corresponding to the update.
  • the abnormality correspondence table of this example shows that when the fraud determination result is abnormal (for example, the degree of abnormality is greater than 0) and the intrusion determination result is normal and the MAC is valid, the abnormal data frame
  • the contents of the coping process include confirming the situation by transmitting a diagnostic message to the ECU corresponding to the transmission source and performing the key update process.
  • the firmware of the corresponding ECU is illegally rewritten because the relation between the contents of the data frames with different IDs is broken, although no illegal message (data frame for attack) is injected from the outside. This is a useful process to deal with this because there is a possibility that the secret key is leaked because the MAC is valid.
  • the abnormality correspondence table of this example shows that when the fraud determination result is abnormal and the intrusion determination result is normal and the MAC is invalid, a diagnostic message is sent to the ECU corresponding to the abnormal data frame transmission source. It is shown that confirming the situation by sending "" is the content of the countermeasure processing.
  • the firmware of the relevant ECU has been illegally rewritten because the relationship between the contents of the data frames with different IDs is broken, although no unauthorized message has been injected from the outside. Since it is assumed that there is a high possibility that the secret key is not leaked because the password is illegal, this is a useful measure.
  • the abnormality correspondence table of this example confirms the interface for connecting an external device such as the diagnostic port 2400. This indicates that the notification to prompt the user and the key update process are the contents of the countermeasure process.
  • the relationship between the contents of data frames with different IDs is not broken, an illegal message is injected from the outside, and the MAC is valid, so an attack such as retransmitting a normal data frame This is a useful process in order to cope with this.
  • the key update process in this coping process it is possible to prevent injection of a data frame including a valid MAC from the outside.
  • the abnormality correspondence table in this example shows confirmation of an interface for connecting an external device such as the diagnostic port 2400 when the fraud determination result is normal and the intrusion determination result is abnormal and the MAC is invalid.
  • the notification of prompting the user is the content of the handling process. This is a useful measure because there is a possibility that an attempt to attack such as resending a normal message from the outside is made, but it is highly likely that the secret key is not leaked.
  • the notification to the user is performed, for example, by transmitting a data frame having a predetermined ID from the monitoring ECU 3100 to the bus 300 and controlling the display of a predetermined message on the instrument panel 240 when the ECU 3200d receives the data frame having the predetermined ID. Can be realized.
  • the abnormality correspondence table of this example confirms the interface for connecting an external device such as the diagnostic port 2400 when the MAC is valid when the fraud determination result is abnormal and the intrusion determination result is also abnormal.
  • the content of the coping process includes notifying the user, transmitting a frame (abnormality notification message) for notifying each ECU that an abnormality has occurred, and performing key update processing. Show.
  • This countermeasure process is a useful countermeasure because it is highly possible that an unauthorized message has been injected from the outside, the secret key is also leaked, and the adverse effect on the control of the vehicle is great.
  • the abnormality correspondence table of this example confirms the interface for connecting an external device such as the diagnostic port 2400 when the fraud determination result is abnormal and the intrusion determination result is also abnormal and the MAC is illegal. It indicates that the notification of prompting the user and the transmission of the abnormality notification message to each ECU are the contents of the countermeasure processing. This is a useful measure because it is assumed that there is a high possibility that the secret key is not leaked although there is a possibility that the ECU is controlled by injecting an attack frame from the outside.
  • each ECU in the in-vehicle network system 12 is configured to perform predetermined security measures (for example, traveling control such as decelerating and stopping the vehicle, degeneration of the automatic traveling function, etc.) when the abnormality notification message is received. Can be done.
  • FIG. 29 is a configuration diagram of the ECU 3200a.
  • the ECU 3200a includes a frame transmission / reception unit 201, a frame processing unit 202, a device input / output unit 203, a frame generation unit 204, a MAC verification unit 3500, and a MAC generation unit 3510.
  • Each of these components is a functional component, and each function is realized by a communication circuit in the ECU 3200a, a processor that executes a control program stored in a memory, a digital circuit, or the like.
  • ECU 3200b, ECU 3200c, and ECU 3200d have substantially the same configuration as ECU 3200a. 29, the same components as those of ECU 200a (see FIG.
  • the MAC verification unit 3500 and the MAC generation unit 3510 are the same as the components of the monitoring ECU 3100 shown in FIG.
  • the frame processing unit 3202 interprets the content of the data frame that is received by the frame transmission / reception unit 201 and in which the MAC is valid as the verification result in the MAC verification unit 3500. For example, in the frame processing unit 3202 of the ECU 3200d having the same configuration as the ECU 3200a, the vehicle speed (information of the speed sensor 210) and the gear state (information of the state of the gear 230) included in the data frames respectively transmitted from the ECU 3200a and the ECU 3200c are displayed. Interpretation and notify the device input / output unit 203 of the ECU 3200d of information necessary for updating the display of the instrument panel 240 and the like. For example, when a data frame that is a diagnostic message is received from the monitoring ECU 3100, the frame processing unit 3202 performs a predetermined process so that the monitoring ECU 3100 can receive diagnostic information. It can be transmitted to the bus 300 via 201.
  • the monitoring ECU 3100 periodically performs fraud detection processing (fraud determination) and intrusion detection processing (intrusion determination) every 100 ms, for example (see FIG. 19).
  • the MAC reception result in the data frame received from the bus 300 is also stored in the frame reception history.
  • the monitoring ECU 3100 determines the content of the countermeasure process according to the abnormality correspondence table based on the fraud determination result, the intrusion determination result, and the MAC verification result. Then, the monitoring ECU 3100 executes the processing for the determined content.
  • FIG. 30 shows a first operation example of monitoring the bus 300 in the in-vehicle network system 12.
  • a data frame (data frame indicating a vehicle speed) having an ID of 0x100, a data frame (data frame indicating an acceleration) having an ID of 0x200, and a data frame (gear having an ID of 0x300), respectively.
  • the data frame indicating the state of (1) is periodically transmitted to the bus 300.
  • the firmware of ECU 3200a is illegally rewritten by an attacker, and ECU 3200a falsifies the vehicle speed notified from speed sensor 210 from a certain point in time, and sends a data frame indicating the incorrect vehicle speed to bus 300.
  • An example of transmission is shown. In this example, it is assumed that the secret key is leaked and the MAC included in all data frames is valid.
  • the monitoring ECU 3100 periodically performs fraud determination (fraud detection processing) at a period of 100 ms immediately after the timing when the data frame with the ID of 0x300 is received. Assuming that the timing of performing the fraud determination is the end of each unit time (100 ms), the data frame received from the bus 300 in each of the first three unit times is stored in the fraud detection rule holding unit 170. No fraud is detected in any of the rule numbers 1 to 3 indicated by the fraud detection rule information. It is assumed that the integrated value of acceleration is 20.0 km / h at the first time point in this example. Therefore, the integrated value of acceleration sequentially changes to 20.072, 20.144, 20.18 km / h by receiving each data frame indicating the acceleration from the first time to the third time.
  • fraud determination fraud detection processing
  • the monitoring ECU 3100 has a difference (amount of change) between the vehicle speed (18.0 km / h) indicated by the vehicle speed data frame received the third time and the integrated value (20.18 km / h) based on the acceleration indicated by the acceleration data frame. Since it exceeds 1.0 km / h, the rule (condition) of rule number 1 is not satisfied and fraud is detected. Further, when the gear state indicated by the received data frame is “D” (drive), the monitoring ECU 3100 sets the speed change amount (the vehicle speed 18.0 km / h indicated by the third data frame of the received vehicle speed). The difference between the vehicle speed of 19.6 km / h indicated by the data frame received last time) exceeds 1.0 km / h, and therefore the fraud of rule number 2 is detected.
  • the monitoring ECU 3100 transmits the diagnostic message to the ECU according to the abnormality correspondence table because the fraud determination result is abnormal, the intrusion determination result is normal, and the MAC verification result is valid.
  • the key update process is determined as the content of the countermeasure process, and the countermeasure process is performed. That is, the monitoring ECU 3100 does not satisfy the two rules (conditions), and the ECU information that the ECU information table holding unit 190 holds the transmission source of the data frame with the ID of 0x100 that is calculated to have the highest degree of abnormality is 2.
  • the ECU 3200a is specified, and a diagnostic message is transmitted to the ECU 3200a.
  • the monitoring ECU 3100 notifies each ECU of a key update process (transmission of an update message related to the secret key update).
  • FIG. 31 shows an operation example 2 of monitoring the bus 300 in the in-vehicle network system 12.
  • Operation example 2 in FIG. 31 is similar to operation example 1 of monitoring ECU 3100, but the secret key is not leaked, and the MAC included in the data frame transmitted by ECU 3200a is illegal.
  • An example is shown.
  • the monitoring ECU 3100 indicates that the fraud determination result is abnormal, the intrusion determination result is normal, and the MAC verification result is incorrect. Therefore, according to the abnormality correspondence table, the monitoring ECU 3100 The transmission of the diagnostic message is determined as the content of the countermeasure process, and the countermeasure process is performed.
  • the monitoring ECU 3100 detects fraud based on the relationship between the contents of data frames having a plurality of different IDs, and the ID for a single ID data frame.
  • the content of the countermeasure process is determined according to the combination of the intrusion determination for detecting the intrusion based on the condition determined for each and the verification result of the validity of the MAC, and the countermeasure process is executed.
  • the ID The transmission of an illegal data frame can be detected from the collapse of the content relationship between different data frames. For example, even if an attacker controls an ECU and transmits an illegal data frame, the fraud is detected based on the relationship with the data frame transmitted by another ECU. It becomes difficult for an attacker to attack. Furthermore, even when an attacker injects illegal data frames from the outside, it can be detected appropriately, and depending on the combination of the fraud determination result, the intrusion determination result, and the MAC verification result, an appropriate response according to the situation of the attack Correspondence becomes possible.
  • Embodiments 1 to 3 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.
  • the monitoring ECU that monitors the bus 300 and takes measures according to the monitoring result has been described.
  • the monitoring ECU is an ECU connected to the bus in the in-vehicle network system
  • the monitoring ECU is dedicated to monitoring.
  • the ECU does not need to be an ECU, and may have functions different from monitoring and coping.
  • one or more components in the monitoring ECU may be moved to another ECU.
  • other ECUs may include a configuration for fraud determination (such as a fraud determination unit) and a configuration for intrusion determination (such as an intrusion determination unit) in the monitoring ECU.
  • the gateway ECU that transfers data frames between the buses may have a fraud determination unit, or the key management master ECU that manages the secret key is illegal. It is good also as having a determination part, an intrusion determination part, a MAC verification part, etc.
  • the data frame in the CAN protocol is described in the standard ID format.
  • the extended ID format may be used, and the ID that is the identifier of the data frame is the extended ID in the extended ID format. Etc.
  • the monitoring ECU periodically performs fraud detection processing (fraud determination) and intrusion detection processing (intrusion determination) at a cycle of, for example, 100 ms, but the cycle is arbitrary. Moreover, it is not always necessary to carry out periodically. For example, the monitoring ECU may perform fraud determination or intrusion determination every time a data frame is received. Further, the fraud determination and the intrusion determination may be executed at different timings.
  • fraud determination fraud determination
  • intrusion detection processing intrusion determination
  • the frame reception history holding unit shown in the above embodiment may hold the reception history for how many times as the frame reception history. Further, the frame reception history holding unit may hold information as a reception history at a time not actually received as a frame reception history by data interpolation based on information of the actually received data frame. .
  • the frame reception history holding unit has shown an example of holding the reception time, the MAC validity verification result, the value indicated by the contents of the data field, etc. as the frame reception history. Other information may be held.
  • the frame reception history holding unit may hold arbitrary information necessary for fraud detection processing (fraud determination) or intrusion detection processing (intrusion determination).
  • each value may be distinguished and held, and the monitoring ECU displays fraud detection rule information indicating conditions related to each value or intrusion detection. It is good also as performing fraud determination or intrusion determination using rule information.
  • the rule (condition) indicated by the fraud detection rule information includes a condition related to the relationship between the speed (vehicle speed) and the acceleration, and a condition related to the relationship between the gear state and the amount of change in the vehicle speed.
  • the conditions relating to the relationship between the state of the gear and the amount of change in acceleration are exemplified, but this is only an example. Any data can be used as long as a certain relationship is maintained between data indicated by a plurality of data frames having different IDs at normal times. It is particularly useful to use the relationship between data measured by sensors.
  • the fraud detection rule information includes, for example, a relationship between a value y indicated by the content of the data field of the data frame having one ID and a value x indicated by the content of the data field of the data frame having another ID as a condition.
  • the relational expression y f (x) or the like indicating that it is within a certain error range may be used.
  • the fraud detection rule information includes a first type frame that is a data frame having a certain ID (first identifier) and a second type frame that is a data frame having an ID (second identifier) different from the first identifier.
  • the conditions indicated by the fraud detection rule information are, for example, a value specified based on the content of the data field in one or more (or plural) first type frames and the content of the data field in one or more second type frames. Defines the relationship.
  • the value specified based on the content of the data field in the first type frame may be a numerical value, a value indicating the degree of large, medium, small, or a character string that distinguishes the state.
  • condition indicated by the fraud detection rule information is the relationship between the content of the data field in one or more first type frames and the content of the data field in one or more second type frames, and the Pearson product moment relationship It may be defined by a relational expression using a number, a maximum information coefficient, or a canonical correlation coefficient.
  • the height of the correlation coefficient You may specify conditions, you may specify conditions for the height of the maximum information coefficient as an index that can also represent non-linear relationships, or when multiple variables make up two variable groups in multivariate data.
  • a condition regarding the height of the canonical correlation coefficient as an index representing the mutual relationship between the variable groups may be defined.
  • the condition may be defined by obtaining the correlation coefficient for each time series data of the vehicle speed and the rotation speed of the tire.
  • the condition may be defined by obtaining a relational expression between the vehicle speed and the rotation speed of the tire.
  • a relational expression for example, a combination of acceleration and vehicle speed change amount, accelerator displacement and vehicle speed change amount Examples include a set, a set of brake displacement and a change in vehicle speed, and a set of steering angle (steering angle) and yaw rate.
  • the fraud determination unit determines whether or not the condition indicated by the fraud detection rule information is satisfied based on the information (frame reception history) about the data frame received from the bus. It was.
  • This determination can be realized by any specific method according to the condition indicated by the fraud detection rule information.
  • This fraud determination includes, for example, a first value based on the contents of the data field in each of the above-described first type frames received from the bus at each of one or more unit times, and the one or more unit times. Whether the condition indicated by the fraud detection rule information is satisfied using the second value based on the contents of the data field in each second type frame received from the bus at each of one or more unit times from the end.
  • the predetermined calculation process may be any calculation process as long as it uses at least the first value and the second value to distinguish whether the condition indicated by the fraud detection rule information is satisfied.
  • the predetermined arithmetic processing is based on a standard that defines the range of the value of the quantitative variable for each value of the qualitative variable, and the value of the quantitative variable calculated using the second value as the value of the qualitative variable. It may be a process of discriminating whether or not the condition indicated by the fraud detection rule information is satisfied depending on whether or not the first value falls within the range.
  • the first value may be a value related to a physical quantity or the like measured by a sensor (a vehicle speed, a change amount of the vehicle speed, or the like).
  • the second value is a flag value indicating the vehicle state (a flag value indicating the gear state, a flag value indicating the operating state of the lane keeping function, a flag value indicating the operating state of the automatic parking assist function, the cruise control function Or a flag value indicating an operating state).
  • the predetermined calculation process includes, for example, a second value within a range of the value of the objective variable calculated using the first value as the value of the explanatory variable based on a relational expression indicating the relationship between the objective variable and the explanatory variable. A process for distinguishing whether or not the condition indicated by the fraud detection rule information is satisfied may be performed depending on whether or not it is applicable.
  • the first value and the second value are values related to physical events having a causal relationship, for example.
  • the relationship between the contents of two types (two different IDs) of data frames is used as the condition indicated by the fraud detection rule information.
  • a result of a predetermined operation for example, arithmetic operation, logical operation, etc.
  • a predetermined operation for example, arithmetic operation, logical operation, etc.
  • the fraud determination unit of the monitoring ECU calculates the abnormality level and adds it to the fraud determination result. However, it is not always necessary to calculate the abnormality level.
  • the monitoring ECU may perform diagnosis by transmitting a diagnostic message to the transmission source ECU of each of the plurality of data frames determined to be fraudulent. It should be noted that, by calculating the degree of abnormality, narrowing down the target for transmitting a diagnostic message among the ECUs of the transmission sources of each of the plurality of data frames determined to be illegal by not satisfying the condition indicated by the fraud detection rule information This is useful for suppressing an increase in traffic volume.
  • Data having fraud detection rule information having a first type frame that is a data frame having a certain ID (first identifier, for example, ID of 0x100) and an ID different from the first identifier (second identifier, for example, ID of 0x200)
  • a first condition for example, the condition of rule number 1 shown in FIG. 6 regarding the relationship of the contents of the data field with the second type frame that is a frame is shown.
  • both the first type frame and the first identifier A second condition (for example, the rule number shown in FIG. 6) that is a condition regarding the relationship of the contents of the data field with the third type frame that is a data frame having an ID different from the two identifiers (third identifier, for example, ID of 0x300).
  • Abnormality level relating to the transmission of the first type frame according to the number of conditions can be calculated. Then, when the calculated abnormality degree satisfies a predetermined abnormality condition (for example, higher than a threshold value or higher than an abnormality degree relating to transmission of another type of frame calculated separately), the ECU that transmits the first type frame receives By transmitting a predetermined frame (such as a diagnostic message) so as to be possible, an increase in bus traffic can be suppressed.
  • a predetermined abnormality condition for example, higher than a threshold value or higher than an abnormality degree relating to transmission of another type of frame calculated separately
  • the monitoring ECU has shown an example in which the fraud determination result is held in the form of a table in which IDs are associated with each other.
  • the fraud determination unit has a set of frames received from the bus.
  • some information indicating the determination result for example, information indicating a set of a rule number and a determination result based on the condition relating to the rule number
  • a storage medium such as a memory or a hard disk provided in the ECU, and information may be held in any format.
  • the condition indicated by the intrusion detection rule information the condition related to the reception interval and the data change amount related to the data frame of the single ID is exemplified, but this is only an example, and other conditions For example, it may be a condition related to the reception frequency (the number of data frames having the single ID received within a certain time).
  • a condition indicated by the intrusion detection rule information a condition to be satisfied by a normal data frame is defined. When a data frame for an attack is injected from the outside and both an illegal data frame and a normal data frame flow into the bus, the condition is set so that the condition is not satisfied. It is useful to be prescribed.
  • the intrusion determination result holding unit holds an intrusion determination result that distinguishes between normal and abnormal (intrusion detection) for each ID.
  • the intrusion determination result may be the number determined to be normal or the number determined to be abnormal within a certain period without distinguishing the ID.
  • the intrusion determination result may be information related to the result of the intrusion determination based on the intrusion detection rule information. Accordingly, the surveillance ECU determines the intrusion determination result based on the intrusion detection rule information and the fraud determination result based on the fraud detection rule information. Based on the combination, the coping process corresponding to the abnormality can be determined.
  • the ID and the value of the data field are input to the AES encryption unit (for example, an encryption function) for generating the MAC, but the input value is not limited to this.
  • the input value is not limited to this.
  • only the value of the data field may be input, or DLC may be included in the input.
  • time information or the like may be included in the input in addition to the counter value.
  • the coping process is, for example, transmitting a diagnostic frame so that a specific ECU connected to the bus can receive, confirming the validity of the specific ECU connected to the bus by challenge response authentication, Notifying the driver of the vehicle equipped with the in-vehicle network system, notifying the driver of the vehicle equipped with the in-vehicle network system, notifying the driver of the vehicle equipped with the in-vehicle network system to stop or slow down To notify the driver connected to the bus, to notify the driver of the vehicle equipped with the in-vehicle network system that an illegal state has occurred, and to the ECU connected to the bus, a specific ID (identifier ) To notify that the data frame is illegal, and to provide a service outside the vehicle equipped with the in-vehicle network system.
  • a specific ID identifier
  • the monitoring ECU can execute any one or more of the above-described countermeasures when the degree of abnormality calculated by the fraud determination unit satisfies a predetermined abnormality condition (for example, exceeds a threshold). In addition, the monitoring ECU may change the content of the countermeasure process so as to reflect the high degree of abnormality calculated by the fraud determination unit.
  • the monitoring ECU determines the result of the determination (injustice determination) by the fraud determination unit (the fraud determination result) and the result of the determination (intrusion determination) by the intrusion determination unit (intrusion determination result).
  • the content of the countermeasure processing is determined according to the combination with the verification result of the authenticity of the authenticator (MAC) in the MAC verification unit, and the MAC is determined under certain conditions (for example, the fraud determination result or the intrusion determination result is abnormal.
  • the key update process related to the update of the authentication key is determined as the countermeasure process and executed.
  • the monitoring ECU After executing the key update process, the monitoring ECU performs fraud determination, intrusion determination, and MAC verification on the data frame received from the bus, and the fraud determination result, the intrusion determination result, and the verification result (For example, when the MAC is valid but the fraud determination result or the intrusion determination result is in an abnormal state), a different handling process (to the user) Notification of the dangerous state of the user, notification to the server, etc.).
  • This countermeasure process different from the key update process can be useful when the key update does not work effectively.
  • the fraud detection rule holding unit holds fraud detection rule information indicating a condition related to the relationship between the contents of data frames having different IDs.
  • the information may be updated as needed using the results of learning by monitoring and analyzing data frames flowing through the bus.
  • the correlation coefficient between the contents of the data frames of different IDs is obtained and determined in advance.
  • the relation between the contents of the data frame that results in a correlation coefficient value equal to or greater than the threshold value may be included in the fraud detection rule information as a new condition to be satisfied.
  • the relation between the explanatory variable and the objective variable may be included in the fraud detection rule information as a condition.
  • the monitoring ECU specifies the relationship of the contents of the data frames between the data frames having different IDs by multivariate analysis based on the set of data frames received from the bus, and represents the specified relationship. It is good also as generating or updating fraud detection rule information so that conditions may be shown.
  • the fraud determination unit adds the MAC fraud count to the fraud determination result, and the intrusion determination unit adds the MAC validity to the intrusion determination result.
  • information based on the MAC verification result may not be included in the fraud determination result and the intrusion determination result.
  • the abnormality handling unit can acquire the MAC verification result from the frame reception history held by the frame reception history holding unit.
  • the fraud determination unit specifies the fraud determination result based on the MAC verification result, the fraud determination result can be used when the abnormality handling unit performs various measures.
  • the monitoring ECU determines that the key is leaked when the fraud determination result or the intrusion determination result is abnormal and the MAC is valid as the MAC verification result.
  • whether or not the key update process is the content of the countermeasure process may be distinguished based on the number of times the MAC is valid as the verification result.
  • the fraud determination result or the intrusion determination result is abnormal, for example, the monitoring ECU is likely to leak the key when the MAC verification is successful a predetermined number of times N. It is good also as performing a process.
  • the number N for example, when a data frame to which a sequential random value is added as a MAC is sequentially transmitted, the probability that the MAC is determined to be valid in N verifications is sufficiently low. It is useful to set the number of times.
  • the monitoring ECU has shown an example in which the content of the corresponding process is determined (selected) according to the combination of the fraud determination result, the intrusion determination result, and the MAC verification result.
  • the fraud state abnormality of data frame with specific ID, data frame with high degree of abnormality, ECU with high possibility of abnormality, data frame with different ID
  • the monitoring ECU may determine the countermeasure processing using any one or more of the fraud determination result, the intrusion determination result, and the MAC verification result, and further distinguish the attack range and use the distinction.
  • the monitoring ECU detects that an unauthorized state has occurred, the subnetwork to which the data frame related to the occurrence of the unauthorized state is transmitted, the ECU that transmits the frame, and the ID of the data frame It is also possible to specify one of the above and record the specified one on a storage medium such as a memory. By using the identified subnetwork, ECU, ID, etc.
  • abnormality for example, based on the ID, It is possible to grasp the occurrence of an abnormality in a group of data frames related to a specific function such as a driving support function, and the collection of information related to such an illegal state can be useful in specifying an attack purpose, an attack range, and the like.
  • an in-vehicle network that communicates according to the CAN protocol is shown.
  • This CAN protocol should be treated as having a broad meaning including derived protocols such as CANFD (CAN Flexible Data Rate).
  • communication protocols other than the CAN protocol for example, Ethernet (registered trademark), LIN (Local Interconnect Network), MOST (registered trademark) (Media Oriented Systems Transport), FlexRay (registered trademark), etc. are used. Also good.
  • the monitoring ECU and 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.
  • a digital circuit such as a processor and a memory
  • an analog circuit such as a communication circuit, and the like.
  • a hard disk device such as a hard disk device, a display, a keyboard, a mouse, etc.
  • the hardware components may be included.
  • each device (monitoring ECU or the like) shown in the above embodiment has a dedicated hardware (digital circuit or the like) instead of the control program stored in the memory being executed by the processor to realize the function as software. It is good also as realizing the function.
  • 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 or a single module that can be attached to and detached from each device.
  • 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 fraud detection method is a fraud detection method for detecting the occurrence of an illegal state in an in-vehicle network system including a plurality of ECUs that communicate via a bus, and includes a frame having a first identifier, Whether or not a set of frames received from the bus satisfies the first condition by using fraud detection rule information indicating a first condition that is a condition for a relationship between contents having a different identifier from one identifier.
  • This is a method of determining and detecting that an illegal state has occurred when the first condition is not satisfied.
  • the plurality of ECUs exchange data frames according to the CAN protocol via the bus
  • the fraud detection rule information includes a first type frame that is a data frame having an ID (first identifier), a first identifier, Indicates the first condition regarding the relationship of the contents of the data field with the second type frame which is a data frame having a different ID (second identifier).
  • the fraud detection method is performed by the monitoring ECU connected to the bus
  • a determination step (for example, steps S1102 and S2102) may be included.
  • the fraud determination step it is determined whether or not a second condition relating to a relationship between contents of the first type frame and the third type frame (a data frame having an ID different from the first identifier and the second identifier) is satisfied.
  • the fraud detection method may calculate the degree of abnormality related to the transmission of the first type frame according to the number of conditions determined to be satisfied in the fraud determination step among the first condition and the second condition. Steps (for example, step S1103) may be included.
  • the monitoring ECU makes a predetermined frame (for example, a diagnostic frame) so that the ECU that transmits the first type frame can receive it.
  • the fraud detection method uses intrusion detection rule information indicating conditions for data frames determined for each data frame ID (identifier), and the data frame received from the bus in the reception step is converted into intrusion detection rule information.
  • the content of the countermeasure process is determined according to the combination of the intrusion determination step (for example, step S2103) for determining whether or not the corresponding condition shown is satisfied and the determination result at the fraud determination step and the determination result at the intrusion determination step.
  • a coping step for example, steps S2104 and S2105) for executing the coping process in accordance with the determination.
  • the fraud detection method may include a verification step of verifying the authenticity of the authenticator for authentication in the data frame received from the bus.
  • the present invention may be a computer program that realizes the processing related to the fraud detection method by a computer, or may be a digital signal that includes 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.
  • 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. . Also, 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.
  • This disclosure can be used to detect an attack on the in-vehicle network and appropriately deal with it.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

バスを介して通信を行う複数の電子制御ユニット(ECU)を備える車載ネットワークシステムにおいて、ECUがファームウェアの不正な書き換え等で攻撃者の支配下に置かれた場合でも、バスで送信されるフレームを監視することで不正状態が発生したことを検知し得る不正検知方法を提供する。車載ネットワークシステムにおいて不正状態が発生したことを検知するための不正検知方法では、第1識別子を有するフレームと、第1識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第1条件を示す不正検知ルール情報を用いて、バスから受信されたフレームの集合が当該第1条件を満たすか否かを判定し、当該第1条件が満たされない場合に不正状態が発生したと検知する。

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号公報 国際公開第2015/041161号
 しかしながら、特許文献1のような不正検知方法では、攻撃者が、正規のECUのファームウェアを不正に書き換えることで支配し、そのECUに、車載ネットワークシステムで規定された正規の送信間隔で、攻撃のためのフレームを送信させる場合には、その攻撃のためのフレームを検知できない。また、ECUのファームウェアが書き換えられなくても、マルウェア(不正なプログラム)がECU上で実行されると同様の状況が発生し、そのECUがCANのバスに送信する、攻撃のためのフレームを検知できない。また、特許文献2は、ECUと通信することでECUのプログラム又はデータの不正な書き換えを検出する技術を示すが、この技術を用いて車載ネットワークのバスに接続された各ECUの不正な書き換えを随時確認するためには各ECUとの通信が必要となり、バストラフィック量の増大という弊害が生じてしまう。
 そこで、本開示は、ファームウェアの不正な書き換え、マルウェアの実行等によりECUが不正状態になった場合においても、バスで送信されるフレームを監視することで不正状態(異常)が発生したことを検知し得る不正検知方法を提供する。また、本開示は、その不正検知方法を用いる車載ネットワークシステム、及び、その車載ネットワークシステムにおいて不正検知を行う監視電子制御ユニット(監視ECU)を提供する。
 本開示の一態様に係る不正検知方法は、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて不正状態が発生したことを検知するための不正検知方法であって、第1識別子を有するフレームと、第1識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第1条件を示す不正検知ルール情報を用いて、前記バスから受信されたフレームの集合が当該第1条件を満たすか否かを判定し、当該第1条件が満たされない場合に不正状態が発生したと検知する不正検知方法である。
 なお、これらの全般的または具体的な態様は、装置、システム、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、装置、システム、方法、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
 本開示によれば、ファームウェアの不正な書き換え或いはマルウェアの実行によりECUが不正状態になった場合に、そのECUが送信するフレームと他のECUが送信するフレームとの関係が乱れること等から、不正状態が発生したことが検知され得る。
 なお、本開示の更なる効果及び利点は、本明細書及び図面の開示内容から明らかとなるであろう。上記更なる効果及び利点は、本明細書及び図面に開示されている様々な実施の形態及び特徴によって個別に提供されてもよく、必ずしもすべての効果及び利点が提供される必要はない。
実施の形態1に係る車載ネットワークシステムの全体構成を示す図である。 CANプロトコルで規定されるデータフレームのフォーマットを示す図である。 CANプロトコルで規定されるエラーフレームのフォーマットを示す図である。 実施の形態1に係る監視ECUの構成図である。 実施の形態1に係る監視ECUのフレーム受信履歴保持部が保持するフレーム受信履歴の一例を示す図である。 実施の形態1に係る監視ECUの不正検知ルール保持部が保持する不正検知ルール情報の一例を示す図である。 実施の形態1に係る監視ECUの不正判定結果保持部が保持する不正判定結果の一例を示す図である。 実施の形態1に係る監視ECUのECU情報テーブル保持部が保持するECU情報テーブルの一例を示す図である。 実施の形態1に係るECUの構成図である。 実施の形態1に係るECUが送信するデータフレームの一例を示す図である。 実施の形態1に係る監視ECUの動作の一例を示すフローチャートである。 実施の形態1に係る車載ネットワークシステムにおけるバス監視の動作例を示す図である。 実施の形態2に係る車載ネットワークシステムの全体構成を示す図である。 実施の形態2に係る監視ECUの構成図である。 実施の形態2に係る監視ECUのフレーム受信履歴保持部が保持するフレーム受信履歴の一例を示す図である。 実施の形態2に係る監視ECUの侵入検知ルール保持部が保持する侵入検知ルール情報の一例を示す図である。 実施の形態2に係る監視ECUの侵入判定結果保持部が保持する侵入判定結果の一例を示す図である。 実施の形態2に係る監視ECUの異常対応テーブル保持部が保持する異常対応テーブルの一例を示す図である。 実施の形態2に係る監視ECUの動作の一例を示すフローチャートである。 実施の形態2に係る車載ネットワークシステムにおけるバス監視の動作例1を示す図である。 実施の形態2に係る車載ネットワークシステムにおけるバス監視の動作例2を示す図である。 実施の形態3に係る車載ネットワークシステムの全体構成を示す図である。 実施の形態3に係る監視ECUの構成図である。 実施の形態3に係る監視ECUのMAC検証部の構成図である。 実施の形態3に係る監視ECUのフレーム受信履歴保持部が保持するフレーム受信履歴の一例を示す図である。 実施の形態3に係る監視ECUの不正判定結果保持部が保持する不正判定結果の一例を示す図である。 実施の形態3に係る監視ECUの侵入判定結果保持部が保持する侵入判定結果の一例を示す図である。 実施の形態3に係る監視ECUの異常対応テーブル保持部が保持する異常対応テーブルの一例を示す図である。 実施の形態3に係るECUの構成図である。 実施の形態3に係る車載ネットワークシステムにおけるバス監視の動作例1を示す図である。 実施の形態3に係る車載ネットワークシステムにおけるバス監視の動作例2を示す図である。
 本開示の一態様に係る不正検知方法は、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて不正状態が発生したことを検知するための不正検知方法であって、第1識別子を有するフレームと、第1識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第1条件を示す不正検知ルール情報を用いて、前記バスから受信されたフレームの集合が当該第1条件を満たすか否かを判定し、当該第1条件が満たされない場合に不正状態が発生したと検知する不正検知方法である。これにより、例えば正常状態において満たされるように第1条件を規定しておけば、ファームウェアの不正な書き換え或いはマルウェアの実行により電子制御ユニット(ECU)が不正状態になった場合に、そのECUが送信するフレームと例えば他のECUが送信するフレームとの関係が乱れることで、第1条件が満たされなくなり得るので、バスの監視によって、不正状態が発生したことが検知され得る。
 また、前記複数の電子制御ユニットは、前記バスを介してCAN(Controller Area Network)プロトコルに従ってデータフレームの授受を行い、前記不正検知ルール情報は、前記第1識別子を有するデータフレームである第1種フレームと、前記第1識別子とは異なる第2識別子を有するデータフレームである第2種フレームとの、データフィールドの内容の関係についての前記第1条件を示し、前記不正検知方法は、前記バスに接続された監視電子制御ユニットが、前記バス上に送信されたデータフレームを逐次受信する受信ステップと、前記受信ステップで受信された前記第1種フレーム及び前記第2種フレームが、前記不正検知ルール情報が示す前記第1条件を満たすか否かを判定する不正判定ステップとを含むこととしても良い。これにより、ECU間でフレームの授受を行うためのCANに従う車載ネットワークにおいて不正状態が発生した場合に適切に検知を行うことが可能となる。
 また、前記不正検知ルール情報は、前記第1条件として、1つ以上の前記第1種フレームにおけるデータフィールドの内容に基づいて特定される値と、1つ以上の前記第2種フレームのデータフィールドの内容との関係を規定し、前記不正判定ステップでは、1つ又は複数の単位時間それぞれにおいて前記受信ステップで受信された、各前記第1種フレームにおけるデータフィールドの内容に基づく第1値と、前記1つ又は複数の単位時間のうち最後から1つ以上の単位時間それぞれにおいて前記受信ステップで受信された、各前記第2種フレームにおけるデータフィールドの内容に基づく第2値とを用いて、前記第1条件が満たされるか否かを区別する所定演算処理を実行することにより、前記判定を行うこととしても良い。これにより、互いに異なるID(識別子)を有する2種類のデータフレームの系列間の同時期の内容間の関係が正常状態と区別される状態になった場合に、不正状態の発生が検知され得る。
 また、前記不正検知ルール情報は、前記第1条件として、複数の前記第1種フレームにおけるデータフィールドの内容に基づいて特定される値と、1つ以上の前記第2種フレームのデータフィールドの内容との関係を規定し、前記不正判定ステップでは、複数の単位時間それぞれにおいて前記受信ステップで受信された、各前記第1種フレームにおけるデータフィールドの内容に基づく第1値と、前記複数の単位時間のうち最後から1つ以上の単位時間それぞれにおいて前記受信ステップで受信された、各前記第2種フレームにおけるデータフィールドの内容に基づく第2値とを用いて、前記第1条件が満たされるか否かを区別する所定演算処理を実行することにより、前記判定を行うこととしても良い。これにより、これにより、互いに異なるID(識別子)を有する2種類(2系列)のデータフレームのうち一方の系列における複数のデータフレームの内容の差分(変化量)、合計(積算量)等といった演算で算定された第1値と、他方の系列における1つ又は複数のデータフレームの内容に基づく第2値との関係が正常状態と区別される状態になった場合に、不正状態の発生が検知され得る。
 また、前記所定演算処理は、質的変数の値毎に量的変数の値の範囲を規定した基準に基づいて、前記第2値を質的変数の値として用いて算定される量的変数の値の範囲に前記第1値が該当するか否かにより、前記第1条件が満たされるか否かを区別する処理であることとしても良い。これにより、互いに異なるIDを有する2種類のデータフレームの内容のうち、一方の内容が例えば車両の状態(ギアの状態等)を区分するような場合において、他方の内容がその車両の状態で定まる一定範囲に収まっているか否かにより、不正状態の発生が検知され得る。
 また、前記所定演算処理は、目的変数と説明変数との関係を示す関係式に基づいて、前記第1値を説明変数の値として用いて算定される目的変数の値の範囲に前記第2値が該当するか否かにより、前記第1条件が満たされるか否かを区別する処理であることとしても良い。これにより、互いに異なるIDを有する2種類のデータフレームの内容のうち、一方の内容と他方の内容とが正常状態において例えば一定の因果関係を有するような場合にその関係を条件として定めておくことで、不正状態の発生の検知が可能となり得る。
 また、前記不正検知ルール情報は、前記第1条件として、1つ以上の前記第1種フレームにおけるデータフィールドの内容と、1つ以上の前記第2種フレームのデータフィールドの内容との関係を、ピアソンの積率相関係数、最大情報係数、又は、正準相関係数を用いた関係式で規定することとしても良い。これにより、互いに異なるIDを有する2種類のデータフレームの内容を関係式で規定した条件により、不正状態の発生の検知が可能となり得る。
 また、前記不正検知ルール情報は更に、前記第1種フレームと、前記第1識別子とも前記第2識別子とも異なる第3識別子を有するデータフレームである第3種フレームとの、データフィールドの内容の関係についての条件である第2条件を示し、前記不正判定ステップでは、更に、前記受信ステップで受信された前記第1種フレーム及び前記第3種フレームが、前記不正検知ルール情報が示す前記第2条件を満たすか否かを判定し、前記不正検知方法は更に、前記第1条件及び前記第2条件のうち前記不正判定ステップで満たされないと判定された条件の数に応じて前記第1種フレームの送信に関する異常度を算定する異常度算定ステップと、前記異常度算定ステップにより算定された異常度が所定異常条件を満たす場合に、前記第1種フレームを送信する電子制御ユニットが受信可能となるように前記監視電子制御ユニットが所定フレームを送信する送信ステップとを含むこととしても良い。これにより、不正状態(異常)の発生への関連性の高さが反映されて異常度が算定されるので、異常度に応じて不正状態の発生源の特定等が可能となり得る。また、例えば所定フレームを個々のECUの診断用に用いる場合において、異常度に応じて状態を診断すべきECUを絞り込んで送信を行うことが可能となるので、ECUの診断のための通信によるバストラフィックの増大が抑制され得る。
 また、前記不正検知方法は更に、データフレームの識別子毎に定められるデータフレームについての条件を示す侵入検知ルール情報を用いて、前記受信ステップで前記バスから受信されたデータフレームが、当該侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定ステップと、前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処ステップとを含み、前記侵入検知ルール情報が示す、一の識別子のデータフレームについての前記条件は、当該識別子を有するデータフレーム間の受信間隔と、一定時間内に受信される当該識別子を有するデータフレームの数と、当該識別子を有するデータフレーム間でのデータフィールドから抽出される値の差異である変化量とのいずれかに関する条件を含むこととしても良い。これにより、侵入検知ルール情報に基づく侵入判定で、外部から不正なデータフレームが送信されていることを検知できる。また、少なくとも不正検知ルール情報に基づく不正判定と侵入検知ルール情報に基づく侵入判定との組み合わせにより、攻撃者による攻撃の内容等を分類し得るので、攻撃に対して適切な対処処理を決定(選定)して対応することが可能となり得る。
 また、前記不正検知方法は更に、前記バスから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証ステップを含み、前記対処ステップでは、前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果と前記検証ステップでの検証結果との組み合わせに応じて対処処理の内容の前記決定を行い、一定条件下で当該対処処理の内容として、認証用の鍵の更新に関する鍵更新処理を決定することとしても良い。これにより、不正検知ルール情報に基づく不正判定と侵入検知ルール情報に基づく侵入判定と認証子の検証結果との組み合わせにより、攻撃者による攻撃の内容或いは影響等を分類し得るので、必要に応じて認証に係る鍵の更新を行う等、攻撃に対して適切な対処処理を決定(選定)して対応することが、可能となり得る。
 また、前記不正検知方法は更に、前記対処ステップで前記鍵更新処理を実行した後において前記受信ステップで受信されたデータフレームについて、前記不正判定ステップでの前記判定、前記侵入判定ステップでの前記判定、及び、前記検証ステップでの前記検証を行い、当該不正判定ステップでの判定結果と当該侵入判定ステップでの判定結果と当該検証ステップでの検証結果との組み合わせが所定条件を満たす場合に、前記鍵更新処理とは異なる対処処理を行う追加対処ステップを含むこととしても良い。これにより、鍵更新処理の実行によって状況が改善されない場合等を検知し得るように所定条件を規定しておくことで、鍵更新処理で改善されない状況に他の対処処理により適切に対応することが可能となり得る。
 また、前記不正検知方法は更に、前記不正状態が発生したと検知した場合において、当該不正状態の発生に関係があったフレームが送信されたサブネットワークと、当該フレームを送信する電子制御ユニットと、当該フレームの識別子とのいずれかを特定することとしても良い。これにより、不正状態の発生に関する情報が特定されると、攻撃者による攻撃の内容等を、より詳しく分類可能となるので、攻撃に対して、より適切に対応することが可能となり得る。
 また、前記不正検知方法は更に、前記不正状態が発生したと検知した場合において、対処処理を実行し、前記対処処理は、前記バスに接続された特定の電子制御ユニットが受信可能となるように診断用のフレームを送信することと、前記バスに接続された特定の電子制御ユニットの正当性をチャレンジレスポンス認証により確認することと、前記バスにおける診断ポートの確認を促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者に停車又は徐行を促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者にディーラへ行くことを促すための通知を行うことと、前記車載ネットワークシステムを搭載する車両の運転者に不正状態が発生していることの通知を行うことと、前記バスに接続された電子制御ユニットに、特定の識別子を有するデータフレームが不正であることの通知を行うことと、前記車載ネットワークシステムを搭載する車両の外部のサーバに、不正なデータフレームが送信されていることの通知を行うことと、前記車載ネットワークシステムを搭載する車両の近隣の車両又は路側機へ、不正状態が発生していることの通知を行うことと、前記車載ネットワークシステムを予め定めたフェールセーフモードに切り替えることと、不正状態が発生したことをログとして記録することとのいずれかを含むこととしても良い。これにより、攻撃に対して適切に対応することが可能となり得る。
 また、前記不正検知方法では、前記バスから受信されたフレームの集合に基づく多変量解析により、相互に異なる識別子を有するフレーム同士の間でのフレームの内容の関係を特定し、特定した関係を表す条件を示すように前記不正検知ルール情報を生成又は更新することとしても良い。これにより、不正状態の発生を適切に検知できるように不正検知ルール情報の適切な生成等が可能となり得る。
 また、本開示の一態様に係る監視電子制御ユニット(監視ECU)は、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記バスに接続された監視電子制御ユニットであって、第1識別子を有するフレームと、第1識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第1条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、前記バスからフレームを逐次受信する受信部と、前記受信部により前記バスから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第1条件を満たすか否かを判定する不正判定部とを備える監視電子制御ユニットである。これにより、ファームウェアの不正な書き換え或いはマルウェアの実行により電子制御ユニット(ECU)が不正状態になった場合にそのECUが送信するフレームと、他の識別子を有するフレームとの関係の乱れにより、不正状態が発生したことが検知され得る。
 また、本開示の一態様に係る車載ネットワークシステムは、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、第1識別子を有するフレームと、第1識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第1条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、不正状態が発生したか否かを判定するために、前記バスから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第1条件を満たすか否かを判定する不正判定部とを備える車載ネットワークシステムである。これにより、ファームウェアの不正な書き換え或いはマルウェアの実行により電子制御ユニット(ECU)が不正状態になったことが、不正判定部の判定結果により検知され得る。
 なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD-ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
 以下、実施の形態に係る車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
 (実施の形態1)
 以下、本開示の実施の形態として、複数の電子制御ユニット(ECU)がバスを介して通信する車載ネットワークシステムにおいて用いられる不正検知方法について、図面を用いて説明する。不正検知方法は、不正なノード(例えば攻撃者により支配されたECU等)からバスに不正なフレームが送信されることを検知する方法であり、主としてバスに接続された監視ECUにより実行される。車載ネットワークシステムにおける監視ECUは、互いに異なる2つの識別子(メッセージID)を有するデータフレーム(メッセージ)同士の内容の関係を基にして、不正状態の発生(不正なデータフレームが送信されたこと)を検知する。
 [1.1 車載ネットワークシステム10の全体構成]
 図1は、車載ネットワークシステム10の全体構成を示す図である。
 車載ネットワークシステム10は、CANプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ、アクチュエータ、ユーザインタフェース装置等の各種機器が搭載された車両におけるネットワーク通信システムである。車載ネットワークシステム10は、車載ネットワークを構成するCANのバスを介してフレームに係る通信を行う複数の装置を備え、不正検知方法を用いる。具体的には図1に示すように車載ネットワークシステム10は、バス300と、監視ECU100、各種機器に接続されたECU200a、ECU200b、ECU200c、ECU200d等の各ECUといったバス300に接続された各ノードとを含んで構成される。なお、車載ネットワークシステム10には、監視ECU100及びECU200a、200b、200c、200d以外にもいくつものECUが含まれ得るが、ここでは、便宜上、監視ECU100及びECU200a、200b、200c、200dに注目して説明を行う。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行される制御プログラム(コンピュータプログラム)を記憶することができる。例えばプロセッサが、制御プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 ECU200a、ECU200b、ECU200c、及び、ECU200dは、バス300と接続され、それぞれ速度センサ210、加速度センサ220、ギア(変速機構)230、インストルメントパネル(インパネ)240に接続されている。ECU200aは、周期的に速度センサ210から車両の速度を取得し、取得した速度を通知するデータフレームを、周期的にバス300へ送信する。ECU200bは、周期的に加速度センサ220から車両の加速度を取得し、取得した加速度を通知するデータフレームを、周期的にバス300へ送信する。ECU200cは、周期的にギア230の状態を取得し、ギア230の状態を通知するデータフレームを、周期的にバス300へ送信する。ECU200dは、車両の速度或いはギアの状態を通知する各データフレームを受信して、インパネ240で表示する情報を更新する。
 監視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で構成され、データフィールドの長さを示す値である。
 データフィールドは、最大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は、フレーム送受信部110と、フレーム処理部120と、不正判定部130と、不正対応部140と、フレーム生成部150と、フレーム受信履歴保持部160と、不正検知ルール保持部170と、不正判定結果保持部180と、ECU情報テーブル保持部190とを含んで構成される。図4に示した監視ECU100の各構成要素は、監視ECU100のメモリ等の記憶媒体、通信回路、メモリに格納されたプログラムを実行するプロセッサ等で、実現され得る。
 フレーム送受信部110は、バス300に対して、CANのプロトコルに従ったフレーム(データフレーム等)を送受信する。フレーム送受信部110は、バス300からフレームを1bitずつ受信する受信部としての機能を有する。フレーム送受信部110は、エラー無くデータフレームの受信を完了すると、データフレーム内のID、DLC、データといった情報をフレーム処理部120に転送する。また、フレーム送受信部110は、CANプロトコルに則っていないデータフレームと判断した場合は、エラーフレームを送信する。また、フレーム送受信部110は、データフレームの受信中にエラーフレームを受信した場合、つまり受け取ったデータフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのデータフレームを破棄する。フレーム送受信部110は、フレーム生成部150からデータフレームの送信要求を受けた場合には、そのデータフレームの内容をバス300に1bitずつ送信する。通信調停といったCANのプロトコルに則った処理も、フレーム送受信部110において実現される。
 フレーム処理部120は、フレーム送受信部110よりデータフレームの情報を受け取り、データフレームの内容を解釈する。フレーム処理部120は、ECU200a、200b、200cのそれぞれから送信されるデータフレームが示す車速、加速度、或いは、ギアの状態等の情報を取得し、取得した情報に基づいて、フレーム受信履歴保持部160に格納されている各データフレームに関する情報(フレーム受信履歴)を更新する。
 不正判定部130は、不正なデータフレームを受信したか否かの判定(不正なデータフレームが送信されたか否かに係る不正判定)を、不正検知ルール保持部170が保持する不正検知ルール情報と、フレーム受信履歴保持部160が保持するフレーム受信履歴とに基づいて、所定の単位時間(例えば100ms)を周期として周期的に行う。不正判定部130は、不正検知ルール情報が示す複数の異なるIDを有するフレーム間の関係に係る条件毎について条件が満たされるか否かにより不正判定を行い、例えば、条件が満たされなかった場合に不正と判定する。不正判定部130は、不正判定の結果に基づいて、不正判定結果保持部180が保持する不正判定結果を更新する。なお、不正判定部130は、フレームの各IDについて、そのIDのフレームに関して不正検知ルール情報が示す条件に基づいて不正と検知された数(例えば満たされなかった条件の数)に応じて、異常度を算定し、異常度を、不正判定結果保持部180が保持する不正判定結果に付加する。不正と検知された数が0であれば異常度は0となり、異常度の0は、異常が検知されなかったことを表す。また、不正判定部130は、不正判定の結果として不正と判定された場合(つまり不正状態の発生が検知された場合)に、不正を検知したことを不正対応部140へ通知する。
 不正対応部140は、不正判定部130から不正を検知したことが通知されると、不正判定結果保持部180に格納されている不正判定結果と、ECU情報テーブル保持部190に格納されているECU情報テーブルとを参照して、不正への対応としての対処処理の内容を決定する。不正対応部140は、対処処理を決定した場合において、その対処処理の実行のための制御を行う。例えば、不正対応部140は、不正判定結果から、特定のIDを有するデータフレームに関連して不正が検知された場合(一例としては不正が検知されかつ算定された異常度が最も高い場合)に、ECU情報テーブルを参照して、該当するデータフレームを送信するECUに対する診断メッセージの生成をフレーム生成部150に要求する。
 フレーム生成部150は、送信すべきデータフレームの生成が要求された場合にそのデータフレームを生成して、そのデータフレームをフレーム送受信部110に送信させる。例えば、フレーム生成部150は、診断メッセージの生成が要求された場合に、予め定められた診断メッセージを表すデータフレームを生成して、そのデータフレームを、フレーム送受信部110を介してバス300へ送信する。
 フレーム受信履歴保持部160は、監視ECU100が逐次受信したデータフレームに関する情報であるフレーム受信履歴(図5参照)を保持する。
 不正検知ルール保持部170は、不正判定部130が不正判定のために参照する不正検知ルール情報(図6参照)を保持する。
 不正判定結果保持部180は、不正判定部130が、不正検知ルール情報が示すルール(条件)に適合するか否かを判定した結果としての不正判定結果(図7参照)を保持する。
 ECU情報テーブル保持部190は、各IDについてそのIDのデータフレームを送信するECUに関する情報を対応付けて構成されるECU情報テーブル(図8参照)を保持する。
 [1.5 フレーム受信履歴]
 図5は、フレーム受信履歴保持部160が保持するフレーム受信履歴の一例を示す。フレーム受信履歴は、監視ECU100が過去から現在までに受信したデータフレームの内容に関する情報であり、同図の例では、フレーム受信履歴のうち、3つのIDそれぞれについての、現在(最新)から3回前までの単位時間(例えば100ms)毎に受信されたデータフレームの内容が示す特定の値(車速、加速度、ギアの状態のそれぞれを示す値)を示している。この例は、車速に関する0x100というIDを有するデータフレームのうち、最新に受信したデータフレームの示す車速の値が18.0km/hであり、1回前に受信したデータフレームの車速の値が19.2km/h、2回前に受信した値が19.6km/h、3回前に受信した値が20.0km/hであったことを示している。また、加速度に関する0x200というIDを有するデータフレームのうち、最新から3回前までに受信したデータフレームの示す加速度の値がそれぞれ、0.10m/s^2、0.10m/s^2、0.20m/s^2、0.20m/s^2であったことを示している。また、ギアの状態に関する0x300というIDを有するデータフレームのうち、最新から3回前までに受信したデータフレームの示すギアの状態の値が、全て「D」(ドライブ)の状態を表すものであったことを示している。
 このフレーム受信履歴は、不正判定部130で、互いに異なるIDを有するデータフレーム間の内容の関係の確認(不正検知ルール情報が示す条件を満たすか否かの判定)のために用いられる。図5では、最新から3回前に受信したデータフレームの内容が示す値までしか示していないが、フレーム受信履歴は、不正検知ルール情報を用いて不正判定部130が行う不正判定において必要な情報を含むように構成され得る。例えば、フレーム受信履歴は、車両の走行の開始時(例えばエンジン始動時)等以降に監視ECU100が受信した全てのデータフレームの内容を示す情報であり得る。なお、フレーム受信履歴保持部160は、例えば、加速度の積分値を記憶するための領域を1つ有することとしても良い。
 [1.6 不正検知ルール情報]
 図6は、不正検知ルール保持部170が保持する不正検知ルール情報の一例を示す。不正検知ルール情報は、互いに異なるIDのデータフレームの内容間の関係に係る条件(ルール)を1つ以上(図6の例では3つ)含んでいる。
 図6の例では、不正検知ルール情報は、ルール番号1のルールとして、IDが0x100のデータフレームの内容(車速)とIDが0x200のデータフレームの内容(加速度)との関係についての条件を含んでいる。この条件は、ある単位時間(例えば100ms)内に受信されたIDが0x100のデータフレームが示す車速(速度)の値は、その単位時間及びそれより過去の単位時間(例えば車両の走行の開始時以降の各単位時間)に受信されたIDが0x200のデータフレームが示す加速度の値を累積してなる、加速度の積分値の±1km/hの範囲に入るという条件である。この条件が満たされれば適正な関係が保たれている正常状態であることになり、この条件が満たされなければ不正判定部130により不正と判定されること(つまり不正状態が発生していること)になる。なお、加速度の積分値は、例えば単位の換算を含めて以下の式で算定できる。
 積分値=(Σ(受信したID0x200のデータフレームが示す加速度×3.6))÷(1/ID0x200のデータフレームの送信周期)
 また、図6の例では、不正検知ルール情報は、ルール番号2のルールとして、IDが0x100のデータフレームの内容(車速)とIDが0x300のデータフレームの内容(ギアの状態)との関係についての条件を含んでいる。この条件は、ある単位時間内に受信されたIDが0x300のデータフレームが示すギアの状態の値が「D」(ドライブ)を表す場合には、同じ単位時間内に受信されたIDが0x100のデータフレームが示す車速の、前回の単位時間内に受信されたデータフレームが示す車速からの変化量(例えば差分)が、1.0km/h以下に抑えられ、「D」ではなく「R」(リバース)を表す場合には、その車速の変化量が、0.5km/h以下に抑えられているという条件である。この条件が満たされなければ不正判定部130により不正と判定されることになる。
 また、図6の例では、不正検知ルール情報は、ルール番号3のルールとして、IDが0x200のデータフレームの内容(加速度)とIDが0x300のデータフレームの内容(ギアの状態)との関係についての条件を含んでいる。この条件は、ある単位時間内に受信されたIDが0x300のデータフレームが示すギアの状態の値が「D」(ドライブ)を表す場合には、同じ単位時間内に受信されたIDが0x200のデータフレームが示す加速度の、前回の単位時間内に受信されたデータフレームが示す加速度からの変化量(例えば差分)が、1.0m/s^2以下に抑えられ、「D」ではなく「R」(リバース)を表す場合には、その加速度の変化量が、0.5m/s^2以下に抑えられているという条件である。この条件が満たされなければ不正判定部130により不正と判定されることになる。
 [1.7 不正判定結果]
 図7は、不正判定結果保持部180が保持する不正判定結果の一例を示す。図7の例では、不正判定結果は、データフレームの各ID(同図左端)について、そのIDのデータフレームと別のIDのデータフレームとの間の関係に係る条件に基づいて、不正判定部130により不正と判定されたか、否か(適正と判定されたか)を示す。なお、図7では、不正と判定されたか否かに加えて、その判定に用いられた、不正検知ルール情報におけるルール(条件)についてのルール番号を付記している。この例は、不正判定部130により、ルール番号1の条件と、ルール番号2の条件とは満たされなかったと判定され(つまり不正と判定され)、ルール番号3の条件は満たされたと判定された(つまり適正と判定された)例を示している。
 また、不正判定結果には、不正判定部130により、各IDのフレームについて不正と判定(検知)された数に応じて算定された異常度が付加されている。図7に示すように、IDが0x100のデータフレームは、ルール番号1の条件で不正と判定された上にルール番号2の条件で不正と判定されているので、異常度が2と算定されている。IDが0x200のデータフレームは、ルール番号1の条件で不正と判定されているが、ルール番号3の条件では不正と判定されていないので、異常度は1と算定されている。IDが0x300のデータフレームは、ルール番号2の条件で不正と判定されているが、ルール番号3の条件では不正と判定されていないので、異常度は1と算定されている。
 [1.8 ECU情報テーブル]
 図8は、ECU情報テーブル保持部190が保持するECU情報テーブルの一例を示す。ECU情報テーブルは、同図に示すように、データフレームのID毎に、そのIDのデータフレームの送信元のECUについての情報(送信ECU情報)を対応付けたテーブルである。図8の例は、IDが0x100のデータフレームはECU200aから送信され、IDが0x200のデータフレームはECU200bから送信され、0x300のデータフレームはECU200cから送信されることを示している。図8では省略しているが、ECU情報テーブルが示す、ECUについての送信ECU情報は、例えばそのECUに対して、そのECUの状態を診断するために送信されるデータフレームである診断メッセージの内容を特定するために必要な情報等を含み得る。あるECUの状態を診断するために送信される診断メッセージは、例えば、そのECUを識別するための識別情報、そのECUの診断に必要な情報等を含む。監視ECU100が診断メッセージを送信することにより開始されるECUの診断は、例えば、予め定められた方式に従ってなされる、ECUのファームウェアが不正に書き換えられているか否かの診断であり、例えばECUは、この診断に対応して、診断用情報(例えばメモリ内容のハッシュ値等)を監視ECU100に送信する等といった予め定められた処理を行うように構成されている。
 [1.9 ECU200aの構成]
 図9は、ECU200aの構成図である。ECU200aは、フレーム送受信部201と、フレーム処理部202と、機器入出力部203と、フレーム生成部204とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU200aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU200b、ECU200c及びECU200dもECU200aと概ね同様の構成を有する。
 フレーム送受信部201は、バス300に対して、CANのプロトコルに従ったフレーム(データフレーム等)を送受信する。フレーム送受信部201は、バス300からデータフレームを1bitずつ受信し、エラー無くデータフレームの受信を完了すると、データフレーム内のID、DLC、データといった情報をフレーム処理部202に転送する。フレーム送受信部201は、CANプロトコルに則っていないデータフレームと判断した場合は、エラーフレームを送信する。フレーム送受信部201は、データフレームの受信中にエラーフレームを受信した場合には、それ以降そのデータフレームを破棄する。また、フレーム送受信部201は、フレーム生成部204より通知を受けたフレームの内容をバス300に送信する。通信調停といったCANのプロトコルに則った処理も、フレーム送受信部201において実現される。
 フレーム処理部202は、受信したデータフレームの内容を解釈する。ECU200aと同様の構成を備えるECU200dを例として説明すると、ECU200dのフレーム処理部202では、ECU200a及びECU200cからそれぞれ送信されるデータフレームに含まれる車速(速度センサ210の情報)、ギアの状態(ギア230の状態の情報)を解釈し、インパネ240の表示の更新等のために必要な情報を、ECU200dの機器入出力部203に通知する。また、フレーム処理部202は、例えば、監視ECU100から診断メッセージであるデータフレームを受信した場合には予め定められた処理を行って診断用情報を、監視ECU100が受信可能となるようにフレーム送受信部201を介してバス300に送信し得る。
 機器入出力部203は、ECU200a、ECU200b或いはECU200cにおいて、そのECUに接続される機器と通信を行う。例えば、速度センサ210と接続されたECU200aにおいては、機器入出力部203は、現在の車両の速度を、速度センサ210から取得してフレーム生成部204に通知する。加速度センサ220に接続されたECU200bにおいては、機器入出力部203は、現在の車両の加速度を、加速度センサ220から取得してフレーム生成部204に通知する。ギア230に接続されたECU200cにおいては、機器入出力部203は、現在のギアのシフトポジションを取得してフレーム生成部204に通知する。インパネ240に接続されたECU200dにおいては、機器入出力部203は、フレーム処理部202から通知された値に基づいて制御情報をインパネ240へ送出することで、インパネ240の表示の更新等を行う。
 フレーム生成部204は、機器入出力部203から通知された情報に基づいてバス300へ送信するデータフレームを生成し、生成したデータフレームを、フレーム送受信部201を介してバスへ送信する。例えばECU200aにおいては、フレーム生成部204は、機器入出力部203から通知された速度センサ210からの車速の情報を含んだデータフレームを、予め定められた周期(例えば100ms間隔)で生成し、フレーム送受信部201に通知する。ECU200a、ECU200b、ECU200cがそれぞれ送信するデータフレームの例について次に図10を用いて説明する。
 [1.10 ECUが送信するデータフレーム]
 図10は、ECU200a、ECU200b及びECU200cのそれぞれにより送信されるデータフレームの例を示す。
 ECU200aが送信するデータフレーム401は、IDが0x100であり、DLCが2であり、そのデータフィールドは、1バイト目と2バイト目とを合わせた2バイトで車速(0.1km/h単位)を表す。図10では、20.0km/h(0xC8)の車速を示す例を示している。
 ECU200bが送信するデータフレーム402は、IDが0x200であり、DLCが2であり、そのデータフィールドは、1バイト目と2バイト目とを合わせた2バイトで加速度(0.01m/s^2単位)を表す。図10では、0.10m/s^2の加速度を示す例を示している。
 ECU200cが送信するデータフレーム403は、IDが0x200であり、DLCが1であり、そのデータフィールドは、ギア230の状態を示す値を示している。この値は、ギア230が、「N」(ニュートラル)状態においては、0となり、「R」(リバース)状態においては、1となり、「D」(ドライブ)状態においては、2となる。図10では、ギア230の状態が「D」であることを表す例を示している。
 [1.11 監視ECU100の動作]
 図11は、監視ECU100の動作例を示すフローチャートである。監視ECU100は、所定の単位時間(例えば100ms)毎に周期的に不正検知処理(不正判定)を行う。
 監視ECU100は、周期的に行われる不正判定のタイミングになるまで待って(ステップS1101)、バス300の監視による不正判定を行う(ステップS1102)。
 ステップS1102では、監視ECU100は、不正判定部130により、フレーム受信履歴保持部160に保持されているフレーム受信履歴を参照して、不正検知ルール保持部170に保持されている不正検知ルール情報が示す各ルール(条件)が満たされたか否かに基づいて、適正か不正かを判定する。
 監視ECU100は、不正判定部130により、ステップS1102での判定の結果を、不正判定結果保持部180に不正判定結果として記録し、不正判定結果に応じて異常度を算定して、算定した異常度を、不正判定結果に付加するように記録する(ステップS1103)。例えば、算定された異常度が0であれば、異常が検知されなかったことを示し、異常度が0より大きければ、異常が検知されたことを示す。
 監視ECU100は、不正判定の結果、異常が検知されたか否かを判別する(ステップS1104)。異常が検知されなかった場合には、監視ECU100は、ステップS1101に移行し、次の不正判定のタイミングの到来を待つ。
 異常(不正状態の発生)が検知された場合には、監視ECU100は、不正対応部140により、不正への対応としての対処処理の内容を決定する。具体的には、異常が検知された場合に、監視ECU100は、不正判定結果保持部180に保持されている不正判定結果において最も高い異常度のIDを有するデータフレームを送信するECUについての情報を、ECU情報テーブル保持部190のECU情報テーブルを参照することで取得して、ECUを特定し(ステップS1105)、特定したECUに対する診断メッセージをそのECUに送信することで、例えばそのECUから診断用情報を受信する等によってそのECUの状態を確認する(ステップS1106)。ステップS1106の後に、監視ECU100は、ステップS1101に移行し、次の不正判定のタイミングの到来を待つ。なお、ステップS1106でのECUの状態の確認によりそのECUに異常が生じていることを検知した場合には、監視ECU100は、車両の運転者等への警告通知、外部のサーバへの情報通知その他の対処のための制御を行い得る。
 [1.12 車載ネットワークシステム10におけるバス300の監視動作]
 図12は、車載ネットワークシステム10におけるバス300の監視の動作例を示す図である。
 この例は、ECU200a、ECU200b及びECU200cからそれぞれ、IDが0x100のデータフレーム(車速を示すデータフレーム)と、IDが0x200のデータフレーム(加速度を示すデータフレーム)と、IDが0x300のデータフレーム(ギアの状態を示すデータフレーム)とが、周期的にバス300へ送信される様子を示している。この例は更に、攻撃者によりECU200aのファームウェアが不正に書き換えられてしまい、ECU200aは、ある時点から、速度センサ210から通知される車速を改竄して、不正な車速を示すデータフレームをバス300へ送信する例を示している。
 監視ECU100は、IDが0x300のデータフレームを受信したタイミングの直後から100msの周期で定期的に、不正判定(不正検知処理)を行う。この不正判定を行うタイミングを各単位時間(100ms)の終期であるとすれば、最初の3回の単位時間それぞれでバス300から受信されたデータフレームについては、不正検知ルール保持部170に格納されている不正検知ルール情報が示すルール番号1から3のいずれのルールでも不正は検知されていない。この例の最初の時点で加速度の積分値は20.0km/hであったとする。そのため、加速度の積分値は1回目から4回目までの加速度を示す各データフレームの受信により、20.072、20.144、20.18、20.21km/hと順次変化する。監視ECU100は、4回目に受信した車速のデータフレームが示す車速(18.0km/h)と、加速度のデータフレームが示す加速度に基づく積分値(20.2km/h)の差(変化量)が1.0km/hを超えたので、ルール番号1のルール(条件)が満たされずに不正を検知する。更に、監視ECU100は、4回目に受信したデータフレームが示すギアの状態が「D」(ドライブ)である場合において、速度の変化量(4回目に受信した車速のデータフレームが示す車速18.0km/hと前回受信したデータフレームが示す車速19.2km/hとの差)が1.0km/hを超えたので、ルール番号2の不正を検知する。これにより、監視ECU100は、2つのルール(条件)を満たさないことで異常度が最も高く2と算定された、IDが0x100のデータフレームの送信元を、ECU情報テーブル保持部190が保持するECU情報テーブルを参照することにより、ECU200aであると特定する。そして、監視ECU100は、ECU200aに対して、診断メッセージを送信する。
 [1.13 実施の形態1の効果]
 実施の形態1に係る車載ネットワークシステム10では、監視ECU100が、互いに異なる複数のIDを有するデータフレームの内容間の関係に基づいて不正を検知する。これにより、攻撃者によりECUのファームウェアが不正に書き換えられ、或いは、ECU上で不正なプログラムが実行される等により、正規の送信タイミングで不正な内容のデータフレームが送信されたとしても、IDの相違するデータフレーム間の内容の関係の崩れから、不正なデータフレームの送信が検知され得る。例えば、攻撃者があるECUを支配して不正なデータフレームを送信しても、他のECUが送信するデータフレームとの間での関係に基づいて不正が検知されることから、不正を検知されずに攻撃者が攻撃を行うことが困難となる。
 また監視ECU100は、不正検知ルール情報が示す複数の条件に基づく不正判定を行った結果に基づいて、異常度の算定により、不正なデータフレームのID及びその送信元のECUを絞り込み、効率的に診断メッセージの送信等を行う。このようにECUに対応した診断メッセージを送信するためにECUを絞り込むことは、バス300のトラフィック量の増大の抑制のために有用であり、診断メッセージの送信以外の対処を行う場合であっても、不正状態の発生原因となるECUへの対処を効率的に行うために、異常度の算定によりECUを絞り込むことは有用である。
 (実施の形態2)
 以下、実施の形態1で示した車載ネットワークシステム10を一部変形してなる車載ネットワークシステム11について説明する。
 本実施の形態に係る車載ネットワークシステム11における監視ECUは、互いに異なるIDを有するデータフレームの内容間の関係を基にして、不正状態の発生を検知する方法(実施の形態1で示した不正判定の方法)の他に、単一のIDのデータフレームについてID毎に定められたルール(条件)に基づいても不正状態の発生を検知する方法を用いて、総合的に対処処理を決定する。
 [2.1 車載ネットワークシステム11の全体構成]
 図13は、車載ネットワークシステム11の全体構成を示す図である。
 車載ネットワークシステム11は、バス300と、監視ECU2100、センサ等の各種機器に接続されたECU200a、ECU200b、ECU200c、ECU200d等の各ECUといったバス300に接続された各ノードとを含んで構成される。車載ネットワークシステム11では、更にバス300に接続された診断ポート2400が存在する。車載ネットワークシステム11は、ここで特に説明しない点については実施の形態1で示した車載ネットワークシステム10(図1参照)と同じであり、車載ネットワークシステム10と同様の構成要素については、図13において、図1と同じ符号を付しており、ここでの説明を省略する。
 監視ECU2100は、実施の形態1で示した監視ECU100を部分的に変形したものであり、バス300に流れるデータフレームを監視して、不正なデータフレームが送信されたか否かの判定(不正判定及び侵入判定)を行い不正状態の発生を検知する。更に監視ECU2100は、不正なデータフレームが送信された状況(不正判定及び侵入判定の結果)に応じて対処処理の内容を決定して、対処処理を行う。
 診断ポート2400は、バス300にアクセス可能なポートである。診断ポート2400を介して、診断ツール等といった機器によるバス300へのアクセスが可能となる。即ち、診断ポート2400に診断ツール等を接続し、バス300に繋がるECUの状態を診断することができる。この診断ポート2400から、バス300に対してデータフレームの送受信が可能となるため攻撃者が、診断ポート2400を介して、不正なデータフレームを送信することも考えられる。ここでは、診断ポート2400を介した不正なデータフレームのバス300への注入(送信)を、侵入とも称する。
 [2.2 監視ECU2100の構成]
 図14は、監視ECU2100の構成図である。監視ECU2100は、フレーム送受信部110と、フレーム処理部120と、不正判定部130と、侵入判定部2131と、異常対応部2140と、フレーム生成部150と、フレーム受信履歴保持部2160と、不正検知ルール保持部170と、侵入検知ルール保持部2171と、不正判定結果保持部180と、侵入判定結果保持部2181と、ECU情報テーブル保持部190と、異常対応テーブル保持部2191とを含んで構成される。実施の形態1と同様の機能を有する構成要素は、図14において、図4と同じ符号を付しており、ここでの説明を省略する。図14に示した監視ECU2100の各構成要素は、監視ECU2100のメモリ等の記憶媒体、通信回路、メモリに格納されたプログラムを実行するプロセッサ等で、実現され得る。
 侵入判定部2131は、外部からバス300に不正なデータフレームが注入されているか否かの判定(不正なデータフレームが注入されたか否かに係る侵入判定)を、侵入検知ルール保持部2171が保持する侵入検知ルール情報と、フレーム受信履歴保持部2160が保持するフレーム受信履歴に基づいて、所定の単位時間(例えば100ms)を周期として周期的に行う。侵入判定部2131は、侵入判定の結果に基づいて、侵入判定結果保持部2181が保持する侵入判定結果を更新する。また、侵入判定部2131は、侵入判定の結果として侵入と判定された場合つまり異常発生が検知された場合に、侵入を検知したことを異常対応部2140へ通知する。
 異常対応部2140は、不正判定部130或いは侵入判定部2131から、不正或いは侵入を検知したこと(異常発生)を通知されると、不正判定結果保持部180に格納されている不正判定結果と、侵入判定結果保持部2181に格納されている侵入判定結果と、ECU情報テーブル保持部190に格納されているECU情報テーブルと、異常対応テーブル保持部2191に格納されている異常対応テーブルとを参照して、異常への対応としての対処処理の内容を決定する。異常対応部2140は、対処処理を決定した場合において、その対処処理の実行のための制御を行う。例えば、異常対応部2140は、特定のIDを含むデータフレームが異常(例えば不正であり算定された異常度が最も高い等)という不正判定結果と、その特定のIDを含むデータフレームについて侵入と判定した侵入判定結果とを取得した場合には、診断ポート2400を介して不正なデータフレームが注入されている可能性が高いので、診断ポート2400に不正なデバイスが接続されていないかの確認をユーザ(運転者等)に促すべく送信するためのデータフレームの生成を、フレーム生成部150に要求する。また、例えば、異常対応部2140は、特定のIDを含むデータフレームの侵入が検知されていないという侵入判定結果と、その特定のIDを含むデータフレームの異常が検知されている不正判定結果とを取得した場合には、ECUのファームウェアが不正に書き換えられている可能性が高いとして、ECU情報テーブルを参照して、該当するデータフレームを送信するECUに対しての診断メッセージの生成を、フレーム生成部150に要求する。
 フレーム受信履歴保持部2160は、監視ECU2100が逐次受信したデータフレームに関する情報であるフレーム受信履歴(図15参照)を保持する。
 侵入検知ルール保持部2171は、侵入判定部2131が侵入判定のために参照する単一のIDのデータフレームについてID毎に定められた条件を示す侵入検知ルール情報(図16参照)を保持する。
 侵入判定結果保持部2181は、侵入判定部2131が、侵入検知ルール情報が示す条件を満たすか否かを判定した結果としての侵入判定結果(図17参照)を保持する。
 異常対応テーブル保持部2191は、不正判定結果及び侵入判定結果に応じて、不正或いは侵入の発生に対して適切な対処処理の内容を決定するために用いられる異常対応テーブル(図18参照)を保持する。
 [2.3 フレーム受信履歴]
 図15は、フレーム受信履歴保持部2160が保持するフレーム受信履歴の一例を示す。フレーム受信履歴は、監視ECU2100が過去から現在までに受信したデータフレームの内容に関する情報であり、同図の例では、フレーム受信履歴のうち、3つのIDそれぞれについての、現在(最新)から2回前までに受信されたデータフレームの受信時刻とデータフレームの内容が示す特定の値(車速、加速度、ギアの状態のそれぞれを示す値)とを示している。この例は、車速に関する0x100というIDを有するデータフレームのうち、最新のデータフレームの受信時刻が210msであって、受信したデータフレームの示す車速の値が18.0km/hであり、1回前の受信時刻が110msであって、受信したデータフレームの車速の値が19.2km/hであり、2回前の受信時刻が10msであって、受信した値が19.6km/hであったことを示している。また、加速度に関する0x200というIDを有するデータフレームのうち、最新から2回前までに受信したデータフレームの受信時刻がそれぞれ220ms、120ms、20msであって、受信した各データフレームの示す加速度の値がそれぞれ、0.10m/s^2、0.10m/s^2、0.20m/s^2であったことを示している。また、ギアの状態に関する0x300というIDを有するデータフレームのうち、最新から2回前までに受信したデータフレームの受信時刻がそれぞれ230ms、130ms、30msであって、受信した各データフレームの示すギアの状態の値が、全て「D」(ドライブ)の状態を表すものであったことを示している。
 このフレーム受信履歴は、不正判定部130での不正判定、及び、侵入判定部2131での侵入判定において用いられる。図15では、最新から2回前に受信したデータフレームの内容が示す値までしか示していないが、フレーム受信履歴は、不正検知ルール情報を用いて不正判定部130が行う不正判定において必要な情報、及び、侵入検知ルール情報を用いて侵入判定部2131が行う侵入判定において必要な情報を含むように構成され得る。例えば、フレーム受信履歴は、車両の走行の開始時(例えばエンジン始動時)等以降に監視ECU2100が受信した全てのデータフレームの内容を示す情報であり得る。なお、フレーム受信履歴保持部2160は、例えば、加速度の積分値を記憶するための領域を1つ有することとしても良い。
 [2.4 侵入検知ルール情報]
 図16は、侵入検知ルール保持部2171が保持する侵入検知ルール情報の一例を示す。侵入検知ルール情報は、ID毎に、そのIDを有するデータフレームについて満たれるべき条件(ルール)を含んでいる。侵入検知ルール情報が示す条件が満たされるか否かが、侵入判定のために侵入判定部2131で確認される。この条件を満たさないデータフレームを検知することで侵入判定部2131は、侵入を検知する。図16の例では、侵入検知ルール情報は、ID毎に、条件を規定するための受信間隔とマージンとデータ変化量とを示している。受信間隔は、対応するIDのデータフレームが受信される間隔を示し、マージンは、受信間隔の揺らぎの許容範囲を示す。図16の例では、例えばIDが0x100のデータフレームについては、受信間隔が100msであり、マージンが5msであるので、IDが0x100のデータフレームを受信した間隔が、95msから105msの範囲内であれば条件が満たされ、条件が満たされると侵入判定においては正常(侵入でない)と判定される。この条件が満たされない場合には、侵入判定において異常(侵入検知)と判定される。データ変化量は、対応するIDの、前回受信されたデータフレームのデータフィールドから抽出されたデータ値から現在受信されたデータフレームのデータフィールドから抽出されたデータ値までに変化する変化量(値の差異)の上限という条件を示すものである。図16の例では、例えばIDが0x100のデータフレーム(車速)についてのデータ変化量が2km/hであるので、IDが0x100の連続して受信したデータフレームのデータ(車速)間の変化量が、2km/h以内の変化であれば上限条件が満たされ、条件が満たされると侵入判定においては正常(侵入でない)と判定される。例えば、監視ECU2100が、車速19.2km/hを示すIDが0x100のデータフレームを受信してから、次に受信する、IDが0x100のデータフレームの車速の値が17.2~21.2km/hであれば、正常と判定される。この条件が満たされない場合には、侵入判定において異常(侵入)と判定される。図16の例では、IDが0x200のデータフレームについての条件として、受信間隔100msと、マージン5msと、データ変化量5m/s^2とが規定されている。また、IDが0x300のデータフレームについての条件として、受信間隔100msと、マージン5msとが規定されているが、データ変化量は規定されていない。これはデータ変化量に関する条件がないことを意味する。このように、侵入検知ルール情報が示す各IDのデータフレームについての条件としては、そのIDの正常なデータフレームが周期的に送信されている状況において、そのIDを有する不正なデータフレームが外部から注入されたときに正常なデータフレームとの間で齟齬が生じることで条件が満たされなくなるような条件が規定されることが有用である。図16の例は、正常なデータフレームと外部から注入された不正なデータフレームとの混在により、受信間隔及びデータ変化量に係る条件が満たされなくなる可能性に鑑みて、その条件が規定されている。
 [2.5 侵入判定結果]
 図17は、侵入判定結果保持部2181が保持する侵入判定結果の一例を示す。図17の例では、侵入判定結果は、データフレームの各IDについて、そのIDのデータフレームに係る条件に基づいて、侵入判定部2131により正常(侵入でない)と判定されたか、異常(侵入検知)と判定されたかを示す。図17の例は、侵入判定部2131により、IDが0x100のデータフレームが正常と判定され、IDが0x200のデータフレームが異常と判定され、IDが0x300のデータフレームが正常と判定されたことを示している。
 [2.6 異常対応テーブル]
 図18は、異常対応テーブル保持部2191が保持する異常対応テーブルの一例を示す。この異常対応テーブルを参照して、異常対応部2140は、不正判定結果及び侵入判定結果に基づいて異常への対応としての対処処理の内容を決定する。図18に示すように、不正判定結果と侵入判定結果との組み合わせにより、対応が変化する。異常対応テーブルは、図18の例では、不正判定結果が正常(例えば異常度が0)であって侵入判定結果が正常である場合には、対処処理として特に何もしない(何の対応も行わない)ことを示す。
 また、この例の異常対応テーブルは、不正判定結果が異常(例えば異常度が0より大きい)であって侵入判定結果が正常である場合には、異常なデータフレームの送信元に該当するECUへ診断メッセージを送信することで状況を確認することを対処処理の内容とすることを示す。この該当のECUへの診断メッセージの送信は、外部から不正メッセージ(攻撃のためのデータフレーム)が注入されていないが互いに異なるIDのデータフレームの内容間の関係が崩れていることから該当のECUのファームウェアが不正に書き換えられている可能性があるので、これに対応するために有用な処理である。
 また、この例の異常対応テーブルは、不正判定結果が正常であって侵入判定結果が異常である場合には、診断ポート2400等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことを対処処理の内容とすることを示す。このユーザへの通知は、攻撃者によるECUのファームウェアの書き換え等でのECUの支配がなされていないが、外部から正常なメッセージを再送する等の攻撃の試行がなされている可能性があるので、これに対応するために有用な処理である。ユーザへの通知は、例えば、監視ECU2100から所定IDのデータフレームをバス300に送信し、その所定IDのデータフレームをECU200dが受信すると予め定められたメッセージをインパネ240に表示するよう制御する等により実現され得る。
 また、この例の異常対応テーブルは、不正判定結果が異常であって侵入判定結果も異常である場合には、診断ポート2400等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことと、各ECUへ異常が発生していることを通知するフレーム(異常通知メッセージ)を送信することとを、対処処理の内容とすることを示す。これは、外部から攻撃フレームが注入されてECUが支配されている可能性があって車両の制御への危険度が高いと想定される場合への対応の一例である。なお、車載ネットワークシステム11における各ECUは異常通知メッセージを受信した場合に、予め定められたセキュリティ対策(例えば車両を減速させ停止させる等の走行制御、自動走行機能の縮退等)を行うように構成され得る。
 [2.7 監視ECU2100の動作]
 図19は、監視ECU2100の動作例を示すフローチャートである。監視ECU2100は、例えば100ms毎に周期的に不正検知処理(不正判定)及び侵入検知処理(侵入判定)を行う。
 監視ECU2100は、周期的に行われる不正判定のタイミングになるまで待って(ステップS2101)、バス300の監視による不正判定を行う(ステップS2102)。ステップS2102では、監視ECU2100は、不正判定部130により、フレーム受信履歴保持部2160に保持されているフレーム受信履歴を参照して、不正検知ルール保持部170に保持されている不正検知ルール情報が示す各ルール(条件)が満たされたか否かに基づいて、適正か不正かを判定する。なお、不正判定部130は、不正判定結果を不正判定結果保持部180に格納し、異常度の算定結果を不正判定結果に付加する。
 次に監視ECU2100は、侵入判定を行う(ステップS2103)。ステップS2103では、監視ECU2100は、侵入判定部2131により、フレーム受信履歴保持部2160に保持されているフレーム受信履歴を参照して、侵入検知ルール保持部2171に保持されている侵入検知ルール情報が示す条件が満たされたか否かに基づいて、正常か異常(侵入検知)かを判定する。なお、侵入判定部2131は、侵入判定結果を侵入判定結果保持部2181に格納する。
 次に監視ECU2100は、不正判定結果及び侵入判定結果に基づいて、異常対応テーブル保持部2191が保持する異常対応テーブルに従って、対処処理の内容を決定する(ステップS2104)。
 そして、監視ECU2100は、ステップS2104で決定した内容の対処処理を実行し(ステップS2105)、ステップS2101へと移行する。なお、監視ECU2100は、不正判定結果及び侵入判定結果のいずれもが正常であった場合において、特に対処処理は実行しない。
 [2.8 車載ネットワークシステム11におけるバス300の監視の動作例1]
 図20は、車載ネットワークシステム11におけるバス300の監視の動作例1を示す。
 この例は、ECU200a、ECU200b及びECU200cからそれぞれ、IDが0x100のデータフレーム(車速を示すデータフレーム)と、IDが0x200のデータフレーム(加速度を示すデータフレーム)と、IDが0x300のデータフレーム(ギアの状態を示すデータフレーム)とが、周期的にバス300へ送信される様子を示している。この例は更に、ある時点で攻撃者により診断ポート2400からIDが0x200の不正なデータフレームが注入(送信)される例を示している。
 監視ECU2100はバス300を監視しており、診断ポート2400からIDが0x200の不正なデータフレーム(加速度-1.50を示すデータフレーム)が注入されると、不正検知ルール情報(図6参照)が示すルール番号3の条件(ギアの状態「D」と加速度の変化量との関係に係る条件)が満たされなくなる。このため、監視ECU2100では不正判定において不正と判定されることで異常が検知される。また、この不正なデータフレームの注入により、IDが0x200のデータフレームの受信間隔が50msとなり、侵入検知ルール情報(図16参照)が示す、IDが0x200のデータフレームについての受信間隔及びマージンで規定された条件が、満たされなくなる。このため、監視ECU2100では侵入判定において異常が検知される。そして、監視ECU2100は、不正判定及び侵入判定のいずれでも異常が検知されたので、異常対応テーブル(図18参照)に従って、診断ポート2400の確認をユーザに促し、かつ、各ECUへ車載ネットワークに異常が発生していることを通知する対処処理(予め定められたデータフレームの送信等)を実行する。
 [2.9 車載ネットワークシステム11におけるバス300の監視の動作例2]
 図21は、車載ネットワークシステム11におけるバス300の監視の動作例2を示す。
 この例は、動作例1と同様に、ECU200a、ECU200b及びECU200cからそれぞれ、車速を示すデータフレームと、加速度を示すデータフレームと、ギアの状態を示すデータフレームとが、周期的にバス300へ送信される様子を示している。この例は更に、ある時点で攻撃者により診断ポート2400からIDが0x100の不正なデータフレームが注入(送信)される例を示している。
 この例では、診断ポート2400から不正なデータフレームが注入されることにより、IDが0x100のデータフレームの受信間隔が80msとなり、侵入検知ルール情報が示す、IDが0x100のデータフレームについての受信間隔及びマージンで規定された条件が、満たされなくなる。このため、監視ECU2100における不正判定では不正と判定されない(つまり異常が検知されない)が、侵入判定では異常が検知される。そして、監視ECU2100は、侵入判定のみで異常が検知されたので、異常対応テーブル(図18参照)に従って、診断ポート2400の確認をユーザに促す対処処理(予め定められたデータフレームの送信等)を実行する。
 [2.10 実施の形態2の効果]
 実施の形態2に係る車載ネットワークシステム11では、監視ECU2100が、互いに異なる複数のIDを有するデータフレームの内容間の関係に基づいて不正を検知する不正判定の他に、単一のIDのデータフレームに関してID毎に定められた条件に基づいて侵入を検知する侵入判定を行う。そして、不正判定結果及び侵入判定結果の組み合わせに応じて、対処処理の内容を決定して、対処処理を実行する。これにより、攻撃者によりECUのファームウェアが不正に書き換えられ、或いは、ECU上で不正なプログラムが実行される等により、正規の送信タイミングで不正な内容のデータフレームが送信されたとしても、IDの相違するデータフレーム間の内容の関係の崩れから、不正なデータフレームの送信が検知され得る。例えば、攻撃者があるECUを支配して不正なデータフレームを送信しても、他のECUが送信するデータフレームとの間での関係に基づいて不正が検知されることから、不正を検知されずに攻撃者が攻撃を行うことが困難となる。更に、攻撃者が外部から不正なデータフレームを注入する場合に対しても適切に検知でき、不正判定結果及び侵入判定結果の組み合わせに応じて、攻撃の状況に応じた適切な対応が可能となる。
 (実施の形態3)
 以下、実施の形態2で示した車載ネットワークシステム11を一部変形してなる車載ネットワークシステム12について説明する。
 本実施の形態に係る車載ネットワークシステム12における監視ECUは、互いに異なるIDを有するデータフレームの内容間の関係に基づいて不正状態の発生を検知する方法、及び、単一のIDのデータフレームについてID毎に定められたルール(条件)に基づいて不正状態の発生を検知する方法の他に、データフレームに付されたメッセージ認証コード(MAC:Message Authentication Code)の検証の成否を判別する方法を用いて、総合的に対処処理を決定する。
 [3.1 車載ネットワークシステム12の全体構成]
 図22は、車載ネットワークシステム12の全体構成を示す図である。
 車載ネットワークシステム12は、バス300と、監視ECU3100、センサ等の各種機器に接続されたECU3200a、ECU3200b、ECU3200c、ECU3200d等の各ECUといったバス300に接続された各ノードと、バス300に接続された診断ポート2400とを含んで構成される。車載ネットワークシステム12は、ここで特に説明しない点については実施の形態2で示した車載ネットワークシステム11(図13参照)と同じであり、車載ネットワークシステム11と同様の構成要素については、図22において、図13と同じ符号を付しており、ここでの説明を省略する。
 監視ECU3100は、実施の形態2で示した監視ECU2100を部分的に変形したものであり、バス300に流れるデータフレームを監視して、不正なデータフレームが送信されたか否かの判定(不正判定及び侵入判定)を行い不正状態の発生を検知する。更に監視ECU3100は、バス300に流れるデータフレームに付されたMACを検証し、MACの検証結果と不正なデータフレームが送信された状況(不正判定及び侵入判定の結果)とに応じて対処処理の内容を決定して、対処処理を行う。
 ECU3200a、ECU3200b、ECU3200c、及び、ECU3200dは、バス300と接続され、それぞれ速度センサ210、加速度センサ220、ギア230、インパネ240に接続されている。ECU3200aは、周期的に速度センサ210から車両の速度を取得し、取得した速度を示す情報とMACとを含ませたデータフレームを、周期的にバス300へ送信する。ECU3200bは、周期的に加速度センサ220から車両の加速度を取得し、取得した加速度を示す情報とMACとを含ませたデータフレームを、周期的にバス300へ送信する。ECU3200cは、周期的にギア230の状態を取得し、ギア230の状態を示す情報とMACとを含ませたデータフレームを、周期的にバス300へ送信する。ECU200dは、車両の速度を示す情報或いはギアの状態を示す情報を含む各データフレームを受信して、データフレームに付されたMACを検証し、検証に成功した場合(MACが正当であると検証できた場合)に、インパネ240で表示する情報を更新する。
 監視ECU3100と、ECU3200aと、ECU3200bと、ECU3200cと、ECU3200dとは、共通の秘密鍵を共有し、例えばAES(Advanced Encryption Standard)―CMAC(Cipher-based MAC)アルゴリズムによりMACを生成及び検証する。また、車載ネットワークシステム12においてはCANプロトコルに従って、各ECUがフレームの授受を行う。
 [3.2 監視ECU3100の構成]
 図23は、監視ECU3100の構成図である。監視ECU3100は、フレーム送受信部110と、フレーム処理部120と、不正判定部3130と、侵入判定部3131と、異常対応部3140と、フレーム生成部150と、MAC検証部3500と、MAC生成部3510と、フレーム受信履歴保持部3160と、不正検知ルール保持部170と、侵入検知ルール保持部2171と、不正判定結果保持部3180と、侵入判定結果保持部3181と、ECU情報テーブル保持部190と、異常対応テーブル保持部3191とを含んで構成される。実施の形態1の監視ECU100或いは実施の形態2の監視ECU2100と同様の機能を有する構成要素は、図23において、図4或いは図14と同じ符号を付しており、ここでの説明を省略する。図23に示した監視ECU3100の各構成要素は、監視ECU3100のメモリ等の記憶媒体、通信回路、メモリに格納されたプログラムを実行するプロセッサ等で、実現され得る。
 不正判定部3130は、実施の形態1で示した不正判定部130を部分的に変形したものであり、不正なデータフレームを受信したか否かの判定(不正なデータフレームが送信されたか否かに係る不正判定)を、不正検知ルール保持部170が保持する不正検知ルール情報と、MACの検証結果を含むフレーム受信履歴保持部3160が保持するフレーム受信履歴とに基づいて、所定の単位時間(例えば100ms)を周期として周期的に行う。不正判定部3130は、ここで特に示さない点は、不正判定部130と同様である。不正判定部3130は、不正判定の結果に基づいて、不正判定結果保持部3180が保持する不正判定結果を更新する。また、不正判定部3130は、不正判定の結果として不正と判定された場合(つまり不正状態の発生が検知された場合)に、不正を検知したことを異常対応部3140へ通知する。
 侵入判定部3131は、外部からバス300に不正なデータフレームが注入されているか否かの判定(不正なデータフレームが注入されたか否かに係る侵入判定)を、侵入検知ルール保持部2171が保持する侵入検知ルール情報と、フレーム受信履歴保持部3160が保持するフレーム受信履歴に基づいて、所定の単位時間(例えば100ms)を周期として周期的に行う。侵入判定部3131は、侵入判定の結果に基づいて、侵入判定結果保持部3181が保持する侵入判定結果を更新する。また、侵入判定部3131は、侵入判定の結果として侵入と判定された場合つまり異常発生が検知された場合に、侵入を検知したことを異常対応部3140へ通知する。
 異常対応部3140は、不正判定部3130或いは侵入判定部3131から、不正或いは侵入を検知したこと(異常発生)を通知されると、不正判定結果保持部3180に格納されている不正判定結果と、侵入判定結果保持部3181に格納されている侵入判定結果と、ECU情報テーブル保持部190に格納されているECU情報テーブルと、異常対応テーブル保持部3191に格納されている異常対応テーブルとを参照して、異常への対応としての対処処理の内容を決定する。異常対応部3140は、対処処理を決定した場合において、その対処処理の実行のための制御を行う。例えば、異常対応部3140は、MACの検証に成功しているが不正判定結果が異常を示して侵入検知結果が異常を示さない場合において、ECUのファームウェアが不正に書き換えられて認証用の鍵(MAC生成に用いられる秘密鍵)を利用されている可能性が高いので、異常に係るデータフレームの送信元のECUに対して送信すべき診断メッセージの生成を、フレーム生成部150に要求し、更に、他のECUに対して秘密鍵の更新を促すために送信すべき、予め定められた更新用メッセージ(更新用のデータフレーム)の生成を、フレーム生成部150に要求する。
 MAC検証部3500は、図24に示すように、MAC生成部3510と、MAC比較部3520とを含んで構成される。MAC生成部3510は、データ処理部3511と、AES暗号化部3512と、秘密鍵保持部3513とを含んで構成される。データ処理部3511は、受信したデータフレームにおいてMACの生成用に用いられることが定められた部分を抽出し(例えばIDとデータフィールドにおけるMAC以外の部分等とを連結し)、AES暗号化部3512の入力サイズに適合するようにパディング等の処理を行う。AES暗号化部3512は、例えば暗号化関数等として実装され、データ処理部3511が処理したデータを、秘密鍵保持部3513が保持する秘密鍵を用いて、暗号化し、暗号化で得られた値の一部をMACとして生成し、MAC比較部3520へ通知する。データ処理部3511は、再送攻撃対策として逐次カウントアップさせるカウンタ値を、暗号化対象のデータに含ませても良い。MAC比較部3520は、MAC生成部3510から通知されたMACと、受信したデータフレームのデータフィールドに含まれるMACと比較して等しいか否かを判断する。MAC検証部3500は、MAC比較部3520の比較により両MACが等しかった場合にMACが正当であったこと(検証に成功したこと)を示す検証結果を、等しくなかった場合にMACが不正であったこと(検証に失敗したこと)を示す検証結果を、出力する。なお、MAC検証部3500によるMACの検証結果は、フレーム送受信部110で受信されたデータフレームの情報と一緒に、フレーム処理部120に通知される。フレーム処理部120では、取得したデータフレームの情報とMACの検証結果とに基づいて、フレーム受信履歴保持部3160に格納されている各データフレームに関する情報(フレーム受信履歴)を更新する。
 フレーム受信履歴保持部3160は、監視ECU3100が逐次受信したデータフレームに関する情報であってMACの検証結果を含む情報であるフレーム受信履歴(図25参照)を保持する。
 不正判定結果保持部3180は、不正判定部3130が、不正検知ルール情報が示すルール(条件)に適合するか否かを判定した結果としての不正判定結果(図26参照)を保持する。
 侵入判定結果保持部3181は、侵入判定部3131が、侵入検知ルール情報が示す条件を満たすか否かを判定した結果としての侵入判定結果(図27参照)を保持する。
 異常対応テーブル保持部3191は、不正判定結果、侵入判定結果及びMACの検証結果に応じて、不正或いは侵入の発生に対して適切な対処処理の内容を決定するために用いられる異常対応テーブル(図28参照)を保持する。
 [3.3 フレーム受信履歴]
 図25は、フレーム受信履歴保持部3160が保持するフレーム受信履歴の一例を示す。フレーム受信履歴は、監視ECU3100が過去から現在までに受信したデータフレームの内容及びMACの検証結果に関する情報であり、同図の例では、フレーム受信履歴のうち、3つのIDそれぞれについての、現在(最新)から2回前までに受信されたデータフレームの受信時刻とMACの検証結果とデータフレームの内容が示す特定の値(車速、加速度、ギアの状態のそれぞれを示す値)とを示している。この例は、車速に関する0x100というIDを有するデータフレームのうち、最新のデータフレームの受信時刻が210msであって、MACが正当であって、受信したデータフレームの示す車速の値が18.0km/hであり、1回前の受信時刻が110msであって、MACが正当であって、受信したデータフレームの車速の値が19.2km/hであり、2回前の受信時刻が10msであって、MACが不正であって、受信した値が0.0km/hであったことを示している。また、加速度に関する0x200というIDを有するデータフレームのうち、最新から2回前までに受信したデータフレームの受信時刻がそれぞれ220ms、120ms、20msであって、受信した各データフレームの示す加速度の値がそれぞれ、0.10m/s^2、0.10m/s^2、0.20m/s^2であって、MACは全て正当であったことを示している。また、ギアの状態に関する0x300というIDを有するデータフレームのうち、最新から2回前までに受信したデータフレームの受信時刻がそれぞれ230ms、130ms、30msであって、受信した各データフレームの示すギアの状態の値が、全て「D」(ドライブ)の状態を表すものであって、MACは全て正当であったことを示している。
 このフレーム受信履歴は、不正判定部3130での不正判定、及び、侵入判定部3131での侵入判定において用いられる。図25では、最新から2回前に受信したデータフレームの内容が示す値までしか示していないが、フレーム受信履歴は、不正検知ルール情報を用いて不正判定部3130が行う不正判定において必要な情報、及び、侵入検知ルール情報を用いて侵入判定部3131が行う侵入判定において必要な情報を含むように構成され得る。例えば、フレーム受信履歴は、車両の走行の開始時(例えばエンジン始動時)等以降に監視ECU3100が受信した全てのデータフレームの内容を示す情報であり得る。なお、フレーム受信履歴保持部3160は、例えば、加速度の積分値を記憶するための領域を1つ有することとしても良い。
 [3.4 不正判定結果]
 図26は、不正判定結果保持部3180が保持する不正判定結果の一例を示す。同図の例では、不正判定結果は、データフレームの各ID(同図左端)について、そのIDのデータフレームと別のIDのデータフレームとの間の関係に係る条件に基づいて、不正判定部130により不正と判定されたか、否か(適正と判定されたか)を示す。なお、図26では、不正と判定されたか否かに加えて、その判定に用いられた、不正検知ルール情報におけるルール(条件)についてのルール番号を付記している。この例は、不正判定部3130により、ルール番号1の条件と、ルール番号2の条件とは満たされなかったと判定され(つまり不正と判定され)、ルール番号3の条件は満たされたと判定された(つまり適正と判定された)例を示している。
 また、不正判定結果には、不正判定部3130により、各IDのフレームについて不正と判定(検知)された数に応じて算定された異常度が付加されている。図26に示すように、IDが0x100のデータフレームは、ルール番号1の条件で不正と判定された上にルール番号2の条件で不正と判定されているので、異常度が2と算定されている。IDが0x200のデータフレームは、ルール番号1の条件で不正と判定されているが、ルール番号3の条件では不正と判定されていないので、異常度は1と算定されている。IDが0x300のデータフレームは、ルール番号2の条件で不正と判定されているが、ルール番号3の条件では不正と判定されていないので、異常度は1と算定されている。
 更に、不正判定結果には、不正判定部3130により、ID毎に、そのIDのデータフレームについてのMACの検証結果が不正となった数が付加されている。不正判定部3130は、フレーム受信履歴に基づいて、MACの検証結果が不正となった数をカウントすることで、カウント結果を、不正判定結果にMACの不正回数として付加する。
 [3.5 侵入判定結果]
 図27は、侵入判定結果保持部3181が保持する侵入判定結果の一例を示す。図27の例では、侵入判定結果は、データフレームの各IDについて、そのIDのデータフレームに係る条件に基づいて、侵入判定部3131により正常(侵入でない)と判定されたか、異常(侵入検知)と判定されたかを示す。
 更に、侵入判定結果には、侵入判定部3131により、ID毎に、そのIDのデータフレームについてのMACの検証結果が付加されている。侵入判定部3131は、フレーム受信履歴に基づいて、MACの正当性の検証結果を侵入判定結果に付加する。
 図27の例は、侵入判定部3131により、IDが0x100のデータフレームが正常と判定され、同様にIDが0x200及び0x300の各データフレームが正常と判定されたことを示している。また、この例は、IDが0x100のデータフレームには不正なMACが付加されていたことを示しており、IDが0x200及び0x300の各データフレームには、正当なMACが付加されていたことを示している。
 [3.6 異常対応テーブル]
 図28は、異常対応テーブル保持部3191が保持する異常対応テーブルの一例を示す。この異常対応テーブルに従って、異常対応部3140は、不正判定結果、侵入判定結果及びMACの検証結果(MACが正当か否か)に基づいて、異常への対応としての対処処理の内容を決定する。図28に示すように、不正判定結果と侵入判定結果とMACの検証結果との組み合わせにより、対応が変化する。異常対応テーブルは、図28の例では、不正判定結果が正常(例えば異常度が0)であって、侵入判定結果が正常である場合において、MACが正当であったときには、対処処理として特に何もしない(何の対応も行わない)ことを示す。また、この例の異常対応テーブルは、不正判定結果が正常であって侵入判定結果が正常である場合において、MACが不正であったときには、不正なMACを付加したデータフレームの送信元に該当するECUへ診断メッセージを送信することで状況を確認することと、鍵の更新(鍵更新処理)を行うこと(例えばMAC生成用の秘密鍵の更新に係る更新用メッセージを送信すること)とを、対処処理の内容とすることを示す。この対処処理は、MACが不正であったので、ECUにおける秘密鍵の共有、再送攻撃対策として用いるカウンタの同期等に問題がある可能性に鑑みた対応である。なお、各ECUは、更新用メッセージを受信した場合に、鍵の更新、カウンタのリセット等を行うように構成され得る。なお、更新用メッセージを送信してECUに秘密鍵を更新させた場合に、監視ECU3100は、その更新に対応した同様の方法で、秘密鍵保持部3513における秘密鍵を更新する。
 また、この例の異常対応テーブルは、不正判定結果が異常(例えば異常度が0より大きい)であって侵入判定結果が正常である場合において、MACが正当であったときには、異常なデータフレームの送信元に該当するECUへ診断メッセージを送信することで状況を確認することと、鍵更新処理を行うこととを、対処処理の内容とすることを示す。この対処処理は、外部から不正メッセージ(攻撃のためのデータフレーム)が注入されていないが互いに異なるIDのデータフレームの内容間の関係が崩れていることから該当のECUのファームウェアが不正に書き換えられている可能性があり、MACが正当であることから秘密鍵が漏洩している可能性があるので、これに対応するために有用な処理である。また、この例の異常対応テーブルは、不正判定結果が異常であって侵入判定結果が正常である場合において、MACが不正であったときには、異常なデータフレームの送信元に該当するECUへ診断メッセージを送信することで状況を確認することを、対処処理の内容とすることを示す。この対処処理は、外部から不正メッセージが注入されていないが互いに異なるIDのデータフレームの内容間の関係が崩れていることから該当のECUのファームウェアが不正に書き換えられている可能性があり、MACが不正であることから秘密鍵が漏洩していない可能性が高いと想定されるので、有用な対応である。
 また、この例の異常対応テーブルは、不正判定結果が正常であって侵入判定結果が異常である場合において、MACが正当であったときには、診断ポート2400等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことと、鍵更新処理を行うこととを、対処処理の内容とすることを示す。この対処処理は、互いに異なるIDのデータフレームの内容間の関係は崩れていないが、外部から不正メッセージが注入されており、MACが正当であることから、正常なデータフレームを再送する等の攻撃の試行がなされている可能性があるので、これに対応するために有用な処理である。この対処処理における鍵更新処理により、正当なMACを含むデータフレームの外部からの注入を防ぎ得る。また、この例の異常対応テーブルは、不正判定結果が正常であって侵入判定結果が異常である場合において、MACが不正であったときには、診断ポート2400等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことを対処処理の内容とすることを示す。これは、外部から正常なメッセージを再送する等の攻撃の試行がなされている可能性があるが、秘密鍵が漏洩していない可能性が高いと想定されるので、有用な対応である。ユーザへの通知は、例えば、監視ECU3100から所定IDのデータフレームをバス300に送信し、その所定IDのデータフレームをECU3200dが受信すると予め定められたメッセージをインパネ240に表示するよう制御する等により実現され得る。
 また、この例の異常対応テーブルは、不正判定結果が異常であって侵入判定結果も異常である場合において、MACが正当であったときには、診断ポート2400等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことと、各ECUへ異常が発生していることを通知するフレーム(異常通知メッセージ)を送信することと、鍵更新処理を行うこととを対処処理の内容とすることを示す。この対処処理は、外部から不正メッセージが注入されている可能性が高く、秘密鍵も漏洩しており、車両の制御への悪影響が大きいと想定されるので、有用な対応である。また、この例の異常対応テーブルは、不正判定結果が異常であって侵入判定結果も異常である場合において、MACが不正であったときには、診断ポート2400等の外部機器接続用のインタフェースの確認をユーザに促す通知を行うことと、各ECUへ異常通知メッセージを送信することとを、対処処理の内容とすることを示す。これは、外部から攻撃フレームが注入されてECUが支配されている可能性があるが、秘密鍵が漏洩していない可能性が高いと想定されるので、有用な対応である。なお、車載ネットワークシステム12における各ECUは異常通知メッセージを受信した場合に、予め定められたセキュリティ対策(例えば車両を減速させ停止させる等の走行制御、自動走行機能の縮退等)を行うように構成され得る。
 [3.7 ECU3200aの構成]
 図29は、ECU3200aの構成図である。ECU3200aは、フレーム送受信部201と、フレーム処理部202と、機器入出力部203と、フレーム生成部204と、MAC検証部3500と、MAC生成部3510とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU3200aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU3200b、ECU3200c及びECU3200dもECU3200aと概ね同様の構成を有する。図29において、実施の形態1で示したECU200a(図9参照)と同様の構成要素については、図9と同じ符号を付しており、ここでは説明を省略する。また、MAC検証部3500とMAC生成部3510とは、図24に示す監視ECU3100の構成要素と同様であるので、ここでは説明を省略する。
 フレーム処理部3202は、フレーム送受信部201により受信され、MAC検証部3500での検証結果として、MACが正当であるとされたデータフレームの内容を解釈する。例えばECU3200aと同様の構成を備えるECU3200dのフレーム処理部3202では、ECU3200a及びECU3200cからそれぞれ送信されるデータフレームに含まれる車速(速度センサ210の情報)、ギアの状態(ギア230の状態の情報)を解釈し、インパネ240の表示の更新等のために必要な情報を、ECU3200dの機器入出力部203に通知する。また、フレーム処理部3202は、例えば、監視ECU3100から診断メッセージであるデータフレームを受信した場合には予め定められた処理を行って診断用情報を、監視ECU3100が受信可能となるようにフレーム送受信部201を介してバス300に送信し得る。
 [3.8 監視ECU3100の動作]
 監視ECU3100は、実施の形態2で示した監視ECU2100と同様に、例えば100ms毎に周期的に不正検知処理(不正判定)及び侵入検知処理(侵入判定)を行う(図19参照)。但し、フレーム受信履歴には、バス300から受信されたデータフレームにおけるMACの検証結果も格納される。そして、監視ECU3100は、不正判定結果、侵入判定結果及びMACの検証結果に基づいて、異常対応テーブルに従って、対処処理の内容を決定する。そして、監視ECU3100は、決定した内容の対処処理を実行する。
 [3.9 車載ネットワークシステム12におけるバス300の監視の動作例1]
 図30は、車載ネットワークシステム12におけるバス300の監視の動作例1を示す。
 この例は、ECU3200a、ECU3200b及びECU3200cからそれぞれ、IDが0x100のデータフレーム(車速を示すデータフレーム)と、IDが0x200のデータフレーム(加速度を示すデータフレーム)と、IDが0x300のデータフレーム(ギアの状態を示すデータフレーム)とが、周期的にバス300へ送信される様子を示している。この例は更に、攻撃者によりECU3200aのファームウェアが不正に書き換えられてしまい、ECU3200aは、ある時点から、速度センサ210から通知される車速を改竄して、不正な車速を示すデータフレームをバス300へ送信する例を示している。この例では、秘密鍵は漏洩しており、全てのデータフレームに含まれるMACが正当である状況を想定している。
 監視ECU3100は、IDが0x300のデータフレームを受信したタイミングの直後から100msの周期で定期的に、不正判定(不正検知処理)を行う。この不正判定を行うタイミングを各単位時間(100ms)の終期であるとすれば、最初の3回の単位時間それぞれでバス300から受信されたデータフレームについては、不正検知ルール保持部170に格納されている不正検知ルール情報が示すルール番号1から3のいずれのルールでも不正は検知されていない。この例の最初の時点で加速度の積分値は20.0km/hであったとする。そのため、加速度の積分値は1回目から3回目までの加速度を示す各データフレームの受信により、20.072、20.144、20.18km/hと順次変化する。監視ECU3100は、3回目に受信した車速のデータフレームが示す車速(18.0km/h)と、加速度のデータフレームが示す加速度に基づく積分値(20.18km/h)の差(変化量)が1.0km/hを超えたので、ルール番号1のルール(条件)が満たされずに不正を検知する。更に、監視ECU3100は、受信したデータフレームが示すギアの状態が「D」(ドライブ)である場合において、速度の変化量(3回目に受信した車速のデータフレームが示す車速18.0km/hと前回受信したデータフレームが示す車速19.6km/hとの差)が1.0km/hを超えたので、ルール番号2の不正を検知する。これにより、監視ECU3100は、不正判定結果が異常であり、侵入判定結果が正常であり、かつ、MACの検証結果が正当であることから、異常対応テーブルに従って、該当ECUへの診断メッセージの送信及び鍵更新処理を対処処理の内容として決定して、対処処理を行う。即ち、監視ECU3100は、2つのルール(条件)を満たさないことで異常度が最も高く2と算定された、IDが0x100のデータフレームの送信元を、ECU情報テーブル保持部190が保持するECU情報テーブルを参照することにより、ECU3200aであると特定し、ECU3200aに対して、診断メッセージを送信する。また監視ECU3100は、各ECUに対して鍵更新処理を促す通知(秘密鍵の更新に係る更新用メッセージの送信)を行う。
 [3.10 車載ネットワークシステム12におけるバス300の監視の動作例2]
 図31は、車載ネットワークシステム12におけるバス300の監視の動作例2を示す。図31の動作例2は、監視ECU3100の動作例1と似たような状況であるが、秘密鍵の漏洩はしておらず、ECU3200aの送信するデータフレームに含まれるMACが不正となっている例を示している。この例では、監視ECU3100は、不正判定結果が異常であり、侵入判定結果が正常であり、かつ、MACの検証結果が不正であることから、異常対応テーブルに従って、該当ECU(つまりECU3200a)への診断メッセージの送信を対処処理の内容として決定して、対処処理を行う。
 [3.11 実施の形態3の効果]
 実施の形態3に係る車載ネットワークシステム12では、監視ECU3100が、互いに異なる複数のIDを有するデータフレームの内容間の関係に基づいて不正を検知する不正判定と、単一のIDのデータフレームに関してID毎に定められた条件に基づいて侵入を検知する侵入判定と、MACの正当性の検証結果との組み合わせに応じて、対処処理の内容を決定して、対処処理を実行する。これにより、攻撃者によりECUのファームウェアが不正に書き換えられ、或いは、ECU上で不正なプログラムが実行される等により、正規の送信タイミングで不正な内容のデータフレームが送信されたとしても、IDの相違するデータフレーム間の内容の関係の崩れから、不正なデータフレームの送信が検知され得る。例えば、攻撃者があるECUを支配して不正なデータフレームを送信しても、他のECUが送信するデータフレームとの間での関係に基づいて不正が検知されることから、不正を検知されずに攻撃者が攻撃を行うことが困難となる。更に、攻撃者が外部から不正なデータフレームを注入する場合に対しても適切に検知でき、不正判定結果、侵入判定結果及びMACの検証結果の組み合わせに応じて、攻撃の状況に応じた適切な対応が可能となる。
 (他の実施の形態)
 以上のように、本開示に係る技術の例示として実施の形態1~3を説明した。しかしながら、本開示に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本開示の一実施態様に含まれる。
 (1)上記実施の形態では、バス300の監視と監視結果に応じた対処を行う監視ECUについて説明したが、監視ECUは、車載ネットワークシステムにおいてバスに接続されたECUであれば、監視専用のECUである必要はなく、監視及び対処とは異なる機能を併せ持っても構わない。また、例えば監視ECUにおける1つ以上の構成要素を他のECUに移動させても良い。例えば、監視ECUにおける不正判定のための構成(不正判定部等)、侵入判定のための構成(侵入判定部等)等を他のECUに含ませても良い。例えば、車載ネットワークを複数のバスで構成した場合におけるバス間でのデータフレームの転送を行うゲートウェイECUが、不正判定部を有することとしても良いし、秘密鍵の管理を行う鍵管理マスタECUが不正判定部、侵入判定部、MAC検証部等を有することとしても良い。
 (2)上記実施の形態では、CANプロトコルにおけるデータフレームを標準IDフォーマットで記述しているが、拡張IDフォーマットであっても良く、データフレームの識別子であるIDは、拡張IDフォーマットでの拡張ID等であっても良い。
 (3)上記実施の形態では、監視ECUが、例えば100msの周期で定期的に、不正検知処理(不正判定)及び侵入検知処理(侵入判定)を行う例を示したが、周期は任意であり、また必ずしも周期的に行う必要はない。例えば、監視ECUは、データフレームを受信する毎に、不正判定或いは侵入判定を行うこととしても良い。また、不正判定と侵入判定とはそれぞれ別のタイミングで実行されても良い。
 (4)上記実施の形態で示したフレーム受信履歴保持部は、フレーム受信履歴として、何回分の受信履歴を保持しても良い。また、フレーム受信履歴保持部は、実際に受信されたデータフレームの情報に基づくデータ補間によって、実際には受信されていない時刻の受信履歴としての情報を、フレーム受信履歴として保持することとしても良い。
 (5)上記実施の形態では、フレーム受信履歴保持部が、フレーム受信履歴として、受信時刻、MACの正当性の検証結果、データフィールドの内容が示す値等を保持する例を示したが、この他の情報を保持することとしても良い。フレーム受信履歴保持部は、不正検知処理(不正判定)或いは侵入検知処理(侵入判定)に必要な任意の情報を保持すれば良い。また、データフィールドの内容が、複数の値を表すような場合において、各値を区別して保持することとしても良く、監視ECUでは、その各値に関連した条件を示す不正検知ルール情報或いは侵入検知ルール情報を用いた不正判定或いは侵入判定を行うこととしても良い。
 (6)上記実施の形態では、不正検知ルール情報が示すルール(条件)として、速度(車速)と加速度との関係に係る条件と、ギアの状態と車速の変化量との関係に係る条件と、ギアの状態と加速度の変化量との関係に係る条件とを例示したが、これは一例に過ぎない。正常時において、互いに異なるIDの複数のデータフレームが示すデータの間で、一定の関係が保たれるものであれば何でも良い。特にセンサにより測定されたデータ間の関係を用いることが有用である。また、データフィールドが示すデータの値の間の関係のみならず、不定期に送信される複数のデータフレームがバスに流れる時刻についての関係等といったデータフレームの受信時刻の関係等を、不正判定のための条件として加えることとしても良い。また、不正検知ルール情報は、例えば、条件として、一のIDを有するデータフレームのデータフィールドの内容が示す値yと、他のIDを有するデータフレームのデータフィールドの内容が示す値xとの関係を示す関係式y=f(x)等の一定誤差の範囲内に収まっていることを示すものであっても良い。
 (7)上記実施の形態では、不正検知ルール情報が示すルール(条件)として、IDが0x200の複数のデータフレームのデータフィールドの内容に基づいて特定される、加速度の積分値と、IDが0x100の1つのデータフレームのデータフィールドの内容が示す車速との関係に係る条件(目的変数と説明変数との関係に係る条件)等を例示したが、この関係は一例に過ぎない。以下、不正検知ルール情報が、あるID(第1識別子)を有するデータフレームである第1種フレームと、その第1識別子とは異なるID(第2識別子)を有するデータフレームである第2種フレームとの、データフィールドの内容の関係についての条件を示す例を挙げて、関係の例について説明する。不正検知ルール情報が示す条件は、例えば、1つ以上(或いは複数)の第1種フレームにおけるデータフィールドの内容に基づいて特定される値と、1つ以上の第2種フレームのデータフィールドの内容との関係を規定する。第1種フレームにおけるデータフィールドの内容に基づいて特定される値は、数値でも良いし、大、中、小等の程度を示す値でも、状態を区別する文字列等であっても良い。例えば、不正検知ルール情報が示す条件は、1つ以上の第1種フレームにおけるデータフィールドの内容と、1つ以上の第2種フレームのデータフィールドの内容との関係を、ピアソンの積率相関係数、最大情報係数、又は、正準相関係数を用いた関係式で規定するものであっても良い。例えば、車速と加速度との各時系列データに対して、線形関係の強弱を表す指標としての相関係数(ピアソンの積率相関係数)を求めることによって、その相関係数の高さについての条件を規定しても良いし、非線形の関係も表せる指標としての最大情報係数の高さについての条件を規定しても良いし、多変量データにおいて多数の変数が2つの変数群を構成するときに変数群間の相互関係を表す指標としての正準相関係数の高さについての条件を規定しても良い。なお、車速と加速度との各時系列データに対する相関係数等を求める他に、車速とタイヤの回転数との各時系列データに対する相関係数等を求めることで条件を規定しても良いし、車速とタイヤの回転数との関係式を求めることで条件を規定しても良い。また、相関係数、関係式等に基づいて不正検知ルール情報における条件を規定する対象となる数量としては、例えば、加速度と車速の変化量との組、アクセルの変位と車速の変化量との組、ブレーキの変位と車速の変化量との組、ステアリング角度(操舵角)とヨーレートとの組等が挙げられる。
 (8)上記実施の形態では、不正判定部が、バスから受信されたデータフレームについての情報(フレーム受信履歴)に基づいて、不正検知ルール情報が示す条件が満たされるか否かを判定することとした。この判定(不正判定)は、不正検知ルール情報が示す条件に応じて、任意の具体方法で実現され得る。この不正判定は、例えば、1つ又は複数の単位時間それぞれにおいてバスから受信された、上述の各第1種フレームにおけるデータフィールドの内容に基づく第1値と、その1つ又は複数の単位時間のうち最後から1つ以上の単位時間それぞれにおいてバスから受信された、上述の各第2種フレームにおけるデータフィールドの内容に基づく第2値とを用いて、不正検知ルール情報が示す条件が満たされるか否かを区別する所定演算処理を実行することにより、実現される。ここで、所定演算処理は、少なくとも第1値と第2値とを用いて不正検知ルール情報が示す条件が満たされるか否かを区別する演算処理であれば、いかなる演算処理であっても良い。所定演算処理は、例えば、質的変数の値毎に量的変数の値の範囲を規定した基準に基づいて、第2値を質的変数の値として用いて算定される量的変数の値の範囲に第1値が該当するか否かにより、不正検知ルール情報が示す条件が満たされるか否かを区別する処理であり得る。例えば第1値は、センサにより測定された物理量等に関連する値(車速、車速の変化量等)であり得る。また、第2値は、車両の状態を示すフラグ値(ギアの状態を示すフラグ値、車線維持機能の作動状態を示すフラグ値、自動駐車支援機能の作動状態を示すフラグ値、クルーズコントロール機能の作動状態を示すフラグ値等)であり得る。また、所定演算処理は、例えば、目的変数と説明変数との関係を示す関係式に基づいて、第1値を説明変数の値として用いて算定される目的変数の値の範囲に第2値が該当するか否かにより、不正検知ルール情報が示す条件が満たされるか否かを区別する処理であっても良い。この第1値と第2値とは、例えば、因果関係を有する物理事象に関する値である。
 (9)上記実施の形態では、不正検知ルール情報が示す条件として、2種(2つの異なるID)のデータフレームの内容間の関係を用いていたが、2種に限られることはなく、3種以上(3つ以上のID)のデータフレームの内容間の関係を用いても良い。例えば、不正検知ルール情報は、同じ単位時間内で受信された3つ以上の異なる所定IDのデータフレームの内容が示す各値に基づく所定の演算(例えば算術演算、論理演算等)の結果が所定の閾値を超えること等といった条件を示すものであっても良い。
 (10)上記実施の形態では、不正判定部が算定した異常度が最も高いIDのデータフレームを送信するECUを特定して、そのECUに対する診断メッセージを送信する等の対処処理を実行する例を示したが、異常度について閾値を設けて、閾値以上の異常度であるIDのデータフレームを送信するECUを特定し、そのECUに対する診断メッセージを送信する等の対処処理を実行することとしても良い。
 (11)上記実施の形態では、監視ECUの不正判定部が、異常度を算定して不正判定結果に付加する例を示したが、必ずしも異常度を算定しなくても良い。監視ECUは、異常度を算定しない場合において、不正と判定された複数のデータフレームそれぞれの送信元のECUに、診断メッセージを送信することで診断を行うこととしても良い。なお、異常度の算定により、不正検知ルール情報が示す条件を満たさないことで不正と判定された複数のデータフレームそれぞれの送信元のECUのうち、診断メッセージを送信する対象を絞り込むことは、バストラフィック量の増大抑制等のために有用である。不正検知ルール情報が、あるID(第1識別子、例えば0x100というID)を有するデータフレームである第1種フレームと、第1識別子とは異なるID(第2識別子、例えば0x200というID)を有するデータフレームである第2種フレームとの、データフィールドの内容の関係についての第1条件(例えば図6に示すルール番号1の条件)を示し、更に、その第1種フレームと、第1識別子とも第2識別子とも異なるID(第3識別子、例えば0x300というID)を有するデータフレームである第3種フレームとの、データフィールドの内容の関係についての条件である第2条件(例えば図6に示すルール番号2の条件)を示している場合については、不正判定において第1条件及び第2条件のうち満たされないと判定された条件の数に応じて第1種フレームの送信に関する異常度が算定され得る。そして、算定された異常度が所定異常条件(例えば閾値より高い、或いは別途算定された他種のフレームの送信に関する異常度より高い等)を満たす場合に、第1種フレームを送信するECUが受信可能となるように所定フレーム(診断メッセージ等)を送信することで、バストラフィック量の増大抑制等が実現され得る。
 (12)上記実施の形態では、監視ECUは、ID間を関係付けたテーブルの形式で、不正判定結果を保持する例を示したが、不正判定部が、バスから受信されたフレームの集合が不正検知ルール情報に示される条件を満たすか否かを判定した際に、判定結果を示す何らかの情報(例えばルール番号とそのルール番号に係る条件による判定結果との組を示す情報等)が、監視ECUが備えるメモリ、ハードディスク等といった記憶媒体に記憶されれば十分であり、いかなる形式で情報が保持されても良い。不正判定部により不正判定が行われると、記憶媒体にその判定結果を示す何らかの情報が格納されることになる。
 (13)上記実施の形態では、侵入検知ルール情報が示す条件として、単一IDのデータフレームに関する受信間隔及びデータの変化量に係る条件を例示したが、これは一例に過ぎず、他の条件であっても良く、例えば受信頻度(一定時間内にその単一IDを有するデータフレームが受信される数等)に係る条件であっても良い。侵入検知ルール情報が示す条件としては、正常なデータフレームが満たすべき条件が規定される。そして、攻撃のためのデータフレームが外部から注入されて、不正なデータフレームと正常なデータフレームとの両方がバスに流れる状態となった場合には、その条件が満たされなくなるように、条件が規定されることが有用となる。
 (14)上記実施の形態では、侵入判定結果保持部が、ID毎に、正常か、異常(侵入検知)かを区別する侵入判定結果を保持する例を示したが、侵入判定結果はこれに限られず、例えば、IDを区別せずに一定期間内に正常と判定された数或いは異常と判定された数等を、侵入判定結果としても良い。侵入判定結果は、侵入検知ルール情報に基づく侵入判定の結果に関連した情報であれば良く、これにより、監視ECUでは、侵入検知ルール情報に基づく侵入判定結果と不正検知ルール情報に基づく不正判定結果との組み合わせに基づいて、異常に対応する対処処理を決定し得る。
 (15)上記実施の形態では、MACの生成にAES-CMACを用いる例を示したが、MACの生成方法はこれに限らない。例えばAES以外のブロック暗号を用いても良いし、HMAC(Hash-based Message Authentication Code)等を用いても良い。
 (16)上記実施の形態では、MACの生成のために、IDとデータフィールドの値とを、AES暗号化部(例えば暗号化関数)の入力としたが、入力値はこれに限らない。例えばデータフィールドの値のみを入力としても良いし、DLCを入力に含めても良い。また再送攻撃対策として、カウンタ値の他に、時刻情報等をその入力に含めても良い。
 (17)上記実施の形態では、不正判定結果に応じた対応、或いは不正判定結果と侵入判定結果との組み合わせ等に応じた対応(対処処理の内容)として、該当ECUへの診断メッセージの送信、認証用の鍵の更新(鍵更新処理)、診断ポート等の確認をユーザへ促す通知、各ECUへの異常通知メッセージの送信等を例示した。しかし、対処処理の内容は、上述した以外のものであっても良い。対処処理は、例えば、バスに接続された特定のECUが受信可能となるように診断用のフレームを送信すること、バスに接続された特定のECUの正当性をチャレンジレスポンス認証により確認すること、バスにおける診断ポートの確認を促すための通知を行うこと、車載ネットワークシステムを搭載する車両の運転者に停車又は徐行を促すための通知を行うこと、車載ネットワークシステムを搭載する車両の運転者にディーラへ行くことを促すための通知を行うこと、車載ネットワークシステムを搭載する車両の運転者に不正状態が発生していることの通知を行うこと、バスに接続されたECUに、特定のID(識別子)を有するデータフレームが不正であることの通知を行うこと、車載ネットワークシステムを搭載する車両の外部のサーバ(例えば車両製造メーカ等が運用するサーバ等)に、不正なデータフレームが送信されていることの通知を行うこと、車載ネットワークシステムを搭載する車両の近隣の車両又は路側機へ、不正状態が発生していることの通知を行うこと、車載ネットワークシステムを、診断ポートの遮断、自動制御機能の縮退等を含み得る、予め定めたフェールセーフモードに切り替えること、不正状態が発生したことをログとして記録すること等であっても良い。監視ECUは、上述した対処処理のいずれか1つ以上を、不正判定部が算定した異常度が所定異常条件を満たす場合(例えば閾値を超える等の場合)に実行し得る。また、監視ECUは、不正判定部が算定した異常度の高さを反映するように対処処理の内容を変更しても良い。
 (18)上記実施の形態では、監視ECUは、不正判定部での判定(不正判定)の結果(不正判定結果)と、侵入判定部での判定(侵入判定)の結果(侵入判定結果)と、MAC検証部での認証子(MAC)の正当性の検証結果との組み合わせに応じて、対処処理の内容を決定し、一定条件下で(例えば不正判定結果或いは侵入判定結果が異常でMACが正当の場合に)、認証用の鍵の更新に関する鍵更新処理を対処処理として決定して実行することとした。更に、監視ECUは、鍵更新処理を実行した後において、バスから受信されたデータフレームについて、不正判定、侵入判定、及び、MACの検証を行い、その不正判定結果と侵入判定結果と検証結果との組み合わせが所定条件を満たす場合(例えばMACが正当であるが不正判定結果或いは侵入判定結果が異常な状態が継続しているような場合等)に、鍵更新処理とは異なる対処処理(ユーザへの危険状態の通知、サーバへの通知等)を行うこととしても良い。この鍵更新処理とは異なる対処処理は、鍵の更新が有効に作用しなかった場合等において有用となり得る。
 (19)上記実施の形態では、不正検知ルール保持部が、互いに異なるIDのデータフレームの内容間の関係に係る条件を示す不正検知ルール情報を保持している例を示したが、不正検知ルール情報は、バスを流れるデータフレームを監視及び分析して学習した結果を用いて随時更新されることとしても良い。バスを流れる各IDのデータフレームの内容についての情報を集積して統計処理、多変量解析等を行うことで、互いに異なる複数のIDのデータフレームの内容間の相関係数を求めて、予め定められた閾値以上の相関係数の値になる、データフレームの内容間の関係を、満たされるべき新たな条件として不正検知ルール情報に含ませても良いし、例えば説明変数と目的変数との関係式等の推定のための回帰分析、重回帰分析、判別分析等で得られた説明変数と目的変数との関係を、条件として不正検知ルール情報に含ませても良い。即ち、監視ECUは、バスから受信されたデータフレームの集合に基づく多変量解析により、相互に異なるIDを有するデータフレーム同士の間でのデータフレームの内容の関係を特定し、特定した関係を表す条件を示すように不正検知ルール情報を生成又は更新することとしても良い。
 (20)上記実施の形態では、MACの検証結果に基づいて、不正判定部が不正判定結果にMACの不正回数を付加し、侵入判定部が侵入判定結果にMACの正当性を付加することとしたが、不正判定結果及び侵入判定結果にMACの検証結果に基づく情報を含まなくても良い。異常対応部は、例えばフレーム受信履歴保持部が保持するフレーム受信履歴からMACの検証結果を取得し得る。なお、不正判定部がMACの検証結果を踏まえて不正判定結果を特定することとした場合においては、その不正判定結果は、異常対応部が各種対応を行う際に活用され得る。
 (21)上記実施の形態では、監視ECUは、不正判定結果或いは侵入判定結果が異常でありMACの検証結果としてMACが正当であった場合に、鍵が漏洩している可能性に鑑みて鍵更新処理を対処処理として実行する例を示したが、検証結果としてMACが正当であった回数に基づいて、鍵更新処理を対処処理の内容とするか否かを区別しても良い。監視ECUは、不正判定結果或いは侵入判定結果が異常である場合において、例えば、予め定められた回数NだけMACの検証が成功したときに、鍵が漏洩している可能性が高いので、鍵更新処理を実行することとしても良い。なお、この回数Nとしては、例えば、逐次ランダムな値をMACとして付加したデータフレームが逐次送信された場合に、N回の検証においてMACが正当であると判定される確率が十分低くなるような回数を、設定することが有用となる。
 (22)上記実施の形態では、監視ECUは、不正判定結果と侵入判定結果とMACの検証結果との組み合わせ等に応じて対応処理の内容を決定(選定)して実行する例を示した。不正判定結果と侵入判定結果とMACの検証結果との組み合わせによれば、不正状態(特定IDのデータフレームの異常、異常度の高いデータフレーム、異常の可能性の高いECU、異なるIDのデータフレーム間の関係の異常等)を複数に類別してそれぞれに適切な対応を行うことが可能となる。監視ECUは、不正判定結果と侵入判定結果とMACの検証結果とのいずれか1つ以上を用いて、対処処理の決定を行っても良いし、更に、攻撃範囲を区別し、その区別も利用して、適切な対処処理を決定することとしても良い。例えば、監視ECUは、不正状態が発生したと検知した場合において、その不正状態の発生に関係があったデータフレームが送信されたサブネットワークと、そのフレームを送信するECUと、そのデータフレームのIDとのいずれかを特定し、特定に際してその特定したものをメモリ等の記憶媒体に記録することとしても良い。この特定されたサブネットワーク、ECU、ID等を、上述の不正判定結果と侵入判定結果とMACの検証結果と合わせて用いる等により、不正状態(異常)の詳細の把握(例えばIDに基づいて、運転支援機能等といった特定機能に関わるデータフレームのグループでの異常発生の把握等)が可能となり、このような不正状態に係る情報の収集は、攻撃目的、攻撃範囲等の特定において有用となり得る。
 (23)上記実施の形態では、不正検知ルール情報が示す条件に係る互いに異なる2つのIDのデータフレームの各送信元のECUが相違する例(図12等参照)を示したが、これは一例に過ぎない。1つのECUが、互いに異なる複数のIDのデータフレームを送信することもあり得るので、同一のECUが送信する複数のIDのデータフレームの内容間の関係についての条件を不正検知ルール情報が示すようにしても良い。これにより、例えば攻撃者が不正なプログラムによりECUが送信するデータフレームを改竄したことで、同一のECUが送信する他のIDのデータフレームとの関係が崩れたような場合において、不正状態の発生が検知され得る。
 (24)上記の実施の形態では、CANプロトコルに従って通信する車載ネットワークを示した。このCANプロトコルは、CANFD(CAN with Flexible Data Rate)等の派生的なプロトコルも包含する広義の意味のものと扱われるべきである。また、車載ネットワークにおいては、CANプロトコル以外の通信プロトコル、例えば、Ethernet(登録商標)、LIN(Local Interconnect Network)、MOST(登録商標)(Media Oriented Systems Transport)、FlexRay(登録商標)等を用いても良い。また、これらの各プロトコルが用いられるサブネットワークを組み合わせて車載ネットワークを構成しても良い。
 (25)上記実施の形態で示した各種処理の手順(例えば図11、図19に示した手順等)の実行順序は、必ずしも、上述した通りの順序に制限されるものではなく、開示の要旨を逸脱しない範囲で、実行順序を入れ替えたり、複数の手順を並列に行ったり、その手順の一部を省略したりすることができる。
 (26)上記実施の形態における監視ECUその他のECUは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等のハードウェア構成要素を含んでいても良い。また、上記実施の形態で示した各装置(監視ECU等)は、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア(デジタル回路等)によりその機能を実現することとしても良い。
 (27)上記実施の形態における各装置を構成する構成要素の一部又は全部は、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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
 (28)上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしても良い。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしても良い。
 (29)本開示の一態様としては、例えば図11、図19等に示す処理手順の全部又は一部を含む不正検知方法であるとしても良い。例えば、不正検知方法は、バスを介して通信を行う複数のECUを備える車載ネットワークシステムにおいて不正状態が発生したことを検知するための不正検知方法であって、第1識別子を有するフレームと、第1識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第1条件を示す不正検知ルール情報を用いて、バスから受信されたフレームの集合が第1条件を満たすか否かを判定し、第1条件が満たされない場合に不正状態が発生したと検知する方法である。例えば、この複数のECUは、バスを介してCANプロトコルに従ってデータフレームの授受を行い、不正検知ルール情報は、ID(第1識別子)を有するデータフレームである第1種フレームと、第1識別子とは異なるID(第2識別子)を有するデータフレームである第2種フレームとの、データフィールドの内容の関係についての第1条件を示し、不正検知方法は、バスに接続された監視ECUが、バス上に送信されたデータフレームを逐次受信する受信ステップと、受信ステップで受信された第1種フレーム及び第2種フレームが、不正検知ルール情報が示す第1条件を満たすか否かを判定する不正判定ステップ(例えばステップS1102、S2102)とを含むこととしても良い。また、不正判定ステップでは、第1種フレーム及び第3種フレーム(第1識別子とも第2識別子とも異なるIDを有するデータフレーム)の内容間の関係に係る第2条件を満たすか否かを判定することとしても良く、不正検知方法は、第1条件及び第2条件のうち不正判定ステップで満たされたと判定された条件の数に応じて第1種フレームの送信に関する異常度を算定する異常度算定ステップ(例えばステップS1103)を含むこととしても良い。不正検知方法は、異常度算定ステップにより算定された異常度が所定異常条件を満たす場合に、第1種フレームを送信するECUが受信可能となるように監視ECUが所定フレーム(例えば診断用のフレーム)を送信する送信ステップ(例えばステップS1104~S1106)を含んでも良い。また、不正検知方法は、データフレームのID(識別子)毎に定められるデータフレームについての条件を示す侵入検知ルール情報を用いて、受信ステップでバスから受信されたデータフレームが、侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定ステップ(例えばステップS2103)と、不正判定ステップでの判定結果と侵入判定ステップでの判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処ステップ(例えばステップS2104、S2105)とを含んでも良い。また、不正検知方法は、バスから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証ステップを含んでも良い。なお、不正判定ステップ、異常度算定ステップ及び侵入判定ステップでの処理の少なくとも一部は、監視ECU以外の装置(例えば監視ECUと通信可能な車両外部のサーバ或いは他のECU等)で実行するようにしても良い。また、本開示の一態様としては、この不正検知方法に係る処理をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本開示の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
 (30)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本開示の範囲に含まれる。
 本開示は、車載ネットワークに対する攻撃を検知して適切に対処するために利用可能である。
 10,11,12 車載ネットワークシステム
 100,2100,3100 監視電子制御ユニット(監視ECU)
 110,201 フレーム送受信部
 120,202 フレーム処理部
 130,3130 不正判定部
 140 不正対応部
 150,204 フレーム生成部
 160,2160,3160 フレーム受信履歴保持部
 170 不正検知ルール保持部
 180,3180 不正判定結果保持部
 190 ECU情報テーブル保持部
 200a~200d,3200a~3200d 電子制御ユニット(ECU)
 203 機器入出力部
 210 速度センサ
 220 加速度センサ
 230 ギア(変速機構)
 240 インストルメントパネル(インパネ)
 300 バス
 2131,3131 侵入判定部
 2140,3140 異常対応部
 2171 侵入検知ルール保持部
 2181,3181 侵入判定結果保持部
 2191,3191 異常対応テーブル保持部
 2400 診断ポート
 3202 フレーム処理部
 3500 MAC検証部
 3510 MAC生成部
 3511 データ処理部
 3512 AES暗号化部
 3513 秘密鍵保持部
 3520 MAC比較部

Claims (16)

  1.  バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて不正状態が発生したことを検知するための不正検知方法であって、
     第1識別子を有するフレームと、第1識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第1条件を示す不正検知ルール情報を用いて、前記バスから受信されたフレームの集合が当該第1条件を満たすか否かを判定し、
     当該第1条件が満たされない場合に不正状態が発生したと検知する
     不正検知方法。
  2.  前記複数の電子制御ユニットは、前記バスを介してCAN(Controller Area Network)プロトコルに従ってデータフレームの授受を行い、
     前記不正検知ルール情報は、前記第1識別子を有するデータフレームである第1種フレームと、前記第1識別子とは異なる第2識別子を有するデータフレームである第2種フレームとの、データフィールドの内容の関係に記第1条件を示し、
     前記不正検知方法は、
     前記バスに接続された監視電子制御ユニットが、前記バス上に送信されたデータフレームを逐次受信する受信ステップと、
     前記受信ステップで受信された前記第1種フレーム及び前記第2種フレームが、前記不正検知ルール情報が示す前記第1条件を満たすか否かを判定する不正判定ステップとを含む
     請求項1記載の不正検知方法。
  3.  前記不正検知ルール情報は、前記第1条件として、1つ以上の前記第1種フレームにおけるデータフィールドの内容に基づいて特定される値と、1つ以上の前記第2種フレームのデータフィールドの内容との関係を規定し、
     前記不正判定ステップでは、1つ又は複数の単位時間それぞれにおいて前記受信ステップで受信された、各前記第1種フレームにおけるデータフィールドの内容に基づく第1値と、前記1つ又は複数の単位時間のうち最後から1つ以上の単位時間それぞれにおいて前記受信ステップで受信された、各前記第2種フレームにおけるデータフィールドの内容に基づく第2値とを用いて、前記第1条件が満たされるか否かを区別する所定演算処理を実行することにより、前記判定を行う
     請求項2記載の不正検知方法。
  4.  前記不正検知ルール情報は、前記第1条件として、複数の前記第1種フレームにおけるデータフィールドの内容に基づいて特定される値と、1つ以上の前記第2種フレームのデータフィールドの内容との関係を規定し、
     前記不正判定ステップでは、複数の単位時間それぞれにおいて前記受信ステップで受信された、各前記第1種フレームにおけるデータフィールドの内容に基づく第1値と、前記複数の単位時間のうち最後から1つ以上の単位時間それぞれにおいて前記受信ステップで受信された、各前記第2種フレームにおけるデータフィールドの内容に基づく第2値とを用いて、前記第1条件が満たされるか否かを区別する所定演算処理を実行することにより、前記判定を行う
     請求項2記載の不正検知方法。
  5.  前記所定演算処理は、質的変数の値毎に量的変数の値の範囲を規定した基準に基づいて、前記第2値を質的変数の値として用いて算定される量的変数の値の範囲に前記第1値が該当するか否かにより、前記第1条件が満たされるか否かを区別する処理である
     請求項3又は4記載の不正検知方法。
  6.  前記所定演算処理は、目的変数と説明変数との関係を示す関係式に基づいて、前記第1値を説明変数の値として用いて算定される目的変数の値の範囲に前記第2値が該当するか否かにより、前記第1条件が満たされるか否かを区別する処理である
     請求項3又は4記載の不正検知方法。
  7.  前記不正検知ルール情報は、前記第1条件として、1つ以上の前記第1種フレームにおけるデータフィールドの内容と、1つ以上の前記第2種フレームのデータフィールドの内容との関係を、ピアソンの積率相関係数、最大情報係数、又は、正準相関係数を用いた関係式で規定する
     請求項2記載の不正検知方法。
  8.  前記不正検知ルール情報は更に、前記第1種フレームと、前記第1識別子とも前記第2識別子とも異なる第3識別子を有するデータフレームである第3種フレームとの、データフィールドの内容の関係についての条件である第2条件を示し、
     前記不正判定ステップでは、更に、前記受信ステップで受信された前記第1種フレーム及び前記第3種フレームが、前記不正検知ルール情報が示す前記第2条件を満たすか否かを判定し、
     前記不正検知方法は更に、
     前記第1条件及び前記第2条件のうち前記不正判定ステップで満たされないと判定された条件の数に応じて前記第1種フレームの送信に関する異常度を算定する異常度算定ステップと、
     前記異常度算定ステップにより算定された異常度が所定異常条件を満たす場合に、前記第1種フレームを送信する電子制御ユニットが受信可能となるように前記監視電子制御ユニットが所定フレームを送信する送信ステップとを含む
     請求項2~7のいずれか一項に記載の不正検知方法。
  9.  前記不正検知方法は更に、
     データフレームの識別子毎に定められるデータフレームについての条件を示す侵入検知ルール情報を用いて、前記受信ステップで前記バスから受信されたデータフレームが、当該侵入検知ルール情報が示す該当の条件を満たすか否かを判定する侵入判定ステップと、
     前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果との組み合わせに応じて対処処理の内容を決定し、決定に従って対処処理を実行する対処ステップとを含み、
     前記侵入検知ルール情報が示す、一の識別子のデータフレームについての前記条件は、当該識別子を有するデータフレーム間の受信間隔と、一定時間内に受信される当該識別子を有するデータフレームの数と、当該識別子を有するデータフレーム間でのデータフィールドから抽出される値の差異である変化量とのいずれかに関する条件を含む
     請求項2~8のいずれか一項に記載の不正検知方法。
  10.  前記不正検知方法は更に、前記バスから受信されたデータフレームにおける認証用の認証子の正当性を検証する検証ステップを含み、
     前記対処ステップでは、前記不正判定ステップでの判定結果と前記侵入判定ステップでの判定結果と前記検証ステップでの検証結果との組み合わせに応じて対処処理の内容の前記決定を行い、一定条件下で当該対処処理の内容として、認証用の鍵の更新に関する鍵更新処理を決定する
     請求項9記載の不正検知方法。
  11.  前記不正検知方法は更に、
     前記対処ステップで前記鍵更新処理を実行した後において前記受信ステップで受信されたデータフレームについて、前記不正判定ステップでの前記判定、前記侵入判定ステップでの前記判定、及び、前記検証ステップでの前記検証を行い、当該不正判定ステップでの判定結果と当該侵入判定ステップでの判定結果と当該検証ステップでの検証結果との組み合わせが所定条件を満たす場合に、前記鍵更新処理とは異なる対処処理を行う追加対処ステップを含む
     請求項10記載の不正検知方法。
  12.  前記不正検知方法は更に、
     前記不正状態が発生したと検知した場合において、当該不正状態の発生に関係があったフレームが送信されたサブネットワークと、当該フレームを送信する電子制御ユニットと、当該フレームの識別子とのいずれかを特定する
     請求項1~11のいずれか一項に記載の不正検知方法。
  13.  前記不正検知方法は更に、前記不正状態が発生したと検知した場合において、対処処理を実行し、
     前記対処処理は、
     前記バスに接続された特定の電子制御ユニットが受信可能となるように診断用のフレームを送信することと、
     前記バスに接続された特定の電子制御ユニットの正当性をチャレンジレスポンス認証により確認することと、
     前記バスにおける診断ポートの確認を促すための通知を行うことと、
     前記車載ネットワークシステムを搭載する車両の運転者に停車又は徐行を促すための通知を行うことと、
     前記車載ネットワークシステムを搭載する車両の運転者にディーラへ行くことを促すための通知を行うことと、
     前記車載ネットワークシステムを搭載する車両の運転者に不正状態が発生していることの通知を行うことと、
     前記バスに接続された電子制御ユニットに、特定の識別子を有するデータフレームが不正であることの通知を行うことと、
     前記車載ネットワークシステムを搭載する車両の外部のサーバに、不正なデータフレームが送信されていることの通知を行うことと、
     前記車載ネットワークシステムを搭載する車両の近隣の車両又は路側機へ、不正状態が発生していることの通知を行うことと、
     前記車載ネットワークシステムを予め定めたフェールセーフモードに切り替えることと、
     不正状態が発生したことをログとして記録することとのいずれかを含む
     請求項1~12のいずれか一項に記載の不正検知方法。
  14.  前記不正検知方法では、前記バスから受信されたフレームの集合に基づく多変量解析により、相互に異なる識別子を有するフレーム同士の間でのフレームの内容の関係を特定し、特定した関係を表す条件を示すように前記不正検知ルール情報を生成又は更新する
     請求項1~13のいずれか一項に記載の不正検知方法。
  15.  バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて前記バスに接続された監視電子制御ユニットであって、
     第1識別子を有するフレームと、第1識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第1条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、
     前記バスからフレームを逐次受信する受信部と、
     前記受信部により前記バスから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第1条件を満たすか否かを判定する不正判定部とを備える
     監視電子制御ユニット。
  16.  バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムであって、
     第1識別子を有するフレームと、第1識別子とは異なる識別子を有するフレームとの内容の関係についての条件である第1条件を示す不正検知ルール情報を保持する不正検知ルール保持部と、
     不正状態が発生したか否かを判定するために、前記バスから受信されたフレームの集合が、前記不正検知ルール情報が示す前記第1条件を満たすか否かを判定する不正判定部とを備える
     車載ネットワークシステム。
PCT/JP2016/004993 2016-01-08 2016-11-29 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム WO2017119027A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201680051842.7A CN108028784B (zh) 2016-01-08 2016-11-29 不正常检测方法、监视电子控制单元以及车载网络系统
EP16883533.8A EP3402125B1 (en) 2016-01-08 2016-11-29 Impropriety detection method, monitoring electronic control unit, and on-board network system
US16/011,677 US10992688B2 (en) 2016-01-08 2018-06-19 Unauthorized activity detection method, monitoring electronic control unit, and onboard network system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662276400P 2016-01-08 2016-01-08
US62/276,400 2016-01-08
JP2016208084A JP6684690B2 (ja) 2016-01-08 2016-10-24 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム
JP2016-208084 2016-10-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/011,677 Continuation US10992688B2 (en) 2016-01-08 2018-06-19 Unauthorized activity detection method, monitoring electronic control unit, and onboard network system

Publications (1)

Publication Number Publication Date
WO2017119027A1 true WO2017119027A1 (ja) 2017-07-13

Family

ID=59273391

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/004993 WO2017119027A1 (ja) 2016-01-08 2016-11-29 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム

Country Status (1)

Country Link
WO (1) WO2017119027A1 (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019021922A1 (ja) * 2017-07-26 2019-01-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置および異常検知方法
JP2019029993A (ja) * 2017-07-26 2019-02-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 異常検知装置および異常検知方法
WO2019216295A1 (ja) * 2018-05-08 2019-11-14 日本電気株式会社 監視装置、学習装置、監視方法、学習方法及び記憶媒体
EP3693233A1 (de) 2019-02-11 2020-08-12 Giesecke+Devrient Mobile Security GmbH Sicherheitsmodus bei ersetzten ecus
JP2020145490A (ja) * 2019-03-04 2020-09-10 三菱電機株式会社 通信監視装置
CN111966083A (zh) * 2020-09-18 2020-11-20 大连理工大学 一种汽车can总线信息安全模拟装置
US20200377057A1 (en) * 2020-08-14 2020-12-03 Intel Corporation One-Point Relative Voltage Fingerprinting
EP3696025A4 (en) * 2017-10-13 2021-03-17 Hitachi Automotive Systems, Ltd. VEHICLE CONTROL DEVICE
CN112688922A (zh) * 2020-12-11 2021-04-20 深圳前海微众银行股份有限公司 数据传输方法、系统、设备及介质
CN113079072A (zh) * 2020-01-06 2021-07-06 广州汽车集团股份有限公司 一种车辆数据采集方法及其系统、计算机设备、存储介质
CN113169979A (zh) * 2018-12-10 2021-07-23 戴姆勒股份公司 用于检测对网络的分布式现场总线的入侵的方法及其系统
CN114264936A (zh) * 2021-12-28 2022-04-01 苏州日月新半导体有限公司 集成电路测试方法和集成电路测试系统
US20220158843A1 (en) * 2020-11-13 2022-05-19 Ford Global Technologies, Llc Diagnostic over ip authentication
CN114973695A (zh) * 2021-02-26 2022-08-30 长沙智能驾驶研究院有限公司 一种车辆优先通行控制方法及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013043575A (ja) * 2011-08-25 2013-03-04 Nissan Motor Co Ltd 車両システムの異常判断装置
JP2014146868A (ja) * 2013-01-28 2014-08-14 Hitachi Automotive Systems Ltd ネットワーク装置およびデータ送受信システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013043575A (ja) * 2011-08-25 2013-03-04 Nissan Motor Co Ltd 車両システムの異常判断装置
JP2014146868A (ja) * 2013-01-28 2014-08-14 Hitachi Automotive Systems Ltd ネットワーク装置およびデータ送受信システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DIANE KELLY, METHODS FOR EVALUATING INTERACTIVE INFORMATION RETRIEVAL SYSTEMS WITH USERS, 24 April 2014 (2014-04-24), pages 168 - 169, XP019891008 *
See also references of EP3402125A4 *

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11539727B2 (en) 2017-07-26 2022-12-27 Panasonic Intellectual Property Corporation Of America Abnormality detection apparatus and abnormality detection method
JP2019029993A (ja) * 2017-07-26 2019-02-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 異常検知装置および異常検知方法
JP7033499B2 (ja) 2017-07-26 2022-03-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置および異常検知方法
WO2019021922A1 (ja) * 2017-07-26 2019-01-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置および異常検知方法
EP3696025A4 (en) * 2017-10-13 2021-03-17 Hitachi Automotive Systems, Ltd. VEHICLE CONTROL DEVICE
WO2019216295A1 (ja) * 2018-05-08 2019-11-14 日本電気株式会社 監視装置、学習装置、監視方法、学習方法及び記憶媒体
WO2019215807A1 (ja) * 2018-05-08 2019-11-14 日本電気株式会社 監視装置、学習装置、監視方法、学習方法及び記憶媒体
JPWO2019216295A1 (ja) * 2018-05-08 2021-05-27 日本電気株式会社 監視装置、学習装置、監視方法、学習方法及びプログラム
US11682217B2 (en) 2018-05-08 2023-06-20 Nec Corporation Surveillance device, learning device, surveillance method and storage medium
JP7156372B2 (ja) 2018-05-08 2022-10-19 日本電気株式会社 監視装置、学習装置、監視方法、学習方法及びプログラム
CN113169979B (zh) * 2018-12-10 2023-04-04 梅赛德斯-奔驰集团股份公司 用于检测对网络的分布式现场总线的入侵的方法及其系统
CN113169979A (zh) * 2018-12-10 2021-07-23 戴姆勒股份公司 用于检测对网络的分布式现场总线的入侵的方法及其系统
DE102019000976A1 (de) * 2019-02-11 2020-08-13 Giesecke+Devrient Mobile Security Gmbh Sicherheitsmodus bei ersetzten ECUs
EP3693233A1 (de) 2019-02-11 2020-08-12 Giesecke+Devrient Mobile Security GmbH Sicherheitsmodus bei ersetzten ecus
JP2020145490A (ja) * 2019-03-04 2020-09-10 三菱電機株式会社 通信監視装置
JP6997124B2 (ja) 2019-03-04 2022-01-17 三菱電機株式会社 通信監視装置
CN113079072A (zh) * 2020-01-06 2021-07-06 广州汽车集团股份有限公司 一种车辆数据采集方法及其系统、计算机设备、存储介质
CN113079072B (zh) * 2020-01-06 2022-11-11 广州汽车集团股份有限公司 一种车辆数据采集方法及其系统、计算机设备、存储介质
US20200377057A1 (en) * 2020-08-14 2020-12-03 Intel Corporation One-Point Relative Voltage Fingerprinting
CN111966083A (zh) * 2020-09-18 2020-11-20 大连理工大学 一种汽车can总线信息安全模拟装置
US20220158843A1 (en) * 2020-11-13 2022-05-19 Ford Global Technologies, Llc Diagnostic over ip authentication
CN112688922A (zh) * 2020-12-11 2021-04-20 深圳前海微众银行股份有限公司 数据传输方法、系统、设备及介质
CN114973695A (zh) * 2021-02-26 2022-08-30 长沙智能驾驶研究院有限公司 一种车辆优先通行控制方法及相关设备
CN114973695B (zh) * 2021-02-26 2023-09-26 长沙智能驾驶研究院有限公司 一种车辆优先通行控制方法及相关设备
CN114264936A (zh) * 2021-12-28 2022-04-01 苏州日月新半导体有限公司 集成电路测试方法和集成电路测试系统

Similar Documents

Publication Publication Date Title
JP6887040B2 (ja) 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム
WO2017119027A1 (ja) 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム
US11570184B2 (en) In-vehicle network system, fraud-detection electronic control unit, and fraud-detection method
JP6908563B2 (ja) セキュリティ処理方法及びサーバ
JP7008100B2 (ja) 不正対処方法、不正検知電子制御ユニットおよびネットワーク通信システム
US10137862B2 (en) Method for handling transmission of fraudulent frames within in-vehicle network
US11277427B2 (en) System and method for time based anomaly detection in an in-vehicle communication
US11115433B2 (en) System and method for content based anomaly detection in an in-vehicle communication network
CN110226310B (zh) 电子控制装置、不正当检测服务器、车载网络系统、车载网络监视系统以及方法
CN112437056B (zh) 安全处理方法以及服务器
JP7182559B2 (ja) ログ出力方法、ログ出力装置及びプログラム
JP6698190B2 (ja) 不正対処方法、不正検知電子制御ユニット、および、ネットワーク通信システム
JP6875576B2 (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: 16883533

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2016883533

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2016883533

Country of ref document: EP

Effective date: 20180808