OWASP kategorisi: MASVS-PLATFORM: Platform Interaction (Platform Etkileşimi)
Genel Bakış
Tapjacking, 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şımıyla veya başka yollarla gizleyerek kullanıcıyı güvenlikle ilgili bir kontrolü (ör. onay düğmesi) tıklamaya ikna eder. Bu sayfada, iki saldırı varyantı arasında ayrım yapıyoruz: Tam ve kısmi kapatma. Tam kapatma saldırısında saldırgan, dokunma alanını kaplarken kısmi kapatma saldırısında dokunma alanı görünür kalır.
Etki
Tapjacking saldırıları, kullanıcıları belirli işlemleri yapmaya ikna etmek için kullanılır. Etki, saldırganın hedeflediği işleme bağlıdır.
Risk: Tam tıkanma
Tam kapatma durumunda saldırgan, dokunma etkinliğini ele geçirmek için dokunma alanını kaplar:
Risk azaltma önlemleri
Tam kapatma, koddaki View.setFilterTouchesWhenObscured(true)
ayarıyla önlenir. Bu ayar, yer paylaşımı tarafından iletilen dokunmaları engeller. Bildirim temelli bir yaklaşımı tercih ederseniz korumak istediğiniz View
nesnesinin düzen dosyasına android:filterTouchesWhenObscured="true"
de ekleyebilirsiniz.
Risk: Kısmi tıkanma
Kısmi kapatma saldırılarında dokunma alanı kapatılmaz:
Risk azaltma önlemleri
FLAG_WINDOW_IS_PARTIALLY_OBSCURED
işaretine sahip dokunma etkinliklerini manuel olarak yoksayarak kısmi tıkanmayı azaltabilirsiniz. Bu senaryoya karşı varsayılan koruma yoktur.
Android 16 ve accessibilityDataSensitive
: Android 16 (API düzeyi 16) ve sonraki sürümlerde geliştiriciler, hassas verileri meşru erişilebilirlik araçları olmayan kötü amaçlı erişilebilirlik hizmetlerinden daha iyi korumak için accessibilityDataSensitive
işaretini kullanabilir. Bu işaret hassas görünümlerde (ör. giriş ekranları, işlem onay ekranları) ayarlandığında, erişilebilirlik izni olan uygulamaların manifest dosyalarında isA11yTool=true
olarak beyan edilmedikleri sürece hassas verileri okumasını veya bu verilerle etkileşimde bulunmasını kısıtlar. Bu, kısmi tıkanma senaryolarının karakteristik özelliği olan dinleme ve tıklama yerleştirme saldırılarına karşı daha güçlü ve sistem düzeyinde koruma sağlar.
Geliştiriciler, düzen dosyalarında android:filterTouchesWhenObscured="true"
belirterek accessibilityDataSensitive
'ı genellikle dolaylı olarak etkinleştirebilir.
Belirli riskler
Bu bölümde, standart dışı azaltma stratejileri gerektiren veya belirli bir SDK düzeyinde azaltılmış olan ve eksiksiz olması için buraya eklenen riskler yer almaktadır.
Risk: android.Manifest.permission.SYSTEM_ALERT_WINDOW
SYSTEM_ALERT_WINDOW
izni, bir uygulamanın tüm uygulamaların üzerinde gösterilen bir pencere oluşturmasına olanak tanır.
Risk azaltma önlemleri
Android'in yeni sürümlerinde aşağıdakiler de dahil olmak üzere çeşitli çözümler sunulmuştur:
- Android 6 (API düzeyi 23) ve sonraki sürümlerde kullanıcıların, uygulamanın yer paylaşımı penceresi oluşturması için açıkça izin vermesi gerekir.
- Android 12 (API düzeyi 31) ve sonraki sürümlerde uygulamalar,
true
değeriniWindow.setHideOverlayWindows()
içine iletebilir.
Risk: Özel durum mesajı
Saldırganlar, Toast.setView()
kullanarak toast mesajının görünümünü özelleştirebilir. Android 10 (API düzeyi 29) ve önceki sürümlerde kötü amaçlı uygulamalar, bu tür kısa mesajları arka planda başlatabiliyordu.
Risk azaltma önlemleri
Android 11'i (API düzeyi 30) veya sonraki sürümleri hedefleyen uygulamalarda sistem, arka planda özel toast mesajlarının gösterilmesini engeller. Ancak bu azaltma, bazı durumlarda Toast burst kullanılarak atlatılabilir. Bu durumda saldırgan, ön plandayken birden fazla toast mesajı sıraya alır ve uygulama arka plana geçtikten sonra bile bu mesajlar başlatılmaya devam eder.
Arka planda gösterilen kısa mesajlar ve kısa mesaj patlaması saldırıları, Android 12'den (API düzeyi 31) itibaren tamamen azaltılmıştır.
Risk: Etkinlik sandviçi
Kötü amaçlı bir uygulama, kullanıcıyı uygulamayı açmaya ikna etmeyi başarırsa mağdur uygulamanın etkinliğini başlatabilir ve ardından kendi etkinliğiyle bu etkinliğin üzerine yerleşerek etkinlik sandviçi oluşturup kısmi kapatma saldırısı gerçekleştirebilir.
Risk azaltma önlemleri
Kısmi tıkanma 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
Sizin için önerilenler
- Not: Bağlantı metni, JavaScript kapalıyken gösterilir.
- android:exported
- # Anahtar yönetimi {:#key-management}
- Yerleştirilmiş DEX kodunu doğrudan APK'dan çalıştırma