KR102189127B1 - A unit and method for processing rule based action - Google Patents

A unit and method for processing rule based action 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
Korean (ko)
Other versions
KR20200066428A (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 KR1020180152189A priority Critical patent/KR102189127B1/en
Publication of KR20200066428A publication Critical patent/KR20200066428A/en
Application granted granted Critical
Publication of KR102189127B1 publication Critical patent/KR102189127B1/en

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

Abstract

본 발명은 대용량으로 발생하는 로그들을 행위(Action)로 정의하여 정형화 된 형태로 처리하고, 행위들의 연속성을 룰로 정의하여 비정상적인 접근을 탐지하며, 인공지능 학습에 적합함과 아울러 고속으로 처리할 수 있는 행위 기반 룰 처리 장치 및 그 처리 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위해, 본 발명에 따른 행위 기반 룰 처리 장치는, 복수의 에이전트로부터 룰 처리에 사용되는 로그를 수집함과 아울러 수집된 상기 로그를 저장하는 로그 수집부와, 상기 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록(Rule Block)과, 상기 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록(Condition Block)을 포함함과 아울러 상기 룰 블록과, 상기 조건 검사 블록의 조합인 상기 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부를 포함하며, 상기 로그 수집부에 저장되어 있는 상기 로그를 실시간 분산 스트리밍에 의해 불러온다.
In the present invention, logs generated in a large amount are defined as actions and processed in a standardized form, and the continuity of actions is defined as a rule to detect abnormal access, suitable for artificial intelligence learning, and capable of processing at high speed. It is an object of the present invention to provide a behavior-based rule processing apparatus and a processing method thereof.
In order to achieve the above object, the behavior-based rule processing apparatus according to the present invention includes a log collection unit that collects logs used for rule processing from a plurality of agents and stores the collected logs, and the contents of the logs. In addition to including a rule block that classifies according to a combination of predetermined values and a condition block that classifies predetermined metadata values of the log, the rule block and the condition check block A real-time rule processing unit that pre-defines the actions of the log as a combination as a rule, and calls the log stored in the log collection unit by real-time distributed streaming.

Description

행위 기반 룰 처리 장치 및 그 처리 방법{A UNIT AND METHOD FOR PROCESSING RULE BASED ACTION}Behavior-based rule processing device and its processing method {A UNIT AND METHOD FOR PROCESSING RULE BASED ACTION}

본 발명은 행위 기반 룰 처리 장치 및 그 처리 방법에 관한 것으로, 더욱 상세하게는 인공지능 학습 및 실시간 분석에 적합한 행위 기반 룰 처리 장치 및 그 처리 방법에 관한 것이다.The present invention relates to a behavior-based rule processing apparatus and a processing method thereof, and more particularly, to a behavior-based rule processing apparatus and a processing method suitable for artificial intelligence learning and real-time analysis.

최근 하드웨어의 급속한 성장과 웹을 통해 제공되는 서비스들의 팽창으로 인해 인터넷 망에서 사용되는 데이터 량이 급증하고 있다. 이에 따라 정상적으로 서비스를 이용하는 사용자의 접근과 아울러 공격을 목적으로 하는 비정상적인 접근이 폭발적으로 늘어나고 있다.In recent years, due to the rapid growth of hardware and the expansion of services provided through the web, the amount of data used in the Internet network is increasing rapidly. Accordingly, abnormal access for the purpose of attacking as well as the access of users who normally use the service are exploding.

기존 비정상적인 접근을 탐지하기 위해 사용되고 있는 분석 시스템들은 관리자가 지정한 룰을 기반으로 특정 행위, 즉 로그에서 발견되는 비정상적인 정보를 추출하여 위협을 판단해왔다. 하지만 전통적인 로그 분석 시스템에서는 폭발적으로 늘어나는 로그의 데이터 량을 감당하지 못하거나 점점 지능화 되어가는 공격 패턴들에 일일이 대응할 수 없는 한계를 보이고 있다.Existing analysis systems used to detect abnormal access have determined threats by extracting abnormal information found in specific actions, that is, logs, based on rules designated by the administrator. However, in the traditional log analysis system, it is not able to handle the explosively increasing amount of data in the log, or it has limitations in being able to respond to attack patterns that are becoming more intelligent.

이러한 대용량 처리 한계를 극복하기 위한 방법으로 대부분의 분석 시스템에서는 하드웨어 성능을 끌어올리는 방식을 택하고 있으나 대역폭의 한계와 IO(입출력) 지연 현상 등의 한계는 여전이 존재하며, 지능화 되어 판단이 어려운 접근을 탐지하기 위해 인공지능 모델을 통해 패턴을 추출하는 등의 연구가 이루어지고 있으나 기존 룰을 처리하는 룰 엔진들에서 사용하는 룰 정의 방식이 대부분 프로그래밍 방식을 택하고 있기 때문에 인공지능 모델에서 사용할 수 있는 형태로 정형화 할 수 없는 문제점이 있었다.As a method of overcoming such large-capacity processing limitations, most analysis systems adopt a method to increase hardware performance, but limitations such as bandwidth limitations and IO (I/O) delays still exist, and are difficult to judge due to intelligence. In order to detect patterns, researches such as extracting patterns through artificial intelligence models are being conducted, but most of the rule definition methods used in rule engines that process existing rules are programming methods, which can be used in artificial intelligence models. There was a problem that it could not be formulated into a form.

일례로, 일반적인 분석 단계(룰 엔진)에서는 먼저 정규화 로그를 데이터베이스와 같은 저장 매체에 저장하고, 저장되어 있는 정보를 불러와서 분석 로직(룰 처리)을 수행하게 된다. 하지만 이러한 방식은 실시간 스트리밍 시스템을 사용하더라도 분석(룰 처리) 이전에 스트리밍 결과를 데이터베이스에 저장하는 과정이 필요하고, 분석 단계에서 데이터베이스 질의를 위한 처리 시간이 필요하기 때문에 실시간 처리에 적합하지 않다.For example, in a general analysis step (rule engine), the normalization log is first stored in a storage medium such as a database, and the stored information is fetched to perform analysis logic (rule processing). However, even if a real-time streaming system is used, this method is not suitable for real-time processing because it requires a process of storing streaming results in a database before analysis (rule processing), and processing time for database queries in the analysis stage.

또한, 로그의 종류가 다양한 경우 로그 종류마다 로그의 정규화 결과 항목들을 각각 테이블의 컬럼들로 지정해서 데이터베이스의 테이블에 저장하게 되고, 분석 로직에서는 여러 테이블들에 대한 JOIN 질의 같은 시간이 오래 걸리는 처리가 필요하기 때문에 실시간 분석에 적합하지 않다.In addition, in case of various log types, log normalization result items for each log type are designated as columns of each table and stored in the database table. In the analysis logic, the processing of JOIN queries for multiple tables takes a long time. It is not suitable for real-time analysis because it is necessary.

또한, 룰 처리 엔진에서의 룰은 질의(SQL Query) 형태로 정의되어야 하며, 룰 생성 및 룰 고도화 등을 위한 AI 학습 모델에 적합하지 않다. 왜냐하면, AI 학습의 결과물이 일종의 프로그래밍 언어인 SQL 질의 형태의 룰이기 때문에, 자연어 학습에 가까운 학습 모델을 구현해야 하기 때문이다.In addition, rules in the rule processing engine must be defined in the form of a query (SQL Query), and are not suitable for an AI learning model for rule generation and rule advancement. Because the result of AI learning is a rule in the form of SQL queries, which is a kind of programming language, it is necessary to implement a learning model close to natural language learning.

이에 본 발명은 상기한 바와 같은 요구에 부응하기 위해 제안된 것으로서, 그 목적은 대용량으로 발생하는 로그들을 행위로 정의하여 정형화 된 형태로 처리하고, 행위들의 연속성을 룰로 정의하여 비정상적인 접근을 탐지하며, 인공지능 학습에 적합함과 아울러 고속으로 처리할 수 있는 행위 기반 룰 처리 장치 및 그 처리 방법을 제공하는 것이다.Accordingly, the present invention has been proposed to meet the above demands, and its purpose is to define a large amount of logs as actions and process them in a standardized form, and to detect abnormal access by defining the continuity of actions as a rule, It is to provide an action-based rule processing apparatus and a processing method suitable for artificial intelligence learning and capable of processing at high speed.

상기 목적을 달성하기 위해, 본 발명에 따른 행위 기반 룰 처리 장치는, 복수의 에이전트로부터 룰 처리에 사용되는 로그를 수집함과 아울러 수집된 상기 로그를 저장하는 로그 수집부와, 상기 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록(Rule Block)과, 상기 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록(Condition Block)을 포함함과 아울러 상기 룰 블록과, 상기 조건 검사 블록의 조합인 상기 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부를 포함하며, 상기 로그 수집부에 저장되어 있는 상기 로그를 실시간 분산 스트리밍에 의해 불러온다.In order to achieve the above object, the behavior-based rule processing apparatus according to the present invention includes a log collection unit that collects logs used for rule processing from a plurality of agents and stores the collected logs, and the contents of the logs. In addition to including a rule block that classifies according to a combination of predetermined values and a condition block that classifies predetermined metadata values of the log, the rule block and the condition check block A real-time rule processing unit that pre-defines the actions of the log as a combination as a rule, and calls the log stored in the log collection unit by real-time distributed streaming.

또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 실시간 분산 스트리밍은, 불러오는 상기 로그를 데이터 내용 또는 구분자에 따라 분류하는 제 1 정규화와, 상기 제 1 정규화의 결과로부터 상기 로그의 내용이 상기 룰 블록에 해당하는지 검사하는 제 2 정규화를 각각 수행하는 정규화 과정을 포함한다.In addition, in the behavior-based rule processing apparatus according to the present invention, the real-time distributed streaming includes first normalization for classifying the loaded log according to data content or identifier, and the content of the log from the result of the first normalization. And a normalization process that performs second normalization, respectively, to check whether it corresponds to a block.

또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 로그의 내용이 상기 룰 블록에 해당할 경우, 상기 실시간 분산 스트리밍은 상기 룰 블록에 해당하는 블록과, 상기 조건 검사 블록에 해당하는 블록을 조합하여 상기 로그의 행위를 출력하고, 상기 행위에 대한 사용자 매핑(상기 행위를 발생한 사용자를 식별)을 수행한다.In addition, in the behavior-based rule processing apparatus according to the present invention, when the content of the log corresponds to the rule block, the real-time distributed streaming combines the block corresponding to the rule block and the block corresponding to the condition check block. Thus, the log action is output, and user mapping (identification of the user who caused the action) to the action is performed.

또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 실시간 분산 스트리밍과, 상기 실시간 룰 처리부의 룰 처리는 메모리 상에서 수행된다.Further, in the behavior-based rule processing apparatus according to the present invention, the real-time distributed streaming and rule processing of the real-time rule processing unit are performed on a memory.

또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 실시간 분산 스트리밍은 상기 정규화 과정을 병렬로 분산 처리하고, 상기 실시간 룰 처리부는 상기 행위를 사용자별 또는 행위별로 멀티 쓰레딩(multi-threading) 처리한다.Further, in the behavior-based rule processing apparatus according to the present invention, the real-time distributed streaming distributes the normalization process in parallel, and the real-time rule processor multi-threads the behavior for each user or for each behavior. .

또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 실시간 룰 처리부는 상기 룰을 처리시 사용자별 행위들에 버퍼(buffer)를 두고 처리한다.In addition, in the behavior-based rule processing apparatus according to the present invention, the real-time rule processing unit places a buffer on each user's behavior and processes the rule when processing the rule.

또한, 본 발명에 따른 행위 기반 룰 처리 장치에서, 상기 실시간 룰 처리부는 상기 로그의 행위가 미리 정의한 상기 룰 블록의 내용과, 상기 조건 검사 블록의 메타데이터와 일치하는지를 검사한다.In addition, in the behavior-based rule processing apparatus according to the present invention, the real-time rule processing unit checks whether the behavior of the log matches the content of the rule block defined in advance and the metadata of the condition check block.

한편, 상기 목적을 달성하기 위해, 본 발명에 따른 행위 기반 룰 처리 방법은, 로그 수집부에 의해 수집되며 룰 처리에 사용되는 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록과, 상기 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록을 포함함과 아울러 상기 룰 블록과, 상기 조건 검사 블록의 조합인 상기 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부에 의해 실시간으로 룰 처리가 이루어지도록 상기 로그를 가공하는 행위 기반 룰 처리 방법으로서, 상기 로그 수집부에 의해 수집되는 상기 로그를 실시간 분산 스트리밍이 불러오는 제 1 단계(S100)와, 상기 로그 수집부로부터 불러온 상기 로그를 상기 실시간 분산 스트리밍의 정규화 과정에 의해 정규화하는 제 2 단계(S200)와, 상기 실시간 분산 스트리밍에 의해 정규화된 상기 로그를 상기 룰 블록과 매핑하여 상기 로그의 사용자 식별(사용자 매핑)을 수행하는 제 3 단계(S300)와, 매핑된 상기 로그를 상기 실시간 룰 처리부에 의해 룰 처리하는 제 4 단계(S400)를 포함한다.On the other hand, in order to achieve the above object, the behavior-based rule processing method according to the present invention includes a rule block for classifying the contents of logs collected by a log collection unit and used for rule processing according to a combination of predetermined values, and the In addition to including a condition check block for classifying predetermined metadata values of the log, rule processing is performed in real time by a real-time rule processing unit that pre-defines the behavior of the log, which is a combination of the rule block and the condition check block. As an action-based rule processing method of processing the log so that the log is processed, a first step (S100) in which the log collected by the log collection unit is called by real-time distributed streaming, and the log imported from the log collection unit is distributed in the real time. A second step (S200) of normalizing by a normalization process of streaming, and a third step of performing user identification (user mapping) of the log by mapping the log normalized by the real-time distributed streaming with the rule block (S300). ), and a fourth step (S400) of rule-processing the mapped log by the real-time rule processing unit.

또한, 본 발명에 따른 행위 기반 룰 처리 방법에서, 상기 정규화 과정은, 불러오는 상기 로그를 데이터 내용 또는 구분자에 따라 분류하는 제 1 정규화와, 상기 제 1 정규화의 결과로부터 상기 로그의 내용이 상기 룰 블록에 해당하는지 검사하는 제 2 정규화를 각각 수행한다.In addition, in the behavior-based rule processing method according to the present invention, the normalization process includes: first normalization for classifying the imported log according to data content or separator, and the content of the log from the result of the first normalization Each of the second normalizations to check if it corresponds to is performed.

또한, 본 발명에 따른 행위 기반 룰 처리 방법에서, 상기 로그의 내용이 상기 룰 블록에 해당할 경우, 상기 실시간 분산 스트리밍은 상기 룰 블록에 해당하는 블록과, 상기 조건 검사 블록에 해당하는 블록을 조합하여 상기 로그의 행위를 출력하고, 상기 실시간 룰 처리부는 상기 로그의 행위가 미리 정의한 상기 룰 블록의 내용과, 상기 조건 검사 블록의 메타데이터와 일치하는지를 검사한다.In addition, in the behavior-based rule processing method according to the present invention, when the content of the log corresponds to the rule block, the real-time distributed streaming combines a block corresponding to the rule block and a block corresponding to the condition check block. Thus, the log action is output, and the real-time rule processing unit checks whether the log action matches the content of the rule block defined in advance and metadata of the condition check block.

본 발명에 의하면, 대용량으로 발생하는 로그들을 행위로 정의하여 정형화 된 형태로 처리하고, 행위들의 연속성을 룰로 정의하여 비정상적인 접근을 탐지하며, 인공지능 학습에 적합함과 아울러 고속으로 처리할 수 있는 효과가 있다.According to the present invention, logs generated in a large amount are defined as actions and processed in a standardized form, and the continuity of actions is defined as a rule to detect abnormal access, suitable for artificial intelligence learning, and capable of processing at high speed. There is.

도 1은 본 발명에 따른 행위 기반 룰 처리 장치의 전체 구성을 나타내는 시스템 구성도.
도 2는 룰 블록과 행위를 나타내는 도면.
도 3은 룰 처리를 나타내는 도면.
도 4는 본 발명에 따른 행위 기반 룰 처리 방법의 처리 흐름을 나타내는 플로어 차트.
1 is a system configuration diagram showing the overall configuration of an action-based rule processing apparatus according to the present invention.
2 is a diagram showing rule blocks and actions.
Fig. 3 is a diagram showing rule processing.
4 is a flow chart showing the processing flow of the behavior-based rule processing method according to the present invention.

이하, 본 발명의 실시예에 대해 관련 도면들을 참조하여 상세히 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the related drawings.

본 발명은 설명의 용이함을 위해, 자바 언어 환경을 예로 설명하지만, 이에 한정되는 것은 아니며, C#과 같이 중간 언어를 가진 언어에 모두 적용가능하다.In the present invention, for ease of description, the Java language environment is described as an example, but the present invention is not limited thereto, and is applicable to all languages having an intermediate language such as C#.

도 1은 본 발명에 따른 행위 기반 룰 처리 장치의 전체 구성을 나타내는 시스템 구성도이다.1 is a system configuration diagram showing the overall configuration of an action-based rule processing apparatus according to the present invention.

도 1을 참조하면, 본 발명에 따른 행위 기반 룰 처리 장치(1000)는 로그 수집부(100)와, 실시간 룰 처리부(200)와, 실시간 분산 스트리밍(300)을 포함한다.Referring to FIG. 1, the behavior-based rule processing apparatus 1000 according to the present invention includes a log collection unit 100, a real-time rule processing unit 200, and a real-time distributed streaming 300.

여기서, 로그 수집부(100)는 복수의 에이전트(10)로부터 룰(Rule) 처리에 사용되는 로그를 수집한다. 또한, 수집된 로그를 저장하는 역할을 수행한다.Here, the log collection unit 100 collects logs used for rule processing from the plurality of agents 10. Also, it saves the collected logs.

실시간 룰 처리부(200)는 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록(Rule Block)과, 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록(Condition Block)을 포함함과 아울러 룰 블록과, 조건 검사 블록의 조합인 로그의 행위들을 룰로 미리 정의한다.The real-time rule processing unit 200 includes a rule block for classifying the contents of a log according to a combination of predetermined values, and a condition block for classifying predetermined metadata values of the log. The log behavior, which is a combination of a rule block and a condition check block, is predefined as a rule.

실시간 분산 스트리밍(300)은, 로그 수집부(100)에 저장되어 있는 로그를 실시간으로 불러오는 역할을 수행한다.The real-time distributed streaming 300 serves to load the log stored in the log collection unit 100 in real time.

이에 대해, 도 2 및 도 3을 참조하여 좀더 상세히 설명하도록 한다.This will be described in more detail with reference to FIGS. 2 and 3.

도 2는 룰 블록과 행위를 나타내는 도면이고, 도 3은 룰 처리를 나타내는 도면이다.2 is a diagram illustrating rule blocks and actions, and FIG. 3 is a diagram illustrating rule processing.

로그의 형태와 종류는 수집 대상 또는 수집 에이전트의 특성에 따라 매우 다양하다. 수집 대상에는 대표적으로 데이터베이스 시스템, 웹서버, 네트워크 패킷, 운영체제 시스템 또는 응용 프로그램(application) 등이 있으며, 이러한 수집 대상이 남기는 로그를 복수의 에이전트(10)를 통해 수집할 수 있다. 또한, 수집 대상이 로그를 남기지 않더라도 복수의 에이전트(10)가 직접 로그를 생성할 수도 있다. 응용 프로그램에서 로그를 남기고 있지 않더라도 에이전트(10)가 응용 프로그램에 탑재되어 분석에 필요한 애플리케이션 로그를 생성하거나 로그가 남지 않는 네트워크의 패킷을 감시하면서 파일 형태의 로그로 남기는 경우 등을 예로 들 수 있다.The types and types of logs vary greatly depending on the characteristics of the collection target or collection agent. Collection targets typically include a database system, a web server, a network packet, an operating system system, or an application, and logs left by such a collection target may be collected through a plurality of agents 10. Also, even if the collection target does not leave a log, the plurality of agents 10 may directly generate the log. For example, even if the application program does not leave a log, the agent 10 is installed in the application program to generate an application log necessary for analysis, or a case in which a log in the form of a file is left while monitoring packets of a network that does not leave a log may be used.

복수의 에이전트(10)를 통해 수집된 로그들은 정규화되어 실시간 룰 처리부(200)로 보내진다. 분석 과정의 실시간성을 위해 복수의 에이전트(10)와 실시간 룰 처리부(200) 사이에 스트리밍 처리가 필요할 수 있다. 스트리밍 처리를 통해 대용량의 데이터(로그)의 실시간 처리 및 분산 처리가 가능하며, 로그 수집부(100)와, 실시간 분산 스트리밍(300)을 활용하여 스트리밍 처리 인프라를 구성할 수 있다.Logs collected through the plurality of agents 10 are normalized and sent to the real-time rule processing unit 200. Streaming processing may be required between the plurality of agents 10 and the real-time rule processing unit 200 for real-time performance of the analysis process. Real-time processing and distributed processing of a large amount of data (logs) are possible through streaming processing, and a streaming processing infrastructure may be configured by using the log collection unit 100 and the real-time distributed streaming 300.

일례로 로그 수집부(100)의 경우, 대용량 로그 데이터의 분산 메시징 시스템으로 로그 에이전트와 스트리밍 데이터 처리 사이에서 버퍼(Buffer) 역할을 수행하며, 실시간 분산 스트리밍(300)에서는 로그 수집부(100)에 저장된 로그들을 마이크로 배치 방식으로 가져와 비즈니스 로직에 맞는 데이터 정규화 처리를 할 수 있다. 정규화 처리가 이루어진 데이터(로그)들은 실시간 룰 처리부(200)로 넘어가 비즈니스 로직 또는 룰 처리 프로세스의 입력으로 사용된다.For example, in the case of the log collection unit 100, it is a distributed messaging system for large-capacity log data, and serves as a buffer between the log agent and streaming data processing, and in the real-time distributed streaming 300, the log collection unit 100 Stored logs can be imported in a micro-batch method and data can be normalized according to business logic. Data (logs) subjected to normalization are transferred to the real-time rule processing unit 200 and used as input to business logic or rule processing process.

로그의 내용은 통상 특정 포맷에 맞춰 기록된 문자열들이다. 가장 일반적인 웹(Web) 로그를 예로 들면, 웹 로그는 특정 웹 서버 또는 와스(WAS) 위에서 동작하는 웹 사이트를 방문한 사용자들이 언제, 어디서, 어떤 페이지를 방문했는지에 대한 정보를 기록한 파일이다. 웹 로그 내용을 보면, 이러한 정보들이 포맷에 맞춰 문자열로 기록되어 있다.The contents of the log are usually strings recorded according to a specific format. Taking the most common web log as an example, a web log is a file that records information on when, where, and what pages were visited by users who visited a web site running on a specific web server or WAS. When looking at the contents of the web log, these information are recorded as strings according to the format.

Figure 112018120125789-pat00001
Figure 112018120125789-pat00001

표 1의 웹 로그의 예를 살펴보면, 서버에 요청한 클라이언트의 IP 주소, 식별(Identity) 정보, HTTP 인증을 통해 알아낸 사용자의 유저(User) ID, 서버 요청처리 시간, 클라이언트가 사용한 HTTP method와 HTTP 프로토콜, 요청 URL, 서버가 클라이언트에게 보내는 상태 코드, 그리고 서버가 클라이언트에게 보내는 내용(body)의 크기의 내용을 담고 있다. 이러한 로그 문자열 전체를 분석 단계에서 파싱을 통해 분석을 할 수도 있지만 보통은 분석을 위해 필요한 정보에 맞춰 미리 앞에서 정규화를 하고 그 결과를 분석 단계에서 사용하게 된다. 로그의 데이터 내용 또는 구분자에 따라서 정규화를 하는 것이 일반적이다. 표 1에 나타낸 바와 같이 웹 로그를 구분자(공백) 또는 데이터의 의미에 따라 정규화를 하게 되면 다음 표 2와 같이 정규화 될 수 있다.Looking at the example of the web log in Table 1, the IP address of the client requested to the server, identification information, the user ID of the user found through HTTP authentication, the server request processing time, the HTTP method and HTTP used by the client. It contains the protocol, the request URL, the status code that the server sends to the client, and the size of the body that the server sends to the client. The entire log string can be analyzed through parsing in the analysis stage, but normally, it is normalized in advance according to the information required for analysis, and the result is used in the analysis stage. It is common to perform normalization according to the log data content or separator. As shown in Table 1, if the web log is normalized according to the delimiter (space) or the meaning of data, it can be normalized as shown in Table 2 below.

Figure 112018120125789-pat00002
Figure 112018120125789-pat00002

[표 2]와 같이 정규화된 데이터를 보다 실시간 분석(룰 처리), AI 학습에 적합한 룰을 만들기 위해 룰의 구성 요소인 "룰 블록"을 미리 정의하고, 룰 처리 엔진에서 사용하는 모든 룰을 룰의 구성 요소인 룰 블록과, 추가 조건 검사를 위한 "조건 검사 블록"을 사용하여 정의한다. 룰이란 결국 로그를 하나의 행위로 본다면 이러한 행위들의 패턴을 의미한다. 물론 로그가 기준에 따라서 여러 행위를 의미할 수 있지만 로그는 웹 로그의 경우 사용자의 웹 페이지 접근 행위, 데이터베이스 로그의 경우 로그인 또는 데이터 조회와 같은 사용자 행위로 볼 수 있다. 실시간 룰 처리부(200)에서 분석(룰 처리)시 사용되는 룰은 이러한 행위들의 조합이므로 룰 생성을 위한 모든 행위들을 정의해 놓고, 행위 기반 룰 처리 장치(1000)의 모든 로그들이 정의해 놓은 행위들로 매칭 된다면, 룰 처리 과정은 단순히 행위 비교 연산으로 바뀌게 되며, 분석(룰 처리) 단계 이전에 데이터베이스와 같은 저장 매체에 저장하지 않고 분석이 가능하다.As shown in [Table 2], in order to analyze normalized data in real time (rule processing), and to create rules suitable for AI learning, we define "rule blocks" in advance, and all rules used in the rule processing engine are ruled. It is defined by using a rule block, which is a component of and a "condition check block" for additional condition check. In the end, if you see a log as an action, a rule means a pattern of these actions. Of course, a log can mean several actions according to a standard, but a log can be viewed as a user's action of accessing a web page in the case of a web log, and a user action such as a login or data inquiry in the case of a database log. Since the rule used in the analysis (rule processing) in the real-time rule processing unit 200 is a combination of these actions, all actions for rule generation are defined, and actions defined by all logs of the action-based rule processing unit 1000 If matched with, the rule processing process simply changes to an action comparison operation, and analysis can be performed without storing it in a storage medium such as a database before the analysis (rule processing) step.

로그들의 포맷이 정해져 있다고 해도, 데이터 내용의 종류에 따라 행위를 구분하게 된다면 행위의 종류는 엄청나게 많아진다. 따라서, 룰에 사용되는 행위의 타입을 정의해 행위들을 분류해야 하며, 이 행위의 타입이 앞에서 언급한 룰의 구성 요소인 룰 블록이다. 로그를 행위로 본다는 것은 로그의 내용이 어떤 특정한 값일 때 그것을 미리 정의한 행위로 본다는 것이다. 행위를 구분할 때 기준이 되는 것이 행위의 타입인 룰 블록이다.Even if the format of the logs is fixed, if actions are classified according to the type of data content, the types of actions are enormously increased. Therefore, it is necessary to classify the actions by defining the type of action used in the rule, and this action type is a rule block, which is a component of the aforementioned rule. To view a log as an action means to see it as a predefined action when the content of the log is a certain value. The rule block, which is the type of action, is the criterion when classifying actions.

도 2에서는 "로그인 시도"라는 의미를 갖는 행위의 타입을 "try_login"이라는 ID를 갖는 룰 블록으로 정의하며, 이때 검사하는 웹 로그 데이터의 값은 클라이언트의 요청 HTTP method를 나타내는 E 값과, 접근 페이지 주소를 의미하는 F 값과, 클라이언트의 요청 HTTP 프로토콜인 G와, 서버의 응답 코드인 H이다. E="GET", F="/login.php", G="HTTP/1.1", H="200"인 경우, "로그인 시도"라는 의미의 행위로 볼 수 있는 것이다. 행위의 판별에 사용되는 조건 값들은 물론 사용자에 따라 다를 수 있다. 다른 웹 사이트에서는 로그인 페이지의 주소가 "/login.php"가 아닐 수도 있고, 로그인 페이지가 없을 수도 있기 때문이다.In FIG. 2, the type of action meaning "login attempt" is defined as a rule block with an ID of "try_login", and the value of web log data to be inspected is an E value representing the HTTP method requested by the client, and an access page. The value of F is the address, G is the HTTP protocol requested by the client, and H is the response code of the server. In the case of E="GET", F="/login.php", G="HTTP/1.1", H="200", it can be seen as an action meaning "login attempt". The condition values used to determine the behavior can of course differ depending on the user. This is because on other websites, the address of the login page may not be "/login.php", and there may be no login page.

이처럼 로그 데이터의 내용 중 특정 값들만 비교해서 행위의 타입을 구분하고, 1차 정규화 결과의 모든 값들을 메타 데이터로 정의하여 행위의 타입인 룰 블록과 메타 데이터를 합쳐 행위로 정의한다. 로그들을 행위(룰 블록 + 메타 데이터)로 매칭시키기 위해, 데이터의 내용, 구분자를 기준으로 한 1차 정규화 과정 이후에 추가로 2차 정규화 과정이 필요하다. 2차 정규화 과정에서는 로그의 1차 정규화 결과가 미리 정의해 놓은 행위의 타입(룰 블록)에 해당되는지 검사한다. 즉, 본 발명에 따른 행위 기반 룰 처리 장치(1000)에서, 실시간 분산 스트리밍(300)은 로그 수집부(100)로부터 불러오는 로그를 데이터 내용 또는 구분자에 따라 분류(제 1 정규화)한다. 다음, 제 1 정규화의 결과로부터 로그의 종류가 룰 블록에 해당하는지 검사(제 2 정규화)한다. 이후, 룰 블록에 해당되면 해당 룰 블록의 ID와 1차 정규화 결과 값들을 합쳐서 최종 정규화 결과인 행위가 나오게 된다.In this way, only specific values of log data are compared to identify the type of action, and all values of the first normalization result are defined as meta data, and the rule block, which is the type of action, and meta data are combined to define an action. In order to match logs with actions (rule block + meta data), an additional secondary normalization process is required after the first normalization process based on data content and delimiter. In the second normalization process, it is checked whether the result of the first normalization of the log corresponds to the predefined behavior type (rule block). That is, in the behavior-based rule processing apparatus 1000 according to the present invention, the real-time distributed streaming 300 classifies (first normalizes) the log fetched from the log collection unit 100 according to data content or separator. Next, from the result of the first normalization, it is checked whether the log type corresponds to a rule block (second normalization). Thereafter, if it corresponds to a rule block, the ID of the rule block and the values of the result of the first normalization are added together, and the action, which is the result of the final normalization, comes out.

도 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)는 로그의 행위가 미리 정의한 상기 룰 블록의 내용과, 조건 검사 블록의 메타데이터와 일치하는지를 검사한다.In Fig. 2, if E, F, G, H values meet the condition values of the rule block "try_login", the log is classified as "try_login", that is, the type of action (rule block) meaning "login attempt". do. However, it is not enough to distinguish between the types of actions alone. When there is a value of A, it is possible to know who made the "login attempt" action, and knowing the value of D can tell when the "login attempt" action was performed. Values other than these rule block condition check values are checked in the condition check block mentioned above. Therefore, all rules in the rule processing stage are composed of a combination of rule blocks and condition check blocks. If the rule "A user with IP 192.167.0.1 attempted to log in" is generated, the rule compares whether the rule block with the ID "try_login" and the A value is "192.167.0.1" as shown in FIG. 3. It consists of a condition check block. This is a rule block check called "try_login" to determine whether it is a "login attempt" action, and a condition check block to determine if the user with "192.167.0.1" is correct, and the user with IP 192.167.0.1 attempts to log in. This means that it can be automatically found by the real-time rule processing unit 200 through log analysis. That is, in the behavior-based rule processing apparatus 1000 according to the present invention, the real-time rule processing unit 200 checks whether the behavior of the log matches the content of the rule block defined in advance and the metadata of the condition check block.

이와 같이 룰을 구성하고 정규화 결과를 룰의 구성 요소인 룰 블록과 조건 검사 블록에 필요한 값들로 정규화 결과를 정의하면, 실시간 분산 스트리밍(300)에 의해 실시간으로 들어오는 로그 데이터를 데이터베이스 저장 없이 단순 룰 블록 ID 검사와 1차 정규화 결과인 메타 데이터들의 특정 항목 값 비교를 통해 메모리 상(in-memory)에서 룰 처리를 수행할 수 있다. 즉, 본 발명에 따른 하는 행위 기반 룰 처리 장치(1000)에서, 실시간 분산 스트리밍(300)과, 실시간 룰 처리부(200)의 룰 처리는 메모리 상에서 수행된다.If the rule is configured and the normalization result is defined as the values required for the rule block and condition check block, which are components of the rule, log data that comes in real time by the real-time distributed streaming 300 is stored in a simple rule block without database storage. Rule processing can be performed in-memory through ID check and comparison of specific item values of metadata, which is a result of primary normalization. That is, in the behavior-based rule processing apparatus 1000 according to the present invention, the real-time distributed streaming 300 and rule processing of the real-time rule processing unit 200 are performed on a memory.

이후, 본 발명에 따른 행위 기반 룰 처리 장치(1000)에서, 로그의 내용이 룰 블록에 해당할 경우, 실시간 분산 스트리밍(300)은 룰 블록에 해당하는 블록과, 조건 검사 블록에 해당하는 블록을 조합하여 로그의 행위를 출력하고, 이러한 로그의 행위에 대한 사용자 매핑(상기 행위를 발생한 사용자를 식별)을 수행한다.Thereafter, in the behavior-based rule processing apparatus 1000 according to the present invention, when the content of the log corresponds to a rule block, the real-time distributed streaming 300 includes a block corresponding to the rule block and a block corresponding to the condition check block. Combined, the log behavior is output, and user mapping (identification of the user who caused the behavior) to the log behavior is performed.

또한, "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)는 룰을 처리시 사용자별 행위들에 버퍼를 두고 처리한다.In addition, there are cases where it is necessary to check consecutive behavior values (rule block ID value + meta data item value), such as the rule "User with IP 192.167.0.1 made two consecutive login attempts" In the case of the rule, "A user with 192.167.0.1 made login attempts consecutively within 10 seconds", the user with an IP 192.167.0.1 must wait 10 seconds after the first log in attempt to determine whether the rule passes. This is because if a user with an IP of 192.167.0.1 does not attempt to log in again within 10 seconds, the rule does not apply. In this way, there are cases in which it is necessary to look at the logs generated after a specific log when checking the rules. In this case, a buffer of actions is internally placed for rule processing to be processed. That is, in the behavior-based rule processing apparatus 1000 according to the present invention, the real-time rule processing unit 200 puts a buffer on each user's behavior when processing the rule and processes it.

또한, 실시간 분산 스트리밍(300)에서는 로그들의 정규화 과정의 병렬 처리가 가능하다. 실시간 분산 스트리밍(300)이 정규화 처리를 하게 되고, 정규화 처리 결과인 행위 값들이 병렬로 실시간 룰 처리부(200)에 입력이 되고, 실시간 룰 처리부(200)에서는 액션별로 멀티 쓰레딩(multi-threading) 처리를 행하면 룰 처리 성능이 향상될 수 있다. 보통 행위들을 사용자 기준으로 구분하게 되며 룰 또한 사용자들을 기준으로 생성된다. 실시간 분산 스트리밍 단계 또는 분석(룰 처리) 단계에서 사용자 식별이 가능하다면 룰 처리를 사용자별로 병렬 처리가 가능하다. 즉, 본 발명에 따른 행위 기반 룰 처리 장치(1000)에서, 실시간 분산 스트리밍(300)은 정규화 과정을 병렬로 분산 처리하고, 실시간 룰 처리부(200)는 행위를 행위별 또는 사용자별로 멀티 쓰레딩 처리한다.In addition, in the real-time distributed streaming 300, parallel processing of the normalization process of logs is possible. Real-time distributed streaming 300 performs normalization processing, and action values resulting from normalization are input to the real-time rule processing unit 200 in parallel, and the real-time rule processing unit 200 processes multi-threading for each action. The rule processing performance can be improved by performing. In general, actions are classified based on users, and rules are also created based on users. If user identification is possible in the real-time distributed streaming stage or the analysis (rule processing) stage, rule processing can be processed in parallel for each user. That is, in the behavior-based rule processing apparatus 1000 according to the present invention, the real-time distributed streaming 300 distributes and processes the normalization process in parallel, and the real-time rule processing unit 200 multi-threads the behavior for each activity or user. .

한편, 로그의 정규화 결과를 데이터베이스에 저장한 후 분석(룰 처리)을 하게 된다면, 룰 처리 엔진에서의 룰은 질의(SQL Query) 형태로 정의되어야 하기 때문에 인공지능 학습 모델의 입력은 질의가 되며, 인공지능 학습의 결과물이 일종의 프로그래밍 언어인 SQL 질의 형태의 룰이기 때문에 룰과 룰 처리 결과를 학습하여 룰 고도화에 활용하는 AI에 적합하지 않다. 하지만 룰들을 간단한 블록들을 이용하여 구성한다면, 룰의 패턴 등을 인공지능 학습 모델의 입력과 출력(결과물)으로 사용할 수 있어, 추후 인공 지능 도입에 용이하다. 즉, 학습 결과로 이미 룰 엔진에 등록되어 있는 룰 블록들의 조합을 생성한다면, 기존 룰의 고도화(최적의 룰 블록 조합)을 학습 결과로 생성할 수 있다.On the other hand, if the log normalization result is stored in a database and then analyzed (rule processing), the input of the AI learning model becomes a query because the rule in the rule processing engine must be defined in the form of a query. Since the result of artificial intelligence learning is a rule in the form of SQL query, which is a kind of programming language, it is not suitable for AI that learns the rule and the rule processing result and uses it for rule enhancement. However, if the rules are configured using simple blocks, the pattern of the rules can be used as input and output (output) of the artificial intelligence learning model, making it easy to introduce artificial intelligence in the future. That is, if a combination of rule blocks already registered in the rule engine is generated as a result of learning, the advancement of an existing rule (optimum combination of rule blocks) can be generated as a learning result.

다음, 도 4는 본 발명에 따른 행위 기반 룰 처리 방법의 처리 흐름을 나타내는 플로어 차트이다.Next, Figure 4 is a flow chart showing the processing flow of the behavior-based rule processing method according to the present invention.

도 4를 참조하면, 본 발명에 따른 행위 기반 룰 처리 방법은, 로그 수집부(100)에 의해 수집되며 룰 처리에 사용되는 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록과, 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록을 포함함과 아울러 룰 블록과, 조건 검사 블록의 조합인 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부(200)에 의해 실시간으로 룰 처리가 이루어지도록 로그를 가공하는 행위 기반 룰 처리 방법으로 총 4단계로 진행된다.Referring to FIG. 4, the method for processing an action-based rule according to the present invention includes a rule block that is collected by the log collection unit 100 and classifies the contents of a log used for rule processing according to a combination of predetermined values, and a log The rule processing is performed in real time by the real-time rule processing unit 200 that includes a condition check block that classifies the predetermined metadata values of the rule block and the log behavior, which is a combination of the condition check block, as rules. It is an action-based rule processing method that processes logs and proceeds in a total of 4 steps.

제 1 단계(S100)에서는, 로그 수집부(100)에 의해 수집되는 로그를 실시간 분산 스트리밍(300)이 불러온다.In the first step (S100), the real-time distributed streaming 300 calls the log collected by the log collection unit 100.

제 2 단계(S200)에서는, 로그 수집부(100)로부터 불러온 로그를 실시간 분산 스트리밍(300)의 정규화 과정에 의해 정규화한다.In the second step (S200), the log retrieved from the log collection unit 100 is normalized by the normalization process of the real-time distributed streaming 300.

제 3 단계(S300)에서는, 실시간 분산 스트리밍(300)에 의해 정규화된 로그를 룰 블록과 매핑하여 로그의 사용자 식별(사용자 매핑)을 수행한다.In the third step (S300), the log normalized by the real-time distributed streaming 300 is mapped with the rule block to perform user identification (user mapping) of the log.

제 4 단계(S400)에서는. 매핑된 로그를 실시간 룰 처리부(200)에 의해 룰 처리한다.In the fourth step (S400). The mapped log is rule-processed by the real-time rule processing unit 200.

이때, 정규화 과정은, 불러오는 로그를 데이터 내용 또는 구분자에 따라 분류하는 제 1 정규화와, 제 1 정규화의 결과로부터 로그의 종류가 룰 블록에 해당하는지 검사하는 제 2 정규화를 각각 수행하게 된다.In this case, in the normalization process, a first normalization for classifying the loaded log according to data content or a delimiter and a second normalization for checking whether the type of log corresponds to a rule block from the result of the first normalization are respectively performed.

한편, 로그의 종류가 룰 블록에 해당할 경우, 실시간 분산 스트리밍(300)은 룰 블록에 해당하는 블록과, 조건 검사 블록에 해당하는 블록을 조합하여 로그의 행위를 출력하고, 실시간 룰 처리부(200)는 로그의 행위가 미리 정의한 룰 블록의 내용과, 조건 검사 블록의 메타데이터와 일치하는지를 검사한다.On the other hand, when the type of log corresponds to the rule block, the real-time distributed streaming 300 combines the block corresponding to the rule block and the block corresponding to the condition check block to output the behavior of the log, and the real-time rule processing unit 200 ) Checks whether the log behavior matches the content of the predefined rule block and the metadata of the condition check block.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and those of ordinary skill in the art to which the present invention pertains will be able to make various modifications and variations without departing from the essential characteristics of the present invention. Accordingly, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention, but to explain the technical idea, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

10 : 복수의 에이전트
100 : 로그 수집부
200 : 실시간 룰 처리부
300 : 실시간 분산 스트리밍
1000 : 행위 기반 룰 처리 장치
10: multiple agents
100: log collection unit
200: Real-time rule processing unit
300: Real-time distributed streaming
1000: behavior-based rule processing device

Claims (10)

복수의 에이전트로부터 룰 처리에 사용되는 로그를 수집함과 아울러 수집된 상기 로그를 저장하는 로그 수집부와,
상기 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록(Rule Block)과, 상기 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록(Condition Block)을 포함함과 아울러 상기 룰 블록과, 상기 조건 검사 블록의 조합인 상기 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부를 포함하며,
상기 로그 수집부에 저장되어 있는 상기 로그를 실시간 분산 스트리밍에 의해 불러오고,
상기 실시간 분산 스트리밍은,
불러오는 상기 로그를 데이터 내용 또는 구분자에 따라 분류하는 제 1 정규화와,
상기 제 1 정규화의 결과로부터 상기 로그의 내용이 상기 룰 블록에 해당하는지 검사하는 제 2 정규화를 각각 수행하는 정규화 과정을 포함하며,
상기 로그의 내용이 상기 룰 블록에 해당할 경우,
상기 실시간 분산 스트리밍은 상기 룰 블록에 해당하는 블록과, 상기 조건 검사 블록에 해당하는 블록을 조합하여 상기 로그의 행위를 출력하고, 상기 행위에 대한 사용자 매핑(상기 행위를 발생한 사용자를 식별)을 수행하며,
상기 실시간 분산 스트리밍과, 상기 실시간 룰 처리부의 룰 처리는 메모리 상에서 수행되는 행위 기반 룰 처리 장치.
A log collection unit that collects logs used for rule processing from a plurality of agents and stores the collected logs,
The rule block includes a rule block for classifying the contents of the log according to a combination of predetermined values, and a condition block for classifying predetermined metadata values of the log, and the rule block, A real-time rule processing unit that pre-defines the actions of the log, which is a combination of the condition check blocks, as rules,
The log stored in the log collection unit is called by real-time distributed streaming,
The real-time distributed streaming,
A first normalization for classifying the loaded log according to data content or separator,
And a normalization process of performing second normalization, respectively, for checking whether the content of the log corresponds to the rule block from the result of the first normalization,
If the contents of the log correspond to the rule block,
The real-time distributed streaming combines a block corresponding to the rule block and a block corresponding to the condition check block, outputs the behavior of the log, and performs user mapping (identifying the user who caused the behavior) to the behavior. And
The real-time distributed streaming and rule processing of the real-time rule processor are performed on a memory.
삭제delete 삭제delete 삭제delete 제 1 항에 있어서,
상기 실시간 분산 스트리밍은 상기 정규화 과정을 병렬로 분산 처리하고,
상기 실시간 룰 처리부는 상기 행위를 사용자별 또는 행위별로 멀티 쓰레딩(multi-threading) 처리하는 행위 기반 룰 처리 장치.
The method of claim 1,
In the real-time distributed streaming, the normalization process is distributed in parallel,
The real-time rule processing unit multi-threading the action for each user or for each action.
제 1 항에 있어서,
상기 실시간 룰 처리부는 상기 룰을 처리시 사용자별 행위들에 버퍼(buffer)를 두고 처리하는 행위 기반 룰 처리 장치.
The method of claim 1,
The real-time rule processing unit puts a buffer on each user's actions when processing the rules and processes them.
제 1 항에 있어서,
상기 실시간 룰 처리부는 상기 로그의 행위가 미리 정의한 상기 룰 블록의 내용과, 상기 조건 검사 블록의 메타데이터와 일치하는지를 검사하는 행위 기반 룰 처리 장치.
The method of claim 1,
The real-time rule processing unit checks whether the action of the log matches the content of the rule block defined in advance and the metadata of the condition check block.
로그 수집부에 의해 수집되며 룰 처리에 사용되는 로그의 내용을 미리 정해진 값들의 조합에 따라 분류하는 룰 블록과, 상기 로그의 미리 정해진 메타데이터값들을 분류하는 조건 검사 블록을 포함함과 아울러 상기 룰 블록과, 상기 조건 검사 블록의 조합인 상기 로그의 행위들을 룰로 미리 정의하는 실시간 룰 처리부에 의해 실시간으로 룰 처리가 이루어지도록 상기 로그를 가공하는 행위 기반 룰 처리 방법으로서,
상기 로그 수집부에 의해 수집되는 상기 로그를 실시간 분산 스트리밍이 불러오는 제 1 단계(S100)와,
상기 로그 수집부로부터 불러온 상기 로그를 상기 실시간 분산 스트리밍의 정규화 과정에 의해 정규화하는 제 2 단계(S200)와,
상기 실시간 분산 스트리밍에 의해 정규화된 상기 로그를 상기 룰 블록과 매핑하여 상기 로그의 사용자 식별(사용자 매핑)을 수행하는 제 3 단계(S300)와,
매핑된 상기 로그를 상기 실시간 룰 처리부에 의해 룰 처리하는 제 4 단계(S400)를 포함하며,
상기 정규화 과정은,
불러오는 상기 로그를 데이터 내용 또는 구분자에 따라 분류하는 제 1 정규화와,
상기 제 1 정규화의 결과로부터 상기 로그의 내용이 상기 룰 블록에 해당하는지 검사하는 제 2 정규화를 각각 수행하고,
상기 로그의 내용이 상기 룰 블록에 해당할 경우,
상기 실시간 분산 스트리밍은 상기 룰 블록에 해당하는 블록과, 상기 조건 검사 블록에 해당하는 블록을 조합하여 상기 로그의 행위를 출력하고,
상기 실시간 룰 처리부는 상기 로그의 행위가 미리 정의한 상기 룰 블록의 내용과, 상기 조건 검사 블록의 메타데이터와 일치하는지를 검사하며,
상기 실시간 분산 스트리밍과, 상기 실시간 룰 처리부의 룰 처리는 메모리 상에서 수행되는 행위 기반 룰 처리 방법.
The rule includes a rule block that is collected by the log collection unit and classifies the contents of the log used for rule processing according to a combination of predetermined values, and a condition check block that classifies predetermined metadata values of the log. As an action-based rule processing method for processing the log so that rule processing is performed in real time by a real-time rule processing unit that pre-defines the actions of the log, which is a combination of a block and the condition check block, as a rule,
A first step (S100) in which real-time distributed streaming calls the logs collected by the log collection unit,
A second step (S200) of normalizing the log retrieved from the log collection unit by a normalization process of the real-time distributed streaming,
A third step (S300) of performing user identification (user mapping) of the log by mapping the log normalized by the real-time distributed streaming with the rule block,
A fourth step (S400) of rule-processing the mapped log by the real-time rule processing unit,
The normalization process,
A first normalization for classifying the loaded log according to data content or separator,
From the result of the first normalization, each of the second normalization to check whether the content of the log corresponds to the rule block,
If the contents of the log correspond to the rule block,
The real-time distributed streaming combines a block corresponding to the rule block and a block corresponding to the condition check block to output the behavior of the log,
The real-time rule processing unit checks whether the action of the log matches the content of the rule block defined in advance and the metadata of the condition check block,
The real-time distributed streaming and rule processing of the real-time rule processor are performed on a memory.
삭제delete 삭제delete
KR1020180152189A 2018-11-30 2018-11-30 A unit and method for processing rule based action KR102189127B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180152189A KR102189127B1 (en) 2018-11-30 2018-11-30 A unit and method for processing rule based action

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180152189A KR102189127B1 (en) 2018-11-30 2018-11-30 A unit and method for processing rule based action

Publications (2)

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

Family

ID=71087092

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180152189A KR102189127B1 (en) 2018-11-30 2018-11-30 A unit and method for processing rule based action

Country Status (1)

Country Link
KR (1) KR102189127B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112104628B (en) * 2020-09-04 2022-07-26 南京林科斯拉信息技术有限公司 Adaptive feature rule matching real-time malicious flow detection method
KR102280845B1 (en) * 2020-11-24 2021-07-22 한국인터넷진흥원 Method and apparatus for detecting abnormal behavior in network

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 (en) * 2006-02-28 2007-09-13 Intelligent Wave Inc Log integrated management system and log integrated management method
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 (en) * 2013-11-29 2015-10-13 건국대학교 산학협력단 Method of processing log data, and system operating the same
KR101818006B1 (en) * 2016-06-28 2018-02-21 한국전자통신연구원 Method for high-speed malware detection and visualization using behavior normalization and apparatus using the same

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 (en) * 2006-02-28 2007-09-13 Intelligent Wave Inc Log integrated management system and log integrated management method
US20180139220A1 (en) 2016-11-14 2018-05-17 Bank Of America Corporation Shared capability system

Also Published As

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

Similar Documents

Publication Publication Date Title
CN107665191B (en) Private protocol message format inference method based on extended prefix tree
US10375102B2 (en) Malicious web site address prompt method and router
CN108156131B (en) Webshell detection method, electronic device and computer storage medium
CN107087001B (en) distributed internet important address space retrieval system
US20090164502A1 (en) Systems and methods of universal resource locator normalization
CN109768992B (en) Webpage malicious scanning processing method and device, terminal device and readable storage medium
KR102225040B1 (en) Method and system for security information and event management based on artificial intelligence
US20230353585A1 (en) Malicious traffic identification method and related apparatus
US20200153865A1 (en) Sensor based rules for responding to malicious activity
CN113949577A (en) Data attack analysis method applied to cloud service and server
KR102189127B1 (en) A unit and method for processing rule based action
US10785236B2 (en) Generation of malware traffic signatures using natural language processing by a neural network
CN114650176A (en) Phishing website detection method and device, computer equipment and storage medium
CN114598597B (en) Multisource log analysis method, multisource log analysis device, computer equipment and medium
CN116599743A (en) 4A abnormal detour detection method and device, electronic equipment and storage medium
CN114793204B (en) Network asset detection method
CN115242436B (en) Malicious traffic detection method and system based on command line characteristics
KR102411383B1 (en) Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information
CN115470489A (en) Detection model training method, detection method, device and computer readable medium
CN110830416A (en) Network intrusion detection method and device
KR20120085375A (en) Analysis system for log data
Djemaiel et al. Optimizing big data management using conceptual graphs: a mark-based approach
CN114531307B (en) API (application programming interface) model construction and defense method and system of active defense gateway
CN111475380B (en) Log analysis method and device
KR102623432B1 (en) Apparatus and method for collecting meta information related to malicious code

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant