KR101274348B1 - Anti-Malware Device, Server and Pattern Matching Method - Google Patents
Anti-Malware Device, Server and Pattern Matching Method Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/22—Arrangements 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
본 발명은 안티멀웨어 디바이스, 서버 및 멀웨어 패턴 매칭 방법에 관한 것으로서, 더욱 상세하게는 바이러스 패턴 매칭 시에 해시 충돌을 최소화할 수 있는 안티멀웨어 디바이스, 서버 및 멀웨어 패턴 매칭 방법에 관한 것이다.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
서버(100)는 안티멀웨어 디바이스(200)에게 멀웨어 패턴 DB(Database)와 적어도 하나의 해시 계수를 전송한다. 멀웨어 패턴 DB는 멀웨어 패턴들로 구성되어 있다. 멀웨어 패턴들은 바이러스, 트로이목마, 감염 파일, 악성 코드 등 파일에 손상을 주는 데이터이다.The
멀웨어 패턴들은 안티멀웨어 디바이스(200)가 타겟데이터의 멀웨어 감염 여부를 검출하기 위해 사용하는 기준 데이터이다. 멀웨어 패턴들은 바이러스 스캐닝을 위한 바이러스 패턴들과 방화벽 필터링을 위한 룰 패턴들을 포함할 수 있다. 바이러스 패턴과 룰 패턴에 대해서는 후술한다.The malware patterns are reference data used by the
해시 계수는 안티멀웨어 디바이스(200)에서 해시값을 산출할 때 사용되는 계수이다. 바람직하게, 해시 계수는 가능한 한 해시 충돌을 방지할 수 있는 계수로 선정된다. 본 발명의 일 실시예에 따르면, 해시 계수는 멀웨어 패턴들 중 바이러스 패턴들을 참조하여 선정되는 바이러스 해시 계수와 룰 패턴들을 참조하여 선정되는 룰 해시 계수를 포함할 수 있다.The hash coefficient is a coefficient used when calculating the hash value in the
서버(100)는 업데이트용 멀웨어 패턴이 발생하면 해시 계수를 재선정하고, 업데이트용 멀웨어 패턴과 재선정된 해시 계수를 포함하는 업데이트용 멀웨어 패턴 DB를 안티멀웨어 디바이스(200)로 전송한다.When the update malware pattern occurs, the
안티멀웨어 디바이스(200)는 적어도 하나 이상의 해시 계수를 가지는 해시 함수를 이용하여 멀웨어 패턴 매칭을 수행한다. 적어도 하나 이상의 해시 계수는 서버(100)에서 선정된 계수이다. 이를 위하여, 안티멀웨어 디바이스(200)는 서버(100)로부터 수신된 멀웨어 패턴 DB에 포함된 해시 계수를 해시 함수의 계수로 사용하고, 멀웨어 패턴들을 해시 함수의 변수에 대입하여 사용한다. 안티멀웨어 디바이스(200)는 시스템 온 칩, 노트북, 데스크 탑 컴퓨터, 스마트 폰, 스마트 카드 및 반도체용 자산 칩(IP) 등과 같은 모바일 전자기기에 해당할 수 있다.The
이하에서는, ‘멀웨어 패턴 또는 멀웨어 패턴들”은 종종 “멀웨어 패턴 데이터”라고 언급이 되고, '안티멀웨어 디바이스(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
또한, 이하의 설명에서는, 서버(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
해시 계수 선정부(110)는 제1멀웨어 패턴데이터들에 해시 함수들을 적용할 경우, 최소의 해시 충돌 결과를 발생하는 해시 함수에 기초하여, 안티멀웨어 디바이스(200)로 전송할 제1해시 계수를 선정한다. When the hash
일 예로, 해시 계수 선정부(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
또는, 해시 계수 선정부(110)는 제1멀웨어 패턴데이터들을 해시 함수에 적용하였을 때 도출되는 해시 값들의 분산값이 최소화되도록 하는 해시 계수를 제1해시 계수로 선정할 수 있다. 즉, 해시 계수 선정부(110)는 후보 해시 그룹들 각각에 대한 해시 값들이 산출되면, 해시 값들의 분산값을 후보 해시 그룹별로 산출한다. 해시 계수 선정부(110)는 후보 해시 그룹별로 산출된 분산값들 중 최소의 분산값이 산출되도록 한 후보 해시 그룹을 확인하고, 확인된 후보 해시 그룹의 해시 계수를 제1해시 계수로 선정할 수 있다.Alternatively, the hash
업데이트부(120)는 안티멀웨어 디바이스(200)로 제1멀웨어 패턴데이터들을 전송할 때, 선정된 제1해시 계수를 멀웨어 패턴데이터들과 같이 전송할 수 있다. 업데이트부(120)가 전송하는 제1해시 계수는 안티멀웨어 디바이스(200)로 전송되는 제1멀웨어 패턴데이터들의 해시 값들을 산정하는데 사용될 수 있다.When the
도 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
한편, 제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
업데이트부(120)는 산정된 제2해시 계수와 업데이트용 멀웨어 패턴데이터들을 함께 안티멀웨어 디바이스(200)로 전송할 수 있다. 도 2를 참조하여 설명하면, 업데이트부(120)는 헤더 항목(310)에 헤더 정보를 기재하고, 해시 항목(320)에 변경된 제2해시 계수를 기재하며, 데이터 항목(330)에 업데이트용 멀웨어 패턴데이터들을 기재하여 패킷 및/또는 파일을 안티멀웨어 디바이스(200)로 전송할 수 있다.The
다시 도 1을 참조하면, 본 발명의 일 실시예에 따른 안티멀웨어 디바이스(200)는 패턴 DB(210), 해시값 생성부(220), 패턴 해시값 테이블(230), 테이블 생성부(240), 제1해시 매처 테이블(250), 제1서브 매처 테이블(255), 제2해시 매처 테이블(260), 제2서브 매처 테이블(265), 해시 매처부(270) 및 매칭부(280)를 포함할 수 있다.Referring back to FIG. 1, the
안티멀웨어 디바이스(200)는 서버(100)로부터 제1멀웨어 패턴데이터들과 제1해시 계수를 포함하는 멀웨어 패턴 DB를 도 2와 같은 SVD 형태로 수신한다. 멀웨어 패턴 DB 중 제1멀웨어 패턴데이터들은 패턴 DB(210) 형태로 메모리(미도시)에 저장되고, 제1해시 계수는 해시값 생성부(220)로 입력된다. The
패턴 DB(210)는 서버(100)로부터 수신된 제1멀웨어 패턴데이터들을 저장한다. 제1멀웨어 패턴데이터들은 타겟데이터의 멀웨어 감염 여부를 검출하기 위하여 매칭부(280)가 타겟데이터와의 매칭 동작을 수행할 때 사용될 수 있다.The
서버(100)로부터 수신된 제1멀웨어 패턴데이터들이 바이러스 패턴데이터들과 룰 패턴데이터들을 모두 포함하고 있는 경우, 패턴 DB(210)는 바이러스 패턴 DB와 룰 패턴 DB를 포함할 수 있다. 바이러스 패턴 DB와 룰 패턴 DB는 시스템 온 칩(System-on-chip, SoC)에 구비된 메모리(미도시)에 저장되어 있을 수 있다.When the first malware pattern data received from the
바이러스 패턴 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
해시값 생성부(220)는 서버(100)로부터 수신된 적어도 하나 이상의 제1해시 계수와 패턴 DB(210)에 저장된 제1멀웨어 패턴데이터들을 이용하여 제1멀웨어 패턴데이터들에 대한 해시값(HP)들을 생성할 수 있다. 즉, 해시값 생성부(220)는 바이러스 패턴데이터들에 대한 해시값(HV)들을 생성하거나, 룰 패턴데이터들에 대한 해시값(HR)들을 생성할 수 있다. 따라서, 이하의 설명에서 해시값(HP)은 해시값(HV)이거나 또는 해시값(HR)을 의미할 수 있다.The
제1해시 계수는 제1멀웨어 패턴데이터들에 대한 해시 함수를 통한 최소의 해시 충돌 결과에 기초하여 서버(100)에서 선정된다. 또한, 제1해시 함수는, 안티멀웨어 디바이스(200)로 전송될 제1멀웨어 패턴데이터들에 대한 해시 값들을 무작위로 도출하였을 때, 도출되는 해시 값들이 상호 충돌될 확률이 최소화되도록 정해진 함수이다.The first hash coefficient is selected by the
해시값 생성부(220)는 제1해시 계수를 가지는 제1해시 함수를 이용하여, 제1멀웨어 패턴데이터들에 대한 해시 값을 생성할 수 있다. The
먼저, 도 3 내지 도 5를 참조하여, 안티멀웨어 디바이스(200)가 바이러스 패턴데이터들과 바이러스 해시 계수를 이용하여 바이러스 패턴데이터들에 대한 해시 값을 생성하고, 바이러스 스캐닝을 수행하는 과정에 대해 설명한다.First, a process in which the
도 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
모든 바이러스 패턴데이터들에 대한 해시 값(HV)들이 생성되면, 해시값 생성부(220)는 패턴 해시값 테이블(230)을 생성할 수 있다.When the hash values HV for all the virus pattern data are generated, the
패턴 해시값 테이블(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
테이블 생성부(240)는 패턴 해시값 테이블(230)을 참조하여 제1해시 매처 테이블(250)과 제1서브 매처 테이블(255)을 생성할 수 있다.The
도 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
테이블 생성부(240)는 패턴 해시 값 테이블(230)의 해시 값(HV)들과 모든 인덱스들을 비교하여, 해시 값(HV)과 동일한 인덱스가 있으면 그 동일한 인덱스를 “1”로 설정한다. Value '0'은 해시값(HV)과 동일한 인덱스가 없는 경우 사용되고, '1'은 해시 값(HV)과 동일한 인덱스가 있는 경우 사용된다. 도 3의 패턴 해시값 테이블(230)에는 해시 값(HV)으로서 X와 Y가 포함되어 있으므로, 도 4의 제1해시 매처 테이블(250)에는 인덱스 'X'와 'Y'에 '1'이 체크되어 있다.The
또한, 테이블 생성부(240)는 패턴 해시값 테이블(230)과 제1해시 매처 테이블(250)을 이용하여 제1서브 매처 테이블(255)을 생성할 수 있다. 제1서브 매처 테이블(255)은 매칭부(280)에서 바이러스 스캐닝을 위해 LPM(Light Pattern Matching) 및 EPM(Exact Pattern Matching) 중 적어도 하나를 수행하는데 사용될 수 있다. LPM과 EPM에 대한 설명은 후술한다.In addition, the
도 5를 참조하면, 테이블 생성부(240)는 제1해시 매처 테이블(250)의 모든 인덱스들 중 해시 값(HV)과 일치하는 인덱스들(X와 Y를 포함)을 기준으로 제1서브 매처 테이블(255)을 생성할 수 있다. 이하에서는 '모든 인덱스들 중 해시 값(HV)과 일치하는 인덱스들'을 '매칭 인덱스'라 한다.Referring to FIG. 5, the
테이블 생성부(240)는 매칭 인덱스들에 해당하는 바이러스 패턴데이터들 각각의 중간값(middle)과 끝값(tail), 그리고, 바이러스 패턴데이터들이 저장된 어드레스를 이용하여 제1서브 매처 테이블(255)을 생성할 수 있다. 매칭 인덱스들에 해당하는 바이러스 패턴데이터들 각각의 중간값과 끝값은 패턴 해시값 테이블(230)을 참조할 수 있다. 예를 들어, 매칭 인덱스가 'X'인 경우, 'X'의 패턴은 'abcdefg'이다. 테이블 생성부(240)는 'abcdefg' 중 중간값인 'd'와 끝값인 'g'를 패턴 해시값 테이블(230)에서 확인할 수 있다.The
도 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
다시 도 1을 참조하면, 해시값 생성부(220)는 바이러스 스캐닝 대상인 타겟데이터를 입력받아 타겟데이터에 대한 해시 값을 더 생성할 수 있다. 타겟데이터는 사전에 정의된 크기로 분할된 서브데이터들(S1, S2, S3, …)로 이루어질 수 있다. 이러한 경우, 해시값 생성부(220)는 서브데이터들을 순차적으로 입력받아 각 서브데이터에 대한 해시 값(HS)들을 생성할 수 있다. 해시값 생성부(220)는 생성된 서브데이터에 대한 해시 값(HS)을 매칭부(280)로 제공할 수 있다. 이하에서는 제1서브데이터(S1) 및 제1서브데이터에 대한 해시 값(HS1)을 예로 들어 설명한다.Referring back to FIG. 1, the
해시 매처부(270)는 해시값 생성부(220)로부터 제1서브데이터에 대한 해시 값(HS1)을 입력받을 수 있다. 해시 매처부(270)는 제1해시 매처 테이블(250) 중 '1'이 체크된 매칭 인덱스들(예를 들어, X와 Y)에, 제1서브데이터의 해시 값(HS1)을 매칭시킬 수 있다. '1'이 체크된 매칭 인덱스들은 바이러스 패턴데이터들의 해시 값(HV)들 중 일부이다.The
매칭의 성공여부는 해시 매처부(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
해시 매처부(270)에 의한 매칭이 성공하면, 매칭부(280)는 바이러스 패턴데이터들 중 적어도 하나와 제1서브데이터의 패턴을 매칭시킬 수 있다. 자세히 설명하면, 매칭부(280)는 해시 값(HS1)과 일치하는 매칭 인덱스(예를 들어, X)에 해당하는 바이러스 패턴데이터와 제1서브데이터의 패턴을 매칭하는 동작을 수행할 수 있다. 이는 '제1서브데이터의 해시 값(HS1)과 일치하는 매칭 인덱스'는 바이러스 패턴데이터를 제1해시 함수에 대입하여 생성된 해시 값이기 때문이다. 바이러스 패턴데이터들과 제1서브데이터의 패턴을 매칭한 결과는 멀웨어의 감염 여부를 판단하는 것에 영향을 미친다.If the matching by the
이를 위하여, 매칭부(280)는 LPM 방식 및 EPM 방식을 사용할 수 있다. To this end, the
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
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
이를 위해, 매칭부(280)는 제1서브 매처 테이블(255)을 참조하여 매칭 인덱스(X)에 매핑저장된 바이러스 패턴데이터의 어드레스를 확인한다. 매칭부(280)는 확인된 어드레스에 저장된 바이러스 패턴데이터의 패턴을 메모리(미도시)로부터 읽어온다. 메모리에는 패턴 DB(210) 또는 패턴 해시값 테이블(230)이 로딩되어 있을 수 있다. 도 5는 패턴 DB(210)의 일 예를 보여주는 도면이다. 매칭부(280)는 해당 어드레스에 저장된 바이러스 패턴데이터의 전체 패턴 'abcdefg'와 제1서브데이터의 전체 패턴을 매칭시킨다. To this end, the
이하에서는 도 6을 참조하여 안티멀웨어 디바이스(200)가 룰 패턴데이터들과 룰 해시 계수를 이용하여 룰 패턴데이터들에 대한 해시 값을 생성하고, 필터링을 수행하는 과정에 대해 설명한다.Hereinafter, a process in which the
도 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
모든 룰 패턴데이터들에 대한 해시 값(HR)들이 생성되면, 해시값 생성부(220)는 룰 패턴 해시값 테이블(미도시)을 생성할 수 있다. 룰 패턴 해시값 테이블(미도시)은 해시값 생성부(220)에서 생성된 해시 값(HR) 및 해시 값(HR)에 대응하는 룰 패턴데이터의 패턴을 매핑한 테이블로서 메모리(미도시)로 로딩될 수 있다.When hash values HR for all rule pattern data are generated, the
모든 룰 패턴데이터들에 대한 해시 값(HR)들이 생성되면, 테이블 생성부(240)는 룰 패턴 해시값 테이블(미도시)을 참조하여 제2해시 매처 테이블(260)과 제2서브 매처 테이블(265)을 생성할 수 있다.When the hash values HR for all the rule pattern data are generated, the
도 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
도 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
테이블 생성부(240)는 제2해시 매처 테이블(260)의 모든 인덱스들 중 해시 값(HR)과 일치하는 인덱스들(X, A를 포함)을 기준으로 제2서브 매처 테이블(265)을 생성할 수 있다. 이하에서는 '모든 인덱스들 중 해시 값(HR)과 일치하는 인덱스들'을 '매칭 인덱스'라 한다.The
제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
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
제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
해시 매처부(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
해시값 생성부(220)는, 서버(100)로부터 업데이트용 멀웨어 패턴데이터들을 수신하는 경우, 업데이트용 멀웨어 패턴데이터들과 함께 전송된 제2해시 계수를 이용하여 해시 값을 재생성할 수 있다. 즉, 해시값 생성부(220)는 업데이트용 멀웨어 패턴데이터들과 함께 서버(100)로부터 수신된 제2해시 계수를 가지는 제2해시 함수를 이용하여 해시 값을 재생성할 수 있다. 따라서, 업데이트용 멀웨어 패턴데이터들로 이루어지는 업데이트용 멀웨어 패턴 DB는, 헤더 정보가 기재되는 헤더 항목(310)과, 제2해시 계수가 기재되는 해시 항목(320)을 포함할 수 있다. 또한, 업데이트용 멀웨어 패턴데이터들은 패턴 DB(210)에 추가될 수 있다. 그 이후, 해시값 생성부(220), 테이블 생성부(240), 해시 매처부(270) 및 매칭부(280)의 동작은 제1멀웨어 패턴데이터들이 입력된 경우와 유사하므로 상세한 설명은 생략한다.When the
상술한 본 발명의 일 실시예에 의하면, 서버(100)는 안티멀웨어 디바이스(200)에게 해시 계수를 포함하는 멀웨어 패턴데이터들을 전송할 수 있다. 안티멀웨어 디바이스(200)는 서버(100)로부터 수신된 해시 계수를 이용하여 해시 함수를 정하고, 패턴 매칭을 수행할 수 있다.According to an embodiment of the present invention described above, the
도 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
다만, 도 1의 서버(100)는 해시 계수를 선정하여 안티멀웨어 디바이스(700)에게 전송한다. 반면, 도 7에 도시된 서버(600)는 해시 계수가 적용된 해시 함수를 선정하여 안티멀웨어 디바이스(700)에게 전송할 수 있다. 안티멀웨어 디바이스(700)는 수신된 해시 함수를 이용하여 제1멀웨어 패턴데이터들의 해시 값과 타겟데이터들의 해시 값을 생성할 수 있다. However, the
이를 위하여, 본 발명의 다른 실시예에 따른 서버(600)는 해시 함수 선정부(610) 및 업데이트부(620)를 포함한다.To this end, the
해시 함수 선정부(610)는 제1멀웨어 패턴데이터들을 대상으로 안티 멀웨어 엔진에서 패턴 데이터를 모두 검출하면서 빠르게 검색할 수 있는 함수를 선정하고, 이렇게 선정된 함수에 대한 최적의 계수값을 해시 계수로 선정하여, 안티멀웨어 디바이스(700)로 전송할 제1해시 함수를 정할 수 있다.The hash
일 예로, 해시 함수 선정부(610)는 주어진 제1멀웨어 패턴데이터들을 대상으로 여러 개의 해시 함수 중 최적의 패턴 검출과 빠른 검색을 할 수 있는 함수를 선정한다. 그리고, 해시 함수 선정부(610)는 도 1의 해시 계수 선정부(110)에서 사용한 알고리즘을 이용하여 제1해시 계수를 선정하고, 제1해시 계수를 기존의 해시 함수에 업데이트하여 제1해시 함수와 제1해시 계수를 선정할 수 있다.For example, the hash
또는, 해시 함수 선정부(610)는 도 1의 해시 계수 선정부(110)에서 산출한 분산값을 이용하여 제1해시 계수를 선정하고, 제1해시 계수를 기존의 해시 함수에 업데이트하여 제1해시 함수를 선정할 수 있다.Alternatively, the hash
제1멀웨어 패턴데이터들을 업데이트할 데이터가 있는 경우에도, 해시 함수 선정부(610)는 새로운 업데이트용 멀웨어 패턴데이터들과 안티멀웨어 디바이스(700)로 전송된 제1멀웨어 패턴데이터들을 이용하여 제2해시 함수를 재선정할 수 있다.Even when there is data to update the first malware pattern data, the hash
업데이트부(620)는 안티멀웨어 디바이스(700)로 제1멀웨어 패턴데이터들을 전송할 때, 선정된 제1해시 함수를 멀웨어 패턴데이터들과 같이 전송할 수 있다. 전송되는 제1해시 함수는 안티멀웨어 디바이스(700)로 전송되는 제1멀웨어 패턴데이터들의 해시 값들을 생성하는데 사용될 수 있다.When the
또한, 서버(600)는 안티멀웨어 디바이스(700)로부터의 요청이 있으면, 필요한 업데이트용 멀웨어 패턴데이터들과 함께 업데이트용 해시 함수를 안티멀웨어 디바이스(700)에게 전송한다.In addition, upon request from the
본 발명의 실시예에서, 서버(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
한편, 본 발명의 다른 실시예에 따른 안티멀웨어 디바이스(700)는 패턴 DB(710), 해시값 생성부(720), 패턴 해시값 테이블(730), 테이블 생성부(740), 제1 해시 매처 테이블(750), 제1 서브 매처 테이블(755), 제 2 서브 매처 테이블(760), 제2 서브 매처 테이블(765), 해시 매처부(770), 매칭부(780) 및 업데이트 요청부(790)를 포함할 수 있다.Meanwhile, the
도 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
다만, 해시값 생성부(720)는 서버(600)로부터 수신된 제1해시 함수를 이용하여 제1멀웨어 패턴데이터들의 해시 값과 서브데이터들의 해시 값을 생성한다. 예를 들어, 제1멀웨어 패턴데이터들이 바이러스 패턴데이터들이면, 해시값 생성부(720)는 바이러스 해시 함수를 이용하여 바이러스 패턴데이터들에 대한 해시 값을 생성한다. However, the
업데이트 요청부(790)는 해시값 생성부(720)에서 생성된 제1멀웨어 패턴데이터들에 대한 해시 값들이 서로 충돌되는 횟수가 기준값을 초과하면, 제1해시 계수 또는 제1해시 함수에 대한 업데이트를 서버(600)에게 요청할 수 있다. 또한, 업데이트 요청부(790)는 제1해시 계수뿐만 아니라 제1멀웨어 패턴데이터들의 업데이트를 서버(600)에게 요청할 수도 있다. 업데이트 요청부(790)는 선택적으로 구비될 수 있다.The
업데이트 요청부(790)는 제1서브 매처 테이블(755)을 모니터링하여 해시 충돌 횟수를 카운팅할 수 있다. 일 예로, 업데이트 요청부(790)는 제1서브 매처 테이블(755)의 '충돌 패턴 오프셋' 항목에 기재되는 매칭 인덱스의 개수를 해시 충돌 횟수로 사용할 수 있다. 또는, 해시 충돌 횟수는 카운터(미도시)에 의해 카운팅될 수 있다. The
상술한 본 발명의 다른 실시예에 의하면, 서버(600)는 안티멀웨어 디바이스(700)에게 해시 함수를 포함하는 멀웨어 패턴데이터들을 전송할 수 있다. 안티멀웨어 디바이스(700)는 서버(600)로부터 수신된 해시 함수를 이용하여 해시 값을 생성하고, 패턴 매칭을 수행할 수 있다.According to another embodiment of the present invention described above, the
도 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
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
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
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
서버(1100)는 멀웨어 패턴 DB를 업데이트하고, 클라이언트(1200)에서 멀웨어를 검출하는 과정에서 해시 충돌이 발생하는 것을 방지하기 위하여, 해시 충돌을 방지할 수 있는 해시 계수를 산출하고, 산출된 해시 계수를 클라이언트(1200)에 전송한다. 서버(1100)는 도 1 및 도 7을 참조하여 설명한 서버들(100, 600) 중 하나이거나 또는 유사하게 동작할 수 있다. 또한, 멀웨어 패턴 DB는 도 1 및 도 7을 참조하여 설명한 멀웨어 패턴 DB일 수 있다.The
클라이언트(1200)는 서버(1100)로부터 멀웨어 패턴 DB를 다운로드하여 멀웨어의 감염 여부를 검출할 수 있다. 클라이언트(1200)는 도 1 및 도 7을 참조하여 설명한 안티멀웨어 디바이스들(200, 700) 중 하나이거나 또는 유사하게 동작할 수 있다. 다만, 클라이언트(1200)는 시스템 온 칩(System-on-chip, SOC) 형태로 구현될 수 있다.The
본 발명의 실시예에서 서버(1100)는 클라이언트(1200)로부터 업데이트 요청이 있으면, 필요한 업데이트 정보와 함께 해시 계수를 클라이언트(1200)에 전송할 수 있다. 업데이트 정보는 서버(1100)에서 선정된 해시 계수 또는 해시 함수와 멀웨어 패턴데이터들을 포함할 수 있다.In an embodiment of the present invention, if there is an update request from the
서버(1100)는 멀웨어 패턴 DB를 업데이트하기 위한 업데이트부(1110)와, 해시 계수를 계산하기 위한 충돌회피부(1120)를 포함하여 이루어진다.The
업데이트부(1110)는 도 1 및 도 7의 업데이트부들(120, 620) 중 적어도 하나에서 수행하는 기능을 추가로 제공할 수 있다. 업데이트부(1110)는 멀웨어 패턴 입력 처리부(1111), 블록 생성 처리부(1112) 및 업데이트 정보 구성부(1114)를 포함한다.The
멀웨어 패턴 입력 처리부(1111)는 클라이언트(1200)로 전송할 멀웨어 패턴데이터들의 입력을 처리한다.The malware
블록 생성 처리부(1112)는 블록을 생성하며, 업데이트 정보 구성부(1114)는 업데이트 정보를 구성한다. 일 예로, 업데이트 정보 구성부(1114)는 해시 계수 선정부(1122)에서 선정된 해시 계수 및 해시 함수 선정부(1123)에서 선정된 해시 함수 중 하나를 해시 항목(320)에 기재하고, 멀웨어 패턴데이터들을 데이터 항목(330)에 기재하여 업데이트 정보, 즉, 멀웨어 패턴 DB를 구성할 수 있다.The block
충돌 회피부(1120)는 누적 블록 DB(1121), 해시 계수 선정부(1122) 및 해시 함수 선정부(1123)를 포함한다. 누적 블록 DB(1121)는 누적 블록 정보를 저장한다. 해시 계수 선정부(1122)는 해시 계수를 선정하고, 해시 함수 선정부(1123)는 해시 함수를 선정한다.The
해시 계수 선정부(1122)는 도 1의 해시 계수 선정부(110)의 기능을 수행할 수 있다. 즉, 해시 계수 선정부(1122)는 멀웨어 패턴데이터들에 대한 해시 함수를 통한 최소의 해시 충돌 결과에 기초하여, 클라이언트(1200)로 전송할 해시 계수를 선정할 수 있다. 일 예로, 해시 계수 선정부(1122)는 멀웨어 패턴데이터들을 해시 함수에 적용하였을 때 도출되는 해시 값들이 상호 충돌될 확률이 최소화되도록 하는 알고리즘을 사용하여 해시 계수를 선정할 수 있다. 또는, 해시 계수 선정부(1122)는 멀웨어 패턴데이터들을 해시 함수에 적용하였을 때 도출되는 해시 값들의 분산값들을 이용하여 해시 계수를 선정할 수 있다.The
해시 함수 선정부(1123)는 도 7의 해시 함수 선정부(610)의 기능을 수행할 수 있다. 즉, 해시 함수 선정부(1123)는 해시 계수 선정부(1122)에서 사용하는 방식으로 해시 계수를 선정하고, 선정된 해시 계수가 적용되는 해시 함수를 선정한다.The
한편, 클라이언트(1200)는 안티 멀웨어 어플리케이션부(1210) 및 안티 멀웨어 시스템 온 칩(System-on-chip)부(1220)를 포함한다.The
안티 멀웨어 어플리케이션부(1210)는 안티 멀웨어에 필요한 환경 설정 및 드라이버를 제공할 수 있다. 이를 위하여, 안티 멀웨어 어플리케이션부(1210)는 환경설정 및 DB 업데이트 요청부(1211), DB처리 모듈(1212), SOC 호출부(1213) 및 스캔 큐 및 드라이버 모듈(1214)을 포함한다.The
환경설정 및 DB 업데이트 요청부(1211)는 안티 멀웨어 동작을 위한 환경을 설정하고, 서버(1100)에게 멀웨어 패턴 DB의 업데이트를 요청할 수 있다. 환경설정 및 DB 업데이트 요청부(1211)는 도 7의 업데이트 요청부(790)의 기능을 추가로 제공할 수 있다.The environment setting and DB
DB처리 모듈(1212)은 멀웨어 패턴 DB, 즉, 멀웨어 패턴데이터들과 해시 함수 또는 해시 계수를 관리할 수 있다. SOC 호출부(1213)은 SOC를 호출한다.The
스캔 큐 및 드라이버 모듈(1214)은 클라이언트(1200)에서 패턴 매칭을 수행하는데 필요한 각종 드라이버를 제공 및/또는 구동할 수 있다.The scan queue and
안티 멀웨어 시스템 온 칩부(1220)는 멀웨어 패턴 DB를 이용하여 멀웨어에 감염된 데이터를 검출한다. 이를 위하여, 안티 멀웨어 시스템 온 칩부(1220)는 검색 엔진(1211), 패턴 매칭 모듈(1222), DB 매니저 모듈(1223), 파일 데이터 처리 모듈(1224), 패킷 데이터 처리 모듈(1225) 및 방화벽 룰 매니저 모듈(1226)을 포함한다.The anti-malware system on
검색 엔진(1211)은 멀웨어 패턴의 검색을 담당한다. 검색 엔진(1211)은 도 1 및 도 7의 해시값 생성부들(220, 720), 테이블 생성부들(240, 740) 및 해시 매처부들(270, 770)의 기능을 수행하는 하드웨어일 수 있다. 따라서, 검색 엔진(1211)은 멀웨어 패턴데이터들의 해시 값들과 서브데이터들의 해시 값들을 생성하고, 패턴 해시값 테이블을 생성하며, 해시값 매칭을 수행할 수 있다.The
패턴 매칭 모듈(1222)은 멀웨어 패턴데이터와 서브데이터의 패턴 매칭을 수행한다. 패턴 매칭 모듈(1222)은 도 1 및 도 7의 매칭부들(280, 780)에 해당할 수 있다.The
DB 매니저 모듈(1223)은 멀웨어 패턴 DB를 관리한다. 예를 들어, DB 매니저 모듈(1223)은 검색 엔진(1211)에서 해시값을 생성하도록 멀웨어 패턴데이터들을 메모리(미도시)로 로딩할 수 있다.The
파일 데이터 처리 모듈(1224)은 파일 데이터를 처리하고, 패킷 데이터 처리 모듈(1225)은 패킷 데이터를 처리한다. 예를 들어, 패킷 데이터 처리 모듈(1224)은 타겟데이터를 일정 단위를 가지는 서브데이터들로 분할할 수 있다. 각각의 서브데이터는 검색 엔진(1211)으로 제공되어 서브데이터에 대한 해시 값을 생성하는 경우 사용된다. The file
방화벽 룰 매니저 모듈(1226)은 방화벽 룰을 관리한다.The firewall
이하에서는 도 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
도 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
그 후, 서버(1100)는 업데이트 정보 구성부(1114)를 실행하여 클라이언트(1200)에게 필요한 블록정보와 그에 따른 작업종류(append/download/add/delete/replace), 업데이트용 멀웨어 패턴데이터들 및 그에 따라 재선정된 해시 계수도 함께 클라이언트(1200)에 전송한다. Subsequently, the
해당 정보를 전달받은 클라이언트(1200)는 블록과 작업정보로 자신의 블록에 대한 업데이트를 실시한 후, 결과를 서버(1100)측에 전달하고, 서버(1100)는 이를 저장하고 작업을 마친다. After receiving the corresponding information, the
도 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
도 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
한편, 도 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,
도 17에서는, TEST 2의 스캐닝 타임이 TEST 1의 스캐닝 타임보다 더 많이 소요되는 것으로 나타났지만, CPU의 속도의 차이를 고려한다면 실제로는 SoC 단에서 SW 만으로 구성된 안티-멀웨어 엔진을 동작 시킨 경우의 스캐닝 타임이, 어플리케이션 레이어에서 안티-멀웨어 엔진을 스캐닝 동작을 시킨 경우의 스캐닝 타임보다 더 적게 걸릴 것으로 예측된다.In FIG. 17, the scanning time of
한편, TEST 3는 CPU의 속도 차이가 있음에도 불구하고, TEST 1의 경우보다 스캐닝 속도가 훨씬 빠름을 알 수 있다. 즉, 스캐닝 대상인 파일의 개수가 2천 여건이 넘어가면서, TEST 3는 TEST 1보다, 스캐닝 속도가 1.5배 이상 빨라지는 것을 알 수 있다. On the other hand,
도 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
도 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:
110: hash coefficient selection unit 120: update unit
210, 710:
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:
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.
상기 해시 계수 및/또는 해시 함수는 상기 멀웨어 패턴들에 적용되는 복수의 해시 함수들로부터 생성되는 각각의 해시 충돌 결과 중 최소의 해시 충돌 결과에 기초하여 정해진 것임을 특징으로 하는 안티멀웨어 디바이스.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.
상기 해시 계수 및/또는 해시 함수는, 네트워크를 통해서 연결된 서버로부터 상기 멀웨어 패턴들과 함께 수신된 것임을 특징으로 하는 안티멀웨어 디바이스.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.
상기 해시값 생성부는,
상기 서버로부터 업데이트용 멀웨어 패턴들을 수신하는 경우, 상기 업데이트용 멀웨어 패턴들과 함께 전송된 해시 계수를 이용하여 상기 해시 값을 재생성하는 것을 특징으로 하는 안티멀웨어 디바이스.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.
상기 멀웨어 패턴들이 업데이트되는 경우, 업데이트용 멀웨어 패턴들에 대한 해시 함수를 통한 최소의 해시 충돌 결과에 기초하여 상기 해시 계수 및/또는 해시 함수도 변경되는 것을 특징으로 하는 안티멀웨어 디바이스.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.
상기 변경된 해시 계수 및/또는 해시 함수는 상기 업데이트용 멀웨어 패턴들에 포함되어 있으며,
상기 해시값 생성부는 상기 업데이트용 멀웨어 패턴들에 포함된 변경된 해시 계수 및/또는 해시 함수를 이용하여 해시 값을 재생성하는 것을 특징으로 하는 안티멀웨어 디바이스.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.
상기 업데이트용 멀웨어 패턴들로 이루어지는 업데이트용 멀웨어 패턴 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.
상기 해시 함수는, 상기 안티멀웨어 디바이스로 전송할 멀웨어 패턴들에 대한 해시 값들을 도출하였을 때, 상기 도출되는 해시 값들이 상호 충돌될 확률이 최소화되도록 정해지는 것을 특징으로 하는 안티멀웨어 디바이스.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.
상기 해시값 생성부에서 생성되는 상기 멀웨어 패턴들에 대한 해시 값들이 서로 충돌되는 횟수가 기준값을 초과할 때, 상기 해시 계수 및/또는 해시 함수에 대한 업데이트 요청을 하는 업데이트 요청부;를 더 포함하는 것을 특징으로 하는 안티멀웨어 디바이스.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.
상기 멀웨어 패턴들은 바이러스 스캐닝을 위한 바이러스 패턴들 및 방화벽 필터링을 위한 룰 패턴들 중 적어도 하나를 포함하며, 상기 해시 계수는 상기 바이러스 스캐닝을 위한 바이러스 해시 계수 및 상기 방화벽 필터링을 위한 룰 해시 계수 중 적어도 하나를 포함하는 것을 특징으로 하는 안티멀웨어 디바이스.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.
상기 안티멀웨어 디바이스는,
시스템 온 칩, 노트북, 데스크 탑 컴퓨터, 스마트 폰, 스마트 카드 및 반도체용 자산 칩(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.
상기 업데이트부가 전송하는 해시 계수는 상기 안티멀웨어 디바이스로 전송되는 멀웨어 패턴들의 해시 값들을 산정하는데 사용되는 것임을 특징으로 하는 서버.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.
상기 안티멀웨어 디바이스로 전송되는 멀웨어 패턴들에 대한 해시 함수를 통한 최소의 해시 충돌 결과에 기초하여, 상기 해시 계수를 선정하는 해시계수 선정부; 를 더 포함하며,
상기 업데이트부가 전송하는 해시 계수는 상기 해시 계수 선정부에 의해 선정된 해시 계수인 것을 특징으로 하는 서버.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.
상기 해시계수 선정부는,
상기 안티멀웨어 디바이스로 전송할 멀웨어 패턴들을 상기 해시 함수에 적용하였을 때, 도출되는 해시 값이 상호 충돌될 확률이 최소화되도록 하는 알고리즘을 사용하거나, 도출되는 해시 값들의 분산값이 최소화되도록 하는 해시 계수를 선정하는 것을 특징으로 하는 서버.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.
상기 해시계수 선정부는,
상기 멀웨어 패턴들을 업데이트할 데이터가 있는 경우, 업데이트용 멀웨어 패턴들과 상기 안티멀웨어 디바이스가 기 저장하고 있는 멀웨어 패턴들 모두를 해시 함수에 적용하였을 때, 도출되는 해시 값이 상호충돌될 확률이 최소화되도록 하는 알고리즘을 사용하거나 또는 도출되는 해시 값의 분산값이 최소화되도록 하는 해시 계수를 선정하는 것을 특징으로 하는 서버.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.
안티멀웨어 디바이스로 전송하는 멀웨어 패턴들에 대한 해시 함수를 통한 최소의 해시 충돌 결과에 기초하여, 상기 해시 함수를 선정하는 해시함수 선정부;를 더 포함할 수 있으며,
상기 업데이트부는, 상기 해시함수 선정부에 의해 선정된 해시 함수를, 상기 안티멀웨어 디바이스로 전송하는 멀웨어 패턴들과 함께 안티멀웨어 디바이스로 전송하는 것을 특징으로 하는 서버.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.
상기 멀웨어 패턴들은 바이러스 스캐닝을 위한 바이러스 패턴들 및 방화벽 필터링을 위한 룰 패턴들 중 적어도 하나를 포함하며, 상기 해시 계수는 상기 바이러스 스캐닝을 위한 바이러스 해시 계수 및 상기 방화벽 필터링을 위한 룰 해시 계수 중 적어도 하나를 포함하는 것을 특징으로 하는 서버.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.
상기 멀웨어 패턴들이 변경되면, 상기 변경된 멀웨어 패턴들에 대한 해시 값들이 서로 충돌되는 확률이 최소화되도록 하는 해시 계수를 재선정하는 단계;를 더 포함하는 것을 특징으로 하는 멀웨어 패턴 매칭 방법.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.
상기 재선정된 해시 계수를 사용하여 상기 변경된 멀웨어 패턴들에 대한 해시 값들을 재산출하는 단계;를 더 포함하고,
상기 재선정된 해수 계수는 상기 변경된 멀웨어 패턴들을 참조하여 선정된 것임을 특징으로 하는 멀웨어 패턴 매칭 방법.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.
상기 해시 계수를 선정하는 단계는,
준비된 후보 해시 계수들 각각을 사용하여, 상기 멀웨어 패턴들의 해시 값들을 구하는 단계; 및
상기 후보 해시 계수들 각각에 대하여 구해진 멀웨어 패턴들의 해시 값들의 분산값이 가장 낮은 후보 해시 계수를 상기 타겟데이터의 해시 값을 구하기 위한 해시 계수로서 선정하는 단계;를 포함하는 것을 특징으로 하는 멀웨어 패턴 매칭 방법.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.
판단결과 상기 멀웨어 패턴들의 해시 충돌 횟수가 기설정된 기준 횟수보다 많은 경우, 상기 해시 함수 또는 상기 해시 함수를 구성하는 해시 계수를 재선정하는 단계;를 포함하는 것을 특징으로 하는 멀웨어 패턴 매칭 방법.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.
상기 해시 계수를 재선정하는 단계는,
후보 해시 계수들을 선정하는 단계;
상기 후보 해시 계수들을 이용하여, 상기 매칭시키는 단계에서 사용될 멀웨어 패턴들에 대한 해시 값들을 구하는 제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.
상기 해시 계수를 재선정하는 단계는,
후보 해시 계수들을 선정하는 단계;
상기 후보 해시 계수들을 이용하여, 상기 매칭시키는 단계에서 사용될 멀웨어 패턴들의 해시 값들을 구하는 제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 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.
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)
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)
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)
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 |
-
2011
- 2011-06-17 KR KR1020110059075A patent/KR101274348B1/en not_active IP Right Cessation
- 2011-06-21 JP JP2011136948A patent/JP5378458B2/en active Active
Patent Citations (1)
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 |