📱 전자금융 보안 모의해킹 · 단말기 내 중요정보 저장 방지
Target: 모바일 금융앱 로컬 저장소
평가기준: 위험도 5 MOB-SER 단말 내 중요정보 저장
평가기준: 위험도 5 MOB-SER 단말 내 중요정보 저장
💡 쉽게 말하면
비밀번호를 금고가 아닌 메모지에 적어 서랍에 둔 격이라, 서랍(단말)을 통째로 가져가면 다 읽힙니다. 반드시 금고(암호화 저장소)에 넣어야 합니다.
비밀번호를 금고가 아닌 메모지에 적어 서랍에 둔 격이라, 서랍(단말)을 통째로 가져가면 다 읽힙니다. 반드시 금고(암호화 저장소)에 넣어야 합니다.
🔓 공격 시뮬레이션 (Red Team)
🛡️ 대응 방안 (Blue Team)
단말 로컬 저장소 추출🔒 Secured Channel
금융앱이 비밀번호·계좌번호·인증토큰을 평문으로 SharedPreferences/파일/SQLite에 저장하면, 단말 탈취나 백업 추출만으로 중요정보가 그대로 유출됩니다.
⚡ 단말 백업·run-as 추출
adb backup / run-as로 평문 prefs 덤프
adb backup / run-as로 평문 prefs 덤프
OFF
🖥️ 금융 시스템 처리 로그
[SYSTEM] Core Banking Channel ready.
[INFO] 거래 요청 대기 중...
⚖️ 컴플라이언스 위반 분석
공격 실행 후 분석 결과가 표시됩니다.
[심각] 전자금융 보안 기준 위반 감지
- 평가기준 [전자금융] 단말 내 중요정보 저장(위험도 5) 위반
- 전자금융감독규정 제37조의2 단말기 정보보호 미흡
- 개인정보보호법 제29조 안전성 확보조치(암호화 저장) 위반
🛡️ 대응 코드/설정 실습
중요정보는 평문 저장을 금지하고 EncryptedSharedPreferences와 하드웨어 Keystore 기반으로 암호화 저장해야 합니다. 아래 코드를 보완하세요.
📚 금융보안원 평가기준 / 조치 가이드
1. 점검 항목
모바일 단말 보호 > 단말 내 중요정보 저장 방지2. 위험 분석
- 단말 탈취·백업 추출 시 평문 유출
- run-as·루팅 단말에서 prefs/SQLite 직접 열람
3. 조치 방법
- 중요정보 평문 저장 금지, 불필요 시 미저장
- EncryptedSharedPreferences·하드웨어 Keystore 암호화 적용
- allowBackup=false 설정
🏗️ 현대 금융 IT 환경에서의 변형
KeystoreEncryptedSharedPrefs백업 제외
어디가 달라졌나
단말 저장은 앱 샌드박스 밖으로 새는 경로가 많아졌습니다 — 자동 백업(Android Auto Backup, iCloud), 기기 이전, 스크린 캐시, 로그 수집기. “내부 저장소에 뒀으니 안전하다”는 전제가 더 이상 성립하지 않습니다.
현대 스택에서의 조치
- 키는 Android Keystore / iOS Keychain 에 두고, 데이터는 EncryptedSharedPreferences·SQLCipher 로 암호화합니다.
- 백업에서 제외합니다 —
android:allowBackup="false"또는dataExtractionRules, iOS 는 Keychain 항목의ThisDeviceOnly접근성. - 토큰·세션은 만료와 함께 삭제하고, 로그아웃 시 로컬 캐시를 정리합니다.
<!-- Android 12+ : 백업·기기이전에서 민감 데이터 제외 --> <data-extraction-rules> <cloud-backup><exclude domain="sharedpref" path="auth.xml"/></cloud-backup> <device-transfer><exclude domain="database" path="txn.db"/></device-transfer> </data-extraction-rules>
놓치기 쉬운 곳 — WebView 가 쓰는 저장소(쿠키·localStorage·캐시)는 별도입니다.
하이브리드 앱에서 인증 토큰이 WebView localStorage 에 남아 있는 경우가 실제로 자주 발견됩니다.