KR101558054B1 - 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 패킷 처리 방법 - Google Patents

안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 패킷 처리 방법 Download PDF

Info

Publication number
KR101558054B1
KR101558054B1 KR1020130139280A KR20130139280A KR101558054B1 KR 101558054 B1 KR101558054 B1 KR 101558054B1 KR 1020130139280 A KR1020130139280 A KR 1020130139280A KR 20130139280 A KR20130139280 A KR 20130139280A KR 101558054 B1 KR101558054 B1 KR 101558054B1
Authority
KR
South Korea
Prior art keywords
packet
engine
matching
rule
hardware
Prior art date
Application number
KR1020130139280A
Other languages
English (en)
Other versions
KR20140064649A (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 KR20140064649A publication Critical patent/KR20140064649A/ko
Application granted granted Critical
Publication of KR101558054B1 publication Critical patent/KR101558054B1/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus 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
    • H04L63/0227Filtering policies
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

패킷과 복수의 방화벽(FW) 룰의 매칭을 수행하고 매칭 결과를 생성하는 패킷 매칭 엔진을 포함하는 하드웨어 기반 FW 엔진; 및 상기 매칭 결과에 기반하여, 상기 패킷을 필터링하기 위한 액션을 결정하는 FW 기능 모듈을 포함하는, 안티 멀웨어 장치가 제공된다.

Description

안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 패킷 처리 방법{ANTI-MALWARE SYSTEM AND PACKET PROCESSING METHOD IN SAME}
개시되는 실시예들은 보안 솔루션(security solution)을 제공하는 데 사용되는 시스템에 관한 것으로서, 특히 하드웨어를 기반으로 한 방화벽(firewall: FW) 엔진을 포함하는 시스템 및 그러한 시스템에서의 패킷 처리 방법에 관한 것이다.
인터넷의 확산과 함께, 컴퓨터 시스템에서 사용자의 의사에 반하여 악의적 활동이 수행될 수 있도록 설계된 멀웨어(malware) 내지 악성코드, 예를 들어 컴퓨터 바이러스(computer virus), 웜(worm), 트로이목마(trojan horse), 스파이웨어(spyware) 프로그램, 루트킷(rootkit), DDoS(Distributed Denial of Service) 공격 등의 수가 급격히 증가하고 있으며, 그에 따라 컴퓨터 시스템의 효과적인 보안과 관련된 안티 멀웨어(Anti-Malware: AM) 솔루션의 필요성도 점점 더 커지고 있다.
더욱이, 스마트폰과 태블릿 등의 모바일 장치가 널리 사용되면서 기존에 개인용 컴퓨터(PC)를 공격하던 멀웨어가 모바일 장치에도 심각한 폐해를 끼칠 우려가 높다. 따라서, 모바일 장치에서도 효율적인 AM 솔루션이 요구된다.
AM 솔루션은 개인 방화벽을 위한 FW 솔루션을 포함할 수 있다. 그런데, 개인 방화벽에서 패킷에 대한 FW 룰(rule)의 개수가 많아지는 경우 패킷 처리에 소요되는 시간이 증가한다. 네트워크 상에서 전송되는 패킷에 대하여 FW 솔루션의 응답 시간이 긴 것은 치명적인 약점이다. 또한, 중앙처리장치 및 배터리와 같은 자원(resource)에 비교적 많은 제한이 있는 모바일 장치의 경우, 패킷 처리에 소요되는 시간이 길수록 배터리의 소모도 그만큼 빠르다.
본 발명의 실시예들에 따르면, FW 기능을 제공하기 위한 소정의 동작들이 하드웨어 기반의 FW 엔진에서 빠른 속도로 수행될 수 있고, 다양한 보안 솔루션이 제공되도록 다른 FW 동작들은 FW 엔진을 포함하는 플랫폼의 소프트웨어 레벨에서 구현될 수 있다.
본 발명의 실시예들에 따르면, 리소스가 제한된 컴퓨팅 장치에서 더욱 향상된 FW 성능이 제공될 수 있다.
일 실시예에 따르면, 패킷과 복수의 방화벽(firewall: FW) 룰의 매칭을 수행하고 매칭 결과를 생성하는 패킷 매칭 엔진을 포함하는 하드웨어 기반 FW 엔진; 및 상기 매칭 결과에 기반하여, 상기 패킷을 필터링하기 위한 액션을 결정하는 FW 기능 모듈을 포함하는, 안티 멀웨어(Anti-Malware) 장치가 제공된다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 패킷 매칭 엔진은, 상기 복수의 FW 룰로부터 도출되는 복수의 룰 키, 상기 패킷으로부터 변환되는 패킷 키 및 상기 패킷 키를 상기 복수의 룰 키와 비교하는 하나 이상의 패킷 매칭기를 포함한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 패킷 매칭기 각각은 병렬로 동작하는 복수의 서브 패킷 매칭기를 포함하고, 상기 서브 패킷 매칭기 각각은 또한 상기 복수의 룰 키의 부분집합을 상기 패킷 키와 비교한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 하드웨어 기반 FW 엔진은 패킷 스트림 캡쳐 유닛을 더 포함하고, 상기 패킷 스트림 캡쳐 유닛은 상기 패킷으로부터 상기 복수의 FW 룰과 연관된 데이터를 추출하고 상기 추출된 데이터를 상기 패킷 매칭 엔진에 제공한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 패킷 스트림 캡쳐 유닛은 또한 상기 데이터를 링크 계층 프로토콜, 네트워크 계층 프로토콜 및 전송 계층 프로토콜 중 적어도 하나에 특정한 데이터를 포함하도록 추출한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 복수의 FW 룰은 또한 URL(Uniform Resource Locator) 필터링 룰을 포함하고, 상기 하드웨어 기반 FW 엔진은 또한 URL 필터를 포함하되, 상기 패킷 스트림 캡쳐 유닛은 또한 상기 패킷으로부터 URL 부분을 추출하고 상기 추출된 URL 부분을 상기 URL 필터에 제공하며, 상기 URL 필터는 상기 URL 부분과 상기 URL 필터링 룰의 매칭을 수행한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 복수의 FW 룰은 또한 컨텐츠 필터링 룰은 포함하고, 상기 하드웨어 기반 FW 엔진은 또한 컨텐츠 필터를 포함하되, 상기 패킷 스트림 캡쳐 유닛은 또한 상기 패킷으로부터 키워드 및 패턴 중 적어도 하나를 추출하고 상기 키워드 및 상기 패턴 중 추출된 상기 적어도 하나를 상기 컨텐츠 필터에 제공하며, 상기 컨텐츠 필터는 상기 키워드 및 상기 패턴 중 상기 적어도 하나와 컨텐츠 필터링 룰의 매칭을 수행한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 FW 기능 모듈은 펌웨어(firmware)로서 구현된다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 FW 기능 모듈은 상기 하드웨어 기반 FW 엔진과 협력하여 외부 CPU에 의해 실행되는 애플리케이션으로서 구현된다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 하드웨어 기반 FW 엔진은 CPU 및 메모리를 포함하고, 상기 FW 기능 모듈이 구현된 상기 펌웨어는 상기 메모리에 저장된다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 하드웨어 기반 FW 엔진은 프로세서와 통합(integrated)되고, 상기 프로세서는, 상기 프로세서를 일반 모드 및 보안 모드에 각각 대응하는 상이한 프로세서들로 가상화하는 보안 실행 환경 모듈을 포함한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 보안 모드에 대응하는 가상화된 프로세서는 상기 안티 멀웨어 장치에 의해 수신되는 애플리케이션을 실행하도록 구성된다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 프로세서와 연결된 저장장치를 더 포함하되, 상기 보안 실행 환경 모듈은 또한 상기 저장장치를 상기 일반모드 및 상기 보안 모드에 각각 대응하는 상이한 저장장치들로 가상화한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 보안 모드에 대응하는 가상화된 저장장치는 상기 복수의 FW 룰을 저장한다.
다른 실시예에 따르면, 하드웨어 기반 FW 엔진의 패킷 매칭 엔진을 이용하여 패킷과 복수의 FW 룰의 매칭을 수행하는 단계; 매칭 결과를 생성하는 단계; 및 FW 기능 모듈에서, 상기 매칭 결과에 기반하여, 상기 패킷을 필터링하기 위한 액션을 결정하는 단계를 포함하는, 안티 멀웨어 장치에서의 패킷 처리 방법이 제공된다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 매칭하는 단계는, 상기 복수의 FW 룰로부터 복수의 룰 키를 도출하는 단계; 상기 패킷을 패킷 키로 변환시키는 단계; 및 상기 패킷 매칭 엔진의 하나 이상의 패킷 매칭기에서, 상기 패킷 키 및 상기 복수의 룰 키를 비교하는 단계를 포함한다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 패킷 처리 방법은, 상기 하나 이상의 패킷 매칭기 각각에서, 복수의 서브 패킷 매칭기 병렬로 동작시키는 단계; 및 상기 하나 이상의 서브 패킷 매칭기 각각에서, 상기 비교하는 단계를 상기 복수의 룰 키의 부분집합과 상기 패킷 키를 비교함으로써 수행하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 패킷 처리 방법은, 상기 하드웨어 기반 FW 엔진의 패킷 스트림 캡쳐 유닛에서, 상기 패킷으로부터 상기 FW 룰과 연관된 데이터를 추출하고 상기 추출된 데이터를 상기 패킷 매칭 엔진에 제공하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 데이터는 링크 계층 프로토콜, 네트워크 계층 프로토콜 및 전송 계층 프로토콜 중 적어도 하나에 특정한 데이터를 포함하도록 상기 데이터를 추출하는 것이 수행된다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 패킷 처리 방법은, 상기 패킷 스트림 캡쳐 유닛에서, 상기 패킷으로부터 URL 부분을 추출하는 단계; 상기 추출된 URL 부분을 상기 하드웨어 기반 FW 엔진의 URL 필터에 제공하는 단계; 및 상기 URL 필터에서, 상기 URL 부분을 상기 복수의 FW 룰 중 URL 필터링 룰과 매칭하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 패킷 처리 방법은, 상기 패킷 스트림 캡쳐 유닛에서, 상기 패킷으로부터 키워드 및 패턴 중 적어도 하나를 추출하는 단계; 상기 키워드 및 상기 패턴 중 상기 적어도 하나를 상기 하드웨어 기반 FW 엔진의 컨텐츠 필터에 제공하는 단계; 및 상기 컨텐츠 필터에서, 상기 키워드 및 상기 패턴 중 상기 적어도 하나를 상기 복수의 FW 룰 중 컨텐츠 필터링 룰과 매칭하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 패킷 처리 방법은, 펌웨어로서 구현된 상기 FW 기능 모듈을 제공하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 패킷 처리 방법은, 상기 하드웨어 기반 FW 엔진과 협력하여 외부 CPU에 의해 실행되는 애플리케이션으로서 구현된 상기 FW 기능 모듈을 제공하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 하드웨어 기반 FW 엔진은 CPU 및 메모리를 포함하고, 상기 FW 기능 모듈을 제공하는 단계는 상기 펌웨어를 상기 메모리에 저장하는 단계를 포함한다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 패킷 처리 방법은, 보안 실행 환경 모듈을 이용하여, 상기 하드웨어 기반 FW 엔진과 통합된 프로세서를 일반 모드 및 보안 모드에 각각 대응하는 상이한 프로세서들로 가상화하는 단계를 더 포함하되, 상기 보안 실행 환경 모듈은 상기 프로세서에 포함된다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 패킷 처리 방법은, 상기 안티 멀웨어 장치를 이용하는 애플리케이션을 상기 보안 모드에 대응하는 가상화된 프로세서 상에서 실행하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 패킷 처리 방법은, 상기 보안 실행 환경 모듈에서, 상기 프로세서와 연결된 저장장치를 상기 일반모드 및 상기 보안 모드에 각각 대응하는 상이한 저장장치들로 가상화하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 패킷 처리 방법의 일 측면에 따르면, 상기 복수의 FW 룰은 상기 보안 모드에 대응하는 가상화된 저장장치에 저장된다.
또 다른 실시예에 따르면, 컴퓨팅 장치로서, CPU 코어; 및 FW 소프트웨어 애플리케이션이 실행될 수 있는 보안 플랫폼을 제공하는 안티 멀웨어 장치를 포함하되, 상기 안티 멀웨어 장치는, 패킷과 복수의 FW 룰의 매칭을 수행하고 매칭 결과를 생성하는 패킷 매칭 엔진을 포함하는 하드웨어 기반 FW 엔진; 및 상기 매칭 결과에 기반하여, 상기 패킷을 필터링하기 위한 액션을 결정하는 FW 기능 모듈을 포함하는, 컴퓨팅 장치가 제공된다.
본 발명의 여러 실시예들에 따른 구체적인 사항들은 이하의 상세한 설명 및 첨부된 도면들에 개시되어 있다.
소정의 실시예들에 따르면, FW 기능을 제공하기 위한 소정의 동작들이 하드웨어 기반의 FW 엔진에서 빠른 속도로 수행되고, 다양한 보안 솔루션이 제공되도록 다른 FW 동작들은 FW 엔진을 포함하는 플랫폼의 소프트웨어 레벨에서 구현된다.
소정의 실시예들에 따르면, 리소스가 제한된 컴퓨팅 장치에서 더욱 향상된 FW 성능이 제공된다.
도 1은 본 발명의 실시예에 따라 하드웨어를 기반으로 AM 기능을 수행하는 AM 시스템을 예시하는 도면이다.
도 2는 본 발명의 실시예에 따른 AM 모듈의 구성을 도시한다.
도 3은 본 발명의 실시예에 따라 프로세서와 AM 모듈을 집적하는 비격리 방식을 도시한다.
도 4는 본 발명의 실시예에 따라 프로세서와 AM 모듈을 집적하는 격리 방식을 도시한다.
도 5는 본 발명의 실시예에 따른 AM 시스템에 의해 제공되는 보안 플랫폼을 도시한다.
도 6은 본 발명의 실시예에 따른 보안 플랫폼에서 FW 기능을 제공하는 예시적인 모듈들의 동작을 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 하드웨어 기반 FW 엔진의 구성을 도시한다.
도 8은 본 발명의 실시예에 따른 패킷 매칭 엔진에서 사용되는 패킷 키와 룰 키의 예시적인 데이터구조를 나타낸다.
도 9는 본 발명의 실시예에 따른 패킷 매칭 엔진의 구성을 도시한다.
도 10은 본 발명의 실시예에 따른 서브 패킷 매칭기의 구성을 도시한다.
도 11은 본 발명의 실시예에 따른 패킷 스트림 캡쳐 유닛이 이더넷 프레임을 변환하는 과정을 설명하기 위한 도면이다.
도 12는 본 발명의 실시예에 따른 URL 필터의 구성을 도시한다.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
도 1은 본 발명의 실시예에 따라 하드웨어를 기반으로 AM 기능을 수행하는 AM 시스템을 예시하는 도면이다.
AM 시스템(100)은 애플리케이션 프로세서와 같은 프로세서(110), ROM(read only memory) 및/또는 RAM(random access memory)와 같은 저장 매체(120), 그리고 저장 매체(120)를 포함하여 다양한 하드웨어 컴포넌트들을 프로세서(110)에 연결하는 버스(130)를 포함한다. 프로세서(110)는 하나 이상의 CPU 코어(140)를 포함할 수 있다. 저장 매체(120)는 상이한 성능 특성을 갖는 다수의 상이한 타입의 저장 매체를 포함할 수 있다. 버스(130)는 다양한 버스 아키텍처들 중 임의의 것을 이용하는 메모리 버스나 메모리 컨트롤러, 주변 버스 및 로컬 버스를 포함할 수 있다.
AM 시스템(100)의 저장 매체(120)는 프로세서(110)와 같은 프로세싱 유닛에 의해 실행 가능한 명령어를 저장하도록 구성된다. 예컨대, 저장 매체(120)에 저장된 명령어는 다양한 컴포넌트들의 구동을 위한 오퍼레이팅 시스템(Operating System)의 명령어 및 이러한 오퍼레이팅 시스템에서 구동되는 AM 소프트웨어의 명령어를 포함할 수 있다. 후술하는 바와 같이, AM 소프트웨어는 AM 시스템(100)의 사용자에게 AM 기능을 제공하도록 구성될 수 있다. 소정의 실시예에서, 하드웨어 컴포넌트들을 위한 드라이버, 라이브러리, 펌웨어 및 다양한 타입의 애플리케이션 소프트웨어가 저장 매체(120)에 저장될 수 있다. 다른 실시예에 따르면, 그러한 드라이버, 라이브러리, 펌웨어 및/또는 애플리케이션 소프트웨어는 별도의 저장 매체에 저장될 수 있다.
AM 시스템(100)은 또한 멀웨어 탐지를 위한 AM 모듈(150)을 포함한다. 도 1에 도시된 바와 같이, AM 모듈(150)은 프로세서(110)에 포함될 수 있다. AM 모듈(150)은 버스(130)를 통해 CPU 코어(140) 및 저장 매체(120)와 연결된다. AM 모듈(150)은 하나 이상의 하드웨어 기반의 엔진, 예컨대 AV 엔진(160) 및/또는 FW 엔진(170)을 포함한다. AV 엔진(160)은 소정의 데이터의 안티 바이러스(Anti-Virus: AV) 스캐닝을 위해 그 데이터에 대하여 해쉬 매칭(hash matching)을 수행할 수 있다. FW 엔진(170)은 패킷을 필터링하는 방화벽 기능을 수행할 수 있다. 소정의 실시예에서, AM 모듈(150)은 시스템-온-칩(System-on-Chip: SoC) 형태로 구성될 수 있다. 이러한 시스템-온-칩은 멀웨어 탐지를 위한 하드웨어 로직과 펌웨어가 하나의 칩 형태로 구성된다. 다른 실시예에서, AM 모듈(150)은 하드웨어 로직(예컨대, AV 엔진(160) 및/또는 FW 엔진(170))만으로 구성될 수 있고, 멀웨어 탐지를 위해 외부 CPU에 의해 실행되는 소정의 소프트웨어(예컨대, 애플리케이션)과 협력할 수 있다.
예시적인 AM 시스템(100)은 스캔될 데이터 및/또는 파일이 저장된 컴퓨팅 장치에 포함될 수 있다. 이러한 컴퓨팅 장치는 스마트폰 또는 태블릿 등의 모바일 장치, 임베디드 장치 또는 데스크톱 컴퓨터 등일 수 있다.
예시적인 AM 모듈(150)은 다양한 방식으로 구성될 수 있다. 예컨대, 도 2에 도시된 바와 같이, AM 모듈(150)은 AV 엔진(160)과 FW 엔진(170)을 포함한다. 또한, AM 모듈(150)은 AV 리셋부(210)과 FW 리셋부(220)를 더 포함할 수 있다.
도 2에서, AV 엔진(160)과 FW 엔진(170)은 서로 독립적으로 동작할 수 있다. AV 엔진(160)은 제1 인터페이스(230)를 통해 AM 모듈(150) 외부의 마스터 장치(예컨대, AM 시스템(100)의 저장 매체(120))로부터 워드(word) 단위(예컨대, 4 바이트)로 데이터(예컨대, 데이터베이스 또는 파일의 전부 또는 일부)를 판독한다. 외부의 마스터 장치는 제2 인터페이스(240)를 통해 AV 엔진(160)을 제어하고 그 상태를 체크할 수 있고, 제3 인터페이스(250)를 통해 FW 엔진(170)을 제어하고 그 상태를 체크할 수 있다. AV 엔진(160)과 FW 엔진(170)은 각각 AV 인터럽트 신호(260) 및 FW 인터럽트 신호(270)를 출력한다
AV 엔진(160)과 FW 엔진(170)은 클럭 신호(HCLK)(280)를 수신한다. 도 1은 클럭 신호(280) 가 AV 엔진(160) 및 FW 엔진(170)에 공통적인 것으로 도시되었으나, 이는 어디까지나 예시적이다.
AV 리셋부(210)는 AM 모듈(150)의 외부로부터의 시스템 리셋 입력 신호(HRESETn)(290) 및 AV 엔진(160)으로부터의 소프트웨어 리셋 요청 신호(214)를 수신하여 AV 엔진(160)에 AV 리셋 신호(212)를 제공할 수 있다. FW 리셋부(220)는 외부로부터 인가되는 시스템 리셋 입력 신호(290) 및 FW 엔진(170)으로부터의 소프트웨어 리셋 요청 신호(224)를 수신하여 FW 엔진(170)에 FW 리셋 신호(222)를 제공할 수 있다. 도 1은 시스템 리셋 입력 신호(290)가 AV 리셋부(210) 및 FW 리셋부(220)에 공통적인 것으로 도시되었으나, 이는 어디까지나 예시적이다.
소정의 실시예들은 AM 모듈(150)와 프로세서(110)의 통합(integration)을 수반한다. AM 모듈(150)이 프로세서(110)에 통합되는 방식은 다양할 수 있다. 예를 들어, 도 3 및 도 4에 도시된 바와 같이, 프로세서(110)는 AM 모듈(150)이 그 내부에 통합되어 구성될 수 있다.
일 예로서, 도 3에 예시된 AM 모듈(150)은 버스(130)를 통해 프로세서(110) 내의 CPU 코어(140) 및 소정의 메모리(예컨대, 저장 매체(120))의 영역 중 지정된 영역을 사용할 수 있도록 프로세서(110)와 통합된다. 이러한 방식을 비격리(non-isolated) 방식이라 지칭한다. 비격리 방식에 따르면, AM 모듈(150)의 AV 엔진(160)과 FW 엔진(170)은 버스(130)를 통해 프로세서(110)의 CPU 코어(140)에 연결되고, 외부의 메모리(예컨대, 저장 매체(120))와도 버스(130)를 통해 연결된다. 도 3의 AM 모듈(150)은 추가적인 엔진(예컨대, 암호화(Crypto) 엔진(310))을 구비할 수 있는데, 이 암호화 엔진(310) 역시 버스(130)를 통해 CPU 코어(140) 및 저장 매체(120)와 연결된다. 비격리 방식에서, AM 모듈(150)은 프로세서(110)의 CPU 코어(140)를 사용하여 상대적으로 신속한 데이터 검출을 가능하게 할 수 있다.
다른 예로서, 도 4에 예시된 AM 모듈(150)은 격리(isolated) 방식으로 프로세서(110)와 통합된다. 도 4의 AM 모듈(150)은 자체적으로 CPU(440) 및 메모리(450)를 포함한다. 격리 방식에 따르면, AM 모듈(150)은 CPU(440) 및 메모리(450)를 사용함으로써 프로세서(110)의 CPU 코어(140)의 사용을 감소시킬 수 있다. 도 4에 도시된 방식에 따르면, AM 모듈(150)의 AV 엔진(160)과 FW 엔진(170)은 AM 모듈(150) 내부의 버스(460)을 통해 CPU(440), 메모리(450) 및 인터페이스(430)에 연결된다. 인터페이스(430)는 버스(130)를 통해 AM 모듈(150)을 CPU 코어(140) 및 저장 매체(120)에 연결한다. 또한, AM 모듈(150)에 포함된 추가적인 엔진(예컨대, 암호화 엔진(410))은 마찬가지로 버스(460)를 통해 AM 모듈(150) 내부의 인터페이스(430), CPU(440) 및 메모리(450)와 연결될 수 있다. 대안적으로, AM 모듈(150) 외부에 위치하는 다른 엔진(예컨대, 암호화 엔진(420))은 프로세서(110)의 CPU 코어(140)을 사용하도록 버스(130)에 직접 연결될 수 있다.
한편, 도 4의 점선(480)은 AM 모듈(150)이 프로세서(110) 외부의 모뎀(470)과 통합될 수 있음을 나타낸다. 이와 같은 모뎀 통합 방식에 따르면, AM 모듈(150)은 오퍼레이팅 시스템(미도시)의 네트워크 스택(network stack) 및 모뎀(470) 사이에 존재하며, AM 모듈(150)을 포함하는 AM 시스템(100)의 보안을 위해 유해 패킷을 검출하는 데 이용될 수 있다. 또한, 이 모뎀 통합 방식에 따르면, 프로세서(110)의 CPU 코어(140)의 사용이 적다. 이러한 경우, AM 모듈(150)은 모뎀(470)을 거쳐서 네트워크 패킷을 직접 수신하여 전송 계층(transport layer)에서 패킷을 처리할 수 있다.
대안적으로, 도 4의 점선(490)은 AM 모듈(150)이 프로세서(110)와 통합되되 버스(130)를 통해 모뎀(470)이 프로세서(110)와 연결되는 것을 나타낸다. 이러한 경우, AM 모듈(150)은 AM 시스템(100)에서 일종의 코프로세서(co-processor)(예컨대, CPU(440))의 역할을 하는바, 프로세서(110)의 CPU 코어(140)에서 사용되는 패킷을 검출할 수 있고, 이로써 애플리케이션 계층(application layer)부터 전송 계층까지를 포함하는 계층들 상에서의 네트워크 패킷 처리를 가능하게 한다.
도 5는 본 발명의 실시예에 따른 AM 시스템에 의해 제공되는 보안 플랫폼을 도시한다.
예시적인 보안 플랫폼(500)은 하드웨어 레벨과 소프트웨어 레벨을 포함한다. 각 레벨의 하위 모듈들은 플랫폼(500)의 설계에 따라 변경 또는 확장될 수 있다. 이러한 모듈들은 플랫폼(500)에서 수행될 소정의 기능들을 구현한다. 환언하면, 플랫폼(500)에서 소정의 기능 모듈들이 동작한다. 이러한 기능 모듈들은 플랫폼(500)의 하드웨어 레벨 또는 소프트웨어 레벨에서 구현된다. 예컨대, 플랫폼(500)에서 FW 기능이 수행될 수 있고, 이를 위해 플랫폼(500)은 소정의 FW 기능 모듈을 동작시킨다. FW 기능 모듈을 이용하여 플랫폼(500)의 소프트웨어 레벨에서 애플리케이션(예컨대, FW 애플리케이션(540))이 실행될 수 있다.
플랫폼(500)의 하드웨어 레벨에는 하드웨어 기반 FW 엔진(170)이 포함된다. 하드웨어 기반 FW 엔진(170)의 예시적인 구성에 대하여는 후술한다. 플랫폼(500)의 하드웨어 레벨에는 AV 엔진(160)이 더 포함될 수 있고, 추가적으로 암호화 기능을 수행하는 Crypto 엔진(310, 410, 420)이 포함될 수도 있다. 이하에서는 플랫폼(500)의 기능들 중 특히 FW 기능의 측면에서 플랫폼(500)의 구성을 기술한다.
플랫폼(500)의 하드웨어 레벨에는 FW 펌웨어(510)가 더 포함될 수 있다. FW 펌웨어(510)는 FW 기능을 위한 소정의 동작들을 수행하는 기능 모듈을 플랫폼(500)의 하드웨어 레벨에서 구현한다. FW 펌웨어(510)의 명령어들은 소정의 메모리 상에 저장될 수 있고, 소정의 프로세싱 유닛에 의해 실행될 수 있다. 예컨대, FW 엔진(170)을 포함하는 AM 모듈(150)이 프로세서(110)와 격리 방식으로 통합된 경우, AM 모듈(150)의 메모리(450) 상에 FW 펌웨어(510)의 명령어들이 저장될 수 있고 프로세서(110)의 CPU(440)에 의해 실행될 수 있다. 다른 예로서, FW 엔진(170)을 포함하는 AM 모듈(150)이 프로세서(110)와 비격리 방식으로 통합된 경우, 저장 매체(120) 상에 FW 펌웨어(510)의 명령어들이 저장될 수 있고 프로세서(110)의 CPU 코어(140)에 의해 실행될 수 있다. 다만, 전술한 예들은 예시적이며 이에 대한 변화가 이루어질 수 있음이 이해될 것이다.
플랫폼(500)의 소프트웨어 레벨은 드라이버(520), 라이브러리(530) 및 애플리케이션(540)을 포함한다. 드라이버(520)의 명령어들, 라이브러리(530)의 명령어들 및 FW 애플리케이션(540)의 명령어들은 소정의 메모리(예컨대, 저장 매체(120)) 상에 저장될 수 있고 소정의 프로세싱 유닛(예컨대, 프로세서(110))에 의해 실행될 수 있다. FW 기능을 위한 소정의 동작들을 수행하는 기능 모듈이 드라이버(520) 및/또는 라이브러리(530)에 의해 소프트웨어로 구현된다. 또한, 드라이버(520)는 플랫폼(500)의 하드웨어 레벨과의 인터페이스를 제공한다. FW 애플리케이션(540)은 플랫폼(500)을 기반으로 FW 솔루션을 제공하기 위한 소프트웨어이다. 예컨대, FW 애플리케이션(540)은 라이브러리(530)에서 제공되는 API를 통해 플랫폼(500)을 사용 및/또는 제어할 수 있고, 콜백(callback)을 통해 플랫폼(500)으로부터의 출력을 수신할 수 있다.
플랫폼(500)에서, 펌웨어(510), 드라이버(520) 및/또는 라이브러리(530)는 신규 악성코드에 대한 대응과 보안성 강화를 위해 종종 업데이트가 필요한 동작들을 구현할 수 있다. AM 모듈(150)과 프로세서(100)의 관계의 긴밀도(예컨대, AM 모듈(150)을 프로세서(100)와 어떻게 통합되는지)에 따라, 플랫폼(500)에서 수행될 동작을 하드웨어 레벨에서 펌웨어로 구현될 수도 있고 소프트웨어 레벨에서 드라이버나 라이브러리로 구현될 수도 있다.
소정의 실시예에 따르면, 플랫폼(500) 상에서 하드웨어 기반의 FW 엔진(170)은 필터링 액션(filtering action)(예컨대, 패킷의 허용(allow), 드롭(drop) 또는 로깅(logging))이 수행될 패킷을 소정의 룰(rule)과 매칭하는 패킷 매칭(packet matching) 동작들을 수행한다. 또한, 하드웨어 기반 FW 엔진(170)은 URL 필터링(URL filtering) 동작들, 컨텐츠 필터링(content filtering) 동작들 및 패킷 스트림 캡쳐(packet stream capture) 동작들을 수행할 수 있다. URL 필터링 동작들은 URL 필터링 룰과 HTTP 패킷 또는 PPTP 패킷의 URL을 매칭하는 동작들을 포함한다. 컨텐츠 필터링 동작들은 특정 키워드 또는 패턴 등에 관한 컨텐츠 필터링 룰을 문서, 이미지 파일과 같은 컨텐츠를 포함하는 패킷에 적용하며, URL 필터링 동작들과 유사한 방식으로 수행될 수 있다. 패킷 스트림 캡쳐 동작들은 네트워크 매체로부터 들어오거나 네트워크 매체로 나가는 패킷을 FW 엔진(170)의 동작들에 적합한 포맷으로 변환하는 동작들을 포함한다.
AM 모듈(150)이 프로세서(110)와 격리 방식으로 통합된 경우, 위 동작들과 관련된 몇몇 프로세싱 동작들은 하드웨어 레벨에서 FW 펌웨어(510)에 의해 구현될 수 있다. 예컨대, 패킷을 분석하기 위한 소정의 동작들이 FW 펌웨어(510)에 의해 구현될 수 있고, 다른 프로세싱 동작들은 라이브러리(530) 및/또는 드라이버(520)에 의해 구현될 수 있다. FW 펌웨어(510)로 구현되는 FW 기능 모듈의 동작은, 패킷 매칭 동작들이 개시되도록 하고 패킷 매칭 동작들의 결과에 기반하여 패킷을 필터링하기 위한 액션을 결정하는 패킷 필터링(packet filtering) 동작들 및/또는 TCP 패킷의 분석에 따라 TCP 연결 상태를 트래킹하는 TCP 검증(TCP verification) 동작들을 포함한다.
대안적으로, 패킷 필터링 및/또는 TCP 검증 동작들을 포함하는 소정의 프로세싱 동작들이 드라이버(520) 및/또는 라이브러리(530)에 의해 소프트웨어로서 구현될 수 있다. 예컨대, AM 모듈(150)이 프로세서(110)와 비격리 방식으로 통합된 경우, 플랫폼(500)은 이와 같이 구성될 수 있다.
플랫폼(500)을 사용하는 보안 솔루션은 벤더마다 다양한 애플리케이션(예컨대, FW 애플리케이션(540))을 개발하는 과정에서 하드웨어 기반의 AM 모듈(150)의 이점을 최대한 활용하도록 할 수 있다. 따라서, 보안 솔루션에 대해, 하드웨어 기반의 성능 향상이 가능하면서도 고유한 보안 기능은 소프트웨어로서 구현될 수 있다.
나아가, 플랫폼(500)은 확장된 보안 구조를 수반할 수 있다. 이러한 플랫폼(500)을 제공하는 AM 시스템(100)을 포함하는 컴퓨팅 장치는 보안 측면에서 안정성이 향상된다.
일 실시예에서, 플랫폼(500)의 하드웨어 레벨에 보안 실행 환경을 제공하기 위한 모듈(550)이 플랫폼(500)의 하드웨어 레벨에 포함된다. 이러한 보안 실행 환경 모듈(550)은 FW 엔진(170)과 통합되는 프로세서(110)에 포함될 수 있다. 보안 실행 환경 모듈(550)은 플랫폼 인증, 무결성 검증을 위한 측정값 생성/저장, 데이터 저장의 보호 등을 지원할 수 있다. 보안 실행 환경 모듈(550)은 보안 실행 환경 드라이버(560) 및/또는 보안 실행 환경 라이브러리(570)를 통해 상위 레벨 기능(예컨대, 드라이버(520) 및/또는 라이브러리(530)에 의해 제공되는 FW 기능)과 인터페이스된다.
보안 실행 환경 모듈(550)은 프로세서(110)(의 CPU 코어(140) 및/또는 CPU(440))의 동작 환경이 일반 모드와 보안 모드를 구비하도록 프로세서(110)를 각 모드에 대응하는 두 프로세서들로 가상화한다. 플랫폼(500)의 소프트웨어 레벨의 애플리케이션들은 일반 모드 또는 보안 모드에 대응하는 가상화된 프로세서 상에서 실행된다. 즉, 플랫폼(500)의 소프트웨어 레벨의 애플리케이션들은 일반적인 애플리케이션 또는 보안과 관련된 애플리케이션으로 논리적으로 구분되는데, 일반 애플리케이션과 보안 관련 애플리케이션은 마치 별개의 두 프로세서 상에서 동작하는 것처럼 두 개의 가상화된 프로세서 상에서 각각 실행될 수 있다. 예컨대, AM 시스템(100)을 이용하는 FW 애플리케이션(540)은 보안 모드에 대응하는 가상화된 프로세서 상에서 실행된다.
보안 실행 환경 모듈(550)은 또한 프로세서(110)뿐만 아니라 프로세서(110)(의 CPU 코어(140) 및/또는 CPU(440))와 연결된 저장장치나 주변장치도 논리적으로 분할하여 각 모드에 대응하는 장치들로 가상화한다.
이러한 논리적 분할은 다음 사항들을 가능하게 한다. 우선, 보안이 중요한 부분, 예컨대 소정의 라이브러리 및/또는 드라이버(예컨대, 라이브러리(530) 및/또는 드라이버(520)), 키, FW 룰, 바이러스 시그니처 데이터베이스 등이 보안 모드에 대응하는 가상화된 저장매체에 저장될 수 있다. 저장된 라이브러리 및/또는 드라이버가 설치되거나 업데이트될 때, 전자서명과 같은 메커니즘을 통해 무결성 검증 프로세스를 실행함으로써 그 라이브러리 및/또는 드라이버의 내용이 변조 또는 훼손되거나 업데이트가 제대로 되지 않는 것을 방지할 수 있다. 마찬가지로, 바이러스 시그니처 데이터베이스 및 FW 룰이 업데이트될 때, 그 내용의 변조 및 부적절한 업데이트를 방지할 수 있다. 신뢰할 만한 업데이트 서버를 가장한 소스로 인한 라이브러리, 드라이브, FW 룰 및 바이러스 시그니처 데이터베이스의 부적절한 업데이트도 방지할 수 있다. 또한, 일반 모드에서 동작하는 애플리케이션을 인증하기 위한 프로세스를 보안 모드에서 실행시킴으로써 그 애플리케이션의 변조를 방지할 수 있다.
도 6은 본 발명의 실시예에 따른 보안 플랫폼에서 FW 기능을 제공하는 예시적인 모듈들의 동작을 설명하기 위한 도면이다.
컴퓨팅 장치(600)는 앞서 설명한 플랫폼(500)을 제공하는 AM 시스템(100)을 포함한다. 컴퓨팅 장치(600)는 네트워크 인터페이스 카드(Network Interface Card: NIC)(610)를 포함한다. NIC(610)를 통해 네트워크 매체로부터 패킷이 들어오거나 네트워크 매체로 패킷이 나간다. NIC(610)는 컴퓨팅 장치(600) 상에 구현된 플랫폼(500)의 하드웨어 레벨에 속한다. 컴퓨팅 장치(600)의 오퍼레이팅 시스템이 실행하는 서비스 모듈들을 포함하는 커널 스페이스(kernel space) 및 컴퓨팅 장치(600)에서 사용자에 의해 호출/실행되는 프로세스들을 포함하는 사용자 스페이스(user space)는 플랫폼(500)의 소프트웨어 레벨에 대응한다. 커널 스페이스에는 드라이버(520) 외에 커널 네트워크 프로토콜 스택(620)이 포함될 수 있다. 커널 네트워크 프로토콜 스택(620)은 오퍼레이팅 시스템의 네트워크 스택으로서, 필터링될 패킷을 플랫폼의 소프트웨어 레벨의 모듈(예컨대, 후술할 필터링 관리자)에 전달하여 그 패킷이 허용/드롭되도록 한다. 사용자 스페이스에는 라이브러리(530) 및 FW 애플리케이션(540) 외에 컴퓨팅 장치(600)의 사용자가 실행하는 애플리케이션(630)이 포함될 수 있다. 애플리케이션(630)의 예로서 패킷 데이터를 사용하는 웹 브라우저 또는 인스턴트 메신저 등을 들 수 있다.
네트워크 매체로부터 NIC(610)를 통해 유입된 패킷은 커널 네트워크 프로토콜 스택(620)를 거쳐 애플리케이션(630)에 전달되고, 애플리케이션(630)에서 생성된 패킷은 커널 네트워크 프로토콜 스택(620) 및 NIC(610)를 거쳐 네트워크 매체로 나갈 수 있다.
FW 애플리케이션(540)은 이러한 패킷과 관련된 고유의 FW 솔루션을 제공한다. FW 애플리케이션(540)은 FW 엔진(170) 및 FW 엔진(170)에 기반한 다른 FW 기능 모듈들(예컨대, FW 펌웨어(510), 드라이버(520) 및/또는 라이브러리(530))을 사용 및/또는 제어한다. 라이브러리(530)는 FW 애플리케이션(540)과 드라이버(520) 간의 인터페이스이며, 드라이버(520)는 드라이버(520)의 AM 관리자(640)를 통해 라이브러리(530)와 통신한다.
드라이버(520)는 AM 관리자(640) 외에 FW 관리자(650), 필터링 관리자(660), TCP 검증 관리자(670) 및 하드웨어 추상화 모듈(680)을 포함한다.
FW 관리자(650)는 FW 기능 모듈들을 제어하고 그 상태를 조회한다. 또한, FW 관리자(650)는 네트워크 패킷 후킹 함수를 커널 네트워크 프로토콜 스택(620) 안의 소정의 모듈(예컨대, Netfilter 모듈)에 등록하고 그 모듈로부터 해제할 수 있다.
나아가, FW 관리자(650)는 FW 룰들의 삽입 및 삭제를 수행한다. FW 룰은 패킷 매칭기 룰(packet matcher rule), URL 필터링 룰(URL filtering rule) 및/또는 컨텐츠 필터링 룰(content filtering rule)을 포함한다. FW 룰의 데이터베이스는 그러한 룰 종류 별로 관리될 수 있다.
패킷 매칭기 룰은 가공된 키(key) 형태로 FW 엔진(170) 내에 저장될 수 있다. 예컨대, 패킷 매칭기 룰은 IPv4만 지원할 경우에는 512개, IPv4/IPv6 모두 지원할 경우에는 256개까지 설정할 수 있다. 하나의 URL 필터링 룰은 2개의 필터링 룰로 분류될 수 있다. 예컨대, 캐릭터 “/”를 기준으로 도메인 네임(domain name) 부분과 경로(path) 부분에 각각 해당하는 2개의 필터링 룰이 도출될 수 있다. 컨텐츠 필터링 룰은 문서나 이미지 파일에 포함된 키워드나 패턴 등과 연관될 수 있다.
FW 룰들은 하드웨어 추상화 모듈(680)에 삽입될 수 있다. FW 룰이 삽입되는 순서는 FW 룰들 간의 우선순위에 따를 수 있다. 예컨대, 패킷 매칭기 룰은 다음과 같은 두 가지 타입을 가질 수 있다. 우선, 조건부 룰 타입(conditional rule type)의 패킷 매칭기 룰은 조건1 룰(condition1 rule) 및 조건2 룰(condition2 rule)을 포함한다. 조건부 룰 타입에 따르면, 조건1 룰의 조건이 만족되는 경우 조건2 룰이 일정 시간 동안 활성화된다. 다음으로, 일반 룰 타입(general rule type)의 패킷 매칭기 룰은 여러 룰 간에 연계성을 가지지 않는다. 룰들 간의 우선순위는 조건2 룰이 가장 높다. 조건1 룰과 일반 룰은 우선순위가 동일하되, 일반 룰과 조건1 룰 중에서 먼저 삽입된 룰이 더 높은 우선순위를 가진다. 이러한 우선순위가 높은 룰부터 하드웨어 추상화 모듈에 삽입된다. 한편, FW 룰의 삽입과 함께, 룰 맵핑 테이블(rule mapping table)이라는 데이터구조가 생성될 수 있는데, 이 데이터구조는 FW 엔진(170)에서 수행된 패킷과 룰 간의 매칭 결과에 따른 액션이 무엇인지 참조하는 데 사용된다.
필터링 관리자(660)는 패킷을 분석하여 해당 패킷에 대한 필터링 액션을 결정하는 모듈이다. 또한, 필터링 관리자(660)는 하드웨어 추상화 모듈(680)에 패킷을 삽입하고 패킷과 FW 룰 간의 매칭을 요청한다. 예컨대, 필터링 관리자(660)는 오퍼레이팅 시스템의 커널로부터 전달되는 패킷의 분석이 수행되도록 하고, 그 분석의 결과에 따라 필터링 액션을 결정한다. 예컨대, 이러한 결정을 통해 IP 블랙 리스트 및/또는 IP 화이트리스트에 따른 패킷 필터링이 수행될 수 있다. 다른 예로서, 필터링 관리자(660)는 TCP 패킷에 대하여 HTTP 요청 메시지 패킷인지 여부를 확인한 후 URL 필터링 동작이 수행되도록 할 수 있다. 컨텐츠 필터링의 수행도 유사한 방식일 수 있다.
TCP 검증 관리자(670)는 TCP 패킷을 분석하여 TCP 연결 상태를 트래킹한다. 이러한 트래킹을 이용하여 해당 패킷에 대한 검증이 수행된다. TCP 검증 관리자(670)는 미리 정의된 유한 상태 머신(finite state machine)에 따라 TCP 연결 상태를 트래킹할 수 있다. 또한, TCP 검증 관리자(670)는 TCP 연결상태에 따라 동적 패킷 필터링(dynamic packet filtering)이 수행되도록 하거나 연결 상태의 정상 유무를 판별하여 비정상 트래픽이 차단되도록 할 수 있다.
하드웨어 추상화 모듈(680)은 FW 엔진(170)을 설정하고 그 상태를 확인한다. 하드웨어 추상화 모듈(680)은 FW 엔진(170)에 매칭을 요청한 후 매칭 결과를 수신한다. FW 엔진(170)에서 패킷과 FW 룰 간의 매칭이 수행되도록 하드웨어 추상화 모듈(680)은 필터링될 패킷 및 그 패킷과 매칭될 FW 룰들을 FW 엔진(170)에 입력한다. 예컨대, 이러한 패킷 및 FW 룰들은 하드웨어 추상화 모듈(680)에서 키로 변환되어 FW 엔진(170)에 삽입될 수도 있고, FW 엔진(170)에서 키로 변환될 수도 있다.
하드웨어 기반의 FW 엔진(170)은 전술한 바와 같이 하드웨어를 기반으로 FW 기능을 제공하는 데 사용되는 동작들을 수행하는 모듈이다. 예컨대, 도 7에 도시된 하드웨어 구성에 따르면, 하드웨어 기반 FW 엔진(170)은 패킷 매칭 동작들을 수행하는 패킷 매칭 엔진(710), URL 필터링 동작들을 수행하는 URL 필터(720) 및 컨텐츠 필터링 동작들을 수행하는 컨텐츠 필터(730)를 포함한다. 또한, FW 엔진(170)은 패킷을 위 동작들에 적합한 포맷으로 변환하기 위한 패킷 스트림 캡쳐 유닛(740)을 더 포함할 수 있다.
패킷 매칭 엔진(710)은 FW 기능을 위한 기본 동작인 패킷 매칭 동작을 수행한다. 필터링될 패킷과 FW 룰 간의 매칭 동작은 패킷으로부터 변환되는 패킷 키(packet key) 및 FW 룰로부터 도출되는 룰 키(rule key)를 비교하는 것을 수반할 수 있다. 예컨대, 패킷 매칭 엔진(710)에 입력되는 패킷 키는 128 비트 또는 256 비트일 수 있다. 패킷 매칭 엔진(710)에 저장되어 128 비트 또는 256 비트의 패킷 키와 비교되는 룰 키들은 각각 512개의 160 비트의 키들 또는 256개의 320 비트의 키들일 수 있다.
도 8은 본 발명의 실시예에 따른 패킷 매칭 엔진에서 사용되는 패킷 키와 룰 키의 예시적인 데이터구조를 나타낸다.
도 8에서, 패킷 키 데이터구조(810)는 앞서 예시된 128 비트의 패킷 키의 구조를 따른다. 패킷 키 데이터구조(810)는 96 비트의 패킷 컨텐츠(Packet Content) 및 2개의 16 비트 비교 영역(즉, Range 0 및 Range 1)을 포함한다. 패킷 컨텐츠에서, 상위 94개의 비트에 패킷 컨텐츠가 저장되고, 더미(dummy) 비트들인 하위 2개의 비트에는 패킷 키와 룰 키의 비교 영역을 비교한 결과가 저장된다. 한편, 룰 키 데이터구조(820)는 다음과 같은 포맷을 가진다. 룰 키 데이터구조(820)는, 앞서 언급한 패킷 키의 사이즈인 128 비트에 대응하는 160 비트 룰 키로서, 96 비트의 룰 컨텐츠(Rule Content) 및 2개의 32 비트 비교 영역(즉, Range 0 및 Range 1)을 포함한다. 추가적으로, 주어진 룰 키에 대하여, 룰 키 데이터구조(820)는 32 비트의 룰 컨텐츠 마스크(Rule Content Mask)를 포함한다. 따라서, 룰 키 데이터구조(820)는 총 196 비트이다. 룰 컨텐츠에서, 상위 94개의 비트에 룰 컨텐츠가 저장되고, 하위 2개의 비트는 비교 영역과 관련된 마스크를 나타낸다.
패킷 키와 룰 키들은 패킷 매칭 엔진(710)에 저장된다. 특히, 패킷 매칭 엔진(710)은 패킷 키와 비교될 복수의 룰 키들을 저장하기 위한 룰 키 메모리(미도시)를 포함할 수 있다. 룰 키 메모리는 하나의 어레이(array)일 수도 있고, 복수의 어레이의 형태로 구현될 수도 있다. 예컨대, 룰 키 메모리는 192 비트 x 256 비트의 2개의 어레이로 구성되어 512개의 160 비트 룰 키 및 각 룰 키의 32 비트 컨텐츠 마스크를 저장할 수 있다.
마스크(mask)는 패킷과 FW 룰 간의 매칭 동작에서, 패킷 키를 룰 키들 전부와 비트 별로 비교하는 대신에, 패킷 키를 일부 룰 키와 비교하고/하거나 일부 비트에 대해서만 비교하기 위해 사용된다. 도 8의 룰 컨텐츠 마스크 외에도, 룰 로우 마스크(Rule Row Mask) 및 룰 컬럼 마스크(Rule Column Mask)가 패킷 매칭 엔진(710)에 포함될 수 있다. 룰 로우 마스크 및 룰 컬럼 마스크는 룰 키 메모리에 저장될 수도 있고, 룰 키 메모리와는 별도로 저장될 수도 있다.
전술한 바와 같이 룰 키 메모리가 192 비트 x 256 비트의 2개의 어레이로 구성된 경우, 각 어레이에 대하여 256 비트의 룰 로우 마스크가 사용되고, 어레이에 저장된 룰 키들의 룰 컨텐츠 비트들에 대해서는 96 비트의 룰 컬럼 마스크가 사용될 수 있다. 예컨대, 룰 로우 마스크에서 1로 설정된 비트에 대응하는 룰 키가 패킷 키와 비교되며, 룰 컬럼 마스크에서 1로 설정된 비트에 대응하는 비트마다 룰 키와 패킷 키가 비교된다.
도 9는 본 발명의 실시예에 따른 패킷 매칭 엔진의 구성을 도시한다.
패킷 매칭 엔진(710)은 제어 블록(910) 및 하나 이상의 패킷 매칭기(920, 930)를 포함한다. 각 패킷 매칭기(920, 930)는 복수의 서브 패킷 매칭기(9401, 9402, …, 940i, 940i+1, 940i+2, …, 940i+n)를 포함할 수 있다.
제어 블록(910)은 패킷 매칭 엔진(710)을 제어하고 패킷 매칭 엔진(710)의 상태를 저장한다. 제어 블록(910)은 패킷 매칭 엔진(710)의 룰 키 메모리의 어드레스 신호 및 제어 신호를 생성한다. 또한, 제어 블록(910)은 패킷 매칭기(920, 930)에서 패킷 키와 룰 키를 비교한 결과를 저장한다. 소정의 실시예에서, 제어 블록(910)은 룰 로우 마스크 및 룰 컬럼 마스크를 저장하는 레지스터를 포함할 수 있다.
도 9에 도시된 패킷 매칭 엔진(710)은 2개의 패킷 매칭기(920, 930)를 포함한다. 예컨대, 각 패킷 매칭기(920, 930)에는 전술한 128 비트 데이터구조의 패킷 키가 입력될 수 있다. 또한, 패킷 매칭 엔진(710)의 룰 키 메모리가 192 비트 x 256 비트의 2개의 어레이로 구분되고, 2개의 어레이는 각 패킷 매칭기(920, 930)에 하나씩 대응할 수 있다. 소정의 실시예에서, 각 어레이는 대응하는 패킷 매칭기(920, 930) 내에 포함될 수 있다. 다만, 이러한 룰 키 메모리의 구성은 어디까지나 예시적이다. 패킷 매칭 엔진(710)의 룰 키 메모리는 사용자의 설정에 따라 512개의 160 비트 룰 키 또는 256개의 320 비트 룰 키를 저장하는 데 사용될 수 있다.
소정의 실시예에서, 각 패킷 매칭기(920, 930)는 8개의 서브 패킷 매칭기를 포함할 수 있다(예컨대, 도 9에 도시된 서브 패킷 매칭기들을 나타내는 참조 부호 9401, 9402, …, 940i, 940i+1, 940i+2, …, 940i+n에서 i = n = 8이다). 각 패킷 매칭기(920, 930)에서 256개의 룰 키는 8개의 그룹으로 나뉜다. 총 16개의 서브 패킷 매칭기(9401 내지 940i+n) 각각에서 32개의 룰 키들이 패킷 키와 비교된다.
각 패킷 매칭기(920, 930)의 패킷은 그 패킷 매칭기(920, 930)에 포함된 서브 패킷 매칭기(9401 내지 940i+n)에 입력되며, 룰 키 메모리의 어드레스 신호 및 제어신호가 제어 블록(910)에 의해 생성되어 서브 패킷 매칭기들(9401 내지 940i+n)에 입력된다. 각 서브 패킷 매칭기(9401 내지 940i+n)는 어드레스 신호에 따라 룰 키 메모리에 저장된 룰 키를 로딩하여 패킷 키와 비교하는 논리 연산을 수행한다.
전술한 어드레스 신호 및/또는 제어신호는 서브 패킷 매칭기들(9401 내지 940i+n)에 동시에 입력될 수 있다. 이러한 경우, 예시적인 패킷 매칭 엔진(710) 내의 16개의 서브 패킷 매칭기(9401 내지 940i+n)는 룰 키와 패킷 키를 비교하는 논리 연산을 병렬로 수행하는 방식으로 패킷과 룰 간의 매칭을 수행할 수 있다. 패킷 매칭 엔진(710)의 동작 속도는 패킷 매칭 엔진(710)의 서브 패킷 매칭기(9401 내지 940i+n)에서 비교되는 룰 키의 개수에 따라 달라진다. 예컨대, 하나의 룰 키를 패킷 키와 비교하는 데 3 클럭이 필요하다면, 각각의 패킷 매칭기(920, 930)에서 256개의 룰 키를 처리하는 데에는 (256/8)*3 = 96 클럭이 소요된다. 이와 같이 멀티 매칭(multi-matching)이 가능한 경우 룰이 증가하더라도 그러한 매칭에 소요되는 시간이 단축될 수 있다. 이러한 멀티 매칭을 위한 메모리는 컨텐츠 연관 메모리(content associative memory: CAM)의 구조를 가질 수 있다. CAM 구조의 메모리에 패킷 키가 입력된 후, 입력된 패킷 키와 매칭되는 룰 키가 그 메모리에서 발견되는 경우 룰 키가 저장된 위치를 나타내는 어드레스가 출력될 수 있다.
각 패킷 매칭기(920, 930)는 결과 블록(미도시)을 더 포함할 수 있다. 결과 블록에는 서브 패킷 매칭기들(9401 내지 940i+n)에서 수행된 논리 연산의 결과가 저장된다. 패킷 매칭 엔진(710)의 제어 블록(910)은 결과 블록에 저장된 결과를 수신할 수 있다.
도 10은 본 발명의 실시예에 따른 서브 패킷 매칭기의 구성을 도시한다.도 10은 서브 패킷 매칭기(9401)의 구성을 도시하며, 다른 서브 패킷 매칭기(9402 내지 940i+n)의 구성도 마찬가지일 수 있다.
패킷 버퍼(1080)는 패킷 매칭 엔진(710)에 입력된 패킷을 저장한다. 패킷 버퍼(1080)에 저장된 패킷은 96 비트의 패킷 컨텐츠 및 32 비트의 비교 영역을 포함한다.
서브 패킷 매칭기(9401)에서 96 비트 x 32 비트의 룰 컨텐츠 메모리(1010), 64 비트 x 32 비트의 룰 영역 메모리(1020) 및 32 비트 x 32 비트의 룰 컨텐츠 마스크 메모리(1030)는 각각 32개의 룰 키에 대한 룰 컨텐츠, 비교 영역 및 룰 컨텐츠 마스크를 저장한다. 룰 컨텐츠 메모리(1010), 룰 영역 메모리(1020) 및 룰 컨텐츠 마스크 메모리(1030)는 패킷 매칭 엔진(710)의 룰 키 메모리로부터 서브 패킷 매칭기(9401)에서 처리하는 32개의 룰 키를 수신하여 저장하는 버퍼일 수도 있고, 룰 키 메모리의 일부일 수도 있다. 제어 블록(910)으로부터의 어드레스 신호에 따라 하나의 룰 키의 룰 컨텐츠, 비교 영역 및 룰 컨텐츠 마스크가 이 메모리들(1010, 1020, 1030)로부터 로딩될 수 있다.
룰 로우 마스크와 룰 컬럼 마스크는 전술한 바와 같이 사용될 수 있다. 각 패킷 매칭기(920, 930)가 256개의 룰 키를 처리하되 8개의 서브 패킷 매칭기를 포함하는 경우, 각 서브 패킷 매칭기(9401 내지 940i+n)에서 사용되는 룰 로우 마스크는 256/8 = 32 비트이다.
입력된 패킷이 로딩되는 경우, 서브 패킷 매칭기(9401)는 자신에게 할당된 룰 키들에 대하여 다음과 같은 동작들을 수행한다. 각 룰 키에 대하여, 서브 패킷 매칭기(9401)의 마스크 동작 유닛(1070)은 룰 컨텐츠 마스크 메모리(1030)의 32 비트를 이용하여 96 비트의 확장된 룰 컨텐츠 마스크(1040)를 생성하고, 룰 컨텐츠 메모리(1010)로부터의 96 비트 룰 컨텐츠를 확장된 룰 컨텐츠 마스크(1040)로써 마스크하는 논리 연산을 수행한다. 영역 동작 유닛(1060)은 룰 영역 메모리(1020)에 저장된 룰 키의 비교 영역과 패킷 버퍼(1080)에 저장된 패킷의 비교 영역의 값의 대소를 비교한 후, 그 결과로써 패킷 버퍼(1080) 내의 패킷 컨텐츠의 더미 비트들을 업데이트한다. 이후, 컨텐츠 매칭기(1050)는 룰 컨텐츠와 패킷 컨텐츠를 비트 별로 비교하는 논리 연산을 수행한다.
패킷 스트림 캡쳐 유닛(740)은 NIC(610)를 통해 들어오거나 나가는 패킷을 패킷 매칭 엔진(710)에서 수행되는 매칭 동작들에 적합한 형식의 데이터 집합으로 변환한다. 패킷 스트림 캡쳐 유닛(740)에 의한 변환은 패킷에서 소정의 데이터를 추출하는 것을 포함할 수 있다. 패킷 스트림 캡쳐 유닛(740)은 추출된 데이터를 FW 엔진(170)에 제공한다. 추출되는 데이터는 FW 룰과 연관된 데이터일 수 있다. FW 룰과 관련 없는 데이터는 패킷과 FW 룰 간의 매칭에서 반드시 필요한 것이 아닌바, FW 엔진(170)에 제공되지 않더라도 무방하다. 예컨대, 이더넷(Ethernet)과 같은 링크 계층 프로토콜에 따른 패킷에 대하여, FW 룰은 링크 계층 프로토콜에 특정한 데이터, 네트워크 계층 프로토콜에 특정한 데이터 및/또는 전송 계층 프로토콜에 특정한 데이터와 관련되어 설정될 수도 있고, 아니면 애플리케이션 계층 프로토콜에 특정한 데이터와 관련되어 설정될 수도 있다.
일 예로서, 패킷 스트림 캡쳐 유닛(740)이 이더넷 프레임 패킷을 수신하는 경우를 가정한다. 패킷 스트림 캡쳐 유닛(740)은 FW 룰과 연관된 데이터를 이더넷 프레임에서 추출한다. 예컨대, 이더넷 프레임으로부터 MAC 헤더 중 소스 MAC 주소(Source MAC Address) 및 목적지 MAC 주소(Destination MAC Address), IP 헤더 중 소스 IP 주소(Source IP Address), 목적지 IP 주소(Destination IP Address), 패킷 버전 및 프로토콜을 포함하는 정보가 추출된다. 이더넷 프레임이 TCP 또는 UDP를 따르는 경우, TCP 헤더 또는 UDP 헤더 중 소스 포트(Source Port) 및 목적지 포트(Destination Port)를 포함하는 정보가 추출된다. 이와 달리, 이더넷 프레임이 ICMP 메시지인 경우, 타입 및 코드를 포함하는 정보가 추출된다.
도 11을 참조하여, 패킷 스트림 캡쳐 유닛(740)에 의한 이더넷 프레임의 변환을 설명한다. 도 11에서, 이더넷 프레임은 IPv4에 따른 패킷을 포함한다.
이더넷 프레임이 외부로 나가는(outgoing) TCP 또는 UDP 패킷인 경우, 패킷 스트림 캡쳐 유닛(740)은 이더넷 프레임을 도 11의 가장 위쪽의 포맷으로 판독한다. 이 포맷에 따르면, 비트 0부터 시작하여, 2개의 더미 비트들, V라고 표시된 패킷 버전, 이더넷 프레임이 외부로 나가는지 외부로부터 들어오는지를 나타내는 방향 비트, 유보된(reserved) 비트, P라고 표시된 프로토콜, DM1 내지 DM6로 표시된 목적지 MAC 주소, DIP1 내지 DIP4로 표시된 목적지 IP 주소 및 SIP1 내지 SIP4로 표시된 소스 IP 주소가 위치하고, 계속해서 소정의 더미 비트들과 함께 DPO로 표시된 목적지 포트 및 SPO로 표시된 소스 포트가 이어진다. 외부로 나가는 이더넷 프레임이 ICMP 메시지인 경우, 목적지 포트 및 소스 포트 대신에, CO로 표시된 코드 및 TP로 표시된 타입이 이어진다.
이더넷 프레임이 외부로부터 들어오는(incoming) 경우에도 전술한 바와 유사하다. 이러한 포맷은 2개의 더미 비트들, V라고 표시된 패킷 버전, 이더넷 프레임이 외부로 나가는지 외부로부터 들어오는지를 나타내는 방향 비트, 유보된 비트, 프로토콜, SM1 내지 SM6로 표시된 소스 MAC 주소, 소스 IP 주소, 목적지 IP 주소가 위치하고, 소정의 더미 비트들과 함께 소스 포트 및 목적지 포트, 또는 코드 및 타입이 이어진다.
이후, 패킷 스트림 캡쳐 유닛(740)은 FW 룰과 연관된 데이터를 패킷 매칭엔진(710)에 제공한다. 예컨대, 패킷 스트림 캡쳐 유닛(740)은 위와 같이 소정의 포맷으로 변환된 데이터에 기반하여 128 비트의 패킷 키로 생성하고 이를 패킷 매칭 엔진(710)에 제공한다. 만일 패킷 스트림 캡쳐 유닛(740)에 입력된 이더넷 프레임이 IPv6에 따른 패킷을 포함하는 경우, 패킷 스트림 캡쳐 유닛(740)은 입력된 프레임을 256 비트의 패킷 키로 변환할 수 있다.
전술한 바와 같이 패킷 스트림 캡쳐 유닛(740)은 패킷을 신속하게 파싱할 수 있다. 나아가, 패킷 스트림 캡쳐 유닛(740)은 URL 필터링의 대상이 되는 패킷(예컨대, HTTP 패킷)이나 컨텐츠 필터링의 대상이 되는 파일(예컨대, 특정한 형태의 키워드/패턴을 갖는 문서 또는 이미지 파일)을 빠르게 파싱할 수 있다.
예컨대, NIC(610)를 통해 수신된 이더넷 프레임이 TCP 패킷을 포함하는 경우, 패킷 스트림 캡쳐 유닛(740)은 URL 부분을 포함하는 애플리케이션 계층 프로토콜의 패킷(예컨대, HTTP 패킷 또는 PPTP 패킷)을 이후의 매칭에 적합하게 단순화된 포맷으로 변환함으로써, HTTP나 PPTP와 같은 애플리케이션 계층의 프로토콜에 대하여 URL 검사가 수행될 수 있도록 한다. 검사될 URL 부분의 사이즈가 고정적이지 않으므로, 패킷 스트림 캡쳐 유닛(740)은 URL 필터링 룰에 대응하는 그 부분을 해쉬(hash)하여 저장한다. 예컨대, 패킷 스트림 캡쳐 유닛(740)은 HTTP 패킷에 대해 method 필드 및 그에 이어지는 스페이스(sp)를 찾아 URL 필드의 위치를 확인하고, URL 부분에서 도메인 네임 및 그 이후의 경로 부분을 추출한다. 이와 유사하게, PPTP 패킷에 대해서도 Length 필드 및 Message Type 필드를 마스크하고 Magic Cookie 필드를 추출한다.
추출된 URL 관련 부분은 URL 필터(720)에 입력된다. 도 12는 본 발명의 실시예에 따른 URL 필터의 구성을 도시한다. 도 12를 참조하여, 예시적인 URL 필터(720)의 동작을 설명한다. 입력된 부분은 해쉬 처리기(1220)에서 SHA256과 같은 알고리즘에 따라 해쉬 처리된다. 이러한 해쉬를 위해, 패딩 유닛(1210)은 해쉬 처리기(1220)의 입력 블록 단위에 맞추어 URL 필터(720)에 입력된 부분에 패딩 비트를 부가하여 해쉬 처리기(1220)에 전달한다. 해쉬 처리기(1220)의 출력은 URL 필터(720)의 CAM(1230)에 제공되어 스트링(string) 매칭이 수행된다. 해쉬된 URL 관련 부분이 CAM(1230)의 URL 필터링 룰과 매칭되는 경우, CAM(1230)에서 어드레스 인코더(1240)를 거쳐 어드레스가 출력된다.
다른 예로서, 애플리케이션(630)에 의해 외부로 나가도록 설정된 파일을포함하는 패킷이 특정한 형태의 키워드(예컨대, “confidential”)나 패턴(예컨대, 주민등록번호)을 포함할 수 있다. 이와 같은 경우, 패킷 스트림 캡쳐 유닛(740)은 애플리케이션 계층에서 사용되는 컨텐츠에 대한 필터링을 위해 위 파일을 적절한 포맷으로 변환할 수 있다. 구체적인 변환 방식은 파일, 키워드 및/또는 패턴에 따라 상이할 수 있다. 이후, URL 필터(720)에서 URL 필터링 동작들과 유사한 방식으로 컨텐츠 필터(730)는 컨텐츠 필터링을 수행할 수 있다. 애플리케이션 계층에서의 컨텐츠 필터링을 통해, 특정 정보를 포함한 컨텐츠가 구별되어 외부로 유출되는 것이 방지된다.
전술한 하드웨어 기반의 AM 시스템은 다양한 모바일 장치, PC 또는 임베디드 장치에서 구현될 수 있다. AM 시스템에 의해 제공되는 플랫폼 상에서 FW 솔루션은 효과적으로 멀웨어 감염 경로를 차단하고, FW 정책에 따라 네트워크 패킷을 필터링 및 모니터링하도록 하는바, 멀웨어를 유포하는 사이트나 피싱(phishing) 사이트에 대한 액세스를 원천적으로 차단하고 DDoS 공격을 방지하는 것이 용이하다. 더욱이, 하드웨어를 기반으로 제공되는 필터링 기능은 패킷 전송에 대한 응답 시간을 감소시킬 수 있고, FW 룰의 개수가 많아지더라도 적정한 시간 내에 수행될 수 있다. 나아가, 소정의 프로토콜에 따른 패킷 중 가변적인 크기의 데이터가 FW 룰과 연관된 경우에도 하드웨어를 기반으로 패킷과 FW 룰 간의 매칭을 신속하게 수행할 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 소정의 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 상기 컴퓨터 판독가능 저장 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것일 수 있다. 컴퓨터 판독가능 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다.
그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
170: FW 엔진
510: FW 펌웨어
520: 드라이버
530: 라이브러리
540: FW 애플리케이션

Claims (29)

  1. 패킷과 복수의 방화벽(firewall: FW) 룰의 매칭을 수행하고 매칭 결과를 생성하는 패킷 매칭 엔진을 포함하는 하드웨어 기반 FW 엔진; 및
    상기 매칭 결과에 기반하여, 상기 패킷을 필터링하기 위한 액션을 결정하는 FW 기능 모듈을 포함하고,
    상기 패킷 매칭 엔진은, 상기 복수의 FW 룰로부터 도출되는 복수의 룰 키를 상기 패킷으로부터 변환되는 패킷 키와 비교하는 하나 이상의 패킷 매칭기를 포함하되,
    상기 패킷 매칭기 각각은 병렬로 동작하는 복수의 서브 패킷 매칭기를 포함하고, 상기 서브 패킷 매칭기 각각은 또한 상기 복수의 룰 키의 부분집합을 상기 패킷 키와 비교하는,
    안티 멀웨어(Anti-Malware) 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 하드웨어 기반 FW 엔진은 패킷 스트림 캡쳐 유닛을 더 포함하고, 상기 패킷 스트림 캡쳐 유닛은 상기 패킷으로부터 상기 복수의 FW 룰과 연관된 데이터를 추출하고 상기 추출된 데이터를 상기 패킷 매칭 엔진에 제공하는,
    안티 멀웨어 장치.
  5. 제4항에 있어서,
    상기 패킷 스트림 캡쳐 유닛은 또한 상기 데이터를 링크 계층 프로토콜, 네트워크 계층 프로토콜 및 전송 계층 프로토콜 중 적어도 하나에 특정한 데이터를 포함하도록 추출하는,
    안티 멀웨어 장치.
  6. 제4항에 있어서,
    상기 복수의 FW 룰은 또한 URL(Uniform Resource Locator) 필터링 룰을 포함하고,
    상기 하드웨어 기반 FW 엔진은 또한 URL 필터를 포함하되, 상기 패킷 스트림 캡쳐 유닛은 또한 상기 패킷으로부터 URL 부분을 추출하고 상기 추출된 URL 부분을 상기 URL 필터에 제공하며, 상기 URL 필터는 상기 URL 부분과 상기 URL 필터링 룰의 매칭을 수행하는,
    안티 멀웨어 장치.
  7. 제4항에 있어서,
    상기 복수의 FW 룰은 또한 컨텐츠 필터링 룰은 포함하고,
    상기 하드웨어 기반 FW 엔진은 또한 컨텐츠 필터를 포함하되, 상기 패킷 스트림 캡쳐 유닛은 또한 상기 패킷으로부터 키워드 및 패턴 중 적어도 하나를 추출하고 상기 키워드 및 상기 패턴 중 추출된 상기 적어도 하나를 상기 컨텐츠 필터에 제공하며, 상기 컨텐츠 필터는 상기 키워드 및 상기 패턴 중 상기 적어도 하나와 컨텐츠 필터링 룰의 매칭을 수행하는,
    안티 멀웨어 장치.
  8. 제1항에 있어서,
    상기 FW 기능 모듈은 펌웨어(firmware)로서 구현되는,
    안티 멀웨어 장치.
  9. 제1항에 있어서,
    상기 FW 기능 모듈은 상기 하드웨어 기반 FW 엔진과 협력하여 외부 CPU에 의해 실행되는 애플리케이션으로서 구현되는,
    안티 멀웨어 장치.
  10. 제8항에 있어서,
    상기 하드웨어 기반 FW 엔진은 CPU 및 메모리를 포함하고,
    상기 FW 기능 모듈이 구현된 상기 펌웨어는 상기 메모리에 저장되는,
    안티 멀웨어 장치.
  11. 제1항에 있어서,
    상기 하드웨어 기반 FW 엔진은 프로세서와 통합(integrated)되고,
    상기 프로세서는, 상기 프로세서를 일반 모드 및 보안 모드에 각각 대응하는 상이한 프로세서들로 가상화하는 보안 실행 환경 모듈을 포함하는,
    안티 멀웨어 장치.
  12. 제11항에 있어서,
    상기 보안 모드에 대응하는 가상화된 프로세서는 상기 안티 멀웨어 장치에 의해 수신되는 애플리케이션을 실행하도록 구성되는,
    안티 멀웨어 장치.
  13. 제11항에 있어서,
    상기 프로세서와 연결된 저장장치를 더 포함하되,
    상기 보안 실행 환경 모듈은 또한 상기 저장장치를 상기 일반모드 및 상기 보안 모드에 각각 대응하는 상이한 저장장치들로 가상화하는,
    안티 멀웨어 장치.
  14. 제13항에 있어서,
    상기 보안 모드에 대응하는 가상화된 저장장치는 상기 복수의 FW 룰을 저장하는,
    안티 멀웨어 장치.
  15. 하드웨어 기반 FW 엔진의 패킷 매칭 엔진을 이용하여 패킷과 복수의 FW 룰의 매칭을 수행하는 단계;
    매칭 결과를 생성하는 단계; 및
    FW 기능 모듈에서, 상기 매칭 결과에 기반하여, 상기 패킷을 필터링하기 위한 액션을 결정하는 단계를 포함하고,
    상기 매칭을 수행하는 단계는,
    상기 복수의 FW 룰로부터 복수의 룰 키를 도출하는 단계;
    상기 패킷을 패킷 키로 변환시키는 단계;
    상기 패킷 매칭 엔진의 하나 이상의 패킷 매칭기 각각에서, 복수의 서브 패킷 매칭기를 병렬로 동작시키는 단계; 및
    상기 서브 패킷 매칭기 각각에서, 상기 복수의 룰 키의 부분집합과 상기 패킷 키를 비교하는 단계를 포함하는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  16. 삭제
  17. 삭제
  18. 제15항에 있어서,
    상기 하드웨어 기반 FW 엔진의 패킷 스트림 캡쳐 유닛에서, 상기 패킷으로부터 상기 FW 룰과 연관된 데이터를 추출하고 상기 추출된 데이터를 상기 패킷 매칭 엔진에 제공하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  19. 제18항에 있어서,
    상기 데이터는 링크 계층 프로토콜, 네트워크 계층 프로토콜 및 전송 계층 프로토콜 중 적어도 하나에 특정한 데이터를 포함하도록 상기 데이터를 추출하는 것이 수행되는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  20. 제18항에 있어서,
    상기 패킷 스트림 캡쳐 유닛에서, 상기 패킷으로부터 URL 부분을 추출하는 단계;
    상기 추출된 URL 부분을 상기 하드웨어 기반 FW 엔진의 URL 필터에 제공하는 단계; 및
    상기 URL 필터에서, 상기 URL 부분을 상기 복수의 FW 룰 중 URL 필터링 룰과 매칭하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  21. 제18항에 있어서,
    상기 패킷 스트림 캡쳐 유닛에서, 상기 패킷으로부터 키워드 및 패턴 중 적어도 하나를 추출하는 단계;
    상기 키워드 및 상기 패턴 중 상기 적어도 하나를 상기 하드웨어 기반 FW 엔진의 컨텐츠 필터에 제공하는 단계; 및
    상기 컨텐츠 필터에서, 상기 키워드 및 상기 패턴 중 상기 적어도 하나를 상기 복수의 FW 룰 중 컨텐츠 필터링 룰과 매칭하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  22. 제15항에 있어서,
    펌웨어로서 구현된 상기 FW 기능 모듈을 제공하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  23. 제15항에 있어서,
    상기 하드웨어 기반 FW 엔진과 협력하여 외부 CPU에 의해 실행되는 애플리케이션으로서 구현된 상기 FW 기능 모듈을 제공하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  24. 제22항에 있어서,
    상기 하드웨어 기반 FW 엔진은 CPU 및 메모리를 포함하고,
    상기 FW 기능 모듈을 제공하는 단계는 상기 펌웨어를 상기 메모리에 저장하는 단계를 포함하는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  25. 제15항에 있어서,
    보안 실행 환경 모듈을 이용하여, 상기 하드웨어 기반 FW 엔진과 통합된 프로세서를 일반 모드 및 보안 모드에 각각 대응하는 상이한 프로세서들로 가상화하는 단계를 더 포함하되,
    상기 보안 실행 환경 모듈은 상기 프로세서에 포함되는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  26. 제25항에 있어서,
    상기 안티 멀웨어 장치를 이용하는 애플리케이션을 상기 보안 모드에 대응하는 가상화된 프로세서 상에서 실행하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  27. 제25항에 있어서,
    상기 보안 실행 환경 모듈에서, 상기 프로세서와 연결된 저장장치를 상기 일반모드 및 상기 보안 모드에 각각 대응하는 상이한 저장장치들로 가상화하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  28. 제27항에 있어서,
    상기 복수의 FW 룰은 상기 보안 모드에 대응하는 가상화된 저장장치에 저장되는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  29. 컴퓨팅 장치로서,
    CPU 코어; 및
    FW 소프트웨어 애플리케이션이 실행될 수 있는 보안 플랫폼을 제공하는 안티 멀웨어 장치를 포함하되,
    상기 안티 멀웨어 장치는,
    패킷과 복수의 FW 룰의 매칭을 수행하고 매칭 결과를 생성하는 패킷 매칭 엔진을 포함하는 하드웨어 기반 FW 엔진; 및
    상기 매칭 결과에 기반하여, 상기 패킷을 필터링하기 위한 액션을 결정하는 FW 기능 모듈을 포함하고,
    상기 패킷 매칭 엔진은, 상기 복수의 FW 룰로부터 도출되는 복수의 룰 키를 상기 패킷으로부터 변환되는 패킷 키와 비교하는 하나 이상의 패킷 매칭기를 포함하되,
    상기 패킷 매칭기 각각은 병렬로 동작하는 복수의 서브 패킷 매칭기를 포함하고, 상기 서브 패킷 매칭기 각각은 또한 상기 복수의 룰 키의 부분집합을 상기 패킷 키와 비교하는,
    컴퓨팅 장치.
KR1020130139280A 2012-11-19 2013-11-15 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 패킷 처리 방법 KR101558054B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261727917P 2012-11-19 2012-11-19
US61/727,917 2012-11-19

Publications (2)

Publication Number Publication Date
KR20140064649A KR20140064649A (ko) 2014-05-28
KR101558054B1 true KR101558054B1 (ko) 2015-10-06

Family

ID=50731457

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020130139280A KR101558054B1 (ko) 2012-11-19 2013-11-15 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 패킷 처리 방법
KR1020130139278A KR101563059B1 (ko) 2012-11-19 2013-11-15 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020130139278A KR101563059B1 (ko) 2012-11-19 2013-11-15 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법

Country Status (3)

Country Link
US (2) US9118625B2 (ko)
KR (2) KR101558054B1 (ko)
WO (2) WO2014077614A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9510195B2 (en) * 2014-02-10 2016-11-29 Stmicroelectronics International N.V. Secured transactions in internet of things embedded systems networks
US9787638B1 (en) * 2014-12-30 2017-10-10 Juniper Networks, Inc. Filtering data using malicious reference information
US9747435B2 (en) 2015-04-27 2017-08-29 Apple Inc. Authentication and control of encryption keys
KR101649828B1 (ko) 2015-07-30 2016-08-19 엘에스산전 주식회사 이더넷 프레임 감지 장치 그의 동작 방법
CN109962885A (zh) * 2017-12-22 2019-07-02 北京安天网络安全技术有限公司 物联网设备的网络安全防护方法及物联网设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100750377B1 (ko) * 2006-05-09 2007-08-17 한정보통신 주식회사 SoC기반의 네트워크 보안 시스템 및 그 방법

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864666A (en) * 1996-12-23 1999-01-26 International Business Machines Corporation Web-based administration of IP tunneling on internet firewalls
US6009475A (en) * 1996-12-23 1999-12-28 International Business Machines Corporation Filter rule validation and administration for firewalls
US6173364B1 (en) * 1997-01-15 2001-01-09 At&T Corp. Session cache and rule caching method for a dynamic filter
US6510509B1 (en) * 1999-03-29 2003-01-21 Pmc-Sierra Us, Inc. Method and apparatus for high-speed network rule processing
US6701432B1 (en) * 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US6496935B1 (en) * 2000-03-02 2002-12-17 Check Point Software Technologies Ltd System, device and method for rapid packet filtering and processing
TW498650B (en) * 2000-03-22 2002-08-11 Ind Tech Res Inst Flexible and highly efficient packet classification method
US6772223B1 (en) * 2000-04-10 2004-08-03 International Business Machines Corporation Configurable classification interface for networking devices supporting multiple action packet handling rules
US7215637B1 (en) * 2000-04-17 2007-05-08 Juniper Networks, Inc. Systems and methods for processing packets
US7152240B1 (en) * 2000-07-25 2006-12-19 Green Stuart D Method for communication security and apparatus therefor
US20110231564A1 (en) * 2000-09-25 2011-09-22 Yevgeny Korsunsky Processing data flows with a data flow processor
US9800608B2 (en) * 2000-09-25 2017-10-24 Symantec Corporation Processing data flows with a data flow processor
US20070192863A1 (en) * 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
US20110238855A1 (en) * 2000-09-25 2011-09-29 Yevgeny Korsunsky Processing data flows with a data flow processor
US7398553B1 (en) * 2000-10-30 2008-07-08 Tread Micro, Inc. Scripting virus scan engine
US20020126672A1 (en) * 2001-01-10 2002-09-12 Nelson Chow Method and apparatus for a flexible and reconfigurable packet classifier using content addressable memory
GB2371186A (en) * 2001-01-11 2002-07-17 Marconi Comm Ltd Checking packets
US6738779B1 (en) * 2001-02-21 2004-05-18 Telecom Italia S.P.A. Apparatus for and method of multiple parallel string searching
US7331061B1 (en) * 2001-09-07 2008-02-12 Secureworks, Inc. Integrated computer security management system and method
US7225188B1 (en) * 2002-02-13 2007-05-29 Cisco Technology, Inc. System and method for performing regular expression matching with high parallelism
US6735179B2 (en) * 2002-02-14 2004-05-11 Bivio Networks, Inc. Systems and methods for packet filtering
US7719980B2 (en) * 2002-02-19 2010-05-18 Broadcom Corporation Method and apparatus for flexible frame processing and classification engine
KR100467746B1 (ko) 2002-03-26 2005-01-24 한정보통신 주식회사 주소 분할에 의한 다중필드 분류시스템
US7185365B2 (en) * 2002-03-27 2007-02-27 Intel Corporation Security enabled network access control
US20030212900A1 (en) * 2002-05-13 2003-11-13 Hsin-Yuo Liu Packet classifying network services
TW574660B (en) * 2002-05-16 2004-02-01 Ind Tech Res Inst Method targeting at range search and for information search complying with specified rule
US7093023B2 (en) * 2002-05-21 2006-08-15 Washington University Methods, systems, and devices using reprogrammable hardware for high-speed processing of streaming data to find a redefinable pattern and respond thereto
US7284269B2 (en) * 2002-05-29 2007-10-16 Alcatel Canada Inc. High-speed adaptive structure of elementary firewall modules
US7415723B2 (en) * 2002-06-11 2008-08-19 Pandya Ashish A Distributed network security system and a hardware processor therefor
JP3794491B2 (ja) * 2002-08-20 2006-07-05 日本電気株式会社 攻撃防御システムおよび攻撃防御方法
US20040039940A1 (en) * 2002-08-23 2004-02-26 Koninklijke Philips Electronics N.V. Hardware-based packet filtering accelerator
US7894480B1 (en) * 2002-08-27 2011-02-22 Hewlett-Packard Company Computer system and network interface with hardware based rule checking for embedded firewall
WO2004023263A2 (en) * 2002-09-09 2004-03-18 Netrake Corporation System for allowing network traffic through firewalls
AU2003276399A1 (en) 2002-11-18 2004-06-15 Arm Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
US7577758B2 (en) * 2002-12-20 2009-08-18 Force 10 Networks, Inc. Hardware support for wire-speed, stateful matching and filtration of network traffic
US20050108518A1 (en) * 2003-06-10 2005-05-19 Pandya Ashish A. Runtime adaptable security processor
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
WO2005024562A2 (en) * 2003-08-11 2005-03-17 Eloret Corporation System and method for pattern recognition in sequential data
KR100500589B1 (ko) * 2003-09-03 2005-07-12 엘지엔시스(주) 하드웨어기반의 패턴매칭을 이용한 웜 차단 방법 및 장치
US7454418B1 (en) * 2003-11-07 2008-11-18 Qiang Wang Fast signature scan
US20050108434A1 (en) * 2003-11-13 2005-05-19 Witchey Nicholas J. In-band firewall for an embedded system
US7610621B2 (en) * 2004-03-10 2009-10-27 Eric White System and method for behavior-based firewall modeling
US20050229246A1 (en) * 2004-03-31 2005-10-13 Priya Rajagopal Programmable context aware firewall with integrated intrusion detection system
US7401230B2 (en) 2004-03-31 2008-07-15 Intel Corporation Secure virtual machine monitor to tear down a secure execution environment
WO2006031496A2 (en) * 2004-09-10 2006-03-23 The Regents Of The University Of California Method and apparatus for deep packet inspection
WO2006093557A2 (en) * 2004-12-22 2006-09-08 Wake Forest University Method, systems, and computer program products for implementing function-parallel network firewall
US7818793B2 (en) * 2005-03-23 2010-10-19 The Board Of Regents, University Of Texas System System and method of firewall design utilizing decision diagrams
CA2600236C (en) * 2005-03-28 2014-08-12 Wake Forest University Methods, systems, and computer program products for network firewall policy optimization
FI119303B (fi) * 2005-06-07 2008-09-30 Teliasonera Ab Liitettävyys tilatietoisten palomuurien välillä
US20070033641A1 (en) * 2005-07-07 2007-02-08 Acenet Technology Inc. Distributed Network Security System
US7966654B2 (en) * 2005-11-22 2011-06-21 Fortinet, Inc. Computerized system and method for policy-based content filtering
US7702629B2 (en) * 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
US20070168377A1 (en) * 2005-12-29 2007-07-19 Arabella Software Ltd. Method and apparatus for classifying Internet Protocol data packets
US8234361B2 (en) * 2006-01-13 2012-07-31 Fortinet, Inc. Computerized system and method for handling network traffic
US8533808B2 (en) * 2006-02-02 2013-09-10 Check Point Software Technologies Ltd. Network security smart load balancing using a multiple processor device
US7735116B1 (en) * 2006-03-24 2010-06-08 Symantec Corporation System and method for unified threat management with a relational rules methodology
US8353020B2 (en) * 2006-06-14 2013-01-08 Microsoft Corporation Transparently extensible firewall cluster
US7966655B2 (en) * 2006-06-30 2011-06-21 At&T Intellectual Property Ii, L.P. Method and apparatus for optimizing a firewall
GB0623101D0 (en) * 2006-11-20 2006-12-27 British Telecomm Secure network architecture
US8448234B2 (en) * 2007-02-15 2013-05-21 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for deep packet inspection for network intrusion detection
US7853998B2 (en) * 2007-03-22 2010-12-14 Mocana Corporation Firewall propagation
US8131841B2 (en) * 2007-07-27 2012-03-06 Hewlett-Packard Development Company, L.P. Method and apparatus for detecting predefined signatures in packet payload
US8079084B1 (en) * 2007-08-10 2011-12-13 Fortinet, Inc. Virus co-processor instructions and methods for using such
US8176477B2 (en) * 2007-09-14 2012-05-08 International Business Machines Corporation Method, system and program product for optimizing emulation of a suspected malware
US8214895B2 (en) * 2007-09-26 2012-07-03 Microsoft Corporation Whitelist and blacklist identification data
US8037532B2 (en) * 2007-12-11 2011-10-11 International Business Machines Corporation Application protection from malicious network traffic
US8051085B1 (en) * 2008-07-18 2011-11-01 Netlogic Microsystems, Inc. Determining regular expression match lengths
US20100083381A1 (en) * 2008-09-30 2010-04-01 Khosravi Hormuzd M Hardware-based anti-virus scan service
US9270698B2 (en) * 2008-12-30 2016-02-23 Intel Corporation Filter for network intrusion and virus detection
KR101042794B1 (ko) 2009-04-09 2011-06-20 삼성에스디에스 주식회사 휴대단말기에서의 시스템온칩 및 주문형반도체 기반의 악성코드 검출 장치
US8250016B2 (en) * 2009-04-17 2012-08-21 Alcatel Lucent Variable-stride stream segmentation and multi-pattern matching
US8018961B2 (en) * 2009-06-22 2011-09-13 Citrix Systems, Inc. Systems and methods for receive and transmission queue processing in a multi-core architecture
US8289975B2 (en) * 2009-06-22 2012-10-16 Citrix Systems, Inc. Systems and methods for handling a multi-connection protocol between a client and server traversing a multi-core system
US8205035B2 (en) * 2009-06-22 2012-06-19 Citrix Systems, Inc. Systems and methods for integration between application firewall and caching
US9621516B2 (en) * 2009-06-24 2017-04-11 Vmware, Inc. Firewall configured with dynamic membership sets representing machine attributes
US8572609B2 (en) * 2009-07-01 2013-10-29 Riverbed Technology, Inc. Configuring bypass functionality of a network device based on the state of one or more hosted virtual machines
US8634437B2 (en) * 2009-07-01 2014-01-21 Riverbed Technology, Inc. Extended network protocols for communicating metadata with virtual machines
US8990433B2 (en) * 2009-07-01 2015-03-24 Riverbed Technology, Inc. Defining network traffic processing flows between virtual machines
US8954957B2 (en) * 2009-07-01 2015-02-10 Riverbed Technology, Inc. Network traffic processing according to network traffic rule criteria and transferring network traffic metadata in a network device that includes hosted virtual machines
KR101042859B1 (ko) 2009-09-24 2011-06-20 주식회사 잉카인터넷 파일 바이러스 검출방법
US8387143B2 (en) * 2009-11-30 2013-02-26 Citrix Systems, Inc. Systems and methods for aggressive window probing
US8640216B2 (en) * 2009-12-23 2014-01-28 Citrix Systems, Inc. Systems and methods for cross site forgery protection
US8392562B2 (en) * 2009-12-23 2013-03-05 Citrix Systems, Inc. Systems and methods for managing preferred client connectivity to servers via multi-core system
US8413225B2 (en) * 2009-12-23 2013-04-02 Citrix Systems, Inc. Systems and methods for management of common application firewall session data in a multiple core system
US8825859B2 (en) * 2009-12-23 2014-09-02 Citrix Systems, Inc. System and methods for mixed mode of IPv6 and IPv4 DNS of global server load balancing
US8380994B2 (en) * 2009-12-23 2013-02-19 Citrix Systems, Inc. Systems and methods for generating and managing cookie signatures for prevention of HTTP denial of service in multi-core system
US8826413B2 (en) * 2009-12-30 2014-09-02 Motorla Solutions, Inc. Wireless local area network infrastructure devices having improved firewall features
US8504510B2 (en) * 2010-01-07 2013-08-06 Interdisciplinary Center Herzliya State machine compression for scalable pattern matching
US8458354B2 (en) * 2010-01-27 2013-06-04 Interdisciplinary Center Herzliya Multi-pattern matching in compressed communication traffic
US9141580B2 (en) * 2010-03-23 2015-09-22 Citrix Systems, Inc. Systems and methods for monitoring and maintaining consistency of a configuration
JP5425840B2 (ja) * 2010-06-07 2014-02-26 サムソン エスディーエス カンパニー リミテッド アンチマルウェアシステム及びその動作方法
CN102289614B (zh) * 2010-06-18 2015-07-29 三星Sds株式会社 反恶意软件系统及其操作方法
US8843645B2 (en) * 2010-06-24 2014-09-23 Citrix Systems, Inc. Systems and methods for detecting incomplete requests, TCP timeouts and application timeouts
KR101075439B1 (ko) * 2010-08-31 2011-10-24 연세대학교 산학협력단 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 그것의 문자열 매칭 방법
US8875276B2 (en) * 2011-09-02 2014-10-28 Iota Computing, Inc. Ultra-low power single-chip firewall security device, system and method
EP2500838A1 (en) * 2011-03-16 2012-09-19 Samsung SDS Co. Ltd. SOC-based device for packet filtering and packet filtering method thereof
US9087199B2 (en) * 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
EP2691883A1 (en) * 2011-03-28 2014-02-05 Citrix Systems Inc. Systems and methods of utf-8 pattern matching
CN103609071B (zh) * 2011-03-28 2017-04-12 思杰系统有限公司 用于通过多连接中间装置跟踪应用层流的系统和方法
CN104012041B (zh) * 2011-05-24 2018-02-09 思杰系统有限公司 用于分析网络指标的系统和方法
US8990259B2 (en) * 2011-06-24 2015-03-24 Cavium, Inc. Anchored patterns
US8800021B1 (en) * 2011-06-29 2014-08-05 Juniper Networks, Inc. Hardware implementation of complex firewalls using chaining technique
US8745266B2 (en) * 2011-06-30 2014-06-03 Citrix Systems, Inc. Transparent layer 2 redirection of request to single sign in service based on applying policy to content of request
US9112812B2 (en) * 2011-09-22 2015-08-18 Embrane, Inc. Distributed virtual appliance
US10089127B2 (en) * 2011-11-15 2018-10-02 Nicira, Inc. Control plane interface for logical middlebox services
CN103299311B (zh) * 2011-12-29 2015-04-29 英特尔公司 用于可信引导优化的方法和设备
US9237128B2 (en) * 2013-03-15 2016-01-12 International Business Machines Corporation Firewall packet filtering
US8990232B2 (en) * 2012-05-15 2015-03-24 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and method for parallel regular expression matching
US9245626B2 (en) * 2012-10-26 2016-01-26 Cisco Technology, Inc. System and method for packet classification and internet protocol lookup in a network environment
US9130901B2 (en) * 2013-02-26 2015-09-08 Zentera Systems, Inc. Peripheral firewall system for application protection in cloud computing environments
US9270704B2 (en) * 2013-03-13 2016-02-23 FireMon, LLC Modeling network devices for behavior analysis

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100750377B1 (ko) * 2006-05-09 2007-08-17 한정보통신 주식회사 SoC기반의 네트워크 보안 시스템 및 그 방법

Also Published As

Publication number Publication date
KR101563059B1 (ko) 2015-10-23
WO2014077614A1 (en) 2014-05-22
US20140196149A1 (en) 2014-07-10
US9306908B2 (en) 2016-04-05
KR20140064649A (ko) 2014-05-28
WO2014077615A1 (en) 2014-05-22
US9118625B2 (en) 2015-08-25
KR20140064648A (ko) 2014-05-28
US20140201828A1 (en) 2014-07-17

Similar Documents

Publication Publication Date Title
JP7460696B2 (ja) カーネルモードにおけるマルウェアおよびステガノグラフィのリアルタイム検出ならびにマルウェアおよびステガノグラフィからの保護
JP6639588B2 (ja) 悪意あるファイルを検出するシステムおよび方法
US11363061B2 (en) Runtime detection of injection attacks on web applications via static and dynamic analysis
JP2020095753A (ja) マルウェアのランタイム中の自動検出
US20060200863A1 (en) On-access scan of memory for malware
US7644271B1 (en) Enforcement of security policies for kernel module loading
RU2697954C2 (ru) Система и способ создания антивирусной записи
US11048795B2 (en) System and method for analyzing a log in a virtual machine based on a template
KR101558054B1 (ko) 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 패킷 처리 방법
RU2724790C1 (ru) Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине
RU2667052C2 (ru) Обнаружение вредоносного программного обеспечения с перекрестным обзором
CN108345795B (zh) 用于检测和分类恶意软件的系统和方法
RU2649794C1 (ru) Система и способ формирования журнала в виртуальной машине для проведения антивирусной проверки файла
Deng et al. Lexical analysis for the webshell attacks
RU2510530C1 (ru) Способ автоматического формирования эвристических алгоритмов поиска вредоносных объектов
RU2708355C1 (ru) Способ обнаружения вредоносных файлов, противодействующих анализу в изолированной среде
Shabtai et al. Evaluation of security solutions for Android systems
RU2592383C1 (ru) Способ формирования антивирусной записи при обнаружении вредоносного кода в оперативной памяти
RU2673407C1 (ru) Система и способ определения вредоносного файла
Jayarathna et al. Hypervisor-based Security Architecture to Protect Web Applications.
Skormin et al. Anomaly-Based Intrusion Detection Systems Utilizing System Call Data
華景煜 A Study on Anomaly-Based Countermeasures Against Malware Constructing Botnets
JP2016081348A (ja) 情報処理システム、情報処理装置、制御サーバ、生成サーバ、動作制御方法及び動作制御プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee