← 메인으로

📱 전자금융 보안 모의해킹 · 백그라운드 화면 보호

Target: 모바일 뱅킹 앱
평가기준: 위험도 3 MOB-SER 백그라운드 화면 보호(043)
💡 쉽게 말하면
카드를 보다가 잠깐 책상에 둘 때 덮지 않아 사진이 찍히는 셈입니다. 자리를 비울 땐 화면을 가려 둬야 합니다.
🔓 공격 시뮬레이션 (Red Team)
🛡️ 대응 방안 (Blue Team)
최근 앱 미리보기 캡처🔒 Secured Channel
앱이 백그라운드로 전환될 때 OS가 최근 앱(task) 미리보기로 화면을 저장하면, 잔액·계좌가 담긴 스냅샷이 단말 탈취·화면 캡처로 노출됩니다.
⚡ 백그라운드 스냅샷 탈취
홈 버튼 전환 시 저장된 미리보기 추출
OFF
🖥️ 금융 시스템 처리 로그
[SYSTEM] Core Banking Channel ready.
[INFO] 거래 요청 대기 중...
⚖️ 컴플라이언스 위반 분석
공격 실행 후 분석 결과가 표시됩니다.
[심각] 전자금융 보안 기준 위반 감지
  • 평가기준 [전자금융] 백그라운드 화면 보호(043)(위험도 3)
  • 단말 화면정보 보호 위반
  • 전자금융감독규정 제13조 미흡
🛡️ 대응 코드/설정 실습

앱은 백그라운드 전환 시 화면을 가리고 FLAG_SECURE로 스냅샷을 막아야 합니다. 아래 코드를 보완하세요.

📚 금융보안원 평가기준 / 조치 가이드

1. 점검 항목

모바일 단말 보호 > 백그라운드 화면 보호

2. 위험 분석

  • 최근 앱 미리보기로 잔액·계좌 노출
  • 단말 탈취 시 화면정보 유출

3. 조치 방법

  • 백그라운드 전환 시 블러/스플래시로 가림
  • FLAG_SECURE 설정으로 스냅샷 차단
🏗️ 현대 금융 IT 환경에서의 변형
앱 전환기FLAG_SECURE생명주기

어디가 달라졌나

최근 앱 목록(앱 전환기)의 미리보기는 OS 가 자동으로 캡처해 디스크에 저장합니다. 잠금화면에서도 보이고, 기기를 잠깐 빌려준 사이에 잔액·계좌번호가 그대로 노출됩니다. 개발자가 명시적으로 막지 않으면 기본값이 “캡처함”입니다.

현대 스택에서의 조치

  • Android 는 FLAG_SECURE 하나로 미리보기까지 차단됩니다.
  • iOS 는 생명주기 이벤트에 맞춰 가림막을 올립니다 — sceneWillResignActive 에서 오버레이를 띄우고 sceneDidBecomeActive 에서 내립니다.
  • SwiftUI·Compose 등 선언형 UI 에서는 씬 단위로 걸어야 합니다. 뷰 컨트롤러 기준 코드가 동작하지 않는 경우가 있습니다.
// iOS — 백그라운드 진입 직전에 가린다 (순서가 중요: resignActive 에서 해야 캡처 전이다)
func sceneWillResignActive(_ scene: UIScene) {
    privacyOverlay.frame = window!.bounds
    window?.addSubview(privacyOverlay)
}
func sceneDidBecomeActive(_ scene: UIScene) { privacyOverlay.removeFromSuperview() }
놓치기 쉬운 곳 — sceneDidEnterBackground 에서 가리면 이미 늦습니다. OS 는 willResignActive 직후에 스냅샷을 뜹니다.