OWASP kategorisi: MASVS-PLATFORM: Platform Etkileşimi
Genel Bakış
Dokunma hırsızlığı, tıklama hırsızlığı web güvenlik açığının Android uygulamalarındaki karşılığıdır: Kötü amaçlı bir uygulama, kullanıcı arayüzünü bir yer paylaşımlı reklamla veya başka yöntemlerle gizleyerek kullanıcıyı güvenlikle ilgili bir denetimi (onay düğmesi vb.) tıklaması için kandırır. Bu sayfada iki saldırı varyantını ayırt ediyoruz: Tam ve kısmi kapatma. Tam örtmede saldırgan, dokunma alanını kaplar. Kısmi örtmede ise dokunma alanı açık kalır.
Etki
Dokunma hırsızlığı saldırıları, kullanıcıları belirli işlemleri yapmaları için kandırmak amacıyla kullanılır. Etki, saldırganın hedeflediği işleme bağlıdır.
Risk: Tam tıkanma
Tam kapatmada saldırgan, dokunma etkinliğini ele geçirmek için dokunma alanını kaplar:

Azaltma
Kodda View.setFilterTouchesWhenObscured(true) ayarlanarak tam örtme önlenir. Bu işlem, bir yer paylaşımı tarafından iletilen dokunmaları engeller. Bildirimli bir yaklaşımı tercih ediyorsanız korumak istediğiniz View nesnesinin düzen dosyasına android:filterTouchesWhenObscured="true" da ekleyebilirsiniz.
Risk: Kısmi tıkanma
Kısmi kapatma saldırılarında dokunma alanı görünür kalır:

Azaltma
FLAG_WINDOW_IS_PARTIALLY_OBSCURED işaretine sahip dokunma etkinliklerini manuel olarak yok sayarak kısmi engellemeyi azaltabilirsiniz. Bu senaryoya karşı varsayılan
koruma yoktur.
Android 14 ve accessibilityDataSensitive: Android 14 (API düzeyi 34) ve sonraki sürümlerde, hassas verileri kötü amaçlı erişilebilirlik hizmetlerinden korumak için accessibilityDataSensitive işaretini kullanabilirsiniz. Bu işareti giriş veya işlem onay ekranları gibi hassas görünümlerde ayarladığınızda, yalnızca android:isAccessibilityTool="true" beyan eden hizmetler görünümün verilerini okuyabilir veya görünümde erişilebilirlik işlemleri gerçekleştirebilir. Android 16 (API düzeyi 36) ve sonraki sürümlerde accessibilityDataSensitive, android:isAccessibilityTool="true" beyan etmeyen hizmetler tarafından AccessibilityService.dispatchGesture ile eklenen simüle edilmiş dokunma hareketlerini de engeller. Bu sayede, kısmi engelleme senaryolarında görülen gizlice dinleme ve kod enjeksiyon saldırılarına karşı sistem düzeyinde koruma sağlanır. Düzen dosyalarınızda android:filterTouchesWhenObscured="true" değerini belirterek accessibilityDataSensitive özelliğini dolaylı olarak etkinleştirebilirsiniz.
Belirli riskler
Bu bölümde, standart dışı risk azaltma stratejileri gerektiren veya belirli bir SDK düzeyinde azaltılan ve eksiksiz olması için burada yer alan riskler toplanmıştır.
Risk: android.Manifest.permission.SYSTEM_ALERT_WINDOW
SYSTEM_ALERT_WINDOW izni, uygulamaların tüm uygulamaların üzerinde gösterilen bir pencere oluşturmasına olanak tanır.
Azaltma
Android'in daha yeni sürümlerinde aşağıdakiler de dahil olmak üzere çeşitli risk azaltma önlemleri sunulmuştur:
- Android 6 (API düzeyi 23) ve sonraki sürümlerde kullanıcıların, uygulamanın yer paylaşımlı pencere oluşturması için açıkça izin vermesi gerekir.
- Android 12 (API düzeyi 31) ve daha yeni sürümlerde uygulamalar
truedeğeriniWindow.setHideOverlayWindows()yöntemine iletebilir.
Risk: Özel toast mesajı
Saldırganlar, toast mesajının görünümünü özelleştirmek için Toast.setView() kullanabilir. Android 10 (API düzeyi 29) ve önceki sürümlerde kötü amaçlı uygulamalar arka planda bu tür kısa süreli mesajlar başlatabiliyordu.
Azaltma
Bir uygulama Android 11 (API düzeyi 30) veya sonraki sürümleri hedefliyorsa sistem, arka plandaki özel kısa süreli mesajları engeller. Ancak bu önlem, saldırganın ön plandayken birden fazla toast'u sıraya koyduğu ve uygulama arka plana geçtikten sonra bile başlatılmaya devam ettiği toast patlaması kullanılarak bazı durumlarda atlatılabilir.
Arka plan toast'ları ve toast saldırıları, Android 12 (API düzeyi 31) itibarıyla tamamen engellenmiştir.
Risk: Etkinlik sandviçi
Kötü amaçlı bir uygulama, kullanıcıyı kendisini açmaya ikna etmeyi başarırsa mağdur uygulamadan bir etkinlik başlatabilir ve ardından bu etkinliği kendi etkinliğiyle kaplayarak etkinlik sandviçi oluşturabilir ve kısmi kapatma saldırısı gerçekleştirebilir.
Azaltma
Kısmi örtme için genel azaltma yöntemlerine bakın. Derinlemesine savunma için, saldırganların araya girmesini önlemek amacıyla dışa aktarılması gerekmeyen etkinlikleri dışa aktarmadığınızdan emin olun.
Kaynaklar
Google Play Store hedef API düzeyi politikası değişiklikleri
Kullanıcı arayüzü giydirme ve erişilebilirlik hizmeti tabanlı Android saldırıları
Sizin için önerilenler
- Not: JavaScript devre dışı bırakıldığında bağlantı metni gösterilir.
- android:exported
- # Anahtar yönetimi {:#key-management}
- Yerleşik DEX kodunu doğrudan APK'dan çalıştırma