Nothing Special   »   [go: up one dir, main page]

KR102189127B1 - 행위 기반 룰 처리 장치 및 그 처리 방법 - Google Patents

행위 기반 룰 처리 장치 및 그 처리 방법 Download PDF

Info

Publication number
KR102189127B1
KR102189127B1 KR1020180152189A KR20180152189A KR102189127B1 KR 102189127 B1 KR102189127 B1 KR 102189127B1 KR 1020180152189 A KR1020180152189 A KR 1020180152189A KR 20180152189 A KR20180152189 A KR 20180152189A KR 102189127 B1 KR102189127 B1 KR 102189127B1
Authority
KR
South Korea
Prior art keywords
rule
log
block
real
time
Prior art date
Application number
KR1020180152189A
Other languages
English (en)
Other versions
KR20200066428A (ko
Inventor
박정환
진홍석
원지섭
한혁
진성일
Original Assignee
주식회사 리얼타임테크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 리얼타임테크 filed Critical 주식회사 리얼타임테크
Priority to KR1020180152189A priority Critical patent/KR102189127B1/ko
Publication of KR20200066428A publication Critical patent/KR20200066428A/ko
Application granted granted Critical
Publication of KR102189127B1 publication Critical patent/KR102189127B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 대용량으로 발생하는 로그들을 행위(Action)로 정의하여 정형화 된 형태로 처리하고, 행위들의 연속성을 룰로 정의하여 비정상적인 접근을 탐지하며, 인공지능 학습에 적합함과 아울러 고속으로 처리할 수 있는 행위 기반 룰 처리 장치 및 그 처리 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위해, 본 발명에 따른 행위 기반 룰 처리 장치는, 복수의 에이전트로부터 룰 처리에 사용되는 로그를 수집함과 아울러 수집된 상기 로그를 저장하는 로그 수집부와, 상기 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록(Rule Block)과, 상기 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록(Condition Block)을 포함함과 아울러 상기 룰 블록과, 상기 조건 검사 블록의 조합인 상기 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부를 포함하며, 상기 로그 수집부에 저장되어 있는 상기 로그를 실시간 분산 스트리밍에 의해 불러온다.

Description

행위 기반 룰 처리 장치 및 그 처리 방법{A UNIT AND METHOD FOR PROCESSING RULE BASED ACTION}
본 발명은 행위 기반 룰 처리 장치 및 그 처리 방법에 관한 것으로, 더욱 상세하게는 인공지능 학습 및 실시간 분석에 적합한 행위 기반 룰 처리 장치 및 그 처리 방법에 관한 것이다.
최근 하드웨어의 급속한 성장과 웹을 통해 제공되는 서비스들의 팽창으로 인해 인터넷 망에서 사용되는 데이터 량이 급증하고 있다. 이에 따라 정상적으로 서비스를 이용하는 사용자의 접근과 아울러 공격을 목적으로 하는 비정상적인 접근이 폭발적으로 늘어나고 있다.
기존 비정상적인 접근을 탐지하기 위해 사용되고 있는 분석 시스템들은 관리자가 지정한 룰을 기반으로 특정 행위, 즉 로그에서 발견되는 비정상적인 정보를 추출하여 위협을 판단해왔다. 하지만 전통적인 로그 분석 시스템에서는 폭발적으로 늘어나는 로그의 데이터 량을 감당하지 못하거나 점점 지능화 되어가는 공격 패턴들에 일일이 대응할 수 없는 한계를 보이고 있다.
이러한 대용량 처리 한계를 극복하기 위한 방법으로 대부분의 분석 시스템에서는 하드웨어 성능을 끌어올리는 방식을 택하고 있으나 대역폭의 한계와 IO(입출력) 지연 현상 등의 한계는 여전이 존재하며, 지능화 되어 판단이 어려운 접근을 탐지하기 위해 인공지능 모델을 통해 패턴을 추출하는 등의 연구가 이루어지고 있으나 기존 룰을 처리하는 룰 엔진들에서 사용하는 룰 정의 방식이 대부분 프로그래밍 방식을 택하고 있기 때문에 인공지능 모델에서 사용할 수 있는 형태로 정형화 할 수 없는 문제점이 있었다.
일례로, 일반적인 분석 단계(룰 엔진)에서는 먼저 정규화 로그를 데이터베이스와 같은 저장 매체에 저장하고, 저장되어 있는 정보를 불러와서 분석 로직(룰 처리)을 수행하게 된다. 하지만 이러한 방식은 실시간 스트리밍 시스템을 사용하더라도 분석(룰 처리) 이전에 스트리밍 결과를 데이터베이스에 저장하는 과정이 필요하고, 분석 단계에서 데이터베이스 질의를 위한 처리 시간이 필요하기 때문에 실시간 처리에 적합하지 않다.
또한, 로그의 종류가 다양한 경우 로그 종류마다 로그의 정규화 결과 항목들을 각각 테이블의 컬럼들로 지정해서 데이터베이스의 테이블에 저장하게 되고, 분석 로직에서는 여러 테이블들에 대한 JOIN 질의 같은 시간이 오래 걸리는 처리가 필요하기 때문에 실시간 분석에 적합하지 않다.
또한, 룰 처리 엔진에서의 룰은 질의(SQL Query) 형태로 정의되어야 하며, 룰 생성 및 룰 고도화 등을 위한 AI 학습 모델에 적합하지 않다. 왜냐하면, AI 학습의 결과물이 일종의 프로그래밍 언어인 SQL 질의 형태의 룰이기 때문에, 자연어 학습에 가까운 학습 모델을 구현해야 하기 때문이다.
이에 본 발명은 상기한 바와 같은 요구에 부응하기 위해 제안된 것으로서, 그 목적은 대용량으로 발생하는 로그들을 행위로 정의하여 정형화 된 형태로 처리하고, 행위들의 연속성을 룰로 정의하여 비정상적인 접근을 탐지하며, 인공지능 학습에 적합함과 아울러 고속으로 처리할 수 있는 행위 기반 룰 처리 장치 및 그 처리 방법을 제공하는 것이다.
상기 목적을 달성하기 위해, 본 발명에 따른 행위 기반 룰 처리 장치는, 복수의 에이전트로부터 룰 처리에 사용되는 로그를 수집함과 아울러 수집된 상기 로그를 저장하는 로그 수집부와, 상기 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록(Rule Block)과, 상기 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록(Condition Block)을 포함함과 아울러 상기 룰 블록과, 상기 조건 검사 블록의 조합인 상기 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부를 포함하며, 상기 로그 수집부에 저장되어 있는 상기 로그를 실시간 분산 스트리밍에 의해 불러온다.
또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 실시간 분산 스트리밍은, 불러오는 상기 로그를 데이터 내용 또는 구분자에 따라 분류하는 제 1 정규화와, 상기 제 1 정규화의 결과로부터 상기 로그의 내용이 상기 룰 블록에 해당하는지 검사하는 제 2 정규화를 각각 수행하는 정규화 과정을 포함한다.
또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 로그의 내용이 상기 룰 블록에 해당할 경우, 상기 실시간 분산 스트리밍은 상기 룰 블록에 해당하는 블록과, 상기 조건 검사 블록에 해당하는 블록을 조합하여 상기 로그의 행위를 출력하고, 상기 행위에 대한 사용자 매핑(상기 행위를 발생한 사용자를 식별)을 수행한다.
또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 실시간 분산 스트리밍과, 상기 실시간 룰 처리부의 룰 처리는 메모리 상에서 수행된다.
또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 실시간 분산 스트리밍은 상기 정규화 과정을 병렬로 분산 처리하고, 상기 실시간 룰 처리부는 상기 행위를 사용자별 또는 행위별로 멀티 쓰레딩(multi-threading) 처리한다.
또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 실시간 룰 처리부는 상기 룰을 처리시 사용자별 행위들에 버퍼(buffer)를 두고 처리한다.
또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 실시간 룰 처리부는 상기 로그의 행위가 미리 정의한 상기 룰 블록의 내용과, 상기 조건 검사 블록의 메타데이터와 일치하는지를 검사한다.
한편, 상기 목적을 달성하기 위해, 본 발명에 따른 행위 기반 룰 처리 방법은, 로그 수집부에 의해 수집되며 룰 처리에 사용되는 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록과, 상기 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록을 포함함과 아울러 상기 룰 블록과, 상기 조건 검사 블록의 조합인 상기 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부에 의해 실시간으로 룰 처리가 이루어지도록 상기 로그를 가공하는 행위 기반 룰 처리 방법으로서, 상기 로그 수집부에 의해 수집되는 상기 로그를 실시간 분산 스트리밍이 불러오는 제 1 단계(S100)와, 상기 로그 수집부로부터 불러온 상기 로그를 상기 실시간 분산 스트리밍의 정규화 과정에 의해 정규화하는 제 2 단계(S200)와, 상기 실시간 분산 스트리밍에 의해 정규화된 상기 로그를 상기 룰 블록과 매핑하여 상기 로그의 사용자 식별(사용자 매핑)을 수행하는 제 3 단계(S300)와, 매핑된 상기 로그를 상기 실시간 룰 처리부에 의해 룰 처리하는 제 4 단계(S400)를 포함한다.
또한, 본 발명에 따른 행위 기반 룰 처리 방법에서, 상기 정규화 과정은, 불러오는 상기 로그를 데이터 내용 또는 구분자에 따라 분류하는 제 1 정규화와, 상기 제 1 정규화의 결과로부터 상기 로그의 내용이 상기 룰 블록에 해당하는지 검사하는 제 2 정규화를 각각 수행한다.
또한, 본 발명에 따른 행위 기반 룰 처리 방법에서, 상기 로그의 내용이 상기 룰 블록에 해당할 경우, 상기 실시간 분산 스트리밍은 상기 룰 블록에 해당하는 블록과, 상기 조건 검사 블록에 해당하는 블록을 조합하여 상기 로그의 행위를 출력하고, 상기 실시간 룰 처리부는 상기 로그의 행위가 미리 정의한 상기 룰 블록의 내용과, 상기 조건 검사 블록의 메타데이터와 일치하는지를 검사한다.
본 발명에 의하면, 대용량으로 발생하는 로그들을 행위로 정의하여 정형화 된 형태로 처리하고, 행위들의 연속성을 룰로 정의하여 비정상적인 접근을 탐지하며, 인공지능 학습에 적합함과 아울러 고속으로 처리할 수 있는 효과가 있다.
도 1은 본 발명에 따른 행위 기반 룰 처리 장치의 전체 구성을 나타내는 시스템 구성도.
도 2는 룰 블록과 행위를 나타내는 도면.
도 3은 룰 처리를 나타내는 도면.
도 4는 본 발명에 따른 행위 기반 룰 처리 방법의 처리 흐름을 나타내는 플로어 차트.
이하, 본 발명의 실시예에 대해 관련 도면들을 참조하여 상세히 설명하기로 한다.
본 발명은 설명의 용이함을 위해, 자바 언어 환경을 예로 설명하지만, 이에 한정되는 것은 아니며, C#과 같이 중간 언어를 가진 언어에 모두 적용가능하다.
도 1은 본 발명에 따른 행위 기반 룰 처리 장치의 전체 구성을 나타내는 시스템 구성도이다.
도 1을 참조하면, 본 발명에 따른 행위 기반 룰 처리 장치(1000)는 로그 수집부(100)와, 실시간 룰 처리부(200)와, 실시간 분산 스트리밍(300)을 포함한다.
여기서, 로그 수집부(100)는 복수의 에이전트(10)로부터 룰(Rule) 처리에 사용되는 로그를 수집한다. 또한, 수집된 로그를 저장하는 역할을 수행한다.
실시간 룰 처리부(200)는 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록(Rule Block)과, 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록(Condition Block)을 포함함과 아울러 룰 블록과, 조건 검사 블록의 조합인 로그의 행위들을 룰로 미리 정의한다.
실시간 분산 스트리밍(300)은, 로그 수집부(100)에 저장되어 있는 로그를 실시간으로 불러오는 역할을 수행한다.
이에 대해, 도 2 및 도 3을 참조하여 좀더 상세히 설명하도록 한다.
도 2는 룰 블록과 행위를 나타내는 도면이고, 도 3은 룰 처리를 나타내는 도면이다.
로그의 형태와 종류는 수집 대상 또는 수집 에이전트의 특성에 따라 매우 다양하다. 수집 대상에는 대표적으로 데이터베이스 시스템, 웹서버, 네트워크 패킷, 운영체제 시스템 또는 응용 프로그램(application) 등이 있으며, 이러한 수집 대상이 남기는 로그를 복수의 에이전트(10)를 통해 수집할 수 있다. 또한, 수집 대상이 로그를 남기지 않더라도 복수의 에이전트(10)가 직접 로그를 생성할 수도 있다. 응용 프로그램에서 로그를 남기고 있지 않더라도 에이전트(10)가 응용 프로그램에 탑재되어 분석에 필요한 애플리케이션 로그를 생성하거나 로그가 남지 않는 네트워크의 패킷을 감시하면서 파일 형태의 로그로 남기는 경우 등을 예로 들 수 있다.
복수의 에이전트(10)를 통해 수집된 로그들은 정규화되어 실시간 룰 처리부(200)로 보내진다. 분석 과정의 실시간성을 위해 복수의 에이전트(10)와 실시간 룰 처리부(200) 사이에 스트리밍 처리가 필요할 수 있다. 스트리밍 처리를 통해 대용량의 데이터(로그)의 실시간 처리 및 분산 처리가 가능하며, 로그 수집부(100)와, 실시간 분산 스트리밍(300)을 활용하여 스트리밍 처리 인프라를 구성할 수 있다.
일례로 로그 수집부(100)의 경우, 대용량 로그 데이터의 분산 메시징 시스템으로 로그 에이전트와 스트리밍 데이터 처리 사이에서 버퍼(Buffer) 역할을 수행하며, 실시간 분산 스트리밍(300)에서는 로그 수집부(100)에 저장된 로그들을 마이크로 배치 방식으로 가져와 비즈니스 로직에 맞는 데이터 정규화 처리를 할 수 있다. 정규화 처리가 이루어진 데이터(로그)들은 실시간 룰 처리부(200)로 넘어가 비즈니스 로직 또는 룰 처리 프로세스의 입력으로 사용된다.
로그의 내용은 통상 특정 포맷에 맞춰 기록된 문자열들이다. 가장 일반적인 웹(Web) 로그를 예로 들면, 웹 로그는 특정 웹 서버 또는 와스(WAS) 위에서 동작하는 웹 사이트를 방문한 사용자들이 언제, 어디서, 어떤 페이지를 방문했는지에 대한 정보를 기록한 파일이다. 웹 로그 내용을 보면, 이러한 정보들이 포맷에 맞춰 문자열로 기록되어 있다.
Figure 112018120125789-pat00001
표 1의 웹 로그의 예를 살펴보면, 서버에 요청한 클라이언트의 IP 주소, 식별(Identity) 정보, HTTP 인증을 통해 알아낸 사용자의 유저(User) ID, 서버 요청처리 시간, 클라이언트가 사용한 HTTP method와 HTTP 프로토콜, 요청 URL, 서버가 클라이언트에게 보내는 상태 코드, 그리고 서버가 클라이언트에게 보내는 내용(body)의 크기의 내용을 담고 있다. 이러한 로그 문자열 전체를 분석 단계에서 파싱을 통해 분석을 할 수도 있지만 보통은 분석을 위해 필요한 정보에 맞춰 미리 앞에서 정규화를 하고 그 결과를 분석 단계에서 사용하게 된다. 로그의 데이터 내용 또는 구분자에 따라서 정규화를 하는 것이 일반적이다. 표 1에 나타낸 바와 같이 웹 로그를 구분자(공백) 또는 데이터의 의미에 따라 정규화를 하게 되면 다음 표 2와 같이 정규화 될 수 있다.
Figure 112018120125789-pat00002
[표 2]와 같이 정규화된 데이터를 보다 실시간 분석(룰 처리), AI 학습에 적합한 룰을 만들기 위해 룰의 구성 요소인 "룰 블록"을 미리 정의하고, 룰 처리 엔진에서 사용하는 모든 룰을 룰의 구성 요소인 룰 블록과, 추가 조건 검사를 위한 "조건 검사 블록"을 사용하여 정의한다. 룰이란 결국 로그를 하나의 행위로 본다면 이러한 행위들의 패턴을 의미한다. 물론 로그가 기준에 따라서 여러 행위를 의미할 수 있지만 로그는 웹 로그의 경우 사용자의 웹 페이지 접근 행위, 데이터베이스 로그의 경우 로그인 또는 데이터 조회와 같은 사용자 행위로 볼 수 있다. 실시간 룰 처리부(200)에서 분석(룰 처리)시 사용되는 룰은 이러한 행위들의 조합이므로 룰 생성을 위한 모든 행위들을 정의해 놓고, 행위 기반 룰 처리 장치(1000)의 모든 로그들이 정의해 놓은 행위들로 매칭 된다면, 룰 처리 과정은 단순히 행위 비교 연산으로 바뀌게 되며, 분석(룰 처리) 단계 이전에 데이터베이스와 같은 저장 매체에 저장하지 않고 분석이 가능하다.
로그들의 포맷이 정해져 있다고 해도, 데이터 내용의 종류에 따라 행위를 구분하게 된다면 행위의 종류는 엄청나게 많아진다. 따라서, 룰에 사용되는 행위의 타입을 정의해 행위들을 분류해야 하며, 이 행위의 타입이 앞에서 언급한 룰의 구성 요소인 룰 블록이다. 로그를 행위로 본다는 것은 로그의 내용이 어떤 특정한 값일 때 그것을 미리 정의한 행위로 본다는 것이다. 행위를 구분할 때 기준이 되는 것이 행위의 타입인 룰 블록이다.
도 2에서는 "로그인 시도"라는 의미를 갖는 행위의 타입을 "try_login"이라는 ID를 갖는 룰 블록으로 정의하며, 이때 검사하는 웹 로그 데이터의 값은 클라이언트의 요청 HTTP method를 나타내는 E 값과, 접근 페이지 주소를 의미하는 F 값과, 클라이언트의 요청 HTTP 프로토콜인 G와, 서버의 응답 코드인 H이다. E="GET", F="/login.php", G="HTTP/1.1", H="200"인 경우, "로그인 시도"라는 의미의 행위로 볼 수 있는 것이다. 행위의 판별에 사용되는 조건 값들은 물론 사용자에 따라 다를 수 있다. 다른 웹 사이트에서는 로그인 페이지의 주소가 "/login.php"가 아닐 수도 있고, 로그인 페이지가 없을 수도 있기 때문이다.
이처럼 로그 데이터의 내용 중 특정 값들만 비교해서 행위의 타입을 구분하고, 1차 정규화 결과의 모든 값들을 메타 데이터로 정의하여 행위의 타입인 룰 블록과 메타 데이터를 합쳐 행위로 정의한다. 로그들을 행위(룰 블록 + 메타 데이터)로 매칭시키기 위해, 데이터의 내용, 구분자를 기준으로 한 1차 정규화 과정 이후에 추가로 2차 정규화 과정이 필요하다. 2차 정규화 과정에서는 로그의 1차 정규화 결과가 미리 정의해 놓은 행위의 타입(룰 블록)에 해당되는지 검사한다. 즉, 본 발명에 따른 행위 기반 룰 처리 장치(1000)에서, 실시간 분산 스트리밍(300)은 로그 수집부(100)로부터 불러오는 로그를 데이터 내용 또는 구분자에 따라 분류(제 1 정규화)한다. 다음, 제 1 정규화의 결과로부터 로그의 종류가 룰 블록에 해당하는지 검사(제 2 정규화)한다. 이후, 룰 블록에 해당되면 해당 룰 블록의 ID와 1차 정규화 결과 값들을 합쳐서 최종 정규화 결과인 행위가 나오게 된다.
도 2에서는 E, F, G, H 값들이 "try_login"이라는 룰 블록의 조건 값들에 부합되면, 해당 로그는 "try_login", 즉 "로그인 시도"라는 의미를 갖는 행위의 종류(룰 블록)로 분류된다. 하지만 이 행위의 종류만으로는 행위를 구분하기에는 부족하다. A 값이 있어야 누가 "로그인 시도" 행위를 했는지 알 수 있고, D 값을 알아야 언제 "로그인 시도" 행위를 했는지 알 수 있다. 이러한 룰 블록 조건 검사 값 이외의 값들을 앞에서 언급한 조건 검사 블록에서 검사를 수행한다. 따라서 룰 처리 단계의 모든 룰 들은 룰 블록과 조건 검사 블록들의 조합으로 구성된다. "IP가 192.167.0.1인 사용자가 로그인 시도를 했다"라는 룰을 생성한다면, 그 룰은 도 3에 나타낸 바와 같이 "try_login"이라는 ID를 갖는 룰 블록과 A 값이 "192.167.0.1"인지를 비교하는 조건 검사 블록으로 구성된다. 이것은 "try_login"이라는 룰 블록 검사를 통해 "로그인 시도" 행위인지를 판별하고, 조건 검사 블록을 통해 "192.167.0.1"인 사용자가 맞는지 판별하여 IP가 192.167.0.1인 사용자가 로그인 시도를 한 경우를 로그 분석을 통해 실시간 룰 처리부(200)에서 자동으로 찾아낼 수 있다는 의미이다. 즉, 본 발명에 따른 행위 기반 룰 처리 장치(1000)에서, 실시간 룰 처리부(200)는 로그의 행위가 미리 정의한 상기 룰 블록의 내용과, 조건 검사 블록의 메타데이터와 일치하는지를 검사한다.
이와 같이 룰을 구성하고 정규화 결과를 룰의 구성 요소인 룰 블록과 조건 검사 블록에 필요한 값들로 정규화 결과를 정의하면, 실시간 분산 스트리밍(300)에 의해 실시간으로 들어오는 로그 데이터를 데이터베이스 저장 없이 단순 룰 블록 ID 검사와 1차 정규화 결과인 메타 데이터들의 특정 항목 값 비교를 통해 메모리 상(in-memory)에서 룰 처리를 수행할 수 있다. 즉, 본 발명에 따른 하는 행위 기반 룰 처리 장치(1000)에서, 실시간 분산 스트리밍(300)과, 실시간 룰 처리부(200)의 룰 처리는 메모리 상에서 수행된다.
이후, 본 발명에 따른 행위 기반 룰 처리 장치(1000)에서, 로그의 내용이 룰 블록에 해당할 경우, 실시간 분산 스트리밍(300)은 룰 블록에 해당하는 블록과, 조건 검사 블록에 해당하는 블록을 조합하여 로그의 행위를 출력하고, 이러한 로그의 행위에 대한 사용자 매핑(상기 행위를 발생한 사용자를 식별)을 수행한다.
또한, "IP가 192.167.0.1인 사용자가 로그인 시도를 두 번 연속으로 하였다"라는 룰과 같이 연속적인 행위 값(룰 블록 ID 값 + 메타 데이터 항목 값)의 검사를 해야 하는 경우도 있지만, "IP가 192.167.0.1인 사용자가 로그인 시도를 10초 안에 연속으로 하였다"라는 룰의 경우 IP가 192.167.0.1인 사용자가 로그인 시도를 한 첫 번째 로그 이후로 10초간 기다려야 룰 통과 여부를 판단할 수 있다. 만약 IP가 192.167.0.1인 사용자가 10초 안에 다시 로그인 시도를 하지 않는다면 해당 룰에는 걸리지 않는 것이기 때문이다. 이처럼 룰 검사 시에 특정 로그 이후에 발생되는 로그들을 살펴보아야 하는 경우가 있으므로, 이런 경우 룰 처리를 위해 내부적으로 행위들의 버퍼(buffer)를 두어서 처리하도록 한다. 즉, 본 발명에 따른 행위 기반 룰 처리 장치(1000)에서, 실시간 룰 처리부(200)는 룰을 처리시 사용자별 행위들에 버퍼를 두고 처리한다.
또한, 실시간 분산 스트리밍(300)에서는 로그들의 정규화 과정의 병렬 처리가 가능하다. 실시간 분산 스트리밍(300)이 정규화 처리를 하게 되고, 정규화 처리 결과인 행위 값들이 병렬로 실시간 룰 처리부(200)에 입력이 되고, 실시간 룰 처리부(200)에서는 액션별로 멀티 쓰레딩(multi-threading) 처리를 행하면 룰 처리 성능이 향상될 수 있다. 보통 행위들을 사용자 기준으로 구분하게 되며 룰 또한 사용자들을 기준으로 생성된다. 실시간 분산 스트리밍 단계 또는 분석(룰 처리) 단계에서 사용자 식별이 가능하다면 룰 처리를 사용자별로 병렬 처리가 가능하다. 즉, 본 발명에 따른 행위 기반 룰 처리 장치(1000)에서, 실시간 분산 스트리밍(300)은 정규화 과정을 병렬로 분산 처리하고, 실시간 룰 처리부(200)는 행위를 행위별 또는 사용자별로 멀티 쓰레딩 처리한다.
한편, 로그의 정규화 결과를 데이터베이스에 저장한 후 분석(룰 처리)을 하게 된다면, 룰 처리 엔진에서의 룰은 질의(SQL Query) 형태로 정의되어야 하기 때문에 인공지능 학습 모델의 입력은 질의가 되며, 인공지능 학습의 결과물이 일종의 프로그래밍 언어인 SQL 질의 형태의 룰이기 때문에 룰과 룰 처리 결과를 학습하여 룰 고도화에 활용하는 AI에 적합하지 않다. 하지만 룰들을 간단한 블록들을 이용하여 구성한다면, 룰의 패턴 등을 인공지능 학습 모델의 입력과 출력(결과물)으로 사용할 수 있어, 추후 인공 지능 도입에 용이하다. 즉, 학습 결과로 이미 룰 엔진에 등록되어 있는 룰 블록들의 조합을 생성한다면, 기존 룰의 고도화(최적의 룰 블록 조합)을 학습 결과로 생성할 수 있다.
다음, 도 4는 본 발명에 따른 행위 기반 룰 처리 방법의 처리 흐름을 나타내는 플로어 차트이다.
도 4를 참조하면, 본 발명에 따른 행위 기반 룰 처리 방법은, 로그 수집부(100)에 의해 수집되며 룰 처리에 사용되는 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록과, 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록을 포함함과 아울러 룰 블록과, 조건 검사 블록의 조합인 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부(200)에 의해 실시간으로 룰 처리가 이루어지도록 로그를 가공하는 행위 기반 룰 처리 방법으로 총 4단계로 진행된다.
제 1 단계(S100)에서는, 로그 수집부(100)에 의해 수집되는 로그를 실시간 분산 스트리밍(300)이 불러온다.
제 2 단계(S200)에서는, 로그 수집부(100)로부터 불러온 로그를 실시간 분산 스트리밍(300)의 정규화 과정에 의해 정규화한다.
제 3 단계(S300)에서는, 실시간 분산 스트리밍(300)에 의해 정규화된 로그를 룰 블록과 매핑하여 로그의 사용자 식별(사용자 매핑)을 수행한다.
제 4 단계(S400)에서는. 매핑된 로그를 실시간 룰 처리부(200)에 의해 룰 처리한다.
이때, 정규화 과정은, 불러오는 로그를 데이터 내용 또는 구분자에 따라 분류하는 제 1 정규화와, 제 1 정규화의 결과로부터 로그의 종류가 룰 블록에 해당하는지 검사하는 제 2 정규화를 각각 수행하게 된다.
한편, 로그의 종류가 룰 블록에 해당할 경우, 실시간 분산 스트리밍(300)은 룰 블록에 해당하는 블록과, 조건 검사 블록에 해당하는 블록을 조합하여 로그의 행위를 출력하고, 실시간 룰 처리부(200)는 로그의 행위가 미리 정의한 룰 블록의 내용과, 조건 검사 블록의 메타데이터와 일치하는지를 검사한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10 : 복수의 에이전트
100 : 로그 수집부
200 : 실시간 룰 처리부
300 : 실시간 분산 스트리밍
1000 : 행위 기반 룰 처리 장치

Claims (10)

  1. 복수의 에이전트로부터 룰 처리에 사용되는 로그를 수집함과 아울러 수집된 상기 로그를 저장하는 로그 수집부와,
    상기 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록(Rule Block)과, 상기 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록(Condition Block)을 포함함과 아울러 상기 룰 블록과, 상기 조건 검사 블록의 조합인 상기 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부를 포함하며,
    상기 로그 수집부에 저장되어 있는 상기 로그를 실시간 분산 스트리밍에 의해 불러오고,
    상기 실시간 분산 스트리밍은,
    불러오는 상기 로그를 데이터 내용 또는 구분자에 따라 분류하는 제 1 정규화와,
    상기 제 1 정규화의 결과로부터 상기 로그의 내용이 상기 룰 블록에 해당하는지 검사하는 제 2 정규화를 각각 수행하는 정규화 과정을 포함하며,
    상기 로그의 내용이 상기 룰 블록에 해당할 경우,
    상기 실시간 분산 스트리밍은 상기 룰 블록에 해당하는 블록과, 상기 조건 검사 블록에 해당하는 블록을 조합하여 상기 로그의 행위를 출력하고, 상기 행위에 대한 사용자 매핑(상기 행위를 발생한 사용자를 식별)을 수행하며,
    상기 실시간 분산 스트리밍과, 상기 실시간 룰 처리부의 룰 처리는 메모리 상에서 수행되는 행위 기반 룰 처리 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서,
    상기 실시간 분산 스트리밍은 상기 정규화 과정을 병렬로 분산 처리하고,
    상기 실시간 룰 처리부는 상기 행위를 사용자별 또는 행위별로 멀티 쓰레딩(multi-threading) 처리하는 행위 기반 룰 처리 장치.
  6. 제 1 항에 있어서,
    상기 실시간 룰 처리부는 상기 룰을 처리시 사용자별 행위들에 버퍼(buffer)를 두고 처리하는 행위 기반 룰 처리 장치.
  7. 제 1 항에 있어서,
    상기 실시간 룰 처리부는 상기 로그의 행위가 미리 정의한 상기 룰 블록의 내용과, 상기 조건 검사 블록의 메타데이터와 일치하는지를 검사하는 행위 기반 룰 처리 장치.
  8. 로그 수집부에 의해 수집되며 룰 처리에 사용되는 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록과, 상기 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록을 포함함과 아울러 상기 룰 블록과, 상기 조건 검사 블록의 조합인 상기 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부에 의해 실시간으로 룰 처리가 이루어지도록 상기 로그를 가공하는 행위 기반 룰 처리 방법으로서,
    상기 로그 수집부에 의해 수집되는 상기 로그를 실시간 분산 스트리밍이 불러오는 제 1 단계(S100)와,
    상기 로그 수집부로부터 불러온 상기 로그를 상기 실시간 분산 스트리밍의 정규화 과정에 의해 정규화하는 제 2 단계(S200)와,
    상기 실시간 분산 스트리밍에 의해 정규화된 상기 로그를 상기 룰 블록과 매핑하여 상기 로그의 사용자 식별(사용자 매핑)을 수행하는 제 3 단계(S300)와,
    매핑된 상기 로그를 상기 실시간 룰 처리부에 의해 룰 처리하는 제 4 단계(S400)를 포함하며,
    상기 정규화 과정은,
    불러오는 상기 로그를 데이터 내용 또는 구분자에 따라 분류하는 제 1 정규화와,
    상기 제 1 정규화의 결과로부터 상기 로그의 내용이 상기 룰 블록에 해당하는지 검사하는 제 2 정규화를 각각 수행하고,
    상기 로그의 내용이 상기 룰 블록에 해당할 경우,
    상기 실시간 분산 스트리밍은 상기 룰 블록에 해당하는 블록과, 상기 조건 검사 블록에 해당하는 블록을 조합하여 상기 로그의 행위를 출력하고,
    상기 실시간 룰 처리부는 상기 로그의 행위가 미리 정의한 상기 룰 블록의 내용과, 상기 조건 검사 블록의 메타데이터와 일치하는지를 검사하며,
    상기 실시간 분산 스트리밍과, 상기 실시간 룰 처리부의 룰 처리는 메모리 상에서 수행되는 행위 기반 룰 처리 방법.
  9. 삭제
  10. 삭제
KR1020180152189A 2018-11-30 2018-11-30 행위 기반 룰 처리 장치 및 그 처리 방법 KR102189127B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180152189A KR102189127B1 (ko) 2018-11-30 2018-11-30 행위 기반 룰 처리 장치 및 그 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180152189A KR102189127B1 (ko) 2018-11-30 2018-11-30 행위 기반 룰 처리 장치 및 그 처리 방법

Publications (2)

Publication Number Publication Date
KR20200066428A KR20200066428A (ko) 2020-06-10
KR102189127B1 true KR102189127B1 (ko) 2020-12-10

Family

ID=71087092

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180152189A KR102189127B1 (ko) 2018-11-30 2018-11-30 행위 기반 룰 처리 장치 및 그 처리 방법

Country Status (1)

Country Link
KR (1) KR102189127B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024085275A1 (ko) * 2022-10-18 2024-04-25 쿠팡 주식회사 이상 사용자를 검출하는 방법 및 이를 지원하는 전자 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112104628B (zh) * 2020-09-04 2022-07-26 南京林科斯拉信息技术有限公司 一种自适应特征规则匹配的实时恶意流量检测方法
KR102280845B1 (ko) * 2020-11-24 2021-07-22 한국인터넷진흥원 네트워크 내의 비정상 행위 탐지 방법 및 그 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070039049A1 (en) 2005-08-11 2007-02-15 Netmanage, Inc. Real-time activity monitoring and reporting
JP2007233661A (ja) * 2006-02-28 2007-09-13 Intelligent Wave Inc ログ統合管理システム及びログ統合管理方法
US20180139220A1 (en) 2016-11-14 2018-05-17 Bank Of America Corporation Shared capability system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101559206B1 (ko) * 2013-11-29 2015-10-13 건국대학교 산학협력단 로그 데이터 처리 방법 및 이를 수행하는 시스템
KR101818006B1 (ko) * 2016-06-28 2018-02-21 한국전자통신연구원 행위 정규화를 통한 악성코드 고속탐지 및 시각화 방법 및 이를 이용한 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070039049A1 (en) 2005-08-11 2007-02-15 Netmanage, Inc. Real-time activity monitoring and reporting
JP2007233661A (ja) * 2006-02-28 2007-09-13 Intelligent Wave Inc ログ統合管理システム及びログ統合管理方法
US20180139220A1 (en) 2016-11-14 2018-05-17 Bank Of America Corporation Shared capability system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024085275A1 (ko) * 2022-10-18 2024-04-25 쿠팡 주식회사 이상 사용자를 검출하는 방법 및 이를 지원하는 전자 장치

Also Published As

Publication number Publication date
KR20200066428A (ko) 2020-06-10

Similar Documents

Publication Publication Date Title
CN108156131B (zh) Webshell检测方法、电子设备和计算机存储介质
US10375102B2 (en) Malicious web site address prompt method and router
EP4049429B1 (en) Intelligent signature-based anti-cloaking web recrawling
US8051484B2 (en) Method and security system for indentifying and blocking web attacks by enforcing read-only parameters
CN108875366A (zh) 一种面向php程序的sql注入行为检测系统
US20090164502A1 (en) Systems and methods of universal resource locator normalization
KR102225040B1 (ko) 인공 지능 기반의 통합 로그 관리 방법 및 그 시스템
CN113785289B (zh) 动态生成一组api端点的系统和方法
KR102189127B1 (ko) 행위 기반 룰 처리 장치 및 그 처리 방법
CN104579773A (zh) 域名系统分析方法及装置
CN113949577A (zh) 一种应用于云服务的数据攻击分析方法及服务器
US20230353585A1 (en) Malicious traffic identification method and related apparatus
CN106844640A (zh) 一种网页数据分析处理方法
CN113271292B (zh) 一种基于词向量的恶意域名集群检测方法及装置
US10785236B2 (en) Generation of malware traffic signatures using natural language processing by a neural network
CN116186759A (zh) 一种面向隐私计算的敏感数据识别与脱敏方法
CN114650176A (zh) 钓鱼网站的检测方法、装置、计算机设备及存储介质
CN114598597B (zh) 多源日志解析方法、装置、计算机设备及介质
CN117725575A (zh) 一种基于中间件访问日志的资产管理方法
CN116599743A (zh) 4a异常绕行检测方法、装置、电子设备及存储介质
CN117081801A (zh) 网站的内容管理系统的指纹识别方法、装置及介质
CN110061975A (zh) 一种基于离线流量包解析的仿冒网站识别方法及系统
CN112202763B (zh) 一种ids策略生成方法、装置、设备及介质
CN111475380B (zh) 一种日志分析方法和装置
CN115392238A (zh) 一种设备识别方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20181130

PA0201 Request for examination
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20200117

Patent event code: PE09021S01D

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20201026

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20201203

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20201204

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20241209

Start annual number: 5

End annual number: 5