As Internet application grows explosively, the attacks of hackers on network are increasing rapidly, and becoming more seriously. Thus information security is emerging as an important factor in designing network systems, and network intrusion detection systems (NIDS) are becoming a key issue. However, the performance of current intrusion detection system can not handle the increasing internet traffic. The reason is that most of the intrusion detection engines(IDEs), core components that perform detection of network intrusion, are implemented by software.
Generally there are two approaches for enhancing the performance of NIDS; software-based IDEs and hardware-based IDEs. Software-based IDEs, such as Snort, are implemented by software using general processores. To improve the performance of software-based IDEs, many researches have focused on enhancing pattern matching algorithms. On the other hand, hardware-based IDEs use special hard-wired processors for high speed packet processing or new techniques utilizing hardware for efficient pattern matching. However, both approaches have limitation from the viewpoint of performance and flexibility.
In this thesis, to achieve fast packet processing and dynamic adaptation of intrusion patterns that are continuously updated, we propose a network processor based high performance network intrusion detection system (NP-NIDS). In our implementation, Intel's network processors, IXP1200 and IXP2400, are used due to their higher programmability. To develop a high performance intrusion detection engine with a network processor, which has limited resources, we design an optimized architecture and algorithms. In addition, for more efficient detection engine scheduling, we proposed task allocation methods on multi-processing processors. We implement a prototype of network processor based network intrusion detection systems, and its performance is evaluated by simulations.
A RISC based network processor is specialized for fast-packet processing and flexible for the changes in rule signatures by simply modifying software code. Therefore, the proposed architecture of NP-NIDS can offer not only high performance, but also flexibility. In addition, the proposed detection engine allocation methods performs 3.2 times better than the uniform detection engine allocation methods, which shared detection engines equally, on an IXP1200 network processor. When we use an IXP2400 network processor, the performance was 3.5 times better than that of the uniform detection engine allocation methods.
초고속 인터넷 구축을 위한 네트워크 관련 기술들이 테라급으로 급속히 발전하고 있는데 비해, 상대적으로 침입 탐지 기술들은 네트워크의 발전 속도를 따라가지 못하고 있는 실정이다. 그 이유는 대부분의 네트워크 침입 탐지 시스템들이 소프트웨어로 구현되어 있다는 데 있다. 네트워크의 백본이나 액세스 망에서의 고성능 침입 탐지 시스템 구현을 위해서는 고속 침입 탐지 기술이 필수적으로 요구된다. 본 논문에서는 네트워크 침입 탐지 시스템의 패킷 처리 성능 향상과 계속적으로 추가되는 침입 패턴을 동적으로 지원해줄 수 있도록 하기 위하여, 네트워크 프로세서(Network Processor)를 이용한 고성능 침입 탐지 시스템(Intrusion Detection System)을 설계 및 구현하였다.
침입 탐지 엔진은 구현 방식에 따라 소프트웨어 기반 침입 탐지 엔진과 하드웨어 기반 침입 탐지 엔진으로 분류할 수 있다. Snort나 Hogwash와 같은 소프트웨어 기반 침입 탐지 엔진은 침입 탐지 시스템의 새로운 룰 시그너처를 쉽게 추가하고 변경할 수 있는 장점을 가진 반면에, 성능에 한계를 가지고 있다. 침입 탐지 엔진 알고리즘을 하드웨어로 구현하여 처리 속도를 높인 하드웨어 기반 침입 탐지 엔진 방식은 패킷을 고속으로 처리할 수 있는 장점을 가진 반면에 계속 업그레이드가 필요한 룰 시그너처(Rule Signature) 데이터베이스를 효율적으로 관리하기가 힘든 단점이 있다. 고속 패킷 프로세싱 기능을 강화한 특화된 구조를 가지고 있으며, 다양한 프로토콜을 수용할 수 있도록 소프트웨어 프로그래밍이 가능한 네트워크 프로세서를 사용하여 침입 탐지 시스템을 구현함으로써, 소프트웨어와 하드웨어 기반 침입 탐지 엔진의 장점인 유연성과 고성능을 모두 실현할 수 있다.
본 연구의 네트워크 프로세서 기반 침입 탐지 시스템(NP-NIDS)은 현재 가장 널리 사용되고 있는 공개 소스 네트워크 침입 탐지 시스템(Network Intrusion Detection System)인 Snort 구조를 모델로 하여 Snort에서 지원하는 룰 시그너처를 그대로 포팅없이 지원한다. 네트워크 프로세서는 프로그래밍성(programmability)이 뛰어난 인텔 IXP1200 네트워크 프로세서를 사용하였고, 호스트의 운영 체제로 레드햇 7.2(리눅스 커널 버전 2.4.17)를 사용하였으며, StrongArm(IXP1200)에는 IXP1200 구조에 적합하게 최적화(optimized) 된 임베디드 리눅스(리눅스 커널 버전 2.3.99)를 사용하였다. 기존의 소프트웨어나 하드웨어적으로 구현되던 침입 탐지 엔진 알고리즘을 제한된 기능을 가지는 다중 처리 프로세서(Multi-processing Processor)로 구성된 네트워크 프로세서에서 실현하기 위하여, 최적화된 자료구조와 알고리즘 설계하였다. 그리고 더욱 효율적으로 탐지 엔진을 스케줄링(scheduling)하기 위한 탐지 엔진 할당 기법을 제안하였으며, 구현과 성능 분석을 통하여 제안된 기법의 적절성을 검증하였다.