안드로이드 애플리케이션 환경에서 CFI 우회 공격기법 연구

Vol. 30, No. 5, pp. 881-893, 10월. 2020
10.13089/JKIISC.2020.30.5.881, Full Text:
Keywords: Android, CFI(Control Flow Integrity), IFCC(Indirect Function Call Checks), SCS(Shadow Call Stack), Bypass
Abstract

CFI(Control Flow Integrity)는 제어 흐름을 검증해 프로그램을 보호하는 기법이다. 안드로이드 환경에서 애플리케이션 보호를 위해 LLVM Clang 컴파일러가 지원하는 CFI 기법인 IFCC(Indirect Function CallChecks)와 SCS(Shadow Call Stack)이 도입되었다. IFCC가 함수 호출, SCS이 함수 복귀 시 제어 흐름을 보호한다. 본 논문에서는 IFCC, SCS을 적용한 애플리케이션 환경에서 CFI 우회 공격기법을 제안한다. 사용자 애플리케이션에 IFCC, SCS을 적용하여도 애플리케이션 메모리 내 IFCC, SCS으로 보호되지 않은 코드 영역이 다수존재하는 것을 확인하였다. 해당 코드 영역에서 공격을 위한 코드를 실행해 1) IFCC로 보호된 함수 우회 호출 기법, 2) SCS 우회를 통한 복귀 주소 변조 기법을 구성한다. 안드로이드10 QP1A. 191005.007.A3 환경에서IFCC, SCS으로 보호되지 않은 코드 영역을 식별하고 개념 증명(proof-of-concept) 공격을 구현해 IFCC, SCS이 적용된 환경에서 제어 흐름 변조가 가능함을 보인다.

Statistics
Show / Hide Statistics

Statistics (Cumulative Counts from December 1st, 2017)
Multiple requests among the same browser session are counted as one view.
If you mouse over a chart, the values of data points will be shown.


Cite this article
[IEEE Style]
이주엽 and 최형기, "A Study of Attacks to Bypass CFI on Android Application Environment," Journal of The Korea Institute of Information Security and Cryptology, vol. 30, no. 5, pp. 881-893, 2020. DOI: 10.13089/JKIISC.2020.30.5.881.

[ACM Style]
이주엽 and 최형기. 2020. A Study of Attacks to Bypass CFI on Android Application Environment. Journal of The Korea Institute of Information Security and Cryptology, 30, 5, (2020), 881-893. DOI: 10.13089/JKIISC.2020.30.5.881.