OWASP kategorisi: MASVS-PLATFORM: Platform Etkileşimi
Genel Bakış
StrandHogg saldırısı/Görev Bağlantısı güvenlik açığı, Android'in birden fazla görevi ele alma biçiminde, özellikle de görev yeniden ebeveynlendirme özelliğinde bir tasarım hatasından kaynaklanıyordu. Uygulama görevi yeniden ebeveynleştirme, bir uygulamanın bir etkinliği bir görevden diğerine taşımasını sağlayan bir özelliktir.
StrandHogg saldırısı, gelen uygulama görev yığını etkinliklerinin nasıl kontrol edileceği konusundaki belirsizlikten yararlanır ve kötü amaçlı bir uygulamanın aşağıdakilerden birini yapmasına olanak tanır:
- Kötü amaçlı bir etkinliği mağdur yığınına veya yığından taşıma
- Kötü amaçlı etkinliği, kurban etkinliği tamamlandıktan sonra dönüş yığını olarak ayarlama
Bu güvenlik açığından allowTaskReparenting
ve taskAffinity
ayarlarıyla oynanarak yararlanılır.
Etki
Kötü amaçlı bir uygulama, etkinliklerinden birinin taskAffinity özelliğini hedef uygulamanın packageName özelliğiyle eşleşecek şekilde ayarlayabilir. Bu işlem, kullanıcı tarafından hedef uygulama bir sonraki sefer başlatıldığında kötü amaçlı uygulamanın da başlatılıp hedef uygulamanın üzerinde gösterilmesi için intent hijacking ile birlikte kullanılabilir.
Görev Yakınlığı güvenlik açığı, daha sonra meşru kullanıcı işlemlerini ele geçirmek için kullanılabilir.
Kullanıcı, kötü amaçlı bir uygulamaya kimlik bilgileri vermesi için kandırılabilir. Varsayılan olarak, bir etkinlik başladıktan ve bir görevle ilişkilendirildikten sonra bu ilişkilendirme, etkinliğin tüm yaşam döngüsü boyunca devam eder. Ancak allowTaskReparenting ayarını doğru olarak ayarlamak bu kısıtlamayı ihlal ederek mevcut bir etkinliğin yeni oluşturulan bir "yerel" göreve yeniden atanmasına olanak tanır.
Örneğin, A uygulaması, B uygulaması tarafından hedeflenebilir. Bu durumda, A uygulamasının tamamlanan etkinliğinden döndükten sonra A uygulaması etkinlikleri bir B uygulaması etkinlik grubuna yönlendirilir. Bir uygulamadan diğerine geçiş, kullanıcıdan gizlenir ve önemli bir kimlik avı tehdidi oluşturur.
Çözümler
android:minSdkVersion="30"
olarak güncellendi.
StrandHogg saldırısı / Görev yakınlığı güvenlik açığı ilk olarak Mart 2019'da, daha yeni ve daha kapsamlı bir varyantı ise Eylül 2020'de düzeltildi. Android SDK'sının 30 ve sonraki sürümleri (Android 11), bu güvenlik açığını önlemek için uygun işletim sistemi yamalarını içerir. StrandHogg saldırısının 1. sürümünü bağımsız uygulama yapılandırması aracılığıyla kısmen azaltmak mümkün olsa da saldırının 2. sürümünü yalnızca bu SDK sürümü yaması ile önleyebilirsiniz.
Kaynaklar
- Usenix 15'te güvenlik açığını açıklayan orijinal akademik makale{.external}
- Promon Security grubu tarafından orijinal güvenlik açığının genişletilmesi{.external}
- android:allowTaskReparenting için Android geliştirici dokümanları
- android:taskAffinity için Android geliştirici belgeleri
- android:allowTaskReparenting uygulama öğesi için Android geliştirici dokümanları