WO2013042802A1 - 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 - Google Patents

안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 Download PDF

Info

Publication number
WO2013042802A1
WO2013042802A1 PCT/KR2011/006956 KR2011006956W WO2013042802A1 WO 2013042802 A1 WO2013042802 A1 WO 2013042802A1 KR 2011006956 W KR2011006956 W KR 2011006956W WO 2013042802 A1 WO2013042802 A1 WO 2013042802A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
dynamic analysis
android app
behavior information
android
Prior art date
Application number
PCT/KR2011/006956
Other languages
English (en)
French (fr)
Inventor
정호욱
염주일
Original Assignee
주식회사 인프라웨어테크놀러지
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 인프라웨어테크놀러지 filed Critical 주식회사 인프라웨어테크놀러지
Publication of WO2013042802A1 publication Critical patent/WO2013042802A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis

Definitions

  • the present invention relates to a behavior information dynamic analysis emulator of an Android app, a behavior information dynamic analysis system including the same, and a recording medium in which a behavior information dynamic analysis program of an Android app is readable by a computer.
  • the 'Android App' is run on a wired terminal such as a Windows or Linux operating system, and the behavior of the Android app is monitored to collect and analyze data based on the analysis of the behavior information, thereby incorporating malicious code.
  • And behavior information dynamic analysis emulator of Android app to provide environment for analyzing actual operation, behavior information dynamic analysis system including the same, and behavior information dynamic analysis program of android app In the medium It is about.
  • the Android platform is a software stack released by Google's Open Handset Alliance (OHA).
  • OAA Google's Open Handset Alliance
  • the Android platform is a software package that includes the Linux kernel, virtual machine (VM), framework, and application, and a software development kit (SDK) for developing Android apps. To provide.
  • VM virtual machine
  • SDK software development kit
  • Android apps distributing applications to run on the Android platform, which allows developers to freely register Android apps without special verification procedures, and users can freely register Android apps without special verification procedures. It is an open structure that can be downloaded and used.
  • FIG. 1 is a diagram conceptually showing the structure of an Android emulator according to the prior art, which merely provides a function of executing an Android app as a structure that emulates a processor. Users who use smartphones with the Android operating system can unknowingly install Android apps with malicious intentions such as collecting and leaking personal information, system changes, and malware inherent. It is possible that sensitive information could be exposed to outside and abused.
  • the Android platform provides only the function of simply running the Android app on the terminal device as described above with reference to [FIG. 1], and collects personal information from the Android app distributed through the Android Market and leaks it to the outside. It does not provide any tools or methods to analyze the inherent presence of code that includes malicious behavior, such as altering the system. Furthermore, it provides a way to check the code coverage of the running Android app. There is a problem that does not.
  • the purpose of the present invention is to detect the collection of important information, external leakage, system changes, etc. by operating the Android app and monitoring its behavior in a wired terminal environment such as a personal computer (PC) as well as a wireless terminal such as a smartphone.
  • a wired terminal environment such as a personal computer (PC) as well as a wireless terminal such as a smartphone.
  • the behavior information dynamic analysis emulator of the Android app the behavior information dynamic analysis system including the same, and the behavior information dynamic analysis program of the Android app to be computer-readable Providing a recorded recording medium.
  • Behavior information dynamic analysis emulator of the Android app for achieving this task, by monitoring the behavior information according to the execution of the Android app when running the Android app in a wired terminal, by collecting and analyzing the data based on the behavior information Analyze the presence of malicious code in Android apps.
  • the behavior information dynamic analysis emulator of the Android app in the present invention is an information monitor for extracting and logging behavior information about access, transformation, and leakage of real-time personal information when the Android app is run in a wired terminal environment, and when the Android app is running System resource logger which extracts and logs network transmission / reception data information, file system read / write information, behavior information traced by Dalvik call stack, and behavior information of GPS event, touch event, system event among behavior information generated when running Android app.
  • Analysis engine that generates result report by analyzing whether there is an event logger that extracts and logs the information, and code that performs malicious actions based on the behavior information collected by the information monitor, system resource logger, and event logger. It is preferable to include.
  • the analysis engine compares the logging information collected by the information monitor, the system resource logger, and the event logger with the dynamic analysis rule to analyze whether malicious behavior is performed.
  • the information monitor monitors the behavior information storing data by accessing the personal information stored in the internal or external storage of the wired terminal while the Android app is running, and traces the type change of the personal information to distribute or calculate the personal information value. It is desirable to monitor the outflow.
  • the behavior information dynamic analysis emulator of the Android app enables simultaneous execution, iteration and timeline linkage execution in a number of independent dynamic analysis emulators.
  • the dynamic analysis emulator of the behavior information of the Android app allows the Android app to be executed manually, and logs the behavior information according to the manual execution and controls the dynamic analysis UI app to provide the result report analyzed through the analysis engine through the UI screen. It is preferable to further include.
  • the behavior information dynamic analysis emulator of the Android app receives the logging information generated from the information monitor, system resource logger, and event logger as a queue, and then processes them as independent processes in asynchronous manner and stores them in different DBs. It is preferable to further include a service queue.
  • the behavior analysis dynamic emulator of the Android app when the information monitor detects an external leak caused by data transmission or SMS transmission to the network while the Android app is running, a real-time personal information external leakage notification notifying the user through the UI screen. It is preferable to further include the application.
  • the behavior information dynamic analysis system of the Android app for achieving this problem, by monitoring the behavior information according to the execution of the Android app when running the Android app in a wired terminal, by collecting and analyzing the data based on the behavior information Introducing malicious code in the Android app, dynamic analysis emulator that analyzes the actual operation of the Android app, dynamic analysis agent that performs the same operation as the dynamic analysis emulator when the Android app is run on the wireless terminal, and installs the Android app. And dynamic analysis managers that control the deletion, execution, and execution of app execution scripts that can be run by the dynamic analysis emulator and dynamic analysis agent.
  • the behavior information dynamic analysis system of the Android app analyzes the execution code, class and function calls, and class inheritance relations included in the Android app to classify the actual codes, and then conducts the behavior information by the dynamic analysis emulator and the dynamic analysis agent.
  • the collection analysis of the data is performed based on, it is preferable to further include a code analyzer to determine the actual operation of the Android app by providing a result of analyzing the code coverage.
  • the dynamic analysis emulator is provided as an application running in a wired terminal environment, and based on the emulator code embedded in the Android platform, the Android framework, core library, and Dalvik virtual machine After potting), it is preferably formed by adding a constituent component.
  • the dynamic analysis agent is provided as an application that runs on a smartphone equipped with the Android operating system, and is formed by adding a configuration component after porting the Android framework, the core library, and the Dalvik virtual machine based on the Android source. It is preferable.
  • the recording medium in which the behavior information dynamic analysis program of the Android app is readable by the computer is an information monitor that extracts and logs behavior information about access, transformation, and leakage of personal information in real time when the Android app is executed in a wired terminal environment.
  • Function a system resource logger function that extracts and logs network transmission / reception data information, file system read / write information, and tracing information of the Dalvik call stack when the Android app is executed, and GPS event among the behavior information that occurs when the Android app is executed.
  • There is an event logger function that extracts and logs behavior information of touch events and system events, and code that performs malicious actions based on the behavior information collected by the information monitor function, the system resource logger function, and the event logger function. Analysis results Run the engine Analysis function to create the port.
  • the analysis engine function compares the logging information collected by the information monitor function, the system resource logger function, and the event logger function with the dynamic analysis rule to analyze whether malicious behavior is performed.
  • the information monitor function monitors behavior information that stores data by accessing personal information stored in the internal or external storage of the wired terminal while the Android app is running, traces the type change of personal information, and distributes or calculates personal information values. It is desirable to monitor the outflow through.
  • the recording media recorded by computer-readable behavior information dynamic analysis program of the Android app enables simultaneous execution, iteration and timeline linkage in multiple independent dynamic analysis emulators, and runs directly without script input.
  • the script player function that supports random execution function, the dynamic analysis manager that controls the installation, removal, and execution of the Android app, and the creation of the app execution script that can be executed in the script player function.
  • the recording media recorded by the computer-readable behavior analysis program of the Android app allows the Android app to be executed manually, logging the behavior information according to the manual execution, and displaying the UI report of the result report analyzed by the analysis engine. It executes the dynamic analysis UI app function to control to provide through.
  • the recording medium in which the behavior analysis dynamic analysis program of the Android app is computer-readable is inputted into the queue by logging information generated by the information monitor function, the system resource logger function, and the event logger function into a queue, and then a separate process is performed as an independent process. It is desirable to execute the service queue function to process and store in different DBs.
  • the recording medium in which the behavior analysis dynamic analysis program of the Android app is computer readable is recorded to the user through the UI screen when the information monitor detects an external leak caused by data transmission or SMS transmission to the network while the Android app is running. It is preferable to further include a real-time personal information leakage notification function to inform.
  • the Android app uses a dynamic analysis emulator and a dynamic analysis agent to detect and notify the collection, modification, and leakage of important information on a wired / wireless terminal, and to analyze whether code containing malicious behavior is inherent. to provide.
  • the stability of the Android app can be verified through pre-validation before being provided to the user in the open market selling the Android app, and the reliability of the open market can be improved, and the user's information can be leaked.
  • Providing reliability based on blocking in advance can activate the Android-based application market.
  • FIG. 2 is a diagram illustrating a system for dynamically analyzing behavior information of an Android app including a dynamic analysis emulator according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a relationship between a dynamic analysis emulator, a dynamic analysis agent, and a dynamic analysis manager in FIG. 2.
  • FIG. 2 is a diagram illustrating a system for dynamically analyzing behavior information of an Android app including a dynamic analysis emulator 10 according to an exemplary embodiment of the present invention.
  • 3 is a diagram illustrating a relationship between the dynamic analysis emulator 10, the dynamic analysis agent 20, and the dynamic analysis manager 40 in FIG. 2.
  • the behavior information dynamic analysis system of the Android app includes a dynamic analysis emulator 10, a dynamic analysis agent 20, a code analyzer 30, and a dynamic analysis manager 40.
  • the dynamic analysis emulator 10 is an emulator based on a wired terminal 100 such as a personal computer (PC) that operates based on the Android platform, and uses an Android application (hereinafter, referred to as a smartphone). It is a component to provide the same environment in which Android apps can be run. Accordingly, the dynamic analysis emulator 10 operates in a wired terminal 100 based on a Windows operating system (Windows OS) or a Linux operating system (Linux OS). This is different from the conventional Android emulator that emulates the CPU and only provides the ability to run Android apps.
  • a wired terminal 100 such as a personal computer (PC) that operates based on the Android platform, and uses an Android application (hereinafter, referred to as a smartphone). It is a component to provide the same environment in which Android apps can be run. Accordingly, the dynamic analysis emulator 10 operates in a wired terminal 100 based on a Windows operating system (Windows OS) or a Linux operating system (Linux OS). This is different from the conventional Android emulator that emulates the CPU and only provides the ability
  • the dynamic analysis emulator 10 may be provided in an application form operating in a wired terminal environment, and based on the emulator code embedded in the Android platform, the Android framework 2a and the core library 2b.
  • the Dalvik virtual machine (hereinafter, referred to as 'Dalvik VM') 2c is added and the necessary components are added as follows.
  • the dynamic analysis emulator 10 includes a system adapter 1a, a script player 1b, a dynamic analysis UI app 1c, a ported Android framework 2a described above, a core library 2b, a Dalvik VM 2c, Service queue (3), real-time personal information leakage notification (4), analysis engine (5), information monitor (6), system resource logger (7), event logger (8), analysis result DB (9a), It includes software modules such as data log DB 9b, I / O log DB 9c, and event DB 9d.
  • the system adapter 1a is a component for the dynamic analysis emulator 10 to interwork with the dynamic analysis manager 40.
  • system adapter 1a is managed by the dynamic analysis manager 40 for installation, uninstallation, execution of an Android app, and is executed in the script player 1b to be described later. Provides an interworking function to enable control by the dynamic analysis manager 40 for possible app execution script production.
  • the script player 1b is a component for automatically executing an android app on a script basis using an app execution script received from the dynamic analysis manager 40 by the system adapter 1a.
  • the script player 1b is a component that executes the function of executing the Android app through a "script" that describes a processing procedure for executing the Android app produced by the dynamic analysis manager 40 in text (text).
  • the script player 1b can control a single Android app under the control of the dynamic analysis manager 40, or a plurality of independent dynamic analysis emulator agents including a dynamic analysis emulator group or a dynamic analysis agent including a dynamic analysis emulator. It is configured to allow concurrent execution, repetitive execution, timeline linkage execution, etc. in a group. In addition, it is preferable that the script player 1b also supports a random execution function that performs direct driving without input of an app execution script produced by the dynamic analysis manager 40.
  • Dynamic analysis UI app (1c) is to run the Android app manually to perform the logging (logging) to record the change according to the operation state according to the action state according to the manual execution over time, and analyzed through the analysis engine (5) Provides a UI screen.
  • the dynamic analysis UI app 1c is an application that performs an analysis function on behavior information directly by interworking of the dynamic analysis emulator 10 and the wired terminal 100 without going through the dynamic analysis manager 40.
  • the service queue 3 is a component for storing information collected by the information monitor 6, the system resource logger 7, and the event logger 8, which are real-time loggers, with minimal impact on system performance.
  • the service queue 3 receives the logging information, which is behavior-based data for executing an Android app generated by the information monitor 6, the system resource logger 7, and the event logger 8, respectively. After that, the service queue 3 processes the logging information in the queue in the same asynchronous manner as the service provided by the Android framework, so that the datalog DB 9b, I / O log DB 9c, and event log DB 9d are processed. This component performs the function of storing each in).
  • the service queue 3 is a component that acts as an independent process and works like a background process to minimize the load and system performance degradation that may occur when a large amount of logging information is processed synchronously.
  • the lower module of the service queue 3 includes a DB cursor 3a, an event log queue 3b, and an I / O log queue as shown. (3c) and a data log queue (3d).
  • the analysis engine 5 analyzes code for performing malicious actions based on various processing related information collected by the information monitor 6, the system resource logger 7, and the event logger 8.
  • the analysis engine 5 may collect logging information and dynamic analysis rules collected by the information monitor 6, the system resource logger 7, and the event logger 8 while executing an Android app. This component is used to determine whether the code that performs malicious behavior is inherent in the Android app and generate a result report.
  • the information generated by the information monitor 6, the system resource logger 7, and the event logger 8, which are the logging information collection components, are provided to the analysis engine 5 through a logging filter, and the dynamic analysis rule Is provided to the analysis engine 5 through a parser (not shown).
  • the lower module of the analysis engine 5 is composed of a dynamic analysis rule 5a, a logging information filter 5b, and a result report 5c.
  • the information monitor 6 is a component that informs a user through a UI screen by extracting and logging behavior information about access, transformation, and leakage of personal information in real time when an Android app is executed in a wired terminal environment.
  • the information monitor 6 accesses the personal information which is important information stored in the internal mass storage in the wired terminal 100 or external storage such as an SD card and a USB card while the Android app is running, and stores the information in the form of a file. Monitor behavior information.
  • the information monitor 6 serves to monitor and inform in real time the behavior leaked to the outside through the distribution or calculation of personal information values by tracing the type modification of personal information.
  • the information monitor 6 is provided in the form of a component that ported the Dalvik virtual machine 2c and the core library 2b to trace data access and data transformation, and a background process running in the Android framework 2a.
  • the sub-module of the information monitor 6 is composed of an outflow detection 6a, a data modification trace 6b, and a data access detection 6c.
  • system resource logger 7 traces a network, a file system, and a Dalvik call stack among behavior information generated when an Android app is executed.
  • the system resource logger (7) is a network transmission and reception data information, file system read / write information, which is the basic information for analyzing malicious behavior in the analysis engine (5) of the behavior information generated when running the Android app, This component is responsible for extracting and logging the traced Dalvik call stack.
  • the system resource logger 7 is a component that ported the core library 2b and the Android framework 2a.
  • the system resource logger 7 is a submodule as shown in the drawing.
  • the system resource logger 7 is a network I / O 7a, a storage I / O 7b, and a call. It consists of a stack trace 7c.
  • the event logger 8 is a component that extracts and logs behavior information of GPS events, touch events, and system events.
  • the event logger 8 logs GPS events, touch events, and system events, which are basic information for analyzing malicious behavior in the analysis engine 5, among behavior information generated when an Android app is executed, and the Android frame.
  • the sub-module of the event logger 8 consists of a GPS 8a, a touch 8b, and a system 8c, as shown.
  • the analysis result DB 9a stores the result report generated by the analysis engine 5.
  • the data log DB 9b stores the logging information generated by the information monitor 6 under the control of the service queue 3 and the I / O log DB 9c stores the logging information generated by the system resource logger 7.
  • Is stored under the control of the service queue 3 the event DB 9d stores the logging information generated by the event logger 8 under the control of the service queue 3, and each stored information is stored asynchronously. It is characterized by.
  • the dynamic analysis agent 20 operates in a wireless terminal 200 such as a smartphone based on the Android operating system.
  • the dynamic analysis agent 20 is provided in the form and image of the application (application) that runs on a smartphone equipped with the Android operating system, the function and configuration is the same as the dynamic analysis emulator 10.
  • the dynamic analysis agent 20 is not based on the Android software development kit (SDK) code, but porting the Android framework (2a), core library (2b), Dalvik virtual machine (2c) based on the Android source and the necessary configuration Consists of adding component.
  • SDK software development kit
  • the code analyzer 30 analyzes code coverage that measures actual code used when an Android app is executed.
  • the code analyzer 30 analyzes the execution code, class and function calls, and class inheritance relationships included in the Android app to distinguish the actual code. Accordingly, the code analyzer 30 executes the Android app by the dynamic analysis emulator 10 or the dynamic analysis agent 20, and then analyzes data collection for the Android app in the analysis engine 5 based on the behavior information. When performed, the results of analyzing the code coverage are provided. Accordingly, the code analyzer 30 is provided as a dynamic link library that can be used in the dynamic analysis emulator 10.
  • the dynamic analysis manager 40 manages the installation, deletion, and execution of the Android app in the terminal device 100 or 200 in conjunction with the dynamic analysis emulator 10 or the dynamic analysis agent 20.
  • the dynamic analysis manager 40 performs a function of controlling to produce an app execution script executable in the script player 1b and is provided in the form of an application for the wired terminal 100.
  • Computer-readable recording media include all kinds of recording devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disks, optical data storage devices, and the like, which may be implemented in the form of carrier waves (eg, transmission over the Internet). .
  • the computer-readable recording medium can also store and execute code in a distributed manner over networked computer systems.
  • the functional program, code, code segment for implementing the present invention can be easily inferred by programmers in the technical field to which the present invention belongs.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체에 관한 것으로, 안드로이드 앱을 유선단말에서 실행시, 안드로이드 앱 실행에 따라 행위정보를 모니터링하여, 행위정보를 기반으로 데이터를 수집 분석하여 안드로이드 앱에 악의적인 코드의 내재 여부를 분석함으로써, 안드로이드 앱을 실행시킨 뒤, 단말 상에서의 중요정보의 수집, 변경, 그리고 유출을 탐지하고 알려주며 악의적인 행위가 포함된 코드가 내재 되어 있는지 분석 가능한 효과를 제공한다.

Description

안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
본 발명은 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체에 관한 것으로, 더욱 상세하게는 안드로이드 애플리케이션(이하, '안드로이드 앱')을 윈도우 또는 리눅스 운영체제와 같은 유선단말에서 실행시키고, 당해 안드로이드 앱의 실행에 따른 행위를 모니터링함으로써, 행위정보에 대한 분석을 기반으로 데이터를 수집 분석하여 악의적인 코드의 내재, 그리고 실제 동작여부를 분석할 수 있는 환경을 제공하기 위한 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체에 관한 것이다.
안드로이드 플랫폼은 Google사가 주도하는 OHA(Open Handset Alliance)에서 공개한 소프트웨어 스택이다. 안드로이드 플랫폼은 리눅스 커널(Linux Kernel), 가상머신(Virtual Machine: VM), 프레임워크, 어플리케이션(applicatoin)을 모두 포함하는 소프트웨어 패키지이며, 안드로이드 앱을 개발하기 위한 소프트웨어 개발 키트(Software Development Kit: SDK)를 제공한다.
그리고 안드로이드 플랫폼에서 실행할 어플리케이션(안드로이드 앱)을 유통하기 위한 안드로이드 마켓(android market)이 마련되어 있는데, 안드로이드 마켓은 특별한 검증 절차 없이 개발자가 자유롭게 안드로이드 앱을 등록할 수 있고 사용자도 특별한 확인 절차 없이 자유롭게 안드로이드 앱을 다운로드 받아서 사용할 수 있는 개방형 구조이다.
현재 안드로이드 운영체제를 사용하는 단말장치(스마트폰, 스마트패드)와 이를 위한 안드로이드 앱의 사용도 계속해서 증가하고 있다. [도 1]은 종래기술에 따른 안드로이드 에뮬레이터의 구조를 개념적으로 나타낸 도면인데, 단순히 프로세서를 에뮬레이션하는 구조로서 안드로이드 앱을 실행하는 기능만 제공한다. 안드로이드 운영체제를 탑재한 스마트폰을 사용하는 사용자는 개인정보 수집 및 유출, 시스템 변경, 그리고 악성코드 내재 등의 악의적인 의도를 가진 안드로이드 앱을 자신도 모르게 설치할 가능성과, 이를 통해 자신의 개인정보와 같은 중요한 정보가 외부로 노출되어 악용될 가능성이 있다.
그러나 현재까지 안드로이드 플랫폼은 [도 1]를 참조하여 전술한 바와 같이 단순히 단말장치에서 안드로이드 앱을 실행하는 기능만 제공할 뿐으로, 안드로이드 마켓을 통해 배포되는 안드로이드 앱에서 개인정보를 수집하고 외부로 유출하거나 시스템을 변경하는 등의 악의적인 행위를 포함하는 코드의 내재 여부를 분석하기 위한 툴이나 방법을 제공하지 않고 있으며, 더 나아가 그 실행되는 안드로이드 앱의 코드 커버리지(code coverage)를 확인할 수 있는 방법도 제공하지 않는 문제점이 있다.
본 발명의 목적은 스마트폰과 같은 무선단말뿐만 아니라, 일반 퍼스널 컴퓨터(PC)와 같은 유선단말 환경에서 안드로이드 앱을 동작시키고 그 행위를 모니터링 하여 중요정보의 수집, 외부 유출, 시스템 변경 등을 탐지하고 분석하여 실시간 알림을 제공하며, 최종 분석에 따른 결과 리포트를 제공하기 위한 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체를 제공함에 있다.
이러한 과제를 달성하기 위한 본 발명에 따른 안드로이드 앱의 행위정보 동적분석 에뮬레이터는, 안드로이드 앱을 유선단말에서 실행시, 안드로이드 앱 실행에 따라 행위정보를 모니터링하여, 행위정보를 기반으로 데이터를 수집 분석하여 안드로이드 앱에 악의적인 코드의 내재 여부를 분석한다.
이때, 본 발명에서 안드로이드 앱의 행위정보 동적분석 에뮬레이터는 유선단말 환경에서 안드로이드 앱이 실행될 때 실시간 개인정보의 접근, 변형, 유출에 대한 행위정보를 추출하고 로깅하는 인포메이션 모니터와, 안드로이드 앱이 실행시 네트워크 송수신 데이터정보, 파일시스템 읽기/쓰기 정보, 달빅 콜 스택을 트레이스한 행위정보를 추출하고 로깅하는 시스템 리소스 로거와, 안드로이드 앱 실행시 발생하는 행위정보 중에서 GPS 이벤트, 터치 이벤트, 시스템 이벤트의 행위정보를 추출하고 로깅하는 이벤트 로거와, 인포메이션 모니터, 시스템 리소스 로거, 이벤트 로거에 의해 각각 수집된 행위정보를 기반으로 악의적인 행위를 수행하는 코드가 내재되어 있는 지를 분석하여 결과 리포트를 생성하는 분석엔진을 포함하는 것이 바람직하다.
또한, 분석엔진은 인포메이션 모니터, 시스템 리소스 로거, 이벤트 로거에 의해 수집된 로깅 정보와 동적분석 룰을 비교분석하여 악의적인 행위가 수행되는지를 분석하는 것이 바람직하다.
또한, 인포메이션 모니터는 안드로이드 앱 실행 중 유선단말 내장형 또는 외장형 저장소에 저장된 개인정보에 접근하여 데이터를 저장하는 행위정보를 감시하고, 개인정보의 타입 변경을 트레이스하여, 개인정보 값의 분산 또는 연산을 통해 외부로 유출되는 것을 모니터링하는 것이 바람직하다.
또한, 안드로이드 앱의 행위정보 동적분석 에뮬레이터는 다수의 독립된 동적분석 에뮬레이터에서 안드로이드 앱을 동시 실행, 반복 실행, 타임라인(timeline) 연계 실행이 가능하도록 하며, 스크립트 입력 없이 직접 구동하는 랜덤(random) 실행 기능을 지원하는 스트립트 플레이어와, 안드로이드 앱의 설치, 삭제, 실행에 대한 관리를 수행하고, 스트립트 플레이어에서 실행 가능한 앱 실행 스크립트를 제작을 제어하는 동적분석 관리자에 의한 관리 및 제어가 가능하도록 하기 위해 연동 기능을 제공하는 시스템 어답터를 더 포함하는 것이 바람직하다.
또한, 안드로이드 앱의 행위정보 동적분석 에뮬레이터는 안드로이드 앱을 수동으로 실행하도록 하여, 수동 실행에 따른 행위정보를 로깅하고 분석엔진을 통해 분석된 결과 리포트를 UI화면을 통해 제공하도록 제어하는 동적분석 UI 앱을 더 포함하는 것이 바람직하다.
또한, 안드로이드 앱의 행위정보 동적분석 에뮬레이터는 인포메이션 모니터, 시스템 리소스 로거, 이벤트 로거에서 각각 발생되는 로깅 정보를 큐(queue)로 입력받은 뒤, 비동기 방식으로 독립된 프로세스로 처리하여 각기 다른 DB로 저장하도록 하는 서비스 큐를 더 포함하는 것이 바람직하다.
또한, 안드로이드 앱의 행위정보 동적분석 에뮬레이터는 안드로이드 앱 실행 중 네트워크로의 데이터 전송 또는 SMS 전송에 의한 외부 유출을 인포메이션 모니터가 감지한 경우, UI화면을 통해 사용자에게 알려주는 실시간 개인정보 외부유출 노티피케이션을 더 포함하는 것이 바람직하다.
이러한 과제를 달성하기 위한 본 발명에 따른 안드로이드 앱의 행위정보 동적분석 시스템은, 안드로이드 앱을 유선단말에서 실행시, 안드로이드 앱 실행에 따라 행위정보를 모니터링하여, 행위정보를 기반으로 데이터를 수집 분석하여 안드로이드 앱에 악의적인 코드의 내재, 안드로이드 앱의 실제 동작 여부를 분석하는 동적분석 에뮬레이터와, 안드로이드 앱을 무선단말에서 실행시, 동적분석 에뮬레이터와 동일한 동작을 수행하는 동적분석 에이전트와, 안드로이드 앱의 설치, 삭제, 실행에 대한 관리를 수행하고, 동적분석 에뮬레이터 및 동적분석 에이전트에서 실행 가능한 앱 실행 스크립트를 제작하도록 제어하는 동적분석 관리자를 포함하여 이루어진다.
이때, 안드로이드 앱의 행위정보 동적분석 시스템은 안드로이드 앱에 포함된 실행 코드, 클래스 및 함수 호출, 클래스 상속관계를 분석해서 실제 사용되는 코드를 구분한 뒤, 동적분석 에뮬레이터 및 동적분석 에이전트에 의해 행위정보를 기반으로 데이터의 수집 분석이 수행될 때, 코드 커버리지를 분석한 결과를 제공하여 안드로이드 앱의 실제 동작 여부를 판단하도록 하는 코드 분석기를 더 포함하는 것이 바람직하다.
또한, 동적분석 에뮬레이터는 유선단말 환경에서 동작하는 어플리케이션 형태로 제공되며, 안드로이드 플랫폼에 내장된 에뮬레이터 코드를 기반으로 안드로이드 프레임워크(android framework), 코어 라이브러리(core library) 및 달빅 가상머신(Dalvik virtual machine)를 포팅한 뒤, 구성 컴포넌트를 추가하여 형성되는 것이 바람직하다.
또한, 동적분석 에이전트는, 안드로이드 운영체제를 탑재한 스마트폰에서 동작하는 어플리케이션 형태로 제공되며, 안드로이드 소스를 기반으로 안드로이드 프레임워크, 코어 라이브러리, 달빅 가상머신을 포팅한 뒤, 구성 컴포넌트를 추가하여 형성되는 것이 바람직하다.
이러한 과제를 달성하기 위한 본 발명에 따른 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체는, 안드로이드 앱을 유선단말에서 실행시, 안드로이드 앱 실행에 따라 행위정보를 모니터링하여, 행위정보를 기반으로 데이터를 수집 분석하여 안드로이드 앱에 악의적인 코드의 내재 여부를 분석한다.
이때, 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체는 유선단말 환경에서 안드로이드 앱이 실행될 때 실시간으로 개인정보의 접근, 변형, 유출에 대한 행위정보를 추출하고 로깅하는 인포메이션 모니터 기능과, 안드로이드 앱이 실행시 네트워크 송수신 데이터정보, 파일시스템 읽기/쓰기 정보, 달빅 콜 스택을 트레이스한 행위정보를 추출하고 로깅하는 시스템 리소스 로거 기능과, 안드로이드 앱 실행시 발생하는 행위정보 중에서 GPS 이벤트, 터치 이벤트, 시스템 이벤트의 행위정보를 추출하고 로깅하는 이벤트 로거 기능과, 인포메이션 모니터 기능, 시스템 리소스 로거 기능, 이벤트 로거 기능에 의해 각각 수집된 행위정보를 기반으로 악의적인 행위를 수행하는 코드가 내재되어 있는 지를 분석하여 결과 리포트를 생성하는 분석엔진 기능을 실행한다.
또한, 분석엔진 기능은 인포메이션 모니터 기능, 시스템 리소스 로거 기능, 이벤트 로거 기능에 의해 수집된 로깅 정보와 동적분석 룰을 비교분석하여 악의적인 행위가 수행되는지를 분석하는 것이 바람직하다.
또한, 인포메이션 모니터 기능은 안드로이드 앱 실행 중 유선단말 내장형 또는 외장형 저장소에 저장된 개인정보에 접근하여 데이터를 저장하는 행위정보를 감시하고, 개인정보의 타입 변경을 트레이스하여, 개인정보 값의 분산 또는 연산을 통해 외부로 유출되는 것을 모니터링하는 것이 바람직하다.
또한, 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체는 다수의 독립된 동적분석 에뮬레이터에서 안드로이드 앱을 동시 실행, 반복 실행, 타임라인 연계 실행이 가능하도록 하며, 스크립트 입력 없이 직접 구동하는 랜덤 실행 기능을 지원하는 스트립트 플레이어 기능과, 안드로이드 앱의 설치, 삭제, 실행에 대한 관리를 수행하고, 스트립트 플레이어 기능에서 실행 가능한 앱 실행 스크립트를 제작을 제어하는 동적분석 관리자에 의한 관리 및 제어가 가능하도록 하기 위해 연동 기능을 제공하는 시스템 어답터 기능을 더 실행하는 것이 바람직하다.
또한, 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체는 안드로이드 앱을 수동으로 실행하도록 하여, 수동 실행에 따른 행위정보를 로깅하고 분석엔진을 통해 분석된 결과 리포트를 UI화면을 통해 제공하도록 제어하는 동적분석 UI 앱 기능을 더 실행한다.
또한, 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체는 인포메이션 모니터 기능, 시스템 리소스 로거 기능, 이벤트 로거 기능에서 각각 발생되는 로깅 정보를 큐로 입력받은 뒤, 비동기 방식으로 독립된 프로세스로 처리하여 각기 다른 DB로 저장하도록 하는 서비스 큐 기능을 더 실행하는 것이 바람직하다.
또한, 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체는 안드로이드 앱 실행 중 네트워크로의 데이터 전송 또는 SMS 전송에 의한 외부 유출을 인포메이션 모니터가 감지한 경우, UI화면을 통해 사용자에게 알려주는 실시간 개인정보 외부유출 노티피케이션 기능을 더 포함하는 것이 바람직하다.
본 발명에 따르면, 안드로이드 앱을 동적분석 에뮬레이터 및 동적분석 에이전트를 이용해 유/무선단말 상에서의 중요정보의 수집, 변경, 유출을 탐지하고 알려주며 악의적인 행위가 포함된 코드가 내재 되어 있는지 분석 가능한 효과를 제공한다.
본 발명을 응용함으로써, 안드로이드 앱을 판매하는 오픈 마켓에서 사용자에게 제공되기 전에 사전 검증을 통해 안드로이드 앱의 안정성을 검증할 수 있으며, 오픈 마켓의 신뢰성을 높일 수 있고, 나아가 사용자의 정보가 유출될 가능성을 사전에 차단에 따른 신뢰성을 제공하여 안드로이드 기반의 어플리케이션 시장을 활성화할 수 있다.
도 1은 종래기술에 따른 안드로이드 에뮬레이터의 구조를 개념적으로 나타낸 도면.
도 2는 본 발명의 실시예에 동적분석 에뮬레이터를 포함하는 안드로이드 앱의 행위정보 동적분석 시스템을 나타내는 도면.
도 3은 도 2에서의 동적분석 에뮬레이터, 동적분석 에이전트, 동적분석 관리자의 관계를 나타내는 도면.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 2는 본 발명의 실시예에 동적분석 에뮬레이터(10)를 포함하는 안드로이드 앱의 행위정보 동적분석 시스템을 나타내는 도면이다. 도 3은 도 2에서의 동적분석 에뮬레이터(10)와 동적분석 에이전트(20), 동적분석 관리자(40)의 관계를 나타내는 도면이다.
도 2 및 도 3을 참조하면, 안드로이드 앱의 행위정보 동적분석 시스템은 동적분석 에뮬레이터(10), 동적분석 에이전트(20), 코드 분석기(30), 동적분석 관리자(40)를 포함한다.
동적분석 에뮬레이터(10)는 안드로이드 플랫폼(android platform) 기반으로 동작하는 퍼스널 컴퓨터(PC)와 같은 유선단말(100) 기반의 에뮬레이터로, 스마트폰과 같은 무선단말(200)을 이용해 안드로이드 어플리케이션(이하, 안드로이드 앱)을 실행시킬 수 있는 것과 동일한 환경을 제공하기 위한 구성요소이다. 이에 따라, 동적분석 에뮬레이터(10)는 윈도우 운영체제(Windows OS)나 리눅스 운영체제(Linux OS) 기반의 유선단말(100)에서 동작한다. 이는 종래의 안드로이드 에뮬레이터가 CPU를 에뮬레이션하는 구조로 되어 있으며 안드로이드 앱을 실행하는 기능만 제공되는 것과 차이가 있다.
보다 구체적으로, 동적분석 에뮬레이터(10)는 유선단말 환경에서 동작하는 어플리케이션 형태로 제공가능하며, 안드로이드 플랫폼에 내장된 에뮬레이터 코드를 기반으로 안드로이드 프레임워크(2a), 코어 라이브러리(core library)(2b), 달빅 가상머신(이하 '달빅 VM')(2c)를 포팅하고 하기와 같은 필요 구성 컴포넌트를 추가한 형태로 구성된다.
동적분석 에뮬레이터(10)는 시스템 어답터(1a), 스크립트 플레이어(1b), 동적분석 UI 앱(1c), 상술한 포팅된 안드로이드 프레임워크(2a), 코어 라이브러리(2b), 달빅 VM(2c), 서비스 큐(3), 실시간 개인정보 외부유출 노티피게이션(4), 분석엔진(5), 인포메이션 모니터(6), 시스템 리소스 로거(7), 이벤트 로거(8), 분석결과 DB(9a), 데이터로그 DB(9b), I/O로그 DB(9c), 이벤트 DB(9d)와 같은 소프트웨어 모듈을 포함하여 이루어진다.
시스템 어답터(1a)는 동적분석 에뮬레이터(10)가 동적분석 관리자(40)와의 연동을 위한 컴포넌트이다.
보다 구체적으로 살펴보면, 시스템 어답터(1a)는 안드로이드 앱의 설치(install), 삭제(uninstall), 실행(execution)에 대한 동적분석 관리자(40)에 의한 관리, 그리고 후술할 스크립트 플레이어(1b)에서 실행 가능한 앱 실행 스크립트 제작에 대한 동적분석 관리자(40)에 의한 제어가 가능하도록 하는 연동 기능을 제공한다.
스크립트 플레이어(1b)는 안드로이드 앱을 시스템 어답터(1a)에 의해 동적분석 관리자(40)로부터 수신된 앱 실행 스크립트를 이용한 스크립트 기반으로 자동실행하기 위한 컴포넌트이다.
즉, 스크립트 플레이어(1b)는 동적분석 관리자(40)에서 제작된 안드로이드 앱을 실행시키는 처리 절차를 문자(텍스트)로 기술한 "스크립트"를 통해 안드로이드 앱을 실행하는 기능을 수행하는 컴포넌트이다.
또한, 스크립트 플레이어(1b)는 동적분석 관리자(40)의 제어를 통해 하나의 안드로이드 앱을 동적분석 에뮬레이터를 포함하는 다수의 독립된 동적분석 에뮬레이터 집단 또는 동적분석 에이전트를 포함하는 다수의 독립된 동적분석 에뮬레이터 에이전트 집단에서 동시 실행, 반복 실행, 타임라인 연계 실행 등이 가능하도록 구성된다. 또한, 스크립트 플레이어(1b)는 동적분석 관리자(40)에 의해 제작된 앱 실행 스크립트의 입력 없이 직접적 구동을 수행하는 랜덤 실행 기능도 지원하는 것이 바람직하다.
동적분석 UI 앱(1c)은 안드로이드 앱을 수동으로 실행하도록 하여 수동 실행에 따른 행위정보를 동작 상태에 따른 변화를 시간에 따라 기록하는 로깅(logging)을 수행하고, 분석엔진(5)을 통해 분석된 UI화면을 제공한다.
이에 따라 동적분석 UI 앱(1c)은 동적분석 관리자(40)를 통하지 않고 동적분석 에뮬레이터(10)와 유선단말(100)의 연동에 의한 직접적으로 행동정보에 대한 분석 기능을 수행하도록 하는 애플리케이션이다.
서비스 큐(3)는 실시간 로거(logger)인 인포메이션 모니터(6), 시스템 리소스 로거(7) 및 이벤트 로거(8)가 수집한 정보를 시스템 성능에 영향을 최소화하며 저장하기 위한 컴포넌트이다.
보다 구체적으로 서비스 큐(3)는 인포메이션 모니터(6), 시스템 리소스 로거(7), 이벤트 로거(8)에서 각각 발생되는 안드로이드 앱 실행을 위한 행위 기반 데이터인 로깅 정보를 큐로 입력받는다. 이후, 서비스 큐(3)는 큐에 있는 로깅 정보를 안드로이드 프레임워크에서 제공하는 서비스와 동일하게 비동기 방식으로 처리함으로써 데이터로그 DB(9b), I/O로그 DB(9c), 이벤트로그 DB(9d)에 각각 저장하는 기능을 수행하는 컴포넌트이다.
서비스 큐(3)는 많은 양의 로깅 정보를 동기적으로 처리한 경우 발생가능한 부하와 시스템 성능 저하를 최소화하기 위해 독립된 프로세스로 작동하며 백그라운드 프로세스와 같이 동작하는 컴포넌트이다.
이에 따라, 서비스 큐(3)의 하위 모듈은 도시된 바와 같은 DB 커서(DB cursor)(3a), 이벤트 로그 큐(event log queue)(3b), I/O 로그 큐(I/O log queue)(3c), 데이터 로그 큐(data log queue)(3d)로 구성된다.
실시간 개인정보 외부유출 노티피케이션(4)은 안드로이드 앱 실행 중 개인정보와 같은 중요정보의 네트워크로의 데이터 전송 또는 SMS 전송 등을 통해 외부 유출이 인포메이션 모니터(6)에 의해 감지되었을 경우, 이를 UI화면 등을 통해 사용자에게 안드로이드 프레임워크의 노티피케이션(notification)과 같은 방법으로 알려주는 역할을 수행하는 컴포넌트이다.
한편, 분석엔진(5)은 인포메이션 모니터(6), 시스템 리소스 로거(7), 이벤트 로거(8)에 의해 수집된 각종의 프로세싱 관련 정보를 기반으로 악의적인 행위를 수행하는 코드를 분석한다.
보다 구체적으로 살펴보면, 분석엔진(5)은 안드로이드 앱을 실행하는 동안 인포메이션 모니터(6), 시스템 리소스 로거(7), 이벤트 로거(8)가 수집한 로깅(logging) 정보와 동적분석 룰(rule)을 비교분석함으로써 악의적인 행위를 수행하는 코드가 안드로이드 앱에 내재되어 있는 지를 판별하고 결과 리포트(result report)를 생성하는 컴포넌트이다.
한편, 각 로깅 정보 수집 컴포넌트인 인포메이션 모니터(6), 시스템 리소스 로거(7), 이벤트 로거(8)에서 생성된 정보는 로깅(logging) 필터를 통해 분석엔진(5)에 제공되며, 동적분석 룰은 파서(parser, 미도시)를 통해 분석엔진(5)에 제공된다. 이를 위해 분석엔진(5)의 하위 모듈은 도시된 바와 같이, 동적분석 룰(5a), 로깅 정보필터(5b), 결과 리포트(5c)로 구성된다.
인포메이션 모니터(6)는 유선단말 환경에서 안드로이드 앱이 실행될 때 실시간으로 개인정보의 접근, 변형, 유출에 대한 행위정보를 추출하고 로깅함으로써 UI화면 등을 통해 사용자에게 알려주는 역할을 수행하는 컴포넌트이다.
보다 구체적으로, 인포메이션 모니터(6)는 안드로이드 앱 실행 중 유선단말(100) 내의 내장형 대용량 저장소나 SD 카드 및 USB 카드 등의 외장형 저장소에 저장된 중요정보인 개인정보에 접근하여 파일 형태와 같은 형식으로 저장하는 행위정보를 감시한다. 또한, 인포메이션 모니터(6)는 개인정보의 타입 변형을 트레이스하여 개인정보 값의 분산 또는 연산 등을 통해 외부로 유출되는 행위를 실시간으로 모니터링하고 알려주는 역할을 한다.
인포메이션 모니터(6)는 데이터 접근과 데이터 변형을 트레이스 하기 위해 달빅 가상머신(2c)과 코어 라이브러리(2b)를 포팅한 컴포넌트, 그리고 안드로이드 프레임워크(2a)에서 동작하는 백그라운드 프로세스의 형태로 제공된다. 이를 위해 인포메이션 모니터(6)의 하위 모듈은 유출 감지(6a), 데이터 변형 트레이스(6b), 데이터 접근 감지(6c)로 구성된다.
다음으로, 시스템 리소스 로거(7)는 안드로이드 앱을 실행할 때 발생하는 행위정보 중에서 네트워크, 파일시스템, 달빅 콜 스택(Dalvik call stack)을 트레이스 한다.
좀더 구체적으로 살펴보면, 시스템 리소스 로거(7)는 안드로이드 앱을 실행할 때 발생하는 행위정보 중에서 분석엔진(5)에서 악의적인 행위를 분석하기 위한 기반 정보인 네트워크 송수신 데이터정보, 파일시스템 읽기/쓰기 정보, 달빅 콜 스택을 트레이스한 정보를 추출하고 로깅하는 역할을 담당하는 컴포넌트이다. 시스템 리소스 로거(7)는 코어 라이브러리(2b)와 안드로이드 프레임워크(2a)를 포팅한 컴포넌트이며, 도시된 바와 같이 하위모듈로, 네트워크 I/O(7a), 스토리지 I/O(7b), 콜 스택 트레이스(7c)로 구성된다.
이벤트 로거(8)는 GPS 이벤트, 터치 이벤트, 시스템 이벤트의 행위정보를 추출하고 로깅하는 컴포넌트이다.
보다 구체적으로, 이벤트 로거(8)는 안드로이드 앱 실행시 발생하는 행위정보 중에서 분석엔진(5)에서의 악의적인 행위를 분석하기 위한 기반 정보인 GPS 이벤트, 터치 이벤트, 시스템 이벤트를 로깅하며, 안드로이드 프레임워크(2a)를 포팅한 컴포넌트이다. 이를 위해 이벤트 로거(8)의 하위 모듈은 도시된 바와 같이, GPS(8a), 터치(8b), 시스템(8c)로 구성된다.
다음으로, 분석결과 DB(9a)는 분석엔진(5)에 의해 생성된 결과 리포트를 저장한다.
데이터로그 DB(9b)는 인포메이션 모니터(6)에서 발생되는 로깅 정보를 서비스 큐(3)의 제어에 따라 저장하며, I/O로그 DB(9c)는 시스템 리소스 로거(7)에서 발생되는 로깅 정보를 서비스 큐(3)의 제어에 따라 저장하며, 이벤트 DB(9d)는 이벤트 로거(8)에서 발생되는 로깅 정보를 서비스 큐(3)의 제어에 따라 저장하며, 각 저장되는 정보는 비동기식으로 저장되는 것을 특징으로 한다.
이하에서는, 동적분석 에뮬레이터(10) 외에 안드로이드 앱의 행위정보 동적분석 시스템을 살펴보도록 한다.
동적분석 에이전트(20)는 안드로이드 운영체제를 기반으로 하는 스마트폰과 같은 무선단말(200)에서 동작한다.
보다 구체적으로, 동적분석 에이전트(20)는 안드로이드 운영체제를 탑재한 스마트폰에서 동작하는 어플리케이션(application) 형태와 이미지로 제공되며, 기능 및 구성은 동적분석 에뮬레이터(10)와 동일하다.
그러나 동적분석 에이전트(20)는 안드로이드 소프트웨어 개발 키트(SDK) 코드를 기반으로 하지 않고 안드로이드 소스를 기반으로 안드로이드 프레임워크(2a), 코어 라이브러리(2b), 달빅 가상머신(2c)을 포팅하고 필요한 구성 컴포넌트를 추가한 형태로 구성된다.
코드 분석기(30)는 안드로이드 앱 실행시 실제 사용되는 코드를 측정한 코드 커버리지를 분석한다.
보다 구체적으로, 코드 분석기(30)는 안드로이드 앱에 포함된 실행 코드, 클래스 및 함수 호출, 클래스 상속관계를 분석해서 실제 사용되는 코드를 구분한다. 이에 따라, 코드 분석기(30)는 동적분석 에뮬레이터(10) 또는 동적분석 에이전트(20)에 의해 안드로이드 앱이 실행된 뒤, 행위정보를 기반으로 분석 엔진(5)에서 안드로이드 앱에 대한 데이터 수집 분석이 수행될 때, 코드 커버리지를 분석한 결과를 제공한다. 이에 따라, 코드 분석기(30)는 동적분석 에뮬레이터(10)에서 사용가능한 동적 연결 라이브러리로 제공된다.
한편, 동적분석 관리자(40)는 동적분석 에뮬레이터(10) 또는 동적분석 에이전트(20)와 연동하여 단말장치(100, 200)에서 안드로이드 앱의 설치, 삭제, 실행에 대한 관리를 수행한다.
또한, 동적 분석 관리자(40)는 스크립트 플레이어(1b)에서 실행 가능한 앱 실행 스크립트를 제작하도록 제어하는 기능을 수행하며 유선단말(100)을 위한 어플리케이션 형태로 제공된다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 캐리어웨이브(예컨대, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산된 방식으로 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적 프로그램, 코드, 코드 세그먼트는 본 발명이 속하는 기술 분야의 프로그래머들에 의해 용이하게 추론될 수 있다.

Claims (17)

  1. 안드로이드 앱을 유선단말에서 실행시, 상기 안드로이드 앱 실행에 따라 행위정보를 모니터링하여, 상기 행위정보를 기반으로 데이터를 수집 분석하여 상기 안드로이드 앱에 악의적인 코드의 내재 여부를 분석하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 에뮬레이터.
  2. 청구항 1에 있어서,
    상기 유선단말 환경에서 상기 안드로이드 앱이 실행될 때 실시간 개인정보의 접근, 변형, 유출에 대한 행위정보를 추출하고 로깅하는 인포메이션 모니터;
    상기 안드로이드 앱이 실행시 네트워크 송수신 데이터정보, 파일시스템 읽기/쓰기 정보, 달빅 콜 스택을 트레이스한 행위정보를 추출하고 로깅하는 시스템 리소스 로거;
    상기 안드로이드 앱 실행시 발생하는 행위정보 중에서 GPS 이벤트, 터치 이벤트, 시스템 이벤트의 행위정보를 추출하고 로깅하는 이벤트 로거;
    상기 인포메이션 모니터, 상기 시스템 리소스 로거, 상기 이벤트 로거에 의해 각각 수집된 행위정보를 기반으로 악의적인 행위를 수행하는 코드가 내재되어 있는 지를 분석하여 결과 리포트를 생성하는 분석엔진;
    을 포함하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 에뮬레이터.
  3. 청구항 2에 있어서,
    상기 분석엔진은 상기 인포메이션 모니터, 상기 시스템 리소스 로거, 상기 이벤트 로거에 의해 수집된 로깅 정보와 동적분석 룰을 비교분석하여 악의적인 행위가 수행되는지를 분석하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 에뮬레이터.
  4. 청구항 2에 있어서,
    상기 인포메이션 모니터는 상기 안드로이드 앱 실행 중 상기 유선단말 내장형 또는 외장형 저장소에 저장된 상기 개인정보에 접근하여 데이터를 저장하는 행위정보를 감시하고, 상기 개인정보의 타입 변경을 트레이스하여, 상기 개인정보 값의 분산 또는 연산을 통해 외부로 유출되는 것을 모니터링하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 에뮬레이터.
  5. 청구항 2에 있어서,
    다수의 독립된 동적분석 에뮬레이터에서 상기 안드로이드 앱을 동시 실행, 반복 실행, 타임라인(Timeline) 연계 실행이 가능하도록 하며, 스크립트 입력 없이 직접 구동하는 랜덤 실행 기능을 지원하는 스트립트 플레이어;
    상기 안드로이드 앱의 설치, 삭제, 실행에 대한 관리를 수행하고, 상기 스트립트 플레이어에서 실행 가능한 앱 실행 스크립트를 제작을 제어하는 동적분석 관리자에 의한 관리 및 제어가 가능하도록 하기 위해 연동 기능을 제공하는 시스템 어답터;
    상기 안드로이드 앱을 수동으로 실행하도록 하여, 수동 실행에 따른 행위정보를 로깅하고 상기 분석엔진을 통해 분석된 상기 결과 리포트를 UI화면을 통해 제공하도록 제어하는 동적분석 UI 앱;
    를 더 포함하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 에뮬레이터.
  6. 청구항 2에 있어서,
    상기 인포메이션 모니터, 상기 시스템 리소스 로거, 상기 이벤트 로거에서 각각 발생되는 로깅 정보를 큐(Queue)로 입력받은 뒤, 비동기 방식으로 독립된 프로세스로 처리하여 각기 다른 DB로 저장하도록 하는 서비스 큐;
    를 더 포함하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 에뮬레이터.
  7. 청구항 6에 있어서,
    상기 안드로이드 앱 실행 중 네트워크로의 데이터 전송 또는 SMS 전송에 의한 외부 유출을 상기 인포메이션 모니터가 감지한 경우, UI화면을 통해 사용자에게 알려주는 실시간 개인정보 외부유출 노티피케이션;
    을 더 포함하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 에뮬레이터.
  8. 안드로이드 앱을 유선단말에서 실행시, 상기 안드로이드 앱 실행에 따라 행위정보를 모니터링하여, 상기 행위정보를 기반으로 데이터를 수집 분석하여 상기 안드로이드 앱에 악의적인 코드의 내재와 상기 안드로이드 앱의 실제 동작 여부를 분석하는 동적분석 에뮬레이터;
    상기 안드로이드 앱을 무선단말에서 실행시, 상기 동적분석 에뮬레이터와 동일한 동작을 수행하는 동적분석 에이전트;
    상기 안드로이드 앱의 설치, 삭제, 행에 대한 관리를 수행하고, 상기 동적분석 에뮬레이터와 상기 동적분석 에이전트에서 실행 가능한 앱 실행 스크립트를 제작하도록 제어하는 동적분석 관리자;
    를 포함하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 시스템.
  9. 청구항 8에 있어서,
    상기 안드로이드 앱에 포함된 실행 코드, 클래스 및 함수 호출, 클래스 상속관계를 분석해서 실제 사용되는 코드를 구분한 뒤, 상기 동적분석 에뮬레이터와 상기 동적분석 에이전트에 의해 상기 행위정보를 기반으로 데이터의 수집 분석이 수행될 때, 코드 커버리지를 분석한 결과를 제공하여 상기 안드로이드 앱의 실제 동작 여부를 판단하도록 하는 코드 분석기;
    를 더 포함하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 시스템.
  10. 청구항 8에 있어서,
    상기 동적분석 에뮬레이터는 상기 유선단말 환경에서 동작하는 어플리케이션 형태로 제공되며, 안드로이드 플랫폼에 내장된 에뮬레이터 코드를 기반으로 안드로이드 프레임워크(Android Framework), 코어 라이브러리(Core Library), 달빅 가상머신(Dalvik Virtual Machine)를 포팅한 뒤, 구성 컴포넌트를 추가하여 형성되는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 시스템.
  11. 안드로이드 앱을 유선단말에서 실행시, 상기 안드로이드 앱 실행에 따라 행위정보를 모니터링하여, 상기 행위정보를 기반으로 데이터를 수집 분석하여 상기 안드로이드 앱에 악의적인 코드의 내재 여부를 분석하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체.
  12. 청구항 11에 있어서,
    상기 유선단말 환경에서 상기 안드로이드 앱이 실행될 때 실시간으로 개인정보의 접근, 변형, 유출에 대한 행위정보를 추출하고 로깅하는 인포메이션 모니터 기능과,
    상기 안드로이드 앱이 실행시 네트워크 송수신 데이터정보, 파일시스템 읽기/쓰기 정보, 달빅 콜 스택을 트레이스한 행위정보를 추출하고 로깅하는 시스템 리소스 로거 기능과,
    상기 안드로이드 앱 실행시 발생하는 행위정보 중에서 GPS 이벤트, 터치 이벤트, 시스템 이벤트의 행위정보를 추출하고 로깅하는 이벤트 로거 기능과,
    상기 인포메이션 모니터 기능, 상기 시스템 리소스 로거 기능, 상기 이벤트 로거 기능에 의해 각각 수집된 행위정보를 기반으로 악의적인 행위를 수행하는 코드가 내재되어 있는 지를 분석하여 결과 리포트를 생성하는 분석엔진 기능을 실행시키는 분석엔진 기능을 실행하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체.
  13. 청구항 12에 있어서,
    상기 분석엔진 기능은 상기 인포메이션 모니터 기능, 상기 시스템 리소스 로거 기능, 상기 이벤트 로거 기능에 의해 수집된 로깅 정보와 동적분석 룰을 비교분석하여 악의적인 행위가 수행되는지를 분석하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체.
  14. 청구항 12에 있어서,
    상기 인포메이션 모니터 기능은,
    상기 안드로이드 앱 실행 중 상기 유선단말 내장형 또는 외장형 저장소에 저장된 상기 개인정보에 접근하여 데이터를 저장하는 행위정보를 감시하고, 상기 개인정보의 타입 변경을 트레이스하여, 상기 개인정보 값의 분산 또는 연산을 통해 외부로 유출되는 것을 모니터링하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체.
  15. 청구항 12에 있어서,
    다수의 독립된 동적분석 에뮬레이터에서 상기 안드로이드 앱을 동시 실행, 반복 실행, 타임라인 연계 실행이 가능하도록 하며, 스크립트 입력 없이 직접 구동하는 랜덤 실행 기능을 지원하는 스트립트 플레이어 기능;
    상기 안드로이드 앱의 설치, 삭제, 실행에 대한 관리를 수행하고, 상기 스트립트 플레이어 기능에서 실행 가능한 앱 실행 스크립트를 제작을 제어하는 동적분석 관리자에 의한 관리 및 제어가 가능하도록 하기 위해 연동 기능을 제공하는 시스템 어답터 기능;
    상기 안드로이드 앱을 수동으로 실행하도록 하여, 수동 실행에 따른 행위정보를 로깅하고 상기 분석엔진을 통해 분석된 상기 결과 리포트를 UI화면을 통해 제공하도록 제어하는 동적분석 UI 앱 기능;
    을 더 실행하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체.
  16. 청구항 12에 있어서,
    상기 인포메이션 모니터 기능, 상기 시스템 리소스 로거 기능, 상기 이벤트 로거 기능에서 각각 발생되는 로깅 정보를 큐(Queue)로 입력받은 뒤, 비동기 방식으로 독립된 프로세스로 처리하여 각기 다른 DB로 저장하도록 하는 서비스 큐 기능;
    을 더 실행하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체.
  17. 청구항 12에 있어서,
    상기 안드로이드 앱 실행 중 네트워크로의 데이터 전송 또는 SMS 전송에 의한 외부 유출을 상기 인포메이션 모니터가 감지한 경우, UI화면을 통해 사용자에게 알려주는 실시간 개인정보 외부유출 노티피케이션 기능; 을 더 포함하는 것을 특징으로 하는 안드로이드 앱의 행위정보 동적분석 프로그램이 컴퓨터 판독 가능하게 기록된 기록매체.
PCT/KR2011/006956 2011-09-20 2011-09-21 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 WO2013042802A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2011-0094707 2011-09-20
KR1020110094707A KR101290565B1 (ko) 2011-09-20 2011-09-20 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Publications (1)

Publication Number Publication Date
WO2013042802A1 true WO2013042802A1 (ko) 2013-03-28

Family

ID=47914555

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/006956 WO2013042802A1 (ko) 2011-09-20 2011-09-21 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Country Status (2)

Country Link
KR (1) KR101290565B1 (ko)
WO (1) WO2013042802A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252409A (zh) * 2013-06-26 2014-12-31 阿里巴巴集团控股有限公司 一种获取WebApp执行过程的方法及系统
CN104268057A (zh) * 2014-09-24 2015-01-07 河海大学 一种Android平台下的模块化系统的监控系统及方法
WO2016027923A1 (ko) * 2014-08-20 2016-02-25 주식회사 앤벗 어플리케이션 사용정보 분석자료 제공 방법 및 장치
CN110334028A (zh) * 2019-07-08 2019-10-15 北京智游网安科技有限公司 一种安卓模拟器检测方法、计算机设备及存储介质
CN110457220A (zh) * 2019-08-08 2019-11-15 北京智游网安科技有限公司 基于安卓系统的模拟器检测方法、智能终端及存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101472321B1 (ko) * 2013-06-11 2014-12-12 고려대학교 산학협력단 이동단말의 어플리케이션 내 악성코드 탐지 방법 및 시스템
KR102071530B1 (ko) 2013-07-12 2020-01-30 삼성전자주식회사 디나이얼 발생시 대응 메뉴얼을 제안하는 전자 장치 및 방법
KR101527098B1 (ko) * 2013-08-28 2015-06-09 고려대학교 산학협력단 랜덤 실행 코드를 이용한 스마트 기기 내 어플리케이션 검증 서버 및 검증방법
CN104899129A (zh) * 2014-03-06 2015-09-09 腾讯科技(深圳)有限公司 日志记录方法及装置
CN114385305B (zh) * 2022-03-23 2022-07-08 麒麟软件有限公司 一种录制Linux屏幕并分享给安卓应用的系统和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100989613B1 (ko) * 2009-12-08 2010-10-26 (주)제이모바일 비안드로이드 플랫폼에서 안드로이드 어플리케이션을 실행하는 단말장치
KR101027971B1 (ko) * 2010-12-10 2011-04-13 (주)헬릭스테크 애플리케이션 검사 가능한 이동통신 단말기 및 그 검사 방법
KR20110084693A (ko) * 2010-01-18 2011-07-26 (주)쉬프트웍스 안드로이드 단말 플랫폼에서의 악성 코드와 위험 파일의 진단 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101015573B1 (ko) 2010-07-29 2011-02-16 (주)제이모바일 Rtos 기반의 안드로이드 어플리케이션 실행 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100989613B1 (ko) * 2009-12-08 2010-10-26 (주)제이모바일 비안드로이드 플랫폼에서 안드로이드 어플리케이션을 실행하는 단말장치
KR20110084693A (ko) * 2010-01-18 2011-07-26 (주)쉬프트웍스 안드로이드 단말 플랫폼에서의 악성 코드와 위험 파일의 진단 방법
KR101027971B1 (ko) * 2010-12-10 2011-04-13 (주)헬릭스테크 애플리케이션 검사 가능한 이동통신 단말기 및 그 검사 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TOMAS B. ET AL.: "An Android Application Sandbox System for Suspicious Software Detection", THE 5TH INTERNATIONAL CONFERENCE ON MALICIOUS AND UNWANTED SOFTWARE (MALWARE), October 2010 (2010-10-01), pages 55 - 62 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252409A (zh) * 2013-06-26 2014-12-31 阿里巴巴集团控股有限公司 一种获取WebApp执行过程的方法及系统
WO2016027923A1 (ko) * 2014-08-20 2016-02-25 주식회사 앤벗 어플리케이션 사용정보 분석자료 제공 방법 및 장치
CN104268057A (zh) * 2014-09-24 2015-01-07 河海大学 一种Android平台下的模块化系统的监控系统及方法
CN110334028A (zh) * 2019-07-08 2019-10-15 北京智游网安科技有限公司 一种安卓模拟器检测方法、计算机设备及存储介质
CN110457220A (zh) * 2019-08-08 2019-11-15 北京智游网安科技有限公司 基于安卓系统的模拟器检测方法、智能终端及存储介质

Also Published As

Publication number Publication date
KR20130031035A (ko) 2013-03-28
KR101290565B1 (ko) 2013-07-31

Similar Documents

Publication Publication Date Title
WO2013042802A1 (ko) 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
US9009677B2 (en) Application testing and analysis
Liu et al. Where has my battery gone? Finding sensor related energy black holes in smartphone applications
CN108255729B (zh) 一种基于Unity平台的手机游戏自动化测试方法和系统
Zhang et al. Panappticon: Event-based tracing to measure mobile application and platform performance
Ali-Gombe et al. Toward a more dependable hybrid analysis of android malware using aspect-oriented programming
WO2014042297A1 (ko) 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법
CN110046479B (zh) 一种基于安卓操作系统的链接库文件反调试方法及装置
US8261243B2 (en) Selective execution of trace mechanisms for applications having different bit structures
CN108255716A (zh) 一种基于云计算技术的软件测评方法
CN104375938A (zh) 安卓应用程序的动态行为监测方法及系统
CN107102885A (zh) 利用adb方式检测安卓模拟器的方法及装置
CN109857520B (zh) 一种虚拟机自省中的语义重构改进方法及系统
Maier et al. BSOD: Binary-only scalable fuzzing of device drivers
CN110704303A (zh) 一种测试覆盖度信息的获取方法及装置
CN110414220B (zh) 沙箱内程序动态执行过程中的操作文件提取方法及装置
CN112632547A (zh) 一种数据处理方法和相关装置
Daoud et al. Multilevel analysis of the java virtual machine based on kernel and userspace traces
US20160291951A1 (en) Dynamic provision of debuggable program code
Seo et al. Automating embedded software testing on an emulated target board
Zheng et al. On-chip system call tracing: A feasibility study and open prototype
KR20180127612A (ko) 가상환경에서 악성코드의 분석회피 방지 시스템
CN110096888A (zh) 一种加快验证及分析smm安全隐患的方法及系统
Menezes et al. Detecting information leaks in Android applications using a hybrid approach with program slicing, instrumentation and tagging
US11886589B2 (en) Process wrapping method for evading anti-analysis of native codes, recording medium and device for performing the method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11872747

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11872747

Country of ref document: EP

Kind code of ref document: A1