KR20140064648A - 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법 - Google Patents

안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법 Download PDF

Info

Publication number
KR20140064648A
KR20140064648A KR1020130139278A KR20130139278A KR20140064648A KR 20140064648 A KR20140064648 A KR 20140064648A KR 1020130139278 A KR1020130139278 A KR 1020130139278A KR 20130139278 A KR20130139278 A KR 20130139278A KR 20140064648 A KR20140064648 A KR 20140064648A
Authority
KR
South Korea
Prior art keywords
data
hash
engine
hardware
malware
Prior art date
Application number
KR1020130139278A
Other languages
English (en)
Other versions
KR101563059B1 (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 KR20140064648A publication Critical patent/KR20140064648A/ko
Application granted granted Critical
Publication of KR101563059B1 publication Critical patent/KR101563059B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/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
    • 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

데이터의 안티 바이러스(AV) 스캐닝을 위해 상기 데이터에 대하여 해쉬 매칭을 수행하고 해쉬 매칭 결과를 생성하는 하드웨어 기반 AV 엔진; 및 상기 해쉬 매칭 결과에 기반하여, 상기 데이터가 바이러스 패턴을 포함하는지 여부를 판정하는 AV 기능 모듈을 포함하는, 안티 멀웨어 장치가 제공된다.

Description

안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법{ANTI-MALWARE SYSTEM AND DATA PROCESSING METHOD IN SAME}
본 발명은 보안 솔루션(security solution)을 제공하는 데 사용되는 시스템에 관한 것으로서, 특히 하드웨어를 기반으로 한 안티 바이러스(Anti-Virus: AV) 엔진을 포함하는 시스템 및 그러한 시스템에서의 데이터 처리 방법에 관한 것이다.
인터넷의 확산과 함께, 컴퓨터 시스템에서 사용자의 의사에 반하여 악의적 활동이 수행될 수 있도록 설계된 멀웨어(malware) 내지 악성코드, 예를 들어 컴퓨터 바이러스(computer virus), 웜(worm), 트로이목마(trojan horse), 스파이웨어(spyware) 프로그램, 루트킷(rootkit), DDoS(Distributed Denial of Service) 공격 등의 수가 급격히 증가하고 있으며, 그에 따라 컴퓨터 시스템의 효과적인 보안과 관련된 안티 멀웨어(Anti-Malware: AM) 솔루션의 필요성도 점점 더 커지고 있다.
더욱이, 스마트폰과 태블릿 등의 모바일 장치가 널리 사용되면서 기존에 개인용 컴퓨터(PC)를 공격하던 멀웨어가 모바일 장치에도 심각한 폐해를 끼칠 우려가 높다. 따라서, 모바일 장치에서도 효율적인 AM 솔루션이 요구된다.
모바일 장치에서 사용되는 AM 솔루션들은 통상 소프트웨어를 기반으로 한것이었다. 이러한 소프트웨어 기반 솔루션에 따르면, AM 소프트웨어가 애플리케이션의 형태로 모바일 장치에 설치되어 멀웨어 탐지를 수행한다.
모바일 장치는 중앙처리장치 및 배터리와 같은 자원(resource)에 비교적 많은 제한이 있다. 그런데, 소프트웨어 기반 AM 솔루션들은 모바일 장치의 경우 그 제한된 리소스로 인하여 PC의 경우에 비해 기능들의 집합이 축소되기도 한다. 예컨대, 모바일 장치의 소프트웨어 기반 AM 솔루션은 모바일 장치에서 애플리케이션이 구동되거나 인터넷을 통해 모바일 장치에 파일이 다운로드되는 경우에만 멀웨어를 탐지하도록 프로그래밍되고, 멀웨어 위협에 대한 실시간 검사를 수행하지 않는다. 부하가 많은 실시간 검사 작업은 모바일 장치에서 수행되는 다른 작업들에게 방해가 될 것이기 때문이다.
본 발명의 실시예들에 따르면, 리소스가 제한된 컴퓨팅 장치에서 더욱 향상된 AV 성능이 제공될 수 있다.
본 발명의 실시예들에 따르면, AV 기능을 제공하기 위한 소정의 동작들이 하드웨어 기반의 AV 엔진에서 빠른 속도로 수행될 수 있고, 다양한 보안 솔루션이 제공되도록 다른 AV 동작들은 AV 엔진을 포함하는 플랫폼의 소프트웨어 레벨에서 구현될 수 있다.
일 실시예에 따르면, 데이터의 안티 바이러스(Anti-Virus: AV) 스캐닝을 위해 상기 데이터에 대하여 해쉬 매칭(hash matching)을 수행하고 해쉬 매칭 결과를 생성하는 하드웨어 기반 AV 엔진; 및 상기 해쉬 매칭 결과에 기반하여, 상기 데이터가 바이러스 패턴을 포함하는지 여부를 판정하는 AV 기능 모듈을 포함하는, 안티 멀웨어(Anti-Malware) 장치가 제공된다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 하드웨어 기반 AV 엔진은, 상기 데이터 중 제1 부분에 대한 제1 해쉬 매칭 동작을 수행하는 해쉬 로더(hash loader); 및 상기 제1 해쉬 매칭 동작에서 매칭이 발생함을 검출하는 것에 응답하여, 상기 데이터 중 제2 부분에 대한 제2 해쉬 매칭 동작을 수행하는 서픽스 매칭기(suffix matcher)를 포함하되, 상기 데이터 중 상기 제2 부분은 상기 데이터 중 상기 제1 부분에 후속한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 하드웨어 기반 AV 엔진은 또한, 상기 데이터에 대하여 메시지 다이제스트(message digest)를 구하는 AV 다이제스트 유닛을 포함한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 데이터 중 상기 제1 부분은 상기 해쉬 로더에 입력될 때 상기 AV 다이제스트 유닛에 입력되고, 상기 메시지 다이제스트를 구하는 것은 상기 제1 해쉬 매칭 동작 및 상기 제2 해쉬 매칭 동작 중 적어도 하나와 병렬로 진행된다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 AV 다이제스트 유닛이 상기 메시지 다이제스트를 구하고 있는 동안 상기 해쉬 로더가 상기 데이터 중 후속 부분에 대한 해쉬 매칭 동작을 수행하는 것을 방지하기 위해 상기 AV 다이제스트 유닛이 상기 해쉬 로더를 일시정지시킨다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 AV 기능 모듈은 또한 해쉬 매칭 데이터베이스 및 상기 바이러스 패턴 중 적어도 하나를 상기 하드웨어 기반 AV 엔진에 의한 사용을 위해 로딩한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 AV 기능 모듈은 펌웨어(firmware)로서 구현된다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 AV 기능 모듈은 상기 하드웨어 기반 AV 엔진과 협력하여 외부 CPU에 의해 실행되는 애플리케이션으로서 구현된다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 하드웨어 기반 AV 엔진은 CPU 및 메모리를 포함하고, 상기 AV 기능 모듈이 구현된 상기 펌웨어는 상기 메모리에 저장된다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 하드웨어 기반 AV 엔진은 프로세서와 통합(integrated)되고, 상기 프로세서는, 상기 프로세서를 일반 모드 및 보안 모드에 각각 대응하는 상이한 프로세서들로 가상화하는 보안 실행 환경 모듈을 포함한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 보안 모드에 대응하는 가상화된 프로세서는 상기 안티 멀웨어 장치에 의해 수신되는 애플리케이션을 실행하도록 구성된다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 안티 멀웨어 장치는 상기 프로세서와 연결된 저장장치를 더 포함하되, 상기 보안 실행 환경 모듈은 또한 상기 저장장치를 상기 일반모드 및 상기 보안 모드에 각각 대응하는 상이한 저장장치들로 가상화한다.
상기 안티 멀웨어 장치의 일 측면에 따르면, 상기 보안 모드에 대응하는 가상화된 저장장치는 상기 안티 멀웨어 장치와 연관된 라이브러리, 상기 안티 멀웨어 장치와 연관된 드라이버 및 상기 바이러스 패턴 중 적어도 하나를 저장한다.
다른 실시예에 따르면, 하드웨어 기반 AV 엔진으로써, 데이터의 안티 바이러스 스캐닝을 위해 상기데이터에 대하여 해쉬 매칭(hash matching)을 수행하는 단계; 해쉬 매칭 결과를 생성하는 단계; 및 AV 기능 모듈에서, 상기 해쉬 매칭 결과에 기반하여, 상기 데이터가 바이러스 패턴을 포함하는지 여부를 판정하는 단계를 포함하는, 안티 멀웨어 장치에서의 데이터 처리 방법이 제공된다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 데이터 처리 방법은, 상기 하드웨어 기반 AV 엔진의 해쉬 로더에서, 상기 데이터 중 제1 부분에 대한 제1 해쉬 매칭 동작을 수행하는 단계; 및 상기 하드웨어 기반 AV 엔진의 서픽스 매칭기에서, 상기 제1 해쉬 매칭 동작에서 매칭이 발생함을 검출하는 것에 응답하여, 상기 데이터 중 제2 부분에 대한 제2 해쉬 매칭 동작을 수행하는 단계를 포함하되, 상기 데이터 중 상기 제2 부분은 상기 데이터 중 상기 제1 부분에 후속한다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 데이터 처리 방법은, 상기 하드웨어 기반 AV 엔진의 AV 다이제스트 유닛에서, 상기 데이터에 대하여 메시지 다이제스트를 구하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 데이터 중 상기 제1 부분은 상기 해쉬 로더에 입력될 때 상기 AV 다이제스트 유닛에 입력되고, 상기 메시지 다이제스트를 구하는 것은 상기 제1 해쉬 매칭 동작 및 상기 제2 해쉬 매칭 동작 중 적어도 하나와 병렬로 진행된다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 데이터 처리 방법은, 상기 AV 다이제스트 유닛이 상기 메시지 다이제스트를 구하고 있는 동안 상기 해쉬 로더에서 상기 데이터 중 후속 부분에 대한 해쉬 매칭 동작을 수행하는 것을 방지하기 위해 상기 AV 다이제스트 유닛을 이용하여 상기 해쉬 로더를 일시정지시키는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 데이터 처리 방법은, 상기 하드웨어 기반 AV 엔진에 의한 사용을 위해 해쉬 매칭 데이터베이스 및 상기 바이러스 패턴 중 적어도 하나를 로딩하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 데이터 처리 방법은, 펌웨어로서 구현된 상기 AV 기능 모듈을 제공하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 데이터 처리 방법은, 상기 하드웨어 기반 AV 엔진과 협력하여 외부 CPU에 의해 실행되는 애플리케이션으로서 구현된 상기 AV 기능 모듈을 제공하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 하드웨어 기반 AV 엔진은 CPU 및 메모리를 포함하고, 상기 AV 기능 모듈을 제공하는 단계는 상기 펌웨어를 상기 메모리에 저장하는 단계를 포함한다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 데이터 처리 방법은, 보안 실행 환경 모듈을 이용하여, 상기 하드웨어 기반 AV 엔진과 통합된 프로세서를 일반 모드 및 보안 모드에 각각 대응하는 상이한 프로세서들로 가상화하는 단계를 더 포함하되, 상기 보안 실행 환경 모듈은 상기 프로세서에 포함된다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 데이터 처리 방법은, 상기 안티 멀웨어 장치를 이용하는 애플리케이션을 상기 보안 모드에 대응하는 가상화된 프로세서 상에서 실행하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 데이터 처리 방법은, 상기 보안 실행 환경 모듈에서, 상기 프로세서와 연결된 저장장치를 상기 일반모드 및 상기 보안 모드에 각각 대응하는 상이한 저장장치들로 가상화하는 단계를 더 포함한다.
상기 안티 멀웨어 장치에서의 데이터 처리 방법의 일 측면에 따르면, 상기 안티 멀웨어 장치에서의 데이터 처리 방법은, 상기 안티 멀웨어 장치와 연관된 라이브러리, 상기 안티 멀웨어 장치와연관된 드라이버 및 상기 바이러스 패턴 중 적어도 하나를 상기 보안 모드에 대응하는 가상화된 저장장치에 저장하는 단계를 더 포함한다.
또 다른 실시예에 따라 제공되는 컴퓨팅 장치는, CPU 코어; 및 AV 소프트웨어 애플리케이션이 실행되는 보안 플랫폼을 제공하는 안티 멀웨어 장치를 포함하되, 상기 안티 멀웨어 장치는, 데이터의 AV 스캐닝을 위해 상기 데이터에 대하여 해쉬 매칭을 수행하고 해쉬 매칭 결과를 생성하는 하드웨어 기반 AV 엔진; 및 상기 해쉬 매칭 결과에 기반하여, 상기 데이터가 바이러스 패턴을 포함하는지 여부를 판정하는 AV 기능 모듈을 포함한다.
본 발명의 여러 실시예들에 따른 구체적인 사항들은 이하의 상세한 설명 및 첨부된 도면들에 개시되어 있다.
소정의 실시예들에 따르면, 리소스가 제한된 컴퓨팅 장치에서 더욱 향상된 AV 성능이 제공된다.
소정의 실시예들에 따르면, AV 기능을 제공하기 위한 동작들이 하드웨어 기반의 AV 엔진에서 빠른 속도로 수행되고, 다양한 보안 솔루션이 제공되도록 다른 AV 동작들은 AV 엔진을 포함하는 플랫폼의 소프트웨어 레벨에서 구현된다.
도 1은 본 발명의 실시예에 따라 하드웨어를 기반으로 AM 기능을 수행하는 AM 시스템을 예시하는 도면이다.
도 2는 본 발명의 실시예에 따른 AM 모듈의 구성을 도시한다.
도 3은 본 발명의 실시예에 따라 프로세서와 AM 모듈을 통합하는 비격리 방식을 도시한다.
도 4는 본 발명의 실시예에 따라 프로세서와 AM 모듈을 통합하는 격리 방식을 도시한다.
도 5는 본 발명의 실시예에 따른 AM 시스템에 의해 제공되는 보안 플랫폼을 도시한다.
도 6은 본 발명의 실시예에 따른 하드웨어 기반 AV 엔진의 구성을 도시한다.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
도 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)은 소정의 데이터의 AV 스캐닝을 위해 그 데이터에 대하여 해쉬 매칭(hash matching)을 수행할 수 있다. FW 엔진(170)은 패킷을 필터링하는 방화벽(firewall: FW) 기능을 수행할 수 있다. 소정의 실시예에서, 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)에서 AV 기능이 수행될 수 있고, 이를 위해 플랫폼(500)은 소정의 AV 기능 모듈을 동작시킨다. AV 기능 모듈을 이용하여 플랫폼(500) 상에서 AV 소프트웨어 애플리케이션(예컨대, AV 애플리케이션(540))이 실행될 수 있다.
플랫폼(500)의 하드웨어 레벨에는 하드웨어 기반 AV 엔진(160)이 포함된다. 하드웨어 기반 AV 엔진(160)의 예시적인 구성에 대하여는 후술한다. 플랫폼(500)의 하드웨어 레벨에는 FW 엔진(170)이 더 포함될 수 있고, 추가적으로 암호화 기능을 수행하는 Crypto 엔진(310, 410, 420)이 포함될 수도 있다. 이하에서는 플랫폼(500)의 기능들 중 특히 AV 기능의 측면에서 플랫폼(500)의 구성을 기술한다.
플랫폼(500)의 하드웨어 레벨에는 AV 펌웨어(510)가 더 포함될 수 있다. AV 펌웨어(510)는 AV 기능을 위한 소정의 동작들을 수행하는 기능 모듈을 플랫폼(500)의 하드웨어 레벨에서 구현한다. AV 펌웨어(510)의 명령어들은 소정의 메모리 상에 저장될 수 있고, 소정의 프로세싱 유닛에 의해 실행될 수 있다. 예컨대, AV 엔진(160)을 포함하는 AM 모듈(150)이 프로세서(110)와 격리 방식으로 통합된 경우, AM 모듈(150)의 메모리(450) 상에 AV 펌웨어(510)의 명령어들이 저장될 수 있고 프로세서(110)의 CPU(440)에 의해 실행될 수 있다. 다른 예로서, AV 엔진(160)을 포함하는 AM 모듈(150)이 프로세서(110)와 비격리 방식으로 통합된 경우, 저장 매체(120) 상에 AV 펌웨어(510)의 명령어들이 저장될 수 있고 프로세서(110)의 CPU 코어(140)에 의해 실행될 수 있다. 다만, 전술한 예들은 예시적이며 이에 대한 변화가 이루어질 수 있음이 이해될 것이다.
플랫폼(500)의 소프트웨어 레벨은 드라이버(520), AV 라이브러리(530) 및 AV 애플리케이션(540)을 포함한다. 드라이버(520)의 명령어들, 라이브러리(530)의 명령어들 및 AV 애플리케이션(540)의 명령어들은 소정의 메모리(예컨대, 저장 매체(120)) 상에 저장될 수 있고 소정의 프로세싱 유닛(예컨대, 프로세서(110))에 의해 실행될 수 있다. AV 기능을 위한 소정의 동작들을 수행하는 기능 모듈이 드라이버(520) 및/또는 라이브러리(530)에 의해 소프트웨어로 구현된다. 또한, 드라이버(520)는 플랫폼(500)의 하드웨어 레벨과의 인터페이스를 제공한다. AV 애플리케이션(540)은 플랫폼(500)을 기반으로 AV 솔루션을 제공하기 위한 소프트웨어이다. 예컨대, AV 애플리케이션(540)은 라이브러리(530)에서 제공되는 AV용 API를 통해 플랫폼(500)을 사용 및/또는 제어할 수 있고, 콜백(callback)을 통해 플랫폼(500)으로부터의 출력을 수신할 수 있다.
플랫폼(500)에서, 펌웨어(510), 드라이버(520) 및/또는 라이브러리(530)는 신규 악성코드에 대한 대응과 보안성 강화를 위해 종종 업데이트가 필요한 동작들을 구현할 수 있다. AM 모듈(150)과 프로세서(100)의 관계의 긴밀도(예컨대, AM 모듈(150)을 프로세서(100)와 어떻게 통합되는지)에 따라, 플랫폼(500)에서 수행될 동작은 하드웨어 레벨에서 펌웨어로 구현될 수도 있고 소프트웨어 레벨에서 드라이버나 라이브러리로 구현될 수도 있다.
소정의 실시예에 따르면, 더욱 구체적으로 후술하는 바와 같이, 플랫폼(500) 상에서 하드웨어 기반의 AV 엔진(160)은 데이터의 AV 스캐닝을 위하여 그 데이터에 대한 해쉬 매칭 동작들을 수행한다.
AM 모듈(150)이 프로세서(110)와 격리 방식으로 통합된 경우, 위 동작들과 관련된 몇몇 프로세싱 동작들은 하드웨어 레벨에서 AV 펌웨어(510)에 의해 구현될 수 있다. 예컨대, 해쉬 매칭 동작들 이후에 수행되는 소정의 동작들이 AV 펌웨어(510)에 의해 구현될 수 있고, 다른 프로세싱 동작들은 라이브러리(530) 및/또는 드라이버(520)에 의해 구현될 수 있다. AV 펌웨어(510)로 구현되는 AV 기능 모듈의 동작은, 데이터에 대한 해쉬 매칭의 수행 결과에 기반하여 그 데이터가 바이러스 패턴(바이러스 시그니처)을 포함하는지 여부를 판정하는 풀 매칭(full matching) 및/또는 해쉬 매칭에 사용되는 데이터베이스와 풀 매칭에 사용되는 바이러스 패턴과 같은 데이터베이스의 로딩(loading)을 포함한다.
대안적으로, 풀 매칭 및/또는 데이터베이스 로딩을 포함하는 소정의 프로세싱 동작들이 드라이버(520) 및/또는 라이브러리(530)에 의해 소프트웨어로서 구현될 수 있다. 예컨대, AM 모듈(150)이 프로세서(110)와 비격리 방식으로 통합된 경우, 플랫폼(500)은 이와 같이 구성될 수 있다.
플랫폼(500)을 사용하는 보안 솔루션은 벤더마다 다양한 애플리케이션(예컨대, AV 애플리케이션(540))을 개발하는 과정에서 하드웨어 기반의 AM 모듈(150)의 이점을 최대한 활용하도록 할 수 있다. 따라서, 보안 솔루션에 대해, 하드웨어 기반의 성능 향상이 가능하면서도 그 고유한 보안 기능은 소프트웨어로서 구현될 수 있다.
나아가, 플랫폼(500)은 확장된 보안 구조를 수반할 수 있다. 이러한 플랫폼(500)을 제공하는 AM 시스템(100)을 포함하는 컴퓨팅 장치는 보안 측면에서 안정성이 향상된다.
일 실시예에서, 플랫폼(500)의 하드웨어 레벨에 보안 실행 환경을 제공하기 위한 모듈(550)이 플랫폼(500)의 하드웨어 레벨에 포함된다. 이러한 보안 실행 환경 모듈(550)은 AV 엔진(160)과 통합되는 프로세서(110)에 포함될 수 있다. 보안 실행 환경 모듈(550)은 플랫폼 인증, 무결성 검증을 위한 측정값 생성/저장, 데이터 저장의 보호 등을 지원할 수 있다. 보안 실행 환경 모듈(550)은 보안 실행 환경 드라이버(560) 및/또는 보안 실행 환경 라이브러리(570)를 통해 상위 레벨 기능(예컨대, 드라이버(520) 및/또는 라이브러리(530)에 의해 제공되는 AV 기능)과 인터페이스된다.
보안 실행 환경 모듈(550)은 프로세서(110)(의 CPU 코어(140) 및/또는 CPU(440))의 동작 환경이 일반 모드와 보안 모드를 구비하도록 프로세서(110)를 각 모드에 대응하는 두 프로세서들로 가상화한다. 플랫폼(500)의 소프트웨어 레벨의 애플리케이션들은 일반 모드 또는 보안 모드에 대응하는 가상화된 프로세서 상에서 실행된다. 즉, 플랫폼(500)의 소프트웨어 레벨의 애플리케이션들은 일반적인 애플리케이션 또는 보안과 관련된 애플리케이션으로 논리적으로 구분되는데, 일반 애플리케이션과 보안 관련 애플리케이션은 마치 별개의 두 프로세서 상에서 동작하는 것처럼 두 개의 가상화된 프로세서 상에서 각각 실행될 수 있다. 예컨대, AM 시스템(100)을 이용하는 AV 애플리케이션(540)은 보안 모드에 대응하는 가상화된 프로세서 상에서 실행된다.
보안 실행 환경 모듈(550)은 또한 프로세서(110)뿐만 아니라 프로세서(110)(의 CPU 코어(140) 및/또는 CPU(440))와 연결된 저장장치나 주변장치도 논리적으로 분할하여 각 모드에 대응하는 장치들로 가상화한다.
이러한 논리적 분할은 다음 사항들을 가능하게 한다. 우선, 보안이 중요한 부분, 예컨대 소정의 라이브러리 및/또는 드라이버(예컨대, 라이브러리(530) 및/또는 드라이버(520)), 키, FW 룰, 바이러스 시그니처 데이터베이스 등이 보안 모드에 대응하는 가상화된 저장매체에 저장될 수 있다. 저장된 라이브러리 및/또는 드라이버가 설치되거나 업데이트될 때, 전자서명과 같은 메커니즘을 통해 무결성 검증 프로세스를 실행함으로써 그 라이브러리 및/또는 드라이버의 내용이 변조 또는 훼손되거나 업데이트가 제대로 되지 않는 것을 방지할 수 있다. 마찬가지로, 바이러스 시그니처 데이터베이스 및 FW 룰이 업데이트될 때, 그 내용의 변조 및 부적절한 업데이트를 방지할 수 있다. 신뢰할 만한 업데이트 서버를 가장한 소스로 인한 라이브러리, 드라이브, FW 룰 및 바이러스 시그니처 데이터베이스의 부적절한 업데이트도 방지할 수 있다. 또한, 일반 모드에서 동작하는 애플리케이션을 인증하기 위한 프로세스를 보안 모드에서 실행시킴으로써 그 애플리케이션의 변조를 방지할 수 있다.
도 6은 본 발명의 실시예에 따른 하드웨어 기반 AV 엔진의 구성을 도시한다.
도 6에 도시된 하드웨어 구성에 따르면, AV 엔진(160)은 레지스터(610), RDMA 유닛(620), 텍스트 로더(text loader)(630), DMA 버퍼(632), 해쉬 로더(hash loader)(640), 텍스트 버퍼(642), 쉬프트 테이블(shift table)(650), 해쉬 버퍼(662), 병렬 CRC 유닛(670), CRC 버퍼(672), 서픽스 매칭기(suffix matcher)(680), 서픽스 버퍼(682) 및 AV 다이제스트 유닛(690)을 포함한다. 텍스트 로더(630)는 DMA 버퍼(632)를 포함할 수 있다. 해쉬 로더(640)는 텍스트 버퍼(642)를 포함할 수 있다. DMA 버퍼(632), 텍스트 버퍼(642), 해쉬 버퍼(660), CRC 버퍼(672) 및 서픽스 버퍼(682) 중 적어도 하나는 FIFO(First-In First-Out) 타입의 큐(queue)일 수 있다.
레지스터(610)는 AV 엔진(160)의 상태를 모니터링하고 그 동작을 제어하며 내부에서 수행되는 동작들의 결과를 저장한다.
스캔될 데이터는 펌웨어(예컨대, AV 펌웨어(510))나 드라이버(예컨대, 드라이버(520)) 및/또는 라이브러리(예컨대, 라이브러리(530))가 미리 설정된 크기의 단위(즉, 스캔 단위)로 메모리(예컨대, 저장매체(120) 또는 메모리(450))에 읽고 그 데이터가 메모리에 저장된 위치를 AV 엔진(160)에 전달한다. 예를 들어, 레지스터(610) 내의 컨트롤 레지스터를 통해 스캔의 시작이 통지되면, AV 엔진(160)의 텍스트 로더(630)는 RDMA 유닛(620)을 통하여 스캔될 데이터가 저장된 위치에 접근하여 저장된 데이터를 로딩한다. 판독된 데이터는 텍스트 로더(630)의 DMA 버퍼(632)를 거쳐 순차적으로 텍스트 버퍼(642)에 저장된다.
RDMA 유닛(620)을 통해 해쉬 로더(642)에 의해 사용될 패턴 데이터베이스가 AV 엔진(160) 외부의 메모리로부터 쉬프트 테이블(650)에 전송/로딩된다. 이러한 데이터베이스 로딩은 사전에 펌웨어(예컨대, AV 펌웨어(510))나 드라이버(예컨대, 드라이버(520)) 및/또는 라이브러리(예컨대, 라이브러리(530))에 의해 수행될 수 있다.
해쉬 로더(640)는 텍스트 버퍼(642)에 저장된 데이터에 대한 해쉬 매칭(hash matching)을 수행한다. 구체적으로, 해쉬 로더(640)는 그 데이터의 해쉬 매칭을 위하여 그 데이터의 일부분에 대하여 소정의 해쉬 매칭 동작을 수행한다. 이러한 해쉬 매칭 동작은 쉬프트 테이블(650)의 패턴 데이터베이스를 이용하여 수행된다. 예컨대, 텍스트 버퍼(642) 상의 매 바이트(예컨대, i 번째 바이트)에 대하여, 해쉬 로더(640)는 그 바이트부터 연속된 세 바이트(i 번째 바이트부터 i+2 번째 바이트까지)에 대해 해쉬 매칭을 수행한다. 해쉬 로더(640)는 이 해쉬 매칭 동작을 수행하여 그 해쉬 매칭 동작 중 매칭이 발생한 매칭 위치를 포함하는 정보를 해쉬 버퍼(662)에 저장하고, 저장된 정보는 서픽스 매칭기(680)로 전달된다. 이와 병행하여, 병렬 CRC 유닛(670)은 CRC(예컨대, 32 비트 CRC)를 계산한다.
병렬 CRC 유닛(670)에 의해 산출된 CRC 값은 CRC 버퍼(672)에 저장되고, 해쉬 버퍼(662)에 저장된 값과 함께 서픽스 매칭기(680)에 입력된다. 해쉬 로더(630)에 의해 수행된 해쉬 매칭 동작의 매칭 결과가 해쉬 버퍼(662)에 저장된 경우, 서픽스 매칭기(680)는 해쉬 로더(640)가 해쉬 매칭 동작을 수행한 부분에 후속하는 부분(즉, 해쉬 버퍼(662)에 저장된 매칭 위치에 이어지는 텍스트)에 대해 추가적인 해쉬 매칭 동작을 수행하고 추가적인 해쉬 매칭 동작 중 다른 매칭이 일어난 위치를 포함하는 매칭 결과를 서픽스 버퍼(682)에 저장한다. 이러한 추가적인 해쉬 매칭 동작은 서픽스 테이블(미도시)에 저장된 추가적인 패턴 데이터베이스를 이용한다. 사전에 서픽스 테이블의 주소가 AV 엔진(160)에 설정된 후, 서픽스 매칭기(680)에서 RDMA 유닛(620)을 통하여 그 주소로부터 추가적인 패턴 데이터베이스가 로딩된다.
소정의 실시예에 따르면, 텍스트 로더(630) 및 서픽스 매칭기(680) 사이에서 동작하는 해쉬 로더(640), 해쉬 버퍼(662), 병렬 CRC 유닛(670) 및 CRC 버퍼(672)의 집합은 확장될 수 있는데, 예컨대 그러한 집합들 복수 개가 병렬 구조를 가질 수 있다.
추가적으로, AV 다이제스트 유닛(690)은 지정된 해쉬 알고리즘에 따라 텍스트 버퍼(642) 내의 데이터(의 전부 또는 특정 구간)에 대한 메시지 다이제스트(message digest)를 계산할 수 있다. AV 다이제스트 유닛(690)은 다이제스트를 구하는 알고리즘으로서 MD5, SHA1, SHA256, SHA284 및 SHA512 중 적어도 하나를 지원할 수 있다. 계산된 다이제스트는 필요에 따라 API(Application Programming Interface)를 통하여 액세스될 수 있다.
AV 다이제스트 유닛(690)에서 메시지 다이제스트를 구하는 것은 데이터의AV 스캐닝과 병렬로 진행될 수 있다. 이를 위해, 그 데이터 중 소정의 부분이 해쉬 로더(640)에 입력될 때 그 부분은 AV 다이제스트 유닛(690)에도 입력될 수 있다. 또한, AV 다이제스트 유닛(690)이 메시지 다이제스트를 구하는 동안 해쉬 로더(640)가 그 데이터 중 다음 부분에 대한 해쉬 매칭 동작을 수행하는 것을 방지하기 위해 AV 다이제스트 유닛(690)은 해쉬 로더(640)를 일시정지시킬 수 있다.
서픽스 버퍼(682)에 저장된 매칭 결과들에 대해서는 풀 매칭이 수행될 수 있다. 소정의 실시예들에 따르면, 서픽스 버퍼(682)에 저장된 서픽스 매칭 결과에 기반하여, 해쉬 매칭된 데이터가 바이러스 데이터베이스의 패턴을 포함하는지(즉, 해쉬 매칭된 데이터가 바이러스 패턴과 완전히 매칭되는지) 여부가 드라이버, 라이브러리 또는 펌웨어에 의해 판별된다. 예컨대, 이러한 풀 매칭은 플랫폼(500)의 소프트웨어 레벨에서 드라이버(520) 및/또는 라이브러리(530)으로 구현되거나, 플랫폼(500)의 하드웨어 레벨에서 AV 펌웨어(510)로 구현될 수 있다.
한편, 해쉬 로더(640) 및 서픽스 매칭기(680)에 의해 해쉬 매칭 동작들이 수행되는 도중에 i번째 위치의 바이트에서 미스매치(mismatch)가 발생하면, 현재 위치 i에 대한 검사는 중단되고, 다음 위치 i+1에 대하여 검사가 진행된다. 예컨대, 해쉬 로더(640)에 의해 i+1 번째 바이트부터 i+3 번째 바이트까지의 3 바이트에 대한 해쉬 매칭 동작이 수행되고, 서픽스 매칭기(680)에 의해 후속 텍스트에 대한 추가적인 해쉬 매칭 동작이 수행될 수 있다.
AV 엔진(160)은 펌웨어(예컨대, AV 펌웨어(510))나 드라이버(예컨대, 드라이버(520)) 및/또는 라이브러리(예컨대, 라이브러리(530))로부터 마지막 바이트에 대하여 통지를 받을 때까지 위 과정을 반복한다.
이하에서, AV 엔진(160)에서 데이터를 처리하는 기능적 블록들에 대하여 더 구체적으로 예시한다.
RDMA 유닛
도 6에서, RDMA 유닛(620)은 두 개의 Read DMA 채널(CH0 및 CH1)을 구비하여 저장된 데이터를 교번적으로 읽을 수 있다. 두 채널 중 하나(예컨대, CH0)는 외부의 메모리로부터 데이터를 판독하여 DMA 버퍼(630) 또는 쉬프트 테이블(650)에 저장하는 데 사용되고, 다른 하나(예컨대, CH1)는 서픽스 매칭기(680)에서 매칭이 수행될 때 외부의 메모리의 패턴 데이터베이스를 참조하는 데 사용된다. RDMA 유닛(620)은 두 채널을 통해 외부의 메모리로부터 워드 단위로 데이터를 판독하되, 정렬(align)되지 않은 소스 주소에 대해서도 동작할 수 있다. 예컨대, RDMA 유닛(620)은 16 버스트 모드까지 지원할 수 있다. RDMA 유닛(620)은 두 채널(CH0 및 CH1)이 동시에 DMA 요청을 하는 경우 한쪽 채널(예컨대, CH1)을 우선적으로 처리할 수 있다.
텍스트 로더
텍스트 로더(630)는 RDMA 유닛(620)에 의해 판독되어 DMA 버퍼(632)에 저장된 데이터를 3 바이트 구조로 변환하여 해쉬 로더(640)의 텍스트 버퍼(642)에 추가한다. 예컨대, AV 엔진(160) 내의 버퍼는 32비트(4 바이트) 단위로 데이터를 판독할 수 있다고 가정하자. 2048 개의 바이트의 입력 텍스트가 스캔되는 경우, 텍스트 로더(630)는 4 바이트 단위로 입력되는 텍스트에 대해 3 바이트에 해당하는 해쉬 윈도우(hash window)를 한 바이트씩 이동시켜 2048 개의 3 바이트 단위들을 생성한다. 2048 바이트의 전체 텍스트 중 2047 번째와 2048 번째 바이트는 3 바이트의 해쉬 윈도우를 구성하는 데 각각 한 바이트 및 두 바이트가 부족하다. 따라서, 2047 번째 바이트의 경우 해쉬 윈도우의 마지막 한 바이트에 더미 바이트(dummy byte)를 삽입하고, 2048 번째 바이트의 경우 해쉬 윈도우의 마지막 두 바이트에 더미 바이트를 삽입하여 3 바이트 구조를 완성한다. 각 더미 바이트의 값은 8?FF일 수 있다.
해쉬 로더
해쉬 로더(640)는 텍스트 버퍼(642)에 채워진 3 바이트 구조의 데이터에 대하여 해쉬를 구하고 쉬프트 테이블(650)을 이용하여 그 데이터와 소정의 패턴 간의 매치가 일어나는지 검사한다. 예컨대, 쉬프트 테이블(650)은 1 비트의 엔트리를 최대 65536 개 저장하고 있는 해쉬 테이블이다. 해쉬 로더(640)는 3 바이트 데이터로부터 구한 해쉬 값으로 쉬프트 테이블 내의 특정 비트(bit)를 인덱싱(indexing)하고, 만약 그 비트에 저장된 값이 0이면 매치로 판단하고 1이면 미스매치로 판단한다. 매치가 발생할 경우, 그 결과는 해쉬 버퍼(662)에 저장되어 서픽스 매칭기(680)로 전달된다. 이후, 서픽스 매칭기(680)는 3 바이트 데이터 이후에 이어지는 데이터에 대한 매칭 동작을 계속해서 진행한다. 예컨대, 해쉬 버퍼(662)에 저장되는 데이터는 다음 표 1과 같다.
이름 비트 수 기능
Hash_value 16 텍스트 버퍼(642)에서 읽은 3 바이트 데이터의 해쉬 값
TEXT_offset 21 텍스트 버퍼(642)에서 매치가 일어난 위치의 오프셋
해쉬 로더(640)에서 매치가 일어나지 않은 경우, 서픽스 매칭기(680)에 의한 후속 해쉬 매칭이 진행되지 않고, 해쉬 로더(640)는 다음 해쉬 윈도우의 텍스트에 대해 검사를 계속한다.
서픽스 매칭기
서픽스 매칭기(680)는 해쉬 버퍼(662) 및 CRC 버퍼(672)에 저장된 데이터를 판독하고, 해쉬 버퍼(662)에 저장된 매칭 위치에 이어지는 일정 크기의 텍스트를 RDMA 유닛(620)을 통해 수신하여 그 텍스트에 대해 서픽스 테이블 상의 바이러스 패턴과의 해쉬 매칭을 수행한다. 서픽스 매칭기(680)는 매칭이 일어난 경우 매칭 위치를 포함한 결과를 서픽스 버퍼(682)에 추가한다. 예컨대, 서픽스 매칭 결과는 50 비트의 데이터일 수 있는데, 이는 2 개의 25 비트 데이터로 나뉘어 서픽스 버퍼(682)에 추가될 수 있다. 2 개의 25 비트 데이터 중 하나는 해쉬 값과 매칭되는 실제 바이러스 패턴이 저장되어 있는 데이터베이스의 엔트리에 대한 인덱스이고, 다른 하나는 매칭이 일어난 텍스트 위치에 대하여 그 텍스트가 저장된 메모리 상의 오프셋이다. 이후, 서픽스 버퍼(682)에서 판독되는 결과 데이터는 32 비트로 확장되어 전달될 수 있다. 예컨대, 펌웨어(510) 또는 라이브러리(530)에 의해 풀 매칭이 수행되는 경우, 이러한 풀 매칭을 위해 32 비트의 결과 데이터가 사용됨으로써, 바이러스 패턴 데이터베이스가 로딩되고 오프셋으로부터 텍스트가 판독될 수 있다.
병렬 CRC 유닛
병렬 CRC 유닛(670)은 텍스트 로더(630)의 스캔 속도와 동일한 속도로 동작할 수 있다. 병렬 CRC 유닛(670)은 텍스트 로더(630)가 텍스트 버퍼(642)에 3 바이트 데이터를 저장할 때마다 그 3 바이트 데이터를 상위 24 비트로 하고 하위 8 비트를 0으로 채워서 구성한 32 비트 입력에 대한 32 비트 CRC를 계산한다. 계산된 CRC는 해쉬 로더(640)에서 매치가 발생하여 해쉬 버퍼(662)에 그 결과가 추가될 때마다 CRC 버퍼(672)에 추가된다.
예컨대, 해쉬 로더(640)에 의해 수행되는 해쉬 매칭 동작에서 텍스트 버퍼(642)의 N 번째 3 바이트 구조의 데이터에서 매치가 발생한 경우, 병렬 CRC 유닛(670)은 N에서 N+3까지 총 4 개의 3 바이트 구조에 대한 CRC를 CRC 버퍼(672)에 저장하여 서픽스 매칭기(680)에 전달한다. 이때, 각 CRC의 상위 16 비트만을 CRC 버퍼(672)에 저장하고 하위 16 비트는 버릴 수 있고, 그 반대로도 가능하다. 결국, 해쉬 로더(640)에서 매치가 한 번 발생할 때마다 CRC 버퍼(672)에 6 바이트 길이의 레코드가 하나씩 추가된다. 그러므로, CRC 버퍼(672)에 입력된 각각의 레코드가 해쉬 버퍼(662)의 어느 레코드에 해당하는 것인지 서픽스 매칭기(680)가 알 수 있다.
AV 다이제스트 유닛
AV 다이제스트 유닛(690)은 입력 텍스트에 대한 스캔이 진행되는 중에 입력 텍스트 전체 또는 일부 구간에 대한 메시지 다이제스트를 구한다. AV 다이제스트 유닛(690)은 사용자가 필요에 따라 활성화시킬 수 있다.
AV 다이제스트 유닛(690)이 활성화된 경우, 해쉬 로더(640)가 해시를 구하기 위해 텍스트 버퍼(642)에서 읽은 데이터를 AV 다이제스트 유닛(690)에도 입력하여 스캔 작업과 다이제스트를 구하는 작업을 병행시킬 수 있다. 다이제스트 계산은 텍스트의 스캔이 진행됨에 따라 점진적으로 진행되되, 스캔이 끝날 때 다이제스트가 제공될 수 있다. 예컨대, AV 다이제스트 유닛(690)의 동작 속도가 해쉬 로더(640)보다 느린 경우, AV 다이제스트의 계산이 끝나지 않은 상황에서 해쉬 로더(640)가 입력 텍스트의 다음 위치를 스캔할 준비가 될 수 있다. 이러한 경우에는 AV 다이제스트 유닛(690)은 홀드(HOLD) 신호를 생성하여 해쉬 로더(640)를 일시정지시킬 수 있다.
AV 다이제스트 유닛(690)에서 계산된 다이제스트 값은 레지스터(610)에 저장된다. AV 다이제스트 유닛(690)은 MD5, SHA1, SHA256, SHA384 및/또는 SHA512과 같은 알고리즘을 지원할 수 있다. 이러한 알고리즘들 중 MD5, SHA1 및 SHA256은 64 바이트 단위로 입력 데이터를 모아서 계산하는 방식이고, SHA384 및 SHA512는 128 바이트 단위로 계산하는 방식이다. 따라서, 입력 텍스트의 길이가 어떠한지에 따라, 그 입력 텍스트가 AV 다이제스트를 계산하기 위한 단위 블록을 다 채우지 못할 수 있다. 패딩 데이터(padding data)를 입력할 때 그 단위 블록은 완전히 채워질 있다.
전술한 하드웨어 기반의 AM 시스템은 다양한 모바일 장치, PC 또는 임베디드 장치에서 구현될 수 있다. 특히, AM 시스템을 포함하는 모바일 장치는 다음과 특징들을 가질 수 있다. AM 시스템에 의해 제공되는 플랫폼 상에서 AV 솔루션은 풀 스캔(full scan) 기능과 여러 엔진을 사용할 수 있는바, PC 수준의 악성코드 검출율을 가질 수 있다. 소프트웨어 기반의 모바일 보안 솔루션이 애플리케이션을 통한 악성 코드 감염을 주로 차단하는 반면, 위와 같은 플랫폼에서는 실시간 네트워크 감시와 차단 기능들이 제공될 수 있는바, 네트워크를 통해 애플리케이션이 업데이트되거나 다운로드되는 경우에도 악성 코드 감염을 차단할 수 있다. 하드웨어를 기반으로 제공되는 바이러스 스캔 기능은 소프트웨어 기반 솔루션에 비해 빠르고, 하드웨어를 기반으로 한 보안 솔루션은 소프트웨어 기반의 방화벽에 비해 FW 규칙이 증가될 수 있어 패킷 처리량의 감소를 방지하고 빠른 네트워크 전송 속도를 보장할 수 있다. 또한, 소프트웨어 기반의 보안 솔루션을 사용할 때보다, 모바일 장치의 배터리 사용이 감소될 수 있다. 나아가, 전술한 플랫폼 상에서는 데이터베이스의 업데이트 및 펌웨어의 업데이트에 의해 손쉽게 새로운 악성코드에 대응할 수 있고, 확장성 측면에서도 다양한 벤더들에 의해 바이러스 데이터베이스가 적용될 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 소정의 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 상기 컴퓨터 판독가능 저장 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것일 수 있다. 컴퓨터 판독가능 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다.
그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
160: AV 엔진
510: AV 펌웨어
520: 드라이버
530: 라이브러리
540: AV 애플리케이션

Claims (27)

  1. 데이터의 안티 바이러스(Anti-Virus: AV) 스캐닝을 위해 상기 데이터에 대하여 해쉬 매칭(hash matching)을 수행하고 해쉬 매칭 결과를 생성하는 하드웨어 기반 AV 엔진; 및
    상기 해쉬 매칭 결과에 기반하여, 상기 데이터가 바이러스 패턴을 포함하는지 여부를 판정하는 AV 기능 모듈을 포함하는,
    안티 멀웨어(Anti-Malware) 장치.
  2. 제1항에 있어서,
    상기 하드웨어 기반 AV 엔진은,
    상기 데이터 중 제1 부분에 대한 제1 해쉬 매칭 동작을 수행하는 해쉬 로더(hash loader); 및
    상기 제1 해쉬 매칭 동작에서 매칭이 발생함을 검출하는 것에 응답하여, 상기 데이터 중 제2 부분에 대한 제2 해쉬 매칭 동작을 수행하는 서픽스 매칭기(suffix matcher)를 포함하되,
    상기 데이터 중 상기 제2 부분은 상기 데이터 중 상기 제1 부분에 후속하는,
    안티 멀웨어 장치.
  3. 제2항에 있어서,
    상기 하드웨어 기반 AV 엔진은 또한,
    상기 데이터에 대하여 메시지 다이제스트(message digest)를 구하는 AV 다이제스트 유닛을 포함하는,
    안티 멀웨어 장치.
  4. 제3항에 있어서,
    상기 데이터 중 상기 제1 부분은 상기 해쉬 로더에 입력될 때 상기 AV 다이제스트 유닛에 입력되고, 상기 메시지 다이제스트를 구하는 것은 상기 제1 해쉬 매칭 동작 및 상기 제2 해쉬 매칭 동작 중 적어도 하나와 병렬로 진행되는,
    안티 멀웨어 장치.
  5. 제3항에 있어서,
    상기 AV 다이제스트 유닛이 상기 메시지 다이제스트를 구하고 있는 동안 상기 해쉬 로더가 상기 데이터 중 후속 부분에 대한 해쉬 매칭 동작을 수행하는 것을 방지하기 위해 상기 AV 다이제스트 유닛이 상기 해쉬 로더를 일시정지시키는,
    안티 멀웨어 장치.
  6. 제1항에 있어서,
    상기 AV 기능 모듈은 또한 해쉬 매칭 데이터베이스 및 상기 바이러스 패턴 중 적어도 하나를 상기 하드웨어 기반 AV 엔진에 의한 사용을 위해 로딩하는,
    안티 멀웨어 장치.
  7. 제1항에 있어서,
    상기 AV 기능 모듈은 펌웨어(firmware)로서 구현되는,
    안티 멀웨어 장치.
  8. 제1항에 있어서,
    상기 AV 기능 모듈은 상기 하드웨어 기반 AV 엔진과 협력하여 외부 CPU에 의해 실행되는 애플리케이션으로서 구현되는,
    안티 멀웨어 장치.
  9. 제7항에 있어서,
    상기 하드웨어 기반 AV 엔진은 CPU 및 메모리를 포함하고,
    상기 AV 기능 모듈이 구현된 상기 펌웨어는 상기 메모리에 저장되는,
    안티 멀웨어 장치.
  10. 제1항에 있어서,
    상기 하드웨어 기반 AV 엔진은 프로세서와 통합(integrated)되고,
    상기 프로세서는, 상기 프로세서를 일반 모드 및 보안 모드에 각각 대응하는 상이한 프로세서들로 가상화하는 보안 실행 환경 모듈을 포함하는,
    안티 멀웨어 장치.
  11. 제10항에 있어서,
    상기 보안 모드에 대응하는 가상화된 프로세서는 상기 안티 멀웨어 장치에 의해 수신되는 애플리케이션을 실행하도록 구성되는,
    안티 멀웨어 장치.
  12. 제10항에 있어서,
    상기 프로세서와 연결된 저장장치를 더 포함하되,
    상기 보안 실행 환경 모듈은 또한 상기 저장장치를 상기 일반 모드 및 상기 보안 모드에 각각 대응하는 상이한 저장장치들로 가상화하는,
    안티 멀웨어 장치.
  13. 제12항에 있어서,
    상기 보안 모드에 대응하는 가상화된 저장장치는 상기 안티 멀웨어 장치와 연관된 라이브러리, 상기 안티 멀웨어 장치와 연관된 드라이버 및 상기 바이러스 패턴 중 적어도 하나를 저장하는,
    안티 멀웨어 장치.
  14. 하드웨어 기반 AV 엔진으로써, 데이터의 안티 바이러스 스캐닝을 위해 상기 데이터에 대하여 해쉬 매칭(hash matching)을 수행하는 단계;
    해쉬 매칭 결과를 생성하는 단계; 및
    AV 기능 모듈에서, 상기 해쉬 매칭 결과에 기반하여, 상기 데이터가 바이러스 패턴을 포함하는지 여부를 판정하는 단계를 포함하는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  15. 제14항에 있어서,
    상기 해쉬 매칭을 수행하는 단계는,
    상기 하드웨어 기반 AV 엔진의 해쉬 로더에서, 상기 데이터 중 제1 부분에 대한 제1 해쉬 매칭 동작을 수행하는 단계; 및
    상기 하드웨어 기반 AV 엔진의 서픽스 매칭기에서, 상기 제1 해쉬 매칭 동작에서 매칭이 발생함을 검출하는 것에 응답하여, 상기 데이터 중 제2 부분에 대한 제2 해쉬 매칭 동작을 수행하는 단계를 포함하되,
    상기 데이터 중 상기 제2 부분은 상기 데이터 중 상기 제1 부분에 후속하는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  16. 제15항에 있어서,
    상기 하드웨어 기반 AV 엔진의 AV 다이제스트 유닛에서, 상기 데이터에 대하여 메시지 다이제스트를 구하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  17. 제16항에 있어서,
    상기 데이터 중 상기 제1 부분은 상기 해쉬 로더에 입력될 때 상기 AV 다이제스트 유닛에 입력되고, 상기 메시지 다이제스트를 구하는 것은 상기 제1 해쉬 매칭 동작 및 상기 제2 해쉬 매칭 동작 중 적어도 하나와 병렬로 진행되는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  18. 제16항에 있어서,
    상기 AV 다이제스트 유닛이 상기 메시지 다이제스트를 구하고 있는 동안 상기 해쉬 로더에서 상기 데이터 중 후속 부분에 대한 해쉬 매칭 동작을 수행하는 것을 방지하기 위해 상기 AV 다이제스트 유닛을 이용하여 상기 해쉬 로더를 일시정지시키는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  19. 제14항에 있어서,
    상기 하드웨어 기반 AV 엔진에 의한 사용을 위해 해쉬 매칭 데이터베이스 및 상기 바이러스 패턴 중 적어도 하나를 로딩하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  20. 제14항에 있어서,
    펌웨어로서 구현된 상기 AV 기능 모듈을 제공하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  21. 제14항에 있어서,
    상기 하드웨어 기반 AV 엔진과 협력하여 외부 CPU에 의해 실행되는 애플리케이션으로서 구현된 상기 AV 기능 모듈을 제공하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 패킷 처리 방법.
  22. 제20항에 있어서,
    상기 하드웨어 기반 AV 엔진은 CPU 및 메모리를 포함하고,
    상기 AV 기능 모듈을 제공하는 단계는 상기 펌웨어를 상기 메모리에 저장하는 단계를 포함하는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  23. 제14항에 있어서,
    보안 실행 환경 모듈을 이용하여, 상기 하드웨어 기반 AV 엔진과 통합된 프로세서를 일반 모드 및 보안 모드에 각각 대응하는 상이한 프로세서들로 가상화하는 단계를 더 포함하되,
    상기 보안 실행 환경 모듈은 상기 프로세서에 포함되는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  24. 제23항에 있어서,
    상기 안티 멀웨어 장치를 이용하는 애플리케이션을 상기 보안 모드에 대응하는 가상화된 프로세서 상에서 실행하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  25. 제23항에 있어서,
    상기 보안 실행 환경 모듈에서, 상기 프로세서와 연결된 저장장치를 상기 일반 모드 및 상기 보안 모드에 각각 대응하는 상이한 저장장치들로 가상화하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  26. 제25항에 있어서,
    상기 안티 멀웨어 장치와 연관된 라이브러리, 상기 안티 멀웨어 장치와 연관된 드라이버 및 상기 바이러스 패턴 중 적어도 하나를 상기 보안 모드에 대응하는 가상화된 저장장치에 저장하는 단계를 더 포함하는,
    안티 멀웨어 장치에서의 데이터 처리 방법.
  27. 컴퓨팅 장치로서,
    CPU 코어; 및
    AV 소프트웨어 애플리케이션이 실행되는 보안 플랫폼을 제공하는 안티 멀웨어 장치를 포함하되,
    상기 안티 멀웨어 장치는,
    데이터의 AV 스캐닝을 위해 상기 데이터에 대하여 해쉬 매칭을 수행하고 해쉬 매칭 결과를 생성하는 하드웨어 기반 AV 엔진; 및
    상기 해쉬 매칭 결과에 기반하여, 상기 데이터가 바이러스 패턴을 포함하는지 여부를 판정하는 AV 기능 모듈을 포함하는,
    컴퓨팅 장치.
KR1020130139278A 2012-11-19 2013-11-15 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법 KR101563059B1 (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
KR20140064648A true KR20140064648A (ko) 2014-05-28
KR101563059B1 KR101563059B1 (ko) 2015-10-23

Family

ID=50731457

Family Applications (2)

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

Family Applications After (1)

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

Country Status (3)

Country Link
US (2) US9118625B2 (ko)
KR (2) KR101563059B1 (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 北京安天网络安全技术有限公司 物联网设备的网络安全防护方法及物联网设备

Family Cites Families (112)

* 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
US20110238855A1 (en) * 2000-09-25 2011-09-29 Yevgeny Korsunsky 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
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
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
RU2005115094A (ru) 2002-11-18 2006-01-20 Арм Лимитед (Gb) Отображение адресов виртуальной памяти на физические адреса в системе с наличием защищенного домена и незащищенного домена
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
AU2005328336B2 (en) * 2004-12-22 2011-09-15 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
AU2006230171B2 (en) * 2005-03-28 2012-06-21 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
KR100750377B1 (ko) * 2006-05-09 2007-08-17 한정보통신 주식회사 SoC기반의 네트워크 보안 시스템 및 그 방법
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
US8205035B2 (en) * 2009-06-22 2012-06-19 Citrix Systems, Inc. Systems and methods for integration between application firewall and caching
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
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
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
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
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
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
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
US8640216B2 (en) * 2009-12-23 2014-01-28 Citrix Systems, Inc. Systems and methods for cross site forgery protection
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
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
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
US9223969B2 (en) * 2010-06-07 2015-12-29 Samsung Sds Co., Ltd. Anti-malware system and operating method thereof
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 思杰***有限公司 用于通过多连接中间装置跟踪应用层流的***和方法
WO2012162419A2 (en) * 2011-05-24 2012-11-29 Citrix Systems, Inc. Systems and methods for analyzing network metrics
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
US8966024B2 (en) * 2011-11-15 2015-02-24 Nicira, Inc. Architecture of networks with middleboxes
US8892858B2 (en) * 2011-12-29 2014-11-18 Intel Corporation Methods and apparatus for trusted boot optimization
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

Also Published As

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

Similar Documents

Publication Publication Date Title
US9565214B2 (en) Real-time module protection
US11269996B2 (en) System and method for protecting memory pages
JP6842367B2 (ja) ファイル中の悪意のあるコードの検出システム及び方法
KR101880375B1 (ko) 네트워크 활동을 보이는 실행파일들의 분리
US9087188B2 (en) Providing authenticated anti-virus agents a direct access to scan memory
US7836504B2 (en) On-access scan of memory for malware
US9135443B2 (en) Identifying malicious threads
US8214900B1 (en) Method and apparatus for monitoring a computer to detect operating system process manipulation
US8893306B2 (en) Resource management and security system
US20160283721A1 (en) Out-of-band host os boot sequence verification
US11363058B2 (en) Detecting execution of modified executable code
US8495750B2 (en) Filesystem management and security system
US20130312099A1 (en) Realtime Kernel Object Table and Type Protection
KR101563059B1 (ko) 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법
RU2724790C1 (ru) Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине
US20130276123A1 (en) Mechanism for providing a secure environment for acceleration of software applications at computing devices
Tian et al. A policy‐centric approach to protecting OS kernel from vulnerable LKMs
RU2609761C1 (ru) Способ выполнения кода в режиме гипервизора
KR20110048014A (ko) 컴퓨터 플랫폼에서의 방법 및 장치

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
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee