Cara Melihat Kebenaran Apl Android Sebelum Memasang APK
Apabila anda memasang apl daripada Gedung Google Play, Android menunjukkan ringkasan ringkas tentang perkara yang boleh diakses oleh apl itu. Sideload APK daripada sumber bukan Main dan anda tidak mempunyai jaringan keselamatan sedemikian, melainkan anda membaca sendiri manifes itu. "Adakah apl kertas dinding benar-benar memerlukan akses SMS dan mikrofon?" betul-betul jenis soalan yang panduan ini akan bantu anda jawab.
Perkara berikut ialah aliran kerja yang sama yang digunakan oleh pasukan kami semasa mencuba APK yang tidak dikenali: bukanya, baca entri uses-permission, nyahkod tahap perlindungan dan bandingkan perkara yang diperlukan oleh apl berkata dengan perkara yang biasanya diperlukan oleh kategorinya. alat Maklumat APK dalam talian kami melakukan penyahkodan binari-XML untuk anda supaya keseluruhan proses mengambil masa kira-kira sepuluh saat.
Mengapa Mengganggu Kebenaran Pengauditan?
Pembangun berniat jahat mengambil apl percuma yang popular, mengubahnya dan mengeluarkannya semula di tapak pihak ketiga. Walaupun apl mungkin kelihatan dan berfungsi seperti biasa, kod tersembunyinya mungkin menyalin senarai kenalan anda atau merakam audio latar belakang anda. Dengan melihat kebenaran pra-pemasangan, anda boleh melihat bendera merah "permission creep" ini.
Cara Mengaudit Mana-mana Fail APK (Dalam Talian)
Alat Maklumat APK kami membaca manifes fail anda sepenuhnya dalam penyemak imbas anda; fail tidak pernah dimuat naik ke pelayan, dan tiada kod dilaksanakan. Begini cara menggunakannya:
Proses:
- Pergi ke Halaman Maklumat APK.
- Pilih fail .apk anda.
- Tunggu analisis selesai (biasanya 5 saat).
- Tatal ke bawah ke Bahagian Kebenaran.
- Cari bendera berisiko tinggi seperti: READ_SMS, PROCESS_OUTGOING_CALLS atau ACCESS_FINE_LOCATION.
Senarai Bendera Merah Kebenaran
Jika apl Kalkulator atau Lampu suluh meminta READ_CONTACTS atau RECORD_AUDIO, padamkan fail dengan segera. Tiada sebab yang sah untuk apl ini mempunyai data tersebut.
Memahami Tahap Kebenaran Android
Tidak semua kebenaran dicipta sama. Android mengkategorikannya kepada tiga tahap:
- Biasa: Kebenaran berisiko rendah yang tidak secara langsung mengancam privasi (cth., SET_ALARM). Android memberikan ini secara automatik.
- Berbahaya: kebenaran berisiko tinggi (Kenalan, Lokasi, Kamera). mesti ini disahkan oleh anda apabila apl dijalankan.
- Tandatangan/Sistem: Sangat berisiko tinggi. Ini hanya tersedia untuk apl yang ditandatangani oleh pengeluar peranti atau OS itu sendiri.
Kaedah Manual (Menggunakan Pemapar ZIP)
Jika anda mempunyai beberapa kemahiran teknikal, anda boleh mengaudit kebenaran sendiri:
- Namakan semula app.apk kepada app.zip dan bukanya.
- Cari AndroidManifest.xml. (Nota: Ia dalam format binari dan akan kelihatan seperti omong kosong dalam editor teks).
- Gunakan alat seperti AXMLPrinter untuk menukarnya kepada teks yang boleh dibaca.
- Cari teg bermula dengan <uses-permission>.
Syor: Lebih cepat menggunakan alat dalam talian kami yang menyahkod ini untuk anda serta-merta.
Audit Apl Anda Sekarang
Ketahui dengan tepat apa yang apl anda minta. Tiada rahsia, tiada risiko.
Semak Kebenaran APKApa yang Sebenarnya Disimpan dalam AndroidManifest.xml
Manifes ialah sumber kebenaran untuk setiap kebenaran, komponen dan ciri yang diisytiharkan oleh apl. Di dalam APK, fail itu dalam bentuk XML binari, bukan teks biasa yang anda lihat dalam kod sumber, jadi ia tidak boleh dibaca dengan editor teks biasa. Alat Maklumat APK kami menyahkod XML binari dan memaparkan teg yang berkaitan. Yang paling penting ialah:
- <uses-permission android:name="..."/>: setiap kebenaran yang mungkin diminta oleh aplikasi. Senarai penuh ada di sini, termasuk senarai yang mungkin tidak pernah digunakan oleh apl pada masa jalanan.
- <uses-permission-sdk-23 ... />: sama, tetapi hanya diminta apabila apl berjalan pada Android 6 atau lebih baru. Peranti lama dibenarkan secara senyap tanpa digesa.
- <uses-feature android:name="..." android:required="true|false"/>: ciri perkakasan yang digunakan oleh aplikasi (kamera, GPS, NFC). Apabila ditanda diperlukan, Gedung Play menyembunyikan apl daripada peranti yang tidak mempunyai ciri tersebut.
- <application android:debuggable="true">: bendera merah gergasi dalam APK keluaran. Apl boleh nyahpepijat mendedahkan memori dan keadaan prosesnya kepada sesiapa sahaja yang mempunyai akses ADB. Tolak.
- <activity android:exported="true"> pada aktiviti sensitif: membolehkan apl lain melancarkan skrin itu. Untuk apl privasi, ini selalunya menandakan pengekodan ceroboh.
Tahap Perlindungan Kebenaran: Helaian Penipuan
Android memberikan setiap kebenaran "tahap perlindungan". Mengetahui tahap mana yang dimiliki oleh permintaan memberitahu anda betapa seriusnya OS akan melayannya.
| Tahap perlindungan | Pengalaman pengguna | Contoh |
|---|---|---|
| biasa | Diberikan secara senyap pada masa pemasangan. Tiada gesaan. | INTERNET, BERGETAR, ACCESS_NETWORK_STATE, WAKE_LOCK |
| bahaya | Runtime prompt pada kali pertama ciri digunakan. Boleh dibatalkan dalam Tetapan. | CAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION |
| tandatangan | Diberikan hanya kepada apl yang ditandatangani dengan sijil yang sama seperti apl pemberian atau OS. | BIND_VPN_SERVICE, INSTALL_PACKAGES (sistem sahaja) |
| tandatangan|terutama | Tersedia hanya untuk apl prapasang dalam direktori priv-app imej sistem. | MANAGE_USERS, READ_LOGS (urus pengguna & log) |
| appop / peranan | Memerlukan aliran Tetapan yang berasingan untuk mendayakan. | SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (kebenaran khas sistem) |
Apa Maksud Kebenaran "Tersembunyi" Sebenarnya
Salah tanggapan yang lazim ialah sesetengah kebenaran adalah rahsia. Mereka tidak: setiap kebenaran yang mungkin digunakan oleh apl mesti diisytiharkan dalam AndroidManifest.xml dan OS enggan memberikan sebarang kebenaran yang tidak disenaraikan di sana. Apa yang orang biasanya maksudkan dengan "tersembunyi" ialah salah satu daripada dua perkara:
- Keizinan peringkat biasa adalah senyap. Mereka diberikan pada masa pemasangan tanpa sebarang interaksi pengguna. Ringkasan Gedung Play tidak menunjukkan sebahagian daripadanya. Mereka "tersembunyi" dalam erti kata "mudah untuk diabaikan", bukan dalam erti kata "tidak didedahkan".
- Apl Keizinan tersuai yang ditentukan apl. boleh mengisytiharkan teg <permission> mereka sendiri dan memerlukannya pada komponen dalaman. Ini wujud untuk komunikasi antara apl dan bukan kebimbangan privasi sendiri, tetapi ia boleh disalahgunakan jika apl popular mengisytiharkan kebenaran tersuai dengan tahap perlindungan yang salah dan apl lain kemudian menggunakannya sebagai pintu belakang.
Walau apa pun, jawapannya adalah sama: baca manifes, jangan percaya penerangan Gedung Play sendiri.
Contoh Berfungsi: Mengaudit APK Sebenar
Katakan anda mempunyai example.apk dalam folder Muat Turun anda. Berikut ialah aliran kerja yang tepat:
- Buka Alat Maklumat APK dalam pelayar anda.
- Lepaskan APK pada kawasan muat naik. Pemprosesan berlaku secara tempatan; fail tidak meninggalkan peranti anda.
- Baca bahagian kebenaran. Setiap entri menunjukkan nama tetap (android.permission.READ_CONTACTS dan penerangan bahasa biasa tentang perkara yang dibenarkan).
- Bandingkan senarai dengan kategori apl. Secara kasar, jangkakan:
- Apl kamera: CAMERA, RECORD_AUDIO (untuk video), STORAGE/MEDIA tulis
- Apl pemesejan: INTERNET, READ_CONTACTS, SEND_SMS (hanya jika berasaskan SMS), RECORD_AUDIO (untuk nota suara), CAMERA (untuk menghantar foto)
- Permainan: INTERNET, kadangkala RECORD_AUDIO (untuk sembang suara dalam permainan), kebenaran berkaitan pengebilan; jarang yang lain
- Apl utiliti (kalkulator, lampu suluh, cuaca): INTERNET (untuk iklan), ACCESS_NETWORK_STATE, mungkin LOCATION (cuaca sahaja). Apa-apa di luar itu adalah mencurigakan.
- Jika apa-apa dalam senarai tidak sesuai dengan kategori, jangan pasang. Tiada sebab yang kukuh kalkulator memerlukan akses SMS.
Logik yang sama terpakai sama ada fail itu APK, XAPK (tempat kita membaca APK asas dalam) atau berkas APKS (tempat kita membaca manifes setiap pemisahan).
Melakukannya dari Barisan Perintah
Jika anda lebih suka laluan terminal, Android SDK menghantar aapt2, yang membuang manifes daripada mana-mana APK dalam XML biasa:
aapt2 dump badging example.apk | grep "uses-permission"
Atau gunakan apksigner untuk mengesahkan sijil tandatangan pada masa yang sama:
apksigner verify --print-certs example.apk
Alat penyemak imbas melakukan perkara yang sama untuk pengguna yang lebih suka tidak memasang SDK hanya untuk memeriksa satu fail.
Soalan Lazim (FAQ)
Bolehkah saya menolak kebenaran selepas memasang APK?
ya. Pada Android 6.0 dan lebih tinggi, anda boleh pergi ke Tetapan > Apl > [Nama Apl] > Kebenaran untuk menghidupkan atau mematikan kebenaran berbahaya individu.
Adakah fail XAPK mempunyai kebenaran yang berbeza?
XAPK mengandungi satu atau lebih APK. Setiap APK di dalamnya mempunyai manifesnya sendiri. Alat kami akan menganalisis APK utama dalam berkas untuk menunjukkan kepada anda kebenaran yang berkaitan.
Mengapakah setiap apl meminta "Akses Rangkaian"?
Hampir semua apl memerlukan akses internet untuk analitis, pelaporan pepijat atau iklan. Walaupun ia adalah perkara biasa, ia juga merupakan cara data yang dicuri dihantar ke pelayan penggodam.
Memeriksa Kebenaran Manifes Sebelum Anda Ketik Pasang
Anda tidak boleh menilai apa yang anda tidak dapat lihat. Menghabiskan sepuluh saat untuk lihat kebenaran APK sebelum anda sideload adalah perbezaan antara mengetahui perkara yang boleh dicapai oleh apl dan hanya berharap ia berkelakuan. Baca senarai dahulu, dan pasang kedua.