Az Android-alkalmazások engedélyeinek megtekintése az APK telepítése előtt
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.
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:
- Menjen a APK információs oldal-hez.
- Válassza ki a .apk fájlt.
- Várja meg, amíg az elemzés befejeződik (általában 5 másodperc).
- Görgessen le a Engedélyek szakasz-hez.
- 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:
- Normál: Alacsony kockázatú engedélyek, amelyek közvetlenül nem veszélyeztetik a magánéletet (pl. SET_ALARM). Az Android ezeket automatikusan megadja.
- Veszélyes: Magas kockázatú engedélyek (kapcsolatok, hely, kamera). Ezeket a kell-eket Ön is megerősíti, amikor az alkalmazás fut.
- Aláírás/Rendszer: Rendkívül magas kockázatú. Ezek csak az eszköz gyártója vagy maga az operációs rendszer által aláírt alkalmazások számára érhetők el.
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:
- Nevezze át a app.apk-t app.zip-re, és nyissa meg.
- Keresse meg a AndroidManifest.xml-t. (Megjegyzés: Bináris formátumban van, és a szövegszerkesztőben halandzsának fog kinézni).
- Egy olyan eszközzel, mint a AXMLPrinter, konvertálja olvasható szöveggé.
- 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élyeitAmit 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:
- <uses-permission android:name="..."/>: minden engedély, amelyet az alkalmazás kérhet. Itt található a tele lista, beleértve azokat is, amelyeket az alkalmazás soha nem használ futás közben.
- <uses-permission-sdk-23 ... />: ugyanaz, de csak akkor kérik, ha az alkalmazás Android 6 vagy újabb rendszeren fut. A régebbi eszközök csendben, felszólítás nélkül engedélyezettek.
- <uses-feature android:name="..." android:required="true|false"/>: az alkalmazás által használt hardverfunkciók (kamera, GPS, NFC). A kívánt jelöléssel a Play Áruház elrejti az alkalmazást azoktól az eszközöktől, amelyek nem rendelkeznek ezzel a funkcióval.
- <application android:debuggable="true">: óriási piros zászló a kiadási APK-ban. A hibakereshető alkalmazás felfedi a memóriáját és a folyamatállapotát bárki számára, aki rendelkezik ADB-hozzáféréssel. Elutasít.
- <activity android:exported="true"> érzékeny tevékenységeknél: lehetővé teszi, hogy más alkalmazások elindítsák a képernyőt. Egy adatvédelmi alkalmazás esetében ez gyakran hanyag kódolást jelez.
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:
- A normál szintű engedélyek némák. Ezeket a telepítéskor, felhasználói beavatkozás nélkül kapják meg. A Play Áruház összefoglalója nem is mutat be néhányat. Ezek „rejtettek” a „könnyű figyelmen kívül hagyni”, nem pedig a „nyilvántalan” értelemben.
- A Alkalmazás által meghatározott egyéni engedélyek. alkalmazások deklarálhatják saját <permission> címkéiket, és megkövetelik azokat a belső alkatrészeken. Ezek az alkalmazások közötti kommunikációhoz léteznek, és önmagukban nem jelentenek adatvédelmi aggályokat, de visszaélhetnek velük, ha egy népszerű alkalmazás rossz védelmi szinttel deklarál egyéni engedélyt, és egy másik alkalmazás hátsó ajtóként használja azt.
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:
- Nyissa meg a APK információs eszköz-t a böngészőjében.
- 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.
- 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).
- 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.
- 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.