WO2018168291A1 - 情報処理方法、情報処理システム、及びプログラム - Google Patents

情報処理方法、情報処理システム、及びプログラム Download PDF

Info

Publication number
WO2018168291A1
WO2018168291A1 PCT/JP2018/004781 JP2018004781W WO2018168291A1 WO 2018168291 A1 WO2018168291 A1 WO 2018168291A1 JP 2018004781 W JP2018004781 W JP 2018004781W WO 2018168291 A1 WO2018168291 A1 WO 2018168291A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
data frame
reception
frame
reception interval
Prior art date
Application number
PCT/JP2018/004781
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 JP2017248858A external-priority patent/JP6956624B2/ja
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority to CN201880000973.1A priority Critical patent/CN108885664B/zh
Priority to EP18768478.2A priority patent/EP3598329B1/en
Publication of WO2018168291A1 publication Critical patent/WO2018168291A1/ja
Priority to US16/237,327 priority patent/US10911182B2/en
Priority to US17/128,542 priority patent/US11411681B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/48Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication

Definitions

  • This disclosure relates to a technique for processing data flowing in an in-vehicle network.
  • ECUs Electronic Control Units
  • CAN Control Area Network
  • a node that transmits a frame (hereinafter also referred to as a transmission node) applies a voltage to two buses, a value of “1” called “recessive” corresponding to the presence or absence of a potential difference between each bus, and “0” called “dominant”.
  • the binary data of the frame is transmitted by transmitting the value of.
  • the receiving node transmits a frame called an error frame when there is an abnormality in the format of the received frame.
  • An error frame is a frame that starts with, for example, a continuous 6-bit dominant, and the transmission node and other reception nodes that have received this frame detect the occurrence of an error.
  • the transmission node transmits an ID indicating the type of data for each frame, and each reception node receives only a frame including a predetermined ID.
  • CAN employs a CSMA / CR (Carrier Sense Multiple Access / Collision Resolution) method, and arbitration is performed by ID when multiple nodes transmit simultaneously, and a frame with a small ID value is preferentially transmitted.
  • CSMA / CR Carrier Sense Multiple Access / Collision Resolution
  • Patent Document 1 discloses a CAN frame monitoring function for monitoring the communication state of a CAN network. Specifically, it is detected whether a frame is transmitted to the network at a predetermined communication interval, and a frame transmitted outside the specified communication interval is determined to be an illegal frame. A method for preventing control using a frame is disclosed.
  • Patent Document 2 when a frame communication interval is shorter than a predetermined communication interval, it waits whether a frame having the same identifier is received before a predetermined time elapses, and a frame having the same identifier within the time Discloses a method of determining that fraud has occurred when a message is further received.
  • An information processing method is an information processing method for processing a data frame flowing in an in-vehicle network including one or more electronic control units, which is performed by an information processing system including a storage device.
  • the information processing method and the like of the present disclosure can detect illegal frames more appropriately and provide a safer in-vehicle network system.
  • FIG. 1 is a block diagram illustrating an overall configuration of an in-vehicle network system according to an embodiment.
  • FIG. 2 is a diagram showing a data frame format of the CAN protocol.
  • FIG. 3 is a diagram illustrating an error frame format of the CAN protocol.
  • FIG. 4 is a block diagram illustrating a functional configuration of the monitoring ECU according to the embodiment.
  • FIG. 5 is a diagram illustrating an example of a data configuration of the reception log held by the reception log holding unit of the monitoring ECU according to the embodiment.
  • FIG. 6 is a diagram illustrating an example of a data configuration of a normal model held by the normal model holding unit of the monitoring ECU according to the embodiment.
  • FIG. 1 is a block diagram illustrating an overall configuration of an in-vehicle network system according to an embodiment.
  • FIG. 2 is a diagram showing a data frame format of the CAN protocol.
  • FIG. 3 is a diagram illustrating an error frame format of the CAN protocol.
  • FIG. 4 is
  • FIG. 7 is a diagram illustrating an example of a data configuration of rules held by the rule holding unit of the monitoring ECU according to the embodiment.
  • FIG. 8 is a flowchart showing the processing of the monitoring ECU in the embodiment.
  • FIG. 9 is a flowchart illustrating a specific example of processing by the fraud detection unit of the monitoring ECU according to the embodiment.
  • FIG. 10 is a block diagram illustrating a functional configuration of the ECU that is an example of a node connected to the in-vehicle network in the embodiment.
  • FIG. 11 is a diagram illustrating an example of a data frame transmitted to the bus by the ECU according to the embodiment.
  • FIG. 12A is a diagram illustrating another example of the reception log held by the reception log holding unit of the monitoring ECU according to the embodiment.
  • FIG. 12B is a diagram for describing a data frame received by the monitoring ECU according to the embodiment.
  • FIG. 13A is a diagram illustrating another example of the reception log held by the reception log holding unit of the monitoring ECU according to the embodiment.
  • FIG. 13B is a diagram for describing a data frame received by the monitoring ECU according to the embodiment.
  • FIG. 14A is a diagram illustrating another example of the reception log held by the reception log holding unit of the monitoring ECU according to the embodiment.
  • FIG. 14B is a diagram for explaining a data frame received by the monitoring ECU according to the embodiment.
  • FIG. 15 is a diagram illustrating the distribution of the reception intervals of each group set by the monitoring ECU in the embodiment.
  • This disclosure provides an information processing method and the like that realizes a safer in-vehicle network system by appropriately detecting an illegal frame.
  • An information processing method is an information processing method for processing a data frame flowing in an in-vehicle network including one or more electronic control units, which is performed by an information processing system including a storage device.
  • a reception step of sequentially receiving a plurality of data frames flowing through the frame a frame collection step of recording reception interval information indicating a reception interval between the plurality of data frames as frame information in a reception log held in the storage device,
  • the storage device further holds a normal model indicating the characteristics of a normal data frame, and the feature amount obtained using the reception interval information in the illegal data existence determination step, the normal model, May be used to determine whether there is an illegal data frame among the plurality of data frames.
  • the presence or absence of an illegal data frame can be determined based on the magnitude of the difference between the feature amount related to the distribution of normal data frame reception intervals and the feature amount related to the distribution of illegal data frame reception intervals. . Even for a group of data frames that have conventionally been difficult to determine fraud, it is possible to determine with higher accuracy.
  • the normal model indicates a reception interval between normal data frames as the feature
  • the feature amount acquired in the feature amount acquisition step includes the reception interval between the received data frames and the normal model.
  • Is a degree of abnormality of the reception interval between the plurality of received data frames, calculated using density ratio estimation with the reception interval between normal data frames indicated by The presence or absence of an illegal data frame among the plurality of data frames may be determined based on the degree.
  • the normal model indicates dispersion of reception intervals between normal data frames as the feature
  • the feature amount acquired in the feature amount acquisition step is a reception interval between the plurality of received data frames.
  • calculating the difference between the distribution of the reception intervals between the normal data frames and the distribution of the reception intervals in the step of determining the presence or absence of illegal data, and based on the magnitude of the difference, The presence / absence of an illegal data frame may be determined.
  • the frame information further includes a data value included in each of the plurality of data frames in association with the reception interval information, and further based on the reception interval information and the data value included in the frame information.
  • the groups that do not contain a group or incorrect data frame may be identified.
  • the data frame received in the receiving step executed after identifying the group for each of the one or more groups in the illegal data existence determining step determines whether the data frame belongs to the identified group.
  • a data frame determination step for determining whether the frame is a normal data frame or an illegal data frame may be further included.
  • the storage device further holds a reception interval rule that is a rule regarding a data frame reception interval and a data change amount rule that is a rule regarding a temporal change amount of a data value included in the data frame.
  • the one or more groups are set based on the reception interval information and the data value, and the reception interval rule and the data change amount rule, and data frames included in each of the one or more groups are set.
  • the unauthorized data existence determination step may be executed for the one or more groups.
  • the storage device further holds a reception interval rule that is a rule regarding a data frame reception interval and a data change amount rule that is a rule regarding a temporal change amount of a data value included in a normal data frame
  • a plurality of groups are set in the plurality of data frames based on the reception interval information and the data value, and the reception interval rule and the data change amount rule, and are included in each of the plurality of groups.
  • the illegal data existence determination step may be executed for the plurality of groups.
  • the data change amount rule may specify that a temporal change amount of a data value included in the data frame is equal to or less than a predetermined value.
  • the storage device further holds autoregressive coefficients obtained from time-series data of reception intervals of normal data frames, and the one or more groups set in the grouping step are a plurality of groups,
  • the feature amount related to the reception interval between the plurality of data frames included in each of the plurality of groups is a predicted reception interval predicted using the reception interval information, and in the feature amount acquisition step, each of the plurality of groups
  • the predicted reception interval is obtained using the autoregressive coefficient and the frame information, and each of the plurality of groups is determined in the illegal data existence determination step.
  • the predicted reception interval and the latest data frame included in the group Calculating a prediction error which is an error between the actual reception interval of beam, a group wherein the prediction error is smallest among the plurality of groups, it may be identified as the group that does not contain bad data frame.
  • an illegal data frame is selected from the plurality of groups using an identifier that has learned a reception interval vector of a normal data frame and a reception interval vector of an illegal data frame. And a group not including an illegal data frame may be identified.
  • this classifier may be configured using at least one of a random forest, a support vector machine (Support Vector Machine), an NN (Nearest Neighbor), and a neural network (Neural Network). .
  • the group including the illegal data frame is identified with higher accuracy than the conventional one by the discriminator that has learned the reception interval vector of the normal data frame and the reception interval vector of the illegal data frame. Therefore, the in-vehicle network can be more reliably protected.
  • An information processing system is an information processing system that includes a processor and a storage device, and that processes a data frame flowing in an in-vehicle network including one or more electronic control units, and the processor includes: A plurality of data frames flowing in the in-vehicle network are sequentially received, reception interval information indicating reception intervals between the plurality of data frames is recorded as frame information in a reception log held in the storage device, and the reception interval information Then, a feature amount related to a distribution of reception intervals between the plurality of data frames is acquired, and the presence / absence of an illegal data frame in the plurality of data frames is determined using the feature amount.
  • a program causes the processor to execute the information processing method of the present disclosure in an information processing system including a processor and a storage device.
  • An information processing system described as an embodiment is an information processing system that includes a processor and a storage device and processes a data frame that flows through an in-vehicle network including one or more electronic control units.
  • the processor sequentially receives a plurality of data frames flowing through the in-vehicle network, and records reception interval information indicating a reception interval between these data frames as frame information in a reception log held in a storage device. Further, the processor obtains a feature amount related to a distribution of reception intervals between the plurality of data frames from the recorded reception interval information, and uses the obtained feature amount to obtain an illegal number in the plurality of data frames. The presence / absence of a data frame is determined.
  • a plurality of data frames having a common identifier (ID) indicating the type are classified into two series (groups).
  • FIG. 1 is a block diagram showing the overall configuration of the in-vehicle network system in the present embodiment.
  • the in-vehicle network system 10 includes a monitoring ECU 100, an ECU 200 a, an ECU 200 b, and a bus 300.
  • the monitoring ECU 100 is connected to the bus 300 and monitors data frames flowing on the bus 300 to monitor whether or not an illegal data frame is flowing.
  • Monitoring ECU 100 is an example of an information processing system according to the present embodiment that includes a microcontroller (not shown) including a communication circuit, a processor, and a memory.
  • the ECU 200a is connected to the bus 300 and further connected to the speed sensor 210.
  • the ECU 200a periodically transmits the vehicle speed obtained from the speed sensor 210 to the bus 300 in a data frame.
  • the ECU 200b is connected to the bus 300 and further connected to the meter 220.
  • the ECU 200b acquires a data frame including the vehicle speed transmitted from the ECU 200a to the bus 300, and causes the meter 220 to display the vehicle speed acquired from the data frame.
  • FIG. 2 is a diagram illustrating a format of a data frame of the CAN protocol. Here, a data frame in a standard ID format in the CAN protocol is shown.
  • a data frame includes a Start Of Frame (hereinafter referred to as SOF), an ID field, a Remote Transmission Request (hereinafter referred to as RTR), an IDentifier Extension (hereinafter referred to as IDE), a reserved bit (hereinafter referred to as r), data Length code (hereinafter referred to as DLC), data field, cyclic redundancy check (hereinafter referred to as CRC) sequence, CRC delimiter (left DEL in the figure), acknowledgement (hereinafter referred to as ACK) slot, and ACK delimiter (in the figure) DEL on the right) and an end-of-frame (hereinafter referred to as EOF).
  • SOF Start Of Frame
  • RTR Remote Transmission Request
  • IDE IDentifier Extension
  • r reserved bit
  • DLC data Length code
  • DLC data field
  • CRC cyclic redundancy check
  • CRC delimiter left DEL in the figure
  • ACK acknowledgement
  • SOF is a 1-bit dominant.
  • the bus 300 is recessive when idle, and the transmitting node notifies the start of frame transmission by changing the bus 300 from recessive to dominant.
  • the data frame type here refers to, for example, the content of data or the transmission node that is the transmission source of the data frame.
  • the ID is also used for communication arbitration between data frames in which a plurality of nodes start transmission simultaneously on the same network. More specifically, a data frame having a smaller ID has a higher priority.
  • RTR is a 1-bit dominant and indicates a data frame.
  • IDE and r are 1-bit dominants, respectively.
  • DLC is a 4-bit value indicating the length of the following data field.
  • the data field is a portion of data to be transmitted having a maximum length of 64 bits and is a payload of a data frame.
  • the length can be adjusted in units of 8 bits.
  • the specifications regarding the assignment of data to be transmitted to this part depend on the vehicle type and manufacturer.
  • the CRC sequence is 15 bits long and indicates a value calculated from the transmission values of the SOF, ID field, control field, and data field.
  • the receiving node determines the presence / absence of abnormality by comparing the result calculated from the received values of the SOF, ID field, control field, and data field for each data frame with the value of the CRC sequence.
  • the CRC delimiter is a 1-bit recessive delimiter that represents the end of the CRC sequence.
  • the transmitting node transmits recessive in this part. If the receiving node has successfully received the CRC sequence, it transmits a dominant in this part.
  • the bus 300 Since dominant is given priority between dominant and recessive transmitted simultaneously as described above, in the in-vehicle network system 10 in which communication is normally performed, the bus 300 It is a dominant state.
  • ACK delimiter is a 1-bit recessive delimiter that represents the end of an ACK slot.
  • EOF is 7-bit recessive and indicates the end of the data frame.
  • FIG. 3 is a diagram showing a format of an error frame of the CAN protocol.
  • the error frame is composed of three parts: an error flag (primary), an error flag (secondary), and an error delimiter (DEL in the figure).
  • the error flag (primary) is used to notify other nodes of the occurrence of an error. It is a continuous 6-bit dominant, and violates the bit stuffing rule in the CAN protocol of transmitting 1 bit of a different value next to 5 bits of the same continuous value. The occurrence of this bit stuffing rule violation causes transmission of an error flag (secondary) from another node.
  • the error flag (secondary) is a 6-bit dominant transmitted to notify other nodes of the occurrence of an error. All nodes receiving the error flag (primary) transmit.
  • Error delimiter is an 8-bit recessive signal that indicates the end of an error frame.
  • FIG. 4 is a block diagram showing a functional configuration of the monitoring ECU in the present embodiment.
  • the monitoring ECU 100 includes a frame transmission / reception unit 110, a frame collection unit 120, a fraud occurrence detection unit 130, a group setting unit 140, a fraudulent data identification unit 150, a fraud handling unit 160, and a frame generation unit 170.
  • the frame transmission / reception unit 110 transmits / receives a data frame to / from the bus 300 according to the CAN protocol. That is, the frame transmission / reception unit 110 sequentially receives a plurality of data frames by receiving data frames bit by bit from the bus 300 constituting the in-vehicle network system 10 (reception step). When reception of each data frame is completed without error, the ID, DLC, and data field that are part of the data frame are transferred to the frame collection unit 120 and the fraud detection unit 130.
  • the frame transmitting / receiving unit 110 transmits the error frame described above with reference to FIG.
  • the frame transmission / reception unit 110 receives an error frame from another node, that is, when it is determined that the received frame is an error frame from the value, the frame is discarded thereafter.
  • the frame transmission / reception unit 110 that has received the data frame transmission request from the frame generation unit 170 transmits the data frame to the bus 300 bit by bit.
  • the frame collection unit 120 receives the above-described part of the data frame from the frame transmission / reception unit 110, and obtains the time when the data frame was received (hereinafter referred to as reception time), and the ID and data field included in the data frame. Then, it is recorded as a record of the reception log held in the reception log holding unit 180 (frame collection step).
  • reception time is an example of reception interval information in the present embodiment.
  • the reception time of the data frame is a time obtained by referring to a timer that measures the time elapsed since the monitoring ECU 100 was activated. Such a timer is included in a microcontroller provided in the monitoring ECU 100, for example.
  • the fraud detection unit 130 includes a reception log held in the reception log holding unit 180 and a rule stored in the rule holding unit 190, specifically, a rule regarding a data frame reception interval (hereinafter referred to as a reception interval rule). To determine whether fraud has occurred.
  • the reception interval rule is determined for each ID based on the specifications of the in-vehicle network system 10, for example.
  • the fraud occurrence detection unit 130 refers to the reception log held in the reception log holding unit 180 and acquires the reception interval of data frames having a common ID. Then, it is determined whether or not fraud has occurred in light of the acquired reception interval in light of the average reception interval and margin of the ID that is the reception interval rule held in the rule holding unit 190.
  • FIG. 5 is a diagram illustrating an example of a data configuration of a reception log held by the reception log holding unit 180 of the monitoring ECU 100 according to the present embodiment.
  • the record (or frame information) of three data frames whose ID is 0x100 is stored in the reception log.
  • the reception log includes information of each data frame notified from the frame collection unit 120, specifically, reception time, ID, data field value (hereinafter also referred to as data value), reference, and group.
  • the reception time of the oldest data frame among the information of the three data frames stored in this example is 50,250 ⁇ s, and the value of the data field is 0x00 0x00. Also, the reception time of the newest data frame is 150,560 ⁇ s, and the value of the data field is 0x00 0x1A.
  • the reception log has a “reference” column. The value in this column indicates whether the reception time or data value of each data frame is used as a criterion for determination regarding the presence or absence of an illegal data frame in a series of processes. In this example, a data frame having a value of 1 in the “reference” column is used for such a reference.
  • the fraud occurrence detection unit 130 determines whether each data frame in which frame information is recorded in the reception log stored in the reception log holding unit 180 conforms to the reception interval rule. In this determination, for example, a value obtained by adding an average of predetermined reception intervals to the reception time of a data frame whose reference column value is 1 among the data frames of the ID to be determined is used as the next estimated reception time.
  • the fraud detection unit 130 has a reception time equal to or greater than a value obtained by subtracting a margin of a reception interval from the next estimated reception time among the data frames having the same ID received after the data frame, and at the next estimated reception time. A data frame that is equal to or smaller than the sum of the reception interval margins is determined to be a data frame that conforms to the reception interval rule.
  • the fraud occurrence detection unit 130 determines whether there is one data frame that conforms to the reception interval rule of the next assumed reception time and the current time is greater than the value obtained by adding the reception interval margin to the next assumed reception time. If there is one data frame that conforms to the reception interval rule of the next assumed reception time and the current time is greater than the value obtained by adding the reception interval margin to the next assumed reception time, the fraud occurrence detection unit 130 Then, the value of the reference column of the data frame determined to conform to the reception interval rule is changed to 1.
  • the fraud detection unit 130 determines the data change amount in which the data value of each data frame that conforms to the reception interval rule is stored in the rule holding unit 190. It is determined whether or not the rules are met. In this determination, for example, the data value is equal to or less than a value obtained by adding a predetermined data change amount margin to the data value of the data frame whose value in the reference field is 1, and the data change amount is calculated from the data value. A data frame that is equal to or greater than the value obtained by subtracting the margin of the data is determined to be a data frame that conforms to the data change amount specification (hereinafter referred to as a data change amount rule).
  • the fraud occurrence detection unit 130 determines that fraud has occurred.
  • the data change amount rule is a rule relating to the temporal change amount of the data value included in the data frame, and specifies that the temporal change amount of the data value included in the data frame is equal to or less than a predetermined value. This predetermined value is determined based on the specifications of the in-vehicle network system 10, for example.
  • the fraud detection unit 130 When it is determined that fraud has occurred, the fraud detection unit 130 notifies the group setting unit 140 and the fraud handling unit 160 that fraud has occurred.
  • the fraud occurrence detection unit 130 is a reference field for all data frames determined to conform to the data change amount rule. Change the value of to 1.
  • the fraud occurrence detection unit 130 has a plurality of data frames in which the value of the reference column is set to 1 with respect to the ID of the data frame to be determined in the reception log stored in the reception log holding unit 180.
  • the determination is performed using the reception interval rule and the data change amount rule based on each data frame in which the value in the reference field is set to 1.
  • the current time is obtained by adding the reception interval margin to the next estimated reception time. If it is larger, the value in the reference column of the data frame is changed to 1.
  • fraud detection unit 130 sets the value of the reference column of the data frame received for the first time to 1.
  • the group setting unit 140 sets one or more groups including at least a part of a plurality of data frames based on the frame information included in the reception log stored in the reception log holding unit 180 (grouping step).
  • the group setting by the group setting unit 140 is determined when there are a plurality of data frames in which the value of the reference field is set to 1 in the reception log of the reception log holding unit 180, that is, an illegality has occurred. To be done.
  • the group set in the data frame is indicated by the value in the group field of the reception log.
  • the group setting unit 140 When there are not a plurality of data frames in which the value in the reference column is set to 1, the group setting unit 140 does not set a group. That is, the value of the group column of the reception log remains the initial value 0, that is, no group is set.
  • the value indicating the group set for all data frames is the initial value of 0. This indicates that the group setting is not performed because the result of the fraud detection by the fraud occurrence detection unit 130 indicates that no fraud has occurred in the data frame having this ID. .
  • the group setting unit 140 does not set the group. Therefore, the value in the column of the reception log group stored in the reception log holding unit 180 is 0 as an initial value.
  • the condition that the data values included in the plurality of data frames are the same for example, the change in the value of the entire data field or the specific subfield in which the value of the specific subfield of the data frame matches is within a predetermined range.
  • the condition that the group is not set may be that it is within the range.
  • the group setting unit 140 classifies the plurality of data frames in which the value of the reference field is set to 1 into different groups.
  • the group setting unit 140 is a value obtained by subtracting the average of the reception intervals of the data frames stored in the rule holding unit 190 from the reception time of the data frame in which the value of the reference field is set to 1. Is assumed to be the previous reception time. Of the data frames recorded in the reception log, the value of the reception time is equal to or greater than the value obtained by subtracting the margin of the reception interval of the data frame stored in the rule holding unit 190 from the previous reception expected time, and A data frame that is equal to or less than the value obtained by adding the margin of the reception interval of data frames from the estimated reception time is set as the previous reference frame.
  • the group setting unit 140 determines the data value of the data frame in which the value of the reference field is set to 1. However, the same group as the group of the previous previous reference frame among the data values of the plurality of previous reference frames is classified into the group of the data frame.
  • the group setting unit 140 sets a plurality of data frames whose reference column value is set to 1 to different groups. For example, it is assumed that there are two data frames used as the previous reference, each of which is included in group 1, a data frame whose data value is D1, and a data frame which is included in group 2 and whose data value is D2. There are also two data frames set as the data frame currently used as a reference, and the data values are X and Y, respectively.
  • the data frame with the data value X is set to group 1, and the data frame with the data value Y is set to group 2.
  • the data frame with the data value X is set to group 2
  • the data frame with the data value Y is set to group 1.
  • the group setting unit 140 receives the reception time for the plurality of data frames. In order, groups different from group 1, group 2,... Are set. When the number of data frames included in each set group reaches a predetermined number, for example, 20, the group setting unit 140 notifies the unauthorized data identification unit 150.
  • the illegal data identification unit 150 calculates the reception interval of data frames in which frame information is recorded in the reception log held by the reception log holding unit 180 for each group.
  • the unauthorized data identification unit 150 identifies a group including an unauthorized data frame based on the normal model held by the normal model holding unit 191 and the calculated reception interval.
  • FIG. 6 is a diagram illustrating an example of a data structure of a normal model held by the normal model holding unit 191 of the monitoring ECU 100.
  • the normal model shown in FIG. 6 shows the distribution of the reception intervals of normal data frames whose ID is 0x100 obtained statistically as the characteristics of normal data frames. That is, this example shows that the distribution of reception intervals is 250,000 as a feature of a normal data frame with ID 0x100.
  • the variance indicated by the normal model is an example of the characteristics of the data frame in the present embodiment.
  • the unauthorized data identification unit 150 calculates the reception interval for each group from the reception time recorded in the reception log, and further calculates the variance of the reception intervals (feature amount calculation step). This distribution of reception intervals is an example of a feature amount relating to distribution of reception intervals between data frames in the present embodiment.
  • the illegal data identification unit 150 identifies the group whose calculated variance is closest to the variance indicated by the normal model as a normal data frame group, that is, a group not including an illegal data frame (incorrect data existence determination step). ).
  • the unauthorized data identification unit 150 changes the value of the reference column of the latest data frame included in the normal data frame group of the reception log to 1.
  • the fraud handling unit 160 When the fraud handling unit 160 receives the fraud occurrence notification from the fraud occurrence detection unit 130, the fraud handling unit 160 requests the frame generation unit 170 to generate a data frame in order to notify other ECUs of the occurrence of the fraud.
  • the frame generation unit 170 When requested by the fraud handling unit 160 to generate a data frame, the frame generation unit 170 generates a data frame for notifying that an illegal data frame has been received, and transmits and receives the data frame. Request to unit 110.
  • the reception log holding unit 180 holds the reception log described above using the example shown in FIG.
  • the rule holding unit 190 stores a reception interval rule and a data change amount rule defined for each data frame ID. More specifically, the reception interval rule is a rule relating to the reception interval indicating the average and margin of the reception interval of the data frame. More specifically, the data change amount rule is a rule relating to a margin of change amount of data included in the data frame.
  • FIG. 7 is a diagram illustrating an example of a data configuration of rules held by the rule holding unit 190 of the monitoring ECU 100. The example shown in FIG. 7 is a data frame rule whose ID is 0x100, and includes a reception interval rule and a data change amount rule.
  • the reception interval rule in this example stipulates that the average reception interval is 50,000 ⁇ s and the reception interval margin is 3,000 ⁇ s.
  • the margin of the data change amount is 100.
  • the data change amount is such that the absolute value of the difference between the data values in two consecutive data frames is 1 km / h or less. It is defined in the rules.
  • the parentheses in the data change amount margin column are shown for convenience of explanation, and may not be included in the actual data change amount rule.
  • the normal model holding unit 191 stores the normal model described above using the example shown in FIG.
  • a microcontroller included in the monitoring ECU 100 which processes a data frame received by a processor through a communication circuit by executing a program stored in a memory. This is realized by storing the finally generated data in the memory.
  • FIG. 8 is a flowchart showing the processing of the monitoring ECU 100 in the present embodiment.
  • Step S81 The frame transmission / reception unit 110 of the monitoring ECU 100 receives a data frame flowing through the network (reception step).
  • Step S82 The frame collection unit 120 of the monitoring ECU 100 records the frame information of the data frame received in step S81 in the reception log held by the reception log holding unit 180 (frame collection step).
  • Step S83 The fraud occurrence detection unit 130 of the monitoring ECU 100 determines whether fraud has occurred using the reception log held by the reception log holding unit 180 and the reception interval rule held by the rule holding unit 190. Determine (injustice detection step). Details of the processing for this determination will be described later.
  • Step S84 If fraud has occurred (in the case of YES), the processing by the monitoring ECU 100 proceeds to Step S85. If no fraud has occurred (NO), the monitoring ECU 100 ends the process.
  • Step S85 The group setting unit 140 of the monitoring ECU 100 sets one or more groups in a plurality of data frames in which frame information is recorded in the reception log held by the reception log holding unit 180 (grouping step).
  • Step S86 The group setting unit 140 of the monitoring ECU 100 determines, for each group set by the group setting unit 140, whether the number of data frames included in the group is a predetermined number, for example, 20 or more. When the number of data frames included in each group is equal to or greater than the predetermined number (in the case of YES), the process by the monitoring ECU 100 proceeds to step S87. When there is a group including only less than a predetermined number of data frames (NO), the monitoring ECU 100 ends the process.
  • a predetermined number for example, 20 or more.
  • Step S87 The unauthorized data identification unit 150 of the monitoring ECU 100 is set by the group setting unit 140 using the reception interval of the data frames recorded in the reception log and the normal model held by the normal model holding unit 191. For each group, it is identified whether the group is a normal data frame group or an illegal data frame group (feature amount acquisition step, illegal data existence determination step).
  • Step S88 Based on the result in step S87, the unauthorized data identification unit 150 of the monitoring ECU 100 sets the value of the reference column of the data frame used as the reference in the reception log to 1, and sets the data frame not used as the reference.
  • the reference column value is set to 0 (reference data frame resetting step).
  • FIG. 9 is a flowchart illustrating a specific example of the process of step S83 performed by the fraud detection unit 130 of the monitoring ECU 100 according to the present embodiment.
  • the fraud detection unit 130 refers to the reception log held by the reception log holding unit 180 (reception log reference step).
  • Step S92 The fraud occurrence detection unit 130 checks whether there is a data frame in which the value of the reference field is set to 1 in the reception log (reference data frame existence check step). If there is a data frame in which the value in the reference field is set to 1, the process by the fraud occurrence detection unit 130 proceeds to step S94. If there is no data frame in which the value in the reference field is set to 1, the process by the fraud occurrence detection unit 130 executes step S93.
  • Step S93 The fraud occurrence detection unit 130 sets the value of the reference column of the latest data frame to 1 among the data frames recorded in the reception log held by the reception log holding unit 180 (reference data frame Setting step).
  • Step S94 The fraud detection unit 130 acquires the reception interval and the data change amount between the received data frames from the frame information included in the reception log (reception interval / data change amount acquisition step).
  • Step S95 The fraud occurrence detection unit 130 uses the reception interval and the data change amount acquired in Step S94 to generate a data frame that conforms to the reception interval rule and the data change amount rule held by the rule holding unit 190. It is confirmed whether or not a plurality of reception logs held by the holding unit 180 are recorded (rule conformity checking step). At this time, if there are a plurality of data frames in which the value of the reference field is set to 1 in the reception log, the fraud detection unit 130 determines that each of the data frames in which the value of the reference field is set to 1. It is determined whether or not all the rules are met.
  • the fraud detection unit 130 determines that the data frame conforms to the rule. If there are a plurality of data frames that match the rule, the process by the fraud occurrence detection unit 130 proceeds to step S96. If there is no data frame that conforms to the rule or only one data frame exists, the processing by the fraud detection unit 130 proceeds to step S97.
  • Step S96 The fraud occurrence detection unit 130 determines that fraud has occurred, and notifies the fraud handling unit 160 and the group setting unit 140 that fraud has occurred.
  • Step S97 The fraud occurrence detection unit 130 receives the current time at the reception time of the data frame in which the value of the reference field is set to 1, and the average of the corresponding reception intervals held by the rule holding unit 190 It is determined whether or not the time when the interval margin is added has elapsed.
  • Step S98 When the time has passed, the fraud occurrence detection unit 130 changes the value of the reference column of all data frames conforming to the rule to 1 in the reception log. If the time has not elapsed, the value in the reference column is not changed for any data frame.
  • FIG. 10 is a block diagram illustrating a functional configuration of the ECU 200a or the ECU 200b, which is an example of a node connected to the in-vehicle network.
  • the functional configuration of the ECU 200a and the ECU 200b may be common.
  • the ECU 200a includes a frame transmission / reception unit 201, a frame processing unit 202, an external device input / output unit 203, and a frame generation unit 204. These functional components are realized by a communication circuit in the ECU 200a, a processor that executes a control program stored in a memory, a digital circuit, or the like.
  • the frame transmission / reception unit 201 transmits / receives a data frame to / from the bus 300 according to the CAN protocol. That is, the frame transmitting / receiving unit 201 receives a data frame from the bus 300 bit by bit.
  • the ID, DLC, and data field (data value) included in the data frame are transferred to the frame processing unit 202.
  • the frame transmitting / receiving unit 201 transmits an error frame.
  • the frame transmitting / receiving unit 201 discards the data frame being received.
  • the frame transmitting / receiving unit 201 further executes processing according to the CAN protocol such as communication arbitration.
  • the frame processing unit 202 interprets the contents of the received data frame. For example, the ECU 200b interprets the speed information measured by the speed sensor 210, which is included in the data field of the data frame transmitted from the ECU 200a. Then, the frame processing unit 202 notifies the external device input / output unit 203 of control information for causing the meter 220 to display speed information obtained by interpretation.
  • the external device input / output unit 203 communicates with an external device connected to the ECU 200a or the ECU 200b.
  • the external device input / output unit 203 is connected to the speed sensor 210, acquires information on the current vehicle speed, and notifies the frame generation unit 204 of this information.
  • the external device input / output unit 203 is connected to the meter 220, and transmits a signal for displaying this information to the meter 220 in order to notify the driver of the current vehicle speed information.
  • the frame generation unit 204 generates a data frame to be transmitted to the bus 300.
  • the ECU 200a generates a data frame notified from the external device input / output unit 203 and including the vehicle speed acquired from the speed sensor 210 at a predetermined cycle, for example, an interval of 50 ms, and transmits the data frame to the frame transmitting / receiving unit 201. .
  • interval at which data frames are generated is not limited to 50 ms exemplified above, and may be any interval other than 50 ms.
  • FIG. 11 is a diagram illustrating an example of a data frame transmitted from the ECU 200 a to the bus 300.
  • the monitoring ECU 100 and the ECU 200b receive this data frame from the bus 300.
  • FIG. 11 shows only the portions necessary for understanding the present embodiment.
  • the ECU 200a transmits a data frame having an ID of 0x100 and a DLC of 2.
  • the data field has a data length of 2 bytes indicated in the DLC, and indicates the speed (unit: 0.01 km / h) in the entire data field.
  • the value “0x154B” of the data field shown as an example in FIG. 11 indicates a vehicle speed of 54.51 km / h.
  • FIG. 12A, FIG. 13A, and FIG. 14A show an example of the reception log held by the reception log holding unit 180 of the monitoring ECU 100 in the present embodiment in order of time series, different from the example of FIG.
  • the hourly speed display in decimal numbers in the data value column is shown for convenience of explanation, and may not be included in the actual data value of the reception log.
  • FIGS. 12B, 13B, and 14B are diagrams for explaining data frames received by the monitoring ECU 100 in the present embodiment, and correspond to FIGS. 12A, 13A, and 14A, respectively.
  • Circles in the graph space shown in FIG. 12B are plotted based on the reception time and data value of each data frame recorded in the reception log shown in FIG. 12A.
  • the circle in the graph space shown in FIG. 13B is based on the reception time and data value of each data frame in FIG. 13A
  • the circle in the graph space shown in FIG. 14B is each data in FIG. 14A. It should be understood that the plot is based on the time of receipt of the frame and the data value.
  • FIG. 15 is a diagram illustrating the distribution of reception intervals of each group set by the monitoring ECU 100 in the present embodiment.
  • the in-vehicle network system 10 uses the reception interval rule and the data change amount rule shown in FIG. 7 as the rule of the data frame with ID “0x100”. The normal rules shown are used. It is assumed that an unauthorized ECU is connected to the in-vehicle network system 10 and an unauthorized data frame is sent to the bus 300 from the unauthorized ECU.
  • the monitoring ECU 100 receives three data frames, and each of these data frames is recorded in the reception log (steps S81 and S82). First, processing by the monitoring ECU 100 up to this point will be described.
  • the monitoring ECU 100 sets the data frame as a reference. That is, the fraud detection unit 130 determines NO in step S92 and executes step S93 (see FIG. 9). As a result, the value of the reference column of the first data row in the reception log is set to 1 (not shown).
  • the monitoring ECU 100 determines NO in step S84, and the series of processes related to reception of this data frame ends (see FIG. 8). Therefore, the initial value of zero remains in the group column of the first data frame.
  • fraud detection unit 130 determines YES in step S92 and proceeds to step S94 (see FIG. 9).
  • the fraud detection unit 130 obtains the difference between the reception time and the data value between the first received data frame and the second received data frame, and compares them with the reception interval rule and the data change amount rule (Step S1). S95).
  • the difference in reception time that is, the reception interval is 49,450 ⁇ s, which falls within a margin (tolerance) of 3,000 ⁇ s from the average reception interval of 50,000 ⁇ s. That is, the second received data frame satisfies the reception interval rule.
  • the difference between the data values is 0.12 km / h. Therefore, the second received data frame also satisfies the data variation rule.
  • step S95 the fraud occurrence detection unit 130 determines NO, and proceeds to step S97 (see FIG. 9).
  • step S97 the fraud detection unit 130 determines whether or not the current time has passed the time obtained by adding a margin to the reception time of the first data frame.
  • the current time is before (NO in step S97)
  • the first received data frame is continuously used as a reference (not shown).
  • the processing related to the reception of the second data frame proceeds and ends in the same manner as in the case of the data frame received first (after step S84). Accordingly, all the values in the group column remain at the initial value of zero (not shown).
  • fraud detection unit 130 determines YES in step S92 and proceeds to step S94 (see FIG. 9).
  • the fraud detection unit 130 obtains the difference between the reception time and the data value between the first received data frame and the third received data frame (step S94), and sets the reception interval rule and the data change amount rule respectively. (Step S95).
  • the reception interval in this case is 50,250 ⁇ s, which falls within a margin of 3,000 ⁇ s from the average reception interval of 50,000 ⁇ s. That is, the third received data frame satisfies the reception interval rule.
  • the difference between the data values is 0.11 km / h. Therefore, the third received data frame also satisfies the data variation rule.
  • the magnitude relationship between the reception intervals and data values of the three received data frames is schematically shown.
  • the first data frame is indicated by a black circle.
  • the fraud occurrence detection unit 130 determines YES and proceeds to step S96 to notify the group setting unit 140 and the fraud handling unit 160 of the fraud occurrence (see FIG. 9).
  • the fraud detection unit 130 determines whether or not the current time has passed a time obtained by adding a margin to the reception time of the first data frame.
  • all data frames that conform to the rule are set as data frames that are used as a reference (step S98). That is, two data frames, the second received data frame and the third received data frame, are set as data frames to be used as a reference (see the “reference” column in FIG. 12A).
  • step S85 the group setting unit 140 that has received a notification that fraud has occurred from the fraud detection unit 130 sets a group for a plurality of data frames recorded in the reception log using the frame information.
  • the second received data frame and the third received data frame are set to be included in different groups.
  • FIG. 12A shows the state of the reception log at this point. The values in the group column of the reception log shown in FIG. 12A indicate that the second received data frame is included in group 1 and the third received data frame is included in group 2.
  • the group setting unit 140 determines whether or not the number of data frames included in each of the group 1 and the group 2 is equal to or greater than a predetermined number (step S86, see FIG. 8).
  • a predetermined number is 10.
  • it is determined as NO in Step S86, and a series of processes related to the reception of the third data frame ends (see FIG. 8).
  • both the second received data frame and the third received data frame are used as a reference.
  • the reception interval between the fourth received data frame and the second received data frame is 50,850 ⁇ s, and the difference between the data values is less than 1 km / h.
  • the reception interval between the fourth received data frame and the third received data frame is 50,050 ⁇ s, and the difference between the data values is less than 1 km / h. That is, the fourth received data frame conforms to both the reception interval rule and the data change amount rule.
  • the reception interval and the data change amount satisfy the reference in relation to at least one data frame used as a reference, it is determined that the rule is met. Is done.
  • the fraud detection unit 130 determines NO in step S95, and proceeds to step S97.
  • next step S97 in this example, assuming that the time is before the time (NO in step S97), the second and third received data frames are continuously used as a reference.
  • Step S84 and subsequent steps are the same as in the case of the second received data frame.
  • step S95 for the fifth received data frame the second received data frame and the third received data frame are used again as a reference.
  • the reception interval between the fifth received data frame and the second received data frame is 51,300 ⁇ s, and the difference between the data values is less than 1 km / h.
  • the reception interval between the fifth received data frame and the third received data frame is 50,500 ⁇ s, and the difference between the data values is less than 1 km / h. That is, the fifth received data frame conforms to both the reception interval rule and the data change amount rule.
  • the relationship between the reception intervals and data values of the five data frames received up to this point is schematically shown.
  • the black circles indicate the second and third received data frames.
  • whether or not two rules are satisfied for each of the subsequent fourth and fifth received data frames. Is determined, and it is determined that both of the two rules are met.
  • the fraud detection unit 130 determines YES in step S95, proceeds to step S96, and notifies the group setting unit 140 and the fraud handling unit 160 of the fraud occurrence (see FIG. 9).
  • step S97 in this example, assuming that the time has passed (YES in step S97), the setting of the data frame used as the reference is updated to the fourth and fifth received data frames. (See step S98, “reference” column in FIG. 13A).
  • Step S84 and subsequent steps are the same as in the case of the third received data frame.
  • the group setting unit 140 sets the fourth received data frame to the same group 1 as the second received data frame having a smaller data value difference.
  • the fifth received data frame is set to the same group 2 as the third received data frame having a smaller data value difference.
  • FIG. 13A In the group column of the reception log shown in FIG. 13A, it is indicated that the fourth received data frame is included in group 1 and the fifth received data frame is included in group 2.
  • FIG. 13B data frames included in the same group are shown surrounded by a dotted frame.
  • step S95 for the 20th and 21st received data frames both the 18th received data frame and the 19th received data frame are used as a reference.
  • the reception interval between the 20th received data frame and the 18th received data frame is 49,100 ⁇ s, and the difference between the data values is less than 1 km / h.
  • the reception interval between the 20th received data frame and the 19th received data frame is 48,500 ⁇ s, but the difference in data values exceeds 1 km / h.
  • the 20th received data frame satisfies both the reception interval rule and the data change amount rule because the reception interval and the data change amount satisfy the standard in relation to the 18th received data frame. Judged to fit.
  • fraud detection unit 130 determines NO in step S95, and proceeds to step S97.
  • next step S97 in this example, it is assumed that the time is earlier than that time (NO in step S97), and the 18th and 19th received data frames are continuously used as a reference.
  • Step S84 and subsequent steps are the same as in the case of the data frame received second or fourth.
  • step S94 for the 21st received data frame the 19th received data frame and the 20th received data frame are used as a reference.
  • the reception interval between the 21st received data frame and the 18th received data frame is 49,700 ⁇ s, and the difference in data value exceeds 1 km / h.
  • the reception interval between the 21st received data frame and the 19th received data frame is 49,100 ⁇ s, but the difference in data values is less than 1 km / h.
  • the fraud detection unit 130 determines YES in step S95, proceeds to step S96, and notifies the group setting unit 140 and the fraud handling unit 160 of the fraud occurrence (see FIG. 9).
  • step S97 in this example, assuming that the time has passed (YES in step S97), the setting of the data frame used as the reference is set to the 20th and 21st received data frames. Updated (not shown).
  • step S84 as in the case of the third or fifth received data frame, YES is determined.
  • step S85 the group setting unit 140 sets the 20th received data frame to the same group 1 as the 18th received data frame having a smaller data value difference. Further, the 21st received data frame is set to the same group 2 as the 19th received data frame having a smaller data value difference.
  • the group setting unit 140 determines whether or not the number of data frames included in each of the group 1 and the group 2 is equal to or greater than a predetermined number (step S86, see FIG. 8). At this time, the number of data frames included in each group is 10 (see FIG. 14B). Therefore, the group setting unit 140 determines YES in step S86.
  • the unauthorized data identification unit 150 identifies whether each group is a normal data frame group or an unauthorized data frame group (step S87, see FIG. 8).
  • the unauthorized data identification unit 150 calculates the variance of the reception interval of each group.
  • FIG. 15 shows an example of distribution of reception intervals calculated by the unauthorized data identification unit 150.
  • the unauthorized data identification unit 150 compares the difference between each of these variances and the variance of the reception interval of the data frame whose normal ID is 0x100 indicated by the normal model held by the normal model holding unit 191 shown in FIG. .
  • the unauthorized data identification unit 150 identifies the group 1 having a smaller difference from the variance indicated by the normal model, that is, a variance closer to the normal model, as a normal data frame group. Further, the group 2 is identified as a group of illegal data frames.
  • the unauthorized data identification unit 150 changes the setting so that the data frame included in the group 2 that is a group of unauthorized data frames is not used as a reference. That is, the value of the reference column of the data frame included in group 2 in the reception log is set to 0 (step S88, see FIG. 8). In this example, for the next received data frame, only the latest data frame of group 1, that is, the 20th received data frame is used as a reference. In the reference column of the reception log shown in FIG. 14A, a value of 1 is entered only for the 20th received data frame, and 0 for other data frames.
  • FIG. 14B schematically shows the magnitude relationship between the reception interval of data frames received up to this point and the data value.
  • a circle including a cross indicates a data frame included in the group 2 identified as the group of illegal data frames in step S87.
  • a black circle indicates a data frame used as a reference after step S88 executed for the 21st received data frame, that is, in step S95 in the process for the 22nd received data frame.
  • At least a data variation rule Does not fit. That is, since it does not conform to the rules in relation to any data frame, the monitoring ECU 100 treats it as an illegal data frame.
  • each data frame has a group based on the data value included. Is set. Further, for each set group, the feature (feature value) relating to the distribution of the reception interval of the data frame is compared with the normal model to identify whether the group is a group including a normal data frame. As a result, it is possible to identify a normal data frame more accurately with respect to a data frame that has conventionally been difficult to distinguish between normal and illegal, and more reliably protect the in-vehicle network.
  • the case where two groups are set in a data frame according to the data value included in the data frame has been described as an example. There are three or more groups to be set. May be. Further, the number of groups to be set may be dynamically changed by the group setting unit 140 according to the number of data frames with the same ID received within a predetermined reception interval, for example. As a result, for example, it is possible to cope with a case where the number of illegal data frames that are sent to the in-vehicle network system 10 is very large relative to the number of normal data frames, which is more effective.
  • a group set at a time is a group of data frames that satisfy a predetermined condition such as satisfying a rule within a certain time width. There may be only one, and each time a group is set, it may be determined whether or not the group includes an illegal data frame.
  • the case where the data frame that conforms to both the reception interval rule and the data change amount rule is set to the data frame used as a reference is described as an example.
  • the number of data frames to be used may be suppressed to a predetermined number or less.
  • the group setting unit 140 randomly selects among these data frames in the order of reception or between data values. Two data frames may be selected as reference data frames based on the difference between the two. As a result, an increase in the amount of calculation by the fraud occurrence detection unit 130 can be suppressed and more efficient and stable processing can be performed.
  • the above embodiment is an example in which, when the number of data frames included in each group is 20 or 10 or more, it is determined whether the group includes an illegal data frame (step S86). It has been explained using. However, the number of data frames included in each group when the illegal data identification unit 150 makes this determination is not limited to these, and may be more or less. A process for identifying a group including an illegal data frame can be performed at a higher speed if the number of data frames included in each group is small. On the other hand, if the number of data frames included in each group is large, identification with higher accuracy can be expected. The number of data frames per group may be determined in consideration of, for example, a balance between processing speed and identification accuracy required according to the application.
  • the unauthorized data identification unit 150 may identify an unauthorized data frame when the average difference between the data values of the data frames included in each group exceeds a predetermined value.
  • identification of an illegal data frame when the maximum or minimum of the average difference in data values between the groups exceeds a predetermined value. May be executed.
  • identification of an illegal data frame may be performed.
  • the predetermined value used in these cases is selected and determined within a range where a large difference in data values of data frames having the same ID does not adversely affect the operation of the vehicle.
  • the identification of whether the group includes an illegal data frame is performed after the start condition as described above is satisfied, for example, the difference in dispersion of data frame reception intervals is smaller than a predetermined value. If the group is not identified as a group including an illegal data frame for the reason, the data frame may be further collected and added to the group, and then the identification may be performed again.
  • the determination is repeated after the data frame is continuously received, and the same group is continuously repeated a predetermined number of times, for example, three times. If it is determined to be illegal, the group may be identified as an illegal data frame group.
  • the above embodiment exemplifies a case where the number of data frames included in each group set by the group setting unit 140 is counted with respect to data frames in which frame information is recorded in the reception log. It has been explained by using. However, the upper limit of the number of data frames included in each group is determined in advance, and each time a data frame is received, the data frame included in each group is updated using a FIFO (First-In First-Out) buffer. May be. As a result, the data frames are automatically removed from the group in order from the oldest and the influence is reduced, which is effective in improving the accuracy of identification.
  • FIFO First-In First-Out
  • the group setting method for the data frame is not limited to this example. For example, using the data frame used as the previous reference and the data frame used one more before the previous time, that is, the data frame used as the reference two times before, data in which each group is set one and two times before A current data value may be predicted from a difference in data value between frames, and a data frame having a data value closest to the prediction may be set in the group.
  • a group may be set in the data frame using various known clustering methods such as the K-means method and DBSCAN (Density-Based Spatial Clustering of Applications with Noise).
  • the distribution of reception intervals is used as a feature amount related to the distribution of reception intervals, but the present invention is not limited to this.
  • other statistics such as the maximum value, minimum value, standard deviation of the reception interval may be used.
  • reception interval variance is used as the normal model, the present invention is not limited to this, and other statistics may be used as the normal model.
  • the maximum value, minimum value, or standard deviation of the reception interval may be used.
  • a group that shows a feature quantity closer to the feature quantity shown in the normal model is identified as a group including a normal data frame, but the normal model is not limited to this.
  • the normal model only needs to show the characteristics of a normal data frame.
  • a normal model data frames included in a group that has been determined to be normal in the past, or data of normal reception intervals defined in the specification are included. It may be held in the normal model holding unit 191.
  • the illegal data identification unit 150 determines the degree of abnormality through density ratio estimation between the reception interval indicated by the data of the normal model and the reception interval of the group of data frames to be identified, as a feature amount regarding the distribution of the reception intervals between the data frames To determine whether the group includes an illegal data frame.
  • the unauthorized data identification unit 150 identifies a normal or unauthorized data frame based on the degree of abnormality.
  • the autoregressive coefficient obtained from the time series data of the reception interval of the normal data frame may be shown.
  • the normal data frame is identified for each group by the time series data of the reception interval of the data frame included in the group, that is, the predicted reception interval predicted using the autoregressive coefficient from the frame information, and the group.
  • a prediction error that is an error from the actual reception interval of the latest data frame included may be calculated, and the one with the smallest prediction error may be identified as a group including a normal data frame.
  • a method using machine learning may be used to identify a group of normal data frames.
  • a result of dimension reduction using a principal component analysis or an auto encoder for a vector (hereinafter referred to as a reception interval vector) regarding a reception interval between data frames included in each group may be used.
  • a reception interval vector a vector having 9 reception intervals as elements
  • a group of data frames having a small reconstruction error after restoration may be identified as a group including a normal data frame.
  • the reception interval vector as described above is not limited to a method using machine learning, and may be used.
  • the reception interval rule may be a rule relating to a feature amount such as dispersion of reception interval vectors (normal reception interval vectors) for reception intervals between normal data frames.
  • the unauthorized data identification unit 150 performs identification based on, for example, the difference between the distribution of normal reception interval vectors indicated by the reception interval rule and the distribution of reception interval vectors of the data frame to be identified.
  • a random forest in which illegal data frames are preliminarily injected into the vicinity of a normal data frame and learning is performed as a label of a group of illegal data frames.
  • a classifier such as a support vector machine (Support Vector Machine) may be used.
  • the feature calculated from the reception interval of the data frame for each group (feature amount related to the reception interval) ) Is used to identify groups that contain illegal data frames.
  • the presence / absence of an illegal data frame may be determined based on the feature amount of the distribution of reception intervals of a plurality of data frames without setting a group in the data frame.
  • the data frame transmission cycle is almost constant for each type (content) of data identified by an ID, and the data frame for an attack also has an error within an allowable range from the cycle. Needs to be sent.
  • the actual transmission period of the data frame varies depending on individual differences or processing contents of the ECU. Therefore, it is difficult for an attacker to impersonate the feature amount regarding the distribution of reception intervals of data frames, which is statistically obtained from samples of actually transmitted data frames. Therefore, it is difficult for an attacker to avoid an attack countermeasure that uses the feature amount related to the reception interval. Thereby, a vehicle-mounted network can be protected more reliably.
  • an example in which a data frame for notifying fraud is transmitted to another ECU as an operation of the monitoring ECU 100 that detects fraud is not limited to this.
  • the monitoring ECU 100 may perform fraud detection during reception of a data frame, and invalidate a data frame that does not conform to either the reception interval rule or the data change amount rule by transmitting an error frame.
  • a monitoring function equivalent to the monitoring ECU 100 may be added to the gateway ECU.
  • the gateway ECU may perform an operation of not transferring a data frame that does not conform to the rules. In this way, by adding a monitoring function to the gateway ECU, information on a larger number of in-vehicle networks can be monitored. Therefore, the range of functions that can be realized is widened, and efficient monitoring is possible.
  • the monitoring ECU 100 that detects fraud
  • notification to the user that fraud has been detected transition to the vehicle fail-safe mode, recording of the detected fraud log, mobile phone network, etc.
  • Notification of the detected fraud to a cloud server or the like outside the vehicle can be given.
  • a set of frame information such as a data value or reception interval information may be used for machine learning as a label that serves as an illegal index.
  • the reference data frame is reset in step S88, and the subsequent fraud detection processing (step S83) is performed using this data frame as a reference. It is not limited. For example, instead of the process of step S88, for each data frame received thereafter, it may be determined whether or not it belongs to the group including the illegal data frame identified in step S87 based on the data value. (Data frame determination step). For example, a data frame in which the result of this determination is YES may be treated as a target that is not transferred by the gateway.
  • each received data frame belongs to a group (normal data frame group) that does not include the unauthorized data frame identified in step S87. Only the data frame in which the result of this determination is YES may be treated as a transfer target at the gateway.
  • the reception log includes the reception time as the reception interval information in the frame information of each data frame, and the actual reception interval between the data frames is calculated by calculating the difference between the reception times.
  • the reception log may include the calculation result of the difference in reception time with the immediately preceding data frame as reception interval information.
  • the reception interval information that is the calculation result is invalid. It may be acquired by the occurrence detection unit 130 and used as it is.
  • the ID is included in the reception log. It does not have to be.
  • the data frame is sent over the bus 300 in plain text, but the data frame may be transmitted to the bus after being encrypted.
  • a message authentication code may be included in the data frame.
  • the normal model and the reception log are stored in the normal model storage unit 191 and the reception log storage unit 180 in plain text, respectively, but may be encrypted.
  • the CAN protocol is used as the in-vehicle network, but the present invention is not limited to this.
  • CAN-FD CAN flexible Data-Rate
  • FlexRay Ethernet
  • LIN Local Interconnect Network
  • MOST Media Oriented Systems Transport
  • a network combining these networks as sub-networks with CAN may be used.
  • the monitoring ECU 100 including the fraud occurrence detection unit 130, the group setting unit 140, the fraudulent data identification unit 150, and a storage device that holds various data as components is described. Need not be provided in one apparatus.
  • the fraud occurrence detection unit 130, the group setting unit 140, the unauthorized data identification unit 150, or the storage device may be provided in a cloud server outside the vehicle.
  • a cloud server including these components data received from the frame collection unit 120 of the monitoring ECU 100 through a wireless communication network such as a mobile phone line network that can be connected to the in-vehicle network system is received on the storage device. Recorded in the holding unit 180.
  • the fraud occurrence detection unit 130, the group setting unit 140, and the fraudulent data identification unit 150 read and write the reception log held in the reception log holding unit 180.
  • the fraud handling unit 160 requests the frame generation unit 170 to generate a data frame.
  • present disclosure can be realized as an information processing system including one or more information processing apparatuses, including such modified embodiments.
  • Each ECU in the above embodiment is specifically a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is recorded in the RAM or the hard disk unit.
  • Each ECU realizes its function by the microprocessor operating according to the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions for the computer in order to achieve a predetermined function.
  • a part or all of the configuration of each ECU in the above embodiment may be configured by a single system LSI (Large Scale Integration).
  • the system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip, and specifically, a computer system including a microprocessor, ROM, 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 component constituting each ECU may be individually made into one chip, or may be made into one chip so as to include a part or all of them.
  • each ECU is a system LSI 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.
  • Part or all of the configuration of each of the ECUs described above may be configured from an IC card that can be attached to and detached from each ECU or a single module.
  • the IC card or module is a computer system that includes a microprocessor, ROM, RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above.
  • the IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • the present disclosure may be a method including the steps described above. For example, it may be realized as a method including the contents of the processing executed by each component of the monitoring ECU 100 as a procedure. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal composed of a computer program.
  • the present disclosure also relates to a computer-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray (registered trademark)). ) Disc), or recorded in a semiconductor memory or the like. Further, it may be a digital signal recorded on these recording media.
  • a computer-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray (registered trademark)).
  • the present disclosure may transmit a computer program or a digital signal via an electric communication line, a wireless or wired communication line, a network typified by the Internet, data broadcasting, or the like.
  • the present disclosure may be a computer system including a microprocessor and a memory.
  • the memory may record the computer program, and the microprocessor may operate according to the computer program.
  • program or digital signal may be recorded on a recording medium and transferred, or the program or digital signal may be transferred via a network or the like, and may be executed by another independent computer system.
  • the information processing system of the present disclosure described using any of the above-described embodiments or modifications thereof monitors the data frame flowing through the in-vehicle network, and a plurality of data frames that conform to the rule are transmitted.
  • the presence / absence of an illegal data frame can be determined based on the characteristics related to the distribution of reception intervals.
  • a group is set in the received data frame based on the data value, and a feature amount related to the distribution of the reception interval is acquired for each set group and compared with a normal model, thereby identifying a normal data frame group. can do.
  • the expression “determining whether or not there is an illegal data frame in a plurality of data frames” is based on whether each of the plurality of data frames is normal or illegal. It is used in the sense that it can indicate either the case of normality or fraud determination based on identification and whether at least one fraudulent data frame is included in a plurality of data frames.
  • This disclosure can be used for an in-vehicle network system including an in-vehicle network.
  • In-vehicle network system 100 Monitoring ECU 110 frame transmission / reception unit 120 frame collection unit 130 fraud occurrence detection unit 140 group setting unit 150 illegal data identification unit 160 fraud countermeasure unit 170 frame generation unit 180 reception log holding unit 190 rule holding unit 191 normal model holding unit 200a, 200b ECU 201 Frame transmission / reception unit 202 Frame processing unit 203 External device input / output unit 204 Frame generation unit 210 Speed sensor 220 Meter 300 Bus

Landscapes

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

Abstract

記憶装置を備える情報処理システムが行う、1以上の電子制御ユニットを含む車載ネットワークに流れる複数のデータフレームを処理する情報処理方法は、複数のデータフレームを順次受信する受信ステップと、複数のデータフレーム間の受信間隔を示す受信間隔情報をフレーム情報として記録するフレーム収集ステップと、受信間隔情報から、複数のデータフレーム間の受信間隔の分布に関する特徴量を取得する特徴量取得ステップと、特徴量を用いて、複数のデータフレームの中の不正なデータフレームの存否を判定する不正データ存否判定ステップとを含む。

Description

情報処理方法、情報処理システム、及びプログラム
 本開示は、車載ネットワークに流れるデータの処理のための技術に関する。
 近年、自動車の中のシステムには、電子制御ユニット(以下、ECU(Elecrtronic Control Unit))と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の通信規格が存在する。その中でも最も主流な車載ネットワークの規格の一つに、Control Area Network(以下、CAN)がある。
 CAN通信のネットワークでは、2本のバスが通信線に用いられ、このバスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信するノード(以下、送信ノードともいう)は2本のバスに電圧をかけ、それぞれのバス間での電位差の有無を応じたレセシブと呼ばれる“1”の値及びドミナントと呼ばれる“0”の値を送信することでフレームのバイナリデータを送信する。
 複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。
 受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームは、例えば連続する6bitのドミナントで始まるフレームであり、このフレームを受信した送信ノード及び他の受信ノードはエラーの発生を検出する。
 またCANでは送信先又は送信元を示す識別子は存在せず、送信ノードはフレームごとにデータの種類等を示すIDを付けて送信し、各受信ノードはあらかじめ決められたIDを含むフレームのみ受信する。
 また、CANではCSMA/CR(Carrier Sense Multiple Access/Collision Resolution)方式が採用されており、複数ノードの同時送信時にはIDによる調停が行われ、IDの値が小さいフレームが優先的に送信される。
 一方、攻撃者がCANのバスにアクセスし、不正なフレームを送信することで、ECUを不正制御するといった脅威が存在し、セキュリティ対策が検討されている。
 例えば特許文献1では、CANネットワークの通信状態を監視するCANフレーム監視機能を開示している。具体的には、フレームがあらかじめ規定された通信間隔でネットワークに送信されているかを検出し、規定された通信間隔から外れて送信されているフレームを不正なフレームであると判断することで、不正フレームを用いる制御を防止する方法が開示されている。
 特許文献2においても、フレームの通信間隔が規定の通信間隔より短い場合に、所定の時間を経過するまでに同一の識別子を持つフレームを受信するかを待ち、時間内に同一の識別子を持つフレームをさらに受信したときに、不正が発生したと判断する方法が開示されている。
特許第5664799号公報 特開2014-146868号公報
 本開示の一態様に係る情報処理方法は、記憶装置を備える情報処理システムが行う、1以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理方法であって、前記車載ネットワークに流れる複数のデータフレームを順次受信する受信ステップと、前記複数のデータフレーム間の受信間隔を示す受信間隔情報を、前記記憶装置に保持される受信ログにフレーム情報として記録するフレーム収集ステップと、前記受信間隔情報から、前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得する特徴量取得ステップと、前記特徴量を用いて、前記複数のデータフレームの中の不正なデータフレームの存否を判定する不正データ存否判定ステップとを含む。
 本開示の情報処理方法等は、不正なフレームをより適切に検出し、より安全な車載ネットワークシステムを提供することができる。
図1は、実施の形態における車載ネットワークシステムの全体構成を示すブロック図である。 図2は、CANプロトコルのデータフレームフォーマットを示す図である。 図3は、CANプロトコルのエラーフレームフォーマットを示す図である。 図4は、実施の形態における監視ECUの機能構成を示すブロック図である。 図5は、実施の形態における監視ECUの受信ログ保持部が保持する受信ログのデータ構成の一例を示す図である。 図6は、実施の形態における監視ECUの正常モデル保持部が保持する正常モデルのデータ構成の一例を示す図である。 図7は、実施の形態における監視ECUのルール保持部が保持するルールのデータ構成の一例を示す図である。 図8は、実施の形態における監視ECUの処理を示すフローチャートである。 図9は、実施の形態における監視ECUの不正発生検知部による処理の具体例を示すフローチャートである。 図10は、実施の形態における車載ネットワークに接続されるノードの例であるECUの機能構成を示すブロック図である。 図11は、実施の形態におけるECUがバスに送信するデータフレームの一例を示す図である。 図12Aは、実施の形態における監視ECUの受信ログ保持部が保持する受信ログの、別の例を示す図である。 図12Bは、実施の形態における監視ECUが受信したデータフレームを説明するための図である。 図13Aは、実施の形態における監視ECUの受信ログ保持部が保持する受信ログの、別の例を示す図である。 図13Bは、実施の形態における監視ECUが受信したデータフレームを説明するための図である。 図14Aは、実施の形態における監視ECUの受信ログ保持部が保持する受信ログの、別の例を示す図である。 図14Bは、実施の形態における監視ECUが受信したデータフレームを説明するための図である。 図15は、実施の形態における監視ECUにより設定された各グループの受信間隔の分散を示す図である。
 特許文献1のようなCANフレーム監視機能では、規定の通信間隔に適合する不正なフレームは、正常なフレームであると判断されてしまう。また、特許文献2のような不正の判断方法では、不正が発生したと判断した場合に、受信した2つのフレームのうちのいずれが不正であるかを判断できない。
 本開示は、不正なフレームをより適切に検出することでより安全な車載ネットワークシステムを実現する情報処理方法等を提供する。
 本開示の一実施様態に係る情報処理方法は、記憶装置を備える情報処理システムが行う、1以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理方法であって、前記車載ネットワークに流れる複数のデータフレームを順次受信する受信ステップと、前記複数のデータフレーム間の受信間隔を示す受信間隔情報を、前記記憶装置に保持される受信ログにフレーム情報として記録するフレーム収集ステップと、前記受信間隔情報から、前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得する特徴量取得ステップと、前記特徴量を用いて、前記複数のデータフレームの中の不正なデータフレームの存否を判定する不正データ存否判定ステップとを含む。
 これにより、攻撃者による不正なデータフレームの送信の検知が、攻撃者が制御困難な特徴量を利用して実行される。つまり、攻撃者は不正対策の回避が困難になる。したがって、車載ネットワークをより確実に保護することができる。
 また、前記記憶装置には、正常なデータフレームの特徴を示す正常モデルがさらに保持され、前記不正データ存否判定ステップにおいて、前記受信間隔情報を用いて求められた前記特徴量と、前記正常モデルとを用いて前記複数のデータフレームの中の不正なデータフレームの存否を判定してもよい。
 これにより、例えば正常なデータフレームの受信間隔の分布に関する特徴量と不正なデータフレームの受信間隔の分布に関する特徴量との差異の大きさに基づいて不正なデータフレームの存否を判定することができる。従来は不正の判定が困難であった一群のデータフレームについても、より高い精度での判定が可能になる。
 例えば、前記正常モデルは、前記特徴として正常なデータフレーム間の受信間隔を示し、前記特徴量取得ステップにおいて取得される特徴量は、受信された前記複数のデータフレーム間の受信間隔と前記正常モデルが示す正常なデータフレーム間の受信間隔との密度比推定を用いて算出される、受信された前記複数のデータフレーム間の受信間隔の異常度であり、前記不正データ存否判定ステップにおいて、前記異常度に基づいて前記複数のデータフレームの中の不正なデータフレームの存否を判定してもよい。
 これにより、正常なデータフレームの受信間隔と、実際に受信したデータフレームの受信間隔の確率分布の差を検知することができる。そして、不正なデータフレームの存否を判定することができる。従来は不正の判定が困難であった一群のデータフレームについても、より高い精度での判定が可能になる。
 また例えば、前記正常モデルは、前記特徴として正常なデータフレーム間の受信間隔の分散を示し、前記特徴量取得ステップにおいて取得される特徴量は、受信された前記複数のデータフレーム間の受信間隔の分散であり、前記不正データ存否判定ステップにおいて、前記正常なデータフレーム間の受信間隔の分散と前記受信間隔の分散との差を算出し、前記差の大きさに基づいて前記複数のデータフレームの中の不正なデータフレームの存否を判定してもよい。
 これにより、正常なデータフレームの受信間隔と、不正なデータフレームの受信間隔の統計的な際に基づいて不正なデータフレームを検知することができるそして従来では、正常と不正との判定が困難であったデータフレームに関しても精度よく識別することができ、車載ネットワークの保護が可能となる。
 また、前記フレーム情報には、前記受信間隔情報と対応づけて、前記複数のデータフレームのそれぞれが含むデータ値がさらに含まれ、さらに、前記フレーム情報が含む前記受信間隔情報及び前記データ値に基づいて、前記複数のデータフレームの少なくとも一部を含む1以上のグループを設定するグルーピングステップを含み、前記特徴量取得ステップにおいて、前記受信ログに含まれる前記受信間隔情報から、前記1以上のグループのそれぞれについて、当該グループが含む前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得し、前記不正データ存否判定ステップにおいて、前記1以上のグループのそれぞれについて求められた特徴量に少なくとも基づいて、前記1以上のグループの中から不正なデータフレームを含むグループ又は不正なデータフレームを含まないグループを識別してもよい。
 これにより、従来では、通信間隔の規定の範囲内で複数のデータフレームが受信された場合に、これらのデータフレームについての不正なデータフレームの存否の判定が困難であった。このような場合にも、不正なデータフレームを含むグループ又は不正なデータフレームを含まないグループを識別することができる。したがって、車載ネットワークをより確実に保護することができる。
 また、不正データ存否判定ステップにおいて前記1以上のグループのそれぞれについてグループを識別した後に実行した前記受信ステップで受信したデータフレームについて、前記識別されたグループに属するか否かを判定することで当該データフレームが正常なデータフレームであるか又は不正なデータフレームであるかを判定するデータフレーム判定ステップをさらに含んでもよい。
 これにより、個々のデータフレームの正常又は不正判定によるフィルタリングが可能になる。
 また、前記記憶装置には、データフレームの受信間隔に関する規定である受信間隔ルールと、データフレームに含まれるデータ値の時間的変化量に関する規定であるデータ変化量ルールとがさらに保持され、前記グルーピングステップにおいて、前記受信間隔情報及び前記データ値と、前記受信間隔ルール及び前記データ変化量ルールとに基づいて、前記1以上のグループを設定し、前記1以上のグループのそれぞれに含まれるデータフレームの数が所定数以上である場合に、前記1以上のグループに対して前記不正データ存否判定ステップを実行してもよい。または、前記記憶装置には、データフレームの受信間隔に関する規定である受信間隔ルールと、正常なデータフレームに含まれるデータ値の時間的変化量に関する規定であるデータ変化量ルールがさらに保持され、前記グルーピングステップにおいて、前記受信間隔情報及び前記データ値と、前記受信間隔ルール及び前記データ変化量ルールとに基づいて、前記複数のデータフレームに複数のグループを設定し、前記複数のグループのそれぞれに含まれるデータフレームのデータ値の平均の差が所定の大きさ以上である場合に、前記複数のグループに対して前記不正データ存否判定ステップを実行してもよい。またさらに、前記データ変化量ルールは、前記データフレームに含まれるデータ値の時間的変化量が所定値以下であることを規定してもよい。
 これにより、複数のデータフレームに対してより精度よくグループを設定でき、従来では困難であった不正なデータフレームの存否の判定をすることができる。したがって、車載ネットワークをより確実に保護することができる。
 また、前記記憶装置には、正常なデータフレームの受信間隔の時系列データから求めた自己回帰係数がさらに保持され、前記グルーピングステップにおいて設定される前記1以上のグループは複数のグループであり、前記複数のグループのそれぞれが含む前記複数のデータフレーム間の受信間隔に関する特徴量は、前記受信間隔情報を用いて予測される予測受信間隔であり、前記特徴量取得ステップにおいて、前記複数のグループのそれぞれが含む前記複数のデータフレーム間の受信間隔に関する特徴量として、前記自己回帰係数及び前記フレーム情報とを用いて予測受信間隔を取得し、前記不正データ存否判定ステップにおいて、前記複数のグループのそれぞれについて、前記予測受信間隔と、当該グループに含まれる最新のデータフレームの実際の受信間隔との誤差である予測誤差を算出し、前記複数のグループの中で前記予測誤差が最も小さいグループを、不正なデータフレームを含まないグループと識別してもよい。
 これにより、正常なデータフレームの受信間隔と、不正なデータフレームの受信間隔の時系列モデルへの当てはまりのよさを用いて、不正なデータフレームを含まないグループを識別することができる。したがって、車載ネットワークをより確実に保護することができる。
 また、前記不正データ存否判定ステップにおいて、正常なデータフレームの受信間隔ベクトルと、不正なデータフレームの受信間隔ベクトルとを学習した識別器を用いて、前記複数のグループの中から、不正なデータフレームを含むグループと不正なデータフレームを含まないグループとを識別してもよい。また、この識別器は、ランダムフォレスト(Random Forest)、サポートベクターマシン(Support Vector Machine)、NN(Nearest Neighbor)、およびニューラルネットワーク(Neural Network)のうちの少なくとも1つを用いて構成されてもよい。
 これにより、正常なデータフレームの受信間隔ベクトルと、不正なデータフレームの受信間隔ベクトルを学習した識別器によって、不正なデータフレームを含むグループが従来に比べて精度よく識別される。したがって、車載ネットワークをより確実に保護することができる。
 また、本開示の一実施様態に係る情報処理システムは、プロセッサ及び記憶装置を備え、1以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理システムであって、前記プロセッサは、前記車載ネットワークに流れる複数のデータフレームを順次受信し、前記複数のデータフレーム間の受信間隔を示す受信間隔情報を、前記記憶装置に保持される受信ログにフレーム情報として記録し、前記受信間隔情報から、前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得し、前記特徴量を用いて、前記複数のデータフレームの中の不正なデータフレームの存否を判定する。または、本開示の一実施様態に係るプログラムは、プロセッサ及び記憶装置を備える情報処理システムにおいて、前記プロセッサに本開示の情報処理方法を実行させる。
 これにより、攻撃者による不正なデータフレームの送信の検知が、攻撃者が制御困難な特徴量を利用して実行される。つまり、攻撃者は不正対策の回避が困難になる。したがって、車載ネットワークをより確実に保護することができる。
 以下、図面を参照しながら、実施の形態について説明する。なお、以下で説明する実施の形態は、包括的又は具体的な例を示す。したがって、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、ステップ、ステップの順序などは一例であり、本開示を限定する趣旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素は、任意で含まれる構成要素として説明される。
 (実施の形態)
 [1.システムの構成]
 実施の形態として説明する情報処理システムは、プロセッサ及び記憶装置を備え、1以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理システムである。このプロセッサは、車載ネットワークに流れる複数のデータフレームを順次受信し、これらのデータフレーム間の受信間隔を示す受信間隔情報を、記憶装置に保持される受信ログにフレーム情報として記録する。また、このプロセッサは、この記録された受信間隔情報から、複数のデータフレーム間の受信間隔の分布に関する特徴量を取得し、この取得した特徴量を用いて、複数のデータフレームの中の不正なデータフレームの存否を判定する。本実施の形態では、種類を示す識別子(ID)が共通である複数個のデータフレームを2つの系列(グループ)に分類する。
 以下、車載ネットワークに接続される監視ECUについて、本実施の形態における情報処理システムの一例として図面を参照しながら説明する。
 [1.1 車載ネットワークシステムの全体構成]
 図1は、本実施の形態における車載ネットワークシステムの全体構成を示すブロック図である。図1において、車載ネットワークシステム10は、監視ECU100と、ECU200aと、ECU200bと、バス300とを備える。
 監視ECU100は、バス300に接続され、バス300上に流れるデータフレームを監視し、不正なデータフレームが流れているか否かを監視する。監視ECU100は、通信回路、プロセッサ及びメモリを含むマイクロコントローラ(図示なし)を備える、本実施の形態における情報処理システムの一例である。
 ECU200aは、バス300に接続され、さらに速度センサ210に接続されている。ECU200aは、速度センサ210から得られる車両の速度をデータフレームに含めて定期的にバス300へ送信する。
 ECU200bは、バス300に接続され、さらにメータ220に接続されている。ECU200bは、ECU200aからバス300に送信される、車両の速度を含むデータフレームを取得し、データフレームから取得した車両の速度をメータ220に表示させる。
 [1.2 データフレームフォーマット]
 図2は、CANプロトコルのデータフレームのフォーマットを示す図である。ここではCANプロトコルにおける標準IDフォーマットにおけるデータフレームを示している。
 図2において、データフレームは、Start Of Frame(以下、SOFという)と、IDフィールド、Remote Transmission Request(以下、RTRという)、IDentifier Extension(以下、IDEという)、予約ビット(以下、r)、データレングスコード(以下、DLCという)、データフィールド、Cycric Redundancy Check(以下、CRCという)シーケンス、CRCデリミタ(図中、左のDEL)と、Acknowledgement(以下、ACKという)スロットと、ACKデリミタ(図中、右のDEL)と、エンドオブフレーム(以下、EOFという)から構成される。
 SOFは、1ビットのドミナントである。バス300はアイドルときレセシブになっており、送信ノードはバス300をレセシブからドミナントへ変更することでフレームの送信開始を通知する。
 IDは、11ビット長の値で、データフレームの種類を示す。ここでいうデータフレームの種類とは、例えばデータの内容又はデータフレームの送信元である送信ノードを指す。また、IDは同一ネットワーク上で複数のノードが同時に送信を開始したデータフレーム間での通信調停にも用いられる。より具体的には、IDがより小さい値を持つデータフレームは優先順位が高い。
 RTRは、1ビットのドミナントで、データフレームであることを示す。
 IDE及びrは、それぞれ1ビットのドミナントである。
 DLCは4ビット長の値で、続くデータフィールドの長さを示す。
 データフィールドは、最大64ビット長の送信されるデータの部分であり、データフレームのペイロードである。長さは8ビット単位で調整可能である。送信されるデータのこの部分への割り当てに関する仕様は、車種や製造者に依存する。
 CRCシーケンスは、15ビット長で、SOF、IDフィールド、コントロールフィールド、及びデータフィールドの送信値より算出される値を示す。受信ノードは、各データフレームについてSOF、IDフィールド、コントロールフィールド、及びデータフィールドの受信値から算出した結果をCRCシーケンスの値と比較することで異常の有無を判断する。
 CRCデリミタは、1ビットのレセシブで、CRCシーケンスの終了を表す区切り記号である。
 ACKスロットは、1ビット長、送信ノードはこの部分でレセシブを送信する。受信ノードはCRCシーケンスまで正常に受信ができていれば、この部分でドミナントを送信する。ことで、CANの規格では、同時に送信されたドミナントとレセシブとでは上述のとおりドミナントが優先されるため、通信が正常に行われている車載ネットワークシステム10では、ACKスロットの送信中、バス300はドミナントの状態である。
 ACKデリミタは、1ビット長のレセシブで、ACKスロットの終了を表す区切り記号である。
 EOFは、7ビット長のレセシブで、データフレームの終了を示す。
 [1.3 エラーフレームフォーマット]
 図3は、CANプロトコルのエラーフレームのフォーマットを示す図である。図3において、エラーフレームは、エラーフラグ(プライマリ)、エラーフラグ(セカンダリ)、及びエラーデリミタ(図中DEL)の3個の部分から構成される。
 エラーフラグ(プライマリ)は、エラーの発生を他のノードに知らせるために使用される。連続する6ビットのドミナントであり、CANプロトコルにおける、連続する同じ値の5ビットの次には異なる値を1ビット送信するというビットスタッフィングルールに違反する。このビットスタッフィングルール違反の発生によって、他のノードからのエラーフラグ(セカンダリ)の送信が引き起こされる。
 エラーフラグ(セカンダリ)は、エラーの発生を他のノードに通知するために送信される6ビット長のドミナントである。エラーフラグ(プライマリ)を受信した全てのノードが送信する。
 エラーデリミタ(DEL)は、8ビット長のレセシブで、エラーフレームの終了を示す。
 [1.4 監視ECUの構成]
 図4は、本実施の形態における監視ECUの機能構成を示すブロック図である。図4において、監視ECU100は、フレーム送受信部110と、フレーム収集部120と、不正発生検知部130と、グループ設定部140と、不正データ識別部150と、不正対応部160と、フレーム生成部170と、受信ログ保持部180と、ルール保持部190と、正常モデル保持部191とを備える。
 フレーム送受信部110は、バス300に対して、CANのプロトコルに従ったデータフレームを送受信する。即ち、フレーム送受信部110は、車載ネットワークシステム10を構成するバス300からデータフレームを1ビットずつ受信することで、複数のデータフレームを順次受信する(受信ステップ)。また、各データフレームの受信がエラー無く完了すると、データフレームの一部であるID、DLC、及びデータフィールドをフレーム収集部120及び不正発生検知部130に転送する。
 また、受信したデータフレームがCANプロトコルに従っていないと判断した場合、フレーム送受信部110は、上記で図3を参照して説明したエラーフレームを送信する。
 また、フレーム送受信部110は、他のノードからエラーフレームを受信した場合、つまり受け取ったフレームがその値からエラーフレームであると判断した場合には、それ以降はそのフレームを破棄する。
 また、フレーム生成部170からデータフレームの送信要求を受けたフレーム送受信部110は、バス300へデータフレームを1ビットずつ送信する。
 フレーム収集部120は、フレーム送受信部110からデータフレームの上述の一部を受け取り、このデータフレームが受信された時刻(以下、受信時刻という)、並びにデータフレームに含まれていたID及びデータフィールドを、受信ログ保持部180に保持される受信ログのレコードとして記録する(フレーム収集ステップ)。なお、以下では、このようにレコードに記録される、各データフレームに関する情報のことをフレーム情報ともいう。また、受信時刻は、本実施の形態における受信間隔情報の例である。データフレームの受信時刻は、監視ECU100が起動してから経過した時間を計測するタイマを参照することで得られる時刻である。このようなタイマは、例えば監視ECU100が備えるマイクロコントローラに含まれる。
 不正発生検知部130は、受信ログ保持部180に保持されている受信ログと、ルール保持部190に格納されているルール、具体的には、データフレームの受信間隔に関する規定(以下、受信間隔ルールともいう)とを用いて不正が発生しているか否かを判断する。受信間隔ルールは、例えば車載ネットワークシステム10の仕様に基づいてIDごとに定められる。
 より具体的には、不正発生検知部130は、受信ログ保持部180に保持されている受信ログを参照して、IDが共通のデータフレームの受信間隔を取得する。そしてこの取得した受信間隔を、ルール保持部190に保持されている受信間隔ルールである当該IDの受信間隔の平均とマージンとに照らして不正が発生しているか否かを判断する。
 図5は、本実施の形態における監視ECU100の受信ログ保持部180が保持する受信ログのデータ構成の一例を示す図である。この例では、受信ログにはIDが0x100である3件のデータフレームのレコード(又はフレーム情報)が格納されている。
 受信ログには、フレーム収集部120から通知された各データフレームの情報、具体的には、受信時刻、ID、データフィールドの値(以下、データ値ともいう)、基準、及びグループが含まれる。
 この例で格納されている3件のデータフレームの情報の中で最も古いデータフレームの受信時刻は50,250μsであり、データフィールドの値は0x00 0x00である。また、最も新しいデータフレームの受信時刻は150,560μsであり、データフィールドの値は0x00 0x1Aである。また、受信ログには「基準」の欄がある。この欄の値は、各データフレームの受信時刻又はデータ値が、一連の処理の中で、不正なデータフレームの存否に関する判定の基準として用いられるか否かを示す。この例では、「基準」の欄の値が1であるデータフレームがこのような基準に用いられる。
 例えば不正発生検知部130は、受信ログ保持部180に格納されている受信ログにフレーム情報が記録されている各データフレームが受信間隔ルールに適合するか否か判定する。この判定では、例えば判定対象のIDのデータフレームのうち基準の欄の値が1であるデータフレームの受信時刻に、所定の受信間隔の平均を加算した値が次回想定受信時刻として用いられる。不正発生検知部130は、当該データフレームの後に受信した同IDのデータフレームのうち、受信時刻がこの次回想定受信時刻から受信間隔のマージンを減算した値以上であり、かつ、次回想定受信時刻に受信間隔のマージンを加算した値以下であるデータフレームを、受信間隔ルールに適合するデータフレームであると判定する。
 また、次回想定受信時刻の受信間隔ルールに適合するデータフレームが1つ存在し、かつ、現在の時刻が次回想定受信時刻に受信間隔のマージンを加算した値より大きい場合、不正発生検知部130は、受信間隔ルールに適合すると判定したデータフレームの基準の欄の値を1に変更する。
 また、受信間隔ルールに適合するデータフレームが2つ以上存在する場合、不正発生検知部130は、受信間隔ルールに適合する各データフレームのデータ値がルール保持部190に格納されているデータ変化量のルールに適合するか否かを判定する。この判定では、例えばデータ値が、上記の基準の欄の値が1であるデータフレームのデータ値に所定のデータ変化量のマージンを加算した値以下であり、かつ、当該データ値からデータ変化量のマージンを減算した値以上であるデータフレームを、データ変化量の規定(以下、データ変化量ルールという)に適合するデータフレームであると判定する。そして、データ変化量ルールに適合するデータフレームが2つ以上存在する場合、不正発生検知部130は、不正が発生していると判断する。データ変化量ルールとは、データフレームに含まれるデータ値の時間的変化量に関する規定であり、データフレームに含まれるデータ値の時間的変化量が所定値以下であることを規定している。この所定値は、例えば車載ネットワークシステム10の仕様に基づいて定められる。
 不正が発生していると判断した場合、不正発生検知部130は、不正が発生していることを、グループ設定部140と、不正対応部160とに通知する。
 またこの場合に、現在の時刻が次回想定受信時刻に受信間隔のマージンを加算した値より大きいとき、不正発生検知部130は、データ変化量ルールに適合すると判定した全てのデータフレームの基準の欄の値を1に変更する。
 また、不正発生検知部130は、受信ログ保持部180に格納されている受信ログの判定対象のデータフレームのIDに関して、基準の欄の値が1に設定されているデータフレームが複数存在する場合、基準の欄の値が1に設定されているデータフレームそれぞれを基準とする上記の受信間隔ルール及びデータ変化量ルールを用いた判定を行う。そして各データフレームがいずれかの基準を用いて受信間隔ルールに適合し、かつ、データ変化量ルールに適合する場合に、現在の時刻が、次回想定受信時刻に受信間隔のマージンを加算した値より大きいときは、当該データフレームの基準の欄の値を1に変更する。
 なお、受信ログ保持部180に格納されている受信ログの判定対象のIDのデータフレームのうちで、基準の欄の値が1であるデータフレームが存在しない場合、すなわち、初めて当該IDのデータフレームを受信する場合、不正発生検知部130は、初めて受信したそのデータフレームの基準の欄の値を1に設定する。
 グループ設定部140は、受信ログ保持部180に格納されている受信ログに含まれるフレーム情報に基づいて複数のデータフレームの少なくとも一部を含む1以上のグループを設定する(グルーピングステップ)。
 グループ設定部140によるグループの設定は、受信ログ保持部180の受信ログにおいて基準の欄の値が1に設定されているデータフレームが複数存在する場合、つまり不正が発生していると判断されている場合に行われる。データフレームに設定されているグループは、受信ログのグループの欄の値で示される。
 基準の欄の値が1に設定されているデータフレームが複数存在しない場合は、グループ設定部140は、グループの設定を行わない。つまり、受信ログのグループの欄の値は、初期値の0のまま、つまりグループは未設定である。
 図5の例では、全てのデータフレームについて設定されたグループを示す値が初期値の0である。これは、不正発生検知部130による判定で、このIDを持つデータフレームでは不正が発生しているという結果がこの時点までに出ていないため、グループの設定は行われていないことを示している。
 あるいは、基準の欄の値が1に設定されている複数のデータフレームに含まれるデータ値が全て同じである場合には、グループ設定部140は、グループの設定を行わない。したがって、受信ログ保持部180に格納される受信ログのグループの欄の値は初期値の0である。また、複数のデータフレームに含まれるデータ値が同じという条件に代えて、例えば、データフレームの特定のサブフィールドの値が一致する、データフィールド全体又は特定のサブフィールドの値の変化が所定の範囲に収まっている、ということがグループの設定が行われない条件であってもよい。以下、データ値が同じであることの記載は、矛盾のない限り、これらの条件に表される状況に読み替えることができる。
 基準の欄の値が1に設定されているデータフレームが複数存在し、当該データフレームのグループの欄の値が初期値の0(グループが未設定)であり、かつ当該データフレームの値が互いに異なる場合に、グループ設定部140は、基準の欄の値が1に設定されている複数のデータフレームを互いに異なるグループに分類する。
 より具体的には、グループ設定部140は、基準の欄の値が1に設定されているデータフレームの受信時刻からルール保持部190に格納されているデータフレームの受信間隔の平均を引いた値を、前回受信想定時刻とする。そして、受信ログに記録されているデータフレームのうち、受信時刻の値が、前回受信想定時刻からルール保持部190に格納されているデータフレームの受信間隔のマージンを減算した値以上であり、かつ、前回受信想定時刻からデータフレームの受信間隔のマージンを加算した値以下であるデータフレームを、前回基準フレームとする。複数の前回基準フレームが存在し、かつ、これらの前回基準フレームに設定されているグループが互いに異なる場合、グループ設定部140は、基準の欄の値が1に設定されているデータフレームのデータ値が、複数の前回基準フレームのデータ値のうちで最も近い前回基準フレームのグループと同じグループを、当該データフレームのグループに分類する。
 ここで、グループ設定部140は、基準の欄の値が1に設定されている複数のデータフレームを互いに異なるグループに設定する。例えば、前回基準として用いられたデータフレームが2つあり、それぞれ、グループ1に含まれ、データ値がD1のデータフレームと、グループ2に含まれ、データ値がD2のデータフレームであるとする。また、現在基準として用いられるデータフレームに設定されているデータフレームも2つあり、それぞれのデータ値をX、Yとする。
 このときX、YともにD1が最も近い値である場合には、次の2つの式の計算結果の比較の結果に基づいて各データフレームにグループが設定される。
(D1-X)^2+(D2-Y)^2・・・(1)
(D1-Y)^2+(D2-X)^2・・・(2)
 より具体的には、(1)の値が(2)の値より小さい場合に、データ値がXのデータフレームはグループ1に、データ値がYのデータフレームはグループ2に設定される。また、(2)の値が(1)の値より小さい場合には、データ値がXのデータフレームをグループ2に設定し、データ値がYのデータフレームはグループ1に設定される。これにより、前回の基準フレームのデータ値と、不正の判定対象のデータフレームのデータ値との2乗誤差が最小となるデータフレームの組み合わせが同じグループに設定される。
 また、異なるグループに設定されている複数の前回基準フレームが存在する場合にデータ値が同じ複数のデータフレームを受信したときは、グループ設定部140は、これらの複数のデータフレームに対し、受信時刻順に、グループ1、グループ2・・・と互いに異なるグループを設定する。そして設定された各グループで当該グループに含まれるデータフレームの個数が所定の数、例えば20に達すると、グループ設定部140は、不正データ識別部150へ通知を行う。
 不正データ識別部150は、受信ログ保持部180が保持する受信ログにフレーム情報が記録されているデータフレームの受信間隔をグループ別に算出する。そして不正データ識別部150は、正常モデル保持部191が保持する正常モデルと、算出した受信間隔とに基づいて、不正なデータフレームを含むグループを識別する。
 図6は、監視ECU100の正常モデル保持部191が保持する正常モデルのデータ構成の一例を示す図である。図6に示される正常モデルは、正常なデータフレームの特徴として統計的に得られた、IDが0x100である正常なデータフレームの受信間隔の分散を示す。つまりこの例は、IDが0x100の正常なデータフレームの特徴として、受信間隔の分散は250000であることを示す。正常モデルが示す分散は、本実施の形態における、データフレームの特徴の一例である。
 不正データ識別部150は、受信ログに記録される受信時刻からグル―プごとに受信間隔を算出し、さらに受信間隔の分散を算出する(特徴量算出ステップ)。この受信間隔の分散は、本実施の形態におけるデータフレーム間の受信間隔の分布に関する特徴量の例である。次に不正データ識別部150は、算出した分散が、正常モデルが示す分散に最も近いグループを正常なデータフレームのグループ、つまりは不正なデータフレームを含まないグループと識別する(不正データ存否判定ステップ)。また、不正データ識別部150は、受信ログの正常なデータフレームのグループに含まれる最新のデータフレームの基準の欄の値を1に変更する。
 不正対応部160は、不正発生検知部130から不正の発生の通知を受けると、他のECUへ不正の発生を通知するために、フレーム生成部170へデータフレームの生成を要求する。
 フレーム生成部170は、不正対応部160からデータフレームの生成を要求されると、不正なデータフレームを受信していることを通知するためのデータフレームを生成し、当該データフレームの送信をフレーム送受信部110へ要求する。
 受信ログ保持部180は、図5に示す例を用いて上記に説明した受信ログを保持する。
 ルール保持部190は、データフレームのIDごとに規定されている受信間隔ルール及びデータ変化量ルールが格納されている。受信間隔ルールは、より具体的には、データフレームの受信間隔の平均及びマージンとを示す受信間隔に関するルールである。データ変化量ルールは、より具体的には、データフレームに含まれるデータの変化量のマージンに関するルールである。図7は、監視ECU100のルール保持部190が保持するルールのデータ構成の一例を示す図である。図7に示される例は、IDが0x100のデータフレームのルールであり、受信間隔ルール及びデータ変化量ルールを含む。
 この例における受信間隔ルールでは、受信間隔の平均は50,000μsであり、受信間隔のマージンは3,000μsであると規定されている。
 また、データ変化量ルールによれば、データ変化量のマージンは100である。IDが0x100のデータフレームに含まれるデータ値が車速を示す場合、このデータ変化量ルールでは、連続する2つのデータフレームでのデータ値の差の絶対値は1km/h以下であるとデータ変化量ルールで規定されている。ただし、データ変化量マージンの欄にあるカッコ書きは説明の便宜上示したものであり、実際のデータ変化量ルールには含まれなくてもよい。
 正常モデル保持部191は、図6に示す例を用いて上記のとおり説明した正常モデルを格納する。
 これらの機能的な構成要素は、監視ECU100が備えるマイクロコントローラにおいて、プロセッサが、通信回路を通じて受信したデータフレームを、メモリに格納されたプログラムを実行して処理し、必要に応じて処理の中間又は最終で生成されるデータがメモリに保持されることによって実現される。
 [1.5 監視ECUによる処理]
 図8は、本実施の形態における監視ECU100の処理を示すフローチャートである。
 (ステップS81)監視ECU100のフレーム送受信部110は、ネットワークに流れるデータフレームを受信する(受信ステップ)。
 (ステップS82)監視ECU100のフレーム収集部120は、ステップS81で受信したデータフレームのフレーム情報を受信ログ保持部180が保持する受信ログに記録する(フレーム収集ステップ)。
 (ステップS83)監視ECU100の不正発生検知部130は、受信ログ保持部180が保持する受信ログと、ルール保持部190が保持する受信間隔ルールとを用いて、不正が発生しているか否かを判断する(不正発生検知ステップ)。この判断のための処理の詳細は後述する。
 (ステップS84)不正が発生している場合(YESの場合)は、監視ECU100による処理はステップS85に進む。不正が発生していない場合(NOの場合)は、監視ECU100は処理を終了する。
 (ステップS85)監視ECU100のグループ設定部140は、受信ログ保持部180が保持する受信ログにフレーム情報が記録されている複数のデータフレームに1以上のグループを設定する(グルーピングステップ)。
 (ステップS86)監視ECU100のグループ設定部140は、グループ設定部140が設定した各グループについて、当該グループに含まれるデータフレームの数が所定数、例えば20以上であるか否かを判定する。各グループに含まれるデータフレームの数が所定数以上である場合(YESの場合)は、監視ECU100による処理は、ステップS87に進む。所定数未満のデータフレームしか含んでいないグループが存在する場合(NOの場合)、監視ECU100は処理を終了する。
 (ステップS87)監視ECU100の不正データ識別部150は、受信ログに記録されているデータフレームの受信間隔と、正常モデル保持部191が保持する正常モデルとを用いて、グループ設定部140が設定した各グループについて正常なデータフレームのグループであるか不正なデータフレームのグループであるかを識別する(特徴量取得ステップ、不正データ存否判定ステップ)。
 (ステップS88)監視ECU100の不正データ識別部150は、ステップS87での結果に基づいて、受信ログにおける、基準として用いられるデータフレームの基準の欄の値が1に、基準として用いないデータフレームの基準の欄の値が0になるよう設定する(基準データフレーム再設定ステップ)。
 [1.6 不正発生検知部による処理]
 図9は、本実施の形態における監視ECU100の不正発生検知部130による、上記のステップS83の処理の具体例を示すフローチャートである。
 (ステップS91)不正発生検知部130は、受信ログ保持部180が保持する受信ログを参照する(受信ログ参照ステップ)。
 (ステップS92)不正発生検知部130は、受信ログに、基準の欄の値が1に設定されているデータフレームが存在するか否かを確認する(基準データフレーム存否確認ステップ)。基準の欄の値が1に設定されているデータフレームが存在する場合、不正発生検知部130による処理はステップS94に進む。基準の欄の値が1に設定されているデータフレームが存在しない場合、不正発生検知部130による処理はステップS93を実行する。
 (ステップS93)不正発生検知部130は、受信ログ保持部180が保持する受信ログに記録されているデータフレームのうち、最新のデータフレームの基準の欄の値を1に設定する(基準データフレーム設定ステップ)。
 (ステップS94)不正発生検知部130は、受信ログに含まれるフレーム情報から、受信済みのデータフレーム間の受信間隔及びデータ変化量を取得する(受信間隔・データ変化量取得ステップ)。
 (ステップS95)不正発生検知部130は、ステップS94で取得した受信間隔及びデータ変化量を用いて、ルール保持部190が保持する受信間隔ルール及びデータ変化量ルールに適合するデータフレームが、受信ログ保持部180が保持する受信ログに複数記録されているかを確認する(ルール適合性確認ステップ)。このとき、受信ログ内に基準の欄の値が1に設定されているデータフレームが複数存在する場合は、不正発生検知部130は、基準の欄の値が1に設定されているデータフレームそれぞれについて、全てのルールに適合しているか否かを判断する。各データフレームについて受信間隔ルール及びデータ変化量ルールの両方に適合していると判断された場合に、不正発生検知部130は、当該データフレームはルールに適合すると判断する。ルールに適合するデータフレームが複数存在する場合、不正発生検知部130による処理はステップS96に進む。ルールに適合するデータフレームが存在しないか又は1つのみである場合、不正発生検知部130による処理はステップS97に進む。
 (ステップS96)不正発生検知部130は、不正が発生していると判断して、不正対応部160と、グループ設定部140とに、不正が発生していることを通知する。
 (ステップS97)不正発生検知部130は、現在の時刻が、基準の欄の値が1に設定されているデータフレームの受信時刻に、ルール保持部190が保持する対応する受信間隔の平均に受信間隔のマージンを加算した時刻を経過しているか否か判断する。
 (ステップS98)当該時刻を経過している場合、不正発生検知部130は、受信ログにおいて、ルールに適合する全てのデータフレームの基準の欄の値を1に変更する。当該時刻を経過していない場合は、いずれのデータフレームについても基準の欄の値は変更されない。
 [1.10 他のECUの構成]
 図10は、車載ネットワークに接続されるノードの例であるECU200a又はECU200bの機能構成を示すブロック図である。ECU200aとECU200bとの機能構成は共通であってもよい。
 ECU200aは、フレーム送受信部201と、フレーム処理部202と、外部機器入出力部203と、フレーム生成部204とを備える。これらの機能的な構成要素は、ECU200aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ又はデジタル回路等により実現される。
 フレーム送受信部201は、バス300に対して、CANのプロトコルに従ったデータフレームを送受信する。即ち、フレーム送受信部201はバス300からデータフレームを1ビットずつ受信する。また、データフレームの受信がエラー無く完了すると、データフレームに含まれるID、DLC、及びデータフィールド(データ値)をフレーム処理部202に転送する。
 受信したデータフレームがCANプロトコルに従っていないデータフレームと判断した場合、フレーム送受信部201はエラーフレームを送信する。また、他のノードからエラーフレームを受信した場合、フレーム送受信部201は受信中のデータフレームを破棄する。
 フレーム送受信部201はさらに、通信調停といったCANのプロトコルに従った処理も実行する。
 フレーム処理部202は、受信したデータフレームの内容を解釈する。例えばECU200bでは、ECU200aから送信されるデータフレームのデータフィールドに含まれる、速度センサ210が計測した速度の情報を解釈する。そして、フレーム処理部202は、解釈して取得した速度の情報をメータ220に表示させるための制御情報を外部機器入出力部203に通知する。
 外部機器入出力部203は、ECU200a又はECU200bに接続される外部機器と通信を行う。例えばECU200aの場合、外部機器入出力部203は、速度センサ210と接続され、現在の車両の速度の情報を取得し、この情報をフレーム生成部204に通知する。ECU200bの場合、外部機器入出力部203は、メータ220に接続され、現在の車両の速度の情報を運転者に通知するために、この情報を表示させる信号をメータ220に送信する。
 フレーム生成部204は、バス300へ送信するデータフレームを生成する。例えばECU200aでは、外部機器入出力部203から通知された、速度センサ210から取得した車両の速度を含むデータフレームを、あらかじめ定められた周期、例えば、50ms間隔で生成しフレーム送受信部201に送信する。
 なお、データフレームが生成される間隔は上記に例示した50msに限定されず、50ms以外の任意の間隔でもよい。
 [1.11 ECUが送信するデータフレーム]
 本実施の形態における車載ネットワークに接続される各ECUが送信するデータフレームの構成について例を用いて説明する。図11は、ECU200aがバス300に送信するデータフレームの例を示す図である。監視ECU100及びECU200bは、バス300からこのデータフレームを受信する。ただし、図11では本実施の形態の理解に必要な部分のみを抜粋して示している。
 図11に示すように、ECU200aは、IDが0x100で、DLCが2のデータフレームを送信する。データフィールドはDLCに示される2バイトのデータ長であり、データフィールド全体で速度を(0.01km/h単位)を示す。図11に例として示されるデータフィールドの値「0x154B」は、54.51km/hの車速を示す。
 [1.12 監視ECUによる処理の具体例]
 次に、監視ECU100によるデータフレームの受信に伴う一連の処理(図8及び図9参照)の具体例を説明する。
 図12A、図13A、及び図14Aは、本実施の形態における監視ECU100の受信ログ保持部180が保持する受信ログの、図5の例とは別の例を時系列順に示す。ただし、データ値の欄にある十進数での時速表示は説明の便宜上示したものであり、実際の受信ログのデータ値には含まれなくてもよい。
 図12B、図13B、及び図14Bは、本実施の形態における監視ECU100が受信したデータフレームを説明するための図であり、それぞれ図12A、図13A、及び図14Aに対応する。図12Bに示されるグラフ空間内の丸は、図12Aに示されている受信ログに記録されている各データフレームの受信時刻及びデータ値に基づいてプロットされている。同様に、図13Bに示されるグラフ空間内の丸は、図13A中の各データフレームの受信時刻及びデータ値に基づいて、図14Bに示されるグラフ空間内の丸は、図14A中の各データフレームの受信時刻及びデータ値に基づいてプロットされているものと理解されたい。
 図15は、本実施の形態における監視ECU100により設定された各グループの受信間隔の分散を示す図である。
 また、以下の具体例においては、車載ネットワークシステム10では、ID「0x100」のデータフレームのルールとして、図7に示される受信間隔ルール及びデータ変化量ルールが用いられ、正常モデルとして、図6に示される正常ルールが用いられる。そして車載ネットワークシステム10に不正なECUが接続されており、この不正なECUからバス300に不正なデータフレームが流されている場合を想定している。
 図12Aによれば、監視ECU100は3個のデータフレームを受信し、これらの各データフレームが受信ログに記録されている(ステップS81、S82)。まず、この時点までの監視ECU100による処理を説明する。
 最初のデータフレームの受信後の処理では基準として用いられるデータフレームがまだ存在していないため、監視ECU100では当該データフレームが基準として設定される。つまり、不正発生検知部130によって、ステップS92でNOと判定されて、ステップS93が実行される(図9参照)。その結果、受信ログにおける最初のデータ行の基準の欄の値が1に設定される(図示なし)。
 また、不正の発生は検知されていないため、監視ECU100ではステップS84でNOと判定されて、このデータフレームの受信に関連する一連の処理は終了する(図8参照)。したがって、最初のデータフレームのグループの欄では、初期値のゼロのままである。
 2番目のデータフレームの受信に関連する一連の処理では、最初に受信されたデータフレームが基準に用いられる。したがって不正発生検知部130は、ステップS92ではYESと判定して、ステップS94へ進む(図9参照)。不正発生検知部130は、最初に受信されたデータフレームと2番目に受信されたデータフレームとで受信時刻及びデータ値の差分を取って、それぞれを受信間隔ルール及びデータ変化量ルールに照らす(ステップS95)。
 この例では、受信時刻の差、つまり受信間隔は49,450μsであり、受信間隔の平均50,000μsからのマージン(許容差)3,000μs内に収まる。つまり2番目に受信されたデータフレームは受信間隔ルールを満たす。また、データ値の差は0.12km/hである。したがって、2番目に受信されたデータフレームはデータ変化量ルールも満たす。
 この時点で、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは2番目に受信されたデータフレームのみである。したがって、ステップS95では、不正発生検知部130はNOと判定し、ステップS97に進む(図9参照)。
 ステップS97では、不正発生検知部130は、現在の時刻が最初のデータフレームの受信時刻にマージンを加算した時刻を経過しているか否かを判定する。この例では、その時刻より手前である(ステップS97でNO)と想定して、最初に受信されたデータフレームが引き続き基準として用いられる(図示なし)。
 2番目のデータフレームの受信に関連する処理は、その後(ステップS84以降)は最初に受信されたデータフレームの場合と同様に進んで終了する。したがって、グループの欄の値については、いずれも初期値のゼロのままである(図示なし)。
 次の3番目のデータフレームの受信に関連する一連の処理では、最初に受信されたデータフレームが再び基準に用いられる。したがって不正発生検知部130は、ステップS92ではYESと判定して、ステップS94へ進む(図9参照)。不正発生検知部130は、最初に受信されたデータフレームと3番目に受信されたデータフレームとで受信時刻及びデータ値の差分を取って(ステップS94)、それぞれを受信間隔ルール及びデータ変化量ルールに照らす(ステップS95)。
 この場合の受信間隔は50,250μsであり、受信間隔の平均50,000μsからのマージン3,000μs内に収まる。つまり3番目に受信されたデータフレームは受信間隔ルールを満たす。また、データ値の差は0.11km/hである。したがって、3番目に受信されたデータフレームはデータ変化量ルールも満たす。
 なお、図12Bを参照すると、受信された3つのデータフレームの受信間隔及びデータ値の大小関係が模式的に示されている。黒丸で示されるのが、最初のデータフレームである。この例では、この最初のデータフレームの受信時刻及びデータ値を基準に、続く2つのデータフレームのそれぞれについて2つのルールに適合するか否かが判定され、いずれについても2つのルールに適合すると判定されている。
 この時点で、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは2番目に受信されたデータフレーム及び3番目に受信されたデータフレームの2つである。したがって、次のステップS95では、不正発生検知部130はYESと判定してステップS96に進み、不正発生をグループ設定部140及び不正対応部160に通知する(図9参照)。
 次に不正発生検知部130は、現在の時刻が、最初のデータフレームの受信時刻にマージンを加算した時刻を経過しているか否かを判定する。この例では、その時刻を経過している(ステップS97でYES)と想定して、ルールに適合する全てのデータフレームを基準として用いるデータフレームに設定する(ステップS98)。つまり、2番目に受信されたデータフレーム及び3番目に受信されたデータフレームの2つが基準として用いるデータフレームに設定される(図12Aの「基準」の欄を参照)。
 次に監視ECU100は、ステップS84からステップS85へ進む。ステップS85では、不正が発生していることの通知を不正発生検知部130から受けているグループ設定部140が、フレーム情報を用いて、受信ログに記録されている複数のデータフレームにグループを設定する。この例では、2番目に受信されたデータフレーム及び3番目に受信されたデータフレームが互いに異なるグループに含まれるよう設定される。図12Aが示すのは、この時点での受信ログの状態である。図12Aに示される受信ログのグループの欄の値は、2番目に受信されたデータフレームはグループ1に、3番目に受信されたデータフレームはグループ2に含まれることを示している。
 次にグループ設定部140は、グループ1及びグループ2のそれぞれに含まれるデータフレームの個数が所定数以上であるか否か判定する(ステップS86、図8参照)。この例では所定数は10と想定する。この場合、ステップS86ではNOと判定され、3番目のデータフレームの受信に関連する一連の処理は終了する(図8参照)。
 次に、図13A及び図13Bを参照して、4番目及び5番目のデータフレームの受信に伴う監視ECU100による一連の処理を説明する。ただし、3番目までのデータフレームの受信に伴う処理と共通の点については省略するか又は簡単に説明する。
 4番目に受信されたデータフレームについてのステップS95の手順では、2番目に受信されたデータフレーム及び3番目に受信されたデータフレームの両方が基準に用いられる。
 4番目に受信されたデータフレームと2番目に受信されたデータフレームとの受信間隔は50,850μs、データ値の差は1km/h未満である。また、4番目に受信されたデータフレームと3番目に受信されたデータフレームとの受信間隔は、50,050μs、データ値の差は1km/h未満である。つまり、4番目に受信されたデータフレームは、受信間隔ルールとデータ変化量ルールとの両方に適合する。なお、この例のように基準として用いられるデータフレームが複数ある場合には、少なくとも1つの基準として用いられるデータフレームとの関係で受信間隔及びデータ変化量が基準を満たせば、ルールに適合すると判断される。
 この時点では、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは4番目に受信されたデータフレームのみである。したがって、不正発生検知部130はステップS95ではNOと判定し、ステップS97に進む。
 次のステップS97では、この例では、その時刻より手前である(ステップS97でNO)と想定して、2番目及び3番目に受信されたデータフレームが引き続き基準として用いられる。
 ステップS84以降については、2番目に受信されたデータフレームの場合と同様である。
 5番目に受信されたデータフレームについてのステップS95の手順では、2番目に受信されたデータフレーム及び3番目に受信されたデータフレームが再び基準に用いられる。
 5番目に受信されたデータフレームと2番目に受信されたデータフレームとの受信間隔は51,300μs、データ値の差は1km/h未満である。また、5番目に受信されたデータフレームと3番目に受信されたデータフレームとの受信間隔は、50,500μs、データ値の差は1km/h未満である。つまり、5番目に受信されたデータフレームは、受信間隔ルールとデータ変化量ルールとの両方に適合する。
 なお、図13Bを参照すると、この時点までに受信された5つのデータフレームの受信間隔及びデータ値の大小関係が模式的に示されている。黒丸で示されるのが、2番目及び3番目に受信されたデータフレームである。この例では、この2番目及び3番目に受信されたデータフレームの受信時刻及びデータ値を基準に、続く4番目及び5番目に受信されたデータフレームのそれぞれについて2つのルールに適合するか否かが判定され、いずれについても2つのルールに適合すると判定されている。
 この時点では、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは4番目に受信されたデータフレーム及び5番目に受信されたデータフレームの2つである。したがって不正発生検知部130は、ステップS95でYESと判定してステップS96に進み、不正発生をグループ設定部140及び不正対応部160に通知する(図9参照)。
 ステップS97では、この例ではその時刻を経過している(ステップS97でYES)と想定して、基準として用いられるデータフレームの設定が、4番目及び5番目に受信されたデータフレームに更新される(ステップS98、図13Aの「基準」の欄を参照)。
 ステップS84以降については、3番目に受信されたデータフレームの場合と同様である。ただしステップS85ではグループ設定部140が、4番目に受信されたデータフレームを、データ値の差がより小さい2番目に受信されたデータフレームと同じグループ1に設定する。また、5番目に受信されたデータフレームを、データ値の差がより小さい3番目に受信されたデータフレームと同じグループ2に設定する。図13Aに示される受信ログのグループの欄では、4番目に受信されたデータフレームはグループ1に、5番目に受信されたデータフレームはグループ2に含まれることが示されている。図13Bでは、同一のグループに含まれるデータフレームは点線の枠で囲んで示されている。
 6番目から19番目に受信されたデータフレームは、4番目又は5番目に受信されたデータフレームと同様に処理されるため説明を省略し、図14A及び図14Bを参照して、20番目及び21番目のデータフレームの受信に伴う監視ECU100による一連の処理を説明する。ただし、5番目までのデータフレームの受信に伴う処理と共通の点については省略するか又は簡単に説明する。また、6番目から17番目に受信されたデータフレームについては、図14Aに記載の受信ログでの記載も省略している。
 20番目及び21番目に受信されたデータフレームについてのステップS95の手順では、18番目に受信されたデータフレーム及び19番目に受信されたデータフレームの両方が基準に用いられる。
 20番目に受信されたデータフレームと18番目に受信されたデータフレームとの受信間隔は49,100μs、データ値の差は1km/h未満である。また、20番目に受信されたデータフレームと19番目に受信されたデータフレームとの受信間隔は、48,500μsであるが、データ値の差は1km/hを超える。このように、20番目に受信されたデータフレームは、18番目に受信されたデータフレームとの関係で受信間隔及びデータ変化量が基準を満たすため、受信間隔ルールとデータ変化量ルールとの両方に適合すると判断される。
 この時点では、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは20番目に受信されたデータフレームのみである。したがって、不正発生検知部130は、ステップS95ではNOと判定し、ステップS97に進む。
 次のステップS97では、この例では、その時刻より手前である(ステップS97でNO)と想定して、18番目及び19番目に受信されたデータフレームが引き続き基準として用いられる。
 ステップS84以降については、2番目又は4番目に受信されたデータフレームの場合と同様である。
 21番目に受信されたデータフレームについてのステップS94の手順では、再び19番目に受信されたデータフレーム及び20番目に受信されたデータフレームが基準に用いられる。
 21番目に受信されたデータフレームと18番目に受信されたデータフレームとの受信間隔は49,700μs、データ値の差は1km/hを超える。また、21番目に受信されたデータフレームと19番目に受信されたデータフレームとの受信間隔は、49,100μsであるが、データ値の差は1km/h未満である。このように、21番目に受信されたデータフレームは、19番目に受信されたデータフレームとの関係で受信間隔及びデータ変化量が基準を満たすため、受信間隔ルールとデータ変化量ルールとの両方に適合する。
 この時点では、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは20番目に受信されたデータフレーム及び21番目に受信されたデータフレームの2つである。したがって不正発生検知部130は、ステップS95でYESと判定してステップS96に進み、不正発生をグループ設定部140及び不正対応部160に通知する(図9参照)。
 次のステップS97では、この例では、その時刻を経過している(ステップS97でYES)と想定して、基準として用いられるデータフレームの設定が、20番目及び21番目に受信されたデータフレームに更新される(図示なし)。
 ステップS84では、3番目又は5番目に受信されたデータフレームの場合と同様に、YESと判定される。
 ステップS85ではグループ設定部140が、20番目に受信されたデータフレームを、データ値の差がより小さい18番目に受信されたデータフレームと同じグループ1に設定する。また、21番目に受信されたデータフレームを、データ値の差がより小さい19番目に受信されたデータフレームと同じグループ2に設定する。
 次にグループ設定部140は、グループ1及びグループ2のそれぞれに含まれるデータフレームの個数が所定数以上であるか否か判定する(ステップS86、図8参照)。この時点では、各グループに含まれるデータフレームの個数が10個である(図14B参照)。したがって、グループ設定部140は、ステップS86でYESと判定する。
 次に監視ECU100では、不正データ識別部150が、各グループについて正常なデータフレームのグループであるか不正なデータフレームのグループであるかを識別する(ステップS87、図8参照)。不正データ識別部150は、各グループの受信間隔の分散を算出する。図15は、不正データ識別部150が算出した受信間隔の分散の例を示す。不正データ識別部150は、これらの分散のそれぞれと、図6に示される正常モデル保持部191が保持する正常モデルが示す正常なIDが0x100のデータフレームの受信間隔の分散との差分を比較する。この例では、不正データ識別部150は、正常モデルが示す分散との差分のより小さい、つまり、より正常モデルに近い分散を示すグループ1を正常なデータフレームのグループであると識別する。また、グループ2を不正なデータフレームのグループであると識別する。
 また不正データ識別部150は、不正なデータフレームのグループであるグループ2に含まれるデータフレームを基準として用いないよう設定を変更する。つまり、受信ログにおける、グループ2に含まれるデータフレームの基準の欄の値を0に設定する(ステップS88、図8参照)。この例では、次に受信されるデータフレームについては、グループ1の最新のデータフレーム、つまり20番目に受信されたデータフレームのみが基準として用いられる。図14Aに示される受信ログの基準の欄では、20番目に受信されたデータフレームについてのみ1の値が入り、その他のデータフレームについては0とされている。
 図14Bは、この時点までに受信されたデータフレームの受信間隔及びデータ値の大小関係を模式的に示す。クロスを含む丸は、ステップS87で不正なデータフレームのグループと識別されたグループ2に含まれるデータフレームを示す。また、黒丸は、21番目に受信されたデータフレームについて実行されたステップS88の後、つまり、22番目に受信されるデータフレームについての処理におけるステップS95で基準として用いられるデータフレームを示す。
 なお、その後にグループ2に含まれるデータフレームを送信していた不正なECUから新たに送信するデータフレームは、20番目に受信されたデータフレームのみが基準として用いる場合には、少なくともデータ変化量ルールに適合しない。つまり、いずれのデータフレームとの関係においてもルールに適合しないため、監視ECU100では不正なデータフレームとして扱われる。
 [1.13 効果]
 本実施の形態において、車載ネットワークシステム10を流れるデータフレームを監視する監視ECU100では、所定のルールに適合するデータフレームが複数存在する場合に、各データフレームには、含むデータ値に基づいてグループが設定される。そして、さらに、設定したグループごとに、データフレームの受信間隔の分布に関する特徴(特徴量)を正常モデルと比較することで、当該グループが正常なデータフレームを含むグループであるかを識別する。これにより、従来では正常と不正の識別が困難であったデータフレームについて、より精度よく正常なデータフレームを識別することができ、より確実に車載ネットワークを保護することができる。
 [2. 変形例]
 なお、本開示を上記実施の形態に基づいて説明してきたが、本開示は、上記実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
 (1)上記実施の形態は、データフレームに含まれるデータ値によって、データフレームに2個のグループを設定する場合を例に用いて説明したものであり、設定されるグループは3つ以上であってもよい。また、設定されるグループの個数は、例えばグループ設定部140によって、所定の受信間隔の時間内に受信される同じIDのデータフレームの数に応じて動的に変更されてもよい。これにより、例えば車載ネットワークシステム10に流される不正なデータフレームが、正常なデータフレームの個数に対して非常に多い場合にも対応可能となり、より効果的である。
 また、上記実施の形態では、2個のグループが一度に設定されているが、一時に設定されるグループは、ある時間幅の中でルールを満たす等の所定の条件を満たす一群のデータフレームに1個のみでもよく、グループが設定される都度、不正なデータフレームを含むグループであるか否かが判定されてもよい。
 (2)上記実施の形態は、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームは、いずれも基準として用いるデータフレームに設定する場合を例に用いて説明したものであり、基準として用いるデータフレームの個数を所定の数以下に抑えてもよい。例えば、受信間隔ルールとデータ変化量ルールとの両方に適合するデータフレームが3個以上存在する場合には、これらのデータフレームの中からグループ設定部140がランダムに、受信順に、又はデータ値間の差分等に基づいて、基準に用いるデータフレームとして2個を選択してもよい。これにより、不正発生検知部130による計算量の増加を抑えてより効率よく安定した処理ができる。
 (3)上記実施の形態は、各グループに含まれるデータフレームが20個又は10個以上のときに、不正なデータフレームを含むグループか否かの判断が実行される(ステップS86)場合を例に用いて説明したものである。ただし、不正データ識別部150がこの判断を行うときに各グループに含まれるデータフレームの個数はこれらに限定されず、多くても少なくてもよい。不正なデータフレームを含むグループの識別の処理は、各グループに含まれるデータフレームの個数が少なければ、より高速な処理が可能である。その一方で、各グループに含まれるデータフレームの個数が多ければ、より高い精度の識別が期待できる。このようなグループあたりのデータフレームの個数は、例えば処理速度と、用途に応じて要求される識別の精度とのバランスを考慮して決定されてもよい。
 また、上記実施の形態は、不正データ識別部150が不正なデータフレームを含むグループの識別を開始する条件に、各グループに含まれるデータフレームの個数を用いる場合を例に用いて説明したものであり、この条件には、このようなデータフレームの個数以外のものが用いられてもよい。不正データ識別部150は、例えば、各グループに含まれるデータフレームのデータ値の平均の差が所定の値を超えた場合に、不正なデータフレームの識別を実行してもよい。また、グループが3個以上ある場合には、例えば各グループ間でのデータ値の平均の差の中で最大のもの、又は最小のものが所定の値を超えた場合に不正なデータフレームの識別を実行してもよい。
 または、各グループに含まれる最新のデータフレームのデータ値間の差が所定の値を超えた場合に、不正なデータフレームの識別を実行してもよい。これらの場合に用いられる所定の値は、同一IDのデータフレームのデータ値の差が大きいことが車両の動作に悪影響を及ぼさない範囲で選択して決定される。
 これにより、車両の動作に影響が及ばない程度であればデータフレームを蓄積することが可能となる。したがって、車両の動作に影響が及ぶ前に不正なデータフレームを含むグループを識別でき、かつ、識別精度の向上が期待できる。
 また、上記のような開始の条件が満たされた後に不正なデータフレームを含むグループであるかの識別を実行したものの、例えばデータフレームの受信間隔の分散の差が所定の値よりも小さいなどの理由で、不正なデータフレームを含むグループであると識別しなかった場合には、さらにデータフレームの収集を継続してグループに追加してから再度識別が実行されてもよい。
 これにより、不正であるか否かの識別が所望の精度で実行するのに要する数までデータフレームを収集することができる。
 (4)上記実施の形態は、各グループに含まれるデータフレームの個数が所定の数に達すると、不正なデータフレームを含むグループであるか否かの識別が、正常モデルとの比較の1回の結果に基づいて実行されている場合を例に用いて説明されているが、これに限定されない。
 例えば、1回の比較の結果が不正なデータフレームを含むグループであることを示す場合、データフレームを引き続き受信してから判定を繰り返し実施し、同じグループが所定の回数、例えば3回連続して不正だと判定した場合に、当該グループを不正なデータフレームのグループと識別してもよい。
 これにより、不正なデータフレームを含むグループであるかの識別がより慎重に実行されることで、識別精度の向上が期待できる。
 (5)上記実施の形態は、受信ログにフレーム情報が記録されているデータフレームに対して、グループ設定部140によって設定された各グループに含まれるデータフレームの数がカウントされる場合を例に用いて説明したものである。しかしながら、各グループに含まれるデータフレームの個数の上限をあらかじめ定めておき、データフレームが受信されるたびにFIFO(First-In First-Out)バッファを用いて各グループに含まれるデータフレームを更新してもよい。これにより、データフレームは古いものから順に自動的にグループから除去されてその影響が小さくなり、識別の精度向上に効果的である。
 (6)上記実施の形態は、データフレームへのグループの設定方法として、前回の基準として用いられたデータフレームのデータ値と、現在の基準であるデータフレームのデータ値の2乗誤差が最小となる組み合わせが同じグループに設定される例を用いて説明したものである。しかしながら、データフレームへのグループの設定方法はこの例に限定されない。例えば、前回の基準として用いられたデータフレームと、前回よりさらに1つ前、すなわち、前々回の基準として用いられたデータフレームを用いて、1つ前及び2つ前に各グループが設定されたデータフレーム間のデータ値の差から現在のデータ値を予測し、予測に最も近いデータ値のデータフレームを当該グループに設定してもよい。または、K-means法や、DBSCAN(Density-Based Spatial Clustering of Applications with Noise)などの既知の各種のクラスタリング手法を用いてデータフレームにグループを設定してもよい。
 (7)上記実施の形態では、受信間隔の分布に関する特徴量として受信間隔の分散が用いられているが、これに限定されない。例えば、受信間隔の最大値や最小値、標準偏差等の他の統計量が用いられてもよい。また、正常モデルとしても、受信間隔の分散が用いられているが、これに限らず他の統計量が正常モデルとして用いられてもよい。例えば、受信間隔の最大値や最小値、標準偏差が用いられてもよい。
 (8)上記実施の形態では、正常モデルに示される特徴量とより近い特徴量を示すグループを正常なデータフレームを含むグループとして識別しているが、正常モデルはこれに限定されない。正常モデルは正常なデータフレームの特徴を示すものであればよく、例えば正常モデルとして、過去に正常と判定されたグループに含まれるデータフレーム、又は仕様で規定されている正常な受信間隔のデータが正常モデル保持部191に保持されてもよい。そして、不正データ識別部150は、正常モデルのデータが示す受信間隔と識別対象のデータフレームのグループの受信間隔との密度比推定を介した異常度をデータフレーム間の受信間隔の分布に関する特徴量として算出し、不正なデータフレームを含むグループであるかの判定がなされてもよい。この場合、不正データ識別部150は、異常度に基づいて正常又は不正なデータフレームの識別を実行する。
 これにより、受信間隔の集合から求まる統計量からではなく、正常な受信間隔との確率分布の差異からデータフレームのグループの不正を判定することが可能となり、識別の可能性が高まる。例えば、識別対象のグループに含まれるデータフレームが単独又は比較的少数であっても、その受信間隔から、正常又は不正なデータフレームを含むグループの識別をより精度よく実行することができる。
 また、正常モデルの別の例をさらに挙げると、正常なデータフレームの受信間隔の時系列データから求めた自己回帰係数を示すものであってもよい。この場合、正常なデータフレームの識別は、グループごとに、グループに含まれるデータフレームの受信間隔の時系列データ、つまりフレーム情報から自己回帰係数を用いて予測される予測受信間隔と、当該グループに含まれる最新のデータフレームの実際の受信間隔との誤差である予測誤差を算出し、予測誤差が最も小さいものが正常なデータフレームを含むグループと識別されてもよい。
 これにより、受信間隔の時系列モデルに沿った出現確率に基づいて正常なデータフレームのグループを判定することが可能となり、識別の可能性が高まる。
 また、正常なデータフレームのグループの識別には機械学習を用いる方法が利用されてもよい。
 例を挙げると、各グループに含まれるデータフレーム間の受信間隔についてのベクトル(以下、受信間隔ベクトルという)を主成分分析又はオートエンコーダなどを用いて次元削減した結果が用いられてもよい。例えばあるグループに含まれるデータフレームが10個ある場合、9個の受信間隔を要素とする9次元のベクトルが利用可能であり、次元削減の対象とすることができる。そして復元後の再構成誤差が小さいデータフレームのグループが正常なデータフレームを含むグループと識別されてもよい。
 なお、上記のような受信間隔ベクトルは、機械学習を用いる方法に限らず利用されてもよい。例えば、受信間隔ルールは正常なデータフレーム間の受信間隔についての受信間隔ベクトル(正常受信間隔ベクトル)の分散等の特徴量に関する規定であってもよい。この場合、不正データ識別部150は、例えば、受信間隔ルールが示す正常受信間隔ベクトルの分散と、識別対象のデータフレームの受信間隔ベクトルの分散との差に基づいて識別を実行する。
 機械学習を用いる方法の別の例を挙げると、あらかじめ不正なデータフレームを正常なデータフレーム近傍に注入した受信間隔のデータを不正なデータフレームのグループのラベルとして学習させたランダムフォレスト(Random Forest)、又はサポートベクターマシン(Support Vector Machine)などの識別器が用いられてもよい。
 (9)上記実施の形態及びその変形例では、データフレームに含まれるデータ値によって、データフレームにグループを設定した後に、グループごとのデータフレームの受信間隔から算出される特徴(受信間隔に関する特徴量)を用いて不正なデータフレームを含むグループを識別している。しかしながら、データフレームにグループを設定することなく、複数のデータフレームの受信間隔の分布の特徴量に基づいて不正なデータフレームの存否が判定されてもよい。
 これにより、ネットワークに正常なデータフレームが送信されずに不正なデータフレームのみが送信される状況においても、データフレームの受信間隔を用いて不正なデータフレームが送信されていることを検知することができ、車載ネットワークを効果的に保護することができる。このような状況は、例えば攻撃によって送信されるデータフレームによって正常なデータフレームが置換される場合に発生し得る。
 CANのような仕様のネットワークでは、IDで識別されるデータの種類(内容)ごとにデータフレームの送信の周期がほぼ一定であり、攻撃のためのデータフレームもその周期から許容範囲内の誤差で送信される必要がある。しかしながら、データフレームの実際の送信の周期には、ECUの個体差又は処理内容によって差が生じる。したがって、実際に送信されたデータフレームのサンプルから統計的に得られる、データフレームの受信間隔の分布に関する特徴量は、攻撃者にとって偽装が困難である。したがって、受信間隔に関する特徴量を利用する攻撃対策は、攻撃者に回避されにくい。これにより、より確実に車載ネットワークを保護することができる。
 (10)上記実施の形態では、不正を検知した監視ECU100の動作として、不正を通知するデータフレームを他のECU等に送信する例を示したが、これに限定されない。例えば監視ECU100は、データフレームの受信中に不正検知を行い、受信間隔ルール及びデータ変化量ルールのいずれかに適合しないデータフレームをエラーフレームの送信により無効化してもよい。
 また車載ネットワークがゲートウェイECUを含む場合、監視ECU100と同等の監視機能をゲートウェイECUに追加してもよい。このゲートウェイECUは、ルールに適合しないデータフレームを転送しないという動作をしてもよい。このようにゲートウェイECUに監視機能を追加することで、より多数の車載ネットワークの情報を監視できる。したがって、実現できる機能の幅が広がり、また、効率的な監視が可能である。
 また、不正を検知した監視ECU100の動作の他の例として、不正を検知したことのユーザへの通知、車両のフェールセーフモードへの移行、検知した不正のログへの記録、携帯電話網などを通じての検知した不正の、車外にあるクラウドサーバ等への通知が挙げられる。
 これにより、不正を検知した後の、ユーザ又は車載ネットワークシステム10と連携するシステム等による柔軟な対応が可能となる。また、不正なデータフレームを含むグループについて、データ値又は受信間隔情報といったフレーム情報の集合が不正の指標となるラベルとして機械学習に用いられてもよい。
 (11)上記実施の形態は、ステップS88で基準となるデータフレームを設定し直し、このデータフレームを基準に用いて以降の不正の発生検知の処理(ステップS83)をしていたが、これに限定されない。例えば、ステップS88の処理に代えて、その後に受信する各データフレームについて、そのデータ値に基づいて、ステップS87で識別された不正なデータフレームを含むグループに属するか否かが判定されてもよい(データフレーム判定ステップ)。例えばこの判定の結果がYESであるデータフレームは、ゲートウェイで転送されない対象として扱われてもよい。
 または、データフレーム判定ステップでは、受信する各データフレームについて、ステップS87で識別された不正なデータフレームを含まないグループ(正常なデータフレームのグループ)に属するか否かが判定されてもよく、例えば、この判定の結果がYESであるデータフレームのみがゲートウェイでの転送の対象として扱われてもよい。
 これにより、個々のデータフレームの正常又は不正の判定によるフィルタリングが可能になる。
 (12)上記実施の形態は、CANプロトコルの標準フォーマットにおけるIDの例を示して説明したが、CANプロトコルの拡張フォーマットのIDであってもよい。
 (13)上記実施の形態は、受信ログには各データフレームのフレーム情報に、受信間隔情報として受信時刻が含まれ、データフレーム間の実際の受信間隔はこの受信時刻の差を算出することで取得される場合を例に説明されているがこれに限定されない。例えば受信ログには、受信時刻に代えて、直前のデータフレームとの受信時刻の差の計算結果が受信間隔情報として含まれてもよく、監視ECU100では、この計算結果である受信間隔情報が不正発生検知部130によって取得されてそのまま用いられてもよい。
 (14)上記実施の形態は、1つのID「0x100」について保持されるデータフレームの受信ログ、正常モデル、受信間隔ルール、及びデータ変化量ルールを用いて説明したが、監視ECU100では、これらは、それぞれ1つ以上のIDについて保持されてもよい。例えば、監視対象であるデータフレームの全てのIDの各々について保持されてもよい。
 また、通信の仕様でデータフレームに複数の種類がない場合、又は種類は複数あっても受信間隔及びデータ変化量の正常範囲が共通であることが既知な場合には、受信ログにIDを含めなくてもよい。
 (15)上記実施の形態では、データフレームは平文でバス300に流される例を示したが、データフレームは、暗号化されてからバスに送信されてもよい。また、データフレームにメッセージ認証コードを含んでいてもよい。
 (16)上記実施の形態では、正常モデル及び受信ログは、それぞれ正常モデル保持部191、受信ログ保持部180に平文で保持されている例を示したが、暗号化されていてもよい。
 (17)上記実施の形態では、車載ネットワークとしてCANプロトコルを用いていたが、これに限るものではない。例えば、CAN-FD(CAN with Flexible Data-Rate)、FlexRay、Ethernet(登録商標)、LIN(Local Interconnect Network)、MOST(Media Oriented Systems Transport)などを用いてもよい。あるいはこれらのネットワークをサブネットワークとして、CANと組み合わせたネットワークであってもよい。
 (18)上記実施の形態では、不正発生検知部130、グループ設定部140、不正データ識別部150、及び各種のデータを保持する記憶装置を構成要素として含む監視ECU100を説明しているが、全ての構成要素が一の装置に備えられる必要はない。例えば、不正発生検知部130、グループ設定部140、不正データ識別部150、又は記憶装置は、車外のクラウドサーバに備えられてもよい。例えばこれらの構成要素を備えるクラウドサーバでは、車載ネットワークシステムが接続可能な携帯電話回線網等の無線通信網を通じて監視ECU100のフレーム収集部120から受け取ったデータが、記憶装置上で実現される受信ログ保持部180に記録される。また、不正発生検知部130、グループ設定部140、及び不正データ識別部150は、受信ログ保持部180に保持される受信ログの読み書きをする。一方、監視ECU100では、クラウドサーバの不正発生検知部130から無線通信網を通じて不正の発生の通知を受けると、不正対応部160がフレーム生成部170へデータフレームの生成を要求する。
 なお、このような変形的な実施の形態も包含して、本開示は1台以上の情報処理装置を含む情報処理システムとして実現され得る。
 (19)上記の実施の形態における各ECUは、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAM又はハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各ECUは、その機能を実現する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 (20)上記実施の形態における各ECUは、構成の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
 また、上記の各ECUを構成する各構成要素は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
 また、ここでは、各ECUの構成をシステムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
 さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
 (21)上記の各ECUを構成の一部又は全部は、各ECUに脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。ICカード又はモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカード又はモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカード又はモジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
 (22)本開示は、上記に示すステップを含む方法であるとしてもよい。例えば、監視ECU100の各構成要素が実行する処理の内容を手順として含む方法として実現され得る。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
 また、本開示は、コンピュータプログラム又はデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
 また、本開示は、コンピュータプログラム又はデジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
 また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
 また、プログラム又はデジタル信号を記録媒体に記録して移送することにより、又はプログラムまたはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
 (23)上記実施の形態及び上記変形例をそれぞれ組み合わせてもよい。
 以上、上記のいずれの実施の形態又はその変形例を用いて説明された本開示の情報処理システム等は、車載ネットワークを流れるデータフレームを監視し、ルールに適合するデータフレームが複数送信された場合でも、受信間隔の分布に関する特徴に基づいて不正なデータフレームの存否を判定することができる。また、受信したデータフレームに、データ値に基づいてグループを設定し、受信間隔の分布に関する特徴量を設定したグループごとに取得して正常モデルと比較することで、正常なデータフレームのグループを識別することができる。これにより、従来は正常か不正の識別が困難であったルールに適合する複数のデータフレームについても、精度よく、正常又は不正なデータフレームのグループであるか否かの識別、又は受信した複数のデータフレームの中に不正なデータフレームが含まれているか否かの判定をすることができ、より確実な車載ネットワークの保護が可能となる。
 なお、本願の記載では、複数のデータフレームの中の不正なデータフレームの存否を判定する、との表現は、複数のデータフレーム中の各々が正常又は不正であるか否かであるかに基づく識別、及び複数のデータフレーム中にひとつでも不正なデータフレームが含まれているか否かに基づく正常又は不正の判定のいずれの場合も指し得る意味で用いている。
 本開示は、車載ネットワークを含む車載ネットワークシステム等に利用可能である。
 10 車載ネットワークシステム
 100 監視ECU
 110 フレーム送受信部
 120 フレーム収集部
 130 不正発生検知部
 140 グループ設定部
 150 不正データ識別部
 160 不正対応部
 170 フレーム生成部
 180 受信ログ保持部
 190 ルール保持部
 191 正常モデル保持部
 200a,200b ECU
 201 フレーム送受信部
 202 フレーム処理部
 203 外部機器入出力部
 204 フレーム生成部
 210 速度センサ
 220 メータ
 300 バス

Claims (14)

  1.  記憶装置を備える情報処理システムが行う、1以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理方法であって、
     前記車載ネットワークに流れる複数のデータフレームを順次受信する受信ステップと、
     前記複数のデータフレーム間の受信間隔を示す受信間隔情報を、前記記憶装置に保持される受信ログにフレーム情報として記録するフレーム収集ステップと、
     前記受信間隔情報から、前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得する特徴量取得ステップと、
     前記特徴量を用いて、前記複数のデータフレームの中の不正なデータフレームの存否を判定する不正データ存否判定ステップとを含む、
     情報処理方法。
  2.  前記記憶装置には、正常なデータフレームの特徴を示す正常モデルがさらに保持され、
     前記不正データ存否判定ステップにおいて、前記受信間隔情報を用いて求められた前記特徴量と、前記正常モデルとを用いて前記複数のデータフレームの中の不正なデータフレームの存否を判定する、
     請求項1に記載の情報処理方法。
  3.  前記正常モデルは、前記特徴として正常なデータフレーム間の受信間隔を示し、
     前記特徴量取得ステップにおいて取得される特徴量は、受信された前記複数のデータフレーム間の受信間隔と前記正常モデルが示す正常なデータフレーム間の受信間隔との密度比推定を用いて算出される、受信された前記複数のデータフレーム間の受信間隔の異常度であり、
     前記不正データ存否判定ステップにおいて、前記異常度に基づいて前記複数のデータフレームの中の不正なデータフレームの存否を判定する、
     請求項2に記載の情報処理方法。
  4.  前記正常モデルは、前記特徴として正常なデータフレーム間の受信間隔の分散を示し、
     前記特徴量取得ステップにおいて取得される特徴量は、受信された前記複数のデータフレーム間の受信間隔の分散であり、
     前記不正データ存否判定ステップにおいて、前記正常なデータフレーム間の受信間隔の分散と前記受信間隔の分散との差を算出し、前記差の大きさに基づいて前記複数のデータフレームの中の不正なデータフレームの存否を判定する、
     請求項2に記載の情報処理方法。
  5.  前記フレーム情報には、前記受信間隔情報と対応づけて、前記複数のデータフレームのそれぞれが含むデータ値がさらに含まれ、
     さらに、前記フレーム情報が含む前記受信間隔情報及び前記データ値に基づいて、前記複数のデータフレームの少なくとも一部を含む1以上のグループを設定するグルーピングステップを含み、
     前記特徴量取得ステップにおいて、前記受信ログに含まれる前記受信間隔情報から、前記1以上のグループのそれぞれについて、当該グループが含む前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得し、
     前記不正データ存否判定ステップにおいて、前記1以上のグループのそれぞれについて求められた特徴量に少なくとも基づいて、前記1以上のグループの中から不正なデータフレームを含むグループ又は不正なデータフレームを含まないグループを識別する、
     請求項2から4のいずれか1項に記載の情報処理方法。
  6.  前記不正データ存否判定ステップにおいて前記1以上のグループのそれぞれについてグループを識別した後に実行した前記受信ステップで受信したデータフレームについて、
     前記識別されたグループに属するか否かを判定することで当該データフレームが正常なデータフレームであるか又は不正なデータフレームであるかを判定するデータフレーム判定ステップをさらに含む、
     請求項5に記載の情報処理方法。
  7.  前記記憶装置には、データフレームの受信間隔に関する規定である受信間隔ルールと、データフレームに含まれるデータ値の時間的変化量に関する規定であるデータ変化量ルールとがさらに保持され、
     前記グルーピングステップにおいて、前記受信間隔情報及び前記データ値と、前記受信間隔ルール及び前記データ変化量ルールとに基づいて、前記1以上のグループを設定し、
     前記1以上のグループのそれぞれに含まれるデータフレームの数が所定数以上である場合に、前記1以上のグループに対して前記不正データ存否判定ステップを実行する、
     請求項5又は6に記載の情報処理方法。
  8.  前記記憶装置には、データフレームの受信間隔に関する規定である受信間隔ルールと、正常なデータフレームに含まれるデータ値の時間的変化量に関する規定であるデータ変化量ルールがさらに保持され、
     前記グルーピングステップにおいて、前記受信間隔情報及び前記データ値と、前記受信間隔ルール及び前記データ変化量ルールとに基づいて、前記複数のデータフレームに複数のグループを設定し、
     前記複数のグループのそれぞれに含まれるデータフレームのデータ値の平均の差が所定の大きさ以上である場合に、前記複数のグループに対して前記不正データ存否判定ステップを実行する、
     請求項5又は6に記載の情報処理方法。
  9.  前記データ変化量ルールは、前記データフレームに含まれるデータ値の時間的変化量が所定値以下であることを規定する、
     請求項7又は8に記載の情報処理方法。
  10.  前記記憶装置には、正常なデータフレームの受信間隔の時系列データから求めた自己回帰係数がさらに保持され、
     前記グルーピングステップにおいて設定される前記1以上のグループは複数のグループであり、
     前記複数のグループのそれぞれが含む前記複数のデータフレーム間の受信間隔に関する特徴量は、前記受信間隔情報を用いて予測される予測受信間隔であり、
     前記特徴量取得ステップにおいて、前記複数のグループのそれぞれが含む前記複数のデータフレーム間の受信間隔に関する特徴量として、前記自己回帰係数及び前記フレーム情報とを用いて予測受信間隔を取得し、
     前記不正データ存否判定ステップにおいて、前記複数のグループのそれぞれについて、前記予測受信間隔と、当該グループに含まれる最新のデータフレームの実際の受信間隔との誤差である予測誤差を算出し、前記複数のグループの中で前記予測誤差が最も小さいグループを、不正なデータフレームを含まないグループと識別する、
     請求項5から9のいずれか1項に記載の情報処理方法。
  11.  前記不正データ存否判定ステップにおいて、
     正常なデータフレームの受信間隔ベクトルと、不正なデータフレームの受信間隔ベクトルとを学習した識別器を用いて、前記複数のグループの中から、不正なデータフレームを含むグループと不正なデータフレームを含まないグループとを識別する、
     請求項5から9のいずれか1項に記載の情報処理方法。
  12.  前記識別器は、ランダムフォレスト(Random Forest)、サポートベクターマシン(Support Vector Machine)、NN(Nearest Neighbor)、およびニューラルネットワーク(Neural Network)のうちの少なくとも1つを用いて構成される、
     請求項11に記載の情報処理方法。
  13.  プロセッサ及び記憶装置を備え、1以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理システムであって、
     前記プロセッサは、
     前記車載ネットワークに流れる複数のデータフレームを順次受信し、
     前記複数のデータフレーム間の受信間隔を示す受信間隔情報を、前記記憶装置に保持される受信ログにフレーム情報として記録し、
     前記受信間隔情報から、前記複数のデータフレーム間の受信間隔の分布に関する特徴量を取得し、
     前記特徴量を用いて、前記複数のデータフレームの中の不正なデータフレームの存否を判定する、
     情報処理システム。
  14.  プロセッサ及び記憶装置を備える情報処理システムにおいて、前記プロセッサに請求項1に記載の情報処理方法を実行させるプログラム。
PCT/JP2018/004781 2017-03-13 2018-02-13 情報処理方法、情報処理システム、及びプログラム WO2018168291A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201880000973.1A CN108885664B (zh) 2017-03-13 2018-02-13 信息处理方法、信息处理系统、以及介质
EP18768478.2A EP3598329B1 (en) 2017-03-13 2018-02-13 Information processing method, information processing system, and program
US16/237,327 US10911182B2 (en) 2017-03-13 2018-12-31 In-vehicle information processing for unauthorized data
US17/128,542 US11411681B2 (en) 2017-03-13 2020-12-21 In-vehicle information processing for unauthorized data

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2017-047636 2017-03-13
JP2017047636 2017-03-13
JP2017248858A JP6956624B2 (ja) 2017-03-13 2017-12-26 情報処理方法、情報処理システム、及びプログラム
JP2017-248858 2017-12-26

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/237,327 Continuation US10911182B2 (en) 2017-03-13 2018-12-31 In-vehicle information processing for unauthorized data

Publications (1)

Publication Number Publication Date
WO2018168291A1 true WO2018168291A1 (ja) 2018-09-20

Family

ID=63523622

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/004781 WO2018168291A1 (ja) 2017-03-13 2018-02-13 情報処理方法、情報処理システム、及びプログラム

Country Status (1)

Country Link
WO (1) WO2018168291A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109677341A (zh) * 2018-12-21 2019-04-26 深圳市元征科技股份有限公司 一种车辆信息融合决策方法及装置
WO2020203352A1 (ja) * 2019-03-29 2020-10-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知方法及び異常検知装置
WO2021038869A1 (ja) * 2019-08-30 2021-03-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車両監視装置および車両監視方法
WO2021038870A1 (ja) * 2019-08-30 2021-03-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常車両検出サーバおよび異常車両検出方法
WO2021106446A1 (ja) * 2019-11-28 2021-06-03 住友電気工業株式会社 検知装置、車両、検知方法および検知プログラム
WO2022114025A1 (ja) * 2020-11-24 2022-06-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知方法、異常検知装置、及び、プログラム
US11503024B2 (en) 2019-12-06 2022-11-15 The Mitre Corporation Physical-layer identification of controller area network transmitters

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013094072A1 (ja) * 2011-12-22 2013-06-27 トヨタ自動車 株式会社 通信システム及び通信方法
WO2016116973A1 (ja) * 2015-01-20 2016-07-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正フレーム対処方法、不正検知電子制御ユニット及び車載ネットワークシステム
WO2017037977A1 (ja) * 2015-08-31 2017-03-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ ゲートウェイ装置、車載ネットワークシステム及び通信方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013094072A1 (ja) * 2011-12-22 2013-06-27 トヨタ自動車 株式会社 通信システム及び通信方法
WO2016116973A1 (ja) * 2015-01-20 2016-07-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正フレーム対処方法、不正検知電子制御ユニット及び車載ネットワークシステム
WO2017037977A1 (ja) * 2015-08-31 2017-03-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ ゲートウェイ装置、車載ネットワークシステム及び通信方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109677341A (zh) * 2018-12-21 2019-04-26 深圳市元征科技股份有限公司 一种车辆信息融合决策方法及装置
WO2020203352A1 (ja) * 2019-03-29 2020-10-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知方法及び異常検知装置
EP3951531A4 (en) * 2019-03-29 2022-05-11 Panasonic Intellectual Property Corporation of America PROCEDURE FOR DETECTING ANOMALIES AND SYSTEM FOR DETECTING ANOMALIES
US11943243B2 (en) 2019-03-29 2024-03-26 Panasonic Intellectual Property Corporation Of America Anomaly detection method and anomaly detection device
WO2021038869A1 (ja) * 2019-08-30 2021-03-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車両監視装置および車両監視方法
WO2021038870A1 (ja) * 2019-08-30 2021-03-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常車両検出サーバおよび異常車両検出方法
US11829472B2 (en) 2019-08-30 2023-11-28 Panasonic Intellectual Property Corporation Of America Anomalous vehicle detection server and anomalous vehicle detection method
US11995181B2 (en) 2019-08-30 2024-05-28 Panasonic Intellectual Property Corporation Of America Vehicle surveillance device and vehicle surveillance method
WO2021106446A1 (ja) * 2019-11-28 2021-06-03 住友電気工業株式会社 検知装置、車両、検知方法および検知プログラム
JP7505503B2 (ja) 2019-11-28 2024-06-25 住友電気工業株式会社 検知装置、車両、検知方法および検知プログラム
US11503024B2 (en) 2019-12-06 2022-11-15 The Mitre Corporation Physical-layer identification of controller area network transmitters
WO2022114025A1 (ja) * 2020-11-24 2022-06-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知方法、異常検知装置、及び、プログラム

Similar Documents

Publication Publication Date Title
JP6956624B2 (ja) 情報処理方法、情報処理システム、及びプログラム
WO2018168291A1 (ja) 情報処理方法、情報処理システム、及びプログラム
US10992688B2 (en) Unauthorized activity detection method, monitoring electronic control unit, and onboard network system
US11546298B2 (en) Information processing method, information processing system, and non-transitory computer-readable recording medium storing a program
JP7030046B2 (ja) 不正通信検知方法、不正通信検知システム及びプログラム
CN109076001B (zh) 帧传送阻止装置、帧传送阻止方法及车载网络系统
EP3358788B1 (en) Illegality detection electronic control unit, vehicle onboard network system, and communication method
EP3657757B1 (en) Illegality detection electronic control unit, car onboard network system, and illegality detection method
CN110610092B (zh) 车载网络系统、网关装置以及不正常检测方法
JP7053449B2 (ja) 不正通信検知基準決定方法、不正通信検知基準決定システム及びプログラム
EP3128699B1 (en) Network communication system, fraud detection electronic control unit and fraud handling method
CN109076016B9 (zh) 非法通信检测基准决定方法、决定系统以及记录介质
US11765186B2 (en) Unauthorized communication detection method, unauthorized communication detection system, and non-transitory computer-readable recording medium storing a program
KR20180021287A (ko) 차량 침입 탐지 장치 및 방법
CN111066001A (zh) 日志输出方法、日志输出装置以及程序
JP2019029960A (ja) 検知装置、検知方法および検知プログラム
CN115104291A (zh) 用于检测车载网络的入侵的系统和方法
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: 18768478

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018768478

Country of ref document: EP

Effective date: 20191014