KR102521784B1 - Access management apparatus and method for managing database access based on web application server - Google Patents
Access management apparatus and method for managing database access based on web application server Download PDFInfo
- Publication number
- KR102521784B1 KR102521784B1 KR1020210143721A KR20210143721A KR102521784B1 KR 102521784 B1 KR102521784 B1 KR 102521784B1 KR 1020210143721 A KR1020210143721 A KR 1020210143721A KR 20210143721 A KR20210143721 A KR 20210143721A KR 102521784 B1 KR102521784 B1 KR 102521784B1
- Authority
- KR
- South Korea
- Prior art keywords
- sql
- url
- session
- application server
- web application
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000013507 mapping Methods 0.000 claims abstract description 29
- 238000007726 management method Methods 0.000 claims description 33
- 238000004891 communication Methods 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 9
- 230000000903 blocking effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 abstract description 11
- 238000004458 analytical method Methods 0.000 abstract description 6
- 230000015556 catabolic process Effects 0.000 abstract description 5
- 238000006731 degradation reaction Methods 0.000 abstract description 5
- 238000001514 detection method Methods 0.000 abstract description 3
- 238000001152 differential interference contrast microscopy Methods 0.000 description 5
- 238000012552 review Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000282376 Panthera tigris Species 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Abstract
Description
본 발명은 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치 및 방법에 관한 것으로서, 더욱 상세히는 사용자 단말과의 세션 연결을 통해 URL 요청을 수신한 웹 어플리케이션 서버에서 상기 URL 요청을 기초로 데이터베이스에 전송하는 SQL 요청과 상기 URL 요청 사이의 관계를 웹 어플리케이션 서버의 자원을 사용하지 않으면서 자동 맵핑하여 웹 어플리케이션 서버의 성능 저하를 방지하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치 및 방법에 관한 것이다.The present invention relates to an access management apparatus and method for managing access to a database based on a web application server, and more particularly, to a web application server that receives a URL request through a session connection with a user terminal, to a database based on the URL request. An access management device and method for managing web application server-based database access that prevents performance degradation of the web application server by automatically mapping the relationship between the transmitted SQL request and the URL request without using web application server resources. it's about
웹 어플리케이션 서버 운영시 개인정보와 같은 주요 데이터를 조회하고 조작하는 어플리케이션을 사용하여 부여된 업무를 수행하는 사용자가 주요 데이터를 언제 얼마만큼 조회하고 변경 혹은 삭제했는지 기록하고 분석하는 것이 필요하며, 이를 통해 개인정보 오남용과 같은 보안 위협을 탐지하여 알리고 사고(유출 혹은 조작) 발생시 원인을 추적할 수 있다.When operating a web application server, it is necessary to record and analyze when and how much key data is viewed, changed, or deleted by users performing assigned tasks using applications that inquire and manipulate key data such as personal information. Security threats such as misuse and abuse of personal information can be detected and notified, and the cause of an accident (leakage or manipulation) can be traced.
또한, 이러한 분석을 통해 어플리케이션 모듈의 성능을 분석하고 최적화 시킬 수도 있다.Also, through this analysis, the performance of the application module can be analyzed and optimized.
도 1은 기존 웹 어플리케이션 서버의 구성 및 동작을 나타낸 도면이다.1 is a diagram showing the configuration and operation of an existing web application server.
도시된 바와 같이, 사용자 단말과 통신하는 웹 어플리케이션 서버는 사용자 단말과 HTTP(HyperText Transfer Protocol) 세션(session)을 설정하고, 해당 세션을 통해 수신되는 URL 요청에 응답하기 위해 데이터베이스와 공유 데이터베이스 세션(shared database session)을 설정하며, 상기 URL 요청에 대응되는 SQL 요청을 데이터베이스에 전송한다.As shown, the web application server communicating with the user terminal establishes a HTTP (HyperText Transfer Protocol) session with the user terminal, and a shared database session (shared database session) with the database to respond to a URL request received through the session. database session) is established, and an SQL request corresponding to the URL request is transmitted to the database.
이때, 상기 웹 어플리케이션 서버에서 전송하는 SQL 요청 중에는 데이터베이스에 저장된 개인 정보와 같은 보안 정보에 접근하는 SQR 요청이 존재할 수 있다.At this time, among the SQL requests transmitted from the web application server, there may be an SQR request for accessing security information such as personal information stored in a database.
이러한 웹 어플리케이션 서버의 동작 환경에서, 웹 어플리케이션 서버에서 사용자 단말이 전송한 URL 요청에 대해 생성한 SQL 요청과 URL 요청과의 관계를 설정해야만, 사용자가 웹 어플리케이션 서버를 통해 데이터베이스에 접근한 이력을 기록할 수 있으며, 기록된 정보를 기반으로 웹 어플리케이션 서버의 성능을 분석하고 보안 정보에 대한 접근 권한이 없는 사용자 단말의 URL 요청을 추적 및 차단하는 보안 기능이 이루어질 수 있다.In such an operating environment of the web application server, the relation between the URL request and the SQL request generated for the URL request transmitted by the user terminal must be established in the web application server to record the history of the user accessing the database through the web application server. and a security function of analyzing the performance of the web application server based on the recorded information and tracking and blocking URL requests from user terminals without access to security information.
이를 위해, 도 2에 도시된 바와 같이, 기존에는 웹 어플리케이션 서버를 이용하여 어플리케이션을 운영하는 환경에서 사용자 단말의 URL 요청에 응답하기 위해 웹 어플리케이션 서버에서 생성한 SQL 정보를 획득한 후 URL 요청과 SQL 요청 사이의 관계를 설정하여 사용자가 접근하는 데이터베이스 내 정보에 대한 기록을 얻기 위해서, 웹 어플리케이션 서버 내에 정보 수집용 프로그램인 정보 수집 에이전트(Agent)를 삽입하여 운영하고 있다.To this end, as shown in FIG. 2, after obtaining SQL information generated by the web application server to respond to the URL request of the user terminal in an environment where applications are operated using a web application server, the URL request and SQL An information collection agent, an information collection program, is inserted and operated in the web application server to obtain a record of the information in the database accessed by the user by establishing a relationship between requests.
이러한, 정보 수집 에이전트는 웹 어플리케이션 서버에서 설정한 세션을 감시하고, 상기 사용자 단말에서 전송하는 URL 요청에 대응되는 웹 어플리케이션 서버의 SQL 요청을 URL 요청과 매핑한 정보를 포함하는 접근 이력 테이블을 생성하며, 이러한 접근 이력 테이블을 기초로 사용자의 데이터베이스 조회 내역을 기록 및 분석하고 보안 정보에 대한 사용자의 접근 권한 식별을 통해 보안 정보에 대한 보안을 관리할 수 있다.The information collection agent monitors the session established in the web application server, creates an access history table including information mapping URL requests and SQL requests of the web application server corresponding to URL requests transmitted from the user terminal, and , Based on this access history table, it is possible to record and analyze the user's database search details and manage the security of security information through identification of the user's access rights to security information.
그러나, 이렇게 웹 어플리케이션 서버에 삽입되어 동작하는 정보 수집 에이전트는 웹 어플리케이션 서버의 자원을 사용하기 때문에 웹 어플리케이션 서버의 수행 속도를 저하시키게 ㅋ되며, 자원 과다 사용시 뜻하지 않는 장애를 유발하는 원인이 되어, 상당히 비효율적인 문제가 있다.However, since the information collection agent that is inserted into the web application server and operates in this way uses the resources of the web application server, it slows down the performance of the web application server. There is an inefficiency problem.
본 발명은 웹 어플리케이션 서버가 사용자 단말에서 전송하는 URL 요청에 대응되는 SQL 요청을 생성하여 데이터베이스에 접근하는 동작 과정에서 발생된 URL 요청과 SQL 요청 사이의 관계를 자동 파악하여 사용자가 이용한 SQL을 식별할 수 있는 접근 관리 장치를 제공하며, 이러한 접근 관리 장치가 웹 어플리케이션 서버 내에 에이전트 프로그램 형태로 삽입되지 않고도 사용자의 데이터베이스에 대한 접근 이력을 파악할 수 있도록 구성하여 웹 어플리케이션 서버의 자원을 과다 사용하여 성능을 저하시키는 기존 에이전트 프로그램의 문제를 해결할 수 있도록 지원하는데 그 목적이 있다.According to the present invention, a web application server generates a SQL request corresponding to a URL request transmitted from a user terminal and automatically identifies the SQL used by the user by automatically identifying the relationship between the URL request and the SQL request generated in the process of accessing a database. It provides an access management device that can detect the access history of the user's database without being inserted in the form of an agent program into the web application server, thereby reducing performance by overusing the resources of the web application server. The purpose of Shiki is to help solve the problems of the existing agent program.
본 발명의 실시예에 따른 WAS(웹 어플리케이션 서버)에서 사용자 단말과의 통신을 위해 설정한 HTTP 세션 및 상기 WAS가 DB와의 통신을 위해 설정한 DB 세션을 통해 송수신되는 패킷을 스니핑하는 접근 관리 장치의 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법은, 상기 스니핑을 통해 상기 사용자 단말이 상기 WAS로 전송한 URL 요청(URL request)을 획득한 후 상기 URL 요청의 URL 타입을 확인하는 URL 확인 단계와, 상기 스니핑을 통해 상기 WAS에 수신된 URL 요청에 대응되는 URL 세션 기간 동안 상기 WAS에서 설정한 하나 이상의 DB 세션별로 상기 WAS에서 상기 DB로 전송하는 SQL 요청(SQL request)을 확인하고, 상기 하나 이상의 DB 세션 중 SQL 요청이 확인된 DB 세션별로 상기 확인된 하나 이상의 SQL 요청과 각각 대응되는 하나 이상의 SQL 타입(type)을 식별한 후 상기 URL 세션 기간 및 상기 URL 타입과 매칭하여 SQL 그룹을 생성하는 그룹핑 단계 및 다른 URL 세션 기간과 겹치지 않는 특정 URL 세션 기간 또는 상호 겹치는 기간이 존재하는 서로 다른 복수의 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 특정 SQL 그룹에만 특정 SQL 타입이 포함된 경우 상기 특정 SQL 그룹을 유효 SQL 그룹으로 설정하고, 상기 유효 SQL 그룹에 포함된 URL 타입과 하나 이상의 SQL 타입을 매칭하여 매핑 정보를 생성하는 매칭 단계를 포함할 수 있다.An access management device sniffing packets transmitted and received through an HTTP session established for communication with a user terminal in a WAS (web application server) according to an embodiment of the present invention and a DB session established by the WAS for communication with a DB. An access management method for managing web application server-based database access includes a URL check step of acquiring a URL request transmitted from the user terminal to the WAS through the sniffing and then checking the URL type of the URL request. And, check the SQL request transmitted from the WAS to the DB for each one or more DB sessions set in the WAS during the URL session period corresponding to the URL request received by the WAS through the sniffing, and the one After identifying one or more SQL types corresponding to the identified one or more SQL requests for each DB session in which SQL requests are confirmed among the DB sessions, a SQL group is created by matching the URL session duration and the URL type. When a specific SQL type is included in only a specific SQL group among one or more SQL groups corresponding to a grouping step and a specific URL session duration that does not overlap with other URL session durations or a plurality of different URL session durations in which mutually overlapping durations exist, the specific SQL type is included in the specific SQL group. A matching step of setting a group as a valid SQL group and generating mapping information by matching a URL type included in the valid SQL group with one or more SQL types.
본 발명과 관련된 일 예로서, 상기 접근 관리 장치는 WAS에서 사용자 단말과의 통신을 위해 설정한 HTTP 세션을 중개하는 제 1 스위치 및 상기 WAS가 DB와의 통신을 위해 설정한 DB 세션을 중개하는 제 2 스위치와 연결되어 상기 HTTP 세션 및 상기 DB 세션을 통해 송수신되는 패킷을 상기 제 1 및 제 2 스위치를 통해 스니핑하는 것을 특징으로 할 수 있다.As an example related to the present invention, the access management device includes a first switch for mediating an HTTP session established by the WAS for communication with a user terminal and a second switch mediating a DB session established by the WAS for communication with a DB. It may be characterized in that packets connected to a switch and transmitted and received through the HTTP session and the DB session are sniffed through the first and second switches.
본 발명과 관련된 일 예로서, 상기 URL 세션 기간은 상기 사용자 단말이 상기 WAS에 상기 URL 요청을 전송한 시점부터 상기 WAS에서 상기 URL 요청을 전송한 사용자 단말로 상기 URL 요청에 대응되는 응답이 완료되는 시점까지의 기간인 것을 특징으로 할 수 있다.As an example related to the present invention, the URL session period is from the time the user terminal transmits the URL request to the WAS to the completion of the response corresponding to the URL request from the WAS to the user terminal that has transmitted the URL request. It may be characterized as a period of time up to a point in time.
본 발명과 관련된 일 예로서, 상기 SQL 타입은 상기 SQL 요청에서 상수와 변수를 제외한 나머지인 것을 특징으로 할 수 있다.As an example related to the present invention, the SQL type may be characterized in that the SQL type is the rest except for constants and variables in the SQL request.
본 발명과 관련된 일 예로서, 상기 매칭 단계는, 다른 URL 세션 기간과 겹치지 않는 상기 특정 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹에 포함된 SQL 타입을 확인하여, 상기 특정 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹을 대상으로 다른 SQL 그룹에는 존재하지 않는 SQL 타입을 포함하는 SQL 그룹마다 유효 SQL 그룹으로 설정하는 것을 특징으로 할 수 있다.As an example related to the present invention, in the matching step, the SQL type included in one or more SQL groups corresponding to the specific URL session duration that does not overlap with other URL session durations is checked, and SQL types corresponding to the specific URL session duration are checked. For the above SQL groups, each SQL group that includes SQL types that do not exist in other SQL groups can be characterized as being set as a valid SQL group.
본 발명과 관련된 일 예로서, 상기 매칭 단계는, 상기 유효 SQL 그룹과 동일한 URL 세션 기간을 가진 나머지 SQL 그룹이 존재하면 상기 나머지 SQR 그룹을 삭제하는 단계를 더 포함하는 것을 특징으로 할 수 있다.As an example related to the present invention, the matching step may further include deleting the remaining SQR groups if there are remaining SQL groups having the same URL session duration as the valid SQL group.
본 발명과 관련된 일 예로서, 상기 매칭 단계는, 상기 유효 SQL 정보를 기초로 상기 유효 SQL 정보에 포함된 하나 이상의 SQL 타입 및 URL 타입을 포함하며 상기 유효 SQL 정보에 따른 URL 세션 기간과 다른 URL 세션 기간이 설정된 SQL 그룹을 다른 유효 SQL 정보로 설정하는 단계를 더 포함하는 것을 특징으로 할 수 있다.As an example related to the present invention, the matching step includes one or more SQL types and URL types included in the valid SQL information based on the valid SQL information, and a URL session period different from a URL session period according to the valid SQL information It may be characterized by further comprising the step of setting the SQL group for which the period is set as other valid SQL information.
본 발명과 관련된 일 예로서, 상기 매칭 단계 이후, 복수의 서로 다른 사용자 단말로부터 상기 WAS에 수신되는 복수의 URL 요청 각각에 대해 상기 URL 확인 단계와 그룹핑 단계 및 매칭 단계를 수행하여 복수의 매핑 정보를 생성하고, 상기 복수의 매핑 정보를 포함하는 맵 정보를 생성하는 단계 및 상기 스니핑을 통해 상기 사용자 단말에서 상기 WAS로 전송하는 패킷으로부터 사용자 단말의 식별 정보 및 특정 URL 요청을 추출하고, 상기 특정 URL 요청에 대응되는 URL 세션 기간 동안 상기 WAS에서 상기 DB로 전송하는 패킷으로부터 하나 이상의 SQL 요청을 추출하며, 상기 맵 정보를 기초로 상기 특정 URL 요청의 URL 타입에 대응되는 하나 이상의 SQL 타입을 식별한 후 상기 추출된 하나 이상의 SQL 요청 중 상기 식별된 하나 이상의 SQL 타입과 각각 대응되는 하나 이상의 SQL 요청을 식별하고, 상기 식별된 하나 이상의 SQL 요청과 상기 특정 URL 요청 및 상기 사용자 단말의 식별정보를 포함하는 접근 정보를 생성하는 단계를 더 포함하는 것을 특징으로 할 수 있다.As an example related to the present invention, after the matching step, a plurality of mapping information is obtained by performing the URL checking step, grouping step, and matching step for each of a plurality of URL requests received by the WAS from a plurality of different user terminals. Generating and generating map information including the plurality of mapping information and extracting identification information of the user terminal and a specific URL request from a packet transmitted from the user terminal to the WAS through the sniffing, and requesting the specific URL One or more SQL requests are extracted from packets transmitted from the WAS to the DB during the URL session period corresponding to, and after identifying one or more SQL types corresponding to the URL type of the specific URL request based on the map information, the Among the extracted one or more SQL requests, one or more SQL requests corresponding to the identified one or more SQL types are identified, and access information including the identified one or more SQL requests, the specific URL request, and identification information of the user terminal. It may be characterized in that it further comprises the step of generating.
본 발명과 관련된 일 예로서, 상기 접근 정보를 생성하는 단계 이후, 상기 접근 정보에 따른 하나 이상의 SQL 요청 중 적어도 하나가 보안 정보에 접근하기 위한 SQL 요청인 경우 상기 사용자 단말의 식별정보에 대응되는 미리 저장된 권한 정보를 기초로 상기 보안 정보에 대한 상기 사용자 단말에 대응되는 사용자의 접근 권한 여부를 판단하고, 상기 사용자가 상기 보안 정보에 대한 접근 권한이 없는 경우 상기 WAS에 상기 사용자에 대응되는 상기 접근 정보를 전송하거나 상기 사용자 단말의 접속을 차단하기 위한 알림 정보를 전송하는 단계를 더 포함하는 것을 특징으로 할 수 있다.As an example related to the present invention, after the step of generating the access information, if at least one of the one or more SQL requests according to the access information is a SQL request for accessing security information, a dictionary corresponding to the identification information of the user terminal Based on the stored authority information, it is determined whether the user has access authority corresponding to the user terminal to the security information, and if the user does not have access authority to the security information, the access information corresponding to the user is stored in the WAS. or transmitting notification information for blocking access of the user terminal.
본 발명의 실시예에 따른 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치는, WAS(웹 어플리케이션 서버)에서 사용자 단말과의 통신을 위해 설정한 HTTP 세션 및 상기 WAS가 DB와의 통신을 위해 설정한 DB 세션을 통해 송수신되는 패킷을스니핑하는 통신부 및 상기 통신부를 통해 상기 패킷을 스니핑하며, 상기 스니핑을 통해 획득한 상기 패킷으로부터 상기 사용자 단말이 상기 WAS로 전송한 URL 요청(URL request)을 획득한 후 상기 URL 요청의 URL 타입을 확인하고, 상기 스니핑을 통해 획득한 상기 패킷으로부터 상기 WAS에 수신된 URL 요청에 대응되는 URL 세션 기간 동안 상기 WAS에서 설정한 하나 이상의 DB 세션별로 상기 WAS에서 상기 DB로 전송하는 SQL 요청(SQL request)을 확인하고, 상기 하나 이상의 DB 세션 중 SQL 요청이 확인된 DB 세션별로 상기 확인된 하나 이상의 SQL 요청과 각각 대응되는 하나 이상의 SQL 타입(type)을 식별한 후 상기 URL 세션 기간 및 상기 URL 타입과 매칭하여 SQL 그룹을 생성하며, 다른 URL 세션 기간과 겹치지 않는 특정 URL 세션 기간 또는 상호 겹치는 기간이 존재하는 서로 다른 복수의 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 특정 SQL 그룹에만 특정 SQL 타입이 포함된 경우 상기 특정 SQL 그룹을 유효 SQL 그룹으로 설정하고, 상기 유효 SQL 그룹에 포함된 URL 타입과 하나 이상의 SQL 타입을 매칭하여 매핑 정보를 생성하는 제어부를 포함할 수 있다.An access management apparatus for managing access to a web application server-based database according to an embodiment of the present invention includes an HTTP session established for communication with a user terminal in a WAS (web application server) and the WAS configured for communication with a DB. A communication unit sniffing packets transmitted and received through a DB session and sniffing the packets through the communication unit, and obtaining a URL request transmitted from the user terminal to the WAS from the packet obtained through the sniffing After checking the URL type of the URL request, and from the packet obtained through the sniffing, the WAS to the DB for each one or more DB sessions established in the WAS during the URL session period corresponding to the URL request received by the WAS. After confirming the SQL request to be transmitted, and identifying one or more SQL types corresponding to the one or more SQL requests for each DB session in which the SQL request is confirmed among the one or more DB sessions, the URL A SQL group is created by matching the session duration and the URL type, and a specific SQL group of one or more SQL groups corresponding to a specific URL session duration that does not overlap with other URL session durations or to a plurality of different URL session durations having mutually overlapping durations. When a specific SQL type is included only in the group, a control unit may be configured to set the specific SQL group as an effective SQL group and generate mapping information by matching a URL type included in the effective SQL group with one or more SQL types.
본 발명은 웹 어플리케이션 서버에 정보 수집용 에이전트 프로그램을 삽입할 필요 없이 스니핑을 통해 URL 요청과 SQL 요청을 획득하고, 상기 획득한 URL 요청과 SQL 요청 사이의 관계를 선험적 매핑 알고리즘을 통해 연결하여 어플리케이션 사용자가 실행한 SQL을 용이하게 식별해 낼 수 있으며, 이를 통해 오남용 탐지와 같은 보안 기능과 어플리케이션 모듈의 성능 분석을 웹 어플리케이션 서버에 정보 수집용 에이전트 프로그램을 삽입하지 않고 수행할 수 있도록 지원하여, 기존에 정보 수집용 에이전트 프로그램에 의한 웹 어플리케이션 서버의 자원 과다 사용에 따른 웹 어플리케이션 서버의 성능저하 및 장애와 같은 치명적인 문제 발생을 원천 차단할 수 있으며, 웹 어플리케이션 서버의 자원 가용성 증대에 기여하는 효과가 있다.The present invention obtains a URL request and a SQL request through sniffing without the need to insert an agent program for information collection into a web application server, and connects the relationship between the obtained URL request and the SQL request through a priori mapping algorithm so that the application user It is possible to easily identify SQL executed by the user, and through this, security functions such as misuse detection and performance analysis of application modules can be performed without inserting an agent program for information collection into the web application server. It is possible to fundamentally block fatal problems such as performance degradation and failure of the web application server due to excessive use of resources of the web application server by the agent program for information collection, and has an effect of contributing to increase the resource availability of the web application server.
또한, 본 발명은 URL 요청과 SQL 요청 사이의 관계 파악을 통해 보안 정보에 접근하기 위한 SQL을 사용한 사용자를 용이하게 식별하여 추적할 수 있도록 지원할 수 있으며, 이를 통해 웹 어플리케이션 서버에 별도의 에이전트 프로그램의 삽입 없이 웹 어플리케이션 서버에 대한 보안 기능을 제공할 수 있어 웹 어플리케이션 서버의 가용 자원 확대와 더불어 웹 어플리케이션 서버에 대한 보안을 보장할 수 있는 효과가 있다.In addition, the present invention can support to easily identify and track a user who has used SQL to access security information by identifying the relationship between a URL request and a SQL request, and through this, a separate agent program is installed in a web application server. Since the security function for the web application server can be provided without insertion, the available resources of the web application server can be expanded and the security of the web application server can be guaranteed.
도 1 및 도 2는 기존 웹 어플리케이션 서버의 구동 환경에 대한 예시도.
도 3은 본 발명의 실시예에 따른 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치의 구성도.
도 4는 본 발명의 실시예에 따른 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법에 대한 순서도.
도 5 내지 도 15는 본 발명의 실시예에 따른 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치의 동작 예시도.1 and 2 are exemplary views of a driving environment of an existing web application server;
3 is a block diagram of an access management device for managing access to a database based on a web application server according to an embodiment of the present invention.
4 is a flowchart of an access management method for managing access to a database based on a web application server according to an embodiment of the present invention.
5 to 15 are operational examples of an access management device for managing access to a web application server-based database according to an embodiment of the present invention.
이하, 도면을 참고하여 본 발명의 상세 실시예를 설명한다.Hereinafter, detailed embodiments of the present invention will be described with reference to the drawings.
도 3은 본 발명의 실시예에 따른 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치(100)의 구성도이다.3 is a block diagram of an access management device 100 for managing web application server-based database access according to an embodiment of the present invention.
우선, 상기 웹 어플리케이션 서버(Web Application Server)(이하, WAS)는 상기 WAS에 접속하는 사용자 단말과 통신망을 통해 통신할 수 있으며, 상기 사용자 단말과의 통신을 위한 HTTP(HyperText Transfer Protocol) 세션(session)을 할당하여 설정할 수 있다.First of all, the web application server (hereinafter WAS) may communicate with a user terminal accessing the WAS through a communication network, and a HyperText Transfer Protocol (HTTP) session for communication with the user terminal ) can be assigned.
이때, 상기 WAS는 복수의 사용자 단말과 각각 대응되는 복수의 HTTP 세션을 설정할 수 있음은 물론이다.At this time, of course, the WAS can establish a plurality of HTTP sessions respectively corresponding to a plurality of user terminals.
또한, 상기 WAS는 데이터베이스 시스템(이하, DB)과 통신망을 통해 통신할 수 있으며, 상기 DB는 사용자 단말의 사용자가 요청하는 각종 정보가 저장될 수 있다.In addition, the WAS may communicate with a database system (hereinafter referred to as DB) through a communication network, and the DB may store various information requested by the user of the user terminal.
이때, 상기 DB는 DB 서버로 구성될 수도 있다.At this time, the DB may be configured as a DB server.
또한, 상기 WAS는 상기 사용자 단말의 DB 검색 요청에 따라 상기 DB와의 통신을 위한 공유 DB 세션(shared database session)을 할당하여 설정할 수 있으며, 복수의 사용자 단말로부터 수신되는 검색 요청에 대응되어 복수의 서로 다른 공유 DB 세션을 설정할 수 있다.In addition, the WAS may allocate and set a shared database session for communication with the DB according to the DB search request of the user terminal, and in response to the search request received from a plurality of user terminals, a plurality of mutual You can set up another shared DB session.
이하에서, 상기 공유 DB 세션을 DB 세션으로 명칭하기로 한다.Hereinafter, the shared DB session will be referred to as a DB session.
상술한 구성에서, 상기 사용자 단말은 상기 HTTP 세션을 통해 DB 검색 요청을 위한 URL(Uniform Resource Locator) 요청을 상기 WAS로 전송하며, 상기 WAS는 URL 요청에 대응되는 SQL(Structured Query Language) 요청을 생성하여 상기 DB에 전송하고 상기 DB로부터 상기 SQL 요청에 대응되는 응답 정보를 수신하여 상기 사용자 단말로 전송하게 된다.In the above configuration, the user terminal transmits a URL (Uniform Resource Locator) request for a DB search request to the WAS through the HTTP session, and the WAS generates a SQL (Structured Query Language) request corresponding to the URL request and transmits it to the DB, receives response information corresponding to the SQL request from the DB, and transmits it to the user terminal.
이러한 WAS의 운영시, DB에는 개인 정보와 같은 각종 주요 정보가 저장될 수 있으며, 이에 따라 WAS에서 사용자 단말의 사용자가 DB에 접근한 기록을 관리하고 분석하는 것이 요구되며, 보안이 필요한 정보의 경우 접근 권한이 없는 사용자의 접근을 차단하는 것이 요구된다.During the operation of this WAS, various key information such as personal information can be stored in the DB, and accordingly, it is required that the WAS manages and analyzes the records of users of user terminals accessing the DB, and in the case of information requiring security It is required to block access by users without access rights.
이러한 접근 기록 및 분석과 보안 기능을 수행하기 위해, 사용자 단말에서 요청하는 URL 요청과 해당 URL 요청에 대응되어 WAS에서 생성하는 SQL 요청 사이의 관계를 설정하는 것이 필요한데, 기존에는 이러한 URL 요청과 SQL 요청 사이의 관계 설정과 상기 관계 설정에 따른 접근 기록 생성 및 분석을 위해 WAS에 에이전트 프로그램을 삽입하여 구성하였으나, 이러한 에이전트 프로그램은 WAS의 자원을 과다 사용하여 WAS의 성능을 저하시키거나 장애를 발생시키게 되므로 상당히 비효율적인 문제가 있다.In order to perform such access recording and analysis and security functions, it is necessary to establish a relationship between the URL request requested by the user terminal and the SQL request generated by the WAS in response to the URL request. In the past, such URL request and SQL request Although an agent program was inserted into the WAS to create and analyze access records according to the relationship between the relationship settings and the relationship settings, this agent program excessively uses resources of the WAS, degrading the performance of the WAS or causing failure. There is a very inefficient problem.
이를 해결하기 위해, 본 발명에 따른 상기 접근 관리 장치(100)는 WAS와 별도 구성되어 WAS에 송수신되는 패킷(packet)을 스니핑(sniffing)하여 WAS 내부에 삽입(구성)되지 않고도 용이하게 URL 요청과 SQL 요청 사이의 관계를 파악(설정)한 정보를 생성한 후 이를 기반으로 사용자가 DB에 접근한 기록을 생성하고 분석함과 아울러 DB 접근에 대한 보안 기능을 수행할 수 있어, WAS의 자원을 사용하지 않음에 따라 WAS의 부하를 낮추어 WAS의 성능을 높일 수 있는데, 이를 상술한 구성을 토대로 이하 도면을 통해 상세히 설명한다.In order to solve this problem, the access management device 100 according to the present invention is configured separately from the WAS and sniffs packets transmitted and received to the WAS to easily obtain URL requests and requests without being inserted (configured) into the WAS. After creating information that identifies (sets) the relationship between SQL requests, based on this, it is possible to create and analyze records of user access to the DB, as well as to perform security functions for DB access, thus using WAS resources. By not doing so, the performance of the WAS can be increased by lowering the load of the WAS, which will be described in detail through the following drawings based on the above configuration.
도 4는 본 발명의 실시예에 따른 접근 관리 장치(100)의 동작 순서도이다.4 is an operation flowchart of the access management device 100 according to an embodiment of the present invention.
상기 도 3과 함께 참고하여 설명하면, 상기 접근 관리 장치(100)는 WAS에서 사용자 단말과의 통신을 위해 설정한 HTTP 세션을 중개하는 제 1 스위치(11) 및 상기 WAS가 DB와의 통신을 위해 설정한 DB 세션을 중개하는 제 2 스위치(12)와 연결될 수 있다.Referring to FIG. 3, the access management device 100 includes the
이때, 상기 제 1 스위치(11) 및 제 2 스위치(12)는 각각 스위치(switch)나 TAP(Test Access Point)으로 구성될 수 있다.In this case, each of the
또한, 상기 접근 관리 장치(100)는 상기 제 1 스위치(11)와 연결되는 제 1 네트워크 인터페이스 카드(Network Interface Card)(이하, 제 1 NIC) 및 상기 제 2 스위치(12)와 연결되는 제 2 네트워크 인터페이스 카드(Network Interface Card)(이하, 제 2 NIC)를 포함하는 통신부(110)와, 각종 정보를 저장하는 저장부(130) 및 상기 접근 관리 장치(100)의 전반적인 제어 기능을 수행하는 제어부(120)를 포함하여 구성될 수 있다.In addition, the access management device 100 includes a first network interface card (hereinafter referred to as a first NIC) connected to the
또한, 상기 제어부(120)는 상기 제 1 및 제 2 NIC를 통해 상기 제 1 및 제 2 스위치(11, 12)와 통신할 수 있다.Also, the
이에 따라, 상기 제어부(120)는 상기 HTTP 세션을 통해 송수신되는 패킷을 상기 제 1 NIC와 연결된 상기 제 1 스위치(11)와의 통신을 통해 스니핑하여 상기 제 1 스위치(11)로부터 수신할 수 있으며, 상기 DB 세션을 통해 송수신되는 패킷을 상기 제 2 NIC와 연결된 상기 제 2 스위치(12)와의 통신을 통해 스니핑하여 상기 제 2 스위치(12)로부터 수신할 수 있다.Accordingly, the
이하에서, 상술한 접근 관리 장치(100)의 제 1 및 제 2 스위치와의 통신을 통한 스니핑 구성은 생략하기로 한다.Hereinafter, sniffing configuration through communication with the first and second switches of the above-described access management device 100 will be omitted.
또한, 상기 제어부(120)는 상기 저장부(130)에 저장된 프로그램 및 데이터를 이용하여 상기 접근 관리 장치(100)의 전반적인 제어 기능을 실행한다. 또한, 상기 제어부(120)는 RAM, ROM, CPU, GPU, 버스를 포함할 수 있으며, RAM, ROM, CPU, GPU 등은 버스를 통해 서로 연결될 수 있다.In addition, the
또한, 상기 저장부(130)는 각종 정보를 저장할 수 있으며, 상기 저장부(130)는 HDD(Hard Disk Drive), SSD(Solid State Drive) 등과 같은 다양한 형태로 구성될 수 있다.In addition, the
상기 제어부(120)는 상기 스니핑을 통해 상기 사용자 단말에서 상기 WAS로 전송한 패킷으로부터 URL 요청(URLR : URL Request)(URL 요청 정보)을 획득하고, 상기 URL 요청으로부터 URL 타입(URLT: URL Type)(URL 타입 정보)을 확인(식별)할 수 있다(S1).The
이때, 상기 URL 타입은 URL 요청의 종류로서, 어플리케이션 실행 과정에서 동일 URL 타입에 대해 다수의 URL 요청이 요청될 수 있다.In this case, the URL type is a type of URL request, and multiple URL requests may be requested for the same URL type during an application execution process.
이를 도 5를 통해 설명하면, 도시된 바와 같이, 상기 제어부(120)는 제 1 사용자 단말(사용자 단말 #1)에서 상기 WAS에 전송한 URL 요청 1(URLR 1)을 스니핑하여, 변수 부분(?key1=scott&key2=관리)을 제외한 부분(http://www.sinsiway.com:80/path/urlt1.html)을 URL 타입(URLT 1)으로 식별할 수 있다.5, as shown, the
또한, 상기 제어부(120)는 제 2 사용자 단말(사용자 단말 #2)에서 상기 WAS에 전송한 URL 요청 2(URLR 2)를 스니핑하여, 변수 부분(?key1=tiger&key2=영업)을 제외한 부분(http://www.sinsiway.com:80/path/urlt1.html)을 URL 타입(URLT 1)으로 식별할 수 있다.In addition, the
이때, 상기 URL 요청 1의 URL 타입과 URL 요청 2의 URL 타입이 상호 동일하므로, 상기 제어부(120)는 상기 URL 요청 1과 URL 요청 2에 대해 상호 동일한 URL 타입(URLT 1)으로 식별할 수 있다.At this time, since the URL type of the
또한, 상기 제어부(120)는, 상기 스니핑을 통해 획득한 패킷으로부터 상기 WAS에 수신된 URL 요청에 대응되는 URL 세션 기간(URLS : URL Session)(또는 URL 세션 구간) 동안 상기 WAS에서 설정한 하나 이상의 DB 세션별로 상기 WAS에서 상기 DB로 전송하는 SQL 요청(SQL request)(SQL 요청 정보)을 확인할 수 있다(S2).In addition, the
이때, 상기 URL 세션 기간은 하나의 URL 요청이 수행(실행)되는 기간으로, 상기 사용자 단말이 상기 WAS에 상기 URL 요청을 전송한 시점부터 상기 WAS에서 상기 URL 요청을 전송한 사용자 단말로 상기 URL 요청에 대응되는 응답이 완료되는 시점(상기 WAS에서 상기 사용자 단말에 상기 URL 요청에 대응되는 응답을 전송하는 시점)까지의 기간을 의미할 수 있다.At this time, the URL session period is a period during which one URL request is performed (executed), and from the time the user terminal transmits the URL request to the WAS, the WAS requests the URL to the user terminal that has transmitted the URL request. It may mean a period of time until a response corresponding to is completed (a time when the WAS transmits a response corresponding to the URL request to the user terminal).
또한, 상기 제어부(120)는 WAS로 들어오는 네트워크를 스니핑하여 상기 URL 세션 기간을 생성할 수 있으며, 일례로 상기 제어부(120)는 상기 WAS에 수신되는 패킷을 스니핑하여 상기 URL 세션 기간을 생성할 수 있다.In addition, the
일례로, 도 5에 도시된 바와 같이, 상기 제어부(120)는 스니핑을 통해 제 1 사용자 단말로부터 URL 요청 1이 상기 WAS에 전송된 시점부터 상기 WAS가 URL 요청 1에 대응되는 응답을 상기 제 1 사용자 단말에 전송하는데 까지 소요된 시간인 t1부터 t7 까지의 시간을 URL 세션 기간(URLS 1)으로 식별할 수 있다.For example, as shown in FIG. 5 , the
또한, 상기 제어부(120)는, 상기 스니핑을 통해 제 2 사용자 단말로부터 URL 요청 2가 WAS에 전송된 시점부터 상기 WAS가 URL 요청 2에 대응되는 응답을 상기 사용자 단말에 전송하는데 까지 소요된 시간인 t4부터 t7까지의 시간을 상기 URS 세션 기간과 다른 URL 세션 기간(URLS 2)으로 설정할 수 있다.In addition, the
이때, 상기 제어부(120)는 서로 다른 URL 세션 기간을 URL 세션 기간을 구성하는 시간 범위로 구분할 수 있으며, 이러한 시간 범위를 서로 다른 URL 세션 기간을 구분하는 URL 세션 기간 식별자로서 사용할 수 있다. 즉, 상기 제어부(120)는 제 1 URL 세션 기간의 시간 범위와 상기 제 1 URL 세션 기간과 다른 제 2 URL 세션 기간의 시간 범위를 비교하여, 상기 제 1 URL 세션 기간과 제 2 URL 세션 기간을 구분할 수 있다.At this time, the
또한, 상기 제어부(120)는, 상기 URL 세션 기간 동안 하나 이상의 DB 세션을 설정할 수 있으며, 상기 WAS에서 상기 URL 요청을 수행하기 위해 상기 WAS가 설정한 하나 이상의 DB 세션 중 임의의 DB 세션을 자유롭게 이용할 수 있다.In addition, the
또한, 상기 제어부(120)는, 상기 URL 세션 기간 동안 상기 WAS에서 하나 이상의 DB 세션을 통해 상기 DB로 전송하는 SQL 요청별로 SQL 타입(SQLT: SQL Type)을 확인할 수 있다.In addition, the
이때, 상기 SQL 타입(SQL 타입 정보)은 SQL 요청의 종류로서 SQL 문장(SQL 요청)에서 상수와 변수를 뺀 나머지 부분이며, 상기 WAS는 동일한(하나의) SQL 타입을 기초로 상수와 변수만 달리해서 서로 다른 SQL 요청을 생성할 수 있으며, 어느 하나의 SQL 타입을 이용하여 생성된 복수의 서로 다른 SQL 요청은 상기 제어부(120)에 의해 상호 간 동일한 SQL 타입으로 식별될 수 있다.At this time, the SQL type (SQL type information) is the type of SQL request, which is the remainder of the SQL statement (SQL request) minus constants and variables, and the WAS is based on the same (one) SQL type, with only constants and variables different. Thus, different SQL requests can be generated, and a plurality of different SQL requests generated using any one SQL type can be identified by the
일례로, 도 5에 도시된 바와 같이, 상기 제어부(120)는 상기 URL 세션 기간(URLS 1) 동안 DB 세션 1을 통해 상기 WAS에서 DB로 전송한 SQL 요청 1(SQLR 1) 및 SQL 요청 2(SQLR 2)를 스니핑하여 식별할 수 있으며, 상기 SQL 요청 1에서 변수 부분('scott')을 제외한 부분(select * from emp where ename = )을 SQL 요청 1의 SQL 타입(SQLT 1)으로 식별할 수 있다.For example, as shown in FIG. 5 , the
또한, 상기 제어부(120)는 상기 URL 세션 기간(URLS 1) 동안 DB 세션 1을 통해 상기 WAS에서 DB로 전송한 SQL 요청 2에서 변수 부분('관리')를 제외한 부분(select * from dept where dname = )을 SQL 요청 2의 SQL 타입(SQLT 2)으로 식별할 수 있다.In addition, the
또한, 상기 제어부(120)는 상기 다른 URL 세션 기간(URLS 2) 동안에 전송된 SQL 요청 3(SQLR 3)와 SQL 요청 4(SQLR 4)를 식별할 수 있으며, 상기 SQL 요청 3의 SQL 타입과 SQL 요청 4의 SQL 타입을 식별할 수 있다.In addition, the
이때, 상기 SQL 요청 1과 SQL 요청 3의 SQL 타입이 상호 동일하고, SQL 요청 2와 SQL 요청 4의 SQL 타입으로 상호 동일하므로, 상기 제어부(120)는 SQL 요청 1과 SQL 요청 3의 SQL 타입을 상호 동일한 제 1 SQL 타입(SQLT 1)으로 식별할 수 있고, SQL 요청 2와 SQL 요청 4의 SQL 타입을 상호 동일한 제 2 SQL 타입(SQLT 2)으로 식별할 수 있다.At this time, since the SQL types of
또한, 상기 제어부(120)는 스니핑을 통해 상기 URL 세션 기간 동안 상기 WAS에 의해 설정된 하나 이상의 DB 세션을 식별할 수 있으며, 상기 식별된 하나 이상의 DB 세션별로 DB 세션 식별자를 설정할 수 있으며, 서로 다른 복수의 DB 세션에 대해 서로 다른 DB 세션 식별자를 설정할 수 있다.In addition, the
이에 따라, 상기 제어부(120)는 상기 DB 세션 식별자를 통해 특정 DB 세션을 다른 DB 세션과 구분할 수 있다.Accordingly, the
또한, 상기 제어부(120)는, 상기 URL 세션 기간 동안(또는 URL 세션 기간에 따른 기간(시간) 동안) 상기 식별된 하나 이상의 DB 세션 중 SQL 요청이 확인된(전송된) DB 세션별로 상기 확인된 하나 이상의 SQL 요청과 각각 대응되는 하나 이상의 SQL 타입(type)을 식별할 수 있다.In addition, the
즉, 상기 제어부(120)는, 상기 URL 세션 기간 동안 상기 SQL 요청이 확인된 하나 이상의 DB 세션 각각에 대해 DB 세션에서 확인된 하나 이상의 SQL 요청별 SQL 타입을 식별할 수 있으며, 이를 통해 상기 DB 세션에서 확인된 하나 이상의 SQL 요청의 생성에 사용된 하나 이상의 SQL 타입을 식별할 수 있다.That is, the
또한, 상기 제어부(120)는, 상기 URL 세션 기간 동안 SQL 요청이 확인된 하나 이상의 DB 세션별로 상기 URL 세션 기간에 대응되는 상기 식별된 하나 이상의 SQL 타입을 상기 URL 세션 기간 및 상기 URL 세션 기간에 대응되는 URL 요청의 URL 타입과 매칭하여 SQL 그룹을 생성한 후 상기 저장부(130)에 저장할 수 있다(S3).In addition, the
이때, 상기 URL 세션 기간에 대해 식별된 복수의 SQL 타입 중에서 상호 중복되는 복수의 SQL 타입이 존재하면, 상기 제어부(120)는 상기 중복되는 복수의 SQL 타입 중 하나만을 상기 SQL 그룹에 포함시키고 나머지는 제외시키거나 삭제할 수 있다.At this time, if there are a plurality of overlapping SQL types among the plurality of SQL types identified for the URL session period, the
일례로, 상기 제어부(120)는 특정 URL 요청에 대응되는 특정 URL 세션 기간 동안 제 1 DB 세션을 통해 전송된 하나 이상의 SQL 요청과 각각 대응되는 하나 이상의 SQL 타입을 특정 URL 세션 기간 및 제 1 DB 세션에 대응되도록 식별하고, 상기 특정 URL 세션 기간 및 제 1 DB 세션에 대응되도록 식별된 하나 이상의 SQL 타입과 상기 특정 URL 세션 기간 및 상기 특정 URL 세션 기간에 대응되는 특정 URL 요청에 대해 식별된 특정 URL 타입을 상호 매칭하여 제 1 SQL 그룹을 생성하며, 상기 제 1 SQL 그룹을 상기 제 1 DB 세션의 DB 세션 식별자와 매칭할 수 있다.For example, the
즉, 상기 제 1 SQL 그룹에는 상기 식별된 하나 이상의 SQL 타입과, 상기 특정 URL 세션 기간 및 상기 특정 URL 타입 등이 상호 매칭된 상태로 포함될 수 있다.That is, the identified one or more SQL types, the specific URL session period, and the specific URL type may be included in a mutually matched state in the first SQL group.
이때, 상기 제어부(120)는 상기 특정 URL 세션 기간 및 제 1 DB 세션에 대응되도록 식별된 하나 이상의 SQL 타입과 상기 특정 URL 세션 기간 및 상기 특정 URL 타입을 포함하는 상기 제 1 SQL 그룹을 생성한 후 상기 제 1 SQL 그룹과 상기 제 1 DB 세션 식별자를 매칭하여 상기 저장부(130)에 저장하거나, 상기 제 1 SQL 그룹에 상기 제 1 DB 세션 식별자를 설정하거나 포함시킬 수 있다.At this time, after the
또한, 상술한 바와 마찬가지로, 상기 제어부(120)는 특정 URL 세션 기간 동안 제 2 DB 세션을 통해 전송된 하나 이상의 SQL 요청과 각각 대응되는 하나 이상의 SQL 타입과, 상기 특정 URL 세션 기간 및 상기 특정 URL 타입을 상호 매칭된 상태로 포함하는 제 2 SQL 그룹을 생성할 수 있으며, 상기 제 2 SQL 그룹과 상기 제 2 DB 세션 식별자를 매칭하여 상기 저장부(130)에 저장하거나, 상기 제 2 SQL 그룹에 상기 제 2 DB 세션에 대응되는 제 2 DB 세션 식별자를 포함시키거나 설정할 수 있다.In addition, as described above, the
또한, 상기 제어부(120)는, URL 요청이 상기 WAS에 수신될 때마다 URL 요청에 대응되는 URL 세션 기간을 생성할 수 있으며, 복수의 서로 다른 URL 세션 기간별로 상술한 바와 같이 하나 이상의 SQL 그룹을 생성할 수 있다.In addition, the
상술한 구성에서, 상기 SQL 그룹은 하나의 정보(데이터)일 수 있으며, 이하에서는 SQL 그룹으로 설명한다.In the above configuration, the SQL group may be one piece of information (data), and will be described below as a SQL group.
또한, 상기 제어부(120)는, 상기 저장부(130)에 저장된 복수의 SQL 그룹을 기초로 미리 저장된 선험적 매핑 알고리즘을 통해 URL 타입과 SQL 타입 사이의 관계를 설정한 매핑 정보를 생성하고, 상기 매핑 정보를 기초로 사용자별 데이터베이스에 대한 접근을 식별하여 사용자별 접근 이력에 대한 접근 이력 테이블을 생성할 수 있는데, 이러한 선험적 매핑 알고리즘을 이용한 상기 제어부(120)의 접근 이력 테이블 생성 과정을 도 6 내지 도 15를 참고하여 상세히 설명한다.In addition, the
우선, 도시된 바와 같이, 상기 제어부(120)는, 상기 저장부(130)에 저장된 복수의 SQL 그룹을 대상으로 복수의 SQL 그룹 각각에서 URL 세션 기간을 확인할 수 있으며, 다른 URL 세션 기간과 겹치지 않는 특정 URL 세션 기간 또는 상호 겹치는 기간이 존재하는 서로 다른 복수의 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 특정 SQL 그룹에만 특정 SQL 타입이 포함된 경우 상기 특정 SQL 그룹을 유효 SQL 그룹으로 설정할 수 있다(S4).First of all, as shown, the
일례로, 상기 제어부(120)는, 상기 복수의 SQL 그룹 중 어느 하나에서 특정 URL 세션 기간을 확인하고, 상기 복수의 SQL 그룹을 기초로 상기 특정 URL 세션 기간과 일부 기간이 겹치는 다른 URL 세션 기간이 존재하는지 판단할 수 있다.For example, the
또한, 상기 제어부(120)는, 상기 특정 URL 세션 기간이 다른 URL 세션 기간과 겹치지 않는 경우 상기 특정 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹에 포함된 SQL 타입을 확인하여, 상기 특정 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹을 대상으로 다른 SQL 그룹에는 존재하지 않는 SQL 타입을 포함하는 SQL 그룹마다 유효 SQL 그룹으로 설정하여 상기 저장부(130)에 저장할 수 있다.In addition, if the specific URL session duration does not overlap with other URL session durations, the
일례로, 상기 제어부(120)는, 다른 URL 세션 기간과 겹치는 기간이 존재하지 않는 상기 특정 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 제 1 SQL 그룹에만 제 1 SQL 타입이 존재하면, 상기 제 1 SQL 그룹을 유효 그룹으로 설정하고, 상기 특정 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 제 2 SQL 그룹에만 제 2 SQL 타입이 존재하면, 상기 제 2 SQL 그룹을 유효 그룹으로 설정할 수 있다.For example, if the first SQL type exists only in the first SQL group among one or more SQL groups corresponding to the specific URL session period that does not have a period overlapping with another URL session period, the
또한, 상기 제어부(120)는, 상기 저장부(130)에 저장된 복수의 SQL 그룹을 기초로 특정 URL 세션 기간과 일부 기간이 겹치는 하나 이상의 타 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 및 상기 특정 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹을 식별하여 상기 저장부(130)로부터 추출할 수 있으며, 상기 추출된 복수의 SQL 그룹 중 특정 SQL 그룹에만 특정 SQL 타입이 포함된 경우 상기 특정 SQL 그룹을 유효한 SQL 그룹으로 식별하고, 상기 특정 SQL 그룹을 유효 SQL 그룹으로 설정하여 상기 저장부(130)에 저장할 수 있다.In addition, the
일례로, 상기 제어부(120)는 상기 추출된 복수의 SQL 그룹 중 제 3 URL 세션 기간에 대응되는 제 3 SQL 그룹에만 제 3 SQL 타입이 존재하면, 상기 제 3 SQL 그룹을 유효 SQL 그룹으로 설정하고, 상기 제 3 URL 세션 기간과 일부 기간이 겹치는 제 4 URL 세션 기간에 대응되는 제 4 SQL 그룹에만 제 4 SQL 타입이 존재하면, 상기 제 4 SQL 그룹을 유효 SQL 그룹으로 설정할 수 있다.For example, if the third SQL type exists only in the third SQL group corresponding to the third URL session period among the extracted plurality of SQL groups, the
또한, 상기 제어부(120)는, 상기 유효 SQL 그룹 설정시마다 상기 유효 SQL 그룹에 포함된 URL 타입과 하나 이상의 SQL 타입을 매칭하여 매핑 정보를 생성할 수 있으며, 상기 매핑 정보를 상기 저장부(130)에 저장할 수 있다(S5).In addition, the
일례로, 상기 제어부(120)는, 특정 유효 SQL 그룹에 포함된 특정 URL 타입에 상기 특정 유효 SQL 그룹에 포함된 하나 이상의 SQL 타입을 매칭시켜, 상기 특정 URL 타입에 매칭된 하나 이상의 SQL 타입 및 상기 특정 URL 타입을 포함하는 매핑 정보를 생성할 수 있다.For example, the
또한, 상기 제어부(120)는 상호 동일한 URL 세션 기간을 가진(상호 동일한 URL 세션 기간이 포함된) 하나 이상의 SQL 그룹 중에서 유효 SQL 그룹을 제외한 나머지 SQL 그룹이 상기 저장부(130)에 존재하면, 상기 유효 SQL 그룹과 동일한 URL 세션 기간을 가진 상기 나머지 SQL 그룹을 삭제할 수 있다.In addition, the
일례로, 상기 제어부(120)는 특정 URL 세션 기간에 대응되는 복수의 SQL 그룹이 생성된 경우 상기 특정 URL 세션 기간에 대응되는 복수의 SQL 그룹 중 하나 이상의 유효 SQL 그룹을 제외한 나머지인 하나 이상의 SQL 그룹을 가짜(무효)로 판단하고, 상기 나머지에 해당되는 하나 이상의 SQL 그룹을 상기 저장부(130)에서 삭제할 수 있다.For example, when a plurality of SQL groups corresponding to a specific URL session period are created, the
상술한 내용을 도 6 내지 도 11을 참고하여 설명하면, 도시된 바와 같이, 상기 제어부(120)는 제 1 URL 요청(이하, URLR 1)에 대응되는 제 1 URL 세션 기간(이하, URLS-11) 동안 상기 WAS에 의해 설정된 복수의 DB 세션(DB 세션 1, DB 세션 2, DB 세션 3)을 스니핑을 통해 식별할 수 있다.6 to 11, the
또한, 상기 제어부(120)는 상기 스니핑을 통해 상기 DB 세션 1을 통해 상기 URLS-11 동안 상기 WAS에서 DB로 전송하는 복수의 SQL 요청을 확인한 후 상기 복수의 SQL 요청과 각각 대응되는 복수의 SQL 타입(SQLT 11, SQLT 12, SQLT 13)을 식별하고, 상기 복수의 SQL 타입(SQLT 11, SQLT 12, SQLT 13)을 상기 URLS-11 및 상기 URLR 1에 대해 확인한 제 1 URL 타입(이하, URLT 1) 및 상기 URLS-11과 매칭하여 제 1 SQL 그룹(A)을 생성할 수 있다.In addition, the
또한, 상기 제어부(120)는, 스니핑을 이용하여 상기 DB 세션 2를 통해 상기 URLS-11 동안 상기 WAS에서 DB로 전송하는 복수의 SQL 요청과 각각 대응되는 복수의 SQL 타입(SQLT 11, SQLT 22)를 식별할 수 있으며, 복수의 SQL 타입(SQLT 11, SQLT 22)을 상기 URLS-11 및 상기 URLT 1과 매칭하여 제 2 SQL 그룹(B)을 생성할 수 있다.In addition, the
또한, 상기 제어부(120)는, 상기 URLS-11 동안 상기 DB 세션 3에서는 SQL 요청이 전송되지 않은 경우 URLS-11 및 DB 세션 3에 대응되는 SQL 그룹을 생성하지 않거나, SQL 타입이 포함되지 않고 URLS-11과 URLT 1만이 포함된 제 3 SQL 그룹(C)을 생성할 수 있다. 또한, 상기 제어부(120)는 SQL 타입이 포함되지 않은 제 3 SQL 그룹(C)은 유효 SQL 그룹의 판단 대상에서 제외시킬 수 있다.In addition, if the SQL request is not transmitted in the
만일, 상기 URLS-11이 다른 URL 세션 기간과 겹치는 기간이 없는 경우, 상기 제어부(120)는, 상기 URLS-11에 대응되도록 생성된 제 1 SQL 그룹(A)에만 SQLT 11, SQLT 12, SQLT 13이 포함되어 상기 제 1 SQL 그룹(A)을 유효 SQL 그룹으로 설정하고, 상기 제 2 SQL 그룹(B)에만 SQLT 21, SQLT 22가 포함되어 상기 제 2 SQL 그룹(B)을 유효 SQL 그룹으로 설정할 수 있다.If there is no period in which the URLS-11 overlaps with other URL session periods, the
그러나, 도시된 바와 같이, 상기 URLS-11과 겹치는 기간이 존재하며 상기 URLS-11과 다른 URL 세션 기간인 URLS-21 및 URLS-31이 존재하면, 상기 제어부(120)는, 상기 URLS-21에 대응되도록 DB 세션별(DB 세션 1, DB 세션 2, DB 세션 3)로 생성된 하나 이상의 SQL 그룹과, 상기 URLS-31에 대응되도록 DB 세션별(DB 세션 1, DB 세션 2, DB 세션 3)로 생성된 하나 이상의 SQL 그룹과, 상기 URLS-11에 대응되는 상기 제 1 SQL 그룹(A) 및 상기 제 2 SQL 그룹(B) 중에서 어느 하나에만 존재하는 SQL 타입이 존재하는지 판단할 수 있다.However, as shown, if a period overlapping with the URLS-11 exists and URLS-21 and URLS-31, which are URL session periods different from the URLS-11, exist, the
이때, 상기 제어부(120)는, 상기 URLS-21에 대응되도록 DB 세션별(DB 세션 1, DB 세션 2, DB 세션 3)로 생성된 하나 이상의 SQL 그룹과, 상기 URLS-31에 대응되도록 DB 세션별(DB 세션 1, DB 세션 2, DB 세션 3)로 생성된 하나 이상의 SQL 그룹과, 상기 URLS-11에 대응되는 상기 제 1 SQL 그룹(A) 및 상기 제 2 SQL 그룹(B) 각각을 검토 대상 그룹으로 설정할 수 있다.At this time, the
이에 따라, 도 6에 도시된 바와 같이, SQLT 11의 경우 복수의 검토 대상 그룹 중에서 상기 제 1 SQL 그룹(A)에만 유일하게 존재하므로, 상기 제어부(120)는, 복수의 검토 대상 그룹 중에서 상기 제 1 SQL 그룹(A)에만 유일하게 존재하는 SQLT 11을 식별할 수 있으며, 이를 통해 상기 제 1 SQL 그룹(A)을 유효한 SQL 그룹으로 판단하고 상기 제 1 SQL 그룹(A)을 유효 SQL 그룹으로 설정할 수 있다.Accordingly, as shown in FIG. 6, since
또는, SQL 타입인 SQLT 34의 경우 상기 복수의 검토 대상 그룹 중 URLS-31에 대응되는 어느 하나의 SQR 그룹인 제 4 SQL 그룹(D)에만 포함되어 있으므로, 상기 제 4 SQL 그룹(D)을 유효 SQL 그룹으로 설정할 수 있다.Alternatively, in the case of SQLT 34, which is an SQL type, since it is included only in the 4th SQL group (D), which is one SQR group corresponding to URLS-31 among the plurality of review target groups, the 4th SQL group (D) is valid. It can be set as a SQL group.
또한, 도 6 내지 도 9에 도시된 바와 같이, 상기 제어부(120)는 유효 SQL 그룹으로 설정된 제 1 SQL 그룹(A)과 동일한 URL 세션 기간(URLS-11)을 가지며(포함하며) DB 세션 2에 대응되는 제 2 SQL 그룹(B)을 상기 저장부(130)에서 삭제할 수 있다. 또한, 상기 제어부(120)는 상기 DB 세션 3에 상기 URLS-11에 대응되는 제 3 SQL 그룹(C)이 존재하는 경우 상기 제 3 SQL 그룹(C)을 삭제할 수 있다.In addition, as shown in FIGS. 6 to 9, the
즉, 상기 제어부(120)는, URLS-11의 기간 동안에 생성된 제 2 SQL 그룹(B)에 속한 복수의 SQL 타입(SQLT21, SQLT22)은 상기 URLS-11에 대응되는 URLR 1에 대해 요청된 SQL 요청으로부터 식별된 것이 아닌 다른 URL 세션 기간 동안에 전송된 SQL 요청으로부터 식별된 것으로 판단하고, 상기 제 2 SQL 그룹(B)을 삭제할 수 있다.That is, the
마찬가지로, 상기 제어부(120)는 유효 SQL 그룹으로 설정된 DB 세션 3에 대응되는 제 4 SQL 그룹(D)과 동일한 URL 세션 기간(URLS-31)을 가지는(포함하는) DB 세션 2에 대응되는 제 5 SQL 그룹(E)와 DB 세션 1에 대응되는 제 6 SQL 그룹(F)를 상기 저장부(130)에서 삭제할 수 있다.Similarly, the
또한, 상기 제어부(120)는 유효 SQL 그룹이 결정된 특정 URL 세션 기간과 일부 기간이 겹치는 하나 이상의 타 URL 세션 기간 중에서 유효 SQL 그룹이 결정되지 않은 타 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹을 대상으로 상기 특정 URL 세션 기간에 대응되는 유효 SQL 그룹에 포함된 하나 이상의 SQL 타입 중 적어도 하나가 존재하는 SQL 그룹을 삭제하여, 특정 URL 세션 기간에 대응되는 유효 SQL 그룹을 기초로 타 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 가짜를 판별하여 삭제할 수 있다.In addition, the
또한, 상기 제어부(120)는, 상기 특정 URL 세션 기간과 일부 기간이 겹치며 유효 SQL 그룹이 결정되지 않은 타 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 유효 SQL 그룹을 이용한 삭제를 통해 하나의 SQL 그룹만 존재하면(남게 되면), 상기 하나의 SQL 그룹을 상기 타 URL 세션 기간에 대응되는 유효 SQL 그룹으로 설정할 수 있다.In addition, the
일례로, 도 8 및 도 9에 도시된 바와 같이, 유효 SQL 그룹이 결정된 상기 URLS-11와 겹치는 기간이 존재하는 하나 이상의 다른 URLS 세션 기간 중에서 유효 SQL 그룹이 결정되지 않은 URL 세션 기간이 존재하는지 판단하고, 판단 결과 유효 SQL 그룹이 결정되지 않은 URL 세션 기간이 존재하면 해당 URL 세션 기간인 URLS-21를 식별할 수 있다.For example, as shown in FIGS. 8 and 9, it is determined whether a URL session period in which an effective SQL group is not determined exists among one or more other URLS session periods in which a period overlapping with the URLS-11 in which an effective SQL group is determined exists. And, as a result of the determination, if there is a URL session period for which a valid SQL group has not been determined, URLS-21, which is the URL session period, can be identified.
또한, 상기 제어부(120)는 상기 URLS-21에 대응되는 하나 이상의 SQL 그룹(G, H, I)을 식별하고, 상기 URLS-21에 대응되는 하나 이상의 SQL 그룹(G, H, I) 중에서 상기 URLS-11에 대응되는 유효 SQL 그룹인 제 1 SQL 그룹(A)에 포함된 하나 이상의 SQL 타입 중 적어도 하나를 포함하는 SQL 그룹(H)을 가짜로 판별하여 삭제할 수 있다.In addition, the
또한, 상기 제어부(120)는, 상기 URLS-21은 유효 SQL 그룹이 결정된 URLS-31와 겹치므로, 상기 URLS-21에 대응되는 하나 이상의 SQL 그룹(G, I) 중에서 상기 URLS-31에 대응되는 유효 SQL 그룹인 제 4 SQL 그룹(D)에 포함된 하나 이상의 SQL 타입 중 적어도 하나를 포함하는 SQL 그룹(I)을 가짜로 판별하여 삭제할 수 있다.In addition, since the URLS-21 overlaps with the URLS-31 in which the effective SQL group is determined, the
이를 통해, 상기 제어부(120)는, 상기 URLS-21에 대응되는 하나 이상의 SQL 그룹을 대상으로 상기 유효 SQL 그룹을 이용한 삭제 과정을 통해 하나의 SQL 그룹(G)만이 남게 되면, 상기 URLS-21에 대응되는 상기 하나의 SQL 그룹(G)을 유효 SQL 그룹으로 설정할 수 있다.Through this, the
한편, 도 10 및 도 11에 도시된 바와 같이, 상기 제어부(120)는 상기 저장부(130)에 저장된 상기 유효 SQL 정보를 기초로 상기 유효 SQL 정보에 포함된 하나 이상의 SQL 타입 및 URL 타입을 포함하며 상기 유효 SQL 정보에 따른 URL 세션 기간과 다른 URL 세션 기간이 설정된 타 SQL 그룹을 유효 SQL 정보로 설정할 수 있다.Meanwhile, as shown in FIGS. 10 and 11 , the
일례로, 상기 제어부(120)는 URLS-21에 대응되는 유효 SQL 그룹인 제 7 SQL 그룹(G)을 기초로 상기 제 7 SQL 그룹(G)에 포함된 URL 타입(URLT 2) 및 하나 이상의 SQL 타입(SQLT21, SQLT22, SQLT23, SQLT24)을 동일하게 포함하면서 상기 제 7 SQL 그룹(G)에 따른 URL 세션 기간과 상이한 다른 URL 세션 기간인 URLS-71이 설정된 제 8 SQL 그룹(J)을 상기 저장부(130)에서 식별할 수 있으며, 상기 제 8 SQL 그룹(J)을 유효 SQL 그룹으로 설정할 수 있다.For example, the
즉, 상기 제어부(120)는 유효 SQL 그룹과 동일한 URL 타입 및 SQL 타입 집합을 가지면서 상기 유효 SQL 그룹과 다른 URL 세션 기간을 가진 SQL 그룹을 유효한 SQL 그룹으로서 식별하고, 유효 SQL 그룹으로 설정할 수 있다.That is, the
또한, 상기 제어부(120)는 상기 유효 SQL 그룹으로 설정된 상기 제 8 SQL 그룹과 동일한 URL 세션 기간 동안 상기 제 8 SQL 그룹에 대응되는 DB 세션과 다른 DB 세션별로 생성된 하나 이상의 SQL 그룹을 가짜로 판별하고 상기 저장부(130)에서 삭제할 수 있다.In addition, the
또한, 도 12에 도시된 바와 같이, 상기 제어부(120)는, 상기 SQL 그룹에 속한 상기 SQL 타입별로 상기 WAS에서 상기 SQL 타입에 대응되는 SQL 요청을 전송한 시간에 대한 정보를 상기 SQL 타입과 매칭하여 상기 SQL 그룹에 포함시킬 수 있다.In addition, as shown in FIG. 12, the
이에 따라, 상기 제어부(120)는, 특정 DB 세션에 대응되는 복수의 SQL 그룹 중 유효 SQL 그룹으로 설정되지 않은 SQL 그룹(K)에 속한 특정 SQL 타입(SQLT63)의 전송 시간이 상기 특정 DB 세션에 대응되는 특정 유효 SQL 그룹(L)에 포함된 제 5 SQL 타입(SQLT62)의 전송 시간과 제 6 SQL 타입(SQLT64)의 전송 시간 사이에 존재하면, 상기 특정 SQL 타입(SQLT63)을 상기 특정 유효 SQL 그룹(L)에 포함시킬 수 있다.Accordingly, the
또한, 상기 제어부(120)는, 특정 DB 세션에 대응되며 유효 SQL 그룹으로 설정되지 않은 특정 SQL 그룹에 포함된 URL 세션 기간이 상기 특정 DB 세션에 대응되는 유효 SQL 그룹에 포함된 URL 세션 기간에 모두 포함되는 경우 상기 특정 SQL 그룹을 상기 저장부(130)에서 삭제할 수 있다.In addition, the
또한, 도 13에 도시된 바와 같이, 상기 제어부(120)는, 상기 저장부(130)에 저장된 하나 이상의 매핑 정보를 포함하며 URL 타입과 SQL 타입 사이의 관계가 정의된 맵 정보(URLT_SQLT Map)를 생성하여 상기 저장부(130)에 저장할 수 있다(S6).In addition, as shown in FIG. 13, the
즉, 상기 맵 정보는 URL 타입과 SQL 타입 사이의 관계에 대한 매핑 정보를 하나 이상 포함하여 구성될 수 있다.That is, the map information may include at least one piece of mapping information about a relationship between a URL type and an SQL type.
또한, 도 14에 도시된 바와 같이, 상기 제어부(120)는, 상기 맵 정보에 포함된 매핑 정보를 기초로 상기 저장부(130)에서 아직 유효 SQL 그룹으로 설정되지 않은 SQL 그룹을 대상으로 상기 매핑 정보에 포함된 URL 타입과 하나 이상의 SQL 타입을 모두 포함하는 SQL 그룹을 유효 SQL 그룹으로 설정할 수 있다.In addition, as shown in FIG. 14, the
또한, 상기 제어부(120)는, 상기 매핑 정보를 기초로 유효 SQL 그룹으로 설정된 SQL 그룹에 따른 URL 세션 기간에 대응되는 다른 SQL 그룹을 가짜로 판별하고 삭제할 수 있다.In addition, the
한편, 도 15에 도시된 바와 같이, 상기 제어부(120)는, 유효 SQL 그룹으로 설정되는 SQL 그룹마다 상술한 바와 같이 유효 SQL 그룹으로 설정된 SQL 그룹에서 URL 타입과 하나 이상의 SQL 타입을 추출한 후 상호 매칭하여 매핑 정보를 생성할 수 있다.Meanwhile, as shown in FIG. 15, the
또한, 상기 제어부(120)는, 복수의 서로 다른 사용자 단말로부터 상기 WAS에 수신되는 복수의 URL 요청 각각에 대해 상술한 동작을 수행하여 복수의 매핑 정보를 생성한 후 상기 저장부(130)에 저장하고, 상기 저장부(130)에 저장된 상기 복수의 매핑 정보를 포함하는 맵 정보를 생성할 수 있다.In addition, the
또한, 상기 제어부(120)는, 상기 스니핑을 통해 상기 사용자 단말에서 상기 WAS로 전송하는 패킷으로부터 사용자 단말의 식별 정보 및 특정 URL 요청을 추출할 수 있다.In addition, the
이때, 상기 사용자 단말의 식별 정보는 상기 WAS에 등록된 사용자 ID, 사용자 단말의 IP(Internet Protocol) 정보 등과 같은 다양한 정보를 포함할 수 있다.In this case, the identification information of the user terminal may include various information such as a user ID registered in the WAS and Internet Protocol (IP) information of the user terminal.
또한, 상기 제어부(120)는, 상기 스니핑을 통해 상기 특정 URL 요청에 대응되는 URL 세션 기간 동안 상기 WAS에서 상기 DB로 전송하는 패킷으로부터 하나 이상의 SQL 요청을 추출할 수 있다.In addition, the
또한, 상기 제어부(120)는, 상기 맵 정보(또는 매핑 정보)를 기초로 상기 특정 URL 요청의 URL 타입에 대응되는 하나 이상의 SQL 타입을 식별한 후 상기 추출된 하나 이상의 SQL 요청 중 상기 식별된 하나 이상의 SQL 타입과 각각 대응되는 하나 이상의 SQL 요청을 식별하고, 상기 식별된 하나 이상의 SQL 요청과 상기 특정 URL 요청 및 상기 사용자 단말의 식별정보를 포함하는 접근 정보를 생성할 수 있다(S7).In addition, the
또한, 상기 제어부(120)는, 상기 웹 어플리케이션 서버에 접속하여 URL 요청을 전송하는 사용자 단말별로 접근 정보를 하나 이상 생성하여 상기 저장부(130)에 저장할 수 있으며, 상기 저장부(130)에 저장된 하나 이상의 접근 정보를 기초로 접근 이력 테이블(접근 이력 정보)을 생성할 수 있다.In addition, the
또한, 상기 통신부(110)는 상기 WAS와 통신하기 위한 통신 모듈을 포함할 수 있으며, 상기 제어부(120)는 상기 접근 이력 테이블을 상기 통신부(110)를 통해 상기 WAS에 전송할 수도 있다.Also, the
또한, 상기 제어부(120)는 보안 정보에 접근하기 위한 하나 이상의 SQL 요청이 미리 설정된 설정 정보를 기초로 특정 사용자 단말에 대응되는 상기 접근 정보에 따른 하나 이상의 SQL 요청 중에서 보안 정보에 접근하는 SQL 요청을 식별할 수 있으며, 상기 접근 정보에 따른 하나 이상의 SQL 요청 중 적어도 하나가 보안 정보에 접근하기 위한 SQL 요청인 경우 상기 저장부(130)에서 상기 특정 사용자 단말의 식별정보에 대응되는 권한 정보를 식별한 후 상기 권한 정보를 기초로 상기 보안 정보에 대한 상기 특정 사용자 단말에 대응되는 사용자의 접근 권한 여부를 판단할 수 있다.In addition, the
이때, 상기 보안 정보는 개인 정보와 같은 보안이 필요한 정보를 의미할 수 있다.In this case, the security information may mean information requiring security such as personal information.
또한, 상기 제어부(120)는, 상기 특정 사용자 단말의 사용자가 보안 정보에 대한 접근 권한이 없는 경우 상기 WAS에 상기 특정 사용자 단말에 대응되는 사용자의 상기 접근 정보를 상기 통신부(110)를 통해 전송하거나 상기 특정 사용자 단말의 접속을 차단하기 위한 알림 정보를 상기 통신부(110)를 통해 전송할 수 있다.In addition, the
상술한 바와 같이, 본 발명은 웹 어플리케이션 서버에 정보 수집용 에이전트 프로그램을 삽입할 필요 없이 스니핑을 통해 URL 요청과 SQL 요청을 획득하고, 상기 획득한 URL 요청과 SQL 요청 사이의 관계를 선험적 매핑 알고리즘을 통해 연결하여 어플리케이션 사용자가 실행한 SQL을 용이하게 식별해 낼 수 있으며, 이를 통해 오남용 탐지와 같은 보안 기능과 어플리케이션 모듈의 성능 분석을 웹 어플리케이션 서버에 정보 수집용 에이전트 프로그램을 삽입하지 않고 수행할 수 있도록 지원하여, 기존에 정보 수집용 에이전트 프로그램에 의한 웹 어플리케이션 서버의 자원 과다 사용에 따른 웹 어플리케이션 서버의 성능저하 및 장애와 같은 치명적인 문제 발생을 원천 차단할 수 있으며, 웹 어플리케이션 서버의 자원 가용성 증대에 기여할 수 있다.As described above, the present invention obtains URL requests and SQL requests through sniffing without the need to insert an information collection agent program into a web application server, and the relationship between the acquired URL requests and SQL requests is determined by a priori mapping algorithm. Through this, it is possible to easily identify the SQL executed by the application user, and through this, security functions such as misuse detection and performance analysis of application modules can be performed without inserting an agent program for information collection into the web application server. support, it is possible to fundamentally block the occurrence of fatal problems such as performance degradation and failure of the web application server due to the excessive use of resources of the web application server by the existing information collection agent program, and to contribute to increasing the resource availability of the web application server. there is.
또한, 본 발명은 URL 요청과 SQL 요청 사이의 관계 파악을 통해 보안 정보에 접근하기 위한 SQL을 사용한 사용자를 용이하게 식별하여 추적할 수 있도록 지원할 수 있으며, 이를 통해 웹 어플리케이션 서버에 별도의 에이전트 프로그램의 삽입 없이 웹 어플리케이션 서버에 대한 보안 기능을 제공할 수 있어 웹 어플리케이션 서버의 가용 자원 확대와 더불어 웹 어플리케이션 서버에 대한 보안을 보장할 수 있다.In addition, the present invention can support to easily identify and track a user who has used SQL to access security information by identifying the relationship between a URL request and a SQL request, and through this, a separate agent program is installed in a web application server. Since the security function for the web application server can be provided without insertion, the security of the web application server can be guaranteed along with the expansion of the available resources of the web application server.
본 발명의 실시예들에서 설명된 구성요소는, 예를 들어, 메모리 등의 저장부(130), 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(programmable logic unit), 마이크로프로세서 등의 하드웨어, 명령어 세트를 포함하는 소프트웨어 내지 이들의 조합 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다.The components described in the embodiments of the present invention are, for example, a
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing may be modified and modified by those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention, but to explain, and the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be construed according to the claims below, and all technical ideas within the equivalent range should be construed as being included in the scope of the present invention.
100: 접근 관리 장치 110: 통신부
120: 제어부 130: 저장부100: access management device 110: communication unit
120: control unit 130: storage unit
Claims (10)
상기 스니핑을 통해 상기 사용자 단말이 상기 WAS로 전송한 URL 요청(URL request)을 획득한 후 상기 URL 요청의 URL 타입을 확인하는 URL 확인 단계;
상기 스니핑을 통해 상기 WAS에 수신된 URL 요청에 대응되는 URL 세션 기간 동안 상기 WAS에서 설정한 하나 이상의 DB 세션별로 상기 WAS에서 상기 DB로 전송하는 SQL 요청(SQL request)을 확인하고, 상기 하나 이상의 DB 세션 중 SQL 요청이 확인된 DB 세션별로 상기 확인된 하나 이상의 SQL 요청과 각각 대응되는 하나 이상의 SQL 타입(type)을 식별한 후 상기 URL 세션 기간 및 상기 URL 타입과 매칭하여 SQL 그룹을 생성하는 그룹핑 단계; 및
다른 URL 세션 기간과 겹치지 않는 특정 URL 세션 기간 또는 상호 겹치는 기간이 존재하는 서로 다른 복수의 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 특정 SQL 그룹에만 특정 SQL 타입이 포함된 경우 상기 특정 SQL 그룹을 유효 SQL 그룹으로 설정하고, 상기 유효 SQL 그룹에 포함된 URL 타입과 하나 이상의 SQL 타입을 매칭하여 매핑 정보를 생성하는 매칭 단계;
를 포함하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법.
In the access management method of an access management device sniffing packets transmitted and received through an HTTP session established by WAS (web application server) for communication with a user terminal and a DB session established by the WAS for communication with a DB,
a URL check step of obtaining a URL request transmitted from the user terminal to the WAS through the sniffing and then checking a URL type of the URL request;
During the URL session period corresponding to the URL request received by the WAS through the sniffing, an SQL request transmitted from the WAS to the DB is checked for each one or more DB sessions established in the WAS, and the one or more DBs A grouping step of identifying one or more SQL types corresponding to the one or more SQL requests identified for each DB session in which SQL requests during the session are confirmed, and then matching the URL session duration and the URL type to create a SQL group. ; and
If a specific SQL type is included in only a specific SQL group among one or more SQL groups corresponding to a specific URL session duration that does not overlap with other URL session durations or multiple different URL session durations in which mutually overlapping durations exist, the specific SQL group is valid. A matching step of setting a SQL group and generating mapping information by matching a URL type included in the valid SQL group with one or more SQL types;
An access management method for managing access to a web application server-based database including.
상기 접근 관리 장치는 WAS에서 사용자 단말과의 통신을 위해 설정한 HTTP 세션을 중개하는 제 1 스위치 및 상기 WAS가 DB와의 통신을 위해 설정한 DB 세션을 중개하는 제 2 스위치와 연결되어 상기 HTTP 세션 및 상기 DB 세션을 통해 송수신되는 패킷을 상기 제 1 및 제 2 스위치를 통해 스니핑하는 것을 특징으로 하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법.
The method of claim 1,
The access management device is connected to a first switch that mediates an HTTP session established by the WAS for communication with a user terminal and a second switch that mediates a DB session established by the WAS for communication with a DB, thereby providing the HTTP session and An access management method for managing web application server-based database access, characterized in that for sniffing packets transmitted and received through the DB session through the first and second switches.
상기 URL 세션 기간은 상기 사용자 단말이 상기 WAS에 상기 URL 요청을 전송한 시점부터 상기 WAS에서 상기 URL 요청을 전송한 사용자 단말로 상기 URL 요청에 대응되는 응답이 완료되는 시점까지의 기간인 것을 특징으로 하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법.
The method of claim 1,
The URL session period is a period from the time when the user terminal transmits the URL request to the WAS to the time when a response corresponding to the URL request is completed from the WAS to the user terminal that has transmitted the URL request. An access management method for managing web application server-based database access.
상기 SQL 타입은 상기 SQL 요청에서 상수와 변수를 제외한 나머지인 것을 특징으로 하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법.
The method of claim 1,
The SQL type is an access management method for managing access to a web application server-based database, characterized in that the rest except for constants and variables in the SQL request.
상기 매칭 단계는,
다른 URL 세션 기간과 겹치지 않는 상기 특정 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹에 포함된 SQL 타입을 확인하여, 상기 특정 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹을 대상으로 다른 SQL 그룹에는 존재하지 않는 SQL 타입을 포함하는 SQL 그룹마다 유효 SQL 그룹으로 설정하는 것을 특징으로 하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법.
The method of claim 1,
The matching step is
By checking the SQL types included in one or more SQL groups corresponding to the specific URL session duration that do not overlap with other URL session durations, the SQL types that do not exist in other SQL groups corresponding to the specific URL session duration are checked. An access management method for managing access to a web application server-based database, characterized in that each SQL group including an SQL type is set as an effective SQL group.
상기 매칭 단계는,
상기 유효 SQL 그룹과 동일한 URL 세션 기간을 가진 나머지 SQL 그룹이 존재하면 상기 나머지 SQL 그룹을 삭제하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법.
The method of claim 1,
The matching step is
The method of managing access to a web application server based database, further comprising the step of deleting the remaining SQL groups if there are remaining SQL groups having the same URL session duration as the effective SQL group.
상기 매칭 단계는,
상기 유효 SQL 정보를 기초로 상기 유효 SQL 정보에 포함된 하나 이상의 SQL 타입 및 URL 타입을 포함하며 상기 유효 SQL 정보에 따른 URL 세션 기간과 다른 URL 세션 기간이 설정된 SQL 그룹을 다른 유효 SQL 정보로 설정하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법.
The method of claim 1,
The matching step is
Based on the valid SQL information, a SQL group including one or more SQL types and URL types included in the valid SQL information and having a URL session period different from the URL session period according to the valid SQL information is set as other valid SQL information. An access management method for managing access to a web application server-based database, further comprising the step of:
상기 매칭 단계 이후,
복수의 서로 다른 사용자 단말로부터 상기 WAS에 수신되는 복수의 URL 요청 각각에 대해 상기 URL 확인 단계와 그룹핑 단계 및 매칭 단계를 수행하여 복수의 매핑 정보를 생성하고, 상기 복수의 매핑 정보를 포함하는 맵 정보를 생성하는 단계; 및
상기 스니핑을 통해 상기 사용자 단말에서 상기 WAS로 전송하는 패킷으로부터 사용자 단말의 식별 정보 및 특정 URL 요청을 추출하고, 상기 특정 URL 요청에 대응되는 URL 세션 기간 동안 상기 WAS에서 상기 DB로 전송하는 패킷으로부터 하나 이상의 SQL 요청을 추출하며, 상기 맵 정보를 기초로 상기 특정 URL 요청의 URL 타입에 대응되는 하나 이상의 SQL 타입을 식별한 후 상기 추출된 하나 이상의 SQL 요청 중 상기 식별된 하나 이상의 SQL 타입과 각각 대응되는 하나 이상의 SQL 요청을 식별하고, 상기 식별된 하나 이상의 SQL 요청과 상기 특정 URL 요청 및 상기 사용자 단말의 식별정보를 포함하는 접근 정보를 생성하는 단계
를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법.
The method of claim 1,
After the matching step,
For each of a plurality of URL requests received by the WAS from a plurality of different user terminals, the URL checking step, the grouping step, and the matching step are performed to generate a plurality of mapping information, and map information including the plurality of mapping information. generating; and
Through the sniffing, identification information of the user terminal and a specific URL request are extracted from the packet transmitted from the user terminal to the WAS, and one from the packet transmitted from the WAS to the DB during the URL session period corresponding to the specific URL request. Extracting one or more SQL requests, identifying one or more SQL types corresponding to the URL type of the specific URL request based on the map information, and then corresponding to the identified one or more SQL types among the extracted one or more SQL requests. Identifying one or more SQL requests, and generating access information including the identified one or more SQL requests, the specific URL request, and identification information of the user terminal.
An access management method for managing access to a web application server-based database, further comprising:
상기 접근 정보를 생성하는 단계 이후,
상기 접근 정보에 따른 하나 이상의 SQL 요청 중 적어도 하나가 보안 정보에 접근하기 위한 SQL 요청인 경우 상기 사용자 단말의 식별정보에 대응되는 미리 저장된 권한 정보를 기초로 상기 보안 정보에 대한 상기 사용자 단말에 대응되는 사용자의 접근 권한 여부를 판단하고, 상기 사용자가 상기 보안 정보에 대한 접근 권한이 없는 경우 상기 WAS에 상기 사용자에 대응되는 상기 접근 정보를 전송하거나 상기 사용자 단말의 접속을 차단하기 위한 알림 정보를 전송하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법.
The method of claim 8,
After generating the access information,
If at least one of the one or more SQL requests according to the access information is an SQL request for accessing security information, based on pre-stored authority information corresponding to identification information of the user terminal, corresponding to the user terminal for the security information Determining whether a user has access authority, and if the user does not have access authority to the security information, transmits the access information corresponding to the user to the WAS or transmits notification information for blocking access of the user terminal An access management method for managing access to a web application server-based database, further comprising the step of:
상기 통신부를 통해 상기 패킷을 스니핑하며, 상기 스니핑을 통해 획득한 상기 패킷으로부터 상기 사용자 단말이 상기 WAS로 전송한 URL 요청(URL request)을 획득한 후 상기 URL 요청의 URL 타입을 확인하고, 상기 스니핑을 통해 획득한 상기 패킷으로부터 상기 WAS에 수신된 URL 요청에 대응되는 URL 세션 기간 동안 상기 WAS에서 설정한 하나 이상의 DB 세션별로 상기 WAS에서 상기 DB로 전송하는 SQL 요청(SQL request)을 확인하고, 상기 하나 이상의 DB 세션 중 SQL 요청이 확인된 DB 세션별로 상기 확인된 하나 이상의 SQL 요청과 각각 대응되는 하나 이상의 SQL 타입(type)을 식별한 후 상기 URL 세션 기간 및 상기 URL 타입과 매칭하여 SQL 그룹을 생성하며, 다른 URL 세션 기간과 겹치지 않는 특정 URL 세션 기간 또는 상호 겹치는 기간이 존재하는 서로 다른 복수의 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 특정 SQL 그룹에만 특정 SQL 타입이 포함된 경우 상기 특정 SQL 그룹을 유효 SQL 그룹으로 설정하고, 상기 유효 SQL 그룹에 포함된 URL 타입과 하나 이상의 SQL 타입을 매칭하여 매핑 정보를 생성하는 제어부;
를 포함하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치.A communication unit for sniffing packets transmitted and received through an HTTP session established by WAS (web application server) for communication with a user terminal and a DB session established by the WAS for communication with a DB; and
The packet is sniffed through the communication unit, and after obtaining a URL request transmitted to the WAS from the user terminal from the packet obtained through the sniffing, the URL type of the URL request is checked, and the sniffing Check the SQL request transmitted from the WAS to the DB for each one or more DB sessions set in the WAS during the URL session period corresponding to the URL request received by the WAS from the packet obtained through After identifying one or more SQL types corresponding to the identified one or more SQL requests for each DB session in which SQL requests are confirmed among one or more DB sessions, a SQL group is created by matching the URL session duration and the URL type. and, among one or more SQL groups corresponding to a specific URL session period that does not overlap with another URL session period or a plurality of different URL session periods with mutually overlapping periods, if only a specific SQL group includes a specific SQL type, the specific SQL group a control unit that sets as a valid SQL group and creates mapping information by matching a URL type included in the valid SQL group with one or more SQL types;
An access management device for managing access to a web application server-based database including a.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210143721A KR102521784B1 (en) | 2021-10-26 | 2021-10-26 | Access management apparatus and method for managing database access based on web application server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210143721A KR102521784B1 (en) | 2021-10-26 | 2021-10-26 | Access management apparatus and method for managing database access based on web application server |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102521784B1 true KR102521784B1 (en) | 2023-04-17 |
Family
ID=86133809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210143721A KR102521784B1 (en) | 2021-10-26 | 2021-10-26 | Access management apparatus and method for managing database access based on web application server |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102521784B1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100913190B1 (en) * | 2007-09-13 | 2009-08-20 | 에스티지 시큐리티(주) | Method for database preservation web-based 3 tier environment and apparatus thereof |
KR100926075B1 (en) * | 2009-04-13 | 2009-11-11 | 주식회사 신시웨이 | Database access through web application server monitoring apparatus and method thereof |
KR20100078738A (en) | 2008-12-30 | 2010-07-08 | (주)아이비즈소프트웨어 | Security system and security method at web application server |
KR101658456B1 (en) * | 2016-04-01 | 2016-09-22 | 주식회사 엘리바이저 | Security device using transaction information obtained from web application server |
KR20210068832A (en) * | 2019-12-02 | 2021-06-10 | 주식회사 신시웨이 | Access control system and method using SQL tool based on web |
-
2021
- 2021-10-26 KR KR1020210143721A patent/KR102521784B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100913190B1 (en) * | 2007-09-13 | 2009-08-20 | 에스티지 시큐리티(주) | Method for database preservation web-based 3 tier environment and apparatus thereof |
KR20100078738A (en) | 2008-12-30 | 2010-07-08 | (주)아이비즈소프트웨어 | Security system and security method at web application server |
KR100926075B1 (en) * | 2009-04-13 | 2009-11-11 | 주식회사 신시웨이 | Database access through web application server monitoring apparatus and method thereof |
KR101658456B1 (en) * | 2016-04-01 | 2016-09-22 | 주식회사 엘리바이저 | Security device using transaction information obtained from web application server |
KR20210068832A (en) * | 2019-12-02 | 2021-06-10 | 주식회사 신시웨이 | Access control system and method using SQL tool based on web |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111079104B (en) | Authority control method, device, equipment and storage medium | |
KR100619178B1 (en) | Method and apparatus for detecting invalid clicks on the internet search engine | |
CN107465651B (en) | Network attack detection method and device | |
US11696110B2 (en) | Distributed, crowdsourced internet of things (IoT) discovery and identification using Block Chain | |
TW201824047A (en) | Attack request determination method, apparatus and server | |
CN111600856A (en) | Safety system of operation and maintenance of data center | |
Pan et al. | I do not know what you visited last summer: Protecting users from third-party web tracking with trackingfree browser | |
CN114145004A (en) | System and method for using DNS messages to selectively collect computer forensics data | |
CN112866348B (en) | Database access method and device, computer equipment and storage medium | |
CN113518077A (en) | Malicious web crawler detection method, device, equipment and storage medium | |
CN109660552A (en) | A kind of Web defence method combining address jump and WAF technology | |
CN116324766A (en) | Optimizing crawling requests by browsing profiles | |
US10805377B2 (en) | Client device tracking | |
JP2008015733A (en) | Log management computer | |
KR101658450B1 (en) | Security device using transaction information obtained from web application server and proper session id | |
CN106411819A (en) | Method and apparatus for recognizing proxy Internet protocol address | |
CN112838951B (en) | Operation and maintenance method, device and system of terminal equipment and storage medium | |
KR101658456B1 (en) | Security device using transaction information obtained from web application server | |
KR102521784B1 (en) | Access management apparatus and method for managing database access based on web application server | |
KR20210044281A (en) | Method and apparatus for ensuring continuous device operation stability in cloud degraded mode | |
KR101318234B1 (en) | Data cache method and device for database system | |
KR101650475B1 (en) | Security device using transaction information obtained from web server | |
KR102070607B1 (en) | Database security device based on user identification via web application server | |
KR100619179B1 (en) | Method and apparatus for detecting invalid clicks on the internet search engine | |
CN115913583A (en) | Business data access method, device and equipment and computer storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |