KR101958933B1 - Apparatus for and method of acquiring inner information of database by socket injection - Google Patents

Apparatus for and method of acquiring inner information of database by socket injection Download PDF

Info

Publication number
KR101958933B1
KR101958933B1 KR1020180164444A KR20180164444A KR101958933B1 KR 101958933 B1 KR101958933 B1 KR 101958933B1 KR 1020180164444 A KR1020180164444 A KR 1020180164444A KR 20180164444 A KR20180164444 A KR 20180164444A KR 101958933 B1 KR101958933 B1 KR 101958933B1
Authority
KR
South Korea
Prior art keywords
packet
server
database
information
client
Prior art date
Application number
KR1020180164444A
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 KR1020180164444A priority Critical patent/KR101958933B1/en
Application granted granted Critical
Publication of KR101958933B1 publication Critical patent/KR101958933B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention relates to a method and an apparatus for collecting information in a database via injection of socket communication. According to the present invention, the apparatus includes: a client; a database operating server; and a proxy server located between the client and the database operating server to acquire required internal information of the database from the operating server via socket injection by using a session established between the client and the database operating server. According to an embodiment of the present invention, login information or detailed information (metadata, etc.) necessary for replication in the database of the operating server is acquired via the socket injection by using an identical session created between the client and the operating server, so that access control is performed even when the login information is encrypted, and the replication is accurately processed. In other words, according to the embodiment of the present invention, the encrypted login information is acquired via the socket injection to control login authority, and metadata information for data replication is acquired to enable accurate replication.

Description

소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법 및 장치{APPARATUS FOR AND METHOD OF ACQUIRING INNER INFORMATION OF DATABASE BY SOCKET INJECTION}TECHNICAL FIELD [0001] The present invention relates to a method and apparatus for collecting information in a database through socket injection,

본 발명은 데이터베이스 내의 정보를 수집하는 기술에 관한 것으로, 더욱 상세하게는 소켓 통신의 인젝션을 통해 데이터베이스 내의 정보를 수집하는 방법 및 장치에 관한 것이다.TECHNICAL FIELD The present invention relates to a technique for collecting information in a database, and more particularly, to a method and apparatus for collecting information in a database through injection of a socket communication.

일반적으로, 각종 데이터를 저장하고 있는 데이터베이스 운영 서버는 데이터베이스 관리시스템(DBMS: Database management system)에 의해 관리되는데, 데이터베이스 관리시스템에서는 일반적인 계정/패스워드 방식을 통한 접근 제어 방법을 제공한다. 이러한 계정/패스워드를 통한 접근 제어 및 권한 관리는 복잡하고 다양한 조건으로 제어하기가 어려우며, 다수의 데이터베이스를 일괄적으로 관리하기도 어렵다. 또한 데이터베이스 관리 시스템의 종류에 따라서 권한 제어의 방법과 범위가 달라 권한 관리는 더욱 힘들어지게 된다. 이러한 문제를 해결하고자 도입하는 것이 바로 데이터베이스 보안시스템이다.Generally, a database operation server storing various data is managed by a database management system (DBMS). In a database management system, a general access / control method using an account / password method is provided. Access control and authorization management through such accounts / passwords are difficult to control under complicated and diverse conditions, and it is also difficult to manage a large number of databases collectively. Also, depending on the type of database management system, the method and scope of the authority control differs and the authority management becomes more difficult. A database security system is introduced to solve these problems.

통상 데이터베이스 보안 시스템은 스니핑 방식을 통한 사후 통제 방식과 프록시 방식을 통한 사전 통제 방식으로 나뉘는데, 프록시 방식의 보안 시스템에서는 사용자가 데이터베이스에 접속하고자 하는 경우 반드시 보안 시스템(즉, 프록시 서버)을 경유하여야 한다.Normally, the database security system is divided into a post-control method based on a sniffing method and a pre-control method based on a proxy method. In a proxy-based security system, a user must pass through a security system (i.e., a proxy server) .

본 출원인의 선등록 특허인 등록번호 제10-1140615호는 데이터베이스 보안 시스템을 경유하여 데이터베이스에 접근할 때, 세션 패킷의 분석을 통해서는 획득이 어려운 부가적인 정보를 확장 패킷을 통하여 보안 시스템에 전달하여 데이터베이스로의 접근을 제어하는 데이터베이스 보안 관리 기술을 개시하고 있다.The present applicant's registration number 10-1140615, when accessing the database via the database security system, transmits additional information, which is difficult to obtain through analysis of the session packet, to the security system through the extension packet Discloses a database security management technique for controlling access to a database.

한편, 조직의 중요한 데이터들은 데이터베이스 관리 시스템(DBMS)에 의해 관리되며 인증과정을 거쳐 로그인한 후에 SQL이라는 질의어를 통해서만 해당 정보에 정상적으로 접근할 수 있다. 그리고 최근에는 DBMS 자체가 강력한 보안기능을 제공하기 때문에 해킹보다는 DB에 접근 권한을 가진 사용자가 권한을 남용하여 정보를 유출하거나 변조하는 것이 가장 큰 위협이 되고 있다. 이러한 위협에 대응하기 위해 조직은 보안제품으로서 DB 접근제어 솔루션을 사용한다. 즉, DB 접근제어 솔루션은 사용자가 DBMS에 로그인하거나 SQL을 수행하려고 할 때 미리 정의된 보안규칙에 따라 권한 여부를 판단하여 통제하는 솔루션이다. 이러한 DB 접근제어 솔루션은 일반적으로 SQL을 통제할 뿐만 아니라 로그인이 필요한 SQL에 대하여 SQL 수행과 관련된 정보를 저장하는 기능을 제공한다. On the other hand, important data of an organization is managed by a database management system (DBMS), and after logging in through an authentication process, the information can be normally accessed only through a query word of SQL. Recently, the DBMS itself provides a strong security function. Therefore, it is the biggest threat to users who have access to the DB, rather than hacking, to leak or tamper with the information by abusing the authority. To counter these threats, organizations use DB access control solutions as security products. That is, the DB access control solution is a solution that judges and controls the authorization according to the predefined security rules when the user attempts to log in to the DBMS or execute SQL. This DB access control solution not only controls SQL but also provides a function to store information related to SQL execution for SQL that requires login.

그리고 앞에서 설명한 바와 같이 접근제어 솔루션 구축 방식 중 하나인 프록시 방식은 별도의 통제 프록시 서버를 설치한 후에 독립적인 IP 및 포트를 부여하고, DBMS에 로그인 시 해당 IP 및 포트로 로그인하도록 한다.As described above, the proxy method, which is one of the access control solution establishment methods, provides independent IP and port after installing a separate proxy server, and logs in to the DBMS when the user logs in to the corresponding IP and port.

그런데 데이터베이스 접속시 암호화된 프로토콜을 사용하는 경우 로그인 아이디와 패스워드 등 로그인 정보가 암호화되어 전송되므로 클라이언트와 데이터베이스 사이에서 패킷 분석만으로는 접근제어를 위한 정보를 취득할 수 없다는 문제점이 있다.However, in the case of using an encrypted protocol when accessing a database, login information such as a login ID and a password is transmitted in an encrypted form, so that there is a problem in that information for access control can not be acquired only by packet analysis between the client and the database.

이러한 문제점을 해결하기 위해 사용자의 로그인 제어시 로그인 완료 패킷을 데이터베이스로부터 받을 경우, 통제 프록시 서버가 로그인된 사용자의 권한을 확인하기 위하여 로그인 정보를 수집할 수 있어야 한다.To solve this problem, when the login completion control packet is received from the database in order to control the user's login, the control proxy server must be able to collect login information to check the authority of the logged-in user.

또한 프록시 방식에서 원본 데이터베이스에서 타겟 데이터베이스로 데이터 복제를 위해 패킷을 수집하고 분석하는 과정에서 데이터의 타입을 알아야 할 필요가 있다. 이를 위해서는 원본 데이터베이스에서 컬럼에 대한 메타 정보를 수집할 수 있는 기능이 필요하다. 예컨대, '2007-08-01'의 경우 텍스트형의 컬럼에 데이터를 적용하는 것인지 날짜(date) 타입의 컬럼에 데이터를 삽입(insert)하는 지에 따라 다른 포멧으로 복제 SQL을 변환할 필요가 있다.Also, in the proxy method, it is necessary to know the type of data in the process of collecting and analyzing the packets for data replication from the original database to the target database. This requires the ability to collect meta-information about the columns in the source database. For example, in the case of '2007-08-01', it is necessary to convert the replicated SQL in different formats depending on whether the data is applied to the text type column or the data type of the date type.

본 발명은 상기와 같은 필요성을 충족시키기 위해 제안된 것으로, 본 발명의 목적은 소켓 통신의 인젝션을 통해 데이터베이스 내의 정보를 수집하는 방법 및 장치를 제공하는 것이다.The present invention has been proposed to meet such a need, and it is an object of the present invention to provide a method and apparatus for collecting information in a database through injection of a socket communication.

본 발명의 실시예는 소켓 통신의 인젝션을 통해 데이터베이스 내의 정보를 수집하는 장치를 개시한다.An embodiment of the present invention discloses an apparatus for collecting information in a database via injection of a socket communication.

개시된 장치는 클라이언트와, 데이터베이스 운영 서버와, 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 위치하면서 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 설정된 세션을 이용하여 소켓 인젝션을 통해 필요한 데이터베이스의 내부 정보를 운영 서버로부터 획득하는 프록시 서버를 포함한다.The disclosed apparatus includes a client, a database operation server, and a server, which is located between the client and the database operation server and acquires internal information of a database necessary for socket injection using a session established between the client and the database operation server And a proxy server.

상기 프록시 서버는 상기 클라이언트측과 패킷을 송수신하는 클라이언트측 패킷 송수신 모듈과, 상기 클라이언트측 패킷 송수신 모듈을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하는 프로토콜 분석 모듈과, 운영 서버의 데이터베이스와 패킷을 송수신하는 서버측 패킷 송수신 모듈과, 데이터 조회를 위한 SQL을 생성하는 정보확인 SQL 제너레이터 모듈과, 상기 SQL 제너레이터에서 생성된 데이터 조회를 위한 SQL을 패킷으로 변환하는 패킷 제너레이터 모듈과, 로그인이나 테이블과 같은 오브젝트에 대한 권한을 메모리에 저장된 권한정보와 비교하여 체크하는 권한 체크 모듈과, 상기 클라이언트측으로부터 수신된 패킷에 포함된 SQL의 권한을 체크하여 상기 서버측 패킷 송수신 모듈로 전달하고, 상기 서버측 패킷 송수신모듈로부터 로그인완료 패킷이 수신되면, 상기 패킷 제너레이터 모듈로부터 데이터 조회를 위한 SQL을 전달받아 상기 서버측 패킷 송수신모듈로 전달하며, 상기 서버측 패킷 송수신모듈로부터 데이터 조회 응답 패킷이 수신되면 해당 정보를 추출한 후 상기 권한체크 모듈에 제공하여 권한을 체크하게 하고, 권한 체크 결과에 따라 서버측으로부터 수신된 응답 패킷을 상기 클라이언트측 패킷 송수신 모듈로 전달하는 패킷 콘트롤 모듈을 포함하는 통제 프록시 서버일 수 있다.The proxy server includes a client side packet transmission / reception module for transmitting / receiving a packet to / from the client side, a protocol analysis module for analyzing a packet received through the client side packet transmission / reception module and checking whether the packet is controlled on a protocol, A server side packet transmission / reception module for transmitting / receiving a packet, an information confirmation SQL generator module for generating SQL for data inquiry, a packet generator module for converting SQL for retrieving data generated by the SQL generator into a packet, And checks the authority of the SQL included in the packet received from the client and transmits the authority to the server side packet transmission / reception module. The server side packet transmission / Side packet transmission / reception module Receiving the SQL query packet from the server-side packet transmission / reception module and receiving the SQL query packet from the server-side packet transmission / reception module, And a packet control module for providing the request packet to the authority check module to check the authority and deliver the response packet received from the server side according to the result of the authority check to the client side packet transmission / reception module.

또한 상기 프록시 서버는 상기 클라이언트측과 패킷을 송수신하는 클라이언트측 패킷 송수신 모듈과, 상기 클라이언트측 패킷 송수신 모듈을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하는 프로토콜 분석 모듈과, 운영 서버의 데이터베이스와 패킷을 송수신하는 서버측 패킷 송수신 모듈과, 메타데이터 조회를 위한 SQL을 생성하는 정보확인 SQL 제너레이터 모듈과, 상기 SQL 제너레이터 모듈에서 생성된 메타데이터 조회를 위한 SQL을 패킷으로 변환하는 패킷 제너레이터 모듈과, 운영 서버에 적용된 SQL을 복제 서버에서 동일하게 실행하여 데이터베이스를 복제하는 복제 모듈과, 상기 클라이언트측으로부터 수신된 패킷을 상기 서버측 패킷 송수신 모듈로 전달하면서 해당 패킷이 INSERT나 UPDATE SQL이면 복제설정정보와 비교하여 복제대상인지를 확인한 후 복제 대상이고 메타데이터가 필요하면 상기 패킷 제너레이터 모듈로부터 메타데이터 조회를 위한 SQL을 전달받아 상기 서버측 패킷 송수신모듈로 전달하고, 상기 서버측 패킷 송수신모듈로부터 메타데이터 조회 응답 패킷이 수신되면 메타데이터 정보를 추출한 후 해당 SQL과 함께 상기 복제모듈에 제공하여 복제가 정확하게 이루어지게 하는 패킷 콘트롤 모듈을 포함하는 복제 프록시 서버일 수도 있다.The proxy server includes a client side packet transmission / reception module for transmitting / receiving a packet to / from the client side, a protocol analysis module for analyzing a packet received through the client side packet transmission / reception module and checking whether the packet is controlled on a protocol, And a packet generator module for converting SQL into a packet for searching metadata generated by the SQL generator module, and a packet generator module for converting the SQL generated by the SQL generator module into a packet, A duplication module for duplicating the database by executing SQL applied to the operation server in the duplication server in the same manner as the duplication server; and a replication module for transferring the packet received from the client side to the server side packet transmission / reception module and, if the corresponding packet is INSERT or UPDATE SQL, Compared with the replica If the metadata is required to be copied after receiving the metadata, the server receives the SQL for metadata inquiry from the packet generator module and transfers the received SQL to the server side packet transmission / reception module. When the metadata inquiry response packet is received from the server side packet transmission / And a packet control module for extracting the metadata information and providing the SQL to the replication module so that the replication is performed correctly.

그리고 본 발명의 다른 실시예는 소켓 통신의 인젝션을 통해 데이터베이스 내의 정보를 수집하는 방법을 개시한다.Another embodiment of the present invention discloses a method for collecting information in a database via injection of a socket communication.

개시된 방법은 데이터베이스 운영서버로부터 DB 로그인 완료 패킷이 수신되면, 로그인 성공 여부를 확인하여 성공한 경우 클라이언트 정보 확인 단계와, 로그인 정보가 암호화되어 있는지 확인하여, 로그인 정보가 암호화되어 있으면, 연결된 세션을 통해 로그인 정보를 수집하기 위하여 세션 정보조회 SQL을 생성하는 단계와, 생성된 조회 SQL을 실행 패킷으로 변환하고 연결된 세션을 통해 데이터베이스로 전송하는 단계와, 송신 결과를 데이터베이스에서 수신하고, 응답 패킷을 분석한 후 필요한 정보를 분리하는 단계와, 획득된 정보를 바탕으로 로그인 정보 권한을 확인한 후 접속을 허용할 것인지 아닌지를 판단하여 로그인을 차단할 경우에는 DB접속 실패 응답을 생성한 후 클라이언트측으로 전송하고, 로그인을 허용할 경우에는 DB 접속 성공 응답을 클라이언트로 전송하는 단계를 포함한다.In the disclosed method, if a DB log-in completed packet is received from a database operation server, it is checked whether the login is successful or not, and if it succeeds, a step of checking the client information, a step of checking whether the login information is encrypted, Generating session information inquiry SQL to collect information, converting the generated inquiry SQL into an execution packet and transmitting the converted query packet to a database through a connected session, receiving the transmission result in the database, analyzing the response packet A step of separating necessary information, and a step of checking the right of the login information based on the acquired information, and judging whether or not to allow the connection, if the login is blocked, a DB connection failure response is generated and transmitted to the client side, The DB connection success response is To the client.

개시된 다른 방법은 INSERT, UPDATE SQL이면, 데이터베이스에 송신하여 클라이언트에서 수신한 SQL을 데이터베이스에 실행하고, 해당 테이블이 복제 대상인지를 확인하는 단계와, 복제대상이면, 메타데이터 확인이 필요한지를 판단하여 메타데이터 확인이 필요할 경우에는 메타데이터 조회 SQL을 생성하는 단계와, 메타데이터 조회 패킷을 송신하고, 메타데이터 조회결과를 수신하는 단계와, Function, procedure 실행 결과값이 필요한지를 판단하여 필요하면 다시 데이터 조회 SQL을 생성하고, 데이터조회 패킷을 송신한 후 데이터 조회 결과를 수신하는 단계와, 조회 데이터를 이용한 SQL 변환을 수행하고, 복제 모듈로 SQL을 전달하여 복제가 정확하게 이루어지게 하는 단계를 포함한다.Another method disclosed in the present invention is to send SQL data to a database to execute a SQL operation on a database and to check whether the table is a replication target. Generating metadata inquiry SQL when data confirmation is required; transmitting a metadata inquiry packet and receiving a metadata inquiry result; judging whether a result value of a function or procedure is necessary; Generating SQL, receiving a data inquiry result after transmitting the data inquiry packet, performing SQL conversion using the inquiry data, and transmitting SQL to the replica module to ensure that replication is performed correctly.

본 발명의 실시예에 따르면, 클라이언트와 운영 서버 사이에 생성된 동일한 세션을 이용하여 소켓 인젝션을 통해 운영 서버의 데이터베이스에 있는 로그인 정보나 복제에 필요한 세부적인 정보(메타데이터 등)를 획득하여 로그인 정보가 암호화된 경우에도 접근 제어를 실시할 수 있고, 복제를 정확하게 처리할 수 있다. 즉, 본 발명의 실시예에 따르면 소켓 인젝션을 통해 암호화된 로그인 정보를 취득하여 로그인 권한을 통제할 수 있고, 데이터 복제를 위한 매타데이터 정보를 취득하여 정확한 복제를 가능하게 한다.According to the embodiment of the present invention, login information in the database of the operation server or detailed information (metadata or the like) necessary for replication is acquired through socket injection using the same session created between the client and the operation server, Access control can be performed even when the encryption is encrypted, and the copy can be correctly processed. That is, according to the embodiment of the present invention, it is possible to acquire the login information encrypted through the socket injection, to control the login authority, and to acquire the metadata information for data replication to enable accurate replication.

또한 본 발명의 실시예에 따르면, 다양한 환경의 클라이언트에 직접적으로 영향을 주지 않고, 실제 서비스 중인 데이터베이스 서버에도 영향을 최소화하면서 효율적으로 사용자의 데이터베이스에 로그인하거나 사용되는 테이블 및 SQL을 처리할 수 있다.In addition, according to the embodiment of the present invention, it is possible to effectively log into the user's database or process the table and SQL used while minimizing the influence on the actual serving database server without directly affecting clients in various environments.

도 1은 본 발명의 실시예에 따른 소켓 인젝션 개념을 설명하기 위한 도면,
도 2는 본 발명의 제 1 실시예에 따른 구성 블럭도,
도 3은 본 발명의 제 1 실시예에 따른 로그인 통제 절차를 도시한 순서도,
도 4는 본 발명의 제 1 실시예에 따른 권한 통제 절차를 도시한 순서도,
도 5는 본 발명의 제 2 실시예에 따른 구성 블럭도,
도 6은 본 발명의 제 2 실시예에 따른 복제를 위한 메타데이터 획득 절차를 도시한 순서도이다.
1 is a view for explaining a socket injection concept according to an embodiment of the present invention;
2 is a block diagram according to the first embodiment of the present invention,
3 is a flowchart showing a login control procedure according to the first embodiment of the present invention;
FIG. 4 is a flowchart illustrating a rights control procedure according to the first embodiment of the present invention. FIG.
5 is a block diagram according to a second embodiment of the present invention,
6 is a flowchart illustrating a metadata acquisition procedure for duplication according to the second embodiment of the present invention.

본 발명과 본 발명의 실시에 의해 달성되는 기술적 과제는 다음에서 설명하는 본 발명의 바람직한 실시예들에 의하여 보다 명확해질 것이다. 다음의 실시예들은 단지 본 발명을 설명하기 위하여 예시된 것에 불과하며, 본 발명의 범위를 제한하기 위한 것은 아니다. BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features, and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings. The following examples are merely illustrative of the present invention and are not intended to limit the scope of the present invention.

도 1은 본 발명의 실시예에 따른 소켓 인젝션 개념을 설명하기 위한 도면으로서, 클라이언트(10)와 데이터베이스 운영 서버(20) 사이에 데이터베이스의 정보를 획득하기 위한 프록시 서버(PX)가 연결된 구성이 도시되어 있다.FIG. 1 is a view for explaining a socket injection concept according to an embodiment of the present invention. A configuration in which a proxy server PX for acquiring information of a database is connected between a client 10 and a database operation server 20 is shown in FIG. .

도 1을 참조하면, 클라이언트(10)가 데이터베이스 운영 서버(20; 이하, 간단히 '운영 서버'라 한다)에 접속하기 위해서는 DB 요청 정보를 프록시 서버(PX)를 거쳐 운영 서버(20)로 입력한다.1, in order for a client 10 to access a database operation server 20 (hereinafter simply referred to as an 'operation server'), DB request information is input to an operation server 20 via a proxy server PX .

운영 서버(20)는 클라이언트(10)와의 접속을 위한 세션을 생성하거나 이미 생성된 세션을 통해 접수한 DB 요청에 대응하여 적당한 DB 응답을 생성한 후 클라이언트(10)로 전송할 DB 응답을 프록시 서버(PX)로 전송한다. 프록시 서버(PX)는 운영 서버(20)로부터 DB 응답이 접수될 경우 이를 클라이언트(10)로 바로 전달하지 않고, 프록시 서버(PX)가 클라이언트(10)와 운영 서버(20) 사이의 동일한 세션을 이용하여 운영 서버(20)에 필요한 정보를 요청한다. 즉, DB 응답 패킷에서 획득한 세션정보(IP, 포트, 프로토콜, O/S 정보 등)를 이용하여 필요한 정보를 얻기 위한 패킷을 생성하여 클라이언트의 DB 요청처럼 운영 서버(20)에 전송(이를 '소켓 인젝션'이라 한다)하여 필요한 데이터베이스 내부 정보를 요청한다.The operation server 20 creates a session for connection with the client 10 or generates an appropriate DB response in response to the received DB request through the already created session and transmits a DB response to be transmitted to the client 10 to the proxy server PX). The proxy server PX does not directly forward the DB response to the client 10 when the DB response is received from the operation server 20 and the proxy server PX transmits the same session between the client 10 and the operation server 20 And requests the operating server 20 for necessary information. That is, a packet for obtaining necessary information is generated by using the session information (IP, port, protocol, O / S information, etc.) obtained in the DB response packet and transmitted to the operation server 20 as a DB request of the client Socket injection ') to request the internal information of the necessary database.

이에 따라 운영 서버(20)는 프록시 서버(PX)로부터 요청된 데이터베이스 정보를 전송하고, 프록시 서버(PX)는 수신된 데이터베이스 정보를 분석하여 적절한 조치를 취한 후 클라이언트측으로 운영 서버(20)의 DB 응답을 전달한다.Accordingly, the operation server 20 transmits the requested database information from the proxy server PX, the proxy server PX analyzes the received database information, takes appropriate measures, and transmits the DB response of the operation server 20 to the client .

이와 같이 본 발명의 실시예에서 소켓 인젝션은 도 1과 같이 클라이언트(10)와 운영 서버(20) 사이에 프록시 서버(PX)가 위치하면서 클라이언트(10)와 운영 서버(20) 사이에 설정된 세션을 이용하여 프록시 서버(PX)가 클라이언트의 소켓을 인젝션하여 필요한 정보를 운영 서버(20)의 데이터베이스로부터 얻어내는 것이다. 이와 같은 소켓 인젝션을 이용하면 클라이언트가 암호화된 로그인 정보를 사용할 경우에도 데이터베이스에 소켓 인젝션을 통해 필요한 로그인 정보를 얻어 접근제어를 수행할 수 있고, 데이터 복제시에는 메타데이터 등을 요청하여 복제에 필요한 정보를 얻을 수 있다. 이하에서 설명하는 제 1 실시예는 본 발명을 접근 제어 솔루션에 적용한 예이고, 제 2 실시예는 데이터 복제 솔루션에 적용한 예이다.As described above, the socket injection according to the embodiment of the present invention is a method in which the proxy server PX is located between the client 10 and the operation server 20 and the session established between the client 10 and the operation server 20 The proxy server PX injects the socket of the client and obtains necessary information from the database of the operation server 20. [ With this socket injection, even if the client uses the encrypted login information, it can perform access control by obtaining the login information necessary through the socket injection to the database. When data replication is performed, Can be obtained. The first embodiment described below is an example in which the present invention is applied to an access control solution, and the second embodiment is an example applied to a data replication solution.

도 2는 본 발명의 제 1 실시예에 따른 구성 블럭도이고, 도 3은 본 발명의 제 1 실시예에 따른 로그인 통제 절차를 도시한 순서도이며, 도 4는 본 발명의 제 1 실시예에 따른 권한 통제 절차를 도시한 순서도이다.3 is a flowchart illustrating a login control procedure according to the first embodiment of the present invention. FIG. 4 is a flowchart illustrating a login control process according to the first embodiment of the present invention. A flowchart showing the authority control procedure.

본 발명의 제 1 실시예는 도 2에 도시된 바와 같이, 클라이언트(10)와 운영서버(20) 사이에 접근 제어 솔루션이 탑재된 통제 프록시 서버(100)가 연결되어 있다. 접근 제어 솔루션이 탑재된 통제 프록시 서버(100)는 클라이언트(10)가 운영 서버(20)에 로그인시 로그인 정보를 분석하여 접근을 통제하는 데, 본 발명의 실시예에 따르면 클라이언트(10)로부터 수신된 로그인 정보에 근거하지 않고 소켓 인젝션을 통해 운영 서버(20)로부터 획득한 로그인 정보를 이용하여 접근 제어를 실시할 수 있다. 따라서 제 1 실시예에 따르면, 로그인 정보가 암호화되어 전송되더라도 운영 서버(20)로부터 획득된 정보를 이용하여 접근을 통제할 수 있게 된다.As shown in FIG. 2, the first embodiment of the present invention is connected to a control proxy server 100 in which an access control solution is installed between a client 10 and an operation server 20. The control proxy server 100 in which the access control solution is installed controls the access by analyzing the login information when the client 10 logs in to the operation server 20. According to the embodiment of the present invention, The access control can be performed using the login information acquired from the operation server 20 through socket injection based on the login information. Therefore, according to the first embodiment, access can be controlled by using the information obtained from the operation server 20 even if login information is encrypted and transmitted.

도 2를 참조하면, 접근 제어를 위한 통제 프록시 서버(100)는 클라이언트측 패킷 송수신 모듈(110), 프로토콜 분석 모듈(120), 패킷 콘트롤 모듈(130), 서버측 패킷 송수신모듈(140), 패킷 제너레이터(150), 정보확인 SQL 제너레이터(160), 권한 체크 모듈(170), 권한정보(182)와 세션정보(184)가 저장된 메모리(180)를 포함하고 있다.2, the control proxy server 100 for access control includes a client side packet transmission / reception module 110, a protocol analysis module 120, a packet control module 130, a server side packet transmission / reception module 140, Generator 150, an information verification SQL generator 160, an authority check module 170, authorization information 182 and session information 184.

클라이언트측 패킷 송수신 모듈(110)은 클라이언트측과 패킷을 송수신하고, 프로토콜 분석 모듈(120)은 클라이언트측 패킷 송수신 모듈(110)을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하며, 서버측 패킷 송수신 모듈(140)은 운영 서버(20)의 데이터베이스와 패킷을 송수신한다.The client side packet transmission / reception module 110 transmits / receives a packet to / from the client side, and the protocol analysis module 120 analyzes the packet received through the client side packet transmission / reception module 110 to check whether or not the protocol is controlled, The packet transmission / reception module 140 transmits / receives a packet to / from the database of the operation server 20.

정보확인 SQL 제너레이터 모듈(160)은 메타데이터나 데이터 조회를 위한 SQL을 생성하고, 패킷 제너레이터 모듈(150)은 SQL 제너레이터(160)에서 생성된 데이터 조회를 위한 SQL을 패킷으로 변환하며, 권한 체크 모듈(170)은 로그인 및 테이블, 컬럼, 스키마, 데이터베이스 등의 오브젝트에 대한 권한을 메모리(180)에 저장된 권한정보와 비교하여 체크한다.The information generator 150 generates SQL for metadata or data inquiry, and the packet generator module 150 converts the SQL for data inquiry generated by the SQL generator 160 into a packet, (170) compares the login and the rights for objects such as table, column, schema, database, etc. with the authority information stored in the memory (180).

그리고 패킷 콘트롤 모듈(130)은 클라이언트측으로부터 수신된 패킷에 포함된 SQL의 권한을 체크하여 서버측 패킷 송수신 모듈(140)로 전달하고, 서버측 패킷 송수신 모듈(140)로부터 로그인 완료 패킷이 수신되면, 패킷 제너레이터 모듈(150)로부터 데이터 조회를 위한 SQL 패킷을 전달받아 서버측 패킷 송수신모듈(140)로 전달한다. 또한, 서버측 패킷 송수신모듈(140)로부터 데이터 조회 응답 패킷이 수신되면 해당 정보를 추출한 후 권한체크 모듈(170)에 제공하여 권한을 체크하게 하고, 권한 체크 결과에 따라 서버측으로부터 수신된 응답 패킷을 클라이언트측 패킷 송수신 모듈(110)로 전달한다. 메모리(180)에는 권한정보(182)와 세션정보(184)가 저장되어 있다.Then, the packet control module 130 checks the authority of SQL included in the packet received from the client side and transfers it to the server side packet transmission / reception module 140. When the login completion packet is received from the server side packet transmission / reception module 140 Receives the SQL packet for data inquiry from the packet generator module 150, and transfers the received SQL packet to the server side packet transmission / reception module 140. When the data inquiry response packet is received from the server-side packet transmission / reception module 140, the information is extracted and provided to the authority check module 170 to check the authority, and the response packet received from the server side To the client-side packet transmission / reception module 110. The memory 180 stores privilege information 182 and session information 184.

이와 같이 구성되는 통제 프록시 서버(100)는 도 3에 도시된 바와 같이, 데이터베이스 운영 서버(20)로부터 받은 패킷을 분석하여 DB 로그인 완료 패킷이 수신되면, 로그인 성공 여부를 확인하여 성공한 경우 클라이언트 정보 확인 단계에서 접속된 세션에서 클라이언트의 IP, OS정보, 로그인 아이디 등을 수집한다(S101~S103).As shown in FIG. 3, the control proxy server 100 configured as described above analyzes the packet received from the database operation server 20, and when the DB login completion packet is received, The OS, the login ID, and the like of the client in the session connected at step S101 to S103.

이어 로그인 정보가 암호화되어 있는지 확인하여, 로그인 정보가 암호화되어 있으면, 클라이언트 정보를 취득할 수 없으므로 연결된 세션을 통해 로그인 정보를 수집하기 위하여 세션 정보 조회 SQL을 생성한다(S104,S105).If the login information is encrypted, the client information can not be acquired. Therefore, the session information inquiry SQL is generated to collect the login information through the connected session (S104, S105).

그리고 생성된 조회 SQL을 실행 패킷으로 변환하고, 연결된 세션을 통해 운영 서버(20)의 데이터베이스로 전송한다(S106). 이에 따라 운영 서버의 데이터베이스는 SQL을 실행하여 응답 패킷을 생성한 후 통제 프록시 서버(100)로 전송한다(S106).Then, the generated inquiry SQL is converted into an execution packet and transmitted to the database of the operation server 20 through the connected session (S106). Accordingly, the database of the operation server executes SQL to generate a response packet and transmits the response packet to the control proxy server 100 (S106).

통제 프록시 서버(100)는 응답 패킷을 운영 서버의 데이터베이스로부터 수신하고, 수신된 응답 패킷을 분석한 후 필요한 정보를 분리한다(S107).The control proxy server 100 receives the response packet from the database of the operation server, analyzes the received response packet, and separates necessary information (S107).

이어 획득된 정보를 바탕으로 로그인 정보를 메모리의 권한정보(182)와 비교하여 권한을 확인한 후 접속을 허용할 것인지 아닌지를 판단한다(S108,S109).Then, based on the acquired information, the login information is compared with the privilege information 182 of the memory to confirm the authority, and then it is determined whether to allow the connection (S108, S109).

만일 로그인 정보가 제한된 IP 혹은 아이디 등이어서 로그인을 차단할 경우에는 DB접속 실패 응답을 생성한 후 클라이언트측으로 전송하고 세션을 종료한다(S111,S112). 만일 로그인 가능한 권한이어서 로그인을 허용할 경우에는 DB 접속 성공 응답을 클라이언트(10)로 전송한다(S110). 그리고 단계 S102에서 로그인이 실패한 경우 데이터베이스에서 수신받은 로그인 결과를 클라이언트측으로 전송하고 세션을 종료한다.If the login information is limited IP or ID or the like, and the login is blocked, the DB connection failure response is generated and transmitted to the client side and the session is terminated (S111, S112). If login is permitted because the user is a login authority, the DB connection success response is transmitted to the client 10 (S110). If the login fails in step S102, the login result received from the database is transmitted to the client and the session is terminated.

한편, 권한 통제 절차의 경우에는 도 4에 도시된 바와 같이, 통제 프록시 서버(100)가 DML, DDL, DCL SQL인지를 판단하여 DML의 SELECT, INSERT, UPDATE, DELETE에 대한 권한, DDL의 경우는 CREATE, ALTER, DROP, RENAME, TRUNCATE에 대한 권한, DCL은 GRANT, REVOKE 등의 권한 명령어에 대한 수행가능 권한 등이 설정된 권한정보(182)와 비교하여 권한을 확인한다(S201,S202). In the case of the authority control procedure, as shown in FIG. 4, the control proxy server 100 judges whether it is DML, DDL, or DCL SQL, and the authority for SELECT, INSERT, UPDATE, and DELETE of the DML, (S201, S202), the authority is verified by comparing the authority information 182 with the authority to CREATE, ALTER, DROP, RENAME, and TRUNCATE, and the authority to execute an authority command such as GRANT and REVOKE.

권한을 확인한 결과, 데이터 조회를 허용할 경우에는 클라이언트로부터 수신한 데이터 조회 SQL을 데이터베이스 운영 서버(20)로 전달하고, 데이터베이스에서 데이터 조회 결과를 수신하여 클라이언트에 패킷을 송신한다(S203~S206).As a result of checking the authority, if data inquiry is permitted, the data inquiry SQL received from the client is transmitted to the database operation server 20, the data inquiry result is received from the database, and the packet is transmitted to the client (S203 to S206).

만일 조회를 허용하지 않을 경우에는 오류 패킷을 생성하여 클라이언트 측으로 송신한다(S207).If the inquiry is not permitted, an error packet is generated and transmitted to the client (S207).

도 5는 본 발명의 제 2 실시예에 따른 구성 블럭도이고, 도 6은 본 발명의 제 2 실시예에 따른 복제를 위한 메타 데이터 획득 절차를 도시한 순서도이다. FIG. 5 is a block diagram of a second embodiment of the present invention, and FIG. 6 is a flowchart illustrating a metadata acquisition procedure for duplication according to the second embodiment of the present invention.

본 발명의 제 2 실시예는 도 5에 도시된 바와 같이, 클라이언트(10)와 운영서버(20) 및 복제 서버(30) 사이에 데이터베이스 복제 솔루션이 탑재된 복제 프록시 서버(200)가 연결되어 있다. 데이터베이스 복제 솔루션이 탑재된 복제 프록시 서버(200)는 운영 서버(20)의 데이터베이스를 복제 서버(30)의 데이터베이스로 복제하는데, 본 발명의 실시예에 따르면 소켓 인젝션을 통해 운영 서버(20)로부터 획득한 메타데이터를 이용하여 보다 정확하게 데이터 복제를 실시할 수 있다.5, a replication proxy server 200 having a database replication solution installed therebetween is connected between a client 10, an operation server 20 and a replication server 30 . The replication proxy server 200 on which the database replication solution is installed replicates the database of the operational server 20 to the database of the replication server 30 and acquires from the operational server 20 through socket injection according to the embodiment of the present invention. Data can be more accurately reproduced using one metadata.

도 5를 참조하면, 데이터 복제를 위한 복제 프록시 서버(200)는 클라이언트측 패킷 송수신 모듈(210), 프로토콜 분석모듈(220), 패킷 콘트롤 모듈(230), 서버측 패킷 송수신 모듈(240), 패킷 제너레이터(250), 정보확인 SQL 제너레이터(260), 복제모듈(270), 및 복제설정정보(282)와 세션정보(284)가 저장된 메모리(280)를 포함하고 있다.5, the replication proxy server 200 for data replication includes a client side packet transmission / reception module 210, a protocol analysis module 220, a packet control module 230, a server side packet transmission / reception module 240, Generator 250, an information verification SQL generator 260, a replication module 270 and a memory 280 in which replication setting information 282 and session information 284 are stored.

클라이언트측 패킷 송수신 모듈(210)은 클라이언트측과 패킷을 송수신하고,The client-side packet transmission / reception module 210 transmits and receives packets with the client side,

프로토콜 분석 모듈은 클라이언트측 패킷 송수신 모듈(210)을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하며, 서버측 패킷 송수신 모듈(240)은 운영 서버의 데이터베이스와 패킷을 송수신한다.The protocol analysis module analyzes the packet received through the client-side packet transmission / reception module 210 to check whether the packet is controlled on the protocol. The server-side packet transmission / reception module 240 transmits / receives the packet to / from the database of the operation server.

정보확인 SQL 제너레이터 모듈(260)은 메타데이터나 데이터 조회를 위한 SQL을 생성하고, 패킷 제너레이터 모듈(250)은 SQL 제너레이터 모듈(260)에서 생성된 메타데이터나 데이터 조회를 위한 SQL을 패킷으로 변환하며, 복제 모듈(270)은 운영 서버(20)에 적용된 SQL을 복제 서버(30)에서 동일하게 실행하여 데이터베이스를 복제한다.The information generator 260 generates SQL for metadata or data inquiry, and the packet generator module 250 converts the metadata generated by the SQL generator module 260 or SQL for data inquiry into packets , The replication module 270 replicates the database by executing the SQL applied to the operation server 20 in the replication server 30 in the same manner.

그리고 패킷 콘트롤 모듈(23))은 클라이언트측으로부터 수신된 패킷을 서버측 패킷 송수신 모듈(240)로 전달하면서 해당 패킷이 INSERT나 UPDATE SQL이면 복제설정정보(282)와 비교하여 복제대상인지를 확인한 후 복제 대상이고 메타데이터가 필요하면 패킷 제너레이터 모듈(250)로부터 메타데이터 조회를 위한 SQL 패킷을 전달받아 서버측 패킷 송수신모듈(240)로 전달한다. 또한, 서버측 패킷 송수신모듈(240)로부터 메타데이터 조회 응답 패킷이 수신되면 메타데이터 정보를 추출한 후 해당 SQL과 함께 복제모듈(270)에 제공하여 복제가 정확하게 이루어지게 한다. 메모리(280)에는 복제설정정보(282)와 세션정보(284)가 저장되어 있다.Then, the packet control module 23 transmits the packet received from the client side to the server side packet transmission / reception module 240, and if the packet is INSERT or UPDATE SQL, it is compared with the replication setting information 282 to check whether it is a replication target If it is a copy target and metadata is required, it receives an SQL packet for metadata inquiry from the packet generator module 250 and transfers it to the server side packet transmission / reception module 240. When the metadata inquiry response packet is received from the server-side packet transmission / reception module 240, the metadata information is extracted and provided to the replication module 270 together with the corresponding SQL so that replication is correctly performed. The memory 280 stores replication setting information 282 and session information 284. [

이와 같이 구성되는 복제 프록시 서버(200)는 도 6에 도시된 바와 같이, 클라이언트로부터 수신된 SQL이 'INSERT', 'UPDATE' SQL이면, 운영 서버(20)로 전송하여 데이터베이스에서 실행할 수 있게 한다(S301,S302).6, if the SQL received from the client is 'INSERT' or 'UPDATE', the replication proxy server 200 transmits the data to the operation server 20 so that the data can be executed in the database S301, S302).

이어 해당 테이블의 정보를 복제설정정보(282)와 비교하여 해당 테이블이 복제 대상인지를 확인한다(S303).Then, the information of the corresponding table is compared with the copy setting information 282 to check whether the corresponding table is a copy target (S303).

복제 대상이면, 메타데이터 확인이 필요한지를 판단하여 메타데이터 확인이 필요할 경우에는 메타데이터 조회 SQL을 생성한다(S304~S306).If it is a copy target, it is determined whether metadata confirmation is necessary. If metadata confirmation is required, metadata inquiry SQL is generated (S304 to S306).

이어 메타데이터 조회 패킷을 운영 서버(20)로 송신하고, 운영 서버(20)로부터 메타데이터 조회결과를 수신한다(S307,S308).Then, the metadata inquiry packet is transmitted to the operation server 20, and the metadata inquiry result is received from the operation server 20 (S307, S308).

그리고 Function, procedure 실행 결과 값이 필요한지를 판단하여 필요하면 다시 데이터 조회 SQL을 생성하고, 데이터 조회 패킷을 운영 서버(20)로 송신한 후 데이터 조회 결과를 수신한다(S309~S312). If it is necessary, a data inquiry SQL is generated again, and a data inquiry packet is transmitted to the operation server 20 and then a data inquiry result is received (S309 to S312).

이후 조회 데이터를 이용한 SQL 변환을 수행하고, 복제 모듈(270)로 SQL을 전달하여 복제가 정확하게 이루어지게 한다(S313,S314).Thereafter, SQL conversion using the inquiry data is performed, and SQL is transferred to the replication module 270 so that replication is performed correctly (S313, S314).

이상에서 본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.

10: 클라이언트 20: 운영서버
30: 복제서버 PX: 프록시 서버
100: 통제 프록시 서버
110,210: 클라이언트측 패킷 송수신 모듈
120,220: 프로토콜 분석 모듈 130,230: 패킷 콘트롤 모듈
140,240: 서버측 패킷 송수신 모듈 150,250: 패킷 제너레이터
160,260: 정보확인 SQL 제너레이터 170: 권한 체크 모듈
180,280: 메모리 200: 복제 프록시 서버
270: 복제 모듈
10: client 20: operational server
30: Replication Server PX: Proxy Server
100: Controlled Proxy Server
110, 210: Client side packet transmission / reception module
120, 220: protocol analysis module 130,230: packet control module
140,240: a server-side packet transmission / reception module 150,250: a packet generator
160,260: Confirm information SQL generator 170: Authorization check module
180,280: Memory 200: Replication proxy server
270: Replication module

Claims (6)

삭제delete 클라이언트와, 데이터베이스 운영 서버와, 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 위치하면서 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 설정된 세션을 이용하여 소켓 인젝션을 통해 필요한 데이터베이스의 내부 정보를 운영 서버로부터 획득하는 프록시 서버를 포함하는 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 장치에 있어서,
상기 프록시 서버는
상기 클라이언트측과 패킷을 송수신하는 클라이언트측 패킷 송수신 모듈과,
상기 클라이언트측 패킷 송수신 모듈을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하는 프로토콜 분석 모듈과,
운영 서버의 데이터베이스와 패킷을 송수신하는 서버측 패킷 송수신 모듈과,
데이터 조회를 위한 SQL을 생성하는 정보확인 SQL 제너레이터 모듈과,
상기 SQL 제너레이터에서 생성된 데이터 조회를 위한 SQL을 패킷으로 변환하는 패킷 제너레이터 모듈과,
로그인이나 테이블과 같은 오브젝트에 대한 권한을 메모리에 저장된 권한정보와 비교하여 체크하는 권한 체크 모듈과,
상기 클라이언트측으로부터 수신된 패킷에 포함된 SQL의 권한을 체크하여 상기 서버측 패킷 송수신 모듈로 전달하고, 상기 서버측 패킷 송수신모듈로부터 로그인완료 패킷이 수신되면, 상기 패킷 제너레이터 모듈로부터 데이터 조회를 위한 SQL을 전달받아 상기 서버측 패킷 송수신모듈로 전달하며, 상기 서버측 패킷 송수신모듈로부터 데이터 조회 응답 패킷이 수신되면 해당 정보를 추출한 후 상기 권한체크 모듈에 제공하여 권한을 체크하게 하고, 권한 체크 결과에 따라 서버측으로부터 수신된 응답 패킷을 상기 클라이언트측 패킷 송수신 모듈로 전달하는 패킷 콘트롤 모듈을 포함하는 통제 프록시 서버인 것을 특징으로 하는 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 장치.
A proxy server for acquiring internal information of a database necessary for socket injection using a session established between the client and the database operation server and located between the client and the database operation server, 1. An apparatus for collecting information in a database via socket injection,
The proxy server
A client side packet transmission / reception module for transmitting / receiving a packet to / from the client side;
A protocol analysis module for analyzing a packet received through the client-side packet transmission / reception module and confirming whether the protocol is controlled;
A server side packet transmission / reception module for transmitting / receiving a packet to / from a database of the operation server,
Identify information to generate SQL for querying data The SQL generator module,
A packet generator module for converting the SQL generated by the SQL generator for data inquiry into a packet,
An authority check module for checking authority against an object such as a login or a table against authority information stored in a memory,
Receives the login completion packet from the server side packet transmission / reception module, and transmits the SQL for data inquiry from the packet generator module to the server side packet transmission / reception module, Receiving module receives the data inquiry response packet from the server-side packet transmission / reception module, extracts the corresponding information, and provides the information to the rights check module to check the rights, And a packet control module for delivering a response packet received from the server to the client-side packet transmission / reception module.
클라이언트와, 데이터베이스 운영 서버와, 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 위치하면서 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 설정된 세션을 이용하여 소켓 인젝션을 통해 필요한 데이터베이스의 내부 정보를 운영 서버로부터 획득하는 프록시 서버를 포함하는 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 장치에 있어서,
상기 프록시 서버는
상기 클라이언트측과 패킷을 송수신하는 클라이언트측 패킷 송수신 모듈과,
상기 클라이언트측 패킷 송수신 모듈을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하는 프로토콜 분석 모듈과,
운영 서버의 데이터베이스와 패킷을 송수신하는 서버측 패킷 송수신 모듈과,
메타데이터 조회를 위한 SQL을 생성하는 정보확인 SQL 제너레이터 모듈과,
상기 SQL 제너레이터 모듈에서 생성된 메타데이터 조회를 위한 SQL을 패킷으로 변환하는 패킷 제너레이터 모듈과,
운영 서버에 적용된 SQL을 복제 서버에서 동일하게 실행하여 데이터베이스를 복제하는 복제 모듈과,
상기 클라이언트측으로부터 수신된 패킷을 상기 서버측 패킷 송수신 모듈로 전달하면서 해당 패킷이 INSERT나 UPDATE SQL이면 복제설정정보와 비교하여 복제대상인지를 확인한 후 복제 대상이고 메타데이터가 필요하면 상기 패킷 제너레이터 모듈로부터 메타데이터 조회를 위한 SQL을 전달받아 상기 서버측 패킷 송수신모듈로 전달하고, 상기 서버측 패킷 송수신모듈로부터 메타데이터 조회 응답 패킷이 수신되면 메타데이터 정보를 추출한 후 해당 SQL과 함께 상기 복제모듈에 제공하여 복제가 정확하게 이루어지게 하는 패킷 콘트롤 모듈을 포함하는 복제 프록시 서버인 것을 특징으로 하는 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 장치.
A proxy server for acquiring internal information of a database necessary for socket injection using a session established between the client and the database operation server and located between the client and the database operation server, 1. An apparatus for collecting information in a database via socket injection,
The proxy server
A client side packet transmission / reception module for transmitting / receiving a packet to / from the client side;
A protocol analysis module for analyzing a packet received through the client-side packet transmission / reception module and confirming whether the protocol is controlled;
A server side packet transmission / reception module for transmitting / receiving a packet to / from a database of the operation server,
Identify information to generate SQL for metadata lookups The SQL generator module,
A packet generator module for converting the SQL for retrieving the metadata generated by the SQL generator module into a packet,
A replication module that replicates the database by executing the SQL applied to the production server on the replication server equally,
The packet received from the client side is transmitted to the server side packet transmission / reception module. If the packet is an INSERT or UPDATE SQL, the packet is compared with the replication setting information to check whether the packet is a replication target. Receiving the SQL for meta data retrieval and transferring the retrieved metadata to the server side packet transmission / reception module, and upon receiving the metadata inquiry response packet from the server side packet transmission / reception module, extracts the metadata information and provides the retrieved metadata together with the SQL to the replication module Wherein the replication proxy server is a replication proxy server including a packet control module for allowing replication to be accurately performed.
삭제delete 삭제delete 클라이언트가 데이터베이스 운영 서버에 접속하기 위해서는 DB 요청 정보를 프록시 서버를 거쳐 운영 서버로 입력하는 제 1 단계;
운영 서버가 클라이언트와의 접속을 위한 세션을 생성하거나 이미 생성된 세션을 통해 접수한 DB 요청에 대응하여 적당한 DB 응답을 생성한 후 클라이언트로 전송할 DB 응답을 프록시 서버로 전송하는 제 2 단계;
상기 프록시 서버가 운영 서버로부터 DB 응답이 접수될 경우, 클라이언트와 운영 서버 사이의 동일한 세션을 이용하여 운영 서버에 필요한 정보를 요청하는 제 3 단계; 및
운영 서버가 프록시 서버로부터 요청된 데이터베이스 정보를 전송하고, 프록시 서버는 수신된 데이터베이스 정보를 분석하여 소정의 조치를 취한 후 클라이언트 측으로 운영 서버의 DB 응답을 전달하는 제 4 단계를 포함하고,
상기 제 3 단계는
상기 클라이언트측으로부터 수신된 패킷을 상기 운영 서버로 전달하면서 해당 패킷이 INSERT나 UPDATE SQL이면 복제설정정보와 비교하여 복제대상인지를 확인한 후 복제 대상이고 메타데이터가 필요하면 메타데이터 조회를 위한 SQL을 운영 서버로 전달하고, 상기 운영 서버로부터 메타데이터 조회 응답 패킷이 수신되면 메타데이터 정보를 추출한 후 이 추출된 메타데이터를 참조하여 해당 SQL을 실행토록 하여 복제가 정확하게 이루어지게 하는 것을 특징으로 하는 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법.
A client inputting DB request information to an operation server via a proxy server to access a database operation server;
A second step of the operating server creating a session for connection with a client or generating a proper DB response in response to a DB request received through an already created session and transmitting a DB response to be transmitted to the client to the proxy server;
A third step of, when the proxy server receives a DB response from the operation server, requesting information necessary for the operation server using the same session between the client and the operation server; And
A fourth step of the operational server transmitting the requested database information from the proxy server, the proxy server analyzing the received database information, taking a predetermined action, and transmitting the DB response of the operational server to the client side,
In the third step,
If the packet is INSERT or UPDATE SQL, the packet received from the client side is transmitted to the operation server, and if it is an INSERT or UPDATE SQL, it is compared with the replication setting information to check whether it is a replication target. And when the meta data inquiry response packet is received from the operation server, extracting the meta data information and referring to the extracted meta data, the corresponding SQL is executed to reproduce the socket correctly. A method for collecting information in a database through a database.
KR1020180164444A 2018-12-18 2018-12-18 Apparatus for and method of acquiring inner information of database by socket injection KR101958933B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180164444A KR101958933B1 (en) 2018-12-18 2018-12-18 Apparatus for and method of acquiring inner information of database by socket injection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180164444A KR101958933B1 (en) 2018-12-18 2018-12-18 Apparatus for and method of acquiring inner information of database by socket injection

Publications (1)

Publication Number Publication Date
KR101958933B1 true KR101958933B1 (en) 2019-03-18

Family

ID=65948874

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180164444A KR101958933B1 (en) 2018-12-18 2018-12-18 Apparatus for and method of acquiring inner information of database by socket injection

Country Status (1)

Country Link
KR (1) KR101958933B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060007732A (en) * 2004-07-21 2006-01-26 삼성전자주식회사 System for managing socket connection and method for checking of socket connection state
KR101039874B1 (en) * 2011-04-04 2011-06-09 (주)한국전산감리원 System for integration platform of information communication
KR20110138809A (en) * 2010-06-22 2011-12-28 주식회사 웨어밸리 Database security method using extending packet
KR20120121973A (en) * 2011-04-28 2012-11-07 주식회사 파수닷컴 Computing device having a function of DLL injection and method for DLL injection
KR20160005113A (en) * 2013-05-03 2016-01-13 사이트릭스 시스템스, 인크. Secured access to resources using a proxy

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060007732A (en) * 2004-07-21 2006-01-26 삼성전자주식회사 System for managing socket connection and method for checking of socket connection state
KR20110138809A (en) * 2010-06-22 2011-12-28 주식회사 웨어밸리 Database security method using extending packet
KR101039874B1 (en) * 2011-04-04 2011-06-09 (주)한국전산감리원 System for integration platform of information communication
KR20120121973A (en) * 2011-04-28 2012-11-07 주식회사 파수닷컴 Computing device having a function of DLL injection and method for DLL injection
KR20160005113A (en) * 2013-05-03 2016-01-13 사이트릭스 시스템스, 인크. Secured access to resources using a proxy

Similar Documents

Publication Publication Date Title
WO2022126968A1 (en) Micro-service access method, apparatus and device, and storage medium
US7266702B2 (en) Method and system for managing security material and services in a distributed database system
US7356840B1 (en) Method and system for implementing security filters for reporting systems
WO2019105189A1 (en) Model training system and method, and storage medium
US7454421B2 (en) Database access control method, database access controller, agent processing server, database access control program, and medium recording the program
US7035854B2 (en) Content management system and methodology employing non-transferable access tokens to control data access
US8132239B2 (en) System and method for validating requests in an identity metasystem
US8959613B2 (en) System and method for managing access to a plurality of servers in an organization
US8051168B1 (en) Method and system for security and user account integration by reporting systems with remote repositories
KR101302135B1 (en) Method and apparetus for encoding/decoding partial of data
US8838959B2 (en) Method and apparatus for securely synchronizing password systems
US20140109179A1 (en) Multiple server access management
JP2010502109A (en) Method and apparatus for providing trusted single sign-on access to applications and Internet-based services
CN103095720B (en) A kind of method for managing security of cloud storage system of dialogue-based management server
US7917636B2 (en) System and method for detecting unused accounts in a distributed directory service
CN112511599B (en) Civil air defense data sharing system and method based on block chain
US7801967B1 (en) Method and system for implementing database connection mapping for reporting systems
JPH10232811A (en) Security management method for data base
US20090158047A1 (en) High performance secure caching in the mid-tier
US11784994B2 (en) Management device, management system, and non-transitory computer readable medium
US20040049677A1 (en) Authorization and security management system and method
WO2017124922A1 (en) Method and device for cross-domain system login verification
US9009799B2 (en) Secure access
KR101958933B1 (en) Apparatus for and method of acquiring inner information of database by socket injection
KR101736157B1 (en) Method and Apparatus for Federated Authentication

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant