W tym dokumencie szczegółowo opisujemy sposoby monitorowania poufnych działań, takich jak logowanie się użytkowników czy zakupy online.
OZNACZ_BEZPIECZEŃSTWO
FLAG_SECURE
to flaga okna informująca Androida, że nie należy zezwalać na zrzuty ekranu ani wyświetlać widoku okna na niezabezpieczonym wyświetlaczu (np. podczas przesyłania ekranu). Przydaje się to w aplikacjach, które muszą chronić informacje
poufne, np. w aplikacjach bankowych czy menedżerów haseł. Gdy okno zostanie oznaczone za pomocą parametru FLAG_SECURE
, Android uniemożliwia wykonywanie zrzutów ekranu i wyświetlanie okna na niezabezpieczonym ekranie, takim jak telewizor lub projektor. Pomaga to chronić informacje wyświetlane w oknie
przed dostępem nieupoważnionych osób.
Jak pomaga to zapobiegać oszustwom
Złośliwa aplikacja lub podmiot może pobrać zrzuty ekranu w tle. Gdy stan aplikacji zmieni się na tło, można użyć aplikacji FLAG_SECURE
. Po zrobieniu zrzutu ekranu jego wynik będzie pusty.
FLAG_SECURE
pomaga też w przypadkach użycia zdalnego udostępniania ekranu. Nie zawsze jest to złośliwa aplikacja, która umożliwia pobieranie zrzutów ekranu. Do oszustw często stosuje się też legalne aplikacje do udostępniania ekranu.
Implementacja
W przypadku widoków z informacjami, które chcesz chronić, dodaj:
Kotlin
window?.setFlags( WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE )
Java
window.setFlags( WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE );
Sprawdzone metody
Trzeba pamiętać, że ta metoda nie jest skuteczna w zapobieganiu atakom nakładanym. W niektórych przypadkach nie potrafi prawidłowo przewidzieć, czy nagrywanie ekranu jest aktywne, ale obejmuje większość przypadków użycia. Aby ograniczyć ataki nakładane, przeczytaj następną sekcję o uprawnieniach HIDE_OVERLAY_WINDOWS
.
UKRYJ_OVERLAY_WINDOWS
HIDE_OVERLAY_WINDOWS
to uprawnienie dodane w Androidzie 12, za pomocą którego aplikacja może zrezygnować z rysowania na niej nakładek aplikacji. W Androidzie 12 znacznie utrudniliśmy uzyskanie uprawnienia SYSTEM_ALERT_WINDOW
, co w zasadzie umożliwiło aplikacji blokowanie nakładek z aplikacji innych firm.
Jak pomaga to zapobiegać oszustwom
Włączając uprawnienie HIDE_OVERLAY_WINDOWS
, rezygnujesz z wyświetlania nakładek aplikacji w swojej aplikacji. To uprawnienie zapewnia mechanizm ochrony przed atakami typu maskowanie i sztylety.
Implementacja
Aby włączyć to uprawnienie, dodaj HIDE_OVERLAY_WINDOWS
do pliku manifestu projektu.
Sprawdzone metody
Podobnie jak w przypadku innych uprawnień należy ufać każdej nakładce aplikacji co najmniej w takim samym stopniu jak jakiejkolwiek innej aplikacji na urządzeniu. Inaczej mówiąc, jeśli nie masz pewności, że inna aplikacja jest godna zaufania, aplikacja nie powinna zezwalać na rysowanie na niej nakładek. Zezwolenie aplikacji na wyświetlanie się nad innymi aplikacjami może być niebezpieczne, ponieważ może wykradać hasła lub odczytywać wiadomości.