KR101473658B1 - Apparatus and system for detecting malicious code using filter and method thereof - Google Patents
Apparatus and system for detecting malicious code using filter and method thereof Download PDFInfo
- Publication number
- KR101473658B1 KR101473658B1 KR1020130062184A KR20130062184A KR101473658B1 KR 101473658 B1 KR101473658 B1 KR 101473658B1 KR 1020130062184 A KR1020130062184 A KR 1020130062184A KR 20130062184 A KR20130062184 A KR 20130062184A KR 101473658 B1 KR101473658 B1 KR 101473658B1
- Authority
- KR
- South Korea
- Prior art keywords
- diagnosis
- application
- filter
- malicious code
- diagnostic
- 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)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명에서는 클라우드 기반 악성코드 진단에 있어서, 휴대용 단말기 내의 모든 진단 대상 애플리케이션의 시그니처를 클라우드 서버로 전송하여 악성코드 여부에 대한 진단을 의뢰하신 대신, 사전 진단 필터를 통해 1차적으로 진단 대상 애플리케이션 중 정상 파일에 대해서 빠르게 진단을 수행하고, 사전 진단 필터를 통해 악성코드로 의심되는 것으로 구분된 애플리케이션에 대해서만 클라우드 서버로 진단을 요청함으로써 진단속도를 향상시키고, 네트워크 자원 소모를 줄일 수 있다.In the present invention, in the diagnosis of the cloud-based malicious code, instead of sending the signatures of all the diagnostic applications in the portable terminal to the cloud server to request diagnosis of malicious code, You can speed up diagnostics and reduce network resource consumption by quickly diagnosing files and requesting diagnostics from the cloud server only for applications that are identified as malicious code through proactive diagnostic filters.
Description
본 발명은 모바일 환경의 클라우드 기반 악성코드 진단에 관한 것으로, 특히 클라우드 기반 악성코드 진단에 있어서, 휴대용 단말기 내의 모든 진단 대상 애플리케이션(application)의 시그니처(signature)를 클라우드 서버(cloud server)로 전송하여 악성코드(malicious code) 여부에 대한 진단을 의뢰하신 대신, 사전 진단 필터를 통해 1차적으로 진단 대상 애플리케이션 중 정상 파일에 대해서 빠르게 진단을 수행하고, 사전 진단 필터를 통해 악성코드로 의심되는 것으로 구분된 애플리케이션에 대해서만 클라우드 서버로 진단을 요청함으로써 진단속도를 향상시키고, 네트워크 자원 소모를 줄일 수 있도록 하는 필터를 이용한 클라우드 기반 악성코드 진단장치, 시스템 및 방법에 관한 것이다.
The present invention relates to a cloud-based malicious code diagnosis of a mobile environment, and more particularly, to a cloud-based malicious code diagnosis, in which the signatures of all diagnostic applications in a portable terminal are transmitted to a cloud server, Instead of asking for a diagnosis of malicious code, a pre-diagnosis filter is used to quickly diagnose normal files among the diagnostic applications, and a pre-diagnosis filter is used to detect malicious code And more particularly, to a cloud-based malicious code diagnosis apparatus, system, and method using a filter that improves the diagnostic speed and reduces network resource consumption by requesting diagnosis only to the cloud server.
근래에 들어, 유무선 인터넷뿐만 아니라 이동통신 기술의 발달로, 단순히 전화통화 기능 뿐만이 아닌 무선 인터넷 기능 등 다양한 기능을 갖춘 휴대폰, 스마트폰 등의 휴대용 단말기가 보급되고 있다. 특히 최근에 보급이 확산되고 있는 스마트폰(smartphone) 등의 휴대용 단말기는 멀티미디어 재생기능 등의 다양한 기능의 응용프로그램의 설치가 가능하여, 사용자들이 여러 용도로 스마트폰을 이용하고 있다. Recently, with the development of mobile communication technology as well as wired and wireless Internet, mobile terminals such as mobile phones and smart phones having various functions such as not only a phone call function but also a wireless Internet function are spreading. Particularly, portable terminals such as a smartphone, which is spreading in recent years, can install application programs of various functions such as a multimedia playback function and users are using smart phones for various purposes.
이러한 스마트폰 등의 휴대용 단말기는 예를들어 iOS, 안드로이드 등 저마다의 운영체제가 존재하며, 해당 운영체제에 의해 실행 가능한 애플리케이션의 개발이 활발히 이루어지고 있다.In such a portable terminal such as a smart phone, there are operating systems such as iOS and Android, and applications that can be executed by the operating system are actively developed.
한편, 위와 같이 스마트폰 등의 휴대용 단말기 사용자가 늘어남에 따라 휴대용 단말기를 타겟으로 하는 악성코드 또한 급격히 증가하고 있으며, 악성코드의 공격 수법도 다양해지고 있다. Meanwhile, as users of mobile terminals such as smart phones are increasing in number as described above, malicious codes targeting portable terminals are also rapidly increasing, and attack methods of malicious codes are also diversifying.
이에 따라, 위와 같은 휴대용 단말기를 타겟으로 하는 악성코드를 포함한 애플리케이션을 탐지하기 위해 여러 가지 악성코드 진단 방법들이 제안되고 있다.Accordingly, various malicious code diagnosis methods have been proposed in order to detect an application including a malicious code targeting the portable terminal.
위와 같은 휴대용 단말기에서의 악성코드 진단은 대부분은 휴대용 단말기에 모바일 애플리케이션 형태로 탑재되는 악성 코드 판별을 위한 시그니처 데이터를 가지는 진단 엔진을 통해 이루어지고 있으며, 시그니처 데이터를 업데이트 서버를 통해서 최신 버전으로 업데이트하는 구조를 가지고 있다.Most of the malicious code diagnosis in the portable terminal is performed through a diagnostic engine having signature data for identifying a malicious code mounted on a mobile terminal in the form of a mobile application, and the signature data is updated to the latest version through an update server Structure.
그러나, 최근 들어서는 모바일 악성코드의 기하급수적인 증가로 악성코드를 진단하기 위한 시그니처의 크기가 현저히 커짐에 따라, 휴대용 단말기의 제한적인 자원에 대처하고, 진단에 따른 성능 저하를 방지하기 위해 클라우드 기반의 악성코드 진단 방법이 제안되고 있다.However, since the signatures for diagnosing malicious codes have become significantly larger due to the exponential increase in mobile malicious codes in recent years, in order to cope with limited resources of portable terminals and to prevent performance degradation due to diagnosis, A malicious code diagnosis method has been proposed.
이와 같은 클라우드 기반의 악성코드 진단 시스템에서는 시그니처 데이터를 휴대용 단말기로 다운받지 않으며, 휴대용 단말기에서 악성코드 진단 대상의 시그니처를 추출하여 클라우드 서버로 전달하고, 대용량의 시그니처 정보를 저장하고 있는 클라우드 서버에서 휴대용 단말기로부터 요청된 각 시그니처에 대한 악성코드 여부를 진단하고 그 결과를 휴대용 단말기로 전송하는 구조를 가지고 있다.In such a cloud-based malicious code diagnosis system, the signature data is not downloaded to the portable terminal, the signature of the malicious code diagnosis target is extracted from the portable terminal, and the signature is transmitted to the cloud server. In the cloud server storing the large- And diagnoses the malicious code for each signature requested from the terminal and transmits the result to the portable terminal.
그러나, 위와 같은 종래 클라우드 기반의 악성코드 진단 시스템에서는 휴대용 단말기에서 모든 진단 대상 파일에 대해 시그니처를 추출하여 클라우드 서버로 전송하여 진단을 의뢰하게 됨으로써, 진단 시간이 지연되며, 네트워크 부하 등이 유발되는 문제점이 있었다.However, in the conventional cloud-based malicious code diagnosis system as described above, the signature is extracted from all the files to be diagnosed in the portable terminal and transmitted to the cloud server to request the diagnosis, thereby delaying the diagnosis time, .
또한, 이와 같은 네트워크 부하의 증가는 휴대용 단말기에서는 데이터 사용량 증가에 따른 과금 증가로 이어지는 문제점이 있으며, 최근 휴대용 단말기의 성능 및 저장용량의 증가로 인해 단일 단말기에 설치되는 진단 대상 또한 계속해서 증가하고 있어 데이터 사용량, 배터리 소모, 성능 저하, 검사 속도 저하 등 여러 가지 문제점이 유발되었다.
In addition, the increase in the network load causes a problem of an increase in billing due to an increase in data usage in a portable terminal, and the number of diagnostic objects installed in a single terminal is continuously increasing due to an increase in performance and storage capacity of a portable terminal Data usage, battery consumption, performance degradation, and inspection speed degradation.
(특허문헌)(Patent Literature)
대한민국 공개특허번호 10-2011-0045842호(공개일자 2011년 05월 04일)에는 클라우드 기반의 모바일 안티 멀웨어 서비스 방법에 관한 기술이 개시되어 있다.
Korean Patent Laid-Open No. 10-2011-0045842 (published on May 04, 2011) discloses a technique for a cloud-based mobile anti-malware service method.
따라서, 본 발명은 클라우드 기반 악성코드 진단에 있어서, 휴대용 단말기 내의 모든 진단 대상 애플리케이션의 시그니처를 클라우드 서버로 전송하여 악성코드 여부에 대한 진단을 의뢰하신 대신, 사전 진단 필터를 통해 1차적으로 진단 대상 애플리케이션 중 정상 파일에 대해서 빠르게 진단을 수행하고, 사전 진단 필터를 통해 악성코드로 의심되는 것으로 구분된 애플리케이션에 대해서만 클라우드 서버로 진단을 요청함으로써 진단속도를 향상시키고, 네트워크 자원 소모를 줄일 수 있도록 하는 필터를 이용한 클라우드 기반 악성코드 진단장치, 시스템 및 방법을 제공하고자 한다.
Therefore, in the cloud-based malicious code diagnosis, instead of sending the signatures of all the diagnostic applications in the portable terminal to the cloud server and requesting diagnosis for malicious code, the diagnosis target application Quickly perform diagnostics on normal files and request diagnostics to the cloud server only for applications classified as malicious code through proactive diagnostic filters to improve diagnostics speed and reduce network resource consumption. The present invention provides a cloud-based malicious code diagnosis apparatus, system, and method using the same.
상술한 본 발명은 필터를 이용한 클라우드 기반 악성코드 진단 방법으로서, 사전 진단 필터를 이용하여 휴대용 단말기 내의 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하는 사전 진단을 수행하는 단계와, 상기 사전 진단 결과, 상기 악성 코드로 의심되는 애플리케이션에 대해서는 클라우드 서버로 진단을 요청하는 단계와, 상기 클라우드 서버로부터 진단 결과를 수신하여 상기 악성코드로 의심되는 애플리케이션에 대한 진단 결과를 출력시키는 단계를 포함한다.The present invention described above is a cloud-based malicious code diagnosis method using a filter, in which a diagnosis target application in a portable terminal is subjected to proactive diagnosis to distinguish it from an application that is not a malicious code or an application suspected to be a malicious code Requesting the cloud server for a diagnosis of the application suspected of being malicious code as a result of the pre-diagnosis, receiving a diagnosis result from the cloud server, and outputting a diagnosis result of the malicious code suspicious application .
또한, 상기 사전 진단을 수행하는 단계는, 상기 진단 대상 애플리케이션으로부터 시그니처 정보를 추출하는 단계와, 상기 시그니처 정보를 상기 사전 진단 필터를 통해 검사하여 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하는 단계를 포함하는 것을 특징으로 한다.The step of performing the prognosis may further comprise the steps of extracting signature information from the diagnosis target application and examining the signature information through the prognosis filter to classify the application as a malicious code or an application suspected as a malicious code The method comprising the steps of:
또한, 상기 사전 진단 필터는, 상기 진단 대상 애플리케이션에 대한 사전진단 수행 시 정상 파일의 애플리케이션을 악성코드로 오진하는 false negative가 발생하지 않도록 설계된 필터인 것을 특징으로 한다.The pre-diagnosis filter is a filter designed to prevent a false negative that misappropriates an application of a normal file as a malicious code when performing a pre-diagnosis for the diagnosis target application.
또한, 상기 사전 진단 필터는, 블룸(bloom) 필터인 것을 특징으로 한다.The prognostic filter may be a bloom filter.
또한, 본 발명은 필터를 이용한 클라우드 기반 악성코드 진단장치로서, 사전 진단 필터를 이용하여 휴대용 단말기 내의 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하는 사전 진단을 수행하고, 상기 악성 코드로 의심되는 애플리케이션에 대해서는 클라우드 서버로 진단을 요청하는 진단부와, 상기 진단부로부터 악성 코드 의심으로 구분된 애플리케이션의 시그니처 정보를 상기 클라우드 서버로 전송하여 진단을 요청하고, 진단 결과를 수신하여 상기 진단부로 제공하는 클라우드 클라이언트부를 포함한다.According to another aspect of the present invention, there is provided a cloud-based malicious code diagnosis apparatus using a filter, wherein a diagnosis dictionary for distinguishing an application to be diagnosed in a portable terminal as an application other than a malicious code or an application suspected to be a malicious code A diagnostic unit for requesting a diagnosis of the application suspected of malicious code to the cloud server; and a signature requesting unit for sending diagnostic information to the cloud server by transmitting signature information of an application distinguished from the suspicious malicious code to the cloud server, And a cloud client unit for receiving and providing to the diagnosis unit.
또한, 상기 진단부는, 상기 진단 대상 애플리케이션으로부터 시그니처 정보를 추출하는 진단정보 추출부와, 상기 시그니처 정보를 상기 사전 진단 필터를 통해 검사하여 상기 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하는 사전 진단을 수행하는 사전 진단부와, 상기 사전 진단부를 통해 악성코드가 아닌 애플리케이션으로 구분된 애플리케이션에 대해서는 정상파일로 진단 결과를 출력하고, 상기 악성코드로 의심되는 애플리케이션에 대해서는 상기 클라우드 서버로 진단을 요청하여 진단 결과를 출력하는 검사부를 포함하는 것을 특징으로 한다.The diagnostic unit may further include: a diagnostic information extracting unit that extracts signature information from the application to be diagnosed; and a diagnostic information extracting unit that examines the signature information through the pre-diagnosis filter to determine whether the diagnostic application is an application that is not a malicious code or a malicious code And a diagnosis unit for outputting a diagnostic result to a normal file for an application classified as an application other than malicious code through the dictionary diagnosis unit, and for the application suspected to be malicious code, And an inspection unit for requesting diagnosis from the cloud server and outputting a diagnosis result.
또한, 상기 사전 진단부는, 상기 시그니처 정보에서 상기 사전 진단 필터의 생성시 사용된 해쉬함수의 개수에 대응되는 n개의 해쉬값을 추출하고, 추출된 해쉬값을 상기 사전 진단 필터를 통해 검사하여 상기 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션인지 또는 악성코드로 의심되는 애플리케이션인지를 구분하는 것을 특징으로 한다.The pre-diagnosis unit may extract n hash values corresponding to the number of hash functions used at the time of generation of the pre-diagnosis filter from the signature information, inspect the extracted hash value through the pre-diagnosis filter, And distinguishes whether the application is a non-malicious application or an application suspected to be malicious code for the target application.
또한, 상기 진단 장치는, 상기 사전 진단 필터에 대한 업데이트 사항이 발생하는 경우 상기 사전 진단 필터를 업데이트하는 필터 업데이트부를 더 포함하는 것을 특징으로 한다.The diagnostic apparatus may further include a filter update unit that updates the pre-diagnosis filter when an update to the pre-diagnosis filter occurs.
또한, 상기 사전 진단 필터는, 상기 진단 대상 애플리케이션에 대한 진단 수행 시 악성코드가 아닌 애플리케이션을 악성코드로 오진하는 false negative가 발생하지 않도록 설계된 필터인 것을 특징으로 한다.The pre-diagnosis filter is a filter designed to prevent a false negative that misuses the application, which is not a malicious code, as a malicious code when performing a diagnosis on the diagnosis target application.
또한, 본 발명은 필터를 이용한 클라우드 기반 악성코드 진단 시스템으로서, 사전 진단 필터를 이용하여 휴대용 단말기 내의 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션인지 또는 악성코드로 의심되는 애플리케이션인지를 사전 진단하고, 상기 악성 코드로 의심되는 애플리케이션에 대해서는 클라우드 서버로 진단을 요청하여 진단 결과를 출력하는 진단장치와, 상기 진단 장치로부터 진단 요청되는 상기 악성코드로 의심되는 애플리케이션의 시그니처 정보를 수신하여 해당 애플리케이션에 대한 진단을 수행하고, 진단 결과를 상기 진단 장치로 제공하는 상기 클라우드 서버를 포함한다.According to another aspect of the present invention, there is provided a system for diagnosing a cloud-based malicious code using a filter, the method comprising the steps of: pre-diagnosing whether or not the application to be diagnosed in the portable terminal is an application other than a malicious code or an application suspected to be a malicious code, A diagnostic device for requesting diagnosis from a cloud server for an application suspected to be malicious code and outputting a diagnosis result; and a diagnostic module for receiving the signature information of the application suspected of being malicious code requested for diagnosis from the diagnostic device, And provides the diagnosis result to the diagnostic apparatus.
또한, 상기 진단 시스템은, 상기 사전 진단 필터를 생성하여 상기 진단 장치에 제공하며, 상기 클라우드 서버로부터 새로이 진단된 악성코드에 대한 정보를 수신하여 상기 사전 진단 필터를 업데이트시키는 필터 생성장치를 더 포함하는 것을 특징으로 한다.The diagnostic system may further comprise a filter generation device for generating and providing the pre-diagnosis filter to the diagnostic device, and receiving the information on the newly diagnosed malicious code from the cloud server to update the pre-diagnosis filter .
또한, 상기 진단 장치는, 상기 진단 대상 애플리케이션으로부터 시그니처 정보를 추출하며, 상기 추출된 시그니처 정보에서 상기 사전 진단 필터의 생성시 사용된 해쉬함수의 개수에 대응되는 n개의 해쉬값을 추출하고, 추출된 해쉬값을 상기 사전 진단 필터를 통해 검사하여 상기 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하는 것을 특징으로 한다.The diagnostic apparatus may further include: extracting signature information from the diagnosis target application, extracting n hash values corresponding to the number of hash functions used in generating the pre-diagnosis filter from the extracted signature information, The hash value is checked through the prognosis filter to distinguish the application to be diagnosed as an application that is not a malicious code or an application that is suspected to be a malicious code.
또한, 본 발명은 휴대용 단말기에 탑재되는 진단장치와 클라우드 서버를 포함하는 클라우드 기반 악성코드 진단 시스템에서, 클라우드 기반 악성코드 진단 방법으로서, 상기 진단장치에서 사전 진단 필터를 이용하여 휴대용 단말기 내의 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션인지 또는 악성코드로 의심되는 애플리케이션인지를 사전 진단하는 단계와, 상기 진단장치에서 상기 사전 진단 결과, 상기 악성 코드로 의심되는 애플리케이션에 대해서는 클라우드 서버로 진단을 요청하는 단계와, 상기 진단 요청한 상기 애플리케이션의 시그니처 정보를 상기 클라우드 서버에서 수신하여 상기 애플리케이션에 대한 악성코드 여부 진단을 수행하는 단계와, 상기 클라우드 서버에서 상기 애플리케이션에 대한 진단 결과를 상기 진단 장치로 제공하는 단계를 포함한다.
The present invention also provides a cloud-based malicious code diagnosis method in a cloud-based malicious code diagnosis system including a diagnostic device and a cloud server installed in a portable terminal, the method comprising the steps of: A step of pre-diagnosing whether the application is a malicious code or an application suspected to be a malicious code for the malicious code, and a step of requesting diagnosis to the cloud server for the application suspected to be malicious code as a result of the pre- Receiving a signature of the application requested for diagnosis from the cloud server and diagnosing whether or not the application is malicious code; and transmitting the diagnosis result to the diagnostic server It includes the step of providing a.
본 발명은 클라우드 기반 악성코드 진단에 있어서, 휴대용 단말기 내의 모든 진단 대상 애플리케이션의 시그니처를 클라우드 서버로 전송하여 악성코드 여부에 대한 진단을 의뢰하신 대신, 사전 진단 필터를 통해 1차적으로 진단 대상 애플리케이션 중 정상 파일에 대해서 빠르게 진단을 수행하고, 사전 진단 필터를 통해 악성코드로 의심되는 것으로 구분된 애플리케이션에 대해서만 클라우드 서버로 진단을 요청함으로써 진단속도를 향상시키고, 네트워크 자원 소모를 줄일 수 있는 이점이 있다.
In the cloud-based malicious code diagnosis, instead of sending the signatures of all diagnostic applications in the portable terminal to the cloud server and requesting diagnosis of malicious code, Quickly perform diagnostics on files, and use diagnostics filters to request diagnostics from cloud servers only for applications that are identified as suspicious of malicious code. This has the benefit of speeding up diagnostics and reducing network resource consumption.
도 1은 본 발명의 실시예에 따른 필터를 이용한 클라우드 기반 악성코드 진단 시스템의 네트워크 구성도,
도 2는 본 발명의 실시예에 따른 필터를 구비한 휴대용 단말기의 진단장치의 상세 블록 구성도,
도 3은 본 발명의 실시예에 따른 클라우드 기반 악성코드 진단 시스템에서 필터를 이용한 악성코드 진단 동작 제어 흐름도.1 is a network configuration diagram of a cloud-based malicious code diagnosis system using a filter according to an embodiment of the present invention;
FIG. 2 is a detailed block diagram of a diagnostic apparatus of a portable terminal having a filter according to an embodiment of the present invention;
3 is a flowchart of malicious code diagnosis operation control using a filter in a cloud-based malicious code diagnosis system according to an embodiment of the present invention.
이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, the operation principle of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions of the present invention, and these may be changed according to the intention of the user, the operator, or the like. Therefore, the definition should be based on the contents throughout this specification.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Each block of the accompanying block diagrams and combinations of steps of the flowchart may be performed by computer program instructions. These computer program instructions may be loaded into a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus so that the instructions, which may be executed by a processor of a computer or other programmable data processing apparatus, And means for performing the functions described in each step are created. These computer program instructions may also be stored in a computer usable or computer readable memory capable of directing a computer or other programmable data processing apparatus to implement the functionality in a particular manner so that the computer usable or computer readable memory It is also possible for the instructions stored in the block diagram to produce a manufacturing item containing instruction means for performing the functions described in each block or flowchart of the block diagram. Computer program instructions may also be stored on a computer or other programmable data processing equipment so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer- It is also possible that the instructions that perform the processing equipment provide the steps for executing the functions described in each block of the block diagram and at each step of the flowchart.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Also, each block or each step may represent a module, segment, or portion of code that includes one or more executable instructions for executing the specified logical function (s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order according to the corresponding function.
도 1은 본 발명의 실시예에 따른 필터를 이용한 클라우드 기반 악성코드 진단 시스템의 네트워크 구성을 도시한 것이다.1 illustrates a network configuration of a cloud-based malicious code diagnosis system using a filter according to an embodiment of the present invention.
이하, 도 1을 참조하여, 필터를 이용한 클라우드 기반 악성코드 진단 시스템의 각 구성요소에서의 동작을 상세히 설명하기로 한다.Hereinafter, operation of each component of the cloud-based malicious code diagnosis system using a filter will be described in detail with reference to FIG.
먼저, 휴대용 단말기(100)는 다양한 애플리케이션(application)이 설치되어 있거나 다운로드(download)를 통해 새로운 애플리케이션의 설치가 가능한 사용자 단말장치를 말하는 것으로, 예를 들어, 스마트폰(smartphone), 테블릿(tablet) PC 등이 될 수 있다.First, the
이러한 휴대용 단말기(100)에는 위와 같이 휴대용 단말기(100)에 설치되어 있거나, 새로이 설치되는 애플리케이션에 대해 해당 애플리케이션이 악성코드(malicious code)인지 여부를 진단하기 위한 진단장치(104)가 탑재될 수 있다. The
이때, 휴대용 단말기(100)에 탑재되는 진단장치(104)는 진단 대상 애플리케이션(102)에 대한 악성코드 여부 진단을 위한 사전 진단 필터(filter)(106)를 탑재. 하며, 사전 진단 필터(106)를 이용하여 휴대용 단말기(100) 내의 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하는 사전 진단을 수행하여 정상 파일에 대해서는 빠른 진단을 수행한다. 또한, 사전 진단 수행 결과 악성 코드로 의심되는 것으로 구분된 애플리케이션에 대해서는 클라우드 서버(110)를 이용하여 클라우드 기반으로 진단을 수행한다.At this time, the
즉, 진단장치(104)는 사전 진단 수행 결과 악성 코드로 의심되는 것으로 구분된 애플리케이션에 대해서는 클라우드 서버(110)로 진단을 요청하고, 클라우드 서버(110)로부터 진단 결과를 수신하여 해당 애플리케이션에 대한 진단결과로 출력한다. That is, the
위와 같은 사전 진단 필터(106)는 악성코드의 해쉬(hash)값 정보를 압축시킨 형태로 생성된 것으로, 정상파일에 대해 악성코드로 오진하는 false negative가 발생하지 않도록 설계된 필터를 말한다. 또한, 이러한 사전 진단 필터(106)는 악성코드의 리스트인 블랙리스트(blacklist)를 기반으로 작성된 확률 기반 자료 구로로서, 화이트리스트와는 달리 진단 대상 파일에 대해 확률 기반으로 악성코드일 가능성이 있는 파일을 필터링하도록 설계된 필터를 말한다.The above-described
이때, 이러한 사전 진단 필터(106)는 배포 서버(130) 등으로부터 다운로드(download)되어 휴대용 단말기(100)내 진단장치(104)에 탑재될 수 있으며, false positive가 적게 발생하면서 트래픽(traffic) 발생은 최소화되도록 하는 포맷(format)으로 구성될 수 있다. 이때, 위 false positive라 함은 악성코드가 포함된 애플리케이션에 대해 사전 진단 필터(106)가 악성파일로 진단하지 못하는 경우를 나타낸다. 또한, 사전 진단 필터(106)에서 사용되는 해쉬함수(hash function)는 필터 생성장치(120)와 진단장치(104)가 임의의 해쉬 함수를 미리 공유하는 방식으로 구현될 수 있으며, 사전 진단 필터(106)의 배포시 해쉬 함수를 함께 배포하는 방법으로 구현도 가능하다.At this time, the
즉, 본 발명의 실시예로 구현되는 진단장치(104)에서는 모든 진단 대상 애플리케이션(102)의 시그니처(signature)를 클라우드 서버(cloud server)(110)로 전송하여 악성코드 여부에 대한 진단을 의뢰하신 대신, 위와 같은 사전 진단 필터(106)를 통해 1차적으로 진단 대상 애플리케이션(102) 중 정상 파일에 대해서 빠르게 진단을 수행하고, 사전 진단 필터(106)를 통해 악성코드로 의심되는 것으로 구분된 애플리케이션에 대해서만 클라우드 서버(110)로 진단을 요청함으로써 진단속도를 향상시키고, 네트워크 부담을 경감시키게 된다.That is, in the
클라우드 서버(110)는 악성코드에 대한 대용량의 시그니처 정보를 저장하고 있는 시그니처 DB(112) 등을 구비하여 진단 요청되는 애플리케이션에 대한 악성코드 여부를 진단하는 서버로서, 인터넷 등의 통신망을 통해 클라우드 클라이언트(cloud client)로 동작하는 휴대용 단말기(100)와 연결될 수 있으며, 휴대용 단말기(100)로부터 악성코드 진단이 요청되는 애플리케이션에 대해 휴대용 단말기(100)를 대신하여 진단을 수행하고 진단 결과를 통신망을 통해 해당 휴대용 단말기(100)로 제공한다.The
또한, 클라우드 서버(110)는 휴대용 단말기(100)로부터 진단 요청된 애플리케이션 중 악성코드로 진단되거나, 시그니처 DB(112)에 새로이 추가되는 악성코드가 발생하는 경우 이에 대한 정보를 사전 진단 필터(106)를 생성하는 필터 생성장치(120)로 제공할 수 있다. 이러한 클라우드 서버(110)는 악성코드에 대한 진단 엔진을 제공하는 다수의 안티 바이러스(anti-virus) 엔진 제작 회사 등에 의해 운용되는 서버일 수 있다. When the malicious code is diagnosed as malicious code among applications requested to be diagnosed from the
필터 생성장치(120)는 휴대용 단말기(100)에 탑재되는 사전 진단 필터(106)를 생성하는 장치로, 생성한 사전 진단 필터(106)를 직접 또는 배포서버(130) 등을 통해 해당 휴대용 단말기(100)로 다운로드하여 줄 수 있다. 또한, 필터 생성장치(120)는 클라우드 서버(110)와 통신망을 통해 연결되어 상호 연동되며, 클라우드 서버(110)로부터 새로이 진단되거나 추가된 악성코드에 대한 정보를 수신하는 경우 사전 진단 필터(106)를 업데이트(update)시키고, 이와 같이 업데이트된 필터에 대해서는 해당 휴대용 단말기(100)로 제공하여 휴대용 단말기(100)에 설치된 사전 진단 필터(106)가 업데이트될 수 있도록 한다.The
또한, 필터 생성장치(120)는 위와 같은 사전 진단 필터(106)가 false positive와 트래픽 발생이 최소화되도록 하는 포맷으로 구성되도록 해쉬 개수와 비트맵 사이즈(bitmap size) 등을 계산하여 설계할 수 있다. 이와 같은 사전 진단 필터(106)의 생성방법에 따라서 false positive rate이 결정되며, false positive rate에 따라서 본 발명에서 달성하고자 하는 사전 진단 필터(106)의 성능 개선 정도가 결정될 수 있다. In addition, the
이때, 위와 같은 사전 진단 필터(106)는 예를 들어 블룸(bloom) 필터가 될 수 있으며, 이하에서는 블룸필터의 예를 들어 false positive rate이 정해지는 경우 비트맵 사이즈와 해쉬 함수의 개수를 계산하는 과정에 대해 간단히 설명하기로 한다.In this case, the
먼저, 예를 들어 비트맵 사이즈가 m, 엔트리(entry)의 개수는 n, 해쉬 함수의 개수는 k라고 가정하는 경우 해쉬 함수를 통해서 비트맵내의 어떤 비트값이 "1"로 셋팅될 확률은 과 같으며, 어떤 비트값이 "1"로 셋팅되지 않았을 확률은 과 같다.First, for example, assuming that the bitmap size is m, the number of entries is n, and the number of hash functions is k, the probability that any bit value in the bitmap is set to "1" through the hash function is , And the probability that a certain bit value is not set to "1 " Respectively.
이때, k개의 해쉬 함수를 사용했을 때의 확률은 와 같으며, n개의 엔트리에 대해서의 확률은 과 같고, 이와 같은 경우 어떤 비트값이 "1"로 셋팅되었을 확률은 과 같다.In this case, the probability of using k hash functions is , And the probability for n entries is , And in such a case the probability that a certain bit value is set to "1 " Respectively.
즉, 임의의 멤버가 아닌 엔트리에 대하여 k개의 해쉬 함수를 테스트하여 모두 "1"로 셋팅되었을 false positive rate은 아래의 [수학식 1]과 계산될 수 있다.That is, if k hash functions are tested for an entry that is not an arbitrary member, a false positive rate that is set to "1 " can be calculated by Equation (1) below.
따라서, 위와 같은 [수학식1]을 이용해서 역으로 원하는 false positive rate에 따른 m 값과 k 값을 유추할 수 있다. 이때 k값이 높으면 휴대용 단말기(100)의 cpu(central processing unit) 타임을 소모하는 대신에 m 값 즉, 필터(106)의 사이즈를 줄일 수 있고, m값을 높이면 k값 즉 cpu 타임 소모를 줄일 수 있는 trade-off 관계임을 주의하여야 한다. 이와 같이, 결정된 false positive rate에 따라서 필터(106)를 통과하여 네트워크 자원을 소모하는 부하의 양을 조절할 수 있다. Therefore, the m value and the k value according to the desired false positive rate can be inferred using Equation (1) above. In this case, if the k value is high, the m value, that is, the size of the
도 2는 본 발명의 실시예에 따른 휴대용 단말기(100)의 진단장치(104)의 상세 블록 구성을 도시한 것으로, 필터 업데이트부(210), 진단부(220), 클라우드 클라이언트부(230) 등을 포함할 수 있다.2 is a detailed block diagram of the
이하, 도 2를 참조하여 본 발명의 진단장치(104) 각부에서의 동작을 상세히 살펴보기로 한다.Hereinafter, the operation of each part of the
먼저, 필터 업데이트부(210)는 진단 대상 애플리케이션(102)에 대한 악성코드 여부 사전 진단을 위해 진단 장치(104)에 탑재되는 사전 진단 필터(filter)(106)를 업데이트한다. 이때, 사전 진단 필터(106)를 업데이트함에 있어서, 필터 업데이트부(210)는 필터 생성장치(120)로부터 사전 진단 필터(106)에 대한 업데이트 정보를 수신하는 경우 필터 생성장치(120)로부터 업데이트된 필터를 다운로드 받아 사전 진단부(220)내 이전 설치된 사전 진단 필터(106)를 업데이트시킬 수 있다. 또는, 사전 진단 필터(106)에 대한 업데이트 사항이 발생하는 경우, 클라우드 서버(110)를 통해 업데이트된 새로운 사전 진단 필터를 수신하거나, 또는 업데이트된 일부 필터 데이터를 수신하여 사전 진단 필터(106)를 업데이트시킬 수도 있다.First, the
진단부(220)는 사전 진단 필터(106)를 이용하여 휴대용 단말기(100)내의 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하는 사전 진단을 수행하고, 악성 코드로 의심되는 애플리케이션에 대해서는 클라우드 서버(110)로 진단을 요청한다.The
이때, 진단부(220)는 사전 진단 필터(106)를 통해 악성코드가 아닌 애플리케이션으로 구분된 애플리케이션에 대해서는 정상 파일로 진단 결과를 출력한다. 또한, 사전 진단 필터(106)를 통해 악성코드로 의심되는 것으로 구분된 애플리케이션에 대해서는 해당 애플리케이션의 시그니처 정보를 클라우드 클라이언트부(cloud client)(230)를 통해 클라우드 서버(110)로 전송하여 악성코드 여부에 대한 진단을 요청한 후, 클라우드 서버(110)로부터 진단 결과를 수신하여 악성코드로 의심되는 애플리케이션에 대한 진단 결과를 출력시키게 된다.At this time, the
즉, 진단부(220)에서는 모든 진단 대상 애플리케이션의 시그니처를 클라우드 서버(110)로 전송하여 악성코드 여부에 대한 진단을 의뢰하신 대신, 위와 같은 사전 진단 필터(106)를 통해 1차적으로 진단 대상 애플리케이션 중 정상 파일의 애플리케이션에 대해서 빠르게 진단을 수행하고, 사전 진단 필터(106)를 통해 악성코드로 의심되는 것으로 구분된 애플리케이션에 대해서만 클라우드 서버(110)로 진단을 요청함으로써 진단속도를 향상시키고, 네트워크 부담을 경감시키게 된다. 이때, 위와 같은 사전 진단 필터(106)는 악성코드의 해쉬값 정보를 압축시킨 형태로 생성된 것으로, 정상파일에 대해 악성코드로 오진하는 false negative가 발생하지 않도록 설계된 필터이며, 예를 들어 블룸 필터 등이 될 수 있다. That is, the
한편, 위와 같은 진단부(220)는 진단정보 추출부(222)와 사전 진단부(223)와 검사부(224) 등으로 이루어질 수 있다.The
진단정보 추출부(222)는 진단 대상 애플리케이션(102)으로부터 시그니처 정보를 추출한다. 이때, 애플리케이션(102)으로부터 추출되는 위와 같은 시그니처 정보는 예를 들어 휴대용 단말기(100)의 OS(operating system)가 안드로이드(android) 인 경우에는 애플리케이션의 설치파일인 APK 파일내 애플리케이션의 동작 권한 등의 내용을 포함하고 있는 androidmanifest.xml 파일, 또는 코드를 포함하고 있는 classes.dex 파일, 또는 resource.arsc 파일 등이 될 수 있으며, 휴대용 단말기(100)의 OS가 iOS 인 경우에는 iOS의 앱파일인 IPA 파일내 Code Binery File 등이 될 수 있다. The diagnostic
사전 진단부(223)는 진단정보 추출부(222)로부터 추출된 진단 대상 애플리케이션(102)의 시그니처 정보에 대해 사전 진단 필터(106)를 통해 사전 진단을 수행하여 각각의 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하고, 사전 진단 결과를 검사부(224)로 제공한다. 이때, 사전 진단부(223)는 사전 진단 필터(106)를 이용하여 위와 같은 애플리케이션(102)에 대해 사전 진단을 수행함에 있어서, 예를 들어 시그니처 정보에서 사전 진단 필터(106)의 생성시 사용된 해쉬함수의 개수에 대응되는 n개의 해쉬값을 추출하고, 추출된 해쉬값을 사전 진단 필터(106)를 통해 검사하여 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하게 된다.The
검사부(224)는 사전 진단부(223)를 통해 악성코드가 아닌 애플리케이션으로 구분된 애플리케이션에 대해서는 정상파일로 진단 결과를 출력하고, 악성코드로 의심되는 것으로 구분된 애플리케이션에 대해서는 클라우드 클라이언트부(230)를 통해 클라우드 서버(110)로 진단을 요청하고 진단 결과를 수신 받아 진단 결과를 출력한다. The
클라우드 클라이언트부(230)는 검사부(224)로부터 악성 코드 여부 진단이 의뢰되는 해당 애플리케이션의 시그니처 정보를 클라우드 서버(110)로 전송하여 진단을 요청하고, 진단 결과를 수신하여 검사부(224)로 제공한다.The
도 3은 본 발명의 실시예에 따른 필터를 이용한 클라우드 기반 악성코드 진단 방법의 동작 제어 흐름을 도시한 것이다. 이하, 도 1, 도 2 및 도 3을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.FIG. 3 is a flowchart illustrating an operation control process of a cloud-based malicious code diagnosis method using a filter according to an embodiment of the present invention. Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 1, 2, and 3. FIG.
먼저, 휴대용 단말기(100)내 탑재된 진단장치(104)의 진단정보 추출부(222)에서는 휴대용 단말기(100) 내의 모든 진단 대상 애플리케이션(102)에 대해 각각의 애플리케이션으로부터 시그니처 정보를 추출한다(S300). First, the diagnostic
이어, 사전 진단부(223)는 위와 같이 진단 대상 애플리케이션(102)으로부터 추출한 시그니처 정보에서 사전 진단 필터(106)의 생성시 사용된 해쉬함수의 개수에 대응되는 n개의 해쉬값을 추출한다(S302).Next, the
그런 후, 사전 진단부(223)는 추출된 해쉬값을 사전 진단 필터(106)를 통해 검사하여 휴대용 단말기(100) 내의 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하는 사전 진단을 수행한다(S304).Then, the
이때, 위와 같은 사전 진단 필터(106)는 악성코드의 해쉬값 정보를 압축시킨 형태로 생성된 것으로, 정상파일에 대해 악성코드로 오진하는 false negative가 발생하지 않도록 설계된 필터이며, 예를 들어 블룸필터 등이 될 수 있다. 또한, 이러한 사전 진단 필터(106)는 배포 서버(130) 등으로부터 다운로드되어 휴대용 단말기(100)내 사전 진단부(223)에 탑재될 수 있으며, false positive가 적게 발생하면서 트래픽 발생은 최소화되도록 하는 포맷으로 설계될 수 있다. At this time, the above-described
또한, 이러한 사전 진단 필터(106)는 업데이트 사항이 발생하는 경우 새로운 사전 진단 필터로 교체되거나 업데이트 데이터가 반영되도록 업데이트가 수행되어 최신의 필터로 유지되도록 구현될 수 있다.In addition, such a
위와 같은 사전 진단 필터(106)의 업데이트에 있어서는 필터 업데이트부(210)가 필터 생성장치(120)로부터 필터(106)에 대한 업데이트 정보를 수신하는 경우 필터 생성장치(120)로부터 업데이트된 필터를 다운로드 받아 사전 진단부(220)내 이전 설치된 사전 진단 필터(106)를 업데이트시킬 수 있으며, 또는 클라우드 서버(110)를 통해 업데이트된 새로운 사전 진단 필터를 수신하거나, 업데이트된 일부 필터 데이터를 수신하여 사전 진단 필터(106)를 업데이트시킬 수도 있다.In updating the above-described
이어, 다시 위 도 3의 동작 제어 흐름의 설명을 계속하면, 위와 같은 사전 진단 필터(106)를 이용한 사전 진단 결과, 진단 대상 애플리케이션(102)이 악성코드가 아닌 애플리케이션으로 구분되는 경우(S306), 검사부(224)는 진단 수행된 해당 애플리케이션이 정상 파일임을 표시시킨다(S308).Continuing with the description of the operation control flow of Fig. 3 again, if the
그러나, 진단 대상 애플리케이션(102)이 사전 진단 필터(106)를 이용한 사전 진단 결과, 악성코드로 의심되는 애플리케이션으로 구분되는 경우(S306), 검사부(224)는 해당 애플리케이션을 클라우드 클라이언트부(230)를 통해 클라우드 서버(110)로 전송하여 클라우드 서버(110)에서의 악성코드 진단을 요청한다(S310).However, if the
이에 따라, 클라우드 클라이언트부(230)는 해당 애플리케이션의 시그니처 정보를 클라우드 서버(110)로 전송하여 악성코드 여부에 대한 진단을 요청한 후, 클라우드 서버(110)로부터 진단 결과를 수신하여 악성코드 여부에 대한 진단 결과를 검사부(224)로 제공한다.Accordingly, the
이에 따라, 검사부(224)는 클라우드 클라이언트부(230)로부터 제공되는 악성코드로 의심된 해당 애플리케이션의 진단 결과를 수신하고(S312), 진단 결과를 기반으로 악성코드가 아닌 경우(S314) 해당 애플리케이션을 정상파일로 진단하고(S308), 악성코드인 경우(S314) 해당 애플리케이션을 악성파일로 진단한다(S316). Accordingly, the
즉, 본 발명의 진단장치(104)에서는 모든 진단 대상 애플리케이션의 시그니처를 클라우드 서버(110)로 전송하여 악성코드 여부에 대한 진단을 의뢰하신 대신, 위와 같은 사전 진단 필터(106)를 통해 1차적으로 진단 대상 애플리케이션 중 정상 파일에 대해서 빠르게 진단을 수행하고, 사전 진단 필터(106)를 통해 악성코드로 의심되는 것으로 구분된 애플리케이션에 대해서만 클라우드 서버(110)로 진단을 요청함으로써 진단속도를 향상시키고, 네트워크 부담을 경감시키게 된다.That is, in the
이때, 위와 같은 사전 진단 필터를 이용하여 악성코드에 대한 사전 진단을 수행하는 경우 휴대용 단말기에서 기대되는 진단속도 향상과 네트워크 부담 감소에 대해 실험적인 수치를 예를 들어 설명하면 하기와 같다.Hereinafter, an experimental value for improving the diagnosis speed and reducing the network burden expected in the portable terminal when performing the prognosis of the malicious code using the above-mentioned pre-diagnosis filter will be described as an example.
일반적으로, 스마트폰 등의 휴대용 단말기(100) 내의 애플리케이션 파일을 포함한 전체 파일에 대한 악성코드 여부 정밀 검사를 수행한다고 가정하는 경우, 검사할 파일은 적게는 200여개에서 많게는 5000여개 정도에 해당한다고 볼 수 있다. Generally, when it is assumed that a malicious code is closely inspected for all files including an application file in the
이때, 대략 진단 대상 파일의 수가 3000여개 라하고, 통신망상 클라우드 서버(110)를 이용한 검사 시 1개의 파일당 20바이트(byte)의 시그니처 정보를 클라우드 서버(110)로 전송한다고 가정하면, 휴대용 단말기(100)로부터 클라우드 서버(110)로 대략 60000바이트(58.6Kbyte) 정도의 데이터가 전송되어야 하고, 또한, 매 파일의 진단 시마다 클라우드 서버(110)에게 시그니처를 전달한 후 그 진단결과를 얻어오기 위해 대기하여야 함에 따라 모바일 네트워크(mobile network)의 특성상 특정상황에서 속도저하 및 연결 불안정 문제가 발생할 수 있다.Assuming that the number of files to be diagnosed is roughly 3000 and the signatures of 20 bytes per file are transmitted to the
한편, 일반적인 휴대용 단말기(100)에는 악성파일이 존재할 확률이 극히 낮다. 즉, 전체 검사 대상 파일 중 거의 대부분은 정상파일이며, 대부분의 휴대용 단말기(100)는 하나의 악성파일도 없을 확률이 더 높다.On the other hand, the probability that a malicious file exists in a general
따라서, 본 발명에서와 같이 모든 진단 대상 파일에 대해 클라우드 서버(110)로 전송하여 진단을 요청하기 전에 휴대용 단말기(100)에 탑재되는 사전 진단 필터(106)를 이용하여 정상 파일에 대해서는 빠르게 사전 진단을 수행하고, 악성코드가 의심되는 false positive가 발생된 애플리케이션 파일에 대해서만 클라우드 서버(110)로 진단을 요청하도록 한다면 휴대용 단말기(100)에서의 진단 속도를 향상시키며, 네트워크 부담 또한 경감시킬 수 있을 것으로 기대된다.Therefore, as in the present invention, all the diagnosis object files are transmitted to the
즉, 예를 들어 사전 진단 필터(106)에서의 false positive 확률이 1%라고 하면, 전체 3000여개 파일 중 대략 30여개 파일만이 실제로 클라우드 서버(110)로 전송되어 진단이 의뢰될 것으로 기대가 되며, 이를 위해서는 단지 600바이트의 네트워크 자원이 필요하게 되므로, 진단을 위한 네트워크 자원의 소모를 크게 방지시킬 수 있다.For example, if the probability of false positives in the
또한, 클라우드 서버(110)로 의뢰해서 결과를 수신하는 과정에서 모바일 네트워크의 특성상 발생이 가능한 대기시간이나 네트워크 불안정 상황에 대한 영향 또한 1%로 줄어들게 된다. 또한, 네트워크 사용량이 줄어드는 것에 더해서 클라우드 서버(110)를 사용함으로 해서 발생할 수 있는 속도적인 문제에서도 사전 진단을 수행하는 사전 진단 필터(106)의 false positive 확률인 1%로 비용이 줄어 들게 될 것이 기대 된다.Also, in the process of receiving the result by requesting to the
상기한 바와 같이, 클라우드 기반 악성코드 진단에 있어서, 휴대용 단말기 내의 모든 진단 대상 애플리케이션의 시그니처를 클라우드 서버로 전송하여 악성코드 여부에 대한 진단을 의뢰하신 대신, 사전 진단 필터를 통해 1차적으로 진단 대상 애플리케이션 중 정상 파일에 대해서 빠르게 진단을 수행하고, 사전 진단 필터를 통해 악성코드로 의심되는 것으로 구분된 애플리케이션에 대해서만 클라우드 서버로 진단을 요청함으로써 진단속도를 향상시키고, 네트워크 자원 소모를 줄일 수 있다.As described above, in the cloud-based malicious code diagnosis, instead of sending the signatures of all the diagnostic applications in the portable terminal to the cloud server to request diagnosis of malicious code, the diagnosis target application It can speed up the diagnosis and reduce network resource consumption by performing a quick diagnosis for normal normal files and requesting diagnosis to the cloud server only for applications classified as malicious code through the pre-diagnosis filter.
한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention. Accordingly, the scope of the invention should not be limited by the described embodiments but should be defined by the appended claims.
100 : 휴대용 단말기 102 : 애플리케이션
104 : 진단 장치 106 : 사전 진단 필터
110 : 클라우드 서버 112 : 시그니처 DB
120 : 필터 생성장치 130 : 배포 서버
210 : 필터 업데이트부 220 : 진단부
222 : 진단정보 추출부 223 : 사전 진단부
224 : 검사부 230 : 클라우드 클라이언트부100: portable terminal 102: application
104: Diagnostic device 106: Prognostics filter
110: Cloud server 112: Signature DB
120: Filter generation device 130: Distribution server
210: filter update unit 220:
222: diagnosis information extracting unit 223:
224: Inspection section 230: Cloud client section
Claims (13)
상기 사전 진단 결과, 상기 악성 코드로 의심되는 애플리케이션에 대해서는 클라우드 서버로 진단을 요청하는 단계와,
상기 클라우드 서버로부터 진단 결과를 수신하여 상기 악성코드로 의심되는 애플리케이션에 대한 진단 결과를 출력시키는 단계를 포함하되,
상기 사전 진단을 수행하는 단계는,
상기 진단 대상 애플리케이션으로부터 시그니처 정보를 추출하는 단계와,
상기 시그니처 정보를 상기 사전 진단 필터를 통해 검사하여 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하는 단계
를 포함하는 필터를 이용한 클라우드 기반 악성코드 진단 방법.
Performing a prognosis for distinguishing an application to be diagnosed in the portable terminal as a non-malicious application or an application suspected to be a malicious code using a pre-diagnosis filter;
Requesting a cloud server for a diagnosis of an application suspecting the malicious code as a result of the pre-diagnosis;
Receiving a diagnosis result from the cloud server and outputting a diagnosis result of the suspected malicious code application,
The step of performing the pre-
Extracting signature information from the diagnostic application;
Checking the signature information through the prognosis filter and classifying it into an application that is not a malicious code or an application that is suspected to be a malicious code
A method for diagnosing a cloud-based malicious code using a filter including a filter.
상기 사전 진단 필터는,
상기 진단 대상 애플리케이션에 대한 사전진단 수행 시 정상 파일의 애플리케이션을 악성코드로 오진하는 false negative가 발생하지 않도록 설계된 필터인 것을 특징으로 하는 필터를 이용한 클라우드 기반 악성코드 진단 방법.
The method according to claim 1,
The prognostic filter may comprise:
Wherein the filter is designed so that a false negative that misuses an application of a normal file as a malicious code is not generated when a diagnosis of the diagnosis target application is performed.
상기 사전 진단 필터는,
블룸(bloom) 필터인 것을 특징으로 하는 필터를 이용한 클라우드 기반 악성코드 진단 방법.
The method of claim 3,
The prognostic filter may comprise:
Wherein the filter is a bloom filter.
상기 진단부로부터 악성 코드 의심으로 구분된 애플리케이션의 시그니처 정보를 상기 클라우드 서버로 전송하여 진단을 요청하고, 진단 결과를 수신하여 상기 진단부로 제공하는 클라우드 클라이언트부를 포함하되,
상기 진단부는, 상기 진단 대상 애플리케이션으로부터 시그니처 정보를 추출하는 진단정보 추출부와,
상기 시그니처 정보를 상기 사전 진단 필터를 통해 검사하여 상기 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하는 사전 진단을 수행하는 사전 진단부와,
상기 사전 진단부를 통해 악성코드가 아닌 애플리케이션으로 구분된 애플리케이션에 대해서는 정상파일로 진단 결과를 출력하고, 상기 악성코드로 의심되는 애플리케이션에 대해서는 상기 클라우드 서버로 진단을 요청하여 진단 결과를 출력하는 검사부
를 포함하는 필터를 이용한 클라우드 기반 악성코드 진단 장치.
A prognosis for distinguishing an application to be diagnosed in the portable terminal as an application other than a malicious code or an application suspected to be a malicious code is performed using a prognosis filter and a diagnosis is made to a cloud server for an application suspected to be the malicious code A diagnostic unit,
And a cloud client unit transmitting signature information of an application distinguished from the diagnosis unit suspected of malicious code to the cloud server to request a diagnosis, and receiving diagnosis results and providing the diagnosis information to the diagnosis unit,
Wherein the diagnosis unit comprises: a diagnostic information extracting unit for extracting signature information from the diagnostic application;
A pre-diagnosis unit for performing a pre-diagnosis for inspecting the signature information through the pre-diagnosis filter to distinguish the application to be diagnosed as an application other than a malicious code or an application suspected to be a malicious code;
A diagnosis unit for outputting a diagnosis result to a normal file for an application classified as an application other than a malicious code through the dictionary diagnosis unit and a diagnosis unit for requesting diagnosis to the cloud server for an application suspecting the malicious code,
A cloud-based malicious code diagnostic device using a filter comprising:
상기 사전 진단부는,
상기 시그니처 정보에서 상기 사전 진단 필터의 생성시 사용된 해쉬함수의 개수에 대응되는 n개의 해쉬값을 추출하고, 상기 추출된 해쉬값을 상기 사전 진단 필터를 통해 검사하여 상기 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션인지 또는 악성코드로 의심되는 애플리케이션인지를 구분하는 것을 특징으로 하는 필터를 이용한 클라우드 기반 악성코드 진단 장치.
6. The method of claim 5,
The pre-
Extracting n hash values corresponding to the number of hash functions used at the time of generation of the pre-diagnosis filter from the signature information, inspecting the extracted hash value through the pre-diagnosis filter, Wherein the malicious code is classified into an application that is not a malicious code or an application that is suspected to be malicious code.
상기 진단 장치는,
상기 사전 진단 필터에 대한 업데이트 사항이 발생하는 경우 상기 사전 진단 필터를 업데이트하는 필터 업데이트부를 더 포함하는 것을 특징으로 하는 필터를 이용한 클라우드 기반 악성코드 진단 장치.
6. The method of claim 5,
The diagnostic apparatus may further comprise:
Further comprising a filter update unit for updating the pre-diagnosis filter when an update to the pre-diagnosis filter occurs.
상기 사전 진단 필터는,
상기 진단 대상 애플리케이션에 대한 진단 수행 시 악성코드가 아닌 애플리케이션을 악성코드로 오진하는 false negative가 발생하지 않도록 설계된 필터인 것을 특징으로 하는 필터를 이용한 클라우드 기반 악성코드 진단 장치.
6. The method of claim 5,
The prognostic filter may comprise:
Wherein the filter is designed so that when the diagnosis is performed on the diagnosis target application, a false negative that misuses the application other than the malicious code as a malicious code is not generated.
상기 진단 장치로부터 진단 요청되는 상기 악성코드로 의심되는 애플리케이션의 시그니처 정보를 수신하여 해당 애플리케이션에 대한 진단을 수행하고, 진단 결과를 상기 진단 장치로 제공하는 상기 클라우드 서버와,
상기 사전 진단 필터를 생성하여 상기 진단 장치에 제공하며, 상기 클라우드 서버로부터 새로이 진단된 악성코드에 대한 정보를 수신하여 상기 사전 진단 필터를 업데이트시키는 필터 생성장치
를 포함하는 필터를 이용한 클라우드 기반 악성코드 진단 시스템.
A prognosis filter is used to proactively diagnose whether the application to be diagnosed in the portable terminal is an application that is not a malicious code or an application suspected to be a malicious code and requests a diagnostic to the cloud server for an application suspected of the malicious code, A diagnostic device for outputting a result,
A cloud server for receiving signature information of an application suspecting malicious code that is requested to be diagnosed from the diagnostic device, performing diagnosis for the application, and providing diagnosis results to the diagnostic device;
A filter generating device for generating the prognostic filter and providing the prognostic filter to the diagnostic device, receiving information on a newly diagnosed malicious code from the cloud server and updating the prognostic filter,
A cloud - based malware diagnosis system using a filter including a filter.
상기 진단 장치로부터 진단 요청되는 상기 악성코드로 의심되는 애플리케이션의 시그니처 정보를 수신하여 해당 애플리케이션에 대한 진단을 수행하고, 진단 결과를 상기 진단 장치로 제공하는 상기 클라우드 서버를 포함하되,
상기 진단 장치는, 상기 진단 대상 애플리케이션으로부터 시그니처 정보를 추출하며, 상기 추출된 시그니처 정보에서 상기 사전 진단 필터의 생성시 사용된 함수의 개수에 대응되는 n개의 해쉬값을 추출하고, 추출된 해쉬값을 상기 사전 진단 필터를 통해 검사하여 상기 진단 대상 애플리케이션에 대해 악성코드가 아닌 애플리케이션 또는 악성코드로 의심되는 애플리케이션으로 구분하는 것을 특징으로 하는 필터를 이용한 클라우드 기반 악성코드 진단 시스템.A prognosis filter is used to proactively diagnose whether the application to be diagnosed in the portable terminal is an application that is not a malicious code or an application suspected to be a malicious code and requests a diagnostic to the cloud server for an application suspected of the malicious code, A diagnostic device for outputting a result,
And a cloud server for receiving signature information of an application suspecting malicious code that is requested to be diagnosed by the diagnostic device, performing diagnosis for the application, and providing diagnosis results to the diagnostic device,
The diagnostic apparatus extracts signature information from the diagnostic application, extracts n hash values corresponding to the number of functions used in generating the pre-diagnosis filter from the extracted signature information, and extracts the extracted hash value Wherein the diagnosis target application is inspected through the pre-diagnosis filter and classified into a non-malicious application or an application suspected to be a malicious code.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130062184A KR101473658B1 (en) | 2013-05-31 | 2013-05-31 | Apparatus and system for detecting malicious code using filter and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130062184A KR101473658B1 (en) | 2013-05-31 | 2013-05-31 | Apparatus and system for detecting malicious code using filter and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140141801A KR20140141801A (en) | 2014-12-11 |
KR101473658B1 true KR101473658B1 (en) | 2014-12-18 |
Family
ID=52459562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130062184A KR101473658B1 (en) | 2013-05-31 | 2013-05-31 | Apparatus and system for detecting malicious code using filter and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101473658B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190020998A (en) | 2017-08-22 | 2019-03-05 | 주식회사 하우리 | Apparatus, method and system for detecting malicious code |
WO2020189822A1 (en) * | 2019-03-20 | 2020-09-24 | 주식회사 하우리 | Diagnosis apparatus, diagnosis method, and diagnosis system for malicious code in cloud environment |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102216061B1 (en) * | 2015-11-25 | 2021-02-16 | 에스케이텔레콤 주식회사 | Apparatus and method for controlling security of communication between virtual machines |
KR101896824B1 (en) * | 2017-01-17 | 2018-09-10 | 한국항공대학교산학협력단 | Apparatus and method for pre-detecting virus using isp |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101228902B1 (en) * | 2010-12-31 | 2013-02-06 | 주식회사 안랩 | Cloud Computing-Based System for Supporting Analysis of Malicious Code |
KR101230585B1 (en) * | 2010-12-07 | 2013-02-06 | 주식회사 안랩 | Malicious code treatment apparatus and method |
-
2013
- 2013-05-31 KR KR1020130062184A patent/KR101473658B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101230585B1 (en) * | 2010-12-07 | 2013-02-06 | 주식회사 안랩 | Malicious code treatment apparatus and method |
KR101228902B1 (en) * | 2010-12-31 | 2013-02-06 | 주식회사 안랩 | Cloud Computing-Based System for Supporting Analysis of Malicious Code |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190020998A (en) | 2017-08-22 | 2019-03-05 | 주식회사 하우리 | Apparatus, method and system for detecting malicious code |
KR102042045B1 (en) * | 2017-08-22 | 2019-11-08 | 주식회사 하우리 | Apparatus, method and system for detecting malicious code |
WO2020189822A1 (en) * | 2019-03-20 | 2020-09-24 | 주식회사 하우리 | Diagnosis apparatus, diagnosis method, and diagnosis system for malicious code in cloud environment |
Also Published As
Publication number | Publication date |
---|---|
KR20140141801A (en) | 2014-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10872151B1 (en) | System and method for triggering analysis of an object for malware in response to modification of that object | |
EP3506139B1 (en) | Malware detection in event loops | |
EP4287053A2 (en) | Analysis of malware | |
US10133863B2 (en) | Zero-day discovery system | |
US9832211B2 (en) | Computing device to detect malware | |
CN109997139B (en) | Detecting malware using hash-based fingerprints | |
US20160070911A1 (en) | Rapid malware inspection of mobile applications | |
US11829467B2 (en) | Dynamic rules engine in a cloud-based sandbox | |
US8661543B2 (en) | Mobile terminal having security diagnosis functionality and method of making diagnosis on security of mobile terminal | |
KR20150044490A (en) | A detecting device for android malignant application and a detecting method therefor | |
KR20110084693A (en) | Method of examining malicious codes and dangerous files in android terminal platform | |
CN111448552B (en) | Observation and classification of device events | |
KR101473658B1 (en) | Apparatus and system for detecting malicious code using filter and method thereof | |
US20180341769A1 (en) | Threat detection method and threat detection device | |
CN105095759A (en) | File detection method and device | |
CN116303290B (en) | Office document detection method, device, equipment and medium | |
KR20150083627A (en) | Method for detecting malignant code of android by activity string analysis | |
CN116305129B (en) | Document detection method, device, equipment and medium based on VSTO | |
KR20140122964A (en) | Apparatus and system for detecting malware based on cloud and method thereof | |
KR102042045B1 (en) | Apparatus, method and system for detecting malicious code | |
KR101256468B1 (en) | Apparatus and method for detecting malicious file | |
CN105791250A (en) | Application detection method and device | |
US20230259612A1 (en) | Exploit detection in a cloud-based sandbox | |
KR20150102866A (en) | Apparatus and system for detecting malware based on cloud and method thereof | |
US20220182260A1 (en) | Detecting anomalies on a controller area network bus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20171211 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20181211 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20191211 Year of fee payment: 6 |