KR100906449B1 - 데이터베이스 툴 식별 장치 및 방법 - Google Patents

데이터베이스 툴 식별 장치 및 방법 Download PDF

Info

Publication number
KR100906449B1
KR100906449B1 KR1020090020934A KR20090020934A KR100906449B1 KR 100906449 B1 KR100906449 B1 KR 100906449B1 KR 1020090020934 A KR1020090020934 A KR 1020090020934A KR 20090020934 A KR20090020934 A KR 20090020934A KR 100906449 B1 KR100906449 B1 KR 100906449B1
Authority
KR
South Korea
Prior art keywords
sql
information
tool
database
sequence
Prior art date
Application number
KR1020090020934A
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 KR1020090020934A priority Critical patent/KR100906449B1/ko
Application granted granted Critical
Publication of KR100906449B1 publication Critical patent/KR100906449B1/ko

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/21Design, administration or maintenance of databases
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • 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

Landscapes

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

Abstract

본 발명은 데이터베이스 관리 편의를 위해 사용되는 데이터베이스 툴을 데이터베이스 보안 모듈에서 식별하여 정확한 데이터베이스 툴의 사용을 관리하도록 하는 것으로 보안성과 관리 효율성을 높이도록 한 데이터베이스 툴 식별 장치 및 방법에 관한 것으로, 별도의 식별 정보를 제공하지 않는 데이터베이스 툴의 세션 연결 설정시 제공되는 SQL의 패턴을 분석하여 데이터베이스 툴을 식별하도록 함으로써 데이터베이스 툴 식별 기능이 없는 DBMS에 해당 기능을 부여하여 보안성과 관리성을 높일 수 있는 효과가 있다.
DBMS, 데이터베이스 툴, SQL, 식별, 보안

Description

데이터베이스 툴 식별 장치 및 방법{DATABASE TOOL IDENTIFYING APPARATUS AND METHOD THEREOF}
본 발명은 데이터베이스 툴 식별 장치 및 방법에 관한 것으로, 특히 데이터베이스 관리 편의를 위해 사용되는 데이터베이스 툴을 데이터베이스 보안 모듈에서 식별하여 정확한 데이터베이스 툴의 사용을 관리하도록 하는 것으로 보안성과 관리 효율성을 높이도록 한 데이터베이스 툴 식별 장치 및 방법에 관한 것이다.
정보통신 시대에 접어들면서 각종 정보들을 수집하여 활용하거나 이를 통해 비즈니스 정보(BI:Business Information)을 얻기 위한 다양한 시스템이 등장하고 있으며, 이러한 시스템의 근간에는 DBMS(DataBase Management System) 관련 기술의 진보가 밑바탕이 되어왔다.
이러한 DBMS는 비즈니스 관련 정보, 고객 정보, 상품 정보, 컨텐츠 정보를 포함하는 다양하고 방대한 자료들을 저장 및 관리하고 있으며, 이러한 정보를 효과적으로 관리하기 위한 관계형 데이터베이스 관리 시스템으로 오라클(Oracle), 사이 베이스(Sybase), 마이 에스큐엘(MySQL), 마이크로소프트 에스큐엘 서버(MS SQL Server) 등의 다양한 DBMS가 사용되고 있다.
중요한 정보를 관리하는 DBMS의 보안성을 높이기 위한 보안 시스템의 구성 역시 최근 빈번하게 발생되는 정보 유출이나 정보 조작과 같은 다양한 보안 사고를 방지하기 위하여 일정 규모 이상에서 일반적으로 적용되고 있으며, 최근 가장 큰 문제로 떠오르고 있는 내부자에 의한 보안 사고를 방지하기 위하여 DBMS에 접속하는 모든 사용자에 대한 사용 내역을 관리하는 형태로까지 발전하고 있다.
도 1은 보안 구성이 적용된 기본적인 사내 데이터베이스 시스템 구성을 보인 것으로, 복수의 클라이언트 단말기들(1)이 내부 통신망(2)을 통해서 DBMS(5)에 접속하도록 구성되며, 이러한 DBMS(5)에 대한 접속 정보를 로그로 관리하기 위하여 게이트웨이 서버(3)나 스니핑(Sniffing)을 위한 보안 서버(4) 등을 구성하게 된다. 이러한 구성 외에 프록시 게이트웨이 서버나 DBMS(5) 내부에 에이전트(agent)를 구성하는 방식도 개별 혹은 복합적으로 구성될 수 있다.
이러한 보안 구성들은 기본적인 외부 접근 차단 등이 이루어진 내부 시스템에서의 보안성을 높이기 위한 것으로, 관리자에 의해 허가된 사용자만 DBMS에 접근할수 있도록 통제하거나, DBMS 접근 및 사용 내역에 대한 모니터링과 강제 세션 종료 등의 실시할 수 있도록 하며, 사용 내역을 로그로 저장하고 사용자별로 접근 정책을 설정하는 등의 다양한 보안 기능을 제공할 수 있다.
최근에는 일반적인 DBMS 사용자, DBMS 관리자, 보안 관리자, 경영층 등의 다양한 사용자들의 다양한 접근 권한에 대한 관리는 물론이고 최고 권한을 가진 사용 자에 의한 접속에 대한 감시도 가능하도록 구성되고 있다.
한편, 이렇게 구성되는 데이터베이스 시스템의 각 클라이언트 단말기에 DBMS 사용, DB 애플리케이션 개발, SQL(structured query language) 개발 등의 편의 위해서 전문화된 데이터베이스 툴을 설치하여 사용하는 것이 보편화되고 있다. 이러한 데이터베이스 툴은 SQL 편집, SQL 관리, SQL 실행, 데이터베이스 객체의 생성 및 수정이 간편하도록 한 사용자 인터페이스를 제공하기 때문에 생산성 향상을 위한 기본적인 도구로서 대부분의 클라이언트 단말기에 설치되고 있다.
도 2는 일반적인 DBMS 시스템의 클라이언트 단말기(10) 구성을 보인 것으로, 기본적으로는 데이터베이스 클라이언트 단말기(10)에 설치된 데이터베이스 클라이언트(12) 만을 이용하더라도 DBMS(14)에 접속하고 쿼리를 매번 실행하는 방식으로 데이터베이스를 활용할 수 있지만 효율이 극히 낮기 때문에, DBMS(14)에 용이하게 접속하여 데이터베이스 정보를 브라우징하고, 편집하는 등의 작업을 쉽게 처리하기 위하여 대부분의 사용자들은 다양한 기능과 간편한 그래픽 사용자 인터페이스를 제공하는 전용 데이터베이스 툴(11)을 설치하여 사용하고 있다.
이렇게 사용되는 데이터베이스 툴(11)로는 오렌지(Orange), 토드(Tode), 에스큐엘 플러스(SQL Plus), 에스큐엘 게이트(SQL Gate) 등 다양한 전용 소프트웨어들이 다양한 DBMS의 종류에 따라 제공되고 있으며, 많은 사용자들이 이들 중 한두개의 데이터베이스 툴을 다루어본 경험이 있을 정도로 보편화되어 있다.
하지만, 이러한 데이터베이스 툴(11)은 사내 DBMS 네트워크 구축과 내부 보안 설정를 위해 관리되는 부분으로, 보안이나 관리 정책 상 특정한 데이터베이스 툴을 사용하도록 규정되는 것이 보통이다.
이는 해킹에 필요한 기능이 부가되거나 이러한 기능을 적용한 데이터베이스 툴(11)의 접근을 차단하기 위한 목적과, 허용된 데이터베이스 툴이 아닌 다른 데이터베이스 툴의 사용자는 부정한 방법으로 접근한 사용자로 판단하기 위한 목적이 있으며, 라이센스 계약이 되어 있는 특정한 데이터베이스 툴만 허용하도록 하여 소프트웨어 관리를 용이하도록 하기 위한 목적도 있다. 한편, 데이터베이스 툴(11)의 특성에 맞추어 권한 롤을 설정하여 권한 관리가 용이하도록 할 수 있고, 정확한 사용자 식별이 가능하도록 하기 위해서도 특정한 데이터베이스 툴(11)을 지정하는 것이 바람직하다.
그러나 현재 제공되는 DBMS 중에서는 일부(예를 들어, 오라클)에서만 DBMS에 접속하는 데이터베이스 툴의 파일명을 통해 툴을 식별하는 기능을 제공하고 있을 뿐이므로 데이터베이스 툴을 식별하여 보안성과 관리성을 높이도록 하는 방식을 보안 모듈이나 보안 서버 등에 범용적으로 적용하기 어렵다.
또한, 일반적으로 데이터베이스 툴은 자신을 식별할 수 있는 정보를 별도로 제공하고 있지 않기 때문에 DBMS에서 데이터베이스 툴을 식별하는 기능이 있는 경우(예를 들어, 오라클)라도 단순히 실행 파일명을 기준으로 하는 식별에 불과하여 금지된 데이터베이스 툴이라 하더라도 실행 파일명을 허용된 데이터베이스 툴의 파일명으로 변경하는 간단한 방법으로 쉽게 위장할 수 있어 실질적인 보안성이나 관리성은 극히 낮다.
전술한 문제점을 개선하기 위한 본 발명 실시예들의 목적은 별도의 식별 정보를 제공하지 않는 데이터베이스 툴의 세션 연결 설정시 제공되는 SQL의 패턴(시퀀스)을 분석하여 데이터베이스 툴을 식별하도록 함으로써 데이터베이스 툴 식별에 따른 보안성과 관리성을 높일 수 있도록 한 데이터베이스 툴 식별 장치 및 방법을 제공하는 것이다.
본 발명 실시예들의 다른 목적은 데이터베이스 툴이 세션 연결 설정 시 제공하는 SQL의 해쉬(hash) 및 길이 정보를 활용하여 SQL을 구분하고, 순차 제공되는 SQL 식별 정보들의 패턴에 따라 데이터베이스 툴을 식별하도록 함으로써 파일명 변경 등과 같은 수정에 상관 없이 실질적인 데이터베이스 툴을 식별할 수 있도록 한 데이터베이스 툴 식별 장치 및 방법을 제공하는 것이다.
본 발명 실시예들의 또 다른 목적은 데이터베이스 툴 식별에 따라 보안성을 높이고 권리 정책 설정을 용이하도록 하는 기능을 DBMS 종류와 데이터베이스 툴의 종류에 무관하게 적용할 수 있으며, 일반적으로 SQL 모니터링이 가능한 모든 종류의 보안 모듈이나 DBMS에 용이하게 부가 적용할 수 있도록 한 데이터베이스 툴 식별 장치 및 방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 데이터베 이스 툴 식별 장치는 데이터베이스 관리 시스템(DBMS)과 클라이언트 단말기 사이에 구성되어 상기 클라이언트 단말기에 설치된 데이터베이스 툴을 식별하는 장치로서, 상기 클라이언트 단말기의 데이터베이스 툴이 상기 DBMS와 세션 연결을 설정하기 위해 수행하는 SQL을 저장하는 SQL 저장부와; 데이터베이스 툴 별 SQL 시퀀스가 저장된 시퀀스 저장부와; 상기 클라이언트 단말기의 데이터베이스 툴이 세션 연결 설정을 위해 수행하는 SQL을 상기 SQL 저장부에 분류 저장하고, 연속 수행되는 SQL의 순서와 상기 시퀀스 저장부의 시퀀스 정보를 비교하여 대응되는 데이터베이스 툴을 식별하는 DB툴 식별부를 포함하여 이루어진다.
상기 DB툴 식별부는 상기 수행되는 SQL을 해쉬값으로 변환하고 상기 해쉬값에 식별자 정보를 부여하여 상기 SQL 저장부에 저장하거나 동일한 정보가 있을 경우 저장하지 않고 그 식별자 정보만 획득하는 SQL 해쉬부와; 상기 SQL 해쉬부가 상기 수행되는 SQL에 따라 제공하는 식별자 정보의 순서를 상기 시퀀스 저장부에 기 저장된 식별자 정보 순서 별 데이터베이스 툴 정보와 비교하여 대응하는 데이터베이스 툴 정보를 식별 정보로 획득하는 툴 식별부를 포함하여 구성된다.
상기 SQL 해쉬부는 상기 SQL에 대한 해쉬값의 길이 정보를 더 산출하여 상기 SQL 저장부에 저장 시 상기 길이 정보를 더 저장하거나 동일 정보 확인 시 더 이용할 수 있다.
상기 툴 식별부는 상기 시퀀스 저장부에 대응하는 시퀀스가 없을 경우 새로운 시퀀스로 등록하고 대응 데이터베이스 툴 정보를 요청 및 획득하여 저장할 수 있다.
또한, 상기 SQL 해쉬부는 수행되는 SQL에서 블랭크, 상수, 코멘트 중 적어도 하나 이상을 제거한 전처리를 실시한 후 해쉬값을 얻도록 구성할 수도 있다.
본 발명의 다른 실시예에 따른 데이터베이스 툴 식별 장치는 DBMS와 클라이언트 단말기 사이에 구성되어 상기 클라이언트 단말기에 설치된 데이터베이스 툴이 상기 DBMS에 접속하기 위한 세션 연결 설정 시 상기 데이터베이스 툴을 식별하는 장치로서, SQL 해쉬값을 기준으로 하는 순서 패턴과 데이터베이스 툴 정보가 대응 저장된 테이블과; 상기 데이터베이스 툴이 수행하는 SQL을 해쉬값으로 변환하면서 그 순서 패턴을 기억한 후 상기 테이블의 순서 패턴과 비교하여 대응 데이터베이스 툴 정보를 획득하는 식별부를 포함하여 이루어진다.
상기 테이블의 순서 패턴은 SQL 해쉬값 및 길이 정보를 기준으로 구성되며, 상기 식별부는 SQL 해쉬값 및 그 길이 정보를 산출하여 순서 패턴을 기억하도록 구성된다.
상기 식별부는 상기 데이터베이스 툴이 수행하는 SQL의 해쉬값이 상기 테이블에 존재하지 않을 경우 신규 등록하고, 상기 순서 패턴이 상기 테이블에 존재하지 않는 경우 해당 패턴에 대한 데이터베이스 툴 정보를 문의하여, 그 답변 및 그에 대한 순서 패턴을 상기 테이블에 신규 정보로 저장할 수 있다.
상기 식별부는 상기 테이블에 대응되는 순서 패턴이 없는 경우 허용되지 않는 데이터베이스 툴임을 나타내는 정보를 출력하도록 구성될 수도 있다.
본 발명의 또 다른 실시예에 따른 데이터베이스 툴 식별 방법은 DBMS와 클라이언트 단말기 사이에 구성된 데이터베이스 툴 식별 장치가 상기 클라이언트 단말 기에 설치된 데이터베이스 툴을 식별하는 방법으로서, 상기 클라이언트 단말기의 데이터베이스 툴이 상기 데이터베이스 관리 시스템과 세션 연결 설정을 위해 수행하는 SQL을 획득하여 해쉬값 및 그 길이를 연산하는 해쉬값 산출 단계와; 상기 해쉬값 산출 단계에서 산출된 해쉬값과 길이를 기준으로 기 설정된 데이터베이스 툴별 세션 연결 설정용 SQL 시퀀스 정보로부터 대응되는 데이터베이스 툴을 식별하는 툴 식별 단계를 포함하여 이루어진다.
상기 툴 식별 단계는 상기 해쉬값 산출 단계를 통해 수집되는 SQL의 해쉬값 및 길이를 식별자에 대응시켜 중복되지 않도록 SQL 저장부에 저장하는 SQL 저장 단계와; 상기 SQL 저장 단계에서 얻어지는 수집 SQL의 식별자를 이용하여 시퀀스 정보를 생성하고, 이를 외부에서 제공되는 데이터베이스 툴의 명칭에 대응시켜 시퀀스 저장부에 저장하거나, 상기 시퀀스 저장부에 기 저장된 시퀀스에 대응하는 데이터베이스 툴의 명칭을 식별하는 시퀀스 저장 및 식별 단계를 더 포함할 수 있다.
한편, 상기 툴 식별 단계는 상기 해쉬값 산출 단계에서 얻어진 해쉬값 및 길이나 그 값들의 시퀀스 정보가 기 설정된 데이터베이스 툴별 세션 연결 설정용 SQL 시퀀스 정보에 대응되지 않을 경우 허용되지 않는 데이터베이스 툴로 식별하는 단계를 더 포함하도록 구성될 수도 있다.
본 발명 실시예에 따른 데이터베이스 툴 식별 장치 및 방법은 별도의 식별 정보를 제공하지 않는 데이터베이스 툴의 세션 연결 설정시 제공되는 SQL의 패턴을 분석하여 데이터베이스 툴을 식별하도록 함으로써 데이터베이스 툴 식별 기능이 없는 DBMS에 해당 기능을 부여하여 보안성과 관리성을 높일 수 있는 효과가 있다.
본 발명 실시예에 따른 데이터베이스 툴 식별 장치 및 방법은 데이터베이스 툴이 세션 연결 설정 시 제공하는 SQL의 해쉬(hash) 및 길이 정보를 활용하여 SQL을 구분하고, 순차 제공되는 SQL 식별 정보들의 패턴에 따라 데이터베이스 툴을 식별하도록 함으로써 길이가 긴 SQL을 신속하고 간단하게 비교하는 것으로 파일명 변경 등과 같은 수정에 상관 없이 실질적인 데이터베이스 툴을 효과적으로 식별할 수 있는 효과가 있다.
본 발명 실시예에 따른 데이터베이스 툴 식별 장치 및 방법은 통신 흐름을 전혀 방해하지 않고, 필요한 자원을 최소화하도록 함으로써, 데이터베이스 툴 식별에 따라 보안성을 높이고 권리 정책 설정을 용이하도록 하는 기능을 DBMS 종류와 데이터베이스 툴의 종류에 무관하게 적용할 수 있도록 하며, SQL 모니터링이 가능한 모든 종류의 보안 모듈이나 DBMS에 용이하게 부가 적용할 수 있는 효과가 있다.
상기한 바와 같은 본 발명을 첨부된 도면들과 실시예들을 통해 상세히 설명하도록 한다.
도 3은 본 발명의 실시예에 따른 데이터베이스 툴 식별 방식을 설명하기 위한 일반적인 데이터베이스 시스템의 구성을 보인 것으로, 도시한 바와 같이 복수의 클라이언트 단말기들(20)과, DBMS(40) 및 이들 사이에 구성되어 SQL 수행을 감시하 는 보안 모듈(30)의 구성을 개략적으로 보인 것이다.
상기 보안 모듈(30)은 데이터베이스 시스템 보안을 위해 게이트웨이, 프록시 게이트웨이, 스니핑 서버, 에이전트 등을 포함하는 임의의 보안 모듈 중 하나일 수 있다. 상기 보안 모듈(30)은 상기 클라이언트 단말기들(20)에 설치된 데이터베이스 툴이 상기 DBMS(40)에 접속하기 위한 세션 연결 설정 시(로그인 시) 수행하는 SQL 정보를 모니터링하여 상기 클라이언트 단말기들(20)에 설치된 데이터베이스 툴을 식별하는 데이터베이스 툴 식별부를 포함하는 것으로 사용자들이 이용하고 있는 데이터베이스 툴을 확인하여 필터링하거나 권한을 관리할 수 있게 된다.
상기 DBMS(40)가 오라클일 경우 내부적으로 데이터베이스 툴의 파일명을 확인할 수 있지만, 해당 파일명은 변조가 용이하므로 이를 통한 보안 및 관리는 그 의미가 거의 없다.
따라서, 본 실시예에서는 상기 클라이언트 단말기들(20)에 설치된 데이터베이스 툴이 자신의 정보는 제공하지 않지만 세션 연결 설정을 위해 제공하는 SQL 시퀀스, 즉 SQL 패턴이 고유한 규칙을 가진다는 점에 착안하여 이러한 SQL 시퀀스를 기준으로 클라이언트 단말기들(20)에 설치된 데이터베이스 툴을 식별하도록 한다.
그러나 SQL의 경우 장문의 텍스트로 이루어지기 때문에 이를 그대로 이용할 경우 상당히 많은 리소스를 점유하게 되고, 이는 많은 수의 사용자들이 수시로 세션 연결 및 종료를 실시하고 있는 데이터베이스 시스템 환경에서는 상당한 부하로 작용할 수 있어 제한된 보안 모듈(혹은 이러한 모듈이 설치된 서버)의 리소스 사용 증가가 발생할 수 있다.
따라서 본 실시예에서는 데이터베이스 툴을 식별하기 위해 사용되는 리소스를 최소화 하면서도 정확한 방식으로 데이터베이스 툴을 식별하도록 데이터베이스 툴 식별부를 구성하는 것으로 이러한 구성을 임의의 보안 모듈이나 혹은 DBMS에 부담 없이 적용할 수 있도록 한다.
도 4는 본 발명 실시예에 따른 데이터베이스 툴 식별부(100) 구성을 보인 것으로, 도시한 바와 같이 클라이언트 단말기의 데이터베이스 툴이 DBMS와 세션 연결 을 설정하기 위해 수행하는 SQL 정보를 저장하는 SQL 저장부(120), 데이터베이스 툴 별 SQL 시퀀스가 저장된 시퀀스 저장부(130), 상기 클라이언트 단말기의 데이터베이스 툴이 세션 연결 설정을 위해 수행하는 SQL을 상기 SQL 저장부에 분류 저장하고, 연속적으로 수행되는 SQL의 순서와 상기 시퀀스 저장부의 시퀀스 정보를 비교하여 대응되는 데이터베이스 툴을 식별한 후 그 식별 결과를 출력하는 DB툴 식별부(110)로 이루어진다.
먼저, 상기 DB툴 식별부(110)는 수신되는 SQL에 대한 해쉬(Hash)값을 연산하고, 보다 정확한 식별을 위해서 해당 해쉬값의 길이도 산출하여 이를 상기 SQL 저장부(120)에 중복되지 않으면서 식별 가능하도록 저장한다. 이를 통해서 한번 해쉬값과 길이가 저장된 SQL의 경우 해당 SQL은 단순한 식별자(index)를 통해서 구분될 수 있게 된다. 물론, 해쉬값의 길이 정보를 이용하지 않고 해쉬값 만을 이용할 수도 있으나 식별 정확도를 위해서는 길이 정보를 더 이용하는 것이 바람직하다.
구성에 따라서는 상기 SQL 저장부(120)에 예상되는 모든 SQL에 대한 해쉬값과 길이가 미리 저장될 수 있고, 상기 SQL 저장부(120)에 저장되지 않은 SQL이 세 션 연결 설정 중에 수신되는 경우 상기 DB툴 식별부(110)사 해당 SQL을 수행한 데이터베이스 툴을 허가되지 않은 데이터베이스 툴로 식별도록 할 수도 있다.
한편, 상기 DB툴 식별부(110)는 상기 수신되는 SQL들에 대한 식별자 정보들을 상기 SQL 저장부(120)를 활용하여 수집하여 일련의 시퀀스 정보, 즉 식별자들로 이루어진 패턴 정보를 획득하게 되는데, 해당 시퀀스 정보를 이용하여 식별자들로 이루어진 시퀀스 정보에 대응하는 데이터베이스 툴 정보가 기 저장된 시퀀스 저장부(130)를 검색하는 것으로 대응되는 데이터베이스 툴 정보를 획득할 수 있게 된다. 만일, 시퀀스 저장부(130)가 비어있거나 일부 정보만 존재하는 경우 상기 DB툴 식별부(110)는 상기 시퀀스 저장부(130)에 수집된 일련의 시퀀스 정보를 저장하면서 그에 대응하는 데이터베이스 툴 정보를 사용자(보안 관리자 등)에게 요청하여 그에 대한 정보를 수신한 후 저장하도록 하여 신규한 데이터베이스 툴 정보들을 누적할 수 있다.
도 5는 도 4에 도시한 DB툴 식별부(110)의 구성 예와 이를 이용한 데이터베이스 툴 식별 과정을 보인 것으로, 도시한 바와 같이 상기 DB툴 식별부(110)는 SQL 텍스트에 해당하는 해쉬값을 구하고 그 길이를 산출하여 SQL 저장부(120)에 테이블 형태로 저장하는 SQL 해쉬부(111)와, 수신된 SQL의 해쉬값 및 길이에 대응하는 식별자 정보를 수집하여 시퀀스 정보에 대응하는 데이터베이스 툴 정보가 기 저장된 시퀀스 저장부(130)를 이용하여 대응하는 데이터베이스 툴을 검색하는 툴 식별부(112)를 포함한다.
상기 SQL 해쉬부(111)는 수신되는 SQL을 문자열로 간주하여 이를 일정한 크 기의 해쉬값으로 변환하고 그 길이를 구한다. 도 7 및 도 8은 많이 사용되는 데이터베이스 툴인 에스큐엘 플러스(SQL Plus)와 오렌지(Orange) 각각이 세션 연결 설정 시 수행하는 SQL의 텍스트 정보와 이를 4바이트 크기의 해쉬로 변환하고 그 크기값을 산출한 경우의 예를 보인 것이다. 도시한 바와 같이 장문의 SQL 텍스트를 비교와 관리가 용이한 숫자 정보들로 변환하여 관리하도록 하여 부하를 크게 줄일 수 있게 된다.
상기 SQL 해쉬부(111)는 산출된 해쉬값과 길이를 상기 SQL 저장부(120)에 테이블 형태로 저장하면서 이를 식별할 수 있는 식별자를 설정하고, 이미 존재하는 값인 경우 식별자만 획득하여 상기 툴 식별부(112)에 제공한다. 물론, 앞서 설명한 바와 같이 상기 SQL 저장부(120)에는 허용된 SQL 해쉬값과 길이가 미리 저장되어 상기 SQL 해쉬부(111)가 별도로 신규 정보를 저장하지 않을 수도 있다.
상기 툴 식별부(112)는 상기 SQL 해쉬부(111)가 제공하는 SQL에 대한 식별자 정보를 수집하여 일련의 시퀀스 정보로 누적하고, 세션 연결 설정이 종료되는 경우 상기 시퀀스 저장부(130)에 마련된 테이블에서 대응되는 데이터베이스 툴을 검색하여 그 결과를 출력한다. 만일 대응되는 시퀀스가 없을 경우 허용되지 않은 데이터베이스 툴로 식별 결과를 출력할 수 있으며, 필요에 따라서는 신규 시퀀스 정보를 상기 시퀀스 저장부(130)에 마련된 테이블에 저장하고 대응되는 데이터베이스 툴 정보를 외부에 요청, 혹은 '미확인 데이터베이스 툴'로 저장할 수 있다.
한편, 상기 SQL 해쉬부(111)에서는 상기 수행되는 SQL에 대한 해쉬값을 산출하기 전에 해당 SQL 텍스트 정보에 포함된 블랭크, 상수, 코멘트 등과 같이 데이터 베이스 툴이 제공하는 SQL 시퀀스를 파악하는데 필요하지 않은 정보들을 제거하는 전처리를 실시한 후 해쉬값과 그 길이 정보를 산출할 수 있는데, 이를 통해서 불필요한 유사 SQL 정보들을 SQL 저장부에 저장하지 않도록 할 수 있고, 검색 편의를 높일 수 있다.
도 6은 본 발명의 실시예에 따른 데이터베이스 툴 식별부의 동작 과정을 보인 순서도이다.
도시한 바와 같이 클라이언트 단말기의 데이터베이스 툴이 DBMS와 세션 연결을 시작하는 경우 초기 설정을 위해서 데이터베이스 툴마다 독특한 구성을 가지는 일련의 SQL 정보를 제공하게 된다.
이렇게 제공되는 SQL 정보를 수신한 데이터베이스 툴 식별부는 수신되는 SQL 정보에 포함된 텍스트를 일정한 크기의 해쉬값으로 변환한다. 필요한 경우 무의미한 내용들을 미리 제거하는 전처리를 실시할 수 있고, 보다 정확한 SQL 식별을 위해서 해쉬값의 길이를 식별 정보로서 더 이용할 수 있다.
상기 얻어진 수행 SQL에 대한 해쉬값이 SQL 저장부에 이미 저장되어 있는 경우 대응되는 식별자 정보를 얻고, 만일 신규한 값인 경우 해당 해쉬값을 등록하면서 새로운 식별자를 대응시킨다.
그리고, 해당 식별자를 시퀀스 정보로 누적 수집한다.
상기 SQL의 해쉬값을 산출하여 그에 대응하는 식별자를 시퀀스 정보로 누적 수집하는 상기 과정을 세션 연결을 위한 설정이 종료될 때까지 실시하면 특정한 데이터베이스 툴이 세션 연결 설정시 제공하는 일련의 SQL 식별자 시퀀스 정보를 수 집할 수 있게 된다.
상기 수집된 시퀀스 정보를 시퀀스 정보에 대응되는 데이터베이스 툴 정보가 저장된 시퀀스 저장부의 정보와 비교하여 대응되는 것이 있을 경우 그에 해당하는 데이터베이스 툴 정보를 식별 데이터베이스 툴 정보로 출력하고, 만일 대응되는 시퀀스 정보가 없을 경우 허용되지 않는 데이터베이스 툴임을 나타내는 정보를 출력하거나, 정의되지 않은 데이터베이스 툴 이름으로 상기 시퀀스 저장부에 등록하거나, 혹은 신규 시퀀스 정보로 상기 시퀀스 저장부에 등록하면서 대응되는 데이터베이스 툴 정보를 사용자(보안 관리자)에게 요청 및 수신하여 저장할 수 있다. 이는 사용자(보안 관리자)가 신규한 데이터베이스 툴 정보를 얻은 경우 이를 등록하면서 사용할 수 있는 기능으로 별도 구성하여 관리할 수도 있다.
한편, 앞서 설명한 방식들 중에서 상기 SQL 저장부에 SQL 해쉬값과 그 길이값을 식별자에 대응시켜 저장하는 과정이나 상기 시퀀스 저장부에 시퀀스에 대응되는 데이터베이스 툴 정보를 저장하는 과정은 실제 사용자에게 적용되기 이전에 관리자가 대응하는 정보들로 각 저장부의 테이블을 미리 구성하기 위해서 사용하고, 실제 사용자에게 적용될 경우에는 상기 각 저장부에 신규 정보들을 등록하지 못하도록 한 상태로 적용할 수 있으며 이러한 선별적 기능의 사용은 소정의 기능 설정을 통해 가능하도록 구성할 수 있다. 또한, 이러한 기능 중 일부는 실제 네트워크에 적용하여 관련되는 정보들을 단순 수집하기 위한 용도로도 활용될 수 있으며, 사용할 기능들을 관리자나 설계자가 임의적으로 조합하여 구성할 수 있다. 예를 들어, 신규 SQL 정보들을 SQL 저장부에 저장하도록 하지만 시퀀스 저장부에 신규 시 퀀스 정보를 등록하지는 못하도록 하고 그에 따른 보고만 제공하도록 구성하거나, 신규 SQL 정보들은 SQL 저장부에 저장하지 못하도록 하고 시퀀스 저장부에 신규 시퀀스만 '미확인 데이터베이스 툴'을 대응 정보로 하여 저장하도록 하여 추후 확인할 수 있도록 하는 등 상기 설명된 구성들은 설계자나 관리자에 의해 다양한 방식으로 조합될 수 있다.
이상에서는 본 발명에 따른 바람직한 실시예들에 대하여 도시하고 또한 설명하였다. 그러나 본 발명은 상술한 실시예에 한정되지 아니하며, 특허 청구의 범위에서 첨부하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능할 것이다.
도 1은 보안이 고려된 데이터베이스 시스템의 구성도.
도 2는 클라이언트 단말기에 적용된 데이터베이스 툴의 기능을 설명하기 위한 개념도.
도 3은 본 발명의 실시예를 설명하기 위한 데이터베이스 시스템 구성도.
도 4는 본 발명의 실시예에 따른 데이터베이스 툴 식별 장치의 구성도.
도 5는 본 발명의 실시예에 따른 데이터베이스 툴 식별 장치의 개념도.
도 6은 본 발명의 실시예에 따른 동작 과정을 보인 순서도.
도 7 및 도 8은 특정 데이터베이스 툴의 세션 연결 설정용 SQL 실행 정보를 보인 예.
** 도면의 주요 부분에 대한 부호의 설명 **
100: 데이터베이스 툴 식별부 110: DB툴 식별부
120: SQL 저장부 130: 시퀀스 저장부

Claims (16)

  1. 데이터베이스 관리 시스템(DBMS)과 클라이언트 단말기 사이에 구성되어 상기 클라이언트 단말기에 설치된 데이터베이스 툴을 식별하는 장치로서,
    상기 클라이언트 단말기의 데이터베이스 툴이 상기 DBMS와 세션 연결을 설정하기 위해 수행하는 SQL을 저장하는 SQL 저장부와;
    데이터베이스 툴 별 SQL 시퀀스가 저장된 시퀀스 저장부와;
    상기 클라이언트 단말기의 데이터베이스 툴이 세션 연결 설정을 위해 수행하는 SQL을 상기 SQL 저장부에 분류 저장하고, 연속 수행되는 SQL의 순서와 상기 시퀀스 저장부의 시퀀스 정보를 비교하여 대응되는 데이터베이스 툴을 식별하는 DB툴 식별부를 포함하는 것을 특징으로 하는 데이터베이스 툴 식별 장치.
  2. 청구항 1에 있어서, 상기 DB툴 식별부는
    상기 수행되는 SQL을 해쉬값으로 변환하고 상기 해쉬값에 식별자 정보를 부여하여 상기 SQL 저장부에 저장하거나 동일한 정보가 있을 경우 저장하지 않고 그 식별자 정보만 획득하는 SQL 해쉬부와;
    상기 SQL 해쉬부가 상기 수행되는 SQL에 따라 제공하는 식별자 정보의 순서를 상기 시퀀스 저장부에 기 저장된 식별자 정보 순서 별 데이터베이스 툴 정보와 비교하여 대응하는 데이터베이스 툴 정보를 식별 정보로 획득하는 툴 식별부를 포함하는 것을 특징으로 하는 데이터베이스 툴 식별 장치.
  3. 청구항 2에 있어서, 상기 SQL 해쉬부는 상기 SQL에 대한 해쉬값의 길이 정보를 더 산출하여 상기 SQL 저장부에 저장 시 상기 길이 정보를 더 저장하거나 동일 정보 확인 시 더 이용하는 것을 특징으로 하는 데이터베이스 툴 식별 장치.
  4. 청구항 2에 있어서, 상기 툴 식별부는 상기 시퀀스 저장부에 대응하는 시퀀스가 없을 경우 새로운 시퀀스로 등록하고 대응 데이터베이스 툴 정보를 요청 및 획득하여 저장하는 것을 특징으로 하는 데이터베이스 툴 식별 장치.
  5. 청구항 2에 있어서, 상기 SQL 해쉬부는 수행되는 SQL에서 블랭크, 상수, 코멘트 중 적어도 하나 이상을 제거한 전처리를 실시한 후 해쉬값을 얻는 것을 특징으로 하는 데이터베이스 툴 식별 장치.
  6. 청구항 1에 있어서, 상기 데이터베이스 툴 식별 장치는 SQL을 감시하는 임의의 보안 모듈이나 DBMS에 추가 구성되는 것을 특징으로 하는 데이터베이스 툴 식별 장치.
  7. 데이터베이스 관리 시스템(DBMS)과 클라이언트 단말기 사이에 구성되어 상기 클라이언트 단말기에 설치된 데이터베이스 툴이 상기 DBMS에 접속하기 위한 세션 연결 설정 시 상기 데이터베이스 툴을 식별하는 장치로서,
    SQL 해쉬값을 기준으로 하는 순서 패턴과 데이터베이스 툴 정보가 대응 저장된 테이블과;
    상기 데이터베이스 툴이 수행하는 SQL을 해쉬값으로 변환하면서 그 순서 패턴을 기억한 후 상기 테이블의 순서 패턴과 비교하여 대응 데이터베이스 툴 정보를 획득하는 식별부를 포함하는 것을 특징으로 하는 데이터베이스 툴 식별 장치.
  8. 청구항 7에 있어서, 상기 테이블의 순서 패턴은 SQL 해쉬값 및 길이 정보를 기준으로 구성되며, 상기 식별부는 SQL 해쉬값 및 그 길이 정보를 산출하여 순서 패턴을 기억하는 것을 특징으로 하는 데이터베이스 툴 식별 장치.
  9. 청구항 7에 있어서, 상기 테이블과 상기 식별부는 상기 SQL 해쉬값에 대응하는 식별자 정보를 해쉬값 대신 이용하는 것을 특징으로 하는 데이터베이스 툴 식별 장치.
  10. 청구항 7에 있어서, 상기 식별부는 상기 데이터베이스 툴이 수행하는 SQL의 해쉬값이 상기 테이블에 존재하지 않을 경우 신규 등록하고, 상기 순서 패턴이 상기 테이블에 존재하지 않는 경우 해당 패턴에 대한 데이터베이스 툴 정보를 문의하여, 그 답변 및 그에 대한 순서 패턴을 상기 테이블에 신규 정보로 저장하는 것을 특징으로 하는 데이터베이스 툴 식별 장치.
  11. 청구항 7에 있어서, 상기 식별부는 상기 테이블에 대응되는 순서 패턴이 없는 경우 허용되지 않는 데이터베이스 툴임을 나타내는 정보를 출력하는 것을 특징으로 하는 데이터베이스 툴 식별 장치.
  12. 데이터베이스 관리 시스템(DBMS)과 클라이언트 단말기 사이에 구성된 데이터베이스 툴 식별 장치가 상기 클라이언트 단말기에 설치된 데이터베이스 툴을 식별하는 방법으로서,
    상기 클라이언트 단말기의 데이터베이스 툴이 상기 데이터베이스 관리 시스템과 세션 연결 설정을 위해 수행하는 SQL을 획득하여 해쉬값 및 그 길이를 연산하 는 해쉬값 산출 단계와;
    상기 해쉬값 산출 단계에서 산출된 해쉬값과 길이를 기준으로 기 설정된 데이터베이스 툴별 세션 연결 설정용 SQL 시퀀스 정보로부터 대응되는 데이터베이스 툴을 식별하는 툴 식별 단계를 포함하는 것을 특징으로 하는 데이터베이스 툴 식별 방법.
  13. 청구항 12에 있어서, 상기 툴 식별 단계는
    상기 해쉬값 산출 단계를 통해 수집되는 SQL의 해쉬값 및 길이를 식별자에 대응시켜 중복되지 않도록 SQL 저장부에 저장하는 SQL 저장 단계와;
    상기 SQL 저장 단계에서 얻어지는 수집 SQL의 식별자를 이용하여 시퀀스 정보를 생성하고, 이를 외부에서 제공되는 데이터베이스 툴의 명칭에 대응시켜 시퀀스 저장부에 저장하거나, 상기 시퀀스 저장부에 기 저장된 시퀀스에 대응하는 데이터베이스 툴의 명칭을 식별하는 시퀀스 저장 및 식별 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 툴 식별 방법.
  14. 청구항 12에 있어서, 상기 툴 식별 단계는 상기 해쉬값 산출 단계에서 얻어진 해쉬값 및 길이나 그 값들의 시퀀스 정보가 기 설정된 데이터베이스 툴별 세션 연결 설정용 SQL 시퀀스 정보에 대응되지 않을 경우 허용되지 않는 데이터베이스 툴로 식별하는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 툴 식별 방법.
  15. 청구항 12에 있어서, 상기 해쉬값 산출 단계는 수행되는 SQL에서 블랭크, 상수, 코멘트 중 적어도 하나 이상을 제거한 전처리를 실시한 후 해쉬값을 산출하는 것을 특징으로 하는 데이터베이스 툴 식별 방법.
  16. 청구항 12에 있어서, 상기 데이터베이스 툴 식별 장치는 SQL을 감시하는 임의의 보안 모듈이나 DBMS에 추가 구성되는 것을 특징으로 하는 데이터베이스 툴 식별 방법.
KR1020090020934A 2009-03-11 2009-03-11 데이터베이스 툴 식별 장치 및 방법 KR100906449B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090020934A KR100906449B1 (ko) 2009-03-11 2009-03-11 데이터베이스 툴 식별 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090020934A KR100906449B1 (ko) 2009-03-11 2009-03-11 데이터베이스 툴 식별 장치 및 방법

Publications (1)

Publication Number Publication Date
KR100906449B1 true KR100906449B1 (ko) 2009-07-08

Family

ID=41337327

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090020934A KR100906449B1 (ko) 2009-03-11 2009-03-11 데이터베이스 툴 식별 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100906449B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077530A (zh) * 2013-03-27 2014-10-01 国际商业机器公司 用于评估数据访问语句的安全性的方法和装置
KR20210068832A (ko) * 2019-12-02 2021-06-10 주식회사 신시웨이 웹 기반 sql 툴을 이용한 접근 제어 시스템 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175697A (ja) * 1993-12-20 1995-07-14 Hitachi Ltd 異種データベース・アクセス・システム及びその制御方法
KR20010034514A (ko) * 1998-02-26 2001-04-25 케네쓰 올센 원격 메소드를 식별하는 해시 판정 방법 및 시스템
JP2003140922A (ja) 2001-11-05 2003-05-16 Nec Corp 異種データベースシステムsqlデバッグ方法及びそのシステム
KR20040027474A (ko) * 2003-11-10 2004-04-01 (주)오알솔루션즈코리아 네트워크 상에서 데이터베이스 시스템에 영향을 주지 않고데이터베이스 시스템의 접근을 통제하는 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175697A (ja) * 1993-12-20 1995-07-14 Hitachi Ltd 異種データベース・アクセス・システム及びその制御方法
KR20010034514A (ko) * 1998-02-26 2001-04-25 케네쓰 올센 원격 메소드를 식별하는 해시 판정 방법 및 시스템
JP2003140922A (ja) 2001-11-05 2003-05-16 Nec Corp 異種データベースシステムsqlデバッグ方法及びそのシステム
KR20040027474A (ko) * 2003-11-10 2004-04-01 (주)오알솔루션즈코리아 네트워크 상에서 데이터베이스 시스템에 영향을 주지 않고데이터베이스 시스템의 접근을 통제하는 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077530A (zh) * 2013-03-27 2014-10-01 国际商业机器公司 用于评估数据访问语句的安全性的方法和装置
US9680830B2 (en) 2013-03-27 2017-06-13 International Business Machines Corporation Evaluating security of data access statements
US10693877B2 (en) 2013-03-27 2020-06-23 International Business Machines Corporation Evaluating security of data access statements
US11228595B2 (en) 2013-03-27 2022-01-18 International Business Machines Corporation Evaluating security of data access statements
KR20210068832A (ko) * 2019-12-02 2021-06-10 주식회사 신시웨이 웹 기반 sql 툴을 이용한 접근 제어 시스템 및 방법
KR102284183B1 (ko) 2019-12-02 2021-07-30 주식회사 신시웨이 웹 기반 sql 툴을 이용한 접근 제어 시스템 및 방법

Similar Documents

Publication Publication Date Title
US20200092298A1 (en) Avoiding user session misclassification using configuration and activity fingerprints
US11552951B2 (en) Processing changes to authorized keys
CN106209488B (zh) 用于检测网站攻击的方法和设备
CN107733863B (zh) 一种分布式hadoop环境下的日志调试方法和装置
CN104717085B (zh) 一种日志解析方法及装置
US10362052B2 (en) Generating a virtual database to test data security of a real database
CN110062380A (zh) 一种移动应用系统的连接访问请求安全检测方法
US20130080466A1 (en) Query servicing with access path security in a relational database management system
WO2020155508A1 (zh) 可疑用户筛选方法、装置、计算机设备及存储介质
KR101764674B1 (ko) 침해 자원에 대한 그래프 데이터베이스 생성 방법 및 그 장치
US11178160B2 (en) Detecting and mitigating leaked cloud authorization keys
JP6655731B2 (ja) システム環境及びユーザ行動分析基盤の自己防御保安装置とその作動方法
CN112417492A (zh) 基于数据分类分级的服务提供方法
CN114915479A (zh) 一种基于Web日志的Web攻击阶段分析方法及系统
US11416631B2 (en) Dynamic monitoring of movement of data
CN111209586A (zh) 一种文档管理系统及方法
WO2023093638A1 (zh) 异常数据识别方法、装置、设备和存储介质
CN113111951A (zh) 数据处理方法以及装置
CN108154024B (zh) 一种数据检索方法、装置及电子设备
KR100906449B1 (ko) 데이터베이스 툴 식별 장치 및 방법
KR101942576B1 (ko) 개인 정보 보호 제품 통합 분석 감사 시스템
KR20210110765A (ko) 인공지능 기반 빅데이터 비식별화 솔루션 제공방법
CN115174205B (zh) 一种网络空间安全实时监测方法、系统及计算机存储介质
CN111209284B (zh) 基于元数据的分表方法及装置
KR102022984B1 (ko) 웹 기반의 sso 서비스 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130626

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140630

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150616

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160328

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170529

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180530

Year of fee payment: 10