간단 요약.
Static Analyzer
종류
FlowDroid
(Soot, IC3 추가 이용)
확장 및 발전
- 라벨에 맞는 propagation rule 추가
- HornDroid의 기술을 차용하여 multi-threading, reflection 처리
- 일반적으로 사용되는 System API 모델링
- file path construction과 관련된 source들 추가
- Native method에 대해서 over-approximation 구현
- 4가지 Evidence Tag를 식별하기 위해 함수들을 식별
- static/dynamic file path를 source로 활용하기 위해서 variable assign/function return 지점의 값을 관찰하여 variable path 초기화
한계
- Android API 전부 직접 구현. 이걸 또 만들어? Modeling 작업이 있으면 좋을텐데 (DroidSafe처럼)
- Native Method에 대한 지나친 over-approximation -> 오류 많음, 외부 native method는 전혀 해석 불가.
- file path propagation에서는 inter-component 적용 X.
<intent>
로 표기.
- 암호화파일, 바이너리 파일에 대한 해독은 불가능.
Analysis Content
location, time, visited URL, text input
이외 Github Source 참고
Taint Labeling
Evidence type set, File path 추가
라벨에 맞는 propagation rule 추가
APK Database
App Evidence Database (AED) 구축
package, file path, evidence type
com.app1, ~/files/a.txt, visited URL
com.app2, ~/cache/1, time
기타
공개 여부
- 비공개. Source and Sink 만 공개
시간 소요
- 전처리(Soot, IC3, FlowDroid) 제외, 3분의 처리시간. 6.7% 제외 성공.