Nothing Special   »   [go: up one dir, main page]

WO2022255247A1 - 監視装置、監視システム及び監視方法 - Google Patents

監視装置、監視システム及び監視方法 Download PDF

Info

Publication number
WO2022255247A1
WO2022255247A1 PCT/JP2022/021731 JP2022021731W WO2022255247A1 WO 2022255247 A1 WO2022255247 A1 WO 2022255247A1 JP 2022021731 W JP2022021731 W JP 2022021731W WO 2022255247 A1 WO2022255247 A1 WO 2022255247A1
Authority
WO
WIPO (PCT)
Prior art keywords
monitoring
unit
software
execution authority
virtual machine
Prior art date
Application number
PCT/JP2022/021731
Other languages
English (en)
French (fr)
Inventor
亮 平野
良浩 氏家
剛 岸川
智之 芳賀
潤 安齋
吉治 今本
Original Assignee
パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority to EP22815997.6A priority Critical patent/EP4350548A4/en
Priority to JP2022567193A priority patent/JP7189397B1/ja
Priority to CN202280036869.4A priority patent/CN117355832A/zh
Publication of WO2022255247A1 publication Critical patent/WO2022255247A1/ja
Priority to US18/519,690 priority patent/US20240086290A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Definitions

  • the present disclosure relates to a monitoring device, monitoring system, and monitoring method for monitoring software and communication logs.
  • Patent Document 1 discloses a method of detecting an abnormality in a monitored virtual machine by having a monitoring virtual machine on virtual software monitor a monitored virtual machine on virtual software.
  • the present disclosure solves conventional problems, and provides a monitoring device that can detect an abnormality that occurs in an ECU even if a monitoring program installed in a low-reliability area has been tampered with.
  • a monitoring device includes three or more monitoring units that each monitor at least one of software and a communication log as a monitoring target, and the three or more monitoring units have a first execution authority A first monitoring unit that operates and a second monitoring unit that operates with a second execution authority that is less reliable than the first execution authority have the same reliability as the second execution authority, or , and a third monitoring unit that operates with a third execution authority that is less reliable than the second execution authority, wherein the first monitoring unit monitors the software of the second monitoring unit. , at least one of the first monitoring unit and the second monitoring unit monitors the software of the third monitoring unit.
  • a monitoring system is a monitoring system comprising a monitoring device and a monitoring server, wherein each of the monitoring devices monitors at least one of software and communication logs as a monitoring target.
  • a monitoring unit identifier a monitoring target identifier, a normality determination time, and an abnormality determination time
  • a monitoring server communication unit that transmits at least two of the above to the monitoring server as a monitoring result
  • the three or more monitoring units are a first monitoring unit that operates with a first execution authority, and a second monitoring unit that operates with a second execution authority that is less reliable than the first execution authority.
  • a third monitoring unit that operates with a third execution authority that has the same reliability as the second execution authority or that has lower reliability than the second execution authority, The unit monitors the software of the second monitoring unit, at least one of the first monitoring unit and the second monitoring unit monitors the software of the third monitoring unit, and the monitoring server is and a monitoring result display unit for receiving the monitoring result and displaying the monitoring result on a graphical user interface.
  • a monitoring method is a monitoring method executed by a monitoring device including three or more monitoring units, wherein the three or more monitoring units operate with a first execution authority.
  • the monitoring device of the present disclosure even if a monitoring program installed in a low-reliability area has been tampered with, an abnormality that has occurred in the ECU can be detected.
  • FIG. 1 is a diagram showing an overall configuration diagram of a monitoring system according to an embodiment.
  • FIG. 2 is a diagram showing a configuration diagram of an in-vehicle system according to the embodiment.
  • FIG. 3 is a diagram showing a configuration diagram of an integrated ECU in the embodiment.
  • FIG. 4 is a diagram showing details of a configuration diagram of the integrated ECU in the embodiment.
  • FIG. 5 is a diagram showing a configuration diagram of an external application according to the embodiment.
  • FIG. 6 is a diagram showing a configuration diagram of a control application according to the embodiment.
  • FIG. 7 is a diagram showing a configuration diagram of a video application in the embodiment.
  • FIG. 8 is a diagram showing a configuration diagram of an external virtual machine in the embodiment.
  • FIG. 1 is a diagram showing an overall configuration diagram of a monitoring system according to an embodiment.
  • FIG. 2 is a diagram showing a configuration diagram of an in-vehicle system according to the embodiment.
  • FIG. 3 is a diagram showing
  • FIG. 9 is a diagram showing a configuration diagram of a control virtual machine in the embodiment.
  • FIG. 10 is a diagram showing a configuration diagram of a video virtual machine according to the embodiment.
  • FIG. 11 is a block diagram of a hypervisor according to the embodiment.
  • FIG. 12 is a diagram showing a configuration diagram of a secure application according to the embodiment.
  • FIG. 13 is a block diagram of a monitoring server according to the embodiment; 14 is a diagram illustrating an example of monitoring information according to the embodiment;
  • FIG. 15 is a diagram illustrating an example of monitoring information according to the embodiment;
  • FIG. 18 is a diagram illustrating an example of a monitoring configuration according to the embodiment
  • FIG. 19 is a diagram illustrating an example of a monitoring configuration according to the embodiment
  • FIG. FIG. 20 is a diagram illustrating an example of a monitoring configuration according to the embodiment
  • FIG. 21 is a diagram illustrating an example of a monitoring change rule according to the embodiment
  • FIG. 22 is a diagram illustrating an example of a monitor result display according to the embodiment
  • FIG. 23 is a diagram illustrating an example of a monitor result display according to the embodiment
  • 24 is a diagram illustrating a sequence of monitoring processing by an application monitoring unit in the embodiment
  • FIG. 25 is a diagram illustrating a sequence of monitoring processing by a VM monitoring unit in the embodiment
  • FIG. 26 is a diagram illustrating a sequence of monitoring processing by the HV monitoring unit in the embodiment
  • 27 is a diagram illustrating a sequence of monitoring processing by an SA monitoring unit in the embodiment
  • FIG. 28 is a diagram illustrating a sequence of monitoring server notification processing in the embodiment
  • FIG. 29 is a diagram illustrating a sequence of processing for changing monitoring from a management unit in the embodiment
  • FIG. 30 is a diagram showing a flowchart of monitoring processing in the embodiment.
  • 31 is a diagram depicting a flowchart of monitoring change processing in the embodiment
  • FIG. 32 is a diagram showing a detailed modified example 1 of the configuration of the integrated ECU in the embodiment.
  • FIG. 33 is a diagram showing Modification 2 of the details of the configuration diagram of the integrated ECU in the embodiment.
  • ECUs Electronic Control Units
  • hypervisor software serving as a virtualization platform for operating a plurality of virtual machines
  • Patent Document 1 a monitoring virtual machine and a virtual machine to be monitored are arranged on virtual software, and the monitoring target is monitored from the monitoring virtual machine, so that an abnormality in the monitoring target is detected. It describes how to detect it.
  • IVI In-Vehicle Infotainment
  • ADAS Advanced System
  • Driver Assistance System into one ECU, if a third party's malicious application tampered with the memory area related to the ADAS control method, there is a risk of hindering the driving of the vehicle.
  • Patent Literature 1 can detect an abnormality in the monitoring target if the monitoring virtual machine has not been tampered with, but if the monitoring virtual machine itself has been tampered with by a third party's malicious application. In such a case, there is a problem that anomalies cannot be detected.
  • a monitoring device includes three or more monitoring units each monitoring at least one of software and a communication log, wherein the three or more monitoring units , a first monitoring unit that operates with a first execution authority, a second monitoring unit that operates with a second execution authority that is less reliable than the first execution authority, and the second execution authority a third monitoring unit that has the same authority and reliability or operates with a third execution authority that is lower in reliability than the second execution authority, wherein the first monitoring unit operates with the second and at least one of the first monitoring unit and the second monitoring unit monitors the software of the third monitoring unit.
  • the active monitoring unit has the advantage of being able to employ sophisticated and complex algorithms.
  • the three or more monitoring units include four or more monitoring units, and the four or more monitoring units are the first monitoring unit, the second monitoring unit, the third monitoring unit, a fourth monitoring unit that operates with a fourth execution authority that has the same reliability as the third execution authority or that has lower reliability than the third execution authority, , the second monitoring unit, and the third monitoring unit may monitor software of the fourth monitoring unit.
  • the active monitoring unit has the advantage of being able to employ sophisticated and complex algorithms.
  • the monitoring device operates on a secure application, a virtual software platform, and one or more virtual machines
  • the first execution authority includes execution authority for the secure application, execution authority for the virtual software infrastructure, and one of virtual machine kernel execution rights, wherein the second execution right is one of the virtual software infrastructure execution rights, the virtual machine kernel execution rights, and the virtual machine user rights
  • the third execution authority is one of kernel execution authority of the virtual machine and user authority of the virtual machine
  • execution authority of the secure application is execution authority of the virtual software platform the virtual software infrastructure execution authority is more reliable than the virtual machine kernel execution authority, and the virtual machine kernel execution authority is more reliable than the virtual machine user authority can be higher.
  • communication logs such as software in the user space of the virtual machine, network logs in the user space of the virtual machine, and system calls between the user space and the kernel space of the virtual machine Since it can be assumed that acquisition is difficult, separating the monitoring units for each execution authority has the effect of enabling monitoring of a wider range of monitoring targets.
  • software that operates with secure app execution privileges, hypervisor execution privileges, and virtual machine kernel privileges is implemented with a simple algorithm that does not include vulnerabilities, monitoring that operates with strong execution privileges A simple algorithm can be adopted for the part, and an advanced and complicated algorithm can be adopted for the monitoring part which operates with weak execution authority.
  • the monitoring device operates on a virtual software platform and two or more virtual machines.
  • the monitoring unit of the first virtual machine among the two or more monitoring units operating with the execution authority includes the software of the monitoring unit of the second virtual machine among the two or more monitoring units as a monitoring target;
  • the two or more virtual machines may be classified into either the first virtual machine or the second virtual machine according to the possibility of being tampered with by an attacker.
  • virtual machines with vehicle control functions are isolated from the external network, and it can be assumed that secure design and implementation have been fully considered to meet the requirements of a high functional safety level. can be treated as a reliable first virtual machine.
  • the monitoring unit of the second monitoring machine which has a high tampering risk, must be monitored from the execution authority of the secure application or hypervisor. Since the monitoring unit of the second monitoring machine can be monitored from the second monitoring unit, there is an effect of simplifying the software that operates with the execution authority of the secure application and the execution authority of the hypervisor.
  • the monitoring device operates on a secure application, a host operating system, one or more virtual software platforms, and one or more virtual machines, or one or more container virtualization platforms and two or more containers,
  • the first execution authority, the second execution authority, the third execution authority, and the fourth execution authority are a secure application execution authority, a host operating system execution authority, and a virtual software execution authority.
  • the monitoring unit of the first virtual machine among the two or more monitoring units of the two or more virtual machines operating with the same execution authority monitors the two or more of the two or more virtual machines
  • the software of the monitoring unit of the second virtual machine among the units is included in the monitoring target, and the two or more virtual machines are the first virtual machine and the second virtual machine according to the possibility of being tampered with by an attacker.
  • the monitoring unit of the first container includes software of the monitoring unit of the second container among the two or more monitoring units of the two or more containers as a monitoring target, and the two or more containers are tampered with by an attacker. It may be classified into either the first container or the second container according to the possibility of being executed.
  • the host operating system uses a hypervisor, which is a virtual software platform, to run and manage multiple virtual machines.
  • a hypervisor which is a virtual software platform, to run and manage multiple virtual machines.
  • the reliability of virtual machines or containers can be assumed to differ depending on the possibility of tampering, such as the presence or absence of a connection function with an external network.
  • By building a trust chain even if the monitoring part of the second virtual machine or second container with low trust is hijacked, the monitoring part of the first virtual machine with high trust or the first There is an effect that anomalies can be detected from the monitoring part of the container.
  • each of the three or more monitoring units includes at least one of elapse of a predetermined time, elapse of a predetermined external network connection time, system startup, system restart, establishment of external network connection, and external device connection.
  • the monitoring of the monitoring target may be started according to the timing when the event occurs.
  • the monitoring unit whose integrity is verified by the front-stage monitoring unit is not a serial monitoring method that verifies the rear-stage monitoring unit.
  • the load of the monitoring process can be flexibly distributed without imposing a load on the system, such as performing the monitoring process using the idle time of the CPU of each virtual machine.
  • the monitoring device operates on an in-vehicle system, and each of the three or more monitoring units is operable to monitor elapse of a predetermined running time, elapse of a predetermined stop time, elapse of a predetermined running distance, switching of running modes, refueling or power feeding.
  • the monitoring of the monitoring target may be started in accordance with the timing at which an event including at least one of the completion of the vehicle diagnosis, the execution of the vehicle diagnosis, and the calling of an emergency alert occurs.
  • each of the three or more monitoring units performs at least one of the number of times the other monitoring units execute the monitoring process, the number of times the monitoring process is determined to be abnormal, and the number of times the monitoring process is determined to be normal.
  • the monitoring of the monitoring target may be started according to the timing when the number of times is reached.
  • the first monitoring unit monitors the software of the second monitoring unit.
  • the second monitoring unit to be monitored by the first monitoring unit detects an abnormality once
  • the first monitoring unit executes the software monitoring process of the second monitoring unit.
  • the monitoring process can be executed only when an abnormality occurs in the monitoring target of the second monitoring unit, and the number of monitoring processes can be reduced.
  • the first monitoring unit executes the software monitoring process of the second monitoring unit once.
  • the monitoring processing of the first monitoring unit can be reduced, and the number of times of monitoring processing can be reduced. This has the effect of reducing the overhead by reducing the number of times the execution mode is switched, since it is assumed that the execution mode needs to be switched in order to operate the software with strong execution authority.
  • each of the three or more monitoring units includes at least one of a hash value, a mask value, and a copy value of the monitoring target software stored in a memory or storage. acquires two pieces of information as acquired values, compares the expected value, which is a predefined correct value, with the acquired value, and determines that the software is normal when the expected value and the acquired value match. Then, it may be determined that the software is abnormal when the expected value and the acquired value do not match.
  • the software is tampered with, the expected value and the obtained value will differ, so it has the effect of being able to determine whether the software has been tampered with.
  • a hash value it is possible to determine falsification more efficiently than a duplicate value, and by using a mask value, it is possible to determine the presence or absence of falsification more efficiently than a duplicate value.
  • the duplicate value it is possible to determine falsification more accurately than the hash value, and by using the mask value, it is possible to determine falsification more accurately than the hash value.
  • the software includes a combination of virtual software platform programs and configuration files, a combination of virtual machine kernel programs and configuration files, a combination of user application programs and configuration files on virtual machines, and the three or more monitoring and at least one combination of each program and configuration file combination of the parts.
  • each of the three or more monitoring units obtains a communication log when the monitoring target is a communication log, and uses at least one of a permission list, a rejection list, and normal statistical information. (i) determining that the communication log is normal if it is included in the permission list, and determining that the communication log is abnormal if it is not included in the permission list; (ii) a second determination of determining that the communication log is normal if it is not included in the rejection list, and determining that the communication log is abnormal if it is included in the rejection list; iii) determining that the communication log is normal when the statistical information does not deviate from the normal state, and determining that the communication log is abnormal when the statistical information deviates from the normal state; Any one of three judgments may be made.
  • the communication log may include at least one of Ethernet, CAN protocol, FlexRay protocol, SOME/IP protocol, SOME/IP-SD protocol, system call, and hypercall.
  • the network protocol installed in the in-vehicle system it is possible to determine communication abnormalities using protocol-specific parameters. Furthermore, the sender and destination can be acquired from the communication log determined to be abnormal, and there is an effect that the monitoring unit and the monitoring target in which the abnormality may occur can be specified. Furthermore, by monitoring system calls and hypercalls, which are privileged instructions, it is possible to determine anomalies that occur at the boundaries of execution rights, and to identify a monitoring unit and a monitoring target that may cause anomalies.
  • each of the three or more monitoring units selects one of the monitoring frequency of the monitoring target, the verification method of the monitoring target, and the selection method of the monitoring target according to the priority set for each of the monitoring targets. At least one may be changed.
  • the priority includes execution authority of the monitoring target, whether or not one of the three or more monitoring units or a virtual machine on which the monitoring operates has an external network connection function, and whether or not the one monitoring unit operates. It may be set according to at least one of whether or not the monitoring unit or the virtual machine on which the monitoring operates has a vehicle control function.
  • the monitoring device further has a monitoring configuration that is a combination of the priority included in the monitoring information, and the person in charge of monitoring and the monitoring target included in the monitoring target, according to the state or event of the system in which the monitoring device operates. and a management unit that changes at least one of
  • monitoring information As a result, if the importance of monitoring targets differs depending on the system state or event, it can be assumed that it is difficult to set the monitoring information as an appropriate fixed value.
  • By flexibly changing the monitoring configuration effective monitoring is possible. For example, by flexibly changing the priority and changing the monitoring frequency, monitoring accuracy, and monitoring method according to the priority, it is possible to focus on monitoring targets with high tampering risk within limited resources. effective.
  • by changing the monitoring information so that when one of the monitoring modules becomes inoperable, such as when one of the virtual machines is restarted, the monitoring of the other monitoring modules that cannot operate can be taken over. It has the effect of continuously monitoring the target.
  • another monitoring unit takes over the monitoring of the monitoring target, so that there is an effect that the monitoring target can be monitored from a reliable monitoring unit.
  • another monitoring unit additionally performs monitoring of the monitoring target, so that there is an effect that monitoring can be strengthened by a plurality of monitoring units.
  • another monitoring unit takes over the monitoring of the monitoring target, thereby reducing the system impact due to resource pressure.
  • the management unit determines whether or not an external network connection is being established, whether or not an external network connection establishment event has occurred, the system status of the monitoring machine, the monitoring result of the monitoring unit, and the execution authority of the monitoring unit that has detected an abnormality.
  • the priority may be changed according to at least one of the execution authority of the software that detected the abnormality and the destination or source of the communication log that detected the abnormality.
  • the state of network connections affects the possibility of attack, so it has the effect of changing the priority according to changes in the attack possibility of the monitored target.
  • a software error it is assumed that there is a high possibility that an attack will occur in the same virtual machine software as the error software, software that operates with the same execution privileges, or software in the monitoring unit that has determined the error. Therefore, there is an effect that the priority can be changed according to the change of attack possibility.
  • a communication abnormality is determined, there is a high possibility that an abnormality has occurred at the transmission source of the communication, and there is a high possibility that an attack will develop on the transmission destination of the communication. There is an effect that can change the degree.
  • the monitoring device operates on an in-vehicle system
  • the management unit changes the priority of a monitoring target operated by a virtual machine having a vehicle control function according to the running state of the vehicle.
  • the state may be any one of stopped, manual driving, advanced driving assistance, and automatic driving.
  • control commands related to running, turning, and stopping of the vehicle are sent from the control virtual machine software, which controls the engine, steering, braking, etc. Since it can be assumed that the control ECU follows the control command and the influence of software falsification is large, there is an effect that the software of the control virtual machine having the vehicle control function can be monitored intensively by raising the priority thereof. On the other hand, when the vehicle is stopped or manually driven, it can be assumed that the control ECU does not follow control commands, and the influence of software tampering is small. By lowering the degree, there is an effect that priority can be given to monitoring processing of other monitoring targets.
  • the management unit establishes a monitoring trust chain in which the software of the monitoring unit with low reliability is monitored by the monitoring unit with higher reliability than the monitoring unit with low reliability. You may change the monitoring configuration so that it can be built.
  • the management unit determines whether or not an external network connection is being established, whether or not an external network connection establishment event has occurred, the system state of the virtual machine, the monitoring result of the monitoring unit, and the execution authority of the monitoring unit that has detected an abnormality.
  • the monitoring configuration may be changed according to at least one of the execution authority of the software that detected the abnormality and the destination or source of the communication log that detected the abnormality.
  • the status of network connections affects the possibility of attacks, so it has the effect of changing the monitoring configuration according to changes in the attack potential of the monitored target.
  • another monitoring unit takes over the monitoring of the monitored object, which has the effect of enabling continuous monitoring of the monitored object. be.
  • another monitoring unit takes over the monitoring of the monitoring target, so that there is an effect that the monitoring target can be monitored from a reliable monitoring unit.
  • another monitoring unit additionally performs monitoring of the monitoring target, so that there is an effect that monitoring can be strengthened by a plurality of monitoring units.
  • the CPU or memory resources of one virtual machine are under pressure, another monitoring unit takes over the monitoring of the monitored object, thereby reducing the system impact due to resource pressure.
  • the monitoring device operates on an in-vehicle system
  • the management unit changes a monitoring configuration related to a virtual machine having a vehicle control function according to the running state of the vehicle, and the running state of the vehicle changes , during stop, during manual operation, during advanced driving assistance, or during automatic operation.
  • control commands related to running, turning, and stopping of the vehicle are sent from the control virtual machine software, which controls the engine, steering, braking, etc. Since it can be assumed that the control ECU follows the control command and the influence of software tampering is large, there is an effect that the monitoring configuration can be changed so that the software of the control virtual machine is monitored by a plurality of monitoring units. When the vehicle is stopped or manually driven, it can be assumed that the control ECU does not follow the control command, and the influence of software tampering is small. be.
  • the management unit includes (i) means for selecting one from two or more predefined monitoring configurations; (iii) means for storing the monitoring configuration as a directed graph with the end point of the road, and reconstructing the directed graph by a predetermined algorithm;
  • the monitoring configuration may be changed by at least one of means for storing the monitoring configuration as a tree structure whose object is a child node, and reconstructing the tree structure using a predetermined algorithm.
  • the management unit stores the monitoring configuration as a tree structure in which the monitoring unit is a node, the person in charge of monitoring is a parent node, and the monitoring target is a child node, and reconstructs the tree structure using a predetermined algorithm, A monitoring device for changing the monitoring configuration.
  • At least one of the monitoring units will select the monitoring target when some of the monitoring units are disabled or an abnormality is detected in some of the monitoring units. This has the effect of making it possible to recalculate the monitoring configuration so that it can be monitored.
  • the monitoring device may further include a monitoring server communication unit that notifies the monitoring server of the monitoring result.
  • a monitoring system is a monitoring system including a monitoring device and a monitoring server, wherein each of the monitoring devices monitors at least one of software and a communication log as a monitoring target.
  • the three or more monitoring units are a first monitoring unit that operates with a first execution authority, and a second monitoring unit that operates with a second execution authority that is less reliable than the first execution authority.
  • a third monitoring unit that operates with a third execution authority that has the same reliability as the second execution authority or that has lower reliability than the second execution authority, The unit monitors the software of the second monitoring unit, at least one of the first monitoring unit and the second monitoring unit monitors the software of the third monitoring unit, and the monitoring server is and a monitoring result display unit for receiving the monitoring result and displaying the monitoring result on a graphical user interface.
  • the monitoring result display unit displays the monitoring results in association with the system architecture, means for emphasizing the monitoring unit that has detected an abnormality or the monitoring target in which the abnormality has been detected, and the monitoring results in association with a predetermined timeline. and emphasizing the normality determination time or the abnormality determination time on the graphical user interface.
  • the security analyst can intuitively grasp the location of the monitoring department, the location of the monitored object, and the monitoring results. be.
  • security analysts can intuitively grasp the time series of monitoring results, and in the event of an anomaly, there is an effect that they can more quickly consider countermeasures such as updating software.
  • the monitoring server further changes at least one monitoring information among the monitoring target, a monitoring unit that monitors the monitoring target, the priority of the monitoring target, and a monitoring method corresponding to the priority. and requesting the monitoring device to make the change, and the monitoring device further comprises a monitoring information updating unit for updating the monitoring information in response to a request from the monitoring information changing unit. good.
  • a monitoring method is a monitoring method executed by a monitoring device including three or more monitoring units, wherein the three or more monitoring units operate with a first execution authority.
  • the active monitoring unit has the advantage of being able to employ sophisticated and complex algorithms.
  • FIG. 1 is an overall configuration diagram of a monitoring system according to an embodiment.
  • the monitoring system includes a monitoring server 10 and an in-vehicle system 20.
  • the monitoring server 10 and the in-vehicle system 20 are connected via an external network 30 .
  • the external network 30 is, for example, the Internet.
  • the communication method of the external network 30 may be wired or wireless.
  • the wireless communication system may be Wi-Fi (registered trademark), which is an existing technology, 3G/LTE (Long Term Evolution), Bluetooth (registered trademark), or V2X communication system.
  • the monitoring server 10 is a device that acquires monitoring results, which are information about the security status of the in-vehicle system 20, from the in-vehicle system 20 and displays the monitoring results using a graphical user interface.
  • the monitoring server 10 is used, for example, at a security operation center when a security analyst checks the monitoring results and considers countermeasures such as software update when an abnormality occurs in the in-vehicle system 20 .
  • the in-vehicle system 20 is a device that performs communication control, vehicle control, image output, etc., monitors the security status of the in-vehicle system 20, and notifies the monitoring server 10 of the security status monitoring results. Although only one in-vehicle system 20 is shown in FIG. 1 , each of the one or more in-vehicle systems 20 transmits the security status monitoring result to the monitoring server 10 . Details of the in-vehicle system 20 will be described later.
  • FIG. 2 is a diagram showing a configuration diagram of an in-vehicle system according to the embodiment.
  • the in-vehicle system 20 includes an integrated ECU 200, a gateway ECU 300, a steering ECU 400a, a brake ECU 400b, a zone ECU 500, a front camera ECU 600a, and a rear camera ECU 600b.
  • the integrated ECU 200 and the gateway ECU 300 are connected via a CAN 40, which is a kind of network protocol CAN (Control Area Network).
  • CAN Controller Area Network
  • the network protocol used here is not limited to CAN, and may be a network protocol used in an in-vehicle system such as CAN-FD or FlexRay protocol.
  • gateway ECU 300 the steering ECU 400a, and the brake ECU 400b are connected via the CAN 41.
  • Ethernet 50 is a protocol of Ethernet (registered trademark), which is a kind of network protocol.
  • Ethernet 50 is, for example, SOME/IP (Scalable Service-Oriented Middleware over IP) protocol.
  • SOME/IP Scalable Service-Oriented Middleware over IP
  • the network protocol used here may not be SOME/IP, but may be SOME/IP-SD, CAN-XL, or other network protocol used in an in-vehicle system.
  • Ethernet 51 may be of the same network protocol as Ethernet 50, or may be of a different network protocol.
  • the integrated ECU 200 and the monitoring server 10 are connected via an external network 30 .
  • the integrated ECU 200 performs communication control for transmitting and receiving messages via the external network 30, the CAN 40, and the Ethernet 50, vehicle control for instructing the gateway ECU 300 and the ZoneECU 500 to control the vehicle via the CAN 40 and the Ethernet 50, and an infotainment system and an instrument. It is an ECU that performs video output to the management panel. Also, the integrated ECU 200 is an ECU that monitors the security state of the integrated ECU 200 and notifies the monitoring server 10 of the monitoring results. Details of the integrated ECU 200 will be described later.
  • the gateway ECU 300 is an ECU that mediates messages sent and received between the integrated ECU 200 and the steering ECU 400a and the brake ECU 400b.
  • the steering ECU 400a is an ECU that controls steering by a steering wheel mounted on the vehicle.
  • the brake ECU 400b is an ECU that controls the brakes mounted on the vehicle.
  • the in-vehicle system 20 realizes control such as running, turning, and stopping of the vehicle using ECUs that control the engine and body of the vehicle in addition to the steering ECU 400a and the brake ECU 400b.
  • the ZoneECU 500 is an ECU that mediates messages exchanged between the integrated ECU 200 and the front camera ECU 600a and the rear camera ECU 600b.
  • the front camera ECU 600a is an ECU that is mounted in front of the vehicle and acquires the image of the camera that captures the front of the vehicle.
  • the rear camera ECU 600b is an ECU that is mounted at the rear of the vehicle and acquires images from a camera that captures the rear of the vehicle.
  • FIG. 3 is a configuration diagram of the integrated ECU 200 in the embodiment.
  • the integrated ECU 200 includes an external application A100, a control application A200, a video application A300, an external virtual machine VM100, a control virtual machine VM200, a video virtual machine VM300, a hypervisor HV100, a secure application SA100, and a secure operating system. and an SOS 100.
  • the external application A100, the control application A200, and the video application A300 may be collectively referred to as applications.
  • the external virtual machine VM100, the control virtual machine VM200, and the video virtual machine VM300 may be collectively referred to as virtual machines.
  • Integrated ECU 200 is an example of a monitoring device.
  • the hypervisor HV100 is a virtual software platform such as a hypervisor, and is software that executes and manages one or more virtual machines.
  • hypervisors are classified into a bare metal type hypervisor called type 1 and a host type called type 2.
  • type 1 is generally used in consideration of processing overhead by the hypervisor.
  • Type 1 hypervisors are less likely to contain vulnerabilities due to their smaller code size, and can be assumed to be more reliable than applications and virtual machines.
  • the virtualization system is implemented by a type 1 hypervisor
  • the virtualization system may be implemented by a type 2 hypervisor, or by a container-type virtualization application. may be
  • the secure operating system SOS100 is a reliable operating system implemented without vulnerabilities. Furthermore, since the operating system software is verified from the Root Of Trust of reliable hardware at system startup, it can be assumed to be the most reliable among the applications, virtual machines, and hypervisor HV100.
  • the secure operating system SOS 100 is realized, for example, by controlling an execution environment called TEE (Trusted Execution Environment).
  • TEE Trusted Execution Environment
  • the secure operating system SOS 100 can be realized, for example, by the TrustZone mechanism, which is one of the standard functions in the Cortex-A family of ARM-based CPUs (Central Processing Units).
  • the secure operating system SOS 100 can also be realized by Apple's SEP (Secure Enclave Processor) or Google's TitanM.
  • the secure application SA100 is a reliable application that is implemented without vulnerabilities. Since the secure application SA100 runs on a reliable secure operating system SOS100, it can be assumed to be more reliable than the application, virtual machine, and hypervisor HV100. On the other hand, since secure application SA100 is required to be implemented without vulnerability, the program of secure application SA100 is required to be simple.
  • the external application A100 is an application that communicates with the monitoring server 10 via the external network 30. Since the external application A100 is connected to the external network 30 that can serve as an entry point for attackers, it can be assumed to be more vulnerable than the control application A200 and the video application A300 that are not connected to the external network 30 .
  • the external virtual machine VM100 is an operating system that runs the external application A100. Since the external virtual machine VM100 runs the external application A100 that can serve as an entry point for attackers, it can be assumed to be more vulnerable than the control virtual machine VM200 and the video virtual machine VM300.
  • the control application A200 is an application that communicates with the gateway ECU 300 via the CAN 40 and controls operations related to running of the vehicle equipped with the in-vehicle system 20 . Since the control application A200 is not connected to the external network 30, it can be assumed to be more reliable than the external application A100. Furthermore, the control application A200 is designed and implemented in a secure manner in order to comply with functional safety standards in software development related to control of operations related to running of the vehicle. Therefore, it can be assumed that the control application A200 is more reliable than the external application A100. However, if the control application A200 is hijacked, an attacker can use the function of controlling the movement of the vehicle.
  • the control virtual machine VM200 is an operating system that runs the control application A200. Since the control virtual machine VM200 is not connected to the external network 30, it can be assumed that the possibility of becoming an intrusion point for an attacker is low. Furthermore, the control virtual machine VM200 is designed and implemented in a secure manner in order to comply with functional safety standards in software development related to control of vehicle running operations. Therefore, it can be assumed that the control virtual machine VM200 is more reliable than the external application A100 or the external virtual machine VM100. However, if the control virtual machine VM200 is hijacked, the attacker can use the function of controlling the movement of the vehicle. can be assumed to be large.
  • the video application A300 is an application that communicates with ZoneECU 500 via Ethernet 50, acquires camera video, etc., and outputs video to the infotainment system, instrument panel, and head-up display. Camera images are also used as information to realize advanced driving support functions such as autonomous driving. Since the video application A300 is not connected to the external network 30, it is less likely to become an intrusion point for attackers and can be assumed to be more reliable than the external application A100. In addition, if the video application A300 is hijacked, the attacker cannot use the function for controlling the movement of the vehicle. It can be assumed that the impact is small.
  • the video virtual machine VM300 is an operating system that runs the video application A300. Since the video virtual machine VM300 is not connected to the external network 30, it is less likely to become an intrusion point for attackers and can be assumed to be more reliable than the external application A100. In addition, if the video virtual machine VM300 is hijacked, the attacker cannot use the function of controlling the motion related to the running of the vehicle. It can be assumed that the influence of
  • the CPU can assign multiple privilege levels to each program.
  • an ARM CPU corresponds to EL (Exception Level)
  • an Intel CPU corresponds to Protection Ring.
  • the CPU can securely execute a program by controlling two types of execution environments, a secure world and a normal world, using the TEE.
  • five types of execution rights are selectively used according to this privilege level and control of two types of execution environments.
  • the secure operating system SOS100 is assigned the strongest secure execution authority (PL4)
  • the application on the operating system that is, the secure application SA100
  • the next strongest secure execution authority (PL3) Assign the next strongest execution authority (PL2) to the hypervisor HV100
  • assign the next strongest execution authority (PL1) to the virtual machines that is, the external virtual machine VM100, the control virtual machine VM200, and the video virtual machine VM300
  • applications that is, the external application A100, the control application A200, and the video application A300
  • the software may be tampered with due to vulnerabilities or design flaws, so software that operates with strong execution authority is required to be a simple program.
  • the external application A100 is most likely to be tampered with, and thus has low reliability.
  • the possibility of falsification decreases in the order of the application SA100 and the secure operating system SOS100.
  • a low possibility of falsification means high reliability.
  • An attacker exploits the vulnerability of the external application A100 to intrude into the external virtual machine VM100 from the external network 30 and gain user authority. Then, by exploiting vulnerabilities such as system calls of the external virtual machine VM100, kernel privileges of the external virtual machine VM100 are acquired. Then, by exploiting the vulnerability of the hypervisor HV100 such as hypercall, the authority of the hypervisor HV100 or the authority of the control virtual machine VM200 or the video virtual machine VM300 is acquired.
  • a hypercall is, for example, a privileged instruction for instructing internal communication between virtual machines and activation and termination of virtual machines.
  • the security countermeasure mechanism includes an application monitoring unit, a virtual machine monitoring unit, a HV monitoring unit HV110, and an SA monitoring unit SA110, which will be described later.
  • functions for managing fuel, power supply status, and refueling status functions for issuing emergency alerts in the event of system abnormalities such as accidents, functions for controlling vehicle diagnosis, functions for controlling external
  • the integrated ECU 200 is equipped with a function of monitoring device connection.
  • FIG. 4 is a diagram showing details of a configuration diagram of the integrated ECU in the embodiment.
  • the external application A100 includes an application monitoring unit A110 that monitors external communication and software in the application area
  • the control application A200 includes an application monitoring unit A210 that monitors CAN communication and software in the application area
  • the video application A300 includes Ethernet communication. and the software in the application area.
  • the software in the application area is the software in the user area.
  • the application monitoring unit A110, the application monitoring unit A210, and the application monitoring unit A310 may be collectively referred to as an application monitoring unit.
  • the external virtual machine VM100 includes a VM monitoring unit VM110 that monitors system calls, hypercalls, software in the VM area (also called OS area or kernel area), and software in the application area.
  • the video virtual machine VM300 includes a VM monitoring unit VM210 that monitors hypercalls, software in the VM area (also called OS area or kernel area), and software in the application area. area) and software in the application area.
  • the VM monitoring unit VM110, the VM monitoring unit VM210, and the VM monitoring unit VM310 may be collectively referred to as virtual machine monitoring units.
  • the hypervisor HV100 also includes an HV monitoring unit HV110 that monitors software in the HV area and software in the VM area.
  • the secure application SA100 also includes an SA monitoring unit SA110 that monitors software in the HV area and software in the VM area, and a management unit SA120 that manages monitoring information.
  • the application monitoring unit, the virtual machine monitoring unit, the HV monitoring unit HV110, and the SA monitoring unit SA110 may be collectively referred to as multi-layer monitoring units. Details of the monitoring information will be described later. The details of the application, the application monitoring unit, the virtual machine, the virtual machine monitoring unit, the hypervisor HV100, the HV monitoring unit HV110, the secure application SA100, and the SA monitoring unit SA110 will be described later.
  • each of the application, virtual machine, hypervisor HV100, and secure application SA100 has security countermeasures such as an application monitoring unit, a virtual machine monitoring unit, and an HV Integrated ECU 200 having a configuration in which monitoring unit HV110 and SA monitoring unit SA110 are introduced is assumed.
  • security countermeasures such as an application monitoring unit, a virtual machine monitoring unit, and an HV Integrated ECU 200 having a configuration in which monitoring unit HV110 and SA monitoring unit SA110 are introduced is assumed.
  • an attacker can disable the security countermeasure mechanism by tampering with the software of the security countermeasure mechanism that is executed with the acquired execution authority, simply introducing the security countermeasure mechanism is insufficient.
  • a configuration can be considered in which the SA monitoring unit SA110 monitors the software of the HV monitoring unit HV110, the HV monitoring unit HV110 monitors the software of the virtual machine monitoring unit, and the virtual machine monitoring unit monitors the software of the application monitoring unit. be done.
  • the virtual machine monitoring unit can detect an abnormality
  • the software of the virtual machine monitoring unit has been tampered with
  • the HV monitoring unit HV110 can detect an abnormality
  • the SA monitor SA110 can detect an abnormality.
  • monitoring is chained from the SA monitoring unit SA110, which is reliable software, to the hypervisor HV100, virtual machines, and applications, it is difficult for an attacker to avoid all monitoring.
  • a multi-tiered supervisory chain of trust build a chain of supervisors from supervisors with stronger execution authority or higher trust to supervisors with weaker execution authority or lower trust. Call it build.
  • FIG. 5 is a diagram showing a configuration diagram of an external application according to the embodiment.
  • the external application A100 includes an external communication unit A101, an external application execution unit A102, an application area storage unit A103, and an application monitoring unit A110.
  • the external communication unit A101 communicates via the external network 30 .
  • the external application execution unit A102 acquires navigation information, acquires streaming information such as music and video, and downloads update software using external communication and system calls.
  • the application area storage unit A103 is storage and memory for storing external application programs and setting files.
  • the application monitoring unit A110 includes a monitoring target acquiring unit A111, a system state acquiring unit A112, a monitoring unit A113, a monitoring information storage unit A114, a monitoring information updating unit A115, and a monitoring result notification unit A116.
  • the monitoring target acquisition unit A111 has a function of acquiring information related to software to be monitored from the application area storage unit A103 and acquiring information related to external communication logs from the external communication unit A101.
  • the system status acquisition unit A112 has a function of acquiring the Internet connection status as the system status from the external communication unit A101 and a function of acquiring the security status as the system status from the monitoring unit A113.
  • the monitoring unit A113 compares the acquired value of the software-related information acquired by the monitoring target acquisition unit A111 with the expected value included in the monitoring information stored in the monitoring information storage unit A114, and the acquired value and the expected value are different. It has a function of judging that the information on the software is abnormal when the acquired value and the expected value match, and judging that the information on the software is normal when the acquired value and the expected value match. Furthermore, the monitoring unit A113 uses the external communication log acquired by the monitoring target acquiring unit A111 to determine whether a specific message included in the external communication log is abnormal using the permission list or the denial list and normal statistical information. It has a function to determine whether or not there is
  • the monitoring information storage unit A114 has a function of storing monitoring information including monitoring personnel, monitoring targets, expected values, and priorities.
  • the monitoring information updating unit A115 has a function of updating monitoring information in response to a request from the management unit SA120.
  • the monitoring result notification unit A116 has a function of notifying the management unit SA120 of monitoring results and system status.
  • the application monitoring unit A110 can monitor software in the application area and external communication, and acquire the Internet connection status and the security status of the external application A100. Monitoring of external communications is assumed to be a complex algorithm using statistical information.
  • FIG. 6 is a diagram showing a configuration diagram of a control application according to the embodiment.
  • the control application A200 includes a CAN communication unit A201, a control application execution unit A202, an application area storage unit A203, and an application monitoring unit A210.
  • CAN communication part A201 communicates with gateway ECU300 via CAN40.
  • the control application execution unit A202 uses CAN communication and system calls to instruct the VM 100 to control the running of the vehicle, such as running, turning, and stopping.
  • the application area storage unit A203 is a storage and memory that stores programs and setting files of control applications.
  • the application monitoring unit A210 includes a monitoring target acquiring unit A211, a system state acquiring unit A212, a monitoring unit A213, a monitoring information storage unit A214, a monitoring information updating unit A215, and a monitoring result notification unit A216.
  • the monitoring target acquisition unit A211 has a function of acquiring information on software to be monitored from the application area storage unit A203 and acquiring information on CAN communication logs from the CAN communication unit A201.
  • the system state acquisition unit A212 has a function of acquiring the state of the vehicle, such as the driving state, the distance traveled since activation, and the elapsed time since activation, as the system state from the control application execution unit A202, and the security state from the monitoring unit A213. It has a function to acquire as
  • the monitoring unit A213 compares the acquired value of the software-related information acquired by the monitoring target acquisition unit A211 with the expected value included in the monitoring information stored in the monitoring information storage unit A214, and determines that the acquired value and the expected value are different. It has a function of judging that the information on the software is abnormal when the acquired value and the expected value match, and judging that the information on the software is normal when the acquired value and the expected value match. Furthermore, the monitoring unit A213 uses the CAN communication log acquired by the monitoring target acquisition unit A211 to determine whether a specific message included in the CAN log is abnormal using the permission list or the denial list and normal statistical information. It has a function to determine whether or not
  • the monitoring information storage unit A214 has a function of storing monitoring information including monitoring personnel, monitoring targets, expected values, and priorities.
  • the monitoring information updating unit A215 has a function of updating monitoring information in response to a request from the management unit SA120.
  • the monitoring result notification unit A216 has a function of notifying the management unit SA120 of monitoring results and system status.
  • the application monitoring unit A210 can monitor software in the application area and CAN communication, and can acquire the state of the vehicle and the security state of the control application A200. It is assumed that CAN communication monitoring will be a complex algorithm with statistical information.
  • FIG. 7 is a diagram showing a configuration diagram of a video application in the embodiment.
  • the video application A300 includes an Ethernet communication unit A301, a video application execution unit A302, an application area storage unit A303, and an application monitoring unit A310.
  • Ethernet communication unit A301 communicates with ZoneECU 500 via Ethernet 50 .
  • the video application execution unit A302 uses Ethernet communication and system calls to acquire camera video and output the video to the display.
  • the application area storage unit A303 is a storage and memory that stores the video application program and setting file.
  • the application monitoring unit A310 includes a monitoring target acquisition unit A311, a system state acquisition unit A312, a monitoring unit A313, a monitoring information storage unit A314, a monitoring information updating unit A315, and a monitoring result notification unit A316.
  • the monitoring target acquisition unit A311 has a function of acquiring information on software to be monitored from the application area storage unit A303 and information on Ethernet communication logs from the Ethernet communication unit A301.
  • the system status acquisition unit A312 has a function of acquiring the security status as the system status from the monitoring unit A313.
  • the monitoring unit A313 compares the acquired value of the software-related information acquired by the monitoring target acquiring unit A311 with the expected value included in the monitoring information stored in the monitoring information storage unit A314, and the acquired value and the expected value are different. It has a function of judging that the information on the software is abnormal when the acquired value and the expected value match, and judging that the information on the software is normal when the acquired value and the expected value match. Furthermore, the Ethernet communication log acquired by the monitoring target acquiring unit A311 is used to determine whether or not a specific message included in the Ethernet communication log is abnormal using the permission list or the denial list and normal statistical information. It has a judgment function.
  • the monitoring information storage unit A314 has a function of storing monitoring information including monitoring personnel, monitoring targets, expected values, and priorities.
  • the monitoring information updating unit A315 has a function of updating monitoring information in response to a request from the management unit SA120.
  • the monitoring result notification unit A316 has a function of notifying the management unit SA120 of monitoring results and system status.
  • the application monitoring unit A310 can monitor software and Ethernet communication in the application area, and acquire the security status of the video application A300.
  • Ethernet communication monitoring is assumed to be a complex algorithm with statistical information.
  • FIG. 8 is a diagram showing a configuration diagram of an external virtual machine in the embodiment.
  • the external virtual machine VM100 includes an application communication unit VM101, a system call control unit VM102, a VM area storage unit VM103, a hypercall calling unit VM104, and a VM monitoring unit VM110.
  • the application communication unit VM101 receives system calls from the external application execution unit A102.
  • the system call control unit VM102 executes system calls.
  • the VM area storage unit VM103 is a storage and memory that stores programs of the external virtual machine VM100, middleware, and setting files.
  • a hypercall calling unit VM 104 calls a hypercall.
  • the VM monitoring unit VM110 includes a monitoring target acquisition unit VM111, a system state acquisition unit VM112, a monitoring unit VM113, a monitoring information storage unit VM114, a monitoring information update unit VM115, and a monitoring result notification unit VM116.
  • the monitoring target acquisition unit VM111 has a function of acquiring information on software to be monitored from the VM area storage unit VM103 and the application area storage unit A103, and acquiring information on system calls from the application communication unit VM101.
  • the system state acquisition unit VM112 has a function of acquiring the security state from the monitoring unit VM113 as the system state.
  • the monitoring unit VM113 compares the acquired value of the software-related information acquired by the monitoring target acquisition unit VM111 with the expected value included in the monitoring information stored by the monitoring information storage unit VM114, and the acquired value and the expected value are different. It has a function of judging that the information on the software is abnormal when the acquired value and the expected value match, and judging that the information on the software is normal when the acquired value and the expected value match. Furthermore, the monitoring unit VM 113 uses the system call log acquired by the monitoring target acquisition unit VM 111 to check whether a specific system call contained in the system call log It has a function to determine whether or not
  • the monitoring information storage unit VM 114 has a function of storing monitoring information including monitoring personnel, monitoring targets, expected values, and priorities.
  • the monitoring information update unit VM115 has a function of updating monitoring information in response to a request from the management unit SA120.
  • the monitoring result notification unit VM116 has a function of notifying the management unit SA120 of the monitoring result and system status.
  • the VM monitoring unit VM110 can monitor software and system calls in the application area and VM area, and can acquire the security status of the external virtual machine VM100 and the external application A100.
  • System call monitoring is assumed to be a complex algorithm with statistical information.
  • FIG. 9 is a diagram showing a configuration diagram of a control virtual machine in the embodiment.
  • the control virtual machine VM200 includes an application communication unit VM201, a system call control unit VM202, a VM area storage unit VM203, a hypercall calling unit VM204, and a VM monitoring unit VM210.
  • the application communication unit VM201 receives a system call from the control application execution unit A202.
  • the system call control unit VM202 executes system calls.
  • the VM area storage unit VM203 is a storage and memory that stores programs of the control virtual machine VM200, middleware, and setting files.
  • a hypercall calling unit VM 204 calls a hypercall.
  • the VM monitoring unit VM210 includes a monitoring target acquisition unit VM211, a system state acquisition unit VM212, a monitoring unit VM213, a monitoring information storage unit VM214, a monitoring information update unit VM215, and a monitoring result notification unit VM216.
  • the monitoring target acquisition unit VM211 has a function of acquiring information on software to be monitored from the VM area storage unit VM203 and the application area storage unit A103, and acquiring information on system calls from the application communication unit VM201. It has a function of acquiring information about a hypercall from the hypercall control unit HV102.
  • the system state acquisition unit VM212 has a function of acquiring the security state from the monitoring unit VM213 as the system state.
  • the monitoring unit VM213 compares the acquired value of the software-related information acquired by the monitoring target acquiring unit VM211 with the expected value included in the monitoring information stored by the monitoring information storage unit VM214, and the acquired value and the expected value are different. It has a function of judging that the information on the software is abnormal when the acquired value and the expected value match, and judging that the information on the software is normal when the acquired value and the expected value match.
  • the monitoring unit VM 213 uses the system call log acquired by the monitoring target acquisition unit VM 211 to check whether a specific system call included in the system call log It has a function to determine whether or not Furthermore, the monitoring unit VM213 uses the hypercall log acquired by the monitoring target acquiring unit VM211 to check whether a specific hypercall contained in the hypercall log is abnormal by using the permission list or the denial list and normal statistical information. It has a function to determine whether or not
  • the monitoring information storage unit VM 214 has a function of storing monitoring information including monitoring personnel, monitoring targets, expected values, and priorities.
  • the monitoring information update unit VM215 has a function of updating monitoring information in response to a request from the management unit SA120.
  • the monitoring result notification unit VM216 has a function of notifying the management unit SA120 of the monitoring result and system status.
  • the VM monitoring unit VM210 can monitor software, system calls, and hypercalls in the application area and VM area, and can acquire the security status of the control virtual machine VM200 and the control application A200. Monitoring of system calls and hypercalls is assumed to be a complex algorithm using statistical information.
  • hypercall monitoring is performed by the control virtual machine VM200, it may be performed by the hypervisor HV100.
  • FIG. 10 is a diagram showing a configuration diagram of a video virtual machine according to the embodiment.
  • the video virtual machine VM300 includes an application communication unit VM301, a system call control unit VM302, a VM area storage unit VM303, a hypercall calling unit VM304, and a VM monitoring unit VM310.
  • the application communication unit VM301 receives a system call from the video application execution unit A302.
  • the system call control unit VM302 executes system calls.
  • the VM area storage unit VM303 is storage and memory for storing the program of the video virtual machine VM300, middleware, and setting files.
  • a hypercall calling unit VM 304 calls a hypercall.
  • the VM monitoring unit VM310 includes a monitoring target acquisition unit VM311, a system state acquisition unit VM312, a monitoring unit VM313, a monitoring information storage unit VM314, a monitoring information update unit VM315, and a monitoring result notification unit VM316.
  • the monitoring target acquisition unit VM311 has a function of acquiring information on software to be monitored from the VM area storage unit VM303 and the application area storage unit A303, and acquiring information on system calls from the application communication unit VM301.
  • the system state acquisition unit VM312 has a function of acquiring the security state from the monitoring unit VM313 as the system state.
  • the monitoring unit VM313 compares the acquired value of the software-related information acquired by the monitoring target acquisition unit VM311 with the expected value included in the monitoring information stored by the monitoring information storage unit VM314, and the acquired value and the expected value are different. It has a function of judging that the information on the software is abnormal when the acquired value and the expected value match, and judging that the information on the software is normal when the acquired value and the expected value match. Furthermore, the monitoring unit VM 313 uses the system call log acquired by the monitoring target acquisition unit VM 311 to detect whether a specific system call included in the system call log is abnormal using the allow list or the deny list and normal statistical information. It has a function to determine whether or not
  • the monitoring information storage unit VM 314 has a function of storing monitoring information including monitoring personnel, monitoring targets, expected values, and priorities.
  • the monitoring information update unit VM315 has a function of updating monitoring information in response to a request from the management unit SA120.
  • the monitoring result notification unit VM316 has a function of notifying the management unit SA120 of the monitoring result and system status.
  • the VM monitoring unit VM310 can monitor software and system calls in the application area and VM area, and can acquire the security status of the video virtual machine VM300 and the video application A300.
  • System call monitoring is assumed to be a complex algorithm with statistical information.
  • FIG. 11 is a block diagram of a hypervisor according to the embodiment.
  • the hypervisor HV100 includes a virtual machine communication unit HV101, a hypercall control unit HV102, an HV area storage unit HV103, and an HV monitoring unit HV110.
  • the virtual machine communication unit HV101 receives hypercalls from the hypercall calling units VM104, VM204, and VM304.
  • the hypercall control unit HV102 executes hypercalls.
  • the HV area storage unit HV103 is a storage and memory that stores programs of the hypervisor HV100 and setting files.
  • the HV monitoring unit HV110 includes a monitoring target acquiring unit HV111, a system state acquiring unit HV112, a monitoring unit HV113, a monitoring information storage unit HV114, a monitoring information updating unit HV115, and a monitoring result notification unit HV116.
  • the monitoring target acquisition unit HV111 has a function of acquiring information about software to be monitored from the HV area storage unit HV103, the VM area storage unit VM103, the VM area storage unit VM203, and the VM area storage unit VM303.
  • the system state acquisition unit HV112 has a function of acquiring the system state of the virtual machine, the CPU utilization rate, the memory utilization rate, and the security state from the monitoring unit HV113 as the system state.
  • the monitoring unit HV113 compares the acquired value of the software-related information acquired by the monitoring target acquisition unit HV111 with the expected value included in the monitoring information stored in the monitoring information storage unit HV114, and finds that the acquired value and the expected value are different. It has a function of judging that the information on the software is abnormal when the acquired value and the expected value match, and judging that the information on the software is normal when the acquired value and the expected value match.
  • the monitoring information storage unit HV114 has a function of storing monitoring information including monitoring personnel, monitoring targets, expected values, and priorities.
  • the monitoring information update unit HV115 has a function of updating monitoring information in response to a request from the management unit SA120.
  • the monitoring result notification unit HV116 has a function of notifying the management unit SA120 of monitoring results and system status.
  • the HV monitoring unit HV110 can monitor the external virtual machine VM100, the control virtual machine VM200, the video virtual machine VM300, and the software in the HV area. Can get state and security state.
  • FIG. 12 is a diagram showing a configuration diagram of a secure application according to the embodiment.
  • the secure application SA100 comprises an SA monitoring part SA110 and a management part SA120.
  • the SA monitoring unit SA110 includes a monitoring target acquiring unit SA111, a system state acquiring unit SA112, a monitoring unit SA113, a monitoring information storage unit SA114, a monitoring information updating unit SA115, and a monitoring result notification unit SA116.
  • the monitoring target acquisition unit SA111 has a function of acquiring information about software to be monitored from the HV area storage unit HV103, the VM area storage unit VM103, the VM area storage unit VM203, and the VM area storage unit VM303.
  • the system state acquisition unit SA112 has a function of acquiring the security state from the monitoring unit SA113 as the system state.
  • the monitoring unit SA113 compares the acquired value of the software-related information acquired by the monitoring target acquisition unit SA111 with the expected value included in the monitoring information stored in the monitoring information storage unit SA114, and determines that the acquired value is different from the expected value. It has a function of judging that the information on the software is abnormal when the acquired value and the expected value match, and judging that the information on the software is normal when the acquired value and the expected value match.
  • the monitoring information storage unit SA114 has a function of storing monitoring information including monitoring personnel, monitoring targets, expected values, and priorities.
  • the monitoring information updating unit SA115 has a function of updating monitoring information in response to a request from the management unit SA120.
  • the monitoring result notification unit SA116 has a function of notifying the management unit SA120 of the monitoring result and system status.
  • the management unit SA120 includes a monitoring result acquisition unit SA121, a system state acquisition unit SA122, a monitoring configuration storage unit SA123, a monitoring change rule storage unit SA124, a monitoring information change unit SA125, and a monitoring server communication unit SA126.
  • the monitoring result acquisition unit SA121 has a function of receiving monitoring results from the monitoring result notification units A116, A216, A316, VM116, VM216, VM316, HV116, and SA116.
  • the system state acquisition unit SA122 has a function of receiving system states from the monitoring result notification units A116, A216, A316, VM116, VM216, VM316, HV116, and SA116.
  • the monitoring configuration storage unit SA123 has a function of storing a monitoring configuration including trust chain configuration patterns of multiple multilayer monitoring units.
  • the monitoring change rule storage unit SA124 has a function of storing monitoring change rules including rules for changing the priority and monitoring configuration included in the monitoring information according to the system state.
  • the monitoring information changing unit SA125 has a function of requesting the monitoring information updating unit SA115 to change the monitoring information.
  • the monitoring server communication unit SA126 has a function of notifying the monitoring result to the monitoring server 10, receiving requests from the monitoring server 10 for changes in monitoring information, changes in the monitoring configuration, and changes in monitoring change rules, and responding to the requests.
  • the SA monitoring unit SA110 can monitor the external virtual machine VM100, the control virtual machine VM200, the video virtual machine VM300, and the software in the HV area. Get security status.
  • the management unit SA120 can change the monitoring configuration and monitoring information appropriately according to the system state.
  • FIG. 13 is a block diagram of a monitoring server according to the embodiment.
  • the monitoring server 10 includes an in-vehicle system communication unit 11, a monitoring result display unit 12, a monitoring configuration changing unit 13, a monitoring change rule changing unit 14, and a monitoring information changing unit 15.
  • the in-vehicle system communication unit 11 has a function of communicating with the external communication unit A101 of the in-vehicle system 20.
  • the monitoring result display unit 12 has a function of receiving monitoring results from the external communication unit A101 of the in-vehicle system 20 via the in-vehicle system communication unit 11 and displaying information on the monitoring results on a graphical user interface.
  • the monitoring configuration change unit 13 accepts changes in the monitoring configuration and transmits a change request to the monitoring server communication unit SA126.
  • the monitoring change rule changing unit 14 accepts changes to the monitoring change rules and transmits a change request to the monitoring server communication unit SA126.
  • the monitoring information changing unit 15 accepts changes in monitoring information and transmits a change request to the monitoring server communication unit SA126.
  • Example of monitoring information 14 and 15 are diagrams showing examples of monitoring information.
  • the monitoring information contains information for each of the multi-layered monitoring units to confirm their own monitoring targets and monitor software and communication logs.
  • the monitoring information includes number, supervisor, monitoring target, memory address, expected value, and priority. Numbers are used to identify monitoring information. The person in charge of monitoring is used to recognize the subject who monitors the monitoring target. The monitoring target is used to recognize software and communication logs to be monitored. The memory address is used to recognize the memory address where the target is stored in order to retrieve the target. Expected values are used to recognize normal values of information about monitored objects. The priority is used to more intensively monitor a monitoring target with a higher priority. Details of the priority will be described later.
  • an application monitoring unit A110 is an external application monitoring unit
  • an application monitoring unit A210 is a control application monitoring unit
  • an application monitoring unit A310 is a video application monitoring unit
  • a VM monitoring unit VM110 is an external VM monitoring unit
  • a VM monitoring unit VM210 is a control application monitoring unit.
  • the VM monitoring unit and the VM monitoring unit VM310 are described as a video VM monitoring unit, and this description may also be used below.
  • the monitoring charge is the external VM monitoring unit
  • the monitoring target is the VM program 1
  • the memory address is the VM area B10
  • the expected value is B10
  • the priority is high.
  • the monitoring information numbered 15 has the control VM monitoring unit as the monitoring manager, the hyper call log as the monitoring target, the memory address as "-", and the expected value as "-”.
  • the priority is "-”. This indicates that the control VM monitoring unit monitors hypercall logs, but does not need to specify memory addresses, expected values, and priorities.
  • the external communication log, the CAN communication log, the Ethernet communication log, the system call log, and the hyper call log are each abnormal can be determined.
  • each of the multi-layered monitoring units can confirm its own monitoring targets and monitor software and communication logs.
  • the software of the multi-layered monitoring unit in the monitoring target, it is possible to construct a trust chain for the monitoring of the multi-layered monitoring unit.
  • the SA monitoring unit SA110 monitors the software of the HV monitoring unit HV110
  • the HV monitoring unit HV110 monitors the software of the VM monitoring unit VM210
  • the VM monitoring unit VM210 monitors the software of the VM monitoring unit VM110 and the VM monitoring unit VM310.
  • the VM monitoring unit VM110 monitors the software of the application monitoring unit A110
  • the VM monitoring unit VM210 monitors the software of the application monitoring unit A110
  • the VM monitoring unit VM310 monitors the software of the application monitoring unit A310.
  • the multilayer monitoring unit is connected from the reliable SA monitoring unit SA110 to the application monitoring unit, and a trust chain for monitoring can be constructed.
  • FIG. 15 describes information for changing the software monitoring method according to the priority.
  • priority, monitoring cycle (minutes), verification method, and monitoring target selection method are associated with each other.
  • One of three types of priority, high, medium, and low, is described and used to identify the priority.
  • the monitoring period (minutes) is used to recognize the period for performing the monitoring process of the monitoring target.
  • the verification method is used to recognize how to perform the monitoring process of the monitored object.
  • the monitoring target selection method is used to recognize a selection method when there are multiple monitoring targets.
  • the monitoring period minutes
  • the verification method is replication value
  • the monitoring target selection method is fixed. This indicates validating a fixed target with duplicate values at 1 minute intervals.
  • “Fixation” means monitoring all of one or more predetermined monitoring targets each time the monitoring timing determined by the monitoring period comes. It is to verify.
  • the priority indicates that the monitoring targets are to be verified in a specific order at 10-minute intervals using not the duplicated values but the masked values obtained by masking the duplicated values.
  • the order is to select one or more monitoring targets one by one in a specific order and monitor the selected monitoring targets each time the monitoring timing determined by the monitoring cycle comes.
  • the priority is low, it indicates that the monitoring targets are verified in random order at intervals of 100 minutes using the hash value of the replicated value. Random means that one or more monitoring targets are randomly selected one by one and the selected monitoring targets are monitored each time the monitoring timing determined by the monitoring cycle comes.
  • the memory area may be divided into two or more blocks, and the divided blocks may be randomly selected and monitored. Thereby, the processing load can be reduced.
  • a specific monitoring cycle may be set, and instead of immediately executing monitoring when the cycle has elapsed since the previous monitoring, monitoring may be performed during the idle time of the CPU after the cycle has elapsed. .
  • the monitoring timing differs each time, the load on the system where real-time performance is emphasized can be reduced.
  • a period during which at least one monitoring is performed may be set.
  • monitoring can be performed by utilizing idle time of the CPU during a predetermined period.
  • monitoring timing may be defined according to specific events or verification results of specific monitoring units.
  • the software of the application monitoring unit A110 may be monitored at the timing of Internet connection
  • the software of the control virtual machine may be monitored at the timing when the driving state of the vehicle is changed to automatic driving
  • the security abnormality may be monitored. It is possible to monitor the software of the multi-layered monitoring unit related to the abnormality at the timing when is determined once, or to monitor the software of the connected monitoring unit at the timing when the security is determined to be normal twice without an abnormality. .
  • the area containing the log may be specified in the memory address, the permission list may be specified in the expected value, and the priority may be specified.
  • the communication log monitoring method may be changed according to the priority.
  • a method of detecting anomalies using the payload information of all messages which can be expected to be highly accurate, is applied.
  • a method of detecting anomalies using header information may be applied.
  • communication logs can be intensively monitored according to priority.
  • FIG. 16 is a diagram illustrating an example of system states.
  • the system state is used by the management unit SA120 to grasp the system state of the integrated ECU 200.
  • system information includes number, classification, system status, and parameters. Numbers are used to identify system states. There are four classifications, network, VM, security, and vehicle, which are used to classify the system state. For example, the system state describes the name of a specific system state, and the parameter describes a parameter for specifying the system state.
  • the system state whose number is 5 is classified as VM
  • the system state is VM state
  • the parameter is a VM identifier, one of on, off, and restarting, and time.
  • the parameters include an identifier that identifies the specific virtual machine, the state of being restarted, and the time when the state was determined. be done.
  • the system state with number 1 if the system state with number 1 is confirmed, the state of whether or not the integrated ECU 200 is connected to the Internet can be grasped, and the system state with number 9 can be confirmed with the running state of the vehicle. For example, it is possible to grasp the state of automatic operation or not, and by confirming the system state whose number is 7, it is possible to grasp the information of the monitoring target software determined to be abnormal as a result of the software verification.
  • a predetermined time elapse a predetermined external network connection time elapse, system startup, and system restart.
  • System status can be obtained including booting, establishing an external network connection, connecting an external device, switching driving modes, terminating fuel or power supply, performing vehicle diagnostics, and issuing an emergency alert.
  • the system state in FIG. 16 shows a list of system states and items to be described in the parameters.
  • the management unit SA120 acquires the system status included in the list, it can share the system status with other programs by notifying the other programs of the numbers and parameters or leaving them in a log.
  • Example of monitoring configuration 17 to 20 are diagrams showing examples of monitoring configurations.
  • a monitoring configuration is used to connect multiple monitoring units and change the monitoring trust chain.
  • the blocks at the beginning of the arrows indicate the monitoring units that perform monitoring, and the blocks at the ends of the arrows indicate the monitoring units to be monitored.
  • the monitoring configuration includes numbers and monitoring configurations.
  • the number is used to identify the monitoring configuration, and the monitoring configuration describes the connection pattern of the multi-layer monitoring units.
  • the software of the VM monitoring unit VM310 is monitored, the VM monitoring unit VM110 monitors the software of the application monitoring unit A110, the VM monitoring unit VM210 monitors the software of the application monitoring unit A110, and the VM monitoring unit VM310 monitors the software of the application monitoring unit A310.
  • the multi-layered monitoring unit is connected from the reliable SA monitoring unit SA110 to the application monitoring unit, and a trust chain for monitoring can be constructed.
  • control virtual machine VM200 since the control virtual machine VM200 is not directly connected to the external network, it can be assumed to be more reliable than the external virtual machine VM100, so it can be treated as a monitoring unit with higher reliability.
  • the monitoring configuration of number 2 in FIG. 17 is the same as the management configuration of number 1 except that the SA monitoring unit SA110 monitors the software of the VM monitoring unit VM210 instead of the HV monitoring unit HV110.
  • the processing and program complexity of the SA monitoring part SA110 increase, but by monitoring from the reliable SA monitoring part SA110, the reliability of the software of the VM monitoring part VM210 is increased. can be done.
  • the monitoring configuration of number 3 in FIG. 18 is a monitoring configuration that can maintain trust chain monitoring of monitoring even when the control virtual machine VM200 goes down. If the monitoring configuration of number 1 or number 2 is continued when the control virtual machine VM200 goes down, the person in charge of monitoring the VM monitoring unit VM110 or the VM monitoring unit VM310 will be absent, and the trust chain for monitoring will be broken. can't keep up.
  • the application This is a monitoring configuration capable of maintaining trust chain monitoring of monitoring other than the monitoring unit A210. If the monitoring configuration of number 1 or number 2 is continued when a security abnormality is detected in the control virtual machine VM200, the control virtual VM machine 210 is in charge of monitoring the software of the VM monitoring unit VM110 and the VM monitoring unit VM310. However, since the control virtual machine VM200 is highly likely to be tampered with, the monitoring trust chain cannot be maintained.
  • the monitoring configuration of number 5 in FIG. 19 is a monitoring configuration that can enhance monitoring when an abnormality is detected in the control virtual machine VM200 or when the risk of tampering with the control virtual machine VM200 is high.
  • the frequency and reliability of monitoring can be increased.
  • the monitoring result of the SA monitoring unit SA110 which has a high degree of reliability, can be adopted.
  • the monitoring configuration of number 6 in FIG. 19 even if an abnormality is detected in the control virtual machine VM200, the VM monitoring unit VM210 is completely removed from the monitoring charge and application monitoring is performed by another virtual machine monitoring unit. By taking over the monitoring of the part A110, the monitoring configuration is such that the trust chain monitoring of the monitoring can be maintained. If the monitoring configuration of number 1 or number 2 is continued when a security abnormality is detected in the control virtual machine VM200, the control virtual machine VM200 is in charge of monitoring the software of the VM monitoring unit VM110 and the VM monitoring unit VM310. , the control virtual machine VM200 is highly likely to be tampered with, so the monitoring trust chain cannot be maintained.
  • the monitoring configuration of number 7 in FIG. 20 is a monitoring configuration that can strengthen monitoring when there is a high possibility that the external virtual machine VM100 will be tampered with, such as in the Internet connection state.
  • the frequency and reliability of monitoring can be increased.
  • the monitoring result of the HV monitoring unit HV110 with high reliability can be adopted.
  • the VM monitoring unit VM210 monitors the software of the VM monitoring unit VM310
  • the VM monitoring unit VM310 monitors the software of the VM monitoring unit VM110
  • the VM monitoring unit VM110 monitors the software of the VM monitoring unit VM210, or a mutual monitoring configuration in which each virtual machine monitoring unit monitors the software of the other virtual machine monitoring units.
  • the monitoring configuration may be dynamically calculated and changed.
  • the monitoring configuration is stored as a directed graph in which the monitoring unit is the vertex, the person in charge of monitoring is the starting point of the road, and the monitoring target is the ending point of the road, and the monitoring configuration is changed by reconstructing the directed graph using a predetermined algorithm.
  • the monitoring configuration is stored as a tree structure in which the monitoring unit is a node, the person in charge of monitoring is a parent node, and the monitoring target is a child node, and the tree structure is reconstructed by a predetermined algorithm. can be changed.
  • FIG. 21 is a diagram showing an example of a monitoring change rule.
  • the monitoring change rule is used by the management unit SA120 to change the priority of monitoring information and the monitoring configuration according to the system state.
  • the monitoring change rule includes numbers, change conditions, and change processing.
  • the number is used to identify the supervision change rule.
  • the change condition is used to determine whether the system state is to perform change processing.
  • the change process describes changes to the monitoring configuration that are performed when change conditions are met.
  • the change condition is Internet connection establishment, and the change process is to temporarily raise the monitoring priority of the VM monitor VM110 and the application monitor A110.
  • the management part SA120 temporarily raises the monitoring priority of the VM monitoring part VM110 and the application monitoring part A110. As a result, high-frequency and high-precision monitoring of these monitoring units can be performed. After a predetermined period of time has elapsed or a predetermined monitoring process has been completed, the temporarily raised priority is returned to its original value.
  • a monitoring unit that monitors the source of the abnormal communication when an abnormality occurs in a specific communication, a monitoring unit that monitors the source of the abnormal communication, a monitoring unit that monitors the destination of the abnormal communication, and a monitoring unit that detects the abnormal communication Raising the priority of each of the monitors is shown. Since there is a high possibility that an error has occurred in the source software, there is a high possibility that an attack will be carried out on the destination software, and there is a high possibility that the monitoring unit that determined the communication error will also be disabled.
  • the part SA120 raises the priority of each of the monitoring part that monitors the source of the abnormal communication, the monitoring part that monitors the destination of the abnormal communication, and the monitoring part that detects the abnormal communication. This allows focused monitoring to be performed on these monitoring units. Furthermore, management unit SA120 can monitor software that is likely to be tampered with by multiple monitoring units by changing the monitoring configuration.
  • a monitoring change rule with a number of 6 indicates that when the CPU usage rate of a specific VM is low, the monitoring configuration is changed to one that imposes a heavy processing load on that VM.
  • performing many monitoring processes in a virtual machine monitoring unit arranged in a virtual machine with a high CPU usage rate may affect other main functions. Therefore, a virtual machine monitoring unit that operates on a virtual machine with a low CPU usage rate performs monitoring, thereby reducing the burden on a system in which real-time performance is important.
  • the management unit SA120 determines whether an external network is being connected, the occurrence of an external network connection establishment event, the system state of the virtual machine, the monitoring result of the multi-layered monitoring unit, and the execution authority of the monitoring unit that has detected an abnormality.
  • the priority and monitoring configuration can be changed according to the execution authority of the software that detected the abnormality and the destination or source of the communication log that detected the abnormality.
  • Example of monitoring result display 22 and 23 are diagrams showing an example of a monitor result display.
  • the monitoring result display is used to convey monitoring information to security analysts.
  • the monitor result display is generated by the monitor server 10 when the monitor server 10 receives the monitor result from the in-vehicle system 20 .
  • a monitoring result display is a display in which monitoring results are represented in a graphical user interface.
  • the monitoring results received from the in-vehicle system 20 are the same as the system status classification security items. If the software is normal, the monitoring result includes an identifier identifying the monitoring unit, an identifier identifying the software to be monitored, and the time when the software was determined to be normal. If the software is abnormal, the monitoring result includes an identifier identifying the monitoring unit, an identifier identifying the software to be monitored, and the time when the abnormality was determined. If the communication log is normal, the monitoring result includes an identifier identifying the monitoring unit, an identifier identifying the communication protocol, a normal communication message, and the normal determination time.
  • the monitoring result includes an identifier identifying the monitoring unit, an identifier identifying the communication protocol, a normal communication message, and the time when the abnormality was determined. Further, in order to identify the integrated ECU 200 , a vehicle ID for identifying the vehicle and an ECUID for identifying the ECU may be added to the monitoring result and transmitted to the monitoring server 10 .
  • thick-framed blocks indicate monitored software determined to be normal, and thin-framed blocks indicate monitored software determined to be abnormal.
  • FIG. 22 an abstracted system architecture of the integrated ECU 200 is displayed, abnormal and normal components are emphasized and expressed so as to be distinguished, and corresponding monitoring results are displayed below the components. ing.
  • the security analyst can intuitively understand the component in which the anomaly has occurred, so that security anomaly analysis can be carried out quickly.
  • buttons for changing the monitoring configuration and changing the monitoring information are arranged at the bottom of the graphical user interface.
  • monitoring server 10 may display a graphical user interface that accepts changes to the monitoring configuration. That is, the monitoring server 10 receives a change in at least one of the monitoring information of the monitoring target, the monitoring unit that monitors the monitoring target, the priority of the monitoring target, and the monitoring method corresponding to the priority, and sends the change to the integrated ECU 200. You may request changes.
  • FIG. 23 shows that monitoring from the SA monitoring unit to the HV monitoring unit was executed at time T1, and monitoring from the VM monitoring unit 1 to the application monitoring unit 1 was executed at time T2. , and that the HV monitoring unit has monitored the VM monitoring unit 1 at time T3.
  • FIG. 24 is a diagram illustrating a sequence of monitoring processing by an application monitoring unit in the embodiment.
  • FIG. 24 shows the processing from when the monitoring target acquisition unit A111 of the application monitoring unit A110 acquires the external communication log and the hash value of the software (SW) in the application area until the monitoring result acquisition unit SA121 is notified of the monitoring result. shows the sequence.
  • the external application A100 will be described as an example, but the control application A200 and the video application A300 have the same processing sequence except for the types of communication logs, so the description is omitted.
  • the monitoring target acquisition unit A111 of the application monitoring unit A110 acquires a communication log, which is an external communication log, from the external communication unit A101 and transmits it to the monitoring unit A113.
  • the monitoring unit A113 determines whether the communication log contains an abnormality, and notifies the monitoring result notification unit A116 of the monitoring result.
  • the monitoring result includes an identifier identifying the monitoring unit, an identifier identifying the software to be monitored, and the determination time.
  • the monitoring result includes an identifier identifying the monitoring unit, an identifier identifying the software to be monitored, and the determination time.
  • the communication is normal, the monitoring result includes an identifier identifying the monitoring unit, an identifier identifying the communication protocol, and the determination time.
  • the monitoring result notification unit A116 notifies the monitoring result acquisition unit SA121 of the monitoring result.
  • the monitoring result acquisition unit SA121 acquires the monitoring result.
  • the monitoring target acquisition unit A111 acquires the hash value of the software stored in the application area storage unit A103 each time a certain period of time elapses according to the priority of the monitoring target described in the monitoring information storage unit A114. Then, the expected value of the hash value of the software stored in the monitoring information storage unit A114 is obtained and transmitted to the monitoring unit A113.
  • the monitoring unit A113 determines that each piece of software is normal if the obtained value and the expected value match, and determines that it is abnormal if they do not match, and notifies the monitoring result notification unit A116 of the monitoring result.
  • the monitoring result notification unit A116 notifies the monitoring result acquisition unit SA121 of the monitoring result.
  • the monitoring result acquisition unit SA121 acquires the monitoring result.
  • FIG. 25 is a diagram illustrating a sequence of monitoring processing by a virtual machine monitoring unit according to the embodiment.
  • FIG. 25 shows that after the monitoring target acquisition unit VM211 of the VM monitoring unit VM210 acquires the system call, the hyper call, the software in the application area, and the hash value of the software in the VM area, the monitoring result acquisition unit SA121 is notified of the monitoring result. It shows the processing sequence up to
  • the VM monitoring unit VM210 will be described as an example, but the VM monitoring unit VM110 and the VM monitoring unit VM310 have the same sequence of processing except that the hypercall is not obtained, so the description is omitted.
  • the monitoring target acquisition unit VM211 of the VM monitoring unit VM210 acquires communication logs, which are system calls and hypercalls, respectively, from the system call control unit VM202 and the hypercall control unit HV102 of the hypervisor HV100. Send to VM 213 .
  • the monitoring unit VM 213 determines whether the communication log contains an abnormality, and notifies the monitoring result notification unit VM 216 of the monitoring result.
  • the monitoring result notification unit VM216 notifies the monitoring result acquisition unit SA121 of the monitoring result.
  • the monitoring result acquisition unit SA121 acquires the monitoring result.
  • the monitoring target acquisition unit VM211 updates software stored in the VM area storage units VM103, VM203, and VM303 each time a certain period of time elapses according to the priority of the monitoring target described in the monitoring information storage unit VM214.
  • a hash value is acquired, an expected value of the hash value of the software stored in the monitoring information storage unit VM214 is acquired, and the expected value is transmitted to the monitoring unit VM213.
  • the monitoring unit VM213 determines that it is normal when the acquired value and the expected value match, and determines that it is abnormal when they do not match, and notifies the monitoring result notification unit VM216 of the monitoring result.
  • the monitoring result notification unit VM216 notifies the monitoring result acquisition unit SA121 of the monitoring result.
  • the monitoring result acquisition unit SA121 acquires the monitoring result.
  • FIG. 26 is a diagram illustrating a sequence of monitoring processing of a hypervisor in the embodiment
  • FIG. 26 shows a processing sequence from when the monitoring target acquiring unit HV111 of the HV monitoring unit HV110 acquires the hash values of the software in the VM area and the software in the HV area to notifying the monitoring result acquiring unit SA121 of the monitoring result. is shown.
  • the monitoring target acquisition unit HV111 of the HV monitoring unit HV110 acquires the VM area storage units VM103, VM203, and VM303 each time a certain period of time elapses according to the priority of the monitoring target described in the monitoring information storage unit HV114.
  • the hash value of the software stored in the HV area storage unit HV103 is acquired, the expected value of the hash value of the software stored in the monitoring information storage unit HV114 is acquired, and transmitted to the monitoring unit HV113.
  • the monitoring unit HV113 determines that it is normal if the acquired value and the expected value match, and determines that it is abnormal if they do not match, and notifies the monitoring result notification unit HV116 of the monitoring result.
  • the monitoring result notification unit HV116 notifies the monitoring result acquisition unit SA121 of the monitoring result.
  • the monitoring result acquisition unit SA121 acquires the monitoring result.
  • FIG. 27 is a diagram illustrating a sequence of secure application monitoring processing according to the embodiment.
  • FIG. 27 shows a processing sequence from when the monitoring target acquiring unit SA111 of the SA monitoring unit SA110 acquires the hash values of the software in the VM area and the software in the HV area to notifying the monitoring result acquiring unit SA121 of the monitoring result. is shown.
  • the monitoring target acquisition unit SA111 of the SA monitoring unit SA110 according to the priority of the monitoring target described in the monitoring information storage unit SA114, each time a certain period of time elapses,
  • the hash value of the software stored in the HV area storage unit HV103 is acquired, the expected value of the hash value of the software stored in the monitoring information storage unit SA114 is acquired, and transmitted to the monitoring unit SA113.
  • the monitoring unit SA113 determines that it is normal if the obtained value and the expected value match, and determines that it is abnormal if they do not match, and notifies the monitoring result notification unit SA116 of the monitoring result.
  • the monitoring result notification unit SA116 notifies the monitoring result acquisition unit SA121 of the monitoring result.
  • the monitoring result acquisition unit SA121 acquires the monitoring result.
  • FIG. 28 is a diagram illustrating a sequence of monitoring server notification processing according to the embodiment.
  • the monitoring result acquisition unit SA121 of the SA monitoring unit SA110 acquires monitoring results from the application monitoring unit, the virtual machine monitoring unit, the HV monitoring unit HV110, and the SA monitoring unit SA110, and displays the monitoring results on the monitoring server 10. It shows a processing sequence until the unit 12 displays the monitoring result.
  • the monitoring result acquisition unit SA121 of the SA monitoring unit SA110 acquires monitoring results from the application monitoring unit, virtual machine monitoring unit, HV monitoring unit HV110, and SA monitoring unit SA110, and transmits them to the monitoring server communication unit SA126. .
  • the monitoring server communication unit SA126 notifies the in-vehicle system communication unit 11 of the monitoring server 10 of the monitoring result via the external communication unit A101.
  • the in-vehicle system communication unit 11 receives the monitoring result and transmits it to the monitoring result display unit 12.
  • the monitoring result display unit 12 displays the monitoring result.
  • FIG. 29 is a diagram illustrating a sequence of monitoring information change processing according to the embodiment.
  • the system state acquisition unit SA122 of the SA monitoring unit SA110 acquires the security state from the application monitoring unit, the virtual machine monitoring unit, the HV monitoring unit HV110, and the SA monitoring unit SA110. section, HV monitoring section HV110, and SA monitoring section SA110.
  • the system status acquisition part SA122 of the SA monitoring part SA110 acquires the security status as the system status from the application monitoring part, the virtual machine monitoring part, the HV monitoring part HV110, and the SA monitoring part SA110, and Send to SA125.
  • the monitoring information change unit SA125 confirms the monitoring change rule stored in the monitoring change rule storage unit SA124, and if the system state satisfies the change condition of the monitoring change rule, performs change processing, and the monitoring information update unit SA125 performs change processing. Request changes to A115, A215, A315, VM115, VM215, VM315, HV115, and SA115.
  • the monitoring information update units A115, A215, A315, VM115, VM215, VM315, HV115, and SA115 update the monitoring information.
  • the monitoring information and monitoring configuration can also be changed by the monitoring server 10.
  • the monitoring server communication unit SA126 receives the change information from the monitoring server 10 and transmits it to the monitoring information change unit SA125.
  • the monitoring information change unit SA125 updates the configuration information contained in the monitoring configuration storage unit SA123, and requests the monitoring information update units A115, A215, A315, VM115, VM215, VM315, HV115, and SA115 to change the monitoring information. It will be realized by doing.
  • FIG. 30 shows a flowchart of monitoring processing in the embodiment.
  • the application monitoring unit A110 will be described as an example. are the same except that the type is different.
  • the monitoring target acquisition unit A111 of the application monitoring unit A110 acquires the hash value of the external communication log and software to be monitored, and executes steps S3002 and S3005.
  • step S3002 The monitoring unit A113 determines whether or not the external communication log acquired in step S3001 contains an abnormality. If not (No in S3002), step S3004 is executed.
  • the monitoring unit A113 determines that the communication to be monitored is abnormal, updates the system state, and executes step S3005.
  • the monitoring unit A113 updates the system state assuming that the communication to be monitored is normal, and executes step S3005.
  • the monitoring result notification unit A116 notifies the monitoring result acquisition unit SA121 of the monitoring result and the system state, and terminates.
  • Step S3006 The monitoring unit A 113 determines whether or not the software contains an abnormality. Step S3008 is implemented.
  • the monitoring unit A113 determines that the monitored software is abnormal, updates the system state, and executes step S3005.
  • the monitoring unit A113 determines that the monitored software is normal, updates the system state, and executes step S3005.
  • FIG. 31 shows a flowchart of monitoring change processing in the embodiment.
  • the monitoring information change unit SA125 confirms the monitoring change rule stored in the monitoring change rule storage unit SA124, and determines whether or not the system state acquired in step S3101 satisfies the change condition of the monitoring change rule. If the change condition is satisfied (Yes in S3102), step S3103 is executed, and if the change condition is not satisfied (No in S3102), the process ends.
  • the monitoring information changing unit SA125 performs change processing corresponding to the change condition satisfied in step S3102 in the monitoring change rule, A request is made to the HV 115 and SA 115 to change the monitoring information, and the process ends.
  • Integrated ECU 200 as a monitoring device includes three or more monitoring units each monitoring at least one of software and a communication log as a monitoring target.
  • the three or more monitoring units are a first monitoring unit that operates with a first execution authority, a second monitoring unit that operates with a second execution authority that is less reliable than the first execution authority, and a third monitoring unit that operates with a third execution authority that has the same reliability as the second execution authority or a third execution authority that is less reliable than the second execution authority.
  • the integrated ECU 200 builds a monitoring trust chain in which the software of the low-reliability monitoring unit is monitored from at least one high-reliability monitoring unit. At least one of the first monitor and the second monitor monitor monitors the software of the third monitor.
  • the active monitoring unit has the advantage of being able to employ sophisticated and complex algorithms.
  • the three or more monitoring units include four or more monitoring units.
  • the four or more monitoring units have the same reliability as the first monitoring unit, the second monitoring unit, the third monitoring unit, and the third execution authority, or have higher reliability than the third execution authority. and a fourth monitor operating with a lower fourth execution privilege.
  • the integrated ECU 200 includes a first monitoring unit, a second monitoring unit, and a second monitoring unit so as to build a monitoring trust chain in which software of a low-reliability monitoring unit is monitored from at least one high-reliability monitoring unit. At least one of the three monitors monitors the software of the fourth monitor.
  • the active monitoring unit has the advantage of being able to employ sophisticated and complex algorithms.
  • the integrated ECU 200 operates on a secure application, a virtual software platform, and one or more virtual machines.
  • the first execution authority is one of a secure application execution authority, a virtual software infrastructure execution authority, and a virtual machine kernel execution authority.
  • the second execution right is one of a virtual software infrastructure execution right, a virtual machine kernel execution right, and a virtual machine user right.
  • the third execution right is one of a virtual machine kernel execution right and a virtual machine user right.
  • Execution permissions for secure apps are more reliable than execution permissions for virtual software platforms.
  • Virtual software infrastructure execution privileges are more reliable than virtual machine kernel execution privileges.
  • Virtual machine kernel execution privileges are more reliable than virtual machine user privileges.
  • communication logs such as software in the user space of the virtual machine, network logs in the user space of the virtual machine, and system calls between the user space and the kernel space of the virtual machine Since it can be assumed that acquisition is difficult, separating the monitoring units for each execution authority has the effect of enabling monitoring of a wider range of monitoring targets.
  • software that operates with secure app execution privileges, hypervisor execution privileges, and virtual machine kernel privileges is implemented with a simple algorithm that does not include vulnerabilities, monitoring that operates with strong execution privileges A simple algorithm can be adopted for the part, and an advanced and complicated algorithm can be adopted for the monitoring part which operates with weak execution authority.
  • the monitoring device operates on a virtual software platform and two or more virtual machines.
  • the first virtual machine among the two or more monitoring units operating with the execution authority assigned to the virtual machine The monitoring unit includes the software of the monitoring unit of the second virtual machine among the two or more monitoring units as a monitoring target; It is classified as either one virtual machine or a second virtual machine.
  • virtual machines with vehicle control functions are isolated from the external network, and it can be assumed that secure design and implementation have been fully considered to meet the requirements of a high functional safety level. can be treated as a reliable first virtual machine.
  • the monitoring unit of the second monitoring machine which has a high tampering risk, must be monitored from the execution authority of the secure application or hypervisor. Since the monitoring unit of the second monitoring machine can be monitored from the second monitoring unit, there is an effect of simplifying the software that operates with the execution authority of the secure application and the execution authority of the hypervisor.
  • each of the three or more monitoring units monitors the elapse of a predetermined time period, the elapse of a predetermined external network connection time period, the system startup, the system restart, the establishment of an external network connection, and the external device
  • the monitoring of the monitoring target is started according to the timing at which an event including at least one of connection occurs.
  • the monitoring unit whose integrity is verified by the front-stage monitoring unit is not a serial monitoring method that verifies the rear-stage monitoring unit.
  • the load of the monitoring process can be flexibly distributed without imposing a load on the system, such as performing the monitoring process using the idle time of the CPU of each virtual machine.
  • the monitoring device operates on the in-vehicle system.
  • Each of the three or more monitoring units is responsible for elapse of a predetermined running time, elapse of a predetermined stop time, elapse of a predetermined running distance, switching of driving modes, termination of fuel supply or power supply, execution of vehicle diagnosis, and calling of an emergency alert.
  • Monitoring of the monitoring target is started in accordance with the timing at which an event including at least one of .
  • each of the three or more monitoring units determines the number of times the other monitoring unit executes the monitoring process, the number of times the monitoring process is determined to be abnormal, and the monitoring process determines that it is normal.
  • the monitoring of the monitoring target is started according to the timing when at least one of the number of times set is reached.
  • the first monitoring unit monitors the software of the second monitoring unit.
  • the second monitoring unit to be monitored by the first monitoring unit detects an abnormality once
  • the first monitoring unit executes the software monitoring process of the second monitoring unit.
  • the monitoring process can be executed only when an abnormality occurs in the monitoring target of the second monitoring unit, and the number of monitoring processes can be reduced.
  • the first monitoring unit executes the software monitoring process of the second monitoring unit once.
  • the monitoring processing of the first monitoring unit can be reduced, and the number of times of monitoring processing can be reduced. This has the effect of reducing the overhead by reducing the number of times the execution mode is switched, since it is assumed that the execution mode needs to be switched in order to operate the software with strong execution authority.
  • each of the three or more monitoring units stores the hash value, mask value, and , at least one of the replicated values is obtained as an obtained value, the expected value, which is a predefined correct value, is compared with the obtained value, and if the expected value and the obtained value match, the software is normal. If the expected value and the obtained value do not match, it is determined that the software is abnormal.
  • the software is tampered with, the expected value and the obtained value will differ, so it has the effect of being able to determine whether the software has been tampered with.
  • a hash value it is possible to determine falsification more efficiently than a duplicate value, and by using a mask value, it is possible to determine the presence or absence of falsification more efficiently than a duplicate value.
  • the duplicate value it is possible to determine falsification more accurately than the hash value, and by using the mask value, it is possible to determine falsification more accurately than the hash value.
  • the software includes a combination of a virtual software platform program and setting files, a combination of a virtual machine kernel program and setting files, and a user application program and setting files on the virtual machine. and a combination of programs and configuration files for each of the three or more monitoring units.
  • each of the three or more monitoring units acquires the communication log when the object to be monitored is the communication log, and obtains the permission list, the denial list, and the normal statistical information. and (i) determining that the communication log is normal if it is included in the permission list, and determining that the communication log is abnormal if it is not included in the permission list.
  • the communication log includes the Ethernet, the CAN protocol, the FlexRay protocol, the SOME/IP protocol, the SOME/IP-SD protocol, the system call, and the hyper call. At least one may be included.
  • the network protocol installed in the in-vehicle system it is possible to determine communication abnormalities using protocol-specific parameters. Furthermore, the sender and destination can be acquired from the communication log determined to be abnormal, and there is an effect that the monitoring unit and the monitoring target in which the abnormality may occur can be specified. Furthermore, by monitoring system calls and hypercalls, which are privileged instructions, it is possible to determine anomalies that occur at the boundaries of execution rights, and to identify a monitoring unit and a monitoring target that may cause anomalies.
  • each of the three or more monitoring units provides a monitoring target monitoring frequency, a monitoring target verification method, a monitoring target verification method, and a monitoring target verification method according to the priority set for each monitoring target. change at least one of the selection methods of
  • the priority is determined by the execution authority of the monitoring target and whether one of the three or more monitoring units or the virtual machine in which the monitoring operates has an external network connection function. and whether or not the virtual machine on which one monitoring unit or monitor operates has a vehicle control function.
  • the integrated ECU 200 further includes a priority included in the monitoring information, and a supervisor and a monitoring target included in the monitoring target, according to the state or event of the system in which the monitoring device operates. and a management unit for changing at least one of the target combination and the monitoring configuration.
  • monitoring information As a result, if the importance of monitoring targets differs depending on the system state or event, it can be assumed that it is difficult to set the monitoring information as an appropriate fixed value.
  • By flexibly changing the monitoring configuration effective monitoring is possible. For example, by flexibly changing the priority and changing the monitoring frequency, monitoring accuracy, and monitoring method according to the priority, it is possible to focus on monitoring targets with high tampering risk within limited resources. effective.
  • by changing the monitoring information so that when one of the monitoring modules becomes inoperable, such as when one of the virtual machines is restarted, the monitoring of the other monitoring modules that cannot operate can be taken over. It has the effect of continuously monitoring the target.
  • another monitoring unit takes over the monitoring of the monitoring target, so that there is an effect that the monitoring target can be monitored from a reliable monitoring unit.
  • another monitoring unit additionally performs monitoring of the monitoring target, so that there is an effect that monitoring can be strengthened by a plurality of monitoring units.
  • another monitoring unit takes over the monitoring of the monitoring target, thereby reducing the system impact due to resource pressure.
  • the management unit determines whether or not an external network connection is being established, whether or not an external network connection establishment event has occurred, the system state of the monitoring machine, the monitoring result of the monitoring unit, an abnormality
  • the priority is changed according to at least one of the execution authority of the monitoring unit that detected the error, the execution authority of the software that detected the abnormality, and the destination or transmission source of the communication log that detected the abnormality.
  • the state of network connections affects the possibility of attack, so it has the effect of changing the priority according to changes in the attack possibility of the monitored target.
  • a software error it is assumed that there is a high possibility that an attack will occur in the same virtual machine software as the error software, software that operates with the same execution privileges, or software in the monitoring unit that has determined the error. Therefore, there is an effect that the priority can be changed according to the change of attack possibility.
  • a communication abnormality is determined, there is a high possibility that an abnormality has occurred at the transmission source of the communication, and there is a high possibility that an attack will develop on the transmission destination of the communication. There is an effect that can change the degree.
  • the integrated ECU 200 operates on an in-vehicle system.
  • the management unit changes the priority of the monitoring target operating on the virtual machine having the vehicle control function, according to the running state of the vehicle.
  • the running state of the vehicle is one of stopped, manual driving, advanced driving assistance, and automatic driving.
  • control commands related to running, turning, and stopping of the vehicle are sent from the control virtual machine software, which controls the engine, steering, braking, etc. Since it can be assumed that the control ECU follows the control command and the influence of software falsification is large, there is an effect that the software of the control virtual machine having the vehicle control function can be monitored intensively by raising the priority thereof. On the other hand, when the vehicle is stopped or manually driven, it can be assumed that the control ECU does not follow control commands, and the influence of software tampering is small. By lowering the degree, there is an effect that priority can be given to monitoring processing of other monitoring targets.
  • the management unit changes the software of the low-reliability monitoring unit to the software of the high-reliability monitoring unit rather than the low-reliability monitoring unit. Change the monitor configuration so that you can build a chain of trust for the monitors you monitor.
  • the management unit determines whether or not an external network connection is being established, whether or not an external network connection establishment event has occurred, the system state of the virtual machine, the monitoring result of the monitoring unit, and the abnormality
  • the monitoring configuration is changed according to at least one of the execution authority of the monitoring unit that detected the error, the execution authority of the software that detected the abnormality, and the destination or transmission source of the communication log that detected the abnormality.
  • the status of network connections affects the possibility of attacks, so it has the effect of changing the monitoring configuration according to changes in the attack potential of the monitored target.
  • another monitoring unit takes over the monitoring of the monitored object, which has the effect of enabling continuous monitoring of the monitored object. be.
  • another monitoring unit takes over the monitoring of the monitoring target, so that there is an effect that the monitoring target can be monitored from a reliable monitoring unit.
  • another monitoring unit additionally performs monitoring of the monitoring target, so that there is an effect that monitoring can be strengthened by a plurality of monitoring units.
  • the CPU or memory resources of one virtual machine are under pressure, another monitoring unit takes over the monitoring of the monitored object, thereby reducing the system impact due to resource pressure.
  • the integrated ECU 200 operates on an in-vehicle system.
  • the management unit changes the monitoring configuration related to the virtual machine having the vehicle control function according to the running state of the vehicle.
  • the running state of the vehicle is one of stopped, manual driving, advanced driving support, and automatic driving.
  • control commands related to running, turning, and stopping of the vehicle are sent from the control virtual machine software, which controls the engine, steering, braking, etc. Since it can be assumed that the control ECU follows the control command and the influence of software tampering is large, there is an effect that the monitoring configuration can be changed so that the software of the control virtual machine is monitored by a plurality of monitoring units. When the vehicle is stopped or manually driven, it can be assumed that the control ECU does not follow the control command, and the influence of software tampering is small. be.
  • the management unit includes (i) means for selecting one from two or more predefined monitoring configurations; means for storing a monitoring configuration as a directed graph in which a person in charge is the starting point of a road and an object to be monitored is the end point of the road, and reconstructing the directed graph by a predetermined algorithm;
  • the monitoring configuration is changed by at least one of means for storing the monitoring configuration as a tree structure with parent nodes and monitoring targets as child nodes, and reconstructing the tree structure using a predetermined algorithm.
  • the management unit stores the monitoring configuration as a tree structure in which the monitoring unit is a node, the person in charge of monitoring is a parent node, and the monitoring target is a child node.
  • the integrated ECU 200 further includes a monitoring server communication unit that notifies the monitoring server of the monitoring result.
  • the monitoring system is a monitoring system including a monitoring device and a monitoring server, and each of the monitoring devices monitors at least one of software and communication logs as a monitoring target.
  • a monitoring unit identifier e.g., a monitoring target identifier, a normality determination time, and an abnormality determination time
  • a monitoring server communication unit configured to transmit at least two of the monitoring result to the monitoring server.
  • the three or more monitoring units are a first monitoring unit that operates with a first execution authority, a second monitoring unit that operates with a second execution authority that is less reliable than the first execution authority, and a third monitoring unit that operates with a third execution authority that has the same reliability as the second execution authority or a third execution authority that is less reliable than the second execution authority.
  • the first monitoring unit monitors the software of the second monitoring unit
  • the third At least one of the one monitoring unit and the second monitoring unit monitors the software of the third monitoring unit.
  • the monitoring server includes a monitoring result display unit that receives monitoring results and displays the monitoring results on a graphical user interface.
  • the monitoring result display unit displays the monitoring result in association with the system architecture, means for emphasizing the monitoring unit that has detected an abnormality or the monitoring target for which an abnormality has been detected, and a predetermined display the monitoring results in association with the timeline, and display the monitoring results on the graphical user interface by at least one means of emphasizing the normality determination time or the abnormality determination time.
  • the security analyst can intuitively grasp the location of the monitoring department, the location of the monitored object, and the monitoring results. be.
  • security analysts can intuitively grasp the time series of monitoring results, and in the event of an anomaly, there is an effect that they can more quickly consider countermeasures such as updating software.
  • the monitoring server further includes at least one of a monitoring target, a monitoring unit that monitors the monitoring target, a priority of the monitoring target, and a monitoring method corresponding to the priority. and a monitoring information changing unit that accepts changes in one piece of monitoring information and requests the monitoring device to change the information.
  • the monitoring device further includes a monitoring information updating unit that updates the monitoring information in response to a request from the monitoring information changing unit.
  • FIG. 32 is a diagram showing a detailed modification 1 of the configuration of the integrated ECU in the embodiment.
  • FIG. 4 assumes that the type 1 hypervisor HV100 is used as the virtual software platform, but the type 2 hypervisor HV200 may also be used. In this case, the host operating system HOS100 activates the hypervisor HV200, and the hypervisor HV200 activates the virtual machine.
  • the hypervisor HV200 comprises an HV monitoring unit HV210 that monitors software in the HV area and software in the VM area.
  • the host operating system HOS100 includes a host OS monitoring unit HOS110 that monitors software in the host OS area, software in the HV area, software in the VM area, and system calls.
  • the secure operating system is assigned the most secure execution rights (PL4) and the applications on the operating system are assigned the next most secure execution rights (PL3).
  • the host operating system HOS100 is assigned a strong execution privilege (PL1), and the hypervisor HV200 and the virtual machine are assigned the same execution privilege (PL1) as the host operating system HOS100.
  • the weakest execution authority is assigned to the application (PL0) on the virtual machine. Note that the execution authority is PL4, PL3, PL2, PL1, and PL0 in descending order.
  • the external application A100 which is connected to the external network, is most likely to be tampered with and has the lowest reliability. It is assumed that the external virtual machine VM100 with weak authority, the control virtual machine VM200, the video virtual machine VM300, the hypervisor HV200, and the host operating system HOS100 have low reliability, and the secure application SA100 and the secure operating system SOS100 have the highest reliability. can. Also, when the host operating system HOS100 provides an external network interface to the external virtual machine by means of a bridge or the like, the host operating system HOS100 may be connected to the external network, and the host operating system HOS100 provides the virtual machine with an external network interface. Since there is a possibility that the storage can be accessed, unlike the hypervisor HV200 in FIG. 4, the reliability of the software of the host operating system HOS100 is low. Therefore, the secure application desirably monitors not only the host operating system HOS100, but also the hypervisor HV200 and virtual machine software.
  • the SA monitoring unit SA110 may monitor the software of the host OS monitoring unit HOS110, the software of the HV monitoring unit HV210, and the software of the virtual machine, and the virtual machine monitoring unit may monitor the application monitoring unit.
  • hypervisor HV200 may be assigned a stronger execution authority (PL2) than the host operating system HOS100.
  • execution authority PL2
  • reliability the same as those described in FIG.
  • FIG. 33 is a diagram showing Modification 2 of the details of the configuration diagram of the integrated ECU in the embodiment.
  • FIG. 4 shows that the hypervisor HV100 executes and monitors three types of virtual machines.
  • the application layer may be virtualized to operate the container application CA100 and the container application CA200.
  • the container virtual machine VM400 includes a VM monitoring unit VM410 that monitors software in the VM area including the software of the container engine CE100, the software and settings of the container application CA100, and the software and settings of the container application CA200.
  • the container application CA200 includes a container application monitoring unit CA210 that monitors software in the application area, the container application CA100, and inter-container communication.
  • the secure operating system is assigned the strongest secure execution privilege (PL4)
  • the applications on the operating system are assigned the next strongest secure execution privilege (PL3)
  • the hypervisor HV100 is assigned the next strongest execution privilege (PL3).
  • the weakest execution authority is assigned to the container engine CE100, the container application CA100, and the container application CA200. Note that the execution authority is PL4, PL3, PL2, PL1, and PL0 in descending order.
  • multiple containers that operate with the same execution authority may have different degrees of trust.
  • the container application CA100 has a function to communicate with a proximity network such as Wi-Fi or Bluetooth
  • the container application CA200 has a vehicle control function
  • the container application CA100 The reliability of the container application CA200 is considered to be high.
  • the container application monitoring unit CA210 monitor the software of the container application CA100, a trust chain for monitoring can be established even between containers operating with the same execution authority.
  • the external application A100 which is connected to the external network, is most likely to be tampered with, so it has the lowest reliability. is the second lowest, the container application CA100 which has the same execution authority but does not directly communicate via the network, the container engine CE100 which has the lowest reliability, the next lowest execution authority is the external virtual machine VM100, and the container virtual machine VM100. It can be assumed that the reliability of the machine VM400 is low, the reliability of the hypervisor HV100 with weak execution authority is low, and the reliability of the secure application SA100 and the secure operating system SOS100 is the highest.
  • the SA monitoring unit SA110 monitors the software of the HV monitoring unit HV110 and the software of the virtual machine
  • the VM monitoring unit VM410 monitors the container engine CE100, the container application CA100, the container application CA200, and the container application monitoring unit CA210.
  • the container application monitoring unit CA210 monitors the application monitoring software, the container application CA100, and the inter-container communication. Since it can be monitored from the multi-layered monitoring unit, a reliable chain of monitoring can be constructed.
  • hypervisor HV100 is not essential, and the host operating system may virtualize the application using the container engine CE100 to operate the container application CA100 and the container application CA200.
  • execution authority, reliability, and monitoring trust chain can be explained in the same way as in FIG. 33 by deleting the hypervisor HV100 and replacing it with the operating system that hosts the container virtual machine VM400.
  • the monitoring device includes a secure application, a host operating system, one or more virtual software platforms, and one or more virtual machines, or one or more container virtualization platforms and Runs on 2 or more containers.
  • the first execution authority, the second execution authority, the third execution authority, and the fourth execution authority are the execution authority of the secure application, the execution authority of the host operating system, and the execution authority of the virtual software platform. , the virtual machine kernel execution right, the virtual machine user execution right, and the container execution right.
  • the monitoring unit of the first container among the two or more monitoring units of the two or more containers operating with the same execution authority is , of the two or more monitoring units of the two or more containers, the software of the monitoring unit of the second container is included in the monitoring target, and the two or more containers are monitored according to the possibility of being tampered with by the attacker. and second container.
  • the host operating system uses a hypervisor, which is a virtual software platform, to run and manage multiple virtual machines.
  • a hypervisor which is a virtual software platform, to run and manage multiple virtual machines.
  • the reliability of virtual machines or containers can be assumed to differ depending on the possibility of tampering, such as the presence or absence of a connection function with an external network.
  • By building a trust chain even if the monitoring part of the second virtual machine or second container with low trust is hijacked, the monitoring part of the first virtual machine with high trust or the first There is an effect that anomalies can be detected from the monitoring part of the container.
  • the security measures for the in-vehicle system installed in the vehicle have been explained, but the scope of application is not limited to this. It may be applied not only to automobiles but also to mobility such as construction machines, agricultural machines, ships, railroads, and airplanes. That is, it can be applied as a security measure in a mobility system. It may also be applied to industrial control systems such as factories and buildings.
  • a secure monitor call used for secure application communication is not used as a communication log. It may be monitored. This has the effect of supplementing attempted attacks on confidential information stored in secure applications and secure OSs.
  • the hypervisor HV 100 has three types of virtual machines to be executed and managed. Alternatively, four or more types of virtual machines may be used.
  • the reliability of the virtual machine varies depending on whether or not there is a connection to an external network or whether or not there is a vehicle control function.
  • the reliability of the virtual machine may differ depending on the presence or absence of the third-party application download function. In this case, if it has a user login function, there is a possibility of unauthorized login, so the reliability is low. can be assumed to be low.
  • all virtual machines, all applications, the hypervisor HV100, and the secure application SA100 are provided with monitoring units. It suffices that two or more monitoring units having different degrees of reliability of the virtual machines are arranged.
  • a part or all of the components constituting each device in the above embodiments may be configured from one system LSI (Large Scale Integration).
  • a system LSI is an ultra-multifunctional LSI manufactured by integrating multiple components on a single chip. Specifically, it is a computer system that includes a microprocessor, ROM, RAM, etc. . A computer program is recorded in the RAM. The system LSI achieves its functions by the microprocessor operating according to the computer program. Further, each part of the constituent elements constituting each of the above devices may be individually integrated into one chip, or may be integrated into one chip so as to include part or all of them.
  • system LSI may also be called IC, LSI, super LSI, or ultra LSI depending on the degree of integration.
  • the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connections and settings of the circuit cells inside the LSI may be used.
  • an integration technology that replaces the LSI appears due to advances in semiconductor technology or another derived technology, the technology may naturally be used to integrate the functional blocks. Application of biotechnology, etc. is possible.
  • a part or all of the components that make up each device described above may be configured from an IC card or a single module that can be attached to and removed from each device.
  • An IC card or module is a computer system composed of a microprocessor, ROM, RAM and the like.
  • the IC card or module may include the super multifunctional LSI.
  • the IC card or module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • the present disclosure may be a program (computer program) that implements an abnormality detection method by a computer, or it may be a digital signal composed of a computer program.
  • computer programs or digital signals can be computer-readable recording media such as flexible discs, hard disks, CD-ROMs, MOs, DVDs, DVD-ROMs, DVD-RAMs, BDs (Blu - ray (registered trademark) Disc), semiconductor memory or the like.
  • the computer program or digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, data broadcasting, or the like.
  • one aspect of the present disclosure may be a computer system including a microprocessor and memory, the memory recording the computer program, and the microprocessor operating according to the computer program.
  • the program or digital signal may be recorded on a recording medium and transferred, or the program or digital signal may be transferred via a network or the like to be implemented by another independent computer system.
  • the monitoring device of the present disclosure even if an attacker intrudes into an in-vehicle system and tampered with and invalidates a monitoring program implemented in a low-reliability area, an abnormality occurring in the in-vehicle system can be detected. detectable.
  • the aim is to provide safe automated driving and advanced driver assistance systems.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

監視装置は、それぞれがソフトウェア及び通信ログの少なくとも1つを監視対象として監視する3以上の監視部を備え、3以上の監視部は、第一の実行権限にて動作する第一の監視部と、第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、第二の実行権限と信頼性が同じ、または、第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含み、第一の監視部は、第二の監視部のソフトウェアを監視し、第一の監視部及び第二の監視部の少なくとも1つは、第三の監視部のソフトウェアを監視する。

Description

監視装置、監視システム及び監視方法
 本開示は、ソフトウェア及び通信ログを監視する監視装置、監視システム及び監視方法に関する。
 特許文献1では、仮想ソフトウェア上の監視用の仮想マシンが、仮想ソフトウェア上の監視対象の仮想マシンを監視することで、監視対象の仮想マシンにおける異常を検知する方法が開示されている。
特開2019-144785号公報
 本開示は、従来の課題を解決するもので、信頼度が低い領域に実装された監視プログラムが改ざんされた場合であっても、ECUに発生した異常を検知できる監視装置などを提供する。
 本開示の一態様に係る監視装置は、それぞれがソフトウェア及び通信ログの少なくとも1つを監視対象として監視する3以上の監視部を備え、前記3以上の監視部は、第一の実行権限にて動作する第一の監視部と、前記第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、前記第二の実行権限と信頼性が同じ、または、前記第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含み、前記第一の監視部は、前記第二の監視部のソフトウェアを監視し、前記第一の監視部及び前記第二の監視部の少なくとも1つは、前記第三の監視部のソフトウェアを監視する。
 本開示の位置対象に係る監視システムは、監視装置と監視サーバーとで構成される監視システムであって、前記監視装置は、それぞれがソフトウェア及び通信ログの少なくとも1つを監視対象として監視する3以上の監視部と、監視部識別子と、監視対象識別子と、正常判定時刻と、異常判定時刻と、のうち少なくとも2つを監視結果として前記監視サーバーへ送信する監視サーバー通信部と、を備え、前記3以上の監視部は、第一の実行権限にて動作する第一の監視部と、前記第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、前記第二の実行権限と信頼性が同じ、または、前記第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含み、前記第一の監視部は、前記第二の監視部のソフトウェアを監視し、前記第一の監視部及び前記第二の監視部の少なくとも1つは、前記第三の監視部のソフトウェアを監視し、前記監視サーバーは、前記監視結果を受信し、グラフィカルユーザーインターフェース上に前記監視結果を表示する監視結果表示部を備える。
 本開示の一態様に係る監視方法は、3以上の監視部を備える監視装置によって実行される監視方法であって、前記3以上の監視部は、第一の実行権限にて動作する第一の監視部と、前記第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、前記第二の実行権限と信頼性が同じ、または、前記第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含み、前記第一の監視部は、前記第二の監視部のソフトウェアを監視し、前記第一の監視部及び前記第二の監視部の少なくとも1つは、前記第三の監視部のソフトウェアを監視する。
 本開示の監視装置によれば、信頼度が低い領域に実装された監視プログラムが改ざんされた場合であっても、ECUに発生した異常を検知できる。
図1は、実施の形態における監視システムの全体構成図を示す図である。 図2は、実施の形態における車載システムの構成図を示す図である。 図3は、実施の形態における統合ECUの構成図を示す図である。 図4は、実施の形態における統合ECUの構成図の詳細を示す図である。 図5は、実施の形態における外部アプリの構成図を示す図である。 図6は、実施の形態における制御アプリの構成図を示す図である。 図7は、実施の形態における映像アプリの構成図を示す図である。 図8は、実施の形態における外部仮想マシンの構成図を示す図である。 図9は、実施の形態における制御仮想マシンの構成図を示す図である。 図10は、実施の形態における映像仮想マシンの構成図を示す図である。 図11は、実施の形態におけるハイパーバイザの構成図を示す図である。 図12は、実施の形態におけるセキュアアプリの構成図を示す図である。 図13は、実施の形態における監視サーバーの構成図を示す図である。 図14は、実施の形態における監視情報の一例を示す図である。 図15は、実施の形態における監視情報の一例を示す図である。 図16は、実施の形態におけるシステム状態の一例を示す図である。 図17は、実施の形態における監視構成の一例を示す図である。 図18は、実施の形態における監視構成の一例を示す図である。 図19は、実施の形態における監視構成の一例を示す図である。 図20は、実施の形態における監視構成の一例を示す図である。 図21は、実施の形態における監視変更ルールの一例を示す図である。 図22は、実施の形態における監視結果表示の一例を示す図である。 図23は、実施の形態における監視結果表示の一例を示す図である。 図24は、実施の形態における、アプリ監視部の監視処理のシーケンスを示す図である。 図25は、実施の形態における、VM監視部の監視処理のシーケンスを示す図である。 図26は、実施の形態における、HV監視部の監視処理のシーケンスを示す図である。 図27は、実施の形態における、SA監視部の監視処理のシーケンスを示す図である。 図28は、実施の形態における、監視サーバー通知処理のシーケンスを示す図である。 図29は、実施の形態における、管理部から監視変更する処理のシーケンスを示す図である。 図30は、実施の形態における、監視処理のフローチャートを示す図である。 図31は、実施の形態における、監視変更処理のフローチャートを示す図である。 図32は、実施の形態における、統合ECUの構成図の詳細の変形例1を示す図である。 図33は、実施の形態における、統合ECUの構成図の詳細の変形例2を示す図である。
 近年、自動運転などの先進機能を利用者へ提供するため、車載システムが複雑化している。複雑化に伴って増大する開発期間やコストの課題を解消するため、従来複数のECU(Electronic Control Unit)に分かれて搭載されていた機能を1つのECUへ統合する動きがある。ECUの統合において、1つのECUに複数の仮想的なコンピュータを動作させるために仮想化技術が利用されている。その仮想的なコンピュータは仮想マシンと呼ばれ、複数の仮想マシンを動作させる仮想化基盤となるソフトウェアはハイパーバイザと呼ばれる。
 ハイパーバイザ内の仮想ソフトウェアまたはデバイスドライバに含まれる脆弱性や仕様の不具合が顕著化した場合、ハイパーバイザまたは仮想マシンに割り当てられるメモリ領域が改ざんされ得るという問題がある。その対策として、特許文献1には、仮想ソフトウェア上に、監視用の仮想マシンと監視対象となる仮想マシンを配置し、監視用の仮想マシンから監視対象を監視することで、監視対象における異常を検知する方法が記載されている。
 ところで、車両システムにおいて、第三者のアプリケーションを自由にインストール可能なIVI(In-Vehicle Infotainment)システムと、車両の走る、止まる、曲がるなどの制御を指示することで自動運転を支援するADAS(Advanced Driver Assistance System)とを1つのECUに統合する場合、第三者の悪意のあるアプリケーションによってADASの制御方法に関連するメモリ領域が改ざんされると、車両の運転に支障をきたす恐れがある。
 しかしながら、特許文献1の方法は、監視用の仮想マシンが改ざんされていない場合は監視対象の異常を検知可能であるが、監視用の仮想マシン自体が第三者の悪意のあるアプリケーションによって改ざんされた場合は、異常を検知できない課題がある。
 上記課題を解決するために、本開示の一態様に係る監視装置は、それぞれがソフトウェア及び通信ログの少なくとも1つを監視対象として監視する3以上の監視部を備え、前記3以上の監視部は、第一の実行権限にて動作する第一の監視部と、前記第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、前記第二の実行権限と信頼性が同じ、または、前記第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含み、前記第一の監視部は、前記第二の監視部のソフトウェアを監視し、前記第一の監視部及び前記第二の監視部の少なくとも1つは、前記第三の監視部のソフトウェアを監視する。
 これにより、システムに侵入した攻撃者は弱い第三の実行権限を獲得後、より強い第二の実行権限、第一の実行権限の獲得を目指すと想定できるため、第二の実行権限よりも弱い第三の実行権限が乗っ取られた後、第三の監視部のソフトウェアを改ざんすることで監視を回避しようと試みた場合であっても、第一の監視部または第二の監視部から第三の監視部のソフトウェアの異常を検知できる効果がある。また、強い実行権限でプログラムを動作させる環境とは弱い実行権限でプログラムを動作させる環境は分離されると想定できるため、実行権限が異なる3段階の監視部を用いることによって、3種類の環境に渡って広い範囲の監視対象を監視できる効果がある。また、強い実行権限で動作するソフトウェアは脆弱性を含まないように単純なアルゴリズムで実装されると想定できるため、強い実行権限で動作する監視部には単純なアルゴリズムを採用し、弱い実行権限で動作する監視部には高度で複雑なアルゴリズムを採用できる効果がある。
 また、前記3以上の監視部は、4以上の監視部を備え、前記4以上の監視部は、前記第一の監視部と、前記第二の監視部と、前記第三の監視部と、前記第三の実行権限と信頼性が同じ、または、前記第三の実行権限よりも信頼性が低い第四の実行権限にて動作する第四の監視部とを含み、前記第一の監視部、前記第二の監視部、及び、前記第三の監視部の少なくとも1つは、前記第四の監視部のソフトウェアを監視してもよい。
 これにより、システムに侵入した攻撃者は弱い第四の実行権限を獲得後、より強い第三の実行権限、強い第二の実行権限、第一の実行権限の獲得を目指すと想定できるため、第三の実行権限よりも弱い第四の実行権限が乗っ取られた後、第四の監視部のソフトウェアを改ざんすることで監視を回避しようと試みた場合であっても、第一の監視部または第二の監視部、第三の監視部から第四の監視部のソフトウェアの異常を検知できる効果がある。また、強い実行権限でプログラムを動作させる環境とは弱い実行権限でプログラムを動作させる環境は分離されると想定できるため、実行権限が異なる4段階の監視部を用いることによって、4種類の環境に渡って広い範囲の監視対象を監視できる効果がある。また、強い実行権限で動作するソフトウェアは脆弱性を含まないように単純なアルゴリズムで実装されると想定できるため、強い実行権限で動作する監視部には単純なアルゴリズムを採用し、弱い実行権限で動作する監視部には高度で複雑なアルゴリズムを採用できる効果がある。
 また、前記監視装置は、セキュアアプリ、仮想ソフトウェア基盤、及び、1以上の仮想マシン上にて動作し、前記第一の実行権限は、セキュアアプリの実行権限、仮想ソフトウェア基盤の実行権限、及び、仮想マシンのカーネル実行権限のうちの1つであり、前記第二の実行権限は、前記仮想ソフトウェア基盤の実行権限、前記仮想マシンのカーネル実行権限、及び、前記仮想マシンのユーザ権限のうちの1つであり、前記第三の実行権限は、前記仮想マシンのカーネル実行権限、及び、前記仮想マシンのユーザ権限のうちの1つであり、前記セキュアアプリの実行権限は、前記仮想ソフトウェア基盤の実行権限よりも信頼性が高く、前記仮想ソフトウェア基盤の実行権限は、前記仮想マシンのカーネル実行権限よりも信頼性が高く、前記仮想マシンのカーネル実行権限は、前記仮想マシンのユーザ権限よりも信頼性が高くてもよい。
 これにより、仮想マシンのユーザアプリの脆弱性をついて仮想マシンのユーザ権限を獲得した攻撃者は、仮想マシンのカーネル権限、ハイパーバイザの実行権限、セキュアアプリの実行権限の獲得を目指すと想定できるため、仮想マシンのユーザ権限、仮想マシンのカーネル権限、ハイパーバイザの実行権限を乗っ取られた後、乗っ取った実行権限で動作する監視部のソフトウェアを改ざんして監視を回避しようと試みた場合であっても、より強い実行権限の監視部から弱い実行権限の監視部の異常を検知できる効果がある。また、セキュアアプリの実行権限やハイパーバイザの実行権限では、仮想マシンのユーザ空間のソフトウェアや、仮想マシンのユーザ空間のネットワークログ、仮想マシンのユーザ空間とカーネル空間の間のシステムコールといった通信ログの取得が困難であると想定できるため、実行権限ごとに監視部を分離することによって、より広い範囲の監視対象を監視できる効果ある。また、セキュアアプリの実行権限とハイパーバイザの実行権限、仮想マシンのカーネル権限で動作するソフトウェアは脆弱性を含まないように単純なアルゴリズムで実装されると想定できるため、強い実行権限で動作する監視部には単純なアルゴリズムを採用し、弱い実行権限で動作する監視部には高度で複雑なアルゴリズムを採用できる効果がある。
 また、前記監視装置は、仮想ソフトウェア基盤及び2以上の仮想マシン上にて動作し、前記仮想マシンに割り当てられた実行権限にて動作する監視部が2以上存在する場合、前記仮想マシンに割り当てられた実行権限にて動作する2以上の監視部のうちの第一の仮想マシンの監視部は、前記2以上の監視部のうちの第二の仮想マシンの監視部のソフトウェアを監視対象に含み、前記2以上の仮想マシンは、攻撃者によって改ざんされる可能性に応じて前記第一の仮想マシン及び前記第二の仮想マシンのいずれかに分類されてもよい。
 これにより、外部ネットワークからシステムに侵入し、外部ネットワークと接続される仮想マシンのユーザ権限及びカーネル権限を獲得した攻撃者は、他の仮想マシンの機能獲得を目指すと想定できるため、外部ネットワークと接続される改ざんリスクの高い第二の仮想マシンの監視部が乗っ取られた場合であっても、外部ネットワークと接続しない改ざんリスクの低い第一の仮想マシンの監視部から第二の仮想マシンの監視部のソフトウェアの異常を検知できる効果がある。また、車両の制御機能を有する仮想マシンは、改ざんされた場合の安全性への影響が大きく、攻撃者の対象になりやすいため、より信頼可能な仮想マシンの監視部から監視することで、安全性を維持できる効果がある。もしくは、車両の制御機能を有する仮想マシンは、外部ネットワークから隔離されており、高い機能安全レベルの要求を満たすためにセキュアな設計と実装が十分考慮されていると想定できるため、車両の制御機能を有する仮想マシンは信頼可能な第一の仮想マシンとして扱うことができる効果がある。また、実行権限だけを考慮すると、改ざんリスクの高い第二の監視マシンの監視部は、セキュアアプリまたはハイパーバイザの実行権限から監視する必要があるが、実行権限が同一である第一の監視マシンの監視部から第二の監視マシンの監視部を監視できるため、セキュアアプリの実行権限とハイパーバイザの実行権限で動作するソフトウェアを単純化できる効果がある。また、外部ネットワークからシステムに侵入し、特定の仮想マシンのユーザ権限及びカーネル権限を獲得した攻撃者は、他の仮想マシンの機能獲得を目指すと想定できるため、第一の仮想マシンの監視部と、第二の仮想マシンが相互監視または巡回監視を行うことによって、特定の仮想マシンが乗っ取られた場合であっても、それ以外の仮想マシンの監視部から特定の仮想マシンの異常を検知できる効果がある。
 また、前記監視装置は、セキュアアプリ、ホストオペレーティングシステム、1以上の仮想ソフトウェア基盤、及び、1以上の仮想マシン上、または、1以上のコンテナ仮想化基盤及び2以上のコンテナ上にて動作し、前記第一の実行権限と、前記第二の実行権限と、前記第三の実行権限と、前記第四の実行権限とは、セキュアアプリの実行権限と、ホストオペレーティングシステムの実行権限と、仮想ソフトウェア基盤の実行権限と、仮想マシンのカーネル実行権限と、仮想マシンのユーザ実行権限と、コンテナの実行権限とのうちの1つであり、同一の実行権限にて動作する仮想マシンの監視部が2以上存在する場合、前記同一の実行権限にて動作する2以上の仮想マシンの2以上の監視部のうちの第一の仮想マシンの監視部は、前記2以上の仮想マシンの前記2以上の監視部のうちの第二の仮想マシンの監視部のソフトウェアを監視対象に含み、前記2以上の仮想マシンは、攻撃者によって改ざんされる可能性に応じて前記第一の仮想マシン及び前記第二の仮想マシンのいずれかに分類され、同一の実行権限にて動作するコンテナの監視部が2以上存在する場合、前記同一の実行権限にて動作する2以上のコンテナの2以上の監視部のうちの第一のコンテナの監視部は、前記2以上のコンテナの前記2以上の監視部のうちの第二のコンテナの監視部のソフトウェアを監視対象に含み、前記2以上のコンテナは、攻撃者によって改ざんされる可能性に応じて前記第一のコンテナ及び前記第二のコンテナのいずれかに分類されてもよい。
 これにより、ホストとなるオペレーティングシステムが、仮想ソフトウェア基盤であるハイパーバイザを用いて、複数の仮想マシンを実行及び管理する場合や、DockerやKubernetesなどに代表されるコンテナ仮想化基盤を用いて複数のコンテナを実行及び管理する場合であっても、外部ネットワークとの接続機能の有無など改ざんされる可能性に応じて仮想マシンまたはコンテナの信頼度は異なると想定できるため、複数の監視部を監視の信頼チェーンを構築することで、信頼度の低い第二の仮想マシンまたは第二のコンテナの監視部が乗っ取られた場合であっても、信頼度の高い第一の仮想マシンの監視部または第一のコンテナの監視部から異常を検知できる効果がある。
 また、前記3以上の監視部のそれぞれは、所定の時間経過、所定の外部ネットワーク接続時間経過、システム起動、システム再起動、外部ネットワーク接続確立、及び、外部デバイス接続、のうち少なくとも1つを含むイベントが発生したタイミングに応じて、前記監視対象の監視を開始してもよい。
 これにより、システム起動時にソフトウェアの完全性を検証するセキュアブートのように前段の監視部によって完全性が検証された監視部が、後段の監視部を検証するといった直列的な監視方法ではなく、非同期でソフトウェアの改ざんリスクが高いイベントに応じて監視を実施することで、監視処理の割り込み時間を短縮できる効果がある。さらに、仮想マシンごとのCPUの空き時間を活用して監視処理を行うなど、システムに負荷をかけることなく柔軟に監視処理の負担を配分できる効果がある。
 また、前記監視装置は、車載システム上において動作し、前記3以上の監視部のそれぞれは、所定の走行時間経過、所定の停止時間経過、所定の走行距離経過、走行モードの切り替え、給油または給電の終了、車両診断の実施、及び、緊急アラートの発呼、のうち少なくとも1つを含むイベントが発生したタイミングに応じて、前記監視対象の監視を開始してもよい。
 これにより、車載システムにおいて、ソフトウェアの改ざんリスクが高いイベントが発生するごとに、監視対象を監視することで、効率的に非同期監視を実施できる効果がある。
 また、前記3以上の監視部のそれぞれは、他の監視部の監視処理の実行回数、監視処理において異常と判定された回数、及び、監視処理において正常と判定された回数、のうち少なくとも1つの回数に到達したタイミングに応じて、前記監視対象の監視を開始してもよい。
 これにより、例えば、第一の監視部の監視対象である第二の監視部がすべての監視対象の数だけ監視処理を実行した後に、第一の監視部が第二の監視部のソフトウェアの監視処理を実施することで、第二の監視部の監視結果をすべて信頼するための監視処理の回数を1回に削減できる効果がある。また、例えば、第一の監視部の監視対象である第二の監視部が異常を1回検知した場合に、第一の監視部が第二の監視部のソフトウェアの監視処理を実行することで、第二の監視部の監視対象に異常が発生した場合にのみ監視処理を実行でき、監視処理の回数を削減できる効果がある。また、例えば、第一の監視部の監視対象である第二の監視部が正常を5回検出した場合に、第一の監視部が第二の監視部のソフトウェアの監視処理を1回実行することで、第一の監視部の監視処理を少なくでき、監視処理の回数を削減できる効果がある。これは、強い実行権限のソフトウェアを動作させるためには実行モードの切り替えが必要である場合が想定できるため、実行モードの切り替え回数を削減することでのオーバーヘッドを削減できる効果がある。
 また、前記3以上の監視部のそれぞれは、前記監視対象がソフトウェアである場合、メモリまたはストレージに記憶されている前記監視対象であるソフトウェアのハッシュ値、マスク値、及び、複製値のうち少なくとも1つの情報を取得値として取得し、事前に定義された正解値である期待値と前記取得値とを比較し、前記期待値と前記取得値とが一致する場合に前記ソフトウェアが正常であると判定し、前記期待値と前記取得値とが一致しない場合に前記ソフトウェアが異常であると判定してもよい。
 これにより、ソフトウェアの改ざんが行われた場合は、期待値と取得値が異なるため、ソフトウェア改ざんの有無を判定できる効果がある。また、ハッシュ値を用いることで、複製値よりも効率的に改ざんを判定でき、マスク値を用いることで複製値よりも効率的に改ざんの有無を判定できる効果がある。また、複製値を用いることで、ハッシュ値よりも正確に改ざんを判定でき、マスク値を用いることで、ハッシュ値よりも正確に改ざんを判定できる効果がある。
 また、前記ソフトウェアは、仮想ソフトウェア基盤のプログラム及び設定ファイルの組み合わせと、仮想マシンのカーネルプログラム及び設定ファイルの組み合わせと、仮想マシン上のユーザアプリのプログラム及び設定ファイルの組み合わせと、前記3以上の監視部のそれぞれのプログラム及び設定ファイルの組み合わせとのうち少なくとも1つの組み合わせを含んでもよい。
 これにより、ハイパーバイザと仮想マシンとユーザアプリと監視部に関連するソフトウェアの改ざんの有無を判定できる。
 また、前記3以上の監視部のそれぞれは、前記監視対象が通信ログである場合、通信ログを取得し、許可リストと、拒否リストと、正常時の統計情報とのうち少なくとも1つを用いて前記通信ログを検証し、(i)前記許可リストに含まれる場合に前記通信ログが正常であると判定し、前記許可リストに含まれない場合に前記通信ログが異常であると判定する第一判定、(ii)前記拒否リストに含まれない場合に前記通信ログが正常であると判定し、前記拒否リストに含まれる場合に前記通信ログが異常であると判定する第二判定、及び、(iii)前記正常時の統計情報から逸脱していない場合に前記通信ログが正常であると判定し、前記正常時の統計情報から逸脱している場合に前記通信ログが異常であると判定する第三判定、のいずれか1つの判定を行ってもよい。
 これにより、異常な通信が送受信された場合は許可リストに含まれず、拒否リストに含まれ、正常時の統計情報から逸脱するため、通信の異常を判定できる。さらに、異常な通信の送信元や宛先情報を取得でき、送信元のソフトウェアが改ざんされている可能性が高く、宛先のソフトウェアが次の攻撃の対象になっている可能性が高いと把握できる効果がある。
 また、前記通信ログは、イーサネットと、CANプロトコルと、FlexRayプロトコルと、SOME/IPプロトコルと、SOME/IP-SDプロトコルと、システムコールと、ハイパーコールとのうち少なくとも一つを含んでもよい。
 これにより、車載システムに搭載されるネットワークプロトコルを監視対象とすることで、プロトコル特有のパラメータを用いて通信の異常を判定できる効果がある。さらに、異常と判定された通信ログから送信元と宛先を取得でき、異常が発生しうる監視部や監視対象を特定できる効果がある。さらに、特権命令であるシステムコールや、ハイパーコールを監視対象とすることで、実行権限の境界にて発生する異常を判定でき、異常が発生しうる監視部や監視対象を特定できる効果がある。
 また、前記3以上の監視部のそれぞれは、前記監視対象ごとに設定された優先度に応じて、前記監視対象の監視頻度と、前記監視対象の検証方法と、前記監視対象の選択方法のうち少なくとも1つを変更してもよい。
 これにより、監視対象ごとに改ざんされる可能性と改ざんされた場合の影響の大きさには差があると想定できるため、監視対象ごとに適切な優先度を設定することで、限られたリソース内で改ざんリスクの高い監視対象を重点的に監視できる効果がある。
 また、前記優先度は、前記監視対象の実行権限と、前記3以上の監視部のうちの1つの監視部または前記監視が動作する仮想マシンが外部ネットワーク接続機能を有するか否かと、前記1つの監視部または前記監視が動作する仮想マシンが車両制御機能を有するか否かとのうち少なくとも1つに応じて設定されてもよい。
 これにより、強い実行権限で動作するソフトウェアは脆弱性を含まないように単純なアルゴリズムで実装されると想定できるため、改ざんされる可能性が低いため優先度を低く設定できる効果がある。また、外部ネットワークと接続されない仮想マシンや、信頼可能な車両の制御機能をもつ仮想マシンは改ざんされる可能性が低いため、優先度を低く設定できる効果がある。
 また、前記監視装置は、さらに、前記監視装置が動作するシステムの状態またはイベントに応じて、監視情報に含まれる優先度と、前記監視対象に含まれる監視担当及び監視対象の組み合わせである監視構成とのうち少なくとも1つを変更する管理部を含んでもよい。
 これにより、システムの状態またはイベントによって監視対象の重要度に差がある場合、監視情報を適切な固定値として設定することは困難であると想定できるため、システム起動後であっても監視情報と監視構成を柔軟に変更することで、効果的に監視できる効果がある。例えば、優先度を柔軟に変更し、優先度に応じて監視対象の監視頻度と監視精度と監視手段を変更することで、限られたリソース内で改ざんリスクの高い監視対象を重点的に監視できる効果がある。また、一つの仮想マシンが再起動するなど、一部の監視部が動作できない状態になった場合に他の監視部が動作できない監視対象の監視を引き継ぐように監視情報を変更することで、監視対象を継続的に監視できる効果がある。また、例えば、一つの仮想マシンが異常と判定された場合に他の監視部が監視対象の監視を引き継ぐことで、監視対象を信頼できる監視部から監視できる効果がある。また、例えば、一つの仮想マシンが異常と判定された場合に他の監視部が監視対象の監視を追加で実施することで、複数の監視部によって監視を強化できる効果がある。また、例えば、一つの仮想マシンのCPUやメモリのリソースが圧迫している場合、他の監視部が監視対象の監視を引き継ぐことで、リソースが圧迫によるシステム影響を低減できる効果がある。
 また、前記管理部は、外部ネットワーク接続中か否かと、外部ネットワーク接続確立イベントの発生の有無と、監視マシンのシステム状態と、前記監視部の監視結果と、異常を検知した監視部の実行権限と、異常を検知したソフトウェアの実行権限と、異常を検知した通信ログの宛先または送信元とのうち少なくとも1つに応じて、前記優先度を変更してもよい。
 これにより、ネットワーク接続に関する状態は攻撃可能性に影響するため、監視対象の攻撃可能性の変化に応じて優先度を変更できる効果がある。さらに、ソフトウェアの異常が判定された場合、異常ソフトウェアと同じ仮想マシンのソフトウェアや、同じ実行権限で動作するソフトウェアや、異常を判定した監視部のソフトウェアにおいて、攻撃が発生する可能性が高いと想定できるため、攻撃可能性の変化に応じて優先度を変更できる効果がある。さらに、通信の異常を判定した場合、通信の送信元に異常が発生している可能性が高く、通信の送信先に攻撃が発展する可能性が高いため、攻撃可能性の変化に応じて優先度を変更できる効果がある。
 また、前記監視装置は、車載システム上において動作し、前記管理部は、車両の走行状態に応じて、車両の制御機能を有する仮想マシンで動作する監視対象の優先度を変更し、車両の走行状態は、停止中、手動運転中、高度運転支援中、及び、自動運転中のうちいずれかであってもよい。
 これにより、自動運転中や高度運転支援中の場合、車両の制御機能を有する制御仮想マシンのソフトウェアから、車両の走る、曲がる、止まるに関わる制御コマンドが送信され、エンジン、ステアリング、ブレーキなど制御する制御ECUが制御コマンドに従うと想定でき、ソフトウェア改ざんの影響が大きいため、車両の制御機能を有する制御仮想マシンのソフトウェアの優先度を上げて重点的に監視できる効果がある。一方で、停止中または手動走行中の場合、制御ECUが制御コマンドに従わない状態であると想定でき、ソフトウェア改ざんの影響が小さいため、車両の制御機能を有する制御仮想マシンのソフトウェアの監視の優先度を下げることで、他の監視対象の監視処理を優先できる効果がある。
 また、前記管理部は、前記監視構成の変更後であっても、信頼度の低い監視部のソフトウェアを前記信頼度の低い監視部よりも信頼度の高い監視部が監視する監視の信頼チェーンを構築できるように、監視構成を変更してもよい。
 これにより、監視構成を変更したとしても、強い実行権限の監視部から弱い実行権限の監視部のソフトウェアを監視することができ、改ざんされる可能性が低い仮想マシンの監視部から改ざんされる可能性の高い仮想マシンの監視部のソフトウェアを監視できるため、いずれかの弱い実行権限監視部が乗っ取られた場合であっても、異常を判定できる効果がある。
 また、前記管理部は、外部ネットワーク接続中か否かと、外部ネットワーク接続確立イベントの発生の有無と、仮想マシンのシステム状態と、前記監視部の監視結果と、異常を検知した監視部の実行権限と、異常を検知したソフトウェアの実行権限と、異常を検知した通信ログの宛先または送信元とのうち少なくとも1つに応じて、監視構成を変更してもよい。
 これにより、ネットワーク接続に関する状態は攻撃可能性に影響するため、監視対象の攻撃可能性の変化に応じて監視構成を変更できる効果がある。また、一つの仮想マシンが再起動するなど、一部の監視部が無効化状態になった場合に他の監視部が監視対象の監視を引き継ぐことで、監視対象を継続的に監視できる効果がある。さらに、一つの仮想マシンが異常と判定された場合に他の監視部が監視対象の監視を引き継ぐことで、監視対象を信頼できる監視部から監視できる効果がある。さらに、一つの仮想マシンが異常と判定された場合に他の監視部が監視対象の監視を追加で実施することで、複数の監視部によって監視を強化できる効果がある。さらに、一つの仮想マシンのCPUやメモリのリソースが圧迫している場合、他の監視部が監視対象の監視を引き継ぐことで、リソースが圧迫によるシステム影響を削減できる効果がある。
 また、前記監視装置は、車載システム上において動作し、前記管理部は、車両の走行状態に応じて、車両の制御機能を有する仮想マシンに関係する監視構成を変更し、前記車両の走行状態は、停止中、手動運転中、高度運転支援中、自動運転中のうちいずれかであってもよい。
 これにより、自動運転中や高度運転支援中の場合、車両の制御機能を有する制御仮想マシンのソフトウェアから、車両の走る、曲がる、止まるに関わる制御コマンドが送信され、エンジン、ステアリング、ブレーキなど制御する制御ECUが制御コマンドに従うと想定でき、ソフトウェア改ざんの影響が大きいため、複数の監視部によって制御仮想マシンのソフトウェアを監視するよう監視構成を変更できる効果がある。停止中または手動走行中の場合、制御ECUが制御コマンドに従わない状態であると想定でき、ソフトウェア改ざんの影響が小さいため、一つのみの監視部によって負荷の小さい通常の監視を実施できる効果がある。
 また、前記管理部は、(i)予め定義された2以上の監視構成から一つを選択する手段と、(ii)2以上の監視部を頂点とし、監視担当を道の始点とし、監視対象を道の終点とする有向グラフとして前記監視構成を記憶し、所定のアルゴリズムで有向グラフを再構築する手段と、(iii)前記2以上の監視部をノードとし、前記監視担当を親ノードとし、前記監視対象を子ノードとするツリー構造として前記監視構成を記憶し、所定のアルゴリズムでツリー構造を再構築する手段と、のうち少なくとも1つの手段で前記監視構成を変更してもよい。
 これにより、複数の監視構成のパターンから、現在のシステム状況及びイベントに応じて適切な監視構成に変更できる効果がある。また、監視構成を有向グラフのデータ構造で保持することで、一部の監視部が無効化または一部の監視部において異常が判定されたなどの場合に、少なくとも1つの監視部が監視対象を監視できるよう監視構成を再計算可能にする効果がある。また、前記管理部は、監視部をノードとし、監視担当を親ノードとし、監視対象を子ノードとするツリー構造として前記監視構成を記憶し、所定のアルゴリズムでツリー構造を再構築することで、前記監視構成を変更する、監視装置である。また、監視構成をツリー構造のデータ構造で保持することで、一部の監視部が無効化または一部の監視部において異常が判定されたなどの場合に、少なくとも1つの監視部が監視対象を監視できるよう監視構成を再計算可能にする効果がある。
 また、前記監視装置は、さらに、監視サーバーへ監視結果を通知する監視サーバー通信部を備えてもよい。
 これにより、監視サーバーを介して監視結果をセキュリティ分析官へ通知でき、異常が発生した場合にはソフトウェアの更新など対策を検討できる効果がある。
 本開示の一態様に係る監視システムは、監視装置と監視サーバーとで構成される監視システムであって、前記監視装置は、それぞれがソフトウェア及び通信ログの少なくとも1つを監視対象として監視する3以上の監視部と、監視部識別子と、監視対象識別子と、正常判定時刻と、異常判定時刻と、のうち少なくとも2つを監視結果として前記監視サーバーへ送信する監視サーバー通信部と、を備え、前記3以上の監視部は、第一の実行権限にて動作する第一の監視部と、前記第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、前記第二の実行権限と信頼性が同じ、または、前記第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含み、前記第一の監視部は、前記第二の監視部のソフトウェアを監視し、前記第一の監視部及び前記第二の監視部の少なくとも1つは、前記第三の監視部のソフトウェアを監視し、前記監視サーバーは、前記監視結果を受信し、グラフィカルユーザーインターフェース上に前記監視結果を表示する監視結果表示部を備える。
 これにより、セキュリティ分析官は監視結果を視覚的に把握することができ、異常が発生した場合にはソフトウェアの更新など対策を迅速に検討できる効果がある。
 また、前記監視結果表示部は、システムアーキテクチャに関連付けて前記監視結果を表示し、異常を検知した監視部または異常が検知された監視対象を強調する手段と、所定のタイムラインに関連付けて監視結果を表示し、正常判定時刻または異常判定時刻を強調する手段とのうち少なくとも1つの手段でグラフィカルユーザーインターフェース上に監視結果を表示してもよい。
 これにより、セキュリティ分析官は監視部の場所と、監視対象の場所、監視結果を直感的に把握することができ、異常が発生した場合にはソフトウェアの更新など対策をより迅速に検討できる効果がある。また、セキュリティ分析官は監視結果の時系列を直感的に把握することができ、異常が発生した場合にはソフトウェアの更新など対策をより迅速に検討できる効果がある。
 また、前記監視サーバーは、さらに、前記監視対象と、前記監視対象を監視する監視部と、前記監視対象の優先度と、前記優先度に対応した監視方法とのうち少なくとも1つの監視情報の変更を受け付け、前記監視装置に前記変更を要求する監視情報変更部を備え、前記監視装置は、さらに、前記監視情報変更部の要求に応じて前記監視情報を更新する監視情報更新部を備えてもよい。
 これにより、セキュリティ分析官は監視結果を分析した結果、監視対象や監視部、優先度、優先度ごとの監視方法などの修正が必要であると判断した場合に、迅速にシステムに修正を反映することができる効果がある。
 本開示の一態様に係る監視方法は、3以上の監視部を備える監視装置によって実行される監視方法であって、前記3以上の監視部は、第一の実行権限にて動作する第一の監視部と、前記第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、前記第二の実行権限と信頼性が同じ、または、前記第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含み、前記第一の監視部は、前記第二の監視部のソフトウェアを監視し、前記第一の監視部及び前記第二の監視部の少なくとも1つは、前記第三の監視部のソフトウェアを監視する。
 これにより、システムに侵入した攻撃者は弱い第三の実行権限を獲得後、より強い第二の実行権限、第一の実行権限の獲得を目指すと想定できるため、第二の実行権限よりも弱い第三の実行権限が乗っ取られた後、第三の監視部のソフトウェアを改ざんすることで監視を回避しようと試みた場合であっても、第一の監視部または第二の監視部から第三の監視部のソフトウェアの異常を検知できる効果がある。また、強い実行権限でプログラムを動作させる環境とは弱い実行権限でプログラムを動作させる環境は分離されると想定できるため、実行権限が異なる3段階の監視部を用いることによって、3種類の環境に渡って広い範囲の監視対象を監視できる効果がある。また、強い実行権限で動作するソフトウェアは脆弱性を含まないように単純なアルゴリズムで実装されると想定できるため、強い実行権限で動作する監視部には単純なアルゴリズムを採用し、弱い実行権限で動作する監視部には高度で複雑なアルゴリズムを採用できる効果がある。
 なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD-ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。
 以下、実施の形態に係る監視装置について図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、処理の要素としてのステップ及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
 (実施の形態)
 [監視システムの全体構成図]
 図1は、実施の形態における監視システムの全体構成図である。
 監視システムは、監視サーバー10と、車載システム20とを備える。監視サーバー10と車載システム20とは、外部ネットワーク30を介して接続される。
 外部ネットワーク30は、例えば、インターネットである。外部ネットワーク30の通信方法は、有線であっても無線であってもよい。また、無線通信方式は既存技術であるWi-Fi(登録商標)や、3G/LTE(Long Term Evolution)やBluetooth(登録商標)、V2X通信方式であってもよい。
 監視サーバー10は、車載システム20から車載システム20のセキュリティ状態に関する情報である監視結果を取得して、グラフィカルユーザーインターフェースを用いて監視結果を表示する装置である。監視サーバー10は、例えば、セキュリティオペレーションセンターにて、セキュリティ分析官が監視結果を確認して、車載システム20において異常が発生した場合にソフトウェア更新などの対策を検討する際に利用される。
 車載システム20は、通信の制御、車両の制御、及び、映像の出力などを実施し、車載システム20のセキュリティ状態を監視し、監視サーバー10へセキュリティ状態の監視結果を通知する装置である。図1では、車載システム20は1台のみ記載しているが、1以上の車載システム20それぞれが、監視サーバー10へセキュリティ状態の監視結果を送信する。車載システム20の詳細は後述する。
 [車載システム20の全体構成図]
 図2は、実施の形態における車載システムの構成図を示す図である。
 車載システム20は、統合ECU200と、ゲートウェイECU300と、ステアリングECU400aと、ブレーキECU400bと、ZoneECU500と、フロントカメラECU600aと、リアカメラECU600bとを備える。
 統合ECU200と、ゲートウェイECU300とは、ネットワークプロトコルの一種のCAN(Control Area Network)であるCAN40を介して接続される。ここで利用されるネットワークプロトコルは、CANに限らずに、CAN-FDや、FlexRayプロトコルなどの車載システムで利用されるネットワークプロトコルであってもよい。
 また、ゲートウェイECU300と、ステアリングECU400aと、ブレーキECU400bとは、CAN41を介して接続される。
 また、統合ECU200と、ZoneECU500とは、ネットワークプロトコルの一種のEthernet(商標登録)のプロトコルであるイーサネット50を介して接続される。イーサネット50は、例えば、SOME/IP(Scalable Service-Oriented MiddlewarE over IP)プロトコルである。ここで利用されるネットワークプロトコルは、SOME/IPでなくとも、SOME/IP-SDや、CAN-XLなど車載システムで利用されるネットワークプロトコルであってもよい。
 また、ZoneECU500と、フロントカメラECU600aと、リアカメラECU600bとは、イーサネット51を介して接続される。イーサネット51は、イーサネット50と同じネットワークプロトコルであってもよいし、異なるネットワークプロトコルであってもよい。
 また、統合ECU200と、監視サーバー10とは、外部ネットワーク30を介して接続される。
 統合ECU200は、外部ネットワーク30、CAN40及びイーサネット50を介してメッセージを送受信する通信制御と、CAN40及びイーサネット50を介してゲートウェイECU300及びZoneECU500へ車両の制御を指示する車両制御と、インフォテイメントシステムやインストルメントパネルへの映像出力とを実施するECUである。また、統合ECU200は、統合ECU200のセキュリティ状態を監視し、監視サーバー10へ監視結果を通知するECUである。統合ECU200の詳細は後述する。
 ゲートウェイECU300は、統合ECU200と、ステアリングECU400a及びブレーキECU400bとの間で送受信されるメッセージを仲介するECUである。
 ステアリングECU400aは、車両に搭載されるステアリングによる操舵を制御するECUである。
 ブレーキECU400bは、車両に搭載されるブレーキを制御するECUである。
 車載システム20は、ステアリングECU400a及びブレーキECU400bの他に、車両のエンジンやボディを制御するECUを用いて車両の走る、曲がる、止まるといった制御を実現する。
 ZoneECU500は、統合ECU200と、フロントカメラECU600a及びリアカメラECU600bとの間で送受信されるメッセージを仲介するECUである。
 フロントカメラECU600aは、車両の前方に搭載され、車両の前方を撮影するカメラの映像を取得するECUである。
 リアカメラECU600bは、車両の後方に搭載され、車両の後方を撮影するカメラの映像を取得するECUである。
 図2では、フロントカメラECUとリアカメラECUのみを記載しているが、GPSなどの各種センサー情報を収集するECUを用いて、自動運転やアダプティブクルーズコントロール、自動駐車などの先進運転支援機能を実現する。
 [統合ECUの構成図]
 図3は、実施の形態における統合ECU200の構成図である。統合ECU200は、外部アプリA100と、制御アプリA200と、映像アプリA300と、外部仮想マシンVM100と、制御仮想マシンVM200と、映像仮想マシンVM300と、ハイパーバイザHV100と、セキュアアプリSA100と、セキュアオペレーティングシステムSOS100とを備える。なお、以下では、外部アプリA100と、制御アプリA200と、映像アプリA300を総称してアプリケーションと呼ぶことがある。また、外部仮想マシンVM100と、制御仮想マシンVM200と、映像仮想マシンVM300を総称して仮想マシンと呼ぶことがある。統合ECU200は、監視装置の一例である。
 ハイパーバイザHV100は、ハイパーバイザ等の仮想ソフトウェア基盤であり、1以上の仮想マシンを実行及び管理するソフトウェアである。一般に、ハイパーバイザは、タイプ1と呼ばれるベアメタル型ハイパーバイザと、タイプ2と呼ばれるホスト型とに区別される。組み込みシステムでは、一般に、ハイパーバイザによる処理のオーバーヘッドを考慮して、タイプ1が用いられる。タイプ1のハイパーバイザは、コードサイズが小さいため、脆弱性を含む可能性が低く、アプリケーションや仮想マシンと比較して信頼できると想定できる。
 実施の形態では、仮想化システムがタイプ1のハイパーバイザにより実現される例について説明するが、仮想化システムは、タイプ2のハイパーバイザにより実現されてもよいし、コンテナ型の仮想化アプリケーションにより実現されてもよい。
 セキュアオペレーティングシステムSOS100は、脆弱性を含まないように実装された信頼可能なオペレーティングシステムである。さらに、システム起動時に信頼可能なハードウェアのRoot Of Trustからオペレーティングシステムのソフトウェアは検証されるため、アプリケーション、仮想マシン、及び、ハイパーバイザHV100の中で最も信頼できると想定できる。セキュアオペレーティングシステムSOS100は、例えば、TEE(Trusted Execution Environment)と呼ばれる実行環境の制御を用いて実現される。また、セキュアオペレーティングシステムSOS100は、例えば、ARM系のCPU(Central Processing Unit)におけるCortex-Aファミリでは標準機能の1つであるTrustZone機構により実現され得る。また、セキュアオペレーティングシステムSOS100は、AppleのSEP(Secure Enclave Processor)、または、GoogleのTitanMなどによっても実現され得る。
 セキュアアプリSA100は、脆弱性を含まないように実装された信頼可能なアプリケーションである。セキュアアプリSA100は、信頼できるセキュアオペレーティングシステムSOS100の上で動作するため、アプリケーション、仮想マシン、及び、ハイパーバイザHV100より信頼できると想定できる。一方で、セキュアアプリSA100は、脆弱性を含まない実装が求められるため、セキュアアプリSA100のプログラムは単純であることが要求される。
 外部アプリA100は、外部ネットワーク30を介して監視サーバー10と通信するアプリケーションである。外部アプリA100は、攻撃者の侵入口となりうる外部ネットワーク30と接続されるため、外部ネットワーク30と接続されていない制御アプリA200及び映像アプリA300に比べて脆弱であると想定できる。
 外部仮想マシンVM100は、外部アプリA100を動作させるオペレーティングシステムである。外部仮想マシンVM100は、攻撃者の侵入口となりうる外部アプリA100を動作させているため、制御仮想マシンVM200及び映像仮想マシンVM300に比べて脆弱であると想定できる。
 制御アプリA200は、CAN40を介してゲートウェイECU300と通信し、車載システム20を備える車両の走行に関する動作を制御するアプリケーションである。制御アプリA200は、外部ネットワーク30と接続されていないため、外部アプリA100に比べて信頼できると想定できる。さらに、制御アプリA200は、車両の走行に関する動作の制御に関わるソフトウェア開発では、機能安全規格に適用するため、セキュアな設計及び実装がなされる。このため、制御アプリA200は、外部アプリA100に比べて信頼できると想定できる。ただし、制御アプリA200は、乗っ取られた場合、車両の走行に関する動作の制御の機能を攻撃者が使えるため、車両の走行に関する動作への影響が大きいと想定できる。
 制御仮想マシンVM200は、制御アプリA200を動作させるオペレーティングシステムである。制御仮想マシンVM200は、外部ネットワーク30と接続されていないため、攻撃者の侵入口となりうる可能性は低いと想定できる。さらに、制御仮想マシンVM200は、車両の走行に関する動作の制御に関わるソフトウェア開発では、機能安全規格に適用するため、セキュアな設計及び実装がなされる。このため、制御仮想マシンVM200は、外部アプリA100または外部仮想マシンVM100に比べて信頼できると想定できる。ただし、制御仮想マシンVM200は、乗っ取られた場合、車両の走行に関する動作の制御の機能を攻撃者が使えるため、外部仮想マシンVM100または映像仮想マシンVM300が乗っ取られた場合と比較して、影響が大きいと想定できる。
 映像アプリA300は、イーサネット50を介してZoneECU500と通信し、カメラの映像などを取得し、インフォテイメントシステムやインストルメントパネル、ヘッドアップディスプレイに映像を出力するアプリケーションである。また、カメラ映像は自動運転などの先進運転支援機能を実現するための情報としても利用される。映像アプリA300は、外部ネットワーク30と接続されていないため、攻撃者の侵入口となる可能性が低く、外部アプリA100に比べて信頼できると想定できる。また、映像アプリA300は、乗っ取られた場合、車両の走行に関する動作の制御の機能を攻撃者は使えないため、制御仮想マシンVM200が乗っ取られた場合と比較して、車両の走行に関する動作への影響が小さいと想定できる。
 映像仮想マシンVM300は、映像アプリA300を動作させるオペレーティングシステムである。映像仮想マシンVM300は、外部ネットワーク30と接続されていないため、攻撃者の侵入口となる可能性が低く、外部アプリA100に比べて信頼できると想定できる。また、映像仮想マシンVM300は、乗っ取られた場合、車両の走行に関する動作の制御の機能を攻撃者は使えないため、制御仮想マシンVM200が乗っ取られた場合と比較して、車両の走行に関する動作への影響が小さいと想定できる。
 ここで、各プログラムの実行権限について説明する。一般に、CPUは複数の特権レベルを各プログラムに割り当てることができる。例えば、ARM系のCPUでは、EL(Exception Level)に対応し、Intel系のCPUでは、Protection Ringに対応する。さらに、CPUは、TEEを用いてセキュアワールドとノーマルワールドの2種類の実行環境の制御することで、セキュアにプログラムを実行することができる。一般に、この特権レベルと2種類の実行環境の制御によって、5種類の実行権限が使い分けられる。実施の形態においては、セキュアオペレーティングシステムSOS100に、最も強いセキュアな実行権限(PL4)を割り当て、オペレーティングシステム上のアプリケーション(つまり、セキュアアプリSA100)に次に強いセキュアな実行権限(PL3)を割り当て、ハイパーバイザHV100に次に強い実行権限(PL2)を割り当て、仮想マシン(つまり、外部仮想マシンVM100、制御仮想マシンVM200及び映像仮想マシンVM300)に次に強い実行権限(PL1)を割り当て、仮想マシン上のアプリケーション(つまり、外部アプリA100、制御アプリA200及び映像アプリA300)に最も弱い実行権限(PL0)を割り当てる。また、弱い実行権限で動作するプログラムから、強い実行権限で動作するソフトウェアが改ざんされることは基本的には困難である。しかし、実行権限が強い場合であっても、脆弱性や設計不備によってソフトウェアを改ざんされる可能性があるため、強い実行権限で動作するソフトウェアはシンプルなプログラムであること要求される。
 上述した通り、外部アプリA100が改ざんされる可能性が最も高いため信頼度が低く、制御アプリA200、映像アプリA300、外部仮想マシンVM100、制御仮想マシンVM200、映像仮想マシンVM300、ハイパーバイザHV100、セキュアアプリSA100、及び、セキュアオペレーティングシステムSOS100の順番に、改ざんされる可能性が低くなる。改ざんされる可能性が低いことは信頼度が高いことを意味する。
 ここで、攻撃者の攻撃シナリオについて説明する。攻撃者は、外部アプリA100の脆弱性を悪用して、外部ネットワーク30から外部仮想マシンVM100へ侵入し、ユーザ権限を獲得する。そして、外部仮想マシンVM100のシステムコール等の脆弱性を突いて、外部仮想マシンVM100のカーネル権限を獲得する。そして、ハイパーバイザHV100のハイパーコール等の脆弱性を突いて、ハイパーバイザHV100の権限または制御仮想マシンVM200や映像仮想マシンVM300の権限を獲得する。ここで、ハイパーコールとは、例えば、仮想マシン間の内部通信と、仮想マシンの起動や終了を指示する特権命令である。
 上述した攻撃シナリオにおいて、攻撃者の振る舞いを正確に捕捉するために、アプリケーション、仮想マシン、ハイパーバイザHV100、及び、セキュアアプリSA100それぞれにセキュリティ対策機構が導入されることが想定される。セキュリティ対策機構は後述するアプリケーション監視部、仮想マシン監視部、HV監視部HV110、及び、SA監視部SA110を含む。
 なお、図3では記載が省略されているが、燃料や給電状態、給油状態を管理する機能、事故などシステム異常が発生した場合に緊急アラートを発呼する機能、車両診断を制御する機能、外部デバイス接続を監視する機能が統合ECU200に搭載される。
 [統合ECUの構成図の詳細]
 図4は、実施の形態における統合ECUの構成図の詳細を示す図である。
 外部アプリA100は外部通信とアプリ領域のソフトウェアとを監視するアプリ監視部A110を備え、制御アプリA200はCAN通信とアプリ領域のソフトウェアとを監視するアプリ監視部A210を備え、映像アプリA300はイーサネット通信とアプリ領域のソフトウェアとを監視するアプリ監視部A310を備える。なお、アプリ領域のソフトウェアとは、ユーザ領域のソフトウェアである。以下、アプリ監視部A110と、アプリ監視部A210と、アプリ監視部A310とを総称してアプリケーション監視部と呼ぶことがある。また、外部仮想マシンVM100はシステムコールとハイパーコールとVM領域(OS領域またはカーネル領域とも呼ぶ)のソフトウェアとアプリ領域のソフトウェアとを監視するVM監視部VM110を備え、制御仮想マシンVM200はシステムコールとハイパーコールとVM領域(OS領域またはカーネル領域とも呼ぶ)のソフトウェアとアプリ領域のソフトウェアとを監視するVM監視部VM210を備え、映像仮想マシンVM300はシステムコールとハイパーコールとVM領域(OS領域またはカーネル領域とも呼ぶ)のソフトウェアとアプリ領域のソフトウェアとを監視するVM監視部VM310を備える。以下、VM監視部VM110と、VM監視部VM210と、VM監視部VM310とを総称して仮想マシン監視部と呼ぶことがある。また、ハイパーバイザHV100はHV領域のソフトウェアとVM領域のソフトウェアとを監視するHV監視部HV110を備える。また、セキュアアプリSA100はHV領域のソフトウェアとVM領域のソフトウェアとを監視するSA監視部SA110と、監視情報を管理する管理部SA120を備える。以下、アプリケーション監視部と、仮想マシン監視部と、HV監視部HV110と、SA監視部SA110とを総称して多層監視部と呼ぶことがある。監視情報の詳細は後述する。アプリケーションと、アプリケーション監視部と、仮想マシンと、仮想マシン監視部と、ハイパーバイザHV100と、HV監視部HV110と、セキュアアプリSA100と、SA監視部SA110との詳細は後述する。
 このように、攻撃者の振る舞いを正確に捕捉するために、アプリケーション、仮想マシン、ハイパーバイザHV100、及び、セキュアアプリSA100のそれぞれにセキュリティ対策機構であるアプリケーション監視部と、仮想マシン監視部と、HV監視部HV110と、SA監視部SA110とが導入された構成の統合ECU200が想定される。しかし、攻撃者は獲得した実行権限において実行されるセキュリティ対策機構のソフトウェアを改ざんすることで、セキュリティ対策機構を無効化できるため、単純にセキュリティ対策機構を導入するだけでは不十分である。
 また、セキュリティ対策機構を改ざんされる可能性が低いセキュアアプリSA100やセキュアオペレーティングシステムSOS100にすべてのセキュリティ対策機構を実装することが想定されるが、上述の通り、脆弱性が含まれないシンプルなプログラムが要求されるため、複雑なアルゴリズムがセキュリティ対策機構に必要とされる場合、すべてのセキュリティ対策機構の実装は困難である。例えば、ネットワークの異常検知に利用される通信ログの蓄積処理や統計処理、機械学習による処理は、セキュアアプリSA100やセキュアオペレーティングシステムSOS100では実施できない場合がある。また、実行環境の分離によって、セキュアアプリSA100やセキュアオペレーティングシステムSOS100がアクセス可能なストレージ領域及びメモリ領域は限定されるため、セキュリティ対策機構に必要な対象を取得できない場合、セキュリティ対策機構の実装は困難である。例えば、セキュアアプリSA100やセキュアオペレーティングシステムSOS100からは、アプリケーションのソフトウェアや、アプリケーションが利用する通信を取得できない場合がある。
 上記2つの理由から、アプリケーション、仮想マシン、ハイパーバイザHV100、及び、セキュアアプリSA100のそれぞれにセキュリティ対策機構を導入することが望ましいが、セキュリティ対策機構自体が改ざんされるリスクが課題となる。そこで、例えば、SA監視部SA110がHV監視部HV110のソフトウェアを監視し、HV監視部HV110が仮想マシン監視部のソフトウェアを監視し、仮想マシン監視部がアプリケーション監視部のソフトウェアを監視する構成が考えられる。これにより、アプリケーション監視部が改ざんされた場合であっても仮想マシン監視部が異常を検知でき、仮想マシン監視部のソフトウェアが改ざんされた場合であってもHV監視部HV110が異常を検知でき、HV監視部HV110のソフトウェアが改ざんされた場合であってもSA監視部SA110が異常を検知できる。このように、それぞれの監視部を、より強い実行権限またはより高い信頼度で動作する少なくとも1つの多層監視部から監視することで、一つの監視部が改ざんされて無効化された場合であっても他の監視部から異常を検知できる。そして、信頼可能なソフトウェアであるSA監視部SA110から、ハイパーバイザHV100、仮想マシン、アプリケーションまで監視を連鎖させるため、攻撃者はすべての監視を回避することは困難である。上記のように、多層監視部において、より強い実行権限またはより高い信頼度を有する監視部から、弱い実行権限または低い信頼度を有する監視部を監視する連鎖を構築することを監視の信頼チェーンを構築すると呼ぶ。
 [外部アプリの構成図]
 図5は、実施の形態における外部アプリの構成図を示す図である。
 外部アプリA100は、外部通信部A101と、外部アプリ実行部A102と、アプリ領域記憶部A103と、アプリ監視部A110とを備える。外部通信部A101は、外部ネットワーク30を介して通信する。外部アプリ実行部A102は、外部通信及びシステムコールを用いて、ナビゲーション情報の取得、音楽やビデオなどのストリーミング情報の取得、及び、更新ソフトウェアのダウンロードを実施する。アプリ領域記憶部A103は、外部アプリのプログラムと設定ファイルを記憶するストレージ及びメモリである。
 アプリ監視部A110は、監視対象取得部A111と、システム状態取得部A112と、監視部A113と、監視情報記憶部A114と、監視情報更新部A115と、監視結果通知部A116とを備える。
 監視対象取得部A111は、アプリ領域記憶部A103から監視対象であるソフトウェアに関する情報を取得し、外部通信部A101から外部通信ログに関する情報を取得する機能を有する。
 システム状態取得部A112は、外部通信部A101からインターネット接続状態をシステム状態として取得する機能と、監視部A113からセキュリティ状態をシステム状態として取得する機能とを有する。
 監視部A113は、監視対象取得部A111にて取得したソフトウェアに関する情報の取得値と、監視情報記憶部A114が記憶する監視情報に含まれる期待値とを比較し、取得値と期待値とが異なる場合にソフトウェアに関する情報が異常であると判定し、取得値と期待値とが一致する場合にソフトウェアに関する情報が正常であると判定する機能を有する。さらに、監視部A113は、監視対象取得部A111にて取得した外部通信ログを、許可リストまたは拒否リスト、及び、通常時の統計情報を用いて、外部通信ログに含まれる特定のメッセージが異常であるか否かを判定する機能を有する。
 監視情報記憶部A114は、監視担当と、監視対象と、期待値と、優先度とが含まれる監視情報を記憶する機能を有する。
 監視情報更新部A115は、管理部SA120からの要求に応じて監視情報を更新する機能を有する。
 監視結果通知部A116は、管理部SA120へ監視結果とシステム状態を通知する機能を有する。
 監視情報の詳細は後述する。
 このように、アプリ監視部A110はアプリ領域のソフトウェア及び外部通信を監視でき、インターネット接続状態と外部アプリA100のセキュリティ状態を取得できる。外部通信の監視は統計情報を用いた複雑なアルゴリズムになると想定される。
 [制御アプリの構成図]
 図6は、実施の形態における制御アプリの構成図を示す図である。
 制御アプリA200は、CAN通信部A201と、制御アプリ実行部A202と、アプリ領域記憶部A203と、アプリ監視部A210とを備える。CAN通信部A201は、CAN40を介してゲートウェイECU300と通信する。制御アプリ実行部A202は、CAN通信とシステムコールを用いて、VM100の車両の走る、曲がる、止まるなどの車両の走行に関する制御を指示する。アプリ領域記憶部A203は、制御アプリのプログラムと設定ファイルとを記憶するストレージ及びメモリである。
 アプリ監視部A210は、監視対象取得部A211と、システム状態取得部A212と、監視部A213と、監視情報記憶部A214と、監視情報更新部A215と、監視結果通知部A216とを備える。
 監視対象取得部A211は、アプリ領域記憶部A203から監視対象であるソフトウェアに関する情報を取得し、CAN通信部A201からCAN通信ログに関する情報を取得する機能を有する。
 システム状態取得部A212は、制御アプリ実行部A202から、走行状態や起動からの走行距離、起動からの経過時間など車両の状態をシステム状態として取得する機能と、監視部A213からセキュリティ状態をシステム状態として取得する機能とを有する。
 監視部A213は、監視対象取得部A211にて取得したソフトウェアに関する情報の取得値と、監視情報記憶部A214が記憶する監視情報に含まれる期待値とを比較し、取得値と期待値とが異なる場合にソフトウェアに関する情報が異常であると判定し、取得値と期待値とが一致する場合にソフトウェアに関する情報が正常であると判定する機能を有する。さらに、監視部A213は、監視対象取得部A211にて取得したCAN通信ログを、許可リストまたは拒否リスト、及び、通常時の統計情報を用いて、CANログに含まれる特定のメッセージが異常であるか否かを判定する機能を有する。
 監視情報記憶部A214は、監視担当と、監視対象と、期待値と、優先度とが含まれる監視情報を記憶する機能を有する。
 監視情報更新部A215は、管理部SA120からの要求に応じて監視情報を更新する機能を有する。
 監視結果通知部A216は、管理部SA120へ監視結果とシステム状態を通知する機能を有する。
 このように、アプリ監視部A210はアプリ領域のソフトウェア及びCAN通信を監視でき、車両の状態と制御アプリA200のセキュリティ状態を取得できる。CAN通信の監視は統計情報を用いた複雑なアルゴリズムになると想定される。
 [映像アプリの構成図]
 図7は、実施の形態における映像アプリの構成図を示す図である。
 映像アプリA300は、イーサネット通信部A301と、映像アプリ実行部A302と、アプリ領域記憶部A303と、アプリ監視部A310とを備える。イーサネット通信部A301は、イーサネット50を介してZoneECU500と通信する。映像アプリ実行部A302は、イーサネット通信とシステムコールとを用いて、カメラ映像を取得して、ディスプレイへ映像出力する。アプリ領域記憶部A303は、映像アプリのプログラムと設定ファイルを記憶するストレージ及びメモリである。
 アプリ監視部A310は、監視対象取得部A311と、システム状態取得部A312と、監視部A313と、監視情報記憶部A314と、監視情報更新部A315と、監視結果通知部A316とを備える。
 監視対象取得部A311は、アプリ領域記憶部A303から監視対象であるソフトウェアに関する情報を取得し、イーサネット通信部A301からイーサネット通信ログに関する情報を取得する機能を有する。
 システム状態取得部A312は、監視部A313からセキュリティ状態をシステム状態として取得する機能を有する。
 監視部A313は、監視対象取得部A311にて取得したソフトウェアに関する情報の取得値と、監視情報記憶部A314が記憶する監視情報に含まれる期待値とを比較し、取得値と期待値とが異なる場合にソフトウェアに関する情報が異常であると判定し、取得値と期待値とが一致する場合にソフトウェアに関する情報が正常であると判定する機能を有する。さらに、監視対象取得部A311にて取得したイーサネット通信ログを、許可リストまたは拒否リスト、及び、通常時の統計情報を用いて、イーサネット通信ログに含まれる特定のメッセージが異常であるか否かを判定する機能を有する。
 監視情報記憶部A314は、監視担当と、監視対象と、期待値と、優先度とが含まれる監視情報を記憶する機能を有する。
 監視情報更新部A315は、管理部SA120からの要求に応じて監視情報を更新する機能を有する。
 監視結果通知部A316は、管理部SA120へ監視結果とシステム状態を通知する機能を有する。
 このように、アプリ監視部A310はアプリ領域のソフトウェア及びイーサネット通信を監視でき、映像アプリA300のセキュリティ状態を取得できる。イーサネット通信の監視は統計情報を用いた複雑なアルゴリズムになると想定される。
 [外部仮想マシンの構成図]
 図8は、実施の形態における外部仮想マシンの構成図を示す図である。
 外部仮想マシンVM100は、アプリ通信部VM101と、システムコール制御部VM102と、VM領域記憶部VM103と、ハイパーコール呼出部VM104と、VM監視部VM110とを備える。アプリ通信部VM101は、外部アプリ実行部A102からシステムコールを受信する。システムコール制御部VM102は、システムコールを実行する。VM領域記憶部VM103は、外部仮想マシンVM100のプログラムと、ミドルウェアと、設定ファイルとを記憶するストレージ及びメモリである。ハイパーコール呼出部VM104は、ハイパーコールを呼び出す。
 VM監視部VM110は、監視対象取得部VM111と、システム状態取得部VM112と、監視部VM113と、監視情報記憶部VM114と、監視情報更新部VM115と、監視結果通知部VM116とを備える。
 監視対象取得部VM111は、VM領域記憶部VM103とアプリ領域記憶部A103とから監視対象であるソフトウェアに関する情報を取得し、アプリ通信部VM101からシステムコールに関する情報を取得する機能を有する。
 システム状態取得部VM112は、監視部VM113からセキュリティ状態を、システム状態として取得する機能を有する。
 監視部VM113は、監視対象取得部VM111にて取得したソフトウェアに関する情報の取得値と、監視情報記憶部VM114が記憶する監視情報に含まれる期待値とを比較し、取得値と期待値とが異なる場合にソフトウェアに関する情報が異常であると判定し、取得値と期待値とが一致する場合にソフトウェアに関する情報が正常であると判定する機能を有する。さらに、監視部VM113は、監視対象取得部VM111にて取得したシステムコールログを、許可リストまたは拒否リスト、及び、通常時の統計情報を用いて、システムコールログに含まれる特定のシステムコールが異常であるか否かを判定する機能を有する。
 監視情報記憶部VM114は、監視担当と、監視対象と、期待値と、優先度とが含まれる監視情報を記憶する機能を有する。
 監視情報更新部VM115は、管理部SA120からの要求に応じて監視情報を更新する機能を有する。
 監視結果通知部VM116は、管理部SA120へ監視結果とシステム状態を通知する機能を有する。
 このように、VM監視部VM110はアプリ領域とVM領域のソフトウェア及びシステムコールを監視でき、外部仮想マシンVM100と外部アプリA100のセキュリティ状態を取得できる。システムコールの監視は統計情報を用いた複雑なアルゴリズムになると想定される。
 [制御仮想マシンの構成図]
 図9は、実施の形態における制御仮想マシンの構成図を示す図である。
 制御仮想マシンVM200は、アプリ通信部VM201と、システムコール制御部VM202と、VM領域記憶部VM203と、ハイパーコール呼出部VM204と、VM監視部VM210とを備える。アプリ通信部VM201は、制御アプリ実行部A202からシステムコールを受信する。システムコール制御部VM202は、システムコールを実行する。VM領域記憶部VM203は、制御仮想マシンVM200のプログラムと、ミドルウェアと、設定ファイルを記憶するストレージ及びメモリである。ハイパーコール呼出部VM204は、ハイパーコールを呼び出す。
 VM監視部VM210は、監視対象取得部VM211と、システム状態取得部VM212と、監視部VM213と、監視情報記憶部VM214と、監視情報更新部VM215と、監視結果通知部VM216とを備える。
 監視対象取得部VM211は、VM領域記憶部VM203とアプリ領域記憶部A103とから監視対象であるソフトウェアに関する情報を取得し、アプリ通信部VM201からシステムコールに関する情報を取得する機能を有し、さらに、ハイパーコール制御部HV102からハイパーコールに関する情報を取得する機能を有する。
 システム状態取得部VM212は、監視部VM213からセキュリティ状態を、システム状態として取得する機能を有する。
 監視部VM213は、監視対象取得部VM211にて取得したソフトウェアに関する情報の取得値と、監視情報記憶部VM214が記憶する監視情報に含まれる期待値とを比較し、取得値と期待値とが異なる場合にソフトウェアに関する情報が異常であると判定し、取得値と期待値とが一致する場合にソフトウェアに関する情報が正常であると判定する機能を有する。さらに、監視部VM213は、監視対象取得部VM211にて取得したシステムコールログを、許可リストまたは拒否リスト、及び、通常時の統計情報を用いて、システムコールログに含まれる特定のシステムコールが異常であるか否かを判定する機能を有する。さらに、監視部VM213は、監視対象取得部VM211にて取得したハイパーコールログを、許可リストまたは拒否リスト、及び、通常時の統計情報を用いて、ハイパーコールログに含まれる特定のハイパーコールが異常であるか否かを判定する機能を有する。
 監視情報記憶部VM214は、監視担当と、監視対象と、期待値と、優先度とが含まれる監視情報を記憶する機能を有する。
 監視情報更新部VM215は、管理部SA120からの要求に応じて監視情報を更新する機能を有する。
 監視結果通知部VM216は、管理部SA120へ監視結果とシステム状態を通知する機能を有する。
 このように、VM監視部VM210はアプリ領域とVM領域のソフトウェア及びシステムコール、ハイパーコールを監視でき、制御仮想マシンVM200と制御アプリA200のセキュリティ状態を取得できる。システムコールとハイパーコールの監視は統計情報を用いた複雑なアルゴリズムになると想定される。
 ここで、ハイパーコールの監視は制御仮想マシンVM200にて実行されると記載しているが、ハイパーバイザHV100にて実行されもよい。
 [映像仮想マシンの構成図]
 図10は、実施の形態における映像仮想マシンの構成図を示す図である。
 映像仮想マシンVM300は、アプリ通信部VM301と、システムコール制御部VM302と、VM領域記憶部VM303と、ハイパーコール呼出部VM304と、VM監視部VM310とを備える。アプリ通信部VM301は、映像アプリ実行部A302からシステムコールを受信する。システムコール制御部VM302は、システムコールを実行する。VM領域記憶部VM303は、映像仮想マシンVM300のプログラムと、ミドルウェアと、設定ファイルを記憶するストレージ及びメモリである。ハイパーコール呼出部VM304は、ハイパーコールを呼び出す。
 VM監視部VM310は、監視対象取得部VM311と、システム状態取得部VM312と、監視部VM313と、監視情報記憶部VM314と、監視情報更新部VM315と、監視結果通知部VM316とを備える。
 監視対象取得部VM311は、VM領域記憶部VM303とアプリ領域記憶部A303とから監視対象であるソフトウェアに関する情報を取得し、アプリ通信部VM301からシステムコールに関する情報を取得する機能を有する。
 システム状態取得部VM312は、監視部VM313からセキュリティ状態を、システム状態として取得する機能を有する。
 監視部VM313は、監視対象取得部VM311にて取得したソフトウェアに関する情報の取得値と、監視情報記憶部VM314が記憶する監視情報に含まれる期待値とを比較し、取得値と期待値とが異なる場合にソフトウェアに関する情報が異常であると判定し、取得値と期待値とが一致する場合にソフトウェアに関する情報が正常であると判定する機能を有する。さらに、監視部VM313は、監視対象取得部VM311にて取得したシステムコールログを、許可リストまたは拒否リスト、及び、通常時の統計情報を用いて、システムコールログに含まれる特定のシステムコールが異常であるか否かを判定する機能を有する。
 監視情報記憶部VM314は、監視担当と、監視対象と、期待値と、優先度とが含まれる監視情報を記憶する機能を有する。
 監視情報更新部VM315は、管理部SA120からの要求に応じて監視情報を更新する機能を有する。
 監視結果通知部VM316は、管理部SA120へ監視結果とシステム状態を通知する機能を有する。
 このように、VM監視部VM310はアプリ領域とVM領域のソフトウェア及びシステムコールを監視でき、映像仮想マシンVM300と映像アプリA300のセキュリティ状態を取得できる。システムコールの監視は統計情報を用いた複雑なアルゴリズムになると想定される。
 [ハイパーバイザの構成図]
 図11は、実施の形態におけるハイパーバイザの構成図を示す図である。
 ハイパーバイザHV100は、仮想マシン通信部HV101と、ハイパーコール制御部HV102と、HV領域記憶部HV103と、HV監視部HV110とを備える。仮想マシン通信部HV101は、ハイパーコール呼出部VM104、VM204、VM304からハイパーコールを受信する。ハイパーコール制御部HV102は、ハイパーコールを実行する。HV領域記憶部HV103は、ハイパーバイザHV100のプログラムと、設定ファイルを記憶するストレージ及びメモリである。
 HV監視部HV110は、監視対象取得部HV111と、システム状態取得部HV112と、監視部HV113と、監視情報記憶部HV114と、監視情報更新部HV115と、監視結果通知部HV116とを備える。
 監視対象取得部HV111は、HV領域記憶部HV103と、VM領域記憶部VM103と、VM領域記憶部VM203と、VM領域記憶部VM303と、から監視対象であるソフトウェアに関する情報を取得する機能を有する。
 システム状態取得部HV112は、仮想マシンのシステム状態と、CPU利用率と、メモリ利用率と、監視部HV113とからセキュリティ状態を、システム状態として取得する機能を有する。
 監視部HV113は、監視対象取得部HV111にて取得したソフトウェアに関する情報の取得値と、監視情報記憶部HV114が記憶する監視情報に含まれる期待値とを比較し、取得値と期待値とが異なる場合にソフトウェアに関する情報が異常であると判定し、取得値と期待値とが一致する場合にソフトウェアに関する情報が正常であると判定する機能を有する。
 監視情報記憶部HV114は、監視担当と、監視対象と、期待値と、優先度とが含まれる監視情報を記憶する機能を有する。
 監視情報更新部HV115は、管理部SA120からの要求に応じて監視情報を更新する機能を有する。
 監視結果通知部HV116は、管理部SA120へ監視結果とシステム状態を通知する機能を有する。
 このように、HV監視部HV110は、外部仮想マシンVM100と制御仮想マシンVM200と映像仮想マシンVM300と、HV領域のソフトウェアを監視でき、外部仮想マシンVM100と制御仮想マシンVM200と映像仮想マシンVM300のシステム状態とセキュリティ状態を取得できる。
 [セキュアアプリの構成図]
 図12は、実施の形態におけるセキュアアプリの構成図を示す図である。
 セキュアアプリSA100は、SA監視部SA110と、管理部SA120とを備える。
 SA監視部SA110は、監視対象取得部SA111と、システム状態取得部SA112と、監視部SA113と、監視情報記憶部SA114と、監視情報更新部SA115と、監視結果通知部SA116とを備える。
 監視対象取得部SA111は、HV領域記憶部HV103と、VM領域記憶部VM103と、VM領域記憶部VM203と、VM領域記憶部VM303とから監視対象であるソフトウェアに関する情報を取得する機能を有する。
 システム状態取得部SA112は、監視部SA113からセキュリティ状態を、システム状態として取得する機能を有する。
 監視部SA113は、監視対象取得部SA111にて取得したソフトウェアに関する情報の取得値と、監視情報記憶部SA114が記憶する監視情報に含まれる期待値とを比較し、取得値と期待値とが異なる場合にソフトウェアに関する情報が異常であると判定し、取得値と期待値とが一致する場合にソフトウェアに関する情報が正常であると判定する機能を有する。
 監視情報記憶部SA114は、監視担当と、監視対象と、期待値と、優先度とが含まれる監視情報を記憶する機能を有する。
 監視情報更新部SA115は、管理部SA120からの要求に応じて監視情報を更新する機能を有する。
 監視結果通知部SA116は、管理部SA120へ監視結果とシステム状態を通知する機能を有する。
 管理部SA120は、監視結果取得部SA121と、システム状態取得部SA122と、監視構成記憶部SA123と、監視変更ルール記憶部SA124と、監視情報変更部SA125と、監視サーバー通信部SA126とを備える。
 監視結果取得部SA121は、監視結果通知部A116、A216、A316、VM116、VM216、VM316、HV116、SA116から監視結果を受信する機能を有する。
 システム状態取得部SA122は、監視結果通知部A116、A216、A316、VM116、VM216、VM316、HV116、SA116からシステム状態を受信する機能を有する。
 監視構成記憶部SA123は、複数の多層監視部の信頼チェーン構成パターンを含む監視構成を記憶する機能を有する。
 監視変更ルール記憶部SA124は、システム状態に応じて監視情報に含まれる優先度と監視構成を変更するルールを含む監視変更ルールを記憶する機能を有する。
 監視情報変更部SA125は、監視情報更新部SA115へ監視情報の変更を要求する機能を有する。
 監視サーバー通信部SA126は、監視サーバー10へ監視結果を通知し、監視サーバー10から監視情報の変更と監視構成の変更内容と、監視変更ルールの変更の要求とを受信し、要求に応答する機能を有する。
 監視構成と監視変更ルールの詳細は後述する。
 このように、SA監視部SA110は、外部仮想マシンVM100と制御仮想マシンVM200と映像仮想マシンVM300とHV領域のソフトウェアとを監視でき、外部仮想マシンVM100と制御仮想マシンVM200と映像仮想マシンVM300とのセキュリティ状態を取得できる。また、管理部SA120は、システム状態に応じて、適切な監視構成及び監視情報に変更できる。
 [監視サーバーの構成図]
 図13は、実施の形態における監視サーバーの構成図を示す図である。
 監視サーバー10は、車載システム通信部11と、監視結果表示部12と、監視構成変更部13と、監視変更ルール変更部14と、監視情報変更部15とを備える。
 車載システム通信部11は、車載システム20の外部通信部A101と通信する機能を有する。
 監視結果表示部12は、車載システム通信部11を介して、車載システム20の外部通信部A101から監視結果を受信し、監視結果の情報をグラフィカルユーザーインターフェース上に表示する機能を有する。
 監視構成変更部13は、監視構成の変更を受け付け、変更の要求を監視サーバー通信部SA126へ送信する。
 監視変更ルール変更部14は、監視変更ルールの変更を受け付け、変更の要求を監視サーバー通信部SA126へ送信する。
 監視情報変更部15は、監視情報の変更を受け付け、変更の要求を監視サーバー通信部SA126へ送信する。
 [監視情報の一例]
 図14及び図15は、監視情報の一例を示す図である。
 監視情報は、多層監視部のそれぞれが自身の監視対象を確認し、ソフトウェア及び通信ログの監視を実施するための情報が記載される。
 図14において、監視情報は、番号、監視担当、監視対象、メモリ番地、期待値、及び、優先度を含む。番号は、監視情報を識別するために利用される。監視担当は、監視対象の監視を行う主体者を認識するために利用される。監視対象は、監視の対象となるソフトウェア及び通信ログを認識するために利用される。メモリ番地は、監視対象を取得するため監視対象が格納されるメモリ番地を認識するために利用される。期待値は、監視対象に関する情報の正常な値を認識するために利用される。優先度は、優先度が高い監視対象ほど重点的に監視するために利用される。優先度の詳細は後述する。
 図14では、アプリ監視部A110は外部アプリ監視部、アプリ監視部A210は制御アプリ監視部、アプリ監視部A310は映像アプリ監視部、VM監視部VM110は外部VM監視部、VM監視部VM210は制御VM監視部、VM監視部VM310は映像VM監視部として記載しており、以下でもこの記載を用いることがある。
 例えば、番号が7である監視情報は、監視担当が外部VM監視部であり、監視対象がVMプログラム1であり、メモリ番地はVM領域B10であり、期待値はB10であり、優先度は高である。これは、外部VM監視部はVMプログラム1を重点的に監視し、VM領域B10に格納されるVMプログラム1のハッシュ値がB10と一致する場合にVMプログラム1が正常であると判定でき、一致しない場合にVMプログラム1が異常であると判定できる。
 また、例えば、番号が15である監視情報は、監視担当が制御VM監視部であり、監視対象がハイパーコールログであり、メモリ番地は「―」であり、期待値は「―」であり、優先度は「―」である。これは、制御VM監視部は、ハイパーコールログを監視するが、メモリ番地や期待値、優先度は指定する必要がないことを示している。
 上述の通り、外部通信ログと、CAN通信ログと、イーサネット通信ログと、システムコールログと、ハイパーコールログとは、例えば、許可リストと拒否リストと正常時の統計情報とを用いてそれぞれの異常が判定され得る。
 このように、監視情報を用いることで、多層監視部のそれぞれが自身の監視対象を確認し、ソフトウェア及び通信ログの監視を実施できる。また、監視対象に多層監視部のソフトウェアを含めることによって、多層監視部の監視の信頼チェーンを構築できる。
 図14において、SA監視部SA110がHV監視部HV110のソフトウェアを監視し、HV監視部HV110がVM監視部VM210のソフトウェアを監視し、VM監視部VM210がVM監視部VM110及びVM監視部VM310のソフトウェアを監視し、VM監視部VM110がアプリ監視部A110のソフトウェアを監視し、VM監視部VM210がアプリ監視部A110のソフトウェアを監視し、VM監視部VM310がアプリ監視部A310のソフトウェアを監視することで、多層監視部が信頼可能なSA監視部SA110からアプリケーション監視部まで連結しており、監視の信頼チェーンを構築できていることが分かる。
 図15には、優先度に応じて、ソフトウェアの監視方法を変更するための情報が記載される。図15において、優先度、監視周期(分)、検証方法、及び、監視対象選択方法が対応付けられている。優先度は、高、中、低の3種類のうちの一種類が記載され、優先度を識別するために利用される。監視周期(分)は、監視対象の監視処理を行う周期を認識するために利用される。検証方法は、監視対象の監視処理を行う方法を認識するために利用される。監視対象選択方法は、監視対象が複数存在する場合に選択する方法を認識するために利用される。
 例えば、優先度が高である場合は、監視周期(分)が1であり、検証方法が複製値であり、監視対象選択方法が固定である。これは、固定の監視対象を1分間隔で複製値を用いて検証することを示している。固定とは、監視周期で定められる監視タイミングが訪れる毎に、予め決められた1以上の監視対象をすべて監視することであり、複製値とはメモリに格納された監視対象の生データを用いて検証することである。
 これにより、優先度が高い監視対象に対して、精度の高い監視を実施できる。
 また、例えば、優先度が中である場合は、監視対象を特定の順番で、10分間隔で複製値ではなく複製値にマスクをかけた値であるマスク値を用いて検証することを示している。順番とは、監視周期で定められる監視タイミングが訪れる毎に、1以上の監視対象を1つずつ特定の順番で選択し、選択した監視対象を監視することである。
 また、例えば、優先度が低である場合は、監視対象をランダムの順番で、100分間隔で複製値のハッシュ値を用いて検証することを示している。ランダムとは、監視周期で定められる監視タイミングが訪れる毎に、1以上の監視対象を1つずつランダムに選択し、選択した監視対象を監視することである。
 ここで、優先度が低である場合、メモリ領域を2以上のブロックに分割し、分割ブロックをランダムで選択して監視対象としてもよい。これにより、処理の負荷を低減できる。
 また、特定の監視周期を設定して、前回の監視から周期が経過したタイミングで監視を即座に実行するのではなく、周期が経過したタイミング以降のCPUの空き時間に監視を実行してもよい。この場合、監視タイミングは毎回異なるものの、リアルタイム性が重要視されるシステムへの負担を低減できる。
 また、少なくとも1回の監視が実行される期間を設定してもよい。この場合、所定の期間の間にCPUの空き時間を利用して監視を実行できる。
 また、特定のイベントや特定の監視部の検証結果に応じて、監視タイミングを定義してもよい。例えば、インターネット接続のタイミングで、アプリ監視部A110のソフトウェアを監視してもよいし、車両の走行状態が自動走行に変更されたタイミングで制御仮想マシンのソフトウェアを監視してもよいし、セキュリティ異常が1回判定されたタイミングで異常と関連する多層監視部のソフトウェアを監視してもよいし、セキュリティ異常がなく正常と2回判定されたタイミングで連結する監視部のソフトウェアを監視してもよい。
 また、通信ログに対する監視においても、メモリ番地にログが含まれる領域が指定されてもよく、期待値に許可リストが指定されてもよく、優先度が指定されてもよい。この場合、優先度に応じて、通信ログの監視方法が変更されてもよい。
 例えば、優先度が高い場合は、高い精度が期待できるすべてのメッセージのペイロード情報を用いて異常を検知する方法が適用され、優先度が低い場合は、処理負荷の低減が期待できるサンプリングしたメッセージのヘッダ情報を用いて異常を検知する方法が適用されてもよい。これにより、優先度に応じて通信ログを重点的に監視できる。
 このように、監視対象に応じて優先度を変更することで、改ざんリスクの高い監視対象を重点的に監視でき、改ざんリスクの低い監視対象は処理負荷を下げて監視できる。
 [システム状態の一例]
 図16は、システム状態の一例を示す図である。
 システム状態は、管理部SA120が統合ECU200のシステム状態を把握するために利用される。図16において、システム情報は、番号、分類、システム状態、及び、パラメータを含む。番号は、システム状態を識別するために利用される。分類は、ネットワーク、VM、セキュリティ、車両の4種類であり、システム状態を区分するために利用される。例えば、システム状態は、具体的なシステム状態の名称が記載され、パラメータはシステム状態を特定するためのパラメータが記載される。
 例えば、番号が5であるシステム状態は、分類がVMであり、システム状態がVM状態であり、パラメータが、VM識別子、オンとオフと再起動中とのいずれか一つ、及び、時刻である。つまり、システムの異常やソフトウェアの更新の理由で、特定の仮想マシンが再起動する場合、パラメータには、特定の仮想マシンを識別する識別子と、再起動中という状態、状態を判定した時刻が記載される。
 このように、例えば、番号が1であるシステム状態を確認すれば、統合ECU200がインターネットに接続しているか否かの状態を把握でき、番号が9であるシステム状態は車両の走行状態を確認すれば、自動運転か否かの状態を把握でき、番号が7であるシステム状態を確認すれば、ソフトウェア検証の結果として異常と判定された監視対象のソフトウェアの情報を把握できる。
 また、システム状態を統合ECU200に搭載されるタイマー、センサー、及び、その他の機能から収集して参照することで、所定の時間経過と、所定の外部ネットワーク接続時間経過と、システム起動と、システム再起動と、外部ネットワーク接続確立と、外部デバイス接続と、走行モードの切り替えと、給油または給電の終了と、車両診断の実施と、緊急アラートの発呼とを含むシステム状態を取得できる。
 ここで、図16のシステム状態は、システム状態のリストと、パラメータに記載すべき項目とを示している。管理部SA120は、リストに含まれるシステム状態を取得した場合に、番号とパラメータを他のプログラムへ通知するまたはログに残すことで、他のプログラムとシステム状態を共有できる。
 [監視構成の一例]
 図17~図20は、監視構成の一例を示す図である。
 監視構成は、多層監視部を連結させて監視の信頼チェーンを変更するために利用される。図17~図20では、矢印の元のブロックが監視を実行する監視部が示され、矢印の先のブロックが監視の対象となる監視部が示される。
 図17において、監視構成は、番号と、監視構成を含む。番号は、監視構成を識別するために利用され、監視構成は多層監視部の連結パターンが記載される。
 図17の番号1の監視構成は、SA監視部SA110がHV監視部HV110のソフトウェアを監視し、HV監視部HV110がVM監視部VM210のソフトウェアを監視し、VM監視部VM210がVM監視部VM110とVM監視部VM310のソフトウェアを監視し、VM監視部VM110がアプリ監視部A110のソフトウェアを監視し、VM監視部VM210がアプリ監視部A110のソフトウェアを監視し、VM監視部VM310がアプリ監視部A310のソフトウェアを監視することで、多層監視部が信頼可能なSA監視部SA110からアプリケーション監視部まで連結しており、監視の信頼チェーンを構築できていることが分かる。
 ここで、制御仮想マシンVM200は、外部ネットワークと直接接続されていないため、外部仮想マシンVM100よりも信頼できると想定できるため、より信頼度の高い監視部として扱うことができる。
 また、図17の番号2の監視構成は、SA監視部SA110がHV監視部HV110の代わりにVM監視部VM210のソフトウェアを監視し、それ以外は番号1の管理構成と同等である。番号1の監視構成と比較すると、SA監視部SA110の処理とプログラムの複雑性が増加するものの、信頼可能なSA監視部SA110から監視することで、VM監視部VM210のソフトウェアの信頼度を高めることができる。
 また、図18の番号3の監視構成は、制御仮想マシンVM200がシステムダウンした場合であっても監視の信頼チェーン監視を維持可能な監視構成である。もし、制御仮想マシンVM200がシステムダウンした場合に番号1や番号2の監視構成を継続すると、VM監視部VM110やVM監視部VM310を監視対象とする監視担当が不在になり、監視の信頼チェーンを維持できない。
 また、図18の番号4の監視構成は、制御仮想マシンVM200にて異常が検知された場合であっても、VM監視部VM210の監視対象を限定してHV監視部HV110へ引き継ぐことで、アプリ監視部A210以外の監視の信頼チェーン監視を維持可能な監視構成である。もし、制御仮想マシンVM200にてセキュリティ異常が検知された場合に番号1や番号2の監視構成を継続すると、制御仮想VMマシン210がVM監視部VM110やVM監視部VM310のソフトウェアの監視担当であるが、制御仮想マシンVM200が改ざんされる可能性が高いため、監視の信頼チェーンを維持できない。
 また、図19の番号5の監視構成は、制御仮想マシンVM200にて異常が検知された場合や制御仮想マシンVM200が改ざんされた場合のリスクが大きい場合に、監視を強化できる監視構成である。SA監視部SA110とHV監視部HV110の双方からVM監視部VM210のソフトウェアを検証することによって、監視の頻度及び信頼度を高めることができる。ここで、2つの監視結果が異なる場合は、信頼度が高いSA監視部SA110の監視結果を採用することができる。
 また、図19の番号6の監視構成は、制御仮想マシンVM200にて異常が検知された場合であっても、VM監視部VM210を監視担当から完全に外し、他の仮想マシン監視部にアプリ監視部A110の監視を引き継ぐことで、監視の信頼チェーン監視を維持可能な監視構成である。もし、制御仮想マシンVM200にてセキュリティ異常が検知された場合に番号1や番号2の監視構成を継続すると、制御仮想マシンVM200がVM監視部VM110やVM監視部VM310のソフトウェアの監視担当であるが、制御仮想マシンVM200が改ざんされる可能性が高いため、監視の信頼チェーンを維持できない。
 また、図20の番号7の監視構成は、インターネット接続状態など外部仮想マシンVM100が改ざんされる可能性が高い場合に、監視を強化できる監視構成である。HV監視部HV110及びVM監視部VM210の双方から、VM監視部VM110のソフトウェアを検証することによって、監視の頻度、信頼度を高めることができる。ここで、2つの監視結果が異なる場合は、信頼度が高いHV監視部HV110の監視結果を採用することができる。
 このように、複数の監視構成を保持して、システム状態に応じて監視構成を切り替えることによって、VM異常やセキュリティ異常が発生された場合であっても監視の信頼チェーンの維持が可能であり、システム状態に応じた特定の監視対象の監視の重点化が可能である。
 また、図17~図20では閉路のない監視構成のみを記載しているが、VM監視部VM210がVM監視部VM310のソフトウェアを監視し、VM監視部VM310がVM監視部VM110のソフトウェアを監視し、VM監視部VM110がVM監視部VM210のソフトウェアを監視するといった巡回監視の監視構成にしてもよいし、各仮想マシン監視部がその他の仮想マシン監視部のソフトウェアを監視するといった相互監視の監視構成にしてもよい。
 また、監視構成を他の監視構成に切り替える場合、複数の監視構成を事前に定義して切り替えるのではなく、動的に監視構成を算出して変更してもよい。例えば、監視部を頂点とし、監視担当を道の始点とし、監視対象を道の終点とする有向グラフとして前記監視構成を記憶し、所定のアルゴリズムで有向グラフを再構築することで、前記監視構成を変更できる。また、例えば、監視部をノードとし、監視担当を親ノードとし、監視対象を子ノードとするツリー構造として前記監視構成を記憶し、所定のアルゴリズムでツリー構造を再構築することで、前記監視構成を変更できる。
 [監視変更ルールの一例]
 図21は、監視変更ルールの一例を示す図である。
 監視変更ルールは、管理部SA120がシステム状態に応じて監視情報の優先度及び監視構成を変更するために利用される。
 図21において、監視変更ルールは、番号、変更条件、及び、変更処理を含む。番号は、監視変更ルールを識別するために利用される。変更条件は、変更処理を行うシステム状態であるかを判断するために利用される。変更処理は、変更条件が満たされた場合に実行される、監視構成の変更内容について記載される。
 例えば、番号が3である監視変更ルールは、変更条件がインターネット接続確立であり、変更処理がVM監視部VM110及びアプリ監視部A110に対する監視優先度を一時的に上げるである。つまり、統合ECU200を不正なネットワークに接続させて、不正なソフトウェアをダウンロードさせる攻撃を想定すると、インターネット接続確立の直後はVM監視部VM110とアプリ監視部A110のソフトウェアを改ざんされる可能性が高くなる。そのため、管理部SA120は、VM監視部VM110及びアプリ監視部A110に対する監視優先度を一時的に上げる。これにより、これらの監視部に対する高頻度で高精度な監視が実行され得る。所定時間経過または所定の監視処理が完了した後、一時的に上げた優先度は元の値に戻される。
 また、例えば、番号が10である監視変更ルールでは、特定の通信において異常が発生した場合、異常通信の送信元を監視する監視部、異常通信の宛先を監視する監視部、異常通信を検知した監視部のそれぞれの優先度を上げることが示される。送信元のソフトウェアに異常が発生している可能性が高く、宛先のソフトウェアへ攻撃が展開される可能性が高く、通信の異常を判定した監視部も無効化される可能性が高いため、管理部SA120は、異常通信の送信元を監視する監視部、異常通信の宛先を監視する監視部、異常通信を検知した監視部のそれぞれの優先度を上げる。これにより、これらの監視部に対する重点的な監視が実行され得る。さらに、管理部SA120は、監視構成を変更することで、複数の監視部から改ざんされる可能性の高いソフトウェアの監視が実行され得る。
 また、例えば、番号が6である監視変更ルールでは、特定のVMのCPU使用率が低い場合に、該当VMの処理負荷が大きい監視構成に変更することが示される。これにより、CPU使用率が高い仮想マシンに配置された仮想マシン監視部にて多くの監視処理を実施することは他の主要機能へ影響を与える可能性がある。そこで、CPU使用率が低い仮想マシン上で動作する仮想マシン監視部が監視を実行することで、リアルタイム性が重要なシステムへの負担を低減できる。
 このように、管理部SA120は、外部ネットワーク接続中か否かと、外部ネットワーク接続確立イベントの発生と、仮想マシンのシステム状態と、多層監視部の監視結果と、異常を検知した監視部の実行権限と、異常を検知したソフトウェアの実行権限と、異常を検知した通信ログの宛先または送信元とに応じて、優先度及び監視構成を変更できる。
 [監視結果表示の一例]
 図22及び図23は、監視結果表示の一例を示す図である。
 監視結果表示は、セキュリティ分析官へ監視情報を伝達するために利用される。監視結果表示は、監視サーバー10が車載システム20から監視結果を受信することで監視サーバーにより生成される。監視結果表示は、監視結果がグラフィカルユーザーインターフェースにおいて表現された表示である。
 車載システム20から受信する監視結果は、システム状態の分類セキュリティの項目と同じである。監視結果は、ソフトウェアが正常であった場合には、監視部を特定する識別子と、監視対象のソフトウェアを特定する識別子と、正常判定した時刻とを含む。監視結果は、ソフトウェアが異常であった場合には、監視部を特定する識別子と、監視対象のソフトウェアを特定する識別子と、異常判定した時刻とを含む。監視結果は、通信ログが正常であった場合には、監視部を特定する識別子と、通信プロトコルを特定する識別子と、正常な通信メッセージと、正常判定した時刻とを含む。監視結果は、通信ログが異常であった場合には、監視部を特定する識別子と、通信プロトコルを特定する識別子と、正常な通信メッセージと、異常判定した時刻とを含む。また、統合ECU200を識別するために、車両を識別する車両IDとECUを識別するECUIDとが監視結果に付与されて監視サーバー10へ送信されてもよい。
 なお、図22において、太枠のブロックは正常であると判定された監視対象のソフトウェアを示し、細枠のブロックは異常であると判定された監視対象のソフトウェアを示す。
 図22において、統合ECU200の抽象化されたシステムアーキテクチャが表示されており、異常及び正常の構成要素が強調されて区別できるように表現されており、構成要素の下部に対応する監視結果が表示されている。これにより、セキュリティ分析官は直感的に異常が発生した構成要素を理解することができるため、セキュリティ異常の解析を迅速に実施できる。
 また、図22において監視構成変更及び監視情報変更のボタンがグラフィカルユーザーインターフェースの下部に配置されている。これによって、セキュリティ分析官が監視構成や監視情報の不備やより適切な監視構成を発見した場合に、迅速に車載システム20へ適用できる。例えば、セキュリティ分析官により監視構成変更のボタンへの入力を受け付けると、監視サーバー10は、監視構成の変更を受け付けるグラフィカルユーザーインターフェースを表示してもよい。つまり、監視サーバー10は、監視対象と、監視対象を監視する監視部と、監視対象の優先度と、優先度に対応した監視方法とのうち少なくとも1つの監視情報の変更を受け付け、統合ECU200に変更を要求してもよい。
 また、図23において、異常が発生した時刻の前後のタイムラインが表示されており、異常と正常の構成要素が強調されて区別できるように表現されており、多層監視部の連結関係を矢印で表現している。これにより、セキュリティ分析官は直感的に異常が発生した時系列を理解することができるため、セキュリティ異常の解析を迅速に実施できる。図23では、具体的には、時刻T1においてSA監視部からHV監視部への監視が実行されたことが示され、時刻T2においてVM監視部1からアプリ監視部1への監視が実行されたことが示され、時刻T3においてHV監視部からVM監視部1への監視が実行されたことが示される。
 [アプリ監視部の処理のシーケンス]
 図24は、実施の形態におけるアプリ監視部の監視処理のシーケンスを示す図である。
 図24は、アプリ監視部A110の監視対象取得部A111が外部通信ログとアプリ領域のソフトウェア(SW)のハッシュ値とを取得してから、監視結果取得部SA121へ監視結果を通知するまでの処理シーケンスを示している。図24では、外部アプリA100を例に上げて説明するが、制御アプリA200、映像アプリA300の場合は通信ログの種類が異なる以外は同様の処理のシーケンスであるため説明を割愛する。
 (S2401)アプリ監視部A110の監視対象取得部A111は、外部通信部A101から外部通信ログである通信ログを取得し、監視部A113へ送信する。
 (S2402)監視部A113は、通信ログに異常が含まれているかを判定し、監視結果通知部A116へ監視結果を通知する。ここで、監視結果には、ソフトウェアが正常であった場合には、監視部を特定する識別子と、監視対象のソフトウェアを特定する識別子と、判定時刻とが含まれる。また、監視結果には、ソフトウェアが異常であった場合には、監視部を特定する識別子と、監視対象のソフトウェアを特定する識別子と、判定時刻とが含まれる。また、監視結果には、通信が正常であった場合には、監視部を特定する識別子と、通信プロトコルを特定する識別子と、判定時刻とが含まれる。
 (S2403)監視結果通知部A116は、監視結果取得部SA121へ監視結果を通知する。
 (S2404)監視結果取得部SA121は、監視結果を取得する。
 (S2405)監視対象取得部A111は、監視情報記憶部A114に記載された監視対象の優先度に従って、一定の時間が経過する度に、アプリ領域記憶部A103に格納されたソフトウェアのハッシュ値を取得し、監視情報記憶部A114に格納されたソフトウェアのハッシュ値の期待値を取得し、監視部A113へ送信する。
 (S2406)監視部A113は、各ソフトウェアについて、取得値と期待値とが一致する場合は正常と判定し、一致しない場合は異常と判定し、監視結果通知部A116へ監視結果を通知する。
 (S2407)監視結果通知部A116は、監視結果取得部SA121へ監視結果を通知する。
 (S2408)監視結果取得部SA121は、監視結果を取得する。
 [仮想マシン監視部の処理のシーケンス]
 図25は、実施の形態における仮想マシン監視部の監視処理のシーケンスを示す図である。
 図25は、VM監視部VM210の監視対象取得部VM211がシステムコールとハイパーコールとアプリ領域のソフトウェアとVM領域のソフトウェアのハッシュ値とを取得してから、監視結果取得部SA121へ監視結果を通知するまでの処理シーケンスを示している。
 図25では、VM監視部VM210を例に上げて説明するが、VM監視部VM110及びVM監視部VM310の場合はハイパーコールを取得しない点以外は同様の処理のシーケンスであるため説明を割愛する。
 (S2501)VM監視部VM210の監視対象取得部VM211は、システムコール制御部VM202とハイパーバイザHV100のハイパーコール制御部HV102とから、それぞれシステムコール及びハイパーコールである、通信ログを取得し、監視部VM213へ送信する。
 (S2502)監視部VM213は、通信ログに異常が含まれているかを判定し、監視結果通知部VM216へ監視結果を通知する。
 (S2503)監視結果通知部VM216は、監視結果取得部SA121へ監視結果を通知する。
 (S2504)監視結果取得部SA121は、監視結果を取得する。
 (S2505)監視対象取得部VM211は、監視情報記憶部VM214に記載された監視対象の優先度に従って、一定の時間が経過する度に、VM領域記憶部VM103、VM203、VM303に格納されたソフトウェアのハッシュ値を取得し、監視情報記憶部VM214に格納されたソフトウェアのハッシュ値の期待値を取得し、監視部VM213へ送信する。
 (S2506)監視部VM213は、各ソフトウェアについて、取得値と期待値とが一致する場合は正常と判定し、一致しない場合は異常と判定し、監視結果通知部VM216へ監視結果を通知する。
 (S2507)監視結果通知部VM216は、監視結果取得部SA121へ監視結果を通知する。
 (S2508)監視結果取得部SA121は、監視結果を取得する。
 [ハイパーバイザ監視部の処理のシーケンス]
 図26は、実施の形態におけるハイパーバイザの監視処理のシーケンスを示す図である。
 図26は、HV監視部HV110の監視対象取得部HV111が、VM領域のソフトウェアとHV領域のソフトウェアのハッシュ値とを取得してから、監視結果取得部SA121へ監視結果を通知するまでの処理シーケンスを示している。
 (S2601)HV監視部HV110の監視対象取得部HV111は、監視情報記憶部HV114に記載された監視対象の優先度に従って、一定の時間が経過する度に、VM領域記憶部VM103、VM203、VM303とHV領域記憶部HV103に格納されたソフトウェアのハッシュ値を取得し、監視情報記憶部HV114に格納されたソフトウェアのハッシュ値の期待値を取得し、監視部HV113へ送信する。
 (S2602)監視部HV113は、各ソフトウェアについて、取得値と期待値とが一致する場合は正常と判定し、一致しない場合は異常と判定し、監視結果通知部HV116へ監視結果を通知する。
 (S2603)監視結果通知部HV116は、監視結果取得部SA121へ監視結果を通知する。
 (S2604)監視結果取得部SA121は、監視結果を取得する。
 [セキュアアプリ監視部の処理のシーケンス]
 図27は、実施の形態におけるセキュアアプリの監視処理のシーケンスを示す図である。
 図27は、SA監視部SA110の監視対象取得部SA111が、VM領域のソフトウェアとHV領域のソフトウェアのハッシュ値とを取得してから、監視結果取得部SA121へ監視結果を通知するまでの処理シーケンスを示している。
 (S2701)SA監視部SA110の監視対象取得部SA111は、監視情報記憶部SA114に記載された監視対象の優先度に従って、一定の時間が経過する度に、VM領域記憶部VM103、VM203、VM303とHV領域記憶部HV103に格納されたソフトウェアのハッシュ値を取得し、監視情報記憶部SA114に格納されたソフトウェアのハッシュ値の期待値を取得し、監視部SA113へ送信する。
 (S2702)監視部SA113は、各ソフトウェアについて、取得値と期待値とが一致する場合は正常と判定し、一致しない場合は異常と判定し、監視結果通知部SA116へ監視結果を通知する。
 (S2703)監視結果通知部SA116は、監視結果取得部SA121へ監視結果を通知する。
 (S2704)監視結果取得部SA121は、監視結果を取得する。
 [監視サーバー通知処理のシーケンス]
 図28は、実施の形態における監視サーバー通知処理のシーケンスを示す図である。
 図28は、SA監視部SA110の監視結果取得部SA121が、アプリケーション監視部、仮想マシン監視部、HV監視部HV110、及び、SA監視部SA110から監視結果を取得し、監視サーバー10の監視結果表示部12が監視結果を表示するまでの処理シーケンスを示している。
 (S2801)SA監視部SA110の監視結果取得部SA121が、アプリケーション監視部、仮想マシン監視部、HV監視部HV110、及び、SA監視部SA110から監視結果を取得し、監視サーバー通信部SA126へ送信する。
 (S2802)監視サーバー通信部SA126は、外部通信部A101を介して、監視サーバー10の車載システム通信部11へ監視結果を通知する。
 (S2803)車載システム通信部11は、監視結果を受信して、監視結果表示部12へ送信する。
 (S2804)監視結果表示部12は、監視結果を表示する。
 [監視情報変更処理のシーケンス]
 図29は、実施の形態における監視情報変更処理のシーケンスを示す図である。
 図29は、SA監視部SA110のシステム状態取得部SA122が、アプリケーション監視部、仮想マシン監視部、HV監視部HV110、及び、SA監視部SA110からセキュリティ状態を取得し、アプリケーション監視部、仮想マシン監視部、HV監視部HV110、及び、SA監視部SA110の監視情報を更新するまでの処理シーケンスを示している。
 (S2901)SA監視部SA110のシステム状態取得部SA122が、アプリケーション監視部、仮想マシン監視部、HV監視部HV110、及び、SA監視部SA110からシステム状態としてのセキュリティ状態を取得し、監視情報変更部SA125へ送信する。
 (S2902)監視情報変更部SA125は、監視変更ルール記憶部SA124に格納された監視変更ルールを確認し、システム状態が監視変更ルールの変更条件を満たす場合、変更処理を実施し、監視情報更新部A115、A215、A315、VM115、VM215、VM315、HV115、SA115へ変更を要求する。
 (S2903)監視情報更新部A115、A215、A315、VM115、VM215、VM315、HV115、SA115は監視情報を更新する。
 ここで、監視情報及び監視構成は、監視サーバー10によっても変更可能である。その場合、監視サーバー通信部SA126は、監視サーバー10から変更情報を受信し、監視情報変更部SA125へ送信する。そして、監視情報変更部SA125が、監視構成記憶部SA123に含まれる構成情報を更新し、監視情報更新部A115、A215、A315、VM115、VM215、VM315、HV115、SA115のへ監視情報の変更を要求することで実現する。
 [監視処理のフローチャート]
 図30に、実施の形態における監視処理のフローチャートを示す。
 図30では、アプリ監視部A110を例に挙げて説明するが、他のアプリケーション監視部、仮想マシン監視部、HV監視部HV110、及び、SA監視部SA110であっても通信ログの種類と、ソフトウェアの種類とが異なる以外は同様である。
 (S3001)アプリ監視部A110の監視対象取得部A111は監視対象である外部通信ログとソフトウェアのハッシュ値を取得し、ステップS3002及びステップS3005を実施する。
 (S3002)監視部A113は、ステップS3001にて取得した外部通信ログに異常が含まれるか否かを判定し、異常が含まれる場合(S3002でYes)にステップS3003を実施し、異常が含まれない場合(S3002でNo)にステップS3004を実施する。
 (S3003)監視部A113は、監視対象の通信が異常であるとしてシステム状態を更新し、ステップS3005を実施する。
 (S3004)監視部A113は、監視対象の通信が正常であるとしてシステム状態を更新し、ステップS3005を実施する。
 (S3005)監視結果通知部A116は、監視結果とシステム状態を監視結果取得部SA121へ通知し、終了する。
 (S3006)監視部A113は、ソフトウェアに異常が含まれるか否かを判定し、異常が含まれる場合(S3006でYes)、ステップS3007を実施し、異常が含まれない場合(S3006でNo)、ステップS3008を実施する。
 (S3007)監視部A113は、監視対象のソフトウェアが異常であるとしてシステム状態を更新し、ステップS3005を実施する。
 (S3008)監視部A113は、監視対象のソフトウェアが正常であるとしてシステム状態を更新し、ステップS3005を実施する。
 [監視変更処理のフローチャート]
 図31に、実施の形態における監視変更処理のフローチャートを示す。
 (S3101)管理部SA120のシステム状態取得部SA122はシステム状態を取得し、ステップS3102を実施する。
 (S3102)監視情報変更部SA125は、監視変更ルール記憶部SA124に格納される監視変更ルールを確認し、ステップS3101にて取得したシステム状態が、監視変更ルールの変更条件を満たすか否かを判定し、変更条件を満たす場合(S3102でYes)にステップS3103を実施し、変更条件を満たさない場合(S3102でNo)に終了する。
 (S3103)監視情報変更部SA125は、ステップS3102にて条件が満たされた変更条件が監視変更ルールにおいて対応する変更処理を実施し、監視情報更新部A115、A215、A315、VM115、VM215、VM315、HV115、SA115のへ監視情報の変更を要求し、終了する。
 [効果など]
 本実施の形態に係る監視装置としての統合ECU200は、それぞれがソフトウェア及び通信ログの少なくとも1つを監視対象として監視する3以上の監視部を備える。3以上の監視部は、第一の実行権限にて動作する第一の監視部と、第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、第二の実行権限と信頼性が同じ、または、第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含む。統合ECU200は、信頼度の低い監視部のソフトウェアを少なくとも1つの信頼度の高い監視部から監視する監視の信頼チェーンを構築できるように、第一の監視部は、第二の監視部のソフトウェアを監視し、第一の監視部及び第二の監視部の少なくとも1つは、第三の監視部のソフトウェアを監視する。
 これにより、システムに侵入した攻撃者は弱い第三の実行権限を獲得後、より強い第二の実行権限、第一の実行権限の獲得を目指すと想定できるため、第二の実行権限よりも弱い第三の実行権限が乗っ取られた後、第三の監視部のソフトウェアを改ざんすることで監視を回避しようと試みた場合であっても、第一の監視部または第二の監視部から第三の監視部のソフトウェアの異常を検知できる効果がある。また、強い実行権限でプログラムを動作させる環境とは弱い実行権限でプログラムを動作させる環境は分離されると想定できるため、実行権限が異なる3段階の監視部を用いることによって、3種類の環境に渡って広い範囲の監視対象を監視できる効果がある。また、強い実行権限で動作するソフトウェアは脆弱性を含まないように単純なアルゴリズムで実装されると想定できるため、強い実行権限で動作する監視部には単純なアルゴリズムを採用し、弱い実行権限で動作する監視部には高度で複雑なアルゴリズムを採用できる効果がある。
 また、本実施の形態に係る統合ECU200において、3以上の監視部は、4以上の監視部を備える。4以上の監視部は、第一の監視部と、第二の監視部と、第三の監視部と、第三の実行権限と信頼性が同じ、または、第三の実行権限よりも信頼性が低い第四の実行権限にて動作する第四の監視部とを含む。統合ECU200は、信頼度の低い監視部のソフトウェアを少なくとも1つの信頼度の高い監視部から監視する監視の信頼チェーンを構築できるように、第一の監視部、第二の監視部、及び、第三の監視部の少なくとも1つは、第四の監視部のソフトウェアを監視する。
 これにより、システムに侵入した攻撃者は弱い第四の実行権限を獲得後、より強い第三の実行権限、強い第二の実行権限、第一の実行権限の獲得を目指すと想定できるため、第三の実行権限よりも弱い第四の実行権限が乗っ取られた後、第四の監視部のソフトウェアを改ざんすることで監視を回避しようと試みた場合であっても、第一の監視部または第二の監視部、第三の監視部から第四の監視部のソフトウェアの異常を検知できる効果がある。また、強い実行権限でプログラムを動作させる環境とは弱い実行権限でプログラムを動作させる環境は分離されると想定できるため、実行権限が異なる4段階の監視部を用いることによって、4種類の環境に渡って広い範囲の監視対象を監視できる効果がある。また、強い実行権限で動作するソフトウェアは脆弱性を含まないように単純なアルゴリズムで実装されると想定できるため、強い実行権限で動作する監視部には単純なアルゴリズムを採用し、弱い実行権限で動作する監視部には高度で複雑なアルゴリズムを採用できる効果がある。
 また、本実施の形態に係る統合ECU200において、統合ECU200は、セキュアアプリ、仮想ソフトウェア基盤、及び、1以上の仮想マシン上にて動作する。第一の実行権限は、セキュアアプリの実行権限、仮想ソフトウェア基盤の実行権限、及び、仮想マシンのカーネル実行権限のうちの1つである。第二の実行権限は、仮想ソフトウェア基盤の実行権限、仮想マシンのカーネル実行権限、及び、仮想マシンのユーザ権限のうちの1つである。第三の実行権限は、仮想マシンのカーネル実行権限、及び、仮想マシンのユーザ権限のうちの1つである。セキュアアプリの実行権限は、仮想ソフトウェア基盤の実行権限よりも信頼性が高い。仮想ソフトウェア基盤の実行権限は、仮想マシンのカーネル実行権限よりも信頼性が高い。仮想マシンのカーネル実行権限は、仮想マシンのユーザ権限よりも信頼性が高い。
 これにより、仮想マシンのユーザアプリの脆弱性をついて仮想マシンのユーザ権限を獲得した攻撃者は、仮想マシンのカーネル権限、ハイパーバイザの実行権限、セキュアアプリの実行権限の獲得を目指すと想定できるため、仮想マシンのユーザ権限、仮想マシンのカーネル権限、ハイパーバイザの実行権限を乗っ取られた後、乗っ取った実行権限で動作する監視部のソフトウェアを改ざんして監視を回避しようと試みた場合であっても、より強い実行権限の監視部から弱い実行権限の監視部の異常を検知できる効果がある。また、セキュアアプリの実行権限やハイパーバイザの実行権限では、仮想マシンのユーザ空間のソフトウェアや、仮想マシンのユーザ空間のネットワークログ、仮想マシンのユーザ空間とカーネル空間の間のシステムコールといった通信ログの取得が困難であると想定できるため、実行権限ごとに監視部を分離することによって、より広い範囲の監視対象を監視できる効果ある。また、セキュアアプリの実行権限とハイパーバイザの実行権限、仮想マシンのカーネル権限で動作するソフトウェアは脆弱性を含まないように単純なアルゴリズムで実装されると想定できるため、強い実行権限で動作する監視部には単純なアルゴリズムを採用し、弱い実行権限で動作する監視部には高度で複雑なアルゴリズムを採用できる効果がある。
 また、本実施の形態に係る統合ECU200において、監視装置は、仮想ソフトウェア基盤及び2以上の仮想マシン上にて動作する。仮想マシンに割り当てられた実行権限にて動作する監視部が2以上存在する場合、(i)仮想マシンに割り当てられた実行権限にて動作する2以上の監視部のうちの第一の仮想マシンの監視部は、2以上の監視部のうちの第二の仮想マシンの監視部のソフトウェアを監視対象に含み、(ii)2以上の仮想マシンは、攻撃者によって改ざんされる可能性に応じて第一の仮想マシン及び第二の仮想マシンのいずれかに分類される。
 これにより、外部ネットワークからシステムに侵入し、外部ネットワークと接続される仮想マシンのユーザ権限及びカーネル権限を獲得した攻撃者は、他の仮想マシンの機能獲得を目指すと想定できるため、外部ネットワークと接続される改ざんリスクの高い第二の仮想マシンの監視部が乗っ取られた場合であっても、外部ネットワークと接続しない改ざんリスクの低い第一の仮想マシンの監視部から第二の仮想マシンの監視部のソフトウェアの異常を検知できる効果がある。また、車両の制御機能を有する仮想マシンは、改ざんされた場合の安全性への影響が大きく、攻撃者の対象になりやすいため、より信頼可能な仮想マシンの監視部から監視することで、安全性を維持できる効果がある。もしくは、車両の制御機能を有する仮想マシンは、外部ネットワークから隔離されており、高い機能安全レベルの要求を満たすためにセキュアな設計と実装が十分考慮されていると想定できるため、車両の制御機能を有する仮想マシンは信頼可能な第一の仮想マシンとして扱うことができる効果がある。また、実行権限だけを考慮すると、改ざんリスクの高い第二の監視マシンの監視部は、セキュアアプリまたはハイパーバイザの実行権限から監視する必要があるが、実行権限が同一である第一の監視マシンの監視部から第二の監視マシンの監視部を監視できるため、セキュアアプリの実行権限とハイパーバイザの実行権限で動作するソフトウェアを単純化できる効果がある。また、外部ネットワークからシステムに侵入し、特定の仮想マシンのユーザ権限及びカーネル権限を獲得した攻撃者は、他の仮想マシンの機能獲得を目指すと想定できるため、第一の仮想マシンの監視部と、第二の仮想マシンが相互監視または巡回監視を行うことによって、特定の仮想マシンが乗っ取られた場合であっても、それ以外の仮想マシンの監視部から特定の仮想マシンの異常を検知できる効果がある。
 また、本実施の形態に係る統合ECU200において、3以上の監視部のそれぞれは、所定の時間経過、所定の外部ネットワーク接続時間経過、システム起動、システム再起動、外部ネットワーク接続確立、及び、外部デバイス接続、のうち少なくとも1つを含むイベントが発生したタイミングに応じて、監視対象の監視を開始する。
 これにより、システム起動時にソフトウェアの完全性を検証するセキュアブートのように前段の監視部によって完全性が検証された監視部が、後段の監視部を検証するといった直列的な監視方法ではなく、非同期でソフトウェアの改ざんリスクが高いイベントに応じて監視を実施することで、監視処理の割り込み時間を短縮できる効果がある。さらに、仮想マシンごとのCPUの空き時間を活用して監視処理を行うなど、システムに負荷をかけることなく柔軟に監視処理の負担を配分できる効果がある。
 また、本実施の形態に係る統合ECU200において、監視装置は、車載システム上において動作する。3以上の監視部のそれぞれは、所定の走行時間経過、所定の停止時間経過、所定の走行距離経過、走行モードの切り替え、給油または給電の終了、車両診断の実施、及び、緊急アラートの発呼、のうち少なくとも1つを含むイベントが発生したタイミングに応じて、監視対象の監視を開始する。
 これにより、車載システムにおいて、ソフトウェアの改ざんリスクが高いイベントが発生するごとに、監視対象を監視することで、効率的に非同期監視を実施できる効果がある。
 また、本実施の形態に係る統合ECU200において、3以上の監視部のそれぞれは、他の監視部の監視処理の実行回数、監視処理において異常と判定された回数、及び、監視処理において正常と判定された回数、のうち少なくとも1つの回数に到達したタイミングに応じて、監視対象の監視を開始する。
 これにより、例えば、第一の監視部の監視対象である第二の監視部がすべての監視対象の数だけ監視処理を実行した後に、第一の監視部が第二の監視部のソフトウェアの監視処理を実施することで、第二の監視部の監視結果をすべて信頼するための監視処理の回数を1回に削減できる効果がある。また、例えば、第一の監視部の監視対象である第二の監視部が異常を1回検知した場合に、第一の監視部が第二の監視部のソフトウェアの監視処理を実行することで、第二の監視部の監視対象に異常が発生した場合にのみ監視処理を実行でき、監視処理の回数を削減できる効果がある。また、例えば、第一の監視部の監視対象である第二の監視部が正常を5回検出した場合に、第一の監視部が第二の監視部のソフトウェアの監視処理を1回実行することで、第一の監視部の監視処理を少なくでき、監視処理の回数を削減できる効果がある。これは、強い実行権限のソフトウェアを動作させるためには実行モードの切り替えが必要である場合が想定できるため、実行モードの切り替え回数を削減することでのオーバーヘッドを削減できる効果がある。
 また、本実施の形態に係る統合ECU200において、3以上の監視部のそれぞれは、監視対象がソフトウェアである場合、メモリまたはストレージに記憶されている監視対象であるソフトウェアのハッシュ値、マスク値、及び、複製値のうち少なくとも1つの情報を取得値として取得し、事前に定義された正解値である期待値と取得値とを比較し、期待値と取得値とが一致する場合にソフトウェアが正常であると判定し、期待値と取得値とが一致しない場合にソフトウェアが異常であると判定する。
 これにより、ソフトウェアの改ざんが行われた場合は、期待値と取得値が異なるため、ソフトウェア改ざんの有無を判定できる効果がある。また、ハッシュ値を用いることで、複製値よりも効率的に改ざんを判定でき、マスク値を用いることで複製値よりも効率的に改ざんの有無を判定できる効果がある。また、複製値を用いることで、ハッシュ値よりも正確に改ざんを判定でき、マスク値を用いることで、ハッシュ値よりも正確に改ざんを判定できる効果がある。
 また、本実施の形態に係る統合ECU200において、ソフトウェアは、仮想ソフトウェア基盤のプログラム及び設定ファイルの組み合わせと、仮想マシンのカーネルプログラム及び設定ファイルの組み合わせと、仮想マシン上のユーザアプリのプログラム及び設定ファイルの組み合わせと、3以上の監視部のそれぞれのプログラム及び設定ファイルの組み合わせとのうち少なくとも1つの組み合わせを含む。
 これにより、ハイパーバイザと仮想マシンとユーザアプリと監視部に関連するソフトウェアの改ざんの有無を判定できる。
 また、本実施の形態に係る統合ECU200において、3以上の監視部のそれぞれは、監視対象が通信ログである場合、通信ログを取得し、許可リストと、拒否リストと、正常時の統計情報とのうち少なくとも1つを用いて通信ログを検証し、(i)許可リストに含まれる場合に通信ログが正常であると判定し、許可リストに含まれない場合に通信ログが異常であると判定する第一判定、(ii)拒否リストに含まれない場合に通信ログが正常であると判定し、拒否リストに含まれる場合に通信ログが異常であると判定する第二判定、及び、(iii)正常時の統計情報から逸脱していない場合に通信ログが正常であると判定し、正常時の統計情報から逸脱している場合に通信ログが異常であると判定する第三判定、のいずれか1つの判定を行う。
 これにより、異常な通信が送受信された場合は許可リストに含まれず、拒否リストに含まれ、正常時の統計情報から逸脱するため、通信の異常を判定できる。さらに、異常な通信の送信元や宛先情報を取得でき、送信元のソフトウェアが改ざんされている可能性が高く、宛先のソフトウェアが次の攻撃の対象になっている可能性が高いと把握できる効果がある。
 また、本実施の形態に係る統合ECU200において、通信ログは、イーサネットと、CANプロトコルと、FlexRayプロトコルと、SOME/IPプロトコルと、SOME/IP-SDプロトコルと、システムコールと、ハイパーコールとのうち少なくとも一つを含んでもよい。
 これにより、車載システムに搭載されるネットワークプロトコルを監視対象とすることで、プロトコル特有のパラメータを用いて通信の異常を判定できる効果がある。さらに、異常と判定された通信ログから送信元と宛先を取得でき、異常が発生しうる監視部や監視対象を特定できる効果がある。さらに、特権命令であるシステムコールや、ハイパーコールを監視対象とすることで、実行権限の境界にて発生する異常を判定でき、異常が発生しうる監視部や監視対象を特定できる効果がある。
 また、本実施の形態に係る統合ECU200において、3以上の監視部のそれぞれは、監視対象ごとに設定された優先度に応じて、監視対象の監視頻度と、監視対象の検証方法と、監視対象の選択方法のうち少なくとも1つを変更する。
 これにより、監視対象ごとに改ざんされる可能性と改ざんされた場合の影響の大きさには差があると想定できるため、監視対象ごとに適切な優先度を設定することで、限られたリソース内で改ざんリスクの高い監視対象を重点的に監視できる効果がある。
 また、本実施の形態に係る統合ECU200において、優先度は、監視対象の実行権限と、3以上の監視部のうちの1つの監視部または監視が動作する仮想マシンが外部ネットワーク接続機能を有するか否かと、1つの監視部または監視が動作する仮想マシンが車両制御機能を有するか否かとのうち少なくとも1つに応じて設定される。
 これにより、強い実行権限で動作するソフトウェアは脆弱性を含まないように単純なアルゴリズムで実装されると想定できるため、改ざんされる可能性が低いため優先度を低く設定できる効果がある。また、外部ネットワークと接続されない仮想マシンや、信頼可能な車両の制御機能をもつ仮想マシンは改ざんされる可能性が低いため、優先度を低く設定できる効果がある。
 また、本実施の形態に係る統合ECU200において、統合ECU200は、さらに、監視装置が動作するシステムの状態またはイベントに応じて、監視情報に含まれる優先度と、監視対象に含まれる監視担当及び監視対象の組み合わせである監視構成とのうち少なくとも1つを変更する管理部を含む。
 これにより、システムの状態またはイベントによって監視対象の重要度に差がある場合、監視情報を適切な固定値として設定することは困難であると想定できるため、システム起動後であっても監視情報と監視構成を柔軟に変更することで、効果的に監視できる効果がある。例えば、優先度を柔軟に変更し、優先度に応じて監視対象の監視頻度と監視精度と監視手段を変更することで、限られたリソース内で改ざんリスクの高い監視対象を重点的に監視できる効果がある。また、一つの仮想マシンが再起動するなど、一部の監視部が動作できない状態になった場合に他の監視部が動作できない監視対象の監視を引き継ぐように監視情報を変更することで、監視対象を継続的に監視できる効果がある。また、例えば、一つの仮想マシンが異常と判定された場合に他の監視部が監視対象の監視を引き継ぐことで、監視対象を信頼できる監視部から監視できる効果がある。また、例えば、一つの仮想マシンが異常と判定された場合に他の監視部が監視対象の監視を追加で実施することで、複数の監視部によって監視を強化できる効果がある。また、例えば、一つの仮想マシンのCPUやメモリのリソースが圧迫している場合、他の監視部が監視対象の監視を引き継ぐことで、リソースが圧迫によるシステム影響を低減できる効果がある。
 また、本実施の形態に係る統合ECU200において、管理部は、外部ネットワーク接続中か否かと、外部ネットワーク接続確立イベントの発生の有無と、監視マシンのシステム状態と、監視部の監視結果と、異常を検知した監視部の実行権限と、異常を検知したソフトウェアの実行権限と、異常を検知した通信ログの宛先または送信元とのうち少なくとも1つに応じて、優先度を変更する。
 これにより、ネットワーク接続に関する状態は攻撃可能性に影響するため、監視対象の攻撃可能性の変化に応じて優先度を変更できる効果がある。さらに、ソフトウェアの異常が判定された場合、異常ソフトウェアと同じ仮想マシンのソフトウェアや、同じ実行権限で動作するソフトウェアや、異常を判定した監視部のソフトウェアにおいて、攻撃が発生する可能性が高いと想定できるため、攻撃可能性の変化に応じて優先度を変更できる効果がある。さらに、通信の異常を判定した場合、通信の送信元に異常が発生している可能性が高く、通信の送信先に攻撃が発展する可能性が高いため、攻撃可能性の変化に応じて優先度を変更できる効果がある。
 また、本実施の形態に係る統合ECU200において、統合ECU200は、車載システム上において動作する。管理部は、車両の走行状態に応じて、車両の制御機能を有する仮想マシンで動作する監視対象の優先度を変更する。車両の走行状態は、停止中、手動運転中、高度運転支援中、及び、自動運転中のうちいずれかである。
 これにより、自動運転中や高度運転支援中の場合、車両の制御機能を有する制御仮想マシンのソフトウェアから、車両の走る、曲がる、止まるに関わる制御コマンドが送信され、エンジン、ステアリング、ブレーキなど制御する制御ECUが制御コマンドに従うと想定でき、ソフトウェア改ざんの影響が大きいため、車両の制御機能を有する制御仮想マシンのソフトウェアの優先度を上げて重点的に監視できる効果がある。一方で、停止中または手動走行中の場合、制御ECUが制御コマンドに従わない状態であると想定でき、ソフトウェア改ざんの影響が小さいため、車両の制御機能を有する制御仮想マシンのソフトウェアの監視の優先度を下げることで、他の監視対象の監視処理を優先できる効果がある。
 また、本実施の形態に係る統合ECU200において、管理部は、監視構成の変更後であっても、信頼度の低い監視部のソフトウェアを信頼度の低い監視部よりも信頼度の高い監視部が監視する監視の信頼チェーンを構築できるように、監視構成を変更する。
 これにより、監視構成を変更したとしても、強い実行権限の監視部から弱い実行権限の監視部のソフトウェアを監視することができ、改ざんされる可能性が低い仮想マシンの監視部から改ざんされる可能性の高い仮想マシンの監視部のソフトウェアを監視できるため、いずれかの弱い実行権限監視部が乗っ取られた場合であっても、異常を判定できる効果がある。
 また、本実施の形態に係る統合ECU200において、管理部は、外部ネットワーク接続中か否かと、外部ネットワーク接続確立イベントの発生の有無と、仮想マシンのシステム状態と、監視部の監視結果と、異常を検知した監視部の実行権限と、異常を検知したソフトウェアの実行権限と、異常を検知した通信ログの宛先または送信元とのうち少なくとも1つに応じて、監視構成を変更する。
 これにより、ネットワーク接続に関する状態は攻撃可能性に影響するため、監視対象の攻撃可能性の変化に応じて監視構成を変更できる効果がある。また、一つの仮想マシンが再起動するなど、一部の監視部が無効化状態になった場合に他の監視部が監視対象の監視を引き継ぐことで、監視対象を継続的に監視できる効果がある。さらに、一つの仮想マシンが異常と判定された場合に他の監視部が監視対象の監視を引き継ぐことで、監視対象を信頼できる監視部から監視できる効果がある。さらに、一つの仮想マシンが異常と判定された場合に他の監視部が監視対象の監視を追加で実施することで、複数の監視部によって監視を強化できる効果がある。さらに、一つの仮想マシンのCPUやメモリのリソースが圧迫している場合、他の監視部が監視対象の監視を引き継ぐことで、リソースが圧迫によるシステム影響を削減できる効果がある。
 また、本実施の形態に係る統合ECU200において、統合ECU200は、車載システム上において動作する。管理部は、車両の走行状態に応じて、車両の制御機能を有する仮想マシンに関係する監視構成を変更する。車両の走行状態は、停止中、手動運転中、高度運転支援中、自動運転中のうちいずれかである。
 これにより、自動運転中や高度運転支援中の場合、車両の制御機能を有する制御仮想マシンのソフトウェアから、車両の走る、曲がる、止まるに関わる制御コマンドが送信され、エンジン、ステアリング、ブレーキなど制御する制御ECUが制御コマンドに従うと想定でき、ソフトウェア改ざんの影響が大きいため、複数の監視部によって制御仮想マシンのソフトウェアを監視するよう監視構成を変更できる効果がある。停止中または手動走行中の場合、制御ECUが制御コマンドに従わない状態であると想定でき、ソフトウェア改ざんの影響が小さいため、一つのみの監視部によって負荷の小さい通常の監視を実施できる効果がある。
 また、本実施の形態に係る統合ECU200において、管理部は、(i)予め定義された2以上の監視構成から一つを選択する手段と、(ii)2以上の監視部を頂点とし、監視担当を道の始点とし、監視対象を道の終点とする有向グラフとして監視構成を記憶し、所定のアルゴリズムで有向グラフを再構築する手段と、(iii)2以上の監視部をノードとし、監視担当を親ノードとし、監視対象を子ノードとするツリー構造として監視構成を記憶し、所定のアルゴリズムでツリー構造を再構築する手段と、のうち少なくとも1つの手段で監視構成を変更する。
 これにより、複数の監視構成のパターンから、現在のシステム状況及びイベントに応じて適切な監視構成に変更できる効果がある。また、監視構成を有向グラフのデータ構造で保持することで、一部の監視部が無効化または一部の監視部において異常が判定されたなどの場合に、少なくとも1つの監視部が監視対象を監視できるよう監視構成を再計算可能にする効果がある。また、管理部は、監視部をノードとし、監視担当を親ノードとし、監視対象を子ノードとするツリー構造として監視構成を記憶し、所定のアルゴリズムでツリー構造を再構築することで、監視構成を変更する、監視装置である。また、監視構成をツリー構造のデータ構造で保持することで、一部の監視部が無効化または一部の監視部において異常が判定されたなどの場合に、少なくとも1つの監視部が監視対象を監視できるよう監視構成を再計算可能にする効果がある。
 また、本実施の形態に係る統合ECU200において、統合ECU200は、さらに、監視サーバーへ監視結果を通知する監視サーバー通信部を備える。
 これにより、監視サーバーを介して監視結果をセキュリティ分析官へ通知でき、異常が発生した場合にはソフトウェアの更新など対策を検討できる効果がある。
 また、本実施の形態に係る監視システムは、監視装置と監視サーバーとで構成される監視システムであって、監視装置は、それぞれがソフトウェア及び通信ログの少なくとも1つを監視対象として監視する3以上の監視部と、監視部識別子と、監視対象識別子と、正常判定時刻と、異常判定時刻と、のうち少なくとも2つを監視結果として監視サーバーへ送信する監視サーバー通信部と、を備える。3以上の監視部は、第一の実行権限にて動作する第一の監視部と、第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、第二の実行権限と信頼性が同じ、または、第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含む。信頼度の低い監視部のソフトウェアを少なくとも1つの信頼度の高い監視部から監視する監視の信頼チェーンを構築できるように、第一の監視部は、第二の監視部のソフトウェアを監視し、第一の監視部及び第二の監視部の少なくとも1つは、第三の監視部のソフトウェアを監視する。監視サーバーは、監視結果を受信し、グラフィカルユーザーインターフェース上に監視結果を表示する監視結果表示部を備える。
 これにより、セキュリティ分析官は監視結果を視覚的に把握することができ、異常が発生した場合にはソフトウェアの更新など対策を迅速に検討できる効果がある。
 また、本実施の形態に係る監視システムにおいて、監視結果表示部は、システムアーキテクチャに関連付けて監視結果を表示し、異常を検知した監視部または異常が検知された監視対象を強調する手段と、所定のタイムラインに関連付けて監視結果を表示し、正常判定時刻または異常判定時刻を強調する手段とのうち少なくとも1つの手段でグラフィカルユーザーインターフェース上に監視結果を表示する。
 これにより、セキュリティ分析官は監視部の場所と、監視対象の場所、監視結果を直感的に把握することができ、異常が発生した場合にはソフトウェアの更新など対策をより迅速に検討できる効果がある。また、セキュリティ分析官は監視結果の時系列を直感的に把握することができ、異常が発生した場合にはソフトウェアの更新など対策をより迅速に検討できる効果がある。
 また、本実施の形態に係る監視システムにおいて、監視サーバーは、さらに、監視対象と、監視対象を監視する監視部と、監視対象の優先度と、優先度に対応した監視方法とのうち少なくとも1つの監視情報の変更を受け付け、監視装置に変更を要求する監視情報変更部を備える。監視装置は、さらに、監視情報変更部の要求に応じて監視情報を更新する監視情報更新部を備える。
 これにより、セキュリティ分析官は監視結果を分析した結果、監視対象や監視部、優先度、優先度ごとの監視方法などの修正が必要であると判断した場合に、迅速にシステムに修正を反映することができる効果がある。
 [統合ECUの構成図の詳細の変形例1]
 図32は、実施の形態における統合ECUの構成図の詳細の変形例1を示す図である。図4では、仮想ソフトウェア基盤としてタイプ1のハイパーバイザHV100の利用を想定して記載しているが、タイプ2のハイパーバイザHV200を用いてもよい。この場合、ホストオペレーティングシステムHOS100がハイパーバイザHV200を起動し、ハイパーバイザHV200が仮想マシンを起動する。
 ハイパーバイザHV200は、HV領域のソフトウェアとVM領域のソフトウェアとを監視するHV監視部HV210を備える。ホストオペレーティングシステムHOS100は、ホストOS領域のソフトウェアとHV領域のソフトウェアとVM領域のソフトウェアとシステムコールとを監視するホストOS監視部HOS110を備える。
 各プログラムの実行権限について説明する。図4と同様に、セキュアオペレーティングシステムに、最も強いセキュアな実行権限(PL4)を割り当て、オペレーティングシステム上のアプリケーションに次に強いセキュアな実行権限(PL3)を割り当てる。図4とは異なり、ホストオペレーティングシステムHOS100に強い実行権限(PL1)を割り当て、ハイパーバイザHV200と、仮想マシンにホストオペレーティングシステムHOS100と同じ実行権限(PL1)を割り当てる。そして、図4と同様に、仮想マシン上のアプリケーション(PL0)に最も弱い実行権限を割り当てる。なお、実行権限は、強い順にPL4、PL3、PL2、PL1、PL0である。
 この場合、外部ネットワークと接続される外部アプリA100が改ざんされる可能性が最も高いため信頼度が最も低く、次に実行権限が弱い制御アプリA200及び映像アプリA300の信頼度が低く、次に実行権限が弱い外部仮想マシンVM100、制御仮想マシンVM200、映像仮想マシンVM300、ハイパーバイザHV200、及び、ホストオペレーティングシステムHOS100の信頼度が低く、セキュアアプリSA100及びセキュアオペレーティングシステムSOS100の信頼度が最も高いと想定できる。また、ホストオペレーティングシステムHOS100は外部仮想マシンへ外部ネットワークインタフェースをブリッジなどの手段で提供する場合、ホストオペレーティングシステムHOS100は外部ネットワークと接続される可能性があり、ホストオペレーティングシステムHOS100から仮想マシンへ提供するストレージへアクセスできる可能性もあることから、図4におけるハイパーバイザHV200とは異なり、ホストオペレーティングシステムHOS100のソフトウェアの信頼度は低い。そのため、セキュアアプリは、ホストオペレーティングシステムHOS100だけでなく、ハイパーバイザHV200及び仮想マシンのソフトウェアを監視することが望ましい。
 アプリケーション、仮想マシン、ハイパーバイザHV200、ホストオペレーティングシステムHOS100、及び、セキュアアプリSA100のそれぞれにセキュリティ対策機構を導入することが望ましいが、セキュリティ対策機構自体が改ざんされるリスクが課題となる。そこで、例えば、SA監視部SA110がホストOS監視部HOS110のソフトウェアと、HV監視部HV210のソフトウェアと、仮想マシンのソフトウェアとを監視し、仮想マシン監視部がアプリケーション監視部を監視してもよい。
 このように、それぞれの監視部を、より強い実行権限で動作する少なくとも1つの多層監視部から監視することで、監視の信頼チェーンを構築できる。これによって、ホストオペレーティングシステムHOS100やハイパーバイザHV200が乗っ取られた場合であっても、SA監視部SA110から異常を検知できる。
 なお、ハイパーバイザHV200にホストオペレーティングシステムHOS100より強い実行権限(PL2)を割り当ててもよい。この場合、実行権限と信頼度と監視の信頼チェーンについては図4の説明と同様になる。
 [統合ECUの構成図の詳細の変形例2]
 図33は、実施の形態における統合ECUの構成図の詳細の変形例2を示す図である。図4では、ハイパーバイザHV100が3種類の仮想マシンを実行及び監視を実施する記載しているが、ハイパーバイザHV100がホストするコンテナ仮想マシンVM400がコンテナ仮想化基盤であるコンテナエンジンCE100を用いて、アプリケーション層を仮想化して、コンテナアプリCA100とコンテナアプリCA200とを動作させてもよい。
 コンテナ仮想マシンVM400は、コンテナエンジンCE100のソフトウェアと、コンテナアプリCA100のソフトウェア及び設定と、コンテナアプリCA200のソフトウェア及び設定とを含むVM領域のソフトウェアを監視するVM監視部VM410を備える。コンテナアプリCA200は、アプリ領域のソフトウェアと、コンテナアプリCA100と、コンテナ間通信とを監視するコンテナアプリ監視部CA210を備える。
 各プログラムの実行権限について説明する。図4と同様に、セキュアオペレーティングシステムに、最も強いセキュアな実行権限(PL4)を割り当て、オペレーティングシステム上のアプリケーションに次に強いセキュアな実行権限(PL3)を割り当て、ハイパーバイザHV100に次に強い実行権限(PL2)を割り当て、仮想マシンに次に強い実行権限(PL1)を割り当てる。コンテナエンジンCE100と、コンテナアプリCA100と、コンテナアプリCA200には最も弱い実行権限を割り当てる。なお、実行権限は、強い順にPL4、PL3、PL2、PL1、PL0である。
 ここで、同じ実行権限で動作する複数のコンテナは信頼度が異なってもよい。例えば、コンテナアプリCA100がWi-FiやBluetoothなどの近接ネットワークと通信する機能を有し、コンテナアプリCA200が車両の制御機能を有する場合、ソフトウェアが改ざんされる可能性を考慮すると、コンテナアプリCA100よりコンテナアプリCA200の信頼度が高いと考えられる。この場合、コンテナアプリ監視部CA210がコンテナアプリCA100のソフトウェアを監視することで、監視の信頼チェーンを同一の実行権限で動作するコンテナ間であっても構築できる。
 この場合、外部ネットワークと接続される外部アプリA100が改ざんされる可能性が最も高いため信頼度が最も低く、次に実行権限が弱いが近接ネットワークを介した通信を直接行うコンテナアプリCA200の信頼度が低く、次に実行権限は同じであるがネットワークを介した通信を直接行わないコンテナアプリCA100と、コンテナエンジンCE100の信頼度が低く、次に実行権限が弱い外部仮想マシンVM100、及び、コンテナ仮想マシンVM400の信頼度が低く、次に実行権限が弱いハイパーバイザHV100の信頼度が低く、セキュアアプリSA100、及び、セキュアオペレーティングシステムSOS100の信頼度が最も高いと想定できる。
 アプリケーション、仮想マシン、ハイパーバイザHV100、コンテナ仮想マシンVM400、コンテナアプリCA100、及び、コンテナアプリCA200のそれぞれに対策機構を導入することが望ましいが、セキュリティ対策機構自体が改ざんされるリスクが課題となる。そこで、例えば、SA監視部SA110がHV監視部HV110のソフトウェア及び仮想マシンのソフトウェアを監視し、VM監視部VM410がコンテナエンジンCE100、コンテナアプリCA100、コンテナアプリCA200、及び、コンテナアプリ監視部CA210を監視し、コンテナアプリ監視部CA210がアプリ監視のソフトウェアと、コンテナアプリCA100と、コンテナ間通信とを監視することで、それぞれの監視部を、より強い実行権限またはより高い信頼度で動作する少なくとも1つの多層監視部から監視できるため、監視の信頼チェーンを構築できる。
 なお、ハイパーバイザHV100を用いることは必須でなく、ホストとなるオペレーティングシステムが、アプリケーションをコンテナエンジンCE100によって仮想化して、コンテナアプリCA100とコンテナアプリCA200を動作させてもよい。この場合、実行権限と信頼度と監視の信頼チェーンについては、ハイパーバイザHV100を削除し、コンテナ仮想マシンVM400にホストとなるオペレーティングシステムに置き換えることで、図33の説明と同様に説明できる。
 以上の変形例1及び変形例2のように、監視装置は、セキュアアプリ、ホストオペレーティングシステム、1以上の仮想ソフトウェア基盤、及び、1以上の仮想マシン上、または、1以上のコンテナ仮想化基盤及び2以上のコンテナ上にて動作する。第一の実行権限と、第二の実行権限と、第三の実行権限と、第四の実行権限とは、セキュアアプリの実行権限と、ホストオペレーティングシステムの実行権限と、仮想ソフトウェア基盤の実行権限と、仮想マシンのカーネル実行権限と、仮想マシンのユーザ実行権限と、コンテナの実行権限とのうちの1つである。同一の実行権限にて動作する仮想マシンの監視部が2以上存在する場合、同一の実行権限にて動作する2以上の仮想マシンの2以上の監視部のうちの第一の仮想マシンの監視部は、2以上の仮想マシンの2以上の監視部のうちの第二の仮想マシンの監視部のソフトウェアを監視対象に含み、2以上の仮想マシンは、攻撃者によって改ざんされる可能性に応じて第一の仮想マシン及び第二の仮想マシンのいずれかに分類される。また、同一の実行権限にて動作するコンテナの監視部が2以上存在する場合、同一の実行権限にて動作する2以上のコンテナの2以上の監視部のうちの第一のコンテナの監視部は、2以上のコンテナの2以上の監視部のうちの第二のコンテナの監視部のソフトウェアを監視対象に含み、2以上のコンテナは、攻撃者によって改ざんされる可能性に応じて第一のコンテナ及び第二のコンテナのいずれかに分類される。
 これにより、ホストとなるオペレーティングシステムが、仮想ソフトウェア基盤であるハイパーバイザを用いて、複数の仮想マシンを実行及び管理する場合や、DockerやKubernetesなどに代表されるコンテナ仮想化基盤を用いて複数のコンテナを実行及び管理する場合であっても、外部ネットワークとの接続機能の有無など改ざんされる可能性に応じて仮想マシンまたはコンテナの信頼度は異なると想定できるため、複数の監視部を監視の信頼チェーンを構築することで、信頼度の低い第二の仮想マシンまたは第二のコンテナの監視部が乗っ取られた場合であっても、信頼度の高い第一の仮想マシンの監視部または第一のコンテナの監視部から異常を検知できる効果がある。
 (他の実施の形態)
 以上のように、本開示に係る技術の例示として実施の形態を説明した。しかしながら、本開示に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本開示の一実施態様に含まれる。
 (1)上記の実施の形態では、自動車に搭載される車載システムにおけるセキュリティ対策として説明したが、適用範囲はこれに限られない。自動車に限らず、建機、農機、船舶、鉄道、飛行機などのモビリティにも適用してもよい。すなわち、モビリティシステムにおけるセキュリティ対策として適用可能である。また、工場やビルなどの産業制御システムに適用してもよい。
 (2)上記の実施の形態では、通信ログとしてセキュアアプリの通信に利用されるセキュアモニタコールを用いていないが、セキュアモニタコールは、VM監視部VM210、HV監視部HV110またはSA監視部SA110による監視対象とされてもよい。これにより、セキュアアプリ及びセキュアOSが記憶する秘密情報への攻撃試行を補足できる効果がある。
 (3)上記の実施の形態では、セキュアオペレーティングシステムSOS100に監視部を実装しない構成のみを記載しているが、監視部を実装してもよい。この場合、セキュアオペレーティングシステムSOS100では、脆弱性を含まない実装が求められるため、セキュアアプリのソフトウェアを検証するだけの単純なアルゴリズムの実装が望ましい。
 (4)上記の実施の形態では、ハイパーバイザHV100は、実行及び管理の対象となる仮想マシンの種類は3種類であるとしたが、3種類でなくともよく、3種類未満の仮想マシンであっても、4種類以上の仮想マシンであってもよい。
 (5)上記の実施の形態では、割り当てる実行権限を4種類の実行権限としたが、4種類の実行権限でなくともよく、4種類未満の実行権限であっても、5種類以上の実行権限であってもよい。
 (6)上記の実施の形態では、外部ネットワークへの接続または、車両の制御の機能の有無に応じて、仮想マシンの信頼度が異なると説明しているが、ユーザログイン機能の有無または、第三者アプリのダウンロード機能の有無に応じて仮想マシンの信頼度が異なってもよい。この場合、ユーザログイン機能を有する場合は、不正ログインされる可能性があるため信頼度は低く、第三者アプリのダウンロード機能を有する場合は、不正ソフトウェアをダウンロードされる可能性があるため信頼度は低いと想定できる。
 (7)上記の実施の形態では、すべての仮想マシンとすべてのアプリケーションとハイパーバイザHV100とセキュアアプリSA100に監視部を配置するとして記載しているが、これらの配置は必須でなく、実行権限または仮想マシンの信頼度が異なる2以上の監視部が配置されていればよい。
 (8)上記実施の形態における各装置を構成する構成要素の一部又は全部は、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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
 (9)上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしても良い。ICカード又はモジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。ICカード又はモジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカード又はモジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
 (10)本開示の一態様としては、異常検知の方法をコンピュータにより実現するプログラム(コンピュータプログラム)であるとしても良いし、コンピュータプログラムからなるデジタル信号であるとしても良い。また、本開示の一態様としては、コンピュータプログラム又はデジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu―ray(登録商標) Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されているデジタル信号であるとしても良い。また、本開示の一態様としては、コンピュータプログラム又はデジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本開示の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムに従って動作するとしても良い。また、プログラム若しくはデジタル信号を記録媒体に記録して移送することにより、又は、プログラム若しくはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
 (11)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本開示の範囲に含まれる。
 本開示の監視装置によれば、車載システムに攻撃者が侵入し、信頼度が低い領域に実装された監視プログラムが改ざんされて無効化された場合であっても、車載システムに発生した異常を検知できる。これにより、安全な自動運転や先進運転支援システムを提供することを目的とする。
 10 監視サーバー
 11 車載システム通信部
 12 監視結果表示部
 13 監視構成変更部
 14 監視変更ルール変更部
 15 監視情報変更部
 20 車載システム
 30 外部ネットワーク
 40、41 CAN
 50、51 イーサネット
 200 統合ECU
 300 ゲートウェイECU
 400a ステアリングECU
 400b ブレーキECU
 500 ZoneECU
 600a フロントカメラECU
 600b リアカメラECU
 A100 外部アプリ
 A101 外部通信部
 A102 外部アプリ実行部
 A103、A203、A303 アプリ領域記憶部
 A110、A210、A310 アプリ監視部
 A111、A211、A311、VM111、VM211、VM311、HV111、SA111 監視対象取得部
 A112、A212、A312、VM112、VM212、VM312、HV112、SA112 システム状態取得部
 A113、A213、A313、VM113、VM213、VM313、HV113、SA113 監視部
 A114、A214、A314、VM114、VM214、VM314、HV114、SA114 監視情報記憶部
 A115、A215、A315、VM115、VM215、VM315、HV115、SA115 監視情報更新部
 A116、A216、A316、VM116、VM216、VM316、HV116、SA116 監視結果通知部
 A200 制御アプリ
 A201 CAN通信部
 A202 制御アプリ実行部
 A300 映像アプリ
 A301 イーサネット通信部
 A302 映像アプリ実行部
 CA100、CA200 コンテナアプリ
 CA210 コンテナアプリ監視部
 CE100 コンテナエンジン
 HV100、HV200 ハイパーバイザ
 HV101 仮想マシン通信部
 HV102 ハイパーコール制御部
 HV103 HV領域記憶部
 HV110、HV210 HV監視部
 HOS100 ホストオペレーティングシステム
 HOS110 ホストOS監視部
 SA100 セキュアアプリ
 SA110 SA監視部
 SA120 管理部
 SA121 監視結果取得部
 SA122 システム状態取得部
 SA123 監視構成記憶部
 SA124 監視変更ルール記憶部
 SA125 監視情報変更部
 SA126 監視サーバー通信部
 SOS100 セキュアオペレーティングシステム
 VM100 外部仮想マシン
 VM101、VM201、VM301 アプリ通信部
 VM102、VM202、VM302 システムコール制御部
 VM103、VM203、VM303 VM領域記憶部
 VM104、VM204、VM304 ハイパーコール呼出部
 VM110、VM210、VM310、VM410 VM監視部
 VM200 制御仮想マシン
 VM300 映像仮想マシン
 VM400 コンテナ仮想マシン

Claims (26)

  1.  それぞれがソフトウェア及び通信ログの少なくとも1つを監視対象として監視する3以上の監視部を備え、
     前記3以上の監視部は、第一の実行権限にて動作する第一の監視部と、前記第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、前記第二の実行権限と信頼性が同じ、または、前記第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含み、
     前記第一の監視部は、前記第二の監視部のソフトウェアを監視し、
     前記第一の監視部及び前記第二の監視部の少なくとも1つは、前記第三の監視部のソフトウェアを監視する
     監視装置。
  2.  前記3以上の監視部は、4以上の監視部を備え、
     前記4以上の監視部は、前記第一の監視部と、前記第二の監視部と、前記第三の監視部と、前記第三の実行権限と信頼性が同じ、または、前記第三の実行権限よりも信頼性が低い第四の実行権限にて動作する第四の監視部とを含み、
     前記第一の監視部、前記第二の監視部、及び、前記第三の監視部の少なくとも1つは、前記第四の監視部のソフトウェアを監視する
     請求項1に記載の監視装置。
  3.  前記監視装置は、セキュアアプリ、仮想ソフトウェア基盤、及び、1以上の仮想マシン上にて動作し、
     前記第一の実行権限は、セキュアアプリの実行権限、仮想ソフトウェア基盤の実行権限、及び、仮想マシンのカーネル実行権限のうちの1つであり、
     前記第二の実行権限は、前記仮想ソフトウェア基盤の実行権限、前記仮想マシンのカーネル実行権限、及び、前記仮想マシンのユーザ権限のうちの1つであり、
     前記第三の実行権限は、前記仮想マシンのカーネル実行権限、及び、前記仮想マシンのユーザ権限のうちの1つであり、
     前記セキュアアプリの実行権限は、前記仮想ソフトウェア基盤の実行権限よりも信頼性が高く、
     前記仮想ソフトウェア基盤の実行権限は、前記仮想マシンのカーネル実行権限よりも信頼性が高く、
     前記仮想マシンのカーネル実行権限は、前記仮想マシンのユーザ権限よりも信頼性が高い
     請求項1に記載の監視装置。
  4.  前記監視装置は、仮想ソフトウェア基盤及び2以上の仮想マシン上にて動作し、
     前記仮想マシンに割り当てられた実行権限にて動作する監視部が2以上存在する場合、
      前記仮想マシンに割り当てられた実行権限にて動作する2以上の監視部のうちの第一の仮想マシンの監視部は、前記2以上の監視部のうちの第二の仮想マシンの監視部のソフトウェアを監視対象に含み、
      前記2以上の仮想マシンは、攻撃者によって改ざんされる可能性に応じて前記第一の仮想マシン及び前記第二の仮想マシンのいずれかに分類される
     請求項1から3のいずれか1項に記載の監視装置。
  5.  前記監視装置は、セキュアアプリ、ホストオペレーティングシステム、1以上の仮想ソフトウェア基盤、及び、1以上の仮想マシン上、または、1以上のコンテナ仮想化基盤及び2以上のコンテナ上にて動作し、
     前記第一の実行権限と、前記第二の実行権限と、前記第三の実行権限と、前記第四の実行権限とは、セキュアアプリの実行権限と、ホストオペレーティングシステムの実行権限と、仮想ソフトウェア基盤の実行権限と、仮想マシンのカーネル実行権限と、仮想マシンのユーザ実行権限と、コンテナの実行権限とのうちの1つであり、
     同一の実行権限にて動作する仮想マシンの監視部が2以上存在する場合、
      前記同一の実行権限にて動作する2以上の仮想マシンの2以上の監視部のうちの第一の仮想マシンの監視部は、前記2以上の仮想マシンの前記2以上の監視部のうちの第二の仮想マシンの監視部のソフトウェアを監視対象に含み、
      前記2以上の仮想マシンは、攻撃者によって改ざんされる可能性に応じて前記第一の仮想マシン及び前記第二の仮想マシンのいずれかに分類され、
     同一の実行権限にて動作するコンテナの監視部が2以上存在する場合、
      前記同一の実行権限にて動作する2以上のコンテナの2以上の監視部のうちの第一のコンテナの監視部は、前記2以上のコンテナの前記2以上の監視部のうちの第二のコンテナの監視部のソフトウェアを監視対象に含み、
      前記2以上のコンテナは、攻撃者によって改ざんされる可能性に応じて前記第一のコンテナ及び前記第二のコンテナのいずれかに分類される
     請求項2に記載の監視装置。
  6.  前記3以上の監視部のそれぞれは、所定の時間経過、所定の外部ネットワーク接続時間経過、システム起動、システム再起動、外部ネットワーク接続確立、及び、外部デバイス接続、のうち少なくとも1つを含むイベントが発生したタイミングに応じて、前記監視対象の監視を開始する
     請求項1から5のいずれか1項に記載の監視装置。
  7.  前記監視装置は、車載システム上において動作し、
     前記3以上の監視部のそれぞれは、所定の走行時間経過、所定の停止時間経過、所定の走行距離経過、走行モードの切り替え、給油または給電の終了、車両診断の実施、及び、緊急アラートの発呼、のうち少なくとも1つを含むイベントが発生したタイミングに応じて、前記監視対象の監視を開始する
     請求項1から5のいずれか1項に記載の監視装置。
  8.  前記3以上の監視部のそれぞれは、他の監視部の監視処理の実行回数、監視処理において異常と判定された回数、及び、監視処理において正常と判定された回数、のうち少なくとも1つの回数に到達したタイミングに応じて、前記監視対象の監視を開始する
     請求項1から5のいずれか1項に記載の監視装置。
  9.  前記3以上の監視部のそれぞれは、前記監視対象がソフトウェアである場合、メモリまたはストレージに記憶されている前記監視対象であるソフトウェアのハッシュ値、マスク値、及び、複製値のうち少なくとも1つの情報を取得値として取得し、事前に定義された正解値である期待値と前記取得値とを比較し、前記期待値と前記取得値とが一致する場合に前記ソフトウェアが正常であると判定し、前記期待値と前記取得値とが一致しない場合に前記ソフトウェアが異常であると判定する
     請求項1から8のいずれか1項に記載の監視装置。
  10.  前記ソフトウェアは、仮想ソフトウェア基盤のプログラム及び設定ファイルの組み合わせと、仮想マシンのカーネルプログラム及び設定ファイルの組み合わせと、仮想マシン上のユーザアプリのプログラム及び設定ファイルの組み合わせと、前記3以上の監視部のそれぞれのプログラム及び設定ファイルの組み合わせとのうち少なくとも1つの組み合わせを含む
     請求項9に記載の監視装置。
  11.  前記3以上の監視部のそれぞれは、前記監視対象が通信ログである場合、
     通信ログを取得し、
     許可リストと、拒否リストと、正常時の統計情報とのうち少なくとも1つを用いて前記通信ログを検証し、
     (i)前記許可リストに含まれる場合に前記通信ログが正常であると判定し、前記許可リストに含まれない場合に前記通信ログが異常であると判定する第一判定、(ii)前記拒否リストに含まれない場合に前記通信ログが正常であると判定し、前記拒否リストに含まれる場合に前記通信ログが異常であると判定する第二判定、及び、(iii)前記正常時の統計情報から逸脱していない場合に前記通信ログが正常であると判定し、前記正常時の統計情報から逸脱している場合に前記通信ログが異常であると判定する第三判定、のいずれか1つの判定を行う
     請求項1から10のいずれか1項に記載の監視装置。
  12.  前記通信ログは、イーサネットと、CANプロトコルと、FlexRayプロトコルと、SOME/IPプロトコルと、SOME/IP-SDプロトコルと、システムコールと、ハイパーコールとのうち少なくとも一つを含む
     請求項11に記載の監視装置。
  13.  前記3以上の監視部のそれぞれは、前記監視対象ごとに設定された優先度に応じて、前記監視対象の監視頻度と、前記監視対象の検証方法と、前記監視対象の選択方法のうち少なくとも1つを変更する
     請求項1から12のいずれか1項に記載の監視装置。
  14.  前記優先度は、前記監視対象の実行権限と、前記3以上の監視部のうちの1つの監視部または前記監視が動作する仮想マシンが外部ネットワーク接続機能を有するか否かと、前記1つの監視部または前記監視が動作する仮想マシンが車両制御機能を有するか否かとのうち少なくとも1つに応じて設定される
     請求項13に記載の監視装置。
  15.  前記監視装置は、さらに、前記監視装置が動作するシステムの状態またはイベントに応じて、監視情報に含まれる優先度と、前記監視対象に含まれる監視担当及び監視対象の組み合わせである監視構成とのうち少なくとも1つを変更する管理部を含む
     請求項1から14のいずれか1項に記載の監視装置。
  16.  前記管理部は、外部ネットワーク接続中か否かと、外部ネットワーク接続確立イベントの発生の有無と、監視マシンのシステム状態と、前記監視部の監視結果と、異常を検知した監視部の実行権限と、異常を検知したソフトウェアの実行権限と、異常を検知した通信ログの宛先または送信元とのうち少なくとも1つに応じて、前記優先度を変更する
     請求項15に記載の監視装置。
  17.  前記監視装置は、車載システム上において動作し、
     前記管理部は、車両の走行状態に応じて、車両の制御機能を有する仮想マシンで動作する監視対象の優先度を変更し、
     車両の走行状態は、停止中、手動運転中、高度運転支援中、及び、自動運転中のうちいずれかである
     請求項15に記載の監視装置。
  18.  前記管理部は、前記監視構成の変更後であっても、信頼度の低い監視部のソフトウェアを前記信頼度の低い監視部よりも信頼度の高い監視部が監視する監視の信頼チェーンを構築できるように、監視構成を変更する
     請求項15に記載の監視装置。
  19.  前記管理部は、外部ネットワーク接続中か否かと、外部ネットワーク接続確立イベントの発生の有無と、仮想マシンのシステム状態と、前記監視部の監視結果と、異常を検知した監視部の実行権限と、異常を検知したソフトウェアの実行権限と、異常を検知した通信ログの宛先または送信元とのうち少なくとも1つに応じて、監視構成を変更する
     請求項15または18に記載の監視装置。
  20.  前記監視装置は、車載システム上において動作し、
     前記管理部は、車両の走行状態に応じて、車両の制御機能を有する仮想マシンに関係する監視構成を変更し、
     前記車両の走行状態は、停止中、手動運転中、高度運転支援中、自動運転中のうちいずれかである
     請求項15または18に記載の監視装置。
  21.  前記管理部は、(i)予め定義された2以上の監視構成から一つを選択する手段と、(ii)2以上の監視部を頂点とし、監視担当を道の始点とし、監視対象を道の終点とする有向グラフとして前記監視構成を記憶し、所定のアルゴリズムで有向グラフを再構築する手段と、(iii)前記2以上の監視部をノードとし、前記監視担当を親ノードとし、前記監視対象を子ノードとするツリー構造として前記監視構成を記憶し、所定のアルゴリズムでツリー構造を再構築する手段と、のうち少なくとも1つの手段で前記監視構成を変更する
     請求項15、及び、19から20のいずれかの1項に記載の監視装置。
  22.  前記監視装置は、さらに、監視サーバーへ監視結果を通知する監視サーバー通信部を備える
     請求項1に記載の監視装置。
  23.  監視装置と監視サーバーとで構成される監視システムであって、
     前記監視装置は、
     それぞれがソフトウェア及び通信ログの少なくとも1つを監視対象として監視する3以上の監視部と、
     監視部識別子と、監視対象識別子と、正常判定時刻と、異常判定時刻と、のうち少なくとも2つを監視結果として前記監視サーバーへ送信する監視サーバー通信部と、を備え、
     前記3以上の監視部は、第一の実行権限にて動作する第一の監視部と、前記第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、前記第二の実行権限と信頼性が同じ、または、前記第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含み、
     前記第一の監視部は、前記第二の監視部のソフトウェアを監視し、
     前記第一の監視部及び前記第二の監視部の少なくとも1つは、前記第三の監視部のソフトウェアを監視し、
     前記監視サーバーは、前記監視結果を受信し、グラフィカルユーザーインターフェース上に前記監視結果を表示する監視結果表示部を備える
     監視システム。
  24.  前記監視結果表示部は、システムアーキテクチャに関連付けて前記監視結果を表示し、異常を検知した監視部または異常が検知された監視対象を強調する手段と、所定のタイムラインに関連付けて監視結果を表示し、正常判定時刻または異常判定時刻を強調する手段とのうち少なくとも1つの手段でグラフィカルユーザーインターフェース上に監視結果を表示する
     請求項23に記載の監視システム。
  25.  前記監視サーバーは、さらに、前記監視対象と、前記監視対象を監視する監視部と、前記監視対象の優先度と、前記優先度に対応した監視方法とのうち少なくとも1つの監視情報の変更を受け付け、前記監視装置に前記変更を要求する監視情報変更部を備え、
     前記監視装置は、さらに、前記監視情報変更部の要求に応じて前記監視情報を更新する監視情報更新部を備える
     請求項24に記載の監視システム。
  26.  3以上の監視部を備える監視装置によって実行される監視方法であって、
     前記3以上の監視部は、第一の実行権限にて動作する第一の監視部と、前記第一の実行権限よりも信頼性が低い第二の実行権限にて動作する第二の監視部と、前記第二の実行権限と信頼性が同じ、または、前記第二の実行権限よりも信頼性が低い第三の実行権限にて動作する第三の監視部とを含み、
     前記第一の監視部は、前記第二の監視部のソフトウェアを監視し、
     前記第一の監視部及び前記第二の監視部の少なくとも1つは、前記第三の監視部のソフトウェアを監視する
     監視方法。
PCT/JP2022/021731 2021-05-31 2022-05-27 監視装置、監視システム及び監視方法 WO2022255247A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP22815997.6A EP4350548A4 (en) 2021-05-31 2022-05-27 MONITORING DEVICE, MONITORING SYSTEM AND MONITORING METHOD
JP2022567193A JP7189397B1 (ja) 2021-05-31 2022-05-27 監視装置、監視システム及び監視方法
CN202280036869.4A CN117355832A (zh) 2021-05-31 2022-05-27 监视装置、监视系统及监视方法
US18/519,690 US20240086290A1 (en) 2021-05-31 2023-11-27 Monitoring device, monitoring system, and monitoring method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPPCT/JP2021/020677 2021-05-31
PCT/JP2021/020677 WO2022254519A1 (ja) 2021-05-31 2021-05-31 監視装置、監視システムおよび監視方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/519,690 Continuation US20240086290A1 (en) 2021-05-31 2023-11-27 Monitoring device, monitoring system, and monitoring method

Publications (1)

Publication Number Publication Date
WO2022255247A1 true WO2022255247A1 (ja) 2022-12-08

Family

ID=84323955

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2021/020677 WO2022254519A1 (ja) 2021-05-31 2021-05-31 監視装置、監視システムおよび監視方法
PCT/JP2022/021731 WO2022255247A1 (ja) 2021-05-31 2022-05-27 監視装置、監視システム及び監視方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/020677 WO2022254519A1 (ja) 2021-05-31 2021-05-31 監視装置、監視システムおよび監視方法

Country Status (5)

Country Link
US (1) US20240086290A1 (ja)
EP (1) EP4350548A4 (ja)
JP (2) JP7189397B1 (ja)
CN (1) CN117355832A (ja)
WO (2) WO2022254519A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022254519A1 (ja) * 2021-05-31 2022-12-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 監視装置、監視システムおよび監視方法
CN118103820A (zh) * 2022-09-27 2024-05-28 松下汽车电子系统株式会社 信息处理装置、信息处理装置的控制方法以及程序
WO2024070141A1 (ja) * 2022-09-27 2024-04-04 パナソニックオートモーティブシステムズ株式会社 情報処理装置、情報処理装置の制御方法及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019057167A (ja) * 2017-09-21 2019-04-11 大日本印刷株式会社 コンピュータプログラム、デバイス及び判定方法
JP2019144785A (ja) 2018-02-20 2019-08-29 富士通株式会社 監視プログラム、監視装置及び監視方法
WO2020004315A1 (ja) * 2018-06-27 2020-01-02 日本電信電話株式会社 異常検知装置、および、異常検知方法
WO2020026693A1 (ja) * 2018-07-30 2020-02-06 株式会社デンソー センター装置、表示装置、車両状態の特定結果表示システム、車両状態の特定結果送信プログラム及び車両状態の特定結果表示プログラム
WO2021014539A1 (ja) * 2019-07-22 2021-01-28 日本電気株式会社 セキュリティ管理装置、セキュリティ管理方法、及び非一時的なコンピュータ可読媒体

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050132122A1 (en) * 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
WO2010092830A1 (ja) * 2009-02-16 2010-08-19 パナソニック株式会社 改竄監視システム、管理装置及び改竄管理方法
WO2022254519A1 (ja) * 2021-05-31 2022-12-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 監視装置、監視システムおよび監視方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019057167A (ja) * 2017-09-21 2019-04-11 大日本印刷株式会社 コンピュータプログラム、デバイス及び判定方法
JP2019144785A (ja) 2018-02-20 2019-08-29 富士通株式会社 監視プログラム、監視装置及び監視方法
WO2020004315A1 (ja) * 2018-06-27 2020-01-02 日本電信電話株式会社 異常検知装置、および、異常検知方法
WO2020026693A1 (ja) * 2018-07-30 2020-02-06 株式会社デンソー センター装置、表示装置、車両状態の特定結果表示システム、車両状態の特定結果送信プログラム及び車両状態の特定結果表示プログラム
WO2021014539A1 (ja) * 2019-07-22 2021-01-28 日本電気株式会社 セキュリティ管理装置、セキュリティ管理方法、及び非一時的なコンピュータ可読媒体

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
US20240086290A1 (en) 2024-03-14
JP7253663B2 (ja) 2023-04-06
JPWO2022255247A1 (ja) 2022-12-08
WO2022254519A1 (ja) 2022-12-08
EP4350548A1 (en) 2024-04-10
CN117355832A (zh) 2024-01-05
EP4350548A4 (en) 2024-08-28
JP2023002832A (ja) 2023-01-10
JP7189397B1 (ja) 2022-12-13

Similar Documents

Publication Publication Date Title
JP7194396B2 (ja) セキュアロックダウンを実装するように構成された関連装置を有する特別にプログラムされたコンピューティングシステムおよびその使用方法
JP7189397B1 (ja) 監視装置、監視システム及び監視方法
US20240311481A1 (en) Secure controller operation and malware prevention
US11509666B2 (en) Automated security policy generation for controllers
JP7520913B2 (ja) 車載ネットワークに接続された構成要素の悪用を検出するシステムおよび方法
CN112653655B (zh) 汽车安全通信控制方法、装置、计算机设备及存储介质
JP7584748B2 (ja) セキュアロックダウンを実装するように構成された関連装置を有する特別にプログラムされたコンピューティングシステムおよびその使用方法
US12139169B2 (en) System and method for detecting exploitation of a component connected to an in-vehicle network

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2022567193

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 22815997

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202280036869.4

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2022815997

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022815997

Country of ref document: EP

Effective date: 20240102