KR20140030989A - Method of obtaining signature of apk files for android operating system, and computer-readable recording medium with apk file signature computing program for the same - Google Patents
Method of obtaining signature of apk files for android operating system, and computer-readable recording medium with apk file signature computing program for the same Download PDFInfo
- Publication number
- KR20140030989A KR20140030989A KR1020120097838A KR20120097838A KR20140030989A KR 20140030989 A KR20140030989 A KR 20140030989A KR 1020120097838 A KR1020120097838 A KR 1020120097838A KR 20120097838 A KR20120097838 A KR 20120097838A KR 20140030989 A KR20140030989 A KR 20140030989A
- Authority
- KR
- South Korea
- Prior art keywords
- file
- classes
- dex
- signature
- apk
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- 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
-
- 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
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명은 안드로이드 운영체제에서 악성코드 또는 화이트리스트 프로그램을 효과적으로 검출할 수 있는 기술에 관한 것이다. 더욱 상세하게는 본 발명은 안드로이드 어플리케이션의 특성과 압축파일의 구조를 이용하여 APK 파일의 시그니처를 빠르고 정확하게 추출함으로써 종래기술의 모바일 안티바이러스 제품에 비해 안드로이드 운영체제의 악성코드 또는 화이트리스트 프로그램을 효과적으로 검출할 수 있는 기술에 관한 것이다.
The present invention relates to a technology that can effectively detect malware or whitelist programs in the Android operating system. More specifically, the present invention extracts the signature of the APK file using the characteristics of the Android application and the structure of the compressed file quickly and accurately to effectively detect malware or whitelist programs of the Android operating system compared to the mobile antivirus products of the prior art. It is about technology that can be.
안드로이드 운영체제는 모바일 단말에 널리 보급되어 있지만 보안이 매우 취약하여 악성 어플리케이션이 급속히 증가하는 추세이다. 그러나 기본의 모바일 악성 프로그램 검출 및 차단 프로그램은 검사 속도가 매우 늦고 다형성(변종) 바이러스에 대처할 수 없는 구조로 되어 있는 단점이 있다.Android operating system is widely used in mobile devices, but the security is very weak, malicious applications are increasing rapidly. However, the basic mobile malware detection and blocking program has a disadvantage that the scan rate is very slow and the structure cannot cope with polymorphic (variant) virus.
보다 구체적으로, 기존의 선행기술로서 특허출원번호 제10-2010-0004386호와 특허출원번호 제10-2010-0020015호 등은 [도 1]과 [도 2]의 순서도를 통해 나타낸 바와 같이 악성 어플리케이션의 해쉬값을 추출하여 검사 엔진으로 미리 등록된 APK(Application PacKage) 파일의 해쉬값을 비교함으로써 악성코드 또는 화이트리스트로 판단하고 있다.More specifically, as the prior art, Patent Application No. 10-2010-0004386 and Patent Application No. 10-2010-0020015 and the like are malicious applications as shown through the flowcharts of FIGS. 1 and 2. By extracting the hash value and comparing the hash value of the APK (Application PacKage) file pre-registered with the inspection engine, it is judged as malicious code or whitelist.
이러한 종래기술은 검사대상인 안드로이드 어플리케이션에 대해 APK 파일의 해쉬값을 추출하고 이미 등록된 악성 어플리케이션의 해쉬값 데이터베이스와 비교하는 방식이다. 종래기술은 경우에 따라 파일 전체를 읽어 해쉬값을 추출하기 때문에 많은 시간이 소요되는 단점이 있다. 또한 종래기술은 다형성 바이러스를 검출하기 위해서는 개별 다형성을 위해 수많은 시그니처를 등록해야만 빠짐없이 검출할 수 있어 유지관리가 번거롭다는 단점도 있다.This prior art is a method of extracting the hash value of the APK file for the Android application to be examined and compares it with the hash value database of the malicious application already registered. In the prior art, since the hash value is extracted by reading the entire file in some cases, it takes a long time. In addition, the prior art has a disadvantage in that it is cumbersome to detect a polymorphic virus to be detected without registering a large number of signatures for individual polymorphism.
이에 따라 해당 기술분야에 있어서는 안드로이드 운영체제의 어플리케이션에 대해 악성코드와 화이트리스트 프로그램을 효과적으로 검출할 수 있는 기술개발이 절실히 요구되고 있다.
Accordingly, in the technical field, there is an urgent need for technology development that can effectively detect malicious codes and whitelist programs for applications of the Android operating system.
[관련기술문헌][Related Technical Literature]
1. 안드로이드 단말 플랫폼에서의 악성코드와 위험 파일의 진단 방법(특허출원 제10-2010-0004386호)1. Diagnosis method of malicious code and dangerous file on Android terminal platform (Patent Application No. 10-2010-0004386)
2. 악성코드 탐지 장치 및 그 방법, 이를 위한 프로그램이 기록된 기록 매체(특허출원 제10-2010-0020015호)
2. Malware detection device and method, recording medium recording program therefor (Patent Application No. 10-2010-0020015)
본 발명의 목적은 안드로이드 운영체제에서 악성코드 또는 화이트리스트 프로그램을 효과적으로 검출할 수 있는 기술을 제공하는 것이다. 더욱 상세하게는 본 발명의 목적은 안드로이드 어플리케이션의 특성과 압축파일의 구조를 이용하여 APK 파일의 시그니처를 빠르고 정확하게 추출함으로써 종래기술의 모바일 안티바이러스 제품에 비해 안드로이드 운영체제의 악성코드 또는 화이트리스트 프로그램을 효과적으로 검출할 수 있는 기술을 제공하는 것이다.
An object of the present invention is to provide a technology that can effectively detect malware or whitelist programs in the Android operating system. More specifically, an object of the present invention is to extract the signature of the APK file quickly and accurately by using the characteristics of the Android application and the structure of the compressed file to effectively remove malware or whitelist programs of the Android operating system compared to the mobile antivirus products of the prior art. It is to provide a technology that can be detected.
이러한 과제를 달성하기 위한 본 발명은 안드로이드 운영체제 기반에서 악성 또는 변종 어플리케이션을 검출하기 위한 APK 파일의 시그니처 추출 방법으로서, APK 파일을 분석하여 APK 파일에서 classes.dex 파일 데이터의 위치를 탐색하는 제 1 단계; 위 탐색된 classes.dex 파일 데이터로부터 classes.dex 파일 고유정보를 획득하는 제 2 단계; 그 획득된 classes.dex 파일 고유정보를 1차 시그니처로 설정하여, APK 파일이 악성코드인지 여부를 판단하는 제 3 단계; 1차 시그니처에 의한 판단결과 악성코드로 판단되면 미리 설정된 악성코드 처리를 수행하는 제 4 단계;를 포함하여 구성된다.The present invention for achieving the above object is a signature extraction method of the APK file for detecting malicious or variant applications on the Android operating system, the first step of analyzing the APK file to search the location of the classes.dex file data in the APK file ; A second step of acquiring classes.dex file peculiar information from the retrieved classes.dex file data; A third step of determining whether the APK file is a malicious code by setting the acquired classes.dex file unique information as a primary signature; And a fourth step of performing a predetermined malicious code process when it is determined that the malicious code is determined as the primary signature.
또한, 본 발명은, 위 탐색된 classes.dex 파일 데이터에서 헤더 영역을 식별하는 제 5 단계; 그 식별된 classes.dex 헤더 영역에 대한 압축을 해제하는 제 6 단계; 압축 해제된 classes.dex 헤더 영역으로부터 필드 포맷에 따른 해쉬값을 획득하는 제 7 단계; 그 획득된 해쉬값을 2차 시그니처로 설정하여, APK 파일이 악성코드인지 여부를 판단하는 제 8 단계; 2차 시그니처에 의한 판단결과 악성코드로 판단되면 미리 설정된 악성코드 처리를 수행하는 제 9 단계;을 더 포함하여 구성될 수 있다.In addition, the present invention includes a fifth step of identifying a header area in the above-described classes.dex file data; A sixth step of decompressing the identified classes.dex header area; A seventh step of obtaining a hash value according to the field format from the decompressed classes.dex header area; An eighth step of determining whether the APK file is a malicious code by setting the obtained hash value as a secondary signature; If it is determined that the malicious code is determined as the secondary signature, the ninth step of performing a predetermined malicious code processing may be further included.
한편, 본 발명에서 classes.dex 파일 고유정보는 CRC 정보, APK 파일의 압축전 파일크기 정보와 압축후 파일크기 정보 중 하나 이상을 포함하여 구성되고, classes.dex 헤더 영역은 압축 해제된 이후의 classes.dex 파일 데이터의 전단 32 바이트이고, 해쉬값은 classes.dex 헤더 영역에서 후단의 20 바이트에 해당하는 SHA-1 값을 포함하여 구성될 수 있다.Meanwhile, in the present invention, the unique information of the classes.dex file includes one or more of CRC information, pre-compression file size information of the APK file, and post-compression file size information, and the classes.dex header area after decompression 32 bytes of the front end of the .dex file data, and the hash value may be configured to include a SHA-1 value corresponding to 20 bytes of the rear end of the classes.dex header area.
한편, 본 발명에 따른 컴퓨터로 판독가능한 기록매체은 이상과 같은 안드로이드 운영체제에서 APK 파일의 시그니처 추출 방법을 실행하기 위한 APK 파일 시그니처 추출 프로그램을 기록한 것이다.
On the other hand, the computer-readable recording medium according to the present invention records the APK file signature extraction program for executing the signature extraction method of the APK file in the Android operating system as described above.
본 발명에 따르면 안드로이드 운영체제에서 악성 또는 화이트리스트 프로그램을 효과적으로 검출할 수 있는 편의를 제공한다. 즉, 안드로이드 어플리케이션의 특성과 압축파일의 구조를 이용하여 어플리케이션 파일의 전체에 대한 해쉬값을 추출하지 않고도 빠르고 정확하게 대상 어플리케이션의 고유 시그니처를 추출하여 악성 또는 화이트리스트를 구분함으로써 전체의 해쉬값을 추출하는 종래기술에 비해 80배 내지 250배 이상 빠르게 검사하면서도 다형성 변종 바이러스의 검출도 가능한 효과를 제공한다.
According to the present invention provides a convenience that can effectively detect malicious or white list programs in the Android operating system. In other words, by extracting the unique signature of the target application quickly and accurately by using the characteristics of the Android application and the structure of the compressed file, it is possible to extract the entire hash value by separating malicious or whitelists. While 80-250 times faster than the prior art, the detection of the polymorphic variant virus provides a possible effect.
[도 1]과 [도 2]는 종래기술에서 안드로이드 어플리케이션에 대한 악성코드 탐지 방법을 나타내는 도면.
[도 3]은 본 발명에 따른 APK 파일의 시그니처 추출 방법이 구현되는 안드로이드 운영체제 기반의 모바일 단말을 나타내는 도면.
[도 4]는 본 발명에 따른 APK 파일의 시그니처 추출 방법을 나타내는 순서도.
[도 5]는 APK 파일에 포함된 classes.dex의 고유값을 설명하기 위한 도면.
[도 6]은 다형성 바이러스에 포함된 classes.dex의 해쉬값을 설명하기 위한 도면.
[도 7]은 classes.dex 파일의 일 예를 나타내는 도면.1 and 2 are diagrams showing a malware detection method for an Android application in the prior art.
3 is a diagram illustrating an Android operating system-based mobile terminal in which a signature extraction method of an APK file according to the present invention is implemented.
4 is a flowchart illustrating a signature extraction method of an APK file according to the present invention.
FIG. 5 is a diagram for explaining intrinsic values of classes.dex included in an APK file. FIG.
FIG. 6 is a diagram for explaining a hash value of classes.dex included in a polymorphic virus. FIG.
7 is a diagram illustrating an example of a classes.dex file.
이하에서는 도면을 참조하여 본 발명을 상세하게 설명한다.Hereinafter, the present invention will be described in detail with reference to the drawings.
[도 3]은 본 발명에 따른 APK 파일의 시그니처 추출 방법이 구현되기에 적합한 안드로이드 운영체제 기반의 모바일 단말(10, 이하 '모바일 단말')의 내부 구성을 나타내는 도면이다. [도 4]는 본 발명에 따른 APK 파일의 시그니처 추출 방법을 나타내는 순서도이고, [도 5]는 APK 파일에 포함된 classes.dex의 고유값을 설명하기 위한 도면이며, [도 6]은 다형성인 변종 바이러스에 포함된 classes.dex의 해쉬값을 설명하기 위한 도면이다. 또한, [도 7]은 classes.dex 파일의 구조의 일 예를 나타내는 도면이다.3 is a diagram illustrating an internal configuration of a mobile terminal 10 (hereinafter, referred to as a 'mobile terminal') based on an Android operating system suitable for implementing a signature extraction method of an APK file according to the present invention. FIG. 4 is a flowchart illustrating a signature extraction method of an APK file according to the present invention. FIG. 5 is a diagram illustrating an intrinsic value of classes.dex included in an APK file, and FIG. 6 is a polymorphism. A diagram for explaining the hash value of classes.dex included in the variant virus. 7 is a diagram showing an example of the structure of the classes.dex file.
먼저, [도 3]을 참조하면, 모바일 단말(10)은 무선송수신부(11), I/O 인터페이스(12), 중앙제어부(13), 시그니처 추출모듈(14), 터치스크린(15), 저장부(16)를 포함하여 이루어지며, 다른 구성요소를 더 구비할 수 있다. 이때, 시그니처 추출모듈(14)은 실시간 파일탐지수단(14a), 1차 시그니처 판단수단(14b), APK 파일분석수단(14c), 2차 시그니처 판단수단(14d), 헤더정보 분석수단(14e)을 구비한다. 이하에서는 시그니처 추출모듈(14)의 구성을 중심으로 [도 3] 내지 [도 7]을 참조하여 안드로이드 운영체제에서 APK 파일의 시그니처 추출 방법에 대해 구체적으로 살펴보도록 한다.First, referring to FIG. 3, the
실시간 파일탐지수단(14a)은 중앙제어부(13)의 제어동작에 대응하여 무선송수신부(11) 또는 I/O 인터페이스(12)를 통해 저장부(16)로부터 판독한 파일의 확장자가 APK임을 식별한다(S11). 단계(S11)는 안드로이드 운영체제에서 어플리케이션 설치를 위해 제공되는 ZIP 압축 알고리즘에 의해 압축된 형태로 이루어진 APK 파일을 탐색하기 위해서 수행된다.The real-time file detection means 14a identifies that the extension of the file read from the
단계(S11) 이후, APK 파일분석수단(14c)은 중앙제어부(13)로부터 해당 안드로이드 어플리케이션에 대한 악성파일 검사 요청을 수신하고(S12), 그에 따라 APK 파일에 대한 분석을 개시한다(S13). APK 파일 분석을 통해 1차 시그니처 판단수단(14b)은 1차 시그니처를 획득하고 이를 통해 악성코드 여부를 판단하는데, 이러한 1차 시그니처에 관련된 과정에 대해 단계(S14) 내지 단계(S18), 그리고 [도 5]와 [도 6]을 참조하여 설명한다.After step S11, the APK file analyzing means 14c receives a malicious file inspection request for the corresponding Android application from the central control unit 13 (S12), and accordingly starts analyzing the APK file (S13). By analyzing the APK file, the primary signature determination means 14b obtains the primary signature and determines whether there is a malicious code through the process, and for steps related to the primary signature (S14) to (S18), and [ This will be described with reference to FIG. 5 and FIG. 6.
단계(S13) 이후, APK 파일분석수단(14c)은 APK 파일에서의 classes.dex의 위치를 탐색한다(S14). 안드로이드 운영체제에서 구동되는 어플리케이션의 APK 파일들은 리패키징 후 최종적으로 "classes.dex" 파일로 재조합되는데, 이를 통해 모든 어플리케이션이 하나로 모아진다. 처리 기능이 동일한 어플리케이션은 동일한 "classes.dex" 파일을 가지게 되므로 ZIP 압축된 APK 파일 내에서 classes.dex 파일 데이터의 위치를 탐색하는 것이다.After step S13, the APK file analysis means 14c searches for the location of classes.dex in the APK file (S14). APK files of applications running on the Android operating system are finally repackaged into a "classes.dex" file, which brings all the applications together. An application with the same processing capability will have the same "classes.dex" file, which is why you are looking for the location of the classes.dex file data within the ZIP compressed APK file.
단계(S14) 이후, APK 파일분석수단(14c)은 APK 파일 내의 classes.dex 파일 데이터로부터 classes.dex 파일의 고유정보를 탐색한다(S15). 안드로이드 운영체제기반의 모바일 단말(10)에서 사용되는 압축파일의 구조를 살펴보면 압축에 포함된 모든 파일에 대한 압축 전 고유의 해쉬값, 파일 크기 그리고 압축 후 데이터 크기의 정보가 압축파일의 미리 설정된 위치에 저장되어 있다. 따라서, 이러한 압축파일의 구조를 참조하여 APK 파일로부터 안드로이드 어플리케이션의 핵심 파일인 "classes.dex" 파일 데이터의 위치를 찾아 고유의 해쉬값, 압축 전/후 크기 등의 고유정보를 읽어 어플리케이션 고유의 해쉬로서 간주하고 1차 시그니처로 사용하기 위해 고유정보를 탐색하는 것이다.After step S14, the APK file analysis means 14c searches for the unique information of the classes.dex file from the classes.dex file data in the APK file (S15). Looking at the structure of the compressed file used in the
[도 5]를 참조하여 좀더 구체적으로 살펴본다. [도 5]는 APK 파일에 포함된 classes.dex 파일에 대한 고유정보를 나타내는 예시 도면이다. [도 5]의 APK 파일 내에서 도면의 테두리선 내로 classes.dex 파일이 포함되어 있고, 그 중에서 밑줄 표시된 부분은 일시 정보, CRC(Cyclic Redundancy Checks) 정보, 압축전 파일크기 정보, 압축후 파일크기 정보 등의 고유정보이다. 이에 따라, classes.dex 파일의 고유정보을 시그니처로 활용하면 APK 파일의 ZIP 압축을 풀거나 APK 파일 전체의 해쉬값(hash value)을 구하지 않고도 APK 파일에 대응되는 안드로이드 어플리케이션 고유의 1차 시그니처를 얻을 수 있다.With reference to FIG. 5 will be described in more detail. 5 is an exemplary diagram showing unique information about the classes.dex file included in the APK file. In the APK file of FIG. 5, the classes.dex file is included in the outline of the drawing, and underlined parts include date and time information, cyclic redundancy checks (CRC) information, file size information before compression, and file size after compression. Unique information such as information. Accordingly, if the unique information of the classes.dex file is used as a signature, an Android application-specific primary signature corresponding to the APK file can be obtained without decompressing the APK file or obtaining a hash value of the entire APK file. have.
한편, [도 6]은 다형성인 변종 바이러스에 포함된 classes.dex 파일에 대한 고유정보를 나타내는 도면이다. 즉, 다형성 변종의 바이러스를 포함하는 APK 파일의 경우 [도 6(a)]와 [도 6(b)]에 나타낸 바와 같이 [도 5]에 도시된 APK 파일과는 일부 상이하지만, 내부에 포함된 classes.dex 파일의 고유정보는 [도 5], [도 6(a)], [도 6(b)]에 걸쳐서 그대로 유지되기 때문에 하나의 패턴(1차 시그니처)으로 모든 변종을 검출할 수 있다.FIG. 6 is a diagram showing unique information of the classes.dex file included in the polymorphic variant virus. That is, in the case of an APK file including a virus of a polymorphic variant, as shown in [FIG. 6 (a)] and [FIG. 6 (b)], it is partially different from the APK file shown in FIG. Since the unique information of the classes.dex file is maintained throughout [Fig. 5], [6 (a)], and [Fig. 6 (b)], all variants can be detected with one pattern (primary signature). have.
단계(S15)에서 APK 파일분석수단(14c)이 획득한 classes.dex 파일의 고유정보를 1차 시그니처로 이용하여 1차 시그니처 판단수단(14b)은 당해 APK 파일이 악성코드(악성 어플리케이션)인지 여부를 판단한다(S16). 이를 위해 악성코드에 대한 1차 시그니처 값이 미리 등록되어 있다.Using the unique information of the classes.dex file acquired by the APK file analyzing means 14c in step S15 as the primary signature, the primary signature determining means 14b determines whether the APK file is a malicious code (malicious application). Determine (S16). For this purpose, the first signature value for malware is registered in advance.
단계(S16)의 판단 결과 APK 파일이 악성코드가 아닌 것으로 판단되는 경우에는 앞의 단계(S12)로 복귀하여 다른 APK 파일(안드로이드 어플리케이션)에 대한 악성파일 검사 요청을 대기한다(S17).If it is determined in step S16 that the APK file is not malicious code, the process returns to the previous step S12 and waits for a malicious file inspection request for another APK file (Android application) (S17).
단계(S16)의 판단 결과 APK 파일이 악성코드(악성 어플리케이션, 다형성 변종 어플리케이션)이라고 판단되는 경우에는 APK 파일분석수단(14c)은 바람직하게는 1차 경고를 터치스크린(15) 상으로 출력하고 APK 파일에 대해 그에 따른 악성코드 처리를 수행한다(S18). 이때, 악성코드 처리로는 APK 파일을 삭제하거나 APK 파일을 특수하게 지정된 폴더로 이동시키는 조치가 될 수 있는데, 악성코드를 발견하였을 때의 처리는 종래기술에 이미 알려져있고 본 발명의 특징이 아니므로 본 명세서에서는 상세하게 기술하지 않는다.If it is determined in step S16 that the APK file is a malicious code (malignant application, polymorphic variant application), the APK file analyzing means 14c preferably outputs the first warning on the
상술한 바와 같이, 1차 시그니처가 일치하면 APK 파일에 대해 바로 악성리스트 또는 화이트리스트로 구분하여 검출할 수 있지만, 보다 정확한 검출을 위해 다음의 과정을 추가로 수행하는 것이 바람직하다.As described above, if the primary signature matches, the APK file can be detected by being classified as a malicious list or a white list, but it is preferable to further perform the following process for more accurate detection.
먼저, 헤더정보 분석수단(14e)은 APK 파일 내의 classes.dex 파일 데이터에서 전단 32 바이트에 해당하는 헤더 영역에 대한 압축해제를 수행한다(S19). [도 7]은 classes.dex 파일 구조를 나타낸 도면이다. 헤더정보 분석수단(14e)은 이러한 파일 구조를 참조하여 classes.dex 파일 데이터에서 해쉬값(SHA-1 Signature)을 읽어 APK 파일의 2차 시그니처로 사용함으로써 APK 파일이 악성코드인지 여부를 좀더 정밀하게 판단할 수 있다.First, the header information analyzing means 14e decompresses the header area corresponding to the previous 32 bytes of classes.dex file data in the APK file (S19). Fig. 7 shows the classes.dex file structure. The header information analyzing means 14e refers to this file structure and reads the hash value (SHA-1 Signature) from the classes.dex file data and uses it as the secondary signature of the APK file to more precisely determine whether the APK file is malicious code. You can judge.
단계(S19) 이후, 헤더정보 분석수단(14e)은 단계(S19)에서 압축해제된 헤더 영역(32 바이트)에서 후단의 20 바이트에 해당하는 SHA-1(Secure Hash Algorithm-1) 정보를 추출한다(S20). 보다 구체적으로 살펴보면, 바람직하게는 [도 7]에 나타낸 "classes.dex" 파일에서 헤더부분 32 바이트만 압축해제하고 이중 20 바이트인 해쉬값(SHA-1 Signature)을 고유 시그니처(2차 시그니처)로 사용하는 것이 바람직하다. 이러한 구성을 통해 APK 파일 전체의 압축을 풀거나 전체 파일의 해쉬값을 추출하지 않고도 어플리케이션 고유의 시그니처를 빠르고 정확하게 얻을 수 있는 장점이 있다.After step S19, the header information analyzing means 14e extracts SHA-1 (Secure Hash Algorithm-1) information corresponding to the last 20 bytes of the header region (32 bytes) decompressed in step S19. (S20). More specifically, in the "classes.dex" file shown in FIG. 7, preferably, only 32 bytes of header parts are decompressed, and the hash value (SHA-1 Signature), which is 20 bytes, is converted into a unique signature (secondary signature). It is preferable to use. This configuration has the advantage of quickly and accurately obtaining application-specific signatures without decompressing the entire APK file or extracting the hash value of the entire file.
단계(S20) 이후, 헤더정보 분석수단(14e)은 classes.dex 파일의 SHA-1 정보를 2차 시그니처로 활용하여 APK 파일의 악성코드(악성 및 다형성 변종 어플리케이션) 여부를 판단한다(S21). 이를 위해 악성코드에 대한 2차 시그니처 값이 미리 등록되어 있다.After the step S20, the header information analyzing means 14e determines whether the APK file is malicious (malignant and polymorphic variant application) by utilizing the SHA-1 information of the classes.dex file as the secondary signature (S21). For this purpose, the second signature value for the malware is registered in advance.
단계(S21)의 판단 결과 APK 파일이 악성코드가 아닌 것으로 판단되는 경우에는 앞의 단계(S12)로 복귀하여 다른 APK 파일(안드로이드 어플리케이션)에 대한 악성파일 검사 요청을 대기한다(S22).If it is determined in step S21 that the APK file is not malicious code, the process returns to the previous step S12 and waits for a malicious file inspection request for another APK file (Android application) (S22).
단계(S21)의 판단 결과 APK 파일이 악성코드(악성 어플리케이션, 다형성 변종 어플리케이션)이라고 판단되는 경우에는 헤더정보 분석수단(14e)은 바람직하게는 2차 경고를 터치스크린(15) 상으로 출력하고 APK 파일에 대해 그에 따른 악성코드 처리를 수행한다(S23). 이때, 악성코드 처리로는 APK 파일을 삭제하거나 APK 파일을 특수하게 지정된 폴더로 이동시키는 조치가 될 수 있는데, 악성코드를 발견하였을 때의 처리는 종래기술에 이미 알려져있고 본 발명의 특징이 아니므로 본 명세서에서는 상세하게 기술하지 않는다.If it is determined in step S21 that the APK file is a malicious code (malignant application, polymorphic variant application), the header information analyzing means 14e preferably outputs the secondary warning on the
단계(S23) 이후, 헤더정보 분석수단(14e)은 저장부(16)에 저장된 모든 APK 파일에 대한 검사 종료 여부를 판단한다(S24).After the step S23, the header information analyzing means 14e determines whether or not the inspection of all the APK files stored in the
단계(S24)의 판단 결과 저장부(16)에 저장된 모든 APK 파일에 대한 검사가 종료(완료)시 헤더정보 분석수단(14e)은 시그니처 추출에 의한 악성 및 변종 어플리케이션 검출 프로세스를 중단한다. 한편, 단계(S24)의 판단 결과 모든 APK 파일에 대한 검사가 종료되지 않은 경우 단계(S12)로 회귀하여 단계(S12) 내지 단계(S24)의 과정을 반복적으로 수행한다.
As a result of the determination in step S24, when the inspection of all APK files stored in the
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드의 형태로 구현하는 것이 가능하다. 이때, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.The present invention can also be embodied in the form of computer readable code on a computer readable recording medium. At this time, the computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 캐리어웨이브(예: 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산된 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인 프로그램, 코드, 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의해 용이하게 추론될 수 있다.Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage, and the like, and may be implemented in the form of a carrier wave . The computer-readable recording medium can also be stored and executed by a computer-readable code in a distributed manner on a networked computer system. And functional programs, codes, and code segments for implementing the present invention can be easily deduced by programmers skilled in the art to which the present invention belongs.
이상과 같이, 본 명세서와 도면에는 본 발명의 실시예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예가 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명하다.
As described above, the embodiments of the present invention have been disclosed in the present specification and drawings, and although specific terms have been used, they have been used only in a general sense to easily describe the technical contents of the present invention and to facilitate understanding of the invention. And is not intended to limit the scope of the invention. It will be apparent to those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.
10: 모바일 단말
11: 무선송수신부
12: I/O 인터페이스
13: 중앙제어부
14: 시그니처 추출모듈
14a: 실시간 파일탐지수단
14b: 1차 시그니처 판단수단
14c: APK 파일분석수단
14d: 2차 시그니처 판단수단
14e: 헤더정보 분석수단
15: 터치스크린
16: 저장부10: mobile terminal
11: wireless transceiver
12: I / O Interface
13: central control unit
14: signature extraction module
14a: Real-time file detection means
14b: Primary signature determining means
14c: APK file analysis tool
14d: Second signature determination means
14e: header information analysis means
15: touch screen
16: storage
Claims (5)
APK 파일을 분석하여 상기 APK 파일에서 classes.dex 파일 데이터의 위치를 탐색하는 제 1 단계;
상기 탐색된 classes.dex 파일 데이터로부터 classes.dex 파일 고유정보를 획득하는 제 2 단계;
상기 획득된 classes.dex 파일 고유정보를 1차 시그니처로 설정하여, 상기 APK 파일이 악성코드인지 여부를 판단하는 제 3 단계;
상기 1차 시그니처에 의한 판단결과 악성코드로 판단되면 미리 설정된 악성코드 처리를 수행하는 제 4 단계;
를 포함하여 구성되는 안드로이드 운영체제에서 APK 파일의 시그니처 추출 방법.
As a signature extraction method of APK file for detecting malicious or variant applications on Android operating system,
A first step of analyzing a APK file to search for locations of classes.dex file data in the APK file;
A second step of acquiring classes.dex file peculiar information from the retrieved classes.dex file data;
A third step of determining whether the APK file is a malicious code by setting the acquired classes.dex file unique information as a primary signature;
A fourth step of performing a predetermined malicious code process when it is determined that the malicious code is a result of the determination by the primary signature;
Signature extraction method of the APK file in the Android operating system is configured to include.
상기 탐색된 classes.dex 파일 데이터에서 헤더 영역을 식별하는 제 5 단계;
상기 식별된 classes.dex 헤더 영역에 대한 압축을 해제하는 제 6 단계;
상기 압축 해제된 classes.dex 헤더 영역으로부터 필드 포맷에 따른 해쉬값을 획득하는 제 7 단계;
상기 획득된 해쉬값을 2차 시그니처로 설정하여, 상기 APK 파일이 악성코드인지 여부를 판단하는 제 8 단계;
상기 2차 시그니처에 의한 판단결과 악성코드로 판단되면 미리 설정된 악성코드 처리를 수행하는 제 9 단계;
을 더 포함하여 구성되는 안드로이드 운영체제에서 APK 파일의 시그니처 추출 방법.
The method according to claim 1,
A fifth step of identifying a header area in the retrieved classes.dex file data;
A sixth step of decompressing the identified classes.dex header area;
A seventh step of obtaining a hash value according to a field format from the decompressed classes.dex header area;
An eighth step of determining whether the APK file is a malicious code by setting the obtained hash value as a secondary signature;
A ninth step of performing a preset malicious code process when it is determined that the malicious code is a malicious code;
Signature extraction method of the APK file in the Android operating system is configured to include more.
상기 classes.dex 파일 고유정보는 CRC 정보, 상기 APK 파일의 압축전 파일크기 정보와 압축후 파일크기 정보 중 하나 이상을 포함하여 구성되는 것을 특징으로 하는 안드로이드 운영체제에서 APK 파일의 시그니처 추출 방법.
The method according to claim 2,
The classes.dex file peculiar information may include at least one of CRC information, pre-compression file size information, and post-compression file size information of the APK file.
상기 classes.dex 헤더 영역은 상기 압축 해제된 이후의 classes.dex 파일 데이터의 전단 32 바이트이고,
상기 해쉬값은 상기 classes.dex 헤더 영역에서 후단의 20 바이트에 해당하는 SHA-1 값을 포함하여 구성된 것을 특징으로 하는 안드로이드 운영체제에서 APK 파일의 시그니처 추출 방법.
The method of claim 3,
The classes.dex header area is 32 bytes before the decompressed classes.dex file data;
The hash value is a signature extraction method of the APK file in the Android operating system, characterized in that comprises a SHA-1 value corresponding to the last 20 bytes in the classes.dex header area.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120097838A KR101383010B1 (en) | 2012-09-04 | 2012-09-04 | Method of obtaining signature of apk files for android operating system, and computer-readable recording medium for the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120097838A KR101383010B1 (en) | 2012-09-04 | 2012-09-04 | Method of obtaining signature of apk files for android operating system, and computer-readable recording medium for the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140030989A true KR20140030989A (en) | 2014-03-12 |
KR101383010B1 KR101383010B1 (en) | 2014-04-07 |
Family
ID=50643320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120097838A KR101383010B1 (en) | 2012-09-04 | 2012-09-04 | Method of obtaining signature of apk files for android operating system, and computer-readable recording medium for the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101383010B1 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104318161A (en) * | 2014-11-18 | 2015-01-28 | 北京奇虎科技有限公司 | Virus detection method and device for Android samples |
WO2016078130A1 (en) * | 2014-11-18 | 2016-05-26 | 刘鹏 | Dynamic loading method for preventing reverse of apk file |
CN106201567A (en) * | 2015-05-08 | 2016-12-07 | 小米科技有限责任公司 | Obtain the method and device of application message |
KR101857001B1 (en) * | 2017-03-03 | 2018-05-14 | 숭실대학교산학협력단 | Android dynamic loading file extraction method, recording medium and system for performing the method |
CN108182362A (en) * | 2016-12-08 | 2018-06-19 | 武汉安天信息技术有限责任公司 | A kind of more dex file analyses method and system |
CN109922037A (en) * | 2018-12-28 | 2019-06-21 | 深圳豪客互联网有限公司 | A kind of application security recognition methods and device |
CN109981283A (en) * | 2019-02-28 | 2019-07-05 | 西安理工大学 | Android platform message-driven core code integrity detection system and method |
CN111368267A (en) * | 2020-03-17 | 2020-07-03 | 山东云缦智能科技有限公司 | Android application code protection method |
CN112286974A (en) * | 2020-12-24 | 2021-01-29 | 北京邮电大学 | APK compression storage, reduction and retrieval method and related equipment |
CN113419734A (en) * | 2021-06-17 | 2021-09-21 | 网易(杭州)网络有限公司 | Application program reinforcing method and device and electronic equipment |
US11436331B2 (en) | 2020-01-16 | 2022-09-06 | AVAST Software s.r.o. | Similarity hash for android executables |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111840A (en) * | 2014-08-06 | 2014-10-22 | 浪潮软件股份有限公司 | Method for generating APK installation package under non-Android environment |
CN107122629B (en) * | 2017-04-19 | 2017-12-26 | 山东省计算中心(国家超级计算济南中心) | It is a kind of that reinforcement means is cooperateed with based on the Android software obscured at random |
US11620378B2 (en) * | 2019-11-27 | 2023-04-04 | Data Security Technologies LLC | Systems and methods for proactive and reactive data security |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101161493B1 (en) | 2010-01-18 | 2012-06-29 | (주)쉬프트웍스 | Method of Examining Malicious Codes and Dangerous Files in Android Terminal Platform |
KR101249739B1 (en) | 2010-07-13 | 2013-04-03 | 주식회사 인프라웨어테크놀러지 | Method for loading java class in terminal loading Dalvik Virtual Machine, and Computer-readable recording medium for the same |
-
2012
- 2012-09-04 KR KR1020120097838A patent/KR101383010B1/en not_active IP Right Cessation
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016078130A1 (en) * | 2014-11-18 | 2016-05-26 | 刘鹏 | Dynamic loading method for preventing reverse of apk file |
CN104318161A (en) * | 2014-11-18 | 2015-01-28 | 北京奇虎科技有限公司 | Virus detection method and device for Android samples |
CN106201567A (en) * | 2015-05-08 | 2016-12-07 | 小米科技有限责任公司 | Obtain the method and device of application message |
CN108182362B (en) * | 2016-12-08 | 2022-01-07 | 武汉安天信息技术有限责任公司 | Multi-dex file analysis method and system |
CN108182362A (en) * | 2016-12-08 | 2018-06-19 | 武汉安天信息技术有限责任公司 | A kind of more dex file analyses method and system |
KR101857001B1 (en) * | 2017-03-03 | 2018-05-14 | 숭실대학교산학협력단 | Android dynamic loading file extraction method, recording medium and system for performing the method |
US10372444B2 (en) | 2017-03-03 | 2019-08-06 | Foundation Of Soongsil University-Industry Cooperation | Android dynamic loading file extraction method, recording medium and system for performing the method |
CN109922037A (en) * | 2018-12-28 | 2019-06-21 | 深圳豪客互联网有限公司 | A kind of application security recognition methods and device |
CN109981283A (en) * | 2019-02-28 | 2019-07-05 | 西安理工大学 | Android platform message-driven core code integrity detection system and method |
US11436331B2 (en) | 2020-01-16 | 2022-09-06 | AVAST Software s.r.o. | Similarity hash for android executables |
CN111368267A (en) * | 2020-03-17 | 2020-07-03 | 山东云缦智能科技有限公司 | Android application code protection method |
CN112286974A (en) * | 2020-12-24 | 2021-01-29 | 北京邮电大学 | APK compression storage, reduction and retrieval method and related equipment |
CN113419734A (en) * | 2021-06-17 | 2021-09-21 | 网易(杭州)网络有限公司 | Application program reinforcing method and device and electronic equipment |
Also Published As
Publication number | Publication date |
---|---|
KR101383010B1 (en) | 2014-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101383010B1 (en) | Method of obtaining signature of apk files for android operating system, and computer-readable recording medium for the same | |
KR101162051B1 (en) | Using string comparison malicious code detection and classification system and method | |
JP5694473B2 (en) | Repackaging application analysis system and method through risk calculation | |
WO2017190620A1 (en) | Virus detection method, terminal and server | |
KR20160082644A (en) | Method and apparatus for detecting malware by code block classification | |
CN107247902B (en) | Malicious software classification system and method | |
US20150256552A1 (en) | Imalicious code detection apparatus and method | |
US10409987B2 (en) | System and method for adaptive modification of antivirus databases | |
KR20150044490A (en) | A detecting device for android malignant application and a detecting method therefor | |
KR101582601B1 (en) | Method for detecting malignant code of android by activity string analysis | |
KR101110308B1 (en) | Apparatus and method for detecting malicious code using packed file properties | |
JP6000465B2 (en) | Process inspection apparatus, process inspection program, and process inspection method | |
KR20130134790A (en) | Method and system for storing the integrity information of application, method and system for checking the integrity of application | |
CN105718795A (en) | Malicious code evidence obtaining method and system on the basis of feature code under Linux | |
WO2015135286A1 (en) | Method and device for extracting pe file feature | |
CN105809034A (en) | Malicious software identification method | |
KR101585139B1 (en) | Webshell detection apparatus having a fuction of analyzing whether webshell detection is correct or not, and method for analyzing whether webshell detection is correct or not thereof | |
JP5608849B2 (en) | How to get digital fingerprint of malicious document file | |
KR101308228B1 (en) | Method for automatic detecting malware code | |
KR101327740B1 (en) | apparatus and method of collecting action pattern of malicious code | |
KR20160100887A (en) | Method for detecting malware by code block comparison | |
CN111027072B (en) | Kernel Rootkit detection method and device based on elf binary standard analysis under Linux | |
KR101895876B1 (en) | System and method for detecting malicious of application, recording medium for performing the method | |
KR101725399B1 (en) | Apparatus and method for detection and execution prevention for malicious script based on host level | |
RU2014121039A (en) | SYSTEM AND METHOD FOR DETECTING MALICIOUS FILES OF A SPECIFIC TYPE |
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: 20170308 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180402 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |