Tapjacking повернувся в Android Marshmallow, і ніхто цього не помітив

click fraud protection

Певні пристрої Marshmallow чутливі до крадіжки, коли програма накладає текст на діалогове вікно дозволу, щоб обдурити користувача.

У той час як у багатьох із нас тече слина над нещодавно випущеним Android Nougat для пристроїв Nexus, переважна більшість користувачів все ще використовує Android Marshmallow. Експлойт, існування якого було задокументовано з тих пір принаймні в середині 2015 року все ще впливає на багато сучасних пристроїв Android.

Шкідливі програми здатні джек ваші дії в надання їм дозволу, якого ви ніколи явно не надавали. Ось як працює експлойт.


Повернення крадіжки

Уявіть, що ви відкриваєте Instagram і намагаєтеся поділитися фотографією, яку нещодавно зробили під час відпустки. Коли ви вибираєте переглядати зображення в галереї, Instagram просить надати дозвіл на доступ до вашого сховища. Але коли ви натискаєте «так», ви зустрічаєте повідомлення про помилку.

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

працює за призначенням: щоб надати програмі конфіденційний дозвіл, ви повинні вимкнути будь-які екранні накладки, які є на вашому пристрої.

Збір дозволів Marshmallow. Торкнувшись «Дозволити», відобразяться всі мої контакти.

Програми, які мають можливість малювати на вашому екрані, потенційно можуть обманом змусити вас надати йому конфіденційні дані. Наприклад, накладка на екран може розмістити фальшивий пароль поверх справжнього екрана входу, щоб отримати ваші паролі. Такий експлойт називається "викрадення" і протягом багатьох років виникав і виправлявся на різних версіях Android, з один із найгірших прикладів, що триває до Android 4.0.3. Але нещодавно експлойт повернувся з Модель дозволів під час виконання Android Marshmallow.

Розробник на прізвище Іво Банась створено додаток демонстрація експлойту. Як це працює досить просто: коли програма відображає діалогове вікно дозволу, шкідлива програма який ви встановили, відображатиметься системне накладання, щоб закрити текстовий блок діалогового вікна дозволів будь-яким текстом хоче. Мимовільного користувача, який клацне «Дозволити» у діалоговому вікні дозволу, буде обманом змусено надати дозвіл, про який його запитували, але запит на який було приховано від поля зору користувача. Такий експлойт повністю перешкоджає меті системи дозволів Android Marshmallow з моменту появи Нова модель мала гарантувати, що користувачі отримають лише ті дозволи, на які вони явно погодилися.

Тепер я знаю, про що ти думаєш. Якби Android виявив системне накладення та не дозволив мені надати дозволи на сховище Instagram, чи не запобіг би це експлойту? Відповідь - ні, під час мого тестування виявилося, що на певних пристроях відображення текстового накладення поверх діалогового вікна дозволу не запускає механізм безпеки. Розробник програми для підтвердження концепції крадіжки стверджує, що експлойт ефективний, тому що він покладається на встановлення користувачем вторинної шкідливої ​​програми, націленої на рівень API 22 і нижче (попередньо зефір). Це пов’язано з тим, що до Android Marshmallow усім програмам надавалися дозволи під час встановлення.

Гаразд, якщо ви користуєтеся Marshmallow, все, що вам потрібно зробити, це уникати встановлення будь-яких програм, яким ви не довіряєте, які запитують дозвіл на малювання накладення, чи не так? Якби модель дозволів Android працювала, як було заплановано спочатку, ви мали б рацію. Але після відкриття цього експлойту, навіть програми, націлені на рівень API 23 (Marshmallow), які запитують дозвіл на накладання, є потенційним ризиком.


Прогалина в моделі дозволів?

Типові програми, що використовують накладання. Через: Середній

Якщо ви один із багатьох мільйонів людей, які використовують Facebook Messenger для спілкування з друзями, тоді ви натрапили на одну з найкращих функцій Android – здатність додатків малювати поверх інших екрани. Наскільки це круто, що ви можете мати бульбашку з вашим улюбленим груповим чатом Facebook, стежити за користувачем поверх будь-якої програми, яку він відкриває? Незважаючи на те, що Messenger Facebook привніс ідею «плаваючих програм» у мейнстрім, ця концепція деякий час існувала в Android. Програми вже деякий час можуть створювати накладення поверх ваших програм завдяки існуванню TYPE_SYSTEM_OVERLAY у WindowManager Android.

Меню дозволів «Малювати поверх інших програм».

До появи Android Marshmallow додаткам потрібно було запитувати дозвіл, викликаний SYSTEM_ALERT_WINDOW під час встановлення, перш ніж він міг відображати накладення у верхній частині екрана. Але це змінилося з появою детальної моделі дозволів під час виконання версії 6.0. Тепер користувачі повинні будуть надавати дозволи додаткам під час їх фактичного запуску, що, сподіваємось, підвищить середній рівень користувача, щоб захистити свої особисті дані від програм, які підозріло запитують, здавалося б, функціонально не пов’язані дозволи.

Однак SYSTEM_ALERT_WINDOW не схожий на інші дозволи. Розробники не можуть відобразити діалогове вікно для програмного запиту дозволу від кінцевого користувача, як і більшість інших дозволів для будь-якої програми, націленої на Marshmallow. Натомість вам доведеться вручну перейти до екрана налаштувань і ввімкнути дозвіл самостійно. Звичайно, деякі програми, такі як Facebook Messenger, допоможуть вам у цьому процесі.

Google вимагає цього від розробників, оскільки вони вважали дозвіл "особливо чутливі."

Спеціальні дозволи

Є кілька дозволів, які не поводяться як звичайні та небезпечні дозволи. SYSTEM_ALERT_WINDOW і WRITE_SETTINGS особливо чутливі, тому більшість програм не повинні їх використовувати. Якщо програмі потрібен один із цих дозволів, вона повинна оголосити дозвіл у маніфесті та надіслати намір із запитом авторизації користувача. Система реагує на намір, показуючи користувачеві детальний екран керування.

Враховуючи те, що ми знаємо вище про крадіжку, це має сенс. Але ось що. Google навіть не дотримується власних правил. Скріншоти Facebook Messenger, які ведуть вас через процес надання йому дозволу SYSTEM_ALERT_WINDOW, який я показав вам вище? Це трапляється, лише якщо ви встановлюєте файл .apk не з магазину Google Play. Якщо ви встановлюєте програму з Google Play Store, Дозвіл SYSTEM_ALERT_WINDOW надається автоматично.

Файл маніфесту Facebook Messenger. Додатку автоматично надається дозвіл на накладання, незважаючи на націлювання на рівень API 23.

Google пожертвував безпекою заради зручності

Довгий час до Android Marshmallow SYSTEM_ALERT_WINDOW вважався "небезпечний"дозвіл. З Android Marshmallow 6.0 дозвіл було змінено на підпис|система|прим Це те, що спочатку вимагало від розробників перевести користувача на екран налаштувань, щоб надати дозвіл. Але з версією Android 6.0.1 SYSTEM_ALERT_WINDOW було змінено щоб Google Play Store міг автоматично надати дозвілбез повідомлення користувача. Чому Google вніс цю зміну, нам незрозуміло. Самі Google не повідомили, чому вони зробили цю зміну, що особливо дивно, враховуючи те, що мова про SYSTEM_ALERT_WINDOW все ще існує на їхніх веб-сторінках.

Цілком можливо, що достатньо розробників було обурено завдяки початковим змінам у SYSTEM_ALERT_WINDOW, які вимагали від користувачів вручну надавати дозвіл, який Google мовчки відхилив і просто надав його будь-якій програмі, яка його запитувала. Але при цьому Google має безпека пожертвувала зручністю. Є причина, чому Google самі вважали дозвіл небезпечним протягом найдовшого часу, тому що це так. А існування експлойту зловживання дозволами Marshmallow є достатнім доказом небезпеки, притаманної автоматичному наданню цього дозволу будь-якій програмі.

Цей експлойт крадіжки лише нещодавно привернув нашу увагу, хоча він існує вже багато місяців. У нашому внутрішньому тестуванні пристроїв серед команди XDA Portal ми це підтвердили експлойт працює на багатьох сучасних пристроях під управлінням Android Marshmallow. Ось короткий опис пристроїв, які ми перевірили на останніх доступних версіях програмного забезпечення для кожного відповідного пристрою, і чи працює експлойт крадіжки. Пристрої з позначкою «Вразливі» сприйнятливі до крадіжки, тоді як пристрої з позначкою «Не Вразливі» можуть виявляти програму, яка відображає накладення, і вимагати вимкнути її раніше продовження.

  • Nextbit Robin - Android 6.0.1 із червневими виправленнями безпеки - Вразливий
  • Moto X Pure - Android 6.0 із травневими виправленнями безпеки - Вразливий
  • Honor 8 - Android 6.0.1 з липневими виправленнями безпеки - Вразливий
  • Motorola G4 - Android 6.0.1 із травневими виправленнями безпеки - Вразливий
  • OnePlus 2 – Android 6.0.1 із червневими виправленнями безпеки – Не вразливий
  • Samsung Galaxy Note 7 - Android 6.0.1 з липневими виправленнями безпеки - Не вразливий
  • Google Nexus 6 - Android 6.0.1 із серпневими виправленнями безпеки - Не вразливий
  • Google Nexus 6P – Android 7.0 із серпневими виправленнями безпеки – Не вразливий

Наразі це всі пристрої, які мені вдалося залучити до тестування команди. Мені не вдалося знайти жодного зв’язку між версією виправлення безпеки та експлойтом. Як ви можете судити з нашого остання дискусія щодо оновлень безпеки Android, багато людей все одно не працюють з останніми виправленнями безпеки, тому вони, ймовірно, вразливі до цього експлойту та інших, описаних на Бюлетень безпеки Android.


Рухатися вперед

Сервіс Tapjacking отримав дозвіл на накладення

Ми закликаємо вас самостійно перевірити цей експлойт на своєму пристрої, щоб перевірити, чи є ви вразливими. Ми зібрали файли APK із вихідний код за посиланням вище (ви також можете зробити це самостійно) і завантажили їх на AndroidFileHost. Щоб перевірити експлойт, вам потрібно встановити обидва основна програма крадіжки а також його допоміжна служба. Потім просто запустіть головну програму та натисніть кнопку «перевірити». Якщо вгорі діалогового вікна дозволу плаває текстове поле, а коли ви натискаєте «Дозволити», з’являється список контактів вашого пристрою, це означає, що ваш пристрій вразливий до крадіжки. Не турбуйтеся про те, що плаваюче текстове поле не повністю закриває діалогове вікно дозволів, ця програма для підтвердження концепції не призначений для ідеальної демонстрації того, як акуратно захопити діалогове вікно дозволів, а скоріше для того, щоб довести, що це справді можливо.

Ми сподіваємося, що буде представлено виправлення, яке виправляє цей експлойт на всіх пристроях Marshmallow, і що OEM-виробники оновлять усі свої пристрої до останнього патча безпеки. Оскільки реальність така, що для більшості заставлених пристроїв знадобиться багато місяців, щоб отримати Nougat, тому це єдиний спосіб для більшості щоб користувачі трималися подалі від небезпеки, це або встановити найновіші патчі безпеки, або отримати дозволи програми моніторингу себе. Але з рішенням Google автоматично надавати потенційно небезпечний дозвіл SYSTEM_ALERT_WINDOW багато користувачі несвідомо запускають програми, які потенційно можуть захопити їхні телефони, щоб зробити все більш небезпечним дозволи.