Jak zobrazit oprávnění aplikace pro Android před instalací souboru APK

A smartphone showing a list of app permissions with a magnifying glass

Když nainstalujete aplikaci z Obchodu Google Play, Android zobrazí zjednodušené shrnutí toho, k čemu má aplikace přístup. Načtěte soubor APK ze zdroje mimo Play a žádnou takovou záchrannou síť nemáte, pokud si sami nepřečtete manifest. "Opravdu potřebuje aplikace pro tapety přístup k SMS a mikrofonu?" je přesně ten druh otázky, na kterou vám tato příručka pomůže odpovědět.

Následuje stejný pracovní postup, který náš tým používá při třídění neznámého souboru APK: otevřete jej, přečtěte si záznamy uses-permission, dekódujte úrovně ochrany a porovnejte, co aplikace říká potřebuje, s tím, co obvykle vyžaduje její kategorie. Náš online nástroj APK Info za vás provede dekódování binárního XML, takže celý proces trvá asi deset sekund.

Doba čtení: ~9 minut. Potřebné nástroje: prohlížeč; volitelně apksigner a aapt2 ze sady Android SDK, pokud chcete provádět stejné kontroly z terminálu. Co budete moci udělat na konci: přečtěte si úplný seznam oprávnění libovolného souboru APK, najděte čtyři nebo pět požadavků s „vysokým dopadem“, které téměř vždy indikují potíže, a rozhodněte se, zda provést instalaci před instalací, nikoli po ní.

Proč se obtěžovat oprávněními k auditu?

Vývojáři se zlými úmysly berou oblíbené bezplatné aplikace, upravují je a znovu je uvolňují na webech třetích stran. Zatímco aplikace může vypadat a fungovat normálně, její skrytý kód může kopírovat váš seznam kontaktů nebo nahrávat zvuk na pozadí. Zobrazením oprávnění předinstalace můžete zaznamenat tyto červené příznaky „plížení oprávnění“.

Jak auditovat jakýkoli soubor APK (online)

Náš Nástroj APK Info přečte manifest vašeho souboru zcela ve vašem prohlížeči; soubor se nikdy nenahraje na server a nespustí se žádný kód. Postup použití:

proces:

  1. Přejděte na Informační stránka APK.
  2. Vyberte svůj soubor .apk.
  3. Počkejte na dokončení analýzy (obvykle 5 sekund).
  4. Přejděte dolů na Sekce oprávnění.
  5. Hledejte příznaky vysokého rizika jako: READ_SMS, PROCESS_OUTGOING_CALLS nebo ACCESS_FINE_LOCATION.

Seznam povolených červených vlajek

Pokud aplikace Kalkulačka nebo Svítilna požádá o READ_CONTACTS nebo RECORD_AUDIO, soubor okamžitě odstraňte. Neexistuje žádný legitimní důvod, aby tyto aplikace měly tato data.

Pochopení úrovní oprávnění pro Android

Ne všechna oprávnění jsou stejná. Android je kategorizuje do tří úrovní:

Ruční metoda (pomocí prohlížeče ZIP)

Pokud máte nějaké technické dovednosti, můžete oprávnění auditovat sami:

  1. Přejmenujte app.apk na app.zip a otevřete jej.
  2. Najděte AndroidManifest.xml. (Poznámka: Je v binárním formátu a v textovém editoru bude vypadat jako blábol).
  3. K převodu na čitelný text použijte nástroj jako AXMLPrinter.
  4. Vyhledejte značky začínající na <uses-permission>.

Doporučení: Je mnohem rychlejší použít náš online nástroj, který to za vás okamžitě dekóduje.

Auditujte své aplikace

Přesně víte, co vaše aplikace požadují. Žádná tajemství, žádná rizika.

Zkontrolujte oprávnění APK

Co je ve skutečnosti uloženo v AndroidManifest.xml

Manifest je zdrojem pravdy pro každé oprávnění, komponentu a funkci, kterou aplikace deklaruje. Uvnitř souboru APK je soubor ve formě binární XML, nikoli jako prostý text, který vidíte ve zdrojovém kódu, takže jej nelze přečíst běžným textovým editorem. Náš nástroj APK Info dekóduje binární XML a zobrazí příslušné značky. Nejdůležitější jsou:

Úrovně ochrany oprávnění: Cheat Sheet

Android přiřadí každému oprávnění „úroveň ochrany“. Vědět, do které úrovně požadavek patří, vám řekne, jak vážně s ním bude OS zacházet.

Úroveň ochrany Uživatelská zkušenost Příklady
normální Uděleno tiše v době instalace. Žádná výzva. INTERNET, VIBRATE, ACCESS_NETWORK_STATE, WAKE_LOCK
nebezpečný Runtime výzva při prvním použití funkce. Odvolatelné v Nastavení. CAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION
podpis Uděleno pouze aplikacím podepsaným stejným certifikátem jako udělující aplikace nebo operační systém. BIND_VPN_SERVICE, INSTALL_PACKAGES (pouze systém)
podpis|privilegovaný Dostupné pouze pro předinstalované aplikace v adresáři priv-app obrazu systému. MANAGE_USERS, READ_LOGS (systémová oprávnění)
appop / role Povolení vyžaduje samostatný tok nastavení. SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (zvláštní přístup)

Co vlastně znamenají „skrytá“ oprávnění

Obvyklá mylná představa je, že některá oprávnění jsou tajná. Nejsou: každé oprávnění, které může aplikace použít, musí být deklarováno v AndroidManifest.xml a OS odmítá udělit jakékoli oprávnění, které tam není uvedeno. To, co lidé obvykle myslí výrazem „skryté“, je jedna ze dvou věcí:

Ať tak či onak, odpověď je stejná: přečtěte si manifest, nedůvěřujte popisu Obchodu Play samotnému.

Funkční příklad: Auditování skutečného souboru APK

Předpokládejme, že máte ve složce Stažené soubory example.apk. Zde je přesný pracovní postup:

  1. Otevřete Nástroj APK Info ve svém prohlížeči.
  2. Umístěte soubor APK do oblasti pro nahrávání. Zpracování probíhá lokálně; soubor neopustí vaše zařízení.
  3. Přečtěte si část Oprávnění. Každá položka zobrazuje název konstanty (android.permission.READ_CONTACTS a srozumitelný popis toho, co umožňuje).
  4. Porovnejte seznam s kategorií aplikace. Zhruba očekávejte:
    • Aplikace pro fotoaparát: CAMERA, RECORD_AUDIO (pro video), STORAGE/MEDIA zápis
    • Aplikace pro zasílání zpráv: INTERNET, READ_CONTACTS, SEND_SMS (pouze v případě SMS), RECORD_AUDIO (pro hlasové poznámky), CAMERA (pro odesílání fotografií)
    • hry: INTERNET, někdy RECORD_AUDIO (pro hlasový chat ve hře), oprávnění související s fakturací; málokdy něco jiného
    • Obslužné aplikace (kalkulačka, baterka, počasí): INTERNET (pro reklamy), ACCESS_NETWORK_STATE, případně LOCATION (pouze počasí). Cokoli kromě toho je podezřelé.
  5. Pokud něco v seznamu neodpovídá kategorii, neinstalujte. Neexistuje žádný dobrý důvod, proč by kalkulačka potřebovala přístup k SMS.

Stejná logika platí, ať už jde o soubor APK, XAPK (kde čteme vnitřní základní soubor APK) nebo svazek APKS (kde čteme manifest každého rozdělení).

Dělejte to z příkazového řádku

Pokud dáváte přednost terminálové cestě, sada Android SDK dodává aapt2, která vypíše manifest z libovolného souboru APK v prostém XML:

aapt2 dump badging example.apk | grep "uses-permission"

Nebo použijte apksigner k ověření podpisového certifikátu současně:

apksigner verify --print-certs example.apk

Nástroj prohlížeče dělá totéž pro uživatele, kteří by raději neinstalovali sadu SDK, jen aby prověřili jeden soubor.

Často kladené otázky (FAQ)

Mohu odepřít povolení po instalaci souboru APK?

Ano. V systému Android 6.0 a vyšším můžete přejít na Nastavení > Aplikace > [Název aplikace] > Oprávnění a zapnout nebo vypnout jednotlivá nebezpečná oprávnění.

Mají soubory XAPK různá oprávnění?

XAPK obsahuje jeden nebo více souborů APK. Každý APK uvnitř má svůj vlastní manifest. Náš nástroj analyzuje Hlavní APK v rámci balíčku, aby vám ukázal příslušná oprávnění.

Proč každá aplikace požaduje „Přístup k síti“?

Téměř všechny aplikace potřebují přístup k internetu pro analýzy, hlášení chyb nebo reklamy. I když je to běžné, je to také způsob, jakým jsou ukradená data odesílána na server hackera.

Kontrola manifestních oprávnění, než klepnete na Instalovat

Nemůžete soudit, co nevidíte. Strávit deset sekund na zobrazit oprávnění souboru APK, než ji načtete z boku, je rozdíl mezi tím, vědět, co aplikace může dosáhnout, a jednoduše doufat, že se bude chovat. Nejprve si přečtěte seznam a poté nainstalujte.

Navrhl a zdokumentoval Mst Shaefale Vedoucí vývojář a architekt balíčku Android • Ověřeno na Androidu 12–15

Mst Shaefale spravuje nástroje pro slučování XAPK/APKS na straně klienta, analyzátor binárních manifestů a nástroje pro podepisování APK v1+v2 na xapktoapk.com. Zaznamenali jste zastaralý příkaz nebo změnu operačního systému? Pošlete redakční poznámku.