StrandHogg 2.0 İstismarının Açıklaması

StrandHogg 2.0 tehlikeli yeni bir Android güvenlik açığıdır. Bu durumun kullanıcıları nasıl etkileyebileceği ve geliştiricilerin uygulamalarını buna karşı nasıl koruyabilecekleri aşağıda açıklanmıştır.

Saat 22.00. Faaliyetlerinizin nerede olduğunu biliyor musunuz? Milyonlarca Android cihazda kullanılabilecek yeni bir güvenlik açığı var ve bu oldukça kötü bir güvenlik açığı. Özetle, bu tasarım kusuru, bir saldırganın kendi Etkinliğini (sayfasını) başka bir uygulamanın üzerinde sunmasına olanak tanır ve potansiyel olarak kullanıcının özel verilerini paylaşarak kafasını karıştırabilir. Güvenlik açığı StrandHogg 2.0 olarak adlandırıldı ve yakın zamanda açıklandı. PromosyonNorveçli bir güvenlik firması.

StrandHogg 2.0 güvenlik açığı teorik olarak Honeycomb (3.0) kadar eski ve Android 9 Pie (9.0)'a kadar olan Android sürümlerini çalıştıran tüm Android cihazlarını etkiliyor. Göre en son Android sürümü dağıtım istatistikleri, bu şu demek oluyor Tüm Android cihazların yaklaşık %91,8'i StrandHogg 2.0'a karşı savunmasızdır

. Güvenlik açığı atandı CVE-2020-0096 ve bir verildi ciddiyet düzeyi "kritik"tir. Çalışmak için herhangi bir özel izin gerektirmez ve neredeyse tamamen kullanıcı etkileşimi olmadan çalışabilir. Kullanıcının tek yapması gereken, içinde kötü amaçlı kod gizlenmiş bir uygulamayı açmaktır ve ardından istismara açık hale gelir.

Promon bize konsept uygulamasının kanıtını ve kaynak kodunu gönderme nezaketini gösterdi, böylece en iyisini yapabiliriz. Bu açıktan yararlanmanın nasıl çalıştığını, kullanıcılar için neden önemli olduğunu ve geliştiricilerin uygulamalarını nasıl koruyabileceğini açıklayın Buna karşı.


Nasıl çalışır

Gmail kullandığınızı ve bir web bağlantısını tıkladığınızı varsayalım. Son uygulamalar ekranınıza giderseniz, web sayfasının Gmail'in "içinde" göründüğünü fark edebilirsiniz. Önizleme web sitesini gösteriyor ancak uygulama simgesi ve adı hâlâ Gmail'den. Bu, bir uygulama/Etkinlik aynı görevde başka bir uygulamayı/Etkinlik başlattığında meydana gelen bir şeydir. Şimdi bu bağlantıyı bilerek açmadığınızı hayal edin. Size göre bu sadece Gmail uygulamasının bir parçası gibi görünüyor. Bu, StrandHogg 2.0'ın istismar ettiği davranıştır.

Burada bazı ayrıntıları atlamamız gerekecek, ancak bu istismarın kabaca nasıl çalıştığı aşağıda açıklanmıştır. Aşağıdakiler için saldırganın kullanıcının Gmail giriş bilgilerini almak istediğini varsayalım.

  1. Kullanıcı kötü amaçlı bir uygulamayı indirir (elbette kötü amaçlı olduğunu bilmeden) ve onu açar.
  2. Arka planda uygulama Gmail'i açar, bunun üzerine benzer bir giriş Etkinliği koyar ve ardından başka bir Etkinlik başlatır.
  3. Kullanıcı Gmail'i açar ve Gmail'in giriş ekranına benzeyen ancak aslında saldırganın kimlik avı Etkinliği olan bir şey görür.

2. adımda başlatılan son Faaliyet şüpheyi ortadan kaldıracak herhangi bir şey olabilir. Uygulama bir kilitlenme taklidi yaparak ana ekrana dönebilir veya sanki hiçbir şey olmamış gibi ana Faaliyetine açılabilir. Kullanıcının görebileceği tek şüpheli şey, tüm Etkinlikler başlatılırken bir dizi açılış animasyonudur. En kötü yanı: Gmail açılmış gibi bile görünmeyecek.

Kaynak: Promon

Elbette bir saldırgan sahte bir giriş ekranı göstermekten daha fazlasını yapabilir. Kötü amaçlı bir uygulama bunun yerine bir izin istemi sunarak kullanıcıyı istenmeyen izinler vermesi için kandırabilir. Erişilebilirlik gibi herhangi bir özel izin istemek kullanıcıyı şüphelendirebilirken, Depolama Erişimi gibi bir şeyin çok fazla zarar vermesi mümkündür.


Teknik Parçalar

Bu sonraki bölüm StrandHogg 2.0'ın nasıl çalıştığına dair üst düzey bir genel bakıştır. Promon birkaç ay daha tüm ayrıntıları yayınlamayacak, dolayısıyla bu istismarın nasıl uygulandığını tam olarak paylaşamıyoruz. Ancak konuşabileceğimiz bazı teknik detaylar var.

Özetle, StrandHogg 2.0 Android'leri ele geçiriyor Context.startActivities() Üç Amaç kullanan API yöntemi.

  • İlk Amaç, örneğimizde Gmail'i başlatan amaçtır. Şununla işaretlendi: Intent.FLAG_ACTIVITY_NEW_TASK.
  • İkinci niyet ise kötü niyetli olandır. Örneğimizde, benzer oturum açma Etkinliği içindir. Bu Niyet'te bayrak yok.
  • Üçüncü Niyet dikkatin dağılmasıdır. Kullanıcının, dokunduğu uygulama (yani saldırıyı başlatan uygulama) yerine Gmail'in rastgele açılmasından şüphelenmemesini sağlar. Şununla işaretlendi: Intent.FLAG_ACTIVITY_NEW_TASK.

Bu Niyetlerin tümü daha sonra bir dizide startActivities() yöntem.

İkinci Niyet'in bayrak eksikliği buradaki anahtardır. Bunu yaparak, temel olarak Gmail örneğini yukarıdan kopyaladık. Görev teknik olarak Gmail'e aittir, ancak en üstteki Etkinlik saldırganındır. Kullanıcı daha sonra Gmail'in ana ekran simgesini tıkladığında, Gmail'inki yerine saldırganın Etkinliği görüntülenir.


Kavramın ispatı

Promon'un bize gönderdiği bilgilerle onların kavram kanıtlarını kopyalamayı başardık. İşte Android 9 Pie çalıştıran Samsung Galaxy Note8'in çalışırken gösteren bir ekran kaydı.


Azaltma Teknikleri ve Sorunlar

Şimdi, yukarıdakileri kodda kopyalamak aslında işe yaramayacaktır. Bu tam bir örnek değil ve bir saldırganın bunu gerçekleştirmek için yapması gereken ve paylaşamayacağımız birkaç şey daha var. Ancak bunları kendi başınıza tahmin etmek pek de zor değil ve bu saldırıyı bu kadar tehlikeli kılan şeylerden biri de bu. StrandHogg 2.0'ın uygulanması nispeten kolay, ancak hafifletilmesi zor bir istismardır.

Azaltma, yalnızca aşağıdakileri kullanan tüm uygulamaların kara listeye alınmasını içeremez: startActivities(), çünkü bunun pek çok meşru kullanımı var. Bunun için bir tespit algoritmasını otomatikleştirmek de gerçekten zordur. Kötü niyetli geliştiriciler, StrandHogg 2.0 uygulamalarını Google Play Koruma gibi hizmetlere karşı etkili bir şekilde görünmez hale getirmek için her türlü hileyi kullanabilirler. StrandHogg 1.0, saldırganın kötü amaçlı uygulamanın AndroidManifest.xml dosyasına tespit edilmesi nispeten kolay bir özellik eklemesini gerektiriyordu. StrandHogg 2.0 ise tamamen Java/Kotlin'de çalışıyor.

Gizleme, yansıma ve hatta sadece farklı kodlama stilleri dikkate alındığında, bu istismardan yararlanan bir uygulamayı otomatik olarak doğru bir şekilde tespit etmek pratik görünmüyor. Dahası, eğer bir kullanıcı StrandHogg 2.0 saldırısına maruz kalırsa bundan haberi bile olmayabilir. Gmail'i açtığınızda giriş ekranını görürseniz, oturumunuzun süresinin dolduğunu düşünebilir ve hiç düşünmeden giriş bilgilerinizi girebilirsiniz.

Yanıt almak için Google ile iletişime geçtiğimizde bir sözcü şu açıklamayı yaptı:

"Araştırmacıların çalışmalarını takdir ediyoruz ve belirledikleri soruna yönelik bir düzeltme yayınladık. Ayrıca Google Play Koruma, bu tekniği kullananlar da dahil olmak üzere kötü amaçlı uygulamaları tespit edip engelliyor."

Bu kulağa hoş geliyor ve umarım StrandHogg 2.0 saldırılarına karşı en azından bir miktar etkisi olur. Ancak şunu belirtmekte fayda var ki Google Play Koruma yapmadım Manüel bir tarama gerçekleştirdikten sonra bile kavram kanıtı uygulamamızın kötü amaçlı olduğunu tespit edin.

Promon diyor ki "StrandHogg 2.0 güvenlik açığını kullanan gerçek hayattaki herhangi bir kötü amaçlı yazılımı gözlemlemedim," ancak bunun istismarın ilk kez keşfedildiğinin garantisi yok. Bu nedenle Promon, geliştiricilerin başlatıcı Etkinliklerini ayarlayarak uygulamalarını korumalarını öneriyor. launchMode ikisinden birine işaretle singleTask veya singleInstance. Bu işaretlerden herhangi biri, StrandHogg 2.0'ın dayandığı görev enjeksiyonunu önleyecektir. Ancak Activity'nizin bu işaretlerden birini kullanması belirli uygulama akışlarında sorunlara neden olabilir, dolayısıyla bu her zaman arzu edilen bir durum değildir.

Promon aynı zamanda bir kütüphaneye benzeyen kendi "Promon SHIELD ile Uygulama İçi Koruma" ürününü de tanıtıyor uygulama geliştiricilerinin, düzensizlikleri kontrol etmek amacıyla uygulama sürecinizdeki görevleri izlemek için uygulayabilecekleri eklemeler. Gerçekten etkili bir geliştirici veya kullanıcı azaltma stratejisi olmadığından, üreticilerin bu durumu en kısa sürede düzeltmek için yamayı uygulaması oldukça önemlidir.

Neyse ki Promon, bu istismarı kamuya duyurmadan önce sorumlu açıklama yönergelerini izledi (ve hala tam olarak kamuya açıklanmadı—Promon, StrandHogg 2.0'ın nasıl çalıştığını tam olarak açıklamadan önce 90 gün bekliyor. İşler). Google o zamandan beri bu istismara yönelik yamaları Android 8.0 Oreo, Android 8.1 Oreo ve Android 9 Pie'a destekledi. Mayıs 2020 Android Güvenlik Yaması Düzeyi (SPL). Android 10 ve sonraki sürümleri kullanan kullanıcılar bu saldırıya açık değil ancak durumun neden böyle olduğundan tam olarak emin değiliz. Muhtemelen Android 10'un Etkinliklerin başlatılmasıyla ilgili yeni kısıtlamaları ve Google'ın bunu görev yığınına nasıl entegre ettiği ile bir ilgisi var. Promon, "Android 10'da saldırının tamamen etkisiz olduğunu ve faaliyetlerin, farklı görevlere ve farklı görev yığınlarına göre bölündüğünü" söylüyor. adb shell dumpsys activity activities."

Cihaz üreticiniz hâlâ güvenlik güncellemeleri sağlıyorsa (hakkında daha fazla bilgi edinebilirsiniz) burada güvenlik yaması süreci nasıl işliyor?), mümkün olan en kısa sürede güncelleme için onları rahatsız etmelisiniz. Aksi takdirde, hangi uygulamaları indirip çalıştırdığınız konusunda dikkatli olmanız gerekir (yine de bunu yapmanız gerekir).

Daha fazla ayrıntı ve StrandHogg 2.0'ın kullanım durumları için şuraya göz atın: Promon'un web sitesinde resmi duyuru. Özel ROM geliştiricileri için, StrandHogg 2.0 saldırılarını önlemeye yönelik ilgili AOSP taahhütlerini bulabilirsiniz. Burada Ve Burada.


Açıklama Zaman Çizelgesi

Promon'un StandHogg 2.0 belgesinde paylaştığı açıklama zaman çizelgesi şöyle:

  • 4 Aralık 2019 – Sorun Google’a bildirildi
  • 4 Aralık 2019 – Google ile bir PoC "kötü amaçlı uygulama" ve video paylaştı
  • 4 Aralık 2019 – Google raporu aldığını doğruladı
  • 9 Aralık 2019 – Google bulgunun ciddiyetini «Kritik» olarak belirledi
  • 9 Aralık 2019 – Google, sorunu yeniden oluşturabileceklerini doğrular
  • 14 Şubat 2020 – Google’a Mart ayının başında 90 günlük açıklamanın yaklaştığını bildiriyoruz ve kendilerinden durumu soruyoruz
  • 14 Şubat 2020 – Google, bir düzeltmeyi yayınlayabilecekleri en erken yılın Nisan ayı olduğunu söyledi
  • 14 Şubat 2020 – Azaltmalar üzerinde çalıştığımızı Google'a bildiririz
  • 14 Şubat 2020 – Google yanıt verir. İyileştirmeler üzerinde çalışıyorlar ve hangi hafifletici önlemleri önerdiğimizi paylaşıp paylaşamayacağımızı soruyorlar
  • 17 Şubat 2020 – Açıklamayı Nisan ayına kadar erteleyebileceğimizi Google'a bildiririz. CVE numarasını istiyoruz
  • 17 Şubat 2020 – Azaltma stratejilerimizi ve platformda nasıl bir hafifletme öngördüğümüzü paylaşıyoruz
  • 23 Mart 2020 – Google, CVE Kimliğiyle yanıt verir (CVE-2020-0096)
  • 23 Mart 2020 – Google, düzeltmenin Mayıs ayında Android için genel kullanıma sunulacağını bildirdi
  • 23 Mart 2020 – Google, açıklamayı Mayıs ayına ertelemeyi düşünüp düşünmeyeceğimizi soruyor
  • 27 Mart 2020 – Açıklamayı mayıs ayına kadar erteleyeceğimizi yanıtlıyoruz
  • 22 Nis 2020 – Google, Mayıs Güvenlik Bülteni'nin bu güvenlik açığına yönelik bir yama içermesinin planlandığını bize bildirdi