BiznetBiznet

Thiefbot Zararlı Yazılım Analizi

Yazar: Fatih Kayran

Thiefbot zararlı yazılımı, Cerberus zararlı yazılımına benzer olarak android mobil bankacılık uygulamalarını hedef almaktadır. Mobil cihazda kurulu olan bankacılık uygulamalarını tespit ettikten sonra bu bankacılık uygulamaları gibi sahte notification’lar oluşturup, sahte giriş ekranlarıyla (injections / overlay) kullanıcıların giriş, kredi kartı vb. bilgilerini elde etmeyi amaçlamaktadır.

Thiefbot, Cerberus zararlı yazılımı ile kıyaslandığında daha ilkel bir zararlı yazılım olduğu gözümüze çarpmaktadır. Thiefbot’un satışının yapıldığı forumdan alınan ekran görüntüsünde, bu zararlı yazılımı pazarlayan kullanıcının Türkçe bir nickname’e sahip olduğu görülmektedir.

İncelemelerimiz sırasında komuta kontrol sunucusunun kapalı olması nedeniyle, Thiefbot’tan etkilenen tüm uygulamaların listesi elde edilememiştir. Forumda yer alan bilgilendirmede özellikle Türkiye’de bulunan finans kuruluşlarının hedef alındığı görülmektedir.

Teknik Analiz

İncelenen Thiefbot örneklerinde incelemeyi zorlaştıracak herhangi bir önleme rastlanılmamıştır. Thiefbot, yüklendiği cihazda erişilebilirlik iznini almak için sürekli olarak kullanıcıya notification göndermektedir. Cerberus bankacılık zararlı yazılımına benzer bir şekilde Android’in erişilebilirlik (a11y) özelliklerini de istismar etmeye çalışmaktadır.

Komuta kontrol sunucusuyla iletişiminde AES/CBC/PKCS5Padding şifreleme algoritmalarını ve kaynak kodunda yer alan bir şifreleme anahtarını kullanmaktadır. Bu şifreleme anahtarı, kaynak koda sonradan değiştirilebilecek şekilde yerleştirilmemiştir.

Komuta kontrol sunucusunun tetikleyebileceği komutlar aşağıda listelenmiştir;

  • Screen_Lock : Aşağıda yer alan ekran görüntüsünü kullanıcıya gösterir. Başlangıçta “dblockss.txt” ismli bir dosya oluşturur, çalışmaya devam etmek için bu dosyanın varlığını kontrol eder. Dosya mevcut değilse cihaz rehberini siler.
  • Unlock_Screen : Harici depolamada bulunan “dblockss.txt” dosyasını siler.
  • Send_SMS : Hedeflenen numaraya SMS gönderir.
  • Download_Contacts : Telefon rehberinde yer alan iletişim bilgilerini komuta kontrol sunucusuna iletir.
  • Update_Inject : Uzak sunucudan cihaza dosya indirilmesini sağlar. Cihaza indirilen bu dosya ile sahte bankacılık uygulama ekranları oluşturulması sağlanmaktadır.
  • Flood_SMS : 5 saniyelik aralıklarla hedef telefon numarasına SMS göndermeye başlar.
  • Download_All_SMS : Tüm SMS mesajlarını komuta kontrol sunucusuna iletir.
  • Spam_on_contacts : Telefon rehberinde bulunan numaraların tamamına istenilen içerikte SMS gönderir.
  • Change_SMS_Manager : Varsayılan SMS uygulamasını değiştirebilmek için yetkilendirme sayfasını açar. Kullanıcı yetkiyi onaylayıncaya kadar bu sayfayı ekrana getirir.
  • Run_App Cihaz : üzerinde istenilen uygulamayı çalıştırır.
  • StartSocks : 35800 portundan erişilebilecek bir proxy sunucu başlatır.
  • Run_Message_and_Injection : “Acil” uyarısıyla bildirim mesajı gösterir, ardından komuta kontrol sunucusu tarafından istenilen sahte ekranı kullanıcıya gösterir.
  • Download_All_App : Cihaz üzerinde yüklenmiş uygulamaların listesini komuta kontrol sunucusuna iletir.
  • ReInjection : Kaynak kodunda tanımlı adresten cihaza dosya indirilmesini sağlar. Cihaza indirilen bu dosya ile sahte bankacılık uygulama ekranları oluşturulması sağlanmaktadır.
  • Run_Necessary_Injection : Önceden indirilen sahte uygulama ekranlarından, komuta kontrol sunucusunun belirleyebildiği sahte ekran kullanıcıya gösterilir.
  • Run_Notification : Cihaz üzerinde yüklenmiş uygulamaların sahte ekranlar ile manipüle edilmesi (overlay) uygunluğunu tarar ve overlay işlemini gerçekleştirir.

Aşağıda belirtilen kod parçasının, Thiefbot tarafından kullanılmadığı görülmüştür. Bu kod parçası ile sahte uygulama arayüzlerinin (injection) indirilmesi işlemi cihazın bölge ayarı Rusya olması halinde gerçekleşmemektedir. Özellikle Cerberus’ta yer alan bu özelliğin Thiefbot’ta da pasif bir şekilde bulunması Cerberus kaynak kodlarının yayınlanması sonucunda farklı bankacılık zararlı yazılımları görebileceğimize işaret etmektedir.

 .
 .
 .
     if (this.getResources().getConfiguration().locale.getCountry() == "RU") {
        System.exit(0);
     }
 .
 .
 .

Thiefbot, sahte arayüz ekranlarının (injection) oluşturulmayacağı uygulamaların listesini kaynak kodunda bulundurmaktadır. Analizlerimizde bu uygulamaların arasında Türkiye’den bir bankanın yer alması gözümüze çarpmıştır.

 .
 .
 .
 String[] Not_inject_app = new String[]{"com.android.vending", "com.google.android.gms", "com.skype.raider", "com.viber.voip", "com.ykb.android", "com.google.android.gm"};
 .
 .
 .

Sonuçlar

Anroid 11 ile Cerberus, Thiefbot gibi bankacılık zararlı yazılımlarının overlay amacıyla cihaz üzerine indirdiği sahte ekranların (injection), yeni Anroid güvenlik özellikleri ile çalışmayacağı görülmektedir. Bu nedenle geçtiğimiz aylarda Cerberus, kaynak kodlarını satışa sunmuştur. Cerberus kaynak kodları kullanılarak Thiefbot’a benzer şekilde birçok bankacılık zararlı yazılımlarının türeyeceğini ve Türkiye’de bulunan kullanıcıları hedef alacağını öngörmekteyiz.

Mevcut bankacılık zararlı yazılımlarında bulunan erişilebilirlik izinlerinin kötüye kullanılması mekanizmalarının Anroid 11 ile kullanılamayacağını görmekteyiz. Dolayısıyla önümüzdeki yıllarda saldırganların yeni yaklaşımlar ile farklı türlerde bankacılık zararlı yazılımları geliştirmesine tanık olacağız.

Alınabilecek Önlemler

  • Üçüncü parti kaynaklardan, cihaza uygulamaların yüklenmesi Android ayarlarından devredışı bırakılmalıdır.
  • Anti-malware yazılımı (Google Play Protect gibi) cihazlara kurulmalı, güncel ve çalışır durumda tutulmalıdır.
  • Yüklenen uygulama erişilebilirlik izinleri istiyorsa bu uygulamaya şüpheyle yaklaşılmalıdır. Bankacılık zararlı yazılımları kullanıcıya bu izin ekranlarını sürekli göstererek, kullanıcıları yıldırma yoluyla bu izinleri almaktadırlar.
  • Uygulamalara kullanım sırasında gerekmeyen izinler verilmemelidir. Geçici olarak verilen izinler, ilgili işlemler tamamlandıktan sonra kaldırılmalıdır.
  • Mobil işletim sistemleri güncel tutulmalıdır.
  • Toplu olarak yönetilen cihazlarda, güvenlik önlemleri MDM sunucularında da kontrol edilmelidir.

Indicator of Compromise (IOC)

hxxp[:]//ravangame[.]beget[.]tech
Örnek SHA256: 7bf12ce87f1be65f14289fe4f9a7fe4c79b145ec8dd8b1d88ce3faf9036b1836

hxxp[:]//194[.]32[.]79[.]50
Örnek SHA256: 7ccd22a35efd332504aef9984b70cd9795e44d1f7cfa19271c060fba249ff817

Cyberwise Research Task Force

Ali Rıza Şahinkaya – alis@cyberwise.com.tr
Fatih Kayran – fatihk@cyberwise.com.tr

fatih.kayran
Yazar: fatih.kayran