KR102683445B1 - Method for android malicious app record and replay, recording medium and device for performing the method - Google Patents
Method for android malicious app record and replay, recording medium and device for performing the method Download PDFInfo
- Publication number
- KR102683445B1 KR102683445B1 KR1020220051398A KR20220051398A KR102683445B1 KR 102683445 B1 KR102683445 B1 KR 102683445B1 KR 1020220051398 A KR1020220051398 A KR 1020220051398A KR 20220051398 A KR20220051398 A KR 20220051398A KR 102683445 B1 KR102683445 B1 KR 102683445B1
- Authority
- KR
- South Korea
- Prior art keywords
- app
- state
- recording
- execution
- user
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 230000008569 process Effects 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 7
- 230000003993 interaction Effects 0.000 claims description 34
- 230000008859 change Effects 0.000 claims description 20
- 230000000694 effects Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000002474 experimental method Methods 0.000 description 6
- 235000021572 root beer Nutrition 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012430 stability testing Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
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
-
- 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/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 안드로이드 악성 앱 기록 및 재실행 방법, 이를 수행하기 위한 기록 매체 및 장치에 대한 것이다.
본 발명에 따른 안드로이드 악성 앱 기록 및 재실행 방법은 사용자로부터 기록 또는 재실행 중 어느 하나의 명령어를 입력받는 단계; 상기 입력받은 명령어에 대응하여 프로세스 상태를 기록 또는 재실행 상태로 변경하는 단계; 사용자로부터 분석하고자 하는 타겟 앱이 실행되면, 현재 설정된 상태를 판단하는 단계; 상기 판단된 현재 설정된 상태가 기록 상태인 경우 사용자에 의해 앱이 실행되는 내용을 기록하고, 재실행 상태인 경우 기록된 파일을 열어 파일의 내용대로 앱을 재실행하는 단계; 및 상기 기록 및 재실행이 완료된 후 상기 타겟 앱의 실행을 종료하는 단계를 포함한다.The present invention relates to a method for recording and re-executing an Android malicious app, and a recording medium and device for performing the same.
A method of recording and re-executing an Android malicious app according to the present invention includes the steps of receiving a command from a user to record or re-execute; Changing the process state to a record or re-execution state in response to the input command; When the target app to be analyzed is executed by the user, determining the currently set state; If the determined currently set state is a recording state, recording the content of the app being executed by the user, and if it is a re-execution state, opening the recorded file and re-executing the app according to the contents of the file; and terminating execution of the target app after the recording and re-execution are completed.
Description
본 발명은 안드로이드 악성 앱 기록 및 재실행 방법, 이를 수행하기 위한 기록 매체 및 장치에 관한 것으로서, 더욱 상세하게는 안드로이드의 실행 환경 탐지에 사용되는 API를 기록 및 재실행하여 악성앱을 기록하고 재실행할 수 있는 안드로이드 악성 앱 기록 및 재실행 방법, 이를 수행하기 위한 기록 매체 및 장치에 관한 것이다.The present invention relates to a method of recording and re-executing Android malicious apps, a recording medium and device for performing the same. More specifically, it relates to a method for recording and re-executing malicious apps by recording and re-executing the API used to detect the execution environment of Android. It relates to methods for recording and re-running Android malicious apps, and recording media and devices for doing so.
스마트폰 앱의 기록 및 재실행(Record & Replay) 도구들은 버그 재실행에서부터 체계적인 안정성 테스트까지 앱의 개발에서 아주 중요하게 사용된다. 그러나 기존 안드로이드 플랫폼 기반 앱 기록 및 재실행 도구들은 안드로이드 API를 기록 및 재실행하지 못하기 때문에 실행환경에 따라 다른 동작을 수행하는 앱의 재실행이 어렵다.Record & Replay tools for smartphone apps are very important in app development, from bug replay to systematic stability testing. However, existing Android platform-based app recording and rerunning tools cannot record and rerun Android APIs, making it difficult to rerun apps that perform different operations depending on the execution environment.
안드로이드 악성앱 동적 분석 도구는, 에뮬레이터로 구성된 샌드박스라는 안전한 환경에서 악성으로 의심되는 코드를 실행하여 안드로이드 악성코드를 분석하는 도구로, 내부 작업의 분석에 상승된 권한을 필요로 하기 때문에 주로 루팅 환경에서 악성앱 분석을 수행한다. 그러나 최근의 안드로이드 악성 앱은 분석 도구에서 악성 행위를 숨기기 위해 탐지 회피 및 분석 방지 기술을 적용하여 많은 기존 분석 도구를 무력화했다.The Android malicious app dynamic analysis tool is a tool that analyzes Android malicious code by executing suspected malicious code in a safe environment called a sandbox consisting of an emulator. It is mainly used in a rooted environment because it requires elevated privileges to analyze internal operations. Perform malicious app analysis. However, recent Android malicious apps have disabled many existing analysis tools by applying detection evasion and anti-analysis techniques to hide their malicious behavior from analysis tools.
분석 회피 기법이 적용된 악성 앱을 효율적으로 분석하기 위해서는 기존 동적 분석 도구가 동작하는 루팅 환경이나 에뮬레이션 환경에서 악성 앱의 악성행위를 재현할 필요가 있다. 그러나 기존 안드로이드 기반 기록 및 재실행 도구는 악성 앱이 안드로이드의 실행 환경을 탐지하는데 사용되는 일부 API를 기록하고 재실행할 수 없다. In order to efficiently analyze malicious apps with analysis evasion techniques applied, it is necessary to reproduce the malicious behavior of the malicious app in a rooting or emulation environment where existing dynamic analysis tools operate. However, existing Android-based record and replay tools cannot record and replay some APIs that malicious apps use to detect Android's execution environment.
따라서, 안드로이드의 실행 환경 탐지에 사용되는 API(Application Programming Interface) 또한 기록하고 재실행하여 악성앱을 기록하고 재실행할 수 있는 안드로이드 악성 앱 기록 및 재실행 도구의 개발이 필요하다.Therefore, it is necessary to develop an Android malicious app recording and re-execution tool that can record and re-execute malicious apps by also recording and re-executing the API (Application Programming Interface) used to detect Android's execution environment.
본 발명의 배경이 되는 기술은 대한민국 등록특허공보 제10-2271269호(2021.06.29. 공고)에 개시되어 있다.The technology behind the present invention is disclosed in Republic of Korea Patent Publication No. 10-2271269 (announced on June 29, 2021).
본 발명이 이루고자 하는 기술적 과제는 안드로이드의 실행 환경 탐지에 사용되는 API를 기록 및 재실행하여 악성앱을 기록하고 재실행함으로써, 안드로이드 오픈 소스 프로젝트(Android Open Source Project, AOSP)의 안드로이드 플랫폼 코드를 수정하여 기기를 루팅하거나 후킹하지 않은 상태에서 실행되는 타겟 앱을 기록할 수 있는 안드로이드 악성 앱 기록 및 재실행 방법, 이를 수행하기 위한 기록 매체 및 장치를 제공하기 위한 것이다.The technical problem to be achieved by the present invention is to record and re-execute the API used to detect Android's execution environment to record and re-execute malicious apps, thereby modifying the Android platform code of the Android Open Source Project (AOSP) to The purpose is to provide a method for recording and rerunning Android malicious apps that can record target apps running without rooting or hooking, as well as recording media and devices for doing so.
또한, 타겟 앱 프로세스를 다른 프로세스와 구별하기 위해 사용자 명령을 수신하여 타겟 앱 프로세스의 기록 및 재실행 상태를 설정하는 안드로이드 악성 앱 기록 및 재실행 방법, 이를 수행하기 위한 기록 매체 및 장치를 제공하기 위한 것이다.In addition, it is intended to provide a method for recording and rerunning an Android malicious app that receives a user command to distinguish the target app process from other processes and sets the recording and re-execution status of the target app process, and a recording medium and device for performing the method.
또한, 타겟 앱과 사용자 간의 상호작용, 타겟 앱과 다른 앱간의 상호작용을 기록하고 재실행하여 분석 회피 기법이 적용된 악성 앱을 기록하고 재실행하는 안드로이드 악성 앱 기록 및 재실행 방법, 이를 수행하기 위한 기록 매체 및 장치를 제공하기 위한 것이다.In addition, a method for recording and re-running Android malicious apps that records and re-executes malicious apps with analysis evasion techniques applied by recording and re-executing interactions between the target app and the user, and interactions between the target app and other apps, a recording medium for performing this, and This is to provide a device.
이러한 기술적 과제를 이루기 위한 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 방법은, 사용자로부터 기록 또는 재실행 중 어느 하나의 명령어를 입력받는 단계; 상기 입력받은 명령어에 대응하여 프로세스 상태를 기록 또는 재실행 상태로 변경하는 단계; 사용자로부터 분석하고자 하는 타겟 앱이 실행되면, 현재 설정된 상태를 판단하는 단계; 상기 판단된 현재 설정된 상태가 기록 상태인 경우 사용자에 의해 앱이 실행되는 내용을 기록하고, 재실행 상태인 경우 기록된 파일을 열어 파일의 내용대로 앱을 재실행하는 단계; 및 상기 기록 및 재실행이 완료된 후 상기 타겟 앱의 실행을 종료하는 단계를 포함한다.A method of recording and re-executing an Android malicious app according to an embodiment of the present invention to achieve this technical problem includes receiving a command from a user to record or re-execute; Changing the process state to a record or re-execution state in response to the input command; When the target app to be analyzed is executed by the user, determining the currently set state; If the determined currently set state is a recording state, recording the content of the app being executed by the user, and if it is a re-execution state, opening the recorded file and re-executing the app according to the contents of the file; and terminating execution of the target app after the recording and re-execution are completed.
이때, 상기 프로세스 상태를 기록 또는 재실행 상태로 변경하는 단계는, 안드로이드 액티비티 매니저를 수정하여 상기 입력받은 명령어를 처리하고, 자이고트(zygote) 프로세스를 수정하여 기록 및 재실행 상태를 변경하는 메소드를 호출하여 상기 프로세스 상태를 기록 또는 재실행 상태로 변경할 수 있다.At this time, the step of changing the process state to a record or rerun state involves modifying the Android Activity Manager to process the input command, and calling a method to change the record and rerun state by modifying the zygote process. The process state can be changed to record or re-execution state.
또한, 상기 판단된 현재 설정된 상태가 기록 상태인 경우, 사용자로부터 실행되는 상기 타겟 앱의 외부에서 발생하는 이벤트 내용을 API(Application Programming Interface) 호출 정보 파일에 기록하되, 사용자의 터치에 의해 발생하는 터치 이벤트를 실시간으로 기록하여 상기 타겟 앱과 사용자 간 상호 작용을 기록하고, 타겟 앱이 수신하는 인텐트(intent)와, 해당 인텐트를 수신한 시간을 기록하여 인텐트 객체를 통해서 발송되는 브로드 캐스트 수신 이벤트를 기록하여 상기 타겟 앱과 다른 앱 간의 상호 작용을 기록할 수 있다.In addition, when the determined currently set state is the recording state, the event contents occurring outside the target app executed by the user are recorded in the API (Application Programming Interface) call information file, and the touch generated by the user's touch is recorded in the API (Application Programming Interface) call information file. Events are recorded in real time to record interactions between the target app and the user, and the intent received by the target app and the time the intent is received are recorded to receive broadcasts sent through the intent object. By recording events, you can record interactions between the target app and other apps.
또한, 상기 판단된 현재 설정된 상태가 기록 상태인 경우, 사용자로부터 실행되는 상기 타겟 앱의 수(su) 파일을 탐색하여 루틴 환경을 탐지하고, 탐지시마다 악성 앱이 호출하는 API 호출 정보를 기록하되, 파일의 존재 유무를 검사하는 API, 지정한 패키지 정보를 확인하는 API, 지정한 속성의 값을 가져오는 API 및 셀 명령의 실행 결과 확인에 사용되는 버퍼 리드 API를 각각 기록할 수 있다.In addition, when the determined currently set state is a recording state, the routine environment is detected by searching the number (su) file of the target app executed by the user, and the API call information called by the malicious app is recorded each time it is detected, The API that checks the existence of a file, the API that checks the specified package information, the API that retrieves the value of the specified attribute, and the buffer read API used to check the execution result of the cell command can each be recorded.
또한, 상기 판단된 현재 설정된 상태가 재실행 상태인 경우, 기록된 내용대로 상기 타겟 앱을 재실행하되, 사용자로부터 실행되는 상기 타겟 앱의 외부에서 발생하는 이벤트를 재현하여 재실행하거나 상기 타겟 앱이 호출하는 API의 동작 흐름을 수정하여 재실행할 수 있다.In addition, if the determined currently set state is a re-execution state, the target app is re-executed as recorded, but the event that occurs outside the target app executed by the user is reproduced and re-executed, or the API called by the target app is performed. The operation flow can be modified and re-executed.
또한, 본 발명의 다른 실시 예에 따른 컴퓨터로 판독 가능한 기록 매체에는 상기 안드로이드 악성 앱 기록 및 재실행 방법을 수행하기 위한 컴퓨터 프로그램이 기록될 수 있다.Additionally, a computer program for performing the method of recording and re-executing the Android malicious app may be recorded on a computer-readable recording medium according to another embodiment of the present invention.
또한, 본 발명의 다른 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 장치는, 사용자로부터 기록 또는 재실행 중 어느 하나의 명령어를 입력받는 명령어 입력부; 상기 입력받은 명령어에 대응하여 프로세스 상태를 기록 또는 재실행 상태로 변경하는 상태 변경부; 사용자로부터 분석하고자 하는 타겟 앱이 실행되면, 현재 설정된 상태를 판단하는 상태 판단부; 및 상기 판단된 현재 설정된 상태가 기록 상태인 경우 사용자에 의해 앱이 실행되는 내용을 기록하고, 재실행 상태인 경우 기록된 파일을 열어 파일의 내용대로 앱을 재실행하며, 상기 기록 및 재실행이 완료된 후 상기 타겟 앱의 실행을 종료하는 수행부를 포함한다.In addition, an Android malicious app recording and re-executing device according to another embodiment of the present invention includes a command input unit that receives either a recording or re-executing command from the user; a state change unit that changes the process state to a record or re-execution state in response to the input command; A state determination unit that determines the currently set state when the target app to be analyzed is executed by the user; And if the determined currently set state is in the recording state, the content of the app being executed by the user is recorded, and if it is in the re-execution state, the recorded file is opened and the app is re-executed according to the contents of the file, and after the recording and re-execution are completed, the app is executed. Includes an execution unit that terminates execution of the target app.
이때, 상기 상태 변경부는 안드로이드 액티비티 매니저를 수정하여 상기 입력받은 명령어를 처리하고, 자이고트(zygote) 프로세스를 수정하여 기록 및 재실행 상태를 변경하는 메소드를 호출하여 상기 프로세스 상태를 기록 또는 재실행 상태로 변경할 수 있다.At this time, the state change unit processes the input command by modifying the Android activity manager, and modifies the zygote process to change the process state to the record or re-execution state by calling a method to change the recording and re-execution state. You can.
또한, 상기 수행부는 상기 판단된 현재 설정된 상태가 기록 상태인 경우, 사용자로부터 실행되는 상기 타겟 앱의 외부에서 발생하는 이벤트 내용을 API(Application Programming Interface) 호출 정보 파일에 기록하되, 사용자의 터치에 의해 발생하는 터치 이벤트를 실시간으로 기록하여 상기 타겟 앱과 사용자 간 상호 작용을 기록하고, 타겟 앱이 수신하는 인텐트(intent)와, 해당 인텐트를 수신한 시간을 기록하여 인텐트 객체를 통해서 발송되는 브로드 캐스트 수신 이벤트를 기록하여 상기 타겟 앱과 다른 앱 간의 상호 작용을 기록할 수 있다.In addition, when the determined currently set state is the recording state, the executing unit records event contents occurring outside the target app executed by the user in an API (Application Programming Interface) call information file, and Touch events that occur are recorded in real time to record the interaction between the target app and the user, and the intent received by the target app and the time at which the intent is received are recorded, and the intent sent through the intent object is recorded. By recording broadcast reception events, interactions between the target app and other apps can be recorded.
또한, 상기 수행부는 상기 판단된 현재 설정된 상태가 기록 상태인 경우, 사용자로부터 실행되는 상기 타겟 앱의 수(su) 파일을 탐색하여 루틴 환경을 탐지하고, 탐지시마다 악성 앱이 호출하는 API 호출 정보를 기록하되, 파일의 존재 유무를 검사하는 API, 지정한 패키지 정보를 확인하는 API, 지정한 속성의 값을 가져오는 API 및 셀 명령의 실행 결과 확인에 사용되는 버퍼 리드 API를 각각 기록할 수 있다.In addition, if the determined currently set state is the record state, the execution unit detects the routine environment by searching the number (su) file of the target app executed by the user, and provides API call information called by the malicious app whenever detected. You can record the API that checks the existence of a file, the API that checks the specified package information, the API that gets the value of the specified attribute, and the buffer read API that is used to check the execution result of the cell command.
또한, 상기 수행부는 상기 판단된 현재 설정된 상태가 재실행 상태인 경우, 기록된 내용대로 상기 타겟 앱을 재실행하되, 사용자로부터 실행되는 상기 타겟 앱의 외부에서 발생하는 이벤트를 재현하여 재실행하거나 상기 타겟 앱이 호출하는 API의 동작 흐름을 수정하여 재실행할 수 있다.In addition, if the determined currently set state is a re-execution state, the executing unit re-executes the target app according to the recorded contents, but reproduces and re-executes an event that occurs outside the target app executed by the user or re-executes the target app. The operation flow of the calling API can be modified and re-executed.
이와 같이 본 발명에 따르면, 안드로이드의 실행 환경 탐지에 사용되는 API를 기록 및 재실행하여 악성앱을 기록하고 재실행함으로써, 안드로이드 오픈 소스 프로젝트의 안드로이드 플랫폼 코드를 수정하여 기기를 루팅하거나 후킹하지 않은 상태에서 실행되는 타겟 앱을 기록하고, 이후 기록된 실행 흐름을 사용하여 기록 단계와 다른 실행 환경에서 악성 앱을 재실행하여 악성 앱이 분석 환경에서 악성 행위를 숨기지 못하도록 하는 효과가 있다.In this way, according to the present invention, the API used to detect Android's execution environment is recorded and re-executed to record and re-execute the malicious app, thereby modifying the Android platform code of the Android open source project to execute it without rooting or hooking the device. This has the effect of recording the target app and then using the recorded execution flow to re-execute the malicious app in an execution environment different from the recording stage, thereby preventing the malicious app from hiding its malicious behavior in the analysis environment.
또한 본 발명에 따르면, 타겟 앱 프로세스를 다른 프로세스와 구별하기 위해 사용자 명령을 수신하여 타겟 앱 프로세스의 기록 및 재실행 상태를 설정할 수 있다.Additionally, according to the present invention, in order to distinguish the target app process from other processes, a user command can be received and the recording and re-execution status of the target app process can be set.
또한 본 발명에 따르면, 타겟 앱과 사용자 간의 상호작용, 타겟 앱과 다른 앱간의 상호작용을 기록하고 재실행하여 분석 회피 기법이 적용된 악성 앱을 기록하고 재실행할 수 있다.Additionally, according to the present invention, it is possible to record and re-execute malicious apps to which analysis evasion techniques have been applied by recording and re-executing interactions between the target app and the user, and interactions between the target app and other apps.
도 1은 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 장치를 나타낸 블록구성도이다.
도 2는 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 장치에서 명령어 처리 흐름을 설명하기 위해 도시한 도면이다.
도 3은 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 장치에서 입력한 명령어가 자이고트에 전달되는 과정을 설명하기 위해 도시한 도면이다.
도 4는 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 장치에서 인텐트 중복 수신 방지를 설명하기 위해 도시한 도면이다.
도 5는 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 방법의 동작 흐름을 도시한 순서도이다.
도 6은 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 방법에 따른 WaTFBank 앱 실험 결과를 나타낸 예시 도면이다.
도 7은 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 방법에 따른 RootBeer 앱 실험 결과를 나타낸 예시 도면이다.Figure 1 is a block diagram showing a device for recording and re-executing Android malicious apps according to an embodiment of the present invention.
Figure 2 is a diagram illustrating the command processing flow in the Android malicious app recording and re-executing device according to an embodiment of the present invention.
Figure 3 is a diagram illustrating a process in which a command input from a device for recording and re-executing an Android malicious app according to an embodiment of the present invention is transmitted to Zygot.
Figure 4 is a diagram illustrating prevention of duplicate intent reception in a device for recording and re-executing Android malicious apps according to an embodiment of the present invention.
Figure 5 is a flowchart showing the operational flow of a method for recording and rerunning an Android malicious app according to an embodiment of the present invention.
Figure 6 is an example diagram showing the results of a WaTFBank app experiment according to a method for recording and rerunning Android malicious apps according to an embodiment of the present invention.
Figure 7 is an example diagram showing the results of a RootBeer app experiment according to a method for recording and rerunning Android malicious apps according to an embodiment of the present invention.
이하 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다. 이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the attached drawings. In this process, the thickness of lines or sizes of components shown in the drawings may be exaggerated for clarity and convenience of explanation.
또한 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Additionally, the terms described below are terms defined in consideration of functions in the present invention, and may vary depending on the intention or custom of the user or operator. Therefore, definitions of these terms should be made based on the content throughout this specification.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the drawings.
먼저, 도 1 내지 도 4를 통해 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 장치에 대하여 설명한다.First, a device for recording and re-executing Android malicious apps according to an embodiment of the present invention will be described through FIGS. 1 to 4.
도 1은 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 장치를 나타낸 블록구성도이다.Figure 1 is a block diagram showing a device for recording and re-executing Android malicious apps according to an embodiment of the present invention.
도 1에서와 같이 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 장치(100)는, 명령어 입력부(110), 상태 변경부(120), 상태 판단부(130) 및 수행부(140)를 포함한다.As shown in Figure 1, the Android malicious app recording and re-execution device 100 according to an embodiment of the present invention includes a command input unit 110, a state change unit 120, a state determination unit 130, and an execution unit 140. Includes.
먼저, 명령어 입력부(110)가 사용자로부터 기록 또는 재실행 중 어느 하나의 명령어를 입력받는다.First, the command input unit 110 receives a command, either record or re-execute, from the user.
그리고 상태 변경부(120)는 명령어 입력부(110)를 통해 입력받은 명령어에 대응하여 프로세스 상태를 기록 또는 재실행 상태로 변경한다.And the state change unit 120 changes the process state to a record or re-execution state in response to the command input through the command input unit 110.
자세히는, 안드로이드 액티비티 매니저를 수정하여 명령어 입력부(110)를 통해 입력받은 명령어를 처리하고, 자이고트(zygote) 프로세스를 수정하여 기록 및 재실행 상태를 변경하는 메소드를 호출하여 프로세스 상태를 기록 또는 재실행 상태로 변경한다.In detail, the Android activity manager is modified to process commands input through the command input unit 110, and the zygote process is modified to call a method to change the recording and re-execution status to record or re-execute the process status. Change to
도 2는 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 장치에서 명령어 처리 흐름을 설명하기 위해 도시한 도면이다.Figure 2 is a diagram illustrating the command processing flow in the Android malicious app recording and re-executing device according to an embodiment of the present invention.
도 2에서와 같이, 상태 변경부(120)는 안드로이드의 액티비티(Activity)를 관리하는 시스템 서비스로 앱을 실행하는 기능을 가지고 있는 액티비티 매니저(Activity Manager)를 수정하여 사용자로부터 입력받은 명령어를 처리한다. 이때, 사용자가 입력한 액티비티 매니저 명령어(am 명령어)의 처리 흐름은 도 2와 같다.As shown in FIG. 2, the state change unit 120 processes commands input from the user by modifying the Activity Manager, which has the function of executing apps as a system service that manages Android activities. . At this time, the processing flow of the activity manager command (am command) entered by the user is shown in Figure 2.
도 3은 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 장치에서 입력한 명령어가 자이고트에 전달되는 과정을 설명하기 위해 도시한 도면이다.Figure 3 is a diagram illustrating a process in which a command input from a device for recording and re-executing an Android malicious app according to an embodiment of the present invention is transmitted to Zygot.
도 3에서와 같이, 상태 변경부(120)는 기록 및 재실행 상태 설정, 설정한 상태 확인 명령어를 위해 액티비티 매니저의 실제 동작이 구현된 액티비티 매니저 서비스(ActivityManagerService) 서브 클래스의 자바 레이어(Java Layer)에 기록 및 재실행 상태를 저장하는 멤버 변수를 추가하고 추가된 멤버 변수의 값을 변경하고 확인하는 메소드를 구현한다. 설정한 상태로 앱을 실행하는 명령의 구현은 자이고트(Zygote) 프로세스의 기록 및 재실행 상태를 변경하는 메소드를 호출하고, 애기비티 매니저에서 앱 실행을 위한 명령어를 호출하여 구현한다.As shown in FIG. 3, the state change unit 120 is installed in the Java Layer of the Activity Manager Service subclass where the actual operation of the activity manager is implemented to set the recording and re-execution states and set state check commands. Add member variables that store the recording and re-execution status, and implement methods to change and check the values of the added member variables. The command to run the app in the configured state is implemented by calling a method that changes the recording and re-execution status of the Zygote process and calling the command to run the app in the Agility Manager.
이때, 자이고트 프로세스는 안드로이드 플랫폼에서 앱이 실행될 때 실행할 앱의 프로세스를 생성한다. 자이고트 프로세스의 기록 및 재실행 상태를 변경한 후 앱을 실행하면 타겟 앱 프로세스는 자이고트에 의해 fork되어 자이고트 프로세스와 동일한 상태를 갖게 된다. 이때, 액티비티를 통해 자이고트로 보내는 액티비티 매니저 명령어(am 명령어)의 흐름은 도 3과 같다.At this time, the Zygot process creates a process for the app to be executed when the app is executed on the Android platform. If you run the app after changing the recording and re-execution status of the Zygot process, the target app process is forked by Zygot and has the same state as the Zygot process. At this time, the flow of the activity manager command (am command) sent to Zygot through the activity is shown in Figure 3.
그리고 상태 판단부(130)는 사용자로부터 분석하고자 하는 타겟 앱이 실행되면, 현재 설정된 상태를 판단한다.And when the target app to be analyzed by the user is executed, the state determination unit 130 determines the currently set state.
마지막으로 수행부(140)는 판단부(130)로부터 판단된 현재 설정된 상태가 기록 상태인 경우 사용자에 의해 앱이 실행되는 내용을 기록하고, 재실행 상태인 경우 기록된 파일을 열어 파일의 내용대로 앱을 재실행하며, 기록 및 재실행이 완료된 후 타겟 앱의 실행을 종료한다.Finally, if the currently set state determined by the determination unit 130 is a recording state, the execution unit 140 records the content of the app being executed by the user, and if it is a re-execution state, the execution unit 140 opens the recorded file and executes the app according to the contents of the file. Re-executes and terminates execution of the target app after recording and re-execution are completed.
자세히는, 수행부(140)는 판단부(130)로부터 판단된 현재 설정된 상태가 기록 상태인 경우, 사용자로부터 실행되는 타겟 앱의 외부에서 발생하는 이벤트 내용을 API(Application Programming Interface) 호출 정보 파일에 기록하되, 사용자의 터치에 의해 발생하는 터치 이벤트를 실시간으로 기록하여 타겟 앱과 사용자 간 상호 작용을 기록한다.In detail, if the currently set state determined by the determination unit 130 is a record state, the execution unit 140 records the event contents that occur outside the target app executed by the user in an API (Application Programming Interface) call information file. It records the interaction between the target app and the user by recording touch events generated by the user's touch in real time.
즉, 터치 이벤트는 사용자가 앱을 실행할 때 발생하는 터치를 의미하며, 사용자의 터치를 실시간으로 기록하여 타겟 앱과 사용자 간 상호 작용을 기록하는 것이 바람직하다.In other words, a touch event refers to a touch that occurs when a user runs an app, and it is desirable to record the interaction between the target app and the user by recording the user's touch in real time.
또한, 수행부(140)는 판단부(130)로부터 판단된 현재 설정된 상태가 기록 상태인 경우, 타겟 앱이 수신하는 인텐트(intent)와, 해당 인텐트를 수신한 시간을 기록하여 인텐트 객체를 통해서 발송되는 브로드 캐스트 수신 이벤트를 기록하여 타겟 앱과 다른 앱 간의 상호 작용을 기록한다.In addition, when the currently set state determined by the determination unit 130 is the recording state, the execution unit 140 records the intent received by the target app and the time at which the intent was received, and creates an intent object. It records interactions between the target app and other apps by recording broadcast reception events sent through .
즉, 브로드 캐스트 수신 이벤트는 SNS 수신과 같이 다른 앱에서 전달한 알림을 수신하는 것을 의미하며, 이 알림은 인텐트 객체를 통해서 발송이 되기 때문에 타겟 앱이 수신하는 인텐트와, 해당 인텐트를 수신한 시간을 기록해서 구현하는 것이 바람직하다.In other words, a broadcast reception event means receiving a notification delivered by another app, such as receiving SNS. Since this notification is sent through an intent object, the intent received by the target app and the intent received It is desirable to implement this by recording time.
또한, 수행부(140)는 타겟 앱과 사용자 간 상호 작용, 타겟 앱과 다른 앱 간 상호 작용 및 안드로이드의 실행 환경 탐지에 사용되는 API를 기록한다.Additionally, the execution unit 140 records interactions between the target app and the user, interactions between the target app and other apps, and APIs used to detect Android's execution environment.
이때, 타겟 앱과 사용자 간 상호 작용의 기록에는 장치 파일이 사용되는데, 앱은 표준 입출력 시스템 콜을 호출하여 입력 장치와 상호 작용할 수 있으며, 장치 파일을 읽어 키보드 및 마우스와 같은 입력 장치의 입력 이벤트를 기록할 수도 있다. 안드로이드 SDK에서 지원하는 getevent 도구를 사용하여 입력 장치에 대한 정보와 커널 입력 이벤트의 실시간 덤프를 획득하여 타겟 앱과 사용자 간의 상호 작용을 기록할 수도 있다.At this time, device files are used to record interactions between the target app and the user. The app can interact with input devices by calling standard input/output system calls, and read device files to record input events from input devices such as keyboard and mouse. You can also record it. You can also record interactions between the target app and the user by using the getevent tool supported by the Android SDK to obtain information about the input device and a real-time dump of kernel input events.
또한, 수행부(140)는 타겟 앱과 다른 앱 간 상호 작용의 기록에는 타겟 앱이 수신하는 브로드 캐스트 메시지가 사용된다. 안드로이드 앱은 특정 브로드 캐스트를 수신하도록 브로드 캐스트 리시버를 등록함으로써 SMS의 수신, 시스템 시각의 변경과 같은 정보를 시스템 서비스로부터 받아 사용할 수 있다. 브로드캐스트 메시지는 인텐트 객체에서 래핑되므로 타겟 앱이 수신하는 인텐트와 인텐트를 수신한 시점의 업타임(uptime)을 기록한다.Additionally, the execution unit 140 uses a broadcast message received by the target app to record interactions between the target app and other apps. By registering a broadcast receiver to receive specific broadcasts, Android apps can receive and use information such as SMS reception and system time changes from system services. Since the broadcast message is wrapped in an intent object, the intent received by the target app and the uptime at the time the intent is received are recorded.
또한, 수행부(140)는 판단부(130)로부터 판단된 현재 설정된 상태가 기록 상태인 경우, 사용자로부터 실행되는 상기 타겟 앱의 수(su) 파일을 탐색하여 루틴 환경을 탐지하고, 탐지시마다 악성 앱이 호출하는 API 호출 정보를 기록하되, 파일의 존재 유무를 검사하는 API, 지정한 패키지 정보를 확인하는 API, 지정한 속성의 값을 가져오는 API 및 셀 명령의 실행 결과 확인에 사용되는 버퍼 리드 API를 각각 기록한다.In addition, when the currently set state determined by the determination unit 130 is a record state, the execution unit 140 searches the su file of the target app executed by the user to detect a routine environment, and detects a malicious environment whenever detected. Record the API call information called by the app, including the API that checks the existence of a file, the API that checks the specified package information, the API that gets the value of the specified property, and the buffer read API used to check the execution result of the cell command. Record each.
또한, 수행부(140)는 판단된 현재 설정된 상태가 재실행 상태인 경우, 기록된 내용대로 상기 타겟 앱을 재실행하되, 사용자로부터 실행되는 타겟 앱의 외부에서 발생하는 이벤트를 재현하여 재실행하거나 타겟 앱이 호출하는 API의 동작 흐름을 수정하여 재실행할 수도 있다.In addition, if the determined currently set state is a re-execution state, the execution unit 140 re-executes the target app according to the recorded contents, but reproduces and re-executes events that occur outside of the target app executed by the user or re-executes the target app. The operation flow of the calling API can be modified and re-executed.
자세히는, 악성 앱의 실행 흐름의 재실행은 타겟 앱 외부에서 발생하는 이벤트의 재현과 타겟 앱이 호출하는 안드로이드 API의 재현 두 가지로 구분할 수 있다. In detail, re-execution of the execution flow of a malicious app can be divided into two types: reproduction of events that occur outside the target app and reproduction of the Android API called by the target app.
먼저, 타겟 앱 외부에서 발생하는 이벤트를 재현하기 위해 이벤트 재현 도구를 구현한다. 이때, 타겟 앱은 이벤트 재현 도구가 재현한 외부 이벤트를 수신함으로써 앱과 사용자 간 상호 작용과 타겟 앱과 다른 앱 간 상호 작용을 재실행한다.First, an event reproduction tool is implemented to reproduce events that occur outside the target app. At this time, the target app re-executes the interaction between the app and the user and the interaction between the target app and other apps by receiving external events reproduced by the event reproduction tool.
또한, 이벤트 재현 도구는 파일에서 앱과 사용자 간 상호 작용과 타겟 앱과 다른 앱 간 상호 작용을 읽고 각각의 상호 작용이 기록된 시간 간격을 계산하여 재현한 외부 이벤트를 타겟 앱에 전달한다. Additionally, the event reproduction tool reads the interactions between the app and the user and between the target app and other apps from the file, calculates the time interval in which each interaction was recorded, and delivers the reproduced external events to the target app.
이때, 재현하는 상호 작용이 앱과 사용자 간 상호 작용이면 장치 파일에 재현한 앱과 사용자 간의 상호작용을 기록하고, 재현하는 상호 작용이 타겟 앱과 다른 앱 간 상호 작용이면 액티비티 매니저를 통해 기록된 인텐트를 복원하고 타겟 앱에 브로드 캐스팅한다. 이때 기록된 인텐트를 그대로 타겟 앱에 전달하면 타겟 앱이 이벤트 재현 도구가 재현한 인텐트와 시스템이 브로드 캐스팅하는 인텐트를 중복 수신 할 수 있다.At this time, if the interaction to be reproduced is an interaction between the app and the user, the interaction between the reproduced app and the user is recorded in the device file. If the interaction to be reproduced is an interaction between the target app and another app, the interaction recorded through the activity manager is recorded. Restore the tent and broadcast it to the target app. At this time, if the recorded intent is delivered to the target app as is, the target app can receive the intent reproduced by the event reproduction tool and the intent broadcast by the system.
도 4는 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 장치에서 인텐트 중복 수신 방지를 설명하기 위해 도시한 도면이다.Figure 4 is a diagram illustrating prevention of duplicate intent reception in a device for recording and re-executing Android malicious apps according to an embodiment of the present invention.
도 4에서와 같이, 인텐트의 중복 수신 방지를 위해 재실행 상태에서 타겟 앱이 브로드 캐스트 리시버 등록 시 수신하고자 하는 인텐트의 동작에 특정 접두어를 붙혀 등록한다. 또한, 이벤트 재현 도구가 브로드 캐스팅하는 인텐트의 동작에도 동일하게 접두어를 붙혀 시스템이 브로드 캐스팅하는 인텐트와 구분한다. As shown in Figure 4, in order to prevent duplicate reception of intents, when the target app registers a broadcast receiver in the re-execution state, it registers the operation of the intent it wants to receive with a specific prefix. In addition, the same prefix is attached to the action of the intent broadcasted by the event reproduction tool to distinguish it from the intent broadcasted by the system.
이때, 타겟 앱이 이벤트 재현 도구가 브로드 캐스팅하는 인텐트를 수신하면 수신한 인텐트의 동작에서 접두어를 제거하여 인텐트의 송수신 과정에서 변경한 인텐트의 동작이 타겟 앱의 동작에 영향을 주지 않도록 한다.At this time, when the target app receives the intent broadcasted by the event reproduction tool, the prefix is removed from the operation of the received intent to prevent the operation of the intent changed during the intent transmission and reception process from affecting the operation of the target app. do.
또한, 수행부(140)는 악성 앱이 루팅 여부의 판단과 에뮬레이터 탐지에 사용되는 API를 수정하여 타겟 앱이 해당 API를 호출한 경우, 기존 API의 동작을 수행하지 않고 기록된 API의 정보를 읽어 호출된 API의 수행 결과와 API가 수행되며 영향을 주는 값을 변경한다.In addition, the execution unit 140 modifies the API used to determine whether a malicious app is rooted and detects an emulator, and when the target app calls the corresponding API, the execution unit 140 reads the recorded API information without performing the operation of the existing API. Changes the execution results of the called API and the values that affect the API execution.
이하에서는 도 5 내지 도 7을 통해 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 방법에 대하여 설명한다.Hereinafter, a method of recording and re-executing an Android malicious app according to an embodiment of the present invention will be described with reference to FIGS. 5 to 7.
도 5는 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 방법의 동작 흐름을 도시한 순서도로서, 이를 참조하여 본 발명의 구체적인 동작을 설명한다.Figure 5 is a flowchart showing the operational flow of a method for recording and re-running an Android malicious app according to an embodiment of the present invention. With reference to this, the specific operation of the present invention will be described.
본 발명의 실시 예에 따르면, 먼저 명령어 입력부(110)가 사용자로부터 기록 또는 재실행 중 어느 하나의 명령어를 입력받는다(S10).According to an embodiment of the present invention, the command input unit 110 first receives a command, either record or re-execute, from the user (S10).
그 다음, 상태 변경부(120)가 S10 단계에서 입력받은 명령어에 대응하여 프로세스 상태를 기록 또는 재실행 상태로 변경한다(S20).Next, the state change unit 120 changes the process state to a record or re-execution state in response to the command input in step S10 (S20).
자세히는, 안드로이드 액티비티 매니저를 수정하여 S10 단계에서 입력받은 명령어를 처리하고, 자이고트(zygote) 프로세스를 수정하여 기록 및 재실행 상태를 변경하는 메소드를 호출하여 프로세스 상태를 기록 또는 재실행 상태로 변경한다.In detail, the Android Activity Manager is modified to process the command entered in step S10, and the zygote process is modified to change the process state to record or rerun state by calling a method to change the record and rerun state.
기록 및 재실행 과정에서 타겟 앱의 프로세스를 구분하지 않고 모든 프로세스의 동작을 기록 및 재실행하는 것은 오버헤드가 클 뿐만 아니라 불가능하다. 따라서, 본 발명의 실시 예에서는 실행되는 타겟 앱 프로세스의 상태를 기록 상태, 재실행 상태, 기본 상태와 같이 셋 중 하나로 설정하여 다른 프로세스와 타겟 앱 프로세스를 구분하고 타겟 앱 프로세스의 상태에 따라 기록 작업을 수행할지 재실행 작업을 수행할지 구분할 수 있다.During the recording and re-executing process, recording and re-executing the operations of all processes without distinguishing between the processes of the target app not only has a large overhead, but is also impossible. Therefore, in an embodiment of the present invention, the state of the executing target app process is set to one of three states, such as a record state, a re-execution state, and a basic state, to distinguish the target app process from other processes, and to perform a recording operation according to the state of the target app process. You can distinguish between executing or re-executing tasks.
기록 및 재실행 상태의 설정을 위해 본 발명의 실시 예에서는 안드로이드 디버그 브리지를 사용하여 외부 장치에서 사용자가 입력하는 명령어를 입력받는 것을 예시로 들어 설명하고 있지만, 이에 한정하는 것은 아니다. 기록 및 재실행 상태의 설정에 사용되는 명령어에는 기록 및 재실행 상태 설정, 설정한 상태 확인, 설정한 상태로 앱을 실행하는 명령이 있다.In order to set the recording and re-execution status, the embodiment of the present invention uses the Android debug bridge to receive commands input by the user from an external device as an example, but is not limited to this. Commands used to set the record and rerun status include commands to set the record and rerun status, check the set status, and run the app with the set status.
그 다음, 상태 판단부(130)가 사용자로부터 분석하고자 하는 타겟 앱이 실행되는지 판단한다(S30).Next, the status determination unit 130 determines whether the target app to be analyzed by the user is executed (S30).
S30 단계의 판단 결과, 타겟 앱이 실행되었으면 상태 판단부(130)가 현재 설정된 상태를 판단한다(S40).As a result of the determination in step S30, if the target app has been executed, the state determination unit 130 determines the currently set state (S40).
이때, S40 단계에서 판단된 현재 설정된 상태가 기록 상태인 경우, 수행부(140)는 사용자에 의해 앱이 실행되는 내용을 기록한다(S50).At this time, if the currently set state determined in step S40 is a recording state, the execution unit 140 records the content of the app being executed by the user (S50).
자세히는, 사용자로부터 실행되는 상기 타겟 앱의 외부에서 발생하는 이벤트 내용을 API(Application Programming Interface) 호출 정보 파일에 기록하되, 사용자의 터치에 의해 발생하는 터치 이벤트를 실시간으로 기록하여 타겟 앱과 사용자 간 상호 작용을 기록한다.In detail, the contents of events that occur outside of the target app run by the user are recorded in an API (Application Programming Interface) call information file, and touch events generated by the user's touch are recorded in real time to connect the target app and the user. Record interactions.
또한, 타겟 앱이 수신하는 인텐트(intent)와, 해당 인텐트를 수신한 시간을 기록하여 인텐트 객체를 통해서 발송되는 브로드 캐스트 수신 이벤트를 기록하여 타겟 앱과 다른 앱 간의 상호 작용을 기록한다.In addition, the intent received by the target app and the time it receives the intent are recorded, and a broadcast reception event sent through the intent object is recorded to record interactions between the target app and other apps.
본 발명의 실시 예에 따르면 수행부(140)는 안드로이드 오픈 소스 프로젝트(Android Open Source Project, AOSP)의 안드로이드 플랫폼 코드를 수정함으로써 기기를 루팅하거나 후킹하지 않은 상태에서 실행되는 타겟 앱의 실행 흐름을 기록할 수 있다.According to an embodiment of the present invention, the execution unit 140 records the execution flow of the target app that is executed without rooting or hooking the device by modifying the Android platform code of the Android Open Source Project (AOSP). can do.
즉, 안드로이드 플랫폼에서는 앱의 내부(internal) 저장소 사용 권한을 필요로하지 않기 때문에 기록 과정에서 사용하는 재실행을 위한 파일은 앱의 내부 저장소에 저장한다.In other words, since the Android platform does not require permission to use the app's internal storage, files for re-execution used during the recording process are stored in the app's internal storage.
또한, 사용자로부터 실행되는 상기 타겟 앱의 수(su) 파일을 탐색하여 루틴 환경을 탐지하고, 탐지시마다 악성 앱이 호출하는 API 호출 정보를 기록하되, 파일의 존재 유무를 검사하는 API, 지정한 패키지 정보를 확인하는 API, 지정한 속성의 값을 가져오는 API 및 셀 명령의 실행 결과 확인에 사용되는 버퍼 리드 API를 각각 기록할 수도 있다.In addition, the routine environment is detected by searching the number (su) file of the target app executed by the user, and upon detection, the API call information called by the malicious app is recorded, and the API that checks the presence or absence of the file, specified package information You can also record the API that checks, the API that gets the value of the specified property, and the buffer read API that is used to check the execution result of the cell command.
즉, 악성 앱은 루팅으로 인해 변경된 시스템 속성의 확인, 루팅과 관련된 바이너리 수 파일의 유무, 루팅과 관련된 앱의 설치 여부를 확인하여 기기의 루팅 여부를 판단하고 에뮬레이터의 고유한 속성이나 호스트 PC에서 에뮬레이터를 실행하기 위해 추가된 모듈 정보를 이용하여 에뮬레이터를 탐지한다.In other words, the malicious app determines whether the device is rooted by checking the system properties changed due to rooting, the presence or absence of a binary number file related to rooting, and whether apps related to rooting are installed, and determines whether the device is rooted or not by checking the unique properties of the emulator or the emulator on the host PC. To execute, the emulator is detected using the added module information.
따라서, 본 발명의 실시 예에서 수행부(140)는 악성 앱이 루팅 여부의 판단과 에뮬레이터 탐지에 사용되는 API를 수정하여 타겟 앱이 해당 API를 호출한 경우 기존 API의 동작과 함께 호출정보를 기록한다. 기록되는 정보에는 호출된 API의 수행 결과와 API가 수행되며 영향을 주는 값들을 기록한다.Therefore, in an embodiment of the present invention, the execution unit 140 modifies the API used to determine whether a malicious app is rooted and detects an emulator, and records the call information along with the operation of the existing API when the target app calls the corresponding API. do. The information recorded includes the execution results of the called API and the values that affect the API execution.
그리고, S40단계에서 판단된 현재 설정된 상태가 재실행 상태인 경우, 수행부(140)는 기록된 파일을 열어 파일의 내용대로 앱을 재실행한다(S60).And, if the currently set state determined in step S40 is a re-execution state, the execution unit 140 opens the recorded file and re-executes the app according to the contents of the file (S60).
자세히는, 기록된 내용대로 타겟 앱을 재실행하되, 사용자로부터 실행되는 타겟 앱의 외부에서 발생하는 이벤트를 재현하여 재실행하거나, 타겟 앱이 호출하는 API의 동작 흐름을 수정하여 재실행한다.In detail, the target app is re-executed as recorded, but events occurring outside the target app executed by the user are reproduced and re-executed, or the operation flow of the API called by the target app is modified and re-executed.
S50 및 S60 단계에서 기록 및 재실행이 완료되면, 수행부(140)는 타겟 앱의 실행을 종료한다(S70).When recording and re-execution are completed in steps S50 and S60, the execution unit 140 ends execution of the target app (S70).
본 발명의 실시 예에서는 안드로이드의 실행 환경 탐지에 사용되는 API를 기록하고 재실행할 수 있는지 확인하기 위해서, 특정 API를 호출하여 안드로이드의 실행 환경을 판단하는 앱 두 가지(WaTFBank 앱, RootBeer 앱)를 대상으로 실험을 진행하였다.In an embodiment of the present invention, in order to check whether the API used to detect Android's execution environment can be recorded and re-executed, two apps (WaTFBank app and RootBeer app) that determine the Android's execution environment by calling a specific API are targeted. The experiment was conducted.
도 6은 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 방법에 따른 WaTFBank 앱 실험 결과를 나타낸 예시 도면이고, 도 7은 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 방법에 따른 RootBeer 앱 실험 결과를 나타낸 예시 도면이다.Figure 6 is an example diagram showing the results of the WaTFBank app experiment according to the method for recording and rerunning Android malicious apps according to an embodiment of the present invention, and Figure 7 is a diagram showing the RootBeer app according to the method for recording and rerunning Android malicious apps according to an embodiment of the present invention. This is an example drawing showing the results of the experiment.
본 발명의 실시 예에서는 파일의 존재 유무를 검사하는 API, 지정된 패키지 정보를 확인하는 API, 지정한 속성의 값을 가져오는 API, 셸 명령의 실행 결과 확인에 사용되는 버퍼 리드 API를 수정하였고, 각 실험은 수정한 API를 기록 및 재실행함으로써 타겟 앱이 다른 실행 흐름을 갖는 것을 확인하였다.In an embodiment of the present invention, the API for checking the existence of a file, the API for checking the specified package information, the API for getting the value of the specified attribute, and the buffer read API used for checking the execution result of the shell command were modified, and each experiment confirmed that the target app had a different execution flow by recording and re-executing the modified API.
먼저, 도 6 및 도 7에서와 같이 수정한 API를 호출하는 두 가지 앱(WaTFBank 앱, RootBeer 앱)에 대해서 일반 실행 결과(a)와 본 발명의 실시예에 따른 안드로이드 악성 앱 기록 및 재실행 방법을 사용했을 때(b)의 출력이 다른 것을 확인함으로써 수정한 API가 제대로 재실행 되는 것을 확인할 수 있다.First, for the two apps (WaTFBank app and RootBeer app) that call the modified API as shown in Figures 6 and 7, the general execution result (a) and the method for recording and re-executing Android malicious apps according to an embodiment of the present invention are shown. By checking that the output of (b) is different when used, you can confirm that the modified API is properly re-executed.
이를 자세히 설명하자면, 먼저, 도 6에 도시된 WaTFBank 앱은 "파일의 존재 유무를 검사하는 API"를 호출하여 수(su) 파일의 유무를 확인함으로써 루팅 여부를 체크하고, 루팅 여부에 따라서 다른 실행 화면을 출력하는 앱으로, 루팅된 환경이 아닐 경우 사용자의 입력을 대기하는 화면이 출력되고, 루팅된 환경일 경우(su 파일을 발견했을 경우) 루팅된 환경에서 실행되었다는 문구 출력한다.To explain this in detail, first, the WaTFBank app shown in Figure 6 checks whether it is rooted by calling the "API that checks the existence of a file" to check the presence or absence of a su file, and performs different executions depending on whether it is rooted. This is an app that displays a screen. If it is not in a rooted environment, a screen waiting for user input is displayed. If it is in a rooted environment (when an su file is found), it prints a message saying that it was run in a rooted environment.
이때, 일반 실행 결과(a)에서는 사용자의 입력을 대기하는 것을 확인하였고, 본 발명의 실시 예에 따른 재실행 결과(b)에서는 루팅된 환경에서 실행되었다는 문구가 출력되는 것을 확인할 수 있다.At this time, in the general execution result (a), it was confirmed that the user's input was waiting, and in the re-execution result (b) according to an embodiment of the present invention, it was confirmed that the phrase that it was executed in a rooted environment was output.
그리고, 도 7에 도시된 RootBeer 앱은 다양한 방법을 통해서 루팅 여부를 체크하는 앱으로, Root Management App 검사에서 "지정한 패키지 정보를 확인하는 API"를 호출하여 루팅과 관련된 앱의 설치 여부를 확인하였다. 2nd SU Binary check 검사에서 "셸 명령의 실행 결과 확인에 사용되는 버퍼 Read API"를 호출하여 루팅과 관련된 바이너리 파일(su)의 실행 결과를 받아 수 파일이 존재하는지 검사한 결과, 일반 실행 결과(a)에서는 Root Management App, 2nd SU Binary check에서 문제가 없다는 결과가 출력되었고, 본 발명의 실시 예에 따른 재실행 결과(b)에서는 Root Management App, 2nd SU Binary check에서 문제가 있다는 결과가 출력되는 것을 확인할 수 있다.In addition, the RootBeer app shown in Figure 7 is an app that checks rooting through various methods, and in the Root Management App inspection, it called "API to check specified package information" to check whether apps related to rooting were installed. In the 2nd SU Binary check, the "buffer Read API used to check the execution results of shell commands" is called, the execution results of the binary file (su) related to routing are received, and the existence of the number file is checked. As a result, the general execution result (a ), the result was output that there was no problem in the Root Management App, 2nd SU Binary check, and in the re-execution result (b) according to the embodiment of the present invention, it was confirmed that the result was output that there was a problem in the Root Management App, 2nd SU Binary check. You can.
이를 통해, 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 방법을 통해 악성 앱이 분석 환경에서 악성 행위를 숨기지 못하도록 함을 확인할 수 있다.Through this, it can be confirmed that the method for recording and rerunning Android malicious apps according to an embodiment of the present invention prevents malicious apps from hiding their malicious behavior in the analysis environment.
이와 같은, 안드로이드 악성 앱 기록 및 재실행 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.This method of recording and re-executing Android malicious apps can be implemented as an application or in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc., singly or in combination.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.The program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and usable by those skilled in the computer software field.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and perform program instructions, such as ROM, RAM, flash memory, etc.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.Examples of program instructions include not only machine language code such as that created by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the invention.
상술한 바와 같이, 본 발명의 실시 예에 따른 안드로이드 악성 앱 기록 및 재실행 방법은 안드로이드의 실행 환경 탐지에 사용되는 API를 기록 및 재실행하여 악성앱을 기록하고 재실행함으로써, 안드로이드 오픈 소스 프로젝트의 안드로이드 플랫폼 코드를 수정하여 기기를 루팅하거나 후킹하지 않은 상태에서 실행되는 타겟 앱을 기록하고, 이후 기록된 실행 흐름을 사용하여 기록 단계와 다른 실행 환경에서 악성 앱을 재실행하여 악성 앱이 분석 환경에서 악성 행위를 숨기지 못하도록 할 수 있다.As described above, the method for recording and re-executing Android malicious apps according to an embodiment of the present invention records and re-executes the malicious app by recording and re-executing the API used to detect the execution environment of Android, thereby recording and re-executing the Android platform code of the Android open source project. Modify to record target apps running without rooting or hooking the device, and then use the recorded execution flow to re-run the malicious app in a different execution environment than the recording phase, so that the malicious app does not hide its malicious behavior in the analysis environment. You can prevent it.
또한 본 발명의 실시 예에 따르면, 타겟 앱 프로세스를 다른 프로세스와 구별하기 위해 사용자 명령을 수신하여 타겟 앱 프로세스의 기록 및 재실행 상태를 설정할 수 있다.Additionally, according to an embodiment of the present invention, in order to distinguish the target app process from other processes, a user command can be received and the recording and re-execution status of the target app process can be set.
또한 본 발명의 실시 예에 따르면, 타겟 앱과 사용자 간의 상호작용, 타겟 앱과 다른 앱간의 상호작용을 기록하고 재실행하여 분석 회피 기법이 적용된 악성 앱을 기록하고 재실행할 수 있다.Additionally, according to an embodiment of the present invention, it is possible to record and re-execute malicious apps to which analysis evasion techniques have been applied by recording and re-executing interactions between the target app and the user, and interactions between the target app and other apps.
본 발명은 도면에 도시된 실시 예를 참고로 하여 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호범위는 아래의 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.The present invention has been described with reference to the embodiments shown in the drawings, but these are merely illustrative, and those skilled in the art will understand that various modifications and other equivalent embodiments are possible therefrom. will be. Therefore, the true technical protection scope of the present invention should be determined by the technical spirit of the patent claims below.
100 : 안드로이드 악성 앱 기록 및 재실행 장치
110 : 명령어 입력부
120 : 상태 변경부
130 : 상태 판단부
140 : 수행부100: Device for recording and rerunning Android malicious apps
110: Command input unit
120: Status change unit
130: Status judgment unit
140: execution department
Claims (11)
사용자로부터 기록 또는 재실행 중 어느 하나의 명령어를 입력받는 단계;
상기 입력받은 명령어에 대응하여 프로세스 상태를 기록 또는 재실행 상태로 변경하는 단계;
사용자로부터 분석하고자 하는 타겟 앱이 실행되면, 현재 설정된 상태를 판단하는 단계;
상기 판단된 현재 설정된 상태가 기록 상태인 경우 사용자에 의해 앱이 실행되는 내용을 기록하고, 재실행 상태인 경우 기록된 파일을 열어 파일의 내용대로 앱을 재실행하는 단계; 및
상기 기록 및 재실행이 완료된 후 상기 타겟 앱의 실행을 종료하는 단계를 포함하고,
상기 프로세스 상태를 기록 또는 재실행 상태로 변경하는 단계는,
안드로이드 액티비티 매니저를 수정하여 상기 입력받은 명령어를 처리하고, 자이고트(zygote) 프로세스를 수정하여 기록 및 재실행 상태를 변경하는 메소드를 호출하여 상기 프로세스 상태를 기록 또는 재실행 상태로 변경하는 안드로이드 악성 앱 기록 및 재실행 방법.In a method of recording and rerunning an Android malicious app performed by a device for recording and rerunning an Android malicious app,
Receiving either a record or re-execute command from the user;
Changing the process state to a record or re-execution state in response to the input command;
When the target app to be analyzed is executed by the user, determining the currently set state;
If the determined currently set state is a recording state, recording the content of the app being executed by the user, and if it is a re-execution state, opening the recorded file and re-executing the app according to the contents of the file; and
Comprising: terminating execution of the target app after the recording and re-execution are completed,
The step of changing the process state to record or rerun state is,
Android malicious app records and changes the process state to the record or rerun state by modifying the Android activity manager to process the input command and modifying the zygote process to call a method to change the record and rerun state. How to redo.
상기 판단된 현재 설정된 상태가 기록 상태인 경우,
사용자로부터 실행되는 상기 타겟 앱의 외부에서 발생하는 이벤트 내용을 API(Application Programming Interface) 호출 정보 파일에 기록하되,
사용자의 터치에 의해 발생하는 터치 이벤트를 실시간으로 기록하여 상기 타겟 앱과 사용자 간 상호 작용을 기록하고,
타겟 앱이 수신하는 인텐트(intent)와, 해당 인텐트를 수신한 시간을 기록하여 인텐트 객체를 통해서 발송되는 브로드 캐스트 수신 이벤트를 기록하여 상기 타겟 앱과 다른 앱 간의 상호 작용을 기록하는 안드로이드 악성 앱 기록 및 재실행 방법.According to paragraph 1,
If the currently set state determined above is a recording state,
Events that occur outside of the target app executed by the user are recorded in an API (Application Programming Interface) call information file,
Touch events generated by the user's touch are recorded in real time to record the interaction between the target app and the user,
An Android malware that records interactions between the target app and other apps by recording the intent received by the target app and the time the intent was received, and recording broadcast reception events sent through the intent object. How to record and rerun apps.
상기 판단된 현재 설정된 상태가 기록 상태인 경우,
사용자로부터 실행되는 상기 타겟 앱의 수(su) 파일을 탐색하여 루틴 환경을 탐지하고, 탐지시마다 악성 앱이 호출하는 API 호출 정보를 기록하되,
파일의 존재 유무를 검사하는 API, 지정한 패키지 정보를 확인하는 API, 지정한 속성의 값을 가져오는 API 및 셀 명령의 실행 결과 확인에 사용되는 버퍼 리드 API를 각각 기록하는 안드로이드 악성 앱 기록 및 재실행 방법.According to paragraph 1,
If the currently set state determined above is a recording state,
Detect the routine environment by searching the su file of the target app executed by the user, and record the API call information called by the malicious app each time it is detected.
A method of recording and re-executing Android malicious apps that records the API that checks the existence of a file, the API that checks the specified package information, the API that gets the value of the specified property, and the buffer read API that is used to check the execution result of the cell command.
상기 판단된 현재 설정된 상태가 재실행 상태인 경우,
기록된 내용대로 상기 타겟 앱을 재실행하되, 사용자로부터 실행되는 상기 타겟 앱의 외부에서 발생하는 이벤트를 재현하여 재실행하거나 상기 타겟 앱이 호출하는 API의 동작 흐름을 수정하여 재실행하는 안드로이드 악성 앱 기록 및 재실행 방법.According to paragraph 1,
If the currently set state determined above is a rerun state,
Re-executes the target app as recorded, but records and re-executes Android malicious apps that reproduce and re-execute events that occur outside of the target app executed by the user, or modify the operation flow of the API called by the target app and re-execute it. method.
상기 입력받은 명령어에 대응하여 프로세스 상태를 기록 또는 재실행 상태로 변경하는 상태 변경부;
사용자로부터 분석하고자 하는 타겟 앱이 실행되면, 현재 설정된 상태를 판단하는 상태 판단부; 및
상기 판단된 현재 설정된 상태가 기록 상태인 경우 사용자에 의해 앱이 실행되는 내용을 기록하고, 재실행 상태인 경우 기록된 파일을 열어 파일의 내용대로 앱을 재실행하며, 상기 기록 및 재실행이 완료된 후 상기 타겟 앱의 실행을 종료하는 수행부를 포함하고,
상기 상태 변경부는,
안드로이드 액티비티 매니저를 수정하여 상기 입력받은 명령어를 처리하고, 자이고트(zygote) 프로세스를 수정하여 기록 및 재실행 상태를 변경하는 메소드를 호출하여 상기 프로세스 상태를 기록 또는 재실행 상태로 변경하는 안드로이드 악성 앱 기록 및 재실행 장치.a command input unit that receives either a record or re-execute command from the user;
a state change unit that changes the process state to a record or re-execution state in response to the input command;
a state determination unit that determines the currently set state when the target app to be analyzed is executed by the user; and
If the determined currently set state is in the recording state, the content of the app being executed by the user is recorded. If it is in the re-execution state, the recorded file is opened and the app is re-executed according to the contents of the file, and after the recording and re-execution are completed, the target Includes an execution part that terminates execution of the app,
The state change unit,
Android malicious app records and changes the process state to the record or rerun state by modifying the Android activity manager to process the input command and modifying the zygote process to call a method to change the record and rerun state. Redo device.
상기 수행부는,
상기 판단된 현재 설정된 상태가 기록 상태인 경우, 사용자로부터 실행되는 상기 타겟 앱의 외부에서 발생하는 이벤트 내용을 API(Application Programming Interface) 호출 정보 파일에 기록하되,
사용자의 터치에 의해 발생하는 터치 이벤트를 실시간으로 기록하여 상기 타겟 앱과 사용자 간 상호 작용을 기록하고,
타겟 앱이 수신하는 인텐트(intent)와, 해당 인텐트를 수신한 시간을 기록하여 인텐트 객체를 통해서 발송되는 브로드 캐스트 수신 이벤트를 기록하여 상기 타겟 앱과 다른 앱 간의 상호 작용을 기록하는 안드로이드 악성 앱 기록 및 재실행 장치.In clause 7,
The executive department,
If the determined currently set state is a recording state, the event contents occurring outside the target app executed by the user are recorded in an API (Application Programming Interface) call information file,
Touch events generated by the user's touch are recorded in real time to record the interaction between the target app and the user,
An Android malware that records interactions between the target app and other apps by recording the intent received by the target app and the time the intent was received, and recording broadcast reception events sent through the intent object. App recording and relaunch device.
상기 수행부는,
상기 판단된 현재 설정된 상태가 기록 상태인 경우, 사용자로부터 실행되는 상기 타겟 앱의 수(su) 파일을 탐색하여 루틴 환경을 탐지하고, 탐지시마다 악성 앱이 호출하는 API 호출 정보를 기록하되,
파일의 존재 유무를 검사하는 API, 지정한 패키지 정보를 확인하는 API, 지정한 속성의 값을 가져오는 API 및 셀 명령의 실행 결과 확인에 사용되는 버퍼 리드 API를 각각 기록하는 안드로이드 악성 앱 기록 및 재실행 장치.In clause 7,
The executive department,
If the determined currently set state is a recording state, the routine environment is detected by searching the number (su) file of the target app executed by the user, and the API call information called by the malicious app is recorded whenever detected,
An Android malicious app recording and re-execution device that records the API that checks the existence of a file, the API that checks the specified package information, the API that gets the value of the specified property, and the buffer read API that is used to check the execution result of the cell command.
상기 수행부는,
상기 판단된 현재 설정된 상태가 재실행 상태인 경우, 기록된 내용대로 상기 타겟 앱을 재실행하되,
사용자로부터 실행되는 상기 타겟 앱의 외부에서 발생하는 이벤트를 재현하여 재실행하거나 상기 타겟 앱이 호출하는 API의 동작 흐름을 수정하여 재실행하는 안드로이드 악성 앱 기록 및 재실행 장치.In clause 7,
The executive department,
If the currently set state determined above is the re-execution state, re-execute the target app according to the recorded contents,
An Android malicious app recording and re-execution device that reproduces and re-executes events that occur outside of the target app executed by the user, or modifies and re-executes the operation flow of the API called by the target app.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220051398A KR102683445B1 (en) | 2022-04-26 | 2022-04-26 | Method for android malicious app record and replay, recording medium and device for performing the method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220051398A KR102683445B1 (en) | 2022-04-26 | 2022-04-26 | Method for android malicious app record and replay, recording medium and device for performing the method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230151712A KR20230151712A (en) | 2023-11-02 |
KR102683445B1 true KR102683445B1 (en) | 2024-07-10 |
Family
ID=88747702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220051398A KR102683445B1 (en) | 2022-04-26 | 2022-04-26 | Method for android malicious app record and replay, recording medium and device for performing the method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102683445B1 (en) |
-
2022
- 2022-04-26 KR KR1020220051398A patent/KR102683445B1/en active IP Right Grant
Non-Patent Citations (3)
Title |
---|
Mingyuan Xia et al., "replaykit"(2018.)* |
Onur Sahin et al., "RANDR: Record and Replay for Android Applications via Targeted Runtime Instrumentation"(2019.)* |
Vitor Afonso et al., "Lumus: Dynamically Uncovering Evasive Android Applications"(2018.)* |
Also Published As
Publication number | Publication date |
---|---|
KR20230151712A (en) | 2023-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9063766B2 (en) | System and method of manipulating virtual machine recordings for high-level execution and replay | |
Yang et al. | Testing for poor responsiveness in Android applications | |
Adamsen et al. | Systematic execution of android test suites in adverse conditions | |
US11010283B2 (en) | Mock-based unit test(s) for an end-to-end test of a code snippet | |
US7487543B2 (en) | Method and apparatus for the automatic determination of potentially worm-like behavior of a program | |
US8627296B1 (en) | Unified unit and integration test with automatic mock creation | |
US8429648B2 (en) | Method and apparatus to service a software generated trap received by a virtual machine monitor | |
Hu et al. | Automatically verifying and reproducing event-based races in android apps | |
Bai et al. | Towards model checking android applications | |
US20130212682A1 (en) | Automatic discovery of system integrity exposures in system code | |
JP2005011342A (en) | Debug of break point in pluggable component | |
US20130067439A1 (en) | Injecting faults into program for testing | |
KR102105753B1 (en) | Method and system for automatic configuration test case generation of mobile application | |
Shibanai et al. | Actoverse: a reversible debugger for actors | |
US20240143739A1 (en) | Intelligent obfuscation of mobile applications | |
CN110674506A (en) | Method and system for rapidly verifying vulnerability state of application program | |
JP6282217B2 (en) | Anti-malware system and anti-malware method | |
Adamsen et al. | Practical initialization race detection for JavaScript web applications | |
CN117828600A (en) | Android personal information rule-breaking collection behavior dynamic detection method | |
US7624304B2 (en) | Defect detection for integers | |
Yan et al. | Efficient testing of GUI applications by event sequence reduction | |
CA2811617A1 (en) | Commit sensitive tests | |
Abbadini et al. | Lightweight cloud application sandboxing | |
CN107368713B (en) | Protect the method and security component of software | |
KR102683445B1 (en) | Method for android malicious app record and replay, recording medium and device for performing the method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |