KR101404312B1 - 시스템 온 칩 기반의 패킷 필터링을 제공할 수 있는 디바이스 및 패킷 필터링 방법 - Google Patents

시스템 온 칩 기반의 패킷 필터링을 제공할 수 있는 디바이스 및 패킷 필터링 방법 Download PDF

Info

Publication number
KR101404312B1
KR101404312B1 KR1020120027053A KR20120027053A KR101404312B1 KR 101404312 B1 KR101404312 B1 KR 101404312B1 KR 1020120027053 A KR1020120027053 A KR 1020120027053A KR 20120027053 A KR20120027053 A KR 20120027053A KR 101404312 B1 KR101404312 B1 KR 101404312B1
Authority
KR
South Korea
Prior art keywords
packet
rule
chip
transmitted
outside
Prior art date
Application number
KR1020120027053A
Other languages
English (en)
Other versions
KR20120106641A (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 삼성에스디에스 주식회사
Publication of KR20120106641A publication Critical patent/KR20120106641A/ko
Application granted granted Critical
Publication of KR101404312B1 publication Critical patent/KR101404312B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL

Landscapes

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

Abstract

본 발명적 개념의 일 실시예에 따르면, 방화벽 엔진을 구비한 칩과 드라이버를 포함하는 디바이스로서, 드라이버는, 송신할 패킷의 오너 프로세스를 확인하고, 오너 프로세스가 외부로 패킷을 전송하는 것이 허용된 경우에만, 칩으로 패킷을 전송하고, 칩은 드라이버로부터 수신한 패킷에 대하여 패킷 필터링을 위한 룰을 적용하여 필터링 동작을 수행하는 디바이스가 개시된다.

Description

시스템 온 칩 기반의 패킷 필터링을 제공할 수 있는 디바이스 및 패킷 필터링 방법 {SOC-BASED DEVICE FOR PACKET FILTERING AND PACKET FILTERING METHOD THEREOF}
본 발명은 시스템 온 칩 기반의 패킷 필터링을 제공할 수 있는 디바이스 및 패킷 필터링 방법에 관한 것으로, 보다 상세하게는, 네트워크 어플리케이션의 프로세스 별로 방화벽 설정을 허용 또는 차단으로 설정할 수 있는 시스템 온 칩 기반의 패킷 필터링을 제공할 수 있는 디바이스 및 패킷 필터링 방법에 관한 것이다.
인터넷이 광범위하게 사용되면서 웜이나 트로이목마, 바이러스, DDoS 등과 같은 다양한 형태의 악성 멀웨어들이 나타나고 그 피해도 커지고 있다. 따라서 네트워크상의 정보를 보호하기 위한 네트워크 침해 대응 방법 및 기타 관련 장치가 반드시 필요하게 되었다.
특히, 모바일 기기의 경우는 사용할 수 있는 리소스가 제한되어 있어서, 리소스를 최소한으로 사용하면서 고속으로 패킷을 필터링할 수 있는 고속 필터링 기술이 반드시 필요하다고 할 것이다.
본 발명적 개념의 일 실시예에 따르면 네트워크 어플리케이션의 프로세스 별로 방화벽 설정을 허용 또는 차단함으로써 이 프로세스가 생성하는 모든 패킷에 대해 허용 또는 차단을 설정할 수 있는 디바이스 및 패킷 필터링 방법을 제공하는 것을 일 목적으로 한다.
본 발명적 개념의 일 실시예에 따르면 패킷 필터링을 위한 룰 설정시 컨피겨레이션 헬퍼를 제공함으로써 사용자가 원하는 서비스에 대해 방화벽 설정 작업을 보다 용이하게 수행할 수 있는 디바이스 및 패킷 필터링 방법을 제공하는 것을 일 목적으로 한다.
본 발명적 개념의 일 실시예에 따르면, 방화벽 엔진을 구비한 칩과 드라이버를 포함하는 디바이스로서, 상기 드라이버는, 송신할 패킷의 오너 프로세스를 확인하고, 상기 오너 프로세스가 외부로 패킷을 전송하는 것이 허용된 경우에만, 상기 칩으로 패킷을 전송하고, 상기 칩은, 상기 드라이버로부터 수신한 패킷에 대하여 패킷 필터링을 위한 룰을 적용하여 필터링 동작을 수행하는 것을 특징으로 하는 디바이스가 제공될 수 있다.
본 발명적 개념의 다른 실시예에 따르면, 시스템 온 칩이 장착되고, 네트워크 프로세스들을 포함한 디바이스에서의 패킷 필터링 방법에 있어서, 상기 디바이스가, 송신할 패킷의 오너 프로세스를 확인하고, 상기 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용된 경우에만, 상기 패킷을 상기 시스템 온 칩으로 전송하는 단계; 및 상기 시스템 온 칩은, 상기 디바이스로부터 전송 받은 패킷에 대하여, 패킷 필터링을 위한 룰을 적용하여 패킷 필터링 동작을 수행하는 단계;를 포함하는 것을 특징으로 하는 패킷 필터링 방법이 제공될 수 있다.
본 발명적 개념의 다른 실시예에 따르면, 컴퓨터에, 외부로 송신할 패킷의 오너 프로세스를 확인하는 단계; 및 상기 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용된 경우에만, 상기 패킷을 상기 컴퓨터에 장착된 패킷 필터링 기능을 가진 칩으로 전송하는 단계;를 포함하는 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체가 제공될 수 있다.
본 발명적 개념의 또 다른 실시에에 따르면, 방화벽 엔진을 구비한 칩과, 드라이버를 구비한 디바이스로서, 상기 드라이버는, 외부로 송신할 패킷에 대한 오너 프로세스 ID를 획득하고, 상기 송신할 패킷과 그 오너 프로세스 ID를 상기 칩으로 전송하고, 상기 칩에 구비된 방화벽 엔진은 패킷 필터링을 위한 룰 DB를 이용하여 상기 칩으로부터 전송받은 패킷에 대하여 필터링 동작을 수행하는 것을 특징으로 하는 디바이스가 제공될 수 있다.
본 발명적 개념의 다른 실시예에 따르면, 컴퓨터에, 외부로 송신할 패킷의 오너 프로세스를 확인하는 단계; 외부로 송신할 패킷에 대한 오너 프로세스 ID를 획득하는 단계; 및 상기 외부로 송신할 패킷과 그 오너 프로세스 ID를 상기 컴퓨터에 장착된 패킷 필터링 기능을 가진 칩으로 전송하는 단계;를 포함하는 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체가 제공될 수 있다.
본 발명의 하나 이상의 실시예에 따르면 네트워크 어플리케이션의 프로세스 별로 방화벽 설정을 허용 또는 차단함으로써 이 프로세스가 생성하는 모든 패킷에 대해 허용 또는 차단을 설정할 수 있다.
본 발명의 하나 이상의 실시예에 따르면 패킷 필터링을 위한 룰 설정시 컨피겨레이션 헬퍼를 제공함으로써 사용자가 원하는 서비스에 대해 방화벽 설정 작업을 보다 용이하게 수행할 수 있다.
도1은 본 발명적 개념의 예시적 일 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이고,
도2는 본 발명적 개념의 예시적 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이고,
도3은 도2의 디바이스에서 본 발명적 개념의 예시적 실시예에 따른 패킷 필터링 방법을 설명하기 위한 흐름도이고,
도4는 본 발명적 개념의 다른 예시적 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이고,
도5는 본 발명적 개념의 예시적 실시예에 따른 방화벽 인터페이스가 제공하는 룰 설정 화면을 설명하기 위한 도면이고,
도6은 본 발명적 개념의 예시적 실시예에 따른 컨피겨레이션 헬퍼의 기능을 설명하기 위한 도면이고,
도7은 본 발명적 개념의 예시적 실시예에 따른 기본 룰을 설정할 수 있는 룰 설정 화면을 설명하기 위한 도면이고,
도8은 본 발명적 개념의 예시적 실시예에 따른 프로세스 별 룰을 설정할 수 있는 룰 설정 화면을 설명하기 위한 도면이고,
도9는 본 발명적 개념의 다른 예시적 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이고,
도10은 도9의 디바이스에서 본 발명적 개념의 예시적 실시예에 따른 패킷 필터링 방법을 설명하기 위한 흐름도이고,
도11은 본 발명적 개념의 다른 예시적 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이고,
도12는 도11의 디바이스에서 본 발명적 개념의 예시적 실시예에 따른 패킷 필터링 방법을 설명하기 위한 흐름도이고,
도13은 본 발명적 개념의 다른 예시적 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 개재될 수도 있다는 것을 의미한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다' 및/또는 '포함하는'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
도1은 본 발명적 개념의 예시적 일 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명적 개념의 예시적 실시예에 따른 디바이스(1)에는 패킷을 필터링하는 방화벽 기능을 구비한 시스템 온 칩(System On Chip)(3)이 장착될 수 있다.
디바이스(1)는 네트워크를 통해서 송수신하는 패킷을 이용하는 하나 이상의 어플리케이션을 포함할 수 있고, 각각의 어플림케이션들은 하나 이상의 프로세스들을 포함할 수 있다. 본 발명의 설명의 목적을 위해서, 임의의 패킷에 대해, 이 패킷을 외부로 전송하거나 또는 외부로부터 받아서 사용하는 프로세스를 그 패킷의 "오너 프로세스(owner process)"라고 지칭하기로 한다. 일 실시예에서 프로세스들에는 각각 ID가 부여되어 있어 서로간에 식별 가능하며, 각 패킷에는 해당 패킷을 사용하는 오너 프로세스의 프로세스 ID가 포함되어 있다. 따라서 각 패킷을 사용하는 오너 프로세스는 각각의 패킷에 포함된 프로세스 ID에 의해서 식별될 수 있다.
일 실시예에서 시스템 온 칩(3)이 네트워크 인터페이스 카드(NIC)를 포함할 수 있고, 이에 따라 디바이스(1)는, 시스템 온 칩(3)을 통해서 패킷을 외부로 전송하고, 시스템 온 칩(3)을 통해서 패킷을 외부로부터 수신할 수 있다.
시스템 온 칩(3)은 패킷의 차단 또는 허용의 기준이 되는 룰(rule)을 저장하는 저장부 및 상기 룰을 적용하여 패킷의 송수신을 차단 또는 허용하는 방화벽 엔진을 구비할 수 있다. 이 구성에서, 시스템 온 칩(3)이 디바이스(1)로부터 패킷을 수신하면, 시스템 온 칩(3)에 저장된 룰 데이터베이스(DB)를 적용하여 패킷을 외부로 전송하거나 또는 차단한다. 또한 시스템 온 칩(3)은 외부로부터 패킷을 수신하면, 상기 룰 DB를 적용하여 패킷을 디바이스(1)로 전달하거나 또는 차단할 수 있다.
한편 디바이스(1)가 외부로 패킷을 전송할 때는 예를 들면 다음과 같이 동작할 수 있다.
시스템 온 칩(3)이 네트워크 인터페이스 카드(NIC)를 포함하며 디바이스(1)가 외부와 패킷을 송수신할 때 상기 NIC를 통해 통신한다고 가정할 경우, 디바이스(1)는 송신할 패킷의 오너 프로세스를 확인하고, 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용된 경우에만 해당 패킷을 시스템 온 칩(3)으로 전송한다.
시스템 온 칩(3)은 기 정의된 룰을 룰 DB에 저장하며, 상기 룰을 적용하여 외부로 패킷을 송신하는 것을 허용하거나 또는 차단한다. 시스템 온 칩(3)은, 이를 위해서 하드웨어적 및/또는 소프트웨어적으로 구성된 방화벽 엔진을 포함할 수 있다.
디바이스(1)는, 프로세스 별로 패킷의 송수신을 허용하거나 차단하는 것을 정의한 프로세스별 룰 DB를 포함할 수 있다. 또한 디바이스(1)는, 외부로 송신될 패킷에 포함된 오너 프로세스의 프로세스 ID를 획득하며, 프로세스 별 룰 DB를 참조하여, 오너 프로세스가 외부로 패킷을 전송하는 것이 허용되었는지 여부를 판단하고, 허용된 경우에만 해당 패킷을 시스템 온 칩(3)으로 전송한다.
또한 디바이스(1)는 외부로 송신할 패킷에 대하여 프로세스 별 룰을 적용한 결과, 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용되지 않은 경우에는, 해당 패킷을 시스템 온 칩(3)으로 전송하지 않는다.
추가적 기능으로서, 디바이스(1)는, 외부로 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용되지 않은 경우에는, 해당 패킷의 오너 프로세스의 실행을 중단시킬 수 있다.
디바이스(1)가 외부로부터 패킷을 수신할 때는 예를 들면 다음과 같이 동작할 수 있다.
시스템 온 칩(3)이 NIC를 포함하고 있고 외부로부터 패킷이 상기 NIC를 통해서 수신되는 경우, 시스템 온 칩(3)은 외부로부터 수신한 패킷에 대하여 시스템 온 칩(3) 내의 룰 DB를 적용하여 패킷을 통과시킬지 또는 차단할 것인지를 결정한다.
시스템 온 칩(3)은 룰을 적용한 결과 상기 패킷을 통과시킬 것으로 결정한 경우에만 해당 패킷을 디바이스(1)로 전송한다.
일 실시예에서 디바이스(1)는 프로세스 별로 패킷의 송수신을 허용하거나 차단하는 것을 정의한 프로세스별 룰 DB를 포함하고 있다. 이에 따라, 디바이스(1)가 시스템 온 칩(3)으로부터 수신한 패킷을 오너 프로세스에게 전달하기 전에, 수신한 패킷에 대하여 프로세스 별 룰을 적용할 수 있다.
프로세스별 룰을 적용한 결과, 시스템 온 칩(3)으로부터 수신한 패킷의 오너 프로세스가 수신이 금지된 프로세스에 해당되는 경우, 해당 패킷을 오너 프로세스에게 제공하지 않고 버린다(discard). 일 실시예에서, 디바이스(1)는 버린 패킷에 대한 오너 프로세스의 동작을 중단시킬 수 있다.
한편, 디바이스(1)는 사용자로부터 룰을 설정받을 수 있는 룰 설정 화면을 제공할 수 있다. 여기서 룰 설정 화면은 IP, 프로토콜, 및 포트 중에서 적어도 어느 하나의 정보를 사용자로부터 입력받을 수 있는 영역을 포함할 수 있다. 룰 설정 화면에 대하여는 후술하기로 한다.
디바이스(1)는 룰 설정 화면을 통해서 사용자로부터 입력받은 룰을 시스템 온 칩(3)으로 전송하며, 시스템 온 칩(3)은 디바이스(1)로부터 전송받은 룰을 자신(3)의 저장부에 저장된 룰 DB에 반영할 수 있다.
디바이스(1)는 사용자로부터 입력된 룰 중에서, 프로세스별 룰은 시스템 온 칩(3)으로 전송하지 않고, 디바이스(1) 자신이 저장부(미도시)에 저장시킬 수 있다. 이후 디바이스(1)는 디바이스(1) 자신의 저장부(미도시)에 저장된 프로세스 별 룰을 사용하여 프로세스 별로 패킷을 차단하거나 허용할 수 있다.
도 1에는 도시하지 않았지만, 시스템 온 칩(3)은 중앙처리장치(CPU), 메모리, 메모리 컨트롤러, 및 룰 DB 저장부를 포함한 하드웨어 및/소프트웨어 리소스들을 포함할 수 있다. 본 발명적 개념의 설명에서, 프로그램이 구동되기 위해서 필요한 리소스들(예를 들면, 중앙처리장치, 메모리, 메모리 컨트롤러, 룰 DB 저장부)에 대하여 명시적으로 언급되지 않더라도 프로그램이 구동되기 위해서 필요한 하드웨어 및 소프트웨어 자원들 및 그 동작들은 내재되는 것으로 이해하여야 한다. 예를 들면, 시스템 온 칩(3)에 포함된 방화벽 엔진은 룰 DB와 패킷을 서로 매칭시키는 매처(matcher)와 이 매처를 동작시키는 펌웨어를 포함하도록 구성될 수 있는데, 이러한 경우 명시적 언급이 없더라도 그러한 펌웨어를 저장하는 저장부, 및 펌웨어를 메모리에 로딩시키는 중앙처리장치는 시스템 온 칩(3)에 내장되는 것으로 이해하여야 한다.
이와 같은 유사한 방식으로 본원 명세서에서, 디바이스(1)가 어떤 어플리케이션이나 드라이버를 포함하도록 구성된다고 기술된 경우에는, 그러한 어플리케이션과 드라이버를 동작시키기 위한 하드웨어 및/또는 소프트웨어 리소스들을 당연히 포함하는 것으로 이해되어야 할 것이다.
디바이스(1)는 스마트 폰이나 PDA와 같은 모바일 기기일 수 있으나, 이는 예시적인 것으로서 데스크 탑 컴퓨터와 같이 고정형 디바이스 일 수도 있다.
도2는 본 발명적 개념의 예시적 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이다. 도2의 실시예는 방화벽이 시스템 온 칩(SoC)의 기반으로 구현되어 디바이스(200)에 장착된 예이다.
도2에 도시한 것처럼 디바이스(200)는 기능적으로 어플리케이션층, 커널층, SoC층, 및 NIC층으로 구분될 수 있다. 실시 형태에 따라 상기 기능 층들의 일부가 생략될 수 있고 다른 기능층이 추가될 수 있고, 또한 각 기능 층의 세부 구성요소도 변경될 수 있음은 물론이다. 따라서 도2의 구성은 일 실시예에 지나지 않으므로 본 발명적 개념을 도2에 한정해서는 안되며, 이하에서 도2의 실시예를 기초하여 본 발명적 개념을 예시하기로 한다.
도2를 참조하면, 어플리케이션층은 어플리케이션(203)을 포함할 수 있다. 어플리케이션층은 디바이스(200)의 최상위 기능층에 해당하며, 패킷 필터링의 대상이 되는 패킷 데이터를 사용하는 어플리케이션(203)을 포함한다. 예를 들어, 어플리케이션(203)은 웹 브라우저(203-1), 텔넷(203-2), FTP 서버(203-3) 중 적어도 하나가 될 수 있고, 그 외에도 소정의 패킷 데이터를 사용하는 임의의 어플리케이션 중 하나일 수 있다.
도시된 일 실시예에서 디바이스(200)의 커널층은 디바이스(200)가 외부로부터 수신한 패킷 데이터 내의 정보를 어플리케이션층으로 전달하거나 어플리케이션층의 요청에 따라 패킷 데이터를 생성하여 외부로 전송하는 역할을 할 수 있다.
도시된 일 실시예와 같이 데이터 전송을 위해 TCP/IP 프로토콜을 사용하여 패킷 데이터를 송수신하는 경우, 디바이스(200)는 TCP/IP 프로토콜 드라이버(215)를 포함한다. 또한 디바이스(200)가 운영체제(OS)로서 윈도우즈(WINDOWS)를 사용하는 경우 WinSock(213)을 포함한다. TCP/IP 프로토콜 드라이버(215)와 WinSock(213)의 동작들은 종래 널리 알려진 것이므로 이들 동작에 대하여는 설명하지 않기로 한다.
디바이스(200)가 TCP/IP 프로토콜이 아닌 다른 프로토콜을 이용하는 경우라면 그 다른 프로토콜의 사용을 위한 드라이버를 포함할 수 있고, 또한 디바이스(200)가 윈도우즈 운영체제가 아닌 다른 운영체제를 사용하는 경우에는 WinSock(213)이 아닌 다른 구성요소를 포함할 수 있음은 물론이다.
도시된 실시예에서 커널층은 네트워크 드라이버 인터페이스 사양(Network Driver Interface Specification: NDIS)(218)을 더 포함하며, NDIS(218)에는 안티-멀웨어 SoC 미니포트 드라이버(217)(이하, '미니포트 드라이버'라고도 함)를 포함할 수 있다.
미니포트 드라이버(217)는 어플리케이션(203)으로부터 패킷 데이터를 수신하여 AP 드라이버(221)로 전송하거나 AP 드라이버(221)로부터 패킷 데이터를 수신하여 상위 계층으로 전송한다.
본 발명의 일 실시예에 따른 미니포트 드라이버(217)는, 또한, 패킷 데이터를 AP 드라이버(221)로 전송하기 전에 프로세스 별로 필터링하는 동작을 수행할 수 있다. 사용자가 설정한 룰 중에 프로세스 별로 설정된 룰이 있다면, 그 해당 룰은 커널이 관리하는 영역에 저장된다. 도시되 실시예에서 상기 프로세스별 룰은 룰 DB(219)에 저장될 수 있다. 여기서, 룰 DB(219)는 상기 프로세스별 룰 DB만을 저장할 수도 있고, 패킷을 필터링 할 때 사용되는 룰을 더 포함하고 있을 수 있다. 미니포트 드라이버(217)는 어플리케이션(203)으로부터 패킷 데이터를 수신하면, 오너 프로세스를 파악한 후 프로세스 별 룰과 비교하여 패킷을 통과시킬지 여부를 판단한다. 상기 동작에 대해서는 도3을 참조하여 후술하기로 한다.
도2의 실시예에서 디바이스(200)에 장착되는 시스템 온 칩(SoC)은 AP 드라이버(221), 방화벽 엔진(229), NIC 드라이버(228), 및 NIC(231)를 포함한다.
AP 드라이버(221)는 미니포트 드라이버(217)로부터 데이터를 수신하여 방화벽 엔진(229)으로 전송한다. 방화벽 엔진(229)은 패킷 검증(Verification) 과정을 거치고 패킷 필터링 동작을 수행할 수 있다. 여기서, 패킷 검증 과정은 예를 들면 Syn Flooding 과 같은 공격을 막기 위한 것이다.
방화벽 엔진(229)은 패킷 데이터에 대하여 필터링 룰을 적용하여 패킷 데이터의 통과 또는 차단 여부를 판단하고, 판단결과에 따라서 패킷 데이터를 통과시키거나 차단하는 필터링 동작을 수행할 수 있다. 시스템 온 칩(SoC)은 룰 DB(224)를 포함하고 있으며, 방화벽 엔진(229)은 룰 DB(224)에 저장된 룰을 이용하여 패킷 필터링 동작을 수행할 수 있다.
디바이스(200)의 외부로 패킷을 송신하는 경우, 방화벽 엔진(229)은 패킷 필터링 결과 '통과'라고 판단된 패킷만을 NIC 드라이버(228)로 전송한다. NIC 드라이버(228)는 방화벽 엔진(229)으로부터 수신한 패킷을 NIC(231)로 전송한다. 이후, NIC(231)는 외부 네트워크로 패킷을 전송한다.
디바이스(200)가 외부에서 패킷을 수신하는 경우, 방화벽 엔진(229)은 패킷 필터링 결과 '통과'라는 판단라고 판단된 패킷만을 AP 드라이버(221)로 전송하고, AP 드라이버(221)는 패킷을 미니포트 드라이버(217)로 전송한다.
NIC(231)는 패킷 데이터망으로 패킷 데이터를 전송하거나 그로부터 수신하기 위한 것으로서, 시스템 온 칩(SoC)의 일부로서 장착될 수 있다. NIC(231)는 예를 들면 유선 또는 무선 랜 망을 통해서 패킷 데이터를 수신할 수 있다.
이러한 구성에서 본 발명의 일 실시예에 따른 패킷 필터링 동작을 도3을 참조하여 설명한다.
도3은 본 발명적 개념의 예시적 실시예에 따른 패킷 필터링 방법을 설명하기 위한 흐름도로서, 도3a는 디바이스(200)에서 패킷을 외부로 송신할 때 패킷 필터링 흐름도이고, 도3b는 디바이스(200)가 외부로부터 패킷을 수신할 때의 흐름도이다.
도3a를 참조하면, 단계(S101)에서, 임의의 어플리케이션(203)에 의해 패킷이 생성되어 디바이스(200) 외부로 전송되기 전에, 미니포트 드라이버(217)가 상기 전송될 패킷을 수신한다.
단계(S103)에서 미니포트 드라이버(217)는 이 패킷의 오너 프로세스를 확인한다. 일 실시예에서, 오너 프로세스는 상기 패킷에 포함된 프로세스 아이디(ID)로부터 확인될 수 있다.
그 후 단계(S105)에서, 상기 확인된 오너 프로세스가 상기 패킷을 외부로 전송하는 것이 허용되는지 여부를 판단한다. 이 때 이 판단 과정에 프로세스별 룰 DB가 이용될 수 있다. 즉 디바이스(200)가 프로세스별로 패킷의 송수신을 허용하거나 차단하는 것을 정의한 룰 DB(219)를 포함할 수 있고, 이 룰 DB(219)에 저장된 프로세스별 룰에 따라, 상기 오너 프로세스가 패킷을 전송하는 것이 허용되는지 여부를 판단한다.
상기 단계(S105)의 판단에서, 상기 오너 프로세스가 패킷을 송신하는 것이 허용되는 경우, 단계(S107)로 진행하여, 미니포트 드라이브(217)는 상기 패킷을 시스템 온 칩(SoC)으로 전송한다.
시스템 온 칩(SoC)은 상기 디바이스로부터 패킷을 전송받으면, 단계(S109)에서 패킷 필터링을 수행한다. 예를 들어, 방화벽 엔진(229)에서 패킷 필터링을 수행할 수 있고, 그 결과에 따라 패킷의 송신을 허용 또는 차단한다. 이 때, 방화벽 엔진(229)은 룰 DB(224)에 저장된 기 정의된 룰을 적용하여 필터링 수행할 수 있다.
한편 단계(S105)에서, 상기 오너 프로세스가 패킷을 송신하는 것이 허용되지 않는 경우, 단계(S111)로 진행하여, 미니포트 드라이버(217)는 상기 패킷을 시스템 온 칩(SoC)으로 전송하지 않는다. 즉 일 실시예에서 미니포트 드라이버(217)가 상기 패킷을 폐기할 수 있다. 그리고 추가적인 단계로서, 단계(S113)에서 오너 프로세스의 실행까지도 중단시킬 수 있다.
한편, 디바이스(200)가 외부로부터 패킷을 수신할 때는 도3b의 흐름에 따라 패킷 필터링이 진행될 수 있다.
도3b를 참조하면, 단계(S201)에서, 외부에서 전송된 패킷이 디바이스(200)의 미니포트 드라이버(217)로 수신된다. 도2의 실시예의 경우 패킷이 우선 시스템 온 칩(SoC)을 거쳐 미니포트 드라이버(217)로 전달되지만, 실시 형태에 따라 시스템 온 칩(SoC)을 거치지 않을 수도 있다. 또한 시스템 온 칩(SoC)을 거치는 경우, 시스템 온 칩 내의 방화벽 엔진(229)이 패킷 필터링이 수행하고, 이 패킷 필터링을 통과한 패킷이 미니포트 드라이버(217)로 전달되지만, 실시 형태에 따라, 방화벽 엔진에 의한 패킷 필터링을 거치지 않고 미니포트 드라이버(217)로 전달될 수도 있다.
단계(S203)에서 미니포트 드라이버(217)는 이 패킷의 오너 프로세스를 확인한다. 일 실시예에서, 오너 프로세스는 상기 패킷에 포함된 프로세스 아이디(ID)로부터 확인될 수 있다.
그 후 단계(S205)에서, 상기 확인된 오너 프로세스가 상기 패킷을 수신받는 것이 허용되는지 여부를 판단한다. 이 때 이 판단 과정에 프로세스별 룰 DB가 이용될 수 있다. 즉 디바이스(200)가 룰 DB(219)를 포함하는 경우 이 룰 DB(219)에 저장된 프로세스별 룰에 따라, 상기 오너 프로세스가 패킷을 수신하는 것이 허용되는지 여부를 판단한다.
상기 단계(S205)의 판단에서, 상기 오너 프로세스가 패킷을 수신하는 것이 허용되는 경우, 단계(S207)로 진행하여, 미니포트 드라이브(217)는 상기 패킷을 오너 프로세스로 전달한다.
그러나 단계(S205)에서 상기 오너 프로세스가 패킷을 수신하는 것이 허용되지 않는 경우, 단계(S209)로 진행하여, 미니포트 드라이버(217)는 상기 패킷을 오너 프로세스로 전송하지 않는다. 일 실시예에서 미니포트 드라이버(217)는 상기 패킷을 폐기할 수 있다. 그리고 추가적인 단계로서 단계(S211)에서 오너 프로세스의 실행을 중단시킬 수도 있다.
도4는 본 발명적 개념의 다른 예시적 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이다.
도2와 비교할 때 도4의 실시예에 따른 디바이스(200)는 방화벽 사용자 인터페이스(UI) 어플리케이션(201) 및 안티-멀웨어(AM) SoC 스트림 인터페이스 드라이버(211)를 더 포함하고, 시스템 온 칩(SoC)은 방화벽 매니저(227)을 더 포함한다. 그 외의 나머지 구성요소들의 구성과 기능은 도2와 동일하거나 유사하다.
방화벽 UI 어플리케이션(201)은 방화벽 동작과 관련된 사용자 인터페이스를 제공한다. 예를 들어, 방화벽 UI 어플리케이션(201)은 방화벽 동작 작업, 방화벽 정지 작업, 룰 추가 작업, 룰 변경 작업, 특정 룰 제거 작업, 전체 룰 제거 작업, 룰 상태 표시 작업, 각 룰에 적용된 패킷 로그 출력 작업, 및 기본 룰 설정 변경 작업 등을 제공할 수 있다.
방화벽 UI 어플리케이션(201)은 사용자로부터 패킷 데이터 필터링에 대한 룰을 입력받을 수 있고, 방화벽 엔진(229)에 의한 패킷 데이터 필터링 결과를 사용자에게 표시할 수 있다. 방화벽 UI 어플리케이션(201)은 룰 DB(224)에 대한 업데이트 동작을 수행할 수 있다.
또한 본 발명적 개념의 일 실시예에 따라, 방화벽 UI 어플리케이션(201)은 미니포트 드라이버(217)에 의한 프로세스별 패킷 필티링의 결과를 사용자에게 표시할 수 있고, 사용자로부터 프로세스별 룰을 입력받아 룰 DB(219)의 업데이트 동작을 수행할 수 있다.
안티-멀웨어 SoC 스트림 인터페이스 드라이버(211)(이하, '스트림 인터페이스 드라이버'라고도 함)는, 방화벽 UI 어플리케이션(201)으로부터 데이터를 수신하여 시스템 온 칩(SoC)의 AP 드라이버(221)로 전송할 수 있고, AP 드라이버(221)로부터 데이터를 수신하여 방화벽 UI 어플리케이션(201)으로 전송할 수 있다.
방화벽 매니저(227)는 방화벽 UI 어플리케이션(201)을 통해 입력받은 사용자 명령을 처리하는 기능을 수행한다. 예를 들어, 사용자 명령에 따라 룰 DB(224)에 룰을 추가하거나 변경할 수 있고, 현재 룰 DB(224)의 상태를 읽어서 방화벽 UI 어플리케이션(201)으로 전송함으로써 사용자에게 현재 상태를 보여줄 수도 있다.
상기 설명한 방화벽 UI 어플리케이션(201), 스트림 인터페이스 드라이버(211), 및 방화벽 매니저(227) 이외의 나머지 구성요소들은 구성이나 기능이 도2에 도시한 것과 동일하거나 유사하므로 설명을 생략한다.
이와 같은 도4의 구성에서, 사용자가 방화벽 UI 어플리케이션(201)을 통해 룰 DB(219) 및/또는 룰 DB(224)의 룰 설정을 변경할 수 있으며, 이하에서 도5 내지 도8을 참조하여 후술하기로 한다.
도5는 본 발명적 개념의 예시적 실시예에 따른 방화벽 인터페이스가 제공하는 룰 설정 화면을 설명하기 위한 도면이다.
본 발명적 개념의 예시적인 실시예에 따라, 디바이스(200)의 방화벽 UI 어플리케이션(201)은 사용자에 의한 룰 DB(219) 및/또는 룰 DB(224)의 설정을 위한 룰 설정 화면(500)을 사용자에게 제공할 수 있다.
디바이스(200)는 룰 설정 화면(500)을 통해서 사용자로부터 입력받은 룰을 시스템 온 칩(SoC)으로 전송하며, 상기 시스템 온 칩은 디바이스로부터 전송받은 룰을 자신의 저장부에 저장된 룰 DB에 반영할 수 있다.
도5를 참조하면, 룰 설정 화면(500)은 세 개의 서브 윈도우, 즉 기본 설정 윈도우(510), 기본 룰 설정 윈도우(520), 및 프로세스별 설정 윈도우(530)를 포함한다. 사용자는 룰 설정 화면(500)에서 상기 3개의 서브 윈도우 중 임의의 서브 윈도우를 선택하여 룰 설정을 할 수 있으며, 도5는 기본 설정 윈도우(510)가 선택된 상태를 나타낸다.
도5에 도시된 기본 설정 윈도우(510)는 예컨대 사용자가 어느 특정 IP 주소 또는 특정 네트워크 대역의 IP 주소에 해당하는 사이트를 허용(allow) 또는 차단(block)하고자 할 때 이를 설정하는 화면이다.
도시된 일 실시예에서 기본 설정 윈도우(510)는 컨피겨레이션 헬퍼(configuration helper)(511) 기능을 위한 입력창(512)을 포함하고, 그 아래에 룰 네임, IP, 프로토콜, 포트 등의 각종 필드를 채우기 위한 입력창을 포함할 수 있다.
컨피겨레이션 헬퍼(511)는 네트워크를 전혀 모르는 사용자를 도와주는 기능을 한다. 본 발명적 개념의 일 실시예에서 컨피겨레이션 헬퍼(511)는 네트워크 어플리케이션들에 대한 리스트를 제공하고, 이 리스트에 포함된 네트워크 어플리케이션들 중에서 적어도 어느 하나의 네트워크 어플리케이션이 사용자에 의해 선택되면, 선택된 네트워크 어플리케이션을 실행하는데 필요한 IP, 프로토콜, 및 포트 중 적어도 어느 하나를 해당 필드의 입력창에 자동으로 표시할 수 있다.
예를 들어 사용자가 컨피겨레이션 헬퍼(511)의 입력창(512)의 버튼을 선택하면 도6에 도시한 것과 같은 메뉴가 펼쳐진다. 펼쳐진 네트워크 어플리케이션들 중 사용자가 어느 하나를 선택하면, 도5에서 컨피겨레이션 헬퍼(511)의 아래에 있는 룰 네임, IP, 프로토콜, 포트 등의 필드가 자동으로 채워지게 된다.
도6의 리스트에는 메신저, P2P, 게임 등만 예시하였지만, 실시 형태에 따라 ftp, http, 텔넷, ssh, printer 등의 프로토콜도 선택할 수 있도록 상기 리스트에 포함될 수 있다.
상기 실시예에서와 같이 컨피겨레이션 헬퍼(511)를 두는 이유는 일반적인 사용자들은 특정 프로토콜 혹은 특정 서비스의 포트를 전혀 모르는 경우가 많고, 또한 네트워크를 잘 아는 사용자라 하더라도, 예컨대 MSN 메신저로 파일을 주고 받기 위해서 6891~6900 포트와 41800~41899번 포트를 허용(allow)해야 한다는 사실은 관련 문서를 찾아보기 전에는 알기 힘들기 때문이다. 따라서 상기 실시예에서와 같이 통상의 사용자를 위한 컨피겨레이션 헬퍼(511)를 제공함으로써 사용자 자신이 원하는 서비스에 대해 방화벽 설정 작업을 보다 용이하게 수행할 수 있다.
다시 도5를 참조하여, 컨피겨레이션 헬퍼(511) 아래의 각종 필드에 대해 설명하기로 한다.
- 룰 네임(Rule Name): 룰의 이름을 입력하는 필드이다.
- 인터넷 프로토콜(IP): 룰을 적용할 IP를 설정하는 필드이다. 일 실시예에서 IP 필드에는 아래의 표1에 예시한 타입의 설정이 가능하다.
Figure 112012021350301-pat00001
상기 표1의 입력예에서는 "192.168.*.*" 표기와 같이 "*" 표기법을 사용할 수 있도록 하였다. "192.168.*.*" 표기는 특정 네트워크 대역을 의미한다는 점에서 "192.168.0.0/255.255.0.0" 표기 또는 "192.168.0.0/16" 표기와 동일하다. 그러나 일반 사용자들에게는 "192.168.0.0/255.255.0.0" 표기나 "192.168.0.0/16" 표기 보다는 "192.168.*.*"과 같은 표기가 더 이해하기 쉽기 때문에, 상기 실시예는 "192.168.*.*"와 같은 표기도 허용한다.
다만 "192.168.*.*"와 같은 표기로 네트워크 대역을 지정할 경우 서브넷 마스크를 지정할 수 없기 때문에, "192.168.0.0/255.255.0.0" 또는 "192.168.0.0/16"와 같은 표기 방법도 병행하여 사용할 수 있도록 한다.
또한 상기 표1의 입력예는 넷마스크(netmask) 필드가 없고 대신 IP 필드에 통합되었다. 네트워크를 전혀 모르는 사용자라 하더라도 IP와 포트 정도는 알 수 있지만 넷마스크의 의미나 사용법은 모를 가능성이 크기 때문이다.
- 프로토콜(Protocol): 룰을 적용할 프로토콜을 설정하는 부분이다. 일 실시예에서 프로토콜에 해당하는 버튼을 누르면 "ALL", "TCP", "UDP", "ICMP" 등의 메뉴 리스트가 나올 수 있다. 그 외에도 상기 기본적인 프로토콜 뿐만 아니라 다른 다양한 프로토콜도 지원할 수 있다.
- 포트(Port): 룰을 적용할 포트를 설정하는 부분이다. 사용자가 직접 입력할 수도 있고 메뉴 버튼을 눌러 선택할 수도 있다. 메뉴 버튼을 누르면 ftp, http, 텔넷, ssh 등과 같은 프로토콜 문자열이 나오고, 이중 하나를 선택하면 최소 포트 번호(min port)와 최대 포트 번호(max port)가 자동으로 들어가게 할 수 있고 사용자가 직접 입력할 수도 있다.
- 패킷 방향(Direction): 룰을 적용할 패킷의 방향을 지정하는 부분이다. 일 실시예에서, 버튼을 누르면 "ALL", "내부→외부", "외부→내부"와 같은 메뉴 리스트가 나올 수 있다. "내부→외부"는 디바이스(200) 외부로 전송되는 패킷에만 룰이 적용되는 것을 의미하고, "외부→내부"는 디바이스(200)가 수신받는 패킷에만 룰이 적용되는 것이고, "ALL"은 송신 및 수신되는 패킷 모두에 룰이 적용됨을 의미한다.
- 로컬 디바이스(Local Device): 룰을 적용할 네트워크 인터페이스 IP를 설정하는 부분이다. 예를 들어, 디바이스(200)에 두 개의 NIC가 존재할 경우, 특정 NIC로 들어오는 패킷에 대해 룰을 적용하고자 하면 이 필드에서 해당 NIC의 IP를 입력하면 된다. 일 실시예에서 이 필드의 버튼을 누르면 "ALL" 또는 로컬 디바이스의 IP 리스트가 열거되어 선택 가능하다.
- MAC 어드레스(MAC Address): 룰을 적용할 MAC 어드레스를 설정하는 부분이다.
- 액션(Action): 해당 룰과 일치하는 패킷이 들어왔을 때 취할 동작을 설정하는 부분이다. "Nothing", "Allow", "Block", "Logging" 등이 있을 수 있다. "Logging"은 룰에 적용되는 패킷에 대해서 로그를 남기는 기능이다.
이제 도7을 참조하여 기본 룰 설정을 위한 실시예를 설명하기로 한다. 도7은 본 발명적 개념의 예시적 실시예에 따른 기본 룰을 설정할 수 있는 룰 설정 화면(500)을 설명하기 위한 도면으로서, 기본 룰 설정 윈도우(520)가 선택된 상태를 나타낸다.
도7의 기본 룰 설정은 도5의 입력예에 따라 설정된 룰과 일치하지 않는 패킷이 들어왔을 때 적용할 룰을 말한다. 도7을 참조하면, 기본 룰 설정 윈도우(520)는 기본 룰 설명(521) 및 현재 기본 룰 상태(522)를 각각 나타내는 창을 포함하고, 또한 모두 차단 버튼(523) 및 모두 허용 버튼(524)을 포함할 수 있다.
기본 룰 설명(521)은 기본 룰 설정의 의미를 사용자에게 설명하는 설명창이고, 현재 기본 룰 상태(522)는 현재 설정되어 있는 기본 룰의 상태를 보여주는 창이다.
일 실시예에서 기본적인 디폴트 값으로서 기본 룰은 외부로 전송되는 패킷(아웃고잉 패킷)에 대해서는 허용(allow)으로, 디바이스 내부로 수신되는 패킷(인커밍 패킷)에 대해서는 차단(block)으로 설정되어 있을 수 있다. 모두 차단 버튼(523) 및 모두 허용 버튼(524)은 이러한 기본 룰의 설정을 아웃고잉 패킷과 인커밍 패킷 모두에 대해 "차단" 또는 "허용"으로 설정하는 기능을 말한다.
한편, 일 실시예에서, 설정 화면(500)의 기본 설정 윈도우(510)나 기본 룰 설정 윈도우(520)에서 사용자가 입력한 룰 설정 정보는 스트림 인터페이스 드라이버(211)을 거쳐서 시스템 온 칩(SoC)의 방화벽 매니저(227)로 전송되고, 방화벽 매니저(227)에 의해 상기 룰 설정 정보가 룰 DB(224)에 반영됨으로써 룰 DB가 업데이트 된다.
도8은 본 발명적 개념의 예시적 실시예에 따른 프로세스 별 룰을 설정할 수 있는 룰 설정 화면을 설명하기 위한 도면으로, 프로세스별 설정 윈도우(530)가 선택된 상태를 나타낸다.
프로세스별 설정 윈도우(530)는 어플리케이션의 프로세스 별로 패킷을 허용하거나 차단하는 것을 정의한 프로세스별 룰을 입력할 수 있는 영역으로서, 도시된 실시예에서 프로세스별 설정 윈도우(530)는 프로세스 리스트(531), 선택창(532), 차단 버튼(533), 및 허용 버튼(534) 등을 포함할 수 있다.
사용자는 이러한 프로세스별 설정 윈도우(530)를 통해 예컨대 어느 특정 어플리케이션의 프로세스에 대한 방화벽 설정을 허용(allow) 함으로써 이 프로세스가 생성하는 모든 소켓의 패킷의 통과를 허용(allow)할 수 있고, 반대로, 어느 특정 어플리케이션의 프로세스에 대한 방화벽 설정을 차단(block) 함으로써 해당 프로세스가 생성하는 모든 소켓의 패킷의 통과를 차단할 수 있다.
일 실시예에서, 설정 화면(500)의 프로세스별 설정 윈도우(530)에서 사용자가 입력한 룰 설정 정보는, 스트림 인터페이스 드라이버(211)에 의해 상기 룰 설정 정보가 룰 DB(219)에 반영됨으로써, 프로세스별 룰 DB가 업데이트 될 수 있다. 그러나 대안적인 실시 형태에 따라 방화벽 UI 어플리케이션(201) 또는 다른 구성요소에 의해 룰 DB(219)가 업데이트될 수도 있다.
도9는 본 발명적 개념의 다른 예시적 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이다.
도4와 비교할 때 도9의 실시예에서는 커널층의 룰 DB(도4의 219)가 선택적이다. 따라서 도9에서는 상기 룰 DB(219)가 존재하지 않는 것으로 가정하였다. 그 외의 나머지 구성요소들의 기능이나 역할을 도4와 모두 동일하거나 유사하므로 설명은 생략한다.
도9의 실시예에서 미니포트 드라이버(217)는 룰 DB로부터 프로세스별 룰 DB를 받아서 패킷과 직접 비교하는 동작을 수행하지 않는다. 대신, 예를 들어 디바이스(200)가 패킷을 외부로 송신하는 경우, 미니포트 드라이버(217)는 소정 패킷을 수신하면 해당 패킷의 오너 프로세스의 ID를 확인한 뒤 이 프로세스 ID를 해당 패킷과 함께 시스템 온 칩(SoC)으로 전달하고, 시스템 온 칩(SoC) 상에서 프로세스별 룰 DB를 패킷에 적용한다.
즉, 도시된 일 실시예에서 룰 DB(224)가 프로세스별 룰 DB를 더 포함하고, 이 때 프로세스별 룰 DB는 프로세스별로 패킷의 송수신을 허용하거나 차단하는 것을 정의한 룰 DB를 포함하고 있다. 이에 따라, 예컨대 방화벽 엔진(229)에 임의의 패킷이 전송되어 올 때 방화벽 엔진(229)은, 룰 DB(224)에 저장된 프로세스별 룰에 따라, 상기 패킷의 오너 프로세스가 패킷을 송수신하는 것이 허용되는지 여부를 판단하고, 판단 결과에 따라 상기 패킷의 통과를 허용 또는 차단하고 더 나아가 상기 오너 프로세스 자체의 실행 중단을 요청할 수 있다.
이러한 패킷 필터링의 동작을 도10을 참조하여 설명하기로 한다.
도10은 도9의 디바이스에서 본 발명적 개념의 예시적 실시예에 따른 패킷 필터링 방법을 설명하기 위한 흐름도로서, 디바이스(200)에서 패킷을 외부로 송신할 때 패킷 필터링 과정을 나타낸다.
도10을 참조하면, 단계(S1001)에서, 임의의 어플리케이션(203)에 의해 패킷이 생성되어 디바이스(200) 외부로 전송되기 전에, 미니포트 드라이버(217)가 상기 전송될 패킷을 수신한다.
단계(S1003)에서 미니포트 드라이버(217)는 이 패킷의 오너 프로세스를 확인한다. 일 실시예에서, 오너 프로세스는 상기 패킷에 포함된 프로세스 아이디(ID)로부터 확인될 수 있다.
그 후 단계(S1005)에서, 상기 패킷을 사용하는 오너 프로세스를 식별하는 정보를 생성하여 상기 패킷과 함께 시스템 온 칩(SoC)으로 전송한다. 이 때 상기 식별 정보는 예컨대 프로세스 ID가 될 수 있다.
상기 패킷 및 식별 정보(예컨대 프로세스 ID)는 시스템 온 칩(SoC)의 방화벽 엔진(229)에 전달되고, 단계(S1007)에서, 방화벽 엔진(229)이 상기 오너 프로세스가 상기 패킷을 외부로 전송하는 것이 허용되는지 여부를 판단한다. 이 때 이 판단 과정에 프로세스별 룰 DB가 이용될 수 있다. 즉 디바이스(200)가 프로세스별로 패킷의 송수신을 허용하거나 차단하는 것을 정의한 룰을 룰 DB(224)가 포함할 수 있고, 상기 프로세스별 룰에 따라, 상기 오너 프로세스가 패킷을 송신하는 것이 허용되는지 여부를 판단한다.
상기 단계(S1007)의 판단에서, 상기 오너 프로세스가 패킷을 송신하는 것이 허용되는 경우, 단계(S1009)로 진행하여, 방화벽 엔진(229)이 단계(S1009)에서 패킷 필터링을 수행한다. 즉 룰 DB(224)에 저장된 패킷 필터링 룰에 따라 패킷 송신의 허용 또는 차단을 판단하는 필터링 작업을 수행할 수 있고, 그 결과에 따라 패킷의 송신을 허용 또는 차단한다.
대안적인 실시예에서, 상기 패킷 필터링 단계(S1009)는 상기 판단하는 단계(S1007) 이전에 수행될 수도 있다. 즉 패킷 필터링을 거쳐 통과된 패킷에 대해서만 상기 판단 단계(S1007)를 수행할 수도 있다.
한편 단계(S1007)에서, 상기 오너 프로세스가 패킷을 송신하는 것이 허용되지 않는 경우, 단계(S1011)로 진행하여, 방화벽 엔진(229)은 상기 패킷을 NIC 드라이버(228)측으로 전송하지 않는다. 일 실시예에서 방화벽 엔진(229)는 상기 패킷을 폐기할 수 있다. 그리고 추가적인 단계로서, 단계(S1013)에서 방화벽 엔진(229)는 오너 프로세스의 실행의 중단을 요청하는 신호를 커널 측으로 전송할 수 있다.
도11은 본 발명적 개념의 다른 예시적 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이다.
도9와 비교할 때 도11의 실시예는 디바이스(200)가 외부와 통신하기 위한 구성요소인 NIC 드라이버(228) 및 NIC(231)의 위치가 도9의 실시예에와 상이하다. 도11을 참조하면, NIC(231)가 시스템 온 칩(SoC)이 아닌 디바이스(200) 본체 측에 위치하고 있고 NIC 드라이버(228)도 커널층의 NDIS(218)에 위치한다. 그 외의 나머지 구성요소들의 기능이나 역할은 도9와 동일하거나 유사하므로 설명을 생략한다.
상기 구성에 따르면, 디바이스(200) 내부에서 외부로 송신되는 패킷 또는 외부에서 디바이스(200)로 수신되는 패킷이 미니포트 드라이버(217)로 전달될 수 있다. 따라서 미니포터 드라이버(217)는 송신 또는 수신되는 모든 패킷에 대해 해당 패킷의 오너 프로세스의 ID를 확인한 뒤, 이 프로세스 ID를 해당 패킷과 함께 시스템 온 칩(SoC)으로 전달하고, 시스템 온 칩(SoC) 상에서 프로세스별 룰 DB를 상기 패킷에 적용할 수 있다.
이러한 패킷 필터링의 동작을 도12를 참조하여 설명하기로 한다. 도12는 도11의 디바이스에서 본 발명적 개념의 예시적 실시예에 따른 패킷 필터링 방법을 설명하기 위한 흐름도이다.
도12를 참조하면, 단계(S1201)에서, 송신 또는 수신되는 패킷이 미니포트 드라이버(217)로 전달되고, 단계(S1203)에서 미니포트 드라이버(217)는 이 패킷의 오너 프로세스를 확인한다. 일 실시예에서, 오너 프로세스는 상기 패킷에 포함된 프로세스 아이디(ID)로부터 확인될 수 있다.
그 후 단계(S1205)에서, 상기 패킷을 사용하는 오너 프로세스를 식별하는 정보를 생성하여 상기 패킷과 함께 시스템 온 칩(SoC)으로 전송한다. 이 때 상기 식별 정보는 예컨대 프로세스 ID가 될 수 있다.
상기 패킷 및 식별 정보(예컨대 프로세스 ID)는 시스템 온 칩(SoC)의 방화벽 엔진(229)에 전달되고, 단계(S1207)에서, 방화벽 엔진(229)은 프로세스별 룰 DB를 이용하여, 상기 오너 프로세스가 상기 패킷을 외부로 송신 또는 수신하는 것이 허용되는지 여부를 판단한다. 즉, 외부로 송신될 패킷에 대해서는 해당 패킷의 오너 프로세스가 이 패킷을 송신하는 것이 허용되는지 여부를 판단하고, 외부에서 수신받는 패킷에 대해서는 해당 패킷의 오너 프로세스가 이 패킷을 수신하는 것이 허용되는지 여부를 판단할 수 있다.
상기 단계(S1207)의 판단에서, 상기 오너 프로세스가 패킷 송신(또는 수신)이 허용되는 프로세스에 속하는 경우, 단계(S1209)로 진행하여, 방화벽 엔진(229)이 단계(S1209)에서 패킷 필터링을 수행한다. 즉 룰 DB(224)에 저장된 패킷 필터링 룰에 따라 패킷 필터링 작업을 수행할 수 있고, 그 결과에 따라 패킷의 송신을 허용 또는 차단한다. 대안적인 실시예에서, 상기 패킷 필터링 단계(S1209)는 상기 판단하는 단계(S1207) 이전에 수행될 수도 있다.
한편 단계(S1207)에서, 외부로 송신될 패킷의 경우, 상기 오너 프로세스가 패킷을 송신하는 것이 허용되지 않는다면, 단계(S1211)로 진행하여, 방화벽 엔진(229)은 상기 패킷을 NIC 드라이버(228)측으로 전송하지 않는다. 일 실시예에서 방화벽 엔진(229)은 상기 패킷을 폐기할 수 있다. 그리고 추가적인 단계로서, 단계(S1213)에서 방화벽 엔진(229)는 오너 프로세스의 실행의 중단을 요청하는 신호를 커널 측으로 전송할 수 있다.
만일 단계(S1207)에서, 디바이스 외부로부터 수신받는 패킷의 경우, 상기 오너 프로세스가 패킷을 수신하는 것이 허용되지 않는다면, 단계(S1211)로 진행하여, 방화벽 엔진(229)은 상기 패킷을 어플리케이션(203) 측으로 전송하지 않는다. 일 실시예에서 방화벽 엔진(229)은 상기 패킷을 폐기할 수 있다. 그리고 추가적인 단계로서, 단계(S1213)에서 방화벽 엔진(229)는 오너 프로세스의 실행의 중단을 요청하는 신호를 커널 측으로 전송할 수 있다.
도13은 본 발명적 개념의 다른 예시적 실시예에 따른 시스템 온 칩이 장착되는 디바이스를 설명하기 위한 도면이다.
도11과 비교할 때 도13의 실시예는 시스템 온 칩(SoC)이 하드웨적 구성요소만 포함하고 있다는 점에서 도11과 상이하다. 즉 도시된 실시예에서 시스템 온 칩(SoC)은 디바이스(200)의 커널층과 통신하기 위한 AP 드라이버(221) 및 방화벽 엔진(229)을 포함한다. 일 실시예에서 방화벽 엔진(229)은 메모리(241) 및 매처(matcher)(242)를 포함할 수 있다.
메모리(241)는 디바이스(200)의 임의의 저장장치에 저장되어 있는 룰 DB를 로딩하여 일시적으로 저장하기 위한 메모리로서, 휘발성 저장장치일 수 있다. 매처(242)는 패킷을 룰 DB의 패킷 필터링 룰 및/또는 프로세스별 룰과 비교하여 패킷의 차단 또는 허용을 판단할 수 있다. 그 외의 나머지 구성요소들의 기능이나 역할은 도11과 동일하거나 유사하므로 설명을 생략한다.
상기 실시예에 따른 패킷 필터링 동작은 기본적으로 도12와 동일 또는 유사하다. 다만 방화벽 엔진(229)에 의한 패킷 필터링을 수행하기 전에 디바이스(200)의 저장장치에 저장되어 있는 룰 DB(219)가 시스템 온 칩(SoC)의 메모리(241)에 로딩된다. 그 후, 미니포터 드라이버(217)는 송신 또는 수신되는 모든 패킷에 대해 해당 패킷의 오너 프로세스의 ID를 확인한 뒤 이 프로세스 ID를 해당 패킷과 함께 시스템 온 칩(SoC)으로 전달하고, 시스템 온 칩(SoC)의 방화벽 엔진(229)은 프로세스별 룰을 포함한 패킷 필터링 룰을 적용한다.
한편, 이상에서 설명한 실시예에서는 어플리케이션(프로그램)의 "프로세스" 단위로 패킷의 허용 또는 차단을 설정하거나 프로세스 자체의 실행을 중단하는 것으로 설명하였으나, 실시 형태에 따라, 프로세스가 아닌 프로그램 단위로 상기 동작을 수행할 수도 있다. 예컨대 차단된 소정 패킷에 대해 이 패킷의 오너 프로그램을 확인하여 이 오너 프로그램의 실행을 중단할 수 있다. 즉 상기 도면들을 참조하여 설명한 실시예에서 "프로세스"를 "프로그램"으로 대체하여도 본 발명적 개념에 포함될 수 있다.
이상 설명한 본 발명에 따른 실시예들은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
상기와 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
200: 디바이스 201: 방화벽 UI 어플리케이션
203: 네트워크 어플리케이션
224: 룰 DB 227: 방화벽 매니저
229: 방화벽 엔진 231: 네트워크 인터페이스 카드
500: 룰 설정 화면

Claims (25)

  1. 방화벽 엔진을 구비한 칩과 드라이버를 포함하는 디바이스로서,
    상기 드라이버는, 송신할 패킷의 오너 프로세스를 확인하고, 상기 오너 프로세스가 외부로 패킷을 전송하는 것이 허용된 경우에만 상기 칩으로 패킷을 전송하고, 상기 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용되지 않은 경우에는 상기 패킷을 상기 칩으로 전송하지 않으며,
    상기 칩은, 상기 드라이버로부터 수신한 패킷에 대하여 패킷 필터링을 위한 룰을 적용하여 필터링 동작을 수행하는 것을 특징으로 하는 디바이스.
  2. 제 1 항에 있어서,
    프로세스 별로 패킷의 송수신을 허용하거나 차단하는 것을 정의한 프로세스별 룰 데이터베이스(DB)를 저장하는 저장부;를 더 포함하며,
    상기 드라이버는, 송신할 패킷에 포함된 오너 프로세스 ID를 획득하며, 상기 프로세스 별 룰 DB를 참조하여, 상기 오너 프로세스 ID를 가진 프로세스가 외부로 패킷을 전송하는 것이 허용된 것인지를 판단하고, 허용된 경우에만 상기 패킷을 상기 칩으로 전송하는 것을 특징으로 하는 디바이스.
  3. 삭제
  4. 제1항에 있어서,
    상기 드라이버는, 또한, 상기 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용되지 않은 경우에는, 상기 오너 프로세스의 실행을 중단시키는 것을 특징으로 하는 디바이스.
  5. 제 1 항에 있어서,
    상기 칩은, 네트워크 인터페이스 카드를 더 포함하며, 상기 네트워크 인터페이스 카드를 통해서 수신된 패킷에 대하여 상기 룰을 적용하여 상기 패킷을 상기 드라이버로 전송하거나 또는 전송하지 않는 것을 특징으로 하는 디바이스.
  6. 제 5 항에 있어서,
    상기 드라이버는, 또한, 상기 칩으로부터 전송받은 패킷의 오너 프로세스를 확인한 후, 상기 칩으로부터 전송받은 패킷의 오너 프로세스가 외부로부터 패킷을 수신하는 것이 허용된 경우에만, 상기 패킷을 상기 오너 프로세스에게 제공하는 것을 특징으로 하는 디바이스.
  7. 제 1 항에 있어서,
    IP, 프로토콜, 및 포트 중에서 적어도 어느 하나의 정보를 사용자로부터 입력받을 수 있는 영역을 포함한 룰 설정 화면을 제공하는 방화벽 유저 인터페이스;를 더 포함하며,
    상기 방화벽 유저 인터페이스는, 상기 룰 설정 화면을 통해서 사용자로부터 입력받은 룰을 상기 칩으로 전송하며, 상기 칩은 상기 방화벽 유저 인터페이스로부터 전송받은 룰을 이용하여 패킷 필터링 동작을 수행하는 것을 특징으로 하는 디바이스.
  8. 제 7 항에 있어서,
    상기 룰 설정 화면은, 컨피겨레이션 헬퍼를 포함하며,
    상기 컨피겨레이션 헬퍼는, 네트워크 어플리케이션들에 대한 리스트를 제공하고, 이 리스트에 포함된 네트워크 어플리케이션들 중에서 적어도 어느 하나의 네트워크 어플리케이션이 사용자에 의해 선택되면, 선택된 네트워크 어플리케이션이 실행하는데 필요한 IP, 프로토콜, 및 포트 중 적어도 어느 하나를 상기 영역에 자동으로 입력하는 것을 특징으로 하는 디바이스.
  9. 제 7 항에 있어서,
    상기 룰 설정 화면은,
    프로세스 별로 패킷을 허용하거나 차단하는 것을 정의한 프로세스 별 룰을 입력할 수 있는 영역을 포함하는 것을 특징으로 하는 디바이스.
  10. 시스템 온 칩이 장착되고, 네트워크 프로세스들을 포함한 디바이스에서의 패킷 필터링 방법에 있어서,
    상기 디바이스가, 송신할 패킷의 오너 프로세스를 확인하고, 상기 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용된 경우에, 상기 패킷을 상기 시스템 온 칩으로 전송하는 단계; 및
    상기 시스템 온 칩은, 상기 디바이스로부터 전송 받은 패킷에 대하여, 패킷 필터링을 위한 룰을 적용하여 패킷 필터링 동작을 수행하는 단계;를 포함하며,
    상기 디바이스는, 상기 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용되지 않는 것으로 확인된 경우에는, 상기 송신할 패킷을 상기 시스템 온 칩으로 전송하지 않는 것을 특징으로 하는 패킷 필터링 방법.
  11. 제 10 항에 있어서.
    상기 디바이스는, 프로세스별로 패킷의 송수신을 허용하거나 차단하는 것을 정의한 프로세스별 룰 DB를 저장하며,
    상기 디바이스는, 상기 패킷에 포함된 오너 프로세스 ID를 획득하며, 상기 프로세스 별 룰 DB를 참조하여, 상기 오너 프로세스 ID를 가진 프로세스가 외부로 패킷을 전송하는 것이 허용된 것인지를 판단하고, 허용된 경우에만 상기 패킷을 상기 칩으로 전송하는 것을 특징으로 하는 패킷 필터링 방법.
  12. 삭제
  13. 제10항에 있어서,
    상기 디바이스는, 또한, 상기 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용되지 않은 경우에는, 상기 오너 프로세스의 실행을 중단시키는 것을 특징으로 하는 패킷 필터링 방법.
  14. 제 10 항에 있어서,
    상기 시스템 온 칩은, 네트워크 인터페이스 카드를 더 포함하며, 상기 네트워크 인터페이스 카드를 통해서 수신된 패킷에 대하여 상기 룰을 적용하여 패킷 필터링 동작을 수행하는 것을 특징으로 하는 패킷 필터링 방법.
  15. 제 14 항에 있어서,
    상기 디바이스는, 또한, 상기 시스템 온 칩으로부터 전송받은 패킷의 오너 프로세스를 확인한 후, 상기 시스템 온 칩으로부터 전송받은 패킷의 오너 프로세스가 외부로부터 패킷을 수신하는 것이 허용된 경우에만, 상기 패킷을 상기 오너 프로세스에게 제공하는 것을 특징으로 하는 패킷 필터링 방법.
  16. 제 10 항에 있어서,
    상기 디바이스는, IP, 프로토콜, 및 포트 중에서 적어도 어느 하나의 정보를 사용자로부터 입력받을 수 있는 영역을 포함한 룰 설정 화면을 제공하는 단계; 및
    상기 디바이스는, 상기 룰 설정 화면을 통해서 사용자로부터 입력받은 룰을 상기 시스템 온 칩으로 전송하며, 상기 시스템 온 칩은 상기 디바이스로부터 전송받은 룰을 이용하여 패킷 필터링 동작을 수행하는 단계;를 더 포함하는 것을 특징으로 하는 패킷 필터링 방법.
  17. 제 16 항에 있어서,
    상기 룰 설정 화면은, 컨피겨레이션 헬퍼를 포함하며,
    상기 컨피겨레이션 헬퍼는, 네트워크 어플리케이션들에 대한 리스트를 제공하고, 이 리스트에 포함된 네트워크 어플리케이션들 중에서 적어도 어느 하나의 네트워크 어플리케이션이 사용자에 의해 선택되면, 선택된 네트워크 어플리케이션이 실행하는데 필요한 IP, 프로토콜, 및 포트 중 적어도 어느 하나를 상기 영역에 자동으로 입력하는 것을 특징으로 하는 패킷 필터링 방법.
  18. 제 17 항에 있어서,
    상기 룰 설정 화면은,
    프로그램 별로 패킷의 송신 또는 수신을 허용하거나 차단하는 것을 정의한 프로세스 별 룰을 입력할 수 있는 영역을 포함하는 것을 특징으로 하는 패킷 필터링 방법.
  19. 컴퓨터에,
    외부로 송신할 패킷의 오너 프로세스를 확인하는 단계; 및
    상기 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용된 경우에만 상기 패킷을 상기 컴퓨터에 장착된 패킷 필터링 기능을 가진 칩으로 전송하고, 상기 송신할 패킷의 오너 프로세스가 외부로 패킷을 전송하는 것이 허용되지 않는 것으로 확인된 경우에는, 상기 송신할 패킷을 상기 칩으로 전송하지 않는 단계;를 포함하는 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  20. 방화벽 엔진을 구비한 칩과, 드라이버를 구비한 디바이스로서,
    상기 드라이버는, 외부로 송신할 패킷에 대한 오너 프로세스 ID를 획득하고 상기 오너 프로세스 ID가 외부로 패킷을 전송하는 것이 허용된 것인지 여부를 확인하고, 상기 오너 프로세스 ID가 외부로 패킷을 전송하는 것이 허용된 경우에만 상기 칩으로 상기 외부로 송신할 패킷을 전송하고, 상기 오너 프로세스 ID가 외부로 패킷을 전송하는 것이 허용되지 않는 경우에는 상기 칩으로 상기 외부로 송신할 패킷을 전송하지 않으며,
    상기 칩에 구비된 방화벽 엔진은 패킷 필터링을 위한 룰 DB를 이용하여 상기 드라이버로부터 전송받은 패킷에 대하여 필터링 동작을 수행하는 것을 특징으로 하는 디바이스.
  21. 삭제
  22. 제 20 항에 있어서,
    네트워크 인터페이스카드;를 더 포함하며,
    상기 드라이버는, 또한, 상기 네트워크 인터페이스카드를 통해서 수신한 패킷에 대하여 오너 프로세스 ID를 획득하는 것을 특징으로 하는 디바이스.
  23. 제 20 항에 있어서,
    상기 룰 DB는, 프로세스별로 패킷의 송수신을 허용하거나 차단하는 것을 정의한 프로세스별 룰을 포함하는 것을 특징으로 하는 디바이스.
  24. 컴퓨터에,
    외부로 송신할 패킷의 오너 프로세스를 확인하는 단계;
    외부로 송신할 패킷에 대한 오너 프로세스 ID를 획득하는 단계; 및
    상기 오너 프로세스 ID가 외부로 패킷을 전송하는 것이 허용된 것인지 여부를 확인하고, 상기 오너 프로세스 ID가 외부로 패킷을 전송하는 것이 허용된 경우에만 상기 컴퓨터에 장착된 칩으로 상기 외부로 송신할 패킷을 전송하고, 상기 오너 프로세스 ID가 외부로 패킷을 전송하는 것이 허용되지 않는 경우에는 상기 칩으로 상기 외부로 송신할 패킷을 전송하지 않는 단계;를 포함하는 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  25. 제 24 항에 있어서,
    네트워크 인터페이스카드를 통해서 수신한 패킷에 대하여 오너 프로세스 ID를 획득하는 단계;를 더 포함하는 것을 특징으로 하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
KR1020120027053A 2011-03-16 2012-03-16 시스템 온 칩 기반의 패킷 필터링을 제공할 수 있는 디바이스 및 패킷 필터링 방법 KR101404312B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161453290P 2011-03-16 2011-03-16
US61/453,290 2011-03-16

Publications (2)

Publication Number Publication Date
KR20120106641A KR20120106641A (ko) 2012-09-26
KR101404312B1 true KR101404312B1 (ko) 2014-06-27

Family

ID=45841343

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020120027053A KR101404312B1 (ko) 2011-03-16 2012-03-16 시스템 온 칩 기반의 패킷 필터링을 제공할 수 있는 디바이스 및 패킷 필터링 방법
KR1020120027051A KR101339512B1 (ko) 2011-03-16 2012-03-16 시스템 온 칩 기반의 패킷 필터링을 제공할 수 있는 디바이스 및 패킷 필터링 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020120027051A KR101339512B1 (ko) 2011-03-16 2012-03-16 시스템 온 칩 기반의 패킷 필터링을 제공할 수 있는 디바이스 및 패킷 필터링 방법

Country Status (5)

Country Link
US (2) US8726362B2 (ko)
EP (2) EP2500838A1 (ko)
JP (2) JP5519718B2 (ko)
KR (2) KR101404312B1 (ko)
CN (2) CN102737177B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11206277B1 (en) 2020-11-24 2021-12-21 Korea Internet & Security Agency Method and apparatus for detecting abnormal behavior in network

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101563059B1 (ko) * 2012-11-19 2015-10-23 삼성에스디에스 주식회사 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법
US9600441B2 (en) * 2013-03-11 2017-03-21 Samsung Electronics Co., Ltd. Apparatus and method for controlling network access for applications on mobile terminals
US9391955B2 (en) * 2014-06-04 2016-07-12 Bank Of America Corporation Firewall policy converter
US9667596B2 (en) 2014-06-04 2017-05-30 Bank Of America Corporation Firewall policy comparison
US9450916B2 (en) * 2014-08-22 2016-09-20 Honeywell International Inc. Hardware assist for redundant ethernet network
CN105791234A (zh) * 2014-12-23 2016-07-20 宇龙计算机通信科技(深圳)有限公司 用于终端的数据共享方法、数据共享装置和终端
US10489590B2 (en) 2016-03-07 2019-11-26 Chengdu Haicun Ip Technology Llc Processor for enhancing computer security
US10560475B2 (en) 2016-03-07 2020-02-11 Chengdu Haicun Ip Technology Llc Processor for enhancing network security
US10673890B2 (en) * 2017-05-30 2020-06-02 Akamai Technologies, Inc. Systems and methods for automatically selecting an access control entity to mitigate attack traffic
US10714172B2 (en) 2017-09-21 2020-07-14 HangZhou HaiCun Information Technology Co., Ltd. Bi-sided pattern processor
US11182163B1 (en) * 2018-08-31 2021-11-23 Splunk Inc. Customizable courses of action for responding to incidents in information technology environments
CN109088886B (zh) * 2018-09-29 2021-10-01 郑州云海信息技术有限公司 在防火墙上监控策略的管理方法和装置
KR102156600B1 (ko) * 2019-11-20 2020-09-16 (주)케이사인 네트워크에서 수집된 패킷과 엔드포인트 컴퓨팅 장치의 프로세스 간의 연관관계를 생성하는 시스템 및 방법
DE102020103546B3 (de) 2020-02-12 2021-07-01 Audi Aktiengesellschaft Verfahren zur Konfiguration eines Netzwerks, insbesondere in einem Kraftfahrzeug

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100468374B1 (ko) * 2004-07-06 2005-01-31 주식회사 잉카인터넷 네트워크 유해 트래픽 제어 장치 및 방법
KR100750377B1 (ko) * 2006-05-09 2007-08-17 한정보통신 주식회사 SoC기반의 네트워크 보안 시스템 및 그 방법

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205552B1 (en) 1998-12-31 2001-03-20 Mci Worldcom, Inc. Method and apparatus for checking security vulnerability of networked devices
US6868450B1 (en) * 2000-05-17 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for a process attribute based computer network filter
KR100383224B1 (ko) 2000-05-19 2003-05-12 주식회사 사이젠텍 리눅스 기반의 네트워크 통합 보안 시스템 및 그의 방법과이를 장착한 반도체 장치
US20020131404A1 (en) 2000-11-28 2002-09-19 4Thpass Inc. Method and system for maintaining and distributing wireless applications
JP2002244755A (ja) * 2001-02-16 2002-08-30 Sony Corp データ処理方法、半導体回路およびプログラム
JP2003067271A (ja) * 2001-08-27 2003-03-07 Hitachi Ltd 統合管理システム
KR100557022B1 (ko) 2001-10-06 2006-03-03 주식회사 비즈모델라인 무선 바이러스 차단 방법 및 시스템
US7316029B1 (en) 2001-10-25 2008-01-01 Sprint Communications Company L.P. Network security services architecture
US7373659B1 (en) * 2001-12-20 2008-05-13 Mcafee, Inc. System, method and computer program product for applying prioritized security policies with predetermined limitations
KR20030056652A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 정책기반 네트워크 보안제어시스템에서의 블랙리스트관리장치 및 관리방법
US7254562B2 (en) 2002-07-11 2007-08-07 Hewlett-Packard Development Company, L.P. Rule-based packet selection, storage, and access method and system
JP3794491B2 (ja) * 2002-08-20 2006-07-05 日本電気株式会社 攻撃防御システムおよび攻撃防御方法
US7467406B2 (en) * 2002-08-23 2008-12-16 Nxp B.V. Embedded data set processing
US20100138909A1 (en) * 2002-09-06 2010-06-03 O2Micro, Inc. Vpn and firewall integrated system
US20040059943A1 (en) 2002-09-23 2004-03-25 Bertrand Marquet Embedded filtering policy manager using system-on-chip
US7308703B2 (en) * 2002-12-18 2007-12-11 Novell, Inc. Protection of data accessible by a mobile device
US20040143751A1 (en) * 2003-01-17 2004-07-22 Cyrus Peikari Protection of embedded processing systems with a configurable, integrated, embedded firewall
US20050216770A1 (en) 2003-01-24 2005-09-29 Mistletoe Technologies, Inc. Intrusion detection system
KR20040090373A (ko) 2003-04-15 2004-10-22 주식회사 안철수연구소 무선 단말기에서 실시간 바이러스 감시/진단/치료 방법
JP4222184B2 (ja) * 2003-04-24 2009-02-12 日本電気株式会社 セキュリティ管理支援システム、セキュリティ管理支援方法およびプログラム
US7549055B2 (en) 2003-05-19 2009-06-16 Intel Corporation Pre-boot firmware based virus scanner
US7971250B2 (en) 2003-10-08 2011-06-28 At&T Intellectual Property I, L.P. System and method for providing data content analysis in a local area network
US20050138416A1 (en) * 2003-12-19 2005-06-23 Microsoft Corporation Object model for managing firewall services
EP1551145A1 (en) * 2003-12-29 2005-07-06 Alcatel Canada Inc. Embedded filtering policy manager using system-on-chip
US7490350B1 (en) * 2004-03-12 2009-02-10 Sca Technica, Inc. Achieving high assurance connectivity on computing devices and defeating blended hacking attacks
US7840763B2 (en) 2004-03-12 2010-11-23 Sca Technica, Inc. Methods and systems for achieving high assurance computing using low assurance operating systems and processes
US7523500B1 (en) 2004-06-08 2009-04-21 Symantec Corporation Filtered antivirus scanning
US7418253B2 (en) 2004-07-19 2008-08-26 Telefonaktiebolaget Lm Ericsson (Publ) Method, security system control module and policy server for providing security in a packet-switched telecommunications system
JP2006157313A (ja) * 2004-11-26 2006-06-15 Nec Corp 経路作成システム、経路作成装置及び経路作成プログラム
US20070022479A1 (en) 2005-07-21 2007-01-25 Somsubhra Sikdar Network interface and firewall device
JP4641794B2 (ja) 2004-12-28 2011-03-02 富士通株式会社 パケットフィルタ同期方法及びパケット中継システム
US7839854B2 (en) 2005-03-08 2010-11-23 Thomas Alexander System and method for a fast, programmable packet processing system
US8667106B2 (en) 2005-05-20 2014-03-04 At&T Intellectual Property Ii, L.P. Apparatus for blocking malware originating inside and outside an operating system
US20060282878A1 (en) * 2005-06-14 2006-12-14 Stanley James C Expression of packet processing policies using file processing rules
US7784094B2 (en) 2005-06-30 2010-08-24 Intel Corporation Stateful packet content matching mechanisms
US8869270B2 (en) 2008-03-26 2014-10-21 Cupp Computing As System and method for implementing content and network security inside a chip
US7970899B2 (en) * 2006-03-03 2011-06-28 Barracuda Networks Inc Integrated data flow packet admission and traffic management apparatus
WO2007110094A1 (en) 2006-03-27 2007-10-04 Telecom Italia S.P.A. System for enforcing security policies on mobile communications devices
JP2007329876A (ja) 2006-06-09 2007-12-20 Canon Inc デバイス制御装置及びそのネットワークセキュリティー方法
KR101206542B1 (ko) 2006-12-18 2012-11-30 주식회사 엘지씨엔에스 하드웨어 기반의 동적공격 탐지 및 차단을 지원하는네트워크 보안 장치 및 방법
CN1997074A (zh) * 2006-12-27 2007-07-11 华为技术有限公司 实现基于策略的路由方式的系统、装置及方法
KR100878895B1 (ko) 2007-02-08 2009-01-15 삼성전자주식회사 휴대단말 악성코드 처리장치 및 그 처리 방법
US8416773B2 (en) 2007-07-11 2013-04-09 Hewlett-Packard Development Company, L.P. Packet monitoring
US8079084B1 (en) 2007-08-10 2011-12-13 Fortinet, Inc. Virus co-processor instructions and methods for using such
US7911990B2 (en) * 2007-10-26 2011-03-22 Microsoft Corporation Ad hoc wireless networking
US8037532B2 (en) 2007-12-11 2011-10-11 International Business Machines Corporation Application protection from malicious network traffic
US20090240874A1 (en) * 2008-02-29 2009-09-24 Fong Pong Framework for user-level packet processing
JP5275673B2 (ja) * 2008-04-23 2013-08-28 トヨタ自動車株式会社 マルチコアシステム、車両用ゲートウェイ装置
US8245296B2 (en) 2008-05-23 2012-08-14 Verizon Patent And Licensing Inc. Malware detection device
JP5176983B2 (ja) * 2008-09-22 2013-04-03 富士通株式会社 フィルタ装置、フィルタプログラム及び方法
US8146134B2 (en) * 2008-10-28 2012-03-27 Yahoo! Inc. Scalable firewall policy management platform
US8914878B2 (en) 2009-04-29 2014-12-16 Juniper Networks, Inc. Detecting malicious network software agents
CN101895529B (zh) * 2010-05-31 2014-05-21 上海网宿科技股份有限公司 一种在驱动层判断tcp/ip包所属进程的方法
KR101279213B1 (ko) * 2010-07-21 2013-06-26 삼성에스디에스 주식회사 시스템 온 칩 기반의 안티-멀웨어 서비스를 제공할 수 있는 디바이스 및 그 방법과 인터페이스 방법
US8539545B2 (en) * 2010-07-22 2013-09-17 Juniper Networks, Inc. Domain-based security policies

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100468374B1 (ko) * 2004-07-06 2005-01-31 주식회사 잉카인터넷 네트워크 유해 트래픽 제어 장치 및 방법
KR100750377B1 (ko) * 2006-05-09 2007-08-17 한정보통신 주식회사 SoC기반의 네트워크 보안 시스템 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11206277B1 (en) 2020-11-24 2021-12-21 Korea Internet & Security Agency Method and apparatus for detecting abnormal behavior in network

Also Published As

Publication number Publication date
CN102737177A (zh) 2012-10-17
US20120240186A1 (en) 2012-09-20
KR20120106641A (ko) 2012-09-26
CN102737177B (zh) 2016-11-09
JP2012195940A (ja) 2012-10-11
JP5519718B2 (ja) 2014-06-11
US20120240215A1 (en) 2012-09-20
CN102685104A (zh) 2012-09-19
KR20120106640A (ko) 2012-09-26
EP2501101A1 (en) 2012-09-19
KR101339512B1 (ko) 2013-12-10
JP2012195943A (ja) 2012-10-11
EP2500838A1 (en) 2012-09-19
US8726362B2 (en) 2014-05-13
JP5475041B2 (ja) 2014-04-16

Similar Documents

Publication Publication Date Title
KR101404312B1 (ko) 시스템 온 칩 기반의 패킷 필터링을 제공할 수 있는 디바이스 및 패킷 필터링 방법
US11843666B2 (en) Sub-networks based security method, apparatus and product
US20230388349A1 (en) Policy enforcement using host information profile
EP2575317B1 (en) Portable security device and methods for maintenance of authentication information
EP1379046B1 (en) A personal firewall with location detection
US8387131B2 (en) Enforcing secure internet connections for a mobile endpoint computing device
US8281363B1 (en) Methods and systems for enforcing network access control in a virtual environment
JP4507104B2 (ja) 情報処理装置、通信制御方法および通信制御用プログラム
JPWO2009087702A1 (ja) 仮想マシン実行プログラム、ユーザ認証プログラムおよび情報処理装置
JP4082613B2 (ja) 通信サービスを制限するための装置
CN105721419B (zh) 用于选择拦截网络传输的装置的系统和方法
JP4437107B2 (ja) コンピュータシステム
KR101592323B1 (ko) 서버 장애 시 원격 서버 복구 시스템 및 방법
Ceron et al. MARS: From traffic containment to network reconfiguration in malware-analysis systems
JP3739772B2 (ja) ネットワークシステム
CN112398785A (zh) 资源共享的控制方法及装置、系统、存储介质、电子装置
JP2009239331A (ja) アクセス管理システム、アクセス管理方法、及びアクセス制御用プログラム
CA2500511A1 (en) Compliance verification and osi layer 2 connection of device using said compliance verification

Legal Events

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

Payment date: 20170309

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee