Az Android-alkalmazások engedélyeinek megtekintése az APK telepítése előtt

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

Amikor telepít egy alkalmazást a Google Play Áruházból, az Android egy egyszerűsített összefoglalót jelenít meg arról, hogy az alkalmazás mire férhet hozzá. Töltsön be oldalra egy APK-t nem Play-forrásból, és nincs ilyen biztonsági hálója, hacsak nem olvassa el a jegyzéket. A "Valóban szüksége van egy háttérkép alkalmazásnak SMS- és mikrofon hozzáférésre?" pontosan az a fajta kérdés, amelyre ez az útmutató segít megválaszolni.

A következőkben ugyanazt a munkafolyamatot mutatjuk be, amelyet csapatunk egy ismeretlen APK kipróbálásakor használ: nyissa meg, olvassa el a uses-permission bejegyzéseket, dekódolja a védelmi szinteket, és hasonlítsa össze, mire van szüksége a mondja alkalmazásnak a kategóriája által általában megköveteltekkel. A online APK információs eszköz-ünk elvégzi a bináris XML dekódolást, így az egész folyamat körülbelül tíz másodpercet vesz igénybe.

Olvasási idő: ~9 perc. Szükséges eszközök: böngésző; opcionálisan apksigner és aapt2 az Android SDK-ból, ha ugyanazokat az ellenőrzéseket terminálról szeretné elvégezni. Amit a végén megtehetsz: olvassa el bármelyik APK teljes engedélylistáját, találja meg a négy vagy öt „nagy hatású” kérést, amelyek szinte mindig problémát jeleznek, és döntse el, hogy a telepítés előtt telepíti-e, nem pedig utána.

Miért zavarna az ellenőrzési engedélyek?

A rosszindulatú fejlesztők elfoglalják a népszerű ingyenes alkalmazásokat, módosítják azokat, és újra kiadják harmadik felek webhelyein. Bár az alkalmazás normálisan nézhet ki és működik, rejtett kódja lehet, hogy másolja a névjegylistát vagy rögzíti a háttérhangot. Ha megtekinti a előtelepítés engedélyeket, észreveheti az "engedély-kúszás" vörös zászlóit.

Bármely APK-fájl ellenőrzése (online)

A APK információs eszköz-ünk teljesen beolvassa a fájl jegyzékét a böngészőben; a fájl soha nem kerül feltöltésre a szerverre, és nem fut le kód. Használja a következőképpen:

Folyamat:

  1. Menjen a APK információs oldal-hez.
  2. Válassza ki a .apk fájlt.
  3. Várja meg, amíg az elemzés befejeződik (általában 5 másodperc).
  4. Görgessen le a Engedélyek szakasz-hez.
  5. Keresse a magas kockázatú jelzőket, például: READ_SMS, PROCESS_OUTGOING_CALLS vagy ACCESS_FINE_LOCATION.

Engedélyek vörös zászlós listája

Ha egy Számológép vagy Zseblámpa alkalmazás a READ_CONTACTS vagy RECORD_AUDIO kódot kéri, azonnal törölje a fájlt. Nincs semmi jogos ok arra, hogy ezek az alkalmazások rendelkezzenek ezekkel az adatokkal.

Az Android engedélyszintek megértése

Nem minden engedély egyenlő. Az Android három szintbe sorolja őket:

Kézi módszer (ZIP Viewer használatával)

Ha rendelkezik némi technikai tudással, saját maga is ellenőrizheti az engedélyeket:

  1. Nevezze át a app.apk-t app.zip-re, és nyissa meg.
  2. Keresse meg a AndroidManifest.xml-t. (Megjegyzés: Bináris formátumban van, és a szövegszerkesztőben halandzsának fog kinézni).
  3. Egy olyan eszközzel, mint a AXMLPrinter, konvertálja olvasható szöveggé.
  4. Keressen <uses-permission> kezdetű címkéket.

Javaslat: Sokkal gyorsabb a online eszköz használata, amely ezt azonnal dekódolja.

Vizsgálja meg alkalmazásait most

Pontosan tudja, mit kérnek az alkalmazásai. Nincsenek titkok, nincsenek kockázatok.

Ellenőrizze az APK engedélyeit

Amit valójában tárol az AndroidManifest.xml

A manifesztfájl a hiteles forrás minden olyan engedélyhez, összetevőhöz és funkcióhoz, amelyet az alkalmazás deklarál. Az APK-n belül ez a fájl bináris XML formátumban található, nem pedig a forráskódban megszokott egyszerű szövegként, így hagyományos szövegszerkesztővel nem olvasható. Az APK Info eszközünk dekódolja a bináris XML-t, és megjeleníti a lényeges elemeket. A legfontosabbak a következők:

Engedélyvédelmi szintek: A csalólap

Az Android minden engedélyhez "védelmi szintet" rendel. Ha tudja, hogy egy kérés melyik szinthez tartozik, az megmutatja, hogy az operációs rendszer mennyire fogja komolyan kezelni azt.

Védelmi szint Felhasználói élmény Példák
normál Csendesen megadva a telepítéskor. Nincs felszólítás. INTERNET, REZGÉS, ACCESS_NETWORK_STATE, WAKE_LOCK
veszélyes Futásidejű üzenet a funkció első használatakor. Visszavonható a Beállításokban. KAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION
aláírás Csak az engedélyező alkalmazással vagy az operációs rendszerrel megegyező tanúsítvánnyal aláírt alkalmazások számára biztosított. BIND_VPN_SERVICE, INSTALL_PACKAGES (csak rendszeren)
aláírás|kiváltságos Csak a rendszerkép priv-app könyvtárában lévő előre telepített alkalmazások számára érhető el. MANAGE_USERS, READ_LOGS (felhasználók és rendszernaplók)
appop / szerep Az engedélyezéshez külön beállítási folyamat szükséges. SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (speciális rendszerjogok)

Mit jelentenek valójában a „rejtett” engedélyek

Általános tévhit, hogy egyes engedélyek titkosak. Nem: minden engedélyt, amelyet egy alkalmazás használ, deklarálni kell a AndroidManifest.xml-ben, és az operációs rendszer megtagad minden olyan engedélyt, amely nem szerepel ott. Amit az emberek általában „rejtett” alatt értenek, az két dolog egyike:

Akárhogy is, a válasz ugyanaz: olvassa el a jegyzéket, ne bízzon önmagában a Play Áruház leírásában.

Működő példa: Valódi APK ellenőrzése

Tegyük fel, hogy az example.apk a Letöltések mappában van. Íme a pontos munkafolyamat:

  1. Nyissa meg a APK információs eszköz-t a böngészőjében.
  2. Dobja az APK-t a feltöltési területre. A feldolgozás helyben történik; a fájl nem hagyja el az eszközt.
  3. Olvassa el a Engedélyek részt. Minden bejegyzés megjeleníti az állandó nevét (android.permission.READ_CONTACTS és egy közérthető leírást arról, hogy mit engedélyez).
  4. Hasonlítsa össze a listát az alkalmazás kategóriájával. Nagyjából várható:
    • Kamera alkalmazások: KAMERA, RECORD_AUDIO (videóhoz), TÁROLÁS/MÉDIA írás
    • Üzenetküldő alkalmazások: INTERNET, READ_CONTACTS, SEND_SMS (csak SMS-alapú), RECORD_AUDIO (hangjegyzetekhez), KAMERA (fotók küldéséhez)
    • Játékok: INTERNET, néha RECORD_AUDIO (játékon belüli hangcsevegéshez), számlázással kapcsolatos engedélyek; ritkán mást
    • Segédprogramok (számológép, zseblámpa, időjárás): INTERNET (hirdetésekhez), ACCESS_NETWORK_STATE, esetleg LOCATION (csak időjárás). Minden ezen kívül gyanús.
  5. Ha a listában valami nem illik a kategóriához, ne telepítse. Nincs jó ok a számológépnek SMS-hozzáférésre.

Ugyanez a logika érvényes, függetlenül attól, hogy a fájl egy APK, egy XAPK (ahol a belső alap APK-t olvassuk be), vagy egy APKS-csomag (ahol az egyes felosztások jegyzékét olvassuk).

Csináld a parancssorból

Ha a terminál útvonalat részesíti előnyben, az Android SDK a aapt2 fájlt szállítja, amely minden APK-ból kiír egy manifestet egyszerű XML-ben:

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

Vagy használja a apksigner-t az aláíró tanúsítvány egyidejű ellenőrzéséhez:

apksigner verify --print-certs example.apk

A böngészőeszköz ugyanezt teszi azoknál a felhasználóknál, akik inkább nem telepítenek SDK-t csak egyetlen fájl ellenőrzésére.

Gyakran Ismételt Kérdések (GYIK)

Megtagadhatom az engedélyt az APK telepítése után?

Igen. Android 6.0 és újabb rendszereken a Beállítások > Alkalmazások > [Alkalmazás neve] > Engedélyek oldalon be- vagy kikapcsolhatja az egyes veszélyes engedélyeket.

Az XAPK fájlok eltérő engedélyekkel rendelkeznek?

Az XAPK egy vagy több APK-t tartalmaz. Minden belső APK-nak megvan a maga manifestje. Eszközünk elemzi a csomagban lévő Fő APK-t, hogy megjelenítse a vonatkozó engedélyeket.

Miért kér minden alkalmazás „Hálózati hozzáférést”?

Szinte minden alkalmazásnak internet-hozzáférésre van szüksége az elemzésekhez, a hibajelentésekhez vagy a hirdetésekhez. Bár gyakori, ez az a mód is, ahogyan az ellopott adatokat elküldik a hackerek szerverére.

A Manifest engedélyek ellenőrzése, mielőtt megérinti a Telepítést

Nem tudod megítélni azt, amit nem láthatsz. Ha tíz másodpercet tölt a megtekintheti az APK engedélyeit-re, mielőtt oldalra tölti, az a különbség aközött, hogy tudjuk, mit érhet el egy alkalmazás, és egyszerűen reméljük, hogy viselkedik. Először olvassa el a listát, majd telepítse.

Mst Shaefale tervezte és dokumentálta Vezető fejlesztő és Android Package Architect • Ellenőrizve Android 12–15

Az Mst Shaefale karbantartja az ügyféloldali XAPK/APKS egyesítést, bináris jegyzékelemzőt és APK v1+v2 aláíró eszközöket a xapktoapk.com-nél. Elavult parancsot vagy operációs rendszerváltozást észlel? Szerkesztői megjegyzés küldése.