KR101796529B1 - 오토마타 기반 패킷 필터 시스템 및 그 방법 - Google Patents

오토마타 기반 패킷 필터 시스템 및 그 방법 Download PDF

Info

Publication number
KR101796529B1
KR101796529B1 KR1020160031005A KR20160031005A KR101796529B1 KR 101796529 B1 KR101796529 B1 KR 101796529B1 KR 1020160031005 A KR1020160031005 A KR 1020160031005A KR 20160031005 A KR20160031005 A KR 20160031005A KR 101796529 B1 KR101796529 B1 KR 101796529B1
Authority
KR
South Korea
Prior art keywords
packet
information
regular expression
unit
policy
Prior art date
Application number
KR1020160031005A
Other languages
English (en)
Other versions
KR20170107266A (ko
Inventor
진용식
황지윤
Original Assignee
주식회사 윈스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 윈스 filed Critical 주식회사 윈스
Priority to KR1020160031005A priority Critical patent/KR101796529B1/ko
Publication of KR20170107266A publication Critical patent/KR20170107266A/ko
Application granted granted Critical
Publication of KR101796529B1 publication Critical patent/KR101796529B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 오토마타 기반 패킷 필터 시스템 및 그 방법에 관한 것이다.
또한, 본 발명에 따르면, 패킷 필터 조건을 명시한 복수 개의 정책을 저장하고 있는 정책 데이터베이스; 상기 정책 데이터베이스로부터 다수의 튜플에 대한 각각의 정책을 입력받아 대응하는 정규식으로 치환하는 정규식 치환 모듈; 네트워크 인터페이스에서 패킷을 수신하여, 각 헤더별 정보를 수집하여 패킷 정보 문자열을 생성하는 문자 치환 모듈; 상기 정규식 치환 모듈에서 정규식을 입력받아 유한 상태 머신을 형성하고, 상기 문자 치환 모듈에서 입력받은 패킷 정보 문자열을 유한 상태 머신을 사용하여 매칭하는 오토마타부; 및 상기 오토마타부로부터 매칭된 패킷 정보를 수신받아 트래픽 제어를 수행하는 패킷 제어부를 포함하는 오토마타 기반 패킷 필터 시스템 및 방법을 제공하여 필터 연산 비용을 감소시킨다.

Description

오토마타 기반 패킷 필터 시스템 및 그 방법{Packet filtering system based on automata and method thereof}
본 발명은 오토마타 기반 패킷 필터 시스템 및 그 방법에 관한 것이다.
네트워크 장비에서 패킷에서 추출 가능한 정보로서 패킷을 분류하는 기준으로 방향, 아이피, 포트, 프로토콜, 플래그 정보가 있다.
위 정보는 패킷의 페이로드에 특정 공격 패턴이 존재하는 경우에 이를 트래픽에서 제외시키는 기준으로서 사용되기도 하고, 그 자체로 패킷의 서비스를 구분하는 용도로 사용되기도 한다.
종래에 패킷을 필터링하는 방안으로서 위 다섯 가지의 정보를 5 단계의 튜플로 구성하여 5 튜플의 조합으로 필터를 구성하였다.
이러한 필터는 고정된 것이 아닌 네트워크 장비를 운용하는 트래픽망의 특성에 따라 사용자가 정의하여 구성할 수 있다.
여러 개의 필터 조합이 네트워크 장비의 메모리에 로드되어 입력된 패킷 별 필터 기준에 부합하는지 5 단계의 검색을 거쳐 분류된다.
5 튜플의 조합은 하나의 필터 조건을 정의하기 때문에 검색 순서에 따라 상위 튜플은 하위 튜플의 정보를 포함하는 큰 트리 구조를 구성한다.
그러나 각 튜플의 성질은 병렬적이기 때문에 종래의 필터 구성 방식에서는 방향별, 아이피별, 포트별, 프로토콜별, 플래그별 검색 엔진이 존재하였으며, 해당 튜플의 검색에 가장 효율적으로 알려진 자료구조를 적용하여 검색 엔진을 구성하였다.
디코딩된 패킷의 정보와의 일치 여부를 검색하는 기능은 프로그램 언어의 비교 연산으로 구현이 가능하며 헤더 매칭, 프로토콜 분석 기술 등에서 널리 사용하고 있는 방식이다.
이와 관련하여 종래의 필터 검색 방식은 병렬성을 띄는 각 튜플이 다시 종속적으로 조합되어야 하기 때문에 하나의 필터를 생성하였을 때 다음과 같은 작업이 필요하다.
첫째는 전체 필터를 나타내는 메인 트리 구조에 확장되는 데이터 공간을 추가로 확보하고 둘째는 튜플에 맞는 자료구조 형으로 노드를 추가해야 한다.
프로토콜 및 플래그와 같은 낮은 단계의 튜플은 추가 시에 리소스적 영향이 적은 편이나, IP 또는 포트와 같은 상위 튜플이 추가되는 경우에는 트리 구조의 특성 상 큰 브랜치가 발생하게 된다.
또한 필터를 구성하는 각각의 매칭 정보는 정수 자료형이나 문자열로 구성되어 있어 패킷에서 추출한 데이터와 비교하는 연산이 필요하다.
국내공개특허번호 2014-0051914호 국내특허등록번호 10-1583979호
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 패킷을 사용자 정의에 따라 트래픽 방향, 종단 IP, 포트, 프로토콜, 플래그 정보를 기준으로 필터링을 실시할 때 병렬 형태의 조건들에 대해서 효율적인 탐색 노드를 구성하여 고성능 패킷 탐색이 가능하도록 한 오토마타 기반 패킷 필터 시스템 및 그 방법을 제공하는 데 있다.
본 발명의 시스템은 패킷 필터 조건을 명시한 복수 개의 정책을 저장하고 있는 정책 데이터베이스; 상기 정책 데이터베이스로부터 다수의 튜플에 대한 각각의 정책을 입력받아 대응하는 정규식으로 치환하는 정규식 치환 모듈; 네트워크 인터페이스에서 패킷을 수신하여, 각 헤더별 정보를 수집하여 패킷 정보 문자열을 생성하는 문자 치환 모듈; 상기 정규식 치환 모듈에서 정규식을 입력받아 유한 상태 머신을 형성하고, 상기 문자 치환 모듈에서 입력받은 패킷 정보 문자열을 유한 상태 머신을 사용하여 매칭하는 오토마타부; 및 상기 오토마타부로부터 매칭된 패킷 정보를 수신받아 트래픽 제어를 수행하는 패킷 제어부를 포함한다.
또한, 본 발명의 시스템의 상기 정규식 치환 모듈은 상기 정책 데이터베이스로부터 저장하고 있는 정책을 메모리에 로드하는 정책 수신부; 상기 정책 수신부로부터 상기 정책 데이터베이스로부터 로드한 정책을 받아 각 조건을 판별하여 튜플에 대하여 조건을 확인하는 정책 분석부; 및 상기 정책 분석부에서 확인한 조건을 사전 정의한 정규식 템플릿과 매칭하여 각 조건을 정규식으로 나타내는 정규식 치환부를 포함한다.
또한, 본 발명의 시스템의 상기 문자 치환 모듈은 네트워크 인터페이스로부터 개별 패킷을 수신하는 패킷 수신부; 상기 패킷 수신부가 수신한 패킷을 디코딩하여 패킷의 각 헤더별 정보를 수집하는 패킷 분석부; 및 상기 패킷 분석부에서 수집된 각 헤더별 정보를 문자열 형태로 변환하여 패킷 정보 문자열을 생성하는 문자 치환부를 포함한다.
또한, 본 발명의 시스템의 상기 튜플은 트래픽 방향, 맥 주소, 종단 IP, 포트, 프로토콜 및 플래그 정보중 적어도 하나 이상을 포함한다.
또한, 본 발명의 시스템의 상기 헤더별 정보는 이더넷 계층 구조에 따라 이더넷(Ethernet) 헤더, 아이피(IP) 헤더 및 프로토콜(Protocol) 헤더를 포함한다.
한편, 본 발명의 방법은 (A) 정규식 치환 모듈이 정책 데이터베이스로부터 다수의 튜플에 대한 각각의 정책을 입력받아 대응하는 정규식으로 치환하는 단계; (B) 오토마타부가 상기 정규식 치환 모듈에서 정규식을 입력받아 유한 상태 머신을 형성하는 단계; (C) 문자 치환 모듈이 네트워크 인터페이스에서 패킷을 수신하여, 각 헤더별 정보를 수집하여 패킷 정보 문자열을 생성하는 단계; (D) 오토마타부가 상기 문자 치환 모듈에서 입력받은 패킷 정보 문자열을 유한 상태 머신을 사용하여 매칭하는 단계; 및 (E) 패킷 제어부가 상기 오토마타부로부터 매칭된 패킷 정보를 수신받아 트래픽 제어를 수행하는 단계를 포함한다.
또한, 본 발명의 방법의 상기 (A) 단계는 (A-1) 정책 수신부가 상기 정책 데이터베이스로부터 저장하고 있는 정책을 메모리에 로드하는 단계; (A-2) 정책 분석부가 상기 정책 수신부로부터 상기 정책 데이터베이스로부터 로드한 정책을 받아 각 조건을 판별하여 튜플에 대하여 조건을 확인하는 단계; 및 (A-3) 정규식 치환부가 상기 정책 분석부에서 확인한 조건을 사전 정의한 정규식 템플릿과 매칭하여 각 조건을 정규식으로 나타내는 단계를 포함한다.
또한, 본 발명의 방법의 상기 (A-3) 단계는 상기 정규식 치환부가 정규식 템플릿을 정규식 템플릿을 사용해서 튜플 단위로 정규식 변환을 수행하여 부분 정규식을 생성하는 단계; 상기 정규식 치환부는 튜플이 계속해서 존재하는 경우에 상기 부분 정규식을 생성하는 단계부터 반복하여 수행하는 단계; 및 상기 정규식 치환부는 대상이 되는 모든 튜플에 대해 정규식이 정해진 경우 이를 조합하여 하나의 정규식으로 생성하는 단계를 포함한다.
또한, 본 발명의 방법의 상기 (C) 단계는 (C-1) 패킷 수신부가 네트워크 인터페이스로부터 개별 패킷을 수신하는 단계; (C-2) 패킷 분석부가 상기 패킷 수신부가 수신한 패킷을 디코딩하여 패킷의 각 헤더별 정보를 수집하는 단계; 및 (C-3) 문자 치환부가 상기 패킷 분석부에서 수집된 각 헤더별 정보를 문자열 형태로 변환하여 패킷 정보 문자열을 생성하는 단계를 포함한다.
또한, 본 발명의 방법의 상기 (C-2) 단계는 상기 패킷 분석부가 패킷 정보를 이더넷 계층 구조에 따라 이더넷(Ethernet) 헤더, 아이피(IP) 헤더, 프로토콜(Protocol) 헤더로 분류하는 단계; 상기 패킷 분석부가 각 헤더에 정의된 값을 파싱하는 단계; 상기 패킷 분석부가 헤더별 파싱된 정보 중 필터에 정의된 튜플에 해당하는 정보를 판별하는 단계; 및 상기 패킷 분석부는 지원하는 튜플 정보의 경우 튜플의 타입과 값에 대한 정보를 문자로 치환하기 위한 데이터로 문자 치환부로 전달하는 단계를 포함한다.
또한, 본 발명의 방법의 상기 (C-3)단계는 상기 문자 치환부는 문자화 템플릿 데이터베이스를 조회하여 정보를 문자열로 구성하는 단계; 상기 문자 치환부는 추가 헤더가 있다면 조회하여 모든 튜플에 대한 문자열 변환을 실시하는 단계; 및 상기 문자 치환부는 대상이 되는 모든 헤더에 대한 튜플 정보를 단일 문자열로 구성이 완료되면 이를 오토마타부의 유한 상태 머신의 데이터로 입력하는 단계를 포함한다.
상기와 같은 본 발명에 따르면, 필터 연산 비용을 감소시킨다.
또한, 본 발명에 따르면, 텍스트 매칭 방식을 통한 연산 속도를 향상시킨다.
또한, 본 발명에 따르면, 필터 생성 시에 메모리 리소스를 감소시킨다.
또한, 본 발명에 따르면, 검색 조건 확장(모든 헤더 정보 조합) 및 확장에 대한 작업이 최소화된다.
도 1은 본 발명의 일 실시예에 따른 오토마타 기반 패킷 필터 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 오토마타 기반 패킷 필터 방법의 오토마타 생성 과정을 보여주는 부분 흐름도이다.
도 3은 도 2의 부분 정규식 생성 과정에 이용되는 정규 템플릿 데이터베이스에 저장된 정규식 표현의 일예시도이다.
도 4는 필터 구조가 유한 상태 머신으로 변환된 일예를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 오토마타 기반 패킷 필터 방법의 패킷 필터 과정을 보여주는 부분 흐름도이다.
도 6은 종래 기술에 따른 튜플 추가시의 구조 변화를 보여주는 도면이다.
도 7은 본 발명의 일 실시예에 따른 필터의 정규식 표현예를 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 필터의 유한 상태 머신의 일예를 나타내는 도면이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 이하에서는 특정 실시예들을 첨부된 도면을 기초로 상세히 설명하고자 한다.
본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되는 것은 아니며, 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
도 1은 본 발명의 일 실시예에 따른 오토마타 기반 패킷 필터 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 오토마타 기반 패킷 필터 시스템은 정책 데이터베이스(10), 정규식 치환 모듈(100), 오토마타부(200), 문자 치환 모듈(300) 및 패킷 제어부(400)을 구비하고 있다.
상기 정규식 치환 모듈(100)은 정책 수신부(110)와, 정책 분석부(120) 그리고 정규식 치환부(130)를 구비하고 있다.
또한, 문차 치환 모듈(300)은 패킷 수신부(310), 패킷 분석부(320) 그리고 문자 치환부(330)를 구비하고 있다
이와 같은 구성에서 상기 정책 데이터베이스(10)는 패킷 필터 조건을 명시한 복수 개의 정책을 저장하고 있다.
그리고, 정규식 치환 모듈(100)은 정책 데이터베이스(10)로부터 다수의 튜플에 대한 각각의 정책을 입력받아 대응하는 정규식으로 치환한다.
이를 좀더 구체적으로 살펴보면, 정책 수신부(110)는 상기 정책 데이터베이스(10)로부터 저장하고 있는 정책을 메모리에 로드한다.
다음으로, 정책 분석부(120)는 상기 정책 수신부(110)로부터 상기 정책 데이터베이스(10)로부터 로드한 정책을 받아 각 조건을 판별하여 튜플에 대하여 어떠한 조건을 나타내는지 확인한다.
상기 정규식 치환부(130)는 상기 정책 분석부(120)에서 확인한 조건을 사전 정의한 정규식 템플릿과 매칭하여 각 조건을 하나의 정규식으로 나타낸다.
한편, 오토마타부(200)는 상기 정규식 치환부(130)에서 생성된 정규식을 파싱 알고리즘을 사용하여 텍스트 매칭이 가능한 형태의 유한 상태 머신((Finite State Machine, FSM)으로 구성한 오토마타의 집합을 생성하여, 상기 문자 치환 모듈(300)에서 전달된 <패킷 정보 문자열> 을 필터링하여 모든 튜플에 대한 공격 판별 조건과의 일치 여부를 판별한다.
이와 같은 판별 결과, 조건과 일치하는 경우 패킷의 정보를 상기 오토마타 부(200)는 패킷 제어부(400)에 제공한다.
한편, 문자 치환 모듈(300)은 네트워크 인터페이스에서 패킷을 수신하여, 각 헤더별 정보를 수집하여 패킷 정보 문자열을 생성한다.
이를 좀더 구체적으로 살펴보면, 패킷 수신부(310)은 네트워크 인터페이스로부터 개별 패킷을 수신한다.
그리고, 패킷 분석부(320)는 상기 패킷 수신부(310)가 수신한 패킷을 디코딩 하여 패킷의 각 헤더별 정보를 수집한다.
다음으로, 문자 치환부(330)는 패킷 정보가 유한 상태 머신(FSM)을 통해 검색되어지기 위해 문자열 형태로 변환하여 패킷 정보 문자열을 생성한다.
한편, 패킷 제어부(400)는 오토마타부(200)로부터 매칭된 패킷 정보를 수신받아 이를 토대로 사전에 정의된 트래픽 제어를 수행한다.
도 2는 본 발명의 일 실시예에 따른 오토마타 기반 패킷 필터 방법의 오토마타 생성 과정을 보여주는 부분 흐름도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 오토마타 기반 패킷 필터 방법의 오토마타 생성 과정은 먼저 정규식 치환 모듈이 정책 데이터베이스로부터 다수의 튜플에 대한 각각의 정책을 입력받아 대응하는 정규식으로 치환하는 단계를 포함한다(S100~S125).
이를 좀더 상세히 살펴보면, 정책 수신부는 사용자가 정의한 패킷 필터의 조건을 저장한 정책 데이터베이스에서 5 튜플의 각각의 조건을 명시한 각각의 정책 정보를 불러온다(S100).
그리고, 정책 분석부는 전체 정의된 튜플을 순차적으로 입력받아, 해당 튜플의 타입과 정규식 치환부에서 지원 여부를 판단한다(S105).
상기 정책 분석부는 정규식 치환부에서 지원하는 튜플의 경우 부분 정규식으로 전환하기 위해 해당 정보를 정규식 치환부로 전달한다.
이에 따라 정규식 치환부는 튜플의 타입에 따라 정의된 정규식 템플릿을 정규식 템플릿 데이터베이스를 조회하여 튜플 단위로 정규식 변환을 수행하여 부분 정규식을 생성한다(S110). 템플릿은 다음과 같이 튜플을 표현할 수 있는 조건에 대한 명시이다. 예를 들면 출발지(Source) IP 가 1.1.1.0이고 마스크(mask)가 255.255.255.0인 경우 1\.1\.1\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ 와 같이 표현할 수 있다. 1.1.1.0~1.1.1.255까지 매칭이 가능한 정규식이다.
정규식 템플릿 데이터베이스는 하드웨어 상의 저장소 또는 운용중인 메모리 상에 정규 표현 식에 대한 정의가 저장되어 있다. 도 3은 트래픽 방향, 아이피, 포트, 프로토콜, 플래그의 일 예시가 되는 값에 대한 일 예시가 되는 정규식 표현을 보여준다. 이와 같은 대응 관계가 정규식 템플릿 데이터베이스에 저장되어 있다. 튜플이 계속해서 존재하는 경우 단계 S105부터 반복하여 수행한다(S115).
모든 튜플에 대해 정규식이 정해진 경우 이를 조합하여 하나의 정규식으로 생성한다(S120). 추가 정책이 존재하는 경우 단계 S100부터 반복수행한다(S125).
한편, 오토마타부는 모든 정책에 대한 정규식이 생성되었으면 이 데이터를 오토마타 생성 알고리즘에 적용한다(S130). 1회 컴파일 기준으로 데이터가 고정적이기 때문에 알고리즘은 전이 상태를 하나로 유지하는 DFA 알고리즘을 적용한다.
상기 오토마타부는 전체 정규식에 대한 오토마타를 생성하여 텍스트 매칭이 가능한 형태의 유한 상태 머신(Finite State Machine, FSM)을 구성한다(S135). 향후 패킷이 수신될 경우 패킷의 정보를 텍스트화한 문자열이 이 단계에서 생성된 유한 상태 머신을 통해 필터 매칭 여부를 판단하게 된다.
이와 같은 과정을 통하여 생성된 유한 상태 머신의 일예가 도 4에 도시되어 있다.
도 4의 (a)에 도시된 구조가 변화되기 전의 필터는 트래픽 방향을 필터링하여 비매칭이면 바로 출력하고, 매칭이면 종단 IP를 필터링하여 비매칭이면 바로 출력한다.
그리고, 종단 IP가 매칭이면 포트를 필터링하여 비매칭이면 바로 출력하고, 매칭이면 프로토콜을 필터링하여 비매칭이면 바로 출력한다.
또한, 프로토콜을 필터링한 결과 매칭이면 플래그를 필터링하여 비매칭이면 바로 출력하고 매칭이면 다른 프로세스를 수행한다.
이와 같은 필터는 위의 오토마타부를 통해 도 4의 (b) 유한 상태 머신으로 변화된다.
도 5는 본 발명의 일 실시예에 따른 오토마타 기반 패킷 필터 방법의 패킷 필터 과정을 보여주는 부분 흐름도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 오토마타 기반 패킷 필터 방법의 패킷 필터 과정은 먼저 문자 치환 모듈이 네트워크 인터페이스에서 패킷을 수신하여, 각 헤더별 정보를 수집하여 패킷 정보 문자열을 생성하는 단계를 포함한다(S200~S215).
이를 구체적으로 설명하면, 먼저 패킷 수신부가 패킷 필터를 운용하는 네트워크 장비의 네트워크 인터페이스를 통해 패킷을 수신받는다(S200).
그리고, 패킷 분석부는 패킷 정보를 이더넷 계층 구조에 따라 이더넷(Ethernet) 헤더, 아이피(IP) 헤더, 프로토콜(Protocol) 헤더로 분류한다(S205).
다음으로, 패킷 분석부는 각 헤더에 정의된 값을 파싱한다(S210).
그리고, 패킷 분석부는 헤더별 파싱된 정보 중 필터에 정의된 튜플에 해당하는 정보를 판별한다.
판별 결과, 패킷 분석부는 지원하는 튜플 정보의 경우 튜플의 타입과 값에 대한 정보를 문자로 치환하기 위한 데이터로 문자 치환부로 전달한다(S215).
이에 따라 문자 치환부는 문자화 템플릿 데이터베이스를 조회하여 정보를 문자열로 구성한다(S220).
상기 문자화 템플릿 데이터베이스는 정규식 치환부의 정규식 템플릿 데이터베이스에 정규식 템플릿에 상응하는 포맷을 가지는 문자화 템플릿을 저장하고 있다.
즉, 프로토콜 정보에 대해서 정규식 템플릿이 [TCP|UDP|ICMP] 와 같이 구성하고 있다면 문자화 템플릿 또한 [TCP] 와 같이 나타내어야 한다. 프로토콜 번호인 [6], [17] 등으로 서로 상이할 수 없다.
상기 문자 치환부는 추가 헤더가 있다면(S225) 조회하여 모든 튜플에 대한 문자열 변환을 실시한다.
이와 같이 문자 치환부에 의해 모든 헤더에 대한 튜플 정보를 단일 문자열로 구성이 완료되면 이를 오토마타부의 유한 상태 머신의 데이터로 입력한다(S230).
상기 오토마타부는 매칭 여부를 판별하여(S235), 매칭이 된 경우에 해당 필터 정보 및 패킷 정보를 패킷 제어부에 전달한다(S240).
이와 같이 본 발명에서는 종래의 단점을 극복하고자 5 튜플의 조건을 하나의 정규 표현식으로 시그니처화하고 검색 엔진을 각 필터의 시그니처를 조합한 유한 상태 머신 형태로 구성하였다.
각 튜플은 고정되어 있고 그 범위가 제한적이며 깊이가 깊지 않기 때문에 상태 머신은 한 개의 전이 상태를 가지는 DFA로 구성하는 경우 빠른 연산 속도를 확보할 수 있다.
또한, 패킷의 정보가 상태 머신을 통해 검색되어지기 위해서는 각 정보가 자료형을 가지는 변수 형태가 아닌 문자열 형태로의 변환이 필요하다. 따라서 대상 데이터가 되는 디코딩 된 패킷의 각 정보를 <문자 치환부>를 통해 조합된 문자열로 구성하고 이를 <패킷 정보 문자열>이라 한다.
<패킷 정보 문자열>은 정규표현화를 거쳐 구성한 상태 머신에 텍스트 매칭을 시도하기 때문에 기존의 여러 자료구조의 조합으로 구성된 검색 엔진보다 적은 리소스 사용으로 각 튜플에 대한 리소스적 부담을 줄일 수 있다.
또한 패킷 헤더에서 추출하여 비교 대상으로 하는 제한된 튜플 개수를 언급하였는데, 그리고 5 개의 튜플은 일반적으로 트래픽을 분류할 수 있는 임의의 기준이며 패킷의 헤더에는 5 튜플 이외에도 많은 정보를 포함하고 있다.
제한된 개수의 튜플 운용 원인으로는 각 튜플에 대응하는 검색 엔진의 추가 시 리소스 및 탐색 깊이가 무한정 늘어날 수 없기 때문이다.
그러나 본 발명을 통해 추가되는 튜플에 대한 정규식을 추가하는 것으로 별도의 엔진 구성 없이 추가 튜플을 구성할 수 있다.
패킷의 헤더에는 본 발명에서 명시한 5 튜플인 트래픽 방향, 종단 IP, 포트, 프로토콜, 플래그 정보 이외에도 많은 정보가 있으며 즉, 추가 헤더 및 추가 옵션에 있는 많은 정보를 필터링 가능한 확장성을 가지고 있다 할 수 있다.
이와 같은 확장성과 관련하여 도 6을 참조하면, 종래 기술에 따라 맥 주소 튜플을 트래픽 방향 튜플과 종단 IP 튜플 사이에 추가시에 (a)와 (b)를 비교하면 분기 방식에 따라 동일 기능의 엔진이 병렬적으로 생성된다.
하지만, 본 발명에 따르면, 도 7에 도시된 바와 같이 정규식 표현에서 트래픽 방향 정규식과 종단 IP 정규식 사이에 추가되며, 이에 따라 도 8에 도시된 바와 같이 트래픽 방향 상태 머신과 종단 IP 상태 머신 사이에 추가되어 용이하게 확장할 수 있도록 한다.
상기에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10 : 정책 데이터베이스 100 : 정규식 치환 모듈
110 : 정책 수신부 120 : 정책 분석부
130 : 정규식 치환부 200 : 오토마타부
300 : 문자 치환 모듈 310 : 패킷 수신부
320 : 패킷 분석부 400 : 패킷 제어부

Claims (11)

  1. 패킷 필터 조건을 명시한 복수 개의 정책을 저장하고 있는 정책 데이터베이스;
    상기 정책 데이터베이스로부터 다수의 튜플에 대한 각각의 정책을 입력받아 대응하는 정규식으로 치환하는 정규식 치환 모듈;
    네트워크 인터페이스에서 패킷을 수신하여, 각 헤더별 정보를 수집하여 패킷 정보 문자열을 생성하는 문자 치환 모듈;
    상기 정규식 치환 모듈에서 정규식을 입력받아 유한 상태 머신을 형성하고, 상기 문자 치환 모듈에서 입력받은 패킷 정보 문자열을 유한 상태 머신을 사용하여 매칭하는 오토마타부; 및
    상기 오토마타부로부터 매칭된 패킷 정보를 수신받아 트래픽 제어를 수행하는 패킷 제어부를 포함하며,
    상기 튜플은 트래픽 방향, 맥 주소, 종단 IP, 포트, 프로토콜 및 플래그 정보중 적어도 하나 이상을 포함하고,
    상기 문자 치환 모듈은
    네트워크 인터페이스로부터 개별 패킷을 수신하는 패킷 수신부;
    상기 패킷 수신부가 수신한 패킷을 디코딩하여 패킷의 각 헤더별 정보를 수집하는 패킷 분석부; 및
    상기 패킷 분석부에서 수집된 각 헤더별 정보를 문자열 형태로 변환하여 패킷 정보 문자열을 생성하는 문자 치환부를 포함하며,
    상기 패킷 분석부는 패킷 정보를 이더넷 계층 구조에 따라 이더넷(Ethernet) 헤더, 아이피(IP) 헤더, 프로토콜(Protocol) 헤더로 분류하고, 각 헤더에 정의된 값을 파싱하며, 헤더별 파싱된 정보 중 필터에 정의된 튜플에 해당하는 정보를 판별하고, 지원하는 튜플 정보의 경우 튜플의 타입과 값에 대한 정보를 문자로 치환하기 위한 데이터로 문자 치환부로 전달하며,
    상기 문자 치환부는 문자화 템플릿 데이터베이스를 조회하여 정보를 문자열로 구성하고, 추가 헤더가 있다면 조회하여 모든 튜플에 대한 문자열 변환을 실시하며, 대상이 되는 모든 헤더에 대한 튜플 정보를 단일 문자열로 구성이 완료되면 이를 오토마타부의 유한 상태 머신의 데이터로 입력하는 오토마타 기반 패킷 필터 시스템.
  2. 청구항 1항에 있어서,
    상기 정규식 치환 모듈은
    상기 정책 데이터베이스로부터 저장하고 있는 정책을 메모리에 로드하는 정책 수신부;
    상기 정책 수신부로부터 상기 정책 데이터베이스로부터 로드한 정책을 받아 각 조건을 판별하여 튜플에 대하여 조건을 확인하는 정책 분석부; 및
    상기 정책 분석부에서 확인한 조건을 사전 정의한 정규식 템플릿과 매칭하여 각 조건을 정규식으로 나타내는 정규식 치환부를 포함하는 오토마타 기반 패킷 필터 시스템.
  3. 청구항 1항에 있어서,
    상기 문자 치환 모듈은
    네트워크 인터페이스로부터 개별 패킷을 수신하는 패킷 수신부;
    상기 패킷 수신부가 수신한 패킷을 디코딩하여 패킷의 각 헤더별 정보를 수집하는 패킷 분석부; 및
    상기 패킷 분석부에서 수집된 각 헤더별 정보를 문자열 형태로 변환하여 패킷 정보 문자열을 생성하는 문자 치환부를 포함하는 오토마타 기반 패킷 필터 시스템.
  4. 삭제
  5. 삭제
  6. (A) 정규식 치환 모듈이 정책 데이터베이스로부터 다수의 튜플에 대한 각각의 정책을 입력받아 대응하는 정규식으로 치환하는 단계;
    (B) 오토마타부가 상기 정규식 치환 모듈에서 정규식을 입력받아 유한 상태 머신을 형성하는 단계;
    (C) 문자 치환 모듈이 네트워크 인터페이스에서 패킷을 수신하여, 각 헤더별 정보를 수집하여 패킷 정보 문자열을 생성하는 단계;
    (D) 오토마타부가 상기 문자 치환 모듈에서 입력받은 패킷 정보 문자열을 유한 상태 머신을 사용하여 매칭하는 단계; 및
    (E) 패킷 제어부가 상기 오토마타부로부터 매칭된 패킷 정보를 수신받아 트래픽 제어를 수행하는 단계를 포함하며,
    상기 튜플은 트래픽 방향, 맥 주소, 종단 IP, 포트, 프로토콜 및 플래그 정보중 적어도 하나 이상을 포함하고,
    상기 (C) 단계는
    (C-1) 패킷 수신부가 네트워크 인터페이스로부터 개별 패킷을 수신하는 단계;
    (C-2) 패킷 분석부가 상기 패킷 수신부가 수신한 패킷을 디코딩하여 패킷의 각 헤더별 정보를 수집하는 단계; 및
    (C-3) 문자 치환부가 상기 패킷 분석부에서 수집된 각 헤더별 정보를 문자열 형태로 변환하여 패킷 정보 문자열을 생성하는 단계를 포함하며,
    상기 (C-2) 단계는
    상기 패킷 분석부가 패킷 정보를 이더넷 계층 구조에 따라 이더넷(Ethernet) 헤더, 아이피(IP) 헤더, 프로토콜(Protocol) 헤더로 분류하는 단계;
    상기 패킷 분석부가 각 헤더에 정의된 값을 파싱하는 단계;
    상기 패킷 분석부가 헤더별 파싱된 정보 중 필터에 정의된 튜플에 해당하는 정보를 판별하는 단계; 및
    상기 패킷 분석부는 지원하는 튜플 정보의 경우 튜플의 타입과 값에 대한 정보를 문자로 치환하기 위한 데이터로 문자 치환부로 전달하는 단계를 포함하며,
    상기 (C-3)단계는
    상기 문자 치환부는 문자화 템플릿 데이터베이스를 조회하여 정보를 문자열로 구성하는 단계;
    상기 문자 치환부는 추가 헤더가 있다면 조회하여 모든 튜플에 대한 문자열 변환을 실시하는 단계; 및
    상기 문자 치환부는 대상이 되는 모든 헤더에 대한 튜플 정보를 단일 문자열로 구성이 완료되면 이를 오토마타부의 유한 상태 머신의 데이터로 입력하는 단계를 포함하는 오토마타 기반 패킷 필터 방법.
  7. 청구항 6항에 있어서,
    상기 (A) 단계는
    (A-1) 정책 수신부가 상기 정책 데이터베이스로부터 저장하고 있는 정책을 메모리에 로드하는 단계;
    (A-2) 정책 분석부가 상기 정책 수신부로부터 상기 정책 데이터베이스로부터 로드한 정책을 받아 각 조건을 판별하여 튜플에 대하여 조건을 확인하는 단계; 및
    (A-3) 정규식 치환부가 상기 정책 분석부에서 확인한 조건을 사전 정의한 정규식 템플릿과 매칭하여 각 조건을 정규식으로 나타내는 단계를 포함하는 오토마타 기반 패킷 필터 방법.
  8. 청구항 7항에 있어서,
    상기 (A-3) 단계는
    상기 정규식 치환부가 정규식 템플릿을 정규식 템플릿을 사용해서 튜플 단위로 정규식 변환을 수행하여 부분 정규식을 생성하는 단계;
    상기 정규식 치환부는 튜플이 계속해서 존재하는 경우에 상기 부분 정규식을 생성하는 단계부터 반복하여 수행하는 단계; 및
    상기 정규식 치환부는 대상이 되는 모든 튜플에 대해 정규식이 정해진 경우 이를 조합하여 하나의 정규식으로 생성하는 단계를 포함하는 오토마타 기반 패킷 필터 방법.
  9. 삭제
  10. 삭제
  11. 삭제
KR1020160031005A 2016-03-15 2016-03-15 오토마타 기반 패킷 필터 시스템 및 그 방법 KR101796529B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160031005A KR101796529B1 (ko) 2016-03-15 2016-03-15 오토마타 기반 패킷 필터 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160031005A KR101796529B1 (ko) 2016-03-15 2016-03-15 오토마타 기반 패킷 필터 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20170107266A KR20170107266A (ko) 2017-09-25
KR101796529B1 true KR101796529B1 (ko) 2017-11-15

Family

ID=60035264

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160031005A KR101796529B1 (ko) 2016-03-15 2016-03-15 오토마타 기반 패킷 필터 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101796529B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102011603B1 (ko) * 2018-07-24 2019-08-16 주식회사 윈스 탐지 규칙 검증을 위한 패킷 생성 방법 및 장치
KR102045702B1 (ko) * 2019-05-03 2019-11-15 한국과학기술원 심층 패킷 분석에서 정규 표현식 매칭 방법 및 그 장치
KR20230142203A (ko) * 2022-04-01 2023-10-11 주식회사 넥스클라우드 컨테이너 기반 네트워크 라이브 스트림을 분석할 수 있는 데이터 처리 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101599213B1 (ko) * 2014-12-23 2016-03-04 주식회사 윈스 네트워크 보안 시스템에서 탐지규칙 제공 서비스 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101599213B1 (ko) * 2014-12-23 2016-03-04 주식회사 윈스 네트워크 보안 시스템에서 탐지규칙 제공 서비스 방법 및 시스템

Also Published As

Publication number Publication date
KR20170107266A (ko) 2017-09-25

Similar Documents

Publication Publication Date Title
KR101244604B1 (ko) 분류 트리 구조 구성 방법 및 인커밍 데이터 패킷 분류 방법
US10305776B2 (en) Network verification
US8914320B2 (en) Graph generation method for graph-based search
US7765183B2 (en) Hierarchical tree of deterministic finite automata
US9495479B2 (en) Traversal with arc configuration information
CN100472480C (zh) 分组处理方法和装置
US6954789B2 (en) Method and apparatus for monitoring traffic in a network
US10917338B2 (en) System and method for building a hierarchical data structure
CN104243315B (zh) 用于唯一枚举解析树中的路径的装置和方法
US8693340B2 (en) Method and apparatus for least cost routing using multiple path accumulated constraints
US20190207843A1 (en) Network analysis
KR101796529B1 (ko) 오토마타 기반 패킷 필터 시스템 및 그 방법
CN109889546B (zh) 一种快速细粒度多域网络互联安全控制方法
JP2016001897A (ja) 反復解析及び分類
US10630588B2 (en) System and method for range matching
CN105635170A (zh) 基于规则对网络数据包进行识别的方法和装置
US8782092B2 (en) Method and apparatus for streaming netflow data analysis
CN112054992B (zh) 恶意流量识别方法、装置、电子设备及存储介质
US7664728B2 (en) Systems and methods for parallel evaluation of multiple queries
CN112437096B (zh) 加速策略查找方法及系统
US9152494B2 (en) Method and apparatus for data packet integrity checking in a processor
CN115412304A (zh) 一种基于ip地址的数据处理方法和装置
WO2021058104A1 (en) Span categorization

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant