KR20110098269A - A method for intrusion detection by pattern search - Google Patents

A method for intrusion detection by pattern search Download PDF

Info

Publication number
KR20110098269A
KR20110098269A KR1020100017807A KR20100017807A KR20110098269A KR 20110098269 A KR20110098269 A KR 20110098269A KR 1020100017807 A KR1020100017807 A KR 1020100017807A KR 20100017807 A KR20100017807 A KR 20100017807A KR 20110098269 A KR20110098269 A KR 20110098269A
Authority
KR
South Korea
Prior art keywords
string
vertices
forbidden
pattern
vertex
Prior art date
Application number
KR1020100017807A
Other languages
Korean (ko)
Other versions
KR101091204B1 (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 KR1020100017807A priority Critical patent/KR101091204B1/en
Publication of KR20110098269A publication Critical patent/KR20110098269A/en
Application granted granted Critical
Publication of KR101091204B1 publication Critical patent/KR101091204B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic

Abstract

본 발명은 대량 패턴 검색을 통한 침입 탐지 방법에 관한 것으로서, 보다 구체적으로는 특정 문자열들을 금지문자열 집합으로 정의하는 단계, 정의된 상기 금지문자열 집합의 부분 문자열을 정점과 간선으로 표시하여 일반화접미사트리(Generalized Suffix Tree, 일반화접미사트리)를 생성하는 단계, 상기 일반화접미사트리를 이용하여 상기 금지문자열 집합의 진접미사 집합으로 정점을 표시하고 간선으로 방향 구조를 나타내어, 상기 금지문자열이 포함되는 경우 다른 정점으로 이동하지 않는 방향 그래프를 생성하는 단계, 및 네트워크상의 문자열을 상기 방향 그래프에 통과시켜 상기 방향 그래프 내의 간선을 따라 정점들을 순회하는지에 여부에 따라 악성 패턴 발생을 판단하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는, 패턴 검색을 통한 침입 탐지 방법 및 그 기록 매체에 따르면, 알려진 공격 기법 또는 악성 코드들이 가지는 패턴을 금지문자열들로 정의한 뒤, 주어진 입력 문자열에 대해 금지문자열 여부를 효율적으로 판단할 수 있다. 특히 이러한 판단 알고리즘의 성능을 높이기 위해 금지문자열들을 전처리하여 효율적인 방향 그래프를 생성함으로써, 금지문자열의 수와 무관하게 이 그래프의 1회 처리만으로 판단이 완료할 수 있다.
The present invention relates to an intrusion detection method using a bulk pattern search, and more particularly, to define specific strings as a prohibited string set, and to display a generalized suffix tree by displaying a substring of the defined prohibited string set as vertices and edges. Creating a generalized suffix tree, using the generalized suffix tree to represent vertices as a set of suffixes of the set of forbidden strings and indicating a direction structure with edges, where the forbidden string is included; Generating a directional graph that does not move, and determining the occurrence of a malicious pattern according to whether a string on a network passes through the directional graph to traverse vertices along the edges in the directional graph; It features.
According to the intrusion detection method through the pattern search and the recording medium proposed by the present invention, the pattern of known attack techniques or malicious codes are defined as prohibited strings, and then efficient determination of a prohibited string for a given input string is performed. can do. In particular, in order to improve the performance of the decision algorithm, by generating the efficient direction graph by preprocessing the forbidden strings, the judgment can be completed by only one process of the graph regardless of the number of forbidden strings.

Description

패턴 검색을 통한 침입 탐지 방법{A METHOD FOR INTRUSION DETECTION BY PATTERN SEARCH}A METHOD FOR INTRUSION DETECTION BY PATTERN SEARCH}

본 발명은 패턴 검색을 통한 침입 탐지 방법에 관한 것으로서, 보다 구체적으로는 컴퓨터 시스템 또는 네트워크상에서 공격 패턴을 효율적으로 탐지하기 위한 패턴 검색을 통한 침입 탐지 방법에 관한 것이다.The present invention relates to an intrusion detection method through a pattern search, and more particularly, to an intrusion detection method through a pattern search for efficiently detecting attack patterns on a computer system or a network.

컴퓨터 및 인터넷의 보급과 함께 해킹(hacking) 및 크래킹(cracking) 등 불법적인 방법으로 시스템에 침입하고자 하는 시도도 증가하고 있으며 이러한 공격 방법들은 점차 지능화되고 다양해지고 있다. 이에 안티바이러스 소프트웨어(anti-virus software), 방화벽(firewall), 침입탐지시스템(intrusion detection system) 등 공격을 막기 위한 다양한 수단들이 개발되어 사용되고 있으며, 이들은 주로 알려진 악성 코드(malicious code)나 공격 기법들이 가지고 있는 패턴(pattern) 또는 규칙(rule)에 대한 데이터베이스를 구성하여 현재 네트워크를 오고 가는 패킷들이 이 데이터베이스에 저장된 패턴 또는 규칙에 해당하는지를 검사하는 방식을 많이 사용하고 있다.
With the spread of computers and the Internet, attempts to break into systems by illegal methods such as hacking and cracking are increasing, and these attack methods are becoming more intelligent and diversified. Therefore, various means for preventing attacks such as anti-virus software, firewall, intrusion detection system, etc. have been developed and used, and these are mainly known malicious codes or attack techniques. We use a lot of methods to construct a database of patterns or rules that we have to check whether packets going to and from the current network correspond to patterns or rules stored in this database.

즉, 현재 검사 대상인 패킷의 형태가 알려진 공격 패턴 또는 알려진 악성 코드와 유사할 경우 경고를 발생시키거나 해당 패킷을 제거하는 등 적절한 조치를 취하는 방식으로 동작하게 된다. 그러나 공격 기법이 점차 다양해지면서 검사 대상이 되는 패턴 데이터베이스의 크기는 커지는 데 반해 네트워크의 속도는 빨라지면서 단위 시간에 검사해야 하는 대상의 수는 기하급수적으로 증가하고 있다.
In other words, if the shape of the packet currently being inspected is similar to a known attack pattern or a known malicious code, it operates by taking appropriate measures such as generating a warning or removing the packet. However, as the attack techniques become more diverse, the pattern database to be examined increases in size, while the network speed increases, and the number of targets to be scanned in unit time increases exponentially.

특히 패턴을 검사하는 부분이 병목이 되어 전체 네트워크의 성능에 영향을 주어서는 안 되기 때문에 실시간으로 대량의 패턴을 검색할 수 있는 방법을 제공하는 것이 매우 중요하게 된다. 기존에 알려진 있는 패턴 검색 방법으로는 이러한 요구사항을 만족시키기가 어려우며, 성능을 만족시키기 위해 별도의 하드웨어를 장착하는 방법도 많이 이용되고 있으나 이는 비용 측면에서 문제점을 가지고 있다.In particular, it is very important to provide a method for retrieving a large amount of patterns in real time because the part of pattern checking should not be a bottleneck and affect the performance of the entire network. It is difficult to satisfy these requirements with the known pattern search method, and a lot of methods for attaching additional hardware to satisfy the performance are used, but this has a problem in terms of cost.

본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, 알려진 공격 기법 또는 악성 코드들이 가지는 패턴을 금지문자열들로 정의한 뒤, 주어진 입력 문자열에 대해 금지문자열 여부를 효율적으로 판단하는 것을 그 목적으로 한다. 특히 이러한 판단 알고리즘의 성능을 높이기 위해 금지문자열들을 전처리하여 효율적인 방향 그래프를 생성함으로써, 금지문자열의 수와 무관하게 이 그래프의 1회 처리만으로 판단이 완료되도록 하는 패턴 검색을 통한 침입 탐지 방법을 제공하는 것을 그 목적으로 한다.The present invention has been proposed to solve the above problems of the conventionally proposed methods, and after defining a pattern of known attack techniques or malicious codes as prohibited strings, efficiently determining whether the prohibited string is given to a given input string. It is for that purpose. In particular, in order to improve the performance of the decision algorithm, by generating the efficient direction graph by preprocessing the prohibited strings, it provides an intrusion detection method through the pattern search that allows the determination to be completed by only one processing of the graph regardless of the number of prohibited strings. For that purpose.

상기한 목적을 달성하기 위한 본 발명의 특징에 따른, 패턴 검색을 통한 침입 탐지 방법은,Intrusion detection method through a pattern search, according to a feature of the present invention for achieving the above object,

(1) 특정 문자열들을 금지문자열 집합으로 정의하는 단계;(1) defining specific strings as a prohibited string set;

(2) 정의된 상기 금지문자열 집합의 부분 문자열을 정점과 간선으로 표시하여 일반화접미사트리(Generalized Suffix Tree, 일반화접미사트리)를 생성하는 단계;(2) generating a generalized suffix tree by displaying the defined substring of the forbidden string set as vertices and edges;

(3) 상기 일반화접미사트리를 이용하여 상기 금지문자열 집합의 진접미사 집합으로 정점을 표시하고 간선으로 방향 구조를 나타내어, 상기 금지문자열이 포함되는 경우 다른 정점으로 이동하지 않는 방향 그래프를 생성하는 단계; 및(3) using the generalized suffix tree to display vertices as a set of true suffixes of the forbidden string set and a direction structure with an edge, thereby generating a direction graph that does not move to another vertex when the forbidden string is included; And

(4) 네트워크상의 문자열을 상기 방향 그래프에 통과시켜 상기 방향 그래프 내의 간선을 따라 정점들을 순회하는지에 여부에 따라 악성 패턴 발생을 판단하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
And (4) determining the occurrence of the malicious pattern according to whether or not the character string on the network is passed through the direction graph to traverse the vertices along the edge in the direction graph.

바람직하게는, 금지문자열 집합으로 정의하는 상기 단계는,Preferably, the step of defining a forbidden string set,

유한의 알파벳 집합에서 알려진 공격 패턴 및 악성 코드가 가지는 1개 이상의 문자들이 연결된 문자열을 상기 금지문자열의 집합으로 정의할 수 있다.
In the finite alphabet set, a string in which one or more characters of a known attack pattern and a malicious code are connected may be defined as the forbidden string set.

바람직하게는, 일반화접미사트리를 생성하는 상기 단계는,Preferably, the step of generating a generalized suffix tree,

개시 정점으로부터 단말 정점까지의 경로에 있는 간선의 문자들을 접합시킨 문자열이 상기 정의된 금지문자열 집합 문자열의 접미사와 같도록 표시하여, 상기 금지문자열 집합의 접미사 동일한 개수의 단말 정점이 선형 시간에 생성할 수 있다.
A character string concatenating the characters of the edges in the path from the starting vertex to the terminal vertex is the set of prohibited strings defined above. By displaying the same as the suffix of the character string, the same number of terminal vertices of the suffix of the forbidden string set may be generated in a linear time.

바람직하게는, 방향 그래프를 생성하는 상기 단계는,Preferably, the step of generating a direction graph,

상기 금지문자열 집합의 진접미사 집합으로 정점들을 표시하는 단계,Displaying vertices in the set of pseudo-suffixes of the forbidden string set,

상기 일반화접미사트리의 정점들의 최근접 접미사 조상 정점을 계산하는 단계,Calculating the nearest suffix ancestor vertices of the vertices of the generalized suffix tree;

상기 최근접 접미사 조상 정점의 문자열에 상기 알파벳 중 어느 한 문자로 접두사를 형성한 문자열과 동일한 기존 정점을 계산하는 단계, 및Calculating an existing vertex that is the same as a string formed by prefixing any character of the alphabet to the string of the nearest suffix ancestor vertex, and

상기 표시된 정점들 사이를 상기 계산된 정점으로부터 접두사 형성 전의 상기 최근접 접미사 조상 정점 방향으로 간선을 표시하는 단계를 포함할 수 있다.
And displaying an edge between the displayed vertices from the computed vertex in the direction of the nearest suffix ancestor vertex prior to prefix formation.

바람직하게는, 악성 패턴 발생을 판단하는 상기 단계는,Preferably, the step of determining the occurrence of a malicious pattern,

상기 네트워크상의 문자열을 상기 방향 그래프에 통과시킴으로써 상기 방향 그래프 내의 정점들을 순회하는 경우에는 상기 금지문자열 집합의 문자열들을 포함하지 않고, 다른 정점으로 더 이상 이동 불가능한 경우에는 상기 금지문자열 집합의 문자열들을 포함한 것으로 인식하여 악성 패턴 발생을 판단할 수 있다.The direction graph by passing a character string on the network through the direction graph When traversing the vertices within, the strings of the forbidden string set are not included, and when it is no longer possible to move to another vertex, the occurrence of the malicious pattern may be determined by including the strings of the forbidden string set.

본 발명에서 제안하고 있는, 패턴 검색을 통한 침입 탐지 방법 및 그 기록 매체에 따르면, 알려진 공격 기법 또는 악성 코드들이 가지는 패턴을 금지문자열들로 정의한 뒤, 주어진 입력 문자열에 대해 금지문자열 여부를 효율적으로 판단할 수 있다. 특히 ,이러한 판단 알고리즘의 성능을 높이기 위해 금지문자열들을 전처리하여 효율적인 방향 그래프를 생성함으로써, 금지문자열의 수와 무관하게 이 그래프의 1회 처리만으로 판단이 완료하는 효과가 있다.According to the intrusion detection method through the pattern search and the recording medium proposed by the present invention, the pattern of known attack techniques or malicious codes are defined as prohibited strings, and then efficient determination of a prohibited string for a given input string is performed. can do. In particular, in order to increase the performance of such a decision algorithm, by generating the efficient direction graph by preprocessing the forbidden strings, the decision is completed by only one process of the graph regardless of the number of forbidden strings.

도 1은 본 발명의 일실시예에 따른 패턴 검색을 통한 침입 탐지 방법의 블록도.
도 2는 본 발명의 일실시예에 따른 패턴 검색을 통한 침입 탐지 방법의 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 일반화접미사트리를 나타내는 도면.
도 3은 본 발명의 일실시예에 따른 패턴 검색을 통한 침입 탐지 방법의 방향 그래프를 생성하는 단계의 순서도.
도 4는 본 발명의 일실시예에 따른 패턴 검색을 통한 침입 탐지 방법의 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 방향 그래프를 나타내는 도면.
도 5는 본 발명의 일실시예에 따른 패턴 검색을 통한 침입 탐지 방법의 악성 패턴 발생을 판단하는 단계의 블록도.
1 is a block diagram of an intrusion detection method using a pattern search according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating a generalized suffix tree in which a prohibition string set of an intrusion detection method using pattern search according to an embodiment of the present invention is F = {aaa, aba, abb, bbb}. FIG.
Figure 3 is a flow chart of the step of generating a direction graph of the intrusion detection method through a pattern search according to an embodiment of the present invention.
4 is a diagram illustrating a direction graph in which a set of forbidden strings of an intrusion detection method through pattern search according to an embodiment of the present invention is F = {aaa, aba, abb, bbb};
5 is a block diagram of a step of determining the occurrence of a malicious pattern of the intrusion detection method through the pattern search according to an embodiment of the present invention.

이하에서는 첨부된 도면들을 참조하여, 본 발명에 따른 실시예에 대하여 상세하게 설명하기로 한다.
Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 패턴 검색을 통한 침입 탐지 방법의 블록도이다. 패턴 검색을 통한 침입 탐지 방법은, 도 1에 도시된 바와 같이, 특정 문자열들을 금지문자열 집합으로 정의하는 단계(200), 정의된 금지문자열 집합의 부분 문자열을 정점과 간선으로 표시하여 일반화접미사트리(Generalized Suffix Tree, 일반화접미사트리)를 생성하는 단계(300), 일반화접미사트리를 이용하여 금지문자열 집합의 진접미사 집합으로 정점을 표시하고 간선으로 방향 구조를 나타내어, 금지문자열이 포함되는 경우 다른 정점으로 이동하지 않는 방향 그래프를 생성하는 단계(400) 및 네트워크상의 문자열을 상기 방향 그래프에 통과시켜 방향 그래프 내의 간선을 따라 정점들을 순회하는지에 여부에 따라 악성 패턴 발생을 판단하는 단계(500)를 포함하는 것을 그 구성상의 특징으로 한다. 알려진 공격 기법 또는 악성 코드들이 가지는 패턴을 금지문자열들로 정의한 뒤, 주어진 입력 문자열에 대해 금지문자열 여부를 효율적으로 판단할 수 있다. 특히 이러한 판단 알고리즘의 성능을 높이기 위해 금지문자열들을 전처리하여 효율적인 방향 그래프를 생성함으로써, 금지문자열의 수와 무관하게 이 그래프의 1회 처리만으로 판단이 완료될 수 있다.
1 is a block diagram of an intrusion detection method using a pattern search according to an embodiment of the present invention. Intrusion detection method using a pattern search, as shown in Figure 1, defining a specific string as a set of prohibited string (200), the substring of the defined forbidden string set is displayed as a vertex and the edge to the generalized suffix tree ( Creating a generalized suffix tree (300), using the generalized suffix tree to mark the vertices as a set of suffixes of the forbidden string set, and to indicate the direction structure as the edges, and to include other forbidden strings. Generating a direction graph that does not move (400) and determining a malicious pattern occurrence according to whether to traverse the vertices along an edge in the direction graph by passing a string on the network through the direction graph; It is characterized by the configuration thereof. By defining the patterns of known attack techniques or malicious codes as prohibited strings, it is possible to efficiently determine whether a prohibited string is provided for a given input string. In particular, in order to improve the performance of the decision algorithm, by generating the efficient direction graph by preprocessing the forbidden strings, the determination can be completed by only one process of the graph regardless of the number of the forbidden strings.

금지문자열 집합으로 정의하는 단계(200)는, 도 1에 도시된 바와 같이, 유한의 알파벳 집합에서 알려진 공격 패턴 및 악성 코드가 가지는 1개 이상의 문자들이 연결된 문자열을 금지문자열의 집합으로 정의할 수 있다. 문자열은 유한 알파벳 집합 Σ에서 0개 이상의 문자들이 연결된 형태이다. 공백문자열은 ε로 나타낼 수 있다. 상수 크기 알파벳에서, 금지문자열로 구성된 집합 F ={f1, f2, …, fm}이 주어질 때, 문자열 x가 금지문자열 fi를 포함하지 않으면, x를 fi의 비상위문자열(nonsuperstring)이라 하고 만약 문자열 x가 F내의 모든 금지문자열 fi(1≤i≤m)를 포함하지 않으면, x를 F의 공통비상위문자열(common nonsuperstring)이라 한다. 또한, 문자열 x가 유한길이이고, F의 공통비상위문자열들 중 가장 긴 문자열이면, x를 F의 최장 공통 비상위문자열(the longest common nonsuperstring)이라 한다. 편의를 위해 입력으로 들어오는 금지문자열집합 F에 대해 다음을 만족함을 가정한다. 첫째, 금지문자열 fi는 다른 금지문자열 fj(i≠j)의 부분문자열이 아니다. 만약 상기 조건을 만족하지 않는다 해도 O(∥F∥) 시간인 선형 시간에 동일한 공통비상위문자열 집합을 생성하는 금지문자열집합을 생성할 수 있다.The defining step 200 may be defined as a set of forbidden strings, as shown in FIG. 1, as a set of forbidden strings, as shown in FIG. . A string is formed by concatenating zero or more characters from the finite alphabet set Σ. An empty string can be represented by ε. In constant size alphabets, a set of forbidden strings F = {f1, f2,... , fm}, if the string x does not contain the forbidden string fi, then x is a nonsuperstring of fi and if the string x does not contain all the forbidden strings fi (1≤i≤m) in F Otherwise, x is called the common nonsuperstring of F. Also, if the string x is of finite length and the longest string of the common emergency strings of F, then x is called the longest common nonsuperstring of F. For convenience, it is assumed that the following is satisfied for the forbidden string set F coming into the input. First, the forbidden string fi is not a substring of another forbidden string fj (i ≠ j). If the above condition is not satisfied, a prohibited string set may be generated to generate the same common emergency string set in a linear time which is O (∥F∥) time.

도 2는 본 발명의 일실시예에 따른 패턴 검색을 통한 침입 탐지 방법의 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 일반화접미사트리를 나타내는 도면이다. 일반화접미사트리(Generalized Suffix Tree, 일반화접미사트리)를 생성하는 단계(300)는, 도 2에 도시된 바와 같이, 개시 정점으로부터 단말 정점까지의 경로에 있는 간선의 문자들을 접합시킨 문자열이 정의된 금지문자열 집합 문자열의 접미사와 같도록 표시하여, 금지문자열 집합의 접미사 동일한 개수의 단말 정점이 선형 시간에 생성할 수 있다. 두 문자열 α,β의 연결(concatennation)을 αβ 라고 표기하고 문자열 α의 길이를 |α|로 표기하고 α의 i번째 문자는 α[i]로 나타내기로 하는 경우, 공백문자열의 길이는 |ε|=0이다. 문자열 β가 α[i]α[i+1]…α[j]의 연결이라 할 때, β를 α[i…j]라 표기하고, β를 α의 부분문자열(substring)이라 한다. 반대로 α를 β의 상위문자열(superstring)이라 한다. 문자열 α에서 i≤|α|일 때 α[i…j]를 α의 접두사(prefix)라 하고, i<|α|일 때 α[i…j]를 α의 진접두사(proper prefix)라 한다. 유사하게 i≥1 일 때 α[i…|α|]를 α의 접미사(suffix)라 하고, i>1 일 때 α[i…|α|]를 α의 진접미사(proper suffix)라 한다.
FIG. 2 is a diagram illustrating a generalized suffix tree in which a prohibition string set is F = {aaa, aba, abb, bbb} of the intrusion detection method through pattern search according to an embodiment of the present invention. Generating a generalized suffix tree (300), as shown in Fig. 2, is a prohibition in which a character string concatenating the characters of the edges in the path from the starting vertex to the terminal vertex, as shown in FIG. String set By displaying the same as the suffix of the string, the same number of terminal vertices of the suffix of the forbidden string set can be generated in a linear time. When the concatennation of two strings α and β is denoted by αβ, the length of the string α is denoted by | α |, and the i-th character of α is denoted by α [i], the length of the empty string is | ε | = 0. The character string β is alpha [i] alpha [i + 1]... When [alpha] [j] is connected, β is represented by α [i…]. j] and β is called a substring of α. In contrast, α is called the superstring of β. Α [i…] when i ≦ | α | j] is called the prefix of α, and when i <| α | j] is called the prefix prefix of α. Similarly, when i≥1, α [i... | α |] is referred to as the suffix of α, and when i> 1, α [i... | α |] is called the proper suffix of α.

단말 정점에 있는 숫자는 접미사의 인덱스이고, 간선에 표시된 문자열은 각 간선이 나타내는 부분 문자열로서 접미사 트리의 단말 정점은 각 접미사와 일대일 대응을 이룬다. 따라서 단말 정점의 개수는 접미사 개수의 수와 같다. 그리고 모든 내부 정점은 두 개 이상의 자식을 가지므로 전체 정점의 수는 접미사 개수의 2배를 넘지 않는다. 그리고 각 정점은 문자열을 표시하기 위해 시작과 끝 위치를 저장하므로 접미사 트리를 유지하기 위한 저장 공간은 문자열의 길이에 비례한다. 그러므로 일반화접미사트리는 선형 시간에 생성될 수 있으므로, 일반화접미사트리를 생성하는 단계(300)는 O(∥F∥)에 완료할 수 있다.The number at the terminal vertex is the index of the suffix, and the string displayed on the edge is a substring represented by each edge, and the terminal vertex of the suffix tree has one-to-one correspondence with each suffix. Thus, the number of terminal vertices is equal to the number of suffixes. And since every internal vertex has more than one child, the total number of vertices is no more than twice the number of suffixes. Each vertex stores its start and end positions to represent the string, so the storage space for holding the suffix tree is proportional to the length of the string. Therefore, since the generalized suffix tree may be generated in linear time, the step 300 of generating the generalized suffix tree may be completed at O (∥F∥).

도 3은 본 발명의 일실시예에 따른 패턴 검색을 통한 침입 탐지 방법의 방향 그래프를 생성하는 단계의 순서도이고 도 4는 본 발명의 일실시예에 따른 패턴 검색을 통한 침입 탐지 방법의 금지 문자열 집합이 F={aaa, aba, abb, bbb}인 방향 그래프를 나타내는 도면이다. 방향 그래프를 생성하는 단계(400)는, 도 3 및 4에 도시된 바와 같이, 금지문자열 집합의 진접미사 집합으로 정점들을 표시하는 단계(410), 일반화접미사트리의 정점들의 최근접 접미사 조상 정점을 계산하는 단계(420), 최근접 접미사 조상 정점의 문자열에 알파벳 중 어느 한 문자로 접두사를 형성한 문자열과 동일한 기존 정점을 계산하는 단계(430) 및 표시된 정점들 사이를 계산된 정점으로부터 접두사 형성 전의 최근접 접미사 조상 정점 방향으로 간선을 표시하는 단계(440)를 포함할 수 있다.
3 is a flowchart of a step of generating a direction graph of the intrusion detection method through the pattern search according to an embodiment of the present invention and FIG. 4 is a set of prohibition strings of the intrusion detection method through the pattern search according to an embodiment of the present invention. It is a figure which shows the direction graph which F = {aaa, aba, abb, bbb}. In step 400 of generating a direction graph, as shown in Figs. Calculating step 420, calculating an existing vertex that is identical to a string that is prefixed with any letter of the alphabet in the string of the nearest suffix ancestor vertex, and between the displayed vertices from the calculated vertex before the prefix formation. And displaying the edge in the direction of the nearest suffix ancestor apex (440).

금지문자열 집합의 진접미사 집합으로 정점들을 표시하는 단계(410)는 F내의 모든 금지문자열 fi(1≤i≤m)의 진접미사 집합을 S라 하고 S에 n개의 서로 다른 원소가 있다고 가정하면 즉, S={s1, …, sn}이고 정점 집합(the set of vertices) V는 각 si∈S(1≤i≤n)에 대해, 새로운 정점 vi가 대응된다. 따라서 정점 집합 V와 진접미사 집합 S는 1:1 대응된다.
Marking the vertices as a set of forbidden strings of the forbidden string set 410 assumes that the set of all of the forbidden strings of forbidden string fi (1 ≦ i ≦ m) in F is S and that there are n different elements in S; , S = {s 1 ,.. , s n } and the set of vertices V corresponds to a new vertex vi for each s i ∈S (1 ≦ i ≦ n). Therefore, the vertex set V and the pseudo-similar set S correspond to 1: 1.

일반화접미사트리의 정점들의 최근접 접미사 조상 정점을 계산하는 단계(420)는 일반화접미사트리에서 정점 x가 L(x)∈S∪F를 만족하면 정점 x를 접미사 정점(suffix-node)라 한다. 따라서 x가 접미사 정점이면 x의 자식(leaf) 정점 y에 대해 label(x,y)=$를 만족한다. 이때 리프 y를 x의 접미사 정점(suffix-node)이라 한다. 정점 x의 최근접 접미사 조상 (nearest suffix-ancestor) z는, x 조상들 중 접미사 정점을 만족하는 가장 가까운 정점을 의미한다.
Computing the closest suffix ancestor vertexes of the vertices of the generalized suffix tree is vertex x in the generalized suffix tree. When L (x) ∈S∪F is satisfied, vertex x is called a suffix-node. Thus, if x is a suffix vertex, then label (x, y) = $ is satisfied for the leaf vertex y of x. The leaf y is called the suffix-node of x. The nearest suffix-ancestor z of vertex x means the nearest vertex that satisfies the suffix vertex among the x ancestors.

최근접 접미사 조상 정점의 문자열에 알파벳 중 어느 한 문자로 접두사를 형성한 문자열과 동일한 기존 정점을 계산하는 단계(430)는 각 리프 li와 각 문자 σ(∈Σ)의 쌍에 대해 link(li,σ)를 다음과 같이 정의한다. 문자열 σstr(li)의 접두사중 S∪F에 속하는 최장 접두사를 α라 할 때, str(lj)=α를 만족하는 리프 lj를 계산할 수 있다. 일반화접미사트리는 S∪F의 모든 문자열을 나타내므로 lj는 항상 존재 한다. 이때, link(li,σ)=lj 로 정의된다.
Computing an existing vertex that is identical to a string prefixed with any one of the letters in the string of the nearest suffix ancestor vertex, step 430, links (l) for each pair of leaves l i and each letter σ (∈Σ). i , σ) is defined as String Assuming that the longest prefix belonging to S ∪ F of σstr (l i ) is α, a leaf l j satisfying str (l j ) = α can be calculated. The generalized suffix tree represents all strings in S∪F, so l j is always present. At this time, link (l i , σ) = l j is defined.

표시된 정점들 사이를 계산된 정점으로부터 접두사 형성 전의 최근접 접미사 조상 정점 방향으로 간선을 표시하는 단계(440)의 간선 집합(the set of edges) E는 우선 각 si∈S(1≤i≤n)에 대해, Pi σ를 다음과 같이 정의한다. Pi σ={y|y∈S∪F 이고 y는 σsi의 접두사이다.} 또한, Pi σ의 원소 중 가장 긴 문자열이 sj(∈S)일 때, 대응되는 정점 vj에서 vi로 향하는 간선을 정의한다. 즉, 임의의 두 정점의 쌍 <vj, vi>에 대해서, vj에서 vi로 가는 간선이 존재한다 함은, Pi sj [1]의 원소 중 가장 긴 문자열이 sj인 것을 의미한다. 또한 Pi σ의 원소 중 가장 긴 문자열이 F에 속하라 때, 어떠한 간선도 정의되지 않는다. 각 si∈S와 σ∈Σ에 대해, 하나의 간선만 정의되므로, 각 정점마다 기껏해야 |Σ| 만큼의 들어오는 간선만 정의된다. 따라서 상수 크기 알파벳에서, 총 간선의 수는 O(∥F∥)에 바운드 된다.
The set of edges E in step 440 of displaying the edges between the displayed vertices from the computed vertices to the nearest suffix ancestor vertex direction prior to the formation of a prefix are first defined for each si ∈ S (1 ≦ i ≦ n). P i σ is defined as follows. P i σ = {y | y∈S∪F and y is the prefix of σs i } Also, when the longest string of the elements of P i σ is s j (∈S), the corresponding vertices v j to v Define the edge leading to i . That is, pairs of any two vertices <v j, v i> a means for, v should be a thin trunk exists in j in v i is the longest string of the element P i sj [1] the s j do. Also, when the longest string of the elements of P i σ belongs to F, no edge is defined. For each si∈S and σ∈Σ, only one edge is defined, so for each vertex at most | Σ | Only as many incoming edges are defined. Thus, in constant size alphabets, the total number of edges is bound to O (∥F∥).

도 5는 본 발명의 일실시예에 따른 패턴 검색을 통한 침입 탐지 방법의 악성 패턴 발생을 판단하는 단계의 블록도이다. 악성 패턴 발생을 판단하는 단계(500)는, 도 5에 도시된 바와 같이, 네트워크상의 문자열을 방향 그래프에 통과시킴으로써 방향 그래프 내의 정점들을 순회(510)하는 경우에는 금지문자열 집합의 문자열들을 포함하지 않고, 다른 정점으로 더 이상 이동 불가능(520)한 경우에는 금지문자열 집합의 문자열들을 포함한 것으로 인식하여 악성 패턴 발생을 판단할 수 있다. 정의된 금지문자열들의 x 패킷(문자열) 전체를 방향 그래프에 통과시킨다. 방향 그래프의 정의와 특성에 의해 문자열이 방향 그래프 내의 간선을 따라 정점들을 순회하고 있다면 그 경로에 존재하는 간선들의 문자들을 차례로 연결하여 얻어진 문자열은 금지문자열들을 포함하지 않고 있다. 그러나 패킷에 금지패턴이 포함되어 있다면 그 패턴이 발생하는 순간 방향 그래프에서는 다른 정점으로 이동할 수 없게 되며 이에 따라 금지패턴이 발생했음을 인지할 수 있다.
5 is a block diagram of a step of determining the occurrence of a malicious pattern of the intrusion detection method through the pattern search according to an embodiment of the present invention. Determining the occurrence of the malicious pattern 500, as shown in Figure 5, the direction graph by passing a character string on the network through the direction graph In the case of traversing the vertexes within 510, the strings of the forbidden string set are not included, and if it is impossible to move to another vertex 520, the vertices may be recognized as including the strings of the forbidden string set. have. Pass the entire x packet (string) of defined prohibited strings to the direction graph. The direction graph is a string by the definition and characteristics of the direction graph. If you are traversing vertices along the edges in the string, the string obtained by concatenating the characters of the edges in the path does not contain any forbidden strings. However, if a packet contains a prohibition pattern, it cannot be moved to another vertex in the direction graph at the moment that the pattern is generated.

이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.The present invention described above may be variously modified or applied by those skilled in the art, and the scope of the technical idea according to the present invention should be defined by the following claims.

200: 금지문자열 정의
300: 일반화접미사트리 생성
400: 방향 그래프 생성
410: 진접미사 집합으로 정점표시
420: 최근접 접미사 조상 정점 계산
430: 접두사 형성 문자열과 동일한 기존 정점 계산
440: 계산 정점으로부터 최근접 접미사 조상 정점으로 간선 표시
500: 악성패턴 발생 판단
510: 네트워크 상의 문자열
520: 방향 그래프 순회
530: 방향 그래프 이동 불가능
200: Define prohibited string
300: Create generalized suffix tree
400: Create Direction Graph
410: vertex as a set of close miss
420: Calculate nearest suffix ancestor vertexes
430: Calculate existing vertices equal to prefix-formed string
440: Show edges from computed vertices to nearest suffix ancestor vertices
500: Determination of malicious pattern occurrence
510: string on the network
520: directional graph traversal
530: Cannot move direction graph

Claims (5)

패턴 검색을 통한 침입 탐지 방법으로서,

(1) 특정 문자열들을 금지문자열 집합으로 정의하는 단계;
(2) 정의된 상기 금지문자열 집합의 부분 문자열을 정점과 간선으로 표시하여 일반화접미사트리(Generalized Suffix Tree, 일반화접미사트리)를 생성하는 단계;
(3) 상기 일반화접미사트리를 이용하여 상기 금지문자열 집합의 진접미사 집합으로 정점을 표시하고 간선으로 방향 구조를 나타내어, 상기 금지문자열이 포함되는 경우 다른 정점으로 이동하지 않는 방향 그래프를 생성하는 단계; 및
(4) 네트워크상의 문자열을 상기 방향 그래프에 통과시켜 상기 방향 그래프 내의 간선을 따라 정점들을 순회하는지에 여부에 따라 악성 패턴 발생을 판단하는 단계

를 포함하는 것을 특징으로 하는, 패턴 검색을 통한 침입 탐지 방법.
Intrusion detection method using pattern search,

(1) defining specific strings as a prohibited string set;
(2) generating a generalized suffix tree by displaying the defined substring of the forbidden string set as vertices and edges;
(3) using the generalized suffix tree to display vertices as a set of true suffixes of the forbidden string set and to indicate a direction structure with an edge, thereby generating a direction graph that does not move to another vertex when the forbidden string is included; And
(4) determining the occurrence of a malicious pattern according to whether or not a character string on a network is passed through the direction graph to traverse vertices along an edge in the direction graph.

Intrusion detection method through a pattern search, characterized in that it comprises a.
제1항에 있어서, 금지문자열 집합으로 정의하는 상기 단계는,
유한의 알파벳 집합에서 알려진 공격 패턴 및 악성 코드가 가지는 1개 이상의 문자들이 연결된 문자열을 상기 금지문자열의 집합으로 정의하는 것을 특징으로 하는, 패턴 검색을 통한 침입 탐지 방법.
The method of claim 1, wherein the defining of the forbidden string set includes:
Intrusion detection method using a pattern search, characterized in that the character string of the at least one character of the attack pattern and the malicious code in a set of finite alphabet set is defined as the set of the forbidden string.
제1항에 있어서, 일반화접미사트리를 생성하는 상기 단계는,
개시 정점으로부터 단말 정점까지의 경로에 있는 간선의 문자들을 접합시킨 문자열이 상기 정의된 금지문자열 집합 문자열의 접미사와 같도록 표시하여, 상기 금지문자열 집합의 접미사 동일한 개수의 단말 정점이 선형 시간에 생성하는 것을 특징으로 하는, 패턴 검색을 통한 침입 탐지 방법.
The method of claim 1, wherein generating a generalized suffix tree comprises:
A character string concatenating the characters of the edges in the path from the starting vertex to the terminal vertex is the set of prohibited strings defined above. Displaying the same as the suffix of the character string, the same number of terminal vertices of the suffix of the forbidden string set, characterized in that to generate a linear time, intrusion detection method through the pattern search.
제1항에 있어서, 방향 그래프를 생성하는 상기 단계는,
상기 금지문자열 집합의 진접미사 집합으로 정점들을 표시하는 단계;
상기 일반화접미사트리의 정점들의 최근접 접미사 조상 정점을 계산하는 단계;
상기 최근접 접미사 조상 정점의 문자열에 상기 알파벳 중 어느 한 문자로 접두사를 형성한 문자열과 동일한 기존 정점을 계산하는 단계; 및
상기 표시된 정점들 사이를 상기 계산된 정점으로부터 접두사 형성전의 상기 최근접 접미사 조상 정점 방향으로 간선을 표시하는 단계를 포함하는 것을 특징으로 하는, 패턴 검색을 통한 침입 탐지 방법.
The method of claim 1, wherein generating the direction graph comprises:
Displaying vertices in the set of pseudo-suffixes of the forbidden string set;
Calculating the nearest suffix ancestor vertices of the vertices of the generalized suffix tree;
Calculating an existing vertex that is the same as a string formed by prefixing any character of the alphabet to the string of the nearest suffix ancestor vertex; And
And displaying an edge between the displayed vertices from the calculated vertex in the direction of the nearest suffix ancestor vertex prior to prefix formation.
제1항에 있어서, 악성 패턴 발생을 판단하는 상기 단계는,
상기 네트워크상의 문자열을 상기 방향 그래프에 통과시킴으로써 상기 방향 그래프 내의 정점들을 순회하는 경우에는 상기 금지문자열 집합의 문자열들을 포함하지 않고, 다른 정점으로 더 이상 이동 불가능한 경우에는 상기 금지문자열 집합의 문자열들을 포함한 것으로 인식하여 악성 패턴 발생을 판단하는 것을 특징으로 하는, 패턴 검색을 통한 침입 탐지 방법.
The method of claim 1, wherein the determining of the occurrence of the malignant pattern comprises:
The direction graph by passing a character string on the network through the direction graph When circulating the vertices in the pattern does not include the string of the set of prohibited string, if it is impossible to move to another vertex, it is recognized as including the string of the forbidden string set pattern, characterized in that determining the occurrence of a malicious pattern How to detect intrusions by searching.
KR1020100017807A 2010-02-26 2010-02-26 A method for intrusion detection by pattern search KR101091204B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100017807A KR101091204B1 (en) 2010-02-26 2010-02-26 A method for intrusion detection by pattern search

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100017807A KR101091204B1 (en) 2010-02-26 2010-02-26 A method for intrusion detection by pattern search

Publications (2)

Publication Number Publication Date
KR20110098269A true KR20110098269A (en) 2011-09-01
KR101091204B1 KR101091204B1 (en) 2011-12-09

Family

ID=44951849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100017807A KR101091204B1 (en) 2010-02-26 2010-02-26 A method for intrusion detection by pattern search

Country Status (1)

Country Link
KR (1) KR101091204B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436874B1 (en) * 2013-10-18 2014-09-11 한국전자통신연구원 Apparatus and method for improving detection performance of intrusion detection system
KR101537996B1 (en) * 2012-10-17 2015-07-23 한국전자통신연구원 Apparatus and method for intrusion detection with traffic condition load balancer between cpu and gpu
KR20150122534A (en) * 2014-04-23 2015-11-02 삼성전자주식회사 Method for analysing prgoram code of electonic device and electronic device
US9342366B2 (en) 2012-10-17 2016-05-17 Electronics And Telecommunications Research Institute Intrusion detection apparatus and method using load balancer responsive to traffic conditions between central processing unit and graphics processing unit
KR20170002115A (en) * 2015-06-29 2017-01-06 한양대학교 산학협력단 Method and server for generating suffix tree, method and server for detecting malicious code with using suffix tree

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102020673B1 (en) 2013-05-03 2019-09-11 삼성전자주식회사 Method and Apparatus for mining temporal pattern

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7114185B2 (en) * 2001-12-26 2006-09-26 Mcafee, Inc. Identifying malware containing computer files using embedded text

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101537996B1 (en) * 2012-10-17 2015-07-23 한국전자통신연구원 Apparatus and method for intrusion detection with traffic condition load balancer between cpu and gpu
US9342366B2 (en) 2012-10-17 2016-05-17 Electronics And Telecommunications Research Institute Intrusion detection apparatus and method using load balancer responsive to traffic conditions between central processing unit and graphics processing unit
KR101436874B1 (en) * 2013-10-18 2014-09-11 한국전자통신연구원 Apparatus and method for improving detection performance of intrusion detection system
US9275224B2 (en) 2013-10-18 2016-03-01 Electronics And Telecommunications Research Institute Apparatus and method for improving detection performance of intrusion detection system
KR20150122534A (en) * 2014-04-23 2015-11-02 삼성전자주식회사 Method for analysing prgoram code of electonic device and electronic device
KR20170002115A (en) * 2015-06-29 2017-01-06 한양대학교 산학협력단 Method and server for generating suffix tree, method and server for detecting malicious code with using suffix tree

Also Published As

Publication number Publication date
KR101091204B1 (en) 2011-12-09

Similar Documents

Publication Publication Date Title
Le et al. URLNet: Learning a URL representation with deep learning for malicious URL detection
KR101091204B1 (en) A method for intrusion detection by pattern search
US9514246B2 (en) Anchored patterns
US9858051B2 (en) Regex compiler
Jiang et al. A deep learning based online malicious URL and DNS detection scheme
Liu et al. A fast string-matching algorithm for network processor-based intrusion detection system
US10176187B2 (en) Method and apparatus for generating a plurality of indexed data fields
Najam et al. Speculative parallel pattern matching using stride-k DFA for deep packet inspection
Aldwairi et al. Exhaust: Optimizing wu-manber pattern matching for intrusion detection using bloom filters
Abbasi et al. Deep learning-based feature extraction and optimizing pattern matching for intrusion detection using finite state machine
Meng et al. Design of cloud-based parallel exclusive signature matching model in intrusion detection
Abouollo et al. Detecting malicious user accounts using Canvas Fingerprint
Weng et al. Deep packet pre-filtering and finite state encoding for adaptive intrusion detection system
Upchurch et al. First byte: Force-based clustering of filtered block N-grams to detect code reuse in malicious software
Geethanjali A multi-fusion pattern matching algorithm for signature-based network intrusion detection system
Kozik et al. The http content segmentation method combined with adaboost classifier for web-layer anomaly detection system
CN114024701A (en) Domain name detection method, device and communication system
Sheu et al. Hierarchical multi-pattern matching algorithm for network content inspection
Liu et al. Fast and compact regular expression matching using character substitution
Haghighat et al. Hes: highly efficient and scalable technique for matching regex patterns
Mendivelso et al. Finding overlaps within regular expressions with variable-length gaps
Zhang et al. A fast regular expressions matching algorithm for nids
Lee et al. Enhancement of Wu-Manber multi-pattern matching algorithm for intrusion detection system
Manjunath et al. Fast Pattern Matching Approach for Intrusion Detection Systems
CN116668074A (en) Method, equipment, medium and system for detecting malicious PDF (portable document format) file

Legal Events

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

Payment date: 20140818

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160912

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170829

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee