Vurma

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:

Tam tıkanma görüntüsü

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:

Kısmi tıkanma görüntüsü

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