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

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

Info

Publication number
WO2018105330A1
WO2018105330A1 PCT/JP2017/040866 JP2017040866W WO2018105330A1 WO 2018105330 A1 WO2018105330 A1 WO 2018105330A1 JP 2017040866 W JP2017040866 W JP 2017040866W WO 2018105330 A1 WO2018105330 A1 WO 2018105330A1
Authority
WO
WIPO (PCT)
Prior art keywords
field
payload
division pattern
value
indicating
Prior art date
Application number
PCT/JP2017/040866
Other languages
English (en)
French (fr)
Inventor
剛 岸川
前田 学
芳賀 智之
Original Assignee
パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority to CN201780003405.2A priority Critical patent/CN108401491B/zh
Priority to JP2018517654A priority patent/JP6847101B2/ja
Priority to EP17877833.8A priority patent/EP3554015B1/en
Publication of WO2018105330A1 publication Critical patent/WO2018105330A1/ja
Priority to US16/229,528 priority patent/US10999248B2/en
Priority to US17/223,772 priority patent/US11546298B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • 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 information processing of data flowing in an in-vehicle network.
  • ECUs electronice control units
  • a network connecting these ECUs is called an in-vehicle network.
  • in-vehicle network There are a number of communication standards for in-vehicle networks.
  • One of the most mainstream in-vehicle network standards is Control Area Network (hereinafter referred to as CAN).
  • a two-line bus is used as a communication line, and an ECU connected to this bus is called a node.
  • Each node connected to the bus transmits and receives a message called a frame.
  • a node that transmits a frame (hereinafter referred to as “transmission node”) applies voltage to two buses, a value of “1” called recessive according to the presence or absence of a potential difference between the buses, and a value of “0” called dominant.
  • Transmission node applies voltage to two buses, a value of “1” called recessive according to the presence or absence of a potential difference between the buses, and a value of “0” called dominant.
  • Send binary data of a frame by sending a value.
  • 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.
  • the CAN employs a CSMA / CA (Carrier Sense Multiple Access With Collision Avoidance) method, and arbitration by ID is performed at the time of simultaneous transmission of a plurality of nodes, and a frame having a small ID value is preferentially transmitted.
  • CSMA / CA Carrier Sense Multiple Access With Collision Avoidance
  • Patent Document 1 an in-vehicle network monitoring device is proposed. According to Patent Document 1, it is detected whether a frame is transmitted to a network at a predetermined communication interval, and an abnormal frame that deviates from the predetermined communication interval is determined to be illegal, thereby preventing control by an illegal frame. A method is disclosed. However, in order to detect an illegal frame with higher accuracy, it is necessary to verify the contents of the payload included in the frame.
  • the specifications of the frames transmitted and received in the in-vehicle network are not standardized and designed independently by the car maker, so the third party cannot know the meaningful division of multiple units in the payload. If the type of data included in the payload is unknown, it is difficult to verify the payload and detect an illegal frame.
  • the specifications of the frame can be changed depending on the vehicle type or model year even if it is a car of the same car manufacturer, a system for verifying the frame for designing a monitoring device should be constructed for each car. Requires a lot of effort.
  • Non-Patent Document 1 a payload included in a frame collected only from observation data is divided into meaningful units, and a whitelist is created for each portion of the payload obtained by the division. A method is disclosed.
  • 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 unit.
  • Receives a plurality of data frames acquires a payload comprised of at least one field from each of the plurality of data frames, and records it as a record in a reception log held in the storage unit
  • a plurality of payload division pattern candidates indicating different areas in the payloads of a plurality of data frames
  • a plurality of one or more related to time-series changes in payload values in the areas Calculate the feature value and based on the calculated feature value
  • a payload division pattern indicating a field area in the payload is selected from a plurality of payload division pattern candidates, and a field extraction result indicating a field indicated by the selected payload division pattern and a category of the field based on a feature amount is obtained.
  • a field extraction step to output.
  • the information processing method of the present disclosure can provide a safe in-vehicle network system that detects an attack with high accuracy in a cost-effective manner.
  • FIG. 1 is a block diagram showing the overall configuration of an in-vehicle network according to an embodiment.
  • FIG. 2 is a diagram showing a data frame format of the CAN protocol.
  • FIG. 3 is a diagram showing an error frame format of the CAN protocol.
  • FIG. 4 is a block diagram showing a functional configuration of the monitoring ECU 100 in the embodiment.
  • FIG. 5 is a diagram illustrating an example of operation modes held by the mode holding unit according to the embodiment.
  • FIG. 6 is a diagram illustrating an example of a reception log held by the reception log holding unit according to the embodiment.
  • FIG. 7 is a diagram illustrating an example of a normal model held by the normal model holding unit according to the embodiment.
  • FIG. 8 is a flowchart of the operation of the monitoring ECU in the embodiment.
  • FIG. 1 is a block diagram showing the overall configuration of an in-vehicle network according to an embodiment.
  • FIG. 2 is a diagram showing a data frame format of the CAN protocol.
  • FIG. 9 is a block diagram illustrating a functional configuration of the ECU according to the embodiment.
  • FIG. 10 is a diagram illustrating an example of a part of a data frame transmitted by the ECU.
  • FIG. 11 is a flowchart of processing of the payload dividing unit in the embodiment.
  • FIG. 12 is a diagram illustrating an example used for describing extraction of feature amounts from candidate division patterns of the payload division unit according to the embodiment.
  • FIG. 13 is a flowchart of an example of fixed value field extraction processing according to the embodiment.
  • FIG. 14 is a diagram illustrating an example for explaining extraction processing of a fixed value field in the embodiment.
  • FIG. 15 is a flowchart of an example of counter field extraction processing according to the embodiment.
  • FIG. 10 is a diagram illustrating an example of a part of a data frame transmitted by the ECU.
  • FIG. 11 is a flowchart of processing of the payload dividing unit in the embodiment.
  • FIG. 12 is a diagram illustrating an example used for
  • FIG. 16 is a flowchart of an example of continuous value field extraction processing according to the embodiment.
  • FIG. 17 is a flowchart of an example of continuous value field extraction processing according to the embodiment.
  • FIG. 18A is a diagram illustrating an example of calculating an average of variances of change amounts of values of division pattern candidates having a common bit length in the extraction process example of the continuous value field in the embodiment.
  • FIG. 18B is a diagram illustrating an average outlier score and a calculation example of the average of the division pattern candidates having the same start bit position in the continuous value field extraction processing example according to the embodiment.
  • FIG. 19 is a diagram illustrating the frequency of occurrence of a value change in each divided field candidate, which is used in a continuous value field extraction process according to the embodiment.
  • FIG. 18A is a diagram illustrating an example of calculating an average of variances of change amounts of values of division pattern candidates having a common bit length in the extraction process example of the continuous value field in the embodiment.
  • FIG. 18B is a diagram illustrating
  • FIG. 20 is a flowchart of an example of checksum field extraction processing in the embodiment.
  • FIG. 21 is a flowchart of an example of status field extraction processing in the embodiment.
  • FIG. 22 is a flowchart of an example of normal model generation processing in the embodiment.
  • FIG. 23 is a flowchart of an example of processing for acquiring behavior information included in the normal model generation processing shown in FIG.
  • FIG. 24 is a diagram for explaining a part of the operation of the feature extraction unit that executes the process of acquiring the behavior information shown in FIG.
  • FIG. 25 is a flowchart illustrating an example of processing of the abnormality detection unit in the embodiment.
  • FIG. 26 is a flowchart illustrating an example of processing of the abnormality detection unit in the embodiment.
  • FIG. 27 is a diagram illustrating an operation example 1 of the abnormality detection unit in the embodiment.
  • FIG. 28 is a diagram illustrating an operation example 2 of the abnormality detection unit in the embodiment.
  • FIG. 29 is a diagram illustrating an operation example 3 of the abnormality detection unit in the embodiment.
  • Non-Patent Document 1 As a method of dividing the payload, classification of the payload type and identification of the length using only the number of unique values calculated from the collected frames and observed in each division candidate Since the division is performed, the division accuracy of the payload is low.
  • This disclosure provides an information processing method and the like for realizing accurate abnormality detection in an in-vehicle network cost-effectively.
  • 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 unit.
  • Receives a plurality of data frames acquires a payload comprised of at least one field from each of the plurality of data frames, and records it as a record in a reception log held in the storage unit
  • a plurality of payload division pattern candidates indicating different areas in the payloads of a plurality of data frames
  • a plurality of one or more related to time-series changes in payload values in the areas Calculate the feature value and based on the calculated feature value
  • a payload division pattern indicating a field area in the payload is selected from a plurality of payload division pattern candidates, and a field extraction result indicating a field indicated by the selected payload division pattern and a category of the field based on a feature amount is obtained.
  • a field extraction step to output.
  • this information processing system it is possible to construct an anomaly detection system without requiring individual prior design for in-vehicle network systems with different message specifications, and it is possible to protect the in-vehicle network with reduced costs.
  • the reception log further includes information indicating the order in which the plurality of records are received, and the feature amount includes a first feature amount that represents the number of time-series change patterns, and a first feature amount that represents the occurrence frequency of the time-series change. 2 feature amounts and at least one of the third feature amount representing statistical information regarding the change amount of the time-series change.
  • the field extraction step has one or more time-series changes in the payload value based on the feature amount, and the amount of each change included in the time-series change is equal to or less than a predetermined magnitude.
  • a payload division pattern candidate indicating an area may be selected as a payload division pattern indicating an area of a field of the first category.
  • a field whose value changes according to a predetermined rule can be specified and extracted. For example, by setting the field thus identified as a field to be monitored that is likely to be a target of an attack, the field can be used for detecting an abnormality in the in-vehicle network.
  • the feature amount includes the second feature amount and the third feature amount
  • the information processing system uses the second feature amount and the third feature amount from the plurality of payload division pattern candidates in the field extraction step.
  • the information processing system calculates an outlier score indicating the outlier of the third feature amount in the payload division pattern candidates indicating the same data length area.
  • a payload division pattern indicating a field region corresponding to the continuous value category may be selected based on the magnitude relationship of the second feature amounts of the payload division pattern candidates included in the payload division pattern candidate.
  • the field indicating the physical quantity measured and output by the sensor can be specified.
  • the field thus identified can be used for abnormality detection of the in-vehicle network as a determination target of abnormality of the value of the field or the change rate of the value.
  • the field extraction step is an area where the payload value changes every time based on the feature amount from a plurality of payload division pattern candidates, and the amount of change of the payload value each time is constant.
  • the payload division pattern indicating the first category field may be selected by selecting the payload division pattern indicating the area as the payload division pattern indicating the counter category field area.
  • the field thus identified can be used for abnormality detection of the in-vehicle network as an abnormality determination target based on a rule violation of the change in the value of the field.
  • the field extraction step determines a payload division pattern candidate indicating a region where the payload value has a time series change of one or more times and the payload value takes a discrete value based on the feature amount.
  • the second category is at least one of a checksum category for checking the consistency of the value of the payload in the field and a status category in which the value of the payload in the field indicates a predetermined state of the vehicle including the in-vehicle network. There may be.
  • the field thus identified can be used for abnormality detection of the in-vehicle network as an abnormality determination target based on consistency of the value of the field with other fields, change occurrence frequency, or the like.
  • the information processing system sequentially executes a fixed value field extraction step, a counter field extraction step, a continuous value field extraction step, and a second category field extraction step.
  • a payload division pattern candidate having a first feature value of 1 is selected as a payload division pattern indicating a field area of a fixed value category from a plurality of payload division pattern candidates, and the selected payload division is selected from the plurality of payload division pattern candidates The remainder excluding the payload division pattern candidate that at least partially overlaps the pattern is set as the first payload division pattern candidate.
  • the counter category A payload division pattern indicating a field area is selected, and the remainder obtained by excluding the payload division pattern candidate that at least partially overlaps the selected payload division pattern from the first payload division pattern candidate is set as the second payload division pattern candidate,
  • the field of the continuous value category is selected from the second payload division pattern candidates using the second feature amount and the third feature amount from the second payload division pattern candidate.
  • the payload division pattern indicating the area of the second payload division pattern is selected, and the remainder obtained by removing the payload division pattern candidate that at least partially overlaps the selected payload division pattern from the second payload division pattern candidate is set as the third payload division pattern candidate, In the two-category field extraction step, Payload division pattern candidates, and it may be selected as a second category field.
  • the value of the field A feature extraction step of generating a normal model indicating a normal range of change and further outputting the generated normal model may be included.
  • This provides a standard for determining the abnormality of various fields of values in addition to the specified field range of each category, and enables the in-vehicle network abnormality detection to be executed.
  • Each of the plurality of data frames includes a data type ID indicating the type of the data frame.
  • the information processing system records the payload and the data type ID as one record in the reception log, and extracts the field.
  • the step may be executed for data frames having a common data type ID.
  • constituent elements that are not described in the independent claim indicating the highest concept are described as constituent elements that are arbitrarily included.
  • An information processing system described as an embodiment relates to a value included in a normal data frame for each field obtained by receiving a data frame flowing through an in-vehicle network, dividing the payload of the data frame into fields, and dividing the payload into fields. Build a behavior model. The information processing system also monitors the in-vehicle network based on the behavior model and detects an abnormal data frame. Such an information processing system will be described with reference to the drawings.
  • FIG. 1 is a block diagram showing an overall configuration of an in-vehicle network 10 in the present embodiment.
  • the in-vehicle network 10 includes a monitoring ECU 100, an ECU 200, and a bus 300.
  • the monitoring ECU 100 is connected to the bus 300, monitors data frames flowing through the bus 300, and monitors whether an illegal data frame including an abnormality is flowing.
  • a monitoring ECU 100 including a microcontroller (not shown) including a communication circuit, a processor, and a memory is an example of an information processing system in the present embodiment.
  • the ECU 200a is connected to the speed sensor 210 and the gear 220, and the ECU 200b is connected to the meter 230.
  • the ECU 200a periodically transmits to the bus 300 the vehicle speed obtained from the speed sensor 210 and the position of the gear 220 in a data frame.
  • the ECU 200b that has received this data frame acquires the speed of the vehicle and the position of the gear 220 notified from the ECU 200a and displays them on the meter 230.
  • 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.
  • the data frame consists of 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), a data length code (hereinafter referred to as “R”).
  • DLC Data field
  • CRC Cyclic Redundancy Check
  • CRC delimiter Acknowledgement slot
  • ACK delimiter Acknowledgement slot
  • DEL end of It consists of 12 parts of a frame (hereinafter referred to as EOF).
  • SOF is a 1-bit dominant.
  • the bus 300 is 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.
  • the ID is an example of a data type ID in the present embodiment.
  • 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 corresponds to the payload of the data frame.
  • the length can be adjusted in units of 8 bits.
  • the specifications regarding the assignment of the transmitted data to this part depend on the vehicle type and the 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 compares the result calculated from the received values of the SOF, ID field, control field, and data field with the CRC sequence value to determine whether there is an abnormality.
  • the CRC delimiter is a 1-bit recessive delimiter that indicates the end of the CRC sequence.
  • ACK slot is 1 bit long, and the transmitting node transmits recessive in this part.
  • the receiving node transmits a dominant in this portion if it can receive normally up to the CRC sequence.
  • dominant is given priority between dominant and recessive transmitted simultaneously as described above. Therefore, in the in-vehicle network 10 in which communication is normally performed, the bus 300 is in a dominant state during transmission of an ACK slot. is there.
  • ACK delimiter is 1-bit recessive and is a delimiter indicating the end of 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.
  • the error delimiter is an 8-bit recessive and indicates the end of the error frame.
  • FIG. 4 is a block diagram illustrating a functional configuration of the monitoring ECU 100.
  • the monitoring ECU 100 includes a frame transmission / reception unit 110, a frame collection unit 120, an operation determination unit 130, a payload division unit 140, a feature extraction unit 150, an abnormality detection unit 160, a frame generation unit 170, and a mode holding unit 180.
  • 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 transmitting / receiving unit 110 receives a data frame from the bus 300 bit by bit.
  • the ID, DLC, and data field included in the data frame are transferred to the frame collection unit 120 and the operation determination unit 130. If it is determined that the received data frame does not conform to the CAN protocol, the frame transmission / reception unit 110 transmits an error frame.
  • the frame transmission / reception unit 110 when the frame transmission / reception unit 110 receives an error frame from another node, that is, when the frame transmission / reception unit 110 determines that the frame is an error frame from the value of the received frame, the frame transmission / reception unit 110 discards the data frame being received.
  • the frame transmission / reception unit 110 transmits the data frame bit by bit to the bus 300.
  • the frame collection unit 120 receives the above-mentioned 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 one record in the reception log held in the reception log holding unit 190.
  • the reception time is recorded with reference to, for example, a timer that measures an operating time that has 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 operation determination unit 130 refers to the value indicating the operation mode stored in the mode holding unit 180 when receiving the data frame, and determines the sequential operation of the monitoring ECU 100 according to the operation mode.
  • the operation determination unit 130 confirms whether the monitoring ECU 100 has operated for a total of one hour or more. If it is not operating for more than 1 hour, no operation is performed.
  • the operation determining unit 130 makes a predetermined operation request to the payload dividing unit 140, and then switches the operation mode to the monitoring mode.
  • an abnormality detection request is made to the abnormality detection unit 160.
  • the payload dividing unit 140 refers to the reception log stored in the reception log holding unit 190, divides the payload of the record including the common ID, that is, the data field, and has a bit string (hereinafter referred to as a field) having a specific meaning. ) Is extracted.
  • the field included in the data field is classified into one of a fixed value, a counter, a continuous value, a checksum, and a status according to the information indicated. For example, an area occupied by a value indicating the speed of an automobile measured by the speed sensor 210 corresponds to one field, and the field is classified as a continuous value. Details of the division method will be described in 1.11 to 1.16 described later.
  • the payload dividing unit 140 notifies the feature extracting unit 150 of information related to the field obtained by dividing the payload of the record including the common ID. Examples of this information include field categories, field regions, and field values.
  • the feature extraction unit 150 generates a normal model from the information about the field obtained by payload division notified from the payload division unit 140 and the reception log, and stores the normal model in the normal model holding unit 191.
  • Such a normal model is generated for each ID of the data frame, and includes the average and variance of the reception intervals, which are information about the reception intervals of the data frames, and the field area, category, and behavior information, which is information about the data fields. .
  • the behavior information is generated for each field from the payload value included in the reception log stored in the reception log holding unit 190.
  • the behavior information of the field belonging to the fixed value category includes a fixed value observed in the reception log. This value is used as a white list value in the monitoring mode. There is no behavior information for fields belonging to the counter category.
  • the difference between the values in the corresponding field between consecutive data frames observed in the reception log, that is, the average and variance of the change amount are included.
  • the ratio of the change in the field value from the previous data frame in time series to the total number of received data frames with a certain ID included in the reception log that is, the change Includes frequency of occurrence.
  • the status refers to any state on the vehicle, such as ON / OFF of a specific device such as a headlamp, a gear position, an operation mode, and the like.
  • the abnormality detection unit 160 When the abnormality detection unit 160 receives an abnormality detection request from the operation determination unit 130, the abnormality detection unit 160 performs processing for detecting reception of an illegal data frame (hereinafter referred to as abnormality detection processing). More specifically, the anomaly detection unit 160 refers to the reception log stored in the reception log holding unit 190 and uses the normal model and the reception log stored in the normal model holding unit 191 to obtain illegal data. It is determined whether or not a frame has been received.
  • the anomaly detection unit 160 for a field belonging to a fixed value category in a normal model of a data frame with a certain ID, uses the value of the field in the data field of the record containing this ID in the reception log and the normal model. Compare the value shown in the field behavior information. If these values are different, the abnormality detection unit 160 determines that an illegal data frame has been received.
  • the abnormality detection unit 160 for a field belonging to a counter category in a normal model of a data frame with a certain ID, correctly sets the value of the field area in the data field of the record including this ID in the reception log in time order. It is determined whether or not it is incremented. If not incremented correctly, the abnormality detection unit 160 determines that an illegal data frame has been received.
  • the abnormality detection unit 160 for a field belonging to a continuous value category in a normal model of a data frame of a certain ID, records in the reception log immediately before the value of the field area in the data field of the record including this ID. It is determined whether or not the amount of change from the value is an outlier with respect to the average of the amounts of change included in the behavior information of this field in the normal model. If it is an outlier, the abnormality detection unit 160 determines that an illegal data frame has been received. Whether or not the value is an outlier is determined by using the variance of the change amount indicated in the behavior information of the normal model, for example, within the range of the average value change amount of the field ⁇ 3 ⁇ ( ⁇ variance). This is done based on whether it fits.
  • the abnormality detection unit 160 sets the value of the area of the field in the data field of the record including the ID in the reception log for a field belonging to the status category in the normal model of the data frame with a certain ID, such as 1 second.
  • the occurrence frequency of the change in the value of the field when compared with the time width is compared with the occurrence frequency indicated in the behavior information of the normal model. If the difference between the occurrence frequency values is greater than a predetermined threshold, the abnormality detection unit 160 determines that an illegal data frame has been received.
  • the abnormality detection unit 160 When detecting that a data frame including an abnormality has been received by such determination, the abnormality detection unit 160 generates a data frame for notifying the frame generation unit 170 that, for example, an illegal data frame is received. Request.
  • the frame generation unit 170 When the generation of the data frame is requested from the abnormality detection unit 160, the frame generation unit 170 generates a data frame for notifying that an illegal data frame is received, and notifies the frame transmission / reception unit 110 of the data frame. To do.
  • the mode holding unit 180 holds a value indicating the current operation mode of the monitoring ECU 100. As described above, the operation mode is the collection mode or the monitoring mode. FIG. 5 shows an example of operation mode values held by the mode holding unit 180. The operation mode will be described later in 1.6.
  • the reception log holding unit 190 holds data frame information (reception time, ID, data field) notified from the frame collection unit 120.
  • FIG. 6 shows an example of the reception log stored in the reception log holding unit 190. The reception log will be described later in 1.7.
  • the normal model holding unit 191 holds the normal model extracted by the feature extraction unit 150.
  • FIG. 7 shows an example of a normal model held by the normal model holding unit 191. The normal model will be explained in 1.8.
  • These functional components are processed in a microcontroller provided in the monitoring ECU 100 by processing a data frame received through a communication circuit by executing a program stored in a memory by a processor, and performing intermediate or final processing as necessary. This is realized by storing the data generated in (1) in a memory.
  • Step S1 The frame transmission / reception unit 110 of the monitoring ECU 100 receives a data frame flowing through the bus 300 of the in-vehicle network.
  • Step S2 The frame collection unit 120 of the monitoring ECU 100 records a record including the reception time, ID, and data field of the data frame received in Step S1 in the reception log held in the reception log holding unit 190.
  • Step S3 The operation determination unit 130 of the monitoring ECU 100 checks the current operation mode of the monitoring ECU 100 with reference to the mode holding unit 180. When the current operation mode is the monitoring mode (in the case of YES), the operation determination unit 130 proceeds to step S4. Otherwise, that is, when the current operation mode is the collection mode (in the case of NO), the operation determination unit 130 proceeds to step S7.
  • Step S4 The operation determination unit 130 of the monitoring ECU 100 makes an abnormality detection process request to the abnormality detection unit 160, and the abnormality detection unit 160 performs the abnormality detection process as described above.
  • Step S5 The abnormality detection unit 160 of the monitoring ECU 100 proceeds to step S6 when an abnormality is detected as a result of the abnormality detection process (in the case of YES). If not (NO), the monitoring ECU 100 returns to step S1.
  • Step S6 The abnormality detection unit 160 of the monitoring ECU 100 transmits, to the frame generation unit 170, a data frame generation request notifying other nodes that an abnormality has been detected.
  • the frame generation unit 170 generates a data frame notifying the reception of an illegal data frame, transmits this data frame to the bus 300 through the frame transmission / reception unit 110, and ends.
  • Step S7 The operation determination unit 130 of the monitoring ECU 100 determines whether the monitoring ECU 100 has been operating for one hour or longer. If the monitoring ECU 100 has been operating for one hour or more (in the case of YES), the process proceeds to step S8. If not (NO), the monitoring ECU 100 returns to step S1.
  • Step S8 The operation determination unit 130 of the monitoring ECU 100 makes a payload division processing request to the payload division unit 140.
  • the payload dividing unit 140 divides a data field that is a payload of a data frame and performs field extraction processing.
  • Step S9 The feature extraction unit 150 of the monitoring ECU 100 generates a normal model using the result of the field extraction processing by the payload division unit 140 and stores the normal model in the normal model holding unit 191.
  • Step S10 The operation determination unit 130 of the monitoring ECU 100 rewrites the value of the operation mode held by the mode holding unit 180 and switches the operation mode of the monitoring ECU 100 from the collection mode to the monitoring mode.
  • step S1 and step S2 are examples of the frame collection step in the present embodiment
  • step S8 is an example of the field extraction step in the present embodiment.
  • step S6 the flowchart shows a flow in which the operation of the monitoring ECU 100 ends at the end of the process of step S6 or step S10, but actually, the operation may be repeated repeatedly by returning to step S1.
  • the current operation mode of the monitoring ECU 100 is the collection mode.
  • the data field of the data frame received by the monitoring ECU 100 is stored in the reception log holding unit 190 by the frame collection unit 120.
  • FIG. 6 shows an example of the reception log held by the reception log holding unit 190.
  • This reception log is the state after receiving a plurality of data frames with ID 0x100.
  • Each row of data is one record, arranged in order of time from top to bottom.
  • the length of the data field in this example is 5 bits
  • the reception time of the data frame received earliest in the reception log is 51 ms
  • the value of the data field is 0x00 0x00 0x00 0x10 0x10.
  • the latest reception time of the data frame is 500450 ms
  • the value of the data field is 0x26 0x15 0x4B 0x30 0xB6.
  • FIG. 7 shows an example of a normal model held by the normal model holding unit 191.
  • the normal model shown in this example is a normal model related to a data frame whose ID is 0x100.
  • This normal model includes 50 ms which is the average of the reception intervals and 3 ms which is the variance of the reception intervals as information regarding the reception intervals of the data frame whose ID is 0x100.
  • the information regarding the data field includes the start bit position, bit length, category, and behavior information of each of the seven fields obtained by dividing the data field. More specifically, a field having a length of 8 bits from the upper first bit of the data field is a field indicating a counter. From the upper 9th bit of the data field, the 2-bit length field indicates a fixed value, and its value is 0.
  • a field having a length of 14 bits from the upper 11th bit of the data field indicates a continuous value.
  • the average change amount of the change in the field value is 10, and the variance is 100.
  • the 1-bit length field is a fixed value, and its value is 0.
  • a field having a length of 3 bits from the upper 26 bits of the data field indicates the status of the vehicle, and the occurrence frequency of the value change is 0.0001.
  • a field having a length of 8 bits from the upper 33 bits of the data field is a checksum.
  • FIG. 9 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 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. When the reception of the data frame is completed without error, the ID, DLC, and data field included in the data frame are transferred to the frame processing unit 202. If it is determined that the received data frame does not conform to the CAN protocol, the frame transmitting / receiving unit 201 transmits an error frame. When an error frame is received from another node, the frame transmitting / receiving unit 201 discards the data frame being received. The frame transmission / reception unit 201 also executes processing conforming 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 acquires information on the speed and the position of the gear 220 measured by the speed sensor 210 included in the data field of the data frame transmitted from the ECU 200a, and provides control information for causing the meter 230 to display the information. Notify the device input / output unit 203. At this time, the frame processing unit 202 confirms whether the counter and checksum included in the data frame satisfy a predetermined condition. More specifically, it is confirmed whether the counter is larger than the counter value included in the received data frame with the same ID.
  • the checksum for example, the part other than the checksum field of the data field is divided into 1 byte, and it is confirmed whether the lower 1 byte of the sum of all the values is the checksum value.
  • the counter and the checksum satisfy these conditions, information based on the received data frame is displayed on the meter 230.
  • 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 and the gear 220, receives information on the current vehicle speed and the position of the gear 220, and notifies the frame generation unit 204 of these information. To do.
  • the external device input / output unit 203 is connected to the meter 230, and in order to notify the driver of information on the current vehicle speed and the position of the gear 220, a signal for displaying these information is sent to the meter 230. Send.
  • the frame generation unit 204 generates a data frame to be transmitted to the bus 300.
  • a data frame notified from the external device input / output unit 203 and including the vehicle speed acquired from the speed sensor 210 and the gear position acquired from the gear 220 is set at a predetermined cycle, for example, at an interval of 50 ms. It is generated and transmitted to the frame transmission / reception unit 201.
  • a counter and checksum are also included in this data frame. The counter is incremented for each transmission, and the checksum is calculated so as to satisfy the above equation.
  • the interval at which data frames are generated may be an interval other than 50 ms.
  • FIG. 10 shows an example of a part 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.
  • the data frame is composed of at least one field which is a bit string having a specific meaning.
  • this data field is simply data of a 5-byte length.
  • FIG. 10 is a diagram illustrating an example of a data frame transmitted by the ECU 200a. However, in FIG. 10, only parts necessary for the description of the present embodiment are extracted and shown.
  • ECU 200a transmits a data frame with ID 0x100 and DLC 5.
  • the first byte area of the data field is a counter field, and its value is 0x26.
  • the value in the counter field is incremented with each transmission.
  • the area where the second and third bytes of the data field are connected is a field indicating the speed measured by the speed sensor 210.
  • the speed is expressed in units of 0.01 km / h, and a value of 0x154B indicates that the measured speed is 54.51 km / h.
  • the upper 4 bits area of the 4th byte is a field indicating the position of the gear 220. 0 indicates neutral, 1 indicates parking, 2 indicates reverse, and 3 indicates drive. In the example of FIG. 10, since the value is 3, the gear position is drive.
  • the lower 4 bits area of the 4th byte is a fixed value field and is filled with 0.
  • the fifth byte is a checksum field.
  • the value that enters this field is the value of the lower 1 byte of the sum obtained by dividing the data field other than the checksum field into 1-byte areas and adding the values in each area.
  • 0x26 + 0x15 + 0x4B + 0x30 0xB6. Therefore, the correct value to enter the checksum field is 0xB6.
  • the area occupied by each field in the data field as described above and the type of information indicated by each field, that is, the field category depends on the specifications determined by each car manufacturer, and may also depend on the vehicle type or model year. May be different.
  • the payload division unit 140 divides a data field whose field area and category are unknown using a feature relating to a change in a value in the data field, and extracts the field. Next, a process of dividing the data field by the payload dividing unit 140 and extracting the field will be described using an example.
  • ⁇ Processing by 1.11 Payload Dividing Unit 140> A series of steps executed by the payload dividing unit 140 in the process of dividing the data field and extracting the field will be described with reference to the flowchart shown in FIG.
  • the payload dividing unit 140 performs this operation in step S8 in the flowchart of FIG. Therefore, as shown in the flowchart of FIG. 8, the payload dividing unit 140 starts from a state in which the monitoring ECU 100 has already received a plurality of data frames and records including a plurality of types of IDs are recorded in the reception log.
  • the field extraction process is executed by this operation.
  • Step S11 Upon receiving the payload division processing request in Step S8 from the operation determining unit 130, the payload dividing unit 140 refers to the reception log holding unit 190 and extracts a record for each ID from the reception log.
  • Step S12 When the field extraction is completed for all IDs included in the reception log (NO), the payload dividing unit 140 ends the operation, and the field extraction result is displayed as the feature extraction unit 150. To notify. When there is an ID for which field extraction has not been performed (in the case of YES), a record including any ID for which field extraction has not been performed is selected. That is, the payload dividing unit 140 divides a data field of a data frame that includes an ID for which field extraction has not been performed in common, and extracts a field.
  • Step S13 The payload dividing unit 140 calculates a feature amount for each division pattern candidate of the data field.
  • a division pattern candidate is an area pattern obtained by dividing a data field in bits. For example, a start bit position of an area (hereinafter also referred to as an index) and a data length (hereinafter also referred to as a length) expressed in units of bits. ) And a combination (Index, Length). For example, for a 64-bit data field, Index and Length can take values from 1 to 64, respectively, but Index + Length-1 (end bit position of the region) does not exceed 64.
  • Such division pattern candidates are examples of payload division pattern candidates in the present embodiment.
  • FIG. 12 is a diagram illustrating an example for explaining extraction of feature amounts from candidate division patterns.
  • the values of the 5-byte data field included in 256 records that commonly include a certain ID extracted from the reception log are arranged in the order of reception from the top.
  • the feature amount relates to a change in the value of the data field in the range of each divided pattern candidate, and there are three types.
  • the division pattern candidate (13, 8) will be described in detail by way of example. This division pattern candidate (13, 8) is indicated by a dotted frame in FIG.
  • the first feature amount is the number of patterns in the value of the data field in the area indicated by each division pattern candidate. This feature amount can be obtained by counting the number of types of data field values in the area indicated by the division pattern candidate or the number of data field values excluding duplication in this area. Hereinafter, this feature amount is referred to as a first feature amount.
  • the second feature quantity is the frequency of occurrence of a change in value from the immediately preceding data frame as seen in time series.
  • This feature amount can be obtained by dividing the number of times the value of the data field in the area indicated by the division pattern candidate has changed by (the number of records commonly including the ID extracted from the reception log-1).
  • the number of times the value of the data field has changed can be obtained by calculating the difference in the area of the records arranged in chronological order and counting the number of differences where the difference is not zero. For example, as shown in FIG. 12, when there are 256 records, and the number of times the value has changed from the data frame received immediately before in the region (13, 8) is 51 times, this region (13, 8)
  • this feature amount is referred to as a second feature amount.
  • the third feature value is the variance of the change in value from the immediately preceding data frame that occurred in time series. This feature amount can be calculated from the change amount obtained from the difference as described above. This feature amount is hereinafter referred to as a third feature amount.
  • Step S14 The payload dividing unit 140 selects, from among the division pattern candidates, those having the feature amount extracted in Step S13 satisfying a predetermined condition as a division pattern indicating a field region belonging to the fixed value category. This selection will be described using an example in 1.12 described later.
  • the payload division unit 140 determines that a division pattern candidate that at least partially overlaps the area selected in step S14 is subject to condition determination in the subsequent steps. exclude.
  • the remaining division pattern candidates are hereinafter referred to as first payload division pattern candidates.
  • Step S15 The payload dividing unit 140 selects, from among the first payload division pattern candidates, those whose feature quantity extracted in step S13 satisfies a predetermined condition as a division pattern indicating a field area belonging to the counter category. select. This selection will be described using an example in 1.13 to be described later.
  • the payload dividing unit 140 further excludes the division pattern candidates that overlap at least partly with the area selected in step S15 from the condition determination targets in the subsequent steps.
  • the remaining division pattern candidates are hereinafter referred to as second payload division pattern candidates.
  • Step S ⁇ b> 16 The payload dividing unit 140 divides the second payload division pattern candidates whose feature values extracted in step S ⁇ b> 13 satisfy a predetermined condition, and indicates a field region belonging to the continuous value category. Choose as. This selection will be described using an example in 1.14 described later.
  • the payload dividing unit 140 further excludes the division pattern candidates that at least partially overlap with the area selected in step S16 from the condition determination targets in the subsequent steps.
  • the remaining division pattern candidates are hereinafter referred to as third payload division pattern candidates.
  • Step S ⁇ b> 17 The payload dividing unit 140 indicates a region of the field belonging to the checksum category from among the third payload division pattern candidates whose feature amount extracted in step S ⁇ b> 13 satisfies the predetermined condition. Choose as. This selection will be described using an example in 1.15 described later.
  • Step S18 The payload division unit 140 selects the remaining division pattern candidates as division patterns indicating field areas belonging to the status category. This selection will be described using an example in 1.16 described later.
  • step S18 the field extraction from the data field of the data frame of one type of ID is completed, and the process returns to step S12. If there is an unprocessed data frame of another ID, it becomes an execution target after step S13 by the payload dividing unit 140.
  • FIG. 13 is a flowchart of an example of a fixed value field extraction process performed by the payload dividing unit 140 in step S14.
  • FIG. 14 is a diagram showing an example for explaining this process. It may be assumed that table data as shown in FIG. 14 is held in the memory of the monitoring ECU 100 as a result of the process of step S13.
  • Step S141 the payload dividing unit 140 extracts a divided pattern candidate that satisfies the condition that the first feature value is 1 from the divided pattern candidates obtained by calculating the above three types of feature values. That is, a division pattern candidate indicating a range in which all the values of the data field are common to the records extracted from the reception log is extracted.
  • each row represents the start bit position (Index) of the area indicated by the division pattern candidate of the 5-byte data field
  • each column represents the bit length (Length) of the area.
  • each feature amount calculated in step S13 includes the first feature amount, the second feature amount, and the third feature amount, that is, the number of value patterns, the frequency of change, and the variance of the change amount. It is included in order. Note that cells indicating combinations of start bit positions and bit lengths that do not occur in the data field are shaded. For some cells, the description of the feature value or the presence / absence of the combination is omitted.
  • the division pattern candidates extracted in step S141 are the regions (29, 1), (29, 2), (29, 3), (29, 4), (30, 1), (30, (2), (30,3), (31,1), (31,2), and (32,1) are division pattern candidates.
  • the payload dividing unit 140 further narrows down the extracted division pattern candidates according to a predetermined condition. Specifically, when the entire area indicated by one division pattern candidate included in the extracted division pattern candidates is included in the area indicated by the other division pattern candidates, the one division pattern candidate is excluded. As a result, the division pattern candidates indicating only a part of the fixed value area composed of consecutive bits are excluded.
  • Step S143 The payload dividing unit 140 selects the remaining division pattern candidates as division patterns indicating field areas belonging to the fixed value category.
  • a division pattern candidate indicating the area (29, 4) remains, so this division pattern candidate is selected as a field area belonging to the fixed value category.
  • Step S144 The payload division unit 140 deletes another division pattern candidate that overlaps with the division pattern candidate selected in step S143, that is, includes a bit included in the selected division pattern candidate.
  • the division pattern candidate indicating the region (29, 4) is selected in step S143
  • the division pattern candidate including any bit from the 29th bit to the 32nd bit of the 5-byte data field is the step. It is deleted in S144. More specifically, a divided pattern candidate whose start bit position is 1 and the bit length is 29 to 40 and a divided pattern candidate whose start bit position is 2 and the bit length is 28 to 39 are both deleted. In addition, all the divided patterns whose start bit positions are 29 to 32 are also deleted.
  • the remaining division pattern candidates correspond to the above-described first payload division pattern candidates.
  • Step S145 The payload dividing unit 140 outputs a result of selecting a division pattern indicating a fixed value field area.
  • the payload dividing unit 140 ends Step S14 by writing in the memory of the monitoring ECU 100 that the field having the start bit position of 29 and the bit length of 4 belongs to the fixed value category.
  • FIG. 15 is a flowchart of an example of counter field extraction processing in step S15 by the payload dividing unit 140.
  • Step S151 First, the payload dividing unit 140 determines that the first feature amount is 2 ⁇ (bit length of the divided pattern) from the first payload division pattern candidates or the number of records extracted from the reception log in step S11.
  • the division pattern candidate that matches is extracted. That is, in the records extracted in step S11, those in which all the values that can be represented by the bit length of each division pattern candidate appear, or those in which the values of all the records are different are extracted.
  • Step S152 The payload dividing unit 140 refers to the reception log holding unit 190 and extracts all values of the area indicated by the extracted division pattern candidates. Then, the divided pattern candidate in which the value of the extracted field is incremented in the order of reception, or the value returns to 0 at the time of overflow, that is, the area where the value of all digits is 1 in binary representation is the next record. The division pattern candidates in the area where the values of all the digits are 0 are extracted from the division pattern candidates extracted in step S151.
  • Step S153 The payload dividing unit 140 selects a division pattern extracted in step S152 that does not overlap with another division pattern candidate as a division pattern indicating a field area belonging to the category of the counter.
  • Step S154 The payload division unit 140 belongs to the counter category except for the division patterns extracted in step S152 that overlap with other division pattern candidates and that are part of other division pattern candidates. It is further selected as a division pattern indicating the field area. This is a step performed in order to find the longest bit string whose value is incremented as a field of one counter.
  • Step S155 The payload dividing unit 140 deletes other division pattern candidates that overlap with the division pattern candidates selected in steps S153 and S154, that is, include bits included in the selected division pattern candidates. Step S155 is the same as step S144 and will not be described in detail. The division pattern candidates remaining as a result of step S155 correspond to the above-described second payload division pattern candidates.
  • Step S156 The payload dividing unit 140 outputs the result of selecting the division pattern indicating the counter field area, and ends Step S15.
  • the increment may be incremented by 1 or increment by 2, and may be increased by any value as long as it is constantly increased.
  • a counter to be decremented may be extracted.
  • the decrement may be decreased by 1 or 2 and may be decreased by any value as long as it is always decreased.
  • a division pattern candidate indicating a division pattern whose value has changed in all records may be extracted. Based on the second feature quantity, that is, a division pattern having the second feature quantity of 1. Candidates may be extracted.
  • FIGS. 16 and 17 are flowcharts of an example of continuous value field extraction processing in step S ⁇ b> 16 by the payload dividing unit 140.
  • 18A and 18B are diagrams illustrating an example for explaining this process.
  • the second payload division pattern candidate that is, the division pattern candidate remaining at the time of starting the extraction process of the continuous value field belongs to one of the categories of continuous value, checksum, and status.
  • the continuous value field is considered to have a smaller variance (third feature value) of the change amount of the value than the divided pattern candidates of the same bit length belonging to other categories. The reason will be described below.
  • the variance of the amount of change in the field value increases.
  • the change in value is continuous, and the carry resulting from the change in the lower bits of the field appears as the change in the upper bits, so that the amount of change in the value falls within a certain range. Therefore, the variance of the change amount of the field value becomes small.
  • the upper part is a continuous value and the lower part is other than the continuous value in the area indicated by one division pattern candidate, even if the value of each bit changes independently in the lower part, Since the change amount of the value is dominant, the variation of the change amount in the entire region is suppressed, and the variance of the change amount of the field value is reduced.
  • the division pattern candidates that is, the division pattern candidates remaining at the time of starting the extraction process of the continuous value field.
  • the division pattern in which the variance of the change in the region value is relatively small By searching for candidates, the division pattern candidates indicating the continuous value field area are narrowed down.
  • the continuous value field extraction process is roughly divided into two parts: a process for specifying the start bit position of the field shown in FIG. 16 and a process for specifying the bit length of the field shown in FIG.
  • Step S161 For each divided pattern candidate, the third feature amount, that is, an outlier indicating the degree of variation variation variation compared to other divided pattern candidates having the same bit length regardless of the start bit position A value score is calculated. This process will be described using a specific example shown in FIGS. 18A and 18B.
  • the start bit position of each division pattern candidate is shown in a row and the bit length is shown in a column, and the variation distribution calculated in step S13 for each division pattern candidate in the cell (third feature) Amount).
  • the cell including the value of the third feature value in this table is determined to indicate the field area of another category (ie, fixed value or counter) through steps S14 and S15 from the table shown in FIG.
  • the divided pattern candidates are deleted, and the first feature amount and the second feature amount are not shown for ease of viewing.
  • the payload dividing unit 140 starts the process of step S161 for such data.
  • a division pattern candidate having a start bit position of 11 and a field length of 1 has a variation variance of 1.
  • the variances of the change amounts are 1, 10, 100, and 100, respectively.
  • the variances of the change amounts of the division pattern candidates having the start bit position of 12 and the bit lengths of 1, 2, 8, and 13 are 1, 2, 15, and 150, respectively.
  • the division pattern candidate whose start bit position is 12 and whose bit length is 14 is already deleted in step S14 or S15 because the 25th bit is already determined to be a fixed value or a counter field, and the second It is not included in the payload division pattern candidates.
  • the variances of the variation amounts of the divided pattern candidates whose start bit position is 23 and the bit length is 1 and 2 are 1 and 2, respectively.
  • the variance of the change amount is 1.
  • the average value of the variance of the change amount for each division pattern candidate having the same bit length calculated by the payload division unit 140 in the process of step S161 is described. That is, the averages of variances of the variation amounts of the division pattern candidates having the bit lengths of 1, 2, 8, 13, and 14 are 1, 1, 80, 125, and 100, respectively.
  • the payload dividing unit 140 determines how far the third feature quantity of each division pattern candidate shown in the table of FIG. 18A is out of the third feature quantity of the division pattern candidate having the same bit length.
  • An outlier score is calculated.
  • the payload dividing unit 140 can calculate the outlier score using a statistical or machine learning method. For example, assuming that the third feature value of each divided pattern candidate follows a normal distribution, it may be calculated based on the frequency of occurrence of the third feature value, or outlier detection such as the K-neighbor method or the Local Outlier Factor An algorithm may be used.
  • p is a probability density function of a normal distribution in which the average m and the variance v of the same bit length are the average and variance, respectively.
  • p can be calculated by the following equation 1.
  • the average obtained by the payload division unit 140 is the average of the third feature amounts of the division pattern candidates having the same bit length among the division pattern candidates, and the variance can be obtained by using this average obtained before.
  • the score is calculated by -Log (p). Each cell of the table of FIG. 18B includes the score calculated in this way.
  • the outlier scores of the division patterns having the start bit position of 11 and the bit lengths of 1, 2, 8, and 13 are 0, 1, 4, and 2, respectively.
  • no outlier score is calculated because there is no division pattern with a bit length of 14 among other division pattern candidates.
  • the outlier score increases as the difference from the average increases.
  • the average of the variance is 80
  • the variance of the change amount Is greater than 3 which is the outlier score of the division pattern candidate at the start bit position 12 with an average of 15.
  • the payload dividing unit 140 may align the same index by normalizing.
  • Step S162 The payload dividing unit 140 calculates the average outlier score (hereinafter referred to as the average score) obtained in Step S161 for each start bit position of the division pattern candidate.
  • the average score of the division pattern candidates having a start bit position of 11 and a bit length of 1 to 13 is 4.
  • an outlier score of a divided pattern having a start bit position of 12 a bit length of 1, 2, 8, 13 is 0, 1, 3, 2, and an average score of a bit length of 1 to 13 is 2.
  • the outlier score of the division pattern having the start bit position of 23 and the bit length of 1 and 2 is 0 and 0, respectively, and the average score is 0.
  • An outlier score of a divided pattern having a start bit position of 24 and a bit length of 1 is 0, and the average score is 0.
  • the division pattern candidate having a bit length of 1 is described as the processing target of the payload division unit 140 in step S16.
  • the minimum bit length of the continuous value field is determined in advance, and a shorter division pattern candidate is obtained. May be excluded from the processing target in advance. This is effective from the viewpoint of processing speed and accuracy of division.
  • Step S163 The payload dividing unit 140 checks whether there is a start bit position that satisfies the condition that the average score calculated in Step S162 is equal to or greater than a predetermined threshold. If there is no start bit position that satisfies the condition (NO), step S16 is ended, and if it exists, the process proceeds to step S164.
  • Step S164 The start bit position satisfying the condition of Step S163 is specified as the start bit position of the continuous value field.
  • the payload dividing unit 140 specifies the bit length of the continuous value field in the subsequent steps shown in FIG.
  • Step S165 The payload division unit 140 extracts a division pattern candidate further indicating a bit length of a predetermined value from the division pattern candidates indicating the start bit position satisfying the condition of Step S163.
  • the predetermined value here is determined based on the assumption that the continuous value field has at least a bit length used to notify information such as a physical quantity measured by a sensor, for example, and is 4, for example.
  • the payload dividing unit 140 is a field in which a longer division pattern candidate includes a continuous value at the same start bit position with respect to (Index, Length) represented by the division pattern candidate extracted in step S165. Judge whether or not. The payload dividing unit 140 performs this determination using two conditions.
  • condition 1 the second feature quantity of the division pattern candidate (Index + Length, 1), that is, the frequency of occurrence of a value change is larger than the second feature quantity of the division pattern (Index + Length-1, 1). That is, it is a condition that the value of the adjacent bit on the least significant side of the divided pattern candidate extracted in step S165 changes more frequently than the value of the least significant bit of the divided pattern candidate. This condition is hereinafter referred to as condition 1.
  • condition 2 Another condition is that the division pattern candidate indicating the area of (Index, Length + 1) has not been determined. That is, another condition is that the category has not yet been determined for the division pattern candidate that indicates an area that is one bit longer at the same start bit position as the division pattern candidate extracted in step S165. This condition is hereinafter referred to as condition 2.
  • step S167 If condition 1 and condition 2 are satisfied (in the case of YES), the payload dividing unit 140 proceeds to step S167, and otherwise (in the case of NO), the payload dividing unit 140 proceeds to step S168.
  • Step S167 The payload dividing unit 140 increments the value of Length. Thereafter, step S166 is executed again.
  • steps S166 and S167 it is determined whether a continuous value is expressed even in an area having a longer number of bits, and a bit length as long as possible indicating the continuous value is specified.
  • step S166 If the condition of step S166 is not satisfied, the payload dividing unit 140 proceeds to step S168.
  • Step S168 The payload dividing unit 140 indicates the start bit position determined up to Step S164, and selects a division pattern candidate indicating the bit length specified in Step S166 as a division pattern representing a continuous value. Further, other division pattern candidates including bits included in the selected division pattern candidate are deleted. Further, the payload dividing unit 140 outputs a result of selecting a division pattern indicating a continuous value field area, and returns to step S163. This is for confirming whether there are more division pattern candidates at other start bit positions that satisfy the predetermined condition. The division pattern candidates remaining as a result of step S163 correspond to the above-described third payload division pattern candidates.
  • FIG. 19 shows an excerpt of the second feature amount calculated in step S13.
  • the table shown in FIG. 19 can also be said to be part of the data in the table shown in FIG.
  • step S166 the occurrence frequency of the value change is compared between the least significant bit of the region (11, 4) and the bit located next to the least significant bit of this region. That is, the second feature value of the 1st bit of 15th bit (that is, the region (15,1)) is compared with the second feature value of 1st bit of the 16th bit (that is, the region (16,1)). . Referring to FIG. 19, the second feature amount of the region (15, 1) is 0.25, and the second feature amount of the region (16, 1) is 0.28. Therefore, condition 1 is satisfied.
  • step S166 it is further determined whether or not a category has been determined for an area whose bit length is 1 bit longer than the area (11, 4), that is, the area (11, 5). For convenience of explanation, in this example, it is assumed that the category has not been determined for this region, that is, condition 2 is also satisfied (YES in step S166). Therefore, in step S167, the value of Length is incremented by increment 1.
  • step S166 the frequency of occurrence of a change in value is compared between the region (24, 1), which is the least significant bit of the region (11, 25), and the region (25, 1). Referring to FIG. 19, the second feature value of the region (25, 1) is 0, and the second feature value of the region (24, 1) is 0.40. Therefore, since the condition 1 is not satisfied, the result of the determination in step S166 is NO.
  • the payload dividing unit 140 selects a division pattern indicating a continuous value field area based on the second feature value and the third feature value. More specifically, first, a divided pattern candidate is extracted based on whether or not the third feature amount of each divided pattern candidate, that is, whether the variance of the change amount is out of average with the same bit length. Then, based on the second feature amount of the divided pattern candidate indicating each bit of the extracted divided pattern candidate as a region, that is, the magnitude relationship of the occurrence frequency of the change, the divided pattern candidate is a field corresponding to the continuous value category. It is determined whether or not an area is indicated.
  • a division pattern candidate indicating the start bit position specified in step S164 that is, a division pattern candidate having an outlier score higher than a predetermined threshold may be selected as a division pattern indicating a continuous value field region.
  • this selection can be performed with higher accuracy by performing the process of specifying the bit length shown in FIG.
  • bit length with a small number of division pattern candidates remaining at the stage where step S16 is executed may have low reliability such as a high outlier score by chance.
  • the outlier score is high, and there is a possibility that it will be mistakenly extracted as a continuous value field.
  • the third feature amount that is, the variance of the change amount may be compared. This is because if the amount of change in the lower bits is not large to some extent, no carry occurs and no change in the upper bits occurs.
  • step S166 in place of or in addition to the magnitude relationship of the second feature amount, whether or not the condition relating to the difference between the second feature amounts extends the bit length. It may be used for determination.
  • FIG. 20 is a flowchart of an example of checksum field extraction processing in step S17 by the payload dividing unit 140.
  • the first feature amount corresponds to the bit length. Is considered to satisfy the condition that it is somewhat large.
  • the prior knowledge that the bit length of the checksum is often 4 bits or 8 bits is also used as a condition, and the division pattern candidates satisfying these conditions are divided into the checksum field areas. Select as a pattern.
  • Step S171 From the third payload division pattern candidate, the payload division unit 140 has a first feature amount of 2 ⁇ (the bit length of the division pattern) or a division that matches the number of records extracted from the reception log in step S11 Extract pattern candidates. That is, in the records extracted in step S11, those in which all the values that can be represented by the bit length of each division pattern candidate appear, or those in which the values of all the records are different are extracted.
  • Step S172 The payload dividing unit 140 extracts a division pattern candidate having a bit length of 4 bits or 8 bits from the division pattern candidates extracted in Step S171.
  • Step S173 The payload dividing unit 140 selects a division pattern candidate extracted in step S172 that does not overlap with another division pattern candidate as a division pattern indicating a field region belonging to the checksum category. .
  • Step S174 The payload dividing unit 140 uses the divided patterns extracted in step S172 and overlaps with other divided pattern candidates, except for those that are part of other divided pattern candidates, in the checksum category. It is further selected as a division pattern indicating the field area to which it belongs. This is a step performed to find the longest bit string satisfying the conditions used in steps S171 and S172 as one checksum field.
  • Step S175) The payload division unit 140 deletes other division pattern candidates that overlap the division pattern candidates selected in steps S173 and S174, that is, include bits included in the selected division pattern candidates. Since step S175 is the same as step S144 or S155, detailed description thereof is omitted.
  • Step S176 The payload dividing unit 140 outputs the result of selecting the division pattern indicating the area of the checksum field, and ends Step S17.
  • step S171 the same conditions as in step S151 are used, but more relaxed conditions may be used.
  • a condition that the first feature amount is 2 ⁇ (bit length of the division pattern) or 80% or more of the number of records extracted from the reception log in step S11 may be used. This is because, in the checksum field, the change in the value is irregular in the number of patterns compared to the counter field, and there is a high possibility that the values appearing are duplicated and the number of types is small.
  • bit lengths of 4 bits and 8 bits in step S172 are examples, and the size of the bit length and the number of bit lengths included in the conditions used in this step are not limited to these.
  • a longer bit pattern candidate division pattern may be preferentially extracted.
  • FIG. 21 shows a flowchart of status field extraction processing.
  • Step S181 The payload dividing unit 140 selects a division pattern candidate still remaining after the end of step S17 as a division pattern indicating a field region belonging to the status category, which does not overlap with other division pattern candidates. To do.
  • Step S182 The payload dividing unit 140 belongs to the status category except for the divided patterns extracted in Step S181 that overlap with other divided pattern candidates, which are part of other divided pattern candidates. It is further selected as a division pattern indicating the field area. This is a step performed to find the longest bit string as one status field.
  • Step S183 The payload dividing unit 140 outputs the result of selecting the division pattern indicating the status field area, and ends Step S18.
  • the payload dividing unit 140 When these series of steps are executed for a data field included in one type of data frame having a common ID, the payload dividing unit 140 returns to step S12 to change to an unprocessed data frame of another ID. Data field division processing is executed for the included data field.
  • step S143, S156, S168, S176, or S183 is shown in FIG. 7 is held in the memory of the monitoring ECU 100 as information on the start, length, and category in the information related to the ID and data field.
  • the feature extraction unit 150 proceeds to a normal model generation process (step S9) using the field extraction result information.
  • the normal model indicates a normal range of change in the value of each field, and is used, for example, for determining whether a data frame is abnormal.
  • Step S21 The feature extraction unit 150 selects an ID that has not generated a normal model from the IDs indicated by the field division results output from the payload division unit 140.
  • the feature extraction unit 150 refers to the record of the ID selected in step S121 included in the reception log stored in the reception log holding unit 190.
  • Step S23 The feature extraction unit 150 acquires behavior information for each field from the field division result and the record of the reception log.
  • the behavior information acquisition process will be described later using another flowchart.
  • Step S24 The feature extraction unit 150 calculates the average of the reception intervals of the data frame of the ID and the dispersion of the reception intervals from the record of the reception log.
  • Step S25 The feature extraction unit 150 generates and outputs a normal model of the ID based on the field division result and the information obtained in steps S23 and S24, and stores the normal model in the normal model holding unit 191.
  • Step S26 The feature extraction unit 150 confirms whether normal models have been generated for all IDs. If normal models have been generated for all IDs (in the case of YES), step S9 is terminated. When that is not right (in the case of NO), it returns to step S21.
  • FIG. 23 is a flowchart of an example of processing for acquiring behavior information executed by the feature extraction unit 150 in step S23.
  • Step S231 The feature extraction unit 150 checks whether the field category indicated by the field division result includes an unprocessed field that belongs to the category of the behavior information acquisition target.
  • the categories for which behavior information is acquired include fixed values, continuous values, and status. If there is no unprocessed field in the category of behavior information acquisition target (in the case of NO), the feature extraction unit 150 ends Step S23. If there is an unprocessed field in the category for which behavior information is to be acquired (YES), the feature extraction unit 150 proceeds to step S232.
  • Step S232 The feature extraction unit 150 extracts, from the reception log stored in the reception log holding unit 190, the value of the unprocessed field in the category to be acquired of the behavior information confirmed in step S231.
  • Step S233 The feature extraction unit 150 checks whether the category of the field is a fixed value. When the category of the field is a fixed value (in the case of YES), the feature extraction unit 150 proceeds to step S234. Otherwise (NO), the feature extraction unit 150 proceeds to step S235.
  • Step S234 The feature extraction unit 150 extracts and acquires the value of the extracted field as behavior information, and returns to step S231.
  • Step S235 The feature extraction unit 150 checks whether the category of the field is a continuous value. When the category of the field is a continuous value (YES), the feature extraction unit 150 proceeds to step S236. Otherwise (NO), the feature extraction unit 150 proceeds to step S237.
  • Step S236 The feature extraction unit 150 extracts and acquires the average and variance of the amount of change in the extracted field value as behavior information, and returns to step S231.
  • the average and variance of the change amounts are the third feature amounts calculated for the division pattern candidates indicating the field area in step S13, but may be calculated again by the feature extraction unit 150 in this step.
  • Step S237) The feature extraction unit 150 extracts and acquires the occurrence frequency of the change in the value of the extracted field as behavior information, and returns to step S231.
  • the average and variance of the change amounts are the third feature amounts calculated for the division pattern candidates indicating the field area in step S13, but may be calculated again by the feature extraction unit 150 in this step.
  • FIG. 24 is a diagram illustrating an example for explaining a part of the operation of the feature extraction unit 150 for executing the processing of the flowchart illustrated in FIG. 23.
  • the feature extraction unit 150 confirms whether the field division result output from the payload division unit 140 includes an unprocessed field that belongs to the category for which behavior information is to be acquired (step S231). ). In this example, as a result of the confirmation, it is determined that a continuous value category is included.
  • the feature extraction unit 150 acquires the value of the field of the category whose existence has been confirmed in step S231 from the reception log stored in the reception log holding unit 190 (step S232).
  • the value of a field having a start bit position of 11 and a bit length of 14 is acquired. Since the category of the field in this example is a continuous value (steps S233 and S235), the feature extraction unit 150 extracts behavior information by obtaining the average and variance of the amount of change in the field value (step S236). If the category is a fixed value, the field value itself acquired in step S232 is acquired. If the category is a status, the occurrence frequency of the change in the field value is acquired.
  • the feature extraction unit 150 calculates and acquires statistical information (reception interval average, variance) regarding the reception interval of data frames with the same ID. Using the information and the field division result acquired in this way, the feature extraction unit 150 generates a normal model as illustrated in FIG. 7 (step S25), outputs it, and stores it in the normal model holding unit 191.
  • the abnormality detection unit 160 refers to the corresponding normal model stored in the normal model holding unit 191 regarding the ID of the data frame received from the bus 300.
  • the abnormality detection unit 160 refers to the corresponding reception log stored in the reception log holding unit 190 regarding the ID of the received data frame.
  • Step S33 The anomaly detection unit 160 verifies the data field included in the record in the received log to be referenced, using the behavior model of each field included in the normal model. The verification process based on the behavior model will be described later using another flowchart.
  • Step S34 When an abnormality is detected as a result of the verification (in the case of YES), the abnormality detection unit 160 proceeds to Step S35, and otherwise (in the case of NO), the abnormality detection process ends.
  • Step S35 The abnormality detection unit 160 requests the frame generation unit 170 to generate a data frame for notifying other ECUs of the abnormality, and ends the abnormality detection process.
  • FIG. 26 is a flowchart of a processing example of verification based on the behavior model executed by the abnormality detection unit 160 in step 33.
  • Step S3301 The abnormality detection unit 160 determines whether there is an unverified field in the data field for the received data frame. If there is no unverified field, that is, if all fields have been verified (NO), step S33 is terminated. If an unverified field exists (YES), the process proceeds to S3302.
  • Step S3302 The abnormality detection unit 160 extracts the value of the field to be checked next from the reception log stored in the reception log holding unit 190, and assumes that the field has been verified.
  • Step S3303 The abnormality detection unit 160 determines whether the category of the extracted field is a fixed value. In the case of a fixed value (in the case of YES), the abnormality detection unit 160 proceeds to step S3304. When it is not a fixed value (in the case of NO), the abnormality detection unit 160 proceeds to S3305.
  • Step S 3304 The abnormality detection unit 160 checks whether or not the value of the extracted field is equal to the value of the behavior information of the normal model stored in the normal model holding unit 191. When it is equal to the value of the behavior information of the normal model (in the case of YES), the abnormality detection unit 160 returns to step S3301. If not (NO), the abnormality detection unit 160 proceeds to step S3311.
  • Step S3305 The abnormality detection unit 160 determines whether or not the category of the extracted field is a counter. When it is a counter (in the case of YES), the abnormality detection unit 160 proceeds to step S3306. If it is not a counter (in the case of NO), the abnormality detection unit 160 proceeds to step S3307.
  • Step S3306 The abnormality detection unit 160 determines whether or not the extracted field value is incremented in chronological order. If incremented in chronological order (in the case of YES), the abnormality detection unit 160 returns to step S3301. If not (NO), the abnormality detection unit 160 proceeds to step S3311.
  • Step S3307 The abnormality detection unit 160 determines whether or not the extracted field category is a continuous value. When it is a continuous value (in the case of YES), the abnormality detection unit 160 proceeds to step S3308. When that is not right (in the case of NO), the abnormality detection part 160 performs step S3309.
  • Step S3308 The abnormality detection unit 160 determines whether or not the change amount of the extracted field value is a value close to the average described in the behavior information of the normal model stored in the normal model holding unit 191. When the value is close to the average described in the behavior information of the normal model (in the case of YES), the abnormality detection unit 160 returns to step S3301. If not (NO), the abnormality detection unit 160 proceeds to step S3311.
  • Step S3309 The abnormality detection unit 160 determines whether the category of the extracted field is status. If the status is YES (YES), the process proceeds to step S3310. If not (NO), the abnormality detection unit 160 proceeds to step S3301.
  • Step S3310 The abnormality detection unit 160 determines whether the occurrence frequency of the extracted field value change is close to the occurrence frequency of the change indicated in the normal model behavior information stored in the normal model holding unit 191. When it is close to the occurrence frequency of the change in the behavior information description of the normal model (in the case of YES), the abnormality detection unit 160 returns to step S3301. If not (NO), the abnormality detection unit 160 proceeds to step S3311.
  • Step S3311 If the abnormality detection unit 160 detects an abnormality, it notifies the next step of the category of the illegal field, and ends the verification process based on the behavior model (executes step S34).
  • the abnormality detection unit 160 determines whether or not there is an abnormality in the reception interval between the data frames having the corresponding ID or the possibility is high before step S33 of the abnormality detection process illustrated in FIG.
  • a data field of a data frame having an abnormality or a high possibility of an abnormality may be a verification target in step S33.
  • the monitoring ECU 100 including the above-described components detects an abnormality when an unauthorized ECU that transmits an abnormal data frame is connected to the in-vehicle network 10
  • the monitoring ECU 100 including the above-described components detects an abnormality when an unauthorized ECU that transmits an abnormal data frame is connected to the in-vehicle network 10
  • FIG. 27 shows an example of the operation of the abnormality detection unit 160.
  • the monitoring ECU 100 holds the normal model shown in FIG. 7 in the normal model holding unit 191.
  • the ECU 200a periodically transmits a data frame having an ID of 0x100 including a field indicating the vehicle speed to the bus 300.
  • an unauthorized ECU transmits a data frame with an ID of 0x100 to the bus 300.
  • the monitoring ECU 100 Each time the monitoring ECU 100 receives a data frame, the monitoring ECU 100 refers to the normal model stored in the normal model holding unit 191 and the reception log stored in the reception log holding unit 190, so that the value of the data field is It is determined whether or not the model deviates from the normal model (step S33). In FIG. 27 to FIG. 29, the value of the 5-byte data field is shown in hexadecimal.
  • the value of the data field conforms to the normal model, so it is determined that there is no abnormality.
  • the fixed bit is based on the fact that the start bit position shown in the normal model is 29 and the field with a data length of 4 is a fixed value and does not match that the value is 0. It is detected as an abnormality in the value field (YES in step S3303, NO for underlined “1” in S3304, S3311).
  • the value of the counter field with a bit length of 8 is not incremented at the start bit position 1 due to the influence of the data frame transmitted from the improper ECU received immediately before.
  • Abnormality is detected by the determination (YES in step S3305, NO in step S3306 with “3” underlined, S3311).
  • information based on the ID of the data frame in which the abnormality has been detected and the category of the field in which the abnormality has been detected (an abnormality in the fixed value field and an abnormality in the counter field) frame The generation unit 170 is notified to request generation of a message for notifying other ECUs of the occurrence of abnormality (step S35).
  • the record of the data frame may be deleted from the reception log.
  • FIG. 28 shows another example of the operation of the abnormality detection unit 160. In this example, it is assumed that the situation is similar to the situation shown in FIG. 27 except for the data frame transmitted by the unauthorized ECU.
  • the fraudulent ECU transmits a data frame including an abnormality immediately after a normal data frame is transmitted from the ECU 200a.
  • the monitoring ECU 100 in a plurality of data frames received sequentially within a predetermined time width, the occurrence frequency of the change of the status field having the start bit position of 26 and the bit length of 3 is far from 0.0001 indicated by the normal model. Based on this, an abnormality is detected (YES in step S3309, NO in response to occurrence of an underlined value change in S3310, S3311).
  • FIG. 29 shows an operation example of the abnormality detection unit 160.
  • the situation is the same as the situation shown in FIGS. 27 and 28 except for the data frame transmitted by the ECU 200a and the data frame transmitted by the unauthorized ECU.
  • the unauthorized ECU transmits three data frames having an ID of 0x100 from the ECU 200a, and then transmits a data frame including an abnormality having an ID of 0x100.
  • the monitoring ECU 100 that has received this data frame receives the reception log in light of the fact that the average of the change amount is 10 and the variance is 100 as the behavior information of the continuous value field having the start bit position of 11 and the bit length of 14.
  • the monitoring ECU 100 monitors the data frame flowing through the in-vehicle network, and divides the data field included in the data frame into fields that are groups of meaningful bit strings based on statistically obtained feature values. .
  • the monitoring ECU 100 generates a normal model used for detecting an abnormality in each field obtained by the division. Furthermore, the monitoring ECU 100 can detect an irregularity in the in-vehicle network by detecting an abnormality using the normal model.
  • Such a monitoring ECU 100 does not require an individual design in advance even if it is an in-vehicle network system with different specifications, so that it is possible to protect the in-vehicle network with reduced costs.
  • the field division unit, the feature extraction unit, and the fraud detection unit have been described as components of the monitoring ECU, but it is not necessary to hold all the components in the same device.
  • the field division unit and the feature extraction unit may be components of a cloud server outside the vehicle, and the cloud server receives data flowing through the in-vehicle network system received through a wireless communication network such as a mobile phone network to which the in-vehicle network system can be connected. Divide the frame into fields and generate a normal model.
  • monitoring ECU may perform a fraud detection process using this normal model downloaded from a cloud server.
  • the monitoring ECU does not need to have an operation determination unit, and may always perform an abnormality detection process.
  • the monitoring ECU only needs to have the abnormality detection unit, and the mounting becomes easy.
  • data field division, normal model generation, and abnormality detection processing are performed in the monitoring ECU.
  • the present disclosure is information that executes only data field division or normal model generation among them. It can also be realized as a processing device, an information processing method, a program, or the like. Such an information processing apparatus or the like can be applied for development of a network monitoring apparatus, for example.
  • the normal model is generated from the reception log obtained by collecting the data frame of the in-vehicle network for a certain period.
  • the data frame is not necessarily collected from the in-vehicle network for a certain period.
  • a normal model may be generated using logs collected in the past as input.
  • a normal model may be generated for each of a plurality of logs, and the result of merging a plurality of normal models may be determined as a final normal model by majority decision or averaging.
  • the action after detecting an abnormality is not limited to this.
  • the monitoring ECU may transmit an error frame so that the data frame including the field where the abnormality is detected is invalidated.
  • the monitoring ECU performs an abnormality detection process shown in FIG. 25 during reception of the data frame.
  • a measure not to transfer the data frame in which the abnormality is detected may be taken.
  • transfer of a data frame of the same type as that of the data frame in which an abnormality is detected, that is, a common ID may be stopped. This is effective when it is desired to realize the present disclosure using the gateway ECU as a monitoring ECU.
  • the range of functions that can be realized is widened and effective.
  • the user may be notified that an abnormality has occurred, the vehicle may be shifted to fail-safe mode, the abnormality that has occurred may be left in the log, and a mobile phone network, etc.
  • You may transmit to a cloud server through.
  • the information regarding this abnormality may be provided from a cloud server to an in-vehicle network of the same type or the same version as the in-vehicle network system in which the abnormality is detected, or an in-vehicle network including a common ECU.
  • the normal mode is generated after the 1-hour collection mode in the above embodiment, but it may be shorter or longer than 1 hour.
  • a log size sufficient to extract a feature amount may be defined regardless of time, and a normal model may be generated when a log of this size is collected.
  • an external interface may be provided, and the mode may be switched according to a user instruction. For example, the mode may be switched by an instruction from the cloud server. This makes it possible to collect data more flexibly and operate according to the resources of the monitoring ECU.
  • the data frame reception log, the normal model, and the vehicle state are for one ID, but each may be held for one or more IDs.
  • the reception log may not include the ID. .
  • reception time of the data frame is recorded in the reception log.
  • the reception time is not included in the reception log. Also good.
  • the order of reception may be indicated using the order of records in the reception log or the serial number.
  • reception interval average and dispersion information are not used for abnormality detection, these may not be retained in the normal model.
  • the divided fields are classified into five categories of fixed value, counter, continuous value, status, and checksum, but it is not always necessary to classify into these five categories.
  • a category field unnecessary for fraud detection may not be included in the normal model.
  • checksum field may be the message authenticator field.
  • a field in an area in which a change of a value not more than a predetermined value within a predetermined time width is observed a predetermined number of times or more may be treated as one category field.
  • a field may include a counter or a continuous value, and is an example of the first category in the present modification.
  • a field of a region that takes discrete values from various feature amounts may be treated as one category.
  • Such a field may include a checksum or a status value indicating a flag or a state, and is an example of the second category in the present modification.
  • the white list As the behavior information of the normal model, the white list, the frequency with which the value of the field changes (frequency of occurrence of the change), and the average and variance of the amount of change when the value of the field changes. It was held, but it is not limited to this. For example, an upper limit or a lower limit indicating a normal value range of each feature amount may be held. Further, the maximum value and the minimum value of the change amount when the field value changes may be held. Also, a white list of value transitions when the field value changes may be held. Moreover, you may hold
  • the maximum value of the frequency of occurrence of a change in value per predetermined time (for example, 1 second) may be calculated and stored from the record of the reception log.
  • the category and the behavior information are held for each field, but the behavior information for a plurality of fields may be held.
  • data obtained by subjecting a field obtained by dividing a data field to dimension reduction processing such as principal component analysis or an auto encoder may be held as a normal model.
  • a normal model that captures the relationship between fields is generated, which may be more effective than simply detecting abnormalities for each field.
  • the remaining length of the division pattern candidate includes the field length of 4 bits or 8 bits.
  • the length of the checksum field is known in advance, it can be set to that value. If you do not know in advance, you can divide the field with high accuracy by setting the length to a frequently used length.
  • the number of types of observed values (first feature amount) and the field value with respect to the number of observed data are changed for each division pattern.
  • the three types of frequency of occurrence (second feature value) and variance of the change amount when the value changes (third feature value) were calculated, but it is necessary to calculate all three types of feature values There is no.
  • a necessary feature amount may be selected and calculated depending on the field to be extracted.
  • a feature amount indicating how many types of values are observed in the range of possible values calculated from the first feature amount and the field length may be used.
  • the feature amount is calculated for each division pattern without converting the value of the data field.
  • preprocessing for converting the value of the data field is performed. May be performed.
  • the division pattern is a field with a sign
  • the feature may be calculated after performing two's complement conversion processing. This is effective for dividing a data field with high accuracy when a continuous value field is expressed with a sign.
  • the payload dividing unit notifies the feature extracting unit of the information of the divided data fields, so that the feature extracting unit extracts the normal model, but the output of the payload dividing unit itself May be notified externally or stored internally.
  • the payload dividing unit performs the data field dividing process for all the IDs included in the reception log.
  • the payload dividing unit does not need to perform the data field dividing process for all the IDs.
  • the data field division processing may be performed only on the ID specified in advance, and the result may be output.
  • the payload dividing unit divides the data field by extracting feature amounts for all division pattern candidates, but only a predetermined range is obtained.
  • the data field may be divided.
  • the processing speed can be increased by narrowing down the monitoring target.
  • the data field division processing may be performed only on the upper 20 bits of the data field, or may be performed on an arbitrary range. It is effective from the viewpoint of processing time.
  • the variance of the change amount when the value changes is used as the feature amount that captures the time-series change of the field change.
  • other features may be used. For example, a distribution of change amounts of field values may be used, or a feature amount using a moving average of field values may be used.
  • the CAN protocol is used as the in-vehicle network, but the present invention is not limited to this.
  • CAN-FD CAN with Flexible Data Rate
  • FlexRay FlexRay
  • Ethernet LIN (Local Interconnect Network)
  • LIN Local Interconnect Network
  • MOST Media Oriented Systems Transport
  • these networks may be combined as sub-networks.
  • Each device in the above embodiment is specifically a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is recorded in the RAM or hard disk unit.
  • Each device achieves its functions 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.
  • Each device in the above-described embodiment may be configured such that a part or all of the constituent elements are configured by one system LSI (Large Scale Integration).
  • the system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip, and specifically, a computer system including a microprocessor, ROM, RAM, and the like. . A computer program is recorded in this RAM.
  • the system LSI achieves its functions by the microprocessor operating according to the computer program.
  • each part of the constituent elements constituting each of the above devices may be individually made into one chip, or may be made into one chip so as to include a part or all of them.
  • the system LSI is used here, it may be called IC, LSI, super LSI, or ultra LSI depending on the degree of integration. Further, 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 constituent elements constituting each of the above-described devices may be configured from an IC card or a single module that can be attached to and detached from each device.
  • 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 functions by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • the present disclosure may be the method described above. 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 program or a recording medium that can read a digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blu-ray (registered trademark)). ) Disc), or recorded in a semiconductor memory or the like. Further, it may be a digital signal recorded on these recording media.
  • a digital signal such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blu-ray (registered trademark)).
  • 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 represented 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 implemented by another independent computer system.
  • This disclosure monitors a data frame flowing through an in-vehicle network, divides a data field included in the data frame according to a statistical feature amount, and generates a normal model for each divided field.
  • the monitoring ECU can detect fraud in the in-vehicle network based on the normal model. As a result, even in different in-vehicle network systems, it is possible to protect the in-vehicle network with reduced costs without requiring prior design.
  • In-vehicle network 100 Monitoring ECU 110 frame transmission / reception unit 120 frame collection unit 130 operation determination unit 140 payload division unit 150 feature extraction unit 160 abnormality detection unit 170 frame generation unit 180 mode holding unit 190 reception log holding unit 191 normal model holding unit 200, 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 Gear 230 Meter 300 Bus

Landscapes

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

Abstract

車載ネットワークに流れるデータフレームを処理する情報処理方法は、受信したデータフレームのそれぞれから、当該データフレームに含まれ、少なくとも1つのフィールドから構成されるペイロードを取得して受信ログに1つのレコードとして記録するフレーム収集ステップと、複数のレコードから、複数のデータフレームのペイロード内の互いに異なる領域を示す複数のペイロード分割パターン候補のそれぞれについて、各領域におけるペイロードの値の時系列変化に関する1つ以上の特徴量を算出し、この特徴量に基づいて、ペイロード内にあるフィールドの領域を示すペイロード分割パターンを選択し、選択したペイロード分割パターンが示す領域と、特徴量に基づく当該フィールドのカテゴリとを示すフィールド抽出結果を出力するフィールド抽出ステップとを含む。

Description

情報処理方法、情報処理システム、及びプログラム
 本開示は、車載ネットワークに流れるデータの情報処理に関する。
 近年、自動車の中のシステムには、電子制御ユニット(以下、ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の通信規格が存在する。その中でも最も主流な車載ネットワークの規格の一つに、Control Area Network(以降、CAN)がある。
 CAN通信のネットワークでは、通信線に2本線のバスが用いられ、このバスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信するノード(以下、送信ノード)は2本のバスに電圧をかけ、それぞれのバス間での電位差の有無に応じたレセシブと呼ばれる“1”の値、及びドミナントと呼ばれる“0”の値を送信することでフレームのバイナリデータを送信する。複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。
 受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームは、例えば連続する6ビットのドミナントで始まるフレームであり、このフレームを受信した送信ノード及び他の受信ノードはエラーの発生を検出する。
 またCANでは送信先又は送信元を示す識別子は存在せず、送信ノードはフレームごとにデータの種類等を示すIDを付けて送信し、各受信ノードはあらかじめ決められたIDを含むフレームのみ受信する。また、CANはCSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)方式を採用しており、複数ノードの同時送信時にはIDによる調停が行われ、IDの値が小さいフレームが優先的に送信される。
 一方、攻撃者がCANのバスにアクセスし、不正なフレームを送信することで、ECUを不正制御するといった脅威が存在し、セキュリティ対策が検討されている。
 例えば特許文献1では、車載ネットワーク監視装置が提案されている。特許文献1によれば、フレームがあらかじめ規定された通信間隔でネットワークに送信されているかを検出し、規定された通信間隔から外れる異常なフレームを不正と判断することで、不正フレームによる制御を防止する方法が開示されている。ただし、より高い精度で不正フレームを検知するためには、フレームに含まれるペイロードの内容を検証する必要がある。
 しかしながら、一般に車載ネットワークで送受信されるフレームの仕様は標準化されておらず、カーメーカが独自に設計しているため、ペイロード内における、意味のある複数の単位の区切りをサードパーティが知ることはできない。ペイロードに含まれているデータの種類が不明では、ペイロードを検証して不正なフレームを検知することは困難である。また、同一のカーメーカの自動車であっても、車種又は年式によっても、フレームの仕様は変更され得るため、各自動車に対して、監視装置の設計のためにフレームを検証するシステムを構築することは多大な労力を要する。
 このような課題の解決手段として、非特許文献1において、観測データのみから収集したフレームに含まれるペイロードを意味のある単位で分割し、分割して得たペイロードの部分ごとにホワイトリストを作成する方法が開示されている。
特許第5664799号公報
 本開示の一態様に係る情報処理方法は、記憶部を備える情報処理システムが行う、1以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理方法であって、車載ネットワークに流れる複数のデータフレームを受信し、複数のデータフレームのそれぞれから、当該データフレームに含まれ、少なくとも1つのフィールドから構成されるペイロードを取得して記憶部に保持される受信ログに1つのレコードとして記録するフレーム収集ステップと、複数のそのレコードから、複数のデータフレームのペイロード内の互いに異なる領域を示す複数のペイロード分割パターン候補のそれぞれについて、当該領域におけるペイロードの値の時系列変化に関する1つ以上の特徴量を算出し、算出した特徴量に基づいて、複数のペイロード分割パターン候補から、ペイロード内にあるフィールドの領域を示すペイロード分割パターンを選択し、選択したペイロード分割パターンが示す領域と、特徴量に基づく当該フィールドのカテゴリとを示すフィールド抽出結果を出力するフィールド抽出ステップとを含む。
 本開示の情報処理方法等は、攻撃を精度よく検知する安全な車載ネットワークシステムをコスト効率よく提供することができる。
図1は、実施の形態における車載ネットワークの全体構成を示すブロック図である。 図2は、CANのプロトコルのデータフレームフォーマットを示す図である。 図3は、CANのプロトコルのエラーフレームフォーマットを示す図である。 図4は、実施の形態における監視ECU100の機能構成を示すブロック図である。 図5は、実施の形態におけるモード保持部が保持する動作モードの一例を示す図である。 図6は、実施の形態における受信ログ保持部が保持する受信ログの一例を示す図である。 図7は、実施の形態における正常モデル保持部が保持する正常モデルの一例を示す図である。 図8は、実施の形態における監視ECUの動作のフローチャートである。 図9は、実施の形態におけるECUの機能構成を示すブロック図である。 図10は、上記のECUが送信するデータフレームの一部の例を示す図である。 図11は、実施の形態におけるペイロード分割部の処理のフローチャートである。 図12は、実施の形態におけるペイロード分割部の分割パターン候補からの特徴量の抽出の説明に用いる例を示す図である。 図13は、実施の形態における固定値のフィールドの抽出処理例のフローチャートである。 図14は、実施の形態における固定値のフィールドの抽出処理を説明するための例を示す図である。 図15は、実施の形態におけるカウンタのフィールドの抽出処理例のフローチャートである。 図16は、実施の形態における連続値のフィールドの抽出処理例のフローチャートである。 図17は、実施の形態における連続値のフィールドの抽出処理例のフローチャートである。 図18Aは、実施の形態における連続値のフィールドの抽出処理例において、ビット長が共通の分割パターン候補の値の変化量の分散の平均の算出例を示す図である。 図18Bは、実施の形態における連続値のフィールドの抽出処理例において、開始ビット位置が共通の分割パターン候補の、上記の平均の外れ値スコア及びその平均の算出例を示す図である。 図19は、実施の形態における連続値のフィールドの抽出処理例において用いられる、各分割フィールド候補での値の変化の発生頻度を示す図である。 図20は、実施の形態におけるチェックサムのフィールド抽出処理例のフローチャートである。 図21は、実施の形態におけるステータスのフィールド抽出処理例のフローチャートである。 図22は、実施の形態における正常モデルの生成処理例のフローチャートである。 図23は、図22に示される正常モデルの生成処理に含まれる、振る舞い情報の取得の処理例のフローチャートである。 図24は、図23に示される振る舞い情報の取得の処理を実行する特徴抽出部の動作の一部を説明するための図である。 図25は、実施の形態における異常検知部の処理の一例を示すフローチャートである。 図26は、実施の形態における異常検知部の処理の一例を示すフローチャートである。 図27は、実施の形態における異常検知部の動作例1を示した図である。 図28は、実施の形態における異常検知部の動作例2を示した図である。 図29は、実施の形態における異常検知部の動作例3を示した図である。
 非特許文献1のような手法では、ペイロードの分割方法として、収集したフレームから算出される、各分割候補において観測されたユニークな値の個数のみを用いてペイロードの種類の分類及び長さの特定をして分割を行っているため、ペイロードの分割精度が低い。
 本開示は、車載ネットワークにおける精度のよい異常検知をコスト効率よく実現するための情報処理方法等を提供する。
 本開示の一実施様態の情報処理方法は、記憶部を備える情報処理システムが行う、1以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理方法であって、車載ネットワークに流れる複数のデータフレームを受信し、複数のデータフレームのそれぞれから、当該データフレームに含まれ、少なくとも1つのフィールドから構成されるペイロードを取得して記憶部に保持される受信ログに1つのレコードとして記録するフレーム収集ステップと、複数のそのレコードから、複数のデータフレームのペイロード内の互いに異なる領域を示す複数のペイロード分割パターン候補のそれぞれについて、当該領域におけるペイロードの値の時系列変化に関する1つ以上の特徴量を算出し、算出した特徴量に基づいて、複数のペイロード分割パターン候補から、ペイロード内にあるフィールドの領域を示すペイロード分割パターンを選択し、選択したペイロード分割パターンが示す領域と、特徴量に基づく当該フィールドのカテゴリとを示すフィールド抽出結果を出力するフィールド抽出ステップとを含む。
 この情報処理システムを用いれば、メッセージ仕様の異なる車載ネットワークシステムに対して個々の事前の設計を必要とせずに異常検知システムを構築でき、コストを抑えた車載ネットワークの保護が可能となる。
 また例えば、受信ログは、複数のレコードの受信された順序を示す情報をさらに含み、特徴量は、時系列変化のパターン数を表す第1の特徴量と、時系列変化の発生頻度を表す第2の特徴量と、時系列変化の変化量に関する統計情報を表す第3の特徴量との少なくとも1つを含む。
 これらの特徴量を個別に使い分けたり組み合わせて用いたりすることで、より高い精度でペイロードのフィールドへの分割が可能になる。これにより、例えばより精度の高い正常モデルを構築することが可能となり、車載ネットワークの異常検知の精度向上が期待できる。
 また例えば、情報処理システムはフィールド抽出ステップにおいて、特徴量に基づいて、ペイロードの値に1回以上の時系列変化があり、時系列変化に含まれる各回の変化量が所定の大きさ以下である領域を示すペイロード分割パターン候補を、第1カテゴリのフィールドの領域を示すペイロード分割パターンとして選択してもよい。
 これにより、例えば正常であれば値が所定の規則に従って変化するフィールドを特定して抽出することができる。例えばこのように特定されたフィールドを攻撃の標的になりやすいフィールドであるとして監視対象とすることで、車載ネットワークの異常検知に用いることができる。
 また例えば、特徴量は上記の第2の特徴量及び第3の特徴量を含み、情報処理システムはフィールド抽出ステップにおいて、複数のペイロード分割パターン候補から、第2の特徴量及び第3の特徴量に基づいて、ペイロードの値が物理量を示す連続値カテゴリのフィールドの領域を示すペイロード分割パターンとして選択することで、第1カテゴリのフィールドを示すペイロード分割パターンを選択する連続値フィールド抽出ステップとを実行してもよい。例えば情報処理システムはフィールド抽出ステップにおいて、複数のペイロード分割パターン候補のそれぞれについて、同一のデータ長の領域を示すペイロード分割パターン候補の中での第3の特徴量の外れ具合を示す外れ値スコアを算出し、ペイロード分割パターン候補の中で開始ビットが同一である領域を示すペイロード分割パターン候補の外れ値スコアの平均値を算出し、平均値が所定の閾値以上である領域を示すペイロード分割パターン候補から、当該ペイロード分割パターン候補に含まれるペイロード分割パターン候補の第2の特徴量の大小関係に基づいて連続値カテゴリに該当するフィールドの領域を示すペイロード分割パターンを選択してもよい。
 これにより、例えばセンサが計測して出力する物理量を示すフィールドを特定することができる。このように特定されたフィールドは、そのフィールドの値又は値の変化率の異常の判定対象として車載ネットワークの異常検知に用いることができる。
 また例えば、情報処理システムはフィールド抽出ステップにおいて、複数のペイロード分割パターン候補から、特徴量に基づいて、ペイロードの値に毎回変化がある領域であって、当該ペイロードの値の各回の変化量が一定である領域を示すペイロード分割パターンをカウンタカテゴリのフィールドの領域を示すペイロード分割パターンとして選択することで、第1カテゴリのフィールドを示すペイロード分割パターンを選択してもよい。
 これにより、値がインクリメント又はデクリメントするフィールドを特定することができる。このように特定されたフィールドは、そのフィールドの値の変化の規則違反に基づく異常の判定対象として車載ネットワークの異常検知に用いることができる。
 また例えば、情報処理システムはフィールド抽出ステップにおいて、特徴量に基づいて、ペイロードの値に1回以上の時系列変化があり、ペイロードの値が離散値を取る領域を示すペイロード分割パターン候補を、第2カテゴリのフィールドの領域を示すペイロード分割パターンとして選択してもよい。例えば第2カテゴリは、フィールド内のペイロードの値の整合性をチェックするためのチェックサムカテゴリと、フィールド内のペイロードの値が車載ネットワークを含む車両の所定の状態を示すステータスカテゴリとの少なくとも一方であってもよい。
 これにより、チェックサム又はフラグ等の離散値を取るフィールドを特定することができる。このように特定されたフィールドは、そのフィールドの値の他のフィールドとの整合性、又は変化の発生頻度等に基づく異常の判定対象として車載ネットワークの異常検知に用いることができる。
 また、情報処理システムはフィールド抽出ステップにおいて、固定値フィールド抽出ステップと、カウンタフィールド抽出ステップと、連続値フィールド抽出ステップと、第2カテゴリフィールド抽出ステップとを順に実行し、固定値フィールド抽出ステップでは、複数のペイロード分割パターン候補から、第1の特徴量が1であるペイロード分割パターン候補を固定値カテゴリのフィールドの領域を示すペイロード分割パターンとして選択し、複数のペイロード分割パターン候補から当該選択したペイロード分割パターンと少なくとも一部が重なるペイロード分割パターン候補を除いた残りを第1のペイロード分割パターン候補とし、カウンタフィールド抽出ステップでは、第1のペイロード分割パターン候補から、カウンタカテゴリのフィールドの領域を示すペイロード分割パターンを選択し、第1のペイロード分割パターン候補から当該選択したペイロード分割パターンと少なくとも一部が重なるペイロード分割パターン候補を除いた残りを第2のペイロード分割パターン候補とし、連続値フィールド抽出ステップでは、第2のペイロード分割パターン候補から、第2の特徴量と、第3の特徴量と、を用いて、第2のペイロード分割パターン候補の中から、連続値カテゴリのフィールドの領域を示すペイロード分割パターンを選択し、第2のペイロード分割パターン候補から当該選択したペイロード分割パターンと少なくとも一部が重なるペイロード分割パターン候補を除いた残りを第3のペイロード分割パターン候補とし、第2カテゴリフィールド抽出ステップでは、第3のペイロード分割パターン候補を、第2カテゴリフィールドとして選択してもよい。
 これにより、未知のペイロードから効率よく各カテゴリのフィールドの範囲を特定して各フィールドを抽出することができる。
 また例えば、さらに前記情報処理システムが実行する、フィールド抽出結果及び受信ログから、選択されたペイロード分割パターンが示すフィールドの値の時系列変化の変化量に関する統計情報に基づいて、当該フィールドの値の変化の正常範囲を示す正常モデルを生成し、生成した正常モデルをさらに出力する特徴抽出ステップを含んでもよい。
 これにより、特定した各カテゴリのフィールドの範囲に加えて値の各種のフィールドの異常判定のための基準が得られ、車載ネットワークの異常検知の実行が可能になる。
 また、複数のデータフレームのそれぞれは、データフレームの種類を示すデータ種別IDを含み、情報処理システムは、フレーム収集ステップにおいて、ペイロード及びデータ種別IDを1つのレコードとして受信ログに記録し、フィールド抽出ステップを、データ種別IDが共通のデータフレームを対象に実行してもよい。
 これにより、バスから取得されたデータフレームに複数の種類のデータフレームが混在する場合であっても、ペイロードのフィールドへの分割が可能である。
 なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。
 以下、図面を参照しながら、実施の形態について説明する。
 なお、以下で説明する実施の形態は、包括的又は具体的な例を示す。したがって、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、ステップ、ステップの順序などは一例であり、本開示を限定する趣旨ではない。
 また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素は、任意で含まれる構成要素として説明される。
 (実施の形態)
 <1.構成>
 実施の形態として説明する情報処理システムは、車載ネットワークを流れるデータフレームを受信し、このデータフレームのペイロードをフィールドに分割し、分割して得たフィールドごとの、正常なデータフレームに含まれる値に関する振る舞いモデルを構築する。この情報処理システムはまた、この振る舞いモデルに基づいて、車載ネットワークを監視し、異常なデータフレームを検知する。このような情報処理システムについて図面を参照しながら説明する。
 <1.1 車載ネットワーク10の全体構成>
 図1は、本実施の形態における車載ネットワーク10の全体構成を示すブロック図である。車載ネットワーク10は、監視ECU100と、ECU200と、バス300とを備える。
 監視ECU100は、バス300に接続され、バス300を流れるデータフレームを監視し、異常を含む不正なデータフレームが流れているか監視する。通信回路、プロセッサ及びメモリを含むマイクロコントローラ(図示なし)を備える監視ECU100は、本実施の形態における情報処理システムの一例である。
 ECU200aは、速度センサ210及びギア220に接続されており、ECU200bは、メータ230に接続されている。ECU200aは、定期的にバス300へ、速度センサ210から得られる車両の速度と、ギア220のポジションとをデータフレームに含めて送信する。このデータフレームを受信したECU200bは、ECU200aから通知される車両の速度及びギア220のポジションを取得し、メータ230に表示する。
 以下、本実施の形態の理解を促すために、車載ネットワーク10で用いられている通信規格であるCANプロトコルで送信されるデータのフォーマットについて簡単に説明する。
 <1.2 データフレームフォーマット>
 図2は、CANプロトコルのデータフレームのフォーマットを示す図である。ここではCANプロトコルにおける標準IDフォーマットにおけるデータフレームを示している。
 データフレームは、Start Of Frame(以下、SOFという)、IDフィールド、Remote Transmission Request(以下、RTRという)、IDentifier Extension(以下、IDEという)、予約ビット(以下、rという)、データレングスコード(以下、DLCという)、データフィールド、Cycric Redundancy Check(以下、CRCという)シーケンス、CRCデリミタ、Acknowledgementト(以下、ACKとする)スロット(図中のACK)、ACKデリミタ(図中のDEL)、及びエンドオブフレーム(以下、EOF)の12個の部分から構成される。
 SOFとは、1ビットのドミナントである。バス300はアイドルのときになっており、送信ノードはバス300をレセシブからドミナントへ変更することでフレームの送信開始を通知する。
 IDとは、11ビット長の値で、データフレームの種類を示す。ここでいうデータフレームの種類とは、例えばデータの内容又はデータフレームの送信元である送信ノードを指す。また、IDは同一ネットワーク上で複数のノードが同時に送信を開始したデータフレーム間での通信調停にも用いられる。より具体的には、IDがより小さい値を持つデータフレームは優先順位がより高い。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プロトコルのエラーフレームのフォーマットを示す図である。エラーフレームは、エラーフラグ(プライマリ)、エラーフラグ(セカンダリ)、及びエラーデリミタ(図中DEL)の3個の部分から構成される。
 エラーフラグ(プライマリ)は、エラーの発生を他のノードに知らせるために使用される。連続する6ビットのドミナントであり、CANプロトコルにおける、連続する同じ値の5ビットの次には異なる値を1ビット送信するというビットスタッフィングルールに違反する。このビットスタッフィングルール違反の発生によって、他のノードからのエラーフラグ(セカンダリ)の送信が引き起こされる。
 エラーフラグ(セカンダリ)は、エラーの発生を他のノードに通知するために送信される6ビット長のドミナントである。エラーフラグ(プライマリ)を受信した全てのノードが送信する。
 エラーデリミタは8ビット長のレセシブで、エラーフレームの終了を示す。
 <1.4 監視ECU100の構成図>
 図4は、監視ECU100の機能構成を示すブロック図である。
 監視ECU100は、フレーム送受信部110と、フレーム収集部120と、動作判断部130と、ペイロード分割部140と、特徴抽出部150と、異常検知部160と、フレーム生成部170と、モード保持部180と、受信ログ保持部190と、正常モデル保持部191とを備える。
 フレーム送受信部110は、バス300に対して、CANのプロトコルに従ったデータフレームを送受信する。即ち、フレーム送受信部110は、バス300からデータフレームを1ビットずつ受信する。また、データフレームの受信がエラー無く完了すると、データフレームに含まれるID、DLC、及びデータフィールドをフレーム収集部120及び動作判断部130に転送する。また、受信したデータフレームがCANプロトコルに則っていないと判断した場合、フレーム送受信部110はエラーフレームを送信する。また、フレーム送受信部110は、他のノードからエラーフレームを受信した場合、つまり受け取ったフレームの値からエラーフレームであると判断した場合には、受信中のデータフレームを破棄する。また、フレーム生成部170からデータフレームの送信要求を受けた場合には、フレーム送受信部110はバス300へデータフレームを1ビットずつ送信する。
 フレーム収集部120は、フレーム送受信部110よりデータフレームの上述の一部を受け取り、このデータフレームが受信された時刻(以下、受信時刻という)、並びにデータフレームに含まれていたID及びデータフィールドを、受信ログ保持部190に保持される受信ログに1レコードとして記録する。受信時刻は、例えば監視ECU100が起動してから経過した稼働時間を計測するタイマを参照して記録される。このようなタイマは、例えば監視ECU100が備えるマイクロコントローラに含まれる。
 動作判断部130は、モード保持部180に格納されている動作モードを示す値をデータフレーム受信時に参照し、この動作モードに従って監視ECU100の順次の動作を決定する。監視ECU100の動作モードには収集モードと監視モードの2つがある。動作モードを収集モードに決定した場合、動作判断部130は監視ECU100が通算で1時間以上動作しているかを確認する。1時間以上動作していない場合は特に動作を行わない。1時間以上動作している場合、動作判断部130は、ペイロード分割部140へ所定の動作要求を行い、その後、動作モードを監視モードに切り替える。動作モードが監視モードである場合には、異常検知部160へ異常検知要求を行う。
 ペイロード分割部140は、受信ログ保持部190に格納されている受信ログを参照し、共通のIDを含むレコードのペイロード、つまりデータフィールドを分割して、特定の意味をなすビット列(以下、フィールドという)であるフィールドを抽出する。データフィールドに含まれるフィールドは、その示す情報に応じて、固定値、カウンタ、連続値、チェックサム、ステータスのいずれかのカテゴリに分類される。例えば、速度センサ210によって計測された自動車の速度を示す値が占める領域などが1つのフィールドに該当し、当該フィールドは連続値に分類される。分割方法の詳細については後述の1.11から1.16で説明する。
 また、ペイロード分割部140は、共通のIDを含むレコードのペイロードを分割して得たフィールドに関する情報を、特徴抽出部150に通知する。この情報の例には、フィールドのカテゴリ、フィールドの領域、フィールドの値が含まれる。
 特徴抽出部150は、ペイロード分割部140から通知される、ペイロードの分割によって得られたフィールドに関する情報と、受信ログとから正常モデルを生成して正常モデル保持部191に格納する。
 このような正常モデルはデータフレームのIDごとに生成され、データフレームの受信間隔に関する情報である受信間隔の平均及び分散と、データフィールドに関する情報であるフィールドの領域、カテゴリ、及び振る舞い情報とを含む。
 データフィールドに関する情報のうち、振る舞い情報は、受信ログ保持部190に格納されている受信ログに含まれるペイロードの値からフィールドごとに生成される。
 振る舞い情報に含まれる情報はフィールドのカテゴリによって異なる。例えば固定値のカテゴリに属するフィールドの振る舞い情報には、受信ログ中に観測された固定値の値が含まれる。この値は、監視モードでホワイトリストの値として用いられる。カウンタのカテゴリに属するフィールドに関しては、振る舞い情報がない。連続値のカテゴリに属するフィールドに関しては、受信ログ中に観測された連続するデータフレーム間の該当フィールドにおける値の差分つまり変化量の平均及び分散を含む。ステータスのカテゴリに属するフィールドに関しては、受信ログ中に含まれる、あるIDのデータフレームの総受信数に対して、時系列で直前のデータフレームからフィールドの値に変化が発生した割合、つまり変化の発生頻度を含む。なお、ステータスとは、車両上の何らかの状態であり、例えば前照灯等の特定の装置のON/OFF、ギアポジション、運転モード等を指す。
 異常検知部160は、動作判断部130から異常検知要求を受けた場合に、不正なデータフレームの受信の検知のための処理(以下、異常検知処理という)を行う。より具体的には、異常検知部160は、受信ログ保持部190に格納されている受信ログを参照し、正常モデル保持部191に格納されている正常モデルと受信ログとを用いて不正なデータフレームの受信の有無を判定する。
 例えば異常検知部160は、あるIDのデータフレームの正常モデルで固定値のカテゴリに属するフィールドに関して、受信ログ中でこのIDを含むレコードのデータフィールド内の当該フィールドの領域の値と正常モデルでこのフィールドの振る舞い情報に示される値とを比較する。そしてこれらの値が異なる場合、異常検知部160は不正なデータフレームを受信したと判定する。
 また異常検知部160は、あるIDのデータフレームの正常モデルでカウンタのカテゴリに属するフィールドに関して、受信ログ中でこのIDを含むレコードのデータフィールド内の当該フィールドの領域の値が、時間順で正しくインクリメントしているか否か判定する。正しくインクリメントしていない場合、異常検知部160は、不正なデータフレームを受信したと判定する。
 また異常検知部160は、あるIDのデータフレームの正常モデルで連続値のカテゴリに属するフィールドに関して、受信ログ中でこのIDを含むレコードのデータフィールド内の当該フィールドの領域の値の直前のレコードでの値からの変化量が、正常モデルでこのフィールドの振る舞い情報に含まれる変化量の平均に対して外れ値であるか否か判定する。そして外れ値である場合、異常検知部160は、不正なデータフレームを受信したと判定する。なお、外れ値であるか否かの判定は、正常モデルの振る舞い情報に示される変化量の分散を用いて、例えば当該フィールドの値の変化量の平均値±3×(√分散)の範囲に収まるか否かに基づいて行われる。
 また異常検知部160は、あるIDのデータフレームの正常モデルでステータスのカテゴリに属するフィールドに関して、受信ログ中でこのIDを含むレコードのデータフィールド内の当該フィールドの領域の値を1秒などの所定の時間幅で見たときにフィールドの値の変化の発生頻度と、正常モデルの振る舞い情報に示される発生頻度とを比較する。これらの発生頻度の値の差が所定の閾値より大きい場合、異常検知部160は、不正なデータフレームを受信したと判定する。
 このような判定によって異常を含むデータフレームを受信したことを検知すると、異常検知部160は、フレーム生成部170に、例えば不正なデータフレームを受信していることを通知するためのデータフレームの生成を要求する。
 フレーム生成部170は、異常検知部160から上記のデータフレームの生成を要求されると、不正なデータフレームを受信していることを通知するためのデータフレームを生成し、フレーム送受信部110へ通知する。
 モード保持部180は、監視ECU100の現在の動作モードを示す値を保持している。動作モードは、上述のとおり収集モードと又は監視モードである。図5にモード保持部180が保持する動作モードの値の一例を示す。動作モードについては、後述の1.6にて説明する。
 受信ログ保持部190は、フレーム収集部120から通知されたデータフレームの情報(受信時刻、ID、データフィールド)を保持する。図6に受信ログ保持部190に格納されている受信ログの一例を示す。受信ログについては、後述の1.7にて説明する。
 正常モデル保持部191は、特徴抽出部150が抽出した正常モデルを保持する。図7に正常モデル保持部191が保持する正常モデルの一例を示す。正常モデルについては、1.8にて説明する。
 これらの機能的な構成要素は、監視ECU100が備えるマイクロコントローラにおいて、通信回路を通じて受信したデータフレームを、プロセッサがメモリに格納されたプログラムを実行して処理し、必要に応じて処理の中間又は最終で生成されるデータがメモリに保持されることによって実現される。
 <1.5 監視ECU100の動作>
 上述のように構成される監視ECU100の動作における一連の工程について、図8に示されるフローチャートを用いて説明する。
 (ステップS1)監視ECU100のフレーム送受信部110が、車載ネットワークのバス300を流れるデータフレームを受信する。
 (ステップS2)監視ECU100のフレーム収集部120は、ステップS1で受信されたデータフレームの受信時刻、ID、及びデータフィールドを含むレコードを、受信ログ保持部190に保持される受信ログに記録する。
 (ステップS3)監視ECU100の動作判断部130は、監視ECU100の現在の動作モードを、モード保持部180を参照して確認する。現在の動作モードが監視モードである場合(YESの場合)、動作判断部130はステップS4へ進む。そうでない場合、つまり現在の動作モードが収集モードである場合(NOの場合)、動作判断部130はステップS7へ進む。
 (ステップS4)監視ECU100の動作判断部130は異常検知部160へ異常検知処理要求を行い、異常検知部160は上述のような異常検知処理を行う。
 (ステップS5)監視ECU100の異常検知部160は、異常検知処理の結果、異常が検知された場合(YESの場合)にステップS6へ進む。そうでない場合(NOの場合)、監視ECU100はステップS1に戻る。
 (ステップS6)監視ECU100の異常検知部160は、異常を検知したことを他のノードに通知するデータフレームの生成要求を、フレーム生成部170に送信する。フレーム生成部170は不正なデータフレームの受信を通知するデータフレームを生成し、フレーム送受信部110を通してバス300にこのデータフレームを送信して終了する。
 (ステップS7)監視ECU100の動作判断部130は、監視ECU100が1時間以上動作しているかを判定する。監視ECU100が1時間以上動作している場合(YESの場合)は、ステップS8へ進む。そうでない場合(NOの場合)、監視ECU100はステップS1に戻る。
 (ステップS8)監視ECU100の動作判断部130は、ペイロード分割部140にペイロード分割処理要求を行う。ペイロード分割部140は、データフレームのペイロードであるデータフィールドを分割してフィールド抽出処理を行う。
 (ステップS9)監視ECU100の特徴抽出部150は、ペイロード分割部140によるフィールド抽出処理の結果を用いて正常モデルを生成し、正常モデル保持部191に格納する。
 (ステップS10)監視ECU100の動作判断部130は、モード保持部180が保持する動作モードの値を書き換えて監視ECU100の動作モードを収集モードから監視モードに切り替える。
 上記の各ステップのうち、ステップS1及びステップS2は本実施の形態におけるフレーム収集ステップの例であり、ステップS8は本実施の形態におけるフィールド抽出ステップの例である。
 なお、フローチャートではステップS6又はステップS10の工程を最後に監視ECU100の動作が終了する流れが示されるが、実際にはステップS1に戻って動作が反復的に継続されてもよい。
 <1.6 動作モードのデータ構成>
 図5を参照して、モード保持部180が保持する動作モードの一例を示す。
 この例では、監視ECU100の現在の動作モードは収集モードであることが示されている。収集モードでは、監視ECU100が受信するデータフレームのデータフィールド等がフレーム収集部120によって受信ログ保持部190に格納される。
 <1.7 受信ログのデータ構成>
 図6に、受信ログ保持部190が保持する受信ログの一例を示す。
 この受信ログはIDが0x100であるデータフレームを複数個受信した後の状態である。データ行の各行が1レコードであり、上から下に時間順に並ぶ。
 この例におけるデータフィールドの長さは5ビットで、受信ログの中で最も早く受信されたデータフレームの受信時刻は51msであり、データフィールドの値は0x00 0x00 0x00 0x10 0x10である。また、最も遅くに受信されたデータフレームの受信時刻は500450msであり、データフィールドの値は、0x26 0x15 0x4B 0x30 0xB6である。
 <1.8 正常モデルのデータ構成>
 図7に、正常モデル保持部191が保持する正常モデルの一例を示す。
 この例に示される正常モデルは、IDが0x100のデータフレームに関する正常モデルである。この正常モデルには、IDが0x100のデータフレームの受信間隔に関する情報として、受信間隔の平均である50ms、受信間隔の分散である3msが含まれている。またデータフィールドに関する情報として、データフィールドを分割して得られた7つのフィールドそれぞれの開始ビット位置、ビット長、カテゴリ、及び振る舞い情報が含まれる。より具体的には、データフィールドの上位1ビット目から8ビット長のフィールドはカウンタを示すフィールドである。データフィールドの上位9ビット目から、2ビット長さのフィールドは固定値を示し、その値は0である。データフィールドの上位11ビット目から14ビット長さのフィールドは連続値を示し、フィールドの値に発生した変化の変化量の平均は10であり、分散は100である。データフィールドの上位25ビット目から、1ビット長のフィールドは固定値であり、その値は0である。データフィールドの上位26ビット目から3ビット長のフィールドは車両のステータスを示し値の変化の発生頻度は0.0001である。データフィールドの上位33ビット目から8ビット長のフィールドはチェックサムである。
 <1.9 他のECUの構成>
 図9は、車載ネットワークに接続されるノードの例であるECU200a又はECU200bの機能構成を示すブロック図である。ECU200aはフレーム送受信部201と、フレーム処理部202と、外部機器入出力部203と、フレーム生成部204とを備える。これらの機能的な構成要素は、ECU200aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ又はデジタル回路等により実現される。
 フレーム送受信部201は、バス300に対して、CANのプロトコルに従ったデータフレームを送受信する。即ち、フレーム送受信部201はバス300からデータフレームを1ビットずつ受信する。また、データフレームの受信がエラー無く完了すると、データフレームに含まれるID、DLC、及びデータフィールドをフレーム処理部202に転送する。受信したデータフレームがCANプロトコルに則っていないと判断した場合、フレーム送受信部201はエラーフレームを送信する。また、他のノードからエラーフレームを受信した場合、フレーム送受信部201は受信中のデータフレームを破棄する。通信調停といったCANのプロトコルに則った処理も、フレーム送受信部201において実行される。
 フレーム処理部202は、受信したデータフレームの内容を解釈する。例えばECU200bでは、ECU200aから送信されるデータフレームのデータフィールドに含まれる速度センサ210が計測した速度及びギア220のポジションの情報を取得し、これらの情報をメータ230に表示させるための制御情報を外部機器入出力部203に通知する。このときフレーム処理部202は、データフレームに含まれているカウンタ及びチェックサムが所定の条件を満たしているかを確認する。より具体的には、カウンタについては、受信済みの同IDのデータフレームに含まれていたカウンタの値よりも大きな値であるかを確認する。
 チェックサムについては、例えばデータフィールドのチェックサムのフィールド以外の部分を1バイトずつに分割し、全ての値を加算した和の下位1バイトがチェックサムの値となっているかを確認する。カウンタ及びチェックサムがこれらの条件を満たしている場合に、受信したデータフレームに基づいた情報がメータ230に表示される。
 外部機器入出力部203は、ECU200a又はECU200bに接続される外部機器と通信を行う。例えばECU200aの場合、外部機器入出力部203は、速度センサ210及びギア220と接続され、現在の車両の速度及びギア220のポジションの情報の通知を受け、これらの情報をフレーム生成部204に通知する。ECU200bの場合、外部機器入出力部203はメータ230に接続され、現在の車両の速度や及びギア220のポジションの情報を運転者に通知するために、これらの情報を表示させる信号をメータ230に送信する。
 フレーム生成部204は、バス300へ送信するデータフレームを生成する。例えばECU200aでは、外部機器入出力部203から通知された、速度センサ210から取得した車両の速度と、ギア220から取得したギアのポジションを含むデータフレームを、あらかじめ定められた周期、例えば50ms間隔で生成し、フレーム送受信部201に送信する。またカウンタ及びチェックサムもこのデータフレームに含める。カウンタは送信のたびにインクリメントされ、チェックサムは前述の式を満たすように算出される。なお、データフレームが生成される間隔は50ms以外の間隔でもよい。図10に、ECU200aがバス300に送信するデータフレームの一部の例を示す。監視ECU100及びECU200bはバス300からこのデータフレームを受信する。このようにデータフレームは、少なくとも1つの、特定の意味をなすビット列であるフィールドから構成される。ただし、収集モードで動作中の監視ECU100にとって、受信したデータフレームに含まれるデータフィールドの内容又はデータフィールドの適切な分割方法が不明であるため、このデータフィールドは単なる5バイト長のデータである。
 <1.10 ECUが送信するデータフレームの構成>
 車載ネットワークに接続される各ECUが送信するデータフレームの構成について例を用いて説明する。図10は、ECU200aが送信するデータフレームの例を示した図である。ただし、図10では本実施の形態の説明に必要な部分のみを抜粋して図示している。
 ECU200aは、IDが0x100で、DLCが5のデータフレームを送信する。
 データフィールドの先頭1バイトの領域はカウンタのフィールドで、その値は0x26である。カウンタのフィールドの値は送信のたびにインクリメントされる。
 データフィールドの2バイト目と3バイト目とを連結した領域は速度センサ210が測定した速度を示すフィールドである。この例では、速度は0.01km/h単位で表され、0x154Bの値は速度の測定値が54.51km/hであることを示す。
 4バイト目の上位4ビットの領域はギア220のポジションを示すフィールドであり、0がニュートラル、1がパーキング、2がリバース、3がドライブであることを示す。図10の例では値が3であることから、ギアポジションはドライブである。
 4バイト目の下位4ビットの領域は固定値のフィールドであり、0で埋められている。
 5バイト目はチェックサムのフィールドである。このフィールドに入る値は、データフィールドのチェックサムのフィールド以外の部分を1バイトの領域に分割し、各領域の値を加算して得られる和の下位1バイトの値である。図10の例でこのような各領域の値の和を求めると、0x26+0x15+0x4B+0x30=0xB6となる。したがって、チェックサムのフィールドに入るべき正しい値は0xB6である。
 なお、上述のとおり、上記のようなデータフィールドで各フィールドが占める領域及び各フィールドが示す情報の種類、つまりフィールドのカテゴリは各カーメーカが決定する仕様に依存し、また、車種又は年式によっても異なる場合がある。
 監視ECU100では、各フィールドの領域及びカテゴリが未知のデータフィールドを、ペイロード分割部140がデータフィールド内の値の変化に関する特徴を用いて分割してフィールドを抽出する。次に、ペイロード分割部140によるデータフィールドを分割してフィールドを抽出する処理について例を用いて説明する。
 <1.11 ペイロード分割部140による処理>
 ペイロード分割部140がデータフィールドを分割してフィールドを抽出する処理で実行する一連のステップについて、図11に示されるフローチャートを用いて説明する。ペイロード分割部140は、この動作を図8のフローチャートにあるステップS8で行う。したがって、図8のフローチャートに示されるように、ペイロード分割部140は、監視ECU100が複数のデータフレームを既に受信しており、受信ログには複数種類のIDを含むレコードが記録されている状態からこの動作によるフィールド抽出処理を実行する。
 (ステップS11)ペイロード分割部140は、動作判断部130からステップS8でのペイロード分割処理要求を受けると、受信ログ保持部190を参照し、受信ログからIDごとにレコードを抽出する。
 (ステップS12)ペイロード分割部140は、受信ログに含まれる全てのIDに対して、フィールド抽出を完了している場合(NOの場合)、動作を終了し、フィールド抽出の結果を特徴抽出部150へ通知する。フィールド抽出を未実行のIDがある場合(YESの場合)は、フィールド抽出が未実行のIDのいずれかを含むレコードを選択する。つまり、ペイロード分割部140は、フィールド抽出が未実行のIDを共通に含むデータフレームのデータフィールドを分割してフィールドを抽出する。
 (ステップS13)ペイロード分割部140は、データフィールドの分割パターン候補ごとの特徴量を算出する。
 分割パターン候補とは、データフィールドをビット単位で分割して得られる領域のパターンであり、例えば領域の開始ビット位置(以下Indexともいう)とビットの単位で表されるデータ長(以下Lengthともいう)との組み合わせ(Index,Length)で表される。例えば64ビット長のデータフィールドに関しては、IndexとLengthはそれぞれ1~64の値をとりうるが、Index+Length-1(領域の終端ビット位置)は64を超えない。そのため、値が1のIndexに対してはLengthが1~64までの64通り、値が2のIndexに対してはLengthが1~63の63通り、値が3のIndexに対してはLengthが1~62の62通りあり、値が64のIndexに対しては、Lengthは1のみの1通りである。つまり64ビット長のデータフィールドの場合、分割パターン候補の個数は、Σx(x=1~64)=65×64÷2=2080通りとなる。このような分割パターン候補は、本実施の形態におけるペイロード分割パターン候補の例である。
 図12は分割パターン候補からの特徴量の抽出について説明するための例を示す図である。図12では、受信ログから抽出されたあるIDを共通に含む256個のレコードに含まれる、5バイト長のデータフィールドの値が上から受信順に並べられている。
 本実施の形態においては、特徴量は各分割パターン候補の範囲にあるデータフィールドの値に変化に関するものであり、3種類ある。各特徴量について、分割パターン候補(13,8)を例により詳細に説明する。この分割パターン候補(13,8)は、図12では点線の枠で示される。
 1つ目の特徴量は、各分割パターン候補が示す領域におけるデータフィールドの値のパターン数である。この特徴量は、分割パターン候補が示す領域内のデータフィールドの値の種類数、又はこの領域において重複を除いたデータフィールドの値の個数をカウントして求めることができる。この特徴量を以下では第1の特徴量という。
 2つ目の特徴量は、時系列で見て直前のデータフレームからの値の変化の発生頻度である。この特徴量は、分割パターン候補が示す領域内のデータフィールドの値が変化した回数を(受信ログから抽出されたIDを共通に含むレコードの数-1)で割って求めることができる。データフィールドの値が変化した回数は、時系列順に並べたレコードの当該領域内の階差を求め、階差が0で無い個数をカウントして求めることができる。例えば図12に示されるように256個のレコードがあり、そのうち領域(13,8)で直前に受信されたデータフレームから値が変化した回数が51回である場合、この領域(13,8)での当該特徴量は51/(256-1)=0.2である。この特徴量を以下では第2の特徴量という。
 3つ目の特徴量は、時系列で見て発生した直前のデータフレームからの値の変化量の分散である。この特徴量は、上述のように階差から求めた変化量から算出することができる。この特徴量を以下では第3の特徴量という。
 (ステップS14)ペイロード分割部140は、分割パターン候補の中から、ステップS13で抽出した特徴量が所定の条件を満たすものを、固定値のカテゴリに属するフィールドの領域を示す分割パターンとして選択する。この選択については、後述の1.12で例を用いて説明する。
 また、1つのビットが2つのフィールドに含まれることはないため、ペイロード分割部140は、ステップS14で選択された領域と少なくとも一部が重なる分割パターン候補は以降のステップでの条件判定の対象から除外する。残る分割パターン候補を、以下では第1のペイロード分割パターン候補という。
 (ステップS15)ペイロード分割部140は、第1のペイロード分割パターン候補の中から、ステップS13で抽出した特徴量が所定の条件を満たすものを、カウンタのカテゴリに属するフィールドの領域を示す分割パターンとして選択する。この選択については、後述の1.13で例を用いて説明する。
 また、ペイロード分割部140は、ステップS15で選択された領域と少なくとも一部が重なる分割パターン候補を、以降のステップでの条件判定の対象からさらに除外する。なお残る分割パターン候補を、以下では第2のペイロード分割パターン候補という。
 (ステップS16)ペイロード分割部140は、第2のペイロード分割パターン候補の中から、ステップS13で抽出した特徴量が所定の条件を満たすものを、連続値のカテゴリに属するフィールドの領域を示す分割パターンとして選択する。この選択については、後述の1.14で例を用いて説明する。
 また、ペイロード分割部140は、ステップS16で選択された領域と少なくとも一部が重なる分割パターン候補を、以降のステップでの条件判定の対象からさらに除外する。なお残る分割パターン候補を、以下では第3のペイロード分割パターン候補という。
 (ステップS17)ペイロード分割部140は、第3のペイロード分割パターン候補の中から、ステップS13で抽出した特徴量が所定の条件を満たすものを、チェックサムのカテゴリに属するフィールドの領域を示す分割パターンとして選択する。この選択については、後述の1.15で例を用いて説明する。
 (ステップS18)ペイロード分割部140は、なお残る分割パターン候補を、ステータスのカテゴリに属するフィールドの領域を示す分割パターンとして選択する。この選択については、後述の1.16で例を用いて説明する。
 ステップS18で1種類のIDのデータフレームのデータフィールドからのフィールドの抽出は完了し、ステップS12に戻る。他のIDのデータフレームで未処理のものがあれば、ペイロード分割部140によるステップS13以降の実行対象となる。
 <1.12 固定値のフィールド>
 図13は、ペイロード分割部140による、ステップS14での固定値のフィールドの抽出処理例のフローチャートである。また、図14はこの処理を説明するための例を示す図である。図14に示されるようなテーブルデータが、ステップS13の処理の結果として監視ECU100のメモリに保持されていると想定してもよい。
 (ステップS141)まず、ペイロード分割部140は、上記の3種類の特徴量を算出した分割パターン候補から、第1の特徴量が1であるという条件を満たす分割パターン候補を抽出する。つまり、データフィールドの値が、受信ログから抽出されたレコードで全て共通する範囲を示す分割パターン候補が抽出される。
 図14に例示されるテーブルは、各行が5バイトのデータフィールドの分割パターン候補が示す領域の開始ビット位置(Index)、各列がその領域のビット長(Length)を表している。セル内には、ステップS13で算出された各特徴量が、第1の特徴量、第2の特徴量、第3の特徴量、つまり値のパターン数、変化の発生頻度,変化量の分散の順に含まれている。なお、データフィールド内で生じない開始ビット位置とビット長との組み合わせを示すセルには斜線がかけられている。また、一部のセルについては特徴量の値又は組み合わせ有無の記載を省略して「…」としている。
 この例の場合にステップS141において抽出される分割パターン候補は、領域(29,1)、(29,2)、(29,3)、(29,4)、(30,1)、(30,2)、(30,3)、(31,1)、(31,2)、(32,1)を示す分割パターン候補である。
 (ステップS142)ペイロード分割部140は、抽出した分割パターン候補からさらに所定の条件に照らして絞り込む。具体的には、抽出した分割パターン候補に含まれる1の分割パターン候補が示す領域全体が他の分割パターン候補が示す領域に含まれる場合、この1の分割パターン候補を除外する。これにより、連続するビットからなる固定値の領域の一部のみを示す分割パターン候補が除かれる。
 (ステップS143)ペイロード分割部140は、残る分割パターン候補を、固定値のカテゴリに属するフィールドの領域を示す分割パターンとして選択する。上記の例では、ステップS142の実行の結果、領域(29,4)を示す分割パターン候補が残るため、この分割パターン候補が固定値のカテゴリに属するフィールドの領域として選択される。
 (ステップS144)ペイロード分割部140は、ステップS143で選択した分割パターン候補と重なる、つまり、選択した分割パターン候補に含まれるビットを含む他の分割パターン候補を削除する。
 ステップS143で領域(29,4)を示す分割パターン候補が選択されたこの例では、5バイト長のデータフィールドの29ビット目から32ビット目のうちのいずれかのビットを含む分割パターン候補がステップS144で削除される。より具体的には、開始ビット位置が1でありビット長が29~40の分割パターン候補、開始ビット位置が2でありビット長が28~39の分割パターン候補はいずれも削除される。また、開始ビット位置が29~32である分割パターンも全て削除される。残る分割パターン候補が、上述の第1のペイロード分割パターン候補に該当する。
 (ステップS145)ペイロード分割部140は、固定値のフィールドの領域を示す分割パターンを選択した結果を出力する。この例では、ペイロード分割部140は、開始ビット位置が29でビット長が4のフィールドが固定値のカテゴリに属するフィールドであることを監視ECU100のメモリに書き込む等してステップS14を終了する。
 <1.13 カウンタのフィールド>
 図15は、ペイロード分割部140による、ステップS15でのカウンタのフィールドの抽出処理例のフローチャートである。
 (ステップS151)まず、ペイロード分割部140は、上記の第1のペイロード分割パターン候補から、第1の特徴量が2^(分割パターンのビット長)又はステップS11で受信ログから抽出したレコードの数と一致する分割パターン候補を抽出する。つまり、ステップS11で抽出したレコード中に、各分割パターン候補のビット長で表すことのできる全ての値が表れたもの、又は全レコードの値が異なるものを抽出する。
 (ステップS152)ペイロード分割部140は受信ログ保持部190を参照し、抽出した分割パターン候補が示す領域の値を全て抽出する。そして抽出したフィールドの値が受信順で通してインクリメントしている分割パターン候補、又はオーバーフロー時に値が0に戻っている、つまり2進数表現で全桁の値が1の領域がその次のレコードで全桁の値が0であった領域の分割パターン候補を、ステップS151で抽出した分割パターン候補から抽出する。
 (ステップS153)ペイロード分割部140は、ステップS152で抽出した分割パターンのうち、他の分割パターンの候補と重なっていないものを、カウンタのカテゴリに属するフィールドの領域を示す分割パターンとして選択する。
 (ステップS154)ペイロード分割部140は、ステップS152で抽出した分割パターンであって他の分割パターン候補と重なるもののうち、他の分割パターン候補の一部であるものを除いて、カウンタのカテゴリに属するフィールドの領域を示す分割パターンとしてさらに選択する。これは、値がインクリメントしているビット列で最も長いものをひとつのカウンタのフィールドとして見つけるために行われるステップである。
 (ステップS155)ペイロード分割部140は、ステップS153及びS154で選択した分割パターン候補と重なる、つまり、選択した分割パターン候補に含まれるビットを含む他の分割パターン候補を削除する。ステップS155は、ステップS144と同様のステップであるため詳細な説明を省略する。ステップS155の結果なお残る分割パターン候補が、上述の第2のペイロード分割パターン候補に該当する。
 (ステップS156)ペイロード分割部140は、カウンタのフィールドの領域を示す分割パターンを選択した結果を出力して、ステップS15を終了する。
 なお、カウンタフィールド抽出方法の変形例として、インクリメントは1ずつ増加でも、2ずつ増加でもよい、常に増加されていればどのような値で増加してもよい。さらにデクリメントされるカウンタを抽出してもよい。同様にデクリメントは1ずつ減少でも、2ずつ減少してもよく、常に減少されていればどのような値で減少していてもよい。
 また、ステップS151では、全てのレコードで値が変化している分割パターンを示す分割パターン候補が抽出されてもよく、第2の特徴量に基づいて、つまり第2の特徴量が1の分割パターン候補が抽出されてもよい。
 <1.14 連続値のフィールド>
 図16及び図17は、ペイロード分割部140による、ステップS16での連続値のフィールドの抽出処理例のフローチャートである。また、図18A及び図18Bは、この処理を説明するための例を示す図である。
 ここで、第2のペイロード分割パターン候補、つまり連続値のフィールドの抽出処理を始める時点で残っている分割パターン候補は、連続値、チェックサム、又はステータスのいずれかのカテゴリに属する。これらの各種フィールドの中で、連続値のフィールドは、他のカテゴリに属する同一ビット長の分割パターン候補に比べて値の変化量の分散(第3の特徴量)が小さいと考えられる。以下、その理由について説明する。
 チェックサム又はフラグは取り得る値が離散的であり、フィールドの上位ビットが下位ビットと独立して変化するため、値の変化量にはバラつきが生じやすい。したがって、フィールドの値の変化量の分散が大きくなる。一方、連続値は、値の変化が連続的であり、フィールドの下位ビットの変化した結果のキャリーが上位ビットの変化として現れるため、値の変化量は一定の範囲内に収まる。したがって、フィールドの値の変化量の分散が小さくなる。
 また、ひとつの分割パターン候補が示す領域の中で上位部分が連続値であって下位部分が連続値以外である場合、下位部分内で各ビットの値が独立に変化しても、上位部分の値の変化量が支配的であるため、領域全体での変化量のバラつきは抑えられてフィールドの値の変化量の分散が小さくなる。
 また、連続値フィールドの最上位ビット以外を開始ビット位置として示す分割パターン候補については、値の変化時にオーバーフロー又はアンダーフローが発生して大きな値からに小さな値に、又は小さな値から大きな値に急激に変化するため、値の変化量にバラつきが生じてその分散が大きくなる。
 なお、カウンタのフィールドは第2のペイロード分割パターン候補に含まれないため、連続値のフィールドの最上位ビットから始まる領域を示す分割パターン候補ではオーバーフローもアンダーフローも生じない。
 このような考えに基づき、第2のペイロード分割パターン候補つまり、連続値のフィールドの抽出処理を始める時点で残っている分割パターン候補の中で、領域の値の変化の分散が比較的小さい分割パターン候補を見つけることで連続値のフィールドの領域を示す分割パターン候補を絞り込む。
 連続値のフィールドの抽出処理は、図16に示されるフィールドの開始ビット位置の特定の処理と、図17に示されるフィールドのビット長の特定の処理との2つの部分に大きく分けられる。
 まず、フィールドの開始ビット位置の特定について、図16、図18A及び図18Bを用いて説明する。
 (ステップS161)各分割パターン候補について、開始ビット位置に拘わらず同一のビット長を持つ他の分割パターン候補と比較しての、第3の特徴量、つまり変化量の分散の外れ具合を示す外れ値スコアを算出する。この工程については、図18A及び図18Bに示される具体的な例を用いて説明する。
 図18Aのテーブルでは、各分割パターン候補の開始ビット位置が行に、ビット長が列に示され、セル内には各分割パターン候補についてステップS13で算出された変化量の分散(第3の特徴量)が記載されている。なお、このテーブルの第3の特徴量の値を含むセルは、図14に示されるテーブルからステップS14及びS15を経て他のカテゴリ(すなわち、固定値又はカウンタ)のフィールドの領域を示すと判断された分割パターン候補が削除されたものであり、見やすさのために第1の特徴量及び第2の特徴量の記載を省略している。ペイロード分割部140は、このようなデータに対してステップS161の処理を開始する。
 図18Aのテーブルを参照すると、例えば開始ビット位置が11で、フィールド長が1である分割パターン候補は、変化量の分散が1である。同様に、開始ビット位置が11で、ビット長が2、8、13、14の分割パターン候補については、変化量の分散はそれぞれ1、10、100、100である。開始ビット位置が12であり、ビット長がそれぞれ1、2、8、13の分割パターン候補の変化量の分散は、それぞれ1、2、15、150である。また、開始ビット位置が12でビット長が14である分割パターン候補は、25ビット目が既に固定値あるいはカウンタのフィールドであると判断されているためステップS14又はS15で既に削除され、第2のペイロード分割パターン候補に含まれていない。他の×が付されたセルが示す分割パターン候補についても同様である。開始ビット位置が23であってビット長が1、2である分割パターン候補の変化量の分散はそれぞれ1、2であり、開始ビット位置が24であってビット長が1である分割パターン候補の変化量の分散は1である。
 また、最後の行には、ステップS161の処理の中でペイロード分割部140が算出する同一のビット長の分割パターン候補ごとの変化量の分散の平均値が記載されている。つまり、ビット長1、2、8、13、14の分割パターン候補の変化量の分散の平均は、それぞれ1、1、80、125、100である。
 次にペイロード分割部140は、図18Aのテーブルに示される各分割パターン候補の第3の特徴量が、同一ビット長の分割パターン候補の第3の特徴量の中でどれほど外れた値であるかを示す外れ値スコアを算出する。ペイロード分割部140は、統計学的又は機械学習的な手法を用いてこの外れ値スコアを算出することができる。例えば各分割パターン候補の第3の特徴量が正規分布に従うと仮定して、第3の特徴量の発生頻度に基づいて算出してもよいし、K近傍法又はLocal Outlier Factor等の外れ値検出アルゴリズムが用いられてもよい。
 ここでは、各分割パターン候補の第3の特徴量の発生頻度pが各ビット長で正規分布に従うとしたときに、発生確率の低さをスコア化する例を示す。pは、同一ビット長における分散の平均mと、分散vとをそれぞれ平均、分散とする正規分布の確率密度関数とする。ここで、分割パターン候補の第3の特徴量をF2とすると、以下の式1によりpを算出できる。
 p(F2)={1/(2πv)^(1/2)}exp{-(F2-m)^2/2v}・・・(式1)
 ペイロード分割部140が求める平均は、分割パターン候補の中で同一ビット長の分割パターン候補の第3の特徴量の平均であり、分散は、さきに求めたこの平均を用いて求めることができる。スコアは-Log(p)で算出する。図18Bのテーブルの各セルは、このように算出されたスコアを含む。
 図18Bを参照すると、開始ビット位置が11であり、ビット長が1、2、8、13の分割パターンの外れ値スコアは、それぞれ0、1、4、2である。ただし、ビット長14に関しては、他の分割パターン候補の中にビット長が14である分割パターンが存在しないため、外れ値スコアを算出していない。
 また、外れ値スコアは平均との差が大きい程大きな値をとる。ビット長8の場合を例にとると、分散の平均は80であり、変化量の分散の平均が10である開始ビット位置11の分割パターン候補の外れ値スコアは4であり、変化量の分散の平均が15である開始ビット位置12の分割パターン候補の外れ値スコアである3よりも大きい。
 なお、ペイロード分割部140は、算出した外れ値スコアがビット長によって異なる指標となる場合は、正規化するなどして同じ指標にそろえてもよい。
 (ステップS162)ペイロード分割部140は、分割パターン候補の開始ビット位置ごとに、ステップS161で求めた外れ値スコアの平均(以下、平均スコアという)を算出する。図18Bの例では、開始ビット位置が11であり、ビット長が1から13(図内で表記を省略したスコアも含む)の分割パターン候補の平均スコアは4である。同様に、開始ビット位置が12であり、ビット長が1、2、8、13である分割パターンの外れ値スコアは0、1、3、2であり、ビット長が1から13の平均スコアは2である。開始ビット位置が23であり、ビット長が1、2である分割パターンの外れ値スコアは、それぞれ0、0であり、平均スコアは0である。開始ビット位置が24で、ビット長が1である分割パターンの外れ値スコアは0であり、平均スコアは0である。
 なお、この例では、ビット長が1の分割パターン候補をステップS16におけるペイロード分割部140の処理の対象として説明しているが、連続値のフィールドの最小ビット長をあらかじめ定め、より短い分割パターン候補をあらかじめ処理対象から除外してもよい。処理速度及び分割の精度の観点から効果的である。
 (ステップS163)ペイロード分割部140は、ステップS162で算出した平均スコアが所定の閾値以上であるという条件を満たす開始ビット位置が存在するかを確認する。条件を満たす開始ビット位置が存在しない場合(NOの場合)はステップS16を終了し、存在する場合はこのステップS164へ進む。
 (ステップS164)ステップS163の条件を満たす開始ビット位置を、連続値のフィールドの開始ビット位置として特定する。ペイロード分割部140は、図17に示される以降のステップで連続値のフィールドのビット長を特定する。
 (ステップS165)ペイロード分割部140は、ステップS163の条件を満たす開始ビット位置を示す分割パターン候補から、所定の値のビット長をさらに示す分割パターン候補を抽出する。ここでの所定の値とは、連続値のフィールドは、例えばセンサで測定された物理量などの情報を通知するために用いられるビット長を少なくとも持つという仮定に基づいて定められ、例えば4である。
 (ステップS166)ペイロード分割部140は、ステップS165で抽出した分割パターン候補が表す(Index,Length)に対し、同一の開始ビット位置でさらに長い分割パターン候補が連続値の値を含むフィールドであるか否か判定する。ペイロード分割部140は、2つの条件を用いてこの判定を行う。
 条件のひとつは、分割パターン候補(Index+Length,1)の第2の特徴量、つまり値の変化の発生頻度が、分割パターン(Index+Length-1,1)の第2の特徴量より大きいことである。つまり、ステップS165で抽出した分割パターン候補の最下位側にある隣のビットの値が、この分割パターン候補の最下位ビットの値よりも高頻度で変化していることを条件としている。この条件を以下では条件1という。
 もうひとつの条件は、(Index,Length+1)の領域を示す分割パターン候補が未決定であることである。つまり、ステップS165で抽出した分割パターン候補と同一の開始ビット位置で1ビット長い領域を示す分割パターン候補についてカテゴリが未決定であることをもうひとつの条件としている。この条件を以下では条件2という。
 条件1及び条件2が満たされている場合(YESの場合)、ペイロード分割部140はステップS167へ進み、それ以外の場合(NOの場合)、ペイロード分割部140はステップS168へ進む。
 (ステップS167)ペイロード分割部140は、Lengthの値をインクリメントする。その後、再びステップS166を実行する。
 ステップS166とS167によって、より長いビット数の領域でも連続値が表されているかが判定され、連続値を表す極力長いビット長が特定される。
 ステップS166の条件が満たされなかった場合、ペイロード分割部140は、ステップS168に進む。
 (ステップS168)ペイロード分割部140は、ステップS164までに決定した開始ビット位置を示し、ステップS166で特定されたビット長を示す分割パターン候補を連続値を表す分割パターンとして選択する。また、選択した分割パターン候補に含まれるビットを含む他の分割パターン候補を削除する。また、ペイロード分割部140は、連続値のフィールドの領域を示す分割パターンを選択した結果を出力して、ステップS163に戻る。所定の条件を満たす他の開始ビット位置の分割パターン候補がさらに有るかを確認するためである。ステップS163の結果なお残る分割パターン候補が、上述の第3のペイロード分割パターン候補に該当する。
 図17に示す連続値のフィールドのビット長の特定の処理について、具体的な例を用いて説明する。この例では、ステップS164で開始ビット位置は11と特定され、ステップS165でのビット長を示す所定の値が4である場合を想定している。つまり、ステップS165で抽出される分割パターン候補が示す領域の(Index,Length)は、(11,4)である。また、ステップS13で算出された第2の特徴量の抜粋を図19に示す。図19に示されるテーブルもまた、図14に示されるテーブル内のデータの一部であると言える。
 この例において、ステップS166では、領域(11,4)の最下位ビットとこの領域の最下位ビットの隣に位置するビットとの間で値の変化の発生頻度が比較される。つまり、15ビット目の1ビット(つまり領域(15,1))の第2の特徴量と16ビット目の1ビット(つまり領域(16,1))の第2の特徴量とが比較される。図19を参照すると、領域(15,1)の第2の特徴量は0.25であり、領域(16,1)の第2の特徴量は0.28である。したがって、条件1は満たされる。
 ステップS166においてさらに、領域(11,4)よりもビット長が1ビット長い領域、つまり領域(11,5)について、カテゴリが決定されているか否か判定される。説明の都合上、この例では、この領域についてはカテゴリが未決定であった、つまり条件2も満たされると想定する(ステップS166でYES)。したがって、ステップS167において、Lengthの値が増分1でインクリメントされる。
 以下、同様の判定が続き、Lengthは14までインクリメントされたとする。ここで、ステップS166において、領域(11,25)の最下位ビットである領域(24,1)と領域(25,1)との間で値の変化の発生頻度が比較される。図19を参照すると、領域(25,1)の第2の特徴量は0であり、領域(24,1)の第2の特徴量は0.40である。したがって、条件1が満たされないため、ステップS166の判定の結果はNOである。
 このように、ペイロード分割部140は、第2の特徴量及び第3の特徴量に基づいて連続値のフィールドの領域を示す分割パターンの選択を行う。より具体的には、まず、各分割パターン候補の第3の特徴量、つまり変化量の分散が同一ビット長で平均から外れているか否かに基づいて分割パターン候補が抽出される。そして、抽出された分割パターン候補の各ビットを領域として示す分割パターン候補の第2の特徴量、つまり変化の発生頻度の大小関係に基づいて、分割パターン候補が連続値のカテゴリに該当するフィールドの領域を示すか否かが判定される。
 なお連続値のフィールドの領域を示す分割パターン候補の選択の処理のステップは、上述のものに限定されない。
 例えば、ステップS164で特定される開始ビット位置を示す、つまり外れ値スコアが所定の閾値よりも高い分割パターン候補が連続値のフィールドの領域を示す分割パターンとして選択されてもよい。ただし、図17に示されるビット長を特定する処理を行うことで、より高い精度でこの選択を行うことができる。
 その理由のひとつは、ステップS16が実行される段階で残る分割パターン候補が少ないビット長については、偶然高い外れ値スコアであったりするなど信頼性が低い場合があるためである。または上述したように、上位部分が連続値で下位部分が連続値以外である場合にも外れ値スコアが高くなり、誤って一体として連続値のフィールドとして抽出される可能性がある。
 また、ビット長の決定の手法として、ステップS166において、第2の特徴量の比較に代えて又は加えて、第3の特徴量、つまり変化量の分散を比較してもよい。下位ビットの変化量がある程度大きくなければキャリーは発生せず、上位ビットの変化が生じないためである。
 また、さらに別のビット長の決定の手法として、ステップS166において、第2の特徴量の大小関係に代えて又は加えて、第2の特徴量の差分に関する条件がビット長を伸ばすか否かの判定に用いられてもよい。
 <1.15 チェックサムのフィールド>
 図20は、ペイロード分割部140による、ステップS17でのチェックサムのフィールド抽出処理例のフローチャートを示す。
 チェックサムのフィールドは、値の変化がランダムに見え、各値の発生が一様になる可能性が高いことから、第3のペイロード分割パターン候補のうち、第1の特徴量がビット長に対してある程度大きいという条件を満たすと考えられる。加えて、チェックサムのビット長が4ビットや8ビットの長さであることが多いという事前知識も条件に利用して、これらの条件を満たす分割パターン候補をチェックサムのフィールドの領域を示す分割パターンとして選択する。以下、この処理の各ステップを説明する。
 (ステップS171)ペイロード分割部140は、第3のペイロード分割パターン候補から、第1の特徴量が2^(分割パターンのビット長)又はステップS11で受信ログから抽出したレコードの数と一致する分割パターン候補を抽出する。つまり、ステップS11で抽出したレコード中に、各分割パターン候補のビット長で表すことのできる全ての値が表れたもの、又は全レコードの値が異なるものを抽出する。
 (ステップS172)ペイロード分割部140は、ステップS171で抽出した分割パターン候補のうち、ビット長が4ビット又は8ビットである分割パターン候補を抽出する。
 (ステップS173)ペイロード分割部140は、ステップS172で抽出した分割パターン候補のうち、他の分割パターンの候補と重なっていないものを、チェックサムのカテゴリに属するフィールドの領域を示す分割パターンとして選択する。
 (ステップS174)ペイロード分割部140は、ステップS172で抽出した分割パターンであって他の分割パターン候補と重なるもののうち、他の分割パターン候補の一部であるものを除いて、チェックサムのカテゴリに属するフィールドの領域を示す分割パターンとしてさらに選択する。これは、ステップS171及びS172で用いられた条件を満たすビット列で最も長いものをひとつのチェックサムのフィールドとして見つけるために行われるステップである。
 (ステップS175)ペイロード分割部140は、ステップS173及びS174で選択した分割パターン候補と重なる、つまり、選択した分割パターン候補に含まれるビットを含む他の分割パターン候補を削除する。ステップS175は、ステップS144又はS155と同様のステップであるため詳細な説明を省略する。
 (ステップS176)ペイロード分割部140は、チェックサムのフィールドの領域を示す分割パターンを選択した結果を出力して、ステップS17を終了する。
 なお、上記の各ステップでの処理の内容は各種の変形が可能である。例えば上記のステップS171ではステップS151と共通の条件が用いられているが、より緩和した条件であってもよい。例えば第1の特徴量が2^(分割パターンのビット長)又はステップS11で受信ログから抽出したレコードの数の80%以上である、という条件が用いられてもよい。チェックサムのフィールドではカウンタのフィールドに比べて値の変化がパターン数で不規則であり、表れる値には重複が生じて種類数が少ない可能性が高いためである。
 また、ステップS172における4ビット及び8ビットのビット長は例であり、このステップで用いられる条件に含まれるビット長の大きさ及びビット長の個数はこれらに限定されない。また、複数のビット長の分割パターン候補を抽出する場合は、より長いビット長の分割パターン候補が優先して抽出されてもよい。
 <1.16 ステータスのフィールド>
 図21に、ステータスのフィールド抽出処理のフローチャートを示す。
 (ステップS181)ペイロード分割部140は、ステップS17の終了後になお残る分割パターン候補のうち、他の分割パターンの候補と重なっていないものを、ステータスのカテゴリに属するフィールドの領域を示す分割パターンとして選択する。
 (ステップS182)ペイロード分割部140は、ステップS181で抽出した分割パターンであって他の分割パターン候補と重なるもののうち、他の分割パターン候補の一部であるものを除いて、ステータスのカテゴリに属するフィールドの領域を示す分割パターンとしてさらに選択する。これは、ビット列で最も長いものをひとつのステータスのフィールドとして見つけるために行われるステップである。
 (ステップS183)ペイロード分割部140は、ステータスのフィールドの領域を示す分割パターンを選択した結果を出力し、ステップS18を終了する。
 以上で、ペイロード分割部140による、1.11で上述した図11に示されるステップS13からステップS18までを実行することによるデータフィールドの分割処理は終了する。
 これらの一連のステップが、IDが共通の1種類のデータフレームに含まれるデータフィールドに対して実行されると、ペイロード分割部140はステップS12に戻って、未処理の他のIDのデータフレームに含まれるデータフィールドを対象にデータフィールドの分割処理を実行する。
 また、各IDが示す種類のデータフレームに含まれるデータフィールドの分割が完了すると、ステップS143、S156、S168、S176、又はS183で出力された結果(以下、フィールド抽出結果ともいう)が、例えば図7のテーブルに含まれるデータのうち、IDと、データフィールドに関する情報の中の開始、長さ、カテゴリの各情報として監視ECU100のメモリに保持される。
 監視ECU100では、特徴抽出部150がこのフィールド抽出結果の情報を用いてする正常モデルの生成の処理(ステップS9)に移行する。正常モデルは、各フィールドの値の変化の正常範囲を示し、例えばデータフレームの異常判定に用いられる。
 以下、特徴抽出部150による正常モデルを生成する処理について説明する。
 <1.17 特徴抽出部150による処理>
 特徴抽出部150が正常モデルを生成する処理で実行する一連のステップについて、図22に示されるフローチャートを用いて説明する。
 (ステップS21)特徴抽出部150は、ペイロード分割部140から出力されるフィールド分割結果が示すIDのうち、正常モデルを生成していないIDを選択する。
 (ステップS22)特徴抽出部150は、受信ログ保持部190に格納されている受信ログに含まれる、ステップS121で選択したIDのレコードを参照する。
 (ステップS23)特徴抽出部150は、フィールド分割結果及び受信ログのレコードからフィールドごとに振る舞い情報を取得する。なお振る舞い情報の取得の処理については別のフローチャートを用いて後述する。
 (ステップS24)特徴抽出部150は、受信ログのレコードから、当該IDのデータフレームの受信間隔の平均と受信間隔の分散を算出する。
 (ステップS25)特徴抽出部150は、フィールド分割結果と、ステップS23及びS24で得た情報を基に当該IDの正常モデルを生成して出力し、正常モデル保持部191に格納する。
 (ステップS26)特徴抽出部150は、全てのIDに対して正常モデルを生成したかを確認する。全てのIDに対して正常モデルが生成済みであれば(YESの場合)、ステップS9を終了する。そうでない場合(NOの場合)はステップS21に戻る。
 図23は、特徴抽出部150がステップS23で実行する振る舞い情報の取得の処理例のフローチャートである。
 (ステップS231)特徴抽出部150は、フィールド分割結果が示すフィールドのカテゴリに、振る舞い情報の取得対象のカテゴリに属するフィールドで未処理のものが含まれるかを確認する。振る舞い情報の取得対象のカテゴリとは、固定値、連続値、及びステータスである。振る舞い情報の取得対象のカテゴリで未処理のフィールドが存在しない場合(NOの場合)、特徴抽出部150はステップS23を終了する。振る舞い情報の取得対象のカテゴリで未処理のフィールドが存在する場合(YESの場合)、特徴抽出部150はステップS232に進む。
 (ステップS232)特徴抽出部150は、受信ログ保持部190に格納されている受信ログから、ステップS231で確認した振る舞い情報の取得対象のカテゴリで未処理のフィールドの値を抽出する。
 (ステップS233)特徴抽出部150は、当該フィールドのカテゴリが固定値であるかを確認する。当該フィールドのカテゴリが固定値である場合(YESの場合)、特徴抽出部150はステップS234に進む。そうでない場合(NOの場合)、特徴抽出部150はステップS235に進む。
 (ステップS234)特徴抽出部150は、抽出したフィールドの値を振る舞い情報として抽出して取得し、ステップS231に戻る。
 (ステップS235)特徴抽出部150は、当該フィールドのカテゴリが連続値であるかを確認する。当該フィールドのカテゴリが連続値である場合(YESの場合)、特徴抽出部150はステップS236に進む。そうでない場合(NOの場合)、特徴抽出部150はステップS237に進む。
 (ステップS236)特徴抽出部150は、抽出したフィールドの値の変化量の平均及び分散を振る舞い情報として抽出して取得し、ステップS231に戻る。この変化量の平均及び分散は、ステップS13でこのフィールドの領域を示す分割パターン候補について算出された第3の特徴量であるが、このステップで特徴抽出部150によってあらためて算出されてもよい。
 (ステップS237)特徴抽出部150は、抽出したフィールドの値の変化の発生頻度を振る舞い情報として抽出して取得し、ステップS231に戻る。この変化量の平均及び分散は、ステップS13でこのフィールドの領域を示す分割パターン候補について算出された第3の特徴量であるが、このステップで特徴抽出部150によってあらためて算出されてもよい。
 <1.18 特徴抽出部150の動作例>
 図24は、特徴抽出部150の図23に示すフローチャートの処理を実行する動作の一部を説明するための例を示す図である。
 図24を参照すると、特徴抽出部150は、ペイロード分割部140から出力されたフィールド分割結果に、振る舞い情報の取得対象のカテゴリに属するフィールドで未処理のものが含まれるかを確認する(ステップS231)。この例では、確認の結果、連続値のカテゴリが含まれていると判定されている。
 次に特徴抽出部150は、受信ログ保持部190に格納されている受信ログから、ステップS231で存在を確認したカテゴリのフィールドの値を取得する(ステップS232)。この例では、開始ビット位置が11で、ビット長が14のフィールドの値を取得している。この例での当該フィールドのカテゴリは連続値なので(ステップS233、S235)、特徴抽出部150はフィールドの値の変化量の平均及び分散を取得することで振る舞い情報を抽出する(ステップS236)。カテゴリが固定値であればステップS232で取得したフィールドの値そのもの、ステータスであれば、フィールドの値の変化の発生頻度が取得される。
 また特徴抽出部150は、同一IDのデータフレームの受信間隔に関する統計情報(受信間隔平均、分散)をあわせて算出して取得する。このように取得した情報とフィールド分割結果を用いて、特徴抽出部150は、図7に例示したような正常モデルを生成して(ステップS25)出力し、正常モデル保持部191に格納する。
 <1.19 異常検知部160の処理フローチャート>
 異常検知部160が正常モデルを用いてする異常検知処理(図8のステップS4)で実行する一連のステップについて、図25に示されるフローチャートを用いて説明する。
 (ステップS31)異常検知部160は、バス300から受信したデータフレームのIDに関して、正常モデル保持部191に格納されている対応する正常モデルを参照する。
 (ステップS32)異常検知部160は、受信したデータフレームのIDに関して、受信ログ保持部190に格納されている対応する受信ログを参照する。
 (ステップS33)異常検知部160は、正常モデルに含まれる各フィールドの振る舞いモデルを用いて、参照する受信ログ中のレコードに含まれるデータフィールドを検証する。振る舞いモデルに基づく検証の処理については、別のフローチャートを用いて後述する。
 (ステップS34)検証の結果異常が検知された場合(YESの場合)異常検知部160は、ステップS35に進み、そうでない場合(NOの場合)は異常検知処理を終了する。
 (ステップS35)異常検知部160は、他のECUに異常を通報するためのデータフレームの生成をフレーム生成部170に要求して、異常検知処理を終了する。
 図26は、異常検知部160がステップ33で実行する振る舞いモデルに基づく検証の処理例のフローチャートである。
 (ステップS3301)異常検知部160は、受信したデータフレームに関して、データフィールドに未検証のフィールドが存在するかを判断する。未検証のフィールドが存在しない、つまりすべてのフィールドの検証が完了している場合(NOの場合)はステップS33を終了する。未検証のフィールドが存在する場合(YESの場合)はS3302に進む。
 (ステップS3302)異常検知部160は、受信ログ保持部190に格納されている受信ログから次にチェックするフィールドの値を抽出し、当該フィールドに関しては検証済みとする。
 (ステップS3303)異常検知部160は、抽出したフィールドのカテゴリが固定値か否かを判断する。固定値の場合(YESの場合)、異常検知部160はステップS3304に進む。固定値でない場合(NOの場合)、異常検知部160はS3305に進む。
 (ステップS3304)異常検知部160は、抽出したフィールドの値が正常モデル保持部191に格納されている正常モデルの振る舞い情報の値と等しいかを確認する。正常モデルの振る舞い情報の値と等しい場合(YESの場合)、異常検知部160は、ステップS3301に戻る。そうでない場合(NOの場合)、異常検知部160はステップS3311に進む。
 (ステップS3305)異常検知部160は、抽出したフィールドのカテゴリがカウンタであるか否かを判断する。カウンタである場合(YESの場合)、異常検知部160はステップS3306に進む。カウンタでない場合(NOの場合)、異常検知部160はステップS3307に進む。
 (ステップS3306)異常検知部160は、抽出したフィールドの値が、時系列順にインクリメントされているか否かを判断する。時系列順にインクリメントされている場合(YESの場合)、異常検知部160はステップS3301に戻る。そうでない場合(NOの場合)、異常検知部160はステップS3311に進む。
 (ステップS3307)異常検知部160は、抽出したフィールドのカテゴリが連続値であるか否かを判断する。連続値である場合(YESの場合)、異常検知部160はステップS3308に進む。そうでない場合(NOの場合)、異常検知部160はステップS3309を実行する。
 (ステップS3308)異常検知部160は、抽出したフィールドの値の変化量が、正常モデル保持部191に格納されている正常モデルの振る舞い情報に記載の平均に近い値かを判断する。正常モデルの振る舞い情報に記載の平均に近い値である場合(YESの場合)、異常検知部160は、ステップS3301に戻る。そうでない場合(NOの場合)、異常検知部160はステップS3311に進む。
 (ステップS3309)異常検知部160は、抽出したフィールドのカテゴリがステータスであるか否かを判断する。ステータスである場合(YESの場合)はステップS3310に進む。そうでない場合(NOの場合)、異常検知部160はステップS3301に進む。
 (ステップS3310)異常検知部160は、抽出したフィールドの値の変化の発生頻度が正常モデル保持部191に格納されている正常モデルの振る舞い情報に示される変化の発生頻度と近いかを判断する。正常モデルの振る舞い情報記載の変化の発生頻度と近い場合(YESの場合)、異常検知部160はステップS3301に戻る。そうでない場合(NOの場合)、異常検知部160はステップS3311に進む。
 (ステップS3311)異常検知部160は、異常を検知したとして、不正なフィールドのカテゴリを次のステップへ通知して、振る舞いモデルに基づく検証の処理を終了する(ステップS34を実行する)。
 なお、正常モデルに含まれるデータフレームの受信間隔の平均及び分散に基づく検証は図25又は図26のフローチャートには含まれていないが、異常検知部160によって別途行われる。異常検知部160は、例えば、図25に示される異常検知処理のステップS33の前に、該当のIDを持つデータフレーム間の受信間隔の異常の有無又は可能性の高さについての判定を実行し、異常のあるもの又は異常の可能性が高いデータフレームのデータフィールドをステップS33での検証の対象としてもよい。
 以下、車載ネットワーク10に異常なデータフレームを送出する不正ECUが接続されている場合に、上述の構成要素を含む監視ECU100が異常を検知する動作について、具体例を用いて説明する。
 <1.20 異常検知部160の動作例1>
 図27に、異常検知部160の動作の一例を示す。この例及び以下の例では、監視ECU100は、図7に示される正常モデルを正常モデル保持部191に保持していると想定する。
 図27を参照すると、ECU200aは、車速を示すフィールドを含むIDが0x100のデータフレームをバス300に定期的に送信している。しかし、不正なECUが、IDが0x100のデータフレームをバス300に送信する。
 監視ECU100は、データフレームを受信するたびに、正常モデル保持部191に格納されている正常モデルと、受信ログ保持部190に格納されている受信ログとを参照することで、データフィールドの値が正常モデルから逸脱しているか判断する(ステップS33)。なお、図27から図29では、5バイトのデータフィールドの値を16進数で示している。
 受信した最初の3つのデータフレームには、データフィールドの値が正常モデルに適合するため、異常なしと判定される。しかし4番目に受信したデータフレームについては、正常モデルに示される開始ビット位置が29で、データ長が4のフィールドは固定値であり、値が0であることに適合しないことに基づいて、固定値のフィールドの異常として検知する(ステップS3303でYES、S3304で下線付「1」に対してNO、S3311)。
 また、5番目に受信したデータフレームに関しては、直前に受信した不正ECUから送信されたデータフレームの影響で、開始ビット位置1で、ビット長が8であるカウンタフィールドの値がインクリメントされていないという判定により異常を検知する(ステップS3305でYES、S3306で下線付「3」に対してNO、S3311)。異常を検知したことを通知するために、異常が検知されたデータフレームのID及び異常が検知されたフィールドのカテゴリに基づく情報を(固定値のフィールドでの異常及びカウンタのフィールドでの異常)フレーム生成部170を通知して、他のECUに異常の発生を通報するためのメッセージの生成を要求する(ステップS35)。
 なお、監視ECU100では、データフレームに異常を検知した場合に、このデータフレームのレコードが受信ログから削除されてもよい。
 <1.21 異常検知部160の動作例2>
 図28に、異常検知部160の動作の他の例を示す。この例では、不正ECUが送信するデータフレーム以外は図27が示す状況と同様の状況であると想定する。
 この例では、不正ECUは、正常なデータフレームがECU200aから送信された直後に、異常を含むデータフレームを送信する。監視ECU100は、所定時間幅内で順次受信した複数個のデータフレームにおいて、開始ビット位置が26でビット長が3のステータスフィールドの変化の発生頻度が、正常モデルが示す0.0001からかけ離れていることに基づいて異常を検知する(ステップS3309でYES、S3310で下線付の値の変化の発生に対してNO、S3311)。
 なお、図27の例と同様のカウンタのフィールドでの異常も検知されるが、この例では説明を省略する。
 <1.22 異常検知部160の動作例3>
 図29に、異常検知部160の動作例を示す。この例では、ECU200aが送信するデータフレーム及び不正ECUが送信するデータフレーム以外は、図27及び図28が示す状況と同様の状況であると想定する。
 不正ECUは、ECU200aからIDが0x100のデータフレームが3個送信された後に、IDが0x100の異常を含むデータフレームを送信している。このデータフレームを受信した監視ECU100は、開始ビット位置が11でビット長が14の連続値のフィールドの振る舞い情報として、変化量の平均が10、の分散が100であることに照らして、受信ログから抽出した当該フィールドの直前に受信されたデータフレームからの変化量が481(0x157C-0x139B=0x1E1)と大きく異なることに基づいて異常を検知する(ステップS3307でYES、S3308で下線付の値の変化量に対してNO、S3311)。
 なお、図27の例と同様のカウンタのフィールドでの異常も検知されるが、この例では説明を省略する。
 <1.23 効果>
 本実施の形態では、監視ECU100は、車載ネットワークを流れるデータフレームを監視し、統計的に得られる特徴量に基づいてデータフレームに含まれるデータフィールドを意味のあるビット列のまとまりであるフィールドに分割する。また監視ECU100は、分割によって得た各フィールドでの異常の検知に用いられる正常モデルを生成する。さらに監視ECU100は、正常モデルを用いての異常の検知を実行して車載ネットワーク内の不正を検知することができる。
 このような監視ECU100は、仕様の異なる車載ネットワークシステムであっても事前の個別の設計を必要としないため、コストを抑えた車載ネットワークの保護を可能にするとなる。
 <2. 変形例>
 なお、本開示を上記実施の形態に基づいて説明してきたが、本開示は上記実施の形態に限定されず、以下のような構成も本開示の技術的範囲に含まれる。
 (1)上記実施の形態では、フィールド分割部と、特徴抽出部と、不正検知部とは監視ECUの構成要素として説明したが、同一の装置に全ての構成要素を保持する必要は無い。例えば、フィールド分割部と特徴抽出部は、車外のクラウドサーバの構成要素としてもよく、クラウドサーバは、車載ネットワークシステムが接続可能な携帯電話網等の無線通信網を通じて受信する車載ネットワークシステムに流れるデータフレームをフィールドに分割し、正常モデルを生成する。そして監視ECUは、クラウドサーバからダウンロードするこの正常モデルを用いて不正検知処理を実行してもよい。この場合に監視ECUは動作判断部を持たなくてもよく、常に異常検知処理を行えばよい。これにより監視ECUは異常検知部のみを持てばよく、実装が容易になる。
 また、監視ECUにおいてデータフィールドの分割、正常モデルの生成、及び異常検知の処理が行われているが、本開示は例えばこれらのうちデータフィールドの分割のみ、又は正常モデルの生成までを実行する情報処理装置、情報処理方法、又はプログラム等としても実現可能である。このような情報処理装置等は、例えばネットワークの監視装置の開発のために適用可能である。
 (2)上記実施の形態では、車載ネットワークのデータフレームを一定期間収集した受信ログから、正常モデルを生成したが、正常モデルを生成するために、必ずしも車載ネットワークからデータフレームを一定期間にわたって収集する必要はない。例えば、過去に収集したログを入力として正常モデルを生成してもよい。また複数のログに対して、それぞれ正常モデルを生成し、多数決や、平均をとることによって、複数の正常モデルをマージした結果を最終的な正常モデルとしてもよい。これにより、ネットワークの監視の開始前に、必ずしも一定期間のデータフレームの収集を必要とせず、不正検知処理を多くの自動車で早期に実現したい場合に効果的である。
 (3)上記実施の形態では、異常を検知した場合のアクションとして、異常の通報のために、異常が検知されたデータフレームのIDと、異常が検知されたフィールドの種類を含むメッセージ、つまりデータフレーム送信する例を示したが、異常検知後のアクションはこれに限らない。例えば、異常を検知した時点で、監視ECUがエラーフレームを送信することで、異常が検知されたフィールドを含むデータフレームを無効としてもよい。このとき監視ECUでは、データフレームの受信中に図25に示される異常検知処理が行われる。また車載ネットワーク上のゲートウェイECUに監視ECUの機能を追加することで、異常が検知されたデータフレームを転送しない対応をとってもよい。または、異常が検知されたデータフレームと同種、つまり共通のIDのデータフレームの転送を停止してもよい。これはゲートウェイECUを監視ECUとして用いて本開示を実現したい場合に効果的であり、さらに、多数の車載ネットワークの情報を監視できることから、実現できる機能の幅も広がり効果的である。
 また、異常が発生したことをユーザに通知してもよいし、車両をフェールセーフモードに移行させてもよいし、発生した異常をログに残してもよいし、発生した異常について、携帯電話網などを通じてクラウドサーバに送信してもよい。これにより、異常検知後の柔軟な対応が可能となる。例えばクラウドサーバから、異常が検知された車載ネットワークシステムと同型又は同バージョンの車載ネットワーク、又は共通するECUを含む車載ネットワークにこの異常に関する情報が提供されてもよい。
 (4)上記実施の形態では、標準フォーマットのIDにおける例を示したが、拡張フォーマットのIDであってもよい。
 (5)上記実施の形態では、動作モードは、1時間の収集モード後に正常モデルの生成を行ったが、1時間より短くてもよいし、長くてもよい。また、時間に拠らず、特徴量を抽出するために十分なログのサイズを規定して、このサイズのログの収集がなされた時点で正常モデルを生成してもよい。また外部インターフェースを備え、ユーザの指示によりモードを切り替えてもよい。例えば、クラウドサーバからの指示によって、モードが切り替わってもよい。これにより、データの収集をより柔軟に行え、監視ECUのリソースに応じて動作することが可能になる。
 (6)上記実施の形態では、データフレームの受信ログと、正常モデルと、車両状態とは1つのIDに対するものであったが、それぞれ1つ以上のIDに対して保持してもよい。
 また、通信の仕様でデータフレームに複数の種類がない場合、又は種類は複数あってもペイロードのデータ構造が共通であることが既知である場合には、受信ログにIDを含めなくてもよい。
 (7)上記実施の形態では、データフレームは平文で流れる例を示したが、暗号化されていてもよい。またデータフレームにメッセージ認証コードを含んでいてもよい。
 (8)上記実施の形態では、正常モデルと受信ログとが平文で保持されている例を示したが、暗号化して保持されていてもよい。
 (9)上記実施の形態では、データフィールド内はビッグエンディアンでデータが格納されている例を示したが、データはリトルエンディアンで格納されていてもよい。
 (10)上記実施の形態では、正常モデルとして、IDごとにデータフレームの受信間隔の平均と、分散を保持している例を示したが、異常検知処理において、実際に受信したデータフレームの受信間隔が、正常モデルに記載の受信間隔の平均から、受信間隔の分散よりも離れている場合にメッセージの異常を検知してもよい。これは、フィールドの値の異常だけでなく、メッセージの時間情報を用いた異常も検知でき、多面的に異常を検知することで、より検知精度を高めることに効果的である。
 また受信ログにはデータフレームの受信時刻が記録されているが、データフレーム間の受信間隔を用いず順序のみを用いて特徴量の抽出が可能であれば、受信時刻は受信ログに含めなくてもよい。受信の順序は、受信ログでのレコードの並び順又は連続番号を用いて示されてもよい。
 また受信間隔平均と、分散の情報を異常検知に用いない場合については、正常モデルにこれらが保持されなくてもよい。
 (11)上記実施の形態では、分割したフィールドを、固定値、カウンタ、連続値、ステータス、チェックサムの5つのカテゴリに分類したが、必ずしもこの5つのカテゴリに分類する必要はない。例えば不正検知に不要なカテゴリのフィールドは正常モデルに含めなくてもよい。
 また、チェックサムのフィールドをメッセージ認証子のフィールドとしてもよい。
 また、これらの5つのカテゴリのすべてを互いに区別しなくてもよい。例えば所定の時間幅内で値の所定の大きさ以下の変化が所定の回数以上見られる領域のフィールドが、1つのカテゴリのフィールドとして扱われてもよい。このようなフィールドは、カウンタ又は連続値が含まれ得るものであり、本変形例における第1カテゴリの例である。別の例として、各種の特徴量から離散値を取る領域のフィールドが1つのカテゴリとして扱われてもよい。このようなフィールドは、チェックサム、又はフラグ若しくは状態を示すステータスの値が含まれ得るものであり、本変形例における第2カテゴリの例である。
 (12)上記実施の形態では、正常モデルの振る舞い情報として、ホワイトリストと、フィールドの値が変化する頻度(変化の発生頻度)と、フィールドの値の変化時の変化量の平均と分散とを保持していたが、これに限るものではない。例えば各特徴量の正常な値の範囲を示す、上限あるいは下限を保持していてもよい。また、フィールドの値の変化時の変化量の最大値と最小値を保持してもよい。また、フィールドの値が変化するときの値の遷移のホワイトリストを保持していてもよい。また、時系列モデルに当てはめたときのパラメータを保持していてもよい。また、受信ログのレコードから、所定時間(例えば1秒間)あたりの値の変化の発生頻度の最大値が算出されて保持されてもよい。これにより、異常正検知処理の方法が増え、より多くの手法で異常を捉えることが可能となる。
 (13)上記実施の形態では、正常モデルの振る舞い情報として、連続値のフィールドに対しては、値の変化時の変化量の平均と分散を保持し、ステータスのフィールドに対しては、フィールドの値が変化する割合を保持していたが、この組み合わせでなくてもよう。
 (14)上記実施の形態では、正常モデルとして、フィールドごとにカテゴリと、振る舞い情報とが保持されていたが、複数のフィールドに対する振る舞い情報を保持してもよい。例えば、データフィールドを分割して得たフィールドに主成分分析や、オートエンコーダなどの次元削減処理を施したデータを正常モデルとして保持していてもよい。これによりフィールド間の関係性を捉えた正常モデルが生成され、単なるフィールドごとの異常検知より有効な場合がある。
 (15)上記実施の形態では、ペイロード分割部におけるチェックサムの抽出条件の1つとして、残った分割パターン候補のうち、フィールドの長さが4ビットまたは8ビットであることが条件として含まれていたが、この値以外でもよい。特にチェックサムフィールドの長さが事前にわかっている場合は、その値に設定すればよい。事前にわからない場合は、よく利用される長さに設定することで、精度よくフィールドを分割できるようになる。
 (16)上記実施の形態では、ペイロード分割部におけるチェックサムの抽出条件の1つとして、抽出したレコード中に、各分割パターン候補のビット長で表すことのできる全ての値が表れたものであることが含まれているが、この条件でなくてもよい。例えば、フィールドがランダムに見えることをチェックしてもよい。この処理はメッセージ認証コードが含まれている場合に、データフィールドを精度よく分割できるようになり効果的である。またチェックサムの計算方法が事前にわかっている場合には、分割パターン候補の値が、チェックサムの計算式から算出される値となっているかを確認することによって、チェックサムのフィールドを抽出してもよい。
 (17)上記の実施の形態では、データフィールドの分割時に、各分割パターンに対して、観測された値の種類数(第1の特徴量)と、観測データ数に対してフィールドの値に変化が発生した頻度(第2の特徴量)と値の変化時の変化量の分散(第3の特徴量)との3種類を算出していたが、この3種類の特徴量を全て算出する必要はない。例えば、固定値のフィールドのみを抽出したいのであれば、第1の特徴量のみを算出すればよく、抽出したいフィールドによって、必要な特徴量を選択して算出すればよい。また上記の特徴量から算出され得る別の特徴量を用いてもよい。例えば、第1の特徴量と、フィールド長から算出される、取りうる値の範囲に対してどれだけ値の種類数が観測されたかという特徴量を用いてもよい。これによりデータフィールドの分割処理を簡素化でき、処理時間やプログラムサイズの観点から効果的となる。
 (18)上記の実施の形態では、データフィールドの分割時に、各分割パターンに対して、データフィールドの値を変換することなく特徴量を算出していたが、データフィールドの値を変換する前処理を行ってもよい。例えば、分割パターンが符号付のフィールドであることを想定して、2の補数変換処理を行った上で特徴を算出してもよい。これは、連続値のフィールドが符号付で表現されていた場合に、精度よくデータフィールドを分割するために効果的である。
 (19)上記の実施の形態では、ペイロード分割部は、分割したデータフィールドの情報を特徴抽出部に通知することで、特徴抽出部が正常モデルを抽出していたが、ペイロード分割部の出力自体を、外部に通知又は内部に保存してもよい。
 (20)上記の実施の形態では、ペイロード分割部は、受信ログに含まれる全てのIDに関して、データフィールドの分割処理を行っていたが、全てのIDに関してデータフィールドの分割処理を行わなくてもよい。例えば、あらかじめ指定されたIDのみに対してデータフィールドの分割処理を行い、その結果を出力してもよい。
 (21)上記の実施の形態では、ペイロード分割部は、データフィールドに対して、全ての分割パターン候補に対して特徴量を抽出することでフィールドを分割していたが、あらかじめ決められた範囲のみに対して、データフィールドの分割処理を行ってもよい。これは、大きなデータフィールドの領域から特徴抽出を高速に行いたい場合に、監視対象を絞ることで、処理の高速化を図ることができる。例えばデータフィールドの上位20ビットに対してのみデータフィールドの分割処理を行ってもよいし、任意の範囲に対して行ってもよい。処理時間の観点から効果的である。
 (22)上記の実施の形態では、値の変化時の変化量の分散を、フィールドの変化の時系列的変化を捉える特徴量として用いたが、これ以外の特徴であっても構わない。例えばフィールドの値の変化量の分布を用いてもよいし、フィールドの値の移動平均を用いた特徴量としてもよい。
 (23)上記の実施の形態では、車載ネットワークとしてCANプロトコルを用いていたが、これに限るものではない。例えば、CAN-FD(CAN with Flexible Data Rate)、FlexRay、Ethernet、LIN(Local Interconnect Network)、MOST(Media Oriented Systems Transport)などを用いてもよい。あるいはこれらのネットワークをサブネットワークとして、組み合わせたネットワークであってもよい。
 (24)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。このRAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。このマイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 (25)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。このRAMには、コンピュータプログラムが記録されている。このマイクロプロセッサが、このコンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
 また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
 また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
 さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
 (26)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたはモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
 (27)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
 また、本開示は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
 また、本開示は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
 また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
 また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号をネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
 (28)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
 本開示は、車載ネットワークを流れるデータフレームを監視し、統計的特徴量に従い、データフレームに含まれるデータフィールドを分割し、分割したフィールドごとに正常なモデルを生成する。また監視ECUは、正常モデルをもとに車載ネットワーク内の不正を検知することができる。これらにより、異なる車載ネットワークシステムであっても、事前の設計を必要とせずに、コストを抑えた車載ネットワークの保護が可能となる。
 10 車載ネットワーク
 100 監視ECU
 110 フレーム送受信部
 120 フレーム収集部
 130 動作判断部
 140 ペイロード分割部
 150 特徴抽出部
 160 異常検知部
 170 フレーム生成部
 180 モード保持部
 190 受信ログ保持部
 191 正常モデル保持部
 200,200a,200b ECU
 201 フレーム送受信部
 202 フレーム処理部
 203 外部機器入出力部
 204 フレーム生成部
 210 速度センサ
 220 ギア
 230 メータ
 300 バス

Claims (13)

  1.  記憶部を備える情報処理システムが行う、1以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理方法であって、
     前記車載ネットワークに流れる複数の前記データフレームを受信し、前記複数のデータフレームのそれぞれから、当該データフレームに含まれ、少なくとも1つのフィールドから構成されるペイロードを取得して前記記憶部に保持される受信ログに1つのレコードとして記録するフレーム収集ステップと、
     複数の前記レコードから、前記複数のデータフレームのペイロード内の互いに異なる領域を示す複数のペイロード分割パターン候補のそれぞれについて、前記領域における前記ペイロードの値の時系列変化に関する1つ以上の特徴量を算出し、前記特徴量に基づいて、前記複数のペイロード分割パターン候補から、前記ペイロード内にあるフィールドの領域を示すペイロード分割パターンを選択し、選択した前記ペイロード分割パターンが示す領域と、前記特徴量に基づく当該フィールドのカテゴリとを示すフィールド抽出結果を出力するフィールド抽出ステップとを含む
     情報処理方法。
  2.  前記受信ログは、前記複数のレコードの受信された順序を示す情報をさらに含み、
     前記特徴量は、
     前記時系列変化のパターン数を表す第1の特徴量と、
     前記時系列変化の発生頻度を表す第2の特徴量と、
     前記時系列変化の変化量に関する統計情報を表す第3の特徴量との少なくとも1つを含む
     請求項1に記載の情報処理方法。
  3.  前記情報処理システムは前記フィールド抽出ステップにおいて、
     前記特徴量に基づいて、前記ペイロードの値に1回以上の時系列変化があり、前記時系列変化に含まれる各回の変化量が所定の大きさ以下である領域を示す前記ペイロード分割パターン候補を、第1カテゴリのフィールドの領域を示す前記ペイロード分割パターンとして選択する
     請求項2に記載の情報処理方法。
  4.  前記特徴量は前記第2の特徴量及び前記第3の特徴量を含み、
     前記情報処理システムは前記フィールド抽出ステップにおいて、
     前記複数のペイロード分割パターン候補から、前記第2の特徴量及び前記第3の特徴量に基づいて、前記ペイロードの値が物理量を示す連続値カテゴリのフィールドの領域を示すペイロード分割パターンとして選択することで、前記第1カテゴリのフィールドを示す前記ペイロード分割パターンを選択する連続値フィールド抽出ステップとを実行する
     請求項2又は3に記載の情報処理方法。
  5.  前記情報処理システムは前記フィールド抽出ステップにおいて、
     前記複数のペイロード分割パターン候補のそれぞれについて、同一のデータ長の領域を示す前記ペイロード分割パターン候補の中での前記第3の特徴量の外れ具合を示す外れ値スコアを算出し、
     前記ペイロード分割パターン候補の中で開始ビットが同一である領域を示す前記ペイロード分割パターン候補の前記外れ値スコアの平均値を算出し、
     前記平均値が所定の閾値以上である領域を示す前記ペイロード分割パターン候補から、当該ペイロード分割パターン候補に含まれるペイロード分割パターン候補の前記第2の特徴量の大小関係に基づいて前記連続値カテゴリに該当するフィールドの領域を示すペイロード分割パターンを選択する
     請求項4に記載の情報処理方法。
  6.  前記情報処理システムは前記フィールド抽出ステップにおいて、
     前記複数のペイロード分割パターン候補から、前記特徴量に基づいて、前記ペイロードの値に毎回変化がある領域であって、当該ペイロードの値の各回の変化量が一定である領域を示すペイロード分割パターンをカウンタカテゴリのフィールドの領域を示すペイロード分割パターンとして選択することで、前記第1カテゴリのフィールドを示す前記ペイロード分割パターンを選択する
     請求項4又は5に記載の情報処理方法。
  7.  前記情報処理システムは前記フィールド抽出ステップにおいて、
     前記特徴量に基づいて、前記ペイロードの値に1回以上の時系列変化があり、前記ペイロードの値が離散値を取る領域を示す前記ペイロード分割パターン候補を、第2カテゴリのフィールドの領域を示す前記ペイロード分割パターンとして選択する
     請求項6に記載の情報処理方法。
  8.  前記第2カテゴリは、
     前記フィールド内の前記ペイロードの値の整合性をチェックするためのチェックサムカテゴリと、
     前記フィールド内の前記ペイロードの値が前記車載ネットワークを含む車両の所定の状態を示すステータスカテゴリとの少なくとも一方である
     請求項7に記載の情報処理方法。
  9.  前記情報処理システムは前記フィールド抽出ステップにおいて、
     固定値フィールド抽出ステップと、
     カウンタフィールド抽出ステップと、
     前記連続値フィールド抽出ステップと、
     第2カテゴリフィールド抽出ステップとを順に実行し、
     前記固定値フィールド抽出ステップでは、前記複数のペイロード分割パターン候補から、前記第1の特徴量が1であるペイロード分割パターン候補を固定値カテゴリのフィールドの領域を示すペイロード分割パターンとして選択し、前記複数のペイロード分割パターン候補から当該選択したペイロード分割パターンと少なくとも一部が重なる前記ペイロード分割パターン候補を除いた残りを第1のペイロード分割パターン候補とし、
     前記カウンタフィールド抽出ステップでは、前記第1のペイロード分割パターン候補から、前記カウンタカテゴリのフィールドの領域を示すペイロード分割パターンを選択し、前記第1のペイロード分割パターン候補から当該選択したペイロード分割パターンと少なくとも一部が重なる前記ペイロード分割パターン候補を除いた残りを第2のペイロード分割パターン候補とし、
     前記連続値フィールド抽出ステップでは、前記第2のペイロード分割パターン候補から、前記第2の特徴量と、前記第3の特徴量と、を用いて、前記第2のペイロード分割パターン候補の中から、前記連続値カテゴリのフィールドの領域を示すペイロード分割パターンを選択し、前記第2のペイロード分割パターン候補から当該選択したペイロード分割パターンと少なくとも一部が重なる前記ペイロード分割パターン候補を除いた残りを第3のペイロード分割パターン候補とし、
     前記第2カテゴリフィールド抽出ステップでは、前記第3のペイロード分割パターン候補を、前記第2カテゴリフィールドとして選択する
     請求項7に記載の情報処理方法。
  10.  さらに前記情報処理システムが実行する、
     前記フィールド抽出結果及び前記受信ログから、前記選択されたペイロード分割パターンが示すフィールドの値の時系列変化の変化量に関する統計情報に基づいて、当該フィールドの値の変化の正常範囲を示す正常モデルを生成し、生成した前記正常モデルをさらに出力する特徴抽出ステップを含む
     請求項1から9のいずれか1項に記載の情報処理方法。
  11.  前記複数のデータフレームのそれぞれは、データフレームの種類を示すデータ種別IDを含み、
     前記情報処理システムは、
     前記フレーム収集ステップにおいて、前記ペイロード及び前記データ種別IDを前記1つのレコードとして前記受信ログに記録し、
     前記フィールド抽出ステップを、前記データ種別IDが共通のデータフレームを対象に実行する
     請求項1から10のいずれか1項に記載の情報処理方法。
  12.  プロセッサ及び記憶部を備え、1以上の電子制御ユニットを含む車載ネットワークに流れるデータフレームを処理する情報処理システムであって、
     前記プロセッサは、
     前記車載ネットワークに流れる複数の前記データフレームを受信し、前記複数のデータフレームのそれぞれから、当該データフレームに含まれ、少なくとも1つのフィールドから構成されるペイロードを取得して前記記憶部に保持される受信ログに1つのレコードとして記録し、
     複数の前記レコードから、前記複数のデータフレームのペイロード内の互いに異なる領域を示す複数のペイロード分割パターン候補のそれぞれについて、前記領域における前記ペイロードの値の時系列変化に関する1つ以上の特徴量を算出し、
     前記特徴量に基づいて、前記複数のペイロード分割パターン候補から、前記ペイロード内にあるフィールドの領域を示すペイロード分割パターンを選択し、
     選択した前記ペイロード分割パターンが示す領域と、前記特徴量に基づく当該フィールドのカテゴリとを示すフィールド抽出結果を出力する
     情報処理システム。
  13.  プロセッサ及び記憶部を備える情報処理システムにおいて、前記プロセッサによって実行されることで前記情報処理システムに請求項1に記載の情報処理方法を実行させるプログラム。
PCT/JP2017/040866 2016-12-06 2017-11-14 情報処理方法、情報処理システム、及びプログラム WO2018105330A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201780003405.2A CN108401491B (zh) 2016-12-06 2017-11-14 信息处理方法、信息处理系统以及程序
JP2018517654A JP6847101B2 (ja) 2016-12-06 2017-11-14 情報処理方法、情報処理システム、及びプログラム
EP17877833.8A EP3554015B1 (en) 2016-12-06 2017-11-14 Information processing method, information processng system, and program
US16/229,528 US10999248B2 (en) 2016-12-06 2018-12-21 Information processing method, information processing system, and non-transitory computer-readable recording medium storing a program
US17/223,772 US11546298B2 (en) 2016-12-06 2021-04-06 Information processing method, information processing system, and non-transitory computer-readable recording medium storing a program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2016-237049 2016-12-06
JP2016237049 2016-12-06
JP2017-209871 2017-10-31
JP2017209871 2017-10-31

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/229,528 Continuation US10999248B2 (en) 2016-12-06 2018-12-21 Information processing method, information processing system, and non-transitory computer-readable recording medium storing a program

Publications (1)

Publication Number Publication Date
WO2018105330A1 true WO2018105330A1 (ja) 2018-06-14

Family

ID=62491193

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/040866 WO2018105330A1 (ja) 2016-12-06 2017-11-14 情報処理方法、情報処理システム、及びプログラム

Country Status (5)

Country Link
US (2) US10999248B2 (ja)
EP (1) EP3554015B1 (ja)
JP (1) JP6847101B2 (ja)
CN (1) CN108401491B (ja)
WO (1) WO2018105330A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020021713A1 (ja) * 2018-07-27 2020-01-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正検知方法および不正検知電子制御装置
JP2020113893A (ja) * 2019-01-11 2020-07-27 富士通株式会社 メッセージ処理装置およびメッセージ処理方法
WO2020203352A1 (ja) * 2019-03-29 2020-10-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知方法及び異常検知装置
JP2021057741A (ja) * 2019-09-30 2021-04-08 富士通株式会社 メッセージの特徴を推定する方法および情報処理装置
WO2021095491A1 (ja) * 2019-11-12 2021-05-20 株式会社オートネットワーク技術研究所 車載中継装置及び情報処理方法
WO2021149537A1 (ja) * 2020-01-21 2021-07-29 株式会社オートネットワーク技術研究所 管理装置、車載装置の識別情報割り当て方法、車載システム、及びデータ構造
JP7444287B2 (ja) 2020-11-19 2024-03-06 日本電信電話株式会社 推定装置、推定方法、および、推定プログラム

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017208547A1 (de) * 2017-05-19 2018-11-22 Robert Bosch Gmbh Verfahren zum Schutz eines Netzwerkes vor einem Cyberangriff
KR102017218B1 (ko) * 2017-10-19 2019-09-02 재단법인 대구경북과학기술원 네트워크 보안 방법 및 장치
US11128400B2 (en) * 2017-12-01 2021-09-21 Nippon Telegraph And Telephone Corporation Bit assignment estimating device, bit assignment estimating method, and program
JP6552674B1 (ja) * 2018-04-27 2019-07-31 三菱電機株式会社 検査システム
EP3807823A1 (en) 2018-06-12 2021-04-21 Intergraph Corporation Artificial intelligence applications for computer-aided dispatch systems
CN117118776A (zh) * 2019-02-08 2023-11-24 松下电器(美国)知识产权公司 异常判定方法、异常判定装置以及程序
US11700270B2 (en) * 2019-02-19 2023-07-11 The Aerospace Corporation Systems and methods for detecting a communication anomaly
US10951649B2 (en) * 2019-04-09 2021-03-16 Arbor Networks, Inc. Statistical automatic detection of malicious packets in DDoS attacks using an encoding scheme associated with payload content
US11194691B2 (en) 2019-05-31 2021-12-07 Gurucul Solutions, Llc Anomaly detection using deep learning models
US11005872B2 (en) * 2019-05-31 2021-05-11 Gurucul Solutions, Llc Anomaly detection in cybersecurity and fraud applications
JP7234832B2 (ja) * 2019-07-03 2023-03-08 株式会社デンソー 電子制御装置
CN112583683B (zh) * 2020-12-29 2021-10-15 中国科学院声学研究所 一种主从式can fd总线应用层通信方法及系统、电子设备
CN114297454B (zh) * 2021-12-30 2023-01-03 医渡云(北京)技术有限公司 特征的离散化方法、装置、电子设备及计算机可读介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8467324B2 (en) * 2010-11-03 2013-06-18 Broadcom Corporation Managing devices within a vehicular communication network
AU2012296587B2 (en) * 2011-08-15 2016-04-21 Jonathan William Roleder Container assembly with improved retainer assembly and flavor inserts for aging a liquid
JP5664799B2 (ja) 2011-12-22 2015-02-04 トヨタ自動車株式会社 通信システム及び通信方法
US9819589B2 (en) * 2013-09-27 2017-11-14 Nxp Usa, Inc. CAN FD end-of-frame detector, CAN bit stream processing device, method for detecting the end of a CAN FD frame, and method of operating a CAN bit stream processor
JP5880898B2 (ja) * 2014-05-08 2016-03-09 パナソニックIpマネジメント株式会社 送信装置
JP6398567B2 (ja) * 2014-10-07 2018-10-03 株式会社デンソー 車両の遠隔制御に用いられる命令判定装置および命令判定装置用のプログラム
JP6594732B2 (ja) * 2015-01-20 2019-10-23 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正フレーム対処方法、不正検知電子制御ユニット及び車載ネットワークシステム

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
HAGA, TOMOYUKI ET AL.: "Proposal of statistical anomaly detection system for in-vehicle network using cloud", SCIS 2016 SYMPOSIUM ON CRYPTGRAPHY AND INFORMATION SECURITY, vol. 11, 19 January 2016 (2016-01-19), pages 31 - 45, XP009515155 *
MARKOVITZ, M. ET AL.: "Field classification , modeling and anomaly detection in unknown CAN bus networks", VEHICULAR COMMUNICATIONS, 13 October 2015 (2015-10-13), XP055512979, Retrieved from the Internet <URL:https://www.eng.tau.ac.il/~yash/escar-2015-10-13.pdf> [retrieved on 20171218] *
POKRAJAC, D. ET AL.: "Incremental local outlier detection for data streams", IEEE SYMPOSIUM ON COMPUTATIONAL INTELLIGENCE AND DATA MINING (CIDM 2007), 1 April 2007 (2007-04-01), pages 504 - 515, XP031095483 *
See also references of EP3554015A4 *
TAYLOR, A. ET AL.: "Anomaly-based detection of malicious activity in in-vehicle networks", A THESIS IN OTTAWA-CARLETON INSTITUTE FOR ELECTRICAL AND COMPUTER ENGINEERING UNIVERSITY OF OTTAWA, 23 May 2017 (2017-05-23), Ottawa, Canada, XP055512983, Retrieved from the Internet <URL:https://ruor.uottawa.ca/bitstream/10393/36120/3/Taylor_Adrian_2017_thesis.pdf> [retrieved on 20171218] *
THEISSLER, A. ET AL.: "Detecting anomalies in recordings from test drives based on a training set of normal instances", IADIS INTERNATIONAL CONFERENCE INTELLIGENT SYSTEMS AND AGENTS AND EUROPEAN CONFERENCE DATA MINING 2012, July 2012 (2012-07-01), XP055512980, Retrieved from the Internet <URL:http://www.it-designers-gruppe.de/uploads/media/Detecting_anomalies_in_recordings_from_test_drives_based_on_a_training_set_of_normal_instances_2012.pdf> [retrieved on 20171218] *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2020022444A1 (ja) * 2018-07-27 2021-08-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正検知方法及び不正検知装置
WO2020022444A1 (ja) * 2018-07-27 2020-01-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正検知方法及び不正検知装置
JP7232832B2 (ja) 2018-07-27 2023-03-03 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正検知方法及び不正検知装置
CN111492625A (zh) * 2018-07-27 2020-08-04 松下电器(美国)知识产权公司 非法检测方法以及非法检测装置
WO2020021713A1 (ja) * 2018-07-27 2020-01-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正検知方法および不正検知電子制御装置
CN111492625B (zh) * 2018-07-27 2022-07-01 松下电器(美国)知识产权公司 非法检测方法以及非法检测装置
JP7182470B2 (ja) 2019-01-11 2022-12-02 富士通株式会社 メッセージ処理装置およびメッセージ処理方法
JP2020113893A (ja) * 2019-01-11 2020-07-27 富士通株式会社 メッセージ処理装置およびメッセージ処理方法
EP3951531A4 (en) * 2019-03-29 2022-05-11 Panasonic Intellectual Property Corporation of America PROCEDURE FOR DETECTING ANOMALIES AND SYSTEM FOR DETECTING ANOMALIES
WO2020203352A1 (ja) * 2019-03-29 2020-10-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知方法及び異常検知装置
US11943243B2 (en) 2019-03-29 2024-03-26 Panasonic Intellectual Property Corporation Of America Anomaly detection method and anomaly detection device
JP2021057741A (ja) * 2019-09-30 2021-04-08 富士通株式会社 メッセージの特徴を推定する方法および情報処理装置
JP7268562B2 (ja) 2019-09-30 2023-05-08 富士通株式会社 メッセージの特徴を推定する方法および情報処理装置
WO2021095491A1 (ja) * 2019-11-12 2021-05-20 株式会社オートネットワーク技術研究所 車載中継装置及び情報処理方法
WO2021149537A1 (ja) * 2020-01-21 2021-07-29 株式会社オートネットワーク技術研究所 管理装置、車載装置の識別情報割り当て方法、車載システム、及びデータ構造
JP2021114724A (ja) * 2020-01-21 2021-08-05 株式会社オートネットワーク技術研究所 管理装置、車載装置の識別情報割り当て方法、車載システム、及びデータ構造
JP7363510B2 (ja) 2020-01-21 2023-10-18 株式会社オートネットワーク技術研究所 管理装置、車載装置の識別情報割り当て方法、車載システム、及びデータ構造
JP7444287B2 (ja) 2020-11-19 2024-03-06 日本電信電話株式会社 推定装置、推定方法、および、推定プログラム

Also Published As

Publication number Publication date
US20210226919A1 (en) 2021-07-22
JPWO2018105330A1 (ja) 2019-10-24
US10999248B2 (en) 2021-05-04
EP3554015A4 (en) 2019-12-18
CN108401491A (zh) 2018-08-14
EP3554015B1 (en) 2020-12-30
US11546298B2 (en) 2023-01-03
JP6847101B2 (ja) 2021-03-24
US20190116157A1 (en) 2019-04-18
EP3554015A1 (en) 2019-10-16
CN108401491B (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
WO2018105330A1 (ja) 情報処理方法、情報処理システム、及びプログラム
EP3598329B1 (en) Information processing method, information processing system, and program
US11570184B2 (en) In-vehicle network system, fraud-detection electronic control unit, and fraud-detection method
US10992688B2 (en) Unauthorized activity detection method, monitoring electronic control unit, and onboard network system
US10902109B2 (en) Misuse detection method, misuse detection electronic control unit, and misuse detection system
US11032300B2 (en) Intrusion detection system based on electrical CAN signal for in-vehicle CAN network
JP2017126978A (ja) 異常検知方法、異常検知装置及び異常検知システム
CN109076016B (zh) 非法通信检测基准决定方法、决定系统以及记录介质
JP2018026791A (ja) フレーム伝送阻止装置、フレーム伝送阻止方法及び車載ネットワークシステム
WO2018168291A1 (ja) 情報処理方法、情報処理システム、及びプログラム
CN109005678B (zh) 非法通信检测方法、非法通信检测系统以及记录介质
AU2019308828B2 (en) Message source detection in a vehicle bus system
US20200183373A1 (en) Method for detecting anomalies in controller area network of vehicle and apparatus for the same
Frassinelli et al. I know where you parked last summer: Automated reverse engineering and privacy analysis of modern cars
WO2018179536A1 (ja) 情報処理装置、情報処理方法、プログラムとそれを記憶した記録媒体
US20230283622A1 (en) Anomaly detection method, anomaly detection device, and recording medium
JP7176564B2 (ja) 監視装置、および、監視方法
JP6992309B2 (ja) 送信装置、受信装置、及び通信方法
CN114731301A (zh) 决定方法、决定系统以及程序
Tricarico Generalization of a Machine Learning Classifier of CAN Bus Signals

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018517654

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 17877833

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: 2017877833

Country of ref document: EP

Effective date: 20190708