SOFTWARE EVALUATION METHOD AND SOFTWARE EVALUATION DEVICE
20180278645 ยท 2018-09-27
Assignee
Inventors
Cpc classification
International classification
Abstract
A software evaluation method includes obtaining a number of requests from a transmission source other than a transmission source registered in advance from among requests to software, and at least one of an log output amount of logs output through the software and a number of log outputs of the logs, and generating information on evaluation of the software in accordance with the obtained number of requests and at least one of the obtained log output amount and the obtained number of log outputs.
Claims
1. A software evaluation method executed by a computer, the method comprising: obtaining a number of requests from a transmission source other than a transmission source registered in advance from among requests to software, and at least one of an log output amount of logs output through the software and a number of log outputs of the logs; and generating information on evaluation of the software in accordance with the obtained number of requests and at least one of the obtained log output amount and the obtained number of log outputs.
2. The software evaluation method according to claim 1, wherein the information on evaluation of the software is a threshold value used to determine whether the software is used for an attack against a server that stores the logs, the threshold value being for a log output amount per request or a number of log outputs per request.
3. The software evaluation method according to claim 2 further comprising: limiting an operation of the software when the log output amount per request or the number of log outputs per request exceeds the corresponding threshold value.
4. The software evaluation method according to claim 1, wherein the information on the evaluation of the software is a threshold value used to determine whether the software is used for an attack against a server that stores the logs, the threshold value being for a combination of a log output amount per request and a number of log outputs per request.
5. The software evaluation method according to claim 4 further comprising: limiting an operation of the software when the combination of the log output amount per request and the number of log outputs per request exceeds the threshold value.
6. The software evaluation method according to claim 2, wherein the threshold value decreases as a maximum log storage amount set in advance decreases.
7. A software evaluation device comprising: a memory; and a processor coupled to the memory and the processor configured to: obtain a number of requests from a transmission source other than a transmission source registered in advance from among requests to software, and at least one of an log output amount of logs output through the software and a number of log outputs of the logs, and generate information on evaluation of the software in accordance with the obtained number of requests and at least one of the obtained log output amount and the obtained number of log outputs.
8. The software evaluation device according to claim 7, wherein the information on evaluation of the software is a threshold value used to determine whether the software is used for an attack against a server that stores the logs, the threshold value being for a log output amount per request or a number of log outputs per request.
9. The software evaluation device according to claim 8, the processor further configured to: limit an operation of the software when the log output amount per request or the number of log outputs per request exceeds the corresponding threshold value.
10. The software evaluation device according to claim 7, wherein the information on the evaluation of the software is a threshold value used to determine whether the software is used for an attack against a server that stores the logs, the threshold value being for a combination of a log output amount per request and a number of log outputs per request.
11. The software evaluation device according to claim 10, the processor further configured to: limit an operation of the software when the combination of the log output amount per request and the number of log outputs per request exceeds the threshold value.
12. The software evaluation device according to claim 8, wherein the threshold value decreases as a maximum log storage amount set in advance decreases.
13. A non-transitory computer-readable medium storing a software evaluation program that causes a computer to execute a process comprising: obtaining a number of requests from a transmission source other than a transmission source registered in advance from among requests to software, and at least one of an log output amount of logs output through the software and a number of log outputs of the logs; and generating information on evaluation of the software in accordance with the obtained number of requests and at least one of the obtained log output amount and the obtained number of log outputs.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
DESCRIPTION OF EMBODIMENTS
[0033] In the related art, for example, it may be determined that the LaaS has received an attack when a log output amount relating to requests from a specific host is large. Meanwhile, a lot of requests may be received, for example, when unmalicious software is used by many users. In this case, a lot of log output requests from a single piece of software are executed for the LaaS. Thus, when occurrence of an attack is determined only in accordance with a log output amount, unmalicious software is evaluated to be malicious software by mistake.
Example of the Overall Configuration of a System According to an Embodiment
[0034] An embodiment of the technology discussed herein is described below with reference to the drawings.
[0035] The cloud system 1 includes a log monitoring server 2, an application server 3, and a LaaS server 4. The log monitoring server 2, the application server 3, and the LaaS server 4 may communicate with one another through a network such as a local area network (LAN).
[0036] The log monitoring server 2 monitors logs related to an application stored in the application server 3. Examples of the log monitoring server 2 include an information processing device and a computer.
[0037] The application server 3 stores software (application) that has been developed by a user. The application server 3 is, for example, a server used for Platform as a Service (PaaS), which may store an application that has been developed on a platform provided by the application server 3.
[0038] The LaaS server 4 stores and manages the logs related to the application stored in the application server 3.
[0039] The information processing terminal 6 communicates with the application server 3 through the network 5. The information processing terminal 6 transmits a request to the application stored in the application server 3 in response to an operation of the user.
[0040] The system according to the embodiment is not limited to the example illustrated in
[0041] <Example of an Attack Against the LaaS>
[0042] Examples of an attack against the LaaS are described below with reference to drawings.
[0043]
[0044] In the example of
[0045]
[0046] In the example illustrated in
[0047] For example, because the number of requests to the application depends on the number of end users who utilize the application, the number of log outputs depends on the number of end users. However, the cloud operator may not determine the number of end users. Thus, it is difficult for the log monitoring server 2 to determine the presence or absence of an attack in accordance with only the number of log outputs to the LaaS.
[0048] In addition, typically, the cloud operator does not have the authority to refer to the contents of logs output by the service users, so that it is difficult for the log monitoring server 2 to determine the presence or absence of an attack in accordance with the contents of the requests.
[0049] In addition, the log monitoring server 2 may determine whether an attack has occurred, through behavior detection. For example, the log monitoring server 2 may monitors traffics and performs learning, as the behavior detection. In addition, the log monitoring server 2 may determine whether an attack has occurred by detecting an abnormal amount of requests or a request having an abnormal content that are normally not detected, in accordance with the learned contents.
[0050] However, through the application using the LaaS, a large amount or a large number of logs may be output even without a malicious intention. For example, when an unmalicious application through which a large amount or a large number of logs are output, such as an application having an advanced calculation function or the like, is deployed to the cloud system 1, the log monitoring server 2 learns, through behavior detection, that a log output amount of the application is normal. In addition, the log monitoring server 2 may determine a malicious application to be unmalicious by mistake when logs the amount of which is similar to the above-described unmalicious application through which a large amount or a large number of logs are output, are output through the malicious application after the learning.
[0051] As a measure for an attack against the LaaS, FW that restricts a request from a specific IP address may be provided between the cloud system 1 and the network 5. However, if a malicious user deploys an application intended for an attack against the LaaS to the cloud system 1 with the regular procedure, the application may attack the LaaS without going through the FW. Thus, the FW is not a sufficient measure against an attack to the LaaS.
[0052] In addition, examples of the measure against a DoS attack include a method in which a request received at the application server 3 is limited by band control. However, the user may desires to refer to logs on a real-time basis. In this case, the band control may hinder the user's desire.
[0053] <Example of the Log Monitoring Server>
[0054]
[0055] The communication unit 11 transmits and receives various pieces of data to and from the application server 3 and the LaaS server 4.
[0056] The request detection unit 12 detects a request to the application server 3 from a transmission source other than a specific transmission source that has been registered in advance and updates the number of requests of application management information stored in the storage unit 19.
[0057] The transmission source other than the specific transmission source that has been registered in advance is, for example, an external device of the cloud system 1 (for example, the information processing terminal 6 in
[0058] The log output detection unit 13 detects a log output to the LaaS server 4 from the application server 3. In addition, the log output detection unit 13 updates the log output amount and the number of log outputs of the application management information stored in the storage unit 19.
[0059] The obtaining unit 14 obtains the number of requests from the transmission source other than the specific transmission source that has been registered in advance from among requests to the application, at specific time intervals. In addition, the obtaining unit 14 obtains one or both of an amount of logs that have been output through the application and the number of outputs of the logs, at specific time intervals. The obtaining unit 14 obtains, for example, the number of requests, the log output amount, and the number of log outputs that have been recorded in the application management information.
[0060] The update unit 15 calculates the number of log outputs per request and a log output amount per request, for each application, in accordance with the number of requests, the log output amount, and the number of log outputs that have been obtained by the obtaining unit 14.
[0061] In addition, the update unit 15 updates log output distribution information stored in the storage unit 19. The log output distribution information is information indicating distribution of the number of log outputs per request and the log output amount per request.
[0062] The generation unit 16 generates information on evaluation of software, in accordance with the number of requests, and one or all of the log output amount and the number of log outputs that have been obtained by the obtaining unit 14. The information on evaluation of software is a threshold value used to determine whether the application has been used for an attack against the LaaS server 4. In addition, the information on evaluation of software is a threshold value for one or a combination of the log output amount per request and the number of log outputs per request.
[0063] The generation unit 16 generates a threshold value that decreases as the maximum log storage amount that has been set in advance decreases. Processing operations of the calculation unit 16a and the threshold value generation unit 16b are described later in detail.
[0064] The determination unit 17 determines whether the application has been used for an attack against the LaaS server 4 by determining whether one of or a combination of the log output amount per request and the number of log outputs per request exceeds the generated threshold value.
[0065] The control unit 18 takes measures for the application when the determination unit 17 determines that the application has been used for an attack against the LaaS server 4. For example, the control unit 18 controls the operation of the application to be limited.
[0066] For example, the control unit 18 may stop the application that has been determined to be used for an attack against the LaaS server 4. The control unit 18 may limit a communication amount of the application that has been determined to be used for the attack by band control. The control unit 18 may take measures for the application so as to notify the cloud operator of the attack, notify the user of the attack, suppress storage of logs, stop a log output, obtain contents of logs, or the like.
[0067] The storage unit 19 stores application management information, log output amount classification information, log output number classification information, maximum log storage amount setting information, and log output distribution information. The pieces of information stored in the storage unit 19 are described later in detail.
[0068] <Example of the Pieces of Information Stored in the Storage Unit>
[0069] The pieces of information stored in the storage unit 19 are described below.
[0070] In addition, as described above, the number of requests is updated by the request detection unit 12. In addition, the number of log outputs and the log output amount are updated by the log output detection unit 13.
[0071]
[0072]
[0073]
[0074]
[0075] For example, when the user uses an application through which advanced calculation is performed, a large amount of pieces of processing are executed for a single request through the application, such that it is assumed that a large amount of logs are output. When a large amount of logs have been output, it is assumed that that the user sets the maximum log storage amount at a large value.
[0076] In addition, charge may be increased in order to increase the maximum log storage amount, such that the maximum storage amount is likely to be set at a small value in a malicious application. Thus, the log monitoring server 2 may use the maximum log storage amount for determining whether the application has been used for an attack.
[0077] <Example of Processing of the Generation Unit>
[0078] An example of the processing of the generation unit 16 is described below.
[0079] The calculation unit 16a calculates frequency by dividing a total of the number of occurrence times of the combination for each output time ID (C.sub.1 to C.sub.6) of the log output distribution information by a total of all values of the log output distribution information. The calculation unit 16a creates a histogram illustrated in
[0080] In addition, the calculation unit 16a sets, as a reference value Z.sub.all, frequency at a position where a ratio of a value that has been obtained by combining frequency in sections of some output number IDs becomes 99% to the cumulative value of frequency of sections of all of the output number IDs in the normal distribution. The reference value Z.sub.all may be frequency at a position other than the position where the ratio of the value obtained by combining frequency of sections becomes 99% to the cumulative value of frequency of all of the sections. The example illustrated in
[0081] In addition, the calculation unit 16a calculates an average value C.sub.avg of the maximum log storage amounts of the applications in accordance with the maximum log storage amount setting information stored in the storage unit 19. In addition, the calculation unit 16a calculates Z.sub.allC.sub.avg and sets the calculation result as a constant a.
[0082]
[0083] In addition, the threshold value generation unit 16b calculates a/C and sets the calculation result as a reference value Z.sub.thd of the target application. In addition, the threshold value generation unit 16b sets the number of log outputs per request at an intersection of a straight line indicating the threshold value Z.sub.thd and the normal distribution as a threshold value R used for determining whether the application has been used for an attack against the LaaS.
[0084] In the example illustrated in
[0085] As described above, the reference value Z.sub.thd is obtained by a/C, such that the reference value Z.sub.thd becomes larger as the maximum log storage amount C of the target application becomes smaller. In addition, as illustrated in
[0086]
[0087] The calculation unit 16a calculates frequency by dividing a value of each pair of a data amount ID (C.sub.1 to C.sub.6) and an output number ID (D.sub.1 to D.sub.6) of the log output distribution information illustrated in
[0088] The calculation unit 16a creates a three-dimensional histogram illustrated in
[0089] In addition, the calculation unit 16a sets, as the reference value Z.sub.all, frequency at a position where a ratio of a value that has been obtained by combining frequency in sections of some pairs of output number IDs and data amount IDs becomes 99% to the cumulative value of frequency of sections of all of the pairs of output number IDs and data amount IDs in the normal distribution. In the example illustrated in
[0090] In addition, the calculation unit 16a calculates an average value C.sub.avg of maximum log storage amounts of the applications in accordance with maximum log storage amount setting information stored in the storage unit 19. In addition, the calculation unit 16a calculates Z.sub.allC.sub.avg and sets the calculation result as constant a.
[0091]
[0092] In addition, the threshold value generation unit 16b calculates a/C, and sets the calculation result as the reference value Z.sub.thd of the target application. In addition, the threshold value generation unit 16b sets a curve R where a plane that passes through the threshold value Z.sub.thd and the normal distribution intersect, as a threshold value used to determine whether the target application has been used for an attack against the LaaS server 4.
[0093] The threshold value is a threshold value for a pair of the number of log outputs per request and a log output amount per request. For example, in
[0094] In the example of
[0095] In addition, the log monitoring server 2 may easily detect an attack by which both the number of log outputs and a log output amount are caused to be increased, by using both a log output amount per request and the number of log outputs per request.
[0096] <Flowchart Illustrating a Flow of Processing According to the Embodiment>
[0097]
[0098] When the request detection unit 12 does not detect a request to the application server 3 from the transmission source other than the specific transmission source that has been registered in advance (NO in Step S102), the request detection unit 12 waits for detection of a request.
[0099]
[0100] When the log output detection unit 13 does not detect a log output to the LaaS server 4 from the application server 3 (NO in Step S201), the log output detection unit 13 waits for detection of a log output.
[0101]
[0102] The obtaining unit 14 obtains the number of requests from a transmission source other than the specific transmission source that has been registered in advance from among requests to the target application, and one of or both an amount of logs that has been output through the application and the number of outputs of the logs (Step S303). For example, the obtaining unit 14 obtains the number of requests, a log output amount, and the number of log outputs of the target application, which have been recorded in the application management information.
[0103] The update unit 15 calculates the number of log outputs per request and a log output amount per request, in accordance with the number of requests, the log output amount, and the number of log outputs that have obtained by the obtaining unit 14 (Step S304).
[0104] In addition, the update unit 15 updates the log output distribution information stored in the storage unit 19 in accordance with the calculation result of Step S304 (Step S305). The update unit 15 updates the log output distribution information (for example,
[0105] In addition, the update unit 15 initializes the number of requests, the log output amount, and the number of log outputs of the target application in the application management information (Step S306). For example, the update unit 15 sets, at zero, the number of requests, the log output amount, and the number of log outputs of the target application in the application management information. The log monitoring server 2 ends the repetition processing when the processing of Steps S303 to S306 is completed for all of the applications included in the application management information (Step S307).
[0106] The calculation unit 16a calculates frequency by dividing a value of each pair of a data amount ID and an output number ID of the log output distribution information by a total of all values in the log output distribution information (Step S311). When the calculation unit 16a generates a threshold value for the number of log outputs, the calculation unit 16a may calculate frequency by dividing a total of the total number of occurrence times for each output number ID of the log output distribution information by a total of all of the values of the log output distribution information. When the calculation unit 16a generates a threshold value for a log output amount, the calculation unit 16a may calculate frequency by dividing a total of the number of occurrence times for each output amount ID of the log output distribution information by the total of all of the values of the log output distribution information.
[0107] The calculation unit 16a creates a histogram in accordance with the calculated frequency (Step S312). In addition, the calculation unit 16a calculates an approximate normal distribution by assuming that, in the created histogram, the number of outputs has a similar distribution even in an area of negative values (Step S313).
[0108] The calculation unit 16a calculates a reference value Z.sub.all in accordance with the ratio of frequency included in the normal distribution (Step S314). For example, the calculation unit 16a sets, as a reference value Z.sub.all, frequency at a position where the ratio of frequency becomes a specific ratio to the cumulative value of frequency in the normal distribution.
[0109] In addition, the calculation unit 16a calculates an average value C.sub.avg of the maximum log storage amounts of the applications in accordance with the maximum log storage amount setting information stored in the storage unit 19 (Step S315). In addition, the calculation unit 16a calculates Z.sub.allC.sub.avg and sets the calculation result as a constant a (Step S316).
[0110] The log monitoring server 2 starts repetition processing for each of the applications (Step S321). The threshold value generation unit 16b obtains the maximum log storage amount C of the target application from the maximum log storage amount setting information stored in the storage unit 19 (Step S322).
[0111] In addition, the threshold value generation unit 16b calculates a/C and sets the calculation result as a reference value Z.sub.thd of the target application (Step S323). In addition, the threshold value generation unit 16b sets a threshold value R used to determine whether the application has been used for an attack against LaaS, in accordance with the threshold value Z.sub.thd and the normal distribution that has been calculated in Step S313 (Step S324).
[0112] In addition, when the threshold value generation unit 16b generates a threshold value R for one of the number of log outputs and a log output amount, the threshold value generation unit 16b sets, as the threshold value R, the number of log outputs at an intersection of the straight line indicating the threshold value Z.sub.thd and the normal distribution. When the threshold value generation unit 16b generates a threshold value for a pair of the number of log outputs per request and a log output amount per request, the threshold value generation unit 16b sets, as a threshold value, a curve R where a plane that passes through the threshold value Z.sub.thd and the normal distribution intersect (see
[0113] The determination unit 17 determines whether one of or a combination of the log output amount per request and the number of log outputs per request exceeds the generated threshold value (Step S325). When YES is determined in Step S325, the control unit 18 takes measures for the application (Step S326). For example, the control unit 18 controls an operation of the application to be limited.
[0114] When the log monitoring server 2 executes the processing of Steps S322 to S326 for all of the applications, the log monitoring server 2 ends the repetition processing (Step S327). When the log monitoring server 2 receives a monitoring end instruction from the cloud operator or the like (YES in Step S328), the log monitoring server 2 ends the monitoring processing. When the log monitoring server 2 does not receive a monitoring end instruction from the cloud operator or the like (NO in Step S328), the flow returns to Step S301.
[0115] As described above, the log monitoring server 2 determines whether the application has been used for an attack against the LaaS server 4, in accordance with one of or both of the log output amount per request and the number of log outputs per request, and takes measures for the application.
[0116] Thus, for example, the log monitoring server 2 may detect a malicious application (application used for an attack) through which a large amount or a large number of logs are outputs regardless of a small number of requests. In addition, the log monitoring server 2 suppresses determination of an unmalicious application to be malicious by mistake when a larger amount or a larger number of logs than the normal operation are output due to an increase in requests to the application. That is, the log monitoring server 2 may improve determination accuracy of a malicious application.
[0117] In addition, the log monitoring server 2 performs determination using the number of requests from an external transmission source (transmission source that is not registered in advance), which is outside the cloud system 1. Thus, the log monitoring server 2 may detect a malicious application when two or more applications in the cloud system 1 send requests to each other.
[0118] In addition, the log monitoring server 2 generates a threshold value by using a maximum log storage amount that has been set by the user. Thus, the log monitoring server 2 may predict an amount of logs that may be output through an application to some extent and suppress determination of an application through which many logs are steadily output to be a malicious application by mistake.
[0119] In addition, the maximum log storage amount is likely to be set at a small value in a malicious application, such that the log monitoring server 2 may further improve determination accuracy of a malicious application by using the maximum log storage amount.
[0120] <Example of a Hardware Configuration of the Log Monitoring Server>
[0121] An example of the hardware configuration of the log monitoring server 2 is described below with reference to the example of
[0122] The processor 111 executes a program that has been deployed to the RAM 112. As the program to be executed, a software evaluation program that executes the processing according to the embodiment may be applied.
[0123] The ROM 113 is a nonvolatile storage device that stores the program deployed to the RAM 112. The auxiliary storage device 114 is a storage device that stores various pieces of information, and for example, a hard disk drive, a semiconductor memory, or the like may be applied to the auxiliary storage device 114. The medium connection unit 115 is provided so as to be allowed to be coupled to a portable recording medium 118.
[0124] As the portable recording medium 118, a portable memory, an optical disk (for example, a compact disc (CD) or a digital versatile disc (DVD)), a semiconductor memory, or the like may be applied. The software evaluation program used to execute the processing according to the embodiment may be recorded in the portable recording medium 118.
[0125] The storage unit 19 illustrated in
[0126] Each of the RAM 112, the ROM 113, the auxiliary storage device 114, and the portable recording medium 118 is an example of a computer-readable tangible storage medium. These tangible storage mediums do not include a transitory medium such as signal carrier waves.
OTHER
[0127] The technology discussed herein is not limited to the above-described embodiments, and applies various configurations or embodiments within the range without departing from the gist of the technology discussed herein.
[0128] All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.