이 문서에서는 사용자 로그인 및 온라인 구매와 같은 민감한 활동을 모니터링하는 방법을 자세히 설명합니다.
FLAG_SECURE
FLAG_SECURE는 Android에 스크린샷을 허용하지 않거나 보안되지 않은 디스플레이 (예: 화면 전송)에 창 뷰를 표시하지 않도록 지시하는 창 플래그입니다. 이는 뱅킹 앱이나 비밀번호 관리자와 같이 민감한 정보를 보호해야 하는 애플리케이션에 유용합니다. 창에 FLAG_SECURE 플래그가 지정되면 Android는 스크린샷을 찍지 못하도록 하고 창이 TV나 프로젝터와 같은 보안되지 않은 디스플레이에 표시되지 않도록 합니다. 이를 통해 창에 표시되는 정보가 권한이 없는 사용자에게 액세스되지 않도록 보호할 수 있습니다.
사기 완화에 도움이 되는 방법
악성 앱 또는 악성 주체가 백그라운드 스크린샷을 가져올 수 있습니다. 앱의 상태가 백그라운드로 변경되면 FLAG_SECURE를 사용할 수 있습니다. 스크린샷을 찍으면 결과 이미지가 비어 있습니다.
FLAG_SECURE는 원격 화면 공유 사용 사례에도 도움이 됩니다. 스크린샷을 가져오는 앱이 항상 악성 앱인 것은 아닙니다. 합법적인 화면 공유 앱도 사기 상황에서 흔히 사용됩니다.
이 방법은 오버레이 공격을 방지하는 데 신뢰할 수 없습니다. 화면 녹화가 활성 상태인지 올바르게 예측하지 못하는 경우도 있지만 대부분의 사용 사례를 지원합니다. 오버레이 공격을 완화하려면 HIDE_OVERLAY_WINDOWS 권한에 관한 다음 섹션을 참고하세요.
HIDE_OVERLAY_WINDOWS
HIDE_OVERLAY_WINDOWS는 Android 12에 추가된 권한으로, 앱이 애플리케이션 오버레이가 앱 위에 그려지지 않도록 선택할 수 있습니다. Android 12에서는 SYSTEM_ALERT_WINDOW 권한을 획득하기가 더 어려워져 앱이 서드 파티 앱의 오버레이를 차단할 수 있습니다.
사기 완화에 도움이 되는 방법
HIDE_OVERLAY_WINDOWS 권한을 사용 설정하면 앱 위에 애플리케이션 오버레이가 그려지지 않습니다. 이 권한은 은폐 및 단검 공격에 대한 보호 메커니즘을 제공합니다.
다른 권한과 마찬가지로 오버레이 앱은 기기의 다른 앱만큼 신뢰해야 합니다. 즉, 다른 앱이 신뢰할 수 있는지 알지 못하는 한 다른 앱이 앱 위에 오버레이를 그릴 수 있도록 허용해서는 안 됩니다. 앱이 다른 앱 위에 그릴 수 있도록 허용하면 비밀번호를 도용하거나 메시지를 읽을 수 있으므로 위험할 수 있습니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Secure sensitive activities\n\nThis document details ways to monitor sensitive activities, such as user logins\nand online purchases.\n\nFLAG_SECURE\n-----------\n\n`FLAG_SECURE` is a [Window flag](/reference/android/view/WindowManager.LayoutParams#FLAG_SECURE) that tells Android not to allow screenshots\nor to display the window view on a non-secure display (such as Casting the\nscreen). This is useful for applications that need to protect sensitive\ninformation, like banking apps or password managers. When a window is flagged\nwith `FLAG_SECURE`, Android prevents screenshots from being taken and prevents\nthe window from being displayed on a non-secure display, such as a TV or\nprojector. This helps to protect the information that is being displayed in the\nwindow from being accessed by unauthorized people.\n\n### How this helps mitigate fraud\n\nA malicious app or entity might retrieve background screenshots. When the state\nof your app changes to the background, `FLAG_SECURE` can be used. When the\nscreenshot is taken the resulting image is blank.\n\n`FLAG_SECURE` also helps with remote screen sharing use cases. It isn't always a\nmalicious app that will retrieve screenshots, legitimate screen sharing apps are\nalso commonly found used in fraudulent situations.\n\n### Implementation\n\nFor views with the information you want protected, add the following: \n\n### Kotlin\n\n```kotlin\nwindow?.setFlags(\n WindowManager.LayoutParams.FLAG_SECURE,\n WindowManager.LayoutParams.FLAG_SECURE\n)\n```\n\n### Java\n\n```java\nwindow.setFlags(\n WindowManager.LayoutParams.FLAG_SECURE,\n WindowManager.LayoutParams.FLAG_SECURE\n);\n```\n\n### Best practices\n\nIt is important to note that this approach isn't reliable in preventing overlay\nattacks. In some cases it does not correctly predict if screen recording is\nactive, however it does cover most use cases. To mitigate overlay attacks, read\nthe next section about `HIDE_OVERLAY_WINDOWS` permissions.\n| **Note:** For Android 11 (API 30) and lower `FLAG_SECURE` is able to help around 70% of the devices reliably. This is because on certain devices keyboard taps can be recorded.\n\nHIDE_OVERLAY_WINDOWS\n--------------------\n\n`HIDE_OVERLAY_WINDOWS` is a permission added in Android 12 where your app can\nopt-out of having application overlays drawn over it. In Android 12 we have made\nit harder to acquire the [`SYSTEM_ALERT_WINDOW`](/reference/android/Manifest.permission#SYSTEM_ALERT_WINDOW) permission, essentially\nallowing your app to block overlays from third-party apps.\n\n### How this helps mitigate fraud\n\nWhen you enable the `HIDE_OVERLAY_WINDOWS` permission you are opting out of\nhaving application overlays drawn on top of your app. This permission provides a\nprotection mechanism against [cloak and dagger](https://cloak-and-dagger.org/) attacks.\n\n### Implementation\n\nTo enable this permission, add [`HIDE_OVERLAY_WINDOWS`](/reference/android/Manifest.permission#HIDE_OVERLAY_WINDOWS) to your project's\nmanifest.\n\n### Best practices\n\nAs with any permission, you should trust any overlay app at least as much as you\ntrust any other app on the device. In other words, your app shouldn't allow\nother apps to draw overlays over it unless you know the other app is\ntrustworthy. Allowing an app to draw over other apps can be dangerous because it\ncan steal passwords or read messages."]]