[go: up one dir, main page]

KR101958933B1 - 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법 및 장치 - Google Patents

소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법 및 장치 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
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
KR1020180164444A
Other languages
English (en)
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/ko
Application granted granted Critical
Publication of KR101958933B1 publication Critical patent/KR101958933B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

본 발명은 소켓 통신의 인젝션을 통해 데이터베이스 내의 정보를 수집하는 방법 및 장치에 관한 것이다.
본 발명의 장치는 클라이언트와, 데이터베이스 운영 서버와, 클라이언트와 데이터베이스 운영 서버 사이에 위치하면서 클라이언트와 데이터베이스 운영 서버 사이에 설정된 세션을 이용하여 소켓 인젝션을 통해 필요한 데이터베이스의 내부 정보를 운영 서버로부터 획득하는 프록시 서버를 포함한다.
본 발명의 실시예에 따르면, 클라이언트와 운영 서버 사이에 생성된 동일한 세션을 이용하여 소켓 인젝션을 통해 운영 서버의 데이터베이스에 있는 로그인 정보나 복제에 필요한 세부적인 정보(메타데이터 등)를 획득하여 로그인 정보가 암호화된 경우에도 접근 제어를 실시할 수 있고, 복제를 정확하게 처리할 수 있다. 즉, 본 발명의 실시예에 따르면 소켓 인젝션을 통해 암호화된 로그인 정보를 취득하여 로그인 권한을 통제할 수 있고, 데이터 복제를 위한 매타데이터 정보를 취득하여 정확한 복제를 가능하게 한다.

Description

소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법 및 장치{APPARATUS FOR AND METHOD OF ACQUIRING INNER INFORMATION OF DATABASE BY SOCKET INJECTION}
본 발명은 데이터베이스 내의 정보를 수집하는 기술에 관한 것으로, 더욱 상세하게는 소켓 통신의 인젝션을 통해 데이터베이스 내의 정보를 수집하는 방법 및 장치에 관한 것이다.
일반적으로, 각종 데이터를 저장하고 있는 데이터베이스 운영 서버는 데이터베이스 관리시스템(DBMS: Database management system)에 의해 관리되는데, 데이터베이스 관리시스템에서는 일반적인 계정/패스워드 방식을 통한 접근 제어 방법을 제공한다. 이러한 계정/패스워드를 통한 접근 제어 및 권한 관리는 복잡하고 다양한 조건으로 제어하기가 어려우며, 다수의 데이터베이스를 일괄적으로 관리하기도 어렵다. 또한 데이터베이스 관리 시스템의 종류에 따라서 권한 제어의 방법과 범위가 달라 권한 관리는 더욱 힘들어지게 된다. 이러한 문제를 해결하고자 도입하는 것이 바로 데이터베이스 보안시스템이다.
통상 데이터베이스 보안 시스템은 스니핑 방식을 통한 사후 통제 방식과 프록시 방식을 통한 사전 통제 방식으로 나뉘는데, 프록시 방식의 보안 시스템에서는 사용자가 데이터베이스에 접속하고자 하는 경우 반드시 보안 시스템(즉, 프록시 서버)을 경유하여야 한다.
본 출원인의 선등록 특허인 등록번호 제10-1140615호는 데이터베이스 보안 시스템을 경유하여 데이터베이스에 접근할 때, 세션 패킷의 분석을 통해서는 획득이 어려운 부가적인 정보를 확장 패킷을 통하여 보안 시스템에 전달하여 데이터베이스로의 접근을 제어하는 데이터베이스 보안 관리 기술을 개시하고 있다.
한편, 조직의 중요한 데이터들은 데이터베이스 관리 시스템(DBMS)에 의해 관리되며 인증과정을 거쳐 로그인한 후에 SQL이라는 질의어를 통해서만 해당 정보에 정상적으로 접근할 수 있다. 그리고 최근에는 DBMS 자체가 강력한 보안기능을 제공하기 때문에 해킹보다는 DB에 접근 권한을 가진 사용자가 권한을 남용하여 정보를 유출하거나 변조하는 것이 가장 큰 위협이 되고 있다. 이러한 위협에 대응하기 위해 조직은 보안제품으로서 DB 접근제어 솔루션을 사용한다. 즉, DB 접근제어 솔루션은 사용자가 DBMS에 로그인하거나 SQL을 수행하려고 할 때 미리 정의된 보안규칙에 따라 권한 여부를 판단하여 통제하는 솔루션이다. 이러한 DB 접근제어 솔루션은 일반적으로 SQL을 통제할 뿐만 아니라 로그인이 필요한 SQL에 대하여 SQL 수행과 관련된 정보를 저장하는 기능을 제공한다.
그리고 앞에서 설명한 바와 같이 접근제어 솔루션 구축 방식 중 하나인 프록시 방식은 별도의 통제 프록시 서버를 설치한 후에 독립적인 IP 및 포트를 부여하고, DBMS에 로그인 시 해당 IP 및 포트로 로그인하도록 한다.
그런데 데이터베이스 접속시 암호화된 프로토콜을 사용하는 경우 로그인 아이디와 패스워드 등 로그인 정보가 암호화되어 전송되므로 클라이언트와 데이터베이스 사이에서 패킷 분석만으로는 접근제어를 위한 정보를 취득할 수 없다는 문제점이 있다.
이러한 문제점을 해결하기 위해 사용자의 로그인 제어시 로그인 완료 패킷을 데이터베이스로부터 받을 경우, 통제 프록시 서버가 로그인된 사용자의 권한을 확인하기 위하여 로그인 정보를 수집할 수 있어야 한다.
또한 프록시 방식에서 원본 데이터베이스에서 타겟 데이터베이스로 데이터 복제를 위해 패킷을 수집하고 분석하는 과정에서 데이터의 타입을 알아야 할 필요가 있다. 이를 위해서는 원본 데이터베이스에서 컬럼에 대한 메타 정보를 수집할 수 있는 기능이 필요하다. 예컨대, '2007-08-01'의 경우 텍스트형의 컬럼에 데이터를 적용하는 것인지 날짜(date) 타입의 컬럼에 데이터를 삽입(insert)하는 지에 따라 다른 포멧으로 복제 SQL을 변환할 필요가 있다.
본 발명은 상기와 같은 필요성을 충족시키기 위해 제안된 것으로, 본 발명의 목적은 소켓 통신의 인젝션을 통해 데이터베이스 내의 정보를 수집하는 방법 및 장치를 제공하는 것이다.
본 발명의 실시예는 소켓 통신의 인젝션을 통해 데이터베이스 내의 정보를 수집하는 장치를 개시한다.
개시된 장치는 클라이언트와, 데이터베이스 운영 서버와, 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 위치하면서 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 설정된 세션을 이용하여 소켓 인젝션을 통해 필요한 데이터베이스의 내부 정보를 운영 서버로부터 획득하는 프록시 서버를 포함한다.
상기 프록시 서버는 상기 클라이언트측과 패킷을 송수신하는 클라이언트측 패킷 송수신 모듈과, 상기 클라이언트측 패킷 송수신 모듈을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하는 프로토콜 분석 모듈과, 운영 서버의 데이터베이스와 패킷을 송수신하는 서버측 패킷 송수신 모듈과, 데이터 조회를 위한 SQL을 생성하는 정보확인 SQL 제너레이터 모듈과, 상기 SQL 제너레이터에서 생성된 데이터 조회를 위한 SQL을 패킷으로 변환하는 패킷 제너레이터 모듈과, 로그인이나 테이블과 같은 오브젝트에 대한 권한을 메모리에 저장된 권한정보와 비교하여 체크하는 권한 체크 모듈과, 상기 클라이언트측으로부터 수신된 패킷에 포함된 SQL의 권한을 체크하여 상기 서버측 패킷 송수신 모듈로 전달하고, 상기 서버측 패킷 송수신모듈로부터 로그인완료 패킷이 수신되면, 상기 패킷 제너레이터 모듈로부터 데이터 조회를 위한 SQL을 전달받아 상기 서버측 패킷 송수신모듈로 전달하며, 상기 서버측 패킷 송수신모듈로부터 데이터 조회 응답 패킷이 수신되면 해당 정보를 추출한 후 상기 권한체크 모듈에 제공하여 권한을 체크하게 하고, 권한 체크 결과에 따라 서버측으로부터 수신된 응답 패킷을 상기 클라이언트측 패킷 송수신 모듈로 전달하는 패킷 콘트롤 모듈을 포함하는 통제 프록시 서버일 수 있다.
또한 상기 프록시 서버는 상기 클라이언트측과 패킷을 송수신하는 클라이언트측 패킷 송수신 모듈과, 상기 클라이언트측 패킷 송수신 모듈을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하는 프로토콜 분석 모듈과, 운영 서버의 데이터베이스와 패킷을 송수신하는 서버측 패킷 송수신 모듈과, 메타데이터 조회를 위한 SQL을 생성하는 정보확인 SQL 제너레이터 모듈과, 상기 SQL 제너레이터 모듈에서 생성된 메타데이터 조회를 위한 SQL을 패킷으로 변환하는 패킷 제너레이터 모듈과, 운영 서버에 적용된 SQL을 복제 서버에서 동일하게 실행하여 데이터베이스를 복제하는 복제 모듈과, 상기 클라이언트측으로부터 수신된 패킷을 상기 서버측 패킷 송수신 모듈로 전달하면서 해당 패킷이 INSERT나 UPDATE SQL이면 복제설정정보와 비교하여 복제대상인지를 확인한 후 복제 대상이고 메타데이터가 필요하면 상기 패킷 제너레이터 모듈로부터 메타데이터 조회를 위한 SQL을 전달받아 상기 서버측 패킷 송수신모듈로 전달하고, 상기 서버측 패킷 송수신모듈로부터 메타데이터 조회 응답 패킷이 수신되면 메타데이터 정보를 추출한 후 해당 SQL과 함께 상기 복제모듈에 제공하여 복제가 정확하게 이루어지게 하는 패킷 콘트롤 모듈을 포함하는 복제 프록시 서버일 수도 있다.
그리고 본 발명의 다른 실시예는 소켓 통신의 인젝션을 통해 데이터베이스 내의 정보를 수집하는 방법을 개시한다.
개시된 방법은 데이터베이스 운영서버로부터 DB 로그인 완료 패킷이 수신되면, 로그인 성공 여부를 확인하여 성공한 경우 클라이언트 정보 확인 단계와, 로그인 정보가 암호화되어 있는지 확인하여, 로그인 정보가 암호화되어 있으면, 연결된 세션을 통해 로그인 정보를 수집하기 위하여 세션 정보조회 SQL을 생성하는 단계와, 생성된 조회 SQL을 실행 패킷으로 변환하고 연결된 세션을 통해 데이터베이스로 전송하는 단계와, 송신 결과를 데이터베이스에서 수신하고, 응답 패킷을 분석한 후 필요한 정보를 분리하는 단계와, 획득된 정보를 바탕으로 로그인 정보 권한을 확인한 후 접속을 허용할 것인지 아닌지를 판단하여 로그인을 차단할 경우에는 DB접속 실패 응답을 생성한 후 클라이언트측으로 전송하고, 로그인을 허용할 경우에는 DB 접속 성공 응답을 클라이언트로 전송하는 단계를 포함한다.
개시된 다른 방법은 INSERT, UPDATE SQL이면, 데이터베이스에 송신하여 클라이언트에서 수신한 SQL을 데이터베이스에 실행하고, 해당 테이블이 복제 대상인지를 확인하는 단계와, 복제대상이면, 메타데이터 확인이 필요한지를 판단하여 메타데이터 확인이 필요할 경우에는 메타데이터 조회 SQL을 생성하는 단계와, 메타데이터 조회 패킷을 송신하고, 메타데이터 조회결과를 수신하는 단계와, Function, procedure 실행 결과값이 필요한지를 판단하여 필요하면 다시 데이터 조회 SQL을 생성하고, 데이터조회 패킷을 송신한 후 데이터 조회 결과를 수신하는 단계와, 조회 데이터를 이용한 SQL 변환을 수행하고, 복제 모듈로 SQL을 전달하여 복제가 정확하게 이루어지게 하는 단계를 포함한다.
본 발명의 실시예에 따르면, 클라이언트와 운영 서버 사이에 생성된 동일한 세션을 이용하여 소켓 인젝션을 통해 운영 서버의 데이터베이스에 있는 로그인 정보나 복제에 필요한 세부적인 정보(메타데이터 등)를 획득하여 로그인 정보가 암호화된 경우에도 접근 제어를 실시할 수 있고, 복제를 정확하게 처리할 수 있다. 즉, 본 발명의 실시예에 따르면 소켓 인젝션을 통해 암호화된 로그인 정보를 취득하여 로그인 권한을 통제할 수 있고, 데이터 복제를 위한 매타데이터 정보를 취득하여 정확한 복제를 가능하게 한다.
또한 본 발명의 실시예에 따르면, 다양한 환경의 클라이언트에 직접적으로 영향을 주지 않고, 실제 서비스 중인 데이터베이스 서버에도 영향을 최소화하면서 효율적으로 사용자의 데이터베이스에 로그인하거나 사용되는 테이블 및 SQL을 처리할 수 있다.
도 1은 본 발명의 실시예에 따른 소켓 인젝션 개념을 설명하기 위한 도면,
도 2는 본 발명의 제 1 실시예에 따른 구성 블럭도,
도 3은 본 발명의 제 1 실시예에 따른 로그인 통제 절차를 도시한 순서도,
도 4는 본 발명의 제 1 실시예에 따른 권한 통제 절차를 도시한 순서도,
도 5는 본 발명의 제 2 실시예에 따른 구성 블럭도,
도 6은 본 발명의 제 2 실시예에 따른 복제를 위한 메타데이터 획득 절차를 도시한 순서도이다.
본 발명과 본 발명의 실시에 의해 달성되는 기술적 과제는 다음에서 설명하는 본 발명의 바람직한 실시예들에 의하여 보다 명확해질 것이다. 다음의 실시예들은 단지 본 발명을 설명하기 위하여 예시된 것에 불과하며, 본 발명의 범위를 제한하기 위한 것은 아니다.
도 1은 본 발명의 실시예에 따른 소켓 인젝션 개념을 설명하기 위한 도면으로서, 클라이언트(10)와 데이터베이스 운영 서버(20) 사이에 데이터베이스의 정보를 획득하기 위한 프록시 서버(PX)가 연결된 구성이 도시되어 있다.
도 1을 참조하면, 클라이언트(10)가 데이터베이스 운영 서버(20; 이하, 간단히 '운영 서버'라 한다)에 접속하기 위해서는 DB 요청 정보를 프록시 서버(PX)를 거쳐 운영 서버(20)로 입력한다.
운영 서버(20)는 클라이언트(10)와의 접속을 위한 세션을 생성하거나 이미 생성된 세션을 통해 접수한 DB 요청에 대응하여 적당한 DB 응답을 생성한 후 클라이언트(10)로 전송할 DB 응답을 프록시 서버(PX)로 전송한다. 프록시 서버(PX)는 운영 서버(20)로부터 DB 응답이 접수될 경우 이를 클라이언트(10)로 바로 전달하지 않고, 프록시 서버(PX)가 클라이언트(10)와 운영 서버(20) 사이의 동일한 세션을 이용하여 운영 서버(20)에 필요한 정보를 요청한다. 즉, DB 응답 패킷에서 획득한 세션정보(IP, 포트, 프로토콜, O/S 정보 등)를 이용하여 필요한 정보를 얻기 위한 패킷을 생성하여 클라이언트의 DB 요청처럼 운영 서버(20)에 전송(이를 '소켓 인젝션'이라 한다)하여 필요한 데이터베이스 내부 정보를 요청한다.
이에 따라 운영 서버(20)는 프록시 서버(PX)로부터 요청된 데이터베이스 정보를 전송하고, 프록시 서버(PX)는 수신된 데이터베이스 정보를 분석하여 적절한 조치를 취한 후 클라이언트측으로 운영 서버(20)의 DB 응답을 전달한다.
이와 같이 본 발명의 실시예에서 소켓 인젝션은 도 1과 같이 클라이언트(10)와 운영 서버(20) 사이에 프록시 서버(PX)가 위치하면서 클라이언트(10)와 운영 서버(20) 사이에 설정된 세션을 이용하여 프록시 서버(PX)가 클라이언트의 소켓을 인젝션하여 필요한 정보를 운영 서버(20)의 데이터베이스로부터 얻어내는 것이다. 이와 같은 소켓 인젝션을 이용하면 클라이언트가 암호화된 로그인 정보를 사용할 경우에도 데이터베이스에 소켓 인젝션을 통해 필요한 로그인 정보를 얻어 접근제어를 수행할 수 있고, 데이터 복제시에는 메타데이터 등을 요청하여 복제에 필요한 정보를 얻을 수 있다. 이하에서 설명하는 제 1 실시예는 본 발명을 접근 제어 솔루션에 적용한 예이고, 제 2 실시예는 데이터 복제 솔루션에 적용한 예이다.
도 2는 본 발명의 제 1 실시예에 따른 구성 블럭도이고, 도 3은 본 발명의 제 1 실시예에 따른 로그인 통제 절차를 도시한 순서도이며, 도 4는 본 발명의 제 1 실시예에 따른 권한 통제 절차를 도시한 순서도이다.
본 발명의 제 1 실시예는 도 2에 도시된 바와 같이, 클라이언트(10)와 운영서버(20) 사이에 접근 제어 솔루션이 탑재된 통제 프록시 서버(100)가 연결되어 있다. 접근 제어 솔루션이 탑재된 통제 프록시 서버(100)는 클라이언트(10)가 운영 서버(20)에 로그인시 로그인 정보를 분석하여 접근을 통제하는 데, 본 발명의 실시예에 따르면 클라이언트(10)로부터 수신된 로그인 정보에 근거하지 않고 소켓 인젝션을 통해 운영 서버(20)로부터 획득한 로그인 정보를 이용하여 접근 제어를 실시할 수 있다. 따라서 제 1 실시예에 따르면, 로그인 정보가 암호화되어 전송되더라도 운영 서버(20)로부터 획득된 정보를 이용하여 접근을 통제할 수 있게 된다.
도 2를 참조하면, 접근 제어를 위한 통제 프록시 서버(100)는 클라이언트측 패킷 송수신 모듈(110), 프로토콜 분석 모듈(120), 패킷 콘트롤 모듈(130), 서버측 패킷 송수신모듈(140), 패킷 제너레이터(150), 정보확인 SQL 제너레이터(160), 권한 체크 모듈(170), 권한정보(182)와 세션정보(184)가 저장된 메모리(180)를 포함하고 있다.
클라이언트측 패킷 송수신 모듈(110)은 클라이언트측과 패킷을 송수신하고, 프로토콜 분석 모듈(120)은 클라이언트측 패킷 송수신 모듈(110)을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하며, 서버측 패킷 송수신 모듈(140)은 운영 서버(20)의 데이터베이스와 패킷을 송수신한다.
정보확인 SQL 제너레이터 모듈(160)은 메타데이터나 데이터 조회를 위한 SQL을 생성하고, 패킷 제너레이터 모듈(150)은 SQL 제너레이터(160)에서 생성된 데이터 조회를 위한 SQL을 패킷으로 변환하며, 권한 체크 모듈(170)은 로그인 및 테이블, 컬럼, 스키마, 데이터베이스 등의 오브젝트에 대한 권한을 메모리(180)에 저장된 권한정보와 비교하여 체크한다.
그리고 패킷 콘트롤 모듈(130)은 클라이언트측으로부터 수신된 패킷에 포함된 SQL의 권한을 체크하여 서버측 패킷 송수신 모듈(140)로 전달하고, 서버측 패킷 송수신 모듈(140)로부터 로그인 완료 패킷이 수신되면, 패킷 제너레이터 모듈(150)로부터 데이터 조회를 위한 SQL 패킷을 전달받아 서버측 패킷 송수신모듈(140)로 전달한다. 또한, 서버측 패킷 송수신모듈(140)로부터 데이터 조회 응답 패킷이 수신되면 해당 정보를 추출한 후 권한체크 모듈(170)에 제공하여 권한을 체크하게 하고, 권한 체크 결과에 따라 서버측으로부터 수신된 응답 패킷을 클라이언트측 패킷 송수신 모듈(110)로 전달한다. 메모리(180)에는 권한정보(182)와 세션정보(184)가 저장되어 있다.
이와 같이 구성되는 통제 프록시 서버(100)는 도 3에 도시된 바와 같이, 데이터베이스 운영 서버(20)로부터 받은 패킷을 분석하여 DB 로그인 완료 패킷이 수신되면, 로그인 성공 여부를 확인하여 성공한 경우 클라이언트 정보 확인 단계에서 접속된 세션에서 클라이언트의 IP, OS정보, 로그인 아이디 등을 수집한다(S101~S103).
이어 로그인 정보가 암호화되어 있는지 확인하여, 로그인 정보가 암호화되어 있으면, 클라이언트 정보를 취득할 수 없으므로 연결된 세션을 통해 로그인 정보를 수집하기 위하여 세션 정보 조회 SQL을 생성한다(S104,S105).
그리고 생성된 조회 SQL을 실행 패킷으로 변환하고, 연결된 세션을 통해 운영 서버(20)의 데이터베이스로 전송한다(S106). 이에 따라 운영 서버의 데이터베이스는 SQL을 실행하여 응답 패킷을 생성한 후 통제 프록시 서버(100)로 전송한다(S106).
통제 프록시 서버(100)는 응답 패킷을 운영 서버의 데이터베이스로부터 수신하고, 수신된 응답 패킷을 분석한 후 필요한 정보를 분리한다(S107).
이어 획득된 정보를 바탕으로 로그인 정보를 메모리의 권한정보(182)와 비교하여 권한을 확인한 후 접속을 허용할 것인지 아닌지를 판단한다(S108,S109).
만일 로그인 정보가 제한된 IP 혹은 아이디 등이어서 로그인을 차단할 경우에는 DB접속 실패 응답을 생성한 후 클라이언트측으로 전송하고 세션을 종료한다(S111,S112). 만일 로그인 가능한 권한이어서 로그인을 허용할 경우에는 DB 접속 성공 응답을 클라이언트(10)로 전송한다(S110). 그리고 단계 S102에서 로그인이 실패한 경우 데이터베이스에서 수신받은 로그인 결과를 클라이언트측으로 전송하고 세션을 종료한다.
한편, 권한 통제 절차의 경우에는 도 4에 도시된 바와 같이, 통제 프록시 서버(100)가 DML, DDL, DCL SQL인지를 판단하여 DML의 SELECT, INSERT, UPDATE, DELETE에 대한 권한, DDL의 경우는 CREATE, ALTER, DROP, RENAME, TRUNCATE에 대한 권한, DCL은 GRANT, REVOKE 등의 권한 명령어에 대한 수행가능 권한 등이 설정된 권한정보(182)와 비교하여 권한을 확인한다(S201,S202).
권한을 확인한 결과, 데이터 조회를 허용할 경우에는 클라이언트로부터 수신한 데이터 조회 SQL을 데이터베이스 운영 서버(20)로 전달하고, 데이터베이스에서 데이터 조회 결과를 수신하여 클라이언트에 패킷을 송신한다(S203~S206).
만일 조회를 허용하지 않을 경우에는 오류 패킷을 생성하여 클라이언트 측으로 송신한다(S207).
도 5는 본 발명의 제 2 실시예에 따른 구성 블럭도이고, 도 6은 본 발명의 제 2 실시예에 따른 복제를 위한 메타 데이터 획득 절차를 도시한 순서도이다.
본 발명의 제 2 실시예는 도 5에 도시된 바와 같이, 클라이언트(10)와 운영서버(20) 및 복제 서버(30) 사이에 데이터베이스 복제 솔루션이 탑재된 복제 프록시 서버(200)가 연결되어 있다. 데이터베이스 복제 솔루션이 탑재된 복제 프록시 서버(200)는 운영 서버(20)의 데이터베이스를 복제 서버(30)의 데이터베이스로 복제하는데, 본 발명의 실시예에 따르면 소켓 인젝션을 통해 운영 서버(20)로부터 획득한 메타데이터를 이용하여 보다 정확하게 데이터 복제를 실시할 수 있다.
도 5를 참조하면, 데이터 복제를 위한 복제 프록시 서버(200)는 클라이언트측 패킷 송수신 모듈(210), 프로토콜 분석모듈(220), 패킷 콘트롤 모듈(230), 서버측 패킷 송수신 모듈(240), 패킷 제너레이터(250), 정보확인 SQL 제너레이터(260), 복제모듈(270), 및 복제설정정보(282)와 세션정보(284)가 저장된 메모리(280)를 포함하고 있다.
클라이언트측 패킷 송수신 모듈(210)은 클라이언트측과 패킷을 송수신하고,
프로토콜 분석 모듈은 클라이언트측 패킷 송수신 모듈(210)을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하며, 서버측 패킷 송수신 모듈(240)은 운영 서버의 데이터베이스와 패킷을 송수신한다.
정보확인 SQL 제너레이터 모듈(260)은 메타데이터나 데이터 조회를 위한 SQL을 생성하고, 패킷 제너레이터 모듈(250)은 SQL 제너레이터 모듈(260)에서 생성된 메타데이터나 데이터 조회를 위한 SQL을 패킷으로 변환하며, 복제 모듈(270)은 운영 서버(20)에 적용된 SQL을 복제 서버(30)에서 동일하게 실행하여 데이터베이스를 복제한다.
그리고 패킷 콘트롤 모듈(23))은 클라이언트측으로부터 수신된 패킷을 서버측 패킷 송수신 모듈(240)로 전달하면서 해당 패킷이 INSERT나 UPDATE SQL이면 복제설정정보(282)와 비교하여 복제대상인지를 확인한 후 복제 대상이고 메타데이터가 필요하면 패킷 제너레이터 모듈(250)로부터 메타데이터 조회를 위한 SQL 패킷을 전달받아 서버측 패킷 송수신모듈(240)로 전달한다. 또한, 서버측 패킷 송수신모듈(240)로부터 메타데이터 조회 응답 패킷이 수신되면 메타데이터 정보를 추출한 후 해당 SQL과 함께 복제모듈(270)에 제공하여 복제가 정확하게 이루어지게 한다. 메모리(280)에는 복제설정정보(282)와 세션정보(284)가 저장되어 있다.
이와 같이 구성되는 복제 프록시 서버(200)는 도 6에 도시된 바와 같이, 클라이언트로부터 수신된 SQL이 'INSERT', 'UPDATE' SQL이면, 운영 서버(20)로 전송하여 데이터베이스에서 실행할 수 있게 한다(S301,S302).
이어 해당 테이블의 정보를 복제설정정보(282)와 비교하여 해당 테이블이 복제 대상인지를 확인한다(S303).
복제 대상이면, 메타데이터 확인이 필요한지를 판단하여 메타데이터 확인이 필요할 경우에는 메타데이터 조회 SQL을 생성한다(S304~S306).
이어 메타데이터 조회 패킷을 운영 서버(20)로 송신하고, 운영 서버(20)로부터 메타데이터 조회결과를 수신한다(S307,S308).
그리고 Function, procedure 실행 결과 값이 필요한지를 판단하여 필요하면 다시 데이터 조회 SQL을 생성하고, 데이터 조회 패킷을 운영 서버(20)로 송신한 후 데이터 조회 결과를 수신한다(S309~S312).
이후 조회 데이터를 이용한 SQL 변환을 수행하고, 복제 모듈(270)로 SQL을 전달하여 복제가 정확하게 이루어지게 한다(S313,S314).
이상에서 본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
10: 클라이언트 20: 운영서버
30: 복제서버 PX: 프록시 서버
100: 통제 프록시 서버
110,210: 클라이언트측 패킷 송수신 모듈
120,220: 프로토콜 분석 모듈 130,230: 패킷 콘트롤 모듈
140,240: 서버측 패킷 송수신 모듈 150,250: 패킷 제너레이터
160,260: 정보확인 SQL 제너레이터 170: 권한 체크 모듈
180,280: 메모리 200: 복제 프록시 서버
270: 복제 모듈

Claims (6)

  1. 삭제
  2. 클라이언트와, 데이터베이스 운영 서버와, 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 위치하면서 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 설정된 세션을 이용하여 소켓 인젝션을 통해 필요한 데이터베이스의 내부 정보를 운영 서버로부터 획득하는 프록시 서버를 포함하는 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 장치에 있어서,
    상기 프록시 서버는
    상기 클라이언트측과 패킷을 송수신하는 클라이언트측 패킷 송수신 모듈과,
    상기 클라이언트측 패킷 송수신 모듈을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하는 프로토콜 분석 모듈과,
    운영 서버의 데이터베이스와 패킷을 송수신하는 서버측 패킷 송수신 모듈과,
    데이터 조회를 위한 SQL을 생성하는 정보확인 SQL 제너레이터 모듈과,
    상기 SQL 제너레이터에서 생성된 데이터 조회를 위한 SQL을 패킷으로 변환하는 패킷 제너레이터 모듈과,
    로그인이나 테이블과 같은 오브젝트에 대한 권한을 메모리에 저장된 권한정보와 비교하여 체크하는 권한 체크 모듈과,
    상기 클라이언트측으로부터 수신된 패킷에 포함된 SQL의 권한을 체크하여 상기 서버측 패킷 송수신 모듈로 전달하고, 상기 서버측 패킷 송수신모듈로부터 로그인완료 패킷이 수신되면, 상기 패킷 제너레이터 모듈로부터 데이터 조회를 위한 SQL을 전달받아 상기 서버측 패킷 송수신모듈로 전달하며, 상기 서버측 패킷 송수신모듈로부터 데이터 조회 응답 패킷이 수신되면 해당 정보를 추출한 후 상기 권한체크 모듈에 제공하여 권한을 체크하게 하고, 권한 체크 결과에 따라 서버측으로부터 수신된 응답 패킷을 상기 클라이언트측 패킷 송수신 모듈로 전달하는 패킷 콘트롤 모듈을 포함하는 통제 프록시 서버인 것을 특징으로 하는 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 장치.
  3. 클라이언트와, 데이터베이스 운영 서버와, 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 위치하면서 상기 클라이언트와 상기 데이터베이스 운영 서버 사이에 설정된 세션을 이용하여 소켓 인젝션을 통해 필요한 데이터베이스의 내부 정보를 운영 서버로부터 획득하는 프록시 서버를 포함하는 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 장치에 있어서,
    상기 프록시 서버는
    상기 클라이언트측과 패킷을 송수신하는 클라이언트측 패킷 송수신 모듈과,
    상기 클라이언트측 패킷 송수신 모듈을 통해 수신된 패킷을 분석하여 프로토콜 상의 제어 여부를 확인하는 프로토콜 분석 모듈과,
    운영 서버의 데이터베이스와 패킷을 송수신하는 서버측 패킷 송수신 모듈과,
    메타데이터 조회를 위한 SQL을 생성하는 정보확인 SQL 제너레이터 모듈과,
    상기 SQL 제너레이터 모듈에서 생성된 메타데이터 조회를 위한 SQL을 패킷으로 변환하는 패킷 제너레이터 모듈과,
    운영 서버에 적용된 SQL을 복제 서버에서 동일하게 실행하여 데이터베이스를 복제하는 복제 모듈과,
    상기 클라이언트측으로부터 수신된 패킷을 상기 서버측 패킷 송수신 모듈로 전달하면서 해당 패킷이 INSERT나 UPDATE SQL이면 복제설정정보와 비교하여 복제대상인지를 확인한 후 복제 대상이고 메타데이터가 필요하면 상기 패킷 제너레이터 모듈로부터 메타데이터 조회를 위한 SQL을 전달받아 상기 서버측 패킷 송수신모듈로 전달하고, 상기 서버측 패킷 송수신모듈로부터 메타데이터 조회 응답 패킷이 수신되면 메타데이터 정보를 추출한 후 해당 SQL과 함께 상기 복제모듈에 제공하여 복제가 정확하게 이루어지게 하는 패킷 콘트롤 모듈을 포함하는 복제 프록시 서버인 것을 특징으로 하는 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 장치.
  4. 삭제
  5. 삭제
  6. 클라이언트가 데이터베이스 운영 서버에 접속하기 위해서는 DB 요청 정보를 프록시 서버를 거쳐 운영 서버로 입력하는 제 1 단계;
    운영 서버가 클라이언트와의 접속을 위한 세션을 생성하거나 이미 생성된 세션을 통해 접수한 DB 요청에 대응하여 적당한 DB 응답을 생성한 후 클라이언트로 전송할 DB 응답을 프록시 서버로 전송하는 제 2 단계;
    상기 프록시 서버가 운영 서버로부터 DB 응답이 접수될 경우, 클라이언트와 운영 서버 사이의 동일한 세션을 이용하여 운영 서버에 필요한 정보를 요청하는 제 3 단계; 및
    운영 서버가 프록시 서버로부터 요청된 데이터베이스 정보를 전송하고, 프록시 서버는 수신된 데이터베이스 정보를 분석하여 소정의 조치를 취한 후 클라이언트 측으로 운영 서버의 DB 응답을 전달하는 제 4 단계를 포함하고,
    상기 제 3 단계는
    상기 클라이언트측으로부터 수신된 패킷을 상기 운영 서버로 전달하면서 해당 패킷이 INSERT나 UPDATE SQL이면 복제설정정보와 비교하여 복제대상인지를 확인한 후 복제 대상이고 메타데이터가 필요하면 메타데이터 조회를 위한 SQL을 운영 서버로 전달하고, 상기 운영 서버로부터 메타데이터 조회 응답 패킷이 수신되면 메타데이터 정보를 추출한 후 이 추출된 메타데이터를 참조하여 해당 SQL을 실행토록 하여 복제가 정확하게 이루어지게 하는 것을 특징으로 하는 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법.
KR1020180164444A 2018-12-18 2018-12-18 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법 및 장치 Active KR101958933B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180164444A KR101958933B1 (ko) 2018-12-18 2018-12-18 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180164444A KR101958933B1 (ko) 2018-12-18 2018-12-18 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법 및 장치

Publications (1)

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

Family

ID=65948874

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180164444A Active KR101958933B1 (ko) 2018-12-18 2018-12-18 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101958933B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060007732A (ko) * 2004-07-21 2006-01-26 삼성전자주식회사 소켓 연결 관리 시스템 및 그 소켓 연결 상태 체크 방법
KR101039874B1 (ko) * 2011-04-04 2011-06-09 (주)한국전산감리원 정보통신 통합플랫폼 테스트 시스템
KR20110138809A (ko) * 2010-06-22 2011-12-28 주식회사 웨어밸리 확장 패킷을 이용한 데이터베이스 보안 관리 방법
KR20120121973A (ko) * 2011-04-28 2012-11-07 주식회사 파수닷컴 Dll 인젝션 기능을 구비한 컴퓨팅 장치 및 dll 인젝션 방법
KR20160005113A (ko) * 2013-05-03 2016-01-13 사이트릭스 시스템스, 인크. 프록시를 사용하여 자원들에의 보안 액세스

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060007732A (ko) * 2004-07-21 2006-01-26 삼성전자주식회사 소켓 연결 관리 시스템 및 그 소켓 연결 상태 체크 방법
KR20110138809A (ko) * 2010-06-22 2011-12-28 주식회사 웨어밸리 확장 패킷을 이용한 데이터베이스 보안 관리 방법
KR101039874B1 (ko) * 2011-04-04 2011-06-09 (주)한국전산감리원 정보통신 통합플랫폼 테스트 시스템
KR20120121973A (ko) * 2011-04-28 2012-11-07 주식회사 파수닷컴 Dll 인젝션 기능을 구비한 컴퓨팅 장치 및 dll 인젝션 방법
KR20160005113A (ko) * 2013-05-03 2016-01-13 사이트릭스 시스템스, 인크. 프록시를 사용하여 자원들에의 보안 액세스

Similar Documents

Publication Publication Date Title
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
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
US5864665A (en) Auditing login activity in a distributed computing environment
JP5635978B2 (ja) 人間が介入しないアプリケーションのための認証されたデータベース接続
US8051168B1 (en) Method and system for security and user account integration by reporting systems with remote repositories
KR101302135B1 (ko) 위탁 서비스를 위한 데이터의 부분 암복호화 방법 및 그 장치
US8838959B2 (en) Method and apparatus for securely synchronizing password systems
US20060143189A1 (en) Database access control method, database access controller, agent processing server, database access control program, and medium recording the program
US20140109179A1 (en) Multiple server access management
JP2010502109A (ja) アプリケーションおよびインターネットベースのサービスに対する信頼されるシングル・サインオン・アクセスを提供するための方法および装置
US20100325717A1 (en) System and Method for Managing Access to a Plurality of Servers in an Organization
US7917636B2 (en) System and method for detecting unused accounts in a distributed directory service
US7801967B1 (en) Method and system for implementing database connection mapping for reporting systems
US20090158047A1 (en) High performance secure caching in the mid-tier
JPH10232811A (ja) データベースのセキュリティ管理方法
US20040049677A1 (en) Authorization and security management system and method
US9009799B2 (en) Secure access
US20200076793A1 (en) Management device, management system, and non-transitory computer readable medium
US20250053672A1 (en) System for decentralized identification of file access permission
KR101958933B1 (ko) 소켓 인젝션을 통한 데이터베이스 내의 정보 수집 방법 및 장치
WO2017124922A1 (zh) 一种跨域系统登录验证的方法和装置
KR101736157B1 (ko) 연합 인증 방법 및 장치
KR101025029B1 (ko) 인증서 기반의 데이터베이스 통합 보안시스템 구축방법

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20181218

PA0201 Request for examination
PA0302 Request for accelerated examination

Patent event date: 20181220

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20181218

Patent event code: PA03021R01I

Comment text: Patent Application

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

Comment text: Notification of reason for refusal

Patent event date: 20190120

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

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20190311

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20190311

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20220325

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20240125

Start annual number: 6

End annual number: 6