[go: up one dir, main page]

WO2025028500A1 - 異常検知方法、異常検知装置及びプログラム - Google Patents

異常検知方法、異常検知装置及びプログラム Download PDF

Info

Publication number
WO2025028500A1
WO2025028500A1 PCT/JP2024/027060 JP2024027060W WO2025028500A1 WO 2025028500 A1 WO2025028500 A1 WO 2025028500A1 JP 2024027060 W JP2024027060 W JP 2024027060W WO 2025028500 A1 WO2025028500 A1 WO 2025028500A1
Authority
WO
WIPO (PCT)
Prior art keywords
dpi
ecu
rule
electronic control
dpi rule
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.)
Pending
Application number
PCT/JP2024/027060
Other languages
English (en)
French (fr)
Inventor
有貴 加賀
剛 岸川
良浩 氏家
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Publication of WO2025028500A1 publication Critical patent/WO2025028500A1/ja
Anticipated expiration legal-status Critical
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation

Definitions

  • This disclosure relates to a device for detecting communication anomalies and a method for detecting communication anomalies in an in-vehicle network system.
  • ECUs Electronic Control Units
  • CAN Control Area Network
  • Non-Patent Document 1 As an anomaly detection method for monitoring malicious attackers, for example, the method described in Non-Patent Document 1 is known.
  • IPFIX IP Flow Information Export Protocol for Exchange of Flow Information
  • the purpose of this disclosure is to provide an anomaly detection method and an anomaly detection device that can appropriately balance detection accuracy and processing volume.
  • an anomaly detection method is a method for detecting an anomaly by a higher-level electronic control device in an in-vehicle network having a hierarchical structure including a higher-level network in which one or more higher-level electronic control devices are arranged and a lower-level network in which one or more lower-level electronic control devices are arranged, and the method includes: collecting flow information, which is statistical information for each flow classified by header information of messages received at a predetermined observation point in the in-vehicle network; detecting an anomaly based on the flow information; and generating, adding, deleting, changing, enabling, or disabling a DPI (Deep Packet Inspection) rule based on the result of the anomaly detection; the DPI rule is used to monitor the message in the one or more lower-level electronic control devices; and the DPI rule indicates conditions for header information and payload information included in the message and processing content when a message matching the conditions is received.
  • DPI Deep Packet Inspection
  • This disclosure provides an anomaly detection method and an anomaly detection device that can appropriately balance detection accuracy and processing volume.
  • FIG. 1 is an overall configuration diagram of an in-vehicle network system according to the first embodiment.
  • FIG. 2 is a block diagram of the zone ECU in the first embodiment.
  • FIG. 3 is a block diagram of the ADAS ECU in embodiment 1.
  • Figure 4 is a diagram showing the message format of SOME/IP SD in embodiment 1.
  • Figure 5 is a diagram showing an example of a SOME/IP SD message in embodiment 1.
  • FIG. 6 is a diagram showing a message format of SOME/IP in the first embodiment.
  • FIG. 7 is a diagram showing an example of a SOME/IP message in the first embodiment.
  • FIG. 8 is a diagram showing an example of flow information collected by the zone ECU in the first embodiment.
  • FIG. 9 is a diagram showing an example of a list of all DPI rules according to the first embodiment.
  • FIG. 10 is a diagram showing an example of a management list of an ECU in the first embodiment.
  • FIG. 11 is a diagram showing a sequence from flow information collection to anomaly detection and security response in the first embodiment.
  • FIG. 12 is a flowchart of a DPI rule generation process performed by the zone ECU in the first embodiment.
  • FIG. 13 is a flowchart of a receiving process by the communication port unit in the first embodiment.
  • FIG. 14 is a flowchart illustrating an example of a process performed by the flow-based anomaly detection unit according to the first embodiment.
  • FIG. 15 is a diagram showing an example of an abnormality alert in the first embodiment.
  • FIG. 16 is a flowchart of the DPI rule generation process in the first embodiment.
  • FIG. 17 is a flowchart of the DPI rule transfer process in the first embodiment.
  • FIG. 18 is a diagram showing an example of a DPI rule generated from an abnormality alert in the first embodiment.
  • FIG. 19 is a flowchart of the DPI rule process in the first embodiment.
  • FIG. 20 is a diagram showing an example of a DPI alert according to the first embodiment.
  • FIG. 21 is a flowchart of the DPI alert process in the zone ECU in the first embodiment.
  • FIG. 22 is a diagram showing an example of a DPI rule for blocking abnormal communication in the first embodiment.
  • FIG. 23 is a diagram showing the overall configuration of an in-vehicle network system according to the second embodiment.
  • FIG. 23 is a diagram showing the overall configuration of an in-vehicle network system according to the second embodiment.
  • FIG. 24 is an overall configuration diagram of a zone ECU in the second embodiment.
  • FIG. 25 is a diagram showing a sequence from flow information collection to anomaly detection and security response in the second embodiment.
  • FIG. 26 is a flowchart of a DPI rule generation process in the second embodiment.
  • FIG. 27 is a flowchart of a process performed by the DPI rule transfer unit in the second embodiment.
  • FIG. 28 is a diagram showing an example of flow information requested to determine a destination to which a DPI rule is applied in the second embodiment.
  • FIG. 29 is a diagram showing an example of a DPI rule generated from an abnormality alert in the second embodiment.
  • FIG. 30 is a diagram showing the overall configuration of an in-vehicle network in the third embodiment.
  • FIG. 30 is a diagram showing the overall configuration of an in-vehicle network in the third embodiment.
  • FIG. 31 is a diagram showing the configuration of a zone ECU in the third embodiment.
  • FIG. 32 is a diagram showing an example of a DPI rule list for safety monitoring in the third embodiment.
  • FIG. 33 is a diagram showing a sequence from flow information collection to application of a DPI rule for safety monitoring in the third embodiment.
  • FIG. 34 is a flowchart of packet processing by the zone ECU in the third embodiment.
  • FIG. 35 is a flowchart of a process performed by the safety determining unit in the third embodiment.
  • FIG. 36 is a flowchart of a process performed by a DPI rule generating unit based on safety determination in the third embodiment.
  • FIG. 37 is a diagram showing an example of a safety monitoring DPI rule in the third embodiment.
  • control frames are transmitted and received to instruct the vehicle to run, stop, turn, etc. Therefore, if a malicious attacker masquerades as a legitimate ECU to transmit control frames, or if a DoS attack is carried out with the aim of preventing a specific control frame from being received, there is a problem that not only the driver of the vehicle but also pedestrians around the vehicle are put at risk.
  • DPI Deep Packet Inspection
  • IPFIX As a method for monitoring the entire network, for example, there is a specification called IPFIX, which is described in Non-Patent Document 1.
  • IPFIX multiple frames flowing over an Ethernet are classified by an Ethernet switch based on information contained in the Ethernet or TCP/IP header, and statistical information called flow information is generated. Then, an anomaly detection device higher up than the Ethernet switch monitors the flow information, making it possible to monitor the entire network with low amounts of calculation and communication.
  • anomaly detection methods that use flow information do not monitor packet payload information, so there is a risk of false positives.
  • flow information is generated by collecting statistical information from packet header information. Anomalies are then detected from time changes in the flow information in a higher-level anomaly detection device, and payload-based monitoring rules are enabled for packets predicted to be anomalous based on the detection results. This allows payload monitoring to be performed only on some packets, making it possible to detect anomalies while reducing false positives and the amount of calculations required for monitoring. This makes it possible to monitor anomalous communications in in-vehicle networks while securing the computational resources required for processing by autonomous driving or advanced driving systems.
  • the anomaly detection device based on flow information is responsible for monitoring the entire in-vehicle network, and the DPI unit monitors abnormal communications detected based on the flow information, thereby reducing the load on the entire network while suppressing false detections by the anomaly detection system.
  • the anomaly detection device based on flow information is responsible for monitoring the entire in-vehicle network, and the DPI unit monitors abnormal communications detected based on the flow information, thereby reducing the load on the entire network while suppressing false detections by the anomaly detection system.
  • an anomaly detection method is a method for detecting an anomaly by a higher-level electronic control device in an in-vehicle network having a hierarchical structure including a higher-level network in which one or more higher-level electronic control devices are arranged and a lower-level network in which one or more lower-level electronic control devices are arranged, and the method includes: collecting flow information, which is statistical information for each flow classified by header information of messages received at a predetermined observation point in the in-vehicle network; detecting an anomaly based on the flow information; and generating, adding, deleting, changing, enabling, or disabling a DPI (Deep Packet Inspection) rule based on the result of the anomaly detection; the DPI rule is used to monitor the message in the one or more lower-level electronic control devices; and the DPI rule indicates conditions for header information and payload information included in the message and processing contents when a message matching the conditions is received.
  • DPI Deep Packet Inspection
  • anomaly detection based on flow information makes it possible to monitor the entire network with reduced processing load, without having to monitor the payload information of each message. Also, by generating DPI rules that include monitoring of payload information based on the results of anomaly detection, it is possible to suppress false positives. Furthermore, by performing anomaly detection in two stages, that is, anomaly detection based on flow information and monitoring using DPI rules, it is possible to set anomaly detection rules that allow false positives in the anomaly detection using flow information that performs anomaly detection first, but reduces the chance of overlooking anomalous communications. In this way, the present disclosure can appropriately balance detection accuracy and processing volume.
  • the higher-level electronic control unit detects anomalies based on flow information, and the DPI rules generated using the results are enabled for the necessary lower-level electronic control units, thereby reducing the number of messages monitored by each electronic control unit. This reduces the processing load per electronic control unit.
  • the lower-level electronic control unit can simplify the monitoring rules by monitoring the network in accordance with the higher-level electronic control unit. This reduces the computational resources allocated to network monitoring.
  • the flow information may include information regarding the amount of messages received for each flow, and the anomaly detection method may further determine, based on the information, a processing priority indicating the order of processing for monitoring the messages for each of one or more DPI rules including the DPI rule.
  • the anomaly detection method may further determine the time for which monitoring of messages according to the DPI rules is enabled or the upper limit number of messages for which monitoring of messages according to the DPI rules is performed, depending on the content of the anomaly detected in the anomaly detection and the number of messages to be monitored per unit time.
  • the DPI rule indicates service information or client information contained in a message transmitted between the one or more lower-level electronic control devices, and in the monitoring of the message, if the service information or client information of the message does not match the service information or client information indicated in the DPI rule, the message may be dropped.
  • the abnormality detection method may further include adding, modifying, enabling or disabling the DPI rules based on the monitoring results output from the one or more lower-level electronic control devices.
  • DPI rules that not only detect anomalies based on flow information but also reflect the monitoring results of the lower-level electronic control devices to be applied to each lower-level electronic control device.
  • a DPI rule that monitors identifier information such as service information or client information contained in the payload information of a message is enabled, allowing the lower-level electronic control device to detect identifier information that is different from normal.
  • the higher-level electronic control device can generate or enable a DPI rule that drops messages with abnormal identifier information based on the detection results. In this way, security rules based on the monitoring results of the lower-level electronic control devices can be applied.
  • the abnormality detection method may further add, change, enable, or disable the DPI rules depending on the vehicle state including at least one of the shift lever state, automatic driving, automatic parking, cruise control, software update, vehicle diagnosis, and Internet connection, and the result of the abnormality detection.
  • the higher-level electronic control unit can determine which messages pose a high risk of attack depending on the current vehicle state, and add or enable DPI rules that monitor or protect those communications. Also, if a number of DPI rules that exceed the message processing capacity of the lower-level electronic control unit are enabled, older DPI rules can be temporarily disabled, allowing DPI rules with a higher level of urgency to be enabled with priority.
  • the abnormality detection method may further determine the processing content indicated by the DPI rule according to the vehicle state of one of the lower-level electronic control devices, which is the source or destination of the message determined to be abnormal in the abnormality detection, and which is included in the one or more lower-level electronic control devices.
  • the abnormality detection method may further include selecting, from the one or more lower-level electronic control devices, a first electronic control device that is the sender of a message to be monitored according to the DPI rule and a second electronic control device that is the destination of the message, selecting, from the one or more higher-level electronic control devices, at least one third electronic control device that is disposed between the first electronic control device and the second electronic control device and through which the message to be processed passes, and applying the DPI rule to the electronic control device that has the smallest processing load for message processing among the selected first electronic control device, the second electronic control device, and the at least one third electronic control device.
  • the abnormality detection method may further calculate the communication volume of each of the first electronic control device, the second electronic control device, and the at least one third electronic control device based on the flow information, and calculate the processing load volume from the communication volume and one or more DPI rules enabled in the one or more lower-level electronic control devices.
  • the abnormality detection method may further include monitoring messages in the higher-level electronic control device using the DPI rules.
  • An anomaly detection device is an anomaly detection device included in a higher-level electronic control device in an in-vehicle network having a hierarchical structure including a higher-level network in which one or more higher-level electronic control devices are arranged and a lower-level network in which one or more lower-level electronic control devices are arranged, and includes a collection unit that collects flow information, which is statistical information for each flow classified by header information of messages received at a predetermined observation point in the in-vehicle network, an anomaly detection unit that performs anomaly detection based on the flow information, and a control unit that generates, adds, deletes, changes, enables, or disables a DPI (Deep Packet Inspection) rule based on the result of the anomaly detection, and the DPI rule is used to monitor the message in the one or more lower-level electronic control devices, and the DPI rule indicates conditions for header information and payload information included in the message and processing contents when a message matching the conditions is received.
  • a DPI Deep Packe
  • a program according to one aspect of the present disclosure causes a computer to execute an anomaly detection method.
  • an abnormality detection device an abnormality detection system
  • an in-vehicle network in-vehicle network system
  • a plurality of ECUs communicate via Ethernet will be described.
  • Fig. 1 is an overall configuration diagram of an in-vehicle network system 10 in the first embodiment.
  • the in-vehicle network system 10 is mounted on a vehicle.
  • the in-vehicle network system 10 includes zone ECUs (zone ECUs) 100a, 100b, and 100c, an ADAS ECU 200a, an IVI ECU 200b, a steering wheel control ECU 200c, a brake control ECU 200d, a shift lever ECU 200e, a camera ECU 200f, and a LiDAR ECU 200g.
  • the in-vehicle network system 10 may include more ECUs.
  • the zone ECU 100a, the ADAS ECU 200a, and the IVI ECU 200b are connected via Ethernet 1, which is a type of in-vehicle network.
  • the zone ECU 100a, the zone ECU 100b, and the zone ECU 100c are connected via Ethernet 2.
  • the zone ECU 100b, the steering wheel control ECU 200c, the brake control ECU 200d, and the shift lever ECU 200e are connected via Ethernet 3.
  • the zone ECU 100c, the camera ECU 200f, and the LiDAR ECU 200g are connected via Ethernet 4.
  • Each zone ECU is connected to each other via Ethernet and communicates using SOME/IP, a communications protocol for in-vehicle Ethernet.
  • a network that is not connected to a different zone ECU (Ethernet 1, 3, 4) is called a zone.
  • Each zone ECU is connected to its own zone and acquires information about and controls the ECU.
  • Zone ECU 100a 2 is a diagram showing the configuration of the zone ECU 100a. Note that the zone ECUs 100b and 100c have the same configuration as the zone ECU 100a, so a description thereof will be omitted.
  • the zone ECU 100a includes a communication port unit 101, a DPI unit 102, a flow information collection unit 103, a flow-based anomaly detection unit 104, a DPI control unit 105, a total DPI rule memory unit 106, and an ECU management list storage unit 107.
  • the communication port unit 101 is an Ethernet communication interface that transmits and receives frames. Depending on the type of communication frame received, the communication port unit 101 determines which function of the zone ECU should process the communication frame.
  • the DPI unit 102 monitors the payload information of packets based on the monitoring rules specified by the DPI rules. For example, when communication between two or more ECUs, including broadcast communication, is carried out via a zone ECU, a DPI rule is applied that performs processing such as dropping abnormal communication in the DPI unit 102 or taking a communication log.
  • the flow information collection unit 103 classifies packets received via Ethernet 1 or 2 based on header information, and generates flow information by aggregating statistical information for each classified packet.
  • the flow-based anomaly detection unit 104 detects anomalies based on the flow information stored in the flow information collection unit 103, and outputs the detection result as an anomaly alert.
  • the anomaly alert includes not only the detection result, but also information necessary for the DPI control unit 105 to generate a DPI rule.
  • the DPI control unit 105 controls the DPI rules that are enabled in the DPI unit 102.
  • the DPI control unit 105 includes a DPI rule generation unit 105A, a DPI rule transfer unit 105B, and a DPI alert processing unit 105C.
  • the DPI rule generation unit 105A generates DPI rules based on the alerts (hereinafter, abnormality alerts) output by the flow-based anomaly detection unit 104 or the alerts (hereinafter, DPI alerts) output by the DPI unit of each ECU.
  • the DPI rules generated from abnormality alerts are intended to mainly monitor the packet payload for the detected abnormality.
  • the DPI rules generated from DPI alerts are intended to protect the network from abnormal communications, such as by blocking abnormal packets.
  • the DPI rule transfer unit 105B determines the ECU to which the DPI rule generated by the DPI rule generation unit 105A applies, and transfers the DPI rule to that ECU.
  • the DPI alert processing unit 105C processes the alerts output when the DPI unit of an ECU in a zone detects a packet that matches the check contents of a DPI rule, and determines whether additional DPI rules need to be generated.
  • the all-DPI rule storage unit 106 stores the DPI rules held by the DPI sections of all ECUs present in the in-vehicle network system 10.
  • the ECU management list storage unit 107 stores a list of ECUs present on the in-vehicle network system 10, the service information handled by each ECU, and the zone ECUs that manage the zones to which they belong.
  • [Configuration of ADAS ECU 200a] 3 is a block diagram of the ADAS ECU 200a. Note that the IVI ECU 200b, the steering control ECU 200c, the brake control ECU 200d, the shift lever ECU 200e, the camera ECU 200f, and the LiDAR ECU 200g have the same configuration as the ADAS ECU 200a, and therefore descriptions thereof will be omitted.
  • the ADAS ECU 200a includes a communication port unit 201, a DPI unit 202, and an application unit 203.
  • the communication port unit 201 is an Ethernet communication interface, and transmits and receives frames.
  • the DPI unit 202 monitors the payload information of packets based on monitoring rules specified by the DPI rule distributed from the zone ECU. When the received packet matches the check contents of the DPI rule, the DPI unit 202 sends an alert to the zone ECU to which the DPI rule was distributed as necessary.
  • the DPI unit 202 has the same functions as the DPI unit 102 of the zone ECU 100a. Therefore, for example, when the DPI unit 202 determines that the received packet is an abnormal packet, a DPI rule is applied that performs processing such as dropping the abnormal communication or recording the communication log.
  • the application unit 203 executes an ECU-specific application according to the received communication frame.
  • SOME/IP Message Format is a type of service-oriented communication, and realizes service-oriented communication by combining four types of communication methods: Request/Response, Fire/Forget, Events, and Get/Set/Notifier.
  • SOME/IP also includes Service Discovery (SD) as a method for establishing a session with a communication partner.
  • SD Service Discovery
  • Figure 4 shows an example of a message format used in SOME/IP SD.
  • the message format in Figure 4 is stored in the Ethernet payload section and communicated.
  • Each line in the figure contains 32 bits of data, with the SOME/IP header stored in the first half and the SOME/IP SD payload stored in the second half.
  • the Message ID is 0xFFFF8100.
  • the number of bytes of data following the Length field is stored in Length.
  • the Request ID stores the combined value of the Client ID and Session ID.
  • the Protocol Version is set to 0x01
  • the Interface Version is set to 0x01
  • the Message Type is set to 0x02
  • the Return Code is set to 0x00.
  • Figure 5 shows an example of a SOME/IP SD message. Flags is set to 0x80, and the Reboot Flag is set. The Reserved area is set to 0. The Length of Entries Array in Bytes stores the number of bytes of the entry, which is set to 16 bytes in Figure 5.
  • Type can be set to 0x00 or 0x01, with 0x00 meaning Find and 0x01 meaning Offer.
  • Find is used when a client ECU receiving a service requests the provision of a required service.
  • Offer is used when a server ECU providing a service notifies that the service is available.
  • Type is 0x01, indicating that the message is a message in which the server ECU notifies information about the services it can provide.
  • Index 1st options indicates the position of the first option. In Figure 5, Index 1st options is 0, indicating that the position of the first option is the beginning of the option area. Index 2nd options indicates the position of the second option, which is 0 in Figure 5.
  • #of opt1 contains the number of option 1s, and in Figure 5, a value of 1 is stored.
  • #of opt2 contains the number of option 2s, and in Figure 5, a value of 0 is stored, indicating that option 2 is not used.
  • Service ID is a field that stores an ID that indicates the type of service, and in Figure 5, 0x1000 is stored in the Service ID.
  • Instance ID is a field that stores an ID that indicates an instance of the service, and in Figure 5, it is set to 0x0001.
  • the Major Version is information used for version management of the service.
  • 0x01 is stored in the Major Version.
  • TTL is a field that sets the expiration time (in seconds) of the service, and in Figure 5, TTL is set to 0xFFFF.
  • a TTL of 0xFFFF means that the service will be valid until the next startup timing of the ECU.
  • the Minor Version is information used for version management of the service, and is set to 0x00000002 in Figure 5.
  • the Length of Options Array in Bytes included in the Options area stores the byte length of the Options area, and Figure 5 shows that the byte length of the Options area is 12 bytes.
  • the Length value is set according to the type of option.
  • Figure 5 shows an example of communication using IPv4, where Length is set to 9, Type is set to 0x04, and Reserved is set to 0x00.
  • the IPv4 address is the IP address of the server, and in Figure 5, it is set to 192.168.0.1.
  • the reserved area stores 0.
  • L4-Proto stores 0x11, indicating that User Datagram Protocol (UDP) is used.
  • UDP User Datagram Protocol
  • Figure 6 shows an example of a message format used in SOME/IP.
  • the SOME/IP header portion excluding the payload is the same as in Figure 4.
  • Figure 7 shows an example of a SOME/IP message.
  • Service ID is a field that stores an ID that indicates the type of service, and in Figure 7, 0x0001 is stored in Service ID.
  • the Method ID is a field that stores an ID that indicates the type of Method, which is a function on the server that is called from the client. In Figure 7, 0x0301 is stored in the Method ID.
  • Length stores the message length from the Client ID to the Payload. In Figure 7, it is set to 1408 bytes.
  • the Client ID is an identifier that identifies the calling client within the ECU, and is set to 0x01000 in Figure 7.
  • the Session ID is an identifier that distinguishes messages sent from the same sender, and is set to 0x0011 in Figure 7.
  • the Protocol Version indicates the protocol version of SOME/IP, and is set to 0x01 in Figure 7.
  • Interface Version indicates the major version of the service I/F, and is set to 0x01 in Figure 7.
  • Message Type indicates the message type of SOME/IP. In Figure 7, Message Type is set to 0x02, which indicates that the message type is Notification.
  • Return Code represents the return value indicating whether the request was processed normally or not, and is set to 0x00 in Figure 7.
  • Payload describes the information that the sender wants to send.
  • FIG. 8 is a diagram showing an example of flow information collected by the flow information collecting unit 103 of the zone ECU.
  • the flow information is generated by calculating statistical information at regular intervals from packet header information and the like, and in FIG. 8, the flow information is calculated at 30-second intervals.
  • a combination of a source IP address (Src IP), a source port number (Src Port), a destination IP address (Dst IP), a destination port number (Dst Port), and a protocol number (Protocol) of a packet is assigned to a flow ID, which is identification information.
  • a protocol number Protocol
  • statistical information is collected for each flow ID.
  • the number of packets communicated for each flow ID, the average arrival interval of packets, and the average packet length are collected.
  • FIG. 9 is a diagram showing an example of a list (hereinafter, referred to as a total DPI rule list) that is stored in the total DPI rule storage unit 106 and that lists all the DPI rules that are applied to the ECUs on the in-vehicle network.
  • a total DPI rule list a list that is stored in the total DPI rule storage unit 106 and that lists all the DPI rules that are applied to the ECUs on the in-vehicle network.
  • a DPI rule has the following settings: the ECU to which it applies, the rule number, the DPI rule name, the issuing ECU, the header conditions, the check contents, the action taken when checking, the number of packets to be monitored, the number of packets already monitored, and the processing priority.
  • the ECU that has a DPI unit that actually executes the generated DPI rule is set as the target ECU.
  • the DPI rules are listed based on the target ECU.
  • the rule number is assigned to the DPI rule for DPI rule management.
  • the DPI rule name is determined according to the role of the DPI rule. For example, for a DPI rule generated based on an anomaly alert, the DPI rule name is determined based on the detected anomaly, such as flooding monitoring, spoofing monitoring, or man-in-the-middle attack monitoring. In addition, a DPI rule generated based on a DPI alert is given the DPI rule name "Abnormal Communication.”
  • the issuing ECU is set to the zone ECU that generated the DPI rule and transferred the generated DPI rule to the destination ECU.
  • the issuing ECU is determined according to the ECU management list.
  • the header condition indicates all or part of the source IP address, source port number, destination IP address, destination port number, and protocol number of the packet to be monitored. For packets that match all of the items listed in this header condition, the payload is monitored and the check contents are confirmed.
  • the check contents indicate the contents to be checked when monitoring the payload of packets that satisfy the header conditions. For example, for SOME/IP communications that may be the result of a flooding attack, it is assumed that the attacking ECU is sending a large number of packets using one type of Service ID. Therefore, the source ECU of the abnormal packet is determined to be the attacking ECU, and it is checked whether the packets sent from the source ECU have only one type of Service ID. In addition, for SOME/IP communications that may be the result of a spoofing attack, it is checked whether the communication is being carried out using the correct Client ID.
  • the check operation indicates the operation to be performed when the monitored packet satisfies the check contents. For example, if a packet meets the check contents of the flooding monitor shown in Figure 9, the source ECU of the monitored communication is not an ECU that communicates with only one type of Service ID. In other words, the source ECU is determined to be a normal ECU, and this fact is notified to the zone ECU that issued the DPI rule. Also, if a packet meets the check contents of the spoofing monitor shown in Figure 9, it is determined that communication is being performed with a false IP address and port number, the packet is blocked, and the number of monitored packets is set to unlimited.
  • the number of monitored packets indicates the upper limit of the number of packets to be monitored by that DPI rule.
  • the number of monitored packets indicates the number of packets that the DPI unit has already monitored by that DPI rule.
  • DPI units 102 and 202 when the number of monitored packets for a DPI rule reaches a specified number of monitored packets, that DPI rule is discarded.
  • the zone ECU can grasp the number of packets communicated by each ECU for each flow ID from the flow information, and calculates the number of monitored packets for all DPI rules in the all DPI rule memory unit 106.
  • the processing priority is a parameter that determines the order in which the header of a packet is compared against the header conditions contained in the DPI rules when two or more DPI rules are applied to the DPI unit 102 or 202.
  • the processing priority is calculated based on the flow information and is determined by the proportion of packets monitored by that DPI rule among all packets communicated by the ECU.
  • the DPI units 102 and 202 compare the header of a received packet against the header conditions contained in the DPI rules in order of the DPI rule with the highest processing priority.
  • the DPI units 102 and 202 of each ECU store the DPI rules in order of highest processing priority.
  • [ECU management list] 10 is a diagram showing the ECU management list stored in the ECU management list storage unit 107 of each zone ECU.
  • the ECU management list lists all ECUs present on the in-vehicle network, and each ECU is assigned a zone ECU (management zone ECU) present in the same zone as the manager.
  • the zone ECU transfers the DPI rules at the DPI rule transfer unit 105B only when the distribution destination of the DPI rules generated by the DPI rule generation unit 105A is an ECU that the zone ECU manages.
  • the ECU management list also lists the IP addresses and port numbers used by each ECU. For each port number, the protocol and service content used are also listed. If the protocol is SOME/IP, the client ID and service ID are also listed.
  • the zone ECU can check the service information of the SOME/IP communication, such as the service ID or client ID, from the IP address and port number of the flow information, without checking the payload information.
  • Fig. 11 is a processing sequence diagram when an attack occurs from the steering wheel control ECU 200c to the ADAS ECU 200a in the first embodiment.
  • the zone ECUs 100b and 100c collect flow information with the flow information collection unit 103, perform anomaly detection with the flow-based anomaly detection unit 104, and generate DPI rules with the DPI rule generation unit 105A based on the results.
  • the DPI units 102 and 202 of the ADAS ECU 200a apply the generated DPI rules, and security measures are taken based on the monitoring results of the DPI unit 202.
  • the steering wheel control ECU 200c performs a flooding attack on the ADAS ECU 200a (S101).
  • the zone ECUs 100a and 100b that exist on the communication path between the steering wheel control ECU 200c and the ADAS ECU 200a mirror the packets, receive the packets, and collect flow information (S102).
  • Zone ECUs 100a, 100b, and 100c share the collected flow information among themselves (S103). Note that the processing of zone ECU 100c is not shown in FIG. 11.
  • the zone ECUs 100a, 100b, and 100c each perform flow-based anomaly detection based on the shared flow information and detect that the steering wheel control ECU 200c is attacking the ADAS ECU 200a (S104).
  • the zone ECUs 100a, 100b, and 100c each generate a first DPI rule for monitoring communications based on the results of the flow-based anomaly detection (S105).
  • the zone ECU 100b Since the ECU management list indicates that the target of the generated first DPI rule is not one that the zone ECU 100b manages, the zone ECU 100b stores the first DPI rule in the all DPI rule memory unit 106 (S106).
  • the zone ECU 100a Since the ECU management list indicates that the generated first DPI rule applies to its own management target, the zone ECU 100a stores the first DPI rule in the all DPI rule storage unit 106 and transfers it to the ADAS ECU 200a (S107).
  • the ADAS ECU 200a receives the first DPI rule from the zone ECU 100a and applies the received first DPI rule to the DPI section 202 (S108).
  • the steering wheel control ECU 200c continues to perform a flooding attack on the ADAS ECU 200a (S109).
  • the ADAS ECU 200a monitors communication with the steering wheel control ECU 200c using the applied first DPI rule (S110).
  • the ADAS ECU 200a generates a DPI alert according to the monitoring results in the DPI section 202, and transmits the generated DPI alert to the zone ECU 100a (S111).
  • the zone ECU 100a officially determines that the communication with the steering wheel control ECU 200c is abnormal based on the DPI alert from the ADAS ECU 200a (S112).
  • the zone ECU 100a generates a second DPI rule that blocks the abnormal communication from the steering wheel control ECU 200c, and transfers the generated second DPI rule to the ADAS ECU 200a and the other zone ECUs 100b and 100c (S113).
  • the zone ECU 100b stores the second DPI rule newly generated by the zone ECU 100a in the all DPI rule storage unit 106 (S114).
  • the ADAS ECU 200a applies the second DPI rule transferred from the zone ECU 100a (S115).
  • the steering wheel control ECU 200c continues to perform a flooding attack on the ADAS ECU 200a (S116).
  • the ADAS ECU 200a blocks the abnormal communication from the steering wheel control ECU 200c in accordance with the second DPI rule (S117).
  • Flowchart of processing in zone ECU] 12 is a flowchart showing the entire process from when a zone ECU receives a packet to when a DPI rule is generated and applied to an appropriate ECU.
  • the communication port unit 101 receives a packet communicated via itself (S201).
  • the communication port unit 101 mirrors the packets and forwards them according to the destination IP address of the packets (S202).
  • the flow information collection unit 103 extracts header information from the mirrored packets and updates the flow information (S203).
  • the flow information collection unit 103 determines whether the specified time for collecting flow information has been exceeded (S204). If the specified time has been exceeded (Yes in S204), the flow information collection unit 103 outputs the flow information (S205). If the specified time has not been exceeded (No in S204), the process returns to the first step S201.
  • the communication port unit 101 transfers the output flow information to the other zone ECUs (S206).
  • the communication port unit 101 also receives flow information transferred from the other zone ECUs (S207).
  • the flow information collection unit 103 then combines the flow information it has output with the flow information transferred from the other zone ECUs (S208).
  • the flow-based anomaly detection unit 104 performs flow-based anomaly detection based on the combined flow information (S209) and determines whether or not an anomaly exists (S210). If an anomaly exists (if S210 is Yes), the flow-based anomaly detection unit 104 generates an anomaly alert that describes the details of the anomaly (S211). If no anomaly exists (if S210 is No), the zone ECU ends the process.
  • the DPI rule generation unit 105A generates a DPI rule from the generated abnormality alert (S212).
  • the DPI rule generation unit 105A stores the generated DPI rule in the all-DPI rule storage unit 106 (S213).
  • the DPI rule transfer unit 105B determines whether the ECU to which the generated DPI rule is applied is its own managed ECU based on the ECU management list (S214). If the ECU is its own managed ECU (Yes in S214), the DPI rule transfer unit 105B transfers the DPI rule to the ECU to which the rule is applied (S215), and the zone ECU ends processing. If the ECU is not its own managed ECU (No in S214), the zone ECU ends processing.
  • FIG. 13 is a flow chart of the reception process in the communication port unit 101 of the zone ECU.
  • the communication port unit 101 transfers the packet information to an appropriate function in the zone ECU depending on the type of the received packet.
  • the communication port unit 101 determines whether the packet being processed by the communication port unit 101 is a transmission packet whose source is itself (S301). If the packet is a transmission packet (Yes in S301), the communication port unit 101 transmits the packet to the ECU with the destination IP address (S302).
  • the communication port unit 101 mirrors the received packet and transfers the mirrored packet to the flow information collection unit 103 (S303).
  • the communication port unit 101 determines whether the received packet is addressed to itself (S304). If the packet is addressed to itself (if S304 is Yes), the communication port unit 101 determines whether the packet is a DPI rule transferred from another zone ECU (S305). If the packet is a DPI rule (if S305 is Yes), the communication port unit 101 stores the transferred DPI rule in the all DPI rule storage unit 106 (S306), and the zone ECU ends the processing.
  • the communication port unit 101 determines whether the packet is a DPI alert forwarded from another ECU (S307). If the packet is a DPI alert (if S307 is Yes), the communication port unit 101 forwards the packet to the DPI alert processing unit 105C (S308), and the zone ECU ends the processing.
  • the packet is not a DPI alert (if S307 is No)
  • the received packet is flow information shared by another zone ECU. Therefore, the communication port unit 101 notifies the flow information collection unit 103 that the packet is flow information generated by another ECU (S309), and the zone ECU ends the processing.
  • the flow information collection unit 103 updates the flow information from the header information of the packet, and integrates the flow information of other zones described in the payload information of the packet with the flow information it has collected.
  • the communication port unit 101 transfers the packet to the ECU with the destination IP address (S310), and the zone ECU ends the process.
  • FIG. 14 is a flowchart showing an example of a process performed by the flow-based anomaly detection unit 104.
  • the flow-based anomaly detection unit 104 receives flow information that is output at regular intervals (S401).
  • the flow-based anomaly detection unit 104 selects one flow ID included in the received flow information, and extracts statistical information (e.g., the number of packets N, the average arrival interval I) for the selected flow ID (S402).
  • statistical information e.g., the number of packets N, the average arrival interval I
  • steps S403 to S416 are executed for the selected flow ID.
  • steps S402 to S416 are repeatedly executed for each flow ID included in the flow information.
  • this series of processes is repeatedly executed, for example, each time flow information is received.
  • the flow-based anomaly detection unit 104 calculates a previous ratio ⁇ I, which is the ratio between the average arrival interval I included in the current flow information received and the average arrival interval I included in the flow information output immediately before (S403). For example, ⁇ I is calculated by dividing the current average arrival interval I by the previous average arrival interval I.
  • the flow-based anomaly detection unit 104 calculates a previous ratio ⁇ N, which is the ratio between the number of packets N contained in the current flow information received and the number of packets N contained in the flow information output immediately before (S404). For example, ⁇ N is calculated by dividing the number of packets N of the current flow by the number of packets N of the previous flow.
  • the flow-based anomaly detection unit 104 determines whether the number of packets N is 10,000 or more (S405). If the number of packets N is 10,000 or more (Yes in S405), the flow-based anomaly detection unit 104 determines that the communication having the selected flow ID is a "flooding attack" (S406). In other words, if the number of packets N is equal to or greater than a predetermined threshold, the flow-based anomaly detection unit 104 determines that a "flooding attack" has occurred.
  • the flow-based anomaly detection unit 104 determines whether the average arrival interval to the previous ratio ⁇ I is less than 1 (S407). If the average arrival interval to the previous ratio ⁇ I is less than 1 (if S407 is Yes), the flow-based anomaly detection unit 104 further determines whether the previous ratio ⁇ N of the number of packets is 10 or more (S408). If the previous ratio ⁇ N of the number of packets is 10 or more (if S408 is Yes), the flow-based anomaly detection unit 104 determines that the communication having the selected flow ID is a "flooding attack" (S406).
  • the flow-based anomaly detection unit 104 determines that a "flooding attack" has occurred.
  • the flow-based anomaly detection unit 104 determines whether the packet count ratio ⁇ N is 2 or more (S409). If the packet count ratio ⁇ N is 2 or more (if S409 is Yes), the flow-based anomaly detection unit 104 determines that the communication with the selected flow ID is a "spoofing attack" (S410). In other words, if the average arrival interval I is decreasing and the packet count N is increasing ( ⁇ N is greater than 1 and is greater than or equal to a second threshold value that is smaller than the first threshold value), the flow-based anomaly detection unit 104 determines that a "flooding attack" has occurred.
  • the flow-based anomaly detection unit 104 extracts communications of other flow IDs that use the same destination IP address and destination port number as the selected flow ID (S411).
  • the flow-based anomaly detection unit 104 determines whether a switch in communication has occurred (S412). Specifically, the flow-based anomaly detection unit 104 determines that a switch in communication has occurred when one of the number of packets N of the selected flow ID and the number of packets N of the other extracted flow IDs has increased and the other has decreased.
  • the flow-based anomaly detection unit 104 determines whether the previous change in the number of packets, ⁇ N, is 1 or greater (S413). If the previous change in the number of packets, ⁇ N, is 1 or greater (if S413 is Yes), the flow-based anomaly detection unit 104 determines that the communication having the selected flow ID is communication that has increased due to a man-in-the-middle attack, and determines it as a "man-in-the-middle attack (increase)" (S414). In other words, if a switch in communication has occurred and the number of packets N has increased, the flow-based anomaly detection unit 104 determines it as a "man-in-the-middle attack (increase)".
  • the flow-based anomaly detection unit 104 determines that the communication having the selected flow ID is communication that has decreased due to a man-in-the-middle attack, and determines it as a "man-in-the-middle attack (decrease)" (S415). In other words, if a change in communication has occurred and the number of packets N has decreased, the flow-based anomaly detection unit 104 determines it as a "man-in-the-middle attack (decrease)".
  • the flow-based anomaly detection unit 104 determines that the communication having the selected flow ID that did not match any attack judgment is "normal" (S416).
  • the flow-based anomaly detection unit 104 After the flow-based anomaly detection unit 104 has determined that the communication with the selected flow ID is a "flooding attack", “spoofing attack”, “man-in-the-middle attack (increase)”, “man-in-the-middle attack (decrease)", or "no anomaly”, it determines whether anomaly detection processing has been performed for all flow IDs (S417). If processing has been completed for all flow IDs (if S417 is Yes), the zone ECU ends processing. If processing has not been completed for all flow IDs (if S417 is No), the flow-based anomaly detection unit 104 returns to step S402 and performs the same processing for flow IDs that have not yet been subjected to anomaly detection processing.
  • anomaly detection In the anomaly detection process in Figure 14, several specific thresholds are used to determine anomalies, but in reality the thresholds change depending on the assumed communication environment. Also, in Figure 14, anomaly detection is performed using only the parameters of the number of packets and the average arrival interval, but the detection accuracy can be improved by using other parameters. Also, it is possible to detect attacks other than flooding attacks, spoofing attacks, and man-in-the-middle attacks.
  • [An example of an abnormality alert that is generated] 15 is a diagram showing an example of an anomaly alert generated based on the result of flow-based anomaly detection.
  • the generated anomaly alert includes information required for generating a DPI rule in the DPI rule generating unit 105A.
  • the anomaly alert includes an alert number, a flow ID of the communication determined to be anomaly, an alert type, a protocol, and a packet occupancy rate at the destination ECU.
  • An alert number is issued for each flow ID of an abnormal communication. If two or more communications are considered to be a single attack, such as a man-in-the-middle attack, the same alert number is assigned to those two or more communications.
  • the flow ID represents the header information of the communication packet, and an alert is generated if the communication identified by this flow ID is abnormal.
  • the type of alert indicates the result determined by flow-based anomaly detection.
  • Man-in-the-middle attacks are detected from the interrelationship between two communications, one with an increasing number of packets and one with a decreasing number of packets, so anomaly alerts are generated for two types of flow IDs.
  • the protocol indicates the protocol of the communication with the corresponding flow ID, and is used to determine whether the communication is encrypted.
  • Packet occupancy is a parameter for setting the processing priority of a DPI rule, and indicates the percentage of packets with the corresponding flow ID among all packets communicated by the ECU with the destination IP address assigned to the flow ID. However, only when the alert type is "man-in-the-middle attack (decreased)", the packet occupancy is calculated by referencing the source IP address, not the destination IP address assigned to the flow ID.
  • [DPI rule generation flowchart] 16 is a flowchart of the DPI rule generation process.
  • the DPI rule generation unit 105A acquires an anomaly alert generated by the flow-based anomaly detection unit 104 (S501).
  • the DPI rule generation unit 105A provisionally issues a rule number for the DPI rule (S502). For example, if there are multiple abnormal alerts with the same alert number, such as man-in-the-middle attacks, the DPI rule generation unit 105A provisionally issues the same rule number. The rule number is then formally reissued by the DPI rule transfer unit 105B.
  • the DPI rule generation unit 105A sets the ECU to which the DPI rule is to be applied that has a destination IP address assigned to the flow ID included in the abnormality alert (S503).
  • the DPI rule generation unit 105A extracts the packet occupancy rate at the set destination ECU from the abnormality alert, and sets the extracted packet occupancy rate as the processing priority value included in the DPI rule (S504).
  • the DPI rule generation unit 105A determines whether the alert type included in the abnormality alert is a "flooding attack" (S505). If the alert type is a "flooding attack" (if S505 is Yes), the DPI rule generation unit 105A sets the source IP address and destination IP address assigned to the flow ID included in the abnormality alert in the header condition included in the DPI rule (S506).
  • the DPI rule generation unit 105A refers to the ECU management list, confirms the legitimate service ID from the flow ID (S507), and sets the check contents included in the DPI rule using the confirmed service ID (S508).
  • the DPI rule generation unit 105A sets a process to notify an alert to the zone ECU that issued the DPI rule as a check operation included in the DPI rule (S509).
  • the DPI rule generation unit 105A sets the number of monitoring packets included in the DPI rule to a value required for monitoring flooding attacks (a value associated with monitoring flooding attacks) (S510).
  • the DPI rule generation unit 105A then integrates the contents set up to this point into one DPI rule (S511).
  • the DPI rule generation unit 105A requests the DPI rule transfer unit 105B to transfer the generated DPI rule to the set destination ECU (S512), and ends the DPI rule generation process.
  • the DPI rule generation unit 105A determines whether the alert type included in the abnormal alert is "spoofing attack” (S513). If the alert type is "spoofing attack” (if S513 is Yes), the DPI rule generation unit 105A sets the flow ID included in the abnormal alert to the header condition included in the DPI rule (S514). Then, the DPI rule generation unit 105A refers to the ECU management list to confirm the legitimate client ID from the flow ID (S515), and sets the check content included in the DPI rule using the confirmed client ID (S516).
  • the DPI rule generation unit 105A sets the process of blocking the relevant packet and resetting its own monitoring packet count to unlimited ( ⁇ ) as the check action included in the DPI rule (S517).
  • the DPI rule generation unit 105A sets the monitoring packet count included in the DPI rule to a value required for monitoring spoofing attacks (a value associated with monitoring spoofing attacks) (S518).
  • the DPI rule generation unit 105A then integrates the contents set up to this point into one DPI rule (S511), requests the transfer of the DPI rule (S512), and ends the DPI rule generation process.
  • the DPI rule generation unit 105A determines whether the alert type included in the abnormality alert is "man-in-the-middle attack (increase)" (S519). If the alert type is "man-in-the-middle attack (increase)" (if S519 is Yes), the DPI rule generation unit 105A sets the source IP address and destination IP address assigned to the flow ID included in the abnormality alert in the header condition included in the DPI rule (S520).
  • the DPI rule generation unit 105A refers to the ECU management list to confirm the legitimate service ID from the flow ID (S521), and sets the check contents included in the DPI rule using the confirmed service ID (S522).
  • the DPI rule generation unit 105A sets a process of notifying an alert to the zone ECU that issued the DPI rule as a check operation included in the DPI rule (S523).
  • the DPI rule generation unit 105A sets the number of monitoring packets included in the DPI rule to a value required for monitoring man-in-the-middle attacks (a value associated with monitoring man-in-the-middle attacks) (S524).
  • the DPI rule generation unit 105A then integrates the contents set up to this point into one DPI rule (S511), requests the transfer of the DPI rule (S512), and ends the DPI rule generation process.
  • the DPI rule generation unit 105A determines that the alert type included in the abnormality alert is "man-in-the-middle attack (decrease)".
  • the DPI rule generation unit 105A estimates that the source ECU assigned to the flow ID included in the abnormality alert with the same alert number and with the alert type "man-in-the-middle attack (increase)" is the attacking ECU (S525).
  • the DPI rule generation unit 105A extracts the source ECU from the flow ID included in its own abnormality alert with the alert type "man-in-the-middle attack (decrease)", and sets the pair of the source ECU and the IP address of the estimated attacking ECU (the attacking ECU is the destination side) to the header condition included in the DPI rule (S526).
  • the DPI rule generation unit 105A resets the ECU to which the DPI rule is applied to the ECU with the source IP address assigned to the flow ID (S527).
  • the DPI rule generation unit 105A sets the check content, check operation, and number of monitored packets included in the DPI rule to the same content as the paired DPI rule, that is, the DPI rule generated from the abnormal alert that has the same alert number and the alert type "man-in-the-middle attack (increased)" (S528).
  • the DPI rule generation unit 105A then integrates the content set up to this point into one DPI rule (S511), requests the transfer of the DPI rule (S512), and ends the DPI rule generation process.
  • [DPI rule transfer flow chart] 17 is a flowchart of the DPI rule transfer.
  • the DPI rule transfer unit 105B refers to the ECU management list and determines whether the ECU to which the DPI rule is to be applied, which is included in the generated DPI rule, is an ECU under its own control (S601).
  • DPI rule transfer unit 105B sets the issuing ECU included in the DPI rule to itself (S602), corrects the DPI rule number so that the issuing zone ECU can be identified (S603), and saves the DPI rule in all DPI rule storage unit 106 (S604). DPI rule transfer unit 105B then transfers the DPI rule to the destination ECU (S605), and ends the DPI rule transfer process.
  • [An example of a generated DPI rule] 18 is a diagram showing an example of a DPI rule generated from an abnormality alert. In FIG. 18, the DPI rule generated from the abnormality alert of FIG. 15 is shown.
  • the rule number is set so that the target ECU knows which zone ECU issued the DPI rule.
  • the rule number is associated with the zone ECU that issued the DPI rule. For example, if zone ECU 100b is the issuer, a number such as "B-1" combined with an alphabet will be issued. However, for the "man-in-the-middle attack monitoring" DPI rule set, the same number is issued to match the zone ECU that notifies the DPI alert.
  • the check contents and actions taken during the check vary depending on the attack detected by flow-based anomaly detection.
  • the monitoring rule for flooding attacks is to check whether only one service ID is being used.
  • the target ECU obtains from the ECU management list the service ID of the communication that was found to be abnormal in flow-based anomaly detection as the check content, and monitors whether communication is being performed using any service ID other than that.
  • the target ECU confirms communication other than the corresponding service ID, it notifies the zone ECU that issued the DPI rule of a DPI alert as a check action. If there are no DPI alert notifications in a certain amount by the time the monitoring of the specified number of monitored packets for flooding monitoring is completed, the zone ECU determines that the communication is abnormal.
  • the target ECU monitors whether any communication other than that using a legitimate client ID is taking place.
  • the target ECU detects communication using a client ID other than that used legitimately, it determines that the communication is abnormal, blocks the packet in question as a check action, and changes the number of packets monitored by the DPI rule to unlimited ( ⁇ ).
  • the target ECU checks whether an ECU suspected to be an attacker is communicating with two ECUs simultaneously using the same service ID.
  • the target ECU confirms that two ECUs to which the DPI rule is applied use a specified service ID in communication, it notifies the same zone ECU of a DPI alert.
  • the zone ECU determines that the communication is abnormal.
  • FIG. 19 is a flowchart of DPI rule processing in the DPI units 102 and 202.
  • the processing shown in Fig. 19 is performed, for example, every time a packet is received.
  • the DPI units 102 and 202 receive a packet (S701), and select the DPI rule with the highest processing priority among the DPI rules applied to the DPI units 102 and 202 (S702).
  • the DPI units 102 and 202 store the DPI rules in advance in order of processing priority.
  • the DPI units 102 and 202 determine whether the header of the received packet satisfies the header conditions contained in the selected DPI rule (S703).
  • the DPI units 102 and 202 determine whether the packet satisfies the check contents included in the DPI rule (S704).
  • the DPI units 102 and 202 execute the check operation included in the DPI rule (S705). If the packet does not satisfy the check contents included in the DPI rule (if S704 is No), the DPI units 102 and 202 skip the processing of step S705.
  • the DPI units 102 and 202 increment the count of the number of monitored packets by 1 (S706).
  • the DPI units 102 and 202 determine whether the number of monitored packets has reached the number of monitored packets (S707). If the number of monitored packets has reached the number of monitored packets (if S707 is Yes), the DPI units 102 and 202 discard the DPI rule (S708), notify the zone ECU that issued the DPI rule of the end of the rule (S709), and end the DPI rule processing. If the number of monitored packets has not reached the number of monitored packets (if S707 is No), the DPI units 102 and 202 end the DPI rule processing.
  • the DPI units 102 and 202 determine whether there are any other unprocessed DPI rules (S710). If there are any other unprocessed DPI rules (if S710 is Yes), the DPI units 102 and 202 select the DPI rule with the next highest processing priority from among the unprocessed DPI rules (S711) and return to step S703. If there are no other unprocessed DPI rules (if S710 is No), the DPI units 102 and 202 simply end the DPI rule processing.
  • [An example of a DPI alert] 20 is a diagram showing an example of a DPI alert.
  • a DPI alert is mainly notified when the number of packets monitored by the DPI rule in the DPI units 102 and 202 reaches a specified number of packets monitored, or is notified as an operation at the time of checking some of the DPI rules.
  • a DPI alert includes a rule number, a DPI rule name, the ECU to which it applies, and the alert content.
  • the rule number indicates the rule number of the corresponding DPI rule. Therefore, by checking the rule number, the ECU can determine which DPI rule the DPI alert relates to.
  • the DPI rule name indicates the name of the DPI rule that corresponds to the DPI alert.
  • the applicable ECU indicates the ECU to which the DPI rule that corresponds to the DPI alert applies, and is used to determine which ECU notified the DPI alert.
  • the alert content indicates “rule ended” or "check met.”
  • a DPI alert with "rule ended” as the alert content indicates that the number of monitored packets for the DPI rule has met the specified number of monitored packets.
  • a DPI alert that includes "Check Applicable” in the alert content indicates that the check content included in the DPI rules has been met.
  • rule numbers "B-1" and "C-1" shown in Figure 20 indicate that monitoring by the DPI rule has ended and the DPI rule corresponding to the rule number has been discarded in the ECU to which it is applied.
  • rule number "B-2" shown in FIG. 20 indicates that the ECU to which it is applied has received a packet that satisfies the check contents included in the DPI rule. Since the DPI rule with rule number "B-2" is "man-in-the-middle attack monitoring," since communication using the same service ID has been confirmed from two ECUs, it can be determined that the communication being monitored is abnormal.
  • [DPI Alert Processing Flowchart] 21 is a flowchart of the DPI alert process in the zone ECUs 100a, 100b, and 100c.
  • the DPI alert process unit 105C receives a DPI alert (S801).
  • the DPI alert processing unit 105C determines whether the DPI rule name included in the DPI alert is "flooding monitoring" (S802). If the DPI rule name is "flooding monitoring" (if S802 is Yes), the DPI alert processing unit 105C determines whether the alert content is "rule end” (S803). If the alert content is "rule end” (if S803 is Yes), the DPI alert processing unit 105C determines whether 100 or more DPI alerts with the same rule number and alert content "check applicable" have been received (S804).
  • the DPI alert processing unit 105C can confirm that the communication is not limited to a single service ID, and therefore determines that the communication monitored by the DPI rule is normal (S805). Then, since the corresponding DPI rule has already been discarded in the ECU to which the DPI rule applies, the DPI alert processing unit 105C discards the corresponding DPI rule from all DPI rule storage units 106 in the zone ECU (S806). At this point, the DPI alert processing unit 105C notifies zone ECUs other than itself to discard the rule.
  • the DPI alert processing unit 105C determines that the communication monitored by the DPI rule is an abnormal communication using a single service ID (S807). The DPI alert processing unit 105C then discards the existing DPI rules from all DPI rule storage unit 106, reissues a DPI rule that blocks the abnormal communication (S808), and terminates the DPI alert processing.
  • the DPI alert processing unit 105C ends the DPI alert processing and waits until a DPI alert with the alert content "end of rule” is notified.
  • the DPI alert processing unit 105C determines whether a "check hit" with the same rule number and a different DPI rule name has already been received (S812). If a "check hit" with the same rule number and a different DPI rule name has already been received (if S812 is Yes), it has been confirmed that the attacker ECU is communicating using the same service ID, and so the DPI alert processing unit 105C determines that the communication monitored by the DPI rule is abnormal (S813). The DPI alert processing unit 105C then discards all existing DPI rules from the DPI rule storage unit 106, reissues a DPI rule that blocks abnormal communication (S814), and terminates the DPI alert processing.
  • the DPI alert processing unit 105C ends the DPI alert processing and waits until the next DPI alert is notified.
  • [An example of a DPI rule that blocks abnormal communications] 22 is a diagram showing an example of a DPI rule for blocking abnormal communication. In FIG. 22, "abnormal communication" is shown as the name of the DPI rule.
  • Header information of the abnormal communication is specified as the header condition
  • the check content is specified as confirmation of the service ID or client ID used in the abnormal communication. Then, the process of blocking packets of the communication that matches the specified content is specified as the check action.
  • the number of monitored packets is set to unlimited ( ⁇ ). This prevents the DPI unit of the ECU from arbitrarily discarding the DPI rule. It is preferable to recalculate the processing priority for the corresponding packet, but the processing priority of the original DPI rule may be used.
  • an anomaly detection device for a vehicle equipped with an in-vehicle network (in-vehicle network system) in which multiple ECUs communicate via Ethernet will be described. Note that components having the same functions as those in the first embodiment will be given the same numbers and will not be described.
  • Fig. 23 is an overall configuration diagram of the in-vehicle network system 20.
  • the in-vehicle network system 20 includes an ADAS ECU 200a, an IVI ECU 200b, a steering wheel control ECU 200c, a brake control ECU 200d, a shift lever ECU 200e, a camera ECU 200f, a LiDAR ECU 200g, and zone ECUs 1100a, 1100b, and 1100c.
  • Zone ECU 1100a 24 is a diagram showing the configuration of the zone ECU 1100a. Note that the zone ECUs 1100b and 1100c have the same configuration as the zone ECU 1100a, so a description thereof will be omitted.
  • the zone ECU 1100a includes a communication port unit 101, a DPI unit 102, a flow information collection unit 103, a flow-based anomaly detection unit 104, a DPI control unit 1105, a total DPI rule memory unit 106, and an ECU management list storage unit 107.
  • the DPI control unit 1105 includes a DPI rule generation unit 1105A, a DPI rule transfer unit 1105B, and a DPI alert processing unit 1105C.
  • the DPI rule generation unit 1105A generates DPI rules based on the abnormality alerts output by the flow-based anomaly detection unit 104 or the DPI alerts output by the DPI units of each ECU.
  • the DPI rule generation unit 1105A determines the header conditions, check contents, check operations, and number of monitored packets included in the DPI rules.
  • the DPI rule transfer unit 1105B determines the application destination of the DPI rule generated by the DPI rule generation unit 1105A according to the processing load status of each ECU, and transfers the DPI rule to the determined ECU to which it is to be applied. For example, when monitoring communication between the ADAS ECU 200a and the steering wheel control ECU 200c, if the number of packets monitored by the DPI unit 202 of the ADAS ECU 200a exceeds a specified value, the generated DPI rule is transferred to the zone ECU 1100a or zone ECU 1100b instead of the ADAS ECU 200a.
  • the DPI rule transfer unit 1105B receives the number of communication packets of the ECUs that are candidates for application and the number of monitored packets in the DPI unit from the flow information collection unit 103. The DPI rule transfer unit 1105B determines where to apply the DPI rule based on this information and also calculates the processing priority.
  • Fig. 25 is a diagram showing a processing sequence when an attack occurs from the steering wheel control ECU 200c to the ADAS ECU 200a in the embodiment 2.
  • the zone ECUs 1100b and 1100c collect flow information in the flow information collection unit 103, perform anomaly detection in the flow-based anomaly detection unit 104, generate DPI rules in the DPI rule generation unit 1105A based on the results, determine the application destination of the DPI rules according to the processing load status of each ECU, and perform security measures based on the monitoring results of the applied DPI rules.
  • the steering wheel control ECU 200c performs a flooding attack on the ADAS ECU 200a (S901).
  • the zone ECUs 1100a and 1100b which exist on the communication path between the steering wheel control ECU 200c and the ADAS ECU 200a, mirror and receive the packets, and collect flow information (S902).
  • Zone ECUs 1100a, 1100b, and 1100c share the collected flow information among themselves (S903). Note that the processing of zone ECU 1100c is not shown in FIG. 25.
  • the zone ECUs 1100a, 1100b, and 1100c each perform flow-based anomaly detection based on the shared flow information and detect that the steering wheel control ECU 200c is attacking the ADAS ECU 200a (S904).
  • the zone ECUs 1100a, 1100b, and 1100c generate a first DPI rule for monitoring communications based on the results of the flow-based anomaly detection (S905).
  • the zone ECU 1100b selects the ADAS ECU 200a, the steering wheel control ECU 200c, the zone ECU 1100a, and the zone ECU 1100b as candidates for the application of the generated first DPI rule, checks the processing load of each ECU from the flow information, and based on the check results, determines itself as the application of the DPI rule, and applies the first DPI rule (S906).
  • the zone ECU 1100a determines from the flow information that the generated first DPI rule should be applied to the zone ECU 1100b (S907). Note that the method of this determination is the same as in S906.
  • the steering wheel control ECU 200c continues to perform a flooding attack on the ADAS ECU 200a (S908).
  • the zone ECU 1100b monitors the packet payload according to the first DPI rule applied to the DPI unit 102 (S909).
  • the zone ECU 1100b generates a DPI alert based on the monitoring results of the DPI unit 102 (S910). Based on the generated DPI alert, the zone ECU 1100b officially determines that the communication of the steering wheel control ECU 200c is abnormal, and applies the second DPI rule that blocks abnormal communication to its own DPI unit 102 (S911).
  • the steering wheel control ECU 200c continues to perform a flooding attack on the ADAS ECU 200a (S912).
  • the DPI unit 102 of the zone ECU 1100b blocks the abnormal communication from the steering wheel control ECU 200c to the ADAS ECU 200a in accordance with the second DPI rule (S913).
  • [DPI rule generation flowchart] 26 is a flowchart of DPI rule generation.
  • the DPI rule generation unit 1105A acquires an abnormality alert generated by the flow-based anomaly detection unit 104 (S1001).
  • the DPI rule generation unit 1105A provisionally issues a rule number for the DPI rule (S1002).
  • the DPI rule generation unit 1105A determines whether the alert type included in the DPI alert is a "flooding attack" (S1003). If the alert type is a "flooding attack" (if S1003 is Yes), the DPI rule generation unit 1105A sets the source and destination IP addresses assigned to the flow ID included in the abnormality alert in the header condition included in the DPI rule (S1004).
  • the DPI rule generation unit 1105A refers to the ECU management list to confirm the legitimate service ID from the flow ID (S1005), and sets the check contents included in the DPI rule using the confirmed service ID (S1006).
  • the DPI rule generation unit 1105A sets a process to notify an alert to the zone ECU that issued the DPI rule as a check operation included in the DPI rule (S1007).
  • the DPI rule generation unit 1105A sets the number of monitoring packets included in the DPI rule to a value required for monitoring flooding attacks (S1008).
  • the DPI rule generation unit 1105A then integrates the contents set up to this point into one DPI rule (S1009).
  • the DPI rule generation unit 1105A requests the DPI rule transfer unit 1105B to determine the application destination of the generated DPI rule, determine the processing priority, and transfer the rule (S1010), and ends the DPI rule generation process.
  • the DPI rule generation unit 1105A determines whether the alert type included in the abnormal alert is "spoofing attack” (S1011). If the alert type is "spoofing attack” (if S1011 is Yes), the DPI rule generation unit 1105A sets the flow ID included in the abnormal alert to the header condition included in the DPI rule (S1012). The DPI rule generation unit 1105A then refers to the ECU management list to confirm the legitimate client ID from the flow ID (S1013), and sets the check content included in the DPI rule using the confirmed client ID (S1014).
  • the DPI rule generation unit 1105A sets the process of blocking the relevant packet and resetting its own monitoring packet count to unlimited ( ⁇ ) as the check action included in the DPI rule (S1015).
  • the DPI rule generation unit 1105A sets the monitoring packet count included in the DPI rule to a value required for monitoring spoofing attacks (S1016).
  • the DPI rule generation unit 1105A then integrates the contents set up to this point into one DPI rule (S1009), requests the transfer of the DPI rule (S1010), and ends the DPI rule generation process.
  • the DPI rule generation unit 1105A determines whether the alert type included in the abnormality alert is "man-in-the-middle attack (increase)" (S1017). If the alert type is "man-in-the-middle attack (increase)" (if S1017 is Yes), the DPI rule generation unit 1105A sets the source and destination IP addresses assigned to the flow ID included in the abnormality alert in the header condition included in the DPI rule (S1018).
  • the DPI rule generation unit 1105A refers to the ECU management list to confirm the legitimate service ID from the flow ID (S1019), and sets the check contents included in the DPI rule using the confirmed service ID (S1020).
  • the DPI rule generation unit 1105A sets a process to notify an alert to the zone ECU that issued the DPI rule as a check operation included in the DPI rule (S1021).
  • the DPI rule generation unit 1105A sets the number of monitoring packets included in the DPI rule to a value required for monitoring man-in-the-middle attacks (S1022).
  • the DPI rule generation unit 1105A then integrates the contents set up to this point into one DPI rule (S1009), requests the transfer of the DPI rule (S1010), and ends the DPI rule generation process.
  • the DPI rule generation unit 1105A determines that the alert type included in the DPI rule is "man-in-the-middle attack (decrease)".
  • the DPI rule generation unit 1105A estimates that the source ECU assigned to the flow ID included in the abnormal alert with the same alert number and with the alert type "man-in-the-middle attack (increase)" is the attacking ECU (S1023).
  • the DPI rule generation unit 1105A extracts the source ECU from the flow ID included in its own abnormal alert with the alert type "man-in-the-middle attack (decrease)", and sets the pair of the source ECU and the IP address of the estimated attacking ECU (the attacking ECU is the destination side) as the header condition of the DPI rule (S1024).
  • the DPI rule generation unit 1105A sets the check contents, check operation, and number of monitored packets included in the DPI rule to the same contents as the paired DPI rule, that is, the DPI rule generated from the abnormal alert having the same alert number and the alert type "man-in-the-middle attack (increase)" (S1025).
  • the DPI rule generation unit 1105A then integrates the contents set up to this point into one DPI rule (S1009), requests the DPI rule transfer unit 1105B to transfer the DPI rule (S1010), and ends the DPI rule generation process.
  • Flowchart of DPI rule forwarding process 27 is a flowchart of the DPI rule transfer process.
  • the DPI rule transfer section 1105B receives the DPI rule generated by the DPI rule generating section 1105A (S1101).
  • the DPI rule transfer unit 1105B selects an ECU on the path through which the packet to be monitored for the DPI rule passes (S1102).
  • the ECUs on the path include the source ECU and destination ECU of the packet to be monitored, and the zone ECUs on the communication path between the source ECU and destination ECU.
  • zone ECUs 100a and 100b are selected as the zone ECUs on the path. It is also assumed that zone ECU 100b is the zone ECU that manages the source ECU.
  • the DPI rule transfer unit 1105B requests flow information from each selected ECU, and calculates for each ECU the packet occupancy rate and the number of DPI processed packets, which is the number of packets per minute at which payload monitoring processing is performed in the DPI unit (S1103).
  • the DPI rule transfer unit 1105B determines whether the packet to be monitored for the DPI rule is encrypted communication (S1104). If the packet to be monitored is encrypted communication (if S1104 is Yes), the DPI rule transfer unit 1105B narrows down the candidates to the source ECU and destination ECU that can decrypt the encrypted communication, and determines whether the number of DPI processed packets of the destination ECU is greater than that of the source ECU (S1105).
  • the DPI rule transfer unit 1105B sets the source ECU as the application destination of the DPI rule, sets the packet occupancy rate of that ECU as the processing priority, and transfers the DPI rule to the ECU to which it is applied (S1106). After that, the DPI rule transfer unit 1105B ends the DPI rule transfer process.
  • the DPI rule transfer unit 1105B sets the destination ECU to which the DPI rule is to be applied, sets the packet occupancy rate in that ECU as the processing priority, and transfers the DPI rule to the ECU to which it is to be applied (S1107). The DPI rule transfer unit 1105B then ends the DPI rule transfer process.
  • the zone ECU can also monitor the packet without decrypting it, so the DPI rule transfer unit 1105B determines whether the number of DPI processed packets of the zone ECU 1100b that manages the source ECU is 10,000 or more (S1108). If the number of DPI processed packets of the zone ECU 1100b is 10,000 or more (if S1108 is Yes), the DPI rule transfer unit 1105B determines whether the number of DPI processed packets of the other zone ECU candidate, zone ECU 1100a, is 10,000 or more (S1109). If the number of DPI processed packets of the zone ECU 1100a is 10,000 or more (if S1109 is Yes), monitoring is difficult on the zone ECU side, so the DPI rule transfer unit 1105B performs step S1105.
  • the DPI rule transfer unit 1105B sets the application destination of the DPI rule to the zone ECU 1100a, sets the packet occupancy rate in that ECU as the processing priority, and transfers the DPI rule to the ECU to which it is applied (S1110).
  • the DPI rule transfer unit 1105B then ends the DPI rule transfer process.
  • DPI rule transfer unit 1105B sets zone ECU 1100b as the application destination of the DPI rule, sets the packet occupancy rate in that ECU as the processing priority, and transfers the DPI rule to the ECU to which it is applied (S1111). After that, DPI rule transfer unit 1105B ends the DPI rule transfer process.
  • FIG. 28 is a diagram showing an example of flow information that the DPI rule transfer part 1105B requests from the flow information collection part 103 in order to determine the application destination and processing priority of the DPI rule.
  • the DPI rule transfer unit 1105B When determining where to apply the DPI rule, notifies the flow information collection unit 103 of the header conditions of the packets to be monitored by the DPI rule.
  • the flow information collection unit 103 selects an ECU that can monitor packets with the notified header conditions, extracts flow information used as a comparison condition for determining where to apply the DPI rule and flow information for determining processing priority from the collected flow information, and transfers the extracted flow information to the DPI rule transfer unit 1105B.
  • the flow information requested from the flow information collection unit 103 is linked to the rule number provisionally issued when the DPI rule was generated.
  • the flow information includes whether encryption is performed, the communication volume of the packets to be monitored, the candidate ECUs to which the DPI rule is applied, the communication volume of all the candidate ECUs, the packet occupancy rate of the packets to be monitored, and the number of DPI processed packets in the candidate ECUs.
  • the presence or absence of encryption indicates whether the communication that meets the target header conditions has been encrypted.
  • the presence or absence of encryption is determined by the combination of the source ECU and the destination ECU.
  • the communication volume of the monitored packets indicates the communication volume of packets that meet the header conditions communicated on the in-vehicle network system 20.
  • the candidate ECUs indicate the ECUs through which the packets to be monitored communicate.
  • the packet occupancy rate indicates the ratio (%) of the number of packets to be monitored to the number of packets communicated across all candidate ECUs to be applied. In other words, the packet occupancy rate indicates the proportion of the number of packets to be monitored out of the total number of packets communicated across all candidate ECUs to be applied.
  • the number of DPI processed packets indicates the number of packets whose payloads are currently being monitored by the DPI unit of the candidate ECU according to the DPI rules.
  • the flow information collection unit 103 calculates the number of DPI processed packets by obtaining information on the DPI rules applied to each ECU from the all-DPI rule storage unit 106. The larger this value is, the greater the processing load on the DPI unit of each ECU. Furthermore, this number of DPI processed packets is not limited to the above definition. For example, the number of DPI processed packets may be the number of times that the DPI units 102 and 202 perform a header check on the DPI rules and received packets.
  • Fig. 29 is a diagram showing an example of a DPI rule whose application destination has been dynamically changed.
  • the DPI rule is applied to the zone ECU 1100b which is the issuer of the DPI rule.
  • rule number "B-12” is a DPI rule for man-in-the-middle attack monitoring
  • two DPI rules with rule number "B-12" are generated. One is applied to the zone ECU 1100c, and the other is applied to the brake control ECU 200d.
  • an anomaly detection device for a vehicle equipped with an in-vehicle network (in-vehicle network system) in which multiple ECUs communicate via Ethernet will be described. Note that components having the same functions as those in the first embodiment will be given the same numbers and will not be described.
  • Fig. 30 is an overall configuration diagram of the in-vehicle network system 30.
  • the in-vehicle network system 30 includes an ADAS ECU 200a, an IVI ECU 200b, a steering wheel control ECU 200c, a brake control ECU 200d, a shift lever ECU 200e, a camera ECU 200f, a LiDAR ECU 200g, and zone ECUs 2100a, 2100b, and 2100c.
  • Zone ECU 2100a 31 is a diagram showing the configuration of the zone ECU 2100a. Note that the zone ECUs 2100b and 2100c have the same configuration as the zone ECU 2100a, so a description thereof will be omitted.
  • the zone ECU 2100a includes a communication port unit 101, a DPI unit 102, a flow information collection unit 103, a flow-based anomaly detection unit 104, a DPI control unit 2105, an all-DPI rule memory unit 106, an ECU management list storage unit 107, a safety determination unit 2108, and a safety monitoring DPI rule list storage unit 2109.
  • the DPI control unit 2105 includes a DPI rule generation unit 2105A, a DPI rule transfer unit 2105B, and a DPI alert processing unit 105C.
  • the DPI rule generation unit 2105A generates DPI rules from the abnormality alerts generated by the flow-based anomaly detection unit 104.
  • the DPI rule generation unit 2105A also generates DPI rules in response to instructions from the safety determination unit 2108.
  • the safety determination unit 2108 determines whether there is a risk to the driver's life based on the abnormality alert from the flow-based anomaly detection unit 104 and the vehicle status received from the ADAS ECU 200a and the shift lever ECU 200e, and issues commands to each ECU to ensure the safety of the driver as necessary. In addition, if there is a risk of attack on a function related to the driver's safety, the safety determination unit 2108 instructs the DPI rule generation unit 2105A to generate a DPI rule that monitors the communication of the ECU that has that function.
  • the safety monitoring DPI rule list storage unit 2109 stores in advance templates of DPI rules generated in response to instructions from the safety judgment unit 2108.
  • the DPI rule generation unit 2105A receives an instruction to generate a DPI rule from the safety judgment unit 2108, it does not create a DPI rule from scratch, but instead calls up the template of the corresponding DPI rule from the safety monitoring DPI rule list storage unit 2109 and generates a DPI rule using that template.
  • [DPI rule list for safety monitoring] 32 is a diagram showing an example of a safety monitoring DPI rule list stored in the safety monitoring DPI rule list storage unit 2109.
  • a DPI rule stored in the safety monitoring DPI rule list includes a DPI rule name, a header condition, a check content, an operation at the time of checking, and a number of monitored packets.
  • the DPI rule generation unit 2105A requests the safety monitoring DPI rule list storage unit 2109 for necessary DPI rules in accordance with an instruction from the safety judgment unit 2108.
  • the DPI rule for emergency stop system monitoring is a DPI rule that is generated when the safety judgment unit 2108 judges to activate a system that brings the vehicle to an emergency stop based on an abnormality alert output from the flow-based anomaly detection unit 104.
  • This DPI rule is used to determine whether a malicious ECU is performing malicious communication through a spoofing attack on the control system ECU or sensor ECU used when bringing the vehicle to an emergency stop. Therefore, if the communication does not use a legitimate client ID, the packet is blocked and the vehicle's functions are protected.
  • the DPI rule for monitoring the rearview monitor is generated when an abnormal alert occurs in communication with the IVI while the shift lever is in reverse (R). This DPI rule monitors whether communications other than those with valid client IDs are being made on the rearview monitor that the driver looks at to check behind him while parking, and communication packets with invalid client IDs are blocked by DPI units 102 and 202.
  • Fig. 33 is a diagram showing a processing sequence when an attack occurs from the steering wheel control ECU 200c to the ADAS ECU 200a in the embodiment 3.
  • a DPI rule that monitors the operation of the emergency stop system and the communication of the function is applied, and a security response is performed based on the monitoring result of the DPI unit.
  • the ADAS ECU 200a starts automatic driving and reports this to the zone ECUs 2100a, 2100b, and 2100c (S1201).
  • the shift lever ECU 200e periodically reports the state of the shift lever to the zone ECUs 2100a, 2100b, and 2100c (S1202). Note that the processing of the zone ECU 2100c is not shown in FIG. 33.
  • the steering wheel control ECU 200c performs an attack by masquerading as the ADAS ECU 200a (S1203).
  • the zone ECUs 2100a and 2100b which exist on the communication path between the steering wheel control ECU 200c and the ADAS ECU 200a, mirror the packets, receive the packets, and collect flow information (S1204).
  • the zone ECUs 2100a, 2100b, and 2100c share the collected flow information between them (S1205).
  • the zone ECUs 2100a, 2100b, and 2100c each perform flow-based anomaly detection based on the shared flow information, and detect that the steering wheel control ECU 200c is attacking the ADAS ECU 200a (S1206).
  • the zone ECUs 2100a, 2100b, and 2100c perform a safety judgment to determine whether the contents of the abnormality alert generated by the flow-based abnormality detection are a threat to the safety of the vehicle (S1207). Specifically, the zone ECUs 2100a, 2100b, and 2100c perform the safety judgment by comparing the contents of the abnormality alert with the vehicle status reported by the ADAS ECU 200a and the shift lever ECU 200e.
  • the zone ECU 2100a determines based on the safety assessment result that there is a risk in continuing the autonomous driving, and after performing an emergency stop, sends a command to the ADAS ECU 200a to stop the autonomous driving system (S1208).
  • the ADAS ECU 200a operates the emergency stop system according to instructions from the zone ECU 2100a that manages it (S1209). To safely operate the emergency stop system, the zone ECU 2100a distributes DPI rules to the ECUs involved in the emergency stop to monitor whether unauthorized communication is taking place (S1210).
  • the ADAS ECU 200a and the camera ECU 200f receive the DPI rules from the zone ECU 2100a and apply the received DPI rules to the DPI section 202 (S1211).
  • the steering wheel control ECU 200c continues to perform spoofing attacks on the ADAS ECU 200a (S1212).
  • the ADAS ECU 200a blocks abnormal communications from the steering wheel control ECU 200c in accordance with the DPI rules (S1213).
  • [Zone ECU Packet Processing] 34 is a flowchart of a process performed when a zone ECU receives a packet in the third embodiment.
  • the communication port unit 101 mirrors and receives packets communicated through itself (S1301).
  • the flow information collection unit 103 extracts header information from the received packets and updates the flow information (S1302).
  • the flow information collection unit 103 determines whether the specified time for collecting flow information has been exceeded (S1303). If the specified time has been exceeded (Yes in S1303), the flow information collection unit 103 outputs the flow information (S1304). If the specified time has not been exceeded (No in S1303), the flow information collection unit 103 returns to the first step S1301.
  • the communication port unit 101 transfers the output flow information to other zone ECUs (S1305).
  • the communication port unit 101 also receives flow information transferred from other zone ECUs (S1306).
  • the flow information collection unit 103 then combines the flow information it has output with the flow information transferred from the other zone ECUs (S1307).
  • the flow-based anomaly detection unit 104 performs flow-based anomaly detection based on the combined flow information (S1308) and determines whether or not an anomaly exists (S1309). If an anomaly exists (if S1309 is Yes), the flow-based anomaly detection unit 104 generates an anomaly alert that describes the details of the anomaly (S1310). If no anomaly exists (if S1309 is No), the zone ECU ends the process.
  • the DPI rule generation unit 2105A compares the content of the generated abnormality alert with the vehicle state to determine whether the content of the abnormality alert poses a threat to the safety of the vehicle (S1311).
  • the DPI rule generation unit 2105A determines whether the vehicle is in a dangerous state based on the safety judgment result (S1312).
  • the DPI rule generation unit 2105A instructs the ECU to take action to ensure safety (S1313) and generates a DPI rule for ensuring the safety of the vehicle (S1314). If it is determined that the vehicle is not in a dangerous state (if S1312 is No), the DPI rule generation unit 2105A skips the processing of steps S1313 and S1314.
  • the DPI rule generation unit 2105A generates a DPI rule from the generated abnormality alert (S1315).
  • the DPI rule generation unit 2105A stores the generated DPI rule in the total DPI rule storage unit 106 (S1316).
  • the DPI rule transfer unit 2105B determines whether the ECU to which the generated DPI rule is applied is its own managed ECU based on the ECU management list (S1317). If the ECU is its own managed ECU (Yes in S1317), the DPI rule transfer unit 2105B transfers the DPI rule to the ECU to which the rule is applied (S1318), and the zone ECU ends processing. If the ECU is not its own managed ECU (No in S1317), the zone ECU ends processing.
  • [Safety Determination Processing Flowchart] 35 is a processing flowchart of safety determination.
  • the safety determination unit 2108 determines whether there is an abnormality alert from the flow-based anomaly detection unit 104 (S1401). If there is an abnormality alert (Yes in S1401), the safety determination unit 2108 determines whether the communication that is the subject of the abnormality alert is communication with the ADAS ECU 200a (S1402).
  • the safety judgment unit 2108 judges whether the vehicle is in autonomous driving mode (S1403). If the vehicle is in autonomous driving mode (if S1403 is Yes), the safety judgment unit 2108 instructs the ADAS ECU 200a to activate the emergency stop system and notifies the driver accordingly (S1404). The safety judgment unit 2108 then instructs the DPI rule generation unit 2105A to generate a DPI rule for monitoring the emergency stop system (S1405).
  • the safety determination unit 2108 determines whether the shift lever is in drive (D) shift (S1406). If the shift lever is in D shift (if S1406 is Yes), the safety determination unit 2108 instructs the ADAS ECU 200a to stop drive assist and notifies the driver accordingly (S1407).
  • the safety judgment unit 2108 determines whether the shift lever is in reverse (R) shift (S1408). If the shift lever is in R shift (if S1408 is Yes), the safety judgment unit 2108 instructs the ADAS ECU 200a to stop parking assist and notifies the driver of this (S1409). If the shift lever is not in R shift (if S1408 is No), the safety judgment unit 2108 ends the safety judgment process.
  • the safety determination unit 2108 determines whether the communication for which the abnormality alert is issued is with the IVI ECU 200b (S1410). If the communication for which the abnormality alert is issued is with the IVI ECU 200b (if S1410 is Yes), the safety determination unit 2108 determines whether the shift lever is in reverse (R) shift (S1411). If the shift lever is in R shift (if S1411 is Yes), the safety determination unit 2108 instructs the DPI rule generation unit 2105A to generate a DPI rule for monitoring the rearview monitor (S1412).
  • the safety judgment unit 2108 ends the safety judgment process. If there is no abnormality alert from the flow-based abnormality detection unit 104 (if S1401 is No), the safety judgment unit 2108 ends the safety judgment process.
  • Flowchart of DPI rule generation process for safety monitoring] 36 is a flowchart of the process by the DPI rule generating unit 2105A in embodiment 3.
  • the DPI rule generating unit 2105A receives an instruction to generate a DPI rule from the safety determining unit 2108 (S1501).
  • the DPI rule generation unit 2105A determines whether the instruction from the safety determination unit 2108 is to generate a DPI rule for monitoring the emergency stop system (S1502). If the instruction from the safety determination unit 2108 is to generate a DPI rule for monitoring the emergency stop system (if S1502 is Yes), the DPI rule generation unit 2105A requests the DPI rule for monitoring the emergency stop system from the safety monitoring DPI rule list storage unit 2109, and acquires the DPI rule for monitoring the emergency stop system (S1503).
  • the DPI rule generation unit 2105A requests the DPI rule transfer unit 2105B to determine the application destination of the DPI rule for emergency stop system monitoring, to determine the processing priority, and to transfer the DPI rule to the application destination (S1504), and then ends the processing.
  • the DPI rule generation unit 2105A requests a DPI rule for monitoring the rear monitor from the safety monitoring DPI rule list storage unit 2109, and acquires the DPI rule for monitoring the rear monitor (S1505).
  • the DPI rule generation unit 2105A requests the DPI rule transfer unit 2105B to determine the application destination of the DPI rule for safety monitoring, to determine the processing priority, and to transfer the DPI rule to the application destination (S1504), and ends the process.
  • Fig. 37 is a diagram showing an example of a generated safety monitoring DPI rule.
  • the DPI rule shown in Fig. 37 is a DPI rule for monitoring an emergency stop system generated when an abnormality occurs in the ADAS ECU 200a during autonomous driving. Therefore, the issuer of the DPI rule is the zone ECU 2100a that manages the ADAS ECU 200a.
  • the processing priority of each DPI rule is calculated by the DPI rule transfer unit 2105B.
  • the DPI rule is transferred by the DPI rule transfer unit 2105B.
  • Ethernet is used for the in-vehicle network
  • this is not limiting.
  • CAN CAN-FD (Flexible-Data), Ethernet, LIN, or FlexRay (registered trademark)
  • FlexRay registered trademark
  • the flow information is collected by the zone ECU, but it may be collected by something other than the zone ECU.
  • the flow information may be collected by a head unit, a central ECU, an Ethernet switch, or the like.
  • a set of source IP address, destination IP address, source port number, destination port number, and protocol number was used as information for identifying a flow, but information for identifying a flow is not limited to these.
  • a V-LAN ID used in a Virtual LAN may be used as information for identifying a flow.
  • a CAN ID which is an identifier for communication data, may be used as information for identifying a flow. This makes the definition of a flow more flexible, and makes it possible to collect flow information suitable for the network.
  • the number of packets and the average arrival interval are used as the flow information used for flow-based anomaly detection, but the flow information used for flow-based anomaly detection is not limited to this.
  • the average packet length or a timestamp may be used.
  • a payload-based anomaly detection function DPI
  • a function other than DPI may be used.
  • an AI-based anomaly detection function may be used.
  • each ECU discards the DPI rules as appropriate based on the monitoring results of the DPI unit, but the zone ECU may command each ECU to discard the DPI rules depending on the situation.
  • the DPI rule is discarded when a specified number of packets have been monitored, but the conditions for discarding the DPI rule are not limited to this.
  • the DPI rule may be discarded when a certain amount of time has passed since the DPI rule was applied, or the DPI rule with the lowest monitoring priority may be discarded when the number of DPI rules applied to the DPI section exceeds a specified number.
  • the DPI rules are applied to the source ECU and the destination ECU.
  • the DPI rules may also be applied to other ECUs, including the zone ECU.
  • the shift lever state and whether or not the vehicle is in automatic driving are referenced as the vehicle state, but the referenced vehicle state is not limited to this.
  • the referenced vehicle state may include at least one of automatic parking, cruise control, software update, vehicle diagnosis, and internet connection.
  • at least one of generating, adding, changing, enabling, and disabling DPI rules may be performed by referring to such vehicle states.
  • the application destination of the DPI rule is set based on the number of packets processed by the DPI unit, but the method of setting the application destination of the DPI rule is not limited to this.
  • the application destination of the DPI rule may be determined based on the anomaly detection result by the flow-based anomaly detection unit. For example, if the flow-based anomaly detection unit detects a flooding attack, priority is given to applying the DPI rule to the zone ECU that is close to the source ECU. This allows the zone ECU to perform drop processing of the abnormal packet when an abnormality is detected in the DPI unit.
  • a system LSI is an ultra-multifunctional LSI manufactured by integrating multiple components on one chip, and specifically, a computer system including a microprocessor, ROM, RAM, etc. A computer program is recorded in the RAM. The system LSI achieves its function by the microprocessor operating according to the computer program.
  • each part of the components constituting each device may be individually integrated into one chip, or may be integrated into one chip to include some or all of them.
  • system LSI is used here, it may be called IC, LSI, super LSI, or ultra LSI depending on the degree of integration.
  • the method of integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. It is also possible to use a field programmable gate array (FPGA) that can be programmed after LSI manufacturing, or a reconfigurable processor that can reconfigure the connections and settings of the circuit cells inside the LSI.
  • FPGA field programmable gate array
  • a reconfigurable processor that can reconfigure the connections and settings of the circuit cells inside the LSI.
  • each of the above devices may be composed of an IC card or a standalone module that can be attached to each device.
  • the IC card or module is a computer system composed of a microprocessor, ROM, RAM, etc.
  • the IC card or module may include the above-mentioned ultra-multifunction LSI.
  • the IC card or module achieves its functions when the microprocessor operates according to a computer program. This IC card or module may be tamper-resistant.
  • One aspect of the present disclosure may be a program (computer program) that realizes the method of anomaly detection by a computer, or a digital signal consisting of a computer program.
  • Another aspect of the present disclosure may be a computer-readable recording medium for the computer program or digital signal, such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blue-ray (registered trademark) Disc), or semiconductor memory.
  • Another aspect of the present disclosure may be a digital signal recorded on such a recording medium.
  • Another aspect of the present disclosure may be a computer program or digital signal transmitted via a telecommunications line, a wireless or wired communication line, a network such as the Internet, or data broadcasting.
  • Another aspect of the present disclosure may be a computer system including a microprocessor and a memory.
  • the memory may record the computer program, and the microprocessor may operate according to the computer program.
  • one aspect of the present disclosure may be implemented by another independent computer system by recording a program or digital signal on a recording medium and transferring the program or digital signal, or by transferring the program or digital signal via a network or the like.
  • the present disclosure is useful for a device that detects communication anomalies and a method for detecting communication anomalies in an in-vehicle network system.
  • Vehicle-mounted network system 100a, 100b, 100c, 1100a, 1100b, 1100c, 2100a, 2100b, 2100c Zone ECU 101, 201 Communication port unit 102, 202 DPI unit 103 Flow information collection unit 104 Flow-based anomaly detection unit 105, 1105, 2105 DPI control unit 105A, 1105A, 2105A DPI rule generation unit 105B, 1105B, 2105B DPI rule transfer unit 105C DPI alert processing unit 106 All DPI rule storage unit 107 ECU management list storage unit 200a ADAS ECU 200b IVI ECU 200c Steering wheel control ECU 200d Brake control ECU 200e Shift lever ECU 200f Camera ECU 200g LiDAR ECU 203 Application section 2108 Safety determination section 2109 Safety monitoring DPI rule list storage section

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Small-Scale Networks (AREA)

Abstract

1以上の上位電子制御装置が配置された上位ネットワークと、1以上の下位電子制御装置が配置された下位ネットワークとを含む階層構造を有する車載ネットワークにおける上位電子制御装置による異常検知方法であって、車載ネットワークの所定の観測箇所において受信されるメッセージのヘッダ情報によって分類されるフローごとの統計情報であるフロー情報を収集し(S102)、フロー情報に基づいて異常検知を行い(S104)、異常検知の結果に基づいて、DPIルールの生成、追加、削除、変更、有効化及び無効化のいずれかを行い(S105)、DPIルールは、1以上の下位電子制御装置におけるメッセージの監視に用いられ、DPIルールは、メッセージに含まれるヘッダ情報及びペイロード情報の条件と、条件に合致するメッセージを受信した場合の処理内容とを示す。

Description

異常検知方法、異常検知装置及びプログラム
 本開示は、車載ネットワークシステムにおいて、通信の異常を検知する装置及び通信の異常を検知する方法に関する。
 近年、自動車の中のシステムには、電子制御装置(ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークの中には多数の規格が存在し、その中で最も主流な車載ネットワーク規格の一つに、Control Area Network(以降、CAN)という規格が存在する。
 しかし近年では、自動運転及びコネクテッド化の普及に伴い、車載ネットワークトラフィックの増大が予想され、CANよりも高速な通信規格である車載イーサネット(Ethernet)の普及が進んでいる。
 また、悪意のある攻撃者を監視する異常検知方法として、例えば、非特許文献1に記載されている方法が知られている。
Specification of the IP Flow Information Export(IPFIX)Protocol for Exchange of Flow Information (RFC7011)、September 2013、<https://www.rfc-editor.org/rfc/pdfrfc/rfc7011.txt.pdf>
 このような異常検知では、トレードオフの関係にある検知精度と処理量とを適切に両立できることが望まれている。
 本開示は、検知精度と処理量とを適切に両立できる異常検知方法及び異常検知装置等を提供することを目的とする。
 上記課題を解決するために、本開示の一態様に係る異常検知方法は、1以上の上位電子制御装置が配置された上位ネットワークと、1以上の下位電子制御装置が配置された下位ネットワークとを含む階層構造を有する車載ネットワークにおける上位電子制御装置による異常検知方法であって、前記車載ネットワークの所定の観測箇所において受信されるメッセージのヘッダ情報によって分類されるフローごとの統計情報であるフロー情報を収集し、前記フロー情報に基づいて異常検知を行い、前記異常検知の結果に基づいて、DPI(Deep Packet Inspection)ルールの生成、追加、削除、変更、有効化及び無効化のいずれかを行い、前記DPIルールは、前記1以上の下位電子制御装置における前記メッセージの監視に用いられ、前記DPIルールは、前記メッセージに含まれるヘッダ情報及びペイロード情報の条件と、前記条件に合致するメッセージを受信した場合の処理内容とを示す。
 本開示は、検知精度と処理量とを適切に両立できる異常検知方法及び異常検知装置等を提供できる。
図1は、実施の形態1における車載ネットワークシステムの全体構成図である。 図2は、実施の形態1におけるゾーンECUのブロック図である。 図3は、実施の形態1におけるADAS ECUのブロック図である。 図4は、実施の形態1におけるSOME/IP SDのメッセージフォーマットを示す図である。 図5は、実施の形態1におけるSOME/IP SDのメッセージの一例を示す図である。 図6は、実施の形態1におけるSOME/IPのメッセージフォーマットを示す図である。 図7は、実施の形態1におけるSOME/IPのメッセージの一例を示す図である。 図8は、実施の形態1におけるゾーンECUにて収集するフロー情報の一例を示す図である。 図9は、実施の形態1における全DPIルールリストの一例を示す図である。 図10は、実施の形態1におけるECUの管理リストの一例を示す図である。 図11は、実施の形態1におけるフロー情報収集から異常検知及びセキュリティ対応までのシーケンスを示す図である。 図12は、実施の形態1におけるゾーンECUによるDPIルール生成処理のフローチャートである。 図13は、実施の形態1における通信ポート部による受信処理のフローチャートである。 図14は、実施の形態1におけるフローベース異常検知部による処理の一例を示すフローチャートである。 図15は、実施の形態1における異常アラートの一例を示す図である。 図16は、実施の形態1におけるDPIルール生成処理のフローチャートである。 図17は、実施の形態1におけるDPIルール転送処理のフローチャートである。 図18は、実施の形態1における異常アラートから生成されるDPIルールの一例を示す図である。 図19は、実施の形態1におけるDPIルール処理のフローチャートを示した図である。 図20は、実施の形態1におけるDPIアラートの一例を示す図である。 図21は、実施の形態1におけるゾーンECUでのDPIアラート処理のフローチャートである。 図22は、実施の形態1における異常通信を遮断するDPIルールの一例を示す図である。 図23は、実施の形態2における車載ネットワークシステムの全体構成図である。 図24は、実施の形態2におけるゾーンECUの全体構成図である。 図25は、実施の形態2におけるフロー情報収集から異常検知及びセキュリティ対応までのシーケンスを示す図である。 図26は、実施の形態2におけるDPIルール生成処理のフローチャートである。 図27は、実施の形態2におけるDPIルール転送部による処理のフローチャートである。 図28は、実施の形態2におけるDPIルール適用先を決定するために要求するフロー情報の一例を示す図である。 図29は、実施の形態2における異常アラートから生成されるDPIルールの一例を示す図である。 図30は、実施の形態3における車載ネットワークの全体構成図である。 図31は、実施の形態3におけるゾーンECUの構成図を示す図である。 図32は、実施の形態3における安全監視用のDPIルールリストの一例を示す図である。 図33は、実施の形態3におけるフロー情報収集から安全監視用のDPIルール適用までのシーケンスを示す図である。 図34は、実施の形態3におけるゾーンECUによるパケット処理のフローチャートである。 図35は、実施の形態3における安全性判断部による処理のフローチャートである。 図36は、実施の形態3における安全性判断によるDPIルール生成部による処理のフローチャートである。 図37は、実施の形態3における安全監視用DPIルールの一例を示す図である。
 [本開示の基礎となった知見]
 車載ネットワーク上では、車両の走る、止まる又は曲がるなどの制御を指示する制御フレームが送受信される。そのため、悪意のある攻撃者が正規のECUになりすまして制御フレームを送信する攻撃、又は特定の制御フレームを受信させないことを目的としたDoS攻撃が実行された場合、車両の運転手だけでなく、車両周囲の歩行者も危険に晒してしまう問題がある。
 また普及の進む車載イーサネット環境では、通信がより高速になるため、ペイロードベースの監視を行うDeep Packet Inspection(DPI)ではパケット一つ一つの監視が困難となる。
 そこでネットワーク全体を監視する方法として、例えば、非特許文献1に記載されているIPFIXという仕様が存在する。IPFIXではイーサネット又はTCP/IPヘッダに含まれる情報に基づいて、イーサネット上を流れる複数フレームをイーサネットスイッチにて分類し、フロー情報と呼ばれる統計情報を生成する。そしてイーサネットスイッチよりも上位の異常検知装置がフロー情報を監視することで、低演算量かつ低通信量でネットワーク全体を監視することができる。
 しかしながらフロー情報を活用した異常検知手法は、パケットのペイロード情報の監視までは行わないため、誤検知などの恐れが存在する。
 本開示では、パケットのヘッダ情報から統計情報が収集されることで、フロー情報が生成される。そして、上位の異常検知装置にてフロー情報の時間変化から異常を検出し、その検出結果から異常と予測されるパケットを対象にペイロードベースの監視ルールを有効化する。これにより、一部のパケットに対してのみペイロード監視が実施され、誤検知及び監視に必要な計算量を抑制しながら異常を検知できる。これにより自動運転又は先進運転システムの処理に必要な計算リソースを確保しながら、車載ネットワークでの異常通信を監視できる。
 つまり、本開示の車載ネットワーク異常検知システムによれば、車載ネットワーク全体の監視はフロー情報に基づいた異常検知装置が担当し、DPI部がフロー情報に基づいて検出された異常な通信を監視することで、ネットワーク全体の負荷を低減しながら、異常検知システムの誤検知を抑制できる。その結果、高速な通信が発生する車載イーサネット環境においても、処理落ちを抑制しつつネットワークの監視が可能となり、安全な自動運転又は先進運転支援サービスを提供できる。
 上記課題を解決するために、本開示の一態様に関わる異常検知方法は、1以上の上位電子制御装置が配置された上位ネットワークと、1以上の下位電子制御装置が配置された下位ネットワークとを含む階層構造を有する車載ネットワークにおける上位電子制御装置による異常検知方法であって、前記車載ネットワークの所定の観測箇所において受信されるメッセージのヘッダ情報によって分類されるフローごとの統計情報であるフロー情報を収集し、前記フロー情報に基づいて異常検知を行い、前記異常検知の結果に基づいて、DPI(Deep Packet Inspection)ルールの生成、追加、削除、変更、有効化及び無効化のいずれかを行い、前記DPIルールは、前記1以上の下位電子制御装置における前記メッセージの監視に用いられ、前記DPIルールは、前記メッセージに含まれるヘッダ情報及びペイロード情報の条件と、前記条件に合致するメッセージを受信した場合の処理内容とを示す。
 これにより、フロー情報に基づく異常検知によって、メッセージのペイロード情報を一つ一つ監視することなく、処理負荷を低減してネットワーク全体の監視が可能となる。また、異常検知の結果に基づき、ペイロード情報の監視を含むDPIルールを生成することで、誤検知を抑制することができる。さらに、フロー情報に基づく異常検知と、DPIルールを用いた監視との二段階で異常検知をすることにより、最初に異常検知を行うフロー情報を用いた異常検知において、誤検知を許容する代わりに異常通信の見逃しを少なくするような異常検知ルールの設定が可能となる。このように、本開示は、検知精度と処理量とを適切に両立できる。
 さらに、上位電子制御装置がフロー情報に基づく異常検知を行い、その結果を用いて生成したDPIルールを必要な下位電子制御装置に対して有効化することで、各電子制御装置が監視するメッセージ数が減少する。これにより、電子制御装置単位の処理負荷を低減できる。さらに、下位電子制御装置は上位電子制御装置に従ってネットワークの監視をすることで、監視ルールを単純化できる。よって、ネットワーク監視に割く計算リソースを削減できる。
 例えば、前記フロー情報は、フローごとのメッセージの受信量に関する情報を含み、前記異常検知方法は、さらに、前記情報に基づいて、前記DPIルールを含む1以上のDPIルールのそれぞれについて、前記メッセージの監視の処理の順番を示す処理優先度を決定してもよい。
 これにより、下位電子制御装置でのDPIルールとメッセージのヘッダ情報との照合の回数を減らすことができる。よって、下位電子制御装置がメッセージ監視のために消費する計算リソースを削減できる。
 例えば、前記異常検知方法は、さらに、前記異常検知で検知された異常の内容と、監視する前記メッセージの単位時間あたりのメッセージ数とに応じて、前記DPIルールに従ったメッセージの監視を有効化する時間、又は前記DPIルールに従った前記メッセージの前記監視を実施するメッセージ上限数を決定してもよい。
 これにより、下位電子制御装置に適用されるDPIルールの数が時間経過とともに単調に増加していくことを防ぐことができる。よって、下位電子制御装置の処理負荷を低減できる。例えば、DPIルールごとに監視するパケット数を指定することで、監視したパケット数が指定した値を満たしたとき、そのDPIルールは破棄される。
 例えば、前記DPIルールは、前記1以上の下位電子制御装置の間で送受信されるメッセージに含まれるサービス情報又はクライアント情報を示し、前記メッセージの前記監視では、メッセージのサービス情報又はクライアント情報が前記DPIルールで示される前記サービス情報又は前記クライアント情報と一致しない場合、当該メッセージはドロップされてもよい。
 これにより、下位電子制御装置は単独で異常パケットを判断し、異常パケットをドロップできる。
 例えば、前記異常検知方法は、さらに、前記1以上の下位電子制御装置から出力された前記監視の結果に基づいて前記DPIルールを追加、変更、有効化又は無効化してもよい。
 これにより、フロー情報に基づく異常検知だけでなく、下位電子制御装置での監視結果も反映したDPIルールを各下位電子制御装置に適用できる。例えば、メッセージのペイロード情報に含まれるサービス情報又はクライアント情報などの識別子情報を監視するDPIルールが有効化されることで、通常とは異なる識別子情報を下位電子制御装置が検知する。この場合、上位電子制御装置は、その検知結果に基づいて異常な識別子情報を持つメッセージをドロップするDPIルールを生成又は有効化する、などを行うことができる。このように、下位電子制御装置の監視結果に基づいたセキュリティルールを適用できる。
 例えば、前記異常検知方法は、さらに、シフトレバー状態、自動運転中、自動駐車中、クルーズコントロール中、ソフトウェア更新中、車両診断中、及びインターネット通信接続中の少なくとも一つを含む車両状態と、前記異常検知の結果とに応じて、前記DPIルールを追加、変更、有効化又は無効化してもよい。
 これにより、上位電子制御装置は、現在の車両状態に応じて、攻撃リスクの高いメッセージを判断し、その通信を監視又は保護するようなDPIルールを追加又は有効化することができる。また、下位電子制御装置において、メッセージ処理能力を超える数量のDPIルールが有効化されている場合、古いDPIルールを一時的に無効化することで、緊急度の高いDPIルールを優先して有効化できる。
 例えば、前記異常検知方法は、さらに、前記1以上の下位電子制御装置に含まれる、前記異常検知において異常と判定された前記メッセージの送信元又は宛先である1つの下位電子制御装置の前記車両状態に応じてDPIルールで示される前記処理内容を決定してもよい。
 これにより、例えば、フロー情報に基づく異常検知で異常が発生した時点で、悪意のある攻撃者から車両の制御を奪われることから防御できる。例えば、上位電子制御装置は、自動運転システムを管理するADAS ECUとの通信のフロー情報から異常を検知した際に、自動運転中であれば車両の安全を確保しながら緊急で車両を停止させることをADAS ECUに指示する。その際に、緊急で車両を停止させるために必要な電子制御装置に対し、不正な通信を禁止するDPIルールを有効化することで、車両が停止するまでの間、車両の停止にかかわる電子制御装置への攻撃を抑制できる。
 例えば、前記異常検知方法は、さらに、前記1以上の下位電子制御装置から、前記DPIルールに従い監視される対象のメッセージの送信元の第1電子制御装置と、当該メッセージの宛先の第2電子制御装置とを選択し、前記1以上の上位電子制御装置から、前記第1電子制御装置と前記第2電子制御装置との間に配置されており、前記対象のメッセージが経由する少なくとも1つの第3電子制御装置を選択し、選択された前記第1電子制御装置、前記第2電子制御装置及び前記少なくとも1つの第3電子制御装置のうち、メッセージ処理にかかる処理負荷量が最も小さい電子制御装置に対し、前記DPIルールを適用してもよい。
 これにより、一つの電子制御装置に対し、メッセージの処理能力を超えるDPIルール数が有効化されることを抑制できる。よって、各電子制御装置の処理落ちの抑制を実現できる。
 例えば、前記異常検知方法は、さらに、前記フロー情報に基づいて、前記第1電子制御装置、前記第2電子制御装置及び前記少なくとも1つの第3電子制御装置の各々の通信量を算出し、前記1以上の下位電子制御装置で有効化されている1以上のDPIルールと、前記通信量とから前記処理負荷量を算出してもよい。
 これにより、DPIルールを複数の電子制御装置に分散して有効化することで、一つの電子制御装置にDPIルールが集中することによる処理落ちを抑制できる。
 例えば、前記異常検知方法は、さらに、前記異常検知で検知された異常内容が前記車載ネットワークに負荷がかかる異常である場合、前記少なくとも1つの第3電子制御装置のうち、前記第1電子制御装置に最も近い第3電子制御装置に前記DPIルールを適用してもよい。
 これにより、異常メッセージを送信する電子制御装置に近い上位電子制御装置でメッセージを監視することでネットワークへの負荷を抑えた対応が可能となる。例えば、フラッディング攻撃をフロー情報に基づく異常検知にて検知した際に、送信元の電子制御装置に近い上位電子制御装置でペイロード情報を監視し、異常が確認できた際はすぐに異常メッセージをドロップできる。これにより、ネットワークを圧迫する通信が送信元の電子制御装置と上位電子制御装置との間のネットワーク以外に流れるのを抑制できる。
 例えば、前記異常検知方法は、さらに、前記上位電子制御装置において前記DPIルールを用いてメッセージを監視してもよい。
 これにより、下位電子制御装置に加えて、上位電子制御装置においてもDPIルールを用いてメッセージを監視できるので、異常検知の精度を向上できる。
 また、本開示の一態様に係る異常検知装置は、1以上の上位電子制御装置が配置された上位ネットワークと、1以上の下位電子制御装置が配置された下位ネットワークとを含む階層構造を有する車載ネットワークにおける上位電子制御装置に含まれる異常検知装置であって、前記車載ネットワークの所定の観測箇所において受信されるメッセージのヘッダ情報によって分類されるフローごとの統計情報であるフロー情報を収集する収集部と、前記フロー情報に基づいて異常検知を行う異常検知部と、前記異常検知の結果に基づいて、DPI(Deep Packet Inspection)ルールの生成、追加、削除、変更、有効化及び無効化のいずれかを行う制御部と、を備え、前記DPIルールは、前記1以上の下位電子制御装置における前記メッセージの監視に用いられ、前記DPIルールは、前記メッセージに含まれるヘッダ情報及びペイロード情報の条件と、前記条件に合致するメッセージを受信した場合の処理内容とを示す。
 また、本開示の一態様に係るプログラムは、異常検知方法をコンピュータに実行させる。
 以下、実施の形態に係る異常検知装置について図面を参照しながら説明する。ここで示す実施の形態はいずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、処理の要素としてのステップ及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
 (実施の形態1)
 以下、複数のECUがイーサネットを介して通信する車載ネットワーク(車載ネットワークシステム)を搭載した車両における、異常検知装置(異常検知システム)について説明する。
 [車載ネットワークシステムの全体構成図]
 図1は、実施の形態1における車載ネットワークシステム10の全体構成図である。図1において、車載ネットワークシステム10は車両に搭載される。車載ネットワークシステム10は、ゾーンECU(ゾーンECU)100a、100b及び100cと、ADAS ECU200aと、IVI ECU200bと、ハンドル制御ECU200cと、ブレーキ制御ECU200dと、シフトレバーECU200eと、カメラECU200fと、LiDAR ECU200gとを含む。なお、図1では省略されているが、車載ネットワークシステム10にはさらに多くのECUが含まれうる。
 ゾーンECU100aと、ADAS ECU200aと、IVI ECU200bとは、車載ネットワークの一種であるイーサネット1を介して接続される。ゾーンECU100aと、ゾーンECU100bと、ゾーンECU100cとは、イーサネット2を介して接続される。ゾーンECU100bと、ハンドル制御ECU200cと、ブレーキ制御ECU200dと、シフトレバーECU200eとは、イーサネット3を介して接続される。ゾーンECU100cと、カメラECU200fと、LiDAR ECU200gとは、イーサネット4を介して接続される。
 各ゾーンECUは、互いにイーサネットで接続されており、車載イーサネット向けの通信プロトコルであるSOME/IPを用いて通信を行う。異なるゾーンECUと接続されていないネットワーク(イーサネット1、3、4)をゾーンと呼ぶ。各ゾーンECUは、それぞれのゾーンに接続され、ECUの情報取得及び制御を行う。
 [ゾーンECU100aの構成]
 図2は、ゾーンECU100aの構成を示す図である。なお、ゾーンECU100b、100cは、ゾーンECU100aと同様の構成であるため、これらの説明を省略する。
 図2において、ゾーンECU100aは、通信ポート部101と、DPI部102と、フロー情報収集部103と、フローベース異常検知部104と、DPI制御部105と、全DPIルール記憶部106と、ECU管理リスト保存部107とを備える。
 通信ポート部101は、イーサネットの通信インターフェイスであり、フレームの送受信を行う。通信ポート部101は、受信された通信フレームの種類に応じて当該通信フレームをゾーンECUのどの機能で処理するかを判断する。
 DPI部102は、DPIルールによって指定された監視ルールに基づいてパケットのペイロード情報を監視する。例えば、ブロードキャスト通信を含む2つ以上のECU間の通信がゾーンECUを経由して実施される際に、異常な通信をDPI部102にてドロップさせる、又は通信ログをとる、といった処理を行うDPIルールが適用される。
 フロー情報収集部103は、イーサネット1又は2を介して受信されたパケットをヘッダ情報に基づいて分類し、分類されたパケットごとに統計情報を集計することでフロー情報を生成する。
 フローベース異常検知部104は、フロー情報収集部103が記憶するフロー情報に基づいて、異常検知を行い、検知結果を異常アラートとして出力する。異常アラートには、検知結果だけでなく、DPI制御部105にてDPIルールを生成するために必要な情報が含まれる。
 DPI制御部105は、DPI部102にて有効化されるDPIルールの制御を行う。DPI制御部105は、DPIルール生成部105Aと、DPIルール転送部105Bと、DPIアラート処理部105Cとを含む。
 DPIルール生成部105Aは、フローベース異常検知部104にて出力されるアラート(以降、異常アラート)又は各ECUのDPI部から出力されるアラート(以降、DPIアラート)に基づいて、DPIルールの生成を行う。異常アラートから生成されるDPIルールは、主に検知された異常内容についてパケットのペイロードまでを監視することを目的とする。また、DPIアラートから生成されるDPIルールは、異常パケットの遮断など、異常な通信からネットワークを保護することを目的とする。
 DPIルール転送部105Bは、DPIルール生成部105Aにて生成されたDPIルールを適用するECUを判断し、当該ECUにDPIルールを転送する。
 DPIアラート処理部105Cは、ゾーン内のECUのDPI部がDPIルールのチェック内容に該当するパケットを検出した際に出力するアラートを処理し、追加でDPIルールの生成が必要かを判断する。
 全DPIルール記憶部106は、車載ネットワークシステム10に存在する全ECUのDPI部が持つDPIルールを記憶する。ECU管理リスト保存部107は、車載ネットワークシステム10上に存在するECUと、各ECUが取り扱うサービス情報と、所属するゾーンを管理するゾーンECUとをまとめたリストを記憶する。
 [ADAS ECU200aの構成]
 図3は、ADAS ECU200aのブロック図である。なお、IVI ECU200b、ハンドル制御ECU200c、ブレーキ制御ECU200d、シフトレバーECU200e、カメラECU200f、及びLiDAR ECU200gは、ADAS ECU200aと同様の構成であるため、これらの説明は省略する。
 図3において、ADAS ECU200aは、通信ポート部201と、DPI部202と、アプリ部203とを備える。通信ポート部201は、イーサネットの通信インターフェイスであり、フレームの送受信を行う。
 DPI部202は、ゾーンECUから配布されたDPIルールによって指定された監視ルールに基づいてパケットのペイロード情報を監視する。DPI部202は、DPIルールのチェック内容に受信されたパケットが該当した際は、必要に応じてそのDPIルールが配布されたゾーンECUにアラートを送信する。DPI部202は、ゾーンECU100aのDPI部102と同様の機能を持つ。よって、例えば、DPI部202が、受信されたパケットを異常パケットと判断した場合は、異常通信をドロップさせる、又は通信ログをとる、といった処理を行うDPIルールが適用される。アプリ部203は、受信された通信フレームに従って、ECU固有のアプリケーションを実行する。
 [SOME/IPメッセージフォーマット]
 SOME/IPは、サービス指向通信の一種であり、Request/Response、Fire/Forget、Events、Get/Set/Notifierの4種類の通信方法を組み合わせることでサービス指向通信を実現する。またSOME/IPは、通信相手とセッションを確立する手法としてServiece Discovery(SD)を備える。
 図4はSOME/IP SDに用いられるメッセージフォーマットの一例を示す図である。図4におけるメッセージフォーマットはイーサネットのペイロード部に格納され、通信される。図の一行あたりのデータは32ビットであり、前半部分にSOME/IPヘッダが、後半部分にSOME/IP SDのペイロードが格納される。SOME/IP SDにおいて、Message IDは0xFFFF8100である。Lengthには、Lengthフィールドより後ろのデータのバイト数が格納される。Request IDには、Client IDとSession IDを合わせた値が格納される。SOME/IP SDにおいて、Protocol Versionは0x01、Interface Versionは0x01、Message Typeは0x02、Return Codeは0x00と設定される。
 図5は、SOME/IP SDメッセージの一例を示す図である。Flagsには0x80が設定されており、Reboot Flagが設定されている。Reserved領域は0と設定されている。Length of Entries Array in BytesにはEntryのバイト数が格納されており、図5では16バイトに設定されている。
 Typeは0x00又は0x01に設定が可能であり、0x00は、Findを意味し、0x01はOfferを意味する。Findは、サービスの提供を受けるクライアントECUが、必要なサービスの提供を要求する際に使用される。Offerは、サービスの提供を行うサーバECUが、サービスの提供が可能であることを通知する際に使用される。図5では、Typeが0x01であり、当該メッセージが、サーバECUが自身の提供可能なサービスに関する情報を通知するメッセージであることが示されている。
 Index 1st optionsは、最初のオプションの位置を示す。図5ではIndex 1st optionsは、0であり、最初のオプションの位置がオプション領域の最初であることを示す。Index 2nd optionsは、2つ目のオプションの位置を示し、図5では0である。
 #of opt1にはオプション1の個数が記載されており、図5では1が格納されている。#of opt2にはオプション2の個数が記載されており、図5では0が格納されており、オプション2を用いないことが示されている。
 Service IDは、サービスの種類を示すIDを格納するフィールドであり、図5ではService IDに0x1000が格納されている。Instance IDは、サービスのインスタンスを示すIDを格納するフィールドであり、図5では0x0001に設定されている。
 Major Versionは、サービスのバージョン管理に用いる情報であり、図5ではMajor Versionに0x01が格納されている。
 TTLは、サービスの有効期限(秒)を設定するフィールドであり、図5ではTTLに0xFFFFが設定されている。TTLが0xFFFFであるとは、ECUの次の起動タイミングまでサービスが有効であることを意味する。
 Minor Versionは、サービスのバージョン管理に用いられる情報であり、図5では0x00000002に設定されている。
 Option領域に含まれるLength of Options Array in BytesにOption領域のバイト長が格納され、図5ではOption領域のバイト長が12バイトであることが示されている。
 Lengthの値はオプションの種類に応じて設定される。図5では、IPv4を用いた通信例を示しており、Lengthは9、Typeは0x04、Reservedは0x00と設定される。IPv4アドレスは、サーバのIPアドレスであり、図5では、192.168.0.1に設定されている。
 Reserved領域は0が格納される。L4-Protoには0x11が格納されており、User Datagram Protocol(UDP)を用いることが示されている。最後にポート番号が格納されており、図5では35000番ポートが使用されていることが示されている。
 図6は、SOME/IPで用いられるメッセージフォーマットの一例を示す図である。Payloadを除くSOME/IPヘッダ部分は図4と同様である。
 図7は、SOME/IPメッセージの一例を示す図である。Service IDはサービスの種類を表すIDを格納するフィールドであり、図7ではService IDに0x0001が格納されている。
 Method IDはクライアントから呼び出されるサーバ上の関数であるMethodの種類を表すIDを格納するフィールドであり、図7ではMethod IDに0x0301が格納されている。
 Lengthは、Client IDからPayloadまでのメッセージ長が格納される。図7では、1408バイトに設定されている。Client IDは、ECU内の呼び出し元クライアントを識別する識別子であり、図7では0x01000に設定されている。
 Session IDは、同じ送信者から発信されたメッセージを区別する識別子であり、図7では0x0011に設定されている。Protocol Versionは、SOME/IPのプロトコルバージョンを表し、図7では0x01に設定されている。
 Interface Versionは、サービスI/Fのメジャーバージョンを表し、図7では0x01に設定されている。Message Typeは、SOME/IPのメッセージタイプを表す。図7では、Message Typeは0x02に設定されており、これはメッセージタイプがNotificationであることを示す。
 Return Codeは、リクエストが正常に処理されたかどうかを示す戻り値を表し、図7では0x00に設定されている。Payloadには、送信者が送りたい情報が記述される。
 [ゾーンECUで収集するフロー情報の一例]
 図8はゾーンECUのフロー情報収集部103にて収集されるフロー情報の一例を示す図である。フロー情報はパケットのヘッダ情報などから一定時間ごとに統計情報を算出することで生成され、図8では30秒間隔でフロー情報が算出される。フロー情報では、パケットの送信元IPアドレス(Src IP)、送信元ポート番号(Src Port)、宛先IPアドレス(Dst IP)、宛先ポート番号(Dst Port)、及びプロトコル番号(Protocol)の組合せが、識別情報であるフローIDに割り当てられる。また、同一のフローIDごとに統計情報の集計が行われる。図8ではフローIDごとに通信されたパケット数と、パケットの平均到着間隔と、平均パケット長とが集計されている。
 [全DPIルールリストの一例]
 図9は、全DPIルール記憶部106に保存される、車載ネットワーク上のECUに適用されている全DPIルールが記載されたリスト(以降、全DPIルールリスト)の一例を示す図である。
 DPIルールには適用先ECUと、ルール番号と、DPIルール名と、発行元ECUと、ヘッダ条件と、チェック内容と、チェック時動作と、監視パケット数と、監視済みパケット数と、処理優先度とが設定される。
 適用先ECUには、生成されたDPIルールを実際に実行するDPI部を備えるECUが設定される。図9の全DPIルールリストでは、適用先ECUを基準にDPIルールが記載されている。ルール番号には、DPIルール管理のためにDPIルールに付与される。
 DPIルール名はDPIルールの役割に応じて決定される。例えば、異常アラートに基づいて生成されたDPIルールに対して、フラッディング(Flooding)監視、なりすまし監視、又は中間者攻撃監視など、検知された異常内容に基づいてDPIルール名が決定される。また、DPIアラートに基づいて生成されるDPIルールには異常通信というDPIルール名が付与される。
 発行元ECUには、DPIルールを生成し、生成されたDPIルールを適用先ECUに転送を行ったゾーンECUが設定される。発行元ECUはECU管理リストに従って決定される。
 ヘッダ条件は、監視対象となるパケットの送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、及びプロトコル番号の全部又は一部を示す。このヘッダ条件に記載される項目が全一致するパケットに対し、ペイロードの監視が行われ、チェック内容が確認される。
 チェック内容は、ヘッダ条件を満たすパケットのペイロードを監視する際に、チェックする内容を示す。例えば、フラッディング攻撃の可能性のあるSOME/IP通信については、攻撃ECUが1種類のService IDを使って大量のパケットを送信していることが想定される。よって、異常パケットの送信元ECUを攻撃ECUと判断され、送信元ECUから送信されるパケットが持つService IDの種類が1種類のみでないかが確認される。また、なりすまし攻撃されている可能性があるSOME/IP通信については正しいClient IDで通信を行っているかが確認される。
 チェック時動作は、監視されたパケットがチェック内容を満たす場合の動作を示す。例えば、図9に示すフラッディング監視のチェック内容にパケットが該当する場合、監視されている通信の送信元ECUは1種類のService IDだけの通信をするECUではない。つまり、当該送信元ECUは正常なECUであると判断され、その旨がDPIルールの発行元であるゾーンECUに通知される。また、図9に示すなりすまし監視のチェック内容にパケットが該当する場合、IPアドレス及びポート番号を偽って通信が行われていると判断され、該当パケットの遮断が行われ、監視パケット数が無制限に設定される。
 監視パケット数は、そのDPIルールにて監視するパケット数の上限値を示す。監視済みパケット数は、DPI部がDPIルールで既に監視したパケット数を示す。DPI部102及び202ではDPIルールの監視済みパケット数が規定の監視パケット数に到達した場合、そのDPIルールを破棄する。またゾーンECUは、フロー情報から各ECUが通信したパケット数をフローIDごとに把握でき、全DPIルール記憶部106において全てのDPIルールの監視済みパケット数を算出する。
 処理優先度は、DPI部102又は202に2以上のDPIルールが適用されている際に、パケットのヘッダとDPIルールに含まれるヘッダ条件との照合を行う順番を決定するためのパラメータである。処理優先度はフロー情報を基に算出され、ECUで通信される全パケットの中で、そのDPIルールが監視するパケットが占める割合によって決定される。DPI部102及び202では処理優先度が高いDPIルールから順番に、受信されたパケットのヘッダとDPIルールに含まれるヘッダ条件との照合を行う。各ECUのDPI部102及び202は、この処理優先度が高い順となるようにDPIルールを保存する。
 [ECU管理リスト]
 図10は、各ゾーンECUのECU管理リスト保存部107に保存されるECU管理リストを示す図である。ECU管理リストには車載ネットワーク上に存在する全ECUがリストとして記載されており、各ECUには管理者として同一ゾーン内に存在するゾーンECU(管理ゾーンECU)が割り当てられる。ゾーンECUはDPIルール生成部105Aが生成したDPIルールの配布先が自身の管理するECUである場合のみ、DPIルール転送部105BにてDPIルールの転送を行う。
 またECU管理リストには、各ECUが使用するIPアドレス及びポート番号が記載されている。そしてポート番号ごとに、使用するプロトコル及びサービス内容も記載される。プロトコルがSOME/IPの場合はさらにクライアントID及びサービスIDが記載される。
 ゾーンECUはこのECU管理リストを確認することで、フロー情報のIPアドレスとポート番号から、ペイロード情報を確認することなく、サービスID又はクライアントIDなどのSOME/IP通信のサービス情報を確認することができる。
 [処理のシーケンス]
 図11は、実施の形態1におけるハンドル制御ECU200cからADAS ECU200aへの攻撃が発生した際の処理シーケンス図である。図11では、ゾーンECU100b及び100cは、フロー情報収集部103にてフロー情報を収集し、フローベース異常検知部104にて異常検知を行い、その結果を基にDPIルール生成部105AにてDPIルールを生成する。ADAS ECU200aのDPI部102及び202は、生成されたDPIルールを適用し、DPI部202の監視結果に基づいたセキュリティ対応が行われる。
 ハンドル制御ECU200cはADAS ECU200aにフラッディング攻撃を行う(S101)。ハンドル制御ECU200cとADAS ECU200aとの通信経路上に存在するゾーンECU100a及び100bはパケットをミラーリングしてパケットを受信し、フロー情報を収集する(S102)。
 ゾーンECU100a、100b及び100cは、ゾーンECU100a、100b及び100cの間で収集されたフロー情報を共有する(S103)。なお、ゾーンECU100cの処理は図11には図示していない。
 ゾーンECU100a、100b及び100cはそれぞれ共有されたフロー情報を基にフローベース異常検知を行い、ハンドル制御ECU200cがADAS ECU200aに攻撃していることを検知する。(S104)。ゾーンECU100a、100b及び100cはそれぞれフローベース異常検知の結果に基づいて、通信を監視するための第1DPIルールを生成する(S105)。
 ゾーンECU100bは、生成された第1DPIルールの適用先がECU管理リストより自身の管理対象ではないため、第1DPIルールを全DPIルール記憶部106に保存する(S106)。
 ゾーンECU100aは、生成された第1DPIルールの適用先がECU管理リストより自身の管理対象のため、第1DPIルールを全DPIルール記憶部106に保存するとともに、ADAS ECU200aに転送する(S107)。
 ADAS ECU200aはゾーンECU100aから第1DPIルールを受信し、受信された第1DPIルールをDPI部202に適用する(S108)。ハンドル制御ECU200cはADAS ECU200aに対して継続してフラッディング攻撃を行う(S109)。
 ADAS ECU200aは適用された第1DPIルールを用いてハンドル制御ECU200cとの通信を監視する(S110)。ADAS ECU200aはDPI部202での監視結果に応じてDPIアラートを生成し、生成されたDPIアラートをゾーンECU100aに送信する(S111)。
 ゾーンECU100aはADAS ECU200aからのDPIアラートに基づきハンドル制御ECU200cの通信は異常な通信と正式に判定する(S112)。ゾーンECU100aはハンドル制御ECU200cからの異常な通信を遮断する第2DPIルールを生成し、生成された第2DPIルールをADAS ECU200aと、他のゾーンECU100b及び100cとに転送する(S113)。
 ゾーンECU100bはゾーンECU100aにて新たに生成された第2DPIルールを全DPIルール記憶部106に保存する(S114)。ADAS ECU200aはゾーンECU100aから転送された第2DPIルールを適用する(S115)。
 ハンドル制御ECU200cはADAS ECU200aに対して継続してフラッディング攻撃を行う(S116)。ADAS ECU200aは、ハンドル制御ECU200cからの異常通信を第2DPIルールに従って遮断する(S117)。
 [ゾーンECUにおける処理のフローチャート]
 図12はゾーンECUがパケットを受信してからDPIルールを生成し、適切なECUに適用するまでの処理全体のフローチャートである。通信ポート部101は、自身を経由して通信されるパケットを受信する(S201)。
 通信ポート部101は、パケットをミラーリングしつつ、パケットの宛先IPアドレスに従い、パケットを転送する(S202)。フロー情報収集部103は、ミラーリングされたパケットからヘッダ情報を抽出してフロー情報を更新する(S203)。
 フロー情報収集部103はフロー情報を収集する規定の時間を超過していないかを判定する(S204)。規定時間を超えている場合(S204がYesの場合)、フロー情報収集部103は、フロー情報を出力する(S205)。規定時間を超えていない場合(S204がNoの場合)、最初のステップS201に戻る。
 通信ポート部101は、出力されたフロー情報を、他のゾーンECUに転送する(S206)。また、通信ポート部101は、他のゾーンECUから転送されたフロー情報を受信する(S207)。そしてフロー情報収集部103は、自身で出力したフロー情報と他のゾーンECUから転送されたフロー情報とを合成する(S208)。
 フローベース異常検知部104は、合成されたフロー情報を基にフローベース異常検知を行い(S209)、異常があるかどうか判定する(S210)。異常がある場合(S210がYesの場合)、フローベース異常検知部104は、異常の内容を記載した異常アラートを生成する(S211)。異常がない場合(S210がNoの場合)、ゾーンECUは処理を終了する。
 DPIルール生成部105Aは、生成された異常アラートからDPIルールを生成する(S212)。DPIルール生成部105Aは、生成されたDPIルールを全DPIルール記憶部106に保存する(S213)。
 DPIルール転送部105Bは、生成されたDPIルールの適用先ECUが自身の管理ECUであるかをECU管理リストに基づき判定する(S214)。適用先ECUが自身の管理ECUである場合(S214がYesの場合)、DPIルール転送部105Bは、DPIルールを適用先ECUに転送し(S215)、ゾーンECUは処理を終了する。適用先ECUが自身の管理ECUでない場合(S214がNoの場合)、ゾーンECUは処理を終了する。
 [ZoneECUの通信ポート部の受信処理フローチャート]
 図13は、ゾーンECUの通信ポート部101における受信処理のフローチャートである。通信ポート部101は受信されたパケットの種類によって、ゾーンECU内の適切な機能にパケット情報を転送する。
 通信ポート部101は、通信ポート部101にて処理するパケットが自身を送信元とする送信パケットであるかを判定する(S301)。パケットが送信パケットである場合(S301がYesの場合)、通信ポート部101は、宛先IPアドレスのECUにパケットを送信する(S302)。
 パケットが送信パケットでない場合(S301がNoの場合)、通信ポート部101は、受信されたパケットをミラーリングして、ミラーリングしたパケットをフロー情報収集部103に転送する(S303)。
 通信ポート部101は、受信したパケットが自身宛のパケットであるかを判定する(S304)。パケットが自身宛のパケットである場合(S304がYesの場合)、通信ポート部101は、そのパケットが他のゾーンECUから転送されたDPIルールであるかを判定する(S305)。パケットがDPIルールである場合(S305がYesの場合)、通信ポート部101は、全DPIルール記憶部106に、転送されたDPIルールを保存し(S306)、ゾーンECUは処理を終了する。
 パケットがDPIルールでない場合(S305がNoの場合)、通信ポート部101は、そのパケットが他のECUから転送されたDPIアラートであるかを判定する(S307)。パケットがDPIアラートである場合(S307がYesの場合)、通信ポート部101は、DPIアラート処理部105Cにパケットを転送し(S308)、ゾーンECUは処理を終了する。
 パケットがDPIアラートでない場合(S307がNoの場合)、受信されたパケットは他のゾーンECUから共有されたフロー情報である。よって、通信ポート部101は、パケットが、他のECUで生成されたフロー情報であることをフロー情報収集部103に通知し(S309)、ゾーンECUは処理を終了する。フロー情報収集部103は、パケットのヘッダ情報からフロー情報を更新し、パケットのペイロード情報に記載される他ゾーンのフロー情報と自身が収集したフロー情報とを統合する。
 パケットが自身宛のパケットでない場合(S304がNoの場合)、通信ポート部101は、宛先IPアドレスのECUにパケットを転送し(S310)、ゾーンECUは処理を終了する。
 [フローベース異常検知の実施の一例]
 図14は、フローベース異常検知部104による処理の一例を示すフローチャートである。まず、フローベース異常検知部104は、一定時間ごとに出力されるフロー情報を受信する(S401)。
 フローベース異常検知部104は、受信されたフロー情報に含まれる、一つのフローIDを選択し、選択されたフローIDについて統計情報(例えば、パケット数N、平均到着間隔I)を抽出する(S402)。なお、ステップS403~S416の処理は、選択されたフローIDに対して実行される。つまり、ステップS402~S416の処理は、フロー情報に含まれるフローID毎に繰り返し実行される。さらに、この一連の処理は、例えば、フロー情報が受信される毎に繰り返し実行される。
 フローベース異常検知部104は、受信された今回のフロー情報に含まれる平均到着間隔Iと、一つ前に出力されたフロー情報に含まれる平均到着間隔Iとの比である前回比ΔIを算出する(S403)。例えば、ΔIは、今回の平均到着間隔Iを前回の平均到着間隔Iで除算することで算出される。
 フローベース異常検知部104は、受信された今回のフロー情報に含まれるパケット数Nと、一つ前に出力されたフロー情報に含まれるパケット数Nとの比である前回比ΔNを算出する(S404)。例えば、ΔNは、今回のパケット数Nを前回のパケット数Nで除算することで算出される。
 フローベース異常検知部104は、パケット数Nが10000以上であるかを判定する(S405)。パケット数Nが10000以上である場合(S405がYesの場合)、フローベース異常検知部104は、選択されたフローIDを持つ通信が“フラッディング攻撃”されていると判定する(S406)。つまり、フローベース異常検知部104は、パケット数Nが予め定められた閾値以上である場合、“フラッディング攻撃”と判定する。
 パケット数Nが10000未満の場合(S405がNoの場合)、フローベース異常検知部104は、平均到着間隔の前回比ΔIが1未満であるかを判定する(S407)。平均到着間隔の前回比ΔIが1未満である場合(S407がYesの場合)、フローベース異常検知部104は、さらにパケット数の前回比ΔNが10以上であるかを判定する(S408)。パケット数の前回比ΔNが10以上である場合(S408がYesの場合)、フローベース異常検知部104は、選択されたフローIDを持つ通信が“フラッディング攻撃”されていると判定する(S406)。つまり、フローベース異常検知部104は、平均到着間隔Iが減少しており、かつ、パケット数Nが増加している(ΔNが1より大きい第1閾値以上である)場合、“フラッディング攻撃”と判定する。
 パケット数の前回比ΔNが10未満である場合(S408がNoの場合)、フローベース異常検知部104は、パケット数の前回比ΔNが2以上であるかを判定する(S409)。パケット数の前回比ΔNが2以上である場合(S409がYesの場合)、フローベース異常検知部104は、選択されたフローIDを持つ通信が“なりすまし攻撃”されていると判定する(S410)。つまり、フローベース異常検知部104は、平均到着間隔Iが減少しており、かつ、パケット数Nが増加している(ΔNが1より大きく、かつ第1閾値より小さい第2閾値以上である)場合、“フラッディング攻撃”と判定する。
 平均到着間隔の前回比ΔIが1以上か、パケット数の前回比ΔNが2未満である場合(S407がNoである場合、又はS409がNoである場合)、フローベース異常検知部104は、選択されたフローIDと同一の宛先IPアドレス及び宛先ポート番号を使用している他のフローIDの通信を抽出する(S411)。
 フローベース異常検知部104は、通信の入れ替わりが発生しているかを判定する(S412)。具体的には、フローベース異常検知部104は、選択されたフローIDのパケット数Nと、抽出された他のフローIDのパケット数Nとの一方が増加し、他方が減少している場合に、通信の入れ替わりが発生していると判定する。
 通信の入れ替わりが発生している場合(S412がYesの場合)、フローベース異常検知部104は、さらにパケット数の前回比ΔNが1以上であるかを判定する(S413)。パケット数の前回比ΔNが1以上である場合(S413がYesの場合)、フローベース異常検知部104は、選択されたフローIDを持つ通信が中間者攻撃によって増加している通信と判定して“中間者攻撃(増加)”と判定する(S414)。つまり、フローベース異常検知部104は、通信の入れ替わりが発生しており、かつパケット数Nが増加している場合、“中間者攻撃(増加)”と判定する。
 パケット数の前回比ΔNが1未満である場合(S413がNoの場合)、フローベース異常検知部104は、選択されたフローIDを持つ通信が中間者攻撃によって減少している通信と判定して“中間者攻撃(減少)”と判定する(S415)。つまり、フローベース異常検知部104は、通信の入れ替わりが発生しており、かつパケット数Nが減少している場合、“中間者攻撃(減少)”と判定する。
 通信の入れ替わりが発生していない場合(S412がNoの場合)、フローベース異常検知部104は、どの攻撃の判定にも該当しなかったとして選択されたフローIDを持つ通信は“異常なし”と判定する(S416)。
 フローベース異常検知部104は、選択されたフローIDを持つ通信が“フラッディング攻撃”、“なりすまし攻撃”、“中間者攻撃(増加)”、“中間者攻撃(減少)”、“異常なし”のいずれかに判定された後、全てのフローIDに対し、異常検知の処理を行ったかを判定する(S417)。全てのフローIDに対し処理が終了している場合(S417がYesの場合)、ゾーンECUは処理を終了する。全てのフローIDに対し処理が終了していない場合(S417がNoの場合)、フローベース異常検知部104は、ステップS402まで戻り、まだ異常検知の処理をしていないフローIDについて同様の処理を行う。
 図14での異常検知の処理では、異常の判定のためにいくつか具体的な閾値がでてきたが、実際は想定する通信環境に応じて閾値は変化する。また図14ではパケット数と平均到着間隔というパラメータのみを用いて異常検知を行っているが、他のパラメータを使用して、より検知精度を向上できる。また、フラッディング攻撃、なりすまし攻撃、及び中間者攻撃以外の攻撃も検知が可能である。
 [生成される異常アラートの一例]
 図15はフローベース異常検知の結果に基づき生成される異常アラートの一例を示す図である。生成される異常アラートには、DPIルール生成部105AにてDPIルールを生成するために必要な情報が含まれる。異常アラートは、アラート番号と、異常と判定された通信のフローIDと、アラート種類と、プロトコルと、宛先ECUでのパケット占有率とを含む。
 アラート番号は、異常のあった通信のフローIDごとに発行される。なお、中間者攻撃など2以上の通信を合わせて1つの攻撃と考えられる場合は、その2以上の通信に対して同一のアラート番号が割り振られる。フローIDは通信パケットのヘッダ情報を表しており、このフローIDで識別される通信が異常であるとしてアラートが生成される。
 アラートの種類は、フローベース異常検知によって判定された結果を表している。中間者攻撃は、パケット数が増加する通信とパケット数が減少する通信の2つの通信の相互関係から検知されるため、2種類のフローIDに対して異常アラートが生成される。プロトコルは該当のフローIDを持つ通信のプロトコルを表し、暗号化通信であるかを判断するために用いられる。
 パケット占有率はDPIルールの処理優先度を設定するためのパラメータであり、該当のフローIDを持つパケットがフローIDに割り当てられた宛先IPアドレスを持つECUで通信される全パケットの中でどれだけの割合を占めているかを表している。ただし、アラート種類が“中間者攻撃(減少)”の場合のみ、フローIDに割り当てられた宛先IPアドレスではなく、送信元IPアドレスを参照してパケット占有率が計算される。
 [DPIルール生成フローチャート]
 図16は、DPIルール生成処理のフローチャートである。DPIルール生成部105Aは、フローベース異常検知部104にて生成された異常アラートを取得する(S501)。
 DPIルール生成部105Aは、DPIルールのルール番号を仮発行する(S502)。例えば、中間者攻撃など同一のアラート番号を持つ異常アラートが複数ある場合は、DPIルール生成部105Aは、同一のルール番号を仮発行する。またルール番号はDPIルール転送部105Bにて正式に再発行される。
 DPIルール生成部105Aは、DPIルールの適用先を異常アラートに含まれるフローIDに割り当てられた宛先IPアドレスを持つECUに設定する(S503)。DPIルール生成部105Aは、設定された適用先ECUでのパケット占有率を異常アラートから抽出し、抽出されたパケット占有率をDPIルールに含まれる処理優先度の値として設定する(S504)。
 DPIルール生成部105Aは、異常アラートに含まれるアラート種類が“フラッディング攻撃”であるかを判定する(S505)。アラート種類が“フラッディング攻撃”である場合(S505がYesの場合)、DPIルール生成部105Aは、DPIルールに含まれるヘッダ条件に、異常アラートに含まれるフローIDに割り当てられた送信元IPアドレス及び宛先IPアドレスを設定する(S506)。
 そして、DPIルール生成部105Aは、ECU管理リストを参照し、フローIDから正規のサービスIDを確認し(S507)、確認されたサービスIDを用いてDPIルールに含まれるチェック内容を設定する(S508)。DPIルール生成部105Aは、DPIルールに含まれるチェック時動作として、DPIルールを発行したゾーンECUに対し、アラートを通知する処理を設定する(S509)。DPIルール生成部105Aは、DPIルールに含まれる監視パケット数をフラッディング攻撃の監視に必要な値(フラッディング攻撃の監視に対応付けられた値)に設定する(S510)。そして、DPIルール生成部105Aは、ここまでで設定された内容を一つのDPIルールとして統合する(S511)。
 DPIルール生成部105Aは、生成されたDPIルールを設定された適用先ECUに転送するようDPIルール転送部105Bに依頼し(S512)、DPIルール生成処理を終了する。
 アラート種類が“フラッディング攻撃”でない場合(S505がNoの場合)、DPIルール生成部105Aは、異常アラートに含まれるアラート種類が“なりすまし攻撃”であるかを判定する(S513)。アラート種類が“なりすまし攻撃”である場合(S513がYesの場合)、DPIルール生成部105Aは、DPIルールに含まれるヘッダ条件に異常アラートに含まれるフローIDを設定する(S514)。そして、DPIルール生成部105Aは、ECU管理リストを参照してフローIDから正規のクライアントIDを確認し(S515)、確認されたクライアントIDを用いてDPIルールに含まれるチェック内容を設定する(S516)。
 DPIルール生成部105Aは、DPIルールに含まれるチェック時動作として、該当のパケットを遮断し、自身の監視パケット数を無制限(∞)と再設定する処理を設定する(S517)。DPIルール生成部105Aは、DPIルールに含まれる監視パケット数をなりすまし攻撃の監視に必要な値(なりすまし攻撃の監視に対応付けられた値)に設定する(S518)。そして、DPIルール生成部105Aは、ここまでで設定された内容を一つのDPIルールとして統合し(S511)、DPIルールの転送依頼を行い(S512)、DPIルール生成の処理を終了する。
 アラート種類が“なりすまし攻撃”でない場合(S513がNoの場合)、DPIルール生成部105Aは、異常アラートに含まれるアラート種類が“中間者攻撃(増加)”であるかを判定する(S519)。アラート種類が“中間者攻撃(増加)”である場合(S519がYesの場合)、DPIルール生成部105Aは、DPIルールに含まれるヘッダ条件に、異常アラートに含まれるフローIDに割り当てられた送信元IPアドレス及び宛先IPアドレスを設定する(S520)。
 そして、DPIルール生成部105Aは、ECU管理リストを参照しフローIDから正規のサービスIDを確認し(S521)、確認されたサービスIDを用いてDPIルールに含まれるチェック内容を設定する(S522)。DPIルール生成部105Aは、DPIルールに含まれるチェック時動作として、DPIルールを発行したゾーンECUに対し、アラートを通知する処理を設定する(S523)。DPIルール生成部105Aは、DPIルールに含まれる監視パケット数を中間者攻撃の監視に必要な値(中間者攻撃の監視に対応付けられた値)に設定する(S524)。そして、DPIルール生成部105Aは、ここまでで設定された内容を一つのDPIルールとして統合し(S511)、DPIルールの転送依頼を行い(S512)、DPIルール生成の処理を終了する。
 アラート種類が“中間者攻撃(増加)”でない場合(S519がNoの場合)、DPIルール生成部105Aは、異常アラートに含まれるアラート種類が“中間者攻撃(減少)”であると判断する。DPIルール生成部105Aは、同一のアラート番号を持ち、アラート種類が“中間者攻撃(増加)”である異常アラートに含まれるフローIDに割り当てられた送信元のECUを攻撃ECUと推定する(S525)。DPIルール生成部105Aは、アラート種類が“中間者攻撃(減少)”である自身の異常アラートに含まれるフローIDから送信元ECUを抽出し、その送信元ECUと推定された攻撃ECUのIPアドレスとの組(攻撃ECUは宛先側とする)をDPIルールに含まれるヘッダ条件に設定する(S526)。
 DPIルール生成部105Aは、DPIルールに含まれる適用先ECUをフローIDに割り当てられた送信元IPアドレスのECUに再設定する(S527)。DPIルール生成部105Aは、DPIルールに含まれるチェック内容、チェック時動作及び監視パケット数を、対となるDPIルール、つまり同一のアラート番号を持ち、アラート種類が“中間者攻撃(増加)”である異常アラートから生成されたDPIルールと同じ内容に設定する(S528)。そして、DPIルール生成部105Aは、ここまでで設定された内容を一つのDPIルールとして統合し(S511)、DPIルールの転送依頼を行い(S512)、DPIルール生成の処理を終了する。
 [DPIルール転送のフローチャート]
 図17は、DPIルール転送のフローチャートである。DPIルール転送部105Bは、ECU管理リストを参照して生成されたDPIルールに含まれる適用先ECUが自身の管理下のECUであるかを判定する(S601)。
 適用先ECUが自身の管理下のECUである場合(S601がYesの場合)、DPIルール転送部105Bは、DPIルールに含まれる発行元ECUを自身に設定し(S602)、発行元のゾーンECUがわかるようにDPIルール番号を修正し(S603)、全DPIルール記憶部106にDPIルールを保存する(S604)。そしてDPIルール転送部105Bは、適用先ECUにDPIルールを転送し(S605)、DPIルール転送の処理を終了する。
 適用先ECUが自身の管理下のECUでない場合(S601がNoの場合)、DPIルール転送部105Bは、ECU管理リストを参照し、DPIルールに含まれる発行元ECUを、適用先ECUを管理する管理ゾーンECUに設定する(S606)。そしてDPIルール転送部105Bは、発行元のゾーンECUがわかるようにDPIルール番号を修正し(S607)、全DPIルール記憶部106にDPIルールを保存し(S608)、DPIルール転送の処理を終了する。
 [生成されるDPIルールの一例]
 図18は、異常アラートから生成されるDPIルールの一例を示す図である。図18では、図15の異常アラートから生成されたDPIルールを示している。
 ルール番号は適用先ECUにDPIルールを発行したゾーンECUがわかるように設定される。つまり、ルール番号は、DPIルールを発行したゾーンECUと対応付けられている。例えば、ゾーンECU100bが発行元であれば“B-1”といったアルファベットなどと組み合わせた番号などを発行する。ただし、“中間者攻撃監視”のDPIルールの組に関しては、DPIアラートを通知するゾーンECUに合わせた同一の番号が発行される。
 チェック内容及びチェック時動作はフローベース異常検知にて検知された攻撃内容に応じて異なる。
 例えば、フラッディング攻撃では、攻撃ECUが特定のサービスIDのみを使って大量の通信パケットを送り付けていると考えられる。よって、フラッディング攻撃の監視ルール(フラッディング監視)として、1つのサービスIDのみを使用しているかの確認が行われる。具体的には、適用先ECUは、チェック内容として、フローベース異常検知で異常のあった通信のサービスIDをECU管理リストから取得し、そのサービスID以外で通信が行われていないか監視する。適用先ECUは、該当のサービスID以外の通信を確認した際は、チェック時動作としてDPIルールの発行元のゾーンECUにDPIアラートを通知する。ゾーンECUは、フラッディング監視の規定の監視パケット数の監視が終了するまでにDPIアラートの通知が一定量なければその通信を異常な通信と判定する。
 また、例えば、なりすまし攻撃の監視ルール(なりすまし監視)として、適用先ECUは、正規のクライアントID以外の通信が行われていないかを監視する。適用先ECUは、正規以外のクライアントIDを用いた通信が確認された際は、その通信を異常と判定し、チェック時動作として該当パケットの遮断を行い、DPIルールの監視パケット数を無制限(∞)に変更する。
 また、例えば、中間者攻撃の監視ルール(中間者攻撃監視)として、適用先ECUは、攻撃者と推定されるECUが同一のサービスIDを使用して2つのECUと同時に通信を行っていないかを確認する。適用先ECUは、DPIルールを適用する2つのECUは指定のサービスIDが用いられた通信を確認した際は、同じゾーンECUにDPIアラートを通知する。ゾーンECUは2つのECUからアラートが報告された際に、その通信を異常な通信と判定する。
 また、監視パケット数は監視する攻撃の内容に応じて決定される。例えば、フラッディング監視においては、監視するパケットの通信間隔が短く、処理負荷が大きくなることが見込まれる。よって、処理負荷を低減するために、フラッディング監視では監視パケット数が他のDPIルールと比べて小さく設定される。
 [DPIルール処理のフローチャート]
 図19は、DPI部102及び202におけるDPIルール処理のフローチャートである。なお、図19に示す処理は、例えばバケットが受信される毎に実施される。DPI部102及び202は、パケットを受信し(S701)、自身に適用されているDPIルールの中で最も処理優先度が高いDPIルールを選択する(S702)。ここで、DPI部102及び202では事前にDPIルールを処理優先度が高い順に並べて記憶している。
 DPI部102及び202は、選択されたDPIルールに含まれるヘッダ条件を、受信されたパケットのヘッダが満たすかを判定する(S703)。
 受信されたパケットがDPIルールに含まれるヘッダ条件を満たす場合(S703がYesの場合)、DPI部102及び202は、パケットがDPIルールに含まれるチェック内容を満たすかを判定する(S704)。
 パケットがDPIルールに含まれるチェック内容を満たす場合(S704がYesの場合)、DPI部102及び202は、DPIルールに含まれるチェック時動作を実行する(S705)。パケットがDPIルールに含まれるチェック内容を満たさない場合(S704がNoの場合)、DPI部102及び202は、ステップS705の処理をスキップする。
 その後、DPI部102及び202は、監視済みパケット数のカウントを1増やす(S706)。
 DPI部102及び202は、監視済みパケット数が監視パケット数に到達しているかを判定する(S707)。監視済みパケット数が監視パケット数に到達している場合(S707がYesの場合)、DPI部102及び202は、DPIルールを破棄し(S708)、DPIルールの発行元のゾーンECUにルールの終了を通知し(S709)、DPIルール処理を終了する。監視済みパケット数が監視パケット数に到達していない(S707がNoの場合)、DPI部102及び202は、DPIルール処理を終了する。
 受信されたパケットがDPIルールに含まれるヘッダ条件を満さない場合(S703がNoの場合)、DPI部102及び202は、他に未処理のDPIルールが存在するかを判定する(S710)。他に未処理のDPIルールが存在する場合(S710がYesの場合)、DPI部102及び202は、未処理のDPIルールのうち次に処理優先度が高いDPIルールを選択し(S711)、ステップS703に戻る。他に未処理のDPIルールが存在しない場合(S710がNoの場合)、DPI部102及び202は、そのままDPIルール処理を終了する。
 [DPIアラートの一例]
 図20は、DPIアラートの一例を示す図である。DPIアラートは主に、DPI部102及び202でDPIルールの監視済みパケット数が規定の監視済みパケット数を満たしたときに通知される、もしくは一部のDPIルールのチェック時動作として通知される。
 DPIアラートはルール番号、DPIルール名、適用先ECU、及びアラート内容を含む。ルール番号は対応するDPIルールのルール番号を示す。したがって、ECUは、ルール番号を確認することで、DPIアラートがどのDPIルールに関するアラートなのかを判断することができる。
 DPIルール名は、DPIアラートに対応するDPIルールのDPIルール名を示す。適用先ECUは、DPIアラートに対応するDPIルールの適用先ECUを示し、DPIアラートがどのECUから通知されたDPIアラートなのかを把握するために用いられる。
 アラート内容は、“ルール終了”又は“チェック該当”を示す。アラート内容として“ルール終了”を含むDPIアラートは、DPIルールの監視済みパケット数が規定の監視済みパケット数を満たしたことを示す。
 アラート内容として“チェック該当”を含むDPIアラートは、DPIルールに含まれるチェック内容を満たしたことを示す。
 例えば、図20に示すルール番号“B-1”及び“C-1”は、DPIルールによる監視が終了し、ルール番号に該当するDPIルールが適用先ECUにおいて破棄されたことを示す。
 また、例えば、図20に示すルール番号“B-2”は、適用先ECUがDPIルールに含まれるチェック内容を満たすパケットを受信したことを示す。ルール番号“B-2”のDPIルールは“中間者攻撃監視”であるため、2つのECUから同一のサービスIDを使う通信が確認されたことから、監視対象の通信が異常な通信であると判定できる。
 [DPIアラート処理のフローチャート]
 図21は、ゾーンECU100a、100b及び100cでのDPIアラート処理のフローチャートである。DPIアラート処理部105Cは、DPIアラートを受信する(S801)。
 DPIアラート処理部105Cは、DPIアラートに含まれるDPIルール名が“フラッディング監視”であるかを判定する(S802)。DPIルール名が“フラッディング監視”である場合(S802がYesの場合)、DPIアラート処理部105Cは、アラート内容が“ルール終了”であるかを判定する(S803)。アラート内容が“ルール終了”である場合(S803がYesの場合)、DPIアラート処理部105Cは、同一のルール番号でアラート内容が“チェック該当”のDPIアラートを100以上受信済みであるかを判定する(S804)。
 “チェック該当”のDPIアラートを100以上受信済みである場合(S804がYesの場合)、DPIアラート処理部105Cは、単一のサービスIDだけの通信でないことが確認できるため、DPIルールの監視対象の通信を正常と判定する(S805)。そして、DPIルールの適用先ECUにて既に該当のDPIルールが破棄されているため、DPIアラート処理部105Cは、ゾーンECU内の全DPIルール記憶部106から該当のDPIルールを破棄する(S806)。ここでDPIアラート処理部105Cは、自分以外のゾーンECUに対してもルールを破棄するよう通知を行う。
 “チェック該当”のDPIアラートを100以上受信済みでない場合(S804がNoの場合)、DPIアラート処理部105Cは、DPIルールの監視対象の通信を単一のサービスIDを用いた異常な通信であると判定する(S807)。そしてDPIアラート処理部105Cは、既存のDPIルールを全DPIルール記憶部106から破棄し、異常な通信を遮断するDPIルールを再発行し(S808)、DPIアラート処理を終了する。
 アラート内容が“ルール終了”でない場合(S803がNoの場合)、つまりアラート内容が“チェック該当”の場合、DPIアラート処理部105Cは、DPIアラート処理を終了し、アラート内容が“ルール終了”であるDPIアラートが通知されるまで待機する。
 DPIルール名が“フラッディング監視”でない場合(S802がNoの場合)、DPIアラート処理部105Cは、アラート内容が“ルール終了”であるかを判定する(S809)。アラート内容が“ルール終了”である場合(S809がYesの場合)、DPIアラート処理部105Cは、特に異常と判断する要素が報告されなかったことからDPIルールの監視対象の通信を正常な通信と判定する(S810)。そしてDPIアラート処理部105Cは、ゾーンECU内の全DPIルール記憶部106から該当のDPIルールを破棄する(S811)。
 アラート内容が“ルール終了”でない場合(S809がNoの場合)、DPIルール名が“中間者攻撃監視”かつアラート種類が“チェック該当”のDPIアラートであることがわかる。
 DPIアラート処理部105Cは、同一のルール番号かつ異なるDPIルール名の“チェック該当”を受信済みであるかを判定する(S812)。同一のルール番号かつ異なるDPIルール名の“チェック該当”を受信済みである場合(S812がYesの場合)、攻撃者ECUが同一のサービスIDを用いて通信していることが確認できたため、DPIアラート処理部105Cは、DPIルールの監視対象の通信は異常な通信と判定する(S813)。そしてDPIアラート処理部105Cは、既存のDPIルールを全DPIルール記憶部106から破棄し、異常な通信を遮断するDPIルールを再発行し(S814)、DPIアラート処理を終了する。
 同一のルール番号かつ異なるDPIルール名の“チェック該当”を受信済みでない場合(S812がNoの場合)、DPIアラート処理部105Cは、DPIアラート処理を終了し、次のDPIアラートが通知されるまで待機する。
 [異常な通信を遮断するDPIルールの一例]
 図22は、異常な通信を遮断するDPIルールの一例を示す図である。図22ではDPIルール名として“異常通信”が示される。
 ヘッダ条件には異常な通信のヘッダ情報が指定され、チェック内容は異常な通信に用いられるサービスID又はクライアントIDの確認などが指定される。そして、指定された内容に該当する通信のパケットを遮断する処理がチェック時動作として指定される。
 監視パケット数は無制限(∞)に設定される。これにより、ECUのDPI部は勝手にDPIルールを破棄できない。処理優先度は該当のパケットについて再計算するのが望ましいが、元のDPIルールの処理優先度が流用されてもよい。
 (実施の形態2)
 以下、複数のECUがイーサネットを介して通信する車載ネットワーク(車載ネットワークシステム)を搭載した車両における、異常検知装置(異常検知システム)について説明する。なお、実施の形態1と同様の機能を有する構成要素は、同様の番号を付与して説明を省略する。
 [車載ネットワークシステムの全体構成図]
 図23は、車載ネットワークシステム20の全体構成図である。図23において、車載ネットワークシステム20は、ADAS ECU200aと、IVI ECU200bと、ハンドル制御ECU200cと、ブレーキ制御ECU200dと、シフトレバーECU200eと、カメラECU200fと、LiDAR ECU200gと、ゾーンECU1100a、1100b及び1100cとを含む。
 [ゾーンECU1100aの構成図]
 図24は、ゾーンECU1100aの構成図である。なお、ゾーンECU1100b及び1100cもゾーンECU1100aと同様の構成であるため、これらの説明を省略する。
 図24において、ゾーンECU1100aは、通信ポート部101と、DPI部102と、フロー情報収集部103と、フローベース異常検知部104と、DPI制御部1105と、全DPIルール記憶部106と、ECU管理リスト保存部107とを備える。
 DPI制御部1105は、DPIルール生成部1105Aと、DPIルール転送部1105Bと、DPIアラート処理部105Cとを含む。
 DPIルール生成部1105Aは、フローベース異常検知部104にて出力される異常アラート又は各ECUのDPI部から出力されるDPIアラートに基づいて、DPIルールの生成を行う。DPIルール生成部1105Aは、DPIルールに含まれるヘッダ条件、チェック内容、チェック時動作、及び監視パケット数を決定する。
 DPIルール転送部1105Bは、DPIルール生成部1105Aにて生成されたDPIルールの適用先を各ECUの処理負荷状況に応じて決定し、決定された適用先のECUにDPIルールを転送する。例えば、ADAS ECU200aとハンドル制御ECU200cとの間の通信を監視する場合において、ADAS ECU200aのDPI部202が監視しているパケット数が規定値を超えている場合、ADAS ECU200aの代わりにゾーンECU1100a又はゾーンECU1100bに生成されたDPIルールが転送される。
 またDPIルール転送部1105Bは、DPIルールの適用先を決定する際に、適用先の候補となるECUの通信パケット数とDPI部での監視パケット数とをフロー情報収集部103から受け取る。DPIルール転送部1105Bは、それらの情報に基づいてDPIルールの適用先を決定し、処理優先度の算出も行う。
 [処理のシーケンス]
 図25は、実施の形態2におけるハンドル制御ECU200cからADAS ECU200aへの攻撃が発生した際の処理シーケンスを示す図である。図25では、ゾーンECU1100b及び1100cは、フロー情報収集部103にてフロー情報を収集し、フローベース異常検知部104にて異常検知を行い、その結果を基にDPIルール生成部1105AにてDPIルールを生成し、各ECUの処理負荷の状況に応じてDPIルールの適用先を決定し、適用されたDPIルールの監視結果に基づいたセキュリティ対応が行われる。
 ハンドル制御ECU200cはADAS ECU200aにフラッディング攻撃を行う(S901)。ハンドル制御ECU200cとADAS ECU200aとの通信経路上に存在するゾーンECU1100a及び1100bがパケットをミラーリングして受信し、フロー情報を収集する(S902)。
 ゾーンECU1100a、1100b及び1100cは、ゾーンECU1100a、1100b及び1100cの間で収集されたフロー情報を共有する(S903)。なお、ゾーンECU1100cの処理は図25には図示していない。
 ゾーンECU1100a、1100b及び1100cはそれぞれ共有されたフロー情報を基にフローベース異常検知を行い、ハンドル制御ECU200cがADAS ECU200aに攻撃していることを検知する。(S904)。ゾーンECU1100a、1100b及び1100cはフローベース異常検知の結果に基づいて、通信を監視するための第1DPIルールを生成する(S905)。
 ゾーンECU1100bは生成された第1DPIルールの適用先の候補としてADAS ECU200a、ハンドル制御ECU200c、ゾーンECU1100a、及びゾーンECU1100bを選定し、フロー情報から各ECUの処理負荷を確認し、確認結果に基づき自身をDPIルールの適用先として判断し、第1DPIルールを適用する(S906)。
 ゾーンECU1100aは生成された第1DPIルールの適用先をフロー情報からゾーンECU1100bと判断する(S907)。なお、この判断の方法はS906と同様である。
 ハンドル制御ECU200cはADAS ECU200aに対して継続してフラッディング攻撃を行う(S908)。ゾーンECU1100bはDPI部102に適用された第1DPIルールに従ってパケットのペイロード監視を行う(S909)。
 ゾーンECU1100bはDPI部102での監視結果に応じてDPIアラートを生成する(S910)。ゾーンECU1100bは生成されたDPIアラートに基づき、ハンドル制御ECU200cの通信は異常な通信と正式に判定し、異常な通信を遮断する第2DPIルールを自身のDPI部102に適用する(S911)。
 ハンドル制御ECU200cはADAS ECU200aに対して継続してフラッディング攻撃を行う(S912)。ゾーンECU1100bのDPI部102は、ハンドル制御ECU200cからADAS ECU200aへの異常な通信を第2DPIルールに従って遮断する(S913)。
 [DPIルール生成フローチャート]
 図26は、DPIルール生成のフローチャートである。DPIルール生成部1105Aは、フローベース異常検知部104にて生成された異常アラートを取得する(S1001)。DPIルール生成部1105Aは、DPIルールのルール番号を仮発行する(S1002)。
 DPIルール生成部1105Aは、DPIアラートに含まれるアラート種類が“フラッディング攻撃”であるかを判定する(S1003)。アラート種類が“フラッディング攻撃”である場合(S1003がYesの場合)、DPIルール生成部1105Aは、DPIルールに含まれるヘッダ条件に、異常アラートに含まれるフローIDに割り当てられた送信元及び宛先IPアドレスを設定する(S1004)。
 そして、DPIルール生成部1105Aは、ECU管理リストを参照しフローIDから正規のサービスIDを確認し(S1005)、確認されたサービスIDを用いてDPIルールに含まれるチェック内容を設定する(S1006)。DPIルール生成部1105Aは、DPIルールに含まれるチェック時動作として、DPIルールを発行したゾーンECUに対し、アラートを通知する処理を設定する(S1007)。DPIルール生成部1105Aは、DPIルールに含まれる監視パケット数をフラッディング攻撃の監視に必要な値に設定する(S1008)。そして、DPIルール生成部1105Aは、ここまでで設定された内容を一つのDPIルールとして統合する(S1009)。
 DPIルール生成部1105Aは、生成されたDPIルールに対する適用先の決定、処理優先度の決定、及び転送をDPIルール転送部1105Bに依頼し(S1010)、DPIルール生成処理を終了する。
 アラート種類が“フラッディング攻撃”でない場合(S1003がNoの場合)、DPIルール生成部1105Aは、異常アラートに含まれるアラート種類が“なりすまし攻撃”であるかを判定する(S1011)。アラート種類が“なりすまし攻撃”である場合(S1011がYesの場合)、DPIルール生成部1105Aは、DPIルールに含まれるヘッダ条件に異常アラートに含まれるフローIDを設定する(S1012)。そして、DPIルール生成部1105Aは、ECU管理リストを参照しフローIDから正規のクライアントIDを確認し(S1013)、確認されたクライアントIDを用いてDPIルールに含まれるチェック内容を設定する(S1014)。
 DPIルール生成部1105Aは、DPIルールに含まれるチェック時動作として、該当のパケットを遮断し、自身の監視パケット数を無制限(∞)と再設定する処理を設定する(S1015)。DPIルール生成部1105Aは、DPIルールに含まれる監視パケット数をなりすまし攻撃の監視に必要な値に設定する(S1016)。そして、DPIルール生成部1105Aは、ここまでで設定された内容を一つのDPIルールとして統合し(S1009)、DPIルールの転送依頼を行い(S1010)、DPIルール生成処理を終了する。
 アラート種類が“なりすまし攻撃”でない場合(S1011がNoの場合)、DPIルール生成部1105Aは、異常アラートに含まれるアラート種類が“中間者攻撃(増加)”であるかを判定する(S1017)。アラート種類が“中間者攻撃(増加)”である場合(S1017がYesの場合)、DPIルール生成部1105Aは、DPIルールに含まれるヘッダ条件に異常アラートに含まれるフローIDに割り当てられた送信元及び宛先IPアドレスを設定する(S1018)。
 そして、DPIルール生成部1105Aは、ECU管理リストを参照しフローIDから正規のサービスIDを確認し(S1019)、確認されたサービスIDを用いてDPIルールに含まれるチェック内容を設定する(S1020)。DPIルール生成部1105Aは、DPIルールに含まれるチェック時動作として、DPIルールを発行したゾーンECUに対し、アラートを通知する処理を設定する(S1021)。DPIルール生成部1105Aは、DPIルールに含まれる監視パケット数を中間者攻撃の監視に必要な値に設定する(S1022)。そして、DPIルール生成部1105Aは、ここまでで設定された内容を一つのDPIルールとして統合し(S1009)、DPIルールの転送依頼を行い(S1010)、DPIルール生成処理を終了する。
 アラート種類が“中間者攻撃(増加)”でない場合(S1017がNoの場合)、DPIルール生成部1105Aは、DPIルールに含まれるアラート種類が“中間者攻撃(減少)”であると判断する。DPIルール生成部1105Aは、同一のアラート番号を持ち、アラート種類が“中間者攻撃(増加)”である異常アラートに含まれるフローIDに割り当てられた送信元のECUを攻撃ECUと推定する(S1023)。DPIルール生成部1105Aは、アラート種類が“中間者攻撃(減少)”である自身の異常アラートに含まれるフローIDから送信元ECUを抽出し、その送信元ECUと推定された攻撃ECUのIPアドレスとの組(攻撃ECUは宛先側とする)をDPIルールのヘッダ条件に設定する(S1024)。DPIルール生成部1105Aは、DPIルールに含まれるチェック内容、チェック時動作及び監視パケット数を、対となるDPIルール、つまり同一のアラート番号を持ち、アラート種類が“中間者攻撃(増加)”である異常アラートから生成されたDPIルールと同じ内容に設定する(S1025)。そして、DPIルール生成部1105Aは、ここまでで設定された内容を一つのDPIルールとして統合し(S1009)、DPIルール転送部1105BにDPIルールの転送依頼を行い(S1010)、DPIルール生成処理を終了する。
 [DPIルール転送処理のフローチャート]
 図27は、DPIルール転送処理のフローチャートである。DPIルール転送部1105Bは、DPIルール生成部1105Aにて生成されたDPIルールを受け取る(S1101)。
 DPIルール転送部1105Bは、DPIルールの監視対象パケットが通過する経路上のECUを選定する(S1102)。経路上に存在するECUは、監視対象パケットの送信元ECU及び宛先ECUと、送信元ECUと宛先ECUとの間の通信経路に存在するゾーンECUとを含む。図27では経路上のゾーンECUとしてゾーンECU100a及び100bが選定されている。またゾーンECU100bが送信元ECUを管理するゾーンECUであることを想定している。
 DPIルール転送部1105Bは、選定されたECUそれぞれのフロー情報を要求し、各ECUについて、パケット占有率と、DPI部でペイロード監視処理が行われる1分あたりのパケット数であるDPI処理パケット数とを算出する(S1103)。
 DPIルール転送部1105Bは、DPIルールの監視対象パケットが暗号化通信であるかを判定する(S1104)。監視対象パケットが暗号化通信である場合(S1104がYesの場合)、DPIルール転送部1105Bは、暗号化通信の復号が可能である送信元ECUと宛先ECUとに候補を絞り、送信元ECUより宛先ECUのDPI処理パケット数が多いかを判定する(S1105)。送信元ECUより宛先ECUのDPI処理パケット数が多い場合(S1105がYesの場合)、DPIルール転送部1105Bは、DPIルールの適用先を送信元ECUに設定し、そのECUでのパケット占有率を処理優先度として設定し、DPIルールを適用先のECUに転送する(S1106)。その後、DPIルール転送部1105Bは、DPIルール転送処理を終了する。
 送信元ECUより宛先ECUのDPI処理パケット数が少ない場合(S1105がNoの場合)、DPIルール転送部1105Bは、DPIルールの適用先を宛先ECUに設定し、そのECUでのパケット占有率を処理優先度として設定し、DPIルールを適用先のECUに転送する(S1107)。その後、DPIルール転送部1105Bは、DPIルール転送処理を終了する。
 監視対象パケットが暗号化通信でない場合(S1104がNoの場合)、ゾーンECUでもパケットを復号せず監視可能であるため、DPIルール転送部1105Bは、送信元ECUを管理するゾーンECU1100bのDPI処理パケット数が10000以上であるかを判定する(S1108)。ゾーンECU1100bのDPI処理パケット数が10000以上である場合(S1108がYesの場合)、DPIルール転送部1105Bは、もう一つのゾーンECUでの候補であるゾーンECU1100aのDPI処理パケット数が10000以上であるかを判定する(S1109)。ゾーンECU1100aのDPI処理パケット数が10000以上の場合(S1109がYesの場合)、ゾーンECU側では監視が難しいため、DPIルール転送部1105Bは、ステップS1105を行う。
 ゾーンECU1100aのDPI処理パケット数が10000未満の場合(S1109がNoの場合)、ゾーンECU1100aで監視可能なため、DPIルール転送部1105Bは、DPIルールの適用先をゾーンECU1100aに設定し、そのECUでのパケット占有率を処理優先度として設定し、DPIルールを適用先のECUに転送する(S1110)。その後、DPIルール転送部1105Bは、DPIルール転送処理を終了する。
 ゾーンECU1100bのDPI処理パケット数が10000未満である場合(S1108がNoの場合)、ゾーンECU1100bで監視可能なため、DPIルール転送部1105Bは、DPIルールの適用先をゾーンECU1100bに設定し、そのECUでのパケット占有率を処理優先度として設定し、DPIルールを適用先のECUに転送する(S1111)。その後、DPIルール転送部1105Bは、DPIルール転送処理を終了する。
 [適用先・処理優先度を決定するために要求するフロー情報の一例]
 図28は、DPIルール転送部1105BがDPIルールの適用先及び処理優先度を決定するためにフロー情報収集部103に要求するフロー情報の一例を示す図である。
 DPIルール転送部1105Bは、DPIルールの適用先を決定する際、フロー情報収集部103にDPIルールで監視するパケットのヘッダ条件を通知する。フロー情報収集部103は通知されたヘッダ条件のパケットを監視可能なECUを選定し、DPIルールの適用先を決定するための比較条件として用いられるフロー情報と、処理優先度を決定するためのフロー情報とを、収集されたフロー情報から抽出し、抽出されたフロー情報をDPIルール転送部1105Bに転送する。
 図28ではフロー情報収集部103に要求したフロー情報はDPIルール生成時に仮発行したルール番号と紐づけられる。
 図28では、フロー情報は、暗号化の有無、監視対象パケットの通信量、DPIルールの適用先候補ECU、候補ECU全体の通信量、監視対象パケットのパケット占有率、及び候補ECUでのDPI処理パケット数を含む。
 暗号化の有無は、対象のヘッダ条件に該当する通信が暗号化を施されているかを示す。暗号化の有無は送信元ECUと宛先ECUとの組合せによって判断される。監視対象パケットの通信量は、車載ネットワークシステム20上で通信されるヘッダ条件に該当するパケットの通信量を示す。
 適用先候補ECUは、監視対象パケットが通信する際に経由するECUを示す。パケット占有率は、監視対象パケットのパケット数と適用先候補ECU全体で通信されるパケット数との比(%)を示す。つまり、パケット占有率は、適用先候補ECU全体で通信されるパケットのパケット数うち、監視対象パケットのパケット数が占める割合を示す。適用先が決定された際は、この値がDPIルールの処理優先度として設定される。
 DPI処理パケット数は、適用先候補ECUのDPI部が現在、DPIルールに従ってペイロードの監視処理をしているパケット数を示す。フロー情報収集部103は、全DPIルール記憶部106から各ECUに適用されているDPIルールの情報を入手することで、DPI処理パケット数を算出する。この値が大きいほど、各ECUのDPI部の処理負荷が大きいことを表す。また、このDPI処理パケット数は、以上の定義に限定されない。例えば、DPI処理パケット数は、DPI部102及び202にてDPIルールと受信パケットとでヘッダチェックを行う回数であってもよい。
 [適用先が動的に変更されたDPIルールの一例]
 図29は、適用先を動的に変更したDPIルールの一例を示す図である。例えば、図29に示すルール番号“B-11”では、DPIルールの発行元であるゾーンECU1100bにDPIルールが適用される。ルール番号“B-12”は中間者攻撃監視のDPIルールであるため、ルール番号“B-12”の2つのDPIルールが生成される。一つはゾーンECU1100cに適用され、もう片方はブレーキ制御ECU200dに適用される。
 (実施の形態3)
 以下、複数のECUがイーサネットを介して通信する車載ネットワーク(車載ネットワークシステム)を搭載した車両における、異常検知装置(異常検知システム)について説明する。なお、実施の形態1と同様の機能を有する構成要素は、同様の番号を付与して説明を省略する。
 [車載ネットワークシステムの全体構成図]
 図30は、車載ネットワークシステム30の全体構成図である。図30において、車載ネットワークシステム30は、ADAS ECU200aと、IVI ECU200bと、ハンドル制御ECU200cと、ブレーキ制御ECU200dと、シフトレバーECU200eと、カメラECU200fと、LiDAR ECU200gと、ゾーンECU2100a、2100b及び2100cとを含む。
 [ゾーンECU2100aの構成図]
 図31は、ゾーンECU2100aの構成図である。なお、ゾーンECU2100b及び2100cもゾーンECU2100aと同様の構成であるため、これらの説明を省略する。
 図31において、ゾーンECU2100aは、通信ポート部101と、DPI部102と、フロー情報収集部103と、フローベース異常検知部104と、DPI制御部2105と、全DPIルール記憶部106と、ECU管理リスト保存部107と、安全性判断部2108と、安全監視用DPIルールリスト保存部2109とを備える。
 DPI制御部2105は、DPIルール生成部2105Aと、DPIルール転送部2105Bと、DPIアラート処理部105Cとを含む。
 DPIルール生成部2105Aは、フローベース異常検知部104で生成される異常アラートからDPIルールを生成する。また、DPIルール生成部2105Aは、安全性判断部2108からの指示に応じてDPIルールを生成する。
 安全性判断部2108は、フローベース異常検知部104からの異常アラートと、ADAS ECU200a及びシフトレバーECU200eから受信する車両状態とから、運転者の生命に関わるリスクがあるかを判断し、必要に応じて各ECUに運転者の安全を確保する命令を行う。また、安全性判断部2108は、運転者の安全に関わる機能に攻撃のリスクがある場合、その機能を持つECUの通信を監視するDPIルールを生成するようにDPIルール生成部2105Aに指示を出す。
 安全監視用DPIルールリスト保存部2109には、安全性判断部2108の指示によって生成されるDPIルールの雛型が予め保存されている。DPIルール生成部2105Aは、安全性判断部2108からDPIルール生成の指示を受けた際に、一からDPIルールを作成するのではなく、安全監視用DPIルールリスト保存部2109から対応するDPIルールの雛型を呼び出し、当該雛型を用いてDPIルールを生成する。
 [安全監視用DPIルールリスト]
 図32は、安全監視用DPIルールリスト保存部2109に保存される安全監視用DPIルールリストの一例を示す図である。安全監視用DPIルールリストに保存されるDPIルールは、DPIルール名と、ヘッダ条件と、チェック内容と、チェック時動作と、監視パケット数とを含む。DPIルール生成部2105Aは、安全性判断部2108からの指示に従って、必要なDPIルールを安全監視用DPIルールリスト保存部2109に要求する。
 図32に示す例では、DPIルール名が緊急停止システム監視とバックモニター監視との2種類のDPIルールが保存されている。緊急停止システム監視のDPIルールは、安全性判断部2108がフローベース異常検知部104から出力された異常アラートから、車両を緊急停止させるシステムを起動する判断をした際に生成されるDPIルールである。このDPIルールは、車両を緊急停止させる際に使用する制御系ECU又はセンサECUなどに悪意のあるECUがなりすまし攻撃にて悪意のある通信を行っていないかを判定するために用いられる。そのため正規なクライアントIDを用いた通信でなければ、パケットが遮断され、車両の機能が保護される。
 バックモニター監視のDPIルールは、シフトレバーがリバース(R)シフトの時にIVIとの通信に対する異常アラートが発生した際に生成される。このDPIルールでは、運転者が駐車時に後方確認のため見ているバックモニターに正規なクライアントIDを持つ通信以外が行われていないかが監視され、不正なクライアントIDを持つ通信パケットはDPI部102及び202で遮断される。
 [処理のシーケンス]
 図33は、実施の形態3におけるハンドル制御ECU200cからADAS ECU200aへの攻撃が発生した際の処理シーケンスを示す図である。図33では、緊急停止システムの作動及びその機能の通信を監視するDPIルールが適用され、DPI部の監視結果に基づいたセキュリティ対応が行われる。
 ADAS ECU200aは自動運転を開始し、そのことをゾーンECU2100a、2100b及び2100cに報告する(S1201)。シフトレバーECU200eは定期的にシフトレバーの状態をゾーンECU2100a、2100b及び2100cに報告する(S1202)。なお、ゾーンECU2100cの処理は図33には図示していない。
 ハンドル制御ECU200cはADAS ECU200aになりすまし攻撃を行う(S1203)。ハンドル制御ECU200cとADAS ECU200aとの通信経路上に存在するゾーンECU2100a及び2100bがパケットをミラーリングしてパケットを受信し、フロー情報を収集する(S1204)。
 ゾーンECU2100a、2100b及び2100cは、ゾーンECU2100a、2100b及び2100cの間で収集されたフロー情報を共有する(S1205)。ゾーンECU2100a、2100b及び2100cはそれぞれ共有されたフロー情報を基にフローベース異常検知を行い、ハンドル制御ECU200cがADAS ECU200aに攻撃していることを検知する。(S1206)。
 ゾーンECU2100a、2100b及び2100cは、フローベース異常検知によって生成された異常アラートの内容が、車両の安全を脅かすものではないかを判断する安全性判断を行う(S1207)。具体的には、ゾーンECU2100a、2100b及び2100cは、当該異常アラートの内容と、ADAS ECU200a及びシフトレバーECU200eから報告されている車両状態とを照らし合わせることで、安全性判断が行われる。
 ゾーンECU2100aは、安全性判断の結果、自動運転を続けることにリスクがあると判断し、緊急停止を行った後、自動運転システムを停止させる命令を、ADAS ECU200aに通知する(S1208)。
 ADAS ECU200aは自身を管理するゾーンECU2100aの指示に従い、緊急停止システムを作動する(S1209)。ゾーンECU2100aは、緊急停止システムを安全に作動させるため、緊急停止に関わるECUに、不正な通信が行われていないか監視するDPIルールを配布する(S1210)。
 ADAS ECU200aとカメラECU200fはゾーンECU2100aからDPIルールを受信し、受信されたDPIルールをDPI部202に適用する(S1211)。
 ハンドル制御ECU200cはADAS ECU200aに対して継続してなりすまし攻撃を行う(S1212)。ADAS ECU200aは、DPIルールに従って、ハンドル制御ECU200cからの異常な通信を遮断する(S1213)。
 [ゾーンECUのパケット処理]
 図34は、実施の形態3におけるゾーンECUがパケットを受信した際の処理のフローチャートである。通信ポート部101は、自身を経由して通信されるパケットをミラーリングして受信する(S1301)。フロー情報収集部103は、受信されたパケットからヘッダ情報を抽出してフロー情報を更新する(S1302)。
 フロー情報収集部103は、フロー情報を収集する規定の時間を超過していないかを判定する(S1303)。規定時間を超えている場合(S1303がYesの場合)、フロー情報収集部103は、フロー情報を出力する(S1304)。規定時間を超えていない場合(S1303がNoの場合)、フロー情報収集部103は、最初のステップS1301に戻る。
 通信ポート部101は、出力されたフロー情報を、他のゾーンECUに転送する(S1305)。また、通信ポート部101は、他のゾーンECUから転送されたフロー情報を受信する(S1306)。そしてフロー情報収集部103は、自身で出力したフロー情報と他のゾーンECUから転送されたフロー情報とを合成する(S1307)。
 フローベース異常検知部104は、合成されたフロー情報を基にフローベース異常検知を行い(S1308)、異常があるかどうか判定する(S1309)。異常がある場合(S1309がYesの場合)、フローベース異常検知部104は、異常の内容が記載された異常アラートを生成する(S1310)。異常がない場合(S1309がNoの場合)、ゾーンECUは処理を終了する。
 DPIルール生成部2105Aは、生成された異常アラートの内容が車両の安全を脅かすものかを、異常アラートの内容を車両状態と照らし合わせて判断する(S1311)。
 DPIルール生成部2105Aは、安全性の判断結果、車両が危険な状態であるかを判定する(S1312)。
 車両が危険な状態であると判断された場合(S1312がYesの場合)、DPIルール生成部2105Aは、安全を確保する行動をECUに指示し(S1313)、車両の安全を確保するためのDPIルールを生成する(S1314)。車両が危険な状態でないと判断された場合(S1312がNoの場合)、DPIルール生成部2105Aは、ステップS1313及びS1314の処理をスキップする。
 DPIルール生成部2105Aは、生成された異常アラートからDPIルールを生成する(S1315)。DPIルール生成部2105Aは、生成されたDPIルールを全DPIルール記憶部106に保存する(S1316)。
 DPIルール転送部2105Bは、生成されたDPIルールの適用先ECUが自身の管理ECUであるかをECU管理リストに基づき判定する(S1317)。適用先ECUが自身の管理ECUである場合(S1317がYesの場合)、DPIルール転送部2105Bは、DPIルールを適用先ECUに転送し(S1318)、ゾーンECUは、処理を終了する。適用先ECUが自身の管理ECUでない場合(S1317がNoの場合)、ゾーンECUは、処理を終了する。
 [安全性判断の処理フローチャート]
 図35は、安全性判断の処理フローチャートである。安全性判断部2108は、フローベース異常検知部104からの異常アラートがあるかを判定する(S1401)。異常アラートがある場合(S1401がYesの場合)、安全性判断部2108は、異常アラートの対象の通信がADAS ECU200aとの通信であるかを判定する(S1402)。
 異常アラートの対象の通信がADAS ECU200aとの通信である場合(S1402がYesの場合)、安全性判断部2108は、自動運転中であるかを判定する(S1403)。自動運転中である場合(S1403がYesの場合)、安全性判断部2108は、緊急停止システムの作動をADAS ECU200aに指示し、そのことを運転者にも通知する(S1404)。そして、安全性判断部2108は、緊急停止システム監視用のDPIルールの生成をDPIルール生成部2105Aに指示する(S1405)。
 自動運転中でない場合(S1403がNoの場合)、安全性判断部2108は、シフトレバーがドライブ(D)シフトであるかを判定する(S1406)。シフトレバーがDシフトである場合(S1406がYesの場合)、安全性判断部2108は、ドライブアシストの停止をADAS ECU200aに指示し、そのことを運転者にも通知する(S1407)。
 シフトレバーがDシフトでない場合(S1406がNoの場合)、安全性判断部2108は、シフトレバーがリバース(R)シフトであるかを判定する(S1408)。シフトレバーがRシフトである場合(S1408がYesの場合)、安全性判断部2108は、パーキングアシストの停止をADAS ECU200aに指示し、そのことを運転者にも通知する(S1409)。シフトレバーがRシフトでない場合(S1408がNoの場合)、安全性判断部2108は、安全性判断の処理を終了する。
 異常アラートの対象の通信がADAS ECU200aとの通信でない場合(S1402がNoの場合)、安全性判断部2108は、異常アラートの対象の通信がIVI ECU200bとの通信であるかを判定する(S1410)。異常アラートの対象の通信がIVI ECU200bとの通信である場合(S1410がYesの場合)、安全性判断部2108は、シフトレバーがリバース(R)シフトであるかを判定する(S1411)。シフトレバーがRシフトである場合(S1411がYesの場合)、安全性判断部2108は、バックモニター監視用のDPIルールの生成をDPIルール生成部2105Aに指示する(S1412)。
 異常アラートがでている通信がIVI ECU200bとの通信でない場合(S1410がNoの場合)、又はシフトレバーがRシフトでない場合(S1411がNoの場合)、安全性判断部2108は、安全性判断の処理を終了する。フローベース異常検知部104からの異常アラートがない場合(S1401がNoの場合)、安全性判断部2108は、安全性判断の処理を終了する。
 [安全監視用のDPIルール生成処理のフローチャート]
 図36は、実施の形態3におけるDPIルール生成部2105Aによる処理のフローチャートである。DPIルール生成部2105Aは、安全性判断部2108からDPIルール生成の指示を受ける(S1501)。
 DPIルール生成部2105Aは、安全性判断部2108からの指示が緊急停止システム監視用のDPIルールの生成かを判定する(S1502)。安全性判断部2108からの指示が緊急停止システム監視用のDPIルールの生成である場合(S1502がYesの場合)、DPIルール生成部2105Aは、緊急停止システム監視用のDPIルールを安全監視用DPIルールリスト保存部2109に要求し、緊急停止システム監視用のDPIルールを取得する(S1503)。
 DPIルール生成部2105Aは、DPIルール転送部2105Bに、緊急停止システム監視用のDPIルールの適用先決定、処理優先度の決定、及び適用先へのDPIルールの転送を依頼し(S1504)、処理を終了する。
 安全性判断部2108からの指示が緊急停止システム監視用のDPIルールの生成でない場合(S1502がNoの場合)、DPIルール生成部2105Aは、バックモニター監視用のDPIルールを安全監視用DPIルールリスト保存部2109に要求し、バックモニター監視用のDPIルールを取得する(S1505)。そしてDPIルール生成部2105Aは、DPIルール転送部2105Bに、安全監視用のDPIルールの適用先決定、処理優先度の決定、及び適用先へのDPIルールの転送を依頼し(S1504)、処理を終了する。
 [安全監視用DPIルールの一例]
 図37は、生成された安全監視用DPIルールの一例を示す図である。図37に示すDPIルールは自動運転時にADAS ECU200aで異常が発生した際に生成された緊急停止システム監視用のDPIルールである。そのため、DPIルールの発行元は、ADAS ECU200aを管理するゾーンECU2100aである。DPIルールの各処理優先度はDPIルール転送部2105Bで算出される。また、DPIルールはDPIルール転送部2105Bにより転送される。
 [その他変形例]
 なお、本開示を上記各実施の形態に基づいて説明してきたが、本開示は、上記各実施の形態に限定されないのはもちろんである。
 (1)上記の実施の形態では、車載ネットワークにイーサネットが使用される例を示したが、これに限定されない。例えば、車載ネットワークに、CAN、CAN-FD(Flexible-Datarate)、イーサネット、LIN、又はFlexRay(登録商標)が用いられてもよいし、これらの2以上の組み合わせて用いられてもよい。
 (2)上記実施の形態では、フロー情報の収集をゾーンECUが行っているが、ゾーンECU以外が行わず、ゾーンECU以外が行ってもよい。例えば、ヘッドユニット、セントラルECU、又はイーサネットスイッチなどがフロー情報の収集を行ってもよい。
 (3)上記の実施の形態では、フローを特定するための情報として、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、及びプロトコル番号の組が用いられたが、フローを特定するための情報は、これらに限定されない。例えば、フローを特定するための情報として、これらに加え、又はこれらの少なくとも一部の代わりに、Virtual LANに用いられるV-LAN IDが用いられてもよい。また、CAN通信などが用いられる場合に、フローを特定するための情報として、通信データの識別子であるCAN IDが用いられてもよい。これによりフローの定義がより柔軟となり、ネットワークに適したフロー情報の収集が可能となる。
 (4)上記の実施の形態では、フローベース異常検知に用いるフロー情報として、パケット数と平均到着間隔とが用いられたが、フローベース異常検知に用いるフロー情報はこれに限定されない。例えば、平均パケット長又はタイムスタンプなどが用いられてもよい。
 (5)上記の実施の形態では、フローベース異常検知後に、ペイロードベースの異常検知機能であるDPIが用いられたが、DPI以外が用いられてもよい。例えば、AIベースの異常検知機能が用いられてもよい。
 (6)上記の実施の形態では、各ECUは、DPI部による監視結果に基づいてDPIルールの破棄を適宜行っているが、ゾーンECUが状況に応じて各ECUにDPIルールの破棄を命令してもよい。
 (7)上記の実施の形態では、規定のパケット数の監視を行った際にDPIルールの破棄が行われているが、DPIルールを破棄する条件はこれに限定されない。例えば、DPIルールを適用してから一定の時間が経過した際にDPIルールが破棄されてもよいし、DPI部に適用されたDPIルール数が規定の数を超えた際に監視の優先度が低いDPIルールから破棄されてもよい。
 (8)上記の実施の形態では、通信パケットが暗号化されている際は送信元ECUと宛先ECUとにDPIルールが適用されたが、ゾーンECUを含めた他のECUが暗号化されたパケットを復号可能であれば、ゾーンECUを含めた他のECUにDPIルールが適用されてもよい。
 (9)上記の実施の形態では、ADAS ECUとIVI ECUとに関わる通信に対し、フローベース異常検知部が異常を検知した場合に、安全監視用のDPIルールが適用される例を示しているが、異常を検知する対象の通信はこれに限定されない。例えば、任意の制御系ECU又はセンサ系ECUと、他の任意の制御系ECU又はセンサ系ECUとに関わる通信で異常を検知した場合に同様の処理が適用されてもよい。また、これらを組み合わせた2以上の異常を検知した場合に同様の処理が適用されてもよい。
 (10)上記の実施の形態では、車両状態として、シフトレバー状態と自動運転中かとを参照しているが、参照される車両状態はこれに限定されない。例えば、参照される車両状態は、自動駐車中、クルーズコントロール中、ソフトウェア更新中、車両診断中、及びインターネット接続中の少なくとも一つを含んでもよい。また、このような車両状態を参照してDPIルールの生成、追加、変更、有効化、及び無効化の少なくとも一つが行われてもよい。
 (11)上記の実施の形態では、 DPI部での処理パケット数に基づいて、DPIルールの適用先を設定しているが、DPIルールの適用先を設定する方法はこれに限らない。例えば、フローベース異常検知部による異常検知結果に基づいてDPIルールの適用先が決定されてもよい。例えば、フローベース異常検知部がフラッディング攻撃を検知した場合、送信元ECUに近いゾーンECUに対するDPIルールの適用が優先される。これにより、DPI部にて異常を検知した際に異常パケットのドロップ処理をゾーンECUで行うことができる。
 (12)上記の実施の形態における各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM及びRAM等を含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全部を含むように1チップ化されても良い。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI又はウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現されても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
 (13)上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されても良い。ICカード又はモジュールは、マイクロプロセッサ、ROM及びRAM等から構成されるコンピュータシステムである。ICカード又はモジュールは、上記の超多機能LSIを含んでも良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカード又はモジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有してもよい。
 (14)本開示の一態様は、異常検知の方法をコンピュータにより実現するプログラム(コンピュータプログラム)であっても良いし、コンピュータプログラムからなるデジタル信号であっても良い。また、本開示の一態様は、コンピュータプログラム又はデジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blue―ray(登録商標) Disc)、又は半導体メモリ等であっても良い。また、本開示の一態様は、これらの記録媒体に記録されているデジタル信号であっても良い。また、本開示の一態様は、コンピュータプログラム又はデジタル信号を、電気通信回線、無線或いは有線通信回線、インターネットを代表とするネットワーク、又は、データ放送等を経由して伝送するものとしても良い。また、本開示の一態様は、マイクロプロセッサとメモリを備えたコンピュータシステムであっても良い。メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムに従って動作しても良い。また、本開示の一態様は、プログラム若しくはデジタル信号を記録媒体に記録して移送することにより、又は、プログラム若しくはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施されてもよい。
 (15)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本開示の範囲に含まれる。
 本開示は、車載ネットワークシステムにおいて、通信の異常を検知する装置及び通信の異常を検知する方法に有用である。
 10、20、30 車載ネットワークシステム
 100a、100b、100c、1100a、1100b、1100c、2100a、2100b、2100c ゾーンECU
 101、201 通信ポート部
 102、202 DPI部
 103 フロー情報収集部
 104 フローベース異常検知部
 105、1105、2105 DPI制御部
 105A、1105A、2105A DPIルール生成部
 105B、1105B、2105B DPIルール転送部
 105C DPIアラート処理部
 106 全DPIルール記憶部
 107 ECU管理リスト保存部
 200a ADAS ECU
 200b IVI ECU
 200c ハンドル制御ECU
 200d ブレーキ制御ECU
 200e シフトレバーECU
 200f カメラECU
 200g LiDAR ECU
 203 アプリ部
 2108 安全性判断部
 2109 安全監視用DPIルールリスト保存部

Claims (13)

  1.  1以上の上位電子制御装置が配置された上位ネットワークと、1以上の下位電子制御装置が配置された下位ネットワークとを含む階層構造を有する車載ネットワークにおける上位電子制御装置による異常検知方法であって、
     前記車載ネットワークの所定の観測箇所において受信されるメッセージのヘッダ情報によって分類されるフローごとの統計情報であるフロー情報を収集し、
     前記フロー情報に基づいて異常検知を行い、
     前記異常検知の結果に基づいて、DPI(Deep Packet Inspection)ルールの生成、追加、削除、変更、有効化及び無効化のいずれかを行い、
     前記DPIルールは、前記1以上の下位電子制御装置における前記メッセージの監視に用いられ、
     前記DPIルールは、前記メッセージに含まれるヘッダ情報及びペイロード情報の条件と、前記条件に合致するメッセージを受信した場合の処理内容とを示す
     異常検知方法。
  2.  前記フロー情報は、フローごとのメッセージの受信量に関する情報を含み、
     前記異常検知方法は、さらに、
     前記情報に基づいて、前記DPIルールを含む1以上のDPIルールのそれぞれについて、前記メッセージの監視の処理の順番を示す処理優先度を決定する、
     請求項1記載の異常検知方法。
  3.  前記異常検知方法は、さらに、
     前記異常検知で検知された異常の内容と、監視する前記メッセージの単位時間あたりのメッセージ数とに応じて、前記DPIルールに従ったメッセージの監視を有効化する時間、又は前記DPIルールに従った前記メッセージの前記監視を実施するメッセージ上限数を決定する、
     請求項2記載の異常検知方法。
  4.  前記DPIルールは、前記1以上の下位電子制御装置の間で送受信されるメッセージに含まれるサービス情報又はクライアント情報を示し、
     前記メッセージの前記監視では、メッセージのサービス情報又はクライアント情報が前記DPIルールで示される前記サービス情報又は前記クライアント情報と一致しない場合、当該メッセージはドロップされる、
     請求項1記載の異常検知方法。
  5.  前記異常検知方法は、さらに、
     前記1以上の下位電子制御装置から出力された前記監視の結果に基づいて前記DPIルールを追加、変更、有効化又は無効化する、
     請求項1記載の異常検知方法。
  6.  前記異常検知方法は、さらに、
     シフトレバー状態、自動運転中、自動駐車中、クルーズコントロール中、ソフトウェア更新中、車両診断中、及びインターネット通信接続中の少なくとも一つを含む車両状態と、前記異常検知の結果とに応じて、前記DPIルールを追加、変更、有効化又は無効化する、
     請求項1記載の異常検知方法。
  7.  前記異常検知方法は、さらに、
     前記1以上の下位電子制御装置に含まれる、前記異常検知において異常と判定された前記メッセージの送信元又は宛先である1つの下位電子制御装置の前記車両状態に応じてDPIルールで示される前記処理内容を決定する、
     請求項6記載の異常検知方法。
  8.  前記異常検知方法は、さらに、
     前記1以上の下位電子制御装置から、前記DPIルールに従い監視される対象のメッセージの送信元の第1電子制御装置と、当該メッセージの宛先の第2電子制御装置とを選択し、
     前記1以上の上位電子制御装置から、前記第1電子制御装置と前記第2電子制御装置との間に配置されており、前記対象のメッセージが経由する少なくとも1つの第3電子制御装置を選択し、
     選択された前記第1電子制御装置、前記第2電子制御装置及び前記少なくとも1つの第3電子制御装置のうち、メッセージ処理にかかる処理負荷量が最も小さい電子制御装置に対し、前記DPIルールを適用する、
     請求項1記載の異常検知方法。
  9.  前記異常検知方法は、さらに、
     前記フロー情報に基づいて、前記第1電子制御装置、前記第2電子制御装置及び前記少なくとも1つの第3電子制御装置の各々の通信量を算出し、
     前記1以上の下位電子制御装置で有効化されている1以上のDPIルールと、前記通信量とから前記処理負荷量を算出する、
     請求項8記載の異常検知方法。
  10.  前記異常検知方法は、さらに、
     前記異常検知で検知された異常内容が前記車載ネットワークに負荷がかかる異常である場合、前記少なくとも1つの第3電子制御装置のうち、前記第1電子制御装置に最も近い第3電子制御装置に前記DPIルールを適用する、
     請求項8記載の異常検知方法。
  11.  前記異常検知方法は、さらに、
     前記上位電子制御装置において前記DPIルールを用いてメッセージを監視する
     請求項1記載の異常検知方法。
  12.  1以上の上位電子制御装置が配置された上位ネットワークと、1以上の下位電子制御装置が配置された下位ネットワークとを含む階層構造を有する車載ネットワークにおける上位電子制御装置に含まれる異常検知装置であって、
     前記車載ネットワークの所定の観測箇所において受信されるメッセージのヘッダ情報によって分類されるフローごとの統計情報であるフロー情報を収集する収集部と、
     前記フロー情報に基づいて異常検知を行う異常検知部と、
     前記異常検知の結果に基づいて、DPI(Deep Packet Inspection)ルールの生成、追加、削除、変更、有効化及び無効化のいずれかを行う制御部と、を備え、
     前記DPIルールは、前記1以上の下位電子制御装置における前記メッセージの監視に用いられ、
     前記DPIルールは、前記メッセージに含まれるヘッダ情報及びペイロード情報の条件と、前記条件に合致するメッセージを受信した場合の処理内容とを示す
     異常検知装置。
  13.  請求項1記載の異常検知方法をコンピュータに実行させる
     プログラム。
PCT/JP2024/027060 2023-08-03 2024-07-30 異常検知方法、異常検知装置及びプログラム Pending WO2025028500A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/JP2023/028483 WO2025027863A1 (ja) 2023-08-03 2023-08-03 異常検知システム
JPPCT/JP2023/028483 2023-08-03

Publications (1)

Publication Number Publication Date
WO2025028500A1 true WO2025028500A1 (ja) 2025-02-06

Family

ID=94394776

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2023/028483 Pending WO2025027863A1 (ja) 2023-08-03 2023-08-03 異常検知システム
PCT/JP2024/027060 Pending WO2025028500A1 (ja) 2023-08-03 2024-07-30 異常検知方法、異常検知装置及びプログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/028483 Pending WO2025027863A1 (ja) 2023-08-03 2023-08-03 異常検知システム

Country Status (1)

Country Link
WO (2) WO2025027863A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008060763A (ja) * 2006-08-30 2008-03-13 Alaxala Networks Corp ネットワークノード
CN113055388A (zh) * 2021-03-16 2021-06-29 烽火通信科技股份有限公司 一种基于生成对抗网络的深度包检测方法与系统
WO2021241354A1 (ja) * 2020-05-26 2021-12-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置、異常検知システムおよび異常検知方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021002010A1 (ja) * 2019-07-04 2021-01-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正フレーム検知装置および不正フレーム検知方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008060763A (ja) * 2006-08-30 2008-03-13 Alaxala Networks Corp ネットワークノード
WO2021241354A1 (ja) * 2020-05-26 2021-12-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置、異常検知システムおよび異常検知方法
CN113055388A (zh) * 2021-03-16 2021-06-29 烽火通信科技股份有限公司 一种基于生成对抗网络的深度包检测方法与系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TSUYOSHI KISHIKAWA, TAKAHIRO ADACHI, RYO HIRANO, YOSHIHIRO UJIIE, TOMOYUKI HAGA, HIDEKI MATSUSHIMA: "1F1-4 Flow-based IDS for Automotive Ethernet: Flow Analysis of Attacks on SOME/IP", PREPRINTS OF THE 38TH SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY; SCIS 2021; JANUARY 19-22, 2021, vol. 38, 22 January 2021 (2021-01-22) - 22 January 2021 (2021-01-22), pages 1 - 8, XP009560744 *

Also Published As

Publication number Publication date
WO2025027863A1 (ja) 2025-02-06

Similar Documents

Publication Publication Date Title
EP3995978B1 (en) Abnormality detection device and abnormality detection method
JP7182564B2 (ja) 不正検知装置、車載ネットワークシステム、および、不正検知方法
CN103609070B (zh) 网络流量检测方法、系统、设备及控制器
CN108141416B (zh) 一种报文处理方法、计算设备以及报文处理装置
CN112889259B (zh) 不正常帧检测装置以及不正常帧检测方法
JP6495050B2 (ja) コンピュータ実装システム、及び、ネットワーク評価を利用したセキュアパスの選択方法
US10680893B2 (en) Communication device, system, and method
CN108092934A (zh) 安全服务系统及方法
KR101966345B1 (ko) Can 통신 기반 우회 공격 탐지 방법 및 시스템
EP3534571B1 (en) Service packet transmission method, and node apparatus
CN109412850B (zh) 消息订阅控制方法及装置
JP7620014B2 (ja) 異常検知装置、異常検知システムおよび異常検知方法
US11330017B2 (en) Method and device for providing a security service
US9298175B2 (en) Method for detecting abnormal traffic on control system protocol
CN118511489A (zh) 异常检测装置以及异常检测方法
US12021658B2 (en) Switch device, in-vehicle communication system, and communication method
KR101881061B1 (ko) 모드 변경이 가능한 양방향 통신 장치 및 방법
CN112738120A (zh) 基于蜜罐的数据处理方法、装置、系统以及电子设备
KR102067186B1 (ko) 분리된 망 사이의 데이터 통신을 지원하는 장치 및 그 방법
WO2025028500A1 (ja) 異常検知方法、異常検知装置及びプログラム
CN107210969B (zh) 一种基于软件定义网络的数据处理方法及相关设备
KR20200007060A (ko) 분리된 망 사이의 데이터 통신을 지원하는 장치 및 그 방법
US20220038431A1 (en) A Secure Multi-Layered Infrastructure Monitoring and Remote Connectivity System and Method
JP6877278B2 (ja) 中継装置
US10616094B2 (en) Redirecting flow control packets

Legal Events

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

Ref document number: 24849151

Country of ref document: EP

Kind code of ref document: A1