KR102657160B1 - 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체 - Google Patents

데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체 Download PDF

Info

Publication number
KR102657160B1
KR102657160B1 KR1020230086383A KR20230086383A KR102657160B1 KR 102657160 B1 KR102657160 B1 KR 102657160B1 KR 1020230086383 A KR1020230086383 A KR 1020230086383A KR 20230086383 A KR20230086383 A KR 20230086383A KR 102657160 B1 KR102657160 B1 KR 102657160B1
Authority
KR
South Korea
Prior art keywords
data
data management
personal information
log
information
Prior art date
Application number
KR1020230086383A
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 KR1020230086383A priority Critical patent/KR102657160B1/ko
Application granted granted Critical
Publication of KR102657160B1 publication Critical patent/KR102657160B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 일 실시 예는 다수의 로그 데이터를 획득하는 단계; 상기 다수의 로그 데이터를 미리 정의된 제 2 크기의 블록(block) 단위로 압축하는 단계; 및 상기 압축된 블록을 포함하는 아카이빙 대상 세그먼트를 아카이브 저장소에 저장하는 단계를 포함하는, 데이터 관리 방법을 제공한다.

Description

데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체{DATA MANAGEMENT DEVICE, DATA MANAGEMENT METHOD AND A COMPUTER-READABLE STORAGE MEDIUM FOR STORING DATA MANAGEMENT PROGRAM}
본 발명은 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체에 관한 것이다.
로그 데이터는 다양한 소스로부터 발생하게 된다. 예를 들어, 시스템이나 애플리케이션의 동작을 모니터링 하기 위해 로그 데이터가 기록되며, 시스템의 보안 상태를 모니터링하고 사용자의 활동을 추적하기 위해 사용되며, 애플리케이션에서 발생하는 오류를 추적하고 디버깅하기 위해 로그 데이터가 사용된다.
한편, 로그 데이터를 확인할 필요가 있을 때, 대용량의 로그 데이터를 모두 압축 해제하여 처리하는 것은 비효율적이며 시간이 많이 소모된다. 따라서, 이러한 로그 데이터의 조회 시 효율적으로 로그 데이터를 처리하기 위한 다양한 방식에 대한 연구가 진행 중에 있으나 미흡한 실정이다.
따라서, 본 발명은 기존 기술의 문제점을 해결하기 위하여 로그 데이터의 DB 아카이빙을 수행하는 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체를 제공하고자 한다.
본 발명의 일 실시 예는 다수의 로그 데이터를 획득하는 단계; 상기 다수의 로그 데이터를 미리 정의된 제 2 크기의 블록(block) 단위로 압축하는 단계; 및 상기 압축된 블록을 포함하는 아카이빙 대상 세그먼트를 아카이브 저장소에 저장하는 단계;를 포함하는, 데이터 관리 방법을 제공한다.
상기 압축하는 단계는, 상기 다수의 로그 데이터를 미리 정의된 기간 단위의 세그먼트(segment)로 저장하는 단계; 상기 저장된 세그먼트를 미리 정의된 제 1 크기의 청크(chunk) 단위로 저장하는 단계; 및 상기 저장된 청크를 상기 미리 정의된 제 2 크기의 블록 단위로 압축하는 단계;를 포함하는 것을 특징으로 한다.
상기 저장하는 단계는, 상기 세그먼트가 저장된 시점부터의 경과 기간을 산출하는 단계; 상기 경과 기간이 미리 정해진 기간보다 큰 경우, 상기 세그먼트를 아카이빙 대상 세그먼트로 구분하는 단계; 상기 구분된 아카이빙 대상 세그먼트를 아카이브 저장소에 저장하는 단계; 및 상기 아카이빙 대상 세그먼트의 세그먼트 접근 정보를 생성하는 단계;를 포함하는 것을 특징으로 한다.
상기 데이터 관리 방법은, 상기 저장하는 단계 이후에, 사용자/클라이언트로부터 상기 다수의 로그 데이터 중 적어도 하나의 로그 데이터에 대한 로그 조회 요청을 수신함에 따라, 상기 아카이빙 대상 세그먼트의 세그먼트 조회 정보 및 상기 블록에 대한 블록 오프셋(offset) 정보에 기초하여, 상기 적어도 하나의 로그 데이터가 포함된 블록을 압축 해제하는 단계; 및 상기 압축 해제된 블록에 포함된 적어도 하나의 로그 데이터를 상기 사용자/클라이언트에게 송신하는 단계;를 더 포함하는 것을 특징으로 한다.
상기 압축 해제하는 단계는, 상기 사용자/클라이언트로부터 상기 다수의 로그 데이터 중 상기 적어도 하나의 로그 데이터에 대한 로그 조회 요청을 수신하는 단계; 상기 로그 조회 요청에 응답하여, 상기 적어도 하나의 로그 데이터에 대한 세그먼트 접근 정보에 기초하여, 상기 아카이브 저장소에 저장된 상기 적어도 하나의 로그 데이터가 포함된 아카이빙 대상 세그먼트를 결정하는 단계; 및 상기 블록에 대한 블록 오프셋 정보에 기초하여, 상기 아카이빙 대상 세그먼트 내에서 상기 적어도 하나의 로그 데이터가 포함된 블록을 압축 해제하는 단계;를 포함하는 것을 특징으로 한다.
본 발명의 일 실시 예는 데이터를 저장하는 데이터베이스; 및 상기 데이터를 처리하는 프로세서를 포함하고, 상기 프로세서는, 다수의 로그 데이터를 획득하고, 상기 다수의 로그 데이터를 미리 정의된 제 2 크기의 블록(block) 단위로 압축하고, 상기 압축된 블록을 포함하는 아카이빙 대상 세그먼트를 아카이브 저장소에 저장하는 데이터 관리 장치를 제공한다.
상기 프로세서는, 상기 다수의 로그 데이터를 미리 정의된 기간 단위의 세그먼트(segment)로 저장하고, 상기 저장된 세그먼트를 미리 정의된 제 1 크기의 청크(chunk) 단위로 저장하고, 상기 저장된 청크를 상기 미리 정의된 제 2 크기의 블록 단위로 압축 하는 것을 특징으로 한다.
상기 프로세서는, 상기 세그먼트가 저장된 시점부터의 경과 기간을 산출하고, 상기 경과 기간이 미리 정해진 기간보다 큰 경우, 상기 세그먼트를 아카이빙 대상 세그먼트로 구분하고, 상기 구분된 아카이빙 대상 세그먼트를 아카이브 저장소에 저장하고, 상기 아카이빙 대상 세그먼트의 세그먼트 접근 정보를 생성하는 것을 특징으로 한다.
상기 프로세서는, 사용자/클라이언트로부터 상기 다수의 로그 데이터 중 적어도 하나의 로그 데이터에 대한 로그 조회 요청을 수신함에 따라, 상기 아카이빙 대상 세그먼트의 세그먼트 조회 정보 및 상기 블록에 대한 블록 오프셋(offset) 정보에 기초하여, 상기 적어도 하나의 로그 데이터가 포함된 블록을 압축 해제하고, 상기 압축 해제된 블록에 포함된 적어도 하나의 로그 데이터를 상기 사용자/클라이언트에게 송신하는 것을 특징으로 한다.
상기 프로세서는, 상기 사용자/클라이언트로부터 상기 다수의 로그 데이터 중 상기 적어도 하나의 로그 데이터에 대한 로그 조회 요청을 수신하고, 상기 로그 조회 요청에 응답하여, 상기 적어도 하나의 로그 데이터에 대한 세그먼트 접근 정보에 기초하여, 상기 아카이브 저장소에 저장된 상기 적어도 하나의 로그 데이터가 포함된 아카이빙 대상 세그먼트를 결정하고, 상기 블록에 대한 블록 오프셋 정보에 기초하여, 상기 아카이빙 대상 세그먼트 내에서 상기 적어도 하나의 로그 데이터가 포함된 블록을 압축 해제 하는 것을 특징으로 한다.
본 발명의 일 실시 예는 다수의 로그 데이터를 획득하고, 상기 다수의 로그 데이터를 미리 정의된 제 2 크기의 블록(block) 단위로 압축하고, 상기 압축된 블록을 포함하는 아카이빙 대상 세그먼트를 아카이브 저장소에 저장하는 단계를 수행하는 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체를 제공한다.
본 발명의 일 실시 예에 따르면, 전체 압축된 로그 데이터 중 사용자/클라이언트로부터 요청 받은 적어도 하나의 로그 데이터가 포함된 블록만을 압축 해제할 수 있다.
또한, 본 발명의 일 실시 예에 따르면, 압축 정보 및 블록 오프셋 정보를 이용하여 전체 로그 데이터의 압축 해제 없이 조회 가능하도록 하여 익스포트/임포트 과정이 매우 단축될 수 있다.
도 1은 본 발명의 데이터 관리 장치를 설명하기 위한 하드웨어를 개시하는 도면이다.
도 2는 본 발명의 데이터 관리 장치의 일 실시 예를 개시하는 도면이다.
도 3은 본 발명의 데이터 관리 플랫폼의 일 실시 예를 개시하는 도면이다.
도 4는 본 발명의 데이터 관리 방법의 일 실시 예를 설명하는 플로우 차트이다.
도 5는 본 발명의 데이터 관리 방법의 일 실시 예를 개시하는 도면이다.
도 6은 본 발명의 패킷 수집 방법의 일 실시 예를 개시하는 도면이다.
도 7은 본 발명의 패킷 수집 방법의 다른 일 실시 예를 개시하는 도면이다.
도 8은 본 발명의 패킷 수집 방법에 따라 수집한 RFC 프로토콜 기반의 패킷 분석 데이터의 일 실시 예를 개시하는 도면이다.
도 9는 본 발명의 패킷 수집 방법에 따라 수집한 GUI 프로토콜 기반의 패킷 분석 장치의 일 실시 예를 개시하는 도면이다.
도 10은 본 발명의 패킷 수집 방법에 따라 수집한 GUI 프로토콜 기반의 패킷 분석 방법의 일 실시 예를 개시하는 도면이다.
도 11은 본 발명의 패킷 수집 방법에 따라 수집한 GUI 프로토콜 기반의 패킷 분석 데이터의 일 실시 예를 개시하는 도면이다.
도 12는 본 발명의 패킷 수집 방법에 따라 수집한 HTTP/HTTPS 기반의 패킷 분석 방법의 일 실시 예를 개시하는 도면이다.
도 13은 본 발명의 패킷 수집 방법에 따라 수집한 HTTP/HTTPS 기반의 패킷의 분석 데이터의 일 실시 예를 개시하는 도면이다.
도 14는 본 발명의 분석된 패킷에 포함된 데이터 중 개인정보를 추출하는 일 실시 예를 개시하는 도면이다.
도 15는 본 발명의 분석된 패킷에 포함된 데이터를 시각화한 일 실시 예를 개시하는 도면이다.
도 16은 본 발명의 분석된 패킷에 포함된 데이터를 검색하는 일 실시 예를 개시하는 도면이다.
도 17은 본 발명의 데이터 관리 방법에 따라 수집된 데이터를 모니터링하는 일 실시 예를 개시하는 도면이다.
도 18은 본 발명의 데이터 관리 플랫폼이 수집된 패킷을 분배하는 실시 예를 설명하는 도면이다.
도 19는 본 발명의 데이터 관리 플랫폼이 RFC 프로토콜 기반의 패킷을 분석하는 실시 예를 설명하는 도면이다.
도 20은 본 발명의 데이터 관리 플랫폼이 패킷을 분석하는 실시 예를 설명하는 도면이다.
도 21은 본 발명의 데이터 관리 플랫폼이 감사 로그를 저장하고 모니터링하는 실시 예를 설명하는 도면이다.
도 22는 본 발명의 데이터 관리 방법이 수집된 패킷을 분배하는 실시 예를 설명하는 도면이다.
도 23은 본 발명의 데이터 관리 플랫폼이 HTTPS 기반 패킷을 분석하는 실시 예를 설명하는 도면이다.
도 24는 본 발명의 데이터 관리 방법이 HTTPS 기반 패킷을 분석하는 실시 예를 설명하는 도면이다.
도 25는 본 발명의 데이터 관리 방법의 일 실시 예를 설명하는 도면이다.
도 26은 본 발명의 데이터 관리 플랫폼에서 개인정보를 추출하고 저장하는 실시 예를 설명하는 도면이다.
도 27은 본 발명의 데이터 관리 플랫폼에서 사용되는 정규식 패턴의 일 예를 설명하는 도면이다.
도 28은 본 발명의 데이터 관리 플랫폼에서 사용되는 마스킹 패턴의 일 예를 설명하는 도면이다.
도 29는 본 발명의 데이터 관리 플랫폼에서 정의하는 개인정보 메타데이터(1036)의 일 예를 설명하는 도면이다.
도 30은 본 발명의 데이터 관리 플랫폼에서 아키텍쳐 유형을 구분하여 개인정보를 추출하는 실시 예를 설명하는 도면이다.
도 31은 본 발명의 데이터 관리 플랫폼에서 개인정보 추출 규칙을 생성하는 실시 예를 설명하는 도면이다.
도 32는 본 발명의 데이터 관리 플랫폼에서 개인정보 예외처리 리스트를 생성하는 실시 예를 설명하는 도면이다.
도 33은 본 발명의 데이터 관리 플랫폼의 예외 필터를 생성하는 실시 예를 설명하는 도면이다.
도 34는 본 발명의 데이터 관리 플랫폼에서 추출된 개인정보를 검색하고 출력하는 실시 예를 설명하는 도면이다.
도 35는 본 발명의 데이터 관리 방법이 개인정보를 관리하는 실시 예를 설명하는 도면이다.
도 36은 본 발명의 데이터 관리 방법이 개인정보를 추출하고 저장하는 다른 실시 예를 설명하는 도면이다.
도 37은 본 발명의 데이터 관리 방법에서 개인정보를 관리하는 실시 예를 설명하는 도면이다.
도 38은 본 발명의 데이터 관리 플랫폼에서 사용자 행위를 수집하고 매핑하는 실시 예를 설명하는 도면이다.
도 39는 본 발명의 데이터 관리 플랫폼에서 사용자 행위 메타데이터를 생성하는 실시 예를 설명하는 도면이다.
도 40은 본 발명의 데이터 관리 플랫폼에서 사용자 행위 메타데이터와 로그 데이터를 매핑하는 실시 예를 설명하는 도면이다.
도 41은 본 발명의 데이터 관리 방법이 사용자 행위 메타데이터를 생성하는 실시 예를 설명하는 도면이다.
도 42는 본 발명의 데이터 관리 방법이 사용자 행위 메타데이터와 로그 데이터를 매핑하는 실시 예를 설명하는 도면이다.
도 43은 본 발명의 데이터 관리 방법이 사용자 행위 메타데이터를 생성하는 실시 예를 설명하는 도면이다.
도 44은 본 발명의 데이터 관리 플랫폼에서 개인정보를 암호화하는 실시 예를 설명하는 도면이다.
도 45는 본 발명의 데이터 관리 플랫폼에서 개인정보를 암호화하는 실시 예를 설명하는 도면이다.
도 46는 본 발명의 매핑 정보 테이블과 업무 테이블을 설명하는 도면이다.
도 47은 본 발명의 데이터 관리 플랫폼에서 신규 암호화 키를 생성하는 실시 예를 설명하는 도면이다.
도 48은 본 발명의 데이터 관리 플랫폼에서 새로운 업무 데이터를 추가하는 실시 예를 설명하는 도면이다.
도 49는 본 발명의 개인정보 암호화의 실 사용 예를 설명하는 도면이다.
도 50은 본 발명의 데이터 관리 방법이 개인정보를 암호화하는 실시 예를 설명하는 도면이다.
도 51은 본 발명의 데이터 관리 방법이 신규 암호화 키를 생성하는 실시 예를 설명하는 도면이다.
도 52는 본 발명의 데이터 관리 방법이 새로운 업무 데이터를 추가하는 실시 예를 설명하는 도면이다.
도 53은 본 발명의 데이터 관리 방법이 개인정보를 암호화하는 실시 예를 설명하는 도면이다.
도 54는 본 발명의 데이터 관리 플랫폼에서 데이터를 변조하는 실시 예를 설명하는 도면이다.
도 55는 본 발명의 데이터 관리 방법이 데이터에 대응하는 토큰 값 및 매핑 정보를 생성하는 실시 예를 설명하는 도면이다.
도 56은 본 발명의 매핑 정보 테이블 및 업무 테이블을 설명하는 도면이다.
도 57은 본 발명의 데이터 관리 방법이 데이터를 변조하는 실시 예를 설명하는 도면이다.
도 58은 본 발명의 변조된 데이터가 저장된 매핑 정보 테이블 및 업무 테이블을 설명하는 도면이다.
도 59는 본 발명의 데이터 관리 방법에서 변조된 데이터를 조회하는 실시 예를 설명하는 도면이다.
도 60은 본 발명의 데이터 관리 플랫폼에서 데이터를 변조하는 실시 예를 설명하는 도면이다.
도 61은 본 발명의 데이터 관리 플랫폼에서 데이터를 변조하는 실시 예를 설명하는 도면이다.
도 62는 본 발명의 데이터 관리 방법이 데이터를 변조하는 실시 예를 설명하는 도면이다.
도 63은 본 발명의 데이터 관리 플랫폼에서 에이전트를 관리하는 실시 예를 설명하는 도면이다.
도 64는 본 발명의 데이터 관리 방법에서 에이전트를 관리하는 방법을 설명하는 도면이다.
도 65는 본 발명의 데이터 관리 방법에서 에이전트와의 통신 방법을 설명하는 도면이다.
도 66은 본 발명의 데이터 관리 방법에서 에이전트의 동작 방법을 설명하는 도면이다.
도 67은 본 발명의 데이터 관리 방법에서 에이전트의 동작 방법을 설명하는 도면이다.
도 68은 본 발명의 데이터 관리 플랫폼이 로그 데이터를 정규화하는 실시 예를 설명하는 도면이다.
도 69는 본 발명의 데이터 관리 방법이 파서를 생성하는 일 실시 예를 설명하는 도면이다.
도 70은 본 발명의 파서 생성 화면의 일 실시 예를 설명하는 도면이다.
도 71은 본 발명의 파서 테스트 화면의 일 실시 예를 설명하는 도면이다.
도 72는 본 발명의 데이터 관리 방법이 변환 규칙을 생성하는 일 실시 예를 설명하는 도면이다.
도 73은 본 발명의 변환 규칙 생성 화면의 일 실시 예를 설명하는 도면이다.
도 74는 본 발명의 파서필드 일괄등록 화면의 일 실시 예를 설명하는 도면이다.
도 75는 본 발명의 데이터 관리 방법이 수집 경로 규칙을 생성하는 일 실시 예를 설명하는 도면이다.
도 76은 본 발명의 수집 경로 규칙 생성 화면의 일 실시 예를 설명하는 도면이다.
도 77은 본 발명의 데이터 관리 방법이 이벤트 로그를 검색하는 일 실시 예를 설명하는 도면이다.
도 78은 본 발명의 이벤트 로그 검색 화면의 일 실시 예를 설명하는 도면이다.
도 79는 본 발명의 데이터 관리 방법의 일 실시 예를 설명하는 도면이다.
도 80은 본 발명의 데이터 관리 플랫폼에서 로그를 검색하는 실시 예를 설명하는 도면이다.
도 81은 본 발명의 데이터 관리 플랫폼에서 로그를 검색하는 실시 예를 설명하는 도면이다.
도 82는 본 발명의 데이터 관리 방법이 로그를 검색하는 실시 예를 설명하는 도면이다.
도 83은 본 발명의 데이터 관리 방법에서 로그를 검색하는 실시 예를 설명하는 도면이다.
도 84는 본 발명의 데이터 관리 방법에서 로그를 검색하는 실시 예를 설명하는 도면이다.
도 85는 본 발명의 익스터널 머지 소트 알고리즘 실시 예를 설명하는 도면이다.
도 86은 본 발명의 검색 결과 파일을 설명하는 도면이다.
도 87은 본 발명의 데이터 관리 방법이 로그를 검색하는 실시 예를 설명하는 도면이다.
도 88은 본 발명의 데이터 관리 플랫폼에서 데이터를 분석하는 실시 예를 설명하는 도면이다.
도 89는 본 발명의 데이터 관리 방법이 데이터를 분석하는 실시 예를 설명하는 도면이다.
도 90은 본 발명의 데이터 관리 방법이 분석 작업의 스케쥴을 설정하는 실시 예를 설명하는 도면이다.
도 91은 본 발명의 데이터 관리 방법이 분석 작업을 실행하는 실시 예를 설명하는 도면이다.
도 92는 본 발명의 데이터 관리 플랫폼에서 데이터를 변조하는 실시 예를 설명하는 도면이다.
도 93은 본 발명의 데이터 관리 플랫폼에서 제공하는 분석 작업 편집기의 사용자 인터페이스를 설명하는 도면이다.
도 94는 본 발명의 데이터 관리 플랫폼에서 제공하는 분석 작업 편집기의 사용자 인터페이스를 설명하는 도면이다.
도 95는 본 발명의 데이터 관리 플랫폼에서 제공하는 분석 작업 편집기의 사용자 인터페이스를 설명하는 도면이다.
도 96은 본 발명의 데이터 관리 플랫폼의 모니터링 모듈이 제공하는 사용자 인터페이스를 설명하는 도면이다.
도 97은 본 발명의 데이터 관리 플랫폼에서 제공하는 분석 작업 편집기의 사용자 인터페이스를 설명하는 도면이다.
도 98은 본 발명의 데이터 관리 방법이 데이터를 분석하는 실시 예를 설명하는 도면이다.
도 99는 본 발명의 데이터 관리 플랫폼이 로그 데이터를 저장하고 조회하는 일 실시 예를 설명하는 도면이다.
도 100은 본 발명의 데이터 관리 플랫폼이 로그 데이터를 저장하고 조회하는 다른 일 실시 예를 설명하는 도면이다.
도 101은 본 발명의 데이터 관리 방법이 로그 데이터를 압축하는 일 실시 예를 설명하는 도면이다.
도 102는 본 발명의 데이터 관리 방법이 로그 데이터를 아카이빙하는 일 실시 예를 설명하는 도면이다.
도 103은 본 발명의 데이터 관리 방법이 로그 데이터를 조회하는 일 실시 예를 설명하는 도면이다.
도 104는 본 발명의 데이터 관리 방법의 일 실시 예를 설명하는 도면이다.
이하에서는 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 이하에서 설명되는 실시예들은 여러 가지 상 이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략한다.
한편, 본 명세서에서 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우 뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 다른 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들 더 포함할 수도 있다는 것을 의미한다.
또한, 본 명세서에서 사용되는 “제 1”또는 “제 2”등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설 명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
또한, 각각의 모듈이 포함하는 기능부(function unit)들은 모듈이 수행하는 기능을 설명하기 위한 논리적 구조이기 때문에, 각각의 기능부가 수행하는 기능은 모듈이 수행할 수 있음은 물론이다. 즉, 각각의 모듈은 모듈 내에 포함된 모든 기능부들을 포함할 필요가 없고, 기능을 수행하기 위한 적어도 하나의 기능부를 포함할 수 있다.
이하에서는 첨부한 도면을 참조하여 실시 예를 예시하여 상세히 기술하도록 한다. 실시 예에서 프레임워크, 모듈, 응용 프로그램 인터페이스 등은 물리 장치 결합된 장치로 구현할 수도 있고 소프트웨어로 구현할 수도 있다. 이때, 실시 예가 소프트웨어로 구현될 경우 저장매체에 저장되고 컴퓨터 등에 설치되어 프로세서에 의해 실행될 수 있다.
도 1은 본 발명의 데이터 관리 장치를 설명하기 위한 하드웨어를 개시하는 도면이다.
본 도면은 후술하는 데이터 관리 플랫폼과 관련된 하드웨어 구성 요소 간의 데이터 송수신에 대한 실시 예를 설명한다.
본 발명은 플랫폼을 통하여 사용자에게 제공될 수 있다. 이를 위하여 사용자/클라이언트(1000)는 웹 브라우저 등을 통하여 네트워크 장치(1001)에 접속하여 컴퓨팅 서버(1004)의 제어 하에 별도의 스토리지/데이터베이스(1003)에 저장된 데이터와 애플리케이션을 이용할 수 있게 된다.
보다 상세하게는, 사용자/클라이언트(1000)는 클라이언트 단말기를 통하여 서비스(예를 들어, 데이터의 검색, 수정, 삭제 등의 작업)를 요청하고, 컴퓨팅 서버(1004)를 통하여 연산되고 네트워크 장치(1001)를 통하여 수신한 데이터를 화면에 출력할 수 있다. 일 실시 예에서, 사용자/클라이언트(1000)는 본 발명의 데이터 관리 플랫폼에 접근하는 모든 대상을 포함할 수 있다. 즉, 본 도면에서 사용자/클라이언트(1000)는 네트워크 장치(1001)를 이용하여 데이터 관리 플랫폼에 접근할 수 있으며, 네트워크 장치(1001)의 제한을 두지 않는다.
네트워크 장치(1001)는 사용자/클라이언트(1000)와 컴퓨팅 서버(1004) 사이에서 데이터 전송을 중개하는 역할을 한다. 여기에서, 네트워크 장치(1001)는 라우터, TAP, 스위치 등을 포함할 수 있다. 라우터는 IP 주소를 이용하여 데이터를 전송하고, 스위치는 MAC 주소를 이용하여 데이터를 전송한다. 여기에서, 라우터와 같은 네트워크 장비(1001)는 SPAN(Switched Port Analyzer) 모드를 이용하여 특정 포트(port)만을 미러링하여 패킷을 데이터 관리 플랫폼(10000)에 전달할 수 있다. 이하에서 자세히 설명하도록 한다.
TAP(Test Access Point)은 네트워크 상에서 데이터를 수집하는 용도로 사용될 수 있다. 보다 상세하게는, TAP은 네트워크 장치(1001) 중 하나로, 네트워크의 백-본(back-bone) 라인에 추가되어 미러링만 전문적으로 해주는 장치에 대응한다. 즉, Network TAP(Test Access Point, 이하, TAP)을 통해 본 발명의 데이터 관리 플랫폼(10000)에 패킷을 전달할 수 있다. 이에 따라, 네트워크 상에서 송수신되는 데이터 패킷의 흐름에 영향을 주지 않고 패킷을 복사하여 데이터 관리 플랫폼에 전달할 수 있다.
스토리지/데이터베이스(1003)는 데이터를 저장하고, 관리할 수 있다. 스토리지는 주로 하드 디스크나 SSD를 이용하여 데이터를 저장하고, 데이터베이스는 구조화된 데이터를 관리하며, 검색 및 수정 등의 작업을 수행할 수 있다.
컴퓨팅 서버(1004)는 데이터 처리를 담당한다. 클라이언트(1000)로부터 요청된 작업을 처리하고, 처리 결과를 클라이언트(10000)에게 반환한다. 이를 위해 중앙연산장치(Central Processing Unit, CPU), RAM 등의 하드웨어를 이용하여 계산 작업을 수행할 수 있다. 그리고 컴퓨팅 서버(1004)는 여러 가지 데이터의 입출력을 제어하고 데이터 관리 플랫폼(10000)에서 처리된 데이터를 스토리지/데이터베이스(1003)에 저장할 수 있다. 이때, 본 발명의 데이터 관리 플랫폼(10000)이 수행하는 기능은 컴퓨팅 서버(1004)의 프로세서에 의해 수행될 수 있다. 또한, 컴퓨팅 서버(1004)는 하드웨어 구성 요소 또는 데이터 관리 플랫폼 내의 모듈들의 상태를 모니터링하고 제어하는 시스템 매니저를 포함할 수 있다.
이하, 본 발명을 실시하기 위하여 본 도면의 하드웨어 구성요소가 사용될 수 있으며, 상기 하드웨어 구성 요소 간의 데이터 처리(processing) 방법이 포함됨은 물론이다.
도 2는 본 발명의 데이터 관리 장치의 일 실시 예를 개시하는 도면이다.
이 도면의 실시 예는 데이터 관리 장치를 예시하고 있으며, 데이터 관리 장치를 설명하기 위한 physical) 장치와 논리적인 요소(logical component)를 포함하고 있다.
본 발명은 일 실시 예에서 SaaS(Software as a Service) 플랫폼을 통해 사용자에게 제공될 수 있다. SaaS 플랫폼은 클라우드 컴퓨팅 기술을 이용하여 네트워크를 통해 사용자에게 서비스로 제공되는 소프트웨어를 뜻한다. 이를 위하여, 스토리지/데이터베이스(1003), 컴퓨팅 서버(1004) 및 컨테이너 플랫폼(1005)은 사용자/클라이언트(1000)가 데이터 관리 플랫폼(10000) 및 데이터 관리 소프트웨어 패키지(20000)를 클라우드 상에서 이용할 수 있도록 지원할 수 있다.
본 발명은 데이터 처리를 위하여 사용자/클라이언트(1000), 스토리지/데이터베이스(1003), 애플리케이션 서버(1002), 컴퓨팅 서버(1004), 컨테이너 플랫폼(1005), 데이터 관리 플랫폼(10000) 및 데이터 관리 소프트웨어 패키지(20000)를 사용할 수 있다.
이때, 스토리지/데이터베이스(1003) 및 컴퓨팅 서버(1004)는 하드웨어일 수 있으며, 애플리케이션 서버(1002), 컨테이너 플랫폼(1005), 데이터 관리 플랫폼(10000) 및 데이터 관리 소프트웨어 패키지(20000)는 소프트웨어에 대응할 수 있다. 하드웨어에 대하여는 상술한 내용을 참고하도록 하고, 이 도면을 참조하여 데이터 관리 장치의 실시 예를 설명하면 다음과 같다.
사용자/클라이언트(1000)는 데이터 처리를 위해 데이터 관리 소프트웨어(20000)에 접속할 수 있다.
컨테이너 플랫폼(1005)은 OS(Operating System), 컨테이너(container), 도커(docker) 등으로 구성되어 데이터 처리를 위한 가상 환경을 제공할 수 있다.
데이터 관리 플랫폼(10000)은 데이터 관리 소프트웨어 패키지(20000) 내에 포함된 적어도 하나의 엔진 또는 모듈을 제어할 수 있다. 이를 위하여, 데이터 관리 플랫폼(10000)은 내부 데이터베이스(여기에서, 데이터베이스는 데이터 관리 소프트웨어 패키지(20000) 내의 내부 데이터베이스를 의미한다.), 스토리지, 분산 파일 시스템 등의 기술을 사용하여 데이터를 관리할 수 있다. 또한, 데이터 관리 플랫폼(10000)은 데이터 관리 소프트웨어 패키지(20000) 내에 포함된 적어도 하나의 엔진 또는 모듈을 관리하기 위한 시스템 매니저 또는 관리콘솔을 포함할 수 있다.
데이터 관리 소프트웨어 패키지(20000)는 수집 모듈(20001), 분석 모듈(20002), 키 관리 모듈(20003), 개인정보 관리 모듈(20004), 모니터링 모듈(20005) 및 AI 엔진(20006) 중 적어도 하나를 포함할 수 있다. 다만, 데이터 관리 소프트웨어 패키지(20000)에 포함된 모듈 및 엔진은 필수적인 구성요소가 아니며 본 발명을 설명하기 위한 요소에 해당한다. 따라서, 데이터 실시 예를 수행하기 위한 다른 이름의 모듈이 포함될 수 있음은 물론이다.
수집 모듈(20001)은 다양한 소스에서 데이터를 수집하고 데이터를 처리 파이프 라인으로 전송할 수 있다. 수집 모듈(20001)은 로그, 이벤트, 센서, 웹 서버 등 다양한 소스에서 데이터(예를 들어, 패킷)를 수집할 수 있다. 특히, 수집 모듈(20001)은 로그 수집을 위해 에이전트를 사용할 때 에이전트를 중앙 관리할 수 있다.
분석 모듈(20002)은 데이터를 분석하고 가치 있는 인사이트를 도출하는 데 사용될 수 있다. 분석 모듈(20002)은 수집된 패킷을 분석하여 데이터를 추출할 수 있다. 이때, 포함된 데이터가 개인정보인 경우, 개인정보 관리 모듈(20004)을 통하여 개인정보 보호와 관련된 기능을 제공할 수 있다. 또한, 포함된 데이터를 미리 수집된 행위 정보(예를 들어, 조회, 삭제, 추가, 변경, 출력 등을 포함한다.)와 매핑할 수 있다.
키 관리 모듈(20003)은 데이터 암호화 및 복호화를 위한 키를 생성, 저장 및 관리할 수 있다. 키 관리 모듈(20003)은 토큰, 대칭 키, 공개 키, 디지털 인증서 등의 기술을 사용하여 키를 관리할 수 있다. 키 관리 모듈(20003)은 데이터에 개인정보가 포함되어 있는 경우, 개인정보를 암호화 및 복호화를 위한 키를 생성, 저장 및 관리할 수 있다. 또한, 키 관리 모듈(20003)은 데이터에 개인정보가 포함되어 있지 않더라도 데이터의 보안을 위하여 토큰, 대칭 키, 공개 키, 디지털 인증서 등의 기술을 사용할 수 있다.
개인정보 관리 모듈(20004)은 개인정보 보호와 관련된 기능을 제공할 수 있다. 개인정보 관리 모듈(20004)은 데이터에 개인정보가 포함되어 있는 경우, 개인정보의 수집, 추출, 암호화, 저장, 처리, 검색, 삭제 등을 제어할 수 있다.
모니터링 모듈(20005)은 데이터의 검색 및 탐지를 수행할 수 있다. 모니터링 모듈(20005)은 데이터 처리 및 데이터 처리 환경을 모니터링하고 문제를 식별할 수 있다. 또한, 모니터링 모듈(20005)은 로그, 성능 지표, 이벤트 등을 모니터링하고 경고를 생성할 수 있다.
AI 엔진(20006)은 인공지능 기술(기계 학습을 포함한다.)을 이용하여 데이터 처리 및 데이터 분석 작업을 수행할 수 있다. 특히, 수집되어 저장된 로그에 텍스트가 포함되어 있는 경우, AI 엔진(20006)은 수집된 텍스트를 인공지능을 기반으로 행위를 분류할 수 있다.
도 3은 본 발명의 데이터 관리 플랫폼의 일 실시 예를 개시하는 도면이다.
이 도면의 실시 예는 데이터 관리 플랫폼(10000)을 예시하고 있으며, 물리적인(physical) 장치와 논리적인 요소(logical component)를 포함하고 있다. 특히, 본 도면에서 데이터 관리 플랫폼(10000)은 상술한 데이터 관리 플랫폼보다 더 넓은 범위에 대응할 수 있다. 예를 들어, 데이터 관리 플랫폼(10000)은 상술한 데이터 관리 소프트웨어 패키지(20000)에서 구현하는 모듈 중 적어도 하나를 포함하고, 물리 장치 상에서 구동되는 응용 프로그래밍 인터페이스 Application Programming Interface, API)를 포함할 수 있다. 물리 장치에 대하여는 상술한 내용을 참고하도록 한다.
데이터 관리 플랫폼(10000)은 컴퓨팅 서버(1004)와 스토리지/데이터베이스(1003)의 리소스(resource)를 이용하여 데이터 관리 플랫폼(10000) 내에 포함된 모듈의 기능을 수행할 수 있다. 이때, 시스템 매니저는 데이터 관리 플랫폼(10000) 내의 모듈 또는 엔진 중 적어도 하나를 제어할 수 있으며, 시스템 매니저는 컴퓨팅 서버(1004) 내에 위치하거나 별도로 위치하여 데이터 관리 플랫폼(10000)을 제어할 수 있다.
데이터 관리 플랫폼(10000)은 수집 모듈(20001), 분석 모듈(20002), 키 관리 모듈(20003), 개인정보 관리 모듈(20004), 모니터링 모듈(20005) 및 AI 엔진(20006) 중 적어도 하나를 포함할 수 있다. 각각의 모듈에 대한 설명은 상술한 바와 같다.
데이터 관리 플랫폼(10000)은 사용자/클라이언트(1000)와 데이터를 송수신하며, 송수신된 데이터에 대하여 수집 모듈(20001), 분석 모듈(20002), 키 관리 모듈(20003), 개인정보 관리 모듈(20004), 모니터링 모듈(20005) 및 AI 엔진(20006)이 수행하는 적어도 하나의 기능을 적용할 수 있다. 이때, 데이터 관리 플랫폼(10000)은 사용자/클라이언트(1000)의 요청에 의해 데이터 관리 플랫폼(10000) 내에 포함된 개별적인 모듈을 단독으로 사용할 수 있다. 예를 들어, 사용자/클라이언트(1000)는 데이터 관리 플랫폼(10000) 내의 키 관리 모듈(20003) 또는 개인정보 관리 모듈(20004)의 기능만을 선택적으로 사용할 수 있다.
또한, 도면에 도시되지는 않았으나 데이터 관리 플랫폼(10000)은 내부에 포함된 모듈의 기능을 수행하기 위하여 외부 스토리지/데이터베이스(1003)과는 다른 내부 데이터베이스를 사용할 수 있다.
도 4는 본 발명의 데이터 관리 방법의 일 실시 예를 설명하는 플로우 차트이다.
본 발명이 개시하는 데이터 관리 방법은 단계(S1000)에서, 패킷을 수집할 수 있다.
일 실시 예에서, 패킷을 수집하는 방법은 에이전트(agent) 방식의 클라우드 기반의 패킷 수집 방법 또는 패킷 미러 방식의 패킷 수집 방법을 이용할 수 있다. 자세한 설명은 후술하도록 한다.
일 실시 예에서, NIC(Network Interface Card)로부터 패킷을 수집할 수 있다. 여기에서, NIC는 네트워크 연결을 위해 사용되며, 유선 또는 무선 방식으로 네트워크와 연결될 수 있다. NIC는 컴퓨터와 네트워크 간에 데이터 전송을 가능하게 하기 위해 패킷을 보내고 받는 역할을 하며, 네트워크 카드, LAN 카드, 이더넷 카드 등을 포함할 수 있다.
또한, 본 발명이 개시하는 데이터 관리 방법은 수집된 패킷에 필터를 적용할 수 있다.
보다 상세하게는, 본 발명의 데이터 관리 방법은 수집된 패킷을 재조합하고 필터링하여 분석 프로세스로 분배할 수 있다. 보다 상세하게는, 패킷의 재조합은 수집된 각각의 네트워크 패킷을 분석 가능한 패킷 형태로 합치는 것을 의미하며, 필터 적용은 기 설정된 필터링 규칙을 이용하여 해당 패킷을 분석할지 여부를 결정하는 설정을 의미한다. 이에 따라, 분석할 대상이 되는 패킷인 경우, 적절한 분석 프로세스로 분배될 수 있다.
단계(S2000)에서, 패킷을 분석할 수 있다. 일 실시 예에서, 패킷의 기반이 되는 프로토콜의 종류에 따라 패킷을 분석할 수 있다. 보다 상세하게는, 패킷이 RFC(Remote Function Call) 프로토콜 기반인지, GUI/SNC 프로토콜 기반인지, HTTP/HTTPS 기반인지에 따라 패킷을 분석할 수 있다. 이때, 데이터 관리 방법은 이용 가능한 컴퓨팅 서버의 코어 수 및 트랜잭션 양을 고려하여 프로세스의 개수를 설정할 수 있다. 자세한 설명은 후술하도록 한다.
단계(S3000)에서, 데이터를 모니터링할 수 있다. 일 실시 예에서, 분석된 패킷에 포함된 데이터를 모니터링할 수 있다. 또한, 저장된 데이터를 실시간 모니터링하여 이상행위 이벤트를 감지하고, 감지된 이벤트에 대한 경고를 발생시킬 지 여부를 결정할 수 있다.
이를 위하여, 일 실시 예에서, 데이터 관리 방법은 분석된 패킷으로부터 데이터를 추출하고, 추출된 데이터를 저장할 수 있다. 데이터 관리 방법은 데이터에 포함된 정보에 따라 다른 방식으로 추출된 데이터를 저장할 수 있다. 예를 들어, 데이터에 개인정보가 저장되어 있는 경우, 개인정보를 추출한 뒤 개인정보를 암호화한 뒤 추출된 데이터를 저장할 수 있다. 또한, 데이터 관리 방법은 패킷 내의 중요 데이터만을 추출함으로써 중요 필드의 검색을 용이하게 하고, 결과적으로 데이터 관리 방법의 성능을 높일 수 있다.
도 5는 본 발명의 데이터 관리 방법의 일 실시 예를 개시하는 도면이다.
단계(S1010)에서, 패킷을 수집할 수 있다. 일 실시 예에서, 패킷을 수집하는 방법은 에이전트(agent) 방식의 클라우드 기반의 패킷 수집 방법 또는 패킷 미러 방식의 패킷 수집 방법을 이용할 수 있다. 자세한 설명은 후술하도록 한다.
단계(S1020)에서, 수집된 패킷에 필터를 적용할 수 있다. 보다 상세하게는, 본 발명의 데이터 관리 방법은 수집된 패킷을 재조합하고 필터링하여 분석 프로세스로 분배할 수 있다.
단계(S1030)에서, 필터가 적용된 패킷을 분석할 수 있다.
여기에서, 패킷의 기반이 되는 프로토콜의 종류에 따라 다르게 분석할 수 있다. 보다 상세하게는, 단계(S1031)에서, RFC(Remote Function Call) 프로토콜 기반의 패킷을 분석하고, 단계(S1032)에서, GUI 프로토콜 기반의 패킷을 분석하고, 단계(S1033)에서, HTTP/HTTPS 기반의 패킷을 분석할 수 있다.
단계(S1031)에서, RFC 프로토콜 기반의 패킷 분석은 네트워크에서 RFC 프로토콜을 사용하는 패킷을 분석하는 과정을 의미한다. RFC는 분산 환경에서 서로 다른 시스템 또는 컴퓨터 간에 함수 호출을 수행하기 위한 프로토콜과 메커니즘으로, RFC는 클라이언트와 서버 모델을 기반으로 작동하며 클라이언트가 원격 시스템에 있는 서버의 함수를 호출하여 원격에서 실행할 수 있도록 한다. 즉, RFC 프로토콜은 원격 함수 호출을 위한 통신 프로토콜이기 때문에 RFC 프로토콜을 사용하는 패킷은 이러한 원격 함수 호출에 대한 정보를 담고 있다.
단계(S1032)에서, GUI 프로토콜 기반의 패킷 분석은 클라이언트와 애플리케이션 서버 간에 통신하는 GUI 프로토콜 기반의 패킷을 수집하여, 패킷에 포함된 클라이언트 IP또는 Port, 서버 IP 또는 Port, 패킷 데이터(byte stream) 등을 추출하는 방식이다.
단계(S1033)에서, HTTP/HTTPS 기반의 패킷 분석은 웹 브라우저와 서버간 송수신하는 패킷을 미러링하거나 SSL 프로세싱하여 패킷에 포함된 데이터를 추출하는 방식이다.
각각에 대한 자세한 분석 방법은 후술하도록 한다.
단계(S1040)에서, 분석된 패킷으로부터 개인정보 메타데이터를 활용하여 개인정보를 추출할 수 있다. 일 실시 예에서, 분석된 패킷에 개인정보가 포함되어 있는지 확인하기 위하여, 저장된 개인정보 메타데이터를 사용하여 개인정보를 추출할 수 있다. 이에 대하여는, 후술하도록 한다.
단계(S1050)에서, 로그를 저장할 수 있다. 이때, 분석된 패킷에 포함된 유의미한 정보는 로그로 저장될 수 있다. 일 실시 예에서, 데이터 관리 방법은 분석된 정보를 감사 로그(Audit log)에 저장할지 여부를 결정할 수 있다. 또한, 개인정보가 포함된 경우, 개인정보는 패턴화 되어 데이터베이스에 저장될 수 있다. 마지막으로, 데이터 관리 방법은 로그(log) 저장 속도를 높이기 위해 멀티 쓰레딩(multithreading) 방식으로 동작하며, 일시적으로 데이터베이스에 접근이 되지 않는 경우에 대비하여 메모리 큐잉(queuing) 및 파일 큐잉을 수행할 수 있다.
단계(S1060)에서, 저장된 로그를 이용하여 이상행위를 감지할 수 있다. 이때, 이상행위가 감지된 경우, 이상행위 감지에 대한 정보를 기록한 새로운 로그를 생성하여 다시 단계(S1050)를 통해 로그를 저장할 수 있다. 또한, 데이터 관리 방법은 사용자로부터 감사 로그(Audit Log)를 요청받는 경우, 수집된 데이터의 화면을 재구현할 수 있다. 보다 상세하게는, GUI 프로토콜은 그래픽 사용자 인터페이스를 표시하고 상호 작용하는데 사용되는 프로토콜로, 이러한 프로토콜을 분석함으로써 사용자의 작업 흐름, 입력, 출력 등을 시각적으로 이해할 수 있으며 시스템의 동작 상태를 파악하고 문제를 진단하는데 도움을 줄 수 있다. 이에 대하여는 이하의 도면에서 자세히 설명하도록 한다.
도 6은 본 발명의 패킷 수집 방법의 일 실시 예를 개시하는 도면이다.
본 도면은 에이전트(agent) 방식의 클라우드 기반의 패킷 수집 방법에 대하여 설명한다. 보다 상세하게는, 일 실시 예는 적어도 하나 이상의 클라이언트(1000a, 1000b, 1000c), 네트워크(1001), 클라우드 AP(1010), 데이터 관리 플랫폼(10000, 20000)을 포함한다.
적어도 하나의 클라이언트(1000a, 1000b, 1000c)는 수집 대상 패킷을 생성하는 기기로, 예를 들어, 서버, 노트북, 스마트폰 등을 포함할 수 있다.
네트워크(1001)는 패킷 수집 대상 네트워크로, 클라이언트(1000a, 1000b, 1000c)는 네트워크(1001)에 연결되어 있을 수 있다.
클라우드 AP(1010)는 적어도 하나의 AP(1011, 1012, 1013, 1014)를 포함할 수 있다. 여기에서, 적어도 하나의 AP(1011, 1012, 1013, 1014)는 패킷 수집 에이전트와 연결되고, 패킷 수집 에이전트는 AP(1011, 1012, 1013, 1014)에서 생성된 모든 패킷을 수집하고 처리할 수 있다.
보다 상세하게는, 패킷 수집 에이전트는 수집된 패킷을 인식할 수 있는 형태로 필터링하고 추출하여 압축하고 암호화할 수 있다. 패킷 수집 에이전트는 AP(1011, 1012, 1013, 1014)와 연결되고, 수집된 패킷을 처리하고 데이터 관리 플랫폼(10000, 20000)으로 전송할 수 있다.
데이터 관리 플랫폼(10000, 20000)은 수집된 패킷을 수신하고, 패킷을 분석하고 저장하며, 분석 모듈을 통해 데이터를 분석할 수 있다.
이러한 방식으로 클라우드 지원(agent 방식) 기반의 패킷 수집 방법은 높은 확장성과 유연성을 제공하며, 다양한 네트워크 환경에서 적용할 수 있다. 또한, 클라우드 환경에서 데이터를 처리하므로 하드웨어나 소프트웨어 업그레이드나 유지보수가 용이하며, 안정적인 서비스를 제공할 수 있다.
본 도면과 같은 에이전트 방식의 클라우드 기반의 패킷 수집 방법은 클라우드를 사용하는 경우 적용이 가능하다.
도 7은 본 발명의 패킷 수집 방법의 다른 일 실시 예를 개시하는 도면이다.
본 도면은 패킷 미러 방식의 패킷 수집 방법에 대하여 설명한다. 보다 상세하게는, 실시 예는, 일 실시 예는 적어도 하나 이상의 클라이언트(1000a, 1000b, 1000c), 네트워크(1001), 전용선/VPN(1001a), CSP(1015) 및 데이터 관리 플랫폼(10000, 20000)을 포함한다. 상술한 내용과 중복되는 설명은 생략하도록 한다.
네트워크(1001)는 전용선/VPN(1001a)에 연결되며, 전용선/VPN(1001a)은 데이터 관리 플랫폼(10000, 20000)과 CSP(Cloud Service Provider, 클라우드 서비스 제공자, 1015) 각각에 연결될 수 있다. 여기에서, CSP는 예를 들어, AWS(Amason Web Service), GCP(Google Cloud Platform), Azure 와 같은 클라우드 서비스 제공자를 의미한다.
패킷 미러 방식을 통하여 데이터 관리 플랫폼(10000, 20000)은 네트워크 트래픽을 복제하여 전용선/VPN(1001a)로부터 패킷을 전달받고, 동일한 패킷은 CSP(1015)에 전달될 수 있다.
이 방법을 통하여 데이터 관리 플랫폼(10000, 20000)은 수집된 모든 패킷을 캡처하고 분석할 수 있다.
본 도면과 같은 패킷 미러 방식의 패킷 수집 방법은 CSP, 자체 클라우드, 애플리케이션 서버에서 제공하는 프라이빗 클라우드(예를 들어, SAP PCE)를 사용하는 경우 적용이 가능하다.
본 발명은 상술한 바와 같이 수집된 패킷을 분석할 수 있다. 구체적으로 수집된 패킷은 RFC 프로토콜 기반, GUI 프로토콜 기반, HTTP/HTTPS 기반 중 어느 하나에 해당할 수 있다. 이에 따라, 본 발명의 일 실시 예는 수집된 패킷을 다른 방식으로 분석하고, 저장할 수 있다. 이에 대하여 자세히 설명하도록 한다.
도 8은 본 발명의 패킷 수집 방법에 따라 수집한 RFC 프로토콜 기반의 패킷 분석 데이터의 일 실시 예를 개시하는 도면이다.
데이터 관리 플랫폼은 프로토콜을 기반으로 한 패킷을 통하여 본 도면에서 도시하는 다양한 데이터를 추출할 수 있다. 본 도면에서는, RFC 프로토콜 기반의 패킷 분석 데이터를 예로 들어 설명하나, RFC 프로토콜 기반의 패킷이 이하의 모든 정보를 포함하는 것은 아니다. 특히, 후술하는 (6) 및 (8)에 포함된 정보는 GUI 프로토콜 기반의 패킷 분석 데이터에 해당한다.
보다 상세하게는, 데이터 관리 플랫폼은 RFC 구조 정보를 이용하여 패킷을 분석하고 데이터를 추출할 수 있다. 이때, RFC 구조 정보가 없는 경우, 데이터 관리 플랫폼은 RFC 정보 요청 파일을 생성하여, RFC 정보를 요청할 수 있다. 자세한 설명은 후술하도록 한다.
(1) 시간(요청 시간, 세션 정보의 시작 시간을 포함한다.)
(2) 프로토콜 정보(RFC 프로토콜, GUI 프로토콜, HTTP/HTTPS 등을 포함한다.)
(3) 서버 IP 또는 Port
(4) 클라이언트 IP 또는 Port(클라이언트가 접속한 지역(region)을 포함한다.)
(5) 계정(사용자 ID, 사번, 조직이름 등을 포함한다.)
(6) 트랜잭션명(트랜잭션 코드(T-code)를 포함한다. 여기서 트랜잭션 코드는 트랙잭션을 명시하는 일종의 단축코드로써 논리적인 업무 프로세스이다.)
(7) RFC 함수 명
(8) 이벤트 정보(이벤트는 로그인(성공/실패), 개인정보 입력, 특정 T-Code 접근 여부, SAP ALL 접속 여부, 공통계정 접속 여부, 사용자 오류, 파일 다운로드, 프로그램 덤프, 사용자 암호 변경 여부, 메타 데이터 수정 여부, 중복접속 조회 여부, 특정 GL 계정(GUI 프로토콜의 경우, 계좌(account) 정보 누적 조회 여부 등을 포함한다.)
(9) 개인정보 개수
일 실시 예에서, 데이터 관리 플랫폼은 트랜잭션명과 이벤트 정보를 통하여 패킷이 수행하고자 하는 업무를 판단할 수 있다.
도 9는 본 발명의 패킷 수집 방법에 따라 수집한 GUI 프로토콜 기반의 패킷 분석 장치의 일 실시 예를 개시하는 도면이다.
본 도면에서는, 본 발명의 패킷 수집 방법에 따라 수집한 패킷이 GUI 프로토콜 기반인 경우, 패킷을 분석하는 실시 예를 설명한다. 일 실시 예는, 사용자/클라이언트(1000, 이하, 클라이언트), 네트워크 장치(1001), 스토리지/데이터베이스(1003), 컴퓨팅 서버(1004), 애플리케이션 서버(1002)를 포함할 수 있다. 상술한 구성과 중복되는 설명은 생략하도록 한다.
일 실시 예에서, 상술한 구성 요소를 이용하여 GUI 프로토콜을 기반으로 한 패킷 분석을 수행할 수 있다. 이를 위해서는 클라이언트(1000)에서 발생하는 GUI 프로토콜 기반의 트래픽을 캡처하고 분석하는 것이 필요하다. 이를 위해서는 다음과 같은 작업이 필요하다.
클라이언트(1000)는 네트워크 장치(1001)를 이용해 애플리케이션 서버(1002)에 대응하는 애플리케이션을 실행하고, 애플리케이션 시스템에 로그인할 수 있다. 클라이언트(1000)는 애플리케이션을 통하여 필요한 작업을 수행할 수 있다. 클라이언트(1000)는 입력되는 입력 데이터 또는 애플리케이션 서버(1002)를 통하여 수신한 출력 데이터에 대한 정보를 화면에 출력할 수 있다.
네트워크 장비(1001)는 클라이언트(1000)와 애플리케이션 서버(1002) 사이의 네트워크 트래픽을 캡처할 수 있다. 특히, 네트워크 장비(1001)는 TAP을 포함할 수 있다. 이를 통해, 예를 들어, 애플리케이션 서버(1002)가 SAP 운영 서버인 경우, SAP 애플리케이션 사용자, SAP EP 서버 및 레거시 시스템에서 SAP 서버와 통신하는 GUI 프로토콜 기반의 패킷을 로깅할 수 있다. 또한, 네트워크 장비(1001)는 스위치를 포함할 수 있다. 이를 통해, SAP 운영 서버로 네트워크를 주고받는 스위치에서 포트 미러를 통하여 SAP 서버에 대한 내부 감사를 수행할 수 있고, SAP 서버에서 사용되는 개인 정보에 대해 모니터링할 수 있다.
애플리케이션 서버(1002)에서는 GUI 프로토콜을 기반으로 하는 트래픽이 발생할 수 있다.
데이터 관리 플랫폼(10000) 또는 데이터 관리 소프트웨어(20000)는 애플리케이션 서버(1002)에서 발생하는 트래픽을 캡쳐하고, 캡처한 트래픽을 분석할 수 있다. 이때, 데이터 관리 플랫폼(10000) 또는 데이터 관리 소프트웨어(20000) 내의 수집 모듈(20001) 및 분석 모듈(20002)을 통해 애플리케이션 서버(1002)에서 발생하는 트래픽을 수집하고 분석할 수 있다. 이에 따라, GUI 프로토콜의 구조와 내용을 이해하고 분석할 수 있다. 이때, 애플리케이션 서버(1002)는 컴퓨팅 서버(1004)의 자원을 이용할 수 있다.
스토리지/데이터베이스(1003)는 분석한 결과 또는 애플리케이션 서버(1002)에 필요한 정보를 저장할 수 있다.
도 10은 본 발명의 패킷 수집 방법에 따라 수집한 GUI 프로토콜 기반의 패킷 분석 방법의 일 실시 예를 개시하는 도면이다.
단계(S2010)에서, 클라이언트 화면에 출력되는 애플리케이션과 애플리케이션 서버 간 송수신되는 패킷을 수집할 수 있다. 보다 상세하게는, 클라이언트와 애플리케이션 서버 간에 통신하는 GUI 프로토콜 기반의 패킷을 분석하고 입출력 데이터 및 모니터링에 필요한 정보를 수집할 수 있다. 여기에서, 입력 데이터는 클라이언트가 클라이언트의 단말기(terminal)을 이용하여 입력하는 사용자 명령어를 포함할 수 있다.
클라이언트가 클라이언트 단말기를 통해 사용자 명령어를 입력 데이터로써 입력하면, 입력 데이터는 네트워크를 통해 애플리케이션 서버에 전송된다. 일 실시 예에서, 애플리케이션 서버에 입력 데이터가 전송되는 경우, 입력 데이터는 모니터링 될 수 있다.
보다 상세하게는, 데이터 관리 플랫폼은 입력 데이터를 제공받아 분석할 수 있다. 이때, 입력 패킷에 기 설정된 사용자 명령어(예를 들어, 특정 이벤트 발생)가 포함된 경우, 데이터 관리 플랫폼은 접근 제한이 필요하다고 판단할 수 있다. 이에 따라, 데이터 관리 플랫폼은 사용자 명령어(여기에서, 사용자 명령어는 입력 패킷에 포함된 사용자 명령어와 다른 언어로 표현될 수 있다.)를 통해 애플리케이션 서버(1002)에게 클라이언트의 접근을 통제할 수 있다. 이때, 입력 데이터는 SAP DIAG 프로토콜을 통해 SAP 애플리케이션 서버와 송수신되는 데이터를 예로 들 수 있다.
또한, 클라이언트 단말기는 애플리케이션 서버에서 출력된 데이터를 출력할 수 있다. 즉, 애플리케이션 서버는 전송되는 입력 데이터에 대한 내용을 검색하면서 검색된 결과에 대한 내용이 포함된 출력 데이터를 클라이언트 단말기에 전송하여 클라이언트 단말기의 화면에 정보가 출력되도록 할 수 있다. 이때, 애플리케이션 서버는 출력 데이터를 출력하되, 출력 데이터는 서버 정보, 트랜잭션 코드(T-code), 프로그램명, 상태 메시지 중 적어도 하나를 포함할 수 있다.
입력 데이터와 마찬가지로, 데이터 관리 플랫폼은 출력 데이터를 제공받아 분석할 수 있다. 이때, 출력 데이터는 서버 정보, 트랜잭션 코드(T-code), 프로그램명, 상태 메시지 중 적어도 하나를 포함할 수 있다. 입력 데이터와 마찬가지로, 데이터 관리 플랫폼은 분석된 출력 데이터에 기초하여 접근 제한이 필요하다고 판단할 수 있다. 이에 따라, 데이터 관리 플랫폼은 접근을 통제할 수 있다.
또한, 출력 데이터는 SAP DIAG 프로토콜을 통해 SAP 애플리케이션 서버와 클라이언트 단말기와 송수신되는 데이터를 예로 들 수 있다.
단계(S2020)에서, 수집된 패킷의 분석 여부를 결정할 수 있다. 이를 위하여, 본 발명은 수집된 정보의 분석 여부를 결정하여 성능을 높일 수 있도록 필터링을 수행할 수 있다. 여기에서, 수집된 정보를 분석하지 않기로 결정하는 경우 분석을 진행하지 않고 종료한다.
단계(S2030)에서, 패킷을 분석할 수 있다. 일 실시 예에서, 패킷 내의 포함된 정보의 보안을 제어하기 위해 패킷 디코딩 및 프로토콜을 분석할 수 있다. 일 실시 예에서, 입력 데이터 또는 출력 데이터에 대한 클라이언트 IP또는 Port, 서버 IP 또는 Port, 패킷 데이터(byte stream) 등으로 자세하게 분석할 수 있다.
단계(S2040)에서, 분석된 패킷에 포함된 데이터를 세션 정보로 구성하여 저장할 수 있다. GUI 프로토콜 기반의 패킷을 분석한 분석 정보와 입출력 데이터를 사용해 세션 정보를 생성하고, 저장할 수 있다. 일 실시 예에서, 저장된 세션 정보는 사용자가 이해하기 쉬운 언어로 클라이언트 화면에 출력될 수 있다.
즉, 네트워크 연결 정보 및 입출력 패킷을 분석함으로써, 의미 있는 정보인 입출력 데이터를 용이하게 출력할 수 있어, 클라이언트는 애플리케이션 서버의 GUI 화면과 실질적으로 유사한 형태의 화면을 확인할 수 있다.
이와 같이, 클라이언트는 GUI 화면과 실질적으로 유사한 형태로 용이하게 재구현할 수 있기 때문에 애플리케이션 서버 정보, 트랜잭션 코드(T-code), 프로그램명, 상태 메세지, 출력데이터 등을 화면을 통하여 모니터링하면서 용이하게 분석할 수 있다.
도 11은 본 발명의 패킷 수집 방법에 따라 수집한 GUI 프로토콜 기반의 패킷 분석 데이터의 일 실시 예를 개시하는 도면이다.
일 실시 예에서, GUI 프로토콜을 기반으로 한 패킷으로부터 시간, 프로토콜 정보, 서버/클라이언트 IP 또는 Port, 계정, 트랜잭션명, 이벤트 정보, 개인정보 개수 중 적어도 하나에 대한 데이터를 추출할 수 있다. 각각의 정의에 대한 내용은 상술한 바와 같다.
일 실시 예에서, GUI 프로토콜 기반의 패킷의 분석 결과를 본 도면과 같이 “화면 재현”의 형태로 클라이언트에게 제공할 수 있다.
보다 상세하게는, 본 발명의 데이터 관리 플랫폼은 클라이언트에게 분석된 패킷에 포함된 데이터를 사용자가 알기 쉬운 방법으로 출력할 수 있다.
본 도면을 통하여 예를 들어, 설명하면, 제 1 사용자가 애플리케이션 서버에 접속하여 “1175”을 입력한 경우, 데이터 관리 플랫폼이 “Request Screen”을 통하여 제 1 사용자가 애플리케이션 서버에 접속하여 입력한 화면을 재현한 실시 예를 나타낸다.
또한, 제 1 사용자가 애플리케이션 서버에 접속하여 “1175”를 입력한 이후, 애플리케이션 서버로부터 수신하여 출력한 경우, 데이터 관리 플랫폼은 “Response Screen”을 통하여 제 1 사용자가 애플리케이션 서버로부터 수신한 출력 화면을 재현할 수 있다.
이를 통하여, 제 2 사용자(예를 들면, 제 1 사용자의 관리자)는 데이터 관리 플랫폼을 이용하여 제 1 사용자가 입력한 데이터를 포함하는 화면과 출력된 데이터를 포함하는 화면을 각각 “Request Screen” 및 “Response Screen”을 통하여 확인할 수 있다.
도 12는 본 발명의 패킷 수집 방법에 따라 수집한 HTTP/HTTPS 기반의 패킷 분석 방법의 일 실시 예를 개시하는 도면이다.
HTTP(Hypertext Transfer Protocol)는 인터넷에서 데이터를 주고받기 위한 프로토콜 중 하나로, HTTP는 기본적으로 평문(Plain Text)을 이용하여 통신하기 때문에, HTTP 패킷을 수집할 수 있다면 누구나 패킷에 포함된 내용을 확인할 수 있다. 즉, HTTP 기반의 패킷은 보안에 취약하기 때문에 이러한 보안 취약점을 보완하기 위해, HTTPS(HTTP Secure) 기반으로 패킷을 송수신하는 경우가 있다.
HTTPS는 HTTP의 보안 버전으로, SSL(Secure Sockets Layer)이나 TLS(Transport Layer Security) 프로토콜을 이용하여 통신할 수 있다. SSL 프로토콜은 데이터를 암호화하여 전송하기 때문에, 임의의 대상이 패킷을 수집하더라도 SSL 암호를 해제하지 않으면 패킷을 분석할 수 없다.
따라서, 본 발명은 HTTPS 기반의 패킷을 분석하기 위해 SSL 프로세싱을 수행할 수 있다. 여기에서, SSL 프로세싱은 HTTPS 통신에서 데이터를 암호화하고 복호화하는 과정을 포함할 수 있다. SSL 프로세싱은 클라이언트와 서버 간의 암호화 키 교환, 인증, 데이터 암호화, 복호화 등을 수행할 수 있다.
보다 상세하게, 본 발명의 패킷 수집 방법 중 HTTP/HTTPS 기반의 패킷을 분석하는 방법을 설명하면 다음과 같다.
사용자가 웹 브라우저(web browser, 1030)를 실행하면, 웹 브라우저(1030)는 HTTP/HTTPS를 통해 웹 서버에 요청을 보낼 수 있고, 웹 서버에서 응답을 받아와 사용자에게 데이터를 출력할 수 있다.
프록시 서버(proxy server)는 클라이언트와 웹 서버(예를 들어, SAP 서버) 사이에서 중계 기능을 수행할 수 있다. 웹 브라우저(1030)에서 웹 서버에 접속할 때, 프록시 서버를 거쳐서 요청과 응답을 주고받을 수 있다. 이를 통해, 사용자의 IP 주소를 숨기거나, 캐싱을 통해 네트워크 성능을 향상시키는 등의 기능을 수행할 수 있다.
SSL 프로세싱은 HTTPS 연결에서 SSL 인증서를 확인하고, 키 교환 및 암호화/복호화를 수행할 수 있다.
데이터 관리 플랫폼은 HTTP/HTTPS 패킷 추출 및 분석을 수행할 수 있다. 이를 위하여, 데이터 관리 플랫폼에 포함된 수집 모듈 및 분석 모듈을 이용할 수 있다. 수집된 패킷이 HTTP 기반의 패킷인 경우, 바로 분석을 수행하고, HTTPS 기반의 패킷인 경우, SSL 프로세싱을 거친 후 분석을 수행할 수 있다. SSL 프로세싱을 통해 복호화된 HTTPS 패킷은 웹 브라우저나 프록시 서버에서 추출되어 분석될 수 있다.
데이터 관리 플랫폼은 HTTP 패킷 또는 SSL 프로세싱을 통하여 발생하는 패킷들을 큐(1032, queue)에 저장할 수 있고, 큐(1032)에서 패킷을 추출하여 분석할 수 있다. 여기에서, 큐(1032)의 크기는 SSL 프로세싱의 대역폭과 처리 능력에 따라 결정될 수 있다. 또한, 큐(1032)는 메모리 큐 및 파일 큐를 포함할 수 있다.
이에 따라, 본 발명은 HTTP/HTTPS 기반의 패킷을 분석할 수 있으며, HTTPS 기반의 패킷을 분석하기 위하여 SSL 프로세싱을 수행하는 방법에 대하여는 이하에서 자세히 설명하도록 한다.
도 13은 본 발명의 패킷 수집 방법에 따라 수집한 HTTP/HTTPS 기반의 패킷의 분석 데이터의 일 실시 예를 개시하는 도면이다.
일 실시 예에서, HTTP/HTTPS를 기반으로 한 패킷으로부터 시간, 프로토콜 정보, 서버/클라이언트 IP 또는 Port, 계정, 트랜잭션명, 이벤트 정보, 개인정보 개수 중 적어도 하나에 대한 데이터를 추출할 수 있다. 각각의 정의에 대한 내용은 상술한 바와 같다.
일 실시 예에서, HTTP/HTTPS 기반의 패킷 분석 결과를 본 도면과 같이 “데이터”의 형태로 클라이언트에게 제공할 수 있다.
데이터 관리 플랫폼은 HTTP/HTTPS 기반의 패킷을 분석하면, html 형태 또는 함수 형태의 데이터를 추출할 수 있다. 이때, 데이터 관리 플랫폼은 html 형태의 경우 웹 페이지를 그대로 출력할 수 있고, 함수 형태의 경우, 함수를 그대로 출력할 수 있다.
도 14는 본 발명의 분석된 패킷에 포함된 데이터 중 개인정보를 추출하는 일 실시 예를 개시하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼(10000)은 개인정보 메타데이터를 사용하여 로그 데이터(log data)와 인덱스(index)를 포함하는 감사 로그(Audit log, 1033)로부터 개인정보를 추출할 수 있다.
보다 상세하게는, 감사 로그(1033)는 네트워크 상에서 발생하는 이벤트들을 기록한 로그의 집합으로, 로그 데이터(log data) 및 인덱스(index)를 포함할 수 있다. 여기에서, 감사 로그(1033)는 인덱스 처리가 완료된 로그 데이터의 집합일 수 있다.
데이터 관리 플랫폼(10000)은 감사 로그에서 개인 정보를 추출하기 위하여 개인정보 메타데이터를 사용할 수 있다. 여기에서, 개인정보 메타데이터는 개인정보가 어떤 형태로 저장되어 있는지, 어떤 필드에 저장되어 있는지, 개인정보 유형 별로 사용되는 정규식 패턴 및 마스킹 패턴 등이 정의되어 있다. 예를 들어, 이름, 주소, 전화번호 등의 개인정보 유형에 대한 메타데이터를 구성할 수 있다. 이에 따라, 분석 모듈은 개인정보 메타데이터를 기반으로 로그 데이터에서 개인정보를 식별하고 추출할 수 있다.
일 실시 예에서, 추출된 개인정보는 개인정보 유형 별로 기 설정된 방식에 따라 암호화되어 다시 감사 로그(1033) 또는 데이터 관리 플랫폼(10000) 내부 데이터베이스 상에 저장될 수 있다. 자세한 내용은 후술하도록 한다.
일 실시 예에서, 데이터 관리 플랫폼(10000)은 추출된 개인 정보를 사용하여 특정 기간 동안의 로그 데이터를 검색할 수 있고, 관리자나 사용자가 필요할 때 검색하거나 검색된 로그 데이터를 확인할 수 있다. 이에 대하여는 후술하도록 한다.
도 15는 본 발명의 분석된 패킷에 포함된 데이터를 시각화한 일 실시 예를 개시하는 도면이다.
상술한 실시 예를 통하여 분석된 패킷에 포함되는 데이터는 다음과 같다.
(1) 세션 정보: 시작 시간, Duration Time, Log ID, Session ID, Context ID
(2) 접속 정보: 서버 IP, 서버 Port, 서버 Mac, 클라이언트 IP, 클라이언트 Port, 클라이언트 Mac
(3) SAP 정보: SID, 프로토콜, SAP 인스턴스, 클라이언트
(4) 프로그램 정보: OK Code, T-code, Title App, Title Main
(5) CUA(Central User Administration) 정보: CUA Name, CUA Status
(6) 사용자 정보: 사용자 ID, 사용자 UID, 사용자명
(7) 이벤트 정보: 이벤트 카테고리, 이벤트 코드, 이벤트 이름, 이벤트 설명, 이벤트 값, 알림 수준
(8) 사용자 정의 정보: 이벤트, 경고, 이벤트 유형, 이벤트 건수, 경고 건수, 아키텍쳐, 개인정보 존재 여부, 개인정보 유형 건수, 개인정보건수
일 실시 예에서, 데이터 관리 플랫폼은 분석된 패킷으로부터 위와 같은 데이터를 추출할 수 있다. 이때, 데이터 관리 플랫폼은 패킷으로부터 추출된 데이터에 개인정보가 포함된 경우, 개인정보에 대한 암호화를 수행하여 저장할 수 있다. 특히, 데이터 관리 플랫폼은 개인정보에 대하여는 별도의 화면으로 출력할 수 있다.
이를 통해, 법 및 인증에서 요구하는 모든 사항(계정 정보, 접속일시, 접속지 정보, 처리한 주체 정보, 수행 업무)을 수집할 수 있다. 보다 상세하게는, 계정 정보는 사용자 정보의 사용자 ID, 사번, 조직이름을 통하여, 접속일시는 세션 정보의 시작 시간을 통하여, 접속지 정보는 접속 정보의 클라이언트 IP 또는 Port를 통하여, 처리한 정보주체 정보는 사용자 정의 정보(개인정보 존재 여부, 개인정보 건수, 주민등록번호, 외국인등록번호, 여권 정보 및 카드 정보 등)를 통하여, 수행 업무는 프로그램 정보 및 사용자 정의 정보를 통하여 판단할 수 있다.
도 16은 본 발명의 분석된 패킷에 포함된 데이터를 검색하는 일 실시 예를 개시하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼은 상술한 데이터들을 검색하여 사용자에게 검색 결과를 제공할 수 있다.
이를 위하여, 본 도면의 (a)와 같이 데이터 관리 플랫폼은 사용자가 쉽게 검색할 수 있도록 검색 인터페이스를 제공할 수 있다. 데이터 관리 플랫폼은 분석된 데이터의 필드를 기준으로 데이터를 검색할 수 있다. 예를 들어, 데이터 필드는 프로토콜, 시스템, 계정, 사번, 서버 IP, 서버 Port, 클라이언트 IP, 클라이언트 Port, 인스턴스명, 트랜잭션명, 프로그램명 등을 포함할 수 있다. 이때, 데이터 관리 플랫폼은 사용자로부터 입력 받은 필드 중 적어도 하나를 기준으로 데이터를 검색하고, 검색 결과를 출력할 수 있다.
다른 실시 예에서, 본 도면의 (b)와 같이 데이터 관리 플랫폼은 쿼리(query) 검색 기능을 제공할 수 있다. 예를 들어, 사용자가 protocol_type=GUI를 제 1 쿼리로 입력하고, server_ip=175.117.145.125를 제 2 쿼리로 입력하는 경우, 데이터 관리 플랫폼은 제 1 쿼리 및 제 2 쿼리를 기준으로 데이터를 검색할 수 있다.
일 실시 예에서, 검색된 결과는 상술한 바와 같이 “화면 재현” 형태 또는 “데이터” 형태로 출력될 수 있다.
도 17은 본 발명의 데이터 관리 방법에 따라 수집된 데이터를 모니터링하는 일 실시 예를 개시하는 도면이다.
상술한 바와 같이, 데이터 관리 플랫폼(10000)은 적어도 하나의 클라이언트(1000a, 1000b, 1000c)로부터 네트워크(1001) 및 TAP(1001b)을 통하여 패킷을 수집하고 분석할 수 있다.
수집된 패킷은 기 정의된 이벤트에 기초하여 분류되고 저장될 수 있다. 일 실시 예에서, 데이터 관리 플랫폼(10000)은 분석된 패킷으로부터 수집된 데이터를 모니터링할 수 있다.
보다 상세하게는, 데이터 관리 플랫폼(10000)은 모니터링 모듈(20005)을 통하여 수집된 데이터에 대한 이상 행위를 감지하여 클라이언트(1000a, 1000b, 1000c)의 사용자에게 알람을 제공할 수 있다. 예를 들어, 데이터 관리 플랫폼(10000)은 대시 보드(Dash board), 이메일, SMS 등을 통하여 사용자에게 수집된 데이터에 대한 이상 행위를 보고(report)할 수 있다.
일 실시 예에서, 데이터 관리 플랫폼(10000)은 이상 행위가 감지되는 경우, 클라이언트(1000a, 1000b, 1000c)의 접속을 제어할 수 있다. 예를 들어, 사용자가 클라이언트(1000a, 1000b, 1000c)에 접속하여 수행한 이벤트가 이상 행위로 판단되는 경우, 모니터링 모듈(20005)은 대시 보드 등을 통하여 사용자에게 알람을 제공함과 동시에 클라이언트(1000a, 1000b, 1000c)의 접속을 차단할 수 있다.
특히, 데이터 관리 플랫폼(10000)은 클라이언트(1000a, 1000b, 1000c)가 아카이브 파일(Archive File)이 포함된 데이터베이스(1003)에 접근하여 이벤트를 발생시키는 것을 모니터링하여 알람을 제공하거나 접근을 제어할 수 있다. 여기에서, 데이터베이스(1003)는 데이터 관리 플랫폼(10000) 외부에 저장된 저장소(storage) 또는 내부에 저장된 저장소에 대응한다. 또한, 이벤트에 대한 정보는 상술한 내용을 참고하도록 한다.
또한, 데이터 관리 플랫폼(1000)은 이상 행위가 아니더라도 기 설정된 이벤트에 해당하는 경우, 클라이언트(1000a, 1000b, 1000c)의 접근을 제어할 수 있다.
또한, 데이터 관리 플랫폼(1000)은 클라이언트(1000a, 1000b, 1000c)로부터 입력된 데이터가 개인정보인 경우, 이를 감지하여 보안 담당자에게 예를 들어, 메일로 입력된 데이터를 포함하는 화면을 전송할 수 있다.
도 18은 본 발명의 데이터 관리 플랫폼이 수집된 패킷을 분배하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼은 수집 모듈(20001)을 통하여 패킷을 수집할 수 있다.
보다 상세하게는, 수집 모듈(20001)은 네트워크(예를 들어, 상술한 NIC를 통하여)에서 패킷을 수집할 수 있다. 여기에서, 패킷 수집은 상술한 물리적인 장치 또는 가상 머신에서 실행되는 소프트웨어로 수행될 수 있다. 여기에서, 패킷은 프로토콜 헤더와 페이로드 데이터로 구성된 패킷을 포함할 수 있다.
본 발명의 일 실시 예에서, 데이터 관리 플랫폼은 사용자가 애플리케이션 서버에 접근해서 수행하는 모든 행위에 대한 패킷을 수집할 수 있다. 예를 들어, 애플리케이션 사용자는 SAP GUI 프로토콜, RFC 프로토콜, HTTP 등 다양한 프로토콜을 사용하여 SAP 서버에 접근할 수 있다. 뿐만 아니라, 애플리케이션 사용자는 SAP SNC 프로토콜, HTTPS 등을 사용하여서도 SAP 서버에 접근할 수 있다. 각각의 경우에 대하여 자세히 설명하도록 한다.
분석 모듈(20002)은 수집 모듈(20001)을 통하여 수집된 패킷을 프로토콜을 기반으로 분배할 수 있다. 보다 상세하게는, 분석 모듈(20002)은 조각난 패킷을 재조립하고, TCP 정보, 프로토콜, 포트(port), IP 주소 등을 기반으로 패킷을 제 1 분석 모듈(20002a), 제 2 분석 모듈(20002b), …등에 분배할 수 있다. 여기에서, 제 1 분석 모듈(20002a) 및 제 2 분석 모듈(20002b)는 예를 든 것으로, 프로토콜에 기초하여, 데이터 관리 플랫폼은 패킷을 분석하기 위한 모듈을 생성할 수 있다.
제 1 분석 모듈(20002a) 및 제 2 분석 모듈(20002b)은 패킷을 분석하고, 패킷에 포함된 데이터를 데이터베이스(20007)에 저장할 수 있다.
데이터베이스(20007)은 분석된 패킷의 로그 데이터를 저장하고, 필요한 경우 검색 및 조회 기능을 제공할 수 있다.
이하에서는, 각각 다른 프로토콜에 대한 패킷 분석 방법에 대하여 자세히 설명하도록 한다.
도 19는 본 발명의 데이터 관리 플랫폼이 RFC 프로토콜 기반의 패킷을 분석하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼(10000)은 수집 모듈(20001)과 분석 모듈(20002)을 통하여 애플리케이션서버(1002)와 RFC 정보와 패킷에 대한 분석 및 구조 정보를 송수신할 수 있다. 이하에서, 데이터 관리 플랫폼(10000)은 수집 모듈(20001) 또는 분석 모듈(20002)이 수행하는 기능을 지원하기 위한 API를 제공할 수 있다.
수집 모듈(20001)은 RFC 패킷 수집부(2001)를 포함할 수 있다. 여기에서, RFC 패킷 수집부(2001)는 수집된 패킷 중 RFC 패킷을 추출하여 분석 모듈(20002)에 전달할 수 있다.
분석 모듈(20002)은 RFC 정보 요청부(2002) 및 RFC 패킷 분석부(2003)를 포함할 수 있다. 즉, 분석 모듈(20002)은 수집 모듈(20001)로부터 전달받은 RFC 패킷을 분석할 수 있다. 보다 상세하게는, 데이터 관리 플랫폼(10000) 내에 RFC 구조 정보가 있는 경우, RFC 구조 정보를 이용하여 RFC 패킷을 분석할 수 있다. 반면, 데이터 관리 플랫폼(10000) 내에 RFC 구조 정보가 없는 경우, RFC 정보 요청부(2002)는 RFC 정보 요청 파일을 생성할 수 있다. RFC 정보 요청부(2002)는 RFC 정보 요청 파일을 감지하는 경우, 애플리케이션 서버(1002)에 RFC 구조 정보를 요청할 수 있다. 이에 따라, 데이터 관리 플랫폼(10000)은 애플리케이션 서버(1002)에 RFC 정보를 요청할 수 있고, RFC 구조 정보를 수신할 수 있다. RFC 패킷 분석부(2003) 은 애플리케이션 서버(1002)로부터 수신한 RFC 구조 정보를 이용하여 RFC 패킷을 분석할 수 있다.
도 20은 본 발명의 데이터 관리 플랫폼이 패킷을 분석하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼(10000)은 수집 모듈(20001)을 통하여 수집된 패킷이 HTTP/HTTPS 기반의 패킷, GUI/SNC 프로토콜 기반의 패킷인 경우, 분석 모듈(20002)을 통하여 패킷을 분석할 수 있다. 이때, 데이터 관리 플랫폼(10000)은 패킷을 분석하는데 사용되는 인증서를 관리하는 데이터베이스(20007)를 유지할 수 있다.
보다 상세하게는, 분석 모듈(20002)은 HTTP 패킷 분석부(2004), HTTPS 패킷 분석부(2005), GUI 패킷 분석부(2006) 및 SNC 패킷 분석부(2007)를 포함할 수 있다.
여기에서, HTTP 패킷 분석부(2004)는 HTTP 패킷을 분석하고, HTTPS 패킷 분석부(2005)는 HTTPS 패킷을 분석하고, GUI 패킷 분석부(2006)는 GUI 프로토콜 기반 패킷을 분석하고, SNC 패킷 분석부(2007) SNC 프로토콜 기반 패킷 분석을 수행할 수 있다.
분석 모듈(20002)은 보안 수준이 상대적으로 낮은 HTTP 패킷 및 GUI 프로토콜 기반의 패킷은 상술한 실시 예에 따라 패킷을 분석할 수 있다.
반면, 보안 수준이 상대적으로 높은 HTTPS 패킷 및 SNC 패킷은 데이터베이스(20007)에 저장된 SSL 인증서를 사용하여 암호화된 통신을 복호화하여 패킷을 분석할 수 있다.
이에 따라, 데이터 관리 플랫폼(10000)은 암호화된 HTTPS 기반의 패킷을 HTTP 기반의 패킷과 동일하게 데이터를 추출할 수 있다. 마찬가지로, 데이터 관리 플랫폼(10000)은 암호화된 SNC 프로토콜 기반의 패킷을 GUI 프로토콜 기반의 패킷과 동일하게 데이터를 추출할 수 있다.
HTTPS 패킷을 분석하는 방법에 대하여는 후술하도록 한다. 이때, HTTPS 패킷과 SNC 패킷에 사용되는 인증서는 동일하거나 상이한 인증서에 대응할 수 있다.
도 21은 본 발명의 데이터 관리 플랫폼이 감사 로그를 저장하고 모니터링하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼(10000)은 상술한 실시 예에 따라 추출한 원본 데이터를 정의된 필드 규칙에 따라 변환하고 가공하여 감사 로그(1033)를 생성할 수 있다. 여기에서, 생성된 감사 로그(1033)는 데이터베이스(20007)에 저장될 수 있다.
또한, 데이터 관리 플랫폼(10000)은 가공된 데이터 중에서 개인정보 메타데이터를 이용하여 개인정보를 추출할 수 있다. 이에 따라, 데이터 관리 플랫폼(10000)은 감사 로그(1033)와 개인정보를 각각 데이터베이스(20007)에 저장할 수 있다. 이를 위하여, 분석 모듈(20002)은 감사 로그 저장부(2008)를 더 포함할 수 있다.
또한, 분석 모듈(20003)은 상관 분석 규칙 생성부(2009)를 더 포함할 수 있다. 데이터 관리 플랫폼(10000)은 분석 모듈(20002)를 통하여 상관 분석 규칙을 생성할 수 있다. 여기에서, 상관 규칙이란 이상 행위 판단에 대한 규칙을 나타낼 수 있다. 예를 들어, 데이터 관리 플랫폼(10000)은 1초당 데이터가 1-2건 입력되는 경우 정상 행위로 판단하고, 1초당 데이터가 10건 이상 입력되는 경우 이상 행위로 판단할 수 있다. 여기에서, “상관”이라는 표현은 로그(log) 간의 상관성을 나타낼 수 있다. 이때, 데이터 관리 플랫폼(10000)은 상관 규칙에 의해 또다른 이벤트(로그)를 발생시킬 수 있다. 이때의 로그는 인시던트로 정의할 수 있다. 즉, 데이터 관리 플랫폼(10000)을 통하여 모니터링을 원하는 주체(subject)가 상관 규칙을 생성하고, 데이터 관리 플랫폼(10000)은 상관 규칙에 기초하여 로그들을 분석하고 또 다른 로그인 인시던트를 발생시킬 수 있다.
또한, 상관 분석 규칙은 다른 플랫폼에 의해 기 정의된 규칙에 대응할 수 있다. 이에 따라, 데이터 관리 플랫폼(10000)은 생성된 상관 분석 규칙을 이용하여 감사 로그(1033)를 분석하여 이상행위 이벤트를 생성할 수 있다. 이때, 생성된 상관 분석 규칙에 대한 정보 및 이상행위 이벤트에 대한 정보는 데이터베이스(20007)에 저장될 수 있다.
데이터 관리 플랫폼(10000)의 모니터링 모듈(20005)는 이상행위 모니터링부(2010)를 더 포함할 수 있다. 이상행위 모니터링부(2010)는 생성된 이상행위 이벤트에 기초하여 저장된 감사 로그(1033), 개인정보 등을 검색 또는 모니터링할 수 있다.
이에 따라, 데이터 관리 플랫폼(10000)은 수집, 분석되어 저장된 데이터에서 개인정보를 추출할 수 있고, 추출된 개인정보를 이용하여 사용자 행위를 통계화할 수 있다. 이후, 수집된 사용자 행위 중 위반 행위가 발생한 경우, 데이터 관리 플랫폼(10000)은 사용자를 차단 또는 관리자에게 경고를 제공할 수 있다.
도 22는 본 발명의 데이터 관리 방법이 수집된 패킷을 분배하는 실시 예를 설명하는 도면이다.
단계(S10010)에서, 데이터 관리 방법은 패킷을 수집하고 필터를 적용할 수 있다. 이때, 데이터 관리 방법은 NIC와 같은 네트워크 장비를 통하여 패킷을 수집할 수 있다. 이후, 데이터 관리 방법은 수집된 패킷을 재조합하고, 각각의 네트워크 패킷을 분석 가능한 패킷 형태로 합칠 수 있다.
일 실시 예에서, 데이터 관리 방법은 필터링 규칙에 기초하여 패킷을 분석할지 여부를 결정할 수 있다. 여기에서, 필터링 규칙은 데이터 관리 플랫폼에 의해 결정될 수 있다. 보다 상세하게는, 데이터 관리 방법은 상술한 NIC나 라우터와 같은 네트워크 장비를 통하여 패킷을 수집할 수 있다. 이때, 수집되는 모든 패킷을 분석한다면 성능에 이슈가 있을 수 있기 때문에 필터링 규칙에 의해 분석할 패킷을 필터링할 수 있다. 예를 들면, HTTP나 SAP GUI 프로토콜 기반의 패킷은 분석할 필요가 있지만 그 외의 다른 프로토콜로 수집된 패킷은 분석할 필요가 없을 수 있다. 이때, 데이터 관리 방법은 포트 또는 IP 별로 원하는 프로토콜 기반의 패킷만을 분석하도록 수집된 패킷을 필터링할 수 있다. 이때, 사용자는 데이터 관리 방법을 이용하여 직접 필터링 규칙을 설정할 수 있다.
단계(S10020)에서, 데이터 관리 방법은 TCP 세션 정보에 기초하여 프로토콜을 구분할 수 있다. 상술한 바와 같이, 데이터 관리 방법은 수집된 패킷을 프로토콜을 기반으로 구분하여 분석할 수 있다.
데이터 관리 방법은 단계(S10020)에서 구분된 프로토콜에 기초하여 다른 방법으로 패킷을 분석할 수 있다. 각각에 대한 분석 방법은 상술한 바와 같다.
단계(S10030)에서, 데이터 관리 방법은 RFC 프로토콜 기반 패킷을 분석할 수 있다.
단계(S10040)에서, 데이터 관리 방법은 GUI/SNC 프로토콜 기반 패킷을 분석할 수 있다.
단계(S10050)에서, 데이터 관리 방법은 HTTP/HTTPS 기반 패킷을 분석할 수 있다.
단계(S10030) 내지 단계(S10050)에서, 데이터 관리 방법은 패킷을 파싱한 후 분석을 위한 처리 규칙을 수행할 수 있다. 이때, 데이터 관리 방법은 패킷의 바이너리 데이터를 분석하여 각종 데이터(계정 데이터, SID, 화면 입력 데이터, 화면 출력 데이터 등)를 추출할 수 있다. 또한, 처리 규칙은 분석된 패킷 내에 포함된 데이터를 감사 로그(1033)에 저장할 것인지 여부, 분석된 패킷 내에 포함된 데이터의 가공 또는 로깅(logging) 여부, 이벤트 및 경고를 발생시킬지 여부 등을 처리하는 설정을 나타낼 수 있다. 이외에도, 데이터 관리 방법은 불필요한 로그를 필터링하는 필터 규칙과 처리 규칙을 처리하기 위한 데이터를 로딩하는 적제 규칙을 더 수행할 수 있다.
단계(S10060)에서, 데이터 관리 방법은 분석된 패킷에 기초하여 감사 로그(1033)를 생성할 수 있다. 이때, 데이터 관리 방법은 로그 저장 속도를 높이기 위하여 멀티 쓰레딩(multi-threading) 방식으로 동작하며 데이터베이스의 접근이 일시적으로 불가능한 경우에 대비하여 메모리 큐잉 및 파일 큐잉을 수행할 수 있다.
단계(S10070)에서, 데이터 관리 방법은 생성된 감사 로그(1033)에 대하여 개인정보 메타데이터를 이용하여 개인정보를 추출할 수 있다.
단계(S10080)에서, 데이터 관리 방법은 감사 로그(1033)를 저장할 수 있다. 이때, 데이터 관리 방법은 감사 로그(1033)와 개인정보를 각각 저장할 수 있다.
단계(S10090)에서, 데이터 관리 방법은 이상행위를 모니터링할 수 있다.
도 23은 본 발명의 데이터 관리 플랫폼이 HTTPS 기반 패킷을 분석하는 실시 예를 설명하는 도면이다.
HTTPS(SSL)로 보호된 웹 브라우저에서의 사용자 행위는 기존의 네트워크 트래픽 미러 기술로는 로그를 기록할 수 없다. 특히, HTTPS 연결 시 키교환을 위해 디피-헬만(Diffie-Hellman) 알고리즘을 사용하는 경우에는 로그를 기록할 수 없다. 여기에서, 디피-헬만(Diffie-Hellman) 알고리즘은 대칭키 암호화 방식에서 사용되는 알고리즘 중 하나로, 키 교환 프로토콜을 안전하게 수행하기 위한 방법에 대응한다.
하지만 기업 내 이상행위 및 개인정보 과남용을 모니터링하기 위해서는 웹 브라우저에서의 사용자 행위에 대한 로그를 기록하고 모니터링 해야 하는 요구가 있다.
본 발명의 일 실시 예에 따르면, 키교환을 위해 디피-헬만 알고리즘을 사용하는 경우에도 웹 브라우저에서의 사용자 행위에 대한 로그를 기록해 기업 내 이상행위 및 개인정보 과남용을 모니터링할 수 있다.
이를 위하여, 데이터 관리 플랫폼(10000)은 디피-헬만 알고리즘을 사용하는 경우에도 사용자 행위를 모니터링할 수 있도록 한다.
보다 상세하게는, 데이터 관리 플랫폼(10000)의 분석 모듈(20002)은 프록시 서버 구성부(2011), SSL 설정부(2012), HTTP 요청/응답 데이터 분석부(2013) 및 메시지 데이터 생성부(2014)를 더 포함할 수 있다.
여기에서, 프록시 서버 구성부(2011)는 웹 브라우저(1030)와 웹 서버(1034) 사이에 프록시 서버(1031)를 구성할 수 있다. 여기에서, 프록시 서버(1031)는 클라이언트와 서버 간의 네트워크 통신을 중개하는 서버로, 클라이언트는 프록시 서버(1031)를 이용하는 경우 직접 웹 서버(1034)와 통신하지 않고 프록시 서버(1031)를 통하여 간접적으로 통신할 수 있다.
SSL 설정부(2012)는 프록시 서버(1031)에서 SSL을 설정할 수 있다. 보다 상세하게는, SSL 설정부(2012)는 프록시 서버(1031)를 구성하고, 클라이언트 SSL 설정을 이용하여 웹 브라우저(1030)와 프록시 서버(1031) 간의 SSL 환경을 구성하여 HTTPS 요청/응답에 대한 처리를 수행할 수 있다. 일 실시 예에서, SSL 설정부(2012)는 SSL 설정을 위하여 SSL 인증서를 사용할 수 있다. 여기에서, SSL 인증서는 상술한 패킷을 분석하기 위한 인증서와는 상이한 인증서에 대응할 수 있다. 즉, 이때의 SSL 인증서는 SSL 설정을 지원(support)하기 위한 것에 대응한다.
HTTPS 요청 데이터를 전달받은 프록시 서버(1031)는 SSL 연결을 일시적으로 중단할 수 있고, HTTP 요청/응답 분석부(2013)를 통해 HTTP 요청/응답 데이터를 처리하고, 다시 SSL 연결을 수행할 수 있다.
이에 따라, 메시지 데이터 생성부(2014)는 HTTP 요청/응답 데이터를 조합하여 메시지 데이터(1035)를 생성할 수 있고, 생성된 메시지 데이터(1035)를 큐(1032)에 저장할 수 있다. 여기에서, 큐(1032)는 메모리 큐와 파일 큐를 포함할 수 있다.
이후, 데이터 관리 플랫폼(10000)은 큐(1032)에 저장된 메시지 데이터(1035)를 외부로 전송할 수 있다.
마지막으로, 데이터 관리 플랫폼(10000)은 서버 SSL 설정을 이용하여 프록시 서버(1031)와 웹 서버(1034) 간의 SSL 환경을 구성하여 HTTPS 요청/응답에 대한 처리를 수행하고, HTTPS 응답 데이터를 전달할 수 있다.
이를 통해 디피-헬만 알고리즘을 사용하는 경우에도 웹 브라우저에서의 사용자 행위에 대한 로그를 기록할 수 있다.
도 24는 본 발명의 데이터 관리 방법이 HTTPS 기반 패킷을 분석하는 실시 예를 설명하는 도면이다.
단계(S20010)에서, 데이터 관리 방법은 HTTPS 기반 패킷을 수집하기 위하여 프록시 서버를 구성하고 클라이언트 SSL을 설정하고, 단계(S20020)에서, 프록시 서버를 구성하고 서버 SSL을 설정할 수 있다. 즉, 데이터 관리 방법은 프록시 서버를 구성하고, 서버 SSL 설정을 이용하여 프록시 서버와 웹 서버 간의 SSL 환경을 구성하여 HTTPS 요청/응답에 대한 처리를 수행하고, HTTPS 응답 데이터를 전달할 수 있다.
프록시 서버가 구성되고, SSL이 설정되는 경우, 단계(S20030)에서, 데이터 관리 방법은 HTTPS 패킷을 수집할 수 있다. 상술한 바와 달리, 본 도면의 데이터 관리 방법에서는 HTTPS 패킷을 수집하는 경우를 예를 들어 설명한다.
HTTPS 연결의 경우 키교환을 위해 디피-헬만 알고리즘을 사용하는데, 디피-헬만 알고리즘을 이용하여 패킷을 암호화하는 경우에는 기존의 네트워크 트래픽 미러 기술로는 사용자 행위에 대한 로그를 기록할 수 없기 때문에 본 발명은 이하의 방법을 제안한다.
단계(S20040)에서, 데이터 관리 방법은 HTTPS 요청/응답에 대한 처리를 수행할 수 있다. 즉, 데이터 관리 방법은 프록시 서버를 구성하고, 클라이언트 SSL 설정을 이용하여 웹 브라우저와 프록시 서버 간의 SSL 환경을 구성하여 HTTPS 요청/응답에 대한 처리를 수행할 수 있다. 이후, HTTPS 요청 데이터를 전달받은 프록시 서버는 SSL 연결을 중단하고, HTTP 요청/응답 데이터를 처리한 후 다시 SSL 연결을 수행할 수 있다.
단계(S20050)에서, 데이터 관리 방법은 HTTP 요청/응답 데이터를 조합하여 메시지 데이터(1035)를 생성할 수 있다. 이때, 데이터 관리 방법은 불필요한 데이터를 필터링할 수 있다. 보다 상세하게는, 데이터 관리 방법은 HTTP 요청/응답 데이터를 조합하여 메시지 데이터(1035)를 생성할 수 있는데, 로깅(logging)할 때 불필요한 데이터(예를 들어, 이미지 데이터)는 전달하지 않을 수 있다.
단계(S20060)에서, 데이터 관리 방법은 생성된 메시지 데이터(1035)를 메모리 큐(queue) 또는 파일 큐 중 적어도 하나에 적재할 수 있다. 보다 상세하게는, 데이터 관리 방법은 메시지 데이터(1035)를 저장하기 위한 큐로 메모리 큐 및 파일 큐를 사용할 수 있다. 이때, 메시지 데이터(1035)를 저장하기 위하여 파일 큐만 사용하는 경우 성능이 낮아질 위험이 있고, 메모리 큐만 사용하는 경우 데이터의 유실이 발생할 수 있기 때문에 두가지 큐를 조합하여 사용할 수 있다.
단계(S20070)에서, 데이터 관리 방법은 큐에 적재된 메시지 데이터(1035)를 저장소로 전달하여 저장할 수 있다. 여기에서, 저장소는 상술한 데이터 관리 플랫폼 내에 포함된 데이터베이스에 대응한다.
도 25는 본 발명의 데이터 관리 방법의 일 실시 예를 설명하는 도면이다.
단계(S30010)에서, 데이터 관리 방법은 네트워크를 통하여 패킷을 수집할 수 있다. 본 발명의 데이터 관리 방법이 네트워크를 통하여 패킷을 수집하는 방법은 도 5 내지 도 7, 도 18 및 도 19의 실시 예를 참고하도록 한다.
단계(S30020)에서, 데이터 관리 방법은 수집된 패킷에 포함된 정보에 기초하여 프로토콜을 구분할 수 있다. 본 발명의 데이터 관리 방법이 수집된 패킷에 포함된 정보에 기초하여 프로토콜을 구분하는 방법은 도 5 및 도 18의 실시 예를 참고하도록 한다.
단계(S30030)에서, 데이터 관리 방법은 프로토콜에 기초하여 패킷을 분석할 수 있다. 본 발명의 데이터 관리 방법이 프로토콜에 기초하여 패킷을 분석하는 방법은 도 5, 도 8 내지 도 13, 도 18 내지 도 20의 실시 예를 참고하도록 한다.
단계(S30040)에서, 데이터 관리 방법은 분석된 패킷에 포함된 정보에 기초하여 로그를 생성할 수 있다. 본 발명의 데이터 관리 방법이 분석된 패킷에 포함된 정보에 기초하여 로그를 생성하는 방법은 도 18 및 도 21의 실시 예를 참고하도록 한다.
이를 통하여, 법 또는 규정에서 기준으로 하는 개인정보 처리 시스템에 대한 요구사항(requirements)을 만족시킬 수 있다. 예를 들어, 본 발명에 따르면, “개인정보의 안정성 확보조치 기준 제 8 조”에 의해 개인정보 처리 시스템에 대한 접속기록을 의미적으로 보관 하여야 한다는 조건을 만족할 수 있다.
개인정보를 추출하기 위한 방법으로는 주로 정규식(Regular expression)을 이용한 방법이 사용된다. 다만, 정규식을 이용한 방법은 잘못 추출될 우려가 존재한다.
이러한 점을 보완하기 위하여 본 발명에서는 개인정보를 추출하기 위하여 정규식 방법 뿐만 아니라 개인정보 메타데이터 및 예외처리 리스트를 사용한 다차원 추출 방법을 통해 개인정보 추출에 대한 정확도를 높일 수 있다.
도 26은 본 발명의 데이터 관리 플랫폼에서 개인정보를 추출하고 저장하는 실시 예를 설명하는 도면이다.
본 발명의 데이터 관리 플랫폼(10000)에 포함된 개인정보 관리 모듈(20004)는 감사 로그(1033)로부터 개인정보를 추출 위하여 개인정보 유형을 정의할 수 있다. 여기에서, 감사 로그(1033)에는 인덱스(index) 처리가 완료된 로그 데이터(log data)를 포함할 수 있다. 또한, 개인정보 유형은 예를 들어, 주민등록번호, 신용카드 번호, 계좌 번호 등과 같은 개인정보의 종류를 포함할 수 있다.
보다 상세하게는, 개인정보 관리 모듈(20004)의 개인정보 유형 분석부(2019)는 개인정보 추출을 위한 개인정보 메타데이터(1036) 생성을 위해 저장된 감사 로그(1033)에서 사용되는 개인정보 유형 및 추출 방식을 분석할 수 있다. 이에 대한 분석 결과를 개인정보 메타데이터(1036)에 저장할 수 있다. 이때, 개인정보 관리 모듈(20004)는 아키텍쳐(여기에서, 아키텍쳐는 애플리케이션 개발환경, 화면 사용자 인터페이스(User Interface, UI)를 포함한다.) 유형에 기초하여 개인정보 메타데이터(1036)에 포함된 필드를 정의할 수 있다. 여기에서, 아키텍쳐 유형은 로그 데이터의 변수 및 값을 분석하는 파서(parser)를 구분하는 정보에 대응한다. 일 실시 예에서, 개인정보 관리 모듈(20004)는 로그 데이터 내 필드 정보에 대하여 프로토콜 유형 및 URL을 기준으로 아키텍쳐 유형을 구분할 수 있고, 이에 따라 인덱스의 필드 정보를 생성할 수 있다. 또한, 개인정보 메타데이터(1036)는 아키텍쳐 유형(화면 유형), 화면 정보(level 1, level 2) 및 개인정보 추출 규칙을 포함할 수 있다.
이를 위하여, 개인정보 관리 모듈(20004)의 개인정보 패턴 저장부(2020)는 개인정보 유형 별로 사용되는 패턴을 저장할 수 있다. 개인정보 관리 모듈(20004)은 개인정보 유형을 정의하고, 개인정보 유형 별로 사용되는 정규식 패턴 및 마스킹 패턴을 저장할 수 있다. 여기에서, 개인정보 관리 모듈(20004)이 개인정보 유형을 정의하고, 개인정보 유형 별로 사용되는 정규식 패턴을 저장하는 이유는 개인정보 메타데이터(1036)에 포함되는 정보를 생성하기 위함이다.
결론적으로, 데이터 관리 플랫폼(10000)은 개인정보 유형을 정의하고, 개인정보 유형 별로 사용되는 정규식 패턴을 저장해 놓음으로써 개인정보 메타데이터(1036)를 생성할 수 있게 되고, 개인정보 메타데이터(1036)와 후술하는 개인정보 예외처리 리스트(1037)를 이용하여 개인정보 추출 규칙을 생성하고, 개인정보 추출 규칙을 이용해 개인정보를 추출할 수 있다.
또한, 개인정보 관리 모듈(20004)의 개인정보 예외처리 리스트 생성부(2021)는 개인정보 예외처리 리스트(1037)를 생성할 수 있고, 개인정보 추출 규칙 생성부(2022)는 추출할 개인정보 추출 규칙을 생성할 수 있다. 이때, 개인정보 관리 모듈(20004)는 개인정보 예외처리 리스트(1037)를 생성하기 위하여, 개인정보 메타데이터(1036)를 이용하여 감사 로그(1033)에서 가상으로 추출되는 개인정보 항목을 확인할 수 있고, 추출된 값이나 분석된 변수에 기초하여 예외처리 리스트(1037)에 포함되는 예외처리 규칙을 정의할 수 있다.
다른 실시 예에서, 개인정보 관리 모듈(20004)의 개인정보 해쉬 값 수집부(2023)는 개인정보 유형별 해쉬(hash) 값을 수집할 수 있고, 개인정보 유형별 값 필터(value filter)를 생성할 수 있다. 여기에서, 값 필터는 개인정보 값의 해쉬 값에 대해 블룸-필터 자료 구조를 사용하여 만든 필터에 대응한다. 본 발명에서는, 값 필터를 통해 대량의 데이터 집합에서 비교 값의 포함 여부를 빠르게 확인할 수 있다는 장점이 있다.
보다 상세하게는, 개인정보 관리 모듈(20004)는 여러 유형 별로 개인정보 값에 대한 해쉬 값을 수집하여 개인정보 유형 별로 저장할 수 있다. 개인정보 관리 모듈(20004)의 개인정보 값 필터 생성부(2024)는 수집된 개인정보 데이터를 기준으로 개인정보 유형별 값 필터 파일을 생성할 수 있다.
이후, 개인정보 관리 모듈(20004)의 개인정보 추출부(2025)는 개인정보를 추출할 수 있고, 개인정보 암호화부(2026)는 추출된 개인정보를 암호화하고, 개인정보 저장부(2027)는 암호화된 개인정보를 저장할 수 있다. 보다 상세하게는, 개인정보 관리 모듈(20004)는 감사 로그(1033)에 포함된 로그 데이터를 아키텍쳐 유형 별로 분석하여 변수 및 값을 추출하고, 추출된 값에 개인정보 (추출) 규칙이 포함된 개인정보 메타데이터(1036)를 이용하여 개인정보를 추출할 수 있다.
일 실시 예에서, 개인정보 관리 모듈(20004)는 추출된 개인정보 값의 해쉬 값이 값 필터 내에 포함되어 있는지 검증할 수 있다. 이때, 해쉬 값이 값 필터 내에 포함되어 있는 경우, 개인정보 관리 모듈(20004)는 감사 로그(1033)의 인덱스에 추출된 개인정보를 저장할 수 있다. 반면, 해쉬 값이 값 필터 내에 포함되어 있지 않은 경우, 개인정보 관리 모듈(20004)는 잘못 추출된 것으로 판단하여 추출된 개인정보를 제거할 수 있다.
이후, 암호화된 개인정보를 검색하는 경우, 개인정보 관리 모듈(20004)은 암호화된 개인정보를 복호화한 후 마스킹 규칙에 의해 처리된 개인정보를 출력할 수 있다.
이하, 개인정보 관리 모듈(20004)이 수행하는 기능은 데이터 관리 플랫폼(10000)이 수행하는 것으로 지칭할 수 있다.
이를 통하여, 개인정보 추출에 대한 정확도를 높일 수 있다. 이하, 후술하는 도면을 통하여 본 발명을 상세히 설명하도록 한다.
도 27은 본 발명의 데이터 관리 플랫폼에서 사용되는 정규식 패턴의 일 예를 설명하는 도면이다.
상술한 실시 예에서, 데이터 관리 플랫폼은 개인정보 유형 별로 사용되는 패턴을 저장할 수 있다. 특히, 데이터 관리 플랫폼은 개인정보 유형 별로 사용될 정규식 패턴 및 마스킹 패턴을 저장할 수 있다.
본 도면은 데이터 관리 플랫폼에서 사용되는 개인정보 유형 별 정규식 패턴을 나타낸다. 예를 들어, 개인정보가 주민등록번호인 경우, 정규식 패턴은 “(\d{6}[ ,-]-?[1-4]\d{6})|(\d{6}[ ,-]?[1-4])”에 대응할 수 있다. 또한, 다른 예를 들면, 개인정보가 운전면허번호인 경우, 정규식 패턴은 “(\d{2}-\d{2}-\d{6}-\d{2})”에 대응할 수 있다. 이와 같이, 데이터 관리 플랫폼은 개인정보 유형(주민등록번호, 운전면허번호, 전화번호, 메일주소, 주소, 생년월일, 여권번호, 계좌번호, 신용카드번호, 건강보험번호, 외국인등록 번호 등)에 대하여 각각의 정규식 패턴을 정의할 수 있다. 또한, 각각의 개인정보 유형에 대한 정규식 패턴은 기 설정되어 데이터 관리 플랫폼에 저장될 수 있다. 이때, 본 도면에 포함된 개인정보 유형은 예시일 뿐으로 다른 개인정보 등이 더 포함될 수 있음은 물론이다.
도 28은 본 발명의 데이터 관리 플랫폼에서 사용되는 마스킹 패턴의 일 예를 설명하는 도면이다.
상술한 실시 예에서, 데이터 관리 플랫폼은 개인정보 유형 별로 사용되는 패턴을 저장할 수 있다. 특히, 데이터 관리 플랫폼은 개인정보 유형 별로 사용될 정규식 패턴 및 마스킹 패턴을 저장할 수 있다.
본 도면은 데이터 관리 플랫폼에서 사용되는 개인정보 유형 별 마스킹 패턴을 나타낸다. 마스킹 처리 규칙에는 일부 마스킹, 전체 마스킹, 범위 마스킹, 무작위 마스킹 및 일관성 유지 마스킹 등을 포함할 수 있다.
예를 들어, 개인정보가 주민등록번호인 경우, 마스킹 처리 기준이 존재하고, 마스킹 패턴은 “11111-2******”에 대응할 수 있다. 즉, 이 경우에는 주민등록번호에 대한 일부 마스킹 패턴을 적용한 것이다.
이때, 마스킹 처리 기준은 기 설정된 값에 따라 다를 수 있으며, 본 도면에서는 java를 기준으로 하였으나 다른 방법의 마스킹 처리 규칙을 적용할 수 있음은 물론이다.
데이터 관리 플랫폼은 마스킹 처리 규칙에 따라 개인정보를 유형 별로 마스킹 처리할 수 있다. 상술한 예를 들어, 데이터 관리 플랫폼은 주민등록번호의 뒷자리 중 6자리를 가려서 처리할 수 있으며, 운전면허번호의 경우 뒷자리 3자리만을 마스킹 처리할 수 있다.
상술한 실시 예에 따라 마스킹 처리된 개인정보는 이후 개인정보 조회 요청 시 마스킹 처리된 상태로 출력될 수 있다. 이에 따라, 데이터 관리 플랫폼을 이용하는 경우 개인정보에 보안을 가할 수 있다.
도 29는 본 발명의 데이터 관리 플랫폼에서 정의하는 개인정보 메타데이터(1036)의 일 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼은 개인정보 메타데이터(1036)를 이용하여 감사 로그에 포함된 개인정보를 추출할 수 있다. 이를 위하여, 데이터 관리 플랫폼은 개인정보 메타데이터(1036)를 생성하고, 저장할 수 있다.
데이터 관리 플랫폼은 아키텍쳐 유형 별로 추출할 개인정보 유형 및 방식을 정의하고 개인정보 메타데이터(1036)에 저장할 수 있다. 여기에서, 아키텍쳐 유형이란 GUI 데이터인지, json 데이터인지, WEBGUI인지 여부 등을 나타낼 수 있다. 즉, 데이터 관리 플랫폼은 GUI 데이터 별로 추출할 개인정보 유형 및 방식을 정의하고, 개인정보 메타데이터(1036)에 저장할 수 있고, json 데이터 별로 추출할 개인정보 유형 및 방식을 정의할 수 있다.
보다 상세하게는, 개인정보 메타데이터(1036)은 아키텍쳐 유형, 화면 정보(레벨 1), 화면 정보(레벨 2) 및 개인정보 추출 규칙을 포함할 수 있다.
여기에서, 아키텍쳐 유형은 상술한 바와 같이 화면 유형에 대응한다. 실제로 출력되는 화면이 어떤 화면인지에 대한 정보를 포함하고 있다. 일 실시 예에서, 아키텍쳐 유형에 기초하여 개인정보 추출 규칙이 결정될 수 있다. 또한, 개인정보 메타데이터(1036)는 아키텍쳐 유형에 대응하는 레벨 1 화면 정보, 레벨 2 화면 정보를 포함할 수 있다.
개인정보 추출 규칙은 추출 방식 및 값을 포함할 수 있다. 추출 방식은 값 추출 방식, 변수 추출 방식, 값 컨텐트 추출 방식, 전문 정규식 추출 방식, 복합 개인정보 추출 방식을 예로 들 수 있다. 이하 추출 방식에 대해 설명하도록 한다.
값 추출 방식은 추출된 개인정보의 값(value)을 기준으로 개인정보를 추출하는 방식이다. 이때, 본 발명의 데이터 관리 플랫폼은 값 추출 방식의 값(value)에 대하여 개인정보 유형 리스트를 이용할 수 있다.
변수 추출 방식은 아키텍쳐 유형에 포함된 변수(variable)를 기준으로 개인정보를 추출하는 방식이다. 이때, 본 발명의 데이터 관리 플랫폼은 변수 추출 방식의 값에 대하여 개인정보 유형 리스트와 변수명 리스트를 함께 이용할 수 있다. 여기에서, 변수명 리스트는 개인정보 유형에 따른 변수명 리스트에 대응한다. 예를 들어, A 화면(A 유형)에서는 “주민”이 변수명 리스트에 포함될 수 있고, B 화면(B 유형)에서는 “SSN”이 변수명리스트에 포함될 수 있다.
전문 정규식 추출 방식은 변수가 존재하지 않은 상태에서 파싱(parsing)이 불가능한 전체 텍스트(full text)를 기준으로 개인정보를 추출하는 방식이다. 이때, 본 발명의 데이터 관리 플랫폼은 전문 정규식 추출 방식의 값에 대하여 개인정보 유형 리스트와 패턴 리스트를 함께 이용할 수 있다. 여기에서, 패턴 리스트는 값에 대한 정규식 뿐만 아니라 정규식의 앞 또는 뒤에 패턴을 추가한 것을 포함할 수 있다. 예를 들어, 데이터 관리 플랫폼은 주민번호가 정규식인 경우, 주민번호 앞에 “:”이 있는 경우를 패턴 리스트에 포함시킬 수 있다.
복합 개인정보 추출 방식은 개인정보를 추출할 때 하나의 개인정보를 기준으로 개인정보를 추출하는 것이 아닌 두개 이상의 개인정보를 기준으로 개인정보를 추출하는 방식이다. 일 실시 예에서, 데이터 관리 플랫폼은 아키텍쳐 유형 별로 “이름”과 “주민등록번호”가 모두 존재할 때만 개인정보로 판단할 수 있다. 반면, 데이터 관리 플랫폼은 아키텍쳐 유형 별로 “이름” 또는 “주민등록번호” 중 하나만 있는 경우에는 개인정보가 아니라고 판단할 수 있다.
이와 같이, 본 발명의 데이터 관리 플랫폼은 개인정보 메타데이터(1036)에 포함된 정보를 바탕으로 개인정보를 추출할 수 있다.
도 30은 본 발명의 데이터 관리 플랫폼에서 아키텍쳐 유형을 구분하여 개인정보를 추출하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼(10000)의 아키텍쳐 유형 분석부(2029)는 감사 로그(1033)로부터 아키텍쳐 유형을 구분한 뒤, 개인정보 추출부(2025)를 통하여 아키텍쳐 유형 별로 정의된 개인정보 메타데이터(1036)를 이용하여 개인정보를 추출할 수 있다.
보다 상세하게는, 데이터 관리 플랫폼(10000)은 아키텍쳐 유형에 기초하여 개인정보 메타데이터(1036)에 포함되는 필드를 정의할 수 있다. 여기에서, 아키텍쳐 유형은 로그 데이터의 변수 및 값을 분석하는 파서를 구분하는 정보에 대응한다. 즉, 아키텍쳐 유형에 따라 변수 및 값을 분석하기 위한 파싱(parsing) 방법이 달라진다. 따라서, 데이터 관리 플랫폼(10000)은 아키텍쳐 유형에 기초하여 개인정보 메타데이터(1036)에 포함되는 필드를 정의해야 한다.
일 실시 예에서, 데이터 관리 플랫폼(10000)의 아키텍쳐 유형 분석부(2029)는 감사 로그(1033) 내에 포함된 로그 데이터 내의 필드 정보에 대하여 프로토콜 유형 및 URL을 기준으로 아키텍쳐 유형을 구분할 수 있고, 이에 따라 인덱스의 필드 정보를 생성할 수 있다.
이에 따라, 데이터 관리 플랫폼(10000)의 개인정보 추출부(2025)는 아키텍쳐 유형 별로 정의된 개인정보 메타데이터(1036) 및 상술한 예외처리 리스트(1037) 중 적어도 하나를 활용하여 개인정보를 추출할 수 있다.
이후, 데이터 관리 플랫폼은 추출된 개인정보를 암호화하고, 암호화된 개인정보를 저장할 수 있다.
도 31은 본 발명의 데이터 관리 플랫폼에서 개인정보 추출 규칙을 생성하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼은 개인정보 추출 규칙을 생성할 수 있다. 이를 위하여, 본 도면에서는 개인정보 추출 규칙을 생성하는 사용자 인터페이스를 설명한다. 개인정보 추출 규칙을 생성하기 위하여, 사용자 인터페이스는 기본 정보, 값 정규식 추출 정보, 변수 기반 추출 정보 중 적어도 하나를 포함할 수 있다.
보다 상세하게는, 기본 정보는 개인정보 추출 규칙을 적용할 대상을 나타낸다. 여기에서, 기본 정보는 로그 유형, 레벨 1(화면, 트랜잭션), 레벨 2(프로그램, 서비스) 중 적어도 하나를 포함할 수 있다. 이에 따라, 사용자는 로그 유형(예를 들어, SAP GUI 로그), 레벨 1 또는 레벨 2 중 적어도 하나를 개인정보 추출 규칙을 적용할 대상으로 입력할 수 있다.
또한, 값 정규식 추출 정보는 개인정보 추출 방식 별로 추출할 개인 정보를 포함할 수 있다. 보다 상세하게는, 전체 개인정보가 존재하며, 데이터 관리 플랫폼은 사용자로부터 추출할 개인정보를 선택받을 수 있다. 이에 따라, 데이터 관리 플랫폼은 개인정보 추출 방식 별로 로그에서 값을 추출한 후 정규식 패턴과 비교하여 개인정보를 판단할 수 있다. 이를 위하여, 데이터 관리 플랫폼은 상술한 실시 예인 개인정보 유형별로 저장된 정규식 패턴 파일을 이용할 수 있다.
또한, 데이터 관리 플랫폼은 로그 유형별로 분석된 변수의 값을 이용하여 개인정보 추출 규칙을 생성할 수 있다. 이를 위하여, 데이터 관리 플랫폼은 사용자로부터 변수 기반 추출 정보를 입력 받을 수 있다.
도 32는 본 발명의 데이터 관리 플랫폼에서 개인정보 예외처리 리스트를 생성하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼은 개인정보 예외처리 리스트(1037)를 생성할 수 있다. 보다 상세하게는, 데이터 관리 플랫폼은 감사 로그(1033)로부터 개인정보 메타데이터(1036)를 이용하여 가상으로 추출되는 개인정보 항목을 확인할 수 있다. 즉, 데이터 관리 플랫폼은 개인정보 메타데이터(1036)에 포함된 항목(예를 들어, 상술한 key/value, 화면명/필드명 등)을 이용하여 개인정보를 가상으로 추출할 수 있다. 여기에서, 가상으로 추출된 개인정보 항목은 원본 로그 데이터에서 본 발명의 실시 예에 따라 생성된 개인정보 메타데이터(1036)의 항목을 기준으로 출력된 후보 데이터(candidate data)에 대응한다.
데이터 관리 플랫폼은 추출된 값 또는 분석된 변수를 기준으로 예외처리 리스트(1037)를 생성할 수 있다. 보다 상세하게는, 데이터 관리 플랫폼은 개인정보 메타데이터(1036)에 포함된 항목을 기준으로 예외처리 리스트(1037)를 생성할 수 있다.
이때, 데이터 관리 플랫폼은 개인정보 메타데이터(1036)에 포함된 아키텍쳐 유형, 화면 정보 및 개인정보 추출 규칙 중 적어도 하나를 예외처리 리스트(1037)를 생성할 수 있다. 예를 들어, 데이터 관리 플랫폼은 예외처리 리스트를 생성할 때, “제 1 아키텍쳐(UI) 유형에서 해당 키는 개인정보가 아니기 때문에 추출하지 않는다” 또는 “제 2 아키텍쳐(UI) 유형에서 해당 값은 개인정보가 아니기 때문에 추출하지 않는다”와 같이 등록할 수 있다.
예를 들면, 데이터 관리 플랫폼은 감사 로그(1033)에서 가상의 개인정보로 “계좌번호”를 추출할 수 있다. 여기에서, “계좌번호”는 후보 데이터에 대응한다. 또한, 개인정보 메타데이터(1036)의 화면명/필드명에는 A제품/시리얼 넘버가 포함되어 있을 수 있다. 여기에서, A제품의 시리얼 넘버는 개인정보에 해당하지 않는다고 가정한다. 이때, A제품에 대한 시리얼 넘버가 개인정보인 “계좌번호”와 동일한 경우, 데이터 관리 플랫폼은 추출된 “계좌번호”는 개인정보가 아닌 것으로 판단하여 예외처리 리스트(1037)에 등록할 수 있다.
즉, 데이터 관리 플랫폼은 상술한 실시 예에 따라 정의된 개인정보 메타데이터(1036)를 참고하여, 가상으로 추출되는 개인정보를 확인할 수 있다. 이때의 개인정보는 정확한 개인정보가 아닌 후보 데이터이기 때문에, 후보 데이터에 대하여 개인정보 메타데이터(1036)에 포함된 항목을 기준으로 예외처리 리스트(1037)를 생성할 수 있다.
일 실시 예에서, 데이터 관리 플랫폼은 감사 로그(1033)에서 개인정보를 추출할 때, 예외처리 리스트(1037)에 포함된 항목을 제외하고 개인정보를 추출할 수 있다.
이에 따라, 잘못된 개인정보를 추출할 확률을 낮추는 장점이 있다.
도 33은 본 발명의 데이터 관리 플랫폼의 예외 필터를 생성하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼은 상술한 방법으로 예외처리 리스트를 생성할 수 있다. 본 도면에서는 예외처리 리스트를 생성하기 위한 예외 필터 사용자 인터페이스를 설명한다. 예외 필터 사용자 인터페이스는 적어도 하나의 개인정보 항목을 포함할 수 있다.
일 실시 예에서, 데이터 관리 플랫폼은 사용자로부터 개인정보 항목에 대한 예외 필터 정보를 입력받을 수 있다. 여기에서, 예외 필터 정보는 아키텍쳐 유형(UI 유형), 레벨 1(화면, 트랜잭션), 값, 레벨 2(프로그램, 서비스), 변수 중 적어도 하나를 포함할 수 있다.
본 도면의 예를 들어 설명하면, 데이터 관리 플랫폼은 사용자로부터 예외 필터 정보로 “아키텍쳐 유형=SAP GUI”“레벨 1=SE16”“레벨 2=SAPMF02D-7230”“변수=RDTMS_VAL2”“값=8201301037329”를 수신할 수 있다.
이에 따라, 데이터 관리 플랫폼은 사용자로부터 입력받은 예외 필터 정보를 이용하여 예외처리 리스트를 생성할 수 있다.
도 34는 본 발명의 데이터 관리 플랫폼에서 추출된 개인정보를 검색하고 출력하는 실시 예를 설명하는 도면이다.
본 발명의 데이터 관리 플랫폼(10000)에 포함된 개인정보 관리 모듈(20004)의 개인정보 복호화부(2028)은 암호화된 개인정보를 복호화할 수 있다. 보다 상세하게는, 사용자가 데이터 관리 플랫폼(10000)의 모니터링 모듈(20005)를 통하여 개인정보 검색을 요청하는 경우, 데이터 관리 플랫폼(10000)은 암호화된 개인정보를 복호화할 수 있다. 이때, 데이터 관리 플랫폼(10000)은 감사 로그(1033)에 포함된 데이터를 이용하여 개인정보를 복호화할 수 있다.
일 실시 예에서, 개인정보 관리 모듈(20004)는 데이터베이스(20007)에 포함된 암호화 키를 이용하여 암호화된 개인정보를 복호화할 수 있다. 이후, 개인정보 관리 모듈(20004)의 마스킹 처리부(2029)는 복호화된 개인정보를 마스킹 처리하여 모니터링 모듈(20005)에게 제공할 수 있다. 여기에서, 개인정보를 마스킹 처리하는 방법은 상술한 바와 같다. 이에 따라, 모니터링 모듈(20005)는 개인정보 관리 모듈(20004)에 의해 마스킹 처리된 개인정보를 출력하여 사용자에게 제공할 수 있다.
이를 통하여, 데이터 관리 플랫폼은 추출된 개인정보에 대한 검색 요청이 있는 경우, 암호화 키에 기반하여 개인정보를 복호화한 뒤 마스킹 처리하여 사용자에게 제공할 수 있다. 이에 따라, 개인정보 보호에 기여할 수 있다.
도 35는 본 발명의 데이터 관리 방법이 개인정보를 관리하는 실시 예를 설명하는 도면이다.
단계(S40010)에서, 데이터 관리 방법은 개인정보 유형을 분석할 수 있다. 이를 위하여, 데이터 관리 방법은 감사 로그에서 사용되는 개인정보 유형을 분석할 수 있다.
단계(S40020)에서, 데이터 관리 방법은 개인정보 유형을 정의하고, 개인정보 유형 별로 사용되는 패턴을 저장할 수 있다. 데이터 관리 방법은 개인정보 유형 별로 사용되는 정규식 패턴 및 마스킹 패턴을 저장할 수 있다. 이에 따라, 데이터 관리 방법은 키/값 또는 화면명/필드명이 포함된 개인정보 메타데이터(1036)를 생성할 수 있다. 개인정보 메타데이터(1036)를 생성하는 구체적인 방법은 상술한 바와 같다.
단계(S40030)에서, 데이터 관리 방법은 개인정보 예외처리 리스트(1037)를 생성할 수 있다. 데이터 관리 방법은 개인정보 메타데이터(1036)를 이용하여 감사 로그에서 가상으로 추출되는 개인정보 항목을 확인할 수 있고, 추출된 값 또는 분석된 변수에 기초하여 예외처리 리스트(1037)에 포함되는 예외처리 규칙을 정의할 수 있다. 이에 따라, 데이터 관리 방법은 개인정보 예외처리 리스트(1037)를 생성할 수 있다.
단계(S40040)에서, 데이터 관리 방법은 개인정보 메타데이터(1036) 및 예외처리 리스트(1037)에 기초하여 개인정보 추출 규칙을 생성할 수 있다.
단계(S40050)에서, 데이터 관리 방법은 개인정보 추출 규칙에 기초하여 개인정보를 추출할 수 있다.
단계(S40060)에서, 데이터 관리 방법은 추출된 개인정보를 암호화하여 저장할 수 있다. 일 실시 예에서, 데이터 관리 방법은 추출된 개인정보를 암호화하기 위한 암호화 키를 생성할 수 있다.
단계(S40070)에서, 데이터 관리 방법은 개인정보 검색 요청 시 암호화된 개인정보를 복호화할 수 있다. 이때, 데이터 관리 방법은 개인정보 검색 요청 시 생성된 암호화키를 이용하여 암호화된 개인정보를 복호화할 수 있다.
단계(S40080)에서, 데이터 관리 방법은 복호화된 개인정보를 마스킹 처리할 수 있다. 개인정보를 마스킹 처리하는 방법에 대하여는 상술한 바와 같다.
단계(S40090)에서, 데이터 관리 방법은 마스킹 처리된 개인정보를 출력할 수 있다. 이를 통하여, 복호화된 개인정보는 마스킹 처리되어 출력되기 때문에 개인정보의 검색을 요청한 사용자는 개인정보를 침해하지 않으면서 데이터베이스 내의 개인정보를 검색하고 이용할 수 있다.
또한, 정규식 패턴 방식으로 추출된 개인정보의 경우 잘못 추출될 우려가 있다. 이에 따라, 본 발명에서는 상술한 실시 예 이외에도 개인정보가 잘못 추출될 위험을 줄이기 위하여 실제로 로그 상에 존재하는 개인정보를 블룸-필터(Bloom filter)화 시킬 수 있다. 즉, 추출된 개인정보에 블룸-필터를 적용하여 개인정보라고 판단되는 경우에만 추출하여 개인정보 추출의 정확도를 높일 수 있다. 이하에서 자세히 설명하도록 한다.
도 36은 본 발명의 데이터 관리 방법이 개인정보를 추출하고 저장하는 다른 실시 예를 설명하는 도면이다.
단계(S50010)에서, 데이터 관리 방법은 개인정보에 대한 해쉬(hash) 값을 수집할 수 있다. 보다 상세하게는, 데이터 관리 방법은 개인정보 암호화 솔루션과 같이 개인정보를 관리하는 시스템/플랫폼으로부터 여러 유형의 개인정보 값에 대한 해쉬 값을 수집할 수 있다. 여기에서, 개인정보를 관리하는 시스템/플랫폼은 외부 서버에 존재할 수 있다. 일 실시 예에서, 데이터 관리 방법은 수집된 해쉬 값을 개인정보 유형 별로 저장할 수 있다.
단계(S50020)에서, 데이터 관리 방법은 개인정보 유형 별 값 필터(value filter)를 생성할 수 있다. 여기에서, 값 필터는 개인정보 값의 해쉬 값에 대해 블룸-필터 자료 구조(bloom filter data structure)를 사용하여 만든 필터에 대응한다.
단계(S50030)에서, 데이터 관리 방법은 개인정보를 추출할 수 있다. 일 실시 예에서, 감사 로그 내 로그 데이터를 아키텍쳐 유형 별로 분석하여 변수 및 값을 추출하고, 추출된 값에 개인정보 추출 규칙을 적용하여 개인정보를 추출할 수 있다. 이에 대하여는 상술한 바와 같다.
단계(S50040)에서, 데이터 관리 방법은 개인정보 값을 검증할 수 있다. 즉, 상술한 내용에 더불어 추출된 개인정보 값을 검증하기 위하여 값 필터를 사용할 수 있다.
단계(S50050)에서, 개인정보에 대한 해쉬 값이 값 필터 내에 포함되어 있는 경우, 단계(S50060)에서, 데이터 관리 방법은 인덱스에 추출된 개인정보를 저장할 수 있다. 보다 상세하게는, 추출한 개인정보에 대한 해쉬 값이 블룸-필터 자료 구조를 사용하여 만든 값 필터 내에 포함되어 있는 경우, 데이터 관리 방법은 추출한 개인정보를 진짜(real) 개인정보인 것으로 판단할 수 있다. 이에 따라, 데이터 관리 방법은 감사 로그 내 추출된 개인정보에 대하여 진짜 개인정보라는 인덱스를 저장할 수 있다.
단계(S50070)에서, 데이터 관리 방법은 개인정보에 대한 해쉬 값이 값 필터 내에 포함되어 있지 않은 경우, 단계(S50080)에서, 데이터 관리 방법은 추출된 개인정보를 제거할 수 있다. 보다 상세하게는, 추출한 개인정보에 대한 해쉬 값이 블룸-필터 자료 구조를 사용하여 만든 값 필터 내에 포함되어 있지 않은 경우, 데이터 관리 방법은 추출한 개인정보를 가짜(fake) 개인정보인 것으로 판단할 수 있다. 이에 따라, 데이터 관리 방법은 추출한 개인정보가 잘못 추출된 것으로 판단하여 추출된 개인정보를 제거할 수 있다. 여기에서, 추출된 개인정보를 제거한다는 것은 데이터를 자체를 제거하는 것이 아닌 개인정보로서의 가치를 잃는 것을 의미할 수 있다.
이에 따라, 본 발명에서는, 블룸-필터 자료 구조를 이용하여 대량으로 관리되는 개인정보와 개인정보로 추출된 값을 빠르게 비교할 수 있다. 또한, 값을 검증하기 힘든 유형의 개인정보에 대한 오류를 제거할 수 있다.
도 37은 본 발명의 데이터 관리 방법에서 개인정보를 관리하는 실시 예를 설명하는 도면이다.
단계(S60010)에서, 데이터 관리 방법은 데이터를 분석할 수 있다. 본 발명의 데이터 관리 방법이 데이터를 분석하는 방법은 도 2 내지 도 5, 도 8 내지도 26, 도 29, 도 30 및 도 35의 실시 예를 참고하도록 한다.
단계(S60020)에서, 데이터 관리 방법은 분석된 데이터로부터 개인정보를 추출할 수 있다.
본 발명의 데이터 관리 방법이 개인정보를 추출하는 방법은 도 5, 도 14, 도 26, 도 35 및 도 36의 실시 예를 참고하도록 한다.
애플리케이션 상에서 수행하는 사용자의 업무 행위는 개발자의 취향 및 개발 표준에 따라 상이하게 표현된다. 즉, 본 발명을 통하여 사용자의 업무 행위를 기초로 하는 데이터에 대한 “조회, 삭제, 추가, 변경, 프린트”와 같은 사용자 행위의 구분을 용이하게 하고자 한다.
따라서, 본 발명은 애플리케이션의 메뉴 및 아이콘의 텍스트를 수집하고, 인공지능을 기반으로 자동으로 분류하여 법적으로 요구하는 사용자 행위에 대한 상세 구분을 할 수 있다.
또한, 감사 로그(audit log) 시스템에서 발생하는 이벤트 및 사용자의 활동 등의 정보를 기록한 로그로, 보안 및 감사 추적 등을 위해 사용될 수 있다. 여기에서, 감사 로그는 로그 데이터 및 로그 데이터에 대응하는 인덱스를 포함할 수 있다.
로그 데이터는 일반적으로 시간, 이벤트/행위, 사용자/주체, 대상/객체, 결과 등의 정보로 구별되며, 각각의 로그 데이터는 하나의 레코드(Record)를 형성하며, 여러 개의 레코드가 연속적으로 기록될 수 있다.
또한, 감사 로그의 데이터는 데이터베이스 등에서 인덱싱 처리되어 관리되는 것이 일반적이다. 이때, 로그 데이터의 검색 및 분석을 효율적으로 수행하기 위해 각 로그 레코드에 대한 인덱스도 함께 관리될 수 있다. 여기에서, 인덱스는 보통 검색에 사용되는 필드와 검색 속도를 향상시키기 위한 키(Key) 등의 정보를 포함한다.
예를 들어, 시간, 이벤트/행위, 사용자/주체, 대상/객체 등의 필드를 가진 감사 로그에서 사용자가 특정 파일을 삭제한 기록을 검색하기 위해, 시간 필드와 대상 필드를 조합하여 인덱스를 생성할 수 있다. 이렇게 생성된 인덱스를 활용하면, 검색 시간을 대폭 줄일 수 있다는 장점이 있다.
뿐만 아니라, 인덱스에 사용자 행위를 매핑하면, 로그 데이터를 사용자 행위를 기준으로 분류할 수 있어 보안 분석이나 모니터링에 용이하다는 장점이 있다.
본 발명의 데이터 관리 플랫폼은 감사 로그에 포함된 로그 데이터를 인공지능을 기반으로 분류된 사용자 행위를 기준으로 인덱싱 처리해 사용자가 사용자 행위를 기준으로 로그 데이터를 검색할 수 있도록 한다. 이하, 본 발명에 대해 자세히 설명한다.
도 38은 본 발명의 데이터 관리 플랫폼에서 사용자 행위를 수집하고 매핑하는 실시 예를 설명하는 도면이다.
본 발명의 데이터 관리 플랫폼(10000)은 수집 모듈(20001), 분석 모듈(20002), 모니터링 모듈(20005) 및 AI 엔진(20006)을 이용하여 사용자 행위를 수집하고, 로그 데이터와 매핑하여 인덱스 처리한 후 로그 데이터 조회 요청에 따라 사용자 행위로 인덱스 처리된 로그 데이터를 제공할 수 있다.
보다 상세하게는, 수집 모듈(20001)을 사용하여 사용자 행위에 대응하는 키 및 텍스트를 수집할 수 있다. 이때, 수집 모듈(20001)은 애플리케이션 개발환경에 연결하여 사용자 행위를 수집할 수 있다. 애플리케이션 개발환경에서는 사용자 행위를 선택하는 메뉴, 아이콘에 대한 키 및 텍스트를 보관하고 있다. 이에 따라, 본 발명의 데이터 관리 플랫폼(10000)에 포함된 수집 모듈(20001)은 이러한 사용자 행위에 대응하는 키 및 텍스트를 수집할 수 있다.
AI 엔진(20006)은 수집된 텍스트를 인공지능(AI)을 기반으로 사용자 행위(action)을 분류할 수 있다. 예를 들어, 사용자 행위는 조회, 삭제, 추가, 변경, 프린트 등의 사용자의 업무 행위를 포함할 수 있다. 이를 위하여, AI 엔진(20006)은 기계학습(machine learning), 딥 러닝(deep learning), 자연어 처리(Natural Language Processing, NLP), 규칙 기반 접근(Rule-Based Approach) 등의 방법을 사용할 수 있다.
분석 모듈(20002)은 분류된 사용자 행위에 대한 데이터를 키(key) 및 사용자 행위(action)로 구분하여 사용자 행위 메타데이터(1038)를 생성할 수 있다. 이때, 사용자 행위 메타데이터(1038)는 데이터 관리 플랫폼(10000) 내부 데이터베이스(20007) 안에 저장될 수 있다.
분석 모듈(20002)은 저장된 사용자 행위 메타데이터(1038)와 감사 로그(1033) 안에 포함된 로그 데이터를 매핑할 수 있다. 이때, 분석 모듈(20002)는 로그 데이터와 사용자 행위 메타데이터(1038)을 매핑하기 위하여, 로그 데이터를 인덱스 처리할 때 애플리케이션 개발환경 유형 별 키로 사용할 수 있는 필드와 사용자 행위 메타데이터(1038) 내에 키 정보를 매핑하여 인덱스의 사용자 행위 필드에 저장할 수 있다.
여기에서, 키 정보는 사용자 행위를 나타내는 식별 정보를 나타낸다. 일 실시 예에서, 데이터 관리 플랫폼(10000)은 사용자 행위를 텍스트로 저장하지 않고, 사용자 행위를 식별하기 위한 축약된 ID(Identification)로 저장할 수 있다. 예를 들어, 데이터 관리 플랫폼(10000)은 사용자 행위가 “조회”인 경우, 키 정보로 “R”을 저장하고, 사용자 행위가 “삭제”인 경우, 키 정보로 “D”를 저장하고, 사용자 행위가 “수정”인 경우, 키 정보로 “U”를 저장하고, 사용자 행위가 “프린트”인 경우, 키 정보로 “P”를 저장할 수 있다.
사용자는 모니터링 모듈(20005)를 통하여 로그를 조회할 수 있다. 일 실시 예에서, 모니터링 모듈(20005)은 데이터베이스(20007) 내 감사 로그(1033)에 포함된 로그 데이터를 제공할 때, 인덱스의 사용자 행위 필드를 참조하여 사용자에게 정보를 제공할 수 있다.
이하, 데이터 관리 플랫폼(10000) 내부의 각각의 모듈에서 수행되는 기능은 데이터 관리 플랫폼(10000)이 수행하는 것으로 기재하도록 한다.
도 39는 본 발명의 데이터 관리 플랫폼에서 사용자 행위 메타데이터를 생성하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼(10000)은 상술한 AI 엔진을 통하여 사용자 행위에 대응하는 키 및 텍스트를 수집할 수 있고, 수집된 텍스트를 인공지능을 기반으로 사용자 행위로 분류할 수 있다. 이에 따라, 데이터 관리 플랫폼(10000)은 수집된 사용자 행위에 대응하는 키 및 텍스트에 대하여 사용자 행위 메타데이터(1038)를 생성할 수 있다.
보다 상세하게는, 데이터 관리 플랫폼(10000)은 사용자 행위 메타데이터(1038)를 생성하기 위하여, 애플리케이션 개발환경 유형 별 키 및 사용자 행위 키를 매핑할 수 있다. 즉, 사용자 행위 메타데이터(1038)는 애플리케이션 개발환경 유형 별 키, 사용자 행위 키, 사용자 행위를 필드로 가질 수 있다.
여기에서, 애플리케이션 개발환경 유형은 상술한 아키텍쳐 유형, 화면 유저 인터페이스 유형을 포함할 수 있다. 즉, 애플리케이션 개발환경 유형은 애플리케이션 개발환경 내에서 사용자 업무 행위로 사용할 수 있는 정보 필드를 나타낸다. 예를 들어, 화면에 존재하는 메뉴 아이콘, ok 아이콘, cancel 아이콘 등을 포함할 수 있다. 또한, 사용자 행위 키는 상술한 사용자 행위를 식별하기 위한 ID를 나타낸다. 따라서, 데이터 관리 플랫폼(10000)은 사용자 행위 메타데이터(1038) 내에 애플리케이션 개발환경 유형 별 키 및 사용자 행위 키를 매핑할 수 있다.
예를 들어, 애플리케이션 개발환경 유형별 키가 “제 1 애플리케이션에서 del 키”라면, 상술한 AI 엔진 및 분석 모듈을 통하여, 데이터 관리 플랫폼(10000)은 사용자 행위 키 “D”와 매핑하여 사용자 행위 메타데이터(1038)를 생성할 수 있다. 이때, 데이터 관리 플랫폼(10000)은 애플리케이션 개발환경 유형 별 키인 “제 1 애플리케이션에서 del 키”와 사용자 행위 키인 ”D”의 사용자 행위가 “삭제”임을 사용자 행위 메타데이터(1038)에 함께 저장할 수 있다.
도 40은 본 발명의 데이터 관리 플랫폼에서 사용자 행위 메타데이터와 로그 데이터를 매핑하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼(10000)은 저장된 사용자 행위 메타데이터(1038)와 감사 로그(1033)에 포함된 로그 데이터를 매핑할 수 있다.
보다 상세하게는, 데이터 관리 플랫폼(10000)은 로그 데이터와 사용자 행위 메타데이터(1038)을 매핑하기 위하여, 로그 데이터를 인덱스 처리할 수 있다. 구체적으로, 데이터 관리 플랫폼(10000)은 상술한 실시 예를 통하여 사용자 행위 메타데이터(1038) 내의 애플리케이션 개발환경 유형 별 키 필드와 사용자 행위 키 필드를 매핑할 수 있다. 또한, 일 실시 예에서, 데이터 관리 플랫폼(10000)은 인덱스의 사용자 행위 필드에 사용자 행위 메타데이터(1038)의 사용자 행위를 저장할 수 있다.
이에 따라, 감사 로그(1033)에 저장된 제 1 로그 데이터가 사용자가 제 1 애플리케이션 화면에서 del 키를 누르는 로그를 나타내는 경우, 데이터 관리 플랫폼(10000)은 제 1 로그 데이터를 조회하는 요청을 수신하는 경우, 매핑된 사용자 행위인 “삭제”를 바로 제공할 수 있다.
이렇게 인덱스에 사용자 행위를 매핑하면, 로그 데이터를 사용자 행위를 기준으로 분류할 수 있어 보안 분석이나 모니터링에 용이하다는 장점이 있다.
도 41은 본 발명의 데이터 관리 방법이 사용자 행위 메타데이터를 생성하는 실시 예를 설명하는 도면이다.
단계(S60030)에서, 데이터 관리 방법은 애플리케이션 개발환경에서 사용자 행위를 나타내는 메뉴, 버튼 또는 아이콘 등에 대한 키(key) 및 텍스트(text)를 수집할 수 있다. 보다 상세하게는, 애플리케이션 개발환경에서는 사용자 행위를 선택하는 메뉴에 대한 키 및 텍스트를 보관할 수 있다. 이에 따라, 데이터 관리 방법은 애플리케이션 개발환경에 연결하여 사용자 행위를 선택하는 메뉴에 대한 키 및 텍스트를 수집할 수 있다. 예를 들어, 데이터 관리 방법은 제 1 애플리케이션 개발환경에 연결하여, 제 1 애플리케이션 개발 환경에서 사용자 행위인 “삭제”를 나타내는 제 1 아이콘에 대한 키 및 텍스트 “”를 수집할 수 있다.
이때, 인공지능을 통하여 수집된 텍스트를 분류하기 때문에, 완벽하게 동일한 단어를 사용하지 않더라도 그 의미가 동일한 경우 동일한 사용자 행위로 분류될 수 있다. 예를 들어, 애플리케이션 개발환경에 따라 사용자 행위를 나타내는 버튼에 대응하는 텍스트가 다를 수 있다. 예를 들어, 제 1 애플리케이션 개발환경에서는 삭제를 나타내는 버튼에 대응하는 텍스트가 “delete”지만, 제 2 애플리케이션 개발환경에서는 삭제를 나타내는 버튼에 대응하는 텍스트가 “remove”일 수 있다. 이 경우, 본 발명의 데이터 관리 방법에 따르면, 다른 애플리케이션 개발환경에서 다른 텍스트를 쓰더라도 의미가 동일한 경우 동일한 사용자 행위로 분류할 수 있다.
본 발명의 데이터 관리 방법이 사용자 행위를 나타내는 키 및 텍스트를 수집하는 방법은 도 38의 실시 예를 참고하도록 한다.
단계(S60040)에서, 데이터 관리 방법은 AI 엔진을 통하여 수집된 텍스트를 분류할 수 있다. 상술한 예를 참고하면, 데이터 관리 방법은 AI 엔진을 통하여 “delete”라는 텍스트를 사용자 행위인 “삭제”로 분류할 수 있다.
단계(S60050)에서, 데이터 관리 방법은 분류된 데이터를 사용자 행위 메타데이터로 저장할 수 있다. 상술한 바와 같이, 데이터 관리 방법은 제 1 애플리케이션 개발환경에서, 제 1 아이콘에 대한 키 및 텍스트 “”를 사용자 행위 “삭제”와 매핑하여 사용자 행위 메타데이터에 저장할 수 있다.
도 42는 본 발명의 데이터 관리 방법이 사용자 행위 메타데이터와 로그 데이터를 매핑하는 실시 예를 설명하는 도면이다.
단계(S60060)에서, 데이터 관리 방법은 로그 데이터와 사용자 행위 메타데이터를 매핑하기 위한 메모리를 캐싱할 수 있다. 여기에서, 사용자 행위 메타데이터 상술한 바와 같은 방법으로 생성되어 저장된 것을 특징으로 한다. 일 실시 예에서, 데이터 관리 방법은 로그 데이터와 사용자 행위 메타데이터를 빠르게 매핑하기 위하여 매핑할 정보를 메모리에 캐싱(caching)할 수 있다. 즉, 데이터 관리 방법은 로그 데이터와 사용자 행위 메타데이터 중 매핑할 정보를 데이터베이스 상에서 조회하는 것이 아니라, 미리 메모리에 읽어 두어 빠르게 접근하도록 할 수 있다.
단계(S60070)에서, 데이터 관리 방법은 로그 데이터와 사용자 행위 메타데이터를 매핑한 후 인덱스 처리할 수 있다. 보다 상세하게는, 데이터 관리 방법은 로그 데이터를 인덱스 처리할 때, 애플리케이션 개발환경 유형 별 키 필드와 사용자 행위 키 필드를 매핑하여 인덱스의 사용자 행위 필드에 저장할 수 있다. 일 시 예에서, 데이터 관리 방법은 로그 데이터를 인덱스 처리할 때, 인덱스의 사용자 행위 필드에 사용자 행위 메타데이터의 사용자 행위를 저장할 수 있다.
단계(S60080)에서, 데이터 관리 방법은 로그 조회를 요청받는 경우, 인덱스의 사용자 행위 필드를 참조하여 정보를 제공할 수 있다.
이를 통해, 개인정보가 포함된 모든 로그 데이터에 대해 사용자 행위를 매핑할 수 있다.
도 43은 본 발명의 데이터 관리 방법이 사용자 행위 메타데이터를 생성하는 실시 예를 설명하는 도면이다.
단계(S70010)에서, 데이터 관리 방법은 데이터를 수집할 수 있다. 본 발명의 데이터 관리 방법이 데이터를 수집하는 방법은 도 2 내지 도 7 및 도 38의 실시 예를 참고하도록 한다.
단계(S70020)에서, 데이터 관리 방법은 수집된 데이터를 분류할 수 있다. 본 발명의 데이터 관리 방법이 데이터를 분류하는 방법은 도 38, 도 39 및 도 41의 실시 예를 참고하도록 한다.
단계(S70030)에서, 데이터 관리 방법은 데이터에 포함된 적어도 하나의 정보를 매핑하여 사용자 행위 메타데이터를 생성할 수 있다. 본 발명의 데이터 관리 방법이 사용자 행위 메타데이터를 생성하는 방법은 도 39 및 도 41의 실시 예를 참고하도록 한다.
개인정보 암호화 키는 법적 기준을 준수하기 위해 주기적으로 변경해야 한다. 이때, 암호화를 위한 키 값은 해당 키를 변경하게 되면 기존 키를 복호화하고 새로운 키로 재 암호화해야 한다. 즉, 키를 변경하는 경우 수천만 내지 수억 건의 데이터를 복호화하고, 재 암호화하기 위해 많은 시간이 소요된다. 따라서, 대부분의 회사들은 법적 기준을 준수해야 함에도 불구하고 암호화 키 변경을 수행하고 있지 않는 경우가 많다.
본 발명은 암호화 값에 대한 토큰(token, 대체 값)과 암호화 값에 대한 키 ID를 별도로 저장하는 방안을 제안하고자 한다. 이를 통하여 신규로 생성된 키 값으로 실시간으로 암호화할 수 있고, 새로운 키 값으로 운영 서버에 영향을 주지 않고 복호화 및 재암호화하는 기능을 제공할 수 있다.
또한, 상술한 점 이외에도 애플리케이션 서버의 요구에 따라 암호화 데이터를 처리해야 할 필요가 있다. 이때, 데이터베이스의 암호화 방식을 사용하는 경우, 데이터가 로드될 때 복호화되어 원문(original text)으로 전송되기 때문에 다양한 방법에 의해서 원문이 유출될 수 있다. 따라서, 서버 메모리 내에서 암호화 데이터를 처리하고 필요할 때만 복호화 해야 한다.
본 발명의 데이터 관리 플랫폼에서는 암호화 키가 변경되더라도 데이터의 복호화 및 재암호화가 내부에서 일어나기 때문에 원문의 유출이 없다는 장점이 있다.
이하 본 발명에 대하여 자세히 설명하도록 한다.
도 44은 본 발명의 데이터 관리 플랫폼에서 개인정보를 암호화하는 실시 예를 설명하는 도면이다.
본 발명의 일 실시 예에서, 데이터 관리 플랫폼(10000)은 키 관리 모듈(20003)을 통하여 암호화 키 및 키 ID를 생성하고, 생성된 암호화 키를 사용하여 개인정보를 암호화하고, 암호화된 개인정보에 대응하는 토큰 값을 생성할 수 있다.
이를 위하여, 데이터 관리 플랫폼(10000)의 키 관리 모듈(20003)은 암호화 키 및 키 ID 생성부(2015), 개인정보 암호화부(2016), 토큰 값 생성부(2017) 및 매핑 정보 저장부(2018)를 포함할 수 있다. 여기에서, 키 관리 모듈(20003)은 Java 및 RFC를 사용할 수 있고, 개인정보의 암호화 및 복호화를 담당할 수 있다.
여기에서, 암호화 키 및 키 ID 생성부(2015)는 개인정보 암호화를 위한 암호화 키 및 키 ID를 생성 및 관리할 수 있다. 일 실시 예에서, 암호화 키 및 키 ID 생성부(2015)는 사용자의 제어에 기초하여 암호화 키 및 키 ID를 새로 생성할 수 있다. 이때, 암호화 키는 신규 키 ID가 발급됨으로써 변경될 수 있다.
예를 들어, 사용자는 데이터 관리 플랫폼(10000)이 제공하는 일괄 암호화 키 변경 기능을 선택할 수 있고, 이에 따라 암호화 키 및 키 ID 생성부(2015)는 암호화 키 및 키 ID를 새로운 값으로 생성할 수 있다. 또한, 다른 일 실시 예에서, 암호화 키 및 키 ID 생성부(2015)는 사용자 제어가 없더라도 기 설정된 주기에 기초하여 암호화 키 및 키 ID를 업데이트할 수 있다.
개인정보 암호화부(2016)는 암호화 키를 이용하여 개인정보를 암호화할 수 있다. 개인정보 암호화부(2016)는 데이터 관리 플랫폼(10000) 내에 저장된 가장 최신 암호화 키를 이용하여 개인정보를 암호화할 수 있다.
토큰 값 생성부(2017)는 암호화된 개인정보에 대응하는 토큰 값(대체 값)을 생성할 수 있다.
정보 저장부(2018)는 생성된 토큰 값, 암호화된 개인정보에 대응하는 암호본, 키 ID를 매핑 정보 테이블(1039)에 저장할 수 있다. 또한, 정보 저장부(2018)는 토큰 값을 업무 테이블(1040)에 별도로 저장할 수 있다.
즉, 암호화 키 및 키 ID 생성부(2015)를 통하여 암호화 키가 변경되더라도 업무 테이블(1040)에 저장된 값은 변하지 않기 때문에, 시스템 운영을 중단하지 않으면서 암호화 키를 변경할 수 있다.
도 45는 본 발명의 데이터 관리 플랫폼에서 개인정보를 암호화하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼은 개인정보를 수집할 수 있다. 데이터 관리 플랫폼은 수집된 패킷으로부터 분석한 데이터 또는 직접적으로 수신한 데이터 중 개인정보를 추출할 수 있다. 또한, 데이터 관리 플랫폼은 개인정보 자체(예를 들어, 주민등록번호 “730101-1088123”)를 수신할 수 있다.
일 실시 예에서, 데이터 관리 플랫폼은 상술한 암호화 키 및 키 ID 생성부를 통하여 생성된 암호화 키와 키 ID를 이용하여 개인정보를 암호화할 수 있다.
본 도면을 예로 들어 설명하면, 데이터 관리 플랫폼은 생성된 제 1 암호화 키 및 키 ID는 “KEY001”를 사용하여 개인정보를 암호화할 수 있다. 여기에서, 암호화 키는 binary 형태로 생성될 수 있다. 예를 들어, 제 1 암호화 키는 “01001000 01001010 00110001 00110001 00110011 00111000 00110000 00110001 01011010 00111101 00111101”에 대응할 수 있다. 상술한 예를 들어 설명하면, 개인정보인 주민등록번호 “730101-1088123”은 생성된 암호화 키에 의해 암호화될 수 있다.
일 실시 예에서, 암호화는 개인정보 전체를 암호화하거나, 일부를 암호화하는 방법으로 진행될 수 있다. 특히, 본 발명은 개인정보 중 일부를 암호화하는 것을 특징으로 한다. 이때, 키 ID는 암호화 알고리즘이 매핑되어 있다. 일 실시 예에서, 사용 가능한 암호화 알고리즘은 양방향 알고리즘으로 SEED, ARIA128, ARIS192, ARIA256, AES128, AES192, DES, TDES를 사용할 수 있고, 단방향 알고리즘으로 SHA-256을 사용할 수 있다. 이때, 키 ID에 기초하여 암호화되는 알고리즘이 결정될 수 있다.
개인정보가 암호화된 이후, 데이터 관리 플랫폼은 암호화된 개인정보에 대응하는 토큰 값을 생성할 수 있다. 본 도면의 예에서 토큰 값은 “abcxxf”에 대응한다. 이때, 토큰 값은 암호화된 개인정보의 자리 수 및 형식(format)을 유지할 수 있다. 예를 들어, 개인정보인 주민등록번호 “730101-1088123” 중 뒤 6자리를 부분 암호화하는 경우, 이를 대체하는 토큰 값은 동일한 자리 수 및 형식인 “abcxxf”에 대응할 수 있다.
일 실시 예에서, 데이터 관리 플랫폼은 생성된 토큰 값, 암호화된 개인정보에 대응하는 암호본, 키 ID를 매핑 정보 테이블에 저장하고, 토큰 값을 업무 테이블에 저장할 수 있다. 매핑 정보 테이블과 업무 테이블에 대하여는 후술하도록 한다.
도 46는 본 발명의 매핑 정보 테이블과 업무 테이블을 설명하는 도면이다.
본 도면은 매핑 정보 테이블(1039)과 업무 테이블(1040)를 예시하는 도면이다. 본 도면에서 매핑 정보 테이블(1039)과 업무 테이블(1040)은 본 발명과 관련이 있는 필드만을 나타낸 것으로, 이외의 필드를 더 포함할 수 있음은 물론이다.
일 실시 예에서, 매핑 정보 테이블(1039)은 토큰 값, 암호본 및 키 ID를 포함할 수 있다. 토큰 값, 암호본, 키 ID는 각각의 필드로 구성되어 있으며, 매핑 정보 테이블(1039)은 매핑 값을 각각 필드에 맞게 포함할 수 있다. 상술한 실시 예를 예로 들어 설명하면, 키 ID “KEY001”를 이용하여 개인정보를 암호화할 수 있고, 암호화된 개인정보에 대응하는 암호본은 “HJ113801Z==”이고, 이에 대응하는 토큰 값이 “abcxxf”인 경우, 매핑 정보 테이블(1039)은 토큰 값, 암호본 및 키 ID를 동일한 행으로 매핑하여 저장할 수 있다.
일 실시 예에서, 업무 테이블(1040)은 토큰 값을 포함할 수 있다. 여기에서, 업무 테이블(1040)은 필드의 길이가 정해져 있기 때문에 암호본이나 키 ID를 직접 저장할 수 없기 때문에 데이터 관리 플랫폼은 토큰에 매핑되어 있는 암호본과 키 ID를 매핑 정보 테이블(1039)에 별도로 저장할 수 있다.
이때, 권한 있는 사용자가 개인정보를 확인하기 위해서는, 매핑 정보 테이블(1039)에 포함된 암호본을 이용할 수 있다. 상술한 예를 들어 설명하면, 권한 있는 사용자가 데이터 관리 플랫폼에게 개인정보의 복호화를 요청하는 경우, 데이터 관리 플랫폼은 업무 테이블(1040)에 포함된 토큰 값 “abcxxf”을 이용해 매핑 정보 테이블(1039)에 있는 암호본 “”을 추출하고, 암호본을 이용하여 개인정보를 복호화할 수 있다. 특히, 본 발명은 매핑 정보 테이블(1039)와 업무 테이블(1040)이 저장된 저장소와 암호화 키 및 키 ID가 저장된 저장소를 별도로 구분된 것을 특징으로 한다. 또한, 본 발명의 데이터 관리 플랫폼은 매핑 정보 테이블(1039)와 업무 테이블(1040)이 저장된 시스템과 암호화 키 및 키 ID가 저장된 시스템을 별도로 구비할 수 있다. 이를 통해, 법적인 보안 요구 조건을 만족할 수 있다.
상술한 실시 예에 따라, 데이터 관리 플랫폼은 업무 테이블(1040)에 토큰 값을 저장할 수 있다. 여기에서, 데이터 관리 플랫폼은 키 ID나 개인정보 암호화 값이 변경되더라도 토큰 값은 변경하지 않은 상태로 유지할 수 있다.
이를 통하여, 토큰 값은 변하지 않은 상태에서 암호화 키와 키 ID를 새롭게 변경할 수 있다.
도 47은 본 발명의 데이터 관리 플랫폼에서 신규 암호화 키를 생성하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 암호화 키 및 키 ID 생성부(2015)는 새로운 암호화 키 및 키 ID를 생성할 수 있다. 예를 들어, 암호화 키 및 키 ID 생성부(2015)는 제 2 암호화 키 및 키 ID “KEY002”를 생성할 수 있다. 여기에서, 제 2 암호화 키는 상술한 실시 예와 마찬가지로 binary로 표현될 수 있다.
이에 따라, 데이터 관리 플랫폼은 기존의 매핑 정보 테이블(1039)에 포함된 암호본과 키 ID를 새로운 암호본 및 키 ID로 업데이트할 수 있다.
보다 상세하게는, 데이터 관리 플랫폼은 새롭게 생성된 키 ID에 기초하여 암호화 알고리즘을 결정하고, 새로운 암호화 키를 이용하여 개인정보 암호화 값을 변경할 수 있다. 이를 위하여, 데이터 관리 플랫폼은 기존 암호본 및 키 ID를 이용하여 개인정보를 복호화한 뒤, 새롭게 생성된 암호화 키 및 키 ID를 이용하여 개인정보를 재암호화할 수 있다.
이에 따라, 매핑 정보 테이블(1039)에 포함된 토큰 값은 유지가 되지만, 개인정보 암호화 값과 키 ID는 새로 생성된 값으로 변경된다. 이때, 업무 테이블(1040)에 포함된 토큰 값은 변함이 없다.
도 48은 본 발명의 데이터 관리 플랫폼에서 새로운 업무 데이터를 추가하는 실시 예를 설명하는 도면이다.
본 도면에서는 데이터 관리 플랫폼에서 새로운 개인정보가 추가된 실시 예를 설명한다. 데이터 관리 플랫폼은 새로운 업무 데이터(개인정보인 경우를 예로 한다.)를 수집 또는 수신하는 경우, 가장 최신 암호화 키 및 키 ID를 이용하여 새로운 개인정보를 암호화할 수 있다.
예를 들어, 새로운 개인정보로 계좌번호 “114-910224-12345”가 수신된 경우, 데이터 관리 플랫폼은 가장 최신 암호화 키인 제 2 암호화 키 및 키 ID “KEY002”를 이용하여 개인정보를 암호화할 수 있다. 이후, 데이터 관리 플랫폼은 개인정보에 대응하는 토큰 값을 생성할 수 있다. 예를 들어, 토큰 값은 “hijklm”에 대응한다.
데이터 관리 플랫폼은 토큰 값, 암호본 및 키 ID를 매핑 정보 테이블(1039)에 저장하고, 토큰 값을 업무 테이블(1040)에 저장할 수 있다.
새로운 개인정보가 추가되기 전 가장 최신 암호화 키 및 키 ID가 반영된 매핑 정보 테이블(1039)은 제 1 행에 토큰 값 “abcxxf”, 암호본 “29AB3801Z==” 및 키 ID “KEY002”를 저장하고 있다. 새로운 개인정보가 추가되면, 매핑 정보 테이블(1039)은 제 2 행에 토큰 값 “hijklm”암호본 ”AQ348701Z==” 및 키 ID “KEY002”를 더 포함할 수 있다.
마찬가지로, 새로운 개인정보가 추가되기 전 업무 테이블(1040)은 제 1 행에 “abcxxf”를 저장하고 있고, 새로운 개인정보가 추가되면 제 2 행에 “hijklm”을 저장할 수 있다.
즉, 본 발명의 데이터 관리 플랫폼은 가장 최신 암호화 키 및 키 ID를 기준으로 매핑 정보 테이블(1039)에 포함된 정보를 업데이트할 수 있고, 키 ID만 변경하면 개인정보의 복호화 및 재암호화를 진행하기 때문에 수천만 건의 데이터를 실시간으로 변경할 수 있다.
도 49는 본 발명의 개인정보 암호화의 실 사용 예를 설명하는 도면이다.
일 실시 예에서, 사용자는 애플리케이션 서버의 운영 시스템(1041)에 접속하여 개인정보를 입력할 수 있다. 이에 따라, 데이터 관리 플랫폼(10000)은 개인정보를 암호화 및 복호화할 수 있다. 이때, 데이터 관리 플랫폼(10000)은 상술한 암호화 키 및 키 ID를 생성하여 개인정보를 암호화할 수 있다. 또한, 데이터 관리 플랫폼(10000)은 사용자의 명령에 기초하여 실시간으로 키를 변경할 수 있어, 기존의 키로는 개인정보를 복호화할 수 없게 된다. 이에 따라, 데이터 관리 플랫폼(10000)은 가장 최신 암호화 키 및 키 ID를 이용하여 개인정보를 복호화 및 재암호화할 수 있다.
일 실시 예에서, 데이터 관리 플랫폼(10000)은 암호화된 개인정보에 대응하는 토큰 값을 생성할 수 있다. 이후, 데이터 관리 플랫폼(10000)은 생성된 토큰 값, 암호본, 키 ID를 매핑 정보 테이블(1039)에 저장하고, 토큰 값을 업무 테이블(1040)에 저장할 수 있다. 또한, 매핑 정보 테이블(1039)와 업무 테이블(1040)은 데이터 관리 플랫폼(10000)의 내부 또는 외부 데이터베이스에 저장될 수 있다. 이때, 매핑 정보 테이블(1039)와 업무 테이블(1040)에 저장되는 데이터베이스와 암호화 키 및 키 ID가 저장되는 데이터베이스는 별도로 구비되어야 한다.
이에 따라, 비인가 사용자가 시스템(1041)에 접속하여 개인정보를 조회하는 경우, 데이터 관리 플랫폼(10000)은 암호화된 개인정보에 대응하는 토큰 값 만을 반환할 수 있다.
도 50은 본 발명의 데이터 관리 방법이 개인정보를 암호화하는 실시 예를 설명하는 도면이다.
단계(S80010)에서, 데이터 관리 방법은 암호화 키 및 키 ID를 생성할 수 있다. 이때, 키 ID는 암호화 알고리즘이 매핑되어 있다.
단계(S80020)에서, 데이터 관리 방법은 생성된 암호화 키를 이용하여 개인정보를 암호화할 수 있다. 일 실시 예에서, 데이터 관리 방법은 가장 최신 암호화 키를 이용하여 개인정보를 암호화할 수 있다.
단계(S80030)에서, 데이터 관리 방법은 암호화된 개인정보에 대응하는 토큰(token) 값(대체 값)을 생성할 수 있다. 일 실시 예에서, 토큰 값은 암호화된 개인정보의 자리 수 및 형식(format)을 유지할 수 있다.
단계(S80040)에서, 데이터 관리 방법은 토큰 값, 암호본 및 키 ID를 포함하는 매핑 정보를 매핑 정보 테이블에 저장할 수 있다.
단계(S80050)에서, 데이터 관리 방법은 토큰 값을 업무 테이블에 저장할 수 있다.
도 51은 본 발명의 데이터 관리 방법이 신규 암호화 키를 생성하는 실시 예를 설명하는 도면이다.
단계(S80060)에서, 데이터 관리 방법은 신규 암호화 키 및 신규 키 ID를 생성할 수 있다. 일 실시 예에서, 데이터 관리 방법은 사용자 설정에 따라 또는 주기적으로 자동으로 신규 암호화 키 및 신규 키 ID를 생성할 수 있다.
단계(S80070)에서, 데이터 관리 방법은 기존 암호화 키를 사용하여 암호화된 개인정보를 복호화할 수 있다.
단계(S80080)에서, 데이터 관리 방법은 신규 암호화 키를 사용하여 개인정보를 다시 암호화할 수 있다.
단계(S80090)에서, 데이터 관리 방법은 토큰 값, 새로운 암호본 및 신규 키 ID를 포함하는 매핑 정보를 매핑 정보 테이블에 저장할 수 있다. 이때, 업무 테이블에 저장된 토큰 값에는 아무 영향이 없다.
도 52는 본 발명의 데이터 관리 방법이 새로운 업무 데이터를 추가하는 실시 예를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 방법은 새로운 업무 데이터를 수신하는 경우, 새로운 업무 데이터에 포함된 정보 중 암호화가 필요한 정보가 존재하는지 여부를 판단할 수 있다. 보다 상세하게는, 데이터 관리 방법은 새로운 업무 데이터를 수신하는 경우, 새로운 업무 데이터에 개인정보가 포함되어 있는 경우, 개인정보를 암호화하여 데이터베이스에 저장할 수 있다. 이하, 새로 수신한 업무 데이터에 포함된 정보 중 암호화가 필요한 정보가 개인정보인 경우를 예로 들어 설명하도록 한다. 다만, 개인정보가 아니더라도 암호화가 필요한 다른 정보에 적용될 수 있음은 물론이다.
단계(S90010)에서, 데이터 관리 방법은 새로운 개인정보를 수신할 수 있다. 일 실시 예에서, 데이터 관리 방법은 수집된 패킷으로부터 분석한 데이터로부터 또는 직접적으로 수신한 데이터 중 개인정보를 수신할 수 있다.
단계(S90020)에서, 데이터 관리 방법은 새로운 개인정보에 대하여 가장 최신 암호화 키 및 키 ID를 적용하여 개인정보를 암호화할 수 있다.
단계(S90030)에서, 데이터 관리 방법은 개인정보에 대응하는 토큰 값을 생성할 수 있다.
단계(S90040)에서, 데이터 관리 방법은 토큰 값, 암호본 및 키 ID를 포함하는 매핑 정보를 매핑 정보 테이블에 저장할 수 있다.
단계(S90050)에서, 데이터 관리 방법은 토큰 값을 업무 테이블에 저장할 수 있다.
도 53은 본 발명의 데이터 관리 방법이 개인정보를 암호화하는 실시 예를 설명하는 도면이다.
단계(S90060)에서, 데이터 관리 방법은 제 1 데이터를 수집할 수 있다. 본 발명의 데이터 관리 방법이 제 1 데이터를 수집하는 방법은 도 2 내지 도 7의 실시 예를 참고하도록 한다.
단계(S90070)에서, 데이터 관리 방법은 제 1 데이터를 분석할 수 있다. 본 발명의 데이터 관리 방법이 제 1 데이터를 분석하는 방법은 도 2 내지 도 5, 도 8 내지 13의 실시 예를 참고하도록 한다.
단계(S90080)에서, 데이터 관리 방법은 제 1 데이터로부터 제 1 개인정보를 추출할 수 있다. 본 발명의 데이터 관리 방법이 제 1 데이터로부터 제 1 개인정보를 추출하는 방법은 도 2 내지 5, 도 14, 도 44의 실시 예를 참고하도록 한다.
단계(S90090)에서, 데이터 관리 방법은 제 1 개인정보를 암호화할 수 있다. 본 발명의 데이터 관리 방법이 제 1 개인정보를 암호화하는 방법은 도 44 내지 도 48의 실시 예를 참고하도록 한다.
데이터에 개인정보가 포함되어 있는 경우, 법적 조건에 따라 개인정보를 암호화하여 별도로 보관해야 할 필요가 있다. 즉, 상술한 바와 같이 본 발명의 데이터 관리 플랫폼에서는 개인 정보를 토큰 값으로 저장할 수 있다. 다만, 시스템 운영자의 요구에 따라 테스트를 위하여 개인정보를 사용하는 경우가 있다.
본 발명에서는, 시스템에 저장된 토큰 값은 유지한 상태로, 암호화 데이터만을 변조하여 테스트 시스템에서 사용할 수 있도록 한다. 즉, 본 발명은 테스트 환경에서 암호화된 개인정보 조회 시 변조된 데이터를 제공함으로써 암호화된 데이터와 다른 데이터를 제공할 수 있다.
이를 통하여, 사용 목적을 다하거나, 내/외부 개발자를 통한 데이터 유출을 막을 수 있다는 장점이 있다.
도 54는 본 발명의 데이터 관리 플랫폼에서 데이터를 변조하는 실시 예를 설명하는 도면이다.
본 발명의 데이터 관리 플랫폼(10000)은 키 관리 모듈(20003)을 통하여 데이터를 변조할 수 있다. 이를 위하여, 데이터 관리 플랫폼(10000)의 키 관리 모듈(20003)은 토큰 값/매핑 정보 생성부(2017), 매핑 정보 저장부(2018), 데이터 변조부(2030) 및 데이터 조회부(2031)를 포함한다.
토큰 값/매핑 정보 생성부(2017)는 변조할 데이터에 대응하는 토큰 값 및 매핑 정보를 생성할 수 있다. 여기에서, 토큰 값은 데이터의 변조를 지원하고 원문 데이터를 대신하여 사용될 수 있다.
매핑 정보 저장부(2018)는 생성된 토큰 값을 업무 테이블(1040)에 저장하고, 토큰 값, 원문 데이터에 대응하는 암호본 및 기타 정보를 매핑 정보 테이블(1039)에 저장할 수 있다. 이를 통해, 변조된 데이터와 원문 데이터를 연결하고, 변조 대상 정보에 대한 신뢰성을 제공할 수 있다.
또한, 매핑 정보 저장부(2018)는 외부 요청에 기초하여 업무 테이블(1040) 및 매핑 정보 테이블(1039)에 저장된 정보를 조회할 수 있도록 한다. 이를 통해, 변조된 데이터에 대한 접근 및 검증을 용이하게 할 수 있다.
데이터 변조부(2030)는 변조 정책에 따라 원문 데이터를 변조된 데이터로 변조할 수 있다. 즉, 데이터 변조부(2030)는 업무 테이블(1040)에 저장된 토큰 값은 변경하지 않고, 매핑 정보 테이블(1039)에 저장된 암호본을 변조된 암호본으로 변조하여, 업무 데이터의 변조 효과를 달성할 수 있다. 또한, 일 실시 예에서, 데이터 변조부(2030)는 데이터 변조를 위한 정책의 주기 및 승인을 관리할 수 있다. 보다 상세하게는, 변조를 위한 정책은 어떤 원문 데이터를 어떤 키를 사용하여 변조할 것인지를 포함할 수 있다. 또한, 변조 주기는 사용자에 의해 설정될 수 있다. 또한, 데이터 관리 플랫폼(10000)은 변조 승인 여부에 대하여 데이터 변조를 수행한 후 변조를 적용할 것인지 여부를 사용자에게 요청할 수 있다. 이를 통해, 데이터 변조 작업을 통제하고 변조 작업에 대한 검증 절차를 마련할 수 있다.
데이터 조회부(2031)는 업무 테이블(1040)에 저장된 토큰 값과 매핑 정보 테이블(1039)에 저장된 매핑 정보를 이용하여 데이터를 조회할 수 있다. 이때, 데이터 조회부(2031)는 조회를 요청한 사용자에 대하여 변조된 데이터를 제공함으로써 원문 데이터의 안전성을 유지할 수 있다.
도 55는 본 발명의 데이터 관리 방법이 데이터에 대응하는 토큰 값 및 매핑 정보를 생성하는 실시 예를 설명하는 도면이다.
단계(S11010)에서, 데이터 관리 방법은 데이터를 수신할 수 있다. 여기에서, 수신한 데이터는 변조 대상 데이터에 대응할 수 있다. 일 실시 예에서, 사용자가 변조를 요청한 데이터에 대응할 수 있다.
단계(S11020)에서, 데이터 관리 방법은 수신한 데이터에 대응하는 토큰 값 및 매핑 정보를 생성할 수 있다. 여기에서, 매핑 정보는 암호본와 암호본에 대한 기타정보를 포함할 수 있다. 이때, 기타정보는 원문 데이터의 실제 암호화 데이터에 대한 정보, 해쉬(hash) 정보 및 키 ID 등을 포함할 수 있다.
단계(S11030)에서, 데이터 관리 방법은 생성된 토큰 값 및 매핑 정보를 매핑 정보 테이블에 저장할 수 있다. 일 실시 예에서, 데이터 관리 방법은 변조 대상 데이터에 대응하는 토큰 값과 매핑 정보를 매핑하여 매핑 정보 테이블에 저장할 수 있다. 또한, 데이터 관리 방법은 토큰 값에 대해서는 업무 테이블에 저장할 수 있다.
도 56은 본 발명의 매핑 정보 테이블 및 업무 테이블을 설명하는 도면이다.
일 실시 예에서, 매핑 정보 테이블(1039)은 변조 대상 데이터에 대응하는 토큰 값, 암호본 및 기타정보를 포함할 수 있다. 예를 들어, 변조 대상 데이터가 개인정보이고, 주민등록번호인 경우, 원문 데이터가 “730101-1111111”인 경우, 암호화된 상태의 원문 데이터는 “730101-1abcxxf”에 대응할 수 있다. 일 실시 예에서, 데이터 관리 플랫폼은 변조 대상(target) 데이터인 원문 데이터 “730101-1111111”에 대한 토큰 값으로 “abcxxf”을 생성할 수 있다.
이에 따라, 데이터 관리 플랫폼은 매핑 정보 테이블(1039)에 원문 데이터 “730101-1111111”에 대응하는 암호본인 “HJ113801Z==”와 토큰 값 “abcxxf”와 원문 데이터 ”730101-1111111“에 대한 기타정보를 매핑하여 저장할 수 있다. 여기에서, 기타정보는 원문 데이터 ”730101-1111111”에 대한 암호화 키 정보 및 원문 해쉬 정보 등을 포함할 수 있다. 예를 들어, 기타정보는 원문 데이터 ”730101-1111111”에 대한 키 ID 등을 포함할 수 있다. 이에 대하여는 상술한 바와 같다.
일 실시 예에서, 업무 테이블(1040)은 토큰 값을 포함할 수 있다. 상술한 예를 들어 설명하면, 변조 대상 데이터가 개인정보이고, 주민등록번호인 경우, 암호화된 상태의 원문 데이터인 ”730101-1abcxxf”가 업무 테이블(1040)에 저장될 수 있다.
이때, 업무 테이블(1040)에 저장된 토큰 값은 데이터가 암호화되거나 변조되어도 변하지 않기 때문에 데이터의 무결성을 보장할 수 있다.
도 57은 본 발명의 데이터 관리 방법이 데이터를 변조하는 실시 예를 설명하는 도면이다.
단계(S11040)에서, 데이터 관리 방법은 변조 정책(policy)에 따른 원문(original) 데이터를 변조할 수 있다. 여기에서, 변조 정책이란 어떤 데이터를 어떤 키로 변조할 것인지에 대한 정보를 포함할 수 있다. 보다 상세하게는, 데이터 변조의 정의는 원문 데이터를 다른 데이터로 변경(change)하는 것을 나타낸다. 본 발명의 데이터 관리 방법에 있어서, 데이터의 형식, 포맷 또는 길이 등을 유지하는 상태에서, 암호화된 데이터를 또 다른 데이터로 암호화하는 과정을 데이터 변조 과정으로 볼 수 있다. 이를 위하여, 데이터 관리 방법은 암호화된 데이터를 다른 데이터로 변조하기 위한 변조 키를 이용할 수 있다. 여기에서, 변조 키는 상술한 실시 예인 암호화 키와 동일하거나 상이할 수 있다. 보다 상세하게는, 변조 키와 암호화 키는 물리적으로 동일한 키일 수 있으나, 다른 용도로 사용할 수 있다.
단계(S11050)에서, 데이터 관리 방법은 변조된 데이터를 매핑 정보 테이블에 저장할 수 있다. 일 실시 예에서, 데이터 관리 방법은 매핑 정보 테이블에 저장된 암호화된 원문 데이터를 변조된 데이터로 대체할 수 있다.
도 58은 본 발명의 변조된 데이터가 저장된 매핑 정보 테이블 및 업무 테이블을 설명하는 도면이다.
일 실시 예에서, 매핑 정보 테이블(1039)은 변조 대상 데이터에 대응하는 토큰 값, 원문 데이터 값 및 기타정보를 포함할 수 있다. 상술한 실시 예에 따라, 데이터 변조가 수행되면, 매핑 정보 테이블(1039)은 변조 대상 데이터에 대응하는 토큰 값, 변조된 데이터 값 및 기타정보를 포함할 수 있다. 즉, 데이터 변조가 수행되면, 데이터 관리 플랫폼은 매핑 정보 테이블(1039)에 포함된 원문 데이터를 변조된 데이터로 변경할 수 있다.
상술한 예를 들어 설명하면, 원문 데이터가 암호화된 주민등록번호인 경우, 매핑 정보 테이블(1039)에는 원문 데이터 “730101-1111111”에 대응하는 제 1 암호본인 “HJ113801Z==”이 저장되어 있다. 이때, 데이터 관리 플랫폼을 통하여 데이터 변조가 일어나는 경우, 원문 데이터가 “730101-1222222”로 변조되고, 매핑 정보 테이블(1039)에는 변조 데이터인 “730101-1222222”에 대응하는 제 2 암호본인 “AB123051X==”가 저장될 수 있다. 이때, 데이터 관리 플랫폼은 업무 테이블(1040)에 저장된 토큰 값은 변경하지 않는다.
도 59는 본 발명의 데이터 관리 방법에서 변조된 데이터를 조회하는 실시 예를 설명하는 도면이다.
단계(S11060)에서, 데이터 관리 방법은 데이터 조회 요청을 수신할 수 있다. 예를 들어, 제 1 사용자는 데이터를 요청할 수 있다.
단계(S11070)에서, 데이터 관리 방법은 매핑 정보 및 토큰 값을 이용해 변조된 데이터를 조회할 수 있다. 보다 상세하게는 데이터 관리 방법은 업무 테이블에서 토큰 값을 검색하고, 매핑 정보 테이블에서 토큰 값에 대응하는 변조 데이터를 제공할 수 있다. 이에 따라, 데이터를 요청하는 사용자는 변조된 데이터를 확인할 수 있다.
상술한 예를 들어 설명하면, 사용자가 토큰 값 “abcxxf”에 대한 데이터를 요청하는 경우, 데이터 관리 방법은 토큰 값인 “abcxxf”에 대응하는 변조된 데이터 값인 “730101-1222222”을 제 1 사용자에게 제공할 수 있다. 이때, 데이터 관리 방법은 변조된 데이터 값을 제공하기 위하여 상술한 제 2 암호본을 이용할 수 있다.
즉, 사용자는 암호화된 원문 데이터가 아닌 변조된 데이터를 제공받을 수 있다.
도 60은 본 발명의 데이터 관리 플랫폼에서 데이터를 변조하는 실시 예를 설명하는 도면이다.
상술한 데이터 관리 플랫폼은 운영 ERP(Enterprise Resource Planning) 시스템 및 테스트 ERP 시스템에서 사용될 수 있다. 여기에서, ERP 시스템은 기업 내 다양한 부서와 업무 영역을 통합하여 관리하고, 중앙에서 자원을 효율적으로 계획, 조정, 관리하는 소프트웨어 시스템에 대응한다. 즉, ERP 시스템은 다양한 모듈로 구성되어 있으며, 각 모듈은 특정 업무에 대한 기능과 데이터를 제공할 수 있다. 이때, ERP 시스템에서 사용되는 모듈은 본 발명의 데이터 관리 플랫폼(10000)의 모듈에 대응한다.
일 실시 예에서, 운영 ERP 시스템의 사용자(3001)는 토큰 값이 포함된 암호화된 데이터(3002)를 운영 ERP 시스템에 입력하고, 데이터 관리 플랫폼(10000)을 통하여 복호화된 데이터(3003)를 수신할 수 있다. 이에 따라, 운영 ERP 시스템의 사용자(3001)는 암호화가 필요한 개인정보를 복호화하여 확인할 수 있다.
이후, 테스트 ERP 시스템의 개발자(3004)는 토큰 값이 포함된 암호화된 데이터(3002)를 테스트 ERP 시스템에 입력할 수 있다. 이때, 데이터 관리 플랫폼은 운영 ERP 시스템에 존재하는 데이터를 복제 후 변조하여 테스트 ERP 시스템에게 변조된 데이터를 전송할 수 있다. 또한, 운영 ERP 시스템 또는 테스트 ERP 시스템에서 데이터 변조를 수행할 수 있다. 운영 ERP 시스템 또는 테스트 ERP 시스템에서 데이터 변조를 수행하는 방법은 상술한 실시 예를 참고하도록 한다. 일 실시 예에서, 데이터의 변조 시점은 기 설정된 주기에 따라 결정될 수 있다. 즉, 데이터 관리 플랫폼(10000)은 데이터 변조를 개발자(3004)의 요청에 따라 실시간으로 수행하지 않는 것을 특징으로 한다.
이에 따라, 개발자(3004)는 변조된 데이터(3005)를 수신할 수 있다. 이를 통해, 운영 ERP 시스템에서 데이터를 개발 환경으로 이관하여 테스트에 사용해야 하는 사용자(본 도면의 개발자(3004))는 금융감독원의 규정 등을 지킬 수 있다. (참고: 전자금융 감독규정 시행세칙 제9조 제10항 “서비스 개발 또는 개선과 관련한 테스트시 우선적으로 가상 데이터를 사용해야 한다.”)
도 61은 본 발명의 데이터 관리 플랫폼에서 데이터를 변조하는 실시 예를 설명하는 도면이다.
운영 ERP 시스템의 사용자는 운영 데이터를 테스트 ERP 시스템으로 이관(System copy)할 수 있다. 즉, 마이그레이션(migration)을 수행할 수 있다. 마이그레이션은 한 시스템에서 다른 시스템으로의 이전 또는 전환 과정을 의미하며, 특히, 데이터 마이그레이션은 기존 시스템에서 생성, 저장된 데이터를 새로운 시스템으로 이전하는 작업에 해당한다. 데이터 마이그레이션은 데이터의 일관성과 무결성을 유지하면서, 새로운 시스템에서의 정상적인 운영을 보장해야만 한다.
본 발명의 데이터 관리 플랫폼(10000)은 운영 ERP 시스템의 사용자가 운영 데이터를 테스트 ERP 시스템으로 이관하면서, 법이나 규정을 지키기 위하여 데이터를 변조해야 하는 점에 도움을 줄 수 있다.
보다 상세하게는, 운영 ERP 시스템의 사용자가 개인정보가 포함된 암호화된 데이터(3002)를 테스트 ERP 시스템에 마이그레이션할 수 있다. 여기에서, 암호화된 데이터(3002)는 토큰 값을 포함할 수 있다. 본 도면을 예로 들어 설명하면, 개인정보가 주민등록번호인 경우, 암호화된 데이터(3002)는 토큰 값을 포함하는 “720403-1kjWkaq”에 대응한다. 여기에서, 토큰 값은 “kjWkaq”에 대응할 수 있다.
일 실시 예에서, 테스트 ERP 시스템은 데이터 관리 플랫폼(10000)에 데이터 변조를 요청할 수 있다. 이에 따라, 데이터 관리 플랫폼(10000)은 매핑 정보 테이블에 저장된 제 1 암호본(3002a)를 이용해 애플리케이션 운영 암호화 서버(1020a)로부터 데이터를 전달받아 암호화된 데이터를 복호화할 수 있다. 암호화된 데이터(3002)가 복호화된 경우, 상술한 예를 들어 설명하면, 복호화된 개인정보는 “720403-1234567”에 대응한다.
이후, 데이터 관리 플랫폼(10000)은 키 관리 모듈(20003)을 이용하여 복호화된 데이터(3003)를 변조하여 테스트 ERP 시스템에 변조된 데이터(3005)를 전달할 수 있다. 상술한 예를 들어 설명하면, 복호화된 변조된 개인정보는 “720403-1765432”에 대응한다. 즉, 데이터 관리 플랫폼(10000)을 통하여 변조된 데이터는 기존의 변조되기 전의 개인정보와 동일한 형식을 유지하지만 다른 내용을 포함할 수 있다.
이후, 데이터 관리 플랫폼(10000)은 변조된 데이터(3005)에 대응하는 제2 암호본(3002b)를 애플리케이션 품질 암호화 서버(1020b)에 전달할 수 있다. 애플리케이션 품질 암호화 서버(1020b)는 제 2 암호본(3002b)을 테스트 ERP 시스템에 전달함으로써, 테스트 ERP 시스템의 개발자가 변조된 개인정보인 “720403-1765432”를 테스트에 이용할 수 있도록 한다.
테스트 ERP 시스템에는 누구나 접근이 가능하기 때문에 데이터가 복호화 되더라도 원래의 데이터를 사용해서는 안 되며, 본 발명의 데이터 관리 플랫폼(10000)을 통하여 이러한 점을 방지할 수 있다.
도 62는 본 발명의 데이터 관리 방법이 데이터를 변조하는 실시 예를 설명하는 도면이다.
단계(S11081)에서, 본 발명의 데이터 관리 방법은 데이터에 대한 변조 요청을 수신할 수 있다. 이때, 데이터 관리 방법은 시스템의 사용자의 요청에 기초하여 데이터에 대한 변조 요청을 수신할 수 있다. 이에 대하여는, 도 1 내지 도 3 및 도 17의 실시 예를 참고하도록 한다.
단계(S11082)에서, 본 발명의 데이터 관리 방법은 데이터를 복호화할 수 있다. 이때, 데이터 관리 방법은 데이터를 복호화하기 위하여 매핑 정보 테이블에 포함된 제 1 암호본을 이용할 수 있다. 본 발명의 데이터 관리 방법이 데이터를 복호화하는 방법은 도 54 내지 도 61의 실시 예를 참고하도록 한다.
단계(S11083)에서, 본 발명의 데이터 관리 방법은 복호화된 데이터를 변조할 수 있다. 본 발명의 데이터 관리 방법이 복호화된 데이터를 변조하는 방법은 도 54 내지 도 61의 실시 예를 참고하도록 한다.
단계(S11084)에서, 본 발명의 데이터 관리 방법은 변조된 데이터에 대응하는 토큰 값 및 변조된 데이터에 대응하는 제 2 암호본을 매핑 정보 테이블에 저장할 수 있다. 본 발명의 데이터 관리 방법이 토큰 값 및 암호본을 매핑 정보 테이블에 저장하는 방법은 도 44 내지 도 53의 실시 예를 참고하도록 한다.
본 발명에 따르면, 테스트 환경에서 데이터 변조 기능을 제공할 수 있다는 장점이 있다. 즉, 개발 시스템에 실제 운영 데이터가 들어있을 경우 외부 유출 등 심각한 문제가 발생할 수 있어 위/변조하여 저장관리가 필요하다. 본 발명과 같이 토큰 처리를 통해 데이터를 변조하면, 수천만 내지 수억 건의 데이터가 아닌 중복을 제외한 수천건의 데이터 변조 만으로 모든 값을 변조할 수 있어 업무 효율성이 증가한다는 장점이 있다.
또한, 업무상 백업(back-up)이 필요한 모든 회사를 대상으로, 백업된 오래된 데이터도 변조가 가능하다는 장점이 있다.
또한, 토큰 값 및 매핑 정보를 통해 변조 데이터에 대한 신뢰성을 제공할 수 있다는 장점이 있다.
로그를 수집하기 위해 에이전트를 사용할 때 다수의 에이전트에 대한 설정 변경, 형상 관리, 상태 모니터링과 같은 작업들은 많은 수작업을 요구하고 복잡성을 증가시킨다. 이로 인해 업무 효율성이 저하될 수 있다. 본 발명은 데이터 수집을 위한 에이전트에 대한 중앙 관리를 통해 이러한 문제를 해결하고자 한다. 이를 통해 에이전트에 대한 패치 적용, 동작 관리, 설정 관리 등의 작업을 자동화하고 중앙화하여 업무의 효율성을 증가시킬 수 있다.
도 63은 본 발명의 데이터 관리 플랫폼에서 에이전트를 관리하는 실시 예를 설명하는 도면이다.
본 발명의 데이터 관리 플랫폼(10000)의 수집 모듈(20001)은 에이전트 관리부(2032)를 통하여 적어도 하나의 에이전트(20008a, 20008b, …를 관리할 수 있다. 여기에서, 에이전트(Agent)는 컴퓨터 시스템 또는 네트워크 상에서 특정한 작업을 수행하기 위해 설치되고 실행되는 소프트웨어 모듈 또는 프로그램에 대응할 수 있다. 본 발명의 에이전트는 호스트 서버에 설치되어 설정된 기능(예를 들어, 데이터 수집 기능)을 수행할 수 있다.
이를 위하여, 데이터 관리 플랫폼(10000)의 수집 모듈(20001)은 에이전트 관리부(2032)를 포함할 수 있다.
에이전트 관리부(2032)는 에이전트에 대한 형상을 관리할 수 있다. 여기에서, 에이전트에 대한 형상은 에이전트의 버전(version)을 나타낼 수 있다. 에이전트 관리부(2032)는 수집 대상에 설치된 에이전트에 대한 형상 정보를 모니터링하며, 신규 버전의 형상으로 업데이트하는 명령을 수행할 수 있다. 여기에서, 수집 대상은 본 발명의 데이터 관리 플랫폼(10000)에서 로그를 수집하고자 하는 호스트 서버에 해당한다. 또한, 에이전트 관리부(2032)는 적어도 하나의 에이전트(20008a, 20008b, …의 수집 상태를 모니터링할 수 있다.
일 실시 예에서, 에이전트 관리부(2032)는 적어도 하나의 에이전트(20008a, 20008b, …별로 수행에 필요한 명령어를 생성하고, 해당 에이전트에 배포할 수 있다. 예를 들어, 에이전트 관리부(2032)는 제 1 에이전트(20008a)을 위한 로그 데이터 수집 명령어를 생성하고, 제 1 에이전트(20008a)에게 로그 데이터 수집 명령어를 배포할 수 있다.
일 실시 예에서, 에이전트 관리부(2032)는 적어도 하나의 에이전트(20008a, 20008b, …가 설치된 서버에 대한 목록을 관리할 수 있다.
이때, 에이전트는 데이터 수집 기능을 수행하기 위한 적어도 하나의 모듈을 포함할 수 있다. 일 실시 예에서, 제 1 에이전트(20008a)는 와치독 모듈(Watchdog module, 2033) 및 워커 모듈(Worker module, 2034)을 포함할 수 있다. 여기에서, 워커 모듈은 실질적으로 데이터를 수집하는 기능을 수행하며, 에이전트 모듈이라는 이름으로 지칭될 수 있다.
여기에서, 와치독 모듈(2033)은 제 1 에이전트(20008a)에서 사용되는 모듈 중 하나로, 에이전트의 예기치 않은 동작 또는 비정상적인 상태를 감지하는 기능을 수행할 수 있다. 일 실시 예에서, 와치독 모듈(2033)은 데이터 관리 플랫폼(10000)과의 통신을 담당하고, 워커 모듈(2034)에 대한 제어를 담당할 수 있다.
워커 모듈(2034)은 제 1 에이전트(20008a)의 핵심적인 기능을 수행하는 모듈로 주로 백그라운드에서 동작하며 특정 작업을 처리하고 결과를 반환하는 역할을 담당할 수 있다.
특히, 본 발명에서는, 워커 모듈(2034)은 와치독 모듈(2033)로부터 전달받은 명령어를 수행하고 그 수행 결과를 데이터 관리 플랫폼(10000)으로 반환할 수 있다.
이에 따라, 데이터 관리 플랫폼(10000)은 적어도 하나의 에이전트(20008a, 20008b)로부터 수집된 데이터를 데이터베이스(20007)에 저장할 수 있다.
특히, 본 도면에서는 2개의 에이전트만을 예로 들어 설명하였으나, 에이전트가 수십 내지 수백개가 되는 경우에도 동일하게 적용할 수 있다. 즉, 수십 내지 수백개의 에이전트를 동시에 업데이트 하기 위하여 정책을 배포할 수 있어 업무의 효율성이 극대화될 수 있다.
도 64는 본 발명의 데이터 관리 방법에서 에이전트를 관리하는 방법을 설명하는 도면이다.
이하의 단계는 호스트 서버에 설치된 에이전트를 관리하기 위하여 본 발명의 데이터 관리 방법이 수행하는 실시 예를 설명한다. 특히, 이하의 방법은 동시에 수행되지 않을 수 있으며, 개별적으로 수행될 수 있음은 물론이다.
단계(S12010)에서, 본 발명의 데이터 관리 방법은 에이전트에 대한 형상을 관리할 수 있다. 일 실시 예에서, 데이터 관리 방법은 관리자의 요청에 따라 에이전트에 대한 형상을 관리할 수 있다. 예를 들어, 관리자는 에이전트 관리부를 통하여 복수 개의 에이전트에 대한 형상 업데이트 등을 요청할 수 있다. 이를 통해, 에이전트의 업데이트, 패치 및 롤백을 용이하게 수행할 수 있다.
단계(S12020)에서, 본 발명의 데이터 관리 방법은 에이전트 별로 수행에 필요한 명령어를 생성하고 해당 에이전트에 배포할 수 있다. 일 실시 예에서, 데이터 관리 방법은 관리자의 형상 업데이트 요청에 기초하여 에이전트 별로 업데이트 수행에 필요한 명령어를 생성하고 해당 에이전트에 배포할 수 있다. 예를 들어, 관리자가 에이전트 관리부 상에 패치 파일을 업로드하고, 에이전트의 업데이트를 요청하는 경우, 에이전트 관리부는 에이전트 별로 업데이트 수행에 필요한 명령어를 생성할 수 있다. 이후, 에이전트의 와치독 모듈은 명령어를 수신하여 워커 모듈을 재시작할 수 있다. 에이전트의 동작은 이하에서 자세히 설명하도록 한다.
단계(S12030)에서, 본 발명의 데이터 관리 방법은 에이전트의 상태를 모니터링할 수 있다. 보다 상세하게는, 데이터 관리 방법은 에이전트의 동작 상태, 연결 상태 등을 실시간으로 모니터링하고 문제 발생 시 대응할 수 있다.
도 65는 본 발명의 데이터 관리 방법에서 에이전트와의 통신 방법을 설명하는 도면이다.
단계(S12040)에서, 본 발명의 데이터 관리 방법은 에이전트의 와치독 모듈에게 명령어를 전달할 수 있다. 보다 상세하게는, 데이터 관리 방법은 에이전트 별로 동작에 필요한 명령어를 생성하고 에이전트에게 전달할 수 있다. 이에 따라, 에이전트의 와치독 모듈은 외부로부터 명령어를 수신할 수 있다.
단계(S12050)에서, 본 발명의 데이터 관리 방법은 에이전트의 워커 모듈로부터 수집된 데이터를 저장할 수 있다. 에이전트의 워커 모듈은 에이전트가 설치된 서버에서 데이터를 수집할 수 있다. 이때, 워커 모듈을 통하여 수집된 데이터들은 데이터 관리 플랫폼의 수집 모듈로 직접 전송될 수 있다. 일 실시 예에서, 워커 모듈을 통하여 수집된 데이터들은 에이전트 별로 암호화되어 데이터 관리 플랫폼의 수집 모듈로 전송될 수 있다. 이때, 에이전트 별로 다른 암호화 방법에 기초하여 수집된 데이터가 전달될 수 있다. 예를 들어, 에이전트에서 데이터 관리 플랫폼으로 전송되는 데이터들은 SSL/TLS (Secure Sockets Layer/Transport Layer Security) 암호화 프로토콜, VPN 암호화 프로토콜, 대칭키 또는 비대칭키 암호화 알고리즘을 통해 암호화되어 전달될 수 있다. 이를 통하여, 개별적인 에이전트에서 수집된 데이터들은 안전하게 암호화되어 데이터 관리 플랫폼으로 전달될 수 있다.
이후, 데이터 관리 플랫폼의 수집 모듈은 에이전트에서 수집된 데이터를 저장할 수 있다. 일 실시 예에서, 데이터 관리 플랫폼의 수집 모듈은 에이전트에서 수집된 데이터를 데이터베이스에 저장할 수 있다.
이를 통해, 본 발명의 데이터 관리 방법은 에이전트와의 효율적인 통신, 데이터 수집 및 저장을 수행할 수 있다.
도 66은 본 발명의 데이터 관리 방법에서 에이전트의 동작 방법을 설명하는 도면이다.
단계(S12060)에서, 에이전트는 데이터 관리 플랫폼의 수집 모듈의 에이전트 관리부와 통신할 수 있다. 에이전트는 에이전트 관리부로부터 수행에 필요한 명령어를 수신할 수 있다.
단계(S12070)에서, 에이전트는 에이전트 관리부로부터 수신한 명령어를 워커 모듈에게 전달할 수 있다.
단계(S12080)에서, 에이전트의 워커 모듈에서 명령어를 수행할 수 있다. 워커 모듈은 에이전트의 핵심적인 기능을 수행하는 모듈로 명령어를 수행하고, 결과를 반환할 수 있다.
단계(S12090)에서, 에이전트는 워커 모듈을 통하여 수행 결과에 대응하는 데이터를 수집할 수 있다. 일 실시 예에서, 에이전트가 설치된 호스트 서버에서 데이터를 수집하는 기능을 수행할 것을 명령받은 경우, 워커 모듈은 호스트 서버에서 데이터를 수집할 수 있다. 이후, 에이전트는 수집된 데이터를 암호화하여 데이터 관리 플랫폼에게 전송할 수 있다.
도 67은 본 발명의 데이터 관리 방법에서 에이전트의 동작 방법을 설명하는 도면이다.
단계(S13010)에서, 본 발명의 데이터 관리 방법은 데이터를 수집하는 적어도 하나의 에이전트의 형상 정보를 모니터링할 수 있다. 본 발명의 데이터 관리 방법은 도 1 내지 도 7의 실시 예를 이용하여 데이터를 수집하거나 도 63 내지 도 66의 실시 예를 이용하여 데이터를 수집할 수 있다. 단계(S13010)은 도 63 내지 도 66의 데이터 수집 방법을 이용하기 위하여 호스트 서버에 에이전트를 설치할 수 있다. 이때, 네트워크 상에서 송수신되는 패킷으로부터 데이터를 수집하는 도 1 내지 도 7의 실시 예와 달리 호스트 서버에 에이전트를 설치하기 때문에, 호스트 서버에서 발생하는 모든 로그 데이터를 수집할 수 있다.
단계(S13020)에서, 본 발명의 데이터 관리 방법은 형상 정보의 업데이트 요청에 기초하여 업데이트에 필요한 명령어를 생성할 수 있다. 이에 대하여는 도 64의 실시 예를 참고하도록 한다.
단계(S13030)에서, 본 발명의 데이터 관리 방법은 생성된 명령어를 적어도 하나의 에이전트에게 배포할 수 있다. 이에 대하여는 도 64의 실시 예를 참고하도록 한다.
일부 사용자들의 경우 로그 데이터로부터 필요한 정보를 추출하기 위한 정규식 입력을 어려워할 수 있다. 본 발명은 로그 데이터의 정규화를 통해 이러한 문제를 해결하고자 한다. 이를 통해 로그 데이터에서 의미 있는 데이터의 일부분을 추출하기 위한 정규식을 포함하는 파서를 손쉽게 생성함으로써 사용자 편의성을 증가시킬 수 있다.
도 68은 본 발명의 데이터 관리 플랫폼이 로그 데이터를 정규화하는 실시 예를 설명하는 도면이다.
본 발명의 데이터 관리 플랫폼(10000)은 수집 모듈(20001), 분석 모듈(20002) 및 모니터링 모듈(20005)을 통하여 로그 데이터를 정규화할 수 있고, 사용자/클라이언트(1000)의 이벤트 로그 검색 요청에 따라 로그 데이터를 검색할 수 있다.
구체적으로, 수집 모듈(20001)은 로그 수집부(2040)를 포함할 수 있다. 로그 수집부(2040)는 외부로부터 전송되는 적어도 하나의 로그 데이터를 획득할 수 있다.
분석 모듈(20002)은 파서 생성부(2043), 변환 규칙 생성부(2044) 및 수집 규칙 생성부(2045)를 포함할 수 있다. 파서 생성부(2043)는 선택된 텍스트에 일정 빈도 이상으로 사용되는 정규식 패턴 별 매칭 블록을 추출할 수 있다. 여기서, 정규식 패턴은 날짜, 시간, 문자열 등 일정 빈도 이상으로 자주 사용되는 정규식 패턴을 포함할 수 있다. 또한, 매칭 블록은 정규식 패턴과 일치하는 텍스트 정보를 나타낼 수 있다.
파서 생성부(2043)는 추출된 다수의 매칭 블록 중 사용자 입력에 의해 선택된 매칭 블록에 기반하여, 로그 데이터로부터 텍스트를 추출하기 위한 정규식을 포함하는 파서를 생성할 수 있다. 일 실시 예에서, 파서는 사용자 입력에 기반한 필드명을 포함할 수 있다.
일 실시 예에서, 파서 생성부(2043)는 로그 데이터에서 정규식을 테스트하여 정규식을 검증할 수 있다. 즉, 파서 생성부(2043)는 정규식을 이용하여 로그 데이터로부터 각 필드에 해당하는 필드값이 제대로 추출되는지 테스트를 진행할 수 있다.
변환 규칙 생성부(2044)는 정규식에 기반한 파서 및 파서에 대응하는 이벤트 유형을 포함하는 변환 규칙을 생성할 수 있다. 변환 규칙 생성부(2044)는 기 생성된 파서 중 사용자 입력에 기반한 로그 데이터가 매칭되는 정규식에 기반한 파서를 스캔할 수 있다. 변환 규칙 생성부(2044)는 해당 로그 데이터에 대하여 사용 가능한 파서 중 사용자 입력에 기반한 파서를 변환 규칙에 적용하여 저장할 수 있다. 즉, 변환 규칙은 로그 데이터 저장 시 추출된 필드를 어떻게 가공하여 저장할지에 대한 규칙을 나타낼 수 있다.
따라서, 본 발명에 따르면, 정규식 입력을 어려워하는 사용자들에게 부분적으로 정규식 입력을 도와주어 전체 정규식을 완성할 수 있는 편의성을 제공할 수 있다. 또한, 본 발명에 따르면, 등록된 파서의 재사용성을 높일 수 있도록 기 생성된 파서를 스캔하는 편의성을 제공할 수 있다.
수집 규칙 생성부(2045)는 로그 수집 장치의 로그 데이터에 사용할 변환 규칙을 선택하여 수집 경로 규칙을 생성할 수 있다.
모니터링 모듈(20005)는 검색 요청 처리부(2041), 사용자 입력 처리부(2042) 및 이벤트 로그 검색부(2046)를 포함할 수 있다.
검색 요청 처리부(2041)는 사용자/클라이언트(1000)로부터 이벤트 유형에 대한 이벤트 검색 요청을 수신할 수 있다. 이후, 검색 요청 처리부(2041)는 미리 저장된 적어도 하나의 로그 데이터로부터 추출된 검색 결과를 사용자/클라이언트(1000)에게 송신할 수 있다. 이 경우, 송신된 검색 결과는 사용자/클라이언트(1000)의 화면에 디스플레이될 수 있다.
사용자 입력 처리부(2042)는 사용자/클라이언트(1000)로부터 사용자 입력에 기반한 정보를 획득할 수 있다. 즉, 사용자 입력 처리부(2042)는 사용자/클라이언트(1000)를 통해 사용자 입력에 의해 선택된 정보를 획득할 수 있다.
일 실시 예에서, 사용자 입력에 기반한 정보는 정규식 생성 및 테스트를 위한 로그 데이터, 로그 데이터에 포함된 텍스트, 텍스트 정보를 나타내는 다수의 매칭 블록 중 선택된 매칭 블록, 텍스트에 대한 필드, 파서(parser)에 대한 이벤트 유형, 로그 수집 장치의 등록 정보 및 수집 경로 규칙 중 적어도 하나를 포함할 수 있다.
이벤트 로그 검색부(2046)는 이벤트 유형에 대한 이벤트 검색 요청을 수신함에 응답하여, 파서, 수집 경로 규칙 및 변환 규칙 중 적어도 하나에 기반한 미리 저장된 적어도 하나의 로그 데이터로부터 추출된 검색 결과를 출력할 수 있다.
도 69는 본 발명의 데이터 관리 방법이 파서를 생성하는 일 실시 예를 설명하는 도면이다.
단계(S18010)에서, 데이터 관리 방법은 로그 데이터를 획득할 수 있다. 일 실시 예에서, 데이터 관리 방법은 사용자/클라이언트(1000)를 통해 사용자에 의해 입력된 로그 데이터를 획득할 수 있다.
단계(S18020)에서, 데이터 관리 방법은 사용자 입력에 기반한 로그 데이터에 포함된 텍스트를 획득할 수 있다. 즉, 데이터 관리 방법은 원본 로그 데이터에서 정규식으로 변환하고자 사용자에 의해 선택된 텍스트를 획득할 수 있다. 일 실시 예에서, 정규식은 '정규 표현식' 또는 이와 동등한 기술적 의미를 갖는 용어로 지칭될 수 있다.
단계(S18030)에서, 데이터 관리 방법은 텍스트에 대한 텍스트 정보를 나타내는 매칭 블록을 생성할 수 있다. 예를 들어, 텍스트 정보는 1개의 숫자, 공백을 제외한 1개 이상의 숫자, 1개의 글자, 공백을 제외한 1개 이상의 글자 및 쌍따옴표 사이의 모든 글자 등 다양한 텍스트 정보를 나타낼 수 있다.
단계(S18040)에서, 데이터 관리 방법은 매칭 블록에 기반하여 로그 데이터로부터 텍스트를 추출하기 위한 정규식을 생성할 수 있다. 일 실시 예에서, 로그 데이터에 포함된 각 텍스트에 대하여 정규식을 생성하며, 각 정규식을 포함하는 전체 정규식을 생성할 수 있다.
단계(S18050)에서, 데이터 관리 방법은 사용자 입력에 기반한 텍스트에 대한 필드를 획득할 수 있다. 즉, 데이터 관리 방법은 해당 텍스트에 대한 필드명을 설정하기 위한 필드명 정보를 획득할 수 있다.
단계(S18060)에서, 데이터 관리 방법은 정규식 및 필드를 포함하는 파서를 생성할 수 있다.
도 70은 본 발명의 파서 생성 화면의 일 실시 예를 설명하는 도면이다.
일 실시 예에서, 파서 생성 화면은 사용자/클라이언트(1000)에 의해 디스플레이될 수 있다. 파서 생성 화면은 로그 데이터(1042), 텍스트(1043), 매칭 블록(1044), 정규식(1045) 및 필드(1046)를 포함할 수 있다.
사용자에 의해 로그 데이터(1042)가 입력되고, 로그 데이터(1042)에 포함된 텍스트(1043)가 선택되어 입력될 수 있다. 예를 들어, 텍스트는 문자열로 구성될 수 있으며, 16을 나타낼 수 있다.
입력된 로그 데이터(1042)와 텍스트(1043)가 데이터 관리 플랫폼(10000)에게 전달되면, 데이터 관리 플랫폼(10000)에 의해 생성된 텍스트(1043)에 대응하는 다수의 매칭 블록들이 사용자/클라이언트(1000)의 파서 생성 화면에 표시될 수 있다.
이 경우, 다수의 매칭 블록들 각각은 색(color)으로 구분될 수 있으며, 각 매칭 블록은 서로 다른 텍스트 정보를 나타낼 수 있다. 이후, 사용자 입력에 의해 다수의 매칭 블록 중 텍스트(1043)의 텍스트 정보를 나타내는 하나의 매칭 블록(1044)이 선택되는 경우, 선택된 매칭 블록(1044)에 대응하는 정규식(1045)이 자동으로 생성될 수 있다. 예를 들어, 정규식(1045)은 (?<REPLACEGROUPNAME>/d+)로 표현될 수 있다.
또한, 사용자에 의해 해당 텍스트(1043)에 해당하는 필드(1046)가 입력되며, 전체 정규식과 필드가 포함된 파서가 생성될 수 있다.
도 71은 본 발명의 파서 테스트 화면의 일 실시 예를 설명하는 도면이다.
일 실시 예에서, 파서 테스트 화면은 사용자/클라이언트(1000)에 의해 디스플레이될 수 있다. 전체 정규식과 필드가 포함된 파서에 대하여 테스트가 진행될 수 있다. 이 경우, 사용자에 의해 로그 데이터(1042)가 입력되고, 테스트가 진행되면, 각 필드에 대응하는 필드값이 로그 데이터로부터 추출될 수 있다.
예를 들어, 필드의 필드명은 Facility, Severity, Action, Time, RuleID, Proto, Src, SrcPort, Dst, DstPort 및 Direction을 포함할 수 있으나, 이에 제한되지 않고 다양하게 구성될 수 있다. 또한, Dst 필드에 대하여 124.243.76.7의 필드값이 추출된 것을 확인할 수 있으며, 이러한 테스트를 통해 해당 정규식을 포함하는 파서를 검증할 수 있다.
도 72는 본 발명의 데이터 관리 방법이 변환 규칙을 생성하는 일 실시 예를 설명하는 도면이다.
단계(S19010)에서, 데이터 관리 방법은 로그 데이터를 획득할 수 있다. 일 실시 예에서, 데이터 관리 방법은 사용자/클라이언트(1000)를 통해 사용자에 의해 입력된 로그 데이터를 획득할 수 있다.
단계(S19020)에서, 데이터 관리 방법은 로그 데이터에 대응하는 파서를 결정할 수 있다. 즉, 사용자에 의해 입력된 로그 데이터에 대한 스캐닝을 통해 로그 데이터에 대응하는 파서가 결정될 수 있으며, 해당 파서에 대한 파서명, 버전 및 파서 유형이 결정될 수 있다. 이 경우, 상술한 바와 같이 정규식에 기반한 파서인 경우 파서 유형은 정규식을 나타낼 수 있다.
단계(S19030)에서, 데이터 관리 방법은 사용자 입력에 기반한 파서에 대한 이벤트 유형을 결정할 수 있다. 예를 들어, 이벤트 유형은 개인정보 검색 로그 및 방화벽 로그를 포함할 수 있나, 이에 제한되지 않고 다양한 유형으로 구성될 수 있다.
단계(S19040)에서, 데이터 관리 방법은 파서 및 이벤트 유형에 대응하는 적어도 하나의 필드를 결정할 수 있다. 일 실시예에서, 데이터 관리 방법은 변환 규칙의 각 파서의 필드의 일괄 등록을 수행할 수 있다. 예를 들어, 일괄 등록 시 필드, 필드명, 필드 유형(숫자 또는 문자열) 및 데이터 유형이 결정될 수 있다.
단계(S19050)에서, 데이터 관리 방법은 파서, 이벤트 유형 및 적어도 하나의 필드를 포함하는 변환 규칙을 생성할 수 있다. 즉, 본 발명에 따르면, 데이터 관리 방법은 변환 규칙을 통해 실제로 추출된 필드값 중에서 저장할 것과 저장하지 않을 것을 구분해서 저장할 것인지를 결정할 수 있다. 다시 말해, 데이터 관리 방법은 정규식을 포함한 파서를 이용하여 로그 데이터로부터 필드값을 추출하고, 변환 규칙을 통해 추출된 필드값 중 무엇을 어떻게 저장할지를 결정할 수 있다.
도 73은 본 발명의 변환 규칙 생성 화면의 일 실시 예를 설명하는 도면이다.
일 실시 예에서, 변환 규칙 생성 화면은 사용자/클라이언트(1000)에 의해 디스플레이될 수 있다. 이 경우, 사용자에 의해 로그 데이터(1042)가 입력되고, 스캔이 진행되면, 로그 데이터에 대응하는 파서(1047)가 결정될 수 있다.
이후, 파서(1047)에 대한 이벤트 유형(1048)이 사용자에 의한 입력에 기반하여 선택될 수 있다. 예를 들어, 이벤트 유형(1048)은 방화벽 로그로 결정될 수 있다.
일 실시예에서, 이러한 해당 로그 데이터(1042)에 대해 결정된 파서(1047) 및 이벤트 유형(1048)의 구성은 변환 코드에 포함될 수 있으며, 변환 규칙은 적어도 하나의 변환 코드를 포함할 수 있다.
예를 들어, 변환 규칙은 파서명이 FIREWALL_ADMITTED_PARSER인 파서 및 방화벽로그인 이벤트 유형으로 구성된 제 1 변환 코드와 파서명이 FIREWALL_DENIED_PARSER인 파서 및 방화벽로그인 이벤트 유형으로 구성된 제 2 변환 코드를 포함할 수 있다.
도 74는 본 발명의 파서필드 일괄등록 화면의 일 실시 예를 설명하는 도면이다.
일 실시 예에서, 파서필드 일괄등록 화면은 사용자/클라이언트(1000)에 의해 디스플레이될 수 있다. 이 경우, 각 필드(1046)에 대한 일괄 등록이 수행될 수 있으며, 매칭 방법, 필드(1046), 필드명, 필드 유형 및 데이터 유형이 설정될 수 있다. 예를 들어, 매칭 방법이 신규 등록인 필드에 대하여는 사용자의 입력에 의해 필드(1046), 필드명, 필드 유형 및 데이터 유형이 결정될 수 있다. 예를 들어, 필드 유형은 숫자 또는 문자열을 포함할 수 있고, 데이터 유형은 숫자를 나타내는 INT 또는 문자열을 나타내는 STRING을 포함할 수 있다.
일 실시 예에서, 호스트, 소스, 시간, 장비 IP 및 장비명에 해당하는 필드 이외에 추가적인 필드가 일괄 등록될 수 있다. 일 실시 예에서, 변환 규칙에 다수의 변환 코드, 예를 들어, 제 1 변환 코드와 제 2 변환 코드가 포함된 경우, 제 1 변환 코드에 대한 필드 일괄 등록과 제 2 변환 코드에 대한 필드 일괄 등록이 각각 수행될 수 있다.
도 75는 본 발명의 데이터 관리 방법이 수집 경로 규칙을 생성하는 일 실시 예를 설명하는 도면이다.
단계(S11110)에서, 데이터 관리 방법은 로그 데이터를 수집하기 위한 로그 수집 장치를 등록할 수 있다. 일 실시예에서, 로그 수집 장치의 등록 시 해당 로그 수집 장치에 대한 장비명, 장비 IP, 장비 유형, OS(operating system) 및 수집 유형이 사용자 입력에 의해 사용자/클라이언트(1000)를 통해 설정될 수 있다.
단계(S11120)에서, 데이터 관리 방법은 사용자 입력에 의한 로그 수집 장치의 로그 데이터에 사용할 변환 규칙을 선택하여 수집 경로 규칙을 생성할 수 있다. 일 실시 예에서, 수집 경로 규칙은 수집 경로, 수집 유형 및 장비명 중 적어도 하나를 포함할 수 있다.
일 실시 예에서, 수집 유형은 에이전트 방식 및 시스템 로그 방식을 포함할 수 있다. 여기서, 에이전트 방식은 에이전트 프로그램을 시스템 및 장비에 설치하여 필요한 로그 데이터를 전송하는 방식을 포함하고, 시스템 로그 방식은 각종 보완 장비와 스위치, 라우터, 방화벽 등 네트워크 장비의 로그를 수집하는 방식을 포함할 수 있다.
단계(S11130)에서, 데이터 관리 방법은 수집 경로 규칙에 변환 규칙을 적용할 수 있다.
도 76은 본 발명의 수집 경로 규칙 생성 화면의 일 실시 예를 설명하는 도면이다.
일 실시 예에서, 수집 경로 규칙 생성 화면은 사용자/클라이언트(1000)에 의해 디스플레이될 수 있다. 이 경우, 사용자 입력에 기반한 장비명(1049)과 수집 유형(1050)이 표시될 수 있다. 장비명(1049)은 로그 수집 장치의 장비명을 포함하며, 로그 데이터의 수집을 위해 연동된 장비가 설정됨에 따라 변경될 수 있다. 수집 유형(1050)은 에이전트 방식과 시스템 로그 방식 중 하나로 설정될 수 있으며, 예를 들어, 시스템 로그 방식인 SYSLOG가 표시될 수 있다.
일 실시 예에서, 수집 경로 규칙 생성 화면은 장비명(1049) 및 수집 유형(1050) 이외에, 수집 경로, 반영 시작, 최종 수정 시각 및 반영 필요 여부에 대한 정보가 표시될 수 있다. 예를 들어, 수집 경로는 수집 유형과 장비 IP를 포함할 수 있다. 또한, 반영 필요 여부는 해당 수집 경로 규칙에 포함된 변환 규칙이 변경되어 수집 경로 규칙에 반영이 필요한지 여부를 표시할 수 있다.
이와 같이 생성된 수집 경로 규칙에 변환 규칙이 적용되는 경우, 로그 수집 장치와 해당하는 수집 유형이 변환 규칙에 연동될 수 있다.
도 77은 본 발명의 데이터 관리 방법이 이벤트 로그를 검색하는 일 실시 예를 설명하는 도면이다.
단계(S12110)에서, 데이터 관리 방법은 사용자/클라이언트(1000)로부터 이벤트 유형에 대한 이벤트 로그 검색 요청을 수신할 수 있다. 일 실시예에서, 다수의 이벤트 유형들 중 사용자에 의해 선택된 이벤트 유형에 대한 이벤트 로그 검색 요청이 수신될 수 있다.
단계(S12120)에서, 데이터 관리 방법은 이벤트 로그 검색 요청에 응답하여, 수집 경로 규칙, 변환 규칙 및 파서에 기반하여 미리 저장된 적어도 하나의 로그 데이터로부터 추출된 검색 결과를 출력할 수 있다. 일 실시 예에서, 적어도 하나의 로그 데이터는 이벤트 유형에 대응할 수 있으며, 일정 기간 동안 수집되어 미리 저장된 로그 데이터를 포함할 수 있다.
즉, 본 발명에 따르면, 정규식을 이용하여 로그 데이터에 탑재된 정보들(즉, 필드값)을 파싱시켜 구분시킴으로써, 사용자는 로그 데이터의 분석 시 구분된 로그 데이터에 내재된 정보를 보다 용이하게 확인할 수 있다.
단계(S12130)에서, 데이터 관리 방법은 검색 결과를 사용자/클라이언트(1000)에게 송신할 수 있다. 이 경우, 검색 결과는 로그 데이터로부터 파싱된 필드값을 포함할 수 있으며, 사용자에 의한 이벤트 로그 검색 요청에 따라, 파서에 의해 파싱된 필드값이 사용자/클라이언트(1000)의 화면에 대시보드 형태로 표시될 수 있다.
도 78은 본 발명의 이벤트 로그 검색 화면의 일 실시 예를 설명하는 도면이다.
일 실시 예에서, 이벤트 로그 검색 화면은 사용자/클라이언트(1000)에 의해 디스플레이될 수 있다. 이 경우, 해당 로그 데이터를 검색하기 위한 이벤트 유형(1048)이 설정될 수 있으며, 예를 들어, 방화벽로그가 이벤트 유형(1048)으로 설정될 수 있다.
이후, 검색이 진행될 기간이 설정될 수 있으며, 해당 기간에 대하여 미리 저장된 로그 데이터로부터 검색 결과가 출력될 수 있다. 검색 결과는 각 필드(1049)에 해당하는 필드값이 정리되어 표시될 수 있으며, 예를 들어, 시간, Facility, Severity, 허용/차단, Time, 방화벽정책 ID, 프로토콜, 소스 IP, 소스 Port, 타겟 IP, 타겟 Port 및 방향이 표시될 수 있다. 이와 같이, 각 로그 데이터에 대하여 필드(1049)별 필드값이 구분되기 때문에 사용자는 보다 용이하게 로그 데이터를 분석할 수 있다.
예를 들어, 허용/차단 필드의 경우, 로그 데이터에 따라 ADMITTED 또는 DENIED가 필드값으로 출력될 수 있다. 또한, 다른 예를 들어, 방화벽정책 ID 필드의 경우, 로그 데이터에 따라 19 또는 1이 필드값으로 출력될 수 있다.
도 79는 본 발명의 데이터 관리 방법의 일 실시 예를 설명하는 도면이다.
단계(S13110)에서, 데이터 관리 방법은 로그 데이터를 획득할 수 있다. 본 발명의 데이터 관리 방법이 다수의 로그 데이터를 획득하는 방법은 도 2, 5, 68 및 69의 실시 예를 참고하도록 한다.
단계(S13120)에서, 데이터 관리 방법은 로그 데이터에 포함된 텍스트에 대한 텍스트 정보를 나타내는 매칭 블록에 기반하여, 로그 데이터로부터 텍스트를 추출하기 위한 정규식을 포함하는 파서를 생성할 수 있다. 본 발명의 데이터 관리 방법이 다수의 로그 데이터를 획득하는 방법은 도 2, 5 및 68 내지 71의 실시 예를 참고하도록 한다.
단계(S13130)에서, 데이터 관리 방법은 정규식에 기반한 파서 및 파서에 대응하는 이벤트 유형을 포함하는 변환 규칙을 생성할 수 있다. 본 발명의 데이터 관리 방법이 다수의 로그 데이터를 획득하는 방법은 도 2, 5, 68 및 72 내지 74의 실시 예를 참고하도록 한다.
단계(S13140)에서, 데이터 관리 방법은 이벤트 유형에 대한 이벤트 검색 요청을 수신함에 응답하여, 파서 및 변환 규칙에 기반한 미리 저장된 적어도 하나의 로그 데이터로부터 추출된 검색 결과를 출력할 수 있다. 본 발명의 데이터 관리 방법이 다수의 로그 데이터를 획득하는 방법은 도 2, 5, 16, 68 및 75 내지 78의 실시 예를 참고하도록 한다.
대용량 로그 검색을 위해서는 검색 결과 전체를 메모리에 올리지 않고도 실시간으로 정렬 및 필터링된 결과를 조회하는 기술이 필요하다. 또한, 검색 중에도 일부 결과를 실시간으로 확인할 수 있어야 한다.
본 발명의 데이터 관리 플랫폼은 대량의 데이터를 효율적으로 처리하고 필요한 결과만을 실시간으로 조회할 수 있도록 한다.
도 80은 본 발명의 데이터 관리 플랫폼에서 로그를 검색하는 실시 예를 설명하는 도면이다.
본 발명의 데이터 관리 플랫폼(10000)의 모니터링 모듈(20005)은 로그 검색을 지원하기 위해 코디네이터 제어부(2047)를 더 포함할 수 있다.
여기에서, 코디네이터 제어부(2047)는 사용자(1000)의 로그 검색 요청에 기초하여 서버(1002)의 코디네이터(2048)를 제어할 수 있다.
여기에서, 코디네이터(2048)(coordinator)는 분산 시스템에서 여러 개의 인스턴스(2049a, 2049b, 2049c) 중 사용 가능한 인스턴스(2049a, 2049b, 2049c)의 목록을 관리하고 검색 요청을 분배할 수 있다.
또한, 인스턴스(instance, 2049a, 2049b, 2049c)는 컴퓨팅 환경에서 실행되는 독립적인 단위로 하드웨어 또는 가상화 기술을 통해 프로세서, 메모리, 디스크 등의 자원을 할당받아 동작할 수 있다. 인스턴스(2049a, 2049b, 2049c)는 특정 운영체제와 응용프로그램을 통해 실행될 수 있으며, 일반적으로 서버, 가상 머신, 컨테이너 등의 형태로 구현될 수 있다.
이하를 통하여 본 발명을 자세히 설명하도록 한다.
도 81은 본 발명의 데이터 관리 플랫폼에서 로그를 검색하는 실시 예를 설명하는 도면이다.
코디네이터(2048)는 사용 가능한 인스턴스 목록을 관리하고 사용자의 검색 요청을 분배할 수 있다. 사용자는 본 발명의 데이터 관리 플랫폼의 모니터링 모듈을 통하여 특정 기간 동안의 로그 데이터를 검색할 수 있다. 이후, 사용자는 필요에 따라 인스턴스(2049a, 2049b, 2049c)들을 통하여 검색된 로그 데이터를 확인할 수 있다.
적어도 하나의 인스턴스(2049a, 2049b, 2049c)는 서치 헤드와 서치 피어로 나뉠 수 있다. 일 실시 예에서, 가장 최초에 검색 요청을 받은 인스턴스가 서치 헤드(예를 들어, 2049a)가 되어 코데네이터(2048)로부터 사용 가능한 인스턴스 목록을 수집할 수 있다.
서치 헤드가 된 인스턴스(2049a)는 검색 요청부(2050), 검색 결과 파일 생성부(2051) 및 검색 결과 반환부(2052)를 포함할 수 있다.
여기에서, 검색 요청부(2050)는 사용자로부터 수신한 검색 요청에 기초하여 서치 ID를 발급하고, 서치 ID와 검색 쿼리 정보를 포함하여 서치 피어가 된 각 인스턴스(2049b)에게 검색을 요청할 수 있다.
검색 결과 파일 생성부(2051)는 서치 피어(2049b)로부터 수신한 검색 결과를 저장할 수 있다. 보다 상세하게는, 검색 결과 파일 생성부(2051)는 서치 피어(2049b)로부터 수신한 로그 데이터를 검색 결과 데이터 파일에 저장하고, 저장된 로그 데이터의 위치 정보와 저장된 로그 데이터의 길이 정보를 offset 파일 내 저장할 수 있다.
일 실시 예에서, 검색 결과 파일 생성부(2051)는 정렬 필드의 값을 기준으로 익스터널 머지 소트 알고리즘을 수행하여 검색 결과를 정렬할 수 있다. 여기에서, 익스터널 머지 소트 알고리즘에 대하여는 후술하도록 한다.
검색 결과 반환부(2052)는 서치 피어(2049b)로부터 수신한 결과 중 서치 ID, offset 파일과 limit 정보를 활용하여 검색 결과를 요청하는 사용자에게 실시간으로 반환할 수 있다. 여기에서, limit 정보는 한 페이지 당 출력할 로그 데이터의 개수를 나타낸다. 즉, 검색 결과 반환부(2052)는 offset 파일 내의 로그 데이터의 위치 정보와 로그 데이터의 길이 정보를 참조하여 로그 데이터를 추출하고, limit 정보에 기초하여 지정된 개수만큼 모니터링 모듈에게 반환할 수 있다.
또한, 서치 피어가 된 인스턴스(2049b)는 검색부(2053)를 포함할 수 있다.
여기에서, 검색부는 서치 헤드(2049a)로부터 수신한 검색 쿼리 정보에 기초하여 검색 대상(Segment/Shard)을 구분하고, 검색 대상을 이용하여 로그 데이터를 조회할 수 있다. 이때, 검색 대상이 되는 Segment와 Shard는 데이터베이스 시스템에서 데이터의 구조와 저장 방식을 조직화하기 위하여 사용되는 개념으로, Segment는 논리적인 데이터 단위를, Shard는 물리적인 데이터 분산을 나타낸다. 즉, Segment는 해당 데이터를 논리적인 단위로 나누고, Shard는 데이터를 분산 저장할 수 있도록 한다.
이를 통해 대량의 데이터 처리와 동시에 실시간으로 결과를 확인할 수 있어 효율적인 로그 검색을 지원한다는 장점이 있다.
도 82는 본 발명의 데이터 관리 방법이 로그를 검색하는 실시 예를 설명하는 도면이다.
단계(S14110)에서, 본 발명의 데이터 관리 방법은 사용자로부터 검색 요청을 수신할 수 있다.
사용자로부터 검색 요청을 수신함에 따라, 단계(S14120)에서, 본 발명의 데이터 관리 방법은 서치 ID를 발급할 수 있다. 일 실시 예에서, 서치 ID는 고유한(unique) ID에 대응할 수 있다. 이는, 사용자가 하나의 서치 ID를 통하여 결과를 반복적으로 열람할 수 있기 때문이다.
단계(S14130)에서, 본 발명의 데이터 관리 방법은 사용자로부터 검색 결과 요청을 수신할 수 있다. 보다 상세하게는, 데이터 관리 방법은 서치 ID를 가지고 있기 때문에 고유한 검색 결과를 요청할 수 있다. 특히, 검색 결과는 실시간으로 변경될 수 있기 때문에, 데이터 관리 방법은 제 1 검색 요청, 제 2 검색 요청 내지 제 n 검색 요청(여기에서, n은 자연수)에 대응하는 검색 결과를 요청할 수 있다.
즉, 단계(S14110)에서, 사용자로부터 검색 요청을 수신하는 경우, 후술하는 검색을 수행하는 단계가 순차적으로 수행될 수 있다. 다른 실시 예에서, 사용자로부터 검색 요청 수신 이전에 주기적으로 검색이 수행된 상태에서, 단계(S14130)에 따라 단계(S141440)을 수행할 수 있다.
단계(S14140)에서, 본 발명의 데이터 관리 방법은 사용자에게 검색 결과를 제공할 수 있다.
도 83은 본 발명의 데이터 관리 방법에서 로그를 검색하는 실시 예를 설명하는 도면이다.
단계(S15110)에서, 본 발명의 데이터 관리 방법은 코디네이터로부터 사용 가능한 인스턴스 목록을 수집할 수 있다. 일 실시 예에서, 인스턴스 중 서치 헤드는 코디네이터로부터 인스턴스 목록을 수신할 수 있다.
단계(S15120)에서, 서치 헤드는 각 인스턴스에게 서치 ID와 검색 쿼리 정보를 포함하여 로그 검색을 요청할 수 있다.
단계(S15130)에서, 서치 헤드는 서치 피어로부터 검색 결과를 수신할 수 있다.
단계(S15140)에서, 서치 헤드는 검색 결과를 data 파일에 저장하고, 데이터가 저장된 위치 정보와 데이터의 길이 정보를 offset 파일 내에 저장할 수 있다. data 파일에는 검색 결과가 계속적으로 누적되기 때문에 offset 파일 내에 데이터의 길이 정보를 포함하여, 검색 결과를 구분할 수 있다.
단계(S15150)에서, 서치 헤드는 익스터널 머지 소트 알고리즘을 수행할 수 있다. 자세한 내용은 후술하도록 한다.
단계(S15160)에서, 서치 헤드는 콘솔(예를 들어, 본 발명의 데이터 관리 플랫폼의 모니터링 모듈)의 검색 결과 요청에 기초하여 검색 결과를 반환할 수 있다.
보다 상세하게는, 서치 헤드는 offset 파일 내에서 offset 항목(예를 들어, 제 1 데이터)에 해당하는 data 파일 내 제 1 데이터의 위치 정보와 제 1 데이터의 길이 정보를 참조하여 data 파일 내 제 1 데이터를 추출하여 검색 결과를 반환할 수 있다.
일 실시 예에서, 서치 헤드는 검색 결과를 반환할 때, 복수의 데이터를 포함하는 리스트를 반환할 수 있다. 상술한 바와 같이, 사용자는 제 1 검색 요청, 제 2 검색 요청 내지 제 n 검색 요청 등 시간에 기초하여 여러 번 로그 검색을 요청할 수 있다. 서치 헤드는 제 1 검색 요청에 따른 제 1 데이터 내지 제 a 데이터에 대한 결과, 제 2 검색 요청에 따른 제 b 데이터 내지 제 c 데이터에 대한 결과(여기에서, a 내지 c는 자연수)를 리스트로 반환할 수 있다.
도 84는 본 발명의 데이터 관리 방법에서 로그를 검색하는 실시 예를 설명하는 도면이다.
단계(S15170)에서, 서치 피어는 서치 헤드로부터 검색 요청을 수신할 수 있다. 여기에서, 검색 요청은 서치 ID와 검색 쿼리 정보를 포함할 수 있다.
단계(S15180)에서, 서치 피어는 요청에 기초하여 검색 쿼리 정보를 분석하여 검색 대상을 구분하고 인덱스를 사용해서 검색을 수행할 수 있다. 여기에서, 검색 대상은 Segment 또는 Shard로 구분될 수 있다.
단계(S15190)에서, 서치 피어는 검색 결과를 서치 헤드에게 전송할 수 있다. 이때, 서치 피어는 검색 대상(Segment/Shard)을 이용하여 로그 데이터를 조회하여 검색 결과를 서치 헤드에게 전송할 수 있다. 이때, 서치 피어는 검색 대상에 포함된 인덱스를 이용하여 로그 데이터를 조회할 수 있다.
도 85는 본 발명의 익스터널 머지 소트 알고리즘 실시 예를 설명하는 도면이다.
익스터널 머지 소트(External Merge Sort) 알고리즘은 대용량의 데이터를 정렬하는데 사용되는 알고리즘으로, 특히, 메모리 용량을 초과하는 데이터를 정렬할 때 효율적으로 작동한다. 익스터널 머지 소트 알고리즘은 주로 디스크나 외부 저장 장치와 같은 보조 메모리를 활용하여 데이터를 정렬할 수 있다.
단계(S16110)에서, 정렬 필드의 값을 기준으로 데이터의 offset 정보를 저장하는 인덱스 파일을 생성할 수 있다. 여기에서, 정렬 필드의 값은 데이터 안에 포함된 항목을 나타낼 수 있다. 예를 들어, 데이터 안에 포함된 항목은 사용자 이름, 이메일 주소, 시간 등을 포함할 수 있다. 이에 따라, 익스터널 머지 소트 알고리즘은 데이터 안에 포함된 항목을 기준으로 데이터를 정렬할 수 있다. 또한, offset 정보는 정렬 필드의 기준 값, data 파일 내 위치(예를 들어, data 파일 내의 제 1 로그의 위치) 및 길이 정보(예를 들어, data 파일 내의 제 1 로그의 길이 정보)를 포함할 수 있다. 또한, 인덱스 파일은 특정 건수(예를 들어, 1000건) 단위의 offset 목록으로 이미 정렬된 데이터 순서를 가지는 것을 특징으로 한다.
단계(S16120)에서, 머지 소트에 대한 정렬 결과 파일에 포함된 데이터의 개수가 제 1 개수 이상이면, 머지 소트에 대한 정렬 결과 파일을 합쳐서 생성할 수 있다.
보다 상세하게는, 인덱스 파일을 생성할 때, 인덱스 파일에 포함된 파일의 개수가 제 1 개수 이상이면, 새로운 인덱스 파일을 생성할 수 있다. 예를 들어, 제 1 정렬 결과 파일에 포함된 파일의 개수가 제 n 개수 이상이면, 제 2 정렬 결과 파일을 생성할 수 있다.
단계(S16130)에서, 검색이 종료되거나 머지 소트 (merge sort) 파일에 포함된 파일이 제 n 개수 이상이면, 새롭게 생성된 제 2 정렬 결과 파일을 병합하여 새로운 제 3 정렬 결과 파일을 생성할 수 있다.
즉, 익스터널 머지 소트 알고리즘을 활용하면 데이터를 분할하고 병합하는 과정을 반복하면서 정렬 작업을 수행하기 때문에 전체적인 성능을 최적화할 수 있다는 장점이 있다.
도 86은 본 발명의 검색 결과 파일을 설명하는 도면이다.
일 실시 예에서, 검색 결과 파일은 data 파일(3006)과 offset 파일(3007)을 포함할 수 있다.
여기에서, data 파일(3006)은 서치 피어로부터 수신한 검색 결과를 포함할 수 있다.
Offset 파일(3007)은 data 파일(3006) 내 저장된 데이터의 위치 정보 및 데이터의 길이 정보를 포함할 수 있다. 예를 들어, offset 파일(3007)은 data 파일(3006) 내 저장된 제 1 로그 데이터의 위치 정보와 제 1 로그 데이터의 길이 정보를 포함할 수 있다.
이를 통하여, 사용자로부터 검색 결과 반환 요청이 있는 경우, 본 발명의 데이터 관리 플랫폼은 offset 파일(3007) 내에서 제 1 로그 데이터의 data 파일(3006) 내 위치 정보와 제 1 로그 데이터의 길이 정보에 기초하여 data 파일(3006) 내에서 제 1 로그 데이터를 추출할 수 있다.
이때, 검색 결과 반환 요청에 제 n 개의 로그 데이터의 반환에 대한 요청이 포함된 경우, 본 발명의 데이터 관리 플랫폼은 offset 파일(3007) 내에서 제 n 개의 로그 데이터의 data 파일 내 위치 정보와 제 n 개의 로그 데이터의 길이 정보에 각각 기초하여 data 파일(3006) 내에서 제 n 개의 로그 데이터를 추출하여 검색 결과를 반환할 수 있다.
도 87은 본 발명의 데이터 관리 방법이 로그를 검색하는 실시 예를 설명하는 도면이다.
단계(S16140)에서, 본 발명의 데이터 관리 방법은 데이터 검색 요청을 수신할 수 있다. 본 발명의 데이터 관리 방법이 사용자 또는 클라이언트로부터 데이터 검색 요청을 수신하는 방법은 도 1 내지 도 4, 도 16 및 도 17의 실시 예를 참고하도록 한다. 즉, 데이터 관리 방법은 모니터링 모듈을 통하여 사용자로부터 데이터 검색 요청을 수신하고 호스트 서버에 설치된 코디네이터 및 적어도 하나의 인스턴스를 통하여 분산 데이터를 검색할 수 있다.
단계(S16150)에서, 본 발명의 데이터 관리 방법은 데이터 검색 요청에 기초하여 데이터를 검색할 수 있다. 본 발명의 데이터 관리 방법이 데이터를 검색하는 방법은 도 16, 도 17 및 도 80 내지 도 84의 실시 예를 참고하도록 한다.
단계(S16160)에서, 본 발명의 데이터 관리 방법은 검색된 결과를 제공할 수 있다. 일 실시 예에서, 데이터 관리 방법은 제 1 데이터가 포함된 검색 결과를 data 파일에 저장하고, 제 1 데이터가 저장된 위치 정보 및 제 1 데이터의 길이 정보를 offset 파일에 저장할 수 있다. 이에 대하여는 도 86의 실시 예를 참고하도록 한다.
또한, 일 실시 예에서, 데이터 관리 방법은 검색 결과를 익스터널 머지 소트 알고리즘(External Merge Sort Algorithm)에 의해 정렬할 수 있다. 본 발명의 데이터 관리 방법이 데이터를 검색하는 방법은 도 16, 도 17 및 도 85의 실시 예를 참고하도록 한다.
로그 데이터를 분석하는 시스템에는 저장된 데이터를 처리하기 위해 사용자를 위한 사용자 인터페이스(User Interface, UI)가 필요하다. 이때, 다양한 분석을 원하는 사용자의 입장에서는 개발사가 제공하는 UI는 한계가 있다. 즉, 보다 복잡한 데이터 분석이나 검색을 수행하거나 스크립트 형태로 쿼리 명령어를 입력하여 데이터를 조작하고 의미 있는 결과를 도출하기 위한 사용자 인터페이스가 필요하다. 이를 위하여, 본 발명에서는 UI 내에서 스크립트를 사용해서 UI 개발에 대한 프로그램 없이 데이터를 조작할 수 있는 기능을 제공하고자 한다.
도 88은 본 발명의 데이터 관리 플랫폼에서 데이터를 분석하는 실시 예를 설명하는 도면이다.
본 발명은 분석 작업 편집기(2056)를 통해 스크립트를 이용하여 사용자가 다양한 데이터 분석 및 데이터 조작을 할 수 있도록 한다.
이를 위하여, 본 발명의 데이터 관리 플랫폼(10000)의 분석 모듈(20002)은 분석 작업 실행부(2054) 및 분석 작업 관리부(2055)를 포함할 수 있다.
여기에서, 분석 작업 실행부(2054)는 분석 작업 편집기(2056)에 입력된 정보를 실행하는 분석 엔진을 포함할 수 있다. 일 실시 예에서, 분석 작업 실행부(2054)는 사용자가 분석 작업 편집기(2056)를 통해 입력한 제 1 분석 작업을 실행하는 명령에 기초하여 분석 작업을 실행할 수 있다. 구체적으로, 사용자가 분석 작업 편집기(2056) 내에서 코드 셀을 실행하면, Lua 스크립트가 분석 작업 실행부(2054) 내의 분석 엔진으로 전송되고, 분석 엔진 내에서 Lua 스크립트를 해석하여 실행하고 결과를 반환할 수 있다. 이를 위하여, 분석 작업 실행부(2054)는 데이터베이스(20007)의 로그 데이터 및 통계 데이터를 활용할 수 있다.
분석 작업 편집기(2056)는 애플리케이션, 소프트웨어 또는 웹 브라우저 등을 통하여 실행 가능한 편집기로 적어도 하나의 셀을 포함할 수 있다. 여기에서 셀은 실행 스크립트에 대한 설명 데이터를 추가하기 위한 마크다운 셀과 분석을 위한 Lua 스크립트 정보를 추가하기 위한 코드 셀을 포함한다.
분석 작업 관리부(2055)는 작성된 Lua 스크립트를 등록할 수 있다. 보다 상세하게는, 사용자는 분석 작업 편집기(2056)를 통해 Lua 스크립트를 추가할 수 있고, 추가된 Lua 스크립트를 분석 작업 관리부(2055)에 등록할 수 있다. 등록된 Lua 스크립트는 분석 작업 관리부(2055)에 포함된 분석 작업 스케쥴러에 의해 주기적으로 실행될 수 있다.
이후, 모니터링 모듈(20005)은 분석 작업 관리부(2055)를 통해 관리된 분석 작업이 주기적으로 실행된 결과를 출력할 수 있다.
이를 통하여 사용자는 개발사가 제공하는 사용자 인터페이스를 이용하지 않고도 원하는 데이터를 분석할 수 있다.
도 89는 본 발명의 데이터 관리 방법이 데이터를 분석하는 실시 예를 설명하는 도면이다.
단계(S17110)에서, 본 발명의 데이터 관리 방법은 분석 작업 편집기를 실행할 수 있다. 보다 상세하게는, 사용자는 데이터 관리 플랫폼을 통하여 제공되는 분석 작업 편집기를 실행할 수 있다. 여기에서, 분석 작업 편집기는 애플리케이션, 소프트웨어 또는 웹 브라우저 등을 통하여 실행할 수 있다.
단계(S17120)에서, 본 발명의 데이터 관리 방법은 분석 작업 편집기에서 입력된 셀을 수신할 수 있다. 보다 상세하게는, 사용자는 실행된 분석 작업 편집기에 포함된 마크다운 셀에 텍스트를 입력할 수 있고, 데이터 관리 방법은 마크다운 셀에 포함된 텍스트를 수신할 수 있다.
단계(S17130)에서, 본 발명의 데이터 관리 방법은 분석 엔진을 통하여 분석 작업을 실행할 수 있다. 보다 상세하게는, 사용자는 분석 작업 편집기의 마크다운 셀에 텍스트를 입력하고, 분석 작업 편집기에 포함된 코드 셀에 출력된 코드를 확인한 후 분석 작업을 실행할 수 있다. 여기에서, 코드 셀은 Lua 스크립트 내에서 각종 데이터를 지원하기 위한 기능 및 데이터를 이용하여 차트나 데이터 모델을 생성할 수 있는 기능들을 함수로 제공할 수 있다. 이에 따라, 본 발명의 데이터 관리 방법은 분석 엔진을 실행하여 사용자가 입력한 셀에 대한 분석 작업을 실행할 수 있다.
일 실시 예에서, 데이터 관리 방법은 미리 등록한 제 1 분석 작업을 실행하는 명령에 기초하여 분석 엔진을 실행할 수 있다. 이때, 제 1 분석 작업을 등록한 제 1 사용자와 제 1 분석 작업을 실행하는 제 2 사용자는 동일하거나 상이할 수 있다.
도 90은 본 발명의 데이터 관리 방법이 분석 작업의 스케쥴을 설정하는 실시 예를 설명하는 도면이다.
단계(S17140)에서, 본 발명의 데이터 관리 방법은 분석 작업 관리부를 통해 작성된 Lua 스크립트를 등록할 수 있다. 보다 상세하게는, 사용자는 분석 작업 편집기에 포함된 마크다운 셀 및 코드 셀을 통해 제 1 분석 작업에 대응하는 Lua 스크립트를 등록할 수 있다.
단계(S17150)에서, 본 발명의 데이터 관리 방법은 등록된 분석 작업의 스케쥴을 설정할 수 있다. 상술한 실시 예를 참고하여 설명하면, 사용자는 제 1 분석 작업을 주기적으로 실행하기 위한 정보를 함께 입력할 수 있다. 예를 들어, 사용자는 제 1 분석 작업을 주기적으로 실행하기 위하여 실행 주기(예를 들어, 1분), 초기 시간(예를 들어, 5분) 및 지연 처리 시간(예를 들어, 1분)을 설정할 수 있다.
단계(S17160)에서, 본 발명의 데이터 관리 방법은 분석 엔진을 통하여 분석 작업을 실행할 수 있다. 보다 상세하게는, 사용자가 제 1 분석 작업에 대한 실행 주기, 초기 시간 및 지연 처리 시간을 설정한 경우, 데이터 관리 방법은 제 1 분석 작업에 대한 스케쥴에 기초하여 분석 작업을 실행할 수 있다.
이후, 데이터 관리 방법은 제 1 분석 작업에 대한 결과를 사용자가 주기적으로 모니터링할 수 있도록 제공할 수 있다. 예를 들어, 데이터 관리 방법은 제 1 분석 작업에 대한 결과를 웹 브라우저의 대쉬보드 또는 사용자가 미리 입력한 이메일 등을 통하여 제공할 수 있다.
도 91은 본 발명의 데이터 관리 방법이 분석 작업을 실행하는 실시 예를 설명하는 도면이다.
단계(S17170)에서, 사용자는 분석 작업 편집기 내에서 코드 셀을 실행할 수 있다.
이에 따라, 단계(S17180)에서, 본 발명의 데이터 관리 방법은 코드 셀에 포함된 Lua 스크립트를 분석 엔진으로 전송할 수 있다.
단계(S17190)에서, 본 발명의 데이터 관리 방법은 분석 엔진 내에서 Lua 스크립트를 해석하고 실행한 뒤 결과를 반환할 수 있다.
도 92는 본 발명의 데이터 관리 플랫폼에서 데이터를 변조하는 실시 예를 설명하는 도면이다.
본 도면은 분석 작업 편집기 내에서 사용 가능한 함수들을 설명하는 도면이다.
상술한 바와 같이 분석 작업 편집기는 마크다운 셀과 코드 셀을 포함하며, 코드 셀은 분석을 위한 Lua 스크립트를 포함할 수 있다. 이때, 코드 셀은 Lua 스크립트 내에서 각종 데이터를 지원하기 위한 기능 및 데이터를 이용하여 차트나 데이터 모델을 생성할 수 있는 기능들을 함수로 제공할 수 있다.
이때, 사용 가능한 함수들은 다음과 같다.
- search: 로그 데이터를 조회 또는 입력하기 위한 함수
- analytic: 통계 데이터를 조회 또는 입력하기 위한 함수
- jdbc: 데이터 베이스에 접근하여 쿼리를 수행하기 위한 함수
- weka: 머신러닝 데이터 모델을 저장하거나 불러오기 위한 함수
- visualize: 차트를 생성해주는 함수
이를 통해 분석 작업 편집기 내에서 코드 셀을 실행하는 경우, Lua 스크립트는 분석 모듈로 전송되고, 분석 모듈 내에서 Lua 스크립트를 해석하여 실행할 수 있고, 실행 결과가 분석 작업 편집기 상으로 반환될 수 있다. 즉, 분석 작업 편집기 내에서 실행 결과를 바로 출력하여 확인할 수 있다.
도 93은 본 발명의 데이터 관리 플랫폼에서 제공하는 분석 작업 편집기의 사용자 인터페이스를 설명하는 도면이다.
본 발명의 분석 작업 편집기(2056)는 마크다운 셀(Markdown cell, 2057)과 코드 셀(Code cell, 2058)을 포함할 수 있다. 분석 작업 편집기(2056)는 여러 개의 스크립트 및 텍스트 블록을 저장하는 단위에 대응할 수 있다.
여기에서, 마크다운 셀(2057)은 설명 블록(description block)에 대응하고, 코드 셀(2058)은 스크립트 블록(script block)에 대응한다.
일 실시 예에서, 사용자는 마크다운 셀(2057) 및 코드 셀(2058) 중 적어도 하나에 텍스트를 입력할 수 있다. 예를 들어, 사용자는 마크다운 셀(2057)에 코드 셀(2058)에 대한 설명을 기재할 수 있다. 또한, 사용자는 코드 셀(2058)에 실질적으로 실행하고자 하는 코드를 입력할 수 있다. 이에 따라, 분석 작업 편집기(2056)는 코드 셀(2058)에 포함된 코드를 실행할 수 있다.
일 실시 예에서, 사용자가 분석 작업 편집기(2056)에서 제공하는 “+ 버튼(2059)”을 누르면, 분석 작업 편집기(2056)는 마크다운 셀 추가 버튼 및 코드 셀 추가 버튼(2060a, 2060b)을 추가로 출력할 수 있다. 일 실시 예에서, 분석 작업 편집기(2056)는 +버튼(2059)을 마크다운 셀(2057)의 위/아래에 모두 출력할 수 있고, 이에 따라 사용자는 추가할 마크다운 셀(2057) 또는 코드 셀(2058)의 위치를 결정할 수 있다.
이에 따라, 사용자는 복수 개의 마크다운 셀(2057)을 추가할 수 있으며, 마찬가지로 분석 작업 편집기(2056)에게 복수 개의 코드 셀(2058)을 요청할 수 있다.
도 94는 본 발명의 데이터 관리 플랫폼에서 제공하는 분석 작업 편집기의 사용자 인터페이스를 설명하는 도면이다.
일 실시 예에서, 사용자가 출력된 코드 셀(2058)의 실행을 요청함에 따라, 분석 작업 편집기는 분석 작업 실행부를 통하여 코드 셀(2058)에 포함된 분석 작업을 실행할 수 있다.
예를 들어, 사용자가 제 1 마크다운 셀(2057)에 “session 통계 데이터를 조회하여 line chart로 시각화”를 입력하고, 이 설명 블록에 대응하는 Lua 스크렙트를 제 1 코드 셀(2058) 상에 입력할 수 있다.
이후, 사용자가 출력된 제 1 코드 셀(2058)의 실행을 요청함에 따라, 분석 작업 편집기는 도면과 같이 제 1 라인 차트(2061)를 시각화할 수 있다.
다른 예를 들면, 사용자가 제 2 마크다운 셀에 “외부 database에 리소스 사용률 테이블을 조회하여 line chart로 시각화”를 입력하고, 이 설명 블록에 대응하는 Lua 스크립트를 제 2 코드 셀 상에 입력할 수 있다.
이후, 사용자가 출력된 제 2 코드 셀의 실행을 요청함에 따라, 분석 작업 편집기는 도면과 같이 제 2 라인 차트를 시각화할 수 있다.
도 95는 본 발명의 데이터 관리 플랫폼에서 제공하는 분석 작업 편집기의 사용자 인터페이스를 설명하는 도면이다.
이후, 도 95의 (a)를 참조하면, 사용자는 제 1 마크다운 셀, 제 1 코드 셀, 제 2 마크다운 셀 및 제 2 코드 셀이 포함된 제 1 분석 작업을 저장할 수 있다. 이때, 사용자는 구분을 위하여 제 1 분석 작업의 이름을 설정할 수 있다.
또한, 도 95의 (b)를 참조하면, 저장된 제 1 분석 작업은 동일한 사용자 또는 상이한 사용자에 의해 불러오기 될 수 있다. 사용자가 불러온 제 1 분석 작업에 대하여 분석 작업 편집기를 실행함에 따라, 제 1 분석 작업이 실행될 수 있다. 이를 위하여, 본 발명의 데이터 관리 플랫폼은 기 저장된 적어도 하나의 분석 작업 리스트(2062)를 제공할 수 있다.
도 96은 본 발명의 데이터 관리 플랫폼의 모니터링 모듈이 제공하는 사용자 인터페이스를 설명하는 도면이다.
일 실시 예에서, 본 발명의 데이터 관리 플랫폼은 모니터링 모듈을 통하여 사용자에게 분석 작업에 대한 모니터링을 제공할 수 있다. 이를 위하여, 데이터 관리 플랫폼은 분석 작업 스케쥴러(2063)를 제공할 수 있다. 예를 들어, 사용자는 분석 작업 스케쥴러(2063)를 이용하기 위하여, 작업 생성 버튼을 선택하여, 분석 작업을 등록하는 팝업창을 출력할 수 있다. 이를 통해, 사용자는 이미 등록된 분석 작업의 스케쥴을 관리할 수 있다. 예를 들어, 사용자는 분석 작업 스케쥴러(2063)를 통해 제 1 분석 작업의 실행 주기(예를 들어, 1분), 초기 시간(예를 들어, 5분) 및 지연 처리 시간(예를 들어, 1분)을 설정할 수 있다. 이후, 사용자가 분석 작업을 실행하면, 설정된 주기에 따라 제 1 분석 작업이 실행될 수 있다.
도 97은 본 발명의 데이터 관리 플랫폼에서 제공하는 분석 작업 편집기의 사용자 인터페이스를 설명하는 도면이다.
일 실시 예에서, 데이터 관리 플랫폼의 모니터링 모듈은 분석 작업의 스케쥴에 따라 분석 작업의 모니터링 결과를 출력할 수 있다.
예를 들어, 제 1 분석 작업(2064)은 상술한 실시 예에 기초하여 설정된 작업 주기, 실행 주기, 초기 기간, 지연 처리 기간에 따라 실행될 수 있고, 모니터링 모듈은 제 1 분석 작업(2064)에 대한 실행 결과를 출력할 수 있다.
이를 통해, 사용자는 기본 UI로 제공되지 않는 데이터에 대해 스크립트를 활용하여 다양한 데이터의 분석과 조작을 수행할 수 있다. 즉, 본 발명은 데이터 소스의 모니터링과 분석 프로세스를 통합하여 보다 복잡한 분석 작업을 수행할 수 있도록 한다.
도 98은 본 발명의 데이터 관리 방법이 데이터를 분석하는 실시 예를 설명하는 도면이다.
단계(S18110)에서, 본 발명의 데이터 관리 방법은 제 1 마크다운 셀의 입력을 수신할 수 있다. 여기에서, 마크다운 셀은 실행 스크립트에 대한 설명 데이터를 추가하기 위한 셀으로, 데이터 관리 플랫폼의 분석 작업 편집기를 통하여 사용자에게 제공될 수 있다. 이에 대한 설명은, 도 88, 도 89, 도 93 및 도 94에서 상술한 실시 예를 참고하도록 한다.
단계(S18120)에서, 본 발명의 데이터 관리 방법은 제 1 마크다운 셀에 대응하는 제 1 코드 셀의 입력을 수신할 수 있다. 여기에서, 제 1 코드 셀은 분석을 위한 Lua 스크립트 정보를 추가하기 위한 셀으로, 데이터 관리 플랫폼의 분석 작업 편집기를 통하여 사용자에게 제공될 수 있다. 이에 대한 설명은 도 88, 도 92, 도 93 및 도 94에서 상술한 실시 예를 참고하도록 한다.
단계(S18130)에서, 본 발명의 데이터 관리 방법은 제 1 코드 셀에 기초하여 제 1 분석 작업을 실행할 수 있다. 이에 대한 설명은 도 88, 도 89, 도 91 및 도 94에서 상술한 실시 예를 참고하도록 한다.
일 실시 예에서, 제 1 코드 셀에 포함된 함수 및 데이터 관리 플랫폼 내에 포함된 데이터베이스의 로그 데이터, 통계 데이터를 활용하여 본 발명의 데이터 관리 방법은 제 1 코드 셀에 대응하는 차트 및 모델을 생성할 수 있다. 이때, 데이터베이스에 포함된 로그 데이터 또는 통계 데이터 등은 도 1 내지 도 25의 실시 예를 통해 수집되어 분석된 데이터에 대응할 수 있다.
도 99는 본 발명의 데이터 관리 플랫폼이 로그 데이터를 저장하고 조회하는 일 실시 예를 설명하는 도면이다.
일 실시예에서, 데이터 관리 플랫폼(10000)은 수집 모듈(20001), 분석 모듈(20002) 및 모니터링 모듈(20005)을 통하여 로그 데이터를 압축하여 데이터베이스(20007) 및 아카이브 저장소(20009) 중 적어도 하나에 저장할 수 있고, 사용자/클라이언트(1000)의 로그 조회 요청에 따라 로그 데이터를 조회할 수 있다.
구체적으로, 수집 모듈(20001)은 데이터 수집부(2035)를 포함할 수 있다. 데이터 수집부(2035)는 신규 로그 데이터가 입력되는 경우 해당 로그 데이터를 수집할 수 있다. 일 실시 예에서, 데이터 수집부(2035)는 로그 데이터가 일정 기간 입력되어 쌓인 경우 수집된 로그 데이터를 분석 모듈(20002)에 전달할 수 있다. 분석 모듈(20002)은 압축 처리부(2036) 및 아카이빙 수행부(2037)를 포함할 수 있다. 즉, 분석 모듈(20002)은 수집 모듈(20001)로부터 전달받은 로그 데이터를 분석할 수 있다.
보다 상세하게는, 압축 처리부(2036)는 입력된 다수의 로그 데이터를 미리 정의된 기간 단위(예: 일(day) 단위)의 세그먼트(segment)로 저장할 수 있다. 또한, 압축 처리부(2036)는 저장된 세그먼트를 미리 정의된 제 1 크기의 청크 단위로 저장할 수 있다. 즉, 본 발명에 따르면, 다수의 로그 데이터가 포함된 파일을 청크 단위로 여러 파일로 저장함으로써, 가능한한 빠른 시간(Near Real-time)에 로그 데이터를 압축할 수 있으며, 로그 데이터를 건 단위로 압축을 하지 않는 이유는 건 단위로 압축을 하게 되면 압축 효율이 매우 떨어지기 때문일 수 있다.
또한, 압축 처리부(2036)는 저장된 청크를 미리 정의된 제 2 크기의 블록 단위로 압축할 수 있다. 즉, 본 발명에 따르면, 해당 청크를 블록 단위로 분할하여 압축을 수행함으로써, 압축 효율을 떨어뜨리지 않으면서도 실제 로그 데이터를 꺼내기 위해 압축을 풀 때에 조회 성능을 높일 수 있다. 이 경우, 블록 사이즈는 청크 사이즈보다 작을 수 있다.
일 실시 예에서, 압축된 블록을 포함하는 세그먼트는 데이터베이스(20007)에 저장될 수 있다. 이 경우, 데이터베이스(20007)는 온라인 상으로 조회가 가능한 세그먼트를 보관하기 위한 저장소를 포함할 수 있다.
아카아빙 수행부(2037)는 데이터베이스(20007)에 저장된 세그먼트들 중 아카이브 저장소(20009)에 저장하기 위한 아카이빙 대상 세그먼트를 결정할 수 있다. 아카이빙 대상 세그먼트를 결정하는 내용은 이하에서 자세히 설명하도록 한다. 이후 아카이빙 수행부(2037)는 아카이빙 대상 세그먼트를 아카이브 저장소(20009)에 이관하여 저장할 수 있다.
모니터링 모듈(20005)는 압축 해제부(2038) 및 로그 조회부(2039)를 포함할 수 있다. 압축 해제부(2038)는 데이터베이스(20007)에 저장된 세그먼트 및 아카이브 저장소(20009)에 저장된 아카이빙 대상 세그먼트 중 적어도 하나에 포함된 전체 압축된 로그 데이터 중 사용자/클라이언트(1000)로부터 요청 받은 적어도 하나의 로그 데이터가 포함된 블록만을 압축 해제할 수 있다. 해당 블록을 압축 해제하는 내용은 이하에서 자세히 설명하도록 한다.
로그 조회부(2039)는 사용자/클라이언트(1000)로부터 로그 데이터에 대한 로그 조회 요청을 수신할 수 있으며, 다수의 로그 데이터 중 로그 조회 요청에 따라 아래 모니터링 모듈(20005)을 통해 압축 해제된 로그 데이터를 사용자/클라이언트(1000)에게 송신할 수 있다.
도 100은 본 발명의 데이터 관리 플랫폼이 로그 데이터를 저장하고 조회하는 다른 일 실시 예를 설명하는 도면이다.
일 실시 예에서, 압축 처리부(2036)는 신규 입력된 다수의 로그 데이터를 미리 정의된 기간 단위의 세그먼트로 저장하고, 신규 로그 데이터를 저장할 때 세그먼트의 세그먼트 접근 정보가 존재하는지 확인하고 없으면 해당 세그먼트의 세그먼트 접근 정보를 생성할 수 있다. 여기서, 세그먼트 접근 정보는 해당 세그먼트에 대한 메타 데이터를 포함할 수 있다. 예를 들어, 세그먼트 접근 정보는 해당 세그먼트가 저장 가능한 것인지 여부를 나타내는 정보, 해당 세그먼트가 아카이빙된 것인지 여부를 나타내는 정보 및 해당 세그먼트가 아카이브 저장소(20009) 내에서 아카이빙된 위치 정보 중 적어도 하나를 포함할 수 있다.
압축 처리부(2036)는 세그먼트를 미리 정의된 제 1 크기의 청크 단위로 저장할 수 있다. 일 실시 예에서, 압축 처리부(2036)는 저장된 오프셋(offset)을 기준으로 각 청크에 대한 인덱스(index)를 생성할 수 있다. 이는, 청크가 압축 파일 형식으로 생성되기 때문에, 해당 압축 파일 내에 각 청크가 어디에 위치하는지를 나타내기 위함 일 수 있다.
압축 처리부(2036)는 로그 데이터의 변경이 없는 시점에서 저장된 청크를 미리 정의된 제 2 크기의 블록 단위로 압축하고, 블록 오프셋(offset) 정보와 압축 정보를 생성할 수 있다.
여기서, 압축된 블록은 청크를 블록 단위로 압축한 파일인 압축 데이터를 포함할 수 있다. 또한, 블록 오프셋 정보는 블록 단위로 압축된 블록의 청크 내 위치 정보와 압축된 길이 정보를 포함할 수 있다. 또한, 압축 정보는 압축된 블록의 크기 및 압축 전 원본 파일의 사이즈 정보를 포함할 수 있다.
아카아빙 수행부(2037)는 아카이빙 수행 시 아카이브 대상 세그먼트를 구분하고, 아카이브 저장소(20009)로 구분된 아카이브 대상 세그먼트를 이관하여 저장하고, 아카이브 저장소(20009)에 대한 아카이브 대상 세그먼트의 접근 정보를 생성할 수 있다.
압축 해제부(2038)는 사용자/클라이언트(1000)로부터 다수의 로그 데이터 중 적어도 하나의 로그 데이터에 대한 로그 조회 요청이 수신됨에 따라, 세그먼트 및 아카이브 대상 세그먼트 중 적어도 하나의 세그먼트 접근 정보, 블록 오프셋 정보 및 압축 정보 중 적어도 하나를 이용하여 전체 압축된 로그 데이터 중 요청 받은 적어도 하나의 로그 데이터가 위치하는 블록만 압축을 해제하여, 사용자/클라이언트(1000)에 의해 적어도 하나의 로그 데이터가 조회될 수 있도록 한다.
일반적인 데이터베이스에 보관된 로그 데이터를 장기 보관하기 위해서 별도의 장소(예: 아카이브 저장소(20009))에 아카이빙이 수행될 수 있다. 이때 로그 데이터에 대한 익스포트(export) 과정이 필요하고, 아카이빙된 로그 데이터를 다시 조회하기 위해서는 데이터베이스에 대한 임포트(import) 과정이 필요하다. 이러한 익스포트, 임포트 과정에서 압축 및 압축 해제 시 많은 시간이 소모될 수 있다. 이에, 본 발명에 따르면, 압축 정보 및 블록 오프셋 정보를 이용하여 전체 로그 데이터의 압축 해제 없이 조회 가능하도록 하여 익스포트/임포트 과정이 매우 단축될 수 있다.
도 101은 본 발명의 데이터 관리 방법이 로그 데이터를 압축하는 일 실시 예를 설명하는 도면이다.
단계(S14010)에서, 데이터 관리 방법은 로그 데이터를 획득할 수 있다.
단계(S14020)에서, 데이터 관리 방법은 신규 로그 데이터가 입력되는지 여부를 판단할 수 있다. 신규 로그 데이터가 입력되는 경우, 단계(S14010)로 진행하여 신규 로그 데이터를 추가로 획득할 수 있다. 신규 로그 데이터가 입력되지 않는 경우, 단계(S14030)로 진행한다.
단계(S14030)에서, 데이터 관리 방법은 획득된 다수의 로그 데이터를 미리 정의된 기간 단위의 세그먼트로 저장하고 각 세그먼트의 세그먼트 접근 정보를 생성할 수 있다. 예를 들어, 일정 기간 동안 신규 로그 데이터가 입력되어 쌓인 경우, 획득된 다수의 로그 데이터를 미리 정의된 기간 단위의 세그먼트로 저장할 수 있다.
단계(S14040)에서, 데이터 관리 방법은 저장된 세그먼트를 미리 정의된 제 1 크기의 청크 단위로 저장할 수 있다. 단계(S14050)에서, 데이터 관리 방법은 저장된 청크를 미리 정의된 제 2 크기의 블록 단위로 압축할 수 있다. 이 경우, 미리 정의된 제 2 크기는 상기 미리 정의된 제 1 크기보다 작을 수 있다. 예를 들어, 블록 단위의 압축은 LZ4 알고리즘을 사용하여 수행될 수 있다.
도 102는 본 발명의 데이터 관리 방법이 로그 데이터를 아카이빙하는 일 실시 예를 설명하는 도면이다.
단계(S15010)에서, 데이터 관리 방법은 각 세그먼트가 저장된 시점부터의 경과 기간을 산출할 수 있다.
단계(S15020)에서, 데이터 관리 방법은 해당 경과 기간이 미리 정해진 기간보다 큰지 여부를 판단할 수 있다. 해당 경과 기간이 미리 정해진 기간보다 크지 않은 경우, 단계(S15010)로 진행하여 다시 해당 경과 기간을 산출할 수 있다. 해당 경과 기간이 미리 정해진 기간보다 큰 경우, 단계(S15030)로 진행한다.
단계(S15030)에서, 데이터 관리 방법은 해당 경과 기간이 미리 정해진 기간보다 큰 경우에 해당하는 세그먼트를 아카이빙 대상 세그먼트로 구분할 수 있다. 즉, 모든 세그먼트를 아카이빙하는 것이 아니라, 저장된 시점부터 일정 기간(예; 일(day), 월(month) 단위) 경과한 세그먼트만이 아카이빙 대상 세그먼트로 구분될 수 있다.
단계(S15040)에서, 데이터 관리 방법은 구분된 아카이빙 대상 세그먼트를 아카이빙 저장소(20009)에 저장할 수 있다. 즉, 데이터 보관의 한계로 인하여, 데이터를 보다 더 장기 보관하고 싶은 경우, 다른 곳에 보관하였다가 필요한 때 조회를 하여야 하는데, 이런 조회 행위 자체가 데이터베이스 기반인 경우 처리가 너무 오래 걸리기 때문에, 아카이브 저장소(20009)에 보관 후 나중에 임포트(import) 과정없이 어태치(attach)만 시켜서 신속하게 조회할 수 있다. 여기서, 임포트 과정은 전체 로그 데이터를 압축 해제하는 것을 의미하고, 어태치 과정은 외장 경로(예: 아카이브 저장소(20009))에 마운트하는 것을 의미할 수 있다.
단계(S15050)에서, 데이터 관리 방법은 각 세그먼트의 세그먼트 접근 정보에 아카이빙 대상 세그먼트의 세그먼트 접근 정보를 추가할 수 있다. 다시 말해, 아카이빙 대상 세그먼트의 세그먼트 접근 정보를 생성할 수 있다.
도 103은 본 발명의 데이터 관리 방법이 로그 데이터를 조회하는 일 실시 예를 설명하는 도면이다.
단계(S16010)에서, 데이터 관리 방법은 사용자/클라이언트(1000)로부터 다수의 로그 데이터 중 적어도 하나의 로그 데이터에 대한 로그 조회 요청을 수신할 수 있다.
단계(S16020)에서, 데이터 관리 방법은 로그 조회 요청에 응답하여, 적어도 하나의 로그 데이터에 대한 세그먼트 접근 정보에 기초하여, 아카이브 저장소(20009)에 저장된 적어도 하나의 로그 데이터가 포함된 아카이빙 대상 세그먼트를 결정할 수 있다.
단계(S16030)에서, 데이터 관리 방법은 블록에 대한 블록 오프셋 정보에 기초하여, 아카이빙 대상 세그먼트 내에서 적어도 하나의 로그 데이터가 포함된 블록을 압축 해제할 수 있다.
단계(S16040)에서, 데이터 관리 방법은 압축 해제된 블록에 포함된 적어도 하나의 로그 데이터를 사용자/클라이언트(1000)에게 송신할 수 있다. 일 실시 예에서, 사용자/클라이언트(1000)에게 송신된 적어도 하나의 로그 데이터는 사용자/클라이언트(1000)를 통해 출력될 수 있다. 예를 들어, 웹 브라우저와 같은 사용자/클라이언트(1000)의 콘솔에서 적어도 하나의 로그 데이터가 디스플레이될 수 있다.
도 104는 본 발명의 데이터 관리 방법의 일 실시 예를 설명하는 도면이다.
단계(S17010)에서, 데이터 관리 방법은 다수의 로그 데이터를 획득할 수 있다. 본 발명의 데이터 관리 방법이 다수의 로그 데이터를 획득하는 방법은 도 2, 5 및 99의 실시 예를 참고하도록 한다.
단계(S17020)에서, 데이터 관리 방법은 다수의 로그 데이터를 미리 정의된 제 2 크기의 블록 단위로 압축할 수 있다. 본 발명의 데이터 관리 방법이 다수의 로그 데이터를 미리 정의된 제 2 크기의 블록 단위로 압축하는 방법은 도 2, 6, 99 내지 101의 실시 예를 참고하도록 한다.
단계(S17030)에서, 데이터 관리 방법은 압축된 블록을 포함하는 아카이빙 대상 세그먼트를 아카이빙 저장소(20009)에 저장할 수 있다. 본 발명의 데이터 관리 방법이 압축된 블록을 포함하는 아카이빙 대상 세그먼트를 아카이빙 저장소(20009)에 저장하는 방법은 도 2, 17, 100 및 102의 실시 예를 참고하도록 한다.
단계(S17040)에서, 데이터 관리 방법은 다수의 로그 데이터 중 적어도 하나의 로그 데이터에 대한 로그 조회 요청을 수신함에 따라 아카이빙 대상 세그먼트의 세그먼트 접근 정보 및 블록의 블록 오프셋 정보에 기초하여, 적어도 하나의 로그 데이터가 포함된 블록을 압축 해제할 수 있다. 본 발명의 데이터 관리 방법이 적어도 하나의 로그 데이터가 포함된 블록을 압축 해제하는 방법은 도 2, 14, 99 및 103의 실시 예를 참고하도록 한다.
단계(S17050)에서, 데이터 관리 방법은 적어도 하나의 로그 데이터를 사용자/클라이언트(1000)에게 송신할 수 있다. 본 발명의 데이터 관리 방법이 하는 방법은 도 2, 14, 99 및 103의 실시 예를 참고하도록 한다.
단계(S17040) 및 단계(S17050)는 필수적인 구성 요소는 아니며 일부 실시 예에서 생략될 수 있다.
10000: 데이터 관리 플랫폼

Claims (11)

  1. 다수의 로그 데이터를 획득하는 단계;
    상기 다수의 로그 데이터를 미리 정의된 제 2 크기의 블록(block) 단위로 압축하는 단계;
    상기 압축된 블록을 포함하는 아카이빙 대상 세그먼트를 아카이브 저장소에 저장하는 단계;
    사용자/클라이언트로부터 상기 다수의 로그 데이터 중 적어도 하나의 로그 데이터에 대한 로그 조회 요청을 수신함에 따라, 상기 적어도 하나의 로그 데이터에 대한 세그먼트 접근 정보에 기초하여, 상기 아카이브 저장소에 저장된 상기 적어도 하나의 로그 데이터가 포함된 아카이빙 대상 세그먼트를 결정하는 단계;
    상기 블록에 대한 블록 오프셋 정보에 기초하여, 상기 아카이빙 대상 세그먼트 내에서 상기 적어도 하나의 로그 데이터가 포함된 블록을 압축 해제하는 단계; 및
    상기 압축 해제된 블록에 포함된 적어도 하나의 로그 데이터를 상기 사용자/클라이언트에게 송신하는 단계;
    를 포함하고,
    상기 세그먼트 접근 정보는, 상기 적어도 하나의 로그 데이터가 포함된 세그먼트가 저장 가능한 것인지 여부를 나타내는 정보, 상기 세그먼트가 아카이빙된 것인지 여부를 나타내는 정보 및 상기 세그먼트가 상기 아카이브 저장소 내에서 아카이빙된 위치 정보를 포함하는, 데이터 관리 방법.
  2. 제 1 항에 있어서,
    상기 압축하는 단계는,
    상기 다수의 로그 데이터를 미리 정의된 기간 단위의 세그먼트(segment)로 저장하는 단계;
    상기 저장된 세그먼트를 미리 정의된 제 1 크기의 청크(chunk) 단위로 저장하는 단계; 및
    상기 저장된 청크를 상기 미리 정의된 제 2 크기의 블록 단위로 압축하는 단계;
    를 포함하는, 데이터 관리 방법.
  3. 제 2 항에 있어서,
    상기 저장하는 단계는,
    상기 세그먼트가 저장된 시점부터의 경과 기간을 산출하는 단계;
    상기 경과 기간이 미리 정해진 기간보다 큰 경우, 상기 세그먼트를 아카이빙 대상 세그먼트로 구분하는 단계;
    상기 구분된 아카이빙 대상 세그먼트를 아카이브 저장소에 저장하는 단계; 및
    상기 아카이빙 대상 세그먼트의 세그먼트 접근 정보를 생성하는 단계;
    를 포함하는, 데이터 관리 방법.
  4. 삭제
  5. 삭제
  6. 데이터를 저장하는 데이터베이스; 및
    상기 데이터를 처리하는 프로세서를 포함하고,
    상기 프로세서는,
    다수의 로그 데이터를 획득하고,
    상기 다수의 로그 데이터를 미리 정의된 제 2 크기의 블록(block) 단위로 압축하고,
    상기 압축된 블록을 포함하는 아카이빙 대상 세그먼트를 아카이브 저장소에 저장하고,
    사용자/클라이언트로부터 상기 다수의 로그 데이터 중 적어도 하나의 로그 데이터에 대한 로그 조회 요청을 수신함에 따라, 상기 적어도 하나의 로그 데이터에 대한 세그먼트 접근 정보에 기초하여, 상기 아카이브 저장소에 저장된 상기 적어도 하나의 로그 데이터가 포함된 아카이빙 대상 세그먼트를 결정하고,
    상기 블록에 대한 블록 오프셋 정보에 기초하여, 상기 아카이빙 대상 세그먼트 내에서 상기 적어도 하나의 로그 데이터가 포함된 블록을 압축 해제하고,
    상기 압축 해제된 블록에 포함된 적어도 하나의 로그 데이터를 상기 사용자/클라이언트에게 송신하고,
    상기 세그먼트 접근 정보는, 상기 적어도 하나의 로그 데이터가 포함된 세그먼트가 저장 가능한 것인지 여부를 나타내는 정보, 상기 세그먼트가 아카이빙된 것인지 여부를 나타내는 정보 및 상기 세그먼트가 상기 아카이브 저장소 내에서 아카이빙된 위치 정보를 포함하는,
    데이터 관리 장치.
  7. 제 6 항에 있어서,
    상기 프로세서는,
    상기 다수의 로그 데이터를 미리 정의된 기간 단위의 세그먼트(segment)로 저장하고,
    상기 저장된 세그먼트를 미리 정의된 제 1 크기의 청크(chunk) 단위로 저장하고,
    상기 저장된 청크를 상기 미리 정의된 제 2 크기의 블록 단위로 압축하는, 데이터 관리 장치.
  8. 제 7 항에 있어서,
    상기 프로세서는,
    상기 세그먼트가 저장된 시점부터의 경과 기간을 산출하고,
    상기 경과 기간이 미리 정해진 기간보다 큰 경우, 상기 세그먼트를 아카이빙 대상 세그먼트로 구분하고,
    상기 구분된 아카이빙 대상 세그먼트를 아카이브 저장소에 저장하고,
    상기 아카이빙 대상 세그먼트의 세그먼트 접근 정보를 생성하는, 데이터 관리 장치.
  9. 삭제
  10. 삭제
  11. 다수의 로그 데이터를 획득하고,
    상기 다수의 로그 데이터를 미리 정의된 제 2 크기의 블록(block) 단위로 압축하고,
    상기 압축된 블록을 포함하는 아카이빙 대상 세그먼트를 아카이브 저장소에 저장하고, 사용자/클라이언트로부터 상기 다수의 로그 데이터 중 적어도 하나의 로그 데이터에 대한 로그 조회 요청을 수신함에 따라, 상기 적어도 하나의 로그 데이터에 대한 세그먼트 접근 정보에 기초하여, 상기 아카이브 저장소에 저장된 상기 적어도 하나의 로그 데이터가 포함된 아카이빙 대상 세그먼트를 결정하고,
    상기 블록에 대한 블록 오프셋 정보에 기초하여, 상기 아카이빙 대상 세그먼트 내에서 상기 적어도 하나의 로그 데이터가 포함된 블록을 압축 해제하고,
    상기 압축 해제된 블록에 포함된 적어도 하나의 로그 데이터를 상기 사용자/클라이언트에게 송신하는 단계를 수행하고,
    상기 세그먼트 접근 정보는, 상기 적어도 하나의 로그 데이터가 포함된 세그먼트가 저장 가능한 것인지 여부를 나타내는 정보, 상기 세그먼트가 아카이빙된 것인지 여부를 나타내는 정보 및 상기 세그먼트가 상기 아카이브 저장소 내에서 아카이빙된 위치 정보를 포함하는 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체.


KR1020230086383A 2023-07-04 2023-07-04 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체 KR102657160B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230086383A KR102657160B1 (ko) 2023-07-04 2023-07-04 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230086383A KR102657160B1 (ko) 2023-07-04 2023-07-04 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체

Publications (1)

Publication Number Publication Date
KR102657160B1 true KR102657160B1 (ko) 2024-04-15

Family

ID=90715629

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230086383A KR102657160B1 (ko) 2023-07-04 2023-07-04 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체

Country Status (1)

Country Link
KR (1) KR102657160B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100979750B1 (ko) * 2009-11-06 2010-09-03 (주)피스페이스 분산 저장 시스템에서 파일을 관리하는 장치 및 방법
KR20130136730A (ko) * 2012-06-05 2013-12-13 주식회사 퓨쳐시스템 비정형 로그 압축 저장 및 조회 방법 및 장치
KR20210144287A (ko) * 2020-05-22 2021-11-30 삼성에스디에스 주식회사 컴퓨팅 장치의 성능 측정 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100979750B1 (ko) * 2009-11-06 2010-09-03 (주)피스페이스 분산 저장 시스템에서 파일을 관리하는 장치 및 방법
KR20130136730A (ko) * 2012-06-05 2013-12-13 주식회사 퓨쳐시스템 비정형 로그 압축 저장 및 조회 방법 및 장치
KR20210144287A (ko) * 2020-05-22 2021-11-30 삼성에스디에스 주식회사 컴퓨팅 장치의 성능 측정 방법

Similar Documents

Publication Publication Date Title
US11188619B2 (en) Single click delta analysis
US20220247769A1 (en) Learning from similar cloud deployments
US11792284B1 (en) Using data transformations for monitoring a cloud compute environment
US20230075355A1 (en) Monitoring a Cloud Environment
US20220232025A1 (en) Detecting anomalous behavior of a device
US9047269B2 (en) Modeling interactions with a computer system
CN112765245A (zh) 一种电子政务大数据处理平台
US9262519B1 (en) Log data analysis
CA2629279C (en) Log collection, structuring and processing
US20240080329A1 (en) Cloud Resource Risk Scenario Assessment and Remediation
US20070283194A1 (en) Log collection, structuring and processing
Spyridopoulos et al. Incident analysis & digital forensics in SCADA and industrial control systems
US20220279004A1 (en) Facilitating developer efficiency and application quality
US20220360600A1 (en) Agentless Workload Assessment by a Data Platform
US20220224707A1 (en) Establishing a location profile for a user device
CN112039866B (zh) 一种基于区块链的数据可信配置管理系统的设计方法
Lindqvist et al. eXpert-BSM: A host-based intrusion detection solution for Sun Solaris
CN112837194A (zh) 一种智慧系统
US20240256683A1 (en) Secure data collection from an air-gapped network
CN105930740B (zh) 软体文件被修改时的来源追溯方法、监测方法、还原方法及系统
Al-Fedaghi et al. Events classification in log audit
KR102657160B1 (ko) 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체
KR102656871B1 (ko) 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체
KR102669475B1 (ko) 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체
KR102660695B1 (ko) 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체

Legal Events

Date Code Title Description
GRNT Written decision to grant