У Google Play виявлено нове шкідливе ПЗ для Android під назвою NoVoice. Воно було приховано у понад 50 додатках, які сукупно завантажили щонайменше 2,3 мільйона разів. Заражені програми не викликали підозр — вони не запитували зайвих дозволів і виконували обіцяні функції.
Що таке NoVoice і як воно потрапляло на пристрої
Серед заражених додатків були утиліти для очищення пристрою, галереї зображень та ігри. Після запуску такого додатка шкідливе ПЗ намагалося отримати root-доступ до пристрою, використовуючи старі уразливості Android, які були виправлені ще у період між 2016 і 2021 роками.
Шкідливі компоненти були замасковані у пакеті com.facebook.utils — серед легітимних класів офіційного Facebook SDK. Зашифрований payload (файл enc.apk) ховався всередині PNG-зображення за допомогою стеганографії — техніки приховування даних у медіафайлах. Після вилучення він завантажувався у системну пам’ять, а всі проміжні файли видалялися для знищення слідів.
Дослідники компанії McAfee, які виявили операцію NoVoice, не змогли пов’язати її з конкретним зловмисником. Утім, вони зафіксували схожість шкідливого ПЗ з відомим Android-трояном Triada.
Як NoVoice уникало виявлення
Зловмисники реалізували 15 перевірок на наявність емуляторів, засобів відлагодження та VPN. Крім того, шкідливе ПЗ уникало зараження пристроїв у певних регіонах — зокрема в Пекіні та Шеньжені в Китаї. Якщо дозвіл на визначення місцезнаходження був недоступний, інфікування тривало далі.
Технічний механізм зараження
Після запуску шкідливий код виходив на командно-контрольний сервер (C2) і збирав інформацію про пристрій: характеристики апаратного забезпечення, версію ядра, версію Android та рівень патча безпеки, список встановлених програм і статус root. На основі цих даних визначалася стратегія атаки.
Далі шкідливе ПЗ кожні 60 секунд надсилало запити до C2 та завантажувало різноманітні компоненти для експлойтів, підібраних під конкретний пристрій. Дослідники McAfee зафіксували 22 такі exploit-модулі, зокрема use-after-free-помилки ядра та уразливості драйверів Mali GPU. Вони надавали зловмисникам root shell і дозволяли вимкнути SELinux — базовий механізм безпеки Android.
Стійкість: шкідливе ПЗ виживає навіть після скидання до заводських налаштувань
Після отримання root-доступу ключові системні бібліотеки — libandroid_runtime.so та libmedia_jni.so — замінювалися модифікованими версіями, які перехоплювали системні виклики та перенаправляли виконання до шкідливого коду.
Руткіт забезпечував кілька рівнів стійкості: встановлював скрипти відновлення, замінював системний обробник збоїв завантажувачем руткіта та зберігав резервні payload-файли у системному розділі пристрою. Оскільки цей розділ не очищається під час скидання до заводських налаштувань, шкідливе ПЗ зберігалося навіть після такого очищення.
Окремий процес-охоронець перевіряв цілісність руткіта кожні 60 секунд і автоматично відновлював відсутні компоненти. У разі невдачі він примусово перезавантажував пристрій, що призводило до повторного завантаження руткіта.
Крадіжка даних WhatsApp
На етапі після зараження шкідливий код впроваджувався у кожен запущений на пристрої додаток. Розгорталися два основні компоненти: один забезпечував приховане встановлення або видалення програм, другий діяв усередині будь-якого додатка з доступом до інтернету та виконував функцію основного інструмента крадіжки даних.
Головною ціллю став месенджер WhatsApp. При його запуску на зараженому пристрої шкідливе ПЗ витягувало чутливі дані, необхідні для клонування сесії: зашифровані бази даних, ключі протоколу Signal, а також ідентифікатори облікового запису — номер телефону та дані резервної копії Google Drive. Ці відомості передавалися на C2, що дозволяло зловмисникам відтворити WhatsApp-сесію жертви на власному пристрої.
Дослідники зауважили, що хоча їм вдалося відновити лише payload, орієнтований на WhatsApp, модульна архітектура NoVoice теоретично дозволяє застосовувати інші модулі для атаки на будь-який додаток.
Реакція Google та поточний стан загрози
Після того як McAfee — член App Defense Alliance — повідомила Google про знахідку, всі заражені додатки були видалені з Google Play. Утім, пристрої тих, хто встановив ці програми раніше, слід вважати скомпрометованими.
Оскільки NoVoice експлуатує уразливості, виправлені до травня 2021 року, оновлення до пристрою з пізнішим рівнем патча безпеки ефективно нейтралізує цю загрозу в її нинішній формі.
Рекомендації для користувачів Android
- Перевірити, чи не входить встановлений раніше додаток до переліку заражених.
- Оновити пристрій до актуального рівня патча безпеки або перейти на модель із підтримкою свіжих оновлень.
- Завантажувати додатки лише від відомих і перевірених розробників — навіть у межах Google Play.
- Якщо пристрій вважається скомпрометованим, змінити паролі та перевірити активні сесії WhatsApp у налаштуваннях облікового запису.

