KR101666176B1 - 안드로이드 플랫폼 기반의 어플리케이션 모니터링 장치 및 방법 - Google Patents

안드로이드 플랫폼 기반의 어플리케이션 모니터링 장치 및 방법 Download PDF

Info

Publication number
KR101666176B1
KR101666176B1 KR1020150090559A KR20150090559A KR101666176B1 KR 101666176 B1 KR101666176 B1 KR 101666176B1 KR 1020150090559 A KR1020150090559 A KR 1020150090559A KR 20150090559 A KR20150090559 A KR 20150090559A KR 101666176 B1 KR101666176 B1 KR 101666176B1
Authority
KR
South Korea
Prior art keywords
application
information
code
execution
list
Prior art date
Application number
KR1020150090559A
Other languages
English (en)
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 한국전자통신연구원
Priority to KR1020150090559A priority Critical patent/KR101666176B1/ko
Priority to US14/939,507 priority patent/US20160378989A1/en
Application granted granted Critical
Publication of KR101666176B1 publication Critical patent/KR101666176B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • 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
    • 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
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Abstract

안드로이드 플랫폼 기반의 어플리케이션 모니터링 장치 및 방법이 개시된다. 본 발명에 따른 모니터링 장치는 안드로이드 기반의 어플리케이션 패키지 파일을 이용하여 어플리케이션에 상응하는 복수개의 어플리케이션 코드들의 코드 목록을 획득하는 코드 목록 획득부; 상기 코드 목록을 기반으로 상기 복수개의 어플리케이션 코드들 중 모니터링을 수행할 적어도 하나의 타겟 코드를 설정하는 타겟 설정부; 안드로이드 단말에서 상기 적어도 하나의 타겟 코드에 상응하는 적어도 하나의 코드 실행정보를 수집하는 실행정보 수집부; 및 상기 적어도 하나의 코드 실행정보를 기반으로 악성코드 실행감지 및 어플리케이션 행위분석 중 적어도 하나를 수행하기 위한 어플리케이션 모니터링 정보를 생성하여 제공하는 모니터링 정보 제공부를 포함한다.

Description

안드로이드 플랫폼 기반의 어플리케이션 모니터링 장치 및 방법{APPARATUS AND METHOD FOR OF MONITORING APPLICATION BASED ON ANDROID PLATFORM}
본 발명은 안드로이드 기반 어플리케이션 모니터링 기술에 관한 것으로, 특히 어플리케이션 코드들을 기반으로 모니터링을 수행함으로써 안드로이드 기반 어플리케이션의 행위분석 및 안드로이드 단말에서의 악성코드 검출 등을 수행할 수 있는 어플리케이션 모니터링 기술에 관한 것이다.
안드로이드 플랫폼은 Google사가 주도하는 OHA(Open Handset Alliance)에서 공개한 소프트웨어 프레임워크이다. 안드로이드 플랫폼은 리눅스 커널, 가상머신, 프레임워크 및 어플리케이션을 모두 포함하는 소프트웨어 패키지이며, 안드로이드 어플리케이션을 개발하기 위한 소프트웨어 개발 키트를 제공하고 있다.
그리고 안드로이드 플랫폼에서 실행할 어플리케이션, 즉 안드로이드 어플리케이션을 유통하기 위한 안드로이드 마켓(android market)이 마련되어 있는데, 안드로이드 마켓은 특별한 검증 절차 없이 개발자가 자유롭게 안드로이드 어플리케이션을 등록할 수 있고 사용자도 특별한 확인 절차 없이 자유롭게 안드로이드 어플리케이션을 다운로드 받아서 사용할 수 있는 개방형 구조이다.
현재 안드로이드 운영체제를 사용하는 단말장치와 이를 위한 안드로이드 어플리케이션의 사용 또한 계속해서 증가하고 있다. 종래기술에 따른 안드로이드 플랫폼의 구조는 단순히 안드로이드 어플리케이션을 실행하는 기능만 제공한다. 따라서, 안드로이드 운영체제를 탑재한 스마트폰을 사용하는 사용자는 개인정보 수집 및 유출, 시스템 변경, 그리고 악성코드 내재 등의 악의적인 의도를 가진 안드로이드 어플리케이션을 자신도 모르게 설치할 가능성과 이를 통해 개인 또는 기업에 민감한 정보가 외부로 노출되어 악용될 가능성이 있다.
그러나 현재까지 안드로이드 플랫폼은 단순히 어플리케이션을 실행하는 기능만을 제공할 뿐으로, 어플리케이션의 행위를 외부에서 분석하고 이를 통해 안드로이드 어플리케이션에서 개인정보를 수집하고 외부로 유출하거나 시스템을 변경하는 등의 악의적인 행위를 포함하는 코드의 내재 여부를 분석하기 위한 툴이나 방법을 제공하지 않고 있다.
따라서, 안드로이드 어플리케이션을 모니터링하여 어플리케이션의 행위정보를 수집하거나 악의적인 행위를 포함하는 악성코드의 내재 여부를 검출할 수 있는 안드로이드 기반의 어플리케이션 모니터링 기술의 필요성이 절실하게 대두된다.
한국 공개 특허 제10-2015-0059882호, 2015년 6월 3일 공개(명칭: 스마트폰용 악성앱 분석 시스템과 이를 이용한 스마트폰용 악성앱 분석 방법 및 스마트폰용 악성앱 차단 서비스 시스템 및 이를 이용한 스마트폰용 악성앱 차단 서비스 방법)
본 발명의 목적은 어플리케이션의 모니터링 정보를 통해 안드로이드 단말에 악의적인 코드 내재 여부를 판별하여 개인정보 유출과 같은 피해를 방지하는 것이다.
또한, 본 발명의 목적은 모니터링 대상 어플리케이션이 동작하는 안드로이드 운영체제에 어떠한 수정 및 변형을 요구하지 않고 어플리케이션의 모니터링을 수행하는 것이다.
또한, 본 발명의 목적은 유선 및 무선 단말 상에서 어플리케이션 실행정보에 기반한 행위정보 판별, 중요정보의 수집, 변경 및 유출, 악성코드 개발자가 개발한 코드의 실행정보 분석을 통해서 악성코드 개발자가 사용하는 데이터를 추적함으로써 특정 행위를 어떤 의도로 하고 있는지 분석하는 것이다.
또한, 본 발명의 목적은 공공기관이나 기업과 같은 조직 구성원들만 접근하여 사용할 수 있는 제한적인 어플리케이션에 대해서 사전 안전성 검증을 수행하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 안드로이드 플랫폼 기반 어플리케이션의 모니터링 장치는 안드로이드 기반의 어플리케이션 패키지 파일을 이용하여 어플리케이션에 상응하는 복수개의 어플리케이션 코드들의 코드 목록을 획득하는 코드 목록 획득부; 상기 코드 목록을 기반으로 상기 복수개의 어플리케이션 코드들 중 모니터링을 수행할 적어도 하나의 타겟 코드를 설정하는 타겟 설정부; 안드로이드 단말에서 상기 적어도 하나의 타겟 코드에 상응하는 적어도 하나의 코드 실행정보를 수집하는 실행정보 수집부; 및 상기 적어도 하나의 코드 실행정보를 기반으로 악성코드 실행감지 및 어플리케이션 행위분석 중 적어도 하나를 수행하기 위한 어플리케이션 모니터링 정보를 생성하여 제공하는 모니터링 정보 제공부를 포함한다.
이 때, 실행정보 수집부는 상기 어플리케이션이 설치, 실행 및 삭제 중 적어도 하나에 상응하는 동작 중일 때 상기 안드로이드 단말에 설치된 수집 에이전트를 이용하여 수집 모듈을 상기 어플리케이션에 삽입하고, 상기 수집 모듈을 통해 상기 적어도 하나의 코드 실행정보를 수집할 수 있다.
이 때, 모니터링 장치는 인터넷을 이용하여 상기 어플리케이션 패키지 파일을 획득하고, 상기 어플리케이션 패키지 파일을 기반으로 상기 안드로이드 단말에 상기 어플리케이션의 설치, 실행 및 삭제 중 적어도 하나를 수행하는 어플리케이션 관리부를 더 포함할 수 있다.
이 때, 어플리케이션 관리부는 상기 어플리케이션 패키지 파일에 포함된 클래스 목록, 메소드 목록 및 매니페스트(manifest) 정보 중 적어도 하나를 이용하여 상기 어플리케이션을 관리할 수 있다.
이 때, 코드 목록은 상기 클래스 목록 및 상기 메소드 목록 중 적어도 하나를 포함할 수 있다.
이 때, 적어도 하나의 타겟 코드는 상기 클래스 목록을 기반으로 설정된 적어도 하나의 타겟 클래스 및 상기 메소드 목록을 기반으로 설정된 적어도 하나의 타겟 메소드 중 적어도 하나에 상응할 수 있다.
이 때, 실행정보 수집부는 상기 매니페스트 정보를 기반으로 상기 어플리케이션의 실행흐름 중 상기 적어도 하나의 타겟 코드가 실행되는 시점을 파악하고, 상기 적어도 하나의 타겟 코드가 실행되는 시점을 고려하여 상기 적어도 하나의 코드 실행정보를 수집할 수 있다.
이 때, 수집 모듈은 달빅 가상머신(Dalvik virtual machine)에 의해 실행되는 DEX 파일과 리눅스 운영체제의 공유 라이브러리로 분할되어 생성될 수 있다.
이 때, 적어도 하나의 코드 실행정보는 실행시간, 실행 스레드 정보, 클래스 정보, 메소드 정보, 메소드 인자 정보 및 콜 스택 정보 중 적어도 하나를 포함할 수 있다.
이 때, 모니터링 정보 제공부는 상기 적어도 하나의 코드 실행정보 간의 관계 및 상기 적어도 하나의 타겟 코드에 상응하는 의미 중 적어도 하나를 고려하여 상기 어플리케이션 모니터링 정보를 생성할 수 있다.
이 때, 모니터링 장치는 상기 어플리케이션 행위분석을 위한 분석 데이터를 수집하기 위해 상기 어플리케이션의 설치를 수행할 때 상기 분석 데이터를 생성하기 위한 분석 모듈을 상기 어플리케이션에 삽입하는 어플리케이션 데이터 삽입부를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반 어플리케이션의 모니터링 방법은 안드로이드 기반의 어플리케이션 패키지 파일을 이용하여 어플리케이션에 상응하는 복수개의 어플리케이션 코드들의 코드 목록을 획득하는 단계; 상기 코드 목록을 기반으로 상기 복수개의 어플리케이션 코드들 중 모니터링을 수행할 적어도 하나의 타겟 코드를 설정하는 단계; 안드로이드 단말에서 상기 적어도 하나의 타겟 코드에 상응하는 적어도 하나의 코드 실행정보를 수집하는 단계; 및 상기 적어도 하나의 코드 실행정보를 기반으로 악성코드 실행감지 및 어플리케이션 행위분석 중 적어도 하나를 수행하기 위한 어플리케이션 모니터링 정보를 생성하여 제공하는 단계를 포함한다.
이 때, 수집하는 단계는 상기 어플리케이션이 설치, 실행 및 삭제 중 적어도 하나에 상응하는 동작 중일 때 상기 안드로이드 단말에 설치된 수집 에이전트를 이용하여 수집 모듈을 상기 어플리케이션에 삽입하는 단계를 포함하고, 상기 수집 모듈을 통해 상기 적어도 하나의 코드 실행정보를 수집할 수 있다.
이 때, 모니터링 방법은 인터넷을 이용하여 상기 어플리케이션 패키지 파일을 획득하는 단계; 및 상기 어플리케이션 패키지 파일을 기반으로 상기 안드로이드 단말에 상기 어플리케이션의 설치, 실행 및 삭제 중 적어도 하나를 수행하여 상기 어플리케이션을 관리하는 단계를 더 포함할 수 있다.
이 때, 관리하는 단계는 상기 어플리케이션 패키지 파일에 포함된 클래스 목록, 메소드 목록 및 매니페스트(manifest) 정보 중 적어도 하나를 이용하여 상기 어플리케이션을 관리할 수 있다.
이 때, 코드 목록은 상기 클래스 목록 및 상기 메소드 목록 중 적어도 하나를 포함할 수 있다.
이 때, 적어도 하나의 타겟 코드는 상기 클래스 목록을 기반으로 설정된 적어도 하나의 타겟 클래스 및 상기 메소드 목록을 기반으로 설정된 적어도 하나의 타겟 메소드 중 적어도 하나에 상응할 수 있다.
이 때, 수집하는 단계는 상기 매니페스트 정보를 기반으로 상기 어플리케이션의 실행흐름 중 상기 적어도 하나의 타겟 코드가 실행되는 시점을 파악하는 단계를 포함하고, 상기 적어도 하나의 타겟 코드가 실행되는 시점을 고려하여 상기 적어도 하나의 코드 실행정보를 수집할 수 있다.
이 때, 적어도 하나의 코드 실행정보는 실행시간, 실행 스레드 정보, 클래스 정보, 메소드 정보, 메소드 인자 정보 및 콜 스택 정보 중 적어도 하나를 포함할 수 있다.
이 때, 수집 모듈은 달빅 가상머신(Dalvik virtual machine)에 의해 실행되는 DEX 파일과 리눅스 운영체제의 공유 라이브러리로 분할되어 생성될 수 있다.
이 때, 제공하는 단계는 상기 적어도 하나의 코드 실행정보 간의 관계 및 상기 적어도 하나의 타겟 코드에 상응하는 의미 중 적어도 하나를 고려하여 상기 어플리케이션 모니터링 정보를 생성할 수 있다.
이 때, 모니터링 방법은 상기 어플리케이션 행위분석을 위한 분석 데이터를 수집하기 위해 상기 어플리케이션의 설치를 수행할 때 상기 분석 데이터를 생성하기 위한 분석 모듈을 상기 어플리케이션에 삽입하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반 어플리케이션의 모니터링 시스템은 안드로이드 기반의 어플리케이션 패키지 파일을 이용하여 어플리케이션에 상응하는 복수개의 어플리케이션 코드들 중 적어도 하나의 타겟 코드를 설정하고, 상기 적어도 하나의 타겟 코드에 상응하는 적어도 하나의 코드 실행정보를 기반으로 악성코드 실행감지 및 어플리케이션 행위분석 중 적어도 하나를 수행하기 위한 모니터링 정보를 제공하는 모니터링 장치; 및 상기 모니터링 장치에게 상기 적어도 하나의 실행 코드정보를 제공하는 수집 모듈을 상기 어플리케이션에 삽입하는 수집 에이전트가 설치된 안드로이드 단말을 포함한다.
본 발명에 따르면, 어플리케이션의 모니터링 정보를 통해 안드로이드 단말에 악의적인 코드 내재 여부를 판별하여 개인정보 유출과 같은 피해를 방지할 수 있다.
또한, 본 발명은 모니터링 대상 어플리케이션이 동작하는 안드로이드 운영체제에 어떠한 수정 및 변형을 요구하지 않고 어플리케이션의 모니터링을 수행할 수 있다.
또한, 본 발명은 유선 및 무선 단말 상에서 어플리케이션 실행정보에 기반한 행위정보 판별, 중요정보의 수집, 변경 및 유출, 악성코드 개발자가 개발한 코드의 실행정보 분석을 통해서 악성코드 개발자가 사용하는 데이터를 추적함으로써 특정 행위를 어떤 의도로 하고 있는지 분석할 수 있다.
또한, 본 발명은 공공기관이나 기업과 같은 조직 구성원들만 접근하여 사용할 수 있는 제한적인 어플리케이션에 대해서 사전 안전성 검증을 수행할 수 있다.
도 1은 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 시스템을 나타낸 블록도이다.
도 2는 도 1에 도시된 모니터링 장치를 나타낸 블록도이다.
도 3은 종래기술에 따른 안드로이드 플랫폼의 구조를 개념적으로 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 모니터링 장치, 수집 에이전트 및 수집 모듈의 시스템적 구조를 나타낸 도면이다.
도 5는 도 4에 도시된 수집 모듈을 나타낸 블록도이다.
도 6은 본 발명의 일실시예에 따른 모니터링 방법을 단계적으로 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 방법을 나타낸 동작흐름도이다.
도 8은 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 과정을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 시스템을 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 시스템은 모니터링 장치(110), 안드로이드 단말(120, 130) 및 네트워크(140)를 포함한다.
모니터링 장치(110)는 인터넷을 이용하여 어플리케이션 패키지 파일을 획득하고, 어플리케이션 패키지 파일을 기반으로 안드로이드 단말(120, 130)에 어플리케이션의 설치, 실행 및 삭제 중 적어도 하나를 수행할 수 있다.
이 때, 어플리케이션 패키지 파일에 포함된 클래스 목록, 메소드 목록 및 매니페스트(manifest) 정보 중 적어도 하나를 이용하여 어플리케이션을 관리할 수 있다.
또한, 모니터링 장치(110)는 어플리케이션 행위분석을 위한 분석 데이터를 수집하기 위해 어플리케이션의 설치를 수행할 때 분석 데이터를 생성하기 위한 분석 모듈을 어플리케이션에 삽입할 수 있다.
또한, 모니터링 장치(110)는 안드로이드 기반의 어플리케이션 패키지 파일을 이용하여 어플리케이션에 상응하는 복수개의 어플리케이션 코드들의 코드 목록을 획득할 수 있다.
이 때, 코드 목록은 클래스 목록, 메소드 목록 중 적어도 하나를 포함할 수 있다.
또한, 모니터링 장치(110)는 코드 목록을 기반으로 복수개의 어플리케이션 코드들 중 모니터링을 수행할 적어도 하나의 타겟 코드를 설정할 수 있다.
이 때, 적어도 하나의 타겟 코드는 클래스 목록을 기반으로 설정된 적어도 하나의 타겟 클래스 및 메소드 목록을 기반으로 설정된 적어도 하나의 타겟 메소드 중 적어도 하나에 상응할 수 있다.
또한, 모니터링 장치(110)는 안드로이드 단말(120, 130)에서 적어도 하나의 타겟 코드에 상응하는 적어도 하나의 코드 실행정보를 수집할 수 있다.
이 때, 어플리케이션이 설치, 실행 및 삭제 중 적어도 하나에 상응하는 동작 중일 때 안드로이드 단말(120, 130)에 설치된 수집 에이전트를 이용하여 수집 모듈을 어플리케이션에 삽입하고, 수집 모듈을 통해 적어도 하나의 코드 실행정보를 수집할 수 있다.
이 때, 매니페스트 정보를 기반으로 어플리케이션의 실행흐름 중 적어도 하나의 타겟 코드가 실행되는 시점을 파악하고, 적어도 하나의 타겟 코드가 실행되는 시점을 고려하여 적어도 하나의 코드 실행정보를 수집할 수 있다.
이 때, 수집 모듈은 달빅 가상머신(Dalvik virtual machine)에 의해 실행되는 DEX 파일과 리눅스 운영체제의 공유 라이브러리로 분할되어 생성될 수 있다.
이 때, 적어도 하나의 코드 실행정보는 실행시간, 실행 스레드 정보, 클래스 정보, 메소드 정보, 메소드 인자 정보 및 콜 스택 정보 중 적어도 하나를 포함할 수 있다.
또한, 모니터링 장치(110)는 적어도 하나의 코드 실행정보를 기반으로 악성코드 실행감지 및 어플리케이션 행위분석 중 적어도 하나를 수행하기 위한 어플리케이션 모니터링 정보를 생성하여 제공할 수 있다.
이 때, 적어도 하나의 코드 실행정보 간의 관계 및 적어도 하나의 타겟 코드에 상응하는 의미 중 적어도 하나를 고려하여 어플리케이션 모니터링 정보를 생성할 수 있다.
안드로이드 단말(120, 130)은 안드로이드 플랫폼 기반의 유선 또는 무선의 단말일 수 있다.
이 때, 안드로이드 단말(120, 130)은 모니터링 장치(110)로부터 수집 에이전트를 수신하여 설치할 수 있다.
이 때, 안드로이드 단말(120, 130)에서는 모니터링 장치(110)에 의한 제어를 통해 어플리케이션의 설치, 실행 및 삭제가 수행될 수 있다.
이 때, 안드로이드 단말(120, 130)에서 어플리케이션이 동작 중일 때 수집 에이전트에 포함된 수집 모듈이 어플리케이션에 삽입되어 어플리케이션의 실행정보를 수집할 수 있다.
이 때, 수집 모듈은 수집한 정보를 모니터링 장치(110)에게 전달 할 수 있다.
네트워크(140)는 모니터링 장치(110)와 안드로이드 단말(120, 130) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(140)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(140)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다.
도 2는 도 1에 도시된 모니터링 장치를 나타낸 블록도이다.
도 2를 참조하면, 도 1에 도시된 모니터링 장치(110)는 코드 목록 획득부(210), 타겟 설정부(220), 실행정보 수집부(230), 모니터링 정보 제공부(240), 어플리케이션 관리부(250) 및 어플리케이션 데이터 삽입부(260)를 포함한다.
이 때, 모니터링 장치(110)는 윈도우나 리눅스 등의 운영체제를 기반으로 하는 퍼스널 컴퓨터(Personal Computer)에서 동작하는 장치 또는 프로그램일 수 있다. 또한, 모니터링 장치(110)는 안드로이드를 기반으로 하는 스마트 기기 또는 윈도우나 리눅스 운영체제에서 실행되는 안드로이드 에뮬레이터로부터 실행 중인 안드로이드 어플리케이션의 실행 정보를 추출 및 분석하여 어플리케이션의 행위정보를 생성하기 위한 장치 또는 프로그램일 수 있다.
이 때, 모니터링 장치(110)는 정보를 추출하려는 대상 어플리케이션이 동작하는 안드로이드 운영체제에 어떠한 수정 및 변형을 요구하지 않을 수 있다. 이는 종래의 안드로이드 어플리케이션 동적 분석 시스템들이 안드로이드 플랫폼의 구성요소를 수정 또는 변형하여 어플리케이션의 행위정보를 분석하기 위한 환경을 구성했던 것과는 상이할 수 있다.
또한, 모니터링 장치(110)는 유선단말 환경에서 동작하는 어플리케이션 형태일 수 있으며, 내부적으로 코드 목록 획득부(210), 타겟 설정부(220), 실행정보 수집부(230), 모니터링 정보 제공부(240), 어플리케이션 관리부(250) 및 어플리케이션 데이터 삽입부(260)를 포함할 수도 있다.
코드 목록 획득부(210)는 안드로이드 기반의 어플리케이션 패키지 파일을 이용하여 어플리케이션에 상응하는 복수개의 어플리케이션 코드들의 코드 목록을 획득할 수 있다.
이 때, 어플리케이션 패키지 파일은 안드로이드 운영체제에서 실행될 수 있는 어플리케이션에 대한 설치파일에 상응할 수 있다. 예를 들어, apk(android package)가 어플리케이션 패키지 파일에 해당할 수 있다.
또한, 어플리케이션 패키지 파일은 어플리케이션에서 정의하거나 사용하고 있는 모든 클래스와 메소드의 정보를 포함할 수 있다.
또한, 어플리케이션 패키지 파일은 어플리케이션을 구성하는 컴포넌트와 컴포넌트가 반응하는 인텐트가 정의되어 있는 매니페스트(manifest) 정보를 포함할 수 있다. 이 때, 매니페스트 정보를 기반으로 어플리케이션의 정보와 시작 지점에 대한 정보를 수집할 수 있다.
이 때, 코드 목록은 클래스 목록, 메소드 목록 중 적어도 하나를 포함할 수 있다. 즉, 모니터링 대상이 될 수 있는 어플리케이션의 모든 클래스와 모든 메소드에 대한 정보가 포함된 클래스 목록과 메소드 목록을 모니터링 타겟을 설정하는데 필요한 코드 목록에 포함시킬 수 있다.
타겟 설정부(220)는 코드 목록을 기반으로 복수개의 어플리케이션 코드들 중 모니터링을 수행할 적어도 하나의 타겟 코드를 설정할 수 있다. 예를 들어, 코드 목록을 통해 어플리케이션에서 정의하거나 사용하고 있는 모든 클래스와 메소드에 대한 정보를 획득하고, 획득한 클래스 및 메소드 중에서 추적 및 모니터링 하고 싶은 타겟을 설정할 수 있다.
이 때, 적어도 하나의 타겟 코드는 클래스 목록을 기반으로 설정된 적어도 하나의 타겟 클래스 및 메소드 목록을 기반으로 설정된 적어도 하나의 타겟 메소드 중 적어도 하나에 상응할 수 있다.
이와 같이 모니터링을 수행하기 위한 타겟으로 설정된 클래스나 메소드에 대해서는 어플리케이션이 실시간으로 실행 중일 때 관련 실행 정보가 수집되거나 모니터링 장치를 사용하는 관리자에 의해서 열람될 수 있다.
실행정보 수집부(230)는 안드로이드 단말에서 적어도 하나의 타겟 코드에 상응하는 적어도 하나의 코드 실행정보를 수집할 수 있다.
이 때, 어플리케이션이 설치, 실행 및 삭제 중 적어도 하나에 상응하는 동작 중일 때 안드로이드 단말에 설치된 수집 에이전트를 이용하여 수집 모듈을 어플리케이션에 삽입하고, 수집 모듈을 통해 적어도 하나의 코드 실행정보를 수집할 수 있다. 예를 들어, 어플리케이션을 설치 중, 실행 중 및 삭제 중과 같이 어플리케이션을 동작하기 위한 클래스 및 메소드가 실행될 수 있을 때, 동적으로 수집 모듈을 어플리케이션에 삽입하여 타겟으로 설정된 클래스나 메소드에 실행에 따른 코드 실행정보를 수집할 수 있다.
이 때, 수집 에이전트는 안드로이드 어플리케이션 삽입되는 수집 모듈을 포함하는 안드로이드 어플리케이션에 상응할 수 있다. 따라서, 수집 에이전트는 모니터링 장치를 통해 사전에 안드로이드 단말에 설치되어 있을 수 있다.
즉, 어플리케이션이 동작 중일 때 수집 에이전트가 수집 모듈을 생성하여 어플리케이션 내부에 생성한 수집 모듈을 삽입시킴으로써, 어플리케이션의 타겟 코드에 해당하는 코드 실행정보를 추출할 수 있도록 환경을 구축할 수 있다.
이 때, 매니페스트 정보를 기반으로 어플리케이션의 실행흐름 중 적어도 하나의 타겟 코드가 실행되는 시점을 파악하고, 적어도 하나의 타겟 코드가 실행되는 시점을 고려하여 적어도 하나의 코드 실행정보를 수집할 수 있다. 예를 들어, 모니터링 타겟 코드로 설정된 클래스가 어플리케이션을 설치 후 실행할 때 사용된다고 가정한다면, 타겟 코드로 설정된 클래스가 실행되려 할 때 수집 모듈을 어플리케이션에 삽입하여 실행함으로써 타겟 코드로 설정된 클래스의 구조 및 값을 자동으로 분석하여 코드 실행정보를 수집할 수 있다.
이 때, 적어도 하나의 코드 실행정보는 실행시간, 실행 스레드 정보, 클래스 정보, 메소드 정보, 메소드 인자 정보 및 콜 스택 정보 중 적어도 하나를 포함할 수 있다. 즉, 어플리케이션이 실행된 후 실행흐름이 타겟 코드로 설정된 클래스나 메소드의 실행에 해당할 때 실행시간, 실행한 스레드 정보, 클래스 정보, 메소드 정보, 메소드 인자 정보, 콜 스택 정보 등의 정보를 수집하여 모니터링 장치로 가져올 수 있다. 이러한 방식의 정보 수집은 정보 수집의 대상이 되는 안드로이드 플랫폼을 변경하지 않고 이루어지기 때문에, 각 안드로이드 플랫폼의 버전이나 기능 향상에 따라서 모니터링 장치나 모니터링 프로그램의 변형이 불필요하여 효율적일 수 있다.
이 때, 수집 모듈은 달빅 가상머신(Dalvik virtual machine)에 의해 실행되는 DEX 파일과 리눅스 운영체제의 공유 라이브러리로 분할되어 생성될 수 있다.
이 때, 달빅 가상머신은 레지스터 머신 형태의 가상 머신일 수 있으며, 적은 메모리 요구 사양에 최적화 되어 있기 때문에 안드로이드 플랫폼 기반의 휴대 단말에서 사용될 수 있다. 또한, 달빅 가상머신은 종종 자바 가상머신으로 혼동하는 경우가 있을 수 있으나, 달빅 가상머신은 자바 바이트코드를 사용하지 않고, 안드로이드 SDK에 함께 들어있는 dx라고 이름 붙은 도구를 이용하기 때문에 자바 클래스 파일들을 DEX 파일 포맷으로 바꿀 수 있다.
모니터링 정보 제공부(240)는 적어도 하나의 코드 실행정보를 기반으로 악성코드 실행감지 및 어플리케이션 행위분석 중 적어도 하나를 수행하기 위한 어플리케이션 모니터링 정보를 생성하여 제공할 수 있다.
예를 들어, 타겟 코드의 코드 실행정보에 안드로이드 단말의 사용자 정보를 수집하여 외부로 유출하거나 시스템을 변경하는 등의 악의적인 행위가 포함되어 있는지 여부를 확인하여 악성코드 실행감지를 수행할 수 있다. 또한, 공공기관이나 기업의 조직 구성원들이 내부에서 제한적으로 사용하기 위한 어플리케이션을 공개하여 사용하기 전에 어플리케이션 행위분석을 통해 사전 안전성 검증을 수행할 수도 있다.
이 때, 적어도 하나의 코드 실행정보 간의 관계 및 적어도 하나의 타겟 코드에 상응하는 의미 중 적어도 하나를 고려하여 어플리케이션 모니터링 정보를 생성할 수 있다. 예를 들어, 타겟 코드에 해당하는 클래스의 코드 실행정보를 수집하면 클래스를 실행함으로써 어플리케이션이 어떤 행위를 수행하였는지를 모니터링 장치를 이용하는 사용자가 요약하여 볼 수 있도록 정보를 가공하여 생성할 수 있다.
어플리케이션 관리부(250)는 인터넷을 이용하여 어플리케이션 패키지 파일을 획득하고, 어플리케이션 패키지 파일을 기반으로 안드로이드 단말에 어플리케이션의 설치, 실행 및 삭제 중 적어도 하나를 수행할 수 있다.
이 때, 어플리케이션 패키지 파일에 포함된 클래스 목록, 메소드 목록 및 매니페스트(manifest) 정보 중 적어도 하나를 이용하여 어플리케이션을 관리할 수 있다. 따라서, 매니페스트 정보를 기반으로 어플리케이션 패키지 파일에 상응하는 어플리케이션의 시작 지점을 파악하고, 어플리케이션의 설치, 실행 및 삭제에 필요한 클래스, 메소드 및 어플리케이션 정보를 이용하여 설치, 실행 및 삭제를 수행할 수 있다.
어플리케이션 데이터 삽입부(260)는 어플리케이션 행위분석을 위한 분석 데이터를 수집하기 위해 어플리케이션의 설치를 수행할 때 분석 데이터를 생성하기 위한 분석 모듈을 어플리케이션에 삽입할 수 있다. 예를 들어, 특정 어플리케이션에 대해서 코드 실행정보를 수집하기 위해 특정 정보를 가진 파일이 있어야 하는 경우에는 어플리케이션을 설치하는 단계에서 자동으로 특정 정보를 가진 파일이 생성되도록 함으로써 어플리케이션 본연의 행위를 발현할 수 있도록 할 수 있다.
이 때, 분석 모듈은 분석 데이터를 생성하는 동작을 수행하기 위한 코드에 상응할 수 있다.
도 3은 종래기술에 따른 안드로이드 플랫폼의 구조를 개념적으로 나타낸 도면이다.
도 3을 참조하면, 종래기술에 따른 안드로이드 플랫폼에서는 단순히 안드로이드 어플리케이션을 실행하는 기능만을 제공할 수 있다. 따라서, 안드로이드 운영체제를 탑재한 스마트폰 및 스마트패드를 사용하는 사용자는 개인정보 수집 및 유출, 시스템 변경 그리고 악성코드 내제 등의 악의적인 의도를 가진 안드로이드 어플리케이션을 자신도 모르게 설치할 가능성이 높을 수 있다.
또한, 이를 통해 개인 또는 기업에 민감한 정보가 외부로 노출되어 악용될 가능성도 높을 수 있다.
따라서, 본 발명과 같이 안드로이드 운영체제를 탑재한 스마트폰 및 스마트패드에서 어플리케이션을 실행할 때, 어플리케이션에 수집 모듈을 삽입하여 어플리케이션이 동작하는 행위정보를 수집함으로써, 사용자에게 악의적인 행위를 수행하는 악성코드가 내재 되어있는지 여부를 검출할 수 있다.
도 4는 본 발명의 일실시예에 따른 모니터링 장치, 수집 에이전트 및 수집 모듈의 시스템적 구조를 나타낸 도면이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 모니터링 장치(411)는 리눅스 또는 윈도우 기반의 분석 단말(410)을 통해 실행될 수 있다.
이 때, 모니터링 장치(411)는 리눅스나 윈도우 운영체제를 기반으로 하는 퍼스널 컴퓨터에서 동작하는 장치 또는 프로그램에 상응할 수 있다.
따라서, 모니터링 장치(411)를 실행하는 분석 단말(410)이 안드로이드 유선 단말(420) 및 안드로이드 무선 단말(430) 중 적어도 하나와 유무선 통신을 기반으로 연결되어 모니터링을 수행할 수 있다.
이 때, 안드로이드 유선 단말(420)은 윈도우나 리눅스 운영체제에서 실행되는 안드로이드 에뮬레이터(421)를 통해 어플리케이션을 실행할 수 있다. 따라서, 안드로이드 에뮬레이터(421)에서 어플리케이션이 실행되면, 수집 에이전트(422)가 수집 모듈(423)을 생성하여 어플리케이션에 삽입시킴으로써 어플리케이션의 실행정보를 획득할 수 있다.
또한, 안드로이드 무선 단말(430)은 안드로이드 에뮬레이터(421)가 필요 없이 안드로이드 무선 단말(430)의 안드로이드 플랫폼을 기반으로 어플리케이션을 실행할 수 있다. 따라서, 어플리케이션이 실행되면, 안드로이드 유선 단말(420)과 동일하게 수집 에이전트(431)가 수집 모듈(432)을 생성하여 어플리케이션에 삽입시킴으로써 어플리케이션의 실행정보를 획득할 수 있다.
도 5는 도 4에 도시된 수집 모듈을 나타낸 블록도이다.
도 5를 참조하면, 도 4에 도시된 수집 모듈(432)는 삽입 코드 실행기(510), 네이티브 모니터링 정보 전송모듈(520), 어플리케이션 실행환경 제어부(530), DVM 외부제어 모듈(540) 및 라이브러리 함수 실행 정보 추적기(550)를 포함할 수 있다.
삽입 코드 실행기(510)는 수집 모듈(432)이 어플리케이션 동작 중에 어플리케이션에 주입된 후에 퍼스널 컴퓨터(PC)에 있는 프로그램의 특정 신호에 따라 수집 모듈(432)의 동작 여부를 결정할 수 있다.
네이티브 모니터링 정보 전송모듈(520)은 수집 모듈(432)이 안드로이드 기반의 어플리케이션에서 C언어에 상응하는 네이티브 코드로 작성된 어플리케이션의 행위를 수집하면, 수집한 정보를 퍼스널 컴퓨터(PC)의 프로그램에게 전달할 수 있다. 즉, 안드로이드 어플리케이션은 자바로 작성된 부분과 C언어로 작성된 네이티브 코드로 구성될 수 있고, 이 중에서 네이티브 코드로 작성된 어플리케이션의 행위를 추적하여 정보를 수집할 수 있다. 이 때, 수집한 정보를 전달하는 수단이 네이티브 모니터링 정보 전송 모듈(520)에 상응할 수 있다.
어플리케이션 실행환경 제어부(530)는 수집 모듈(432)이 동작 중인 어플리케이션에 삽입되었을 때, 어플리케이션의 메모리에서 어플리케이션의 실행에 영향을 줄 수 있는 정보들을 수정할 수 있다. 즉, 어플리케이션의 메모리 상에서 수집 모듈(432)이 어플리케이션의 실행에 영향을 줄 수 있는 정보들을 수집 및 조작 하기 위한 모듈에 상응할 수 있다.
DVM(Dalvik Virtual Machine) 외부제어 모듈(540)은, 안드로이드 어플리케이션은 DVM이라는 코드 번역기에 의해서 실행될 수 있는데 DVM이 어플리케이션의 코드를 번역할 때 DVM 외부제어 모듈(540)을 통해 DVM의 코드 번역 행위를 조작할 수 있다. 예를 들어, DVM이 코드를 번역할 때, 특정 함수는 실행하기 못하게 하거나, DVM이 종료되려고 할 때 종료되지 못하게 할 수 있다.
라이브러리 함수 실행 정보 추적기(550)는 안드로이드 기반의 어플리케이션에서 C언어로 작성된 부분을 실행할 때 사용되는 함수들의 실행 정보를 추적 및 수집하여 안드로이드 운영체제의 어떤 서비스를 이용하는지 추적할 수 있다.
이 때, 안드로이드 어플리케이션의 C언어로 작성된 부분은 어플리케이션이 실행되는 과정에서 파일의 읽기, 쓰기, 네트워크 통신 등 운영체제에서 제공하는 서비스를 이용하기 위해 libc 라는 모듈에서 제공하는 함수들을 사용할 수 있다. 따라서, libc 모듈에서 제공하는 함수들이 사용하는 운영체제의 서비스 정보를 수집할 수 있다. 이 때, 운영체제의 서비스는 파일 열기, 파일 읽기, 파일 쓰기, 네트워크 통신 및 파일 권한 변경 등을 포함할 수 있다.
도 6은 본 발명의 일실시예에 따른 모니터링 방법을 단계적으로 나타낸 도면이다.
도 6을 참조하면, 본 발명의 일실시예에 따른 모니터링 방법은 어플리케이션을 모니터링 하기 위한 분석 단말(610)이 모니터링 장치를 실행하여 안드로이드 단말(620)에 수집 에이전트를 설치할 수 있다. 예를 들어, 무선 통신을 통해 수집 에이전트를 설치할 수 있는 URL 주소를 제공하면, 안드로이드 단말(620)이 URL 주소를 기반으로 수집 에이전트를 설치할 수 있다.
이 후, 분석 단말(610)의 제어를 통해 안드로이드 단말(620)에서 어플리케이션이 설치, 실행 및 삭제 중 적어도 하나에 상응하는 동작을 수행하면, 수집 에이전트가 수집 모듈을 생성하고, 안드로이드 단말(620)의 플랫폼에 수집 모듈을 동적으로 삽입할 수 있다.
이 후, 안드로이드 단말(620)의 플랫폼에 삽입된 수집 모듈이 어플리케이션의 실행을 기반으로 수집한 코드 실행정보를 분석 단말(610)로 제공함으로써 모니터링 장치가 코드 실행정보를 획득할 수 있다.
이 후, 분석 단말(610)의 모니터링 장치가 코드 실행정보를 기반으로 어플리케이션 모니터링 정보를 생성할 수 있다. 이 때, 모니터링 장치는 분석 단말(610)의 디스플레이 장치를 통해 사용자 또는 모니터링 분석가에게 어플리케이션 모니터링 정보를 보여줄 수 있다.
도 7은 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 방법을 나타낸 동작흐름도이다.
이 때, 모니터링 장치(110)는 윈도우나 리눅스 등의 운영체제를 기반으로 하는 퍼스널 컴퓨터(Personal Computer)에서 동작하는 장치 또는 프로그램일 수 있다. 또한, 모니터링 장치(110)는 안드로이드를 기반으로 하는 스마트 기기 또는 윈도우나 리눅스 운영체제에서 실행되는 안드로이드 에뮬레이터로부터 실행 중인 안드로이드 어플리케이션의 실행 정보를 추출 및 분석하여 어플리케이션의 행위정보를 생성하기 위한 장치 또는 프로그램일 수 있다.
이 때, 모니터링 방법은 정보를 추출하려는 대상 어플리케이션이 동작하는 안드로이드 운영체제에 어떠한 수정 및 변형을 요구하지 않을 수 있다. 이는 종래의 안드로이드 어플리케이션 동적 분석 시스템들이 안드로이드 플랫폼의 구성요소를 수정 또는 변형하여 어플리케이션의 행위정보를 분석하기 위한 환경을 구성했던 것과는 상이할 수 있다.
도 7을 참조하면, 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 방법은 안드로이드 기반의 어플리케이션 패키지 파일을 이용하여 어플리케이션에 상응하는 복수개의 어플리케이션 코드들의 코드 목록을 획득할 수 있다(S710).
이 때, 어플리케이션 패키지 파일은 안드로이드 운영체제에서 실행될 수 있는 어플리케이션에 대한 설치파일에 상응할 수 있다. 예를 들어, apk(android package)가 어플리케이션 패키지 파일에 해당할 수 있다.
또한, 어플리케이션 패키지 파일은 어플리케이션에서 정의하거나 사용하고 있는 모든 클래스와 메소드의 정보를 포함할 수 있다.
또한, 어플리케이션 패키지 파일은 어플리케이션을 구성하는 컴포넌트와 컴포넌트가 반응하는 인텐트가 정의되어 있는 매니페스트(manifest) 정보를 포함할 수 있다. 이 때, 매니페스트 정보를 기반으로 어플리케이션의 정보와 시작 지점에 대한 정보를 수집할 수 있다.
이 때, 코드 목록은 클래스 목록, 메소드 목록 중 적어도 하나를 포함할 수 있다. 즉, 모니터링 대상이 될 수 있는 어플리케이션의 모든 클래스와 모든 메소드에 대한 정보가 포함된 클래스 목록과 메소드 목록을 모니터링 타겟을 설정하는데 필요한 코드 목록에 포함시킬 수 있다.
또한, 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 방법은 코드 목록을 기반으로 복수개의 어플리케이션 코드들 중 모니터링을 수행할 적어도 하나의 타겟 코드를 설정할 수 있다(S720). 예를 들어, 코드 목록을 통해 어플리케이션에서 정의하거나 사용하고 있는 모든 클래스와 메소드에 대한 정보를 획득하고, 획득한 클래스 및 메소드 중에서 추적 및 모니터링 하고 싶은 타겟을 설정할 수 있다.
이 때, 적어도 하나의 타겟 코드는 클래스 목록을 기반으로 설정된 적어도 하나의 타겟 클래스 및 메소드 목록을 기반으로 설정된 적어도 하나의 타겟 메소드 중 적어도 하나에 상응할 수 있다.
이와 같이 모니터링을 수행하기 위한 타겟으로 설정된 클래스나 메소드에 대해서는 어플리케이션이 실시간으로 실행 중일 때 관련 실행 정보가 수집되거나 모니터링 장치를 사용하는 관리자에 의해서 열람될 수 있다.
또한, 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 방법은 안드로이드 단말에서 적어도 하나의 타겟 코드에 상응하는 적어도 하나의 코드 실행정보를 수집할 수 있다(S730).
이 때, 어플리케이션이 설치, 실행 및 삭제 중 적어도 하나에 상응하는 동작 중일 때 안드로이드 단말에 설치된 수집 에이전트를 이용하여 수집 모듈을 어플리케이션에 삽입하고, 수집 모듈을 통해 적어도 하나의 코드 실행정보를 수집할 수 있다. 예를 들어, 어플리케이션을 설치 중, 실행 중 및 삭제 중과 같이 어플리케이션을 동작하기 위한 클래스 및 메소드가 실행될 수 있을 때, 동적으로 수집 모듈을 어플리케이션에 삽입하여 타겟으로 설정된 클래스나 메소드에 실행에 따른 코드 실행정보를 수집할 수 있다.
이 때, 수집 에이전트는 안드로이드 어플리케이션에 삽입되는 수집 모듈을 포함하는 안드로이드 어플리케이션에 상응할 수 있다. 따라서, 수집 에이전트는 모니터링 장치를 통해 사전에 안드로이드 단말에 설치되어 있을 수 있다.
즉, 어플리케이션이 동작 중일 때 수집 에이전트가 수집 모듈을 생성하여 어플리케이션 내부에 생성한 수집 모듈을 삽입시킴으로써, 어플리케이션의 타겟 코드에 해당하는 코드 실행정보를 추출할 수 있도록 환경을 구축할 수 있다.
이 때, 매니페스트 정보를 기반으로 어플리케이션의 실행흐름 중 적어도 하나의 타겟 코드가 실행되는 시점을 파악하고, 적어도 하나의 타겟 코드가 실행되는 시점을 고려하여 적어도 하나의 코드 실행정보를 수집할 수 있다. 예를 들어, 모니터링 타겟 코드로 설정된 클래스가 어플리케이션을 설치 후 실행할 때 사용된다고 가정한다면, 타겟 코드로 설정된 클래스가 실행되려 할 때 수집 모듈을 어플리케이션에 삽입하여 실행함으로써 타겟 코드로 설정된 클래스의 구조 및 값을 자동으로 분석하여 코드 실행정보를 수집할 수 있다.
이 때, 적어도 하나의 코드 실행정보는 실행시간, 실행 스레드 정보, 클래스 정보, 메소드 정보, 메소드 인자 정보 및 콜 스택 정보 중 적어도 하나를 포함할 수 있다. 즉, 어플리케이션이 실행된 후 실행흐름이 타겟 코드로 설정된 클래스나 메소드의 실행에 해당할 때 실행시간, 실행한 스레드 정보, 클래스 정보, 메소드 정보, 메소드 인자 정보, 콜 스택 정보 등의 정보를 수집하여 모니터링 장치로 가져올 수 있다. 이러한 방식의 정보 수집은 정보 수집의 대상이 되는 안드로이드 플랫폼을 변경하지 않고 이루어지기 때문에, 각 안드로이드 플랫폼의 버전이나 기능 향상에 따라서 모니터링 장치나 모니터링 프로그램의 변형이 불필요하여 효율적일 수 있다.
이 때, 수집 모듈은 달빅 가상머신(Dalvik virtual machine)에 의해 실행되는 DEX 파일과 리눅스 운영체제의 공유 라이브러리로 분할되어 생성될 수 있다.
이 때, 달빅 가상머신은 레지스터 머신 형태의 가상 머신일 수 있으며, 적은 메모리 요구 사양에 최적화 되어 있기 때문에 안드로이드 플랫폼 기반의 휴대 단말에서 사용될 수 있다. 또한, 달빅 가상머신은 종종 자바 가상머신으로 혼동하는 경우가 있을 수 있으나, 달빅 가상머신은 자바 바이트코드를 사용하지 않고, 안드로이드 SDK에 함께 들어있는 dx라고 이름 붙은 도구를 이용하기 때문에 자바 클래스 파일들을 DEX 파일 포맷으로 바꿀 수 있다.
또한, 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 방법은 적어도 하나의 코드 실행정보를 기반으로 악성코드 실행감지 및 어플리케이션 행위분석 중 적어도 하나를 수행하기 위한 어플리케이션 모니터링 정보를 생성하여 제공할 수 있다(S740).
예를 들어, 타겟 코드의 코드 실행정보에 안드로이드 단말의 사용자 정보를 수집하여 외부로 유출하거나 시스템을 변경하는 등의 악의적인 행위가 포함되어 있는지 여부를 확인하여 악성코드 실행감지를 수행할 수 있다. 또한, 공공기관이나 기업의 조직 구성원들이 내부에서 제한적으로 사용하기 위한 어플리케이션을 공개하여 사용하기 전에 어플리케이션 행위분석을 통해 사전 안전성 검증을 수행할 수도 있다.
이 때, 적어도 하나의 코드 실행정보 간의 관계 및 적어도 하나의 타겟 코드에 상응하는 의미 중 적어도 하나를 고려하여 어플리케이션 모니터링 정보를 생성할 수 있다. 예를 들어, 타겟 코드에 해당하는 클래스의 코드 실행정보를 수집하면 클래스를 실행함으로써 어플리케이션이 어떤 행위를 수행하였는지를 모니터링 장치를 이용하는 사용자가 요약하여 볼 수 있도록 정보를 가공하여 생성할 수 있다.
또한, 도 7에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 방법은 인터넷을 이용하여 어플리케이션 패키지 파일을 획득하고, 어플리케이션 패키지 파일을 기반으로 안드로이드 단말에 어플리케이션의 설치, 실행 및 삭제 중 적어도 하나를 수행할 수 있다.
이 때, 어플리케이션 패키지 파일에 포함된 클래스 목록, 메소드 목록 및 매니페스트(manifest) 정보 중 적어도 하나를 이용하여 어플리케이션을 관리할 수 있다. 따라서, 매니페스트 정보를 기반으로 어플리케이션 패키지 파일에 상응하는 어플리케이션의 시작 지점을 파악하고, 어플리케이션의 설치, 실행 및 삭제에 필요한 클래스, 메소드 및 어플리케이션 정보를 이용하여 설치, 실행 및 삭제를 수행할 수 있다.
또한, 도 7에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 방법은 어플리케이션 행위분석을 위한 분석 데이터를 수집하기 위해 어플리케이션의 설치를 수행할 때 분석 데이터를 생성하기 위한 분석 모듈을 어플리케이션에 삽입할 수 있다. 예를 들어, 특정 어플리케이션에 대해서 코드 실행정보를 수집하기 위해 특정 정보를 가진 파일이 있어야 하는 경우에는 어플리케이션을 설치하는 단계에서 자동으로 특정 정보를 가진 파일이 생성되도록 함으로써 어플리케이션 본연의 행위를 발현할 수 있도록 할 수 있다.
이 때, 분석모듈은 분석 데이터를 생성하는 동작을 수행하기 위한 코드에 상응할 수 있다.
도 8은 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 과정을 나타낸 도면이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 과정은 먼저 모니터링 장치(810)가 안드로이드 단말(820)에게 수집 에이전트를 제공할 수 있다(S802).
이 후, 안드로이드 단말(820)은 수집 에이전트를 설치할 수 있다(S804).
또한, 모니터링 장치(810)는 인터넷을 통해 모니터링을 수행할 어플리케이션의 어플리케이션 패키지 정보를 획득할 수 있다(S806).
이 후, 어플리케이션 패키지 정보를 기반으로 어플리케이션에 상응하는 복수개의 어플리케이션 코드들의 코드 목록을 획득할 수 있다(S808).
이 때, 어플리케이션 패키지 파일은 안드로이드 운영체제에서 실행될 수 있는 어플리케이션에 대한 설치파일에 상응할 수 있다. 예를 들어, apk(android package)가 어플리케이션 패키지 파일에 해당할 수 있다.
또한, 어플리케이션 패키지 파일은 어플리케이션에서 정의하거나 사용하고 있는 모든 클래스와 메소드의 정보를 포함할 수 있다.
이 때, 코드 목록은 클래스 목록, 메소드 목록 중 적어도 하나를 포함할 수 있다.
이 후, 코드 목록을 기반으로 복수개의 어플리케이션 코드들 중 모니터링을 수행할 적어도 하나의 타겟 코드를 설정할 수 있다(S810).
이 때, 적어도 하나의 타겟 코드는 클래스 목록을 기반으로 설정된 적어도 하나의 타겟 클래스 및 메소드 목록을 기반으로 설정된 적어도 하나의 타겟 메소드 중 적어도 하나에 상응할 수 있다.
이 후, 모니터링 장치(810)가 어플리케이션 패키지 정보를 이용하여 안드로이드 단말(820)에 어플리케이션이 설치되도록 제어할 수 있다(S812).
이 후, 안드로이드 단말(820)에 어플리케이션이 설치되면(S814), 다시 모니터링 장치(810)가 안드로이드 단말(820)에 설치된 어플리케이션이 실행되도록 제어할 수 있다(S816).
이 후, 안드로이드 단말(820)에서 어플리케이션이 실행되면, 안드로이드 단말(820)에 설치된 수집 에이전트가 수집 모듈을 생성하여 어플리케이션에 수집 모듈을 삽입할 수 있다(S818).
이 때, 수집 모듈은 달빅 가상머신(Dalvik virtual machine)에 의해 실행되는 DEX 파일과 리눅스 운영체제의 공유 라이브러리로 분할되어 생성될 수 있다.
이 후, 수집 모듈을 이용하여 적어도 하나의 타겟 코드에 상응하는 적어도 하나의 코드 실행정보를 수집할 수 있다(S820).
이 때, 매니페스트 정보를 기반으로 어플리케이션의 실행흐름 중 적어도 하나의 타겟 코드가 실행되는 시점을 파악하고, 적어도 하나의 타겟 코드가 실행되는 시점을 고려하여 적어도 하나의 코드 실행정보를 수집할 수 있다.
이 때, 적어도 하나의 코드 실행정보는 실행시간, 실행 스레드 정보, 클래스 정보, 메소드 정보, 메소드 인자 정보 및 콜 스택 정보 중 적어도 하나를 포함할 수 있다.
이 후, 수집 모듈을 이용하여 적어도 하나의 코드 실행정보를 모니터링 장치(810)에게 제공할 수 있다(S822).
이 후, 모니터링 장치(810)에서는 적어도 하나의 코드 실행정보를 이용하여 악성코드 실행감지 및 어플리케이션 행위분석 중 적어도 하나를 수행하기 위한 어플리케이션 모니터링 정보를 생성할 수 있다(S824).
이 때, 적어도 하나의 코드 실행정보 간의 관계 및 적어도 하나의 타겟 코드에 상응하는 의미 중 적어도 하나를 고려하여 어플리케이션 모니터링 정보를 생성할 수 있다.
이 후, 모니터링 장치(810)가 어플리케이션 패키지 정보를 이용하여 안드로이드 단말(820)에서 어플리케이션이 삭제되도록 제어하고(S826), 안드로이드 단말(820)에서는 어플리케이션을 삭제할 수 있다(S828).
이상에서와 같이 본 발명에 따른 안드로이드 플랫폼 기반의 어플리케이션 모니터링 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
110, 411, 810: 모니터링 장치 120, 130, 620, 820: 안드로이드 단말
140: 네트워크 210: 코드 목록 획득부
220: 타겟 설정부 230: 실행정보 수집부
240: 모니터링 정보 제공부 250: 어플리케이션 관리부
260: 어플리케이션 데이터 삽입부 410, 610: 분석 단말
412: 어플리케이션 모니터링 정보 420: 안드로이드 유선 단말
421: 안드로이드 에뮬레이터 422, 431: 수집 에이전트
423, 432: 수집 모듈 430: 안드로이드 무선 단말
510: 삽입 코드 실행기 520: 네이티브 모니터링 정보 전송 모듈
530: 어플리케이션 실행환경 제어부 540: DVM 외부제어 모듈
550: 라이브러리 함수 실행 정보 추적기

Claims (20)

  1. 안드로이드 기반의 어플리케이션 패키지 파일을 이용하여 어플리케이션에 상응하는 복수개의 어플리케이션 코드들의 코드 목록을 획득하는 코드 목록 획득부;
    상기 코드 목록을 기반으로 상기 복수개의 어플리케이션 코드들 중 모니터링을 수행할 적어도 하나의 타겟 코드를 설정하는 타겟 설정부;
    안드로이드 단말에서 상기 적어도 하나의 타겟 코드에 상응하는 적어도 하나의 코드 실행정보를 수집하는 실행정보 수집부; 및
    상기 적어도 하나의 코드 실행정보를 기반으로 악성코드 실행감지 및 어플리케이션 행위분석 중 적어도 하나를 수행하기 위한 어플리케이션 모니터링 정보를 생성하여 제공하는 모니터링 정보 제공부를 포함하고,
    상기 실행정보 수집부는
    상기 어플리케이션이 설치, 실행 및 삭제 중 적어도 하나에 상응하는 동작 중일 때 수집 모듈을 통해 상기 적어도 하나의 코드 실행정보를 수집하고,
    상기 수집 모듈은
    상기 어플리케이션이 동작 중일 때, 상기 안드로이드 단말에 설치된 수집 에이전트를 이용하여 상기 어플리케이션에 삽입되는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 장치.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 모니터링 장치는
    인터넷을 이용하여 상기 어플리케이션 패키지 파일을 획득하고, 상기 어플리케이션 패키지 파일을 기반으로 상기 안드로이드 단말에 상기 어플리케이션의 설치, 실행 및 삭제 중 적어도 하나를 수행하는 어플리케이션 관리부를 더 포함하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 장치.
  4. 청구항 3에 있어서,
    상기 어플리케이션 관리부는
    상기 어플리케이션 패키지 파일에 포함된 클래스 목록, 메소드 목록 및 매니페스트(manifest) 정보 중 적어도 하나를 이용하여 상기 어플리케이션을 관리하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 장치.
  5. 청구항 4에 있어서,
    상기 코드 목록은
    상기 클래스 목록 및 상기 메소드 목록 중 적어도 하나를 포함하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 장치.
  6. 청구항 5에 있어서,
    상기 적어도 하나의 타겟 코드는
    상기 클래스 목록을 기반으로 설정된 적어도 하나의 타겟 클래스 및 상기 메소드 목록을 기반으로 설정된 적어도 하나의 타겟 메소드 중 적어도 하나에 상응하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 장치.
  7. 청구항 4에 있어서,
    상기 실행정보 수집부는
    상기 매니페스트 정보를 기반으로 상기 어플리케이션의 실행흐름 중 상기 적어도 하나의 타겟 코드가 실행되는 시점을 파악하고, 상기 적어도 하나의 타겟 코드가 실행되는 시점을 고려하여 상기 적어도 하나의 코드 실행정보를 수집하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 장치.
  8. 청구항 1에 있어서,
    상기 수집 모듈은
    달빅 가상머신(Dalvik virtual machine)에 의해 실행되는 DEX 파일과 리눅스 운영체제의 공유 라이브러리로 분할되어 생성되는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 장치.
  9. 청구항 1에 있어서,
    상기 적어도 하나의 코드 실행정보는
    실행시간, 실행 스레드 정보, 클래스 정보, 메소드 정보, 메소드 인자 정보 및 콜 스택 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 장치.
  10. 청구항 1에 있어서,
    상기 모니터링 정보 제공부는
    상기 적어도 하나의 코드 실행정보 간의 관계 및 상기 적어도 하나의 타겟 코드에 상응하는 의미 중 적어도 하나를 고려하여 상기 어플리케이션 모니터링 정보를 생성하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 장치.
  11. 청구항 3에 있어서,
    상기 모니터링 장치는
    상기 어플리케이션 행위분석을 위한 분석 데이터를 수집하기 위해 상기 어플리케이션의 설치를 수행할 때 상기 분석 데이터를 생성하기 위한 분석 모듈을 상기 어플리케이션에 삽입하는 어플리케이션 데이터 삽입부를 더 포함하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 장치.
  12. 안드로이드 기반의 어플리케이션 패키지 파일을 이용하여 어플리케이션에 상응하는 복수개의 어플리케이션 코드들의 코드 목록을 획득하는 단계;
    상기 코드 목록을 기반으로 상기 복수개의 어플리케이션 코드들 중 모니터링을 수행할 적어도 하나의 타겟 코드를 설정하는 단계;
    안드로이드 단말에서 상기 적어도 하나의 타겟 코드에 상응하는 적어도 하나의 코드 실행정보를 수집하는 단계; 및
    상기 적어도 하나의 코드 실행정보를 기반으로 악성코드 실행감지 및 어플리케이션 행위분석 중 적어도 하나를 수행하기 위한 어플리케이션 모니터링 정보를 생성하여 제공하는 단계를 포함하고,
    상기 수집하는 단계는
    상기 어플리케이션이 설치, 실행 및 삭제 중 적어도 하나에 상응하는 동작 중일 때 수집 모듈을 통해 상기 적어도 하나의 코드 실행정보를 수집하고,
    상기 수집 모듈은
    상기 어플리케이션이 동작 중일 때, 상기 안드로이드 단말에 설치된 수집 에이전트를 이용하여 상기 어플리케이션에 삽입되는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 방법.
  13. 삭제
  14. 청구항 12에 있어서,
    상기 모니터링 방법은
    인터넷을 이용하여 상기 어플리케이션 패키지 파일을 획득하는 단계; 및
    상기 어플리케이션 패키지 파일을 기반으로 상기 안드로이드 단말에 상기 어플리케이션의 설치, 실행 및 삭제 중 적어도 하나를 수행하여 상기 어플리케이션을 관리하는 단계를 더 포함하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 방법.
  15. 청구항 14에 있어서,
    상기 관리하는 단계는
    상기 어플리케이션 패키지 파일에 포함된 클래스 목록, 메소드 목록 및 매니페스트(manifest) 정보 중 적어도 하나를 이용하여 상기 어플리케이션을 관리하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 방법.
  16. 청구항 15에 있어서,
    상기 코드 목록은
    상기 클래스 목록 및 상기 메소드 목록 중 적어도 하나를 포함하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 방법.
  17. 청구항 16에 있어서,
    상기 적어도 하나의 타겟 코드는
    상기 클래스 목록을 기반으로 설정된 적어도 하나의 타겟 클래스 및 상기 메소드 목록을 기반으로 설정된 적어도 하나의 타겟 메소드 중 적어도 하나에 상응하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 방법.
  18. 청구항 15에 있어서,
    상기 수집하는 단계는
    상기 매니페스트 정보를 기반으로 상기 어플리케이션의 실행흐름 중 상기 적어도 하나의 타겟 코드가 실행되는 시점을 파악하는 단계를 포함하고,
    상기 적어도 하나의 타겟 코드가 실행되는 시점을 고려하여 상기 적어도 하나의 코드 실행정보를 수집하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 방법.
  19. 청구항 12에 있어서,
    상기 적어도 하나의 코드 실행정보는
    실행시간, 실행 스레드 정보, 클래스 정보, 메소드 정보, 메소드 인자 정보 및 콜 스택 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 방법.
  20. 안드로이드 기반의 어플리케이션 패키지 파일을 이용하여 어플리케이션에 상응하는 복수개의 어플리케이션 코드들 중 적어도 하나의 타겟 코드를 설정하고, 상기 적어도 하나의 타겟 코드에 상응하는 적어도 하나의 코드 실행정보를 기반으로 악성코드 실행감지 및 어플리케이션 행위분석 중 적어도 하나를 수행하기 위한 모니터링 정보를 제공하는 모니터링 장치; 및
    상기 모니터링 장치에게 상기 적어도 하나의 실행 코드정보를 제공하는 수집 모듈을 상기 어플리케이션에 삽입하는 수집 에이전트가 설치된 안드로이드 단말을 포함하고,
    상기 적어도 하나의 코드 실행정보는
    상기 어플리케이션이 설치, 실행 및 삭제 중 적어도 하나에 상응하는 동작 중일 때 수집 모듈을 통해 수집되고,
    상기 수집 모듈은
    상기 어플리케이션이 동작 중일 때, 상기 안드로이드 단말에 설치된 수집 에이전트를 이용하여 상기 어플리케이션에 삽입되는 것을 특징으로 하는 안드로이드 플랫폼 기반 어플리케이션의 모니터링 시스템.
KR1020150090559A 2015-06-25 2015-06-25 안드로이드 플랫폼 기반의 어플리케이션 모니터링 장치 및 방법 KR101666176B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150090559A KR101666176B1 (ko) 2015-06-25 2015-06-25 안드로이드 플랫폼 기반의 어플리케이션 모니터링 장치 및 방법
US14/939,507 US20160378989A1 (en) 2015-06-25 2015-11-12 Apparatus and method for monitoring android platform-based application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150090559A KR101666176B1 (ko) 2015-06-25 2015-06-25 안드로이드 플랫폼 기반의 어플리케이션 모니터링 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101666176B1 true KR101666176B1 (ko) 2016-10-14

Family

ID=57157075

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150090559A KR101666176B1 (ko) 2015-06-25 2015-06-25 안드로이드 플랫폼 기반의 어플리케이션 모니터링 장치 및 방법

Country Status (2)

Country Link
US (1) US20160378989A1 (ko)
KR (1) KR101666176B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101785349B1 (ko) 2017-04-27 2017-10-17 주식회사 마켓링크 어플리케이션 모니터링 시스템 및 방법
US10713354B2 (en) 2017-07-27 2020-07-14 Samsung Electronics Co., Ltd. Methods and apparatus to monitor permission-controlled hidden sensitive application behavior at run-time
KR20200137828A (ko) * 2019-05-31 2020-12-09 주식회사 우아한형제들 이미지 프리뷰 제공방법 및 그 시스템
WO2022163908A1 (ko) * 2021-01-29 2022-08-04 숭실대학교 산학협력단 애플리케이션 내부의 데이터 유출 위험성 평가 방법, 이를 수행하기 위한 기록 매체 및 장치
US11928220B2 (en) 2021-01-29 2024-03-12 Foundation Of Soongsil University-Industry Cooperation Method for evaluating risk of data leakage in application, recording medium and device for performing the method

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10298599B1 (en) 2014-09-19 2019-05-21 Shape Security, Inc. Systems for detecting a headless browser executing on a client computer
US9986058B2 (en) 2015-05-21 2018-05-29 Shape Security, Inc. Security systems for mitigating attacks from a headless browser executing on a client computer
WO2017007705A1 (en) 2015-07-06 2017-01-12 Shape Security, Inc. Asymmetrical challenges for web security
WO2017007936A1 (en) 2015-07-07 2017-01-12 Shape Security, Inc. Split serving of computer code
US10375026B2 (en) 2015-10-28 2019-08-06 Shape Security, Inc. Web transaction status tracking
US10212130B1 (en) 2015-11-16 2019-02-19 Shape Security, Inc. Browser extension firewall
EP3414695B1 (en) 2016-02-12 2021-08-11 Shape Security, Inc. Reverse proxy computer: deploying countermeasures in response to detecting an autonomous browser executing on a client computer
US10855696B2 (en) 2016-03-02 2020-12-01 Shape Security, Inc. Variable runtime transpilation
US10567363B1 (en) 2016-03-03 2020-02-18 Shape Security, Inc. Deterministic reproduction of system state using seeded pseudo-random number generators
US10129289B1 (en) * 2016-03-11 2018-11-13 Shape Security, Inc. Mitigating attacks on server computers by enforcing platform policies on client computers
US10169028B2 (en) * 2016-12-13 2019-01-01 Ciena Corporation Systems and methods for on demand applications and workflow management in distributed network functions virtualization
US11368472B2 (en) * 2016-12-28 2022-06-21 Digital Arts Inc. Information processing device and program
CN107038375A (zh) * 2017-03-22 2017-08-11 国家计算机网络与信息安全管理中心 一种获取被感染的宿主程序的解密方法及系统
GB2572160B (en) * 2018-03-20 2020-11-25 F Secure Corp Using a generated list of expected and prohibited events of a cluster that represents applications associated therewith for application behaviour monitoring
CN108446561A (zh) * 2018-03-21 2018-08-24 河北师范大学 一种恶意代码行为特征提取方法
CA3098672A1 (en) 2018-05-06 2019-11-14 Arris Enterprises Llc Threat control and prevention for android systems
CN111062006B (zh) * 2018-10-17 2023-01-10 福建天泉教育科技有限公司 一种安卓系统的管控方法及终端
CN109344038A (zh) * 2018-10-30 2019-02-15 济南浪潮高新科技投资发展有限公司 一种基于平台的机房监控系统及方法
US11122134B2 (en) 2019-02-12 2021-09-14 The Nielsen Company (Us), Llc Methods and apparatus to collect media metrics on computing devices
CN114860348A (zh) * 2022-06-09 2022-08-05 北京奇艺世纪科技有限公司 安卓模拟器识别方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150008033A (ko) * 2014-12-30 2015-01-21 주식회사 안랩 모바일 단말기의 악성 코드 검사 방법 및 장치
KR20150044490A (ko) * 2013-10-16 2015-04-27 (주)이스트소프트 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법
KR20150052387A (ko) * 2013-11-04 2015-05-14 주식회사 잉카인터넷 모바일단말의 악성 프로세스 실행 탐지 시스템 및 방법
KR20150059882A (ko) 2013-11-25 2015-06-03 주식회사 케이티 스마트폰용 악성앱 분석 시스템과 이를 이용한 스마트폰용 악성앱 분석 방법 및 스마트폰용 악성앱 차단 서비스 시스템 및 이를 이용한 스마트폰용 악성앱 차단 서비스 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050243604A1 (en) * 2004-03-16 2005-11-03 Ascential Software Corporation Migrating integration processes among data integration platforms
US8650642B2 (en) * 2011-03-31 2014-02-11 Mcafee, Inc. System and method for below-operating system protection of an operating system kernel
KR101944010B1 (ko) * 2012-02-24 2019-01-30 삼성전자 주식회사 애플리케이션의 변조 감지 방법 및 장치
US9043903B2 (en) * 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US8756698B2 (en) * 2012-08-10 2014-06-17 Nopsec Inc. Method and system for managing computer system vulnerabilities
US8893222B2 (en) * 2012-11-13 2014-11-18 Auckland Uniservices Ltd. Security system and method for the android operating system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150044490A (ko) * 2013-10-16 2015-04-27 (주)이스트소프트 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법
KR20150052387A (ko) * 2013-11-04 2015-05-14 주식회사 잉카인터넷 모바일단말의 악성 프로세스 실행 탐지 시스템 및 방법
KR20150059882A (ko) 2013-11-25 2015-06-03 주식회사 케이티 스마트폰용 악성앱 분석 시스템과 이를 이용한 스마트폰용 악성앱 분석 방법 및 스마트폰용 악성앱 차단 서비스 시스템 및 이를 이용한 스마트폰용 악성앱 차단 서비스 방법
KR20150008033A (ko) * 2014-12-30 2015-01-21 주식회사 안랩 모바일 단말기의 악성 코드 검사 방법 및 장치

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101785349B1 (ko) 2017-04-27 2017-10-17 주식회사 마켓링크 어플리케이션 모니터링 시스템 및 방법
US10713354B2 (en) 2017-07-27 2020-07-14 Samsung Electronics Co., Ltd. Methods and apparatus to monitor permission-controlled hidden sensitive application behavior at run-time
KR20200137828A (ko) * 2019-05-31 2020-12-09 주식회사 우아한형제들 이미지 프리뷰 제공방법 및 그 시스템
KR102216296B1 (ko) 2019-05-31 2021-02-17 주식회사 우아한형제들 이미지 프리뷰 제공방법 및 그 시스템
WO2022163908A1 (ko) * 2021-01-29 2022-08-04 숭실대학교 산학협력단 애플리케이션 내부의 데이터 유출 위험성 평가 방법, 이를 수행하기 위한 기록 매체 및 장치
US11928220B2 (en) 2021-01-29 2024-03-12 Foundation Of Soongsil University-Industry Cooperation Method for evaluating risk of data leakage in application, recording medium and device for performing the method

Also Published As

Publication number Publication date
US20160378989A1 (en) 2016-12-29

Similar Documents

Publication Publication Date Title
KR101666176B1 (ko) 안드로이드 플랫폼 기반의 어플리케이션 모니터링 장치 및 방법
CN104182688A (zh) 基于动态激活及行为监测的Android恶意代码检测装置和方法
US10223080B2 (en) Method and system for automated, static instrumentation for applications designed for execution in environments with restricted resources
US20150332043A1 (en) Application analysis system for electronic devices
KR101325954B1 (ko) 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법, 및 이를 위한 안드로이드 어플 자동실행 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
KR101900047B1 (ko) 애플리케이션이 필요로 하는 권한을 진단하는 방법 및 장치
KR101290565B1 (ko) 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN110955887B (zh) 异常行为检测方法及装置
Singh et al. Analysis of malicious behavior of android apps
Sharma et al. Advance woman security system based on android
KR101256468B1 (ko) 악성 파일 진단 장치 및 방법
CN103268448A (zh) 动态检测移动应用的安全性的方法和系统
Barsiya et al. Android malware analysis: a survey paper
Titze et al. App-ray: User-driven and fully automated android app security assessment
CN106462704B (zh) 动态读入代码分析装置和动态读入代码分析方法
Nishimoto et al. Detection of android api call using logging mechanism within android framework
Zhan et al. Splitting third-party libraries’ privileges from android apps
Malik et al. AndroData: a tool for static & dynamic feature extraction of android apps
Zhao et al. A microservice architecture for online mobile app optimization
JP5865180B2 (ja) 携帯通信端末、データ通信検知装置、データ通信検知方法、およびプログラム
Riganelli et al. Increasing the reusability of enforcers with lifecycle events
Yang et al. Improving mobile application security via bridging user expectations and application behaviors
KR20200100565A (ko) 라이브러리 인젝션을 통한 취약점 분석 방법 및 서버
CN112287343A (zh) Sdk监控方法、装置、计算机设备及存储介质
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
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 4