Jak wyświetlić uprawnienia aplikacji na Androida przed zainstalowaniem pakietu APK
Gdy instalujesz aplikację ze Sklepu Google Play, system Android wyświetla uproszczone podsumowanie tego, do czego aplikacja może uzyskać dostęp. Sideload APK ze źródła innego niż Play i nie będziesz mieć takiej siatki bezpieczeństwa, chyba że sam przeczytasz manifest. „Czy aplikacja do tapet naprawdę powinna potrzebować dostępu do SMS-ów i mikrofonu?” to dokładnie ten rodzaj pytania, na który pomoże Ci odpowiedzieć ten przewodnik.
Poniżej znajduje się ten sam przepływ pracy, którego używa nasz zespół podczas selekcji nieznanego pliku APK: otwórz go, przeczytaj wpisy uses-permission, odkoduj poziomy ochrony i porównaj to, czego potrzebuje aplikacja mówi z tym, czego zwykle wymaga jej kategoria. Nasz Narzędzie internetowe APK Informacje wykonuje za Ciebie dekodowanie binarnego XML, więc cały proces zajmuje około dziesięciu sekund.
Po co zawracać sobie głowę sprawdzaniem uprawnień?
Złośliwi programiści pobierają popularne bezpłatne aplikacje, modyfikują je i ponownie udostępniają w witrynach stron trzecich. Chociaż aplikacja może wyglądać i działać normalnie, jej ukryty kod może kopiować listę kontaktów lub nagrywać dźwięk w tle. Przeglądając uprawnienia instalacja wstępna, możesz zauważyć czerwone flagi „pełzania uprawnień”.
Jak sprawdzić dowolny plik APK (online)
Nasz Narzędzie informacyjne APK odczytuje manifest Twojego pliku w całości w Twojej przeglądarce; plik nigdy nie jest przesyłany na serwer i żaden kod nie jest wykonywany. Oto jak z niego korzystać:
Proces:
- Przejdź do Strona z informacjami o APK.
- Wybierz plik .apk.
- Poczekaj na zakończenie analizy (zwykle 5 sekund).
- Przewiń w dół do Sekcja uprawnień.
- Szukaj flag wysokiego ryzyka, takich jak: READ_SMS, PROCESS_OUTGOING_CALLS lub ACCESS_FINE_LOCATION.
Lista czerwonych flag zezwoleń
Jeśli aplikacja Kalkulator lub Flesz poprosi o READ_CONTACTS lub RECORD_AUDIO, natychmiast usuń plik. Nie ma uzasadnionego powodu, dla którego te aplikacje miałyby mieć te dane.
Zrozumienie poziomów uprawnień Androida
Nie wszystkie uprawnienia są sobie równe. Android dzieli je na trzy poziomy:
- Normalna: Uprawnienia niskiego ryzyka, które nie zagrażają bezpośrednio prywatności (np. SET_ALARM). Android przyznaje je automatycznie.
- Niebezpieczny: Uprawnienia wysokiego ryzyka (kontakty, lokalizacja, kamera). Te musieć zostaną potwierdzone przez Ciebie po uruchomieniu aplikacji.
- Podpis/System: Bardzo wysokie ryzyko. Są one dostępne tylko dla aplikacji podpisanych przez producenta urządzenia lub sam system operacyjny.
Metoda ręczna (przy użyciu przeglądarki ZIP)
Jeśli masz pewne umiejętności techniczne, możesz samodzielnie sprawdzić uprawnienia:
- Zmień nazwę app.apk na app.zip i otwórz go.
- Znajdź AndroidManifest.xml. (Uwaga: jest w formacie binarnym i w edytorze tekstu będzie wyglądać jak bełkot).
- Użyj narzędzia takiego jak AXMLPrinter, aby przekonwertować go na czytelny tekst.
- Wyszukaj tagi zaczynające się od <uses-permission>.
Zalecenie: Dużo szybciej jest użyć naszego narzędzie internetowe, który dekoduje to natychmiast.
Przeprowadź audyt swoich aplikacji już teraz
Dowiedz się dokładnie, o co proszą Twoje aplikacje. Żadnych tajemnic, żadnego ryzyka.
Sprawdź uprawnienia APKCo faktycznie jest przechowywane w pliku AndroidManifest.xml
Manifest jest źródłem prawdy dla każdego uprawnienia, komponentu i funkcji deklarowanej przez aplikację. Wewnątrz pliku APK plik ma postać binarny XML, a nie zwykły tekst widoczny w kodzie źródłowym, więc nie można go odczytać w zwykłym edytorze tekstu. Nasze narzędzie informacyjne APK dekoduje binarny plik XML i wyświetla odpowiednie tagi. Najważniejsze z nich to:
- <uses-permission android:name="..."/>: każde pozwolenie, o które aplikacja może kiedykolwiek poprosić. Lista pełny jest tutaj, łącznie z tymi, których aplikacja może nigdy nie używać w czasie działania.
- <uses-permission-sdk-23 ... />: to samo, ale wymagane tylko wtedy, gdy aplikacja działa na systemie Android 6 lub nowszym. Starsze urządzenia są dozwolone w trybie cichym, bez monitowania.
- <uses-feature android:name="..." android:required="true|false"/>: funkcje sprzętowe, z których korzysta aplikacja (aparat, GPS, NFC). Po oznaczeniu wymagany Sklep Play ukrywa aplikację przed urządzeniami, które nie mają tej funkcji.
- <application android:debuggable="true">: gigantyczna czerwona flaga w wydaniu APK. Aplikacja, którą można debugować, udostępnia stan pamięci i procesu każdemu, kto ma dostęp ADB. Odrzucić.
- <activity android:exported="true"> w przypadku wrażliwych działań: umożliwia innym aplikacjom uruchamianie tego ekranu. W przypadku aplikacji chroniącej prywatność często oznacza to niechlujne kodowanie.
Poziomy ochrony uprawnień: Ściągawka
Android przypisuje każdemu uprawnieniu „poziom ochrony”. Wiedza o tym, do jakiego poziomu należy żądanie, informuje, jak poważnie system operacyjny potraktuje je.
| Poziom ochrony | Doświadczenie użytkownika | Przykłady |
|---|---|---|
| normalna | Przyznane po cichu w czasie instalacji. Brak podpowiedzi. | INTERNET, WIBRACJA, ACCESS_NETWORK_STATE, WAKE_LOCK |
| niebezpieczny | Monit środowiska wykonawczego przy pierwszym użyciu tej funkcji. Możliwość odwołania w Ustawieniach. | KAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION |
| podpis | Przyznawany tylko aplikacjom podpisanym tym samym certyfikatem, co aplikacja przyznająca certyfikat lub system operacyjny. | BIND_VPN_SERVICE, INSTALL_PACKAGES (tylko system) |
| podpis|uprzywilejowany | Dostępne tylko dla aplikacji zainstalowanych fabrycznie w katalogu priv-app obrazu systemu. | ZARZĄDZAJ_USERS, CZYTAJ_LOGI |
| aplikacja/rola | Aby włączyć, wymaga osobnego przepływu ustawień. | SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (specjalne uprawnienia systemowe) |
Co właściwie oznaczają „ukryte” uprawnienia
Powszechnym błędnym przekonaniem jest to, że niektóre uprawnienia są tajne. Tak nie jest: każde pozwolenie, z którego może korzystać aplikacja, musi zostać zadeklarowane w AndroidManifest.xml, a system operacyjny odmawia udzielenia jakichkolwiek uprawnień, które nie są tam wymienione. To, co ludzie zwykle mają na myśli, mówiąc „ukryty”, to jedna z dwóch rzeczy:
- Uprawnienia na poziomie normalnym są ciche. Są przyznawane w czasie instalacji, bez interakcji użytkownika. Podsumowanie niektórych z nich nawet nie jest widoczne w Sklepie Play. Są „ukryte” w sensie „łatwe do przeoczenia”, a nie „nieujawnione”.
- Aplikacje Niestandardowe uprawnienia zdefiniowane przez aplikację. mogą deklarować własne tagi <permission> i wymagać ich w komponentach wewnętrznych. Istnieją one do komunikacji między aplikacjami i same w sobie nie stanowią zagrożenia dla prywatności, ale mogą zostać nadużyte, jeśli popularna aplikacja zadeklaruje niestandardowe uprawnienia z niewłaściwym poziomem ochrony, a inna aplikacja użyje ich następnie jako backdoora.
Tak czy inaczej, odpowiedź jest ta sama: przeczytaj manifest, nie ufaj samemu opisowi Sklepu Play.
Sprawdzony przykład: audyt prawdziwego pliku APK
Załóżmy, że masz example.apk w folderze Pobrane. Oto dokładny przebieg pracy:
- Otwórz Narzędzie informacyjne APK w swojej przeglądarce.
- Upuść plik APK w obszarze przesyłania. Przetwarzanie odbywa się lokalnie; plik nie opuszcza urządzenia.
- Przeczytaj sekcję Uprawnienia. Każdy wpis zawiera nazwę stałą (android.permission.READ_CONTACTS i prosty opis tego, na co pozwala).
- Porównaj listę z kategorią aplikacji. Z grubsza spodziewaj się:
- Aplikacje aparatu: CAMERA, RECORD_AUDIO (dla wideo), STORAGE/MEDIA zapis
- Aplikacje do przesyłania wiadomości: INTERNET, READ_CONTACTS, SEND_SMS (tylko w przypadku wiadomości SMS), RECORD_AUDIO (do notatek głosowych), CAMERA (do wysyłania zdjęć)
- Zawody sportowe: INTERNET, czasami RECORD_AUDIO (do czatu głosowego w grze), uprawnienia związane z rozliczeniami; rzadko coś innego
- Aplikacje użytkowe (kalkulator, latarka, pogoda): INTERNET (dla reklam), ACCESS_NETWORK_STATE, ewentualnie LOKALIZACJA (tylko pogoda). Wszystko poza tym jest podejrzane.
- Jeśli cokolwiek na liście nie pasuje do kategorii, nie instaluj. Nie ma dobrego powodu, dla którego kalkulator potrzebuje dostępu przez SMS.
Ta sama logika obowiązuje niezależnie od tego, czy plik jest plikiem APK, XAPK (w którym czytamy wewnętrzny podstawowy plik APK), czy pakietem APKS (w którym czytamy manifest każdego podziału).
Robi to z wiersza poleceń
Jeśli wolisz trasę terminalową, pakiet SDK systemu Android zawiera aapt2, który zrzuca manifest z dowolnego pliku APK w zwykłym formacie XML:
aapt2 dump badging example.apk | grep "uses-permission"
Lub użyj apksigner, aby jednocześnie zweryfikować certyfikat podpisujący:
apksigner verify --print-certs example.apk
Narzędzie przeglądarki robi to samo dla użytkowników, którzy woleliby nie instalować pakietu SDK tylko w celu sprawdzenia pojedynczego pliku.
Często zadawane pytania (FAQ)
Czy mogę odmówić pozwolenia po zainstalowaniu pakietu APK?
Tak. W systemie Android 6.0 i nowszych możesz przejść do Ustawienia > Aplikacje > [Nazwa aplikacji] > Uprawnienia, aby włączyć lub wyłączyć poszczególne niebezpieczne uprawnienia.
Czy pliki XAPK mają różne uprawnienia?
XAPK zawiera jeden lub więcej plików APK. Każdy plik APK w środku ma swój własny manifest. Nasze narzędzie przeanalizuje Główny plik APK w pakiecie, aby wyświetlić odpowiednie uprawnienia.
Dlaczego każda aplikacja pyta o „Dostęp do sieci”?
Prawie wszystkie aplikacje wymagają dostępu do Internetu w celu przeprowadzania analiz, raportowania błędów lub reklam. Chociaż jest to powszechne, jest to również sposób, w jaki skradzione dane są wysyłane na serwer hakera.
Sprawdzanie uprawnień manifestu przed dotknięciem opcji Zainstaluj
Nie możesz osądzać tego, czego nie widzisz. Poświęcenie dziesięciu sekund na wyświetl uprawnienia pliku APK przed załadowaniem bocznym to różnica między wiedzą, do czego aplikacja może dotrzeć, a po prostu nadzieją, że się zachowa. Najpierw przeczytaj listę, a następnie zainstaluj.