봔하는 수달

[안드로이드]InsecureBankv2 루팅 탐지 우회 본문

정보보안/모바일

[안드로이드]InsecureBankv2 루팅 탐지 우회

봔수달 2025. 7. 22. 22:37

모바일 앱 보안 진단 과정에서는 루팅 탐지 우회가 중요한 주제 중 하나입니다.
InsecureBankv2는 보안 실습용으로 잘 알려진 Android 애플리케이션으로, 기기의 루팅 여부를 확인하여 일부 기능을 제한하는 구조를 가지고 있습니다.

이 글에서는 해당 앱이 사용하는 루팅 탐지 기법을 확인하고, Frida를 통해 이를 어떻게 우회할 수 있는지 실습 기반으로 정리합니다.


InsecureBankv2

1. 루팅 탐지 로직 분석

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

Root Detection

 

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
Comments