Notes / Mobile Security
모바일 앱 모의진단 진단항목·절차
모바일 앱 모의진단에서 정보 노출·데이터 변조·위변조 탐지·통신 보호 같은 표준 진단항목을 어떤 순서와 방법으로 확인하는지, 항목별 진단 절차를 정리합니다.
목차
모바일 앱 모의진단은 정해진 진단항목(정보 노출·데이터 변조·위변조 탐지·통신 보호)을 하나씩 확인하는 작업이다. 각 항목마다 “어디를 보고, 무엇으로, 어떻게 확인하는가”가 정해져 있다. 이 노트는 항목별 진단 절차를 한눈에 모은 지도다.
개념
진단은 대체로 다음 네 묶음으로 나뉘고, 환경 구축 → 정적 분석 → 동적 분석 순으로 각 항목을 본다.
- 정보 노출: 단말 저장소·메모리·로그·백그라운드 스냅샷·소스에 민감정보가 남는가.
- 데이터 변조: 요청/응답을 바꿔 권한 상승·인증 우회·검증 우회가 되는가.
- 위변조·역공학 탐지: 루팅/탈옥·디버거·무결성·난독화 보호가 제대로 걸려 있고, 우회되는가.
- 통신 보호: 평문 통신·약한 TLS·SSL 피닝 우회 가능성.
flowchart LR
A[환경 구축<br/>프록시·Frida] --> B[정적 분석<br/>디컴파일·문자열]
B --> C[동적 분석<br/>후킹·메모리·통신]
C --> D[항목별 확인<br/>정보노출·변조·탐지·통신]
항목별 진단 절차
허가된 단말·앱에서만. <secret>·<pid>·<device-ip>는 실제 값으로.
정보 노출
# 단말 저장소 내 중요정보 (Android)
adb shell; cd /data/data/com.example.app; grep -rinoE '<secret>' *
# 단말 저장소 내 중요정보 (iOS)
# /private/var/mobile/Containers/Data/Application/<UUID> 에서 grep
# 메모리 내 중요정보 (여러 번 덤프)
python fridump3.py -u -r <pid> -s # 이후 dump 폴더 grep
# 디버그 로그
adb logcat --pid=<pid> -d > log.txt # Android
# iOS: Console.app 에서 앱명 필터 후 수집
# 백그라운드 스냅샷 (iOS): 민감화면 후 홈 이탈 → 전환기/캐시 스냅샷 확인
# 소스 내 하드코딩: 디컴파일 후 키·URL·서버주소 문자열 검색
데이터 변조
프록시(Burp)로 요청/응답 가로채기 → 값 변조:
로그인 통신 변조로 관리자 전환 / 응답값(권한 플래그) 변조
응답이 암호화면 키 확보 후 복호화하여 확인
클라이언트 검증(권한·문자열 비교)은 후킹/패치로 분기 우회
TCP(비HTTP) 통신은 투명 프록시·중계로 가로채 변조
위변조·역공학 탐지
루팅/탈옥 탐지 → 탐지 함수 후킹으로 '정상' 반환
디버거 탐지 → 플래그/ptrace 무력화 후 디버거 접속
무결성 검증 → 재패키징 후 분기 패치·재서명, 또는 검증 함수 후킹
난독화 → 심볼 복원·동적 추적으로 로직 파악
통신 보호
평문 통신 여부, TLS 설정(구버전·약한 cipher)
SSL 피닝 → 보편 우회 스크립트로 가로채기 성립
인증서 검증 우회 가능성(사용자 CA 신뢰 시 통과하는가)