KR101240311B1 - 리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법 - Google Patents

리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법 Download PDF

Info

Publication number
KR101240311B1
KR101240311B1 KR1020120002345A KR20120002345A KR101240311B1 KR 101240311 B1 KR101240311 B1 KR 101240311B1 KR 1020120002345 A KR1020120002345 A KR 1020120002345A KR 20120002345 A KR20120002345 A KR 20120002345A KR 101240311 B1 KR101240311 B1 KR 101240311B1
Authority
KR
South Korea
Prior art keywords
packet
policy
kernel
user
network
Prior art date
Application number
KR1020120002345A
Other languages
English (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 KR1020120002345A priority Critical patent/KR101240311B1/ko
Application granted granted Critical
Publication of KR101240311B1 publication Critical patent/KR101240311B1/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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

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

Abstract

이 발명은 리눅스 운영체제에서 방화벽 기능을 수행하는 넷필터 프레임워크를 이용하여 네트워크 패킷의 침입을 탐지하고 필요에 따라 차단하는 시스템 및 방법에 관한 것이다. 이 발명에 따른 방법은, 커널공간 구동부가 리눅스 기반 넷필터 프레임워크에 후킹 함수를 등록하여 네트워크 카드를 통과하는 네트워크 패킷을 수집하고 분석하는 제1단계와, 상기 커널공간 구동부가 상기 수집된 네트워크 패킷에 대한 기설정된 정책이 존재하지 않으면 상기 넷필터 프레임워크로부터 상기 수집된 네트워크 패킷을 스톨런(stolen)하고 상기 스톨런한 네트워크 패킷을 커널 패킷 큐에 삽입하는 제2단계와, 상기 커널공간 구동부가 상기 커널 패킷 큐에 삽입된 네트워크 패킷을 넷링크 송수신모듈을 통해 유저공간 구동부에게 전송하는 제3단계와, 상기 유저공간 구동부가 상기 넷링크 송수신모듈을 통해 전송받은 상기 네트워크 패킷을 유저 패킷 큐에 삽입하는 제4단계와, 상기 유저공간 구동부가 상기 네트워크 패킷에 대한 새로운 정책이 설정되도록 하는 제5단계와, 상기 유저공간 구동부가 상기 네트워크 패킷에 대한 새로운 정책을 상기 넷링크 송수신모듈을 통해 상기 커널공간 구동부에게 전송하는 제6단계와, 상기 커널공간 구동부가 상기 유저공간 구동부로부터 수신된 새로운 정책을 상기 커널 패킷 큐에 삽입된 네트워크 패킷에 적용하는 제7단계를 포함한다.

Description

리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법 {Network Packet Intrusion Detection System and Method Based by Linux}
이 발명은 리눅스 기반 보안기술에 관한 것으로서, 보다 상세하게는 리눅스 운영체제에서 방화벽 기능을 수행하는 넷필터 프레임워크를 이용하여 네트워크 패킷의 침입을 탐지하고 필요에 따라 차단하는 시스템 및 방법에 관한 것이다.
컴퓨터의 급속한 발전과 초고속 인터넷의 확산으로 인하여, 각 기관이나 업체뿐만 아니라 각 가정의 컴퓨터도 바이러스나 인터넷 웜, 해킹 등의 위험에 노출되고 그에 따른 악영향이 증가하고 있으며, 이를 방어하기 위해 여러가지 보안시스템이 개발되고 있다.
일반적으로 방화벽(firewall)은 네트워크 게이트웨이에 위치하고 있는 일련의 연관된 프로그램들로서, 외부 네트워크의 사용자들로부터 내부 인트라넷의 자원들을 보호하는 기능을 한다. 방화벽은 외부인이 내부 인트라넷의 자원에 접근하는 것을 막고, 인트라넷 내에 설치된 컴퓨터가 접속해야 할 외부의 자원들을 통제하기 위해 기업의 인트라넷과 인터넷 사이에 설치된다. 기본적으로 방화벽은 라우터 프로그램과 밀접하게 동작함으로써, 모든 네트워크 패킷들을 그들의 수신처로 전달할 것인지를 결정하기 위해 검사하고, 여과한다. 즉, 방화벽은 외부 네트워크에서 인트라넷으로 들어오는 패킷(인바운드 패킷)과 인트라넷에서 외부 네트워크로 나가는 패킷(아웃바운드 패킷)을 검사하여, 네트워크 관리자가 정해놓은 정책 룰에 따라 해당 패킷들을 통과시키던지 네트워크 관리자에게 경고 메시지를 보내며 차단한다.
그러나, 이러한 네트워크 게이트웨이에 설치된 방화벽만으로는 외부의 네트워크 패킷 공격을 실시간으로 차단할 수 없기 때문에, 보다 강력한 보안을 원하는 컴퓨터 사용자 또는 인트라넷내에 방화벽이 설치되지 않은 컴퓨터 사용자는 자신이 사용하는 개인컴퓨터(PC)에 별도의 개인 방화벽을 설치 운용한다. 개인 방화벽은 개인컴퓨터로 유입되거나 개인컴퓨터로부터 유출되는 네트워크 패킷에 대해 해당 사용자가 설정한 정책 룰에 따라 검사한다.
리눅스 기반 운영체제(OS)는 기본적으로 패킷 필터링 프로그램인 넷필터 프레임워크(netfilter framework)를 제공한다. 이 넷필터 프레임워크는 버클리 소켓 인터페이스(Berkeley socket interface)의 외부에 존재하는 패킷 맹글링(packet mangling)에 대한 프레임워크로서, 네트워크 주소변환, 패킷 필터링, 패킷 분해 등을 용이하게 해준다. 대한민국공개특허 제2006-0121409호, "넷필터 프레임워크를 이용한 침입 탐지 및 차단 시스템 설계"에는, 리눅스 기반 운영체제 하에서 넷필터프레임워크를 이용하여 네트워크 패킷의 침입을 감지하고 차단하는 선행기술이 기재되어 있다.
선행 공개특허 제2006-0121409호에 기재된 종래의 넷필터 프레임워크를 이용한 침입 탐지 및 차단 시스템의 동작을 설명한다. 입력패킷분석모듈은 외부 네트워크로부터 들어오는 패킷을 TCP/IP 프로토콜 스택에 따라 각 계층별로 헤더를 분석한다. 침입패킷감시모듈은 입력패킷분석모듈에서 각 계층별로 분석된 헤더 정보와 룰 DB의 침입유형정보를 비교 분석하여 해당 패킷의 침입 여부를 판단한다. 침입차단정보관리모듈은 넷필터 프레임워크와 연동하여, 침입패킷감시모듈에서 침입이라고 판단된 패킷이 넷필터 프레임워크에서 차단(drop)되도록 하고, 침입이 아니라고 판단된 패킷이 넷필터 프레임워크에서 허용(accept)되도록 한다.
이러한 종래의 넷필터 프레임워크를 이용한 침입 탐지 및 차단 시스템은 룰 DB에 허용/차단 정책이 미리 설정된 패킷에 대해서는, 넷필터 프레임워크에서 실시간으로 해당 패킷을 허용하거나 차단할 수 있다. 그러나, 그 허용/차단에 대한 정책이 설정되지 않은 패킷에 대해서는 해당 패킷에 대한 정책이 정해지기까지 대기할 수 밖에 없고, 그럴 경우 넷필터 프레임워크에서의 네트워크 패킷 처리가 지연되는 문제점이 있다.
이러한 문제점을 해결하기 위해 룰 DB에 기설정된 정책이 없는 패킷은 무조건 허용하거나 차단하도록 설정할 수 있으나, 정책 미설정 패킷을 무조건 허용할 경우 해커 등에 의한 네트워크 패킷 침입 여부를 실시간으로 탐지할 수 없는 문제점이 있고, 정책 미설정 패킷을 무조건 차단할 경우 사용자들이 정상적으로 이용하고자 하는 패킷이 차단되어 불편한 문제점이 있다.
상술한 종래 기술의 문제점을 해결하기 위하여 안출된 이 발명의 목적은, 다수의 정책 미설정 패킷에 대한 침입 여부를 실시간으로 검사할 수 있고 다수의 정책 미설정 패킷에 대한 침입 여부를 검사하는 동안에도 다른 네트워크 패킷에 대한 침입 여부를 대기없이 연속적으로 탐지할 수 있는 리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법을 제공하기 위한 것이다.
상술한 목적을 달성하기 위한 이 발명에 따른 리눅스 기반 네트워크 패킷 침입 탐지 시스템은, 리눅스 기반 넷필터 프레임워크로부터 정책 비설정 네트워크 패킷을 스톨런하여 커널 패킷 큐에 저장한 후 유저공간 구동부에게 전송하고, 상기 유저공간 구동부로부터 상기 네트워크 패킷에 대한 새로운 정책이 수신되면 상기 커널 패킷 큐에 저장된 상기 네트워크 패킷에 상기 새로운 정책을 적용하는 커널공간 구동부와; 상기 커널공간 구동부로부터 전송된 상기 네트워크 패킷을 유저 패킷 큐에 저장한 후 상기 네트워크 패킷에 대한 상기 새로운 정책을 수립하여 상기 커널공간 구동부에게 전송하는 상기 유저공간 구동부를 포함한 것을 특징으로 한다.
또한, 이 발명에 따른 리눅스 기반 네트워크 패킷 침입 탐지 방법은, 커널공간 구동부가 리눅스 기반 넷필터 프레임워크에 후킹 함수를 등록하여 네트워크 카드를 통과하는 네트워크 패킷을 수집하고 분석하는 제1단계와, 상기 커널공간 구동부가 상기 수집된 네트워크 패킷에 대한 기설정된 정책이 존재하지 않으면 상기 넷필터 프레임워크로부터 상기 수집된 네트워크 패킷을 스톨런(stolen)하고, 상기 스톨런한 네트워크 패킷을 커널 패킷 큐에 삽입하는 제2단계와, 상기 커널공간 구동부가 상기 커널 패킷 큐에 삽입된 네트워크 패킷을 넷링크 송수신모듈을 통해 유저공간 구동부에게 전송하는 제3단계와, 상기 유저공간 구동부가 상기 넷링크 송수신모듈을 통해 전송받은 상기 네트워크 패킷을 유저 패킷 큐에 삽입하는 제4단계와, 상기 유저공간 구동부가 상기 네트워크 패킷에 대한 새로운 정책이 설정되도록 하는 제5단계와, 상기 유저공간 구동부가 상기 네트워크 패킷에 대한 새로운 정책을 상기 넷링크 송수신모듈을 통해 상기 커널공간 구동부에게 전송하는 제6단계와, 상기 커널공간 구동부가 상기 유저공간 구동부로부터 수신된 새로운 정책을 상기 커널 패킷 큐에 삽입된 네트워크 패킷에 적용하는 제7단계를 포함한 것을 특징으로 한다.
이 발명에 따르면, 정책 룰이 설정되지 않은 패킷을 넷필터 프레임워크로부터 접수(stolen)하여 별도의 큐에 저장하고, 사용자로 하여금 상기 패킷에 대한 정책을 결정하도록 함으로써, 다수의 정책 미설정 패킷에 대한 침입 여부를 실시간으로 검사할 수 있고, 다수의 정책 미설정 패킷에 대한 침입 여부를 검사하는 동안에도 다른 정책 설정 패킷에 대한 검사를 대기없이 지속적으로 수행할 수 있는 잇점이 있다. 또한, 큐에 저장된 패킷 정보를 넷링크를 통해 유저 공간으로 전달함으로써, 다수의 응용 프로세스를 지원할 수 있는 잇점이 있다.
도 1은 이 발명에 따른 리눅스 기반 네트워크 패킷 침입 탐지 시스템을 도시한 구성 블록도이다.
도 2는 이 발명의 다른 실시예에 따른 리눅스 기반 네트워크 패킷 침입 탐지 시스템을 도시한 블록 구성도이다.
도 3은 이 발명에 따른 리눅스 기반 네트워크 패킷 침입 탐지 방법을 도시한 동작 흐름도이다.
이하, 첨부된 도면을 참조하여 이 발명의 한 실시예에 따른 리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법을 보다 상세하게 설명하면 다음과 같다.
도 1은 이 발명에 따른 리눅스 기반 네트워크 패킷 침입 탐지 시스템을 도시한 구성 블록도이다.
이 발명에 따른 리눅스 기반 네트워크 패킷 침입 탐지 시스템은, 커널공간 구동부(110)와, 유저공간 구동부(120)로 대별된다. 응용프로세스(101)는 외부 네트워크로 아웃바운드 네트워크 패킷을 송신하거나, 외부 네트워크로부터 인바운드 네트워크 패킷을 수신하는데, 이때 아웃바운드 또는 인바운드 네트워크 패킷은 모두 네트워크 카드(102)를 통과하게 된다.
커널공간 구동부(110)는 리눅스 기반 넷필터 프레임워크를 이용하여 네트워크 카드를 통과하는 네트워크 패킷에 대해 정책 룰을 반영하여 해당 네트워크 패킷이 넷필터 프레임워크에서 허용(accept) 또는 차단(drop)되도록 한다. 한편, 커널공간 구동부(110)는 정책이 정해지지 않은 네트워크 패킷의 경우, 해당 네트워크 패킷을 넷필터 프레임워크로부터 스톨런(stolen)하여 패킷 큐에 저장하고 넷링크를 통해 유저공간 구동부(120)로 전달한다. 유저공간 구동부(120)는 해당 네트워크 패킷을 사용자에게 질의하여 사용자로 하여금 해당 네트워크 패킷에 대한 정책을 설정하도록 하고, 그 결과를 커널공간 구동부(110)에게 전달한다.
커널공간 구동부(110)는, 패킷 수집 분석 모듈(111)과, 정책 체크 모듈(112)과, 커널 정책 룰 DB(113)와, 커널 패킷 큐(114)와, 큐 감시 모듈(115)과, 넷링크 송수신 모듈(116)과, 큐 및 정책 처리 모듈(117)을 포함한다. 유저공간 구동부(120)는 넷링크 송수신모듈(121)과, 인증 요청 처리 모듈(122)과, 유저 패킷 큐(123)와, 사용자 질의 모듈(124)과, 유저 정책 룰 DB(125)를 포함한다.
패킷 수집 분석 모듈(111)은 넷필터 프레임워크에 후킹 함수를 등록하여 네트워크 카드(102)를 통과하는 네트워크 패킷을 수집한다. 넷필터 프레임워크는 네트워크 카드(102)를 통과하는 네트워크 패킷에 대해 방화벽 기능을 수행하는 프레임워크이다. 그리고, 패킷 수집 분석 모듈(111)은 수집된 네트워크 패킷의 정보를 분석하는데, 이 네트워크 패킷의 정보에는 출발지 포트, 목적지 포트, 출발지 아이피, 목적지 아이피, 통신 프로토콜, 및 상기 수집된 네트워크 패킷을 송신 또는 수신하는 응용 프로세스(101)의 프로세스 아이디 등이 포함된다.
커널 정책 룰 DB(113)는 커널공간에서 수집된 네트워크 패킷에 대한 허용(accept) 또는 차단(drop) 정책 정보를 저장한다. 이 정책 정보는 네트워크 패킷의 정보 즉, 출발지 포트, 목적지 포트, 출발지 아이피, 목적지 아이피, 응용 프로세스의 프로세스 아이디 중 적어도 하나를 기준으로 설정될 수 있다. 예컨대, 네트워크 패킷의 목적지 아이피나 출발지 아이피 혹은 응용프로세스의 프로세스 아이디에 따라 해당 네트워크 패킷이 넷필터 프레임워크에서 차단(drop)되거나 허용(accept)되도록 설정할 수 있다.
정책 체크 모듈(112)은 패킷 수집 분석 모듈(111)에서 수집되고 분석된 네트워크 패킷의 정보를 커널 정책 룰 DB(113)에서 검색하여 상기 수집된 네트워크 패킷에 대한 정책(차단 또는 허용)이 이미 설정되어 있는지 체크하고, 그 결과를 패킷 수집 분석 모듈(111)에게 전달한다.
패킷 수집 분석 모듈(111)은 커널 정책 룰 DB(113)에 상기 수집된 네트워크 패킷에 대한 정책이 저장되어 있으면, 그 저장된 정책에 따라 상기 수집된 네트워크 패킷이 넷필터 프레임워크에서 차단 또는 허용되도록 한다.
그러나, 패킷 수집 분석 모듈(111)은 커널 정책 룰 DB(113)에 상기 수집된 네트워크 패킷에 대한 정책이 저장되어 있지 않으면, 상기 네트워크 패킷을 넷필터 프레임워크로부터 스톨런(stolen)하여 커널 패킷 큐(114)에 삽입한다. 패킷 수집 분석 모듈(111)이 넷필터 프레임워크로부터 네트워크 패킷을 스톨런하면, 리눅스 운영체제는 스톨런된 네트워크 패킷의 처리 여부에 관계없이 즉, 스톨런된 네트워크 패킷이 처리될 때까지 대기하지 않은 채 다음 순번의 네트워크 패킷을 처리하게 된다.
커널 패킷 큐(114)는 패킷 수집 분석 모듈(111)이 넷필터 프레임워크로부터 스톨런한 네트워크 패킷을 순차적으로 저장한다.
큐 감시 모듈(115)은 커널 패킷 큐(114)에 새로운 네트워크 패킷이 삽입되는지를 감시하고, 새롭게 삽입된 네트워크 패킷의 정보를 넷링크 송수신모듈(116)을 통해 유저공간 구동부(120)에게 전송한다.
넷링크 송수신모듈(116)은 유저공간 구동부(120)의 넷링크 송수신모듈(121)과 상호 통신한다. 넷링크 송수신모듈(116)은 커널 패킷 큐(114)에 삽입된 네트워크 패킷 정보를 넷링크 송수신모듈(121)을 통해 유저공간 구동부(120)에게 전송하고, 유저공간 구동부(120)는 사용자로 하여금 상기 네트워크 패킷을 처리하는 정책을 설정하도록 하고, 새로운 정책 정보를 넷링크 송수신모듈(121)을 통해 커널공간 구동부(110)에게 전송한다.
넷링크 송수신모듈(116)은 유저공간 구동부(120)의 넷링크 송수신모듈(121)로부터 새로운 정책 정보가 수신되면, 큐 및 정책 처리 모듈(117)에게 전달한다. 큐 및 정책 처리 모듈(117)은 새로운 정책 정보를 커널 정책 룰 DB(113)에 업데이트하고, 커널 패킷 큐(114)에 저장된 네트워크 패킷들에 새로운 정책을 적용하여 처리한다. 즉, 새로운 정책이 특정 프로세스 아이디의 아웃바운드 네트워크 패킷을 차단(drop)하는 것이라면, 큐 및 정책 처리 모듈(117)은 커널 패킷 큐(114)에 저장된 네트워크 패킷들 중 상기 특정 프로세스 아이디의 아웃바운드 네트워크 패킷을 삭제한다. 새로운 정책이 특정 프로세스 아이디의 인바운드 네트워크 패킷을 허용(accept)하는 것이라면, 큐 및 정책 처리 모듈(117)은 커널 패킷 큐(114)에 저장된 네트워크 패킷들 중 상기 특정 프로세스 아이디의 인바운드 네트워크 패킷에 대해 후속 루틴이 수행되도록 한다. 물론, 후속 루틴이 수행되는 네트워크 패킷은 커널 패킷 큐(114)에서 삭제된다.
넷링크 송수신모듈(121)은 커널공간 구동부(110)로부터 수신된 네트워크 패킷을 인증 요청 처리 모듈(122)에게 전달하고, 인증 요청 처리 모듈(122)은 수신된 네트워크 패킷을 유저 패킷 큐(123)에 삽입한다.
사용자 질의 모듈(124)는 유저 패킷 큐(123)에 네트워크 패킷이 삽입되는 지를 감시하고, 유저 패킷 큐(123)에 네트워크 패킷이 삽입되면 유저 쟁책 룰 DB(125)에 기저장된 정책 룰과 비교하여 정책 룰이 설정되지 않았으면 사용자에게 질의를 하여 사용자로 하여금 상기 네트워크 패킷에 대한 정책을 설정하도록 한다.
사용자 질의 모듈(124)이 유저 정책 룰 DB(125)를 다시 검사하는 이유는, 사용자가 이미 정책을 결정한 네트워크 패킷인데 유저공간과 커널공간의 동기가 맞지 않아 유저공간에서 설정된 정책이 커널공간으로 미처 반영되지 못한 상태에서 정책 미설정 네트워크 패킷으로 전달될 수 있기 때문이다.
사용자 질의 모듈(124)는 팝업 질의방식, 화이트리스트 DB 쿼리 방식 등을 이용하여 해당 네트워크 패킷에 대한 정책을 결정한다. 여기서, 팝업 질의방식은 사용자 질의 모듈(124)이 사용자에게 상기 정책 미설정 네트워크 패킷의 허용 여부를 팝업 질의하는 것이고, 화이트리스트 DB 쿼리 방식은 상기 사용자 질의 모듈이 상기 정책 미설정 네트워크 패킷의 허용 여부를 화이트리스트 DB에 쿼리하는 것이다.
상기 네트워크 패킷에 대한 정책이 결정되면, 사용자 질의 모듈(124)은 새로운 정책을 유저 정책 룰 DB(125)에 반영하고, 인증 요청 처리 모듈(122)에게 전달한다. 그러면, 인증 요청 처리 모듈(122)은 새로운 정책을 넷링크 송수신모듈(121)을 통해 커널공간 구동부(110)에게 전송한다.
이 발명은 네트워크 카드를 통과하는 네트워크 패킷에 대한 수집, 분석 및 처리가 커널공간에서 이루어지므로 모든 네트워크 패킷에 대한 정책 적용을 실시간으로 수행할 수 있다. 또한, 이 발명은 정책 미설정 네트워크 패킷을 넷필터 프레임워크로부터 스톨런하여 별도의 커널 패킷 큐에 삽입한 후 사용자 질의를 수행하기 때문에 정책 설정 네트워크 패킷의 처리에 지연을 초래하지 않는다.
도 2는 이 발명의 다른 실시예에 따른 리눅스 기반 네트워크 패킷 침입 탐지 시스템을 도시한 블록 구성도이다. 이 발명은 하나의 커널공간 구동부(210)와, 다수의 유저공간 구동부(220, 230)을 포함한다. 커널공간 구동부(210)와 유저공간 구동부(220, 230)는, 각각 도 1에 도시된 커널공간 구동부(110)와 유저공간 구동부(120)와 동일하게 구성된다. 커널공간 구동부(210)의 넷링크 송수신모듈은 다수의 유저공간 구동부(220, 230)의 넷링크 송수신모듈과 통신한다. 각 유저공간 구동부(220, 230)는 하나의 응용프로세스 또는 인스턴스(instance)별로 네트워크 패킷에 대한 정책을 설정하도록 한다. 이로서, 이 발명은 개인컴퓨터 내에 다수의 보안프로세스가 구동되더라도, 각 보안프로세스별로 각각 별도의 유저공간 구동부(220, 230)가 동작하여 각 보안프로세스별로 네트워크 패킷 정책을 수립하여 운용할 수 있다. 이때, 커널공간 구동부(210)의 커널 정책 룰 DB에는 모든 응용프로세스에서 설정한 모든 정책이 저장되고, 유저공간 구동부(220, 230)의 유저 정책 룰 DB에는 응용프로세스별로 설정된 정책이 저장된다.
도 3은 이 발명에 따른 리눅스 기반 네트워크 패킷 침입 탐지 방법을 도시한 동작 흐름도이다.
커널공간 구동부의 패킷 수집 분석 모듈은 리눅스 기반 넷필터 프레임워크에 후킹 함수를 등록하여 네트워크 카드를 통과하는 임의의 네트워크 패킷을 수집하여 그 정보를 분석한다(S301). 분석되는 네트워크 패킷의 정보에는 출발지 포트, 목적지 포트, 출발지 아이피, 목적지 아이피, 통신 프로토콜, 및 상기 수집된 네트워크 패킷을 송신 또는 수신하는 응용 프로세스(101)의 프로세스 아이디 등이 포함된다.
커널공간 구동부의 정책 체크 모듈은 분석된 네트워크 패킷의 정보를 커널 정책 룰 DB에서 검색하여, 상기 네트워크 패킷에 해당되는 기설정된 정책이 존재하는지를 체크한다(S302).
단계 S302에서 기설정된 정책이 존재하면(S303), 그 기설정된 정책에 따라 상기 네트워크 패킷을 허용(accept) 또는 차단(drop)한다(S304).
단계 S302에서 기설정된 정책이 존재하지 않으면(S304), 커널공간 구동부의 패킷 수집 분석 모듈은 넷필터 프레임워크로부터 네트워크 패킷을 스톨런(stolen)하고(S305), 스톨런한 네트워크 패킷을 커널 패킷 큐에 삽입한다(S306).
커널공간 구동부의 큐 감시 모듈은 커널 패킷 큐에 새로운 네트워크 패킷이 삽입되면 상기 네트워크 패킷을 넷링크 송수신모듈을 통해 유저공간 구동부로 전송한다(S307). 이때, 커널공간 구동부의 넷링크 송수신모듈은 다수의 유저공간 구동부의 넷링크 송수신모듈와 통신하여 다수의 유저공간 구동부에게 상기 네트워크 패킷을 전송할 수 있다.
유저공간 구동부의 인증 요청 처리 모듈은 넷링크 송수신모듈을 통해 전송받은 네트워크 패킷을 유저 패킷 큐에 삽입한다(S308).
유저공간 구동부의 사용자 질의 모듈은 유저 패킷 큐에 삽입된 네트워크 패킷 정보를 유저 정책 룰 DB에서 검색하여(S309), 기설정된 정책이 존재하는지 체크한다. 기설정된 정책이 존재하면(S310), 해당 네트워크 패킷에 대한 사용자 정책이 이미 정해진 상태이기 때문에 종료한다.
기설정된 정책이 존재하지 않으면(S310), 유저공간 구동부의 사용자 질의 모듈은 상기 네트워크 패킷에 대한 사용자 정책을 질의한다(S311). 이때, 사용자 정책을 질의하는 방식에는 사용자에게 팝업 질의하는 방식, 화이트리스트 DB에 쿼리하는 방식 등이 포함된다.
상기 네트워크 패킷에 대한 새로운 정책이 설정되면(S312), 유저공간 구동부의 사용자 질의 모듈은 새로운 정책을 유저 정책 룰 DB에 저장하고(S313), 인증 요청 처리 모듈에게 전달한다. 그러면, 유저공간 구동부의 인증 요청 처리 모듈은 새로운 정책을 넷링크 송수신모듈을 통해 커널공간 구동부의 큐 및 정책 처리 모듈(117)에게 전송한다(S314).
커널공간 구동부의 큐 및 정책 처리 모듈은 유저공간 구동부로부터 수신된 새로운 정책을 커널 정책 룰 DB에 저장하고(S315), 상기 새로운 정책을 커널 패킷 큐에 삽입된 모든 네트워크 패킷에 적용한다(S316). 즉, 새로운 정책이 특정 프로세스 아이디의 네트워크 패킷을 허용 또는 차단하는 것인지에 따라 커널 패킷 큐에 삽입된 해당 특정 프로세스 아이디의 모든 네트워크 패킷이 허용 또는 차단되도록 한다.
101 : 응용프로세스 102 : 네트워크카드
110 : 커널공간 구동부 111 : 패킷 수집 분석 모듈
112 : 정책 체크 모듈 113 : 커널 정책 룰 DB
114 : 커널 패킷 큐 115 : 큐 감시 모듈
116 : 넷링크 송수신모듈 117 : 큐 및 정책 처리 모듈
120 : 유저공간 구동부 121 : 넷링크 송수신모듈
122 : 인증 요청 처리 모듈 123 : 유저 패킷 큐
124 : 사용자 질의 모듈 125 : 유저 정책 룰 DB
210 : 커널공간 구동부 220, 230 : 유저공간 구동부

Claims (13)

  1. 리눅스 기반 넷필터 프레임워크로부터 정책 비설정 네트워크 패킷을 스톨런하여 커널 패킷 큐에 저장한 후 유저공간 구동부에게 전송하고, 상기 유저공간 구동부로부터 상기 네트워크 패킷에 대한 새로운 정책이 수신되면 상기 커널 패킷 큐에 저장된 상기 네트워크 패킷에 상기 새로운 정책을 적용하는 커널공간 구동부와;
    상기 커널공간 구동부로부터 전송된 상기 네트워크 패킷을 유저 패킷 큐에 저장한 후 상기 네트워크 패킷에 대한 상기 새로운 정책을 수립하여 상기 커널공간 구동부에게 전송하는 상기 유저공간 구동부를 포함한 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 시스템.
  2. 제 1 항에 있어서, 하나의 커널공간 구동부와 다수의 유저공간 구동부를 포함하고, 상기 하나의 커널공간 구동부는 상기 다수의 유저공간 구동부와 통신하며, 하나의 유저공간 구동부는 하나의 보안프로세스가 상기 네트워크 패킷에 대한 정책을 수립하도록 하는 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 시스템.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 커널공간 구동부는,
    상기 넷필터 프레임워크에 후킹 함수를 등록하여 네트워크 카드를 통과하는 네트워크 패킷을 수집하고 상기 정책 비설정 네트워크 패킷을 스톨런하여 상기 커널 패킷 큐에 삽입하는 패킷 수집 분석 모듈과,
    상기 커널 패킷 큐에 새롭게 삽입되는 네트워크 패킷을 감시하다가 상기 커널 패킷 큐에 삽입된 네트워크 패킷을 넷링크 송수신모듈을 통해 상기 유저공간 구동부에게 전송하는 큐 감시 모듈과,
    상기 넷링크 송수신모듈을 통해 수신되는 새로운 정책을 상기 커널 패킷 큐에 삽입된 네트워크 패킷에 적용하는 큐 및 정책 처리 모듈을 포함한 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 시스템.
  4. 제 3 항에 있어서, 상기 커널공간 구동부는,
    커널공간에서 수집된 네트워크 패킷을 허용할지 또는 차단할지에 대한 정책 정보를 저장하는 커널 정책 룰 DB와,
    상기 패킷 수집 분석 모듈에서 수집된 네트워크 패킷에 대한 정책이 상기 커널 정책 룰 DB에 설정되었는지 여부를 체크하여 상기 패킷 수집 분석 모듈에게 알려주는 정책 체크 모듈을 더 포함하고,
    상기 패킷 수집 분석 모듈은 상기 수집된 네트워크 패킷 중 정책 기설정 네트워크 패킷을 상기 정책에 따라 허용 또는 차단되도록 하며, 상기 큐 및 정책 처리 모듈은 상기 새로운 정책을 상기 커널 정책 룰 DB에 저장하는 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 시스템.
  5. 제 1 항 또는 제 2 항에 있어서, 상기 유저공간 구동부는,
    넷링크 송수신모듈을 통해 상기 커널공간 구동부로부터 전송된 상기 네트워크 패킷을 상기 유저 패킷 큐에 삽입하고, 상기 새로운 정책을 상기 넷링크 송수신모듈을 통해 상기 커널공간 구동부에게 전송하는 인증 요청 처리 모듈과,
    네트워크 패킷에 대한 정책 정보를 저장하는 유저 정책 룰 DB와,
    상기 유저 패킷 큐에 삽입된 네트워크 패킷에 대한 정책이 상기 유저 정책 룰 DB에 기설정되어 있는지 검사한 후 사용자로 하여금 정책 미설정 네트워크 패킷에 대한 상기 새로운 정책을 설정하도록 하는 사용자 질의 모듈을 포함한 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 시스템.
  6. 제 5 항에 있어서, 상기 사용자 질의 모듈은 사용자에게 상기 정책 미설정 네트워크 패킷의 허용 여부를 팝업 질의하는 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 시스템.
  7. 제 5 항에 있어서, 상기 사용자 질의 모듈은 상기 정책 미설정 네트워크 패킷의 허용 여부를 화이트리스트 DB에 쿼리하는 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 시스템.
  8. 커널공간 구동부가 리눅스 기반 넷필터 프레임워크에 후킹 함수를 등록하여 네트워크 카드를 통과하는 네트워크 패킷을 수집하고 분석하는 제1단계와,
    상기 커널공간 구동부가 상기 수집된 네트워크 패킷에 대한 기설정된 정책이 존재하지 않으면 상기 넷필터 프레임워크로부터 상기 수집된 네트워크 패킷을 스톨런(stolen)하고, 상기 스톨런한 네트워크 패킷을 커널 패킷 큐에 삽입하는 제2단계와,
    상기 커널공간 구동부가 상기 커널 패킷 큐에 삽입된 네트워크 패킷을 넷링크 송수신모듈을 통해 유저공간 구동부에게 전송하는 제3단계와,
    상기 유저공간 구동부가 상기 넷링크 송수신모듈을 통해 전송받은 상기 네트워크 패킷을 유저 패킷 큐에 삽입하는 제4단계와,
    상기 유저공간 구동부가 상기 네트워크 패킷에 대한 새로운 정책이 설정되도록 하는 제5단계와,
    상기 유저공간 구동부가 상기 네트워크 패킷에 대한 새로운 정책을 상기 넷링크 송수신모듈을 통해 상기 커널공간 구동부에게 전송하는 제6단계와,
    상기 커널공간 구동부가 상기 유저공간 구동부로부터 수신된 새로운 정책을 상기 커널 패킷 큐에 삽입된 네트워크 패킷에 적용하는 제7단계를 포함한 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 방법.
  9. 제 8 항에 있어서, 상기 제1단계 후 상기 커널공간 구동부가 상기 수집된 네트워크 패킷에 대한 기설정된 정책이 커널 정책 룰 DB에 존재하면, 상기 기설정된 정책에 따라 상기 수집된 네트워크 패킷을 허용(accept) 또는 차단(drop)하는 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 방법.
  10. 제 9 항에 있어서, 상기 제7단계는,
    상기 커널공간 구동부가 상기 유저공간 구동부로부터 수신된 새로운 정책을 상기 커널 정책 룰 DB에 저장하고, 상기 커널 패킷 큐에 삽입된 네트워크 패킷에 적용하는 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 방법.
  11. 제 8 항에 있어서, 상기 제5단계는 사용자에게 상기 네트워크 패킷의 허용 여부를 팝업 질의하는 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 방법.
  12. 제 8 항에 있어서, 상기 제5단계는 상기 네트워크 패킷의 허용 여부를 화이트리스트 DB에 쿼리하는 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 방법.
  13. 제 8 항에 있어서, 상기 제4단계 후 상기 유저공간 구동부가 상기 네트워크 대한 기설정 정책이 유저 정책 룰 DB에 존재하는지를 체크한 후 존재하지 않으면 상기 제5단계를 수행하도록 하는 것을 특징으로 하는 리눅스 기반 네트워크 패킷 침입 탐지 방법.

KR1020120002345A 2012-01-09 2012-01-09 리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법 KR101240311B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120002345A KR101240311B1 (ko) 2012-01-09 2012-01-09 리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120002345A KR101240311B1 (ko) 2012-01-09 2012-01-09 리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101240311B1 true KR101240311B1 (ko) 2013-03-06

Family

ID=48181261

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120002345A KR101240311B1 (ko) 2012-01-09 2012-01-09 리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101240311B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101358815B1 (ko) 2013-06-04 2014-02-11 서울대학교산학협력단 스누프 기반의 커널 무결성 감시 장치 및 그 방법
WO2016200045A1 (ko) * 2015-06-12 2016-12-15 서울대학교 산학협력단 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법
WO2021010515A1 (ko) * 2019-07-16 2021-01-21 엘지전자 주식회사 차량용 방화벽 제공 장치
CN114726633A (zh) * 2022-04-14 2022-07-08 中国电信股份有限公司 流量数据处理方法及装置、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060129618A (ko) * 2005-06-13 2006-12-18 엘지엔시스(주) 보안정책의 암호화 방법 및 그 방법을 구현하는침입탐지시스템
KR100972018B1 (ko) * 2007-10-17 2010-07-22 주식회사 케이티 유해 정보를 포함하는 패킷 데이터 차단 방법 및 이를이용한 개량형 침입 방지 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060129618A (ko) * 2005-06-13 2006-12-18 엘지엔시스(주) 보안정책의 암호화 방법 및 그 방법을 구현하는침입탐지시스템
KR100972018B1 (ko) * 2007-10-17 2010-07-22 주식회사 케이티 유해 정보를 포함하는 패킷 데이터 차단 방법 및 이를이용한 개량형 침입 방지 시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101358815B1 (ko) 2013-06-04 2014-02-11 서울대학교산학협력단 스누프 기반의 커널 무결성 감시 장치 및 그 방법
US9542557B2 (en) 2013-06-04 2017-01-10 Snu R&Db Foundation Snoop-based kernel integrity monitoring apparatus and method thereof
WO2016200045A1 (ko) * 2015-06-12 2016-12-15 서울대학교 산학협력단 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법
WO2021010515A1 (ko) * 2019-07-16 2021-01-21 엘지전자 주식회사 차량용 방화벽 제공 장치
CN114726633A (zh) * 2022-04-14 2022-07-08 中国电信股份有限公司 流量数据处理方法及装置、存储介质及电子设备
CN114726633B (zh) * 2022-04-14 2023-10-03 中国电信股份有限公司 流量数据处理方法及装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
US7725936B2 (en) Host-based network intrusion detection systems
US7552478B2 (en) Network unauthorized access preventing system and network unauthorized access preventing apparatus
US7703138B2 (en) Use of application signature to identify trusted traffic
US7610375B2 (en) Intrusion detection in a data center environment
KR101236822B1 (ko) Arp록킹 기능을 이용한 arp스푸핑 공격 탐지 방법과 그 방법을 실행하기 위한 프로그램이 기록된 기록매체
KR101089154B1 (ko) 가상환경을 이용한 네트워크 기반 망분리 장치, 시스템 및 방법
US7725932B2 (en) Restricting communication service
US9444821B2 (en) Management server, communication cutoff device and information processing system
EP2792107B1 (en) Timing management in a large firewall cluster
EP3306868B1 (en) Relay device, network monitoring system, and program
CN102546624A (zh) 一种网络多路入侵检测防御方法及系统
AU2009200102A1 (en) Method and apparatus for inspecting inter-layer address binding protocols
CN101064597B (zh) 网络安全设备以及使用该网络安全设备处理包数据的方法
EP2213045A1 (en) Security state aware firewall
CN110391988B (zh) 网络流量控制方法、系统及安全防护装置
KR101240311B1 (ko) 리눅스 기반 네트워크 패킷 침입 탐지 시스템 및 방법
US10038763B2 (en) Method and apparatus for detecting network protocols
KR101275709B1 (ko) 응용프로토콜별 분산처리기능을 제공하는 네트워크 기반의 ndlp용 패킷 처리 시스템 및 방법
CN116527395A (zh) 一种网络威胁探测方法、装置及存储介质
CN115941264A (zh) 一种基于网络安全的防火墙管理系统
WO2013089395A1 (ko) 시그니쳐 기반 무선 침입차단시스템
CN113992368A (zh) 一种基于定向引流的蜜罐集群检测方法及系统
JP6577921B2 (ja) セキュリティ対処システム及びセキュリティ対処方法
WO2020057156A1 (zh) 一种安全管理方法和安全管理装置
US20100157806A1 (en) Method for processing data packet load balancing and network equipment thereof

Legal Events

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

Payment date: 20160201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200217

Year of fee payment: 8