CN108401491B - Information processing method, information processing system, and program - Google Patents
Information processing method, information processing system, and program Download PDFInfo
- Publication number
- CN108401491B CN108401491B CN201780003405.2A CN201780003405A CN108401491B CN 108401491 B CN108401491 B CN 108401491B CN 201780003405 A CN201780003405 A CN 201780003405A CN 108401491 B CN108401491 B CN 108401491B
- Authority
- CN
- China
- Prior art keywords
- field
- payload
- value
- payload division
- candidates
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/48—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication
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
The information processing method for processing the data frame flowing in the vehicle-mounted network comprises the following steps: a frame collection step of acquiring a payload composed of at least one field included in a received data frame from each of the data frames, and recording the payload as one record in a reception log; and a field extraction step of calculating one or more feature amounts related to time-series changes in the values of payloads in the regions for each of a plurality of payload division mode candidates representing different regions in payloads in the plurality of data frames based on the plurality of records, selecting a payload division mode representing a region of a field located in the payload based on the feature amounts, and outputting a field extraction result representing the region represented by the selected payload division mode and the type of the field based on the feature amount.
Description
Technical Field
The present disclosure relates to information processing of data flowing in an in-vehicle network.
Background
In recent years, a large number of devices called Electronic Control units (hereinafter, ECU) are arranged in systems in automobiles. The network connecting these ECUs is called an in-vehicle network. Many communication standards exist for vehicular networks. As one of the most mainstream in-vehicle networks, there is a Controller Area Network (CAN) Network.
In a network of CAN communication, two buses are used for a communication path, and an ECU connected to the buses is called a node. Each node connected to the bus transmits and receives messages called frames. A node transmitting a frame (hereinafter, referred to as a transmitting node) transmits binary data of the frame by applying a voltage to two buses and transmitting a value "1" called recessive (recessive) and a value "0" called dominant (dominant) according to whether or not there is a potential difference between the buses. When a plurality of transmitting nodes transmit recessive and dominant signals at the same time, the dominant signal is transmitted preferentially.
When the format of the received frame is abnormal, the receiving node transmits a frame called an error frame (error frame). The error frame is, for example, a frame explicitly starting with consecutive 6 bits (bit), and the transmitting node that receives the frame and other receiving nodes detect the occurrence of an error.
In addition, an identifier indicating a transmission destination or a transmission source does not exist in the CAN, and a transmitting node transmits data by adding an ID indicating a type of data for each frame, and each receiving node receives only a frame including a predetermined ID. In addition, the CAN employs a CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance) scheme, and performs arbitration (arbitration) based on the ID when a plurality of nodes transmit simultaneously, and preferentially transmits a frame having a small ID value.
On the other hand, there is a threat that an attacker does not normally control the ECU by accessing the bus of the CAN and transmitting an abnormal frame, and security measures have been studied.
For example, patent document 1 proposes an in-vehicle network monitoring device. According to patent document 1, the following method is disclosed: the control is prevented by detecting whether or not a frame is transmitted to the network at a predetermined communication interval and determining that an abnormal frame deviating from the predetermined communication interval is abnormal. However, in order to detect an abnormal frame with higher accuracy, it is necessary to verify the content of the payload contained in the frame.
However, the specifications of frames transmitted and received in the in-vehicle network are not standardized, and the vehicle manufacturer can design them by itself, and therefore, a third party cannot know a meaningful number of unit segments within the payload. If the type of data contained in the payload is not clear, it is difficult to verify the payload and detect an abnormal frame. Further, even if the automobiles of the same vehicle manufacturer are different in model and model, the frame specification may be changed, and therefore, it is necessary to take a lot of effort to construct a system for verifying the frame for the design of the monitoring device for each automobile.
As a means for solving such a problem, non-patent document 1 discloses the following method: the payload included in a frame collected from only observation data is divided into meaningful units, and a white list is created for each part of the divided payload.
Documents of the prior art
Patent document 1: japanese patent No. 5664799
Non-patent document 1: m. Markovitz, A.Wool, "Field Classification, Modeling and analytic detection in Unknown CAN Bus Network", Embedded Security in CARs, 2015
Disclosure of Invention
An information processing method according to an aspect of the present disclosure is an information processing method for processing a data frame flowing through a vehicle-mounted network including one or more electronic control units, the information processing method being performed by an information processing system including a storage unit, the information processing method including: a frame collection step of receiving a plurality of data frames flowing through the on-vehicle network, acquiring a payload including at least one field included in each of the plurality of data frames from the data frame, and recording the payload as one record in a reception log held in the storage unit; and a field extraction step of calculating, from the plurality of records, one or more feature amounts related to time-series changes in the values of the payloads in the plurality of regions for each of a plurality of payload division pattern candidates representing different regions within the payloads in the plurality of data frames, selecting, from the plurality of payload division pattern candidates, a payload division pattern representing a region of a field located within the payload based on the feature amounts, and outputting a field extraction result representing the region represented by the selected payload division pattern and the type of the field based on the feature amount.
The disclosed information processing method and the like can provide a secure in-vehicle network system that detects attacks with high accuracy and high cost efficiency.
Drawings
Fig. 1 is a block diagram showing an overall configuration of an in-vehicle network according to the 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 ECU100 according to the embodiment.
Fig. 5 is a diagram showing an example of the operation mode held by the mode holding unit according to the embodiment.
Fig. 6 is a diagram showing an example of the reception log held by the reception log holding unit according to the embodiment.
Fig. 7 is a diagram showing an example of the 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 of the embodiment.
Fig. 9 is a block diagram showing a functional configuration of the ECU according to the embodiment.
Fig. 10 is a diagram showing an example of a part of a data frame transmitted by the ECU.
Fig. 11 is a flowchart of the processing of the payload dividing unit according to the embodiment.
Fig. 12 is a diagram showing an example used for explaining the extraction of feature amounts from the split pattern candidates by the payload split unit according to the embodiment.
Fig. 13 is a flowchart of an example of processing for extracting a fixed value field according to the embodiment.
Fig. 14 is a diagram showing an example of extraction processing of a fixed value field in the embodiment.
Fig. 15 is a flowchart of an example of extraction processing of a field of a counter according to the embodiment.
Fig. 16 is a flowchart of an example of the extraction processing of the continuous value field according to the embodiment.
Fig. 17 is a flowchart of an example of the extraction processing of the continuous value field according to the embodiment.
Fig. 18A is a diagram showing an example of calculating the average of the variances of the values of the division pattern candidates having a common bit length in the example of the extraction processing of the continuous value field according to the embodiment.
Fig. 18B is a diagram showing an example of the above-described average outlier score and calculation of the average of the partition pattern candidates whose starting bit positions are common in the example of the extraction processing of the continuous value field according to the embodiment.
Fig. 19 is a diagram showing the frequency of occurrence of a change in value in each divided field candidate used in the example of the continuous value field extraction processing according to the embodiment.
Fig. 20 is a flowchart of an example of the checksum field extraction processing according to the embodiment.
Fig. 21 is a flowchart of an example of field extraction processing of the status of the embodiment.
Fig. 22 is a flowchart of an example of normal model generation processing according to 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. 22.
Fig. 24 is a diagram for explaining a part of the operation of the feature extraction unit that executes the process of acquiring behavior information shown in fig. 23.
Fig. 25 is a flowchart showing an example of processing of the abnormality detection unit according to the embodiment.
Fig. 26 is a flowchart showing an example of processing of the abnormality detection unit according to the embodiment.
Fig. 27 is a diagram showing an operation example 1 of the abnormality detection unit according to the embodiment.
Fig. 28 is a diagram showing an operation example 2 of the abnormality detection unit according to the embodiment.
Fig. 29 is a diagram showing an operation example 3 of the abnormality detection unit according to the embodiment.
Detailed Description
In the method as disclosed in non-patent document 1, as a payload division method, classification of the types and determination of the lengths of payloads are performed and division is performed using only the number of unique values observed in each division candidate calculated from collected frames, and thus the accuracy of payload division is low.
The present disclosure provides an information processing method and the like for cost-effectively achieving highly accurate abnormality detection in an in-vehicle network.
An information processing method according to an embodiment of the present disclosure is an information processing method for processing a data frame flowing through a vehicle-mounted network including one or more electronic control units, the information processing method being performed by an information processing system including a storage unit, the information processing method including: a frame collection step of receiving a plurality of data frames flowing through a vehicle-mounted network, acquiring a payload composed of at least one field included in each of the plurality of data frames from the data frame, and recording the payload as one record in a reception log held in a storage unit; and a field extraction step of calculating, for each of a plurality of payload division mode candidates representing mutually different regions within payloads of a plurality of data frames, one or more feature amounts relating to a time-series change in the value of the payload within the region, based on the plurality of records, selecting, from the plurality of payload division mode candidates, a payload division mode representing a region of a field located within the payload, based on the calculated feature amounts, and outputting a field extraction result representing the region represented by the selected payload division mode and the type of the field based on the feature amount.
If this information processing system is used, it is possible to construct an abnormality detection system without individually designing in advance the in-vehicle network systems having different message specifications, and it is possible to protect the in-vehicle network while suppressing the cost.
For example, the reception log further includes information indicating an order in which the plurality of records are received, the feature value includes at least one of a 1 st feature value, a 2 nd feature value, and a 3 rd feature value, the 1 st feature value indicates the number of patterns of the time-series change, the 2 nd feature value indicates the frequency of occurrence of the time-series change, and the 3 rd feature value indicates statistical information about the amount of change in the time-series change.
By using these feature quantities separately or in combination, the payload can be divided into fields with higher accuracy. This makes it possible to construct, for example, a normal model with higher accuracy, and to expect improvement in accuracy of abnormality detection of the vehicle-mounted network.
For example, in the field extraction step, the information processing system may select, as the payload division mode of the region indicating the field of type 1, a payload division mode candidate indicating a region in which the value of the payload has one or more time-series changes and the amount of change in each time included in the time-series changes is equal to or smaller than a predetermined size, based on the feature amount.
Thus, for example, a field whose value changes according to a predetermined rule if it is normal can be determined and extracted. For example, the field thus identified is considered to be a field that is likely to be a target of an attack and is used as a monitoring target, and thus can be used for abnormality detection of the in-vehicle network.
For example, the feature values may include the 2 nd feature value and the 3 rd feature value, and the information processing system may execute the following continuous value field extraction step in the field extraction step: a payload division mode representing a field of a 1 st type is selected by selecting, from among the plurality of payload division mode candidates, a payload division mode that is an area of a field representing a continuous value type of a value representing a physical quantity, based on the 2 nd feature quantity and the 3 rd feature quantity. For example, the information processing system may calculate, in the field extraction step, an outlier score showing an outlier of the 3 rd feature quantity among the payload division pattern candidates indicating the regions of the same data length, calculate an average value of the outlier scores of the payload division pattern candidates indicating the regions of the same start bit among the payload division pattern candidates, and select, from the payload division pattern candidates indicating the regions whose average value is equal to or greater than a predetermined threshold value, the payload division pattern indicating the region conforming to the field of the continuous value type based on a magnitude relation of the 2 nd feature quantity of the payload division pattern candidates included in the payload division pattern candidate.
This enables, for example, a field indicating a physical quantity measured and output by the sensor to be specified. The field thus identified can be used for abnormality detection of the in-vehicle network as a determination target for an abnormality in the value or the rate of change of the value of the field.
For example, in the field extraction step, the information processing system may select the payload division mode indicating the field of the 1 st type by selecting, as the payload division mode indicating the region of the field of the counter type, a payload division mode indicating a region which changes every time the value of the payload changes and in which the amount of change of the value of the payload at each time is constant, from among the plurality of payload division mode candidates, based on the feature amount.
Thus, a field whose value is incremented or decremented can be determined. The field thus identified can be used for abnormality detection of the in-vehicle network as a determination target of an abnormality based on a rule violation of a change in the value of the field.
For example, in the field extraction step, the information processing system may select, as the payload division pattern representing the region of the field of type 2, a payload division pattern candidate representing a region in which the value of the payload has one or more time-series changes and the value of the payload takes a discrete value, based on the feature amount. For example, the type 2 may be at least one of a checksum type for checking the matching of the values of the payloads in the field and a status type indicating a predetermined status of the vehicle including the on-vehicle network.
Thus, a field such as a checksum or flag (flag) that takes a discrete value can be specified. The field thus identified can be used for abnormality detection of the in-vehicle network as a determination target of an abnormality based on the matching of the value of the field with another field, the occurrence frequency of a change, or the like.
In the field extraction step, the information processing system may sequentially execute a fixed value field extraction step, a counter field extraction step, a continuous value field extraction step, and a 2 nd type field extraction step, wherein in the fixed value field extraction step, a payload division mode candidate having a 1 st feature quantity of 1 is selected as a payload division mode of a region indicating a field of a fixed value type from among a plurality of payload division mode candidates, a remaining payload division mode candidate excluding a payload division mode candidate overlapping at least a part of the selected payload division mode from among the plurality of payload division mode candidates is set as a 1 st payload division mode candidate, and in the counter field extraction step, a payload division mode of a region indicating a field of a counter type is selected from among the 1 st payload division mode candidates, the 1 st payload division mode candidate is set as a 2 nd payload division mode candidate excluding a payload division mode candidate that overlaps at least a part of the selected payload division mode from the 1 st payload division mode candidates and remaining payload division mode candidates, in the continuous value field extraction step, a payload division pattern of a region of a field indicating a continuous value type is selected from 2 nd payload division pattern candidates using the 2 nd feature amount and the 3 rd feature amount from the 2 nd payload division pattern candidates, a payload division pattern candidate which is at least partially overlapped with the selected payload division pattern is removed from the 2 nd payload division pattern candidates and the remaining payload division pattern candidates are set as the 3 rd payload division pattern candidates, in the type 2 field extraction step, the 3 rd payload division mode candidate is selected as the type 2 field.
Thus, the range of each type of field can be efficiently determined from the unknown payload, and each field can be extracted.
For example, the information processing system may further include a feature extraction step executed by the information processing system, wherein the feature extraction step generates a normal model indicating a normal range of a change in a value of a field indicated by the selected payload division pattern based on statistical information on a variation amount of a time-series change in the value of the field, based on a field extraction result and a reception log, and further outputs the generated normal model.
Thus, in addition to the ranges of the respective types of fields specified, the criteria for determining the abnormality of the respective fields of the values are obtained, and the abnormality detection of the vehicle-mounted network can be performed.
In the frame collection step, the information processing system may record the payload and the data type ID as one record in the reception log, and may execute the field extraction step for a data frame having a common data type ID.
This makes it possible to divide the payload into fields even when a plurality of types of data frames coexist in the data frame acquired from the bus.
The general or specific technical means may be realized by a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized by any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.
Hereinafter, embodiments will be described with reference to the drawings.
The embodiments described below are all general or specific examples. Therefore, the numerical values, shapes, materials, constituent elements, arrangement of constituent elements, connection systems, steps, and order of steps, etc. shown in the following embodiments are examples, and do not limit the present disclosure.
Among the components in the following embodiments, components not described in the independent claims representing the uppermost concept will be described as optional components.
(embodiment mode)
<1. constitution >
In the information processing system described as an embodiment, a data frame flowing through a vehicle-mounted network is received, a payload of the data frame is divided into fields, and a behavior model relating to a value included in a normal data frame is constructed for each of the divided fields. 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 is explained with reference to the drawings.
<1.1 Overall configuration of in-vehicle network 10 >
Fig. 1 is a block diagram showing the overall configuration of the in-vehicle network 10 according to the present embodiment. The in-vehicle network 10 includes a monitoring ECU100, an ECU200, and a bus 300.
The monitoring ECU100 is connected to the bus 300, monitors a data frame flowing on the bus 300, and monitors whether or not an abnormal data frame including an abnormality is flowing. The monitoring ECU100, which includes a communication line and a microcontroller (not shown) including a processor and a memory, is an example of the information processing system according to the present embodiment.
The ECU200a is connected to a speed sensor 210 and a gear 220, and the ECU200b is connected to a meter 230. The ECU200a periodically transmits the speed of the vehicle and the position of the gear 220, which are obtained from the speed sensor 210, to the bus 300 while including the data frames. ECU200b that has received the data frame acquires the speed of the vehicle and the position of gear 220 notified from ECU200a, and displays them on meter 230.
Hereinafter, in order to facilitate understanding of the present embodiment, a format of data transmitted by using the CAN protocol used as a communication standard in the in-vehicle network 10 will be briefly described.
<1.2 data frame Format >
Fig. 2 is a diagram showing a format of a data frame of the CAN protocol. Here, a data frame in the standard ID format in the CAN protocol is shown.
The Data Frame is composed Of 12 parts Of a Start Of Frame (hereinafter referred to as SOF), an ID field (field), a Remote Transmission Request (hereinafter referred to as RTR), an Identifier Extension (hereinafter referred to as IDE), a reservation bit "r" (hereinafter referred to as r), a Data Length Code (hereinafter referred to as DLC), a Data field, a Cyclic Redundancy Check (hereinafter referred to as CRC) timing, a CRC delimiter, an Acknowledgement (hereinafter referred to as ACK) slot (ACK in the drawing), an ACK delimiter (DEL in the middle), and an End Of Frame (hereinafter referred to as EOF).
The SOF is a 1-bit dominant. When the bus 300 becomes idle, the transmitting node changes the bus 300 from recessive to dominant, thereby notifying the start of frame transmission.
The ID indicates the kind of data frame by a value 11 bits long. The type of the data frame referred to herein refers to, for example, the content of the 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 transmitting simultaneously on the same network. More specifically, the data frame having a smaller value of the ID is higher in priority. The ID is an example of the data type ID of the present embodiment.
RTR is represented by 1-bit explicit representation of a data frame.
IDE and r are 1-bit dominant, respectively.
DLC denotes the length of the next data field with a value of 4 bits long.
The data field is a portion of transmitted data that is at most 64 bits long, and corresponds to the payload of a data frame. The length can be adjusted in 8-bit units. The specifications relating to the distribution of the transmitted data to the portion depend on the vehicle model and/or manufacturer.
The CRC sequence represents a value calculated from transmission values of SOF, ID field, control field, and data field with a length of 15 bits. The receiving node determines the presence or absence of an abnormality by comparing the result calculated from the received values of the SOF, the ID field, the control field, and the data field with the value of the CRC sequence.
The CRC delimiter is a segmentation symbol indicating the end of the CRC sequence with 1 bit of recessiveness.
The ACK slot is 1 bit long and the transmitting node transmits the recessive in this portion. The receiving node sends the dominance in this part if it can receive normally until the CRC sequence. In the CAN standard, the dominant and recessive transmissions are prioritized as described above, and therefore, in the in-vehicle network 10 that normally performs communication, the bus 300 is in a state of being dominant in the transmission of the ACK slot.
The ACK delimiter is a division symbol that indicates the end of the ACK slot with an recessive 1-bit length.
The EOF indicates the end of a data frame with an recessive of 7 bits long.
<1.3 error frame Format >
Fig. 3 is a diagram showing a format of an error frame of the CAN protocol. The error frame is composed of 3 parts of an error flag (primary), an error flag (secondary), and an error delimiter (DEL in the figure).
The error flag (primary level) is used to notify other nodes of the generation of an error. Is explicit of consecutive 6 bits, violating the bit stuffing (bit stuffing) rule of the CAN protocol that sends a different value of 1 bit next to 5 bits of consecutive same value. The occurrence of a violation of the bit-stuffing rule may cause an error flag (secondary) to be sent from the other node.
The error flag (secondary) is a 6-bit-long dominant signal transmitted to notify other nodes of the occurrence of an error. All nodes that receive the error flag (primary) transmit.
The error delimiter uses an 8-bit long recessive to indicate the end of the error frame.
<1.4 construction drawing of monitoring ECU100 >
Fig. 4 is a block diagram showing a functional configuration of the monitoring ECU 100.
The monitoring ECU100 includes a frame transmitting/receiving unit 110, a frame collecting unit 120, an operation determining unit 130, a payload dividing unit 140, a feature extracting unit 150, an abnormality detecting unit 160, a frame generating unit 170, a pattern holding unit 180, a reception log holding unit 190, and a normal model holding unit 191.
The frame transmitting/receiving unit 110 transmits/receives a data frame conforming to the CAN protocol to/from the bus 300. That is, the frame transmitting/receiving unit 110 receives a data frame from the bus 300 bit by bit. When the data frame is received without error, the ID, DLC, and data fields included in the data frame are transferred to the frame collection unit 120 and the operation determination unit 130. When the received data frame is determined not to conform to the CAN protocol, the frame transmitting/receiving unit 110 transmits an error frame. When an error frame is received from another node, that is, when it is determined from the value of the received frame that the frame is an error frame, the frame transmission/reception unit 110 discards the data frame being received. When receiving a data frame transmission request from the frame generation unit 170, 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-described part of the data frame from the frame transmission/reception unit 110, and records the time when the data frame was received (hereinafter referred to as the reception time) and the ID and data field included in the data frame as one record in the reception log held by the reception log holding unit 190. The reception time is recorded, for example, with reference to a timer that measures an operating time elapsed from the start of the monitoring ECU 100. Such a timer is included in a microcontroller provided in the monitoring ECU100, for example.
The operation determination unit 130 refers to the value indicating the operation mode stored in the mode holding unit 180 at the time of reception of the data frame, and determines the sequential operation of the monitoring ECU100 according to the operation mode. The operation mode of the monitoring ECU100 includes both a collection mode and a monitoring mode. When the operation mode is determined as the collection mode, the operation determination unit 130 checks whether or not the monitoring ECU100 operates for one hour or more in total. The operation is not particularly performed when the operation is not performed for one hour or more. When the operation is performed for one hour, the operation determination unit 130 issues a predetermined operation request to the payload division unit 140, and then switches the operation mode to the monitoring mode. When the operation mode is the monitoring mode, an abnormality detection request is issued 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 data field, which is the payload of the record including the common ID, and extracts the field as a bit sequence (hereinafter, referred to as a field) forming a specific meaning. Fields included in the data field are classified into any one of a fixed value, a counter, a continuous value, a checksum, and a status according to information indicated by the fields. For example, the area occupied by the value indicating the speed of the automobile measured by the speed sensor 210 corresponds to 1 field, and the field is classified as a continuous value. The details of the dividing method will be described in the following 1.11 to 1.16.
Further, the payload division unit 140 notifies the feature extraction unit 150 of information on a field obtained by dividing the payload of the record including the common ID. Examples of the information include a type of a field, a field area, and a field value.
The feature extraction unit 150 generates a normal model from the reception log and the information on the fields obtained by the division of the payload, which is notified from the payload division unit 140, and stores the normal model in the normal model holding unit 191.
Such a normal model is generated for each ID of a data frame, and includes an average and a variance of reception intervals as information on reception intervals of the data frame, and area, type, and behavior information of fields as information on data fields.
The behavior information of the information about the data field is generated for each field based on the value of the payload included in the reception log stored in the reception log holding unit 190.
The information contained in the behavior information differs depending on the type of field. For example, behavior information of a field belonging to a fixed value type includes a value of a fixed value observed in the reception log. This value is used in the monitoring mode as a value of the white list. There is no behavior information about the field belonging to the type of counter. Regarding the field belonging to the type of the continuous value, the average of the difference, i.e., the amount of change, of the values included in the field between the continuous data frames observed in the reception log is the variance. The field belonging to the type of the state includes a cut-off that changes in the value of the field in time series from the immediately preceding data frame with respect to the total number of receptions of data frames of a certain ID included in the reception log, that is, the frequency of occurrence of a change. The state refers to some state ON the vehicle, and for example, means ON/OFF (ON/OFF) of a specific device such as a headlight, a gear position, an operation mode, and the like.
When receiving the abnormality detection request from the operation determination unit 130, the abnormality detection unit 160 performs a process for detecting reception of an abnormal data frame (hereinafter referred to as an abnormality detection process). More specifically, the abnormality detector 160 refers to the reception log stored in the reception log holder 190, and determines whether or not an abnormal data frame has been received, using the normal pattern and the reception log stored in the normal pattern holder 191.
For example, the abnormality detection unit 160 compares, for a field belonging to a type of a fixed value in the normal model of a data frame of a certain ID, the value of the area of the field in the data field of the record containing the ID in the reception log with the value indicated by the behavior information of the field in the normal model. When these values are different, the abnormality detection unit 160 determines that an abnormal data frame has been received.
Further, the abnormality detection unit 160 determines whether or not the value of the field in the data field of the record including the ID in the reception log is chronologically and correctly incremented for the field belonging to the type of the counter in the normal model of the data frame of the ID. If the number of the data frames is not correctly incremented, the abnormality detection unit 160 determines that an abnormal data frame has been received.
Further, the abnormality detection unit 160 determines, for a field belonging to the type of a continuous value in the normal model of a data frame of a certain ID, whether or not the amount of change in the value of the field from the value in the record immediately before in the data field of the record including the ID in the reception log is an outlier with respect to the average of the amounts of change included in the behavior information of the field under the normal model. When the outlier is detected, the abnormality detection unit 160 determines that an abnormal data frame has been received. The determination as to whether or not the value is an outlier is performed using the variance of the amount of change indicated by behavior information of the normal model, for example, based on whether or not the value converges within a range of ± 3 × (√ variance) as the average value of the amount of change in the field.
Further, the abnormality detection unit 160 compares the frequency of occurrence of a change in the value of a field when the value of the area of the field in the data field of the record including the ID is seen in the reception log for a predetermined time width such as 1 second with the frequency of occurrence indicated by behavior information in the normal model, for the field belonging to the type of state in the normal model of the data frame of the ID. When the difference between the values of these occurrence frequencies is larger than a predetermined threshold, the abnormality detection unit 160 determines that an abnormal data frame has been received.
When it is detected by such determination that a data frame including an abnormality is received, the abnormality detection unit 160 requests the frame generation unit 170 to generate a data frame for notifying, for example, that an abnormal data frame is received.
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 abnormal data frame is received, and notifies the frame transmission/reception unit 110 of the generated data frame.
The mode holding unit 180 holds a value indicating the current operation mode of the monitoring ECU 100. The operation mode is the collection mode or the monitoring mode as described above. Fig. 5 shows an example of the values of the operation mode held by the mode holding unit 180. The operation mode will be described in 1.6 described later.
The reception log holding unit 190 holds information (reception time, ID, data field) of the data frame notified from the frame collecting unit 120. Fig. 6 shows an example of the reception log stored in the reception log holding unit 190. The reception log is described in 1.7 described later.
The normal model holding unit 191 holds the normal model extracted by the feature extraction unit 150. Fig. 7 shows an example of the normal pattern held by the normal pattern holding unit 191. The normal model is explained in 1.8.
These functional components are realized as follows: in the microcontroller provided in the monitoring ECU100, the processor executes a program stored in the memory to process a data frame received via the communication line, and holds data generated in the middle or at the end of the processing in the memory as necessary.
<1.5 monitoring the operation of the ECU100 >
A series of steps in the operation of the monitoring ECU100 configured as described above will be described with reference to a flowchart shown in fig. 8.
(step S1) the frame transceiver 110 of the monitoring ECU100 receives the data frame flowing on the bus 300 of the in-vehicle network.
(step S2) the frame collection unit 120 of the monitoring ECU100 records a record containing 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 monitor ECU100 refers to the mode holding unit 180 to confirm the current operation mode of the monitor ECU 100. If the current operation mode is the monitor mode (yes), operation determination unit 130 proceeds to step S4. Otherwise, that is, in the case where the current operation mode is the collection mode ("no"), the operation determination portion 130 proceeds to step S7.
(step S4) the operation determination unit 130 of the monitoring ECU100 issues a request for abnormality detection processing to the abnormality detection unit 160, and the abnormality detection unit 160 performs the above-described abnormality detection processing.
(step S5) when the abnormality detection unit 160 of the monitoring ECU100 detects an abnormality as a result of the abnormality detection processing (yes), the process proceeds to step S6. Otherwise ("no"), the monitoring ECU100 returns to step S1.
(step S6) the abnormality detection unit 160 of the monitoring ECU100 transmits a request for generation of a data frame to notify other nodes of the detection of the abnormality to the frame generation unit 170. The frame generation unit 170 generates a data frame for notifying that an abnormal data frame has been received, transmits the data frame to the bus 300 via the frame transmission/reception unit 110, and ends the transmission.
(step S7) the operation determination unit 130 of the monitoring ECU100 determines whether or not the monitoring ECU100 has operated for one hour or more. If the monitoring ECU100 has been operating for more than one hour ("yes"), the process proceeds to step S8. Otherwise ("no"), the monitoring ECU100 returns to step S1.
(step S8) the operation determination unit 130 of the monitoring ECU100 issues a payload division processing request to the payload division unit 140. The payload division unit 140 divides a data field, which is a payload of a data frame, and performs field extraction processing.
(step S9) the feature extraction unit 150 of the monitoring ECU100 generates a normal model using the result of the field extraction process performed 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 ECU100 rewrites the value of the operation mode held by the mode holding unit 180 and switches the operation mode of the monitoring ECU100 from the collection mode to the monitoring mode.
Steps S1 and S2 among the above-described steps are examples of the frame collection step in the present embodiment, and step S8 is an example of the field extraction step in the present embodiment.
Note that, although the flow of ending the operation of the monitoring ECU100 at the end of the step S6 or step S10 is shown in the flowchart, the operation may actually be repeated by returning to step S1.
<1.6 data Structure of operation mode >
Referring to fig. 5, an example of the operation mode held by the mode holding unit 180 is shown.
In this example, a case is shown in which the current operation mode of the monitoring ECU100 is the collection mode. In the collection mode, the data field of the data frame received by the monitoring ECU100 is stored in the reception log holding unit 190 by the frame collection unit 120.
<1.7 data constitution of reception Log >
Fig. 6 shows an example of the reception log held by the reception log holding unit 190.
The reception log is a state after receiving a plurality of data frames having an ID of 0x 100. Each row of the data lines is 1 record, and is arranged in time sequence from top to bottom.
The length of the data field in this example is 5 bits, the reception time of the earliest received data frame in the reception log is 51ms, and the value of the data field is 0x 000 x 000 x 000 x100 x 10. The reception time of the latest received data frame is 500450ms, and the value of the data field is 0x 260 x 150 x4B 0x 300 xB 6.
<1.8 data construction of Normal model >
Fig. 7 shows an example of the normal pattern held by the normal pattern holding unit 191.
The normal model in this example is a normal model relating to a data frame with an ID of 0x 100. In the normal model, information on the reception interval of a data frame having an ID of 0x100 includes 50ms, which is the average of the reception intervals, and 3ms, which is the variance of the reception intervals. The information on the data field includes a start bit position, a bit length, a type, and behavior information of each of 7 fields obtained by dividing the data field. More specifically, an 8-bit long field from the 1 st upper bit of the data field is a field indicating a counter. A 2-bit long field from the upper 9 th bit of the data field represents a fixed value, which is 0. A 14-bit long field from the upper 11 th bit of the data field indicates a continuous value, the average of the variation amounts of the changes generated by the value of the field is 10, and the variance is 100. A 1-bit long field from the 25 th upper bit of the data field is a fixed value, and the value is 0. A 3-bit long field from the 26 th higher bit of the data field indicates the state of the vehicle, and the frequency of occurrence of the change in value is 0.0001. The 8-bit long field from the 33 rd higher order bit of the data field is a checksum.
<1.9 construction of other ECU >
Fig. 9 is a block diagram showing a functional configuration of ECU200a or ECU200b as an example of a node connected to the in-vehicle network. The ECU200a includes a frame transceiver 201, a frame processor 202, an external device input/output unit 203, and a frame generator 204. These functional components are realized by a communication line in ECU200a, a processor or a digital circuit that executes a control program stored in a memory, or the like.
The frame transmitting/receiving unit 201 transmits/receives a data frame conforming to the CAN protocol to/from the bus 300. That is, the frame transmitting/receiving unit 201 receives a data frame bit by bit from the bus 300. When the reception of the data frame is completed without error, the ID, DLC, and data fields included in the data frame are transferred to the frame processing section 202. When 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 transmitting/receiving unit 201 also executes a process conforming to the CAN protocol, such as communication arbitration.
The frame processing unit 202 interprets the contents of the received data frame. For example, in ECU200b, information on the speed measured by speed sensor 210 and the position of gear 220 included in the data field of the data frame transmitted from ECU200a is acquired, and control information for displaying the information on meter 230 is notified to external device input/output unit 203. At this time, the frame processing unit 202 checks whether or not the counter and the checksum included in the data frame satisfy a predetermined condition. More specifically, it is checked whether or not the counter is a value larger than the value of the counter included in the received data frame of the same ID.
For example, the checksum is divided byte by byte in the data field except for the checksum field, and it is checked whether or not the lower 1 byte of the sum obtained by adding all the values is the checksum value. In the case where the counter and checksum satisfy these conditions, information based on the received data frame is displayed on the meter 230.
External device input/output unit 203 communicates with an external device connected to ECU200a or ECU200 b. For example, in the case of ECU200a, external device input/output unit 203 is connected to speed sensor 210 and gear 220, receives information on the current vehicle speed and the position of gear 220, and notifies frame generation unit 204 of the information. In the case of the ECU200b, the external device input/output unit 203 is connected to the meter 230, and transmits a signal for displaying the current vehicle speed and the position of the gear 220 to the meter 230 in order to notify the driver of these information.
The frame generation unit 204 generates a data frame to be transmitted to the bus 300. For example, ECU200a generates a data frame including the vehicle speed acquired from speed sensor 210 and the gear position acquired from gear 220, which are notified from external device input/output unit 203, at intervals of a predetermined period, for example, 50ms, and transmits the data frame to frame transmission/reception unit 201. In addition, a counter and a checksum are also included in the data frame. The counter is incremented each time it is transmitted and the checksum is calculated in such a way that the aforementioned equation is satisfied. The interval at which the data frame is generated may be an interval other than 50 ms. Fig. 10 shows an example of a part of a data frame transmitted from ECU200a to bus 300. The monitoring ECU100 and the ECU200b receive the data frame from the bus 300. Thus, a data frame is composed of at least one field as a column of bits forming a particular meaning. However, in the collection mode, the content of the data field included in the received data frame or an appropriate method of dividing the data field is not clear to the monitoring ECU100 in operation, and therefore the data field is only 5 bytes long.
<1.10 construction of data frame transmitted by ECU >
The configuration of a data frame transmitted by each ECU connected to the in-vehicle network will be described using an example. Fig. 10 is a diagram showing an example of a data frame transmitted by ECU200 a. However, fig. 10 illustrates only a portion necessary for explanation of the present embodiment.
The ECU200a transmits a data frame with an ID of 0x100 and a DLC of 5.
The first 1 byte area of the data field is a counter field, and its value is 0x 26. The value of the field of the counter is incremented at each transmission.
The area in which the 2 nd byte and the 3 rd byte of the data field are connected is a field indicating the speed measured by the speed sensor 210. In this example, the speed is expressed in units of 0.01km/h, and the value of 0x154B indicates that the measured value of the speed is 54.51 km/h.
The upper 4-bit area of the 4 th byte is a field indicating the position of the gear 220, 0 indicates neutral, 1 indicates park, 2 indicates reverse, and 3 indicates forward. In the example of fig. 10, the value is 3, and therefore the gear position is the forward gear.
The lower 4-bit area of the 4 th byte is a field of a fixed value, and is filled with 0.
The 5 th byte is a field of a checksum. The value filled in this field is a value of 1 byte lower than the sum obtained by dividing the data field except for the checksum field into 1-byte regions and adding the values of the regions. In the example of fig. 10, when the sum of the values of the respective regions is obtained, 0x26+0x15+0x4B +0x30 is 0xB 6. Therefore, the correct value of the field that should be filled with the checksum is 0xB 6.
As described above, the area occupied by each field in the data field and the type of information indicated by each field, i.e., the type of field, may vary depending on the specifications determined by each vehicle manufacturer and depending on the model or model of year.
In the monitoring ECU100, the payload dividing unit 140 divides the data field, whose area and type are unknown, into regions using features relating to changes in values within the data field, and extracts the fields. Next, a description will be given of a process of dividing a data field and extracting the field by the payload dividing unit 140, using an example.
<1.11 processing of payload division part 140 >
A series of steps executed in the process of dividing the data field and extracting the field by the payload dividing unit 140 will be described with reference to a flowchart shown in fig. 11. The payload division unit 140 performs this operation at step S8 in the flowchart of fig. 8. Therefore, as shown in the flowchart of fig. 8, the payload division unit 140 executes the field extraction process of this operation from a state in which the monitoring ECU100 has received a plurality of data frames and records including a plurality of types of IDs are recorded in the reception log.
(step S11) when the payload division processing request in step S8 is received from the operation determination unit 130, the payload division unit 140 refers to the reception log holding unit 190 and extracts records for each ID from the reception log.
(step S12) when the field extraction is completed for all the IDs included in the reception log (no), the payload division unit 140 ends the operation and notifies the feature extraction unit 150 of the result of the field extraction. When there is an ID for which field extraction is not performed ("yes"), a record including a certain ID for which field extraction is not performed is selected. That is, the payload dividing unit 140 divides the data field of the data frame that commonly includes the ID for which field extraction is not performed, and extracts the field.
(step S13) the payload division unit 140 calculates the feature amount of each division pattern candidate of the data field.
The split pattern candidate is a pattern of an area obtained by splitting a data field in units of bits, and is represented by, for example, a combination (Index, Length) of a start bit position (hereinafter also referred to as Index) of the area and a data Length (hereinafter also referred to as Length) expressed in units of bits. For example, with respect to a 64-bit long data field, Index and Length may take values of 1 ~ 64, respectively, but Index + Length-1 (the last bit position of the region) does not exceed 64. Therefore, there are 64 kinds of lengths of 1 to 64 for an Index of 1, 63 kinds of lengths of 1 to 63 for an Index of 2, 62 kinds of lengths of 1 to 62 for an Index of 3, and 1 kind of lengths of only 1 for an Index of 64. That is, in the case of a 64-bit data field, the number of split mode candidates is Σ x (x is 1 to 64) 65 × 64 ÷ 2 2080. Such a split mode candidate is an example of a payload split mode candidate in the present embodiment.
Fig. 12 is a diagram illustrating an example of extracting a feature amount from the segmentation pattern candidates. In fig. 12, the values of the 5-byte-long data fields included in the 256 records extracted from the reception log and commonly including a certain ID are arranged in the reception order from the top.
In the present embodiment, the feature amount is a feature amount related to a change in the value of the data field located in the range of each of the divided pattern candidates, and there are 3 types. The feature values will be described in more detail by taking the segmentation pattern candidates (13, 8) as an example. The segmentation pattern candidates (13, 8) are indicated by dashed boxes in fig. 12.
The first feature amount is the number of patterns of the value of the data field in the region indicated by each of the divided pattern candidates. The feature value can be obtained by counting the number of types of values of data fields in the region indicated by the division pattern candidate or the number of values of data fields other than the overlap in the region. This feature amount will be referred to as the 1 st feature amount hereinafter.
The second feature value is the frequency of occurrence of a change in value from the immediately preceding data frame as viewed in time series. The feature amount can be obtained by dividing the number of times the value of the data field in the area indicated by the split pattern candidate has changed by (the number of records extracted from the reception log and including the common ID — 1). The number of times the value of the data field has changed can be determined by obtaining the difference in the area of the chronologically ordered records and counting the number of times the difference is not 0. For example, as shown in fig. 12, there are 256 records in which, in the case where the number of times that the value of the area (13, 8) has changed from the data frame received immediately before is 51 times, the feature amount in the area (13, 8) is 51/(256-1) ═ 0.2. This feature amount will be referred to as a 2 nd feature amount hereinafter.
The third feature quantity is a variance of a variation quantity of values from an immediately preceding data frame, which is generated as observed in time series. The feature amount can be calculated from the amount of change obtained from the difference as described above. This feature amount will be referred to as a 3 rd feature amount hereinafter.
(step S14) the payload dividing unit 140 selects, from among the division pattern candidates, the division pattern candidate whose feature quantity extracted in step S13 satisfies a predetermined condition as the division pattern indicating the region of the field belonging to the type of the fixed value. This selection will be described using an example in 1.12 described later.
Further, since one bit is not included in 2 fields, the payload division unit 140 excludes the division pattern candidates at least partially overlapping the region selected in step S14 from the objects of condition determination in the subsequent steps. Hereinafter, the remaining split mode candidates are referred to as 1 st payload split mode candidates.
(step S15) the payload dividing unit 140 selects, from the 1 st payload division pattern candidates, the division pattern candidate whose feature quantity extracted in step S13 satisfies the predetermined condition as the division pattern of the region of the field that indicates the type of the counter. This selection will be described using an example in 1.13 described later.
Further, the payload dividing unit 140 excludes the division pattern candidates at least partially overlapping the region selected in step S15 from the objects of condition determination in the subsequent steps. Hereinafter, the remaining segment pattern candidates are referred to as 2 nd payload segment pattern candidates.
(step S16) the payload dividing unit 140 selects, from the 2 nd payload division pattern candidates, the division pattern candidate whose feature quantity extracted in step S13 satisfies the predetermined condition as the division pattern of the region of the field that indicates the type of the continuous value. This selection will be described using an example in 1.14 described later.
Further, the payload dividing unit 140 excludes the division pattern candidates at least partially overlapping the region selected in step S16 from the objects of condition determination in the subsequent steps. Hereinafter, the remaining segment pattern candidates are referred to as 3 rd payload segment pattern candidates.
(step S17) the payload dividing unit 140 selects, from the 3 rd payload division pattern candidates, the division pattern candidate whose feature quantity extracted in step S13 satisfies the predetermined condition as the division pattern of the region of the field indicating the type belonging to the checksum. This selection will be described using an example in 1.15 described later.
(step S18) the payload dividing section 140 selects the division pattern candidates that remain as the division patterns of the area of the field indicating the type belonging to the state. This selection will be described using an example in 1.16 described later.
The extraction of the field from the data field of the data frame of 1 kind of ID in step S18 is completed, and the process returns to step S12. If the data frame of another ID is unprocessed, the payload division unit 140 performs the processing at and after step S13.
<1.12 field of fixed value >
Fig. 13 is a flowchart of an example of the extraction processing of the fixed value field in step S14 by the payload dividing unit 140. Fig. 14 is a diagram illustrating an example of the process. It is also conceivable that such table data as shown in fig. 14 is held in the memory of the monitoring ECU100 as a result of the processing of step S13.
First, the payload division unit 140 extracts a division pattern candidate whose 1 st feature quantity satisfies the condition that it is 1 from among the division pattern candidates whose feature quantities are calculated in the 3 types described above (step S141). That is, the values of the extractable data field all represent common range split pattern candidates in the records extracted from the reception log.
In the table illustrated in fig. 14, each row indicates the start bit position (Index) of an area indicated by a division pattern candidate of a 5-byte data field, and each column indicates the bit Length (Length) of the area. The feature amounts calculated in step S13 are included in the cell in the order of the number of patterns of values, the frequency of occurrence of changes, and the variance of the amount of change, which are the 1 st feature amount, the 2 nd feature amount, and the 3 rd feature amount. In addition, a slash is drawn in a unit indicating a combination of the start bit position and the bit length that is not generated in the data field. Note that some of the cells are "…" by omitting the description of the presence or absence of the feature value or the combination.
In this example, the segmented pattern candidates extracted in step S141 are segmented pattern candidates indicating the regions (29, 1), (29, 2), (29, 3), (29, 4), (30, 1), (30, 2), (30, 3), (31, 1), (31, 2), and (32, 1).
(step S142) the payload division unit 140 further screens the extracted division pattern candidates with reference to a predetermined condition. Specifically, when the entire region indicated by 1 of the extracted segment pattern candidates is included in the regions indicated by the other segment pattern candidates, the 1 segment pattern candidate is excluded. This excludes the split mode candidates that represent only a part of the fixed value region composed of consecutive bits.
(step S143) the payload dividing section 140 selects the remaining division pattern candidates as the division patterns indicating the areas belonging to the fields of the fixed value type. In the above example, as a result of execution of step S142, the division mode candidates representing the areas (29, 4) are left, and therefore the division mode candidates are selected as areas belonging to fields of a fixed value type.
(step S144) the payload dividing unit 140 deletes the other split mode candidates that overlap the split mode candidate selected in step S143, that is, that include the bit included in the selected split mode candidate.
In the example in which the partition mode candidate indicating the region (29, 4) is selected in step S143, the partition mode candidate including any one of the 29 th bit to the 32 th bit of the data field 5 bytes long is deleted in step S144. More specifically, the split mode candidates having a start position of 1 and a bit length of 29 to 40 and the split mode candidates having a start position of 2 and a bit length of 28 to 39 are deleted. In addition, all the division modes with the start positions of 29 to 32 are deleted. The remaining split mode candidates correspond to the 1 st payload split mode candidate described above.
(step S145) the payload division unit 140 outputs the result of the division mode in which the area indicating the fixed value field is selected. In this example, the payload division unit 140 writes, in the memory or the like of the monitoring ECU100, that the field having the start position of 29 and the bit length of 4 is a field of a type belonging to a fixed value, and ends step S14.
<1.13 field of counter >
Fig. 15 is a flowchart of an example of the extraction processing of the counter field in step S15 by the payload dividing unit 140.
(step S151) first, the payload division unit 140 extracts, from the 1 st payload division pattern candidates described above, the division pattern candidates whose 1 st feature amount matches 2^ (bit length of the division pattern) or the number of records extracted from the reception log in step S11. That is, among the records extracted in step S11, records that can be represented by all values represented by the bit length of each split pattern candidate or records that differ in value from all records are extracted.
(step S152) the payload division unit 140 refers to the reception log holding unit 190, and extracts all the values of the regions indicated by the extracted division pattern candidates. Then, from among the division pattern candidates extracted in step S151, division pattern candidates in which the values of the extracted fields are sequentially incremented in the reception order, or division pattern candidates in which the values of all bits are 0 in the next record are returned to 0 at the time of overflow (overflow), that is, in which all the bits are expressed as binary numbers and all the bits are 1.
(step S153) the payload dividing unit 140 selects, as the division pattern indicating the region belonging to the field of the type of counter, a candidate that does not overlap with the candidates of the other division patterns among the division patterns extracted in step S152.
(step S154) the payload dividing unit 140 excludes the divided pattern candidates which are part of the other divided pattern candidates among the divided pattern candidates extracted in step S152 and which do not overlap with the other divided pattern candidates, and further selects the divided pattern as the area indicating the field belonging to the type of counter. This is a step performed to find the longest bit column among the bit columns whose values are incremented as a field of one counter.
(step S155) the payload dividing unit 140 deletes the other split mode candidates that overlap the split mode candidate selected in steps S153 and S154, that is, that include the bit included in the selected split mode candidate. Step S155 is the same as step S144, and therefore, detailed description thereof is omitted. The remaining split mode candidates as a result of step S155 correspond to the 2 nd payload split mode candidate described above.
(step S156) the payload division unit 140 outputs the result of selecting the division mode of the area of the field indicating the counter, and ends step S15.
As a modification of the counter field extraction method, the increments may be increased one by one, or may be increased two by two, and may be increased at any value as long as the increments are increased. The decremented counter may also be further extracted. Similarly, the decrements may be reduced one by one, or two by two, and may be reduced at any value as long as the decrements are continuously reduced.
In step S151, a segmentation pattern candidate indicating a segmentation pattern in which the value has changed in all records may be extracted, or a segmentation pattern candidate in which the 2 nd feature amount is 1 may be extracted based on the 2 nd feature amount.
<1.14 field of continuous value >
Fig. 16 and 17 are flowcharts showing an example of the process of extracting the continuous value field in step S16 by the payload dividing unit 140. Fig. 18A and 18B are diagrams illustrating an example of the process.
Here, the 2 nd payload division mode candidates, that is, the division mode candidates remaining when the extraction process of the field of the continuous value is started, belong to any one of the continuous value, the checksum, and the state. Of these various fields, the variance (3 rd feature quantity) of the change quantity of the field of the continuous value compared with the segmentation pattern candidates belonging to other types of the same bit length is considered to be small. The reason for this will be explained below.
The checksum or flag preferably has discrete values, and the upper bits of the field change independently of the lower bits, so that variations in the values are liable to occur. Therefore, the variance of the variation amount of the value of the field is large. On the other hand, for a continuous value, the change in value is continuous, and the transition of the result of a change in the lower bits of the field appears as a change in the upper bits, and therefore the amount of change in value converges within a certain range. Therefore, the variance of the variation amount of the value of the field is small.
In addition, in the case where the upper part is a continuous value and the lower part is not a continuous value in the region indicated by one split pattern candidate, even if the values of the bits in the lower part change independently, the amount of change in the upper part becomes dominant, so that variation in the amount of change in the entire region can be suppressed, and the variance in the amount of change in the field becomes small.
Further, regarding the partition pattern candidates represented by using the bits other than the most significant bit of the consecutive value field as the start bit position, since overflow or underflow (underflow) occurs at the time of change of the value and the value changes rapidly from a large value to a small value or from a small value to a large value, variation occurs in the amount of change, and the variance thereof becomes large.
Further, since the field of the counter is not included in the 2 nd payload division mode candidate, neither overflow nor underflow occurs in the division mode candidates indicating the area from the highest order bit of the fields of consecutive values.
Based on such an idea, the division pattern candidates of the region representing the field of the continuous value are screened by finding the division pattern candidate whose variance of the change in the value of the region is relatively small among the 2 nd payload division pattern candidates, that is, the division pattern candidates remaining at the time of starting the extraction process of the field of the continuous value.
The extraction process of the field of the continuous value is roughly divided into two parts, the process of determining the start bit position of the field shown in fig. 16 and the process of determining the bit length of the field shown in fig. 17.
First, the determination of the start bit position of the field will be described with reference to fig. 16, 18A, and 18B.
(step S161) for each of the divided pattern candidates, an outlier score indicating an outlier of the variance of the variation, which is the 3 rd feature amount, compared with other divided pattern candidates having the same bit length regardless of the start bit position is calculated. This step will be described using a specific example shown in fig. 18A and 18B.
In the table of fig. 18A, the start bit position of each divided pattern candidate is shown in the row, the bit length is shown in the column, and the variance (3 rd feature quantity) of the change amount calculated in step S13 for each divided pattern candidate is described in the cell. Note that the unit of the table including the value of the 3 rd feature value is obtained by deleting the division pattern candidates of the region determined to represent the field of another type (that is, a fixed value or a counter) in steps S14 and S15 from the table shown in fig. 14, and the description of the 1 st feature value and the 2 nd feature value is omitted for easy viewing. The payload division unit 140 starts the process of step S161 for such data.
Referring to the table of fig. 18A, for example, for the divided mode candidates whose start position is 11 and whose field length is 1, the variance of the variation is 1. Similarly, for the split mode candidates with the start position of 11 and the bit lengths of 2, 8, 13, and 14, the variance of the variation amounts is 1, 10, 100, and 100, respectively. The variances of the variation amounts of the split mode candidates having the start position of 12 and the bit lengths of 1, 2, 8, and 13 are 1, 2, 15, and 150, respectively. In addition, for the split mode candidate whose start bit position is 12 and bit length is 14, since the 25 th bit has been already determined to be a fixed value or a field of a counter, it has been deleted by step S14 or S15 and is not included in the 2 nd payload split mode candidate. The same applies to the division pattern candidates indicated by other cells to which x is added. The variance of the variation of the split mode candidates having the start position 23 and the bit lengths 1 and 2 is 1 and 2, respectively, and the variance of the variation of the split mode candidates having the start position 24 and the bit length 1 is 1.
In the last row, the average value of the variance of the variation amount of each split pattern candidate of the same bit length calculated by the payload splitting unit 140 in the process of step S161 is described. That is, the average of the variance of the variation amounts of the divided pattern candidates of bit lengths 1, 2, 8, 13, and 14 is 1, 80, 125, and 100, respectively.
Next, the payload division unit 140 calculates an outlier score indicating how many of the 3 rd feature values of each of the split pattern candidates shown in the table of fig. 18A are outliers among the 3 rd feature values of the split pattern candidates having the same bit length. The payload segmentation unit 140 can calculate the outlier score using a statistical or machine learning method. For example, the 3 rd feature amount of each of the segment pattern candidates may be calculated based on the generation frequency of the 3 rd feature amount assuming that the 3 rd feature amount follows a normal distribution, or an Outlier detection algorithm such as a K-neighborhood method or a Local anomaly Factor (Local Outlier Factor) may be used.
Here, an example is shown in which the degree of low of the occurrence probability is scored when the occurrence frequency p of the 3 rd feature quantity of each of the segmented pattern candidates follows a normal distribution for each bit length. p is a probability density function in which the mean m and the variance v of the variances in the same bit length are respectively defined as the normal distribution of the mean and the variance. Here, if the 3 rd feature value of the split pattern candidate is F2, p can be calculated by the following expression 1.
p (F2) {1/(2 π v) ^ (1/2) } exp { - (F2-m) ^2/2v } … (formula 1)
The average obtained by the payload dividing unit 140 is the average of the 3 rd feature values of the divided pattern candidates having the same bit length among the divided pattern candidates, and the variance can be obtained using the average obtained just before. The score is calculated from-Log (p). Each cell of the table of fig. 18B contains the score thus calculated.
Referring to fig. 18B, the outlier scores of the partition patterns with a start position of 11 and bit lengths of 1, 2, 8, and 13 are 0, 1, 4, and 2, respectively. However, as for the bit length 14, since there is no divided pattern having a bit length of 14 among the other divided pattern candidates, the outlier score is not calculated.
In addition, for the outlier score, the larger the difference from the average, the larger the value. Taking the case of a bit length of 8 as an example, the outlier score of the split mode candidate at the start bit position 11 having an average variance of 80 and an average variance of 10 is 4 and is greater than the outlier score of the split mode candidate at the start bit position 12 having an average variance of 15.
When the calculated outlier score is an index different depending on the bit length, the payload dividing unit 140 may unify the outlier scores into the same index by normalization or the like.
(step S162) the payload division unit 140 calculates the average of the outlier scores obtained in step S161 (hereinafter referred to as average score) for each of the start bit positions of the division pattern candidates. In the example of fig. 18B, the average score of the split mode candidates having the start position of 11 and the bit lengths of 1 to 13 (including scores not shown in the figure) is 4. Similarly, the outliers of the partition pattern with the starting position of 12 and bit lengths of 1, 2, 8, 13 are scored as 0, 1, 3, 2, and the average score of 1-13 is 2. The outlier scores of the segmented patterns with a start position of 23 and bit lengths of 1 and 2 are 0 and 0, respectively, and the average score is 0. The segmentation pattern with a start position of 24 and a bit length of 1 has an outlier score of 0 and an average score of 0.
In this example, although the divided pattern candidates having the bit length of 1 are described as processing targets of the payload dividing unit 140 in step S16, the minimum bit length of the fields of consecutive values may be determined in advance, and the shorter divided pattern candidates may be excluded from the predetermined processing targets. This is effective from the viewpoint of processing speed and segmentation accuracy.
(step S163) the payload division unit 140 confirms whether or not there is a start bit position satisfying 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 satisfying the condition (no), the process ends in step S16, and if there is any, the process proceeds to step S164.
(step S164) the start bit position satisfying the condition of step S163 is determined as the start bit position of the field of the continuous value. The payload division unit 140 determines the bit length of the field of the continuous value in the subsequent steps shown in fig. 17.
(step S165) the payload dividing unit 140 extracts a division pattern candidate having a bit length further equal to a predetermined value from the division pattern candidates having the start bit position satisfying the condition of step S163. The predetermined value is determined based on the assumption that the field of the continuous value has at least a bit length used for notifying information such as a physical quantity measured by the sensor, for example, and is 4, for example.
(step S166) the payload dividing unit 140 determines whether or not the split mode candidate having the longer same start bit position contains a field having a value of a continuous value, with respect to (Index, Length) indicated by the split mode candidate extracted in step S165. The payload division unit 140 performs this determination using 2 conditions.
One condition is that the generation frequency of the 2 nd feature quantity, that is, the change in value, of the split pattern candidate (Index + Length, 1) is larger than the 2 nd feature quantity of the split pattern (Index + Length-1, 1). That is, the following is set as a condition: the value of the lowest-order adjacent bit of the split pattern candidate extracted in step S165 is changed more frequently than the value of the lowest-order bit of the split pattern candidate. Hereinafter, this condition is referred to as condition 1.
Another condition is that the split pattern candidate representing the region of (Index, Length +1) is not determined. That is, the following is set as a condition: the type of the divided pattern candidate indicating a 1-bit-long region at the same start bit position as the divided pattern candidate extracted in step S165 is not determined. Hereinafter, this condition is referred to as condition 2.
If conditions 1 and 2 are satisfied (yes), payload division unit 140 proceeds to step S167, otherwise (no), payload division unit 140 proceeds to step S168.
(step S167) the payload division unit 140 increments the Length value. Then, step S166 is executed again.
Through steps S166 and S167, it is possible to determine whether or not to represent continuous values even in an area of a longer number of bits, and it is possible to determine a very long bit length representing continuous values.
If the condition of step S166 is not satisfied, the payload division unit 140 proceeds to step S168.
(step S168) the payload division unit 140 selects, as the division pattern representing the continuous value, the division pattern candidate representing the start bit position determined in step S164 and the bit length determined in step S166. Further, other divided pattern candidates including the bit included in the selected divided pattern candidate are deleted. The payload division unit 140 outputs the result of selecting the division pattern of the region of the field indicating the continuous value, and returns to step S163. This is to confirm whether there are any other segmentation mode candidates for the start bit position that satisfy the predetermined condition. The remaining split mode candidates as a result of step S163 correspond to the above-described 3 rd payload split mode candidates.
The process of determining the bit length of the field of the continuous value shown in fig. 17 will be described using a specific example. In this example, the following is assumed: in step S164, the start bit position is determined to be 11, and the predetermined value indicating the bit length in step S165 is 4. That is, the (Index, Length) of the region indicated by the split pattern candidate extracted in step S165 is (11, 4). Fig. 19 shows an extract of the 2 nd feature value calculated in step S13. The table shown in fig. 19 is also or alternatively a part of the data in the table shown in fig. 14.
In this example, in step S166, the frequency of occurrence of a change in the comparison value between the lowest bit of the area (11, 4) and the bit located next to the lowest bit of the area is increased. That is, the 2 nd feature quantity of the 1 st bit of the 15 th bit (i.e., the region (15, 1)) is compared with the 2 nd feature quantity of the 1 st bit of the 16 th bit (i.e., the region (16, 1)). Referring to fig. 19, the 2 nd characteristic amount of the region (15, 1) is 0.25, and the 2 nd characteristic amount of the region (16, 1) is 0.28. Thus, condition 1 is satisfied.
In step S166, it is further determined whether or not the type is determined for a region (11, 5) having a bit length 1 bit longer than that of the region (11, 4). For convenience of explanation, in this example, it is assumed that the type of the region is not determined, that is, condition 2 is also satisfied (step S166: yes). Therefore, in step S167, the value of Length is incremented by 1.
Hereinafter, the same determination is continued, and Length is incremented to 14. In step S166, the frequency of occurrence of a change in comparison value between the lowest-order region (24, 1) of the regions (11, 25) and the region (25, 1) is determined. Referring to fig. 19, the 2 nd characteristic amount of the region (25, 1) is 0, and the 2 nd characteristic amount of the region (24, 1) is 0.40. Therefore, the condition 1 is not satisfied, and thus the result of the determination of step S166 is no.
In this manner, the payload division unit 140 selects the division mode of the region of the field indicating the continuous value based on the 2 nd feature quantity and the 3 rd feature quantity. More specifically, first, the segmented pattern candidates are extracted based on whether or not the variance of the variation amount, which is the 3 rd feature amount, of each segmented pattern candidate is off average by the same bit length. Then, it is determined whether or not the split pattern candidate indicates a region of a field conforming to the type of the continuous value, based on the magnitude relation of the 2 nd feature quantity of the split pattern candidate representing each bit of the extracted split pattern candidate as a region, that is, the occurrence frequency of the change.
The procedure of the process of selecting the division pattern candidate indicating the region of the field of the continuous value is not limited to the above-described procedure.
For example, the division pattern candidates indicating the start bit positions determined in step S164, that is, having an outlier score higher than a predetermined threshold value may be selected as the division patterns indicating the areas of the fields of the continuous values. However, by performing the process of determining the bit length shown in fig. 17, the selection can be performed with higher accuracy.
One reason for this is because: the bit length with fewer segmentation pattern candidates remaining at the stage of executing step S16 may be low in reliability such as an occasional high outlier score. Alternatively, as described above, even in the case where the high-order portion is a continuous value and the low-order portion is not a continuous value, there is a possibility that: the outlier score became high, and fields that were erroneously extracted as a continuous value as a whole.
As a method of determining the bit length, the variance of the variation amount, which is the 3 rd feature amount, may be compared in step S166 instead of or in addition to the comparison of the 2 nd feature amount. Because, if the amount of change in the lower bits is not large to some extent, no transition occurs, and no change in the upper bits occurs.
As another method for determining the bit length, in step S166, a condition regarding the difference between the 2 nd feature amounts may be used to determine whether or not the bit length is extended, instead of or in addition to the magnitude relation of the 2 nd feature amount.
<1.15 field of checksum >
Fig. 20 is a flowchart showing an example of the checksum field extraction process in step S17 by the payload dividing unit 140.
For the checksum field, since the change in value is randomly visible, and the probability that the generation of each value will become the same is high, it is considered that the condition that the 1 st feature amount is somewhat larger than the bit size is satisfied in the 3 rd payload division pattern candidate. In addition, a priori knowledge that the bit length of the checksum is often 4 bits or 8 bits is often used for the condition, and the division pattern candidates satisfying the condition are selected as the division patterns of the region of the field representing the checksum. The following describes the respective steps of this process.
(step S171) the payload division unit 140 extracts, from the 3 rd payload division pattern candidates, division pattern candidates matching the 1 st feature quantity and 2^ (bit length of the division pattern) or the number of records extracted from the reception log in step S11. That is, among the records extracted in step S11, records that can be represented by all values represented by the bit length of each split pattern candidate or records having different values from all the records 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 division unit 140 selects, among the division pattern candidates extracted in step S172, a candidate that does not overlap with the candidates of the other division patterns as a division pattern indicating an area of a field belonging to the type of checksum.
(step S174) the payload division unit 140 excludes the division pattern that is a part of the other division pattern candidates from the division patterns that overlap with the other division pattern candidates extracted in step S172, and further selects the division pattern as the division pattern of the area of the field indicating the type of the checksum. This is performed to find the longest field as a field of one checksum in the bit sequence satisfying the conditions used in steps S171 and S172.
(step S175) the payload dividing unit 140 deletes the other split pattern candidates that overlap the split pattern candidate selected in steps S173 and S174, that is, that include the bits included in the selected split pattern candidate. Step S175 is the same as step S144 or S155, and therefore, detailed description thereof is omitted.
(step S176) the payload division unit 140 outputs the result of the division pattern of the area in which the field indicating the checksum is selected, and the process ends at step S17.
The processing contents in the above-described steps can be variously modified. For example, although the common condition with step S151 is used in step S171, a more relaxed condition may be used. For example, the condition that the number of the 1 st feature and 2^ (the bit length of the division pattern) or the number of the records extracted from the reception log in step S11 is 80% or more may be used. Because: in the field of the checksum, the change in value is irregular depending on the number of patterns, and the represented value is duplicated, and the number of kinds is highly likely to be small, as compared with the field of the counter.
The 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. In addition, when extracting a plurality of bit-length split pattern candidates, a split pattern candidate having a long bit length may be preferentially extracted.
<1.16 State field >
Fig. 21 is a flowchart showing the field extraction processing of the state.
(step S181) the payload dividing unit 140 selects, as a division pattern indicating a region of a field belonging to the type of the state, a candidate that does not overlap with candidates of another division pattern among the division pattern candidates remaining after the end of step S17.
(step S182) the payload dividing unit 140 removes the divided pattern candidates which are part of the other divided pattern candidates from the divided candidate patterns overlapping with the other divided pattern candidates extracted in step S181, and further selects the divided pattern as the area of the field indicating the type belonging to the state. This is a step performed to find a field of the longest bit column among the bit columns as a field of one state.
(step S183) the payload division unit 140 outputs the result of the division mode of the area in which the field indicating the status is selected, and ends step S18.
The division processing of the data field by executing step S13 to step S18 shown in fig. 11 described in 1.11 by the payload division unit 140 is completed as described above.
When the series of steps is executed for the data fields included in the 1-type data frame having the common ID, the payload dividing unit 140 returns to step S12, and performs the data field dividing process for the data fields included in the data frames of the other unprocessed IDs.
When the division of the data field included in the data frame of the type indicated by each ID is completed, the result (hereinafter also referred to as a field extraction result) output in steps S143, S156, S168, S176, or S183 is held in the memory of the monitoring ECU100 as, for example, each piece of information of the ID in the data included in the table of fig. 7, the start, the length, and the type of the information on the data field.
In the monitoring ECU100, the feature extraction unit 150 moves to the normal model generation process using the information of the field extraction result (step S9). The normal model represents a normal range of variation in the value of each field, and is used, for example, in the determination of an abnormality in a data frame.
The processing of generating the normal model by the feature extraction unit 150 will be described below.
<1.17 processing by the feature extraction section 150 >
A series of steps executed by the feature extraction unit 150 in the process of generating the normal model will be described with reference to a flowchart shown in fig. 22.
(step S21) the feature extraction unit 150 selects an ID for which a normal model is not generated, from among the IDs indicated by the field division results output from the payload division unit 140.
(step S22) 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 and the variance of the reception intervals of the data frames of the ID based on 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 checks whether or not a normal model is generated for all IDs. If normal models have been generated for all IDs ("YES"), step S9 ends. Otherwise ("no") returns to step S21.
Fig. 23 is a flowchart of an example of the processing executed by the feature extraction unit 150 to acquire behavior information in step S23.
(step S231) the feature extraction unit 150 checks whether or not the unprocessed field is included in the field belonging to the type of the action information acquisition target among the types of the fields indicated by the field division result. The types of acquisition targets of behavior information are a fixed value, a continuous value, and a state. If there is no unprocessed field in the type of the action information acquisition target (no), the feature extraction unit 150 ends step S23. If there is an unprocessed field in the type of the action information acquisition target ("yes"), the feature extraction unit 150 proceeds to step S232.
(step S232) the feature extraction unit 150 extracts the value of the unprocessed field from the reception log stored in the reception log holding unit 190, in accordance with the type of the acquisition target of the behavior information confirmed in step S231.
(step S233) the feature extraction section 150 confirms whether the type of the field is a fixed value. If the type of the field is a fixed value (yes), the feature extraction unit 150 proceeds to step S234. Otherwise ("no"), the feature extraction section 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 section 150 confirms whether the type of the field is a continuous value. If the type of the field is a continuous value (yes), the feature extraction unit 150 proceeds to step S236. Otherwise ("no"), the feature extraction section 150 proceeds to step S237.
(step S236) the feature extraction unit 150 extracts and acquires the average and variance of the variation amounts of the extracted fields as behavior information, and returns to step S231. The average and variance of the change amounts are the 3 rd feature amounts calculated for the divided pattern candidates representing the region of the field in step S13, but may be recalculated by the feature extraction unit 150 in this step.
(step S237) the feature extraction unit 150 extracts and acquires the frequency of occurrence 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 3 rd feature amounts calculated for the divided pattern candidates representing the region of the field in step S13, but may be recalculated by the feature extraction unit 150 in this step.
<1.18 working example of the feature extraction section 150 >
Fig. 24 is a diagram illustrating an example of a part of the operation of the feature extraction unit 150 to execute the processing of the flowchart illustrated in fig. 23.
Referring to fig. 24, the feature extraction unit 150 checks whether or not the field of the type belonging to the acquisition target of behavior information includes an unprocessed field in the field division result output from the payload division unit 140 (step S231). In this example, the type determined to contain the continuous value is confirmed as a result of the confirmation.
Next, the feature extraction unit 150 acquires the value of the field of the type whose presence is confirmed in step S231 from the reception log stored in the reception log storage unit 190 (step S232). In this example, the value of a field with a start bit position of 11 and a bit length of 14 is obtained. Since the type 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 change amount of the field value (step S236). If the type is a fixed value, the value itself of the field acquired in step S232 is acquired as a status, and if the type is a status, the frequency of occurrence of a change in the value of the field is acquired.
The feature extraction unit 150 calculates and acquires statistical information (reception interval average, variance) on the reception intervals of data frames of the same ID in total. Using the information and the field division result thus obtained, the feature extraction unit 150 calculates and outputs the normal model illustrated in fig. 7 (step S25), and stores it in the normal model holding unit 191.
<1.19 flow chart of processing of abnormality detection unit 160 >
A series of steps executed by the abnormality detection unit 160 in the abnormality detection process (step S4 in fig. 8) using the normal model will be described with reference to the flowchart shown in fig. 25.
(step S31) the abnormality detector 160 refers to the corresponding normal pattern stored in the normal pattern holder 191 for the ID of the data frame received from the bus 300.
(step S32) the abnormality detection unit 160 refers to the corresponding reception log stored in the reception log holding unit 190 for the ID of the received data frame.
(step S33) the abnormality detection unit 160 verifies the data fields included in the record in the reception log to be referred to, 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) in the case where an abnormality in the result of verification is detected (yes), the abnormality detection section 160 proceeds to step S35, otherwise (no) the abnormality detection processing is ended.
(step S35) the abnormality detection unit 160 requests the frame generation unit 170 to generate a data frame for notifying other ECUs of an abnormality, and ends the abnormality detection process.
Fig. 26 is a flowchart of an example of the process 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 or not an unverified field exists in the data field for the received data frame. If there are no unverified fields, that is, if the verification of all the fields is completed ("no"), step S33 is ended. If there is an unverified field (yes), S3302 is entered.
(step S3302) the abnormality detection unit 160 extracts the value of the field to be verified next from the reception log held in the reception log holding unit 190, and this field is verified.
(step S3303) the abnormality detection unit 160 determines whether or not the type of the extracted field is a fixed value. If the value is a fixed value (yes), the abnormality detection unit 160 proceeds to step S3304. If not the fixed value ("no"), abnormality detection unit 160 proceeds to S3305.
(step S3304) 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. If the value of the behavior information is equal to that of the normal model ("yes"), the abnormality detection unit 160 returns to step S3301. Otherwise ("no"), the abnormality detection unit 160 proceeds to step S3311.
(step S3305) the abnormality detection unit 160 determines whether or not the type of the extracted field is a counter. If the counter is present (yes), the abnormality detection unit 160 proceeds to step S3306. If not the counter ("no"), the abnormality detection unit 160 proceeds to step S3307.
(step S3306) the abnormality detection unit 160 determines whether or not the values of the extracted fields are incremented in chronological order. When the numbers increase in chronological order (yes), the abnormality detection unit 160 returns to step S3301. Otherwise ("no"), the abnormality detection unit 160 proceeds to step S3311.
(step S3307) the abnormality detection unit 160 determines whether or not the type of the extracted field is a continuous value. If the value is a continuous value (yes), the abnormality detection unit 160 proceeds to step S3308. Otherwise ("no"), the abnormality detection section 160 executes step S3309.
The abnormality detection unit 160 determines (step S3308) whether or not the variation in the extracted field value is a value close to the average value described in the behavior information of the normal model stored in the normal model storage unit 191. If the value is close to the average value described in the behavior information of the normal model (yes), the abnormality detection unit 160 returns to step S3301. Otherwise ("no"), the abnormality detection unit 160 proceeds to step S3311.
(step S3309) the abnormality detection unit 160 determines whether or not the type of the extracted field is in a state. If the state is "yes", the process proceeds to step S3310. If not (no), abnormality detection unit 160 proceeds to step S3301.
(step S3310) the abnormality detection unit 160 determines whether or not the frequency of occurrence of the change in the value of the extracted field is close to the frequency of occurrence of the change indicated by the behavior information of the normal model stored in the normal model holding unit 191. If the frequency of occurrence of the change described in the behavior information of the normal model is close (yes), the abnormality detection unit 160 returns to step S3301. Otherwise ("no"), the abnormality detection unit 160 proceeds to step S3311.
(step S3311) the abnormality detection unit 160 recognizes that an abnormality is detected, notifies the next step of the type of the abnormal field, and ends the verification process based on the behavior model (step S34 is executed).
The verification of the average and variance of the reception intervals of the data frames included in the normal model is not included in the flowchart of fig. 25 or 26, but may be performed separately by the abnormality detection unit 160. For example, before step S33 of the abnormality detection process shown in fig. 25, the abnormality detection unit 160 may perform a determination as to whether or not there is an abnormality or the likelihood of the abnormality is high in the reception interval between data frames having the corresponding IDs, and set the data field of the data frame having the abnormality or the likelihood of the abnormality as the verification target in step S33.
Hereinafter, an operation of detecting an abnormality of the monitoring ECU100 including the above-described components will be described using a specific example when an abnormal ECU that transmits an abnormal data frame is connected to the in-vehicle network 10.
<1.20 working example 1 of abnormality detection unit 160 >
Fig. 27 shows an example of the operation of the abnormality detection unit 160. In this example and the following examples, it is assumed that the monitor ECU100 holds the normal pattern shown in fig. 7 in the normal pattern holding unit 191.
Referring to fig. 27, ECU200a periodically transmits a data frame with an ID of 0x100, which includes a field indicating the vehicle speed, to bus 300. However, the irregular ECU transmits a data frame having an ID of 0x100 to the bus 300.
The monitoring ECU100 refers to the normal pattern held by the normal pattern holding unit 191 and the reception log held by the reception log holding unit 190 every time the data frame is received, and thereby determines whether or not the value of the data field deviates from the normal pattern (step S33). In addition, in fig. 27 to 29, the value of the data field of 5 bytes is expressed by a 16-ary number.
In the first 3 received data frames, the value of the data field conforms to the normal model, and thus it is determined that there is no abnormality. However, with respect to the 4 th received data frame, based on the fact that the start position shown by the normal model is 29 and the field having the data length of 4 is a fixed value, and does not match the case where the value is 0, an abnormality is detected for the field having the fixed value (step S3303: YES; S3304: No for underlined "1"; S3311).
In addition, regarding the 5 th received data frame, an abnormality is detected by a determination that the value of the counter field whose bit position is 1 and whose bit length is 8 is not incremented due to the influence of the immediately previously received data frame transmitted from the abnormal ECU (step S3305: YES; S3306: NO for the underlined "3"; S3311). In order to notify the detection of an abnormality, the frame generation unit 170 is notified of the ID of the data frame in which the abnormality is detected and information based on the type of the field in which the abnormality is detected (the abnormality in the field of the fixed value and the abnormality in the field of the counter), and a message for notifying the other ECU of the occurrence of the abnormality is requested to be generated (step S35).
In the monitoring ECU100, when an abnormality is detected in a data frame, the record of the data frame may be deleted from the reception log.
<1.21 working example 2 of abnormality detection unit 160 >
Fig. 28 shows another example of the operation of the abnormality detection unit 160. In this example, the same situation as that shown in fig. 27 is assumed except for the data frame transmitted by the irregular ECU.
In this example, the abnormal ECU transmits a data frame including an abnormality immediately after transmitting a normal data frame from ECU200 a. The monitoring ECU100 detects an abnormality based on the fact that the frequency of occurrence of a change in the status field having the start position of 26 and the bit length of 3 has deviated from 0.0001 indicated by the normal model in a plurality of data frames received sequentially within a predetermined time width (step S3309: yes; S3310: no for the occurrence of a change in the value with underline, S3311).
Note that, although an abnormality in the counter field is also detected as in the example of fig. 27, the description thereof is omitted in this example.
<1.22 working example 3 of abnormality detection unit 160 >
Fig. 29 shows an example of the operation of the abnormality detection unit 160. In this example, the same situation as the situation shown in fig. 27 and 28 is assumed except for the data frame transmitted by ECU200a and the data frame transmitted by the irregular ECU.
The abnormal ECU transmits a data frame containing an abnormality having an ID of 0x100 after 3 data frames having an ID of 0x100 are transmitted from ECU200 a. The monitoring ECU100 that received the data frame detects an abnormality based on a large difference that the average of the variation amounts is 10 and the variance is 100 as behavior information of a field of a continuous value having a start position of 11 and a bit length of 14, and the variation amount from the immediately previously received data frame of the field extracted from the reception log is 481(0x157C-0x139B is 0x1E1) (step S3307: yes; S3308: no for the variation amount of the underlined value; S3311).
Note that, although an abnormality in the counter field is also detected as in the example of fig. 27, the description thereof is omitted in this example.
<1.23 Effect >
In the present embodiment, the monitoring ECU100 monitors a data frame flowing in the in-vehicle network, and divides a data field included in the data frame into consecutive fields as significant bit sequences based on the counted feature quantities. Further, the monitoring ECU100 generates a normal model used for detection of an abnormality in each field obtained by the division. Further, the monitoring ECU100 can perform abnormality detection using a normal model to detect abnormality within the vehicle-mounted network.
Such a monitoring ECU100 does not need to be designed individually in advance even in the in-vehicle network systems of different specifications, and therefore can realize protection of the in-vehicle network with suppressed costs.
<2. modification >
The present disclosure is described based on the above embodiments, but the present disclosure is not limited to the above embodiments, and the following configurations are also included in the technical scope of the present disclosure.
(1) In the above embodiment, the field dividing unit, the feature extracting unit, and the abnormality detecting unit have been described as the constituent elements of the monitoring ECU, but it is not necessary to hold all the constituent elements in the same device. For example, the field dividing unit and the feature extracting unit may be components of a cloud server outside the vehicle, and the cloud server may divide a data frame flowing through the in-vehicle network system received via a wireless communication network such as a mobile phone network to which the in-vehicle network system can be connected into fields to generate the normal model. Also, the monitoring ECU may perform the abnormality detection process using the normal model downloaded from the cloud server. In this case, the monitoring ECU may not have an operation determination unit and may perform the abnormality detection processing all the time. Thus, the monitoring ECU only needs to have the abnormality detection unit, and installation becomes easy.
Further, the monitoring ECU performs the processes of dividing the data field, generating the normal model, and detecting the abnormality, but the present disclosure may be implemented as an information processing device, an information processing method, a program, or the like that executes only the division of the data field among these processes, or the processes up to the generation of the normal model. Such an information processing device and the like can be applied to, for example, development of a monitoring device for a network.
(2) In the above-described embodiment, the normal model is generated from the reception log obtained by collecting the data frames of the in-vehicle network for a certain period, but it may be unnecessary to collect the data frames from the in-vehicle network for a certain period in order to generate the normal model. For example, the normal model may be generated using a log collected in the past as an input. Further, the normal model may be generated for each of the plurality of logs, and the result obtained by combining the plurality of normal models may be used as the final normal model by majority decision or averaging. Therefore, it is not always necessary to collect data frames for a certain period before the start of network monitoring, and it is effective in a case where it is desired to implement abnormality detection processing in advance in many automobiles.
(3) In the above-described embodiment, an example in which a message including the ID of the data frame in which an abnormality is detected and the type of the field in which an abnormality is detected, that is, a data frame is transmitted in order to notify of an abnormality has been described as an action (action) in the case where an abnormality is detected, but the action after abnormality detection is not limited to this. For example, when an abnormality is detected, the monitoring ECU may invalidate the data frame including the field in which the abnormality is detected by transmitting an error frame. At this time, the monitoring ECU performs the abnormality detection process shown in fig. 25 during reception of the data frame. Further, a function of monitoring the ECU may be added to the gateway ECU on the in-vehicle network, so that the data frame in which the abnormality is detected is not transferred. Alternatively, the transfer of the data frame having the same kind of ID as the data frame in which the abnormality is detected, that is, the data frame having the common ID may be stopped. This is effective in the case where the present disclosure is implemented by using the gateway ECU as the monitoring ECU, and further, since information of many in-vehicle networks can be detected, there is an effect that the range of functions that can be implemented is also expanded.
Further, the user may be notified that an abnormality has occurred, the vehicle may be switched to the fail-safe mode, the generated abnormality may be left in a log, or the generated abnormality may be transmitted to a cloud server via a mobile phone network or the like. This enables flexible handling after abnormality detection. For example, the information on the abnormality may be provided from the cloud server to an in-vehicle network of the same type or version as the in-vehicle network system in which the abnormality is detected, or an in-vehicle network including a common ECU.
(4) In the above embodiment, the example of the ID in the standard format is shown, but the ID may be in the extended format.
(5) In the above embodiment, the generation of the normal model is performed after the collection mode for one hour with respect to the operation mode, but may be shorter than one hour or longer than one hour. Note that, the size of the log sufficient for extracting the feature amount may be determined independently of the time, and the normal model may be generated when the collection of the log of the size is completed. Further, an external interface may be provided, and the mode may be switched according to an instruction from the user. For example, the mode may be switched according to an instruction from the cloud server. This enables more flexible collection of data and operation according to the resources of the monitoring ECU.
(6) In the above embodiment, the reception log of the data frame, the normal model, and the vehicle state are for one ID, but may be held for one or more IDs.
In addition, when there are no plural types of data frames according to the communication standard, or when it is known that the data structure of the payload is common even when there are plural types, the ID may not be included in the reception log.
(7) In the above embodiment, an example in which data frames flow in the clear is shown, but may be encrypted. In addition, the data frame may include a message authentication code.
(8) In the above embodiment, the normal model and the reception log are held in plain text, but may be held after being encrypted.
(9) In the above-described embodiment, the data is stored in the data field in the Big-endian mode (Big-endia), but the data may be stored in the Little-endian mode (Little-endian).
(10) In the above-described embodiment, the example in which the average and variance of the reception intervals of the data frames are held for each ID is shown as the normal model, but an abnormality of the message may be detected in the abnormality detection process when the reception interval of the actually received data frame deviates from the average of the reception intervals described in the normal model more than the variance of the reception intervals. This is effective for the following cases: it is possible to detect not only an abnormality in the value of the field but also an abnormality in the time information using the message, and to further improve the detection accuracy by detecting the abnormality in many ways.
Although the reception time of the data frame is recorded in the reception log, the reception time may not be included in the reception log if the feature amount can be extracted using only the order without using the reception interval between the data frames. The order of reception may also be shown using the order of arrangement or consecutive numbering of the records in the reception log.
In addition, in the case where information of the reception interval average and the variance is not used for abnormality detection, the information may not be held in the normal model.
(11) In the above embodiment, the divided fields are classified into 5 types of fixed value, counter, continuous value, status, checksum, but do not necessarily need to be classified into these 5 types. For example, fields of the type not required for abnormality detection may not be included in the normal model.
In addition, the field of the checksum may be a field of the message authentication code.
In addition, all of these 5 types may not be distinguished from each other. For example, a field of a region in which a change of a value within a predetermined size or less occurs a predetermined number of times or more within a predetermined time width may be treated as one type of field. Such a field may contain a counter or a continuous value, and is an example of type 1 in the present modification. As another example, a field of an area taking discrete values according to various feature quantities may also be handled as one type. Such a field may contain a checksum or a status value indicating a flag or a status, and is an example of type 2 in the present modification.
(12) In the above embodiment, the white list, the frequency of change of the field value (the frequency of occurrence of change), and the average and variance of the amount of change in the change of the field value are held as behavior information of the normal model, but the present invention is not limited thereto. For example, the upper limit or the lower limit of the range indicating the normal value of each characteristic amount may be held. In addition, the maximum value and the minimum value of the change amount in the change of the value of the field may be held. In addition, a white list of transitions in values when the value of a field changes may also be maintained. In addition, parameters applicable to the time-series model may be held. Further, the maximum value of the frequency of occurrence of the change per predetermined time (for example, per second) may be calculated from the record of the reception log and held. This increases the number of methods for abnormality detection processing, and enables more methods to capture an abnormality.
(13) In the above embodiment, as behavior information of the normal model, the average and variance of the change amount when the value changes are held for the fields of continuous values, and the ratio of the change in the value of the field is held for the field of the state.
(14) In the above embodiment, the type and behavior information are held for each field as a normal model, but the behavior information for a plurality of fields may be held. For example, data obtained by subjecting a field obtained by dividing a data field to dimension reduction processing such as principal component analysis and/or automatic coding may be held as a normal model. This makes it possible to generate a normal model that captures the relationship between fields, and is sometimes more effective than the abnormality detection for each simple field.
(15) In the above embodiment, one of the conditions for extracting the checksum in the payload division unit includes a case where the field length is 4 bits or 8 bits in the remaining division pattern candidates, but may be a value other than the above value. In particular, when the length of the checksum field is known in advance, the checksum field may be set to this value. When it is unknown in advance, the field can be divided with high accuracy by setting the length to be used frequently.
(16) In the above-described embodiment, the extracted record is a record indicating all values that can be expressed by the bit length of each split pattern candidate, but one of the conditions for extracting the checksum in the payload split unit may not be the condition. For example, it may also be checked whether the field is randomly visible. When the process includes the message authentication code, the data field can be divided with high accuracy, which is effective. In addition, when the method of calculating the checksum is known in advance, it is possible to extract the field of the checksum by checking whether or not the value of the split pattern candidate is a value calculated from the calculation formula of the checksum.
(17) In the above-described embodiment, at the time of dividing the data field, 3 kinds of the number of kinds of observed values (1 st feature amount), the frequency of change in the value of the field with respect to the number of observed data (2 nd feature amount), and the variance of the amount of change in the change in value (3 rd feature amount) are calculated for each division pattern, but it is not necessary to calculate all of the 3 kinds of feature amounts. For example, if it is desired to extract only a field of a fixed value, only the 1 st feature amount may be calculated, and the required feature amount may be selected and calculated from the field to be extracted. Further, other feature values that can be calculated from the above-described feature values may be used. For example, the feature value 1 and the number of kinds of values calculated from the field length and observed for the range of the desired values may be used. This can simplify the data field division processing, and is effective in terms of processing time and program size.
(18) In the above-described embodiment, when the data field is divided, the feature amount is calculated without changing the value of the data field for each division mode, but preprocessing for changing the value of the data field may be performed. For example, it is also possible to assume that the division pattern is a signed field, perform two's complement conversion processing, and calculate the feature. This is effective in order to divide the data field with high precision in the case where the fields of consecutive values are expressed in signed form.
(19) In the above-described embodiment, the feature extraction unit extracts the normal model by notifying the feature extraction unit of the information of the divided data field by the payload division unit, but the output itself of the payload division unit may be notified to the outside or stored inside.
(20) In the above-described embodiment, the payload division unit performs the data field division processing for all the IDs included in the reception log, but the data field division processing for all the IDs may not be performed. For example, the data field may be divided only for a previously designated ID, and the result may be output.
(21) In the above-described embodiment, the payload dividing unit divides the data field by extracting the feature amount for all the divided pattern candidates, but the data field division process may be performed only for a predetermined range. This makes it possible to increase the speed of processing by screening monitoring targets when it is desired to extract features from a large data field area at high speed. For example, the data field may be divided only for the upper 20 bits of the data field, or may be divided for an arbitrary range. Is effective from the viewpoint of processing time.
(22) In the above-described embodiment, the variance of the amount of change in the value change is used as the feature amount for capturing the time-series change in the field change, but features other than this may be used. For example, the distribution of the change amount of the value of the field may be used, or the feature amount using the moving average of the value of the field may be used.
(23) In the above-described embodiment, the CAN protocol is used as the in-vehicle network, but the present invention is not limited thereto. For example, CAN-FD (CAN with Flexible Data rate), FlexRay, Ethernet, LIN (Local Interconnect Network), MOST (media Oriented Systems transport), and the like CAN be used. Or may be a network in which these networks are combined as a sub-network.
(24) Each device in the above embodiments is, specifically, a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like. A computer program is recorded in the RAM or the hard disk unit. The microprocessor operates according to a computer program, and each device realizes its function. Here, the computer program is configured by combining a plurality of command codes indicating instructions to the computer in order to realize a predetermined function.
(25) A part or all of the components constituting each device of the above embodiments may be constituted by one system LSI (Large Scale Integration). The system LSI is a super-multifunctional LSI manufactured by integrating a plurality of components on one chip, and specifically is a computer system including a microprocessor, a ROM, a RAM, and the like. A computer program is recorded in the RAM. The system LSI achieves its functions by the microprocessor operating in accordance with the computer program.
Each part of the components constituting each of the devices may be individually formed into a single chip, or may be formed into a single chip including a part or all of them.
Although referred to as LSI here, depending on the degree of integration, it may be referred to as IC, LSI, super LSI, or extra LSI (ultra LSI). The method of integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. An FPGA (Field Programmable Gate Array) that can be programmed after LSI manufacturing or a reconfigurable processor (reconfigurable processor) that can reconfigure connection and setting of circuit cells inside LSI may be used.
Furthermore, if a technique for realizing an integrated circuit that can replace an LSI appears with the development of semiconductor technology or the advent of another derivative technique, it is needless to say that the functional blocks can be integrated by this technique. There is also the possibility of applying biotechnology and the like.
(26) Some or all of the components constituting each of the devices may be constituted by an IC card or a single module that is attachable to and detachable from each of the devices. The IC card or module is a computer system composed of a microprocessor, ROM, RAM, and the like. The IC card or module may also include the above-described super multifunctional LSI. The microprocessor operates according to the computer program, whereby the IC card or module realizes its functions. The IC card or the module may also have tamper-proof properties.
(27) The present disclosure may also be the method shown above. The present invention may be a computer program for realizing these methods by a computer, or may be a digital signal formed by the computer program.
In addition, the present disclosure can also record the computer program or the digital signal in a computer-readable recording medium, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD-ROM, a DVD-RAM, a BD (Blu-ray (registered trademark) Disc), a semiconductor memory, or the like. In addition, the digital signal may be recorded in these recording media.
In addition, the present disclosure may also transmit the computer program or the digital signal via an electric communication line, a wireless or wired communication line, a network typified by the internet, data broadcasting, or the like.
The present disclosure may be a computer system including a microprocessor and a memory, the memory storing the computer program, and the microprocessor operating according to the computer program.
The present invention may be implemented by another computer system independent of the computer system, which records and transfers the program or the digital signal in a recording medium, or transfers the program or the digital signal via a network or the like.
(28) The above embodiment and the above modification may be combined.
Industrial applicability
A data frame flowing through a vehicle-mounted network is monitored, data fields included in the data frame are divided according to statistical feature quantities, and a normal model is generated for each divided field. In addition, the monitoring ECU can detect abnormality within the in-vehicle network based on the normal model. Thus, even in a different in-vehicle network system, it is possible to protect the in-vehicle network without designing in advance and with a reduced cost.
Description of the reference numerals
10 a vehicle network; 100 monitoring the ECU; a 110 frame transmitting/receiving unit; a 120-frame collection unit; 130 a work judging section; 140 a payload dividing section; 150 a feature extraction unit; 160 an abnormality detection unit; 170 frame generating part; 180 a mode holding section; 190 a receiving log holding unit; 191 a normal model holding section; 200. 200a, 200b ECU; a 201 frame transmitting/receiving unit; a 202 frame processing unit; 203 external equipment input/output part; 204 frame generating part; a 210 speed sensor; 220 gear shifting; 230 a meter; 300 bus.
Claims (10)
1. An information processing method for processing a data frame flowing through a vehicle-mounted network including one or more electronic control units, the information processing method being performed by an information processing system including a storage unit, the information processing method comprising:
a frame collection step of receiving a plurality of data frames flowing through the on-vehicle network, acquiring a payload including at least one field included in each of the plurality of data frames from the data frame, and recording the payload as one record in a reception log held in the storage unit; and
a field extraction step of calculating, for each of a plurality of payload division pattern candidates representing mutually different regions within payloads of the plurality of data frames, one or more feature amounts related to time-series changes in values of the payloads within the regions based on the plurality of records, selecting a payload division pattern representing a region of a field located within the payload from the plurality of payload division pattern candidates based on the feature amounts, and outputting a field extraction result representing a region represented by the selected payload division pattern and a type of the field based on the feature amount,
the receive log further contains information indicative of an order in which the plurality of records were received,
the feature amount includes at least one of a 1 st feature amount, a 2 nd feature amount, and a 3 rd feature amount,
the 1 st feature amount represents the number of patterns of the time-series change,
the 2 nd characteristic amount represents the frequency of occurrence of the time-series change,
the 3 rd feature quantity represents statistical information on the amount of change in the time-series change,
the feature amounts include the 2 nd feature amount and the 3 rd feature amount,
the information processing system in the field extracting step,
the following continuous value field extraction steps are performed: selecting a payload division mode representing a region of a field of a continuous value type of a physical quantity represented by a value of the payload based on the 2 nd feature quantity and the 3 rd feature quantity from the plurality of payload division mode candidates, thereby selecting the payload division mode representing a field of a 1 st type,
the information processing system in the field extracting step,
calculating, for each of the plurality of payload segmentation pattern candidates, an outlier score indicating an outlier of the 3 rd feature quantity in the payload segmentation pattern candidates representing a region of the same data length,
calculating an average value of the outlier scores of the payload division mode candidates indicating a region having the same start bits among the payload division mode candidates,
selecting a payload division pattern indicating a region of the field corresponding to the continuous value type based on a magnitude relation of the 2 nd feature quantity of the payload division pattern candidate included in the payload division pattern candidate, from the payload division pattern candidates indicating the region in which the average value is equal to or greater than a predetermined threshold value.
2. The information processing method according to claim 1,
the information processing system in the field extracting step,
selecting, as the payload division mode of a region representing a field of type 1, the payload division mode candidate indicating a region in which one or more time-series changes exist in the value of the payload and the amount of change of each time included in the time-series changes is a predetermined size or less, based on the feature amount.
3. The information processing method according to claim 1,
the information processing system in the field extracting step,
selecting, from among the plurality of payload division pattern candidates, a payload division pattern indicating a region that changes every time the value of the payload and has a constant change amount for each time of the value of the payload as a payload division pattern indicating a region of a field of a counter type based on the feature amount, thereby selecting the payload division pattern indicating the field of the 1 st type.
4. The information processing method according to claim 3,
the information processing system in the field extracting step,
based on the feature amount, the payload division mode candidate indicating a region in which there is one or more time-series changes in the value of the payload and the value of the payload takes a discrete value is selected as the payload division mode indicating a region of a field of type 2.
5. The information processing method according to claim 4,
the type 2 is at least one of a checksum type and a status type,
the checksum type is used to check for a match of the value of the payload within the field,
the status type is a type in which a value of the payload within the field represents a predetermined status of a vehicle including the on-board network.
6. The information processing method according to claim 4,
the information processing system sequentially executes a fixed value field extraction step, a counter field extraction step, the continuous value field extraction step, and a type 2 field extraction step in the field extraction step,
in the fixed value field extraction step, a payload division mode candidate whose 1 st feature amount is 1 is selected as a payload division mode of a region indicating a field of a fixed value type from among the plurality of payload division mode candidates, and the remaining payload division mode candidates excluding the payload division mode candidate at least partially overlapping with the selected payload division mode from among the plurality of payload division mode candidates are set as 1 st payload division mode candidates,
in the counter field extraction step, a payload division pattern of a region indicating the counter type field is selected from the 1 st payload division pattern candidates, and the remaining payload division pattern candidates excluding the payload division pattern candidate that overlaps at least a part of the selected payload division pattern from the 1 st payload division pattern candidates are set as the 2 nd payload division pattern candidates,
in the continuous value field extraction step, a payload division pattern that indicates a region of the continuous value type field is selected from the 2 nd payload division pattern candidates using the 2 nd feature amount and the 3 rd feature amount from among the 2 nd payload division pattern candidates, and the remaining payload division pattern candidates excluding the payload division pattern candidate that overlaps at least a part of the selected payload division pattern from among the 2 nd payload division pattern candidates are set as the 3 rd payload division pattern candidates,
in the type 2 field extracting step, the 3 rd payload division mode candidate is selected as the payload division mode of the region of the type 2 field.
7. The information processing method according to any one of claims 1 to 6,
further comprising a feature extraction step executed by the information processing system, wherein in the feature extraction step, a normal model indicating a normal range of a change in a value of a field indicated by the selected payload division pattern is generated based on statistical information on a variation amount of a time-series change in the value of the field, based on the field extraction result and the reception log, and the generated normal model is further output.
8. The information processing method according to any one of claims 1 to 6,
the plurality of data frames each contain a data type ID indicating a kind of the data frame,
the information processing system is provided with a plurality of processing units,
recording the payload and the data category ID as the record in the reception log in the frame collection step,
and performing the field extraction step by taking a data frame common to the data category IDs as an object.
9. An information processing system includes a processor and a storage unit, processes a data frame flowing through a vehicle-mounted network including one or more electronic control units,
the processor is used for processing the data to be processed,
receiving a plurality of data frames flowing through the on-vehicle network, acquiring a payload composed of at least one field included in each of the data frames from each of the plurality of data frames, and recording the payload as one record in a reception log held in the storage unit,
calculating, from the plurality of records, one or more feature amounts relating to time-series changes in the values of the payloads in the plurality of regions, for each of a plurality of payload division pattern candidates representing different regions within the payloads in the plurality of data frames,
selecting a payload division mode representing a region of a field located within the payload, from the plurality of payload division mode candidates, based on the feature amount,
outputting a field extraction result indicating the region indicated by the selected payload division mode and the type of the field based on the feature amount,
the receive log further contains information indicative of an order in which the plurality of records were received,
the feature amount includes at least one of a 1 st feature amount, a 2 nd feature amount, and a 3 rd feature amount,
the 1 st feature amount represents the number of patterns of the time-series change,
the 2 nd characteristic amount represents the frequency of occurrence of the time-series change,
the 3 rd feature quantity represents statistical information on the amount of change in the time-series change,
the feature amounts include the 2 nd feature amount and the 3 rd feature amount,
the processor is used for processing the data to be processed,
selecting a payload division mode of an area of a field indicating a continuous value type of a physical quantity value representing the payload, based on the 2 nd feature quantity and the 3 rd feature quantity, from the plurality of payload division mode candidates, thereby selecting the payload division mode of the field indicating the 1 st type,
the processor is used for processing the data to be processed,
calculating, for each of the plurality of payload segmentation pattern candidates, an outlier score indicating an outlier of the 3 rd feature quantity in the payload segmentation pattern candidates representing a region of the same data length,
calculating an average value of the outlier scores of the payload division mode candidates indicating a region having the same start bits among the payload division mode candidates,
selecting a payload division pattern indicating a region of the field corresponding to the continuous value type based on a magnitude relation of the 2 nd feature quantity of the payload division pattern candidate included in the payload division pattern candidate, from the payload division pattern candidates indicating the region in which the average value is equal to or greater than a predetermined threshold value.
10. A computer-readable recording medium having a program recorded thereon, wherein the program is executed by a processor in an information processing system including the processor and a storage unit, and causes the information processing system to execute the information processing method according to claim 1.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016237049 | 2016-12-06 | ||
JP2016-237049 | 2016-12-06 | ||
JP2017-209871 | 2017-10-31 | ||
JP2017209871 | 2017-10-31 | ||
PCT/JP2017/040866 WO2018105330A1 (en) | 2016-12-06 | 2017-11-14 | Information processing method, information processng system, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108401491A CN108401491A (en) | 2018-08-14 |
CN108401491B true CN108401491B (en) | 2021-08-10 |
Family
ID=62491193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780003405.2A Active CN108401491B (en) | 2016-12-06 | 2017-11-14 | Information processing method, information processing system, and program |
Country Status (5)
Country | Link |
---|---|
US (2) | US10999248B2 (en) |
EP (1) | EP3554015B1 (en) |
JP (1) | JP6847101B2 (en) |
CN (1) | CN108401491B (en) |
WO (1) | WO2018105330A1 (en) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102017208547A1 (en) * | 2017-05-19 | 2018-11-22 | Robert Bosch Gmbh | Method for protecting a network from cyber attack |
KR102017218B1 (en) * | 2017-10-19 | 2019-09-02 | 재단법인 대구경북과학기술원 | Method and Apparatus for Network Security |
US11128400B2 (en) * | 2017-12-01 | 2021-09-21 | Nippon Telegraph And Telephone Corporation | Bit assignment estimating device, bit assignment estimating method, and program |
JP6552674B1 (en) * | 2018-04-27 | 2019-07-31 | 三菱電機株式会社 | Inspection system |
WO2019241145A1 (en) * | 2018-06-12 | 2019-12-19 | Intergraph Corporation | Artificial intelligence applications for computer-aided dispatch systems |
JP7378089B2 (en) * | 2018-06-13 | 2023-11-13 | パナソニックIpマネジメント株式会社 | Unauthorized communication detection device, unauthorized communication detection method, and manufacturing system |
WO2020021713A1 (en) * | 2018-07-27 | 2020-01-30 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | Fraud detection method and electronic control device for detecting frauds |
JP7182470B2 (en) * | 2019-01-11 | 2022-12-02 | 富士通株式会社 | Message processing device and message processing method |
CN112889246B (en) * | 2019-02-08 | 2023-09-22 | 松下电器(美国)知识产权公司 | Abnormality determination method, abnormality determination device, and program |
US11700270B2 (en) * | 2019-02-19 | 2023-07-11 | The Aerospace Corporation | Systems and methods for detecting a communication anomaly |
CN112840282B (en) * | 2019-03-29 | 2024-07-09 | 松下电器(美国)知识产权公司 | Abnormality detection method and abnormality detection device |
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 |
US11005872B2 (en) * | 2019-05-31 | 2021-05-11 | Gurucul Solutions, Llc | Anomaly detection in cybersecurity and fraud applications |
US11194691B2 (en) | 2019-05-31 | 2021-12-07 | Gurucul Solutions, Llc | Anomaly detection using deep learning models |
JP7234832B2 (en) * | 2019-07-03 | 2023-03-08 | 株式会社デンソー | electronic controller |
JP7268562B2 (en) * | 2019-09-30 | 2023-05-08 | 富士通株式会社 | METHOD AND INFORMATION PROCESSING APPARATUS FOR ESTIMATING MESSAGE FEATURES |
JP2021078057A (en) * | 2019-11-12 | 2021-05-20 | 株式会社オートネットワーク技術研究所 | In-vehicle relay device and information processing method |
KR102273410B1 (en) * | 2020-01-10 | 2021-07-06 | 성균관대학교산학협력단 | A device, system and a method for reprograming electronic control unit |
JP2021114656A (en) * | 2020-01-16 | 2021-08-05 | 富士通株式会社 | Determination method and information processing device |
JP7363510B2 (en) * | 2020-01-21 | 2023-10-18 | 株式会社オートネットワーク技術研究所 | Management device, identification information assignment method for in-vehicle devices, in-vehicle system, and data structure |
AU2020477732B2 (en) | 2020-11-19 | 2024-02-01 | Nippon Telegraph And Telephone Corporation | Estimation device, estimation method, and estimation program |
CN112583683B (en) * | 2020-12-29 | 2021-10-15 | 中国科学院声学研究所 | Master-slave CAN FD bus application layer communication method and system and electronic equipment |
JP7507205B2 (en) | 2021-12-20 | 2024-06-27 | 本田技研工業株式会社 | Communication monitoring device and communication monitoring method |
CN114297454B (en) * | 2021-12-30 | 2023-01-03 | 医渡云(北京)技术有限公司 | Method and device for discretizing features, electronic equipment and computer readable medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103354991A (en) * | 2010-11-03 | 2013-10-16 | 美国博通公司 | Vehicle communication network |
CN105474584A (en) * | 2013-09-27 | 2016-04-06 | 飞思卡尔半导体公司 | CAN FD end-of-frame detector, method for detecting the end of CAN FD frame, CAN bit stream processing device, and method of operating CAN bit stream processor |
WO2016056213A1 (en) * | 2014-10-07 | 2016-04-14 | 株式会社デンソー | Order determination apparatus used for remote control of vehicle and program product for order determination apparatus |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2012296587B2 (en) * | 2011-08-15 | 2016-04-21 | Jonathan William Roleder | Container assembly with improved retainer assembly and flavor inserts for aging a liquid |
CN103999410B (en) | 2011-12-22 | 2017-04-12 | 丰田自动车株式会社 | Communication system and communication method |
JP5880898B2 (en) * | 2014-05-08 | 2016-03-09 | パナソニックIpマネジメント株式会社 | Transmitter |
JP6594732B2 (en) * | 2015-01-20 | 2019-10-23 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | Fraud frame handling method, fraud detection electronic control unit, and in-vehicle network system |
-
2017
- 2017-11-14 WO PCT/JP2017/040866 patent/WO2018105330A1/en unknown
- 2017-11-14 JP JP2018517654A patent/JP6847101B2/en active Active
- 2017-11-14 EP EP17877833.8A patent/EP3554015B1/en active Active
- 2017-11-14 CN CN201780003405.2A patent/CN108401491B/en active Active
-
2018
- 2018-12-21 US US16/229,528 patent/US10999248B2/en active Active
-
2021
- 2021-04-06 US US17/223,772 patent/US11546298B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103354991A (en) * | 2010-11-03 | 2013-10-16 | 美国博通公司 | Vehicle communication network |
CN105474584A (en) * | 2013-09-27 | 2016-04-06 | 飞思卡尔半导体公司 | CAN FD end-of-frame detector, method for detecting the end of CAN FD frame, CAN bit stream processing device, and method of operating CAN bit stream processor |
WO2016056213A1 (en) * | 2014-10-07 | 2016-04-14 | 株式会社デンソー | Order determination apparatus used for remote control of vehicle and program product for order determination apparatus |
Non-Patent Citations (2)
Title |
---|
Anomaly Detection in Automobile Control Network Data with long Short-Term Memory Networks;TAYLOR ADRIAN ET AL;《2016 IEEE International Conference on Data Science and Advanced Analytics》;20161222;全文 * |
Field classification,modeling and anomaly detection in unknown CAN bus networks;MOTI MARKOVITZ ET AL;《VEHICULAR COMMUNICATIONS》;20170205;文章第3-5部分 * |
Also Published As
Publication number | Publication date |
---|---|
US20190116157A1 (en) | 2019-04-18 |
EP3554015B1 (en) | 2020-12-30 |
US20210226919A1 (en) | 2021-07-22 |
EP3554015A4 (en) | 2019-12-18 |
JPWO2018105330A1 (en) | 2019-10-24 |
WO2018105330A1 (en) | 2018-06-14 |
CN108401491A (en) | 2018-08-14 |
JP6847101B2 (en) | 2021-03-24 |
US11546298B2 (en) | 2023-01-03 |
EP3554015A1 (en) | 2019-10-16 |
US10999248B2 (en) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108401491B (en) | Information processing method, information processing system, and program | |
EP3598329B1 (en) | Information processing method, information processing system, and program | |
US10992688B2 (en) | Unauthorized activity detection method, monitoring electronic control unit, and onboard network system | |
EP3337102A1 (en) | Illegality detection electronic control unit, car onboard network system, and illegality detection method | |
CN109076016B (en) | Illegal communication detection criterion determining method, illegal communication detection criterion determining system, and recording medium | |
JP2018026791A (en) | Frame transmission blocking device, frame transmission blocking method, and on-vehicle network system | |
CN109005678B (en) | Illegal communication detection method, illegal communication detection system, and recording medium | |
CN111492625B (en) | Illegal detection method and illegal detection device | |
US11516045B2 (en) | Anomaly determination method, anomaly determination device, and recording medium | |
US11997119B2 (en) | Vehicle log transmission device, vehicle log analysis server, vehicle log analysis system, and vehicle log transmission/reception method | |
WO2018168291A1 (en) | Information processing method, information processing system, and program | |
JP6839846B2 (en) | Information processing equipment, information processing methods and programs | |
CN114731301B (en) | Determination method, determination system, and program recording medium | |
US20190384771A1 (en) | Extracting device, extracting method and storage medium, and abnormality detecting device and abnormality detecting method | |
US20230283622A1 (en) | Anomaly detection method, anomaly detection device, and recording medium | |
JP6992309B2 (en) | Transmitter, receiver, and communication method | |
US11909755B2 (en) | Log transmission controller | |
KR20220082550A (en) | Vehicle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |