KR20190028596A - Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치 - Google Patents

Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치 Download PDF

Info

Publication number
KR20190028596A
KR20190028596A KR1020170115180A KR20170115180A KR20190028596A KR 20190028596 A KR20190028596 A KR 20190028596A KR 1020170115180 A KR1020170115180 A KR 1020170115180A KR 20170115180 A KR20170115180 A KR 20170115180A KR 20190028596 A KR20190028596 A KR 20190028596A
Authority
KR
South Korea
Prior art keywords
module
rule
detection
pcre
hash
Prior art date
Application number
KR1020170115180A
Other languages
English (en)
Other versions
KR102014736B1 (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 KR1020170115180A priority Critical patent/KR102014736B1/ko
Publication of KR20190028596A publication Critical patent/KR20190028596A/ko
Application granted granted Critical
Publication of KR102014736B1 publication Critical patent/KR102014736B1/ko

Links

Images

Classifications

    • 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/1441Countermeasures against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • 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
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치에 관한 것으로, 스노트 룰과 야라 룰을 탐지 기능을 위한 포멧(format)으로 변환하는 탐지 룰 변환기; 및 상기 포멧으로 변환된 룰을 바탕으로 네트워크로부터 입력되는 입력 패킷을 수신하여, 고속 패킷 처리 모듈에서 고정 패턴을 탐지하고, PCRE 탐지 모듈에서 PCRE 패턴을 매칭하고, 동적 해시 및 매치 제어 모듈에서 수행되는 동일 파일 검색한 결과를 탐지결과 처리 모듈을 통해 적용할 정책을 확인 후 완화 제어 신호를 완화 정책 적용 모듈에서 패킷 FIFO에 저장되어 있는 해당 입력 패킷을 리드(READ)하여 탐지 결과 적용 정책을 적용한 후 출력 패킷으로 보내는 탐지 엔진;을 포함하는 것을 특징으로 한다.

Description

FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치{MATCHING DEVICE OF HIGH SPEED SNORT RULE AND YARA RULE BASED ON FPGA}
본 발명은 FPGA 기반 고속 스노트(SNORT) 룰과 야라(YARA) 룰(Rule) 매칭 장치에 관한 것이다.
많은 회사와 개인이 정보를 공유하기 위해 컴퓨터를 사용하여 네트워크에 액세스한다. 또한 이러한 네트워크 사용자는 일반적으로 여러 목적으로 웹 사이트를 통해 인터넷을 사용하여 네트워크 외부에 있는 컴퓨터와 컴퓨터간에 최소한의 정보를 공유하려고 한다. 이러한 정보 공유는 서버 컴퓨터와 클라이언트 컴퓨터 간의 통신 세션을 설정하여 수행된다. 이러한 컴퓨터 간의 물리적 및 논리적 연결은 인터넷과 같은 글로벌 컴퓨터 네트워크를 구축한다.
불행히도 악의적인 컴퓨터 사용자는 인터넷 연결을 사용하여 인터넷을 통한 네트워크의 통신을 방해하거나 기밀 데이터에 액세스하거나 데이터를 지울 수 있다. 이러한 공격의 한 예로 공격자가 희생된 컴퓨터의 특정 클라이언트에 대한 서비스 제공을 거부하려고 시도하는 서비스 거부("DoS") 공격이 있다.
DoS 공격은 서버의 메모리 및 네트워크 연결을 사용하는 등 다양한 방법을 통해 수행 할 수 있다. 서버 컴퓨터의 서비스는 IDS 또는 IPS 시스템에서 감지 할 수 있는 네트워크 공격으로 인해 중단 될 수도 있다.
네트워크 연결을 설정하려면 클라이언트 컴퓨터와 서버간에 세션설정 과정이 있어야 한다. 예를 들어 클라이언트 컴퓨터는 서버에 서비스를 요청한다. 이 요청에 대한 응답으로 서버는 메모리 공간과 처리 시간을 할당하고 응답을 컴퓨터로 다시 보내고 클라이언트 컴퓨터가 응답하기를 기다린다. 클라이언트 컴퓨터는 서버에 대한 서비스 요청을 많이 보낼 수는 있지만 서버로 회신하지 않을 수 있다. 그런 다음 서버는 메모리와 처리 시간을 낭비하는 동안 절대로 수신할 수 없는 응답을 기다린다. 기다리는 동안 추가 데이터 패킷을 수신하는 동안 서버의 메모리가 부족하거나 공간을 처리하거나 네트워크 연결이 끊어 질 수 있다. 결국 요청이 너무 많아서 서버가 합법적인 사용자에게 연결을 제공할 수 없으며 인터넷을 통한 서버의 통신이 본질적으로 종료된다. 이로 인해 전자 메일, 인터넷 액세스 및 웹 서버 기능이 손실될 수 있다.
이러한 공격의 또 다른 예로는 모든 CPU 전력을 소비하기 위해 서버에 많은 양의 데이터 패킷을 넘치게 함으로써 서버에 수많은 프로그램이나 스크립트를 실행하여 합법적인 사용자가 네트워크에 액세스하지 못하게 하거나 사용 가능한 메모리 공간을 소모하는 경우가 있다.
수많은 네트워크 공격 유형 중에서 많은 패킷을 검사해야 할 때 패킷 페이로드의 시그니쳐를 사용하는 공격을 탐지하기가 어렵다. 현재 사용되고 있는 시그니쳐 탐지 및 탐지 후 탐지정책을 적용하는 프로세스들은 순수 CPU 전력을 이용한 소프트웨어 기반 솔루션들이다. CPU 기반 솔루션들은 S/W의 논리적 구조를 바탕으로 하여 기본적으로 처리되어야 할 기능들이 순차적으로 진행이 되게 되어 있어서 성능을 높이는데 문제가 많이 따른다. 따라서 정해진 링크 속도를 단일 네트워크 시큐리티 시스템에서 처리를 할 수 없게 되면 네트워크 구조가 복잡하게 되며 운용의 어려움이 따르게 된다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 스노트와 야라에서 적용되는 룰들을 매칭 장치에서 사용될 탐지 룰로 변환하고 장치의 시동 후 항상 룰을 적용하여 장치에 입력되는 패킷의 유입량에 대해 최대한 고속으로 패킷, 세션, 및 파일 단위로 룰을 탐지하여 탐지 후 대응 방식에 따라 실시간으로 네트워크의 보안을 위해 패킷 단위의 방어를 통해 유해 패킷과 파일의 유입을 막는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치를 제공하는 데 있다.
또한, 본 발명의 다른 목적은 FPGA을 이용하여 성능예측 가능한 하드웨어 기반 병렬처리 기능을 구현하여 네트워크 구조가 복잡하고 CPU 전력이 소모되는 시그너쳐 매칭 프로세스에 기인한 검출 및 방지 성능 저하를 극복하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치를 제공하는 데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치은 스노트 룰과 야라 룰을 입력 받아 룰 포멧(format)으로 변환하는 탐지 룰 변환기; 및 상기 변환된 룰을 바탕으로 네트워크로부터 입력되는 입력 패킷을 수신하여, 고속 패킷 처리 모듈에서 고정 패턴을 탐지하고, PCRE 탐지 모듈에서 PCRE 패턴을 매칭하고, 동적 해시 및 매치 제어 모듈에서 수행되는 동일 파일 검색한 결과를 탐지결과 처리 모듈을 통해 적용할 정책을 확인 후 완화 제어 신호를 완화 정책 적용 모듈에서 패킷 FIFO에 저장되어 있는 해당 입력 패킷을 리드(READ)하여 탐지 결과 적용 정책을 적용한 후 출력 패킷으로 보내는 탐지 엔진;을 포함하는 것을 특징으로 한다.
상기 입력 패킷은 패킷 FIFO에 라이트(Write) 되는 순간에 동시에 고속 패킷 처리 모듈과 동적 해시 및 매치 제어 모듈에 공급하는 것을 특징으로 한다.
상기 고속 패킷 처리 모듈은 패킷 파싱하여 헤더값과 페이로드값으로 구별하고 고정 패턴 시그니쳐를 탐지하고, 헤더값과 페이로드값을 PCRE 탐지 모듈, 동적 해시 및 매치 제어 모듈, 및 탐지 결과 처리 모듈에 전달하고, 고정 패턴 탐지 결과는 탐지 결과 처리 모듈로 전달하는 것을 특징으로 한다.
상기 PCRE 탐지 모듈은 고속 패킷 처리 모듈로부터 고정 패턴 매칭 결과가 포지티브로 나오고 탐지 룰 변환기에서 제공된 룰 넘버에 적용되는 PCRE 패턴이 있는 경우 해당 PCRE 패턴을 받아 내부 DFA가 해당 PCRE 패턴을 탐지하는 것을 특징으로 한다.
상기 동적 해시 및 매치 제어 모듈은 고속 패킷 처리 모듈로부터 헤더값과 페이로드값을 공급받고, 페이로드로부터 파일을 재조합할 수 있는 내용을 확인하여 파일을 조합한 후 입력 데이터에서 반복적으로 나타날 수 있는 데이터의 형태들을 구별할 수 있는 자체 파라메타를 추출하여 반복적으로 같은 파일에 대한 해시값을 계산하는 절차를 줄이는 것을 특징으로 한다.
상기 고속 패킷 처리 모듈, PCRE 탐지 모듈, 동적 해시 및 매치 제어 모듈로부터 각각 나오는 고정 패턴 매칭 결과, PCRE 매칭 결과, 및 해시 매칭 결과는 패킷 단위로 프로세스되어 결과가 나오며 이 결과 값들은 종합적으로 동시에 비교되어 탐지 룰 변환기에서 제공되는 룰 정책을 토대로 완화 제어 신호를 발생하는 것을 특징으로 한다.
상기 고속 패킷 처리 모듈은 시그니쳐 매칭 모듈을 통해 입력되는 패킷의 페이로드(payload)와 실시간 비교하여 시그니쳐 매칭 결과들을 패킷 파싱 모듈의 헤더 정보와 함께 패킷 처리 결정 모듈로 전달되어 고속 패턴 결정 결과 신호를 발생하는 것을 특징으로 한다.
상기 시그니쳐 매칭 모듈은 고정 패턴의 일부분과 길이를 비교하여 실제 고속 패턴이 존재할 수 있는 데이터의 영역을 확인하는 고속 시그니쳐 스케닝 모듈을 통해 생성된 스켄 데이터 스트림을 스켄 데이터 저장 모듈에 전달하여 확인된 길이만큼의 데이터를 패턴 메칭 윈도우 신호 길이만큼 완전 패턴 매칭 모듈의 내부 메모리에 저장하는 것을 특징으로 한다.
상기 고속 시그니쳐 스케닝 모듈은 고속 시그니쳐 길이 스케닝 모듈과 고속 시그니쳐 패턴 매칭 모듈에 다수의 고정 패턴에 대한 시그니쳐가 저장이 되어 있으며 각각 매치된 패턴 길이 값과 부분적인 패턴 매칭 결과 값들을 발생하여 시그니쳐 윈도우 선택 모듈로 전달하여 저장된 고정 패턴의 길이와 비교 위치를 정하여 패턴 매칭 윈도우 신호를 발생하는 것을 특징으로 한다.
상기 고속 시그니쳐 길이 스케닝 모듈은 다수의 듀얼 포트 RAM을 이용하여 탐지 하고자 하는 패턴의 길이를 확인하고, 상기 듀얼 포트 RAM의 한쪽 어드레스 포트와 데이터 포트들을 통해 업로드 되는 고정 패턴의 길이에 대한 정보를 저장하는 것을 특징으로 한다.
상기 PCRE 탐지 모듈은 멀티 패턴 탐지 모듈과 프로그래머블 PCRE 매치 모듈로 이루어진 다수의 PCRE 탐지 서브 모듈로 구성되며, 상기 멀티 패턴 탐지 모듈은 고속 패킷 처리 모듈에서 탐지된 고정 패턴 매칭 결과들을 수신하여 관련 고정 패턴이 포함되어 있는 룰의 경우 고정 패턴의 수가 여러 개일 경우 멀티 패턴들을 탐지한 후 PCRE 룰 요청 신호를 발생하고, 상기 프로그래머블 PCRE 매치 모듈은 PCRE가 실시간으로 프로그램 되도록 소량의 로직을 사용하여 PCRE 탐지 기능이 구현하며, 상기 PCRE 탐지 서브 모듈은 고정 패턴의 결과에 따라 구현되며, 고정 패턴의 해석 결과가 여러 개의 룰에 포함될 가능성이 있는 경우에 동시에 구동되어 패킷의 페이로드에 대한 PCRE 매칭이 실시간으로 처리될 수 있도록 하는 것을 특징으로 한다.
상기 다이나믹 해시 및 매치 모듈은, 입력되는 패킷들로 이루어지는 세션정보를 통해 전달되는 파일의 시작점을 파악한 후 관련 파일에 속하는 패킷들을 수집해서 CPU와의 연동 기능이 없이 파일을 복원하는 파일 콘텐츠 해싱 모듈; 유해성을 가지고 있는 파일의 해시 결과 값으로 정의되어 기존 해시 값 테이블에 저장되어 있는 값들과 상기 파일 콘텐츠 해싱 모듈에서 파일이 재구성되어 해시 결과 값으로 입력되는 값을 비교하는 해시 매치 모듈; 상기 파일 콘텐츠 해싱 모듈에서 제공되는 파일 시작 지시 신호를 기준으로 하여 입력되는 인입 패킷들로부터 각 파일에 대한 파일 메타데이터를 추출하는 메타데이터 추출 모듈; 특정 파일의 종류에 따라 정의된 메타데이터 값이 상기 메타데이터 추출 모듈로부터 제공되면 메타데이터 엔트리 테이블로부터 자체적으로 생성하여 저장되어 있는 메타데이터 값을 읽어 와서 비교하는 메타데이터 매치 모듈; 및 상기 메타데이터 추출 모듈에서 추출된 파일 메타데이터를 저장하는 메타데이터 엔트리 테이블;을 포함하는 것을 특징으로 한다.
상기 해시 매치 모듈의 해시 매치 기능은 메타데이터 추출 모듈에서 제공되는 해시 매치 제어신호에 의해서 시작되고, 상기 해시 매치 제어신호가 포지티브일 경우 해시 읽기 신호가 기존 해시 값 테이블을 트리거하고 읽게 되는 해시 읽기 값과 비교하는 것을 특징으로 한다.
상기 해시 매치 모듈의 해시 매칭 결과가 네가티브이면, 해시 매치 모듈로 해시 매치 제어 신호가 네가티브로 해서 보내게 되고, 해시 매치 모듈은 세션 리셋 신호를 파일 해싱 모듈로 보내게 되며 해당 파일 재조합 과정을 시작하지 않게 하는 것을 특징으로 한다.
상기 해시 매치 모듈의 결과가 네가티브일 경우 인에이블되는 메타데이터 업데이터 신호에 의해 파일 메타데이터가 저장되는 것을 특징으로 한다.
상기 메타데이터 엔트리 테이블에 저장되어 있는 메타데이터는 실시간으로 업데이트 가능한 구조로 구현되어 메타데이터 매치 모듈로부터의 메타 읽기 신호에 의해 저장되어 있는 저장된 메터데이터를 전달하는 것을 특징으로 한다.
상기와 같이, 본 발명에 따르면 하드웨어 소자인 FPGA를 이용하여 스노트 룰과 야라 룰 탐지 엔진을 구현하여 탐지결과를 이용한 추가 프로세싱하여 인라인 완화(mitigation)에 적용할 수 있다.
그리고. 본 발명에 따르면 스노트 룰과 야라 룰을 FPGA 기반 패턴 매칭, PCRE 룰 매칭, 야라 룰 매칭용 자체 룰 포맷으로 변환하여 탐지 속도 및 FPGA 내부소요 소자의 적용 양을 최적화하여 구현할 수 있다.
또한, 본 발명에 따르면 탐지결과를 하드웨어 보드상의 논리 소자에서 적용하여 인라인 엔진으로 적용할 수 있다.
또한, 본 발명에 따르면 FPGA 내부에서 병렬신호처리 방식과 병렬 기능모듈을 적용하여 고속의 성능을 구현할 수 있다.
또한, 본 발명에 따르면 탐지엔진의 내부 동작 모듈의 시동을 줄여 전체 성능을 높이기 위한 세션 데이터 전처리를 통해 자체 다이나믹 탐지 화이트리스트 엔트리(whitelist entry)에 적용하여 동작 속도를 향상시킬 수 있다.
또한, 본 발명에 따르면 동일한 웹서버로부터 다운로드 되어 들어오는 파일들을 구별하여 동일한 파일에 대해서는 한 번만 전체 탐지 루틴을 거치게 하도록 실시간 다이나믹 파일탐지 결과 엔트리 생성 및 탐지 과정에서 적용할 수 있다.
도 1은 본 발명에 따른 FPGA 기반 고속 스노트(SNORT) 룰(Rule)과 야라(YARA) 룰(Rule) 매칭 장치의 블록 구성도이다.
도 2는 본 발명에 따른 스노트 룰과 야라 룰에 적용되는 탐지 룰 변환기 출력 테이블이다.
도 3은 본 발명에 따른 고속 패킷 처리 모듈의 세부 기능모듈의 블록 구성도이다.
도 4는 본 발명에 따른 시그니쳐 매칭 모듈의 세부 기능모듈의 블록 구성도이다.
도 5는 본 발명에 따른 고속 시그니쳐 스케닝 모듈의 기능 블록 구성도이다.
도 6은 본 발명에 따른 고속 시그니쳐 길이 스케닝 모듈의 내부 구조의 블록 구성도이다.
도 7은 본 발명에 따른 PCRE 탐지 모듈의 블록 구성도이다.
도 8은 본 발명에 따른 다이나믹 해시(Hash)와 매치 모듈의 블록 구성도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
그러면, 이하에서 본 발명의 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치에 대한 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명에 따른 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치의 블록 구성도이다.
도 1을 참조하면, 본 발명의 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치는 스노트 룰과 야라 룰을 변환해 주는 탐지 룰 변환기(Detection Rule Compiler)(100)와 탐지 엔진(Detection Engine)(1000)으로 구성된다.
스노트(SNORT)는 오픈 소스 네트워크 기반 침입 탐지 시스템(NIDS)과 네트워크 기반 침입 차단 시스템(NIPS)으로 사용되는 탐지 및 차단 툴이며 인터넷 트래픽(IP) 네트워크에서 실시간 트래픽 분석 및 패킷 로깅을 수행 할 수 있다. 여기서, 상기 스노트는 프로토콜 분석, 컨텐츠 검색 및 매칭을 수행하며 이러한 기능을 구현하기 위해 스노트는 탐지 룰을 사용한다.
야라(YARA)는 정의하기 쉬운 룰을 사용하여 악성 소프트웨어 샘플을 식별하고 분류하는 데 적용되는 도구이며, 야라를 사용하여 파일을 분류하거나 프로세스를 실행하여 악성 코드의 종류를 확인 하는데 사용된다. 이 도구를 사용하면 안티 바이러스 솔루션이 사용자를 위해 수행 할 수 있는 것과 유사한 맬웨어의 서명 기반 탐지(Signature-based detection)를 수행 할 수 있다.
탐지 룰 변환기(100)는 스노트 룰과 야라 룰 포멧(format)을 변환하여 탐지 엔진(Detection Engine)(1000)의 고속 패킷 처리 모듈(Fast Packet Processing Module)(200), PCRE 탐지 모듈(Perl Compatible Regular Expressions Detection Module)(300), 및 탐지 결과 처리 모듈(Detection Result Processing Module)(500)로 전달한다.
탐지 엔진(1000)은 탐지 룰 변환기(100)로부터 제공되는 룰의 내용을 바탕으로 네트워크로부터 입력되는 입력 패킷(Input Packet)을 수신하여 고속 패킷 처리 모듈(200)에서 고정 패턴을 탐지, PCRE 탐지 모듈(300)에서 PCRE 패턴 매칭, 그리고 동적 해시 및 매치 제어 모듈(Dynamic Hash & Match Control Module)(400)에서 수행되는 동일 파일 검색 결과와, 탐지 결과 처리 모듈(Detection Result Processing Module)(500)에서 고속 패킷 처리 모듈(200)과 PCRE 탐지 모듈(300), 그리고 동적 해시 및 매치 제어 모듈(400) 결과를 바탕으로 탐지 결과가 포지티브(positive)하게 판단이 되었을 경우에 적용할 정책(policy)을 확인한 후 탐지 결과 처리 모듈(500)로부터 제공되는 완화 제어 신호(Mitigation Control)를 완화 정책 적용 모듈(Mitigation Policy Application Module)(700)로 보내주면 완화 정책 적용 모듈(700)는 패킷 FIFO(600)에 저장되어 있는 해당 입력 패킷을 리드(READ)하여 탐지 결과 적용 정책을 적용한 후 출력 패킷으로 보내게 된다.
입력된 입력 패킷이 패킷 FIFO(600)에 저장되었다가 해당 패킷에 대한 탐지 엔진(1000)에서의 프로세싱 결과가 완화 정책 적용 모듈(700)에서 준비되면 바로 리드(Read) 적용되어 출력 패킷으로 나가게 된다.
이하에서는 입력되는 입력 패킷의 흐름을 방향으로 하여 설명하기로 한다.
탐지 룰 변환기(100)는 스노트 룰과 야라 룰을 입력 받아 탐지 기능을 위한 룰 포멧으로 변환하여 그 결과를 저장하며 탐지 엔진(1000)에 적용한다. PCRE 패턴의 경우 탐지 엔진(1000)으로부터 패킷 단위로 새로운 PCRE 패턴 적용을 요청 받으면 실시간으로 요청 받은 PCRE 패턴을 탐지 엔진(1000)으로 전달하여 PCRE 탐지 모듈(300)에서 사용될 수 있는 구조를 가진다.
입력 패킷(Input Packets)들은 네트워크로부터 수신되어 패킷 FIFO(600)에 저장된다.
입력 패킷들이 패킷 FIFO(600)에 라이트(Write) 되는 순간에 동시에 고속 패킷 처리 모듈(200)과 동적 해시 및 매치 제어 모듈(400)에 공급된다.
고속 패킷 처리 모듈(200)에서는 패킷 파싱을 하여 헤더값과 페이로드 값으로 구별하고 고정 패턴 시그니쳐(fixed pattern signature)를 탐지한다. 또한, 추출된 헤더 값과 페이로드 정보를 동적 해시 및 매치 제어 모듈(400), PCRE 탐지 모듈(300), 탐지 결과 처리 모듈(500)에 전하고 고정 패턴(Fixed Pattern) 탐지 결과는 탐지 결과 처리 모듈(500)로 전달한다. 고정 패턴들은 탐지 룰 변환기(100)로부터 공급되며 새로운 고정 패턴 값들은 탐지 룰 변환기(100)에서 새로운 엔트리를 업데이트하거나 기존의 엔트리를 지울 수 있도록 구성되어 있다.
여기서, 고속 패킷 처리 모듈(200)은 변환된 룰의 탐지 파라메타들 중에서 고정 패턴을 고속으로 탐지하는 기능을 수행하는 모듈이다. 고정 패턴 매칭 결과 신호들은 PCRE 탐지 모듈(300)의 기능을 활성화하는 기준 신호로서 사용될 수 있다.
PCRE 탐지 모듈(300)은 탐지 룰 변환기(100)와 장치가 동작되는 동안 지속적으로 통신을 한다. 고속 패킷 처리 모듈(200)로부터 고정 패턴 매칭 결과 가 포지티브로 나오고 탐지 룰 변환기(100)에서 제공된 룰 넘버에 적용되는 PCRE 패턴이 있는 경우 해당 PCRE 패턴을 받아 내부 DFA가 해당 PCRE 패턴을 탐지할 수 있도록 프로그램 한다. 이 작업은 패킷 단위로 이루어지게 된다.
여기서, PCRE 탐지 모듈(300)은 변환된 룰의 탐지 파라메타들 중에서 PCRE 룰을 탐지하는 기능을 수행하는 모듈이다. 고속 패킷 처리 모듈(200)의 매칭 결과를 바탕으로 해서 해당 PCRE 룰을 실시간으로 공용으로 사용되는 PCRE 탐지 서브 엔진(Detection Sub-Engine)들에 로딩하여 내부 소요 로직의 양을 최소화하여 비용 효율적인 조건으로서 PCRE룰을 탐지하고 많은 양의 PCRE 룰을 탐지하는데 효과적으로 사용할 수 있다.
입력 패킷은 또한 동적 해시 및 매치 제어 모듈(400)에도 입력된다. 동일 패킷에 대한 헤더값과 페이로드 값은 고속 패킷 처리 모듈(200)로부터 공급받게 된다. 페이로드로부터 파일을 재조합할 수 있는 내용을 확인하여 파일을 조합한 후 입력 데이터에서 반복적으로 나타날 수 있는 데이터의 형태(예를 들어 파일)들을 구별할 수 있는 자체 파라메타를 추출하여 반복적으로 같은 파일에 대한 해시(Hash)값을 계산하는 절차를 줄여서 시스템의 전체 성능을 높이도록 한다.
여기서, 동적 해시 및 매치 제어 모듈(400)은 입력되는 인입 패킷(Incoming Packet)들로부터 파일 관련 데이터를 누적하여 파일을 재조합하고, 재조합되기 시작하는 파일의 메타데이터(Metadata)를 먼저 추출하여 파일의 전체 패킷들을 누적하여 파일 재조합을 하고 해시(Hash) 값을 생성하는 프로세스를 시작할 지에 대한 판단, 그리고 재조합된 파일의 해시 값과 저장되어 있는 해시 값들과의 비교하는 기능들을 수행할 수 있다.
고속 패킷 처리 모듈(200), PCRE 탐지 모듈(300), 동적 해시 및 매치 제어 모듈(400)로부터 각각 나오는 고정 패턴 매칭 결과, PCRE 매칭 결과, 및 해시 매칭 결과(Hash Matching Results)는 패킷 단위로 프로세스되어 결과가 나오며 이 결과 값들은 종합적으로 동시에 비교되어 탐지 룰 변환기(100)에서 제공되는 룰 정책(Rule Policies)을 토대로 완화 제어(Mitigation Control) 신호를 발생하게 된다.
완화 정책 적용 모듈(700)는 탐지 결과 처리 모듈(500)으로부터 제공되는 완화 제어 신호를 바탕으로 패킷 FIFO(600)에 저장되어 있는 입력 패킷을 어떻게 처리해야 될지 알게 되며 패킷 FIFO(600)으로 부터 패킷을 리드(READ)하여 관련 패킷에 대한 완화 제어를 하여(packet drop 또는 forwarding) 출력 패킷으로 보내게 된다.
여기서, 탐지 결과 처리 모듈(500)은 탐지 룰 변환기(100), 고속 패킷 처리 모듈(200), 그리고 PCRE 탐지 모듈(300)에서 진행되는 탐지 및 매칭 결과들을 실시간으로 종합하여 패킷 단위의 완화(mitigation)가 발생되게 하여, 패킷기반, 세션기반, 파일 단위의 유해 트래픽을 인라인(inline)상에서 방어할 수 있게 한다. 특히 파일기반 공격의 경우에는 전체 파일의 조합이 완벽히 되어야만 되는 유해 트래픽(파일)의 마지막 패킷을 차단하는 기법을 이용하여 트래픽(traffic)의 흐름에 지연을 주지 않고 탐지, 차단 및 추가 완화 기능을 구현할 수 있게 하는 기능을 제공한다. 패킷을 세션별로 누적하고 파일을 재조합하는 기능은 FPGA와 연동되어 있는 SDRAM(수 기가 바이트 사이즈)을 이용하여 구현된다.
여기서, 패킷 FIFO(600)는 탐지 결과 처리 모듈(500)에서 처리된 결과신호(Mitigation Control)가 완화 정책 적용 모듈(700)에서 처리되어 출력 패킷(Output Packet)으로 출력될 수 있도록 시스템 지연을 조절하여 버퍼링 할 수 있다.
도 2는 본 발명에 따른 스노트 룰과 야라 룰에 적용되는 탐지 룰 변환기 출력 테이블이고, IPS 장비 또는 차세대 IPS에서 유해 패턴을 탐지하기 위해 사용되는 스노트 룰과 야라 룰에서 적용되는 탐지 룰들을 본 발명에서 사용되는 탐지 엔진 기반 유해 패턴 탐지용 모듈에 적용할 수 있는 형태로 변환한 결과의 예를 보여 주는 것이다.
본 발명에 의해 구현된 기능 모듈은 탐지 룰 변환기 출력 테이블(110) 에서 보이는 모든 파라메타들(Protocol, Source IP, Source Port, Direction, Destination IP, Destination Port, Fixed Pattern, PCRE)을 토대로 탐지되어야 할 룰을 찾아 내게 된다.
도 3은 본 발명에 따른 고속 패킷 처리 모듈의 세부 기능모듈의 구성도이며 세부 기능모듈들은 다음과 같다.
도 3을 참조하면, 고속 패킷 처리 모듈(200)은 스노트 룰과 야라 룰의 세부 파라메타들 중에서 고정 패턴(Fixed Pattern)을 탐지한다.
입력되는 트래픽(인입 패킷, 예를들어 레이어(Layer) 2 이더넷 프레임)은 시그니쳐 매칭 모듈(Signature Matching Module)(210)과 패킷 파싱(Packet Parsing) 모듈(220)에 입력된다.
시그니쳐 매칭 모듈(210)은 입력되는 모든 패킷으로부터 레이어(layer) 2, 레이어 3, 레이어 4의 헤더 정보들을 추출하고 레이어 7 데이터 영역을 확인할 수 있는 기준 신호를 발생한다.
레이어 3과 레이어 4 헤더 정보의 경우 통신 세션을 통해 전달되는 패킷 또는 파일의 내용을 누적할 수 있는 파일들을 추출할 수 있는 기본 데이터를 저장하거나 탐지된 결과의 내용을 구분하는데 적용될 수 있다.
레이어 7 데이터 영역이 시작되는 지점을 알리는 신호를 기준으로 해서 탐지 룰 변환기 출력 테이블(110)의 고정 패턴(Fixed Pattern)들을 이용한 매칭이 시작된다. 고정 패턴 엔트리(Fixed Pattern entry)들은 본 발명과 관련된 소프트웨어 프로그램에 의해서 리드(READ)되어 내부 매칭로직에 프로그램되어 입력되는 인입 패킷(Incoming Packet)들과 비교된다.
시그니쳐 매칭 모듈(210)은 입력되는 모든 패킷의 페이로드(payload)와 실시간으로 비교되며 매칭 결과(Signature matching results)들은 헤더 정보와 함께 패킷 처리 결정 모듈(Packet Handling Decision Module)(230)으로 전달이 되어서 고속 패턴 결정 결과 신호로서 PCRE 탐지 모듈(300)과 탐지 결과 처리 모듈(500)으로 전달이 된다.
도 4는 본 발명에 따른 시그니쳐 매칭 모듈의 세부 기능모듈의 구성도이며 세부 기능모듈들은 다음과 같다.
도 4를 참조하면, 시그니쳐 매칭 모듈(210)은 고속 시그니쳐 스케닝 모듈(Fast Signature Scanning Module)(211), 스켄 데이터 저장 모듈(Scanned Data Storage Module)(212)와 완전 패턴 매칭 모듈(Exact Pattern Matching Module)(213)으로 구성되어 있다.
시그니쳐 매칭은 바이트 단위로 진행되는데 고정 패턴(Fixed Pattern)들이 고속 시그니쳐 스케닝 모듈(211)과 완전 패턴 매칭 모듈(213)에 프로그램 되어 입력되는 입력 패킷 데이터와 비교된다.
고속 시그니쳐 스케닝 모듈(211)의 경우 고정 패턴의 일부분과 길이를 비교하여 실제 고속 패턴이 존재할 수 있는 데이터의 영역을 확인 하는 것을 주된 목표로 한다. 이 기능은 이중 포트(Dual-Port) RAM을 이용하여 구현이 되며 고정 패턴의 일부 패턴과 패턴의 길이 등에 대한 정보를 저장하여 입력되는 패킷의 데이터에서 비교되어야 할 영역을 구제적으로 확인하게 된다. 이렇게 생성된 스켄 데이터 스트림(Scanned Data Stream)은 스켄 데이터 저장 모듈(Scanned Data Storage Module)(212)에 전달되어 확인된 길이만큼의 데이터가 패턴 메칭 윈도우(Pattern Matching Window) 신호 길이만큼 완전 패턴 매칭 모듈(Exact Pattern Matching Module)(213)의 내부 메모리에 저장된다.
이렇게 저장된 데이터는 고속 시그니쳐 스케닝 모듈(211)에 입력되는 스켄 데이터 스트림과 함께 완전 패턴 매칭 모듈(213)에서 비교되게 된다.
이렇게 비교된 결과가 포지티브(Positive)일 경우에는 포지티브 시그니쳐 매칭 결과(Positive Signature Matching Result)를 발생하게 된다.
이렇게 탐지되는 패턴과 함께 한 개의 룰에 포함되어 있는 PCRE 파라메타가 있는 경우 특정 PCRE 룰이 PCRE 탐지 모듈(300)로 프로그램 되어 PCRE 관련 매칭을 시작할 수 있도록 한다.
도 5는 본 발명에 따른 고속 시그니쳐 스케닝 모듈의 기능 블럭들의 세부 기능을 나타낸 것이다.
도 5에서는 입력되는 패킷의 데이터와 매치(match)되어야 할 시그니쳐를 찾아 내는 과정을 시그니쳐 "/script/update.asp" 을 예로 들어 설명하고 있다.
ASCII 텍스트인"/script/update.asp"의 16진수 텍스트(Hexadecimal text)는"2f 73 63 72 69 70 74 2f 75 70 64 61 74 65 2e 61 73 70"이다.
고속 시그니쳐 스케닝 모듈(211)에는 "/script/update.asp" 를 탐지되어야 할 고정 패턴(Fixed Pattern)으로 업로드되면서 ".asp" 와 "/script/update.asp" 의 패턴의 길이를 저장하게 된다. 이와 같은 내용은 고속 시그니쳐 길이 스케닝 모듈(Fast Signature Length Scanning Module)(217)과 고속 시그니쳐 패턴 매칭 모듈(218)에 저장이 되게 되며 고속 시그니쳐 길이 스케닝 모듈(217)은 시그니쳐의 길이를 확인하고 고속 시그니쳐 패턴 매칭 모듈(218)은 시그니쳐의 일부 패턴영역을 실제로 비교한다.
고속 시그니쳐 길이 스케닝 모듈(217)과 고속 시그니쳐 패턴 매칭 모듈(218)에는 다수의 고정 패턴에 대한 시그니쳐가 저장이 되어 있으며 각각 매치된 패턴 길이 값(Matched Pattern Length Values)과 부분적인 패턴 매칭 결과(Partial Pattern Matching Result) 값들을 발생하여 시그니쳐 윈도우 선택 모듈(Signature Window Selection Module)(219)로 전달한다. 그렇게 되면 시그니쳐 윈도우 선택 모듈(219)에서는 저장된 고정 패턴들 중에 두 가지 조건에 맞은 고정 패턴에 대한 고정 패턴의 길이와 비교 위치를 정하여 패턴 매칭 윈도우 신호를 발생하여 PCRE 탐색 모듈(300)과 탐색 결과 처리 모듈(500)으로 공급하게 된다.
도 6은 본 발명에 따른 고속 시그니쳐 길이 스케닝 모듈의 내부 구조를 설명하고 있다.
도 6을 참조하면, 고속 시그니쳐 길이 스케닝 모듈(217)는 다수의 듀얼 포트 RAM(220)을 이용하여 탐지 하고자 하는 패턴의 길이를 확인하는데 사용한다.
듀얼 포트 RAM(220)의 한쪽 어드레스 포트(address port)와 데이터 포트(data port)들을 통해 업로드 되는 고정 패턴(Fixed Pattern)의 길이에 대한 정보를 저장하게 된다. 예를 들어 "/script/update.asp"의 경우 마지막 4개 ASCII 텍스트의 값에 해당되는".asp" 의 16진수 텍스트(Hexadecimal text)들을 어드레스로 사용하고 고장패턴의 길이를 데이터로 사용하여 듀열 포트 RAM(220) 에 쓰게(WRITE) 한다.
이렇게 업데이트 되어 있는 듀얼 포트 RAM(220)의 다른 쪽 포트의 어드레스에 인입 패킷(Incoming Packet)을 적용하게 되면 읽게(READ) 되어 나오는 값들은 각 입력 바이트 값을 포함하고 있는 패턴의 길이를 나타내는 것이 다. 현재와 같은 경우에 패턴 매칭을 하고자 하는 패턴의 길이에 대한 값이 4번 연속적으로 같은 길이의 값으로 읽게 되어 나오게 된다.
고속 시그니쳐 패턴 매칭 모듈(218)에서도 같은 방법으로 하여 업데이트 되는 패턴의 나머지 부분에 대한 16진수 값을 이용하여 듀얼 포트 RAM(220)의 메모리 영역을 업데이트 하게 된다.
이 때는 각 데이터로 사용되는 비트들 중의 일부 비트를 이용하여 "1" 값으로 쓰게 되면 어드레스 라인(address line)에 적용된 인입 패킷(Incoming Packet)의 바이트가 탐지 되어야 할 패턴의 일부임을 나타내게 된다.
도 7은 본 발명에 따른 PCRE 탐지 모듈의 구조를 보여 준다.
도 7을 참조하면, PCRE 탐지 모듈은(300)은 다수의 PCRE 탐지 서브 모듈(310)로 구성되어 있다. PCRE 탐지 서브 모듈(310)은 멀티 패턴 탐지 모듈(Multi-Pattern Detection Module)(320)과 프로그래머블(Programmable) PCRE 매치 모듈(330)로 이루어진다.
멀티 패턴 탐지 모듈(320)은 고속 패킷 처리 모듈(200)에서 탐지된 고정 패턴 매칭 결과들을 수신하여 관련 고정 패턴이 포함되어 있는 룰(Rule)의 경우 고정 패턴(Fixed Pattern)의 수가 여러 개일 경우에, 멀티패턴들을 탐지한 후 PCRE 룰 요청 신호(Rule Request Signal)을 발생하고 해당되는 룰에 포함되어 있는 PCRE를 프로그래머블 PCRE 매치 모듈(330)로 PCRE 룰을 쓰게 되도록 한다.
본 발명에서 구현하고자 하는 주요 기능들은 PCRE 탐지 기능을 통해 가능하며 프로그래머블 PCRE 매치 모듈(330)의 경우, 멀티 패턴 탐지 모듈(320)의 결과를 바탕으로 해서 관련이 있는 PCRE가 실시간으로 프로그램 되도록 소량의 로직을 사용하여 PCRE 탐지 기능이 구현된다.
PCRE 탐지 서브 모듈(310)은 고정 패턴의 결과에 따라 구현이 되는데, 고정 패턴의 해석 결과가 여러 개의 룰에 포함될 가능성이 있는 경우에는 다수의 PCRE 탐지 서브 모듈(310)이 동시에 구동되어 패킷의 페이로드(payload)에 대한 PCRE 매칭이 실 시간으로 처리될 수 있도록 한다.
각 PCRE 탐지 서브 모듈(310)은 PCRE 매칭 결과 들을 발생하게 되며 이 결과들은 탐지 결과 처리 모듈(500)로 전달 되게 된다.
도 8은 본 발명에 따른 다이나믹 해시(Hash) 및 매치 모듈의 구조를 보이고 있다.
도 8을 참조하면, 다이나믹 해시 및 매치 모듈(400)의 주된 목적은 입력 데이터에서 반복적으로 나타날 수 있는 데이터의 형태(예를 들어 파일)들을 구별할 수 있는 자체 파라메타를 추출하여 반복적으로 같은 파일에 대한 해시(Hash) 값을 계산하는 절차를 줄여서 시스템의 전체 성능을 높이는 것이다.
다이나믹 해시와 매치 모듈(400)은 파일 콘텐츠 해싱 모듈(File Content Hashing Module)(410), 해시 매치 모듈(420), 메타데이터 추출 모듈(Metadata Extraction Module)(430), 메타데이터 매치 모듈(440), 메타데이터 엔트리 테이블(450)을 포함하여 구성된다.
파일 콘텐츠 해싱 모듈(410)은 입력되는 패킷들로 이루어 지는 세션정보를 통해 전달되는 파일의 시작점을 파악한 후 관련 파일에 속하는 패킷들을 수집해서 본 발명의 장치 안에서 CPU와의 연동 기능이 없이 파일을 복원한다. 이렇게 복원된 파일에 포함되어 있는 유해패턴의 유무를 확인 하기 위한 Hash 기능(예를 들어 MD5 hash)을 구동하여 해시 결과 값(Hash Result)을 만든다.
해시 매치 모듈(420)은 이미 유해성을 가지고 있는 파일의 해시 결과 값으로 정의되어 기존 해시 값 테이블(Existing Hash Value Table)(421)에 저장되어 있는 값들과 파일 콘텐츠 해싱 모듈(410) 에서 파일이 재구성되어 해시 결과 값으로 입력되는 값을 비교한다.
특히 해시 매치 모듈(420)의 해시 매치 기능은 메타데이터 추출 모듈(Metadata Extraction Module)(430)에서 제공되는 해시 매치 제어신호에 의해서 시작된다. 해시 매치 제어신호가 포지티브(Positive)일 경우에는 해시 읽기(Hash Read) 신호가 기존 해시 값 테이블(421)을 트리거(trigger)하고 읽게 되는 해시 읽기 값(Hash Read Value)과 비교 된다. 이렇게 비교된 결과 값은 해시 매칭 결과의 일부로서 탐지 결과 처리 모듈(500)에 전달되게 된다.
메타데이터 추출 모듈(430)은 파일 콘텐츠 해싱 모듈(410)에서 제공되는 파일 파일 시작 지시 신호를 기준으로 하여 입력되는 인입 패킷들로부터 각 파일에 대한 파일 메타데이터를 추출하게 된다.
메타데이터 매치 모듈(440)은 특정 파일의 종류에 따라 정의된 메타데이터 값이 메타데이터 추출 모듈(430)로부터 제공되면 메타데이터 엔트리 테이블(Metadata Entry Table)(450)로 부터 자체적으로 생성하여 저장되어 있는 메타데이터 값을 읽어와서 비교하게 된다. 메타데이터 엔트리 테이블(450)에 저장되어 있는 메타데이터 값이 화이트리스트(Whitelist)로서 작용이 되는 경우, 즉 해시 매치 모듈(420)의 해시 매칭 결과가 네가티브(Negative)이면(해시 값으로 확인된 파일의 유해 가능성이 없는 경우), 해시 매치 모듈(420)로 해시 매치 제어 신호가 네가티브로 해서 보내게 되며 해시 매치 모듈(420)은 세션 리셋(Session Reset) 신호를 파일 해싱 모듈(410)로 보내게 되며 해당 파일 재조합 과정을 시작하지 않게 하여 본 장치의 해싱 기반 매칭 성능을 높게 유지할 수 있게 한다.
메타데이터 엔트리 테이블(450)에는 메타데이터 추출 모듈(430)에서 추출된 파일 메타데이터가 저장되게 된다. 해시 매치 모듈(420)의 결과가 네가티브일 경우에 인에이블(Enable)되는 메타데이터 업데이터(Metadata Update) 신호에 의해 파일 메타데이터가 저장된다.
메타데이터 엔트리 테이블(450)에 저장되어 있는 메타데이터는 실시간으로 업데이트 가능한 구조로 구현되어 메타데이터 매치 모듈(440)로부터의 메타 읽기 신호에 의해 저장되어 있는 메터데이터를 전달하게 된다.
이상에서 설명한 본 발명은 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 한정되는 것은 아니다.
100: 탐지 룰 변환기 200: 고속 패킷 처리 모듈
300: PCRE 탐지 모듈 400: 동적 해시 및 매치 제어 모듈
500: 탐지 결과 처리 모듈 600: 패킷 FIFO
700: 완화 정책 적용 모듈 1000: 탐지 엔진

Claims (16)

  1. 스노트 룰과 야라 룰을 입력 받아 룰 포멧(format)으로 변환하는 탐지 룰 변환기; 및
    상기 변환된 룰을 바탕으로 네트워크로부터 입력되는 입력 패킷을 수신하여, 고속 패킷 처리 모듈에서 고정 패턴을 탐지하고, PCRE 탐지 모듈에서 PCRE 패턴을 매칭하고, 동적 해시 및 매치 제어 모듈에서 수행되는 동일 파일 검색한 결과를 탐지결과 처리 모듈을 통해 적용할 정책을 확인 후 완화 제어 신호를 완화 정책 적용 모듈에서 패킷 FIFO에 저장되어 있는 해당 입력 패킷을 리드(READ)하여 탐지 결과 적용 정책을 적용한 후 출력 패킷으로 보내는 탐지 엔진;을 포함하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  2. 제1항에 있어서,
    상기 입력 패킷은 패킷 FIFO에 라이트(Write) 되는 순간에 동시에 고속 패킷 처리 모듈과 동적 해시 및 매치 제어 모듈에 공급하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  3. 제1항에 있어서,
    상기 고속 패킷 처리 모듈은 패킷 파싱하여 헤더값과 페이로드값으로 구별하고 고정 패턴 시그니쳐를 탐지하고, 헤더값과 페이로드값을 PCRE 탐지 모듈, 동적 해시 및 매치 제어 모듈, 및 탐지 결과 처리 모듈에 전달하고, 고정 패턴 탐지 결과는 탐지 결과 처리 모듈로 전달하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  4. 제1항에 있어서,
    상기 PCRE 탐지 모듈은 고속 패킷 처리 모듈로부터 고정 패턴 매칭 결과가 포지티브로 나오고 탐지 룰 변환기에서 제공된 룰 넘버에 적용되는 PCRE 패턴이 있는 경우 해당 PCRE 패턴을 받아 내부 DFA가 해당 PCRE 패턴을 탐지하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  5. 제1항에 있어서,
    상기 동적 해시 및 매치 제어 모듈은 고속 패킷 처리 모듈로부터 헤더값과 페이로드값을 공급받고, 페이로드로부터 파일을 재조합할 수 있는 내용을 확인하여 파일을 조합한 후 입력 데이터에서 반복적으로 나타날 수 있는 데이터의 형태들을 구별할 수 있는 자체 파라메타를 추출하여 반복적으로 같은 파일에 대한 해시값을 계산하는 절차를 줄이는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  6. 제1항에 있어서,
    상기 고속 패킷 처리 모듈, PCRE 탐지 모듈, 동적 해시 및 매치 제어 모듈로부터 각각 나오는 고정 패턴 매칭 결과, PCRE 매칭 결과, 및 해시 매칭 결과는 패킷 단위로 프로세스되어 결과가 나오며 이 결과 값들은 종합적으로 동시에 비교되어 탐지 룰 변환기에서 제공되는 룰 정책을 토대로 완화 제어 신호를 발생하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  7. 제1항에 있어서,
    상기 고속 패킷 처리 모듈은 시그니쳐 매칭 모듈을 통해 입력되는 패킷의 페이로드(payload)와 실시간 비교하여 시그니쳐 매칭 결과들을 패킷 파싱 모듈의 헤더 정보와 함께 패킷 처리 결정 모듈로 전달되어 고속 패턴 결정 결과 신호를 발생하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  8. 제7항에 있어서,
    상기 시그니쳐 매칭 모듈은 고정 패턴의 일부분과 길이를 비교하여 실제 고속 패턴이 존재할 수 있는 데이터의 영역을 확인하는 고속 시그니쳐 스케닝 모듈을 통해 생성된 스켄 데이터 스트림을 스켄 데이터 저장 모듈에 전달하여 확인된 길이만큼의 데이터를 패턴 메칭 윈도우 신호 길이만큼 완전 패턴 매칭 모듈의 내부 메모리에 저장하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  9. 제8항에 있어서,
    상기 고속 시그니쳐 스케닝 모듈은 고속 시그니쳐 길이 스케닝 모듈과 고속 시그니쳐 패턴 매칭 모듈에 다수의 고정 패턴에 대한 시그니쳐가 저장이 되어 있으며 각각 매치된 패턴 길이 값과 부분적인 패턴 매칭 결과 값들을 발생하여 시그니쳐 윈도우 선택 모듈로 전달하여 저장된 고정 패턴의 길이와 비교 위치를 정하여 패턴 매칭 윈도우 신호를 발생하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  10. 제9항에 있어서,
    상기 고속 시그니쳐 길이 스케닝 모듈은 다수의 듀얼 포트 RAM을 이용하여 탐지 하고자 하는 패턴의 길이를 확인하고, 상기 듀얼 포트 RAM의 한쪽 어드레스 포트와 데이터 포트들을 통해 업로드 되는 고정 패턴의 길이에 대한 정보를 저장하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  11. 제1항에 있어서,
    상기 PCRE 탐지 모듈은 멀티 패턴 탐지 모듈과 프로그래머블 PCRE 매치 모듈로 이루어진 다수의 PCRE 탐지 서브 모듈로 구성되며,
    상기 멀티 패턴 탐지 모듈은 고속 패킷 처리 모듈에서 탐지된 고정 패턴 매칭 결과들을 수신하여 관련 고정 패턴이 포함되어 있는 룰의 경우 고정 패턴의 수가 여러 개일 경우 멀티 패턴들을 탐지한 후 PCRE 룰 요청 신호를 발생하고,
    상기 프로그래머블 PCRE 매치 모듈은 PCRE가 실시간으로 프로그램 되도록 소량의 로직을 사용하여 PCRE 탐지 기능이 구현하며,
    상기 PCRE 탐지 서브 모듈은 고정 패턴의 결과에 따라 구현되며, 고정 패턴의 해석 결과가 여러 개의 룰에 포함될 가능성이 있는 경우에 동시에 구동되어 패킷의 페이로드에 대한 PCRE 매칭이 실시간으로 처리될 수 있도록 하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  12. 제1항에 있어서,
    상기 다이나믹 해시 및 매치 모듈은,
    입력되는 패킷들로 이루어지는 세션정보를 통해 전달되는 파일의 시작점을 파악한 후 관련 파일에 속하는 패킷들을 수집해서 CPU와의 연동 기능이 없이 파일을 복원하는 파일 콘텐츠 해싱 모듈;
    유해성을 가지고 있는 파일의 해시 결과 값으로 정의되어 기존 해시 값 테이블에 저장되어 있는 값들과 상기 파일 콘텐츠 해싱 모듈에서 파일이 재구성되어 해시 결과 값으로 입력되는 값을 비교하는 해시 매치 모듈;
    상기 파일 콘텐츠 해싱 모듈에서 제공되는 파일 시작 지시 신호를 기준으로 하여 입력되는 인입 패킷들로부터 각 파일에 대한 파일 메타데이터를 추출하는 메타데이터 추출 모듈;
    특정 파일의 종류에 따라 정의된 메타데이터 값이 상기 메타데이터 추출 모듈로부터 제공되면 메타데이터 엔트리 테이블로부터 자체적으로 생성하여 저장되어 있는 메타데이터 값을 읽어 와서 비교하는 메타데이터 매치 모듈; 및
    상기 메타데이터 추출 모듈에서 추출된 파일 메타데이터를 저장하는 메타데이터 엔트리 테이블;을 포함하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  13. 제12항에 있어서,
    상기 해시 매치 모듈의 해시 매치 기능은 메타데이터 추출 모듈에서 제공되는 해시 매치 제어신호에 의해서 시작되고, 상기 해시 매치 제어신호가 포지티브일 경우 해시 읽기 신호가 기존 해시 값 테이블을 트리거하고 읽게 되는 해시 읽기 값과 비교하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  14. 제12항에 있어서,
    상기 해시 매치 모듈의 해시 매칭 결과가 네가티브이면, 해시 매치 모듈로 해시 매치 제어 신호가 네가티브로 해서 보내게 되고, 해시 매치 모듈은 세션 리셋 신호를 파일 해싱 모듈로 보내게 되며 해당 파일 재조합 과정을 시작하지 않게 하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  15. 제12항에 있어서,
    상기 해시 매치 모듈의 결과가 네가티브일 경우 인에이블되는 메타데이터 업데이터 신호에 의해 파일 메타데이터가 저장되는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
  16. 제12항에 있어서,
    상기 메타데이터 엔트리 테이블에 저장되어 있는 메타데이터는 실시간으로 업데이트 가능한 구조로 구현되어 메타데이터 매치 모듈로부터의 메타 읽기 신호에 의해 저장되어 있는 저장된 메터데이터를 전달하는 것을 특징으로 하는 FPGA 기반 고속 스노트 룰과 야라 룰 매칭 장치.
KR1020170115180A 2017-09-08 2017-09-08 Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치 KR102014736B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170115180A KR102014736B1 (ko) 2017-09-08 2017-09-08 Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170115180A KR102014736B1 (ko) 2017-09-08 2017-09-08 Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치

Publications (2)

Publication Number Publication Date
KR20190028596A true KR20190028596A (ko) 2019-03-19
KR102014736B1 KR102014736B1 (ko) 2019-08-28

Family

ID=65908457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170115180A KR102014736B1 (ko) 2017-09-08 2017-09-08 Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치

Country Status (1)

Country Link
KR (1) KR102014736B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112995174A (zh) * 2021-02-24 2021-06-18 紫光云技术有限公司 基于snort的入侵防御系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110995362B (zh) * 2019-12-06 2021-06-08 西安电子科技大学 使用软核处理器的mdi-qkd的编码系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809416B1 (ko) * 2006-07-28 2008-03-05 한국전자통신연구원 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법
KR101378115B1 (ko) * 2012-11-01 2014-03-27 한국전자통신연구원 Pcre 기반 패턴 매칭 기법을 이용한 네트워크 침입 탐지 장치 및 방법
KR20140090123A (ko) * 2014-06-20 2014-07-16 (주)소만사 네트워크 정보유출방지 기기의 대용량 패킷 처리를 위한 하드웨어 엔진
KR101518852B1 (ko) * 2013-12-23 2015-05-13 주식회사 시큐아이 Ips 장치 및 ids 장치를 포함하는 보안 시스템 및 그것의 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809416B1 (ko) * 2006-07-28 2008-03-05 한국전자통신연구원 보안 시스템을 위한 최적 시그니처 자동 생성 장치 및 방법
KR101378115B1 (ko) * 2012-11-01 2014-03-27 한국전자통신연구원 Pcre 기반 패턴 매칭 기법을 이용한 네트워크 침입 탐지 장치 및 방법
KR101518852B1 (ko) * 2013-12-23 2015-05-13 주식회사 시큐아이 Ips 장치 및 ids 장치를 포함하는 보안 시스템 및 그것의 동작 방법
KR20140090123A (ko) * 2014-06-20 2014-07-16 (주)소만사 네트워크 정보유출방지 기기의 대용량 패킷 처리를 위한 하드웨어 엔진

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112995174A (zh) * 2021-02-24 2021-06-18 紫光云技术有限公司 基于snort的入侵防御系统

Also Published As

Publication number Publication date
KR102014736B1 (ko) 2019-08-28

Similar Documents

Publication Publication Date Title
US11916933B2 (en) Malware detector
US10027691B2 (en) Apparatus and method for performing real-time network antivirus function
US7596809B2 (en) System security approaches using multiple processing units
US7706378B2 (en) Method and apparatus for processing network packets
US9525696B2 (en) Systems and methods for processing data flows
KR101554809B1 (ko) 프로토콜 핑거프린팅 및 평판 상관을 위한 시스템 및 방법
US8010469B2 (en) Systems and methods for processing data flows
US7979368B2 (en) Systems and methods for processing data flows
US20050216770A1 (en) Intrusion detection system
US7873998B1 (en) Rapidly propagating threat detection
EP2214115A1 (en) Efficient application identification with network devices
US20070245417A1 (en) Malicious Attack Detection System and An Associated Method of Use
JP2008011537A (ja) ネットワークセキュリティデバイスにおけるパケット分類
WO2007070838A2 (en) Systems and methods for processing data flows
GB2432933A (en) Network security apparatus which extracts a data stream from network traffic and performs an initial operation on the data before scanning for viruses.
JP7388613B2 (ja) パケット処理方法及び装置、デバイス、並びに、コンピュータ可読ストレージ媒体
KR20070087198A (ko) 네트워크 인터페이스 및 방화벽 장치
WO2018076697A1 (zh) 僵尸特征的检测方法和装置
US20040111642A1 (en) Content security by network switch
GB2432934A (en) Virus scanning for subscribers in a network environment
Lagrasse et al. Digital forensic readiness framework for software-defined networks using a trigger-based collection mechanism
US20230283631A1 (en) Detecting patterns in network traffic responses for mitigating ddos attacks
KR102014741B1 (ko) Fpga 기반 고속 스노트 룰과 야라 룰 매칭 방법
KR100769221B1 (ko) 제로데이 공격 대응 시스템 및 방법
US9306908B2 (en) Anti-malware system, method of processing packet in the same, and computing device

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