WO2018235252A1 - 分析装置、ログの分析方法及び記録媒体 - Google Patents

分析装置、ログの分析方法及び記録媒体 Download PDF

Info

Publication number
WO2018235252A1
WO2018235252A1 PCT/JP2017/023136 JP2017023136W WO2018235252A1 WO 2018235252 A1 WO2018235252 A1 WO 2018235252A1 JP 2017023136 W JP2017023136 W JP 2017023136W WO 2018235252 A1 WO2018235252 A1 WO 2018235252A1
Authority
WO
WIPO (PCT)
Prior art keywords
log
information
log entry
feature
recorded
Prior art date
Application number
PCT/JP2017/023136
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 PCT/JP2017/023136 priority Critical patent/WO2018235252A1/ja
Priority to JP2019524817A priority patent/JP6860070B2/ja
Priority to US16/624,667 priority patent/US20200184072A1/en
Publication of WO2018235252A1 publication Critical patent/WO2018235252A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Definitions

  • the present invention relates to techniques for analyzing logs.
  • a technique for analyzing a log recorded when the software program is executed can be used.
  • Patent Document 1 describes a technique for presenting, to a user, an operation screen for setting conditions for filtering (restricting) a log of a log related to a certain information system.
  • Patent Document 2 there is a technology for calculating the value of the electronic file from a model, created for each user, that represents the importance of the operation on the electronic file and information that represents the operation on the electronic file performed by the user. Have been described.
  • the technique of analyzing logs is also applicable to, for example, analysis of malicious software programs (malware etc.).
  • malware software programs
  • the analyst investigates whether the software program performs malicious activity.
  • the software program to be analyzed may be described as a sample (sample).
  • Patent Document 1 is a technology for the user to manually set log filtering.
  • Patent Document 2 is a technology for determining the value of a certain electronic file in accordance with the user's operation and the value judgment regarding the electronic file. That is, the techniques described in the above-mentioned patent documents are not techniques that can solve the above-mentioned problems.
  • the technology according to the present disclosure has been developed in view of such circumstances. That is, the present disclosure has one of the main objects to provide a technology capable of appropriately determining the importance of a certain log.
  • an analyzer has the following configuration. That is, the analysis apparatus according to an aspect of the present disclosure includes: a first feature extracted from a first log entry, which is a log entry in which information representing an operation of a software program is recorded; A feature extraction unit configured to be capable of creating feature information related to the first log entry using a second feature amount different from the first feature amount extracted from the second log entry; An analysis model capable of determining the importance of another log entry using learning data including one or more of the feature information on the entry and the importance information indicating the importance given to the first log entry. And an analysis model creation unit to create.
  • an analysis method has the following configuration. That is, in the analysis method according to an aspect of the present disclosure, a first feature extracted from a first log entry, which is a log entry in which information representing an operation of a software program is recorded, and one or more of the log entries. Feature information related to the first log entry is created using a second feature amount different from the first feature amount extracted from the second log entry, and the feature information related to the first log entry, and Using the learning data including one or more of the importance information indicating the importance assigned to the first log entry, and creating an analysis model capable of determining the importance of the other log entries.
  • the above object is also achieved by an analysis apparatus having the above configuration, a computer program (analysis program) for realizing an analysis method and the like by a computer, and a computer readable recording medium etc storing the computer program. Be done.
  • an analysis program has the following configuration. That is, an analysis program according to an aspect of the present disclosure includes: a first feature extracted from a first log entry which is a log entry in which information representing an operation of a software program is recorded; A process of creating feature information on the first log entry using a second feature value different from the first feature value extracted from the second log entry; and the feature information on the first log entry A process of creating an analysis model capable of determining the importance of another log entry using learning data including one or more of importance information representing the importance assigned to the first log entry; Make it run on a computer.
  • the computer program described above may be recorded in a recording medium according to an aspect of the present disclosure.
  • FIG. 1 is a block diagram illustrating the functional configuration of the analyzer in the first embodiment of the present disclosure.
  • FIG. 2 is an explanatory diagram of a specific example of the log.
  • FIG. 3 is an explanatory diagram illustrating an outline of a process of generating feature information from a log.
  • FIG. 4 is an explanatory view showing a specific example of teacher data.
  • FIG. 5 is an explanatory diagram of a specific example of the log in which the teacher label is set.
  • FIG. 6 is a flowchart showing an example of the operation of the analyzer in the first embodiment of the present disclosure.
  • FIG. 7 is a block diagram illustrating the functional configuration of the analyzer in the second embodiment of the present disclosure.
  • FIG. 1 is a block diagram illustrating the functional configuration of the analyzer in the first embodiment of the present disclosure.
  • FIG. 2 is an explanatory diagram of a specific example of the log.
  • FIG. 3 is an explanatory diagram illustrating an outline of a process of generating feature information from
  • FIG. 8 is a block diagram illustrating another functional configuration of the analyzer in the second embodiment of the present disclosure.
  • FIG. 9 is a block diagram illustrating still another functional configuration of the analyzer in the second embodiment of the present disclosure.
  • FIG. 10 is an explanatory view showing a specific example of a log in the second embodiment of the present disclosure.
  • FIG. 11 is an explanatory view showing a specific example of teacher data in the second embodiment of the present disclosure.
  • FIG. 12 is an explanatory view showing a specific example of the first feature amount in the second embodiment of the present disclosure.
  • FIG. 13 is an explanatory view showing a specific example of the second feature amount in the second embodiment of the present disclosure.
  • FIG. 14 is an explanatory view showing another specific example of the second feature amount in the second embodiment of the present disclosure.
  • FIG. 10 is an explanatory view showing a specific example of a log in the second embodiment of the present disclosure.
  • FIG. 11 is an explanatory view showing a specific example of teacher data in the second embodiment of
  • FIG. 15 is an explanatory view showing still another specific example of the second feature amount according to the second embodiment of the present disclosure.
  • FIG. 16 is an explanatory view showing still another specific example of the second feature amount in the second embodiment of the present disclosure.
  • FIG. 17 is an explanatory view showing an outline of a learning phase and an evaluation phase of an analysis model according to the second embodiment of the present disclosure.
  • FIG. 18 is an explanatory view showing a specific example of a user interface generated by the analyzer in the second embodiment of the present disclosure.
  • FIG. 19 is an explanatory view showing another specific example of the user interface generated by the analyzer in the second embodiment of the present disclosure.
  • FIG. 20 is an explanatory view showing still another specific example of the user interface generated by the analyzer in the second embodiment of the present disclosure.
  • FIG. 21 is a flowchart illustrating an example of the operation of the analysis device in the second embodiment of the present disclosure.
  • FIG. 22 is a block diagram illustrating a functional configuration of the analyzer in the first modification of the second embodiment of the present disclosure.
  • FIG. 23 is an explanatory diagram showing an outline of a process of creating feature information using external context information in the first modification of the second embodiment of the present disclosure.
  • FIG. 24 is a flowchart showing an example of the operation of the analyzer in the first modification of the second embodiment of the present disclosure.
  • FIG. 25 is a block diagram illustrating a functional configuration of the analyzer in the second modification of the second embodiment of the present disclosure.
  • FIG. 26 is a block diagram illustrating a functional configuration of the analyzer in the third modification of the second embodiment of the present disclosure.
  • FIG. 27 is a block diagram showing a configuration of a hardware device that can realize the analysis device according to each embodiment of the present disclosure.
  • malware malicious software programs
  • signature analysis techniques and sandbox analysis techniques are known.
  • signatures data to be detected and operation patterns are previously defined as signatures. For example, if data related to a certain sample or the behavior of the sample matches the signature, the sample is detected as malware.
  • sandbox analysis technology may be used because it may not be able to cope with a wide variety of malware (including new types and variants).
  • Sandboxes are protected isolation environments in which the analytes to be analyzed can be performed.
  • the sandbox can be realized, for example, using a virtual environment or the like.
  • the movement of the sample in the sandbox does not affect the outside of the sandbox. For this reason, in the sandbox type analysis technique, for example, by executing the sample in the sandbox and monitoring its operation, it is possible to generate an analysis result on the sample.
  • the reliability of the analysis result by the sandbox type analysis technique may not always be sufficient.
  • highly reliable analysis results may not always be obtained.
  • the analyst will investigate the behavior of the sample by, for example, checking in detail the log obtained by executing the sample in a sandbox environment. Because the amount and frequency of logs recorded for each sample are different, in some cases, analysts are required to check important logs from among a large number of logs. Also, in order to determine the importance of a given log, analysts are required to consider various factors such as the relationship between the logs, the output order of the logs, the amount and frequency of logs with particular features, etc. Be The analysis of the log is not always easy for the analyst due to constraints such as time required for analysis and the experience (skills level) of the analyst.
  • the present applicant has conceived of the technology according to the present disclosure, which is a technology capable of appropriately determining the importance of a certain log without manual intervention.
  • the technology according to the present disclosure described below uses, for example, a log in which an operation of a software program is recorded and information indicating the importance of the log as learning data to determine the importance of other logs. It may include a configuration to learn possible models. Further, the technology according to the present disclosure generates feature information related to one entry using a feature amount acquired from a certain log entry that constitutes a log and a feature amount that indicates the context of the log. The configuration may be included. The log entry and log context will be described later. Further, the technology according to the present disclosure may include, for example, a configuration capable of controlling a method for a certain log to an analyst according to the degree of importance of the log determined using a learned model.
  • the importance of a certain log can be determined without using the analyst's manual operation. It can be judged properly.
  • one or more components may be implemented by one or more devices; The elements may be implemented using multiple devices.
  • the analysis device described below may be implemented as a single device (physical or virtual device) or as a system using multiple spaced devices (physical or virtual devices). Good.
  • each device may be communicably connected by a wired, wireless, or a communication network appropriately combining them.
  • the hardware configuration that can realize the analysis device described below will be described later.
  • FIG. 1 is a block diagram conceptually showing the functional configuration of the analyzer 100 in the present embodiment.
  • the analysis device 100 in the present embodiment includes a feature extraction unit 101 (feature extraction unit) and an analysis model generation unit 102 (analysis model generation unit). These components constituting the analysis device 100 may be communicably connected using an appropriate communication method.
  • the analyzer 100 is provided with a log in which information on the operation of a certain software program (specimen) is recorded.
  • the log includes, for example, various processes executed by a certain software program (for example, API (Application Programming Interface) call, file access, process control (start and end, etc.), communication process, registry access, system call, etc.) May be included.
  • API Application Programming Interface
  • FIG. 2 An example of the log is shown in FIG.
  • the log shown in FIG. 2 is a specific example for the facilities of description, and the technique which concerns on this indication is not limited to this.
  • the log 200 records one or more records including a record identifier 200a and a log entry 200b.
  • the individual records included in the log 200 are operation information representing the operation of the software program observed by executing a software program. In the case of the example shown in FIG. 2, six records are illustrated.
  • the record identifier 200a is, for example, identification information that can identify a record included in a certain log.
  • the record identifier 200a may record information that can specify the sequence (order) of the operation of the software program.
  • the record identifier 200a may store, for example, information (such as information indicating time or elapsed time) that can specify the timing at which each process is performed.
  • log entry 200b information representing the content of the process (operation of the software program) executed by the software program is recorded.
  • the information recorded in the log entry 200b is not particularly limited, and appropriate information is recorded according to the process executed by the software program.
  • the log entry 200b may appropriately include, for example, information that can specify a process executed by a software program, information that represents data used for the process, information that can specify a target of the process, and the like.
  • the feature extraction unit 101 extracts feature information representing a record (in particular, a log entry included in the record) from one or more records included in a log (for example, the log 200) in which the operation of the software program is recorded. create. Specifically, the feature extraction unit 101 selects (specifies) one record used as learning data in the log 200, and extracts a feature amount representing the feature of the log entry.
  • a log entry of a record used as learning data may be described as a "first log entry”
  • a feature extracted from the log entry may be described as a "first feature.”
  • the first feature amount in the present embodiment is not particularly limited, and an appropriate feature amount may be selected according to the format, content, and the like of the first log entry.
  • the first feature amount may be, for example, a feature amount that can be extracted from a character string when the information recorded in the first log entry is expressed as a character string.
  • the first feature quantity may be, for example, a feature quantity representing the information recorded in the first log entry as a numerical value.
  • the first feature amount may be represented as a vector (feature vector) consisting of one or more elements.
  • the feature extraction unit 101 extracts feature amounts (which may be described as “second feature amounts”) different from the first feature amounts from one or more records included in the log (for example, the log 200).
  • second log entry the log entry of the record used to create the second feature amount
  • the feature extraction unit 101 selects (specifies) one or more records included in the log 200, and the second feature amount is selected based on the log entries (second log entries) of those records. Extract.
  • the second feature may be a different feature from the first feature.
  • the second log entry may be, for example, a log entry whose recorded content meets certain criteria.
  • criteria any one or more of the criteria exemplified below may be used, but is not limited thereto.
  • a log entry of one record may be used only for one of the first log entry and the second log entry, or may be used for both.
  • the feature extraction unit 101 may extract the second log entry from the log 200 including the first log entry, and may specify the second log entry from another log 200 not including the first log entry. .
  • the second feature quantity is, for example, a feature quantity representing the context of the log extracted based on one or more second log entries included in a certain log.
  • the context may be, for example, background information related to a certain log or information representing a comprehensive feature of a certain log.
  • the second feature amount may be represented as a vector (feature vector) composed of one or more elements.
  • the feature extraction unit 101 uses the first feature extracted from one first log entry included in a certain log and the second feature extracted from one or more second log entries included in the log. , Generate feature information regarding the first log entry. That is, the feature information of the first log entry includes the feature quantity extracted directly from the first log entry and the feature quantity representing the context of the log extracted based on one or more second log entries. Including. When the first feature amount and the second feature amount are represented as feature vectors, the feature information of the first log entry may be represented as a vector (feature vector) including all elements of the feature vectors.
  • the record 201 to which the code “L1” is attached is a record including the first log entry (hereinafter referred to as “first log entry L1”), the codes “L2_1” to “L2_4” are It is assumed that the attached record is a second log entry (hereinafter referred to as “second log entry L2_1” and the like) record.
  • first log entry L1 the first log entry
  • second log entry L2_1 the attached record
  • FIG. 3 a process of generating feature information related to the first log entry L1 from the log 200 shown in FIG. 2 will be described.
  • the feature extraction unit 101 extracts a first feature amount related to the first log entry L1 from the first log entry L1.
  • the first feature amount is represented as a feature vector (first feature vector) of “N” dimension (“N” is a natural number) including elements “x1” to “xN”.
  • the feature extraction unit 101 extracts a second feature amount related to the first log entry L1 from the second log entry L2_1 to the second log entry L2_4.
  • the second feature amount is represented as a feature vector (second feature vector) of “M” dimension (“M” is a natural number) including elements “y1” to “yM”.
  • the feature extraction unit 101 creates feature information related to the first log entry L1 using the extracted first feature amount and second feature amount.
  • the feature information of the first log entry L1 is represented as a ("M + N")-dimensional feature vector including elements "x1" to "xN" and "y1" to "yM".
  • the arrangement order of the elements in the feature vector is not particularly limited. As illustrated in FIG. 3, the feature extraction unit 101 may arrange the elements of the first feature vector and the elements of the second feature vector in series, or may arrange them in another arrangement order.
  • the feature extraction unit 101 may provide the analysis model creation unit 102 with the feature information created for one or more first log entries included in the log as learning data.
  • the analysis model creation unit 102 can determine the importance of another log entry using the feature information on a certain log entry and the importance information indicating the importance of the log entry, which is generated by the feature extraction unit 101. Create an analytical model. Specifically, the analysis model creation unit 102 learns (trains) an analysis model (described later) using, for example, feature information on importance of a plurality of first log entries and importance information as training data (training data). Execute the process to
  • importance information is provided as teacher data in advance for each log entry used as learning data.
  • a skilled (highly proficient) analyst sets importance level information for each log entry used as learning data, whereby appropriate importance levels can be given to each log entry.
  • the knowledge of the analyst is reflected in the learning data including the feature information created in this manner and the teacher data including the importance degree information.
  • An analysis model trained using such learning data and teacher data is considered to be able to determine the importance of each log entry based on the analyst's knowledge.
  • the importance information indicating the importance of the log entry corresponds to the teacher label given to the log entry used as learning data.
  • the specific expression method of the importance level information is not particularly limited.
  • the importance level information may be represented, for example, using some label (for example, “high”, “medium”, “low”, etc.) or may be represented using a numerical value.
  • the importance level information may be represented, for example, using discrete values (for example, “non-significant: 0”, “important: 1”, etc.), and may be represented using continuous values within a certain range.
  • FIG. 4 is an explanatory view showing a specific example of teacher data in this case.
  • the teacher data shown in FIG. 4 includes information (record identifier 400a) for specifying each log entry illustrated in FIG. 2 and importance degree information (importance degree information 400b) given to each log entry.
  • a log including importance level information related to the first log entry may be provided as learning data including teacher data.
  • FIG. 5 is an explanatory view showing a specific example in this case.
  • the log 500 shown in FIG. 5 is modified from the log 200 shown in FIG. 2 so as to include the importance level information 400 b.
  • teacher data including importance information as described above may be provided to the analysis apparatus 100 in advance (for example, together with a log).
  • the analysis device 100 may refer to teacher data stored in another device.
  • the analysis model is a model that can receive feature information on a certain log entry as an input, and can determine the importance of the log entry.
  • various models used in the field of supervised machine learning and pattern recognition for example, SVM (Support Vector Machine), multi-layer neural network (NN: Neural Network), gradient boost tree, random forest, etc.
  • SVM Small Vector Machine
  • N multi-layer neural network
  • gradient boost tree random forest, etc.
  • this embodiment is not limited to the said illustration, The analysis model which employ
  • the analysis model creation unit 102 executes an appropriate learning algorithm for learning an analysis model using the feature information on the first log entry provided from the feature extraction unit 101 and the teacher data. As a result, an analysis model capable of determining the importance of log entries is learned.
  • the analysis device 100 receives a log in which information on the operation of a certain software program is recorded (step S601).
  • the analysis apparatus 100 creates, from the received log, feature information on each log entry used as learning data (step S602). At this time, the feature extraction unit 101 extracts the first feature amount from one certain first log entry, and extracts the second feature amount from one or more second log entries. The feature extraction unit 101 creates feature information on one log entry using the first and second feature amounts. The feature extraction unit 101 may provide the generated feature information to the analysis model creation unit 102 as learning data.
  • the analysis apparatus 100 executes the learning process of the analysis model using learning data including feature information of the log entry and teacher data including importance degree information added to the log entry.
  • the analysis device 100 can create an analysis model that can determine the importance of a certain log entry.
  • the analysis apparatus 100 creates feature information of log entries included in a log used as learning data.
  • the analysis device 100 learns the analysis model using the learning data including the feature information created as described above and the teacher data including the importance degree information added to the log entry.
  • the analysis apparatus 100 can determine, for example, the importance of a log entry not included in learning data.
  • the analysis device 100 is a second feature amount representing a log context extracted based on a first feature amount extracted from one log entry included in the log and one or more log entries. And create feature information on one log entry. That is, the context of the log is reflected in the feature information related to a certain log entry.
  • an analyst determines the importance of a log entry, it relates not only to a single log entry, but to the whole picture of the information recorded in the log, the contents of the log entries before and after, and the information recorded in the log entry The contents of other log entries, etc. may be confirmed. Thus, it is considered that the importance of a given log entry can be determined more appropriately by confirming not only a single log entry but also the context of the log.
  • the analysis apparatus 100 can create feature information including the feature amount extracted from one log entry and the feature amount extracted from the context related to the log. That is, it is considered that the analysis apparatus 100 can create an analysis model that can more appropriately determine the importance of the log entry by using the feature information in which the context of the log is reflected.
  • FIG. 7 is a block diagram conceptually showing the functional configuration of the analyzer 700 in the present embodiment.
  • the analysis device 700 is a device that analyzes a log generated by execution of a software program to be investigated (a “sample” described later).
  • the sample inspection apparatus 800 is an apparatus capable of dynamically analyzing the sample 801 by executing the sample 801 in a separated environment using a sandbox type technology.
  • the sample inspection apparatus 800 may be realized, for example, using a security appliance product or the like, or may be realized using an information processing apparatus such as a computer into which a software program for realizing a sandbox environment is introduced.
  • the sample inspection apparatus 800 has a function of detecting a process (that is, an operation of the sample 801) performed by the sample 801.
  • the operation of the sample 801 that can be detected by the sample inspection apparatus 800 includes, for example, calling of a specific API (Application Programming Interface), calling of a system call, code injection, creation of an executable file, execution of a script file, and specific services. Stop, file access, registry access, communication with a specific communication destination, etc. may be included.
  • a specific API Application Programming Interface
  • the sample inspection apparatus 800 records the operation of the sample 801 detected in the process of analyzing the sample as a log (operation log) and provides the analysis apparatus 700 with the operation.
  • the specific content of the log provided by the sample inspection apparatus 800 will be described later.
  • the sample inspection apparatus 800 may provide the analyzer 700 with information other than the log obtained by analyzing the sample 801.
  • the information other than the log may include, for example, a primary determination result as to whether or not the sample 801 is malware. Further, such information may include, for example, a summary related to the operation of the sample 801 (a malicious action, start and end of a process, file access, communication, registry access, an API call, and the like).
  • the analysis device 700 includes a feature extraction unit 701 (feature extraction unit) and an analysis model creation unit 702 (analysis model creation unit) as a basic configuration.
  • the analysis apparatus 700 may further include an importance calculation unit 703 (importance calculation unit) and a display control unit 704 (display control unit).
  • the analysis apparatus 700 may further include an operation log providing unit 705 (log providing unit) and a teacher data providing unit 706 (teacher data providing unit). These components may be communicably connected using an appropriate communication method. Each component will be described below.
  • the feature extraction unit 701 creates, for log entries of one or more records included in a log provided from the sample inspection apparatus 800, feature information representing the log entry. Similar to the feature extraction unit 101 according to the first embodiment, the feature extraction unit 701 uses the first feature amount extracted from the first log entry and the second feature amount extracted from a plurality of second log entries. Create feature information about a log entry. Specific examples of each feature amount will be described later.
  • the feature extraction unit 701 may acquire a log from the operation log providing unit 705.
  • the feature extraction unit 701 may create feature information related to the log entry of the record whose importance is to be evaluated among the certain logs, and may provide the importance information calculation unit 703 as evaluation target data.
  • the analysis model creation unit 702 uses the feature information on a certain log entry created by the feature extraction unit 701 and the importance information (teacher data) representing the importance of the log entry, and uses the importance on another log entry. Create an analytical model that can determine the degree.
  • the analysis model creation unit 702 includes learning data including feature information related to a plurality of first log entries, and teacher data including importance degree information. Is used to execute a process of learning (training) an analytical model (described later). The analysis model in the present embodiment will be described later.
  • the analysis model creation unit 702 may acquire teacher data from the teacher data provision unit 706. In addition, the analysis model creation unit 702 may provide the created analysis model to the importance degree calculation unit 703.
  • the degree of importance calculation unit 703 calculates the degree of importance of the log entry included in a certain log using the analysis model generated by the analysis model generation unit 702. Specifically, the importance calculation unit 703 calculates importance of the log entry by providing the analysis model with the characteristic information created for a certain log entry as an input. A specific method for calculating the degree of importance will be described later.
  • the importance degree calculation unit 703 provides the display control unit 704 with the importance degree calculated for a certain log entry.
  • the display control unit 704 controls the display method of the log related to a certain sample in accordance with the importance degree calculated by the importance degree calculation unit 703.
  • the display control unit 704 may obtain, for example, a log related to a certain sample from the operation log providing unit 705 described later, and receive from the importance degree calculation unit 703 the importance degree of the log entry included in the log.
  • the display control unit 704 describes, for example, data (hereinafter referred to as “display data”) used to display a user interface capable of controlling whether or not each log entry included in the provided log is displayed. Generate). Such a user interface may include, for example, a control element capable of controlling the display method of the log entry according to the importance of a certain log entry.
  • the display control unit 704 may present the user interface to the user of the analysis apparatus 100 by providing display data to an appropriate display device (various monitor screens, panels, etc.).
  • the specific configuration of the display device is not particularly limited, and may be appropriately selected.
  • the display device may be provided inside or outside the analysis device 700.
  • the display control unit 704 may provide display data to an external device connected via a communication network.
  • a specific example of display data created by the display control unit 704 will be described later.
  • the operation log providing unit 705 receives, from the sample inspection apparatus 800, a log recorded in the process of executing the sample 801, and holds (stores) the log.
  • the action log providing unit 705 may provide a log to them in response to the request from the feature extraction unit 701 and the display control unit 704.
  • the teacher data provision unit 706 holds (stores) importance level information assigned to log entries included in a certain log.
  • the teacher data provision unit 706 may be provided with teacher data in advance, for example, by the user of the analysis apparatus 700 or the like.
  • teacher data may include, for a certain log, information indicating the degree of importance manually determined by the analyst.
  • the teacher data provision unit 706 may associate and store, for example, information that can specify a log entry used as learning data, and importance degree information set in advance by an analyst or the like for the log entry.
  • the teacher data provision unit 706 may provide importance information on a certain log entry as teacher data, for example, in response to a request from the analysis model creation unit 702. Further, the teacher data provision unit 706 may provide importance level information on a certain log entry in response to a request from the display control unit 704.
  • FIG. 10 is an explanatory view showing an example of a log (log 1000) recorded in the sample inspection apparatus 800. As shown in FIG.
  • the log 1000 includes, for example, one or more records (rows) in which information representing a process executed by a software program is recorded.
  • the record of the log 1000 includes, for example, a sample ID 1000a, a sequence number 1000b, and a log entry 1000c for each log entry.
  • the sample ID 1000 a is identification information (ID: Identifier) that can specify the executed sample.
  • the sequence number 1000 b is information that can specify the sequence (order) in which the log entry is recorded. A non-overlapping value may be set to the sequence number 1000 b for each sample identified by the sample ID 1000 a.
  • the log entry 1000 c appropriate information is recorded according to the process performed by the sample.
  • the log entry 1000c may include one or more fields.
  • the information to be recorded in each field constituting the log entry 1000c is not particularly limited, and for example, the following information may be recorded.
  • a "type” field may be recorded as information that can specify the type of processing performed by the sample (hereinafter referred to as "log type”). For example, file access (“type: file”), process control (“type: process”), registry access (“type: registry”), communication processing (“type:“ type: network "), etc. may be included. Information other than the above may be set as the log type.
  • the log entry 1000 c may record information (“mode” field) representing specific execution content of the process specified by the log type.
  • mode For example, if the log type is process control (“type: process”), information representing start (“start”) and stop (“stop”) of the process may be set in the “mode” field.
  • start when the log type is file access (“type: file”), information representing file open (“open”) or close (“close”) may be set in the “mode” field.
  • registry type: registry
  • information representing setting of a value (“set-value”) to the registry may be set in the “mode” field.
  • information representing information for example, "dns", "http”, etc.
  • the log entry 1000 c may record, for example, resources relating to the process executed by the sample and information representing parameters used in the process.
  • the "path" field for example, information representing the file to be executed and the path of the file to be accessed is recorded.
  • Information representing a registry key is recorded in the "key” field.
  • the "value” field information representing a value set in the registry is recorded.
  • the "host” field information that can specify the communication destination is recorded.
  • Information representing an IP (Internet Protocol) address of the communication destination is recorded in the "ip" field.
  • headerers information representing headers included in data transmitted and received by a certain communication protocol is recorded.
  • the log entry 1000 c may record, for example, information (“pid” field) that can identify a process that has executed a process in which a certain log entry is output.
  • timestamp information that can specify the timing (for example, time, elapsed time, etc.) at which a certain log entry is recorded may be recorded.
  • part of the fields illustrated above may be recorded in the log entry 1000 c, and fields other than the fields exemplified above may be recorded.
  • the record whose sequence number is “1” shown in FIG. 10 indicates that the process of executing the executable file “ ⁇ temp ⁇ abcde.exe” is started.
  • a record having a sequence number of “9” indicates that the process of " ⁇ temp ⁇ abcde.exe” has been stopped.
  • records of sequence numbers “2” and “3” indicate that the value specified by “value” is to be set for the specific registry key specified by “key”.
  • records with sequence numbers “4”, “5” and “8” indicate file access (file open, close, delete), respectively.
  • records with sequence numbers “6” and “7” indicate communication with a specific communication destination, respectively.
  • FIG. 11 is an explanatory view showing a specific example of teacher data in the present embodiment.
  • the teacher data includes one or more records (rows) including a specimen ID 1100a, a sequence number 1100b, and a teacher score 1100c.
  • the sample ID 1100a is identification information that can specify a certain sample 801, like the sample ID 1000a illustrated in FIG.
  • the sequence number 1100b is information that can specify the sequence (order) in which the log entry is recorded, as with the sequence number 1000b illustrated in FIG.
  • the teacher score 1100c represents the importance of the log entry specified by the sample ID 1100a and the sequence number 1100b. For example, continuous values (for example, numerical values between “0.0” and “1.0”) in a specific range may be set as the teacher score 1100c, depending on the importance. Also, a numerical value (for example, important: “1”, non-important: “0”) representing importance or non-importance, or a label may be set in the teacher score 1100 c.
  • the teacher score 1100c is used as a teacher label in the process of learning an analysis model described later.
  • the first feature quantity extracted by the feature extraction unit 701 from the first log entry will be described below. In the following, for convenience of explanation, it is assumed that data recorded in a log entry of a certain record is treated as data that can be represented by a character string or a numerical value. In this case, the feature extraction unit 701 may appropriately convert the information recorded in the first log entry into a character string and a numerical value.
  • the first feature value may represent the appearance frequency of an N-gram (N-gram) when the record of the log entry 1000c is represented as a character string.
  • N-gram represents a sequence of strings composed of one or more characters.
  • a unigram is a string of one string
  • a 2-gram bigram
  • a 3-gram is a string of three strings.
  • the log entry 1000c is represented as a string that can be represented by printable characters (0x21 to 0x7E, 94) of ASCII (American Standard Code for Information Interchange) code.
  • ASCII American Standard Code for Information Interchange
  • a 94-dimensional feature amount (feature vector) as shown in part (A) of FIG. 12 is obtained.
  • Each element in the feature vector (1201 in FIG. 12) shown in FIG. 12A indicates the number of occurrences of a character represented by a specific ASCII code in one log entry.
  • the feature amount can be extracted by the same method even for a sequence of two or more characters.
  • the feature extraction unit 701 may use the appearance frequency of the N-gram for each field included in the log entry as the feature amount.
  • the appearance frequency in the “mode” field, the appearance frequency in the “type” field, and the like are used as feature amounts.
  • the first feature value may represent the appearance frequency of each word when the log entry is divided into words by a specific delimiter (separator).
  • the feature extraction unit 701 may use a dictionary including words appearing in a certain log 1000 to count the frequency of occurrence of each word included in the dictionary in the log entry.
  • a feature vector (1202 in FIG. 12) of “N” dimension (“N” is a natural number) as shown in part (B) of FIG. 12 is obtained.
  • N is the number of words included in the dictionary
  • each element of the feature vector represents the appearance frequency of each word included in the dictionary.
  • the dictionary may be provided to the analyzer 700 in advance.
  • the feature extraction unit 101 may create a dictionary by selecting a word from one or more logs using an appropriate criterion.
  • the separator can be selected appropriately, and for example, characters such as ";", ",", “/” may be used as the separator.
  • the first element of the feature vector 1202 represents the appearance frequency of the word "type”
  • the second element represents the appearance frequency of the word "process”.
  • the appearance frequency of each word included in the dictionary is set.
  • the feature extraction unit 701 may calculate an index from the divided words, for example.
  • the feature extraction unit 701 generates, for example, a feature vector of “N” dimension (initial value is “0” in all elements). Then, the feature extraction unit 701, for example, calculates the hash value of the divided word, and calculates the remainder ("0" to ("N-1")) by "N" of the hash value as the index of the word Do.
  • the feature extraction unit 701 increments the value of the calculated index-th element in the “N” -dimensional feature vector.
  • the feature extraction unit 701 can generate a feature vector representing the appearance frequency of each word included in the log entry.
  • the algorithm for generating the hash value may adopt a known algorithm.
  • the number of dimensions of the feature vector (the value of “N”) may be selected in consideration of the influence of collision in which different words are assigned to the same index.
  • the first feature value may be created using a value representing the meaning of each field included in the log entry.
  • the feature extraction unit 701 divides one log entry into fields, and generates a feature vector having, as elements, values representing information recorded in each field.
  • M is the total number of fields that can be included in the log entry.
  • a value representing the content recorded in the “type” field is set.
  • a value representing the content of the "mode” field is set.
  • the numerical value may be set to the element of the feature vector corresponding to the field (for example, “pid”, “value”, etc.) to which the numerical value is set in the log entry.
  • an element of a feature vector may be individually assigned to each bit.
  • the feature extraction unit 701 is not limited to the above, and may use another feature that can express the contents of the log entry.
  • the content of the log entry is treated as a character string, for example, various feature amounts used in general natural language processing techniques may be used as the relevant feature amounts.
  • the second feature quantity extracted by the feature extraction unit 701 will be described below. In the following, for convenience of explanation, it is assumed that the data recorded in the second log entry is treated as data that can be represented by a character string or a numerical value. In this case, the feature extraction unit 701 may appropriately convert the information recorded in the second log entry into a character string and a numerical value.
  • an analyst when an analyst analyzes a log, he or she may refer to the entire log or related information instead of focusing on only one log entry.
  • the analyst finds out a characteristic pattern in a certain log (that is, a pattern related to the operation of the sample 801) which can not be obtained from a single log entry, for example, by confirming a plurality of related log entries. You might also say that.
  • a feature that can determine the importance of the log entry more appropriately than when using only the feature extracted from a single log entry It is believed that a quantity can be obtained.
  • the feature extraction unit 701 may use, for example, information representing a context related to a log, which can be created from the information recorded in each second log entry, as a second feature amount.
  • the feature extraction unit 701 may create the second feature amount by, for example, counting information described in each second log entry, and is extracted from the information described in each second log entry
  • the second feature may be created using the feature.
  • the feature extraction unit 701 may extract the following feature amounts as a second feature amount representing a context related to a log.
  • the feature extraction unit 701 extracts, for example, information representing the context of the entire log obtained by executing a certain sample 801 as a second feature amount. It can be said that the second log entry in this case is a log entry that satisfies the criteria of being a log entry regarding the same sample 801 as the first log entry.
  • the feature extraction unit 701 can specify a record including the second log entry by selecting, for example, a record including the first log entry and another record having the same sample ID 1000 a among the certain logs.
  • a specific example of the second feature amount in this case will be described.
  • the feature extraction unit 701 sums up the number of second log entries for each process (for each value of the “pid” field) from all the specified second log entries, and arranges the number of top “x” cases. Information may be adopted as the second feature amount.
  • FIG. 13 is an explanatory diagram of a specific example of the second feature amount in this case.
  • the feature extraction unit 701 counts the number of log entries for each value of the “pid” field for the log entries of each record included in a certain log.
  • the second feature amount is created from "20 cases" and "pid: 110" 10 cases).
  • the second feature value is represented as a three-dimensional feature vector.
  • the elements of the second feature amount may be normalized by dividing the counted number by the number of all log entries. In this case, for example, it is possible to reflect the tendency of the process (for example, the number of processes to be performed, etc.) to be executed in the execution process of a certain sample 801 in the second feature as a context.
  • the feature extraction unit 701 may also adopt, for example, information representing a log type histogram calculated from the identified second log entry as the second feature amount.
  • FIG. 14 is an explanatory diagram of a specific example of the second feature amount in this case.
  • the feature extraction unit 701 creates a histogram by totaling the information recorded in the “type” field for all the second log entries included in a certain log.
  • the feature extraction unit 701 uses the frequencies counted for each element (for example, “file”, “process”, “registry”, and “network”) of the histogram to generate the second feature (four-dimensional feature). Create a vector).
  • the tendency of the processing content executed in the process of executing a certain sample 801 can be reflected as the context in the second feature amount.
  • the feature extraction unit 701 extracts information such as the number of communication destinations, the number of executed processes, the number of accessed files, the number of accessed registries, etc. extracted from all the second log entries identified. , May be adopted as the second feature amount.
  • FIG. 15 is an explanatory diagram of a specific example of the second feature amount in this case.
  • the feature extraction unit 701 selects, for example, all second log entries in which "network" is recorded in the "type" field from a certain log, and the "host” field or the "ip” field of the log entry From this, it is possible to count the number of communication destinations.
  • the feature extraction unit 701 selects, for example, all second log entries in which "file” is recorded in the "type” field from a certain log, and the number of accessed files is selected from the "path" field of the log entry. It can be counted.
  • the feature extraction unit 701 selects, from a certain log, all second log entries in which "registry” is recorded in the "type” field, and the number of accessed registries is selected from the "key" field of the log entry. It can be counted.
  • the feature extraction unit 701 selects, for example, all second log entries in which "process" is recorded in the "type” field from the log 1000, and the number of processes executed is selected from the "path" field of the log entry. It can be counted.
  • the number of communication destinations, the number of executed processes, and the number of accessed files are accessed for each type (“type”) of the log entry.
  • a second feature (a four-dimensional feature vector) including the number of registries is created.
  • the information of the resource for each log type accessed by the process executed in the process of executing a certain sample 801 can be reflected as the context in the second feature amount.
  • the feature extraction unit 701 may extract, as the second feature, information representing a context related to a specific process, which is included in a log obtained by executing a certain sample 801, for example.
  • the feature extraction unit 701 selects the first log entry from the logs obtained by executing a certain sample 801, and the other logs related to the same process as the first log entry (the "pid" field is the same). Identify the entry as the second log entry. In this case, it can be said that the second log entry satisfies the criteria that it is a log for the same process as the first log entry (the "pid" field is the same).
  • the feature extraction unit 701 may adopt, for example, information representing a log type histogram calculated from the identified second log entry as the second feature amount. Also, the feature extraction unit 701 may, for example, extract the number of communication destinations, the number of executed processes, the number of accessed files, the number of accessed registries, etc. extracted from all the second log entries identified. Information may be adopted as the second feature amount.
  • the feature extraction unit 701 may also adopt, as the second feature value, the ratio of log entries related to the same process as the first log entry, which is included in a certain log.
  • FIG. 16 is an explanatory diagram of a specific example of the second feature amount in this case.
  • the feature extraction unit 701 calculates the ratio between the total number of log entries included in a certain log and the total number of second log entries having the same "pid" field as the first log entry, thereby obtaining the second feature. Create a quantity (one-dimensional vector).
  • the rate at which a certain process is performed can be reflected in the second feature amount as a context.
  • the feature extraction unit 701 may, for example, information indicating context obtained from one or more records recorded in a specific range in time series from the timing at which the record including the first log entry is recorded. , And may be extracted as a second feature amount.
  • the feature extraction unit 701 selects the first log entry from the log obtained by executing a certain sample 801. For example, the feature extraction unit 701 selects one or more records recorded from the timing at which the record including the selected first log entry is recorded to the timing N samples (N is a natural number) earlier in time series Good. In addition, the feature extraction unit 701 selects, for example, one or more records recorded from the timing at which the record including the selected first log entry is recorded to the timing after M samples (M is a natural number) in time series. You may The feature extraction unit 701 may specify, as the second log entry, a log entry included in at least one record among the records selected as described above. In this case, the second log entry satisfies the criteria that it is a log entry recorded within a specific time range in time series, including the timing at which the first log entry was recorded.
  • the feature extraction unit 701 may adopt, for example, information representing a log type histogram calculated from the identified second log entry as the second feature amount.
  • the feature extraction unit 701 may adopt, for example, a ratio of logs related to the same process as the first log entry among all the specified second log entries as the second feature amount.
  • the feature extraction unit 701 may use, for example, information (summary information) representing a summary related to the operation of the sample 801 obtained by executing a certain sample 801 as the second feature amount.
  • information summary information
  • the sample inspection apparatus 800 is configured using a general security product adopting the black box technology.
  • the sample testing apparatus 800 can typically provide, as a summary, the result of analyzing the motion of the sample 801 in addition to the motion log of the sample 801.
  • the relevant product is not particularly limited, and can be appropriately selected by those skilled in the art.
  • the summary provided by the above products may typically include the following information.
  • the information included in the summary is not limited to the above.
  • the summary may include, for example, information indicating the result of the sample inspection apparatus 800 determining the presence or absence of a rule-based activity based on the activity (behavior) of the specimen 801.
  • the feature extraction unit 701 may create a second feature based on the information. For example, the feature extraction unit 701 creates, for each type of malicious activity, a second feature amount that indicates whether the sample 801 has executed the activity using binary data (for example, 0 or 1). It is also good. For example, when the number of types of malicious activity is M, the second feature amount is represented as an M-dimensional binary vector. When the second feature value is created from the summary as described above, for example, information serving as a basis for determining whether the sample 801 is malware is included as the feature value. By using such a second feature amount, for example, even if the presence or absence of a certain malicious behavior affects the importance of the log entry, the analysis device 700 appropriately sets the importance of the log. It is possible to determine
  • the present invention is not limited to the above, for example, when various second feature quantities (at least a part thereof) obtained by counting information recorded in the second log entry described above are included in the provided summary.
  • the feature extraction unit 701 may use the feature amount as the second feature amount.
  • the present invention is not limited to the above, and the feature extraction unit 701 may extract, for example, feature amounts similar to the first feature amount from each second log entry and create a second feature amount using the feature amounts. Good.
  • the feature extraction unit 701 can extract the feature amount from each second log entry, for example, using the same method as the method for extracting the first feature amount from the first log entry.
  • the feature extraction unit 701 may create the second feature amount, for example, by appropriately arranging the feature amounts extracted from the respective second log entries.
  • the feature extraction unit 701 calculates statistical values (for example, maximum value, minimum value, median value, average value, variance, deviation, and the like) related to feature amounts extracted from each second log entry, for example.
  • the second feature may be created.
  • the feature extraction unit 701 may also create data (integrated data) obtained by integrating a plurality of second log entries.
  • the integrated data may be, for example, data in which all pieces of information recorded in each second log entry are arranged.
  • the feature extraction unit 701 may extract, from the integrated data, a feature amount similar to the above-described first feature amount, and use the extracted feature amount as a second feature amount.
  • the feature extraction unit 70 like the feature extraction unit 101 in the first embodiment, includes the first feature extracted from the first log entry and the second feature extracted from one or more second log entries. Used to generate feature information for the first log entry.
  • the analysis model is a model that can determine the importance of the log entry by providing the feature information on the log entry as an input.
  • a model for example, a model used in machine learning or pattern recognition can be used.
  • a model that can be adopted as an analysis model for example, SVM, multi-layer NN, gradient boost tree, random forest, etc. can be adopted.
  • learning of an analytical model and evaluation of the degree of importance using the analytical model when adopting these models will be described.
  • FIG. 17 is an explanatory view showing an outline of learning of an analysis model and importance degree evaluation using the analysis model.
  • the analysis model creation unit 702 uses the learning data including the feature information on the first log entry extracted by the feature extraction unit 701 and the teacher data provided from the teacher data provision unit 706 to perform learning processing on the analysis model. Execute (the “learning phase” in FIG. 17).
  • the analysis model creation part 702 learns the discrimination function (discrimination plane) of SVM using learning data and teacher data.
  • SVM can be applied to regression (SVR: Support Vector Regression).
  • SVR Support Vector Regression
  • the parameters of the discriminant function are learned so as to minimize the tolerance between the value calculated by inputting the feature information given as learning data to the discriminant function and the value given as teacher data. Be done.
  • the learning method of the parameter in SVR can employ
  • the analysis model creation unit 702 learns connection parameters of nodes (neurons) configuring the multi-layer NN using learning data and teacher data.
  • the specific network structure (the number of layers, the number of nodes in each layer, etc.) of the multilayer NN may be determined as appropriate.
  • the input layer of the multilayer NN may be configured by, for example, the same number of input nodes as the number of elements of the vector (the number of dimensions) representing the feature information. In this case, each element of a vector representing feature information is input to each node of the input layer.
  • the output layer of the multilayer NN may be configured of one output node (output node for regression). In this case, for example, a normalized linear function or the like may be set as an activation function at the node of the output layer.
  • the learning method of the multi-layer NN can adopt an appropriate method, including known techniques.
  • the analysis model creation unit 702 uses learning data and teacher data to learn one or more decision trees that configure them.
  • the number of decision trees and the configuration of each decision tree may be selected as appropriate.
  • the gradient boosted tree and random forest learning methods can adopt any suitable method, including known techniques.
  • the importance calculation unit 703 calculates the importance of the log entry to be evaluated using the analysis model generated by the analysis model generation unit 702. More specifically, the importance calculation unit 703 calculates the importance of the feature information by inputting the feature information generated by the feature extraction unit 701 to an analysis model for a certain log entry (see FIG. 17). Evaluation phase).
  • a value calculated by inputting the feature information into the discrimination function of the SVM may be used as a value representing the importance of the feature information.
  • a value obtained from an output layer by inputting each element of feature information in an input layer of the multi-layer NN may be used as a value representing the importance of the feature information.
  • the weighted sum or average value of the outputs of each decision tree when given certain feature information as an input represents the importance of the feature information It may be used as a value.
  • the analysis model creation unit 702 can create a plurality of analysis models according to the content and type of the log entry. For example, when other information (fields) included in each log entry is different for each log type (information of “type” field), the analysis model creation unit 702 may create an analysis model for each log type. . As an example, it is assumed that the log type includes four types (for example, the values of the "type" field are "file", "process", "registry” and "network").
  • the analysis model creation unit 702 sets four analysis models (an analysis model related to a log entry whose “type” field value is “file”, an analysis model related to a log entry of “process”, ”“ registry ”) for each log entry type. Create an analysis model for "log entries” and an analysis model for "network” log entries. In this case, the analysis model creation unit 702 learns an analysis model of each log type using the log entries of each log type included in the learning data. Further, the importance degree calculation unit calculates the importance degree using the analysis model for the log type according to the log type recorded in the log entry of the record to be evaluated.
  • the display control unit 704 displays a user interface capable of controlling display of a log related to a certain sample 801 in accordance with the degree of importance calculated by the degree of importance calculation unit 703. More specifically, the display control unit 704 may generate display data used to display such a user interface.
  • the display control unit 704 can generate display data for displaying a user interface 1800 as illustrated in FIG. 18 as an example.
  • a user interface 1800 illustrated in FIG. 18 configures at least a part of a graphical user interface (GUI) displayed to the user of the analysis device 700.
  • GUI graphical user interface
  • the user interface 1800 includes, for example, a log entry display area (1801 in FIG. 18), a threshold setting area (1802 in FIG. 18), an update button (1803 in FIG. 18), and a sample setting area (1804 in FIG. 18). It may be included.
  • the log entry display area 1801 is an area in which log entries of records included in the log provided by the operation log providing unit 705 can be displayed.
  • the log entry display area 1801 displays a log when the sample 801 specified by the sample ID set in the sample setting area 1804 (described later) is executed.
  • the display control unit 704 may acquire, from the operation log providing unit 705, a log related to the specimen specified by the specimen ID at the timing when the specimen ID set in the specimen setting area 1804 is changed.
  • log entries having an importance level equal to or higher than a threshold set in the threshold setting area 1802 (described later) are displayed. That is, for the log entry displayed in the log entry display area 1801, the importance calculated by the importance calculation unit 703 is equal to or higher than the threshold set in the threshold setting area 1802 (described later).
  • the importance score 1801 a has a teacher score. It may be displayed.
  • the threshold setting area 1802 and the update button 1803 are control elements (controls) capable of setting (adjusting) the importance of the log entry displayed in the log entry display area.
  • the threshold setting area 1802 is an input field in which the user operating the user interface 1800 can set a threshold.
  • the threshold setting area 1802 can be realized by using, for example, a text box, a numerical value input control, and the like, but is not limited thereto.
  • the update button 1803 is a control element for updating the display content of the log entry display area 1801 in accordance with the threshold value set in the threshold value setting area 1802. For example, when the user presses the update button 1803, the display content of the log entry display area 1801 is updated such that log entries equal to or larger than the threshold set in the threshold setting area 1802 are displayed.
  • an event indicating that the user has pressed the update button 1803, and the threshold set in the threshold setting area 1802 at that timing are transmitted to the display control unit 704 via the user interface 1800.
  • the display control unit 704 identifies a log entry having an importance degree equal to or higher than the notified threshold value, and generates display data so as to display the log entry. Updates of transmission / reception and display such as events via the GUI may be realized using known techniques.
  • the display control unit 704 creates (updates) display data so that, for example, the user interface 1800 illustrated in FIG. 19 is displayed.
  • the display control unit 704 controls the display content such that log entries whose importance is less than the threshold are not displayed.
  • the display control unit 704 may generate display data for displaying a user interface 2000 as illustrated in FIG.
  • the user interface 2000 includes a slider 2001 in place of the threshold setting area 1802 and the update button 1803 in the user interface 1800.
  • Other elements that make up the user interface 2000 may be similar to the user interface 1800.
  • the slider 2001 is a control element capable of setting (adjusting) the importance of the log entry displayed in the log entry display area. For example, by operating the slider 2001, the threshold is updated according to the position of the slider.
  • the display control unit 704 identifies, for example, a log entry having an importance degree equal to or higher than a threshold value represented by the position of the slider, and generates display data for displaying the log entry.
  • the display control unit 704 may change (adjust) the display method of each log entry according to the degree of importance of each log entry.
  • the display control unit 704 creates a user interface which does not display log entries of importance less than the threshold.
  • the present invention is not limited to this, for example, the display control unit 704 highlights a log entry having an importance level equal to or higher than a threshold value, and displays (inconspicuously) log entries having an importance level less than the threshold value. May be
  • the method of highlighting display of each log entry and the method of suppressingly displaying each log entry by the display control unit 704 are not particularly limited, and can be appropriately selected.
  • the display control unit 704 may create a user interface that highlights log entries having an importance degree equal to or higher than a threshold and grays out log entries having an importance degree less than the threshold. Also, for example, the display control unit 704 may create a user interface in which log entries having importance equal to or higher than the threshold are displayed larger than log entries having importance lower than the threshold.
  • FIG. 21 is a flowchart showing an example of the operation of the analysis device 700.
  • the analysis device 700 receives the log recorded when the sample 801 is executed in the sample inspection device 800 (step S2101).
  • the analysis apparatus 700 includes the operation log providing unit 705, the operation log providing unit 705 may hold (store) the log provided from the sample inspection apparatus 800.
  • the analysis device 700 creates, for the log entry of the record used as learning data among the logs provided from the sample inspection device 800, feature information representing the feature of the log entry (step S2102).
  • the feature extraction unit 701 extracts the first feature amount from the log entry (first log entry) of a certain record. In addition, the feature extraction unit extracts a second feature amount from a log entry (second log entry) of one or more records included in the log. The feature extraction unit 701 uses the first feature amount and the second feature amount to create feature information related to the log entry of the one record.
  • a specific example of the method of extracting the first feature amount and the second feature amount is as described above.
  • the feature extraction unit 701 may specify, for example, a record including a log entry to which a teacher score is assigned as a record used as learning data.
  • the feature extraction unit 701 may further create feature information for the log entry of the evaluation target record included in the log.
  • the record used as learning data and the record used as evaluation target data may be included in the same log or may be included in different logs.
  • the feature extraction unit 701 may provide learning data including feature information created for each log entry to the analysis model creation unit 702.
  • the analysis apparatus 700 creates an analysis model using the learning data created in step S2102 and the teacher data (step S2103).
  • the analysis model creation unit 702 executes an analysis model learning process using the learning data created by the feature extraction unit 701 and the teacher data stored in the teacher data provision unit 706.
  • the analysis model creation unit 702 may create a plurality of analysis models according to the contents of the log entry and the like. Specific examples of the analysis model and its learning process are as described above.
  • the analysis device 700 can create an analysis model capable of determining the importance of the log entry included in a certain record.
  • the analysis device 700 may end the process, or may execute log evaluation and display (the process after step S2104).
  • the analysis apparatus 700 calculates the importance of the log entry of the record to be evaluated, using the analysis model created in steps S2101 to S2103 (step S2104).
  • the feature extraction unit 701 generates feature information related to the log entry of the record to be evaluated.
  • the record to be evaluated may be all the records included in a certain log, or may be a record not used as learning data.
  • the importance degree calculation unit 703 inputs the feature information related to the log entry of the record to be evaluated, which is created by the feature extraction unit 701, into the analysis model, and calculates the importance degree.
  • the importance degree calculation unit 703 provides the calculated importance degree to the display control unit 704.
  • the analysis device 700 selects an appropriate analysis model and calculates the degree of importance according to the contents of the log entry of the record to be evaluated. You may
  • the analysis apparatus 700 displays the log including the log entry (more specifically, the log in which the record including the log entry is recorded) according to the degree of importance regarding the evaluation target log entry calculated in step S2104. Are controlled (step S2105).
  • the display control unit 704 acquires a log from the operation log providing unit 705, and among the records recorded in the log, the importance calculated for the log entry of the evaluation target record is important. It receives from the degree calculator 703.
  • the display control unit 704 displays a user interface capable of controlling display of a log related to a certain sample 801 in accordance with the degree of importance calculated by the degree of importance calculation unit 703.
  • a user interface capable of controlling display of a log related to a certain sample 801 in accordance with the degree of importance calculated by the degree of importance calculation unit 703.
  • a specific example of such a user interface is as described above.
  • the analysis device 700 can control the method of displaying each log entry according to the degree of importance of each log entry included in a certain record.
  • the analysis device 700 in the present embodiment makes it possible to appropriately determine the importance of a certain log. Specifically, the analysis device 700 creates the characteristic information from the log entry used as the learning data, and includes the learning data including the created characteristic information and the teacher data including the importance degree information added to the log entry. , To learn the analysis model. By using the analysis model learned as described above, the analysis device 700 can determine, for example, the importance of each log entry included in the log.
  • the analysis device 700 can extract a second feature representing a context of a log from one or more second log entries.
  • the analyzer 700 may, for example, include an overall feature of a log obtained in the process of executing a certain sample 801, a feature of a log regarding a specific process performed in the process of performing a certain sample 801, and Features related to log entries recorded before and after the log entry are extracted as a second feature value.
  • the analysis device 700 can include information representing the context of the log in the feature information created from a certain log entry.
  • the analysis apparatus 700 uses the first feature representing the feature of a certain log entry and the second feature representing the context of the log to provide feature information on one log entry. Create As a result, the analysis device 700 can reflect the context of the log in the feature information related to a certain log entry. By learning an analysis model using such feature information, the analysis apparatus 700 can create an analysis model that can more appropriately determine the importance of the log entry.
  • the analysis device 700 can control the display mode of the log entry according to the importance of the log entry included in a certain log. Specifically, the analysis device 700 can calculate the importance of the log entry to be evaluated using the generated analysis model, and control the display mode of the log entry according to the importance.
  • the analysis device 700 can display, for example, log entries of importance that are greater than or equal to the importance specified by the user, and can suppress log entries of importance less than the importance specified by the user.
  • the analysis apparatus 700 can present a log entry to which attention is paid in accordance with the degree of importance designated by the user, so that the efficiency of the analysis work by the user can be improved.
  • the analyzer 700 can create a plurality of analysis models according to the contents of the log and the like. For example, it is assumed that the contents of the fields recorded in the log entry and the number of fields differ depending on the log type. In this case, when feature quantities (feature vectors) capable of expressing all log types are created, feature quantities having a large degree (large number of elements) or sparse feature quantities may be created. A learning process using such feature quantities may require a relatively large storage area (memory area). In addition, when an analysis model is learned using such a feature amount, for example, there is a possibility that the feature for each log type is diluted.
  • Modified Example 1 of Second Embodiment>
  • modified example 1 a first modified example of the second embodiment will be described.
  • the same reference mark is attached and detailed explanation is omitted.
  • FIG. 22 is a block diagram conceptually showing the functional configuration of the analyzer 2200 in the first modification.
  • the analyzer 2200 according to the first modification further includes an information collection unit 2202 in addition to the analyzer 700 according to the second embodiment.
  • the function of the feature extraction unit 2201 in the analysis device 2200 is expanded from the feature extraction unit 701 in the analysis device 700 of the second embodiment. The following description will focus on the differences.
  • the information collection unit 2202 acquires information related to a log obtained by executing a certain sample 801 from an information source 3000 existing outside the analysis device 2200. Specifically, the information collection unit 2202 may acquire information related to the content recorded in the first log entry from the external information source 3000.
  • the information acquired by the information collection unit 2202 from the external information source 3000 will be described as external context information.
  • the type of the information source 3000 is not particularly limited, and can be appropriately selected.
  • the information source 3000 may include, for example, an information providing service provided by a vendor such as various security products.
  • the information source 3000 may include a database in which various security information is accumulated.
  • the information source 3000 may include a site or the like from which various organizations (for example, various Computer Security Incident Response Team (CSIRT) etc.) dealing with security events (incidents) transmit information.
  • the information source 3000 may also include information search services on the Internet, which are generally available today, and social network services.
  • the information source 3000 may include a service that provides information related to a network, such as Domain Name Service (DNS), WHOIS, and the like.
  • DNS Domain Name Service
  • WHOIS Wide Area Network Services
  • the information collection unit 2202 selects, for example, the information source 3000 that provides appropriate information on the content recorded in the first log entry in response to a request from the feature extraction unit 2201 (described later), and acquires external context information. Do.
  • a specific method of acquiring the external context by the information collection unit 2202 may be appropriately selected according to the configuration, the specification, and the like of the information source 3000.
  • the information collection unit 2202 may acquire external context information from the information source 3000, for example, according to a specific communication protocol.
  • the information collection unit 2202 may transmit, for example, a specific query to the information source 3000 and receive the response.
  • the information collection unit 2202 may acquire external context information using a specific API provided by the information source 3000.
  • the information collection unit 2202 provides the feature extraction unit 2201 with the external context information acquired from the information source 3000.
  • the feature extraction unit 2201 in the first modification has the same function as the feature extraction unit 701 in the analysis device 700 of the second embodiment.
  • the feature extraction unit 2201 is further configured to extract a feature amount from external context information.
  • the feature quantity extracted from the external context information may be described as a “third feature quantity”.
  • the feature extraction unit 2201 may request, for example, the information collection unit 2202 to acquire external context information. At this time, the feature extraction unit 2201 may provide the information collection unit 2202 with the contents recorded in the first log entry.
  • the feature extraction unit 2201 extracts the third feature amount from the external context information collected by the information collection unit 2202 and creates feature information on the first log entry. Specifically, the feature extraction unit 2201 may create feature information related to a first log entry using the first feature amount and the third feature amount, and the first feature amount and the second feature amount may be generated. The amount and the third feature may be used to create feature information related to a certain first log entry.
  • the other components of the analyzer 2200 in the first modification may be substantially similar to the components of the analyzer 700 in the second embodiment.
  • the analysis model creation unit 702 creates an analysis model using the learning data provided from the feature extraction unit 2201 and the teacher data stored in the teacher data provision unit 706.
  • the importance calculation unit 703 is configured to calculate the importance of a certain log entry using the analysis model generated by the analysis model generation unit 702 and to provide the display control unit 704 with the importance. Ru.
  • the display control unit 704 is configured to generate an interface capable of controlling display of the log entry according to the importance of each log entry calculated by the importance calculation unit 703. .
  • the action log providing unit 705 holds (stores) a log recorded along with the execution of a certain sample 801 as in the second embodiment, and the teacher data providing unit 706 is added to a log entry used as learning data. Retain (store) teacher data including the teacher score.
  • the information collection unit 2202 acquires external context information related to the content of the first log entry from the information source 3000.
  • the information collection unit 2202 selects an appropriate information source 3000 according to the log type of the first log entry (the information of the “type” field), and acquires external context information.
  • the information collection unit 2202 holds (stores) in advance, for example, a table in which the log type of the first log entry and the information source 3000 capable of acquiring external context information related to the log type are associated. It is also good.
  • the information collection unit 2202 acquires, for example, information that can determine whether the specified file is detected by the anti-virus product from the information source 3000 and provides the feature extraction unit 2201 as external context information. Good.
  • the feature extraction unit 2201 may use, for example, a value (for example, a Boolean value) indicating whether the file identified by the “path” field of the first log entry is detected by the anti-virus product, May be included in
  • the feature extraction unit 2201 may include, for example, a value representing the number of downloaded files specified by the “path” field of the first log entry in the third feature amount.
  • the information collection unit 2202 may obtain, for example, information indicating the reliability of the file from a certain information source 3000 from the information source 3000, and provide the feature extraction unit 2201 as external context information.
  • the feature extraction unit 2201 may include, for example, a value representing the reliability of the file identified by the “path” field of the first log entry in the third feature amount. Note that the reliability of the file may be appropriately set in the information source 3000 according to the content of the process executed by the file, the provider of the file, the presence or absence of an incident related to the file, and the like.
  • the information source 3000 may include, for example, a vendor such as various security products, a site where various organizations dealing with security events transmit information, and the like.
  • the information collecting unit 2202 collects external context information as described above, for example, by searching the information source 3000 for the name (file name) of the file, the content including the hash value of the file, data, etc. It is possible. In this case, the information collection unit 2202 is considered to acquire, for example, information representing a reputation regarding the security of a certain file as external context information.
  • registry is set in the log type “type” field of the first log entry.
  • a specific registry key can be specified from the "key" field of the first log context.
  • the information collection unit 2202 acquires, for example, information from the information source 3000 that can determine whether there is a known malware that accesses the specified registry key, and provides the feature extraction unit 2201 as external context information. May be Furthermore, when there is a known malware that accesses the specified registry key, the information collection unit 2202 acquires its name, classification name, hash value, etc., and provides it to the feature extraction unit 2201 as external context information. Good.
  • the feature extraction unit 2201 may use, for example, a value (for example, a Boolean value) representing whether there is a known malware that accesses the registry specified by the “key” field of the first log entry. It may be included in the feature amount. If there is a known malware that accesses the specified registry key, the feature extraction unit 2201 may include the name of the malware, a classification name, a hash value, and the like in the third feature amount. At this time, the name of the malware, the classification name, etc. may be converted into a character string expression or a numerical expression as appropriate. In this case, the information collection unit 2202 is considered to acquire, for example, information representing a reputation related to security of a key of a certain registry as external context information.
  • a value for example, a Boolean value
  • the communication destination can be specified from the “host” field, the “ip” field, the “url” field, etc. of the first log context.
  • the information collecting unit 2202 may obtain, for example, information representing an evaluation on the identified communication destination from the information source 3000 and provide the feature extracting unit 2201 as external context information.
  • the information indicating the evaluation regarding the communication destination may include, for example, an evaluation regarding the host itself of the communication destination, an evaluation regarding the domain to which the communication destination belongs, an evaluation regarding the URL, and the like.
  • the evaluation may include, for example, the number of users accessing the host, the number of users accessing the domain, the number of users accessing the URL, and the like. Further, the evaluation may include whether or not the host, domain, URL and the like are registered in a known black list.
  • the blacklist is a list in which communication destinations and the like having a problem from the viewpoint of security are registered.
  • the feature extraction unit 2201 may include, for example, information indicating an evaluation related to the identified communication destination in the third feature amount.
  • the feature extraction unit 2201 has, for example, a value indicating the number of users accessing a certain communication destination, a value (for example, a Boolean value) indicating whether a certain communication destination is registered in the blacklist, etc. , And may be included in the third feature amount.
  • the information collection unit 2202 is considered to acquire, for example, information representing a reputation related to the security of a certain communication destination as external context information.
  • the present invention is not limited to the above, and the information collection unit 2202 acquires, for example, the area (country, area, etc.) where the identified communication destination exists from the information source 3000, and provides it to the feature extraction unit 2201 as external context information. It is also good.
  • the information collection unit 2202 may specify, for example, the country to which the IP address set in the “ip” field is assigned, and may provide the feature extraction unit 2201 with information representing that country.
  • the feature extraction unit 2201 may include, for example, information indicating an area (country, area, etc.) in which the identified communication destination exists in the third feature amount. At this time, the name of the area where the communication destination exists may be converted into a character string expression or a numerical expression as appropriate.
  • the information collection unit 2202 acquires, for example, the owner of the identified communication destination (more specifically, the owner of the IP address of the communication destination) from the information source 3000, and the external context information May be provided to the feature extraction unit 2201.
  • the information collection unit 2202 can obtain information on the owner of the IP address from, for example, the IP address set in the “ip” field, using the currently common WHOIS protocol or the like.
  • the feature extraction unit 2201 may include, for example, at least part of the information indicating the owner of the identified communication destination in the third feature amount. At this time, the information indicating the owner of the communication destination may be converted into a character string expression or a numerical expression as appropriate.
  • FIG. 23 is an explanatory view schematically showing a process in which the information collection unit 2202 acquires an external context and the feature extraction unit 2201 extracts a third feature amount.
  • the feature extraction unit 2201 appropriately arranges, for example, the elements of the feature vector representing the first feature quantity and the elements of the feature vector representing the third feature quantity, thereby making A feature vector representing feature information may be created.
  • the feature extraction unit 2201 appropriately arranges, for example, the elements of the feature vector representing the first feature quantity, the elements of the feature vector representing the second feature quantity, and the elements of the feature vector representing the third feature quantity. Then, a feature vector representing feature information of the first log entry may be created.
  • FIG. 24 is a flowchart showing an example of the operation of the analyzer 2200.
  • the same processes as those of the operation of the analyzer 700 in the second embodiment are denoted by the same reference symbols as the flowchart illustrated in FIG.
  • the analyzer 2200 receives a log recorded in the process of executing a certain sample 801 from the sample testing device 800 as in the second embodiment (step S2101).
  • the analysis device 2200 acquires external context information related to the log entry (first log entry) of the record to be used as learning data among the accepted logs (step S2401).
  • the feature extraction unit 2201 requests the information collection unit 2202 to acquire external context information related to the content of the first log entry.
  • the information collection unit 2202 selects the information source 3000 according to the content of the first log entry, and acquires information according to the content of the first log entry from the information source 3000.
  • the information collection unit 2202 provides the acquired information to the feature extraction unit 2201 as external context information. Specific examples of the external context information are as described above.
  • steps S2102 to S2104 may be substantially the same as those in the second embodiment. That is, in step S2102, the analysis apparatus 700 creates feature information on the first log entry using the first feature value extracted from the first log entry and the third feature value extracted from the external context information. At this time, in addition to the first and third feature amounts, the analysis apparatus 700 may create feature information related to the first log entry using a second feature amount representing a context of the log.
  • the analysis device 700 creates an analysis model using the learning data including the feature information created in step S2103 and the teacher data (step S2103), and calculates the importance of the log entry to be evaluated (step S2104), The display of the log entry is controlled according to the degree of importance (step S2105).
  • the analyzer 2200 configured as described above can include external context information in the feature information of the log entry used as learning data.
  • various types of information related to various security events are provided by vendors of various security products and various organizations dealing with security events. For example, it is considered that the analyst can judge the importance of a certain log entry more appropriately by confirming such information.
  • the analysis apparatus 2200 creates feature information including the feature amount extracted from one log entry and the feature amount extracted from the external context. That is, it is considered that the analysis device 2200 can create an analysis model that can more appropriately determine the importance of the log entry by using the feature information including the external context information.
  • the analyzer 2200 according to the first modification can determine the importance of the log more appropriately.
  • Modified Example 2 of Second Embodiment> a second modified example of the second embodiment (referred to as “modified example 2”) will be described.
  • modified example 2 a second modified example of the second embodiment
  • subjected and detailed description is abbreviate
  • FIG. 25 is a block diagram conceptually showing the functional configuration of the analyzer 2500 in the second modification.
  • the analyzer 2500 in the second modification further includes a pre-learning unit 2503 in addition to the analyzer 700 in the second embodiment.
  • the function of the feature extraction unit 2501 in the analysis device 2500 is expanded from the feature extraction unit 701 in the analysis device 700 of the second embodiment.
  • the function of the analysis model creation unit 2502 in the analysis device 2500 is expanded from the analysis model creation unit 702 in the analysis device 700 of the second embodiment.
  • the analysis model created by the analysis model creation unit 702 is a multi-layer NN.
  • the feature extraction unit 2501 creates feature information on a log entry of a record included in the log provided from the sample inspection apparatus 800.
  • the specific method of creating the feature information may be similar to, for example, the second embodiment and the first modification thereof.
  • the feature extraction unit 2501 is configured to create feature information also for log entries not included in the log entries of the records to which the teacher score is assigned. That is, the feature extraction unit 2501 creates feature information also for, for example, log entries not used as learning data of the analysis model (log entries of records to which no teacher score is assigned). Typically, the feature extraction unit 2501 in the second modification may create feature information for each of the log entries of all the records included in a certain log.
  • the prior learning unit 2503 uses the feature information on each log entry created in the feature extraction unit 2501 to perform prior learning on the multi-layer NN used as an analysis model.
  • the specific method of pre-learning (pre-training) the multi-layer NN may be appropriately selected, including known techniques.
  • a pre-learning method for example, a self encoder (auto encoder: autoencoder) may be used, and a restricted Boltzmann Machine (RBM) may be used.
  • the pre-learning unit 2503 decomposes the multi-layer NN used as an analysis model into a plurality of single-layer networks one by one and performs unsupervised learning using the feature information as each layer as a self-coder.
  • the parameters of the nodes included in can be calculated.
  • the prior learning unit 2503 may appropriately adopt, for example, another known prior learning method (for example, a deep self-coder, a deep RBM, etc.) without being limited to the above.
  • the prior learning unit 2503 provides the analysis model creation unit 2502 with the multilayer NN (specifically, the parameters of each node of the multilayer NN) created in this manner.
  • the analysis model creation unit 2502 adds a layer for regression (for example, an output layer having one output node) to the multilayer NN provided from the prior learning unit 2503. Thereby, the network structure of the multi-layer NN used as an analysis model is determined.
  • a layer for regression for example, an output layer having one output node
  • the analysis model creation unit 2502 executes a learning process using learning data and teacher data on the analysis model that has been previously learned and created as described above. From this learning process, the analysis model creation unit 2502 can finely adjust the parameters of the analysis model for regression. In addition, in order to suppress over-learning, the weight of the node may be fixed in the lower layer of the multilayer NN.
  • the analysis device 2500 in the second modification configured as described above, it is possible to create an analysis model that can more appropriately determine the importance of a certain log entry.
  • the reason is that the pre-learning unit 2503 performs pre-learning on the analysis model using the feature information created from the log recorded in the execution process of a certain sample 801.
  • Pre-learning can provide appropriate initial values for the multi-layer NN used as an analysis model.
  • the analysis device 2500 can create a more appropriate analysis model while avoiding various problems (for example, gradient loss and the like) in the learning process of the multilayer NN.
  • Modification 3 a third modification of the second embodiment (referred to as “modification 3”) will be described.
  • modification 3 a third modification of the second embodiment
  • FIG. 26 is a block diagram conceptually showing the functional structure of the analyzer 2600 in the third modification.
  • the analyzer 2600 in the third modification has a configuration in which the first modification and the second modification are combined.
  • a multi-layer NN is used as an analysis model.
  • the feature extraction unit 2601 in the present embodiment creates feature information including the third feature amount extracted from the external context information, as in the feature extraction unit 2201 in the first modification.
  • the other functions of the feature extraction unit 2601 may be the same as those of the first and second modifications.
  • the prior learning unit 2603 executes prior learning on an analysis model using feature information including the third feature value. Other functions of the prior learning unit 2603 may be similar to those of the second modification.
  • the analysis model creation unit 2602 executes learning processing on the analysis model that has been previously learned by the prior learning unit 2603 using learning data including feature information including the third feature amount and teacher data.
  • the other functions of the analysis model creation unit 2602 may be the same as those of the first modification and the second modification.
  • the other configuration of the analyzer 2600 may be the same as that of the first and second modifications.
  • the analyzer 2600 configured as described above corresponds to the combination of the first modification and the second modification, and as in the first modification and the second modification, it is possible to more appropriately determine the importance of a certain log. .
  • each analyzer (100, 700, 2200, 2500, 2600) described in each of the above embodiments is collectively referred to as "analyzer”.
  • Each analysis device described in each of the above embodiments may be configured by one or more dedicated hardware devices.
  • each component shown in the above-mentioned each figure (for example, FIG. 1, 7-9, 22, 25, 26) is used as hardware (an integrated circuit etc. implementing processing logic) in which a part or all is integrated. It may be realized. That is, for example, when the analysis device is realized by a hardware device, the components of the analysis device may be implemented as integrated circuits (for example, SoC (System on a Chip) etc.) capable of providing respective functions.
  • SoC System on a Chip
  • data of components of the analysis apparatus may be stored in a random access memory (RAM) area or a flash memory area integrated in the SoC.
  • RAM random access memory
  • the analysis device includes, for example, a feature extraction unit (101, 701, 2201, 2501, 2601), an analysis model creation unit (102, 702, 2502, 2602), an importance calculation unit 703, a display control unit 704, an operation.
  • a feature extraction unit 101, 701, 2201, 2501, 2601
  • an analysis model creation unit 102, 702, 2502, 2602
  • a processing circuits capable of realizing the functions of the log providing unit 705, the teacher data providing unit 706, the information collecting unit 2202, and the pre-learning units (2503 and 2603)
  • a communication circuit and a memory circuit It may be realized.
  • various variations are assumed in the implementation of the circuit configuration for realizing the analysis device.
  • the respective hardware devices may be communicably connected by an appropriate communication method (wired, wireless, or a combination thereof).
  • the above-described analysis apparatus may be configured by a general-purpose hardware device 2700 as illustrated in FIG. 27 and various software programs (computer programs) executed by the hardware device 2700.
  • the analyzer may be configured with one or more appropriate numbers of hardware devices 2700 and software programs.
  • the processor 2701 in FIG. 27 is, for example, a general-purpose CPU (Central Processing Unit) or a microprocessor.
  • the processor 2701 may, for example, read various software programs stored in the non-volatile storage device 2703 described later into the memory 2702 and execute processing in accordance with the software programs.
  • the components of the analysis device in each of the above-described embodiments can be realized, for example, as a software program executed by the processor 2701.
  • the analysis device in each of the above embodiments includes, for example, a feature extraction unit (101, 701, 2201, 2501, 2601), an analysis model creation unit (102, 702, 2502, 2602), an importance calculation unit 703, a display control unit 704. , And may be realized by one or more programs capable of realizing the functions of the operation log providing unit 705, the teacher data providing unit 706, the information collecting unit 2202, and the prior learning units (2503, 2603). Note that various variations are assumed in the implementation of such a program.
  • the memory 2702 is a memory device such as a RAM that can be referred to by the processor 2701 and stores software programs, various data, and the like.
  • the memory 2702 may be a volatile memory device.
  • the non-volatile storage device 2703 is a non-volatile storage device such as, for example, a magnetic disk drive or a semiconductor storage device (flash memory or the like).
  • the non-volatile storage device 2703 can store various software programs, data, and the like. In the above-described analyzer, data stored by the operation log providing unit 705 and the teacher data providing unit 706 may be stored in the non-volatile storage device 2703.
  • the reader / writer 2704 is, for example, a device that processes reading and writing of data to a recording medium 2705 described later.
  • the analyzer may read, for example, a log recorded on the recording medium 2705 or teacher data via the reader / writer 2704.
  • the recording medium 2705 is a recording medium capable of recording data, such as an optical disc, a magneto-optical disc, a semiconductor flash memory, and the like.
  • the type of recording medium and the recording method (format) are not particularly limited, and may be appropriately selected.
  • the network interface 2706 is an interface device connected to a communication network, and may employ, for example, a wired or wireless LAN (Local Area Network) connection interface device or the like.
  • the analyzer may be communicatively connected to the information source 3000 and the analyte testing device 800 via the network interface 2706.
  • An input / output interface 2707 is a device that controls input and output with an external device.
  • the external device may be, for example, an input device (eg, a keyboard, a mouse, a touch panel, etc.) capable of receiving an input from a user.
  • the external device may be, for example, an output device capable of presenting various outputs to the user (for example, a monitor screen, a touch panel, etc.).
  • the analyzer may control the display of the user interface, for example via an input / output interface.
  • the technology according to the present disclosure may be realized, for example, by the processor 2701 executing a software program supplied to the hardware device 2700.
  • a software program supplied to the hardware device 2700 In this case, an operating system operating on the hardware device 2700, middleware such as database management software, network software, etc. may execute part of each processing.
  • each unit shown in the above-described drawings may be realized as a software module which is a unit of a function (process) of a software program executed by the above-described hardware.
  • these software modules may be stored in the non-volatile storage device 2703. Then, the processor 2701 may read these software modules into the memory 2702 when executing the respective processing. Also, these software modules may be configured to be able to transmit various data to each other by an appropriate method such as shared memory or inter-process communication.
  • each software program may be recorded on the recording medium 2705.
  • the above software programs may be installed in the hardware device 2700 using an appropriate tool (tool).
  • various software programs may be downloaded from the outside via a communication line such as the Internet.
  • Various general procedures can be employed as a method of supplying software programs.
  • the technology according to the present disclosure may be configured by a code that configures a software program, or a computer readable recording medium in which the code is recorded.
  • the recording medium may be a non-temporary recording medium independent of the hardware device 2700, or is a recording medium obtained by downloading and storing or temporarily storing a software program transmitted by a LAN, the Internet, or the like. May be
  • the analysis device described above or the components of the analysis device include a virtual environment virtualizing the hardware device 2700 illustrated in FIG. 27 and a software program (computer program) executed in the virtual environment. May be configured by In this case, the components of the hardware device 2700 illustrated in FIG. 27 are provided as virtual devices in a virtual environment.
  • a feature extraction unit configured to be able to create feature information related to the first log entry using a second feature amount different from the second feature amount; It is possible to determine the importance of another log entry using learning data including one or more of the feature information related to the first log entry and importance information indicating the importance given to the first log entry
  • An analysis model creation unit that creates a new analysis model.
  • a log type capable of specifying the type of processing in which the log entry is recorded.
  • the feature extraction means uses information recorded in all the second log entries recorded for a certain software program, Information on the number of second log entries per process executed in the process of execution of the software program; Information representing a histogram obtained by aggregating the number of the second log entries for each of the log types; Information on the number of resources accessed in the process of execution of the software program, aggregated for each of the log types;
  • the analysis device according to Appendix 2, wherein the context information is created by calculating any one or more of the above.
  • a log type capable of specifying the type of processing in which the log entry is recorded.
  • the feature extraction means uses information recorded in the plurality of second log entries recorded for the same process as the process in which the first log entry is recorded, Information representing a histogram obtained by aggregating the number of the second log entries for each of the log types; Information on the number of resources accessed in the process of execution of the software program, aggregated for each of the log types; Information on the ratio between the total number of log entries recorded in the process of executing the software program and the total number of second log entries recorded for the same process as the process in which the first log entry is recorded;
  • the analysis device according to Appendix 2, wherein the context information is created by calculating any one or more of the above.
  • a log type capable of specifying the type of processing in which the log entry is recorded is recorded.
  • the feature extraction means uses information recorded in a plurality of the second log entries recorded within a specific range in time series from the timing when the first log entry is recorded.
  • the feature extraction unit extracts a feature quantity similar to the first feature quantity for the first log entry from each of the second log entries, and uses the feature quantity extracted from each of the second log entries.
  • the analyzer according to any one of Appendixes 1 to 6, which creates the second feature value.
  • the feature extraction unit Extracting the first feature amount from data representing the information recorded in the first log entry using at least one of a character string and a numerical value; Integrated data is created by integrating data representing information recorded in the second log entry using at least one of a character string and a numerical value for all the second log entries, and the integrated data is generated from the integrated data.
  • the analysis device according to appendix 7, wherein the second feature amount is created by extracting a feature amount similar to the first feature amount for one log entry.
  • the feature extraction unit The analysis device according to appendix 9, wherein information indicating whether the software program has executed one or more specific activities included in the summary information is extracted as the second feature value.
  • It further comprises information collecting means for acquiring information related to the information recorded in the first log entry as external context information from an information source,
  • the feature extraction unit extracts a third feature based on the external context information acquired by the information collection unit,
  • the method according to any one of appendices 1 to 10, wherein the feature information related to the first log entry is created using at least one of the second feature amount and the third feature amount and the first feature amount. Analysis equipment.
  • the information collecting means is Information indicating whether the file is a file detected as malware, and Information representing the number of times the file was acquired, Information indicating the reliability of the file, 15.
  • the analysis model creation means creates the analysis model individually for each of the log types using the feature information created regarding the log entries corresponding to each of the log types. Analysis equipment.
  • Importance calculation means for calculating the importance of the log entry using the analysis model;
  • the analysis device according to any one of appendices 1 to 16, further comprising: display control means for generating a user interface capable of controlling a display method of the log entry according to the degree of importance calculated for the log entry.
  • the display control means Generating the user interface including a control element capable of setting a threshold representing the degree of importance of the log entry to be displayed;
  • the user interface displays the log entry for which the degree of importance equal to or more than the threshold is calculated and the log entry for which the degree of importance less than the threshold is calculated using different display methods. Analysis equipment.
  • the display control means Generating the user interface including a control element capable of setting a threshold representing the degree of importance of the log entry to be displayed; 18.
  • the display control means Generating the user interface including a control element capable of setting a threshold representing the degree of importance of the log entry to be displayed;
  • the analyzer according to appendix 19, wherein the user interface displays the log entry whose importance of the threshold is calculated more emphatically than the log entry whose importance less than the threshold is calculated.
  • the analysis model is a neural network having a plurality of layers,
  • the feature extraction unit creates the feature information for the log entry to which the importance degree information is not assigned.
  • the analysis model creation means includes: the feature information created for the log entry to which the importance degree information is not added; and the feature information created for the first log entry to which the importance degree information is added; Perform prior learning on the analytical model using both 20.
  • the analyzer according to any one of appendices 1 to 20.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

ログの重要度を適切に判定可能な分析装置を提供する。分析装置は、ソフトウェア・プログラムの動作を表す情報が記録された1以上のログエントリからなるログに含まれる1つのログエントリである第1ログエントリから抽出した第1特徴量と、それぞれがログに含まれるログエントリである1以上の第2ログエントリから抽出した、第1特徴量とは異なる第2特徴量と、を用いて、一つの第1ログエントリに関する特徴情報を作成可能に構成された特徴抽出部と、第1ログエントリに関する特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他のログエントリに関する重要度を判定可能な分析モデルを作成する分析モデル作成部と、を備える。

Description

分析装置、ログの分析方法及び記録媒体
 本発明は、ログを分析する技術に関する。
 ソフトウェア・プログラムの活動を検知して分析する技術として、ソフトウェア・プログラムが実行された際に記録されたログを分析する技術をもちいることができる。
 ログの分析に関連する技術として、例えば、以下の特許文献が知られている。
 特許文献1には、ある情報システムに関するログの記録をフィルタリング(制限)する条件を設定する操作画面を、ユーザに対して提示する技術が記載されている。
 特許文献2には、ユーザ毎に作成された、電子ファイルに対する操作の重要度を表すモデルと、ユーザにより実行された電子ファイルに対する操作を表す情報とから、当該電子ファイルの価値を算出する技術が記載されている。
特開2010-218313号公報 特開2010-204824号公報
 ログを分析する技術は、例えば、悪意のあるソフトウェア・プログラム(マルウェア等)の分析にも適用可能である。この場合、あるソフトウェア・プログラムの活動に応じて記録されるログを分析することで、分析者は、そのソフトウェア・プログラムが悪意のある活動を実行するか否かを調査する。以下、分析対象のソフトウェア・プログラムを、検体(サンプル(sample))と記載することがある。
 検体によっては、記録されるログが多くなることがある。また、セキュリティに関連する技術知識を習得することは必ずしも容易ではなく、分析者の経験、習熟度によって、ログを適切に分析することが困難なことがある。即ち、記録されたログのうち、着目すべき重要な部分を判断することは、分析者にとって困難なことがある、という問題がある。
 これに対して、上記特許文献1に記載された技術は、ユーザが手作業でログのフィルタリングを設定するための技術である。また、上記特許文献2に記載された技術は、電子ファイルに関するユーザの操作及び価値判断に応じて、ある電子ファイルの価値を判定する技術である。即ち、上記各特許文献に記載された技術は、上述した問題を解決可能な技術ではない。
 本開示に係る技術は、このような事情を鑑みて開発されたものである。即ち、本開示は、あるログの重要性を適切に判定可能な技術を提供することを、主たる目的の一つとする。
 上記目的を達成すべく、本開示の一態様に係る分析装置は、以下のような構成を備える。即ち、本開示の一態様に係る分析装置は、ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、上記ログエントリである1以上の第2ログエントリから抽出した、上記第1特徴量とは異なる第2特徴量と、を用いて、上記第1ログエントリに関する特徴情報を作成可能に構成された特徴抽出部と、上記第1ログエントリに関する上記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の上記ログエントリに関する重要度を判定可能な分析モデルを作成する分析モデル作成部と、を備える。
 また、本開示の他の一態様に係る分析方法は、以下のような構成を備える。即ち、本開示の一態様に係る分析方法は、ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、上記ログエントリである1以上の第2ログエントリから抽出した、上記第1特徴量とは異なる第2特徴量と、を用いて、上記第1ログエントリに関する特徴情報を作成し、上記第1ログエントリに関する上記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の上記ログエントリに関する重要度を判定可能な分析モデルを作成することを含む。
 また、上記目的は、上記構成を有する分析装置、分析方法等をコンピュータによって実現するコンピュータ・プログラム(分析プログラム)、及び、そのコンピュータ・プログラムが格納されているコンピュータ読み取り可能な記録媒体等によっても達成される。
 即ち、本開示の他の一態様に係る分析プログラムは、以下のような構成を備える。即ち、本開示の一態様に係る分析プログラムは、ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、上記ログエントリである1以上の第2ログエントリから抽出した、上記第1特徴量とは異なる第2特徴量と、を用いて、上記第1ログエントリに関する特徴情報を作成する処理と、上記第1ログエントリに関する上記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の上記ログエントリに関する重要度を判定可能な分析モデルを作成する処理とを、コンピュータに、実行させる。なお、本開示の一態様に係る記録媒体には、上記したコンピュータ・プログラムが記録されてもよい。
 本開示によれば、あるログの重要性を適切に判定することができる。
図1は、本開示の第1実施形態における分析装置の機能的な構成を例示するブロック図である。 図2は、ログの具体例を示す説明図である。 図3は、ログから特徴情報を生成する過程の概要を例示する説明図である。 図4は、教師データの具体例を示す説明図である。 図5は、教師ラベルが設定されたログの具体例を示す説明図である。 図6は、本開示の第1実施形態における分析装置の動作の一例を示すフローチャートである。 図7は、本開示の第2実施形態における分析装置の機能的な構成を例示するブロック図である。 図8は、本開示の第2実施形態における分析装置の、他の機能的な構成を例示するブロック図である。 図9は、本開示の第2実施形態における分析装置の、更に他の機能的な構成を例示するブロック図である。 図10は、本開示の第2実施形態におけるログの具体例を示す説明図である。 図11は、本開示の第2実施形態における教師データの具体例を示す説明図である。 図12は、本開示の第2実施形態における第1特徴量の具体例を示す説明図である。 図13は、本開示の第2実施形態における第2特徴量の具体例を示す説明図である。 図14は、本開示の第2実施形態における第2特徴量の他の具体例を示す説明図である。 図15は、本開示の第2実施形態における第2特徴量の更に他の具体例を示す説明図である。 図16は、本開示の第2実施形態における第2特徴量の更に他の具体例を示す説明図である。 図17は、本開示の第2実施形態における分析モデルの学習フェーズ及び評価フェーズの概要を示す説明図である。 図18は、本開示の第2実施形態における分析装置が生成するユーザインタフェースの具体例を示す説明図である。 図19は、本開示の第2実施形態における分析装置が生成するユーザインタフェースの他の具体例を示す説明図である。 図20は、本開示の第2実施形態における分析装置が生成するユーザインタフェースの更に他の具体例を示す説明図である。 図21は、本開示の第2実施形態における分析装置の動作の一例を示すフローチャートである。 図22は、本開示の第2実施形態の変形例1における分析装置の機能的な構成を例示するブロック図である。 図23は、本開示の第2実施形態の変形例1において、外部コンテキスト情報を用いて特徴情報を作成する過程の概要を示す説明図である。 図24は、本開示の第2実施形態の変形例1における分析装置の動作の一例を示すフローチャートである。 図25は、本開示の第2実施形態の変形例2における分析装置の機能的な構成を例示するブロック図である。 図26は、本開示の第2実施形態の変形例3における分析装置の機能的な構成を例示するブロック図である。 図27は、本開示の各実施形態に係る分析装置を実現可能なハードウェア装置の構成を示すブロック図である。
 各実施形態の詳細な説明に先立って、本開示における技術的な検討事項等について説明する。以下、説明の便宜上、悪意のあるソフトウェア・プログラムを総称して、マルウェアと記載する。
 マルウェアの活動を検知して分析する技術として、例えば、シグネチャ型の分析技術と、サンドボックス型の分析技術とが知られている。
 シグネチャ型の分析技術においては、検出すべきデータや動作パターンが、予めシグネチャとして定義される。例えば、ある検体に関連するデータや、その検体の挙動が、シグネチャに合致する場合、その検体がマルウェアとして検知される。
 シグネチャ型の分析技術では、多種多様なマルウェア(新種、亜種含む)に対処しきれないことがあることから、サンドボックス型の分析技術が用いられることがある。
 サンドボックスは、分析対象の検体を実行可能な、保護された隔離環境である。サンドボックスは、例えば、仮想環境等を用いて実現することができる。サンドボックス内における検体の動作は、サンドボックス外に影響を与えることがない。このため、サンドボックス型の分析技術においては、例えば、サンドボックス内にて検体を実行し、その動作を監視することで、その検体に関する分析結果を生成することができる。
 サンドボックス型の分析技術を用いて検体を分析した場合、例えば、分析結果として、その検体がマルウェアであるか否かの判定結果、検体の動作に関するサマリ、検体の動作のログ(動作ログ)、等が得られる。
 一方、サンドボックス型の分析技術による分析結果の信頼性が、必ずしも十分ではないことがある。例えば、カスタマイズされた新種のマルウェア等、未知の検体については、必ずしも信頼性が高い分析結果が得られないことがある。
 このような状況においては、分析者は、例えば、サンドボックス環境において検体を実行することで得られたログを詳しく確認することで、その検体の挙動を調査することになる。検体ごとに記録されるログの量、頻度が異なることから、分析者は、場合によっては、大量のログの中から重要なログを確認することを求められる。また、あるログの重要度を判定するために、分析者は、ログの間の関連性、ログの出力順序、特定の特徴を有するログの量及び頻度等、種々の要素を考慮することを求められる。分析に要する時間、分析者の経験(習熟度)等の制約から、ログの分析は、分析者にとって必ずしも容易ではない。
 上記のような状況から、本出願人は、人手に依らずに、あるログの重要度を適切に判定可能な技術である、本開示に係る技術を着想するに至った。
 以下において説明する本開示に係る技術は、例えば、ソフトウェア・プログラムの動作が記録されたログと、そのログの重要度を表す情報と、を学習データとして用いて、他のログの重要度を判定可能なモデルを学習する構成を含んでもよい。また、本開示に係る技術は、ログを構成する、ある一つのログエントリから取得した特徴量と、そのログのコンテキストを表す特徴量と、を用いて、当該一つのエントリに関する特徴情報を生成する構成を含んでもよい。ログエントリ及びログのコンテキストについては後述する。また、本開示に係る技術は、例えば、学習済みのモデルを用いて判定したログの重要度に応じて、あるログを分析者に方法を制御可能な構成を含んでもよい。
 上記のような構成を含む本開示に係る技術によれば、例えば、学習されたモデルを用いてログの重要度を判定することで、分析者の人手によらずに、あるログの重要性を適切に判定可能である。
 また、本開示に係る技術によれば、あるログの重要性に応じて、そのログを分析者に提示する方法を制御可能である。これにより、例えば、分析者は、大量のログの中から比較的重要性が高いログに着目して、検体の分析をすすめることができる。
 以下、本開示に係る技術について、具体的な実施形態を用いて更に詳細に説明する。以下の具体的な実施形態(及びその変形例)の構成は例示であり、本開示に係る技術の技術範囲は、それらには限定されない。以下の各実施形態を構成する構成要素の分割(例えば、機能的な単位による分割)は、その実施形態を実現可能な一例である。各実施形態を実現可能な構成は、以下の例示に限定されず、様々な構成が想定され得る。以下の各実施形態を構成する構成要素は、更に分割されてもよく、また、以下の各実施形態を構成する1以上の構成要素が統合されてもよい。
 以下に例示する各実施形態が1以上の物理的装置、仮想的装置、及びその組合せを用いて実現される場合、1以上の構成要素が1以上の装置により実現されてもよく、1つの構成要素が複数の装置を用いて実現されてもよい。
 <第1実施形態>
 以下、本開示に係る技術を実現可能な第1の実施形態(第1実施形態)について説明する。以下において説明する分析装置は、単体の装置(物理的又は仮想的な装置)として実装されてもよく、複数の離間した装置(物理的又は仮想的な装置)を用いたシステムとして実装されてもよい。分析装置が、複数の装置を用いて実装される場合、各装置の間は有線、無線、又はそれらを適切に組み合わせた通信ネットワークにより通信可能に接続されてもよい。以下において説明する分析装置を実現可能なハードウェア構成については、後述する。
 図1は、本実施形態における分析装置100の機能的な構成を概念的に示すブロック図である。
 図1に例示するように、本実施形態における分析装置100は、特徴抽出部101(特徴抽出手段)と、分析モデル作成部102(分析モデル作成手段)とを備える。分析装置100を構成するこれらの構成要素の間は、適切な通信方法を用いて通信可能に接続されていてよい。
 分析装置100には、あるソフトウェア・プログラム(検体)の動作に関する情報が記録されたログが提供される。
 ログには、例えば、あるソフトウェア・プログラムが実行した各種の処理(例えば、API(Application Programming Interface)コール、ファイルアクセス、プロセス制御(起動及び終了等)、通信処理、レジストリアクセス、システムコール、等)を表す情報が含まれてもよい。
 ログの一例を、図2に示す。なお、図2に示すログは、説明の便宜のための具体例であり、本開示に係る技術は、これに限定されない。
 ログ200には、レコード識別子200aと、ログエントリ200bとを含む1以上のレコードが記録される。ログ200に含まれる個々のレコードは、あるソフトウェア・プログラムを実行することで観察されたソフトウェア・プログラムの動作を表す動作情報である。図2に示す具体例の場合、6個のレコードが例示されている。
 レコード識別子200aは、例えば、あるログに含まれるレコードを特定可能な識別情報である。レコード識別子200aには、ソフトウェア・プログラムの動作のシーケンス(順序)を特定可能な情報が記録されてもよい。レコード識別子200aには、例えば、各処理が実行されたタイミングを特定可能な情報(時刻又は、経過時間を表す情報等)が記録されてもよい。
 ログエントリ200bには、ソフトウェア・プログラムにより実行された処理の内容(ソフトウェア・プログラムの動作)を表す情報が記録される。ログエントリ200bに記録される情報は特に限定されず、ソフトウェア・プログラムにより実行される処理に応じて、適切な情報が記録される。ログエントリ200bには、例えば、ソフトウェア・プログラムにより実行された処理を特定可能な情報、その処理に用いられるデータを表す情報、その処理の対象を特定可能な情報、等が適宜含まれてよい。
 以下、分析装置100の各構成要素について説明する。
 特徴抽出部101は、ソフトウェア・プログラムの動作が記録されたログ(例えば、ログ200)に含まれる1以上のレコードから、そのレコード(特には、そのレコードに含まれるログエントリ)を表す特徴情報を作成する。具体的には、特徴抽出部101は、ログ200のうち、学習データとして用いられるある一つのレコードを選択(特定)し、そのログエントリの特徴を表す特徴量を抽出する。以下、学習データとして用いられるレコードのログエントリを、「第1ログエントリ」と記載し、そのログエントリから抽出される特徴量を「第1特徴量」と記載する場合がある。
 本実施形態における第1特徴量は、特に限定されず、第1ログエントリの形式、内容等に応じて適切な特徴量が選択されてよい。第1特徴量は、例えば、第1ログエントリに記録された情報を文字列表現した場合の、文字列から抽出可能な特徴量であってもよい。第1特徴量は、例えば、第1ログエントリに記録された情報を数値として表現した特徴量であってもよい。第1特徴量は、1以上の要素からなるベクトル(特徴ベクトル)として表されてもよい。
 特徴抽出部101は、ログ(例えばログ200)に含まれる1以上のレコードから、第1特徴量とは別の特徴量(「第2特徴量」と記載することがある)を抽出する。以下、第2特徴量の作成に用いられるレコードのログエントリを、「第2ログエントリ」と記載する。図2に示す具体例の場合、特徴抽出部101は、ログ200に含まれる1以上のレコードを選択(特定)し、それらレコードのログエントリ(第2ログエントリ)に基づいて第2特徴量を抽出する。第2特徴量は、第1特徴量は異なる特徴量であってよい。
 第2ログエントリは、例えば、記録された内容が、ある特定の基準を満たすようなログエントリであってもよい。係る基準の具体例として、以下に例示する基準のいずれか一つ以上が用いられてもよいが、これらには限定されない。
 (1)同じソフトウェア・プログラムの実行過程で記録されたログエントリであること
 (2)あるソフトウェア・プログラムの実行過程で実行された、同じプロセスに関するログエントリであること
 (3)あるログエントリが記録されたタイミングと前後するタイミングで記録されたログエントリであること。
 ある一つのレコードのログエントリが、第1ログエントリ及び第2ログエントリのいずれか一方にのみに用いられてもよく、両方に用いられてもよい。特徴抽出部101は、第1ログエントリを含むログ200から、第2ログエントリを抽出してもよく、第1ログエントリを含まない他のログ200から、第2ログエントリを特定してもよい。
 第2特徴量は、例えば、あるログに含まれる1以上の第2ログエントリに基づいて抽出される、そのログのコンテキストを表す特徴量である。コンテキストは、例えば、あるログに関連する背景情報や、あるログの包括的な特徴を表す情報であってよい。なお、第2特徴量は、1以上の要素からなるベクトル(特徴ベクトル)として表されてもよい。
 特徴抽出部101は、あるログに含まれる一つの第1ログエントリから抽出した第1特徴量と、そのログに含まれる1以上の第2ログエントリから抽出した第2特徴量と、を用いて、その第1ログエントリに関する特徴情報を生成する。即ち、第1ログエントリの特徴情報は、第1ログエントリから直接的に抽出される特徴量と、1以上の第2ログエントリに基づいて抽出される、ログのコンテキストを表す特徴量と、を含む。第1特徴量及び第2特徴量が特徴ベクトルとして表される場合、第1ログエントリの特徴情報は、それらの特徴ベクトルの要素をすべて含むベクトル(特徴ベクトル)として表されてもよい。
 図2に示す具体例において、符号”L1”が付されたレコード201が、第1ログエントリ(以下「第1ログエントリL1」と記載する)を含むレコード、符号”L2_1”~”L2_4”が付されたレコードが、第2ログエントリ(以下「第2ログエントリL2_1」等と記載する)レコードであることを想定する。以下、図3を参照して、図2に示すログ200から、第1ログエントリL1に関する特徴情報を生成する過程について説明する。
 特徴抽出部101は、第1ログエントリL1から、当該第1ログエントリL1に関する第1特徴量を抽出する。図3においては、第1特徴量は、要素”x1”~”xN”を含む”N”次元(”N”は自然数)の特徴ベクトル(第1特徴ベクトル)として表される。
 特徴抽出部101は、第2ログエントリL2_1~第2ログエントリL2_4から、第1ログエントリL1に関する第2特徴量を抽出する。図3においては、第2特徴量は、要素”y1”~”yM”を含む”M”次元(”M”は自然数)の特徴ベクトル(第2特徴ベクトル)として表される。
 特徴抽出部101は、抽出した第1特徴量、及び、第2特徴量を用いて、第1ログエントリL1に関する特徴情報を作成する。図3においては、第1ログエントリL1の特徴情報は、要素”x1”~”xN”及び”y1”~”yM”を含む(”M+N”)次元の特徴ベクトルとして表される。なお、特徴ベクトルにおける要素の並び順は、特に限定されない。特徴抽出部101は、図3に例示するように、第1特徴ベクトルの要素と、第2特徴ベクトルの要素を直列的に並べてもよく、他の並び順で並べてもよい。
 特徴抽出部101は、ログに含まれる1以上の第1ログエントリについて作成した特徴情報を、学習データとして分析モデル作成部102に提供してもよい。
 分析モデル作成部102は、特徴抽出部101により作成された、あるログエントリに関する特徴情報と、そのログエントリの重要度を表す重要度情報とを用いて、他のログエントリに関する重要度を判定可能な分析モデルを作成する。具体的には、分析モデル作成部102は、例えば、複数の第1ログエントリに関する特徴情報と、重要度情報とを学習データ(訓練データ)として用いて、分析モデル(後述)を学習(訓練)する処理を実行する。
 本実施形態においては、学習データとして用いられる各ログエントリに対して、予め重要度情報が教師データとして提供されることを想定する。例えば、学習データとして用いられる各ログエントリに対して、熟練した(習熟度が高い)分析者が重要度情報を設定することにより、各ログエントリに対して適切な重要度を付与することができる。このようにして作成された特徴情報を含む学習データと、重要度情報を含む教師データとには、分析者の知見が反映されているとも考えられる。そのような学習データ及び教師データを用いて訓練された分析モデルは、分析者の知見に基づいて、各ログエントリの重要度を判定可能であると考えられる。
 ログエントリの重要度を表す重要度情報は、学習データとして用いられるログエントリに付与される教師ラベルに相当する。重要度情報の具体的な表現方法は、特に限定されない。重要度情報は、例えば、何らかのラベル(例えば「高」「中」「低」等)を用いて表されてもよく、数値を用いて表されてもよい。重要度情報は、例えば、離散値(例えば、「非重要:0」、「重要:1」等)を用いて表されてもよく、ある範囲内の連続値を用いて表されてもよい。
 本実施形態においては、学習データとして用いられるログエントリに関連付けされた重要度情報を含む教師データが、分析装置100(特には分析モデル作成部102)に提供されることを想定する。図4は、この場合の教師データの具体例を示す説明図である。図4に示す教師データは、図2に例示された各ログエントリを特定する情報(レコード識別子400a)と、各ログエントリに付与された重要度情報(重要度情報400b)と、を含む。
 上記に限定されず、例えば、第1ログエントリに関する重要度情報を含むログが、教師データを含む学習データとして提供されてもよい。図5は、この場合の具体例を示す説明図である。図5に示すログ500は、重要度情報400bを含むように、図2に示すログ200から変更されている。
 本実施形態においては、上記のような重要度情報を含む教師データが、予め(例えば、ログと共に)分析装置100に与えられてもよい。また、分析装置100は、他の装置に記憶された教師データを参照してもよい。
 分析モデルは、あるログエントリに関する特徴情報を入力として受け付け、そのログエントリの重要度を判定可能なモデルである。分析モデルとして、例えば、教師有り機械学習及びパターン認識の分野で用いられる各種のモデル(例えば、SVM(Support Vector Machine)、多層ニューラルネットワーク(NN:Neural Network)、勾配ブースト木、ランダムフォレスト、等)を採用可能である。なお、本実施形態は上記例示に限定されず、他のアルゴリズムを採用した分析モデルが採用されてもよい。
 分析モデル作成部102は、特徴抽出部101から提供された第1ログエントリに関する特徴情報と、教師データとを用いて、分析モデルを学習するための適切な学習アルゴリズムを実行する。これにより、ログエントリに関する重要度を判定可能な分析モデルが学習される。
 上記のように構成された分析装置100の動作を、図6に例示するフローチャートを参照して説明する。
 分析装置100は、あるソフトウェア・プログラムの動作に関する情報が記録されたログを受け付ける(ステップS601)。
 分析装置100は、受け付けたログから、学習データとして用いられる各ログエントリに関する特徴情報を作成する(ステップS602)。この際、特徴抽出部101は、ある一つの第1ログエントリから第1特徴量を抽出し、1以上の第2ログエントリから第2特徴量を抽出する。特徴抽出部101は、第1及び第2特徴量を用いて、ある一つのログエントリに関する特徴情報を作成する。特徴抽出部101は、作成した特徴情報を、学習データとして分析モデル作成部102に提供してよい。
 分析装置100は、ログエントリの特徴情報を含む学習データと、そのログエントリに付与された重要度情報を含む教師データと、を用いて、分析モデルの学習処理を実行する。これにより、分析装置100は、あるログエントリに関する重要度を判定可能な分析モデルを作成することができる。
 上記のように構成された本実施形態における分析装置100によれば、あるログの重要性を適切に判定することが可能である。その理由は、以下の通りである。
 分析装置100は、学習データとして用いられるログに含まれるログエントリの特徴情報を作成する。分析装置100は、上記のように作成された特徴情報を含む学習データと、ログエントリに付与された重要度情報を含む教師データと、を用いて分析モデルを学習する。上記のようにして学習された分析モデルを用いることで、分析装置100は、例えば、学習データに含まれないログエントリの重要度を判定することができる。
 例えば、熟練した分析者が作成した教師データを用いて分析モデルを学習することにより、分析者の知見が反映された分析モデルを作成可能であると考えられる。このような分析モデルを用いることで、ログエントリの重要度を、より適切に判定可能であると考えられる。
 また、本実施形態における分析装置100は、ログに含まれる一つのログエントリから抽出される第1特徴量と、1以上のログエントリに基づいて抽出される、ログのコンテキストを表す第2特徴量と、を用いて、ある一つのログエントリに関する特徴情報を作成する。即ち、ある一つのログエントリに関する特徴情報には、ログのコンテキストが反映される。
 分析者があるログエントリの重要性を判断する際、単独のログエントリだけではなく、ログに記録された情報の全体像、前後のログエントリの内容、そのログエントリに記録された情報に関連する他のログエントリの内容、等を確認することがある。このように、単独のログエントリだけではなく、ログのコンテキストを確認することで、あるログエントリの重要性を、より適切に判断することができると考えられる。
 これに対して、本実施形態において、分析装置100は、一つのログエントリから抽出した特徴量と、ログに関するコンテキストから抽出した特徴量と、を含む特徴情報を作成することができる。即ち、分析装置100は、ログのコンテキストが反映された特徴情報を用いることで、ログエントリの重要性をより適切に判断可能な分析モデルを作成可能であると考えられる。
 <第2実施形態>
 以下、上記第1実施形態を基本とした、本開示に係る技術の第2の実施形態(第2実施形態)について説明する。
 〔分析装置700の構成〕
 図7は、本実施形態における分析装置700の機能的な構成を概念的に示すブロック図である。分析装置700は、調査対象のソフトウェア・プログラム(後述する「検体」)の実行により生成されるログを分析する装置である。
 検体検査装置800は、サンドボックス型の技術を用いて隔離された環境において検体801を実行することにより、検体801を動的に解析することが可能な装置である。検体検査装置800は、例えば、セキュリティアプライアンス製品等を用いて実現されてもよく、サンドボックス環境を実現するソフトウェア・プログラムが導入されたコンピュータ等の情報処理装置を用いて実現されてもよい。
 検体検査装置800は、検体801によって実行される処理(即ち、検体801の動作)を検知する機能を備えている。検体検査装置800が検知可能な検体801の動作には、例えば、特定のAPI(Application Programming Interface)の呼び出し、システムコールの呼び出し、コードインジェクション、実行ファイルの作成、スクリプトファイルの実行、特定のサービスの停止、ファイルアクセス、レジストリアクセス、特定の通信先との通信等、が含まれてよい。
 検体検査装置800は、検体を解析する過程で検知した検体801の動作を、ログ(動作ログ)として記録し、分析装置700に提供する。検体検査装置800により提供されるログの具体的な内容については、後述する。
 検体検査装置800は、検体801を解析することで得られるログ以外の情報を、分析装置700に提供してもよい。ログ以外の情報には、例えば、検体801がマルウェアか否かの一次的な判定結果が含まれてもよい。また、係る情報には、例えば、検体801の動作に関するサマリ(悪質な行動、プロセスの起動及び終了、ファイルアクセス、通信、レジストリアクセス、APIコール等に関する概要)が含まれてもよい。
 以下、本実施形態における分析装置700の具体的な構成について説明する。分析装置700は、基本的な構成として、特徴抽出部701(特徴抽出手段)と、分析モデル作成部702(分析モデル作成手段)と、を備える。分析装置700は、例えば、図8に示すように、重要度算出部703(重要度算出手段)と、表示制御部704(表示制御手段)とを更に備えてもよい。分析装置700は、例えば、図9に示すように、動作ログ提供部705(ログ提供手段)と、教師データ提供部706(教師データ提供手段)と、を更に備えてもよい。これらの構成要素の間は、適切な通信方法を用いて通信可能に接続されていてよい。以下、各構成要素について説明する。
 特徴抽出部701は、検体検査装置800から提供されるログに含まれる1以上のレコードのログエントリについて、そのログエントリを表す特徴情報を作成する。特徴抽出部701は、第1実施形態における特徴抽出部101と同様、第1ログエントリから抽出された第1特徴量と、複数の第2ログエントリから抽出された第2特徴量とを用いて、あるログエントリに関する特徴情報を作成する。各特徴量の具体例については後述する。
 分析装置700に、後述する動作ログ提供部705が含まれる場合、特徴抽出部701は、動作ログ提供部705からログを取得してもよい。
 特徴抽出部701は、あるログの内、重要度の評価対象であるレコードのログエントリに関する特徴情報を作成し、評価対象データとして重要度算出部703に提供してもよい。
 分析モデル作成部702は、特徴抽出部701により作成された、あるログエントリに関する特徴情報と、そのログエントリの重要度を表す重要度情報(教師データ)とを用いて、他のログエントリに関する重要度を判定可能な分析モデルを作成する。
 具体的には、分析モデル作成部702は、例えば、第1実施形態における分析モデル作成部102と同様、複数の第1ログエントリに関する特徴情報を含む学習データと、重要度情報を含む教師データとを用いて、分析モデル(後述)を学習(訓練)する処理を実行する。本実施形態における分析モデルについては、後述する。
 分析装置700が、後述する教師データ提供部706を含む場合、分析モデル作成部702は、教師データ提供部706から、教師データを取得してもよい。また、分析モデル作成部702は、作成された分析モデルを、重要度算出部703に提供してもよい。
 重要度算出部703は、分析モデル作成部702において作成された分析モデルを用いて、あるログに含まれるログエントリの重要度を算出する。具体的には、重要度算出部703は、あるログエントリについて作成された特徴情報を分析モデルに入力として与えることで、そのログエントリに関する重要度を算出する。重要度を算出するための具体的な方法については、後述する。重要度算出部703は、あるログエントリに関して算出された重要度を、表示制御部704に提供する。
 表示制御部704は、重要度算出部703において算出された重要度に応じて、ある検体に関するログの表示方法を制御する。表示制御部704は、例えば、後述する動作ログ提供部705から、ある検体に関するログを取得し、重要度算出部703から、そのログに含まれるログエントリに関する重要度を受け付けてもよい。
 具体的には、表示制御部704は、例えば、提供されたログに含まれる各ログエントリを表示するか否かを制御可能なユーザインタフェースの表示に用いられるデータ(以下「表示データ」と記載する)を生成する。係るユーザインタフェースは、例えば、あるログエントリの重要度に応じて、そのログエントリの表示方法を制御可能な制御要素を含んでもよい。表示制御部704は、適切な表示装置(各種モニタ画面、パネル等)に対して表示データを提供することで、係るユーザインタフェースを、分析装置100のユーザに提示してもよい。表示装置の具体的な構成は特に限定されず、適宜選択されてよい。表示装置は、分析装置700の内部に設けられてもよく、外部に設けられてもよい。
 上記に限定されず、表示制御部704は、通信ネットワークを介して接続された外部デバイスに表示データを提供してもよい。表示制御部704により作成される表示データの具体例については、後述する。
 動作ログ提供部705は、検体検査装置800から、検体801を実行する過程で記録されたログを受け付け、そのログを保持(記憶)する。動作ログ提供部705は、特徴抽出部701及び表示制御部704からのリクエストに応じて、それらに対してログを提供してもよい。
 教師データ提供部706は、あるログに含まれるログエントリに対して付与された重要度情報を保持(記憶)する。教師データ提供部706には、例えば、分析装置700のユーザ等により、予め教師データが提供されてよい。係る教師データは、例えば、上記したように、あるログについて、分析者が人手により判定した重要度を表す情報が含まれてもよい。
 教師データ提供部706は、例えば、学習データとして用いられるログエントリを特定可能な情報と、そのログエントリについて分析者等により予め設定された重要度情報とを、関連付けて記憶してもよい。
 教師データ提供部706は、例えば、分析モデル作成部702からのリクエストに応じて、あるログエントリに関する重要度情報を、教師データとして提供してもよい。また、教師データ提供部706は、表示制御部704からのリクエストに応じて、あるログエントリに関する重要度情報を提供してもよい。
 〔ログの内容〕
 以下、検体検査装置800において記録されたログについて説明する。図10は、検体検査装置800において記録されたログ(ログ1000)の一例を示す説明図である。
 図10に例示するように、ログ1000には、例えば、ソフトウェア・プログラムにより実行された処理を表す情報が記録された、1以上のレコード(行)が含まれる。ログ1000のレコードには、例えば、ログエントリ毎に、検体ID1000aと、シーケンス番号1000bと、ログエントリ1000cとが含まれる。
 検体ID1000aは、実行された検体を特定可能な識別情報(ID:Identifier)である。シーケンス番号1000bは、ログエントリが記録されたシーケンス(順序)を特定可能な情報である。シーケンス番号1000bには、検体ID1000aにより識別される検体ごとに、重複しない値が設定されてよい。
 ログエントリ1000cには、検体により実行される処理に応じて、適切な情報が記録される。ログエントリ1000cは、1以上のフィールドが含まれてもよい。ログエントリ1000cを構成する各フィールドに記録される情報は特に限定されず、例えば、以下のような情報が記録されてもよい。
 ログエントリ1000cには、検体により実行された処理の種類(以下「ログ種別」と記載する)を特定可能な情報として、”type”フィールドが記録されてもよい。ログ種別を表す”type”フィールドには、一例として、ファイルアクセス(”type:file”)、プロセス制御(”type:process”)、レジストリアクセス(”type:registry”)、通信処理(”type:network”)、等が含まれてもよい。ログ種別には、上記以外の情報が設定されてもよい。
 ログエントリ1000cには、ログ種別により特定された処理の具体的な実行内容を表す情報(”mode” フィールド)が記録されてよい。例えば、ログ種別がプロセス制御(”type:process”)である場合、”mode”フィールドにはプロセスの開始(”start”)、停止(”stop”)を表す情報が設定されてもよい。例えば、ログ種別がファイルアクセス(”type:file”)である場合、”mode”フィールドにはファイルオープン(”open”)、クローズ(”close”)を表す情報が設定されてもよい。例えば、ログ種別がレジストリアクセス(”type:registry”)である場合、”mode”フィールドにはレジストリに対する値の設定(”set-value”)を表す情報が設定されてもよい。例えば、ログ種別が通信処理(”type:network”)である場合、”mode”フィールドには通信処理に関するプロトコルを特定可能な情報(たとえば、”dns”、”http”等)を表す情報が設定されてもよい。
 ログエントリ1000cには、例えば、検体により実行された処理に関連するリソースや、処理において用いられたパラメータを表す情報が記録されてもよい。図10に示す具体例の場合、”path”フィールドには、例えば、実行されるファイル、アクセスされるファイルのパスを表す情報が記録されている。”key”フィールドには、レジストリキーを表す情報が記録されている。”value”フィールドには、レジストリに設定される値を表す情報が記録されている。”host”フィールドには、通信先を特定可能な情報が記録されている。”ip”フィールドには、通信先のIP(Internet Protocol)アドレスを表す情報が記録されている。”headers”フィールドには、ある通信プロトコルにより送受信されるデータに含まれるヘッダを表す情報が記録されている。
 ログエントリ1000cには、例えば、あるログエントリが出力された処理を実行したプロセスを特定可能な情報(”pid”フィールド)が記録されてもよい。
 ログエントリ1000cには、例えば、あるログエントリが記録されたタイミング(例えば、時刻や経過時間等)を特定可能な情報(”timestamp”フィールド)が記録されてもよい。
 ログエントリ1000cには、上記例示した各フィールドのうち、一部が記録されてもよく、上記例示したフィールド以外のフィールドが記録されてもよい。
 例えば、図10に示すシーケンス番号が”1”であるレコードは、実行ファイル”¥temp¥abcde.exe”を実行するプロセスが開始されたことを示す。シーケンス番号が”9”であるレコードは、”¥temp¥abcde.exe”のプロセスが停止されたことを示す。また、シーケンス番号が”2”及び”3”のレコードは、”key”により指定された特定のレジストリキーに対して”value”により指定された値を設定することを示す。また、シーケンス番号が”4”、”5”及び”8”のレコードは、それぞれファイルアクセス(ファイルオープン、クローズ、削除)を示す。また、シーケンス番号が”6”、”7”のレコードは、それぞれ特定の通信先との間の通信を示す。
 〔教師データ〕
 以下、分析装置700に提供される教師データについて説明する。上記したように、分析装置700が教師データ提供部706を含む場合、教師データは教師データ提供部706に記憶されてよい。
 図11は、本実施形態における教師データの具体例を示す説明図である。図11に例示するように、教師データは、検体ID1100aと、シーケンス番号1100bと、教師スコア1100cと、を含む、1以上のレコード(行)を含む。検体ID1100aは、図10に例示する検体ID1000aと同様、ある検体801を特定可能な識別情報である。また、シーケンス番号1100bは、図10に例示するシーケンス番号1000bと同様、ログエントリが記録されたシーケンス(順序)を特定可能な情報である。
 教師スコア1100cは、検体ID1100a及びシーケンス番号1100bにより特定されるログエントリに関する重要度を表す。教師スコア1100cには、例えば、重要度に応じてある特定の範囲の連続値(例えば、”0.0”~”1.0”の間の数値)が設定されてもよい。また、教師スコア1100cには、重要、非重要を表す数値(例えば重要:”1”、非重要:”0”)や、ラベルが設定されてもよい。教師スコア1100cは、後述する分析モデルの学習過程で、教師ラベルとして用いられる。
 〔第1特徴量〕
 以下、特徴抽出部701が第1ログエントリから抽出する第1特徴量について説明する。以下においては、説明の便宜上、あるレコードのログエントリに記録されたデータを、文字列又は数値により表現可能なデータとして扱う事を想定する。なお、この場合、特徴抽出部701は、第1ログエントリに記録された情報を、適宜文字列及び数値に変換してもよい。
 一例として、第1特徴量は、ログエントリ1000cの記録を文字列として表した場合の、N-グラム(N-gram)の出現頻度を表してもよい。ここでは、N-グラムは、1文字以上の文字で構成される文字列の並びを表す。例えば、ユニグラムは1つの文字列の並び、2-グラム(バイグラム)は2つの文字列の並び、3-グラム(トライグラム)は、3つの文字列の並びを表す。
 例えば、ログエントリ1000cが、ASCII(American Standard Code for Information Interchange)コードの印字可能文字(0x21~0x7E、94個)により表現可能な文字列として表されることを想定する。特徴量として1文字単位のユニグラム(1文字の並び)の出現頻度(ヒストグラム)を用いる場合、図12の(A)部分に示すような、94次元の特徴量(特徴ベクトル)が得られる。図12の(A)に示す特徴ベクトル(図12の1201)における各要素は、一つのログエントリの中で、特定のASCIIコードで表される文字が出現する数を表す。2文字以上の並びについても、同様の方法で特徴量を抽出可能である。また、特徴抽出部701は、ログエントリに含まれるフィールドごとのN-グラムの出現頻度を、特徴量として用いてもよい。この場合、例えば、”mode”フィールドにおける出現頻度、”type”フィールドにおける出現頻度、等が特徴量として用いられる。
 他の一例として、第1特徴量は、特定の区切り文字(セパレータ)によりログエントリを単語に分割した際の、各単語の出現頻度を表してもよい。
 一例として、特徴抽出部701は、あるログ1000に出現する単語を含む辞書を用いて、その辞書に含まれる各単語が、ログエントリにおいて出現する頻度を計数してもよい。この場合、図12の(B)部分に示すような”N”次元(”N”は自然数)の特徴ベクトル(図12の1202)が得られる。ここで、Nは辞書に含まれる単語の数であり、特徴ベクトルの各要素は、辞書に含まれる各単語の出現頻度を表す。
 辞書は予め分析装置700に提供されてもよい。また、特徴抽出部101が、1以上のログから、適切な基準を用いて単語を選択することで、辞書を作成してもよい。セパレータは適宜選択可能であり、例えば、”;”、”,”、”/”等の文字がセパレータとして用いられてもよい。
 図12に示す具体例の場合、特徴ベクトル1202の第1要素は、単語”type”の出現頻度を表し、第2要素は、単語”process”の出現頻度を表す。同様にして、特徴ベクトル1202の各要素には、辞書に含まれる各単語の出現頻度が設定される。
 他の一例として、特徴抽出部701は、例えば、分割した単語からインデックスを算出してもよい。特徴抽出部701は、例えば、”N”次元の特徴ベクトル(初期値は全要素が”0”)を生成する。そして、特徴抽出部701は、例えば、分割した単語のハッシュ値を計算し、そのハッシュ値の”N”による剰余(”0”~(”N-1”))を、その単語のインデックスとして算出する。特徴抽出部701は、”N”次元の特徴ベクトルの内、算出されたインデックス番目の要素の値をインクリメントする。ログエントリに含まれる全ての単語についてこのような処理を実行することで、特徴抽出部701は、ログエントリに含まれる各単語の出現頻度を表す特徴ベクトルを生成可能である。この場合、ハッシュ値を生成するアルゴリズムは、周知のアルゴリズムを採用してよい。また、特徴ベクトルの次元数(”N”の値)は、異なる単語が同じインデックスに割り当てられる衝突の影響を考慮して、適切な値を選択すればよい。
 他の一例として、ログエントリに含まれるフィールドごとの意味を表す値を用いて、第1特徴量が作成されてもよい。特徴抽出部701は、例えば、一つのログエントリをフィールドごとに分割し、各フィールドに記録された情報を表す値を要素として有する特徴ベクトルを生成する。この場合、例えば、図12の(C)部分に示すようなM次元(Mは自然数)の特徴ベクトル(図12の1203)が得られる。ここで、Mは、ログエントリに含まれ得るフィールドの総数である。一例として、”type”フィールドに対応する特徴ベクトルの要素には、”type”フィールドに記録された内容を表す値が設定される。また、”mode”フィールドに対応する特徴ベクトルの要素には、”mode”フィールドの内容を表す値が設定される。ログエントリにおいて数値が設定されるフィールド(例えば”pid”、”value”等)に対応する特徴ベクトルの要素には、その数値が設定されてもよい。また、例えば、API呼び出しの引数等を表すビットフィールドについては、ビットごとに個別に特徴ベクトルの要素が割り当てられてもよい。
 特徴抽出部701は、上記に限定されず、ログエントリの内容を表現可能な他の特徴量を採用してもよい。ログエントリの内容を文字列として扱う場合、係る特徴量として、例えば、一般的な自然言語処理技術において用いられる各種特徴量が用いられてもよい。
 〔第2特徴量〕
 以下、特徴抽出部701が抽出する第2特徴量について説明する。以下においては、説明の便宜上、第2ログエントリに記録されたデータを、文字列又は数値により表現可能なデータとして扱う事を想定する。なお、この場合、特徴抽出部701は、第2ログエントリに記録された情報を、適宜文字列及び数値に変換してもよい。
 上記したように、分析者がログを分析する際、ある一つのログエントリにのみ着目するのではなく、ログの全容や関連情報を参照することがある。分析者は、例えば、関連する複数のログエントリを確認することで、ある一つのログエントリからは得られない、あるログに特徴的なパターン(即ち、検体801の動作に関するパターン)を見出しているとも考えられる。このようなログに関するコンテキストから抽出した情報を特徴量として用いることにより、単一のログエントリから抽出した特徴量のみを用いる場合に比して、より適切にログエントリの重要度を判定可能な特徴量が得られると考えられる。
 特徴抽出部701は、例えば、それぞれの第2ログエントリに記録された情報から作成可能な、ログに関するコンテキストを表す情報を、第2特徴量として用いてもよい。特徴抽出部701は、例えば、それぞれの第2ログエントリに記載された情報を計数することで、第2特徴量を作成してもよく、それぞれの第2ログエントリに記載された情報から抽出した特徴量を用いて、第2特徴量を作成してもよい。具体的には、特徴抽出部701は、ログに関するコンテキストを表す第2特徴量として、以下のような特徴量を抽出してもよい。
 一例として、特徴抽出部701は、例えば、ある検体801を実行することで得られるログ全体のコンテキストを表す情報を、第2特徴量として抽出する。この場合の第2ログエントリは、第1ログエントリと同一の検体801に関するログエントリである、という基準を満たすログエントリであると言える。特徴抽出部701は、例えば、あるログの内、第1ログエントリを含むレコードと検体ID1000aが同一である他のレコードを選択することで、第2ログエントリを含むレコードを特定可能である。以下、この場合の第2特徴量の具体例について説明する。
 特徴抽出部701は、例えば、特定した全ての第2ログエントリから、プロセス毎(”pid”フィールドの値毎)に第2ログエントリの件数を集計し、上位”x”件の件数を並べた情報を、第2特徴量として採用してよい。図13は、この場合の第2特徴量の具体例を示す説明図である。この場合、特徴抽出部701は、あるログに含まれる各レコードのログエントリについて、”pid”フィールドの値毎に、ログエントリの件数を集計する。特徴抽出部701は、集計された上位N件(Nは自然数、図13の例では”N=3”)の件数(図13の例では、”pid:111”の30件、”pid:112”の20件、”pid:110”の10件)から、第2特徴量を作成する。この場合、第2特徴量は、3次元の特徴ベクトルとして表される。
 なお、集計された件数を全てのログエントリの件数で除算することで、第2特徴量の要素が正規化されてもよい。この場合、例えば、ある検体801の実行過程で実行されるプロセスの傾向(例えば、実行されるプロセスの多寡等)を、コンテキストとして第2特徴量に反映することができる。
 特徴抽出部701は、また、例えば、特定した第2ログエントリから算出した、ログ種別のヒストグラムを表す情報を、第2特徴量として採用してよい。図14は、この場合の第2特徴量の具体例を示す説明図である。この場合、特徴抽出部701は、あるログに含まれる全ての第2ログエントリについて、”type”フィールドに記録された情報を集計することでヒストグラムを作成する。特徴抽出部701は、そのヒストグラムの各要素(例えば、”file”、”process”、”registry”、及び、”network”)について計数された度数を用いて、第2特徴量(4次元の特徴ベクトル)を作成する。この場合、例えば、ある検体801の実行過程で実行される処理内容の傾向を、コンテキストとして第2特徴量に反映することができる。
 特徴抽出部701は、例えば、特定した全ての第2ログエントリから抽出した、通信先の数、実行されたプロセスの数、アクセスされたファイルの数、アクセスされたレジストリの数、等の情報を、第2特徴量として採用してよい。図15は、この場合の第2特徴量の具体例を示す説明図である。この場合、特徴抽出部701は、例えば、あるログから、”type”フィールドに”network”が記録された全ての第2ログエントリを選択し、そのログエントリの”host”フィールド又は”ip”フィールドから、通信先の数を集計可能である。
 特徴抽出部701は、例えば、あるログから、”type”フィールドに”file”が記録された全ての第2ログエントリを選択し、そのログエントリの”path”フィールドから、アクセスされたファイル数を集計可能である。
 特徴抽出部701は、例えば、あるログから、”type”フィールドに”registry”が記録された全ての第2ログエントリを選択し、そのログエントリの”key”フィールドから、アクセスされたレジストリ数を集計可能である。
 特徴抽出部701は、例えば、ログ1000から、”type”フィールドに”process”が記録された全ての第2ログエントリを選択し、そのログエントリの”path”フィールドから、実行されたプロセス数を集計可能である。
 図15に示す具体例の場合、特徴抽出部701は、例えば、ログエントリの種別(”type”)毎に、通信先の数、実行されたプロセスの数、アクセスされたファイルの数、アクセスされたレジストリの数を含む第2特徴量(4次元の特徴ベクトル)を作成する。この場合、例えば、ある検体801の実行過程で実行される処理によりアクセスされる、ログ種別毎のリソースの情報を、コンテキストとして第2特徴量に反映することができる。
 他の一例として、特徴抽出部701は、例えば、ある検体801を実行することで得られるログに含まれる、ある特定のプロセスに関するコンテキストを表す情報を、第2特徴量として抽出してもよい。
 具体的には、特徴抽出部701は、ある検体801を実行することで得られるログから第1ログエントリを選択し、第1ログエントリと同じプロセス(”pid”フィールドが同じ)に関する他のログエントリを、第2ログエントリとして特定する。この場合、第2ログエントリは、第1ログエントリと同じプロセス(”pid”フィールドが同じ)に関するログである、という基準を満たすと言える。
 この場合も上記と同様に、特徴抽出部701は、例えば、特定した第2ログエントリから算出したログ種別のヒストグラムを表す情報を、第2特徴量として採用してよい。また、特徴抽出部701は、例えば、特定した全ての第2ログエントリから抽出した、通信先の数、実行されたプロセスの数、アクセスされたファイルの数、アクセスされたレジストリの数、等の情報を、第2特徴量として採用してよい。
 特徴抽出部701は、また、あるログに含まれる、第1ログエントリと同じプロセスに関するログエントリの割合を、第2特徴量として採用してもよい。図16は、この場合の第2特徴量の具体例を示す説明図である。この場合、特徴抽出部701は、あるログに含まれるログエントリの総数と、第1ログエントリと同じ”pid”フィールドを有する第2ログエントリの総数との割合を算出することで、第2特徴量(1次元ベクトル)を作成する。この場合、例えば、ある検体801の実行過程において、あるプロセスが実行された割合を、コンテキストとして第2特徴量に反映することができる。
 他の一例として、特徴抽出部701は、例えば、第1ログエントリを含むレコードが記録されたタイミングから、時系列において特定の範囲内に記録された1以上のレコードから得られるコンテキストを表す情報を、第2特徴量として抽出してもよい。
 より具体的には、特徴抽出部701は、ある検体801を実行することで得られるログから第1ログエントリを選択する。特徴抽出部701は、例えば、選択した第1ログエントリを含むレコードが記録されたタイミングから、時系列においてNサンプル(Nは自然数)前のタイミングまでに記録された1以上のレコードを選択してよい。また、特徴抽出部701は、例えば、選択した第1ログエントリを含むレコードが記録されたタイミングから、時系列においてMサンプル(Mは自然数)後のタイミングまでに記録された1以上のレコードを選択してよい。特徴抽出部701は、上記のように選択したレコードのうち、少なくとも1件以上のレコードに含まれるログエントリを、第2ログエントリとして特定してよい。この場合、第2ログエントリは、第1ログエントリが記録されたタイミングを含む、時系列における特定の時間範囲内に記録されたログエントリである、という基準を満たす。
 この場合も上記と同様に、特徴抽出部701は、例えば、特定した第2ログエントリから算出したログ種別のヒストグラムを表す情報を、第2特徴量として採用してよい。また、特徴抽出部701は、例えば、特定した全ての第2ログエントリのうち、第1ログエントリと同じプロセスに関するログの割合を、第2特徴量として採用してもよい。
 他の一例として、特徴抽出部701は、例えば、ある検体801を実行することで得られる、当該検体801の動作に関するサマリを表す情報(サマリ情報)を、第2特徴量として用いてもよい。例えば、ブラックボックス技術を採用した一般的なセキュリティ製品を用いて検体検査装置800が構成された場合を想定する。この場合、検体検査装置800は、典型的には、検体801の動作ログ以外に、検体801の動作を分析した結果をサマリとして提供することができる。なお、係る製品は特段限定されず、当業者であれば適宜選択可能である。
 上記のような製品から提供されるサマリには、典型的には、以下のような情報が含まれていることがある。
 (1)検体801がマルウェアであるか否かの一次的な判定結果
 (2)検体801が実行した悪質な活動(例えば、「特定プロセスの実行及び終了」、「特定のAPIコール」、「特定のシステムコール」、「外部通信の試行」、「特定サービスの停止」、「セキュリティに関する設定の変更」、「アカウント情報へのアクセス」、「実行ファイルの作成」、「実行可能なデータ(スクリプト含む)のダウンロード」、「ファイルアクセス」、「レジストリアクセス」等)。
 サマリに含まれる情報は、上記に限定されない。サマリには、例えば、検体検査装置800が、検体801の活動(振る舞い)をもとに、ルールベースである活動の有無を判定した結果を表す情報が含まれてもよい。
 提供されたサマリに、上記説明した検体801の活動を表す情報が含まれる場合、特徴抽出部701は、その情報に基づいて第2特徴量を作成してもよい。特徴抽出部701は、例えば、悪質な活動の種別毎に、検体801がその活動を実行したか否かを、2値データ(例えば0又は1)を用いて表す第2特徴量を作成してもよい。例えば、悪質な活動の種別の個数がM個である場合、第2特徴量は、M次元の2値ベクトルとして表される。上記したようなサマリから第2特徴量を作成する場合、例えば、検体801がマルウェアである否かを判定するための根拠となる情報が特徴量として含まれる。このような第2特徴量を用いることで、分析装置700は、例えば、ある悪質な行動の有無が、ログエントリの重要度に影響するような場合であっても、そのログの重要度を適切に判定することが可能となる。
 上記に限定されず、例えば、上記説明した、第2ログエントリに記録された情報を計数することで得られる各種の第2特徴量(その少なくとも一部)が、提供されたサマリに含まれる場合、特徴抽出部701は、その特徴量を第2特徴量として用いて良い。 上記に限定されず、特徴抽出部701は、例えば、それぞれの第2ログエントリから上記第1特徴量と同様の特徴量を抽出し、その特徴量を用いて第2特徴量を作成してもよい。この場合、特徴抽出部701は、例えば、上記第1ログエントリから第1特徴量を抽出する方法と同様の方法を用いて、各第2ログエントリから特徴量を抽出することができる。特徴抽出部701は、例えば、それぞれの第2ログエントリから抽出した特徴量を適宜並べることで、第2特徴量を作成してもよい。また、特徴抽出部701は、例えば、それぞれの第2ログエントリから抽出した特徴量に関する統計量(例えば、最大値、最小値、中央値、平均値、分散、偏差等)を算出することで、第2特徴量を作成してもよい。特徴抽出部701は、また、複数の第2ログエントリを統合したデータ(統合データ)を作成してもよい。統合データは、例えば、各第2ログエントリに記録された情報を全て並べたデータであってもよい。特徴抽出部701は、統合データから、上記説明した第1特徴量と同様の特徴量を抽出し、抽出した特徴量を第2特徴量として用いてもよい。
 特徴抽出部701は、上記第1実施形態における特徴抽出部101と同様に、第1ログエントリから抽出した第1特徴量と、1以上の第2ログエントリから抽出した第2特徴量と、を用いて、第1ログエントリに関する特徴情報を生成する。
 〔分析モデル〕
 以下、分析モデル作成部702が作成する分析モデルについて説明する。
 上記したように、分析モデルは、あるログエントリに関する特徴情報を入力として与えることで、そのログエントリに関する重要度を判定可能なモデルである。そのようなモデルとして、例えば、機械学習やパターン認識において用いられるモデルを用いることができる。分析モデルとして採用可能なモデルの具体例として、例えば、SVM、多層NN、勾配ブースト木、ランダムフォレスト、等を採用可能である。以下、これらのモデルを採用する場合の、分析モデルの学習及び分析モデルを用いた重要度の評価について説明する。
 図17は、分析モデルの学習、及び、分析モデルを用いた重要度評価の概要を示す説明図である。分析モデル作成部702は、特徴抽出部701により抽出された第1ログエントリに関する特徴情報を含む学習データと、教師データ提供部706から提供された教師データと、を用いて分析モデルに関する学習処理を実行する(図17における「学習フェーズ」)。
 例えば、分析モデルとしてSVMを用いる場合、分析モデル作成部702は、学習データと、教師データとを用いて、SVMの識別関数(識別平面)を学習する。SVMは回帰に適用することができる(SVR:Support Vector Regression)。この場合、学習データとして与えられた特徴情報を識別関数に入力することで算出される値と、教師データとして与えられる値との間の許容誤差を最小化するように、識別関数のパラメータが学習される。SVRにおけるパラメータの学習方法は、周知技術を含め、適切な方法を採用可能である。
 例えば、分析モデルとして多層NNを用いる場合、分析モデル作成部702は、学習データと、教師データとを用いて多層NNを構成するノード(ニューロン)の結合パラメータを学習する。多層NNの具体的なネットワーク構造(層の数、各層のノード数等)は、適宜定められてよい。なお、多層NNの入力層は、例えば、特徴情報を表すベクトルの要素の数(次元数)と同じ数の入力ノードにより構成されてもよい。この場合、入力層の各ノードに、特徴情報を表すベクトルの各要素がそれぞれ入力される。また、多層NNの出力層は1つの出力ノード(回帰用の出力ノード)により構成されてもよい。この場合、出力層のノードには、例えば、活性化関数として正規化線形関数等が設定されてもよい。多層NNの学習方法は、周知技術を含め、適切な方法を採用可能である。
 例えば、分析モデルとして、勾配ブースト木又はランダムフォレストを用いる場合、分析モデル作成部702は、学習データと、教師データとを用いてこれらを構成する1以上の決定木を学習する。決定木の数、各決定木の構成は、適宜選択されてよい。勾配ブースト木及びランダムフォレストの学習方法は、周知技術を含め、適切な方法を採用可能である。
 重要度算出部703は、分析モデル作成部702により作成された分析モデルを用いて、評価対象であるログエントリに関する重要度を算出する。より具体的には、重要度算出部703は、あるログエントリについて、特徴抽出部701により作成された特徴情報を分析モデルに入力することで、当該特徴情報に関する重要度を算出する(図17の評価フェーズ)。
 例えば、分析モデルとしてSVMが用いられる場合、特徴情報をSVMの識別関数に入力することで算出される値が、その特徴情報に関する重要度を表す値として用いられてよい。例えば、分析モデルとして多層NNを用いられる場合、多層NNの入力層に特徴情報の各要素を入力することで出力層から得られる値が、その特徴情報に関する重要度を表す値として用いられてよい。例えば、分析モデルとして、勾配ブースト木又はランダムフォレストが用いられる場合、ある特徴情報が入力として与えられた際の、各決定木の出力の加重和又は平均値が、その特徴情報に関する重要度を表す値として用いられてよい。
 なお、本実施形態における分析モデルの数は1つに限定されず、複数の分析モデルが用いられてよい。より具体的には、分析モデル作成部702は、ログエントリの内容や種別に応じて、複数の分析モデルを作成することができる。例えば、ログ種別(”type”フィールドの情報)毎に、各ログエントリに含まれる他の情報(フィールド)が異なる場合、分析モデル作成部702は、ログ種別毎にそれぞれ分析モデルを作成してよい。一例として、ログ種別に4つのタイプ(例えば、”type”フィールドの値が”file”、”process”、”registry”及び”network”)が含まれる場合を想定する。この場合、分析モデル作成部702は、ログエントリの種別毎に4つの分析モデル(”type”フィールドの値が”file”のログエントリに関する分析モデル、”process” のログエントリに関する分析モデル、”registry” のログエントリに関する分析モデル及び”network” のログエントリに関する分析モデル)を作成する。この場合、分析モデル作成部702は、学習データに含まれる各ログ種別のログエントリを用いて、各ログ種別の分析モデルを学習する。また、重要度算出部は、評価対象のレコードのログエントリに記録されたログ種別に応じて、そのログ種別用の分析モデルを用いて、重要度を算出する。
 〔ログの表示〕
 以下、表示制御部704によるログの表示について説明する。上記したように、表示制御部704は、重要度算出部703において算出された重要度に応じてある検体801に関するログの表示を制御可能なユーザインタフェースを表示する。より具体的には、表示制御部704は、係るユーザインタフェースの表示に用いられる表示データを生成してもよい。
 表示制御部704は、一例として、図18に例示するようなユーザインタフェース1800を表示する表示データを生成することができる。
 図18に例示するユーザインタフェース1800は、分析装置700のユーザに対して表示されるGUI(Graphical User Interface)の少なくとも一部を構成する。
 ユーザインタフェース1800には、例えば、ログエントリ表示領域(図18の1801)、閾値設定領域(図18の1802)、更新ボタン(図18の1803)、及び、検体設定領域(図18の1804)が含まれてもよい。
 ログエントリ表示領域1801は、動作ログ提供部705より提供されるログに含まれるレコードのログエントリを表示可能な領域である。ログエントリ表示領域1801には、検体設定領域1804(後述)において設定された検体IDにより特定される検体801を実行した際のログが表示される。なお、表示制御部704は、検体設定領域1804に設定された検体IDが変更されたタイミングで、動作ログ提供部705から、当該検体IDにより特定される検体に関するログを取得してもよい。
 ログエントリ表示領域1801には、動作ログ提供部705から提供されたログのうち、閾値設定領域1802(後述)において設定された閾値以上の重要度を有するログエントリが表示される。即ち、ログエントリ表示領域1801に表示されるログエントリについて、重要度算出部703において算出された重要度は、閾値設定領域1802(後述)において設定された閾値以上である。
 動作ログ提供部705から提供されたログに、教師スコアが付与されたログエントリが含まれる場合(即ち、学習データとして用いられたログエントリが含まれる場合)、重要度1801aには、教師スコアが表示されてもよい。
 閾値設定領域1802及び更新ボタン1803は、ログエントリ表示領域に表示されるログエントリの重要度を設定(調整)可能な、制御要素(コントロール)である。閾値設定領域1802は、ユーザインタフェース1800を操作するユーザが閾値を設定可能な入力フィールドである。閾値設定領域1802は、一例として、テキストボックス、数値入力コントロール等を用いて実現可能であるが、これに限定されない。更新ボタン1803は、閾値設定領域1802に設定された閾値に応じて、ログエントリ表示領域1801の表示内容を更新するための制御要素である。例えば、ユーザが更新ボタン1803を押下することにより、閾値設定領域1802に設定された閾値以上のログエントリが表示されるように、ログエントリ表示領域1801の表示内容が更新される。
 具体的には、例えば、ユーザが更新ボタン1803を押下したことを表すイベントと、そのタイミングにおいて閾値設定領域1802に設定された閾値とが、ユーザインタフェース1800を介して、表示制御部704に伝達される。表示制御部704は、通知された閾値以上の重要度を有するログエントリを特定し、そのログエントリを表示するよう表示データを生成する。GUIを介したイベントなどの送受信及び表示の更新は、周知技術を用いて実現されてよい。
 例えば、図18に例示するユーザインタフェースにおいて、閾値設定領域1802に”0.3”が設定され、更新ボタン1803が押下されたことを想定する。この場合、表示制御部704は、例えば、図19に例示するユーザインタフェース1800が表示されるように、表示データを作成(更新)する。図19において、ログエントリ表示領域1801には、重要度が”0.3”以上のログエントリのみが表示される。即ち、表示制御部704は、重要度が閾値未満のログエントリが表示されないように、表示内容を制御する。
 表示制御部704は、他の一例として、図20に例示するようなユーザインタフェース2000を表示する表示データを生成してもよい。ユーザインタフェース2000は、ユーザインタフェース1800における閾値設定領域1802及び更新ボタン1803に替えて、スライダー2001を含む。ユーザインタフェース2000を構成する他の要素は、ユーザインタフェース1800と同様としてよい。
 スライダー2001は、ログエントリ表示領域に表示されるログエントリの重要度を設定(調整)可能な、制御要素である。たとえば、スライダー2001を操作することで、スライダーの位置に応じて閾値が更新される。表示制御部704は、例えば、スライダーの位置により表される閾値以上の重要度を有するログエントリを特定し、そのログエントリを表示するような表示データを生成する。
 更に他の一例として、表示制御部704は、各ログエントリの重要度に応じて、各ログエントリの表示方法を変更(調整)してもよい。図18~図20に示す具体例の場合、表示制御部704は、閾値未満の重要度のログエントリを表示しないユーザインタフェースを作成する。これに限定されず、表示制御部704は、例えば、閾値以上の重要度を有するログエントリを強調表示するとともに、閾値未満の重要度を有するログエントリを抑制的に(目立たないように)表示してもよい。表示制御部704が、各ログエントリを強調表示する方法、及び、各ログエントリを抑制的に表示する方法は、特に限定されず、適宜選択可能である。例えば、表示制御部704は、閾値以上の重要度を有するログエントリをハイライトするともに、閾値未満の重要度を有するログエントリをグレーアウトするユーザインタフェースを作成してもよい。また、例えば、表示制御部704は、閾値以上の重要度を有するログエントリが、閾値未満の重要度を有するログエントリよりも大きく表示されるようなユーザインタフェースを作成してもよい。
 〔分析装置700の動作〕
 上記のように構成された分析装置700の動作について説明する。図21は、分析装置700の動作の一例を示すフローチャートである。
 分析装置700は、検体検査装置800において検体801を実行した際に記録されたログを受け付ける(ステップS2101)。分析装置700が動作ログ提供部705を含む場合、動作ログ提供部705が、検体検査装置800から提供されたログを保持(記憶)してもよい。
 分析装置700は、検体検査装置800から提供されたログのうち、学習データとして用いられるレコードのログエントリについて、そのログエントリの特徴を表す特徴情報を作成する(ステップS2102)。
 具体的には、特徴抽出部701は、ある一つのレコードのログエントリ(第1ログエントリ)から、第1特徴量を抽出する。また、特徴抽出部は、ログに含まれる1以上のレコードのログエントリ(第2ログエントリ)から、第2特徴量を抽出する。特徴抽出部701は、第1特徴量と、第2特徴量と、を用いて、当該一つのレコードのログエントリに関する特徴情報を作成する。第1特徴量及び第2特徴量を抽出する方法の具体例は、上記説明した通りである。
 特徴抽出部701は、例えば、教師スコアが付与されたログエントリを含むレコードを、学習データとして用いられるレコードとして特定してよい。特徴抽出部701は、更に、ログに含まれる評価対象のレコードのログエントリについて、特徴情報を作成してもよい。なお、学習データとして用いられるレコードと、評価対象データとして用いられるレコードとは、同じログに含まれてもよく、異なるログに含まれてもよい。特徴抽出部701は、各ログエントリについて作成された特徴情報を含む学習データを、分析モデル作成部702に提供してよい。
 分析装置700は、ステップS2102において作成された学習データと、教師データとを用いて、分析モデルを作成する(ステップS2103)。
 具体的には、分析モデル作成部702は、特徴抽出部701により作成された学習データと、教師データ提供部706に記憶された教師データとを用いて、分析モデルの学習処理を実行する。上記したように、分析モデル作成部702は、ログエントリの内容等に応じて複数の分析モデルを作成してよい。分析モデル及びその学習処理の具体例は、上記に記載した通りである。
 ステップS2101~ステップS2103の処理により、分析装置700は、あるレコードに含まれるログエントリの重要度を判定可能な分析モデルを作成することができる。
 分析装置700は、ステップS2103において分析モデルを作成した際、処理を終了してもよく、ログの評価及び表示(ステップS2104以降の処理)を実行してもよい。
 以下、分析装置700によるログの評価及び表示に関する動作を説明する。
 分析装置700は、ステップS2101~ステップS2103において作成された分析モデルを用いて、評価対象のレコードのログエントリについて、重要度を算出する(ステップS2104)。
 具体的には、特徴抽出部701が、評価対象のレコードのログエントリに関する特徴情報を生成する。評価対象のレコードは、あるログに含まれる全てのレコードであってもよく、学習データとして用いられていないレコードであってもよい。
 重要度算出部703は、特徴抽出部701において作成された、評価対象のレコードのログエントリに関する特徴情報を分析モデルに入力し、重要度を算出する。重要度算出部703は、算出した重要度を、表示制御部704に提供する。
 なお、ログの内容に応じて複数の分析モデルが作成されている場合、分析装置700は、評価対象のレコードのログエントリの内容に応じて、適切な分析モデルを選択して重要度を算出してよい。
 分析装置700は、ステップS2104において算出された評価対象のログエントリに関する重要度に応じて、そのログエントリを含むログ(より具体的には、そのログエントリを含むレコードが記録されたログ)の表示を制御する(ステップS2105)。
 具体的には、例えば、表示制御部704が、動作ログ提供部705からログを取得し、そのログに記録されたレコードのうち、評価対象のレコードのログエントリについて算出された重要度を、重要度算出部703から受け付ける。
 表示制御部704は、重要度算出部703において算出された重要度に応じてある検体801に関するログの表示を制御可能なユーザインタフェースを表示する。係るユーザインタフェースの具体例は、上記説明した通りである。
 ステップS2104~ステップS2105の処理により、分析装置700は、あるレコードに含まれる各ログエントリの重要度に応じて、各ログエントリを表示する方法を制御可能である。
 上記のように構成された本実施形態における分析装置700により、例えば、以下のような現実的な効果が得られる。
 本実施形態における分析装置700は、あるログの重要性を適切に判定することを可能とする。具体的には、分析装置700は、学習データとして用いられるログエントリから、その特徴情報を作成し、作成した特徴情報を含む学習データと、ログエントリに付与された重要度情報を含む教師データと、を用いて分析モデルを学習する。上記のようして学習された分析モデルを用いることで、分析装置700は、例えば、ログに含まれる各ログエントリの重要度を判定することができる。
 また、分析装置700は、1以上の第2ログエントリから、ログのコンテキストを表す第2特徴量を抽出することができる。具体的には、分析装置700は、例えば、ある検体801の実行過程で得られたログの全体的な特徴、ある検体801の実行過程で実行された特定のプロセスに関するログの特徴、及び、あるログエントリの前後に記録されたログエントリに関する特徴、等を第2特徴量として抽出する。これにより、分析装置700は、あるログエントリから作成される特徴情報に、ログのコンテキストを表す情報を含めることができる。
 また、分析装置700は、上記第1実施形態同様、あるログエントリの特徴を表す第1特徴量と、ログのコンテキストを表す第2特徴量と、を用いて、ある一つのログエントリに関する特徴情報を作成する。これにより、分析装置700は、ある一つのログエントリに関する特徴情報に、ログのコンテキストを反映することができる。このような特徴情報を用いて分析モデルを学習することで、分析装置700は、ログエントリの重要性をより適切に判断可能な分析モデルを作成可能である。
 また、分析装置700は、あるログに含まれるログエントリの重要度に応じて、そのログエントリの表示態様を制御可能である。具体的には、分析装置700は、作成された分析モデルを用いて、評価対象のログエントリに関する重要度を算出し、その重要度に応じて当該ログエントリの表示態様を制御することができる。分析装置700は、例えば、ユーザにより指定された重要度以上の重要度のログエントリを表示し、ユーザにより指定された重要度よりも低い重要度のログエントリを抑制することができる。これにより、分析装置700は、ユーザにより指定された重要度に応じて、着目すべきログエントリを提示することができることから、ユーザによる分析作業の効率を改善することができる。
 また、分析装置700は、ログの内容等に応じて複数の分析モデルを作成することができる。例えば、ログ種別に応じてログエントリに記録されるフィールドの内容及びフィールドの個数が異なる場合を想定する。この場合、全てのログ種別を表現可能な特徴量(特徴ベクトル)を作成すると、次数が大きい(要素数が大きい)特徴量や、スパースな特徴量が作成される可能性がある。そのような特徴量を用いた学習処理には、比較的大きな記憶領域(メモリ領域)が必要となることがある。また、そのような特徴量を用いて分析モデルを学習した場合、例えば、ログ種別毎の特徴が希釈されてしまう可能性がある。これに対して、例えば、ログ種別毎に異なる分析モデルを作成する場合、不要に大きな次数の特徴量を作成する必要がないことから、処理効率を改善可能である。また、この場合、ログ種別毎に特有の特徴が反映された分析モデルが作成されると考えられる。このような分析モデルを用いることで、各エントリの重要度をより適切に算出可能である。
 <第2実施形態の変形例1>
 以下、第2実施形態の第1の変形例(「変形例1」と記載する)について説明する。以下、上記各実施形態と同様の構成については、同様の参照符号を付し、詳細な説明を省略する。
 図22は、本変形例1における分析装置2200の機能的な構成を概念的に示すブロック図である。本変形例1における分析装置2200は、第2実施形態における分析装置700に対して、更に情報収集部2202を備える。また、分析装置2200における特徴抽出部2201の機能が、第2実施形態の分析装置700における特徴抽出部701から拡張されている。以下、係る相違点を中心に説明する。
 情報収集部2202(情報収集手段)は、ある検体801を実行することで得られたログに関連する情報等を、分析装置2200の外部に存在する情報源3000から取得する。具体的には、情報収集部2202は、第1ログエントリに記録された内容に関連する情報を、外部の情報源3000から取得してもよい。以下、情報収集部2202が外部の情報源3000から取得した情報を、外部コンテキスト情報と記載する。
 本変形例1において、情報源3000の種類は特に限定されず、適宜選択可能である。情報源3000には、例えば、各種セキュリティ製品等のベンダが提供する情報提供サービスが含まれてもよい。また、情報源3000には、各種セキュリティ情報が蓄積されたデータベースが含まれてもよい。また、情報源3000には、セキュリティ事象(インシデント)に対処する各種組織(例えば、各種CSIRT(Computer Security Incident Response Team)等)が情報を発信するサイト等が含まれてもよい。また情報源3000には、現在では一般的なインターネットにおける情報検索サービスや、ソーシャルネットワークサービスが含まれてもよい。また、情報源3000には、DNS(Domain Name Service)、WHOIS等、ネットワークに関連する情報を提供するサービスが含まれてもよい。
 情報収集部2202は、例えば、特徴抽出部2201(後述)からの依頼に応じて、第1ログエントリに記録された内容に関する適切な情報を提供する情報源3000を選択し、外部コンテキスト情報を取得する。情報収集部2202が外部コンテキストを取得する具体的な方法は、情報源3000の構成や仕様等に応じて、適切に選択されてよい。具体的には、情報収集部2202は、例えば、特定の通信プロトコルに従って、情報源3000から外部コンテキスト情報を取得してもよい。情報収集部2202は、例えば、特定のクエリを情報源3000に送信し、そのレスポンスを受信してもよい。情報収集部2202は、情報源3000により提供される特定のAPIを利用して、外部コンテキスト情報を取得してもよい。
 情報収集部2202は、情報源3000から取得した外部コンテキスト情報を、特徴抽出部2201に提供する。
 本変形例1における特徴抽出部2201は、第2実施形態の分析装置700における特徴抽出部701と同様の機能を備える。特徴抽出部2201は、更に、外部コンテキスト情報から特徴量を抽出するよう構成される。以下、外部コンテキスト情報から抽出される特徴量を、「第3特徴量」と記載する事がある。
 特徴抽出部2201は、例えば、情報収集部2202に対して、外部コンテキスト情報の取得を依頼してもよい。この際、特徴抽出部2201は、第1ログエントリに記録された内容を、情報収集部2202に提供してもよい。
 特徴抽出部2201は、情報収集部2202が収集した外部コンテキスト情報から第3特徴量を抽出し、その第1ログエントリに関する特徴情報を作成する。具体的には、特徴抽出部2201は、第1特徴量と、第3特徴量とを用いて、ある第1ログエントリに関する特徴情報を作成してもよく、第1特徴量と、第2特徴量と、第3特徴量と、を用いて、ある第1ログエントリに関する特徴情報を作成してもよい。
 本変形例1における分析装置2200の他の構成要素は、概略上記第2実施形態における分析装置700の構成要素と同様としてよい。
 即ち、分析モデル作成部702は、特徴抽出部2201から提供される学習データと、教師データ提供部706に記憶される教師データとを用いて、分析モデルを作成する。 重要度算出部703は、上記第2実施形態と同様、分析モデル作成部702により作成された分析モデルを用いて、あるログエントリに関する重要度を算出し、表示制御部704に提供するよう構成される。
 表示制御部704は、上記第2実施形態と同様、重要度算出部703により算出された各ログエントリの重要度に応じて、当該ログエントリの表示を制御可能なインタフェースを生成するよう構成される。
 動作ログ提供部705は、上記第2実施形態と同様、ある検体801の実行に伴い記録されたログを保持(記憶)し、教師データ提供部706は、学習データとして用いられるログエントリに付与された教師スコアを含む教師データを保持(記憶)する。
 〔外部コンテキスト情報及び第3特徴量〕
 以下、外部コンテキスト情報及び、外部コンテキストから抽出される第3特徴量について説明する。上記したように、情報収集部2202は、情報源3000から、第1ログエントリの内容に関連する外部コンテキスト情報を取得する。一例として、情報収集部2202は、第1ログエントリのログ種別(”type”フィールドの情報)に応じて、適切な情報源3000を選択し、外部コンテキスト情報を取得する。この場合、情報収集部2202は、例えば、第1ログエントリのログ種別と、そのログ種別に関する外部コンテキスト情報を取得可能な情報源3000と、を関連付けたテーブル等を予め保持(記憶)していてもよい。
 一例として、第1ログエントリのログ種別”type”フィールドに”file”が設定されている場合を想定する。この場合、例えば、第1ログコンテキストの”path”フィールドから、具体的なファイルを特定可能である。
 情報収集部2202は、例えば、特定されたファイルがウィルス対策製品に検知されるか否かを判定可能な情報を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。この場合、特徴抽出部2201は、例えば、第1ログエントリの”path”フィールドにより特定されるファイルがウィルス対策製品に検知されるか否かを表す値(例えばブール値)を、第3特徴量に含めてよい。
 また、情報収集部2202は、例えば、そのファイルが取得された数(例えば、そのファイルをダウンロードしたユーザ数)を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。この場合、特徴抽出部2201は、例えば、第1ログエントリの”path”フィールドにより特定されるファイルがダウンロードされた数を表す値を、第3特徴量に含めてよい。
 また、情報収集部2202は、例えば、ある情報源3000から、そのファイルの信頼度を表す情報を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。この場合、特徴抽出部2201は、例えば、第1ログエントリの”path”フィールドにより特定されるファイルの信頼度を表す値を、第3特徴量に含めてよい。なお、ファイルの信頼度は、そのファイルが実行する処理の内容、ファイルの提供元、そのファイルに関するインシデントの有無等に応じて、情報源3000において適宜設定されてよい。
 上記の場合、情報源3000として、例えば、各種セキュリティ製品等のベンダ、セキュリティ事象に対処する各種組織が情報を発信するサイト等が含まれてよい。情報収集部2202は、例えば、情報源3000において、そのファイルの名称(ファイル名)や、そのファイルのハッシュ値を含むコンテンツ、データ等を検索することで、上記したような外部コンテキスト情報を収集することが可能である。この場合、情報収集部2202は、例えば、あるファイルのセキュリティに関する評判(レピュテーション)を表す情報を、外部コンテキスト情報として取得すると考えられる。
 他の一例として、第1ログエントリのログ種別”type”フィールドに”registry”が設定されている場合を想定する。この場合、例えば、第1ログコンテキストの”key”フィールドから、具体的なレジストリキーを特定可能である。
 情報収集部2202は、例えば、特定されたレジストリキーにアクセスする既知のマルウェアが存在するか否かを判定可能な情報を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。更に、情報収集部2202は、特定されたレジストリキーにアクセスする既知のマルウェアが存在する場合、その名称、分類名、ハッシュ値等を取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。
 この場合、特徴抽出部2201は、例えば、第1ログエントリの”key”フィールドにより特定されるレジストリにアクセスする既知のマルウェアが存在するか否かを表す値(例えば、ブール値)を、第3特徴量に含めてよい。なお、特定されたレジストリキーにアクセスする既知のマルウェアが存在する場合、特徴抽出部2201は、そのマルウェアの名称、分類名、ハッシュ値等を第3特徴量に含めてもよい。この際、マルウェアの名称、分類名等は適宜文字列表現や数値表現に変換されてもよい。この場合、情報収集部2202は、例えば、あるレジストリのキーのセキュリティに関連する評判(レピュテーション)を表す情報を、外部コンテキスト情報として取得すると考えられる。
 更に他の一例として、第1ログエントリのログ種別”type”フィールドに”network”が設定されている場合を想定する。この場合、例えば、第1ログコンテキストの”host”フィールド、”ip”フィールド、”url”フィールド等から、通信先を特定可能である。
 情報収集部2202は、例えば、特定された通信先に関する評価を表す情報を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。通信先に関する評価を表す情報には、例えば、通信先のホスト自体に関する評価、通信先が属するドメインに関する評価、URLに関する評価等が含まれてよい。係る評価には、例えば、そのホストにアクセスする利用者の数、そのドメインにアクセスする利用者の数、そのURLにアクセスする利用者の数、等が含まれてもよい。また、係る評価には、そのホスト、ドメイン、URL等が、既知のブラックリストに登録されているか否か、等が含まれてもよい。ブラックリストは、セキュリティの観点から問題がある通信先等が登録されたリストである。この場合、特徴抽出部2201は、例えば、特定された通信先に関する評価を表す情報を、第3特徴量に含めてよい。具体的には、特徴抽出部2201は、例えば、ある通信先にアクセスする利用者の数を表す値、ある通信先がブラックリストに登録されているか否かを表す値(例えばブール値)等を、第3特徴量に含めてもよい。この場合、情報収集部2202は、例えば、ある通信先のセキュリティに関連する評判(レピュテーション)を表す情報を、外部コンテキスト情報として取得すると考えられる。
 上記に限定されず、情報収集部2202は、例えば、特定された通信先が存在する地域(国、領域等)を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。情報収集部2202は、例えば、”ip”フィールドに設定されたIPアドレスが割り当てられた国を特定し、その国を表す情報を、特徴抽出部2201に提供してもよい。この場合、特徴抽出部2201は、例えば、特定された通信先が存在する地域(国、領域等)を表す情報を、第3特徴量に含めてよい。この際、通信先が存在する地域の名称は、適宜文字列表現や数値表現に変換されてもよい。
 上記に限定されず、情報収集部2202は、例えば、特定された通信先の所有者(より具体的には、通信先のIPアドレスの所有者)を、情報源3000から取得し、外部コンテキスト情報として特徴抽出部2201に提供してもよい。情報収集部2202は、例えば、”ip”フィールドに設定されたIPアドレスから、現在では一般的なWHOISプロトコル等を用いて、そのIPアドレスの所有者に関する情報を取得することができる。この場合、特徴抽出部2201は、例えば、特定された通信先の所有者を表す情報の少なくとも一部を、第3特徴量に含めてよい。この際、通信先の所有者を表す情報は、適宜文字列表現や数値表現に変換されてもよい。
 図23は、情報収集部2202が外部コンテキストを取得し、特徴抽出部2201が第3特徴量を抽出する過程を模式的に表す説明図である。図23に例示するように、特徴抽出部2201は、例えば、第1特徴量を表す特徴ベクトルの要素と、第3特徴量を表す特徴ベクトルの要素とを適宜並べることで、第1ログエントリの特徴情報を表す特徴ベクトルを作成してもよい。また、特徴抽出部2201は、例えば、第1特徴量を表す特徴ベクトルの要素と、第2特徴量を表す特徴ベクトルの要素と、第3特徴量を表す特徴ベクトルの要素と、を適宜並べることで、第1ログエントリの特徴情報を表す特徴ベクトルを作成してもよい。
 〔動作〕
 以下、分析装置2200の動作について説明する。図24は、分析装置2200の動作の一例を示すフローチャートである。図24に示すフローチャートの各ステップのうち、第2実施形態における分析装置700の動作と同様の処理については、図21に例示するフローチャートと同じ参照符号を付すことで、詳細な説明を省略する。
 分析装置2200は、上記第2実施形態と同様、検体検査装置800から、ある検体801を実行する過程で記録されたログを受け付ける(ステップS2101)。
 分析装置2200は、受け付けたログのうち、学習データとして用いられるレコードのログエントリ(第1ログエントリ)に関する外部コンテキスト情報を取得する(ステップS2401)。
 具体的には、特徴抽出部2201は、第1ログエントリの内容に関連する外部コンテキスト情報の取得を、情報収集部2202に依頼する。情報収集部2202は、第1ログエントリの内容に応じて情報源3000を選択し、その情報源3000から第1ログエントリの内容に応じた情報を取得する。情報収集部2202は、取得した情報を、外部コンテキスト情報として特徴抽出部2201に提供する。外部コンテキスト情報の具体例は、上記説明した通りである。
 ステップS2102乃至ステップS2104の処理は、概略上記第2実施形態と同様としてよい。即ち、分析装置700は、ステップS2102において、第1ログエントリから抽出した第1特徴量と、外部コンテキスト情報から抽出した第3特徴量と、を用いて第1ログエントリに関する特徴情報を作成する。この際、分析装置700は、第1、第3特徴量に加えて、ログのコンテキストを表す第2特徴量を用いて、第1ログエントリに関する特徴情報を作成してもよい。分析装置700は、ステップS2103において作成した特徴情報を含む学習データと、教師データとをもちいて分析モデルを作成し(ステップS2103)、評価対象のログエントリに関する重要度を算出し(ステップS2104)、重要度に応じてログエントリの表示を制御する(ステップS2105)。
  上記のように構成された本実施形態における分析装置700により、例えば、以下のような現実的な効果が得られる。
 上記のように構成された分析装置2200は、学習データとして用いられるログエントリの特徴情報に、外部コンテキスト情報を含めることができる。現在では、各種セキュリティ製品等のベンダや、セキュリティ事象に対処する各種組織により、各種セキュリティ事象に関する各種の情報が提供されている。例えば、分析者が、このような情報を確認することで、あるログエントリの重要性を、より適切に判断することができると考えられる。これに対して、本変形例1において、分析装置2200は、一つのログエントリから抽出した特徴量と、外部コンテキストから抽出した特徴量と、を含む特徴情報を作成する。即ち、分析装置2200は、外部コンテキスト情報が含まれる特徴情報を用いることで、ログエントリの重要性をより適切に判断可能な分析モデルを作成できると考えられる。以上より、本変形例1における分析装置2200は、ログの重要性をより適切に判定することが可能である。
 <第2実施形態の変形例2>
 以下、第2実施形態の第2の変形例(「変形例2」と記載する)について説明する。以下、上記各実施形態及び変形例と同様の構成については、同様の参照符号を付し、詳細な説明を省略する。
 図25は、本変形例2における分析装置2500の機能的な構成を概念的に示すブロック図である。本変形例2における分析装置2500は、第2実施形態における分析装置700に対して、更に事前学習部2503を備える。また、分析装置2500における特徴抽出部2501の機能が、第2実施形態の分析装置700における特徴抽出部701から拡張されている。また、分析装置2500における分析モデル作成部2502の機能が、第2実施形態の分析装置700における分析モデル作成部702から拡張されている。以下、係る相違点を中心に説明する。なお、本変形例においては、分析モデル作成部702により作成される分析モデルが、多層NNであることを想定する。
 特徴抽出部2501は、検体検査装置800から提供されたログに含まれるレコードのログエントリに関する特徴情報を作成する。特徴情報を作成する具体的な方法は、例えば、上記第2実施形態及びその変形例1と同様としてよい。
 本変形例2において、特徴抽出部2501は、教師スコアが付与されたレコードのログエントリに加え、これらに含まれないログエントリについても、特徴情報を作成するよう構成される。即ち、特徴抽出部2501は、例えば、分析モデルの学習データとして用いられないログエントリ(教師スコアが付与されていないレコードのログエントリ)についても、特徴情報を作成する。典型的には、本変形例2における特徴抽出部2501は、あるログに含まれる全てのレコードのログエントリについて、それぞれ特徴情報を作成してよい。
 事前学習部2503は、特徴抽出部2501において作成された各ログエントリに関する特徴情報を用いて、分析モデルとして用いられる多層NNに関する事前学習を実行する。
 多層NNを事前学習(プレトレーニング)する具体的な方法は、周知技術を含め、適宜選択されてよい。事前学習の方法として、例えば、自己符号化器(オートエンコーダ:autoencoder)を用いてもよく、制限付きボルツマンマシン(RBM:Restricted Boltzmann Machines)を用いてもよい。一例として、事前学習部2503は、分析モデルとして用いる多層NNを1層ずつ複数の単層ネットワークに分解し、各層を自己符号化器として上記特徴情報を用いた教師なし学習を行うことで、各層に含まれるノードのパラメータを算出することができる。上記に限定されず、事前学習部2503は、例えば、周知の他の事前学習の方法(例えば、深層自己符号化器や、深層RBM等)を適宜採用してもよい。事前学習部2503は、このようにして作成された多層NN(具体的には、多層NNの各ノードのパラメータ)を、分析モデル作成部2502に提供する。
 分析モデル作成部2502は、事前学習部2503から提供された多層NNに対して、回帰用の層(例えば、1つの出力ノードを有する出力層)を追加する。これにより、分析モデルとして用いられる多層NNのネットワーク構造が決定される。
 分析モデル作成部2502は、上記のように作成された事前学習済みの分析モデルについて、学習データ及び教師データを用いた学習処理を実行する。この学習処理より、分析モデル作成部2502は、分析モデルのパラメータを、回帰用に微調整することが可能である。なお、過学習を抑制するため、多層NNの下層については、ノードの重みが固定されてもよい。
 分析装置2500における他の要素は、上記第2実施形態と同様としてよい。
 上記ように構成された本変形例2における分析装置2500によれば、あるログエントリの重要度をより適切に判断可能な分析モデルを作成することができる。その理由は、事前学習部2503が、ある検体801の実行過程で記録されたログから作成された特徴情報を用いて、分析モデルに関する事前学習を実行するからである。事前学習により、分析モデルとして用いられる多層NNについて、適切な初期値を与えることが可能である。これにより、分析装置2500は、多層NNの学習処理における各種の問題(例えば、勾配消失等)を回避して、より適切な分析モデルを作成することができる。
 <第2実施形態の変形例3>
 以下、第2実施形態の第3の変形例(「変形例3」と記載する)について説明する。以下、上記各実施形態及び変形例と同様の構成については、同様の参照符号を付し、詳細な説明を省略する。
 図26は、本変形例3における分析装置2600の機能的な構成を概念的に示すブロック図である。本変形例3における分析装置2600は、上記変形例1と、変形例2とを組合せた構成を備える。本実施形態においては、上記変形例2と同様、分析モデルとして多層NNが用いられることを想定する。
 本実施形態における特徴抽出部2601は、上記変形例1における特徴抽出部2201と同様、外部コンテキスト情報から抽出した第3特徴量を含む特徴情報を作成する。特徴抽出部2601が備える他の機能は、上記変形例1及び変形例2と同様としてよい。
 事前学習部2603は、第3特徴量を含む特徴情報を用いて、分析モデルに関する事前学習を実行する。事前学習部2603が備える他の機能は、変形例2と同様としてよい。
 分析モデル作成部2602は、第3特徴量を含む特徴情報を含む学習データと、教師データとを用いて、事前学習部2603による事前学習済みの分析モデルに関する学習処理を実行する。分析モデル作成部2602が備える他の機能は、上記変形例1及び変形例2と同様としてよい。
 分析装置2600の他の構成は、上記変形例1及び変形例2と同様としてよい。
 上記のように構成された分析装置2600は、上記変形例1及び変形例2の組合せに相当し、上記変形例1及び変形例2と同様、あるログに関する重要度をより適切に判定可能である。
  <ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
 以下、上記説明した各実施形態及び変形例を実現可能なハードウェア構成について説明する。以下の説明においては、上記各実施形態において説明した各分析装置(100、700、2200、2500、2600)を、まとめて「分析装置」と記載する。
 上記各実施形態において説明した各分析装置は、1つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記各図(例えば、図1、7-9、22、25、26)に示した各構成要素は、一部又は全部を統合したハードウェア(処理ロジックを実装した集積回路等)として実現してもよい。即ち、
 例えば、分析装置をハードウェア装置により実現する場合、分析装置の構成要素は、それぞれの機能を提供可能な集積回路(例えば、SoC(System on a Chip)等)として実装されてもよい。この場合、例えば、分析装置の構成要素が有するデータは、SoCに統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域に記憶されてもよい。
 この場合、分析装置は、例えば、特徴抽出部(101、701、2201、2501、2601)、分析モデル作成部(102、702、2502、2602)、重要度算出部703、表示制御部704、動作ログ提供部705、教師データ提供部706、情報収集部2202、事前学習部(2503、2603)の機能を実現可能な1以上の処理回路(processing circuitry)、通信回路、及び記憶回路等を用いて実現されてよい。なお、分析装置を実現する回路構成の実装においては、様々なバリエーションが想定される。
 分析装置を複数のハードウェア装置により構成する場合、それぞれのハードウェア装置の間は、適切な通信方法(有線、無線、またはそれらの組み合わせ)により通信可能に接続されていてもよい。
 また、上述した分析装置は、図27に例示するような汎用のハードウェア装置2700と、ハードウェア装置2700によって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、分析装置は、1以上の適切な数のハードウェア装置2700及びソフトウェア・プログラムにより構成されてもよい。
 図27におけるプロセッサ2701は、例えば、汎用のCPU(中央処理装置:Central Processing Unit)やマイクロプロセッサである。プロセッサ2701は、例えば、後述する不揮発性記憶装置2703に記憶された各種ソフトウェア・プログラムをメモリ2702に読み出し、そのソフトウェア・プログラムに従って処理を実行してもよい。この場合、上記各実施形態における分析装置の構成要素は、例えば、プロセッサ2701により実行されるソフトウェア・プログラムとして実現可能である。
 上記各実施形態における分析装置は、例えば、特徴抽出部(101、701、2201、2501、2601)、分析モデル作成部(102、702、2502、2602)、重要度算出部703、表示制御部704、動作ログ提供部705、教師データ提供部706、情報収集部2202、事前学習部(2503、2603)の機能を実現可能な1以上のプログラムにより実現されてよい。なお、係るプログラムの実装においては、様々なバリエーションが想定される。
 メモリ2702は、プロセッサ2701から参照可能な、RAM等のメモリデバイスであり、ソフトウェア・プログラムや各種データ等を記憶する。なお、メモリ2702は、揮発性のメモリデバイスであってもよい。
 不揮発性記憶装置2703は、例えば磁気ディスクドライブや、半導体記憶装置(フラッシュメモリ等)のような、不揮発性の記憶装置である。不揮発性記憶装置2703は、各種ソフトウェア・プログラムやデータ等を記憶可能である。上記分析装置において、動作ログ提供部705及び教師データ提供部706が記憶するデータは、不揮発性記憶装置2703に記憶されてもよい。
 リーダライタ2704は、例えば、後述する記録媒体2705に対するデータの読み込みや書き込みを処理する装置である。分析装置は、例えば、リーダライタ2704を介して、記録媒体2705に記録されたログや、教師データを読み込んでもよい。
 記録媒体2705は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な記録媒体である。本開示において、記録媒体の種類及び記録方法(フォーマット)は、特に限定されず、適宜選択されてよい。
 ネットワークインタフェース2706は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のLAN(Local Area Network)接続用インタフェース装置等を採用してもよい。分析装置は、ネットワークインタフェース2706を介して、情報源3000及び検体検査装置800と通信可能に接続されてよい。
 入出力インタフェース2707は、外部装置との間の入出力を制御する装置である。外部装置は、例えば、ユーザからの入力を受け付け可能な入力機器(例えば、キーボード、マウス、タッチパネル等)であってもよい。また、外部装置は、例えばユーザに対して各種出力を提示可能出力機器であってもよい(例えば、モニタ画面、タッチパネル等)。分析装置は、例えば、入出力インタフェースを介して、ユーザインタフェースの表示を制御してもよい。
 本開示に係る技術は、例えば、ハードウェア装置2700に対して供給されたソフトウェア・プログラムを、プロセッサ2701が実行することによって、実現されてもよい。この場合、ハードウェア装置2700で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが、各処理の一部を実行してもよい。
 上述した各実施形態において、上記各図に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)の単位である、ソフトウェアモジュールとして実現されてもよい。例えば、上記各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールは、不揮発性記憶装置2703に記憶されてもよい。そして、プロセッサ2701が、それぞれの処理を実行する際に、これらのソフトウェアモジュールをメモリ2702に読み出してもよい。また、これらのソフトウェアモジュールは、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成されてもよい。
 更に、上記各ソフトウェア・プログラムは、記録媒体2705に記録されてもよい。この場合、上記各ソフトウェア・プログラムは、適当な治具(ツール)を利用してハードウェア装置2700内にインストールされてもよい。また、各種ソフトウェア・プログラムは、インターネット等の通信回線を介して外部からダウンロードされてもよい。ソフトウェア・プログラムを供給する方法として、各種の一般的な手順を採用することができる。
 このような場合において、本開示に係る技術は、ソフトウェア・プログラムを構成するコード、あるいはコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されてもよい。この場合、記録媒体は、ハードウェア装置2700と独立した非一時的な記録媒体であってもよく、LANやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記録媒体であってもよい。
 また、上述した分析装置、あるいは、当該分析装置の構成要素は、図27に例示するハードウェア装置2700を仮想化した仮想環境と、その仮想環境において実行されるソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、図27に例示するハードウェア装置2700の構成要素は、仮想環境における仮想デバイスとして提供される。
 以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 なお、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
(付記1)
 ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成可能に構成された特徴抽出手段と、
 前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する分析モデル作成手段と、を備える
分析装置。
(付記2)
 前記特徴抽出手段は、それぞれの前記第2ログエントリに記録された情報を計数することで作成される情報であるコンテキスト情報を、前記第2特徴量として抽出する
付記1に記載の分析装置。
(付記3)
 前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
 前記特徴抽出手段は、ある前記ソフトウェア・プログラムについて記録された全ての前記第2ログエントリに記録された情報を用いて、
  前記ソフトウェア・プログラムの実行過程で実行されたプロセス毎の、前記第2ログエントリの数に関する情報と、
  前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
  それぞれの前記ログ種別について集計した、前記ソフトウェア・プログラムの実行過程でアクセスされたリソースの数に関する情報と、
 のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
付記2に記載の分析装置。
(付記4)
 前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
 前記特徴抽出手段は、前記第1ログエントリが記録されたプロセスと同じプロセスについて記録された複数の前記第2ログエントリに記録された情報を用いて、
  前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
  それぞれの前記ログ種別について集計した、前記ソフトウェア・プログラムの実行過程でアクセスされたリソースの数に関する情報と、
  前記ソフトウェア・プログラムの実行過程で記録された前記ログエントリの総数と、前記第1ログエントリが記録されたプロセスと同じプロセスについて記録された前記第2ログエントリの総数と、の割合に関する情報と、
 のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
付記2に記載の分析装置。
(付記5)
 前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
 前記特徴抽出手段は、前記第1ログエントリが記録さえたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリに記録された情報を用いて、
  前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
  前記第1ログエントリが記録されたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリの総数と、前記第1ログエントリが記録されたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリのうち、前記第1ログエントリと同じプロセスについて記録された前記第2ログエントリの総数と、の割合に関する情報と、
 のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
付記2に記載の分析装置。
(付記6)
 前記特徴抽出手段は、それぞれの前記第2ログエントリに記録された情報から抽出した特徴量を用いて作成される情報であるコンテキスト情報を、前記第2特徴量として抽出する
付記1に記載の分析装置。
(付記7)
 前記特徴抽出手段は、前記第1ログエントリに対する前記第1特徴量と同様の特徴量を、各前記第2ログエントリから抽出し、各前記第2ログエントリから抽出した特徴量を用いて、前記第2特徴量を作成する
付記1乃至付記6のいずかれ一項に記載の分析装置。
(付記8)
 前記特徴抽出手段は、
  前記第1ログエントリに記録された情報を文字列及び数値の少なくとも一方を用いて表すデータから、前記第1特徴量を抽出し、
  前記第2ログエントリに記録された情報を文字列及び数値の少なくとも一方を用いて表するデータを、全ての前記第2ログエントリについて統合することで統合データを作成し、その統合データから前記第1ログエントリに対する前記第1特徴量と同様の特徴量を抽出することで、前記第2特徴量を作成する
付記7に記載の分析装置。
(付記9)
 前記特徴抽出手段は、
 前記ソフトウェア・プログラムの動作を解析可能な解析装置により前記ソフトウェア・プログラムの動作を解析した結果を表すサマリ情報から、前記第2特徴量を抽出する
付記1に記載の分析装置。
(付記10)
 前記特徴抽出手段は、
 前記サマリ情報に含まれる、前記ソフトウェア・プログラムが1以上の特定の活動を実行したか否かを表す情報を、前記第2特徴量として抽出する
付記9に記載の分析装置。
(付記11)
 前記第1ログエントリに記録された情報に関連する情報を、情報源から外部コンテキスト情報として取得する情報収集手段を更に備え、
 前記特徴抽出手段は、前記情報収集手段により取得された外部コンテキスト情報に基づいて、第3特徴量を抽出し、
 前記第2特徴量及び第3特徴量の少なくとも一方と、前記第1特徴量と、を用いて前記第1ログエントリに関する前記特徴情報を作成する
付記1乃至付記10のいずれか一項に記載の分析装置。
(付記12)
 前記情報収集手段は、前記ソフトウェア・プログラムの実行過程でアクセスされたリソースの、セキュリティに関する評判を表す情報を、前記外部コンテキスト情報として前記情報源から収集する
 付記11に記載の分析装置。
(付記13)
 前記第1ログエントリに、あるファイルへのアクセスが記録されている場合、
 前記情報収集手段は、
  そのファイルがマルウェアとして検知されるファイルであるか否か、を表す情報と、
  そのファイルが取得された数を表す情報と、
  そのファイルの信頼度を表す情報と、
 のいずれか1つ以上を、前記外部コンテキスト情報として前記情報源から取得する
付記11に記載の分析装置。
(付記14)
 前記第1ログエントリに、あるレジストリへのアクセスが記録されている場合、
 前記情報収集手段は、そのレジストリがマルウェアによりアクセスされるか否かを表す情報を、前記外部コンテキスト情報として前記情報源から取得する
付記11に記載の分析装置。
(付記15)
 前記第1ログエントリに、ある通信先への通信が記録されている場合、
 前記情報収集手段は、その通信先のセキュリティに関する評判を表す情報を、前記外部コンテキスト情報として前記情報源から取得する
付記11に記載の分析装置。
(付記16)
 前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
 前記分析モデル作成手段は、それぞれの前記ログ種別に該当する前記ログエントリに関して作成された前記特徴情報を用いて、それぞれの前記ログ種別について個別に前記分析モデルを作成する
付記1又は2に記載の分析装置。
(付記17)
 前記分析モデルを用いて、前記ログエントリに関する重要度を算出する重要度算出手段と、
 前記ログエントリについて算出された重要度に応じて、当該ログエントリの表示方法を制御可能なユーザインタフェースを生成する表示制御手段と、を更に備える
付記1乃至付記16のいずれかに記載の分析装置。
(付記18)
 前記表示制御手段は、
  表示される前記ログエントリの重要度を表す閾値を設定可能な制御要素を含む前記ユーザインタフェースを生成し、
  前記ユーザインタフェースは、前記閾値以上の重要度が算出された前記ログエントリと、前記閾値未満の重要度が算出された前記ログエントリと、をそれぞれ異なる表示方法を用いて表示する
付記17に記載の分析装置。
(付記19)
 前記表示制御手段は、
  表示される前記ログエントリの重要度を表す閾値を設定可能な制御要素を含む前記ユーザインタフェースを生成し、
  前記ユーザインタフェースは、前記閾値以上の重要度が算出された前記ログエントリを表示し、前記閾値未満の重要度が算出された前記ログエントリの表示を抑制する
付記18に記載の分析装置。
(付記20)
 前記表示制御手段は、
  表示される前記ログエントリの重要度を表す閾値を設定可能な制御要素を含む前記ユーザインタフェースを生成し、
  前記ユーザインタフェースは、前記閾値の重要度が算出された前記ログエントリを、前記閾値未満の重要度が算出された前記ログエントリよりも強調して表示する
付記19に記載の分析装置。
(付記21)
 前記分析モデルは、複数の層を有するニューラルネットワークであり、
 前記特徴抽出手段は、前記重要度情報が付与されていない前記ログエントリについて、前記特徴情報を作成し、
 前記分析モデル作成手段は、前記重要度情報が付与されていない前記ログエントリについて作成された前記特徴情報と、前記重要度情報が付与された前記第1ログエントリについて作成された前記特徴情報と、の両方を用いて、前記分析モデルに関する事前学習を実行する、
付記1乃至付記20のいずれかに記載の分析装置。
(付記22)
 ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成し、
 前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する
ログの分析方法。
(付記23)
 ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成する処理と、
 前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する処理とを、コンピュータに、実行させる
分析プログラムが記録された記録媒体。
 100  分析装置
 101  特徴抽出部
 102  分析モデル作成部
 700  分析装置
 701  特徴抽出部
 702  分析モデル作成部
 703  重要度算出部
 704  表示制御部
 705  動作ログ提供部
 706  教師データ提供部
 2200  分析装置
 2201  特徴抽出部
 2202  情報収集部
 2500  分析装置
 2501  特徴抽出部
 2502  分析モデル作成部
 2503  事前学習部
 2600  分析装置
 2601  特徴抽出部
 2602  分析モデル作成部
 2603  事前学習部
 2701  プロセッサ
 2702  メモリ
 2703  不揮発性記憶装置
 2704  リーダライタ
 2705  記録媒体
 2706  ネットワークインタフェース
 2707  入出力インタフェース

Claims (23)

  1.  ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成可能に構成された特徴抽出手段と、
     前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する分析モデル作成手段と、を備える
    分析装置。
  2.  前記特徴抽出手段は、それぞれの前記第2ログエントリに記録された情報を計数することで作成される情報であるコンテキスト情報を、前記第2特徴量として抽出する
    請求項1に記載の分析装置。
  3.  前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
     前記特徴抽出手段は、ある前記ソフトウェア・プログラムについて記録された全ての前記第2ログエントリに記録された情報を用いて、
      前記ソフトウェア・プログラムの実行過程で実行されたプロセス毎の、前記第2ログエントリの数に関する情報と、
      前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
      それぞれの前記ログ種別について集計した、前記ソフトウェア・プログラムの実行過程でアクセスされたリソースの数に関する情報と、
     のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
    請求項2に記載の分析装置。
  4.  前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
     前記特徴抽出手段は、前記第1ログエントリが記録されたプロセスと同じプロセスについて記録された複数の前記第2ログエントリに記録された情報を用いて、
      前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
      それぞれの前記ログ種別について集計した、前記ソフトウェア・プログラムの実行過程でアクセスされたリソースの数に関する情報と、
      前記ソフトウェア・プログラムの実行過程で記録された前記ログエントリの総数と、前記第1ログエントリが記録されたプロセスと同じプロセスについて記録された前記第2ログエントリの総数と、の割合に関する情報と、
     のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
    請求項2に記載の分析装置。
  5.  前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
     前記特徴抽出手段は、前記第1ログエントリが記録さえたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリに記録された情報を用いて、
      前記第2ログエントリの数を、それぞれの前記ログ種別について集計したヒストグラムを表す情報と、
      前記第1ログエントリが記録されたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリの総数と、前記第1ログエントリが記録されたタイミングから、時系列において特定の範囲内に記録された複数の前記第2ログエントリのうち、前記第1ログエントリと同じプロセスについて記録された前記第2ログエントリの総数と、の割合に関する情報と、
     のいずれか1つ以上を算出することで、前記コンテキスト情報を作成する
    請求項2に記載の分析装置。
  6.  前記特徴抽出手段は、それぞれの前記第2ログエントリに記録された情報から抽出した特徴量を用いて作成される情報であるコンテキスト情報を、前記第2特徴量として抽出する
    請求項1に記載の分析装置。
  7.  前記特徴抽出手段は、前記第1ログエントリに対する前記第1特徴量と同様の特徴量を、各前記第2ログエントリから抽出し、各前記第2ログエントリから抽出した特徴量を用いて、前記第2特徴量を作成する
    請求項1乃至請求項6のいずかれ一項に記載の分析装置。
  8.  前記特徴抽出手段は、
      前記第1ログエントリに記録された情報を文字列及び数値の少なくとも一方を用いて表すデータから、前記第1特徴量を抽出し、
      前記第2ログエントリに記録された情報を文字列及び数値の少なくとも一方を用いて表するデータを、全ての前記第2ログエントリについて統合することで統合データを作成し、その統合データから前記第1ログエントリに対する前記第1特徴量と同様の特徴量を抽出することで、前記第2特徴量を作成する
    請求項7に記載の分析装置。
  9.  前記特徴抽出手段は、
     前記ソフトウェア・プログラムの動作を解析可能な解析装置により前記ソフトウェア・プログラムの動作を解析した結果を表すサマリ情報から、前記第2特徴量を抽出する
    請求項1に記載の分析装置。
  10.  前記特徴抽出手段は、
     前記サマリ情報に含まれる、前記ソフトウェア・プログラムが1以上の特定の活動を実行したか否かを表す情報を、前記第2特徴量として抽出する
    請求項9に記載の分析装置。
  11.  前記第1ログエントリに記録された情報に関連する情報を、情報源から外部コンテキスト情報として取得する情報収集手段を更に備え、
     前記特徴抽出手段は、前記情報収集手段により取得された外部コンテキスト情報に基づいて、第3特徴量を抽出し、
     前記第2特徴量及び第3特徴量の少なくとも一方と、前記第1特徴量と、を用いて前記第1ログエントリに関する前記特徴情報を作成する
    請求項1乃至請求項10のいずれか一項に記載の分析装置。
  12.  前記情報収集手段は、前記ソフトウェア・プログラムの実行過程でアクセスされたリソースの、セキュリティに関する評判を表す情報を、前記外部コンテキスト情報として前記情報源から収集する
     請求項11に記載の分析装置。
  13.  前記第1ログエントリに、あるファイルへのアクセスが記録されている場合、
     前記情報収集手段は、
      そのファイルがマルウェアとして検知されるファイルであるか否か、を表す情報と、
      そのファイルが取得された数を表す情報と、
      そのファイルの信頼度を表す情報と、
     のいずれか1つ以上を、前記外部コンテキスト情報として前記情報源から取得する
    請求項11に記載の分析装置。
  14.  前記第1ログエントリに、あるレジストリへのアクセスが記録されている場合、
     前記情報収集手段は、そのレジストリがマルウェアによりアクセスされるか否かを表す情報を、前記外部コンテキスト情報として前記情報源から取得する
    請求項11に記載の分析装置。
  15.  前記第1ログエントリに、ある通信先への通信が記録されている場合、
     前記情報収集手段は、その通信先のセキュリティに関する評判を表す情報を、前記外部コンテキスト情報として前記情報源から取得する
    請求項11に記載の分析装置。
  16.  前記ログエントリには、当該ログエントリが記録された処理の種別を特定可能なログ種別が記録され、
     前記分析モデル作成手段は、それぞれの前記ログ種別に該当する前記ログエントリに関して作成された前記特徴情報を用いて、それぞれの前記ログ種別について個別に前記分析モデルを作成する
    請求項1又は2に記載の分析装置。
  17.  前記分析モデルを用いて、前記ログエントリに関する重要度を算出する重要度算出手段と、
     前記ログエントリについて算出された重要度に応じて、当該ログエントリの表示方法を制御可能なユーザインタフェースを生成する表示制御手段と、を更に備える
    請求項1乃至請求項16のいずれかに記載の分析装置。
  18.  前記表示制御手段は、
      表示される前記ログエントリの重要度を表す閾値を設定可能な制御要素を含む前記ユーザインタフェースを生成し、
      前記ユーザインタフェースは、前記閾値以上の重要度が算出された前記ログエントリと、前記閾値未満の重要度が算出された前記ログエントリと、をそれぞれ異なる表示方法を用いて表示する
    請求項17に記載の分析装置。
  19.  前記表示制御手段は、
      表示される前記ログエントリの重要度を表す閾値を設定可能な制御要素を含む前記ユーザインタフェースを生成し、
      前記ユーザインタフェースは、前記閾値以上の重要度が算出された前記ログエントリを表示し、前記閾値未満の重要度が算出された前記ログエントリの表示を抑制する
    請求項18に記載の分析装置。
  20.  前記表示制御手段は、
      表示される前記ログエントリの重要度を表す閾値を設定可能な制御要素を含む前記ユーザインタフェースを生成し、
      前記ユーザインタフェースは、前記閾値の重要度が算出された前記ログエントリを、前記閾値未満の重要度が算出された前記ログエントリよりも強調して表示する
    請求項19に記載の分析装置。
  21.  前記分析モデルは、複数の層を有するニューラルネットワークであり、
     前記特徴抽出手段は、前記重要度情報が付与されていない前記ログエントリについて、前記特徴情報を作成し、
     前記分析モデル作成手段は、前記重要度情報が付与されていない前記ログエントリについて作成された前記特徴情報と、前記重要度情報が付与された前記第1ログエントリについて作成された前記特徴情報と、の両方を用いて、前記分析モデルに関する事前学習を実行する、
    請求項1乃至請求項20のいずれかに記載の分析装置。
  22.  ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成し、
     前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する
    ログの分析方法。
  23.  ソフトウェア・プログラムの動作を表す情報が記録されたログエントリである第1ログエントリから抽出した第1特徴量と、前記ログエントリである1以上の第2ログエントリから抽出した、前記第1特徴量とは異なる第2特徴量と、を用いて、前記第1ログエントリに関する特徴情報を作成する処理と、
     前記第1ログエントリに関する前記特徴情報と、当該第1ログエントリに付与された重要度を表す重要度情報と、を1以上含む学習データを用いて、他の前記ログエントリに関する重要度を判定可能な分析モデルを作成する処理とを、コンピュータに、実行させる
    分析プログラムが記録された記録媒体。
PCT/JP2017/023136 2017-06-23 2017-06-23 分析装置、ログの分析方法及び記録媒体 WO2018235252A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2017/023136 WO2018235252A1 (ja) 2017-06-23 2017-06-23 分析装置、ログの分析方法及び記録媒体
JP2019524817A JP6860070B2 (ja) 2017-06-23 2017-06-23 分析装置、ログの分析方法及び分析プログラム
US16/624,667 US20200184072A1 (en) 2017-06-23 2017-06-23 Analysis device, log analysis method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/023136 WO2018235252A1 (ja) 2017-06-23 2017-06-23 分析装置、ログの分析方法及び記録媒体

Publications (1)

Publication Number Publication Date
WO2018235252A1 true WO2018235252A1 (ja) 2018-12-27

Family

ID=64737787

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/023136 WO2018235252A1 (ja) 2017-06-23 2017-06-23 分析装置、ログの分析方法及び記録媒体

Country Status (3)

Country Link
US (1) US20200184072A1 (ja)
JP (1) JP6860070B2 (ja)
WO (1) WO2018235252A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090493A (zh) * 2019-11-25 2020-05-01 中国银行股份有限公司 一种虚拟主机使用饱和度的统计方法及系统
JP2020149553A (ja) * 2019-03-15 2020-09-17 日本電気株式会社 コンピュータプログラム、イベント異常検知方法及びコンピュータ
CN112084495A (zh) * 2019-06-14 2020-12-15 北京奇虎科技有限公司 进程链的分析方法及装置
JP2021015421A (ja) * 2019-07-11 2021-02-12 富士通株式会社 情報処理プログラム、情報処理方法および情報処理装置
JP2021189721A (ja) * 2020-05-29 2021-12-13 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
JPWO2022003868A1 (ja) * 2020-07-01 2022-01-06
WO2022239166A1 (ja) * 2021-05-12 2022-11-17 日本電信電話株式会社 抽出方法、抽出装置及び抽出プログラム
WO2022239161A1 (ja) * 2021-05-12 2022-11-17 日本電信電話株式会社 抽出方法、抽出装置及び抽出プログラム
WO2022239162A1 (ja) * 2021-05-12 2022-11-17 日本電信電話株式会社 決定方法、決定装置及び決定プログラム
JP2023091578A (ja) * 2021-12-20 2023-06-30 エヌ・ティ・ティ・コミュニケーションズ株式会社 選定装置、選定方法および選定プログラム
US11892938B2 (en) 2020-03-16 2024-02-06 International Business Machines Corporation Correlation and root cause analysis of trace data using an unsupervised autoencoder

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108346107B (zh) * 2017-12-28 2020-11-10 创新先进技术有限公司 一种社交内容风险识别方法、装置以及设备
US11120033B2 (en) * 2018-05-16 2021-09-14 Nec Corporation Computer log retrieval based on multivariate log time series
KR102344293B1 (ko) * 2018-10-30 2021-12-27 삼성에스디에스 주식회사 보안 로그 전처리 장치 및 방법
RU2739865C2 (ru) * 2018-12-28 2020-12-29 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного файла
US11200318B2 (en) * 2018-12-28 2021-12-14 Mcafee, Llc Methods and apparatus to detect adversarial malware
US11170789B2 (en) * 2019-04-16 2021-11-09 Microsoft Technology Licensing, Llc Attentive adversarial domain-invariant training
JP6840204B1 (ja) * 2019-09-17 2021-03-10 株式会社日立製作所 業務支援システム及び方法
US11328001B2 (en) * 2020-06-29 2022-05-10 Optum Services (Ireland) Limited Efficient matching of data fields in response to database requests
US11449266B2 (en) * 2020-08-27 2022-09-20 Micron Technology, Inc. Memory sub-system event log management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259168A (ja) * 2001-03-05 2002-09-13 Toshiba Corp ログ特徴を抽出する装置、方法、およびプログラム
JP2014153723A (ja) * 2013-02-04 2014-08-25 Nippon Telegr & Teleph Corp <Ntt> ログ生起異常検知装置及び方法
WO2016092834A1 (ja) * 2014-12-10 2016-06-16 日本電気株式会社 通信監視システム、重要度算出装置及びその算出方法、提示装置、並びにコンピュータ・プログラムが格納された記録媒体

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9609456B2 (en) * 2012-05-14 2017-03-28 Qualcomm Incorporated Methods, devices, and systems for communicating behavioral analysis information
US10708296B2 (en) * 2015-03-16 2020-07-07 Threattrack Security, Inc. Malware detection based on training using automatic feature pruning with anomaly detection of execution graphs
US10511615B2 (en) * 2017-05-05 2019-12-17 Microsoft Technology Licensing, Llc Non-protocol specific system and method for classifying suspect IP addresses as sources of non-targeted attacks on cloud based machines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259168A (ja) * 2001-03-05 2002-09-13 Toshiba Corp ログ特徴を抽出する装置、方法、およびプログラム
JP2014153723A (ja) * 2013-02-04 2014-08-25 Nippon Telegr & Teleph Corp <Ntt> ログ生起異常検知装置及び方法
WO2016092834A1 (ja) * 2014-12-10 2016-06-16 日本電気株式会社 通信監視システム、重要度算出装置及びその算出方法、提示装置、並びにコンピュータ・プログラムが格納された記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YASUSHI OKANO ET AL.: "Data asshuku algorithm o mochiita malware kansen tsushin log no hantei", COMPUTER SECURITY SYMPOSIUM 2016 RONBUNSHU (IPSJ SYMPOSIUM SERIES), vol. 2016, no. 2, pages 640 - 646, ISSN: 1882-0840 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7243329B2 (ja) 2019-03-15 2023-03-22 日本電気株式会社 コンピュータプログラム、イベント異常検知方法及びコンピュータ
JP2020149553A (ja) * 2019-03-15 2020-09-17 日本電気株式会社 コンピュータプログラム、イベント異常検知方法及びコンピュータ
CN112084495A (zh) * 2019-06-14 2020-12-15 北京奇虎科技有限公司 进程链的分析方法及装置
JP2021015421A (ja) * 2019-07-11 2021-02-12 富士通株式会社 情報処理プログラム、情報処理方法および情報処理装置
CN111090493A (zh) * 2019-11-25 2020-05-01 中国银行股份有限公司 一种虚拟主机使用饱和度的统计方法及系统
US11892938B2 (en) 2020-03-16 2024-02-06 International Business Machines Corporation Correlation and root cause analysis of trace data using an unsupervised autoencoder
JP2021189721A (ja) * 2020-05-29 2021-12-13 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
JPWO2022003868A1 (ja) * 2020-07-01 2022-01-06
WO2022003868A1 (ja) * 2020-07-01 2022-01-06 日本電気株式会社 ログ生成システム、ログ生成方法およびコンピュータ可読媒体
JP7421196B2 (ja) 2020-07-01 2024-01-24 日本電気株式会社 ログ生成システム、ログ生成方法およびログ生成プログラム
WO2022239161A1 (ja) * 2021-05-12 2022-11-17 日本電信電話株式会社 抽出方法、抽出装置及び抽出プログラム
WO2022239162A1 (ja) * 2021-05-12 2022-11-17 日本電信電話株式会社 決定方法、決定装置及び決定プログラム
WO2022239166A1 (ja) * 2021-05-12 2022-11-17 日本電信電話株式会社 抽出方法、抽出装置及び抽出プログラム
JP7513205B2 (ja) 2021-05-12 2024-07-09 日本電信電話株式会社 決定方法、決定装置及び決定プログラム
JP2023091578A (ja) * 2021-12-20 2023-06-30 エヌ・ティ・ティ・コミュニケーションズ株式会社 選定装置、選定方法および選定プログラム
JP7317931B2 (ja) 2021-12-20 2023-07-31 エヌ・ティ・ティ・コミュニケーションズ株式会社 選定装置、選定方法および選定プログラム

Also Published As

Publication number Publication date
JPWO2018235252A1 (ja) 2020-04-16
US20200184072A1 (en) 2020-06-11
JP6860070B2 (ja) 2021-04-14

Similar Documents

Publication Publication Date Title
JP6860070B2 (ja) 分析装置、ログの分析方法及び分析プログラム
US20220006828A1 (en) System and user context in enterprise threat detection
CA2933423C (en) Data acceleration
JP2022527511A (ja) サイバーセキュリティ・イベントについての時間関係を推測すること
US20170109657A1 (en) Machine Learning-Based Model for Identifying Executions of a Business Process
KR102399787B1 (ko) 온라인 서비스의 거동 변화의 인식 기법
US20170109676A1 (en) Generation of Candidate Sequences Using Links Between Nonconsecutively Performed Steps of a Business Process
US20170178026A1 (en) Log normalization in enterprise threat detection
US20170109668A1 (en) Model for Linking Between Nonconsecutively Performed Steps in a Business Process
US20170178025A1 (en) Knowledge base in enterprise threat detection
US20170109667A1 (en) Automaton-Based Identification of Executions of a Business Process
WO2012079836A1 (en) Method and system for creating and processing a data rule, data processing program, and computer program product
US20170109639A1 (en) General Model for Linking Between Nonconsecutively Performed Steps in Business Processes
US11816573B1 (en) Robust systems and methods for training summarizer models
US20170109638A1 (en) Ensemble-Based Identification of Executions of a Business Process
WO2019142345A1 (ja) セキュリティ情報処理装置、情報処理方法及び記録媒体
US11836331B2 (en) Mathematical models of graphical user interfaces
CN109886016A (zh) 用于检测异常数据的方法、设备和计算机可读存储介质
Seeliger et al. Learning of process representations using recurrent neural networks
US20170109640A1 (en) Generation of Candidate Sequences Using Crowd-Based Seeds of Commonly-Performed Steps of a Business Process
US20170109637A1 (en) Crowd-Based Model for Identifying Nonconsecutive Executions of a Business Process
Grechanik et al. Differencing graphical user interfaces
Butcher Contract Information Extraction Using Machine Learning
JP2010198498A (ja) 情報処理装置及び情報処理方法及びプログラム
Vanamala Machine Learning Based Approach to Recommend Attack Patterns for Software Requirements Specifications

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019524817

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

Country of ref document: EP

Kind code of ref document: A1