정적 버스마크 기반 (k=8)

Download Report

Transcript 정적 버스마크 기반 (k=8)

2015. 02. 03
박종혁
[email protected]
컴퓨터 보안 및 운영체제 연구실
서론
 소프트웨어 도용 및 표절의 심각성
 안드로이드는 앱의 역공학으로 인한 소스코드 도용이 쉬움
 특히, 안드로이드 게임의 95%는 도용 및 표절 위험에 노출됨1)
 난독화 기법
 역공학 공격을 예방하기 위한 기술
 앱 표절 및 도용 예방을 위해 난독화 기법 적용
 반대로 도용 탐지를 우회하기 위한
방법으로도 사용
 정적 분석
 소스코드를 실제로 실행시키지 않고 분석하는 방식
 난독화 기법으로는 전체적인 파악이 어려움
☞ 난독화가 안드로이드 앱 유사성 비교에
미치는 영향 분석
Computer Security & OS Lab.
1) Chris Davies. (2013) “95% Android game piracy experience highlights app theft challenge”.
2
관련 연구
 소프트웨어 버스마크
 프로그램 실행 파일로부터 프로그램의 고유한 정보를 추출하는 기법
• CFG(Control Flow Graph), 명령어 시퀀스, 함수의 구조적 정보 등
• 소프트웨어 유사성 비교 연구들이 진행 중
 일반적인 난독화 기법
 레이아웃 난독화, 데이터 난독화, 제어흐름 난독화 등
 난독화 기법은 표절 기법과 유사
 안드로이드 앱 난독화 도구
 Proguard
• 무료 난독화 도구
• 레이아웃 난독화 제공
 Dex Protector, Dexguard
• 상용 난독화 도구
• 다양한 난독화 기법 제공
Computer Security & OS Lab.
3
관련 연구
 Proguard 도구 분석
 레이아웃 난독화
• 클래스, 메소드, 필드명을 의미 없는 값으로 변경
레이아웃 난독화 적용
 최적화 기능 제공
• 사용하지 않는 코드(class, method, field)를 제거
Computer Security & OS Lab.
4
유사성 비교 방법
 K-gram 기반 안드로이드 버스마크
 연속된 명령어를 k 크기의 조각으로 잘라서 조각난 명령어의 시퀀스를 비교
 난독화에 대한 강인도가 높다고 평가됨
a
b
c
d
e
a
b
c
d
e
.
.
.
 정적 명령어 시퀀스를 추출 후, K-gram을 사용하여 유사성 비교
 추출한 버스마크 기반으로 난독화 전후 유사성 비교
정적 명령어 시퀀스
opcode 추출
☞ 본 논문에서는 Proguard 기반으로 안드로이드 앱 유사성 비교에
난독화가 미치는 영향 분석
Computer Security & OS Lab.
5
실험 및 분석
 실험 대상
 오픈소스 앱을 대상으로 평가
 4개 카테고리에서 각 2개의 앱 선정
카테고리
Battery
Keyboard
PDF Viewer
SSH
Computer Security & OS Lab.
애플리케이션 이름 (버전)
애플리케이션 Size (KB)
Battery-indicator (7.0.6)
2,453
Current-Widget (0.38)
342
AnySoftKeyboard (7.0)
2,008
SoftKeyboard (1.34)
1,781
APV PRO (0.4.0)
3,197
Vudroid (1.4)
1,371
ConnectBot (1.7.1)
838
SSHTunnel (1.5.5)
600
6
동일 카테고리의 앱들의 유사도 비교
 원본 앱 간의 유사성 비교(난독화 미적용)
 카테고리 별로 유사도 평균 산출
 원본 소스코드는 MOSS [16] 도구로 측정
• 역컴파일 된 소스코드는 원본 소스코드와 2~5%의 차이를 보임
• K-gram의 경우, K=6 일 때 원본 소스의 유사도와 근접한 결과를 보임
 Proguard 적용 전후의 유사성 비교
 역컴파일 된 소스코드
• 난독화의 영향으로 난독화 전과 비교하여 유사도가 전체적으로 감소
 정적 버스마킹 (k-gram)
• 명령어 시퀀스는 레이아웃 난독화의 영향을 받지 않음
• 그러나 최적화의 영향으로 유사도 감소
Computer Security & OS Lab.
7
동일 카테고리의 앱들의 유사도 비교
 원본 앱 간의 난독화 전후 유사성 비교
25
23
23
21
20
유사도 (%)
16.0
15
10
10
6.4
4
5
2
2.8
2
2
4
3.1
4
3.5
4
3 3.2
4
4.5
3
4.1
4
2
0
Battery
Battery
Keyboard
Keyboard
PDF Viewer
PDF Viewer
SSH
SSH
(난독화 전)
(난독화 후)
(난독화 전)
(난독화 후)
(난독화 전)
(난독화 후)
(난독화 전)
(난독화 후)
소스코드 비교
Computer Security & OS Lab.
역컴파일된 소스 비교
8
정적 버스마크 기반 (k=6)
동일 앱의 난독화 전후 유사성 비교
 Progaurd(식별자 변환 난독화) 적용 전후 유사성 비교
 API K-gram 기법, 제안 버스마킹
유사도 (%)
• 평균적으로 90% 유사도를 보임
• 최적화로 인한 유사도 감소
• Connectbot 앱의 메이저 및 마이너 버전 유사성 비교
100
99
97
93
88
90
87
90
89
88
88
85
84
83
84
50
0
소스코드 비교
역컴파일된 소스 비교
정적 버스마크 기반 (k=4) 정적 버스마크 기반 (k=8)
Connectbot 앱의 마이너 버전 간 유사도 분석 방법
유사도 (%)
…
100
87
70
83
66
61
52
73
69
67
56
50
68
60
63
49
0
소스코드 비교
역컴파일된 소스 비교
정적 버스마크 기반 (k=4) 정적 버스마크 기반 (k=8)
Connectbot 앱의 메이저 버전 간 유사도 분석 방법
1.7.0 version (난독화 전)
Computer Security & OS Lab.
1.7.0 version (난독화 후)
9
1.8.1 version (난독화 전)
1.8.1 version(난독화 후)
결론
 난독화 기법의 악용
 앱 불법 도용 및 표절을 우회하기 위한 방법으로 난독화 기법 악용
 난독화가 안드로이드 앱 유사성에 미치는 영향 분석
 Proguard 난독화 기법 조사
 Proguard 적용 전후의 안드로이드 앱 유사성 비교
 정적 명령어 시퀀스는 Proguard의 영향을 받지 않음
• 그러나 최적화의 영향은 받을 수 있음
 향후 연구
 난독화 적용 후의 결과에 대한 가중치 부여
 난독화 적용 후에도 높은 신뢰성과 강인성을 보장하기 위한 연구 진행
Computer Security & OS Lab.
10