교육 소개
home
DEEP DIVE 소개
home

모바일 애플리케이션 자동 분석 시스템

5 more properties

배경(Problem)

샌드박스 분석이란?

  보안 혹은 소프트웨어 테스트에 사용되는 격리된 환경에서의 분석 방법
격리된 환경을 만들어 악성 애플리케이션을 안전하게 실행하고 테스트할 수 있도록 함

개발 배경

기본적인 분석 과정에 대한 빠르고 효율적인 분석 필요
    반복되는 분석 과정을 자동화하여 분석에 사용되는 리소스 절약
늘어나는 사이버 침해 사고 신고 건수에 비해 부족한 보안 전문가의 수
    침해 사고 대응 과정에 대한 자동화 필요

서비스 소개(Solution)

MobSF 오픈소스를 활용한 모바일 애플리케이션 자동 분석 시스템
  정적 분석: 앱 실행 없이, 애플리케이션의 구조와 내부 파일 등을 파악
  동적 분석: 앱 실행을 통해 행위, 통신 등을 분석
  복호화: 암호화된 dex 파일의 복호화 수행
  우회 스크립트: Frida 오픈소스를 사용하여 애플리케이션 우회 수행 (특정 애플리케이션에 맞춰진 스크립트로, 필요에 의해 사용자의 커스텀 가능)
  리포트: 분석 결과를 리포트로 제공
사용 방법
프로그램 실행 화면
사전 환경 구성
  MobSF 와 Android Studio Virtual Device 설치
  config.ini 파일 내 설정 정보 기입
프로그램 구동
  REPL 형태의 프로그램으로, 명령어 형태로 각 기능 사용 가능
  정적/동적 분석 동시 또는 별도로 진행 가능
  각 분석 과정 종료 후 분석 결과 리포트 자동 생성 및 확인 가능
  데모 영상
더 자세한 설치 및 사용 방법은 아래 Github 링크를 참고해주세요! Github 링크

아키텍처 및 핵심 기능

전체 아키텍처 및 실행 흐름

핵심 기능

  정적 분석
패키지 기본 정보 / Manifest 분석
인증 정보 / 권한 확인
코드 분석
라이브러리 및 바이너리 파일 분석
Nested APK 존재 여부 스캔
존재할 경우 대상 APK에 대한 정적 분석 추가 진행
PDF 형태의 보고서 제공
  동적 분석
테스트 대상 앱에 대한 실행 환경 탐지 메커니즘 우회 스크립트 실행
액티비티 실행 테스트
SSL/TLS 테스트
JSON 형태의 보고서 제공
  암호화된 Dex 파일에 대한 복호화 기능
APK 디컴파일
암호화 DEX 파일 탐색
복호화 알고리즘 및 KEY 탐색
APK 복호화
APK 리컴파일 / 재서명

활용 라이브러리 및 개발 환경

  개발 및 지원 환경
Windows 10 / Windows 11
기본적으로 Windows 최신 운영체제에서 개발 및 테스트 진행. 메인 프로그램 및 MobSF 구동 시 호스트 OS로 사용.
Android
Android Studio Emulator를 사용하여 테스트 진행. Emulator 버전: Android 9.0(Pie) API 28, Google APIs
  사용 언어 및 라이브러리
Python 3
짧은 프로젝트 기간 내에 빠르게 프로그램을 개발하기 위해 선택한 언어. 오픈소스 라이브러리인 MobSF의 API를 커스터마이징하고, API를 이용해 자동 분석 시스템을 개발하기 위해 사용.
MobSF(Mobile Security Framework)
Python 기반의 모바일 애플리케이션 분석 프레임워크. 기본적인 정적 분석과 동적 분석에 대한 기능 및 레포트 추출 기능을 지원하고, 각 기능을 API 형태로 제공.
Frida
악성 앱 내 자체적으로 구현된 실행 환경 탐지 메커니즘으로 인해 동적 분석을 정상적으로 수행하기 어려운 경우 해당 탐지 메커니즘을 우회하기 위해 사용. Javascript를 이용하여 Frida script 작성 후 적용 시 우회 가능.
APKTool
APK 파일을 디컴파일하여 소스 코드, 리소스, 매니페스트 파일 등을 추출할 수 있는 도구. APK 파일을 구성하고 있는 파일을 검사하고 암호화된 dex 파일을 복호화하거나 nested apk 파일을 탐색하기 위해 사용.
  DevOps
Github
프로그램의 각 기능을 모듈화하여 개발 진행. 개발된 각 모듈 및 메인 프로그램에 대한 소스 코드를 놓치지 않고 관리할 수 있도록 하기 위해 코드 관리 및 이슈 체크 시 활용.

트러블 슈팅

1. 암호화된 Dex 파일에 대한 복호화 기능 일반화

문제 상황
분석 샘플 애플리케이션(Sample.apk)은 multidex 형태의 애플리케이션으로, 앱 실행을 위한 classes.dex 이외에 악성 행위를 포함하는 추가적인 dex 파일을 가짐. 그러나 이 추가 dex 파일은 AES 알고리즘으로 암호화되어 있어 이에 대한 정적 분석을 위해서는 사전에 복호화 작업이 필요함. 앞선 상황을 해결하기 위한 복호화 과정 자동화 프로그램 개발 완료. 그러나 이렇게 개발된 복호화 프로그램은 샘플 애플리케이션에 대해서만 적용 가능하다는 한계를 가짐.
해결 방안
복호화 모듈 제작
DEX 복호화 모듈 제작 시 복호화 키와 암호화 알고리즘 정보가 없더라도 대칭키 암호를 사용하는 암호화 알고리즘(DES, AES, Blowfish)에 대한 복호화 KEY를 탐색하고 복호화 과정을 자동화하는 모듈 제작
더 많은 트러블슈팅 과정과 프로젝트 상세 진행 내용은 아래 보고서 링크를 참고해주세요! 보고서 링크

팀 소개

 팀 소개 : 말하는 감자에서 잘익은 감자로 No Sibal Keep Going 중인 감자들입니다.
최유라 | 팀장 | Frida를 이용한 악성 앱 Emulator Detection Bypass
dbfk1207@gmail.com
어쩌다보니 팀장이 되어 잘익은 왕감자가 되기 위해 열심히 구르고 있는 감자입니다. 주로 분석 파트를 도맡아 했고, 분석 결과를 토대로 필요 기능들을 개발했습니다.
구름톤을 통해 다양한 주제의 프로젝트와 협업 경험을 얻어갈 수 있어서 힘들면서도 재밌는 시간이었습니다!
김은주 | 팀원 | Encrypted APK 분석 자동화 모듈 개발, MobSF 샌드박스 자동 분석 시스템 개발
silver_liq9118@naver.com
감자들 중 제일 낡고 작은 감자를 담당하고 있어요.. 🫠 주로 개발 파트를 맡았으며, 메인 프로그램 개발, 모듈 통합 및 개발, ELK 환경 구축을 진행했습니다.
구름톤을 통해 보안 개발자로서의 역량을 구체화하고 나만의 무기를 만들어갑니다. 3명뿐이지만 3명이라서 다행이었습니다
유은선 | 팀원 | Nested APK 분석 자동화 모듈 개발
54ryues@gmail.com
멋진 팀원들 사이에서 배우며 잘익은 감자가 되기 위해 노력한 감자 팀원입니다. 분석과 이를 토대로 기능을 개발하는 역할을 맡았습니다.
혼자라면 해볼 수 없었던 다양한 경험을 할 수 있었고 멋진 팀원들 덕분에 더 많은 것을 배워갈 수 있었습니다! 힘들기도 했지만 뜻깊고 재미있는 시간이었습니다
유은선 | 팀원 |