Google, Mart 2019'da Android uygulamalarında SMS ve Arama Günlüğü izinlerinin kullanımını kısıtladığında, bunun olumlu etkilerinden biri de kimlik hırsızlığı uygulamalarının SMS tabanlı iki faktörlü kimlik doğrulama (2FA) mekanizmalarını atlatarak bu izinleri kötüye kullanma seçeneklerini kaybetmeleri şeklinde ortaya çıktı.
Artık Google'ın son kısıtlamalarını ortadan kaldırarak SMS izinlerini kullanmadan 2FA mesajlarındaki tek kullanımlık parolalara (OTP) erişebilen kötü amaçlı uygulamalar keşfettik. Bonus olarak, bu teknik ayrıca bazı e-posta tabanlı 2FA sistemlerinden OTP elde etmek için de çalıştırılabilir.
Uygulamalar, Türk kripto para değişim platformu BtcTurk'ü taklit ederek bu servise giriş yaparken girilen kullanıcı bilgilerini elde etmeye çalışır. Bu kötü amaçlı uygulamalar kullanıcıların hesaplarında ve işlemlerinde 2FA korumasını atlatmak için SMS mesajlarına müdahale etmek yerine, OTP'yi tehlikeye giren cihazın ekranında görünen bildirimlerden almaktadırlar. Uygulamalar 2FA bildirimlerini okumanın yanı sıra, kurbanların sahte işlemlerin gerçekleştiğini fark etmelerini önlemek için bunları da devre dışı da bırakabilirler.
ESET ürünleri tarafından Android/FakeApp .KP olarak algılanan her türlü kötü amaçlı yazılım, yeni SMS yetki kısıtlamalarını atlatmak üzere tespit edilen ilk yazılımlardır.
Kötü amaçlı uygulamalar
Analiz ettiğimiz kötü amaçlı uygulamalardan ilki, 7 Haziran 2019 tarihinde Google Play'e “BTCTurk Pro Beta” ismiyle, “BTCTurk Pro Beta” adlı geliştirici tarafından yüklendi. ESET aracılığıyla Google'ın güvenlik ekiplerine bildirilmeden önce 50'den fazla kullanıcı tarafından yüklendi. BtcTurk bir Türk kripto para birimi borsasıdır; resmi mobil uygulaması borsanın web sitesine bağlıdır ve yalnızca Türkiye'deki kullanıcılar tarafından kullanılabilmektedir.
İkinci uygulama 11 Haziran 2019 tarihinde “BtcTurk Pro Beta” ismiyle, “BtSoft” adlı geliştirici tarafından yüklendi. İki uygulama çok benzer bir kılık değiştirme yöntemi kullansa da, farklı saldırganların işi gibi görünüyorlar. Uygulamayı 12 Haziran 2019'da, henüz 50'den az kullanıcı tarafından yüklendiğinde bildirdik.
Bu ikinci uygulama kaldırıldıktan sonra, aynı saldırganlar bu sefer “BTCTURK PRO” isimli; aynı geliştirici adına, simgesine ve ekran görüntülerine sahip olan, aynı işlevsel özelliklere sahip başka bir uygulama yüklediler. Uygulamayı 13 Haziran 2019 tarihinde bildirdik.
Şekil 1, Google Play'de görülen ilk iki kötü amaçlı uygulamayı göstermektedir.
Yeni 2FA devre dışı bırakma tekniği
Kurulumdan sonra, önceki bölümde açıklanan her iki uygulama da benzer bir yöntem takip eder. Blog paylaşımının bu bölümünde, ilk uygulama olan "BTCTurk Pro Beta"yı örnek olarak kullanarak yeni 2FA devre dışı bırakma tekniğini açıklayacağız.
Uygulama başlatıldıktan sonra, Şekil 2'de gösterildiği gibi Bildirim erişimi adı altında bir izin ister. Bu izin, uygulamanın cihazda yüklü olan diğer uygulamalar tarafından görüntülenen bildirimleri okumasına, bu bildirimleri devre dışı bırakmasına veya içerdikleri seçeneklerin tıklanmasına olanak tanır.
Bildirim erişimi yetkisi, Android 4.3 sürümünde (Jelly Bean) tanıtıldı; yani neredeyse tüm aktif Android cihazlar bu yeni tekniğe duyarlıdır. Her iki sahte BtcTurk uygulaması da çalışabilmek için Android 5.0 (KitKat) sürümü veya daha üst bir versiyon gerektirmektedir; bu nedenle Android cihazların yaklaşık %90'ını etkileyebilirler.
Kullanıcı bu yetkiyi verdikten sonra, uygulama Şekil 3'te gösterildiği gibi BtcTurk için kullanıcı bilgilerini isteyen sahte bir oturum açma formu görüntüler.
Kullanıcı bilgileri girildikten sonra Şekil 4'te görüldüğü gibi Türkçe'de sahte bir hata mesajı görüntülenir. Mesajın İngilizce çevirisi şöyle: “Opss! SMS Doğrulama sisteminde yapılan değişiklik nedeniyle, geçici olarak mobil uygulamamıza hizmet veremiyoruz. Bakım çalışmaları tamamlandıktan sonra, uygulama aracılığıyla bilgilendirileceksiniz. Anlayışınız için teşekkürler.”
Arka planda, girilen kullanıcı bilgileri saldırganın sunucusuna gönderilir.
Bildirim erişimi izni sayesinde kötü amaçlı uygulama, SMS ve e-posta uygulamaları da dahil olmak üzere diğer uygulamalardan gelen bildirimleri okuyabilir. Uygulama içerisinde, Şekil 5'te görüldüğü gibi yalnızca isimleri “gm, yandex, mail, k9, outlook, sms, messaging” anahtar kelimelerini içeren uygulamalardan gelen bildirimleri hedeflemek üzere belirlenmiş filtreler vardır.
Hedeflenen uygulamalardan gelen tüm bildirimlerin görüntülenen içerikleri saldırganın sunucusuna gönderilir. Kurbanın kilitlenmiş ekrandaki bildirimleri görüntülemek için kullandığı ayarlara bakılmaksızın saldırganlar tarafından içeriğe erişilebilir. Bu uygulamanın arkasındaki saldırganlar, gelen bildirimleri de reddedebilir ve cihazın zil modunu sessiz olarak ayarlayabilir; bu da kurbanların sahte işlemlerin gerçekleştiğini fark etmelerini önleyebilir.
2FA katmanını atlatmanın etkinliğine gelindiğinde, tekniğin bazı sınırlamaları ortaya çıkmaktadır; saldırganlar yalnızca bildirimin metin alanına sığan bir metne erişebilir ve bu nedenle ilgili alanın OTP'yi içereceği garanti edilemez. Hedeflenen uygulama adları, hem SMS hem de e-posta üzerinden alınan 2FA parolalarının bu kötü amaçlı yazılımın arkasındaki saldırganların ilgisini çekeceğini gösteriyor. SMS yoluyla 2FA yapıldığında, iletiler genellikle kısadır ve OTP'lerin bildirim iletisine sığması muhtemeldir. Ancak, e-posta yoluyla 2FA doğrulaması gerçekleştiğinde, ileti uzunluğu ve biçimi çok daha çeşitlidir; bu da saldırganın OTP'ye erişimini etkileyebilir.
Hızlı gelişen bir teknik
Daha geçen hafta, Türk kripto para borsası Koineks'i taklit eden kötü amaçlı bir uygulamayı analiz ettik (@DjoNn35'u bu uygulamayı dikkatimize sunduğu için tebrik ediyoruz). Sahte Koineks uygulamasının SMS ve e-posta tabanlı 2FA'yı atlatmak için aynı kötü amaçlı tekniği kullanması ilginç olmakla birlikte, bildirimleri reddetme ve susturma yeteneğinden yoksundur.
İncelemelerimize göre bu uygulama, blog paylaşımında da analiz edilen “BTCTurk Pro Beta” uygulamasıını da geliştiren aynı saldırgan tarafından oluşturuldu. Bu, saldırganların SMS mesajlarını çalmak için “sonraki en iyi” sonuçları elde etmek adına şu anda bu tekniği geliştirmek üzere çalıştıklarını ortaya koymaktadır.
Nasıl güvende kalınır?
Bu kötü amaçlı uygulamalardan birini yüklediğinizden ve kullandığınızdan şüpheleniyorsanız, hemen kaldırmanızı öneririz. Hesaplarınızda şüpheli etkinlik olup olmadığını kontrol edin ve parolalarınızı değiştirin.
Geçen ay, Google Play'de yeni bir kripto para birimi zararlı yazılım dalgasına neden olan bitcoin'in artan fiyatı hakkında uyarıda bulunmuştuk. Bu son bulgu, dolandırıcıların henüz gelişmeden önce kazanç sağlama şanslarını artırmak için aktif olarak güvenlik önlemlerini atlatma ya yönelik yöntemler aradıklarını göstermektedir.
Bu yeni teknikten ve genel olarak zararlı finansal Android yazılımlarından korunmak için:
- Hizmetin resmi web sitesiyle bağlantılıysa, yalnızca kripto para birimi ile ilgili olan uygulamalara ve diğer finans uygulamalarına güvenin
- Hassas bilgilerinizi yalnızca güvenliğinden ve meşruluğundan emin olduğunuz çevrimiçi formlarda paylaşın
- Cihazınızı güncel tutun
- Tehditleri engellemek ve kaldırmak için güvenilir bir mobil güvenlik çözümü kullanın; ESET sistemleri bu kötü amaçlı uygulamaları Android/FakeApp .KP olarak algılar ve engeller
- Mümkün olduğunda, SMS veya e-posta yerine yazılım veya donanım tabanlı tek kullanımlık parola (OTP) üreten çözümler kullanın
- Yalnızca güvenilir olduğunu düşündüğünüz uygulamaları kullanın ve o zaman bile Bildirim erişimine yalnızca geçerli bir nedeni olan kişilerin ulaşmasına izin verin
Indicators of Compromise (IoCs)
Package name | Hash |
btcturk.pro.beta | 8C93CF8859E3ED350B7C8722E4A8F9A3 |
com.app.btsoft.app | 843368F274898B9EF9CD3E952EEB16C4 |
com.app.elipticsoft.app | 336CE9CDF788228A71A3757558FAA012 |
com.koinks.mobilpro | 4C0B9A665A5A1F5DCCB67CC7EC18DA54 |
MITRE ATT&CK techniques
Tactic | ID | Name | Description |
Initial Access | T1475 | Deliver Malicious App via Authorized App Store | The malware impersonates legitimate services on Google Play. |
Credential Access | T1411 | User Interface Spoofing | The malware displays phishing activity and requests users to log in. |