WO2020021713A1 - 不正検知方法および不正検知電子制御装置 - Google Patents

不正検知方法および不正検知電子制御装置 Download PDF

Info

Publication number
WO2020021713A1
WO2020021713A1 PCT/JP2018/028290 JP2018028290W WO2020021713A1 WO 2020021713 A1 WO2020021713 A1 WO 2020021713A1 JP 2018028290 W JP2018028290 W JP 2018028290W WO 2020021713 A1 WO2020021713 A1 WO 2020021713A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
cycle
frames
received
fraud detection
Prior art date
Application number
PCT/JP2018/028290
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
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority to PCT/JP2018/028290 priority Critical patent/WO2020021713A1/ja
Priority to PCT/JP2019/029251 priority patent/WO2020022444A1/ja
Priority to EP19840645.6A priority patent/EP3832954B1/en
Priority to CN201980006600.XA priority patent/CN111492625B/zh
Priority to JP2020532475A priority patent/JP7232832B2/ja
Publication of WO2020021713A1 publication Critical patent/WO2020021713A1/ja
Priority to US17/082,431 priority patent/US20210044610A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • H04L12/4035Bus networks with centralised control, e.g. polling in which slots of a TDMA packet structure are assigned based on a contention resolution carried out at a master unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40241Flexray
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/48Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication

Definitions

  • the present disclosure relates to an electronic control unit that detects transmission of an illegal frame in a vehicle-mounted network.
  • ECUs electronice control units
  • a network connecting these ECUs is called an in-vehicle network.
  • FlexRay which is designed as a protocol that is faster and more reliable than the currently mainstream Controller @ Area @ Network (hereinafter, CAN).
  • FlexRay represents a value of “0” and a value of “1” by a voltage difference between two stranded wires.
  • the ECU connected to the bus is called a node.
  • Each node connected to the bus sends and receives messages called frames.
  • FlexRay is a Time ⁇ Division ⁇ Multiple ⁇ Access (TDMA) system, and each node transmits a frame at a predetermined timing.
  • TDMA Time ⁇ Division ⁇ Multiple ⁇ Access
  • a cycle is composed of four segments: a "static segment”, a “dynamic segment”, a “symbol window”, and a "network idle time”.
  • the dynamic segment and the symbol window are optional.
  • Each node sends frames in static and dynamic segments.
  • the static segment and the dynamic segment are further composed of time during which one frame called a slot can be transmitted.
  • the transmission node transmits a frame based on a slot number that is a transmission timing predetermined for each frame.
  • Each receiving node receives only a frame with a predetermined slot number.
  • a method called “cycle multiplexing” that realizes communication of different frames depending on the cycle even if the frames have the same slot number is used.
  • Patent Literature 1 proposes an in-vehicle network monitoring device that detects whether a frame is transmitted to a CAN at a predetermined communication interval, and determines that a frame deviating from the specified communication interval is invalid. Discloses a method for preventing control by an illegal frame.
  • FlexRay employing a time-triggered communication method
  • communication is performed at a predetermined communication interval, so that a reception interval of a frame having a specific identifier is always constant. No detection method can be applied.
  • a fraud detection electronic control device in an in-vehicle network that is a time-triggered communication method based on a time slot.
  • One or more electronic control units are connected, each of the electronic control units transmits and receives a frame within a predetermined time slot, and the fraud detection electronic control unit includes a frame receiving unit that receives the frame.
  • a fraud detection unit that detects reception of a fraudulent frame the fraud detection unit is based on a slot ID included in the frame, based on the number of repetitions of a cycle including a plurality of the time slots, Determine the reception of an invalid frame.
  • a fraud detection method in a vehicle-mounted network which is a time-triggered communication method based on a time slot.
  • the above electronic control devices are connected, each of the electronic control devices transmits and receives a frame within a predetermined time slot, and the fraud detection method includes a frame receiving step of receiving the frame; A fraud detecting step of detecting reception, wherein the fraud detecting step includes receiving a fraudulent frame based on a number of repetitions of a cycle including a plurality of the time slots and a slot ID included in the frame.
  • FIG. 1 is an overall configuration diagram of a vehicle-mounted network system 10 according to the first embodiment.
  • FIG. 2 is a diagram illustrating a FlexRay cycle according to the first embodiment.
  • FIG. 3 is a diagram illustrating a format of a FlexRay frame according to the first embodiment.
  • FIG. 4 is a configuration diagram of the ECU 200a according to the first embodiment.
  • FIG. 5 is a configuration diagram of the fraud detection ECU 250 according to the first embodiment.
  • FIG. 6 is a configuration diagram of the star coupler 300 according to the first embodiment.
  • FIG. 7 is a diagram illustrating an example of communication setting parameters according to the first embodiment.
  • FIG. 8 is a diagram illustrating an example of a regular ID list according to the first embodiment.
  • FIG. 1 is an overall configuration diagram of a vehicle-mounted network system 10 according to the first embodiment.
  • FIG. 2 is a diagram illustrating a FlexRay cycle according to the first embodiment.
  • FIG. 3 is a diagram illustrating a format of a FlexRay frame according
  • FIG. 9 is a diagram illustrating an example of a transmission schedule according to the regular ID list according to the first embodiment.
  • FIG. 10 is a diagram illustrating an example of a frame rule according to the first embodiment.
  • FIG. 11 is a diagram illustrating an example of a cycle rule according to the first embodiment.
  • FIG. 12 is a diagram illustrating an example of an all-cycle rule according to the first embodiment.
  • FIG. 13A is a diagram illustrating an example of a previous reception value of each frame in the reception history and a vehicle state according to Embodiment 1.
  • FIG. 13B is a diagram illustrating an example of a statistic for each cycle in the reception history according to the first embodiment.
  • FIG. 13C is a diagram illustrating an example of statistics in all cycles of each frame in the reception history according to Embodiment 1.
  • FIG. 13A is a diagram illustrating an example of a previous reception value of each frame in the reception history and a vehicle state according to Embodiment 1.
  • FIG. 13B is a diagram
  • FIG. 13D is a diagram illustrating an example of a statistic of each dynamic message in the reception history according to the Message @ ID in the first embodiment.
  • FIG. 14 is an overall processing flowchart of the fraud detection ECU according to the first embodiment.
  • FIG. 15 is a flowchart of the whitelist check of the fraud detection ECU in the first embodiment.
  • FIG. 16 is a flowchart of frame fraud detection processing by the fraud detection ECU according to the first embodiment.
  • An injustice detection electronic control device is an injustice detection electronic control device in an in-vehicle network that is a time-triggered time-trigger communication method, wherein the in-vehicle network includes one or more electronic control devices.
  • each of the electronic control units transmits and receives a frame within a predetermined time slot
  • the fraud detecting electronic control unit detects a frame receiving unit that receives the frame and a reception of an illegal frame.
  • a fraud detector that determines whether to receive a fraudulent frame based on the number of repetitions of a cycle including a plurality of the time slots and a slot ID included in the frame.
  • This is an electronic control unit for detecting fraud. This makes it possible to determine a frame fraud detection rule based not only on the ID included in the frame, but also on the number of times the time slot is repeated, so that a fraudulent frame can be detected in more detail.
  • the communication method may be a FlexRay protocol, and the cycle repetition number may be a cycle counter in the FlexRay protocol. As a result, an illegal frame can be detected even in a situation where cycle multiplexing for the FlexRay protocol is used.
  • the fraud detecting unit may be configured to calculate a statistic of information included in the protection target frame received during the predetermined number of cycles or more, and obtain a statistic of the information included in the protection target frame received during the predetermined cycle number. It may be detected that an invalid frame has been transmitted by comparing whether or not it deviates from the cycle rule indicating the range of the statistics. This makes it possible to detect the injection of an illegal frame, which is difficult to detect from the features included in a single frame, by monitoring statistics for a predetermined period.
  • a slot ID included in a received frame matches a predetermined slot ID
  • a cycle counter included in the received frame subtracts a predetermined offset value from the cycle counter to obtain a predetermined value. May be satisfied.
  • cycle multiplexing is used among frames received during one or more predetermined cycles
  • a frame having the same content is extracted, and illegal frame injection in the frame is performed for a predetermined period. It can be detected by monitoring the statistic.
  • the statistics include the number of received frames, the number of received Sync frames, the number of received null frames, the number of received frames with a preamble indicator of 1, the number of received error frames, and the number of received Startup frames. It may be related to at least one of the numbers. This makes it possible to detect the injection of an illegal frame by observing the statistics from the viewpoint of the attributes of the frame.
  • the fraud detecting unit further includes an fraudulent frame detecting unit that determines whether the frame is fraudulent every time a frame is received, and the fraudulent frame detecting unit transmits the fraudulent frame by the cycle fraud detecting unit. It may be executed after detecting that the operation has been performed. As a result, it is possible to execute more detailed fraud detection processing after detecting a fraudulent frame, thereby suppressing the increase in the processing load of the fraud detection electronic control device due to the increase in the number of received frames, thereby improving the safety of the vehicle-mounted network. .
  • the cycle includes two segments, a static segment that constantly transmits and receives frames based on a predetermined schedule, and a dynamic segment that transmits and receives frames as needed based on a predetermined schedule.
  • the fraud detection unit the fraudulent of the dynamic frame received in the dynamic segment, the vehicle running state determined from the frame received before receiving the dynamic frame, and the dynamic frame
  • the information may be used to make the determination. This makes it possible to define the conditions under which frames in the dynamic segment are transmitted and received by the running state of the vehicle, and to detect frames transmitted at an incorrect timing that does not match the vehicle state in the dynamic segment. It becomes possible.
  • the frame may be determined to be an invalid frame. This makes it possible to detect a dynamic frame transmitted outside the timing at which a dynamic frame transmitted in the dynamic segment can be transmitted as an invalid frame.
  • a fraud detection method is a fraud detection method in an in-vehicle network that is a time-trigger-based time-triggered communication method, wherein one or more electronic control devices are connected to the in-vehicle network.
  • each of the electronic control units transmits and receives a frame within a predetermined time slot
  • the fraud detecting method includes a frame receiving step of receiving the frame, and a fraud detecting step of detecting reception of a fraudulent frame.
  • the fraud detecting step is a fraud detecting method for determining whether to receive a fraudulent frame based on the number of times the time slot is repeated and a slot ID included in the frame. This makes it possible to determine a frame fraud detection rule based not only on the ID included in the frame, but also on the number of times the time slot is repeated, so that a fraudulent frame can be detected in more detail.
  • FIG. 1 is a diagram illustrating the overall configuration of the in-vehicle network system 10 according to the present disclosure.
  • the in-vehicle network system 10 includes a FlexRay bus 100a, 100b, 100c, 100d, 100e, ECUs 200a, 200b, 200c, 200d, a fraud detection ECU 250 connected to each bus, a handle 210 to be controlled by each ECU, and a gear. 220, a brake 230, a camera 240, and a star coupler 300 for connecting each FlexRay bus.
  • the ECUs 200a to 200d realize control of the vehicle by transmitting and receiving frames via the FlexRay bus.
  • the fraud detection ECU 250 detects transmission of a fraudulent frame by observing the FlexRay bus.
  • the star coupler shapes the signals so that the same signal flows in every bus, and each ECU synchronizes through the FlexRay bus.
  • FIG. 2 is a diagram illustrating a cycle of FlexRay communication according to the present disclosure. FlexRay communication is performed in units called a cycle, and each node synchronously holds the number of cycle repetitions (cycle counter). The cycle counter takes a value of 0 to 63. The next cycle in which the cycle counter is 63 resets the cycle counter to zero.
  • Each cycle is composed of four segments: a static segment (Static segment), a dynamic segment (Dynamic segment), a symbol window (Symbol window), and a network idle time (NIT). Since the time of each segment is common to the entire FlexRay network (cluster) according to parameters designed in advance, the time of one cycle is also common to the cluster.
  • Static segment static segment
  • Dynamic segment dynamic segment
  • Symbol window symbol window
  • NIT network idle time
  • the static segment is composed of multiple slots.
  • the number of slots and the time of each slot are common in the cluster.
  • one frame is transmitted in one slot, and the slot number becomes a frame identifier (Frame (ID).
  • Each ECU is designed to transmit a frame at a predetermined timing (slot number).
  • a frame transmitted in a static segment is called a static frame.
  • the static frame has a common payload length within the cluster.
  • the dynamic segment is composed of slots called mini slots.
  • mini-slots have slot numbers, and each ECU is designed to transmit at a predetermined timing (slot number), but unlike the static segment, it is necessary to transmit a frame. There is no.
  • Frames transmitted within the dynamic segment are called dynamic frames.
  • the dynamic frame can take any value from 0 to 254 as the payload length.
  • the symbol window is a time zone for transmitting and receiving signals called symbols.
  • the network idle time is a time period during which communication is not performed, and is always provided at the end of a cycle.
  • Each ECU performs a time synchronization process and the like.
  • FIG. 3 is a diagram illustrating a frame format of the FlexRay protocol according to the present disclosure. Both the static frame and the dynamic frame have a common format. The frame is composed of three segments: a Header Segment, a Payload Segment, and a Trailer Segment.
  • ⁇ Header ⁇ Segment starts with Reserved @ bit, and includes Payload @ preamble @ indicator, Null @ frame @ indicator, Sync @ frame @ indicator, and Startup @ frame @ indicator each for indicating a frame type. Further, it is composed of an 11-bit Frame @ ID, a 7-bit Payload @ length, an 11-bit Header @ CRC, and a 6-bit Cycle @ count.
  • the Frame @ ID is also called a slot ID, and is used to identify the transmission timing of a frame and the contents of the frame.
  • Payload @ length can take a maximum value of 127. Payload @ Segment stores the number of bytes obtained by multiplying the value of Payload @ length by two. Header @ CRC is a checksum calculated from a value including Sync @ frame @ indicator to Payload @ length. Cycle @ count stores the current number of cycles.
  • ⁇ Payload ⁇ Segment contains data representing the contents of the frame. The number of bytes that is twice the value of Payload @ length is stored, and a maximum of 254 bytes is stored.
  • ⁇ Trailer ⁇ Segment stores a CRC calculated from a value including all frames.
  • FIG. 4 is a configuration of the ECU 200a. Note that the ECU 200b, the ECU 200c, and the ECU 200d are the same components, and thus the description is omitted.
  • the ECU 200a includes a frame transmission / reception unit 201, a frame interpretation unit 202, an external device control unit 203, a frame generation unit 204, and a communication setting parameter holding unit 205.
  • the frame transmission / reception unit 201 acquires frame information by decoding a physical signal received from the bus 100a into a digital signal.
  • the frame transmitting / receiving unit can synchronize the time with the other ECUs by referring to the communication setting parameters held in the communication setting parameter holding unit 205, and can correctly receive the frame. Further, the frame transmission / reception unit 201 converts the frame into a physical signal at a predetermined timing in accordance with the transmission frame request notified from the frame generation unit 204, and transmits the physical signal to the bus 100a.
  • the frame interpreting unit 202 interprets the payload included in the received frame notified from the frame transmitting / receiving unit 201, and notifies the external device control unit to control the handle 210 connected to the ECU 200a according to the content of the payload. I do.
  • the traveling state is determined based on information on the speed of the vehicle notified from another ECU, and assist control of the steering wheel according to the traveling state or steering steering instruction signal in the automatic parking mode is performed. Realize automatic steering.
  • the external device control unit 203 controls the handle 210 connected to the ECU 200a. Also, it monitors the state of the handle 210 and notifies the frame generation unit of a frame transmission request for notifying the other ECUs of the state. For example, the angle of the handle 210 is notified.
  • the frame generation unit 204 generates a frame based on the notified signal, and makes a transmission request to the frame transmission / reception unit 201.
  • the communication setting parameter holding unit 205 holds common parameters in a cluster for correctly converting a physical signal into a digital signal.
  • FIG. 7 shows an example of communication setting parameters stored in the communication setting parameter storage unit 205, which will be described in detail later.
  • FIG. 5 is a configuration diagram of the fraud detection ECU 250.
  • the fraud detection ECU 250 includes a frame transmission / reception unit 201, a fraud detection unit 252, a frame generation unit 204, a communication setting parameter storage unit 205, a regular ID list storage unit 253, a frame rule storage unit 254, a one-cycle rule storage unit 255, and all cycles. It comprises a rule storage unit 256 and a reception history storage unit 257.
  • the functions having the same functions as those of the ECU 200a are given the same numbers, and the description is omitted.
  • the fraud detection unit 252 is notified of the received frame from the frame transmission / reception unit 201, and determines whether the received data frame is a legitimate frame. Whether the frame is a legitimate frame is determined by referring to the legitimate ID list stored in the legitimate ID list holding unit 253 to confirm whether the received frame ID is correct. Refers to the rule for each ID stored in the frame rule storage unit 254 and the reception history stored in the reception history storage unit 257, and determines whether an invalid frame has been transmitted. If it is determined that an invalid frame has been transmitted, the control unit 209 notifies the frame generation unit 204 to notify another ECU that the invalid frame has been transmitted.
  • the fraud detecting unit 252 is notified of the start of the cycle from the frame transmitting / receiving unit 201, and performs fraud detection processing of the previous cycle (one cycle fraud detection processing) at the start of the cycle.
  • fraud detection processing of the previous cycle (one cycle fraud detection processing) at the start of the cycle.
  • the fraud detecting unit 252 performs fraud detection processing of the previous cycle (one cycle fraud detection processing) at the start of the cycle.
  • the one-cycle rule stored in the one-cycle rule storage unit 255 and the reception history stored in the reception history storage unit 257 whether an invalid frame is transmitted in one cycle unit Judge. If the current cycle counter is 0, an all-cycle improper detection process is performed to determine whether an improper frame has been transmitted in the previous 63 cycles.
  • the all-cycle improper detection process is performed by referring to all-cycle rules stored in the all-cycle rule holding unit 256 and statistical information in all cycles stored in the reception history holding unit 257.
  • the frame generation unit 204 when it is detected that a fraudulent frame is being transmitted, it requests the frame generation unit 204 to transmit a frame to notify another ECU of fraud. Further, after the all-cycle improper detection process, the statistical information on all the cycles stored in the reception history holding unit 257 is reset.
  • the formal ID list holding unit 253 stores a list of IDs related to frames transmitted by each ECU.
  • FIG. 8 shows an example of the regular ID list held by the regular ID list holding unit 253, which will be described later in detail.
  • the frame rule holding unit 254 stores a rule for the fraud detecting unit 252 to determine whether the frame is fraudulent when the frame is received.
  • FIG. 10 shows an example of a frame rule stored in the frame rule holding unit 254, which will be described later in detail.
  • the # 1 cycle rule holding unit 255 stores a rule for the fraud detecting unit 252 to determine whether a fraudulent frame is transmitted in cycle units.
  • FIG. 11 shows an example of a one-cycle rule stored in the one-cycle rule holding unit 255, which will be described later in detail.
  • the all-cycle rule holding unit 256 stores a rule for the fraud detecting unit 252 to determine whether or not a fraudulent frame is transmitted by using statistics over all cycles from 0 to 63.
  • FIG. 12 shows an example of an all-cycle rule stored in the all-cycle rule holding unit 256, which will be described later in detail.
  • the reception history holding unit 257 stores information on received frames (payload information, meta information such as the type of frame, the number of received frames, and the like).
  • 13A, 13B, and 13C show an example of the reception history stored in the reception history holding unit 257, which will be described later in detail.
  • FIG. 6 is a configuration diagram of the star coupler 300.
  • the star coupler 300 includes transceiver units 301a, 301b, 301c, 301d, and 301e and a routing unit 302.
  • the transceiver unit 301a converts a physical signal received from the bus 100a into a digital signal and notifies the digital signal to the routing unit 302. When a digital signal is notified from the routing unit 302, the digital signal is converted into a physical signal and transferred to the bus 100a.
  • the routing unit 302 transfers the digital signal notified from the transceiver unit 301a to the transceiver units 301b, 301c, 301d, and 301e excluding the transceiver unit 301a. Similarly, when the digital signal is notified from the transceiver unit 301b, the digital signal is notified to the transceiver units except the transceiver unit 301b. When receiving a digital signal from a plurality of transceiver units, the routing unit notifies other transceiver units of a signal from the bus that first received the digital signal.
  • FIG. 7 shows an example of communication setting parameters stored in the communication setting parameter holding unit 205.
  • the communication setting parameters indicate that the baud rate indicating the communication speed is 10 Mbps, the slot ID of the static segment is 1 to 50, and the slot ID of the dynamic segment is 51 to 100. I have. It also shows that the payload length of the static slot is 8 (that is, 16 bytes). These values are shared by all the ECUs in the cluster, and the transmission and reception of the FlexRay frame is realized based on these values.
  • the value of the communication setting parameter is merely an example, and another value may be used.
  • the parameters shown here are merely examples, and may include parameters not described in FIG. 7 (for example, the length of each segment, the length of a slot, and the like), or may be described in reverse. Some of the parameters may not be included.
  • FIG. 8 shows an example of the regular ID list stored in the regular ID list holding unit 253 held by the fraud detection ECU 250.
  • Cycle @ offset and Cycle @ reception are information necessary for extracting a target frame when a method of transmitting and receiving frames having different contents is used even with the same slot ID called cycle multiplexing (cycle multiplexing).
  • cycle multiplexing cycle multiplexing
  • a frame with a slot ID of 99 has four frame names, and different contents of camera information 1, camera information 2, camera information 3, and camera information 4 are notified in each frame.
  • Cycle @ offset is 0, and Cycle @ reception is 4. This means that the cycle counter starts from 0 and transmits the frame every four cycles.
  • the frame D in which the camera information 1 is notified is transmitted when the slot ID of the cycle counter is 0, 4, 8, 12, 16, ..., 52, 56, 60 is 99. Which indicates that.
  • the frame E including the camera information 2 is transmitted when the cycle ID of the cycle counter is 1, 5, 9,... 53, 57, 61 is 99
  • the frame F including the camera information 3 is the cycle counter.
  • the cycle ID of 2 6, 10,..., 54, 58, 62 is 99
  • the frame G including the camera information 4 has the cycle counter of 3, 7, 11,. Sent when the cycle ID of 55, 59, 63 is 99.
  • the method of transmitting different frames with the same slot ID as described above is called cycle multiplexing.
  • the frame whose slot ID is 1, the cycle @ offset is 0, and the cycle @ reception is 1 (that is, the same frame is transmitted in every cycle) has the frame name A, and the payload of the frame A has the speed This indicates that information about is included.
  • a slot ID of 2 indicates that no frame is transmitted.
  • a frame having a slot ID of 3, a cycle @ offset of 0, and a cycle @ reception of 2 (that is, transmitted only when the cycle counter is an even number) has a frame name B, and the payload of frame B contains information about the handle angle. Indicates that it is included.
  • a frame whose slot ID is 98, whose Cycle @ offset is 1, and whose Cycle @ reception is 2 (that is, transmitted only when the cycle counter is an odd number) has a frame name C, and information about the gear state is included in the payload of the frame C. Indicates that it is included.
  • a frame having a slot ID of 99, a cycle of $ offset of 0, and a cycle of $ reception of 4 has a frame name of D, indicating that the payload of frame D includes information on camera information 1.
  • a frame having a slot ID of 99, a cycle @ offset of 1, and a cycle @ reception of 4 has a frame name of E, and the payload of the frame E indicates that information related to camera information 2 is included.
  • a frame whose slot ID is 99, whose cycle @ offset is 2, and whose cycle @ reception is 4 has a frame name of F, and indicates that the payload of the frame F includes information on the camera information 3.
  • a frame having a slot ID of 99, a cycle of $ offset of 3, and a cycle of reception of 4 has a frame name of G, and indicates that the payload of the frame G includes information on camera information 4.
  • a frame having a slot ID of 100, a Cycle @ offset of 0, and a Cycle @ reception of 4 has a frame name of H, and indicates that the payload of the frame H includes information on the door state.
  • Frames A and B are static frames transmitted in a static segment
  • frames C to H are dynamic frames transmitted in a dynamic segment.
  • FIG. 9 shows a frame transmission schedule in the example of the regular ID list in FIG.
  • the horizontal axis indicates the slot ID
  • the vertical axis indicates the cycle.
  • the name of the frame to be transmitted is described.
  • frames C to H are transmitted in a predetermined cycle, but may not be transmitted because the frames are dynamic frames.
  • FIG. 10 is a diagram illustrating an example of a frame rule stored in the frame rule holding unit 254 of the fraud detection ECU 250.
  • a reception rule is set for each frame name.
  • a reception rule is further set for each message ID.
  • the message ID is valid when the Preamble indicator included in the header segment of the dynamic frame is 1, and the upper two bytes of the payload are used as the message ID.
  • frame A there is no message ID for a static frame.
  • the payload length is fixed at 8, and as a reception rule, it is determined that an invalid frame has been received when the difference from the previously received speed is 0.5 km / h or more.
  • frame B there is no message @ ID because it is a static frame.
  • the payload length is fixed at 8, and as a reception rule, it is determined that an invalid frame has been received when the difference from the handle angle received last time is 30 degrees or more.
  • the frame C is a dynamic frame, but has no message @ ID.
  • the payload length is 16, which indicates that there is a possibility that the data may be received while the vehicle is stopped / running (that is, at any time).
  • the frame D is a dynamic frame, but has no message @ ID.
  • the payload length is 32, which indicates that there is a possibility that the frame will be received if the vehicle is stopped, that is, if the frame is received while traveling, it is determined that the frame is invalid.
  • the frame E is a dynamic frame, but has no message @ ID.
  • the payload length is 32, which indicates that the reception rule may indicate that the vehicle may be received if the vehicle is stopped or running.
  • For the frame F there are three message IDs, and a reception rule is defined for each of the three patterns of 0x0001, 0x0002, and 0x0004.
  • the frame with message @ ID of 0x0001 has a payload length of 32, and the reception rule indicates that reception during a stop is normal.
  • the frame with message @ ID of 0x0002 has a payload length of 32, and the reception rule indicates that reception during stop / run is normal.
  • the frame with message @ ID of 0x0004 has a payload length of 32, indicating that the reception rule indicates that reception during traveling is normal.
  • the frame G is a dynamic frame, but has no message @ ID.
  • the payload length is 32, which indicates that the reception rule may indicate that the vehicle may be received if the vehicle is stopped or running.
  • the frame H is a dynamic frame, but has no message @ ID.
  • the payload length is 2, and as a reception rule, there is a possibility that reception is performed if the vehicle is stopped.
  • the fraud detection ECU 250 may determine the fraudulent frame based not only on whether the received frame conforms to the reception rule but also on whether the payload length is correct.
  • FIG. 11 is an example of a one-cycle rule stored in the one-cycle rule holding unit 255 of the fraud detection ECU 250.
  • a rule for each cycle is stored.
  • the cycle counter is 0, the number of dynamic frames is less than 20, the number of Startup frames is less than 2, the number of sync frames is less than 2, the number of preamble indicators is 1 and the number of frames is less than 5, This indicates that the number of null frames is less than four, and the number of frames serving as errors is less than five.
  • the cycle counter is 0, it is determined that an abnormality has occurred in the cycle, and illegality is detected.
  • one cycle rules from the case where the cycle counter is 1 to the case where the cycle counter is 63 are shown in the figure.
  • the rules in all the cycles are illustrated, but it is not necessary to hold the rules in all the cycles.
  • one rule that does not depend on the cycle counter may be held, or one cycle rule may be held for each set of Cycle @ offset and Cycle @ reception. Thereby, the number of memories of the one-cycle rule can be reduced, which is effective.
  • FIG. 12 is an example of all cycle rules stored in the all cycle rule holding unit 256 of the fraud detection ECU 250.
  • rules for statistics of all cycles are stored for each frame.
  • the number of receptions is 64
  • the number of startup @ frames is less than 3
  • the number of sync @ frames is 64
  • the number of frames where preamble @ indicator is 1 is 0,
  • the number of null @ frames is 3 It is described as a rule that the number of frames is less than three and the number of frames that have become Error is also less than three. If any of the conditions is not satisfied, the fraud detection ECU 250 determines that there is an abnormality related to the frame and detects fraud. Similar rules are set for frames B to H.
  • rules for all cycles are held for each frame, but it is not necessary to divide the rules for each frame. For example, a rule of statistics over all frames may be held. Thereby, the number of memories of all cycle rules can be reduced, which is effective.
  • FIGS. 13A, 13B, and 13C are examples of the reception history stored in the reception history holding unit 257 of the fraud detection ECU 250.
  • FIG. 13A shows an example in which the previous reception value and the vehicle state of each frame are held in the reception history
  • FIG. 13B shows an example in which statistics for each cycle are held
  • FIG. An example is shown in which statistics for all cycles are held for each.
  • FIG. 13A is an example showing a previous reception value and a vehicle state of each frame in the reception history.
  • the previous reception value and the reception time (us) are held for each frame.
  • the previous reception value of the speed included in frame A is 40.5 km / h, indicating that the previous reception time was 12100 us.
  • the previous reception value of the handle angle included in frame B is 5 degrees, indicating that the previous reception time was 8100.
  • the gear state included in the frame C is the drive state, and indicates that the previous reception time was 12400 us.
  • the previous reception value of the camera information 1 included in the frame D indicates detection of the preceding vehicle, and indicates that the previous reception time was 1440 us.
  • the previous reception value of the camera information 2 included in the frame E indicates pedestrian detection, and indicates that the reception time was 5480 us.
  • the previous reception value of the camera information 3 included in the frame F indicates the lane detection state, and indicates that the reception time was 9520 us.
  • the previous reception value of the camera state 4 included in the frame G indicates that the rear camera has not been started, and indicates that the reception time is 13560 us.
  • the previous reception value of the door state included in the frame H indicates the “closed” state, and indicates that the reception time is 1600 us.
  • the vehicle state indicates that the vehicle is running. When the speed of the vehicle in frame A is greater than 0 km / h, the vehicle state stored in reception history holding section 257 is updated by fraud detecting section 252 as the traveling state.
  • the fraud detection unit 252 updates the vehicle state to the stopped state.
  • the reception time is held in the present embodiment, the reception time may not be held. Further, the reception time is held in the unit of us, but the unit may be any unit. For example, the number of micro ticks calculated from the internal clock used in the FlexRay protocol may be used as a unit, or the number of macro ticks defined by the micro tic may be used as a unit.
  • FIG. 13B is an example showing the statistics for each cycle in the reception history.
  • the number of received dynamic frames, the number of received startup @ frames, the number of received syncframes, the number of received frames with a preamble @ indicator of 1, the number of received null @ frames, and the number of received frames with an Error flag are shown for each cycle. Is held.
  • the cycle counter is 0, the number of received dynamic frames is 10, the number of received startup frames is 0, the number of received sync @ frames is 1, the number of received frames with a preamble indicator of 1 is 0, and the number of null @ frames is received. The number is 0, indicating that the number of frames with an error is 1.
  • the cycle counter When the cycle counter is 1, the number of received dynamic frames is 11, the number of received startup frames is 0, the number of received sync @ frames is 1, the number of frames with preamble @ indicator of 1 is 0, and the number of null @ frames is received. The number is 0, indicating that the number of frames with an error is 1.
  • the cycle counter When the cycle counter is 2, the number of received dynamic frames is 10, the number of received start frames is 0, the number of received sync frames is 1, the number of received frames with preamble indicator is 1, and the number of null frames is received. The number is 0, indicating that the number of frames with an error is 1.
  • the cycle counter When the cycle counter is 3, the number of received dynamic frames is 10, the number of received startup frames is 12, the number of received sync @ frames is 1, the number of received frames with preamble @ indicator of 1 is 1, and the number of null @ frames is received. The number is 0, indicating that the number of frames with an error is 1.
  • the cycle counter is 61, the number of received dynamic frames is 10, the number of received startup @ frames is 0, the number of received sync @ frames is 1, the number of frames with a preamble @ indicator of 1 is 1, and the number of null @ frames is received. The number is 0, indicating that the number of frames with an error is 1.
  • the cycle counter When the cycle counter is 62, the number of received dynamic frames is 12, the number of received startup frames is 0, the number of received sync @ frames is 1, the number of received frames with preamble @ indicator of 1 is 1, and the number of null @ frames is received. The number is 0, indicating that the number of frames with an error is 1.
  • the cycle counter is 63, the number of received dynamic frames is 10, the number of received startup frames is 0, the number of received sync @ frames is 1, the number of received frames of preamble @ indicator is 1, the number of received null @ frames is 1. The number is 0, indicating that the number of frames with an error is 1.
  • the number of received dynamic frames is stored, but the number of received static frames may be stored. Further, in the present embodiment, the number of frames in which an error has occurred is recorded, but the number may be recorded for each specific error flag (syntax error, content error, boundary error).
  • FIG. 13C is an example in which statistics in all cycles in the reception history are arranged for each frame.
  • the number of received frames, the number of received start-up frames, the number of received sync frames, the number of received frames with a preamble indicator of 1, the number of received null-frames, and the number of received frames with an Error flag are held.
  • the number of received frames A was 64
  • the number of received startup @ frames was 0,
  • the number of received sync @ frames was 64
  • the number of received frames with preamble @ indicator of 1 was 0, the number of received null @ frames was 0, and Error was obtained. This indicates that the number of frames was 0.
  • the number of received frames B is 32
  • the number of received startup @ frames is 0, the number of received sync @ frames is 0, the number of received frames with preamble @ indicator of 1 is 0, the number of received null @ frames is 0, Error Indicates that the number of frames having been changed to 15.
  • the number of received frames C was 32, the number of received startup @ frames was 0, the number of received sync @ frames was 0, the number of received frames with preamble @ indicator of 1 was 0, the number of received null @ frames was 0, and Error. This indicates that the number of frames was 0.
  • the number of received frames D was 16, the number of received startup @ frames was 0, the number of received sync @ frames was 0, the number of received frames with preamble @ indicator of 1 was 0, the number of received null @ frames was 0, and Error. This indicates that the number of frames was 0.
  • the number of received frames E was 16, the number of received startup @ frames was 0, the number of received sync @ frames was 0, the number of received frames with preamble @ indicator of 1 was 0, and the number of received null @ frames was 0, Error. This indicates that the number of frames was 0.
  • the number of received frames F is 16, the number of received startup @ frames is 0, the number of received sync @ frames is 0, the number of received frames with preamble @ indicator of 1 is 16, the number of received null @ frames is 0, and Error.
  • the number of received frames G is 16, the number of received startup @ frames is 0, the number of received sync @ frames is 0, the number of frames with a preamble @ indicator of 1 is 0, the number of received null @ frames is 0, and Error. This indicates that the number of frames was 0.
  • the number of received frames H was 8, the number of received startup @ frames was 0, the number of received sync @ frames was 0, the number of received frames with preamble @ indicator of 1 was 0, the number of received null @ frames was 0, and Error was obtained. This indicates that the number of frames was 0.
  • statistics in all cycles are arranged for each frame, but only statistics for all frames may be stored. This is effective in reducing the memory used. Further, in the present embodiment, the statistics are held for each frame name (a combination of a slot ID, a cycle @ offset, and a cycle @ reception). However, the statistics may be held for each Message @ ID in a dynamic frame. . (FIG. 13D)
  • FIG. 14 is a flowchart showing the operation of the fraud detection ECU 250.
  • the fraud detection ECU 250 determines whether a frame has been received (S1001). When receiving the frame, the fraud detection ECU 250 performs a whitelist check (S1002). If no frame has been received, the fraud detection ECU 250 determines whether it is a cycle start timing (S1007).
  • the fraud detection ECU 250 executes the received frame fraud detection process when the result is OK (S1003). Thereafter, the fraud detection ECU 250 updates the reception history stored in the reception history holding unit 257 (S1004), and ends the processing. If the whitelist check (S1002) is NG, the fraud detection ECU 250 ends the process.
  • the fraud detection ECU 250 determines whether the cycle counter is 0 (S1007). If the cycle counter is 0, the fraud detection ECU 250 executes the all-cycle fraud detection process (S1008), and the fraud detection ECU 250 stores the statistical information of all the cycles of the cycle stored in the reception history holding unit 257. It is reset (S1009). If the cycle counter is not 0, the fraud detection ECU 250 ends the processing.
  • FIG. 15 is a flowchart showing details of the whitelist check (S1002) in the operation of the fraud detection ECU 250.
  • the fraud detection ECU 250 extracts the slot ID included in the frame (S1101). If the slot ID does not exist in the regular ID list stored in the regular ID list holding unit 253 (N in S1102), the fraud detection ECU 250 ends the processing (whitelist NG) as detecting a fraudulent frame (S1106). ). If it exists in the regular ID list (Y in S1102), the fraud detection ECU 250 extracts the cycle counter included in the frame (S1103).
  • the fraud detection ECU 250 extracts all combinations of Cycle @ offset and Cycle @ reception in the corresponding slot IDs in the regular ID list stored in the regular ID list holding unit 253 (S1104). Thereafter, the fraud detection ECU 250 checks whether or not the remainder obtained by dividing the value obtained by subtracting the cycle counter extracted from the frame by Cycle @ offset from Cycle @ reception for all the extracted combinations is 0 (S1105). If there is no combination whose result is 0, it is determined that a bad frame has been detected (S1106), and the fraud detection ECU 250 ends the process (whitelist NG). If there is a combination having a result of 0, the fraud detection ECU 250 ends the process (whitelist OK).
  • FIG. 16 is a flowchart showing details of the frame fraud detection processing (S1003) in the operation of the fraud detection ECU 250.
  • the fraud detection ECU determines whether the received frame is a dynamic frame (S1201). If the frame is a dynamic frame, the fraud detection ECU 250 checks whether the Preamble indicator included in the frame is 1 (S1202). If the received frame is not a dynamic frame but a static frame, based on the corresponding reception history stored in the reception history storage unit 257, the fraud detection ECU 250 determines the corresponding frame stored in the frame rule storage unit 254. Determine if the rule is met. (S1206).
  • the fraud detection ECU 250 extracts the Message ID (S1203). After extracting the Message @ ID and when the Preamble @ indicator is 0, the injustice detection ECU 250 stores the vehicle state stored in the reception history holding unit 257 in the corresponding frame rule holding unit 254. It is checked whether the reception condition of the frame is satisfied (S1204). If the reception condition matches (matches the frame rule), the fraud detection ECU 250 ends the processing. Otherwise, the fraud detection ECU 250 detects a fraudulent frame (S1205) and ends the process.
  • fraud detection ECU 250 detects the fraudulent frame and ends the process. If the rule is met, the fraud detection ECU 250 ends the process.
  • a star network topology is shown, but the network topology is not limited.
  • a network topology of a bus type, a hybrid of a star type and a bus type, or the like can be adopted.
  • the fraud detecting unit is provided only in the fraud detecting ECU, but may be provided in each ECU. This is effective because each ECU determines an invalid frame and control based on the invalid frame can be suppressed. Further, by arranging the fraud detector on a gateway or a domain controller connected to another network, it is possible to effectively prevent the transfer of a fraudulent frame to another network.
  • the process is terminated after detecting an invalid frame.
  • the response is not limited to this.
  • header information, a payload value, a reception time, and the like regarding an invalid frame may be stored as a log, a notification of the invalid frame may be sent to another ECU, or the vehicle may be sent to an external server. May be notified, or the driver may be notified that the improper operation has occurred in the in-vehicle network. If the fraud detector is located on the gateway or domain controller, the fraudulent frame is not forwarded to another network, and the fraudulent frame is transferred with additional information indicating that it is fraudulent. Processing may be performed.
  • the fraud detection ECU performs the three fraud detection processes of the frame fraud detection process, the one-cycle fraud detection process, and the all-cycle fraud detection process, but performs all three fraud detection processes. No need. At least one operation may be performed, and any two operations may be performed in combination.
  • the fraud detection processing is performed while reducing the processing load, and when an invalid frame is detected, it is possible to detect a more detailed fraud.
  • the frame rule, the one-cycle rule, and the all-cycle rule are stored in plain text, but may be stored in encrypted form.
  • cycle fraud detection is performed at the start of a cycle.
  • cycle fraud detection may be performed at the start of a network idle time. This makes it possible to execute the fraud detection processing at a timing when frame transmission / reception does not occur, and the processing load on the ECU is dispersed, which is effective.
  • the number of reception rules stored in the frame rule holding unit is one for each frame, but there may be one or more reception rules.
  • a reception rule may not exist. This makes it possible to check according to the importance of the frame, which is effective in improving the security of the vehicle-mounted network.
  • the reception rule stored in the frame rule holding unit is set to the vehicle state at the time of reception in the case of a dynamic frame, but is not limited to the vehicle state.
  • a rule regarding the amount of change from the previous value may be set.
  • the reception rule stored in the frame rule holding unit is set for each Message ID, but may be set for each frame name. This effectively saves the rules by efficiently holding the rules, which is effective.
  • the one-cycle rule holding unit holds the rule for one cycle of the statistical information.
  • the number of cycles may be determined in place of one cycle.
  • the frame name is stored in the regular ID list, but the frame name may not be stored.
  • one payload information is held for one frame in the regular ID list. However, one or more payload information may be held or even if there is no payload information. Good.
  • the payload information may include information indicating a field on the payload of each signal such as speed (field position, length, unit, etc.).
  • the thresholds of the one-cycle rule stored in the one-cycle rule holding unit are fixed, but may be variable according to the running state of the vehicle. For example, the number of received dynamic frames may vary according to the running state, and thus the threshold may be increased (decreased) during running.
  • each statistic may be used as a feature amount to determine whether an illegal operation is performed by a classifier such as Support ⁇ Vector ⁇ Machine which has learned a normal state.
  • the statistics may be reduced in dimension using a method such as principal component analysis, and then the outlier may be determined using an outlier detection method such as Local ⁇ Outlier ⁇ Factor.
  • the threshold values of the statistics of the one-cycle rule and the all-cycle rule are given in advance, but the normal state may be learned while the vehicle is running. For example, a statistic may be learned from data for a predetermined time after the power of the fraud detection ECU is turned on. This makes it possible to correct the rules according to the driver, the vehicle model, and the traveling environment, which is effective.
  • the vehicle state included in the reception history is only the two states of running or stopped, but the vehicle state is not limited to these two states.
  • an ignition-on state, an accessory-on state, a low-speed running state, a high-speed running state, a steering wheel steering state, a gear state, or a state in which these are combined can be taken.
  • by selecting the transmission condition of the dynamic frame and the vehicle state it is possible to accurately detect an incorrect frame, which is effective.
  • the frame fraud detection processing As a result of the frame fraud detection processing, the one-cycle fraud detection processing, and the all-cycle fraud detection processing, only the transmission of the fraudulent frame is detected, but the fraud detection is performed in accordance with each processing. How to leave a log and how to deal with it may be changed. For example, as a result of frame fraud detection, for a frame determined to be fraudulent, information relating to the frame is logged and notified to an external server. May not be transferred. As a result, when transmission of an illegal frame can be determined on a frame-by-frame basis, more detailed information is left, and a specific countermeasure such as analyzing the cause of an attack later or not using the frame can be effectively performed.
  • the all-cycle rule is a statistic related to the number of received frames, but is not limited to the number of received frames.
  • the total change amount, the average change amount, and the variance of the signal values included in the payload may be stored as rules.
  • the cycle rule combining the dynamic frame and the static frame is held.
  • the cycle rule regarding the static frame and the cycle frame regarding the dynamic frame may be separately held.
  • the FlexRay protocol is used as the in-vehicle network, but the present invention is not limited to this.
  • CAN CAN-FD (CAN with Flexible Data Rate), Ethernet, LIN (Local Interconnect Network), MOST (Media Oriented Systems Transport), or the like may be used.
  • LIN Local Interconnect Network
  • MOST Media Oriented Systems Transport
  • a network in which these networks are combined as a sub-network may be used. This is particularly effective for a network employing a time trigger method.
  • Each device in the above embodiment is, specifically, a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is recorded in the RAM or the hard disk unit.
  • Each device achieves its function by the microprocessor operating according to a computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions to the computer in order to achieve a predetermined function.
  • Each or all of the constituent elements of each device in the above-described 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 one chip, and is specifically a computer system including a microprocessor, a ROM, a RAM, and the like. .
  • the RAM stores a computer program. When the microprocessor operates according to the computer program, the system LSI achieves its function.
  • Each part of the constituent elements constituting each device described above may be individually formed into one chip, or may be formed into one chip so as to include a part or all.
  • LSI may also 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, and may be realized by a dedicated circuit or a general-purpose processor. After manufacturing the LSI, a programmable FPGA (Field Programmable Gate Array) or a reconfigurable processor capable of reconfiguring connection and setting of circuit cells inside the LSI may be used.
  • a programmable FPGA Field Programmable Gate Array
  • reconfigurable processor capable of reconfiguring connection and setting of circuit cells inside the LSI may be used.
  • a part or all of the constituent elements constituting each of the above devices may be constituted by an IC card detachable to each device or a single module.
  • the IC card or the module is a computer system including a microprocessor, a ROM, a RAM, and the like.
  • the IC card or the module may include the above-mentioned super multifunctional LSI.
  • the IC card or the module achieves its function by the microprocessor operating according to the computer program.
  • the IC card or the module may have tamper resistance.
  • the present disclosure may be the method described above. Further, these methods may be a computer program that is realized by a computer, or may be a digital signal formed by the computer program.
  • the present disclosure relates to a computer-readable recording medium capable of reading the computer program or the digital signal, for example, a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blu-ray ( (Registered trademark) @Disc), or may be recorded on a semiconductor memory or the like. Further, the digital signal may be recorded on these recording media.
  • a computer-readable recording medium capable of reading the computer program or the digital signal
  • a flexible disk for example, a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blu-ray ( (Registered trademark) @Disc)
  • the digital signal may be recorded on these recording media.
  • the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, a data broadcast, or the like.
  • the present disclosure may be a computer system including a microprocessor and a memory, wherein the memory records the computer program, and the microprocessor operates according to the computer program.
  • program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the network or the like, so that it is implemented by another independent computer system. It may be.
  • the present disclosure provides a secure in-vehicle network system by observing a frame flowing in the in-vehicle network and detecting an unauthorized frame. As a result, a secure state can be maintained for the entire in-vehicle network system.

Abstract

タイムスロットに基くタイムトリガー型の通信方式である車載ネットワークシステム(10)における不正検知ECU(250)であって、車載ネットワークシステム(10)には、1以上のECUが接続され、それぞれは予め定められた所定のタイムスロット内でフレームを送受信し、不正検知ECU(250)は、フレーム受信部と、不正検知部を備え、不正検知部は、タイムスロットの繰り返し回数と、フレームに含まれるスロットIDとに基いて、不正なフレームの受信を判断する。

Description

不正検知方法および不正検知電子制御装置
 本開示は、車載ネットワークにおける不正フレームの送信を検知する電子制御ユニットに関する。
 近年、自動車の中のシステムには、電子制御ユニット(以下、ECU)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークを車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも、現在、主流となっているController Area Network(以下CAN)よりも高速、高信頼プロトコルとして設計されたFlexRayという規格が存在する。
 FlexRayでは2本のより線の電圧差により“0”の値と“1”の値を表す。バスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。FlexRayはTime Division Multiple Access(以下TDMA)方式であり、各ノードは予め決められたタイミングでフレームを送信する。
 FlexRayでは、最大の時間単位であるサイクルが存在し、各ノードはグローバルタイムを同期している。サイクルは「静的セグメント」「動的セグメント」「シンボルウィンドウ」「ネットワークアイドルタイム」の4つのセグメントから構成され、動的セグメントとシンボルウィンドウはオプションである。各ノードは静的セグメントと動的セグメントにおいてフレームを送信する。静的セグメントと動的セグメントは、さらにスロットと呼ばれる1つのフレームを送信することができる時間から構成される。
 FlexRayでは送信先や送信元を示す識別子は存在せず、送信ノードはフレーム毎に予め定められた送信タイミングであるスロット番号に基いてフレームを送信する。各受信ノードは予め決められたスロット番号のフレームのみを受信する。また、同一のスロット番号のフレームであっても、サイクルによって異なるフレームの通信を実現する「サイクルマルチプレキシング」と呼ばれる方法が用いられる。
 また、FlexRayでは、CANのように全てのノードが1つのバスに接続されるバス型ネットワークトポロジだけでなく、スターカプラを介したスター型のネットワークトポロジや、バス型とスター型のハイブリッド型のネットワークトポロジを設計することが可能である。
 一方、セキュリティに関しては、CANでは、攻撃者がCANのバスにアクセスし、不正フレームを送信することで、ECUを不正制御するといった脅威が存在し、セキュリティ対策が検討されている。
 例えば特許文献1では、車載ネットワーク監視装置を提案しており、フレームがあらかじめ規定された通信間隔でCANに送信されているかを検出し、規定された通信間隔から外れるフレームを不正と判断することで、不正フレームによる制御を防止する方法が開示されている。
特許第5664799号公報
 しかしながら、タイムトリガー型の通信方式を採用しているFlexRayでは、予め規定された通信間隔で通信を行うため、ある特定の識別子をもつフレームの受信間隔は常に一定となり、特許文献1のような不正検知手法を適用することはできない。
 本開示は、上記課題を解決するため、タイムトリガー型の通信方式であるプロトコルに対しても、不正なフレームの送信を検知することで、安全な車載ネットワークシステムを提供することを目的とする。
 上記課題を解決するために、本開示の一実施様態の不正検知電子制御装置は、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正検知電子制御装置であって、前記車載ネットワークには、1以上の電子制御装置が接続され、前記各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信し、前記不正検知電子制御装置は、前記フレームを受信するフレーム受信部と、不正なフレームの受信を検知する不正検知部と、を備え、前記不正検知部は、複数の前記タイムスロットから構成されるサイクルの繰り返し回数と、前記フレームに含まれるスロットIDとに基いて、不正なフレームの受信を判断する。
 また上記課題を解決するために、本開示の一実施様態の不正検知方法は、タイムスロットに基づくタイムトリガー型の通信方式である車載ネットワークにおける不正検知方法であって、前記車載ネットワークには、1以上の電子制御装置が接続され、前記各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信し、前記不正検知方法は、前記フレームを受信するフレーム受信ステップと、不正なフレームの受信を検知する不正検知ステップと、を備え、前記不正検知ステップは、複数の前記タイムスロットから構成されるサイクルの繰り返し回数と、前記フレームに含まれるスロットIDとに基いて、不正なフレームの受信を判断する。
 本開示によれば、タイムトリガー型の通信方式を採用している車載ネットワークに対しても、不正なフレームが送信されていることを検知することが可能となることで、不正なフレームへの対処が可能となり車載ネットワークシステム全体として、安全な状態を維持することができる。
図1は、実施の形態1における車載ネットワークシステム10の全体構成図である。 図2は、実施の形態1におけるFlexRayのサイクルについての図である。 図3は、実施の形態1におけるFlexRayフレームのフォーマットを示した図である。 図4は、実施の形態1におけるECU200aの構成図である。 図5は、実施の形態1における不正検知ECU250の構成図である。 図6は、実施の形態1におけるスターカプラ300の構成図である。 図7は、実施の形態1における通信用設定パラメータの一例を示す図である。 図8は、実施の形態1における正規IDリストの一例を示す図である。 図9は、実施の形態1における正規IDリストに従った送信スケジュールの一例を示す図である。 図10は、実施の形態1におけるフレームルールの一例を示す図である。 図11は、実施の形態1におけるサイクルルールの一例を示す図である。 図12は、実施の形態1における全サイクルルールの一例を示す図である。 図13Aは、実施の形態1における、受信履歴のうちの各フレームの前回受信値と車両状態の一例を示す図である。 図13Bは、実施の形態1における、受信履歴のうちのサイクルごとの統計量の一例を示す図である。 図13Cは、実施の形態1における、受信履歴のうちのフレームごとの全サイクルにおける統計量の一例を示す図である。 図13Dは、実施の形態1における、受信履歴のうちの、動的フレームのMessage IDごとの統計量の一例を示す図である。 図14は、実施の形態1における、不正検知ECUの全体処理フローチャートである。 図15は、実施の形態1における、不正検知ECUのホワイトリストチェックのフローチャートである。 図16は、実施の形態1における、不正検知ECUのフレーム不正検知処理のフローチャートである。
 本開示の一態様に係る不正検知電子制御装置は、タイムスロットに基くタイムトリガー型の通信方式である車載ネットワークにおける不正検知電子制御装置であって、前記車載ネットワークには、1以上の電子制御装置が接続され、前記各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信し、前記不正検知電子制御装置は、前記フレームを受信するフレーム受信部と、不正なフレームの受信を検知する不正検知部と、を備え、前記不正検知部は、複数の前記タイムスロットから構成されるサイクルの繰り返し回数と、前記フレームに含まれるスロットIDと、に基いて、不正なフレームの受信を判断する不正検知電子制御装置である。これにより、フレームに含まれるIDだけでなく、タイムスロットの繰り返し回数に基いてフレームの不正検知ルールを定めることが可能となり、より詳細に不正なフレームを検知できるようになる。
 また、前記通信方式は、FlexRayプロトコルであり、前記サイクルの繰り返し回数はFlexRayプロトコルにおけるサイクルカウンタであるとしてもよい。これにより、FlexRayプロトコルに対するサイクル多重化を用いられた状況においても不正なフレームを検知できるようになる。
 また、前記不正検知部は、1以上の所定のサイクル数の間に受信した保護対象フレームに含まれる情報の統計量が、前記所定のサイクル数の間に受信した保護対象フレームに含まれる情報の統計量の範囲を示したサイクルルールから逸脱しているかを比較することによって不正なフレームが送信されたことを検知するとしてもよい。これにより単一のフレームに含まれる特徴からでは検知が困難である不正なフレームの注入を、所定期間の統計量を監視することで検知することが可能となる。
 また、前記保護対象フレームは、受信したフレームに含まれるスロットIDが所定のスロットIDに合致し、かつ、受信したフレームに含まれるサイクルカウンタが、前記サイクルカウンタから所定のオフセット値を減算し、所定の受信サイクルで割った余りが0となる関係性を満たすとしてもよい。これにより、1以上の所定のサイクル数の間に受信したフレームのうち、サイクル多重化が用いられていた場合でも、同一内容のフレームを抽出し、当該フレームにおける不正なフレームの注入を、所定期間の統計量を監視することで検知することが可能となる。
 また、前記統計量は、フレームの受信数、Syncフレームの受信数、nullフレームの受信数、Preamble indicatorが1であるフレームの受信数、エラーが発生しているフレームの受信数、Startupフレームの受信数のうち、少なくとも1つ以上に関連することとしてもよい。これにより、フレームの属性の観点から統計量を観測することで、不正なフレームの注入を検知することが可能となる。
 また、前記不正検知部は、さらに、フレーム受信ごとに、当該フレームが不正であるかを判断する不正フレーム検知部を備え、不正フレーム検知部は、前記サイクル不正検知部で、不正なフレームが送信されたことを検知した以降に実行されるとしてもよい。これにより受信フレーム数増加による不正検知電子制御装置の処理負荷の増加を抑えつつ、不正なフレームの検知後にはより詳細な不正検知処理を実行し、車載ネットワークの安全性を高めることが可能となる。
 また、前記サイクルは、予め定められたスケジュールに基いて常にフレームの送受信を行う静的セグメントと、予め定められたスケジュールに基いて、必要に応じてフレームの送受信を行う動的セグメントの2つのセグメントを備え、前記不正検知部は、前記動的セグメント内で受信した動的フレームの不正を、前記動的フレームを受信する以前に受信したフレームから判定される車両走行状態と、前記動的フレームに含まれる情報と、を用いて判断するとしてもよい。これにより、動的セグメント内のフレームが送受信される条件を車両の走行状態により規定することが可能となり、動的セグメント内で車両状態と一致しない不正なタイミングで送信されるフレームを検知することが可能となる。
 また、前記不正検知部は、所定スロットIDと所定の関係性を満たすサイクルカウンタを含む前記動的フレームを受信したタイミングにおける、前記車両走行状態が、所定の状態でない場合に、受信した前記動的フレームを不正なフレームであると判断するとしてもよい。これにより、動的セグメント内で送信される動的フレームが送信されうるタイミング外で送信される動的フレームを不正なフレームとして検知することが可能となる。
 また、本開示の一態様に係る不正検知方法は、タイムスロットに基くタイムトリガー型の通信方式である車載ネットワークにおける不正検知方法であって、前記車載ネットワークには、1以上の電子制御装置が接続され、前記各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信し、前記不正検知方法は、前記フレームを受信するフレーム受信ステップと、不正なフレームの受信を検知する不正検知ステップと、を備え、前記不正検知ステップは、前記タイムスロットの繰り返し回数と、前記フレームに含まれるスロットIDとに基いて、不正なフレームの受信を判断する不正検知方法である。これにより、フレームに含まれるIDだけでなく、タイムスロットの繰り返し回数に基いてフレームの不正検知ルールを定めることが可能となり、より詳細に不正なフレームを検知できるようになる。
 以下、実施の形態に係る車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
 (実施の形態1)
 1.システムの構成
 ここでは、本開示の実施の形態として、不正検知ECU250について図面を参照しながら説明する。
 1.1 車載ネットワークシステム10の全体構成
 図1は、本開示に係る車載ネットワークシステム10の全体構成を示す図である。車載ネットワークシステム10は、FlexRayバス100a、100b、100c、100d、100eと、各バスに接続される、ECU200a、200b、200c、200d、不正検知ECU250と、各ECUの制御対象であるハンドル210、ギア220、ブレーキ230、カメラ240と、各FlexRayバスを接続するスターカプラ300と、から構成される。ECU200a~200dは、FlexRayバスを通じて、フレームの送受信を行うことで、車両の制御を実現する。不正検知ECU250はFlexRayバスを観測することで、不正なフレームの送信を検知する。またFlexRayバス100a、100b、100c、100d、100eは、どのバスにも同じ信号が流れるようにスターカプラが信号の整形を行い、各ECUは、FlexRayバスを通じて同期をとっている。
 1.2 FlexRayサイクル
 図2は、本開示に係るFlexRay通信のサイクルを示す図である。FlexRayの通信はサイクル(Cycle)と呼ばれる単位で行われ、サイクルの繰り返し回数(サイクルカウンタ)を各ノードが同期して保持しており、サイクルカウンタは0~63の値をとる。サイクルカウンタが63である次のサイクルはサイクルカウンタを0にリセットする。
 各サイクルは、静的セグメント(Static segment)、動的セグメント(Dynamic segment)、シンボルウィンドウ(Symbol window)、ネットワークアイドルタイム(NIT)の4つのセグメントから構成される。各セグメントの時間は予め設計されたパラメータによって、FlexRayネットワーク全体(クラスタ)で共通であるため、1サイクルの時間も同様にクラスタで共通である。
 静的セグメントは、複数のスロットから構成される。スロットの個数、および各スロットの時間はクラスタ内で共通である。またFlexRayフレームは1スロット内に1つのフレームが送信され、スロットの番号がフレームの識別子(Frame ID)となる。各ECUは予め定められたタイミング(スロット番号)で、フレームの送信を行うように設計されている。静的セグメント内で送信されるフレームを静的フレームとよぶ。静的フレームは、ペイロード長がクラスタ内で共通となっている。
 動的セグメントは、ミニスロットと呼ばれるスロットから構成される。ミニスロットにも同様にスロット番号が存在し、各ECUは、予め定められたタイミング(スロット番号)で送信を行うように設計されているが、静的セグメントと異なり、必ずしもフレームの送信を行う必要はない。動的セグメント内で送信されるフレーム動的フレームとよぶ。動的フレーは、ペイロード長として0~254の任意の値をとることができる。
 シンボルウィンドウは、シンボルと呼ばれる信号の送受信を行う時間帯である。
 ネットワークアイドルタイムは、通信を行わない時間帯であり、サイクルの最後に必ず設けられる。各ECUは、時刻の同期処理等を行う。
 1.3 フレームフォーマット
 図3は、本開示に係るFlexRayプロトコルのフレームフォーマットを示す図である。静的フレームおよび動的フレームともに共通のフォーマットである。フレームは、Header Segment、Payload Segment、Trailer Segmentの3つのセグメントから構成される。
 Header SegmentはReserved bitから始まり、フレームの種別を表すための、Payload preamble indicator、Null frame indicator、Sync frame indicator、Startup frame indicatorがそれぞれ1ビットずつ含まれる。さらに11ビットのFrame IDと、7ビットのPayload length、11ビットのHeader CRC、6ビットのCycle countから構成される。Frame IDは、スロットIDとも呼ばれ、フレームの送信タイミング及び、フレームの内容を識別するために用いられる。Payload lengthは最大127の値をとり得る。Payload SegmentにはPayload lengthの値に2をかけたバイト数が格納される。Header CRCはSync frame indicatorからPayload lengthまでを含んだ値から計算されるチェックサムである。Cycle countは、現在のサイクル数が格納される。
 Payload Segmentには、フレームの内容を表すデータが含まれる。Payload lengthの値の2倍のバイト数が格納されており、最大で254バイトが格納される。
 Trailer Segmentにはフレームの全てを含んだ値から計算されるCRCが格納されている。
 1.4 ECU200aの構成図
 図4は、ECU200aの構成図である。なお、ECU200b、ECU200c、ECU200dも同様の構成要素のため、説明を省略する。
 ECU200aは、フレーム送受信部201と、フレーム解釈部202と外部機器制御部203と、フレーム生成部204と、通信用設定パラメータ保持部205と、から構成される。
 フレーム送受信部201は、バス100aから受信した物理信号を、デジタル信号に復号することでフレームの情報を取得する。フレーム送受信部は通信用設定パラメータ保持部205に保持される、通信用設定パラメータを参照することで、他のECUと時刻を同期し、正しくフレームを受信することができる。またフレーム送受信部201は、フレーム生成部204から、通知される送信フレーム要求に従い、予め定められたタイミングで、フレームを物理信号に変換して、バス100aに送信する。
 フレーム解釈部202は、フレーム送受信部201から通知される受信したフレームに含まれるペイロードを解釈し、ペイロードの内容に応じてECU200aに接続されるハンドル210の制御を行うために外部機器制御部へ通知を行う。例えば、他のECUから通知される車両の速度の情報に基いて、走行状態を判断し、走行状態に応じたハンドルのアシスト制御や、自動駐車モード時のステアリング操舵指示信号に基いて、ハンドルの自動操舵を実現する。
 外部機器制御部203は、ECU200aに接続されるハンドル210の制御を行う。またハンドル210の状態を監視し、他のECUに状態を通知するためのフレーム送信要求をフレーム生成部に通知する。例えば、ハンドル210の角度を通知する。
 フレーム生成部204は、通知された信号に基いて、フレームの生成を行い、フレーム送受信部201へ送信要求を行う。
 通信用設定パラメータ保持部205は、物理信号を正しく、デジタル信号に変換するための、クラスタ内で共通のパラメータが保持されている。図7に通信用設定パラメータ保持部205に保持される通信用設定パラメータの一例を示し、詳細は後述する。
 1.5 不正検知ECU250の構成図
 図5は、不正検知ECU250の構成図である。不正検知ECU250は、フレーム送受信部201、不正検知部252、フレーム生成部204、通信用設定パラメータ保持部205、正規IDリスト保持部253、フレームルール保持部254、1サイクルルール保持部255、全サイクルルール保持部256、受信履歴保持部257、から構成される。なお、ECU200aと同様の機能であるものは、同じ番号を付与して説明を省略する。
 不正検知部252は、フレーム送受信部201から、受信したフレームを通知され、受信されたデータフレームが、正規のフレームであるかを判断する。正規のフレームであるかの判断は、正規IDリスト保持部253に格納されている正規IDリストを参照することで、受信したフレームのIDが正しいかを確認し、受信したフレームのIDが正しい場合は、フレームルール保持部254に格納されているIDごとのルールと、受信履歴保持部257に保持されている受信履歴を参照し、不正なフレームが送信されているかを判断する。不正なフレームが送信されていると判断された場合は、他のECUに不正なフレームが送信されていることを通知するために、フレーム生成部204に通知を行う。また、不正検知部252は、フレーム送受信部201からサイクルの開始を通知され、サイクルの開始時に前のサイクルの不正検知処理(1サイクル不正検知処理)を行う。この時は1サイクルルール保持部255に格納されている1サイクルルールと、受信履歴保持部257に格納されている受信履歴を参照することで、1サイクル単位で、不正なフレームが送信されているかを判断する。さらに、現在のサイクルカウンタが0であった場合は、前の63サイクルにおいて不正なフレームが送信されていたかを判断する全サイクル不正検知処理を行う。全サイクル不正検知処理は、全サイクルルール保持部256に格納されている全サイクルルールと、受信履歴保持部257に格納されている全サイクルにおける統計情報を参照することで行う。1サイクル不正検知処理および、全サイクル不正検知処理において、不正なフレームが送信されていることを検知すると、他のECUに不正を通知するためのフレーム送信を、フレーム生成部204に要求する。また、全サイクル不正検知処理後は、受信履歴保持部257に格納されている全サイクルに係る統計情報をリセットする。
 正規IDリスト保持部253は、各ECUが送信するフレームに関するIDのリストを格納している。図8に正規IDリスト保持部253が保持する正規IDリストの一例を示し、詳細は後述する。
 フレームルール保持部254は、不正検知部252が、フレームを受信したときに当該フレームが不正であるかどうかを判定するためのルールを格納している。図10にフレームルール保持部254に格納されるフレームルールの一例を示し、詳細は後述する。
 1サイクルルール保持部255は、不正検知部252が、サイクル単位で、不正なフレームが送信されているかを判断するための、ルールを格納している。図11に1サイクルルール保持部255に格納される1サイクルルールの一例を示し、詳細は後述する。
 全サイクルルール保持部256は、不正検知部252が、0~63の全サイクルにわたる統計量を用いることで、不正なフレームが送信されているかを判断するためのルールを格納している。図12に全サイクルルール保持部256に格納される全サイクルルールの一例を示し、詳細は後述する。
 受信履歴保持部257は、受信したフレームに関する情報(ペイロード情報、フレームの種類などのメタ情報、フレームの受信数、等)を格納している。図13A、図13B、図13Cに受信履歴保持部257に格納される受信履歴の一例を示し、詳細は後述する。
 1.6 スターカプラ300の構成図
 図6は、スターカプラ300の構成図である。スターカプラ300は、トランシーバ部301a、301b、301c、301d、301eとルーティング部302とから構成される。
 トランシーバ部301aは、バス100aから受信した物理信号を、デジタル信号に変換し、ルーティング部302へ通知する。またデジタル信号をルーティング部302から通知された場合は、通知されたデジタル信号を、物理信号へ変換し、バス100aへ転送する。
 ルーティング部302は、トランシーバ部301aから通知されたデジタル信号を、トランシーバ部301aを除くトランシーバ部301b、301c、301d、301eへ転送する。同様にトランシーバ部301bからデジタル信号を通知された場合は、トランシーバ部301bを除く、トランシーバ部に対して、デジタル信号を通知する。ルーティング部は複数のトランシーバ部から、デジタル信号を受信した場合は、最初にデジタル信号を受信したバスからの信号を、他のトランシーバ部へ通知する。
 1.7 通信用設定パラメータの一例
 図7は、通信用設定パラメータ保持部205に格納されている通信用設定パラメータの一例を示している。通信用設定パラメータとしては、通信の速度を表すボーレートが10Mbpsであることと、静的セグメントのスロットIDが1~50であること、動的セグメントのスロットIDが51~100であることを示している。また静的スロットのペイロード長が8(つまり16バイト)であることが示されている。これらの値は、クラスタ内のECU全てに共有されており、これらの値を元にFlexRayフレームの送受信を実現する。なお通信用設定パラメータの値は一例に過ぎず、別の値であっても構わない。また、ここで示したパラメータも一例に過ぎず、図7に記載のないパラメータ(例えば、各セグメントの長さや、スロットの長さ等)が含まれていてもよいし、逆に記載されているパラメータの一部が含まれていなくてもよい。
 1.8 正規IDリストの一例
 図8は、不正検知ECU250が保持する正規IDリスト保持部253に格納される正規IDリストの一例を示している。
 図では、スロットIDとCycle offset、Cycle reception、フレーム名、フレームに含まれるペイロード情報が保持されている。Cycle offsetとCycle receptionは、サイクル多重化(サイクルマルチプレキシング)と呼ばれる同じスロットIDであっても異なる内容のフレームを送受信する方法が用いられるときに対象のフレームを抽出するために必要な情報である。例えばスロットIDが99のフレームには4つのフレーム名が存在し、それぞれのフレームでカメラ情報1、カメラ情報2、カメラ情報3、カメラ情報4の異なる内容を通知する。カメラ情報1ではCycle offsetが0で、Cycle receptionが4である。これはサイクルカウンタが0からスタートし、4サイクルごとに当該フレームを送信することを意味する。つまりカメラ情報1が通知されるフレームDが送信されるのは、サイクルカウンタが、0、4、8、12、16、・・・、52、56、60のスロットIDが99のときに送信されることを示している。同様にカメラ情報2を含むフレームEは、サイクルカウンタが1、5、9、・・・53、57、61のスロットIDが99のときに送信され、カメラ情報3を含むフレームFは、サイクルカウンタが2、6、10、・・・、54、58、62のサイクルIDが99のときに送信され、カメラ情報4が含まれるフレームGは、サイクルカウンタが3、7、11、・・・、55、59、63のサイクルIDが99のときに送信される。上記のように異なるフレームを同一スロットIDで送信する方法をサイクルマルチ多重化とよぶ。
 図では、スロットIDが1であり、Cycle offsetが0、Cycle receptionが1(つまり全てのサイクルで同一フレームが送信される。)のフレームはフレーム名がAであり、フレームAのペイロードには速度に関する情報が含まれることを示している。スロットIDが2には、フレームが送信されないことを示している。スロットIDが3であり、Cycle offsetが0、Cycle receptionが2(つまりサイクルカウンタが偶数のときのみ送信される)のフレームはフレーム名がBであり、フレームBのペイロードにはハンドル角度に関する情報が含まれることを示している。スロットIDが98であり、Cycle offsetが1、Cycle receptionが2(つまりサイクルカウンタが奇数のときのみ送信される)のフレームはフレーム名がCであり、フレームCのペイロードにはギア状態に関する情報が含まれることを示している。スロットIDが99であり、Cycle offsetが0、Cycle receptionが4のフレームはフレーム名がDであり、フレームDのペイロードにはカメラ情報1に関する情報が含まれることを示している。スロットIDが99であり、Cycle offsetが1、Cycle receptionが4のフレームはフレーム名がEであり、フレームEのペイロードにはカメラ情報2に関する情報が含まれることを示している。スロットIDが99であり、Cycle offsetが2、Cycle receptionが4のフレームはフレーム名がFであり、フレームFのペイロードにはカメラ情報3に関する情報が含まれることを示している。スロットIDが99であり、Cycle offsetが3、Cycle receptionが4のフレームはフレーム名がGであり、フレームGのペイロードにはカメラ情報4に関する情報が含まれることを示している。スロットIDが100であり、Cycle offsetが0、Cycle receptionが4のフレームはフレーム名がHであり、フレームHのペイロードにはドア状態に関する情報が含まれることを示している。また、フレームAおよびBは静的セグメント内で送信される静的フレームであり、フレームCからフレームHは動的セグメント内で送信される動的フレームである。
 図9に、図8の正規IDリストの例におけるフレーム送信スケジュールを示している。横軸がスロットIDを示しており、縦軸がサイクルを示している。スロットIDとサイクルで定まるセルには、送信されるフレーム名が記載されている。図では、フレームCからフレームHは、所定のサイクルで送信されているが、当該フレームは動的フレームであるため、送信されない場合もある。
 1.9 フレームルールの一例
 図10は、不正検知ECU250のフレームルール保持部254に格納される、フレームルールの一例を示した図である。図ではフレーム名ごとに受信ルールが設定されている。動的フレームに関しては、さらにmessage IDごとに受信ルールが設定されている。message IDは動的フレームのヘッダセグメントに含まれるPreamble indicatorが1のときに有効となり、ペイロードの上位2バイトをmessage IDとして用いる。
 フレームAに関しては、静的フレームのため、message IDは存在しない。ペイロード長は8で固定であり、受信ルールとしては前回受信した速度との差分が0.5km/h以上となった場合に不正なフレームを受信したと判断する。フレームBに関しては、静的フレームのため、message IDは存在しない。ペイロード長は8で固定であり、受信ルールとしては前回受信したハンドル角度との差分が30度以上となった場合に不正なフレームを受信したと判断する。フレームCに関しては、動的フレームであるが、message IDは存在しない。ペイロード長は16であり、受信ルールとしては、停車/走行中であれば(つまりいつでも)受信する可能性があることを示している。フレームDに関しては、動的フレームであるが、message IDは存在しない。ペイロード長は32であり、受信ルールとしては、停車中であれば受信する可能性があることを示しており、つまり走行中に受信した場合に不正なフレームであると判断する。フレームEに関しては、動的フレームであるが、message IDは存在しない。ペイロード長は32であり、受信ルールとしては、停車/走行中であれば受信する可能性があることを示している。フレームFに関しては、3つのmessage IDが存在し、0x0001と0x0002と0x0004の3パターンそれぞれに対して受信ルールが定められている。message IDが0x0001のフレームはペイロード長が32であり、受信ルールとしては、停車中に受信することが正常であることを示している。message IDが0x0002のフレームはペイロード長が32であり、受信ルールとしては、停車/走行中に受信することが正常であることを示している。message IDが0x0004のフレームはペイロード長が32であり、受信ルールとしては、走行中に受信することが正常であることを示している。フレームGに関しては、動的フレームであるが、message IDは存在しない。ペイロード長は32であり、受信ルールとしては、停車/走行中であれば受信する可能性があることを示している。フレームHに関しては、動的フレームであるが、message IDは存在しない。ペイロード長は2であり、受信ルールとしては、停車中であれば受信する可能性がある。
 なお、不正検知ECU250は、受信したフレームが受信ルールに適合するかだけでなく、ペイロード長が正しいかを元に不正なフレームを判断してもよい。
 1.10 1サイクルルールの一例
 図11は、不正検知ECU250の1サイクルルール保持部255に格納される1サイクルルールの一例である。1サイクルルールでは、サイクルごとのルールが格納されている。サイクルカウンタが0のときは、動的フレーム数が20より少なく、Startup frameの数が2個より少なく、sync frameの数が2個より少なく、preamble indicatorが1となるフレームが5個より少なく、null frameの数が4個より少なく、Errorとなるフレームの数が5個より少ないことを示している。サイクルカウンタが0のときに、いずれかの条件を満たさない場合に、当該サイクルにおいて異常が発生したとして、不正を検知する。同様にサイクルカウンタが1の場合から、63の場合までの1サイクルルールが図に記載されている。
 なお、本実施の形態では、全てのサイクルにおけるルールを例示したが、全てのサイクルにおけるルールを保持しておく必要は無い。例えば、サイクルカウンタによらない1つのルールを保持しておいてもよいし、Cycle offsetとCycle receptionの組ごとに1サイクルルールを保持してもよい。これにより、1サイクルルールのメモリ数を削減することができ効果的である。
 1.11 全サイクルルールの一例
 図12は、不正検知ECU250の全サイクルルール保持部256に格納される全サイクルルールの一例である。全サイクルルールでは、フレームごとに全サイクルの統計量に対するルールが格納されている。
 フレームAに関しては、受信数が64個であり、startup frameの個数が3個より少なく、sync frameの数が64個、preamble indicatorが1であるフレームの個数が0個、null frameの個数が3個より少なく、Errorとなったフレームの数も3個より少ないことがルールとして記載されている。いずれかの条件を満たさない場合に、不正検知ECU250は、当該フレームに関する異常があったと判断して、不正を検知する。フレームBからフレームHについても、同様のルールが設定されている。
 なお、本実施の形態では、フレームごとに全サイクルにわたるルールを保持しているが、フレームごとに分ける必要は無い。例えば、全フレームにわたる統計量のルールを保持していてもよい。これにより、全サイクルルールのメモリ数を削減することができ効果的である。
 1.12 受信履歴の一例
 図13A、図13B、図13Cは、不正検知ECU250の受信履歴保持部257に格納される受信履歴の一例である。図13Aは、受信履歴の中でも、各フレームの前回受信値と車両状態を保持している例を示し、図13Bは、サイクルごとの統計量を保持している例を示し、図13Cは、フレームごとに全サイクルにおける統計量を保持している例を示している。
 図13Aは、受信履歴のうち、各フレームの前回受信値と車両状態を示した一例である。図ではフレームごとに前回受信値と受信時刻(us)が保持されている。フレームAに含まれる速度の前回受信値は40.5km/hであり、前回の受信時刻が12100usであったことを示している。フレームBに含まれるハンドル角度の前回受信値は5度であり、前回受信時刻は8100であったことを示している。フレームCに含まれるギア状態はドライブ状態であり、前回受信時刻は12400usであったことを示している。フレームDに含まれるカメラ情報1の前回受信値は、前方車両の検知を示しており、前回の受信時刻は1440usであったことを示している。フレームEに含まれるカメラ情報2の前回受信値は歩行者検知を示しており、受信時刻は5480usであったことを示している。フレームFに含まれるカメラ情報3の前回受信値はレーン検知状態を示しており、受信時刻は9520usであったことを示している。フレームGに含まれるカメラ状態4の前回受信値は、後方のカメラが未起動であることを示しており、受信時刻は13560usであることを示している。フレームHに含まれるドア状態の前回受信値は「閉」状態であることを示しており、受信時刻は1600usであることを示している。また車両状態は走行中であることを示している。車両状態は、不正検知部252が、フレームAの車両の速度が0km/hより大きい場合は、走行状態として受信履歴保持部257に格納されている車両状態を更新する。不正検知部252は、車両の速度が0km/hの場合は停止状態に車両状態を更新する。なお、本実施の形態では、受信時刻を保持しているが、受信時刻を保持しないでもよい。また、受信時刻をus単位で保持しているが、単位は何でもよい。例えばFlexRayプロトコルで用いる内部クロックから算出されるマイクロティック数を単位としてもよいし、マイクロティックによって定義されるマクロティックの個数を単位としてもよい。
 図13Bは、受信履歴のうち、サイクルごとの統計量を示した一例である。図ではサイクルごとに、動的フレームの受信数、startup frameの受信数、syncframeの受信数、preamble indicatorが1であるフレームの受信数、null frameの受信数、Errorフラグのあるフレームの受信数が保持されている。サイクルカウンタが0のときは動的フレームの受信数は10であり、startup frameの受信数は0、sync frameの受信数は1、preamble indicatorが1のフレームの受信数は0、null frameの受信数は0、Errorとなったフレームの数は1であったことを示している。サイクルカウンタが1のときは動的フレームの受信数は11であり、startup frameの受信数は0、sync frameの受信数は1、preamble indicatorが1のフレームの受信数は0、null frameの受信数は0、Errorとなったフレームの数は1であったことを示している。サイクルカウンタが2のときは動的フレームの受信数は10であり、startup frameの受信数は0、sync frameの受信数は1、preamble indicatorが1のフレームの受信数は1、null frameの受信数は0、Errorとなったフレームの数は1であったことを示している。サイクルカウンタが3のときは動的フレームの受信数は10であり、startup frameの受信数は12、sync frameの受信数は1、preamble indicatorが1のフレームの受信数は1、null frameの受信数は0、Errorとなったフレームの数は1であったことを示している。サイクルカウンタが61のときは動的フレームの受信数は10であり、startup frameの受信数は0、sync frameの受信数は1、preamble indicatorが1のフレームの受信数は1、null frameの受信数は0、Errorとなったフレームの数は1であったことを示している。サイクルカウンタが62のときは動的フレームの受信数は12であり、startup frameの受信数は0、sync frameの受信数は1、preamble indicatorが1のフレームの受信数は1、null frameの受信数は0、Errorとなったフレームの数は1であったことを示している。サイクルカウンタが63のときは動的フレームの受信数は10であり、startup frameの受信数は0、sync frameの受信数は1、preamble indicatorが1のフレームの受信数は1、null frameの受信数は0、Errorとなったフレームの数は1であったことを示している。
 なお、本実施の形態では動的フレームの受信数のみを保持していたが、静的フレームの受信数を保持してもよい。また、本実施の形態ではErrorの発生したフレームの個数を記録していたが、具体的なErrorフラグごと(シンタックスエラー、コンテンツエラー、境界エラー)に、個数を記録してもよい。
 図13Cは、受信履歴のうち、全サイクルにおける統計量をフレームごとに整理した一例である。図では、フレームごとに受信数、startup frameの受信数、syncframeの受信数、preamble indicatorが1であるフレームの受信数、null frameの受信数、Errorフラグのあるフレームの受信数が保持されている。フレームAの受信数は64であり、startup frameの受信数は0、sync frameの受信数は64、preamble indicatorが1のフレームの受信数は0、null frameの受信数は0、Errorとなったフレームの数は0であったことを示している。同様に、フレームBの受信数は32であり、startup frameの受信数は0、sync frameの受信数は0、preamble indicatorが1のフレームの受信数は0、null frameの受信数は0、Errorとなったフレームの数は15であったことを示している。フレームCの受信数は32であり、startup frameの受信数は0、sync frameの受信数は0、preamble indicatorが1のフレームの受信数は0、null frameの受信数は0、Errorとなったフレームの数は0であったことを示している。フレームDの受信数は16であり、startup frameの受信数は0、sync frameの受信数は0、preamble indicatorが1のフレームの受信数は0、null frameの受信数は0、Errorとなったフレームの数は0であったことを示している。フレームEの受信数は16であり、startup frameの受信数は0、sync frameの受信数は0、preamble indicatorが1のフレームの受信数は0、null frameの受信数は0、Errorとなったフレームの数は0であったことを示している。フレームFの受信数は16であり、startup frameの受信数は0、sync frameの受信数は0、preamble indicatorが1のフレームの受信数は16、null frameの受信数は0、Errorとなったフレームの数は0であったことを示している。フレームGの受信数は16であり、startup frameの受信数は0、sync frameの受信数は0、preamble indicatorが1のフレームの受信数は0、null frameの受信数は0、Errorとなったフレームの数は0であったことを示している。フレームHの受信数は8であり、startup frameの受信数は0、sync frameの受信数は0、preamble indicatorが1のフレームの受信数は0、null frameの受信数は0、Errorとなったフレームの数は0であったことを示している。
 なお、本実施の形態では、全サイクルにおける統計量をフレームごとに整理しているが、全フレームにわたる統計量のみを保持していてもよい。これにより使用メモリの削減につながり効果的である。また本実施の形態では、フレーム名(スロットIDと、Cycle offset、Cycle receptionの組)ごとに統計量を保持していたが、動的フレームにおけるMessage IDごとに統計量を保持していてもよい。(図13D)
 1.13 不正検知ECU250の動作(全体)
 図14は、不正検知ECU250の動作を表したフローチャートである。不正検知ECU250は、フレームを受信したかを判断する(S1001)。不正検知ECU250において、フレームを受信した場合はホワイトリストチェックを行う(S1002)。不正検知ECU250において、フレームを受信していない場合は、サイクルのスタートタイミングであるかを判断する(S1007)。
 不正検知ECU250は、ホワイトリストチェック(S1002)の後、OKであった場合に受信したフレーム不正検知処理を実行する(S1003)。その後、不正検知ECU250は、受信履歴保持部257に格納される受信履歴を更新し(S1004)、不正検知ECU250は、処理を終了する。ホワイトリストチェック(S1002)がNGであった場合は、不正検知ECU250は、処理を終了する。
 不正検知ECU250は、サイクルのスタートであることを判断(S1005)した場合は1サイクル不正検知処理(S1006)を実行する。そうでない場合は、不正検知ECU250は、S1001の処理に戻る。
 不正検知ECU250は、1サイクル不正検知処理(S1006)後に、サイクルカウンタが0であるかを判断する(S1007)。サイクルカウンタが0であった場合は、不正検知ECU250は、全サイクル不正検知処理(S1008)を実行し、不正検知ECU250は、受信履歴保持部257に格納されているサイクルの全サイクルの統計情報をリセットする(S1009)。サイクルカウンタが0でない場合は、不正検知ECU250は、処理を終了する。
 1.14 不正検知ECU250の動作(ホワイトリストチェック)
 図15は、不正検知ECU250の動作のうちホワイトリストチェック(S1002)の詳細を表したフローチャートである。不正検知ECU250は図14のS1001でフレームを受信したことを判断すると、フレームに含まれるスロットIDを抽出する(S1101)。スロットIDが正規IDリスト保持部253に格納される正規IDリストに存在しない場合(S1102でN)は、不正検知ECU250は、不正なフレームを検出した(S1106)として処理を終了する(ホワイトリストNG)。正規IDリストに存在する場合(S1102でY)は、不正検知ECU250は、フレームに含まれるサイクルカウンタを抽出する(S1103)。
 不正検知ECU250は、正規IDリスト保持部253に格納されている正規IDリスト内の対応するスロットIDにおける、Cycle offsetとCycle receptionの組み合わせを全て抽出する(S1104)。その後、不正検知ECU250は、抽出した全ての組み合わせに対して、フレームから抽出したサイクルカウンタをCycle offsetで減算した値をCycle receptionで割った余りが0であるかを確認する(S1105)。もし結果が0である組み合わせが存在しない場合は不井なフレームを検出したとして(S1106)、不正検知ECU250は、処理を終了する(ホワイトリストNG)。結果が0である組み合わせが存在する場合は、不正検知ECU250は、そのまま処理を終了する(ホワイトリストOK)。
 1.15 不正検知ECU250の動作(フレーム不正検知処理)
 図16は、不正検知ECU250の動作のうちフレーム不正検知処理(S1003)の詳細を表したフローチャートである。まず不正検知ECUは受信したフレームが動的フレームであるかを判断する(S1201)。動的フレームである場合は、不正検知ECU250は、フレームに含まれるPreamble indicatorが1であるかを確認する(S1202)。受信したフレームが動的フレームでなく、静的フレームである場合は、受信履歴保持部257に格納される対応する受信履歴に基づき、不正検知ECU250は、フレームルール保持部254に格納される対応するルールに適合するかを判断する。(S1206)。
 S1202において、Preamble indicatorが1である場合は、Message IDがフレームのペイロード部に含まれているため、不正検知ECU250は、Message IDを抽出する(S1203)。Message IDを抽出した後と、Preamble indicatorが0であった場合は、不正検知ECU250は、受信履歴保持部257に格納されている車両状態が、フレームルール保持部254に格納されている、対応するフレームの受信条件に合致するかを確認する(S1204)。受信条件に合致する(フレームルールに適合する)場合は、不正検知ECU250は、処理を終了する。そうでない場合は、不正検知ECU250は、不正フレームを検出(S1205)して処理を終了する。
 S1206において受信した静的フレームが、対応するルールに適合しない場合は、不正検知ECU250は、不正なフレームを検出して処理を終了する。ルールに適合する場合は、不正検知ECU250は、そのまま処理を終了する。
 2. その他変形例
 なお、本開示を上記各実施の形態に基づいて説明してきたが、本開示は、上記各実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
 (1)上記の実施の形態では、スター型のネットワークトポロジにおける例を示しているがネットワークトポロジを限るものではない。例えば、バス型、スター型とバス型のハイブリッドなどのネットワークトポロジを取りうる。
 (2)上記の実施の形態では、不正検知部は不正検知ECUにのみ存在したが、各ECU上に存在してもよい。これにより、不正なフレームを各ECUが判断し、不正なフレームに基く制御を抑制することができ効果的である。さらに、不正検知部を他のネットワークと接続されるゲートウェイやドメインコントローラ上に配置することで、不正なフレームを他のネットワークへ転送することを防ぐことができ効果的である。
 (3)上記の実施の形態では、不正なフレームを検出して終了しているが、不正なフレームを検出したとき対応はこれに限らない。例えば不正なフレームに関する、ヘッダ情報や、ペイロード値、受信時刻等をログとして保存しておいてもよいし、他のECUに不正なフレームの通知を行ってもよいし、外部のサーバへ当該車両の不正発生を通知してもよいし、運転者へ車載ネットワークに不正が発生したことを通知してもよい。また不正検知部がゲートウェイやドメインコントローラ上に配置されている場合は、当該不正フレームを他のネットワークに転送しない、転送する際に不正なフレームであることを示す情報を付加して転送する等の処理を実行してもよい。
 (4)上記の実施の形態では、不正検知ECUがフレーム不正検知処理、1サイクル不正検知処理、全サイクル不正検知処理の3つ不正検知処理を行っていたが、3つの不正検知処理を全て行う必要は無い。少なくともひとつ行えばよく、いずれか2つを組み合わせて実行してもよい。また、初期状態では全サイクル不正検知処理のみを実行しており、全サイクル不正検知処理にて、不正なフレームが送信されていることを検知した場合にのみ、当該フレームに対するフレーム不正検知処理を実行するようにしてもよい。これにより、不正なフレームが検知されていない状況では、処理負荷を軽減しつつ不正検知処理を行い、不正なフレームが検出された場合には、より詳細な不正を検知することが可能となり、処理負荷軽減と安全性向上のバランスをとることが可能となり効果的である。あるいは全サイクル不正検知処理にて、不正なフレームが送信されていることを検知した場合にのみ、以降の当該フレームの情報の記録の開始、外部サーバへの通知を実行してもよい。これにより車内で検知した不正に関する、詳細分析を外部で行いやすくなり効果的である。
 (5)上記の実施の形態では、フレームルール、1サイクルルール、全サイクルルールを平文で保持していたが、暗号化して保持していてもよい。
 (6)上記の実施の形態では、サイクルの開始時にサイクル不正検知を行っていたが、ネットワークアイドルタイムの開始時に、サイクルの不正検知を行っても良い。これにより、フレームの送受信が発生しないタイミングにおいて、不正検知処理を実行することが可能となり、ECUの処理負荷が分散され効果的である。
 (7)上記の実施の形態では、フレームルール保持部に格納される受信ルールは、各フレーム1つであったが、1つ以上あってもよい。また受信ルールが存在しなくてもよい。これにより、フレームの重要度に応じた、チェックが可能となり、車載ネットワークの安全性を高めることに効果的である。
 (8)上記の実施の形態では、フレームルール保持部に格納される受信ルールは、動的フレームの場合は、受信時の車両状態が、設定されていたが、車両状態に限るものではない。例えば、前回値との変化量に関するルールを設定してもよい。
 (9)上記の実施の形態では、フレームルール保持部に格納される受信ルールは、Message IDごとに設定されていたが、フレーム名ごとに設定されていてもよい。これにより、ルールを効率的に保持することでメモリ削減につながり効果的である。
 (10)上記の実施の形態では、1サイクルルール保持部は、1サイクルの統計情報に関するルールが保持されていたが、1サイクルでなく、任意のサイクル数を定めてもよい。
 (11)上記の実施の形態では、正規IDリストに、フレーム名を保持していたが、フレーム名は保持していなくてもよい。
 (12)上記の実施の形態では、正規IDリスト内に、1つのフレームに対して、1つのペイロード情報が保持されていたが、1つ以上保持されていてもよく、ペイロード情報が無くてもよい。またペイロード情報として、速度などの各信号のペイロード上のフィールドを示す情報(フィールドの位置、長さ、単位等)が含まれていてもよい。
 (13)上記の実施の形態では、1サイクルルール保持部に格納される、1サイクルルールの各閾値は固定であったが、車両の走行状態に応じて可変であってもよい。例えば動的フレームの受信数は、走行状態に応じて変わりうるため、走行中は閾値を増加(減少)させてもよい。
 (14)上記の実施の形態では、1サイクルルール不正検知処理、および全サイクルルールの各統計量は独立に評価され、いずれかの統計量において適合しないものがあった場合に不正とするルールを保持していたが、ルールの保持方法はこれに限らない。例えば、各統計量を特徴量として、正常状態を学習させたSupport Vector Machine等の識別器により、不正を判断してもよい。また統計量を主成分分析等の手法を用いて次元を削減させた上で、Local Outlier Factorなどの外れ値検出手法を用いて不正を判断してもよい。これにより、各統計量は閾値の不正の閾値以下であったとしても、不正な統計量の組み合わせを検知することが可能となり効果的である。
 (15)上記の実施の形態では、1サイクルルールおよび全サイクルルールの統計量の閾値は予め与えられていたが、車両走行中に、正常状態を学習してもよい。例えば、不正検知ECUの電源が入ってから、所定の時間分のデータから、統計量を学習してもよい。これにより、運転者や、車両モデル、走行環境に合わせたルールの修正が可能となり、効果的である。
 (16)上記の実施の形態では、受信履歴の前回受信値をフレーム名ごとに1信号だけ保持していたが、複数信号保持していてもよいし、ペイロード値をそのまま保持していてもよい。
 (17)上記の実施の形態では、受信履歴に含まれる車両状態は、走行中か停止中の2状態のみであったが、車両状態はこの2状態に限らない。例えば、イグニッションオン状態、アクセサリーオン状態、低速走行状態、高速走行状態、ハンドル操舵状態、ギア状態、やこれらを組み合わせた状態を取りうる。特に動的フレームの送信条件と係る車両状態を選択することで、精度よく不正なフレームを検知できるようになり効果的である。
 (18)上記実施の形態では、フレーム不正検知処理、1サイクル不正検知処理、全サイクル不正検知処理の結果、不正なフレームの送信を検知のみであったが、それぞれの処理に応じて、不正検知ログの残し方や、対処方法を変化させてもよい。例えば、フレーム不正検知の結果、不正と判定されたフレームについては、当該フレームに係る情報をログに残し、外部サーバへ通知する、さらに不正検知部がゲートウェイ等に実装されている場合は、当該フレームを転送しない等の処理を行ってもよい。これにより不正なフレームの送信がフレーム単位で判断できる場合は、より詳細な情報を残し、後の攻撃原因の解析や、当該フレームを利用しない等の具体的な対処が行え、効果的である。
 1サイクル不正検知処理で、不正なフレームが送信されていると判定された場合は、当該サイクルの統計量の情報をログとして残し、外部サーバへ通知する。1サイクル不正検知処理では、サイクル単位で攻撃の発生時刻を把握することができ、効果的である。
 全サイクル不正検知処理で、不正なフレームが送信されていると判定された場合は、フレーム名ごとに統計量を整理し、異常な統計量を含むフレームに関してログを残し、外部サーバへ通知する。これにより、単一のフレームでは、判断できなかったフレームの異常を複数サイクルにわたり観測することで、フレームの種類のレベルで判断することが可能となり、人手による解析時に、攻撃の原因把握を容易になり効果的である。
 (19)上記の実施の形態では、全サイクルルールは、各フレームの受信数に係る統計量であったが、受信数に限らない。例えば、ペイロードに含まれる信号値の総変化量や、平均変化量、分散等をルールとして保持していてもよい。
 (20)上記の実施の形態では、動的フレーム、静的フレームを併せたサイクルルールを保持していたが、静的フレームと、動的フレームに関するサイクルルールを分けて保持してもよい。これにより、フレームを安定的に受信する静的フレームの統計量と、フレームの受信が不安定な動的フレームの統計量をもとに、それぞれの不正発生を判断することができ、より正確に不正なフレームの送信を検知することが可能となる。
 (21)上記の実施の形態では、車載ネットワークとしてFlexRayプロトコルを用いていたが、これに限るものではない。例えば、CAN、CAN-FD(CAN with Frexible Data Rate)、Ethernet、LIN(Local Interconnect Network)、MOST(Media Oriented Systems Transport)などを用いてもよい。あるいはこれらのネットワークをサブネットワークとして、組み合わせたネットワークであってもよい。特にタイムトリガー方式を採用しているネットワークに対して有効である。
 (22)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 (23)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
 (24)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
 (25)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
 また、本開示は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
 また、本開示は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
 また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
 また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
 (26)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
 本開示は、車載ネットワークに流れるフレームを観測し、不正なフレームを検出することで、安全な車載ネットワークシステムを提供する。これにより車載ネットワークシステム全体として、安全な状態を維持することができる。
 10 車載ネットワークシステム
 100a、100b、100c、100d、100e バス
 200a、200b、200c、200d ECU
 201 フレーム送受信部
 202 フレーム解釈部
 203 外部機器制御部
 204 フレーム生成部
 205 通信用設定パラメータ保持部
 210 ハンドル
 220 ギア
 230 ブレーキ
 240 カメラ
 250 不正検知ECU
 252 不正検知部
 253 正規IDリスト保持部
 254 フレームルール保持部
 255 1サイクルルール保持部
 256 全サイクルルール保持部
 257 受信履歴保持部
 300 スターカプラ
 301a、301b、301c、301d、301e トランシーバ部
 302 ルーティング部

Claims (9)

  1.  タイムスロットに基くタイムトリガー型の通信方式である車載ネットワークにおける不正検知電子制御装置であって、前記車載ネットワークには、1以上の電子制御装置が接続され、前記各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信し、
     前記不正検知電子制御装置は、前記フレームを受信するフレーム受信部と、不正なフレームの受信を検知する不正検知部と、を備え、
     前記不正検知部は、複数の前記タイムスロットから構成されるサイクルの繰り返し回数と、前記フレームに含まれるスロットIDとに基いて、不正なフレームの受信を判断する、
     ことを特徴とする不正検知電子制御装置。
  2.  前記通信方式は、FlexRayプロトコルであり、前記サイクルの繰り返し回数はFlexRayプロトコルにおけるサイクルカウンタである、
     ことを特徴とする請求項1記載の不正検知電子制御装置。
  3.  前記不正検知部は、1以上の所定のサイクル数の間に受信した保護対象フレームに含まれる情報の統計量が、前記所定のサイクル数の間に受信した保護対象フレームに含まれる情報の統計量の範囲を示したサイクルルールから逸脱しているかを比較することによって不正なフレームが送信されたことを検知するサイクル不正検知部を備える、
     ことを特徴とする請求項2記載の不正検知電子制御装置。
  4.  前記保護対象フレームは、受信したフレームに含まれるスロットIDが所定のスロットIDに合致し、かつ、受信したフレームに含まれるサイクルカウンタが、前記サイクルカウンタから所定のオフセット値を減算し、所定の受信サイクルで割った余りが0となる関係性を満たす、
     ことを特徴とする請求項3記載の不正検知電子制御装置。
  5.  前記統計量は、フレームの受信数、Syncフレームの受信数、nullフレームの受信数、Preamble indicatorが1であるフレームの受信数、エラーが発生しているフレームの受信数、Startupフレームの受信数のうち、少なくとも1つ以上を含む、
     ことを特徴とする請求項3または4記載の不正検知電子制御装置。
  6.  前記不正検知部は、さらに、フレーム受信ごとに、当該フレームが不正であるかを判断する不正フレーム検知部を備え、
     不正フレーム検知部は、前記サイクル不正検知部で、不正なフレームが送信されたことを検知した以降に実行される、
     ことを特徴とする請求項5記載の不正検知電子制御装置。
  7.  前記サイクルは、予め定められたスケジュールに基いて常にフレームの送受信を行う静的セグメントと、予め定められたスケジュールに基いて、必要に応じてフレームの送受信を行う動的セグメントを備え、
     前記不正検知部は、前記動的セグメント内で受信した不正な動的フレームを、前記動的フレームを受信する以前に受信したフレームから判定される車両走行状態と、前記動的フレームに含まれる情報を用いて判断する、
     ことを特徴とする請求項1または2記載の不正検知電子制御装置。
  8.  前記不正検知部は、所定スロットIDと所定の関係性を満たすサイクルカウンタを含む前記動的フレームを受信したタイミングにおける、前記車両走行状態が、所定の状態でない場合に、受信した前記動的フレームを不正なフレームであると判断する、
     ことを特徴とする請求項7記載の不正検知電子制御装置。
  9.  タイムスロットに基くタイムトリガー型の通信方式である車載ネットワークにおける不正検知方法であって、前記車載ネットワークには、1以上の電子制御装置が接続され、前記各電子制御装置は予め定められた所定のタイムスロット内でフレームを送受信し、
     前記不正検知方法は、前記フレームを受信するフレーム受信ステップと、不正なフレームの受信を検知する不正検知ステップと、を備え、
     前記不正検知ステップは、複数の前記タイムスロットから構成されるサイクルの繰り返し回数と、前記フレームに含まれるスロットIDとに基いて、不正なフレームの受信を判断する、
     ことを特徴とする不正検知方法。
PCT/JP2018/028290 2018-07-27 2018-07-27 不正検知方法および不正検知電子制御装置 WO2020021713A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
PCT/JP2018/028290 WO2020021713A1 (ja) 2018-07-27 2018-07-27 不正検知方法および不正検知電子制御装置
PCT/JP2019/029251 WO2020022444A1 (ja) 2018-07-27 2019-07-25 不正検知方法及び不正検知装置
EP19840645.6A EP3832954B1 (en) 2018-07-27 2019-07-25 Fraud detection method and fraud detection device
CN201980006600.XA CN111492625B (zh) 2018-07-27 2019-07-25 非法检测方法以及非法检测装置
JP2020532475A JP7232832B2 (ja) 2018-07-27 2019-07-25 不正検知方法及び不正検知装置
US17/082,431 US20210044610A1 (en) 2018-07-27 2020-10-28 Anomaly detection method and anomaly detection device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/028290 WO2020021713A1 (ja) 2018-07-27 2018-07-27 不正検知方法および不正検知電子制御装置

Publications (1)

Publication Number Publication Date
WO2020021713A1 true WO2020021713A1 (ja) 2020-01-30

Family

ID=69180727

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2018/028290 WO2020021713A1 (ja) 2018-07-27 2018-07-27 不正検知方法および不正検知電子制御装置
PCT/JP2019/029251 WO2020022444A1 (ja) 2018-07-27 2019-07-25 不正検知方法及び不正検知装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/029251 WO2020022444A1 (ja) 2018-07-27 2019-07-25 不正検知方法及び不正検知装置

Country Status (5)

Country Link
US (1) US20210044610A1 (ja)
EP (1) EP3832954B1 (ja)
JP (1) JP7232832B2 (ja)
CN (1) CN111492625B (ja)
WO (2) WO2020021713A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3799364A4 (en) * 2018-05-23 2021-07-14 Panasonic Intellectual Property Corporation of America COMMUNICATION CONTROL DEVICE, ELECTRONIC CONTROL UNIT FOR DETECTING UNAUTHORIZED ACCESS, MOBILITY NETWORK SYSTEM, COMMUNICATION CONTROL METHODS, METHODS FOR DETECTING UNAUTHORIZED PROGRAM ACCESS
US11700270B2 (en) * 2019-02-19 2023-07-11 The Aerospace Corporation Systems and methods for detecting a communication anomaly
JP7234832B2 (ja) * 2019-07-03 2023-03-08 株式会社デンソー 電子制御装置
JP7264079B2 (ja) * 2020-02-05 2023-04-25 トヨタ自動車株式会社 感情推定装置、方法、プログラムおよび車両
DE102021112328A1 (de) * 2021-05-11 2022-11-17 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Erkennen einer Manipulation einer Nachricht eines Bussystems eines Fahrzeugs durch ein Steuergerät eines Fahrzeugs, computerlesbares Medium, System, und Fahrzeug

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008509584A (ja) * 2004-08-05 2008-03-27 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング フレックスレイ(FlexRay)通信コントローラ
JP2009038477A (ja) * 2007-07-31 2009-02-19 Denso Corp 診断装置
JP2011193373A (ja) * 2010-03-16 2011-09-29 Hitachi Automotive Systems Ltd 通信装置、通信システム
JP6279174B1 (ja) * 2017-02-28 2018-02-14 三菱電機株式会社 車両通信監視装置、車両通信監視方法および車両通信監視プログラム
WO2018105330A1 (ja) * 2016-12-06 2018-06-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報処理方法、情報処理システム、及びプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259815A (ja) * 1999-03-04 2000-09-22 Asahi Optical Co Ltd 画像入力装置
CN101753208B (zh) * 2008-11-29 2013-07-10 华为数字技术(成都)有限公司 一种节点异常检测方法、装置及存储设备
JP5405927B2 (ja) * 2009-07-15 2014-02-05 スパンション エルエルシー ネットワークノード
JP5522160B2 (ja) * 2011-12-21 2014-06-18 トヨタ自動車株式会社 車両ネットワーク監視装置
JP5664799B2 (ja) 2011-12-22 2015-02-04 トヨタ自動車株式会社 通信システム及び通信方法
CN106105105B9 (zh) * 2014-04-03 2020-01-24 松下电器(美国)知识产权公司 网络通信系统、不正常检测电子控制单元以及不正常应对方法
EP3133774B1 (en) * 2014-04-17 2020-11-25 Panasonic Intellectual Property Corporation of America Vehicle-mounted network system, abnormality detection electronic control unit and abnormality detection method
WO2016088304A1 (ja) * 2014-12-01 2016-06-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法
JP6594732B2 (ja) * 2015-01-20 2019-10-23 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正フレーム対処方法、不正検知電子制御ユニット及び車載ネットワークシステム
CN104869014B (zh) * 2015-04-24 2019-02-05 国家电网公司 一种以太网故障定位与检测方法
JP6531011B2 (ja) * 2015-09-04 2019-06-12 日立オートモティブシステムズ株式会社 車載ネットワーク装置
JP6423402B2 (ja) * 2015-12-16 2018-11-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America セキュリティ処理方法及びサーバ
JP6684690B2 (ja) * 2016-01-08 2020-04-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008509584A (ja) * 2004-08-05 2008-03-27 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング フレックスレイ(FlexRay)通信コントローラ
JP2009038477A (ja) * 2007-07-31 2009-02-19 Denso Corp 診断装置
JP2011193373A (ja) * 2010-03-16 2011-09-29 Hitachi Automotive Systems Ltd 通信装置、通信システム
WO2018105330A1 (ja) * 2016-12-06 2018-06-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報処理方法、情報処理システム、及びプログラム
JP6279174B1 (ja) * 2017-02-28 2018-02-14 三菱電機株式会社 車両通信監視装置、車両通信監視方法および車両通信監視プログラム

Also Published As

Publication number Publication date
WO2020022444A1 (ja) 2020-01-30
EP3832954A4 (en) 2021-09-08
EP3832954B1 (en) 2022-12-28
CN111492625A (zh) 2020-08-04
JP7232832B2 (ja) 2023-03-03
JPWO2020022444A1 (ja) 2021-08-02
CN111492625B (zh) 2022-07-01
US20210044610A1 (en) 2021-02-11
EP3832954A1 (en) 2021-06-09

Similar Documents

Publication Publication Date Title
WO2020021713A1 (ja) 不正検知方法および不正検知電子制御装置
EP3659868B1 (en) Abnormality detection device, and abnormality detection method
US10999248B2 (en) Information processing method, information processing system, and non-transitory computer-readable recording medium storing a program
JP7027592B2 (ja) ゲートウェイ装置、方法及び車載ネットワークシステム
EP3726782B1 (en) Detecting unauthorized messages in a vehicle network
US10902109B2 (en) Misuse detection method, misuse detection electronic control unit, and misuse detection system
EP3358788B1 (en) Illegality detection electronic control unit, vehicle onboard network system, and communication method
EP3128699B1 (en) Network communication system, fraud detection electronic control unit and fraud handling method
EP3142288A1 (en) In-car network system, electronic control unit and update processing method
WO2019216306A1 (ja) 異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法
WO2019021923A1 (ja) ネットワーク監視器、ネットワーク監視方法およびプログラム
US11909748B2 (en) Anti-fraud control system, monitoring device, and anti-fraud control method
JPWO2019193786A1 (ja) ログ出力方法、ログ出力装置及びプログラム
CN103023713A (zh) 测试具有中心总线监护器的通信网络的系统和方法
JP2019146145A (ja) 通信装置、通信方法及びプログラム
CN115580471A (zh) 不正当检测方法、不正当检测装置以及存储介质
WO2020021715A1 (ja) 不正対処方法、不正対処装置および通信システム
WO2020021714A1 (ja) 不正防止方法およびセキュアスターカプラ
CN114731301A (zh) 决定方法、决定系统以及程序
WO2018020833A1 (ja) フレーム伝送阻止装置、フレーム伝送阻止方法及び車載ネットワークシステム
WO2017056395A1 (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: 18927915

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18927915

Country of ref document: EP

Kind code of ref document: A1