WO2016076334A1 - マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム - Google Patents

マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム Download PDF

Info

Publication number
WO2016076334A1
WO2016076334A1 PCT/JP2015/081659 JP2015081659W WO2016076334A1 WO 2016076334 A1 WO2016076334 A1 WO 2016076334A1 JP 2015081659 W JP2015081659 W JP 2015081659W WO 2016076334 A1 WO2016076334 A1 WO 2016076334A1
Authority
WO
WIPO (PCT)
Prior art keywords
event
detection
events
malware
communication
Prior art date
Application number
PCT/JP2015/081659
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 US15/522,147 priority Critical patent/US10819717B2/en
Priority to JP2016559074A priority patent/JP6181884B2/ja
Publication of WO2016076334A1 publication Critical patent/WO2016076334A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Definitions

  • the present invention relates to a malware-infected terminal detection device, a malware-infected terminal detection method, and a malware-infected terminal detection program.
  • malware fraudulent programs that cause threats such as information leakage and unauthorized access
  • Malware receives instructions from an attacker via a server or the like after infection, and causes threats such as attacks and information leaks.
  • a method of disguising communication with an attacker as regular communication is used (see, for example, Non-Patent Document 1).
  • Non-Patent Document 2 The increase in the number of discovered malware is also remarkable, and it has been reported that one new malware appears in a few seconds (see, for example, Non-Patent Document 2). For this reason, it is not possible to prevent malware threats only by measures on the host side such as anti-virus software. Therefore, a technique for reducing the threat of malware by analyzing communication data and identifying a terminal infected with malware has attracted attention (for example, see Non-Patent Document 3).
  • a technique for detecting a terminal infected with malware a technique for patterning communication characteristics found in a terminal infected with malware and detecting a terminal infected with malware is known (for example, see Patent Document 1).
  • An example of a method for detecting a terminal infected with malware is to analyze communication data as an analysis target, pattern communication data obtained by malware analysis, and check whether a similar pattern appears in the communication of the monitored network (NW) This is a technique for detecting terminals infected with malware.
  • the above conventional techniques have the following problems. That is, as described above, since the number of malwares is enormous in recent years, if all communication of all malware is patterned, the number of patterns becomes enormous, and it is determined whether or not the pattern exists in the communication of the monitored network. It takes a long time to do. Further, in the above-described conventional technology, a state is defined for each communication payload, and the state transition is used as a pattern. Therefore, a new pattern is generated only by malware communicating with a different communication payload. Further, since communication similar to that of a non-infected terminal is also confirmed in malware communication, using all communication patterns for detection in the communication of the monitored network will induce false detection.
  • an object of the present invention is to solve the above-described problems and provide an apparatus, a method, and a program for detecting a malware-infected terminal.
  • the malware-infected terminal detection device is an event that is an event that matches a rule that characterizes communication among communication of a monitored network and communication generated by malware.
  • a generation unit that generates a set of events formed based on a predetermined condition from an event acquired for each identifier that distinguishes a terminal or malware in a monitored network, and a set of events based on communication generated by the malware
  • a cluster formed by a set of events with a similarity of a certain level or more, if there are multiple sets of events in the same cluster, events that appear in common among the sets of events belonging to the same cluster And the set of extracted events according to the predetermined conditions is detected.
  • An extraction unit that extracts a set of events as a set of detection events when a predetermined condition is satisfied when only a single event set exists in the same cluster. , If it is determined that the set of events based on the communication of the monitored network generated by the generating unit and the set of detection events extracted by the extracting unit match, A detection unit that detects the presence of a malware-infected terminal.
  • the present invention it is possible to reduce the pattern to be collated in the monitoring target NW, reduce the time required for collation, and reduce the situation of erroneously detecting communication that normally occurs in the monitoring target NW. .
  • FIG. 1 is a configuration diagram showing an outline of the detection apparatus according to the first embodiment.
  • FIG. 2 is a diagram illustrating an example of the monitoring target NW analysis result according to the first embodiment.
  • FIG. 3 is a diagram illustrating an example of the malware communication analysis result according to the first embodiment.
  • FIG. 4 is a diagram illustrating a configuration example of the detection device according to the first embodiment.
  • FIG. 5 is a flowchart showing an excluded event extraction processing procedure by the excluded event extraction unit.
  • FIG. 6 is a flowchart illustrating an event sequence generation processing procedure by the event sequence generation unit.
  • FIG. 7 is a flowchart showing a common event sequence extraction processing procedure by the common event sequence extraction unit.
  • FIG. 1 is a configuration diagram showing an outline of the detection apparatus according to the first embodiment.
  • FIG. 2 is a diagram illustrating an example of the monitoring target NW analysis result according to the first embodiment.
  • FIG. 3 is a diagram illustrating an example of the malware communication analysis result according to the first embodiment.
  • FIG. 8 is a flowchart illustrating a candidate determination processing procedure performed by the event matching unit and the candidate determination unit.
  • FIG. 9 is a flowchart illustrating a detection processing procedure by the detection unit.
  • FIG. 10 is a flowchart showing a verification processing procedure by the event verification unit.
  • FIG. 11 is a configuration diagram illustrating an outline of a detection device according to the second embodiment.
  • FIG. 12 is a diagram illustrating a configuration example of a detection device according to the second embodiment.
  • FIG. 13 is a flowchart showing an excluded event extraction processing procedure by the excluded event extraction unit.
  • FIG. 14 is a flowchart illustrating an event group generation processing procedure by the event group generation unit.
  • FIG. 15 is a flowchart showing a common event group extraction processing procedure by the common event group extraction unit.
  • FIG. 16 is a flowchart illustrating a candidate determination processing procedure by the event matching unit and the candidate determination unit.
  • FIG. 17 is a flowchart illustrating a detection processing procedure by the detection unit.
  • FIG. 18 is a flowchart showing a verification processing procedure by the event verification unit.
  • FIG. 19 is a diagram illustrating a computer that executes a malware-infected terminal detection program.
  • Embodiments of a malware-infected terminal detection device, a malware-infected terminal detection method, and a malware-infected terminal detection program according to the present application will be described below in detail with reference to the drawings. It should be noted that the malware-infected terminal detection device, the malware-infected terminal detection method, and the malware-infected terminal detection program according to the present application are not limited to this embodiment.
  • FIG. 1 is a configuration diagram illustrating an outline of a detection device 100 according to the first embodiment. As illustrated in FIG. 1, the processing by the detection device 100 is executed by a sequence generation unit 130, a detection sequence extraction unit 140, and a detection unit 150 included in the detection device 100.
  • the detection apparatus 100 generates a detection event sequence from the monitoring target NW (Network) analysis result (for sequence extraction) and the malware communication analysis result collected in advance before the detection, and the monitoring target NW analysis result By comparing the event sequence generated from (for detection) and the event sequence for detection, a terminal (host) infected with malware in the monitoring target NW is detected.
  • the event means an event that captures each feature when a certain feature is confirmed in the communication.
  • an event is an event that communication with a specific communication destination was included by analysis of a device log recorded in Firewall, WebProxy, etc., or a certain number of times of communication was performed within a predetermined time
  • the detection apparatus 100 analyzes whether a rule that characterizes communication is met by a predetermined external device, and acquires an event determined to match the rule as a monitoring target NW analysis result.
  • the malware communication analysis result is a result of analyzing communication data obtained when the malware is actually operated from the same viewpoint as when the above-described monitoring target NW analysis result is acquired.
  • the event series is a series of monitoring target NW analysis results arranged in time series for each host of the monitoring target NW, or a malware communication analysis result arranged in time series for each malware sample.
  • FIG. 2 is a diagram illustrating an example of the monitoring target NW analysis result according to the first embodiment.
  • the event detected for each identifier of the monitoring target NW host stores the event type and the event occurrence time in association with each other.
  • an event “communication detection with a specific communication destination” is “October 15, 2014 12:20:12” on the host identified by “192.168.10.11.”
  • An example has occurred.
  • FIG. 3 is a diagram illustrating an example of the malware communication analysis result according to the first embodiment. As shown in FIG. 3, for the event detected for each malware identifier, the event type and the event occurrence time are stored in association with each other as in the monitoring target NW analysis result.
  • the sequence generation unit 130 includes an excluded event extraction unit 131 and an event sequence generation unit 132, and generates an event sequence for each of the monitoring target NW analysis result and the malware communication analysis result as inputs. .
  • the sequence generation unit 130 is an event that is an event that matches a rule characterizing the communication among the communication of the monitoring target NW and the communication generated by the malware, and is acquired for each identifier that distinguishes the terminal or malware of the monitoring target NW A set of events formed based on predetermined conditions is generated from the events. For example, the sequence generation unit 130 generates an event sequence that is formed based on the order of occurrence of the event as a set of events.
  • the excluded event extraction unit 131 and the event series generation unit 132 will be described.
  • the exclusion event extraction unit 131 excludes events that have been confirmed by many hosts in the monitoring target NW in the analysis result. And set.
  • the event sequence generation unit 132 generates an event sequence including events that do not correspond to the excluded event, from the monitoring target NW analysis result and the malware communication analysis result. Generally, since there are few infected terminals in the monitoring target NW, it can be determined that events confirmed by many hosts do not capture the characteristics of communication by malware. Therefore, the event sequence generation unit 132 can generate an event sequence by excluding events that are confirmed on terminals that are not infected with malware by excluding excluded events. That is, according to the event sequence generation unit 132, it is possible to reduce false detection in detection of an infected terminal.
  • the event sequence generation unit 132 generates one event sequence for events of the same host or the same malware from events whose event occurrence interval is within a certain time. That is, the event sequence generation unit 132 generates an event sequence by dividing a series of events related to the operation of the malware. Furthermore, the event sequence generation unit 132 generates an event sequence by excluding duplicate events from events of the same host or the same malware.
  • event series generation unit 132 The processing of the event series generation unit 132 will be described with a specific example. For example, it is assumed that event A, event B, and event C are confirmed in the order of “ABCABCAA” as an analysis result of a certain host. For example, event A is an event indicating access to a specific server, event B is an event indicating that a file is downloaded from a specific server, and event C is a file downloaded by event B. This event indicates that a predetermined server has been accessed based on the event.
  • the event series generation unit 132 excludes duplicate events from a series of events “ABCABCAA”. That is, the event sequence generation unit 132 generates “ABC” as an event sequence from “ABCABCAA”. That is, the event series generation unit 132 adds events of a certain host as elements of the event series in order from the earliest occurrence time, and does not add events confirmed after the second time to the event series.
  • the event sequence generation unit 132 calculates the difference in the number of repetitions even when repeated communication occurs due to the execution timing of malware or a command from a C & C (Command and Control) server. Absorbed event sequences can be generated. That is, according to the event series generation unit 132, it is possible to improve the accuracy in the detection process described later.
  • the detection sequence extraction unit 140 includes a common event sequence extraction unit 141, an event matching unit 142, and a candidate determination unit 143, and extracts a detection event sequence based on the event sequence generated by the sequence generation unit 130.
  • the detection sequence extraction unit 140 is a cluster formed by event sets having a certain degree of similarity between event sets based on communication generated by malware, and a plurality of event sets exist in the same cluster. In this case, an event that appears in common between the sets of events belonging to the same cluster is extracted, and the set of extracted events is extracted as a set of detection events according to a predetermined condition, or is simply included in the same cluster. When only one event set exists, the event set is extracted as a set of detection events when a predetermined condition is satisfied.
  • the common event series extraction unit 141, the event collation unit 142, and the candidate determination unit 143 will be described.
  • the common event sequence extraction unit 141 performs clustering after calculating the similarity between the event sequences extracted from the malware communication analysis result. After that, the common event series extraction unit 141 extracts events that are commonly confirmed among the event series among the event series having a certain degree of similarity or more in consideration of the order, To do.
  • the event collation unit 142 collates the event sequence of the monitoring target NW analysis result (for sequence extraction) with the detection event sequence candidate, and determines how much each detection event sequence candidate can detect the host in the monitoring target NW. calculate.
  • the candidate determination unit 143 Based on the number of detection hosts for each detection event sequence candidate calculated by the event matching unit 142, the candidate determination unit 143 detects the detection event sequence when the ratio of the number of detection hosts to the total number of hosts to be monitored is less than or equal to a certain value. Candidates are output as a detection event sequence.
  • the detection unit 150 includes an event matching unit 151 and a detection result output unit 152, and detects a malware-infected terminal in the monitoring target NW.
  • the detection unit 150 determines that the set of events based on the communication of the monitoring target NW generated by the sequence generation unit 130 matches the set of detection events extracted by the detection sequence extraction unit 140. In this case, it is detected that a malware-infected terminal exists in the monitoring target NW.
  • the event matching unit 151 and the detection result output unit 152 will be described.
  • the event matching unit 151 matches the event sequence generated from the monitoring target NW analysis result (for detection) and the detection event sequence, similarly to the event matching unit 142 of the detection sequence extracting unit 140. Check whether or not.
  • the detection result output unit 152 outputs host information determined to match the detection event sequence as a result of the collation by the event collation unit 151.
  • the host information is, for example, an IP (Internet Protocol) address of a terminal in the monitoring target NW.
  • the detection apparatus 100 generates a detection event sequence from the monitoring target NW analysis result (for sequence extraction) and the malware communication analysis result, and generates the event sequence and detection detection from the monitoring target NW analysis result (for detection).
  • a terminal infected with malware is detected in the monitoring target NW by collating with the event series.
  • the detection apparatus 100 uses only a detection event sequence that is a time-series pattern of common features that characterize malware among a plurality of malware communications. Perform detection. For this reason, according to the detection apparatus 100, the pattern which should be collated with the monitoring object NW can be reduced, and the time concerning collation can be reduced. Furthermore, since the detection apparatus 100 uses a detection event sequence from which events or time series of events that can be observed in the monitoring target NW in advance are excluded from processing, a situation in which communication that normally occurs in the monitoring target NW is erroneously detected is detected. Can be reduced.
  • the detection apparatus 100 may use only the malware communication analysis result in generating the detection event series, without using the monitoring target NW analysis result (for series extraction). Details of the processing related to the detection apparatus 100 will be described later using a flowchart.
  • FIG. 4 is a diagram illustrating a configuration example of the detection apparatus 100 according to the first embodiment.
  • the detection apparatus 100 includes an IF (interface) unit 110, an event sequence storage unit 120, a detection event sequence storage unit 121, a sequence generation unit 130, and the like. , A detection sequence extraction unit 140 and a detection unit 150.
  • the IF unit 110 is, for example, a NIC (Network Interface Card) or the like, and transmits / receives various data to / from an external device.
  • the IF unit 110 receives a result obtained by analyzing a firewall or WebProxy device log installed in the monitoring target NW as the monitoring target NW analysis result.
  • the event sequence storage unit 120 and the detection event sequence storage unit 121 are realized by, for example, a semiconductor memory device such as a RAM (Random Access Memory) or a flash memory, a hard disk, an optical disk, or the like.
  • the event sequence storage unit 120 and the detection event sequence storage unit 121 appropriately store information handled by the sequence generation unit 130, the detection sequence extraction unit 140, and the detection unit 150.
  • the event sequence storage unit 120 stores the event sequence generated by the sequence generation unit 130.
  • the detection event sequence storage unit 121 stores the detection event sequence extracted by the detection sequence extraction unit 140.
  • the detection apparatus 100 does not require the event sequence storage unit 120 or the detection event sequence storage unit 121 as a component.
  • the detection device 100 may use an external storage device that performs the same processing as the event sequence storage unit 120 or the detection event sequence storage unit 121.
  • the sequence generation unit 130, the detection sequence extraction unit 140, and the detection unit 150 are realized by an integrated circuit such as ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array). Further, the sequence generation unit 130, the detection sequence extraction unit 140, and the detection unit 150 may be configured such that, for example, a program stored in a storage device (not illustrated) is stored in a RAM by a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like. This is realized by being executed as a work area.
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the sequence generation unit 130 includes an excluded event extraction unit 131 and an event sequence generation unit 132, and generates an event sequence for each of the monitoring target NW analysis result and the malware communication analysis result as inputs.
  • the excluded event extraction unit 131 sets an event confirmed by many hosts in the monitoring target NW in the analysis result as an excluded event. Specifically, the excluded event extraction unit 131 acquires the total number of hosts in the monitoring target NW included in the input monitoring target NW analysis result (for series extraction) and the number of hosts including a predetermined event. .
  • the excluded event extraction unit 131 excludes the predetermined event when the number of hosts including the predetermined event exceeds a certain ratio based on the ratio between the number of hosts including the predetermined event and the total number of hosts. Set as event. As a result, the excluded event extraction unit 131 can generate an event sequence only with events that exclude general processing performed in many hosts.
  • the event sequence generation unit 132 generates an event sequence including events that do not correspond to the excluded event, from the monitoring target NW analysis result and the malware communication analysis result. Specifically, the event series generation unit 132 acquires, as an input, an event that does not correspond to the excluded event from the monitoring target NW analysis result or the malware communication analysis result. At this time, the event series generation unit 132 records the event occurrence time of the read event. Then, the event series generation unit 132 determines whether the recorded event occurrence time is a predetermined time or more away from the event occurrence time read immediately before. Then, when the event occurrence time is not separated from the previous event time by a certain time or more, the event series generation unit 132 estimates that the event is an element of the same event series as the previous event, and has been determined. Generate events as an event series. As described above, the event sequence generation unit 132 generates an event sequence based on an event excluding general processing, and thus it is possible to reduce false detection in detection of an infected terminal.
  • the detection sequence extraction unit 140 includes a common event sequence extraction unit 141, an event matching unit 142, and a candidate determination unit 143, and extracts a detection event sequence based on the event sequence generated by the sequence generation unit 130.
  • the common event series extraction unit 141 extracts a detection event series candidate from the event series generated by the series generation unit 130. Specifically, the common event sequence extraction unit 141 performs clustering after calculating the similarity between the event sequences extracted from the malware communication analysis result, and in the event sequences having a certain degree of similarity or more, each event Extract events that are commonly confirmed between series, taking the order into account.
  • the common event sequence extraction unit 141 includes events that are commonly confirmed when the events are arranged in chronological order and the length of the commonly confirmed event is longer than a predetermined length.
  • the event series is set as a detection event series candidate.
  • the common event sequence extraction unit 141 when a variant of a malware that performs a similar operation occurs by clustering the event sequence and using the common event as an element of the detection event sequence candidate, the determination by the detection unit 150 can be performed with the same event series. That is, according to the common event sequence extraction unit 141, it is not necessary to prepare a large number of event sequences used for detection even under the situation where malware variants frequently occur. A wide variety of subspecies can be supported. Furthermore, by using only a common event sequence, the detection apparatus 100 can reduce the number of event sequences for which collation determination is performed, and can reduce processing time.
  • the event collation unit 142 collates the event sequence of the monitoring target NW analysis result (for sequence extraction) with the detection event sequence candidate, and determines how much each detection event sequence candidate can detect the host in the monitoring target NW. calculate. Specifically, the event matching unit 142 determines the event sequence of the monitoring target NW analysis result (for sequence extraction) generated by the sequence generation unit 130 and the detection event sequence candidate extracted by the common event sequence extraction unit 141. Get as input. Then, the event collating unit 142 collates both event series, and calculates the number of hosts corresponding to the monitoring target NW analysis result (for series extraction) determined to be collated. Then, the event matching unit 142 outputs the calculated number of hosts to the candidate determination unit 143 as an output.
  • the candidate determination unit 143 Based on the number of detection hosts for each detection event sequence candidate calculated by the event matching unit 142, the candidate determination unit 143 detects the detection event sequence when the ratio of the number of detection hosts to the total number of hosts to be monitored is less than or equal to a certain value. Candidates are output as a detection event sequence. Specifically, the candidate determination unit 143 divides the number of detection hosts of the detection event sequence candidate determined by the event collation unit 142 to match the event sequence by the total number of hosts of the monitoring target NW, for each event sequence. The percentage of detected hosts is calculated. Then, the candidate determination unit 143 outputs, from the detection event sequence candidates, an event sequence having a detection host ratio of a certain value or less as a detection event sequence.
  • the candidate determination unit 143 excludes, in the same way as the processing of the exclusion event extraction unit 131, the monitoring event NW in advance from the detection event series that leads to false detection based on the fact that there are few terminals infected with malware. can do. For this reason, according to the process of the candidate determination part 143, it becomes possible to reduce the misdetection at the time of detecting an infected terminal in the monitoring object NW.
  • the detection unit 150 includes an event verification unit 151 and a detection result output unit 152, and detects a malware-infected terminal in the monitoring target NW. Specifically, the event collation unit 151 collates whether the monitoring target NW analysis result (for detection) matches the event series of the detection event series. Then, the detection result output unit 152 outputs host information that is determined to match the detection event sequence as a result of the collation by the event collation unit 151. In other words, the detection result output unit 152 determines that the host that is determined to match the detection event sequence that is the signature is likely to be a malware-infected terminal, and is determined to match the detection event sequence. Malware-infected terminals are detected by outputting information that can identify the host to be detected.
  • FIG. 5 is a flowchart showing an excluded event extraction processing procedure by the excluded event extraction unit 131 according to the first embodiment.
  • the excluded event extracting unit 131 reads the monitoring target NW analysis result (for series extraction) as an input (step S101). Then, the excluded event extraction unit 131 acquires the number of hosts in the monitoring target NW (step S102).
  • the number of hosts existing in the monitoring target NW is known in advance, the number of hosts of the monitoring target NW may be the number, or the number of hosts that appear in the monitoring target NW analysis result (for series extraction) is monitored. It may be regarded as the number of hosts of the target NW.
  • the number of hosts in the monitoring target NW is the total number of hosts that can be observed in the monitoring target NW, and when the total number of hosts existing in advance is observed, the total number of hosts is applied and the total number of hosts When the number is unknown, the total number of hosts that can be observed based on the monitoring target NW analysis result (for sequence extraction) is applied.
  • the excluded event extraction unit 131 determines whether or not the process of determining whether to exclude all events included in the read monitoring target NW analysis result (for series extraction) has been performed ( Step S103). When it is determined that the process has been executed for all events, the excluded event extraction process ends (Yes in step S103).
  • the excluded event extracting unit 131 continues the excluded event extracting process. At this time, the excluded event extraction unit 131 divides the number of hosts detected in a certain event by the number of hosts of the monitoring target NW, and acquires the event detection rate (step S104).
  • the exclusion event extraction part 131 determines whether a detection ratio is larger than the value designated beforehand (step S105). When it is determined that the detection ratio is larger than the value specified in advance (Yes at Step S105), the excluded event extracting unit 131 sets the event to be determined as an excluded event (Step S106). On the other hand, when it is determined that the detection ratio is not greater than the value specified in advance (No in step S105), the excluded event extracting unit 131 does not set the event as an excluded event and continues processing for different events. (Transition to step S103).
  • the excluded event extracting unit 131 determines that an event confirmed by many hosts does not capture only the characteristics of communication by malware, extracts the event, and sets it as an excluded event. As a result, the excluded event extraction unit 131 can reduce false detection in the detection process of the infected terminal.
  • FIG. 6 is a flowchart showing an event sequence generation processing procedure by the event sequence generation unit 132.
  • the event sequence generation unit 132 processes all host or malware analysis results for event sequence generation processing of the monitoring target NW analysis results (for sequence extraction and detection) and malware communication analysis results. It is determined whether or not the process has been completed (step S201). When it is determined that the process has been executed for all, the event series generation process ends (Yes in step S201).
  • the event series generation unit 132 designates the host or malware that reads the analysis results (Step S202).
  • the event series generation unit 132 generates an event series for each host in the monitoring target NW when extracting the event series from the monitoring target NW analysis result.
  • host identification for example, the IP address of the host is used.
  • the event sequence generation unit 132 generates an event sequence for each malware when generating the event sequence from the malware communication analysis result.
  • a malware hash value is used for malware identification. It is assumed that both the monitoring target NW analysis result and the malware communication analysis result are sorted by the time when the event is confirmed.
  • the event series generation unit 132 initializes the immediately preceding event time and the event series (during processing) prior to the process described below (step S203).
  • the event series generation unit 132 determines whether or not the analysis result of the designated host or malware has been processed (step S204). When it is determined that the analysis result has been processed (Yes in step S204), the event sequence generation unit 132 determines whether there is an event sequence that is not output as an event sequence (that is, an event sequence that is being generated). (Step S205). If there is an event series that has not been output as an event series (Yes at Step S205), the event series generation unit 132 outputs the event series being processed as an event series (Step S206).
  • step S205 the event sequence generation unit 132 shifts the processing to step S201.
  • step S204 If it is determined in step S204 that the analysis result has not been processed (No in step S204), the event series generation unit 132 reads the specified host or malware event and the event occurrence time (step S207). Then, the event series generation unit 132 determines whether or not the read event corresponds to an exclusion event (step S208). When it corresponds to the excluded event (Yes at Step S208), the event series generation unit 132 shifts the process to Step S204 without adding the read event to the event series.
  • the event series generation unit 132 records the event occurrence time of the read event (Step S209). Then, the event series generation unit 132 determines whether the recorded event occurrence time is separated from the previous event time by a certain time or more (step S210).
  • the event sequence generation unit 132 Outputs the event sequence being processed as an event sequence (step S211). In this case, the event series generation unit 132 initializes the output event series (during processing) (step S212).
  • step S210 when the event occurrence time is not apart from the previous event time by a certain time or longer (No in step S210), the event series generation unit 132 sets the event occurrence time of the read event as the previous event time (step S213). .
  • the event sequence generation unit 132 estimates that the event is an element of the same event sequence as the previous event, and the event sequence (processing It is determined whether or not to be added (step S214 described later).
  • the event series generation unit 132 determines whether or not the read event is included in the event series (during processing) (step S214). If the read event is included in the event sequence (processing is in progress) (Yes at step S214), the event sequence generation unit 132 does not add a duplicate event to the event sequence (processing), so the process proceeds to step S204.
  • step S214 if the read event is not included in the event series (processing) (No in step S214), the event series generation unit 132 adds the event to the event series (processing) (step S215). Thereafter, the event series generation unit 132 shifts the processing to step S204.
  • the event sequence generation unit 132 when the read event corresponds to the excluded event, the event sequence generation unit 132 does not incorporate the event into the event sequence.
  • the event series generation unit 132 records the time at which the event occurred, compares the time at which the event occurred with the time at which the previous event occurred, and determines whether or not a certain time or more is left. Thereby, the event sequence generation unit 132 generates an event sequence so that one event sequence is formed by events having a short occurrence interval between events. Furthermore, the event series generation unit 132 determines whether or not an event to be processed is included in the event series (during processing), and if it is included, the event is not added to the event series. That is, there are no overlapping events in the generated event series.
  • step S214 the determination of whether or not to add an overlapping event to the event series (during processing) (step S214) may not be performed based on the characteristics of the monitoring target NW analysis result and the malware communication analysis result. For example, if the number of events confirmed in the monitoring target NW analysis result and the malware communication analysis result is small (for example, in the case of only one type, etc.), are duplicate events added to the event sequence (during processing)? It is possible to add all the events that do not correspond to the excluded event to the event series (during processing) without determining whether or not they are not.
  • FIG. 7 is a flowchart showing a common event sequence extraction processing procedure by the common event sequence extraction unit 141.
  • the common event sequence extraction unit 141 reads an event sequence extracted from the malware communication analysis result as a processing target (step S301). Then, the common event sequence extraction unit 141 generates a similarity matrix between event sequences and performs hierarchical clustering (step S302).
  • a similarity matrix for example, a uniquely identifiable character is assigned to each event, the event sequence is regarded as a character string, the Levenstein distance between the event sequences is calculated, and the event sequence is calculated. Find the similarity of.
  • the common event sequence extraction unit 141 sets event sequences having a similarity equal to or higher than a preset similarity level in the hierarchical clustering to be performed (step S303).
  • the common event sequence extraction unit 141 determines whether or not the process of extracting the common event sequence from all the clusters has been executed (step S304). When it is determined that the process of extracting the common event series from all the clusters has been executed (Yes in step S304), the common event series extraction process by the common event series extraction unit 141 ends.
  • the common event series extracting unit 141 specifies the cluster from which the common event series is extracted (Step S305). .
  • the common event sequence extraction unit 141 extracts the longest common subsequence (LCS: Longest Common Subsequence) among the partial sequences common to the event sequences in the same cluster (step S306). Then, the common event sequence extraction unit 141 outputs the longest common partial sequence longer than a predetermined length as a detection event sequence candidate (step S307).
  • LCS Longest Common Subsequence
  • the common event sequence extraction unit 141 performs clustering after calculating the similarity between event sequences extracted from the malware communication analysis result. Thereafter, the common event sequence extraction unit 141 extracts event sequences that are commonly confirmed among the event sequences among event sequences having a certain degree of similarity or more, and sets them as detection event sequence candidates. If there is only a single event sequence in the same cluster, the common event sequence extraction unit 141 determines that the event sequence is a detection event sequence if the length of the event sequence is greater than or equal to a certain length. Output as a candidate. Further, the common event sequence extraction unit 141 can arbitrarily set the length of an event sequence that is a detection event sequence candidate. For example, the common event sequence extraction unit 141 may set a case where two or more events are included in the sequence as the length of the minimum event sequence.
  • the common event sequence extraction unit 141 can use a common event as an element of a detection event sequence candidate. Therefore, even when a malware variant that performs a similar operation occurs, When the feature is seen, the determination by the detection unit 150 can be performed with the same event series. In other words, according to the detection apparatus 100, it is not necessary to prepare a large number of event sequences used for detection even in a situation where malware variants frequently occur. It becomes possible to respond widely. Furthermore, by using only a common event sequence, the detection apparatus 100 can reduce the number of event sequences for which collation determination is performed, and can reduce processing time.
  • FIG. 8 is a flowchart illustrating a candidate determination processing procedure performed by the event matching unit 142 and the candidate determination unit 143.
  • the event matching unit 142 acquires the event sequence of the monitoring target NW analysis result (for sequence extraction) as a detection target event sequence (step S401). In addition, the event matching unit 142 acquires the detection event sequence candidate extracted by the common event sequence extraction unit 141 as a signature sequence (step S402).
  • the event matching unit 142 performs an event matching process on the acquired detection target event series and signature series (step S403). Note that the event matching process performed by the event matching unit 142 is the same as the event matching process related to the detection unit 150, and details will be described later.
  • the candidate determination unit 143 divides the number of detected hosts for each verification event sequence determined to have been matched by the event verification processing by the number of hosts of the monitoring target NW, and calculates the detected host ratio for each verification event sequence.
  • the collation event series refers to one event series selected from the signature series. That is, the candidate determination unit 143 calculates the detected host ratio for each event series included in the signature series. Then, the candidate determination unit 143 outputs a matching event sequence whose detection host ratio is equal to or less than a certain value as a detection event sequence (step S405). Thereby, the candidate determination process which the event collation part 142 and the candidate determination part 143 perform is complete
  • the candidate determination unit 143 is based on the number of detected hosts for each detection event sequence candidate collated by the event collating unit 142, and the ratio of the number of detected hosts to the total number of hosts of the monitoring target NW is equal to or less than a certain value.
  • the detection event sequence candidate is output as a detection event sequence. Similar to the processing of the excluded event extraction unit 131, this is a process for excluding those that lead to false detection from the detection event series in advance, because there are generally few terminals that are infected with malware in the monitored NW. is there.
  • the event series candidates for detection determined to be matched in this process are not only malware communications but also event series that can be confirmed by general communications. Therefore, when used for detection, it can be determined that the event series is likely to induce false detection. For this reason, it is possible to reduce erroneous detection by the detection unit 150 by excluding, in advance, the event series of malware communication that is difficult to distinguish from general communication by the process of the candidate determination unit 143.
  • the detection apparatus 100 determines that the result of dividing the number of detected hosts for each verification event sequence determined to be matched by the event verification process by the number of hosts of the monitoring target NW is 0, that is, the detection event sequence candidate is the monitoring target NW. Only the event series that did not detect the event series of the analysis result (for series extraction) may be output as the detection event series. As a result, the detection apparatus 100 can suppress the detection event sequence from being mixed with something that may cause a false detection.
  • FIG. 9 is a flowchart illustrating a detection processing procedure performed by the detection unit 150.
  • the event matching unit 151 associated with the detection unit 150 acquires the event sequence of the monitoring target NW analysis result (for detection) as the detection target event sequence (step S501). In addition, the event matching unit 151 acquires the detection event sequence extracted by the detection sequence extraction unit 140 as a signature sequence (step S502). Then, the event matching unit 151 executes an event matching process for the acquired detection target event series and signature series (step S503).
  • the detection result output unit 152 related to the detection unit 150 determines that the host determined to be matched by the event matching process is a malware-infected host, and outputs the result as a detection result (step S504). Thereby, the detection process which the detection part 150 performs is complete
  • the detection unit 150 collates the event sequence of the monitoring target NW analysis result (for detection) generated by the sequence generation unit 130 with the detection event sequence extracted by the detection sequence extraction unit 140. Thereby, since the detection part 150 can collate the event series from which the event which can be observed in the monitoring object NW beforehand, or the time series of the event was excluded, it detects the communication normally generated in the monitoring object NW by mistake. This can reduce the situation and detect malware-infected terminals.
  • FIG. 10 is a flowchart showing a verification processing procedure by the event verification unit 151. Note that the event matching unit 142 related to the detection sequence extraction unit 140 also executes the same processing as the processing described below.
  • the event matching unit 151 acquires the event series of the monitoring target NW analysis result (for detection) as the detection target event series (step S601). In addition, the event matching unit 151 acquires the detection event sequence extracted by the detection sequence extraction unit 140 as a signature sequence (step S602).
  • the event matching unit 151 determines whether all the detection target event sequences have been determined (step S603). When all the detection target event sequences have been determined (Yes at step S603), the matching process by the event matching unit 151 ends.
  • the event matching unit 151 acquires the determination target event sequence and the host information from the detection target event sequence (Step S604). Then, the event matching unit 151 determines whether or not all the signature sequences have been determined for the host to be detected based on the acquired host information (step S605). When the determination is made for all signature series (Yes at step S605), the event matching unit 151 shifts the processing to step S603.
  • the event matching unit 151 acquires a matching event series from the signature series (step S606). Then, the event matching unit 151 acquires the longest common partial sequence length of the determination target event series and the matching event series (step S607).
  • the event matching unit 151 determines whether or not the value obtained by dividing the longest common partial sequence length by the matching event sequence length is larger than a predetermined number (step S608). When the number is larger than the number specified in advance (Yes at Step S608), the event matching unit 151 determines that the determination target event sequence matches the matching event sequence (Step S609).
  • the event matching unit 151 determines that the determination target event series does not match the matching event series (Step S610).
  • the event matching unit 151 outputs the matching event sequence, the host information of the determination target event sequence, and the determination result (step S611). Then, the event matching unit 151 shifts the process to step S605.
  • the event matching unit 151 executes the matching process with the event series to be detected by using the event series extracted based on the characteristic communication of the malware as the signature series. Thereby, the detection apparatus 100 can detect a terminal infected with malware having a similar communication pattern with few false detections.
  • the same processing as in the first embodiment may be realized by a detection system including a terminal device in the monitoring target NW and the detection device 100.
  • the terminal device generates a predetermined event in the monitoring target NW, and the detection device 100 acquires the event for each terminal device.
  • the malware-infected terminal detection system may include an information processing device that virtually generates malware communication.
  • the detection device 100 included in the detection system acquires an event generated by the information processing device as a malware analysis result.
  • the detection apparatus 100 is an event that is an event that matches a rule that characterizes communication among the communication of the monitoring target NW and the communication generated by the malware.
  • An event sequence formed based on a time series is generated from events acquired for each identifier for distinguishing NW terminals and malware from the event generation order. Then, the detection device 100 calculates a similarity between event sequences based on communication generated by malware, sets event sequences having a certain degree of similarity or more in the same cluster, and includes a plurality of event sequences in the same cluster.
  • an event sequence exists, events that appear in common among the event sequences belonging to the same cluster are extracted, and an event sequence longer than a certain length that combines the extracted events in chronological order is extracted as a detection event sequence.
  • the event sequence is extracted as a detection event sequence if the event sequence is longer than a certain length. Then, the detection apparatus 100 collates the event series based on the generated communication of the monitoring target NW and the extracted event series for detection, and determines that the event series match each other. In addition, it is detected that a malware-infected terminal exists in the monitoring target NW.
  • the detection apparatus 100 can reduce the signature that is a pattern to be verified in the monitoring target NW, and can reduce the time required for verification.
  • the detection apparatus 100 does not use a single malware communication as a signature, but sets a common event set among event sequences clustered based on the malware communication analysis result as a detection event sequence (signature). .
  • the detection apparatus 100 can detect not only known malware but also variants of malware that perform communication similar to known malware.
  • the detection device 100 has a value obtained by dividing the number of terminals of the monitoring target NW in which a predetermined event is confirmed among the events acquired for each terminal of the monitoring target NW by the total number of terminals that can be observed by the monitoring target NW. If the predetermined event is larger than a certain value, the predetermined event is set as an excluded event, and an event series is generated using only the event excluding the excluded event.
  • the detection apparatus 100 normally uses the detection event sequence in which the events that can be observed in the monitoring target NW and the time series of events are excluded in the process, and thus occurs normally in the monitoring target NW. It is possible to reduce the situation where erroneous communication is detected.
  • the detection apparatus 100 generates an event sequence from events that are generated for each identifier that distinguishes between the terminal of the monitoring target NW and the malware, and in which the generation interval between the events is not separated by a certain time or more.
  • the detection apparatus 100 can divide a series of events related to the operation of the malware, and can improve the accuracy in the detection process.
  • the detection apparatus 100 generates an event sequence by excluding duplicate events from among the events acquired for each identifier that distinguishes the terminal and malware of the monitoring target NW.
  • the detection apparatus 100 generates an event sequence by excluding duplicately confirmed events, thereby causing the execution timing of malware, instructions from the C & C server, and the like.
  • the difference in the number of repetitions can be absorbed, so that the accuracy in detection can be improved.
  • the detection apparatus 100 collates the extracted detection event series (detection event series candidates) with the event series based on the communication of the monitoring target NW (for series extraction) acquired in advance. Detected when the value obtained by dividing the number of terminals corresponding to the event sequence based on the communication of the monitoring target NW determined to match the total number of terminals that can be observed by the monitoring target NW is equal to or greater than a certain value.
  • the event series candidates an event series from which the detection event series candidates determined to match each other is excluded as a detection event series.
  • the detection apparatus 100 can more accurately create a detection event sequence serving as a signature for detecting malware, false detection of malware can be reduced.
  • the detection apparatus 100 detects the longest partial length (longest common subsequence length) among the portions common to the event sequence (for sequence extraction) based on the communication of the monitoring target NW and the detection event sequence.
  • the value divided by the event sequence length is equal to or greater than a certain value, it is determined that the event sequence based on the communication of the monitoring target NW matches the detection event sequence.
  • the detection apparatus 100 can appropriately match the matching event series for each event series to be compared.
  • the detection apparatus 100 can improve the accuracy of the event series used for detection, it can reduce false detection of malware.
  • the detection device 100 even when the host of the monitoring target NW has been infected with malware, even if the event caused by malware and the event caused by communication that occurs on business are mixed and detected, It is possible to accurately detect by collating using the common partial sequence.
  • the detection system includes a terminal device and a detection device 100 in the monitoring target NW.
  • the terminal device generates predetermined communication in the monitoring target NW.
  • the detection device 100 is an event that is an event that matches a rule that characterizes communication among predetermined communication generated by a terminal device and communication generated by malware, and is acquired for each identifier that distinguishes the terminal device or malware. From the event, an event sequence formed based on the occurrence order of the event is generated. In addition, in a cluster formed by event sequences having a degree of similarity between event sequences based on communication generated by malware, a plurality of event sequences exist in the same cluster.
  • the event series is extracted as a detection event series.
  • the detection apparatus 100 has a malware-infected terminal in the monitoring target NW. Is detected.
  • the detection system reduces signatures that are patterns to be verified in the monitoring target NW, reduces the time required for verification, and performs variants similar to known malware. It is possible to detect the malware.
  • FIG. 11 is a configuration diagram illustrating an outline of the detection device 200 according to the second embodiment. As illustrated in FIG. 11, the processing by the detection device 200 is executed by a generation unit 230, a detection event group extraction unit 240, and a detection unit 250 included in the detection device 200.
  • the detection apparatus 200 generates a detection event group from the monitoring target NW (Network) analysis result (for combination extraction) and the malware communication analysis result collected in advance before performing detection, and the monitoring target NW analysis result By comparing the event group generated from (for detection) and the event group for detection, a terminal (host) infected with malware in the monitoring target NW is detected.
  • the event means an event that captures each feature when a certain feature is confirmed in the communication.
  • an event includes an event that communication with a specific communication destination was included by analysis of a device log recorded in Firewall, WebProxy, etc., or a communication more than a certain number of times was performed within a predetermined time
  • the event that malicious data transmission is detected by IDS (Intrusion Detection System). That is, the event corresponds to an event that matches a rule characterized by a high probability of malignant communication among the communications in the monitoring target NW.
  • the detection device 200 analyzes whether or not a rule that characterizes communication is met by a predetermined external device, and acquires an event determined to match the rule as a monitoring target NW analysis result.
  • the malware communication analysis result is a result of analyzing communication data obtained when the malware is actually operated from the same viewpoint as when the above-described monitoring target NW analysis result is acquired.
  • the event group is a summary of the monitoring target NW analysis results for each host of the monitoring target NW, or a summary of the malware communication analysis results for each malware sample.
  • the event detected for each identifier of the host in the monitoring target NW stores the event type and the event occurrence time in association with each other.
  • an event “communication detection with a specific communication destination” is “October 15, 2014 12:20:12” on the host identified by “192.168.10.11.”
  • An example has occurred.
  • the event type and the event occurrence time are stored in association with each other for the event detected for each malware identifier as in the monitoring target NW analysis result.
  • the generation unit 230 includes an excluded event extraction unit 231 and an event group generation unit 232, and generates an event group for each of the monitoring target NW analysis result and the malware communication analysis result as inputs.
  • the excluded event extraction unit 231 is confirmed by more hosts in the monitoring target NW than the predetermined ratio in the analysis result. Set an event as an excluded event.
  • the event group generation unit 232 generates an event group including events that do not correspond to the excluded event from the monitoring target NW analysis result and the malware communication analysis result. Generally, since there are few infected terminals in the monitoring target NW, it can be determined that events confirmed by many hosts do not capture the characteristics of communication by malware. Therefore, the event group generation unit 232 can generate an event group by excluding an excluded event, except for an event confirmed on a terminal not infected with malware. That is, according to the event group generation unit 232, it is possible to reduce false detection in detection of infected terminals.
  • the event group generation unit 232 generates one event group for events of the same host or the same malware from events whose event occurrence interval is within a certain time. That is, the event group generation unit 232 generates an event group by dividing a series of events related to the operation of the malware. Further, the event group generation unit 232 generates an event group by excluding duplicate events from the same host or the same malware event. As a result, the event group generation unit 232 calculates the difference in the number of repetitions even when repeated communication occurs due to the execution timing of the malware or the command from the C & C (Command and Control) server. Absorbed events can be generated. That is, according to the event group generation unit 232, it is possible to improve accuracy in detection processing described later.
  • the detection event group extraction unit 240 includes a common event group extraction unit 241, an event matching unit 242 and a candidate determination unit 243, and extracts a detection event group based on the event group generated by the generation unit 230.
  • the common event group extraction unit 241 performs clustering after calculating the similarity between the event groups extracted from the malware communication analysis result. Thereafter, the common event group extraction unit 241 extracts events that are commonly confirmed among the event groups among the event groups having a certain degree of similarity or more, and sets them as detection event group candidates.
  • the event collation unit 242 collates the event group of the monitoring target NW analysis result (for combination extraction) with the detection event group candidate, and determines how much each detection event group candidate can detect the host in the monitoring target NW. calculate.
  • the candidate determination unit 243 Based on the number of detection hosts for each detection event group candidate calculated by the event matching unit 242, the candidate determination unit 243 detects the detection event group when the ratio of the number of detection hosts to the total number of monitoring target NWs is less than or equal to a certain value. Candidates are output as a detection event group.
  • the detection unit 250 includes an event matching unit 251 and a detection result output unit 252, and detects a malware-infected terminal in the monitoring target NW.
  • the event matching unit 251 matches the event group generated from the monitoring target NW analysis result (for detection) and the detection event group, similarly to the event matching unit 242 of the detected event group extraction unit 240. Check whether or not.
  • the detection result output unit 252 outputs host information determined to match the detection event group as a result of the collation by the event collation unit 251.
  • the host information is, for example, an IP (Internet Protocol) address of a terminal in the monitoring target NW.
  • the detection device 200 generates a detection event group from the monitoring target NW analysis result (for combination extraction) and the malware communication analysis result, and the event group generated from the monitoring target NW analysis result (for detection) and the detection event group. By collating with the event group, a terminal infected with malware is detected in the monitoring target NW.
  • the detection apparatus 200 detects an infected terminal using only a detection event group that is a combination pattern of common features that characterize malware among a plurality of malware communications. I do. For this reason, according to the detection apparatus 200, the pattern which should be collated with the monitoring object NW can be reduced, and the time concerning collation can be reduced. Furthermore, since the detection apparatus 200 uses a detection event group from which events and combinations of events that can be observed in the monitoring target NW in advance are excluded from processing, the situation in which communication that normally occurs in the monitoring target NW is erroneously detected is reduced. can do.
  • the detection apparatus 200 may use only the malware communication analysis result in generating the detection event group without using the monitoring target NW analysis result (for combination extraction). Details of processing related to the detection apparatus 200 will be described later using a flowchart.
  • FIG. 12 is a diagram illustrating a configuration example of the detection apparatus 200 according to the second embodiment.
  • a detection apparatus 200 includes an IF (interface) unit 210, an event group storage unit 220, a detection event group storage unit 221, a generation unit 230, It has a detection event group extraction unit 240 and a detection unit 250.
  • the IF unit 210 is, for example, a NIC (Network Interface Card) or the like, and transmits / receives various data to / from an external device.
  • the IF unit 210 receives a result obtained by analyzing a Firewall or WebProxy device log installed in the monitoring target NW as the monitoring target NW analysis result.
  • the event group storage unit 220 and the detection event group storage unit 221 are realized by, for example, a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, a hard disk, an optical disk, or the like.
  • the event group storage unit 220 and the detection event group storage unit 221 appropriately store information handled by the generation unit 230, the detection event group extraction unit 240, and the detection unit 250.
  • the event group storage unit 220 stores the event group generated by the generation unit 230.
  • the detection event group storage unit 221 stores the detection event group extracted by the detection event group extraction unit 240.
  • the detection device 200 does not require the event group storage unit 220 or the detection event group storage unit 221 as a component.
  • the detection device 200 may use an external storage device that performs the same processing as the event group storage unit 220 or the detection event group storage unit 221.
  • the generation unit 230, the detection event group extraction unit 240, and the detection unit 250 are realized by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • the generation unit 230, the detection event group extraction unit 240, and the detection unit 250 are configured such that, for example, a program stored in a storage device (not illustrated) operates the RAM by a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like. This is realized by being executed as a region.
  • the generation unit 230 includes an excluded event extraction unit 231 and an event group generation unit 232, and generates an event group for each of the monitoring target NW analysis result and the malware communication analysis result as inputs.
  • the excluded event extraction unit 231 determines that an event confirmed by more hosts in the monitoring target NW than the predetermined ratio in the analysis result is an excluded event. Set. Specifically, the excluded event extraction unit 231 acquires the total number of hosts in the monitoring target NW included in the input monitoring target NW analysis result (for combination extraction) and the number of hosts including a predetermined event. .
  • the excluded event extraction unit 231 excludes the predetermined event when the number of hosts including the predetermined event exceeds a certain ratio based on the ratio between the number of hosts including the predetermined event and the total number of hosts. Set as event. As a result, the excluded event extraction unit 231 can generate an event group using only events from which general processing performed in many hosts is excluded.
  • the event group generation unit 232 generates an event group including analysis results that do not correspond to the excluded event among the monitoring target NW analysis results and the malware communication analysis results. Specifically, the event group generation unit 232 acquires, as an input, an event that does not correspond to the excluded event from the monitoring target NW analysis result or the malware communication analysis result. At this time, the event group generation unit 232 records the event occurrence time of the read event. Then, the event group generation unit 232 determines whether the recorded event occurrence time is more than a certain time away from the event occurrence time read immediately before.
  • the event group generation unit 232 estimates that the event is an element of the same event group as the previous event, and is a determination target. Events are generated as an event group. As described above, the event group generation unit 232 generates an event group based on an event excluding general processing, and thus it is possible to reduce erroneous detection in detection of an infected terminal.
  • the detection event group extraction unit 240 includes a common event group extraction unit 241, an event matching unit 242 and a candidate determination unit 243, and extracts a detection event group based on the event group generated by the generation unit 230.
  • the common event group extraction unit 241 extracts a detection event group candidate from the event group generated by the generation unit 230. Specifically, the common event group extraction unit 241 performs clustering after calculating the similarity between the event groups extracted from the malware communication analysis result, and in the event groups having a certain degree of similarity or more, each event Extract events that are commonly confirmed between groups. The common event group extraction unit 241 determines a set of extracted events as a detection event group candidate when the number of commonly confirmed events is larger than a predetermined number. For example, when there are two or more types of events that can be commonly confirmed, the common event group extraction unit 241 outputs a set of extracted events as detection event group candidates.
  • the common event group extraction unit 241 determines that the number of types of events included in the event group is a certain number or more (for example, two or more types).
  • the event group may be extracted as a detection event group candidate as it is.
  • the common event group extraction unit 241 when a variant of malware that performs a similar operation occurs by clustering the event group and using the common event as an element of the detection event group candidate,
  • the determination by the detection unit 250 can be performed in the same event group. That is, according to the common event group extraction unit 241, it is not necessary to prepare a large number of event groups used for detection even in a situation where malware variants frequently occur. A wide variety of subspecies can be supported.
  • the detection apparatus 200 can reduce the number of event groups for which collation determination is performed and can reduce processing time.
  • the event collation unit 242 collates the event group of the monitoring target NW analysis result (for combination extraction) with the detection event group candidate, and determines how much each detection event group candidate can detect the host in the monitoring target NW. calculate. Specifically, the event matching unit 242 inputs the event group of the monitoring target NW analysis result (for combination extraction) generated by the generation unit 230 and the detection event group candidate extracted by the common event group extraction unit 241. Get as. Then, the event collating unit 242 collates both event groups, and calculates the number of hosts corresponding to the monitoring target NW analysis result (for combination extraction) determined to be collated. Then, the event matching unit 242 outputs the calculated number of hosts to the candidate determination unit 243 as an output.
  • the candidate determination unit 243 Based on the number of detection hosts for each detection event group candidate calculated by the event matching unit 242, the candidate determination unit 243 detects the detection event group when the ratio of the number of detection hosts to the total number of monitoring target NWs is less than or equal to a certain value. Candidates are output as a detection event group. Specifically, the candidate determination unit 243 divides the number of detection hosts of the detection event group candidate determined by the event matching unit 242 by the total number of hosts of the monitoring target NW, for each event group. The percentage of detected hosts is calculated. Then, the candidate determination unit 243 outputs, from the detection event group candidates, an event group having a detection host ratio equal to or lower than a certain value as a detection event group.
  • the candidate determination unit 243 excludes the detection event group in advance from the detection event group in consideration of the fact that there are few terminals that are infected with malware in the monitoring target NW, as in the processing of the exclusion event extraction unit 231. can do. For this reason, according to the process of the candidate determination part 243, it becomes possible to reduce the misdetection at the time of detecting an infected terminal in the monitoring object NW.
  • the detection unit 250 includes an event matching unit 251 and a detection result output unit 252, and detects a malware-infected terminal in the monitoring target NW.
  • the event collating unit 251 collates whether the monitoring target NW analysis result (for detection) matches the event groups of the detection event group. Specifically, the event matching unit 251 calculates the number of events that are commonly confirmed for the event groups of the input monitoring target NW analysis result (for detection) and the detection event group. Then, the event matching unit 251 determines whether or not the determination target event groups match based on the number of events confirmed in common among the event groups to be processed. Then, the detection result output unit 252 outputs host information that is determined to match the detection event group as a result of the collation by the event collation unit 251.
  • the detection result output unit 252 determines that the host that is determined to match the detection event group that is the signature is likely to be a malware-infected terminal, and is determined to match the detection event group. Malware-infected terminals are detected by outputting information that can identify the host to be detected.
  • FIG. 13 is a flowchart showing an excluded event extraction processing procedure by the excluded event extraction unit 231 according to the second embodiment.
  • the excluded event extraction unit 231 reads the monitoring target NW analysis result (for combination extraction) as an input (step S701). Then, the excluded event extraction unit 231 acquires the number of hosts in the monitoring target NW (step S702).
  • the number of hosts of the monitoring target NW may be the number of hosts existing in the monitoring target NW in advance, or the number of hosts appearing in the monitoring target NW analysis result (for combination extraction) may be monitored. It may be regarded as the number of hosts of the target NW.
  • the number of hosts in the monitoring target NW is the total number of hosts that can be observed in the monitoring target NW, and when the total number of hosts existing in advance is observed, the total number of hosts is applied and the total number of hosts When the number is unknown, the total number of hosts that can be observed based on the monitoring target NW analysis result (for combination extraction) is applied.
  • the excluded event extraction unit 231 determines whether or not the process of determining whether to exclude all events included in the read monitoring target NW analysis result (for combination extraction) is performed ( Step S703). If it is determined that the process has been executed for all events, the excluded event extraction process ends (Yes in step S703).
  • the excluded event extracting unit 231 continues the excluded event extracting process. At this time, the excluded event extraction unit 231 divides the number of hosts detected in a certain event by the number of hosts of the monitoring target NW, and acquires the event detection rate (step S704).
  • the excluded event extraction unit 231 determines whether or not the detection ratio is larger than a value specified in advance (step S705). When it is determined that the detection ratio is larger than the value specified in advance (Yes at Step S705), the excluded event extraction unit 231 sets the event to be determined as an excluded event (Step S706). On the other hand, if it is determined that the detection ratio is not greater than the value specified in advance (No in step S705), the excluded event extraction unit 231 continues processing for different events without setting the event as an excluded event. (Transition to step S703).
  • the excluded event extraction unit 231 determines that an event confirmed by many hosts does not capture only the characteristics of communication by malware, extracts the event, and sets it as an excluded event. As a result, the excluded event extraction unit 231 can reduce false detection in the infected terminal detection process.
  • FIG. 14 is a flowchart showing an event group generation processing procedure by the event group generation unit 232.
  • the event group generation unit 232 processes all host or malware analysis results for event group generation processing of the monitoring target NW analysis results (for combination extraction and detection) and malware communication analysis results. It is determined whether or not the process has been completed (step S801). If it is determined that the process has been executed for all, the event group generation process ends (Yes in step S801).
  • the event group generation unit 232 specifies the host or malware that reads the analysis results (Step S802).
  • the event group generation unit 232 generates an event group for each host in the monitoring target NW when extracting the event group from the monitoring target NW analysis result.
  • host identification for example, the IP address of the host is used.
  • the event group generation unit 232 generates an event group for each malware when generating the event group from the malware communication analysis result.
  • a malware hash value is used for malware identification. It is assumed that both the monitoring target NW analysis result and the malware communication analysis result are sorted by the time when the event is confirmed.
  • the event group generation unit 232 initializes the immediately preceding event time and the event group (during processing) prior to the process described below (step S803).
  • the event group generation unit 232 determines whether or not the analysis result of the designated host or malware has been processed (step S804). If it is determined that the analysis result has been processed (Yes at step S804), the event group generation unit 232 determines whether there is an event group that is not output as an event group (that is, an event group that is being generated). (Step S805). If there is an event group that has not been output as an event group (Yes at step S805), the event group generation unit 232 outputs the event group being processed as an event group (step S806).
  • step S805 if there is no event group being processed that has not been output as an event group (No in step S805), the event group generation unit 232 moves the process to step S801.
  • step S804 If it is determined in step S804 that the analysis result has not been processed (No in step S804), the event group generation unit 232 reads the specified host or malware event and the event occurrence time (step S807). Then, the event group generation unit 232 determines whether or not the read event corresponds to an exclusion event (step S808). When it corresponds to the excluded event (Yes at Step S808), the event group generation unit 232 shifts the process to Step S804 without adding the read event to the event group.
  • the event group generation unit 232 records the event occurrence time of the read event (Step S809). Then, the event group generation unit 232 determines whether the recorded event occurrence time is separated from the previous event time by a certain time or more (step S810).
  • the event group generation unit 232 Outputs the event group being processed as an event group (step S811). In this case, the event group generation unit 232 initializes the output event group (during processing) (step S812).
  • step S810 when the event occurrence time is not separated from the previous event time by a certain time or longer (No in step S810), the event group generation unit 232 sets the event occurrence time of the read event as the previous event time (step S813). . In other words, the event group generation unit 232 estimates that the event is an element of the same event group as the previous event when the event occurrence time is not separated from the previous event time by a certain time or more, and the event group (process It is determined whether or not to be added (step S814 to be described later).
  • the event group generation unit 232 determines whether or not the read event is included in the event group (during processing) (step S814).
  • the event group generation unit 232 moves the process to step S804 in order not to add a duplicate event to the event group (processing).
  • step S814 when the read event is not included in the event group (processing) (No in step S814), the event group generation unit 232 adds the event to the event group (processing) (step S815). Thereafter, the event group generation unit 232 causes the process to proceed to step S804.
  • the event group generation unit 232 when the read event corresponds to the excluded event, the event group generation unit 232 does not incorporate the event into the event group. In addition, the event group generation unit 232 records the time at which the event occurred, compares the time at which the event occurred with the time at which the previous event occurred, and determines whether or not a certain time or more has passed. As a result, the event group generation unit 232 generates an event group so that one event group is formed by an event having a short occurrence interval between events. Furthermore, the event group generation unit 232 determines whether or not an event to be processed is included in the event group (during processing), and if it is included, the event is not added to the event group. That is, there are no overlapping events in the generated event group. Further, the event group generation unit 232 outputs the event group only when the number of events included in the event group is equal to or greater than a certain value.
  • FIG. 15 is a flowchart showing a common event group extraction processing procedure by the common event group extraction unit 241.
  • the common event group extraction unit 241 reads an event group extracted from the malware communication analysis result as a processing target (step S901). Then, the common event group extraction unit 241 generates a similarity matrix between the event groups and performs hierarchical clustering (step S902).
  • the similarity is calculated based on the Jaccard coefficient between the event groups.
  • the common event group extraction unit 241 sets event groups having a similarity equal to or higher than a preset degree in the same cluster in the hierarchical clustering to be performed (step S903).
  • the common event group extraction unit 241 determines whether or not the process of extracting the common event group from all the clusters has been executed (step S904). When it is determined that the process of extracting the common event group from all the clusters has been executed (Yes in step S904), the common event group extracting process by the common event group extracting unit 241 ends.
  • the common event group extracting unit 241 specifies the cluster from which the common event group is extracted (step S905). .
  • the common event group extraction unit 241 extracts a set of events that can be commonly confirmed by event groups in the same cluster (step S906). Then, when there are more types of events that can be confirmed in common than the predetermined number, the common event group extraction unit 241 outputs the set of events as detection event group candidates (step S907). For example, when there are two or more types of events that can be commonly confirmed, the common event group extraction unit 241 may output a set of the events as detection event group candidates.
  • the common event group extraction unit 241 sets event groups with a certain degree of similarity or more in the same cluster, and if there is only a single event group in the same cluster, the events included in the event group
  • the event group may be extracted as a detection event group when the number of types is a certain number or more.
  • the common event group extraction unit 241 performs clustering after calculating the similarity between the event groups extracted from the malware communication analysis result. Thereafter, the common event group extraction unit 241 extracts events that are commonly confirmed among the event groups among the event groups having a certain degree of similarity or more, and sets them as detection event group candidates. As a result, the common event group extraction unit 241 can use a common event as an element of a detection event group candidate. Therefore, even when a malware variant that performs a similar operation occurs, When the feature is seen, the determination by the detection unit 250 can be performed in the same event group. That is, according to the detection apparatus 200, it is not necessary to prepare a large number of event groups used for detection even in a situation where malware variants frequently occur. It becomes possible to respond widely. Furthermore, by using only a common event group, the detection apparatus 200 can reduce the number of event groups for which collation determination is performed and can reduce processing time.
  • FIG. 16 is a flowchart illustrating a candidate determination processing procedure by the event matching unit 242 and the candidate determination unit 243.
  • the event matching unit 242 acquires an event group of the monitoring target NW analysis result (for combination extraction) as a detection target event group (step S1001). In addition, the event matching unit 242 acquires the detection event group candidate extracted by the common event group extraction unit 241 as a signature group (step S1002).
  • the event matching unit 242 performs event matching processing on the acquired detection target event group and signature group (step S1003). Note that the event matching process by the event matching unit 242 is the same as the event matching process according to the detection unit 250, and the details will be described later.
  • the candidate determination unit 243 divides the number of detected hosts for each verification event group determined to be matched by the event verification process by the number of hosts of the monitoring target NW, and calculates the detected host ratio for each verification event group. Calculate (step S1004).
  • the collation event group refers to one event group selected from the signature group. That is, the candidate determination unit 243 calculates the detection host ratio for each event group included in the signature group. Then, the candidate determination unit 243 outputs a matching event group whose detection host ratio is equal to or less than a certain value as a detection event group (step S1005). Thereby, the candidate determination process which the event collation part 242 and the candidate determination part 243 perform is complete
  • the candidate determination unit 243 determines, based on the number of detection hosts for each detection event group candidate collated by the event collation unit 242, that the ratio of the number of detection hosts to the total number of hosts to be monitored NW is equal to or less than a certain value
  • the detection event group candidate is output as a detection event group. This is a process for excluding those that lead to false detection from the detection event group in advance, because the monitoring target NW generally has few terminals infected with malware, similar to the process of the excluded event extraction unit 231. is there.
  • the detection event group candidates determined to match in this process are not only malware communications but also event groups that can be confirmed by general communications. Therefore, when used for detection, it can be determined that the event group is likely to induce false detection. For this reason, it is possible to reduce erroneous detection in the detection unit by excluding in advance the event group of malware communication that is difficult to distinguish from general communication by the process of the candidate determination unit 243.
  • the detection device 200 divides the number of detection hosts for each verification event group determined to be matched by the event verification process by the number of hosts of the monitoring target NW, that is, the detection event group candidate is the monitoring target NW. Only the event group that has not detected the event group of the analysis result (for combination extraction) may be output as the detection event group. As a result, the detection apparatus 200 can prevent the detection event group from being mixed with something that can cause a false detection.
  • FIG. 17 is a flowchart illustrating a detection processing procedure performed by the detection unit 250.
  • the event collation unit 251 associated with the detection unit 250 acquires the event group of the monitoring target NW analysis result (for detection) as the detection target event group (step S1101).
  • the event matching unit 251 acquires the detection event group extracted by the detection event group extraction unit 240 as a signature group (step S1102). Then, the event matching unit 251 executes event matching processing for the acquired detection target event group and signature group (step S1103).
  • the detection result output unit 252 related to the detection unit 250 determines that the host determined to be matched by the event matching process is a malware-infected host, and outputs the result as a detection result (step S1104). Thereby, the detection process which the detection part 250 performs is complete
  • the detection unit 250 collates the event group of the monitoring target NW analysis result (for detection) generated by the generation unit 230 with the detection event group extracted by the detection event group extraction unit 240. As a result, the detection unit 250 can collate event groups from which events or combinations of events that can be observed in the monitoring target NW in advance are excluded, so that the communication that normally occurs in the monitoring target NW is erroneously detected. Can be detected and malware-infected terminals can be detected.
  • FIG. 18 is a flowchart showing a verification processing procedure by the event verification unit 251. Note that the event matching unit 242 associated with the detected event group extraction unit 240 also executes the same processing as the processing described below.
  • the event matching unit 251 acquires an event group of the monitoring target NW analysis result (for detection) as a detection target event group (step S1201). Further, the event matching unit 251 acquires the detection event group extracted by the detection event group extraction unit 240 as a signature group (step S1202).
  • the event collation part 251 determines whether all the detection object event groups were determined (step S1203). When all the detection target event groups have been determined (Yes at Step S1203), the matching process by the event matching unit 251 ends.
  • the event matching unit 251 acquires the determination target event group and the host information from the detection target event group (Step S1204). Then, the event matching unit 251 determines whether or not all the signature groups have been determined for the host to be detected based on the acquired host information (step S1205). When the determination is made for all signature groups (Yes at step S1205), the event matching unit 251 shifts the process to step S1203.
  • the event matching unit 251 acquires a matching event group from the signature group (Step S1206). Then, the event matching unit 251 acquires the number of events confirmed in common between the determination target event group and the matching event group (step S1207).
  • the event matching unit 251 determines whether or not a value obtained by dividing the number of commonly confirmed events by the number of events included in the matching event group is larger than a number specified in advance (step S1208).
  • the event matching unit 151 determines that the determination target event group matches the matching event group (Step S1209).
  • the event matching unit 251 determines that the determination target event group and the matching event group do not match (Step S1210).
  • the event matching unit 251 outputs the matching event group, the host information of the determination target event group, and the determination result (step S1211). Then, the event matching unit 251 moves the process to step S1205.
  • the event matching unit 251 executes a matching process with the event group to be detected using the event group extracted based on the characteristic communication order of the malware as a signature group. Thereby, the detection apparatus 200 can detect a terminal infected with malware having a similar communication pattern with few false detections.
  • the process similar to 2nd embodiment may be implement
  • the terminal device generates a predetermined event in the monitoring target NW, and the detection device 200 acquires the event for each terminal device.
  • the malware-infected terminal detection system may include an information processing device that virtually generates malware communication.
  • the detection apparatus 200 included in the detection system acquires an event generated by the information processing apparatus as a malware analysis result.
  • the detection apparatus 200 is an event that is an event that matches a rule that characterizes communication among the communication of the monitoring target NW and the communication generated by malware.
  • An event group formed by a combination of non-overlapping events is generated from an event acquired for each identifier for distinguishing NW terminals or malware.
  • the detection apparatus 200 includes a plurality of event groups in the same cluster.
  • Events that appear in common among event groups belonging to the same cluster are extracted, and when the number of extracted events is a certain number or more, a set of extracted events is extracted as a detection event group, or within the same cluster
  • the event group is extracted as a detection event group when the number of types of events included in the event group is a predetermined number or more. Then, when it is determined that the event group based on the generated communication of the monitoring target NW matches the extracted detection event group, the detection apparatus 200 has a malware-infected terminal in the monitoring target NW. Detecting that
  • the detection apparatus 200 can reduce the signature that is a pattern to be verified in the monitoring target NW, and can reduce the time required for verification.
  • the detection apparatus 200 does not use a single malware communication as a signature, but sets a common set of events among the event groups clustered based on the malware communication analysis result as a detection event group (signature). .
  • the detection apparatus 200 can improve the detection accuracy of the malware-infected terminal.
  • the detection apparatus 200 can detect not only known malware but also a terminal infected with a variant malware that performs communication similar to the known malware.
  • the detection device 200 has a value obtained by dividing the number of terminals of the monitoring target NW that has generated the predetermined event among the events acquired for each terminal of the monitoring target NW by the total number of terminals that can be observed by the monitoring target NW. If it is larger than a certain value, an event group is generated only from events excluding a predetermined event.
  • the detection apparatus 200 uses a detection event group from which events or combinations of events that can be observed in advance in the monitoring target NW are excluded from the processing, and thus normally occurs in the monitoring target NW.
  • the situation of erroneously detecting communication can be reduced.
  • the detection device 200 generates an event group from events whose occurrence intervals between events are not separated by a certain time or more among events acquired for each identifier that distinguishes a terminal of the monitoring target NW and malware.
  • the detection apparatus 200 can divide a series of events related to the operation of the malware, and can improve the accuracy in the detection process.
  • the detection apparatus 200 collates the event groups of the extracted detection event group and the event group based on the communication of the monitoring target NW (for combination extraction) acquired in advance, and the event groups match. If the value obtained by dividing the number of terminals corresponding to the event group based on the communication of the monitoring target NW that is verified by the total number of terminals that can be observed by the monitoring target NW is greater than or equal to a certain value, the event groups match. The event group from which the detection event group matched as having been excluded is extracted as a new detection event group.
  • the detection apparatus 200 can create a detection event group serving as a signature for detecting malware more accurately, it is possible to reduce erroneous detection of malware.
  • the detection apparatus 200 determines the number of events that appear in common among the events included in the event group based on the communication of the monitoring target NW and the detection event group, and the total number of events included in the detection event group. When the value divided by is equal to or greater than a certain value, it is determined that the event group based on the communication of the monitoring target NW matches the detection event group.
  • the detection apparatus 200 can appropriately match matching event groups for each event group to be compared. As a result, since the detection apparatus 200 can improve the accuracy of the event group used for detection, it is possible to reduce false detection of malware.
  • the detection system includes a terminal device and a detection device 200 in the monitoring target NW.
  • the terminal device generates predetermined communication in the monitoring target NW.
  • the detection device 200 is an event that is an event that matches a rule that characterizes communication among predetermined communication generated by a terminal device and communication generated by malware, and is acquired for each identifier that distinguishes the terminal device or malware.
  • An event group formed by a combination of non-overlapping events is generated from the event.
  • the detection device 200 when a plurality of event groups exist in the same cluster in a cluster formed by event groups having a similarity between event groups based on communication generated by malware, the detection device 200 Events that appear in common among event groups belonging to the same cluster are extracted, and when the number of extracted events is a certain number or more, a set of extracted events is extracted as a detection event group, or within the same cluster When only a single event group exists, the event group is extracted as a detection event group when the number of types of events included in the event group is a predetermined number or more. Further, when it is determined that the event group based on the communication of the terminal device matches the extracted detection event group, the detection device 200 has a malware-infected terminal in the monitored network. Is detected.
  • the detection system according to the second embodiment reduces signatures that are patterns to be verified in the monitoring target NW, reduces the time required for verification, and performs variants similar to known malware. It is possible to detect the malware.
  • each component of each illustrated apparatus is functionally conceptual and does not necessarily need to be physically configured as illustrated.
  • the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured.
  • all or any part of each processing function performed in each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware by wired logic.
  • program In addition, it is possible to create a program in which processing executed by the detection devices 100 and 200 according to the above-described embodiment is described in a language that can be executed by a computer. In this case, the same effect as the above-described embodiment can be obtained by the computer executing the program. Further, such a program may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read by the computer and executed to execute the same processing as in the above embodiment. Below, an example of the computer which performs the detection program which implement
  • FIG. 19 is a diagram showing a computer that executes a malware-infected terminal detection program.
  • the computer 1000 includes, for example, a memory 1010, a CPU (Central Processing Unit) 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network. Interface 1070. These units are connected by a bus 1080.
  • a bus 1080 for example, a bus 1010, a CPU (Central Processing Unit) 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network. Interface 1070.
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM (Random Access Memory) 1012.
  • the ROM 1011 stores a boot program such as BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • the hard disk drive interface 1030 is connected to the hard disk drive 1090.
  • the disk drive interface 1040 is connected to the disk drive 1041.
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1041.
  • a mouse 1110 and a keyboard 1120 are connected to the serial port interface 1050.
  • a display 1130 is connected to the video adapter 1060.
  • the hard disk drive 1090 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. Each piece of information described in the above embodiment is stored in, for example, the hard disk drive 1090 or the memory 1010.
  • the detection program is stored in the hard disk drive 1090 as a program module in which a command executed by the computer 1000 is described, for example.
  • a program module describing each process executed by the detection apparatuses 100 and 200 described in the above embodiment is stored in the hard disk drive 1090.
  • data used for information processing by the detection program is stored in the hard disk drive 1090 as program data, for example.
  • the CPU 1020 reads out the program module 1093 and the program data 1094 stored in the hard disk drive 1090 to the RAM 1012 as necessary, and executes the above-described procedures.
  • the program module 1093 and the program data 1094 related to the detection program are not limited to being stored in the hard disk drive 1090.
  • the program module 1093 and the program data 1094 are stored in a removable storage medium and read by the CPU 1020 via the disk drive 1041 or the like. May be.
  • the program module 1093 and the program data 1094 related to the detection program are stored in another computer connected via a network such as a LAN (Local Area Network) or a WAN (Wide Area Network), and via the network interface 1070. It may be read by the CPU 1020.
  • LAN Local Area Network
  • WAN Wide Area Network

Abstract

 検出装置(100、200)は、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する。そして、検出装置(100、200)は、類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントを検知用イベントの集合として抽出する。そして、検出装置(100、200)は、生成された監視対象ネットワークの通信に基づくイベントの集合と、抽出された検知用イベントの集合とが合致していると判定された場合に、監視対象ネットワークにマルウェア感染端末が存在していることを検知する。

Description

マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム
 本発明は、マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラムに関する。
 近年、情報漏えいや不正アクセス等の脅威をもたらす不正プログラム(以下、「マルウェア」と呼ぶ)が猛威を振るっている。マルウェアは、感染後に攻撃者からサーバ等を介して指令を受け取り、攻撃や情報漏えいなどの脅威をもたらす。昨今のマルウェアは攻撃者との通信を正規の通信に偽装する手法が取られる(例えば、非特許文献1参照)。
 発見されるマルウェアの数の増加も著しく、数秒に1つの新たなマルウェアが出現しているということが報告されている(例えば、非特許文献2参照)。そのため、アンチウィルスソフト等のホスト側での対策だけではマルウェアによる脅威を防ぎきれない。そこで、通信データを分析し、マルウェアに感染した端末を特定することでマルウェアの脅威を低減させる手法が注目されている(例えば、非特許文献3参照)。
 マルウェアに感染した端末を検知する手法として、マルウェアに感染した端末に見られる通信の特徴をパターン化し、マルウェアに感染した端末を検知する手法が知られている(例えば、特許文献1参照)。マルウェアに感染した端末を検知する手法の一例は、通信データを分析対象とし、マルウェア解析で得られた通信データをパターン化し、監視対象ネットワーク(NW)の通信に同様のパターンが現れるかを突き合わせることでマルウェアに感染した端末を検知する手法である。
特許第5009244号公報
高度なサイバー攻撃の動向、[online]、[平成26年9月4日検索]、インターネット<URL:http://www.fireeye.com/jp/ja/resources/pdfs/fireeye-advanced-cyber-attack-landscape.pdf> Annual Report Pandalabs 2013 summary、[online]、[平成26年9月3日検索]、インターネット<URL:http://press.pandasecurity.com/wp-content/uploads/2010/05/PandaLabs-Annual-Report_2013.pdf> Sebastian Garcia他、Survey on network-based botnet detection methods、Security and communication networks 2013、[online]、[平成26年3月13日検索]、インターネット<URL:http://onlinelibrary.wiley.com/doi/10.1002/sec.800/full>
 しかしながら、上記従来の技術には以下のような問題があった。すなわち、前述の通り昨今はマルウェアの数が膨大であるため、全マルウェアの全通信をパターン化してしまうとパターン数が膨大となり、監視対象のネットワークの通信に当該パターンが存在するか否かを判定するのに長い時間を要する。また、前述の従来技術では、通信ペイロードごとに状態を定義し、状態の遷移をパターンとするため、マルウェアが異なる通信ペイロードで通信するだけで新たなパターンが生成されてしまう。さらに、マルウェアの通信には感染していない端末の通信と類似の通信も確認されるため、全ての通信パターンを監視対象のネットワークの通信での検知に使うと、誤検知を誘発してしまう。
 そこで、本発明は、上述の課題を解決し、マルウェア感染端末を検出する装置、方法およびプログラムを提供することを目的とする。
 上述した課題を解決し、目的を達成するために、マルウェア感染端末の検出装置は、監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成部と、マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出部と、前記生成部によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出部によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知部と、を備えることを特徴とする。
 本発明によれば、監視対象NWで照合すべきパターンを削減し、照合にかかる時間を削減することができるとともに、監視対象NWで通常発生する通信を誤って検知する事態を削減することができる。
図1は、第一の実施の形態に係る検出装置の概要を示す構成図である。 図2は、第一の実施の形態に係る監視対象NW分析結果の一例を示す図である。 図3は、第一の実施の形態に係るマルウェア通信分析結果の一例を示す図である。 図4は、第一の実施の形態に係る検出装置の構成例を示す図である。 図5は、除外イベント抽出部による除外イベント抽出処理手順を示すフローチャートである。 図6は、イベント系列生成部によるイベント系列生成処理手順を示すフローチャートである。 図7は、共通イベント系列抽出部による共通イベント系列抽出処理手順を示すフローチャートである。 図8は、イベント照合部および候補判定部による候補判定処理手順を示すフローチャートである。 図9は、検知部による検知処理手順を示すフローチャートである。 図10は、イベント照合部による照合処理手順を示すフローチャートである。 図11は、第二の実施の形態に係る検出装置の概要を示す構成図である。 図12は、第二の実施の形態に係る検出装置の構成例を示す図である。 図13は、除外イベント抽出部による除外イベント抽出処理手順を示すフローチャートである。 図14は、イベント群生成部によるイベント群生成処理手順を示すフローチャートである。 図15は、共通イベント群抽出部による共通イベント群抽出処理手順を示すフローチャートである。 図16は、イベント照合部および候補判定部による候補判定処理手順を示すフローチャートである。 図17は、検知部による検知処理手順を示すフローチャートである。 図18は、イベント照合部による照合処理手順を示すフローチャートである。 図19は、マルウェア感染端末の検出プログラムを実行するコンピュータを示す図である。
 以下に、本願に係るマルウェア感染端末の検出装置、マルウェア感染端末の検出方法、マルウェア感染端末の検出プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係るマルウェア感染端末の検出装置、マルウェア感染端末の検出方法、マルウェア感染端末の検出プログラムが限定されるものではない。
[第一の実施の形態]
 以下の実施の形態では、第一の実施の形態に係る検出装置の構成、第一の実施の形態に係る検出装置の処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
[第一の実施の形態の概要]
 まず、図1を用いて、マルウェア感染端末の検出装置である検出装置100が行う処理の概要を説明する。図1は、第一の実施の形態に係る検出装置100の概要を示す構成図である。図1に示すように、検出装置100による処理は、検出装置100が有する系列生成部130と検知用系列抽出部140と検知部150とによって実行される。検出装置100は、検出を行う前にあらかじめ収集しておいた監視対象NW(Network、ネットワーク)分析結果(系列抽出用)とマルウェア通信分析結果から検知用イベント系列を生成し、監視対象NW分析結果(検知用)から生成したイベント系列と検知用イベント系列を照合することにより、監視対象NWにおいてマルウェアに感染している端末(ホスト)を検出する。
 ここで、監視対象NW分析結果(系列抽出用及び検知用)には、監視対象NW内のホストを識別する識別子、イベント、イベント発生時刻のフィールドを有するデータが格納されている。なお、イベントとは、通信に一定の特徴が確認できた際の、各々の特徴を捉えた事象を意味する。例えば、イベントは、FirewallやWebProxyなどに記録される装置ログの分析により特定の通信先との通信が含まれていたという事象、あらかじめ決められた時間内に一定回数以上の通信が行われたという事象、IDS(Intrusion Detection System)によって悪性なデータ送信が検知されたという事象などが該当する。すなわち、イベントは、監視対象NWにおける通信のうち、悪性の通信の蓋然性が高いものと特徴付けられるルールに合致する事象が該当する。検出装置100は、例えば、所定の外部装置によって通信を特徴付けるルールに合致するか否かの分析が行われ、ルールに合致したと判定されたイベントを監視対象NW分析結果として取得する。なお、マルウェア通信分析結果は、マルウェアを実際に動作させた際の通信データを、前述の監視対象NW分析結果を取得した際と同様の観点で分析した結果である。また、イベント系列とは、監視対象NW分析結果を監視対象NWのホストごとに時系列に沿って並べたもの、またはマルウェア通信分析結果をマルウェア検体ごとに時系列に沿って並べたものである。
 ここで、図2を用いて、監視対象NW分析結果の一例を示す。図2は、第一の実施の形態に係る監視対象NW分析結果の一例を示す図である。図2に示すように、監視対象NW内ホストの識別子ごとに検出されたイベントは、イベントの種類と、イベント発生時刻とが対応づけられて格納される。例えば、図2では、「192.168.10.11」により識別されるホストで、「特定の通信先との通信検知」というイベントが「2014年10月15日12時20分12秒」に発生した例を示している。次に、図3を用いて、マルウェア通信分析結果の一例を示す。図3は、第一の実施の形態に係るマルウェア通信分析結果の一例を示す図である。図3に示すように、マルウェア識別子ごとに検出されたイベントについても監視対象NW分析結果と同様に、イベントの種類と、イベント発生時刻とが対応づけられて格納される。
 以下に、検出装置100が行う処理について、流れに沿って説明する。検出装置100に係る系列生成部130は、除外イベント抽出部131と、イベント系列生成部132とを備え、監視対象NW分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント系列を生成する。系列生成部130は、監視対象NWの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象NWの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する。例えば、系列生成部130は、イベントの集合として、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する。以下に、除外イベント抽出部131およびイベント系列生成部132について説明する。
 具体的には、除外イベント抽出部131は、監視対象NW分析結果(系列抽出用)が入力された場合に、当該分析結果において多くの監視対象NW内のホストで確認されているイベントを除外イベントと設定する。
 イベント系列生成部132は、監視対象NW分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しないイベントからなるイベント系列を生成する。一般に、監視対象NWには感染している端末は少ないため、多くのホストで確認されるイベントはマルウェアによる通信の特徴を捉えたものではないと判断できる。そのため、イベント系列生成部132は、除外イベントを除くことにより、マルウェアに感染していない端末で確認されるイベントを除いてイベント系列を生成することができる。すなわち、イベント系列生成部132によれば、感染端末の検出における誤検知を低減させることが可能になる。
 また、イベント系列生成部132は、同一ホストまたは同一マルウェアのイベントについて、イベントの発生間隔が一定時間以内であるものからひとつのイベント系列を生成する。すなわち、イベント系列生成部132は、マルウェアの動作に関連する一連の事象を区切ることでイベント系列を生成する。さらに、イベント系列生成部132は、同一ホストまたは同一マルウェアのイベントのうち、重複したイベントを除外してイベント系列を生成する。
 イベント系列生成部132の処理について、具体例を挙げて説明する。例えば、あるホストの分析結果として、イベントA、イベントB、イベントCが「ABCABCAA」の順で確認されたとする。例えば、イベントAは、ある特定のサーバへのアクセスを示すイベントであり、イベントBは、ある特定のサーバからファイルをダウンロードすることを示すイベントであり、イベントCは、イベントBでダウンロードしたファイルに基づき所定のサーバにアクセスしたことを示すイベントである。このとき、イベント系列生成部132は、「ABCABCAA」という一連のイベントから、重複したイベントを除外する。すなわち、イベント系列生成部132は、「ABCABCAA」から、イベント系列として「ABC」を生成する。つまり、イベント系列生成部132は、あるホストのイベントを発生時刻が早いものから順にイベント系列の要素として追加し、二回目以降に確認されたイベントはイベント系列に追加しない。
 これにより、イベント系列生成部132は、マルウェアの実行タイミングやC&C(Command and Control)サーバからの指令などに起因して繰り返しの通信が発生している場合であっても、繰り返しの回数の差を吸収したイベント系列を生成できる。すなわち、イベント系列生成部132によれば、後述する検知処理における精度の向上を図ることが可能となる。
 続いて、検出装置100に係る検知用系列抽出部140の処理について説明する。検知用系列抽出部140は、共通イベント系列抽出部141と、イベント照合部142と候補判定部143とを備え、系列生成部130が生成したイベント系列に基づいて、検知用イベント系列を抽出する。検知用系列抽出部140は、マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する。以下に、共通イベント系列抽出部141、イベント照合部142および候補判定部143について説明する。
 具体的には、共通イベント系列抽出部141は、マルウェア通信分析結果から抽出されたイベント系列間の類似度を算出した上でクラスタリング(clustering)を行う。その後、共通イベント系列抽出部141は、一定以上の類似度を有するイベント系列同士において、各イベント系列間で共通的に確認されるイベントについて、順序を加味して抽出し、検知用イベント系列候補とする。
 イベント照合部142は、監視対象NW分析結果(系列抽出用)のイベント系列と検知用イベント系列候補とを照合し、各検知用イベント系列候補が監視対象NW内のホストをどの程度検出しうるかを算出する。
 候補判定部143は、イベント照合部142で算出した検知用イベント系列候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント系列候補を検知用イベント系列として出力する。
 続いて、検出装置100に係る検知部150の処理について説明する。検知部150は、イベント照合部151と検知結果出力部152とを備え、監視対象NW内のマルウェア感染端末を検知する。検知部150は、系列生成部130によって生成された監視対象NWの通信に基づくイベントの集合と、検知用系列抽出部140によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象NWにマルウェア感染端末が存在していることを検知する。以下に、イベント照合部151および検知結果出力部152について説明する。
 具体的には、イベント照合部151は、検知用系列抽出部140のイベント照合部142と同様に、監視対象NW分析結果(検知用)から生成されたイベント系列と検知用イベント系列とが合致するかどうかを照合する。
 検知結果出力部152は、イベント照合部151での照合の結果、検知用イベント系列と合致したと判定されるホスト情報を出力する。ホスト情報とは、例えば、監視対象NW内の端末のIP(Internet Protocol)アドレスなどである。
 このように、検出装置100は、監視対象NW分析結果(系列抽出用)とマルウェア通信分析結果から検知用イベント系列を生成し、監視対象NW分析結果(検知用)から生成したイベント系列と検知用イベント系列とを照合することにより、監視対象NWにおいてマルウェアに感染している端末を検出する。
 上記のように、第一の実施の形態に係る検出装置100は、複数のマルウェアの通信のうち、マルウェアを特徴付ける共通的な特徴の時系列パターンである検知用イベント系列のみを用いて感染端末の検出を行う。このため、検出装置100によれば、監視対象NWで照合すべきパターンを削減し、照合にかかる時間を削減することができる。さらに、検出装置100は、あらかじめ監視対象NWで観測されうるイベントやイベントの時系列が除外された検知用イベント系列を処理に用いるため、監視対象NWで通常発生する通信を誤って検知する事態を削減することができる。
 なお、検出装置100は、検知用イベント系列の生成では、監視対象NW分析結果(系列抽出用)を用いず、マルウェア通信分析結果のみを用いても良い。また、検出装置100に係る処理についての詳細は、フローチャートを用いて後記する。
[第一の実施の形態に係る検出装置の構成]
 次に、図4を用いて、第一の実施の形態に係る検出装置100について説明する。図4は、第一の実施の形態に係る検出装置100の構成例を示す図である。
 図4に例示するように、第一の実施の形態に係る検出装置100は、IF(interface)部110と、イベント系列記憶部120と、検知用イベント系列記憶部121と、系列生成部130と、検知用系列抽出部140と、検知部150とを有する。
 IF部110は、例えば、NIC(Network Interface Card)等であり、外部装置との間で各種データを送受信する。例えば、IF部110は、監視対象NW分析結果として、監視対象NWに設置されたFirewallやWebProxyの装置ログ等を分析した結果を受信する。
 イベント系列記憶部120及び検知用イベント系列記憶部121は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等によって実現される。イベント系列記憶部120及び検知用イベント系列記憶部121は、系列生成部130や、検知用系列抽出部140や、検知部150が扱う情報を適宜記憶する。
 例えば、イベント系列記憶部120は、系列生成部130が生成したイベント系列を記憶する。また、検知用イベント系列記憶部121は、検知用系列抽出部140が抽出した検知用イベント系列を記憶する。なお、検出装置100は、イベント系列記憶部120または検知用イベント系列記憶部121を構成要素とすることを要しない。例えば、検出装置100は、イベント系列記憶部120または検知用イベント系列記憶部121と同様の処理を行う外部記憶装置を利用してもよい。
 系列生成部130、検知用系列抽出部140及び検知部150は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。また、系列生成部130、検知用系列抽出部140及び検知部150は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、図示しない記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。
 系列生成部130は、除外イベント抽出部131と、イベント系列生成部132とを備え、監視対象NW分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント系列を生成する。除外イベント抽出部131は、監視対象NW分析結果(系列抽出用)が入力された場合に、当該分析結果において多くの監視対象NW内のホストで確認されているイベントを除外イベントと設定する。具体的には、除外イベント抽出部131は、入力された監視対象NW分析結果(系列抽出用)に含まれる監視対象NW内の全ホスト数と、所定のイベントが含まれるホスト数とを取得する。続いて、除外イベント抽出部131は、所定のイベントが含まれるホスト数と全ホスト数との割合に基づき、所定のイベントが含まれるホストが一定の割合を超える場合には、所定のイベントを除外イベントと設定する。これにより、除外イベント抽出部131は、多くのホストで行われている一般的な処理を排除したイベントのみでイベント系列を生成させることを可能とする。
 イベント系列生成部132は、監視対象NW分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しないイベントからなるイベント系列を生成する。具体的には、イベント系列生成部132は、監視対象NW分析結果またはマルウェア通信分析結果のうち、除外イベントに該当しないイベントを入力として取得する。このとき、イベント系列生成部132は、読み込んだイベントのイベント発生時刻を記録する。そして、イベント系列生成部132は、記録したイベント発生時刻が直前に読み込んだイベント発生時刻から一定時間以上離れているかを判定する。そして、イベント系列生成部132は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、当該イベントはその前のイベントと同一のイベント系列の要素であると推定し、判定対象となったイベント同士をイベント系列として生成する。このように、イベント系列生成部132は、一般的な処理を除外したイベントによりイベント系列を生成するので、感染端末の検出における誤検知を低減させることが可能になる。
 検知用系列抽出部140は、共通イベント系列抽出部141と、イベント照合部142と候補判定部143とを備え、系列生成部130が生成したイベント系列に基づいて、検知用イベント系列を抽出する。
 共通イベント系列抽出部141は、系列生成部130が生成したイベント系列から、検知用イベント系列候補を抽出する。具体的には、共通イベント系列抽出部141は、マルウェア通信分析結果から抽出されたイベント系列間の類似度を算出した上でクラスタリングを行い、一定以上の類似度を有するイベント系列同士において、各イベント系列間で共通的に確認されるイベントについて、順序を加味して抽出する。そして、共通イベント系列抽出部141は、イベントを時系列順に並べた場合に、共通的に確認できたイベントの長さがあらかじめ決められた長さよりも長いときには、共通的に確認されたイベントからなるイベント系列を検知用イベント系列候補とする。このように、共通イベント系列抽出部141によれば、イベント系列をクラスタリングし、共通的なイベントを検知用イベント系列候補の要素とすることで、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント系列で検知部150による判定を実施することが可能となる。すなわち、共通イベント系列抽出部141によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント系列を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置100は、共通的なイベント系列のみを用いることで、照合の判定を行うイベント系列の数を削減し、処理時間の削減を可能にする。
 イベント照合部142は、監視対象NW分析結果(系列抽出用)のイベント系列と検知用イベント系列候補とを照合し、各検知用イベント系列候補が監視対象NW内のホストをどの程度検出しうるかを算出する。具体的には、イベント照合部142は、系列生成部130により生成された監視対象NW分析結果(系列抽出用)のイベント系列と、共通イベント系列抽出部141が抽出した検知用イベント系列候補とを入力として取得する。そして、イベント照合部142は、両者のイベント系列を照合し、照合すると判定された監視対象NW分析結果(系列抽出用)に対応するホスト数を算出する。そして、イベント照合部142は、算出されたホスト数を出力として候補判定部143に出力する。
 候補判定部143は、イベント照合部142で算出した検知用イベント系列候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント系列候補を検知用イベント系列として出力する。具体的には、候補判定部143は、イベント照合部142によってイベント系列が合致したと判定された検知用イベント系列候補の検知ホスト数を、監視対象NWの全ホスト数で除算し、イベント系列ごとの検知ホスト割合を算出する。そして、候補判定部143は、検知用イベント系列候補の中から、検知ホスト割合が一定以下であるイベント系列を検知用イベント系列として出力する。これにより、候補判定部143は、除外イベント抽出部131の処理と同様、一般に監視対象NWにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント系列からあらかじめ誤検知につながるものを除外することができる。このため、候補判定部143の処理によれば、監視対象NWにおいて感染端末を検知する際の誤検知を低減することが可能になる。
 検知部150は、イベント照合部151と検知結果出力部152とを備え、監視対象NW内のマルウェア感染端末を検知する。具体的には、イベント照合部151は、監視対象NW分析結果(検知用)と検知用イベント系列のイベント系列同士が合致するかどうかを照合する。そして、検知結果出力部152は、イベント照合部151での照合の結果、検知用イベント系列と合致したと判定されるホスト情報を出力する。言い換えれば、検知結果出力部152は、シグネチャである検知用イベント系列と合致したと判定されるホストについては、マルウェア感染端末である可能性が高いものとして、検知用イベント系列と合致したと判定されるホストを識別することのできる情報を出力することにより、マルウェア感染端末を検出する。
[第一の実施の形態の処理手順]
 次に、上述した検出装置100による検出処理の手順について詳細に説明する。
(除外イベント抽出処理)
 まず、図5を用いて、除外イベント抽出部131が実行する除外イベント抽出処理について説明する。図5は、第一の実施の形態に係る除外イベント抽出部131による除外イベント抽出処理手順を示すフローチャートである。
 図5に示すように、除外イベント抽出部131は、監視対象NW分析結果(系列抽出用)を入力として読み込む(ステップS101)。そして、除外イベント抽出部131は、監視対象NW内のホスト数を取得する(ステップS102)。ここで、監視対象NWのホスト数は、監視対象NWに存在するホスト数があらかじめわかっている場合はその数としても良いし、監視対象NW分析結果(系列抽出用)に出現するホスト数を監視対象NWのホスト数とみなしてもよい。言い換えれば、監視対象NW内のホスト数とは、監視対象NWで観測可能な総ホスト数であり、あらかじめ存在する総ホスト数が観測されている場合には当該総ホスト数が適用され、総ホスト数が不明の場合には、監視対象NW分析結果(系列抽出用)により観測可能なホストの総数が適用される。
 続いて、除外イベント抽出部131は、読み込んだ監視対象NW分析結果(系列抽出用)に含まれる全てのイベントについて、除外イベントとするかどうかを判定する処理を実行したか否かを判定する(ステップS103)。全てのイベントに対して処理を実行したと判定した場合、除外イベント抽出処理は終了する(ステップS103肯定)。
 一方、全てのイベントに対して処理を実行していないと判定した場合(ステップS103否定)、除外イベント抽出部131は、除外イベント抽出処理を続行する。このとき、除外イベント抽出部131は、あるイベントで検出されたホスト数を監視対象NWのホスト数で除算し、イベントの検出割合を取得する(ステップS104)。
 そして、除外イベント抽出部131は、検出割合があらかじめ指定された値よりも大きいか否かを判定する(ステップS105)。検出割合があらかじめ指定された値よりも大きいと判定した場合(ステップS105肯定)、除外イベント抽出部131は、判定対象である当該イベントを除外イベントに設定する(ステップS106)。一方、検出割合があらかじめ指定された値よりも大きくないと判定した場合(ステップS105否定)、除外イベント抽出部131は、当該イベントを除外イベントとは設定せずに、異なるイベントについての処理を続行する(ステップS103へ移行)。
 このように、除外イベント抽出部131は、多くのホストで確認されるイベントはマルウェアによる通信の特徴のみを捉えたものではないと判定し、当該イベントを抽出し、除外イベントに設定する。これにより、除外イベント抽出部131は、感染端末の検出処理における誤検知を低減することが可能になる。
(イベント系列生成処理)
 次に、図6を用いて、イベント系列生成部132が実行するイベント系列生成処理について説明する。図6は、イベント系列生成部132によるイベント系列生成処理手順を示すフローチャートである。
 図6に示すように、イベント系列生成部132は、監視対象NW分析結果(系列抽出用及び検知用)とマルウェア通信分析結果とのイベント系列生成処理について、全てのホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する(ステップS201)。全てに対して処理を実行したと判定した場合、イベント系列生成処理は終了する(ステップS201肯定)。
 一方、全てのホストまたはマルウェアの分析結果を処理し終えていないと判定した場合(ステップS201否定)、イベント系列生成部132は、分析結果を読み込むホストまたはマルウェアを指定する(ステップS202)。イベント系列生成部132は、監視対象NW分析結果からイベント系列を抽出する際には、監視対象NW内のホストごとにイベント系列の生成を行う。ここで、ホストの識別には、例えば、ホストのIPアドレスを用いる。また、イベント系列生成部132は、マルウェア通信分析結果からイベント系列を生成する際には、マルウェアごとにイベント系列の生成を行う。ここで、マルウェアの識別には、例えば、マルウェアのハッシュ値を用いる。なお、監視対象NW分析結果およびマルウェア通信分析結果は、いずれもイベントの確認された時刻でソートされているものとする。
 そして、イベント系列生成部132は、以下に説明する処理に先立ち、直前イベント時刻およびイベント系列(処理中)を初期化する(ステップS203)。
 まず、イベント系列生成部132は、指定されたホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する(ステップS204)。分析結果を処理し終えたと判定した場合(ステップS204肯定)、イベント系列生成部132は、イベント系列として出力していないイベント系列(すなわち、生成処理中のイベント系列)が存在するか否かを判定する(ステップS205)。イベント系列として出力していないイベント系列が存在する場合には(ステップS205肯定)、イベント系列生成部132は、処理中のイベント系列をイベント系列として出力する(ステップS206)。
 一方、イベント系列として出力していない処理中のイベント系列が存在しない場合には(ステップS205否定)、イベント系列生成部132は、処理をステップS201に移行させる。
 ステップS204において、分析結果を処理し終えていないと判定した場合(ステップS204否定)、イベント系列生成部132は、指定されたホストまたはマルウェアのイベントとイベント発生時刻を読み込む(ステップS207)。そして、イベント系列生成部132は、読み込んだイベントが除外イベントに該当するか否かを判定する(ステップS208)。除外イベントに該当する場合(ステップS208肯定)、イベント系列生成部132は、読み込んだイベントについてはイベント系列には加えずに、処理をステップS204に移行する。
 一方、読み込んだイベントが除外イベントに該当しない場合(ステップS208否定)、イベント系列生成部132は、読み込んだイベントのイベント発生時刻を記録する(ステップS209)。そして、イベント系列生成部132は、記録したイベント発生時刻が直前イベント時刻から一定時間以上離れているかを判定する(ステップS210)。
 イベント発生時刻が直前イベント時刻から一定時間以上離れている場合(ステップS210肯定)、読み込んだイベントは、処理中のイベント系列とは異なるイベント系列に追加されることになるため、イベント系列生成部132は、処理中のイベント系列をイベント系列として出力する(ステップS211)。この場合、イベント系列生成部132は、出力したイベント系列(処理中)を初期化する(ステップS212)。
 ステップS210において、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合(ステップS210否定)、イベント系列生成部132は、読み込んだイベントのイベント発生時刻を直前イベント時刻に設定する(ステップS213)。言い換えれば、イベント系列生成部132は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、そのイベントはその前のイベントと同一のイベント系列の要素であると推定し、イベント系列(処理中)に追加するかどうかを判定する(後述するステップS214)。
 そして、イベント系列生成部132は、読み込んだイベントがイベント系列(処理中)に含まれているか否かを判定する(ステップS214)。読み込んだイベントがイベント系列(処理中)に含まれている場合(ステップS214肯定)、イベント系列生成部132は、重複するイベントをイベント系列(処理中)に追加しないため、処理をステップS204に移行させる。
 一方、読み込んだイベントがイベント系列(処理中)に含まれていない場合(ステップS214否定)、イベント系列生成部132は、当該イベントをイベント系列(処理中)に追加する(ステップS215)。その後、イベント系列生成部132は、処理をステップS204に移行させる。
 このように、イベント系列生成部132は、読み込んだイベントが除外イベントに該当している場合はそのイベントをイベント系列に組み込まない。また、イベント系列生成部132は、イベントが発生した時刻を記録し、そのイベントが発生した時刻がその前のイベントが発生した時刻と比較し、一定時間以上離れているかどうかを判定する。これにより、イベント系列生成部132は、イベント間の発生間隔が短いイベントによって一つのイベント系列が形成されるように、イベント系列を生成する。さらに、イベント系列生成部132は、イベント系列(処理中)に処理対象であるイベントが含まれているかどうかを判断し、含まれている場合には、当該イベントはイベント系列に追加しない。すなわち、生成されたイベント系列には、重複するイベントが存在しない。なお、イベント系列(処理中)に重複するイベントを追加するか否かの判定(ステップS214)は、監視対象NW分析結果およびマルウェア通信分析結果の特徴を踏まえ、行わなくてもよい。例えば、監視対象NW分析結果およびマルウェア通信分析結果で確認されているイベントの種類が少ない場合(例えば、1種類のみなどの場合)には、イベント系列(処理中)に重複するイベントを追加するか否かの判定を行わず、除外イベントに該当しないイベントを全てイベント系列(処理中)に追加してもよい。
(共通イベント系列抽出処理)
 次に、図7を用いて、共通イベント系列抽出部141が実行する共通イベント系列抽出処理について説明する。図7は、共通イベント系列抽出部141による共通イベント系列抽出処理手順を示すフローチャートである。
 図7に示すように、共通イベント系列抽出部141は、マルウェア通信分析結果から抽出したイベント系列を処理対象として読み込む(ステップS301)。そして、共通イベント系列抽出部141は、イベント系列間の類似度行列を生成し、階層的クラスタリングを実施する(ステップS302)。ここで、類似度行列の生成では、例えば、各イベントに対して一意に識別可能な文字を割り当て、イベント系列を文字列とみなした上で、イベント系列間のレーベンシュタイン距離を計算し、イベント系列の類似度を求める。
 そして、共通イベント系列抽出部141は、実施する階層的クラスタリングにおいて、あらかじめ設定された類似度以上のイベント系列同士を同一のクラスタに設定する(ステップS303)。
 ここで、共通イベント系列抽出部141は、全てのクラスタから共通イベント系列を抽出する処理を実行したか否かを判定する(ステップS304)。全てのクラスタから共通イベント系列を抽出する処理を実行したと判定した場合(ステップS304肯定)、共通イベント系列抽出部141による共通イベント系列抽出処理は終了する。
 一方、全てのクラスタから共通イベント系列を抽出する処理を実行していないと判定した場合(ステップS304否定)、共通イベント系列抽出部141は、共通イベント系列を抽出するクラスタを指定する(ステップS305)。
 そして、共通イベント系列抽出部141は、同一クラスタ内のイベント系列同士で共通する部分列のうち、最長共通部分列(LCS:Longest Common Subsequence)を抽出する(ステップS306)。そして、共通イベント系列抽出部141は、あらかじめ決められた長さよりも長い最長共通部分列を検知用イベント系列候補として出力する(ステップS307)。
 このように、共通イベント系列抽出部141は、マルウェア通信分析結果から抽出されたイベント系列間の類似度を算出した上でクラスタリングを行う。その後、共通イベント系列抽出部141は、一定以上の類似度を有するイベント系列同士において、各イベント系列間で共通的に確認されるイベント系列を抽出し、検知用イベント系列候補とする。なお、同一のクラスタ内に単一のイベント系列しか存在しない場合には、共通イベント系列抽出部141は、そのイベント系列の長さが一定以上であった場合には当該イベント系列を検知用イベント系列候補として出力する。また、共通イベント系列抽出部141は、検知用イベント系列候補とするイベント列の長さを任意に設定することができる。例えば、共通イベント系列抽出部141は、最少のイベント系列の長さとして、2以上のイベントが系列に含まれている場合を設定するようにしてもよい。
 これにより、共通イベント系列抽出部141は、共通的なイベントを検知用イベント系列候補の要素とすることができるので、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント系列で検知部150による判定を実施することが可能となる。すなわち、検出装置100によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント系列を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置100は、共通的なイベント系列のみを用いることで、照合の判定を行うイベント系列の数を削減し、処理時間の削減を可能にする。
(候補判定処理)
 次に、図8を用いて、イベント照合部142および候補判定部143が実行する候補判定処理について説明する。図8は、イベント照合部142および候補判定部143による候補判定処理手順を示すフローチャートである。
 図8に示すように、イベント照合部142は、監視対象NW分析結果(系列抽出用)のイベント系列を検知対象イベント系列として取得する(ステップS401)。また、イベント照合部142は、共通イベント系列抽出部141によって抽出された検知用イベント系列候補をシグネチャ系列として取得する(ステップS402)。
 そして、イベント照合部142は、取得した検知対象イベント系列とシグネチャ系列とについて、イベント照合処理を実行する(ステップS403)。なお、イベント照合部142によるイベント照合処理は、検知部150に係るイベント照合処理と同様であるため、詳細については後述する。
 続いて、候補判定部143は、イベント照合処理によって合致したと判定された照合用イベント系列ごとの検知ホスト数を、監視対象NWのホスト数で除算し、照合用イベント系列ごとの検知ホスト割合を取得する(ステップS404)。ここで、照合用イベント系列とは、シグネチャ系列のうちから選択された一のイベント系列のことをいう。すなわち、候補判定部143は、シグネチャ系列に含まれるイベント系列ごとに検知ホスト割合を算出する。そして、候補判定部143は、検知ホスト割合が一定以下である照合用イベント系列を検知用イベント系列として出力する(ステップS405)。これにより、イベント照合部142および候補判定部143が実行する候補判定処理は終了する。
 このように、候補判定部143は、イベント照合部142によって照合された検知用イベント系列候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合に、当該検知用イベント系列候補を検知用イベント系列として出力する。これは、除外イベント抽出部131の処理と同様、一般に、監視対象NWにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント系列からあらかじめ誤検知につながるものを除外するための処理である。
 すなわち、監視対象NWにはマルウェアに感染している端末が少ないと仮定すると、本処理で合致したと判定された検知用イベント系列候補はマルウェアの通信のみならず、一般の通信でも確認できるイベント系列であるとみなせるため、検知に用いたときには誤検知を誘発しやすいイベント系列であると判断できる。このため、候補判定部143の処理により、一般の通信と区別が難しいマルウェアの通信のイベント系列をあらかじめ除外することで、検知部150での誤検知を低減することが可能である。検出装置100は、例えば、イベント照合処理によって合致したと判定された照合用イベント系列ごとの検知ホスト数を監視対象NWのホスト数で除算した結果が0、すなわち検知用イベント系列候補で監視対象NW分析結果(系列抽出用)のイベント系列を検知しなかったイベント系列のみを検知用イベント系列として出力してもよい。これにより、検出装置100は、検知用イベント系列に誤検知を発生させうるものが混入するのを抑制できる。
(検知処理)
 次に、図9を用いて、検知部150が実行する検知処理について説明する。図9は、検知部150による検知処理手順を示すフローチャートである。
 図9に示すように、検知部150に係るイベント照合部151は、監視対象NW分析結果(検知用)のイベント系列を検知対象イベント系列として取得する(ステップS501)。また、イベント照合部151は、検知用系列抽出部140によって抽出された検知用イベント系列をシグネチャ系列として取得する(ステップS502)。そして、イベント照合部151は、取得した検知対象イベント系列とシグネチャ系列とについて、イベント照合処理を実行する(ステップS503)。
 続いて、検知部150に係る検知結果出力部152は、イベント照合処理によって合致したと判定されたホストをマルウェア感染ホストと判定し、その結果を検知結果として出力する(ステップS504)。これにより、検知部150が実行する検知処理は終了する。
 このように、検知部150は、系列生成部130によって生成された監視対象NW分析結果(検知用)のイベント系列と、検知用系列抽出部140によって抽出された検知用イベント系列とを照合する。これにより、検知部150は、あらかじめ監視対象NWで観測されうるイベントやイベントの時系列が除外されたイベント系列同士を照合することができるので、監視対象NWで通常発生する通信を誤って検知する事態を削減させ、マルウェア感染端末を検知することができる。
(照合処理)
 次に、図10を用いて、検知部150に係るイベント照合部151が実行する照合処理について説明する。図10は、イベント照合部151による照合処理手順を示すフローチャートである。なお、検知用系列抽出部140に係るイベント照合部142も、以下に説明する処理と同様の処理を実行する。
 図10に示すように、イベント照合部151は、監視対象NW分析結果(検知用)のイベント系列を検知対象イベント系列として取得する(ステップS601)。また、イベント照合部151は、検知用系列抽出部140によって抽出された検知用イベント系列をシグネチャ系列として取得する(ステップS602)。
 そして、イベント照合部151は、全ての検知対象イベント系列を判定したか否かを判定する(ステップS603)。全ての検知対象イベント系列を判定した場合には(ステップS603肯定)、イベント照合部151による照合処理は終了する。
 一方、全ての検知対象イベント系列を判定していない場合(ステップS603否定)、イベント照合部151は、判定対象イベント系列およびホスト情報を検知対象イベント系列から取得する(ステップS604)。そして、イベント照合部151は、取得したホスト情報に基づいて、検知対象となるホストについて、全てのシグネチャ系列と判定を行ったか否かを判定する(ステップS605)。全てのシグネチャ系列と判定を行った場合には(ステップS605肯定)、イベント照合部151は、処理をステップS603に移行させる。
 一方、全てのシグネチャ系列と判定を行っていない場合には(ステップS605否定)、イベント照合部151は、シグネチャ系列から照合用イベント系列を取得する(ステップS606)。そして、イベント照合部151は、判定対象イベント系列と、照合用イベント系列との、最長共通部分列長を取得する(ステップS607)。
 続いて、イベント照合部151は、最長共通部分列長を照合用イベント系列長で除算した値が、あらかじめ指定した数よりも大きいか否かを判定する(ステップS608)。あらかじめ指定した数よりも大きい場合には(ステップS608肯定)、イベント照合部151は、判定対象イベント系列と照合用イベント系列とが合致したと判定する(ステップS609)。
 一方、あらかじめ指定した数よりも大きくない場合には(ステップS608否定)、イベント照合部151は、判定対象イベント系列と照合用イベント系列とが合致しなかったと判定する(ステップS610)。
 そして、イベント照合部151は、照合用イベント系列、判定対象イベント系列のホスト情報、判定結果を出力する(ステップS611)。そして、イベント照合部151は、処理をステップS605へ移行させる。
 このように、イベント照合部151は、マルウェアの特徴的な通信をもとに抽出されたイベント系列をシグネチャ系列として、検知対象となるイベント系列との照合処理を実行する。これにより、検出装置100は、類似の通信パターンを有するマルウェアに感染した端末を少ない誤検知で検知することができる。
 なお、第一の実施の形態と同様の処理は、監視対象NW内の端末装置と検出装置100とを備える検出システムによって実現されてもよい。この場合、端末装置は、監視対象NWにおいて所定のイベントを発生させ、検出装置100は、当該端末装置ごとにイベントを取得する。また、マルウェア感染端末の検出システムには、仮想的にマルウェアの通信を発生させる情報処理装置が含まれてもよい。この場合、検出システムに含まれる検出装置100は、情報処理装置が発生させたイベントをマルウェア分析結果として取得する。
[第一の実施の形態の効果]
 上述してきたように、第一の実施の形態に係る検出装置100は、監視対象NWの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象NWの端末およびマルウェアを区別する識別子ごとに取得されたイベントから、イベントの発生順序を踏まえて時系列に基づいて形成されるイベント系列を生成する。そして、検出装置100は、マルウェアが発生させる通信に基づくイベント系列間での類似度を算出し、類似度が一定以上のイベント系列同士を同一クラスタに設定し、当該同一クラスタ内に複数のイベント系列が存在する場合には、当該同一クラスタに属するイベント系列間で共通的に出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を検知用イベント系列として抽出し、または、同一クラスタ内に単一のイベント系列しか存在しない場合には、当該イベント系列が一定の長さ以上であった場合に、当該イベント系列を検知用イベント系列として抽出する。そして、検出装置100は、生成された監視対象NWの通信に基づくイベント系列と、抽出された検知用イベント系列とのイベント系列同士を照合し、イベント系列同士が合致していると判定された場合に、監視対象NWにマルウェア感染端末が存在していることを検知する。
 これにより、第一の実施の形態に係る検出装置100は、監視対象NWで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減することができる。また、検出装置100は、単一のマルウェアの通信をシグネチャとするのではなく、マルウェア通信分析結果に基づいてクラスタリングされたイベント系列のうち共通したイベントの集合を検知用イベント系列(シグネチャ)とする。これにより、検出装置100は、既知のマルウェアだけでなく、既知のマルウェアに類似する通信を行う亜種のマルウェアについても検出することが可能となる。
 また、検出装置100は、監視対象NWの端末ごとに取得されたイベントのうち、所定のイベントが確認された監視対象NWの端末数を監視対象NWで観測可能な総端末数で除算した値が一定の値よりも大きい場合に、当該所定のイベントを除外イベントと設定し、除外イベントを除くイベントのみでイベント系列を生成する。
 これにより、第一の実施の形態に係る検出装置100は、あらかじめ監視対象NWで観測されうるイベントやイベントの時系列が除外された検知用イベント系列を処理に用いるため、監視対象NWで通常発生する通信を誤って検知する事態を削減することができる。
 また、検出装置100は、監視対象NWの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、イベント間の発生間隔が一定時間以上離れていないイベントからイベント系列を生成する。
 これにより、第一の実施の形態に係る検出装置100は、マルウェアの動作に関連する一連の事象を区切ることが可能になり、検知処理での精度を向上させることができる。
 また、検出装置100は、監視対象NWの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、重複して出現するイベントを除外してイベント系列を生成する。
 このように、第一の実施の形態に係る検出装置100は、重複して確認されるイベントを除外してイベント系列を生成することで、マルウェアの実行タイミングやC&Cサーバからの指令などに起因して繰り返しの通信が発生している場合、繰り返しの回数の差を吸収することが可能になるため、検知における精度の向上を図ることが可能となる。
 また、検出装置100は、抽出した検知用イベント系列(検知用イベント系列候補)と、あらかじめ取得しておいた監視対象NW(系列抽出用)の通信に基づくイベント系列とを照合し、イベント系列同士が合致していると判定された監視対象NWの通信に基づくイベント系列に対応する端末の数を監視対象NWで観測可能な総端末数で除算した値が一定以上となる場合に、抽出した検知用イベント系列候補のうち、イベント系列同士が合致していると判定された検知用イベント系列候補が除外されたイベント系列を検知用イベント系列として抽出する。
 これにより、第一の実施の形態に係る検出装置100は、マルウェアを検知するシグネチャとなる検知用イベント系列をより精度よく作成することができるので、マルウェアの誤検知を低減させることができる。
 また、検出装置100は、監視対象NWの通信に基づくイベント系列(系列抽出用)と、検知用イベント系列とで共通する部分のうち、最長となる部分長(最長共通部分列長)を当該検知用イベント系列長で除算した値が一定以上であった場合に、当該監視対象NWの通信に基づくイベント系列と当該検知用イベント系列とが合致したと判定する。
 これにより、第一の実施の形態に係る検出装置100は、比較対象となる各イベント系列について、合致するイベント系列を適切に照合することができる。結果として、検出装置100は、検知に用いるイベント系列の精度を向上させることができるので、マルウェアの誤検知を低減させることができる。さらに、検出装置100によれば、監視対象NWのホストがマルウェアに感染していた場合で、マルウェアによるイベントと業務上発生する通信に起因するイベントが混在して検知された状態であっても、共通部分列を用いて照合することで精度よく検知することができる。
 また、第一の実施の形態に係る検出システムは、監視対象NWにおいて、端末装置と、検出装置100とを備える。端末装置は、監視対象NWにおいて所定の通信を発生させる。検出装置100は、端末装置が発生させる所定の通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、端末装置またはマルウェアを区別する識別子ごとに取得されたイベントから、当該イベントの発生順序を踏まえて形成されるイベント系列を生成する。また、検出装置100は、マルウェアが発生させる通信に基づくイベント系列間での類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント系列が存在する場合には、当該同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を検知用イベント系列として抽出し、または、同一クラスタ内に単一のイベント系列しか存在しない場合には、イベント系列が一定の長さ以上であった場合に、当該イベント系列を検知用イベント系列として抽出する。また、検出装置100は、端末装置の通信に基づくイベント系列と、抽出された検知用イベント系列とが合致していると判定された場合に、監視対象NWにマルウェア感染端末が存在していることを検知する。
 これにより、第一の実施の形態に係る検出システムは、監視対象NWで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減するとともに、既知のマルウェアに類似する通信を行う亜種のマルウェアについても検出することが可能となる。
[第二の実施の形態]
 上述した第一の実施の形態の説明では、イベントの発生順序を踏まえて形成されるイベント系列を生成し、該イベント系列から検知用イベント系列を抽出する場合を説明したが、本発明はこれに限定されるものではなく、重複しないイベント同士の組み合わせにより形成されるイベント群を生成し、該イベント群から検知用イベント群を抽出するようにしてもよい。そこで、以下の第二の実施の形態では、重複しないイベント同士の組み合わせにより形成されるイベント群を生成し、該イベント群から検知用イベント群を抽出する場合について説明する。以下の実施の形態では、第二の実施の形態に係る検出装置の構成、第二の実施の形態に係る検出装置の処理の流れを順に説明し、最後に第二の実施の形態による効果を説明する。
[第二の実施の形態の概要]
 まず、図11を用いて、マルウェア感染端末の検出装置である検出装置200が行う処理の概要を説明する。図11は、第二の実施の形態に係る検出装置200の概要を示す構成図である。図11に示すように、検出装置200による処理は、検出装置200が有する生成部230と検知イベント群抽出部240と検知部250とによって実行される。検出装置200は、検出を行う前にあらかじめ収集しておいた監視対象NW(Network、ネットワーク)分析結果(組み合わせ抽出用)とマルウェア通信分析結果から検知用イベント群を生成し、監視対象NW分析結果(検知用)から生成したイベント群と検知用イベント群とを照合することにより、監視対象NWにおいてマルウェアに感染している端末(ホスト)を検出する。
 ここで、監視対象NW分析結果(組み合わせ抽出用及び検知用)には、監視対象NW内のホストを識別する識別子、イベント、イベント発生時刻のフィールドを有するデータが格納されている。なお、イベントとは、通信に一定の特徴が確認できた際の、各々の特徴を捉えた事象を意味する。例えば、イベントは、FirewallやWebProxyなどに記録される装置ログの分析により特定の通信先との通信が含まれていたという事象や、あらかじめ決められた時間内に一定回数以上の通信が行われたという事象や、IDS(Intrusion Detection System)によって悪性なデータ送信が検知されたという事象などが該当する。すなわち、イベントは、監視対象NWにおける通信のうち、悪性の通信の蓋然性が高いものと特徴付けられるルールに合致する事象が該当する。検出装置200は、例えば、所定の外部装置によって通信を特徴付けるルールに合致するか否かの分析が行われ、ルールに合致したと判定されたイベントを監視対象NW分析結果として取得する。なお、マルウェア通信分析結果は、マルウェアを実際に動作させた際の通信データを、前述の監視対象NW分析結果を取得した際と同様の観点で分析した結果である。また、イベント群とは、監視対象NW分析結果を監視対象NWのホストごとにまとめたもの、またはマルウェア通信分析結果をマルウェア検体ごとにまとめたものである。
 ここで、前述したように、監視対象NW内ホストの識別子ごとに検出されたイベントは、イベントの種類と、イベント発生時刻とが対応づけられて格納される。例えば、図2では、「192.168.10.11」により識別されるホストで、「特定の通信先との通信検知」というイベントが「2014年10月15日12時20分12秒」に発生した例を示している。また、図3に示すように、マルウェア識別子ごとに検出されたイベントについても監視対象NW分析結果と同様に、イベントの種類と、イベント発生時刻とが対応づけられて格納される。
 以下に、検出装置200が行う処理について、流れに沿って説明する。検出装置200に係る生成部230は、除外イベント抽出部231と、イベント群生成部232とを備え、監視対象NW分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント群を生成する。
 具体的には、除外イベント抽出部231は、監視対象NW分析結果(組み合わせ抽出用)が入力された場合に、当該分析結果において所定の割合よりも多くの監視対象NW内のホストで確認されているイベントを除外イベントと設定する。
 イベント群生成部232は、監視対象NW分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しないイベントからなるイベント群を生成する。一般に、監視対象NWには感染している端末は少ないため、多くのホストで確認されるイベントはマルウェアによる通信の特徴を捉えたものではないと判断できる。そのため、イベント群生成部232は、除外イベントを除くことにより、マルウェアに感染していない端末で確認されるイベントを除いてイベント群を生成することができる。すなわち、イベント群生成部232によれば、感染端末の検出における誤検知を低減させることが可能になる。
 また、イベント群生成部232は、同一ホストまたは同一マルウェアのイベントについて、イベントの発生間隔が一定時間以内であるものからひとつのイベント群を生成する。すなわち、イベント群生成部232は、マルウェアの動作に関連する一連の事象を区切ることでイベント群を生成する。さらに、イベント群生成部232は、同一ホストまたは同一マルウェアのイベントのうち、重複したイベントを除外してイベント群を生成する。これにより、イベント群生成部232は、マルウェアの実行タイミングやC&C(Command and Control)サーバからの指令などに起因して繰り返しの通信が発生している場合であっても、繰り返しの回数の差を吸収したイベント群を生成できる。すなわち、イベント群生成部232によれば、後述する検知処理における精度の向上を図ることが可能となる。
 続いて、検出装置200に係る検知イベント群抽出部240の処理について説明する。検知イベント群抽出部240は、共通イベント群抽出部241と、イベント照合部242と候補判定部243とを備え、生成部230が生成したイベント群に基づいて、検知用イベント群を抽出する。
 具体的には、共通イベント群抽出部241は、マルウェア通信分析結果から抽出されたイベント群間の類似度を算出した上でクラスタリング(clustering)を行う。その後、共通イベント群抽出部241は、一定以上の類似度を有するイベント群同士において、各イベント群間で共通的に確認されるイベントを抽出し、検知用イベント群候補とする。
 イベント照合部242は、監視対象NW分析結果(組み合わせ抽出用)のイベント群と検知用イベント群候補とを照合し、各検知用イベント群候補が監視対象NW内のホストをどの程度検出しうるかを算出する。
 候補判定部243は、イベント照合部242で算出した検知用イベント群候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント群候補を検知用イベント群として出力する。
 続いて、検出装置200に係る検知部250の処理について説明する。検知部250は、イベント照合部251と検知結果出力部252とを備え、監視対象NW内のマルウェア感染端末を検知する。
 具体的には、イベント照合部251は、検知イベント群抽出部240のイベント照合部242と同様に、監視対象NW分析結果(検知用)から生成されたイベント群と検知用イベント群とが合致するかどうかを照合する。
 検知結果出力部252は、イベント照合部251での照合の結果、検知用イベント群と合致したと判定されるホスト情報を出力する。ホスト情報とは、例えば、監視対象NW内の端末のIP(Internet Protocol)アドレスなどである。
 このように、検出装置200は、監視対象NW分析結果(組み合わせ抽出用)とマルウェア通信分析結果から検知用イベント群を生成し、監視対象NW分析結果(検知用)から生成したイベント群と検知用イベント群とを照合することにより、監視対象NWにおいてマルウェアに感染している端末を検出する。
 上記のように、第二の実施の形態に係る検出装置200は、複数のマルウェアの通信のうち、マルウェアを特徴付ける共通的な特徴の組み合わせパターンである検知用イベント群のみを用いて感染端末の検出を行う。このため、検出装置200によれば、監視対象NWで照合すべきパターンを削減し、照合にかかる時間を削減することができる。さらに、検出装置200は、あらかじめ監視対象NWで観測されうるイベントやイベントの組み合わせが除外された検知用イベント群を処理に用いるため、監視対象NWで通常発生する通信を誤って検知する事態を削減することができる。
 なお、検出装置200は、検知用イベント群の生成では、監視対象NW分析結果(組み合わせ抽出用)を用いず、マルウェア通信分析結果のみを用いても良い。また、検出装置200に係る処理についての詳細は、フローチャートを用いて後記する。
[第二の実施の形態に係る検出装置の構成]
 次に、図12を用いて、第二の実施の形態に係る検出装置200について説明する。図12は、第二の実施の形態に係る検出装置200の構成例を示す図である。
 図12に例示するように、第二の実施の形態に係る検出装置200は、IF(interface)部210と、イベント群記憶部220と、検知用イベント群記憶部221と、生成部230と、検知イベント群抽出部240と、検知部250とを有する。
 IF部210は、例えば、NIC(Network Interface Card)等であり、外部装置との間で各種データを送受信する。例えば、IF部210は、監視対象NW分析結果として、監視対象NWに設置されたFirewallやWebProxyの装置ログ等を分析した結果を受信する。
 イベント群記憶部220及び検知用イベント群記憶部221は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等によって実現される。イベント群記憶部220及び検知用イベント群記憶部221は、生成部230や、検知イベント群抽出部240や、検知部250が扱う情報を適宜記憶する。
 例えば、イベント群記憶部220は、生成部230が生成したイベント群を記憶する。また、検知用イベント群記憶部221は、検知イベント群抽出部240が抽出した検知用イベント群を記憶する。なお、検出装置200は、イベント群記憶部220または検知用イベント群記憶部221を構成要素とすることを要しない。例えば、検出装置200は、イベント群記憶部220または検知用イベント群記憶部221と同様の処理を行う外部記憶装置を利用してもよい。
 生成部230、検知イベント群抽出部240及び検知部250は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。また、生成部230、検知イベント群抽出部240及び検知部250は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、図示しない記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。
 生成部230は、除外イベント抽出部231と、イベント群生成部232とを備え、監視対象NW分析結果と、マルウェア通信分析結果とを入力として、各々についてイベント群を生成する。除外イベント抽出部231は、監視対象NW分析結果(組み合わせ抽出用)が入力された場合に、分析結果において所定の割合よりも多くの監視対象NW内のホストで確認されているイベントを除外イベントと設定する。具体的には、除外イベント抽出部231は、入力された監視対象NW分析結果(組み合わせ抽出用)に含まれる監視対象NW内の全ホスト数と、所定のイベントが含まれるホスト数とを取得する。続いて、除外イベント抽出部231は、所定のイベントが含まれるホスト数と全ホスト数との割合に基づき、所定のイベントが含まれるホストが一定の割合を超える場合には、所定のイベントを除外イベントと設定する。これにより、除外イベント抽出部231は、多くのホストで行われている一般的な処理を排除したイベントのみでイベント群を生成させることを可能とする。
 また、イベント群生成部232は、監視対象NW分析結果とマルウェア通信分析結果とのうち、除外イベントに該当しない分析結果からなるイベント群を生成する。具体的には、イベント群生成部232は、監視対象NW分析結果またはマルウェア通信分析結果のうち、除外イベントに該当しないイベントを入力として取得する。このとき、イベント群生成部232は、読み込んだイベントのイベント発生時刻を記録する。そして、イベント群生成部232は、記録したイベント発生時刻が直前に読み込んだイベント発生時刻から一定時間以上離れているかを判定する。そして、イベント群生成部232は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、当該イベントはその前のイベントと同一のイベント群の要素であると推定し、判定対象となったイベント同士をイベント群として生成する。このように、イベント群生成部232は、一般的な処理を除外したイベントによりイベント群を生成するので、感染端末の検出における誤検知を低減させることが可能になる。
 検知イベント群抽出部240は、共通イベント群抽出部241と、イベント照合部242と候補判定部243とを備え、生成部230が生成したイベント群に基づいて、検知用イベント群を抽出する。
 共通イベント群抽出部241は、生成部230が生成したイベント群から、検知用イベント群候補を抽出する。具体的には、共通イベント群抽出部241は、マルウェア通信分析結果から抽出されたイベント群間の類似度を算出した上でクラスタリングを行い、一定以上の類似度を有するイベント群同士において、各イベント群間で共通的に確認されるイベントを抽出する。そして、共通イベント群抽出部241は、共通的に確認できたイベントの種類があらかじめ決められた数よりも多い場合に、抽出されたイベントの集合を検知用イベント群候補とする。例えば、共通イベント群抽出部241は、共通的に確認できるイベントが2種類以上である場合に、抽出されたイベントの集合を検知用イベント群候補として出力する。また、共通イベント群抽出部241は、同一クラスタに単一のイベント群しか存在しなかった場合には、イベント群に含まれるイベントの種類が一定数以上(例えば、2種類以上)であった場合に当該イベント群を、そのまま検知用イベント群候補として抽出してもよい。このように、共通イベント群抽出部241によれば、イベント群をクラスタリングし、共通的なイベントを検知用イベント群候補の要素とすることで、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント群で検知部250による判定を実施することが可能となる。すなわち、共通イベント群抽出部241によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント群を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置200は、共通的なイベント群のみを用いることで、照合の判定を行うイベント群の数を削減し、処理時間の削減を可能にする。
 イベント照合部242は、監視対象NW分析結果(組み合わせ抽出用)のイベント群と検知用イベント群候補とを照合し、各検知用イベント群候補が監視対象NW内のホストをどの程度検出しうるかを算出する。具体的には、イベント照合部242は、生成部230により生成された監視対象NW分析結果(組合せ抽出用)のイベント群と、共通イベント群抽出部241が抽出した検知用イベント群候補とを入力として取得する。そして、イベント照合部242は、両者のイベント群を照合し、照合すると判定された監視対象NW分析結果(組合せ抽出用)に対応するホスト数を算出する。そして、イベント照合部242は、算出されたホスト数を出力として候補判定部243に出力する。
 候補判定部243は、イベント照合部242で算出した検知用イベント群候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合、検知用イベント群候補を検知用イベント群として出力する。具体的には、候補判定部243は、イベント照合部242によってイベント群が合致したと判定された検知用イベント群候補の検知ホスト数を、監視対象NWの全ホスト数で除算し、イベント群ごとの検知ホスト割合を算出する。そして、候補判定部243は、検知用イベント群候補の中から、検知ホスト割合が一定以下であるイベント群を検知用イベント群として出力する。これにより、候補判定部243は、除外イベント抽出部231の処理と同様、一般に監視対象NWにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント群からあらかじめ誤検知につながるものを除外することができる。このため、候補判定部243の処理によれば、監視対象NWにおいて感染端末を検知する際の誤検知を低減することが可能になる。
 検知部250は、イベント照合部251と検知結果出力部252とを備え、監視対象NW内のマルウェア感染端末を検知する。イベント照合部251は、監視対象NW分析結果(検知用)と、検知用イベント群のイベント群同士が合致するかどうかを照合する。具体的には、イベント照合部251は、入力された監視対象NW分析結果(検知用)と検知用イベント群とのイベント群同士について、共通的に確認されるイベントの個数を算出する。そして、イベント照合部251は、処理対象とするイベント群のうち、共通的に確認されるイベントの個数に基づいて、判定対象イベント群同士が合致したか否かを判定する。そして、検知結果出力部252は、イベント照合部251での照合の結果、検知用イベント群と合致したと判定されるホスト情報を出力する。言い換えれば、検知結果出力部252は、シグネチャである検知用イベント群と合致したと判定されるホストについては、マルウェア感染端末である可能性が高いものとして、検知用イベント群と合致したと判定されるホストを識別することのできる情報を出力することによって、マルウェア感染端末を検出する。
[第二の実施の形態の処理手順]
 次に、上述した検出装置200による検出処理の手順について詳細に説明する。
(除外イベント抽出処理)
 まず、図13を用いて、除外イベント抽出部231が実行する除外イベント抽出処理について説明する。図13は、第二の実施の形態に係る除外イベント抽出部231による除外イベント抽出処理手順を示すフローチャートである。
 図13に示すように、除外イベント抽出部231は、監視対象NW分析結果(組み合わせ抽出用)を入力として読み込む(ステップS701)。そして、除外イベント抽出部231は、監視対象NW内のホスト数を取得する(ステップS702)。ここで、監視対象NWのホスト数は、監視対象NWに存在するホスト数があらかじめわかっている場合はその数としても良いし、監視対象NW分析結果(組み合わせ抽出用)に出現するホスト数を監視対象NWのホスト数とみなしてもよい。言い換えれば、監視対象NW内のホスト数とは、監視対象NWで観測可能な総ホスト数であり、あらかじめ存在する総ホスト数が観測されている場合には当該総ホスト数が適用され、総ホスト数が不明の場合には、監視対象NW分析結果(組み合わせ抽出用)により観測可能なホストの総数が適用される。
 続いて、除外イベント抽出部231は、読み込んだ監視対象NW分析結果(組み合わせ抽出用)に含まれる全てのイベントについて、除外イベントとするかどうかを判定する処理を実行したか否かを判定する(ステップS703)。全てのイベントに対して処理を実行したと判定した場合、除外イベント抽出処理は終了する(ステップS703肯定)。
 一方、全てのイベントに対して処理を実行していないと判定した場合(ステップS703否定)、除外イベント抽出部231は、除外イベント抽出処理を続行する。このとき、除外イベント抽出部231は、あるイベントで検出されたホスト数を監視対象NWのホスト数で除算し、イベントの検出割合を取得する(ステップS704)。
 そして、除外イベント抽出部231は、検出割合があらかじめ指定された値よりも大きいか否かを判定する(ステップS705)。検出割合があらかじめ指定された値よりも大きいと判定した場合(ステップS705肯定)、除外イベント抽出部231は、判定対象である当該イベントを除外イベントに設定する(ステップS706)。一方、検出割合があらかじめ指定された値よりも大きくないと判定した場合(ステップS705否定)、除外イベント抽出部231は、当該イベントを除外イベントとは設定せずに、異なるイベントについての処理を続行する(ステップS703へ移行)。
 このように、除外イベント抽出部231は、多くのホストで確認されるイベントはマルウェアによる通信の特徴のみを捉えたものではないと判定し、当該イベントを抽出し、除外イベントに設定する。これにより、除外イベント抽出部231は、感染端末の検出処理における誤検知を低減することが可能になる。
(イベント群生成処理)
 次に、図14を用いて、イベント群生成部232が実行するイベント群生成処理について説明する。図14は、イベント群生成部232によるイベント群生成処理手順を示すフローチャートである。
 図14に示すように、イベント群生成部232は、監視対象NW分析結果(組み合わせ抽出用及び検知用)とマルウェア通信分析結果とのイベント群生成処理について、全てのホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する(ステップS801)。全てに対して処理を実行したと判定した場合、イベント群生成処理は終了する(ステップS801肯定)。
 一方、全てのホストまたはマルウェアの分析結果を処理し終えていないと判定した場合(ステップS801否定)、イベント群生成部232は、分析結果を読み込むホストまたはマルウェアを指定する(ステップS802)。イベント群生成部232は、監視対象NW分析結果からイベント群を抽出する際には、監視対象NW内のホストごとにイベント群の生成を行う。ここで、ホストの識別には、例えば、ホストのIPアドレスを用いる。また、イベント群生成部232は、マルウェア通信分析結果からイベント群を生成する際には、マルウェアごとにイベント群の生成を行う。ここで、マルウェアの識別には、例えば、マルウェアのハッシュ値を用いる。なお、監視対象NW分析結果およびマルウェア通信分析結果は、いずれもイベントの確認された時刻でソートされているものとする。
 そして、イベント群生成部232は、以下に説明する処理に先立ち、直前イベント時刻およびイベント群(処理中)を初期化する(ステップS803)。
 まず、イベント群生成部232は、指定されたホストまたはマルウェアの分析結果を処理し終えたか否かについて判定する(ステップS804)。分析結果を処理し終えたと判定した場合(ステップS804肯定)、イベント群生成部232は、イベント群として出力していないイベント群(すなわち、生成処理中のイベント群)が存在するか否かを判定する(ステップS805)。イベント群として出力していないイベント群が存在する場合には(ステップS805肯定)、イベント群生成部232は、処理中のイベント群をイベント群として出力する(ステップS806)。
 一方、イベント群として出力していない処理中のイベント群が存在しない場合には(ステップS805否定)、イベント群生成部232は、処理をステップS801に移行させる。
 ステップS804において、分析結果を処理し終えていないと判定した場合(ステップS804否定)、イベント群生成部232は、指定されたホストまたはマルウェアのイベントとイベント発生時刻とを読み込む(ステップS807)。そして、イベント群生成部232は、読み込んだイベントが除外イベントに該当するか否かを判定する(ステップS808)。除外イベントに該当する場合(ステップS808肯定)、イベント群生成部232は、読み込んだイベントについてはイベント群には加えずに、処理をステップS804に移行する。
 一方、読み込んだイベントが除外イベントに該当しない場合(ステップS808否定)、イベント群生成部232は、読み込んだイベントのイベント発生時刻を記録する(ステップS809)。そして、イベント群生成部232は、記録したイベント発生時刻が直前イベント時刻から一定時間以上離れているかを判定する(ステップS810)。
 イベント発生時刻が直前イベント時刻から一定時間以上離れている場合(ステップS810肯定)、読み込んだイベントは、処理中のイベント群とは異なるイベント群に追加されることになるため、イベント群生成部232は、処理中のイベント群をイベント群として出力する(ステップS811)。この場合、イベント群生成部232は、出力したイベント群(処理中)を初期化する(ステップS812)。
 ステップS810において、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合(ステップS810否定)、イベント群生成部232は、読み込んだイベントのイベント発生時刻を直前イベント時刻に設定する(ステップS813)。言い換えれば、イベント群生成部232は、イベント発生時刻が直前イベント時刻から一定時間以上離れていない場合、そのイベントはその前のイベントと同一のイベント群の要素であると推定し、イベント群(処理中)に追加するかどうかを判定する(後述するステップS814)。
 そして、イベント群生成部232は、読み込んだイベントがイベント群(処理中)に含まれているか否かを判定する(ステップS814)。読み込んだイベントがイベント群(処理中)に含まれている場合(ステップS814肯定)、イベント群生成部232は、重複するイベントをイベント群(処理中)に追加しないため、処理をステップS804に移行させる。
 一方、読み込んだイベントがイベント群(処理中)に含まれていない場合(ステップS814否定)、イベント群生成部232は、当該イベントをイベント群(処理中)に追加する(ステップS815)。その後、イベント群生成部232は、処理をステップS804に移行させる。
 このように、イベント群生成部232は、読み込んだイベントが除外イベントに該当している場合はそのイベントをイベント群に組み込まない。また、イベント群生成部232は、イベントが発生した時刻を記録し、そのイベントが発生した時刻がその前のイベントが発生した時刻と比較し、一定時間以上離れているかどうかを判定する。これにより、イベント群生成部232は、イベント間の発生間隔が短いイベントによって一つのイベント群が形成されるように、イベント群を生成する。さらに、イベント群生成部232は、イベント群(処理中)に処理対象であるイベントが含まれているかどうかを判断し、含まれている場合には、当該イベントはイベント群に追加しない。すなわち、生成されたイベント群には、重複するイベントが存在しない。また、イベント群生成部232は、イベント群に含まれるイベントの数が一定以上であった場合にのみイベント群を出力する。
(共通イベント群抽出処理)
 次に、図15を用いて、共通イベント群抽出部241が実行する共通イベント群抽出処理について説明する。図15は、共通イベント群抽出部241による共通イベント群抽出処理手順を示すフローチャートである。
 図15に示すように、共通イベント群抽出部241は、マルウェア通信分析結果から抽出したイベント群を処理対象として読み込む(ステップS901)。そして、共通イベント群抽出部241は、イベント群間の類似度行列を生成し、階層的クラスタリングを実施する(ステップS902)。ここで、類似度行列の生成では、例えば、イベント群間のJaccard係数に基づいて類似度を算出する。
 そして、共通イベント群抽出部241は、実施する階層的クラスタリングにおいて、あらかじめ設定された類似度以上のイベント群同士を同一のクラスタに設定する(ステップS903)。
 ここで、共通イベント群抽出部241は、全てのクラスタから共通イベント群を抽出する処理を実行したか否かを判定する(ステップS904)。全てのクラスタから共通イベント群を抽出する処理を実行したと判定した場合(ステップS904肯定)、共通イベント群抽出部241による共通イベント群抽出処理は終了する。
 一方、全てのクラスタから共通イベント群を抽出する処理を実行していないと判定した場合(ステップS904否定)、共通イベント群抽出部241は、共通イベント群を抽出するクラスタを指定する(ステップS905)。
 そして、共通イベント群抽出部241は、同一クラスタ内のイベント群同士で共通的に確認できるイベントの集合を抽出する(ステップS906)。そして、共通イベント群抽出部241は、共通的に確認できるイベントの種類があらかじめ決められた数よりも多い場合に、当該イベントの集合を検知用イベント群候補として出力する(ステップS907)。例えば、共通イベント群抽出部241は、共通的に確認できるイベントが2種類以上である場合に、当該イベントの集合を検知用イベント群候補として出力してもよい。また、共通イベント群抽出部241は、類似度が一定以上のイベント群同士を同一クラスタに設定し、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であった場合に当該イベント群を検知用イベント群として抽出してもよい。
 このように、共通イベント群抽出部241は、マルウェア通信分析結果から抽出されたイベント群間の類似度を算出した上でクラスタリングを行う。その後、共通イベント群抽出部241は、一定以上の類似度を有するイベント群同士において、各イベント群間で共通的に確認されるイベントを抽出し、検知用イベント群候補とする。これにより、共通イベント群抽出部241は、共通的なイベントを検知用イベント群候補の要素とすることができるので、類似の動作を行うマルウェアの亜種が発生した場合にも、通信に共通の特徴が見られる場合には同一のイベント群で検知部250による判定を実施することが可能となる。すなわち、検出装置200によれば、マルウェアの亜種が頻繁に発生する状況下にあっても、検知に用いるイベント群を多数用意する必要がないため、検知処理の効率化とマルウェアの亜種に幅広く対応することが可能となる。さらに、検出装置200は、共通的なイベント群のみを用いることで、照合の判定を行うイベント群の数を削減し、処理時間の削減を可能にする。
(候補判定処理)
 次に、図16を用いて、イベント照合部242および候補判定部243が実行する候補判定処理について説明する。図16は、イベント照合部242および候補判定部243による候補判定処理手順を示すフローチャートである。
 図16に示すように、イベント照合部242は、監視対象NW分析結果(組み合わせ抽出用)のイベント群を検知対象イベント群として取得する(ステップS1001)。また、イベント照合部242は、共通イベント群抽出部241によって抽出された検知用イベント群候補をシグネチャ群として取得する(ステップS1002)。
 そして、イベント照合部242は、取得した検知対象イベント群とシグネチャ群とについて、イベント照合処理を実行する(ステップS1003)。なお、イベント照合部242によるイベント照合処理は、検知部250に係るイベント照合処理と同様であるため、詳細については後述する。
 続いて、候補判定部243は、イベント照合処理によって合致したと判定された照合用イベント群ごとの検知ホスト数を、監視対象NWのホスト数で除算し、照合用イベント群ごとの検知ホスト割合を算出する(ステップS1004)。ここで、照合用イベント群とは、シグネチャ群のうちから選択された一のイベント群のことをいう。すなわち、候補判定部243は、シグネチャ群に含まれるイベント群ごとに検知ホスト割合を算出する。そして、候補判定部243は、検知ホスト割合が一定以下である照合用イベント群を検知用イベント群として出力する(ステップS1005)。これにより、イベント照合部242および候補判定部243が実行する候補判定処理は終了する。
 このように、候補判定部243は、イベント照合部242によって照合された検知用イベント群候補ごとの検知ホスト数に基づき、監視対象NWの総ホスト数に対する検知ホスト数の割合が一定以下である場合に、当該検知用イベント群候補を検知用イベント群として出力する。これは、除外イベント抽出部231の処理と同様、一般に、監視対象NWにはマルウェアに感染している端末が少ないことを踏まえ、検知イベント群からあらかじめ誤検知につながるものを除外するための処理である。
 すなわち、監視対象NWにはマルウェアに感染している端末が少ないと仮定すると、本処理で合致したと判定された検知用イベント群候補はマルウェアの通信のみならず、一般の通信でも確認できるイベント群であるとみなせるため、検知に用いたときには誤検知を誘発しやすいイベント群であると判断できる。このため、候補判定部243の処理により、一般の通信と区別が難しいマルウェアの通信のイベント群をあらかじめ除外することで、検知部での誤検知を低減することが可能である。検出装置200は、例えば、イベント照合処理によって合致したと判定された照合用イベント群ごとの検知ホスト数を監視対象NWのホスト数で除算した結果が0、すなわち検知用イベント群候補で監視対象NW分析結果(組み合わせ抽出用)のイベント群を検知しなかったイベント群のみを検知用イベント群として出力してもよい。これにより、検出装置200は、検知用イベント群に誤検知を発生させうるものが混入するのを抑制できる。
(検知処理)
 次に、図17を用いて、検知部250が実行する検知処理について説明する。図17は、検知部250による検知処理手順を示すフローチャートである。
 図17に示すように、検知部250に係るイベント照合部251は、監視対象NW分析結果(検知用)のイベント群を検知対象イベント群として取得する(ステップS1101)。また、イベント照合部251は、検知イベント群抽出部240によって抽出された検知用イベント群をシグネチャ群として取得する(ステップS1102)。そして、イベント照合部251は、取得した検知対象イベント群とシグネチャ群とについて、イベント照合処理を実行する(ステップS1103)。
 続いて、検知部250に係る検知結果出力部252は、イベント照合処理によって合致したと判定されたホストをマルウェア感染ホストと判定し、その結果を検知結果として出力する(ステップS1104)。これにより、検知部250が実行する検知処理は終了する。
 このように、検知部250は、生成部230によって生成された監視対象NW分析結果(検知用)のイベント群と、検知イベント群抽出部240によって抽出された検知用イベント群とを照合する。これにより、検知部250は、あらかじめ監視対象NWで観測されうるイベントやイベントの組み合わせが除外されたイベント群同士を照合することができるので、監視対象NWで通常発生する通信を誤って検知する事態を削減させ、マルウェア感染端末を検知することができる。
(照合処理)
 次に、図18を用いて、検知部250に係るイベント照合部251が実行する照合処理について説明する。図18は、イベント照合部251による照合処理手順を示すフローチャートである。なお、検知イベント群抽出部240に係るイベント照合部242も、以下に説明する処理と同様の処理を実行する。
 図18に示すように、イベント照合部251は、監視対象NW分析結果(検知用)のイベント群を検知対象イベント群として取得する(ステップS1201)。また、イベント照合部251は、検知イベント群抽出部240によって抽出された検知用イベント群をシグネチャ群として取得する(ステップS1202)。
 そして、イベント照合部251は、全ての検知対象イベント群を判定したか否かを判定する(ステップS1203)。全ての検知対象イベント群を判定した場合には(ステップS1203肯定)、イベント照合部251による照合処理は終了する。
 一方、全ての検知対象イベント群を判定していない場合(ステップS1203否定)、イベント照合部251は、判定対象イベント群およびホスト情報を検知対象イベント群から取得する(ステップS1204)。そして、イベント照合部251は、取得したホスト情報に基づいて、検知対象となるホストについて、全てのシグネチャ群と判定を行ったか否かを判定する(ステップS1205)。全てのシグネチャ群と判定を行った場合には(ステップS1205肯定)、イベント照合部251は、処理をステップS1203に移行させる。
 一方、全てのシグネチャ群と判定を行っていない場合には(ステップS1205否定)、イベント照合部251は、シグネチャ群から照合用イベント群を取得する(ステップS1206)。そして、イベント照合部251は、判定対象イベント群と、照合用イベント群とで、共通的に確認されるイベントの個数を取得する(ステップS1207)。
 続いて、イベント照合部251は、共通的に確認されるイベントの個数を照合用イベント群に含まれるイベントの個数で除算した値が、あらかじめ指定した数よりも大きいか否かを判定する(ステップS1208)。あらかじめ指定した数よりも大きい場合には(ステップS1208肯定)、イベント照合部151は、判定対象イベント群と照合用イベント群とが合致したと判定する(ステップS1209)。
 一方、あらかじめ指定した数よりも大きくない場合には(ステップS1208否定)、イベント照合部251は、判定対象イベント群と照合用イベント群とが合致しなかったと判定する(ステップS1210)。
 そして、イベント照合部251は、照合用イベント群、判定対象イベント群のホスト情報、判定結果を出力する(ステップS1211)。そして、イベント照合部251は、処理をステップS1205へ移行させる。
 このように、イベント照合部251は、マルウェアの特徴的な通信順序をもとに抽出されたイベント群をシグネチャ群として、検知対象となるイベント群との照合処理を実行する。これにより、検出装置200は、類似の通信パターンを有するマルウェアに感染した端末を少ない誤検知で検知することができる。
 なお、第二の実施の形態と同様の処理は、監視対象NW内の端末装置と検出装置200とを備える検出システムによって実現されてもよい。この場合、端末装置は、監視対象NWにおいて所定のイベントを発生させ、検出装置200は、当該端末装置ごとにイベントを取得する。また、マルウェア感染端末の検出システムには、仮想的にマルウェアの通信を発生させる情報処理装置が含まれてもよい。この場合、検出システムに含まれる検出装置200は、情報処理装置が発生させたイベントをマルウェア分析結果として取得する。
[第二の実施の形態の効果]
 上述してきたように、第二の実施の形態に係る検出装置200は、監視対象NWの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象NWの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、重複しないイベント同士の組み合わせにより形成されるイベント群を生成する。そして、検出装置200は、マルウェアが発生させる通信に基づくイベント群間の類似度が一定以上のイベント群同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント群が存在する場合には、当該同一クラスタに属するイベント群間で共通して出現するイベントを取り出し、取り出したイベントの種類が一定数以上であるときには取り出したイベントの集合を検知用イベント群として抽出し、または、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であるときに当該イベント群を検知用イベント群として抽出する。そして、検出装置200は、生成された監視対象NWの通信に基づくイベント群と、抽出された検知用イベント群とが合致していると判定された場合に、監視対象NWにマルウェア感染端末が存在していることを検知する。
 これにより、第二の実施の形態に係る検出装置200は、監視対象NWで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減することができる。また、検出装置200は、単一のマルウェアの通信をシグネチャとするのではなく、マルウェア通信分析結果に基づいてクラスタリングされたイベント群のうち共通したイベントの集合を検知用イベント群(シグネチャ)とする。これにより、検出装置200は、マルウェア感染端末の検出精度を向上させることができる。また、検出装置200は、既知のマルウェアだけでなく、既知のマルウェアに類似する通信を行う亜種のマルウェアに感染した端末についても検出することが可能となる。
 また、検出装置200は、監視対象NWの端末ごとに取得されたイベントのうち、所定のイベントを発生させた監視対象NWの端末数を監視対象NWで観測可能な総端末数で除算した値が一定の値よりも大きい場合には、所定のイベントを除くイベントのみでイベント群を生成する。
 これにより、第二の実施の形態に係る検出装置200は、あらかじめ監視対象NWで観測されうるイベントやイベントの組み合わせが除外された検知用イベント群を処理に用いるため、監視対象NWで通常発生する通信を誤って検知する事態を削減することができる。
 また、検出装置200は、監視対象NWの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、イベント間の発生間隔が一定時間以上離れていないイベントからイベント群を生成する。
 これにより、第二の実施の形態に係る検出装置200は、マルウェアの動作に関連する一連の事象を区切ることが可能になり、検知処理での精度を向上させることができる。
 また、検出装置200は、抽出した検知用イベント群と、あらかじめ取得しておいた監視対象NW(組み合わせ抽出用)の通信に基づくイベント群とのイベント群同士を照合し、イベント群同士が合致していると照合された監視対象NWの通信に基づくイベント群に対応する端末の数を監視対象NWで観測可能な総端末数で除算した値が一定以上となる場合に、イベント群同士が合致していると照合された検知用イベント群が除外されたイベント群を新たな検知用イベント群として抽出する。
 これにより、第二の実施の形態に係る検出装置200は、マルウェアを検知するシグネチャとなる検知用イベント群をより精度よく作成することができるので、マルウェアの誤検知を低減させることができる。
 また、検出装置200は、監視対象NWの通信に基づくイベント群と検知用イベント群とに含まれるイベントのうち、共通的に出現するイベントの個数を当該検知用イベント群とに含まれるイベントの総数で除算した値が一定以上であった場合に、監視対象NWの通信に基づくイベント群と検知用イベント群とが合致したと判定する。
 これにより、第二の実施の形態に係る検出装置200は、比較対象となる各イベント群について、合致するイベント群を適切に照合することができる。結果として、検出装置200は、検知に用いるイベント群の精度を向上させることができるので、マルウェアの誤検知を低減させることができる。
 また、第二の実施の形態に係る検出システムは、監視対象NWにおいて、端末装置と、検出装置200とを備える。端末装置は、監視対象NWにおいて所定の通信を発生させる。検出装置200は、端末装置が発生させる所定の通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、端末装置またはマルウェアを区別する識別子ごとに取得されたイベントから、重複しないイベント同士の組み合わせにより形成されるイベント群を生成する。また、検出装置200は、マルウェアが発生させる通信に基づくイベント群間の類似度が一定以上のイベント群同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント群が存在する場合には、当該同一クラスタに属するイベント群間で共通して出現するイベントを取り出し、取り出したイベントの種類が一定数以上であるときには取り出したイベントの集合を検知用イベント群として抽出し、または、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であるときに当該イベント群を検知用イベント群として抽出する。また、検出装置200は、端末装置の通信に基づくイベント群と、抽出された検知用イベント群とが合致していると判定された場合に、監視対象ネットワークにマルウェア感染端末が存在していることを検知する。
 これにより、第二の実施の形態に係る検出システムは、監視対象NWで照合すべきパターンとなるシグネチャを削減し、照合にかかる時間を削減するとともに、既知のマルウェアに類似する通信を行う亜種のマルウェアについても検出することが可能となる。
(構成等)
 なお、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
 また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(プログラム)
 また、上記実施形態に係る検出装置100、200が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータに読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、検出装置100、200と同様の機能を実現する検出プログラムを実行するコンピュータの一例を説明する。
 図19は、マルウェア感染端末の検出プログラムを実行するコンピュータを示す図である。図19に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
 メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
 ここで、図19に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1090やメモリ1010に記憶される。
 また、検出プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ1090に記憶される。具体的には、上記実施形態で説明した検出装置100、200が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。
 また、検出プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
 なお、検出プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、検出プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 100、200 検出装置
 130 系列生成部
 131、231 除外イベント抽出部
 132 イベント系列生成部
 140 検知用系列抽出部
 141 共通イベント系列抽出部
 142、242 イベント照合部
 143、243 候補判定部
 150、250 検知部
 151、251 イベント照合部
 152、252 検知結果出力部
 230 生成部
 232 イベント群生成部
 240 検知イベント群抽出部
 241 共通イベント群抽出部

Claims (11)

  1.  監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成部と、
     マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出部と、
     前記生成部によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出部によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知部と、
     を備えることを特徴とするマルウェア感染端末の検出装置。
  2.  前記生成部は、前記イベントの集合として、当該イベントの発生順序を踏まえて形成されるイベント系列を生成し、
     前記抽出部は、マルウェアが発生させる通信に基づくイベント系列間での類似度が一定以上のイベント系列同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント系列が存在する場合には、当該同一クラスタに属するイベント系列間で共通して出現するイベントを取り出し、取り出したイベントを時系列順に結合した一定の長さ以上のイベント系列を検知用イベント系列として抽出し、または、当該同一クラスタ内に単一のイベント系列しか存在しない場合には、当該イベント系列が一定の長さ以上であった場合に当該イベント系列を検知用イベント系列として抽出し、
     前記検知部は、前記生成部によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出部によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する、
     ことを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  3.  前記生成部は、前記イベントの集合として、重複しないイベント同士の組み合わせにより形成されるイベント群を生成し、
     前記抽出部は、マルウェアが発生させる通信に基づくイベント群間の類似度が一定以上のイベント群同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベント群が存在する場合には、当該同一クラスタに属するイベント群間で共通して出現するイベントを取り出し、取り出したイベントの種類が一定数以上であるときには取り出したイベントの集合を検知用イベント群として抽出し、または、当該同一クラスタ内に単一のイベント群しか存在しない場合には、当該イベント群に含まれるイベントの種類が一定数以上であるときには当該イベント群を検知用イベント群として抽出し、
     前記検知部は、前記生成部によって生成された監視対象ネットワークの通信に基づくイベント群と、前記抽出部によって抽出された検知用イベント群とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する、
     ことを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  4.  前記生成部は、前記監視対象ネットワークの端末ごとに取得されたイベントのうち、所定のイベントを発生させた監視対象ネットワークの端末数を監視対象ネットワークで観測可能な総端末数で除算した値が一定の値よりも大きい場合に、当該所定のイベントを除くイベントのみで前記イベントの集合を生成する、
     ことを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  5.  前記生成部は、前記監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントのうち、当該イベント間の発生間隔が一定時間以上離れていないイベントからイベントの集合を生成する、
     ことを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  6.  前記抽出部は、抽出した前記検知用イベントの集合と、あらかじめ取得しておいた監視対象ネットワークの通信に基づく前記イベントの集合とを照合し、前記イベントの集合同士が合致していると判定された前記監視対象ネットワークの通信に基づくイベントの集合に対応する端末の数を監視対象ネットワークで観測可能な総端末数で除算した値が一定以上となる場合に、前記抽出した前記検知用イベントの集合のうち、前記イベントの集合同士が合致していると判定された当該検知用イベントの集合が除外されたイベントの集合を新たな検知用イベントの集合として抽出する、
     ことを特徴とする請求項1に記載のマルウェア感染端末の検出装置。
  7.  前記検知部は、前記監視対象ネットワークの通信に基づくイベント系列と前記検知用イベント系列とで共通する部分のうち、最長となる部分長を当該検知用イベント系列長で除算した値が一定以上であった場合に、当該監視対象ネットワークの通信に基づくイベント系列と当該検知用イベント系列とが合致したと判定する、
     ことを特徴とする請求項2に記載のマルウェア感染端末の検出装置。
  8.  前記検知部は、前記監視対象ネットワークの通信に基づくイベント群と前記検知用イベント群とに含まれるイベントのうち、共通的に出現するイベントの個数を、当該検知用イベント群とに含まれるイベントの総数で除算した値が一定以上であった場合に、当該監視対象ネットワークの通信に基づくイベント群と当該検知用イベント群とが合致したと判定する、
     ことを特徴とする請求項3に記載のマルウェア感染端末の検出装置。
  9.  前記生成部は、前記監視対象ネットワークの端末およびマルウェアを区別する識別子ごとに取得されたイベントのうち、重複して出現するイベントを除外して前記イベント系列を生成する、
     ことを特徴とする請求項2に記載のマルウェア感染端末の検出装置。
  10.  マルウェア感染端末の検出装置で実行される検出方法であって、
     監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成工程と、
     マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出工程と、
     前記生成工程によって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出工程によって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知工程と、
     を含んだことを特徴とするマルウェア感染端末の検出方法。
  11.  監視対象ネットワークの通信およびマルウェアが発生させる通信のうち、通信を特徴付けるルールに合致する事象であるイベントであって、監視対象ネットワークの端末またはマルウェアを区別する識別子ごとに取得されたイベントから、所定の条件に基づいて形成されるイベントの集合を生成する生成ステップと、
     マルウェアが発生させる通信に基づくイベントの集合間の類似度が一定以上のイベントの集合同士により形成されるクラスタにおいて、同一クラスタ内に複数のイベントの集合が存在する場合には、当該同一クラスタに属するイベントの集合間で共通して出現するイベントを取り出し、所定の条件に従って、取り出したイベントの集合を検知用イベントの集合として抽出し、または、当該同一クラスタ内に単一のイベントの集合しか存在しない場合には、所定の条件を満たしたときには当該イベントの集合を検知用イベントの集合として抽出する抽出ステップと、
     前記生成ステップによって生成された監視対象ネットワークの通信に基づくイベントの集合と、前記抽出ステップによって抽出された検知用イベントの集合とが合致していると判定された場合に、当該監視対象ネットワークにマルウェア感染端末が存在していることを検知する検知ステップと、
     をコンピュータに実行させるためのマルウェア感染端末の検出プログラム。
PCT/JP2015/081659 2014-11-14 2015-11-10 マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム WO2016076334A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/522,147 US10819717B2 (en) 2014-11-14 2015-11-10 Malware infected terminal detecting apparatus, malware infected terminal detecting method, and malware infected terminal detecting program
JP2016559074A JP6181884B2 (ja) 2014-11-14 2015-11-10 マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2014231619 2014-11-14
JP2014-231618 2014-11-14
JP2014-231619 2014-11-14
JP2014231618 2014-11-14

Publications (1)

Publication Number Publication Date
WO2016076334A1 true WO2016076334A1 (ja) 2016-05-19

Family

ID=55954417

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/081659 WO2016076334A1 (ja) 2014-11-14 2015-11-10 マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム

Country Status (3)

Country Link
US (1) US10819717B2 (ja)
JP (1) JP6181884B2 (ja)
WO (1) WO2016076334A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016147944A1 (ja) * 2015-03-18 2017-08-31 日本電信電話株式会社 マルウェア感染端末の検出装置、マルウェア感染端末の検出システム、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム
WO2017217301A1 (ja) * 2016-06-13 2017-12-21 日本電信電話株式会社 ログ分析装置、ログ分析方法およびログ分析プログラム
JP2019521422A (ja) * 2016-05-20 2019-07-25 インフォマティカ エルエルシー 異常なユーザ行動関連アプリケーションデータを検出するための方法、装置、およびコンピュータ読み取り可能な媒体

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112014006880T5 (de) * 2014-08-22 2017-05-04 Nec Corporation Analysevorrichtung, Analyseverfahren und computerlesbares Speichermedium
JP6756224B2 (ja) * 2016-10-03 2020-09-16 富士通株式会社 ネットワーク監視装置、ネットワーク監視プログラム及びネットワーク監視方法
JP7231016B2 (ja) * 2019-04-25 2023-03-01 日本電信電話株式会社 特定装置、特定方法及び特定プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140165198A1 (en) * 2012-10-23 2014-06-12 Verint Systems Ltd. System and method for malware detection using multidimensional feature clustering

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716737B2 (en) * 2002-11-04 2010-05-11 Riverbed Technology, Inc. Connection based detection of scanning attacks
US20040111531A1 (en) * 2002-12-06 2004-06-10 Stuart Staniford Method and system for reducing the rate of infection of a communications network by a software worm
US7809670B2 (en) * 2005-12-09 2010-10-05 Microsoft Corporation Classification of malware using clustering that orders events in accordance with the time of occurance
US8424094B2 (en) * 2007-04-02 2013-04-16 Microsoft Corporation Automated collection of forensic evidence associated with a network security incident
JP5009244B2 (ja) 2008-07-07 2012-08-22 日本電信電話株式会社 マルウェア検知システム、マルウェア検知方法及びマルウェア検知プログラム
US9246932B2 (en) * 2010-07-19 2016-01-26 Sitelock, Llc Selective website vulnerability and infection testing
IL219597A0 (en) * 2012-05-03 2012-10-31 Syndrome X Ltd Malicious threat detection, malicious threat prevention, and a learning systems and methods for malicious threat detection and prevention
US9965937B2 (en) * 2013-03-15 2018-05-08 Palantir Technologies Inc. External malware data item clustering and analysis
US9729558B2 (en) * 2014-02-21 2017-08-08 The Regents Of The University Of Michigan Network maliciousness susceptibility analysis and rating
US9860262B2 (en) * 2014-12-05 2018-01-02 Permissionbit Methods and systems for encoding computer processes for malware detection
US10176321B2 (en) * 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140165198A1 (en) * 2012-10-23 2014-06-12 Verint Systems Ltd. System and method for malware detection using multidimensional feature clustering

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
DAIKI CHIBA ET AL.: "Design and Evaluation of a Profiling Method to Detect Post-Infection Communications", COMPUTER SECURITY SYMPOSIUM 2014 RONBUNSHU, 15 October 2014 (2014-10-15) *
GU, G. ET AL.: "Clustering Analysis of Network Traffic for Protocol- and Structure- Independent Botnet Detection", PROCEEDINGS OF THE17TH USENIX SECURITY SYMPOSIUM, 30 July 2008 (2008-07-30), pages 139 - 154, Retrieved from the Internet <URL:http://usenix.org/legacy/event/sec08/tech> [retrieved on 20160204] *
JACOB, G. ET AL.: "JACKSTRAWS: Picking Command and Control Connections from Bot Traffic", PROCEEDINGS OF THE20TH USENIX SECURITY SYMPOSIUM, 8 August 2011 (2011-08-08), Retrieved from the Internet <URL:https://www.usenix.org/legacy/events/secll> [retrieved on 20160204] *
KENSUKE NAKATA ET AL.: "A Method of Extracting Common Malware Communication Patterns from Dynamic Analysis Result", COMPUTER SECURITY SYMPOSIUM 2015 RONBUNSHU, 14 October 2015 (2015-10-14) *
RIECK, K. ET AL.: "Detecting the ''Phoning Home'' of Malicious Software", PROCEEDINGS OF THE 2010 ACM SYMPOSIUM ON APPLIED COMPUTING, 2010, pages 1978 - 1984 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016147944A1 (ja) * 2015-03-18 2017-08-31 日本電信電話株式会社 マルウェア感染端末の検出装置、マルウェア感染端末の検出システム、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム
US10303873B2 (en) 2015-03-18 2019-05-28 Nippon Telegraph And Telephone Corporation Device for detecting malware infected terminal, system for detecting malware infected terminal, method for detecting malware infected terminal, and program for detecting malware infected terminal
JP2019521422A (ja) * 2016-05-20 2019-07-25 インフォマティカ エルエルシー 異常なユーザ行動関連アプリケーションデータを検出するための方法、装置、およびコンピュータ読み取り可能な媒体
WO2017217301A1 (ja) * 2016-06-13 2017-12-21 日本電信電話株式会社 ログ分析装置、ログ分析方法およびログ分析プログラム
JPWO2017217301A1 (ja) * 2016-06-13 2018-09-27 日本電信電話株式会社 ログ分析装置、ログ分析方法およびログ分析プログラム
US11356467B2 (en) 2016-06-13 2022-06-07 Nippon Telegraph And Telephone Corporation Log analysis device, log analysis method, and log analysis program

Also Published As

Publication number Publication date
JP6181884B2 (ja) 2017-08-16
US10819717B2 (en) 2020-10-27
US20170339171A1 (en) 2017-11-23
JPWO2016076334A1 (ja) 2017-04-27

Similar Documents

Publication Publication Date Title
JP6348656B2 (ja) マルウェア感染端末の検出装置、マルウェア感染端末の検出システム、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム
JP6181884B2 (ja) マルウェア感染端末の検出装置、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム
CN106790186B (zh) 基于多源异常事件关联分析的多步攻击检测方法
Kim et al. Improvement of malware detection and classification using API call sequence alignment and visualization
JP6528448B2 (ja) ネットワーク攻撃監視装置、ネットワーク攻撃監視方法、及びプログラム
CN107251037B (zh) 黑名单生成装置、黑名单生成系统、黑名单生成方法和记录介质
CN108156131B (zh) Webshell检测方法、电子设备和计算机存储介质
CN108737336B (zh) 基于区块链的威胁行为处理方法及装置、设备及存储介质
RU2568285C2 (ru) Способ и система анализа работы правил обнаружения программного обеспечения
US9992216B2 (en) Identifying malicious executables by analyzing proxy logs
JP6039826B2 (ja) 不正アクセスの検知方法および検知システム
US10262122B2 (en) Analysis apparatus, analysis system, analysis method, and analysis program
JP6174520B2 (ja) 悪性通信パターン検知装置、悪性通信パターン検知方法、および、悪性通信パターン検知プログラム
US20170310694A1 (en) Malicious communication pattern extraction apparatus, malicious communication pattern extraction method, and malicious communication pattern extraction program
KR102293773B1 (ko) 인공지능을 사용한 네트워크 트래픽 분석 장치 및 방법
KR102280845B1 (ko) 네트워크 내의 비정상 행위 탐지 방법 및 그 장치
JP6386593B2 (ja) 悪性通信パターン抽出装置、悪性通信パターン抽出システム、悪性通信パターン抽出方法、および、悪性通信パターン抽出プログラム
KR20200068608A (ko) 패킷 데이터에 대한 사이버 공격을 방어하기 위한 공격 방어 방법 및 이를 수행하는 장치들
KR101712462B1 (ko) Ip 위험군 탐지 시스템
KR20180101868A (ko) 악성 행위 의심 정보 탐지 장치 및 방법
KR101619059B1 (ko) 악성 스크립트 탐지를 위한 경량 시그니처 생성 및 배포 장치, 시스템 및 방법
KR101645868B1 (ko) 어플리케이션 인식을 위한 룰 생성 방법 및 어플리케이션 인식을 위한 룰 생성 장치
Agrawal et al. Detection and Implementation of Web-based Attacks using Attribute Length Method

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016559074

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15858215

Country of ref document: EP

Kind code of ref document: A1