Як переглянути дозволи додатків Android перед встановленням APK
Коли ви встановлюєте програму з магазину Google Play, Android показує спрощену інформацію про те, до чого програма має доступ. Завантажте APK із стороннього джерела, не пов’язаного з Play, і у вас немає такої безпеки, якщо ви самі не прочитаєте маніфест. «Чи справді програмі для фонових малюнків потрібні SMS і доступ до мікрофона?» — це саме те запитання, на яке допоможе вам відповісти цей посібник.
Нижче наведено той самий робочий процес, який наша команда використовує під час сортування незнайомого APK: відкрийте його, прочитайте записи uses-permission, розшифруйте рівні захисту та порівняйте те, що потрібно програмі говорить, із тим, що зазвичай вимагає її категорія. Наш онлайн-інструмент APK Info виконує для вас двійкове декодування XML, тому весь процес займає близько десяти секунд.
Навіщо перевіряти дозволи?
Зловмисники беруть популярні безкоштовні програми, змінюють їх і повторно випускають на сторонніх сайтах. Хоча програма може виглядати та працювати нормально, її прихований код може копіювати ваш список контактів або записувати фоновий звук. Переглядаючи дозволи попередній монтаж, ви можете помітити ці червоні прапорці «повзучості дозволів».
Як перевірити будь-який файл APK (онлайн)
Наш Інструмент APK Info читає маніфест вашого файлу повністю у вашому браузері; файл ніколи не завантажується на сервер і жоден код не виконується. Ось як ним користуватися:
Процес:
- Перейдіть до Інформаційна сторінка APK.
- Виберіть файл .apk.
- Дочекайтеся закінчення аналізу (зазвичай 5 секунд).
- Прокрутіть вниз до Розділ дозволів.
- Шукайте позначки високого ризику, наприклад: READ_SMS, PROCESS_OUTGOING_CALLS або ACCESS_FINE_LOCATION.
Червоний список дозволів
Якщо програма Калькулятор або Ліхтарик запитує READ_CONTACTS або RECORD_AUDIO, негайно видаліть файл. Немає законних причин, щоб ці програми мали ці дані.
Розуміння рівнів дозволів Android
Не всі дозволи однакові. Android класифікує їх на три рівні:
- Нормальний: Дозволи з низьким рівнем ризику, які безпосередньо не загрожують конфіденційності (наприклад, SET_ALARM). Android надає їх автоматично.
- Небезпечно: Дозволи високого ризику (контакти, місцезнаходження, камера). Ці повинен підтверджуються вами під час запуску програми.
- Підпис/Система: Надзвичайно високий ризик. Вони доступні лише для програм, підписаних виробником пристрою або самою ОС.
Ручний метод (з використанням програми перегляду ZIP)
Якщо у вас є певні технічні навички, ви можете перевірити дозволи самостійно:
- Перейменуйте app.apk на app.zip і відкрийте його.
- Знайдіть AndroidManifest.xml. (Примітка: він у двійковому форматі і виглядатиме як тарабарщина у текстовому редакторі).
- Використовуйте такий інструмент, як AXMLPrinter, щоб перетворити його на читабельний текст.
- Шукайте теги, що починаються з <uses-permission>.
Рекомендація: набагато швидше використовувати наш онлайн-інструмент, який миттєво декодує це для вас.
Перевірте свої додатки зараз
Точно знайте, чого вимагають ваші програми. Без секретів, без ризиків.
Перевірте дозволи APKЩо насправді зберігається в AndroidManifest.xml
Маніфест є джерелом правди для кожного дозволу, компонента та функції, оголошених програмою. Всередині APK файл має форму бінарний XML, а не звичайний текст, який ви бачите у вихідному коді, тому його неможливо прочитати за допомогою звичайного текстового редактора. Наш інструмент APK Info декодує двійковий XML і виводить відповідні теги. Найважливіші з них:
- <uses-permission android:name="..."/>: усі дозволи, які може запитати програма. Тут є список повний, включаючи ті, які програма може ніколи не використовувати під час виконання.
- <uses-permission-sdk-23 ... />: те саме, але вимагається, лише коли програма працює на Android 6 або пізнішої версії. Старі пристрої дозволено мовчки без запиту.
- <uses-feature android:name="..." android:required="true|false"/>: апаратні функції, які використовує програма (камера, GPS, NFC). Якщо позначено потрібно, Play Store приховує програму від пристроїв, на яких ця функція відсутня.
- <application android:debuggable="true">: гігантський червоний прапор у випуску APK. Програма з можливістю налагодження відкриває свою пам’ять і стан процесу будь-кому, хто має доступ до ADB. Відхиляти.
- <activity android:exported="true"> щодо конфіденційних дій: дозволяє іншим програмам запускати цей екран. Для програми конфіденційності це часто свідчить про неакуратне кодування.
Рівні захисту дозволів: шпаргалка
Android призначає кожному дозволу «рівень захисту». Знання того, до якого рівня належить запит, говорить вам, наскільки серйозно до нього ставиться ОС.
| Рівень захисту | Досвід користувача | Приклади |
|---|---|---|
| нормально | Надається мовчки під час встановлення. Немає підказок. | ІНТЕРНЕТ, ВІБРАЦІЯ, ACCESS_NETWORK_STATE, WAKE_LOCK |
| небезпечний | Підказка під час виконання під час першого використання функції. Можна відкликати в налаштуваннях. | CAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION |
| підпис | Надається лише програмам, підписаним тим самим сертифікатом, що й програма, що надає дозвіл, або ОС. | BIND_VPN_SERVICE, INSTALL_PACKAGES (лише для системи) |
| підпис|привілей | Доступно лише для попередньо встановлених програм у каталозі priv-app образу системи. | MANAGE_USERS, READ_LOGS (системні дозволи) |
| програма / роль | Для ввімкнення потрібен окремий потік налаштувань. | SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (спеціальний доступ) |
Що насправді означають «приховані» дозволи
Поширеною помилкою є те, що деякі дозволи є секретними. Це не так: кожен дозвіл, який може використовувати програма, має бути оголошений у AndroidManifest.xml, і ОС відмовляється надавати будь-який дозвіл, не вказаний у цьому списку. Те, що люди зазвичай розуміють під «прихованими», це одне з двох речей:
- Дозволи звичайного рівня мовчать. Вони надаються під час встановлення без жодної взаємодії з користувачем. Короткий опис Play Store навіть не показує деякі з них. Вони «приховані» в сенсі «легко не помітити», а не в сенсі «нерозкриті».
- Програми Спеціальні дозволи, визначені програмою. можуть оголошувати власні теги <permission> і вимагати їх у внутрішніх компонентах. Вони існують для спілкування між програмами й самі по собі не є проблемою для конфіденційності, але ними можна зловживати, якщо популярна програма оголошує спеціальний дозвіл із неправильним рівнем захисту, а інша програма потім використовує його як бекдор.
У будь-якому випадку відповідь одна: прочитайте маніфест, не довіряйте опису Play Store самому по собі.
Спрацьований приклад: аудит справжнього APK
Припустімо, у папці завантажень є example.apk. Ось точний робочий процес:
- Відкрийте Інструмент APK Info у своєму браузері.
- Опустіть APK в область завантаження. Обробка відбувається локально; файл не залишає ваш пристрій.
- Прочитайте розділ Дозволи. Кожен запис показує ім’я константи (android.permission.READ_CONTACTS і простий опис того, що він дозволяє).
- Порівняйте список із категорією програми. Приблизно очікуйте:
- Програми камери: CAMERA, RECORD_AUDIO (для відео), STORAGE/MEDIA запис
- Програми обміну повідомленнями: ІНТЕРНЕТ, READ_CONTACTS, SEND_SMS (тільки якщо на основі SMS), RECORD_AUDIO (для голосових нотаток), CAMERA (для надсилання фотографій)
- Ігри: ІНТЕРНЕТ, іноді RECORD_AUDIO (для голосового чату в грі), дозволи, пов’язані з білінгом; рідко щось інше
- Службові програми (калькулятор, ліхтарик, погода): ІНТЕРНЕТ (для реклами), ACCESS_NETWORK_STATE, можливо LOCATION (лише погода). Усе, що окрім цього, є підозрілим.
- Якщо щось у списку не відповідає категорії, не встановлюйте. Немає вагомих причин, щоб калькулятор потребував доступу до SMS.
Така сама логіка застосовується, незалежно від того, чи є файл APK, XAPK (де ми читаємо внутрішній базовий APK) або комплект APKS (де ми читаємо маніфест кожного розділеного).
Робимо це з командного рядка
Якщо ви віддаєте перевагу термінальному маршруту, Android SDK постачає aapt2, який створює дамп маніфесту з будь-якого APK у звичайному XML:
aapt2 dump badging example.apk | grep "uses-permission"
Або використовуйте apksigner, щоб одночасно перевірити сертифікат підпису:
apksigner verify --print-certs example.apk
Інструмент браузера робить те саме для користувачів, які не бажають встановлювати SDK лише для перевірки одного файлу.
Часті запитання (FAQ)
Чи можу я відмовити в дозволі після встановлення APK?
так В Android 6.0 і новіших версіях ви можете перейти до Налаштування > Програми > [Назва програми] > Дозволи, щоб увімкнути або вимкнути окремі небезпечні дозволи.
Чи мають файли XAPK різні дозволи?
XAPK містить один або кілька файлів .apk. Кожен APK всередині має власний маніфест. Наш інструмент проаналізує Основний APK у пакеті, щоб показати вам відповідні дозволи.
Чому кожна програма запитує «Доступ до мережі»?
Майже всім програмам потрібен доступ до Інтернету для аналітики, звітів про помилки або реклами. Хоча це поширене явище, це також спосіб надсилання викрадених даних на сервер хакера.
Перевірка дозволів маніфесту перед натисканням «Встановити».
Ви не можете судити про те, чого не бачите. Витрачати десять секунд на переглянути дозволи APK перед тим, як завантажувати збоку, це різниця між знанням того, чого може досягти додаток, і простою надією, що він поведеться. Спочатку прочитайте список, а потім встановіть.