KR101274348B1 - Anti-Malware Device, Server and Pattern Matching Method - Google Patents

Anti-Malware Device, Server and Pattern Matching Method Download PDF

Info

Publication number
KR101274348B1
KR101274348B1 KR1020110059075A KR20110059075A KR101274348B1 KR 101274348 B1 KR101274348 B1 KR 101274348B1 KR 1020110059075 A KR1020110059075 A KR 1020110059075A KR 20110059075 A KR20110059075 A KR 20110059075A KR 101274348 B1 KR101274348 B1 KR 101274348B1
Authority
KR
South Korea
Prior art keywords
hash
malware
coefficient
patterns
values
Prior art date
Application number
KR1020110059075A
Other languages
Korean (ko)
Other versions
KR20110139117A (en
Inventor
유인선
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to JP2011136948A priority Critical patent/JP5378458B2/en
Priority to CN201110183976.3A priority patent/CN102289617B/en
Priority to EP11170732A priority patent/EP2410453A1/en
Priority to US13/165,429 priority patent/US8365288B2/en
Publication of KR20110139117A publication Critical patent/KR20110139117A/en
Application granted granted Critical
Publication of KR101274348B1 publication Critical patent/KR101274348B1/en

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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

안티멀웨어 디바이스, 서버 및 멀웨어 패턴 매칭 방법이 개시된다. 해시값 생성부는 적어도 하나 이상의 해시 계수를 가진 해시 함수를 이용하여, 멀웨어 패턴 DB를 이루는 멀웨어 패턴들에 대한 해시 값들과 타겟데이터에 대한 해시 값을 생성하고, 해시 매처부는 멀웨어 패턴들의 해시 값들에, 타겟데이터의 해시 값을 매칭시키며, 매칭부는 해시 매처부에 의한 매칭이 성공하면, 멀웨어 패턴들과 타겟데이터를 매칭시킨다.An anti-malware device, server and malware pattern matching method are disclosed. The hash value generator generates a hash value for the malware and target data of the malware patterns constituting the malware pattern DB by using a hash function having at least one hash coefficient, and the hash matcher is configured to hash values of the malware patterns, The hash value of the target data is matched, and if the matching by the hash matcher succeeds, the matching unit matches the malware patterns with the target data.

Description

안티멀웨어 디바이스, 서버 및 멀웨어 패턴 매칭 방법{Anti-Malware Device, Server and Pattern Matching Method}Anti-Malware Device, Server and Pattern Matching Method

본 발명은 안티멀웨어 디바이스, 서버 및 멀웨어 패턴 매칭 방법에 관한 것으로서, 더욱 상세하게는 바이러스 패턴 매칭 시에 해시 충돌을 최소화할 수 있는 안티멀웨어 디바이스, 서버 및 멀웨어 패턴 매칭 방법에 관한 것이다.The present invention relates to an anti-malware device, a server and a malware pattern matching method, and more particularly, to an anti-malware device, a server and a malware pattern matching method that can minimize hash collisions during virus pattern matching.

멀웨어(Malware)는 컴퓨터 바이러스, 트로이 목마, 악성 코드(Malicious Code) 등 컴퓨터에 악영향을 끼칠 수 있는 모든 소프트웨어를 총칭한다. 멀웨어는 첨부 파일을 열어 보거나, 소프트웨어를 다운받아 설치하는 종래의 통념을 벗어나 단지 유명 검색 페이지의 링크나 이미지를 클릭하기만 해도 원하지 않는 소프트웨어가 설치되고, 시스템이 하이재킹당할 수 있어 주의가 필요하다.Malware is a generic term for all software that can harm your computer, including computer viruses, Trojan horses, and malicious code. Malware goes beyond the conventional notion of opening attachments, downloading and installing software, and simply clicking on a link or image on a popular search page installs unwanted software and the system can be hijacked.

한편, 컴퓨터와 비교하여 운영체제 및 파일 시스템의 편중이 덜하고, 이용되는 데이터들의 중요도가 상대적으로 떨어지는 관계 등으로 인하여 아직까지 무선 통신 시스템에 대한 모바일 바이러스의 인식 및 피해는 크지 않는 실정이다.On the other hand, due to the relationship between the operating system and the file system is less than the computer, and the importance of the data used is relatively low, the recognition and damage of the mobile virus to the wireless communication system is not yet large.

그러나, 휴대단말기의 하드웨어가 고급화되고 휴대단말기에서 수행되는 응용프로그램이 다양해지고 복잡해져 감에 따라 기존 컴퓨터를 공격하던 멀웨어가 휴대단말기에도 심각한 폐해를 일으킬 가능성이 높아지고 있다. 특히, 와이브로(WiBro) 등 무선 휴대 인터넷 서비스가 확산되는 추세에 따라 기존 컴퓨터용 응용 프로그램의 취약점을 공격하는 악성코드에 더하여 블루투스(Bluetooth), MMS(Multimedia Messaging System) 등 휴대단말기용 응용 프로그램 및 서비스의 취약점을 공격하는 모바일 악성코드(mobile malware)가 등장하고 있다. 이러한 각종 악성코드들은 휴대단말기의 오동작을 유도하고 데이터를 삭제하거나 사용자 개인정보를 유출하는 등 심각한 피해를 입힐 수 있다.However, as the hardware of the portable terminal is advanced and the applications executed in the portable terminal are diversified and complicated, the malware that attacks the existing computer is likely to cause serious damage to the portable terminal. In particular, in accordance with the proliferation of wireless portable Internet services such as WiBro, applications and services for mobile terminals such as Bluetooth and Multimedia Messaging System (MMS), in addition to malicious codes that attack vulnerabilities of existing computer applications. Mobile malware is emerging that attacks vulnerabilities. These various malicious codes can cause serious damage such as inducing malfunction of the mobile terminal, deleting data or leaking user's personal information.

본 발명은 서버에서 해시충돌을 방지하기 위한 해시 계수 또는 해시 함수를 산정하는 작업을 수행하고, 산정된 해시 계수 또는 해시 함수를 안티멀웨어 디바이스에게 전송함으로써 해시 충돌을 최소화할 수 있는 안티멀웨어 디바이스, 서버 및 멀웨어 패턴 매칭 방법을 제공하는데 그 목적이 있다.The present invention performs an operation of calculating a hash coefficient or a hash function to prevent a hash collision in the server, and the anti-malware device, server that can minimize the hash collision by transmitting the calculated hash coefficient or hash function to the anti-malware device And a malware pattern matching method.

또한, 본 발명은 안티멀웨어 시스템의 서버에서 해시 계수를 산출하여 클라이언트에서의 해시 충돌을 방지할 수 있는 안티멀웨어 디바이스, 서버 및 멀웨어 패턴 매칭 방법을 제공하는데 그 다른 목적이 있다.Another object of the present invention is to provide an antimalware device, a server, and a malware pattern matching method capable of preventing a hash collision from a client by calculating a hash coefficient in a server of the antimalware system.

본 발명의 일 실시예에 따르면, 적어도 하나 이상의 해시 계수를 가진 해시 함수를 이용하여, 멀웨어 패턴들에 대한 해시 값들과 타겟데이터에 대한 해시 값을 생성하는 해시값 생성부; 상기 멀웨어 패턴들의 해시 값들에, 상기 타겟데이터의 해시 값을 매칭시키는 해시 매처부; 및 상기 해시 매처부에 의한 매칭이 성공하면, 상기 멀웨어 패턴들과 상기 타겟데이터의 패턴을 매칭시키는 매칭부;를 포함하는 안티멀웨어 디바이스가 제공된다.According to an embodiment of the present invention, a hash value generator for generating hash values for malware patterns and hash values for target data using a hash function having at least one hash coefficient; A hash matcher which matches a hash value of the target data with hash values of the malware patterns; And a matching unit for matching the malware patterns with the pattern of the target data when the matching by the hash matcher succeeds.

본 발명의 일 실시예에 따르면, 멀웨어 패턴들의 해시 값들이 상호 충돌될 확률이 최소화되도록, 상기 멀웨어 패턴들을 참조하여 상기 해시 계수를 선정하는 단계; 상기 선정된 해시 계수를 사용하여 상기 멀웨어 패턴들에 대한 해시 값들을 산출하는 단계; 및 상기 멀웨어 패턴들에 대한 해시 값들 중 적어도 하나와 상기 타겟데이터에 대한 해시 값이 매칭되는 경우에, 상기 멀웨어 패턴들과 상기 타겟데이터의 패턴을 매칭시키는 단계;를 포함하는 해시 계수를 이용하여 멀웨어 패턴 매칭 동작을 수행하는 방법이 제공된다.According to an embodiment of the present invention, selecting the hash coefficient with reference to the malware patterns so as to minimize the probability that the hash values of the malware patterns mutually conflict; Calculating hash values for the malware patterns using the predetermined hash coefficient; And matching the malware patterns with a pattern of the target data when at least one of the hash values for the malware patterns and the hash value for the target data are matched with each other. A method of performing a pattern matching operation is provided.

본 발명의 일 실시예에 따르면, 해시 함수를 이용하여 멀웨어 패턴들의 해시 값들을 계산하는 단계; 상기 해시 함수를 이용하여 타겟데이터에 대한 해시 값을 계산하는 단계; 상기 멀웨어 패턴들에 대한 해시 값들과 상기 타겟데이터에 대한 해시 값이 매칭되는 경우에, 상기 멀웨어 패턴들과 상기 타겟데이터의 패턴을 매칭시키는 단계; 및 상기 계산된 멀웨어 패턴들의 해시 값들이 서로 충돌되는지 여부를 판단하는 단계;를 포함하는 해시 함수를 이용한 멀웨어 패턴 매칭 방법이 제공된다. According to an embodiment of the present invention, calculating hash values of malware patterns using a hash function; Calculating a hash value for target data using the hash function; If the hash values for the malware patterns and the hash value for the target data match, matching the malware patterns with the pattern of the target data; And determining whether hash values of the calculated malware patterns are collided with each other. A malware pattern matching method using a hash function is provided.

본 발명의 일 실시예에 따르면, 서버로부터 적어도 하나의 해시 계수와 데이터를 수신하는 통신부; 상기 적어도 하나의 해시 계수를 가지는 해시 함수를 이용하여 멀웨어 패턴들에 대한 해시값들과 타겟 데이터에 대한 해시값을 생성하는 해시값 생성부; 상기 타겟 데이터의 해시값과 상기 멀웨어 패턴들의 해시값들을 매칭시키는 해시 매처부, 상기 해시 매처에 의한 매칭이 성공하면, 상기 멀웨어 패턴들과 상기 타겟 데이터를 매칭시키는 매칭부를 포함하는 프로세서를 포함하는 안티 멀웨어 디바이스가 제공된다.According to one embodiment of the invention, the communication unit for receiving at least one hash coefficient and data from the server; A hash value generator configured to generate hash values for malware patterns and hash values for target data using a hash function having the at least one hash coefficient; And a processor comprising a hash matcher for matching the hash values of the target data and the hash values of the malware patterns, and a matching unit for matching the malware patterns with the target data when matching by the hash matcher is successful. Malware devices are provided.

본 발명의 일 실시예에 따르면, 해시 계수를 가지는 해시 함수를 이용하여 멀웨어 패턴 매칭을 수행하는 안티 멀웨어 디바이스에게 멀웨어 패턴 데이터를 전송하는 서버에 있어서, 상기 멀웨어 패턴들이 상기 안티 멀웨어 디바이스에게 전송될 때 상기 안티 멀웨어 디바이스에게 상기 해시 계수를 전송하는 업데이트부;를 포함하는 서버가 제공된다.According to an embodiment of the present invention, in a server for transmitting malware pattern data to an anti-malware device performing a malware pattern matching using a hash function having a hash coefficient, when the malware patterns are transmitted to the anti-malware device It is provided with a server comprising; an update unit for transmitting the hash coefficient to the anti-malware device.

본 발명에 의하면, 서버쪽의 컴퓨팅 환경을 이용하여 서버에서 해시 충돌을 최소화할 수 있는 작업을 하여 최적의 해시 계수(Hash Coefficient)값을 구성하여 클라이언트에 시그네쳐(Signature) DB와 함께 클라이언트에 전달하기 때문에, 종래 클라이언트쪽의 제한된 메모리 저장 공간과 컴퓨팅 파워로 인한 문제를 해결하는 효과가 있다. According to the present invention, by using the server-side computing environment to work to minimize the hash collision in the server to configure the optimal hash coefficient (Hash Coefficient) value to the client (Signature) to deliver to the client with the signature (DB) Therefore, there is an effect of solving the problems caused by the limited memory storage space and the computing power of the conventional client side.

이렇게 됨으로써, 본 발명에서 클라이언트는 부하소모가 많이 줄어들고, 결과적인 부분만 처리하면 되므로 성능상의 향상도 기대할 수 있다. By doing so, in the present invention, the client can greatly reduce the load consumption, and only the resulting portion can be processed, so that the improvement in performance can be expected.

또한, 본 발명에서는 해시 충돌이 최소화되기 때문에 패턴 검출 시에도 빠르게 처리할 수 있는 효과가 있다. In addition, in the present invention, since the hash collision is minimized, there is an effect that can be processed quickly at the time of pattern detection.

그리고, 소형 컴퓨터 디바이스에서는 해시 충돌이 적을 수록 메모리 접근이 적어지기 때문에 빠른 속도와 적은 메모리 사용으로 인하여 배터리 소모도 줄일 수 있는 효과가 있다.In addition, in a small computer device, the smaller the hash collision, the less the memory is accessed, thereby reducing the battery consumption due to the high speed and the low memory usage.

도 1은 본 발명의 일 실시예에 따른 안티멀웨어 시스템을 도시한 도면,
도 2는 본 발명의 실시예에 따라 안티멀웨어 디바이스로 전송되는 멀웨어 패턴데이터들의 패킷 및/또는 파일의 형태를 설명하기 위한 도면,
도 3은 해시값 생성부가 제1멀웨어 패턴데이터들 중 바이러스 패턴데이터들에 대한 해시 값을 생성하는 일련의 과정을 보여주는 모식도,
도 4는 제1해시 매처 테이블과 제1서브 매처 테이블의 일 예를 보여주는 도면,
도 5는 패턴 DB부의 일 예를 보여주는 도면,
도 6은 제2해시 매처 테이블과 제2서브 매처 테이블의 일 예를 보여주는 도면,
도 7은 본 발명의 다른 실시예에 따른 안티멀웨어 시스템을 도시한 도면,
도 8은 본 발명의 일 실시예에 따른 멀웨어 패턴 매칭 방법 중 서버의 동작을 설명하기 위한 흐름도,
도 9는 본 발명의 일 실시예에 따른 안티멀웨어 디바이스의 멀웨어 패턴 매칭 방법을 설명하기 위한 흐름도,
도 10은 본 발명의 일 실시예에 따른 안티멀웨어 시스템의 멀웨어 패턴 매칭 방법 중 업데이트 방법을 설명하기 위한 흐름도,
도 11은 본 발명의 다른 실시예에 따른 안티멀웨어 시스템을 도시한 도면,
도 12는 본 발명의 다른 실시예에 따른 안티 멀웨어 시스템에서 해시 충돌 방지 방법을 수행하는 기본 프로세스를 도시한 흐름도,
도 13은 본 발명의 다른 실시예에 따른 S1209 단계인 블록 생성 프로세스를 설명하기 위한 흐름도,
도 14는 본 발명의 다른 실시예에 따른 S1211 단계인 충돌 회피 프로세스를 설명하기 위한 흐름도,
도 15는 본 발명의 다른 실시예에 따른 S1411 단계인 해시 함수 처리 과정을 설명하기 위한 흐름도,
도 16은 본 발명의 다른 실시예에 따른 서버에서 수행하는 업데이트 과정을 보여주는 흐름도, 그리고
도 17 내지 22는 본 발명의 실시예들에 따른 SOC의 효과를 설명하기 위한 도면들이다.
1 is a diagram illustrating an anti-malware system according to an embodiment of the present invention;
2 is a view for explaining the form of a packet and / or file of malware pattern data transmitted to the anti-malware device according to an embodiment of the present invention,
FIG. 3 is a schematic diagram illustrating a series of processes in which a hash value generator generates a hash value for virus pattern data among first malware pattern data; FIG.
4 is a diagram illustrating an example of a first hash matcher table and a first sub matcher table;
5 is a view illustrating an example of a pattern DB unit;
6 is a diagram illustrating an example of a second hash matcher table and a second sub matcher table;
7 is a diagram illustrating an anti-malware system according to another embodiment of the present invention;
8 is a flowchart illustrating an operation of a server in a malware pattern matching method according to an embodiment of the present invention;
9 is a flowchart illustrating a malware pattern matching method of an anti-malware device according to an embodiment of the present invention;
10 is a flowchart illustrating an update method of a malware pattern matching method of an anti-malware system according to an embodiment of the present invention;
11 is a diagram illustrating an anti-malware system according to another embodiment of the present invention;
12 is a flowchart illustrating a basic process of performing a hash collision prevention method in an anti-malware system according to another embodiment of the present invention;
13 is a flowchart for explaining a block generation process in step S1209 according to another embodiment of the present invention;
14 is a flowchart for explaining a collision avoidance process of step S1211 according to another embodiment of the present invention;
15 is a flowchart illustrating a hash function processing process of step S1411 according to another embodiment of the present invention;
16 is a flowchart illustrating an update process performed by a server according to another embodiment of the present invention; and
17 to 22 are views for explaining the effect of the SOC according to the embodiments of the present invention.

이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 개재될 수도 있다는 것을 의미한다.BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features, and advantages of the present invention will become more readily apparent from the following description of preferred embodiments with reference to the accompanying drawings. However, the present invention is not limited to the embodiments described herein but may be embodied in other forms. Rather, the embodiments disclosed herein are provided so that the disclosure can be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. In this specification, when an element is referred to as being on another element, it may be directly formed on another element, or a third element may be interposed therebetween.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. The terms "comprises" and / or "comprising" used in the specification do not exclude the presence or addition of one or more other elements.

이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다. Hereinafter, the present invention will be described in detail with reference to the drawings. In describing the specific embodiments below, various specific details have been set forth in order to explain the invention in greater detail and to assist in understanding it. However, those skilled in the art can understand that the present invention can be used without these various specific details. In some cases, it is mentioned in advance that parts of the invention which are commonly known in the description of the invention and which are not highly related to the invention are not described in order to prevent confusion in explaining the invention without cause.

도 1은 본 발명의 일 실시예에 따른 안티멀웨어 시스템을 도시한 도면이다.1 is a diagram illustrating an anti-malware system according to an embodiment of the present invention.

도 1을 참조하면, 안티멀웨어 시스템은 서버(100) 및 안티멀웨어 디바이스(200)를 포함한다. 서버(100)와 안티멀웨어 디바이스(200)는 네트워크(10)를 통해 통신가능하도록 연결될 수 있다.Referring to FIG. 1, an antimalware system includes a server 100 and an antimalware device 200. The server 100 and the anti-malware device 200 may be connected to communicate with each other via the network 10.

서버(100)는 안티멀웨어 디바이스(200)에게 멀웨어 패턴 DB(Database)와 적어도 하나의 해시 계수를 전송한다. 멀웨어 패턴 DB는 멀웨어 패턴들로 구성되어 있다. 멀웨어 패턴들은 바이러스, 트로이목마, 감염 파일, 악성 코드 등 파일에 손상을 주는 데이터이다.The server 100 transmits a malware pattern DB (Database) and at least one hash coefficient to the antimalware device 200. Malware Pattern DB consists of malware patterns. Malware patterns are data that damages files such as viruses, Trojans, infected files, and malicious code.

멀웨어 패턴들은 안티멀웨어 디바이스(200)가 타겟데이터의 멀웨어 감염 여부를 검출하기 위해 사용하는 기준 데이터이다. 멀웨어 패턴들은 바이러스 스캐닝을 위한 바이러스 패턴들과 방화벽 필터링을 위한 룰 패턴들을 포함할 수 있다. 바이러스 패턴과 룰 패턴에 대해서는 후술한다.The malware patterns are reference data used by the anti-malware device 200 to detect whether or not the target data is infected with malware. The malware patterns may include virus patterns for virus scanning and rule patterns for firewall filtering. The virus pattern and the rule pattern will be described later.

해시 계수는 안티멀웨어 디바이스(200)에서 해시값을 산출할 때 사용되는 계수이다. 바람직하게, 해시 계수는 가능한 한 해시 충돌을 방지할 수 있는 계수로 선정된다. 본 발명의 일 실시예에 따르면, 해시 계수는 멀웨어 패턴들 중 바이러스 패턴들을 참조하여 선정되는 바이러스 해시 계수와 룰 패턴들을 참조하여 선정되는 룰 해시 계수를 포함할 수 있다.The hash coefficient is a coefficient used when calculating the hash value in the anti-malware device 200. Preferably, the hash coefficient is chosen to be one that can prevent hash collision as much as possible. According to an embodiment of the present invention, the hash coefficient may include a virus hash coefficient selected by referring to virus patterns among malware patterns and a rule hash coefficient selected by referring to rule patterns.

서버(100)는 업데이트용 멀웨어 패턴이 발생하면 해시 계수를 재선정하고, 업데이트용 멀웨어 패턴과 재선정된 해시 계수를 포함하는 업데이트용 멀웨어 패턴 DB를 안티멀웨어 디바이스(200)로 전송한다.When the update malware pattern occurs, the server 100 reselects the hash coefficient, and transmits the update malware pattern DB including the update malware pattern and the reselected hash coefficient to the anti-malware device 200.

안티멀웨어 디바이스(200)는 적어도 하나 이상의 해시 계수를 가지는 해시 함수를 이용하여 멀웨어 패턴 매칭을 수행한다. 적어도 하나 이상의 해시 계수는 서버(100)에서 선정된 계수이다. 이를 위하여, 안티멀웨어 디바이스(200)는 서버(100)로부터 수신된 멀웨어 패턴 DB에 포함된 해시 계수를 해시 함수의 계수로 사용하고, 멀웨어 패턴들을 해시 함수의 변수에 대입하여 사용한다. 안티멀웨어 디바이스(200)는 시스템 온 칩, 노트북, 데스크 탑 컴퓨터, 스마트 폰, 스마트 카드 및 반도체용 자산 칩(IP) 등과 같은 모바일 전자기기에 해당할 수 있다.The anti-malware device 200 performs malware pattern matching using a hash function having at least one hash coefficient. At least one hash coefficient is a coefficient selected by the server 100. To this end, the anti-malware device 200 uses the hash coefficient included in the malware pattern DB received from the server 100 as a coefficient of the hash function, and substitutes the malware patterns into variables of the hash function. The anti-malware device 200 may correspond to a mobile electronic device such as a system on chip, a notebook, a desktop computer, a smart phone, a smart card, and an asset chip (IP) for a semiconductor.

이하에서는, ‘멀웨어 패턴 또는 멀웨어 패턴들”은 종종 “멀웨어 패턴 데이터”라고 언급이 되고, '안티멀웨어 디바이스(200)로 전송할 멀웨어 패턴데이터들' 또는 '안티멀웨어 디바이스(200)가 기저장하고 있는 멀웨어 패턴데이터들'은 '제1멀웨어 패턴데이터들'로 언급이 되고, '안티멀웨어 디바이스(200)로 전송할 해시 계수'는 '제1해시 계수'로 언급이 되며, '제1해시 계수를 가지는 해시 함수'는 '제1해시 함수'로서 언급된다.Hereinafter, the "malware pattern or malware patterns" is often referred to as "malware pattern data", and the "malware pattern data to be transmitted to the anti-malware device 200" or the "anti-malware device 200" Malware pattern data 'is referred to as' first malware pattern data', and 'hash coefficient to be transmitted to the anti-malware device 200' is referred to as' first hash coefficient 'and has a' first hash coefficient '. Hash function 'is referred to as a' first hash function '.

또한, 이하의 설명에서는, 서버(100)로부터 안티멀웨어 디바이스(200)로 전송되는 제1멀웨어 패턴데이터들이 바이러스 패턴데이터들이면, 바이러스 패턴데이터들과 함께 전송되는 제1해시 계수는 바이러스 해시 계수일 수 있다. 또한, 서버(100)로부터 안티멀웨어 디바이스(200)로 전송되는 제1멀웨어 패턴데이터들이 룰 패턴데이터들이면, 룰 패턴데이터들과 함께 전송되는 제1해시 계수는 룰 해시 계수일 수 있다. 또한, 서버(100)로부터 안티멀웨어 디바이스(200)로 전송되는 제1멀웨어 패턴데이터들이 바이러스 패턴데이터들과 룰 패턴데이터들을 모두 포함하고 있으면, 함께 전송되는 제1해시 계수는 바이러스 해시 계수와 룰 해시 계수를 포함할 수 있다.본 발명의 일 실시예에서, 서버(100)는 해시 계수 선정부(110) 및 업데이트부(120)를 포함한다. In addition, in the following description, if the first malware pattern data transmitted from the server 100 to the antimalware device 200 is virus pattern data, the first hash coefficient transmitted together with the virus pattern data may be a virus hash coefficient. have. In addition, if the first malware pattern data transmitted from the server 100 to the anti-malware device 200 are rule pattern data, the first hash coefficient transmitted together with the rule pattern data may be a rule hash coefficient. In addition, when the first malware pattern data transmitted from the server 100 to the anti-malware device 200 includes both virus pattern data and rule pattern data, the first hash coefficient transmitted together is a virus hash coefficient and a rule hash. In an embodiment of the present invention, the server 100 includes a hash coefficient selecting unit 110 and an update unit 120.

해시 계수 선정부(110)는 제1멀웨어 패턴데이터들에 해시 함수들을 적용할 경우, 최소의 해시 충돌 결과를 발생하는 해시 함수에 기초하여, 안티멀웨어 디바이스(200)로 전송할 제1해시 계수를 선정한다. When the hash coefficient selecting unit 110 applies the hash functions to the first malware pattern data, the hash coefficient selecting unit 110 selects the first hash coefficient to be transmitted to the antimalware device 200 based on a hash function that generates a minimum hash collision result. do.

일 예로, 해시 계수 선정부(110)는 제1멀웨어 패턴데이터들을 해시 함수에 적용하였을 때 도출되는 해시 값들이 상호 충돌될 확률이 최소화되도록 하는 알고리즘을 사용하여 제1해시 계수를 선정할 수 있다. 자세히 설명하면, 해시 계수 선정부(110)는 준비된 복수 개의 후보 해시 그룹들(GN, N=1, 2, …)을 사용하여 제1멀웨어 패턴데이터들의 해시 값들을 구할 수 있다. 각 후보 해시 그룹은 적어도 하나 이상의 후보 해시 계수로 이루어진다. 예를 들어, 제1후보 해시 그룹 G1은 후보 해시 계수 {a1, b1, c1}을 포함하고, 제2후보 해시 그룹은 후보 해시 계수 {a2, b2, c2}을 포함한다고 가정한다. 해시 계수 선정부(110)는 해시 함수에 후보 해시 그룹들(G1, G2, …)의 후보 해시 계수를 적용하여 후보 해시 그룹들 각각에 대한 해시 값들을 산출할 수 있다. 이때, 해시 계수 선정부(110)는 안티멀웨어 디바이스(200)에서 사용중인 제1멀웨어 패턴데이터들을 참조하여 해시 값들을 산출할 수 있다. 해시 계수 선정부(110)는 해시 값들의 충돌 횟수(즉, 해시 충돌 횟수)를 후보 해시 그룹마다 카운팅하고, 해시 충돌이 가장 적은 후보 해시 그룹의 해시 계수를 제1해시 계수로 선정할 수 있다.As an example, the hash coefficient selecting unit 110 may select the first hash coefficient by using an algorithm that minimizes the probability that the hash values derived when the first malware pattern data is applied to the hash function are minimized. In detail, the hash coefficient selecting unit 110 may obtain hash values of the first malware pattern data using the prepared candidate hash groups GN, N = 1, 2,... Each candidate hash group consists of at least one candidate hash coefficient. For example, assume that the first candidate hash group G1 includes candidate hash coefficients {a1, b1, c1}, and the second candidate hash group includes candidate hash coefficients {a2, b2, c2}. The hash coefficient selecting unit 110 may calculate the hash values for each of the candidate hash groups by applying the candidate hash coefficients of the candidate hash groups G1, G2,... To the hash function. In this case, the hash coefficient selecting unit 110 may calculate hash values by referring to the first malware pattern data used in the anti-malware device 200. The hash coefficient selecting unit 110 may count the number of collisions (ie, the number of hash collisions) of the hash values for each candidate hash group, and select a hash coefficient of the candidate hash group having the least hash collision as the first hash coefficient.

또는, 해시 계수 선정부(110)는 제1멀웨어 패턴데이터들을 해시 함수에 적용하였을 때 도출되는 해시 값들의 분산값이 최소화되도록 하는 해시 계수를 제1해시 계수로 선정할 수 있다. 즉, 해시 계수 선정부(110)는 후보 해시 그룹들 각각에 대한 해시 값들이 산출되면, 해시 값들의 분산값을 후보 해시 그룹별로 산출한다. 해시 계수 선정부(110)는 후보 해시 그룹별로 산출된 분산값들 중 최소의 분산값이 산출되도록 한 후보 해시 그룹을 확인하고, 확인된 후보 해시 그룹의 해시 계수를 제1해시 계수로 선정할 수 있다.Alternatively, the hash coefficient selecting unit 110 may select a hash coefficient that minimizes a variance of hash values derived when the first malware pattern data is applied to the hash function as the first hash coefficient. That is, when the hash values for each of the candidate hash groups are calculated, the hash coefficient selecting unit 110 calculates a variance value of the hash values for each candidate hash group. The hash coefficient selecting unit 110 may check a candidate hash group for calculating a minimum variance value among variances calculated for each candidate hash group, and select the hash coefficient of the identified candidate hash group as the first hash coefficient. have.

업데이트부(120)는 안티멀웨어 디바이스(200)로 제1멀웨어 패턴데이터들을 전송할 때, 선정된 제1해시 계수를 멀웨어 패턴데이터들과 같이 전송할 수 있다. 업데이트부(120)가 전송하는 제1해시 계수는 안티멀웨어 디바이스(200)로 전송되는 제1멀웨어 패턴데이터들의 해시 값들을 산정하는데 사용될 수 있다.When the updater 120 transmits the first malware pattern data to the anti-malware device 200, the updater 120 may transmit the selected first hash coefficient together with the malware pattern data. The first hash coefficient transmitted by the updater 120 may be used to calculate hash values of the first malware pattern data transmitted to the anti-malware device 200.

도 2는 본 발명의 실시예에 따라 안티멀웨어 디바이스로 전송되는 멀웨어 패턴데이터들의 패킷 및/또는 파일의 형태를 설명하기 위한 도면이다.2 is a view for explaining the form of a packet and / or file of malware pattern data transmitted to the anti-malware device according to an embodiment of the present invention.

도 2를 참조하면, 패킷 및/또는 파일은 헤더 항목(310), 해시 항목(320) 및 데이터 항목(330)을 포함한다. 업데이트부(120)는 헤더 항목(310)에 헤더 정보를 기재하고, 해시 항목(320)에 제1해시 계수를 기재하며, 데이터 항목(330)에 제1멀웨어 패턴데이터들을 기록한다. 업데이트부(120)는 각 항목들(310, 320, 330)에 데이터가 기재되면, 패킷 및/또는 파일을 SVD 형식으로 안티멀웨어 디바이스(200)로 전송할 수 있다.Referring to FIG. 2, the packet and / or file includes a header item 310, a hash item 320, and a data item 330. The updater 120 describes the header information in the header item 310, the first hash coefficient in the hash item 320, and records the first malware pattern data in the data item 330. When data is described in the items 310, 320, and 330, the updater 120 may transmit the packet and / or file to the antimalware device 200 in the SVD format.

한편, 제1멀웨어 패턴데이터들을 업데이트할 데이터가 있는 경우에 대해 설명하면 다음과 같다. 이하에서는, '제1멀웨어 패턴데이터들 중 업데이트되는 데이터'를 '업데이트용 멀웨어 패턴데이터들'이라 하고, 업데이트용 멀웨어 패턴데이터들을 더 참조하여 재산정되는 해시 계수를 '제2해시 계수'라 하며, '제2해시 계수를 가지는 해시 함수'를 '제2해시 함수'라 한다.A case where there is data to update the first malware pattern data will be described below. Hereinafter, 'updated data of the first malware pattern data' is referred to as 'malware pattern data for updating', and a hash coefficient that is redefined by further referring to the malware pattern data for updating is referred to as a 'second hash coefficient'. , 'Hash function with second hash coefficient' is called 'second hash function'.

해시 계수 선정부(110)는, 업데이트용 멀웨어 패턴데이터들과 제1멀웨어 패턴데이터들 모두를 해시 함수에 적용하였을 때 도출되는 해시 값들이 상호 충돌될 확률이 최소화되도록 하는 알고리즘을 사용하여 제2해시 계수를 선정할 수 있다. 또는, 해시 계수 선정부(110)는, 업데이트용 멀웨어 패턴데이터들과 제1멀웨어 패턴데이터들 모두를 해시 함수에 적용하였을 때 도출되는 해시 값의 분산값이 최소화되도록 하는 해시 계수를 제2해시 계수로 선정할 수 있다.The hash coefficient selecting unit 110 uses a second hash using an algorithm that minimizes the probability that the hash values derived when applying both the update malware pattern data and the first malware pattern data to the hash function are minimized. The coefficient can be selected. Alternatively, the hash coefficient selecting unit 110 may generate a hash coefficient to minimize the variance of the hash value derived when applying both the update malware pattern data and the first malware pattern data to the hash function. Can be selected.

업데이트부(120)는 산정된 제2해시 계수와 업데이트용 멀웨어 패턴데이터들을 함께 안티멀웨어 디바이스(200)로 전송할 수 있다. 도 2를 참조하여 설명하면, 업데이트부(120)는 헤더 항목(310)에 헤더 정보를 기재하고, 해시 항목(320)에 변경된 제2해시 계수를 기재하며, 데이터 항목(330)에 업데이트용 멀웨어 패턴데이터들을 기재하여 패킷 및/또는 파일을 안티멀웨어 디바이스(200)로 전송할 수 있다.The updater 120 may transmit the calculated second hash coefficient and the update malware pattern data together to the antimalware device 200. Referring to FIG. 2, the updater 120 writes the header information in the header item 310, the changed second hash coefficient in the hash item 320, and the update malware in the data item 330. The pattern data may be described to transmit a packet and / or a file to the anti-malware device 200.

다시 도 1을 참조하면, 본 발명의 일 실시예에 따른 안티멀웨어 디바이스(200)는 패턴 DB(210), 해시값 생성부(220), 패턴 해시값 테이블(230), 테이블 생성부(240), 제1해시 매처 테이블(250), 제1서브 매처 테이블(255), 제2해시 매처 테이블(260), 제2서브 매처 테이블(265), 해시 매처부(270) 및 매칭부(280)를 포함할 수 있다.Referring back to FIG. 1, the antimalware device 200 according to an embodiment of the present invention may include a pattern DB 210, a hash value generator 220, a pattern hash value table 230, and a table generator 240. , The first hash matcher table 250, the first sub matcher table 255, the second hash matcher table 260, the second sub matcher table 265, the hash matcher 270, and the matching unit 280. It may include.

안티멀웨어 디바이스(200)는 서버(100)로부터 제1멀웨어 패턴데이터들과 제1해시 계수를 포함하는 멀웨어 패턴 DB를 도 2와 같은 SVD 형태로 수신한다. 멀웨어 패턴 DB 중 제1멀웨어 패턴데이터들은 패턴 DB(210) 형태로 메모리(미도시)에 저장되고, 제1해시 계수는 해시값 생성부(220)로 입력된다. The anti-malware device 200 receives the malware pattern DB including the first malware pattern data and the first hash coefficient from the server 100 in the SVD form as shown in FIG. 2. The first malware pattern data of the malware pattern DB is stored in a memory (not shown) in the form of a pattern DB 210, and the first hash coefficient is input to the hash value generator 220.

패턴 DB(210)는 서버(100)로부터 수신된 제1멀웨어 패턴데이터들을 저장한다. 제1멀웨어 패턴데이터들은 타겟데이터의 멀웨어 감염 여부를 검출하기 위하여 매칭부(280)가 타겟데이터와의 매칭 동작을 수행할 때 사용될 수 있다.The pattern DB 210 stores the first malware pattern data received from the server 100. The first malware pattern data may be used when the matching unit 280 performs a matching operation with the target data to detect whether the target data is infected with malware.

서버(100)로부터 수신된 제1멀웨어 패턴데이터들이 바이러스 패턴데이터들과 룰 패턴데이터들을 모두 포함하고 있는 경우, 패턴 DB(210)는 바이러스 패턴 DB와 룰 패턴 DB를 포함할 수 있다. 바이러스 패턴 DB와 룰 패턴 DB는 시스템 온 칩(System-on-chip, SoC)에 구비된 메모리(미도시)에 저장되어 있을 수 있다.When the first malware pattern data received from the server 100 includes both virus pattern data and rule pattern data, the pattern DB 210 may include a virus pattern DB and a rule pattern DB. The virus pattern DB and the rule pattern DB may be stored in a memory (not shown) provided in a system-on-chip (SoC).

바이러스 패턴 DB는 바이러스 패턴데이터들의 집합체로서, 타겟데이터에 대해 바이러스 스캐닝 동작을 수행할 때 사용된다. 즉, 바이러스 패턴데이터들은 타겟데이터의 바이러스 감염 여부를 검출하기 위하여 사용된다.The virus pattern DB is a collection of virus pattern data and is used when performing a virus scanning operation on the target data. That is, the virus pattern data is used to detect whether the target data is virus infected.

룰 패턴 DB는 룰 패턴데이터들을 저장하는 데이터베이스이다. 룰 패턴데이터는 외부로부터 유입된 패킷데이터의 필터링을 위하여, 즉, 패킷데이터를 차단(block)할지 또는 통과(allow)시킬지를 결정하기 위하여 사용된다. 룰 패턴데이터는 사용자에 의해 직접 설정되거나 서버(100)에서 디폴트로 설정되어 사용자 디바이스에 전송될 수 있다.The rule pattern DB is a database that stores rule pattern data. The rule pattern data is used for filtering packet data introduced from the outside, that is, to determine whether to block or allow the packet data. Rule pattern data may be directly set by the user or set by default in the server 100 and transmitted to the user device.

해시값 생성부(220)는 서버(100)로부터 수신된 적어도 하나 이상의 제1해시 계수와 패턴 DB(210)에 저장된 제1멀웨어 패턴데이터들을 이용하여 제1멀웨어 패턴데이터들에 대한 해시값(HP)들을 생성할 수 있다. 즉, 해시값 생성부(220)는 바이러스 패턴데이터들에 대한 해시값(HV)들을 생성하거나, 룰 패턴데이터들에 대한 해시값(HR)들을 생성할 수 있다. 따라서, 이하의 설명에서 해시값(HP)은 해시값(HV)이거나 또는 해시값(HR)을 의미할 수 있다.The hash value generator 220 uses the at least one first hash coefficient received from the server 100 and the first malware pattern data stored in the pattern DB 210 to generate a hash value HP for the first malware pattern data. ) Can be created. That is, the hash value generator 220 may generate hash values HV for virus pattern data or generate hash values HR for rule pattern data. Therefore, in the following description, the hash value HP may mean a hash value HV or a hash value HR.

제1해시 계수는 제1멀웨어 패턴데이터들에 대한 해시 함수를 통한 최소의 해시 충돌 결과에 기초하여 서버(100)에서 선정된다. 또한, 제1해시 함수는, 안티멀웨어 디바이스(200)로 전송될 제1멀웨어 패턴데이터들에 대한 해시 값들을 무작위로 도출하였을 때, 도출되는 해시 값들이 상호 충돌될 확률이 최소화되도록 정해진 함수이다.The first hash coefficient is selected by the server 100 based on the minimum hash collision result through the hash function for the first malware pattern data. In addition, the first hash function is a function determined to minimize the probability of collisions between the hash values derived when randomly deriving hash values for the first malware pattern data to be transmitted to the anti-malware device 200.

해시값 생성부(220)는 제1해시 계수를 가지는 제1해시 함수를 이용하여, 제1멀웨어 패턴데이터들에 대한 해시 값을 생성할 수 있다. The hash value generator 220 may generate a hash value for the first malware pattern data by using a first hash function having a first hash coefficient.

먼저, 도 3 내지 도 5를 참조하여, 안티멀웨어 디바이스(200)가 바이러스 패턴데이터들과 바이러스 해시 계수를 이용하여 바이러스 패턴데이터들에 대한 해시 값을 생성하고, 바이러스 스캐닝을 수행하는 과정에 대해 설명한다.First, a process in which the anti-malware device 200 generates a hash value for virus pattern data using virus pattern data and a virus hash coefficient and performs virus scanning will be described with reference to FIGS. 3 to 5. do.

도 3은 해시값 생성부가 제1멀웨어 패턴데이터들 중 바이러스 패턴데이터들에 대한 해시 값을 생성하는 일련의 과정을 보여주는 모식도이다.FIG. 3 is a schematic diagram illustrating a process of generating a hash value for virus pattern data among the first malware pattern data by the hash value generator.

도 3을 참조하면, 해시 함수 포맷이 f(H)=ax+by+cz인 경우, (a, b, c)는 해시 계수, (x, y, z)는 변수이다. 따라서, 서버(100)로부터 수신된 제1해시 계수, 즉, 바이러스 해시 계수가 (a1, b1, c1)인 경우, 해시값 생성부(220)는 (a1, b1, c1)을 각각 (a, b, c)에 대입하여, f(H)=a1x+b1y+c1z라는 제1해시 함수를 만들 수 있다. 그리고, 해시값 생성부(220)는 패턴 DB(210)에 저장된 바이러스 패턴데이터들의 값을 (x, y, z)에 입력하여 바이러스 패턴데이터들 각각에 대한 해시 값(HV)들을 생성할 수 있다. 변수로서 입력되는 값은 바이러스 패턴데이터로부터 입력될 수 있는 모든 경우의 수를 가질 수 있다. 즉, 입력될 수 있는 경우의 수가 100개라면, 1개의 바이러스 패턴데이터에 대한 해시 값은 최대 100개 생성될 수 있다.Referring to FIG. 3, when the hash function format is f (H) = ax + by + cz, (a, b, c) is a hash coefficient and (x, y, z) is a variable. Therefore, when the first hash coefficient received from the server 100, that is, the virus hash coefficient is (a1, b1, c1), the hash value generating unit 220 selects (a1, b1, c1) from (a, By substituting b, c) we can create a first hash function of f (H) = a1x + b1y + c1z. The hash value generator 220 may generate hash values HV for each of the virus pattern data by inputting the values of the virus pattern data stored in the pattern DB 210 to (x, y, z). . The value entered as a variable can have any number of cases that can be entered from virus pattern data. That is, if the number of cases that can be input is 100, a maximum of 100 hash values for one virus pattern data may be generated.

모든 바이러스 패턴데이터들에 대한 해시 값(HV)들이 생성되면, 해시값 생성부(220)는 패턴 해시값 테이블(230)을 생성할 수 있다.When the hash values HV for all the virus pattern data are generated, the hash value generator 220 may generate the pattern hash value table 230.

패턴 해시값 테이블(230)은 해시값 생성부(220)에서 생성된 해시 값(HV) 및 해시 값(HV)에 대응하는 바이러스 패턴데이터의 패턴을 매핑한 테이블로서 메모리(미도시)로 로딩될 수 있다. 도 3에서, 바이러스 패턴데이터들 중 어느 하나의 해시 값이 'X' 인 경우, 상기 어느 하나에 해당하는 바이러스 패턴데이터의 패턴은 'abcdefg'를 갖는다.The pattern hash value table 230 may be loaded into a memory (not shown) as a table in which patterns of the virus pattern data corresponding to the hash value HV and the hash value HV generated by the hash value generator 220 are mapped. Can be. In FIG. 3, when the hash value of any one of the virus pattern data is 'X', the pattern of the virus pattern data corresponding to the one has 'abcdefg'.

테이블 생성부(240)는 패턴 해시값 테이블(230)을 참조하여 제1해시 매처 테이블(250)과 제1서브 매처 테이블(255)을 생성할 수 있다.The table generator 240 may generate the first hash matcher table 250 and the first sub matcher table 255 with reference to the pattern hash value table 230.

도 4는 제1해시 매처 테이블과 제1서브 매처 테이블의 일 예를 보여주는 도면이다.4 is a diagram illustrating an example of a first hash matcher table and a first sub matcher table.

도 4의 우측에 도시된 테이블을 참조하면, 테이블 생성부(240)는 제1해시 함수로부터 생성될 수 있는 모든 해시 값(HV)들이 인덱스(INDEX)로 정해질 수 있다. 할 수 있다. 즉, 테이블 생성부(240)는 제1해시 함수로 입력될 수 있는 모든 바이러스 패턴데이터들을 입력하는 경우, 생성되는 모든 해시 값들을 인덱스로 사용한다. 따라서, 도 4의 인덱스 항목에는 도 3에서 생성된 바이러스 패턴데이터들의 해시 값(X와 Y)이 포함되어 있다.Referring to the table illustrated on the right side of FIG. 4, the table generator 240 may determine all hash values HVs generated from the first hash function as the index INDEX. can do. That is, when the table generator 240 inputs all the virus pattern data that can be input as the first hash function, the table generator 240 uses all generated hash values as indexes. Therefore, the index item of FIG. 4 includes hash values X and Y of the virus pattern data generated in FIG. 3.

테이블 생성부(240)는 패턴 해시 값 테이블(230)의 해시 값(HV)들과 모든 인덱스들을 비교하여, 해시 값(HV)과 동일한 인덱스가 있으면 그 동일한 인덱스를 “1”로 설정한다. Value '0'은 해시값(HV)과 동일한 인덱스가 없는 경우 사용되고, '1'은 해시 값(HV)과 동일한 인덱스가 있는 경우 사용된다. 도 3의 패턴 해시값 테이블(230)에는 해시 값(HV)으로서 X와 Y가 포함되어 있으므로, 도 4의 제1해시 매처 테이블(250)에는 인덱스 'X'와 'Y'에 '1'이 체크되어 있다.The table generator 240 compares the hash values HV of the pattern hash value table 230 with all indices, and sets the same index to “1” if there is an index equal to the hash value HV. Value '0' is used when there is no index equal to hash value HV, and '1' is used when there is an index equal to hash value HV. Since the pattern hash value table 230 of FIG. 3 includes X and Y as hash values HV, the first hash matcher table 250 of FIG. 4 has '1' in the indexes 'X' and 'Y'. It is checked.

또한, 테이블 생성부(240)는 패턴 해시값 테이블(230)과 제1해시 매처 테이블(250)을 이용하여 제1서브 매처 테이블(255)을 생성할 수 있다. 제1서브 매처 테이블(255)은 매칭부(280)에서 바이러스 스캐닝을 위해 LPM(Light Pattern Matching) 및 EPM(Exact Pattern Matching) 중 적어도 하나를 수행하는데 사용될 수 있다. LPM과 EPM에 대한 설명은 후술한다.In addition, the table generator 240 may generate the first sub matcher table 255 using the pattern hash value table 230 and the first hash matcher table 250. The first sub matcher table 255 may be used by the matching unit 280 to perform at least one of LPM (Light Pattern Matching) and EPM (Exact Pattern Matching) for virus scanning. The LPM and the EPM will be described later.

도 5를 참조하면, 테이블 생성부(240)는 제1해시 매처 테이블(250)의 모든 인덱스들 중 해시 값(HV)과 일치하는 인덱스들(X와 Y를 포함)을 기준으로 제1서브 매처 테이블(255)을 생성할 수 있다. 이하에서는 '모든 인덱스들 중 해시 값(HV)과 일치하는 인덱스들'을 '매칭 인덱스'라 한다.Referring to FIG. 5, the table generator 240 may include a first sub matcher based on indexes (including X and Y) that match the hash value HV among all the indexes of the first hash matcher table 250. Table 255 may be created. Hereinafter, 'indexes that match the hash value (HV) of all indexes' will be referred to as 'matching indexes'.

테이블 생성부(240)는 매칭 인덱스들에 해당하는 바이러스 패턴데이터들 각각의 중간값(middle)과 끝값(tail), 그리고, 바이러스 패턴데이터들이 저장된 어드레스를 이용하여 제1서브 매처 테이블(255)을 생성할 수 있다. 매칭 인덱스들에 해당하는 바이러스 패턴데이터들 각각의 중간값과 끝값은 패턴 해시값 테이블(230)을 참조할 수 있다. 예를 들어, 매칭 인덱스가 'X'인 경우, 'X'의 패턴은 'abcdefg'이다. 테이블 생성부(240)는 'abcdefg' 중 중간값인 'd'와 끝값인 'g'를 패턴 해시값 테이블(230)에서 확인할 수 있다.The table generator 240 generates the first sub matcher table 255 using the middle and tail values of the virus pattern data corresponding to the matching indexes and the address where the virus pattern data are stored. Can be generated. The median and end values of the virus pattern data corresponding to the matching indices may refer to the pattern hash value table 230. For example, when the matching index is 'X', the pattern of 'X' is 'abcdefg'. The table generator 240 may check the intermediate value 'd' and the end value 'g' among the 'abcdefg' in the pattern hash value table 230.

도 4의 'Virus Pattern Data Address'는 바이러스 패턴데이터들이 저장된 어드레스를 의미한다. 'offset1'은 패턴의 처음값과 중간값까지의 오프셋, 'offset2'는 패턴의 처음값과 끝값까지의 오프셋이다. 'Virus Pattern Data Address' of FIG. 4 means an address where virus pattern data are stored. 'offset1' is the offset between the beginning and the middle of the pattern, and 'offset2' is the offset between the beginning and the end of the pattern.

제1해시 매처 테이블(250)에서 인덱스와 동일한 해시 값(HV)이 두 개 이상 발견되면 해시 충돌이 발생한 것으로 간주된다. '충돌패턴의 offset'은 제1해시 매처 테이블(250)에서 인덱스와 동일한 해시 값(HV)이 예를 들어 두 개 발견되는 경우, 두 개의 해시 값(HV)들 중 하나에게 할당되는 매칭 인덱스를 의미한다. 두 개의 해시 값(HP)들에 해당하는 바이러스 패턴데이터들은 서로 다르므로, 두 개의 해시 값(HV) 모두에 대한 중간값들과 끝값들도 다를 수 있다. 따라서, 테이블 생성부(240)는 두 개의 해시 값(HV)들 중 하나에게는 다른 매칭 인덱스를 할당하여 제1서브 매처 테이블(255)을 생성한다. 도 5의 경우, 매칭 인덱스 'X'의 충돌패턴 오프셋은 'Z'이다. 이는, 'Z'라는 매칭 인덱스에 동일한 해시 값(HV)이 매핑되어 있음을 의미한다.If two or more hash values HV equal to the index are found in the first hash matcher table 250, a hash collision is considered to have occurred. 'Offset of the collision pattern' refers to a matching index assigned to one of two hash values HV when two hash values HV identical to the index are found in the first hash matcher table 250, for example. it means. Since the virus pattern data corresponding to the two hash values (HP) are different from each other, the median and end values for both hash values (HV) may also be different. Accordingly, the table generator 240 generates the first sub matcher table 255 by assigning a different matching index to one of the two hash values HV. In the case of FIG. 5, the collision pattern offset of the matching index 'X' is 'Z'. This means that the same hash value HV is mapped to the matching index 'Z'.

다시 도 1을 참조하면, 해시값 생성부(220)는 바이러스 스캐닝 대상인 타겟데이터를 입력받아 타겟데이터에 대한 해시 값을 더 생성할 수 있다. 타겟데이터는 사전에 정의된 크기로 분할된 서브데이터들(S1, S2, S3, …)로 이루어질 수 있다. 이러한 경우, 해시값 생성부(220)는 서브데이터들을 순차적으로 입력받아 각 서브데이터에 대한 해시 값(HS)들을 생성할 수 있다. 해시값 생성부(220)는 생성된 서브데이터에 대한 해시 값(HS)을 매칭부(280)로 제공할 수 있다. 이하에서는 제1서브데이터(S1) 및 제1서브데이터에 대한 해시 값(HS1)을 예로 들어 설명한다.Referring back to FIG. 1, the hash value generator 220 may further receive a target data that is a virus scanning target and generate a hash value for the target data. The target data may be composed of sub data S1, S2, S3,... Which are divided into a predefined size. In this case, the hash value generator 220 may sequentially receive the sub data and generate hash values HS for each sub data. The hash value generator 220 may provide a hash value HS for the generated sub data to the matching unit 280. Hereinafter, the first sub data S1 and the hash value HS1 of the first sub data will be described as an example.

해시 매처부(270)는 해시값 생성부(220)로부터 제1서브데이터에 대한 해시 값(HS1)을 입력받을 수 있다. 해시 매처부(270)는 제1해시 매처 테이블(250) 중 '1'이 체크된 매칭 인덱스들(예를 들어, X와 Y)에, 제1서브데이터의 해시 값(HS1)을 매칭시킬 수 있다. '1'이 체크된 매칭 인덱스들은 바이러스 패턴데이터들의 해시 값(HV)들 중 일부이다.The hash matcher 270 may receive a hash value HS1 for the first sub data from the hash value generator 220. The hash matcher 270 may match the hash value HS1 of the first sub data to matching indexes (eg, X and Y) in which '1' is checked in the first hash matcher table 250. have. Matching indices of which '1' is checked are some of hash values (HVs) of virus pattern data.

매칭의 성공여부는 해시 매처부(270)와 연동하는 하드웨어(미도시)에서 판단할 수 있다. 하드웨어는 제1해시 매처 테이블(250) 중 '1'이 체크된 매칭 인덱스들(예를 들어, X와 Y)에, 제1서브데이터의 해시 값(HS1)과 일치하는 매칭 인덱스가 있으면 매칭이 성공한 것으로 판단할 수 있다. 예를 들어, 제1서브데이터의 해시 값(HS1)이 'X'인 경우, 매칭 인덱스들에 'X'가 포함되어 있으면 하드웨어는 매칭이 성공한 것으로 판단된다.The success of the matching may be determined by hardware (not shown) that cooperates with the hash matcher 270. If the matching indexes (eg, X and Y) of the first hash matcher table 250 are checked, for example, X and Y, the matching index matches the hash value HS1 of the first sub data. It can be judged that it was successful. For example, when the hash value HS1 of the first sub data is 'X', when the matching indexes include 'X', the hardware determines that the matching is successful.

해시 매처부(270)에 의한 매칭이 성공하면, 매칭부(280)는 바이러스 패턴데이터들 중 적어도 하나와 제1서브데이터의 패턴을 매칭시킬 수 있다. 자세히 설명하면, 매칭부(280)는 해시 값(HS1)과 일치하는 매칭 인덱스(예를 들어, X)에 해당하는 바이러스 패턴데이터와 제1서브데이터의 패턴을 매칭하는 동작을 수행할 수 있다. 이는 '제1서브데이터의 해시 값(HS1)과 일치하는 매칭 인덱스'는 바이러스 패턴데이터를 제1해시 함수에 대입하여 생성된 해시 값이기 때문이다. 바이러스 패턴데이터들과 제1서브데이터의 패턴을 매칭한 결과는 멀웨어의 감염 여부를 판단하는 것에 영향을 미친다.If the matching by the hash matcher 270 is successful, the matching unit 280 may match the pattern of the first sub data with at least one of the virus pattern data. In detail, the matching unit 280 may perform an operation of matching the pattern of the virus pattern data corresponding to the matching index (eg, X) and the first sub data corresponding to the hash value HS1. This is because the 'matching index matching the hash value HS1 of the first sub data' is a hash value generated by substituting the virus pattern data into the first hash function. The result of matching the pattern of the virus pattern data and the first sub data affects whether the malware is infected.

이를 위하여, 매칭부(280)는 LPM 방식 및 EPM 방식을 사용할 수 있다. To this end, the matching unit 280 may use an LPM method and an EPM method.

LPM 방식은 바이러스 패턴데이터와 제1서브데이터의 중간값과 끝값을 이용하여 패턴을 매칭하는 방식이다. 자세히 설명하면, 매칭부(280)는 제1서브데이터의 해시 값(HS1)과 일치하는 매칭 인덱스(예를 들어, X)의 중간값과 끝값을 제1서브 매처 테이블(255)에서 확인한다. 또한, 매칭부(280)는 입력되는 제1서브데이터의 중간값과 끝값을 확인한다. 매칭부(280)는 확인된 매칭 인덱스의 중간값과 제1서브데이터의 중간값을 매칭시키고, 매칭 인덱스의 끝값과 제1서브데이터의 끝값을 매칭시킨다.The LPM method is a method of matching a pattern using an intermediate value and an end value of the virus pattern data and the first sub data. In detail, the matching unit 280 checks the intermediate value and the end value of the matching index (eg, X) that matches the hash value HS1 of the first sub data in the first sub matcher table 255. In addition, the matching unit 280 checks the intermediate value and the end value of the input first sub data. The matching unit 280 matches the median value of the identified matching index with the median value of the first sub data, and matches the end value of the matching index with the end value of the first sub data.

LPM 방식을 사용한 결과, 중간값들이 서로 일치하지 않거나 끝값들이 서로 일치하지 않으면, 제1서브데이터에는 바이러스 패턴데이터들의 패턴이 존재하지 않는 것을 의미한다. 따라서, 제1서브데이터는 멀웨어에 의해 감염되지 않은 정상 데이터로서 판별될 수 있다.As a result of using the LPM method, if the intermediate values do not coincide with each other or the end values do not coincide with each other, it means that there is no pattern of virus pattern data in the first sub data. Therefore, the first sub data can be determined as normal data not infected by the malware.

반면, LPM 방식을 사용한 결과, 중간값들이 서로 일치하고, 끝값들이 서로 일치하면, 매칭부(280)는 EPM 방식을 적용하여 패턴 매칭 동작을 수행할 수 있다. 자세히 설명하면, 매칭부(280)는 LPM 방식 결과 중간값들과 끝값들이 모두 일치하면, 바이러스 패턴데이터와 제1서브데이터의 모든 위치들의 값을 이용하여 패턴을 매칭할 수 있다.On the other hand, as a result of using the LPM method, if the intermediate values match each other and the end values match each other, the matching unit 280 may apply the EPM method to perform a pattern matching operation. In detail, the matching unit 280 may match the pattern by using the values of all positions of the virus pattern data and the first sub data when the intermediate values and the end values of the LPM method match.

이를 위해, 매칭부(280)는 제1서브 매처 테이블(255)을 참조하여 매칭 인덱스(X)에 매핑저장된 바이러스 패턴데이터의 어드레스를 확인한다. 매칭부(280)는 확인된 어드레스에 저장된 바이러스 패턴데이터의 패턴을 메모리(미도시)로부터 읽어온다. 메모리에는 패턴 DB(210) 또는 패턴 해시값 테이블(230)이 로딩되어 있을 수 있다. 도 5는 패턴 DB(210)의 일 예를 보여주는 도면이다. 매칭부(280)는 해당 어드레스에 저장된 바이러스 패턴데이터의 전체 패턴 'abcdefg'와 제1서브데이터의 전체 패턴을 매칭시킨다. To this end, the matching unit 280 checks the address of the virus pattern data mapped to the matching index X by referring to the first sub matcher table 255. The matching unit 280 reads a pattern of virus pattern data stored at the identified address from a memory (not shown). The pattern DB 210 or the pattern hash value table 230 may be loaded in the memory. 5 is a diagram illustrating an example of the pattern DB 210. The matching unit 280 matches the entire pattern 'abcdefg' of the virus pattern data stored at the corresponding address with the entire pattern of the first sub data.

이하에서는 도 6을 참조하여 안티멀웨어 디바이스(200)가 룰 패턴데이터들과 룰 해시 계수를 이용하여 룰 패턴데이터들에 대한 해시 값을 생성하고, 필터링을 수행하는 과정에 대해 설명한다.Hereinafter, a process in which the anti-malware device 200 generates a hash value for the rule pattern data using the rule pattern data and the rule hash coefficient and performs filtering will be described with reference to FIG. 6.

도 6은 제2해시 매처 테이블과 제2서브 매처 테이블의 일 예를 보여주는 도면이다6 is a diagram illustrating an example of a second hash matcher table and a second sub matcher table.

먼저, 해시값 생성부(220)는 서버(100)로부터 수신된 룰 해시 계수를 이전 해시 함수에 적용하여 제1해시 함수를 만들 수 있다. 그리고, 해시값 생성부(220)는 패턴 DB(210)에 저장된 룰 패턴데이터들의 적어도 일부의 값을 제1해시 함수에 입력하여 룰 패턴데이터들 각각에 대한 해시 값(HR)들을 생성할 수 있다. 이는 도 3을 참조하여 설명한 해시값(HR) 생성과 유사하다. First, the hash value generator 220 may generate a first hash function by applying a rule hash coefficient received from the server 100 to a previous hash function. The hash value generator 220 may generate hash values HR for each rule pattern data by inputting at least some values of the rule pattern data stored in the pattern DB 210 to the first hash function. . This is similar to the hash value HR generation described with reference to FIG. 3.

모든 룰 패턴데이터들에 대한 해시 값(HR)들이 생성되면, 해시값 생성부(220)는 룰 패턴 해시값 테이블(미도시)을 생성할 수 있다. 룰 패턴 해시값 테이블(미도시)은 해시값 생성부(220)에서 생성된 해시 값(HR) 및 해시 값(HR)에 대응하는 룰 패턴데이터의 패턴을 매핑한 테이블로서 메모리(미도시)로 로딩될 수 있다.When hash values HR for all rule pattern data are generated, the hash value generator 220 may generate a rule pattern hash value table (not shown). The rule pattern hash value table (not shown) is a table that maps patterns of the hash value HR generated by the hash value generator 220 and the rule pattern data corresponding to the hash value HR to a memory (not shown). Can be loaded.

모든 룰 패턴데이터들에 대한 해시 값(HR)들이 생성되면, 테이블 생성부(240)는 룰 패턴 해시값 테이블(미도시)을 참조하여 제2해시 매처 테이블(260)과 제2서브 매처 테이블(265)을 생성할 수 있다.When the hash values HR for all the rule pattern data are generated, the table generator 240 refers to the rule pattern hash value table (not shown) and the second hash matcher table 260 and the second sub matcher table (not shown). 265).

도 6을 참조하면, 제2해시 매처 테이블(260)은 인덱스(키값)와 존재유무를 나타내는 항목을 포함한다. 테이블 생성부(240)는 제1해시 함수로부터 생성될 수 있는 모든 해시 값(HR)들을 인덱스로 정할 수 있다. 테이블 생성부(240)는 룰 패턴데이터들로부터 생성된 해시 값(HR)들과 모든 인덱스들을 비교하여 제2해시 매처 테이블(260)을 생성할 수 있다. 도 6에서 존재유무 항목의 값이 1 인 것은 인덱스와 동일한 해시값(HR)이 존재하고, ‘0’은 인덱스와 동일한 해시값(HR)이 없음을 의미한다. 이는 도 4를 참조하여 설명한 제1해시 매처 테이블(250) 생성과 유사하다. Referring to FIG. 6, the second hash matcher table 260 includes an index (key value) and an item indicating presence or absence. The table generator 240 may set all hash values HR that can be generated from the first hash function as indexes. The table generator 240 may generate the second hash matcher table 260 by comparing the hash values HR generated from the rule pattern data with all indexes. In FIG. 6, the presence or absence of an item has a hash value HR equal to the index and '0' means that there is no hash value HR equal to the index. This is similar to the generation of the first hash matcher table 250 described with reference to FIG. 4.

도 6의 제2해시 매처 테이블(260)에는 인덱스 'X'에 '1'이 체크되어 있으므로, 생성된 모든 룰 패턴데이터들에 대한 해시 값(HR)들에는 ‘X’가 존재함을 알 수 있다.Since the index 'X' is checked for '1' in the second hash matcher table 260 of FIG. 6, it can be seen that 'X' exists in the hash values HR of all generated rule pattern data. have.

또한, 테이블 생성부(240)는 룰 패턴 해시값 테이블(미도시)과 제2해시 매처 테이블(260)을 이용하여 제2서브 매처 테이블(265)을 생성할 수 있다. In addition, the table generator 240 may generate the second sub matcher table 265 using the rule pattern hash value table (not shown) and the second hash matcher table 260.

테이블 생성부(240)는 제2해시 매처 테이블(260)의 모든 인덱스들 중 해시 값(HR)과 일치하는 인덱스들(X, A를 포함)을 기준으로 제2서브 매처 테이블(265)을 생성할 수 있다. 이하에서는 '모든 인덱스들 중 해시 값(HR)과 일치하는 인덱스들'을 '매칭 인덱스'라 한다.The table generator 240 generates the second sub matcher table 265 based on the indexes (including X and A) that match the hash value HR among all the indexes of the second hash matcher table 260. can do. Hereinafter, 'indexes that match the hash value HR among all the indexes' will be referred to as 'matching indexes'.

제2서브 매처 테이블(265)은 IP와 포트에 대해서만 서브(Sub)를 가지며, 각 서브는 다른 값들로 구성된다.The second sub matcher table 265 has Sub only for IP and port, and each sub is composed of different values.

IP 서브는 인덱스, 중간값(mid), 끝값(tail), 모든 프로토콜에 적용되는 룰 패턴의 존재 유무(ispro), 모든 포트에 적용되는 룰 패턴의 존재 유무(isport), 실제 패턴 메모리 주소, 다음 어드레스(next) 등의 값으로 구성된다.IP subs are indexes, mids, tails, the presence of rule patterns that apply to all protocols (ispro), the presence of rule patterns that apply to all ports (isport), the actual pattern memory address, and the following: It consists of a value such as an address next.

포트 서브는 인덱스, IP 해시값, 프로토콜 해시값(proto hash), 실제 패턴 메모리 주소, 다음 어드레스(next) 등의 값으로 구성된다.The port sub consists of values such as index, IP hash value, protocol hash value, actual pattern memory address, next address (next), and the like.

IP 서브의 중간값은 IP 주소의 3번째 바이트 값을 가지며, 끝 값은 IP주소의 맨 마지막 바이트 값을 가진다. 이런 바이트 위치 선정으로 IPv4인 경우, 해시 매처부(270)에서 IP의 앞 2바이트, 중간값, 끝값으로 IP주소에 대한 검증을 수행할 수 있다. 매칭 인덱스에 해당하는 룰 패턴데이터의 중간값과 끝값은 룰 패턴데이터인 패킷의 헤더로부터 확인될 수 있다.The middle value of the IP sub has the third byte value of the IP address, and the end value has the last byte value of the IP address. In the case of IPv4 based on such byte location selection, the hash matcher 270 may perform verification on the IP address with the first two bytes, the median value, and the end value of the IP. The intermediate value and the end value of the rule pattern data corresponding to the matching index may be identified from the header of the packet which is the rule pattern data.

ispro값은 모든 프로토콜에 적용되는 룰 패턴의 존재 유무(ispro)를 의미하고, 해당 인덱스값의 실제 룰 패턴들 중에 1개의 프로토콜이라도 ALL이라면 1, 아니면 0의 값을 갖는다.The ispro value indicates the existence or absence of a rule pattern applied to all protocols. If one protocol is ALL among the actual rule patterns of the index value, it is 1, or 0.

ispro라는 요소를 갖게 되면, 플래그(IP, Protocol, Port)의 범위를 해당 IP의 룰에 맞춰 다시 구성할 수 있게 된다. 예를 들어, [in, 202.131.29.71, TCP, 80, Allow], [in, 202.131.29.70, ALL, 80, Allow]과 같은 룰 패턴이 2개 있을 때에, 플래그(IP, Protocol, Port)는 Not all, ALL, Not all로 세팅된다. 이때, 202.131.29.71에는 Protocol에 대해 ALL인 룰 패턴이 없으므로, ispro가 0이 되어 추후에 프로토콜 플래그를 Not all로 바꿔준다.If you have an element called ispro, you can reconfigure the range of flags (IP, Protocol, Port) according to the rules of the IP. For example, when there are two rule patterns such as [in, 202.131.29.71, TCP, 80, Allow], [in, 202.131.29.70, ALL, 80, Allow], the flag (IP, Protocol, Port) is Not all, ALL, Not all. At this time, since there is no rule pattern of ALL for 202.131.29.71, ispro becomes 0 and later, the protocol flag is changed to Not all.

isport값은 모든 포트에 적용되는 룰 패턴의 존재 유무(isport)를 의미하며, 해당 인덱스값의 실제 룰 패턴들 중에 1개의 포트라도 ALL이라면 1, 아니면 0의 값을 갖는다. 이는 ispro의 역할과 유사하다.The isport value means isport existence of a rule pattern applied to all ports. If one port is ALL among the actual rule patterns of the corresponding index value, it is 1, or 0 otherwise. This is similar to the role of ispro.

실제 패턴 메모리 주소는 해당 룰 패턴데이터가 실제로 저장되어 있는 곳의 메모리 주소값을 가지며, 다음 어드레스(next)는 제2서브 매처 테이블(265)의 인덱스인 1개의 해시값에 여러 룰 패턴이 몰렸을 때, 다음 패턴 서브를 찾아가는데 필요한 값이다. 다음 어드레스(next)는 제1서브 매처 테이블(255)의 ‘충돌 패턴의 offset’과 유사하다.The actual pattern memory address has a memory address where the rule pattern data is actually stored, and the next address (next) may have several rule patterns gathered in one hash value which is an index of the second sub matcher table 265. When you go to the next pattern sub. The next address next is similar to the 'offset of the collision pattern' of the first sub matcher table 255.

본 발명에서 포트 서브의 IP 해시값과 프로토콜 해시값은 해당 룰의 포트와 IP, 프로토콜의 연관성을 주기 위함이며, 여기서 연관성을 가지는 요소가 없다면 결국은 포트 위주로 룰 패턴 전체를 검색해야만 한다.In the present invention, the IP hash value and the protocol hash value of the port sub are used to give an association between the port, IP, and protocol of the corresponding rule. If there is no element having an association here, the rule pattern must be searched around the port.

다시 도 1을 참조하면, 해시값 생성부(220)는 필터링 대상인 타겟데이터를 입력받아 타겟데이터에 대한 해시 값(HF)을 더 생성하여 매칭부(280)로 제공할 수 있다. 해시값 생성부(220)는 타겟데이터의 패킷의 IP 어드레스, 포트, 프로토콜 등 다양한 정보들 각각에 대한 해시값(HF)을 생성할 수 있다.Referring back to FIG. 1, the hash value generator 220 may receive target data, which is a filtering target, and further generate a hash value HF for the target data and provide the hash value HF to the matching unit 280. The hash value generator 220 may generate a hash value HF for each of various pieces of information such as an IP address, a port, and a protocol of the packet of the target data.

제2해시 매처 테이블(260)과 제2서브 매처 테이블(265)이 생성되면, 해시 매처부(270)는 해시값 생성부(220)로부터 타겟서브데이터에 대한 해시 값(HF)들을 입력받을 수 있다. 해시 매처부(270)는 제2해시 매처 테이블(260) 중 '1'이 체크된 매칭 인덱스들(예를 들어, X와 A)에, 타겟데이터의 해시 값(HF)들을 매칭시킬 수 있다.When the second hash matcher table 260 and the second sub matcher table 265 are generated, the hash matcher 270 may receive the hash values HF for the target sub data from the hash value generator 220. have. The hash matcher 270 may match the hash values HF of the target data to matching indexes (eg, X and A) in which the '1' is checked in the second hash matcher table 260.

해시 매처부(270)에 의한 매칭이 성공하면, 매칭부(280)는 해시 값(HF)과 일치하는 매칭 인덱스(예를 들어, X)에 해당하는 룰 패턴데이터와 타겟데이터의 패턴을 매칭하여 필터링을 수행할 수 있다. 패턴 매칭을 위하여, 매칭부(280)는 제2서브 매처 테이블(265)을 참조하여 LPM 방식 및 EPM 방식을 사용할 수 있다. 이는 바이러스 패턴데이터들의 패턴 매칭에서 설명한 방식과 동일하므로 상세한 설명은 생략한다. 해시 매처부(270)와 매칭부(280)는 하드웨어 로직으로 구현될 수 있다. 패턴 매칭에 의해 룰 패턴데이터와 타겟데이터의 패턴이 일치하면, 타겟데이터는 차단될 수 있다. 한편, 다시 도 1을 참조하면, 제1멀웨어 패턴데이터들이 업데이트되는 경우, 즉, 업데이트용 멀웨어 패턴데이터들이 있는 경우, 업데이트용 멀웨어 패턴데이터들의 특성에 기초하여 제1해시 계수 및 제1해시 함수도 변경될 수 있다. 이는 서버(100)에서 업데이트용 멀웨어 패턴데이터들에 대한 해시 함수를 통한 최소의 해시 충돌 결과에 기초하여 해시 계수를 재생성하기 때문이다. 재생성되는 해시 계수 또는 변경된 제1해시 함수는 상술한 제2해시 계수이다. 따라서, 서버(100)로부터 제공되는 제2해시 계수는 업데이트용 멀웨어 패턴데이터들에 포함되어 있다.If the matching by the hash matcher 270 succeeds, the matching unit 280 matches the pattern of the rule pattern data corresponding to the matching index (for example, X) and the target data with the hash value HF. Filtering can be performed. For pattern matching, the matching unit 280 may use the LPM method and the EPM method with reference to the second sub matcher table 265. Since this is the same as the method described in the pattern matching of virus pattern data, a detailed description thereof will be omitted. The hash matcher 270 and the matcher 280 may be implemented in hardware logic. If the pattern of the rule pattern data and the target data is matched by the pattern matching, the target data may be blocked. Meanwhile, referring again to FIG. 1, when the first malware pattern data is updated, that is, when there is update malware pattern data, a first hash coefficient and a first hash function are also based on characteristics of the update malware pattern data. can be changed. This is because the server 100 regenerates a hash coefficient based on a minimum hash collision result through a hash function for updating malware pattern data. The hash coefficient to be regenerated or the modified first hash function is the second hash coefficient described above. Therefore, the second hash coefficient provided from the server 100 is included in the update malware pattern data.

해시값 생성부(220)는, 서버(100)로부터 업데이트용 멀웨어 패턴데이터들을 수신하는 경우, 업데이트용 멀웨어 패턴데이터들과 함께 전송된 제2해시 계수를 이용하여 해시 값을 재생성할 수 있다. 즉, 해시값 생성부(220)는 업데이트용 멀웨어 패턴데이터들과 함께 서버(100)로부터 수신된 제2해시 계수를 가지는 제2해시 함수를 이용하여 해시 값을 재생성할 수 있다. 따라서, 업데이트용 멀웨어 패턴데이터들로 이루어지는 업데이트용 멀웨어 패턴 DB는, 헤더 정보가 기재되는 헤더 항목(310)과, 제2해시 계수가 기재되는 해시 항목(320)을 포함할 수 있다. 또한, 업데이트용 멀웨어 패턴데이터들은 패턴 DB(210)에 추가될 수 있다. 그 이후, 해시값 생성부(220), 테이블 생성부(240), 해시 매처부(270) 및 매칭부(280)의 동작은 제1멀웨어 패턴데이터들이 입력된 경우와 유사하므로 상세한 설명은 생략한다.When the hash value generator 220 receives the update malware pattern data from the server 100, the hash value generator 220 may regenerate the hash value by using the second hash coefficient transmitted together with the update malware pattern data. That is, the hash value generator 220 may regenerate the hash value by using a second hash function having a second hash coefficient received from the server 100 together with the update malware pattern data. Accordingly, the update malware pattern DB including update malware pattern data may include a header item 310 in which header information is described and a hash item 320 in which a second hash coefficient is described. In addition, the update malware pattern data may be added to the pattern DB (210). Subsequently, operations of the hash value generator 220, the table generator 240, the hash matcher 270, and the matching unit 280 are similar to those in which the first malware pattern data are input, and thus detailed description thereof will be omitted. .

상술한 본 발명의 일 실시예에 의하면, 서버(100)는 안티멀웨어 디바이스(200)에게 해시 계수를 포함하는 멀웨어 패턴데이터들을 전송할 수 있다. 안티멀웨어 디바이스(200)는 서버(100)로부터 수신된 해시 계수를 이용하여 해시 함수를 정하고, 패턴 매칭을 수행할 수 있다.According to an embodiment of the present invention described above, the server 100 may transmit malware pattern data including hash coefficients to the anti-malware device 200. The anti-malware device 200 may determine a hash function using the hash coefficient received from the server 100 and perform pattern matching.

도 7은 본 발명의 다른 실시예에 따른 안티멀웨어 시스템을 도시한 도면이다.7 is a diagram illustrating an anti-malware system according to another embodiment of the present invention.

도 7을 참조하면, 안티멀웨어 시스템은 서버(600) 및 안티멀웨어 디바이스(700)를 포함한다. 안티멀웨어 시스템은 서버(600)와 안티멀웨어 디바이스(700)는 네트워크(20)를 통해 통신가능 하도록 연결될 수 있다. 도 7에 도시된 서버(600) 및 안티멀웨어 디바이스(700)는 도 1 내지 도 6을 참조하여 설명한 서버(100) 및 안티멀웨어 디바이스(200)와 유사하므로 상세한 설명은 생략한다.Referring to FIG. 7, an anti-malware system includes a server 600 and an anti-malware device 700. In the anti-malware system, the server 600 and the anti-malware device 700 may be connected to communicate with each other via the network 20. Since the server 600 and the anti-malware device 700 illustrated in FIG. 7 are similar to the server 100 and the anti-malware device 200 described with reference to FIGS. 1 to 6, detailed descriptions thereof will be omitted.

다만, 도 1의 서버(100)는 해시 계수를 선정하여 안티멀웨어 디바이스(700)에게 전송한다. 반면, 도 7에 도시된 서버(600)는 해시 계수가 적용된 해시 함수를 선정하여 안티멀웨어 디바이스(700)에게 전송할 수 있다. 안티멀웨어 디바이스(700)는 수신된 해시 함수를 이용하여 제1멀웨어 패턴데이터들의 해시 값과 타겟데이터들의 해시 값을 생성할 수 있다. However, the server 100 of FIG. 1 selects a hash coefficient and transmits the hash coefficient to the antimalware device 700. In contrast, the server 600 illustrated in FIG. 7 may select a hash function to which the hash coefficient is applied and transmit the hash function to the antimalware device 700. The anti-malware device 700 may generate a hash value of the first malware pattern data and a hash value of the target data using the received hash function.

이를 위하여, 본 발명의 다른 실시예에 따른 서버(600)는 해시 함수 선정부(610) 및 업데이트부(620)를 포함한다.To this end, the server 600 according to another embodiment of the present invention includes a hash function selecting unit 610 and the update unit 620.

해시 함수 선정부(610)는 제1멀웨어 패턴데이터들을 대상으로 안티 멀웨어 엔진에서 패턴 데이터를 모두 검출하면서 빠르게 검색할 수 있는 함수를 선정하고, 이렇게 선정된 함수에 대한 최적의 계수값을 해시 계수로 선정하여, 안티멀웨어 디바이스(700)로 전송할 제1해시 함수를 정할 수 있다.The hash function selecting unit 610 selects a function that can quickly search while detecting all the pattern data in the anti-malware engine based on the first malware pattern data, and converts an optimal coefficient value for the selected function into a hash coefficient. The first hash function to be transmitted to the anti-malware device 700 may be determined.

일 예로, 해시 함수 선정부(610)는 주어진 제1멀웨어 패턴데이터들을 대상으로 여러 개의 해시 함수 중 최적의 패턴 검출과 빠른 검색을 할 수 있는 함수를 선정한다. 그리고, 해시 함수 선정부(610)는 도 1의 해시 계수 선정부(110)에서 사용한 알고리즘을 이용하여 제1해시 계수를 선정하고, 제1해시 계수를 기존의 해시 함수에 업데이트하여 제1해시 함수와 제1해시 계수를 선정할 수 있다.For example, the hash function selecting unit 610 selects a function for optimal pattern detection and quick search among a plurality of hash functions for the given first malware pattern data. The hash function selecting unit 610 selects the first hash coefficient by using the algorithm used by the hash coefficient selecting unit 110 of FIG. 1, updates the first hash coefficient to an existing hash function, and then applies the first hash function. And the first hash coefficient can be selected.

또는, 해시 함수 선정부(610)는 도 1의 해시 계수 선정부(110)에서 산출한 분산값을 이용하여 제1해시 계수를 선정하고, 제1해시 계수를 기존의 해시 함수에 업데이트하여 제1해시 함수를 선정할 수 있다.Alternatively, the hash function selecting unit 610 selects the first hash coefficient by using the variance calculated by the hash coefficient selecting unit 110 of FIG. 1, updates the first hash coefficient to the existing hash function, and then selects the first hash coefficient. You can select a hash function.

제1멀웨어 패턴데이터들을 업데이트할 데이터가 있는 경우에도, 해시 함수 선정부(610)는 새로운 업데이트용 멀웨어 패턴데이터들과 안티멀웨어 디바이스(700)로 전송된 제1멀웨어 패턴데이터들을 이용하여 제2해시 함수를 재선정할 수 있다.Even when there is data to update the first malware pattern data, the hash function selecting unit 610 may perform a second hash by using the new malware pattern data for updating and the first malware pattern data transmitted to the anti-malware device 700. You can reselect the function.

업데이트부(620)는 안티멀웨어 디바이스(700)로 제1멀웨어 패턴데이터들을 전송할 때, 선정된 제1해시 함수를 멀웨어 패턴데이터들과 같이 전송할 수 있다. 전송되는 제1해시 함수는 안티멀웨어 디바이스(700)로 전송되는 제1멀웨어 패턴데이터들의 해시 값들을 생성하는데 사용될 수 있다.When the updater 620 transmits the first malware pattern data to the anti-malware device 700, the updater 620 may transmit the selected first hash function together with the malware pattern data. The transmitted first hash function may be used to generate hash values of the first malware pattern data transmitted to the anti-malware device 700.

또한, 서버(600)는 안티멀웨어 디바이스(700)로부터의 요청이 있으면, 필요한 업데이트용 멀웨어 패턴데이터들과 함께 업데이트용 해시 함수를 안티멀웨어 디바이스(700)에게 전송한다.In addition, upon request from the anti-malware device 700, the server 600 transmits an update hash function to the anti-malware device 700 together with necessary update malware pattern data.

본 발명의 실시예에서, 서버(600)로부터 안티멀웨어 디바이스(700)로 전송되는 제1멀웨어 패턴데이터들이 바이러스 패턴데이터들이면, 바이러스 패턴데이터들과 함께 전송되는 제1해시 함수는 바이러스 해시 함수일 수 있다. 또한, 서버(600)로부터 안티멀웨어 디바이스(700)로 전송되는 제1멀웨어 패턴데이터들이 룰 패턴데이터들이면, 룰 패턴데이터들과 함께 전송되는 제1해시 함수는 룰 해시 함수일 수 있다. 또한, 서버(600)로부터 안티멀웨어 디바이스(700)로 전송되는 제1멀웨어 패턴데이터들이 바이러스 패턴데이터들과 룰 패턴데이터들을 모두 포함하고 있으면, 함께 전송되는 제1해시 함수는 바이러스 해시 함수와 룰 해시 함수를 포함할 수 있다.In an embodiment of the present invention, if the first malware pattern data transmitted from the server 600 to the anti-malware device 700 is virus pattern data, the first hash function transmitted together with the virus pattern data may be a virus hash function. . In addition, if the first malware pattern data transmitted from the server 600 to the anti-malware device 700 is rule pattern data, the first hash function transmitted together with the rule pattern data may be a rule hash function. In addition, when the first malware pattern data transmitted from the server 600 to the anti-malware device 700 includes both virus pattern data and rule pattern data, the first hash function transmitted together is a virus hash function and a rule hash. It can contain a function.

한편, 본 발명의 다른 실시예에 따른 안티멀웨어 디바이스(700)는 패턴 DB(710), 해시값 생성부(720), 패턴 해시값 테이블(730), 테이블 생성부(740), 제1 해시 매처 테이블(750), 제1 서브 매처 테이블(755), 제 2 서브 매처 테이블(760), 제2 서브 매처 테이블(765), 해시 매처부(770), 매칭부(780) 및 업데이트 요청부(790)를 포함할 수 있다.Meanwhile, the anti-malware device 700 according to another embodiment of the present invention includes a pattern DB 710, a hash value generator 720, a pattern hash value table 730, a table generator 740, and a first hash matcher. Table 750, first sub-matcher table 755, second sub-matcher table 760, second sub-matcher table 765, hash matcher 770, matcher 780, and update requester 790 ) May be included.

도 7의 패턴 DB(710), 패턴 해시값 테이블(730), 테이블 생성부(740), 제1해시 매처 테이블(750), 제1서브 매처 테이블(755), 제2해시 매처 테이블(760), 제2서브 매처 테이블(765), 해시 매처부(770), 매칭부(780)는 도 1의 패턴 DB(210), 패턴 해시값 테이블(230), 테이블 생성부(240), 제1해시 매처 테이블(250), 제1서브 매처 테이블(255), 제2 해시 매처 테이블(260), 제2 서브 매처 테이블(265), 해시 매처부(270) 및 매칭부(280)와 동일하다.The pattern DB 710 of FIG. 7, the pattern hash value table 730, the table generator 740, the first hash matcher table 750, the first sub matcher table 755, and the second hash matcher table 760. The second sub matcher table 765, the hash matcher 770, and the matcher 780 include the pattern DB 210, the pattern hash value table 230, the table generator 240, and the first hash of FIG. 1. It is the same as the matcher table 250, the first sub-matcher table 255, the second hash matcher table 260, the second sub-matcher table 265, the hash matcher 270, and the matching unit 280.

다만, 해시값 생성부(720)는 서버(600)로부터 수신된 제1해시 함수를 이용하여 제1멀웨어 패턴데이터들의 해시 값과 서브데이터들의 해시 값을 생성한다. 예를 들어, 제1멀웨어 패턴데이터들이 바이러스 패턴데이터들이면, 해시값 생성부(720)는 바이러스 해시 함수를 이용하여 바이러스 패턴데이터들에 대한 해시 값을 생성한다. However, the hash value generator 720 generates a hash value of the first malware pattern data and a hash value of the sub data using the first hash function received from the server 600. For example, if the first malware pattern data is virus pattern data, the hash value generator 720 generates a hash value for the virus pattern data using a virus hash function.

업데이트 요청부(790)는 해시값 생성부(720)에서 생성된 제1멀웨어 패턴데이터들에 대한 해시 값들이 서로 충돌되는 횟수가 기준값을 초과하면, 제1해시 계수 또는 제1해시 함수에 대한 업데이트를 서버(600)에게 요청할 수 있다. 또한, 업데이트 요청부(790)는 제1해시 계수뿐만 아니라 제1멀웨어 패턴데이터들의 업데이트를 서버(600)에게 요청할 수도 있다. 업데이트 요청부(790)는 선택적으로 구비될 수 있다.The update request unit 790 updates the first hash coefficient or the first hash function when the number of times that hash values of the first malware pattern data generated by the hash value generator 720 collide with each other exceeds a reference value. May be requested to the server 600. In addition, the update request unit 790 may request the server 600 to update not only the first hash coefficient but also the first malware pattern data. The update request unit 790 may optionally be provided.

업데이트 요청부(790)는 제1서브 매처 테이블(755)을 모니터링하여 해시 충돌 횟수를 카운팅할 수 있다. 일 예로, 업데이트 요청부(790)는 제1서브 매처 테이블(755)의 '충돌 패턴 오프셋' 항목에 기재되는 매칭 인덱스의 개수를 해시 충돌 횟수로 사용할 수 있다. 또는, 해시 충돌 횟수는 카운터(미도시)에 의해 카운팅될 수 있다. The update request unit 790 may monitor the first sub matcher table 755 to count the number of hash collisions. For example, the update requester 790 may use the number of matching indices described in the 'collision pattern offset' item of the first sub matcher table 755 as the number of hash collisions. Alternatively, the hash collision count may be counted by a counter (not shown).

상술한 본 발명의 다른 실시예에 의하면, 서버(600)는 안티멀웨어 디바이스(700)에게 해시 함수를 포함하는 멀웨어 패턴데이터들을 전송할 수 있다. 안티멀웨어 디바이스(700)는 서버(600)로부터 수신된 해시 함수를 이용하여 해시 값을 생성하고, 패턴 매칭을 수행할 수 있다.According to another embodiment of the present invention described above, the server 600 may transmit malware pattern data including a hash function to the anti-malware device 700. The anti-malware device 700 may generate a hash value using the hash function received from the server 600 and perform pattern matching.

도 8은 본 발명의 일 실시예에 따른 멀웨어 패턴 매칭 방법 중 서버의 동작을 설명하기 위한 흐름도이다.8 is a flowchart illustrating an operation of a server in a malware pattern matching method according to an embodiment of the present invention.

도 8의 동작은 도 1 또는 도 7을 참조하여 설명한 서버들(100, 600) 중 어느 하나에 의해 수행될 수 있다.The operation of FIG. 8 may be performed by any one of the servers 100 and 600 described with reference to FIG. 1 or 7.

S810단계에서, 서버는 복수 개의 후보 해시 그룹들(GN, N=1, 2, …)을 선정할 수 있다. 예를 들어, 제1후보 해시 그룹 G1은 후보 해시 계수로서 {a1, b1, c1}을 포함하고, 제2후보 해시 그룹은 후보 해시 계수로서 {a2, b2, c2}을 포함할 수 있다.In operation S810, the server may select a plurality of candidate hash groups GN, N = 1, 2,... For example, the first candidate hash group G1 may include {a1, b1, c1} as candidate hash coefficients, and the second candidate hash group may include {a2, b2, c2} as candidate hash coefficients.

S820단계에서, 서버는 후보 해시 그룹들 각각에 대한 해시값들을 산출할 수 있다. 즉, 서버는 해시 함수에 후보 해시 그룹들(G1, G2, …)의 후보 해시 계수를 적용하여 후보 해시 그룹들 각각에 대한 해시 값들을 산출할 수 있다. 이때, 서버는 안티멀웨어 디바이스에서 사용중인 멀웨어 패턴데이터들을 해시 함수에 대입하여 해시 값들을 산출할 수 있다.In operation S820, the server may calculate hash values for each of the candidate hash groups. That is, the server may calculate hash values for each candidate hash group by applying candidate hash coefficients of the candidate hash groups G1, G2,... To the hash function. At this time, the server may calculate the hash values by substituting the malware pattern data used in the anti-malware device into the hash function.

S830단계에서, 서버는 후보 해시 그룹 별로 산출된 해시 값들을 비교하여, 후보 해시 그룹 별로 발생한 해시 충돌 횟수를 확인할 수 있다.In operation S830, the server may compare hash values calculated for each candidate hash group and check the number of hash collisions that have occurred for each candidate hash group.

S840단계에서, 서버는 해시 충돌이 가장 적은 후보 해시 그룹을 확인하고, 확인된 후보 해시 그룹의 후보 해시 계수를 안티멀웨어 디바이스로 전송할 해시 계수로 선정할 수 있다. In operation S840, the server may identify the candidate hash group having the least hash collision, and select the candidate hash coefficient of the identified candidate hash group as the hash coefficient to be transmitted to the antimalware device.

S850단계에서, 서버는 S840단계에서 선정된 해시 계수, S820단계에서 해시 값 산출시 참조한 멀웨어 패턴데이터들을 안티멀웨어 디바이스로 전송할 수 있다.In operation S850, the server may transmit the malware coefficient data selected in operation S840 and the malware pattern data referenced in calculating the hash value in operation S820 to the anti-malware device.

한편, 서버가 분산값을 이용하여 해시 계수를 선정하는 경우, 서버는 S830단계 및 S840단계 대신 S860단계 및 S870단계를 수행할 수 있다.On the other hand, when the server selects the hash coefficient using the variance value, the server may perform steps S860 and S870 instead of steps S830 and S840.

S860단계에서, 서버는 S820단계에서 산출된 해시 값들의 분산값을 후보 해시 그룹별로 산출할 수 있다.In operation S860, the server may calculate the variance value of the hash values calculated in operation S820 for each candidate hash group.

S870단계에서, 서버는 후보 해시 그룹별로 산출된 분산값들 중 최소의 분산값을 산출한 후보 해시 그룹을 확인하고, 확인된 후보 해시 그룹의 해시 계수를 안티멀웨어 디바이스로 전송할 해시 계수로 선정할 수 있다. In operation S870, the server may identify the candidate hash group that has calculated the minimum variance value among the variances calculated for each candidate hash group, and select the hash coefficient of the identified candidate hash group as a hash coefficient to be transmitted to the antimalware device. have.

이로써, 서버는 멀웨어 패턴데이터들을 해시 함수에 적용하였을 때 도출되는 해시 값들이 상호 충돌될 확률이 최소화되도록 하는 해시 계수를 선정할 수 있다. 또한, 서버는 멀웨어 패턴데이터들이 바이러스 패턴데이터들인 경우, 바이러스 패턴데이터들을 고려하여 바이러스 해시 계수를 선정하며, 멀웨어 패턴데이터들이 룰 패턴데이터들인 경우, 룰 패턴데이터들을 고려하여 룰 해시 계수를 선정할 수 있다.As a result, the server may select a hash coefficient that minimizes the probability that the hash values derived when the malware pattern data is applied to the hash function are mutually collided. In addition, when the malware pattern data is virus pattern data, the server may select a virus hash coefficient in consideration of the virus pattern data, and when the malware pattern data is rule pattern data, the server may select a rule hash coefficient in consideration of the rule pattern data. have.

도 9는 본 발명의 일 실시예에 따른 안티멀웨어 디바이스의 멀웨어 패턴 매칭 방법을 설명하기 위한 흐름도이다.9 is a flowchart illustrating a malware pattern matching method of an anti-malware device according to an embodiment of the present invention.

도 9의 동작은 도 1 또는 도 7을 참조하여 설명한 안티멀웨어 디바이스들(200, 700) 중 어느 하나에 의해 수행될 수 있다.The operation of FIG. 9 may be performed by any one of the anti-malware devices 200 and 700 described with reference to FIG. 1 or 7.

S905단계에서, 안티멀웨어 디바이스는 서버로부터 멀웨어 패턴 DB를 수신할 수 있다. 멀웨어 패턴 DB는 타겟데이터의 멀웨어 감염 여부를 판단하기 위해 패턴 매칭에 사용되는 멀웨어 패턴데이터들과 해시 계수를 포함한다. S905단계에서 수신되는 멀웨어 패턴데이터들이 바이러스 스캐닝을 위한 바이러스 패턴데이터들인 경우, 해시 계수는 바이러스 패턴데이터들을 고려하여 선정된 바이러스 해시 계수이다. 또한, 수신되는 멀웨어 패턴데이터들이 룰 패턴데이터들인 경우, 해시 계수는 룰 패턴데이터들을 고려하여 선정된 룰 해시 계수일 수 있다. 또한, 수신되는 멀웨어 패턴데이터들이 바이러스 패턴데이터들과 룰 패턴데이터들을 모두 포함하고 있는 경우, 함께 전송되는 해시 계수는 바이러스 해시 계수와 룰 해시 계수를 포함할 수 있다.In operation S905, the anti-malware device may receive a malware pattern DB from the server. The malware pattern DB includes malware pattern data and hash coefficients used for pattern matching to determine whether the target data is infected with malware. If the malware pattern data received in step S905 are virus pattern data for virus scanning, the hash coefficient is a virus hash coefficient selected in consideration of the virus pattern data. In addition, when the received malware pattern data is rule pattern data, the hash coefficient may be a rule hash coefficient selected in consideration of the rule pattern data. In addition, when the received malware pattern data includes both virus pattern data and rule pattern data, the hash coefficient transmitted together may include a virus hash coefficient and a rule hash coefficient.

S910단계에서, 안티멀웨어 디바이스는 수신된 멀웨어 패턴데이터들을 패턴 DB에 저장 또는 업데이트한다. In operation S910, the anti-malware device stores or updates the received malware pattern data in the pattern DB.

또한, S915단계에서, 안티멀웨어 디바이스는 해시 함수의 해시 계수를 수신된 해시 계수로 변경할 수 있다.In operation S915, the anti-malware device may change the hash coefficient of the hash function to the received hash coefficient.

S920단계에서, 안티멀웨어 디바이스는 수신된 해시 계수가 적용된 해시 함수에 멀웨어 패턴데이터들을 대입하여 멀웨어 패턴데이터들 각각에 대한 해시 값들을 생성하고, 생성된 해시 값들을 이용하여 패턴 해시값 테이블을 업데이트할 수 있다. 기존에 패턴 해시값 테이블이 없는 경우에는 생성된 해시 값들을 이용하여 패턴 해시값 테이블을 신규로 생성할 수 있다.In step S920, the anti-malware device generates hash values for each of the malware pattern data by inserting malware pattern data into a hash function to which the received hash coefficient is applied, and updates the pattern hash value table using the generated hash values. Can be. If there is no pattern hash value table previously, a new pattern hash value table may be newly created using the generated hash values.

S925단계에서, 안티멀웨어 디바이스는 패턴 해시값 테이블을 참조하여 해시 매처 테이블과 서브 매처 테이블을 업데이트할 수 있다. 기존에 해시 매처 테이블과 서브 매처 테이블이 없는 경우, 안티멀웨어 디바이스는 해시 매처 테이블과 서브 매처 테이블을 신규로 생성할 수 있다. 이는 도 4 및 도 5를 참조하여 상술된다.In operation S925, the anti-malware device may update the hash matcher table and the sub-matcher table with reference to the pattern hash value table. If there is no existing hash matcher table and sub-matcher table, the anti-malware device may create a new hash matcher table and sub-matcher table. This is described in detail with reference to FIGS. 4 and 5.

S930단계에서, 안티멀웨어 디바이스는 타겟데이터들을 서브데이터 단위로 입력받아 서브데이터에 대한 해시 값을 생성할 수 있다. 안티멀웨어 디바이스는 S915단계에서 업데이트된 해시 함수에 서브데이터를 대입하여 해시 값을 생성할 수 있다.In operation S930, the anti-malware device may receive target data in sub data units and generate a hash value for the sub data. The anti-malware device may generate a hash value by assigning sub data to the updated hash function in operation S915.

S935단계에서, 안티멀웨어 디바이스는 해시 값들의 매칭 동작을 수행한다. 즉, 안티멀웨어 디바이스는 해시 매처 테이블 중 매칭 인덱스들(즉, 해시 매처 테이블 중 '1'이 체크된 인덱스)에, 생성된 서브데이터의 해시 값을 매칭시킬 수 있다.In step S935, the anti-malware device performs a matching operation of the hash values. That is, the anti-malware device may match the hash value of the generated subdata to matching indexes (ie, an index of which '1' is checked in the hash matcher table) of the hash matcher table.

S940단계에서, 안티멀웨어 디바이스는 매칭 인덱스들 중 하나와 서브데이터의 해시 값의 일치 여부를 판단할 수 있다.In operation S940, the anti-malware device may determine whether one of the matching indices matches the hash value of the sub data.

판단 결과, 서브데이터의 해시 값이 매칭 인덱스들 중 하나와 일치하면(S940-Y), S945단계에서, 안티멀웨어 디바이스는 LPM 동작을 수행할 수 있다. LPM 방식은 멀웨어 패턴데이터와 서브데이터의 중간값과 끝값을 이용하여 패턴을 매칭하는 방식이다.As a result of determination, if the hash value of the sub data matches one of the matching indexes (S940-Y), in operation S945, the anti-malware device may perform an LPM operation. The LPM method is a method of matching patterns by using an intermediate value and an end value of malware pattern data and sub data.

S950단계에서, 안티멀웨어 디바이스는 멀웨어 패턴데이터와 서브데이터의 중간값들의 일치 여부와, 멀웨어 패턴데이터와 서브데이터의 끝값의 일치 여부를 판단할 수 있다.In operation S950, the anti-malware device may determine whether the middle values of the malware pattern data and the sub data match and the end values of the malware pattern data and the sub data match.

판단 결과, 중간값들과 끝값들이 모두 일치하면(S950-Y), S955단계에서, 안티멀웨어 디바이스는 EPM 동작을 수행할 수 있다. EPM 방식은 멀웨어 패턴데이터와 서브데이터의 모든 위치들의 값을 이용하여 패턴을 매칭하는 방식이다.As a result of the determination, when both the intermediate values and the end values match (S950-Y), in operation S955, the anti-malware device may perform an EPM operation. The EPM method is a method of matching a pattern by using values of all positions of malware pattern data and sub data.

S960단계에서, 안티멀웨어 디바이스는 멀웨어 패턴데이터와 서브데이터 전체가 일치하는지를 판단할 수 있다.In operation S960, the anti-malware device may determine whether the malware pattern data and the entire sub data match.

판단 결과, 전체가 일치하면(S960-Y), S965단계에서, 안티멀웨어 디바이스는 서브데이터가 멀웨어 패턴에 해당하는 것으로 판단할 수 있다.As a result of the determination, if the whole matches (S960-Y), in step S965, the anti-malware device may determine that the sub data corresponds to the malware pattern.

반면, 전체 중 하나의 값이라도 불일치하면(S960-N), S975단계에서, 안티멀웨어 디바이스는 서브데이터가 정상 패턴에 해당하는 것으로 판단할 수 있다.On the other hand, if any value of the whole does not match (S960-N), in step S975, the anti-malware device may determine that the sub data corresponds to the normal pattern.

한편, S940단계 및 S950단계에서의 결과가 일치하지 않은 경우, S975단계에서, 안티멀웨어 디바이스는 현재 처리된 서브데이터가 타겟데이터의 마지막 서브데이터인지 판단한다.On the other hand, if the results in steps S940 and S950 do not match, in step S975, the anti-malware device determines whether the currently processed sub data is the last sub data of the target data.

마지막 서브데이터가 아니면, 안티멀웨어 디바이스는 S935단계로 진입하여 다음 서브데이터에 대한 패턴 매칭을 수행한다.If it is not the last sub data, the anti-malware device enters step S935 to perform pattern matching on the next sub data.

도 10은 본 발명의 일 실시예에 따른 안티멀웨어 시스템의 멀웨어 패턴 매칭 방법 중 업데이트 방법을 설명하기 위한 흐름도이다.10 is a flowchart illustrating an update method of a malware pattern matching method of an anti-malware system according to an embodiment of the present invention.

도 10의 동작은 도 1 또는 도 7을 참조하여 설명한 서버들(100, 600) 중 어느 하나와, 안티멀웨어 디바이스들(200, 700) 중 어느 하나에 의해 수행될 수 있다.The operation of FIG. 10 may be performed by any one of the servers 100 and 600 described with reference to FIG. 1 or 7 and by any one of the anti-malware devices 200 and 700.

S1010단계에서, 안티멀웨어 디바이스는 해시 충돌이 발생하면, S1020단계에서 해시 충돌 횟수를 카운팅하거나 확인할 수 있다. 안티멀웨어 디바이스는 S920단계에서 생성된 멀웨어 패턴데이터들에 대한 해시 값들이 서로 충돌되는 횟수를 카운팅할 수 있다. 안티멀웨어 디바이스는 S925단계에서 생성된 서브 매처 테이블의 충돌 패턴 오프셋의 개수로부터 해시 충돌 횟수를 알 수 있다.In operation S1010, when a hash collision occurs, the anti-malware device may count or check the number of hash collisions in operation S1020. The anti-malware device may count the number of times that hash values of the malware pattern data generated in operation S920 collide with each other. The anti-malware device may know the hash collision count from the number of collision pattern offsets of the sub matcher table generated in operation S925.

S1030단계에서, 안티멀웨어 디바이스는 S1020단계에서 확인된 해시 충돌 횟수와 기준값을 비교할 수 있다.In operation S1030, the anti-malware device may compare the hash collision count and the reference value identified in operation S1020.

비교 결과, S1020단계에서 확인된 해시 충돌 횟수가 기준값을 초과하면(S1030-Y), S1040단계에서, 안티멀웨어 디바이스는 서버에게 멀웨어 패턴데이터들과 해시 계수의 업데이트를 요청할 수 있다.As a result of the comparison, if the number of hash collisions identified in step S1020 exceeds the reference value (S1030-Y), in step S1040, the anti-malware device may request the server to update the malware pattern data and the hash coefficient.

S1050단계에서, 서버는 안티멀웨어 디바이스의 요청에 의해, 해시 충돌이 발생활 확률이 최소화되도록 하는 해시 계수 또는 해시 함수를 재선정할 수 있다. 서버는 이전에 참조한 멀웨어 패턴데이터들과 업데이트용 멀웨어 패턴데이터들을 참조하여 해시 계수 또는 해시 함수를 재선정할 수 있다. 이는 도 8의 과정과 유사할 수 있다.In operation S1050, the server may reselect a hash coefficient or a hash function to minimize a probability of occurrence of a hash collision at the request of the anti-malware device. The server may reselect a hash coefficient or a hash function by referring to the previously referenced malware pattern data and the update malware pattern data. This may be similar to the process of FIG. 8.

S1060단계에서, 서버는 S1050단계에서 참조한 업데이트용 멀웨어 패턴데이터들과 재선정된 해시 계수 또는 해시 함수를 안티멀웨어 디바이스에게 전송할 수 있다.In operation S1060, the server may transmit the updated malware pattern data and the reselected hash coefficient or hash function to the anti-malware device in operation S1050.

도 11은 본 발명의 다른 실시예에 따른 안티 멀웨어 시스템을 도시한 도면이다.11 is a diagram illustrating an anti-malware system according to another embodiment of the present invention.

도 11을 참조하면, 안티 멀웨어 시스템은 서버(1100) 및 클라이언트(1200)를 포함한다. Referring to FIG. 11, an anti-malware system includes a server 1100 and a client 1200.

서버(1100)는 멀웨어 패턴 DB를 업데이트하고, 클라이언트(1200)에서 멀웨어를 검출하는 과정에서 해시 충돌이 발생하는 것을 방지하기 위하여, 해시 충돌을 방지할 수 있는 해시 계수를 산출하고, 산출된 해시 계수를 클라이언트(1200)에 전송한다. 서버(1100)는 도 1 및 도 7을 참조하여 설명한 서버들(100, 600) 중 하나이거나 또는 유사하게 동작할 수 있다. 또한, 멀웨어 패턴 DB는 도 1 및 도 7을 참조하여 설명한 멀웨어 패턴 DB일 수 있다.The server 1100 updates the malware pattern DB, calculates a hash coefficient that can prevent a hash collision, and prevents a hash collision in the process of detecting malware in the client 1200, and calculates the calculated hash coefficient. To the client 1200. The server 1100 may be one of or similar to the servers 100 and 600 described with reference to FIGS. 1 and 7. In addition, the malware pattern DB may be the malware pattern DB described with reference to FIGS. 1 and 7.

클라이언트(1200)는 서버(1100)로부터 멀웨어 패턴 DB를 다운로드하여 멀웨어의 감염 여부를 검출할 수 있다. 클라이언트(1200)는 도 1 및 도 7을 참조하여 설명한 안티멀웨어 디바이스들(200, 700) 중 하나이거나 또는 유사하게 동작할 수 있다. 다만, 클라이언트(1200)는 시스템 온 칩(System-on-chip, SOC) 형태로 구현될 수 있다.The client 1200 may download the malware pattern DB from the server 1100 and detect whether the malware is infected. The client 1200 may be one or similar to one of the antimalware devices 200, 700 described with reference to FIGS. 1 and 7. However, the client 1200 may be implemented in a system-on-chip (SOC) form.

본 발명의 실시예에서 서버(1100)는 클라이언트(1200)로부터 업데이트 요청이 있으면, 필요한 업데이트 정보와 함께 해시 계수를 클라이언트(1200)에 전송할 수 있다. 업데이트 정보는 서버(1100)에서 선정된 해시 계수 또는 해시 함수와 멀웨어 패턴데이터들을 포함할 수 있다.In an embodiment of the present invention, if there is an update request from the client 1200, the server 1100 may transmit a hash coefficient to the client 1200 along with necessary update information. The update information may include a hash coefficient or a hash function and malware pattern data selected by the server 1100.

서버(1100)는 멀웨어 패턴 DB를 업데이트하기 위한 업데이트부(1110)와, 해시 계수를 계산하기 위한 충돌회피부(1120)를 포함하여 이루어진다.The server 1100 includes an update unit 1110 for updating the malware pattern DB, and a collision avoidance unit 1120 for calculating a hash coefficient.

업데이트부(1110)는 도 1 및 도 7의 업데이트부들(120, 620) 중 적어도 하나에서 수행하는 기능을 추가로 제공할 수 있다. 업데이트부(1110)는 멀웨어 패턴 입력 처리부(1111), 블록 생성 처리부(1112) 및 업데이트 정보 구성부(1114)를 포함한다.The updater 1110 may further provide a function performed by at least one of the updaters 120 and 620 of FIGS. 1 and 7. The updater 1110 includes a malware pattern input processor 1111, a block generation processor 1112, and an update information constructer 1114.

멀웨어 패턴 입력 처리부(1111)는 클라이언트(1200)로 전송할 멀웨어 패턴데이터들의 입력을 처리한다.The malware pattern input processor 1111 processes an input of malware pattern data to be transmitted to the client 1200.

블록 생성 처리부(1112)는 블록을 생성하며, 업데이트 정보 구성부(1114)는 업데이트 정보를 구성한다. 일 예로, 업데이트 정보 구성부(1114)는 해시 계수 선정부(1122)에서 선정된 해시 계수 및 해시 함수 선정부(1123)에서 선정된 해시 함수 중 하나를 해시 항목(320)에 기재하고, 멀웨어 패턴데이터들을 데이터 항목(330)에 기재하여 업데이트 정보, 즉, 멀웨어 패턴 DB를 구성할 수 있다.The block generation processing unit 1112 generates a block, and the update information configuration unit 1114 configures update information. For example, the update information configuring unit 1114 may describe one of the hash coefficients selected by the hash coefficient selecting unit 1122 and the hash function selected by the hash function selecting unit 1123 in the hash item 320, and may include a malware pattern. The data may be described in the data item 330 to configure update information, that is, a malware pattern DB.

충돌 회피부(1120)는 누적 블록 DB(1121), 해시 계수 선정부(1122) 및 해시 함수 선정부(1123)를 포함한다. 누적 블록 DB(1121)는 누적 블록 정보를 저장한다. 해시 계수 선정부(1122)는 해시 계수를 선정하고, 해시 함수 선정부(1123)는 해시 함수를 선정한다.The collision avoidance unit 1120 includes a cumulative block DB 1121, a hash coefficient selecting unit 1122, and a hash function selecting unit 1123. The accumulated block DB 1121 stores the accumulated block information. The hash coefficient selecting unit 1122 selects a hash coefficient, and the hash function selecting unit 1123 selects a hash function.

해시 계수 선정부(1122)는 도 1의 해시 계수 선정부(110)의 기능을 수행할 수 있다. 즉, 해시 계수 선정부(1122)는 멀웨어 패턴데이터들에 대한 해시 함수를 통한 최소의 해시 충돌 결과에 기초하여, 클라이언트(1200)로 전송할 해시 계수를 선정할 수 있다. 일 예로, 해시 계수 선정부(1122)는 멀웨어 패턴데이터들을 해시 함수에 적용하였을 때 도출되는 해시 값들이 상호 충돌될 확률이 최소화되도록 하는 알고리즘을 사용하여 해시 계수를 선정할 수 있다. 또는, 해시 계수 선정부(1122)는 멀웨어 패턴데이터들을 해시 함수에 적용하였을 때 도출되는 해시 값들의 분산값들을 이용하여 해시 계수를 선정할 수 있다.The hash coefficient selector 1122 may perform the function of the hash coefficient selector 110 of FIG. 1. That is, the hash coefficient selecting unit 1122 may select a hash coefficient to be transmitted to the client 1200 based on a minimum hash collision result through a hash function for malware pattern data. For example, the hash coefficient selecting unit 1122 may select the hash coefficient by using an algorithm that minimizes the probability that the hash values derived when the malware pattern data is applied to the hash function are minimized. Alternatively, the hash coefficient selecting unit 1122 may select the hash coefficient by using variance values of hash values derived when the malware pattern data is applied to the hash function.

해시 함수 선정부(1123)는 도 7의 해시 함수 선정부(610)의 기능을 수행할 수 있다. 즉, 해시 함수 선정부(1123)는 해시 계수 선정부(1122)에서 사용하는 방식으로 해시 계수를 선정하고, 선정된 해시 계수가 적용되는 해시 함수를 선정한다.The hash function selector 1123 may perform a function of the hash function selector 610 of FIG. 7. That is, the hash function selecting unit 1123 selects a hash coefficient in a manner used by the hash coefficient selecting unit 1122, and selects a hash function to which the selected hash coefficient is applied.

한편, 클라이언트(1200)는 안티 멀웨어 어플리케이션부(1210) 및 안티 멀웨어 시스템 온 칩(System-on-chip)부(1220)를 포함한다.The client 1200 may include an anti-malware application unit 1210 and an anti-malware system-on-chip unit 1220.

안티 멀웨어 어플리케이션부(1210)는 안티 멀웨어에 필요한 환경 설정 및 드라이버를 제공할 수 있다. 이를 위하여, 안티 멀웨어 어플리케이션부(1210)는 환경설정 및 DB 업데이트 요청부(1211), DB처리 모듈(1212), SOC 호출부(1213) 및 스캔 큐 및 드라이버 모듈(1214)을 포함한다.The anti-malware application unit 1210 may provide environment settings and drivers required for anti-malware. To this end, the anti-malware application unit 1210 includes an environment setting and DB update request unit 1211, a DB processing module 1212, an SOC call unit 1213, and a scan queue and driver module 1214.

환경설정 및 DB 업데이트 요청부(1211)는 안티 멀웨어 동작을 위한 환경을 설정하고, 서버(1100)에게 멀웨어 패턴 DB의 업데이트를 요청할 수 있다. 환경설정 및 DB 업데이트 요청부(1211)는 도 7의 업데이트 요청부(790)의 기능을 추가로 제공할 수 있다.The environment setting and DB update request unit 1211 may set an environment for anti-malware operation, and request the server 1100 to update the malware pattern DB. The environment setting and DB update request unit 1211 may further provide a function of the update request unit 790 of FIG. 7.

DB처리 모듈(1212)은 멀웨어 패턴 DB, 즉, 멀웨어 패턴데이터들과 해시 함수 또는 해시 계수를 관리할 수 있다. SOC 호출부(1213)은 SOC를 호출한다.The DB processing module 1212 may manage a malware pattern DB, that is, malware pattern data and a hash function or hash coefficient. The SOC caller 1213 calls the SOC.

스캔 큐 및 드라이버 모듈(1214)은 클라이언트(1200)에서 패턴 매칭을 수행하는데 필요한 각종 드라이버를 제공 및/또는 구동할 수 있다.The scan queue and driver module 1214 may provide and / or drive various drivers required to perform pattern matching in the client 1200.

안티 멀웨어 시스템 온 칩부(1220)는 멀웨어 패턴 DB를 이용하여 멀웨어에 감염된 데이터를 검출한다. 이를 위하여, 안티 멀웨어 시스템 온 칩부(1220)는 검색 엔진(1211), 패턴 매칭 모듈(1222), DB 매니저 모듈(1223), 파일 데이터 처리 모듈(1224), 패킷 데이터 처리 모듈(1225) 및 방화벽 룰 매니저 모듈(1226)을 포함한다.The anti-malware system on chip unit 1220 detects data infected with malware using a malware pattern DB. To this end, the anti-malware system on chip unit 1220 may include a search engine 1211, a pattern matching module 1222, a DB manager module 1223, a file data processing module 1224, a packet data processing module 1225, and a firewall rule. Manager module 1226 is included.

검색 엔진(1211)은 멀웨어 패턴의 검색을 담당한다. 검색 엔진(1211)은 도 1 및 도 7의 해시값 생성부들(220, 720), 테이블 생성부들(240, 740) 및 해시 매처부들(270, 770)의 기능을 수행하는 하드웨어일 수 있다. 따라서, 검색 엔진(1211)은 멀웨어 패턴데이터들의 해시 값들과 서브데이터들의 해시 값들을 생성하고, 패턴 해시값 테이블을 생성하며, 해시값 매칭을 수행할 수 있다.The search engine 1211 is responsible for searching for malware patterns. The search engine 1211 may be hardware that performs the functions of the hash value generators 220 and 720, the table generators 240 and 740, and the hash matchers 270 and 770 of FIGS. 1 and 7. Accordingly, the search engine 1211 may generate hash values of the malware pattern data and hash values of the sub data, generate a pattern hash value table, and perform hash value matching.

패턴 매칭 모듈(1222)은 멀웨어 패턴데이터와 서브데이터의 패턴 매칭을 수행한다. 패턴 매칭 모듈(1222)은 도 1 및 도 7의 매칭부들(280, 780)에 해당할 수 있다.The pattern matching module 1222 performs pattern matching of malware pattern data and sub data. The pattern matching module 1222 may correspond to the matching units 280 and 780 of FIGS. 1 and 7.

DB 매니저 모듈(1223)은 멀웨어 패턴 DB를 관리한다. 예를 들어, DB 매니저 모듈(1223)은 검색 엔진(1211)에서 해시값을 생성하도록 멀웨어 패턴데이터들을 메모리(미도시)로 로딩할 수 있다.The DB manager module 1223 manages a malware pattern DB. For example, the DB manager module 1223 may load malware pattern data into a memory (not shown) to generate a hash value in the search engine 1211.

파일 데이터 처리 모듈(1224)은 파일 데이터를 처리하고, 패킷 데이터 처리 모듈(1225)은 패킷 데이터를 처리한다. 예를 들어, 패킷 데이터 처리 모듈(1224)은 타겟데이터를 일정 단위를 가지는 서브데이터들로 분할할 수 있다. 각각의 서브데이터는 검색 엔진(1211)으로 제공되어 서브데이터에 대한 해시 값을 생성하는 경우 사용된다. The file data processing module 1224 processes file data, and the packet data processing module 1225 processes packet data. For example, the packet data processing module 1224 may divide target data into subdata having a predetermined unit. Each subdata is provided to search engine 1211 and used when generating a hash value for the subdata.

방화벽 룰 매니저 모듈(1226)은 방화벽 룰을 관리한다.The firewall rule manager module 1226 manages firewall rules.

이하에서는 도 11과 같은 구조를 갖는 안티 멀웨어 시스템에서 해시 충돌을 방지하기 위한 방법을 도 12 내지 도 16을 참조하여 설명한다. 도 12 내지 도 16은 본 발명의 다른 실시예에 따른 안티 멀웨어 시스템에서의 해시 충돌 방지 방법을 설명하기 위한 흐름도이다. 도 12 내지 도 16의 해시 충돌 방지 방법을 수행하는 안티 멀웨어 시스템은 도 11에 도시된 서버(1100)와 클라이언트(1200)를 포함하는 시스템일 수 있다.Hereinafter, a method for preventing a hash collision in an anti-malware system having a structure as illustrated in FIG. 11 will be described with reference to FIGS. 12 to 16. 12 to 16 are flowcharts illustrating a hash collision prevention method in an anti-malware system according to another embodiment of the present invention. The anti-malware system performing the hash collision prevention method of FIGS. 12 to 16 may be a system including the server 1100 and the client 1200 illustrated in FIG. 11.

도 12는 본 발명의 다른 실시예에 따른 안티 멀웨어 시스템에서 해시 충돌 방지 방법을 수행하는 기본 프로세스를 도시한 흐름도이다. 12 is a flowchart illustrating a basic process of performing a hash collision prevention method in an anti-malware system according to another embodiment of the present invention.

도 12를 참조하면, 서버는 멀웨어 패턴 DB의 블록화를 위한 기초값을 셋팅하여 초기화한다(S1201).Referring to FIG. 12, the server initializes by setting a base value for blocking the malware pattern DB (S1201).

새로운 멀웨어 패턴데이터들, 즉, 업데이트용 멀웨어 패턴데이터들이 입력되면, 서버는 새로운 블록 작업이 필요한지 여부를 확인한다(S1203, S1205).When new malware pattern data, that is, update malware pattern data, is input, the server checks whether a new block operation is required (S1203 and S1205).

새로운 블록 작업이 필요하면, 서버는 멀웨어 패턴데이터들을 정해진 포맷으로 DB화하여 멀웨어 패턴 DB에 저장한다(S1207). If a new block operation is required, the server converts the malware pattern data into a DB in a predetermined format and stores the malware pattern data in the malware pattern DB (S1207).

그리고, 서버는 멀웨어 패턴데이터들에 대해 새로운 블록 생성 프로세스를 실시하여 블록을 생성한다(S1209). In operation S1209, the server generates a block by performing a new block generation process on the malware pattern data.

서버는 S1209단계에서 생성된 블록에 대한 해시 충돌을 회피하기 위한 충돌 회피 프로세스를 실시한다(S1211). 충돌 회피 프로세스의 실시에 의해 서버는 해시 계수를 선정할 수 있다. 또한, S1211단계에는 도시되어 있지 않으나, 충돌 회시 프로세스의 실시에 의해 서버는 해시 함수를 선정할 수도 있다.The server performs a collision avoidance process for avoiding hash collision for the block generated in step S1209 (S1211). Implementation of the collision avoidance process allows the server to select a hash coefficient. In addition, although not shown in step S1211, the server may select a hash function by the implementation of the collision reporting process.

다음, 서버는 충돌 회피 프로세스를 통해 선정된 해시 계수 또는 해시 함수를 저장한다(S1213).Next, the server stores the hash coefficient or the hash function selected through the collision avoidance process (S1213).

도 13은 본 발명의 다른 실시예에 따른 S1209 단계인 블록 생성 프로세스를 설명하기 위한 흐름도이다.13 is a flowchart for explaining a block generation process of operation S1209 according to another embodiment of the present invention.

도 13을 참조하면, 서버는 S1207단계에서 DB화되어 저장된 멀웨어 패턴데이터들을 읽는다(S1301).Referring to FIG. 13, the server reads malware pattern data stored in a database in step S1207 (S1301).

그리고, 서버는 멀웨어 패턴데이터들에서 블록화할 데이터를 추출한다(S1303). 예를 들어, 서버는 멀웨어 패턴데이터들에 있는 위치(location), OS정보, 입력 시기에 따라 locationID_OSID_YYYYMMDD 형태의 블록 ID(BlockID)를 상기 블록화할 데이터로서 추출할 수 있다. 만약, 추출된 블록 ID와 동일한 블록 ID가 이미 존재하고 있다면, 서버는 추출된 블록의 버전을 업그레이드할 수 있다. 이후 서버는 해당 블록에 대한 크기 및 데이터, md5값, 사용유무, 입력자, 입력시기에 대해 입력한다.In operation S1303, the server extracts data to be blocked from the malware pattern data. For example, the server may extract a block ID (BlockID) in the form of locationID_OSID_YYYYMMDD according to the location, OS information, and input time in the malware pattern data as the data to be blocked. If the same block ID as the extracted block ID already exists, the server may upgrade the version of the extracted block. After that, the server inputs the size and data for the block, the md5 value, the presence or absence, the inputter, and the input time.

다음, 서버는 S1303단계에서 추출된 데이터를 이용하여 블록을 생성한다(S1305).Next, the server generates a block using the data extracted in step S1303 (S1305).

그리고, 서버는 생성된 블록 데이터를 멀웨어 패턴 DB에 저장한다(S1307).In operation S1307, the server stores the generated block data in the malware pattern DB.

도 14는 본 발명의 다른 실시예에 따른 S1211 단계인 충돌 회피 프로세스를 설명하기 위한 흐름도이다. 14 is a flowchart illustrating a collision avoidance process of step S1211 according to another embodiment of the present invention.

도 14를 참조하면, 서버는 멀웨어 패턴 DB에서 블록 데이터를 확인한다(S1401).Referring to FIG. 14, the server checks block data in the malware pattern DB (S1401).

서버는 블록 데이터를 통해 새로 추가된 블록이 있는지를 확인한다(S1403).The server checks whether there is a newly added block through the block data (S1403).

새로 추가된 블록이 있으면, 서버는 추가된 블록의 블록 데이터를 전체 멀웨어 패턴 DB에 추가한다(S1405).If there is a newly added block, the server adds block data of the added block to the entire malware pattern DB (S1405).

서버는 멀웨어 패턴 DB에 있는 멀웨어 패턴데이터들에 대한 해시 계수를 계산하기 위해 초기화를 실시한다(S1407).The server initializes to calculate a hash coefficient for the malware pattern data in the malware pattern DB (S1407).

그리고, 서버는 복수 개의 후보 계수 값들을 선정한다(S1409). 복수 개의 후보 계수 값들은 도 1을 참조하여 설명한, 각각 1개 이상의 후보 해시 계수를 가지는 복수 개의 후보 해시 그룹들(GN, N=1, 2, …)과 같은 형태를 가질 수 있다.In operation S1409, the server selects a plurality of candidate coefficient values. The plurality of candidate coefficient values may have a form such as a plurality of candidate hash groups GN, N = 1, 2, ..., each having one or more candidate hash coefficients, described with reference to FIG. 1.

서버는 S1409단계에서 선정된 후보 계수 값들을 이용하여, 멀웨어 패턴데이터들에 대하여 해시 함수 처리를 한다(S1411).The server performs a hash function on the malware pattern data using the candidate coefficient values selected in step S1409 (S1411).

서버는 S1411단계의 해시 함수 처리 결과를 비교하여 해시 충돌을 최소화시키는 해시 계수를 선정한다(S1413).The server compares the result of the hash function processing in step S1411 to select a hash coefficient to minimize the hash collision (S1413).

도 15는 본 발명의 다른 실시예에 따른 S1411단계인 해시 함수 처리 과정을 설명하기 위한 흐름도이다. 15 is a flowchart illustrating a hash function processing process of step S1411 according to another embodiment of the present invention.

도 15를 참조하면, 서버는 메모리 저장 장소의 크기 및 계수값 범위를 포함하는 정보를 초기화한다(S1501).Referring to FIG. 15, the server initializes information including a size of a memory storage location and a range of count values (S1501).

그리고, 서버는 계수 매트릭스와 해시함수 테이블을 구성한다(S1503, S1505). 계수 매트릭스는 S1409단계에서 선정된 복수 개의 후보 계수 값들을 가지는 후보 해시 그룹들일 수 있다. 예를 들어, 계수 매트릭스는 G1={a1, b1, c1}, G2={a2, b2, c2}, G3={a3, b3, c3}, …로서, 복수 개로 구성될 수 있다.The server constructs a coefficient matrix and a hash function table (S1503 and S1505). The coefficient matrix may be candidate hash groups having a plurality of candidate coefficient values selected in operation S1409. For example, the coefficient matrix is G1 = {a1, b1, c1}, G2 = {a2, b2, c2}, G3 = {a3, b3, c3},... It may be composed of a plurality.

서버는 멀웨어 패턴 DB로부터 멀웨어 패턴데이터들을 읽어들인다(S1507).The server reads the malware pattern data from the malware pattern DB (S1507).

그리고, 서버는 읽어들인 멀웨어 패턴데이터들을 해시 함수에 적용할 수 있는 형태로 변환한다(S1509).The server converts the read malware pattern data into a form that can be applied to a hash function (S1509).

서버는 해시 함수에 계수 매트릭스들의 후보 계수 값들과 변환시킨 멀웨어 패턴데이터들을 적용하여 해시 값들을 구하고, 구한 해시 값들을 해시함수 테이블에 적용한다(S1511). S1511단계에서 서버는 후보 해시 그룹 별로 해시 값들을 구하여 해시함수 테이블에 적용한다.The server obtains hash values by applying candidate coefficient values of coefficient matrices and transformed malware pattern data to a hash function, and applies the obtained hash values to a hash function table (S1511). In step S1511, the server obtains hash values for each candidate hash group and applies the hash values to the hash function table.

서버는 해시함수 테이블의 값들에 대한 분산값을 구한다(S1513). 즉, 서버는 후보 해시 그룹들 각각에 대한 해시 값들이 산출되면, 해시 값들의 분산값을 후보 해시 그룹별로 산출한다.The server calculates distribution values for the values of the hash function table (S1513). That is, when hash values for each of the candidate hash groups are calculated, the server calculates a variance value of the hash values for each candidate hash group.

다음, 서버는 후보 해시 그룹별로 산출된 분산값들 중에서 최소 분산값을 나타내는 계수 매트릭스를 선정한다(S1515). 선정된 계수 매트릭스를 이루는 후보 계수들은 클라이언트로 전송될 해시 계수이다.Next, the server selects a coefficient matrix representing the minimum variance value among the variance values calculated for each candidate hash group (S1515). Candidate coefficients constituting the selected coefficient matrix are hash coefficients to be transmitted to the client.

한편, 본 발명에서 클라이언트(1200)는 업데이트를 받으려는 시점에 서버(1100)에 업데이트 요청을 한다. 이때, 클라이언트(1200) 자신이 가진 체크섬(checksum), 디바이스 실행환경, 위치(location)정보, 버전 ID(version ID)를 서버(1100)에게 전달할 수 있다. 수신받은 정보로 업데이트부(1110)는 클라이언트(1200)의 변화유무를 판단하고, 변화가 있을 시에는 위치결정기(locationdecider)를 실행하여 정확한 위치를 세팅한다. Meanwhile, in the present invention, the client 1200 makes an update request to the server 1100 at the time of receiving the update. In this case, the server 1200 may transmit a checksum, a device execution environment, location information, and a version ID of the client 1200 to the server 1100. Based on the received information, the updater 1110 determines whether the client 1200 is changed, and when there is a change, the updater 1110 executes a locationdecider to set the correct location.

그 후, 서버(1100)는 업데이트 정보 구성부(1114)를 실행하여 클라이언트(1200)에게 필요한 블록정보와 그에 따른 작업종류(append/download/add/delete/replace), 업데이트용 멀웨어 패턴데이터들 및 그에 따라 재선정된 해시 계수도 함께 클라이언트(1200)에 전송한다. Subsequently, the server 1100 executes the update information configuration unit 1114 to block information required by the client 1200, a task type thereof (append / download / add / delete / replace), malware pattern data for update, and the like. Accordingly, the hash coefficient reselected is also transmitted to the client 1200.

해당 정보를 전달받은 클라이언트(1200)는 블록과 작업정보로 자신의 블록에 대한 업데이트를 실시한 후, 결과를 서버(1100)측에 전달하고, 서버(1100)는 이를 저장하고 작업을 마친다. After receiving the corresponding information, the client 1200 updates its block with the block and the work information, and then transmits the result to the server 1100, and the server 1100 stores the work and finishes the work.

도 16은 본 발명의 다른 실시예에 따른 서버에서 수행하는 업데이트 과정을 보여주는 흐름도이다.16 is a flowchart illustrating an update process performed by a server according to another embodiment of the present invention.

도 16을 참조하면, 서버는 클라이언트로부터 마지막 업데이트 정보의 변화가 있는지 여부를 확인한다(S1601).Referring to FIG. 16, the server checks whether there is a change in the last update information from the client (S1601).

변화가 있으면, 서버는 클라이언트의 업데이트 정보를 업데이트한다(S1619).If there is a change, the server updates the client's update information (S1619).

업데이트 정보의 변화가 없으면, 서버는 클라이언트에 블록이 존재하는지 여부를 확인한다(S1603).If there is no change in the update information, the server checks whether a block exists in the client (S1603).

클라이언트에 블록이 존재하면, 서버는 블록 정보를 기준으로 버전 ID가 다른지, 아니면 블록갯수가 다른지 여부를 확인한다(S1605).If a block exists in the client, the server checks whether the version ID is different or the number of blocks is different based on the block information (S1605).

버전 ID가 다르면, 서버는 클라이언트 블록들에 대한 정보를 클라이언트에 요청한다(S1613). If the version IDs are different, the server requests the client for information about the client blocks (S1613).

그리고, 서버는 클라이언트로부터 해당 블록정보를 접수한다(S1615). The server receives the block information from the client (S1615).

서버는 블록별로 작업종류(Add/remove/replace/update)를 판단하고 해당 작업에 필요한 정보를 구성한다(S1617).The server determines a task type (Add / remove / replace / update) for each block and configures information necessary for the task (S1617).

S1605 단계에서 블록갯수가 다르면, 서버는 블록 어펜드(Append) 정보를 구성한다(S1607). If the number of blocks is different in step S1605, the server configures block append information (S1607).

그리고, 서버는 클라이언트에 전송할 블록에 대한 해시 계수를 읽어온다(S1609). Then, the server reads the hash coefficient for the block to be transmitted to the client (S1609).

서버는 읽어온 해시 계수를 이용하여 블록별로 업데이트할 최종 정보를 구성하여 클라이언트에 전송한다(S1611). The server constructs final information to be updated for each block by using the read hash coefficient and transmits the final information to the client (S1611).

이후 서버는 다시 S1601 단계로 돌아가서 프로세스를 반복한다.The server then returns to step S1601 to repeat the process.

S1603 단계에서, 클라이언트(1200)에 블록이 존재하지 않으면, 서버는 바로 S1609 단계로 진행한다.If no block exists in the client 1200 in step S1603, the server proceeds directly to step S1609.

도 17 내지 22는 본 발명의 실시예들에 따른 SOC의 효과를 설명하기 위한 도면들이다.17 to 22 are views for explaining the effect of the SOC according to the embodiments of the present invention.

도 17을 참조하면, 동일한 알고리즘을 사용하는 안티-바이러스 스캐닝 엔진을 어플리케이션 레이어에서 멀웨어 스캐닝 테스트(이하, ‘TEST 1’이라고 함)를 한 것과 SoC기반의 안티-바이러스 스캐닝 엔진을 멀웨어 스캐닝 테스트 한 경우의 스캐닝 속도를 나타낸 것이다. Referring to FIG. 17, when an anti-virus scanning engine using the same algorithm is subjected to a malware scanning test (hereinafter, referred to as 'TEST 1') at an application layer and a SoC-based anti-virus scanning engine is a malware scanning test. This shows the scanning speed of.

도 17에서 바(bar)로 표현된 것이 TEST 1의 스캐닝 속도이고, 꺾은 선으로 표현된 것들이 SoC기반의 안티-바이러스 엔진을 테스트 한 것들이다. 그리고, 꺾은 선들 중에서도 아래의 꺽은 선은 SoC내 소프트웨어와 하드웨어 로직으로 구성된 안티-바이러스 엔진을 이용하여 멀웨어 스캐닝을 한 것(이하, ‘TEST 2’라고 함) 이고, 위의 꺾은 선은 SoC내 SW만으로 구현된 안티-바이러스 엔진으로 멀웨어 스캐닝을 한 것(이하, ‘TEST 3’라고 함)이다. A bar in FIG. 17 represents a scanning speed of TEST 1, and those represented by a broken line are those for testing an SoC-based anti-virus engine. Among the broken lines, the below broken line is a malware scanning using an anti-virus engine composed of software and hardware logic in the SoC (hereinafter referred to as 'TEST 2'), and the above broken line is in the SoC. It is a malware scanning using an anti-virus engine implemented only in SW (hereinafter referred to as 'TEST 3').

한편, 도 17의 결과에서, TEST 1은 800 Mhz 의 CPU를 사용한 경우이고, TEST 2와 TEST 3는 SoC용 FPGA 보드상에서 테스트를 한 것으로서 50Mhz의 CPU를 사용한 것이다. 따라서, 이들을 동일한 속도를 가진 CPU를 사용하여 테스트한다면, SoC 단에서 테스트를 한 경우(즉, TEST 2와 TEST 3)의 스캐닝 속도가 어플리케이션 레이어에서 테스트를 한 경우(TEST 1)의 속도보다 훨씬 빠를 것으로 예측된다. On the other hand, in the results of Figure 17, TEST 1 is a case of using a 800 Mhz CPU, TEST 2 and TEST 3 is a test on a SoC FPGA board using a 50Mhz CPU. Therefore, if you test them using CPUs with the same speed, the scanning speed in the SoC stage (ie TEST 2 and TEST 3) will be much faster than in the application layer (TEST 1). Is expected.

도 17에서는, TEST 2의 스캐닝 타임이 TEST 1의 스캐닝 타임보다 더 많이 소요되는 것으로 나타났지만, CPU의 속도의 차이를 고려한다면 실제로는 SoC 단에서 SW 만으로 구성된 안티-멀웨어 엔진을 동작 시킨 경우의 스캐닝 타임이, 어플리케이션 레이어에서 안티-멀웨어 엔진을 스캐닝 동작을 시킨 경우의 스캐닝 타임보다 더 적게 걸릴 것으로 예측된다.In FIG. 17, the scanning time of TEST 2 takes longer than the scanning time of TEST 1, but considering the difference in the speed of the CPU, the scanning when the anti-malware engine consisting of SW is operated in the SoC stage is actually performed. The time is expected to be less than the scanning time when the anti-malware engine is scanned at the application layer.

한편, TEST 3는 CPU의 속도 차이가 있음에도 불구하고, TEST 1의 경우보다 스캐닝 속도가 훨씬 빠름을 알 수 있다. 즉, 스캐닝 대상인 파일의 개수가 2천 여건이 넘어가면서, TEST 3는 TEST 1보다, 스캐닝 속도가 1.5배 이상 빨라지는 것을 알 수 있다. On the other hand, TEST 3, despite the difference in the speed of the CPU, it can be seen that the scanning speed is much faster than the case of TEST 1. That is, as the number of files to be scanned exceeds 2000, it can be seen that TEST 3 is 1.5 times faster than TEST 1.

도 18를 참조하면, 종래의 SOC 기반이 아닌 어플리케이션으로 구현한 모바일 안티-바이러스 엔진을 사용하여 멀웨어를 스캐닝 한 경우의 메모리 사용량과 스캐닝 시간을 나타낸 것이다. Referring to FIG. 18, a memory usage and a scanning time when malware is scanned using a mobile anti-virus engine implemented by a non-SOC based application is shown.

도 18에서 바(Bar)는 멀웨어 스캐닝에 사용된 메모리 사용량이고, 꺽은 선은 멀웨어 스캐닝에 사용된 시간을 나타난 것으로서, 800Mhz의 CPU를 사용한 것이다. 도 18에서 알 수 있듯이,SOC 기반이 아닌 어플리케이션으로 구현된 안티-바이러스 엔진은 스캐닝의 대상이 되는 파일의 개수가 적은 상태에서도, 메모리를 많이 사용함을 알 수 있다.In FIG. 18, a bar indicates memory usage used for malware scanning, and a broken line shows time used for malware scanning, which uses an 800 MHz CPU. As can be seen in FIG. 18, the anti-virus engine implemented as a non-SOC-based application uses a lot of memory even when the number of files to be scanned is small.

한편, 도 18에서, 파일의 개수가 약 320개 보다 많아지면서 바(Bar)의 크기가 적어지는 것으로 나타났지만, 이는 메모리의 스와핑 동작에 의한 것이다. 운영체제는 스캐닝할 대상이 되는 파일의 개수가 메모리가 감당할 수 없을 정도로 많게 되면, 메모리의 스와핑 동작을 수행한다. 이처럼, 스와핑 동작이 일어나게 되면, 스캐닝 하는 시간이 증가할 수 밖에 없으며, 결과적으로 배터리 소모가 커지게 된다.On the other hand, in Fig. 18, the number of files is larger than about 320, the size of the bar (Bar) is shown to be smaller, but this is due to the swapping operation of the memory. When the number of files to be scanned becomes too large for the memory, the operating system performs a swapping operation of the memory. As such, when a swapping operation occurs, scanning time may increase, resulting in high battery consumption.

도 19는, 안티-바이러스 엔진의 전력 소비량을 나타낸 것으로서, 상용화된 제품들과 본 발명의 일 실시예에 따른 안티-바이러스 엔진을 사용하여 테스트한 결과이다.19 shows the power consumption of the anti-virus engine, which is a test result using commercially available products and an anti-virus engine according to an embodiment of the present invention.

도 19를 참조하면, 비교제품 1과 비교제품 2는 모두 SOC 기반이 아닌 소프트웨어로만 구현된 안티-바이러스 엔진들로서, 비교제품 1은 약 160mA를 소모하고, 비교제품 2는 200mA을 소모하고 있음을 알 수 있다. 이에 비하여, 본원 발명의 일 실시예에 따른 SOC AC 엔진은 소프트웨어와 하드웨어 로직으로 구성된 엔진으로서 약 126. 9mA을 소모함을 알 수 있다.Referring to FIG. 19, both Comparative Product 1 and Comparative Product 2 are anti-virus engines implemented only by software, not SOC-based, and Comparative Product 1 consumes about 160 mA and Comparative Product 2 consumes 200 mA. Can be. In contrast, it can be seen that the SOC AC engine according to the embodiment of the present invention consumes about 126.6 mA as an engine composed of software and hardware logic.

도 20은, 기존 모바일 폰에서 사용되는 상용화된 제품들과 본 발명의 일 실시예에 따른 SoC기반의 안티-바이러스 엔진을 테스트한 결과로서, 멀웨어를 스캐닝 하는데 소요된 시간과 CPU 사용시간을 나타낸 것이다., 20 is a test result of commercialized products used in existing mobile phones and an SoC-based anti-virus engine according to an embodiment of the present invention, and shows the time taken to scan malware and the CPU usage time. .,

도 20를 참조하면, 상용화된 기존 제품들(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)과 본 발명의 일 실시예에 따른 SoC 기반의 안티-바이러스 엔진(P13)에 대하여 스캐닝 대상이 되는 파일의 개수를 달리하여 각각 2번씩 테스트한 결과이다. Referring to FIG. 20, commercially available products (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) and SoC based anti-according to an embodiment of the present invention The virus engine P13 has been tested twice with different numbers of files to be scanned.

도 20를 참조하면, 비교 제품들의 CPU 사용량은 거의 100%를 사용하고 본 발명의 실시예의 경우(P13)보다 CPU의 사용량이 월등히 많음을 알 수 있다. 따라서, CPU사용량과 스캐닝 시간이 많을수록 배터리 소모가 많게 되므로, 본 발명의 실시예를 통하여 배터리소모를 줄일 수 있는 효과가 있다.Referring to FIG. 20, it can be seen that the CPU usage of the comparative products uses almost 100% and the CPU usage is much higher than that of the embodiment of the present invention (P13). Therefore, as the CPU usage and the scanning time increase, the battery consumption increases, so that the battery consumption can be reduced through the embodiment of the present invention.

게다가, 본 실시예(P13)는 50Mhz의 CPU를 가진 FPGA 보드를 사용하여 테스트한 것이고, 위 상용화된 제품들은 수백 Mhz ~ 수 Ghz의 CPU를 사용한 것이므로, 이들을 만약 동일한 조건하에서 테스트한다면 CPU의 사용량이나 스캐닝 시간에 있어서 본 실시예(P13)가 훨씬 우월할 것으로 예측된다.   In addition, this embodiment (P13) was tested using an FPGA board with a 50Mhz CPU, and the above commercialized products used a CPU of several hundred Mhz to several Ghz, so if they were tested under the same conditions, It is expected that this embodiment P13 will be much superior in scanning time.

도 21은 안드로이드 폰에 실제 상용 안티-바이러스 소프트웨어들을 설치 하여 동작을 하는 모습을 나타낸 것이다. 세가지 각기 다른 AV 소프트웨어들인데 스캐닝시에는 모두 100%의 CPU사용을 하는 것을 알 수 있다.Figure 21 shows the operation by installing the actual commercial anti-virus software on the Android phone. There are three different AV softwares, which all show 100% CPU usage when scanning.

도 21의 (a), (b), 및 (c)를 각각 참조하면, CPU의 사용량을 3개의 그래프(①, ②, ③)로 표시하였는데, 이들은 순서대로 CPU의 전체 사용량(①), 유저 코드 레벨에서 사용되는 CPU의 사용량(②), 커널 코드 레벨에서 사용되는 CPU의 사용량(③)을 나타낸다. Referring to (a), (b), and (c) of Fig. 21, respectively, the CPU usage is shown by three graphs (①, ②, ③), which are in turn the total usage of the CPU (①), the user. CPU usage (②) used at the code level and CPU usage (③) used at the kernel code level are shown.

도 22는 본 발명의 일 실시예에 따른 SoC 기반의 안티-바이러스 엔진을 사용하여 멀웨어를 스캐닝할 때 사용되는 CPU의 사용량을 나타낸 것이다. 도 22를 참조하면, CPU 사용량이 3%~ 30%를 나타내고 있는 것을 알 수 있다. 이와 같이 CPU를 적게 사용하게 되면서, 빠른 속도로 처리가 되면 배터리 소모도 현격하게 줄게 된다. FIG. 22 illustrates the amount of CPU used when scanning for malware using an SoC-based anti-virus engine according to an embodiment of the present invention. Referring to Fig. 22, it can be seen that the CPU usage represents 3% to 30%. In this way, while using less CPU, if the processing is faster, the battery consumption is significantly reduced.

한편, 도 22의 (a)에서 2개의 신호 중, 직선 형의 신호는 메모리 사용량을 나타낸 것이고, 나머지 신호는 CPU의 사용량을 나타내는 신호이다. 도 22의 (b)의 경우도 마찬가지로 메모리 사용량과 CPU의 사용량을 나타낸다.On the other hand, of the two signals in Fig. 22A, the linear signal represents the memory usage, and the remaining signals represent the CPU usage. In the case of FIG. 22B, the memory usage and the CPU usage are similarly shown.

한편, 도 22의 실시예는 50Mhz의 CPU를 사용하여 테스트한 결과이므로, 종래의 제품들과 같이 수백 Mhz ~ 수 Ghz의 CPU를 사용하여 동일하게 테스트 한다면 본원 발명의 효과는 종래 제품들보다 훨씬 우월할 것으로 예측된다.On the other hand, since the embodiment of Figure 22 is a test using a 50Mhz CPU, if the same test using a CPU of several hundred Mhz ~ several Ghz like the conventional products, the effect of the present invention is much superior to the conventional products It is expected to do.

상기와 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been described with reference to the particular embodiments and drawings, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. This is possible. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

100, 600: 서버 200, 700: 안티멀웨어 디바이스
110: 해시 계수 선정부 120: 업데이트부
210, 710: 패턴 DB 220, 720: 해시값 생성부
230, 730: 패턴 해시값 테이블 240, 740: 테이블 생성부
250, 750: 제1해시 매처 테이블 255, 755: 제1서브 매처 테이블
260, 760: 제2해시 매처 테이블 265, 765: 제2서브 매처 테이블
270, 770: 해시 매처부 280, 780: 매칭부
790: 업데이트 요청부 1100: 서버
1110: 업데이트부 1120: 충돌회피부
1210: 안티 멀웨어 어플리케이션부
1220: SOC부
100, 600: server 200, 700: antimalware device
110: hash coefficient selection unit 120: update unit
210, 710: patterns DB 220, 720: hash value generation unit
230, 730: pattern hash value table 240, 740: table generation unit
250, 750: first hash matcher table 255, 755: first sub matcher table
260, 760: second hash matcher table 265, 765: second sub matcher table
270, 770: hash matcher 280, 780: matching part
790: update request unit 1100: server
1110: update unit 1120: collision avoidance skin
1210: Anti-malware application unit
1220: SOC section

Claims (28)

적어도 하나 이상의 해시 계수를 가진 해시 함수를 이용하여, 멀웨어 패턴들에 대한 해시 값들과 타겟데이터에 대한 해시 값을 생성하는 해시값 생성부;
상기 멀웨어 패턴들의 해시 값들에, 상기 타겟데이터의 해시 값을 매칭시키는 해시 매처부; 및
상기 해시 매처부에 의한 매칭이 성공하면, 상기 멀웨어 패턴과 상기 타겟데이터를 매칭시키는 매칭부;를 포함하는 안티멀웨어 디바이스.
A hash value generator for generating hash values for malware patterns and hash values for target data using a hash function having at least one hash coefficient;
A hash matcher which matches a hash value of the target data with hash values of the malware patterns; And
And a matching unit matching the malware pattern with the target data when the matching by the hash matcher succeeds.
제1항에 있어서,
상기 해시 계수 및/또는 해시 함수는 상기 멀웨어 패턴들에 적용되는 복수의 해시 함수들로부터 생성되는 각각의 해시 충돌 결과 중 최소의 해시 충돌 결과에 기초하여 정해진 것임을 특징으로 하는 안티멀웨어 디바이스.
The method of claim 1,
And the hash coefficient and / or hash function is determined based on a minimum hash collision result of each hash collision result generated from a plurality of hash functions applied to the malware patterns.
제1항에 있어서,
상기 해시 계수 및/또는 해시 함수는, 네트워크를 통해서 연결된 서버로부터 상기 멀웨어 패턴들과 함께 수신된 것임을 특징으로 하는 안티멀웨어 디바이스.
The method of claim 1,
And said hash coefficient and / or hash function is received with said malware patterns from a server connected via a network.
제3항에 있어서,
상기 해시값 생성부는,
상기 서버로부터 업데이트용 멀웨어 패턴들을 수신하는 경우, 상기 업데이트용 멀웨어 패턴들과 함께 전송된 해시 계수를 이용하여 상기 해시 값을 재생성하는 것을 특징으로 하는 안티멀웨어 디바이스.
The method of claim 3,
The hash value generation unit,
And receiving the update malware patterns from the server, regenerating the hash value by using a hash coefficient transmitted together with the update malware patterns.
제1항에 있어서,
상기 멀웨어 패턴들이 업데이트되는 경우, 업데이트용 멀웨어 패턴들에 대한 해시 함수를 통한 최소의 해시 충돌 결과에 기초하여 상기 해시 계수 및/또는 해시 함수도 변경되는 것을 특징으로 하는 안티멀웨어 디바이스.
The method of claim 1,
And when the malware patterns are updated, the hash coefficient and / or hash function is also changed based on a minimum hash collision result through the hash function for the update malware patterns.
제5항에 있어서,
상기 변경된 해시 계수 및/또는 해시 함수는 상기 업데이트용 멀웨어 패턴들에 포함되어 있으며,
상기 해시값 생성부는 상기 업데이트용 멀웨어 패턴들에 포함된 변경된 해시 계수 및/또는 해시 함수를 이용하여 해시 값을 재생성하는 것을 특징으로 하는 안티멀웨어 디바이스.
The method of claim 5,
The modified hash coefficient and / or hash function is included in the update malware patterns,
The hash value generator may generate a modified hash coefficient and / or a hash function included in the update malware patterns. And regenerating the hash value using the anti-malware device.
제5항에 있어서,
상기 업데이트용 멀웨어 패턴들로 이루어지는 업데이트용 멀웨어 패턴 DB는, 헤더 정보가 기재되는 헤더 항목과, 상기 변경된 해시 계수 및/또는 해시 함수가 기재되는 해시 항목을 포함하는 것을 특징으로 하는 안티멀웨어 단말장치.
The method of claim 5,
The update malware pattern DB comprising the update malware patterns includes a header item in which header information is described, and a hash item in which the changed hash coefficient and / or hash function are described.
제1항에 있어서,
상기 해시 함수는, 상기 안티멀웨어 디바이스로 전송할 멀웨어 패턴들에 대한 해시 값들을 도출하였을 때, 상기 도출되는 해시 값들이 상호 충돌될 확률이 최소화되도록 정해지는 것을 특징으로 하는 안티멀웨어 디바이스.
The method of claim 1,
The hash function is determined such that when the hash values for the malware patterns to be transmitted to the antimalware device are derived, the probability that the derived hash values collide with each other is minimized.
제1항에 있어서,
상기 해시값 생성부에서 생성되는 상기 멀웨어 패턴들에 대한 해시 값들이 서로 충돌되는 횟수가 기준값을 초과할 때, 상기 해시 계수 및/또는 해시 함수에 대한 업데이트 요청을 하는 업데이트 요청부;를 더 포함하는 것을 특징으로 하는 안티멀웨어 디바이스.
The method of claim 1,
And an update request unit for requesting an update of the hash coefficient and / or a hash function when the number of hash values of the malware patterns generated by the hash value generator collide with each other exceeds a reference value. Anti-malware device, characterized in that.
제1항에 있어서,
상기 멀웨어 패턴들은 바이러스 스캐닝을 위한 바이러스 패턴들 및 방화벽 필터링을 위한 룰 패턴들 중 적어도 하나를 포함하며, 상기 해시 계수는 상기 바이러스 스캐닝을 위한 바이러스 해시 계수 및 상기 방화벽 필터링을 위한 룰 해시 계수 중 적어도 하나를 포함하는 것을 특징으로 하는 안티멀웨어 디바이스.
The method of claim 1,
The malware patterns include at least one of virus patterns for virus scanning and rule patterns for firewall filtering, wherein the hash coefficient is at least one of a virus hash coefficient for the virus scanning and a rule hash coefficient for the firewall filtering. Anti-malware device comprising a.
제1항에 있어서,
상기 안티멀웨어 디바이스는,
시스템 온 칩, 노트북, 데스크 탑 컴퓨터, 스마트 폰, 스마트 카드 및 반도체용 자산 칩(IP) 중 어느 하나에 해당하는 것을 특징으로 하는 안티멀웨어 디바이스.
The method of claim 1,
The anti-malware device,
An anti-malware device characterized by any one of a system on a chip, a notebook, a desktop computer, a smart phone, a smart card, and an asset chip (IP) for a semiconductor.
해시 계수를 가진 해시 함수를 이용하여 멀웨어 패턴 매칭을 수행하는 안티멀웨어 디바이스로 멀웨어 패턴들을 전송하는 서버에 있어서,
상기 안티멀웨어 디바이스로 멀웨어 패턴들을 전송할 때, 상기 해시 계수를 상기 멀웨어 패턴들과 같이 전송하는 업데이트부;를 포함하는 서버.
A server for transmitting malware patterns to an anti-malware device that performs malware pattern matching using a hash function having a hash coefficient.
And an updater configured to transmit the hash coefficient together with the malware patterns when transmitting malware patterns to the anti-malware device.
제12항에 있어서,
상기 업데이트부가 전송하는 해시 계수는 상기 안티멀웨어 디바이스로 전송되는 멀웨어 패턴들의 해시 값들을 산정하는데 사용되는 것임을 특징으로 하는 서버.
The method of claim 12,
The hash coefficient transmitted by the update unit is used to calculate hash values of malware patterns transmitted to the anti-malware device.
제12항에 있어서
상기 안티멀웨어 디바이스로 전송되는 멀웨어 패턴들에 대한 해시 함수를 통한 최소의 해시 충돌 결과에 기초하여, 상기 해시 계수를 선정하는 해시계수 선정부; 를 더 포함하며,
상기 업데이트부가 전송하는 해시 계수는 상기 해시 계수 선정부에 의해 선정된 해시 계수인 것을 특징으로 하는 서버.
The method of claim 12, wherein
A hash clock number selector configured to select the hash coefficient based on a minimum hash collision result through a hash function of malware patterns transmitted to the antimalware device; More,
The hash coefficient transmitted by the update unit is a server, characterized in that the hash coefficient selected by the hash coefficient selection unit.
제14항에 있어서,
상기 해시계수 선정부는,
상기 안티멀웨어 디바이스로 전송할 멀웨어 패턴들을 상기 해시 함수에 적용하였을 때, 도출되는 해시 값이 상호 충돌될 확률이 최소화되도록 하는 알고리즘을 사용하거나, 도출되는 해시 값들의 분산값이 최소화되도록 하는 해시 계수를 선정하는 것을 특징으로 하는 서버.
15. The method of claim 14,
The sundial number selection unit,
When the malware patterns to be transmitted to the antimalware device are applied to the hash function, an algorithm is used to minimize the probability that the derived hash values collide with each other, or a hash coefficient is selected to minimize the variance of the derived hash values. Server characterized in that.
제14항에 있어서,
상기 해시계수 선정부는,
상기 멀웨어 패턴들을 업데이트할 데이터가 있는 경우, 업데이트용 멀웨어 패턴들과 상기 안티멀웨어 디바이스가 기 저장하고 있는 멀웨어 패턴들 모두를 해시 함수에 적용하였을 때, 도출되는 해시 값이 상호충돌될 확률이 최소화되도록 하는 알고리즘을 사용하거나 또는 도출되는 해시 값의 분산값이 최소화되도록 하는 해시 계수를 선정하는 것을 특징으로 하는 서버.
15. The method of claim 14,
The sundial number selection unit,
When there is data to update the malware patterns, when both the update malware patterns and the malware patterns previously stored by the anti-malware device are applied to a hash function, the probability that the derived hash value is mutually conflicted is minimized. And a hash coefficient for selecting a hash coefficient to minimize a variance of the derived hash value.
제12항에 있어서,
안티멀웨어 디바이스로 전송하는 멀웨어 패턴들에 대한 해시 함수를 통한 최소의 해시 충돌 결과에 기초하여, 상기 해시 함수를 선정하는 해시함수 선정부;를 더 포함할 수 있으며,
상기 업데이트부는, 상기 해시함수 선정부에 의해 선정된 해시 함수를, 상기 안티멀웨어 디바이스로 전송하는 멀웨어 패턴들과 함께 안티멀웨어 디바이스로 전송하는 것을 특징으로 하는 서버.
The method of claim 12,
And a hash function selecting unit configured to select the hash function based on a result of the minimum hash collision through the hash function for the malware patterns transmitted to the antimalware device.
And the update unit transmits the hash function selected by the hash function selection unit to the antimalware device together with the malware patterns to transmit to the antimalware device.
제12항에 있어서,
상기 멀웨어 패턴들은 바이러스 스캐닝을 위한 바이러스 패턴들 및 방화벽 필터링을 위한 룰 패턴들 중 적어도 하나를 포함하며, 상기 해시 계수는 상기 바이러스 스캐닝을 위한 바이러스 해시 계수 및 상기 방화벽 필터링을 위한 룰 해시 계수 중 적어도 하나를 포함하는 것을 특징으로 하는 서버.
The method of claim 12,
The malware patterns include at least one of virus patterns for virus scanning and rule patterns for firewall filtering, wherein the hash coefficient is at least one of a virus hash coefficient for the virus scanning and a rule hash coefficient for the firewall filtering. Server comprising a.
해시 계수를 이용하여 멀웨어 패턴 매칭 동작을 수행하는 방법에 있어서,
멀웨어 패턴들의 해시 값들이 상호 충돌될 확률이 최소화되도록, 상기 멀웨어 패턴들를 참조하여 상기 해시 계수를 선정하는 단계;
상기 선정된 해시 계수를 사용하여 상기 멀웨어 패턴들에 대한 해시 값들을 산출하는 단계; 및
상기 멀웨어 패턴들에 대한 해시 값들 중 적어도 하나와 타겟데이터에 대한 해시 값이 매칭되는 경우에, 상기 멀웨어 패턴들과 상기 타겟데이터를 매칭시키는 단계;를 포함하는 멀웨어 패턴 매칭 방법.
A method of performing a malware pattern matching operation using a hash coefficient,
Selecting the hash coefficient with reference to the malware patterns such that the probability of hash values of malware patterns colliding with each other is minimized;
Calculating hash values for the malware patterns using the predetermined hash coefficient; And
And matching the malware patterns with the target data when at least one of the hash values for the malware patterns and the hash value for the target data are matched.
제19항에 있어서,
상기 멀웨어 패턴들이 변경되면, 상기 변경된 멀웨어 패턴들에 대한 해시 값들이 서로 충돌되는 확률이 최소화되도록 하는 해시 계수를 재선정하는 단계;를 더 포함하는 것을 특징으로 하는 멀웨어 패턴 매칭 방법.
20. The method of claim 19,
And reselecting a hash coefficient to minimize the probability that the hash values of the changed malware patterns collide with each other when the malware patterns are changed.
제20항에 있어서,
상기 재선정된 해시 계수를 사용하여 상기 변경된 멀웨어 패턴들에 대한 해시 값들을 재산출하는 단계;를 더 포함하고,
상기 재선정된 해수 계수는 상기 변경된 멀웨어 패턴들을 참조하여 선정된 것임을 특징으로 하는 멀웨어 패턴 매칭 방법.
21. The method of claim 20,
Recalculating hash values for the modified malware patterns using the reselected hash coefficients;
And the reselected seawater coefficient is selected with reference to the changed malware patterns.
제19항에 있어서
상기 해시 계수를 선정하는 단계는,
준비된 후보 해시 계수들 각각을 사용하여, 상기 멀웨어 패턴들의 해시 값들을 구하는 단계; 및
상기 후보 해시 계수들 각각에 대하여 구해진 멀웨어 패턴들의 해시 값들의 분산값이 가장 낮은 후보 해시 계수를 상기 타겟데이터의 해시 값을 구하기 위한 해시 계수로서 선정하는 단계;를 포함하는 것을 특징으로 하는 멀웨어 패턴 매칭 방법.
The method of claim 19, wherein
The step of selecting the hash coefficient,
Obtaining hash values of the malware patterns using each of the prepared candidate hash coefficients; And
Selecting a candidate hash coefficient having the lowest variance of the hash values of the malware patterns obtained for each of the candidate hash coefficients as a hash coefficient for obtaining a hash value of the target data. Way.
해시 함수를 이용하여 멀웨어 패턴들의 해시 값들을 계산하는 단계;
상기 해시 함수를 이용하여 타겟데이터에 대한 해시 값을 계산하는 단계;
상기 멀웨어 패턴들에 대한 해시 값들과 상기 타겟데이터에 대한 해시 값이 매칭되는 경우에, 상기 멀웨어 패턴들과 상기 타겟데이터를 매칭시키는 단계; 및
상기 계산된 멀웨어 패턴들의 해시 값들이 서로 충돌되는지 여부를 판단하는 단계;를 포함하는 것을 특징으로 하는 해시 함수를 이용한 멀웨어 패턴 매칭 방법.
Calculating hash values of malware patterns using a hash function;
Calculating a hash value for target data using the hash function;
If the hash values for the malware patterns and the hash value for the target data match, matching the malware patterns with the target data; And
And determining whether or not the calculated hash values of the malware patterns are collided with each other.
제23항에 있어서,
판단결과 상기 멀웨어 패턴들의 해시 충돌 횟수가 기설정된 기준 횟수보다 많은 경우, 상기 해시 함수 또는 상기 해시 함수를 구성하는 해시 계수를 재선정하는 단계;를 포함하는 것을 특징으로 하는 멀웨어 패턴 매칭 방법.
24. The method of claim 23,
And reselecting the hash function or the hash coefficient constituting the hash function when the number of hash collisions of the malware patterns is greater than a preset reference number. 2.
제24항에 있어서,
상기 해시 계수를 재선정하는 단계는,
후보 해시 계수들을 선정하는 단계;
상기 후보 해시 계수들을 이용하여, 상기 매칭시키는 단계에서 사용될 멀웨어 패턴들에 대한 해시 값들을 구하는 제1단계; 및
상기 후보 해시 계수들 중에서, 상기 제1단계에서 구한 해시 값들을 비교하여 해시 충돌이 최소화되도록 하는 해시 계수를 선정하는 단계;를 포함하는 것을 특징으로 하는 멀웨어 패턴 매칭 방법.
25. The method of claim 24,
Reselecting the hash coefficient,
Selecting candidate hash coefficients;
Obtaining hash values for malware patterns to be used in the matching step using the candidate hash coefficients; And
Selecting a hash coefficient from the candidate hash coefficients to compare hash values obtained in the first step to minimize hash collisions.
제24항에 있어서,
상기 해시 계수를 재선정하는 단계는,
후보 해시 계수들을 선정하는 단계;
상기 후보 해시 계수들을 이용하여, 상기 매칭시키는 단계에서 사용될 멀웨어 패턴들의 해시 값들을 구하는 제1단계; 및
상기 제1단계에서 구한 해시 값들에 대한 각각의 분산값을 구하고, 상기 후보 해시 계수들 중에서 상기 분산값이 가장 작은 해시 계수를 선정하는 단계;를 포함하는 것을 특징으로 하는 멀웨어 패턴 매칭 방법.
25. The method of claim 24,
Reselecting the hash coefficient,
Selecting candidate hash coefficients;
A first step of obtaining hash values of malware patterns to be used in the matching step using the candidate hash coefficients; And
Obtaining a respective variance value of the hash values obtained in the first step, and selecting a hash coefficient having the smallest variance value among the candidate hash coefficients.
서버로부터 적어도 하나의 해시 계수와 데이터를 수신하는 통신부; 상기 적어도 하나의 해시 계수를 가지는 해시 함수를 이용하여 멀웨어 패턴들에 대한 해시값들과 타겟 데이터에 대한 해시값을 생성하는 해시값 생성부; 상기 타겟 데이터의 해시값과 상기 멀웨어 패턴들의 해시값들을 매칭시키는 해시 매처부, 상기 해시 매처에 의한 매칭이 성공하면, 상기 멀웨어 패턴들과 상기 타겟 데이터를 매칭시키는 매칭부를 포함하는 프로세서를 포함하는 안티 멀웨어 디바이스.A communication unit for receiving at least one hash coefficient and data from a server; A hash value generator configured to generate hash values for malware patterns and hash values for target data using a hash function having the at least one hash coefficient; And a processor comprising a hash matcher for matching the hash values of the target data and the hash values of the malware patterns, and a matching unit for matching the malware patterns with the target data when matching by the hash matcher is successful. Malware device. 해시 계수를 가지는 해시 함수를 이용하여 멀웨어 패턴 매칭을 수행하는 안티 멀웨어 디바이스에게 멀웨어 패턴 데이터를 전송하는 서버에 있어서,
상기 멀웨어 패턴들이 상기 안티 멀웨어 디바이스에게 전송될 때 상기 안티 멀웨어 디바이스에게 상기 해시 계수를 전송하는 업데이트부;를 포함하는 서버.
A server for transmitting malware pattern data to an anti-malware device that performs malware pattern matching using a hash function having a hash coefficient.
And an updater configured to transmit the hash coefficient to the anti-malware device when the malware patterns are transmitted to the anti-malware device.
KR1020110059075A 2010-06-21 2011-06-17 Anti-Malware Device, Server and Pattern Matching Method KR101274348B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011136948A JP5378458B2 (en) 2010-06-21 2011-06-21 Anti-malware device, server and malware pattern matching method
CN201110183976.3A CN102289617B (en) 2010-06-21 2011-06-21 Anti-malware device, server, and method of matching malware patterns
EP11170732A EP2410453A1 (en) 2010-06-21 2011-06-21 Anti-malware device, server, and method of matching malware patterns
US13/165,429 US8365288B2 (en) 2010-06-21 2011-06-21 Anti-malware device, server, and method of matching malware patterns

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20100058504 2010-06-21
KR1020100058504 2010-06-21

Publications (2)

Publication Number Publication Date
KR20110139117A KR20110139117A (en) 2011-12-28
KR101274348B1 true KR101274348B1 (en) 2013-07-30

Family

ID=45504802

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110059075A KR101274348B1 (en) 2010-06-21 2011-06-17 Anti-Malware Device, Server and Pattern Matching Method

Country Status (2)

Country Link
JP (1) JP5378458B2 (en)
KR (1) KR101274348B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6028567B2 (en) * 2012-12-28 2016-11-16 富士通株式会社 Data storage program, data search program, data storage device, data search device, data storage method, and data search method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110033798A (en) * 2009-09-25 2011-03-31 인텔 코오퍼레이션 Computer system and method with anti-malware

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07168841A (en) * 1993-12-14 1995-07-04 Shikoku Nippon Denki Software Kk Hash table generating method
JP2000105770A (en) * 1998-09-28 2000-04-11 Matsushita Electric Ind Co Ltd Hash table retrieval method and device therefor
JP2004252642A (en) * 2003-02-19 2004-09-09 Matsushita Electric Ind Co Ltd Method, device, server, and client of virus detection
US20050015599A1 (en) * 2003-06-25 2005-01-20 Nokia, Inc. Two-phase hash value matching technique in message protection systems
US7539871B1 (en) * 2004-02-23 2009-05-26 Sun Microsystems, Inc. System and method for identifying message propagation
US8214977B2 (en) * 2008-05-21 2012-07-10 Symantec Corporation Centralized scanner database with optimal definition distribution using network queries

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110033798A (en) * 2009-09-25 2011-03-31 인텔 코오퍼레이션 Computer system and method with anti-malware

Also Published As

Publication number Publication date
KR20110139117A (en) 2011-12-28
JP2012003773A (en) 2012-01-05
JP5378458B2 (en) 2013-12-25

Similar Documents

Publication Publication Date Title
EP2410453A1 (en) Anti-malware device, server, and method of matching malware patterns
US20200177552A1 (en) Methods and apparatus for malware threat research
US10803171B2 (en) Virus detection method, terminal and server
US8875294B2 (en) System and method for cloud-based detection of computer malware
RU2551820C2 (en) Method and apparatus for detecting viruses in file system
US9154517B2 (en) System and method for preventing spread of malware in peer-to-peer network
Bayer et al. Scalable, behavior-based malware clustering.
EP2447877B1 (en) System and method for detection of malware and management of malware-related information
RU2580036C2 (en) System and method of making flexible convolution for malware detection
US8819835B2 (en) Silent-mode signature testing in anti-malware processing
KR101693370B1 (en) Fuzzy whitelisting anti-malware systems and methods
US7596809B2 (en) System security approaches using multiple processing units
RU2536664C2 (en) System and method for automatic modification of antivirus database
US9654486B2 (en) System and method for generating sets of antivirus records for detection of malware on user devices
JP5963008B2 (en) Computer system analysis method and apparatus
US20130227692A1 (en) System and method for optimization of antivirus processing of disk files
CN109583201B (en) System and method for identifying malicious intermediate language files
US9875248B2 (en) System and method for identifying a file path using tree data structure
JP7166969B2 (en) Router attack detection device, router attack detection program, and router attack detection method
KR101274348B1 (en) Anti-Malware Device, Server and Pattern Matching Method
CN104573519B (en) file scanning method and system
CN112580038A (en) Anti-virus data processing method, device and equipment
RU2614561C1 (en) System and method of similar files determining
CN112149126B (en) System and method for determining trust level of file
CN112580037B (en) Method, device and equipment for repairing virus file data

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
FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee