ICFGO : Inter-Procedural Control FlowGraph 난독화를 위한 UI 은닉 및 Dummy Flow 삽입 기법

ICFGO : UI Concealing and Dummy Flow Insertion Method for Inter-Procedural Control Flow Graph Obfuscation

초록

안드로이드 운영체제에서 Flow Analysis의 난독화를 위해서는 실행되지 않는 흐름의 코드를 생성하여 FlowGraph의 크기를 크게 만들어 분석이 어렵게 만들 수 있다. 이를 위해 논문에서는 aar 형태의 라이브러리를 구현하여 외부 라이브러리의 형태로 애플리케이션에 삽입이 가능하도록 하였다. 라이브러리는 더미 코드에서의 진입점에서부터 최대 5개의 child node를 가질 수 있도록 설계되었으며, child node의 클래스는 각 node마다 100개부터900개까지 2n+1개의 메서드를 가지고 있으므로 총 2,500개의 진입점으로 구성된다. 또한 진입점은 XML에서 총150개의 뷰로 구성되며, 각각의 진입점은 비동기 인터페이스를 통해 연결된다. 따라서 Inter-Procedural 기반의Control Flow Graph를 생성하는 과정에서는 최대 14,175E+11개의 추가적인 경우의 수를 가지게 된다. 이를애플리케이션에 적용한 결과 Inter Procedural Control Flow Analysis 툴에서 평균 10,931개의 Edge와3,015개의 Node가 추가 생성되었으며 평균 36.64%의 그래프 크기 증가율을 갖는다. 또한 APK를 분석 시에는최대 평균 76.33MB의 오버헤드가 발생하였지만, 사용자의 ART 환경에서는 최대 평균 0.88MB의 실행 오버헤드만을 가지며 실행 가능한 것을 확인하였다.

키워드

Android application; Flow analysis; Obfuscation
제목
ICFGO : Inter-Procedural Control FlowGraph 난독화를 위한 UI 은닉 및 Dummy Flow 삽입 기법
제목 (타언어)
ICFGO : UI Concealing and Dummy Flow Insertion Method for Inter-Procedural Control Flow Graph Obfuscation
저자
심현석; 정수환
DOI
10.13089/JKIISC.2020.30.3.493
발행일
2020-06
저널명
정보보호학회논문지
권
30
호
3
페이지
493 ~ 501