"permissions": {
"android.permission.SEND_SMS": {
"status": "dangerous",
"info": "Can send SMS messages"
},
"android.permission.READ_CONTACTS": {
"status": "dangerous",
"info": "Can read user contacts"
}
}
지금까지 APK 분석 자동화 환경 구축을 완료했습니다. 이번 포스팅에서는 **MobSF로부터 얻은 분석 결과(정적 및 동적 리포트)**를 올바르게 해석하고, 실제 보안 분석 및 취약점 평가에 활용하는 방법을 다룹니다.
📌 MobSF 분석 결과 파일 구조
분석 과정에서 MobSF는 다음 두 가지 JSON 파일을 제공합니다:
- report.json (정적 분석 결과)
- final_dynamic_report.json (동적 분석 결과)
각 파일에는 앱의 다양한 보안 이슈 및 취약점 정보가 담겨 있습니다.
📚 정적 분석 리포트 (report.json) 해석
정적 분석 리포트는 앱 소스 코드를 분석하여 보안 취약점을 찾아냅니다. 주요 항목은 다음과 같습니다:
✅ 1) 위험 권한 (Dangerous Permissions)
앱에서 사용하는 민감한 권한을 확인할 수 있습니다.
⚠️ 민감한 권한이 다수 존재할 경우 권한 남용 가능성에 주의!
✅ 2) 하드코딩된 API 키 (Hardcoded API Keys)
앱 소스 코드 내에 하드코딩된 API 키나 비밀 정보가 존재하면 보안상 매우 취약합니다.
"findings": {
"hardcoded_secrets": [
{
"file": "com/app/MainActivity.smali",
"line": 120,
"match": "API_KEY=ABC123SECRET"
}
]
}
⚠️ API 키가 노출된 경우 공격자가 API를 악용할 위험 존재!
✅ 3) Exported Activities (외부 호출 가능 액티비티)
외부에서 호출 가능한 액티비티 목록입니다.
"exported_activities": [
"com.app.LoginActivity",
"com.app.TransferActivity"
]
⚠️ 민감한 Activity가 외부 호출 가능 시 앱 로직 우회 위험!
🔎 동적 분석 리포트 (final_dynamic_report.json) 해석
동적 분석 리포트는 실제 앱 실행 환경에서의 보안 동작을 모니터링한 결과입니다.
✅ 1) 네트워크 통신 내역
앱이 실행 중 접근한 외부 URL을 확인할 수 있습니다.
"network": {
"urls": [
"http://malicious-domain.com/api/data",
"https://secure-api.example.com/auth"
]
}
⚠️ 신뢰할 수 없는 URL에 접근한 경우 데이터 유출 위험!
✅ 2) 파일 접근 및 저장 경로
앱이 파일 시스템 내에서 접근한 경로를 확인하여 보안 위협 여부를 평가합니다.
"file_operations": [
"/sdcard/credentials.txt",
"/data/data/com.app/databases/user.db"
]
⚠️ 민감한 데이터가 외부 저장소에 저장된 경우 위험!
✅ 3) API 후킹 로그 (Frida API 모니터링 결과)
Frida를 통해 후킹한 API 호출 내역입니다. 주요 함수 호출 정보를 제공합니다.
"frida_logs": [
"[HOOK] android.telephony.SmsManager.sendTextMessage called",
"[HOOK] java.net.HttpURLConnection.getOutputStream called"
]
⚠️ 민감한 API 호출 시 의심스러운 동작 확인 가능!
🎯 분석 결과 기반 취약점 평가 방법
MobSF 리포트를 기반으로 앱의 주요 보안 취약점을 다음과 같은 방법으로 평가할 수 있습니다:
🔑 (1) 권한 오남용 평가
- 앱이 민감한 권한을 요청할 때, 그 타당성을 평가합니다.
- 특히 SEND_SMS, READ_CONTACTS 등 위험한 권한의 경우 악성 기능 구현 여부를 점검해야 합니다.
📂 (2) 민감 정보 보호 평가
- 하드코딩된 API 키나 비밀번호 등 민감 정보가 노출되지 않았는지 평가합니다.
- 동적 분석에서 파일 시스템 접근 로그를 바탕으로 민감한 데이터가 안전하게 저장되는지 확인합니다.
🌐 (3) 네트워크 보안 평가
- 동적 분석 리포트에서 접근하는 URL을 점검하여 앱이 의도치 않게 외부에 민감한 정보를 전송하거나 악성 서버와 통신하는지 평가합니다.
📑 분석 결과를 활용한 리포트 작성 예시
실제 보안 리포트에서는 다음과 같이 정리할 수 있습니다:
SEND_SMS 권한 사용 | 높음 | 앱이 SMS 메시지를 전송 가능 | 필요성 평가 후 삭제 권고 |
API 키 하드코딩 | 높음 | 소스 코드에 API 키가 노출됨 | 환경변수 사용 및 안전 저장 권장 |
credentials.txt 외부 저장 | 중간 | 민감 정보가 외부 저장소에 저장됨 | 암호화 및 내부 저장소 저장 권장 |
malicious-domain 통신 | 심각 | 앱이 악성 서버와 데이터 통신 | 즉시 해당 도메인 차단 및 조사 진행 |
이러한 방식으로 명확한 보안 평가 및 대응책을 제시할 수 있습니다.
🔖 결론 및 다음 계획
이제 MobSF 분석 결과를 기반으로 실제 앱의 보안 취약점을 평가하고, 이를 통해 보다 안전한 앱을 만드는 방법을 학습했습니다.
다음 편에서는 발견된 취약점을 실제 공격 시나리오에 적용하여 Exploit을 수행하는 실전 분석 사례를 다뤄보겠습니다.
지금까지 열심히 따라와 주셔서 감사해요!
다음 편에서 더 깊이 있는 분석으로 만나요! 🚀✨
'프로젝트' 카테고리의 다른 글
🛡️ [7편] 앱 취약점 대응 및 보안 강화 방법 (0) | 2025.03.26 |
---|---|
🎯 [6편] 실제 Exploit 시나리오로 보는 Android 앱 취약점 분석 (0) | 2025.03.26 |
⚙️ [4편] Python을 활용한 MobSF APK 분석 파이프라인 자동화 (0) | 2025.03.26 |
📱 [3편] MobSF로 Android 앱 동적 분석 및 Frida 후킹 기법 활용하기 (0) | 2025.03.26 |
📱 [2편] MobSF와 연동할 루팅된 에뮬레이터(AVD) 환경 구축하기 (2) | 2025.03.26 |