WO2017061079A1 - セキュリティ装置、攻撃検知方法及びプログラム - Google Patents

セキュリティ装置、攻撃検知方法及びプログラム Download PDF

Info

Publication number
WO2017061079A1
WO2017061079A1 PCT/JP2016/004335 JP2016004335W WO2017061079A1 WO 2017061079 A1 WO2017061079 A1 WO 2017061079A1 JP 2016004335 W JP2016004335 W JP 2016004335W WO 2017061079 A1 WO2017061079 A1 WO 2017061079A1
Authority
WO
WIPO (PCT)
Prior art keywords
inspection
frame
unit
parameter
check
Prior art date
Application number
PCT/JP2016/004335
Other languages
English (en)
French (fr)
Inventor
前田 学
安齋 潤
良浩 氏家
正人 田邉
剛 岸川
Original Assignee
パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2016153816A external-priority patent/JP6173541B2/ja
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority to CN201680021041.6A priority Critical patent/CN107534560A/zh
Priority to EP16853238.0A priority patent/EP3361673B1/en
Priority to EP20202050.9A priority patent/EP3783859A1/en
Publication of WO2017061079A1 publication Critical patent/WO2017061079A1/ja
Priority to US15/880,769 priority patent/US10931634B2/en
Priority to US15/940,200 priority patent/US10193859B2/en
Priority to US17/152,286 priority patent/US11336618B2/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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • 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/44Star or tree networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/36Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with means for detecting characters not meant for transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • 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

Definitions

  • This disclosure relates to a technique for detecting an attack frame, which is an unauthorized frame transmitted in a network in which an electronic control unit mounted on a vehicle or the like communicates.
  • ECUs electronice control units
  • in-vehicle network A network connecting these ECUs.
  • ISO11898-1 A network connecting these ECUs.
  • CAN Controller Area Network
  • the communication path is a bus composed of two wires, and the ECU connected to the bus is called a node.
  • Each node connected to the bus transmits and receives a message called a frame.
  • the transmission node transmits an ID called a message ID for each frame (that is, sends a signal to the bus), and each reception node is determined in advance. Only the message ID received (that is, the signal is read from the bus).
  • each of a large number of ECUs exchanges various frames.
  • an ECU having a function of communicating with the outside is attacked from the outside and an illegal message (attack frame) can be transmitted to the CAN bus
  • the ECU for example, sends it to another ECU.
  • An attack such as spoofing and sending a frame becomes possible, which makes it possible to control the vehicle illegally.
  • a technique for detecting and defending against such an attack a technique for performing an attack (detection of fraud) by comparing a data reception interval with a predetermined period is known (see Patent Document 1).
  • the present disclosure provides a security device that can detect attack frames by adapting to various and variable attacks.
  • the present disclosure provides an attack detection method capable of detecting an attack frame by adapting to various and variable attacks, and a program for causing a security device to perform processing related to detection of an attack frame.
  • a security device is a security device connected to one or a plurality of buses, a reception unit that receives a frame from one bus, and a test parameter that defines a test content for the frame
  • a holding unit that holds the data
  • an update unit that updates the inspection parameter held by the holding unit when a predetermined condition related to the frame received by the receiving unit is satisfied, and the holding unit holds
  • a security device comprising: an inspection unit that performs an inspection related to a determination as to whether or not a frame received by the reception unit is an attack frame based on an inspection parameter.
  • a recording medium such as an apparatus, a system, an integrated circuit, a computer program, or a computer-readable CD-ROM.
  • the apparatus, system, method, computer program, and You may implement
  • the inspection parameter used for the inspection of whether or not it is an attack frame can be updated according to the received frame, it is possible to appropriately detect the attack frame against various and changeable attacks.
  • FIG. 1 is a diagram illustrating an overall configuration of an in-vehicle network system according to Embodiment 1.
  • FIG. It is a figure which shows the format of the data frame prescribed
  • 2 is a configuration diagram of a gateway according to Embodiment 1.
  • FIG. It is a figure which shows an example of a reception ID list.
  • 3 is a configuration diagram of a fraud detection processing function group according to Embodiment 1.
  • FIG. It is a figure which shows an example of a structure of the check part of a fraud detection processing function group, and a check parameter holding part.
  • FIG. 1 is a configuration diagram of an ECU according to Embodiment 1.
  • FIG. It is a flowchart which shows an example of the attack detection process by a fraud detection process function group. It is a flowchart which shows an example of operation
  • 6 is a configuration diagram of a gateway according to a modification of the first embodiment.
  • FIG. 3 is a block diagram illustrating a configuration related to attack detection in the gateway according to Embodiment 1.
  • a security device is a security device connected to one or a plurality of buses, a reception unit that receives a frame from one bus, and a test parameter that defines a test content for the frame
  • a holding unit that holds the data
  • an update unit that updates the inspection parameter held by the holding unit when a predetermined condition related to the frame received by the receiving unit is satisfied, and the holding unit holds
  • a security device comprising: an inspection unit that performs an inspection related to a determination as to whether or not a frame received by the reception unit is an attack frame based on an inspection parameter.
  • the security device is mounted on a vehicle, and the vehicle is mounted with a plurality of electronic control units that exchange frames according to a CAN (Controller Area Network) protocol via the one or more buses. It is also good. As a result, when an attack frame is transmitted in an in-vehicle network conforming to CAN for transferring frames between electronic control units (ECUs), the attack frame can be appropriately detected.
  • CAN Controller Area Network
  • the security device may further include a processing unit that performs processing according to the inspection result by the inspection unit so as to suppress the influence of the attack frame on one or more of the electronic control units. This makes it possible to defend against the attack frame (suppress the influence of the attack frame on the ECU).
  • the holding unit holds a plurality of inspection parameters that define different inspection contents for a frame
  • the update unit has a plurality of predetermined conditions for the frame received by the receiving unit.
  • Each of the plurality of inspection parameters held by the holding unit is updated according to a check result corresponding to each condition for determining whether or not each is satisfied
  • the inspection parameters to be determined may be determined and updated.
  • the frame is a data frame including an ID field for storing an ID, a DLC (Data Length Code), and a data field
  • some of the plurality of check functions of the updating unit may An ID check function for performing the determination, a DLC check function for performing the determination on the value of the DLC, and a transmission cycle check function for performing the determination on a transmission cycle that is a time interval in which two frames having the same ID are transmitted.
  • a transmission frequency check function for performing the determination on a transmission frequency which is a frequency at which one or more frames having the same ID are transmitted within a predetermined unit time, and the value of the data stored in the data field
  • the inspection parameters are an ID inspection parameter related to the inspection of the ID value, a DLC inspection parameter related to the inspection of the DLC value, a transmission period inspection parameter related to the transmission period inspection, and an inspection of the transmission frequency.
  • individual inspections for detecting an attack frame can be performed based on the contents of each field of the frame or the transmission cycle and frequency of the frame, and update of inspection parameters such as threshold values used for the individual inspections. Can be performed based on the contents of each field of the frame or the transmission period, frequency, etc. of the frame.
  • the determination may be performed with reference to the ID stored in the ID field of the frame received by the reception unit.
  • the inspection parameter can be updated according to the determination result based on the ID (message ID).
  • one of the plurality of check functions of the update unit is the transmission cycle check function, and in the transmission cycle check function, the reception interval of two frames having the same ID is within a predetermined allowable range.
  • the update unit determines one of the plurality of inspection parameters when the transmission cycle check function determines that the condition is satisfied. It may be updated.
  • the inspection parameter is updated according to the determination result based on the transmission period of the frame. For example, when an attack frame that acts to disturb the transmission period is transmitted, the transmission period is abnormal.
  • the plurality of inspection parameters held by the holding unit include the transmission frequency inspection parameter, the transmission frequency inspection parameter includes a threshold value indicating an upper limit of an allowable range of the transmission frequency, and the inspection unit
  • the transmission frequency inspection parameter includes a threshold value indicating an upper limit of an allowable range of the transmission frequency
  • the inspection unit uses the transmission cycle check function to determine the condition.
  • the threshold value in the transmission frequency inspection parameter may be updated.
  • the transmission frequency inspection parameter related to the transmission frequency is updated according to the determination result based on the transmission period of the frame.
  • the transmission period By updating the transmission frequency inspection parameter to be useful for detecting attack frames based on the fact that the error is abnormal (for example, lowering the upper limit value indicated by the transmission frequency inspection parameter), the attack frame can be detected appropriately. there is a possibility.
  • the plurality of inspection parameters held by the holding unit include the data inspection parameter, and the data inspection parameter has a threshold value indicating an upper limit of an allowable range of change of the data stored in the data field.
  • the inspection unit determines that the frame is an attack frame when a change in the data stored in the data field related to the frame received by the reception unit exceeds the threshold in the data inspection parameter,
  • the update unit may update the threshold value in the data inspection parameter to a smaller value when the transmission cycle check function determines that the condition is satisfied.
  • the data inspection parameter regarding the upper limit of the allowable range of data change is updated according to the determination result based on the transmission cycle of the frame.
  • the data inspection parameter is detected based on detection of an abnormality in the transmission cycle. There is a possibility that an attack frame can be detected appropriately by changing the upper limit of the allowable range of data change in the above.
  • one of the plurality of check functions included in the update unit is the transmission frequency check function, and the transmission frequency check function includes the transmission frequency when the transmission frequency exceeds an upper limit of a predetermined allowable range. It is determined that the condition corresponding to the check function is satisfied, and the plurality of inspection parameters held by the holding unit include the transmission cycle inspection parameter, and the transmission cycle inspection parameter indicates an allowable range of the transmission cycle.
  • the update unit may include a threshold value and update the threshold value in the transmission cycle inspection parameter when the transmission frequency check function determines that the condition is satisfied.
  • the transmission cycle inspection parameter regarding the allowable range of the transmission cycle is updated according to the determination result based on the transmission frequency of the frame. For example, the transmission cycle inspection parameter is detected based on detection of an abnormality in the transmission frequency. There is a possibility that an attack frame can be detected appropriately by changing the permissible range of the transmission cycle in Narrow.
  • one of the plurality of check functions included in the update unit is the transmission frequency check function
  • the transmission frequency check function includes the transmission frequency when the transmission frequency exceeds an upper limit of a predetermined allowable range. It is determined that the condition corresponding to the check function is satisfied, and each of the plurality of inspection parameters held by the holding unit is any of the DLC inspection parameter, the transmission cycle inspection parameter, and the data inspection parameter.
  • the DLC check parameter includes a threshold value indicating an allowable range of the DLC value
  • the transmission cycle check parameter includes a threshold value indicating the allowable range of the transmission cycle
  • the data check parameter includes the data A threshold value indicating a permissible range of the value of the transmission frequency check unit, wherein the update unit relates to one frame.
  • the threshold value in the plurality of inspection parameters used as the inspection content of the frame having the same ID as the ID of the one frame is made narrower in the permissible range. It is good also as updating to.
  • the threshold indicating the allowable range of the DLC value is, for example, a threshold indicating the upper limit and the lower limit of the DLC value.
  • the threshold indicating the allowable range of the transmission cycle is, for example, a threshold indicating the upper limit and the lower limit of the allowable range.
  • the threshold value indicating the allowable range of values is, for example, a threshold value indicating the upper limit and the lower limit of the data value.
  • the threshold indicating the permissible range as a normal frame with various inspection parameters is updated so as to narrow the permissible range based on detection of an abnormality in the transmission frequency of the frame. Therefore, it can be possible to efficiently check whether the attack frame is an attack frame or not according to the possibility that the attack frame has been transmitted (check result of transmission frequency).
  • the inspection unit may perform the inspection after the reception unit receives the ID field of the frame and before the portion following the data field is received.
  • the inspection can be performed at a timing at which determination based on the message ID is possible and at which the attack frame can be protected (disabled) by transmitting an error frame. For this reason, appropriate defense against an attack may be possible.
  • the security device further includes any one of the plurality of inspection parameters according to the determination result at a timing when the determination result of the check function is obtained for each of the plurality of check functions of the update unit.
  • the update unit further determines that the frame is an attack frame when the predetermined condition related to the frame received by the reception unit is satisfied
  • the processing unit further includes: Processing for a frame determined as an attack frame by the update unit may be performed so as to suppress an influence of the attack frame on one or more electronic control units.
  • Processing for a frame determined as an attack frame by the update unit may be performed so as to suppress an influence of the attack frame on one or more electronic control units.
  • An attack detection method is an attack detection method used in an in-vehicle network system in which a plurality of electronic control units exchange frames via one or a plurality of buses.
  • a program according to an aspect of the present disclosure is a program for causing a security device including a microprocessor connected to one or a plurality of buses to execute a predetermined process.
  • the attack detection method is a method for detecting when an attack frame, which is an illegal frame, is transmitted on a bus used for communication between ECUs mounted on a vehicle.
  • a security device (in-vehicle security device) in an in-vehicle network system is a device having at least an attack detection function (a function of detecting an attack frame) related to an attack detection method.
  • the security device may have a defense function that suppresses the influence of the attack frame on each ECU, but the attack detection function is a function that is a prerequisite for the defense.
  • the security device transmits the attack detection result to another device, the other device can execute the defense function.
  • FIG. 1 is a diagram illustrating an overall configuration of an in-vehicle network system 10 according to the first embodiment.
  • the in-vehicle network system 10 is an example of a network communication system that performs communication according to the CAN protocol, and is a network communication system in a vehicle on which various devices such as a control device, a sensor, an actuator, and a user interface device are mounted.
  • the in-vehicle network system 10 includes a plurality of devices that perform communication related to a frame via a bus, and uses an attack detection method.
  • the in-vehicle network system 10 includes ECUs 100a to 100d mounted on a vehicle and connected to various devices, buses 200a and 200b, and a gateway 300.
  • the in-vehicle network system 10 may include a number of ECUs in addition to the gateway 300 and the ECUs 100a to 100d, but here, the description will be given focusing on the gateway 300 and the ECUs 100a to 100d for convenience.
  • the ECU is a device including, for example, a processor (microprocessor), a digital circuit such as a memory, an analog circuit, a communication circuit, and the like.
  • the memory is ROM, RAM, or the like, and can store a control program (computer program as software) executed by the processor.
  • the processor operates according to a control program (computer program)
  • the ECU realizes various functions.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions for the processor in order to achieve a predetermined function.
  • the ECUs 100a to 100d are connected to devices such as the engine 101, the brake 102, the door opening / closing sensor 103, and the window opening / closing sensor 104, respectively.
  • the ECUs 100a to 100d acquire the state of the devices and periodically represent the frame (data frame). ) Is transmitted to the in-vehicle network including the bus 200a and the bus 200b.
  • the gateway 300 is a kind of ECU as a gateway device connected to the bus 200a to which the ECU 100a and the ECU 100b are connected and the bus 200b to which the ECU 100c and the ECU 100d are connected.
  • the gateway 300 has a transfer function for transferring a frame received from one bus to the other bus.
  • the gateway 300 has an attack detection function and functions as a security device.
  • Each ECU in the in-vehicle network system 10 exchanges frames according to the CAN protocol.
  • Frames in the CAN protocol include a data frame, a remote frame, an overload frame, and an error frame.
  • FIG. 2 is a diagram showing a data frame format defined by the CAN protocol.
  • a data frame in a standard ID format defined by the CAN protocol is shown.
  • the data frame includes an SOF (Start Of Frame), ID field, RTR (Remote Transmission Request), IDE (Identifier Extension), reserved bit “r”, DLC (Data Length Code), data field, CRC (Cyclic Redundancy Check) sequence.
  • SOF is composed of 1-bit dominant. When the bus is idle, it is recessive, and the start of frame transmission is notified by changing to dominant by SOF.
  • the ID field is a field for storing an ID (message ID) that is a value indicating the type of data, which is composed of 11 bits.
  • ID message ID
  • a frame having a small ID is designed to have a high priority in order to perform communication arbitration in this ID field.
  • RTR is a value for identifying a data frame and a remote frame, and is composed of a dominant 1 bit in the data frame.
  • IDE and “r” are both composed of dominant 1 bit.
  • DLC is composed of 4 bits and is a value indicating the length of the data field. IDE, “r”, and DLC are collectively referred to as a control field.
  • the data field is a value indicating the content of data to be transmitted composed of a maximum of 64 bits. The length can be adjusted every 8 bits.
  • the specification of the data to be sent is not defined by the CAN protocol, but is defined in the in-vehicle network system 10. Therefore, the specification depends on the vehicle type, manufacturer (manufacturer), and the like.
  • CRC sequence consists of 15 bits. It is calculated from the transmission values of the SOF, ID field, control field and data field.
  • CRC delimiter is a delimiter representing the end of a CRC sequence composed of 1-bit recessive.
  • the CRC sequence and the CRC delimiter are collectively referred to as a CRC field.
  • ACK slot consists of 1 bit.
  • the transmitting node performs transmission with the ACK slot being recessive.
  • the receiving node transmits an ACK slot as a dominant if reception is successful up to the CRC sequence. Since dominant is given priority over recessive, if the ACK slot is dominant after transmission, the transmitting node can confirm that any receiving node has received successfully.
  • ACK delimiter is a delimiter representing the end of ACK composed of 1-bit recessive.
  • EOF is composed of 7 bits recessive and indicates the end of the data frame.
  • FIG. 3 is a configuration diagram of the gateway 300.
  • the gateway 300 executes a frame transfer function (transfer function) between buses, and also functions as a security device having an attack detection function. Therefore, as shown in FIG. 3, the gateway 300 includes a frame transmission / reception unit 310, a frame interpretation unit 320, a reception ID determination unit 330, a reception ID list holding unit 340, a frame processing unit 350, and a transfer rule holding unit. 360, a fraud detection processing function group 370, and a frame generation unit 380. Each of these components is realized by a communication circuit in the gateway 300, a processor that executes a control program stored in a memory, a digital circuit, or the like.
  • the frame transmission / reception unit 310 transmits / receives a frame according to the CAN protocol to / from each of the bus 200a and the bus 200b.
  • a frame is received bit by bit from the bus 200a or the bus 200b and transferred to the frame interpreter 320.
  • the frame transmission / reception unit 310 transmits the contents of the frame to the bus 200a or the bus 200b one bit at a time based on the bus information indicating the transfer destination bus received from the frame generation unit 380 and the frame.
  • the frame interpretation unit 320 receives the frame value from the frame transmission / reception unit 310, and interprets it so as to map it to each field in the frame format defined by the CAN protocol.
  • the frame interpretation unit 320 transfers the value determined as the ID field to the reception ID determination unit 330.
  • the frame interpretation unit 320 transfers the value of the ID field and the data field (data) appearing after the ID field to the frame processing unit 350 according to the determination result notified from the reception ID determination unit 330, or Decide whether to stop receiving. If the frame interpretation unit 320 determines that the frame does not conform to the CAN protocol, the frame interpretation unit 320 notifies the frame generation unit 380 to transmit an error frame. In addition, when an error frame is received, the frame interpreter 320 discards the received frame thereafter, that is, stops the interpretation of the frame.
  • the reception ID determination unit 330 receives the value of the ID field notified from the frame interpretation unit 320, and receives each field of the frame after the ID field according to the list of message IDs held by the reception ID list holding unit 340. Judge whether to do. The reception ID determination unit 330 notifies the frame interpretation unit 320 of this determination result.
  • the reception ID list holding unit 340 holds a reception ID list that is a list of IDs (message IDs) received by the gateway 300. An example of the reception ID list will be described later (FIG. 4).
  • the frame processing unit 350 determines the bus to be transferred according to the received frame ID according to the transfer rule held by the transfer rule holding unit 360, and is notified by the frame interpreter 320 of the bus information of the bus to be transferred. The message ID and data are notified to the frame generation unit 380 for frame transfer. Further, the frame processing unit 350 notifies the fraud detection processing function group 370 of the frame (message) notified from the frame interpretation unit 320, thereby detecting the attack detection (that is, whether the frame is an attack frame). The processing function group 370 is requested. The frame processing unit 350 suppresses a process for transferring a frame determined to be an attack frame by the fraud detection processing function group 370. That is, the frame processing unit 350 performs filtering for suppressing transfer as a method of protecting against attack frames, and transfers frames other than the attack frames according to transfer rules.
  • the transfer rule holding unit 360 holds a transfer rule that is information indicating a rule for frame transfer for each bus. An example of the transfer rule will be described later (FIG. 5).
  • the fraud detection processing function group 370 is a function group for realizing an attack detection function for determining whether a received frame is an attack frame that is an illegal frame. The components of the fraud detection processing function group 370 will be described later.
  • the frame generation unit 380 notifies the frame transmission / reception unit 310 to transmit the error frame in accordance with the error frame transmission request notified from the frame interpretation unit 320. Further, the frame generation unit 380 forms a frame using the message ID and data notified from the frame processing unit 350 and notifies the frame transmission / reception unit 310 together with the bus information.
  • FIG. 4 is a diagram illustrating an example of the reception ID list held in the reception ID list holding unit 340 of the gateway 300.
  • the reception ID list illustrated in FIG. 4 selectively receives a frame including a message ID whose ID (message ID) value is “1”, “2”, “3”, or “4”. Used for processing. This is merely an example, but the message IDs of frames determined to be received by the gateway 300 are listed in the reception ID list.
  • FIG. 5 shows an example of transfer rules held by the transfer rule holding unit 360 of the gateway 300.
  • This transfer rule associates a transfer source bus, a transfer destination bus, and a transfer target ID (message ID).
  • “*” In FIG. 5 indicates that the frame is transferred regardless of the message ID.
  • the example of FIG. 5 indicates that the frame received from the bus 200a is set to be transferred to the bus 200b regardless of the message ID. Further, it is shown that only the frame having the message ID “3” among the frames received from the bus 200b is set to be transferred to the bus 200a.
  • FIG. 6 is a configuration diagram of the fraud detection processing function group 370.
  • the fraud detection processing function group 370 includes an input unit 371, a check unit 372, a check parameter storage unit 373, an update unit 374, an inspection parameter storage unit 375, and an inspection unit (filtering unit) 376.
  • the input unit 371 receives a request for attack detection from the frame processing unit 350, and the frame notified from the frame processing unit 350 to each of the check unit 372 and the inspection unit (filtering unit) 376 (that is, the gateway 300 received from the bus). By transmitting the value of each field of the frame, an instruction for checking or checking the frame (for example, a check for use in filtering) is issued.
  • the check unit 372 determines whether a predetermined condition is satisfied for the frame (the frame received by the gateway 300 from the bus) (for example, an invalid frame). A function to determine whether or not.
  • the check unit 372 acquires a parameter such as a threshold (referred to as a check parameter) used for the determination from the check parameter holding unit 373.
  • the check parameter holding unit 373 is realized in one area of a storage medium such as a memory, and holds check parameters (threshold value, etc.) used by the check unit 372.
  • FIG. 7 shows an example of the configuration of the check unit 372 and the check parameter holding unit 373.
  • the check unit 372 includes an ID check function unit responsible for a function (ID check function) for determining whether or not a predetermined condition is satisfied for the ID value of the ID field of the frame, A DLC check function unit responsible for a function (DLC check function) for determining whether or not a predetermined condition for a DLC value (data length) is satisfied, and a time interval at which two frames having the same ID are transmitted A transmission cycle check function unit responsible for a function (transmission cycle check function) for determining whether or not a predetermined condition is satisfied for a certain transmission cycle, and one or more frames having the same ID within a predetermined unit time Transmission frequency checker responsible for a function (transmission frequency check function) for determining whether or not a predetermined condition is satisfied for a transmission frequency that is a frequency of transmission And a part.
  • ID check function responsible for a function
  • DLC check function DLC check function
  • transmission cycle check function
  • Each check function unit in the check unit 372 in FIG. 7 acquires a rule (a condition specified by the check parameter) corresponding to each check function held by the check parameter holding unit 373, and performs check processing according to the rule.
  • the check parameters include an ID check parameter corresponding to the ID check function, a DLC check parameter corresponding to the DLC check function, a transmission cycle check parameter corresponding to the transmission cycle check function, and a transmission frequency check parameter corresponding to the transmission frequency check function. Consists of including.
  • the check unit 372 in FIG. 7 individually outputs the check result (for example, the determination result of whether or not a predetermined condition is satisfied) in each check function unit, and the check function in each check function unit The result of comprehensive determination by the determination unit is output.
  • the determination unit outputs a result of a logical operation (an operation based on one or a combination of logical product, logical sum, etc.) using a check result (for example, a determination result indicating that the condition is satisfied or not satisfied) in each check function unit.
  • a logical operation an operation based on one or a combination of logical product, logical sum, etc.
  • a check result for example, a determination result indicating that the condition is satisfied or not satisfied
  • the ID check function unit of the check unit 372 determines that a predetermined condition is satisfied. Conversely, the check unit 372 satisfies a predetermined condition when, for example, the message ID in the ID field transmitted from the input unit 371 is different from any message ID included in the ID check parameter. Judge that not. As a result of determining that the condition is satisfied by the ID check function unit or the like of the check unit 372, for example, the update unit 374 updates any of the plurality of inspection parameters held in the inspection parameter holding unit 375.
  • one DLC value is included as the DLC check parameter of the check parameter holding unit 373, and the DLC value transmitted from the input unit 371 to the check unit 372 is
  • the DLC check function unit of the check unit 372 determines that a predetermined condition is satisfied.
  • the check unit 372 for example, when a predetermined condition is not satisfied when the DLC value transmitted from the input unit 371 matches the DLC value included in the DLC check parameter. judge.
  • the update unit 374 updates any of the plurality of inspection parameters held in the inspection parameter holding unit 375.
  • a range of a certain time interval (cycle) (for example, 90 msec to 110 msec) is included as the transmission cycle check parameter of the check parameter holding unit 373, and the input unit 371
  • the reception time interval between the frame transmitted to the check unit 372 and the previously received frame having the same message ID as the message ID of the frame is the range of the period included in the transmission period check parameter
  • the transmission cycle check function unit of the check unit 372 determines that a predetermined condition is satisfied.
  • the update unit 374 updates any of the plurality of inspection parameters held in the inspection parameter holding unit 375.
  • an upper limit value (threshold value) of a certain frequency is included as the transmission frequency check parameter of the check parameter holding unit 373, and is transmitted from the input unit 371 to the check unit 372.
  • the frequency at which the frame is transmitted (the frequency at which the frame is received) is, for example, the number of times per unit period (for example, 1 second) as the upper limit of the frequency included in the transmission frequency check parameter (for example, 100 times)
  • the transmission frequency check function unit of the check unit 372 determines that a predetermined condition is satisfied.
  • the transmission frequency check parameter may be a lower limit value of the frequency, and the check unit 372 may determine that the condition is satisfied when the frame is received less than the lower limit value in the unit period.
  • the transmission frequency check parameter may indicate a frequency range (upper limit value and lower limit value).
  • the update unit 374 updates any of the plurality of inspection parameters held in the inspection parameter holding unit 375. Further, the check unit 372 may output the determination result in the transmission frequency check function for each unit period, and the update unit 374 can update the inspection parameter in response to this output.
  • the check unit 372 may further include, for example, a data check function unit that performs a function (data check function) for determining whether or not a predetermined condition is satisfied for the data value of the data field of the frame.
  • the data check function may include, for example, a data fixed value check function for checking whether or not the data value is a value specified by a check parameter.
  • the data check function may include, for example, a data range check function for checking whether or not the data value is within a range specified by the check parameter.
  • the data check function may include, for example, a data lower limit check function or a data upper limit check function for checking whether or not the value of the data is greater than or less than the value specified by the check parameter.
  • the data check function can include, for example, a data operation result check function for checking whether or not the data value matches the result of a predetermined operation specified by the check parameter.
  • the data to be checked by the data check function may be the entire data field, or only one or a plurality of bits (a plurality of consecutive bits or a plurality of non-consecutive bits) of a part of the data field. It may be.
  • each check function described above may be applied regardless of the message ID, or may be applied only to a frame having a specific message ID.
  • the check function of the check unit 372 described above is an example, and is not limited to this. There may be other check functions, or only a part of the plurality of check functions described above may be used. May be.
  • the update unit 374 receives the determination result from the check unit 372 and determines, for example, an inspection parameter (threshold value or the like) to be updated among a plurality of inspection parameters in the inspection parameter holding unit 375 according to the determination result. Then, the determined inspection parameter is updated.
  • the inspection parameters updated by the updating unit 374, the degree of update of the inspection parameters, and the like are determined based on predetermined criteria, algorithms, and the like. The standard, algorithm, and the like are determined when the gateway 300 is manufactured, for example.
  • the inspection parameter holding unit 375 is realized in one area of a storage medium such as a memory, and holds inspection parameters (threshold value and the like) used by the inspection unit 376.
  • the inspection unit 376 performs an inspection related to determination on whether or not the frame (frame received from the bus) transmitted by the input unit 371 is an attack frame based on the inspection parameter held by the inspection parameter holding unit 375.
  • the inspection related to the determination of whether or not the frame is an attack frame by the inspection unit 376 is a premise of a defense function such as frame filtering, and the inspection unit 376 functions as a filtering unit that performs an inspection for filtering, for example. obtain.
  • the inspection unit 376 acquires from the inspection parameter holding unit 375 an inspection parameter that defines a threshold value used to determine whether or not the frame is an attack frame. This inspection parameter is updated as necessary by the updating unit 374 as described above.
  • FIG. 8 shows an example of the configuration of the inspection unit 376 and the inspection parameter holding unit 375.
  • the inspection unit 376 has an ID inspection function unit responsible for a function (ID inspection function) for determining whether or not the condition specified by the inspection parameter is satisfied for the ID value of the ID field of the frame;
  • the DLC inspection function unit responsible for the function (DLC inspection function) for determining whether or not the condition specified by the inspection parameter for the DLC value (data length) of the frame is satisfied, and two frames having the same ID are transmitted.
  • a transmission cycle inspection function unit responsible for a function (transmission cycle inspection function) for determining whether or not a condition specified by the inspection parameter is satisfied for a transmission cycle that is a time interval to be transmitted, and one or more frames having the same ID Transmission that bears a function (transmission frequency inspection function) that determines whether or not the condition specified by the inspection parameter is satisfied for the transmission frequency that is the frequency of transmission within a predetermined unit time And a frequency inspection function unit.
  • Each inspection function unit in the inspection unit 376 in FIG. 8 acquires a rule (condition specified by the inspection parameter) corresponding to each inspection function held by the inspection parameter holding unit 375, and performs an inspection process according to the rule.
  • the inspection parameters include an ID inspection parameter corresponding to the ID inspection function, a DLC inspection parameter corresponding to the DLC inspection function, a transmission period inspection parameter corresponding to the transmission period inspection function, and a transmission frequency inspection parameter corresponding to the transmission frequency inspection function. Consists of including. Further, the inspection unit 376 in FIG. 8 outputs a result (information indicating whether or not an attack frame is present) obtained by comprehensively determining the inspection result in each inspection function unit by the determination unit.
  • one or more message ID values are included as ID inspection parameters of the inspection parameter holding unit 375, and the ID field is transmitted from the input unit 371 to the inspection unit 376. If the message ID is the same as any one of the message IDs included in the ID inspection parameter, the ID inspection function unit of the inspection unit 376 determines that it is an attack frame. Conversely, for example, when the message ID in the ID field transmitted from the input unit 371 is different from any message ID included in the ID inspection parameter, the inspection unit 376 determines that the frame is not an attack frame. For example, as a result of determining that it is an attack frame by any inspection function unit such as the ID inspection function unit of the inspection unit 376, the inspection unit 376 outputs information indicating that it is an attack frame.
  • one DLC value is included as the DLC inspection parameter of the inspection parameter holding unit 375, and the DLC value transmitted from the input unit 371 to the inspection unit 376 is
  • the DLC inspection function unit of the inspection unit 376 determines that it is an attack frame.
  • the inspection unit 376 determines that the frame is not an attack frame.
  • the inspection unit 376 determines that the attack frame is an attack frame when the DLC value transmitted from the input unit 371 is larger than the DLC value included in the DLC inspection parameter, or is included in the DLC inspection parameter. If it is smaller than the DLC value, it may be determined that the frame is an attack frame, and how to determine the frame may be defined in, for example, an inspection parameter.
  • a transmission time inspection parameter of the inspection parameter holding unit 375 includes a certain time interval (period) range (for example, 90 msec to 110 msec), and the input unit 371.
  • the reception time interval between the frame transmitted to the inspection unit 376 from the previous frame having the same message ID as the message ID of the frame and the range of the period included in the transmission period inspection parameter When it is outside, the transmission cycle inspection function unit of the inspection unit 376 determines that the frame is an attack frame.
  • the inspection unit 376 may determine that the frame is an attack frame when the reception time interval between two frames having the same message ID exceeds a threshold value or less than a threshold value.
  • the threshold value is indicated in the periodic inspection parameter, and it may be specified under which conditions an attack frame should be determined.
  • an upper limit value (threshold value) of a certain frequency is included as the transmission frequency inspection parameter of the inspection parameter holding unit 375, and is transmitted from the input unit 371 to the inspection unit 376.
  • the frequency at which the frame is transmitted is, for example, the number of times per unit period (for example, 1 second) as the upper limit of the frequency included in the transmission frequency inspection parameter (for example, 100 times), the transmission frequency inspection function unit of the inspection unit 376 determines that it is an attack frame.
  • the inspection unit 376 further has a function (data inspection function) for determining whether or not the frame is an attack frame based on whether or not the condition specified by the inspection parameter is satisfied for the data value of the data field of the frame, for example.
  • the data inspection function may include, for example, a data fixed value inspection function that determines whether or not the data is an attack frame by inspecting whether or not the data value is a value specified by the inspection parameter.
  • the data inspection function is, for example, a data range inspection function for inspecting whether or not the data value is a value within the range specified by the inspection parameter, and the data value is greater than or less than the value specified by the inspection parameter.
  • the data inspection function for example, for the data value of the frame, the amount of change from the data value in the previous received frame having the same message ID is a value within the range specified by the inspection parameter. It may include a data change range check function for checking whether there is any. Further, the data inspection function can include, for example, a data operation result inspection function that inspects whether or not the data value matches the result of a predetermined operation specified by the inspection parameter.
  • the data to be inspected by the data inspection function may be the entire data field, or only one or a plurality of bits (a plurality of consecutive bits or a plurality of non-consecutive bits) of a part of the data field.
  • the position of the data to be inspected in the data field may be defined in the inspection parameter.
  • each of the inspection functions described above may be applied regardless of the message ID, or may be applied only to a frame having a specific message ID.
  • the inspection function of the inspection unit 376 described above is an example, and is not limited to this. There may be other inspection functions, or only a part of the plurality of inspection functions described above may be used. May be.
  • the check unit 372 and the inspection unit 376 may have a check function or an inspection function for the same conditions as each other, or may have a check function or an inspection function for different conditions.
  • the transmission cycle check function unit of the check unit 372 determines that the condition is satisfied because the transmission cycle is outside a predetermined appropriate range. In this case, there is a method of lowering the upper limit value (threshold value) of the frequency in the transmission frequency inspection parameter in the inspection parameter holding unit 375.
  • the transmission cycle check function unit of the check unit 372 has an appropriate transmission cycle.
  • the transmission cycle check function unit determines that the condition is met, there is a possibility of being attacked, so the attack detection rate is improved by narrowly limiting the allowable range of data value changes. Especially useful.
  • narrowly limiting the allowable range of change in the data value can have an effect of reducing the influence of the attack.
  • the transmission frequency check function unit of the check unit 372 determines that the condition is satisfied because the transmission frequency check function for each message ID is not an appropriate frequency set in advance.
  • An example of changing the degree of determination to be more relevant to an attack frame is to narrow the period range (appropriate range) in the transmission period inspection parameter in the inspection parameter holding unit 375. This is an example in which an attack can be detected more easily for safety because there is a possibility that the attack is caused by an increase in the transmission frequency of a frame of a certain message ID.
  • the transmission cycle inspection parameter in the inspection parameter holding unit 375 is determined. There is a method of expanding the range of the period. This is a method corresponding to an increase in the possibility of delaying the transmission due to the occurrence of communication arbitration due to the increase in the transmission frequency of a frame and the transmission timing of one frame and another frame being the same.
  • the inspection parameter holding unit 375 holds the parameters for designating one or a plurality of inspection functions to be executed among the plurality of inspection functions in the inspection unit 376 and holds the parameters, and the updating unit 374 As a method for updating the inspection parameter according to, a parameter for designating an inspection function to be executed by the inspection unit 376 may be updated according to the result of the check unit 372.
  • the inspection parameter holding unit 375 holds the parameters for specifying the order in which each of the plurality of inspection functions in the inspection unit 376 is executed in the inspection parameters, and the updating unit 374 updates the inspection parameters.
  • the parameter that specifies the execution order of each of the plurality of inspection functions executed by the inspection unit 376 may be updated according to the result of the check unit 372. For example, in the inspection unit 376 that executes a plurality of inspection functions according to a parameter that specifies the order of execution, if any of the plurality of inspection functions determines that the received frame is an attack frame, execution is still in progress. Execution of incomplete inspection functions can be aborted.
  • the inspection parameter may be updated from the results of a plurality of check functions.
  • the inspection parameters only the parameters related to one inspection function may be updated, or the parameters related to a plurality of inspection functions may be updated.
  • the update method of the inspection parameter by the update unit 374 is that the check unit 372 updates the inspection parameter when a predetermined condition is satisfied using the check parameter.
  • the condition is not limited to the condition that is satisfied when the received frame is an illegal attack frame or when a part of the frame is abnormal.
  • the condition may be satisfied when the received frame is a normal frame, when a part of the frame is normal, or the like.
  • the update unit 374 checks the inspection parameter to be executed by the inspection unit 376.
  • a parameter specifying the data upper limit inspection function or the data lower limit inspection function may be updated, or a parameter related to the data upper limit inspection function or the data lower limit inspection function may be updated.
  • inspection parameter update method by the update unit 374 described above is merely an example, and other update methods may be used, or only a part of the update method described above may be used.
  • FIG. 9 is a configuration diagram of the ECU 100a.
  • the ECU 100a includes a frame transmission / reception unit 110, a frame interpretation unit 120, a reception ID determination unit 130, a reception ID list holding unit 140, a frame processing unit 150, a data acquisition unit 170, and a frame generation unit 180. Composed. Each of these components is realized by a communication circuit in the ECU 100a, a processor that executes a control program stored in a memory, a digital circuit, or the like.
  • the ECUs 100b to 100d have substantially the same configuration as the ECU 100a.
  • the frame transmission / reception unit 110 transmits / receives a frame according to the CAN protocol to / from the bus 200a.
  • a frame is received bit by bit from the bus 200a and transferred to the frame interpreter 120. Further, the content of the frame received from the frame generation unit 180 is transmitted to the bus 200a.
  • the frame interpretation unit 120 receives a frame value from the frame transmission / reception unit 110, and interprets it so as to map it to each field in the frame format defined by the CAN protocol.
  • the value determined as the ID field is transferred to the reception ID determination unit 130.
  • the frame interpretation unit 120 transfers the value of the ID field and the data field appearing after the ID field to the frame processing unit 150 according to the determination result notified from the reception ID determination unit 130, or determines the determination result. Determine whether to stop receiving frames after receiving them. If the frame interpretation unit 120 determines that the frame does not conform to the CAN protocol, the frame interpretation unit 120 notifies the frame generation unit 180 to transmit an error frame. Further, when an error frame is received, the frame interpretation unit 120 discards the frame thereafter, that is, stops the interpretation of the frame.
  • the reception ID determination unit 130 receives the value of the ID field notified from the frame interpretation unit 120, and receives each field of the frame after the ID field according to the list of message IDs held by the reception ID list holding unit 140. Judge whether to do. The reception ID determination unit 130 notifies the frame interpretation unit 120 of the determination result.
  • the reception ID list holding unit 140 holds a reception ID list that is a list of message IDs received by the ECU 100a. This reception ID list is the same as that in the example of FIG.
  • the frame processing unit 150 performs different processing for each ECU according to the received frame data.
  • the ECU 100a connected to the engine 101 has a function of sounding an alarm sound when the door is open with a speed exceeding 30 km / h.
  • the frame processing unit 150 of the ECU 100a manages data (for example, information indicating the state of the door) received from another ECU, and performs processing for sounding an alarm sound under a certain condition based on the speed obtained from the engine 101, etc. I do.
  • the ECU 100c has a function of sounding an alarm sound when the door is opened in a state where the brake is not applied.
  • the ECUs 100b and 100d do nothing in particular.
  • the ECUs 100a to 100d may have functions other than those described above.
  • the data acquisition unit 170 acquires data indicating the state of devices, sensors, and the like connected to the ECU, and notifies the frame generation unit 180 of the data.
  • the frame generation unit 180 configures an error frame according to the notification instructing transmission of the error frame notified from the frame interpretation unit 120, and notifies the frame transmission / reception unit 110 to transmit the error frame.
  • the frame generation unit 180 forms a frame by attaching a predetermined message ID to the data value notified from the data acquisition unit 170 and notifies the frame transmission / reception unit 110 of the frame.
  • FIG. 10 is a flowchart illustrating an example of attack detection processing by the fraud detection processing function group 370.
  • the input unit 371 receives each field data of the frame from the frame processing unit 350 (step S1001).
  • the input unit 371 notifies the received field data to the check unit 372 and the inspection unit (filtering unit) 376.
  • the check unit 372 acquires a check parameter from the check parameter holding unit 373 (step S1002).
  • the check unit 372 performs a check process for determining whether a predetermined condition is satisfied using the acquired check parameter (step S1003).
  • the check unit 372 notifies the update unit 374 of the determination result in the check process (step S1003).
  • the check unit 372 notifies each determination result when the determination related to each of the plurality of conditions is performed as the check process, and also notifies the comprehensive determination result based on each determination result.
  • the update unit 374 determines whether or not the inspection parameter held by the inspection parameter holding unit 375 needs to be updated based on the determination result notified from the check unit 372 (step S1004).
  • step S1004 When the update unit 374 determines that the inspection parameter needs to be updated in step S1004, the update unit 374 updates the inspection parameter in the inspection parameter holding unit 375 (step S1005).
  • the inspection unit 376 receives the inspection parameter (for example, a parameter used for filtering) from the inspection parameter holding unit 375. Is acquired (step S1006).
  • the inspection parameter for example, a parameter used for filtering
  • the inspection unit 376 performs an inspection process (for example, a filtering process that is an inspection as a premise of filtering) (step S1007).
  • the inspection unit 376 determines whether or not the received frame is an attack frame, and notifies the frame processing unit 350 of the determination result.
  • the frame processing unit 350 notifies the frame processing unit 350 that the frame is an attack frame, and the frame processing unit 350 performs filtering for prohibiting the forwarding process and invalidates the attack frame.
  • FIG. 11 is a flowchart illustrating an example of the operation (transfer processing) of the gateway 300.
  • the gateway 300 performs a transfer process of transferring a frame received from one bus to another bus.
  • the transfer process will be described by taking an example of a process of transferring a frame received from the bus 200a to the bus 200b, but the process of transferring a frame received from the bus 200b to the bus 200a is the same.
  • the frame transmission / reception unit 310 of the gateway 300 receives a frame from the bus 200a (step S1101).
  • the frame transmission / reception unit 310 transmits the data of each field of the received frame to the frame interpretation unit 320.
  • the frame interpretation unit 320 of the gateway 300 cooperates with the reception ID determination unit 330 to determine whether the frame needs to be received and processed from the value (message ID) of the ID field of the received frame. Determination is made (step S1102).
  • step S1102 If the frame interpretation unit 320 of the gateway 300 determines in step S1102 that reception and processing are necessary, the frame interpretation unit 320 transmits the value of each field in the frame to the frame processing unit 350. Thereafter, the frame processing unit 350 determines a transfer destination bus according to the transfer rules held in the transfer rule holding unit 360 (step S1103).
  • the frame processing unit 350 of the gateway 300 requests attack detection (determination of whether or not it is an attack frame) by notifying the fraud detection processing function group 370 of the value of each field in the frame.
  • the fraud detection processing function group 370 of the gateway 300 determines whether or not the frame is an attack frame from the value of each field of the frame notified from the frame processing unit 350 by the above-described attack detection processing (step S1104). ), And notifies the frame processing unit 350 of the determination result.
  • step S1104 the frame processing unit 350 of the gateway 300 requests the frame generation unit 380 to transfer the frame to the transfer destination bus determined in step S1103.
  • the frame generation unit 380 transfers the frame to the designated transfer destination (step S1105).
  • step S1105 the frame processing unit 350 transmits the value of each field of the frame to the frame generation unit 380.
  • the frame generation unit 380 generates a frame and causes the frame transmission / reception unit 310 to transmit the frame 200b.
  • frame transfer is realized.
  • step S1103 determines whether it is an attack frame after determination of a forwarding destination (step S1103) was shown (step S1104), it is not limited to this,
  • the determination whether it is an attack frame After (Step S1104), the transfer destination may be determined (Step S1103).
  • the transfer destination determination (Step S1103) and the determination as to whether the frame is an attack frame (Step S1104) are performed simultaneously. May be.
  • attack detection processing by the fraud detection processing function group 370 is performed for filtering in transfer processing in which the gateway 300 transfers a frame.
  • an inspection parameter used for inspecting whether or not a frame is an attack frame can be changed under a certain condition by a check function based on the received frame.
  • By improving the detection accuracy of the attack frame it is possible to appropriately defend against the attack (a process for suppressing the influence of the attack frame on the ECU such as transfer inhibition).
  • the gateway 300 described above requests the fraud detection processing function group 370 from the frame processing unit 350 for attack detection (determination as to whether or not it is an attack frame), and switches whether to transfer the frame according to the determination result. Then, it defends against the attack frame.
  • the method of using the attack detection result is not limited to filtering whether or not to transfer a frame.
  • a description will be given of the gateway 300a that uses the attack detection result for defense by neutralizing the attack frame.
  • FIG. 12 is a configuration diagram of the gateway 300a according to a modification of the first embodiment.
  • the frame interpretation unit 320 transmits each field of the received frame to the fraud detection processing function group 370.
  • the inspection unit (filtering unit) 376 of the fraud detection processing function group 370 determines that the frame is an attack frame
  • the inspection unit disables the frame by requesting the frame generation unit 380 to transmit an error frame. Therefore, the inspection unit 376 in the fraud detection processing function group 370 receives the frame after the ID field of the frame received by the gateway 300a is received and before the portion following the data field (CRC field) is received. A check is made to determine whether or not is an attack frame.
  • CRC field data field
  • an error frame is sent out on the bus to which the attack frame is transmitted by the operations of the frame generation unit 380 and the frame transmission / reception unit 310.
  • the inspection unit 376 determines that it is an attack frame
  • an error frame is sent out on the bus to which the attack frame is transmitted by the operations of the frame generation unit 380 and the frame transmission / reception unit 310.
  • the frame interpretation unit 320 in the gateway 300a may transmit all frames to the fraud detection processing function group 370. Further, the frame interpretation unit 320 transmits only frames not included in the reception ID list to the fraud detection processing function group 370, and the frames included in the reception ID list are transferred from the frame processing unit 350 to the fraud detection processing function group 370. An attack detection request may be made.
  • both filtering that suppresses forwarding of frames between buses for attack frames and neutralization by sending error frames to the bus that sent the attack frames are executed. You may do it.
  • FIG. 13 shows a configuration of a gateway 300b that is a generalization of the gateway 300 according to the first embodiment and the gateway 300a according to the modification.
  • a configuration mainly related to attack detection is shown by a solid frame block.
  • the gateway 300b includes a receiving unit 410, an updating unit 420, a holding unit 430, an inspection unit 440, and a processing unit 450 as a configuration related to attack detection.
  • the reception unit 410 has a function of receiving a frame from at least one bus, and is equivalent to the reception function part of the frame transmission / reception unit 310 in the gateways 300 and 300a, for example.
  • the updating unit 420 has a function of updating the inspection parameter held by the holding unit 430 when a predetermined condition related to the frame received by the receiving unit 410 is satisfied.
  • the update unit 420 is equivalent to a combination of the check unit 372, the check parameter holding unit 373, and the update unit 374 of the fraud detection processing function group 370 in the gateways 300 and 300a, for example.
  • the holding unit 430 has a function of holding an inspection parameter that defines the inspection content of a frame, and is equivalent to, for example, the inspection parameter holding unit 375 of the fraud detection processing function group 370 in the gateways 300 and 300a.
  • the inspection unit 440 has a function of performing an inspection related to determination of whether or not the frame received by the reception unit 410 is an attack frame based on the inspection parameter held by the holding unit 430.
  • the inspection unit 440 is equivalent to the inspection unit 376 of the fraud detection processing function group 370 in the gateways 300 and 300a, for example.
  • the processing unit 450 has a function of performing processing according to the inspection result by the inspection unit 440 so as to suppress the influence of the attack frame on the ECU.
  • the processing unit 450 has, for example, both a function for prohibiting the forwarding process for the attack frame in the frame processing unit 350 of the gateway 300 and a function for transmitting an error frame to the attack frame in the frame generation unit 380 of the gateway 300a or It is equivalent to one.
  • the updating unit 420 updates the inspection parameter of the holding unit 430, which is used for the inspection unit 440 to inspect whether or not the frame is an attack frame, under a certain condition according to the received frame. . Accordingly, it is possible to appropriately detect an attack frame while adapting to various and variable attacks, and the processing unit 450 can appropriately defend against the attack.
  • the inspection process executed in parallel with the check process may be the same as the inspection process after the update of the inspection parameter (step S1005), or may be performed with different contents (among a plurality of inspection functions). Inspection with different inspection functions) may be performed. As described above, the execution timing of the inspection process may overlap or be different from the execution timing of the check process for updating the inspection parameter.
  • the inspection processing can perform inspection based on the updated inspection parameters. Further, in the attack detection process, not only the update of the inspection parameter but also the check parameter may be updated according to the content of the frame.
  • the configuration of the fraud detection processing function group 370 shown in the above embodiment is merely an example.
  • the check unit 372 having various check functions using check parameters held by the check parameter holding unit 373
  • it may be modified to include an ID-related fraud detection processing unit 372a that determines whether fraud is related only to the ID field.
  • the ID-related fraud detection processing unit 372a determines whether or not it is fraudulent using the detection parameter held by the detection parameter holding unit 373a, and if it is illegal, the update unit 374 uses the filter held by the filter parameter holding unit 375a. Update parameters.
  • the filtering unit 376a performs frame inspection for filtering attack frames.
  • the filter parameter holding unit 375a may be the same as the inspection parameter holding unit 375.
  • the filtering unit 376a may be the same as the inspection unit (filtering unit) 376.
  • the transmission time interval (transmission cycle) of frames in which the same message ID is set is checked from the message ID in the ID field, and at a cycle different from the rule held in the cycle information holding unit 373b.
  • a periodic abnormality detecting unit 372b that detects whether a frame is transmitted is provided.
  • the updating unit 374 performs processing such as narrowing a range that allows a normal frame indicated by a filter parameter. Also good.
  • the update unit 374 may change the amount of change of the filter parameter according to the time when the cycle is deviated from an appropriate range.
  • This example is generally equivalent to the case where the check unit 372 in the fraud detection processing function group 370 shown in the first embodiment has only a check function for checking whether or not a predetermined condition is satisfied only from the ID field. It is.
  • the remaining fields may be received in parallel while checking the contents of the ID field.
  • the frame interpretation unit 320 or the frame processing unit 350 notifies the ID field value to the input unit 371 of the fraud detection processing function group 370 at the timing of receiving the ID field.
  • the frame interpretation unit 320 or the frame processing unit 350 receives fields after the ID field, and transmits data of the remaining fields to the input unit 371 of the fraud detection processing function group 370 at the timing when the reception is completed.
  • the processing of steps S1002 to S1005 can be started at a timing earlier than the completion of frame reception, and the processing of steps S1002 to S1005 and the processing of step S1011 can be executed in parallel.
  • the overall processing time can be shortened. For example, a lot of inspection processes for filtering using the inspection parameter, etc. It becomes possible to take time.
  • the configuration of the fraud detection processing function group 370 shown in the above embodiment may be modified as shown in FIG. 18, for example.
  • the fraud detection processing function group 370c according to the modified example of FIG. 18 includes a first filtering unit 372c in which a check function for filtering attack frames is added to the check unit 372.
  • the filter parameter holding unit 375c may be the same as the inspection parameter holding unit 375.
  • the second filtering unit 376c may be the same as the inspection unit (filtering unit) 376.
  • the first filtering unit 372c and the second filtering unit 376c may have the same or different inspection processing contents for filtering.
  • the first filtering unit 372c and the second filtering unit 376c use the same filter parameter holding unit 375c.
  • the present invention is not limited to this, and the first filtering unit 372c and the second filtering unit 376c are used. You may test
  • the first filtering unit 372c determines that the frame is an attack frame, it is possible to immediately defend against the attack (for example, suppression of attack frame transfer, neutralization of the attack frame by transmission of an error frame).
  • the second filtering unit 376c can determine the attack frame by updating the filter parameter (inspection parameter).
  • the first filtering unit 372c may be an ID field-related filtering unit 372d that performs only ID field-related inspection processing.
  • FIG. 19 shows a fraud detection processing function group 370d which is a modification including an ID field related filtering unit 372d, a filter parameter holding unit 375d, a filtering unit 376d, and the like. Accordingly, since the inspection process for filtering can be executed at the timing when the ID field is received, the inspection process for the reception of the data field and the ID field-related filtering and the filter parameter holding unit 375d hold it. The parameter update can be executed in parallel, and it may be possible to allocate a lot of time to the inspection process for filtering by the filtering unit 376d.
  • the configuration of the fraud detection processing function group 370 shown in the above embodiment may be modified as shown in FIG. 20, for example.
  • the fraud detection processing function group 370e according to the modification of FIG. 20 includes a filter control unit 377 between the check unit 372, the inspection unit (filtering unit) 376, and the update unit 374.
  • the check unit 372 finishes the check process (determining whether a predetermined condition is satisfied) by various check functions (ID check function, DLC check function, transmission cycle check function, transmission frequency check function, etc.)
  • the determination results (check results) are notified to the filter control unit 377 in order from the determination results obtained.
  • the filter control unit 377 causes the update unit 374 to update the inspection parameter when a check result necessary for updating the inspection parameter is obtained.
  • the filter control unit 377 updates parameters related to various inspection functions (ID inspection function, DLC inspection function, transmission cycle inspection function, transmission frequency inspection function, etc.) in the inspection unit 376 to a state that can be used for inspection. Whether or not it has been performed is managed, and when the state is updated to a usable state, the inspection unit 376 is caused to execute the corresponding inspection function.
  • the filter control unit 377 for example, after the check process for the frame is performed by the check function related to the update of the parameter used by the specific inspection function when receiving one frame among the inspection parameters (the parameter depends on the check result).
  • the particular inspection function can be controlled to be executed after the update of This makes it possible to perform inspections related to some inspection functions (for example, inspections for filtering) even if not all check results from various check functions are available, enabling quick defense against attack frames, etc. Can be.
  • the configuration of the ECUs (ECUs 100a to 100d) in the in-vehicle network system 10 shown in the above embodiment is not limited to that illustrated in FIG. 9, for example, an illegal operation like the ECU 100e shown in FIG.
  • a detection processing function group 370 may be provided.
  • the frame processing unit 150 may request the fraud detection processing function group 370 to perform attack detection (determination as to whether or not the frame is an attack frame).
  • the fraud detection processing function group 370 may be requested to detect attacks.
  • the ECU may be configured by a frame transmission / reception unit 110, a frame interpretation unit 120, a frame generation unit 180, and a fraud detection processing function group 370, for example, as an ECU 100f shown in FIG.
  • the frame interpretation unit 120 receives all frames and requests the fraud detection processing function group 370 to detect an attack.
  • the ECU includes the reception ID determining unit 130 and the reception ID list holding unit 140 shown in FIG. 9, and the reception ID list holding unit 140 holds the reception ID list. Only the frame having the described message ID may be received, and the frame interpretation unit 120 may request the fraud detection processing function group 370 for attack detection (determination of whether or not the frame is an attack frame) for the frame.
  • the gateway 300 not only the gateway 300 but also other ECUs in the in-vehicle network system 10 can function as a security device that detects whether or not the frame transmitted to the bus is an attack frame.
  • the ECU may have a configuration such as an ECU 100g shown in FIG. 23 includes a transmission data acquisition unit 171 that acquires data to be transmitted to the bus from an external device (for example, a car navigation device), and the fraud detection processing function group 370 includes transmission data acquisition. It may be determined whether the data received from the unit 171 is an attack frame, and the frame generation unit 180 may be requested to transmit a frame only when it is determined that the data is not an attack frame. This makes it possible to detect and defend against an attack when an attack frame is transmitted from the car navigation device or the like to the ECU.
  • an external device for example, a car navigation device
  • the fraud detection processing function group 370 includes transmission data acquisition. It may be determined whether the data received from the unit 171 is an attack frame, and the frame generation unit 180 may be requested to transmit a frame only when it is determined that the data is not an attack frame. This makes it possible to detect and defend against an attack when an attack frame is transmitted from the car navigation device or the like to the ECU.
  • the update unit 374 receives the determination result from the check unit 372, determines an inspection parameter (threshold value, etc.) that needs to be updated, and updates the determined inspection parameter.
  • the update unit 374 may update the inspection parameter based on conditions other than the determination result from the check unit 372.
  • the update unit 374 may be a vehicle state (for example, vehicle speed, whether or not the vehicle is stopped), or a device (ECU or the like) connected to a bus in the in-vehicle network system 10. ),
  • the previous determination result by the check unit 372, and the like, the determination of the inspection parameter that needs to be updated or the value after the inspection parameter is updated may be determined.
  • the inspection parameters are updated based on the state of the vehicle, the inspection parameters are not updated if the vehicle is stopped, or the difference between the inspection parameter values before and after the update is reduced. It may be suppressed.
  • the inspection parameters in a state where a plurality of driving support functions are mounted on a vehicle on which the in-vehicle network system 10 is mounted and any one of the driving support functions is operating, it relates to other driving support functions that do not operate simultaneously. You may change the parameter (threshold etc.) about a flame
  • the determination as to whether or not it is an attack frame may be determined as an attack frame based on only the value of the message ID, or may be determined as an attack frame by examining specific bits or the like in the data field.
  • the inspection parameter update process is performed based on the configuration of the devices connected to the bus, for example, when there are a certain number or more of devices having a function of communicating with the outside, such as a car navigation device.
  • the inspection parameter may be changed so that the degree of determination as an attack frame increases.
  • the inspection parameters to be updated by the updating unit 374, the criteria used for determining the update level of the inspection parameters, the algorithm, and the like are determined when the gateway 300 is manufactured. It is not limited to this, and it may be changed after manufacture (after factory shipment, etc.). As a method of changing the standard, algorithm, etc., data relating to the change may be received from outside and used to change the data, or the data may be changed from a removable storage medium (optical disk, magnetic disk, semiconductor medium, etc.). The data may be changed by reading.
  • the receiving unit 410, the updating unit 420, the holding unit 430, the inspection unit 440, and the processing unit 450, which are constituent elements of the gateway 300b described in the modification of the first embodiment, are not limited to the gateway described above, but an ECU ( ECUs 100a to 100g, etc.).
  • the reception unit 410 is a reception function part of the frame transmission / reception unit 110.
  • the holding unit 430 may be, for example, the inspection parameter holding unit 375 of the fraud detection processing function groups 370 and 370e, or the filter parameter holding units 375a to 375d of the fraud detection processing function groups 370a to 370d.
  • the holding unit 430 holds a plurality of inspection parameters that define different inspection contents for a frame.
  • the plurality of inspection parameters include an ID inspection parameter relating to an ID value inspection and an inspection of a DLC value.
  • the DLC inspection parameter the transmission period inspection parameter related to the transmission period inspection, the transmission frequency inspection parameter related to the transmission frequency inspection, and the data inspection parameter related to the inspection of the value of the data stored in the data field.
  • the DLC inspection parameter the transmission period inspection parameter related to the transmission period inspection
  • the transmission frequency inspection parameter related to the transmission frequency inspection the data inspection parameter related to the inspection of the value of the data stored in the data field.
  • the transmission frequency inspection parameter includes a threshold value indicating an upper limit of an allowable range of transmission frequency
  • the data inspection parameter includes a threshold value indicating an upper limit of an allowable range of change of data stored in the data field
  • the transmission period inspection parameter is:
  • the threshold indicating the allowable range of the transmission cycle may be included, and the DLC inspection parameter may include a threshold indicating the allowable range of the DLC value. Further, the data inspection parameter may include a threshold value indicating an allowable range of the data value.
  • the update unit 420 may be a combination of the check unit 372, the check parameter holding unit 373, and the update unit 374 of the fraud detection processing function groups 370 and 370e, and the ID-related fraud detection processing unit 372a of the fraud detection processing function group 370a.
  • the detection parameter holding unit 373a and the updating unit 374 may be combined, and the fraud detection processing function group 370b may be a combination of the periodic abnormality detecting unit 372b, the periodic information holding unit 373b and the updating unit 374, and the fraud detection processing function.
  • the first filtering unit 372c of the group 370c, a part or all of the filter parameter holding unit 375c, and the update unit 374 may be combined, and the ID field related filtering unit 372d of the fraud detection processing function group 370d, the filter parameter holding unit Part or all of 375d, Beauty, be a combination of the update section 374.
  • the updating unit 420 has a check function corresponding to each condition for determining whether or not each of a plurality of predetermined conditions is satisfied for the frame received by the receiving unit 410. According to the determination result, an inspection parameter to be updated is determined and updated from among a plurality of inspection parameters held by the holding unit 430.
  • the update unit 420 may have, for example, one or more check functions of an ID check function, a DLC check function, a transmission cycle check function, a transmission frequency check function, and a data check function.
  • the transmission cycle check function when the reception interval of two frames having the same ID is out of a predetermined allowable range, it can be determined that the condition corresponding to the transmission cycle check function is satisfied.
  • the update unit 420 may update any of the plurality of inspection parameters when it is determined that the condition is satisfied by the transmission cycle check function.
  • the update unit 420 may update the threshold value in the transmission frequency inspection parameter when it is determined that the condition is satisfied by the transmission cycle check function.
  • the update unit 420 may update the threshold value in the data inspection parameter to a smaller value. Further, the update unit 420 may determine that the condition corresponding to the transmission frequency check function is satisfied when the transmission frequency exceeds the upper limit of the predetermined allowable range, and may update the threshold value in the transmission cycle inspection parameter. In addition, when the update unit 420 determines that the condition is satisfied by the transmission frequency check function in relation to one frame, the update unit 420 uses a plurality of inspection contents of the frame having the same ID as the ID of the one frame. The threshold value in the inspection parameter may be updated so that the permissible range is narrowed. The update unit 420 may further determine that the frame is an attack frame when a predetermined condition related to the frame received by the reception unit 410 is satisfied.
  • the inspection unit 440 can be the inspection unit (filtering unit) 376 of the fraud detection processing function group 370, 370e, the filtering unit 376a of the fraud detection processing function group 370a, or the fraud detection processing function group 370b. It may be the filtering unit 376b, may be the second filtering unit 376c of the fraud detection processing function group 370c, or may be the filtering unit 376d of the fraud detection processing function group 370d.
  • the processing unit 450 may be at least one of the frame processing unit 150 and the frame generation unit 180 in the ECU.
  • the inspection unit 440 performs an inspection based on each of a plurality of inspection parameters held by the holding unit 430, for example, when the transmission frequency related to the frame received by the receiving unit 410 exceeds a threshold in the transmission frequency inspection parameter, for example
  • the frame may be determined as an attack frame.
  • the inspection unit 440 may determine that the frame is an attack frame when a change in data stored in the data field related to the frame received by the reception unit 410 exceeds a threshold in the data inspection parameter.
  • the inspection unit 440 may perform inspection after the reception unit 410 receives the ID field of the frame and before the portion following the data field (CRC field) is received.
  • An error frame may be transmitted for the frame.
  • a control unit such as a filter control unit 377 (see FIG. 20) of the fraud detection processing function group 370e may be provided in the gateway, ECU, or the like.
  • This control unit determines whether any of the plurality of inspection parameters should be updated according to the determination result at the timing when the determination result of the check function is obtained for each of the plurality of check functions of the update unit 420.
  • the update unit 420 is controlled to update the corresponding inspection parameter if it should be updated, and the inspection based on each inspection parameter is performed according to the update status of each of the plurality of inspection parameters.
  • the inspection unit 440 is controlled.
  • an in-vehicle network is shown as an example of a network communication system that performs communication according to the CAN protocol.
  • the technology according to the present disclosure is not limited to use in an in-vehicle network, but may be used in a network such as a robot or an industrial device, or a network communication system that communicates according to a CAN protocol other than an in-vehicle network.
  • the CAN protocol has a broad meaning including CANNOpen used for embedded systems in automation systems, or derivative protocols such as TTCAN (Time-Triggered CAN) and CANFD (CAN with Flexible Data Rate). Should be treated.
  • the in-vehicle network system 10 may use a communication protocol other than the CAN protocol, such as Ethernet (registered trademark), MOST (registered trademark), FlexRay (registered trademark), or the like.
  • the gateway and other ECUs in the above embodiment are devices including a digital circuit such as a processor and a memory, an analog circuit, a communication circuit, and the like.
  • a digital circuit such as a processor and a memory
  • an analog circuit such as a communication circuit, and the like.
  • a hard disk device such as a hard disk drive, a display, a keyboard, a mouse, etc.
  • Other hardware components may be included.
  • the control program stored in the memory being executed by the processor and realizing the function in software, the function may be realized by dedicated hardware (digital circuit or the like).
  • a part or all of the constituent elements constituting each device in the above embodiment may be constituted by one system LSI (Large Scale Integration).
  • the system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip.
  • the system LSI is a computer system including a microprocessor, a ROM, a RAM, and the like. .
  • a computer program is recorded in the RAM.
  • the system LSI achieves its functions by the microprocessor operating according to the computer program.
  • each part of the constituent elements constituting each of the above devices may be individually made into one chip, or may be made into one chip so as to include a part or the whole.
  • the system LSI is used here, it may be called IC, LSI, super LSI, or ultra LSI depending on the degree of integration.
  • the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, it is naturally also possible to carry out function block integration using this technology. Biotechnology can be applied as a possibility.
  • a part or all of the constituent elements constituting each of the above devices may be composed of an IC card that can be attached to and detached from each device or a single module.
  • the IC card or the module is a computer system including a microprocessor, a ROM, a RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above.
  • the IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • an attack detection method including all or part of the processing procedures illustrated in FIGS. 10, 14, 17, and the like may be used.
  • the attack detection method is used in the in-vehicle network system 10 in which a plurality of ECUs exchange frames via one or a plurality of buses, and includes a reception step, an update step, and an inspection step.
  • the reception step a frame is received from the bus, and in the update step, when a predetermined condition related to the frame received in the reception step is satisfied, the inspection parameter defining the inspection content for the frame is updated,
  • the inspection step an inspection relating to determination of whether or not the frame received in the reception step is an attack frame is performed based on the inspection parameter updated in the update step.
  • the computer program (control program) for realizing the predetermined process (attack detection process) according to the attack detection method may be a computer, or a digital signal composed of the computer program.
  • the control program is for causing the processor to execute an attack detection process including a reception step (for example, step S1001), an update step (for example, steps S1002 to S1005), and an inspection step (for example, steps S1006 and S1007).
  • a computer-readable recording medium such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, or a BD can be used as the computer program or the digital signal.
  • the digital signal may be recorded on these recording media.
  • the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network typified by the Internet, data broadcasting, or the like.
  • an aspect of the present disclosure may be a computer system including a microprocessor and a memory, the memory recording the computer program, and the microprocessor operating according to the computer program.
  • the program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the network or the like and executed by another independent computer system. You may do that.
  • This disclosure can be used to appropriately detect that an attack frame is transmitted in the in-vehicle network.
  • In-vehicle network system 100a-100g Electronic control unit (ECU) DESCRIPTION OF SYMBOLS 101 Engine 102 Brake 103 Door opening / closing sensor 104 Window (window) opening / closing sensor 110 Frame transmission / reception part 120 Frame interpretation part 130 Reception ID judgment part 140 Reception ID list holding part 150 Frame processing part 170 Data acquisition part 171 Transmission data acquisition part 180 Frame generation Unit 200a, 200b Bus 300, 300a, 300b Gateway 310 Frame transmission / reception unit 320 Frame interpretation unit 330 Reception ID determination unit 340 Reception ID list holding unit 350 Frame processing unit 360 Transfer rule holding unit 370, 370a to 370e Fraud detection processing function group 371 Input unit 372 Check unit 372a ID-related fraud detection processing unit 372b Periodic abnormality detection unit 372c First filtering unit 372d ID field-related filtering 373 check parameter holding unit 373a detects the parameter holding unit 373b period information holding unit 374,420 updating unit 375 inspection parameter holding unit 375a ⁇ 375d filter parameter

Abstract

1つ又は複数のバスに接続されたセキュリティ装置としてのゲートウェイ(300b)は、バスからフレームを受信する受信部(410)と、フレームについての検査内容を規定する検査パラメータを保持する保持部(430)と、受信部(410)により受信されたフレームに関連する予め定められた条件が成立した場合に保持部(430)が保持する検査パラメータを更新する更新部(420)と、保持部(430)が保持する検査パラメータに基づいて、受信部(410)により受信されたフレームが攻撃フレームか否かの判定に係る検査を行う検査部(440)とを備える。

Description

セキュリティ装置、攻撃検知方法及びプログラム
 本開示は、車両等に搭載される電子制御ユニットが通信を行うネットワークにおいて送信される不正なフレームである攻撃フレームを検知する技術に関する。
 近年、自動車の中のシステムには、電子制御ユニット(ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、ISO11898-1で規定されているCAN(Controller Area Network)という規格が存在する。
 CANでは、通信路は2本のワイヤで構成されたバスであり、バスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。またCANでは、送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎にメッセージIDと呼ばれるIDを付けて送信し(つまりバスに信号を送出し)、各受信ノードは予め定められたメッセージIDのみを受信する(つまりバスから信号を読み取る)。
 自動車の中のシステムにおいては、多数のECUそれぞれは、様々なフレームの授受を行う。ここで、外部と通信する機能を持つECUが外部から攻撃され、CANのバスに対して不正なメッセージ(攻撃フレーム)を送信できるようになった場合には、そのECUは、例えば他のECUになりすましてフレームを送信する等の攻撃が可能となり、これにより自動車を不正に制御できるようになる。このような攻撃を検知して防御する技術として、データの受信間隔と所定周期とを比較することで攻撃(不正の検出)を行う技術が知られている(特許文献1参照)。
国際公開第2014/115455号
 しかしながら、特許文献1の技術では、検知できる攻撃が、データ送信周期が所定周期と異なるような攻撃に限定されるので、多様な攻撃の検知に必ずしも有効とは限らない。
 そこで、本開示は、多様で変化し得る攻撃に適応して攻撃フレームを検知し得るセキュリティ装置を提供する。また、本開示は、多様で変化し得る攻撃に適応して攻撃フレームを検知し得る攻撃検知方法、及び、セキュリティ装置に攻撃フレームの検知に係る処理を行わせるためのプログラムを提供する。
 本開示の一態様に係るセキュリティ装置は、1つ又は複数のバスに接続されたセキュリティ装置であって、1つの前記バスからフレームを受信する受信部と、フレームについての検査内容を規定する検査パラメータを保持する保持部と、前記受信部により受信されたフレームに関連する予め定められた条件が成立した場合に前記保持部が保持する前記検査パラメータを更新する更新部と、前記保持部が保持する検査パラメータに基づいて、前記受信部により受信されたフレームが攻撃フレームか否かの判定に係る検査を行う検査部とを備えるセキュリティ装置である。
 なお、これらの全般的または具体的な態様は、装置、システム、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、装置、システム、方法、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
 本開示によれば、攻撃フレームか否かの検査に用いる検査パラメータを、受信したフレームに応じて更新できるので、多様で変化し得る攻撃に対して攻撃フレームを適切に検知し得る。
 なお、本開示の更なる効果及び利点は、本明細書及び図面の開示内容から明らかとなるであろう。上記更なる効果及び利点は、本明細書及び図面に開示されている様々な実施の形態及び特徴によって個別に提供されてもよく、必ずしもすべての効果及び利点が提供される必要はない。
実施の形態1に係る車載ネットワークシステムの全体構成を示す図である。 CANプロトコルで規定されるデータフレームのフォーマットを示す図である。 実施の形態1に係るゲートウェイの構成図である。 受信IDリストの一例を示す図である。 ゲートウェイが用いる転送ルールの一例を示す図である。 実施の形態1に係る不正検知処理機能群の構成図である。 不正検知処理機能群のチェック部及びチェックパラメータ保持部の構成の一例を示す図である。 不正検知処理機能群の検査部(フィルタリング部)及び検査パラメータ保持部の構成の一例を示す図である。 実施の形態1に係るECUの構成図である。 不正検知処理機能群による攻撃検知処理の一例を示すフローチャートである。 ゲートウェイの動作(転送処理)の一例を示すフローチャートである。 実施の形態1の変形例に係るゲートウェイの構成図である。 実施の形態1のゲートウェイにおける攻撃検知に係る構成を示すブロック図である。 攻撃検知処理の変形例1を示すフローチャートである。 不正検知処理機能群の変形例1を示す構成図である。 不正検知処理機能群の変形例2を示す構成図である。 攻撃検知処理の変形例2を示すフローチャートである。 不正検知処理機能群の変形例3を示す構成図である。 不正検知処理機能群の変形例4を示す構成図である。 不正検知処理機能群の変形例5を示す構成図である。 ECUの変形例1を示す構成図である。 ECUの変形例2を示す構成図である。 ECUの変形例3を示す構成図である。
 本開示の一態様に係るセキュリティ装置は、1つ又は複数のバスに接続されたセキュリティ装置であって、1つの前記バスからフレームを受信する受信部と、フレームについての検査内容を規定する検査パラメータを保持する保持部と、前記受信部により受信されたフレームに関連する予め定められた条件が成立した場合に前記保持部が保持する前記検査パラメータを更新する更新部と、前記保持部が保持する検査パラメータに基づいて、前記受信部により受信されたフレームが攻撃フレームか否かの判定に係る検査を行う検査部とを備えるセキュリティ装置である。これにより、攻撃フレームか否かの検査に用いる検査パラメータを、受信したフレームに応じて更新できるので、検査部により、多様で変化し得る攻撃に対して攻撃フレームを適切に検知し得る。
 また、例えば、前記セキュリティ装置は、車両に搭載され、前記車両は、前記1つ又は複数のバスを介してCAN(Controller Area Network)プロトコルに従ってフレームの授受を行う複数の電子制御ユニットを搭載することとしても良い。これにより、電子制御ユニット(ECU)間でフレームの授受を行うためのCANに従う車載ネットワークにおいて攻撃フレームが送信された場合にこの攻撃フレームを適切に検知し得るようになる。
 また、例えば、前記セキュリティ装置は更に、1つ以上の前記電子制御ユニットに対する攻撃フレームの影響を抑制するように前記検査部による検査結果に応じた処理を行う処理部を備えることとしても良い。これにより、攻撃フレームに対する防御(攻撃フレームのECUへの影響の抑制)が可能となる。
 また、例えば、前記保持部は、相互に異なる、フレームについての検査内容を規定する複数の検査パラメータを保持し、前記更新部は、前記受信部により受信されたフレームについて複数の予め定められた条件それぞれが成立するか否かの判定を行う、条件毎に対応したチェック機能を有し、当該各チェック機能での判定結果に応じて、前記保持部が保持する前記複数の検査パラメータのうち更新対象とすべき検査パラメータを決定して更新することとしても良い。これにより、受信されたフレームが攻撃フレームか否かを判定するために用いられる各種の検査パラメータが、個々の条件のチェック結果に応じて動的に更新され得るので、攻撃フレームの適切な検知が可能となり得る。
 また、例えば、前記フレームは、IDを格納するIDフィールド、DLC(Data Length Code)及びデータフィールドを含むデータフレームであり、前記更新部が有する複数のチェック機能の一部は、前記IDの値について前記判定を行うIDチェック機能と、前記DLCの値について前記判定を行うDLCチェック機能と、前記IDが同値の2つのフレームが送信される時間間隔である送信周期について前記判定を行う送信周期チェック機能と、前記IDが同値の1つ以上のフレームが所定の単位時間内に送信される頻度である送信頻度について前記判定を行う送信頻度チェック機能と、前記データフィールドに格納されたデータの値について前記判定を行うデータチェック機能とのうちの1つ以上であり、前記保持部が保持する前記複数の検査パラメータは、前記IDの値の検査に係るID検査パラメータと、前記DLCの値の検査に係るDLC検査パラメータと、前記送信周期の検査に係る送信周期検査パラメータと、前記送信頻度の検査に係る送信頻度検査パラメータと、前記データフィールドに格納されたデータの値の検査に係るデータ検査パラメータとのうちの1つ以上を含み、前記検査部は、前記保持部が保持する前記複数の検査パラメータのそれぞれに基づいて前記検査を行うこととしても良い。これにより、攻撃フレームの検知のための個々の検査を、フレームの各フィールドの内容或いはフレームの送信周期、頻度等に基づいて行い得るし、その個々の検査に用いられる閾値等の検査パラメータの更新を、フレームの各フィールドの内容或いはフレームの送信周期、頻度等に基づいて行い得る。
 また、例えば、前記更新部が有する複数のチェック機能の1つ以上において、前記受信部により受信されたフレームの前記IDフィールドに格納された前記IDを参照して前記判定を行うこととしても良い。これにより、検査パラメータの更新を、ID(メッセージID)に基づく判定結果に応じて行い得る。
 また、例えば、前記更新部が有する複数のチェック機能の1つは、前記送信周期チェック機能であり、前記送信周期チェック機能では、前記IDが同値の2つのフレームの受信間隔が所定の許容範囲から外れる場合に当該送信周期チェック機能に対応する前記条件が成立したと判定し、前記更新部は、前記送信周期チェック機能で前記条件が成立したと判定した場合に前記複数の検査パラメータのいずれかを更新することとしても良い。これにより、検査パラメータの更新が、フレームの送信周期に基づく判定結果に応じて行われるので、例えば送信周期を乱すように作用する攻撃フレームが送信された場合等において、送信周期が異常であることに基づいて検査パラメータを攻撃フレームの検知に有用となるように更新することで、適切に攻撃フレームを検知できる可能性がある。
 また、例えば、前記保持部が保持する前記複数の検査パラメータは、前記送信頻度検査パラメータを含み、前記送信頻度検査パラメータは、前記送信頻度の許容範囲の上限を示す閾値を含み、前記検査部は、前記受信部により受信されたフレームに係る前記送信頻度が前記送信頻度検査パラメータにおける前記閾値を超えた場合に当該フレームを攻撃フレームと判定し、前記更新部は、前記送信周期チェック機能で前記条件が成立したと判定した場合に、前記送信頻度検査パラメータにおける前記閾値を更新することとしても良い。これにより、送信頻度に関する送信頻度検査パラメータの更新が、フレームの送信周期に基づく判定結果に応じて行われるので、例えば送信周期を乱すように作用する攻撃フレームが送信された場合等において、送信周期が異常であることに基づいて送信頻度検査パラメータを攻撃フレームの検知に有用となるように更新すること(例えば送信頻度検査パラメータが示す上限値を下げること等)で、適切に攻撃フレームを検知できる可能性がある。
 また、例えば、前記保持部が保持する前記複数の検査パラメータは、前記データ検査パラメータを含み、前記データ検査パラメータは、前記データフィールドに格納された前記データの変化の許容範囲の上限を示す閾値を含み、前記検査部は、前記受信部により受信されたフレームに係る前記データフィールドに格納された前記データの変化が前記データ検査パラメータにおける前記閾値を超えた場合に当該フレームを攻撃フレームと判定し、前記更新部は、前記送信周期チェック機能で前記条件が成立したと判定した場合に、前記データ検査パラメータにおける前記閾値を、より小さい値へと更新することとしても良い。これにより、データの変化の許容範囲の上限に関するデータ検査パラメータの更新が、フレームの送信周期に基づく判定結果に応じて行われるので、例えば送信周期の異常が検知されたことに基づいてデータ検査パラメータでのデータの変化の許容範囲の上限を小さく変更することで、適切に攻撃フレームを検知できる可能性がある。
 また、例えば、前記更新部が有する複数のチェック機能の1つは、前記送信頻度チェック機能であり、前記送信頻度チェック機能では、前記送信頻度が所定の許容範囲の上限を超える場合に当該送信頻度チェック機能に対応する前記条件が成立したと判定し、前記保持部が保持する前記複数の検査パラメータは、前記送信周期検査パラメータを含み、前記送信周期検査パラメータは、前記送信周期の許容範囲を示す閾値を含み、前記更新部は、前記送信頻度チェック機能で前記条件が成立したと判定した場合に、前記送信周期検査パラメータにおける前記閾値を更新することとしても良い。これにより、送信周期の許容範囲に関する送信周期検査パラメータの更新が、フレームの送信頻度に基づく判定結果に応じて行われるので、例えば、送信頻度の異常が検知されたことに基づいて送信周期検査パラメータでの送信周期の許容範囲を狭く変更すること等により、適切に攻撃フレームを検知できる可能性がある。
 また、例えば、前記更新部が有する複数のチェック機能の1つは、前記送信頻度チェック機能であり、前記送信頻度チェック機能では、前記送信頻度が所定の許容範囲の上限を超える場合に当該送信頻度チェック機能に対応する前記条件が成立したと判定し、前記保持部が保持する前記複数の検査パラメータそれぞれは、前記DLC検査パラメータと、前記送信周期検査パラメータと、前記データ検査パラメータとのうちのいずれかであり、前記DLC検査パラメータは、前記DLCの値の許容範囲を示す閾値を含み、前記送信周期検査パラメータは、前記送信周期の許容範囲を示す閾値を含み、前記データ検査パラメータは、前記データの値の許容範囲を示す閾値を含み、前記更新部は、一のフレームに関連して前記送信頻度チェック機能で前記条件が成立したと判定した場合に、当該一のフレームのIDと同一のIDを有するフレームの検査内容として用いられる前記複数の検査パラメータにおける前記閾値を、該当の許容範囲をより狭くするように更新することとしても良い。DLCの値の許容範囲を示す閾値は、例えばDLCの値の上限及び下限を示す閾値であり、送信周期の許容範囲を示す閾値は、例えば許容範囲の上限及び下限を示す閾値であり、データの値の許容範囲を示す閾値は、例えばデータの値の上限及び下限を示す閾値である。これにより、フレームの送信頻度の異常が検知されたことに基づいて各種の検査パラメータで正常なフレームとしての許容範囲を示す閾値を、許容範囲を狭くするように更新する。従って、攻撃フレームが送信された可能性(送信頻度でのチェック結果)に応じて効率的に攻撃フレームか否かの検査を行うことが可能となり得る。
 また、例えば、前記検査部は、前記受信部によりフレームの前記IDフィールドが受信された後であって前記データフィールドに後続する部分が受信される前に前記検査を行うこととしても良い。これにより、メッセージIDに基づく判定が可能なタイミングであって、エラーフレームの送信によって攻撃フレームに対する防御(無力化)が可能なタイミングで、検査がなされ得る。このため、攻撃に対する適切な防御が可能となり得る。
 また、例えば、前記セキュリティ装置は更に、前記更新部が有する複数のチェック機能それぞれについて当該チェック機能での判定結果が得られたタイミングで、前記複数の検査パラメータのいずれかが当該判定結果に応じて更新されるべきか否かを確認し、更新されるべきであれば該当の検査パラメータを更新するように前記更新部を制御し、前記複数の検査パラメータそれぞれの更新状況に応じて、当該各検査パラメータに基づく検査を行うように前記検査部を制御する制御部を備えることとしても良い。これにより、受信されたフレームが攻撃フレームか否かに係る検査が適切なタイミングでなされるようになり得る。このため、攻撃フレームに対する防御を適切なタイミングで行うことが可能となり得る。
 また、例えば、前記更新部は更に、前記受信部により受信されたフレームに関連する予め定められた前記条件が成立した場合に、当該フレームを攻撃フレームであると判定し、前記処理部は更に、1つ以上の前記電子制御ユニットに対する攻撃フレームの影響を抑制するように前記更新部により攻撃フレームと判定されたフレームに対する処理を行うこととしても良い。これにより、検査パラメータの更新用の条件判定(チェック機能)を担う更新部において、攻撃フレームか否かの判定を行うことができる。このため、更新部で攻撃フレームであると判定した場合には検査部での検査を行う必要がなくなり、攻撃フレームの迅速な判定が可能となり得る。
 また、本開示の一態様に係る攻撃検知方法は、1つ又は複数のバスを介して複数の電子制御ユニットがフレームの授受を行う車載ネットワークシステムにおいて用いられる攻撃検知方法であって、前記バスからフレームを受信する受信ステップと、前記受信ステップで受信されたフレームに関連する予め定められた条件が成立した場合に、フレームについての検査内容を規定する検査パラメータを更新する更新ステップと、前記更新ステップで更新された検査パラメータに基づいて、前記受信ステップで受信されたフレームが攻撃フレームか否かの判定に係る検査を行う検査ステップとを含む攻撃検知方法である。これにより、攻撃フレームか否かの検査に用いる検査パラメータを、受信したフレームに応じて更新するので、検査ステップで、多様で変化し得る攻撃に対して攻撃フレームを適切に検知し得る。
 また、本開示の一態様に係るプログラムは、1つ又は複数のバスに接続された、マイクロプロセッサを含むセキュリティ装置に所定処理を実行させるためのプログラムであって、前記所定処理は、1つの前記バスからフレームを受信する受信ステップと、前記受信ステップで受信されたフレームに関連する予め定められた条件が成立した場合に、フレームについての検査内容を規定する検査パラメータを更新する更新ステップと、前記更新ステップで更新された検査パラメータに基づいて、前記受信ステップで受信されたフレームが攻撃フレームか否かの判定に係る検査を行う検査ステップとを含むプログラムである。このプログラムがプロセッサを有する装置にインストールされ実行されることで、その装置はセキュリティ装置として機能し得る。このセキュリティ装置は、多様で変化し得る攻撃に対して攻撃フレームを適切に検知し得る。
 なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD-ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
 以下、実施の形態に係るセキュリティ装置を含む車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
 (実施の形態1)
 以下、複数の電子制御ユニット(ECU)がバスを介して通信する車載ネットワークシステムにおいて用いられる攻撃検知方法について、及び、車載ネットワークシステムに備えられたセキュリティ装置について説明する。
 攻撃検知方法は、車両に搭載された各ECU間での通信に用いられるバスで不正なフレームである攻撃フレームが送信された際に検知するための方法である。車載ネットワークシステムにおけるセキュリティ装置(車載セキュリティ装置)は、攻撃検知方法に関連した攻撃検知機能(攻撃フレームを検知する機能)を少なくとも有する装置である。セキュリティ装置は、攻撃フレームの各ECUへの影響を抑制する防御の機能を有し得るが、攻撃検知機能はその防御の前提となる機能である。なお、セキュリティ装置が攻撃検知結果を他の装置に伝達した場合には他の装置が防御機能を実行し得るようになる。
 [1.1 車載ネットワークシステム10の全体構成]
 図1は、実施の形態1に係る車載ネットワークシステム10の全体構成を示す図である。
 車載ネットワークシステム10は、CANプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ、アクチュエータ、ユーザインタフェース装置等の各種機器が搭載された車両におけるネットワーク通信システムである。車載ネットワークシステム10は、バスを介してフレームに係る通信を行う複数の装置を備え、攻撃検知方法を用いる。具体的には図1に示すように車載ネットワークシステム10は、車両に搭載され各種機器に接続されたECU100a~100dと、バス200a、200bと、ゲートウェイ300とを含んで構成される。なお、車載ネットワークシステム10には、ゲートウェイ300、ECU100a~100d以外にもいくつものECUが含まれ得るが、ここでは、便宜上ゲートウェイ300及びECU100a~100dに注目して説明を行う。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行される制御プログラム(ソフトウェアとしてのコンピュータプログラム)を記憶することができる。例えばプロセッサが、制御プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 ECU100a~100dは、それぞれエンジン101、ブレーキ102、ドア開閉センサ103、窓(ウィンドウ)開閉センサ104といった機器に接続されており、その機器の状態を取得し、周期的に状態を表すフレーム(データフレーム)を、バス200a、バス200b等で構成される車載ネットワークに送信している。
 ゲートウェイ300は、ECU100aとECU100bとが接続されたバス200a、及び、ECU100cとECU100dとが接続されたバス200bと接続されたゲートウェイ装置としての一種のECUである。ゲートウェイ300は一方のバスから受信したフレームを他方のバスに転送する転送機能を有する。また、ゲートウェイ300は、攻撃検知機能を有し、セキュリティ装置として働く。
 車載ネットワークシステム10における各ECUは、CANプロトコルに従ってフレームの授受を行う。CANプロトコルにおけるフレームには、データフレーム、リモートフレーム、オーバーロードフレーム及びエラーフレームがある。
 [1.2 データフレームフォーマット]
 以下、CANプロトコルに従ったネットワークで用いられるフレームの1つであるデータフレームについて説明する。
 図2は、CANプロトコルで規定されるデータフレームのフォーマットを示す図である。同図には、CANプロトコルで規定される標準IDフォーマットにおけるデータフレームを示している。データフレームは、SOF(Start Of Frame)、IDフィールド、RTR(Remote Transmission Request)、IDE(Identifier Extension)、予約ビット「r」、DLC(Data Length Code)、データフィールド、CRC(Cyclic Redundancy Check)シーケンス、CRCデリミタ「DEL」、ACK(Acknowledgement)スロット、ACKデリミタ「DEL」、及び、EOF(End Of Frame)の各フィールドで構成される。
 SOFは、1bitのドミナントで構成される。バスがアイドルの状態はレセシブになっており、SOFによりドミナントへ変更することでフレームの送信開始を通知する。
 IDフィールドは、11bitで構成される、データの種類を示す値であるID(メッセージID)を格納するフィールドである。複数のノードが同時に送信を開始した場合、このIDフィールドで通信調停を行うために、IDが小さい値を持つフレームが高い優先度となるよう設計されている。
 RTRは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント1bitで構成される。
 IDEと「r」とは、両方ドミナント1bitで構成される。
 DLCは、4bitで構成され、データフィールドの長さを示す値である。なお、IDE、「r」及びDLCを合わせてコントロールフィールドと称する。
 データフィールドは、最大64bitで構成される送信するデータの内容を示す値である。8bit毎に長さを調整できる。送られるデータの仕様については、CANプロトコルで規定されておらず、車載ネットワークシステム10において定められる。従って、車種、製造者(製造メーカ)等に依存した仕様となる。
 CRCシーケンスは、15bitで構成される。SOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
 CRCデリミタは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。なお、CRCシーケンス及びCRCデリミタを合わせてCRCフィールドと称する。
 ACKスロットは、1bitで構成される。送信ノードはACKスロットをレセシブにして送信を行う。受信ノードはCRCシーケンスまで正常に受信ができていればACKスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にACKスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
 ACKデリミタは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。
 EOFは、7bitのレセシブで構成されており、データフレームの終了を示す。
 [1.3 ゲートウェイ300の構成]
 図3は、ゲートウェイ300の構成図である。ゲートウェイ300は、バス間でのフレーム転送の機能(転送機能)を実行し、攻撃検知機能を有するセキュリティ装置としても機能する。このためゲートウェイ300は、図3に示すように、フレーム送受信部310と、フレーム解釈部320と、受信ID判断部330と、受信IDリスト保持部340と、フレーム処理部350と、転送ルール保持部360と、不正検知処理機能群370と、フレーム生成部380とを含んで構成される。これらの各構成要素は、ゲートウェイ300における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
 フレーム送受信部310は、バス200a及びバス200bのそれぞれに対して、CANプロトコルに従ったフレームを送受信する。バス200a又はバス200bからフレームを1bitずつ受信し、フレーム解釈部320に転送する。また、フレーム送受信部310は、フレーム生成部380より通知を受けた転送先のバスを示すバス情報及びフレームに基づいて、そのフレームの内容をバス200a又はバス200bに1bitずつ送信する。
 フレーム解釈部320は、フレーム送受信部310よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。フレーム解釈部320は、IDフィールドと判断した値は受信ID判断部330へ転送する。フレーム解釈部320は、受信ID判断部330から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるデータフィールド(データ)とを、フレーム処理部350へ転送するか、フレームの受信を中止するかを決定する。また、フレーム解釈部320は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するように、フレーム生成部380へ通知する。また、フレーム解釈部320は、エラーフレームを受信した場合には、受信中のフレームについてそれ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
 受信ID判断部330は、フレーム解釈部320から通知されるIDフィールドの値を受け取り、受信IDリスト保持部340が保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ID判断部330は、フレーム解釈部320へ通知する。
 受信IDリスト保持部340は、ゲートウェイ300が受信するID(メッセージID)のリストである受信IDリストを保持する。受信IDリストの例については後述する(図4)。
 フレーム処理部350は、転送ルール保持部360が保持する転送ルールに従って、受信したフレームのIDに応じて、転送するバスを決定し、転送するバスのバス情報と、フレーム解釈部320より通知されたメッセージIDと、データとをフレームの転送のためにフレーム生成部380へ通知する。また、フレーム処理部350は、フレーム解釈部320より通知されたフレーム(メッセージ)を不正検知処理機能群370へ通知することで、攻撃検知(つまり攻撃フレームであるか否かの判定)を不正検知処理機能群370に依頼する。フレーム処理部350は、不正検知処理機能群370により攻撃フレームと判定されたフレームについてはフレームの転送のための処理を抑止する。つまり、フレーム処理部350は、攻撃フレームに対する防御の一方法として転送を抑止するためのフィルタリングを行い、攻撃フレーム以外のフレームについては転送ルールに従って転送を行う。
 転送ルール保持部360は、バス毎のフレームの転送についてのルールを表す情報である転送ルールを保持する。転送ルールの例については後述する(図5)。
 不正検知処理機能群370は、受信中のフレームが不正なフレームである攻撃フレームか否かを判定する攻撃検知機能を実現するための機能群である。不正検知処理機能群370の構成要素については後述する。
 フレーム生成部380は、フレーム解釈部320から通知されたエラーフレームの送信の要求に従い、エラーフレームを、フレーム送受信部310へ通知して送信させる。また、フレーム生成部380は、フレーム処理部350から通知されたメッセージIDと、データとを用いてフレームを構成し、バス情報とともにフレーム送受信部310へ通知する。
 [1.4 受信IDリスト例]
 図4は、ゲートウェイ300の受信IDリスト保持部340に保持される受信IDリストの一例を示す図である。
 図4に例示する受信IDリストは、ID(メッセージID)の値が「1」、「2」、「3」及び「4」のいずれかであるメッセージIDを含むフレームを選択的に受信して処理するために用いられる。これは一例に過ぎないが、受信IDリストには、ゲートウェイ300が受信すると定められているフレームのメッセージIDが列挙されている。
 [1.5 転送ルール例]
 図5は、ゲートウェイ300の転送ルール保持部360が保持する転送ルールの一例を示す。
 この転送ルールは、転送元のバスと転送先のバスと転送対象のID(メッセージID)とを対応付けている。図5中の「*」はメッセージIDにかかわらずフレームの転送がなされることを表している。図5の例は、バス200aから受信するフレームはメッセージIDにかかわらず、バス200bに転送するように設定されていることを示している。また、バス200bから受信するフレームのうちメッセージIDが「3」であるフレームのみがバス200aに転送されるように設定されていることを示している。
 [1.6 不正検知処理機能群370の構成]
 図6は、不正検知処理機能群370の構成図である。不正検知処理機能群370は、入力部371と、チェック部372と、チェックパラメータ保持部373と、更新部374と、検査パラメータ保持部375と、検査部(フィルタリング部)376とを含んで構成される。
 入力部371は、フレーム処理部350から攻撃検知の依頼を受け、チェック部372及び検査部(フィルタリング部)376のそれぞれへ、フレーム処理部350から通知されたフレーム(つまりゲートウェイ300がバスから受信したフレーム)の各フィールドの値を伝達することでフレームのチェック、検査(例えばフィルタリングに用いるための検査等)の指示を出す。
 チェック部372は、入力部371から伝達されたフレームの内容に基づいて、そのフレーム(ゲートウェイ300がバスから受信したフレーム)について予め定められた条件が成立するか否かの判定(例えば不正なフレームであるかどうかの判定)を行う機能を有する。チェック部372は、その判定に利用する閾値等のパラメータ(チェックパラメータと称する)を、チェックパラメータ保持部373から取得する。
 チェックパラメータ保持部373は、例えばメモリ等の記憶媒体の一領域で実現され、チェック部372が使用するチェックパラメータ(閾値等)を保持する。
 図7に、チェック部372及びチェックパラメータ保持部373の構成の一例を示す。図7の例では、チェック部372は、フレームのIDフィールドのIDの値について予め定められた条件が成立するか否かを判定する機能(IDチェック機能)を担うIDチェック機能部と、フレームのDLCの値(データ長)について予め定められた条件が成立するか否かを判定する機能(DLCチェック機能)を担うDLCチェック機能部と、IDが同値の2つのフレームが送信される時間間隔である送信周期について予め定められた条件が成立するか否かを判定する機能(送信周期チェック機能)を担う送信周期チェック機能部と、IDが同値の1つ以上のフレームが所定の単位時間内に送信される頻度である送信頻度について予め定められた条件が成立するか否かを判定する機能(送信頻度チェック機能)を担う送信頻度チェック機能部とを有する。図7のチェック部372内の各チェック機能部は、チェックパラメータ保持部373が保持する各チェック機能に対応するルール(チェックパラメータで特定される条件)を取得し、そのルールに従ってチェック処理を行う。チェックパラメータは、IDチェック機能に対応するIDチェックパラメータ、DLCチェック機能に対応するDLCチェックパラメータ、送信周期チェック機能に対応する送信周期チェックパラメータ、及び、送信頻度チェック機能に対応する送信頻度チェックパラメータを含んで構成される。また、図7のチェック部372は、それぞれのチェック機能部におけるチェック結果(例えば予め定められた条件が成立するか否かの判定結果)を個別に出力し、また、それぞれのチェック機能部におけるチェック結果を判定部で総合的に判定した結果を出力する。例えば、判定部は、各チェック機能部におけるチェック結果(例えば条件成立又は不成立を示す判定結果)を用いた論理演算(論理積、論理和等の1つ又は組合せによる演算)の結果を出力する。
 チェック部372のIDチェック機能について、一例としては、チェックパラメータ保持部373のIDチェックパラメータとしてメッセージIDの値が1つ以上含まれており、入力部371からチェック部372に伝達されたIDフィールド内のメッセージIDが、IDチェックパラメータに含まれているいずれかのメッセージIDと同一であれば、チェック部372のIDチェック機能部は、予め定められた条件が成立すると判定する。また、逆に、チェック部372は、例えば、入力部371から伝達されたIDフィールド内のメッセージIDが、IDチェックパラメータに含まれているどのメッセージIDとも異なる場合に、予め定められた条件が成立しないと判定する。チェック部372のIDチェック機能部等により条件が成立したと判定された結果として、例えば、更新部374が、検査パラメータ保持部375に保持されている複数の検査パラメータのいずれかを更新する。
 チェック部372のDLCチェック機能について、一例としては、チェックパラメータ保持部373のDLCチェックパラメータとしてDLCの値が1つ含まれており、入力部371からチェック部372に伝達されたDLCの値が、DLCチェックパラメータに含まれているDLCの値と一致しなかった場合に、チェック部372のDLCチェック機能部は、予め定められた条件が成立すると判定する。また、逆に、チェック部372は、例えば、入力部371から伝達されたDLCの値が、DLCチェックパラメータに含まれているDLCの値と一致した場合に、予め定められた条件が成立しないと判定する。チェック部372のDLCチェック機能部等により条件が成立したと判定された結果として、例えば、更新部374が、検査パラメータ保持部375に保持されている複数の検査パラメータのいずれかを更新する。
 チェック部372の送信周期チェック機能について、一例としては、チェックパラメータ保持部373の送信周期チェックパラメータとして、一定の時間間隔(周期)の範囲(例えば90msecから110msec)が含まれており、入力部371からチェック部372に伝達されたフレームと、そのフレームのメッセージIDと同一のメッセージIDを有する1つ前に受信されたフレームとの受信時間間隔が、送信周期チェックパラメータに含まれている周期の範囲外になっている場合に、チェック部372の送信周期チェック機能部は、予め定められた条件が成立すると判定する。チェック部372の送信周期チェック機能部等により条件が成立したと判定された結果として、例えば、更新部374が、検査パラメータ保持部375に保持されている複数の検査パラメータのいずれかを更新する。
 チェック部372の送信頻度チェック機能について、一例としては、チェックパラメータ保持部373の送信頻度チェックパラメータとして、一定の頻度の上限値(閾値)が含まれており、入力部371からチェック部372に伝達されたフレームについて、そのフレームが送信された頻度(そのフレームを受信した頻度)が、送信頻度チェックパラメータに含まれている頻度の上限値としての例えば単位期間(例えば1秒)あたりの回数(例えば100回)を超えている場合に、チェック部372の送信頻度チェック機能部は、予め定められた条件が成立すると判定する。なお、送信頻度チェックパラメータは、頻度の下限値であっても良く、チェック部372は、単位期間においてその下限値より少ない回数しかフレームを受信しなかった場合に条件が成立したと判定しても良い。なお、送信頻度チェックパラメータは、頻度の範囲(上限値及び下限値)を示すものであっても良い。チェック部372の送信頻度チェック機能部等により条件が成立したと判定された結果として、例えば、更新部374が、検査パラメータ保持部375に保持されている複数の検査パラメータのいずれかを更新する。また、チェック部372は、送信頻度チェック機能における判定結果を単位期間毎に出力しても良く、この出力に対応して更新部374は、検査パラメータを更新し得る。
 また、チェック部372は更に、例えば、フレームのデータフィールドのデータの値について予め定められた条件が成立するか否かを判定する機能(データチェック機能)を担うデータチェック機能部を含んでも良い。データチェック機能は、例えば、データの値がチェックパラメータで指定された値であるか否かをチェックするデータ固定値チェック機能を含み得る。また、データチェック機能は、例えば、データの値がチェックパラメータで指定された範囲内の値であるか否かをチェックするデータ範囲チェック機能を含み得る。また、データチェック機能は、例えば、データの値がチェックパラメータで指定された値以上又は以下であるか否かをチェックするデータ下限チェック機能又はデータ上限チェック機能を含み得る。また、データチェック機能は、例えば、データの値がチェックパラメータで指定された所定演算の結果と比較して一致するか否か等をチェックするデータ演算結果チェック機能を含み得る。なお、データチェック機能のチェック対象とするデータは、データフィールドの全体であっても良いし、データフィールドの一部の1つ又は複数のビット(連続した複数のビット或いは連続しない複数のビット)のみであっても良い。
 また、上述の各チェック機能は、メッセージIDに関係なく適用されるものであっても良いし、特定のメッセージIDを持つフレームに対してのみ適用されるものであっても良い。なお、上述したチェック部372のチェック機能は、一例であり、これに限定されるものではなく、これ以外のチェック機能があっても良いし、上述した複数のチェック機能の一部だけを利用しても良い。
 更新部374は、チェック部372からの判定結果を受けて、その判定結果に応じて、例えば検査パラメータ保持部375内の複数の検査パラメータのうち更新対象とすべき検査パラメータ(閾値等)を決定して、その決定した検査パラメータを更新する。更新部374が更新する検査パラメータ、検査パラメータの更新の程度等は、予め定められた基準、アルゴリズム等に基づいて決定される。その基準、アルゴリズム等は、例えばゲートウェイ300の製造時等において定められる。
 検査パラメータ保持部375は、例えばメモリ等の記憶媒体の一領域で実現され、検査部376が使用する検査パラメータ(閾値等)を保持する。
 検査部376は、検査パラメータ保持部375が保持する検査パラメータに基づいて、入力部371により伝達されたフレーム(バスから受信されたフレーム)が攻撃フレームか否かの判定に係る検査を行う。検査部376による、攻撃フレームか否かの判定に係る検査は、フレームのフィルタリング等の防御機能の前提となるものであり、検査部376は、例えばフィルタリングのための検査を行うフィルタリング部として機能し得る。検査部376は、フレームが攻撃フレームか否かを判定するために用いる閾値等を規定する検査パラメータを検査パラメータ保持部375から取得する。この検査パラメータは、上述のように更新部374により必要に応じて更新される。
 図8に、検査部376及び検査パラメータ保持部375の構成の一例を示す。図8の例では、検査部376は、フレームのIDフィールドのIDの値について検査パラメータで特定される条件が成立するか否かを判定する機能(ID検査機能)を担うID検査機能部と、フレームのDLCの値(データ長)について検査パラメータで特定される条件が成立するか否かを判定する機能(DLC検査機能)を担うDLC検査機能部と、IDが同値の2つのフレームが送信される時間間隔である送信周期について検査パラメータで特定される条件が成立するか否かを判定する機能(送信周期検査機能)を担う送信周期検査機能部と、IDが同値の1つ以上のフレームが所定の単位時間内に送信される頻度である送信頻度について検査パラメータで特定される条件が成立するか否かを判定する機能(送信頻度検査機能)を担う送信頻度検査機能部とを有する。図8の検査部376内の各検査機能部は、検査パラメータ保持部375が保持する各検査機能に対応するルール(検査パラメータで特定される条件)を取得し、そのルールに従って検査処理を行う。検査パラメータは、ID検査機能に対応するID検査パラメータ、DLC検査機能に対応するDLC検査パラメータ、送信周期検査機能に対応する送信周期検査パラメータ、及び、送信頻度検査機能に対応する送信頻度検査パラメータを含んで構成される。また、図8の検査部376は、それぞれの検査機能部における検査結果を判定部で総合的に判定した結果(攻撃フレームか否かを示す情報)を出力する。
 検査部376のID検査機能について、一例としては、検査パラメータ保持部375のID検査パラメータとしてメッセージIDの値が1つ以上含まれており、入力部371から検査部376に伝達されたIDフィールド内のメッセージIDが、ID検査パラメータに含まれているいずれかのメッセージIDと同一であれば、検査部376のID検査機能部は、攻撃フレームであると判定する。また、逆に、検査部376は、例えば、入力部371から伝達されたIDフィールド内のメッセージIDが、ID検査パラメータに含まれているどのメッセージIDとも異なる場合に、攻撃フレームでないと判定する。例えば、検査部376のID検査機能部等のいずれかの検査機能部により攻撃フレームであると判定された結果として、検査部376は、攻撃フレームであることを示す情報を出力する。
 検査部376のDLC検査機能について、一例としては、検査パラメータ保持部375のDLC検査パラメータとしてDLCの値が1つ含まれており、入力部371から検査部376に伝達されたDLCの値が、DLC検査パラメータに含まれているDLCの値と一致しなかった場合に、検査部376のDLC検査機能部は、攻撃フレームであると判定する。また、逆に、検査部376は、例えば、入力部371から伝達されたDLCの値が、DLC検査パラメータに含まれているDLCの値と一致した場合に、攻撃フレームでないと判定する。なお、検査部376は、例えば、入力部371から伝達されたDLCの値が、DLC検査パラメータに含まれているDLCの値より大きい場合に攻撃フレームであると判定したり、DLC検査パラメータに含まれているDLCの値より小さい場合に攻撃フレームであると判定したりしても良く、どのように判定するかについて例えば検査パラメータにおいて規定されていても良い。
 検査部376の送信周期検査機能について、一例としては、検査パラメータ保持部375の送信周期検査パラメータとして、一定の時間間隔(周期)の範囲(例えば90msecから110msec)が含まれており、入力部371から検査部376に伝達されたフレームと、そのフレームのメッセージIDと同一のメッセージIDを有する1つ前に受信されたフレームとの受信時間間隔が、送信周期検査パラメータに含まれている周期の範囲外になっている場合に、検査部376の送信周期検査機能部は、そのフレームが攻撃フレームであると判定する。なお、検査部376は、例えば、同じメッセージIDを有する2つのフレームの受信時間間隔が、閾値を超える或いは閾値未満である場合に攻撃フレームであると判定することとしても良いし、このために送信周期検査パラメータにその閾値が示され、どのような条件で攻撃フレームと判定すべきかが規定されていても良い。
 検査部376の送信頻度検査機能について、一例としては、検査パラメータ保持部375の送信頻度検査パラメータとして、一定の頻度の上限値(閾値)が含まれており、入力部371から検査部376に伝達されたフレームについて、そのフレームが送信された頻度(そのフレームを受信した頻度)が、送信頻度検査パラメータに含まれている頻度の上限値としての例えば単位期間(例えば1秒)あたりの回数(例えば100回)を超えている場合に、検査部376の送信頻度検査機能部は、攻撃フレームであると判定する。
 また、検査部376は更に、例えば、フレームのデータフィールドのデータの値について検査パラメータで特定される条件が成立するか否かにより攻撃フレームであるか否かを判定する機能(データ検査機能)を担うデータ検査機能部を含んでも良い。データ検査機能は、例えば、データの値が検査パラメータで指定された値であるか否かを検査することで攻撃フレームか否かを判定するデータ固定値検査機能を含み得る。また、データ検査機能は、例えば、データの値が検査パラメータで指定された範囲内の値であるか否かを検査するデータ範囲検査機能、データの値が検査パラメータで指定された値以上又は以下であるか否かを検査するデータ下限検査機能又はデータ上限検査機能を含み得る。また、データ検査機能は、例えば、フレームのデータの値について、同一のメッセージIDを有する1つ前に受信されたフレームにおけるデータの値からの変化量が検査パラメータで指定された範囲内の値であるか否かを検査するデータ変化範囲検査機能を含み得る。また、データ検査機能は、例えば、データの値が検査パラメータで指定された所定演算の結果と比較して一致するか否か等を検査するデータ演算結果検査機能を含み得る。なお、データ検査機能の検査対象とするデータは、データフィールドの全体であっても良いし、データフィールドの一部の1つ又は複数のビット(連続した複数のビット或いは連続しない複数のビット)のみであっても良く、また、検査パラメータにおいてデータフィールド内の検査対象のデータの位置について規定することとしても良い。
 また、上述の各検査機能は、メッセージIDに関係なく適用されるものであっても良いし、特定のメッセージIDを持つフレームに対してのみ適用されるものであっても良い。なお、上述した検査部376の検査機能は、一例であり、これに限定されるものではなく、これ以外の検査機能があっても良いし、上述した複数の検査機能の一部だけを利用しても良い。また、チェック部372と検査部376とは、互いに同様の条件についてのチェック機能又は検査機能を備えても良いし、それぞれ異なる条件についてのチェック機能又は検査機能を備えても良い。
 なお、更新部374による検査パラメータの更新方法としては、例えば、チェック部372の送信周期チェック機能部が、送信周期が予め定めた適正な範囲の外となったことで条件が成立したと判定した場合に、検査パラメータ保持部375内の送信頻度検査パラメータにおける頻度の上限値(閾値)を下げる方法がある。
 また、検査部376が上述のデータ変化範囲検査機能を含む場合において、更新部374による検査パラメータの更新方法としては、例えば、チェック部372の送信周期チェック機能部が、送信周期が予め定めた適正な範囲の外となったことで条件が成立したと判定した場合に、検査パラメータにおけるデータ変化範囲検査機能に関するパラメータで指定される範囲を狭める方法がある。これは、送信周期チェック機能部が条件の成立と判定した場合には攻撃を受けている可能性があるので、データ値の変化の許容範囲を狭く限定することで、攻撃の検知率を向上させることに有用である。また、データ値の変化の許容範囲を狭く限定することは、攻撃の影響を低減させる効果を奏し得る。
 また、更新部374による検査パラメータの更新方法としては、チェック部372の送信頻度チェック機能部がメッセージID毎の送信頻度チェック機能において予め定めた適正な頻度でないことで条件が成立したと判定した場合に、各種の検査機能に関するパラメータの閾値を、より攻撃フレームに該当すると判定される度合いを高める方へ変化させる方法がある。より攻撃フレームに該当すると判定される度合を高める方へ変化させることの一例としては、検査パラメータ保持部375内の送信周期検査パラメータにおける周期の範囲(適正な範囲)を狭めることが挙げられる。これは、あるメッセージIDのフレームの送信頻度が増加したことで攻撃されている可能性があるため、安全のために攻撃をより検知し易くする例である。
 また、メッセージIDに関係なく全てのフレームに対する送信頻度チェック機能により送信頻度が予め定めた適正な頻度でないことで条件が成立したと判定した場合には、検査パラメータ保持部375内の送信周期検査パラメータにおける周期の範囲を広げる方法がある。これは、フレームの送信頻度の増加により、あるフレームと他のフレームとの送信タイミングが同じになって通信調停が発生して送信が遅れる可能性が高くなることに対応する一方法である。
 また、検査パラメータ保持部375に、検査部376における複数の検査機能のうち実行されるべき1つ又は複数の検査機能を指定するためのパラメータを検査パラメータに含めて保持させておき、更新部374による検査パラメータの更新方法としては、チェック部372の結果に応じて、検査部376で実行されるべき検査機能を指定するパラメータを更新しても良い。
 また、検査パラメータ保持部375に、検査部376における複数の検査機能のそれぞれが実行される順序を指定するためのパラメータを検査パラメータに含めて保持させておき、更新部374による検査パラメータの更新方法としては、チェック部372の結果に応じて、検査部376で実行される複数の検査機能それぞれの実行の順序を指定するパラメータを更新しても良い。例えば、実行の順序を指定するパラメータに従って複数の検査機能を実行する検査部376では、複数の検査機能のうちいずれかで、受信されたフレームが攻撃フレームであると判定されると、未だ実行が完了していない検査機能の実行を打ち切ることができる。
 また、更新部374による検査パラメータの更新方法としては、チェック部372の送信頻度チェック機能で予め定めた適正な頻度の外となったことで条件が成立したと判定し、かつ、データ範囲チェック機能で予め定めた範囲の外となったことで条件が成立したと判定した場合に、検査パラメータ保持部375内の送信周期検査パラメータにおける周期の範囲を狭める方法もある。このように、複数のチェック機能の結果から検査パラメータを更新しても良い。なお、検査パラメータを更新する場合において、1つの検査機能に関するパラメータのみを更新しても良いし、複数の検査機能に関するパラメータを更新しても良い。
 また、更新部374による検査パラメータの更新方法は、チェック部372がチェックパラメータを用いて予め定められた条件が成立した場合に検査パラメータを更新することとしたが、その条件(つまり更新のための条件)は、受信されたフレームが不正な攻撃フレームである場合、フレームの一部が異常である場合等において満たされるものに限られることはない。例えば、その条件は、受信されたフレームが正常なフレームである場合、フレームの一部が正常である場合等において満たされるものであっても良い。例えば、チェック部372の送信周期チェック機能において正常なフレームが受信された場合に条件が成立したと判定し、この場合に更新部374で、検査パラメータにおける、検査部376で実行されるべき検査機能としてデータ上限検査機能或いはデータ下限検査機能を指定するパラメータを更新しても良いし、データ上限検査機能或いはデータ下限検査機能に関するパラメータを更新しても良い。
 なお、上述した更新部374による検査パラメータの更新方法は、一例に過ぎず、これら以外の更新方法を用いても良いし、上述した更新方法の一部だけを用いても良い。
 [1.7 ECU100aの構成]
 図9は、ECU100aの構成図である。ECU100aは、フレーム送受信部110と、フレーム解釈部120と、受信ID判断部130と、受信IDリスト保持部140と、フレーム処理部150と、データ取得部170と、フレーム生成部180とを含んで構成される。これらの各構成要素は、ECU100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。ECU100b~100dもECU100aと概ね同様の構成を備える。
 フレーム送受信部110は、バス200aに対して、CANプロトコルに従ったフレームを送受信する。バス200aからフレームを1bitずつ受信し、フレーム解釈部120に転送する。また、フレーム生成部180より通知を受けたフレームの内容をバス200aに送信する。
 フレーム解釈部120は、フレーム送受信部110よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。IDフィールドと判断した値は受信ID判断部130へ転送する。フレーム解釈部120は、受信ID判断部130から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるデータフィールドとを、フレーム処理部150へ転送するか、その判定結果を受けた以降においてフレームの受信を中止するかを決定する。また、フレーム解釈部120は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部180へ通知する。また、フレーム解釈部120は、エラーフレームを受信した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
 受信ID判断部130は、フレーム解釈部120から通知されるIDフィールドの値を受け取り、受信IDリスト保持部140が保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ID判断部130は、フレーム解釈部120へ通知する。
 受信IDリスト保持部140は、ECU100aが受信するメッセージIDのリストである受信IDリストを保持する。この受信IDリストは、例えば上述の図4の例と同様である。
 フレーム処理部150は、受信したフレームのデータに応じてECU毎に異なる処理を行う。例えば、エンジン101に接続されたECU100aは、時速が30kmを超えた状態でドアが開いている状態だと、アラーム音を鳴らす機能を備える。そして、ECU100aのフレーム処理部150は、他のECUから受信したデータ(例えばドアの状態を示す情報)を管理し、エンジン101から取得された時速に基づいて一定条件下でアラーム音を鳴らす処理等を行う。ECU100cは、ブレーキがかかっていない状況でドアが開くとアラーム音を鳴らす機能を備える。ECU100b、100dでは特に何もしない。なお、ECU100a~100dは上記以外の機能を備えていても良い。
 データ取得部170は、ECUに繋がっている機器、センサ等の状態を示すデータを取得し、フレーム生成部180に通知する。
 フレーム生成部180は、フレーム解釈部120から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部110へ通知して送信させる。また、フレーム生成部180は、データ取得部170より通知されたデータの値に対して、予め定められたメッセージIDをつけてフレームを構成し、フレーム送受信部110へ通知する。
 [1.8 不正検知処理機能群による攻撃検知処理]
 図10は、不正検知処理機能群370による攻撃検知処理の一例を示すフローチャートである。
 まず、入力部371は、フレーム処理部350からフレームの各フィールドデータを受信する(ステップS1001)。入力部371は、受信した各フィールドデータをチェック部372と検査部(フィルタリング部)376へ通知する。
 次に、チェック部372は、チェックパラメータ保持部373からチェックパラメータを取得する(ステップS1002)。
 そして、チェック部372は、取得したチェックパラメータを用いて、予め定められた条件が成立するか否かを判定するチェック処理を行う(ステップS1003)。チェック部372は、チェック処理(ステップS1003)における判定の結果を、更新部374へ通知する。チェック部372は、チェック処理として複数の条件それぞれに係る判定を行った場合にそれぞれの判定結果を通知し、それぞれの判定結果に基づく総合的な判定結果も通知する。
 更新部374は、チェック部372から通知された判定結果から、検査パラメータ保持部375が保持する検査パラメータの更新が必要であるか否かを判定する(ステップS1004)。
 更新部374は、ステップS1004で検査パラメータの更新が必要であると判断した場合には、検査パラメータ保持部375の検査パラメータを更新する(ステップS1005)。
 ステップS1005での更新の後に、或いは、ステップS1004で検査パラメータの更新が不要であると判断された場合に、検査部376は、検査パラメータ保持部375から検査パラメータ(例えばフィルタリング用に用いられるパラメータ)を取得する(ステップS1006)。
 そして、検査部376は、検査処理(例えばフィルタリングの前提としての検査であるフィルタリング処理)を行う(ステップS1007)。この検査処理により検査部376は、受信されたフレームが攻撃フレームであるか否かを判定し判定結果をフレーム処理部350へ通知する。検査部376が攻撃フレームであると判定した場合には、フレーム処理部350へ攻撃フレームであることを通知し、フレーム処理部350では転送処理を禁止するフィルタリングを行い、攻撃フレームを無効化する。
 [1.9 ゲートウェイの動作例]
 図11は、ゲートウェイ300の動作(転送処理)の一例を示すフローチャートである。ゲートウェイ300は、一のバスから受信したフレームを他のバスへ転送する転送処理を行う。ここでは転送処理は、バス200aから受信したフレームをバス200bへ転送する処理を例として説明するが、バス200bから受信したフレームをバス200aへ転送する処理も同様である。
 まず、ゲートウェイ300のフレーム送受信部310は、バス200aからフレームを受信する(ステップS1101)。フレーム送受信部310は、受信したフレームの各フィールドのデータをフレーム解釈部320へ伝える。
 次に、ゲートウェイ300のフレーム解釈部320は、受信ID判断部330と連携して、受信したフレームのIDフィールドの値(メッセージID)から、受信して処理する必要があるフレームであるかどうかを判定する(ステップS1102)。
 ゲートウェイ300のフレーム解釈部320は、ステップS1102で、受信して処理する必要があると判断した場合には、フレーム処理部350へフレーム内の各フィールドの値を伝える。その後、フレーム処理部350は、転送ルール保持部360に保持する転送ルールに従って、転送先のバスを決定する(ステップS1103)。
 ゲートウェイ300のフレーム処理部350は、不正検知処理機能群370へフレーム内の各フィールドの値を通知することで、攻撃検知(攻撃フレームであるか否かの判定)を依頼する。
 ゲートウェイ300の不正検知処理機能群370は、上述の攻撃検知処理によって、フレーム処理部350から通知されたフレームの各フィールドの値から、そのフレームが攻撃フレームであるか否かを判定し(ステップS1104)、その判定結果をフレーム処理部350へ通知する。
 ゲートウェイ300のフレーム処理部350は、ステップS1104でフレームが攻撃フレームではないと判定された場合には、ステップS1103で決定した転送先のバスに、フレームを転送するようフレーム生成部380へ依頼する。フレーム生成部380は、フレーム処理部350からの依頼を受けて、指定された転送先へフレームを転送する(ステップS1105)。ステップS1105では、フレーム処理部350がフレームの各フィールドの値をフレーム生成部380へ伝達し、これを受けてフレーム生成部380は、フレームを生成してフレーム送受信部310にバス200bへ送信させることで、フレームの転送を実現する。
 なお、転送先の決定(ステップS1103)の後に攻撃フレームであるか否かを判定する例を示したが(ステップS1104)、これに限定されるものではなく、攻撃フレームであるか否かの判定(ステップS1104)の後に、転送先の決定(ステップS1103)を行っても良いし、例えば、転送先の決定(ステップS1103)と攻撃フレームであるか否かの判定(ステップS1104)とを同時に行っても良い。
 [1.10 実施の形態1の効果]
 実施の形態1に係る車載ネットワークシステム10では、ゲートウェイ300でフレームを転送する転送処理におけるフィルタリングのために不正検知処理機能群370による攻撃検知処理を行う。この攻撃検知処理では、フレームが攻撃フレームであるか否かを検査するために用いる検査パラメータを、受信したフレームに基づくチェック機能により一定条件下で変化させ得る。これにより、多様で変化し得る攻撃に適応して攻撃フレームを適切に検知できる度合い(検知精度)が向上し得る。この攻撃フレームの検知精度が向上することで、攻撃に対して適切に防御(転送抑止等といったECUに対する攻撃フレームの影響を抑制するための処理)を行うことが可能となる。
 [1.11 実施の形態1の変形例]
 上述のゲートウェイ300は、フレーム処理部350から不正検知処理機能群370へ攻撃検知(攻撃フレームであるか否かの判定)を依頼し、判定結果に応じてフレームを転送するか否かを切り替えることで、攻撃フレームに対する防御を行う。攻撃検知の結果の利用の方法としては、フレームを転送するか否かというフィルタリングに限られることはない。ここでは、車載ネットワークシステム10におけるゲートウェイ300の変形例として、攻撃検知の結果を、攻撃フレームの無力化による防御に用いるゲートウェイ300aについて説明する。
 図12は、実施の形態1の変形例に係るゲートウェイ300aの構成図である。同図に示すようにゲートウェイ300aでは、フレーム解釈部320は、受信したフレームの各フィールドを不正検知処理機能群370へ伝達する。不正検知処理機能群370の検査部(フィルタリング部)376は、フレームが攻撃フレームであると判定した場合には、フレーム生成部380にエラーフレームの送信を依頼することで、フレームを無力化する。このため、不正検知処理機能群370における検査部376では、ゲートウェイ300aが受信したフレームのIDフィールドが受信された後であってデータフィールドに後続する部分(CRCフィールド)が受信される前にそのフレームが攻撃フレームか否かの判定に係る検査を行う。そして検査部376が攻撃フレームと判定した時点で、フレーム生成部380及びフレーム送受信部310の動作により、エラーフレームが、攻撃フレームが送信されたバス上に送出される。これにより、攻撃フレームのCRCフィールドより前の部分がエラーフレームにより上書きされるので、各ECUが攻撃フレームを適正なフレームと認識して動作してしまうことが阻止され得る。各ECUが攻撃フレームを適正なフレームと認識して動作してしまうことの阻止のためには、攻撃フレームのデータフレームの終了を示すEOFの最後のビットが送信される前にエラーフレームの送信を開始して上書きすれば足りる。従って、エラーフレームの送信開始タイミングは任意に調整し得る。なお、攻撃フレームの送信中において攻撃フレームであるか否かを早期に検査して、攻撃フレームと判定した場合に早期にエラーフレームの送信を開始することは、各ECUにおける攻撃フレームに係るCRCチェック等の処理負荷の低減のために有用となり得る。
 なお、ゲートウェイ300aにおけるフレーム解釈部320は、全てのフレームを不正検知処理機能群370へ伝達しても良い。また、フレーム解釈部320は、受信IDリストに含まれないフレームのみを不正検知処理機能群370へ伝達し、受信IDリストに含まれるフレームに関しては、フレーム処理部350から不正検知処理機能群370へ攻撃検知の依頼を行っても良い。
 また、攻撃検知の結果の利用の方法として、攻撃フレームについてはバス間でのフレームの転送を抑止するフィルタリングと、攻撃フレームが送信されたバスへのエラーフレームの送信による無力化との両方を実行しても良い。
 図13に、実施の形態1に係るゲートウェイ300及び変形例に係るゲートウェイ300aを一般化したゲートウェイ300bの構成を示す。同図において、主に攻撃検知に係る構成(防御に係る構成を含む)を実線枠のブロックで示している。ゲートウェイ300bは、攻撃検知に係る構成として、受信部410、更新部420、保持部430、検査部440及び処理部450を含んでいる。受信部410は、少なくとも1つのバスからフレームを受信する機能を有し、例えばゲートウェイ300、300aにおけるフレーム送受信部310の受信機能部分と同等である。更新部420は、受信部410により受信されたフレームに関連する予め定められた条件が成立した場合に保持部430が保持する検査パラメータを更新する機能を有する。更新部420は、例えばゲートウェイ300、300aにおける不正検知処理機能群370のチェック部372とチェックパラメータ保持部373と更新部374とを合わせたものと同等である。保持部430は、フレームについての検査内容を規定する検査パラメータを保持する機能を有し、例えばゲートウェイ300、300aにおける不正検知処理機能群370の検査パラメータ保持部375と同等である。検査部440は、保持部430が保持する検査パラメータに基づいて、受信部410により受信されたフレームが攻撃フレームか否かの判定に係る検査を行う機能を有する。検査部440は、例えばゲートウェイ300、300aにおける不正検知処理機能群370の検査部376と同等である。処理部450は、ECUに対する攻撃フレームの影響を抑制するように検査部440による検査結果に応じた処理を行う機能を有する。処理部450は、例えば、ゲートウェイ300のフレーム処理部350における攻撃フレームについての転送処理を禁止する機能、及び、ゲートウェイ300aのフレーム生成部380における攻撃フレームに対してエラーフレームを送信する機能の両方或いは一方と同等である。このゲートウェイ300bでは、フレームが攻撃フレームであるか否かを検査部440で検査するために用いる、保持部430の検査パラメータを、更新部420により、受信したフレームに応じて一定条件下で更新する。これにより、多様で変化し得る攻撃に適応して攻撃フレームを適切に検知でき、処理部450により、攻撃に対して適切に防御できる。
 (他の実施の形態)
 以上のように、本開示に係る技術の例示として実施の形態1を説明した。しかしながら、本開示に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本開示の一実施態様に含まれる。
 (1)上記実施の形態における不正検知処理機能群370による攻撃検知処理として、チェック処理を行い、その結果に応じて検査パラメータを更新し、その後に、検査処理を行う例を図10に示したが、これに限定されるものではなく、例えば、図14に示す攻撃検知処理の変形例1のように、ステップS1002~ステップS1003でのチェック処理と、ステップS1006~ステップS1007での検査処理(フィルタリング処理)とを並列に実行し、そのチェック処理の結果に応じて検査パラメータの更新が必要かどうかを判断し(ステップS1004)、必要であれば検査パラメータを更新し(ステップS1005)、更新された検査パラメータを利用して検査処理(フィルタリング処理)を実行しても良い(ステップS1007)。なお、チェック処理と並列に実行する検査処理は、検査パラメータの更新(ステップS1005)の後の検査処理と同じ内容の検査を行っても良いし、互いに異なる内容の検査(複数の検査機能のうち異なる検査機能による検査)を行っても良い。このように、検査処理の実行タイミングは、検査パラメータの更新のためのチェック処理の実行のタイミングと重なっても相違しても良い。検査パラメータの更新がなされるとその更新後においては検査処理では更新された検査パラメータに基づいて検査が行われ得る。また、攻撃検知処理において検査パラメータの更新のみならずチェックパラメータをフレームの内容に応じて更新しても良い。
 (2)上記実施の形態で示した不正検知処理機能群370の構成は、一例に過ぎず、例えば、チェックパラメータ保持部373が保持するチェックパラメータを用いた各種のチェック機能を備えるチェック部372の代わりに、図15に示すように、IDフィールドのみに関連して不正か否かを判定するID関連不正検知処理部372aを備えるように変形しても良い。ID関連不正検知処理部372aは、検知パラメータ保持部373aが保持する検知パラメータを用いて不正か否かの判定を行い、不正である場合において更新部374により、フィルタパラメータ保持部375aが保持するフィルタパラメータを更新する。このフィルタパラメータを用いてフィルタリング部376aが、攻撃フレームのフィルタリングのためにフレームの検査を行う。フィルタパラメータ保持部375aは、検査パラメータ保持部375と同様であり得る。また、フィルタリング部376aは、検査部(フィルタリング部)376と同様であり得る。不正検知処理機能群370の更に具体的な変形例としては、例えば、図16に示す例が挙げられる。図16の例では、IDフィールドのメッセージIDから、同じメッセージIDが設定されているフレームの送信時間間隔(送信周期)をチェックし、周期情報保持部373bに保持されているルールとは異なる周期でフレームが送信されていないかを検知する周期異常検知部372bを備え、周期異常を検知した場合は、更新部374は、フィルタパラメータで示す正常なフレームを許容する範囲を狭める等の処理を行っても良い。また、更新部374は、周期が適正な範囲からずれた時間に応じて、フィルタパラメータの変更量を変えても良い。この例は、概ね実施の形態1で示した不正検知処理機能群370におけるチェック部372が、IDフィールドだけから予め定めた条件が成立するか否かをチェックするチェック機能のみを備えた場合と同等である。この場合において、不正検知処理機能群370による攻撃検知処理では、例えば図17に示すようにIDフィールドの内容をチェックしている間に並行して残りのフィールドの受信を行うこととしても良い。図17の例では、フレーム解釈部320或いはフレーム処理部350は、IDフィールドを受信したタイミングで、不正検知処理機能群370の入力部371へIDフィールドの値を通知する。その後、フレーム解釈部320或いはフレーム処理部350は、IDフィールド以降のフィールドを受信し、受信が完了したタイミングで残りのフィールドのデータを、不正検知処理機能群370の入力部371へ送信する。これにより、ステップS1002からS1005の処理を、フレームの受信完了より早いタイミングで開始することができ、また、ステップS1002~S1005の処理と、ステップS1011の処理とを並列に実行できる。このため、データフィールドの受信と、チェック処理及び検査パラメータの更新とを並列に実行できて総合的な処理時間を短縮し得るので、例えば検査パラメータを用いたフィルタリングのための検査処理等に多くの時間を割くこと等が可能になる。
 (3)上記実施の形態で示した不正検知処理機能群370の構成は、例えば、図18に示すように変形しても良い。図18の変形例に係る不正検知処理機能群370cは、チェック部372に攻撃フレームのフィルタリングのための検査の機能を追加したものである第一フィルタリング部372cを備えている。フィルタパラメータ保持部375cは、検査パラメータ保持部375と同様であり得る。また、第二フィルタリング部376cは、検査部(フィルタリング部)376と同様であり得る。ここで、第一フィルタリング部372cと第二フィルタリング部376cとは、フィルタリングのための検査処理の内容が同じであっても良いし、異なるものであっても良い。なお、図18の例では、第一フィルタリング部372cと第二フィルタリング部376cとが同じフィルタパラメータ保持部375cを利用するとしたが、これに限定されるものではなく、第一フィルタリング部372cと第二フィルタリング部376cとは互いに異なるフィルタパラメータ(検査パラメータ)を用いて検査を行っても良い。なお、第一フィルタリング部372cで攻撃フレームと判定されたフレームについては第二フィルタリング部376cでの検査処理が省略され得る。これにより、第一フィルタリング部372cで攻撃フレームと判定された場合には、いち早く攻撃に対する防御(攻撃フレームの転送抑止、エラーフレームの送信による攻撃フレームの無力化等)を実行できる。また、第一フィルタリング部372cで攻撃フレームと判定できなかった場合にも、フィルタパラメータ(検査パラメータ)を更新することで、第二フィルタリング部376cで攻撃フレームと判定可能になり得る。第一フィルタリング部372cは、図19に示すように、IDフィールド関連の検査処理しか行わないIDフィールド関連フィルタリング部372dであっても良い。図19には、IDフィールド関連フィルタリング部372d、フィルタパラメータ保持部375d、フィルタリング部376d等を備える変形例である不正検知処理機能群370dを示している。これにより、IDフィールドを受信したタイミングで、フィルタリングのための検査処理を実行することができるため、データフィールドの受信と、IDフィールド関連のフィルタリングのための検査処理及びフィルタパラメータ保持部375dが保持するパラメータの更新とを、並列に実行でき、フィルタリング部376dによるフィルタリングのための検査処理に多くの時間を割り当てることが可能となり得る。
 (4)上記実施の形態で示した不正検知処理機能群370の構成は、例えば、図20に示すように変形しても良い。図20の変形例に係る不正検知処理機能群370eは、チェック部372と検査部(フィルタリング部)376と更新部374との間に、フィルタ制御部377を備えている。チェック部372は、各種のチェック機能(IDチェック機能、DLCチェック機能、送信周期チェック機能、送信頻度チェック機能等)によりチェック処理(予め定められた条件が成立するか否かの判定)が終わり、判定結果が得られたものから順に、フィルタ制御部377へその判定結果(チェック結果)を通知する。フィルタ制御部377は、検査パラメータの更新に必要なチェック結果が得られた時点で、更新部374へ検査パラメータの更新を行わせる。また、フィルタ制御部377は、検査部376における各種の検査機能(ID検査機能、DLC検査機能、送信周期検査機能、送信頻度検査機能等)に関連するパラメータが、検査に利用可能な状態に更新されたか否かを管理し、利用可能な状態に更新された段階で、検査部376へ該当する検査機能の実行を行わせる。フィルタ制御部377は、例えば、検査パラメータのうち、1つのフレームの受信に際して特定の検査機能が用いるパラメータについての更新に関わるチェック機能によりそのフレームについてのチェック処理がなされた後(チェック結果次第でパラメータの更新がなされた後)にその特定の検査機能を実行させるように制御し得る。これにより、各種のチェック機能による全てのチェック結果が揃わなくても、一部の検査機能に係る検査(例えばフィルタリングのための検査)を実行することができ、攻撃フレームに対する迅速な防御等が可能となり得る。
 (5)上記実施の形態で示した車載ネットワークシステム10におけるECU(ECU100a~100d)の構成は図9に例示したものに限定されることはなく、例えば、図21に示すECU100eのように、不正検知処理機能群370を備えても良い。図21に示すECUの変形例において、フレーム処理部150が、不正検知処理機能群370へ攻撃検知(攻撃フレームであるか否かの判定)を依頼しても良いし、フレーム解釈部120が、不正検知処理機能群370へ攻撃検知を依頼しても良い。またECUは、例えば図22に示すECU100fのように、フレーム送受信部110と、フレーム解釈部120と、フレーム生成部180と、不正検知処理機能群370とで構成されても良い。図22に示すECUの変形例においてフレーム解釈部120は、全てのフレームを受信し、不正検知処理機能群370へ攻撃検知を依頼する。また、ECUは、図22のECU100fの構成に加えて、図9に示した受信ID判断部130と、受信IDリスト保持部140とを備え、受信IDリスト保持部140が保持する受信IDリストに記載されたメッセージIDを持つフレームのみを受信し、そのフレームに関して、フレーム解釈部120が不正検知処理機能群370へ攻撃検知(攻撃フレームであるか否かの判定)を依頼しても良い。このように車載ネットワークシステム10においてゲートウェイ300のみならずその他のECUも、バスに送信されているフレームが、攻撃フレームであるか否かを検知するセキュリティ装置として機能し得る。また、ECUは、例えば図23に示すECU100gのような構成を備えても良い。図23に示すECUの変形例においては、バスへ送信するためのデータを外部装置(例えばカーナビゲーション装置等)から取得する送信データ取得部171を備え、不正検知処理機能群370は、送信データ取得部171から受信したデータが攻撃フレームであるか否かを判定し、攻撃フレームではないと判定した場合にのみフレーム生成部180へフレームの送信を依頼しても良い。これにより、ECUに対してカーナビゲーション装置等から攻撃フレームが送信されるような場合に攻撃に対する検知及び防御が可能となる。
 (6)上記実施の形態では、更新部374は、チェック部372からの判定結果を受けて、更新が必要な検査パラメータ(閾値等)を決定して、その決定した検査パラメータを更新することとしたが、更新部374はチェック部372からの判定結果以外の条件を踏まえて検査パラメータを更新することとしても良い。例えば、更新部374は、チェック部372からの判定結果に加えて、車両の状態(例えば車速、停車中か否か等)、或いは、車載ネットワークシステム10におけるバスに接続されている機器(ECU等)の構成、チェック部372による以前の判定結果等にも基づいて、更新が必要な検査パラメータの決定、或いは、検査パラメータの更新後の値等を決定しても良い。例えば、車両の状態に基づいて検査パラメータを更新する場合には、車両が停車中であれば検査パラメータを更新しないようにしたり、或いは、更新前後での検査パラメータの値の差異が小さくなるように抑制したりしても良い。また、車載ネットワークシステム10を搭載する車両に複数の運転支援機能が搭載され、いずれかの運転支援機能が動作している状態においては、それ以外の同時に動作することのない運転支援機能に関連するフレームについてのパラメータ(閾値等)を、攻撃フレームと判定する度合いが高まるように変化させても良い。この攻撃フレームか否かの判定については、単にメッセージIDの値のみで攻撃フレームとして判定し得るようにしても良いし、データフィールドの特定のビット等を検査することで攻撃フレームとして判定し得るようにしても良い。また、バスに接続されている機器の構成にも基づいて検査パラメータの更新の処理を行う場合には、例えば、カーナビゲーション装置等といった外部と通信する機能を有する機器が一定数以上ある場合には、攻撃フレームと判定する度合いが高まるように検査パラメータを変化させても良い。
 (7)上記実施の形態では、更新部374が更新する検査パラメータ、検査パラメータの更新の程度等の決定に用いられる基準、アルゴリズム等がゲートウェイ300の製造時等において定められることとしたが、これに限定されるものではなく、製造後(工場出荷後等)に変更できても良い。その基準、アルゴリズム等の変更方法としては、変更に関するデータを外部から受信してそのデータを用いて変更しても良いし、取り外し可能な記憶媒体(光ディスク、磁気ディスク、半導体メディア等)からデータを読み取ることでそのデータを用いて変更しても良い。
 (8)上記実施の形態1の変形例において示したゲートウェイ300bの構成要素である受信部410、更新部420、保持部430、検査部440及び処理部450は、上述のゲートウェイに限らずECU(ECU100a~100g等)に含ませても良い。この場合に、受信部410はフレーム送受信部110の受信機能部分である。
 また、保持部430は、例えば、不正検知処理機能群370、370eの検査パラメータ保持部375、或いは、不正検知処理機能群370a~370dのフィルタパラメータ保持部375a~375d等であり得る。保持部430は、相互に異なる、フレームについての検査内容を規定する複数の検査パラメータを保持し、例えば、複数の検査パラメータは、IDの値の検査に係るID検査パラメータと、DLCの値の検査に係るDLC検査パラメータと、送信周期の検査に係る送信周期検査パラメータと、送信頻度の検査に係る送信頻度検査パラメータと、データフィールドに格納されたデータの値の検査に係るデータ検査パラメータとのうちの1つ以上を含む。送信頻度検査パラメータは、送信頻度の許容範囲の上限を示す閾値を含み、データ検査パラメータは、データフィールドに格納されたデータの変化の許容範囲の上限を示す閾値を含み、送信周期検査パラメータは、送信周期の許容範囲を示す閾値を含み、DLC検査パラメータは、DLCの値の許容範囲を示す閾値を含み得る。また、データ検査パラメータは、データの値の許容範囲を示す閾値を含んでも良い。
 また、更新部420は、不正検知処理機能群370、370eのチェック部372、チェックパラメータ保持部373及び更新部374の組み合わせであり得るし、不正検知処理機能群370aのID関連不正検知処理部372a、検知パラメータ保持部373a及び更新部374の組み合わせであり得るし、不正検知処理機能群370bの周期異常検知部372b、周期情報保持部373b及び更新部374の組み合わせであり得るし、不正検知処理機能群370cの第一フィルタリング部372c、フィルタパラメータ保持部375cの一部又は全部、及び、更新部374の組み合わせであり得るし、不正検知処理機能群370dのIDフィールド関連フィルタリング部372d、フィルタパラメータ保持部375dの一部又は全部、及び、更新部374の組み合わせであり得る。更新部420は、受信部410により受信されたフレームについて複数の予め定められた条件それぞれが成立するか否かの判定を行う、条件毎に対応したチェック機能を有し、その各チェック機能での判定結果に応じて、保持部430が保持する複数の検査パラメータのうち更新対象とすべき検査パラメータを決定して更新する。更新部420は、例えばIDチェック機能と、DLCチェック機能と、送信周期チェック機能と、送信頻度チェック機能と、データチェック機能とのうちの1つ以上のチェック機能を有し得る。例えば、送信周期チェック機能においては、IDが同値の2つのフレームの受信間隔が所定の許容範囲から外れる場合にその送信周期チェック機能に対応する条件が成立したと判定し得る。更新部420は、例えば、送信周期チェック機能で条件が成立したと判定した場合に複数の検査パラメータのいずれかを更新しても良い。また、更新部420は、送信周期チェック機能で条件が成立したと判定した場合に、送信頻度検査パラメータにおける閾値を更新することとしても良い。また、更新部420は、送信周期チェック機能で条件が成立したと判定した場合に、データ検査パラメータにおける閾値を、より小さい値へと更新することとしても良い。また、更新部420は、送信頻度が所定の許容範囲の上限を超える場合に送信頻度チェック機能に対応する条件が成立したと判定して、送信周期検査パラメータにおける閾値を更新することとしても良い。また、更新部420は、一のフレームに関連して送信頻度チェック機能で条件が成立したと判定した場合に、その一のフレームのIDと同一のIDを有するフレームの検査内容として用いられる複数の検査パラメータにおける閾値を、該当の許容範囲をより狭くするように更新することとしても良い。また、更新部420は更に、受信部410により受信されたフレームに関連する予め定められた条件が成立した場合に、そのフレームを攻撃フレームであると判定しても良い。
 また、検査部440は、不正検知処理機能群370、370eの検査部(フィルタリング部)376であり得るし、不正検知処理機能群370aのフィルタリング部376aであり得るし、不正検知処理機能群370bのフィルタリング部376bであり得るし、不正検知処理機能群370cの第二フィルタリング部376cであり得るし、不正検知処理機能群370dのフィルタリング部376dであり得る。また、処理部450は、ECUにおけるフレーム処理部150及びフレーム生成部180の少なくとも一方であり得る。検査部440は、例えば保持部430が保持する複数の検査パラメータのそれぞれに基づいて検査を行い、例えば、受信部410により受信されたフレームに係る送信頻度が送信頻度検査パラメータにおける閾値を超えた場合にそのフレームを攻撃フレームと判定しても良い。また、検査部440は、受信部410により受信されたフレームに係るデータフィールドに格納されたデータの変化がデータ検査パラメータにおける閾値を超えた場合にそのフレームを攻撃フレームと判定しても良い。検査部440が、受信部410によりフレームのIDフィールドが受信された後であってデータフィールドに後続する部分(CRCフィールド)が受信される前に検査を行うこととしても良く、処理部450では攻撃フレームに対してエラーフレームを送信することとしても良い。
 また、ゲートウェイ、ECU等において、不正検知処理機能群370eのフィルタ制御部377(図20参照)のような制御部を設けても良い。この制御部は、更新部420が有する複数のチェック機能それぞれについてそのチェック機能での判定結果が得られたタイミングで、複数の検査パラメータのいずれかがその判定結果に応じて更新されるべきか否かを確認し、更新されるべきであれば該当の検査パラメータを更新するように更新部420を制御し、複数の検査パラメータそれぞれの更新状況に応じて、その各検査パラメータに基づく検査を行うように検査部440を制御する。
 (9)上記実施の形態では、CANプロトコルに従って通信するネットワーク通信システムの例として車載ネットワークを示した。本開示に係る技術は、車載ネットワークでの利用に限定されるものではなく、ロボット、産業機器等のネットワークその他、車載ネットワーク以外のCANプロトコルに従って通信するネットワーク通信システムに利用しても良い。また、CANプロトコルは、オートメーションシステム内の組み込みシステム等に用いられるCANOpen、或いは、TTCAN(Time-Triggered CAN)、CANFD(CAN with Flexible Data Rate)等の派生的なプロトコルも包含する広義の意味のものと扱われるべきである。また、車載ネットワークシステム10においては、CANプロトコル以外の通信プロトコル、例えば、Ethernet(登録商標)や、MOST(登録商標)、FlexRay(登録商標)等を用いても良い。
 (10)上記実施の形態で示した各種処理の手順(例えば図10、図11、図14、図17に示した所定手順等)の実行順序は、必ずしも、上述した通りの順序に制限されるものではなく、開示の要旨を逸脱しない範囲で、実行順序を入れ替えたり、複数の手順を並列に行ったり、その手順の一部を省略したりすることができる。
 (11)上記実施の形態におけるゲートウェイその他のECUは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいても良い。また、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア(デジタル回路等)によりその機能を実現することとしても良い。
 (12)上記実施の形態における各装置を構成する構成要素の一部又は全部は、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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
 (13)上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしても良い。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしても良い。
 (14)本開示の一態様としては、例えば図10、図14、図17等に示す処理手順の全部又は一部を含む攻撃検知方法であるとしても良い。例えば、攻撃検知方法は、1つ又は複数のバスを介して複数のECUがフレームの授受を行う車載ネットワークシステム10において用いられ、受信ステップと更新ステップと検査ステップとを含む。受信ステップでは、バスからフレームを受信し、更新ステップでは、受信ステップで受信されたフレームに関連する予め定められた条件が成立した場合に、フレームについての検査内容を規定する検査パラメータを更新し、検査ステップでは、更新ステップで更新された検査パラメータに基づいて、受信ステップで受信されたフレームが攻撃フレームか否かの判定に係る検査を行う。また、この攻撃検知方法に係る所定処理(攻撃検知処理)をコンピュータにより実現するコンピュータプログラム(制御プログラム)であるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。例えば、制御プログラムは、受信ステップ(例えばステップS1001)と更新ステップ(例えばステップS1002~S1005)と検査ステップ(例えばステップS1006、S1007)とを含む攻撃検知処理をプロセッサに実行させるためのものである。また、本開示の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本開示の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
 (15)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本開示の範囲に含まれる。
 本開示は、車載ネットワークにおいて攻撃フレームが送信されることを適切に検知するために利用可能である。
 10 車載ネットワークシステム
 100a~100g 電子制御ユニット(ECU)
 101 エンジン
 102 ブレーキ
 103 ドア開閉センサ
 104 窓(ウィンドウ)開閉センサ
 110 フレーム送受信部
 120 フレーム解釈部
 130 受信ID判断部
 140 受信IDリスト保持部
 150 フレーム処理部
 170 データ取得部
 171 送信データ取得部
 180 フレーム生成部
 200a,200b バス
 300,300a,300b ゲートウェイ
 310 フレーム送受信部
 320 フレーム解釈部
 330 受信ID判断部
 340 受信IDリスト保持部
 350 フレーム処理部
 360 転送ルール保持部
 370,370a~370e 不正検知処理機能群
 371 入力部
 372 チェック部
 372a ID関連不正検知処理部
 372b 周期異常検知部
 372c 第一フィルタリング部
 372d IDフィールド関連フィルタリング部
 373 チェックパラメータ保持部
 373a 検知パラメータ保持部
 373b 周期情報保持部
 374,420 更新部
 375 検査パラメータ保持部
 375a~375d フィルタパラメータ保持部
 376 検査部(フィルタリング部)
 376a,376b,376d フィルタリング部
 376c 第二フィルタリング部
 377 フィルタ制御部
 380 フレーム生成部
 410 受信部
 430 保持部
 440 検査部
 450 処理部

Claims (16)

  1.  1つ又は複数のバスに接続されたセキュリティ装置であって、
     1つの前記バスからフレームを受信する受信部と、
     フレームについての検査内容を規定する検査パラメータを保持する保持部と、
     前記受信部により受信されたフレームに関連する予め定められた条件が成立した場合に前記保持部が保持する前記検査パラメータを更新する更新部と、
     前記保持部が保持する検査パラメータに基づいて、前記受信部により受信されたフレームが攻撃フレームか否かの判定に係る検査を行う検査部とを備える
     セキュリティ装置。
  2.  前記セキュリティ装置は、車両に搭載され、
     前記車両は、前記1つ又は複数のバスを介してCAN(Controller Area Network)プロトコルに従ってフレームの授受を行う複数の電子制御ユニットを搭載する
     請求項1記載のセキュリティ装置。
  3.  前記セキュリティ装置は更に、1つ以上の前記電子制御ユニットに対する攻撃フレームの影響を抑制するように前記検査部による検査結果に応じた処理を行う処理部を備える
     請求項2記載のセキュリティ装置。
  4.  前記保持部は、相互に異なる、フレームについての検査内容を規定する複数の検査パラメータを保持し、
     前記更新部は、前記受信部により受信されたフレームについて複数の予め定められた条件それぞれが成立するか否かの判定を行う、条件毎に対応したチェック機能を有し、当該各チェック機能での判定結果に応じて、前記保持部が保持する前記複数の検査パラメータのうち更新対象とすべき検査パラメータを決定して更新する
     請求項3記載のセキュリティ装置。
  5.  前記フレームは、IDを格納するIDフィールド、DLC(Data Length Code)及びデータフィールドを含むデータフレームであり、
     前記更新部が有する複数のチェック機能の一部は、
     前記IDの値について前記判定を行うIDチェック機能と、
     前記DLCの値について前記判定を行うDLCチェック機能と、
     前記IDが同値の2つのフレームが送信される時間間隔である送信周期について前記判定を行う送信周期チェック機能と、
     前記IDが同値の1つ以上のフレームが所定の単位時間内に送信される頻度である送信頻度について前記判定を行う送信頻度チェック機能と、
     前記データフィールドに格納されたデータの値について前記判定を行うデータチェック機能とのうちの1つ以上であり、
     前記保持部が保持する前記複数の検査パラメータは、
     前記IDの値の検査に係るID検査パラメータと、
     前記DLCの値の検査に係るDLC検査パラメータと、
     前記送信周期の検査に係る送信周期検査パラメータと、
     前記送信頻度の検査に係る送信頻度検査パラメータと、
     前記データフィールドに格納されたデータの値の検査に係るデータ検査パラメータとのうちの1つ以上を含み、
     前記検査部は、前記保持部が保持する前記複数の検査パラメータのそれぞれに基づいて前記検査を行う
     請求項4記載のセキュリティ装置。
  6.  前記更新部が有する複数のチェック機能の1つ以上において、前記受信部により受信されたフレームの前記IDフィールドに格納された前記IDを参照して前記判定を行う
     請求項5記載のセキュリティ装置。
  7.  前記更新部が有する複数のチェック機能の1つは、前記送信周期チェック機能であり、
     前記送信周期チェック機能では、前記IDが同値の2つのフレームの受信間隔が所定の許容範囲から外れる場合に当該送信周期チェック機能に対応する前記条件が成立したと判定し、
     前記更新部は、前記送信周期チェック機能で前記条件が成立したと判定した場合に前記複数の検査パラメータのいずれかを更新する
     請求項5記載のセキュリティ装置。
  8.  前記保持部が保持する前記複数の検査パラメータは、前記送信頻度検査パラメータを含み、
     前記送信頻度検査パラメータは、前記送信頻度の許容範囲の上限を示す閾値を含み、
     前記検査部は、前記受信部により受信されたフレームに係る前記送信頻度が前記送信頻度検査パラメータにおける前記閾値を超えた場合に当該フレームを攻撃フレームと判定し、
     前記更新部は、前記送信周期チェック機能で前記条件が成立したと判定した場合に、前記送信頻度検査パラメータにおける前記閾値を更新する
     請求項7記載のセキュリティ装置。
  9.  前記保持部が保持する前記複数の検査パラメータは、前記データ検査パラメータを含み、
     前記データ検査パラメータは、前記データフィールドに格納された前記データの変化の許容範囲の上限を示す閾値を含み、
     前記検査部は、前記受信部により受信されたフレームに係る前記データフィールドに格納された前記データの変化が前記データ検査パラメータにおける前記閾値を超えた場合に当該フレームを攻撃フレームと判定し、
     前記更新部は、前記送信周期チェック機能で前記条件が成立したと判定した場合に、前記データ検査パラメータにおける前記閾値を、より小さい値へと更新する
     請求項7記載のセキュリティ装置。
  10.  前記更新部が有する複数のチェック機能の1つは、前記送信頻度チェック機能であり、
     前記送信頻度チェック機能では、前記送信頻度が所定の許容範囲の上限を超える場合に当該送信頻度チェック機能に対応する前記条件が成立したと判定し、
     前記保持部が保持する前記複数の検査パラメータは、前記送信周期検査パラメータを含み、
     前記送信周期検査パラメータは、前記送信周期の許容範囲を示す閾値を含み、
     前記更新部は、前記送信頻度チェック機能で前記条件が成立したと判定した場合に、前記送信周期検査パラメータにおける前記閾値を更新する
     請求項5記載のセキュリティ装置。
  11.  前記更新部が有する複数のチェック機能の1つは、前記送信頻度チェック機能であり、
     前記送信頻度チェック機能では、前記送信頻度が所定の許容範囲の上限を超える場合に当該送信頻度チェック機能に対応する前記条件が成立したと判定し、
     前記保持部が保持する前記複数の検査パラメータそれぞれは、前記DLC検査パラメータと、前記送信周期検査パラメータと、前記データ検査パラメータとのうちのいずれかであり、
     前記DLC検査パラメータは、前記DLCの値の許容範囲を示す閾値を含み、
     前記送信周期検査パラメータは、前記送信周期の許容範囲を示す閾値を含み、
     前記データ検査パラメータは、前記データの値の許容範囲を示す閾値を含み、
     前記更新部は、一のフレームに関連して前記送信頻度チェック機能で前記条件が成立したと判定した場合に、当該一のフレームのIDと同一のIDを有するフレームの検査内容として用いられる前記複数の検査パラメータにおける前記閾値を、該当の許容範囲をより狭くするように更新する
     請求項5記載のセキュリティ装置。
  12.  前記検査部は、前記受信部によりフレームの前記IDフィールドが受信された後であって前記データフィールドに後続する部分が受信される前に前記検査を行う
     請求項5~11のいずれか一項に記載のセキュリティ装置。
  13.  前記セキュリティ装置は更に、
     前記更新部が有する複数のチェック機能それぞれについて当該チェック機能での判定結果が得られたタイミングで、前記複数の検査パラメータのいずれかが当該判定結果に応じて更新されるべきか否かを確認し、更新されるべきであれば該当の検査パラメータを更新するように前記更新部を制御し、前記複数の検査パラメータそれぞれの更新状況に応じて、当該各検査パラメータに基づく検査を行うように前記検査部を制御する制御部を備える
     請求項4~12のいずれか一項に記載のセキュリティ装置。
  14.  前記更新部は更に、前記受信部により受信されたフレームに関連する予め定められた前記条件が成立した場合に、当該フレームを攻撃フレームであると判定し、
     前記処理部は更に、1つ以上の前記電子制御ユニットに対する攻撃フレームの影響を抑制するように前記更新部により攻撃フレームと判定されたフレームに対する処理を行う
     請求項3~13のいずれか一項に記載のセキュリティ装置。
  15.  1つ又は複数のバスを介して複数の電子制御ユニットがフレームの授受を行う車載ネットワークシステムにおいて用いられる攻撃検知方法であって、
     前記バスからフレームを受信する受信ステップと、
     前記受信ステップで受信されたフレームに関連する予め定められた条件が成立した場合に、フレームについての検査内容を規定する検査パラメータを更新する更新ステップと、
     前記更新ステップで更新された検査パラメータに基づいて、前記受信ステップで受信されたフレームが攻撃フレームか否かの判定に係る検査を行う検査ステップとを含む
     攻撃検知方法。
  16.  1つ又は複数のバスに接続された、マイクロプロセッサを含むセキュリティ装置に所定処理を実行させるためのプログラムであって、
     前記所定処理は、
     1つの前記バスからフレームを受信する受信ステップと、
     前記受信ステップで受信されたフレームに関連する予め定められた条件が成立した場合に、フレームについての検査内容を規定する検査パラメータを更新する更新ステップと、
     前記更新ステップで更新された検査パラメータに基づいて、前記受信ステップで受信されたフレームが攻撃フレームか否かの判定に係る検査を行う検査ステップとを含む
     プログラム。
PCT/JP2016/004335 2015-10-09 2016-09-26 セキュリティ装置、攻撃検知方法及びプログラム WO2017061079A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201680021041.6A CN107534560A (zh) 2015-10-09 2016-09-26 安全装置、攻击检测方法以及程序
EP16853238.0A EP3361673B1 (en) 2015-10-09 2016-09-26 Security device, attack detection method, and program
EP20202050.9A EP3783859A1 (en) 2015-10-09 2016-09-26 Security apparatus, attack detection method, and program
US15/880,769 US10931634B2 (en) 2015-10-09 2018-01-26 Security apparatus, attack detection method, and storage medium
US15/940,200 US10193859B2 (en) 2015-10-09 2018-03-29 Security apparatus, attack detection method, and storage medium
US17/152,286 US11336618B2 (en) 2015-10-09 2021-01-19 Security apparatus, attack detection method, and storage medium

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562239465P 2015-10-09 2015-10-09
US62/239,465 2015-10-09
JP2016153816A JP6173541B2 (ja) 2015-10-09 2016-08-04 セキュリティ装置、攻撃検知方法及びプログラム
JP2016-153816 2016-08-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/880,769 Continuation US10931634B2 (en) 2015-10-09 2018-01-26 Security apparatus, attack detection method, and storage medium

Publications (1)

Publication Number Publication Date
WO2017061079A1 true WO2017061079A1 (ja) 2017-04-13

Family

ID=58488226

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/004335 WO2017061079A1 (ja) 2015-10-09 2016-09-26 セキュリティ装置、攻撃検知方法及びプログラム

Country Status (2)

Country Link
US (1) US11336618B2 (ja)
WO (1) WO2017061079A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019220746A1 (ja) * 2018-05-17 2019-11-21 オムロン株式会社 異常検知装置および異常検知方法
WO2020022445A1 (ja) * 2018-07-27 2020-01-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ フレーム転送方法及びセキュアスターカプラ
CN113595990A (zh) * 2018-10-31 2021-11-02 百度在线网络技术(北京)有限公司 车辆网络通信方法和装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210320933A1 (en) * 2021-06-23 2021-10-14 Intel Corporation Post-gateway bus-off attack mitigation
US20220414274A1 (en) * 2021-06-28 2022-12-29 Bae Systems Information And Electronic Systems Integration Inc. Active control of communications bus for cyber-attack mitigation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146600A (ja) * 2004-11-19 2006-06-08 Ntt Docomo Inc 動作監視サーバ、端末装置及び動作監視システム
JP2010251837A (ja) * 2009-04-10 2010-11-04 Fujitsu Ten Ltd ゲートウェイ装置及びゲートウェイ方法
WO2014196181A1 (ja) * 2013-06-04 2014-12-11 三菱電機株式会社 データ認証装置、及びデータ認証方法
WO2014199687A1 (ja) * 2013-06-13 2014-12-18 日立オートモティブシステムズ株式会社 ネットワーク装置およびネットワークシステム
JP2015136107A (ja) * 2014-01-06 2015-07-27 アーガス サイバー セキュリティ リミテッド グローバル自動車安全システム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3037927B2 (ja) * 1998-03-30 2000-05-08 インターナショナル・ビジネス・マシーンズ・コーポレイション 転送方法及び移動無線送受信機
JP2007067812A (ja) 2005-08-31 2007-03-15 Fujitsu Ten Ltd フレーム監視装置
KR100667811B1 (ko) * 2005-09-01 2007-01-11 삼성전자주식회사 Rds 데이터 보안 장치 및 방법
US9787703B2 (en) 2006-05-16 2017-10-10 Lear Corporation Method for vehicle intrusion detection with mobile router
JP4509200B2 (ja) 2008-04-08 2010-07-21 三菱電機株式会社 ネットワークシステム
US7872988B1 (en) 2009-09-21 2011-01-18 Spirent Communications, Inc. Methods and apparatuses for generating network test packets and parts of network test packets
JP2011135131A (ja) 2009-12-22 2011-07-07 Panasonic Electric Works Co Ltd ネットワーク異常検知装置及びネットワーク異常検知プログラム
US8934351B2 (en) 2011-03-24 2015-01-13 Fujitsu Ten Limited Communication apparatus and communication system
JP5671389B2 (ja) 2011-03-24 2015-02-18 富士通テン株式会社 通信装置および通信システム
JP5423754B2 (ja) 2011-09-28 2014-02-19 株式会社デンソー バス監視セキュリティ装置及びバス監視セキュリティシステム
EP2832070B1 (en) 2012-03-29 2020-05-20 Arilou Information Security Technologies Ltd. Device for protecting a vehicle electronic system
US20130278441A1 (en) 2012-04-24 2013-10-24 Zetta Research and Development, LLC - ForC Series Vehicle proxying
US8788731B2 (en) 2012-07-30 2014-07-22 GM Global Technology Operations LLC Vehicle message filter
JP5919205B2 (ja) 2013-01-28 2016-05-18 日立オートモティブシステムズ株式会社 ネットワーク装置およびデータ送受信システム
US9401923B2 (en) 2013-10-23 2016-07-26 Christopher Valasek Electronic system for detecting and preventing compromise of vehicle electrical and control systems
KR101472896B1 (ko) 2013-12-13 2014-12-16 현대자동차주식회사 차량 내 통신 네트워크에서의 보안 강화 방법 및 그 장치
CN104967588B (zh) 2014-05-26 2017-02-15 腾讯科技(深圳)有限公司 分布式拒绝服务DDoS攻击的防护方法及其装置和系统
TWI533196B (zh) 2014-10-09 2016-05-11 緯創資通股份有限公司 虛擬按鈕的顯示方法及其電子裝置與電腦程式產品
DE102015105134A1 (de) 2015-04-02 2016-10-06 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Steuergerät zum Verbinden eines CAN-Busses mit einem Funknetzwerk und Kraftfahrzeug mit einem solchen Steuergerät

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146600A (ja) * 2004-11-19 2006-06-08 Ntt Docomo Inc 動作監視サーバ、端末装置及び動作監視システム
JP2010251837A (ja) * 2009-04-10 2010-11-04 Fujitsu Ten Ltd ゲートウェイ装置及びゲートウェイ方法
WO2014196181A1 (ja) * 2013-06-04 2014-12-11 三菱電機株式会社 データ認証装置、及びデータ認証方法
WO2014199687A1 (ja) * 2013-06-13 2014-12-18 日立オートモティブシステムズ株式会社 ネットワーク装置およびネットワークシステム
JP2015136107A (ja) * 2014-01-06 2015-07-27 アーガス サイバー セキュリティ リミテッド グローバル自動車安全システム

Non-Patent Citations (1)

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

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019220746A1 (ja) * 2018-05-17 2019-11-21 オムロン株式会社 異常検知装置および異常検知方法
JP2019200670A (ja) * 2018-05-17 2019-11-21 オムロン株式会社 サイバー攻撃を検知する異常検知装置および異常検知方法
CN112119392A (zh) * 2018-05-17 2020-12-22 欧姆龙株式会社 异常检测装置以及异常检测方法
JP7035791B2 (ja) 2018-05-17 2022-03-15 オムロン株式会社 サイバー攻撃を検知する異常検知装置および異常検知方法
CN112119392B (zh) * 2018-05-17 2024-02-13 欧姆龙株式会社 异常检测装置以及异常检测方法
WO2020022445A1 (ja) * 2018-07-27 2020-01-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ フレーム転送方法及びセキュアスターカプラ
US11764998B2 (en) 2018-07-27 2023-09-19 Panasonic Intellectual Property Corporation Of America Frame transfer method and secure star coupler
CN113595990A (zh) * 2018-10-31 2021-11-02 百度在线网络技术(北京)有限公司 车辆网络通信方法和装置
CN113595990B (zh) * 2018-10-31 2023-04-25 百度在线网络技术(北京)有限公司 车辆网络通信方法和装置

Also Published As

Publication number Publication date
US11336618B2 (en) 2022-05-17
US20210144124A1 (en) 2021-05-13

Similar Documents

Publication Publication Date Title
JP6173541B2 (ja) セキュリティ装置、攻撃検知方法及びプログラム
JP6626811B2 (ja) 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法
JP7008100B2 (ja) 不正対処方法、不正検知電子制御ユニットおよびネットワーク通信システム
WO2017061079A1 (ja) セキュリティ装置、攻撃検知方法及びプログラム
JP6594732B2 (ja) 不正フレーム対処方法、不正検知電子制御ユニット及び車載ネットワークシステム
JP7030046B2 (ja) 不正通信検知方法、不正通信検知システム及びプログラム
JP6849528B2 (ja) フレーム伝送阻止装置、フレーム伝送阻止方法及び車載ネットワークシステム
WO2015159520A1 (ja) 車載ネットワークシステム、不正検知電子制御ユニット及び不正検知方法
WO2016038816A1 (ja) 車両用通信装置、車載ネットワークシステム及び車両用通信方法
JP7182559B2 (ja) ログ出力方法、ログ出力装置及びプログラム
WO2019187350A1 (ja) 不正検知方法、不正検知装置及びプログラム
WO2016116973A1 (ja) 不正フレーム対処方法、不正検知電子制御ユニット及び車載ネットワークシステム
JP6527647B1 (ja) 不正検知方法、不正検知装置及びプログラム
JP6874102B2 (ja) 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法
WO2018020833A1 (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: 16853238

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE