KR100639568B1 - 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법 - Google Patents

네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법 Download PDF

Info

Publication number
KR100639568B1
KR100639568B1 KR1020050006958A KR20050006958A KR100639568B1 KR 100639568 B1 KR100639568 B1 KR 100639568B1 KR 1020050006958 A KR1020050006958 A KR 1020050006958A KR 20050006958 A KR20050006958 A KR 20050006958A KR 100639568 B1 KR100639568 B1 KR 100639568B1
Authority
KR
South Korea
Prior art keywords
information
attack
packet
scenario
rule
Prior art date
Application number
KR1020050006958A
Other languages
English (en)
Other versions
KR20060086081A (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 KR1020050006958A priority Critical patent/KR100639568B1/ko
Publication of KR20060086081A publication Critical patent/KR20060086081A/ko
Application granted granted Critical
Publication of KR100639568B1 publication Critical patent/KR100639568B1/ko

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/1433Vulnerability analysis

Landscapes

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

Abstract

본 발명은 정보보호시스템의 성능측정을 위해, 네트워크 프로세서(NP:Network Processor)를 기반으로 Snort 룰을 이용한 공격패킷을 생성하여 정보보호시스템의 성능측정을 가능케 하는 정보보호시스템의 성능측정 장치 및 그 방법에 관한 것으로서,
Snort의 룰을 파싱하여 공격패킷을 생성하는데 필요한 정보만을 추출하여 DB로 만드는 Snort룰DB생성기(100); Snort룰파일들을 파싱을 통해 데이타베이스화한 공격DB(150); 상기 공격DB에 데이타베이스화되어 있는 룰정보를 이용하여 공격의 시나리오를 작성하는 시나리오생성기(200); 네트워크 프로세서 내부에서 동작하며, 상기 시나리오생성기(200)에서 생성된 공격 시나리오를 이용하여 생성 및 전송 명령을 내리는 Strong Arm Core와 패킷을 생성하고 전송하는 마이크로 엔진으로 구성된 패킷생성/전송기(300)를 포함하여 이루어져,
snort의 룰을 파싱(parsing)하여 공격패킷정보를 공격DB로 생성하고, 사용자는 원하는 패킷을 선택하여 공격 시나리오를 작성한 후, 네트워크 프로세서(NP:Network Processor)를 이용해 원하는 수량만큼의 패킷을 생성하여 정보보호시스템에 전송하고, 정보보호시스템이 그에 합당한 동작을 하는지 검증할 수 있는 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법이다.
네트워크프로세서(NP), 정보보호시스템, 성능측정장치, 시나리오생성, 공격DB생성

Description

네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법{AN APPARATUS FOR A PERFORMANCE TEST OF INFORMATION SECURITY SYSTEM USING NETWORK PROCESSOR AND A METHOD THEREOF}
도 1은 본 발명에 의한 네트워크프로세서를 이용한 정보보호시스템의 성능측정장치의 전체 구성도
도 2는 본 발명에 의한 성능측정장치의 snort룰DB생성기의 동작 순서도
도 3은 본 발명에 의한 성능측정장치의 snort룰DB업데이트 동작 순서도
도 4는 본 발명에 의한 성능측정장치의 시나리오생성기의 동작 순서도
도 5는 본 발명에 의한 성능측정장치의 패킷생성/전송기의 동작 순서도
* 도면의 주요 부분에 대한 부호 설명 *
100 : 공격DB생성기
150 : 공격DB
200 : 시나리오생성기
300 : 패킷생성/전송기
본 발명은 정보보호시스템의 성능측정을 위해, 네트워크프로세서(NP:Network Processor)를 기반으로 Snort 룰을 이용한 공격패킷을 생성하여 정보보호시스템의 성능측정을 가능케 하는 정보보호시스템의 성능측정 장치 및 그 방법에 관한 것이다.
통상, 네트워크프로세서는 각종 네트워크 프로토콜의 처리 성능 향상을 위해 패킷 처리 기능을 강화한 특화된 구조를 가지며, 다양한 프로토콜을 수용할 수 있도록 프로그래밍이 가능한 네트워크 전용 프로세서이다. 또한, Snort는 패킷스니퍼(Packet sniffer)/패킷 로거(Packet logger)/네트워크 침입탐지시스템(IDS)이다. 원래 패킷스니퍼로써 개발되었으며, 다양한 OS에서 동작하고, 패킷 내용을 16진수로 출력하며, 서로 다른 네트워크패킷을 동일한 방법으로 출력하는 기능을 목표로 한다. Snort는 향상된 네트워크 플로우기능, 데이터베이스 플러그인, 전처리 플러그인 등의 기능을 포함한다.
한편, 정보화시대의 도래로 인해 정보통신 분야는 눈부시게 발전하였는데, 이에 따라 정보통신의 역기능 또한 사회의 중요한 문제로 대두되었다. 이러한 역기능을 최소화하기 위한 노력으로 정보보호시스템에 대한 관심이 집중되고 있으며 그와 더불어 정보보호시스템의 신뢰성 확보를 위한 인증과 성능 평가의 중요성 역시 부각되고 있다. 이미 선진국과 국내에서도 정보보호시스템 평가를 위한 평가기관과 각 기관 혹은 국가별로 평가 방법들이 존재하고 있다. 이들 기관에서 이루어지고 있는 정보보호시스템에 대한 평가의 주된 연구 방향은 공격들에 대한 다양한 환경 에서의 대응 평가 및 통계적인 출력에 초점이 맞추어져 있으며, 현재 통신망 대역폭이 급증하는 추세에 맞추어 기가급 이상의 트레픽 처리에 대한 평가 필요성이 부각되고 있다.
본 발명은 상기 종래의 필요성에 부합하기 위하여 안출된 것으로,
정보보호시스템을 테스트할 때, 사용자가 원하는 패킷을 생성하여 정보보호시스템에 전송하여 해당 정보보호시스템의 성능값을 측정할 수 있는 시스템으로서, snort의 룰을 파싱(parsing)하여 공격패킷정보를 생성하고, 사용자는 원하는 패킷을 선택하여 시나리오를 작성한 후, 네트워크 프로세서(NP:Network Processor)를 이용해 원하는 수량만큼의 패킷을 생성하여 정보보호시스템에 전송하고, 이로써 정보보호시스템이 그에 합당한 동작을 하는지 검증할 수 있는 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법을 제공하는데 그 목적이 있다.
본 발명은 정보보호시스템의 성능측정을 위해, 네트워크 프로세서(NP:Network Processor)를 기반으로 Snort 룰을 이용한 공격패킷을 생성하여 정보보호시스템의 성능측정을 가능케 하는 정보보호시스템의 성능측정 장치 및 그 방법에 관한 것으로서,
Snort의 룰을 파싱하여 공격패킷을 생성하는데 필요한 정보를 추출하여 DB로 만드는 Snort룰DB생성기; Snort룰파일들을 파싱을 통해 데이타베이스화한 공격DB; 상기 공격DB에 데이타베이스화되어 있는 룰정보를 이용하여 공격의 시나리오를 작성하는 시나리오생성기; 네트워크프로세서 내부에서 동작하며, 상기 시나리오생성기에서 생성된 공격 시나리오를 이용하여 생성 및 전송 명령을 내리는 Strong Arm Core와 패킷을 생성하고 전송하는 마이크로 엔진으로 구성된 패킷생성/전송기를 포함하여 이루어져,
snort의 룰을 파싱(parsing)하여 공격패킷정보를 생성하고, 사용자는 원하는 패킷을 선택하여 시나리오를 작성한 후, 네트워크 프로세서(NP:Network Processor)를 이용해 원하는 수량만큼의 패킷을 생성하여 정보보호시스템에 전송하고, 이로써 정보보호시스템이 그에 합당한 동작을 하는지 검증하는 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법이다.
이하, 첨부된 도면을 참조하여 본 발명에 의한 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법의 바람직한 실시예를 상세하게 설명한다.
도 1은 본 발명에 의한 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치의 전체 구성도이다. 도 1에 도시한 바와 같이, 본 발명에 의한 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치는,
Snort의 룰을 파싱하여 공격패킷을 생성하는데 필요한 정보만을 추출하여 DB 로 만드는 Snort룰DB생성기(100); Snort룰파일들을 파싱을 통해 데이타베이스화한 공격DB(150); 상기 공격DB에 데이타베이스화되어 있는 룰정보를 이용하여 공격의 시나리오를 작성하는 시나리오생성기(200); 네트워크프로세서 내부에서 동작하며, 상기 시나리오생성기(200)에서 생성된 공격 시나리오를 이용하여 생성 및 전송 명령을 내리는 Strong Arm Core와 패킷을 생성하고 전송하는 마이크로 엔진으로 구성된 패킷생성/전송기(300)를 포함하여 이루어진다.
상기에서 Snort룰DB생성기(100), 공격DB(150), 시나리오 생성기(200)는 기능적으로 호스트시스템 영역(A)에 속하고, 패킷생성/전송기(300)는 기능적으로 네트워크프로세서시스템 영역(B)에 속한다.
보다 상세하게, 본 발명에 적용되는 네트워크프로세서는 자체 운영체계(OS)를 가지고 있으며, Strong Arm Core와 마이크로엔진을 컨트롤한다. 또한, Strong Arm Core, 마이크로엔진, FBI유니트와 IX버스, SRAM과 SDRAM메모리, PCI유니트를 포함하여 구성된다. 상기 Strong Arm Core 프로세서와 마이크로엔진은 초당 수백만 개의 이더넷 패킷들을 처리하도록 설계된다. 마이크로엔진은 Strong Arm Core의 지원 없이 패킷을 처리할 수 있으며, 독립적인 프로그램 카운터, zero overhead context switching, 하드웨어 세마포어를 가진다. 또한 마이크로엔진은 ALU와 시프터를 포함하는데, 이들 ALU와 시프터는 하나의 사이클에서 동시에 수행될 수 있다. 마이크로엔진에서 사용되는 명령어세트는 패킷들을 최대한 빠르고, 효율적으로 전달하기 위해 비트, 바이트, 워드, 롱워드 오퍼레이션이 필요한 네트워크와 통신 응 용을 위해 디자인된다. FBI유니트는 IX버스상의 기가 비트 MAC-계층 디바이스 같은 고속 입출력장치를 서비스한다. 고속의 SRAM메모리는 룩업 테이블이나 패킷 정보를 저장하는데 사용되어지며, SDRAM메모리는 저비용의 메모리로 송수신되는 패킷 저장에 사용된다. PCI유니트는 다른 PCI디바이스나 호스트 프로세서와의 표준 인터페이스로 제공된다. 경우에 따라 많은 PCI디바이스를 지원하거나 빠른 버스와 연결하기 위하여 PCI-to-PCI브리지 디바이스를 사용한다.
본 발명에 의한 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치는 상술한 바와 같이 기능적으로 호스트시스템 영역(A)과 네트워크프로세서시스템 영역(B)으로 나뉘는데,
상기 호스트시스템(A)은 사용자가 보다 쉽게 공격패킷을 생성할 수 있도록 돕는 부분이며, snort의 룰을 파싱하여 공격패킷을 이루는 정보를 DB화하여 관리하도록 도와주며, 생성할 공격에 대한 시나리오파일을 생성하는데 Snort룰DB생성모듈, 시나리오생성모듈을 포함하여 이루어진다.
호스트시스템은 웹인터페이스를 이용한 GUI를 제공하여 보다 용이하고 사용하기 편한 인터페이스를 제공하도록 하는 것이 바람직하다. 또한 DB의 관리를 위하여 웹을 이용한 인터페이스를 제공하는 것이 바람직하다.
상기 Snort룰DB생성모듈은 snort의 룰을 파싱하여 공격패킷을 생성하는데 필요한 정보만을 추출하는 모듈로서, 룰헤더부분 파싱으로 콘텐츠 부분의 내용과 크기, 위치를 알아낸다. 룰옵션부분 파싱으로 파싱된 룰의 공격이름 및 SID값을 알아 낸다. 이 모듈에서는 룰파일을 입력받는다. 룰파일은 하나의 공격패턴이 하나의 라인으로 구성된다. 룰헤더과 룰옵션은 소정의 구분자를 사용하는데 이를 이용하여 문자열 비교를 통해 정보를 추출한다.
상기 시나리오생성모듈은 공격DB에 저장되어 있는 패킷 정보를 선택하여 패킷을 생성할 준비를 한다. 이 모듈의 기능은 프로토콜 타입별 공격패킷 정보를 출력하고, 공격유형에 따른 공격 패킷정보를 출력하여 실제 공격정보를 담고 있는 시나리오 파일로 작성한다.
한편, 상기 네트워크프로세서시스템(B)은 호스트시스템(A)과 연동하여 작동하며 네트워크프로세서가 내재된 시스템보드로 구현되는데, 마이크로엔진 스케쥴모듈, 패킷복사 및 전송모듈을 포함하여 이루어진다.
상기 마이크로엔진 스케쥴모듈은 마이크로엔진에 대한 스케쥴링을 담당하는데 유휴상태인 마이크로 엔진에게 복사나 전송 명령을 내린다. 마이크로엔진 스케쥴모듈은 유휴상태인 마이크로엔진을 체크하고, 유휴상태인 마이크로엔진에게 복사명령을 내리고, 유휴상태인 마이크로엔진에게 전송명령을 내리고, 반환된 전송량을 합하여 프로그램 종료시 디스플레이한다. 마이크로엔진 스케쥴모듈은 Strong Arm Core에서 동작한다.
상기 패킷생성 및 전송모듈은 선택한 패킷 정보를 가지고 실제 공격패킷을 생성한다. 패킷생성모듈에서는 공격패킷을 생성하는 동작만을 하며, 패킷 생성 및 전송모듈은 하나의 버퍼를 가지고 있으며 패킷 생성 후 생성된 패킷은 버퍼에 저장 되고 전송모듈에서 버퍼에서 패킷을 전송하게 된다. 이와 같은 동작은 마이크로엔진에서 동작한다.
도 2는 본 발명에 의한 성능측정장치의 snort룰DB생성기의 동작 순서도이다. 도 2에 도시한 바와 같이, 본 발명에 의한 성능측정장치의 snort룰DB생성기의 동작은,
DB화를 진행할 Snort의 룰파일을 선택하여 입력하는 스노트룰 파일 입력단계(S100);
상기 스노트룰 파일의 이름을 통해 정보를 추출하는 공격 유형 추출단계(S110);
룰 헤더부분에 대한 파싱을 진행하는 룰헤더 파싱단계(S120);
룰 옵션부분에 대한 파싱을 진행하는 롤옵션 파싱단계(S130)
상기 파싱된 정보들은 구조체로 구성하여 각각의 정보를 DB의 필드에 저장하는 DB 저장단계(S140);
룰파일의 끝인지를 판단하여 프로그램을 종료여부를 판단하는 단계(S150);
를 포함하여 이루어진다.
상기 스노트룰 파일 입력단계(S100)는 스노트의 룰파일을 선택하는 부분을 말하는데, 특정 공격 정보를 선택적으로 입력하여 원하는 정보만을 DB화하여 놓을 수도 있다. 상기 공격 유형 추출단계(S110)는 스노트룰 파일에서 헤더부분과 옵션 부분의 파싱을 통해 공격패킷을 이루는 정보를 추출하는 준비를 하는 단계이며, 이 단계에서는 하나의 라인으로 구분되어 있는 하나의 공격 정보의 정의를 라인단위로 잘라 파싱단계로 넘겨주는 단계이다. 상기 파싱단계는 두단계로 나뉘는데, 먼저 룰 헤더부분에 대한 파싱을 진행하는 룰헤더 파싱단계(S120)와 옵션부분을 파싱하는 롤옵션 파싱단계(S130)이다. 상기 룰헤더 파싱단계(S120)에서 룰 헤더 부분은 ‘;’(세미콜론)으로 구분되어 있으며, 세미콜론으로 구분되어진 정보들을 추출하다가 ‘(’(괄호)를 만나게 되면, 파싱을 종료한다. 왜냐하면, 옵션부분의 시작을 알리는 기호이기 때문이다. 다음으로는 롤옵션 파싱단계(S130)에서는 옵션부분을 파싱하게 되는데, 이는 ‘ ’(공백)으로 구분되어져 있다. 공백을 검사하면서 하나씩 파싱을 거치게 된다. 상기 파싱된 정보들은 구조체에 저장하게 되고 저장된 구조체는 다음 단계에서 각각의 필드에 저장하게 되는데, 이러한 저장작업은 상기 DB에 저장단계(S140)에서 수행되며, 이 단계가 끝나면 파일의 끝인지 여부에 대한 판단(S150)따라 맨 처음의 단계로 돌아가거나, 종료하게 된다.
Snort의 룰을 DB화하면 공격시나리오를 작성할 때마다 파싱과정을 거치지 않아도 되며, 데이터의 유지보수에 드는 오버헤드도 줄일 수 있다. 먼저 Snort룰DB생성기는 Linux에서 Mysql과 연동하여 동작하는데, Mysql은 Oracle이나 Informix와 같은 SQL기반 데이터베이스이며, 오픈소스로 이루어져 사용자가 손쉽게 구할 수 있고, 작은 형태의 데이터베이스를 구축할 때 도움이 된다. Snort 룰DB생성기는 먼저 파싱 단계를 거치고 그 정보를 데이터베이스에 저장하며 그 결과를 화면에 표시한 다.
데이터베이스에 테이블이 존재하지 않으면, 테이블을 생성하고 정보를 입력하며, 테이블이 존재하면 정보를 바로 입력한다. 테이블에 정보가 입력되면 시나리오를 생성할 때. 정보를 빼내어 라인으로 구분된 시나리오 파일을 만들게 된다.
Snort룰DB는 Snort룰을 데이터베이스화 한 것이며, 크게 룰테이블과 옵션테이블로 나뉜다. 룰테이블은 룰헤더값을 중심으로 저장된다. 룰헤더의 값들은 헤더파일에 정의되며, 이 값들은 정수값으로 이루어져 있다. 이러한 정수값을 테이블에 넣음으로써 DB의 용량도 최소화하고, DB의 데이터를 다른 응용프로그램에서 사용할 때 헤더 파일의 정보를 공유함으로써 데이터의 공유가 가능하다.
Snort의 룰을 DB화하여 놓으면, 룰파일이 업데이트 되었을 경우 해당 자료들만 다시 파싱과정을 거치게 되어 시간에 대한 이득을 얻을 수 있다. 또한 Snort의 룰파일의 구조가 변하더라도 이미 필요한 정보를 가지고 있음으로 추가되는 옵션에 대한 정의만으로 기존 데이터를 사용할 수 있다.
도 3은 본 발명에 의한 성능측정장치의 snort룰DB업데이트 동작 순서도이다. 도 3에 도시한 바와 같이, 본 발명에 의한 성능측정장치의 snort룰DB업데이트 동작은,
DB화를 진행할 Snort의 룰파일을 선택하여 입력하는 스노트룰 파일 입력단계(S100);
상기 스노트룰 파일의 이름을 통해 정보를 추출하는 공격 유형 추출단계 (S110);
룰 헤더부분에 대한 파싱을 진행하는 룰헤더 파싱단계(S120);
룰 옵션부분에 대한 파싱을 진행하는 롤옵션 파싱단계(S130)
파싱된 정보중 SID 값이 기존DB에 존재하는 정보인가를 판단하는 SID존재여부 판단단계(S135');
상기 구조체에 있는 정보가 기존에 있는 정보일 경우 기존의 정보를 삭제하고 새로운 정보를 입력하게 되고, 구성된 구조체는 다음 단계에서 각각의 필드에 저장하는 DB 저장단계(S140');
룰파일의 끝인지를 판단하여 프로그램을 종료여부를 판단하는 단계(S150);
를 포함하여 이루어진다.
모든 단계는 위의 snort룰DB생성기의 동작과 같은 동작을 수행하지만 한가지 다른 점은 DB저장단계에서 구조체에 있는 정보가 기존에 있는 정보일 경우 기존의 정보를 삭제하고 새로운 정보를 입력하게 된다. 이는 가장 최신의 버전을 유지하기 위함이고, 또는 각종 룰에 대한 공격정보 생성에 있어 손쉽게 정보를 바꿔가며 공격정보를 생성하기 위함이다.
도 4는 본 발명에 의한 성능측정장치의 시나리오생성기의 동작 순서도이다. 도 4에 도시한 바와 같이, 본 발명에 의한 성능측정장치의 시나리오생성기의 동작은,
공격유형을 선택하는 공격 유형 선택단계(S200);
공격타입을 선택하는 공격 타입 선택단계(S210);
출발지에 대한 정보를 입력하는 출발지 정보 입력단계(S220);
도착지 정보를 입력하는 도착지 정보 입력단계(S230);
시나리오 파일 추가단계(S240);
추가여부 판단단계(S250);
시나리오파일 이름입력단계(S260);
를 포함하여 이루어진다.
시나리오생성기는 사용자가 스노트툴DB의 정보로 공격을 이루는 시나리오 파일을 만드는 것이며, 이러한 작업을 수행함으로써 생성된 시나리오 파일로 여러 제품을 동일한 패킷으로 테스트할 수 있으며, 여러 가지 시나리오 파일을 생성하여 버전이 업데이트될 때마다 같은 동작들을 테스트해 볼 수 있다. 시나리오생성기는 4단계에 걸쳐 정보를 입력하게 된다.
먼저 상기 공격 유형 선택단계(S200)와 공격 타입 선택단계(S210)에서 공격유형과 타입을 선택하게 된다. 특정 SID를 선택할 수도 있으며, 선택된 정보를 가지고 DB에서 정보를 가져오게 된다.
다음으로 출발지 정보 입력단계(S220)에서 출발지에 대한 정보를 입력하게 된다. 출발지 정보는 클래스 대역의 입력이 가능하며 클래스 대역으로 입력하면, 클래스 대역 내에서 랜덤으로 주소값을 선택하게 된다. 주소값을 선택하면 포트번 호도 입력을 하게 된다. 포트번호 역시 랜덤으로 선택할 수 있다. 그러나 포트번호가 공격타입에 정의되어 있으면 입력할 수 없다. 왜냐하면 그 포트를 이용하여야만 공격패킷의 정보를 입력할 수 있기 때문이다.
다음단계로 도착지 정보 입력단계(S230)는 도착지 정보를 입력하게 된다. 도착지정보는 하나의 시스템을 테스트 대상으로 하기 때문에 하나의 정보만을 입력하게 되며, 포트번호는 출발지 정보와 동일하게 입력 가능하다.
다음단계인 시나리오 파일 추가단계(S240)에서는 패킷을 생성하고 싶은 양을 입력하게 되고, 추가여부 판단단계(S250)에서 시나리오 파일에 공격정보를 더 추가할 것인지 여부를 판단한 후, 시나리오파일 이름입력단계(S260)에서 선택된 정보들은 연결목록(Linked list)의 자료구조를 가지고 있는 구조체로 생성되고, DB에서 불러온 정보들을 구조체에 저장하게 된다. 저장된 구조체는 시나리오 파일로 만들어진다.
도 5는 본 발명에 의한 성능측정장치의 패킷생성/전송기의 동작 순서도이다. 도 5에 도시한 바와 같이, 본 발명에 의한 성능측정장치의 패킷생성/전송기의 동작은,
작성한 시나리오 파일을 파싱을 통하여 공격정보를 이루는 기본적인 구조체를 생성하는 시나리오 파일 파싱단계(S300);
메모리영역의 초기화와 raw소켓을 여는 일등을 수행하는 프로토콜 헤더생성단계(S310);
IP헤더를 생성하는 IP헤더생성단계(S320);
상기 생성된 헤더들의 체크섬을 계산하는 Check Sum확인단계(S330);
패킷의 내용부분을 채우는 패킷 생성단계(S340);
시나리오 파일의 끝인지 여부 판단단계(S350);
패킷을 전송하는 패킷전송단계(S360);
를 포함하여 이루어진다.
시나리오 파일 파싱단계(S300)에서 패킷생성/전송기는 먼저 앞에서 작성한 시나리오 파일을 파싱을 통하여 공격정보를 이루는 기본적인 구조체를 생성한다. 이는 시나리오 파일 파싱단계에서 이루어지며, 시나리오 파일은 라인으로 구분하여져 있으며, 각각의 정보를 정수값으로 이루어져 있다. 그 후 libnet을 변형시킨 함수들을 이용하여 raw소켓을 여는 동작을 수행한다. 이는 생성된 패킷을 네트워크 상에 전송할 때 사용하는 방법이며, raw소켓은 C언어에서 정의되어있는 소켓의 방법들중 한가지이다. 그리고 메모리영역에 정의해 놓은 패킷의 사이즈만큼의 버퍼영역을 할당하고 이를 초기화한다. 패킷의 사이즈들은 헤더파일에 정의되어 있으며, 헤더파일들에는 ip_hdr이라는 ip헤더 구조체와 tcp_hdr, icmp_hdr등 각각의 프로토콜별로 구조체를 정의되어져 있다.
다음 단계인 프로토콜 헤더생성단계(S310)에서는 메모리영역의 초기화와 raw소켓을 여는 일등을 수행하게 된다. 그리고 TCP 헤더나 icmp 헤더 각각에 맞는 정보를 헤더파일에 정의된 구조체에 값을 집어넣게 된다. 이처럼 TCP헤더를 만들고, IP헤더 역시 마찬가지로 정의된 구조체에 값을 집어넣는다.
IP헤더를 생성은 IP헤더생성단계(S320)에서 수행된다.
그리고 생성된 헤더들의 체크섬을 계산한다. IP헤더와 TCP헤더의 체크섬 계산방법은 동일하나 페이로드 부분이 다르기 때문에 계산결과는 다르다. 이는 Check Sum확인단계(S330)에서 수행한다.
이와 같은 동작을 수행함으로써 패킷의 내용부분을 채우게 되고 이러한 동작을 수행한 후 패킷을 전송하게 된다(S340, S350, S360). 패킷의 전송은 미리 열어놓은 raw소켓을 이용하여 전송하게 된다. 마지막으로 패킷을 생성하기 위해 잡아 놓은 메모리 영역을 해제하여야 한다. 메모리 영역을 해제하지 않으면 그로 인한 메모리가 낭비되어 꼭 수행하여야 하는 동작이다.
즉, 본 발명은 정보보호시스템의 성능측정장치 및 그 방법에 있어서, 네트워크프로세서는 각종 네트워크 프로토콜의 처리성능 향상을 위해 패킷처리 기능을 강화한 특화된 구조를 가지며, 다양한 프로토콜을 수용할 수 있도록 프로그래밍이 가능한 전용프로세서를 이르는데, 신축적인 특성으로 고정된 네트워크 기능들을 점차 대치해 나가고 있으며, 네트워크 프로토콜에서 핵심 기능인 패킷 선별기능을 위하여 더욱 효율적이고 빠른 탐색기능이 연구되고 있다. 일반적으로 네트워크프로세서는 현 네트워크 상에서 존재하는 다양한 패킷을 보다 효율적이고 신속하게 처리할 수 있는 다중 패킷처리 구조를 제공한다. 또한 마이크로 엔진이라는 하드웨어 멀티 쓰레드 패킷처리 엔진을 6개 가지고 있으므로 다중작업이 가능하다.
본 발명은 이식성을 갖는 패킷 생성과 패킷 쓰기를 할 수 있게 하는 Libnet라이브러리를 사용한다. 상기 Libnet라이브러리는 네트워크 프로세서 패킷을 생성할 때 Libnet의 함수를 네트워크 프로세서에서 동작하도록 수정하여 사용하는데, C소스코드로써 109개의 전송함수와 67개의 패킷 생성함수로 구성된다. Libnet은 크기가 작고 사용자가 사용하기에 쉽고 효율적으로 설계한다.
기존의 패킷생성기인 Snot, Stick과 Mucus는 Snort룰을 이용하여 공격패킷을 생성한다는 점에서는 본 발명과 유사하나 본 발명에서는 네트워크 프로세서를 사용하여 한번에 많은 패킷을 동시에 생성할 수 있으며, 또한 공격정보를 DB화하고 시나리오를 생성하여 전송한다는 점에서 Snot, Stick과 Mucus와는 다르다.
Snot은 임의의 패킷발생기로써, 패킷의 소스로 Snort룰파일을 사용하고, 룰파일의 정보를 임의로 추출하여 트래픽을 발생시킨다. 네트워크의 클래스를 입력함으로써 네트워크 또는 공격자는 이 툴을 사용하여 다량의 공격패킷을 발생시켜 네트워크 관리자를 혼돈 시키고 자신은 다른 경로로 침입을 시도하는 방법의 IDS우회공격이 가능하다. 패킷의 전송시 상기에서 언급한 Libnet을 사용한다. 리눅스, FreeBSD, Windows계열에서 사용가능하며, Window에서는 Winpcap이라는 패킷드라이버를 추가로 설치하여야 한다. Snort룰파일에 확장변수(예를 들어, var HTTP_SERVER, var SERVER_ADDR)를 선언하여 파싱시 사용할 수 있다. 패킷의 MTU값은 1500으로 설정된다.
Stick은 유연성과 속도에 중점을 두어 개발된 패킷발생기로써, Snort의 룰파 일을 Lex와 Yacc을 사용하여 파싱한다. 함수호출시 비교와 분기를 최소화하여, 속도를 향상시킨다.
Mucus는 Snort의 룰파일을 이용하여 공격트래픽을 생성하는 시뮬레이터로써 각각의 룰에 관한 옵션을 분석하여 데이터구조화하고, 이러한 구조들을 이용하여 공격트래픽을 생성한 후 옵션에 의해 대상 시스템에 전송한다. 이러한 동작은 Snot나 Stick과 같은 동작을 한다.
또한 본 발명에서 DB화를 하는 이유는 매번 파싱에 따른 오버헤드를 줄일 수 있기 때문이며, 시나리오를 만들어 정보보호 시스템에 대한 성능측정을 함으로, 동일한 데이터를 이용하여 여러 종류의 정보보호 시스템에 대한 성능측정을 진행할 수 있기 때문이다.
상기한 바와 같은 구성 및 작용은 실시예로서 본 발명의 청구범위를 제한하는 것은 아니며, 본 발명의 기술적 사상을 변경하지 아니하는 범위 내에서 다양한 변경과 수정이 가능함은 본 발명이 속하는 분야에 종사하는 자에게는 자명한 것이다.
이상의 구성 및 작용을 지니는 본 발명에 따른 네트워크프로세서를 이용한 정보보호시스템의 성능측정장치 및 그 방법은, Snort의 룰을 파싱하여 공격패킷 정보를 생성하고, 사용자는 원하는 패킷을 선택하여 시나리오를 작성한 후, 네트워크 프로세서를 이용해 원하는 수량만큼의 패킷을 생성하여 정보보호시스템에 전송하고, 이로써 정보보호시스템이 그에 합당한 동작을 하는지 검증할 수 있다.

Claims (6)

  1. 정보보호시스템의 성능측정장치에 있어서,
    Snort의 룰을 파싱하여 공격패킷을 생성하는데 필요한 정보만을 추출하여 DB로 만드는 Snort룰DB생성기(100);
    Snort룰파일들을 파싱을 통해 데이타베이스화한 공격DB(150);
    상기 공격DB에 데이타베이스화되어 있는 룰정보를 이용하여 공격의 시나리오를 작성하는 시나리오생성기(200);
    네트워크프로세서 내부에서 동작하며, 상기 시나리오생성기(200)에서 생성된 공격 시나리오를 이용하여 생성 및 전송 명령을 내리는 Strong Arm Core와 패킷을 생성하고 전송하는 마이크로 엔진으로 구성된 패킷생성/전송기(300)를 포함하여 이루어지는 것을 특징으로 하는 네트워크프로세서를 이용한 정보보호시스템의 성능측정장치
  2. 제 1 항에 있어서,
    상기 네트워크프로세서는,
    자체 운영체계(OS)를 가지고 있으며, Strong Arm Core와 마이크로엔진을 컨트롤하는데, Strong Arm Core, 마이크로엔진, FBI유니트와 IX버스, SRAM과 SDRAM메모리, PCI유니트를 포함하여 이루어지는 것을 특징으로 하는 네트워크프로세서를 이용한 정보보호시스템의 성능측정장치
  3. 정보보호시스템의 성능측정장치에 있어서,
    사용자가 보다 쉽게 공격패킷을 생성할 수 있도록 돕는 부분이고, snort의 룰을 파싱하여 공격패킷을 이루는 정보를 DB화하여 관리하도록 도와주며, Snort룰DB생성모듈, 시나리오생성모듈을 구비하는 호스트시스템(A)과;
    상기 호스트시스템(A)과 연동하여 작동하고 네트워크프로세서가 내재된 시스템보드로 구현되며, 마이크로엔진 스케쥴모듈, 패킷복사 및 전송모듈을 구비하는 네트워크프로세서시스템(B)을 포함하여 이루어지는 것을 특징으로 하는 네트워크프로세서를 이용한 정보보호시스템의 성능측정장치
  4. 네트워크프로세서를 이용하며, Snort의 룰을 파싱하여 공격패킷을 생성하는데 필요한 정보만을 추출하여 DB로 만드는 Snort룰DB생성기(100); Snort룰파일들을 파싱을 통해 데이타베이스화한 공격DB(150); 상기 공격DB에 데이타베이스화되어 있는 룰정보를 이용하여 공격의 시나리오를 작성하는 시나리오 생성기(200); 스토롱암코어에서 유효상태인 마이크로 엔진에게 생성명령을 내리고, 스토롱암코어에서 유효상태인 마이크로 엔진에게 전송명령을 내리고, 마이크로엔진에서 패킷을 생성하고, 마이크로엔진에서 생성된 패킷을 전송하는 패킷생성/전송기(300)를 포함하는 정보보호시스템의 성능측정장치를 이용한 정보보호시스템의 성능측정 방법에 있어서,
    상기 snort룰DB생성기의 동작은,
    스노트의 룰파일을 선택하는 스노트룰 파일 입력단계(S100);
    상기 스노트룰 파일에서 헤더부분과 옵션부분의 파싱을 통해 공격패킷을 이루는 정보를 추출하는 공격 유형 추출단계(S110);
    룰 헤더부분에 대한 파싱을 진행하는 룰헤더 파싱단계(S120);
    룰옵션부분을 파싱하는 롤옵션 파싱단계(S130)
    상기 파싱된 정보들은 구조체에 저장하게되고 저장된 구조체는 다음 단계에서 각각의 필드에 저장하는 DB 저장단계(S140);
    파일의 끝인지 여부 판단단계(S150);
    를 포함하여 이루어지는 것을 특징으로 하는 네트워크프로세서를 이용한 정보보호시스템의 성능측정방법
  5. 제 4 항에 있어서,
    상기 시나리오생성기의 동작은,
    먼저 공격유형을 선택하는 공격 유형 선택단계(S200);
    공격타입을 선택하는 공격 타입 선택단계(S210);
    출발지에 대한 정보를 입력하는 출발지 정보 입력단계(S220);
    도착지 정보를 입력하는 도착지 정보 입력단계(S230);
    시나리오 파일 추가단계(S240);
    추가여부 판단단계(S250);
    시나리오파일 이름입력단계(S260);
    를 포함하여 이루어지는 것을 특징으로 하는 네트워크프로세서를 이용한 정보보호시스템의 성능측정방법
  6. 제 4 항에 있어서,
    상기 패킷생성/전송기의 동작은,
    작성한 시나리오 파일을 파싱을 통하여 공격정보를 이루는 기본적인 구조체를 생성하는 시나리오 파일 파싱단계(S300);
    메모리영역의 초기화와 raw소켓을 여는 일등을 수행하는 프로토콜 헤더생성단계(S310);
    IP헤더를 생성하는 IP헤더생성단계(S320);
    상기 생성된 헤더들의 체크섬을 계산하는 Check Sum확인단계(S330);
    패킷의 내용부분을 채우는 패킷 생성단계(S340);
    시나리오 파일의 끝인지 여부 판단단계(S350);
    패킷을 전송하는 패킷전송단계(S360);
    를 포함하여 이루어지는 것을 특징으로 하는 네트워크프로세서를 이용한 정보보호시스템의 성능측정방법
KR1020050006958A 2005-01-26 2005-01-26 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법 KR100639568B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050006958A KR100639568B1 (ko) 2005-01-26 2005-01-26 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050006958A KR100639568B1 (ko) 2005-01-26 2005-01-26 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20060086081A KR20060086081A (ko) 2006-07-31
KR100639568B1 true KR100639568B1 (ko) 2006-10-30

Family

ID=37175509

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050006958A KR100639568B1 (ko) 2005-01-26 2005-01-26 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100639568B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100968126B1 (ko) * 2008-02-15 2010-07-06 한국인터넷진흥원 웹쉘 탐지 시스템 및 웹쉘 탐지 방법
KR102271366B1 (ko) * 2019-11-01 2021-07-01 주식회사 윈스 사용자 인터페이스를 통한 스노트 룰 자동 생성 장치 및 방법

Also Published As

Publication number Publication date
KR20060086081A (ko) 2006-07-31

Similar Documents

Publication Publication Date Title
WO2022017249A1 (zh) 可编程交换机、流量统计方法、防御方法和报文处理方法
CN110351156B (zh) 一种测试方法和装置
US6651099B1 (en) Method and apparatus for monitoring traffic in a network
US9787693B2 (en) Graph caching
US9075735B2 (en) Systems and methods for efficient memory access
US9397901B2 (en) Methods, systems, and computer readable media for classifying application traffic received at a network traffic emulation device that emulates multiple application servers
US8891528B2 (en) Managing the capture of packets in a computing system
JP5462905B2 (ja) プロトコルエミュレータ
US6771646B1 (en) Associative cache structure for lookups and updates of flow records in a network monitor
US7299282B2 (en) State processor for pattern matching in a network monitor device
US20110016154A1 (en) Profile-based and dictionary based graph caching
US8625448B2 (en) Method and system for validating network traffic classification in a blade server
US8929379B2 (en) High-speed CLD-based internal packet routing
US20130346700A1 (en) Systems and methods for managing memory
US8706921B2 (en) Software initialization of USB devices on a single bus
US8824508B2 (en) High-speed CLD-based TCP assembly offload
CN101656677A (zh) 一种报文分流处理方法及装置
US8996533B2 (en) Systems and methods multi-key access to data
Ksiezopolski QoP-ML: Quality of Protection modelling language for cryptographic protocols
US20190260631A1 (en) Deployable linear bitwise protocol transfromation
Tu et al. Linux network programming with p4
CN117176802B (zh) 一种业务请求的全链路监控方法、装置、电子设备及介质
US7779464B2 (en) System security approaches utilizing a hierarchical memory system
KR100639568B1 (ko) 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법
TW202127285A (zh) 用於測試待測裝置的網路防禦機制的測試裝置、測試方法及非暫態有形機器可讀介質

Legal Events

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

Payment date: 20120823

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee