
0. 용어 설명 및 선행 지식
@ init 프로세스
Android OS 부팅 직후, 가장 먼저 실행되는 root 프로세스이다 ( PID = 1 )
@ build.prop 파일
시스템 빌드 정보 및 시스템 속성이 정의된 파일이다
Init 프로세스가 초기화를 실행하는 과정에서 해당 파일을 읽으면서 시스템의 전반 적인 속성을 설정합니다
1. 취약점 설명
해당 취약점은 애뮬레이터 탐지 로직을 구현하지 않았거나 미흡할 때 발생하는 취약점입니다
애뮬레이터의 원래 목적은 앱 개발 시, 간단한 테스트 목적을 위하여 활용되었으나
현재는 일반 사용자들의 게임 실행을 위해서도 활발하게 활용되고 있습니다
이러한 애뮬레이터를 탐지해야하는 첫 번째 이유는 애뮬레이터는 기본적으로 root 사용자 전환이 가능하기 때문입니다
이로 인해 기본적으로 접근이 불가능한 각 앱 영역에 접근이 가능합니다 두 번째 이유는 AVD를 제외한 애뮬레이터들의
파일 시스템은 쓰기 가능으로 마운트 되어 있기 때문입니다 AVD의 경우, 읽기 전용으로 파일 시스템이 마운트되어 있기 때문에
바이너리의 이름 변경이나 각종 파일 변경이 불가능하지만 다른 애뮬레이터는 이것이 가능합니다
( 모든 애뮬레이터의 적용되는 개념은 아닙니다 )
2. 공격
1. Frida를 통한 시스템 속성값 변경
jadx를 통해 앱을 디컴파일해보면 위와 같이 애뮬레이터를 감지하는 메소드가 구현되어 있습니다
해당 메소드의 소스 코드를 살펴보면 build.prop 파일의 정의된 build 속성에 접근하여 애뮬레이터 여부를 판단하고 있습니다
이것을 Frida를 사용하여 우회를 시도할 것이며, 2가지 방법이 있습니다
첫 번째는 메소드가 검사하는 시스템 속성 값 자체를 변경하는 방법
두 번째는 메소드의 리턴값을 변경하는 방법이 있습니다
해당 포스트에서는 두 번째 방법만 다루겠습니다
Java.perform(function(){
let Log = Java.use("android.util.Log")
let Activity = Java.use("com.RedAlien.RedAlienShop.Helper.DoDetect")
Activity.isEmulator1.implementation = ()=>{
Log.i("Detect", "isEmulator1() : \tfalse")
return false;
}
})
해당 스크립트를 적용하여 앱을 실행한 후, 로그를 확인해보면 isEmulator() 메소드가 성공적으로 우회된 것을
확인할 수 있습니다
# 위의 코드는 isEmulator 메소드 우회 스크립트만 작성한 것입니다
# isEmualator 전에 수행되는 루트 감지 메소드들도 당연히 우회 해야 합니다 여기서는 생략하였습니다
2. build.prop 파일 수정
생략
3. 대응 방안
보안 측면에서는 애뮬레이터 탐지 로직 구현이 베스트입니다 하지만 이것은 상황에 따라 달라질 수 있습니다
앞서 말했듯 애뮬레이터는 개발뿐만아니라 게임 실행을 위해서도 활발하게 활용되고 있습니다
게임 제작사에서도 이를 인지하고 애뮬레이터 사용자들을 고려하여 앱을 제작하기도 합니다
때문에 애뮬레이터 환경에서의 앱 구동 여부를 먼저 결정한 후, 애뮬레이터 탐지 로직 구현 여부를 결정해야 합니다
1. 시스템 속성값 조회로 애뮬레이터 탐지
RedAlienShop/RedAlienShop/app/src/main/java/com/RedAlien/RedAlienShop/Helper/DoDetect.java at 4_VulnerabilityPatched_emulatorDet
Contribute to RedAlien00/RedAlienShop development by creating an account on GitHub.
github.com
애뮬레이터마다 build.prop 파일을 살펴보면 애뮬레이터마다 특정 속성값이 존재합니다
이 점을 이용하면 애뮬레이터를 탐지할 수 있습니다 전체 코드는 저의 Github를 참고바랍니다
필자는 Nox와 AVD의 build.prop 만을 비교하여 코드를 작성하였습니다
2. 특정 파일 여부로 애뮬레이터 탐지
RedAlienShop/RedAlienShop/app/src/main/java/com/RedAlien/RedAlienShop/Helper/DoDetect.java at 4_VulnerabilityPatched_emulatorDet
Contribute to RedAlien00/RedAlienShop development by creating an account on GitHub.
github.com
위와 비슷하게 특정 애뮬레이터에만 존재하는 특정한 파일이 있습니다
이 점을 이용하면 애뮬레이터를 탐지할 수 있습니다 이것 또한 전체 코드는 저의 Github를 참고바랍니다
'Project > RedAlienShop' 카테고리의 다른 글
6. RedAlienshop - Frida Detection and Bypass 취약점 (2) | 2025.04.17 |
---|---|
5. RedAlienshop - Developer Option Detection and Bypass 취약점 (1) | 2025.04.15 |
3. RedAlienshop - Root Detection and Bypass 취약점 (0) | 2025.04.10 |
2. RedAlienshop - Allow Data Backup 취약점 (0) | 2025.04.03 |
1. RedAlienshop - Application Debuggable 취약점 (1) | 2025.04.02 |
IT / Android
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!