본문 바로가기
App hacking

[Mobile] MobSF를 실제로 사용해보며 악성 앱 설치 흐름 살펴보기

by m_.9m 2025. 12. 13.

 

 

목차

     

    1. 서론

     

    이 글에서는 Mobile Security Framework(MobSF) 를 활용하여 안드로이드 APK 파일을 다루는 일부를 소개합니다.
    동적 분석 환경에서 실제로 악용됐던 악성 앱이 어떤식으로 동작하게 되는지 확인할 수 있습니다.

     

    https://github.com/MobSF/Mobile-Security-Framework-MobSF

     

    GitHub - MobSF/Mobile-Security-Framework-MobSF: Mobile Security Framework (MobSF) is an automated, all-in-one mobile application

    Mobile Security Framework (MobSF) is an automated, all-in-one mobile application (Android/iOS/Windows) pen-testing, malware analysis and security assessment framework capable of performing static a...

    github.com

     

     

    2. MobSF 기능 소개

    이 도구는 기존 수동 분석 방식의 복잡성과 번거로움을 크게 해소하여 분석 효율성을 극대화합니다.

    • 자동화된 환경 구축 생략: 별도로 Frida 서버를 구현하고 실행해야 하는 번거로운 사전 작업을 생략할 수 있습니다.
    • 분석 대상 식별 간소화: 애플리케이션의 패키지 명(Package Name)을 수동으로 식별할 필요가 없습니다.
    • 프로세스 추적 자동화: logcat 분석 시 PID(Process ID)를 별도로 파악해야 하는 일련의 과정을 모두 생략할 수 있습니다.
    • 기기 및 애플리케이션 자동 식별: 연결된 분석 기기를 자동으로 식별하며, 해당 기기 내에 설치된 모든 애플리케이션 목록을 자동으로 나열하여 분석 대상을 즉시 선택할 수 있습니다.

     

    주요 사용해본 기능은 다음과 같습니다.

     

    • Frida JavaScript 코드 편집 및 실행:
      • 커스텀된 Frida JavaScript 코드를 즉시 편집하고 분석 대상 애플리케이션에 주입하여 실행할 수 있습니다.

    • Logcat 스트리밍:
      • 실시간으로 기기의 logcat 출력을 스트리밍하여 동적 분석 중 발생하는 이벤트와 디버깅 정보를 효율적으로 모니터링할 수 있습니다.
    • 내장 스크립트 활용:
      • SSL Pinning 우회(Bypass), 루팅 탐지 우회(Rooting Bypass) 등 보안 분석에 필수적인 다양한 기능을 기본 제공 스크립트 형태로 선택하여 즉시 삽입 및 적용할 수 있습니다.
    • 정적 분석 보고서 생성:
      • 분석 대상 APK에 대한 종합적인 정적 분석 보고서를 자동 생성하여, 초기 취약점 및 위험도 파악에 활용할 수 있습니다.

     

     

     

     

    3. 실습 애플리케이션 소개

    본 실습에 사용된 애플리케이션은 경찰청 사이버 안전국이 제공하는 정식 '폴-안티 스파이 앱'을 사칭한 악성 샘플입니다. 

    • 실제 범죄 악용 사례: 해당 사칭 앱은 2019년과 2023년 등 실제 국내에서 전화금융사기(보이스피싱) 범죄에 광범위하게 악용되었습니다.
    • 트로이 목마 분석의 적합성: 분석 대상 샘플은 겉으로는 보안 앱으로 위장했으나, 실제로는 통신 가로채기, 개인정보 탈취 기능을 수행하는 트로이 목마(Trojan) 유형의 악성코드입니다.

     

     

    4. 동작 흐름 확인

    logcat 흐름을 살피면 앱(com.ldj.Sxw.HeBbQD)이 시작 단계부터 비정상적인 종료를 시도하며, 분석 환경 탐지(Anti-analysis) 기능으로 추정되는 .so 파일에 접근하려다 실패하고 BaseActivity를 통해 오류를 내며 꺼지게 됩니다. 

     

    해당 BaseActivity에서 finish()를 후킹해 비정상적인 종료 흐름을 차단합니다.

    Java.perform(function () {
      send("Dynamic-Loading-Aware Script Activated!");
    
      try {
        const BaseActivity = Java.use("com.ldjSxw.heBbQd.base.BaseActivity");
        BaseActivity.finish.overload().implementation = function () {
          send("[+] BaseActivity.finish() call IGNORED.");
          return;
        };
      
    });

     

     

    실행 종료되던 앱이 계속 구동됩니다.

     

     

     

    검사 시작을 누르면 스캔 > 악성 앱 탐지 안내 > 업데이트를 요구하며 새로운 앱을 설치하게끔 유도합니다. 

     

     

     

    이 때, 설치된 앱을 확인할 수 있습니다.

     

     

     

    분석 보고서를 돌려 확인해보면 악성 앱이 특정 도메인과 소통하는 것을 확인할 수가 있으며, 

    Virustotal로 해당 앱을 검색시 트로이 목마로 다수 탐지된 이력을 확인할 수 있습니다.

     

     


    SpyBanker.X는 사용자가 새로운 앱을 설치하는 과정을 악용하여 슬그머니 동반 설치되는 형태로 유포됩니다.

    • 유형: 안드로이드 뱅킹 트로이 목마(Android Banking Trojan)
    • 개발 배경: 이 악성코드는 2016년 12월에 유출되었던 익명의 안드로이드 뱅킹 트로이 목마 소스 코드를 기반으로 개발되었습니다. 즉, 이미 공개된 코드를 악성코드 제작자들이 가져와 변형한 것입니다.

     

    5. 마무리

    이번 프로젝트를 통해 이론으로만 알던 악성코드 분석 과정을 실습으로 익힐 수 있었습니다.

    • MobSF의 효율성: 기존처럼 ADB나 Frida 서버를 일일이 세팅하지 않고도, MobSF 하나로 logcat 확인, Frida 스크립트 적용, 정적 보고서까지 한 번에 처리할 수 있어서 시간이 엄청 절약됐습니다.
    • 실제 위협 인지: 트로이 목마가 텐센트 Bugly 같은 정상적인 인프라까지 통신에 악용하는 것을 보고, 악성코드가 얼마나 교묘해졌는지 직접 느꼈습니다.