WO2016006520A1 - 検知装置、検知方法及び検知プログラム - Google Patents

検知装置、検知方法及び検知プログラム Download PDF

Info

Publication number
WO2016006520A1
WO2016006520A1 PCT/JP2015/069073 JP2015069073W WO2016006520A1 WO 2016006520 A1 WO2016006520 A1 WO 2016006520A1 JP 2015069073 W JP2015069073 W JP 2015069073W WO 2016006520 A1 WO2016006520 A1 WO 2016006520A1
Authority
WO
WIPO (PCT)
Prior art keywords
request
unauthorized access
query
detection
service server
Prior art date
Application number
PCT/JP2015/069073
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 CN201580036747.5A priority Critical patent/CN106663166A/zh
Priority to JP2016532900A priority patent/JPWO2016006520A1/ja
Priority to US15/318,855 priority patent/US20170155669A1/en
Priority to EP15819473.8A priority patent/EP3144839A4/en
Publication of WO2016006520A1 publication Critical patent/WO2016006520A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Definitions

  • the present invention relates to a detection device, a detection method, and a detection program.
  • WAF Web Application Firewall
  • the conventional technology has a problem that unknown unauthorized access to the server cannot be detected.
  • the above-described WAF needs to retain a known unauthorized access signature, and thus cannot cope with an attack exploiting a vulnerability not yet known to the world (zero-day attack).
  • the server may be hijacked by an attacker and remotely operated. Since the server has access to the database, an attacker could remotely operate the server and access the database, which could leak the database data and tamper with it.
  • an object of the present invention is to detect unauthorized access made from a server to a database due to an attack from an attacker.
  • the disclosed detection apparatus obtains first request information related to a first request transmitted from a terminal operated by a user to a service server that provides a service.
  • a first acquisition unit a second acquisition unit that acquires second request information related to a second request transmitted from the service server to a storage device that stores the information related to the service, and the first request information,
  • a detection unit configured to detect the second request as an unauthorized access to the storage device when the relation with the second request information is different from a normal pattern.
  • FIG. 1 is a configuration diagram illustrating an outline of a system to which an unauthorized access detection apparatus according to the first embodiment is applied.
  • FIG. 2 is a flowchart showing the flow of processing in the unauthorized access detection apparatus according to the first embodiment.
  • FIG. 3 is a diagram for explaining the effect of the unauthorized access detection device according to the first embodiment.
  • FIG. 4 is a flowchart showing the flow of processing in the unauthorized access detection apparatus according to the second embodiment.
  • FIG. 5 is a configuration diagram illustrating an outline of a system to which the unauthorized access detection device according to the third embodiment is applied.
  • FIG. 6 is a diagram illustrating an example of information stored in the text pattern storage unit according to the third embodiment.
  • FIG. 1 is a configuration diagram illustrating an outline of a system to which an unauthorized access detection apparatus according to the first embodiment is applied.
  • FIG. 2 is a flowchart showing the flow of processing in the unauthorized access detection apparatus according to the first embodiment.
  • FIG. 3 is a diagram for explaining the effect
  • FIG. 7 is a flowchart showing a flow of processing in the unauthorized access detection apparatus according to the third embodiment.
  • FIG. 8 is a diagram illustrating an example of information stored in the text pattern storage unit according to the fourth embodiment.
  • FIG. 9 is a flowchart showing a flow of processing in the unauthorized access detection apparatus according to the fourth embodiment.
  • FIG. 10 is a configuration diagram illustrating an outline of a system to which the unauthorized access detection apparatus according to the fifth embodiment is applied.
  • FIG. 11 is a diagram illustrating an example of information stored in the session information DB according to the fifth embodiment.
  • FIG. 12 is a diagram illustrating an example of information stored in the query pattern storage unit according to the fifth embodiment.
  • FIG. 13 is a flowchart showing the flow of processing in the unauthorized access detection apparatus according to the fifth embodiment.
  • FIG. 14 is a configuration diagram illustrating an outline of a system to which an unauthorized access detection device according to another embodiment is applied.
  • FIG. 15A is a configuration diagram illustrating an overview of a system to which an unauthorized access detection device according to another embodiment is applied.
  • FIG. 15B is a configuration diagram illustrating an outline of a system to which an unauthorized access detection device according to another embodiment is applied.
  • FIG. 16 is a diagram illustrating a computer that executes a detection program.
  • FIG. 1 is a configuration diagram illustrating an outline of a system to which an unauthorized access detection apparatus according to the first embodiment is applied.
  • the system includes a service server 10, a DB (Database) 20, log acquisition devices 30 and 40, and an unauthorized access detection device 50.
  • DB Database
  • the processing of each of these units will be described.
  • the service server 10 is, for example, a web application server that provides various network services (hereinafter also simply referred to as services). For example, the service server 10 receives a request via the Internet 5 from a terminal (not shown) operated by the user. This request is, for example, an HTTP (Hypertext Transfer Protocol) request or an HTTPS (Hypertext Transfer Protocol Secure) request. The service server 10 performs information processing in response to the received request and responds to the terminal.
  • HTTP Hypertext Transfer Protocol
  • HTTPS Hypertext Transfer Protocol Secure
  • the service server 10 when responding to the terminal, issues a query for requesting data search, update, deletion, etc., as necessary, and transmits it to the DB 20. Then, the service server 10 receives the query execution result from the DB 20 and responds to the terminal.
  • the DB 20 stores information related to services provided by the service server 10. For example, the DB 20 receives a query from the service server 10 and executes processing described in the query. Then, the DB 20 transmits the query execution result to the service server 10.
  • the information held in the DB 20 is not limited to the SQL format, and may be managed in a KVS (Key-Value Store) format. In this case, the request transmitted from the service server 10 to the DB 20 is described in the KVS format instead of the query.
  • the DB 20 is an example of a storage device.
  • the log acquisition devices 30 and 40 acquire and record logs related to communication.
  • the log acquisition device 30 acquires and records a log of communication that the service server 10 exchanges via the Internet 5.
  • the log acquisition device 40 acquires and records a log of communication exchanged between the service server 10 and the DB 20.
  • the log acquisition devices 30 and 40 are synchronized in time by, for example, NTP (Network Time Protocol).
  • NTP Network Time Protocol
  • HTTPS request HyperText Transfer Protocol
  • the request body is encrypted.
  • the log acquisition device 30 By making the log acquisition device 30 a reverse proxy of the service server 10, the request is made on the log acquisition device 30 side. Since decryption is possible, the request information can be transmitted to the unauthorized access detection device 50.
  • the log acquisition device 30 includes a request acquisition unit 31, and the log acquisition device 40 includes a query acquisition unit 41.
  • the request acquisition unit 31 acquires request information that is information related to a request transmitted from the terminal to the service server 10. Then, the request acquisition unit 31 transmits the acquired request information to the unauthorized access detection device 50.
  • the request information transmitted to the unauthorized access detection device 50 is recorded in a predetermined storage unit (not shown) inside the unauthorized access detection device 50.
  • the request acquisition unit 31 is an example of a first acquisition unit.
  • the request acquisition unit 31 acquires at least the reception time when the request is received by the service server 10 as the request information. Each time the request acquisition unit 31 acquires the reception time, the request acquisition unit 31 transmits the acquired reception time to the unauthorized access detection device 50 and records it in the storage unit. Note that the request acquisition unit 31 may acquire the request text and the IP (Internet Protocol) address of the transmission source user and transmit the request body to the unauthorized access detection device 50 without being limited to the reception time of the request.
  • IP Internet Protocol
  • the query acquisition unit 41 acquires query information that is information related to a query transmitted from the service server 10 to the DB 20. Then, the query acquisition unit 41 transmits the acquired query information to the unauthorized access detection device 50.
  • the query information transmitted to the unauthorized access detection device 50 is recorded in a predetermined storage unit (not shown) inside the unauthorized access detection device 50.
  • the query acquisition unit 41 is an example of a second acquisition unit.
  • the query acquisition unit 41 acquires at least the reception time when the query is received by the DB 20 as the query information. And whenever the query acquisition part 41 acquires reception time, it transmits the acquired reception time to the unauthorized access detection apparatus 50, and records it on a memory
  • the unauthorized access detection device 50 detects unauthorized access.
  • the unauthorized access detection device 50 monitors information exchanged between the Internet 5 and the DB 20 to detect unauthorized access to the DB 20.
  • the unauthorized access detection device 50 includes a detection unit 51.
  • the detection unit 51 detects the query as unauthorized access to the DB 20 when the relation between the request information and the query information is different from the normal pattern. For example, the detection unit 51 compares the reception time of the request with the reception time of the query, and if the request is not received between the reception time of the query and a predetermined time before, the detection unit 51 determines that the query is different from the normal pattern. Is detected as unauthorized access.
  • the unauthorized access is detected because the normal pattern that the request is received by the service server 10 before the query is issued by the service server 10 is related to the request information and the query information. Because there is. In other words, if the query is received by the DB 20 even though this request has not been received, the query is considered to be unauthorized access. For example, if the service server 10 has an average time from request reception to query transmission of 0.1 second, the request is received in one second from the query reception time one second to the query reception time. Is a normal pattern. In this case, if the request is not received within 1 second before the query reception time, the detection unit 51 detects the query as an unauthorized access as being different from the normal pattern.
  • this value is managed by the unauthorized access detection device 50 according to the performance of the service server 10 or the like (or the load status of the DB 20, the network congestion status, etc.). Can be arbitrarily set by the person.
  • FIG. 2 is a flowchart showing the flow of processing in the unauthorized access detection apparatus according to the first embodiment.
  • the detection unit 51 of the unauthorized access detection device 50 starts processing when the processing timing comes (Yes in step S ⁇ b> 101). For example, the detection unit 51 starts processing when a query is acquired from the log acquisition device 40. Until the processing timing comes (No in step S101), the detection unit 51 is in a standby state.
  • the detection unit 51 determines whether or not a request has been received between a query reception time and a predetermined time before (step S102). For example, if the reception time of the query received by the DB 20 is 8:22:10, the detection unit 51 has received a request from the service server 10 between 8: 22: 9 and 10 seconds. It is determined whether or not. If a request has been received between the query reception time and a predetermined time before (Yes in step S102), the detection unit 51 determines that the query is not unauthorized access (step S103).
  • Step S104 determines that the query is unauthorized access.
  • the detection unit 51 may start the process of FIG. 2 at a predetermined interval (for example, at an interval of 1 second).
  • the above processing (steps S102 to S104) is executed for all queries acquired from the end of the previous processing to the present (current processing start time).
  • the unauthorized access detection device 50 acquires request information regarding a request transmitted from the terminal to the service server 10. Then, the unauthorized access detection device 50 acquires query information related to the query transmitted from the service server 10 to the DB 20. The unauthorized access detection device 50 detects the query as unauthorized access to the DB 20 when the relationship between the request information and the query information is different from the normal pattern of the request from which the query is issued. For this reason, the unauthorized access detection device 50 can detect unauthorized access made to the database from the server by an attack from an attacker.
  • FIG. 3 is a diagram for explaining the effect of the unauthorized access detection device according to the first embodiment.
  • an attacker who succeeded in remote operation of the server by a zero-day attack operates the service server 10 remotely (1) and issues a query to the DB 20 (2) and is stored in the DB 20 Collect and falsify existing information.
  • the user transmits a request to the service server 10 (3), and a query is issued to the DB 20 (4), thereby accessing information stored in the DB 20.
  • the unauthorized access detection apparatus 50 determines whether or not the query is normal based on the relationship between the normal request and the query, that is, a normal pattern. For this reason, the unauthorized access detection device 50 can cope with a zero-day attack.
  • the unauthorized access detection device 50 acquires request information and query information from individual log acquisition devices 30 and 40 different from the service server 10. According to this, even when the service server 10 is hijacked by an unknown attacker, the request information and the query information can be acquired, so that unauthorized access can be detected.
  • the unauthorized access detection device 50 has the same configuration as the unauthorized access detection device 50 shown in FIG. 1, but part of the processing in the detection unit 51 is different.
  • the description will be focused on the points that are different from the first embodiment, and the description of the points having the same functions as those described in the first embodiment will be omitted.
  • the detection unit 51 counts the number of requests and the number of queries received in a predetermined period, respectively, and if the ratio of the number of queries to the number of requests exceeds a predetermined threshold, Those queries are detected as unauthorized access as different from the normal pattern.
  • the detection of unauthorized access as described above is based on the ratio of the number of queries to the number of requests in a predetermined period (hereinafter also referred to as a query issue rate) as a relation between request information and query information. This is because there is a normal pattern that) is almost constant. In other words, if the number of queries is too large for the number of requests in the same period, it is considered that unauthorized access is included in those queries. For example, in the service server 10 where the query issue rate is about 0.1 (one query is issued for 10 requests), if there is a period when the query issue rate has increased to about 0.3, The detection unit 51 detects that there is a query issued during that period due to unauthorized access as being different from the normal pattern. Although the case where the threshold is 0.3 has been described here, the administrator of the unauthorized access detection device 50 can arbitrarily set this value.
  • FIG. 4 is a flowchart showing the flow of processing in the unauthorized access detection apparatus according to the second embodiment.
  • the detection unit 51 of the unauthorized access detection device 50 starts processing when the processing timing comes (step S201 Yes). For example, the detection unit 51 starts processing at a predetermined interval (for example, every one second). Until the processing timing comes (No in step S201), the detection unit 51 is in a standby state.
  • the detection unit 51 counts the number of requests and the number of queries received in a predetermined period (step S202). For example, the detection unit 51 counts the number of requests received by the service server 10 in the immediately preceding one second and the number of queries received by the DB 20 at the same time.
  • the detection part 51 determines whether the query issue rate in a predetermined period is less than a threshold value (step S203). For example, if the number of requests counted in step S202 is “100” and the number of queries is “50”, the detection unit 51 calculates that the query issue rate is “0.5”. Then, the detection unit 51 determines whether or not the calculated query issue rate “0.5” is less than a threshold value.
  • the detection unit 51 determines that the query in that period is not unauthorized access (step S204).
  • the detection unit 51 determines that the query in that period is unauthorized access (step S205).
  • the example of FIG. 4 is only an example.
  • the processing start interval, the period for counting requests and queries, and the threshold value may be changed as appropriate by the administrator of the unauthorized access detection device 50.
  • the unauthorized access detection device 50 counts the number of requests and the number of queries received in a predetermined period, respectively, and the ratio of the number of queries to the number of requests exceeds a predetermined threshold. For example, it is detected that there is an illegal access in these queries as different from the normal pattern. For this reason, the unauthorized access detection device 50 can detect unauthorized access made to the database from the server by an attack from an attacker. For example, the unauthorized access detection device 50 can detect an unauthorized query even in a large-scale system that receives 100 requests per second.
  • the unauthorized access detection device 50 may detect unauthorized access based on a normal pattern in which a body pattern query corresponding to a request body pattern is issued.
  • FIG. 5 is a configuration diagram showing an outline of a system to which the unauthorized access detection device according to the third embodiment is applied.
  • the unauthorized access detection device 50 according to the third embodiment has basically the same configuration as the unauthorized access detection device 50 illustrated in FIG. 1, but in the request acquisition unit 31, the query acquisition unit 41, and the detection unit 51. A part of the processing is different from the point having the text pattern storage unit 52.
  • the third embodiment will be described with a focus on the differences from the first embodiment, and the components having the same functions as those described in the first embodiment will be described with reference to each configuration shown in FIG. The same reference numerals as those in FIG.
  • the request acquisition unit 31 acquires at least the request reception time and the request text as the request information, and transmits them to the unauthorized access detection device 50.
  • the query acquisition unit 41 acquires at least the query reception time and the query text as the query information, and transmits them to the unauthorized access detection device 50.
  • the body pattern storage unit 52 stores information in which a body pattern of a request is associated with a body pattern of a query.
  • the pattern of the body of the request is a pattern of the character string of a part determined in advance according to the type of request, such as a request for login or a request for data registration, among the character strings of the request. is there.
  • the query body text pattern is a portion determined in advance according to the type of request in the query character string transmitted from the service server 10 to the DB 20 when the corresponding request is received by the service server 10. Is a character string. Note that the information stored in the body pattern storage unit 52 is registered in advance by the administrator of the unauthorized access detection device 50.
  • FIG. 6 is a diagram illustrating an example of information stored in the text pattern storage unit according to the third embodiment.
  • “?” Is an arbitrary character string.
  • the detection unit 51 refers to the body pattern storage unit 52, and a body pattern request corresponding to the body pattern of the query acquired by the query acquisition unit 41 is received from the reception time of the query. If it has not been received before a predetermined time, the query is detected as an unauthorized access as different from the normal pattern.
  • the unauthorized access is detected as described above, for example, when a request for login is received, a query for login authentication is issued. This is because there is a normal pattern in which a body pattern query corresponding to the body pattern is issued. In other words, if a request for a body pattern corresponding to the body pattern of the query transmitted to the DB 20 is not received by the service server 10, the query is considered to be unauthorized access. For example, even if a request is received one second before the query reception time, if the patterns of the body do not correspond, the detection unit 51 assumes that the pattern is different from the normal pattern. Detect queries as unauthorized access.
  • FIG. 7 is a flowchart showing a flow of processing in the unauthorized access detection apparatus according to the third embodiment.
  • the detection unit 51 of the unauthorized access detection device 50 starts processing when the processing timing comes (Yes in step S301). For example, the detection unit 51 starts processing when a query is acquired from the log acquisition device 40. Until the processing timing comes (No in step S301), the detection unit 51 is in a standby state.
  • the detection unit 51 determines whether or not a body pattern request corresponding to the acquired query body pattern has been received between a query reception time and a predetermined time before (step S302). . For example, if the login authentication query is received at 8:22:10, the detection unit 51 receives a login request from the service server 10 between 8: 22: 9 and 10 seconds. It is determined whether it has been done. If the corresponding request has been received (step S302 Yes), the detection unit 51 determines that the acquired query is not unauthorized access (step S303).
  • step S304 determines that the acquired query is unauthorized access.
  • the detection unit 51 may start the process in FIG. 7 at a predetermined interval (for example, at an interval of 1 second).
  • the above processing (steps S302 to S304) is executed for all queries acquired from the end of the previous processing to the present (current processing start time).
  • a request for a body pattern corresponding to a body pattern of a query acquired by the query acquisition unit 41 is received before a predetermined time from the reception time of the query. If it has not been received, the query is detected as unauthorized access as being different from the normal pattern. For this reason, the unauthorized access detection device 50 can detect unauthorized access made to the database from the server by an attack from an attacker.
  • the unauthorized access detection device 50 can accurately detect unauthorized access.
  • the unauthorized access detection device 50 may further detect unauthorized access using a request and query body text pattern.
  • the unauthorized access detection device 50 has the same configuration as the unauthorized access detection device 50 shown in FIG. 5, but a part of information stored in the body pattern storage unit 52 and the detection unit 51. This is different from part of the process. Note that the fourth embodiment will be described with a focus on differences from the third embodiment, and a description of the points having the same functions as those described in the third embodiment will be omitted.
  • the body pattern storage unit 52 stores information in which a body pattern of a request, a body pattern of a query, and a threshold are associated with each other.
  • the threshold is a value determined based on, for example, a query issue rate.
  • FIG. 8 is a diagram illustrating an example of information stored in the text pattern storage unit according to the fourth embodiment.
  • “?” Is an arbitrary character string.
  • the detection unit 51 refers to the body pattern storage unit 52, determines the number of queries of a predetermined body pattern received during a predetermined period, and the predetermined body pattern received during the same period. Count the number of corresponding requests. If the ratio of the number of queries to the number of requests (query issue rate) exceeds a threshold corresponding to a predetermined body pattern, the detection unit 51 determines that the query included in the period is different from the normal pattern. Is detected as unauthorized access.
  • the reason why unauthorized access is detected as described above is that, even if the query issuance rate in a predetermined period corresponds to a normal pattern, the queries in those periods are not necessarily unauthorized access. For example, even if unauthorized access is made, if the number of requests that do not involve query issuance increases during that period, it is considered that there is no significant change in the apparent query issuance rate. For this reason, in the fourth embodiment, in addition to the normal pattern of the query issuance rate, the normal pattern in the request and query body patterns is also taken into account, thereby making it possible to accurately detect unauthorized access. As described in the second embodiment, the administrator of the unauthorized access detection device 50 can arbitrarily set the threshold for the query issue rate.
  • FIG. 9 is a flowchart showing a flow of processing in the unauthorized access detection apparatus according to the fourth embodiment.
  • the detection unit 51 of the unauthorized access detection device 50 starts processing when the processing timing comes (step S401 Yes). For example, the detection unit 51 starts processing at a predetermined interval (for example, every one second). Until the processing timing comes (No in step S401), the detection unit 51 is in a standby state.
  • the detection unit 51 counts the number of requests for each body pattern received in a predetermined period and the number of queries for each body pattern received in a predetermined period (step S402). For example, the detection unit 51 counts the number of login requests received by the service server 10 during the immediately preceding second and the number of login authentication queries received by the DB 20 at the same time.
  • the detection part 51 determines whether the query issue rate of the pattern of each text in a predetermined period is less than a threshold value (step S403). For example, if the number of requests counted in step S402 is “10” and the number of queries is “5”, the detection unit 51 calculates that the query issue rate is “0.5”. Then, the detection unit 51 determines whether or not the calculated query issue rate “0.5” is less than a threshold value.
  • the detection unit 51 determines that the query in that period is not unauthorized access (step S404).
  • the detection unit 51 determines that the query of the body pattern in that period is unauthorized access (step S403). S405).
  • the processing start interval, the period for counting requests and queries, and the threshold value may be changed as appropriate by the administrator of the unauthorized access detection device 50.
  • the unauthorized access detection device 50 refers to the body pattern storage unit 52, and the number of queries of a predetermined body pattern received during a predetermined period and the number of predetermined body text received during the same period. The number of requests corresponding to the pattern is counted. If the ratio of the number of queries to the number of requests (query issue rate) exceeds a threshold corresponding to a predetermined body pattern, the detection unit 51 determines that the query included in the period is different from the normal pattern. Is detected as unauthorized access. Therefore, the unauthorized access detection device 50 can detect unknown unauthorized access to the DB 20. For example, the unauthorized access detection device 50 can accurately detect unauthorized queries even in a large-scale system that receives 100 requests per second.
  • FIG. 10 is a configuration diagram showing an outline of a system to which the unauthorized access detection apparatus according to the fifth embodiment is applied.
  • the system to which the unauthorized access detection device 50 according to the fifth embodiment is applied has basically the same configuration as the unauthorized access detection device 50 shown in FIG. 1, but the request acquisition unit 31, the query acquisition unit 41, And the part of the process in the detection part 51 and the point provided with the query pattern memory
  • the points different from the first embodiment will be mainly described, and the components having the same functions as the components described in the first embodiment will be described with reference to each configuration in FIG. The same reference numerals as those in FIG.
  • the request acquisition unit 31 acquires at least the reception time of the request and the text of the request as request information, and transmits them to the unauthorized access detection device 50.
  • the query acquisition unit 41 acquires at least a query reception time and a query text as query information, and transmits them to the unauthorized access detection device 50.
  • the session information DB 60 stores information related to a user terminal connected to the service server 10.
  • the session information DB 60 stores information in which a session ID and a user ID are associated with each other.
  • the session ID is information for identifying a terminal connected to the service server 10.
  • the user ID is information for identifying a user who uses a service provided by the service server 10.
  • FIG. 11 is a diagram illustrating an example of information stored in the session information DB according to the fifth embodiment.
  • the session information DB 60 stores, for example, information in which a session ID “31a9eab98d33bb24c” and a user ID “suzuki_taro” are associated with each other.
  • the information stored in the session information DB 60 is registered by the service server 10 when a session is established between the user terminal and the service server 10, for example.
  • the query pattern storage unit 53 stores information in which a query body pattern is associated with a variable name for storing a user ID.
  • the variable name for storing the user ID is information indicating a location where the user ID is described in the corresponding body pattern query.
  • FIG. 12 is a diagram illustrating an example of information stored in the query pattern storage unit according to the fifth embodiment.
  • the information stored in the query pattern storage unit 53 is registered in advance by the administrator of the unauthorized access detection device 50, for example.
  • “?” Is an arbitrary character string.
  • the detection unit 51 identifies a session ID from a user ID included in a query, and a request including the identified session ID is received between the reception time of the query and a predetermined time before. If not, the query is detected as unauthorized access as different from the normal pattern.
  • the unauthorized access is detected as the relation between the request information and the query information, and the session ID of the user specified from the query is included in the request transmitted to issue the query. This is because there is a normal pattern that matches the session ID. Thereby, the detection part 51 can detect an unauthorized access more reliably.
  • the session ID is described in a cookie or URL (Uniform Resource Locator) part in the body of the HTTP request.
  • FIG. 13 is a flowchart showing the flow of processing in the unauthorized access detection apparatus according to the fifth embodiment.
  • the detection unit 51 of the unauthorized access detection device 50 starts processing when the processing timing comes (Yes in step S501). For example, the detection unit 51 starts processing at a predetermined interval (for example, every one second). Until the processing timing comes (No in step S501), the detection unit 51 is in a standby state.
  • the detection unit 51 refers to the query pattern storage unit 53 and extracts a user ID from the acquired query (step S502).
  • the detection unit 51 refers to the query pattern storage unit 53 and identifies a body pattern corresponding to the acquired body of the query.
  • the detection unit 51 acquires a variable name that stores a user ID corresponding to the identified text pattern. In the example shown in FIG. 12, since the variable name for storing the user ID corresponding to the query body pattern “SELECT?
  • the detection unit 51 acquires “id”. To do. And the detection part 51 extracts user ID from the text of a query using the variable name which memorize
  • the detection unit 51 refers to the session information DB and acquires a session ID corresponding to the user ID (step S503).
  • the detection unit 51 refers to the session information DB 60 and acquires the session ID “31a9eab98d33bb24c” corresponding to the user ID “suzuki_taro” extracted in step S502.
  • the detection part 51 determines whether the request containing session ID was received before the predetermined time from the reception time of a query (step S504). For example, if the reception time of the query received by the DB 20 is 8:22:10, the detection unit 51 receives a request including the session ID “31a9eab98d33bb24c” between 8: 22: 9 and 10 seconds. It is determined whether or not it has been received by the service server 10. Here, when the corresponding request has been received between the query reception time and a predetermined time before (Yes in step S504), the detection unit 51 determines that the query is not unauthorized access (step S505). ).
  • step S504 No if the corresponding request has not been received between the query reception time and a predetermined time before (step S504 No), the detection unit 51 determines that the query is unauthorized access (step S506).
  • the detection unit 51 may start the process of FIG. 13 when a query is acquired from the log acquisition device 40.
  • the unauthorized access detection device 50 detects unauthorized access using information of a user terminal that is actually connected to the service server 10. For this reason, the unauthorized access detection device 50 can detect unauthorized access more reliably. For example, even in a large-scale system such as 1000 requests per second, the unauthorized access detection device 50 can detect unauthorized access with high accuracy.
  • FIG. 14 is a configuration diagram showing an outline of a system to which an unauthorized access detection apparatus according to another embodiment is applied. As shown in FIG. 14, this system includes three service servers 10A, 10B, and 10C in order to provide services.
  • the log acquisition device 30 functions as an LB (Load Balancer).
  • the log acquisition device 30 refers to the load status of each service server 10A, 10B, 10C when transferring a request transmitted from the user's terminal to one of the service servers 10A, 10B, 10C. Transfer to a place with low load.
  • the request acquisition unit 31 further acquires the address of the service server to which the request is transmitted as request information, and transmits it to the unauthorized access detection device 50.
  • the query acquisition unit 41 further acquires the address of the service server that transmitted the query as the query information, and transmits it to the unauthorized access detection device 50.
  • the detection part 51 performs the process which detects unauthorized access for every address of the acquired request and query. For example, if the transmission source of the acquired query is the service server 10A, the detection unit 51 includes a request whose destination address is the service server 10A between the reception time of the query and a predetermined time before. Determine whether or not. In other words, if the transmission source of the acquired query is the service server 10A, the detection unit 51 does not set a request whose transmission destination address is the service server 10B or 10C as a processing target, but detects unauthorized access. I do. For this reason, the unauthorized access detection device 50 can more accurately detect unknown unauthorized access.
  • the detection power when there are a plurality of service servers 10, it is possible to improve the detection power by classifying the correspondence between the query and request to the DB 20 for each via server.
  • unauthorized access can be detected when the service server to which the log acquisition device 30 distributes the request and the service server that issued the query are different. It becomes.
  • the ratio of the number of HTTP requests to a certain service server distributed by the log acquisition device 30 and the number of queries issued from the service server is different for each service server. It is possible to detect unauthorized access by making a big difference. In particular, when the ratio is prominent in some service servers, it is possible to detect that the service server is hijacked and there is a high possibility that an illegal query is issued.
  • each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or a part of the distribution / integration may be functionally or physically distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. Further, all or a part of each processing function performed in each device can be realized by a CPU and a program that is analyzed and executed by the CPU, or can be realized as hardware by wired logic.
  • FIG. 15A and FIG. 15B are configuration diagrams showing an outline of a system to which an unauthorized access detection device according to another embodiment is applied.
  • the unauthorized access detection device 50 may include a request acquisition unit 31 and a query acquisition unit 41 in addition to the detection unit 51.
  • the request acquisition unit 31 acquires request information from the service server 10
  • the query acquisition unit 41 acquires query information from the DB 20.
  • the unauthorized access detection device 50 may be configured to relay communication between the service server 10 and the Internet 5 and between the service server 10 and the DB 20. .
  • the service server 10 and the DB 20 are connected to the Internet 5 via the unauthorized access detection device 50.
  • the request acquisition unit 31, the query acquisition unit 41, and the detection unit 51 may not be provided in one device, and any of them may be configured as separate devices.
  • the request acquisition unit 31 is configured to relay communication between the service server 10 and the Internet 5 as a device separate from the unauthorized access detection device 50 (for example, as the log acquisition device 30 in FIG. 1). May be.
  • the unauthorized access detection device 50 includes a query acquisition unit 41 and a detection unit 51.
  • the request acquisition part 31, the query acquisition part 41, and the detection part 51 may be comprised combining arbitrarily.
  • a program described in a language that can be executed by a computer can be created for the processing executed by the detection apparatus described in the above embodiment.
  • a detection program described in a language that can be executed by a computer can be created for processing executed by the detection apparatus according to the embodiment.
  • the same processing as in the above embodiment may be realized by recording such a detection program on a computer-readable recording medium, and reading and executing the detection program recorded on this recording medium.
  • a computer that executes a detection program that realizes the same function as the detection apparatus illustrated in FIG. 1 will be described.
  • FIG. 16 is a diagram illustrating a computer that executes a detection program.
  • the computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, and a network interface 1070, and these units are connected by a bus 1080.
  • the bus 1080 The bus 1080.
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM (Random Access Memory) 1012 as illustrated in FIG.
  • the ROM 1011 stores a boot program such as BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • the hard disk drive interface 1030 is connected to the hard disk drive 1031 as illustrated in FIG.
  • the disk drive interface 1040 is connected to the disk drive 1041 as illustrated in FIG. For example, a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive.
  • the hard disk drive 1031 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, the above detection program is stored in, for example, the hard disk drive 1031 as a program module in which a command to be executed by the computer 1000 is described.
  • various data described in the above embodiment is stored as program data in, for example, the memory 1010 or the hard disk drive 1031.
  • the CPU 1020 reads the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1031 to the RAM 1012 as necessary, and executes each procedure.
  • program module 1093 and the program data 1094 related to the detection program are not limited to being stored in the hard disk drive 1031, but may be stored in, for example, a removable storage medium and read out by the CPU 1020 via the disk drive or the like. Good.
  • the program module 1093 and the program data 1094 related to the detection program are stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.), and via the network interface 1070. May be read by the CPU 1020.
  • LAN Local Area Network
  • WAN Wide Area Network

Abstract

 不正アクセス検知装置(50)の検知部(51)は、リクエスト取得部(31)が取得した、ユーザによって操作される端末からサービスを提供するサービスサーバ(10)へ送信されるリクエストに関する情報と、クエリ取得部(41)が取得した、サービスサーバ(10)からサービスに関する情報を蓄積するDB(20)へ送信されるクエリに関する情報と、の関連が正常パターンと異なる場合に、クエリをDB(20)に対する不正アクセスとして検知する。

Description

検知装置、検知方法及び検知プログラム
 本発明は、検知装置、検知方法及び検知プログラムに関する。
 従来、ウェブアプリケーションの脆弱性を悪用した攻撃からウェブアプリケーションを保護するセキュリティ対策の一つとして、WAF(Web Application Firewall)が導入されている。WAFは、クライアントとサーバの間に配置され、既知の不正アクセスのシグネチャを保持する。そして、WAFは、クライアントから送信されるリクエストをサーバに中継する際に、シグネチャにマッチするリクエストを遮断することで、サーバに対する攻撃を防ぐ。
「Web Application Firewall(WAF)読本」、[平成26年6月24日検索]、インターネット<URL:http://www.ipa.go.jp/security/vuln/waf.html>
 しかしながら、従来の技術では、サーバへの未知なる不正アクセスを検知することができないという問題があった。例えば、上記のWAFでは、既知の不正アクセスのシグネチャを保持する必要があるため、まだ世に知られていない脆弱性を突く攻撃(ゼロデイ攻撃)に対応できなかった。このような攻撃が行われると、サーバが攻撃者に乗っ取られ、遠隔操作されることがある。サーバはデータベースへのアクセス権を持つため、攻撃者がサーバを遠隔操作し、データベースにアクセスすることで、データベースのデータが漏えい、改ざんされる恐れがあった。
 そこで、この発明は、攻撃者からの攻撃によりサーバからデータベースに対して行われる不正アクセスを検知することを目的とする。
 上述した課題を解決し、目的を達成するため、開示の検知装置は、ユーザによって操作される端末からサービスを提供するサービスサーバへ送信される第1の要求に関する第1の要求情報を取得する第1の取得部と、前記サービスサーバから前記サービスに関する情報を蓄積する蓄積装置へ送信される第2の要求に関する第2の要求情報を取得する第2の取得部と、前記第1の要求情報と前記第2の要求情報との関連が正常パターンと異なる場合に、前記第2の要求を前記蓄積装置に対する不正アクセスとして検知する検知部とを備えることを特徴とする。
 本願に開示する実施形態によれば、攻撃者からの攻撃によりサーバからデータベースに対して行われる不正アクセスを検知することができるという効果を奏する。
図1は、第1の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。 図2は、第1の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。 図3は、第1の実施形態に係る不正アクセス検知装置による効果を説明するための図である。 図4は、第2の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。 図5は、第3の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。 図6は、第3の実施形態に係る本文パターン記憶部に記憶される情報の一例を示す図である。 図7は、第3の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。 図8は、第4の実施形態に係る本文パターン記憶部に記憶される情報の一例を示す図である。 図9は、第4の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。 図10は、第5の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。 図11は、第5の実施形態に係るセッション情報DBに記憶される情報の一例を示す図である。 図12は、第5の実施形態に係るクエリパターン記憶部に記憶される情報の一例を示す図である。 図13は、第5の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。 図14は、その他の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。 図15Aは、その他の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。 図15Bは、その他の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。 図16は、検知プログラムを実行するコンピュータを示す図である。
 以下に、本願に係る検知装置、検知方法及び検知プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る検知装置、検知方法及び検知プログラムが限定されるものではない。
[第1の実施形態]
 以下、第1の実施形態では、実施形態に係る不正アクセス検知装置の構成及び処理の流れを順に説明し、その後、不正アクセス検知装置による効果を説明する。
 まず、図1を用いて、不正アクセス検知装置の構成を説明する。図1は、第1の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。図1に示すように、このシステムは、サービスサーバ10、DB(Database)20、ログ取得装置30,40、及び不正アクセス検知装置50を備える。以下に、これらの各部の処理を説明する。
 サービスサーバ10は、例えば、各種のネットワークサービス(以下、単にサービスとも表記する)を提供するウェブ・アプリケーションサーバである。例えば、サービスサーバ10は、ユーザによって操作される端末(図示せず)からインターネット5を経由してリクエストを受信する。このリクエストは、例えば、HTTP(Hypertext Transfer Protocol)リクエストやHTTPS(Hypertext Transfer Protocol Secure)リクエストである。サービスサーバ10は、受信したリクエストに応じて情報処理を行い、端末へ応答する。
 また、サービスサーバ10は、端末へ応答する際に、必要に応じて、データの検索や更新、削除等を要求するためのクエリを発行し、DB20へ送信する。そして、サービスサーバ10は、クエリの実行結果をDB20から受信して、端末へ応答する。
 DB20は、サービスサーバ10によって提供されるサービスに関する情報を蓄積する。例えば、DB20は、サービスサーバ10からクエリを受信して、クエリに記述された処理を実行する。そして、DB20は、クエリの実行結果をサービスサーバ10へ送信する。なお、DB20に保持される情報は、SQL形式に限らず、KVS(Key-Value Store)形式で管理されても良い。この場合、サービスサーバ10からDB20へ送信される要求は、クエリではなくKVS形式で記述される。また、DB20は、蓄積装置の一例である。
 ログ取得装置30,40は、通信に関するログを取得し、記録する。例えば、ログ取得装置30は、サービスサーバ10がインターネット5を経由してやり取りされる通信のログを取得し、記録する。また、ログ取得装置40は、サービスサーバ10とDB20との間でやり取りされる通信のログを取得し、記録する。なお、ログ取得装置30,40は、例えば、NTP(Network Time Protocol)等によって時刻の同期が行われている。また、リクエストとしてHTTPSリクエストが用いられる場合には、リクエストの本文が暗号化されることになるが、ログ取得装置30をサービスサーバ10のリバースプロキシとすることで、ログ取得装置30側でリクエストを復号化することができるので、リクエスト情報を不正アクセス検知装置50に送信可能となる。
 また、ログ取得装置30は、リクエスト取得部31を備え、ログ取得装置40は、クエリ取得部41を備える。
 リクエスト取得部31は、端末からサービスサーバ10へ送信されるリクエストに関する情報であるリクエスト情報を取得する。そして、リクエスト取得部31は、取得したリクエスト情報を不正アクセス検知装置50へ送信する。不正アクセス検知装置50へ送信されたリクエスト情報は、不正アクセス検知装置50内部の所定の記憶部(図示せず)に記録される。なお、リクエスト取得部31は、第1の取得部の一例である。
 例えば、リクエスト取得部31は、リクエスト情報として、少なくとも、リクエストがサービスサーバ10に受信された受信時刻を取得する。そして、リクエスト取得部31は、受信時刻を取得するごとに、取得した受信時刻を不正アクセス検知装置50へ送信し、記憶部に記録させる。なお、リクエスト取得部31は、リクエストの受信時刻に限らず、リクエストの本文や送信元ユーザのIP(Internet Protocol)アドレスを取得し、不正アクセス検知装置50へ送信しても良い。
 クエリ取得部41は、サービスサーバ10からDB20へ送信されるクエリに関する情報であるクエリ情報を取得する。そして、クエリ取得部41は、取得したクエリ情報を不正アクセス検知装置50へ送信する。不正アクセス検知装置50へ送信されたクエリ情報は、不正アクセス検知装置50内部の所定の記憶部(図示せず)に記録される。なお、クエリ取得部41は、第2の取得部の一例である。
 例えば、クエリ取得部41は、クエリ情報として、少なくとも、クエリがDB20に受信された受信時刻を取得する。そして、クエリ取得部41は、受信時刻を取得するごとに、取得した受信時刻を不正アクセス検知装置50へ送信し、記憶部に記録させる。なお、クエリ取得部41は、クエリの受信時刻に限らず、クエリの本文や送信元サーバのIPアドレスを取得し、不正アクセス検知装置50へ送信しても良い。
 不正アクセス検知装置50は、不正アクセスを検知する。例えば、不正アクセス検知装置50は、インターネット5からDB20までの間でやり取りされる情報を監視して、DB20に対する不正アクセスを検知する。不正アクセス検知装置50は、検知部51を備える。
 検知部51は、リクエスト情報とクエリ情報との関連が正常パターンと異なる場合に、そのクエリをDB20に対する不正アクセスとして検知する。例えば、検知部51は、リクエストの受信時刻とクエリの受信時刻とを比較し、クエリの受信時刻から所定時間前までの間にリクエストが受信されていなければ、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。
 ここで、上記のように不正アクセスを検知するのは、リクエスト情報とクエリ情報との関連として、サービスサーバ10によってクエリが発行される前にリクエストがサービスサーバ10に受信されているという正常パターンがあるからである。言い換えると、このリクエストが受信されていないにもかかわらず、クエリがDB20に受信されている場合には、そのクエリは不正アクセスと考えられる。例えば、リクエスト受信からクエリ送信までの平均時間が0.1秒であるサービスサーバ10であれば、クエリの受信時刻の1秒前からクエリの受信時刻までの1秒間にリクエストが受信されているのが正常パターンである。この場合、検知部51は、クエリの受信時刻から1秒前までの間にリクエストが受信されていなければ、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。なお、ここでは所定時間が1秒である場合を説明したが、この値は、サービスサーバ10等の性能(若しくはDB20の負荷状況、ネットワークの輻輳状況等)に応じて不正アクセス検知装置50の管理者が任意に設定可能である。
 次に、図2を用いて、不正アクセス検知装置50における処理の流れを説明する。図2は、第1の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
 図2に示すように、不正アクセス検知装置50の検知部51は、処理タイミングになると(ステップS101Yes)、処理を開始する。例えば、検知部51は、ログ取得装置40からクエリを取得したことを契機として、処理を開始する。なお、処理タイミングになるまで(ステップS101No)、検知部51は、待機状態である。
 続いて、検知部51は、クエリの受信時刻から所定時間前までの間にリクエストが受信されたか否かを判定する(ステップS102)。例えば、検知部51は、DB20に受信されたクエリの受信時刻が8時22分10秒であれば、8時22分9秒から10秒までの間に、サービスサーバ10にリクエストが受信されていたか否かを判定する。ここで、クエリの受信時刻から所定時間前までの間にリクエストが受信されていた場合には(ステップS102Yes)、検知部51は、そのクエリが不正アクセスではないと判定する(ステップS103)。
 一方、クエリの受信時刻から所定時間前までの間にリクエストが受信されていなかった場合には(ステップS102No)、検知部51は、そのクエリが不正アクセスであると判定する(ステップS104)。
 なお、図2の例は一例に過ぎない。例えば、検知部51は、所定の間隔(例えば、1秒間隔)で図2の処理を開始しても良い。この場合、前回の処理終了後から現在(今回の処理開始時点)までに取得した全てのクエリについて、上記の処理(ステップS102~S104)が実行される。
 第1の実施形態に係る不正アクセス検知装置50は、端末からサービスサーバ10へ送信されるリクエストに関するリクエスト情報を取得する。そして、不正アクセス検知装置50は、サービスサーバ10からDB20へ送信されるクエリに関するクエリ情報を取得する。そして、不正アクセス検知装置50は、リクエスト情報とクエリ情報との関連が、クエリが発行されるリクエストの正常パターンと異なる場合に、そのクエリをDB20に対する不正アクセスとして検知する。このため、不正アクセス検知装置50は、攻撃者からの攻撃によりサーバからデータベースに対して行われる不正アクセスを検知することができる。
 図3は、第1の実施形態に係る不正アクセス検知装置による効果を説明するための図である。図3に示すように、ゼロデイ攻撃によりサーバの遠隔操作に成功した攻撃者は、サービスサーバ10を遠隔操作して(1)、DB20へクエリを発行させることで(2)、DB20に記憶されている情報を収集・改ざんする。ここで、通常であれば、ユーザは、サービスサーバ10に対してリクエストを送信し(3)、DB20へクエリが発行されることで(4)、DB20に記憶されている情報にアクセスする。第1の実施形態に係る不正アクセス検知装置50は、この通常時のリクエストとクエリとの関連、すなわち正常パターンに基づいて、そのクエリが正常なものか否かを判定する。このため、不正アクセス検知装置50は、ゼロデイ攻撃に対しても対処することが可能となる。例えば、WAFを通過した攻撃者がサービスサーバ10に不正なクエリを発行させたとしても、そのクエリがユーザからのリクエストに基づかないものであれば、不正アクセスとして検知することができる。また、検知時刻周辺のアクセスログを公知の手段で自動的/手動的に調査することにより、攻撃者を特定することも可能となる。
 また、例えば、第1の実施形態に係る不正アクセス検知装置50は、リクエスト情報及びクエリ情報を、サービスサーバ10とは異なる個別のログ取得装置30,40から取得する。これによれば、仮にサービスサーバ10が未知の攻撃者によって乗っ取られた場合にも、リクエスト情報及びクエリ情報を取得できるので、不正アクセスを検知することが可能となる。
[第2の実施形態]
 上記の第1の実施形態では、クエリの受信時刻から所定時間前までの間にリクエストが受信されているという正常パターンに基づいて、不正アクセスを検知する場合を説明したが、実施形態はこれに限定されるものではない。例えば、不正アクセス検知装置50が適用されるシステムによっては、所定期間におけるリクエストの数に対するクエリの数の比率がほぼ一定であるというパターンを有する場合がある。このようなシステムに不正アクセス検知装置50が適用される場合には、不正アクセス検知装置50は、このパターンを正常パターンとして、不正アクセスを検知しても良い。そこで、第2の実施形態では、不正アクセス検知装置50が、所定期間におけるリクエストの数に対するクエリの数の比率が閾値を超えていれば、それらのクエリを不正アクセスとして検知する場合を説明する。
 第2の実施形態に係る不正アクセス検知装置50は、図1に示した不正アクセス検知装置50と同様の構成を備えるが、検知部51における処理の一部が相違する。なお、第2の実施形態では、第1の実施形態と相違する点を中心に説明することとし、第1の実施形態において説明した構成と同様の機能を有する点については、説明を省略する。
 第2の実施形態に係る検知部51は、所定期間に受信されたリクエストの数とクエリの数とをそれぞれ計数し、リクエストの数に対するクエリの数の比率が所定の閾値を超えていれば、正常パターンと異なるものとして、それらのクエリを不正アクセスとして検知する。
 ここで、上記のように不正アクセスを検知するのは、システムによっては、リクエスト情報とクエリ情報との関連として、所定期間におけるリクエストの数に対するクエリの数の比率(以下、クエリ発行率とも表記する)がほぼ一定であるという正常パターンがあるからである。言い換えると、同一の期間におけるリクエストの数に対してクエリの数が多すぎる場合には、それらのクエリの中に不正アクセスが含まれると考えられる。例えば、クエリ発行率が0.1程度(10個のリクエストに対して1個のクエリが発行される)であるサービスサーバ10において、クエリ発行率が0.3程度に増加した期間があれば、検知部51は、正常パターンと異なるものとして、その期間に発行されたクエリの中に不正アクセスによるものが存在したと検知する。なお、ここでは閾値が0.3である場合を説明したが、この値は、不正アクセス検知装置50の管理者が任意に設定可能である。
 次に、図4を用いて、第2の実施形態に係る不正アクセス検知装置50における処理の流れを説明する。図4は、第2の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
 図4に示すように、不正アクセス検知装置50の検知部51は、処理タイミングになると(ステップS201Yes)、処理を開始する。例えば、検知部51は、所定の間隔(例えば、1秒間隔)で処理を開始する。なお、処理タイミングになるまで(ステップS201No)、検知部51は、待機状態である。
 続いて、検知部51は、所定期間に受信されたリクエストの数とクエリの数とをそれぞれ計数する(ステップS202)。例えば、検知部51は、直前の1秒間に、サービスサーバ10が受信したリクエストの数と、同じ時間にDB20が受信したクエリの数とをそれぞれ計数する。
 そして、検知部51は、所定期間におけるクエリ発行率が閾値未満か否かを判定する(ステップS203)。例えば、ステップS202において計数したリクエストの数が「100」であり、クエリの数が「50」であれば、検知部51は、クエリ発行率は「0.5」であると算出する。そして、検知部51は、算出したクエリ発行率「0.5」が閾値未満か否かを判定する。ここで、所定期間におけるクエリ発行率が閾値未満である場合には(ステップS203Yes)、検知部51は、その期間のクエリは不正アクセスではないと判定する(ステップS204)。
 一方、所定期間におけるクエリ発行率が閾値以上である場合には(ステップS203No)、検知部51は、その期間のクエリが不正アクセスであると判定する(ステップS205)。
 なお、図4の例は一例に過ぎない。例えば、処理を開始する間隔や、リクエスト及びクエリを計数する期間、閾値は、不正アクセス検知装置50の管理者によって適宜変更されて良い。
 第2の実施形態に係る不正アクセス検知装置50は、所定期間に受信されたリクエストの数とクエリの数とをそれぞれ計数し、リクエストの数に対するクエリの数の比率が所定の閾値を超えていれば、正常パターンと異なるものとして、それらのクエリの中に不正アクセスによるものが存在したと検知する。このため、不正アクセス検知装置50は、攻撃者からの攻撃によりサーバからデータベースに対して行われる不正アクセスを検知することができる。例えば、不正アクセス検知装置50は、秒間100リクエストを受信するような大規模なシステムにおいても、不正なクエリを検知することができる。
[第3の実施形態]
 また、例えば、不正アクセス検知装置50は、リクエストの本文のパターンに対応する本文のパターンのクエリが発行されるという正常パターンに基づいて、不正アクセスを検知しても良い。
 図5は、第3の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。第3の実施形態に係る不正アクセス検知装置50は、図1に示した不正アクセス検知装置50と基本的に同様の構成を備えるが、リクエスト取得部31、クエリ取得部41、及び検知部51における処理の一部と、本文パターン記憶部52を有する点とが相違する。なお、第3の実施形態では、第1の実施形態と相違する点を中心に説明することとし、第1の実施形態において説明した構成と同様の機能を有する点については、図5の各構成要素に図1と同一の符号を付し、説明を省略する。
 第3の実施形態に係るリクエスト取得部31は、リクエスト情報として、少なくとも、リクエストの受信時刻と、リクエストの本文とを取得し、不正アクセス検知装置50へ送信する。
 第3の実施形態に係るクエリ取得部41は、クエリ情報として、少なくとも、クエリの受信時刻と、クエリの本文とを取得し、不正アクセス検知装置50へ送信する。
 第3の実施形態に係る本文パターン記憶部52は、リクエストの本文のパターンと、クエリの本文のパターンとが対応づけられた情報を記憶する。ここで、リクエストの本文のパターンは、リクエストの文字列のうち、ログイン用のリクエストやデータ登録用のリクエスト等、リクエストの種類に応じて予め決められた部分の文字列がパターン化されたものである。また、クエリの本文のパターンは、対応するリクエストがサービスサーバ10に受信された場合に、サービスサーバ10からDB20に送信されるクエリの文字列のうち、リクエストの種類に応じて予め決められた部分の文字列がパターン化されたものである。なお、本文パターン記憶部52に記憶される情報は、不正アクセス検知装置50の管理者によって予め登録されるものとする。
 図6は、第3の実施形態に係る本文パターン記憶部に記憶される情報の一例を示す図である。図6に示すように、本文パターン記憶部52は、例えば、クエリの本文のパターン「SELECT * FROM user WHERE id = ? AND pass = ?」と、リクエストの本文のパターン「URL=“http://www.xxx.co.jp/login.jsp”」とが対応づけられた情報を記憶する。なお、図6において、「?」は、任意の文字列である。
 第3の実施形態に係る検知部51は、本文パターン記憶部52を参照し、クエリ取得部41によって取得されたクエリの本文のパターンに対応する本文のパターンのリクエストが、そのクエリの受信時刻から所定時間前までの間に受信されていなければ、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。
 ここで、上記のように不正アクセスを検知するのは、例えば、ログイン用のリクエストが受信されればログイン認証用のクエリが発行されるように、リクエスト情報とクエリ情報との関連として、リクエストの本文のパターンに対応する本文のパターンのクエリが発行されるという正常パターンがあるからである。言い換えると、DB20へ送信されたクエリの本文のパターンに対応する本文のパターンのリクエストがサービスサーバ10に受信されていなければ、そのクエリは不正アクセスと考えられる。例えば、クエリの受信時刻から1秒前までの間にリクエストが受信されていたとしても、それらの本文のパターンが対応していない場合には、検知部51は、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。
 次に、図7を用いて、第3の実施形態に係る不正アクセス検知装置50における処理の流れを説明する。図7は、第3の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
 図7に示すように、不正アクセス検知装置50の検知部51は、処理タイミングになると(ステップS301Yes)、処理を開始する。例えば、検知部51は、ログ取得装置40からクエリを取得したことを契機として、処理を開始する。なお、処理タイミングになるまで(ステップS301No)、検知部51は、待機状態である。
 続いて、検知部51は、取得したクエリの本文のパターンに対応する本文のパターンのリクエストが、クエリの受信時刻から所定時間前までの間に受信されていたか否かを判定する(ステップS302)。例えば、検知部51は、ログイン認証用のクエリが8時22分10秒に受信されていれば、8時22分9秒から10秒までの間に、ログイン用のリクエストがサービスサーバ10に受信されていたか否かを判定する。ここで、該当のリクエストが受信されていた場合には(ステップS302Yes)、検知部51は、取得したクエリが不正アクセスではないと判定する(ステップS303)。
 一方、該当のリクエストが受信されていなかった場合には(ステップS302No)、検知部51は、取得したクエリが不正アクセスであると判定する(ステップS304)。
 なお、図7の例は一例に過ぎない。例えば、検知部51は、所定の間隔(例えば、1秒間隔)で図7の処理を開始しても良い。この場合、前回の処理終了後から現在(今回の処理開始時点)までに取得した全てのクエリについて、上記の処理(ステップS302~S304)が実行される。
 第3の実施形態に係る不正アクセス検知装置50は、クエリ取得部41によって取得されたクエリの本文のパターンに対応する本文のパターンのリクエストが、そのクエリの受信時刻から所定時間前までの間に受信されていなければ、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。このため、不正アクセス検知装置50は、攻撃者からの攻撃によりサーバからデータベースに対して行われる不正アクセスを検知することができる。
 例えば、不正アクセス検知装置50は、クエリの受信時刻から1秒前までの間にリクエストが受信されていたとしても、それらの本文のパターンが対応していない場合には、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。このため、不正アクセス検知装置50は、不正アクセスを正確に検知することができる。
[第4の実施形態]
 上記の第2の実施形態では、所定期間におけるリクエストの数に対するクエリの数の比率が閾値を超えていれば、それらのクエリの中に不正アクセスによるものが存在したと検知する場合を説明したが、実施形態はこれに限定されるものではない。例えば、不正アクセス検知装置50は、更に、リクエスト及びクエリの本文のパターンを用いて不正アクセスを検知しても良い。
 第4の実施形態に係る不正アクセス検知装置50は、図5に示した不正アクセス検知装置50と同様の構成を備えるが、本文パターン記憶部52に記憶される情報の一部と、検知部51における処理の一部とが相違する。なお、第4の実施形態では、第3の実施形態と相違する点を中心に説明することとし、第3の実施形態において説明した構成と同様の機能を有する点については、説明を省略する。
 第4の実施形態に係る本文パターン記憶部52は、リクエストの本文のパターンと、クエリの本文のパターンと、閾値とが対応づけられた情報を記憶する。閾値は、例えば、クエリ発行率に基づいて決定される値である。
 図8は、第4の実施形態に係る本文パターン記憶部に記憶される情報の一例を示す図である。図8に示すように、本文パターン記憶部52は、例えば、クエリの本文のパターン「SELECT * FROM user WHERE id = ? AND pass = ?」と、リクエストの本文のパターン「URL=“http://www.xxx.co.jp/login.jsp”」と、クエリ発行率の閾値「0.2」とが対応づけられた情報を記憶する。なお、図8において、「?」は、任意の文字列である。
 第4の実施形態に係る検知部51は、本文パターン記憶部52を参照し、所定期間に受信された所定の本文のパターンのクエリの数と、同じ期間に受信された所定の本文のパターンに対応するリクエストの数とをそれぞれ計数する。そして、検知部51は、リクエストの数に対するクエリの数の比率(クエリ発行率)が所定の本文のパターンに対応する閾値を超えていれば、正常パターンと異なるものとして、その期間に含まれるクエリを不正アクセスとして検知する。
 ここで、上記のように不正アクセスを検知するのは、所定期間におけるクエリ発行率が正常パターンに該当する場合であっても、それらの期間のクエリが不正アクセスでないとは限らないからである。例えば、不正アクセスが行われていたとしても、その期間にクエリ発行を伴わないリクエストが増加していれば、見かけのクエリ発行率には顕著な変化が見られないと考えられる。このため、第4の実施形態では、クエリ発行率の正常パターンに加えて、リクエスト及びクエリの本文のパターンにおける正常パターンについても考慮することで、不正アクセスを正確に検知することを可能にする。なお、第2の実施形態で説明したように、クエリ発行率の閾値は、不正アクセス検知装置50の管理者が任意に設定可能である。
 次に、図9を用いて、第4の実施形態に係る不正アクセス検知装置50における処理の流れを説明する。図9は、第4の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。
 図9に示すように、不正アクセス検知装置50の検知部51は、処理タイミングになると(ステップS401Yes)、処理を開始する。例えば、検知部51は、所定の間隔(例えば、1秒間隔)で処理を開始する。なお、処理タイミングになるまで(ステップS401No)、検知部51は、待機状態である。
 続いて、検知部51は、所定期間に受信された各本文のパターンのリクエストの数と、所定期間に受信された各本文のパターンのクエリの数とをそれぞれ計数する(ステップS402)。例えば、検知部51は、直前の1秒間に、サービスサーバ10が受信したログイン用のリクエストの数と、同じ時間にDB20が受信したログイン認証用のクエリの数とをそれぞれ計数する。
 そして、検知部51は、所定期間における各本文のパターンのクエリ発行率が閾値未満か否かを判定する(ステップS403)。例えば、ステップS402において計数したリクエストの数が「10」であり、クエリの数が「5」であれば、検知部51は、クエリ発行率は「0.5」であると算出する。そして、検知部51は、算出したクエリ発行率「0.5」が閾値未満か否かを判定する。ここで、所定期間における各本文のパターンのクエリ発行率が閾値未満である場合には(ステップS403Yes)、検知部51は、その期間のクエリは不正アクセスではないと判定する(ステップS404)。
 一方、所定期間における各本文のパターンのクエリ発行率が閾値以上である場合には(ステップS403No)、検知部51は、その期間におけるその本文のパターンのクエリが不正アクセスであると判定する(ステップS405)。
 なお、図9の例は一例に過ぎない。例えば、処理を開始する間隔や、リクエスト及びクエリを計数する期間、閾値は、不正アクセス検知装置50の管理者によって適宜変更されて良い。
 第4の実施形態に係る不正アクセス検知装置50は、本文パターン記憶部52を参照し、所定期間に受信された所定の本文のパターンのクエリの数と、同じ期間に受信された所定の本文のパターンに対応するリクエストの数とをそれぞれ計数する。そして、検知部51は、リクエストの数に対するクエリの数の比率(クエリ発行率)が所定の本文のパターンに対応する閾値を超えていれば、正常パターンと異なるものとして、その期間に含まれるクエリを不正アクセスとして検知する。このため、不正アクセス検知装置50は、DB20への未知なる不正アクセスを検知することができる。例えば、不正アクセス検知装置50は、秒間100リクエストを受信するような大規模なシステムにおいても、不正なクエリを正確に検知することができる。
[第5の実施形態]
 第5の実施形態では、実際にサービスサーバ10に接続しているユーザの端末の情報を用いて、不正アクセスを検知する場合を説明する。
 図10は、第5の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。第5の実施形態に係る不正アクセス検知装置50が適用されるシステムは、図1に示した不正アクセス検知装置50と基本的に同様の構成を備えるが、リクエスト取得部31、クエリ取得部41、及び検知部51における処理の一部と、クエリパターン記憶部53及びセッション情報DB60を備える点とが相違する。なお、第5の実施形態では、第1の実施形態と相違する点を中心に説明することとし、第1の実施形態において説明した構成と同様の機能を有する点については、図10の各構成要素に図1と同一の符号を付し、説明を省略する。
 第5の実施形態に係るリクエスト取得部31は、リクエスト情報として、少なくとも、リクエストの受信時刻と、リクエストの本文とを取得し、不正アクセス検知装置50へ送信する。
 第5の実施形態に係るクエリ取得部41は、クエリ情報として、少なくとも、クエリの受信時刻と、クエリの本文とを取得し、不正アクセス検知装置50へ送信する。
 第5の実施形態に係るセッション情報DB60は、サービスサーバ10に接続しているユーザの端末に関する情報を記憶する。例えば、セッション情報DB60は、セッションIDと、ユーザIDとが対応づけられた情報を記憶する。セッションIDは、サービスサーバ10に接続している端末を識別するための情報である。また、ユーザIDは、サービスサーバ10によって提供されるサービスを利用するユーザを識別するための情報である。
 図11は、第5の実施形態に係るセッション情報DBに記憶される情報の一例を示す図である。図11に示すように、セッション情報DB60は、例えば、セッションID「31a9eab98d33bb24c」と、ユーザID「suzuki_taro」とが対応づけられた情報を記憶する。なお、セッション情報DB60に記憶される情報は、例えば、ユーザの端末とサービスサーバ10との間でセッションが確立される際に、サービスサーバ10によって登録される。
 第5の実施形態に係るクエリパターン記憶部53は、クエリの本文のパターンと、ユーザIDを記憶する変数名とが対応づけられた情報を記憶する。ユーザIDを記憶する変数名は、対応する本文のパターンのクエリにおいて、ユーザIDが記述されている箇所を示す情報である。
 図12は、第5の実施形態に係るクエリパターン記憶部に記憶される情報の一例を示す図である。図12に示すように、クエリパターン記憶部53は、例えば、クエリの本文のパターン「SELECT ? FROM user WHERE id=?」と、ユーザIDを記憶する変数名「id」とが対応づけられた情報を記憶する。なお、クエリパターン記憶部53に記憶される情報は、例えば、不正アクセス検知装置50の管理者によって予め登録される。また、図12において、「?」は、任意の文字列である。
 第5の実施形態に係る検知部51は、クエリに含まれるユーザIDからセッションIDを特定し、特定したセッションIDを含むリクエストが、そのクエリの受信時刻から所定時間前までの間に受信されていなければ、正常パターンと異なるものとして、そのクエリを不正アクセスとして検知する。
 ここで、上記のように不正アクセスを検知するのは、リクエスト情報とクエリ情報との関連として、クエリから特定されるユーザのセッションIDは、そのクエリを発行するために送信されたリクエストに含まれるセッションIDと一致するという正常パターンがあるからである。これにより、検知部51は、より確実に、不正アクセスを検知することができる。なお、通常、セッションIDは、HTTPリクエストの本文において、クッキーあるいはURL(Uniform Resource Locator)部に記載されている。
 次に、図13を用いて、第5の実施形態に係る不正アクセス検知装置50における処理の流れを説明する。図13は、第5の実施形態に係る不正アクセス検知装置における処理の流れを示すフローチャートである。なお、図13の例では、取得したクエリの本文が、「SELECT creditcard FROM user WHERE id= suzuki_taro」である場合を説明する。
 図13に示すように、不正アクセス検知装置50の検知部51は、処理タイミングになると(ステップS501Yes)、処理を開始する。例えば、検知部51は、所定の間隔(例えば、1秒間隔)で処理を開始する。なお、処理タイミングになるまで(ステップS501No)、検知部51は、待機状態である。
 続いて、検知部51は、クエリパターン記憶部53を参照し、取得したクエリからユーザIDを抽出する(ステップS502)。例えば、検知部51は、クエリパターン記憶部53を参照し、取得したクエリの本文に対応する本文のパターンを特定する。ここでは、受信したクエリの本文が「SELECT creditcard FROM user WHERE id= suzuki_taro」であるので、検知部51は、クエリの本文のパターンとして「SELECT ? FROM user WHERE id=?」を特定する。続いて、検知部51は、特定した本文のパターンに対応するユーザIDを記憶する変数名を取得する。図12に示す例では、クエリの本文のパターン「SELECT ? FROM user WHERE id=?」に対応するユーザIDを記憶する変数名は「id」であるので、検知部51は、「id」を取得する。そして、検知部51は、取得したユーザIDを記憶する変数名を用いて、クエリの本文からユーザIDを抽出する。クエリの本文において、「id」に記述されているのは「suzuki_taro」であるので、検知部51は、クエリの本文から「suzuki_taro」をユーザIDとして抽出する。
 続いて、検知部51は、セッション情報DBを参照し、ユーザIDに対応するセッションIDを取得する(ステップS503)。例えば、検知部51は、セッション情報DB60を参照し、ステップS502において抽出したユーザID「suzuki_taro」に対応するセッションID「31a9eab98d33bb24c」を取得する。
 そして、検知部51は、セッションIDを含むリクエストがクエリの受信時刻から所定時間前までの間に受信されていたか否かを判定する(ステップS504)。例えば、検知部51は、DB20に受信されたクエリの受信時刻が8時22分10秒であれば、8時22分9秒から10秒までの間に、セッションID「31a9eab98d33bb24c」を含むリクエストがサービスサーバ10に受信されていたか否かを判定する。ここで、該当のリクエストが、クエリの受信時刻から所定時間前までの間に受信されていた場合には(ステップS504Yes)、検知部51は、そのクエリが不正アクセスではないと判定する(ステップS505)。
 一方、該当のリクエストが、クエリの受信時刻から所定時間前までの間に受信されていない場合には(ステップS504No)、検知部51は、そのクエリが不正アクセスであると判定する(ステップS506)。
 なお、図13の例は一例に過ぎない。例えば、検知部51は、ログ取得装置40からクエリを取得したことを契機として、図13の処理を開始しても良い。
 第5の実施形態に係る不正アクセス検知装置50は、実際にサービスサーバ10に接続しているユーザの端末の情報を用いて、不正アクセスを検知する。このため、不正アクセス検知装置50は、より確実に、不正アクセスを検知することができる。例えば、仮に、秒間1000リクエストのような大規模なシステムであっても、不正アクセス検知装置50は、高精度に不正アクセスを検知することができる。
[その他の実施形態]
 さて、これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、種々の異なる形態にて実施されて良いものである。
[負荷分散装置への適用]
 例えば、上述した第1~第5の実施形態では、サービスサーバ10が単独で機能する場合を説明したが、複数のサービスサーバ10が配置され、負荷分散している場合であっても適用可能である。
 図14は、その他の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。図14に示すように、このシステムでは、サービスを提供するために、3つのサービスサーバ10A,10B,10Cを備える。
 この場合、ログ取得装置30は、LB(Load Balancer)として機能する。例えば、ログ取得装置30は、ユーザの端末から送信されたリクエストをサービスサーバ10A,10B,10Cのいずれかに転送する場合に、各サービスサーバ10A,10B,10Cの負荷状況を参照した上で、負荷の少ないところへ転送する。また、リクエスト取得部31は、リクエスト情報として、更に、リクエストの送信先のサービスサーバのアドレスを取得し、不正アクセス検知装置50へ送信する。また、クエリ取得部41は、クエリ情報として、更に、クエリの送信元のサービスサーバのアドレスを取得し、不正アクセス検知装置50へ送信する。
 そして、検知部51は、取得したリクエスト及びクエリのアドレスごとに、不正アクセスを検知する処理を行う。例えば、検知部51は、取得したクエリの送信元がサービスサーバ10Aであれば、送信先のアドレスがサービスサーバ10Aであるリクエストが、そのクエリの受信時刻から所定時間前までの間に含まれるか否かを判定する。言い換えると、検知部51は、取得したクエリの送信元がサービスサーバ10Aであれば、送信先のアドレスがサービスサーバ10B,10Cであるリクエストについては処理対象とはせずに、不正アクセスの検知処理を行う。このため、不正アクセス検知装置50は、未知なる不正アクセスをより正確に検知することが可能となる。
 このように、サービスサーバ10が複数存在する場合に、DB20へのクエリとリクエストの対応を経由サーバ毎に分類することで、検出力を向上させることが可能となる。例えば、上述した第1,3,5の実施形態に適用する場合には、ログ取得装置30がリクエストを振り分けたサービスサーバと、クエリを発行したサービスサーバとが異なる場合に、不正アクセスを検知可能となる。また、第2,4の実施形態に適用する場合には、ログ取得装置30が振り分けたあるサービスサーバへのHTTPリクエストの数と、そのサービスサーバからのクエリの発行数の割合が、サービスサーバ毎に大きく異なることで、不正アクセスを検知可能となる。特に、その割合が一部のサービスサーバにおいて突出している場合、そのサービスサーバが乗っ取られ、不正なクエリが発行されている可能性が高いということを検知することが可能となる。
[システム構成等]
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
 図15A及び図15Bは、その他の実施形態に係る不正アクセス検知装置が適用されるシステムの概要を示す構成図である。例えば、図15Aに示すように、不正アクセス検知装置50は、検知部51に加えて、リクエスト取得部31及びクエリ取得部41を備えていても良い。この場合、リクエスト取得部31は、サービスサーバ10からリクエスト情報を取得し、クエリ取得部41は、DB20からクエリ情報を取得する。
 また、例えば、図15Bに示すように、不正アクセス検知装置50は、サービスサーバ10とインターネット5との間、及び、サービスサーバ10とDB20との間の通信を中継するように構成されても良い。言い換えると、サービスサーバ10及びDB20は、不正アクセス検知装置50を介してインターネット5に接続される。
 なお、図15A及び図15Bの例は一例に過ぎない。例えば、リクエスト取得部31、クエリ取得部41、及び検知部51が一つの装置に備えられていなくても良く、いずれかが別装置として分離して構成されても良い。一例としては、リクエスト取得部31が、不正アクセス検知装置50とは別装置として(例えば、図1のログ取得装置30として)、サービスサーバ10とインターネット5との間の通信を中継するように構成されても良い。この場合、不正アクセス検知装置50は、クエリ取得部41及び検知部51を備える。このように、リクエスト取得部31、クエリ取得部41、及び検知部51は、任意に組み合わせて構成されても良い。
 また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
 また、上記実施形態において説明した検知装置が実行する処理について、コンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係る検知装置が実行する処理について、コンピュータが実行可能な言語で記述した検知プログラムを作成することもできる。この場合、コンピュータが検知プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる検知プログラムをコンピュータが読み取り可能な記録媒体に記録して、この記録媒体に記録された検知プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、図1に示した検知装置と同様の機能を実現する検知プログラムを実行するコンピュータの一例を説明する。
 図16は、検知プログラムを実行するコンピュータを示す図である。図16に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
 メモリ1010は、図16に例示するように、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図16に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図16に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。
 ここで、図16に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の検知プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
 また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、各手順を実行する。
 なお、検知プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、検知プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 これらの実施形態やその変形は、本願が開示する技術に含まれると同様に、請求の範囲に記載された発明とその均等の範囲に含まれるものである。
  5   インターネット
 10   サービスサーバ
 20   DB
 30,40   ログ取得装置
 31   リクエスト取得部
 41   クエリ取得部
 50   不正アクセス検知装置
 51   検知部

Claims (8)

  1.  ユーザによって操作される端末からサービスを提供するサービスサーバへ送信される第1の要求に関する第1の要求情報を取得する第1の取得部と、
     前記サービスサーバから前記サービスに関する情報を蓄積する蓄積装置へ送信される第2の要求に関する第2の要求情報を取得する第2の取得部と、
     前記第1の要求情報と前記第2の要求情報との関連が正常パターンと異なる場合に、前記第2の要求を前記蓄積装置に対する不正アクセスとして検知する検知部と
     を備えることを特徴とする検知装置。
  2.  前記第1の取得部は、前記第1の要求情報として、前記第1の要求が前記サービスサーバに受信された第1の受信時刻を取得し、
     前記第2の取得部は、前記第2の要求情報として、前記第2の要求が前記蓄積装置に受信された第2の受信時刻を取得し、
     前記検知部は、前記第1の受信時刻と前記第2の受信時刻とを比較し、当該第2の受信時刻から所定時間前までの間に当該第1の受信時刻が含まれなければ、前記正常パターンと異なるものとして、当該第2の受信時刻に対応する前記第2の要求を前記不正アクセスとして検知することを特徴とする請求項1に記載の検知装置。
  3.  前記検知部は、所定期間に受信された前記第1の要求の数と前記第2の要求の数とをそれぞれ計数し、前記第1の要求の数に対する前記第2の要求の数の比率が所定の閾値を超えていれば、前記正常パターンと異なるものとして、当該第2の要求を前記不正アクセスとして検知することを特徴とする請求項1に記載の検知装置。
  4.  前記第1の要求の本文のパターンと、当該第1の要求が前記サービスサーバに受信された場合に送信される前記第2の要求の本文のパターンとが対応づけられた情報を記憶する記憶部を更に備え、
     前記第1の取得部は、前記第1の受信時刻を取得するとともに、前記第1の要求の本文を取得し、
     前記第2の取得部は、前記第2の受信時刻を取得するとともに、前記第2の要求の本文を取得し、
     前記検知部は、前記記憶部を参照し、前記第2の取得部によって取得された第2の要求の本文のパターンに対応する本文のパターンの第1の要求が、当該第2の要求の受信時刻から所定時間前までの間に受信されていなければ、前記正常パターンと異なるものとして、当該第2の要求を前記不正アクセスとして検知することを特徴とする請求項2に記載の検知装置。
  5.  前記第1の要求の本文のパターンと、当該第1の要求が前記サービスサーバに受信された場合に送信される前記第2の要求の本文のパターンと、閾値とが対応づけられた情報を記憶する記憶部を更に備え、
     前記第1の取得部は、前記第1の受信時刻を取得するとともに、前記第1の要求の本文を取得し、
     前記第2の取得部は、前記第2の受信時刻を取得するとともに、前記第2の要求の本文を取得し、
     前記検知部は、前記記憶部を参照し、所定期間に受信された所定の本文のパターンの第2の要求の数と、当該所定期間に受信された当該所定の本文のパターンに対応する第1の要求の数とをそれぞれ計数し、当該第1の要求の数に対する当該第2の要求の数の比率が当該所定の本文のパターンに対応する閾値を超えていれば、前記正常パターンと異なるものとして、当該第2の要求を前記不正アクセスとして検知することを特徴とする請求項3に記載の検知装置。
  6.  前記第1の取得部は、前記第1の受信時刻を取得するとともに、前記第1の要求の本文を取得し、
     前記第2の取得部は、前記第2の受信時刻を取得するとともに、前記第2の要求の本文を取得し、
     前記検知部は、前記サービスサーバに接続している前記端末を識別する接続情報を前記第2の要求に含まれる前記ユーザの情報から特定し、特定した接続情報を含む第1の要求が、当該第2の要求の受信時刻から所定時間前までの間に受信されていなければ、前記正常パターンと異なるものとして、当該第2の要求を前記不正アクセスとして検知することを特徴とする請求項2に記載の検知装置。
  7.  検知装置によって実行される検知方法であって、
     ユーザによって操作される端末からサービスを提供するサービスサーバへ送信される第1の要求に関する第1の要求情報を取得する第1の取得工程と、
     前記サービスサーバから前記サービスに関する情報を蓄積する蓄積装置へ送信される第2の要求に関する第2の要求情報を取得する第2の取得工程と、
     前記第1の要求情報と前記第2の要求情報との関連が正常パターンと異なる場合に、前記第2の要求を前記蓄積装置に対する不正アクセスとして検知する検知工程と
     を含んだことを特徴とする検知方法。
  8.  ユーザによって操作される端末からサービスを提供するサービスサーバへ送信される第1の要求に関する第1の要求情報を取得する第1の取得ステップと、
     前記サービスサーバから前記サービスに関する情報を蓄積する蓄積装置へ送信される第2の要求に関する第2の要求情報を取得する第2の取得ステップと、
     前記第1の要求情報と前記第2の要求情報との関連が正常パターンと異なる場合に、前記第2の要求を前記蓄積装置に対する不正アクセスとして検知する検知ステップと
     をコンピュータに実行させることを特徴とする検知プログラム。
PCT/JP2015/069073 2014-07-07 2015-07-01 検知装置、検知方法及び検知プログラム WO2016006520A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201580036747.5A CN106663166A (zh) 2014-07-07 2015-07-01 检测装置、检测方法以及检测程序
JP2016532900A JPWO2016006520A1 (ja) 2014-07-07 2015-07-01 検知装置、検知方法及び検知プログラム
US15/318,855 US20170155669A1 (en) 2014-07-07 2015-07-01 Detection device, detection method, and detection program
EP15819473.8A EP3144839A4 (en) 2014-07-07 2015-07-01 Detection device, detection method and detection program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014139796 2014-07-07
JP2014-139796 2014-07-07

Publications (1)

Publication Number Publication Date
WO2016006520A1 true WO2016006520A1 (ja) 2016-01-14

Family

ID=55064156

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/069073 WO2016006520A1 (ja) 2014-07-07 2015-07-01 検知装置、検知方法及び検知プログラム

Country Status (5)

Country Link
US (1) US20170155669A1 (ja)
EP (1) EP3144839A4 (ja)
JP (1) JPWO2016006520A1 (ja)
CN (1) CN106663166A (ja)
WO (1) WO2016006520A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140250049A1 (en) 2013-03-01 2014-09-04 RedOwl Analytics, Inc. Visualizing social behavior
GB2526501A (en) 2013-03-01 2015-11-25 Redowl Analytics Inc Modeling social behavior
US10999296B2 (en) 2017-05-15 2021-05-04 Forcepoint, LLC Generating adaptive trust profiles using information derived from similarly situated organizations
US11888859B2 (en) 2017-05-15 2024-01-30 Forcepoint Llc Associating a security risk persona with a phase of a cyber kill chain
US10318729B2 (en) 2017-07-26 2019-06-11 Forcepoint, LLC Privacy protection during insider threat monitoring
US10803178B2 (en) 2017-10-31 2020-10-13 Forcepoint Llc Genericized data model to perform a security analytics operation
US11314787B2 (en) 2018-04-18 2022-04-26 Forcepoint, LLC Temporal resolution of an entity
KR102528258B1 (ko) * 2018-04-30 2023-05-04 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US10949428B2 (en) 2018-07-12 2021-03-16 Forcepoint, LLC Constructing event distributions via a streaming scoring operation
US11810012B2 (en) 2018-07-12 2023-11-07 Forcepoint Llc Identifying event distributions using interrelated events
US11755584B2 (en) 2018-07-12 2023-09-12 Forcepoint Llc Constructing distributions of interrelated event features
US11436512B2 (en) 2018-07-12 2022-09-06 Forcepoint, LLC Generating extracted features from an event
US11025638B2 (en) * 2018-07-19 2021-06-01 Forcepoint, LLC System and method providing security friction for atypical resource access requests
US11811799B2 (en) 2018-08-31 2023-11-07 Forcepoint Llc Identifying security risks using distributions of characteristic features extracted from a plurality of events
US11025659B2 (en) 2018-10-23 2021-06-01 Forcepoint, LLC Security system using pseudonyms to anonymously identify entities and corresponding security risk related behaviors
US11171980B2 (en) 2018-11-02 2021-11-09 Forcepoint Llc Contagion risk detection, analysis and protection
CN111083166A (zh) * 2019-12-31 2020-04-28 紫光云(南京)数字技术有限公司 云数据库设置白名单的方法、装置及计算机存储介质
US11489862B2 (en) 2020-01-22 2022-11-01 Forcepoint Llc Anticipating future behavior using kill chains
US11630901B2 (en) 2020-02-03 2023-04-18 Forcepoint Llc External trigger induced behavioral analyses
US11080109B1 (en) 2020-02-27 2021-08-03 Forcepoint Llc Dynamically reweighting distributions of event observations
US11429697B2 (en) 2020-03-02 2022-08-30 Forcepoint, LLC Eventually consistent entity resolution
US11836265B2 (en) 2020-03-02 2023-12-05 Forcepoint Llc Type-dependent event deduplication
US11080032B1 (en) 2020-03-31 2021-08-03 Forcepoint Llc Containerized infrastructure for deployment of microservices
US11568136B2 (en) 2020-04-15 2023-01-31 Forcepoint Llc Automatically constructing lexicons from unlabeled datasets
US11516206B2 (en) 2020-05-01 2022-11-29 Forcepoint Llc Cybersecurity system having digital certificate reputation system
US11544390B2 (en) 2020-05-05 2023-01-03 Forcepoint Llc Method, system, and apparatus for probabilistic identification of encrypted files
US11895158B2 (en) 2020-05-19 2024-02-06 Forcepoint Llc Cybersecurity system having security policy visualization
JP2021189658A (ja) * 2020-05-28 2021-12-13 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
CN111859363B (zh) * 2020-06-24 2024-04-05 杭州数梦工场科技有限公司 用于识别应用未授权访问的方法、装置以及电子设备
US11663353B1 (en) * 2020-06-29 2023-05-30 United Services Automobile Association (Usaa) Systems and methods for monitoring email template usage
US11704387B2 (en) 2020-08-28 2023-07-18 Forcepoint Llc Method and system for fuzzy matching and alias matching for streaming data sets
US11190589B1 (en) 2020-10-27 2021-11-30 Forcepoint, LLC System and method for efficient fingerprinting in cloud multitenant data loss prevention
US20220400120A1 (en) * 2021-06-10 2022-12-15 Nxp B.V. Method for partitioning a plurality of devices in a communications system and a device therefor
CN114006832B (zh) * 2021-10-08 2023-03-21 福建天泉教育科技有限公司 一种检测客户端与服务端之间存在代理服务的方法及终端

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136312A1 (en) * 2005-12-12 2007-06-14 Imperva, Inc System and method for correlating between http requests and sql queries
US20100333172A1 (en) * 2008-04-25 2010-12-30 Wu Jiang Method, apparatus and system for monitoring database security

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090049547A1 (en) * 2007-08-13 2009-02-19 Yuan Fan System for real-time intrusion detection of SQL injection web attacks
CN101388899B (zh) * 2007-09-12 2011-07-27 北京启明星辰信息技术股份有限公司 一种Web服务器前后台关联审计方法及系统
CN101707598B (zh) * 2009-11-10 2012-12-19 成都市华为赛门铁克科技有限公司 识别洪水攻击的方法、装置及系统
CN102281298A (zh) * 2011-08-10 2011-12-14 深信服网络科技(深圳)有限公司 检测和防御cc攻击的方法及装置
US8856913B2 (en) * 2011-08-29 2014-10-07 Arbor Networks, Inc. Method and protection system for mitigating slow HTTP attacks using rate and time monitoring
JP5773894B2 (ja) * 2012-01-12 2015-09-02 Kddi株式会社 端末間で権限情報を中継する方法及びシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136312A1 (en) * 2005-12-12 2007-06-14 Imperva, Inc System and method for correlating between http requests and sql queries
US20100333172A1 (en) * 2008-04-25 2010-12-30 Wu Jiang Method, apparatus and system for monitoring database security

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP3144839A4 *
YUICHI SUDO ET AL.: "Detection of Malicious Database Queries based on Matching with HTTP Requests", IEICE TECHNICAL REPORT, vol. 114, no. 207, 4 September 2014 (2014-09-04), pages 99 - 104, XP008185123 *

Also Published As

Publication number Publication date
EP3144839A1 (en) 2017-03-22
CN106663166A (zh) 2017-05-10
US20170155669A1 (en) 2017-06-01
EP3144839A4 (en) 2018-01-03
JPWO2016006520A1 (ja) 2017-04-27

Similar Documents

Publication Publication Date Title
WO2016006520A1 (ja) 検知装置、検知方法及び検知プログラム
US10097520B2 (en) Method and apparatus for causing delay in processing requests for internet resources received from client devices
US8935419B2 (en) Filtering device for detecting HTTP request and disconnecting TCP connection
US8392963B2 (en) Techniques for tracking actual users in web application security systems
US9112828B2 (en) Method for defending against session hijacking attacks and firewall
US9843590B1 (en) Method and apparatus for causing a delay in processing requests for internet resources received from client devices
US20130254870A1 (en) Detecting and Thwarting Browser-Based Network Intrusion Attacks By a Virtual Machine Monitoring System, Apparatus, and Method
JP6524789B2 (ja) ネットワーク監視方法、ネットワーク監視プログラム及びネットワーク監視装置
CN104935551B (zh) 一种网页篡改防护装置及方法
JP6502902B2 (ja) 攻撃検知装置、攻撃検知システムおよび攻撃検知方法
CN111314381A (zh) 安全隔离网关
US10129277B1 (en) Methods for detecting malicious network traffic and devices thereof
US10218805B2 (en) Method and apparatus for causing delay in processing requests for internet resources received from client devices
KR101658450B1 (ko) 웹 애플리케이션 서버로부터 수집된 트랜잭션 정보 및 고유세션 id 통한 사용자 식별을 이용한 보안장치.
US20220191193A1 (en) Cross site request forgery (csrf) protection for web browsers
JP5743822B2 (ja) 情報漏洩防止装置及び制限情報生成装置
KR20170096780A (ko) 침해사고 정보 연동 시스템 및 방법
KR101650475B1 (ko) 웹 서버로부터 수집된 트랜잭션 정보를 이용한 보안장치
CN115037537A (zh) 异常流量拦截、异常域名识别方法、装置、设备及介质
KR20200006035A (ko) 제공된 구성 정보를 사용하여 트리거된 스캐닝
JP2017092755A (ja) ネットワーク監視装置及びネットワーク監視装置におけるウイルス検知方法。
JP2016157311A (ja) ネットワーク監視装置、ネットワーク監視方法およびネットワーク監視プログラム
JP6688782B2 (ja) ネットワーク通信方法及びネットワーク通信システム
JP2016021621A (ja) 通信システム及び通信方法
KR101445817B1 (ko) 서비스 이용 제어 방법 및 장치

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016532900

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15318855

Country of ref document: US

REEP Request for entry into the european phase

Ref document number: 2015819473

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015819473

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE