WO2026004111A1 - Monitoring device and program - Google Patents
Monitoring device and programInfo
- Publication number
- WO2026004111A1 WO2026004111A1 PCT/JP2024/023565 JP2024023565W WO2026004111A1 WO 2026004111 A1 WO2026004111 A1 WO 2026004111A1 JP 2024023565 W JP2024023565 W JP 2024023565W WO 2026004111 A1 WO2026004111 A1 WO 2026004111A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- list
- unit
- system call
- monitoring device
- matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
Definitions
- the present invention relates to a monitoring device and program that monitors system call invocations by applications.
- Container technology allows containers owned by multiple tenants to share the same OS and access common resources. For this reason, security that constantly monitors and detects suspicious behavior and anomalies and takes measures against threats is extremely important.
- seccomp secure computing mode
- Non-Patent Document 1 proposes filtering that takes into account the order in which system calls are invoked (sequence pattern, system call sequence), instead of filtering individual system calls.
- Non-Patent Document 1 describes a method for extracting system call sequences that could pose a threat. Detecting system call sequences extracted from application system call invocations enables more accurate threat detection than setting permission/denial for each individual system call. However, the processing cost of constantly monitoring all applications is high, which poses a major practical problem.
- the present invention has been made in view of the above background, and an object of the present invention is to enable efficient monitoring of multiple invocations of system calls.
- the monitoring device of the present invention comprises: an acquisition unit that, when a process invokes a system call that requests OS processing, acquires a system call list that combines the invoked system call and system calls previously invoked by the process as a comparison target list; a storage unit that stores an abnormality list that indicates an abnormal system call list containing one or more system calls; a comparison unit that, when the process is a comparison target process, compares the comparison target list invoked by the process with the system call list contained in the abnormality list to determine whether the comparison target list is abnormal; a determination unit that, when the process is not a comparison target process, determines whether the comparison target list invoked by the process is normal or abnormal using a predetermined determination model; and a reflection unit that, when the determination unit determines that the comparison target list is abnormal, designates the process that invoked the comparison target list as the comparison target process.
- This invention makes it possible to efficiently monitor multiple system call invocations.
- FIG. 2 is a functional block diagram of the monitoring device according to the embodiment.
- FIG. 2 is a data configuration diagram of a call history database according to the present embodiment.
- FIG. 4 is a data configuration diagram of an abnormality list according to the embodiment.
- FIG. 2 is a data configuration diagram of a monitoring information database according to the embodiment.
- FIG. 10 is a sequence diagram of a matching process according to the embodiment.
- FIG. 10 is a sequence diagram of a determination process according to the present embodiment. 10 is a flowchart of a process for changing a matching target according to the present embodiment.
- FIG. 2 is a hardware configuration diagram illustrating an example of a computer that realizes the functions of the monitoring device according to the above-described embodiment.
- the monitoring device monitors system calls invoked by applications including containers.
- the monitoring device compares a system call sequence, including past calls, with an anomaly list, which is a list of system call sequences that pose a threat. If the system call sequence is found in the anomaly list, the monitoring device executes a predetermined response process. Examples of the predetermined response process include recording the system call invocation in a monitoring log, returning an error without processing the call, or stopping the application that made the call.
- an application is also referred to as an application process or simply as a process.
- Not all processes are necessarily targets for matching the system call sequences they invoked against the anomaly list. For example, if the monitoring device determines that a process is normal, it will not include that process in the matching list if the load on the monitoring device is heavy. Machine learning technology, for example, is used to determine whether a process is normal. Such a monitoring device can reduce the load of checking a system call sequence against an anomaly list, enabling efficient invocation monitoring of system calls.
- ⁇ Configuration of monitoring device> 1 is a functional block diagram of a monitoring device 100 according to this embodiment.
- the monitoring device 100 is a computer and includes a control unit 110, a storage unit 120, and an input/output unit 180.
- User interface devices such as a display, keyboard, and mouse are connected to the input/output unit 180.
- the input/output unit 180 may include a communication device and be capable of transmitting and receiving data to and from other devices.
- the input/output unit 180 transmits and receives data to and from a terminal that uses a network service provided by an application (see application function unit 111, described below) running on the monitoring device 100.
- the storage unit 120 includes storage devices such as a read-only memory (ROM), a random access memory (RAM), and a solid-state drive (SSD).
- the storage unit 120 stores application data 131, an application program 132, a call history database 140, an anomaly list 150, a monitoring information database 160, a monitoring log 121, a judgment model 122, and a program 128.
- the various storage contents of the storage unit 120 may be stored in an external storage device such as a cloud server and read as needed.
- the program 128 describes the processes executed by an acquisition unit 112, a collation unit 113, a judgment unit 114, and a reflection unit 115 included in the control unit 110 (described later).
- the application data 131 is data accessed by an application (see the application function unit 111 described below) running on the monitoring device 100.
- the application program 132 is the program of the application. When multiple applications run on the monitoring device 100, there is application data 131 and an application program 132 for each application. Note that each application included in a container may be considered to be the application function unit 111.
- call history database> 2 is a data configuration diagram of the call history database 140 according to this embodiment.
- the call history database 140 records the call history of system calls for each application (process). Applications are identified by process identification information (referred to as "PID" in FIG. 2).
- process identification information referred to as "PID” in FIG. 2
- the application with process identification information "23” invokes the following system calls in this order: system call 53, system call 64, system call 2, system call 75, and system call 93.
- SC stands for system call.
- Abnormality list> 3 is a data configuration diagram of the anomaly list 150 according to this embodiment.
- the anomaly list 150 is a list of system call sequences that may pose a threat (abnormal) among the system call sequences invoked by applications, along with their identification information (identification numbers).
- a threat refers to an attack or a precursor to an attack, such as interfering with the execution of the OS or other applications of the monitoring device 100, or data theft.
- the monitoring device 100 When the monitoring device 100 detects the invocation of a system call that is on the anomaly list 150, it executes a predetermined response process.
- the predetermined response process may include recording the system call in a monitoring log, returning an error without processing the call, or stopping the calling application.
- the predetermined response process will be defined as returning an error without processing (executing) the call, and recording it in the monitoring log (see monitoring log 121 described below).
- system call 64 Assume that an application (process) invokes system calls in the order of system call 3, system call 23, system call 15, and system call 64, as shown in the first list in Figure 3.
- the monitoring device 100 returns an error in response to the invocation of this last system call, system call 64, and records this in the monitoring log 121.
- monitoring information database> 4 is a data configuration diagram of the monitoring information database 160 according to this embodiment.
- the monitoring information database 160 includes information on the monitoring level and the appropriateness of the matching target for each application (process) to be monitored. Note that not all applications running on the monitoring device 100 are necessarily monitored.
- the monitoring targets included in the monitoring information database 160 may be, for example, applications (processes) that provide network services, or other applications that provide services used by the applications.
- the monitoring level is either "constant check” or "as needed check.”
- constant check the sequence of system calls called by an application is constantly checked against the anomaly list 150.
- as needed check the sequence of system calls called by an application is checked against the anomaly list 150 when a specified condition is met.
- a specified condition is that the load on the monitoring device 100 is below a specified value.
- the matching target indicates whether the system call sequence currently invoked by the application is being matched against the anomaly list 150 ("YES"/"NO").
- the specified condition is not met (for example, the load on the monitoring device 100 exceeds a specified value), so the "constant matching” application is not a matching target ("NO"). If the specified condition is met, all matching targets will be "YES”, and the "constant matching” application will also be a matching target.
- monitoring log>> 1 the description of the storage unit 120 will be continued.
- the monitoring log 121 records logs related to call sequences in the anomaly list 150 among the system calls made in the monitoring device 100.
- the log includes identification information of the called application (e.g., process identification information), identification information of the call sequence, the time of the call, etc.
- the determination model 122 is a machine learning model used to determine whether an application is normal or abnormal, using a system call sequence of a predetermined length called by the application as an explanatory variable (input).
- the determination model 122 is a machine learning model constructed by unsupervised learning using, for example, a system call sequence of an application that has run normally in a safe, threat-free environment as learning data. By using such a determination model 122, a system call sequence that is considered to be different from the learned system call sequence can be determined to be abnormal.
- the control unit 110 includes a CPU (Central Processing Unit) and is equipped with an application function unit 111, an acquisition unit 112, a collation unit 113, a determination unit 114, and a reflection unit 115.
- the control unit 110 may also include a GPU (Graphics Processing Unit), an NPU (Neural (network) Processing Unit), an FPGA (Field Programmable Gate Array), an ASIC (Application Specific Integrated Circuit), etc.
- the application function unit 111 is a process on the OS (not shown) of the monitoring device 100 that executes application processing.
- the application function unit 111 may be in the form of a container.
- a series of system calls called by the application function unit 111 is monitored.
- a system call is an instruction (function call) by which an application calls a function of the OS (kernel).
- the number of application function units 111 is not limited to one; generally, multiple application function units 111 are running.
- the acquisition unit 112 acquires a system call invoked by the application function unit 111.
- the acquisition unit 112 operates by being invoked by, for example, the OS (kernel) of the monitoring apparatus 100, and hooks and acquires the system call invoked by the application function unit 111.
- application function unit 111 is the target of matching (see Figure 4) ("YES").
- acquisition unit 112 records which system call was invoked for each application function unit 111 (process) in call history database 140 (see Figure 2).
- acquisition unit 112 sends the system call sequence (call history, matching target list) in call history database 140 to matching unit 113, which will be described later.
- matching unit 113 sends back the result of matching the call history with anomaly list 150.
- a successful match means that the call history (the sequence of invoked system calls) is included in anomaly list 150, and is a call that could pose a threat.
- the acquisition unit 112 determines that the invoked system call is not permitted, returns an error as a return value of the system call to the application function unit 111, and records the error in the monitoring log 121. If the matching is unsuccessful, the acquisition unit 112 determines that the invoked system call is permitted, and returns the invocation result of the system call to the application function unit 111.
- the length of the system call history may be, for example, the maximum length of the system call sequence in the anomaly list 150 .
- the acquisition unit 112 sends the system call sequence invoked by the application function unit 111 to the determination unit 114 during the determination period.
- the determination period is a period of a predetermined length that begins at a predetermined timing. For example, the determination period is a one-minute period every 10 minutes. The processing of the determination unit 114 will be described later.
- the collation unit 113 compares the system call sequence (call history) sent by the acquisition unit 112 with each system call sequence in the anomaly list 150 to determine whether or not an anomaly exists.
- the collation unit 113 returns to the acquisition unit 112 the presence or absence of a matching system call sequence as a collation result (success/failure). Note that a system call sequence is sent to the collation unit 113 when the application function unit 111 that called the system call sequence is the target of collation (see the target of collation in the monitoring information database 160 shown in FIG. 4).
- the acquisition unit 112 sent system call 93, system call 3, system call 51, system call 63, and system call 43 (see the third call history in Figure 2).
- the last system call, 43 is the system call currently called by the application function unit 111.
- the subsequence, including the tail, of this system call sequence matches the third system call sequence in the anomaly list 150 (see Figure 3), and the comparison unit 113 determines that the comparison was successful. In this way, the comparison unit 113 compares whether the subsequence, including the tail, matches the system call sequence in the anomaly list 150.
- the determination unit 114 determines whether the system call sequence received from the acquisition unit 112 is normal or abnormal using the determination model 122. Note that the determination unit 114 determines whether the system call sequence is normal or abnormal when the application function unit 111 that called the system call sequence is not the target of matching (see FIG. 4 ).
- Reflection section> When the determination unit 114 determines that a system call sequence is abnormal, the reflection unit 115 sets the monitoring level (see FIG. 4) of the application function unit 111 that called the system call sequence to "constant verification" and the verification target to "YES.” In other words, if the system call sequence called by the application function unit 111 is abnormal, the verification unit 113 will verify subsequent system call sequences called by the application function unit 111.
- the reflection unit 115 sets "YES” to all matching targets in the monitoring information database 160 (see Figure 4). If the load on the monitoring device 100 exceeds a predetermined value, the reflection unit 115 sets "NO" to matching targets of the application function unit 111 whose monitoring level in the monitoring information database 160 is "constant matching.”
- Fig. 5 is a sequence diagram of the matching process according to this embodiment.
- the matching process is a process related to a system call invoked by the application function unit 111 that is the target of matching (see Fig. 4).
- the process of Fig. 5 is executed each time the application function unit 111 that is the target of matching invokes a system call.
- the process (determination process) related to a system call invoked by an application function unit 111 that is not the target of matching will be described later with reference to Fig. 6.
- the application function unit is referred to as an "AP function unit" and the system call is referred to as an "SC.”
- step S11 the application function unit 111 invokes a system call.
- step S12 the invocation of the system call in step S11 is notified to the acquisition unit 112 (the acquisition unit 112 is invoked) by, for example, a function of the OS (kernel) of the monitoring apparatus 100.
- the notification includes identification information (process identification information) of the application function unit 111 that invoked the system call.
- step S13 the acquisition unit 112 records the invoked system call in the call history corresponding to the process identification information in the call history database 140.
- step S14 the acquisition unit 112 sends the system call sequence in the call history corresponding to the process identification information to the collation unit 113.
- step S ⁇ b>15 the collation unit 113 collates the received system call sequence with the system call sequences in the anomaly list 150 .
- step S ⁇ b>16 the matching unit 113 sends the matching result to the acquisition unit 112 .
- step S17 if the collation result is successful (step S17 ⁇ success), the acquisition unit 112 proceeds to step S18, and if the collation result is unsuccessful (step S17 ⁇ failure), the acquisition unit 112 proceeds to step S20.
- step S18 the acquisition unit 112 records the current time, process identification information, system call history, and the like in the monitoring log 121.
- step S19 the acquisition unit 112 returns an error as a result of the system call to the application function unit 111 by using, for example, a function of the OS (kernel) of the monitoring apparatus 100.
- OS kernel
- step S20 the acquisition unit 112 invokes a system call.
- step S21 the acquisition unit 112 returns the result of the system call made in step S20 to the application function unit 111 using, for example, a function of the OS (kernel) of the monitoring apparatus 100.
- OS kernel
- Fig. 6 is a sequence diagram of the determination process according to this embodiment.
- the determination process is a process related to a system call sequence called by an application function unit 111 that is not a target of matching (see Fig. 4) during the determination period.
- the process in Fig. 6 is executed every time an application function unit 111 that is not a target of matching calls a system call during the determination period.
- the monitoring level of the application function unit 111 that is not a target of matching is "constant matching.”
- Steps S31 to S33 are the same processes as steps S11 to S13 (see FIG. 5).
- the acquisition unit 112 sends the system call sequence in the call history corresponding to the process identification information to the determination unit 114.
- the determination unit 114 determines whether the system call sequence is normal or abnormal.
- step S36 if the determination result in step S35 is normal (step S36 ⁇ normal), the determination unit 114 proceeds to step S38. If the determination result in step S35 is abnormal (step S36 ⁇ abnormal), the determination unit 114 proceeds to step S37.
- step S37 the reflection unit 115 sets the monitoring level (see FIG. 4) of the application function unit 111 to "constant collation" and the collation target to "YES.” Steps S38 and S39 are the same processes as steps S20 and S21 (see FIG. 5).
- ⁇ Comparison target change process>> 7 is a flowchart of the process of changing the matching target according to this embodiment.
- the process of changing the matching target is executed at a predetermined timing, for example, periodically.
- step S41 if the load on the monitoring device 100 is equal to or less than a predetermined value (step S41 ⁇ YES), the reflection unit 115 proceeds to step S42. If the load on the monitoring device 100 exceeds the predetermined value (step S41 ⁇ NO), the reflection unit 115 proceeds to step S43.
- step S42 the reflection unit 115 sets all of the matching targets in the monitoring information database 160 (see FIG. 4) to "YES.”
- step S43 the reflection unit 115 sets "NO" as the collation target for the application function unit 111 whose monitoring level in the monitoring information database 160 is "constant collation.”
- the system call sequence called by the application function unit 111 whose monitoring level is “constant target” becomes the collation target to be collated with the anomaly list 150.
- the system call sequence called by the application function unit 111 whose monitoring level is "constant target” is judged by the judgment unit 114 as normal or abnormal.
- the monitoring device 100 monitors the invocation of a system call for each application function unit 111.
- the monitoring device 100 detects a call sequence in the abnormality list 150 (see step S17 ⁇ success in FIG. 4)
- the monitoring device 100 disallows the invocation of the system call by failing the invocation (see step S19).
- the monitoring device 100 compares the system call sequences invoked for all application function units 111 in the monitoring information database 160 (see Figure 4) against the anomaly list 150.
- the monitoring device 100 compares the system call sequences invoked for application function units 111 with a monitoring level of "constant comparison" against the anomaly list 150. In this way, by expanding or reducing the scope of comparison depending on the load on the monitoring device 100, efficient monitoring of system call invocations becomes possible.
- the monitoring device 100 determines that the system call sequence called by the application function unit 111 is abnormal, it causes the comparison unit 113 to compare the system call sequence called by the application function unit 111 (step S36 ⁇ abnormal, see step S37). In other words, when the monitoring device 100 determines that the operation is different from normal operation, it compares it with the anomaly list 150, thereby monitoring the application function unit 111 with a more accurate method.
- the collation unit 113 collates a system call sequence, including the calling order of the system calls, with the anomaly list 150.
- the collation unit 113 may also perform collation as a system call group (list to be collated), which is a collection (set) of system calls ignoring the calling order.
- the anomaly list 150 is also a list of abnormal system calls ignoring the calling order.
- the system call sequence and the system call group are collectively referred to as the system call list.
- the determination unit 114 is a machine learning model used to determine whether an application is normal or abnormal, using the set of system calls called by the application as explanatory variables.
- the determination unit 114 may use such a determination unit 114 to determine normality/abnormality.
- the reflection unit 115 may set the monitoring level to low-frequency matching, high-frequency matching, or constant matching depending on whether the judgment result of the judgment unit 114 is normal, unknown, or abnormal.
- the reflection unit 115 may divide the load level of the monitoring device 100 into three stages, for example, high load, medium load, and low load, and determine the object of matching according to this stage. If the load is high, the reflection unit 115 may select the application function unit 111, which is a constant matching unit, as the object of matching; if the load is medium, the reflection unit 115 may select constant matching and high-frequency matching; and if the load is low, the reflection unit 115 may select all the objects of matching.
- the determination unit 114 may also change the frequency of determination depending on the monitoring level.
- the determination period is a period of a predetermined length that begins at a predetermined timing. The determination period may be shorter or the interval between determination periods may be longer for the application function unit 111 that performs low-frequency matching compared to high-frequency matching.
- the determination result levels and monitoring levels of the determination model 122 described so far are three-stage, but may be further divided into finer levels. The lower the monitoring level, the shorter the matching period and determination period.
- the monitoring level (see FIG. 4) may change from on-demand matching to constant matching depending on the determination result of the determination unit 114, but there is no case in which constant matching changes to on-demand matching. If the determination result by the comparison unit 113 of the system call sequence called by the application function unit 111 that is set to constant matching continues for a predetermined period of time, the monitoring level may be changed to on-demand matching. In this way, the application function unit 111 that was set to constant matching due to an erroneous determination by the determination unit 114 will be changed to on-demand matching, thereby reducing the load on the matching process.
- the monitoring level changes from occasional matching to constant matching depending on the determination result of the determination unit 114.
- the application function unit 111 changes to constant matching
- other application function units 111 that provide the same network service may also change to constant matching.
- other application function units 111 that provide the same network service and operate on other monitoring devices 100 may also change to constant matching. In this way, if one application function unit 111 is the victim of a cyber-attack, the monitoring level of the other application function units 111 that provide the same network service can be increased, allowing the threat to be dealt with quickly.
- a system call sequence called by the application function unit 111 whose monitoring level is "constant check” is checked against the anomaly list 150 when the load on the monitoring device 100 is low.
- the system call sequence may not be checked even when the load on the monitoring device 100 is low.
- the determination unit 114 may determine that the system call sequence is abnormal, so that the monitoring level becomes "constant check” and the system call sequence is checked against the anomaly list 150.
- the application function unit 111 is not initially a target for checking, but once it is determined to be abnormal, it becomes a target for checking.
- the reflection unit 115 changes the matching target (see FIG. 4) depending on the load on the monitoring device 100.
- the matching target may also be changed depending on the state/condition of another monitoring device 100. For example, when the application function unit 111 provides a network service, the reflection unit 115 may set all matching targets in the monitoring information database 160 (see FIG. 4) to "YES" if the arrival rate of service requests falls below a predetermined value (see step S42).
- the determination unit 114 determines whether the function is normal or abnormal using one determination model 122.
- the determination unit 114 may also determine whether the function is normal or abnormal using a determination model 122 corresponding to the application function unit 111.
- the determination unit 114 determines whether a system call sequence is normal or abnormal using the determination model 122, which is a machine learning model, but other techniques may also be used. For example, a system call sequence may be deemed abnormal if it contains a system call other than a system call that is deemed safe. Alternatively, a system call sequence may be deemed abnormal if it is successfully matched with a system call sequence that is shorter than the system call sequence in the anomaly list 150. Alternatively, the determination unit 114 may use a method that has lower processing costs than the matching process of the matching unit 113 and a lower probability of overlooking an abnormal system call sequence.
- the collation unit 113 and the determination unit 114 operate on the computer on which the application function unit 111 operates.
- the computer on which the application function unit 111 and the acquisition unit 112 operate may be different from the computer on which the collation unit 113 and the determination unit 114 operate (monitoring device).
- the monitoring device on which the collation unit 113 operates may use the determination model 122 to determine whether a system call sequence sent by multiple monitored devices is normal or abnormal. The same applies to the collation unit 113. In this way, it becomes possible for a single monitoring device to monitor application function units 111 operating on multiple monitored devices, which is expected to reduce monitoring costs.
- FIG. 8 is a hardware configuration diagram showing an example of the computer 900 that realizes the functions of the monitoring device 100 according to the above-described embodiment.
- the computer 900 includes a CPU 901, a ROM 902, a RAM 903, an SSD 904, an input/output interface 905 (referred to as an input/output I/F (Interface) in FIG. 8 ), a communication interface 906 (referred to as a communication I/F in FIG. 8 ), and a media interface 907 (referred to as a media I/F in FIG. 8 ).
- the computer 900 may include a hard disk drive (HDD) instead of the SSD 904, or may include a HDD in addition to the SSD 904.
- HDD hard disk drive
- the CPU 901 operates based on a program stored in the ROM 902 or the SSD 904, and performs control by the control unit 110 in Fig. 1.
- the ROM 902 stores a boot program executed by the CPU 901 when the computer 900 is started up, programs related to the hardware of the computer 900, and the like.
- the CPU 901 controls an input device 910 such as a mouse or keyboard, and an output device 911 such as a display or printer, via an input/output interface 905.
- the CPU 901 acquires data from the input device 910 via the input/output interface 905, and outputs generated data to the output device 911.
- the SSD 904 stores programs executed by the CPU 901 and data used by the programs.
- the communication interface 906 receives data from other devices (not shown) (for example, a terminal that uses a network service provided by the application function unit 111) via a communication network and outputs the data to the CPU 901, and also transmits data generated by the CPU 901 to other devices via the communication network.
- the media interface 907 reads a program or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903.
- the CPU 901 loads the program from the recording medium 912 onto the RAM 903 via the media interface 907 and executes the loaded program.
- the recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disk), a magneto-optical recording medium such as an MO (Magneto Optical Disk), a magnetic recording medium, a conductive memory tape medium, a semiconductor memory, or the like.
- the CPU 901 of the computer 900 executes the program 128 (see FIG. 1) loaded onto the RAM 903, thereby realizing the functions of the monitoring device 100.
- the CPU 901 reads the program from the recording medium 912 and executes it.
- the CPU 901 may read the program from another device via a communications network, or may install the program 128 from the recording medium 912 onto the SSD 904 and execute it.
- the monitoring device 100 includes an acquisition unit 112 that, when a process (see application function unit 111) invokes a system call that requests OS processing, acquires, as a comparison list, a system call list that combines the invoked system call and system calls previously invoked by the process.
- the monitoring device 100 includes a storage unit 120 that stores an abnormality list 150 that indicates a list of abnormal system calls that include one or more system calls.
- the monitoring device 100 includes a comparison unit 113 that, when a process is a comparison target process (see the comparison targets in the monitoring information database 160 shown in Figure 4), compares the comparison target list called by the process with the system call list included in the abnormality list 150 to determine whether the comparison target list is abnormal.
- the monitoring device 100 includes a determination unit 114 that, when a process is not a process to be compared, determines whether a list to be compared called by the process is normal or abnormal using a predetermined determination model 122 .
- the monitoring apparatus 100 includes a reflection unit 115 that, when the determination unit 114 determines that the comparison target list is abnormal, sets the process that called the comparison target list as the comparison target process.
- the list of system calls called by the process being compared is compared with the anomaly list 150. This reduces the processing cost of the comparison process compared to when the lists of system calls called by all processes are compared with the anomaly list 150.
- the reflection unit 115 will make that process the target for comparison.
- the system call list called by a process that was normal when first started but later became suspect of being abnormal will be compared with the abnormality list 150. While there is no possibility of an abnormality, the comparison process will not be performed, thereby reducing the processing cost of the comparison process.
- the processes in the above-described embodiment include processes that are always subject to matching and processes that are subject to matching whenever certain conditions are met (see the monitoring level of the monitoring information database 160 in Figure 4). If the load on the monitoring device 100 is equal to or less than a predetermined value, the reflection unit 115 determines that the predetermined condition is met and sets the process to be checked at any time as well as the process to be checked at all times as a process to be checked (see step S41 ⁇ YES and step S42 in FIG. 7). If the load on the monitoring apparatus 100 exceeds a predetermined value, the reflection unit 115 always sets the process to be checked as the process to be checked (see step S41 ⁇ NO and step S43 in FIG. 7).
- this type of monitoring device 100 it is possible to increase or decrease the number of processes to be compared depending on the load situation.
- the load When the load is low, it is possible to compare the system call lists called by many processes, thereby increasing the level of countermeasures against security threats.
- the load When the load is high, it is always limited to comparing the system call lists called by the processes to be compared against the anomaly list 150, thereby reducing the processing costs of the comparison process.
- the acquisition unit 112 creates the matching list (system call sequence) including the order in which the process invoked the system calls.
- the explanatory variables that are input to the determination model 122 are a list of matching targets that includes an order.
- this monitoring device 100 it is expected that the accuracy of the judgment unit 114's normal/abnormal judgment will be improved compared to when it is based on a group of system calls that does not take into account the order in which the system calls are called. Furthermore, by comparing the list of system calls called by processes that are likely to be abnormal with the abnormality list 150, the processing costs of the comparison unit 113 can be reduced.
- the predetermined judgment model 122 is a machine learning model whose explanatory variables are match target lists, and which is generated using match target lists called by processes in a normal operating state as learning data.
- this monitoring device 100 it becomes possible to determine whether a matching list is normal or abnormal by comparing it with processes that are operating normally. There is no need to create a list of abnormal system calls, and the determination model 122 can be generated without much effort.
- Monitoring device 111
- Application function unit 112 Acquisition unit 113
- Collation unit 114
- Determination unit 115
- Reflection unit 121
- Monitoring log 122
- Determination model 131
- Application data 132
- Application program 128 Program 140 Call history database
- Abnormality list 160
- Monitoring information database 160
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、アプリケーションのシステムコールの呼出しを監視する監視装置およびプログラムに関する。 The present invention relates to a monitoring device and program that monitors system call invocations by applications.
近年、仮想化技術を用いて汎用サーバ上にネットワークシステムを構築する仮想ネットワーク基盤に注目が集まっている。通信事業者は、仮想ネットワーク基盤を導入することで専用ハードウェアの調達が不要になり、ソフトウェア制御によってリソースを柔軟に配置・移動・削除できるようになる。このため、コストの大幅な削減が可能となる。 In recent years, attention has been focused on virtual network infrastructure, which uses virtualization technology to build network systems on general-purpose servers. By introducing virtual network infrastructure, telecommunications carriers no longer need to procure dedicated hardware, and can flexibly allocate, move, and delete resources through software control. This allows for significant cost reductions.
仮想ネットワーク基盤においては、特にコストや運用の柔軟性の点からコンテナ技術の活用が広まっている。コンテナ技術を用いると、多数のテナントが所有するコンテナがOSを共有して共通リソースにアクセスする。このため、不審なふるまいや異常を常時監視して検知し、脅威への対策を行うセキュリティが非常に重要となる。 In virtual network infrastructure, the use of container technology is becoming more widespread, particularly due to its cost and operational flexibility. Container technology allows containers owned by multiple tenants to share the same OS and access common resources. For this reason, security that constantly monitors and detects suspicious behavior and anomalies and takes measures against threats is extremely important.
コンテナを含めアプリケーションは、メモリや他の共有リソースを使用するためにシステムコールを使ってカーネルにアクセスする。しかしながら、使用するシステムコールが全て許可されると、システム全体のセキュリティが危険にさらされる。このため、現在は使用可能な(呼出し可能な)システムコールを制限する手法が用いられている。この制限する機能の一例としてseccomp(secure computing mode)がある。このseccompの機能は、アプリケーションから呼び出される個別のシステムコールごとに許可/不許可を設定するものである。 Applications, including containers, access the kernel using system calls to use memory and other shared resources. However, if all system calls used were permitted, the security of the entire system would be at risk. For this reason, methods are currently used to restrict the system calls that can be used (called). One example of such a restriction function is seccomp (secure computing mode). This seccomp function allows you to set whether or not to permit each individual system call called by an application.
個別のシステムコールごとに許可/不許可を設定するフィルタリング技術には、2つの問題がある。1つは、セキュリティの強度とシステムの可用性にトレードオフが存在することである。多くのシステムコールを不許可にして制限を厳しくすると、安全性は向上するが可用性が落ちる。逆に制限を緩めると、可用性は向上するが安全性は落ちる。2つ目の問題は、許可されたシステムコールであっても、組み合わせ次第では十分に攻撃が可能なことである。 There are two problems with filtering technology that allows or disallows individual system calls. The first is that there is a trade-off between security strength and system availability. If many system calls are disallowed and restrictions are tightened, security improves but availability decreases. Conversely, if restrictions are relaxed, availability improves but security decreases. The second problem is that even permitted system calls can still be attacked if combined appropriately.
このような問題に対応するために非特許文献1では、個別のシステムコールのフィルタリングに替わり、システムコールの呼出し順序(シーケンスパターン、システムコール列)を考慮したフィルタリングが提案されている。 To address this issue, Non-Patent Document 1 proposes filtering that takes into account the order in which system calls are invoked (sequence pattern, system call sequence), instead of filtering individual system calls.
非特許文献1には、脅威となりうるシステムコール列を抽出する手法が説明されている。アプリケーションのシステムコール呼出しのなかから抽出したシステムコール列を検出することで、個別のシステムコールごとに許可/不許可を設定する場合より高精度に脅威を検出できるようになる。しかしながら、全てのアプリケーションを常時監視する処理コストは大きく、実用上大きな問題となる。
本発明は、このような背景に鑑みてなされたものであり、システムコールの複数の呼出しを効率的に監視することを可能にすることを課題とする。
Non-Patent Document 1 describes a method for extracting system call sequences that could pose a threat. Detecting system call sequences extracted from application system call invocations enables more accurate threat detection than setting permission/denial for each individual system call. However, the processing cost of constantly monitoring all applications is high, which poses a major practical problem.
The present invention has been made in view of the above background, and an object of the present invention is to enable efficient monitoring of multiple invocations of system calls.
前記した課題を解決するため、本発明に係る監視装置は、プロセスがOSの処理を要求するシステムコールを呼び出すと、当該システムコールである呼出しシステムコール、および、当該プロセスが過去に呼び出したシステムコールを合わせたシステムコールリストを照合対象リストとして取得する取得部と、1つ以上のシステムコールを含む、異常な前記システムコールリストを示す異常リストを記憶する記憶部と、前記プロセスが照合対象プロセスである場合に、当該プロセスが呼び出した前記照合対象リストと、前記異常リストに含まれるシステムコールリストとを照合して、当該照合対象リストが異常であることの当否を判定する照合部と、前記プロセスが前記照合対象プロセスでない場合に、所定の判定モデルを用いて前記プロセスが呼び出した照合対象リストの正常/不正常を判定する判定部と、前記判定部が前記照合対象リストを不正常と判定すると、当該照合対象リストを呼び出したプロセスを前記照合対象プロセスとする反映部と、を備える。 In order to solve the above-mentioned problems, the monitoring device of the present invention comprises: an acquisition unit that, when a process invokes a system call that requests OS processing, acquires a system call list that combines the invoked system call and system calls previously invoked by the process as a comparison target list; a storage unit that stores an abnormality list that indicates an abnormal system call list containing one or more system calls; a comparison unit that, when the process is a comparison target process, compares the comparison target list invoked by the process with the system call list contained in the abnormality list to determine whether the comparison target list is abnormal; a determination unit that, when the process is not a comparison target process, determines whether the comparison target list invoked by the process is normal or abnormal using a predetermined determination model; and a reflection unit that, when the determination unit determines that the comparison target list is abnormal, designates the process that invoked the comparison target list as the comparison target process.
本発明によれば、システムコールの複数の呼出しを効率的に監視することを可能にする。 This invention makes it possible to efficiently monitor multiple system call invocations.
≪監視装置の概要≫
以下に本発明を実施するための形態(実施形態)における監視装置の概要について説明する。監視装置は、コンテナを含むアプリケーションが呼び出すシステムコールを監視する。監視装置は、過去の呼出しを含むシステムコール列を、脅威となるシステムコールの呼出し列のリストである異常リストと照合する。システムコール列が異常リストにあれば、監視装置は、所定の対応処理を実行する。所定の対応処理は、例えばシステムコールの呼出しを監視ログに記録する、呼出しを処理せずエラーを返す、呼び出したアプリケーションを停止するなどである。なお以下では、アプリケーションを、アプリケーションプロセス、または単にプロセスとも記す。
<Overview of the monitoring device>
An overview of a monitoring device in a mode (embodiment) for carrying out the present invention will be described below. The monitoring device monitors system calls invoked by applications including containers. The monitoring device compares a system call sequence, including past calls, with an anomaly list, which is a list of system call sequences that pose a threat. If the system call sequence is found in the anomaly list, the monitoring device executes a predetermined response process. Examples of the predetermined response process include recording the system call invocation in a monitoring log, returning an error without processing the call, or stopping the application that made the call. Note that hereinafter, an application is also referred to as an application process or simply as a process.
全てのプロセスが、呼び出したシステムコール列が異常リストと照合される照合対象となるとは限らない。監視装置は、正常であると判定したプロセスについて、例えば監視装置の負荷が大きい場合には、当該プロセスを照合対象としない。プロセスの正常の当否の判定には、例えば機械学習技術を用いる。
このような監視装置によれば、システムコール列を異常リストと照合する負荷を削減することができ、システムコールの効率的な呼出し監視ができるようになる。
Not all processes are necessarily targets for matching the system call sequences they invoked against the anomaly list. For example, if the monitoring device determines that a process is normal, it will not include that process in the matching list if the load on the monitoring device is heavy. Machine learning technology, for example, is used to determine whether a process is normal.
Such a monitoring device can reduce the load of checking a system call sequence against an anomaly list, enabling efficient invocation monitoring of system calls.
≪監視装置の構成≫
図1は、本実施形態に係る監視装置100の機能ブロック図である。監視装置100はコンピュータであり、制御部110、記憶部120、および入出力部180を備える。入出力部180には、ディスプレイやキーボード、マウスなどのユーザインターフェイス機器が接続される。入出力部180が通信デバイスを備え、他の装置とのデータ送受信が可能であってもよい。例えば入出力部180は、監視装置100で稼働するアプリケーション(後記するアプリケーション機能部111参照)が提供するネットワークサービスを利用する端末とのデータを送受信する。
<Configuration of monitoring device>
1 is a functional block diagram of a monitoring device 100 according to this embodiment. The monitoring device 100 is a computer and includes a control unit 110, a storage unit 120, and an input/output unit 180. User interface devices such as a display, keyboard, and mouse are connected to the input/output unit 180. The input/output unit 180 may include a communication device and be capable of transmitting and receiving data to and from other devices. For example, the input/output unit 180 transmits and receives data to and from a terminal that uses a network service provided by an application (see application function unit 111, described below) running on the monitoring device 100.
≪監視装置:記憶部≫
記憶部120は、ROM(Read Only Memory)やRAM(Random Access Memory)、SSD(Solid State Drive)などの記憶機器を含んで構成される。記憶部120には、アプリケーションデータ131、アプリケーションプログラム132、呼出し履歴データベース140、異常リスト150、監視情報データベース160、監視ログ121、判定モデル122、およびプログラム128が記憶される。なお、記憶部120の各種記憶内容は、クラウドサーバなどの外部の記憶装置に記憶されているものを必要に応じて読み込まれるようにしたものであってもよい。プログラム128は、後記する制御部110に備わる取得部112、照合部113、判定部114、および反映部115が実行する処理の記述である。
≪Monitoring device: storage unit≫
The storage unit 120 includes storage devices such as a read-only memory (ROM), a random access memory (RAM), and a solid-state drive (SSD). The storage unit 120 stores application data 131, an application program 132, a call history database 140, an anomaly list 150, a monitoring information database 160, a monitoring log 121, a judgment model 122, and a program 128. The various storage contents of the storage unit 120 may be stored in an external storage device such as a cloud server and read as needed. The program 128 describes the processes executed by an acquisition unit 112, a collation unit 113, a judgment unit 114, and a reflection unit 115 included in the control unit 110 (described later).
≪記憶部:アプリケーションデータ・アプリケーションプログラム≫
アプリケーションデータ131は、監視装置100で稼働するアプリケーション(後記するアプリケーション機能部111参照)がアクセスするデータである。アプリケーションプログラム132は、当該アプリケーションのプログラムである。監視装置100でアプリケーションが複数稼働する場合には、それぞれのアプリケーションに対してアプリケーションデータ131およびアプリケーションプログラム132が存在する。なおコンテナに含まれる個々のアプリケーションをアプリケーション機能部111と見なしてもよい。
<Storage unit: application data and application programs>
The application data 131 is data accessed by an application (see the application function unit 111 described below) running on the monitoring device 100. The application program 132 is the program of the application. When multiple applications run on the monitoring device 100, there is application data 131 and an application program 132 for each application. Note that each application included in a container may be considered to be the application function unit 111.
≪記憶部:呼出し履歴データベース≫
図2は、本実施形態に係る呼出し履歴データベース140のデータ構成図である。呼出し履歴データベース140には、アプリケーション(プロセス)ごとのシステムコールの呼出し履歴が記録される。アプリケーションは、プロセス識別情報(図2では「PID」と記載)で識別される。図2の例では、プロセス識別情報が「23」のアプリケーションは、システムコール53、システムコール64、システムコール2、システムコール75、システムコール93の順にシステムコールを呼び出している。なお図2以下の図において「SC」とはシステムコールのことである。
<Storage unit: call history database>
2 is a data configuration diagram of the call history database 140 according to this embodiment. The call history database 140 records the call history of system calls for each application (process). Applications are identified by process identification information (referred to as "PID" in FIG. 2). In the example of FIG. 2, the application with process identification information "23" invokes the following system calls in this order: system call 53, system call 64, system call 2, system call 75, and system call 93. In FIG. 2 and subsequent figures, "SC" stands for system call.
≪記憶部:異常リスト≫
図3は、本実施形態に係る異常リスト150のデータ構成図である。異常リスト150は、アプリケーションが呼び出すシステムコール列のなかで、脅威となりうる(異常な)システムコールの呼出し列およびその識別情報(識別番号)のリストである。脅威とは、監視装置100のOSおよび他のアプリケーションの実行妨害や、データ窃盗などの攻撃ないしは攻撃の前段階のことである。
<Memory section: Abnormality list>
3 is a data configuration diagram of the anomaly list 150 according to this embodiment. The anomaly list 150 is a list of system call sequences that may pose a threat (abnormal) among the system call sequences invoked by applications, along with their identification information (identification numbers). A threat refers to an attack or a precursor to an attack, such as interfering with the execution of the OS or other applications of the monitoring device 100, or data theft.
異常リスト150にあるシステムコールの呼出しを検出すると監視装置100は、所定の対応処理を実行する。所定の対応処理には、システムコールの呼出しを監視ログに記録する、呼出しを処理せずエラーを返す、呼び出したアプリケーションを停止するなどがある。以下では所定の対応処理は、呼出しを処理(実行)せずにエラーを返し、監視ログ(後記する監視ログ121参照)に記録することとする。 When the monitoring device 100 detects the invocation of a system call that is on the anomaly list 150, it executes a predetermined response process. The predetermined response process may include recording the system call in a monitoring log, returning an error without processing the call, or stopping the calling application. In the following, the predetermined response process will be defined as returning an error without processing (executing) the call, and recording it in the monitoring log (see monitoring log 121 described below).
アプリケーション(プロセス)が、図3において最初のリストにあるように、システムコール3、システムコール23、システムコール15、システムコール64の順にシステムコールを呼び出したとする。すると監視装置100は、この最後のシステムコール64の呼出しに対してエラーを返し、監視ログ121に記録する。 Assume that an application (process) invokes system calls in the order of system call 3, system call 23, system call 15, and system call 64, as shown in the first list in Figure 3. In this case, the monitoring device 100 returns an error in response to the invocation of this last system call, system call 64, and records this in the monitoring log 121.
≪記憶部:監視情報データベース≫
図4は、本実施形態に係る監視情報データベース160のデータ構成図である。監視情報データベース160は、監視対象となるアプリケーション(プロセス)それぞれについて監視レベル、および照合対象の当否の情報を含む。なお監視装置100上で動作する全てのアプリケーションが監視対象になるとは限らない。監視情報データベース160に含まれる監視対象は、例えばネットワークサービスを提供するアプリケーション(プロセス)や、当該アプリケーションが利用するサービスを提供する他のアプリケーションであってもよい。
<Memory section: monitoring information database>
4 is a data configuration diagram of the monitoring information database 160 according to this embodiment. The monitoring information database 160 includes information on the monitoring level and the appropriateness of the matching target for each application (process) to be monitored. Note that not all applications running on the monitoring device 100 are necessarily monitored. The monitoring targets included in the monitoring information database 160 may be, for example, applications (processes) that provide network services, or other applications that provide services used by the applications.
監視レベルは、「常時照合」または「随時照合」である。常時照合の場合には、アプリケーションが呼び出したシステムコール列が、異常リスト150と常時照合される。随時照合の場合には、所定の条件を満たすときに、アプリケーションが呼び出したシステムコール列が、異常リスト150と照合される。所定の条件とは、例えば監視装置100の負荷が所定値以下であることである。 The monitoring level is either "constant check" or "as needed check." In the case of constant check, the sequence of system calls called by an application is constantly checked against the anomaly list 150. In the case of as needed check, the sequence of system calls called by an application is checked against the anomaly list 150 when a specified condition is met. An example of a specified condition is that the load on the monitoring device 100 is below a specified value.
照合対象は、現時点でアプリケーションが呼び出したシステムコール列が、異常リスト150と照合されるか否か(「YES」/「NO」)を示す。図4においては、所定の条件は満たされておらず(例えば監視装置100の負荷が所定値超である)「随時照合」のアプリケーションは、照合対象となっていない(「NO」)。所定の条件を満たしている場合には、照合対象は全て「YES」となり、随時照合のアプリケーションを含めて照合対象となる。 The matching target indicates whether the system call sequence currently invoked by the application is being matched against the anomaly list 150 ("YES"/"NO"). In Figure 4, the specified condition is not met (for example, the load on the monitoring device 100 exceeds a specified value), so the "constant matching" application is not a matching target ("NO"). If the specified condition is met, all matching targets will be "YES", and the "constant matching" application will also be a matching target.
≪記憶部:監視ログ≫
図1に戻って、記憶部120の説明を続ける。監視ログ121は、監視装置100におけるシステムコールの呼出しのなかで、異常リスト150にある呼出し列に係るログが記録される。ログには、呼び出したアプリケーションの識別情報(例えばプロセス識別情報)や呼出し列の識別情報、呼出しの時刻などを含む。
<<Storage section: monitoring log>>
1, the description of the storage unit 120 will be continued. The monitoring log 121 records logs related to call sequences in the anomaly list 150 among the system calls made in the monitoring device 100. The log includes identification information of the called application (e.g., process identification information), identification information of the call sequence, the time of the call, etc.
≪記憶部:判定モデル≫
判定モデル122は、アプリケーションが呼び出す、所定長のシステムコール列を説明変数(入力)として、当該アプリケーションが正常か不正常かを判定する際に用いられる機械学習モデルである。判定モデル122は、例えば、脅威がない安全な環境で正常に動作したアプリケーションのシステムコール列を学習データとする教師なし学習によって構築された機械学習モデルである。このような判定モデル122を用いることで、学習したシステムコール列とは異なると見なせるシステムコール列は不正常と判定することができる。
<Memory section: decision model>
The determination model 122 is a machine learning model used to determine whether an application is normal or abnormal, using a system call sequence of a predetermined length called by the application as an explanatory variable (input). The determination model 122 is a machine learning model constructed by unsupervised learning using, for example, a system call sequence of an application that has run normally in a safe, threat-free environment as learning data. By using such a determination model 122, a system call sequence that is considered to be different from the learned system call sequence can be determined to be abnormal.
≪監視装置:制御部≫
制御部110は、CPU(Central Processing Unit)を含んで構成され、アプリケーション機能部111、取得部112、照合部113、判定部114、および反映部115が備わる。制御部110は、GPU(Graphics Processing Unit)、NPU(Neural (network) Processing Unit)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)などを含んで構成されてもよい。
<Monitoring device: control unit>
The control unit 110 includes a CPU (Central Processing Unit) and is equipped with an application function unit 111, an acquisition unit 112, a collation unit 113, a determination unit 114, and a reflection unit 115. The control unit 110 may also include a GPU (Graphics Processing Unit), an NPU (Neural (network) Processing Unit), an FPGA (Field Programmable Gate Array), an ASIC (Application Specific Integrated Circuit), etc.
≪制御部:アプリケーション機能部≫
アプリケーション機能部111は、アプリケーション処理を実行する監視装置100のOS(不図示)上のプロセスである。アプリケーション機能部111は、コンテナの形態であってもよい。アプリケーション機能部111が呼び出すシステムコールの列が、監視対象となる。なおシステムコールとは、アプリケーションがOS(カーネル)の機能を呼び出すための命令(関数呼出し)である。なおアプリケーション機能部111は1つとは限らず、一般には複数のアプリケーション機能部111が稼働する。
<Control unit: Application function unit>
The application function unit 111 is a process on the OS (not shown) of the monitoring device 100 that executes application processing. The application function unit 111 may be in the form of a container. A series of system calls called by the application function unit 111 is monitored. A system call is an instruction (function call) by which an application calls a function of the OS (kernel). The number of application function units 111 is not limited to one; generally, multiple application function units 111 are running.
≪制御部:取得部≫
取得部112は、アプリケーション機能部111が呼び出すシステムコールを取得する。取得部112は、例えば監視装置100のOS(カーネル)に呼び出されて動作し、アプリケーション機能部111のシステムコールの呼出しをフックして、取得する。
<<Control unit: Acquisition unit>>
The acquisition unit 112 acquires a system call invoked by the application function unit 111. The acquisition unit 112 operates by being invoked by, for example, the OS (kernel) of the monitoring apparatus 100, and hooks and acquires the system call invoked by the application function unit 111.
最初にアプリケーション機能部111が照合対象(図4参照)である(「YES」)場合を説明する。取得部112は、アプリケーション機能部111がシステムコールを呼び出すと、アプリケーション機能部111(プロセス)ごとに、何れのシステムコールが呼び出されたのかを呼出し履歴データベース140(図2参照)に記録する。また取得部112はアプリケーション機能部111が照合対象(図4参照)であれば、呼出し履歴データベース140にあるシステムコール列(呼出し履歴、照合対象リスト)を後記する照合部113に送る。すると照合部113は、呼出し履歴と異常リスト150との照合結果を送り返す。なお照合結果が成功とは、呼出し履歴(呼び出されたシステムコール列)が異常リスト150に含まれるということであり、脅威となりうる呼出しであるということである。 First, we will explain the case where application function unit 111 is the target of matching (see Figure 4) ("YES"). When application function unit 111 invokes a system call, acquisition unit 112 records which system call was invoked for each application function unit 111 (process) in call history database 140 (see Figure 2). Furthermore, if application function unit 111 is the target of matching (see Figure 4), acquisition unit 112 sends the system call sequence (call history, matching target list) in call history database 140 to matching unit 113, which will be described later. In response, matching unit 113 sends back the result of matching the call history with anomaly list 150. Note that a successful match means that the call history (the sequence of invoked system calls) is included in anomaly list 150, and is a call that could pose a threat.
照合に成功した場合に取得部112は、呼び出されたシステムコールは不許可と判定し、アプリケーション機能部111にシステムコールの返り値としてエラーを返して監視ログ121に記録する。照合に失敗した場合に取得部112は、呼び出されたシステムコールは許可されたと判定し、アプリケーション機能部111にシステムコールの呼び出し結果を返す。
なおシステムコールの呼出し履歴の長さは、例えば異常リスト150にあるシステムコール列の最大長であればよい。
If the matching is successful, the acquisition unit 112 determines that the invoked system call is not permitted, returns an error as a return value of the system call to the application function unit 111, and records the error in the monitoring log 121. If the matching is unsuccessful, the acquisition unit 112 determines that the invoked system call is permitted, and returns the invocation result of the system call to the application function unit 111.
The length of the system call history may be, for example, the maximum length of the system call sequence in the anomaly list 150 .
続いてアプリケーション機能部111が照合対象(図4参照)でない(「NO」)場合を説明する。この場合に取得部112は、判定期間内はアプリケーション機能部111が呼び出したシステムコール列を判定部114に送る。判定期間は、所定のタイミングで始まる所定期間長の期間である。例えば判定期間は、10分ごとの1分間の期間である。判定部114の処理は後記する。 Next, we will explain the case where the application function unit 111 is not the target of comparison (see Figure 4) ("NO"). In this case, the acquisition unit 112 sends the system call sequence invoked by the application function unit 111 to the determination unit 114 during the determination period. The determination period is a period of a predetermined length that begins at a predetermined timing. For example, the determination period is a one-minute period every 10 minutes. The processing of the determination unit 114 will be described later.
≪制御部:照合部≫
照合部113は、取得部112が送ったシステムコール列(呼出し履歴)を、異常リスト150にあるシステムコール列それぞれと照合して異常の当否を判定する。照合部113は、一致するシステムコール列の有無を照合結果(成功/失敗)として取得部112に送り返す。なおシステムコール列が照合部113に送られてくるのは、当該システムコール列を呼び出したアプリケーション機能部111が照合対象(図4記載の監視情報データベース160の照合対象参照)である場合である。
<Control unit: Collation unit>
The collation unit 113 compares the system call sequence (call history) sent by the acquisition unit 112 with each system call sequence in the anomaly list 150 to determine whether or not an anomaly exists. The collation unit 113 returns to the acquisition unit 112 the presence or absence of a matching system call sequence as a collation result (success/failure). Note that a system call sequence is sent to the collation unit 113 when the application function unit 111 that called the system call sequence is the target of collation (see the target of collation in the monitoring information database 160 shown in FIG. 4).
例えば取得部112が、システムコール93、システムコール3、システムコール51、システムコール63、システムコール43を送ったとする(図2の3番目の呼出し履歴参照)。なお最後のシステムコール43が、アプリケーション機能部111が現在呼び出したシステムコールである。このシステムコール列は、末尾を含む部分列が異常リスト150(図3参照)の3番目のシステムコール列と一致しており、照合部113は照合成功と判定する。このように照合部113は、末尾を含む部分列が、異常リスト150にあるシステムコール列と一致するか否かを照合する。 For example, suppose the acquisition unit 112 sent system call 93, system call 3, system call 51, system call 63, and system call 43 (see the third call history in Figure 2). The last system call, 43, is the system call currently called by the application function unit 111. The subsequence, including the tail, of this system call sequence matches the third system call sequence in the anomaly list 150 (see Figure 3), and the comparison unit 113 determines that the comparison was successful. In this way, the comparison unit 113 compares whether the subsequence, including the tail, matches the system call sequence in the anomaly list 150.
≪制御部:判定部≫
判定部114は、判定モデル122を用いて、取得部112から受け取ったシステムコール列が正常か不正常かを判定する。なお判定部114がシステムコール列を判定するのは、当該システムコール列を呼び出したアプリケーション機能部111が照合対象(図4参照)でない場合である。
<Control unit: Determination unit>
The determination unit 114 determines whether the system call sequence received from the acquisition unit 112 is normal or abnormal using the determination model 122. Note that the determination unit 114 determines whether the system call sequence is normal or abnormal when the application function unit 111 that called the system call sequence is not the target of matching (see FIG. 4 ).
≪制御部:反映部≫
反映部115は、判定部114がシステムコール列を不正常と判定すると、当該システムコール列を呼び出したアプリケーション機能部111の監視レベル(図4参照)を「常時照合」、照合対象を「YES」とする。換言すれば、アプリケーション機能部111が呼び出したシステムコール列が不正常ならば、以後のアプリケーション機能部111が呼び出したシステムコール列は、照合部113が照合することになる。
<Control section: Reflection section>
When the determination unit 114 determines that a system call sequence is abnormal, the reflection unit 115 sets the monitoring level (see FIG. 4) of the application function unit 111 that called the system call sequence to "constant verification" and the verification target to "YES." In other words, if the system call sequence called by the application function unit 111 is abnormal, the verification unit 113 will verify subsequent system call sequences called by the application function unit 111.
また反映部115は、監視装置100の負荷が所定値以下ならば、監視情報データベース160(図4参照)にある全ての照合対象を「YES」とする。監視装置100の負荷が所定値超ならば反映部115は、監視情報データベース160にある監視レベルが「随時照合」であるアプリケーション機能部111の照合対象を「NO」とする。 Furthermore, if the load on the monitoring device 100 is below a predetermined value, the reflection unit 115 sets "YES" to all matching targets in the monitoring information database 160 (see Figure 4). If the load on the monitoring device 100 exceeds a predetermined value, the reflection unit 115 sets "NO" to matching targets of the application function unit 111 whose monitoring level in the monitoring information database 160 is "constant matching."
≪照合処理≫
図5は、本実施形態に係る照合処理のシーケンス図である。照合処理は、照合対象(図4参照)であるアプリケーション機能部111が呼び出したシステムコールに係る処理である。照合対象であるアプリケーション機能部111がシステムコールを呼び出すたびに図5の処理が実行される。なお、照合対象ではないアプリケーション機能部111が呼び出したシステムコールに係る処理(判定処理)は、図6を参照しながら後記する。また図5以下の図において、アプリケーション機能部を「AP機能部」と、システムコールを「SC」と記す。
<<Matching process>>
Fig. 5 is a sequence diagram of the matching process according to this embodiment. The matching process is a process related to a system call invoked by the application function unit 111 that is the target of matching (see Fig. 4). The process of Fig. 5 is executed each time the application function unit 111 that is the target of matching invokes a system call. Note that the process (determination process) related to a system call invoked by an application function unit 111 that is not the target of matching will be described later with reference to Fig. 6. In Fig. 5 and subsequent figures, the application function unit is referred to as an "AP function unit" and the system call is referred to as an "SC."
ステップS11においてアプリケーション機能部111は、システムコールを呼び出す。
ステップS12において、例えば監視装置100のOS(カーネル)の機能により、ステップS11におけるシステムコールの呼出しが取得部112に通知される(取得部112が呼び出される)。通知には、システムコールを呼び出したアプリケーション機能部111の識別情報(プロセス識別情報)が含まれる。
In step S11, the application function unit 111 invokes a system call.
In step S12, the invocation of the system call in step S11 is notified to the acquisition unit 112 (the acquisition unit 112 is invoked) by, for example, a function of the OS (kernel) of the monitoring apparatus 100. The notification includes identification information (process identification information) of the application function unit 111 that invoked the system call.
ステップS13において取得部112は、呼び出されたシステムコールを呼出し履歴データベース140のプロセス識別情報に対応する呼出し履歴に記録する。
ステップS14において取得部112は、プロセス識別情報に対応する呼出し履歴にあるシステムコール列を照合部113に送る。
In step S13, the acquisition unit 112 records the invoked system call in the call history corresponding to the process identification information in the call history database 140.
In step S14, the acquisition unit 112 sends the system call sequence in the call history corresponding to the process identification information to the collation unit 113.
ステップS15において照合部113は、受け取ったシステムコール列を異常リスト150にあるシステムコール列と照合する。
ステップS16において照合部113は、照合結果を取得部112に送る。
ステップS17において取得部112は、照合結果が成功ならば(ステップS17→成功)処理をステップS18に進め、失敗ならば(ステップS17→失敗)処理をステップS20に進める。
In step S<b>15 , the collation unit 113 collates the received system call sequence with the system call sequences in the anomaly list 150 .
In step S<b>16 , the matching unit 113 sends the matching result to the acquisition unit 112 .
In step S17, if the collation result is successful (step S17 → success), the acquisition unit 112 proceeds to step S18, and if the collation result is unsuccessful (step S17 → failure), the acquisition unit 112 proceeds to step S20.
ステップS18において取得部112は、現在時刻、プロセス識別情報、システムコールの呼出し履歴などを監視ログ121に記録する。
ステップS19において取得部112は、システムコール呼出しの結果としてエラーを、例えば監視装置100のOS(カーネル)の機能を用いてアプリケーション機能部111に返す。
In step S18, the acquisition unit 112 records the current time, process identification information, system call history, and the like in the monitoring log 121.
In step S19, the acquisition unit 112 returns an error as a result of the system call to the application function unit 111 by using, for example, a function of the OS (kernel) of the monitoring apparatus 100.
ステップS20において取得部112は、システムコールを呼び出す。
ステップS21において取得部112は、ステップS20におけるシステムコールの呼出しの結果を、例えば監視装置100のOS(カーネル)の機能を用いてアプリケーション機能部111に返す。
In step S20, the acquisition unit 112 invokes a system call.
In step S21, the acquisition unit 112 returns the result of the system call made in step S20 to the application function unit 111 using, for example, a function of the OS (kernel) of the monitoring apparatus 100.
≪判定処理≫
図6は、本実施形態に係る判定処理のシーケンス図である。判定処理は、判定期間内に照合対象(図4参照)ではないアプリケーション機能部111が呼び出したシステムコール列に係る処理である。判定期間内に照合対象ではないアプリケーション機能部111がシステムコールを呼び出すたびに図6の処理が実行される。なお照合対象ではないアプリケーション機能部111の監視レベルは「随時照合」である。
<Determination process>
Fig. 6 is a sequence diagram of the determination process according to this embodiment. The determination process is a process related to a system call sequence called by an application function unit 111 that is not a target of matching (see Fig. 4) during the determination period. The process in Fig. 6 is executed every time an application function unit 111 that is not a target of matching calls a system call during the determination period. The monitoring level of the application function unit 111 that is not a target of matching is "constant matching."
ステップS31~S33は、ステップS11~S13(図5参照)と同様の処理である。
ステップS34において取得部112は、プロセス識別情報に対応する呼出し履歴にあるシステムコール列を判定部114に送る。
ステップS35において判定部114は、システムコール列の正常/不正常を判定する。
Steps S31 to S33 are the same processes as steps S11 to S13 (see FIG. 5).
In step S34, the acquisition unit 112 sends the system call sequence in the call history corresponding to the process identification information to the determination unit 114.
In step S35, the determination unit 114 determines whether the system call sequence is normal or abnormal.
ステップS36において判定部114は、ステップS35の判定結果が正常ならば(ステップS36→正常)処理をステップS38に進める。判定部114は、ステップS35の判定結果が不正常ならば(ステップS36→不正常)処理をステップS37に進める。
ステップS37において反映部115は、アプリケーション機能部111の監視レベル(図4参照)を「常時照合」、照合対象を「YES」とする。
ステップS38~S39は、ステップS20~S21(図5参照)と同様の処理である。
In step S36, if the determination result in step S35 is normal (step S36→normal), the determination unit 114 proceeds to step S38. If the determination result in step S35 is abnormal (step S36→abnormal), the determination unit 114 proceeds to step S37.
In step S37, the reflection unit 115 sets the monitoring level (see FIG. 4) of the application function unit 111 to "constant collation" and the collation target to "YES."
Steps S38 and S39 are the same processes as steps S20 and S21 (see FIG. 5).
≪照合対象変更処理≫
図7は、本実施形態に係る照合対象変更処理のフローチャートである。照合対象変更処理は所定のタイミングで、例えば定期的に、実行される処理である。
<<Comparison target change process>>
7 is a flowchart of the process of changing the matching target according to this embodiment. The process of changing the matching target is executed at a predetermined timing, for example, periodically.
ステップS41において反映部115は、監視装置100の負荷が所定値以下であれば(ステップS41→YES)処理をステップS42に進める。反映部115は、監視装置100の負荷が所定値超であれば(ステップS41→NO)処理をステップS43に進める。 In step S41, if the load on the monitoring device 100 is equal to or less than a predetermined value (step S41 → YES), the reflection unit 115 proceeds to step S42. If the load on the monitoring device 100 exceeds the predetermined value (step S41 → NO), the reflection unit 115 proceeds to step S43.
ステップS42において反映部115は、監視情報データベース160(図4参照)にある全ての照合対象を「YES」とする。
ステップS43において反映部115は、監視情報データベース160にある監視レベルが「随時照合」であるアプリケーション機能部111の照合対象を「NO」とする。換言すれば、監視レベルが「常時対象」であるアプリケーション機能部111が呼び出したシステムコール列は、異常リスト150と照合される照合対象となる。監視レベルが「随時対象」であるアプリケーション機能部111が呼び出したシステムコール列は、判定部114により正常/不正常を判定される。
In step S42, the reflection unit 115 sets all of the matching targets in the monitoring information database 160 (see FIG. 4) to "YES."
In step S43, the reflection unit 115 sets "NO" as the collation target for the application function unit 111 whose monitoring level in the monitoring information database 160 is "constant collation." In other words, the system call sequence called by the application function unit 111 whose monitoring level is "constant target" becomes the collation target to be collated with the anomaly list 150. The system call sequence called by the application function unit 111 whose monitoring level is "constant target" is judged by the judgment unit 114 as normal or abnormal.
≪監視装置の特徴≫
監視装置100は、アプリケーション機能部111ごとにシステムコールの呼出しを監視する。監視装置100は、異常リスト150にある呼出し列を検出する(図4記載のステップS17→成功参照)と、システムコールの呼出しを失敗にすること(ステップS19参照)で、呼出しを不許可とする。
<Features of the monitoring device>
The monitoring device 100 monitors the invocation of a system call for each application function unit 111. When the monitoring device 100 detects a call sequence in the abnormality list 150 (see step S17 → success in FIG. 4), the monitoring device 100 disallows the invocation of the system call by failing the invocation (see step S19).
監視装置100は、負荷が低い場合には監視情報データベース160(図4参照)にある全てのアプリケーション機能部111について呼び出されたシステムコール列を異常リスト150と照合する。負荷が高い場合に監視装置100は、監視レベルが「常時照合」であるアプリケーション機能部111について呼び出されたシステムコール列を異常リスト150と照合する。このように監視装置100の負荷に応じて照合対象を拡大/縮小することで、効率的なシステムコールの呼出し監視が可能となる。 When the load is low, the monitoring device 100 compares the system call sequences invoked for all application function units 111 in the monitoring information database 160 (see Figure 4) against the anomaly list 150. When the load is high, the monitoring device 100 compares the system call sequences invoked for application function units 111 with a monitoring level of "constant comparison" against the anomaly list 150. In this way, by expanding or reducing the scope of comparison depending on the load on the monitoring device 100, efficient monitoring of system call invocations becomes possible.
また監視装置100は、アプリケーション機能部111が呼び出したシステムコール列を不正常と判定すると、当該アプリケーション機能部111が呼び出すシステムコール列を照合部113が照合するようにする(ステップS36→不正常、ステップS37参照)。換言すると監視装置100は、正常時の動作とは異なると判定すると、異常リスト150と照合することで、より精度が高い手法でアプリケーション機能部111を監視する。 Furthermore, when the monitoring device 100 determines that the system call sequence called by the application function unit 111 is abnormal, it causes the comparison unit 113 to compare the system call sequence called by the application function unit 111 (step S36 → abnormal, see step S37). In other words, when the monitoring device 100 determines that the operation is different from normal operation, it compares it with the anomaly list 150, thereby monitoring the application function unit 111 with a more accurate method.
≪変形例:システムコール列≫
上記した実施形態において照合部113は、システムコールの呼出し順を含むシステムコール列を異常リスト150と照合している。照合部113は、呼出し順を無視したシステムコールの集まり(集合)としてのシステムコール群(照合対象リスト)として照合してもよい。この場合には、異常リスト150も呼出し順を無視した、異常なシステムコール群のリストである。なおシステムコール列およびシステムコール群を合わせてシステムコールリストと記す。
<<Variation: System Call Sequence>>
In the above embodiment, the collation unit 113 collates a system call sequence, including the calling order of the system calls, with the anomaly list 150. The collation unit 113 may also perform collation as a system call group (list to be collated), which is a collection (set) of system calls ignoring the calling order. In this case, the anomaly list 150 is also a list of abnormal system calls ignoring the calling order. The system call sequence and the system call group are collectively referred to as the system call list.
また判定部114についても同様である。判定モデル122は、アプリケーションが呼び出す、システムコール群を説明変数として、当該アプリケーションが正常か不正常かを判定する際に用いられる機械学習モデルである。判定部114は、このような判定部114を用いて正常/不正常を判定してもよい。 The same applies to the determination unit 114. The determination model 122 is a machine learning model used to determine whether an application is normal or abnormal, using the set of system calls called by the application as explanatory variables. The determination unit 114 may use such a determination unit 114 to determine normality/abnormality.
≪変形例:監視レベルの数≫
上記した実施形態において監視レベルは「常時照合」「随時照合」の2つである。これに限定されず、3つ以上の監視レベルがあってもよい。例えば判定モデル122の判定結果が「正常」「不明」「不正常」の3つとする。「正常」は「不明」よりシステムコール列が正常である確信度/信頼度が高い。「不正常」は「不明」よりシステムコール列が不正常である確信度/信頼度が高い。ステップS36~S37において反映部115は、判定部114の判定結果が正常/不明/不正常に応じて、監視レベルをそれぞれ低頻度照合/高頻度照合/常時照合としてもよい。
<<Variation: Number of Monitoring Levels>>
In the above embodiment, there are two monitoring levels: "constant matching" and "occasional matching." This is not limiting, and three or more monitoring levels may be used. For example, the judgment results of the judgment model 122 may be three: "normal,""unknown," and "abnormal.""Normal" has a higher degree of certainty/reliability that the system call sequence is normal than "unknown.""Abnormal" has a higher degree of certainty/reliability that the system call sequence is abnormal than "unknown." In steps S36 to S37, the reflection unit 115 may set the monitoring level to low-frequency matching, high-frequency matching, or constant matching depending on whether the judgment result of the judgment unit 114 is normal, unknown, or abnormal.
反映部115は、監視装置100の負荷のレベルを、例えば高負荷/中負荷/低負荷を3段階に分け、この段階に応じて照合対象を決めてもよい。反映部115は、高負荷なら常時照合であるアプリケーション機能部111を照合対象とし、中負荷なら常時照合および高頻度照合を、低負荷なら全てを照合対象としてもよい。 The reflection unit 115 may divide the load level of the monitoring device 100 into three stages, for example, high load, medium load, and low load, and determine the object of matching according to this stage. If the load is high, the reflection unit 115 may select the application function unit 111, which is a constant matching unit, as the object of matching; if the load is medium, the reflection unit 115 may select constant matching and high-frequency matching; and if the load is low, the reflection unit 115 may select all the objects of matching.
また判定部114は、監視レベルに応じて判定の頻度を変えるようにしてもよい。上記した実施形態において判定期間は、所定のタイミングで始まる所定期間長の期間である。高頻度照合に比べて低頻度照合のアプリケーション機能部111については、判定期間を短くしたり、判定期間の間隔を長くしたりしてもよい。
ここまで説明した判定モデル122の判定結果のレベルおよび監視レベルは、3段階であるが、さらに細かいレベルに分けてもよい。監視レベルが低いほど、照合する期間や判定期間が短くなるようにする。
The determination unit 114 may also change the frequency of determination depending on the monitoring level. In the above embodiment, the determination period is a period of a predetermined length that begins at a predetermined timing. The determination period may be shorter or the interval between determination periods may be longer for the application function unit 111 that performs low-frequency matching compared to high-frequency matching.
The determination result levels and monitoring levels of the determination model 122 described so far are three-stage, but may be further divided into finer levels. The lower the monitoring level, the shorter the matching period and determination period.
≪変形例:監視レベルの変更≫
上記した実施形態において監視レベル(図4参照)は、判定部114の判定結果により随時照合から常時照合に変わる場合はあるが、常時照合が随時照合に変わる場合はない。常時照合であるアプリケーション機能部111が呼び出したシステムコール列の照合部113による判定結果が失敗となる期間が所定時間続けば、随時照合に変更するようにしてもよい。このようにすることで、判定部114の誤判定によって常時照合となったアプリケーション機能部111が随時照合になり、照合処理の負荷を削減することができるようになる。
<<Variation: Changing the monitoring level>>
In the above embodiment, the monitoring level (see FIG. 4) may change from on-demand matching to constant matching depending on the determination result of the determination unit 114, but there is no case in which constant matching changes to on-demand matching. If the determination result by the comparison unit 113 of the system call sequence called by the application function unit 111 that is set to constant matching continues for a predetermined period of time, the monitoring level may be changed to on-demand matching. In this way, the application function unit 111 that was set to constant matching due to an erroneous determination by the determination unit 114 will be changed to on-demand matching, thereby reducing the load on the matching process.
また上記した実施形態において監視レベルは、判定部114の判定結果により随時照合から常時照合に変わる。アプリケーション機能部111が常時照合に変わったときに、同じネットワークサービスを提供する他のアプリケーション機能部111も常時照合に変えるようにしてもよい。また、他の監視装置100で動作する同じネットワークサービスを提供する他のアプリケーション機能部111も常時照合に変えるようにしてもよい。このようにすることで、1つのアプリケーション機能部111がサイバー攻撃にあった場合に、同じネットワークサービスを提供する他のアプリケーション機能部111の監視レベルを上げることができ、いち早く脅威に対処できるようになる。 Furthermore, in the above-described embodiment, the monitoring level changes from occasional matching to constant matching depending on the determination result of the determination unit 114. When the application function unit 111 changes to constant matching, other application function units 111 that provide the same network service may also change to constant matching. Furthermore, other application function units 111 that provide the same network service and operate on other monitoring devices 100 may also change to constant matching. In this way, if one application function unit 111 is the victim of a cyber-attack, the monitoring level of the other application function units 111 that provide the same network service can be increased, allowing the threat to be dealt with quickly.
≪変形例:随時照合≫
上記した実施形態において、監視レベルが随時照合であるアプリケーション機能部111が呼び出したシステムコール列は、監視装置100の負荷が低い場合には異常リスト150と照合される。これに替えて当該システムコール列は、監視装置100の負荷が低い場合であっても照合されないようにしてもよい。判定部114により当該システムコール列が不正常と判定されて監視レベルが常時照合となり、異常リスト150と照合されるようにしてもよい。換言すればアプリケーション機能部111は、当初は照合対象ではないが、一度不正常と判定されると照合対象となる。
<<Variation: On-demand collation>>
In the above-described embodiment, a system call sequence called by the application function unit 111 whose monitoring level is "constant check" is checked against the anomaly list 150 when the load on the monitoring device 100 is low. Alternatively, the system call sequence may not be checked even when the load on the monitoring device 100 is low. The determination unit 114 may determine that the system call sequence is abnormal, so that the monitoring level becomes "constant check" and the system call sequence is checked against the anomaly list 150. In other words, the application function unit 111 is not initially a target for checking, but once it is determined to be abnormal, it becomes a target for checking.
≪変形例:照合対象変更処理≫
上記した実施形態における照合対象変更処理(図7参照)において、反映部115は監視装置100の負荷に応じて照合対象(図4参照)を変えている。他の監視装置100の状態/状況に応じて照合対象を変えてもよい。反映部115は例えば、アプリケーション機能部111がネットワークサービスを提供する場合に、サービス要求の到着率が所定値より低くなると監視情報データベース160(図4参照)にある全ての照合対象を「YES」としてもよい(ステップS42参照)。
<<Modification: Matching Target Change Process>>
In the matching target change process (see FIG. 7) in the above-described embodiment, the reflection unit 115 changes the matching target (see FIG. 4) depending on the load on the monitoring device 100. The matching target may also be changed depending on the state/condition of another monitoring device 100. For example, when the application function unit 111 provides a network service, the reflection unit 115 may set all matching targets in the monitoring information database 160 (see FIG. 4) to "YES" if the arrival rate of service requests falls below a predetermined value (see step S42).
≪変形例:判定モデル≫
上記した実施形態において判定部114は、1つの判定モデル122を用いて、正常/不正常を判定している。判定部114は、アプリケーション機能部111に応じた判定モデル122を用いて判定してもよい。
<<Variation: Judgment Model>>
In the above embodiment, the determination unit 114 determines whether the function is normal or abnormal using one determination model 122. The determination unit 114 may also determine whether the function is normal or abnormal using a determination model 122 corresponding to the application function unit 111.
≪変形例:判定部≫
上記した実施形態において判定部114は、機械学習モデルである判定モデル122を用いてシステムコール列の正常/不正常を判定しているが、他の技術を用いてもよい。例えば安全と見なせるシステムコール以外のシステムコールがシステムコール列に含まれれば不正常と見なしてもよい。また、異常リスト150にあるシステムコール列より短いシステムコール列との照合に成功すれば不正常と判定してもよい。この他に判定部114は、照合部113の照合処理より処理コストが小さく、不正常なシステムコール列を見逃す確率が低い手法を用いてもよい。
<Modification: Determination Unit>
In the above embodiment, the determination unit 114 determines whether a system call sequence is normal or abnormal using the determination model 122, which is a machine learning model, but other techniques may also be used. For example, a system call sequence may be deemed abnormal if it contains a system call other than a system call that is deemed safe. Alternatively, a system call sequence may be deemed abnormal if it is successfully matched with a system call sequence that is shorter than the system call sequence in the anomaly list 150. Alternatively, the determination unit 114 may use a method that has lower processing costs than the matching process of the matching unit 113 and a lower probability of overlooking an abnormal system call sequence.
≪変形例:監視システム≫
上記した実施形態においてアプリケーション機能部111が動作するコンピュータ上で照合部113や判定部114が動作している。アプリケーション機能部111と取得部112とが動作するコンピュータ(監視対象装置)と、照合部113や判定部114が動作するコンピュータ(監視装置)とが異なってもよい。例えば照合部113が動作する監視装置は、複数の監視対象装置が送ったシステムコール列を、判定モデル122を用いて正常/不正常を判定してもよい。照合部113についても同様である。このようにすることで、1つの監視装置で複数の監視対象装置で稼働するアプリケーション機能部111を監視することができるようになり、監視コストの削減が見込めるようになる。
<<Variation: Surveillance System>>
In the above-described embodiment, the collation unit 113 and the determination unit 114 operate on the computer on which the application function unit 111 operates. The computer on which the application function unit 111 and the acquisition unit 112 operate (monitored device) may be different from the computer on which the collation unit 113 and the determination unit 114 operate (monitoring device). For example, the monitoring device on which the collation unit 113 operates may use the determination model 122 to determine whether a system call sequence sent by multiple monitored devices is normal or abnormal. The same applies to the collation unit 113. In this way, it becomes possible for a single monitoring device to monitor application function units 111 operating on multiple monitored devices, which is expected to reduce monitoring costs.
≪その他変形例≫
以上、本発明のいくつかの実施形態や変形例について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換など種々の変更を行うことができる。これら実施形態やその変形は、本明細書などに記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
Other variations
Although several embodiments and modifications of the present invention have been described above, these embodiments are merely illustrative and do not limit the technical scope of the present invention. The present invention can take on various other embodiments, and various modifications such as omissions and substitutions can be made without departing from the spirit of the present invention. These embodiments and modifications are included within the scope and spirit of the invention described in this specification, etc., and are included in the invention described in the claims and their equivalents.
≪ハードウェア構成≫
上記した実施形態に係る監視装置100は、例えば図8に示すような構成のコンピュータ900によって実現される。図8は、上記した実施形態に係る監視装置100の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。コンピュータ900は、CPU901、ROM902、RAM903、SSD904、入出力インターフェイス905(図8では入出力I/F(Interface)と記載)、通信インターフェイス906(図8では通信I/Fと記載)およびメディアインターフェイス907(図8ではメディアI/Fと記載)を備える。コンピュータ900は、SSD904の替わりにHDD(Hard Disc Drive)を備えてもよいし、SSD904に加えて、さらにHDDを備えてもよい。
<Hardware configuration>
The monitoring device 100 according to the above-described embodiment is realized by a computer 900 having a configuration as shown in FIG. 8 , for example. FIG. 8 is a hardware configuration diagram showing an example of the computer 900 that realizes the functions of the monitoring device 100 according to the above-described embodiment. The computer 900 includes a CPU 901, a ROM 902, a RAM 903, an SSD 904, an input/output interface 905 (referred to as an input/output I/F (Interface) in FIG. 8 ), a communication interface 906 (referred to as a communication I/F in FIG. 8 ), and a media interface 907 (referred to as a media I/F in FIG. 8 ). The computer 900 may include a hard disk drive (HDD) instead of the SSD 904, or may include a HDD in addition to the SSD 904.
CPU901は、ROM902またはSSD904に記憶されたプログラムに基づいて作動し、図1の制御部110による制御を行う。ROM902は、コンピュータ900の起動時にCPU901により実行されるブートプログラムや、コンピュータ900のハードウェアに係るプログラムなどを記憶する。
CPU901は、入出力インターフェイス905を介して、マウスやキーボードなどの入力装置910、およびディスプレイやプリンタなどの出力装置911を制御する。CPU901は、入出力インターフェイス905を介して、入力装置910からデータを取得するとともに、生成したデータを出力装置911へ出力する。
The CPU 901 operates based on a program stored in the ROM 902 or the SSD 904, and performs control by the control unit 110 in Fig. 1. The ROM 902 stores a boot program executed by the CPU 901 when the computer 900 is started up, programs related to the hardware of the computer 900, and the like.
The CPU 901 controls an input device 910 such as a mouse or keyboard, and an output device 911 such as a display or printer, via an input/output interface 905. The CPU 901 acquires data from the input device 910 via the input/output interface 905, and outputs generated data to the output device 911.
SSD904は、CPU901により実行されるプログラムおよび当該プログラムによって使用されるデータなどを記憶する。通信インターフェイス906は、通信網を介して不図示の他の装置(例えば、アプリケーション機能部111が提供するネットワークサービスを利用する端末など)からデータを受信してCPU901へ出力し、また、CPU901が生成したデータを、通信網を介して他の装置へ送信する。
メディアインターフェイス907は、記録媒体912に格納されたプログラムまたはデータを読み取り、RAM903を介してCPU901へ出力する。CPU901は、プログラムを、メディアインターフェイス907を介して記録媒体912からRAM903上にロードし、ロードしたプログラムを実行する。記録媒体912は、DVD(Digital Versatile Disk)などの光学記録媒体、MO(Magneto Optical disk)などの光磁気記録媒体、磁気記録媒体、導体メモリテープ媒体または半導体メモリなどである。
The SSD 904 stores programs executed by the CPU 901 and data used by the programs. The communication interface 906 receives data from other devices (not shown) (for example, a terminal that uses a network service provided by the application function unit 111) via a communication network and outputs the data to the CPU 901, and also transmits data generated by the CPU 901 to other devices via the communication network.
The media interface 907 reads a program or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903. The CPU 901 loads the program from the recording medium 912 onto the RAM 903 via the media interface 907 and executes the loaded program. The recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disk), a magneto-optical recording medium such as an MO (Magneto Optical Disk), a magnetic recording medium, a conductive memory tape medium, a semiconductor memory, or the like.
例えば、コンピュータ900が上記した実施形態に係る監視装置100として機能する場合、コンピュータ900のCPU901は、RAM903上にロードされたプログラム128(図1参照)を実行することにより、監視装置100の機能を実現する。CPU901は、プログラムを記録媒体912から読み取って実行する。この他、CPU901は、他の装置から通信網を介してプログラムを読み込んでもよいし、記録媒体912からSSD904にプログラム128をインストールして実行してもよい。 For example, when the computer 900 functions as the monitoring device 100 according to the embodiment described above, the CPU 901 of the computer 900 executes the program 128 (see FIG. 1) loaded onto the RAM 903, thereby realizing the functions of the monitoring device 100. The CPU 901 reads the program from the recording medium 912 and executes it. Alternatively, the CPU 901 may read the program from another device via a communications network, or may install the program 128 from the recording medium 912 onto the SSD 904 and execute it.
≪効果≫
以下に、装置の効果を説明する。
Effect
The effects of the device will be explained below.
上記した実施形態に係る監視装置100は、プロセス(アプリケーション機能部111参照)がOSの処理を要求するシステムコールを呼び出すと、当該システムコールである呼出しシステムコール、および、当該プロセスが過去に呼び出したシステムコールを合わせたシステムコールリストを照合対象リストとして取得する取得部112を備える。 The monitoring device 100 according to the embodiment described above includes an acquisition unit 112 that, when a process (see application function unit 111) invokes a system call that requests OS processing, acquires, as a comparison list, a system call list that combines the invoked system call and system calls previously invoked by the process.
監視装置100は、1つ以上のシステムコールを含む、異常なシステムコールリストを示す異常リスト150を記憶する記憶部120を備える。
監視装置100は、プロセスが照合対象プロセス(図4記載の監視情報データベース160の照合対象参照)である場合に、当該プロセスが呼び出した照合対象リストと、異常リスト150に含まれるシステムコールリストとを照合して、当該照合対象リストが異常であることの当否を判定する照合部113を備える。
The monitoring device 100 includes a storage unit 120 that stores an abnormality list 150 that indicates a list of abnormal system calls that include one or more system calls.
The monitoring device 100 includes a comparison unit 113 that, when a process is a comparison target process (see the comparison targets in the monitoring information database 160 shown in Figure 4), compares the comparison target list called by the process with the system call list included in the abnormality list 150 to determine whether the comparison target list is abnormal.
監視装置100は、プロセスが照合対象プロセスでない場合に、所定の判定モデル122を用いてプロセスが呼び出した照合対象リストの正常/不正常を判定する判定部114を備える。
監視装置100は、判定部114が照合対象リストを不正常と判定すると、当該照合対象リストを呼び出したプロセスを照合対象プロセスとする反映部115を備える。
The monitoring device 100 includes a determination unit 114 that, when a process is not a process to be compared, determines whether a list to be compared called by the process is normal or abnormal using a predetermined determination model 122 .
The monitoring apparatus 100 includes a reflection unit 115 that, when the determination unit 114 determines that the comparison target list is abnormal, sets the process that called the comparison target list as the comparison target process.
このような監視装置100によれば、照合対象であるプロセスが呼び出したシステムコールリストを異常リスト150と照合する。全てのプロセスが呼び出したシステムコールリストを異常リスト150と照合する場合に比べ、照合処理の処理コストを削減することができる。 With this monitoring device 100, the list of system calls called by the process being compared is compared with the anomaly list 150. This reduces the processing cost of the comparison process compared to when the lists of system calls called by all processes are compared with the anomaly list 150.
またプロセスが呼び出したシステムコールリストを判定部114が不正常と判定すると、反映部115は当該プロセスを照合対象とする。プロセスの起動当初は正常であったが、後に異常の可能性が出てきたプロセスが呼び出したシステムコールリストを異常リスト150と照合することになる。異常の可能性がない間、照合処理はしないことになり、照合処理の処理コストを削減することができる。 Furthermore, if the judgment unit 114 judges that the system call list called by a process is abnormal, the reflection unit 115 will make that process the target for comparison. The system call list called by a process that was normal when first started but later became suspect of being abnormal will be compared with the abnormality list 150. While there is no possibility of an abnormality, the comparison process will not be performed, thereby reducing the processing cost of the comparison process.
上記した実施形態に係るプロセス(アプリケーション機能部111参照)には、常時照合対象プロセスと、所定の条件を満たすときに照合を行う随時照合対象プロセスとがある(図4記載の監視情報データベース160の監視レベル参照)。
反映部115は、監視装置100の負荷が所定値以下であれば、所定の条件を満たすとして、常時照合対象プロセスとともに随時照合対象プロセスを照合対象プロセスとする(図7記載のステップS41→YES、ステップS42参照)。
反映部115は、監視装置100の負荷が所定値を超えれば、常時照合対象プロセスを照合対象プロセスとする(図7記載のステップS41→NO、ステップS43参照)。
The processes in the above-described embodiment (see application function unit 111) include processes that are always subject to matching and processes that are subject to matching whenever certain conditions are met (see the monitoring level of the monitoring information database 160 in Figure 4).
If the load on the monitoring device 100 is equal to or less than a predetermined value, the reflection unit 115 determines that the predetermined condition is met and sets the process to be checked at any time as well as the process to be checked at all times as a process to be checked (see step S41 → YES and step S42 in FIG. 7).
If the load on the monitoring apparatus 100 exceeds a predetermined value, the reflection unit 115 always sets the process to be checked as the process to be checked (see step S41→NO and step S43 in FIG. 7).
このような監視装置100によれば、負荷の状況に応じて照合対象のプロセスを増減することができる。負荷が低い場合には多くのプロセスが呼び出したシステムコールリストを照合することができ、セキュリティ上の脅威に対する対策レベルを上げることができる。負荷が高い場合には常時照合対象のプロセスが呼び出したシステムコールリストに絞って異常リスト150と照合しており、照合処理の処理コストを削減することができる。 With this type of monitoring device 100, it is possible to increase or decrease the number of processes to be compared depending on the load situation. When the load is low, it is possible to compare the system call lists called by many processes, thereby increasing the level of countermeasures against security threats. When the load is high, it is always limited to comparing the system call lists called by the processes to be compared against the anomaly list 150, thereby reducing the processing costs of the comparison process.
上記した実施形態に係る取得部112は、プロセスがシステムコールを呼び出した順序を含めて照合対象リスト(システムコール列)とする。
判定モデル122の入力となる説明変数は、順序を含んだ照合対象リストである。
The acquisition unit 112 according to the embodiment creates the matching list (system call sequence) including the order in which the process invoked the system calls.
The explanatory variables that are input to the determination model 122 are a list of matching targets that includes an order.
このような監視装置100によれば、システムコールの呼出し順序を考慮しないシステムコール群を基にした場合に比べ、判定部114の正常/不正常の判定精度が向上することが見込まれる。延いては、異常である可能性が高いプロセスが呼び出したシステムコールリストを異常リスト150と照合することになり、照合部113の処理コストを削減することができる。 Using this monitoring device 100, it is expected that the accuracy of the judgment unit 114's normal/abnormal judgment will be improved compared to when it is based on a group of system calls that does not take into account the order in which the system calls are called. Furthermore, by comparing the list of system calls called by processes that are likely to be abnormal with the abnormality list 150, the processing costs of the comparison unit 113 can be reduced.
上記した実施形態に係る所定の判定モデル122は、説明変数が照合対象リストであり、正常な動作状態にあるプロセスが呼び出した照合対象リストを学習データとして生成された機械学習モデルである。 The predetermined judgment model 122 according to the embodiment described above is a machine learning model whose explanatory variables are match target lists, and which is generated using match target lists called by processes in a normal operating state as learning data.
このような監視装置100によれば、正常動作するプロセスと比較した照合対象リストの正常/不正常の判定ができるようになる。不正常となるシステムコールリストの作成が不要であり、手間をかけずに判定モデル122が生成できる。 Using this monitoring device 100, it becomes possible to determine whether a matching list is normal or abnormal by comparing it with processes that are operating normally. There is no need to create a list of abnormal system calls, and the determination model 122 can be generated without much effort.
100 監視装置
111 アプリケーション機能部
112 取得部
113 照合部
114 判定部
115 反映部
121 監視ログ
122 判定モデル
131 アプリケーションデータ
132 アプリケーションプログラム
128 プログラム
140 呼出し履歴データベース
150 異常リスト
160 監視情報データベース
100 Monitoring device 111 Application function unit 112 Acquisition unit 113 Collation unit 114 Determination unit 115 Reflection unit 121 Monitoring log 122 Determination model 131 Application data 132 Application program 128 Program 140 Call history database 150 Abnormality list 160 Monitoring information database
Claims (5)
1つ以上のシステムコールを含む、異常な前記システムコールリストを示す異常リストを記憶する記憶部と、
前記プロセスが照合対象プロセスである場合に、当該プロセスが呼び出した前記照合対象リストと、前記異常リストに含まれるシステムコールリストとを照合して、当該照合対象リストが異常であることの当否を判定する照合部と、
前記プロセスが前記照合対象プロセスでない場合に、所定の判定モデルを用いて前記プロセスが呼び出した照合対象リストの正常/不正常を判定する判定部と、
前記判定部が前記照合対象リストを不正常と判定すると、当該照合対象リストを呼び出したプロセスを前記照合対象プロセスとする反映部と、を備える
監視装置。 an acquisition unit that, when a process invokes a system call that requests processing by an OS, acquires a system call list that includes the invoked system call and system calls that the process has invoked in the past as a list to be compared;
a storage unit configured to store an abnormality list indicating a list of abnormal system calls, the abnormal system calls including one or more system calls;
a comparison unit that, when the process is a comparison target process, compares the comparison target list called by the process with a system call list included in the abnormality list to determine whether the comparison target list is abnormal;
a determination unit that, when the process is not the process to be compared, determines whether the list of processes to be compared called by the process is normal or abnormal using a predetermined determination model;
a reflection unit that, when the determination unit determines that the comparison target list is abnormal, sets a process that has called the comparison target list as the comparison target process.
常時照合対象プロセスと、所定の条件を満たすときに照合を行う随時照合対象プロセスとがあり、
前記反映部は、
前記監視装置の負荷が所定値以下であれば、前記所定の条件を満たすとして、前記常時照合対象プロセスとともに前記随時照合対象プロセスを前記照合対象プロセスとし、
前記監視装置の負荷が前記所定値を超えれば、前記常時照合対象プロセスを前記照合対象プロセスとする
請求項1に記載の監視装置。 The process includes:
There are processes that are always subject to matching and processes that are occasionally subject to matching when a predetermined condition is met.
The reflection unit
If the load of the monitoring device is equal to or less than a predetermined value, it is determined that the predetermined condition is satisfied, and the occasional comparison process is set as the comparison target process together with the constant comparison target process;
The monitoring device according to claim 1 , wherein if the load of the monitoring device exceeds the predetermined value, the process to be constantly compared is set as the process to be compared.
前記プロセスがシステムコールを呼び出した順序を含めて前記照合対象リストとし、
前記判定モデルの入力となる説明変数は、
前記順序を含んだ照合対象リストである
請求項1に記載の監視装置。 The acquisition unit
The list to be checked includes the order in which the process invoked the system calls,
The explanatory variables that are input to the determination model are:
The monitoring device according to claim 1 , wherein the list of objects to be checked includes the order.
説明変数が前記照合対象リストであり、正常な動作状態にある前記プロセスが呼び出した前記照合対象リストを学習データとして生成された機械学習モデルである
請求項1に記載の監視装置。 The predetermined judgment model is
The monitoring device according to claim 1 , wherein an explanatory variable is the match target list, and the machine learning model is generated using the match target list called by the process in a normal operating state as learning data.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2024/023565 WO2026004111A1 (en) | 2024-06-28 | 2024-06-28 | Monitoring device and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2024/023565 WO2026004111A1 (en) | 2024-06-28 | 2024-06-28 | Monitoring device and program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2026004111A1 true WO2026004111A1 (en) | 2026-01-02 |
Family
ID=98221165
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/023565 Pending WO2026004111A1 (en) | 2024-06-28 | 2024-06-28 | Monitoring device and program |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2026004111A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006053788A (en) * | 2004-08-12 | 2006-02-23 | Ntt Docomo Inc | Software operation monitoring apparatus and software operation monitoring method |
| JP2010267128A (en) * | 2009-05-15 | 2010-11-25 | Ntt Docomo Inc | Analysis system, analysis apparatus, detection method, analysis method, and program |
| US20200410089A1 (en) * | 2018-03-16 | 2020-12-31 | Huawei Technologies Co., Ltd. | Container Escape Detection Method, Apparatus, and System, and Storage Medium |
-
2024
- 2024-06-28 WO PCT/JP2024/023565 patent/WO2026004111A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006053788A (en) * | 2004-08-12 | 2006-02-23 | Ntt Docomo Inc | Software operation monitoring apparatus and software operation monitoring method |
| JP2010267128A (en) * | 2009-05-15 | 2010-11-25 | Ntt Docomo Inc | Analysis system, analysis apparatus, detection method, analysis method, and program |
| US20200410089A1 (en) * | 2018-03-16 | 2020-12-31 | Huawei Technologies Co., Ltd. | Container Escape Detection Method, Apparatus, and System, and Storage Medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102612500B1 (en) | Sensitive data exposure detection through logging | |
| US11469976B2 (en) | System and method for cloud-based control-plane event monitor | |
| US11216555B2 (en) | System and method of providing a set of convolutions to a computing device for detecting anomalous events | |
| US10721264B1 (en) | Systems and methods for categorizing security incidents | |
| US9619649B1 (en) | Systems and methods for detecting potentially malicious applications | |
| US11609780B2 (en) | Recovery of state, configuration, and content for virtualized instances | |
| US20230376591A1 (en) | Method and apparatus for processing security events in container virtualization environment | |
| JP7687642B2 (en) | Supply Chain Attack Detection | |
| CN115766101B (en) | A method and apparatus for adjudicating behavioral features based on eBPF technology | |
| US11899797B2 (en) | System and method for detecting and for alerting of exploits in computerized systems | |
| WO2025177362A1 (en) | Monitoring device, program, and monitoring method | |
| JP2017174426A (en) | User mode component injection technique | |
| US20250258914A1 (en) | Detecting anomalous loading of dynamic-link libraries | |
| CN116827694B (en) | Data security detection method and system | |
| US20240273242A1 (en) | Bios-based device protection using detection and mitigation of modifications to a protected storage region | |
| WO2025173182A1 (en) | Security function selection device, program, and security function selection method | |
| WO2024228195A1 (en) | A malware detection system and method | |
| CN120234134A (en) | In-memory computing PIM system, data processing system, method and device | |
| CN116842505A (en) | Method, device and storage medium for constructing process trusted domain based on windows operating system | |
| CN119998804A (en) | Stacked malware detectors for mobile platforms | |
| HK40063664A (en) | System and method for cloud-based control-plane event monitor | |
| HK40063664B (en) | System and method for cloud-based control-plane event monitor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24944602 Country of ref document: EP Kind code of ref document: A1 |