| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- 러시아
- 디지털 증거의 증거능력
- 부다페스트 협약
- 보안사고 회고
- L:azarus
- 악성코드
- 악성코드 분석
- 릭 릭스비
- 분석
- 랜섬웨어
- 사이버안보 협약
- 오래된 지혜
- 독서
- frida
- RootByPass
- 판례평석
- Malware Tool
- VirtualAddress
- 국제 사이버 범죄
- 오픈체인
- 앱 취약점 분석
- 사이버안보
- Uncrakable1
- MALWARE
- 우크라이나
- CISO 제도 분석
- CAN Network
- 블랙바스타
- 악성코드분석
- 오픈소스 관리체계
- Today
- Total
봔하는 수달
[안드로이드]InsecureBankv2 루팅 탐지 우회 본문
모바일 앱 보안 진단 과정에서는 루팅 탐지 우회가 중요한 주제 중 하나입니다.
InsecureBankv2는 보안 실습용으로 잘 알려진 Android 애플리케이션으로, 기기의 루팅 여부를 확인하여 일부 기능을 제한하는 구조를 가지고 있습니다.
이 글에서는 해당 앱이 사용하는 루팅 탐지 기법을 확인하고, Frida를 통해 이를 어떻게 우회할 수 있는지 실습 기반으로 정리합니다.

1. 루팅 탐지 로직 분석
InsecureBankv2의 루팅 탐지 로직은 다음과 같이 구성되어 있습니다.

1. Superuser.apk는 대표적인 루팅 관리 앱입니다. 이 파일이 존재한다면 루팅된 기기로 간주합니다.
2. Runtime.getRuntime().exec()를 통해 "which su" 명령어를 실행하고, 실행 결과가 있으면 루팅 상태로 판단합니다.
이 외에도 루팅을 탐지하는 방법은 다양하며 이를 우회하는 방법 또한 다양합니다.
참고: https://codeshare.frida.re/@dzonerzy/fridantiroot/
Frida CodeShare
codeshare.frida.re
우회 대상
위 로직을 우회하기 위해서는 아래 Frida 코드를 통해 우회가 가능합니다.
- File.exists() → Superuser.apk가 있어도 false 반환
- Runtime.exec() → which su 명령을 다른 명령으로 치환
Java.perform(function () {
const File = Java.use('java.io.File');
const Runtime = Java.use('java.lang.Runtime');
// 1. File.exists() → Superuser.apk 차단
File.exists.implementation = function () {
const path = this.getAbsolutePath();
if (path && path.includes("Superuser.apk")) {
send("[Bypass] File.exists(): " + path);
return false; // 파일 없는 척
}
return this.exists();
};
// 2. Runtime.exec(["/system/xbin/which", "su"]) → 명령어 우회
Runtime.exec.overload('[Ljava.lang.String;').implementation = function (cmdArray) {
const cmdStr = cmdArray.join(" ");
if (cmdStr.includes("which su")) {
send("[Bypass] Runtime.exec(): " + cmdStr);
const safeCmd = "grep"; // 의미 없는 명령어 대체
return Runtime.exec.overload('java.lang.String').call(this, safeCmd);
}
return this.exec(cmdArray);
};
});


4. 정리
이 실습은 실제 서비스 앱이 아닌 보안 테스트용 앱을 대상으로 진행되었습니다.
실제 모바일 앱에서는 이보다 더 다양한 탐지 방법들이 동원됩니다:
- getprop, build.prop 분석
- /proc/ 내 정보 접근
- 네이티브 레벨에서의 system(), fopen() 후킹
- Xposed, Magisk 등 루팅 프레임워크 탐지
Frida는 이러한 탐지 우회를 위해 매우 유용한 도구입니다. 단, 실사용 시에는 앱의 동작과 시스템 API 호출 흐름을 정확히 파악하고 후킹 대상 메서드를 판단해야 합니다.
'정보보안 > 모바일' 카테고리의 다른 글
| [안드로이드] Uncrackable2 (2) | 2025.07.30 |
|---|---|
| [안드로이드] Uncrakable1 (2) | 2025.07.24 |