민감한 활동 보호

이 문서에서는 사용자 로그인 및 온라인 구매와 같은 민감한 활동을 모니터링하는 방법을 자세히 설명합니다.

플래그 보안

FLAG_SECURE는 스크린샷을 허용하지 않거나 안전하지 않은 디스플레이 (예: 화면 전송)에 창 뷰를 표시하도록 Android에 지시하는 창 플래그입니다. 이 기능은 뱅킹 앱이나 비밀번호 관리자와 같이 민감한 정보를 보호해야 하는 애플리케이션에 유용합니다. 창이 FLAG_SECURE로 신고되면 Android는 스크린샷 촬영을 방지하고 창이 TV나 프로젝터와 같은 안전하지 않은 디스플레이에 표시되지 않도록 합니다. 이렇게 하면 승인되지 않은 사용자가 창에 표시되는 정보에 액세스하지 못하도록 보호할 수 있습니다.

사기를 줄이는 방법

악성 앱이나 항목이 백그라운드 스크린샷을 가져올 수 있습니다. 앱 상태가 백그라운드로 변경되면 FLAG_SECURE를 사용할 수 있습니다. 스크린샷을 찍으면 결과 이미지가 비어 있습니다.

FLAG_SECURE는 원격 화면 공유 사용 사례에도 도움이 됩니다. 스크린샷을 검색하는 악성 앱이 항상 위험한 것은 아니며, 합법적인 화면 공유 앱이 허위 상황에서 흔히 사용되는 경우도 있습니다.

구현

보호하려는 정보가 포함된 뷰의 경우 다음을 추가합니다.

Kotlin


window?.setFlags(
    WindowManager.LayoutParams.FLAG_SECURE,
    WindowManager.LayoutParams.FLAG_SECURE
)

Java


window.setFlags(
  WindowManager.LayoutParams.FLAG_SECURE,
  WindowManager.LayoutParams.FLAG_SECURE
);

권장사항

이 접근 방식은 오버레이 공격을 방지하는 데 신뢰할 수 없다는 점에 유의해야 합니다. 경우에 따라 화면 녹화가 활성 상태인지 정확하게 예측하지 못할 수 있지만 대부분의 사용 사례에 적용됩니다. 오버레이 공격을 완화하려면 HIDE_OVERLAY_WINDOWS 권한에 관한 다음 섹션을 참고하세요.

Windows HIDE_OVERLAY_WINDOWS

HIDE_OVERLAY_WINDOWS은 Android 12에 추가된 권한으로, 앱에서 애플리케이션 오버레이가 그려지는 것을 선택 해제할 수 있습니다. Android 12에서는 SYSTEM_ALERT_WINDOW 권한을 얻기가 더 어려워지므로 기본적으로 앱이 서드 파티 앱의 오버레이를 차단할 수 있습니다.

사기를 줄이는 방법

HIDE_OVERLAY_WINDOWS 권한을 사용 설정하면 앱 위에 애플리케이션 오버레이가 그려지지 않게 됩니다. 이 권한은 클로킹 및 칼표 공격으로부터 보호 메커니즘을 제공합니다.

구현

이 권한을 사용 설정하려면 프로젝트의 매니페스트에 HIDE_OVERLAY_WINDOWS를 추가하세요.

권장사항

다른 권한과 마찬가지로 모든 오버레이 앱은 최소한 기기의 다른 앱을 신뢰하는 수준만큼 신뢰해야 합니다. 즉, 다른 앱을 신뢰할 수 있는 것으로 알고 있지 않은 한 다른 앱에서 그 위에 오버레이를 그리도록 허용해서는 안 됩니다. 앱이 다른 앱 위에 그려지도록 허용하면 비밀번호를 도용하거나 메시지를 읽을 수 있으므로 위험할 수 있습니다.