[go: up one dir, main page]

KR100916668B1 - Database Security Device and Method Using Agent - Google Patents

Database Security Device and Method Using Agent Download PDF

Info

Publication number
KR100916668B1
KR100916668B1 KR1020090054230A KR20090054230A KR100916668B1 KR 100916668 B1 KR100916668 B1 KR 100916668B1 KR 1020090054230 A KR1020090054230 A KR 1020090054230A KR 20090054230 A KR20090054230 A KR 20090054230A KR 100916668 B1 KR100916668 B1 KR 100916668B1
Authority
KR
South Korea
Prior art keywords
security
user
database
relay
unit
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020090054230A
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 KR1020090054230A priority Critical patent/KR100916668B1/en
Application granted granted Critical
Publication of KR100916668B1 publication Critical patent/KR100916668B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

A database security apparatus and a method using agent are provided to increase control efficiency about a user and security of database at the same time. A hooking unit(452) moves a DBMS(DataBase Management System) server process corresponding with the user process. The hooking unit moves a relay process. Using a relay process, a relay unit(453) performs a communication between the DBMS server process and the user process. In order for applying a security policy to the corresponding communication data, the relay unit communicates with the security application unit(440). According to the predetermined security policy, the security application unit applies the security policy to communication data transmitted from the relay unit. A listener(456) delivers the session information of user to an agent(451).

Description

에이전트를 이용한 데이터베이스 보안 장치 및 방법{DATABASE SECURITY APPARATUS AND METHOD USING AGENT}DATABASE SECURITY APPARATUS AND METHOD USING AGENT}

본 발명은 데이터베이스 보안 장치 및 방법에 관한 것으로서, 보다 상세하게는 DB서버 내에 데이터베이스 매니지먼트 시스템(DBMS)과 결합하는 에이전트를 설치하고 클라이언트와 DBMS의 서버 프로세스 사이에 에이전트를 통하여 통신하게 하고 에이전트와 보안모듈을 직접 연결한 에이전트를 이용한 데이터베이스 보안 장치 및 방법에 관한 것이다. The present invention relates to an apparatus and a method for securing a database. More particularly, the present invention relates to a database security system and a method for installing an agent in a DB server, the database management system (DBMS) coupled to the client and the server process of the DBMS. The present invention relates to a database security device and a method using an agent which directly connects to a.

정보통신 시대에 접어들면서 각종 정보들을 수집하여 활용하거나 이를 통해 비즈니스 정보(BI:Business Information)을 얻기 위한 다양한 시스템이 등장하고 있으며, 이러한 시스템의 근간에는 DBMS(DataBase Management System) 관련 기술의 진보가 밑바탕이 되어왔다.As the information and communication era enters, various systems have emerged to collect and utilize various information or to obtain business information (BI) .Based on such systems, advances in DBMS (DataBase Management System) -related technologies are the foundation. This has been.

이러한 DBMS는 비즈니스 관련 정보, 고객 정보, 상품 정보, 컨텐츠 정보를 포함하는 다양하고 방대한 자료들을 저장 및 관리하고 있으며, 이러한 정보를 효과적으로 관리하기 위한 관계형 데이터베이스 관리 시스템으로 오라클(Oracle), 사이베이스(Sybase), 마이 에스큐엘(MySQL), 마이크로소프트 에스큐엘 서버(MS SQL Server) 등의 다양한 DBMS가 사용되고 있다.This DBMS stores and manages a wide variety of data, including business-related information, customer information, product information, and content information, and is a relational database management system for effectively managing such information. Oracle and Sybase ), Various DBMS such as MySQL, Microsoft SQL Server, etc. are used.

중요한 정보를 관리하는 DBMS의 보안성을 높이기 위한 보안 시스템의 구성 역시 최근 빈번하게 발생되는 정보 유출이나 정보 조작과 같은 다양한 보안 사고를 방지하기 위하여 일정 규모 이상에서 일반적으로 적용되고 있으며, 최근 가장 큰 문제로 떠오르고 있는 내부자에 의한 보안 사고를 방지하기 위하여 DBMS에 접속하는 모든 사용자에 대한 사용 내역을 관리하는 형태로까지 발전하고 있다.The construction of a security system to enhance the security of the DBMS that manages important information is also commonly applied on a certain scale or more to prevent various security incidents such as information leakage and information manipulation that occur frequently in recent years. In order to prevent security incidents caused by insiders, it is being developed to manage the usage history of all users accessing the DBMS.

상기 DBMS의 보안성을 높이기 위한 보안 시스템은 관리자에 의해 허가된 사용자만 DBMS에 접근할수 있도록 통제하거나, DBMS 접근 및 사용 내역에 대한 모니터링과 강제 세션 종료 등의 실시할 수 있도록 하며, 사용 내역을 로그로 저장하고 사용자별로 접근 정책을 설정하는 등의 다양한 보안 기능을 제공할 수 있다.The security system to enhance the security of the DBMS can be controlled so that only the user authorized by the administrator can access the DBMS, or can monitor the DBMS access and usage history and terminate the forced session, and log the usage history. It can provide various security functions such as saving and setting access policy for each user.

최근에는 일반적인 DBMS 사용자, DBMS 관리자, 보안 관리자, 경영층 등의 다양한 사용자들의 다양한 접근 권한에 대한 관리는 물론이고 최고 권한을 가진 사용자에 의한 접속에 대한 감시도 가능하도록 구성되고 있다.Recently, various access rights of various users such as general DBMS users, DBMS administrators, security managers, and executives are managed as well as monitoring of access by users with the highest authority.

상기 DBMS 보안 시스템의 일반적인 구성은 게이트웨이(Gateway) 방식과 스니핑(Sniffing) 방식이 있다.The general configuration of the DBMS security system includes a gateway method and a sniffing method.

도 1은 게이트웨이 방식으로 보안 구성이 적용된 기본적인 DBMS 보안 시스템의 구성을 보인 것으로, 복수의 클라이언트 단말기들(10)이 통신망(11)을 통해서 DBMS(16)에 접속하도록 구성되며, DBMS(16)에 대한 보안을 관리하기 위하여 클라이 언트 단말기들과 DB서버 사이에 게이트웨이 보안 서버(12)를 구성하게 된다. 상기 게이트웨이 보안 서버(12)는 클라이언트(10)와 DB서버 사이(15)에 위치하며 중간에서 클라이언트의 데이터를 받아 DB서버에 보내 주고 DB서버의 데이터를 받아 보안 적용을 하여 클라이언트로 보내주는 방식이다. 이러한 게이트웨이 방식은 DB서버로 가는 모든 패킷을 중간에서 컨트롤하기 때문에 TCP 세션에 대한 접근 통제를 할 수 있으나, 오직 TCP세션에 대한 접근 통제가 가능하므로 100% 접근통제가 안되고 게이트웨이 보안 서버를 거치지 않고 DB 서버에서 직접 사용하는 내부 사용자는 게이트웨이 보안 서버의 보안정책을 적용할 수 없다. 또한, 게이트웨이 서버가 다운되었을 때를 대비하여 반드시 통신망을 이중화하여 FOD(14 : failover device)등을 사용하여 사고에 대비를 해야 한다.1 illustrates a basic DBMS security system to which a security configuration is applied in a gateway manner. A plurality of client terminals 10 are configured to connect to a DBMS 16 through a communication network 11, and to a DBMS 16. The gateway security server 12 is configured between the client terminals and the DB server to manage security for the server. The gateway security server 12 is located between the client 10 and the DB server 15 and receives the data of the client in the middle and sends the data to the DB server, and receives the data of the DB server and applies the security to the client. . This gateway method can control TCP sessions because it controls all packets to DB server in the middle, but only TCP sessions can be controlled, so 100% access control is not possible and DB does not go through gateway security server. Internal users directly using the server cannot apply the security policy of the gateway security server. In addition, in case the gateway server goes down, the network must be duplexed to prepare for an accident by using a FOD (14: failover device).

도 2은 스니핑 방식으로 보안 구성이 적용된 기본적인 DBMS 보안 시스템의 구성을 보인 것으로, 복수의 클라이언트 단말기들(20)이 통신망(21)을 통해서 DBMS(26)에 접속하도록 구성되며, 클라이언트 단말기(20)와 DB서버(25) 사이의 스위치단에서 포트 미러링을 하거나 TAP(24 :네트워크상에서 전송되는 데이터를 중단없이 모니터링 하기위한 장비)을 설치하여 클라이언트(20)와 DB서버(25) 사이의 통신패킷을 복사하여 스니핑 보안 서버(22)에서 분석하거나 저장한다. 스니핑 방식의 보안 시스템은 통신 도중 스니핑 보안 서버(22)가 다운되어도 DB 서버에 미치는 영향이 없으므로 업무에 지장이 없으나, 패킷 로스가 발생하여 DB 모니터링이 완전하지 않을 수 있고, 접속유형이나 접속방법등을 모니터링하거나 로그로 저장할 수 있 는 수동적인 데이터베이스 보안 관리만 가능하며, 접근 통제와 같이 적극적인 데이터베이스 보안 관리는 불가능하다.2 illustrates a basic DBMS security system to which a security configuration is applied in a sniffing manner, wherein a plurality of client terminals 20 are configured to connect to the DBMS 26 through a communication network 21, and the client terminal 20 Port mirroring at the switch between DB server 25 and DB server 25 or TAP (equipment for monitoring data transmitted over network without interruption) is installed to establish communication packet between client 20 and DB server 25. Copy and analyze or store at sniffing security server 22. The sniffing security system has no effect on the DB server even if the sniffing security server 22 is down during communication, so there is no problem in the work, but the packet monitoring may occur and the DB monitoring may not be complete. Only manual database security management, which can monitor or log data, is possible. Active database security management such as access control is not possible.

상술한 바와 같이 게이트웨이 방식을 이용한 보안 시스템은 오직 TCP세션에 대한 접근 통제가 가능하므로 100% 접근통제가 안되고 게이트웨이 보안 서버를 거치지 않고 DB 서버에서 직접 사용하는 내부 사용자는 게이트웨이 보안 서버의 보안정책을 적용할 수 없다. 또한, 스니핑 방식을 이용한 보안 시스템은 패킷 로스가 발생하여 DB 모니터링이 완전하지 않을 수 있고, 접속유형이나 접속방법등을 모니터링하거나 로그로 저장할 수 있는 수동적인 데이터베이스 보안 관리만 가능하며, 접근 통제와 같이 적극적인 데이터베이스 보안 관리는 불가능하다. 그리고, 최근의 데이터베이스의 정보유출 사고는 주로 내부 사용자에 의해 이루어지고 있으므로 상기 게이트웨이 방식이나 스니핑 방식을 이용한 보안 시스템에서 통제할 수 없는 내부 사용자까지도 데이터베이스 보안 정책에 포함되어야 한다.As described above, since the gateway-based security system can only control access to the TCP session, 100% access control is not possible and internal users who directly use the DB server without the gateway security server apply the security policy of the gateway security server. Can not. In addition, the security system using the sniffing method may not complete DB monitoring due to packet loss, and only passive database security management that monitors the connection type or access method or stores it as a log is possible. Active database security management is not possible. In addition, since recent information leakage incidents of the database are mainly performed by internal users, even internal users that cannot be controlled in the security system using the gateway method or the sniffing method should be included in the database security policy.

따라서, 모든 세션에 대해 접근 통제가 가능하며, DB서버 외부에서 통신망을 통해 접근하는 외부 사용자뿐만 아니라 DB 서버에 직접 접근하는 내부 사용자에게도 적용되고, 데이터베이스에 대한 모니터링이나 로그 관리와 같은 수동적인 보안 관리뿐만 아니라 접근통제와 같은 적극적인 보안 관리가 되는 데이터베이스에 대한 완벽한 보안성과 보안방법의 다양한 확장성을 갖춘 데이터베이스 보안 시스템이 요구된다.Therefore, access control is possible for all sessions, and is applied not only to external users accessing the communication server from outside the DB server but also to internal users directly accessing the DB server, and passive security management such as database monitoring and log management. In addition, there is a need for a database security system that has complete security for the database that is actively managed such as access control and various scalability of security methods.

전술한 문제점을 개선하기 위한 본 발명 실시예들의 목적은 DB서버 내에 에이전트를 설치하고 클라이언트가 통신하는 다양한 프로토콜에 대해 에이전트를 통하여서만 데이터베이스와 통신하게 함으로써 다른 경로로 접속이 불가능하게 한 에이전트를 이용한 데이터베이스 보안 장치 및 방법을 제공하는 것이다. An object of the embodiments of the present invention for improving the above-mentioned problems is to install an agent in a DB server and to communicate with the database only through the agent for various protocols with which the client communicates, thereby making it impossible to connect to the database through the agent. It is to provide a security device and method.

본 발명 실시예들의 다른 목적은 DB서버 내에 설치된 에이전트가 데이터베이스 매니지먼트 시스템과 결합하여 실행됨으로써 클라이언트와 데이터베이스 사이의 모든 사용자의 통신데이터를 에이전트에서 통제할 수 있도록 한 에이전트를 이용한 데이터베이스 보안 장치 및 방법을 제공하는 것이다. Another object of the embodiments of the present invention is to provide an apparatus and method for securing a database using an agent in which an agent installed in a DB server is executed in combination with a database management system so that the agent can control communication data of all users between a client and a database. It is.

본 발명 실시예들의 또 다른 목적은 데이터베이스 매니지먼트 시스템과 결합하여 실행되는 에이전트가 데이터베이스 보안 모듈과 직접적으로 통신함으로써 보안서버의 기능을 관리하게 한 에이전트를 이용한 데이터베이스 보안 장치 및 방법을 제공하는 것이다. Another object of the embodiments of the present invention is to provide an apparatus and a method for securing a database using an agent that allows an agent executed in combination with a database management system to directly communicate with a database security module to manage a function of a security server.

상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 에이전트를 이용한 데이터베이스 보안 장치는 DBMS와 결합되어 있는 에이전트와, 보안 적용부로 이루어진다. In order to achieve the above object, a database security device using an agent according to an embodiment of the present invention comprises an agent coupled to the DBMS, and a security application unit.

상기 DBMS와 결합되어 있는 에이전트는 클라이언트나 내부사용자가 DBMS에 접속하면 그 접속 정보를 저장하고 접속 내에서 데이터베이스 명령문을 요청하면 상용 DBMS에서와 마찬가지로 일반적인 프로세스를 거쳐 상기 데이터베이스 명령문을 수행한 후 그 결과를 상기 DBMS와 결합되어 있는 에이전트와 연결된 상기 보안 적용부의 다양한 보안정책에 따라 상기 데이터베이스 명령문의 보안 정책이 적용된 결과로 바꾸어 상기 클라이언트나 내부사용자에게 전달한다. When a client or an internal user connects to a DBMS, the agent stores the connection information. When an agent requests a database statement within the connection, the agent executes the database statement through a general process as in a commercial DBMS. According to various security policies of the security application unit connected to the agent coupled to the DBMS, the security policy of the database statement is changed to the result of applying the security policy to the client or the internal user.

상기 보안 적용부는 기 저장된 데이터베이스 보안정책에 따라 상기 데이터베이스 명령문을 거부하거나 상기 데이터베이스 명령문의 결과를 일부 수정하거나 혹은 그대로 전달하는 등의 보안정책을 수행함으로써 상기 클라이언트나 내부사용자에 적용된 데이터베이스 보안정책의 목적을 달성한다.The security application unit performs a security policy such as rejecting the database statement, partially modifying the result of the database statement, or forwarding the result as it is, according to a previously stored database security policy. To achieve.

상기 DBMS와 결합되어 있는 에이전트는 후킹부와, 릴레이부로 구성된다.The agent coupled to the DBMS is composed of a hooking unit and a relay unit.

상기 후킹부는 세션정보를 입력받고 처리하는 세션 정보 처리부와, 상용 DBMS모듈의 리스너로부터 전달받은 사용자 세션정보를 이용하여 릴레이부의 릴레이 프로세스를 기동하는 릴레이 프로세스 기동부와, 기동된 릴레이 프로세스의 세션정보를 이용하여 상기 상용 DBMS모듈의 서버 프로세스를 기동하는 서버 프로세스 기동부로 이루어진다.The hooking unit receives a session information processing unit for receiving and processing session information, a relay process starting unit for starting a relay process of a relay unit using user session information received from a listener of a commercial DBMS module, and session information of the activated relay process. It consists of a server process starting unit for starting the server process of the commercial DBMS module.

상기 릴레이부는 사용자 프로세스와 서버프로세스의 통신을 중계하는데 필요한 세션 정보를 설정하는 세션정보 설정부와, 사용자 프로세스 및 서버 프로세스와 통신하는 프로세스 통신부와, 보안 적용부와 통신하는 보안 통신부로 이루어진다. The relay unit includes a session information setting unit for setting session information necessary for relaying communication between the user process and the server process, a process communication unit communicating with the user process and the server process, and a security communication unit communicating with the security application unit.

상기 보안 적용부는 보안 정책을 저장한 보안 정책부와, 보안 요청에 대한 경고 메시지를 보내거나 로그에 저장하는 보안 경고부와, 결재를 필요로 하는 데이터베이스 명령문이 요청되었을때 결재 수단을 제공하는 보안 결재부와, 데이터베이 스 명령문이 데이터베이스 시스템에 로드를 걸리게 하는지등을 판별하는 보안 감사부와, 상기 보안 적용부를 거치는 수행문이나 수행결과등을 로그로 저장하는 로그 저장부로 이루어진다.The security application unit provides a security policy unit for storing a security policy, a security warning unit for sending a warning message for a security request or storing it in a log, and a security approval unit for providing a payment method when a database statement requiring payment is requested. And a security audit unit for determining whether or not the database statement is loaded on the database system, and a log storage unit for storing the execution statement or the execution result through the security application unit as a log.

본 발명 실시예에 따른 에이전트를 이용한 데이터베이스 보안 장치 및 방법은 DB서버 내에 에이전트를 설치하고 클라이언트가 통신하는 다양한 프로토콜에 대해 에이전트를 통하여서만 데이터베이스와 통신하게 함으로써 다른 경로로 접속이 불가능하게 하여 데이터베이스의 보안성을 강화할 수 있는 효과가 있다.The apparatus and method for securing a database using an agent according to an embodiment of the present invention installs an agent in a DB server and communicates with the database only through an agent for various protocols with which the client communicates. There is an effect that can enhance the sex.

본 발명 실시예에 따른 에이전트를 이용한 데이터베이스 보안 장치 및 방법은 DB서버 내에 설치된 에이전트가 데이터베이스 매니지먼트 시스템과 결합하여 실행됨으로써 클라이언트와 데이터베이스 사이의 모든 사용자의 통신데이터를 에이전트에서 통제할 수 있도록 하여 데이터베이스의 사용자 통제성을 강화할 수 있는 효과가 있다.In accordance with an embodiment of the present invention, an apparatus and method for securing a database using an agent may be executed by an agent installed in a DB server in combination with a database management system, thereby allowing the agent to control communication data of all users between the client and the database. It has the effect of enhancing control.

본 발명 실시예에 따른 에이전트를 이용한 데이터베이스 보안 장치 및 방법은 데이터베이스 매니지먼트 시스템과 결합하여 실행되는 에이전트가 데이터베이스 보안 모듈과 직접적으로 통신함으로써 보안서버의 기능을 관리하게 하여 데이터베이스 보안 관리의 확장성을 증대시키는 효과가 있다.An apparatus and method for database security using an agent according to an embodiment of the present invention allow an agent executed in combination with a database management system to directly communicate with a database security module to manage the function of a security server, thereby increasing the scalability of database security management. It works.

상기한 바와 같은 본 발명을 첨부된 도면들과 실시예들을 통해 상세히 설명하도록 한다.The present invention as described above will be described in detail with reference to the accompanying drawings and embodiments.

도 3은 본 발명의 실시예에 따른 에이전트를 이용한 데이터베이스 보안 장치를 포함한 일반적인 데이터베이스 시스템의 구성을 보인 것으로, 도시한 바와 같이 복수의 클라이언트 단말기들(30)과, DB서버(32)와, 통신망(31)을 통하지 않고 DB서버(32)에서 직접 데이터베이스에 접속하는 내부사용자(33)와, DB서버(32) 내에 구성되어 있는 DBMS(34)와, DBMS와 결합되어 있는 에이전트(35) 및 보안 적용부(36)의 구성을 개략적으로 보인 것이다.3 shows a configuration of a general database system including a database security apparatus using an agent according to an embodiment of the present invention. As shown in FIG. 3, a plurality of client terminals 30, a DB server 32, and a communication network ( 31, an internal user 33 accessing the database directly from the DB server 32, a DBMS 34 configured in the DB server 32, an agent 35 coupled to the DBMS, and security applications. The configuration of the unit 36 is schematically shown.

상기 내부사용자(33)는 통신망(31)을 통하지 않고 DB서버(32)와 직접 연결되어 사용하는 것으로, 콘솔을 통하여 직접 DB에 접속하거나 DB서버 내부에서 동작하는 배치 프로그램 등이 일례이다. 상기 내부사용자(33)는 직접 DBMS(34)에 접속하여 작업하므로 게이트웨이 방식이나 스니핑 방식을 이용한 데이터베이스 보안 시스템에서는 보안성을 유지할 수 없다. 하지만, 상기 예에서는 에이전트(35)가 DBMS와 결합되어 작동하므로 내부 사용자도 에이전트(35)를 통해서 데이터베이스에 접속해야하기 때문에 보안성을 유지할 수 있다.The internal user 33 is used directly connected to the DB server 32 without using the communication network 31, for example, a batch program that accesses the DB directly through the console or operates inside the DB server. Since the internal user 33 directly accesses and works with the DBMS 34, security cannot be maintained in a database security system using a gateway method or a sniffing method. However, in the above example, since the agent 35 works in conjunction with the DBMS, an internal user must also access the database through the agent 35, thereby maintaining security.

상기 DBMS(35)는 오라클, 사이베이스, MS-SQL과 같이 상용화되어 있는 DBMS와 에이전트(35)를 결합한 것으로 외부적으로는 상용 DBMS와 똑같이 동작하기 때문에 특별한 환경을 요구하지 않으며 사용자가 사용시에도 상용 DBMS와 똑같이 사용하면 된다. 하지만, 내부적으로는 DBMS와 결합된 에이전트(35)에 데이터베이스 관리의 목적에 맞게 보안 모듈(36)을 연결하는등의 데이터베이스를 컨트롤 하는 다양 한 모듈을 직접 연결할 수 있기 때문에 DBMS에서 나오는 결과를 사용자에게 그대로 전달하지 않고 그 원하는 목적에 맞게 컨트롤 하여 전달할 수 있는 잇점이 있다.The DBMS 35 is a combination of commercially available DBMS and agent 35 such as Oracle, Sybase, and MS-SQL. Externally, the DBMS 35 operates in the same manner as a commercial DBMS. You can use it just like a DBMS. However, internally, it is possible to directly connect various modules that control the database, such as connecting the security module 36 for the purpose of database management, to the agent 35 combined with the DBMS. There is an advantage that can be delivered by controlling according to the desired purpose without passing it as it is.

상기 DBMS와 결합되어 있는 에이전트(35)는 상기 클라이언트나 내부사용자가 상기 DBMS에 접속하면 그 접속 정보를 저장하고 접속 내에서 데이터베이스 명령문을 요청하면 상용 DBMS에서와 마찬가지로 일반적인 프로세스를 거쳐 상기 데이터베이스 명령문을 수행한 후 그 결과를 상기 DBMS와 결합되어 있는 에이전트(35)와 연결된 상기 보안 적용부(36)의 다양한 보안정책에 따라 상기 데이터베이스 명령문의 보안 정책이 적용된 결과로 바꾸어 상기 클라이언트(30)나 내부사용자(33)에게 전달한다. The agent 35 coupled to the DBMS stores the connection information when the client or internal user accesses the DBMS, and executes the database statement through a general process as in a commercial DBMS when requesting a database statement within the connection. After that, the result is changed to a result of applying the security policy of the database statement according to various security policies of the security application unit 36 connected to the agent 35 coupled to the DBMS. 33).

상기 보안 적용부(36)는 상기 DBMS와 결합되어 있는 에이전트(35)에 연결될 수 있는 다양한 모듈중 일례를 나타낸 것으로 데이터베이스의 보안정책에 따라 상기 데이터베이스 명령문을 거부하거나 상기 데이터베이스 명령문의 결과를 일부 수정하거나 혹은 그대로 전달함으로써 상기 클라이언트나 내부사용자에 적용된 데이터베이스 보안정책의 목적을 달성한다.The security application unit 36 is an example of various modules that can be connected to the agent 35 is coupled to the DBMS, according to the security policy of the database to reject the database statement or partially modify the results of the database statement Or by delivering it as it is, to achieve the purpose of the database security policy applied to the client or internal user.

도 4, 도 5는 본 발명 실시예에 따른 에이전트를 이용한 데이터베이스 보안 장치를 포함한 일반적인 데이터베이스 시스템의 구성을 보다 자세히 보인것으로, 특히 오라클 DBMS의 구성으로 도시한 것이다. 에이전트를 이용한 데이터베이스 보안 장치를 포함한 일반적인 데이터베이스 시스템 구성은 도시한 바와 같이 통신망(410)을 통해 외부에서 데이터베이스 명령문을 요청하는 외부 사용자(400)와, DB 서버(420)와, DB서버(420) 내에서 데이터베이스 명령문을 요청하는 내부 사용자(430)와, 에이전트와 결합한 DBMS(450)와, 결합된 에이전트(451)와 연결된 보안 적용부(440)로 이루어진다.4 and 5 show in more detail the configuration of a general database system including a database security device using an agent according to an embodiment of the present invention, in particular the configuration of an Oracle DBMS. A general database system configuration including a database security device using an agent includes an external user 400 requesting a database statement from the outside through the communication network 410, the DB server 420, and the DB server 420. An internal user 430 requesting a database statement in the DB, a DBMS 450 coupled to the agent, and a security application unit 440 connected to the coupled agent 451.

상기 에이전트와 결합한 DBMS(450)는 에이전트(451)와 상용DBMS모듈(455)로 이루어지며, 상기 에이전트(451)는 후킹부(452)와 릴레이부(453)로 구성된다.DBMS 450 coupled with the agent is composed of an agent 451 and a commercial DBMS module 455, the agent 451 is composed of a hooking unit 452 and a relay unit 453.

상기 상용DBMS모듈(455)은 일반적으로 사용되는 오라클 DBMS이며 구성중 설명에 중요한 부분인 리스너(456)와 서버 프로세스(457)와 데이터베이스(458)를 따로 표시하였다.The commercial DBMS module 455 is a commonly used Oracle DBMS, and shows the listener 456, the server process 457, and the database 458, which are important parts of the configuration.

도 4는 본 발명 실시예에 따른 에이전트를 이용한 데이터베이스 보안 장치를 포함한 일반적인 데이터베이스 시스템의 구성에서 사용자가 최초 접속시 데이터 흐름을 표시한 것이다. 4 illustrates a data flow when a user first connects in a configuration of a general database system including a database security device using an agent according to an embodiment of the present invention.

상기 외부 사용자(400)와 내부 사용자(430)는 리스너(456) 혹은 후킹부(452)로 오라클 데이터베이스에 접속 요청을 한다. 외부 사용자(400)는 DB서버(420) 외부에서 접속하는 사용자이고 내부사용자(430)는 DB서버(420) 내에서 접속하는 사용자이다. 일반적으로 오라클 데이터베이스에 접속하는 방법을 크게 두가지로 나눌 수 있는데 TCP 프로토콜을 이용하는 방법과 BEQ 프로토콜을 이용하는 방법으로 나눌 수 있다. DB서버(420) 외부에서 사용자가 SQL PLUS이나 Toad와 같은 클라이언트 프로그램으로 접속할 경우 TCP 프로토콜이 사용되며, DB서버(420) 내부에서 프로그램이나 콘솔 접속의 경우 BEQ 프로토콜이 사용될 수 있다. 오라클에서는 사용자가 TCP 프로토콜을 사용할 경우 리스너를 통해 오라클 데이터베이스에 접속하지만, BEQ 프로토콜을 사용할 경우 리스너를 통하지 않고 직접 오라클 데이터베이스에 접속한다.The external user 400 and the internal user 430 request a connection to an Oracle database through a listener 456 or a hooking unit 452. The external user 400 is a user accessing from the outside of the DB server 420 and the internal user 430 is a user accessing from within the DB server 420. In general, there are two main ways to connect to an Oracle database: the TCP protocol and the BEQ protocol. When the user connects to a client program such as SQL PLUS or Toad from the DB server 420, the TCP protocol is used, and the BEQ protocol may be used for a program or console connection inside the DB server 420. In Oracle, when a user uses the TCP protocol, the user connects to the Oracle database through a listener. When using the BEQ protocol, the user connects directly to the Oracle database instead of through a listener.

상기 리스너(456)는 해당 사용자의 세션 정보를 입력받아 에이전트(451)로 전달한다. 상용 오라클 DBMS에서는 리스너가 해당 사용자의 서버 프로세스를 기동하게 되는데, 본 실시예에 따른 에이전트를 이용한 데이터베이스 보안 장치에서는 리스너가 서버 프로세스를 기동하는 대신 에이전트의 후킹부(452)를 기동하며, 이렇게 상용 DBMS의 프로세스 대신 상기 에이전트의 후킹부를 기동할 수 있는 것은 상기 리스너(456)가 호출하는 DBMS의 실행 파일명을 상기 후킹부가 대체하고, 상기 후킹부가 DBMS 내부 프로토콜(예를 들어, SQL*NET등)을 분석함으로써 가능해진다. 혹은 BEQ 프로토콜을 사용하여 리스너를 통하지 않고 직접 오라클 데이터베이스에 접속할때도 에이전트의 후킹부(452)를 기동하게 되는데 이것 역시 DBMS의 실행 파일명을 상기 후킹부가 대체하고, 상기 후킹부가 DBMS 내부 프로토콜을 분석함으로써 가능해진다. 따라서, DB서버 외부에서 통신망을 통해 접근하는 외부사용자 및 DB서버 내부에서 직접 접근하는 내부 사용자 모두 범용적으로 적용이 가능하다.The listener 456 receives session information of the corresponding user and delivers the session information to the agent 451. In the commercial Oracle DBMS, the listener starts the user's server process. In the database security apparatus using the agent according to the present embodiment, the listener starts the hooking unit 452 of the agent instead of starting the server process. The hooking part of the agent may be started instead of the process of the hooking part, replacing the executable file name of the DBMS called by the listener 456, and the hooking part analyzing a DBMS internal protocol (for example, SQL * NET). It becomes possible by doing this. Alternatively, the hooking unit 452 of the agent may be started even when the Oracle database is directly connected to the Oracle database without using a listener using the BEQ protocol. The hooking unit replaces the execution file name of the DBMS, and the hooking unit analyzes the DBMS internal protocol. Become. Therefore, it is possible to apply universally to both external users accessing through the communication network outside the DB server and internal users directly accessing from the DB server.

상기 후킹부(452)는 서버 프로세스(457)를 기동하며, 상기 리스너(456)에서 전달받은 해당 사용자의 세션 정보를 보안 적용부(440)에 전달한 후 보안 적용부(440)의 보안정책에 따라 서버 프로세스(457)에 전달할 세션 정보를 결정한다. 상기 보안 적용부의 보안정책에서 만일 상기 사용자가 보안정책이 적용되지 않아도 되는 사용자라면 상기 후킹부는 상기 서버 프로세스에 사용자의 세션 정보를 전달 한다. 또는 상기 사용자가 보안정책이 적용되어야 하는 사용자라면 상기 후킹부는 릴레이부(453)에 상기 사용자를 담당하는 릴레이 프로세스 기동을 상기 사용자의 세션정보와 함께 요청한다. 상기 릴레이 프로세스가 기동된 후 기동된 릴레이 프로세스의 세션정보를 상기 서버 프로세스에 전달한다. 이후, 상기 서버 프로세스의 세션정보를 상기 릴레이 프로세스에 전달한다.The hooking unit 452 starts the server process 457, transfers the session information of the corresponding user received from the listener 456 to the security application unit 440, and according to the security policy of the security application unit 440. Determine session information to be passed to server process 457. In the security policy of the security application unit, if the user does not need to apply the security policy, the hooking unit transmits the session information of the user to the server process. Alternatively, if the user is a user to which the security policy is to be applied, the hooking unit requests the relay unit 453 to start the relay process in charge of the user together with the session information of the user. After the relay process is started, session information of the started relay process is transmitted to the server process. Thereafter, session information of the server process is transmitted to the relay process.

보안정책이 적용되어야 하는 사용자의 경우, 상기 릴레이부에서 상기 릴레이 프로세스는 상기 후킹부로부터 전달받은 사용자의 세션 정보와 상기 기동된 서버 프로세스의 세션 정보를 링크하여 저장하고, 해당 사용자에게 서버 프로세스의 세션 정보 대신 자신의 세션 정보를 전달한다. 상기 해당 사용자의 프로세스는 상기 서버 프로세스의 세션 정보 대신 상기 릴레이 프로세스의 세션 정보를 전달받았기 때문에, 이후 해당 사용자의 접속안에서 이루어지는 데이터베이스 명령문은 릴레이부(453)를 경유하여 서버 프로세스(457)와 통신하게 된다. 도시하지는 않았지만, 보안정책이 적용되지 않아도 되는 사용자의 경우, 상기 서버 프로세스에 사용자의 세션 정보가 전달되었기 때뭍에, 이후 사용자(400, 430)는 서버 프로세스(457)와 직접 통신하게 된다.In the case of a user to which a security policy is to be applied, the relay process in the relay unit stores the session information of the user received from the hooking unit and the session information of the activated server process, and stores the session of the server process to the user. Pass your own session information instead. Since the user's process receives session information of the relay process instead of session information of the server process, a database statement made in the user's connection thereafter communicates with the server process 457 via the relay unit 453. do. Although not shown, a user who does not need to apply a security policy, since the user's session information is transmitted to the server process, the user 400, 430 is then directly communicated with the server process (457).

도 5는 본 발명 실시예에 따른 에이전트를 이용한 데이터베이스 보안 장치를 포함한 일반적인 데이터베이스 시스템의 구성에서 보안 정책이 적용되어야 할 사용자가 최초 접속 이후 릴레이부를 경유하는 상태의 통신 흐름을 표시한 것이다.5 illustrates a communication flow in a state where a user to which a security policy is to be applied via a relay unit after an initial connection is configured in a general database system including a database security device using an agent according to an embodiment of the present invention.

상기 외부 사용자(400)와 내부 사용자(430)는 릴레이부(453)로 데이터베이스 명령문을 요청 한다.The external user 400 and the internal user 430 request a database statement to the relay unit 453.

상기 릴레이부(453)는 상기 사용자로부터 전달받은 데이터베이스 명령문을 DB서버(420) 내의 보안 적용부(440)로 전달하여 보안 정책에 따라 실행할 수 있는지 검사한다. 검사가 완료되어 실행이 불가능하다고 분류된 데이터베이스 명령문은 릴레이부(453)에서 에러 메세지와 함께 사용자(400, 430)에게 전달된다. 혹은 실행이 가능한 데이터베이스 명령문은 상기 릴레이부에 해당 사용자의 세션 정보와 함께 링크된 서버 프로세스의 세션 정보를 사용하여 상기 링크된 서버 프로세스에 상기 데이터베이스 명령문을 호출하고 해당 명령문의 결과를 전달받아 상기 보안 적용부(440)에 그 결과를 전달한다. 상기 보안 적용부의 보안정책에 따라 상기 데이터베이스 명령문의 결과를 수정하여 그 수정된 결과를 상기 사용자가 요청한 데이터베이스 명령문의 보안 정책이 적용된 결과로 상기 사용자에게 전달한다. The relay unit 453 transfers the database statement received from the user to the security application unit 440 in the DB server 420 and checks whether it can be executed according to the security policy. The database statement classified as unable to execute because the check is completed is transmitted to the users 400 and 430 together with an error message in the relay unit 453. Alternatively, the executable database statement calls the database statement to the linked server process using the session information of the server process linked with the session information of the user in the relay unit, and receives the result of the statement to apply the security. The result is passed to the unit 440. The result of the database statement is modified according to the security policy of the security application unit, and the modified result is transmitted to the user as a result of applying the security policy of the database statement requested by the user.

기존 방식인 게이트웨이 방식이나 스니핑 방식을 이용한 데이터베이스 보안 장치는 보안 서버가 설치된 외부 사용자에게만 접근 제어나 모니터링이 가능하였지만, 본 실시예와 같이 DBMS와 결합한 에이전트를 구성하고 에이전트 내의 릴레이부에서 사용자와 서버 프로세스간의 통신을 제어함으로써, DB 서버에 직접 접근하여 데이터베이스를 사용하는 내부 사용자(420)까지도 보안 정책을 적용할 수 있다.Although the database security device using the gateway method or the sniffing method, which is a conventional method, access control or monitoring is possible only to an external user who has a security server installed, as shown in this embodiment, an agent combined with a DBMS is configured and a user and server process are performed at the relay unit in the agent. By controlling the communication between them, even the internal user 420 using the database by directly accessing the DB server can apply a security policy.

도 6은 본 발명 실시예에 따른 후킹부(600) 구성을 보인 것으로, 세션정보를 입력받고 처리하는 세션 정보 처리부(602)와, 상용 DBMS모듈의 리스너로부터 전달 받은 사용자 세션정보를 이용하여 릴레이부의 릴레이 프로세스를 기동하는 릴레이 프로세스 기동부(603)와, 기동된 릴레이 프로세스의 세션정보를 이용하여 상기 상용 DBMS모듈의 서버 프로세스를 기동하는 서버 프로세스 기동부(601)로 이루어진다.Figure 6 shows the configuration of the hooking unit 600 according to an embodiment of the present invention, the session information processing unit 602 for receiving and processing session information and the relay unit using the user session information received from the listener of the commercial DBMS module And a relay process starting unit 603 for starting a relay process and a server process starting unit 601 for starting a server process of the commercial DBMS module using session information of the activated relay process.

상기 세션 정보 처리부(602)는 사용자의 세션 정보를 입력받아 상기 릴레이 프로세스 기동부(603)에 전달하며, 사용자 세션 정보는 사용자 프로세스의 접속 위치에 따른 접속 정보 및 사용자 프로세스ID 뿐만 아니라, 접속하는 방법에 따른 TCP나 BEQ등 프로토콜 정보가 포함할 수 있다.The session information processing unit 602 receives the session information of the user and transfers it to the relay process starting unit 603, and the user session information is connected to the user process ID as well as the connection information and the user process ID according to the connection location of the user process. Protocol information such as TCP or BEQ may be included.

상기 릴레이 프로세스 기동부(603)는 상기 세션 정보 처리부(602)에서 입력받은 사용자의 세션정보를 이용하여 해당 사용자가 접속시 사용자 프로세스(611)와 서버 프로세스(622) 사이에서 통신을 담당하는 릴레이부(640)의 릴레이 프로세스(641)를 기동한다.The relay process activation unit 603 is a relay unit which is in charge of communication between the user process 611 and the server process 622 when the corresponding user is connected by using the session information of the user input from the session information processing unit 602. The relay process 641 of 640 is started.

상기 세션 정보 처리부(602)는 상기 릴레이부(640)의 릴레이 프로세스(641)가 기동되면 상기 릴레이 프로세스의 세션정보를 전달받아 서버 프로세스 기동부(601)로 전달한다.When the relay process 641 of the relay unit 640 is activated, the session information processor 602 receives session information of the relay process and transmits the session information to the server process activation unit 601.

상기 서버 프로세스 기동부(601)는 상기 세션 정보 처리부(602)에서 입력받은 릴레이 프로세스 세션정보를 사용하여 해당 사용자의 데이터베이스 명령문을 수행하기 위한 서버 프로세스(622)를 기동한다. 일반적인 상용 오라클 DBMS에서는 서버 프로세스가 기동 될때 리스너가 서버 프로세스를 요청한 사용자 프로세스 ID등의 사용자 프로세스의 세션 정보를 서버 프로세스로 전달하지만, 본 실시예에 따른 상기 서버 프로세스 기동부(601)는 서버 프로세스(622)가 상기 릴레이부(603)와 통신하기 위해 릴레이부(603)의 릴레이 프로세스 세션정보를 서버 프로세스(622)로 전달한다.The server process starting unit 601 starts a server process 622 for executing a database statement of a corresponding user by using the relay process session information input from the session information processing unit 602. In a typical commercial Oracle DBMS, when a server process is started, a listener transmits session information of a user process, such as a user process ID, which requested a server process, to the server process. However, the server process activator 601 according to the present embodiment is a server process ( 622 transfers relay process session information of the relay unit 603 to the server process 622 to communicate with the relay unit 603.

상기 세션 정보 처리부는 상기 서버 프로세스(622)가 기동되면 상기 서버 프로세스 세션정보를 전달받아 릴레이부(640)의 릴레이 프로세스(641)로 전달한다. 이후, 상기 릴레이 프로세스 세션정보를 사용자 프로세스로 전달한다. When the server process 622 is started, the session information processor receives the server process session information and transmits the received server process session information to the relay process 641 of the relay unit 640. Thereafter, the relay process session information is transmitted to the user process.

이후, 사용자 프로세스(611)와 서버 프로세스(622) 사이에 릴레이 프로세스(641)를 경유하여 통신이 가능해진다.Thereafter, communication is possible between the user process 611 and the server process 622 via the relay process 641.

도 7은 본 발명 실시예에 따른 릴레이부(700) 구성을 보인 것으로, 사용자 프로세스(710)와 서버프로세스(730)의 통신을 중계하는데 필요한 세션 정보를 설정하는 세션정보 설정부(701)와, 사용자 프로세스(710) 및 서버 프로세스(730)와 통신하는 프로세스 통신부(702)와, 보안 적용부(740)와 통신하는 보안 통신부(703)로 이루어진다. 7 shows a configuration of a relay unit 700 according to an embodiment of the present invention, a session information setting unit 701 for setting session information necessary for relaying communication between a user process 710 and a server process 730; A process communication unit 702 communicating with the user process 710 and the server process 730, and a security communication unit 703 communicating with the security application unit 740.

상기 세션정보 설정부(701)는 릴레이 프로세스를 기동할 때 상기 후킹부(720)에서 입력된 사용자 프로세스 세션정보와 상기 후킹부(720)에서 기동한 서버 프로세스의 세션정보를 상기 릴레이 프로세스의 세션정보와 링크하여 상기 릴레이 프로세스가 사용자 프로세스 및 서버 프로세스와 통신하는데 필요한 세션 정보를 설정한다. The session information setting unit 701 stores the user process session information input from the hooking unit 720 and the session information of the server process started from the hooking unit 720 when starting the relay process. Link with and establish session information required for the relay process to communicate with user processes and server processes.

상기 프로세스 통신부(702)는 상기 세션정보 설정부에서 설정된 세션정보중 사용자 세션정보에 해당하는 사용자 프로세스(710)로부터 데이터베이스 명령문의 수행이 요청되면 사용자 세션정보와 링크된 서버 프로세스 세션정보의 해당 서버 프로세스(730)를 호출하여 수행문을 요청하며 그 결과를 전송 받는다. 상기 프로세스 통신부(702)는 상기 사용자 프로세스(710)로부터 요청된 수행문이나 상기 서버 프로세스(730)로부터 전송받은 수행문의 결과를 가지고 보안 통신부(703)와 보안 정책을 적용하기 위해 보안 통신부(703)로 보안 적용 요청을 할 수 있다. 상기 프로세스 통신부(702)는 상기 릴레이 프로세스 세션 정보와 링크된 사용자 프로세스 세션정보에 해당하는 사용자 프로세스(710)로 상기 보안 통신부(703)에서 보안 정책이 적용된 결과를 전송한다. When the process communication unit 702 is requested to execute a database statement from the user process 710 corresponding to the user session information among the session information set in the session information setting unit, the corresponding server process of the server process session information linked with the user session information. Call 730 to request an execution statement and receive the result. The process communication unit 702 may use the security communication unit 703 to apply a security policy with the security communication unit 703 with the result of the execution statement requested from the user process 710 or the execution statement received from the server process 730. You can make a security request. The process communication unit 702 transmits a result of applying a security policy to the user process 710 corresponding to the user process session information linked with the relay process session information.

상기 보안 통신부(703)는 보안 적용부(740)와 통신하며 상기 프로세스 통신부(702)로부터 수행문이나 수행문의 결과등을 사용하여 상기 보안 적용부(740)에 보안 적용 요청을 한다. 상기 사용자 프로세스(710)에서 프로세스 통신부(702)로 수행문을 요청하면 상기 프로세스 통신부(702)가 사용자가 사용 가능한 수행문인가 권한을 파악하기 위해 보안 적용을 요청할 수 있고, 혹은 서버 프로세스(730)로부터 전송된 수행문결과에 대해 수행문결과에 대한 조회권한이 있는지를 파악하기 위해 보안 적용을 요청할 수 있다. 따라서, 보안 적용부(740)로부터 전송된 보안정책이 적용된 결과는 수행문으로부터 보안 적용되었거나 혹은 수행문의 결과에 보안 적용이 될 수도 있다. 그러므로, 사용자가 수행문을 요청하였는데 보안 정책에 따라 수행되지 않을 수도 있고, 수행문의 결과중 일부만 마스킹이 되어 전송될 수 있는 등의 다양한 보안 정책을 적용할 수 있다.The security communication unit 703 communicates with the security application unit 740 and makes a security application request to the security application unit 740 by using the result of the execution statement or the execution statement from the process communication unit 702. When the user process 710 requests a performance statement from the process communication unit 702, the process communication unit 702 may request security application to determine an authority that is available to the user, or from the server process 730. The application of security may be requested to determine whether the authority to inquire about the performance of the performance statement is transmitted. Therefore, the result of applying the security policy transmitted from the security application unit 740 may be secured from the statement or may be secured to the result of the statement. Therefore, when a user requests a performance statement, it may not be performed according to the security policy, and only a part of the results of the performance statement may be masked and transmitted.

도 8은 본 발명 실시예에 따른 보안 적용부(800) 구성을 보인 것으로, 보안 정책을 저장한 보안 정책부(810)와, 보안 요청에 대한 경고 메시지를 보내거나 로그에 저장하는 보안 경고부(820)와, 결재를 필요로 하는 데이터베이스 명령문이 요청되었을때 결재 수단을 제공하는 보안 결재부(830)와, 데이터베이스 명령문이 데이터베이스 시스템에 로드를 걸리게 하는지등을 판별하는 보안 감사부(840)와, 상기 보안 적용부를 거치는 수행문이나 수행결과등을 로그로 저장하는 로그 저장부(850)로 이루어진다.8 illustrates a configuration of a security application unit 800 according to an exemplary embodiment of the present invention. The security policy unit 810 stores a security policy, and a security warning unit for sending a warning message or storing a warning message for a security request ( 820, a security approval unit 830 which provides a means of payment when a database statement requiring approval is requested, a security auditing unit 840 for determining whether a database statement is loaded on the database system, etc., It consists of a log storage unit 850 for storing the execution statement or the performance result, etc. that go through the security application.

상기 보안 정책부(810)는 상기 보안 경고부와, 보안 결재부와, 보안 감사부와, 로그 저장부의 보안 적용 여부에 대한 정책을 저장한다.The security policy unit 810 stores a policy regarding whether security is applied to the security alert unit, the security approval unit, the security audit unit, and the log storage unit.

상기 보안 경고부(820)는 상기 보안 정책부(810)의 보안 정책중 경고 정책에 대해 보안 적용을 하는 것으로, 경고 정책 적용이 요청되는 상기 수행문이나 수행문의 결과에 대해 사용자가 권한이 없거나 너무 많은 양의 쿼리를 지속적으로 보내는 등의 행위를 할때 사용자에게 경고 메시지를 보안 적용이 된 결과로 전송하거나 해당 사용자의 정보와 접속 정보, 수행문의 정보등을 로그에 저장하는 등의 보안 경고 정책을 수행한다.The security warning unit 820 applies security to the warning policy of the security policy of the security policy unit 810, and the user has no authority or too much authority over the result of the execution statement or the execution statement requesting the application of the warning policy. When sending a large amount of queries continuously, security warning policies such as sending a warning message to the user as a result of applying security, or storing the user's information, access information, and execution statement information in a log To perform.

상기 보안 결재부(830)는 상기 보안 정책부(810)의 보안 정책중 결재 정책에 대해 보안 적용을 하는 것으로, 결재 정책 적용이 요청되는 상기 수행문이 수행되기전에 미리 결재를 요청하는 선결재나, 실행되는 과정에서 결재를 요청하는 즉시 결재나, 결재 정책 적용이 요청되는 상기 수행문의 결과에 대해 결재를 요청하는 후결재 등의 보안 결재 정책을 수행한다.The security approval unit 830 applies security to a payment policy of the security policy of the security policy unit 810, and a pre-payment requesting the payment in advance before the execution statement requesting the application of the payment policy is performed. In the process of execution, the security payment policy such as payment is requested immediately after the payment is requested, or after the payment is requested for the result of the execution statement requesting the application of the payment policy.

상기 보안 감사부(840)는 상기 보안 정책부(810)의 보안 정책중 감사 정책에 대해 보안 적용을 하는 것으로, 감사 정책 적용이 요청되는 상기 수행문이나 수행문의 결과에 대해 해당 수행문의 시간이 너무 오래 걸리거나 감사 관리 대상 테이블에 대한 수행문일 경우, 해당 사용자의 정보를 모니터링하고 해당 사용자의 접근을 차단하는 등의 보안 감사 정책을 수행한다.The security audit unit 840 applies security to an audit policy of the security policy of the security policy unit 810, and the time of the execution statement is too long for the result of the execution statement or the execution statement requesting the application of the audit policy. If it takes a long time or is a statement about the audited target table, the security audit policy such as monitoring the user's information and blocking the user's access is executed.

상기 로그 저장부(850)는 상기 보안 정책부(810)의 보안 정책중 경고 정책, 결재 정책, 감사 정책에 대한 로그를 저장하는 것으로, 상기 보안 정책들로 인해 발생되는 다양한 보안 적용된 결과등과 해당 사용자의 정보등을 불필요한 부분은 제거하거나 압축하여 로그로 저장할 수 있다.The log storage unit 850 stores a log of a warning policy, a payment policy, and an audit policy among the security policies of the security policy unit 810, and various security applied results generated due to the security policies, and the like. Unnecessary parts such as user information can be removed or compressed and saved as a log.

도 9은 본 발명 실시예에 따른 에이전트를 이용한 데이터베이스 보안 방법의 순서도를 보인 것으로, 세션정보를 입력받고 처리하는 세션 정보 처리단계(S90)와, 리스너로부터 전달받은 사용자 세션정보를 이용하여 릴레이 프로세스를 기동하는 릴레이 프로세스 기동단계(S91)와, 기동된 릴레이 프로세스의 세션정보를 이용하여 상기 상용 DBMS모듈의 서버 프로세스를 기동하는 서버 프로세스 기동단계(S92)와, 릴레이 프로세스가 기동되었는지를 판단하는 릴레이 프로세스 기동 확인단계(S93)와, 릴레이 프로세스가 기동되지 않으면 서버 프로세스를 수행하는 서버 프로세스 수행단계(S98)로 이루어지고, 릴레이 프로세스가 기동되었으면 사용자 프로세스와 서버 프로세스의 통신을 중계하는데 필요한 세션 정보를 설정하는 릴레이 세션정보 설정단계(S94)와, 릴레이 프로세스가 사용자 프로세스 및 서버 프로세스와 통신하는 프로세스 통신단계(S95)와, 릴레이 프로세스가 보안 적용부와 통신하는 보안 통신단계(S96)와, 보안이 적용되는 보안 적용단계(S97)로 이루어진다.9 is a flowchart illustrating a method for securing a database using an agent according to an embodiment of the present invention, in which a relay process is performed using a session information processing step S90 for receiving and processing session information and user session information received from a listener. A relay process activation step (S91) for starting, a server process activation step (S92) for starting a server process of the commercial DBMS module using session information of the activated relay process, and a relay process for determining whether the relay process has been started A startup confirmation step (S93) and a server process execution step (S98) for performing a server process if the relay process is not started, and setting up session information necessary for relaying communication between the user process and the server process if the relay process is activated. Relay session information setting step (S94), Ray process consists of a user process and the server process and the communication process, a communication step (S95) that, with the relay process and the security application unit communication security communication step (S96) to secure the secured application step is applied (S97).

상기 릴레이 프로세스 기동단계(S91)는 상기 세션 정보 처리단계(S90)에서 입력받은 사용자의 세션정보를 이용하여 상기 사용자 세션정보의 해당 사용자가 보안정책으로 분류된 안전이 입증된 사용자등으로 보안정책에 위배되지 않는다고 판단하면, 상기 프로세스 통신단계(S95) 및 보안 통신단계(S96)등을 거치지 않고 직접 사용자 프로세스와 서버 프로세스가 통신을 하게 하기 위해 릴레이 프로세스를 기동하지 않을 수 있다.In the relay process activation step S91, the user of the user session information is classified as a security policy using the session information of the user received in the session information processing step S90. If it is determined that there is no violation, the relay process may not be started so that the user process and the server process communicate directly without passing through the process communication step S95 and the secure communication step S96.

상기 릴레이 프로세스 기동 확인단계(S93)에서 릴레이 프로세스가 기동되지 않았다고 분류되면 사용자 프로세스는 일반적인 상용 오라클 DBMS와 마찬가지로 릴레이 프로세스를 통하지 않고 서버 프로세스와 직접 통신한다.In the relay process activation confirmation step (S93), if the relay process is classified as not started, the user process communicates directly with the server process without going through the relay process as with a general commercial Oracle DBMS.

이상에서는 본 발명에 따른 바람직한 실시예들에 대하여 도시하고 또한 설명하였다. 그러나 본 발명은 상술한 실시예에 한정되지 아니하며, 특허 청구의 범위에서 첨부하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능할 것이다. In the above described and illustrated with respect to preferred embodiments according to the present invention. However, the present invention is not limited to the above-described embodiment, and various modifications can be made by those skilled in the art without departing from the gist of the present invention attached to the claims. .

도 1은 게이트웨이 방식으로 보안 구성이 적용된 기본적인 DBMS 보안 시스템의 구성도.1 is a configuration diagram of a basic DBMS security system to which a security configuration is applied in a gateway manner.

도 2는 스니핑 방식으로 보안 구성이 적용된 기본적인 DBMS 보안 시스템의 구성도.2 is a configuration diagram of a basic DBMS security system to which a security configuration is applied by a sniffing method.

도 3는 본 발명의 실시예에 따른 에이전트 방식으로 보안 구성이 적용된 기본적인 DBMS 보안 시스템의 구성도.3 is a block diagram of a basic DBMS security system to which a security configuration is applied in an agent manner according to an embodiment of the present invention.

도 4, 5는 본 발명의 실시예에 따른 에이전트를 이용한 데이터베이스 보안 장치의 구성도.4 and 5 are configuration diagrams of a database security device using an agent according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 후킹부의 구성도.Figure 6 is a block diagram of a hooking portion according to an embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 릴레이부의 구성도.7 is a configuration diagram of a relay unit according to an embodiment of the present invention.

도 8은 본 발명의 실시예에 따른 보안 적용부의 구성도.8 is a block diagram of a security application unit according to an embodiment of the present invention.

도 9는 본 발명의 실시예에 따른 에이전트를 이용한 데이터베이스 보안 장치의 순서도.9 is a flowchart illustrating a database security device using an agent according to an embodiment of the present invention.

** 도면의 주요 부분에 대한 부호의 설명 **** Description of symbols for the main parts of the drawing **

30: 클라이언트30: Client

32: DB서버 34: DBMS32: DB server 34: DBMS

35: 에이전트 452: 후킹부35: agent 452: hooking part

453: 릴레이부 456: 리스너453: relay unit 456: listener

457: 서버 프로세스457: Server Process

Claims (14)

데이터베이스 관리 시스템(DBMS)과 동일한 서버에 구성되는 데이터베이스 보안 장치에 있어서, A database security device configured on the same server as a database management system (DBMS), 온라인 사용자 및 로컬 접속 사용자를 포함하는 데이터베이스 사용자 프로세스가 데이터베이스 접속 요청시 데이터베이스 실행파일을 대체하여 실행되고, 상기 사용자 프로세스와 대응하는 DBMS 서버 프로세스를 기동하며, 상기 사용자 프로세스와 상기 DBMS 서버 프로세스 사이의 통신을 중계하는 릴레이 프로세스를 기동하는 후킹부와;A database user process, including an online user and a local access user, is executed by replacing a database executable file upon request for a database connection, starting up a corresponding DBMS server process and communicating between the user process and the DBMS server process. A hooking unit for starting a relay process for relaying the relay; 상기 릴레이 프로세스를 이용하여 상기 사용자 프로세스와 상기 DBMS 서버 프로세스 사이의 통신을 담당하고, 해당 통신 데이터에 보안 정책을 적용하기 위해 보안 적용부와 통신하는 릴레이부와;A relay unit in charge of communication between the user process and the DBMS server process using the relay process and communicating with a security application unit to apply a security policy to corresponding communication data; 기 설정된 보안 정책에 따라 상기 릴레이부로부터 전송된 통신 데이터에 보안 정책을 적용하여 전송하는 보안 적용부를 포함하고A security applying unit for applying and transmitting a security policy to communication data transmitted from the relay unit according to a preset security policy; 상기 보안 적용부는 보안 정책을 저장한 보안 정책부 및 보안 요청에 대한 경고를 보내는 보안 경고부와, 결재를 필요로 하는 데이터베이스 명령문이 요청되었을때 결재 수단을 제공하는 보안 결재부와, 데이터베이스 명령문이 데이터베이스 시스템에 로드를 걸리게 하는지를 판별하는 보안 감사부와, 데이터베이스 수행문이나 그 결과를 로그로 저장하는 로그 저장부 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 데이터 베이스 보안 장치.The security application unit includes a security policy unit that stores a security policy, a security warning unit that sends a warning about a security request, a security approval unit that provides a means of payment when a database statement requiring payment is requested, and a database statement is stored in a database. And at least one of a security auditing unit for determining whether a system is loaded and a log storage unit for storing a database execution statement or a result thereof as a log. 청구항 1에 있어서, 상기 후킹부는The method according to claim 1, wherein the hooking portion 데이터베이스 사용자의 사용자 프로세스 세션정보와 상기 사용자 프로세스에 대응하는 DBMS 서버 프로세스의 세션 정보 및 상기 사용자 프로세스와 상기 DBMS 서버 프로세스 사이의 통신 데이터를 중계하는 릴레이 프로세스의 세션 정보를 입력받고 전송하는 세션 정보 처리부와; A session information processor for receiving and transmitting user process session information of a database user, session information of a DBMS server process corresponding to the user process, and session information of a relay process relaying communication data between the user process and the DBMS server process; ; 세션 정보 처리부로부터 전달받은 사용자 프로세스 세션정보를 이용하여 상기 릴레이 프로세스를 기동하는 릴레이 프로세스 기동부와; A relay process activation unit for starting the relay process by using user process session information received from a session information processing unit; 상기 릴레이 프로세스 기동부로부터 기동된 릴레이 프로세스의 세션정보를 이용하여 상기 DBMS 서버 프로세스를 기동하는 서버 프로세스 기동부를 포함하는 것을 특징으로 하는 데이터베이스 보안 장치. And a server process activator for starting the DBMS server process by using session information of the relay process started from the relay process activator. 청구항 1에 있어서, 상기 후킹부는The method according to claim 1, wherein the hooking portion 상기 사용자 프로세스에 해당하는 사용자가 상기 릴레이 프로세스를 사용하지 않는 사용자이면 상기 릴레이 프로세스를 기동하지 않고 상기 사용자 프로세스와 상기 DBMS 서버 프로세스가 직접 통신하도록 하는 것을 더 포함하는 것을 특징으로 하는 데이터베이스 보안 장치.And if the user corresponding to the user process is a user who does not use the relay process, causing the user process and the DBMS server process to directly communicate with each other without starting the relay process. 청구항 1에 있어서, 상기 릴레이부는 The method of claim 1, wherein the relay unit 상기 사용자 프로세스와 상기 DBMS 서버 프로세스의 통신을 중계하는데 필요한 세션 정보를 상기 릴레이 프로세스의 세션정보와 링크하는 세션정보 설정부와; A session information setting unit for linking session information necessary for relaying communication between the user process and the DBMS server process, with session information of the relay process; 상기 릴레이 프로세스를 경유하여 상기 사용자 프로세스와 상기 DBMS 서버 프로세스가 통신하는 프로세스 통신부와;A process communication unit for communicating between the user process and the DBMS server process via the relay process; 상기 보안 적용부와 통신하며 상기 프로세스 통신부로부터 데이터베이스 명령문이나 데이터베이스 명령문의 결과를 사용하여 상기 보안 적용부에 보안 적용 요청을 하는 보안 통신부를 포함하는 것을 특징으로 하는 데이터베이스 보안 장치. And a secure communication unit in communication with the security applying unit and making a security application request to the security applying unit using a result of a database statement or a database statement from the process communication unit. 삭제delete 청구항 1에 있어서, 상기 데이터 베이스 관리 시스템은 오라클인 것을 특징으로 하는 데이터 베이스 보안 장치.The database security device of claim 1, wherein the database management system is Oracle. 청구항 1에 있어서, 상기 서버의 OS는 유닉스이거나 리눅스인 것을 특징으로 하는 데이터 베이스 보안 장치.The apparatus of claim 1, wherein the OS of the server is Unix or Linux. 데이터베이스 관리 시스템(DBMS)과 동일한 서버에 구성되는 데이터베이스 보안 장치를 이용한 데이터베이스 보안 방법에 있어서, In the database security method using a database security device configured on the same server as the database management system (DBMS), 온라인 사용자 및 로컬 접속 사용자를 포함하는 데이터베이스 사용자 프로세스가 데이터베이스 접속 요청시 데이터베이스 실행파일을 대체하고, 상기 사용자 프로세스와 대응하는 DBMS 서버 프로세스를 기동하며, 상기 사용자 프로세스와 상기 DBMS 서버 프로세스 사이의 통신을 중계하는 릴레이 프로세스를 기동하는 후킹단계와;A database user process, including an online user and a locally connected user, replaces the database executable file upon request for database connection, starts the corresponding DBMS server process, and relays communication between the user process and the DBMS server process. A hooking step of starting a relay process; 상기 사용자 프로세스와 상기 DBMS 서버 프로세스 사이를 상기 릴레이 프로세스를 이용하여 통신하고, 해당 통신 데이터에 기 설정된 보안 정책에 따라 보안 정책을 적용하여 전송하는 릴레이단계를 포함하고And relaying between the user process and the DBMS server process using the relay process and applying and transmitting a security policy according to a security policy set in the communication data. 상기 후킹단계는 데이터베이스 사용자의 사용자 프로세스 세션정보와 상기 사용자 프로세스에 대응하는 DBMS 서버 프로세스의 세션 정보 및 상기 사용자 프로세스와 상기 DBMS 서버 프로세스 사이의 통신 데이터를 중계하는 릴레이 프로세스의 세션 정보를 입력받고 전송하는 세션 정보 처리단계와; The hooking step receives and transmits user process session information of a database user, session information of a DBMS server process corresponding to the user process, and session information of a relay process relaying communication data between the user process and the DBMS server process. Session information processing step; 세션 정보 처리단계로부터 전달받은 사용자 프로세스 세션정보를 이용하여 상기 릴레이 프로세스를 기동하는 릴레이 프로세스 기동단계와; A relay process activation step of starting the relay process using the user process session information received from the session information processing step; 상기 릴레이 프로세스 기동단계로부터 기동된 릴레이 프로세스의 세션정보를 이용하여 상기 DBMS 서버 프로세스를 기동하는 서버 프로세스 기동단계를 포함하는 것을 특징으로 하는 데이터베이스 보안 방법. And a server process starting step of starting the DBMS server process using session information of the relay process started from the relay process starting step. 삭제delete 청구항 8에 있어서, 상기 후킹단계는The method of claim 8, wherein the hooking step 상기 사용자 프로세스에 해당하는 사용자가 상기 릴레이 프로세스를 사용하지 않는 사용자이면 상기 릴레이 프로세스를 기동하지 않고 상기 사용자 프로세스와 상기 DBMS 서버 프로세스가 직접 통신하도록 하는 것을 더 포함하는 것을 특징으로 하는 데이터베이스 보안 방법.And if the user corresponding to the user process is a user who does not use the relay process, directly communicating the user process with the DBMS server process without starting the relay process. 청구항 8에 있어서, 상기 릴레이단계는 The method of claim 8, wherein the relay step 상기 사용자 프로세스와 상기 DBMS 서버 프로세스의 통신을 중계하는데 필요한 세션 정보를 상기 릴레이 프로세스의 세션정보와 링크하는 세션정보 설정단계와; A session information setting step of linking session information necessary for relaying communication between the user process and the DBMS server process, with session information of the relay process; 상기 릴레이 프로세스를 경유하여 상기 사용자 프로세스와 상기 DBMS 서버 프로세스가 통신하는 프로세스 통신단계와;A process communication step of communicating between the user process and the DBMS server process via the relay process; 상기 프로세스 통신단계의 통신 데이터 중 데이터베이스 명령문이나 데이터베이스 명령문의 결과를 사용하여 기 설정된 보안 정책에 따라 보안 적용을 하는 보안 적용단계를 포함하는 것을 특징으로 하는 데이터베이스 보안 방법. And a security application step of applying security according to a predetermined security policy by using a result of a database statement or a database statement among the communication data in the process communication step. 청구항 11에 있어서, 상기 보안 적용단계는The method of claim 11, wherein the security application step 보안 정책을 저장하는 보안 정책단계 및 보안 요청에 대한 경고를 보내는 보안 경고단계와, 결재를 필요로 하는 데이터베이스 명령문이 요청되었을때 결재 수단을 제공하는 보안 결재단계와, 데이터베이스 명령문이 데이터베이스 시스템에 로드를 걸리게 하는지를 판별하는 보안 감사단계와, 데이터베이스 수행문이나 그 결과를 로그로 저장하는 로그 저장단계 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 데이터 베이스 보안 방법.A security policy step that stores the security policy, a security warning step that sends an alert for security requests, a security approval step that provides a means of payment when a database statement that requires a payment is requested, and a database statement loads the database system. And at least one of a security audit step of determining whether or not to be caught, and a log storing step of storing a database execution statement or a result thereof as a log. 청구항 8에 있어서, 상기 데이터 베이스 관리 시스템은 오라클인 것을 특징으로 하는 데이터 베이스 보안 방법.The method of claim 8, wherein the database management system is Oracle. 청구항 8에 있어서, 상기 서버의 OS는 유닉스이거나 리눅스인 것을 특징으로 하는 데이터 베이스 보안 방법.The method of claim 8, wherein the OS of the server is Unix or Linux.
KR1020090054230A 2009-06-18 2009-06-18 Database Security Device and Method Using Agent Active KR100916668B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090054230A KR100916668B1 (en) 2009-06-18 2009-06-18 Database Security Device and Method Using Agent

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090054230A KR100916668B1 (en) 2009-06-18 2009-06-18 Database Security Device and Method Using Agent

Publications (1)

Publication Number Publication Date
KR100916668B1 true KR100916668B1 (en) 2009-09-08

Family

ID=41355570

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090054230A Active KR100916668B1 (en) 2009-06-18 2009-06-18 Database Security Device and Method Using Agent

Country Status (1)

Country Link
KR (1) KR100916668B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101140615B1 (en) 2010-06-22 2012-05-02 주식회사 웨어밸리 Database security method using extending packet

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010109271A (en) * 1999-10-01 2001-12-08 추후제출 System And Method For Providing Data Security
KR20020055220A (en) * 2000-12-28 2002-07-08 구자홍 Method for dynamic database processing by using CORBA platform
KR20050036010A (en) * 2003-10-14 2005-04-20 (주)데이타헤븐 System-monitoring system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010109271A (en) * 1999-10-01 2001-12-08 추후제출 System And Method For Providing Data Security
KR20020055220A (en) * 2000-12-28 2002-07-08 구자홍 Method for dynamic database processing by using CORBA platform
KR20050036010A (en) * 2003-10-14 2005-04-20 (주)데이타헤븐 System-monitoring system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
http://www.ex-em.com/web/product/product_maxgauge.php

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101140615B1 (en) 2010-06-22 2012-05-02 주식회사 웨어밸리 Database security method using extending packet

Similar Documents

Publication Publication Date Title
US11327898B2 (en) Systems and methods for centrally managed host and network firewall services
US8208903B2 (en) System and method for realizing remote control to terminal data
JP3415456B2 (en) Network system, command use authority control method, and storage medium storing control program
US10296440B2 (en) Multi-tenant aware debugging methods and systems
CN102521099A (en) Process monitoring method and process monitoring system
US10911299B2 (en) Multiuser device staging
KR102256736B1 (en) Api management system and method thereof
CN111585880B (en) Gateway control method and device in service system and electronic equipment
CN111737232A (en) Database management method, system, device, device and computer storage medium
JP2019500800A (en) Method and apparatus for environmental isolation
CN107038817A (en) Input Peripheral Device Security
CN110049031B (en) Interface security authentication method, server and authentication center server
CN116546062A (en) Cloud mobile phone control method and device, cloud server and storage medium
KR100916668B1 (en) Database Security Device and Method Using Agent
US11503080B2 (en) Remote management of a user device
US11418573B1 (en) File transfer abstraction on a computer network
CN119248485A (en) A method and system for a cloud management platform to apply for virtual machine services on the Inspur ICOS cloud platform
CN109992298B (en) Examination and approval platform expansion method and device, examination and approval platform and readable storage medium
US20240214434A1 (en) Remote desktop connection communications
KR20230110065A (en) Method for security conformity verification and apparatus thereof
KR101992972B1 (en) A safety access control system for risky commands using a session sharing of server remote access
CN105553720A (en) Client and system with trusted operating environments
KR100341852B1 (en) Implementation method of authentication for server-client application
CN109460654A (en) Service control method, service control system, server and computer storage medium
JP5377616B2 (en) Information distribution system and its access control method

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20090618

PA0201 Request for examination
PA0302 Request for accelerated examination

Patent event date: 20090618

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20090805

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20090831

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20090902

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20090903

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20120828

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20120828

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20130826

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20130826

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20140828

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20140828

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20160816

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20160816

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20170904

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20170904

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20190827

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20190827

Start annual number: 11

End annual number: 11

PR1001 Payment of annual fee

Payment date: 20200902

Start annual number: 12

End annual number: 12

PR1001 Payment of annual fee

Payment date: 20210820

Start annual number: 13

End annual number: 13

PR1001 Payment of annual fee

Payment date: 20220830

Start annual number: 14

End annual number: 14

PR1001 Payment of annual fee

Payment date: 20240827

Start annual number: 16

End annual number: 16