Zabezpieczanie aktywności poufnych

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.