APK Yüklemeden Önce Android Uygulama İzinlerini Görüntüleme
Google Play Store'dan bir uygulama yüklediğinizde Android, uygulamanın erişebileceği şeylerin basitleştirilmiş bir özetini gösterir. Bir APK'yı Play dışı bir kaynaktan yükleyin ve bildirimi kendiniz okumadığınız sürece böyle bir güvenlik ağınız olmaz. "Bir duvar kağıdı uygulamasının gerçekten SMS ve mikrofon erişimine ihtiyacı olmalı mı?" tam olarak bu kılavuzun cevaplamanıza yardımcı olacağı türden bir sorudur.
Aşağıda, tanıdık olmayan bir APK'yı tetiklerken ekibimizin kullandığı iş akışının aynısı yer almaktadır: açın, uses-permission girişlerini okuyun, koruma seviyelerinin kodunu çözün ve diyor uygulamasının ihtiyaç duyduğu şeyleri, kategorisinin genellikle gerektirdiği şeylerle karşılaştırın. çevrimiçi APK Bilgisi aracı ürünümüz ikili XML kod çözme işlemini sizin için yapar, böylece tüm süreç yaklaşık on saniye sürer.
Denetim İzinlerini Neden Rahatsız Ediyorsunuz?
Kötü niyetli geliştiriciler popüler ücretsiz uygulamaları alıp bunları değiştiriyor ve üçüncü taraf sitelerde yeniden yayınlıyor. Uygulama normal görünüp çalışsa da, gizli kodu kişi listenizi kopyalıyor veya arka plan sesinizi kaydediyor olabilir. ön kurulum izinlerini görüntüleyerek "izin kayması" ile ilgili bu kırmızı bayrakları görebilirsiniz.
Herhangi Bir APK Dosyası Nasıl Denetlenir (Çevrimiçi)
APK Bilgisi aracı ürünümüz dosyanızın bildirimini tamamen tarayıcınızda okur; dosya hiçbir zaman bir sunucuya yüklenmez ve hiçbir kod yürütülmez. İşte nasıl kullanılacağı:
İşlem:
- APK Bilgi sayfası'ye gidin.
- .apk dosyanızı seçin.
- Analizin bitmesini bekleyin (genellikle 5 saniye).
- İzinler Bölümü'ye doğru aşağı kaydırın.
- READ_SMS, PROCESS_OUTGOING_CALLS veya ACCESS_FINE_LOCATION gibi yüksek riskli işaretlere bakın.
İzin Kırmızı Bayrak Listesi
Bir Hesap Makinesi veya El feneri uygulaması READ_CONTACTS veya RECORD_AUDIO isterse dosyayı hemen silin. Bu uygulamaların bu verilere sahip olmasının hiçbir meşru nedeni yoktur.
Android İzin Düzeylerini Anlama
Tüm izinler eşit şekilde oluşturulmamıştır. Android bunları üç seviyeye ayırır:
- Normal: Gizliliği doğrudan tehdit etmeyen düşük riskli izinler (örn. SET_ALARM). Android bunları otomatik olarak verir.
- Tehlikeli: Yüksek riskli izinler (Kişiler, Konum, Kamera). Bu mutlak, uygulama çalıştırıldığında sizin tarafınızdan onaylanır.
- İmza/Sistem: Son derece yüksek risk. Bunlar yalnızca cihaz üreticisi veya işletim sisteminin kendisi tarafından imzalanan uygulamalar için geçerlidir.
Manuel Yöntem (ZIP Görüntüleyici Kullanarak)
Biraz teknik beceriniz varsa izinleri kendiniz denetleyebilirsiniz:
- app.apk'yi app.zip olarak yeniden adlandırın ve açın.
- AndroidManifest.xml'yi bulun. (Not: İkili biçimdedir ve bir metin düzenleyicide anlamsız gibi görünecektir).
- Okunabilir metne dönüştürmek için AXMLYazıcı gibi bir araç kullanın.
- <uses-permission> ile başlayan etiketleri arayın.
Öneri: Bunu sizin için anında çözen çevrimiçi araç ürünümüzü kullanmak çok daha hızlıdır.
Uygulamalarınızı Şimdi Denetleyin
Uygulamalarınızın tam olarak ne istediğini bilin. Sır yok, risk yok.
APK İzinlerini Kontrol EdinAndroidManifest.xml'de Gerçekte Neler Saklanıyor?
Bildiri, bir uygulamanın beyan ettiği her izin, bileşen ve özellik için gerçeğin kaynağıdır. APK'nın içinde dosya, kaynak kodunda gördüğünüz düz metin değil, ikili XML biçimindedir, dolayısıyla normal bir metin düzenleyiciyle okunamaz. APK Bilgisi aracımız ikili XML'in kodunu çözer ve ilgili etiketleri ortaya çıkarır. En önemlileri şunlardır:
- <uses-permission android:name="..."/>: uygulamanın isteyebileceği her izin. Uygulamanın çalışma zamanında asla kullanamayacağı listeler de dahil olmak üzere tam dolu listesi burada.
- <uses-permission-sdk-23 ... />: aynı, ancak yalnızca uygulama Android 6 veya sonraki sürümlerde çalıştığında istenir. Daha eski cihazlara, sorulmadan sessizce izin verilir.
- <uses-feature android:name="..." android:required="true|false"/>: Uygulamanın kullandığı donanım özellikleri (kamera, GPS, NFC). gerekli olarak işaretlendiğinde Play Store, uygulamayı bu özelliğe sahip olmayan cihazlardan gizler.
- <application android:debuggable="true">: APK sürümünde dev bir kırmızı bayrak. Hata ayıklanabilir bir uygulama, belleğini ve işlem durumunu ADB erişimi olan herkese gösterir. Reddetmek.
- <activity android:exported="true"> hassas etkinliklerde: diğer uygulamaların bu ekranı başlatmasına izin verir. Bir gizlilik uygulaması için bu genellikle özensiz kodlamaya işaret eder.
İzin Koruma Düzeyleri: Hile Sayfası
Android her izne bir "koruma düzeyi" atar. Bir isteğin hangi düzeye ait olduğunu bilmek, işletim sisteminin bu isteği ne kadar ciddiye alacağını gösterir.
| Koruma seviyesi | Kullanıcı deneyimi | Örnekler |
|---|---|---|
| normal | Kurulum sırasında sessizce verilir. İstem yok. | İNTERNET, TİTREŞİM, ACCESS_NETWORK_STATE, WAKE_LOCK |
| tehlikeli | Özellik ilk kez kullanıldığında çalışma zamanı istemi. Ayarlar'da iptal edilebilir. | KAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION |
| imza | Yalnızca, veren uygulama veya işletim sistemiyle aynı sertifikayla imzalanan uygulamalara verilir. | BIND_VPN_SERVICE, INSTALL_PACKAGES (yalnızca sistem) |
| imza|ayrıcalıklı | Yalnızca sistem görüntüsünün priv-app dizinindeki önceden yüklenmiş uygulamalar için kullanılabilir. | MANAGE_USERS, READ_LOGS (yalnızca sistem) |
| uygulama / rol | Etkinleştirmek için ayrı bir Ayarlar akışı gerekir. | SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (özel erişim) |
"Gizli" İzinlerin Gerçekte Anlamı Nedir?
Yaygın bir yanılgı, bazı izinlerin gizli olduğudur. Öyle değiller: Bir uygulamanın kullanabileceği her izin AndroidManifest.xml'de bildirilmelidir ve işletim sistemi burada listelenmeyen herhangi bir izni vermeyi reddeder. İnsanların genellikle "gizli" derken kastettiği şey iki şeyden biridir:
- Normal düzeydeki izinler sessizdir. Herhangi bir kullanıcı etkileşimi olmadan kurulum sırasında verilirler. Play Store özeti bunlardan bazılarını göstermiyor bile. Bunlar, "açıklanmayan" anlamında değil, "gözden kaçması kolay" anlamında "gizlidir".
- Uygulama tanımlı özel izinler. Uygulamaları kendi <permission> etiketlerini bildirebilir ve bunları dahili bileşenlerde gerektirebilir. Bunlar, uygulamalar arası iletişim için mevcuttur ve kendi başlarına bir gizlilik sorunu oluşturmazlar, ancak popüler bir uygulamanın yanlış koruma düzeyine sahip özel bir izin beyan etmesi ve başka bir uygulamanın bunu arka kapı olarak kullanması durumunda bunlar kötüye kullanılabilir.
Her iki durumda da cevap aynı: manifestoyu okuyun, Play Store açıklamasına tek başına güvenmeyin.
Çözümlü Örnek: Gerçek APK'yı Denetleme
İndirilenler klasörünüzde example.apk bulunduğunu varsayalım. İşte tam iş akışı:
- APK Bilgisi aracı'yi tarayıcınızda açın.
- APK'yı yükleme alanına bırakın. İşleme yerel olarak gerçekleşir; dosya cihazınızdan ayrılmıyor.
- İzinler bölümünü okuyun. Her giriş, sabit adı (android.permission.READ_CONTACTS ve neye izin verdiğinin sade dildeki açıklamasını gösterir).
- Listeyi uygulamanın kategorisiyle karşılaştırın. Kabaca şunları bekliyoruz:
- Kamera uygulamaları: KAMERA, RECORD_AUDIO (video için), DEPOLAMA/ORTAM yazma
- Mesajlaşma uygulamaları: İNTERNET, READ_CONTACTS, SEND_SMS (yalnızca SMS tabanlıysa), RECORD_AUDIO (sesli notlar için), KAMERA (fotoğraf göndermek için)
- Oyunlar: INTERNET, bazen RECORD_AUDIO (oyun içi sesli sohbet için), faturalandırmayla ilgili izinler; nadiren başka bir şey
- Yardımcı uygulamalar (hesap makinesi, el feneri, hava durumu): İNTERNET (reklamlar için), ACCESS_NETWORK_STATE, muhtemelen KONUM (yalnızca hava durumu). Bunun ötesindeki her şey şüphelidir.
- Listedeki herhangi bir şey kategoriye uymuyorsa yüklemeyin. Bir hesap makinesinin SMS erişimine ihtiyaç duymasının iyi bir nedeni yoktur.
Aynı mantık, dosyanın bir APK, bir XAPK (burada iç temel APK'yı okuruz) veya bir APKS paketi (burada her bir bölümün bildirimini okuruz) olmasına bakılmaksızın geçerlidir.
Komut Satırından Yapmak
Terminal yolunu tercih ederseniz, Android SDK, herhangi bir APK'dan düz XML biçiminde bir manifesto döken aapt2'yi gönderir:
aapt2 dump badging example.apk | grep "uses-permission"
Veya aynı anda imzalama sertifikasını doğrulamak için apksigner'yi kullanın:
apksigner verify --print-certs example.apk
Tarayıcı aracı, yalnızca tek bir dosyayı incelemek için SDK yüklemeyi tercih etmeyen kullanıcılar için de aynı şeyi yapar.
Sıkça Sorulan Sorular (SSS)
APK yükledikten sonra izni reddedebilir miyim?
Evet. Android 6.0 ve sonraki sürümlerde, bireysel tehlikeli izinleri açmak veya kapatmak için Ayarlar > Uygulamalar > [Uygulama Adı] > İzinler'ye gidebilirsiniz.
XAPK dosyalarının farklı izinleri var mı?
Bir XAPK bir veya daha fazla APK içerir. İçerideki her APK'nın kendi bildirimi vardır. Aracımız size ilgili izinleri göstermek için paket içindeki Ana APK'yi analiz edecektir.
Neden her uygulama "Ağ Erişimi" istiyor?
Hemen hemen tüm uygulamaların analiz, hata raporlama veya reklamlar için internet erişimine ihtiyacı vardır. Yaygın olmasına rağmen, çalınan verilerin bilgisayar korsanının sunucusuna gönderilme şekli de budur.
Yükle'ye Dokunmadan Önce Bildirim İzinlerini İnceleme
Göremediğiniz şeyi yargılayamazsınız. Yan yükleme yapmadan önce APK'nın izinlerini görüntüle'ye on saniye harcamak, bir uygulamanın neye ulaşabileceğini bilmek ile sadece onun düzgün çalışmasını ummak arasındaki farktır. Önce listeyi okuyun ve ikincisini yükleyin.