Уязвимость Pixnapping: неизбежный скриншот на Android-смартфоне

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

Что такое уязвимость Pixnapping и как защитить свой Android-смартфон

Ограничения для приложений в Android постоянно ужесточаются, чтобы мошенники не могли с помощью вредоносного ПО украсть деньги, пароли и личные секреты пользователей. Но новая уязвимость, названная Pixnapping, обходит все слои защиты и позволяет совершенно незаметно считать с экрана точки изображения — по сути, снять скриншот. Вредоносное приложение, не имеющее вообще никаких разрешений, может «увидеть» пароли, остатки на банковских счетах, одноразовые коды, в общем — все то, что видит сам владелец на экране. К счастью, Pixnapping пока является чисто исследовательским проектом и не используется злоумышленниками. Остается надеяться, что Google качественно устранит уязвимость до того, как код атаки вставят в реальное вредоносное ПО. На сегодня уязвимости Pixnapping (CVE-2025-48561), вероятно, подвержены все современные Android-смартфоны, включая те, что используют свежайший Android.

Чем опасны скриншоты, трансляция или считывание экрана

Как доказал найденный нами OCR-стилер SparkCat, злоумышленники уже освоили обработку картинок: если на смартфоне есть изображение с ценной информацией, его можно обнаружить, распознать текст прямо на смартфоне, а затем отправить извлеченные данные на сервер мошенников. SparkCat примечателен тем, что пробрался в официальные магазины приложений, включая App Store. Для вредоносного приложения, «вооруженного» Pixnapping, повторить этот трюк будет несложно, учитывая, что атака не требует специальных разрешений. Приложение, которое даже будет честно выполнять какую-то полезную функцию, заодно может тихо и незаметно транслировать мошенникам одноразовые коды многофакторной аутентификации, пароли от криптокошельков и любую другую информацию.

Еще она популярная тактика злоумышленников — увидеть нужные данные лично, в реальном времени. Для этого жертве звонят в одном из мессенджеров и под разными предлогами предлагают включить трансляцию экрана.

Как устроена атака Pixnapping

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

Еще в 2013 году была описана атака, позволяющая одному сайту загрузить другой в части своего окна (через iframe) и, проводя разрешенные операции наложения и преобразования картинок, вычислить, что именно нарисовано и написано на постороннем сайте. В современных браузерах эта атака невозможна, но группа американских исследователей придумала, как применить тот же принцип к Android.

Сначала вредоносное приложение посылает вызов атакуемому приложению. В Android этот механизм называется intent. Обычно через intent доступен не только простой запуск приложения, но и возможность, например, сразу открыть браузер на нужной веб-странице или мессенджер внутри переписки с нужным контактом. Атакующее приложение посылает вызов, чтобы запустить рисование нужной информации на экране. При этом используются специальные флаги скрытого запуска, после чего атакующее приложение посылает intent запуска самому себе. Подобная комбинация действий позволяет приложению-жертве вообще не отображаться на экране, при этом оно выводит в своем окне в фоновом режиме необходимую атакующему информацию.

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

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

Схема работы уязвимости Pixnapping (CVE-2025-48561)

Схема работы уязвимости Pixnapping (CVE-2025-48561)

Чтобы понять из этой каши, какой же пиксель находится в самом низу, исследователи применили другую известную уязвимость под названием GPU.zip (это ссылка на сайт описания, а не на файл). Она основана на том, что все современные смартфоны сжимают информацию любых картинок, отправляемых из основного процессора в видеоускоритель. Это сжатие проходит без потерь, как в ZIP-файлах, но скорость упаковки и распаковки меняется в зависимости от того, что за информация передается. Уязвимость GPU.zip позволяет измерять время, уходящее на сжатие информации, и таким образом угадывать, что за данные передаются. С помощью GPU.zip изолированная, размытая и увеличенная точка из окна приложения-жертвы может быть считана атакующим приложением.

Чтобы украсть что-то осмысленное, весь процесс нужно повторить сотни раз, для каждой точки отдельно. Но это вполне реально сделать за короткий срок — в видеодемонстрации атаки 6-значный код из Google Authenticator удается извлечь за 22 секунды, когда код все еще действителен.

Как Android защищает конфиденциальность экрана

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

  • флаг «секретное окно» предотвращает снятие скриншотов системой;
  • доступ к инструментам трансляции экрана (MediaProjection) требует явного подтверждения пользователя и может выполняться только приложением, которое видно и активно;
  • жесткие ограничения на доступ к административным службам вроде AccessibilityService (специальные возможности) и отображение элементов приложения поверх других приложений;
  • автоматическое скрытие одноразовых паролей и других секретных данных, если ведется трансляция экрана;
  • ограничение одних приложений на доступ к данным других, включая невозможность запросить полный список установленных на смартфоне приложений.

К сожалению, Pixnapping обходит все эти ограничения и вообще не требует специальных разрешений. Атакующему приложению нужны только две функции: рисование в своих окнах и отправка вызовов (intents) другим приложениям. Это базовые «кирпичики», ограничить использование которых очень сложно.

На каких устройствах работает Pixnapping и как защититься

Работоспособность атаки проверена на Android версий с 13-й по 16-ю на устройствах Google Pixel с шестого по девятое поколение и на Samsung Galaxy S25. Исследователи считают, что на других Android-устройствах атака тоже будет работоспособна — все используемые механизмы стандартны, хотя есть нюансы с реализацией второй фазы атаки («увеличение» пикселей).

Google была оповещена об атаке в феврале и выпустила патч в сентябре. К сожалению, выбранный способ устранения уязвимости оказался недостаточно надежным, и исследователи почти сразу придумали, как обойти патч. Новая попытка устранения уязвимости запланирована Google на декабрьский релиз обновлений. Что касается GPU.zip, то для этого канала утечки данных выпускать патч не собираются — по крайней мере, ни один производитель смартфонных видеоускорителей не объявлял о таких планах с 2024 года, когда о дефекте стало известно.

Возможности пользователей защититься от Pixnapping ограничены. Рекомендуется:

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

Какие еще нестандартные способы атак на Android существуют:

Советы

Как отключить слежку в iOS?

У вас есть iPhone, iPad или iPod? Потратьте несколько минут на настройку служб геолокации, чтобы сэкономить заряд батареи и сохранить конфиденциальность перемещений.