Cloak And Dagger Exploit використовує Overlays і Accessibility Services для викрадення системи

Те, що ми в XDA колись вважали доказом концептуальної вразливості безпеки, тепер підтверджено комп’ютерними вченими з Технологічного інституту Джорджії в Атланті. Команда деталізує те, що вони називають "плащ і кинджал" експлойти, які можуть заволодіти інтерфейсом користувача більшості версій Android (включаючи 7.1.2). Враховуючи його природу, його важко виправити, а також важко виявити.

Cloak and Dagger — це експлойт, який використовує два дозволи, щоб контролювати інтерфейс користувача, не даючи користувачеві можливості помітити зловмисну ​​активність. Атака використовує два дозволи: SYSTEM_ALERT_WINDOW ("намалювати зверху") і BIND_ACCESSIBILITY_SERVICE ("a11y"), які дуже часто використовуються в програмах Android.

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

Після надання цих двох дозволів кількість атак може бути величезною. Крадіжка PIN-кодів, токенів двофакторної автентифікації, паролів або навіть атак типу «відмова в обслуговуванні» — все це можливо. Це завдяки поєднанню накладень, які змушують користувача думати, що він взаємодіє з a законна програма та служба доступності, які використовуються для перехоплення тексту та сенсорного введення (або передачі власного введення).

Кілька місяців тому ми припустили таку вразливість, у якій ми мали створити програму для підтвердження концепції, яка використовує SYSTEM_ALERT_WINDOW і BIND_ACCESSIBILITY_SERVICE, щоб намалювати накладення на екрані введення пароля в програмі XDA Labs і перехопити введення клавіш для проведення пальцем паролі. Ця програма, яку ми передбачили, буде програмою керування автоматичним обертанням, яка використовуватиме накладання для малювання невидимої рамки на екрані, щоб керуйте ротацією (замість запиту WRITE_SETTINGS, який би ставив прапорці) і службою доступності, щоб дозволити користувачеві контролювати автоматичне обертання профілів для кожної програми основа. Теоретично це був би один із прикладів програми, яка використовує «плащ і кинджал». Однак ніхто з нашої команди не хотів ризикувати своїм облікових записів розробників, кинувши виклик автоматизованим системам сканування додатків Google, щоб перевірити, чи буде дозволено наш експеримент із підтвердженням концепції в Play Магазин.

У будь-якому випадку, ці дослідники виконали роботу та подали тестові програми, щоб довести, що використання цих двох дозволів справді може бути серйозною проблемою безпеки:

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

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

Як захистити себе на версіях до Android O? Як завжди, встановлюйте лише програми, яким ви довіряєте, з джерел, яким ви довіряєте. Переконайтеся, що дозволи, які вони запитують, відповідають вашим очікуванням.

За словами представника Google, щодо сотень мільйонів звичайних користувачів Play Store Protect також надасть необхідні виправлення для запобігання атак плаща та кинджала. Як саме це буде досягнуто, незрозуміло, але, сподіваємося, це передбачає певний спосіб виявлення, коли ці два дозволи використовуються зловмисно. Я сумніваюся, що він зможе виявити всі такі випадки, тому в будь-якому випадку вам краще відстежувати, які дозволи надаються кожній інстальованій програмі.