1 |
1
정적 분석 장치가 어플리케이션에 관한 정보를 수신하는 단계;상기 정적 분석 장치가 상기 어플리케이션에 관한 정보로부터 상기 어플리케이션을 구성하는 액티비티에 관한 정보를 추출하는 단계;상기 정적 분석 장치가 상기 어플리케이션에 관한 정보로부터 CHA(Class Hierarchy Analysis)를 통해 상기 어플리케이션 내의 함수 간의 호출 관계를 나타내는 콜 그래프(call graph)를 생성하는 단계;상기 정적 분석 장치가 상기 콜 그래프를 이용하여 데이터의 흐름을 분석함으로써 상기 함수 간의 호출에 사용된 인텐트 데이터(intent data)를 획득하는 단계; 및상기 정적 분석 장치가 상기 액티비티에 관한 정보 및 상기 인텐트 데이터에 기초하여 액티비티 삽입(activity injection)을 검출하는 단계를 포함하고,상기 어플리케이션에 관한 정보는 상기 어플리케이션의 APK를 포함하고, 상기 액티비티에 관한 정보는 상기 어플리케이션을 구성하는 액티비티의 이름 및 상기 액티비티의 특성(property)를 포함하는 정적 분석 방법
|
2 |
2
제1항에 있어서,상기 추출하는 단계는,상기 어플리케이션에 관한 정보로부터 상기 어플리케이션의 리소스 파일 및 매니페스트 파일을 분리하는 단계; 및상기 매니페스트 파일로부터 상기 액티비티의 특성을 추출하는 단계를 포함하고,상기 액티비티의 특성은 상기 액티비티를 시작하기 위한 런치모드(launchmode) 및 상기 액티비티의 태스크 친화도(taskAffinity)를 포함하는정적 분석 방법
|
3 |
3
제2항에 있어서,상기 런치모드는,스탠다드, 싱글탑, 싱글태스크 및 싱글인스턴스를 포함하는 정적 분석 방법
|
4 |
4
제1항에 있어서,상기 인텐트 데이터는,복수의 인텐트 데이터 엔트리(entry)를 포함하는정적 분석 방법
|
5 |
5
제4항에 있어서,상기 획득하는 단계는,상기 콜 그래프로부터 인텐트의 타겟 액티비티 이름 및 상기 인텐트에 부가되는 인텐트 플래그의 집합을 획득하는 단계를 포함하는 정적 분석 방법
|
6 |
6
제1항에 있어서,상기 검출하는 단계는,상기 액티비티에 관한 정보와 상기 인텐트 데이터를 병합하여 액티비티 활성화 데이터를 생성하는 단계;상기 액티비티 활성화 데이터에 포함된 런치모드 및 인텐트 플래그가 미리 정의된 동작 시맨틱스 규칙(operational semantics rule)에 매칭되는지를 판단하는 단계;판단 결과에 기초하여 상기 액티비티가 다른 앱이 태스크에 삽입될 수 있는지 여부를 검출하는 단계를 포함하는 정적 분석 방법
|
7 |
7
제6항에 있어서,상기 동작 시맨틱스 규칙은,도메인, 스택 및 커맨드 간의 관계를 정의하는정적 분석 방법
|
8 |
8
제7항에 있어서,상기 스택은,백 스택 및 태스크 스택을 포함하는정적 분석 방법
|
9 |
9
제7항에 있어서,상기 커맨드는,홈 버튼 커맨드, 백 버튼 커맨드 및 액티비티 시작 커맨드를 포함하는 정적 분석 방법
|
10 |
10
어플리케이션에 관한 정보를 수신하는 수신기; 및상기 어플리케이션에 관한 정보로부터 획득한 액티비티에 관한 정보 및 인텐트 데이터에 기초하여 액티비티 삽입을 검출하는 컨트롤러를 포함하고,상기 컨트롤러는,상기 어플리케이션에 관한 정보로부터 상기 어플리케이션을 구성하는 액티비티에 관한 정보를 추출하는 액티비티 정보 추출기;상기 어플리케이션에 관한 정보로부터 CHA(Class Hierarchy Analysis)를 통해 상기 어플리케이션 내의 함수 간의 호출 관계를 나타내는 콜 그래프(call graph)를 생성하는 콜 그래프 생성기;상기 콜 그래프를 이용하여 데이터의 흐름을 분석함으로써 상기 함수 간의 호출에 사용된 인텐트 데이터(intent data)를 획득하는 인텐트 분석기; 및상기 액티비티에 관한 정보 및 상기 인텐트 데이터에 기초하여 액티비티 삽입(activity injection)을 검출하는 검출기를 포함하고,상기 어플리케이션에 관한 정보는 상기 어플리케이션의 APK를 포함하고, 상기 액티비티에 관한 정보는 상기 어플리케이션을 구성하는 액티비티의 이름 및 액티비티의 특성(property)를 포함하는정적 분석 장치
|
11 |
11
제10항에 있어서,상기 액티비티 정보 추출기는,상기 어플리케이션에 관한 정보로부터 상기 어플리케이션의 리소스 파일 및 매니페스트 파일을 분리하고, 상기 매니페스트 파일로부터 상기 액티비티의 특성을 추출하고,상기 액티비티의 특성은 상기 액티비티를 시작하기 위한 런치모드(launchmode) 및 상기 액티비티의 태스크 친화도(taskAffinity)를 포함하는정적 분석 장치
|
12 |
12
제11항에 있어서,상기 런치모드는,스탠다드, 싱글탑, 싱글태스크 및 싱글인스턴스를 포함하는 정적 분석 장치
|
13 |
13
제10항에 있어서,상기 인텐트 데이터는,복수의 인텐트 데이터 엔트리(entry)를 포함하는정적 분석 장치
|
14 |
14
제13항에 있어서,상기 인텐트 분석기는,상기 콜 그래프로부터 인텐트의 타겟 액티비티 이름 및 상기 인텐트에 부가되는 인텐트 플래그의 집합을 획득하는정적 분석 장치
|
15 |
15
제10항에 있어서,상기 검출기는,상기 액티비티에 관한 정보와 상기 인텐트 데이터를 병합하여 액티비티 활성화 데이터를 생성하고, 상기 액티비티 활성화 데이터에 포함된 런치모드 및 인텐트 플래그가 미리 정의된 동작 시맨틱스 규칙(operational semantics rule)에 매칭되는지를 판단하고, 판단 결과에 기초하여 상기 액티비티가 다른 앱이 작업에 삽입될 수 있는 지 여부를 검출하는정적 분석 장치
|
16 |
16
제15항에 있어서,상기 동작 시맨틱스 규칙은,도메인, 스택 및 커맨드 간의 관계를 정의하는정적 분석 장치
|
17 |
17
제16항에 있어서,상기 스택은,백 스택 및 태스크 스택을 포함하는정적 분석 장치
|
18 |
18
제16항에 있어서,상기 커맨드는,홈 버튼 커맨드, 백 버튼 커맨드 및 액티비티 시작 커맨드를 포함하는 정적 분석 장치
|