Tapjacking
Основна інформація
Тапджекінг - це атака, при якій зловмисний додаток запускається і розміщується поверх додатку жертви. Після того, як він візуально затемнює додаток жертви, його інтерфейс користувача розроблений таким чином, щоб обманом змусити користувача взаємодіяти з ним, передаючи взаємодію додатку жертви. Фактично, це приховує користувача від знання того, що вони фактично виконують дії в додатку жертви.
Виявлення
Для виявлення додатків, які вразливі до цієї атаки, слід шукати експортовані активності в маніфесті Android (зверніть увагу, що активність з інтент-фільтром автоматично експортується за замовчуванням). Після знаходження експортованих активностей, перевірте, чи потрібні будь-які дозволи. Це тому, що зловмисний додаток також буде потребувати цього дозволу.
Захист
Android 12 (API 31,32) та вище
Згідно з цим джерелом, атаки тапджекінгу автоматично запобігаються Android починаючи з Android 12 (API 31 та 30) та вище. Таким чином, навіть якщо додаток вразливий, ви не зможете його використати.
filterTouchesWhenObscured
filterTouchesWhenObscured
Якщо android:filterTouchesWhenObscured
встановлено в true
, View
не отримуватиме дотики, коли вікно видиме відсутнє через інше видиме вікно.
setFilterTouchesWhenObscured
setFilterTouchesWhenObscured
Атрибут setFilterTouchesWhenObscured
, встановлений в значення true
, також може запобігти використанню цієї вразливості, якщо версія Android нижча.
Якщо встановлено в true
, наприклад, кнопка може бути автоматично вимкнена, якщо вона прихована:
Експлуатація
Tapjacking-ExportedActivity
Найбільш остання Android-додаток, який виконує атаку Tapjacking (+ виклик до експортованої діяльності атакованого додатка), можна знайти за посиланням: https://github.com/carlospolop/Tapjacking-ExportedActivity.
Дотримуйтесь інструкцій README для використання.
FloatingWindowApp
Приклад проекту, який реалізує FloatingWindowApp, який можна використовувати для розміщення поверх інших дій для виконання атаки clickjacking, можна знайти за посиланням FloatingWindowApp (дещо застарілий, бажаємо успіху у побудові apk).
Qark
Здається, що цей проект зараз не підтримується, і ця функціональність більше не працює належним чином
Ви можете використовувати qark з параметрами --exploit-apk
--sdk-path /Users/username/Library/Android/sdk
для створення зловмисного додатка для тестування можливих вразливостей Tapjacking.
Мітігація досить проста, оскільки розробник може вибрати не отримувати події дотику, коли вид заслонений іншим. Використовуючи Довідник розробника Android:
Іноді важливо, щоб додаток міг перевірити, що дія виконується з повним знанням та згодою користувача, такі як надання запиту на дозвіл, здійснення покупки або клік на рекламу. Незважаючи на це, зловмисний додаток може намагатися підробити користувача на виконання цих дій, не підозрюючи, приховуючи призначення виду. Як засіб виправлення, фреймворк пропонує механізм фільтрації дотику, який можна використовувати для покращення безпеки видів, які надають доступ до чутливої функціональності.
Щоб увімкнути фільтрацію дотику, викличте
setFilterTouchesWhenObscured(boolean)
або встановіть атрибут макету android:filterTouchesWhenObscured в значення true. При увімкненні фреймворк відкине дотики, які отримані, коли вікно виду заслонене іншим видимим вікном. В результаті вид не отримає дотиків, коли вище вікна виду з'явиться сповіщення, діалогове вікно або інше вікно.
Last updated