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 PDF

Info

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
Application number
KR1020210143721A
Other languages
Korean (ko)
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 KR1020210143721A priority Critical patent/KR102521784B1/en
Application granted granted Critical
Publication of KR102521784B1 publication Critical patent/KR102521784B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Abstract

The present invention relates to an access management apparatus for managing database access based on a web application server and a method thereof. More specifically, the present invention relates to the access management apparatus for managing database access based on a web application server and the method thereof, which prevent performance degradation of a web application server by automatically mapping a relation between a uniform resource locator (URL) request and a structured query language (SQL) request transmitted based on the URL request by the web application server receiving the URL request through session connection with a user terminal, without using a resource of the web application server. The access management apparatus for managing database access based on a web application server obtains the URL request and the SQL request through sniffing without the need to insert an agent program for information collection into the web application server. The access management apparatus for managing database access based on a web application server can also easily identify an SQL executed by an application user by connecting the relation between the SQL request and the URL request obtained through an intuitive mapping algorithm. Accordingly, the access management apparatus for managing database access based on a web application server supports performance analysis of an application module and a security function, such as abuse detection to execute the performance analysis of the application module and the security function without inserting the agent program for information collection into the web application server. Therefore, the access management apparatus for managing database access based on a web application server can fundamentally block the generation of an existing fatal problem, such as performance degradation and a failure of the web application server caused by excessive resource use of the web application server by the agent program for information collection. Moreover, the access management apparatus for managing database access based on a web application server can contribute to an increase of the resource availability of the web application server.

Description

웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치 및 방법{Access management apparatus and method for managing database access based on web application server}Access management apparatus and method for managing database access based on web application server

본 발명은 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치 및 방법에 관한 것으로서, 더욱 상세히는 사용자 단말과의 세션 연결을 통해 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.

한국공개특허 제10-2010-0078738호Korean Patent Publication No. 10-2010-0078738

본 발명은 웹 어플리케이션 서버가 사용자 단말에서 전송하는 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 first switch 11 for mediating the HTTP session established for communication with the user terminal in the WAS and the WAS configured for communication with the DB. It may be connected to the second switch 12 mediating one DB session.

이때, 상기 제 1 스위치(11) 및 제 2 스위치(12)는 각각 스위치(switch)나 TAP(Test Access Point)으로 구성될 수 있다.In this case, each of the first switch 11 and the second switch 12 may be configured as a switch or a Test Access Point (TAP).

또한, 상기 접근 관리 장치(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 first switch 11 and a second connected to the second switch 12 A communication unit 110 including a network interface card (hereinafter, a second NIC), a storage unit 130 for storing various information, and a control unit that performs overall control functions of the access management device 100 It may be configured to include (120).

또한, 상기 제어부(120)는 상기 제 1 및 제 2 NIC를 통해 상기 제 1 및 제 2 스위치(11, 12)와 통신할 수 있다.Also, the controller 120 may communicate with the first and second switches 11 and 12 through the first and second NICs.

이에 따라, 상기 제어부(120)는 상기 HTTP 세션을 통해 송수신되는 패킷을 상기 제 1 NIC와 연결된 상기 제 1 스위치(11)와의 통신을 통해 스니핑하여 상기 제 1 스위치(11)로부터 수신할 수 있으며, 상기 DB 세션을 통해 송수신되는 패킷을 상기 제 2 NIC와 연결된 상기 제 2 스위치(12)와의 통신을 통해 스니핑하여 상기 제 2 스위치(12)로부터 수신할 수 있다.Accordingly, the control unit 120 sniffs the packet transmitted and received through the HTTP session through communication with the first switch 11 connected to the first NIC, and receives it from the first switch 11, A packet transmitted and received through the DB session may be sniffed through communication with the second switch 12 connected to the second NIC and received from the second switch 12 .

이하에서, 상술한 접근 관리 장치(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 control unit 120 executes overall control functions of the access management device 100 using programs and data stored in the storage unit 130 . Also, the controller 120 may include RAM, ROM, CPU, GPU, and a bus, and RAM, ROM, CPU, and GPU may be connected to each other through a bus.

또한, 상기 저장부(130)는 각종 정보를 저장할 수 있으며, 상기 저장부(130)는 HDD(Hard Disk Drive), SSD(Solid State Drive) 등과 같은 다양한 형태로 구성될 수 있다.In addition, the storage unit 130 may store various types of information, and the storage unit 130 may be configured in various forms such as a hard disk drive (HDD) and a solid state drive (SSD).

상기 제어부(120)는 상기 스니핑을 통해 상기 사용자 단말에서 상기 WAS로 전송한 패킷으로부터 URL 요청(URLR : URL Request)(URL 요청 정보)을 획득하고, 상기 URL 요청으로부터 URL 타입(URLT: URL Type)(URL 타입 정보)을 확인(식별)할 수 있다(S1).The controller 120 obtains a URL request (URLR: URL Request) (URL request information) from a packet transmitted from the user terminal to the WAS through the sniffing, and obtains a URL type (URLT: URL Type) from the URL request. (URL type information) can be checked (identified) (S1).

이때, 상기 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 control unit 120 sniffs URL request 1 (URLR 1) transmitted from the first user terminal (user terminal #1) to the WAS, and the variable part (? The part (http://www.sinsiway.com:80/path/urlt1.html) excluding key1=scott&key2=management can be identified as URL type (URLT 1).

또한, 상기 제어부(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 control unit 120 sniffs the URL request 2 (URLR 2) transmitted from the second user terminal (user terminal #2) to the WAS, and the part except for the variable part (?key1=tiger&key2=business) (http ://www.sinsiway.com:80/path/urlt1.html) may be identified as a URL type (URLT 1).

이때, 상기 URL 요청 1의 URL 타입과 URL 요청 2의 URL 타입이 상호 동일하므로, 상기 제어부(120)는 상기 URL 요청 1과 URL 요청 2에 대해 상호 동일한 URL 타입(URLT 1)으로 식별할 수 있다.At this time, since the URL type of the URL request 1 and the URL type of the URL request 2 are the same, the controller 120 can identify the URL request 1 and the URL request 2 as the same URL type (URLT 1). .

또한, 상기 제어부(120)는, 상기 스니핑을 통해 획득한 패킷으로부터 상기 WAS에 수신된 URL 요청에 대응되는 URL 세션 기간(URLS : URL Session)(또는 URL 세션 구간) 동안 상기 WAS에서 설정한 하나 이상의 DB 세션별로 상기 WAS에서 상기 DB로 전송하는 SQL 요청(SQL request)(SQL 요청 정보)을 확인할 수 있다(S2).In addition, the control unit 120 may perform one or more URLs set in the WAS during a URL session period (URLS: URL Session) (or URL session interval) corresponding to the URL request received by the WAS from the packet obtained through the sniffing. It is possible to check SQL requests (SQL request information) transmitted from the WAS to the DB for each DB session (S2).

이때, 상기 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 control unit 120 may generate the URL session duration by sniffing a network coming into the WAS. For example, the control unit 120 may generate the URL session duration by sniffing a packet received by the WAS. there is.

일례로, 도 5에 도시된 바와 같이, 상기 제어부(120)는 스니핑을 통해 제 1 사용자 단말로부터 URL 요청 1이 상기 WAS에 전송된 시점부터 상기 WAS가 URL 요청 1에 대응되는 응답을 상기 제 1 사용자 단말에 전송하는데 까지 소요된 시간인 t1부터 t7 까지의 시간을 URL 세션 기간(URLS 1)으로 식별할 수 있다.For example, as shown in FIG. 5 , the control unit 120 sends a response corresponding to URL request 1 from the WAS from the time when URL request 1 is transmitted to the WAS from a first user terminal through sniffing. The time from t1 to t7, which is the time required for transmission to the user terminal, can be identified as the URL session period (URLS 1).

또한, 상기 제어부(120)는, 상기 스니핑을 통해 제 2 사용자 단말로부터 URL 요청 2가 WAS에 전송된 시점부터 상기 WAS가 URL 요청 2에 대응되는 응답을 상기 사용자 단말에 전송하는데 까지 소요된 시간인 t4부터 t7까지의 시간을 상기 URS 세션 기간과 다른 URL 세션 기간(URLS 2)으로 설정할 수 있다.In addition, the control unit 120 determines the time required from the time when the URL request 2 is transmitted to the WAS from the second user terminal through the sniffing until the WAS transmits the response corresponding to the URL request 2 to the user terminal. The time from t4 to t7 may be set as a URL session period (URLS 2) different from the URS session period.

이때, 상기 제어부(120)는 서로 다른 URL 세션 기간을 URL 세션 기간을 구성하는 시간 범위로 구분할 수 있으며, 이러한 시간 범위를 서로 다른 URL 세션 기간을 구분하는 URL 세션 기간 식별자로서 사용할 수 있다. 즉, 상기 제어부(120)는 제 1 URL 세션 기간의 시간 범위와 상기 제 1 URL 세션 기간과 다른 제 2 URL 세션 기간의 시간 범위를 비교하여, 상기 제 1 URL 세션 기간과 제 2 URL 세션 기간을 구분할 수 있다.At this time, the control unit 120 can divide different URL session periods into time ranges constituting the URL session periods, and use these time ranges as URL session period identifiers for distinguishing different URL session periods. That is, the control unit 120 compares the time range of the first URL session period with the time range of the second URL session period different from the first URL session period, and determines the first URL session period and the second URL session period. can be distinguished.

또한, 상기 제어부(120)는, 상기 URL 세션 기간 동안 하나 이상의 DB 세션을 설정할 수 있으며, 상기 WAS에서 상기 URL 요청을 수행하기 위해 상기 WAS가 설정한 하나 이상의 DB 세션 중 임의의 DB 세션을 자유롭게 이용할 수 있다.In addition, the controller 120 may establish one or more DB sessions during the URL session period, and freely use any DB session among one or more DB sessions established by the WAS to perform the URL request in the WAS. can

또한, 상기 제어부(120)는, 상기 URL 세션 기간 동안 상기 WAS에서 하나 이상의 DB 세션을 통해 상기 DB로 전송하는 SQL 요청별로 SQL 타입(SQLT: SQL Type)을 확인할 수 있다.In addition, the control unit 120 may check the SQL type (SQLT: SQL Type) for each SQL request transmitted from the WAS to the DB through one or more DB sessions during the URL session period.

이때, 상기 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 control unit 120 as the same SQL type.

일례로, 도 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 control unit 120 transmits SQL request 1 (SQLR 1) and SQL request 2 (SQLR 1) transmitted from the WAS to the DB through DB session 1 during the URL session period (URLS 1). SQLR 2) can be identified by sniffing, and the part (select * from emp where ename = ) excluding the variable part ('scott') in SQL request 1 can be identified as the SQL type (SQLT 1) of SQL request 1. there is.

또한, 상기 제어부(120)는 상기 URL 세션 기간(URLS 1) 동안 DB 세션 1을 통해 상기 WAS에서 DB로 전송한 SQL 요청 2에서 변수 부분('관리')를 제외한 부분(select * from dept where dname = )을 SQL 요청 2의 SQL 타입(SQLT 2)으로 식별할 수 있다.In addition, the controller 120 controls the SQL request 2 transmitted from the WAS to the DB through the DB session 1 during the URL session period (URLS 1) except for the variable part ('management') (select * from dept where dname). = ) can be identified as the SQL type of SQL request 2 (SQLT 2).

또한, 상기 제어부(120)는 상기 다른 URL 세션 기간(URLS 2) 동안에 전송된 SQL 요청 3(SQLR 3)와 SQL 요청 4(SQLR 4)를 식별할 수 있으며, 상기 SQL 요청 3의 SQL 타입과 SQL 요청 4의 SQL 타입을 식별할 수 있다.In addition, the control unit 120 can identify SQL request 3 (SQLR 3) and SQL request 4 (SQLR 4) transmitted during the different URL session period (URLS 2), and the SQL type and SQL of the SQL request 3 You can identify the SQL type of request 4.

이때, 상기 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 SQL request 1 and SQL request 3 are the same, and the SQL types of SQL request 2 and SQL request 4 are the same, the controller 120 determines the SQL type of SQL request 1 and SQL request 3. It can be identified as the same first SQL type (SQLT 1), and the SQL types of SQL request 2 and SQL request 4 can be identified as the same second SQL type (SQLT 2).

또한, 상기 제어부(120)는 스니핑을 통해 상기 URL 세션 기간 동안 상기 WAS에 의해 설정된 하나 이상의 DB 세션을 식별할 수 있으며, 상기 식별된 하나 이상의 DB 세션별로 DB 세션 식별자를 설정할 수 있으며, 서로 다른 복수의 DB 세션에 대해 서로 다른 DB 세션 식별자를 설정할 수 있다.In addition, the control unit 120 may identify one or more DB sessions established by the WAS during the URL session period through sniffing, and may set a DB session identifier for each of the identified one or more DB sessions, and may set a plurality of different DB sessions. Different DB session identifiers can be set for each DB session.

이에 따라, 상기 제어부(120)는 상기 DB 세션 식별자를 통해 특정 DB 세션을 다른 DB 세션과 구분할 수 있다.Accordingly, the control unit 120 can distinguish a specific DB session from other DB sessions through the DB session identifier.

또한, 상기 제어부(120)는, 상기 URL 세션 기간 동안(또는 URL 세션 기간에 따른 기간(시간) 동안) 상기 식별된 하나 이상의 DB 세션 중 SQL 요청이 확인된(전송된) DB 세션별로 상기 확인된 하나 이상의 SQL 요청과 각각 대응되는 하나 이상의 SQL 타입(type)을 식별할 수 있다.In addition, the control unit 120 determines the identified one or more DB sessions for each DB session in which the SQL request is confirmed (transmitted) during the URL session period (or during the period (time) according to the URL session period). One or more SQL types corresponding to one or more SQL requests can be identified.

즉, 상기 제어부(120)는, 상기 URL 세션 기간 동안 상기 SQL 요청이 확인된 하나 이상의 DB 세션 각각에 대해 DB 세션에서 확인된 하나 이상의 SQL 요청별 SQL 타입을 식별할 수 있으며, 이를 통해 상기 DB 세션에서 확인된 하나 이상의 SQL 요청의 생성에 사용된 하나 이상의 SQL 타입을 식별할 수 있다.That is, the control unit 120 may identify the SQL type for each of the one or more SQL requests confirmed in the DB session for each of the one or more DB sessions in which the SQL request is confirmed during the URL session period, through which the DB session You can identify one or more SQL types used to create one or more SQL requests identified in .

또한, 상기 제어부(120)는, 상기 URL 세션 기간 동안 SQL 요청이 확인된 하나 이상의 DB 세션별로 상기 URL 세션 기간에 대응되는 상기 식별된 하나 이상의 SQL 타입을 상기 URL 세션 기간 및 상기 URL 세션 기간에 대응되는 URL 요청의 URL 타입과 매칭하여 SQL 그룹을 생성한 후 상기 저장부(130)에 저장할 수 있다(S3).In addition, the control unit 120 assigns the identified one or more SQL types corresponding to the URL session period to the URL session period and the URL session period for each one or more DB sessions in which SQL requests are confirmed during the URL session period. After matching the URL type of the URL request to create a SQL group, it can be stored in the storage unit 130 (S3).

이때, 상기 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 control unit 120 includes only one of the plurality of overlapping SQL types in the SQL group and the rest are included in the SQL group. can be excluded or deleted.

일례로, 상기 제어부(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 control unit 120 sets one or more SQL types respectively corresponding to one or more SQL requests transmitted through the first DB session during a specific URL session period corresponding to a specific URL request to a specific URL session duration and first DB session and one or more SQL types identified to correspond to the specific URL session duration and the first DB session and a specific URL type identified for a specific URL request corresponding to the specific URL session duration and the specific URL session duration. A first SQL group may be created by mutual matching, and the first SQL group may be matched with a DB session identifier of the first DB session.

즉, 상기 제 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 control unit 120 creates the first SQL group including one or more SQL types identified to correspond to the specific URL session duration and the first DB session and the specific URL session duration and the specific URL type, The first SQL group and the first DB session identifier may be matched and stored in the storage unit 130, or the first DB session identifier may be set or included in the first SQL group.

또한, 상술한 바와 마찬가지로, 상기 제어부(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 control unit 120 determines one or more SQL types respectively corresponding to one or more SQL requests transmitted through the second DB session during the specific URL session period, the specific URL session duration, and the specific URL type. In a mutually matched state, a second SQL group may be created, and the second SQL group and the second DB session identifier are matched and stored in the storage unit 130, or the second SQL group is stored in the second SQL group. A second DB session identifier corresponding to the second DB session may be included or set.

또한, 상기 제어부(120)는, URL 요청이 상기 WAS에 수신될 때마다 URL 요청에 대응되는 URL 세션 기간을 생성할 수 있으며, 복수의 서로 다른 URL 세션 기간별로 상술한 바와 같이 하나 이상의 SQL 그룹을 생성할 수 있다.In addition, the control unit 120 may create a URL session period corresponding to a URL request whenever a URL request is received by the WAS, and as described above for each of a plurality of different URL session periods, one or more SQL groups may be generated. can create

상술한 구성에서, 상기 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 control unit 120 generates mapping information in which a relationship between a URL type and an SQL type is set through a pre-stored mapping algorithm based on a plurality of SQL groups stored in the storage unit 130, and the mapping Based on the information, access to the database for each user can be identified and an access history table for the access history for each user can be created. 15 for a detailed explanation.

우선, 도시된 바와 같이, 상기 제어부(120)는, 상기 저장부(130)에 저장된 복수의 SQL 그룹을 대상으로 복수의 SQL 그룹 각각에서 URL 세션 기간을 확인할 수 있으며, 다른 URL 세션 기간과 겹치지 않는 특정 URL 세션 기간 또는 상호 겹치는 기간이 존재하는 서로 다른 복수의 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 특정 SQL 그룹에만 특정 SQL 타입이 포함된 경우 상기 특정 SQL 그룹을 유효 SQL 그룹으로 설정할 수 있다(S4).First of all, as shown, the control unit 120 can check the URL session period in each of the plurality of SQL groups for the plurality of SQL groups stored in the storage unit 130, and does not overlap with other URL session periods. 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 period or a plurality of different URL session periods having mutually overlapping periods, the specific SQL group can be set as an effective SQL group ( S4).

일례로, 상기 제어부(120)는, 상기 복수의 SQL 그룹 중 어느 하나에서 특정 URL 세션 기간을 확인하고, 상기 복수의 SQL 그룹을 기초로 상기 특정 URL 세션 기간과 일부 기간이 겹치는 다른 URL 세션 기간이 존재하는지 판단할 수 있다.For example, the control unit 120 checks a specific URL session period in any one of the plurality of SQL groups, and determines that another URL session period overlapping with the specific URL session period is based on the plurality of SQL groups. You can determine if it exists.

또한, 상기 제어부(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 control unit 120 checks the SQL types included in one or more SQL groups corresponding to the specific URL session duration, and determines the specific URL session duration. Each SQL group including an SQL type that does not exist in other SQL groups may be set as a valid SQL group for one or more corresponding SQL groups and stored in the storage unit 130 .

일례로, 상기 제어부(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 control unit 120 determines the first SQL type. An SQL group may be set as a valid group, and if the second SQL type exists only in a second SQL group among one or more SQL groups corresponding to the specific URL session period, the second SQL group may be set as a valid group.

또한, 상기 제어부(120)는, 상기 저장부(130)에 저장된 복수의 SQL 그룹을 기초로 특정 URL 세션 기간과 일부 기간이 겹치는 하나 이상의 타 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 및 상기 특정 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹을 식별하여 상기 저장부(130)로부터 추출할 수 있으며, 상기 추출된 복수의 SQL 그룹 중 특정 SQL 그룹에만 특정 SQL 타입이 포함된 경우 상기 특정 SQL 그룹을 유효한 SQL 그룹으로 식별하고, 상기 특정 SQL 그룹을 유효 SQL 그룹으로 설정하여 상기 저장부(130)에 저장할 수 있다.In addition, the control unit 120, based on the plurality of SQL groups stored in the storage unit 130, determines one or more SQL groups and the specific URL corresponding to one or more other URL session periods overlapping a specific URL session period and a partial period. One or more SQL groups corresponding to the session period may be identified and extracted from the storage unit 130, and if a specific SQL type is included in only a specific SQL group among the plurality of extracted SQL groups, the specific SQL group is a valid SQL group. It can be identified as a group, and the specific SQL group can be set as an effective SQL group and stored in the storage unit 130 .

일례로, 상기 제어부(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 controller 120 sets the third SQL group as an effective SQL group, , If the 4th SQL type exists only in the 4th SQL group corresponding to the 4th URL session period that partially overlaps with the 3rd URL session period, the 4th SQL group can be set as an effective SQL group.

또한, 상기 제어부(120)는, 상기 유효 SQL 그룹 설정시마다 상기 유효 SQL 그룹에 포함된 URL 타입과 하나 이상의 SQL 타입을 매칭하여 매핑 정보를 생성할 수 있으며, 상기 매핑 정보를 상기 저장부(130)에 저장할 수 있다(S5).In addition, the control unit 120 may generate mapping information by matching a URL type included in the valid SQL group with one or more SQL types whenever the valid SQL group is set, and store the mapping information in the storage unit 130 It can be stored in (S5).

일례로, 상기 제어부(120)는, 특정 유효 SQL 그룹에 포함된 특정 URL 타입에 상기 특정 유효 SQL 그룹에 포함된 하나 이상의 SQL 타입을 매칭시켜, 상기 특정 URL 타입에 매칭된 하나 이상의 SQL 타입 및 상기 특정 URL 타입을 포함하는 매핑 정보를 생성할 수 있다.For example, the control unit 120 matches one or more SQL types included in the specific valid SQL group to a specific URL type included in the specific effective SQL group, and matches one or more SQL types matched to the specific URL type and the Mapping information including a specific URL type can be created.

또한, 상기 제어부(120)는 상호 동일한 URL 세션 기간을 가진(상호 동일한 URL 세션 기간이 포함된) 하나 이상의 SQL 그룹 중에서 유효 SQL 그룹을 제외한 나머지 SQL 그룹이 상기 저장부(130)에 존재하면, 상기 유효 SQL 그룹과 동일한 URL 세션 기간을 가진 상기 나머지 SQL 그룹을 삭제할 수 있다.In addition, the control unit 120, if remaining SQL groups other than a valid SQL group among one or more SQL groups having mutually identical URL session durations (including mutually identical URL session durations) exist in the storage unit 130, The remaining SQL groups having the same URL session duration as the effective SQL group may be deleted.

일례로, 상기 제어부(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 control unit 120 determines one or more SQL groups other than one or more effective SQL groups among the plurality of SQL groups corresponding to the specific URL session period. is determined to be fake (invalid), and one or more SQL groups corresponding to the remainder may be deleted from the storage unit 130.

상술한 내용을 도 6 내지 도 11을 참고하여 설명하면, 도시된 바와 같이, 상기 제어부(120)는 제 1 URL 요청(이하, URLR 1)에 대응되는 제 1 URL 세션 기간(이하, URLS-11) 동안 상기 WAS에 의해 설정된 복수의 DB 세션(DB 세션 1, DB 세션 2, DB 세션 3)을 스니핑을 통해 식별할 수 있다.6 to 11, the control unit 120 determines the first URL session period (hereafter, URLS-11) corresponding to the first URL request (hereafter, URLR 1). ), it is possible to identify a plurality of DB sessions (DB Session 1, DB Session 2, DB Session 3) established by the WAS through sniffing.

또한, 상기 제어부(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 control unit 120 checks the plurality of SQL requests transmitted from the WAS to the DB during the URLS-11 through the DB session 1 through the sniffing, and then the plurality of SQL types corresponding to the plurality of SQL requests. (SQLT 11, SQLT 12, SQLT 13) and the plurality of SQL types (SQLT 11, SQLT 12, SQLT 13) are identified for the URLS-11 and the URLR 1. The first URL type (hereafter referred to as URLT 1) ) and URLS-11 to create the first SQL group (A).

또한, 상기 제어부(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 control unit 120 determines a plurality of SQL types (SQLT 11 and SQLT 22) respectively corresponding to a plurality of SQL requests transmitted from the WAS to the DB during the URLS-11 through the DB session 2 using sniffing. can be identified, and a second SQL group (B) can be created by matching a plurality of SQL types (SQLT 11 and SQLT 22) with the URLS-11 and the URLT 1.

또한, 상기 제어부(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 DB session 3 during the URLS-11, the control unit 120 does not create an SQL group corresponding to URLS-11 and DB session 3, or does not include the SQL type and URLS A third SQL group (C) containing only -11 and URLT 1 can be created. In addition, the control unit 120 may exclude the third SQL group (C), which does not include the SQL type, from the valid SQL group determination target.

만일, 상기 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 control unit 120 assigns SQLT 11, SQLT 12, and SQLT 13 only to the first SQL group (A) created to correspond to the URLS-11. is included to set the first SQL group (A) as a valid SQL group, and only include SQLT 21 and SQLT 22 in the second SQL group (B) to set the second SQL group (B) as a valid SQL group. can

그러나, 도시된 바와 같이, 상기 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 control unit 120, in the URLS-21 One or more SQL groups created for each DB session (DB Session 1, DB Session 2, DB Session 3) to correspond, and each DB session (DB Session 1, DB Session 2, DB Session 3) to correspond to the URLS-31. It is possible to determine whether one or more SQL groups created by , and an SQL type that exists only in one of the first SQL group (A) and the second SQL group (B) corresponding to the URLS-11 exist.

이때, 상기 제어부(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 control unit 120 includes one or more SQL groups created for each DB session (DB session 1, DB session 2, and DB session 3) to correspond to the URLS-21, and a DB session to correspond to the URLS-31. Review one or more SQL groups created by each (DB session 1, DB session 2, DB session 3), and the first SQL group (A) and the second SQL group (B) corresponding to the URLS-11, respectively. You can set it as a target group.

이에 따라, 도 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 SQLT 11 exists only in the first SQL group (A) among a plurality of review target groups, the control unit 120 determines the first SQL group (A) among the plurality of review target groups. SQLT 11, which exists only in 1 SQL group (A), can be identified, and through this, the first SQL group (A) is determined as a valid SQL group and the first SQL group (A) is set as a valid SQL group. can

또는, 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 control unit 120 has (including) the same URL session period (URLS-11) as the first SQL group (A) set as the effective SQL group, and DB Session 2 The second SQL group (B) corresponding to can be deleted from the storage unit 130. In addition, if the third SQL group (C) corresponding to the URLS-11 exists in the DB session 3, the control unit 120 may delete the third SQL group (C).

즉, 상기 제어부(120)는, URLS-11의 기간 동안에 생성된 제 2 SQL 그룹(B)에 속한 복수의 SQL 타입(SQLT21, SQLT22)은 상기 URLS-11에 대응되는 URLR 1에 대해 요청된 SQL 요청으로부터 식별된 것이 아닌 다른 URL 세션 기간 동안에 전송된 SQL 요청으로부터 식별된 것으로 판단하고, 상기 제 2 SQL 그룹(B)을 삭제할 수 있다.That is, the control unit 120 determines that the plurality of SQL types (SQLT21 and SQLT22) belonging to the second SQL group (B) generated during the period of URLS-11 are SQL requests for URLR 1 corresponding to URLS-11. It is determined that it is identified from a SQL request transmitted during a session period other than the URL identified from the request, and the second SQL group (B) may be deleted.

마찬가지로, 상기 제어부(120)는 유효 SQL 그룹으로 설정된 DB 세션 3에 대응되는 제 4 SQL 그룹(D)과 동일한 URL 세션 기간(URLS-31)을 가지는(포함하는) DB 세션 2에 대응되는 제 5 SQL 그룹(E)와 DB 세션 1에 대응되는 제 6 SQL 그룹(F)를 상기 저장부(130)에서 삭제할 수 있다.Similarly, the control unit 120 controls the fifth SQL group corresponding to DB session 2 having (including) the same URL session duration (URLS-31) as the fourth SQL group D corresponding to DB session 3 set as the effective SQL group. The sixth SQL group (F) corresponding to the SQL group (E) and DB session 1 may be deleted from the storage unit 130 .

또한, 상기 제어부(120)는 유효 SQL 그룹이 결정된 특정 URL 세션 기간과 일부 기간이 겹치는 하나 이상의 타 URL 세션 기간 중에서 유효 SQL 그룹이 결정되지 않은 타 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹을 대상으로 상기 특정 URL 세션 기간에 대응되는 유효 SQL 그룹에 포함된 하나 이상의 SQL 타입 중 적어도 하나가 존재하는 SQL 그룹을 삭제하여, 특정 URL 세션 기간에 대응되는 유효 SQL 그룹을 기초로 타 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 가짜를 판별하여 삭제할 수 있다.In addition, the control unit 120 targets one or more SQL groups corresponding to other URL session periods for which an effective SQL group is not determined among one or more other URL session periods overlapping with a specific URL session period for which an effective SQL group is determined. By deleting an SQL group in which at least one of the one or more SQL types included in the valid SQL group corresponding to the specific URL session period exists, based on the valid SQL group corresponding to the specific URL session period, corresponding to the other URL session period One or more SQL groups can be identified and deleted as fake.

또한, 상기 제어부(120)는, 상기 특정 URL 세션 기간과 일부 기간이 겹치며 유효 SQL 그룹이 결정되지 않은 타 URL 세션 기간에 대응되는 하나 이상의 SQL 그룹 중 유효 SQL 그룹을 이용한 삭제를 통해 하나의 SQL 그룹만 존재하면(남게 되면), 상기 하나의 SQL 그룹을 상기 타 URL 세션 기간에 대응되는 유효 SQL 그룹으로 설정할 수 있다.In addition, the control unit 120 deletes one SQL group by using an effective SQL group among one or more SQL groups corresponding to another URL session period in which a partial period overlaps with the specific URL session period and an effective SQL group is not determined. If only exists (remains), the one SQL group can be set as an effective SQL group corresponding to the other URL session period.

일례로, 도 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 control unit 120 identifies one or more SQL groups (G, H, I) corresponding to the URLS-21, and selects one or more SQL groups (G, H, I) corresponding to the URLS-21. An SQL group (H) including at least one of one or more SQL types included in the first SQL group (A), which is a valid SQL group corresponding to URLS-11, may be determined as fake and deleted.

또한, 상기 제어부(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 control unit 120 determines that the URLS-31 corresponds to the URLS-31 among one or more SQL groups (G, I) corresponding to the URLS-21. An SQL group (I) including at least one of one or more SQL types included in the fourth SQL group (D), which is a valid SQL group, may be determined as fake and deleted.

이를 통해, 상기 제어부(120)는, 상기 URLS-21에 대응되는 하나 이상의 SQL 그룹을 대상으로 상기 유효 SQL 그룹을 이용한 삭제 과정을 통해 하나의 SQL 그룹(G)만이 남게 되면, 상기 URLS-21에 대응되는 상기 하나의 SQL 그룹(G)을 유효 SQL 그룹으로 설정할 수 있다.Through this, the control unit 120, when only one SQL group (G) remains through a deletion process using the effective SQL group targeting one or more SQL groups corresponding to the URLS-21, returns to the URLS-21. The corresponding one SQL group (G) may be set as an effective SQL group.

한편, 도 10 및 도 11에 도시된 바와 같이, 상기 제어부(120)는 상기 저장부(130)에 저장된 상기 유효 SQL 정보를 기초로 상기 유효 SQL 정보에 포함된 하나 이상의 SQL 타입 및 URL 타입을 포함하며 상기 유효 SQL 정보에 따른 URL 세션 기간과 다른 URL 세션 기간이 설정된 타 SQL 그룹을 유효 SQL 정보로 설정할 수 있다.Meanwhile, as shown in FIGS. 10 and 11 , the controller 120 includes one or more SQL types and URL types included in the valid SQL information based on the valid SQL information stored in the storage 130. And other SQL groups in which a URL session period different from the URL session period according to the valid SQL information is set can be set as the valid SQL information.

일례로, 상기 제어부(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 controller 120 determines the URL type (URLT 2) included in the 7th SQL group (G) and one or more SQL groups based on the 7th SQL group (G), which is an effective SQL group corresponding to URLS-21. The storage of the 8th SQL group (J) including the same type (SQLT21, SQLT22, SQLT23, SQLT24) and setting URLS-71, which is another URL session period different from the URL session period according to the 7th SQL group (G) It can be identified in unit 130, and the eighth SQL group (J) can be set as an effective SQL group.

즉, 상기 제어부(120)는 유효 SQL 그룹과 동일한 URL 타입 및 SQL 타입 집합을 가지면서 상기 유효 SQL 그룹과 다른 URL 세션 기간을 가진 SQL 그룹을 유효한 SQL 그룹으로서 식별하고, 유효 SQL 그룹으로 설정할 수 있다.That is, the control unit 120 identifies an SQL group having the same URL type and SQL type set as the valid SQL group and having a different URL session period from the valid SQL group as a valid SQL group, and can set the SQL group as the valid SQL group. .

또한, 상기 제어부(120)는 상기 유효 SQL 그룹으로 설정된 상기 제 8 SQL 그룹과 동일한 URL 세션 기간 동안 상기 제 8 SQL 그룹에 대응되는 DB 세션과 다른 DB 세션별로 생성된 하나 이상의 SQL 그룹을 가짜로 판별하고 상기 저장부(130)에서 삭제할 수 있다.In addition, the control unit 120 determines one or more SQL groups created for each DB session different from the DB session corresponding to the eighth SQL group during the same URL session period as the eighth SQL group set as the valid SQL group as fake. and can be deleted from the storage unit 130.

또한, 도 12에 도시된 바와 같이, 상기 제어부(120)는, 상기 SQL 그룹에 속한 상기 SQL 타입별로 상기 WAS에서 상기 SQL 타입에 대응되는 SQL 요청을 전송한 시간에 대한 정보를 상기 SQL 타입과 매칭하여 상기 SQL 그룹에 포함시킬 수 있다.In addition, as shown in FIG. 12, the control unit 120 matches information about the time when the WAS transmitted the SQL request corresponding to the SQL type for each SQL type belonging to the SQL group with the SQL type. and included in the SQL group.

이에 따라, 상기 제어부(120)는, 특정 DB 세션에 대응되는 복수의 SQL 그룹 중 유효 SQL 그룹으로 설정되지 않은 SQL 그룹(K)에 속한 특정 SQL 타입(SQLT63)의 전송 시간이 상기 특정 DB 세션에 대응되는 특정 유효 SQL 그룹(L)에 포함된 제 5 SQL 타입(SQLT62)의 전송 시간과 제 6 SQL 타입(SQLT64)의 전송 시간 사이에 존재하면, 상기 특정 SQL 타입(SQLT63)을 상기 특정 유효 SQL 그룹(L)에 포함시킬 수 있다.Accordingly, the control unit 120 determines that the transmission time of a specific SQL type (SQLT63) belonging to a SQL group (K) that is not set as a valid SQL group among a plurality of SQL groups corresponding to a specific DB session is affected by the specific DB session. If it exists between the transmission time of the 5th SQL type (SQLT62) and the 6th SQL type (SQLT64) included in the corresponding specific valid SQL group (L), the specific SQL type (SQLT63) is assigned to the specific valid SQL group (L). Can be included in group (L).

또한, 상기 제어부(120)는, 특정 DB 세션에 대응되며 유효 SQL 그룹으로 설정되지 않은 특정 SQL 그룹에 포함된 URL 세션 기간이 상기 특정 DB 세션에 대응되는 유효 SQL 그룹에 포함된 URL 세션 기간에 모두 포함되는 경우 상기 특정 SQL 그룹을 상기 저장부(130)에서 삭제할 수 있다.In addition, the control unit 120 determines that the duration of a URL session included in a specific SQL group corresponding to a specific DB session and not set as a valid SQL group is equal to the duration of a URL session included in a valid SQL group corresponding to the specific DB session. If included, the specific SQL group can be deleted from the storage unit 130 .

또한, 도 13에 도시된 바와 같이, 상기 제어부(120)는, 상기 저장부(130)에 저장된 하나 이상의 매핑 정보를 포함하며 URL 타입과 SQL 타입 사이의 관계가 정의된 맵 정보(URLT_SQLT Map)를 생성하여 상기 저장부(130)에 저장할 수 있다(S6).In addition, as shown in FIG. 13, the control unit 120 includes map information (URLT_SQLT Map) including one or more mapping information stored in the storage unit 130 and defining a relationship between a URL type and an SQL type. It can be generated and stored in the storage unit 130 (S6).

즉, 상기 맵 정보는 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 control unit 120 targets an SQL group that has not yet been set as a valid SQL group in the storage unit 130 based on the mapping information included in the map information, and performs the mapping An SQL group that includes both the URL type included in the information and one or more SQL types can be set as an effective SQL group.

또한, 상기 제어부(120)는, 상기 매핑 정보를 기초로 유효 SQL 그룹으로 설정된 SQL 그룹에 따른 URL 세션 기간에 대응되는 다른 SQL 그룹을 가짜로 판별하고 삭제할 수 있다.In addition, the control unit 120 may determine and delete other SQL groups corresponding to the URL session period according to the SQL group set as a valid SQL group as fake based on the mapping information.

한편, 도 15에 도시된 바와 같이, 상기 제어부(120)는, 유효 SQL 그룹으로 설정되는 SQL 그룹마다 상술한 바와 같이 유효 SQL 그룹으로 설정된 SQL 그룹에서 URL 타입과 하나 이상의 SQL 타입을 추출한 후 상호 매칭하여 매핑 정보를 생성할 수 있다.Meanwhile, as shown in FIG. 15, the control unit 120 extracts a URL type and one or more SQL types from the SQL group set as the effective SQL group as described above for each SQL group set as the effective SQL group, and then matches them with each other. to generate mapping information.

또한, 상기 제어부(120)는, 복수의 서로 다른 사용자 단말로부터 상기 WAS에 수신되는 복수의 URL 요청 각각에 대해 상술한 동작을 수행하여 복수의 매핑 정보를 생성한 후 상기 저장부(130)에 저장하고, 상기 저장부(130)에 저장된 상기 복수의 매핑 정보를 포함하는 맵 정보를 생성할 수 있다.In addition, the control unit 120 generates a plurality of mapping information by performing the above-described operation for each of a plurality of URL requests received by the WAS from a plurality of different user terminals, and then stores the information in the storage unit 130. and map information including the plurality of mapping information stored in the storage unit 130 may be generated.

또한, 상기 제어부(120)는, 상기 스니핑을 통해 상기 사용자 단말에서 상기 WAS로 전송하는 패킷으로부터 사용자 단말의 식별 정보 및 특정 URL 요청을 추출할 수 있다.In addition, the control unit 120 may extract identification information of a user terminal and a specific URL request from a packet transmitted from the user terminal to the WAS through the sniffing.

이때, 상기 사용자 단말의 식별 정보는 상기 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 control unit 120 may extract one or more SQL requests from packets transmitted from the WAS to the DB during the URL session period corresponding to the specific URL request through the sniffing.

또한, 상기 제어부(120)는, 상기 맵 정보(또는 매핑 정보)를 기초로 상기 특정 URL 요청의 URL 타입에 대응되는 하나 이상의 SQL 타입을 식별한 후 상기 추출된 하나 이상의 SQL 요청 중 상기 식별된 하나 이상의 SQL 타입과 각각 대응되는 하나 이상의 SQL 요청을 식별하고, 상기 식별된 하나 이상의 SQL 요청과 상기 특정 URL 요청 및 상기 사용자 단말의 식별정보를 포함하는 접근 정보를 생성할 수 있다(S7).In addition, the control unit 120 identifies one or more SQL types corresponding to the URL type of the specific URL request based on the map information (or mapping information), and then the identified one or more SQL types of the extracted one or more SQL requests. One or more SQL requests corresponding to each of the above SQL types may be identified, and access information including the identified one or more SQL requests, the specific URL request, and identification information of the user terminal may be generated (S7).

또한, 상기 제어부(120)는, 상기 웹 어플리케이션 서버에 접속하여 URL 요청을 전송하는 사용자 단말별로 접근 정보를 하나 이상 생성하여 상기 저장부(130)에 저장할 수 있으며, 상기 저장부(130)에 저장된 하나 이상의 접근 정보를 기초로 접근 이력 테이블(접근 이력 정보)을 생성할 수 있다.In addition, the control unit 120 may generate one or more pieces of access information for each user terminal that accesses the web application server and transmits a URL request, and stores the information in the storage unit 130. An access history table (access history information) may be created based on one or more pieces of access information.

또한, 상기 통신부(110)는 상기 WAS와 통신하기 위한 통신 모듈을 포함할 수 있으며, 상기 제어부(120)는 상기 접근 이력 테이블을 상기 통신부(110)를 통해 상기 WAS에 전송할 수도 있다.Also, the communication unit 110 may include a communication module for communicating with the WAS, and the control unit 120 may transmit the access history table to the WAS through the communication unit 110.

또한, 상기 제어부(120)는 보안 정보에 접근하기 위한 하나 이상의 SQL 요청이 미리 설정된 설정 정보를 기초로 특정 사용자 단말에 대응되는 상기 접근 정보에 따른 하나 이상의 SQL 요청 중에서 보안 정보에 접근하는 SQL 요청을 식별할 수 있으며, 상기 접근 정보에 따른 하나 이상의 SQL 요청 중 적어도 하나가 보안 정보에 접근하기 위한 SQL 요청인 경우 상기 저장부(130)에서 상기 특정 사용자 단말의 식별정보에 대응되는 권한 정보를 식별한 후 상기 권한 정보를 기초로 상기 보안 정보에 대한 상기 특정 사용자 단말에 대응되는 사용자의 접근 권한 여부를 판단할 수 있다.In addition, the controller 120 selects one or more SQL requests for accessing security information among one or more SQL requests according to the access information corresponding to a specific user terminal based on preset setting information for one or more SQL requests for accessing security information. can identify, and if at least one of the one or more SQL requests according to the access information is a SQL request for accessing security information, the storage unit 130 identifies authority information corresponding to the identification information of the specific user terminal Then, based on the authority information, it is possible to determine whether or not the user has access authority corresponding to the specific user terminal to the security information.

이때, 상기 보안 정보는 개인 정보와 같은 보안이 필요한 정보를 의미할 수 있다.In this case, the security information may mean information requiring security such as personal information.

또한, 상기 제어부(120)는, 상기 특정 사용자 단말의 사용자가 보안 정보에 대한 접근 권한이 없는 경우 상기 WAS에 상기 특정 사용자 단말에 대응되는 사용자의 상기 접근 정보를 상기 통신부(110)를 통해 전송하거나 상기 특정 사용자 단말의 접속을 차단하기 위한 알림 정보를 상기 통신부(110)를 통해 전송할 수 있다.In addition, the control unit 120 transmits the access information of the user corresponding to the specific user terminal to the WAS through the communication unit 110 when the user of the specific user terminal does not have access to security information, or Notification information for blocking access of the specific user terminal may be transmitted through the communication unit 110 .

상술한 바와 같이, 본 발명은 웹 어플리케이션 서버에 정보 수집용 에이전트 프로그램을 삽입할 필요 없이 스니핑을 통해 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 storage unit 130 such as a memory, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, and an FPGA. hardware such as a field programmable gate array (PLU), programmable logic unit (PLU), microprocessor, software including an instruction set, or any combination thereof, or any other device capable of executing and responding to instructions, such as one or more It may be implemented using a general purpose computer or a special purpose computer.

전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.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(웹 어플리케이션 서버)에서 사용자 단말과의 통신을 위해 설정한 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 타입을 매칭하여 매핑 정보를 생성하는 매칭 단계;
를 포함하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 방법.
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.
청구항 1에 있어서,
상기 접근 관리 장치는 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.
청구항 1에 있어서,
상기 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.
청구항 1에 있어서,
상기 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.
청구항 1에 있어서,
상기 매칭 단계는,
다른 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.
청구항 1에 있어서,
상기 매칭 단계는,
상기 유효 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.
청구항 1에 있어서,
상기 매칭 단계는,
상기 유효 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:
청구항 1에 있어서,
상기 매칭 단계 이후,
복수의 서로 다른 사용자 단말로부터 상기 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:
청구항 8에 있어서,
상기 접근 정보를 생성하는 단계 이후,
상기 접근 정보에 따른 하나 이상의 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(웹 어플리케이션 서버)에서 사용자 단말과의 통신을 위해 설정한 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 타입을 매칭하여 매핑 정보를 생성하는 제어부;
를 포함하는 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치.
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.
KR1020210143721A 2021-10-26 2021-10-26 Access management apparatus and method for managing database access based on web application server KR102521784B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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