KR102029465B1 - 검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법 - Google Patents

검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법 Download PDF

Info

Publication number
KR102029465B1
KR102029465B1 KR1020110120028A KR20110120028A KR102029465B1 KR 102029465 B1 KR102029465 B1 KR 102029465B1 KR 1020110120028 A KR1020110120028 A KR 1020110120028A KR 20110120028 A KR20110120028 A KR 20110120028A KR 102029465 B1 KR102029465 B1 KR 102029465B1
Authority
KR
South Korea
Prior art keywords
data
error detection
delete delete
detection value
reference data
Prior art date
Application number
KR1020110120028A
Other languages
English (en)
Other versions
KR20130054570A (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 삼성에스디에스 주식회사
Priority to KR1020110120028A priority Critical patent/KR102029465B1/ko
Priority to JP2012251053A priority patent/JP5619851B2/ja
Priority to US13/680,540 priority patent/US9104866B2/en
Publication of KR20130054570A publication Critical patent/KR20130054570A/ko
Application granted granted Critical
Publication of KR102029465B1 publication Critical patent/KR102029465B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • 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/562Static detection
    • G06F21/564Static detection by virus signature recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

타겟 데이터에 대한 에러 검출용 값을 계산하고, 계산한 에러 검출용 값과 기준 데이터의 에러 검출용 값을 비교하고, 타겟 데이터의 에러 검출용 값과 기준 데이터의 에러 검출용 값이 서로 일치하는 경우에, 타겟 데이터와 기준 데이터를 비교하는 검색 또는 패턴 매칭용 엔진이 개시된다.

Description

검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법{SEARCHING AND PATTERN MATCHING ENGINE AND TERMINAL APPARATUS USING THE SAME AND METHOD THEREOF}
본 발명은 검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법에 관한 것이다.
컴퓨팅 디바이스가 다양한 용도로 활용되고 있는데, 예를 들면, PC, 서버, 셀룰러 폰, PDA, 노트북, 스마트폰과 같은 모바일 장치들은 본래의 기능외에 금융거래, 인터넷 쇼핑 등과 같은 다양한 종류의 부가적인 기능을 지원하고 있다.
하지만, 이러한 부가적인 기능들은 네트워크를 통해서 지원되는 경우가 많은데, 이러한 과정에서 바이러스와 같은 악성 멀웨어에 의해 노출될 가능성이 높아지고 있다.
본 발명적 개념의 하나 이상의 실시예에 따르면, 빠른 처리 성능과 부하가 적게 걸리는 검색 또는 패턴 매칭 엔진이 제공된다.
본 발명적 개념의 하나 이상의 실시예에 따르면, 빠른 처리 성능과 부하가 적게 걸리는 하드웨어 기반의 검색 또는 패턴 매칭 엔진이 제공된다.
본 발명적 개념의 하나 이상의 실시예에 따르면 빠른 처리 성능과 부하가 적게 걸리는 검색 또는 패턴 매칭 엔진이 구비된 단말장치가 제공된다.
본 발명적 개념의 하나 이상의 실시예에 따르면 빠른 처리 성능과 부하가 적게 걸리는 검색 또는 패턴 매칭 방법이 제공된다.
본 발명적 개념의 예시적 실시에에 따르면, 타겟 데이터에 대한 에러 검출용 값을 계산하고, 계산한 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값을 비교하는 에러 검출용 값 비교부; 및 상기 타겟 데이터의 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값이 서로 일치하는 경우에, 상기 타겟 데이터와 상기 기준 데이터를 비교하는매처;를 포함하는 것을 특징으로 하는 검색 또는 패턴 매칭용 엔진이 제공된다.
검색 또는 패턴 매칭용 엔진은, 상기 타겟 데이터의 해시 값과, 기준 데이터의 해시 값을 비교하는 해시 로더;를 더 포함하며, 상기 매처는, 또한, 상기 타겟 데이터의 해시 값과 상기 기준 데이터의 해시 값이 서로 일치하는 경우에, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 것일 수 있다.
상기 기준 데이터는 멀웨어 패턴 DB 또는 검색용 텍스트 DB 것일 수 있다.
상기 에러 검출용 값은 CRC(Cyclic Redundancy Check)값 또는 체크 썸(Check Sum)인 것일 수 있다.
상기 타겟 데이터는 파일 또는 검색어인 것일 수 있다.
검색 또는 패턴 매칭용 엔진은, 상기 타겟 데이터에 대한 암호화 해시 값을 계산하고, 계산한 암호화 해시 값과 상기 기준 데이터의 암호화 해시 값을 비교하는 암호화 해시 값 비교부; 를 더 포함하는 것일 수 있다.
상기 암호화 해시 알고리즘은, MD5(Message-Digest algorithm 5) 또는 SHA(Secure Hash Algorithm)인 것일 수 있다.
검색 또는 패턴 매칭용 엔진은, 타겟 데이터를 상기 해시 로더와 상기 에러 검출용 값 비교부에 각각 상기 타겟 데이터를 제공하는 텍스트 로더;를 더 포함하는 것일 수 있다.
검색 또는 패턴 매칭용 엔진은, 상기 해시 로더, 상기 에러 검출용 값 비교부, 암호화 해시 값 비교부에 각각 상기 타겟 데이터를 제공하는 텍스트 로더;를 더 포함하는 것일 수 있다.
검색 또는 패턴 매칭용 엔진은, 상기 타겟 데이터를 서로 번갈아 가면서 저장하는 제1버퍼와 제2버퍼;를 더 포함하며, 상기 제1버퍼와 상기 제2버퍼는 서로 번갈아 가면서 상기 타겟 데이터를 상기 텍스트 로더에 제공하는 것일 수 있다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 타겟 데이터의 해시 값과, 기준 데이터의 해시 값을 비교하는 해시 로더; 타겟 데이터에 대한 암호화 해시 값을 계산하고, 계산한 암호화 해시 값과 상기 기준 데이터의 암호화 해시 값을 비교하는 암호화 해시 값 비교부; 및 상기 타겟 데이터의 해시 값과 상기 기준 데이터의 해시 값이 서로 일치하는 경우에, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 매처;를 포함하는 것을 특징으로 하는 검색 또는 패턴 매칭용 엔진이 제공될 수 있다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 기준 데이터를 저장하는 저장부; 및 상기 타겟 데이터에 대한 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값을 비교하며, 상기 타겟 데이터의 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값이 서로 일치하는 경우에, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 검색 또는 패턴 매칭용 엔진;을 포함하는 것을 특징으로 하는 단말장치가 제공될 수 있다.
상기 검색 또는 패턴 매칭용 엔진은 하드웨어로 구성된 것일 수 있다.
단말장치는, 어플리케이션 프로세서;를 더 포함하며, 상기 검색 또는 패턴 매칭용 엔진은 상기 어플리케이션 프로세서의 IP 칩의 형태로 내장되는 것일 수 있다.
상기 검색 또는 패턴 매칭용 엔진은 시스템 온 칩의 형태로 구성되고, 상기 펌웨어를 저장하는 저장부는 상기 시스템 온 칩에 포함된 것일 수 있다.
상기 시스템 온 칩은 상기 펌웨어를 동작시키는 프로세서를 더 포함하고 있는 것일 수 있다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 기준 데이터를 저장하는 저장부; 및 타겟 데이터의 해시 값과, 기준 데이터의 해시 값을 비교하고, 타겟 데이터에 대한 암호화 해시 값과 상기 기준 데이터의 암호화 해시 값을 비교하며, 상기 타겟 데이터의 해시 값과 상기 기준 데이터의 해시 값이 서로 일치하는 경우에, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 검색 또는 패턴 매칭용 엔진;을 포함하는 단말장치가 제공될 수 있다.
단말장치는, 상기 암호화 해시 값의 비교 결과 양자가 일치하면, 상기 타겟 데이터의 해시 값과 기준 데이터의 해시 값의 일치 여부와 무관하게, 상기 타겟 데이터와 상기 기준 데이터가 서로 매칭되었다고 판단하는 펌웨어를 더 포함할 수 있다.
단말장치는, 상기 검색 또는 패턴 매칭용 엔진을 동작시키는 펌웨어를 저장하는 저장부;를 더 포함하는 것일 수 있다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 타겟 데이터에 대한 에러 검출용 값을 계산하고, 계산한 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값을 비교하는 에러 검출용 값 비교 단계; 및 상기 타겟 데이터의 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값이 서로 일치하는 경우에, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 단계; 를 포함하는 것을 특징으로 하는 검색 또는 패턴 매칭 방법이 제공될 수 있다.
검색 또는 패턴 매칭 방법은, 상기 타겟 데이터의 해시 값과, 기준 데이터의 해시 값을 비교하는 단계;를 더 포함하며, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 단계는, 또한 상기 타겟 데이터의 해시 값과 상기 기준 데이터의 해시 값이 서로 일치하는 경우에, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 것일 수 있다.
검색 또는 패턴 매칭 방법은, 상기 타겟 데이터에 대한 암호화 해시 값을 계산하고, 계산한 암호화 해시 값과 상기 기준 데이터의 암호화 해시 값을 비교하는 암호화 해시 값 비교 단계; 를 더 포함하는 것일 수 있다.
검색 또는 패턴 매칭 방법은, 상기 타겟 데이터와 상기 기준 데이터의 암호화 해시 값이 서로 일치하면, 상기 에러 검출용 값과 상기 해시 값의 일치 여부와는 무관하게, 상기 타겟 데이터에 상기 기준 데이터가 포함된 것으로 판단하는 단계;를 더 포함하는 것일 수 있다.
검색 또는 패턴 매칭 방법은, 타겟 데이터를 복수개의 서브 데이터들로 구성하는 단계;를 더 포함하며, 상기 에러 검출용 값 비교 단계는, 상기 복수개의 서브 데이터들 중에서 제1 서브 데이터와 제2 서브 데이터에 대한 에러 검출용 값을 각각 계산하고, 계산한 에러 검출용 값들과 상기 기준 데이터의 에러 검출용 값들을 비교하는 단계이고, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 단계는, 상기 제1 서브 데이터와 제2 서브 데이터의 에러 검출용 값들과 상기 기준 데이터의 에러 검출용 값들이 서로 일치해야, 수행되는 단계일 수 있다.
검색 또는 패턴 매칭 방법은, 타겟 데이터를 복수개의 서브 데이터들로 구성하는 단계;를 더 포함하며, 상기 해시 값을 비교하는 단계는, 상기 복수개의 서브 데이터들에 대하여 순차적으로 각각의 해시 값을 계산하여 상기 기준 데이터의 해시 값과 비교하는 단계이며, 상기 에러 검출용 값 비교 단계는, 상기 복수개의 서브 데이터들 중에서 제1 서브 데이터 및 다음 순서인 적어도 하나 이상의 서브 데이터에 대한 에러 검출용 값을 각각 계산하고, 계산한 에러 검출용 값들과 상기 기준 데이터의 에러 검출용 값들을 비교하는 단계이며, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 단계는, 상기 에러 검출용 값들과 상기 기준 데이터의 에러 검출용 값들이 서로 일치해야, 수행되는 단계일 수 있다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 타겟 데이터의 해시 값과, 기준 데이터의 해시 값을 비교하는 해시 값 비교 단계; 타겟 데이터에 대한 암호화 해시 값을 계산하고, 계산한 암호화 해시 값과 상기 기준 데이터의 암호화 해시 값을 비교하는 암호화 해시 값 비교 단계; 및 상기 타겟 데이터의 해시 값과 상기 기준 데이터의 해시 값이 서로 일치하는 경우에, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 단계;를 포함하는 것을 특징으로 하는 검색 또는 패턴 매칭 방법이 제공될 수 있다.
검색 또는 패턴 매칭 방법은, 상기 타겟 데이터에 대한 에러 검출용 값을 계산하고, 계산한 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값을 비교하는 에러 검출용 값 비교 단계;를 더 포함하며, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 단계는, 상기 타겟 데이터의 해시 값과 상기 기준 데이터의 해시 값이 서로 일치하고, 상기 타겟 데이터의 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값이 서로 일치하는 경우에 상기 타겟 데이터와 상기 기준 데이터를 비교하는 것일 수 있다.
검색 또는 패턴 매칭 방법은, 타겟 데이터를 복수개의 서브 데이터들로 구성하는 단계;를 더 포함하며, 상기 에러 검출용 값 비교 단계는, 상기 복수개의 서브 데이터들 중에서 제1 서브 데이터와 제2 서브 데이터에 대한 에러 검출용 값을 각각 계산하고, 계산한 에러 검출용 값들과 상기 기준 데이터의 에러 검출용 값들을 비교하는 단계이고, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 단계는, 상기 제1 서브 데이터와 제2 서브 데이터의 에러 검출용 값들과 상기 기준 데이터의 에러 검출용 값들이 서로 일치해야, 수행되는 단계일 수 있다.
검색 또는 패턴 매칭 방법은, 타겟 데이터를 복수개의 서브 데이터들로 구성하는 단계;를 더 포함하며, 상기 해시 값을 비교하는 단계는, 상기 복수개의 서브 데이터들에 대하여 순차적으로 각각의 해시 값을 계산하여 상기 기준 데이터의 해시 값과 비교하는 단계이며, 상기 에러 검출용 값 비교 단계는, 상기 복수개의 서브 데이터들 중에서 제1 서브 데이터 및 다음 순서인 적어도 하나 이상의 서브 데이터에 대한 에러 검출용 값을 각각 계산하고, 계산한 에러 검출용 값들과 상기 기준 데이터의 에러 검출용 값들을 비교하는 단계이며, 상기 타겟 데이터와 상기 기준 데이터를 비교하는 단계는, 상기 에러 검출용 값들과 상기 기준 데이터의 에러 검출용 값들이 서로 일치해야, 수행되는 단계일 수 있다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 패킷 데이터에 대한 에러 검출용 값을 계산하고, 계산한 에러 검출용 값과 기준 데이터의 에러 검출용 값을 비교하는 에러 검출용 값 비교부; 및 상기 패킷 데이터의 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값이 서로 일치하는 경우에, 상기 패킷 데이터와 상기 기준 데이터를 비교하는 매처;를 포함하는 것을 특징으로 하는 방화벽 엔진이 제공될 수 있다.
하나 이상의 실시예에 따르면, 검색 또는 패턴 매칭에 있어서 빠른 처리 성능과 부하가 적게 걸리는 효과가 있다.
다른 하나 이상의 실시예에 따르면, 검색 또는 패턴 매칭 동작을 수행하는 단말 장치에 있어서 배터리 소모를 줄이면서도 빠르게 처리할 수 있는 효과가 있다.
다른 하나 이상의 실시예에 따른 검색 또는 패턴 매칭 엔진은, 모바일 디바이스와 같은 단말장치의 어플리케이션 프로세서에 IP의 형태로 장착될 수 있어 자원이 한정된 모바일 디바이스에 부하를 적게 주면서 빠르게 처리할 수 있는 효과가 있다.
도 1은 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진의 구성도이고,
도 2는 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진을 가진 단말장치의 구성도이고,
도 3은 본 발명적 개념의 다른 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진을 가진 단말장치의 구성도이고,
도 4는 본 발명적 개념의 예시적 실시예에 따른 시스템 인터페이스의 구성도이고,
도 5는 본 발명적 개념의 예시적 실시예에 따른 에러 검출용 값을 산출하는 방법을 설명하기 위한 도면이고,
도 6은 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭 방법을 설명하기 위한 흐름도이고,
도 7은 본 발명적 개념의 다른 예시적 실시예에 따른 검색 또는 패턴 매칭 방법을 설명하기 위한 도면이고,
도 8은 본 발명적 개념의 다른 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진을 가진 단말장치의 구성도이고, 그리고
도 9는 본 발명적 개념의 다른 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진을 가진 단말장치의 구성도이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시 예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시 예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 게재될 수도 있다는 것을 의미한다.
본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다' 및/또는 '포함하는'은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
본 명세서에서 하나의 구성요소가 다른 구성요소와 '연결된다'는 표현은 상기 구성요소들 간의 직접적 연결을 의미할 뿐 아니라 다른 제3의 구성요소를 매개로 한 간접적 연결도 포함한다.
이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시 예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
도 1은 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진의 구성도이다.
도 1을 참조하면, 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진(이하, '매칭용 엔진'이라고 함)은 시스템 인터페이스(1), DB(Data Base) 인터페이스(3), 버퍼들(5, 7, 9, 19, 23), 텍스트 로더(11), 해시 로더(13), 에러 검출용 값 비교부(15), 암호화 해시 값 비교부(17), 및 매처(21)를 포함할 수 있다.
시스템 인터페이스(1)는, 매칭용 엔진이 장착되는 장치의 시스템 버스와 매칭용 엔진을 연결시킬 수 있고, DB 인터페이스(3)는, 매칭용 엔진이 장착되는 장치의 DB 버스와 매칭용 엔진을 연결시킬 수 있다.
버퍼(5)는 DB 인터페이스(3)를 통해서 기준 데이터를 수신하여 저장할 수 있다. 여기서, '기준 데이터'라고 함은 멀웨어 패턴 DB, 검색용 텍스트 DB, 룰 패턴 DB일 수 있다. 멀웨어 패턴 DB는 바이러스, 애드웨어, 스파이 웨어, 트로이 목마 등과 같은 악성 멀웨어에 대한 패턴들을 포함하며, 검색용 텍스트 DB는 검색을 위한 색인어를 포함하며, 룰 패턴 DB는 패킷들에 대한 차단 또는 통과를 정의한 룰들을 포함한다.
본 발명적 개념의 예시적 실시예에 따르면, 멀웨어 패턴 DB는 악성 멀웨어에 대한 패턴들을 포함하며, 각 패턴에 대한 해시 값, 각 패턴에 대한 에러 검출용 값, 및 각 패턴에 대한 암호화 해시 값 중 어느 하나 이상을 더 포함할 수 있다.
또한, 본 발명적 개념의 예시적 실시예에 따르면, 검색용 텍스트 DB는 색인어들을 포함하며, 각 색인어에 대한 해시 값, 각 색인어에 대한 에러 검출용 값, 및 각 색인어에 대한 암호화 해시 값 중 어느 하나 이상을 더 포함할 수 있다.
버퍼(7)와 버퍼(9)는 타겟 데이터를 서로 번갈아 가면서 DB 인터페이스(3)를 통해서 수신하여 저장할 수 있다. 버퍼(7)와 버퍼(9)에 저장된 타겟 데이터는 서로 교번적으로 텍스트 로더(11)에 전송된다.
본 발명적 개념의 예시적 실시예에 따르면, 타겟 데이터는 파일일 수 있으며, 이러한 타겟 데이터는 복수개의 서브 데이터로 분할될 수 있다. 이러한 복수개의 서브 데이터는 버퍼(7)와 버퍼(9)에 교번적으로 저장될 수 있다. 본 명세서에서, '타겟 데이터'와 '서브 데이터'는 서로 혼용하여 사용하되, 다만 구별할 실익이 있는 경우에는 양자를 구별하여 사용하기로 한다.
텍스트 로더(11)는 버퍼(7)와 버퍼(9)로부터 교번적으로 서브 데이터를 수신하여 저장하며, 이들 서브 데이터는 해시 로더(13), 에러 검출용 값 비교부(15), 및 암호화 해시 값 비교부(17)로 입력된다.
해시 로더(13)는 버퍼(5)로부터 기준 데이터를 입력받고, 텍스트 로더(11)로부터 서브 데이터를 입력받는다.
본 발명적 개념의 예시적 실시예에 따르면, 해시 로더(13)는 서브 데이터의 해시 값을 계산하고, 계산한 서브 데이터의 해시 값과 기준 데이터에 포함된 해시 값을 서로 비교한다.
다음의 <표1>은 기준 데이터에 대한 해시 값을 설명하기 위한 목적으로 예시적으로 나타낸 것이다.
해시 값 해시 값을 구할 때 사용된 기준 데이터 실제 기준 데이터
X abcifghi abcifghidkigkedjgdgjduchdidkdldl ...dkdld
X igkedjgd abcifghidkigkedjgdgjduchdidkdldl ...dkdld
Y duchdidk abcifghidkigkedjgdgjduchdidkdldl ...dkdld
Z kdldigio kdldigiogkdicdkeidlclldidldldldl ...dodlg
Y giogkdic kdldigiogkdicdkeidlclldidldldldl ...dodlg
.
.
.
.
.
.
.
.
.
서브 데이터가 1, 2, 3, 4, 5, 6, 7, 8, ..., D-1, D, D+1, D+2, D+3, ...100 바이트(즉, 100 바이트)로 구성되어 있다고 가정하자. 이러한 경우, 해시 로더(13)는 서브 데이터 중 처음에 시작하는 3바이트(1, 2, 3)를 입력값으로 하여 해시 값을 구할 수 있다. 이렇게 구한 해시 값과 위 표1에서의 해시 값들 중 어느 하나가 일치되면, 서브 데이터가, 버퍼(19)에 저장된다.
한편, 양자가 서로 일치되지 않으면, 해시 로더(13)는 다음 3바이트(2, 3, 4)를 입력값으로 하여 해시 값을 구하며, 이렇게 구한 해시 값과 위 표1에서의 해시 값들 중 어느 하나가 일치되면 서브 데이터가 버퍼(19)에 저장된다. 일치하지 않는 경우에는, 해시 로더(13)는 그 다음 3바이트(3, 4, 5)를 입력값으로 하여 해시 값을 구하며, 그 해시 값과 위 표1에서의 해시 값들 중 어느 하나가 일치되면 서브 데이터가 버퍼(19)에 저장된다. 해시 로더(13)는 서브 데이터 각각에 대하여 위와 같은 동작을 반복한다. 한편, 상술한 수치들이나 위치는 예시적인 것이므로 본 발명적 개념이 이들 수치나 위치에 한정되는 것이 아님은 물론이다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 기준 데이터에 해시 값이 포함되어 있지 않을 수 있으며, 이러한 경우 해시 로더(13)는, 기준 데이터의 해시 값을 계산하고, 이렇게 계산한 기준 데이터의 해시 값과 서브 데이터의 해시 값을 서로 비교할 수 있다.
에러 검출용 값 비교부(15)는 기준 데이터의 에러 검출용 값과, 서브 데이터의 에러 검출용 값을 서로 비교할 수 있다. 한편, 양자의 에러 검출용 값이 일치하는 경우에만, 매처(21)는 버퍼(19)에 저장된 서브 데이터와 기준 데이터간의 매칭 동작을 수행한다.
본 발명적 개념의 예시적 실시예에 따르면, 에러 검출용 값 비교부(15)는, 양자의 에러 검출용 값이 서로 일치하지 않으면 그 결과를 시스템 레지스터에 저장할 수 있다. 이러한 경우, 해당 서브 데이터에 대한 매칭 동작은 수행되지 않는다.
본 발명적 개념의 예시적 실시예에 따르면, 기준 데이터의 에러 검출용 값과 일치하는 에러 검출용 값을 가진 서브 데이터가, 버퍼(19)에 저장된다. 이 경우, 매처(21)는 에러 검출용 값과 해시 값이 모두 일치되는 경우에만 매칭 동작을 수행한다.
여기서, 에러 검출용 값은, CRC(Cyclic Redundancy Check)값 또는 체크 썸(Check Sum)일 수 있으며, 다만 이들은 예시적인 것들이므로 본 발명적 개념이 이들 값에만 한정되는 것이 아님을 이해하여야 한다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 에러 검출용 값 비교부(15)는, 텍스트 로더(11)로부터 서브 데이터를 입력받아서 에러 검출용 값을 계산할 수 있으며, 이러한 서브 데이터의 에러 검출용 값과 기준 데이터의 에러 검출용 값을 비교할 수 있다.
본 발명적 개념의 예시적 실시예에 따르면, 서브 데이터에 대한 매칭동작이 수행되기 전에, 에러 검출용 값 비교부(15)는 서브 데이터에 대한 에러 검출용 값을 1개 또는 복수 개 계산할 수 있다. 도 5는 본 발명적 개념의 예시적 실시예에 따른 에러 검출용 값을 산출하는 방법을 설명하기 위한 도면이며, 도 5와 위 <표1>을 참조하여 에러 검출용 값이 복수 개인 경우를 설명하기로 한다.
예를 들어, 기준 데이터는 P1, P2, P3, ... PN개의 패턴들로 구성되고, 서브 데이터는 1, 2, 3, 4, 5, 6, 7, 8, ..., D-1, D, D+1, D+2, D+3, D+4, D+5...100 바이트(즉, 100 바이트)로 구성된다고 가정한다. 또한, 여기서, 1, 2, 3 들을 묶어서 1번째 위치, 2, 3, 4 들을 묶어서 2번째 위치,... D, D+1, D+2들을 묶어서 N번째 위치, D+1, D+2, D+3 들을 묶어서 N+1 번째 위치, D+2, D+3, D+4를 묶어서 N+2 번째 위치, D+3, D+4, D+5를 묶어서 N+3 번째 위치라고 가정하고, 해시 로더(13)는 3바이트 씩을 입력 값으로 하여 해시 값을 구한다고 가정한다.
서브 데이터의 N번째 위치에 대한 해시값이 'Z'라고 하면, 기준 데이터 "kdldigiogkdicdkeidlclldidldl ...dodlg"에서, "kdldigio"와 일치한다. 이러한 경우, 에러 검출용 값 비교부(15)는, 서브 데이터의 N번째 위치의 에러 검출용 값(E_N)과, N+1 번째의 에러 검출용 값(E_N+1), N+2 번째의 에러 검출용 값(E_N+2), N+3 번째의 에러 검출용 값(E_N+3)의 값을 계산한다.
그리고, 상기 계산한 에러 검출용 값들과, 기준 데이터 "kdldigiogkdicdkeidlclldidldldldl ...dodlg"에서 "gkdicdke"에 대한 에러 검출용 값, "idlclldi"에 대한 에러 검출용 값, "dldldldl"에 대한 에러 검출용 값들이 각각 비교되며, 이들이 모두 일치되는 경우에, 매처(21)는 타겟 데이터와 "kdldigiogkdicdkeidlclldidldldldl ...dodlg"를 비교하는 동작을 수행한다.
여기서, 기준 데이터의 "gkdicdke"에 대한 에러 검출용 값, "idlclldi"에 대한 에러 검출용 값, "dldldldl"에 대한 에러 검출용 값들은 미리 계산되어 <표1>에 추가적으로 포함되어 있을 수 있으나, 이와 다르게 에러 검출용 값 비교부(15)가 계산할 수 도 있을 것이다.
즉, 하나의 서버 데이터에 대하여 복수의 에러 검출용 값을 계산할 수 있으며, 상술한 실시예에서는 4개를 예로 들었으나 이는 예시적인 것이므로 이러한 수치에만 본원 발명이 한정되는 것이 아님은 물론이다.
암호화 해시 값 비교부(17)는 텍스트 로더(11)로부터 서브 데이터를 입력받아서 암호화 해시 알고리즘을 적용하여 그 값을 계산하고, 이렇게 계산한 암호화 해시 값과 기준 데이터를 비교한다. 암호화 해시 값 비교부(17)는 서브 데이터에 대하여 계산한 암호화 해시 값과 기준 데이터가 일치하는 경우, 그 결과를 시스템 레지스터(25)에 저장할 수 있다.
본 발명적 개념의 예시적 실시예에 따르면, 서브 데이터에 대하여 계산한 암호화 해시 값과 기준 데이터가 일치하는 경우에는, 그 서브 데이터에 대하여는 매처(21)가 매칭 동작을 수행하지 않는다.
본 발명적 개념의 예시적 실시예에 따르면, 암호화 해시 알고리즘은 MD5(Message-Digest algorithm 5) 또는 SHA(Secure Hash Algorithm)일 수 있다.
버퍼(19)는, 해시 값이 기준 데이터 것과 일치되고, 에러 검출용 값이 기준 데이터의 것과 일치되는, 서브 데이터를 저장한다. 그리고, 버퍼(19)에 저장된 서브 데이터에 대하여만 매처(21)에 의해 매칭 동작이 수행된다.
매처(21)는 서브 데이터와 기준 데이터를 비교하여 일치 여부에 대한 결과를 시스템 레지스터(25)에 저장하고, 양자가 일치되는 경우 해당 서브 데이터는 버퍼(23)에 저장된다.
매처(21)는 첫 번째, 서브 데이터의 일부(중간 바이트와 마지막 바이트)와 기준 데이터를 비교하여 양자가 일치하는 경우에, 서브 데이터 전부와 기준 데이터를 비교할 수 있으나, 이는 예시적인 것으로서 매처(21)는 서브 데이터의 전부와 기준 데이터를 바로 비교하는 것도 가능할 것이다.
버퍼(23)는 기준 데이터와 일치되는 서브 데이터들을 저장하며, 이렇게 저장된 서브 데이터들을 이용하여 검색 또는 패턴 매칭용 엔진을 동작시키는 펌웨어(미도시)는 복잡한 문법적 패턴 등이 타겟 데이터에 있는지를 판단할 수 있다.
한편,도시하지는 않았지만, 검색 또는 패턴 매칭용 엔진을 동작시키는 펌웨어(미도시)는 시스템 인터페이스(1) 및/또는 데이터베이스 인터페이스(3)를 통해서 검색 또는 패턴 매칭용 엔진을 제어할 수 있다.
도 2는 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진을 가진 단말장치의 구성도이다.
도 2를 참조하면, 본 발명적 개념의 예시적 실시예에 따른 단말장치(100)는 어플리케이션 프로세서(100), 제1메모리(130), 및 제2메모리(140)을 포함할 수 있다. 여기서, 단말장치(100)는 PC, 스마트 폰, PDA, 모바일 기기, 네트워킹이 가능한 임베디드 디바이스, 또는 셀룰러 폰과 같이 검색 또는 패턴 매칭의 필요성이 있는 장치라면 어떠한 장치라도 해당될 수 있다.
어플리케이션 프로세서(100)는 중앙처리장치(CPU)(120)와, 검색 또는 패턴 매칭용 엔진(150)을 포함할 수 있다. 여기서, 검색 또는 패턴 매칭용 엔진(150)는 도 1를 참조하여 설명한 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진 중 어느 하나일 수 있다.
본 발명적 개념의 예시적 실시예에 따르면, 도 2에 도시된 바와 같이 검색 또는 패턴 매칭용 엔진(150)은 IP(Interllectual Property)의 형태로 어플리케이션 프로세서에 내장될 수 있다.
제1메모리(130)에는 검색 또는 패턴 매칭용 엔진(150)을 동작시키기 위한 펌웨어가 저장되며, 펌웨어는 제2메모리(140)에 로딩되어 동작한다.
검색 또는 패턴 매칭용 엔진(150)은 도 1에서 설명한 바와 같이 시스템 인터페이스와 데이터베이스 인터페이스를 가질 수 있으며, 이러한 인터페이스들을 통해서 펌웨어가 검색 또는 패턴 매칭용 엔진(150)을 제어할 수 있다.
도 3을 참조하면, 본 발명적 개념의 다른 예시적 실시예에 따른 단말장치(200)는 어플리케이션 프로세서(210)와 시스템 온 칩(290)을 포함할 수 있다. 또한, 도시하지는 않았지만, 어플리케이션 프로세서(210)의 제어하에 동작하는 어플리케이션들을 추가적으로 포함할 수 있다.
여기서, 시스템 온 칩(290)은, 중앙처리장치(CPU)(260), 인터페이스(270), 메모리(280), 및 검색 또는 패턴 매칭용 엔진(250)을 포함할 수 있다. 여기서, 검색 또는 패턴 매칭용 엔진(250)는 도 1를 참조하여 설명한 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진 중 어느 하나일 수 있다.
메모리(280)에는 검색 또는 패턴 매칭용 엔진(250)을 제어하는 펌웨어가 로딩되며, 중앙처리장치(260)를 이용하여 엔진(250)을 제어한다.
인터페이스(270)는 시스템 온 칩(250)과 어플리케이션 프로세서에 의해 동작하는 어플리케이션들과의 연결하는 기능을 수행할 수 있다. 일 예를 들면, 인터페이스(270)는, 웹 브라우저와 같은 응용프로그램과의 인터페이싱 기능을 수행하는 인터페이스, 안티 멀웨어 스캐닝을 위한 사용자 인터페이스 응용프로그램과의 인터페이싱 기능을 수행하는 인터페이스, 검색을 위한 응용프로그램과의 인터페이싱 기능을 수행하는 인터페이스를 포함할 수 있다. 여기서, 이들 응용프로그램들은 예를 들면, AP에 의해서 동작될 수 있다.
이상과 같이 도 1 내지 도 3을 참조하여 설명한 검색 또는 패턴 매칭용 엔진은 다양하게 변형이 가능하며, 예를 들면, 검색 또는 패턴 매칭용 엔진은, i) 검색어를 스캐닝하는 검색용 엔진(SC 엔진) 멀웨어를 스캐닝하는 패턴 매칭용 엔진(AM 엔진) 또는 iii) 패킷 데이터를 필터링하는 방화벽 엔진(FW 엔진) 중 어느 하나의 엔진일 수 있다.
예를 들면, 도 8은 도 2의 실시예의 변형예로서, 본 발명적 개념의 다른 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진을 가진 단말장치의 구성도를 나타낸 것이다.
도 8을 참조하면, 본 발명적 개념의 예시적 실시예에 따른 단말장치(300)는 어플리케이션 프로세서(300), 제1메모리(330), 및 제2메모리(340)을 포함할 수 있다. 이들 구성요소들의 동작은 도 2에서 유사한 도면번호가 부여된 구성요소들과 동일 또는 유사하므로, 상세한 설명은 생략하기로 한다.
어플리케이션 프로세서(300)는 중앙처리장치(CPU)(320)와, 복수의 엔진들로 이루어진 엔진부(355)를 포함할 수 있다.
엔진부(355)는, 검색어를 스캐닝하는 검색용 엔진(Searching Engine: SC 엔진)(353), 멀웨어를 스캐닝하는 패턴 매칭용 엔진(AM: Anti-Malware Engine: AM 엔진)(350), 및 iii) 패킷 데이터를 필터링하는 방화벽 엔진(Firewall Engine: FW 엔진)(351)을 포함할 수 있으며, 이들 엔진들은 본 발명적 개념의 예시적 실시예에 따른 설명된 검색 또는 패턴 매칭용 엔진일 수 있다.
도 8의 본 발명적 개념의 예시적 실시예에 따르면, 엔진부(355)는 IP(Interllectual Property)의 형태로 어플리케이션 프로세서에 내장될 수 있으며, 상술한 바와 같이 복수개의 엔진들(AM 엔진, SC 엔진, FW 엔진)을 포함할 수 있다.
AM 엔진(350), SC 엔진(353), 및 FW 엔진(351)의 동작은 도 2를 참조하여 설명한 검색 또는 패턴 매칭용 엔진의 동작과 동일 또는 유사하다. 즉, AM 엔진(351)은 멀웨어 패턴 DB와 타겟 데이터(예를 들면, 파일)를 매칭시켜, 양자가 일치하는지 여부를 알 수 있고, SC 엔진(353)은 검색용 텍스트 DB와 타겟 데이터(예를 들면, 검색어)를 매칭시켜, 타겟 데이터가 검색용 텍스트 DB에 포함되어 있는지 여부를 알 수 있다. 또한, FW 엔진(351)은 룰 패턴 DB와 타겟 데이터(예를 들면, 패킷 데이터)를 매칭시켜, 양자가 일치하는지 여부를 알 수 있고 그 결과에 따라서 타겟 데이터를 외부로 보내거나 외부로부터 수신하는 것을 차단 또는 통과시킬 수 있다.
도 8에 도시하지는 않았지만, 단말장치(300)는, 기준 데이터(예를 들면, 멀웨어 패턴 DB, 검색용 텍스트 DB, 또는 룰 패턴 DB)를 저장하는 저장부를 더 포함할 수 있으며, 패킷 데이터를 외부로부터 수신하거나 송신하는 NIC(Network Interface Card)를 더 포함할 수 있다. NIC를 통해서 외부로부터 수신되는 패킷 데이터는 웹브라우저와 같은 어플리케이션으로 전달되기 전에, FW 엔진(351)을 통해서 통과 여부과 결정될 수 있다. 또한, 외부로 송신될 패킷 데이터 역시, FW 엔진(351)을 통해서 통과 여부가 결정된 후에, 통과하는 것으로 결정된 경우에 NIC를 통해서 외부로 전송된다.
다른 예를 들면, 도 9는 본 발명적 개념의 다른 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진을 가진 단말장치의 구성도를 나타낸 것으로서, 도 3의 변형예일 수 있다.
도 9를 참조하면, 본 발명적 개념의 다른 예시적 실시예에 따른 단말장치(400)는 어플리케이션 프로세서(410)와 시스템 온 칩(490)을 포함할 수 있다. 또한, 도시하지는 않았지만, 어플리케이션 프로세서(410)의 제어하에 동작하는 어플리케이션들을 추가적으로 포함할 수 있다.
여기서, 시스템 온 칩(490)은, 중앙처리장치(CPU)(460), 인터페이스(470), 메모리(480), 및 엔진부(455)을 포함할 수 있다. 여기서, 엔진부(455)는 검색어를 스캐닝하는 검색용 엔진(Searching Engine: SC 엔진)(453), 멀웨어를 스캐닝하는 패턴 매칭용 엔진(AM: Anti-Malware Engine: AM 엔진)(450), 및 iii) 패킷 데이터를 필터링하는 방화벽 엔진(Firewall Engine: FW 엔진)(451)을 포함할 수 있으며, 이들 엔진들은 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭용 엔진일 수 있다.
도 9의 구성요소들의 동작은 도 3에서 유사한 도면번호가 부여된 구성요소들과 동일 또는 유사하므로, 상세한 설명은 생략하기로 한다.
AM 엔진(450), SC 엔진(453), 및 FW 엔진(451)의 동작은 도 3를 참조하여 설명한 검색 또는 패턴 매칭용 엔진의 동작과 동일 또는 유사하다. 즉, AM 엔진(451)은 멀웨어 패턴 DB와 타겟 데이터(예를 들면, 파일)를 매칭시켜, 양자가 일치하는지 여부를 알 수 있고, SC 엔진(453)은 검색용 텍스트 DB와 타겟 데이터(예를 들면, 검색어)를 매칭시켜, 타겟 데이터가 검색용 텍스트 DB에 포함되어 있는지 여부를 알 수 있다. 또한, FW 엔진(451)은 룰 패턴 DB와 타겟 데이터(예를 들면, 패킷 데이터)를 매칭시켜, 양자가 일치하는지 여부를 알 수 있고 그 결과에 따라서 타겟 데이터를 외부로 보내거나 외부로부터 수신하는 것을 차단 또는 통과시킬 수 있다.
도 9에 도시하지는 않았지만, 단말장치(400)는, 기준 데이터(예를 들면, 멀웨어 패턴 DB, 검색용 텍스트 DB, 또는 룰 패턴 DB)를 저장하는 저장부를 더 포함할 수 있으며, 패킷 데이터를 외부로부터 수신하거나 송신하는 NIC(Network Interface Card)를 더 포함할 수 있다. NIC를 통해서 외부로부터 수신되는 패킷 데이터는 웹브라우저와 같은 어플리케이션으로 전달되기 전에, FW 엔진(451)을 통해서 통과 여부과 결정될 수 있다. 또한, 외부로 송신될 패킷 데이터 역시, FW 엔진(451)을 통해서 통과 여부가 결정된 후에, 통과하는 것으로 결정된 경우에 NIC를 통해서 외부로 전송된다. 한편, NIC는 시스템 온 칩(490)의 내부에 내장되어 장착되거나 또는/그리고 버스(471)에 연결될 수 있다.
시스템 온 칩(490) 내부에 NIC(이하, '시스템 온 칩 NIC'라고 함)가 내장되어 장착된 경우, 시스템 온 칩 NIC를 통해서 외부로부터 패킷 데이터가 수신될 수 있다. 시스템 온 칩 NIC를 통해서 수신된 패킷 데이터는 FW 엔진(451)에게 전달되고, FW 엔진(451)에 의해서 통과로 결정된 후에 패킷 데이터를 처리하는 응용프로그램으로 전달된다. 반대로, 외부로 패킷 데이터를 전송하고자 하는 경우에도, 먼저 FW 엔진(451)으로 패킷 데이터가 전달되고, FW 엔진(451)에 의해 통과로 결정된 후에 NIC를 통해서 외부로 송신된다.
버스(471)에 NIC(이하, 'NIC'라고 함)가 연결된 경우에도, 위와 같이 유사한 동작이 이루어진다. 즉, 외부로부터 패킷 데이터를 NIC가 수신하면, 해당되는 응용프로그램으로 전달되기 전에 먼저 시스템 온 칩의 FW 엔진(451)으로 전달되어 FW 엔진(451)에 의해 통과 여부가 결정된다. 그리고, 통과로 결정된 패킷 데이터만 응용프로그램으로 전달될 수 있다. 반대의 경우, 외부로 패킷 데이터를 송신하고자 하는 경우에도 먼저, FW 엔진(451)으로 패킷 데이터가 전달되어 통과 여부가 결정되고, 통과로 결정된 패킷 데이터가 응용 프로그램으로 전달될 수 있다.
이상과 같이 도 8과 도 9에서는 엔진부는 3개의 엔진들(AM 엔진, FW 엔진, SC 엔진)을 포함하는 것을 설명하였으나, 이는 예시적인 것으로서 이들 엔진들 중 어느 하나 또는 두개의 엔진을 포함하도록 구성하는 것이 가능하다. 다르게는, 검색 또는 패턴 매칭 엔진을 하나의 하드웨어로 구성하고, 위 3가지 엔진의 기능을 겸용할 수 있도록 구성하는 것도 가능하다.
도 4는 본 발명적 개념의 예시적 실시예에 따른 시스템 인터페이스의 구성도이다.
도 4를 참조하면, 인터페이스(1)는 시스템 버스와 연결기능을 담당하는 시스템 인터페이스와 마이크로컨트롤러 유닛과 연결을 담당하는 인터페이스와, 마이크로컨트롤러 유닛(이하, 'MCU'), 및 먹스(이하, 'MUX')를 더 포함할 수 있다.
본 발명적 개념의 예시적 실시예에 따르면, MCU 인터페이스를 통해서 스캐닝할 대상이 되는 타겟 데이터가 저장된 위치 정보, 타겟 데이터의 크기 정보, 타겟 데이터에 대하여 매칭을 할 매처 정보가 MCU에게 전송되며, MCU는 그러한 정보를 MUX를 통해 레지스터들(25)에게 전송한다. 이후, 레지스터들(25)에 저장된 정보들에 의해 검색 또는 패턴 매칭 엔진은 컨피겨러블하게 동작할 수 있다.
또한, 검색 또는 패턴 매칭 엔진에 의해 발생되는 인터럽트(interrupt)도 MCU에서 처리할 수 있다.
레지스터들(25)은, 예를 들면, 검색 또는 패턴 매칭 엔진의 버퍼들의 동작을 위한 레지스터, 검색 또는 패턴 매칭을 위한 레지스터, 에러 검출을 위한 레지스터, 해시 값 매칭을 위한 레지스터, 및 상술한 레지스터들을 제어하기 위한 제어 레지스터를 포함할 수 있다.
도 6은 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭 방법을 설명하기 위한 흐름도이다.
도 6과 도 1을 참조하여 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭 방법을 설명하기로 한다.
버퍼(7, 9)는 타겟 데이터를 수신하여 텍스트 로더(11)로 전달한다(S101).
해시 로더(13)는 텍스트 로더(11)를 통해서 입력받은 텍스트의 해시 값을 계산하고, 이 해시 값과 기준 데이터의 해시 값을 비교한다(S103).
에러 검출용 값 비교부(15)는 텍스트 로더(11)를 통해서 텍스트를 입력받고, 입력받은 텍스트에 대한 에러 검출용 값을 계산하며, 이렇게 계산한 에러 검출용 값과 기준 데이터의 에러 검출용 값을 비교한다(S105).
매처(21)는 S103단계에서 비교한 결과와 S105단계에서 비교한 결과가 모두 일치하는 경우(S107: Y)에 버퍼(19)에 저장된 타겟 데이터와 기준 데이터를 비교한다(S109)
매처(21)는 시스템 레지스터에 매칭 결과를 레지스터에 기록한다(S111). 한편, 매처(21)는 S103단계에서 비교한 결과와 S105단계에서 비교한 결과가 어느 하나라도 불 일치하는 경우(S107: N)에는 타겟 데이터에 대한 매칭 동작을 종료한다.
도 7은 본 발명적 개념의 다른 예시적 실시예에 따른 검색 또는 패턴 매칭 방법을 설명하기 위한 도면이다.
도 7과 도 1을 참조하여 본 발명적 개념의 예시적 실시예에 따른 검색 또는 패턴 매칭 방법을 설명하기로 한다.
버퍼(7, 9)는 타겟 데이터를 수신하여 텍스트 로더(11)로 전달한다(S201).
해시 로더(13)는 텍스트 로더(11)를 통해서 입력받은 텍스트의 해시 값을 계산하고, 이 해시 값과 기준 데이터의 해시 값을 비교한다(S203).
암호화 해시 값 비교부(17)는 텍스트 로더(11)를 통해서 텍스트를 입력받고, 입력받은 텍스트에 대하여 암호화 해시 알고리즘을 적용하여 그 값을 계산하며, 이렇게 계산한 암호화 해시 값과 기준 데이터의 암호화 해시값을 비교한다(S205).
암호화 해시 값이 서로 일치하면(S207: Y), 암호화 해시 값 비교부(17)는 그 결과를 레지스터(25)에 기록하고(S213), 타겟 데이터에 대한 매칭동작을 종료한다.
암호화 해시 값이 서로 일치하지 않는 경우(S207: N)에는, 해시 값이 서로 일치되면(S209: Y) 기준 데이터와 타겟 데이터를 비교하고(S211), S209의 비교결과를 레지스터(25)에 기록하고(S213), 타겟 데이터에 대한 매칭동작을 종료한다.
한편, 해시 값이 서로 일치하지 않은 경우(S209: N)에는 그 결과를 레지스터(25)에 기록하고(S213), 타겟 데이터에 대한 매칭 동작을 종료한다.
도 6과 도 7의 실시예의 경우, 타겟 데이터가 복수개의 서브 데이터로 구성되는 경우를 상정하지 않은 것이며, 이는 본 발명적 개념의 설명의 편의를 위한 것일 뿐, 타겟 데이터가 복수개의 서브 데이터로 구성되는 경우에도 도 6과 도 7과 같은 원리로 검색 또는 패넌 매칭 방법이 수행될 수 있음은 물론이다. 도 1에 타겟 데이터가 복수개의 서브 데이터로 구성된 경우에 대하여 상세한 설명을 하였으므로, 그 설명을 참조하기 바란다.
본 명세서에 설명된 다양한 기술이 하드웨어 또는 소프트웨어, 또는 이 둘의 적절한 조합으로 구현될 수 있다. 따라서, 검색 또는 패턴 매칭 엔진과 그 방법의 전부 또는 일부는 하드웨어만으로 구성되거나, 또는 하드웨어와 소프트웨어의 조합, 또는 소프트웨어만으로 구성될 수 있다. 소프트웨어로 구성되는 경우에는, 플로피 디스켓, CD-ROM, 하드 드라이브, 또는 임의의 기타 컴퓨터 판독가능 저장 매체 등의 실체적인 매체에 구현된 프로그램 코드(즉, 명령어들)의 형태를 취할 수 있다.
또한 본 발명적 개념의 하나 이상의 예시적 실시예에 따른 검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법은 전기선 또는 케이블, 광섬유 등의 전송매체를 통해 또는 임의의 기타 형태의 전송을 통해 전송되는 프로그램 코드의 형태로 구현되어 통신을 통하여 실시될 수 있으며, 이러한 전송매체 또한 본 발명적 개념의 일 실시예에 해당할 것이다.
상기와 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
1: 시스템 인터페이스 3: DB(Deta Base) 인터페이스
5, 7, 9, 19, 23: 버퍼들 11: 텍스트 로더
13: 해시 로더 15: 에러 검출용 값 비교부
17: 암호화 해시 값 비교부 21: 매처

Claims (51)

  1. 타겟 데이터의 일부인 서브 데이터에 대한 에러 검출용 값을 계산하고, 상기계산한 에러 검출용 값과 기준 데이터의 에러 검출용 값을 비교하는 에러 검출용 값 비교부; 및
    상기 서브 데이터의 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값이 서로 일치하는 경우에, 상기 서브 데이터와 상기 기준 데이터를 비교하는 매처;를 포함하며,
    상기 서브 데이터는, 상기 타겟 데이터가 소정의 단위로 분할된 것이며,
    상기 에러 검출용 값 비교부는, 모든 상기 서브 데이터에 대해서 상기 계산한 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값을 비교하고,
    상기 매처는 상기 서브 데이터의 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값이 서로 일치하는 모든 상기 서브 데이터에 대해서 상기 서브 데이터와 상기 기준 데이터를 비교하는 것을 특징으로 하는 패턴 매칭용 엔진.
  2. 제1항에 있어서,
    상기 서브 데이터의 해시 값과, 상기 기준 데이터의 해시 값을 비교하는 해시 로더;를 더 포함하며,
    상기 매처는, 또한, 상기 서브 데이터의 해시 값과 상기 기준 데이터의 해시 값이 서로 일치하는 경우에, 상기 서브 데이터와 상기 기준 데이터를 비교하는 것을 특징으로 하는 패턴 매칭용 엔진.
  3. 제2항에 있어서,
    상기 해시 로더가 상기 서브 데이터에 대한 해시값을 계산하고, 상기 계산한 해시값과 상기 기준 데이터의 해시값을 비교하는 것을 특징으로 하는 패턴 매칭용 엔진.
  4. 제3항에 있어서,
    상기 서브 데이터를 상기 해시 로더와 상기 에러 검출용 값 비교부에 각각 제공하는 텍스트 로더를 더 포함하는 것을 특징으로 하는 패턴 매칭용 엔진.
  5. 제2항에 있어서,
    상기 서브 데이터를 상기 해시 로더에 제공하는 텍스트 로더;를 더 포함하는 것을 특징으로 하는 패턴 매칭용 엔진.
  6. 제5항에 있어서,
    상기 서브 데이터를 서로 교번적으로 저장하는 제1버퍼와 제2버퍼를 더 포함하고,
    상기 제1버퍼와 상기 제2버퍼는 서로 교번적으로 상기 서브 데이터를 상기 텍스트 로더에 제공하는 것을 특징으로 하는 패턴 매칭용 엔진.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 타겟 데이터의 일부인 서브 데이터에 대한 에러 검출용 값을 계산하고, 상기 계산한 에러 검출용 값과 기준 데이터의 에러 검출용 값을 비교하는 에러 검출용 값 비교 단계; 및
    상기 서브 데이터의 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값이 서로 일치하는 경우에, 상기 서브 데이터와 상기 기준 데이터를 비교하는 상기 서브 데이터에 관한 비교 단계; 를 포함하며,
    상기 서브 데이터는, 상기 타겟 데이터가 소정의 단위로 분할된 것이며,
    상기 서브 데이터에 대한 비교 단계는, 상기 타겟 데이터의 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값이 서로 일치하는 모든 상기 서브 데이터에 대해서 상기 서브 데이터와 상기 기준 데이터를 비교하는 것인, 패턴 매칭 방법.
  13. 제12항에 있어서,
    상기 서브 데이터의 해시 값과, 기준 데이터의 해시 값을 비교하는 상기 서브 데이터의 해시값에 관한 비교 단계;를 더 포함하며,
    상기 서브 데이터의 해시 값과 상기 기준 데이터의 해시 값이 서로 일치하는 경우에, 상기 서브 데이터에 관한 비교 단계가 실행되는 것을 특징으로 하는 패턴 매칭 방법.
  14. 제13항에 있어서,
    상기 서브 데이터의 해시값에 관한 비교 단계는 상기 서브 데이터에 대한 해시 값을 계산하고, 상기 계산한 해시 값과 상기 기준 데이터의 해시 값을 비교하는 단계인 것을 특징으로 하는 패턴 매칭 방법.
  15. 제14항에 있어서,
    상기 서브 데이터의 해시값에 관한 비교 단계의 결과 상기 서브 데이터의 해시 값과 상기 기준 데이터의 해시 값이 일치하고, 그리고
    상기 에러 검출용 값 비교 단계의 결과 상기 서브 데이터에 대한 에러 검출용 값과 상기 기준 데이터의 에러 검출용 값이 일치할 경우, 상기 서브 데이터에 관한 비교 단계가 수행되는 것을 특징으로 하는 패턴 매칭 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
KR1020110120028A 2011-11-17 2011-11-17 검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법 KR102029465B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020110120028A KR102029465B1 (ko) 2011-11-17 2011-11-17 검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법
JP2012251053A JP5619851B2 (ja) 2011-11-17 2012-11-15 パターンマッチングエンジン及びこれを備えた端末装置並びにその方法
US13/680,540 US9104866B2 (en) 2011-11-17 2012-11-19 Pattern matching engine, terminal apparatus using the same, and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110120028A KR102029465B1 (ko) 2011-11-17 2011-11-17 검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법

Publications (2)

Publication Number Publication Date
KR20130054570A KR20130054570A (ko) 2013-05-27
KR102029465B1 true KR102029465B1 (ko) 2019-10-08

Family

ID=48428282

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110120028A KR102029465B1 (ko) 2011-11-17 2011-11-17 검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법

Country Status (3)

Country Link
US (1) US9104866B2 (ko)
JP (1) JP5619851B2 (ko)
KR (1) KR102029465B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101602993B1 (ko) * 2012-08-23 2016-03-11 엘에스산전 주식회사 프로그래밍 언어 오류 검색 장치
US9300578B2 (en) * 2013-02-21 2016-03-29 Applied Micro Circuits Corporation Large receive offload functionality for a system on chip
US9125060B2 (en) 2013-11-22 2015-09-01 At&T Mobility Ii Llc Methods, systems, and computer program products for intercepting, in a carrier network, data destined for a mobile device to determine patterns in the data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217286A1 (en) 2002-04-13 2003-11-20 Itshak Carmona System and method for detecting malicious code
US20070088955A1 (en) 2005-09-28 2007-04-19 Tsern-Huei Lee Apparatus and method for high speed detection of undesirable data content
JP2010113706A (ja) * 2008-11-05 2010-05-20 Internatl Business Mach Corp <Ibm> 誤ってプログラムされた埋め込み装置をリカバリする方法、コンピュータ・プログラム、およびシステム
WO2011003958A1 (en) 2009-07-10 2011-01-13 F-Secure Corporation Anti-virus scanning

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1966798A2 (en) * 2005-12-22 2008-09-10 Koninklijke Philips Electronics N.V. Device for and method of retrieval of a data file
WO2007117574A2 (en) * 2006-04-06 2007-10-18 Smobile Systems Inc. Non-signature malware detection system and method for mobile platforms
US7626530B2 (en) * 2008-05-01 2009-12-01 Robert Bosch Gmbh System and method for improving linearity of electronic circuits with mechanical oscillators
US8373708B2 (en) * 2008-07-30 2013-02-12 Nvidia Corporation Video processing system, method, and computer program product for encrypting communications between a plurality of graphics processors
US8136001B2 (en) * 2009-06-05 2012-03-13 Freescale Semiconductor, Inc. Technique for initializing data and instructions for core functional pattern generation in multi-core processor
CN102289617B (zh) * 2010-06-21 2014-07-09 三星Sds株式会社 反恶意软件装置、服务器和匹配恶意软件模式的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217286A1 (en) 2002-04-13 2003-11-20 Itshak Carmona System and method for detecting malicious code
JP2005522800A (ja) * 2002-04-13 2005-07-28 コンピュータ アソシエイツ シンク,インコーポレイテッド 悪性コードを検知するシステム及び方法
US20070088955A1 (en) 2005-09-28 2007-04-19 Tsern-Huei Lee Apparatus and method for high speed detection of undesirable data content
JP2010113706A (ja) * 2008-11-05 2010-05-20 Internatl Business Mach Corp <Ibm> 誤ってプログラムされた埋め込み装置をリカバリする方法、コンピュータ・プログラム、およびシステム
WO2011003958A1 (en) 2009-07-10 2011-01-13 F-Secure Corporation Anti-virus scanning

Also Published As

Publication number Publication date
KR20130054570A (ko) 2013-05-27
US20130133067A1 (en) 2013-05-23
US9104866B2 (en) 2015-08-11
JP2013109761A (ja) 2013-06-06
JP5619851B2 (ja) 2014-11-05

Similar Documents

Publication Publication Date Title
US9990583B2 (en) Match engine for detection of multi-pattern rules
US20180089430A1 (en) Computer security profiling
RU2607231C2 (ru) Системы и способы защиты от вредоносного программного обеспечения на основе нечеткого вайтлистинга
US9058492B1 (en) Techniques for reducing executable code vulnerability
RU2634178C1 (ru) Способ обнаружения вредоносных составных файлов
US9135443B2 (en) Identifying malicious threads
US8352484B1 (en) Systems and methods for hashing executable files
WO2015101097A1 (zh) 特征提取的方法及装置
CN110445769B (zh) 业务系统的访问方法及装置
KR20130044290A (ko) 악성 소프트웨어를 분석 및 검출하기 위한 방법 및 장치
US9202050B1 (en) Systems and methods for detecting malicious files
US9268939B2 (en) Method and apparatus for determining virus-infected files
US20110295894A1 (en) System and method for matching pattern
JP2017097843A (ja) スクリプトの実行をブロックするシステム及び方法
US20150186649A1 (en) Function Fingerprinting
US8656494B2 (en) System and method for optimization of antivirus processing of disk files
US20160196427A1 (en) System and Method for Detecting Branch Oriented Programming Anomalies
CN110023938B (zh) 利用函数长度统计确定文件相似度的系统和方法
US8572730B1 (en) Systems and methods for revoking digital signatures
EP3462699B1 (en) System and method of identifying a malicious intermediate language file
KR102029465B1 (ko) 검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법
KR101563059B1 (ko) 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법
US9787699B2 (en) Malware detection
RU2628922C1 (ru) Способ определения похожести составных файлов
CN111177805B (zh) 一种提高处理器运行安全性的方法、装置及cpu芯片

Legal Events

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