Security Lab

Банк пишет «Обнаружено наложение на экран». Что значит «Поверх других приложений» в Android

881
Банк пишет «Обнаружено наложение на экран». Что значит «Поверх других приложений» в Android

Открываю банковское приложение, пытаюсь войти или подтвердить перевод, а банк внезапно сообщает «Обнаружено наложение на экран», «Закройте приложения поверх других окон» или вообще блокирует кнопку. Обычно смартфон не заражён. Android просто видит окно другого приложения, которое может находиться поверх банковского интерфейса, а банк предпочитает не разбираться, полезный перед ним пузырь мессенджера или потенциально вредоносная подделка.

Первым делом я не удалял бы половину телефона. Нужно закрыть плавающие окна, запись или трансляцию экрана, а затем проверить раздел Android «Поверх других приложений». Если предупреждение осталось, следующий подозреваемый уже не overlay, а службы специальных возможностей, удалённое управление или другой механизм, который банк тоже считает опасным. Формулировка «наложение на экран» часто описывает целый класс рисков, а не одно конкретное разрешение.

Материал разбирает защитные механизмы Android. Не советую отключать защиту банковского приложения, модифицировать его или скрывать от него системные состояния. Если банк блокирует операцию, безопаснее найти приложение, вызывающее предупреждение.

Как быстро найти приложение, которое мешает банку

В Android право рисовать собственные окна над чужими приложениями связано прежде всего с разрешением SYSTEM_ALERT_WINDOW. В интерфейсе телефона оно обычно называется «Поверх других приложений», «Отображение поверх других приложений», Display over other apps или Appear on top. Android относит его к специальным доступам, а не к обычным разрешениям вроде камеры. Для современных приложений пользователь должен отдельно разрешить такой доступ. Само разрешение позволяет создавать окна типа TYPE_APPLICATION_OVERLAY поверх других приложений.

Я бы искал виновника в таком порядке.

  1. Закрыть всё, что видно поверх интерфейса. Плавающий переводчик, экранный фильтр, боковую панель, кнопку очистки памяти, индикатор производительности, плавающее видео, игровой помощник, меню удалённого доступа, пузырь чата.
  2. Остановить запись и демонстрацию экрана. Банки могут отдельно реагировать на активную трансляцию дисплея. Обычное разрешение «Поверх других приложений» здесь вообще может быть ни при чём.
  3. Открыть системный список приложений с overlay-доступом. На близком к стандартному Android путь обычно выглядит как Настройки → Приложения → Специальный доступ → Поверх других приложений. У Samsung, Xiaomi, realme, HONOR и других производителей названия меню отличаются.
  4. Временно выключить доступ у необязательных программ. Особенно у очистителей, оптимизаторов, экранных фильтров, помощников, переводчиков, программ удалённого управления и утилит с плавающими кнопками.
  5. Проверить «Специальные возможности». Если недавно установленная программа получила Accessibility без понятной причины, я бы отключил службу и только потом снова открыл банк.
  6. Перезапустить банковское приложение. Иногда приложение проверяет состояние только при запуске или открытии защищённого экрана.
  7. Если ничего не помогло, перезагрузить телефон. После перезапуска не открывать десяток программ сразу, а сначала проверить банк. Так проще понять, какая программа возвращает проблему.

Полезен и обратный эксперимент. Если после отключения разрешения у конкретной программы банк сразу заработал, причина практически найдена. Разрешение можно вернуть и повторить проверку. Такой способ намного надёжнее советов вроде «удалите антивирус» или «закройте WhatsApp». Даже официальная инструкция Citadele приводит целый набор программ, способных мешать защищённому экрану, но конкретный виновник зависит от смартфона, версии приложения и того, какие функции сейчас активны.

Для пользователей ADB есть ещё один диагностический вариант. Если известен пакет подозрительной программы, AppOps позволяет посмотреть состояние операции SYSTEM_ALERT_WINDOW.

adb shell appops get com.example.app SYSTEM_ALERT_WINDOW

Команда показывает право конкретного пакета, но не доказывает, что окно прямо сейчас находится над банком. Для обычного пользователя системное меню Android быстрее и безопаснее.

Почему банк вообще боится обычного окна поверх экрана

Само разрешение «Поверх других приложений» не является вирусом и не даёт программе магической способности читать чужой банковский счёт. Нормальной программе overlay нужен для вполне разумных задач. Экранный фильтр затемняет изображение, навигатор выводит маленькое окно, утилита показывает плавающую кнопку, программа видеосвязи оставляет элементы управления поверх других окон.

Проблема начинается в тот момент, когда таким же механизмом пользуется вредоносная программа. Представим экран банковского перевода. Вредонос показывает поверх настоящей кнопки свой визуальный элемент. Пользователь уверен, что нажимает одно, хотя фактическое действие может отличаться. Такой класс атак называется tapjacking, Android рассматривает его как вариант подмены пользовательского интерфейса.

Есть и более прямолинейная схема. Вместо маленькой кнопки троян показывает целую поддельную форму авторизации, внешне похожую на банк. Пользователь вводит логин, пароль или код уже не в банковское приложение, а в окно злоумышленника. Сам overlay не обязан читать содержимое настоящего банка, достаточно убедительно его закрыть своим интерфейсом.

Поэтому банковскому приложению трудно определить намерения другой программы. Разрешение одинаково выглядит и у полезного экранного фильтра, и у приложения, которое пытается подменить форму входа. Банк выбирает грубую, но понятную модель. Пока потенциально опасное окно существует, чувствительная операция не выполняется.

Android тоже защищается на системном уровне. Начиная с Android 12 система блокирует часть касаний, проходящих через недоверенные наложения из других приложений. Однако защита не сводит риск к нулю, особенно при частичном перекрытии интерфейса. Разработчики чувствительных приложений могут применять дополнительные механизмы. Android отдельно описывает защиту от tapjacking и возможность скрывать overlay-окна над защищённой Activity.

Отсюда возникает неприятный побочный эффект. Банк иногда блокирует совершенно легальную программу. С точки зрения пользователя предупреждение выглядит параноидально, с точки зрения банка ложное срабатывание обходится дешевле успешной подмены кнопки подтверждения перевода.

Overlay, Accessibility и демонстрация экрана не одно и то же

В инструкциях эти механизмы часто смешивают. Особенно плохо, когда любое плавающее окно называют «доступом ко всему телефону». Возможности сильно различаются.

Механизм Что может делать Чего сам по себе не даёт Почему интересует банк
SYSTEM_ALERT_WINDOW Показывать собственное окно поверх других приложений Не даёт автоматически читать интерфейс банка или нажимать его кнопки Можно закрыть или визуально подменить чувствительную часть интерфейса
Accessibility В зависимости от возможностей службы читать структуру интерфейса, отслеживать события, выполнять жесты и системные действия Не является обычным разрешением overlay и не сводится к плавающему окну Банковские трояны часто используют службу для автоматического управления смартфоном
Запись или трансляция экрана Передавать изображение дисплея или выбранного приложения Сама по себе не даёт управление кнопками На экране могут находиться баланс, реквизиты, коды и другая финансовая информация
Картинка в картинке Показывать системно управляемое мини-окно видео Не равна разрешению SYSTEM_ALERT_WINDOW Некоторые защитные реализации перестраховываются при любых посторонних окнах

Accessibility заслуживает отдельного внимания. Служба специальных возможностей создавалась для помощи людям и автоматизации взаимодействия с интерфейсом. При соответствующих разрешениях служба способна получать структуру активного окна, искать элементы интерфейса и выполнять жесты. Поэтому разрешение намного мощнее простого «нарисовать кнопку поверх приложения».

Запись экрана работает иначе. Android передаёт изображение через механизм MediaProjection после подтверждения пользователя. Банковское приложение может ограничивать захват собственных окон или реагировать на активную трансляцию. Поэтому ситуация «я отключил все приложения поверх окон, а банк всё равно ругается» вполне реальна. Виновником может оказаться демонстрация экрана в мессенджере, удалённая поддержка или программа записи.

Есть ещё одна тонкость. Визуально плавающий элемент не всегда означает SYSTEM_ALERT_WINDOW. Например, современные чат-пузыри Android могут выводиться через системный механизм уведомлений. Картинка в картинке тоже управляется системой отдельно. По внешнему виду пользователь видит одно и то же маленькое окно поверх программы, но технически Android может использовать совершенно разные механизмы.

Какие предупреждения действительно должны насторожить

Я не считаю само сообщение банка доказательством заражения. Намного подозрительнее сочетание нескольких признаков. Неизвестная программа просит одновременно «Поверх других приложений» и «Специальные возможности», предлагает отключить Play Protect, требует разрешить установку APK, скрывает значок или не даёт открыть системные настройки. Такой набор уже плохо похож на безобидный экранный фильтр.

У банковских троянов комбинация разрешений встречается регулярно. Overlay помогает показать поддельный экран, Accessibility даёт управление интерфейсом, доступ к уведомлениям может раскрывать сообщения, а захват экрана позволяет оператору наблюдать за действиями жертвы. По отдельности механизмы имеют законные сценарии, но вместе дают атакующему гораздо больше возможностей.

Есть несколько популярных мифов. Первый звучит как «если приложение может отображаться поверх других, оно видит все мои пароли». Нет. SYSTEM_ALERT_WINDOW сам по себе такого доступа не предоставляет. Второй миф обратный, «Android 12 уже блокирует tapjacking, значит банкам незачем ругаться». Система закрыла часть старых сценариев, но не все варианты перекрытия и подмены интерфейса. Защита банка остаётся отдельным уровнем.

Третий миф особенно вредный. Некоторые инструкции предлагают разрешить overlay банку или, наоборот, отключить защиту самого банка. Обычно проблема находится не в банковском приложении, а в другой программе, которая вмешивается в отображение экрана. Я бы сначала искал внешнее окно, активную трансляцию и подозрительные службы специальных возможностей.

Если предупреждение появляется сразу после установки конкретной утилиты, проверка проста. Отключаю для неё «Поверх других приложений», полностью закрываю утилиту и снова запускаю банк. Затем отдельно проверяю Accessibility и запись экрана. Когда ошибка исчезает после одного конкретного изменения и возвращается после обратного, причина установлена намного надёжнее, чем по названию программы или советам из форума.

Что я в итоге оставил бы включённым

Я не стал бы запрещать все overlay-окна навсегда. Разрешение полезно там, где функция действительно требует плавающего интерфейса. Но раздавать такой доступ каждому очистителю памяти, фонарику или случайной утилите тоже бессмысленно. Правило простое. Если я не могу за несколько секунд объяснить, зачем конкретному приложению нужно рисовать поверх банка, браузера и настроек Android, разрешение ему не нужно.

Когда банк пишет «Обнаружено наложение на экран», сначала стоит выключить видимые плавающие элементы и открыть Настройки → Приложения → Специальный доступ → Поверх других приложений. Если предупреждение осталось, проверить Accessibility, трансляцию экрана и программы удалённого управления. Такой порядок быстрее случайного удаления приложений и одновременно помогает заметить действительно опасную комбинацию разрешений.

FAQ

Опасно ли разрешение «Поверх других приложений»?

Не само по себе. Разрешение нужно многим легальным программам, но позволяет приложению перекрывать чужой интерфейс. Поэтому я выдавал бы доступ только программам с понятной причиной использовать плавающие окна.

Почему банк ругается на мессенджер?

Мессенджер может показывать пузырь, плавающую панель звонка или другой элемент поверх банка. Защитная система не обязана определять намерения программы и может просто запретить чувствительную операцию при наличии постороннего окна.

Как узнать, какие приложения имеют право отображаться поверх других?

Обычно список находится в разделе Настройки → Приложения → Специальный доступ → Поверх других приложений. Название и расположение пункта зависят от производителя смартфона.

Почему отключение «Поверх других приложений» не помогло?

Банк может реагировать не только на SYSTEM_ALERT_WINDOW. Проверьте активную запись или трансляцию дисплея, удалённое управление, службы специальных возможностей, системные помощники и другие плавающие интерфейсы.

Может ли приложение с SYSTEM_ALERT_WINDOW читать экран банка?

Само разрешение такой возможности не даёт. Приложение получает право показать своё окно поверх чужого. Для чтения структуры интерфейса, записи изображения или автоматического управления нужны другие механизмы и разрешения.

Accessibility и «Поверх других приложений» одинаково опасны?

Нет. Механизмы решают разные задачи. Overlay отвечает прежде всего за отображение окна, а Accessibility при соответствующих возможностях может получать сведения об интерфейсе и взаимодействовать с ним. Комбинация двух доступов требует повышенного внимания.

Может ли обычная запись экрана вызвать предупреждение банка?

Да, если банк отдельно отслеживает захват или трансляцию изображения. Такое предупреждение не обязательно связано с разрешением SYSTEM_ALERT_WINDOW.

Нужно ли удалять приложение, которое мешает банку?

Обычно нет. Сначала достаточно закрыть плавающее окно или отключить специальный доступ. Удаление имеет смысл, если программа не нужна, запрашивает необоснованно широкие права или ведёт себя подозрительно.

Android банк наложение экран безопасность
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
JATOBA
21.1011:00
Как обеспечить защиту ИБ-систем в регулируемых инфраструктурах?Security Vision и ГАЗИНФОРМСЕРВИС 21 октября на бесплатном вебинаре расскажут о совместном решении на базе сертифицированной СУБД Jatoba: от защиты данных до масштабирования и отказоустойчивости.Регистрация
18+. Реклама. Рекламодатель ООО «Интеллектуальная безопасность», ИНН 7719435412