Storage_S (single APK sample) 상세 분석 보고서

Storage_S 분석 보고서

Version: v1.0

분석일: 2026-04-19 (stub) → 2026-05-13 (보고서 작성)

위협 등급: Extreme

패밀리: wavegrid_kotlin

분석 레벨: static_deep (디컴파일 + smali 분석 완료)

1. 대상 애플리케이션

항목 · 값

파일명 · storage_s.apk

APK 크기 · 5.1 MB

패키지 · com.oxusnc.yunwyaz

버전 · [비공개] (versionCode: 20818)

Min SDK · 29 (Android 10)

Target SDK · 34 (Android 14)

프레임워크 · Kotlin + Java (wavegrid_kotlin)

런처 · com.udynwdo.tdbicd.activity.WelcomeActivity

2. 권한 분석

9개 권한 — wavegrid 최소화 패턴

권한 · 위험도 · 용도

READ_CONTACTS · CRITICAL · 연락처 전체 탈취

READ_PHONE_STATE · HIGH · IMEI/IMSI 수집

READ_PHONE_NUMBERS · HIGH · 전화번호 수집

READ_MEDIA_IMAGES · CRITICAL · 갤러리 이미지 탈취

READ_MEDIA_VIDEO · HIGH · 동영상 접근

READ_EXTERNAL_STORAGE · HIGH · Android 12 이하 호환 (maxSdk: 32)

INTERNET · MEDIUM · C2 통신

ACCESS_NETWORK_STATE · LOW · 네트워크 상태 확인

DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION · LOW · 커스텀 서명 권한

wavegrid 계열 표준: 최소 권한으로 최대 탈취 효과 (연락처 + 미디어 + 기기정보).

3. 앱 구조 분석

3.1 액티비티

액티비티 · 역할

WelcomeActivity · MAIN/LAUNCHER — 초대코드 입력 + C2 로그인

HomeActivity · 권한 요청 + 데이터 수집 오케스트레이션

2-액티비티 구조는 wavegrid 계열 전형 (WelcomeActivity → HomeActivity 전환).

3.2 핵심 클래스

클래스 · 경로 · 역할

WelcomeActivity · com.udynwdo.tdbicd.activity · 초대코드 검증 + C2 인증

HomeActivity · com.udynwdo.tdbicd.activity · 권한 체인 + 데이터 수집

StatusUtils · com.udynwdo.tdbicd.util · 데이터 수집 허브 (연락처/사진/SMS)

GlobuleValue · com.udynwdo.tdbicd.util · C2 설정 전역 변수

3.3 smali 규모

항목 · 수량

smali 파일 · 6,603

분석 총 라인 · 2,121,898

smali 디렉토리 · smali/ (단일)

4. C2 서버 인프라

4.1 Primary C2

항목 · 값

도메인 · [비공개]

백업 DNS · [비공개] (Alibaba DNS)

프레임워크 · RuoYi v3.8.5 (추정)

API Prefix · [비공개]

4.2 API 엔드포인트

메서드 · 엔드포인트 · 용도

POST · [비공개] · 초대코드 인증

POST · [비공개] · 연락처 업로드

POST · [비공개] · SMS 업로드

POST · [비공개] · 이미지 업로드

— · /files_path/ · 파일 경로

4.3 네트워크 보안 우회

```

SSL 이중 우회:

├── X509TrustManager → TrustAllCerts (인증서 검증 완전 무력화)

└── HostnameVerifier → AllowAll (호스트명 검증 무력화)

```

wavegrid 운영자 템플릿의 표준 SSL bypass 패턴.

5. 데이터 탈취 분석

5.1 탈취 대상

데이터 유형 · 수집 메서드 · ContentProvider

연락처 · StatusUtils.getContact() · content://com.android.contacts/data/phones

SMS · StatusUtils (SMS 모듈) · content://sms/

갤러리 이미지 · Luban 압축 후 업로드 · content://downloads/all_downloads

기기 ID · getDeviceId() / getImei() · TelephonyManager

IMSI · getSubscriberId() · TelephonyManager

통신사 · getNetworkOperatorName() · TelephonyManager

5.2 데이터 전송 흐름

```

1. WelcomeActivity: 초대코드 → POST [비공개]

2. HomeActivity: 권한 요청 (READ_CONTACTS → READ_PHONE_STATE → READ_MEDIA_IMAGES)

3. StatusUtils: 연락처 JSON 직렬화 (Gson)

4. POST [비공개] (연락처 일괄 전송)

5. SMS 5일 휴면 후 재수집 → POST [비공개]

6. Luban 이미지 압축 → POST [비공개] (이미지 업로드)

```

SMS 5일 휴면 모듈은 wavegrid 패밀리 시그니처 — 피해자가 앱을 잊을 때까지 대기 후 SMS 수집.

6. 방어기제

기제 · 구현 · 상태

에뮬레이터 탐지 · Build.FINGERPRINT, /proc/cpuinfo, TelephonyManager · 활성

초대코드 인증 · LoginActivity 서버 검증 · 활성

SSL 인증서 우회 · TrustAllCerts + AllowAll · 활성 (역으로 MITM 취약)

7. 패밀리 분류: wavegrid_kotlin

7.1 wavegrid 식별 지표

지표 · Storage_S · wavegrid 표준

StatusUtils 클래스 · 존재 · j62 (데이터 수집 엔진)

SSL 이중 우회 · TrustAllCerts + AllowAll · fi0$d + qx$e 패턴

2-액티비티 구조 · Welcome → Home · 전형적

[비공개] prefix · 사용 · RuoYi 표준

최소 권한 패턴 · 9개 · 7~12개 범위

SMS 휴면 모듈 · 5일 · wavegrid 시그니처

Min SDK 29 · 일치 · wavegrid 표준

7.2 storages와의 관계

storage_s(ID)와 storages(기존 분석 완료)는 동일 APK의 등록 중복으로 추정:

· 동일 패키지명: com.oxusnc.yunwyaz

· 동일 C2: [비공개]

· storages 디렉토리에 전체 분석 산출물 존재 (quantum_nano + data_transmission + Frida hook + 패치 APK)

8. 분석 산출물

산출물 · 경로 · 상태

APK · apk/storage_s/storage_s.apk · 확보 (5.1 MB)

디컴파일 · apk/storage_s/decompiled/ · 완료 (6,603 smali)

smali 스캔 · apk/storages/smali_nuclear_scan.json · 완료 (112,087줄)

Frida Hook · apk/storages/frida_hook_storages.js · 확보

패치 APK · apk/storages/storages_patch.apk · 확보

스크린샷 · apk/storages/ (Welcome + Launch) · 확보

Logcat · apk/storages/logcat_launch.txt · 확보 (105 KB)

9. IOC

유형 · 값

패키지 · com.oxusnc.yunwyaz

SHA256 · 9d4607340de0e8186e0ef7b19cfd3b53eb159cee4fea321c68a02a4744b6622b

C2 도메인 · [비공개]

DNS · [비공개] (Alibaba)

패밀리 · wavegrid_kotlin

런처 · com.udynwdo.tdbicd.activity.WelcomeActivity

데이터 수집 · StatusUtils (contacts + sms + images + device_info)

10. 기법 점검

```

🔬 기법 점검:

· 시도한 기법: SA-047 (2-Activity Kill Chain), NW-001 (RuoYi C2), DA-003 (SSL Bypass), DA-007 (StatusUtils 데이터 수집), SA-076 (Build Variant — storages 중복 매핑)

· 확장된 기법: DA-007 — SMS 5일 휴면 모듈 패턴 재확인 (wavegrid 시그니처)

· 신규 기법: 없음

· 한계 발견: storage_s와 storages 간 APK 바이너리 diff 미실행 — 동일 여부 확정 필요

```

11. 결론

Storage_S(com.oxusnc.yunwyaz)는 wavegrid_kotlin 패밀리의 연락처/SMS/이미지 탈취 악성앱으로, C2 서버 ringyuntyzgfwrt.online을 통해 데이터를 전송한다. 6,603개 smali 파일 분석 결과 StatusUtils 기반 데이터 수집, SSL 이중 우회, SMS 5일 휴면 모듈 등 wavegrid 표준 패턴이 확인되었다. 기존 storages 앱과 동일 패키지명/C2를 공유하며 등록 중복으로 추정되나, APK 바이너리 비교를 통한 확정이 필요하다.

본 보고서는 주식회사 아크링크 Deep-Coding 보안연구소가 피싱·몸캠피싱 피해자 구제를 목적으로 작성했습니다. 전체 열람·피해 상담: arklink.co.kr