The present invention relates to a determination device, a determination method, and a determination program for determining whether or not an attack has succeeded.
In related art, a technique for detecting an attack on a web server, or the like, has been proposed. However, if all attacks are detected and alerts are issued, a maintenance person or a monitoring person may overlook the alerts. It is therefore preferable to issue an alert only in a case where an attack has succeeded. Here, in related art, there is a technique of determining whether or not an attack has succeeded by inspecting a response when the attack is made on a web server, or the like (see Patent Literature 1).
Patent Literature 1: Japanese Patent No. 6708794 B
However, the related art is based on the premise that a trace of an attack appears in a response when the attack is made on a web server, or the like. Thus, for example, as will be described below, for an attack in which a trace of the attack does not explicitly appear in a response, it cannot be determined whether or not the attack has succeeded.
[Example 1: Case of Authentication Bypass] For example, it is assumed that a web application /login.php is vulnerable to SQL injection and the following attack is made.
If this attack succeeds, an attacker can log in as an admin without knowing a password of an admin user. Even if this attack succeeds, a trace of the attack does not appear in content of a response.
[Example 2: Information Leakage] For example, it is assumed that a web application /show.php for displaying personal information is vulnerable to SQL injection, and the following attack is made.
If this attack succeeds, an attacker can not only browse only information on alice but also can browse information other than alice without knowing a password. Also in this attack, even if the attack succeeds, a trace of the attack does not appear in content of a response.
In addition, each of the above attacks is an attack against vulnerability of a function of the web application, and damage of the attack varies depending on the function of the web application, so that it is difficult to determine whether or not the attack has succeeded.
It is therefore an object of the present invention to solve the above-described problem and determine whether or not an attack has succeeded even in a case of an attack causing different damage in accordance with a function of a web application.
In order to solve the above problem, the present invention includes: an attack detection unit configured to detect an attack causing different damage in accordance with a function of a web application of a request destination using a URL of the request destination in a communication log in which an attack is to be detected and specify whether or not there is a login form in the URL of the request destination, a response size to a request, and a status code from the communication log in which the attack has been detected; a success/failure determination unit configured to determine whether or not the attack has succeeded using whether or not there is a login form in the URL of the request destination, a response size to a request, or a status code, or any combination thereof, for the communication log in which the attack has been detected; and a determination result output unit configured to output a result of the determination.
According to the present invention, it is possible to determine whether or not an attack has succeeded even in a case of an attack causing different damage in accordance with a function of a web application which is a target of the attack.
Hereinafter, modes for carrying out the present invention (embodiments) will be described with reference to the drawings. The present invention is not limited to the embodiments described below.
[Outline] First, outline of a determination device 10 according to the present embodiment will be described with reference to
Here, a case will be described as an example where the request to the web server is a request indicated by reference numerals 101 and 102, the status code for the request indicated by the reference numeral 101 is “302”, and a response size for the request indicated by the reference numeral 102 is “10,000”.
In this case, the determination device 10 specifies the request indicated by the reference numeral 101 as an authentication bypass attack using a detection signature (for example, “OR.*=.*#”) of the attack causing different damage in accordance with the function of the web application and determines that the attack has succeeded from the status code (“302”). In addition, the determination device 10 specifies the request indicated by the reference numeral 102 as an information leakage attack using a detection signature of the attack causing different damage in accordance with the function of the web application and determines that the attack has succeeded from the response size (“10,000”).
According to such a determination device 10, it is possible to determine whether or not an attack has succeeded even in a case of an attack causing different damage in accordance with the function of the web application which is a target of the attack.
[Configuration Example] Next, a configuration example of the determination device 10 will be described. The determination device 10 includes a storage unit 11 and a control unit 12. The storage unit 11 stores data to be referred to when the control unit 12 executes various kinds of processing and data generated by execution of various kinds of processing.
For example, the storage unit 11 stores a first communication log that is a communication log to be used to create a function profile, a second communication log that is a communication log in which an attack is to be detected, a function profile created by the control unit 12 (details will be described later), detection data (details will be described later), determination result data as to whether or not the attack has succeeded, and the like. For example, the first communication log and the second communication log are input through an input/output unit (not illustrated) of the determination device 10.
For example, as illustrated in
The control unit 12 controls the entire determination device 10. The control unit 12 includes a function profile creation unit 121, an attack detection unit 122, a success/failure determination unit 123, and a determination result output unit 124.
The function profile creation unit 121 creates profile information (function profile) indicating information such as whether or not there is a login form and a range of a response size for each function of the web application on the basis of a communication log of normal communication performed between an external device and the web application.
For example, the function profile creation unit 121 extracts a communication log of normal communication (communication other than an attack) from the first communication log illustrated in
Then, the function profile creation unit 121 creates a function profile indicating information such as whether or not there is a login form, the range of the response size, and number of a related request for each identification information (profile ID) of the function of the web application. The function profile creation unit 121 stores the created function profile in the storage unit 11.
For example, the function profile illustrated in
Further, the function profile indicates that there is no login form in/show.php of the web application, and the range of the normal response size to a request for the function is [0, 100]. In addition, the function profile indicates that the related request is [2].
The description returns to
For example, in a case where a regular expression “OR.*=.*#” is set as an attack detection signature, the attack detection unit 122 detects a communication log in which an URL of the request destination includes “OR.*=.*#” among the communication logs indicated in the second communication log, as a communication log of an attack causing different damage in accordance with the function of the web application.
As an example, the attack detection unit 122 detects Nos. 4, 5, and 6 in the second communication log as an attack communication log using the regular expression “OR.*=.*#” as an attack detection signature (see
Note that the attack detection signature to be used by the attack detection unit 122 for attack detection may be a regular expression “OR (1|‘t’) (#|--)”, a regular expression “.+[′″] (#|--)”, or the like.
The description returns to
For example, the success/failure determination unit 123 determines whether or not the attack has succeeded by collating whether or not there is a login form in the URL of the request destination, the response size, and the function profile information (see
The success/failure determination unit 123 determines whether or not the attack has succeeded according to the following two conditions using, for example, the detection data and the function profile information (see
Note that whether or not the response size significantly exceeds the range of the normal response size is determined, for example, by obtaining standard deviation σ of the response size and determining whether or not the response size in the communication log in which the attack has been detected exceeds n×σ. Note that n is a constant designated by a user of the determination device 10. For example, n=3σ.
For example, the communication log indicated in No. 4 of
The communication log indicated by No. 5 in
Furthermore, the communication log indicated in No. 6 of
The description returns to
According to such a determination device 10, it is possible to determine whether or not the attack has succeeded even in a case where an attack causing different damage in accordance with the function of the web application which is the attack target is made.
[Example of Processing Procedure] Next, with reference to
When the determination device 10 acquires a new communication log (S1), the determination device 10 determines whether or not the communication log is detected by the attack detection unit 122 as a corresponding attack (attack causing different damage in accordance with the function of the web application) (S2).
Then, in a case where the communication log acquired in S1 is not detected by the attack detection unit 122 as the corresponding attack (attack causing different damage in accordance with the function of the web application) (No in S2), the function profile creation unit 121 creates a profile (function profile) for each function (URI) of the web application using the communication log (S3). Then, the function profile creation unit 121 stores the function profile created in S3 in the storage unit 11.
On the other hand, in a case where the communication log acquired in S1 is detected as the corresponding attack (attack causing different damage in accordance with the function of the web application) by the attack detection unit 122 (Yes in S2), the function profile creation unit 121 ends the processing without performing processing of creating a function profile using the communication log.
Next, an example of procedure in which the determination device 10 determines whether or not the attack has succeeded using the function profile will be described with reference to
First, when the determination device 10 acquires a new communication log (S11), the attack detection unit 122 determines whether or not the communication log is detected as a corresponding attack (attack causing different damage in accordance with the function of the web application) (S12). In a case where the communication log is detected by the attack detection unit 122 as the corresponding attack (attack causing different damage in accordance with the function of the web application) (Yes in S12), the success/failure determination unit 123 determines whether the attack has succeeded or has failed on the basis of the function profile (S13). Then, the determination result output unit 124 outputs the determination result in S13 (S14). On the other hand, in a case where the communication log is not detected as the corresponding attack (attack causing different damage in accordance with the function of the web application) by the attack detection unit 122 (No in S12), the processing ends.
By performing the above processing by the determination device 10, it is possible to determine whether or not the attack has succeeded even in a case of an attack causing different damage in accordance with the function of the web application which is the attack target. As a result, a maintenance person or an administrator can separate an alert to be prioritized and an alert not to be prioritized with respect to the attack described above, and thus, can efficiently perform the security operation.
[Other Embodiments] Note that the attack detection unit 122 in the determination device 10 may be provided outside the determination device 10. For example, as illustrated in (1) and (2) of
[System Configuration and Others] Each component of each unit illustrated in the drawings is functionally conceptual and does not necessarily need to be physically configured as illustrated in the drawings. In other words, a specific form of distribution and integration of individual devices is not limited to the illustrated form, and all or part thereof can be functionally or physically distributed and integrated in any unit according to various loads, usage conditions, and the like. Further, all or any part of each processing function performed in each device can be implemented by a CPU and a program to be executed by the CPU or can be implemented as hardware by wired logic.
In the processing described in the above embodiment, all or part of processing described as being automatically performed may be manually performed, or all or part of processing described as being manually performed may be automatically performed by a known method. In addition, the processing procedure, the control procedure, the specific names, and the information including various types of data and parameters illustrated in the above document and the drawings can be freely changed unless otherwise specified.
[Program] The determination device 10 described above can be implemented by installing a program in a desired computer as package software or online software. For example, by causing an information processing device to perform the above-described program, the information processing device can be caused to function as the determination device 10. The information processing device mentioned here includes a desktop or a laptop personal computer. In addition, the information processing device also includes mobile communication terminals such as a smartphone, a mobile phone, and a personal handy-phone system (PHS) and terminals such as a personal digital assistant (PDA).
In a case where a terminal device to be used by a user may be implemented as a client, the determination device 10 may also be implemented as a server device that provides a service related to the above-described processing to the client. In this case, the server device may be implemented as a web server or may be implemented as a cloud that provides a service regarding the above-described processing by outsourcing.
The memory 1010 includes a read only memory (ROM) 1011 and a random access memory (RAM) 1012. The ROM 1011 stores, for example, a boot program such as a basic input output system (BIOS). The hard disk drive interface 1030 is connected to a hard disk drive 1090. The disk drive interface 1040 is connected to a disk drive 1100. For example, a removable storage medium such as a magnetic disk and an optical disc is inserted into the disk drive 1100. The serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120. The video adapter 1060 is connected to, for example, a display 1130.
The hard disk drive 1090 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. In other words, a program that defines each kind of processing to be executed by the determination device 10 is implemented as the program module 1093 in which codes executable by the computer are described. The program module 1093 is stored in, for example, the hard disk drive 1090. For example, the program module 1093 executing similar processing to the functional configurations in the determination device 10 is stored in the hard disk drive 1090. Note that the hard disk drive 1090 may be replaced with a solid state drive (SSD).
Data to be used in the processing of the above embodiments is stored in, for example, the memory 1010 or the hard disk drive 1090 as the program data 1094. In addition, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1090 into the RAM 1012 as necessary and executes the program module 1093.
Note that the program module 1093 and the program data 1094 are not limited to being stored in the hard disk drive 1090, and may be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program module 1093 and the program data 1094 may be stored in another computer connected via a network (local area network (LAN), wide area network (WAN), or the like). Then, the program module 1093 and the program data 1094 may be read by the CPU 1020 from another computer via the network interface 1070.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2021/015718 | 4/16/2021 | WO |