KR20160090566A - Apparatus and method for detecting APK malware filter using valid market data - Google Patents
Apparatus and method for detecting APK malware filter using valid market data Download PDFInfo
- Publication number
- KR20160090566A KR20160090566A KR1020150010522A KR20150010522A KR20160090566A KR 20160090566 A KR20160090566 A KR 20160090566A KR 1020150010522 A KR1020150010522 A KR 1020150010522A KR 20150010522 A KR20150010522 A KR 20150010522A KR 20160090566 A KR20160090566 A KR 20160090566A
- Authority
- KR
- South Korea
- Prior art keywords
- apk
- apk file
- target
- file
- actual data
- 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
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
본 발명은 APK 악성코드 검사를 위한 장치 및 방법에 관한 것으로, 특히 기존의 정적, 동적분석을 하지 않아도 온라인상의 데이터를 이용하여 APK 파일의 악성이나 무고성을 판단할 수 있는 검사 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for examining an APK malicious code, and more particularly, to an apparatus and method for determining malicious or non-maliciousness of an APK file using online data without performing an existing static or dynamic analysis will be.
전 세계적으로 스마트폰이 아주 빠르게 보급되고 있으며, 2013년 기준 휴대전화 보급률은 전 세계 인구의 약 61%, 대략 43억 명이고, 이중 16억 명 정도가 스마트폰을 사용하고 있다.Smartphones are spreading rapidly around the world. By 2013, mobile phone penetration is about 4.3% of the world's population, about 1.6 billion people are using smartphones.
이러한 스마트폰의 기능이 사용자의 생활에 가까워질수록 서비스를 제공하기 위해 요구되는 정보 또한 사용자와 밀접한 관계를 가지게 된다. 만약 이러한 민감한 정보들이 안전하게 보호되지 않은 채 사용된다면, 사용자들은 개인정보 유출이나 재산피해 등을 야기할 수 있다. 실재로 스토킹앱이나 스마트TV해킹으로 다른 사용자의 사생활을 훔쳐보거나, 스미싱, 파밍공격으로 금전적인 피해를 입히는 사례가 폭발적으로 증가하고 하고 있다. 이러한 공격은 개인의 수준을 넘어 사회적인 위협도 초래할 수 있다. As the functions of the smartphone become closer to the user's life, the information required to provide the service is also closely related to the user. If such sensitive information is used without being protected safely, users may cause personal information leakage or property damage. In fact, there has been an explosion in cases of stalking other users' private lives with stalking apps or smart TV hacks, or financially damaging smsing and pharming attacks. These attacks can also lead to social threats beyond individual levels.
스마트폰을 대상으로 한 공격을 막기 위해 OS 에는 자체적으로 보안장치들이 존재하고 운용이 되고 있다. 따라서 정상적인 사용 환경에서 공격자가 시스템의 취약점을 찾는 것은 쉽지 않은 작업이며, 발견되는 취약점 또한 업데이트를 통해 지속적으로 패치가 이루어짐에 따라 시스템 취약점을 이용하는 공격 방법은 쉽게 이루어지지 않고 있다. 따라서 대부분의 공격은 피해자의 단말기에 악성 애플리케이션을 설치하게끔 사용자를 유도하여 이루어지게 된다.In order to prevent attacks targeting smartphones, security devices exist and operate in the OS itself. Therefore, it is not easy for the attacker to find the vulnerability of the system under normal usage environment, and as the patch is continuously updated through the update, the attack method using the system vulnerability is not easily done. Therefore, most of the attacks are made by inducing users to install malicious applications on the victim's terminal.
스마트폰을 공격하기 위한 악성 애플리케이션의 유포는 스미싱이나 Drive By Download, 혹은 정상 애플리케이션으로 가장하여 설치를 유도하는 방법으로 이루어지게 된다. 제한된 경로를 통한 유포에도 불구하고 스마트폰은 사용자들이 항상 휴대하며, 주기적으로 확인한다는 특성 때문에 유포속도는 엄청나고 있다.The spread of malicious applications to attack smartphones can be done by way of sneezing, Drive By Download, or by pretending to be a normal application. In spite of the spreading through limited paths, the speed of dissemination is enormous due to the fact that smartphones are always carried and periodically checked by users.
또한 이러한 악성 애플리케이션은 유포속도와 그 종류만 상승세에 있는 것이 아니라 탐지도 점점 어려워지고 있다. In addition, such malicious applications are not only increasing in speed and type, but also becoming increasingly difficult to detect.
기존에 이러한 악성코드를 분석하는 방법으로 정적분석 방식과 동적분석 방식이 있다. There are static analysis method and dynamic analysis method as a method of analyzing such malicious code in the past.
상기 정적분석 방식은 프로그램을 실행하지 않고 분석하는 방식으로, 크게 화이트-박스와 블랙-박스 두 가지로 세분된다. 화이트-박스는 소스파일까지 가지고 분석하는 방식이고, 블랙-박스는 오로지 바이너리만 가지고 수행하는 방식이다. 안드로이드 애플리케이션은 자바를 기반해서 만들어지기 때문에 APK 파일은 언패키징(unpackage)해 dex파일을 추출하여 디컴파일(decompile)하게 되면 다소 난독화는 되어 있지만 소스코드에 비슷한 형태로 만들 수 있다. The static analysis method is a method of analyzing without executing a program, and is roughly divided into a white-box and a black-box. White-box is a method of analyzing a source file, and black-box is a method of performing only binary. Because Android applications are built on Java, APK files are unpacked and extracted and decompiled, making them somewhat obfuscated but similar to source code.
따라서 이러한 특성 때문에 APK 정적분석은 black-box 환경만 주어져도 white-box와 유사한 접근을 시도할 수 있게 되고 윈도우의 PE포맷이나 리눅스의 ELF포맷에 비하면 분석하기가 쉽게 된다. C&C 서버 주소나 위험한 시스템 콜(system call)과 같은 문자열이 프로그램에서 검색하는 비교적 간단한 작업부터, 복잡한 API 추적까지 다양한 기술을 사용하여 분석하게 된다. 그러나 정적분석은 자동화에 한계가 있고, 악성을 판단하는 패턴을 사람이 분석하고 정의해 주어야 하기 때문에 유지와 보수를 하는데 많은 인적자원이 필요하다는 문제점이 있다.Therefore, APK static analysis can try similar approach to white-box even if it is given only in black-box environment, and it is easy to analyze compared to Windows PE format or Linux ELF format. C & C server addresses, or dangerous system calls, are analyzed using a variety of techniques, from relatively simple tasks in the program to sophisticated API traces. However, static analysis has limitations in automation, and human analysis and definition of malicious patterns must be defined, which requires a lot of human resources to maintain and repair.
또한 APK 동적분석은 프로그램을 직접 실행하고 조작하여 컴퓨터 내부의 동작을 감시하고 분석하는 방식으로, 안드로이드의 경우 리눅스 커널을 기반으로 Dalvik VM이 구동되고, 이 VM 위에서 애플리케이션이 작동하는 구조로 이루어져 있다. 따라서 분석을 하기 위해 실재 안드로이드 단말기나 시뮬레이터에 검사할 애플리케이션을 설치하고 실행 및 조작하여 Dalvic VM의 동작, 로그(log)내역, 커널(kernel)의 동작을 감시하고 악의적인 행동을 하지 않는지 분석하여 악성 애플리케이션임을 판단하여야 한다. In addition, APK dynamic analysis is a method of monitoring and analyzing the operation inside the computer by directly executing and manipulating the program. In the case of Android, the Dalvik VM is operated based on the Linux kernel, and the application is operated on this VM. Therefore, in order to perform the analysis, it is necessary to install, run and manipulate the application to be checked in the real Android terminal or simulator to monitor the operation of Dalvic VM, the log history, and the operation of the kernel, Application.
이처럼 APK 동적분석 방법에는 기본적으로 실재 단말이나 가상머신을 운용해야 하기 때문에 필요로 하는 컴퓨팅 자원이 앞서 소개한 정적분석 방식에 비해 상당히 큰 문제점이 있다.In this way, since the APK dynamic analysis method basically requires the real terminal or the virtual machine to operate, the computing resources required are considerably larger than the static analysis method introduced above.
이처럼 정적, 동적분석 방법의 한계를 극복하려는 움직임으로 머신러닝(machine learning)을 활용한 방법도 활발히 연구되고 있다. 이는 기계학습을 이용하면 많은 부분을 자동화할 수 있게 되고 설계시점에서 분석자가 신경 쓰지 못한 히든 피쳐(hidden feature)도 찾을 수 있다는 장점이 있다. 하지만 기계학습을 사용하려면 상당히 많은 연산량을 필요로 하기 때문에 운용비용이 증가하며, 유지보수가 잘못된다면 연산량이 점점 커져 지속적인 운영이 불가능해질 수 있다. 또한 기계학습의 특성상 충분히 많은 학습을 하지 않았을 때의 신뢰도가 상당히 떨어지며, 유지보수와 최적화에 큰 비용을 투자하더라도 오탐지율을 낮추는데 한계가 있다.In order to overcome the limitations of the static and dynamic analysis methods, a method using machine learning has been actively studied. This has the advantage of being able to automate many parts using machine learning and also to find hidden features that the analyst does not care at design time. However, using machine learning increases the operation cost because it requires a large amount of computation, and if the maintenance is wrong, the computation amount becomes large and continuous operation becomes impossible. In addition, due to the nature of machine learning, reliability is low when there is not enough learning and there is a limit to lowering the false positive rate even if a great deal of money is invested in maintenance and optimization.
특히, 악성코드 판별처럼 공격 방법이 계속 바뀌는 환경에서 기계학습 모듈을 유지 보수하는 일은 결코 쉬운 일이 아니며 오탐지율 문제를 해결하기 위해서는 아직 많은 연구가 필요한 상황이다.Especially, it is not easy to maintain the machine learning module in an environment in which the attack method is continuously changed, such as malicious code discrimination, and a lot of studies are still required to solve the false-positive rate problem.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 네트워크를 사용할 수 있는 환경에서 적은 컴퓨팅 자원으로 높은 신뢰성을 얻는 검사 결과를 제공하고, 백신이 잡아내지 못하는 유포 초기의 신규 악성코드를 판별할 수 있는 유효마켓 데이터를 이용한 APK 악성코드 검사 장치 및 방법을 제공하는데 그 목적이 있다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made in an effort to solve the above problems, and it is an object of the present invention to provide a test result that obtains high reliability with less computing resources in an environment in which a network can be used and discriminate a new malicious code The present invention provides an apparatus and method for inspecting an APK malicious code using available market data.
본 발명의 다른 목적은 정상경로로 배포되는 애플리케이션의 정보를 조회할 수 있다는 플랫폼 특성을 통해 애플리케이션의 악성(malicious) 여부뿐만 아니라 무고성(innocence) 또한 판단할 수 있는 유효마켓 데이터를 이용한 APK 악성코드 검사 장치 및 방법을 제공하는데 있다.It is another object of the present invention to provide an APK malicious code using effective market data that can determine not only whether an application is malicious but also innocence through a platform characteristic that information of an application distributed in a normal path can be inquired, And an inspection apparatus and method.
본 발명의 다른 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.Other objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사 장치의 특징은 블랙마켓, Third party 마켓, 웹(Web)을 포함하는 신뢰할 수 없는 APK 출처에서 수집되는 검사의 대상 APK 파일로부터 추출된 메타 데이터(Meta-Data) 및 상기 추출된 메타 데이터의 패키지명을 기반으로 구글 플레이로 대변되는 신뢰기관에서 수집되는 무고성(innocence)을 갖는 대상 APK 파일의 실제 데이터(Live-Data)를 서로 비교하여 대상 APK 파일의 악성여부를 판별하는 것을 특징으로 한다.In order to accomplish the above object, an apparatus for inspecting an APK malicious code using effective market data according to the present invention is a device for inspecting an APK malicious code which is collected from an untrusted APK source including a black market, a third party market, The live data of a target APK file having innocence collected in a trust institution represented by Google Play based on metadata extracted from the APK file (Meta-Data) and the package name of the extracted metadata, Data) are compared with each other to determine whether the target APK file is malicious.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사 장치의 다른 특징은 신뢰할 수 없는 APK 출처에서 수집되는 대상 APK 파일에서 메타 데이터를 추출하는 APK 분리부와, 상기 APK 분리부에서 추출된 대상 APK 파일의 메타 데이터에 포함된 패키지명을 기반으로 신뢰기관으로부터 무고성(innocence)을 갖는 대상 APK 파일의 실제 데이터를 수집하는 실제 데이터 입력부와, 상기 APK 분리부에서 추출된 대상 APK 파일의 메타 데이터를 상기 실제 데이터 입력부에서 수집된 무고성을 갖는 대상 APK 파일의 실제 데이터와 서로 비교하여 상기 수집된 대상 APK 파일의 악성여부를 판별하는 필터 매니저와, 상기 필터 매니저에서 판별된 검사 결과를 출력하는 검사결과 출력부를 포함하여 구성되는데 있다.According to another aspect of the present invention, there is provided an apparatus for inspecting an APK malicious code using effective market data, comprising: an APK separator for extracting meta data from a target APK file collected at an unreliable APK source; An actual data input unit for collecting actual data of a target APK file having innocence from a trusted authority based on the package name included in the meta data of the target APK file extracted by the separating unit; A filter manager for comparing the meta data of the target APK file with the actual data of the target APK file having the anomalousness collected from the actual data input unit to determine whether the collected target APK file is malicious or not; And a test result output unit for outputting test results.
바람직하게 상기 실제 데이터 입력부에서 수집되는 실제 데이터는 APK 분리부에서 추출된 메타 데이터의 패키지명을 기반으로 생성된 URL로 신뢰기관에 요청하여 얻는 것을 특징으로 한다.Preferably, the actual data collected by the actual data input unit is obtained by requesting the trusted authority from the URL generated based on the package name of the metadata extracted by the APK separator.
바람직하게 상기 메타 데이터 및 실제 데이터는 패키지명, 버전이름, 버전코드, 앱의 파일크기, 앱 요청 권한, APK 파일 내부해시 정보 중 적어도 하나를 포함하는 것을 특징으로 한다.Preferably, the meta data and the actual data include at least one of a package name, a version name, a version code, a file size of an app, an application request permission, and an APK file internal resolution information.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사 방법의 특징은 (A) 신뢰할 수 없는 APK 출처를 통해 검사 대상의 APK 파일이 입력되면, APK 분리부를 통해 입력되는 대상 APK 파일에서 메타 데이터를 추출하는 단계와, (B) 실제 데이터 입력부를 통해 상기 대상 APK 파일로부터 추출된 메타 데이터에 포함된 패키지명을 기반으로 신뢰기관으로부터 무고성(innocence)을 갖는 대상 APK 파일의 실제 데이터(Live-Data)를 수집하는 단계와, (C) 필터 매니저를 통해 상기 대상 APK 파일에서 추출된 메타 데이터와 무고성을 갖는 APK 파일의 실제 데이터를 서로 비교하는 단계와, (D) 상기 비교 결과를 기반으로 대상 APK 파일의 악성 및 무고성 여부를 판단하는 단계를 포함하여 이루어지는데 있다.According to another aspect of the present invention, there is provided a method for inspecting an APK malicious code using effective market data, the method comprising: (A) inputting an APK file to be inspected through an unreliable APK source; The method comprising the steps of: extracting metadata from a target APK file; (B) extracting metadata from a target APK file having an innocence from a trusted authority based on a package name included in metadata extracted from the target APK file through an actual data input unit; (C) comparing the metadata extracted from the target APK file with the actual data of the APK file having no anomaly through a filter manager, and (D) And determining whether the target APK file is malicious or not based on the comparison result.
바람직하게 상기 메타 데이터 및 실제 데이터는 패키지명, 버전이름, 버전코드, 앱의 파일크기, 앱 요청 권한, APK 파일 내부해시 정보 중 적어도 하나를 포함하는 것을 특징으로 한다.Preferably, the meta data and the actual data include at least one of a package name, a version name, a version code, a file size of an app, an application request permission, and an APK file internal resolution information.
바람직하게 상기 (A) 단계는 대상 APK 파일의 포맷을 분리(depack)하여 분석하는 단계와, 상기 분리된 내부 파일에서 대상 APK 파일의 메타 데이터를 추출하는 단계를 포함하여 이루어지는 것을 특징으로 한다.Preferably, the step (A) includes a step of analyzing and analyzing a format of a target APK file, and a step of extracting metadata of a target APK file from the separated internal file.
바람직하게 상기 (B) 단계는 APK 분리부에서 추출한 대상 APK 파일의 메타 데이터 패키지명을 가지고 생성한 URL을 HTTP 요청하거나, 마켓의 API, 혹은 질의 시스템, 혹은 이에 준하는 신뢰기관의 인터페이스를 이용하여 상기 대상 APK 파일의 실제 데이터(Live-Data)를 수집하는 것을 특징으로 한다.Preferably, in the step (B), the URL generated with the metadata package name of the target APK file extracted by the APK separating unit is transmitted through an HTTP request, an API of the market, a query system, And collects actual data (Live-Data) of the target APK file.
이상에서 설명한 바와 같은 본 발명에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사 장치 및 방법은 많은 연산량과 인적자원이 필요한 정적, 동적분석 방식을 이용하지 않아도 신뢰도 높은 결과를 낼 수 있으며, 필요한 연산량도 정적, 동적분석 방식에 비해 매우 적은 효과가 있다.As described above, the APK malicious code checking apparatus and method using the available market data according to the present invention can produce reliable results without using static and dynamic analysis methods requiring a large amount of computation and human resources, , There is very little effect compared with the dynamic analysis method.
이러한 경량성 때문에 스마트폰과 같이 배터리와 성능이 제한된 기기(소형, 저사양 단말기)에서 응용하여 악성 애플리케이션의 설치를 억제할 수 있다.Because of its light weight, it can be applied to devices with limited battery and performance (such as smartphones) (small, low-end handsets), which can suppress the installation of malicious applications.
또한, 악성 애플리케이션 판단을 위한 정보를 얻기 위한 원본 애플리케이션을 수집, 분석하는 중앙 서버가 필요 없기 때문에 서비스 구축에 드는 비용을 절감할 수 있다.In addition, since a central server for collecting and analyzing original applications for obtaining malicious application determination information is not needed, the cost of service construction can be reduced.
아울러, 원본 APK 수집을 하지 않으므로 유료 애플리케이션처럼 위장한 악성 코드의 원본 애플리케이션을 구입하는데 필요한 추가 비용 없이 분석할 수 있다. In addition, because the original APK is not collected, it can be analyzed at no additional cost to purchase the original application of malicious code, which is disguised as a paid application.
도 1 은 본 발명의 실시예에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사를 위한 전체 시스템을 나타낸 블록도
도 2 는 도 1의 APK 악성코드 검사장치(100)의 내부 구성을 보다 상세히 나타낸 블록도
도 3 은 본 발명의 실시예에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사 방법을 설명하기 위한 흐름도
도 4 는 본 발명에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사 방법에 따라 안드로이드 디바이스에 탐재되어 동작할 때를 설명하기 위한 도면1 is a block diagram illustrating an entire system for inspecting an APK malicious code using effective market data according to an embodiment of the present invention;
2 is a block diagram showing in more detail the internal configuration of the APK
3 is a flowchart illustrating an APK malicious code inspecting method using effective market data according to an embodiment of the present invention.
FIG. 4 is a diagram for explaining a case where an APK malicious code inspection method using effective market data according to the present invention is searched and operated on an Android device
본 발명의 다른 목적, 특성 및 이점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the detailed description of the embodiments with reference to the accompanying drawings.
본 발명에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사 장치 및 방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of an apparatus and method for inspecting an APK malicious code using effective market data according to the present invention will now be described with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. It is provided to let you know. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention and are not intended to represent all of the technical ideas of the present invention. Therefore, various equivalents It should be understood that water and variations may be present.
도 1 은 본 발명의 실시예에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사를 위한 전체 시스템을 나타낸 블록도이다.1 is a block diagram illustrating an overall system for inspecting an APK malicious code using effective market data according to an embodiment of the present invention.
도 1에서 도시하고 있는 것과 같이, APK 악성코드 검사장치(100)는 블랙마켓, Third party 마켓, 웹(Web)을 포함하는 신뢰할 수 없는 APK 출처(20)에서 수집되는 검사의 대상 APK 파일로부터 추출된 메타 데이터(Meta-Data) 및 상기 추출된 메타 데이터의 패키지명을 기반으로 구글 플레이로 대변되는 신뢰기관(10)에서 수집되는 무고성(innocence)을 갖는 대상 APK 파일의 실제 데이터(Live-Data)를 서로 비교하여 대상 APK 파일의 악성여부를 판별한다. 이때, 상기 신뢰기관(10)은 구현자가 신뢰기관을 무엇으로 정하느냐에 따라 달라지며, 복수의 신뢰기관도 사용할 수 있다.
As shown in FIG. 1, the APK
도 2 는 도 1의 APK 악성코드 검사장치(100)의 내부 구성을 보다 상세히 나타낸 블록도이다.2 is a block diagram showing an internal configuration of the APK
도 2에서 도시하고 있는 것과 같이, APK 악성코드 검사장치(100)는 신뢰할 수 없는 APK 출처(20)에서 수집되는 대상 APK 파일에서 메타 데이터를 추출하는 APK 분리부(110)와, 상기 APK 분리부(100)에서 추출된 대상 APK 파일의 메타 데이터에 포함된 패키지명을 기반으로 신뢰기관(10)으로부터 무고성(innocence)을 갖는 대상 APK 파일의 실제 데이터를 수집하는 실제 데이터 입력부(120)와, 상기 APK 분리부(110)에서 추출된 대상 APK 파일의 메타 데이터를 상기 실제 데이터 입력부(120)에서 수집된 무고성을 갖는 대상 APK 파일의 실제 데이터와 서로 비교하여 상기 수집된 대상 APK 파일의 악성여부를 판별하는 필터 매니저(130)와, 상기 필터 매니저(130)에서 판별된 검사 결과를 출력하는 검사결과 출력부(140)로 구성된다.As shown in FIG. 2, the APK
이때, 상기 실제 데이터 입력부(120)에서 수집되는 실제 데이터는 APK 분리부(110)에서 추출한 대상 APK 파일의 메타 데이터 패키지명을 가지고 생성한 URL을 HTTP 요청하여 얻거나, 마켓의 API, 혹은 질의 시스템, 혹은 이에 준하는 신뢰기관의 인터페이스를 이용하여 얻게 되며, 상기 필터 매니저(130)는 APK 분리부(110), 실제 데이터 입력부(120)를 운용하고 검사 결과를 결정지으며, 운용 정책을 관리한다.At this time, the actual data collected by the actual
그리고 상기 메타 데이터 및 실제 데이터는 패키지명, 버전이름, 버전코드, 앱의 파일크기, 앱 요청 권한, APK 파일 내부해시 정보를 포함한다.The metadata and actual data include package name, version name, version code, file size of an app, application request authority, and APK file internal dissolution information.
이처럼 상기 APK 악성코드 검사장치(100)는 기존의 방식과 다르게 서버에서 검사 가능한 애플리케이션을 모두 다운로드 받아 분석하여 생성한 시그니쳐를 사용하는 것이 아니라 신뢰기관(10)으로부터 대상 APK 파일의 무고성이 보장된 실제 데이터(Live-Data)를 수집하여 검사의 대상이 되는 APK 파일을 분석함으로써 수집 및 분석 서버가 필요 없다. 또한 상기 실제 데이터를 이용한 분석을 통해 기존 오버헤드가 큰 동적분석을 하지 않아 종래에는 수집하여 분석할 수 없었던 유료 애플리케이션까지 검사할 수 있다. 대부분 악성애플리케이션이 유료 애플리케이션인 것처럼 위장한다는 점을 감안하면, APK 파일을 직접 수집해야 하는 방식은 실용하기 어려운 상태이지만 본 발명은 이러한 제약이 없게 된다.
As described above, the APK malicious
이와 같이 구성된 본 발명에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사 장치의 동작을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다. 도 1 또는 도 2와 동일한 참조부호는 동일한 기능을 수행하는 동일한 부재를 지칭한다. The operation of the apparatus for inspecting an APK malicious code using the valid market data according to the present invention will now be described in detail with reference to the accompanying drawings. Like reference numerals in FIG. 1 or FIG. 2 denote the same members performing the same function.
도 3 은 본 발명의 실시예에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating an APK malicious code checking method using effective market data according to an embodiment of the present invention.
도 3에서 도시하고 있는 것과 같이, 먼저 사용자 스마트폰으로 블랙마켓, 웹(Web)을 포함하는 신뢰할 수 없는 APK 출처(20)로부터 다운로드 또는 인스톨을 통해 수집되는 검사의 대상이 되는 APK 파일이 입력되면(S10), APK 분리부(110)를 통해 상기 입력되는 대상 APK 파일로부터 메타 데이터(Meta-Data)를 추출한다(S20). 즉, 대상 APK 파일의 포맷을 분리(depack)하여 분석함으로써 얻어진 내부 파일들을 통해 상기 입력되는 대상 APK 파일의 메타 데이터를 얻게 된다.As shown in FIG. 3, when an APK file to be inspected, which is collected through downloading or installation from an
상기 APK 분리부(110)에서 대상 APK 파일의 메타 데이터를 추출하는 일 실시예로서, 대상 APK 파일을 분리(depack)하여 대상 APK 파일 내부 파일들을 검출하고, 이때 검출된 리스트와 해쉬(hash)를 기반으로 오픈소스로 배포되는 APK 인스펙터(inspector)나 APK 툴(tool)에 인터페이스를 구현하여 상기 대상 APK 파일의 메타 데이터를 추출한다. 그러나 이는 구현을 위한 구체적인 예로서, 이에 한정되는 것이 아님에 주의하여야 한다.In one embodiment of extracting the metadata of the target APK file from the
이어, 실제 데이터 입력부(120)를 통해 상기 대상 APK 파일로부터 추출된 메타 데이터에 포함된 패키지명을 기반으로 생성된 URL로 구글 플레이로 대변되는 신뢰기관(10)에 요청하여 무고성(innocence)을 갖는 대상 APK 파일의 실제 데이터(Live-Data)를 수집한다(S30). 즉, 상기 대상 APK 파일의 무고성(innocence)을 갖는 실제 데이터의 수집은 APK 분리부(110)에서 추출한 대상 APK 파일의 메타 데이터 패키지명을 가지고 생성한 URL을 HTTP 요청하거나, 마켓의 API, 혹은 질의 시스템, 혹은 이에 준하는 신뢰기관의 인터페이스를 이용하여 얻게된다. Then, a request is made to the
일 실시예로서, HTTP 요청은 'http://play.google.com/story/apps/ details?id=PACKAGENAME'처럼 URL을 만들어 접속하면 된다.In one embodiment, an HTTP request can be made by creating a URL such as 'http://play.google.com/story/apps/ details? Id = PACKAGENAME'.
이때, 상기 메타 데이터 및 실제 데이터는 패키지명, 버전이름, 버전코드, 앱의 파일크기, 앱 요청 권한, APK 파일 내부해시 정보를 포함한다.
At this time, the metadata and actual data include a package name, a version name, a version code, a file size of an app, an app request permission, and an APK file internal resolution information.
그리고 상기 실제 데이터를 수집하고 나서도 문제인데, 특히 승인(permission) 같은 정보는 안드로이드(android)에서 사용하는 상용구로 사용되지 않고 사람이 이해하기 쉬운 문장으로 번역되어 있기 때문에 사전(dictionary)을 만들어 변환을 해주어야 상기 APK 분리부(110)에서 대상 APK 파일을 통해 추출된 메타 데이터와 비교가 가능하다.
It is also a problem after collecting the actual data. Especially, since the information such as permission is not used as an orphan word used by android, it is translated into a human-readable sentence. Therefore, The
이처럼 대상 APK 파일의 무고성(innocence)을 갖는 실제 데이터 수집이 완료되면, 필터 매니저(130)를 통해 상기 대상 APK 파일에서 추출된 메타 데이터와 무고성을 갖는 APK 파일의 실제 데이터를 서로 비교한다(S40). When the actual data collection with innocence of the target APK file is completed, the metadata extracted from the target APK file and the actual data of the APK file having no anchor are compared with each other through the
그리고 필터 매니저(130)는 상기 비교 결과를 기반으로 메타 데이터와 실제 데이터가 동일하거나 또는 검사시스템의 정책에 적용되면(S50) 대상 APK 파일이 무고한 것으로 판단하고(S60), 메타 데이터와 실제 데이터가 서로 동일하지 않거나, 또는 검사시스템의 정책에 반하게 되면(S50) 대상 APK 파일이 악성인 것으로 최종 판단하게 된다(S70). 이처럼 최신이 아닌 버전에 대한 처리 방법과 같은 정책도 미리 설정하고 적용되게 된다.
If the meta data and the actual data are the same or are applied to the policy of the inspection system (S50), the
도 4 는 본 발명에 따른 유효마켓 데이터를 이용한 APK 악성코드 검사 방법에 따라 안드로이드 디바이스에 탐재되어 동작할 때를 설명하기 위한 도면이다.FIG. 4 is a diagram for explaining when an AP device malicious code is inspected and operated according to a method of inspecting an APK malicious code using effective market data according to the present invention.
도 4에서 도시하고 있는 것과 같이, 본 발명은 업데이트, 분석 서버의 도움 없이 동작할 수 있으며, 시그니쳐를 저장할 데이터베이스 역시 필요 없음을 알 수 있다. 또한 사용자가 별도의 백신 앱 조작을 하지 않아도 웹(web) 및 블랙마켓(black market)에서 수신되는 대상 APK 파일을 통한 앱 설치를 시도할 때, 본 발명에 따른 APK 악성 검사장치가 동작하여 구글 플레이로 대변되는 신뢰기관(10)을 조회하여 정상적으로 배포되는 무고성(innocence)을 갖는 대상 APK 파일의 실제 데이터를 수집한다. 그리고 수집된 실제 데이터를 기반으로 대상 APK 파일의 악성 여부를 판단할 수 있음으로써, 악성 앱의 설치를 미리 차단할 수 있기 때문에 기존의 백신보다 사용이 편리하고 직관적인 장점이 있다.As shown in FIG. 4, it can be seen that the present invention can operate without the assistance of an update and analysis server, and that a database to store signatures is also unnecessary. Also, when a user attempts to install an app through a target APK file received from the web and a black market without operating a separate vaccine application, the APK maliciousness testing apparatus according to the present invention operates and plays Google Play And collects the actual data of the target APK file having the innocence normally distributed. In addition, since it is possible to judge whether the target APK file is malicious based on the collected actual data, it is easier to use and intuitive than the existing vaccine because it can block malicious application installation in advance.
이처럼, 본 발명은 대상 APK 파일의 메타 데이터와 신뢰기관(10)에서 조회한 애플리케이션의 정보의 실제 데이터를 대조하는 작업으로, 대상 APK 파일의 무고성이나 악성여부를 손쉽게 판단할 수 있다. 이 작업은 동적분석이나 정적분석에 비해 많은 연산량을 필요로 하지 않기 때문에 파일 분석의 초기 단계에 수행하여 시스템 효율을 높이는데 도움을 준다. 또한 이 방식은 꼭 대형 시스템뿐만 아니라 네트워크에 연결되어 있는 안드로이드 디바이스라면 APK 파일의 설치 직전에 수행하게 하여 피해를 줄일 수 있다.
As described above, the present invention is an operation of collating the metadata of the target APK file with the actual data of the information of the application searched by the
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술적 분야의 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. It will be apparent to those skilled in the art that various modifications may be made without departing from the scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.
Claims (9)
상기 APK 분리부에서 추출된 대상 APK 파일의 메타 데이터에 포함된 패키지명을 기반으로 신뢰기관으로부터 무고성(innocence)을 갖는 대상 APK 파일의 실제 데이터를 수집하는 실제 데이터 입력부와,
상기 APK 분리부에서 추출된 대상 APK 파일의 메타 데이터를 상기 실제 데이터 입력부에서 수집된 무고성을 갖는 대상 APK 파일의 실제 데이터와 서로 비교하여 상기 수집된 대상 APK 파일의 악성여부를 판별하는 필터 매니저와,
상기 필터 매니저에서 판별된 검사 결과를 출력하는 검사결과 출력부를 포함하여 구성되는 것을 특징으로 하는 유효마켓 데이터를 이용한 APK 악성코드 검사 장치.An APK separator for extracting metadata from a target APK file collected at an untrusted APK source,
An actual data input unit for collecting actual data of a target APK file having innocence from a trusted authority based on the package name included in the meta data of the target APK file extracted by the APK separating unit;
A filter manager for comparing the meta data of the target APK file extracted by the APK separating unit with the actual data of the target APK file having the anomalousness collected from the actual data input unit to discriminate whether the collected target APK file is malicious or not; ,
And an inspection result output unit outputting the inspection result determined by the filter manager.
상기 실제 데이터 입력부에서 수집되는 실제 데이터는 APK 분리부에서 추출된 메타 데이터의 패키지명을 기반으로 생성된 URL로 신뢰기관에 요청하여 얻는 것을 특징으로 하는 유효마켓 데이터를 이용한 APK 악성코드 검사 장치.3. The method of claim 2,
Wherein the actual data collected by the actual data input unit is obtained by requesting the trusted authority from the URL generated based on the package name of the metadata extracted by the APK separating unit.
상기 메타 데이터 및 실제 데이터는 패키지명, 버전이름, 버전코드, 앱의 파일크기, 앱 요청 권한, APK 파일 내부해시 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 유효마켓 데이터를 이용한 APK 악성코드 검사 장치.3. The method of claim 2,
Wherein the metadata and the actual data include at least one of a package name, a version name, a version code, a file size of an app, an app request authorization, and an APK file internal decryption information. Device.
(B) 실제 데이터 입력부를 통해 상기 대상 APK 파일로부터 추출된 메타 데이터에 포함된 패키지명을 기반으로 신뢰기관으로부터 무고성(innocence)을 갖는 대상 APK 파일의 실제 데이터(Live-Data)를 수집하는 단계와,
(C) 필터 매니저를 통해 상기 대상 APK 파일에서 추출된 메타 데이터와 무고성을 갖는 APK 파일의 실제 데이터를 서로 비교하는 단계와,
(D) 상기 비교 결과를 기반으로 대상 APK 파일의 악성 및 무고성 여부를 판단하는 단계를 포함하여 이루어지는 것을 특징으로 하는 유효마켓 데이터를 이용한 APK 악성코드 검사 방법.(A) extracting metadata from a target APK file inputted through an APK separator when an APK file to be inspected is inputted through an untrusted APK source,
(B) collecting actual data (Live-Data) of a target APK file having innocence from a trusted authority based on the package name included in the metadata extracted from the target APK file through the actual data input unit Wow,
(C) comparing metadata extracted from the target APK file with actual data of an anomaly APK file through a filter manager,
(D) judging whether the target APK file is malicious or not, based on the result of the comparison; and detecting the APK malicious code using the valid market data.
상기 메타 데이터 및 실제 데이터는 패키지명, 버전이름, 버전코드, 앱의 파일크기, 앱 요청 권한, APK 파일 내부해시 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 유효마켓 데이터를 이용한 APK 악성코드 검사 방법.6. The method of claim 5,
Wherein the metadata and the actual data include at least one of a package name, a version name, a version code, a file size of an app, an app request authorization, and an APK file internal decryption information. Way.
대상 APK 파일의 포맷을 분리(depack)하여 분석하는 단계와,
상기 분리된 내부 파일에서 대상 APK 파일의 메타 데이터를 추출하는 단계를 포함하여 이루어지는 것을 특징으로 한다. 6. The method of claim 5, wherein step (A)
Analyzing and analyzing the format of the target APK file;
And extracting metadata of a target APK file from the separated internal file.
APK 분리부에서 추출한 대상 APK 파일의 메타 데이터 패키지명을 가지고 생성한 URL을 HTTP 요청하거나, 마켓의 API, 혹은 질의 시스템, 혹은 이에 준하는 신뢰기관의 인터페이스를 이용하여 상기 대상 APK 파일의 실제 데이터(Live-Data)를 수집하는 것을 특징으로 하는 유효마켓 데이터를 이용한 APK 악성코드 검사 방법.6. The method of claim 5, wherein step (B)
The URL generated by the metadata package name of the target APK file extracted by the APK separating unit is HTTP requested or the actual data of the target APK file is stored using the interface of the market API, -Data) is collected. The method for inspecting an APK malicious code using effective market data.
상기 신뢰기관은 구글 플레이로 대변되는 신뢰기관을 포함하고, 신뢰할 수 없는 APK 출처는 블랙마켓, Third party 마켓, 웹(Web)을 포함하는 것을 특징으로 하는 유효마켓 데이터를 이용한 APK 악성코드 검사 방법.
6. The method of claim 5,
Wherein the trusted authority includes a trust institution represented by Google Play, and the unreliable APK source includes a black market, a third party market, and a Web.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150010522A KR20160090566A (en) | 2015-01-22 | 2015-01-22 | Apparatus and method for detecting APK malware filter using valid market data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150010522A KR20160090566A (en) | 2015-01-22 | 2015-01-22 | Apparatus and method for detecting APK malware filter using valid market data |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160090566A true KR20160090566A (en) | 2016-08-01 |
Family
ID=56706815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150010522A KR20160090566A (en) | 2015-01-22 | 2015-01-22 | Apparatus and method for detecting APK malware filter using valid market data |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20160090566A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105160250A (en) * | 2015-07-06 | 2015-12-16 | 国家计算机网络与信息安全管理中心 | Dynamic analysis method and device of APK (Android Packet) application software communication behavior |
CN106294068A (en) * | 2016-08-03 | 2017-01-04 | 福建星海通信科技有限公司 | A kind of Android system APK method for managing and monitoring and device thereof |
KR20180054390A (en) * | 2016-11-14 | 2018-05-24 | 숭실대학교산학협력단 | System and method for detecting malicious of application, recording medium for performing the method |
KR20190102451A (en) * | 2018-02-26 | 2019-09-04 | 한국인터넷진흥원 | Method for detecting malicious application and apparatus thereof |
CN113496012A (en) * | 2020-04-03 | 2021-10-12 | 北京梆梆安全科技有限公司 | Secondary packaging detection method and device for application installation package |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101056283B1 (en) | 2009-10-29 | 2011-08-11 | 주식회사 반딧불소프트웨어 | Malware detection device and method |
-
2015
- 2015-01-22 KR KR1020150010522A patent/KR20160090566A/en not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101056283B1 (en) | 2009-10-29 | 2011-08-11 | 주식회사 반딧불소프트웨어 | Malware detection device and method |
Non-Patent Citations (1)
Title |
---|
등록특허공보 제10-1386605호 : 권한정보 관리를 통한 악성코드 탐지방법 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105160250A (en) * | 2015-07-06 | 2015-12-16 | 国家计算机网络与信息安全管理中心 | Dynamic analysis method and device of APK (Android Packet) application software communication behavior |
CN106294068A (en) * | 2016-08-03 | 2017-01-04 | 福建星海通信科技有限公司 | A kind of Android system APK method for managing and monitoring and device thereof |
KR20180054390A (en) * | 2016-11-14 | 2018-05-24 | 숭실대학교산학협력단 | System and method for detecting malicious of application, recording medium for performing the method |
KR20190102451A (en) * | 2018-02-26 | 2019-09-04 | 한국인터넷진흥원 | Method for detecting malicious application and apparatus thereof |
CN113496012A (en) * | 2020-04-03 | 2021-10-12 | 北京梆梆安全科技有限公司 | Secondary packaging detection method and device for application installation package |
CN113496012B (en) * | 2020-04-03 | 2023-11-03 | 北京梆梆安全科技有限公司 | Secondary packaging detection method and device for application installation package |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Spreitzenbarth et al. | Mobile-Sandbox: combining static and dynamic analysis with machine-learning techniques | |
KR101402057B1 (en) | Analyzing system of repackage application through calculation of risk and method thereof | |
US8806644B1 (en) | Using expectation measures to identify relevant application analysis results | |
CN112685737A (en) | APP detection method, device, equipment and storage medium | |
Rathnayaka et al. | An efficient approach for advanced malware analysis using memory forensic technique | |
CN109862003B (en) | Method, device, system and storage medium for generating local threat intelligence library | |
RU2726032C2 (en) | Systems and methods for detecting malicious programs with a domain generation algorithm (dga) | |
CN110929264B (en) | Vulnerability detection method and device, electronic equipment and readable storage medium | |
US10033761B2 (en) | System and method for monitoring falsification of content after detection of unauthorized access | |
KR20160090566A (en) | Apparatus and method for detecting APK malware filter using valid market data | |
Akram et al. | How to build a vulnerability benchmark to overcome cyber security attacks | |
CN114386032A (en) | Firmware detection system and method for power Internet of things equipment | |
Faruki et al. | Droidanalyst: Synergic app framework for static and dynamic app analysis | |
KR102180098B1 (en) | A malware detecting system performing monitoring of malware and controlling a device of user | |
Tchakounté et al. | LimonDroid: a system coupling three signature-based schemes for profiling Android malware | |
Li et al. | Large-scale third-party library detection in android markets | |
CN114003794A (en) | Asset collection method, device, electronic equipment and medium | |
Djanali et al. | SQL injection detection and prevention system with raspberry Pi honeypot cluster for trapping attacker | |
Gunawan et al. | On the review and setup of security audit using Kali Linux | |
JP5656266B2 (en) | Blacklist extraction apparatus, extraction method and extraction program | |
CN109818972B (en) | Information security management method and device for industrial control system and electronic equipment | |
KR102159399B1 (en) | Device for monitoring web server and analysing malicious code | |
CN111049828A (en) | Network attack detection and response method and system | |
KR102156340B1 (en) | Method and apparatus for blocking web page attack | |
Appelt et al. | Assessing the impact of firewalls and database proxies on SQL injection testing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |