WO2019167225A1 - 情報処理装置、制御方法、及びプログラム - Google Patents

情報処理装置、制御方法、及びプログラム Download PDF

Info

Publication number
WO2019167225A1
WO2019167225A1 PCT/JP2018/007763 JP2018007763W WO2019167225A1 WO 2019167225 A1 WO2019167225 A1 WO 2019167225A1 JP 2018007763 W JP2018007763 W JP 2018007763W WO 2019167225 A1 WO2019167225 A1 WO 2019167225A1
Authority
WO
WIPO (PCT)
Prior art keywords
event
information
model
classified
learning
Prior art date
Application number
PCT/JP2018/007763
Other languages
English (en)
French (fr)
Inventor
和彦 磯山
純明 榮
淳 西岡
悦子 市原
光佑 吉田
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US16/976,311 priority Critical patent/US11899793B2/en
Priority to JP2020503209A priority patent/JP6892005B2/ja
Priority to DE112018007202.9T priority patent/DE112018007202T5/de
Priority to PCT/JP2018/007763 priority patent/WO2019167225A1/ja
Publication of WO2019167225A1 publication Critical patent/WO2019167225A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Definitions

  • the present invention relates to abnormality detection.
  • Patent Document 1 A system that monitors whether the computer system is operating normally has been developed. For example, in Patent Document 1, a normal operation model when the observation target software is operating normally is learned, and the operation of the observation target software is compared with the model, thereby obtaining the monitoring target software. Discloses a system that detects the occurrence of anomalies due to unauthorized intrusion.
  • the present invention has been made in view of the above problems.
  • One of the objects of the present invention is to provide a technique capable of starting monitoring whether or not the operation of a monitored system is normal from a situation where it is unknown whether or not the operation of the system is normal. It is to be.
  • the information processing apparatus acquires 1) first event information indicating information related to an event generated by a process in the standard apparatus, and second event information indicating information related to an event generated by the process in the determination target apparatus. And 2) using the first event information, each event indicated in the second event information is classified into a first type of event that occurred in the standard device and a second type of event that did not occur in the standard device.
  • a classifying unit that classifies the event, and 3) second event information related to the event classified as the first class, a first model that determines whether the event classified as the first class is an event to be warned And 4) a second model for determining whether or not an event classified as the second class is a warning target event.
  • a second learning section for learning using the second event information on cement, a.
  • the control method of the present invention is a control method executed by a computer.
  • the control method includes 1) an acquisition step of acquiring first event information indicating information related to an event generated by a process in the standard device and second event information indicating information related to an event generated by the process in the determination target device. And 2) using the first event information, each event indicated in the second event information is classified into a first type event that has occurred in the standard device and a second type event that has not occurred in the standard device.
  • a classification step for classification and 3) a first model for determining whether or not an event classified into the first class is a warning target event, using second event information relating to the event classified into the first class A first learning step for learning, and 4) a second model for determining whether an event classified as a second class is a warning target event, is classified as a second class Having a second learning step of learning by using the second event information on the event.
  • the program of the present invention causes a computer to execute each step of the control method of the present invention.
  • FIG. 3 is a diagram illustrating an outline of operation of the information processing apparatus according to the first embodiment.
  • 1 is a diagram illustrating a configuration of an information processing apparatus according to a first embodiment. It is a figure which illustrates the computer for implement
  • 3 is a flowchart illustrating a flow of processing executed by the information processing apparatus according to the first embodiment. It is a figure which illustrates the information which defines an event in a table format.
  • FIG. 9 is a block diagram illustrating a functional configuration of an information processing apparatus according to a third embodiment. 10 is a flowchart illustrating a flow of processing executed by the information processing apparatus according to the third embodiment.
  • each block diagram represents a functional unit configuration, not a hardware unit configuration.
  • FIG. 1 is a diagram illustrating an outline of the operation of the information processing apparatus according to the first embodiment.
  • FIG. 1 is a conceptual diagram for facilitating understanding of the operation of the information processing apparatus 2000, and does not specifically limit the operation of the information processing apparatus 2000.
  • the information processing apparatus 2000 learns (updates) a model for determining whether the event generated by the process in the determination target apparatus 10 is the warning target event.
  • the “process” here is a program being executed.
  • An “event” is an activity performed by a process on some object (other processes, files, etc.). For example, an event generated by a certain process is activation of another process, communication with another process, access to a file, or the like.
  • an event to be warned is an event that is presumed to have a high security risk, such as an event with a high probability that malware is involved.
  • Other examples of warning target events will be described later.
  • the first model is used when the event to be determined is an event that has occurred in the standard device 20 as well.
  • the second model is used when an event to be determined is an event that has not occurred in the standard device 20.
  • first-type events events that have occurred in the standard device 20
  • second-type events events that have not occurred in the standard device 20 are referred to as second-type events.
  • the standard device 20 is a computer that is considered to have a high probability of operating normally (low possibility of malfunction). For example, when an event with a high probability that malware is involved is targeted for warning, a computer with a low probability of being infected with malware is used as the standard device 20.
  • the information processing apparatus 2000 includes information related to an event that has occurred in the standard apparatus 20 (hereinafter referred to as first event information) and information related to an event that has occurred in the determination target apparatus 10 (hereinafter referred to as second event information). ) To get.
  • the information processing apparatus 2000 uses the first event information to classify the event indicated by the second event information (that is, the event that occurred in the determination target apparatus 10) into a first type event and a second type event. To do.
  • the information processing apparatus 2000 learns the first model using the second event information of the events classified as the first class.
  • the information processing apparatus 2000 performs learning of the second model by using the second event information of the events classified as the second class.
  • a model for determining whether or not an event that has occurred in the determination target apparatus 10 is a warning target event determination on an event (first type event) that has also occurred in the standard apparatus 20 is performed.
  • Two types of models are prepared: a first model to be performed and a second model for determining an event that has not occurred in the standard device 20 (second type of event).
  • learning is performed using an event classified as a first class
  • second model learning is performed using an event classified as a second class.
  • the standard apparatus 20 is used instead of the determination target apparatus 10 as an apparatus that performs a normal operation in creating a model. Therefore, even if the determination target device 10 is already in an abnormal state at the timing of starting learning of the model, a highly accurate model can be obtained. Therefore, the operation of the information processing apparatus 2000 can be started from a situation in which it is unknown whether the monitoring target apparatus (determination target apparatus 10) is normal.
  • FIG. 2 is a diagram illustrating a configuration of the information processing apparatus 2000 according to the first embodiment.
  • the information processing apparatus 2000 includes an acquisition unit 2020, a classification unit 2040, a first learning unit 2060, and a second learning unit 2080.
  • the acquisition unit 2020 acquires first event information and second event information.
  • the first event information is information related to an event generated by the process in the standard device 20.
  • the second event information is information related to an event generated by the process in the determination target device 10.
  • the classification unit 2040 uses the first event information to classify each event indicated in the second event information into a first type event and a second type event.
  • the first type of event is an event that has also occurred in the standard device 20.
  • the second type of event is an event that has not occurred in the standard device 20.
  • the first learning unit 2060 learns the first model using the second event information related to the events classified into the first class.
  • the second learning unit 2080 learns the second model using the second event information related to the event classified as the second class.
  • Each functional component of the information processing apparatus 2000 may be realized by hardware (eg, a hard-wired electronic circuit) that implements each functional component, or a combination of hardware and software (eg: It may be realized by a combination of an electronic circuit and a program for controlling it).
  • hardware eg, a hard-wired electronic circuit
  • software eg: It may be realized by a combination of an electronic circuit and a program for controlling it.
  • FIG. 3 is a diagram illustrating a computer 1000 for realizing the information processing apparatus 2000.
  • the computer 1000 is an arbitrary computer.
  • the computer 1000 is a Personal Computer (PC), a server machine, a tablet terminal, or a smartphone.
  • the computer 1000 may be a dedicated computer designed for realizing the information processing apparatus 2000 or a general-purpose computer.
  • the computer 1000 includes a bus 1020, a processor 1040, a memory 1060, a storage device 1080, an input / output interface 1100, and a network interface 1120.
  • the bus 1020 is a data transmission path through which the processor 1040, the memory 1060, the storage device 1080, the input / output interface 1100, and the network interface 1120 transmit / receive data to / from each other.
  • the method of connecting the processors 1040 and the like is not limited to bus connection.
  • the processor 1040 is a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or an FPGA (Field-Programmable Gate Array).
  • the memory 1060 is a main storage device realized using a RAM (Random Access Memory) or the like.
  • the storage device 1080 is an auxiliary storage device implemented using a hard disk drive, SSD (Solid State Drive), memory card, or ROM (Read Only Memory). However, the storage device 1080 may be configured by hardware similar to the hardware configuring the main storage device such as a RAM.
  • the input / output interface 1100 is an interface for connecting the computer 1000 and an input / output device.
  • the network interface 1120 is an interface for connecting the computer 1000 to a communication network.
  • This communication network is, for example, “LAN (Local Area Network)” or “WAN (Wide Area Network)”.
  • a method of connecting the network interface 1120 to the communication network may be a wireless connection or a wired connection.
  • the storage device 1080 stores a program module that implements a functional component of the information processing apparatus 2000.
  • the processor 1040 implements a function corresponding to each program module by reading each program module into the memory 1060 and executing the program module.
  • the determination target device 10 is an arbitrary computer such as a PC, a server machine, a tablet terminal, or a smartphone. There may be one or more determination target devices 10.
  • the first model and the second model may be shared by a plurality of determination target devices 10.
  • the information processing apparatus 2000 acquires the second event information from each of the plurality of determination target apparatuses 10 sharing the first model and the second model, and learns the model.
  • the standard device 20 is an arbitrary computer such as a PC, a server machine, a tablet terminal, or a smartphone. As described above, the standard device 20 is a computer having a high probability of operating normally.
  • the standard device 20 is a computer after the OS (Operating System) is cleanly installed and before the operation is started.
  • the standard apparatus 20 does not necessarily have to be a computer before operation, and may be a computer that is operated in a situation where a probability of occurrence of a malfunction is low.
  • computers are operated in situations where there is a low probability of being infected by malware, such as computers that are severely restricted from connecting to networks and computers operated by security experts. Computer.
  • FIG. 4 is a flowchart illustrating the flow of processing executed by the information processing apparatus 2000 according to the first embodiment.
  • the acquisition unit 2020 acquires the first event information (S102).
  • the acquisition unit 2020 acquires second event information (S104).
  • the classification unit 2040 classifies each event indicated in the second event information into a first type and a second type (S106).
  • the first learning unit 2060 learns the first model using the second event information related to the event classified as the first class (S108).
  • the second learning unit 2080 learns the second model using the second event information related to the event classified as the second class (S110).
  • the learning of the model using the event generated in the determination target device 10 is repeatedly performed during the operation of the determination target device 10. Therefore, for example, the information processing apparatus 2000 repeatedly acquires the second event information, and performs learning of the model (S106 to S110) using the second event information each time the second event information is acquired.
  • an event is an activity performed by a process on some object.
  • these processes may operate on the same operating system (OS), or operate on different operating systems. Good.
  • OS operating system
  • a certain process communicates with another process operating on another OS by using a socket interface.
  • an event is identified by information representing three elements: subject, object, and activity content.
  • information representing the subject (hereinafter, subject information) is information for identifying the process that generated the event.
  • information for identifying a process is referred to as process identification information.
  • the process identification information indicates, for example, a process name.
  • the process identification information is the name or path of the execution file of the program corresponding to the process.
  • object information is, for example, the type and identification information of the object.
  • the type of object is, for example, a process, a file, or another device.
  • the object information includes process identification information of the process.
  • the object information includes information for identifying the file (hereinafter, file identification information).
  • file identification information is, for example, the name and path of the file.
  • the object information may include a hash value of the file.
  • the object information includes identification information of the other device (hereinafter, device identification information).
  • the device identification information is, for example, a network address such as an IP (Internet Protocol) or a MAC (Media Access Control) address.
  • IP Internet Protocol
  • MAC Media Access Control
  • the other devices referred to here include not only physical devices but also virtual devices (such as virtual machines).
  • the object information includes the number of objects (that is, the other device with which the process that is the subject of the event communicates) together with the device identification information or instead of the device identification information. Number) may be indicated.
  • the information indicating the activity content is, for example, an identifier assigned in advance to various activity content. For example, “Start process”, “Stop process”, “Open file”, “Read data from file”, “Write data to file”, “Open socket”, “Data from socket” Different identifiers are assigned to activities such as “Read” or “Write data to socket”. Note that access to a socket means access to another device associated with the socket.
  • FIG. 5 is a diagram illustrating information defining an event in a table format.
  • the table 200 includes subject information 202, object information 204, and content information 206.
  • the subject information 202 includes a process name 208 and a path 210.
  • the object information 204 includes a type 212 and identification information 214.
  • the first event information is information related to an event that has occurred in the standard device 20.
  • the first event information indicates information (subject information, object information, and content information) that can identify the event described above for each event that has occurred in the standard device 20.
  • the event generated by the process varies depending on the execution environment such as the OS type and version. Therefore, it is preferable to prepare the first event information for each execution environment. Therefore, a plurality of standard devices 20 having different execution environments are prepared, and first event information is generated for each standard device 20.
  • the first event information includes information representing the execution environment (hereinafter, execution environment information).
  • the execution environment information indicates, for example, the OS type, version number, build number, and target CPU architecture.
  • the acquisition unit 2020 acquires the first event information generated for the standard device 20 having an execution environment that matches the execution environment of the determination target device 10. However, it is also conceivable that there is no first event information generated for the standard device 20 in the execution environment that matches the execution environment of the determination target device 10. In this case, for example, the acquisition unit 2020 acquires the first event information generated for the standard device 20 having the highest degree of matching with the execution environment of the determination target device 10.
  • the matching degree of the execution environment is calculated, for example, as a weighted average of the matching degree of each piece of information (such as the type of OS and the version described above) shown in the execution environment information.
  • the degree of coincidence of each element is, for example, 1 when they coincide, and 0 when they do not coincide.
  • the weights are set in advance so that more important elements are given higher weights. For example, since the type of OS is considered to be more important than the version of OS, the weight given to the degree of matching of the type of OS is made larger than the weight given to the degree of matching of the version of OS.
  • the second event information is information related to an event that has occurred in the determination target device 10.
  • the format of the second event information can be the same as the format of the first event information.
  • the first event information and the second event information may be information that can identify each event, and do not necessarily have the same format.
  • the acquisition unit 2020 acquires the first event information (S102).
  • the acquisition unit 2020 acquires the first event information from a storage device that stores the first event information.
  • This storage device may be provided outside (for example, the standard device 20) of the information processing device 2000, or may be provided inside.
  • the acquisition unit 2020 may receive first event information transmitted from another device (for example, the standard device 20).
  • the acquisition unit 2020 acquires the second event information (S104).
  • the acquisition unit 2020 acquires the second event information from a storage device that stores the second event information.
  • This storage device may be provided outside (for example, the determination target device 10) of the information processing device 2000, or may be provided inside.
  • the acquisition unit 2020 may receive second event information transmitted from another device (for example, the determination target device 10).
  • the classification unit 2040 uses the first event information to classify each event indicated in the second event information into a first type and a second type (S106).
  • first event information information on events that have occurred in the standard device 20 is shown. Therefore, the classification unit 2040 compares each event indicated in the second event information with the event indicated in the first event information, so that each event occurs in the standard device 20. It is determined whether or not they match.
  • the classification unit 2040 classifies events determined to match any of the events generated in the standard device 20 among the events indicated in the second event information into the first class. On the other hand, the classification unit 2040 classifies events determined as not matching any event generated in the standard device 20 among the events indicated in the second event information into the second class.
  • a method for determining whether or not an event that has occurred in the determination target apparatus 10 matches an event that has occurred in the standard apparatus 20 will be described.
  • an event can be identified by three elements: a subject, an object, and an activity content. Therefore, the classification unit 2040 determines whether or not the events match by comparing the event generated in the determination target device 10 and the event generated in the standard device 20 with respect to these three elements. The classification unit 2040 determines that these events match when both the compared events match for any of these three elements. On the other hand, if the two events to be compared do not match in any element, the classification unit 2040 determines that these events do not match.
  • the classification unit 2040 compares the subject information of the event indicated by the first event information with the subject information of the event indicated by the second event information.
  • the subject of the event is the process name of the process that generated the event, the name of the execution file, the path of the execution file, and the like. Whether these pieces of information match can be determined using, for example, an algorithm that determines the similarity of character strings.
  • the classification unit 2040 determines that the subjects of these events match each other.
  • the classification unit 2040 determines that the subjects of these events do not match each other.
  • the path of the execution file having the same content may be different between the determination target device 10 and the standard device 20. More specifically, the path of the execution file “fileA.exe” is “C: ⁇ dir1 ⁇ fileA.exe” in the determination target apparatus 10, while “D: ⁇ dir2 ⁇ fileA.exe” in the standard apparatus 20. This is the case. Therefore, for example, when the subject information indicates the path of the execution file, the classification unit 2040 may determine the match of the subject of the event by comparing only the file name portion of the path of the execution file.
  • the classification unit 2040 compares the object information of the event indicated by the first event information with the object information of the event indicated by the second event information. When the object information of these events matches each other, the classification unit 2040 determines that the objects of these events match each other. On the other hand, when the object information of these events does not match each other, the classification unit 2040 determines that the objects of these events do not match each other. However, when the object information indicates the path of the execution file, as described above, only the file name portion may be compared.
  • the classification unit 2040 compares the event content information indicated by the first event information with the event content information indicated by the second event information. When the content information of these events match each other, the classification unit 2040 determines that the activity content of these events match each other. On the other hand, when the content information of these events does not match each other, the classification unit 2040 determines that the activity contents of these events do not match each other.
  • the first model includes 1) a score based on the number or frequency of occurrence of each event classified as the first class, and 2) a first threshold.
  • the score is determined for each event. Whether the determination target event is a warning target is determined by comparing the score of the event with the first threshold value. When the score of the determination target event is equal to or less than the first threshold, the first model determines that the event is a warning target. On the other hand, when the score of the determination target event is larger than the first threshold, the first model determines that the event is not a warning target.
  • the second model is composed of 1) a score based on the number or frequency of occurrence of each event classified as the second class, and 2) a second threshold. Again, the score is set for each event. Whether or not the determination target event is a warning target is determined by comparing the score of the event with the second threshold value. When the score of the determination target event is equal to or less than the second threshold, the second model determines that the event is a warning target. On the other hand, when the score of the determination target event is larger than the second threshold, the second model determines that the event is not a warning target.
  • the event score is determined based on the number of event occurrences.
  • the score of the event is set to increase as the number of occurrences of the event increases.
  • the number of occurrences of an event is used as it is as the score of the event.
  • the occurrence number of events may be input to an arbitrary monotonous non-decreasing function, and the output thereof may be used as a score. This function is stored in advance in a storage device accessible from the first learning unit 2060.
  • the event score is determined based on the event occurrence frequency.
  • the score of the event is set to increase as the occurrence frequency of the event increases.
  • the event occurrence frequency is used as the score of the event as it is.
  • an event occurrence frequency may be input to an arbitrary monotonous non-decreasing function, and the output thereof may be used as a score. This function is stored in advance in a storage device accessible from the first learning unit 2060.
  • the first learning unit 2060 learns the first model (S108). Specifically, the 1st learning part 2060 increases the score which a 1st model shows about each event classified into 1st type among the events shown by 2nd event information.
  • the first learning unit 2060 calculates a score based on the number of occurrences of each event classified into the first category among the events indicated in the second event information, and calculates the calculated score. As shown, the first model is learned. Here, the number of occurrences of each event is stored in the storage device.
  • the event occurrence frequency is used as a score.
  • the first learning unit 2060 calculates the occurrence frequency of each event classified into the first class among the events indicated in the second event information. Then, the score of the event is updated with the score based on the occurrence frequency calculated for each event.
  • the occurrence frequency of the event may be the occurrence frequency in the entire period after the determination target device 10 starts the operation, or may be the occurrence frequency in a part of the period.
  • the first learning unit 2060 divides the number of occurrences in the most recent predetermined period by the length of the predetermined period for each event classified as the first class among the events indicated in the second event information. Then, the occurrence frequency of the event is calculated. Note that the number of occurrences of events in the most recent predetermined period can be specified, for example, by storing the occurrence date and time of each event in the storage device.
  • the second learning unit 2080 learns the second model (S110). Specifically, the second learning unit 2080 increases the score in the second model for each event classified as the second class among the events indicated in the second event information.
  • the score update method is the same as that in the first model.
  • Both the first model and the second model are common in that they are used to determine whether an event to be determined is a warning target.
  • the first model is different in that it is used for determination of events classified into the first class, and the second model is used for determination of events classified in the second class.
  • the first type event is likely to be a normal event. Therefore, the first type event is more likely to be an event that does not have to be a warning target than the second type event. Therefore, it is necessary to configure the first model and the second model so that the first type of event is less likely to be a warning target than the second type of event.
  • two methods will be exemplified as a method for configuring the model in this way.
  • the size of the first threshold value that is a criterion for determination in the first model is made smaller than the size of the second threshold value that is a criterion for determination in the second model.
  • the first threshold value in the first model is Th1
  • the second threshold value in the second model is Th2.
  • Th1 and Th2 are determined so that Th1 ⁇ Th2.
  • an event whose score is equal to or less than Th1 is a warning target regardless of whether it is classified into the first class or the second class.
  • an event whose score is greater than Th1 and less than Th2 is not a warning target if it is classified as the first class, but is a warning target if it is classified as the second class. From this, it can be said that the first type of event is less likely to be a warning target than the second type of event.
  • the first threshold value and the second threshold value can be arbitrarily set under the condition that the first threshold value is smaller than the second threshold value.
  • These threshold values are stored in advance in a storage device accessible from the information processing apparatus 2000.
  • Second Method By making a difference in the degree of learning between the first model and the second model, the first type of event is less likely to be a warning target than the second type of event. Specifically, the amount of increase in the score of the first type event in the learning of the first model is made larger than the amount of increase in the score of the second type of event in the learning of the second model.
  • event scores are defined as follows.
  • S1i represents the score of the first type of event i
  • ni ⁇ ⁇ represents the number of occurrences of event i
  • S2j represents the score of the second type of event j
  • nj represents the number of occurrences of event j.
  • ⁇ and ⁇ are positive real numbers, respectively.
  • f (ni) is a function that converts the number of occurrences ni of the first type of event i into a score S1i
  • g (nj) is a function that converts the number of occurrences ⁇ ⁇ ⁇ ⁇ nj of the second type of event j into a score S2j. All of these correspond to the monotonic non-decreasing function described above.
  • the score for the first type event is a value obtained by multiplying the number of occurrences of the event by ⁇ . Therefore, the score for the first type of event increases by ⁇ as the number of occurrences increases by one.
  • the score for the second type of event is a value obtained by multiplying the number of event occurrences by ⁇ . Therefore, the score for the second type of event increases by ⁇ as the number of occurrences increases by one. Since ⁇ > ⁇ , the increase amount of the score of the first type event is larger than the increase amount of the score of the second type event.
  • the first threshold value and the second threshold value may be the same value.
  • the first threshold value may be smaller than the second threshold value.
  • the first model and the second model may be generated in advance and stored in the storage device, or may be generated by the information processing device 2000. In the latter case, for example, when the first learning unit 2060 performs learning of the first model, if the first model has not yet been generated (if the first model is not stored in the storage device), the first model Is generated. Similarly, for example, when the second learning unit 2080 performs learning of the second model, if the second model has not yet been generated (if the second model is not stored in the storage device), the second model 2080 Generate.
  • FIG. 2 The functional configuration of the information processing apparatus 2000 according to the second embodiment is represented by FIG. 2, similarly to the information processing apparatus 2000 according to the first embodiment. Except for the items described below, the information processing apparatus 2000 according to the second embodiment has the same functions as those of the information processing apparatus 2000 according to the first embodiment.
  • the first model is generated based on an event that has occurred in the standard device 20.
  • the first learning unit 2060 learns about the first model.
  • the acquisition unit 2020 of Embodiment 2 acquires the first model.
  • the 1st learning part 2060 of Embodiment 2 learns the acquired 1st model.
  • the method of generating the first model based on the event that has occurred in the standard device 20 is the same as the method of generating the first model by the first learning unit 2060 in the first embodiment.
  • the first model is generated using Equation (1) described above.
  • the generation of the first model may be performed by the information processing apparatus 2000 or may be performed by an apparatus other than the information processing apparatus 2000.
  • the information processing apparatus 2000 acquires information representing an event that has occurred in the standard apparatus 20 as in the table 200 illustrated in FIG. One model is generated.
  • the operation of the information processing apparatus 2000 is started in a state where learning of the first model is performed to some extent using an event generated in the standard apparatus 20. Therefore, the first type of event can be determined with high accuracy at an early stage as compared with the case where the first model is not learned in advance.
  • the standard device 20 since information about events that have occurred in the standard device 20 can be used not only for classification of events that have occurred in the determination target device 10, but also for learning the first model, the standard device 20 can be used more effectively. .
  • Example of hardware configuration The hardware configuration of a computer that implements the information processing apparatus 2000 according to the second embodiment is represented by, for example, FIG.
  • the storage device 1080 of the computer 1000 that implements the information processing apparatus 2000 of this embodiment further stores a program module that implements the functions of the information processing apparatus 2000 of this embodiment.
  • FIG. 6 is a block diagram illustrating a functional configuration of the information processing apparatus 2000 according to the third embodiment. Except for the items described below, the information processing apparatus 2000 of the third embodiment has the same functions as the information processing apparatus 2000 of the first or second embodiment.
  • the information processing apparatus 2000 acquires information regarding the determination target event, and determines whether the determination target event is a warning target. Then, when the determination target event is a warning target, predetermined warning information is output.
  • the information processing apparatus 2000 includes a determination unit 2120 and a warning unit 2140.
  • the acquisition unit 2020 of the third embodiment acquires information related to the determination target event.
  • the classification unit 2040 determines whether the determination target event is classified as a first type or a second type using the first event information. Specifically, if the determination target event matches any of the events generated in the standard device 20, the determination target event is classified into the first class, and any event generated in the standard device 20 is determined as the determination target event. If they do not agree with each other, the determination target event is classified into the second class.
  • the determination unit 2120 determines whether the determination target event is a warning target event using the first model. In addition, when the determination target event is classified into the second class, the determination unit 2120 determines whether or not the determination target event is a warning target event using the second model.
  • the method for determining whether the first type of event is a warning target using the first model and the method for determining whether the second type of event is a warning target based on the second model are implemented. This is as described in the first embodiment.
  • the warning unit 2140 outputs predetermined warning information when it is determined that the determination target event is a warning target event.
  • the information processing apparatus 2000 of this embodiment it is classified whether the determination target event is an event that has occurred in the standard apparatus 20, and the determination target event is a warning target by using a model corresponding to the classification. It is determined whether or not there is. Therefore, it is possible to determine with high accuracy whether or not the determination target event should be a warning target as compared with a case where such classification is not considered. Further, since warning information is output when it is determined that the determination target event is a warning target, an administrator of the determination target device 10 or the like may indicate that an abnormality may have occurred in the determination target device 10. Can be grasped appropriately.
  • Example of hardware configuration The hardware configuration of a computer that implements the information processing apparatus 2000 according to the third embodiment is represented by, for example, FIG.
  • the storage device 1080 of the computer 1000 that implements the information processing apparatus 2000 of this embodiment further stores a program module that implements the functions of the information processing apparatus 2000 of this embodiment.
  • FIG. 7 is a flowchart illustrating the flow of processing executed by the information processing apparatus 2000 according to the third embodiment.
  • the acquisition unit 2020 acquires first event information (S201).
  • the acquisition unit 2020 acquires information about the determination target event (S202).
  • the classification unit 2040 determines whether the determination target event is classified as a first type or a second type (S204).
  • the determination unit 2120 determines whether the determination target event is a warning target using the first model (S206).
  • the determination target event is a warning target (S206: warning target)
  • the warning unit 2140 outputs warning information (S208). If the determination target event is not a warning target (S206: Not a warning target), the process in FIG. 7 ends.
  • the determination unit 2120 determines whether the determination target event is a warning target using the second model (S210, determination).
  • the warning unit 2140 outputs warning information (S208), and when the determination target event is not a warning target (S210: NO), the processing in FIG.
  • the warning information is a character string, an image, or a sound that notifies that an event to be warned has occurred.
  • the warning information preferably includes information (subject information, object information, and content information) that identifies a determination target event determined to be a warning target.
  • the warning information is output to a computer used by an administrator of the determination target device 10 or the like.
  • This computer may be a stationary computer (desktop PC or the like) or a portable computer (such as a portable terminal).
  • the warning information may be transmitted to an administrator of the determination target device 10 or the like. In this case, for example, the warning information is transmitted to the administrator or the like of the determination target device 10 by e-mail or the like.
  • the warning information may be stored in a storage device accessible from a computer used by the administrator of the determination target device 10 or the like. More specifically, in this storage device, when a warning target event occurs, a log file for storing information related to the event is prepared. When it is determined that the determination target event is a warning target, the warning unit 2140 adds information regarding the determination target event to the log file.
  • the computer used by the administrator of the determination target device 10 can acquire information related to the warning target event that has occurred in the determination target device 10 by referring to the log file.
  • the determination target event may be the same as or different from the event used for model learning.
  • the information processing apparatus 2000 determines whether or not the event indicated by the second event information is a warning target and learns a model using the event. For this reason, at the initial stage where learning of the model for the determination target device 10 is started, many events indicated in the second event information can be targeted for warning. However, by continuing the operation of the determination target device 10, the learning of the model progresses, and events that frequently occur in the determination target device 10 are no longer subject to warning. On the other hand, an event that rarely occurs in the determination target device 10 remains a warning target. By using the determination target event for learning the model in this way, the model can be matured while operating the determination target device 10.
  • either the determination by the determination unit 2120 or the model learning may be performed first.
  • the warning information may not be output until a predetermined condition such that a predetermined period elapses after the operation of the determination target device 10 is satisfied.
  • One method of preventing the warning information from being output from the information processing apparatus 2000 is a method of not operating the warning unit 2140 until the predetermined condition is satisfied.
  • the warning unit 2140 is configured to “output warning information only when a determination target event is determined as a warning target and the predetermined condition is satisfied”.
  • the warning information output method may be changed depending on whether or not the predetermined condition is satisfied. For example, when a predetermined condition is satisfied, warning information in a form that can be recognized early by an administrator of the determination target apparatus 10 is output. For example, when it is determined that the determination target event is a warning target, the warning unit 2140 transmits warning information to a terminal used by an administrator of the determination target device 10 or the like if a predetermined condition is satisfied, When predetermined conditions are not satisfied, warning information is output to a log file.
  • warning information in a form that can be recognized early by an administrator of the determination target apparatus 10 requires a large amount of computer resources. Therefore, there is an effect that it is possible to reduce computer resources consumed in a situation where a lot of warning information is output because the model is not mature.
  • the predetermined condition is not limited to the condition that a predetermined period elapses after the operation of the determination target device 10 is started.
  • a condition that the number of events used for learning is a predetermined number or more can be adopted as this condition.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

情報処理装置(2000)は、判定対象装置(10)で発生した各イベントを、標準装置(20)でも発生したイベント(第1類のイベント)と、標準装置(20)では発生しなかったイベント(第2類のイベント)に分類する。ここで、判定対象装置(10)で発生したイベントが警告対象であるか否かを判定するためのモデルとして、標準装置(20)でも発生したイベントについての判定に利用される第1モデルと、標準装置(20)では発生しなかったイベントについての判定に利用される第2モデルとが用いられる。情報処理装置(2000)は、第1類のイベントを用いて第1モデルの学習を行う。さらに情報処理装置(2000)は、第2類のイベントを用いて第2モデルの学習を行う。

Description

情報処理装置、制御方法、及びプログラム
 本発明は異常検知に関する。
 コンピュータシステムが正常に動作しているかどうかを監視するシステムが開発されている。例えば特許文献1には、観察対象ソフトウエアが正常な動作をしているときの正常動作モデルを学習しておき、観察対象ソフトウエアの動作をそのモデルと比較することで、監視対象ソフトウエアへの不正侵入による異常の発生を検知するシステムを開示している。
特開2008-129714号公報
 特許文献1の手法では、監視したいシステムが正常な動作をしているときに、そのシステムのモデルを作成しておかなければならない。すなわち、モデルを作成する段階では、監視したいシステムが正常である必要がある。
 本発明は、上記の課題に鑑みてなされたものである。本発明の目的の一つは、監視対象のシステムの動作が正常であるか否かの監視を、そのシステムの動作が正常であるか否かが不明な状況から開始することができる技術を提供することである。
 本発明の情報処理装置は、1)標準装置においてプロセスが発生させたイベントに関する情報を示す第1イベント情報と、判定対象装置においてプロセスが発生させたイベントに関する情報を示す第2イベント情報とを取得する取得部と、2)第1イベント情報を利用して、第2イベント情報に示される各イベントを、標準装置でも発生した第1類のイベントと、標準装置では発生しなかった第2類のイベントとに分類する分類部と、3)第1類に分類されるイベントが警告対象のイベントであるか否かを判定する第1モデルを、第1類に分類されたイベントに関する第2イベント情報を用いて学習させる第1学習部と、4)第2類に分類されるイベントが警告対象のイベントであるか否かを判定する第2モデルを、第2類に分類されたイベントに関する第2イベント情報を用いて学習させる第2学習部と、を有する。
 本発明の制御方法は、コンピュータによって実行される制御方法である。当該制御方法は、1)標準装置においてプロセスが発生させたイベントに関する情報を示す第1イベント情報と、判定対象装置においてプロセスが発生させたイベントに関する情報を示す第2イベント情報とを取得する取得ステップと、2)第1イベント情報を利用して、第2イベント情報に示される各イベントを、標準装置でも発生した第1類のイベントと、標準装置では発生しなかった第2類のイベントとに分類する分類ステップと、3)第1類に分類されるイベントが警告対象のイベントであるか否かを判定する第1モデルを、第1類に分類されたイベントに関する第2イベント情報を用いて学習させる第1学習ステップと、4)第2類に分類されるイベントが警告対象のイベントであるか否かを判定する第2モデルを、第2類に分類されたイベントに関する第2イベント情報を用いて学習させる第2学習ステップと、を有する。
 本発明のプログラムは、本発明の制御方法が有する各ステップをコンピュータに実行させる。
 本発明によれば、監視対象のシステムの動作が正常であるか否かの監視を、そのシステムの動作が正常であるか否かが不明な状況から開始することができる技術が提供される。
 上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
実施形態1の情報処理装置の動作の概要を表す図である。 実施形態1の情報処理装置の構成を例示する図である。 情報処理装置を実現するための計算機を例示する図である。 実施形態1の情報処理装置によって実行される処理の流れを例示するフローチャートである。 イベントを定義する情報をテーブル形式で例示する図である。 実施形態3の情報処理装置の機能構成を例示するブロック図である。 実施形態3の情報処理装置によって実行される処理の流れを例示するフローチャートである。
 以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
[実施形態1]
<概要>
 図1は、実施形態1の情報処理装置の動作の概要を表す図である。図1は情報処理装置2000の動作についての理解を容易にするための概念的な図であり、情報処理装置2000の動作を具体的に限定するものではない。
 情報処理装置2000は、判定対象装置10においてプロセスが発生させたイベントについて、そのイベントが警告対象のイベントであるか否かを判定するモデルの学習(更新)を行う。ここでいう「プロセス」とは、実行中のプログラムのことである。また、「イベント」とは、プロセスが何らかの客体(他のプロセスやファイルなど)に対して行った活動である。例えば或るプロセスが発生させるイベントは、他のプロセスの起動、他のプロセスとの通信、又はファイルへのアクセスなどである。
 警告対象のイベントとしては、種々のイベントを採用できる。例えば警告対象のイベントは、マルウエアが関与している蓋然性が高いイベントなど、セキュリティ面での危険度が高いと推測されるイベントである。警告対象のイベントのその他の例については後述する。
 ここで上記モデルとして、第1モデルと第2モデルという2つのモデルが利用される。第1モデルは、判定対象のイベントが標準装置20でも発生したイベントである場合に利用される。一方、第2モデルは、判定対象のイベントが標準装置20では発生しなかったイベントである場合に利用される。以下、判定対象装置10で発生したイベントのうち、標準装置20でも発生したイベントを第1類のイベントと呼び、標準装置20では発生しなかったイベントを第2類のイベントと呼ぶ。
 ここで、標準装置20は、正常に動作する蓋然性が高い(不具合が生じている可能性が低い)と考えられるコンピュータである。例えば、マルウエアが関与している蓋然性が高いイベントを警告対象とする場合、マルウエアに感染している蓋然性が低いコンピュータが標準装置20として利用される。
 情報処理装置2000は、モデルの学習を行うために、標準装置20で発生したイベントに関する情報(以下、第1イベント情報)と、判定対象装置10において発生したイベントに関する情報(以下、第2イベント情報)を取得する。情報処理装置2000は、第1イベント情報を用いて、第2イベント情報に示されるイベント(すなわち、判定対象装置10において発生したイベント)を、第1類のイベントと第2類のイベントとに分類する。情報処理装置2000は、第1類に分類されたイベントの第2イベント情報を利用して、第1モデルの学習を行う。また、情報処理装置2000は、第2類に分類されたイベントの第2イベント情報を利用して、第2モデルの学習を行う。
<作用効果>
 標準装置20は正常に動作する蓋然性が高いコンピュータであるため、標準装置20でも発生するイベントは、標準装置20では発生しないイベントと比較して、正常なイベントである蓋然性が高いと考えられる。そのため、判定対象装置10で発生したイベントが警告対象であるか否かを判定する際に、そのイベントが標準装置20でも発生したものであるか否かを考慮することで、警告対象であるか否かを高精度に判定することができる。
 そこで情報処理装置2000では、判定対象装置10において発生したイベントが警告対象イベントであるか否かを判定するためのモデルとして、標準装置20でも発生したイベント(第1類のイベント)についての判定を行う第1モデルと、標準装置20では発生しなかったイベント(第2類のイベント)についての判定を行う第2モデルという2種類のモデルとが用意される。そして、第1モデルについては、第1類に分類されるイベントを用いて学習が行われ、第2モデルについては、第2類に分類されるイベントを用いて学習が行われる。このようにすることで、判定対象装置10で発生したイベントが警告対象であるか否かを判定する際に、標準装置20でも発生したイベントと標準装置20では発生しなかったイベントとを区別して判定できるようになるため、判定対象装置10で発生したイベントが警告対象であるか否かを高精度に判定することができる。
 さらに本実施形態の情報処理装置2000では、モデルの作成において、正常な動作を行う装置として、判定対象装置10ではなく標準装置20を利用する。そのため、モデルの学習を始めるタイミングで既に判定対象装置10が異常な状態になっていたとしても、高精度なモデルを得ることができる。よって、監視対象の装置(判定対象装置10)が正常であるか否かが不明な状況から情報処理装置2000の運用を開始することができる。
 以下、本実施形態の情報処理装置2000についてさらに詳細に説明する。
<情報処理装置2000の機能構成の例>
 図2は、実施形態1の情報処理装置2000の構成を例示する図である。情報処理装置2000は、取得部2020、分類部2040、第1学習部2060、及び第2学習部2080を有する。取得部2020は、第1イベント情報と第2イベント情報を取得する。第1イベント情報は、標準装置20においてプロセスが発生させたイベントに関する情報である。第2イベント情報は、判定対象装置10においてプロセスが発生させたイベントに関する情報である。
 分類部2040は、第1イベント情報を利用して、第2イベント情報に示される各イベントを、第1類のイベントと第2類のイベントとに分類する。前述したように、第1類のイベントは、標準装置20でも発生したイベントである。また、第2類のイベントは、標準装置20では発生しなかったイベントである。
 第1学習部2060は、第1類に分類されたイベントに関する第2イベント情報を用いて、第1モデルの学習を行う。第2学習部2080は、第2類に分類されたイベントに関する第2イベント情報を用いて、第2モデルの学習を行う。
<情報処理装置2000のハードウエア構成>
 情報処理装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、情報処理装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
 図3は、情報処理装置2000を実現するための計算機1000を例示する図である。計算機1000は任意の計算機である。例えば計算機1000は、Personal Computer(PC)、サーバマシン、タブレット端末、又はスマートフォンなどである。計算機1000は、情報処理装置2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
 計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。プロセッサ1040は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又は FPGA(Field-Programmable Gate Array)などのプロセッサである。メモリ1060は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス1080は、ハードディスクドライブ、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。ただし、ストレージデバイス1080は、RAM など、主記憶装置を構成するハードウエアと同様のハードウエアで構成されてもよい。
 入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。ネットワークインタフェース1120は、計算機1000を通信網に接続するためのインタフェースである。この通信網は、例えば LAN(Local Area Network)や WAN(Wide Area Network)である。ネットワークインタフェース1120が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。
 ストレージデバイス1080は、情報処理装置2000の機能構成部を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールをメモリ1060に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
<判定対象装置10について>
 判定対象装置10は、PC、サーバマシン、タブレット端末、又はスマートフォンなどといった任意のコンピュータである。判定対象装置10は、1つであってもよいし、複数であってもよい。
 ここで、第1モデルと第2モデルは、複数の判定対象装置10で共有されてもよい。この場合、情報処理装置2000は、第1モデルと第2モデルが共有される複数の判定対象装置10それぞれから第2イベント情報を取得して、モデルの学習を行う。
<標準装置20について>
 標準装置20は、PC、サーバマシン、タブレット端末、又はスマートフォンなどといった任意のコンピュータである。前述したように、標準装置20は、正常に動作する蓋然性が高いコンピュータである。
 例えば標準装置20は、OS(Operating System)をクリーンインストールした後であって運用が開始される前のコンピュータである。ただし、標準装置20は必ずしも運用前のコンピュータである必要はなく、不具合が生じる蓋然性が低い状況で運用されているコンピュータであってもよい。例えばこのようなコンピュータは、ネットワークへの接続が一般ユーザのコンピュータと比較して厳しく制限されているコンピュータや、セキュリティのエキスパートによって運用されているコンピュータなど、マルウエアに感染する蓋然性が低い状況で運用されているコンピュータである。
<処理の流れ>
 図4は、実施形態1の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。取得部2020は第1イベント情報を取得する(S102)。取得部2020は、第2イベント情報を取得する(S104)。分類部2040は、第2イベント情報に示される各イベントを、第1類と第2類に分類する(S106)。第1学習部2060は、第1類に分類されたイベントに関する第2イベント情報を用いて第1モデルの学習を行う(S108)。第2学習部2080は、第2類に分類されたイベントに関する第2イベント情報を用いて、第2モデルの学習を行う(S110)。
 ここで、判定対象装置10で発生したイベントを利用したモデルの学習は、判定対象装置10の運用中に繰り返し行われることが好適である。そのため、例えば情報処理装置2000は、第2イベント情報の取得を繰り返し行い、第2イベント情報を取得する度にその第2イベント情報を用いたモデルの学習(S106からS110)を行うようにする。
<イベントについて>
 前述したように、イベントとは、プロセスが何らかの客体に対して行った活動である。或るプロセスが他のプロセスを客体として活動する場合、これらのプロセスは互いに同一の OS(Operating System)上で動作するものであってもよいし、互いに異なる OS 上で動作するものであってもよい。後者の例としては、例えば、ソケットインタフェースを利用することで、或るプロセスが他の OS 上で動作する別のプロセスと通信を行うことが考えられる。
 例えばイベントは、主体、客体、及び活動内容という3つの要素を表す情報によって識別される。例えば主体を表す情報(以下、主体情報)は、そのイベントを発生させたプロセスを識別する情報である。以下、プロセスを識別する情報をプロセス識別情報と呼ぶ。プロセス識別情報は、例えば、プロセスの名称を示す。その他にも例えば、プロセス識別情報は、プロセスに対応するプログラムの実行ファイルの名称やパスなどである。
 客体を表す情報(以下、客体情報)は、例えば、その客体の種別及び識別情報である。客体の種別は、例えば、プロセス、ファイル、又は他の装置などである。客体がプロセスである場合、客体情報にはそのプロセスのプロセス識別情報が含まれる。
 客体がファイルである場合、客体情報には、そのファイルを識別する情報(以下、ファイル識別情報)が含まれる。ファイル識別情報は、例えばそのファイルの名称やパスなどである。また、客体がファイルである場合、客体情報にはそのファイルのハッシュ値が含まれていてもよい。
 客体が他の装置である場合、例えば客体情報には、当該他の装置の識別情報(以下、装置識別情報)が含まれる。装置識別情報は、例えば、IP(Internet Protocol)や MAC(Media Access Control)アドレスなどのネットワークアドレスである。なお、ここでいう他の装置とは、物理的な装置だけでなく、仮想的な装置(仮想マシンなど)も含まれる。また、客体が他の装置である場合、客体情報には、装置識別情報と共に、又は装置識別情報に代えて、客体の数(すなわち、イベントの主体であるプロセスが通信を行った他の装置の数)が示されてもよい。
 活動内容を表す情報(以下、内容情報)は、例えば、種々ある活動内容に予め割り当てておいた識別子である。例えば、「プロセスを起動する」、「プロセスを停止する」、「ファイルをオープンする」、「ファイルからデータを読み込む」、「ファイルにデータを書き込む」、「ソケットをオープンする」、「ソケットからデータを読み込む」、又は「ソケットにデータを書き込む」などといった活動の内容に、互いに異なる識別子を割り当てておく。なお、ソケットに対するアクセスは、そのソケットに対応づけられた他の装置へのアクセスを意味する。
 図5は、イベントを定義する情報をテーブル形式で例示する図である。図5のテーブルを、テーブル200と呼ぶ。テーブル200は、主体情報202、客体情報204、及び内容情報206を含む。主体情報202は、プロセス名208及びパス210が含まれている。客体情報204には、種別212及び識別情報214が含まれている。
<第1イベント情報について>
 第1イベント情報は、標準装置20で発生したイベントに関する情報である。第1イベント情報は、標準装置20で発生した各イベントについて、前述したイベントを識別できる情報(主体情報、客体情報、及び内容情報)を示す。
 ここで、プロセスが発生させるイベントは、OS の種類やバージョンなどといった実行環境によって異なる。そこで第1イベント情報は、実行環境ごとに用意しておくことが好適である。そこで、実行環境がそれぞれ異なる複数の標準装置20を用意し、それぞれの標準装置20について第1イベント情報を生成しておく。この場合、第1イベント情報は、実行環境を表す情報(以下、実行環境情報)も含む。実行環境情報は、例えば、OS の種類、バージョン番号、ビルド番号、及び対象の CPU アーキテクチャを示す。
 取得部2020は、判定対象装置10の実行環境と一致する実行環境の標準装置20について生成された第1イベント情報を取得することが好適である。ただし、判定対象装置10の実行環境と一致する実行環境の標準装置20について生成された第1イベント情報がないことも考えられる。この場合、例えば取得部2020は、判定対象装置10の実行環境との一致度合いが最も高い標準装置20について生成された第1イベント情報を取得する。
 実行環境の一致度合いは、例えば、実行環境情報に示される各情報(前述した OS の種類やバージョンなど)の一致度合いの加重平均として算出される。各要素の一致度合いは、例えば、一致する場合には1とし、一致しない場合には0とする。重みについては、重要な要素ほど大きな重みが付されるように、予め設定しておく。例えば、OS の種類は OS のバージョンよりも重要であると考えられるため、OS の種類の一致度合いに対して付す重みは、OS のバージョンの一致度合いに対して付す重みよりも大きくしておく。
<第2イベント情報について>
 第2イベント情報は、判定対象装置10で発生したイベントに関する情報である。第2イベント情報の形式には、第1イベント情報の形式と同様のものを採用できる。ただし、第1イベント情報と第2イベント情報は、それぞれイベントの識別ができる情報であればよく、必ずしも同じ形式の情報である必要はない。
<第1イベント情報の取得:S102>
 取得部2020は第1イベント情報を取得する(S102)。取得部2020が第1イベント情報を取得する方法は様々である。例えば取得部2020は、第1イベント情報が記憶されている記憶装置から、第1イベント情報を取得する。この記憶装置は、情報処理装置2000の外部(例えば標準装置20)に設けられていてもよいし、内部に設けられていてもよい。その他にも例えば、取得部2020は、他の装置(例えば標準装置20)から送信される第1イベント情報を受信してもよい。
<第2イベント情報の取得:S104>
 取得部2020は第2イベント情報を取得する(S104)。例えば取得部2020は、第2イベント情報が記憶されている記憶装置から、第2イベント情報を取得する。この記憶装置は、情報処理装置2000の外部(例えば判定対象装置10)に設けられていてもよいし、内部に設けられていてもよい。その他にも例えば、取得部2020は、他の装置(例えば判定対象装置10)から送信される第2イベント情報を受信してもよい。
<イベントの分類:S106>
 分類部2040は、第1イベント情報を用いて、第2イベント情報に示される各イベントを、第1類と第2類とに分類する(S106)。ここで、第1イベント情報には、標準装置20において発生したイベントの情報が示されている。そこで、分類部2040は、第2イベント情報に示されている各イベントを、第1イベント情報に示されているイベントと比較することで、各イベントが標準装置20で発生したいずれかのイベントと一致しているか否かを判定する。分類部2040は、第2イベント情報に示されるイベントのうち、標準装置20で発生したいずれかのイベントと一致すると判定されたイベントを、第1類に分類する。一方で、分類部2040は、第2イベント情報に示されるイベントのうち、標準装置20で発生したいずれのイベントとも一致しないと判定されたイベントを、第2類に分類する。
<<イベントの比較について>>
 判定対象装置10で発生したイベントと標準装置20で発生したイベントとが一致しているか否かを判定する方法について説明する。前述したように、イベントは、主体、客体、及び活動内容という3つの要素で識別できる。そこで分類部2040は、判定対象装置10で発生したイベントと、標準装置20で発生したイベントを、これらの3つの要素について比較することで、イベント同士が一致しているか否かを判定する。分類部2040は、対比する両イベントがこれら3つの要素のいずれについても一致する場合に、これらのイベントが一致すると判定する。一方、対比する両イベントがいずれかの要素において一致しない場合、分類部2040は、これらのイベントが一致しないと判定する。
<<<主体の一致>>>
 分類部2040は、第1イベント情報が示すイベントの主体情報と、第2イベント情報が示すイベントの主体情報とを比較する。ここで前述したように、イベントの主体は、イベントを発生させたプロセスのプロセス名、実行ファイルの名称、実行ファイルのパスなどである。これらの情報が一致するか否かは、例えば、文字列の類似度を判定するアルゴリズムを利用して判定することができる。
 例えば分類部2040は、これらのイベントの主体情報が互いに一致する場合、これらのイベントの主体が互いに一致すると判定する。一方、これらのイベントの主体情報が互いに一致しない場合、分類部2040は、これらのイベントの主体が互いに一致しないと判定する。
 ただし、実質的には同じイベントであっても、主体情報に差異があることもある。例えば、同内容の実行ファイルのパスは、判定対象装置10と標準装置20とで異なることがある。より具体的には、fileA.exe という実行ファイルのパスが、判定対象装置10では「C:\dir1\fileA.exe」である一方で、標準装置20では「D:\dir2\fileA.exe」であるといったケースである。そこで例えば、主体情報が実行ファイルのパスを示す場合、分類部2040は、実行ファイルのパスのうち、ファイル名の部分のみを比較することで、イベントの主体の一致を判定してもよい。
<<<客体の一致>>>
 分類部2040は、第1イベント情報が示すイベントの客体情報と、第2イベント情報が示すイベントの客体情報とを比較する。これらのイベントの客体情報が互いに一致する場合、分類部2040は、これらのイベントの客体が互いに一致すると判定する。一方、これらのイベントの客体情報が互いに一致しない場合、分類部2040は、これらのイベントの客体が互いに一致しないと判定する。ただし、客体情報が実行ファイルのパスを示す場合、前述したように、ファイル名の部分のみを比較してもよい。
<<<活動内容の一致>>>
 分類部2040は、第1イベント情報が示すイベントの内容情報と、第2イベント情報が示すイベントの内容情報とを比較する。これらのイベントの内容情報が互いに一致する場合、分類部2040は、これらのイベントの活動内容が互いに一致すると判定する。一方、これらのイベントの内容情報が互いに一致しない場合、分類部2040は、これらのイベントの活動内容が互いに一致しないと判定する。
<モデルについての概要>
 第1モデルと第2モデルについて説明する。例えば第1モデルは、1)第1類に分類される各イベントの発生数又は発生頻度に基づくスコア、及び2)第1閾値で構成される。ここで、スコアはイベントごとに定められている。判定対象イベントが警告対象であるか否かの判定は、そのイベントのスコアと第1閾値とを比較することで行われる。判定対象イベントのスコアが第1閾値以下である場合、第1モデルは、そのイベントが警告対象であると判定する。一方、判定対象イベントのスコアが第1閾値より大きい場合、第1モデルは、そのイベントが警告対象でないと判定する。
 同様に、第2モデルは、1)第2類に分類される各イベントの発生数又は発生頻度に基づくスコア、及び2)第2閾値で構成される。ここでも、スコアはイベントごとに定められている。判定対象イベントが警告対象であるか否かの判定は、そのイベントのスコアと第2閾値とを比較することで行われる。判定対象イベントのスコアが第2閾値以下である場合、第2モデルは、そのイベントが警告対象であると判定する。一方、判定対象イベントのスコアが第2閾値より大きい場合、第2モデルは、そのイベントが警告対象でないと判定する。
 ここで、イベントのスコアがイベントの発生数に基づいて定まるものであるとする。この場合、第1モデルと第2モデルにおいて、イベントのスコアは、そのイベントの発生数が多いほど大きくなるようにする。例えば、イベントの発生数をそのままそのイベントのスコアとして用いる。その他にも例えば、任意の単調非減少関数にイベントの発生数を入力し、その出力をスコアとしてもよい。この関数は、予め第1学習部2060からアクセス可能な記憶装置に記憶させておく。
 一方、イベントのスコアがイベントの発生頻度に基づいて定まるものであるとする。この場合、第1モデルと第2モデルにおいて、イベントのスコアは、そのイベントの発生頻度が高いほど大きくなるようにする。例えば、イベントの発生頻度をそのままそのイベントのスコアとして用いる。その他にも例えば、任意の単調非減少関数にイベントの発生頻度を入力し、その出力をスコアとしてもよい。この関数は、予め第1学習部2060からアクセス可能な記憶装置に記憶させておく。
 以上のようなモデルを利用することで、発生数が少ないイベントや発生頻度が低いイベントを、警告対象とすることができる。
<第1モデルの学習:S108>
 第1学習部2060は第1モデルの学習を行う(S108)。具体的には、第1学習部2060は、第2イベント情報に示されるイベントのうち、第1類に分類された各イベントについて、第1モデルが示すスコアを増加させる。
 ここで、イベントの発生数をスコアとして用いるとする。この場合、例えば第1学習部2060は、第2イベント情報に示されるイベントのうち、第1類に分類される各イベントについて、そのイベントの発生数に基づくスコアを算出し、算出後のスコアを示すように第1モデルの学習を行う。ここで、各イベントの発生回数は記憶装置に記憶させておく。
 また、イベントの発生頻度をスコアとして用いるとする。この場合、例えば第1学習部2060は、第2イベント情報に示されるイベントのうち、第1類に分類される各イベントについて、そのイベントの発生頻度を算出する。そして、各イベントについて算出した発生頻度に基づくスコアで、そのイベントのスコアを更新する。
 なお、イベントの発生頻度は、判定対象装置10が動作を開始してからの全期間における発生頻度であってもよいし、一部の期間における発生頻度であってもよい。後者の場合、例えば第1学習部2060は、第2イベント情報に示されるイベントのうち、第1類に分類される各イベントについて、直近所定期間における発生回数をその所定期間の長さで割ることで、そのイベントの発生頻度を算出する。なお、直近所定期間におけるイベントの発生回数は、例えば、各イベントの発生日時を記憶装置に記憶させておくことで特定することができる。
<第2モデルの学習:S110>
 第2学習部2080は第2モデルの学習を行う(S110)。具体的には、第2学習部2080は、第2イベント情報に示されるイベントのうち、第2類に分類された各イベントについて、第2モデルにおけるスコアを増加させる。なお、スコアの更新方法については、第1モデルの場合と同様である。
<第1モデルと第2モデルの違い>
 第1モデルと第2モデルはいずれも、判定対象のイベントが警告対象であるか否かを判定するために利用されるという点で共通する。一方で、第1モデルは、第1類に分類されるイベントについての判定に利用され、第2モデルは、第2類に分類されるイベントについての判定に利用されるという点で相違する。
 ここで前述したように、第1類のイベントは正常なイベントである可能性が高い。よって、第1類のイベントは、第2類のイベントと比較し、警告対象としなくてもよいイベントである可能性が高い。そこで、第1類のイベントの方が第2類のイベントよりも警告対象となりにくいように、第1モデルと第2モデルを構成する必要がある。以下、このようにモデルを構成する方法として、2つの方法を例示する。
<<第1の方法>>
 第1モデルにおいて判定の基準となる第1閾値の大きさを、第2モデルにおいて判定の基準となる第2閾値の大きさよりも小さくする。例えば、第1モデルにおける第1閾値が Th1 であり、第2モデルにおける第2閾値が Th2 であるとする。この場合、Th1 < Th2 となるように Th1 と Th2 を定める。こうすると、スコアが Th1 以下であるイベントは、第1類と第2類のどちらに分類されたとしても警告対象となる。一方で、スコアが Th1 より大きく Th2 未満であるイベントは、第1類に分類されれば警告対象とならないが、第2類に分類されれば警告対象となる。このことから、第1類のイベントの方が第2類のイベントよりも警告対象になりにくいといえる。
 このケースにおいて、第1閾値と第2閾値は、第1閾値が第2閾値よりも小さいという条件の下、任意に設定しておくことができる。これらの閾値は、予め情報処理装置2000からアクセス可能な記憶装置に記憶させておく。
<<第2の方法>>
 第1モデルと第2モデルにおける学習の度合いに差をつけることで、第1類のイベントの方が第2類のイベントよりも警告対象となりにくいようにする。具体的には、第1モデルの学習において第1類のイベントのスコアが増加する量を、第2モデルの学習において第2類のイベントのスコアが増加する量よりも大きくする。例えば、第1モデルと第2モデルのそれぞれにおいて、イベントのスコアを以下のように定義する。
Figure JPOXMLDOC01-appb-M000001
 S1iは、第1類のイベントiのスコアを表し、ni はイベントiの発生回数を表す。S2j は、第2類のイベントjのスコアを表し、nj はイベントjの発生回数を表す。αとβはそれぞれ正の実数である。f(ni) は第1類のイベントiの発生回数 ni をスコア S1i に変換する関数であり、g(nj) は第2類のイベントjの発生回数 nj をスコア S2j に変換する関数である。これらはいずれも、前述した単調非減少関数に相当する。
 上記の数式(1)において、第1類のイベントについてのスコアは、イベントの発生回数にαを乗算した値である。よって、第1類のイベントについてのスコアは、発生回数が1増えることに応じてα増加する。一方、第2類のイベントについてのスコアは、イベントの発生回数にβを乗算した値である。よって、第2類のイベントについてのスコアは、発生回数が1増えることに応じてβ増加する。α>βであるため、第1類のイベントのスコアの増加量は、第2類のイベントのスコアの増加量よりも大きくなる。
 なお、数式(1)において発生回数を発生頻度に置き換えれば、発生頻度に基づいて算出されるスコアを定義することができる。
 ここで、このように第1モデルと第2モデルにおける学習の度合いに差をつけるケースでは、第1閾値と第2閾値は同じ値でよい。ただし、このケースにおいもて、第1閾値を第2閾値よりも小さい値にしてもよい。
<モデルの生成について>
 第1モデルと第2モデルは、予め生成しておいて記憶装置に記憶させておいてもよいし、情報処理装置2000によって生成されてもよい。後者の場合、例えば第1学習部2060は、第1モデルの学習を実行する際、まだ第1モデルが生成されていなければ(第1モデルが記憶装置に記憶されていなければ)、第1モデルの生成を行う。同様に、例えば第2学習部2080は、第2モデルの学習を実行する際、まだ第2モデルが生成されていなければ(第2モデルが記憶装置に記憶されていなければ)、第2モデルの生成を行う。
[実施形態2]
 実施形態2の情報処理装置2000の機能構成は、実施形態1の情報処理装置2000と同様に、図2によって表される。以下で説明する事項を除き、実施形態2の情報処理装置2000は、実施形態1の情報処理装置2000と同様の機能を有する。
 本実施形態では、標準装置20において発生したイベントに基づいて第1モデルを生成しておく。第1学習部2060はこの第1モデルについて学習を行う。そのために、実施形態2の取得部2020は第1モデルを取得する。そして、実施形態2の第1学習部2060は、取得した第1モデルの学習を行っていく。
 なお、標準装置20において発生したイベントに基づいて第1モデルを生成する方法は、実施形態1において第1学習部2060が第1モデルを生成する方法と同様である。例えば、前述した数式(1)を利用して第1モデルを生成する。
 なお、第1モデルの生成は、情報処理装置2000で行われてもよいし、情報処理装置2000以外の装置で行われてもよい。情報処理装置2000が第1モデルを生成する場合、情報処理装置2000は、図5で示したテーブル200のように、標準装置20で発生したイベントを表す情報を取得し、その情報を用いて第1モデルを生成する。
<作用効果>
 本実施形態の情報処理装置2000によれば、標準装置20で発生したイベントを利用して第1モデルの学習が或る程度行われた状態で、情報処理装置2000の運用が開始される。そのため、第1モデルの学習を予め行っておかない場合と比較し、第1類のイベントについて早期に高い精度で判定が行えるようになる。また、標準装置20で発生したイベントについての情報を、判定対象装置10で発生したイベントの分類だけでなく、第1モデルの学習にも利用できるため、標準装置20をより有効活用することができる。
<ハードウエア構成の例>
 実施形態2の情報処理装置2000を実現する計算機のハードウエア構成は、実施形態1と同様に、例えば図3によって表される。ただし、本実施形態の情報処理装置2000を実現する計算機1000のストレージデバイス1080には、本実施形態の情報処理装置2000の機能を実現するプログラムモジュールがさらに記憶される。
[実施形態3]
 図6は、実施形態3の情報処理装置2000の機能構成を例示するブロック図である。以下で説明する事項を除き、実施形態3の情報処理装置2000は、実施形態1又は2の情報処理装置2000と同様の機能を有する。
 実施形態3の情報処理装置2000は、判定対象イベントに関する情報を取得し、判定対象イベントが警告対象であるか否かを判定する。そして、判定対象イベントが警告対象であった場合に、所定の警告情報を出力する。
 そのために、実施形態3の情報処理装置2000は、判定部2120及び警告部2140を有する。また、実施形態3の取得部2020は、判定対象イベントに関する情報を取得する。分類部2040は、第1イベント情報を用いて、上記判定対象イベントが第1類と第2類のいずれに分類されるかを判定する。具体的には、判定対象イベントが標準装置20で発生したイベントのいずれかに一致していれば、判定対象イベントは第1類に分類され、判定対象イベントが標準装置20で発生したいずれのイベントにも一致していなければ、判定対象イベントは第2類に分類される。
 判定部2120は、判定対象イベントが第1類に分類される場合には、第1モデルを用いて、判定対象イベントが警告対象のイベントであるか否かを判定する。また、判定部2120は、判定対象イベントが第2類に分類される場合には、第2モデルを用いて、判定対象イベントが警告対象のイベントであるか否かを判定する。なお、第1類のイベントが警告対象であるか否かを第1モデルによって判定する方法、及び第2類のイベントが警告対象であるか否かを第2モデルによって判定する方法については、実施形態1で説明した通りである。
 警告部2140は、判定対象イベントが警告対象のイベントであると判定された場合に、所定の警告情報を出力する。
<作用効果>
 本実施形態の情報処理装置2000によれば、判定対象イベントが標準装置20でも発生したイベントであるか否かを分類し、その分類に応じたモデルを利用して、判定対象イベントが警告対象であるか否かが判定される。そのため、このような分類を考慮しないケースと比較し、判定対象イベントを警告対象とすべきか否かを高い精度で判定することができる。また、判定対象イベントが警告対象であると判定された場合に警告情報が出力されるため、判定対象装置10において異常が発生している可能性があることを、判定対象装置10の管理者等が適切に把握することができる。
<ハードウエア構成の例>
 実施形態3の情報処理装置2000を実現する計算機のハードウエア構成は、実施形態1と同様に、例えば図3によって表される。ただし、本実施形態の情報処理装置2000を実現する計算機1000のストレージデバイス1080には、本実施形態の情報処理装置2000の機能を実現するプログラムモジュールがさらに記憶される。
<処理の流れ>
 図7は、実施形態3の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。取得部2020は、第1イベント情報を取得する(S201)。取得部2020は、判定対象イベントについての情報を取得する(S202)。分類部2040は、判定対象イベントが第1類と第2類のいずれに分類されるかを判定する(S204)。判定対象イベントが第1類に分類される場合(S204:第1類)、判定部2120は、第1モデルを用いて、判定対象イベントが警告対象であるか否かを判定する(S206)。判定対象イベントが警告対象である場合(S206:警告対象である)、警告部2140は警告情報を出力する(S208)。判定対象イベントが警告対象でない場合(S206:警告対象でない)、図7の処理は終了する。
 判定対象イベントが第2類に分類される場合(S204:第2類)、判定部2120は、第2モデルを用いて、判定対象イベントが警告対象であるか否かを判定する(S210。判定対象イベントが警告対象である場合(S210:YES)、警告部2140は警告情報を出力する(S208)。判定対象イベントが警告対象でない場合(S210:NO)、図7の処理は終了する。
<警告について>
 警告部2140が出力する警告情報としては、様々なものを採用できる。例えば警告情報は、警告対象のイベントが発生したことを通知する文字列、画像、又は音声などである。なお、警告情報には、警告対象であると判定された判定対象イベントを特定する情報(主体情報、客体情報、及び内容情報)を含めることが好適である。
 警告情報の出力先としては、様々な出力先を採用できる。例えば警告情報は、判定対象装置10の管理者等が利用するコンピュータに対して出力される。このコンピュータは、据え置き型のコンピュータ(デスクトップ PC など)であってもよいし、可搬型のコンピュータ(携帯端末など)であってもよい。また、警告情報は、判定対象装置10の管理者等に対して送信されてもよい。この場合、例えば警告情報は、判定対象装置10の管理者等に対してメールなどで送信される。
 その他にも例えば、警告情報は、判定対象装置10の管理者等が利用するコンピュータからアクセス可能な記憶装置に記憶されてもよい。より具体的には、この記憶装置には、警告対象のイベントが発生した場合に、そのイベントに関する情報を記憶するログファイルを用意しておく。警告部2140は、判定対象イベントが警告対象であると判定された場合に、このログファイルに対して、その判定対象イベントに関する情報を追記する。判定対象装置10の管理者等が利用するコンピュータは、このログファイルを参照することで、判定対象装置10で発生した警告対象のイベントに関する情報を取得することができる。
<判定対象イベントについて>
 判定対象イベントは、モデルの学習に利用されるイベントと同じであってもよいし、異なっていてもよい。前者の場合、情報処理装置2000は、第2イベント情報に示されるイベントについて、そのイベントが警告対象であるか否かを判定すると共に、そのイベントを利用したモデルの学習を行う。そのため、判定対象装置10についてモデルの学習を始めた初期の段階では、第2イベント情報に示される多くのイベントが警告対象となりうる。しかしながら、判定対象装置10の運用を継続していくことによってモデルの学習が進み、判定対象装置10において多く発生するイベントについては警告対象にならなくなっていく。一方で、判定対象装置10で発生することが少ないイベントについては、依然として警告対象のままとなる。このように判定対象イベントをモデルの学習のためにも利用することで、判定対象装置10を運用しながらモデルを成熟させていくことができる。
 なお、判定対象イベントをモデルの学習にも利用する場合、判定部2120による判定とモデルの学習のどちらを先に行ってもよい。
 ここで、判定対象イベントをモデルの学習にも利用する場合、前述したように、判定対象装置10の運用を開始した初期の段階では、多くのイベントが警告対象となりうる。そのため、判定対象装置10の運用を開始してから所定期間が経過するといった所定の条件が満たされるまでは警告情報が出力されないようにしてもよい。情報処理装置2000から警告情報が出力されないようにする方法の1つには、上記所定の条件が満たされるまで、警告部2140を動作させないという方法がある。その他の方法としては、警告部2140を「判定対象イベントが警告対象として判定され、なおかつ上記所定の条件が満たされている場合のみ、警告情報を出力する」という構成にするという方法である。
 また、上記所定の条件が満たされているか否かで、警告情報の出力方法を変えてもよい。例えば、所定の条件が満たされている場合には、判定対象装置10の管理者等が早期に認識できる形態の警告情報を出力する。例えば警告部2140は、判定対象イベントが警告対象であると判定された際、所定の条件が満たされている場合には警告情報を判定対象装置10の管理者等が利用する端末へ送信し、所定の条件が満たされていない場合には警告情報をログファイルに出力する。
 このようにすることで、モデルが成熟していないために警告情報が多く出力される状況において、判定対象装置10の管理者等に警告情報を提供しつつも、管理者等が感じる煩わしさを軽減することができる。また一般に、判定対象装置10の管理者等が早期に認識できる形態の警告情報は、その出力に要する計算機資源の量が多くなる。そのため、モデルが成熟していないために警告情報が多く出力される状況において消費される計算機資源を削減できるという効果もある。
 上記所定の条件は、判定対象装置10の運用を開始してから所定期間が経過するという条件に限定されない。例えばこの条件には、学習に利用されたイベントの数が所定数以上となるという条件なども採用できる。
 以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の組み合わせ、又は上記以外の様々な構成を採用することもできる。

Claims (17)

  1.  標準装置においてプロセスが発生させたイベントに関する情報を示す第1イベント情報と、判定対象装置においてプロセスが発生させたイベントに関する情報を示す第2イベント情報とを取得する取得部と、
     前記第1イベント情報を利用して、前記第2イベント情報に示される各イベントを、標準装置でも発生した第1類のイベントと、前記標準装置では発生しなかった第2類のイベントとに分類する分類部と、
     前記第1類に分類されるイベントが警告対象のイベントであるか否かを判定する第1モデルを、前記第1類に分類されたイベントに関する前記第2イベント情報を用いて学習させる第1学習部と、
     前記第2類に分類されるイベントが警告対象のイベントであるか否かを判定する第2モデルを、前記第2類に分類されたイベントに関する前記第2イベント情報を用いて学習させる第2学習部と、を有する情報処理装置。
  2.  警告対象のイベントは、マルウエアが介在するイベントである、請求項1に記載の情報処理装置。
  3.  前記第1モデルは、
      前記第1類に分類される各イベントについて、そのイベントの発生数又は発生頻度に基づくスコアを示しており、
      判定対象のイベントのスコアが第1閾値以上である場合に、そのイベントが警告対象であると判定し、
     前記第2モデルは、
      前記第2類に分類される各イベントについて、そのイベントの発生数又は発生頻度に基づくスコアを示しており、
      判定対象のイベントのスコアが第2閾値以上である場合に、そのイベントが警告対象であると判定し、
     前記第1学習部は、前記第2イベント情報に示されるイベントのうち、前記第1類に分類されたイベントについて、前記第1モデルにおけるそのイベントのスコアを増加させることで、前記第1モデルの学習を行い、
     前記第2学習部は、前記第2イベント情報に示されるイベントのうち、前記第2類に分類されたイベントについて、前記第2モデルにおけるそのイベントのスコアを増加させることで、前記第2モデルの学習を行う、請求項1又は2に記載の情報処理装置。
  4.  前記第1閾値は前記第2閾値よりも大きい、請求項3に記載の情報処理装置。
  5.  前記第1学習部が増加させるスコアの大きさは、前記第2学習部が増加させるスコアの増加量よりも大きい、請求項3に記載の情報処理装置。
  6.  前記第1学習部は、前記標準装置において発生した各イベントに基づいて生成された前記第1モデルを取得し、前記取得した第1モデルの学習を、前記第2イベント情報に基づいて行う、請求項1乃至5いずれか一項に記載の情報処理装置。
  7.  前記取得部は、判定対象のイベントに関する情報を取得し、
     前記分類部は、前記判定対象のイベントが前記第1類と前記第2類のいずれに分類されるかを判定し、
     前記判定対象のイベントが前記第1類に分類される場合には、前記第1モデルを用いて、前記判定対象のイベントが警告対象のイベントであるか否かを判定し、前記判定対象のイベントが前記第2類に分類される場合には、前記第2モデルを用いて、前記判定対象のイベントが警告対象のイベントであるか否かを判定する判定部と、
     前記判定対象のイベントが警告対象のイベントであると判定された場合に所定の警告情報を出力する警告部と、を有する請求項1乃至6いずれか一項に記載の情報処理装置。
  8.  前記判定対象のイベントは、前記第2イベント情報に示されているイベントである、請求項7に記載の情報処理装置。
  9.  コンピュータによって実行される制御方法であって、
     標準装置においてプロセスが発生させたイベントに関する情報を示す第1イベント情報と、判定対象装置においてプロセスが発生させたイベントに関する情報を示す第2イベント情報とを取得する取得ステップと、
     前記第1イベント情報を利用して、前記第2イベント情報に示される各イベントを、標準装置でも発生した第1類のイベントと、前記標準装置では発生しなかった第2類のイベントとに分類する分類ステップと、
     前記第1類に分類されるイベントが警告対象のイベントであるか否かを判定する第1モデルを、前記第1類に分類されたイベントに関する前記第2イベント情報を用いて学習させる第1学習ステップと、
     前記第2類に分類されるイベントが警告対象のイベントであるか否かを判定する第2モデルを、前記第2類に分類されたイベントに関する前記第2イベント情報を用いて学習させる第2学習ステップと、を有する制御方法。
  10.  警告対象のイベントは、マルウエアが介在するイベントである、請求項9に記載の制御方法。
  11.  前記第1モデルは、
      前記第1類に分類される各イベントについて、そのイベントの発生数又は発生頻度に基づくスコアを示しており、
      判定対象のイベントのスコアが第1閾値以上である場合に、そのイベントが警告対象であると判定し、
     前記第2モデルは、
      前記第2類に分類される各イベントについて、そのイベントの発生数又は発生頻度に基づくスコアを示しており、
      判定対象のイベントのスコアが第2閾値以上である場合に、そのイベントが警告対象であると判定し、
     前記第1学習ステップにおいて、前記第2イベント情報に示されるイベントのうち、前記第1類に分類されたイベントについて、前記第1モデルにおけるそのイベントのスコアを増加させることで、前記第1モデルの学習を行い、
     前記第2学習ステップにおいて、前記第2イベント情報に示されるイベントのうち、前記第2類に分類されたイベントについて、前記第2モデルにおけるそのイベントのスコアを増加させることで、前記第2モデルの学習を行う、請求項9又は10に記載の制御方法。
  12.  前記第1閾値は前記第2閾値よりも大きい、請求項11に記載の制御方法。
  13.  前記第1学習ステップが増加させるスコアの大きさは、前記第2学習ステップが増加させるスコアの増加量よりも大きい、請求項11に記載の制御方法。
  14.  前記第1イベント情報は、前記標準装置において発生した各イベントに基づいて生成された前記第1モデルであり、
     前記第1学習ステップは、前記第1イベント情報として取得された前記第1モデルの学習を、前記第2イベント情報に基づいて行う、請求項9乃至13いずれか一項に記載の制御方法。
  15.  前記取得ステップにおいて、判定対象のイベントに関する情報を取得し、
     前記分類ステップにおいて、前記判定対象のイベントが前記第1類と前記第2類のいずれに分類されるかを判定し、
     前記判定対象のイベントが前記第1類に分類される場合には、前記第1モデルを用いて、前記判定対象のイベントが警告対象のイベントであるか否かを判定し、前記判定対象のイベントが前記第2類に分類される場合には、前記第2モデルを用いて、前記判定対象のイベントが警告対象のイベントであるか否かを判定する判定ステップと、
     前記判定対象のイベントが警告対象のイベントであると判定された場合に所定の警告情報を出力する警告ステップと、を有する請求項9乃至14いずれか一項に記載の制御方法。
  16.  前記判定対象のイベントは、前記第2イベント情報に示されているイベントである、請求項15に記載の制御方法。
  17.  請求項9乃至16いずれか一項に記載の制御方法の各ステップをコンピュータに実行させるプログラム。
PCT/JP2018/007763 2018-03-01 2018-03-01 情報処理装置、制御方法、及びプログラム WO2019167225A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US16/976,311 US11899793B2 (en) 2018-03-01 2018-03-01 Information processing apparatus, control method, and program
JP2020503209A JP6892005B2 (ja) 2018-03-01 2018-03-01 情報処理装置、制御方法、及びプログラム
DE112018007202.9T DE112018007202T5 (de) 2018-03-01 2018-03-01 Informationsverarbeitungsvorrichtung, steuerungsverfahren undprogramm
PCT/JP2018/007763 WO2019167225A1 (ja) 2018-03-01 2018-03-01 情報処理装置、制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/007763 WO2019167225A1 (ja) 2018-03-01 2018-03-01 情報処理装置、制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2019167225A1 true WO2019167225A1 (ja) 2019-09-06

Family

ID=67806017

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/007763 WO2019167225A1 (ja) 2018-03-01 2018-03-01 情報処理装置、制御方法、及びプログラム

Country Status (4)

Country Link
US (1) US11899793B2 (ja)
JP (1) JP6892005B2 (ja)
DE (1) DE112018007202T5 (ja)
WO (1) WO2019167225A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6970344B2 (ja) * 2018-08-03 2021-11-24 日本電信電話株式会社 感染拡大攻撃検知装置、攻撃元特定方法及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268775A (ja) * 2005-03-25 2006-10-05 Ntt Docomo Inc ソフトウェア動作モデル化装置及びソフトウェア動作監視装置
WO2014020908A1 (ja) * 2012-08-03 2014-02-06 日本電気株式会社 システム状態判別支援装置、及び、システム状態判別支援方法
JP2015108898A (ja) * 2013-12-03 2015-06-11 日本電信電話株式会社 異常検知システム及び異常検知方法
WO2016132992A1 (ja) * 2015-02-20 2016-08-25 日本電信電話株式会社 ブラックリスト生成装置、ブラックリスト生成システム、ブラックリスト生成方法及びブラックリスト生成プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008129714A (ja) 2006-11-17 2008-06-05 Univ Of Tsukuba 異常検知方法、異常検知装置及び異常検知用プログラム並びに学習モデル生成方法
CN107203450B (zh) * 2016-03-16 2020-06-02 伊姆西Ip控股有限责任公司 故障的分类方法和设备
US10685112B2 (en) * 2016-05-05 2020-06-16 Cylance Inc. Machine learning model for malware dynamic analysis
GB2557253B (en) * 2016-12-02 2020-06-03 F Secure Corp Machine learning based malware detection system
US11138514B2 (en) * 2017-03-23 2021-10-05 Futurewei Technologies, Inc. Review machine learning system
EP4085362A1 (en) * 2019-12-31 2022-11-09 Motorola Solutions, Inc. Methods and apparatus for detecting malicious re-training of an anomaly detection system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268775A (ja) * 2005-03-25 2006-10-05 Ntt Docomo Inc ソフトウェア動作モデル化装置及びソフトウェア動作監視装置
WO2014020908A1 (ja) * 2012-08-03 2014-02-06 日本電気株式会社 システム状態判別支援装置、及び、システム状態判別支援方法
JP2015108898A (ja) * 2013-12-03 2015-06-11 日本電信電話株式会社 異常検知システム及び異常検知方法
WO2016132992A1 (ja) * 2015-02-20 2016-08-25 日本電信電話株式会社 ブラックリスト生成装置、ブラックリスト生成システム、ブラックリスト生成方法及びブラックリスト生成プログラム

Also Published As

Publication number Publication date
JPWO2019167225A1 (ja) 2021-03-18
US20210042412A1 (en) 2021-02-11
JP6892005B2 (ja) 2021-06-18
US11899793B2 (en) 2024-02-13
DE112018007202T5 (de) 2021-02-25

Similar Documents

Publication Publication Date Title
US11818155B2 (en) Cognitive information security using a behavior recognition system
US9781144B1 (en) Determining duplicate objects for malware analysis using environmental/context information
US10176321B2 (en) Leveraging behavior-based rules for malware family classification
JP6643211B2 (ja) 異常検知システム及び異常検知方法
RU2625053C1 (ru) Устранение ложных срабатываний антивирусных записей
EP3258409B1 (en) Device for detecting terminal infected by malware, system for detecting terminal infected by malware, method for detecting terminal infected by malware, and program for detecting terminal infected by malware
WO2016208159A1 (ja) 情報処理装置、情報処理システム、情報処理方法、及び、記憶媒体
US10567398B2 (en) Method and apparatus for remote malware monitoring
US20180341769A1 (en) Threat detection method and threat detection device
Kumar et al. Machine learning based malware detection in cloud environment using clustering approach
US11757708B2 (en) Anomaly detection device, anomaly detection method, and anomaly detection program
WO2019167225A1 (ja) 情報処理装置、制御方法、及びプログラム
JP7031735B2 (ja) 情報処理装置、制御方法、及びプログラム
JP2019175334A (ja) 情報処理装置、制御方法、及びプログラム
EP3799367B1 (en) Generation device, generation method, and generation program
US11201874B2 (en) Information processing apparatus, control method, and program
JP7315023B2 (ja) ルール生成装置およびルール生成プログラム
US11513884B2 (en) Information processing apparatus, control method, and program for flexibly managing event history
JP7211427B2 (ja) 情報処理装置、制御方法、及びプログラム
JP2018005607A (ja) 情報処理装置及びプログラム
US20230418720A1 (en) System monitoring apparatus, system monitoring method, and computer readable recording medium
US20220229716A1 (en) Evaluation device, system, control method, and program
WO2024058936A1 (en) Automated security rule updates based on alert feedback
US20220374528A1 (en) Evaluation apparatus, evaluation system, evaluation method, and program
CN116488871A (zh) 恶意事件的检测方法、装置、计算机设备以及存储介质

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020503209

Country of ref document: JP

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 18908193

Country of ref document: EP

Kind code of ref document: A1