KR20180109823A - 시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 장치와 이의 작동 방법 - Google Patents

시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 장치와 이의 작동 방법 Download PDF

Info

Publication number
KR20180109823A
KR20180109823A KR1020180116965A KR20180116965A KR20180109823A KR 20180109823 A KR20180109823 A KR 20180109823A KR 1020180116965 A KR1020180116965 A KR 1020180116965A KR 20180116965 A KR20180116965 A KR 20180116965A KR 20180109823 A KR20180109823 A KR 20180109823A
Authority
KR
South Korea
Prior art keywords
database
client
security
command
database system
Prior art date
Application number
KR1020180116965A
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 KR1020180116965A priority Critical patent/KR20180109823A/ko
Publication of KR20180109823A publication Critical patent/KR20180109823A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • 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
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/316User authentication by observing the pattern of computer usage, e.g. typical user behaviour
    • 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
    • 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)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Social Psychology (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 보안 강화를 위해 시스템의 상황과 사용자의 패턴에 기초하여 사용자가 요청한 명령에 대한 분석을 수행하는 데이터베이스 보안 장치의 작동 방법에 관한 것으로, 데이터 베이스 시스템에서 관리되는 데이터 베이스와 관련된 명령을 클라이언트로부터 수신하는 단계와, 상기 데이터 베이스 시스템의 서비스 상태이 개발 상태 또는 실제 서비스 상태에 있는지를 확인하는 단계와, 상기 확인 결과에 따라 상기 데이터 베이스 시스템에 관한 보안 정책을 변경하는 단계와, 상기 클라이언트로부터 전송된 상기 명령이 상기 변경된 보안 정책을 만족하는지를 판단하는 단계와, 상기 판단 결과에 따라 상기 명령의 실행 여부에 대한 확인을 관리자 클라이언트로 요청하는 단계를 포함할 수 있다.

Description

시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 장치와 이의 작동 방법{SELF DEFENSE SECURITY APPARATUS WITH BEHAVIOR AND ENVIRONMENT ANALYSIS AND OPERATING METHOD THEREOF}
본 발명의 개념에 따른 실시 예는 데이터베이스 보안 장치와 이의 작동 방법에 관한 것으로, 특히 보안 강화를 위해 시스템의 상황과 사용자의 패턴에 기초하여 사용자가 요청한 명령에 대한 사전 분석을 수행하는 데이터베이스 보안 장치와 이의 작동 방법에 관한 것이다.
정보의 집적도가 날로 고도화되는 추세에 따라 기업 내에 존재하는 데이터베이스에 축적된 정보의 양도 이에 비례하여 증가하고 있다. 이에 따라 각종 해킹이나 사용자 등의 부주의로 인하여 데이터베이스에 저장된 데이터가 소실 또는 변경되거나 외부로 유출되는 보안 사고가 빈번히 발생하고 있다.
특히, 실제 최근 일어난 보안 사고, 예컨대, 관리자가 실수로 요청한 데이터 삭제 명령이 실행됨으로써 일정 기간 동안의 사용자 거래 정보가 모두 소실되어 은행 업무가 중단된 사례나, 한밤중에 수 차례에 걸친 사용자의 비정상적인 계좌 이체 명령이 실행됨으로써 수 억원에 이르는 자금이 계좌에서 빠져나간 사례 등을 살펴보면, 보안 사고의 대부분이 사용자 또는 관리자가 요청한 명령을 아무런 분석 없이 그대로 실행함으로써 발생되고 있음을 볼 수 있다.
따라서, 사용자 또는 관리자가 요청한 명령에 대한 실행에 앞서 다각적인 분석을 시도하고, 분석 결과에 따라 적절한 대응을 할 수 있는 보안 기술이 시급히 마련될 필요가 있다.
1. 공개특허 10-2014-0011032 (공개일자 2014년 01월 28일) 2. 등록특허 10-1143998 (등록일자 2012년 05월 02일)
본 발명이 이루고자 하는 기술적 과제는 시스템의 상황과 사용자 패턴에 기초하여 사용자 또는 관리자가 요청한 명령에 대한 사전 분석을 수행함으로써 보안을 강화시킨 데이터베이스 보안 장치와 이의 작동 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 보안 장치의 작동 방법은, 데이터 베이스 시스템에서 관리되는 데이터 베이스와 관련된 명령을 클라이언트로부터 수신하는 단계와, 상기 데이터 베이스 시스템의 서비스 상태를 확인하는 단계와, 상기 확인 결과에 따라 상기 데이터 베이스 시스템에 관한 보안 정책을 변경하는 단계와, 상기 클라이언트로부터 전송된 상기 명령이 상기 변경된 보안 정책을 만족하는지를 판단하는 단계와, 상기 판단 결과에 따라 상기 명령의 실행 여부에 대한 확인 요청을 관리자 클라이언트로 전송하는 단계를 포함할 수 있다.
상기 서비스 상태는 설정된 조건에 따라 적어도 2 이상의 상태들로 구분되고, 각각의 상태에서 서로 다른 보안 정책이 적용될 수 있다.
상기 실제 서비스 상태에 있는지 여부는 상기 데이터 베이스 시스템의 서비스 상태를 나타내는 상태 플래그를 참조하여 확인할 수 있다.
상기 실제 서비스 상태에 있는지 여부는 상기 데이터베이스에 저장된 누적 데이터 정보, 상기 데이터베이스에 대한 로그 정보, 및 상기 데이터베이스 시스템에 대한 요청 상태 중에서 적어도 하나에 기초하여 확인할 수 있다.
상기 보안 정책은, 상기 클라이언트가 상기 데이터베이스와 관련된 명령들 중에서 일부 명령을 사용할 수 없도록 변경될 수 있다.
상기 명령이 기준 데이터 양을 초과하는 데이터의 삭제, 변경 또는 조회를 요청할 때, 상기 명령은 상기 변경된 보안 정책을 만족하지 못한 것으로 판단하는 보안 장치의 작동 방법.
상기 보안 장치의 작동 방법은 상기 클라이언트의 상기 데이터 베이스 시스템에 대한 접속 및 액세스를 모니터링 하고, 상기 모니터링을 통해 획득된 정보에 관한 로그를 생성하여 저장하는 단계와, 상기 로그에 기초하여 상기 클라이언트의 행동 패턴을 분석하는 단계와, 상기 클라이언트로부터 전송된 상기 명령이 상기 클라이언트의 행동 패턴과 매칭되는지를 판단하는 단계를 더 포함할 수 있다.
상기 로그는 접속 IP 정보, 사용자 ID 정보, 단말기 정보, 애플리케이션 정보, 시간 정보, 쿼리 정보, 및 명령 정보 중에서 적어도 하나를 포함할 수 있다.
상기 보안 장치의 작동 방법은 상기 명령이 상기 클라이언트의 행동 패턴과 매칭되지 않을 때, 상기 클라이언트의 접속을 강제 종료시키는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 데이터베이스 보안 장치는, 데이터 베이스 시스템에서 관리되는 데이터 베이스와 관련된 명령을 클라이언트로부터 수신하는 통신 모듈과, 상기 데이터 베이스 시스템의 서비스 상태를 확인하는 서비스 상태 분석 모듈과, 상기 확인 결과에 따라 상기 데이터 베이스 시스템에 관한 보안 정책을 변경하는 보안정책 관리 모듈과, 상기 클라이언트로부터 전송된 상기 명령이 상기 변경된 보안 정책을 만족하는지를 판단하는 제어 모듈과, 상기 판단 결과에 따라 상기 명령의 실행 여부에 대한 확인 요청을 관리자 클라이언트로 전송하는 관리자 알림 모듈을 포함할 수 있다.
상기 데이터베이스 보안 장치는 상기 클라이언트의 상기 데이터 베이스 시스템에 대한 접속 및 액세스를 모니터링 하고, 상기 모니터링을 통해 획득된 정보에 관한 로그를 생성하여 저장하는 로그 생성 모듈과, 상기 로그에 기초하여 상기 클라이언트의 행동 패턴을 분석하는 사용자 행동 분석 모듈을 더 포함할 수 있고, 상기 제어 모듈은 상기 클라이언트로부터 전송된 상기 명령이 상기 클라이언트의 행동 패턴과 매칭되는지를 판단할 수 있다.
본 발명의 실시 예에 따른 데이터베이스 보안 방법은 데이터베이스 시스템의 서비스 진행 상태에 따라 보안정책을 변경하여 적용함으로써, 각각의 상태에서 최적화된 보안을 제공할 수 있는 효과가 있다.
또한, 본 발명의 실시 예에 따른 데이터베이스 보안 방법은 사용자의 행동 패턴에 기초하여 명령을 분석함으로써, 해킹 등에 의한 비정상적인 명령에 대한 실행을 원천적으로 차단하고 보안을 보다 강화할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터베이스 보안 시스템의 개략적인 구성을 나타내는 블록도이다.
도 2는 본 발명의 실시 예에 따른 보안 서버의 구체적인 구성을 나타내는 블록도이다.
도 3은 본 발명의 실시 예들에 따른 보안 서버의 작동 방법을 나타내는 플로우 차트이다.
도 4는 본 발명의 실시 예들에 따른 보안 서버의 작동 방법을 나타내는 플로우 차트이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 명세서에서의 모듈(module)이라 함은 본 명세서에서 설명되는 각각의 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정한 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 특정한 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예컨대 프로세서를 의미할 수 있다. 다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 데이터베이스 보안 시스템의 개략적인 구성을 나타내는 블록도이다.
도 1을 참조하면, 데이터베이스 보안 시스템(10)은 클라이언트(100), 보안 서버(200), 데이터베이스 시스템(300), 및 관리자 클라이언트(400)를 포함할 수 있다. 또한, 데이터베이스 시스템(300)은 데이터베이스 서버(310)와 데이터베이스(320)를 포함할 수 있다.
클라이언트(100)는 네트워크를 통해 보안 서버(200)와 접속하여 데이터베이스 시스템(300)에서 제공하는 서비스를 요청하고, 서비스 결과를 수신할 수 있다. 예컨대, 클라이언트(100)는 데이터베이스 서버(310)에 접속을 위한 요청 및 데이터베이스(320)에 액세스하기 위한 다양한 명령 또는 쿼리(query)를 보안 서버(200)로 전송할 수 있다.
클라이언트(100)는 사용자가 보안 서버(200)에 접속했을 때, 상기 사용자를 지칭할 수 있고, 상기 사용자의 컴퓨터를 가리킬 수 있고, 또한 상기 사용자의 컴퓨터에서 동작하는 프로그램을 의미할 수 있다.
클라이언트(100)가 상기 사용자의 컴퓨터를 가리킬 때, 상기 컴퓨터는 PC(personal computer), 휴대용 전자 장치(또는 모바일 기기)로 구현될 수 있다. 상기 휴대용 전자 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID)), 웨어러블 장치(또는 웨어러블 컴퓨터), 사물 인터넷(internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 또는 e-북(e-book)으로 구현될 수 있다.
비록 도 1에서는 네트워크를 통해 보안 서버(200)와 접속하는 하나의 클라이언트(100)만을 도시하고 있으나, 데이터베이스 보안 시스템(10)이 복수의 클라이언트들로 구성될 수 있음은 물론이다.
보안 서버(200)는 데이터베이스 시스템(300)의 상황 분석과 클라이언트(100)의 행동 분석에 기초하여, 클라이언트(100)가 데이터베이스(320)에 액세스하는 모든 작동에 대한 보안 기능을 수행할 수 있다.
보안 서버(200)는 데이터베이스 시스템(300)의 서비스 상태에 따라 보안 정책을 변경하고, 변경된 보안 정책에 기초하여 데이터베이스 시스템(300)에 대한 보안을 수행할 수 있다.
실시 예들에 따라, 보안 서버(200)는 설정된 조건에 따라 데이터베이스 시스템(300)의 서비스 상태를 2 이상의 상태들로 구분하고, 각각의 상태에서 서로 다른 보안 정책을 설정할 수 있다.
예컨대, 보안 서버(200)는 데이터베이스 시스템(300)의 서비스 상태를 서비스 개시 시점을 기준으로 개발 상태와 실제 서비스 상태로 구분할 수 있다. 또한, 보안 서버(200)는 데이터 베이스에 축적된 데이터의 양이나 중요도에 따른 보안 등급, 또는 클라이언트(100)의 접속 횟수 등의 이용 상황을 기준으로 제1서비스 상태 내지 제N서비스 상태로 구분할 수 있다. 여기서, N은 2보다 큰 자연수를 의미한다.
이하의 명세서에서는 설명의 편의를 위해 서비스 상태가 "개발 및 테스트 상태"와 "실제 서비스 상태"로 구분됨을 가정하여 설명될 것이나, 앞서 설명된 바와 같이 본 발명의 기술적 사상이 이에 한정되는 것은 아니다.
개발 및 테스트 상태에서는 클라이언트(100)에게 데이터베이스(320) 액세스와 관련된 모든 명령(또는 쿼리)을 허용할 수 있으나, 실제 서비스 상태에서는 데이터 전체 삭제 또는 데이터 전체 조회 등의 일부 명령에 대한 사용을 제한할 수 있다.
보안 서버(200)는 클라이언트(100)로부터 전송된 명령이 현재 적용되는 보안 정책을 만족하지 못한 것으로 판단하면, 해당 명령에 대한 실행 여부에 대하여 관리자 클라이언트(400)로 확인을 요청할 수 있고, 관리자 클라이언트(400)의 확인 응답에 따라 상기 명령을 데이터베이스 서버(310)로 전송하거나 상기 명령을 삭제할 수 있다.
보안 서버(200)는 클라이언트(100)의 데이터 베이스 시스템에 대한 접속 및 액세스 정보와 관련된 로그를 생성하여 저장하고, 상기 로그에 기초하여 클라이언트(100)의 행동 패턴을 분석하고, 클라이언트(100)로부터 전송된 명령이 분석된 행동 패턴과 매칭되는지를 판단할 수 있다.
보안 서버(200)는 클라이언트(100)로부터 전송된 명령과 클라이언트(100)의 행동 패턴이 매칭되지 않는 것으로 판단하면, 판단 결과를 관리자 클라이언트(400)로 전송하여 실행 여부를 확인하거나 클라이언트(100)의 접속을 강제로 종료시킬 수 있다.
데이터베이스 시스템(300)은, 데이터베이스 관리 프로그램(database management system(DBMS))이 구비된 데이터베이스 서버(310)의 제어에 따라, 서비스 제공에 필요한 데이터를 데이터베이스(320)에 저장 관리하며, 보안 서버(200)를 통해 클라이언트(100)로부터 요청된 작업을 수행하고 그 결과를 클라이언트(100)로 제공할 수 있다.
데이터베이스 시스템(300)은 관계형 데이터베이스 시스템일 수 있으며, 클라이언트(100)와의 인터페이스를 위한 표준 언어로써 SQL(structured query language)를 사용할 수 있다.
관리자 클라이언트(400)는 보안 서버(200)에 접속하여 데이터베이스 시스템(300)에 대한 복수의 보안 정책들을 제공하고, 상기 복수의 보안 정책들 중에서 데이터베이스 시스템(300)의 서비스 진행 정도를 따라 적용될 보안 정책을 선택할 수 있다.
관리자 클라이언트(400)는 클라이언트(100)의 보안 정책 위반과 관련된 확인 요청을 보안 서버(200)로부터 수신하고, 상기 확인 요청에 대한 응답 메시지를 보안 서버(200)로 전송할 수 있다.
도 2는 본 발명의 실시 예에 따른 보안 서버의 구체적인 구성을 나타내는 블록도이다.
도 1과 도 2를 참조하면, 보안 서버(200)는 제어 모듈(210), 통신 모듈(220), 서비스 상태 분석 모듈(230), 보안정책 관리 모듈(240), 관리자 알림 모듈(250), 로그 생성 모듈(260), 및 사용자 행동 분석 모듈(270)을 포함할 수 있다.
또한, 보안 서버(200)는 데이터 저장을 위한 메모리(235), 보안정책 DB(245), 및 로그 DB(265)를 포함할 수 있다.
제어 모듈(210)은 통신 모듈(220), 서비스 상태 분석 모듈(230), 보안정책 관리 모듈(240), 관리자 알림 모듈(250), 로그 생성 모듈(260), 및 사용자 행동 분석 모듈(270) 중에서 적어도 하나를 제어함으로써, 보안 서버(200)의 전반적인 작동을 제어할 수 있다.
제어 모듈(210)은 클라이언트(100)로부터 수신된 명령이 현재 적용 중인 보안 정책을 만족하는지를 판단할 수 있다. 판단 결과 상기 명령이 보안 정책을 만족하지 못한 경우, 제어 모듈(210)은 상기 명령을 삭제하거나 상기 명령이 보안 정책에 위배됨을 나타내는 지시 신호를 관리자 알림 모듈(250)로 제공할 수 있다.
관리자 알림 모듈(250)은, 제어 모듈(210)로부터 수신된 지시 신호에 따라, 다양한 표출 수단(예컨대, 화면 표출, 메신저, SMS, 또는 메일 등)을 통해 관리자 클라이언트(400)에게 상기 명령에 대한 실행 여부에 관한 확인을 요청할 수 있다.
통신 모듈(220)은 클라이언트(100)로부터 데이터베이스 서버(310)에 대한 접속 요청 및 데이터베이스(320)에 대한 액세스 요청(예컨대, 명령 또는 쿼리)을 수신하여 데이터베이스 서버(310)로 전송하고, 데이터베이스 서버(310)로부터 상기 요청들에 대한 응답들을 수신하여 클라이언트(100)로 전송할 수 있다. 또한, 통신 모듈(220)은 클라이언트(100)와 데이터베이스 서버(310)의 접속을 강제로 종료시킬 수 있다.
서비스 상태 분석 모듈(230)은 데이터베이스 시스템(300)의 서비스 진행 상태, 예컨대 데이터베이스 시스템(300)이 현재 개발 및 테스트 상태에 있는지 아니면 실제 서비스 상태에 있는지를 판단할 수 있다.
실시 예들에 따라, 데이터베이스 시스템(300)의 서비스 진행 상태를 나타내는 정보는 메모리(235)에 저장될 수 있으며, 서비스 상태 분석 모듈(230)은 메모리(235)를 참조하여 판단할 수 있다.
데이터베이스 시스템(300)의 서비스 진행 상태는 관리자 클라이언트(400)로부터 제공된 지시 신호에 의해 설정될 수 있다. 예컨대, 관리자는, 개발 및 테스트 상태에서 보안 서버(200) 내의 메모리(235)에 저장된 상태 플래그를 로직 "0"으로 설정할 수 있고, 실제 서비스 단계에서 상기 상태 플래그를 로직 "1"로 설정할 수 있다.
메모리(235)는 레지스터, DRAM(dynamic random access memory), SRAM (static random access memory) 등의 휘발성 메모리 및/또는 플래시 기반 메모리 등의 불휘발성 메모리로 구현될 수 있다.
실시 예들에 따라, 데이터베이스 시스템(300)의 서비스 진행 상태는 데이터베이스(320)에 저장된 데이터의 양, 데이터베이스(300)에 대한 로그 정보, 및 데이터베이스 시스템에 대한 현재 요청 상태 중에서 적어도 하나로부터 판단될 수 있다.
예컨대, 서비스 상태 분석 모듈(230)은 데이터 베이스(320)에 저장된 데이터의 양이 기준 값을 초과한 경우, 현재 데이터베이스 시스템(300)이 실제 서비스 상태에 있는 것으로 판단할 수 있다. 또한, 서비스 상태 분석 모듈(230)은 클라이언트(100)의 데이터베이스 서버(310)에 대한 접속 및 데이터베이스(300)에 대한 액세스 횟수를 기준 값과 비교하여 데이터베이스 시스템(300)이 현재 실제 서비스 상태에 있는지 여부를 판단할 수 있다.
즉, 서비스 상태 분석 모듈(230)은 메모리(235)에 저장된 상태 플래그를 확인하는 것 외에 데이터베이스(320)에 저장된 데이터의 양 등을 기초로 데이터베이스 시스템(300)의 서비스 진행 상태를 판단할 수 있으므로, 해킹에 의해 상태 플래그가 변경된 경우에도 서비스 진행 상태에 관한 정확한 정보를 제공할 수 있게 된다.
보안정책 관리 모듈(240)은 서비스 상태 분석 모듈(230)에서 분석된 현재 데이터베이스 시스템(300)의 서비스 진행 상태에 따라 데이터베이스 시스템(300)에 관한 보안 정책을 변경하고, 변경된 보안 정책을 제어 모듈(210)로 제공할 수 있다.
예컨대, 데이터베이스 시스템(300)이 개발 및 테스트 상태에 있을 때 보안정책 관리 모듈(240)은 데이터베이스 시스템(300)에 관한 제1보안 정책을 적용할 수 있고, 데이터베이스 시스템(300)이 실제 서비스 상태에 있을 때. 데이터베이스 시스템(300)에 관한 제2보안 정책을 적용할 수 있다.
상기 제1보안 정책과 상기 제2보안 정책은 보안정책 DB(245)에 저장될 수 있고, 서로 다른 정책을 포함할 수 있다.
실시 예에 따라, 상기 제2보안 정책은, 제1보안 정책과 달리, 클라이언트(100)에게 데이터베이스(320) 액세스와 관련된 명령(또는 쿼리)들 중에서 일부 명령에 대한 사용을 제한하는 정책과, 사용자 행동 패턴과 매칭되지 않는 사용자에 대한 데이터베이스 서버(310)의 접근을 제한하는 정책을 포함할 수 있다.
상기 데이터베이스(320) 액세스와 관련된 명령은 데이터 처리와 관련하여 레코드에 새로운 행을 추가(INSERT), 변경(UPDATE), 삭제(DELETE)하는데 사용되는 DML(data manipulation language), 데이터 정의와 관련하여 테이블이나 유저를 생성(CREATE) 및 삭제(DROP)하는데 사용되는 DDL(data definition language), 데이터 제어와 관련하여 유저를 생성한 뒤 권한을 부여(GRANT)하는데 사용되는 DCL(data control language), 및 데이터 조회와 관련하여 레코드가 가진 값을 획득하는데 사용되는 쿼리(query) 등의 명령어를 포함할 수 있다.
이 경우, 제2보안 정책은 상기 명령어들 가운데 데이터베이스(320)에 저장된 데이터의 삭제와 관련된 명령어(예컨대, DELETE, DROP 등)에 대한 사용을 제한할 수 있다.
또한, 제2보안 정책은 기준 데이터 량을 초과하여 데이터 삭제, 변경 또는 조회를 요청하는 명령에 대한 사용을 제한할 수 있다.
로그 생성 모듈(260)은 클라이언트(100)의 데이터베이스 시스템(300)에 대한 접속 및 액세스 모니터링하고, 모니터링을 통해 획득한 정보와 관련된 로그를 생성하고, 생성된 로그를 로그 DB(265)에 저장 관리할 수 있다.
로그 DB(265)는 접속 IP 정보, 사용자 ID 정보, 단말기 정보, 애플리케이션 정보, 시간 정보, 쿼리 정보, 및 명령 정보 중에서 적어도 하나를 포함할 수 있다.
로그 생성 모듈(260)은 로그 DB(265)에서 특정 ID를 사용하는 사용자에 대한 접속 IP, 접속 시간대, 단말기 이름, 및 요청한 명령 등에 대한 정보를 검색할 수 있고, 검색된 정보들을 사용자 행동 분석 모듈(270)로 제공할 수 있다.
사용자 행동 분석 모듈(270)은 로그 생성 모듈(260)로부터 제공된 클라이언트(100)에 관한 로그 정보에 기초하여, 클라이언트(100)의 행동 패턴을 분석할 수 있고, 분석된 클라이언트(100)의 행동 패턴을 제어 모듈(210)로 제공할 수 있다.
도 3은 본 발명의 실시 예들에 따른 보안 서버의 작동 방법을 나타내는 플로우 차트이다.
도 1 내지 도 3을 참조하면, 보안 서버(200)는 네트워크를 통해 접속된 클라이언트(100)로부터 데이터베이스(320)와 관련된 명령을 수신할 수 있다(S110).
보안 서버(200)는 상기 명령을 데이터베이스 서버(310)로 전송하기에 앞서 데이터베이스 시스템(300)의 상황을 분석하고, 이에 따라 상기 명령에 대한 실행 가부를 결정하는 일련의 보안 과정을 거칠 수 있다.
먼저, 보안 서버(200)는 데이터베이스 시스템(300)서비스 상태를 확인할 수 있다(S120). 예컨대, 상기 서비스 상태는 개발 상태와 실제 서비스 상태로 구분될 수 있다.
단계 S120에서의 상기 확인을 위해, 보안 서버(200)는 보안 서버 내에 저장된 상태 플래그를 참조할 수 있다. 상기 상태 플래그는 데이터베이스 시스템(300)의 서비스 진행 정도에 따른 상태를 표시한 것으로, 상기 개발 상태에서 로직 "0"으로 설정될 수 있고, 상기 실제 서비스 상태에서 로직 "1"로 설정될 수 있다.
또한, 단계 S120에서의 상기 확인을 위해, 보안 서버(200)는 데이터베이스(320)에 저장된 데이터의 양, 데이터베이스(300)에 대한 로그 정보, 및/또는 데이터베이스 시스템에 대한 요청 상태를 참조할 수 있다.
단계 S120에서 확인한 결과 데이터베이스 시스템(300)이 개발 상태에서 실제 서비스 상태로 변경된 것으로 확인한 경우, 보안 서버(200)는 상기 데이터베이스 시스템(300)에 관한 보안 정책을 변경할 수 있다(S130).
즉, 상기 실제 서비스 상태에서의 보안 정책은, 상기 개발 생태에서의 보안 정책과는 다른 것으로, 데이터베이스(320)와 관련된 명령들 중에서 상기 개발 상태에서 사용 가능했던 일부 명령에 대하여 클라이언트(100)의 사용을 제한할 수 있다. 여기서, 상기 일부 명령은 데이터 전체 삭제 명령 또는 데이터 전체 조회 명령 등과 같이 데이터베이스(320)에 저장된 대량의 데이터를 삭제하거나 유출할 수 있는 명령들을 포함할 수 있다.
단계 S130에서 데이터베이스 시스템(300)에 관한 보안 정책이 변경된 후, 보안 서버(200)는 클라이언트(100)로부터 수신된 상기 명령이 상기 변경된 보안 정책을 만족하는지를 판단할 수 있다(S140).
단계 S140에서 판단한 결과, 클라이언트(100)로부터 수신된 상기 명령이 상기 변경된 보안 정책을 만족하지 못하는 경우, 보안 서버(200)는 상기 명령에 대한 실행 여부에 대한 확인을 관리자 클라이언트(400)로 요청할 수 있다(S150).
단계 S150에서의 확인 요청은 화면 표출, 메신저, SMS, 또는 메일을 통해 수행될 수 있고, 보안 서버(200)는 상기 확인 요청에 대한 응답을 관리자 클라이언트(400)로부터 수신하여 상기 명령을 처리할 수 있다(S160).
예컨대, 보안 서버(200)는 상기 명령의 실행 가능 응답에 따라 상기 명령을 데이터베이스 서버(310)로 전송하거나, 상기 명령의 실행 불가 응답에 따라 상기 명령을 삭제하고 상응하는 메시지를 클라이언트(100)로 전송할 수 있다.
도 4는 본 발명의 실시 예들에 따른 보안 서버의 작동 방법을 나타내는 플로우 차트이다.
도 1, 도 2, 및 도 4를 참조하면, 보안 서버(200)는 네트워크를 통해 접속된 클라이언트(100)로부터 데이터베이스(320)와 관련된 명령을 수신할 수 있다(S210).
보안 서버(200)는 상기 명령을 데이터베이스 서버(310)로 전송하기에 앞서 사용자의 행동을 분석하고, 이에 따라 상기 명령에 대한 실행 가부를 결정하는 일련의 보안 과정을 거칠 수 있다.
먼저, 보안 서버(200)는 클라이언트(100)의 데이터 베이스 시스템(300)에 대한 접속 및 액세스를 모니터링하고, 모니터링을 통해 획득된 정보에 관한 로그를 생성하여 저장할 수 있다(S220).
상기 로그는 접속 IP 정보, 사용자 ID 정보, 단말기 정보, 애플리케이션 정보, 시간 정보, 쿼리 정보, 및 명령 정보 중에서 적어도 하나를 포함할 수 있다.
보안 서버(200)는 단계 S230에서 생성된 상기 로그에 기초하여 클라이언트(100)의 행동 패턴을 분석할 수 있고, 클라이언트(100)로부터 수신된 명령이 분석된 클라이언트(100)의 행동 패턴과 매칭되는지를 판단할 수 있다(S230).
단계 S230에서의 판단 결과, 상기 명령이 상기 행동 패턴과 비교할 때 사소한 변동이 있는 경우(예컨대, 사용자가 종전과 다른 IP 또는 단말기를 통해 접속하여 명령을 전송한 경우), 보안 서버(200)는 그에 상응하는 알림 메시지만을 관리자 클라이언트(400)로 전송할 수 있다.
또한, 단계 S230에서의 판단 결과, 상기 명령이 상기 행동 패턴과 비교할 때 중대한 변동이 있는 경우(예컨대, 사용자가 1년 동안 근무시간에만 접속하다가 갑자기 밤 12시에 연속하여 접속하여 명령을 전송하거나, 자신의 은행 계좌에 있는 자금 전부에 대하여 이체를 요청하는 명령을 전송하거나, 전체 데이터에 대한 일괄 삭제를 요청하는 명령을 전송한 경우), 보안 서버(200)는 상기 명령을 삭제하고, 클라이언트(100)와 데이터베이스 서버(310) 사이의 접속을 강제로 차단할 수 있다(S240).
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 데이터베이스 보안 시스템
100 : 클라이언트
200 : 보안 서버
210 : 제어 모듈
220 : 통신 모듈
230 : 서비스 상태 분석 모듈
240 : 보안정책 관리 모듈
250 : 관리자 알림 모듈
260 : 로그 생성 모듈
270 : 사용자 행동 분석 모듈
300 : 데이터베이스 시스템
310 : 데이터베이스 서버
320 : 데이터베이스

Claims (1)

  1. 데이터베이스 시스템의 보안 관리를 위한 보안 장치의 작동 방법에 있어서,
    상기 데이터베이스 시스템에서 관리되는 데이터베이스와 관련된 명령을 클라이언트로부터 수신하는 단계;
    상기 데이터베이스 시스템의 서비스 상태를 확인하는 단계;
    상기 확인 결과에 따라 상기 데이터베이스 시스템에 관한 보안 정책을 변경하는 단계;
    상기 클라이언트로부터 전송된 상기 명령이 상기 변경된 보안 정책을 만족하는지를 판단하는 단계; 및
    상기 판단 결과에 따라 상기 명령의 실행 여부에 대한 확인 요청을 관리자 클라이언트로 전송하는 단계를 포함하고,
    상기 서비스 상태는 설정된 조건에 따라 적어도 2 이상의 상태들로 구분되고, 각각의 상태에서 서로 다른 보안 정책이 적용되고,
    상기 확인하는 단계는,
    상기 데이터 베이스 시스템의 서비스 상태를 나타내는 상태 플래그를 참조하여 확인하는 보안 장치의 작동 방법.
    제7항에 있어서,
    상기 로그는 접속 IP 정보, 사용자 ID 정보, 단말기 정보, 애플리케이션 정보, 시간 정보, 쿼리 정보, 및 명령 정보 중에서 적어도 하나를 포함하는 보안 서버의 작동 방법.

KR1020180116965A 2018-10-01 2018-10-01 시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 장치와 이의 작동 방법 KR20180109823A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180116965A KR20180109823A (ko) 2018-10-01 2018-10-01 시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 장치와 이의 작동 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180116965A KR20180109823A (ko) 2018-10-01 2018-10-01 시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 장치와 이의 작동 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020160011807A Division KR101905771B1 (ko) 2016-01-29 2016-01-29 시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 서버와 이의 작동 방법

Publications (1)

Publication Number Publication Date
KR20180109823A true KR20180109823A (ko) 2018-10-08

Family

ID=63864463

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180116965A KR20180109823A (ko) 2018-10-01 2018-10-01 시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 장치와 이의 작동 방법

Country Status (1)

Country Link
KR (1) KR20180109823A (ko)

Similar Documents

Publication Publication Date Title
US20200409804A1 (en) Systems and methods for monitoring distributed database deployments
KR101905771B1 (ko) 시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 서버와 이의 작동 방법
US20190073483A1 (en) Identifying sensitive data writes to data stores
CN107547548B (zh) 数据处理方法及系统
US20060206937A1 (en) Restricting recordal of user activity in a processing system
US11379601B2 (en) Detection of sensitive database information
CN103679031A (zh) 一种文件病毒免疫的方法和装置
US10735375B2 (en) Web application security with service worker
CN106095500A (zh) 一种软件自动更新的方法及系统
CN111416811A (zh) 越权漏洞检测方法、系统、设备及存储介质
US20190026163A1 (en) Intelligent Business Logging for Cloud Applications
US20200250587A1 (en) Framework for multi-tenant data science experiments at-scale
KR101620601B1 (ko) 보안성 진단 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체
EP2674868A1 (en) Database update notification method
CN115828256B (zh) 一种越权与未授权逻辑漏洞检测方法
US20140188938A1 (en) Conditional Role Activation in a Database
KR20180109823A (ko) 시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 장치와 이의 작동 방법
KR101318234B1 (ko) 데이터베이스 시스템을 위한 데이터 캐시 방법 및 장치
CN112835762B (zh) 数据处理方法和装置、存储介质和电子设备
US11550692B2 (en) Integrated event processing and policy enforcement
CN114968552A (zh) 缓存分配方法、装置、设备、存储介质和程序产品
CN113660277B (zh) 一种基于复用埋点信息的反爬虫方法及处理终端
CN117633319B (zh) 数据库自动化响应方法、装置、计算机设备及存储介质
JP7255681B2 (ja) 実行制御システム、実行制御方法、及びプログラム
US20220237482A1 (en) Feature randomization for securing machine learning models

Legal Events

Date Code Title Description
A107 Divisional application of patent