Vurma

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:

Tam kapatma resmi

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:

Kısmi örtüşme resmi

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 true değerini Window.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