Android Reverse Mühendisliği Araçları Örnek Vakalar

Bir önceki yazıda yeni çıkan android reverse mühendisliği araçları hakkında bilgi vermiştim. Bu yazımda bu araçları kullanarak vaka çözümü örneklerini göstermek istiyorum. Kullanılan android reverse araçları ve modelleri aşağıda belirtilmiştir:

  • Dexcalibur v0.7.9 ve House Mart 2021 sürümü
  • MobSF 3.4.4 beta
  • Quark version 21.5.1

TEST ÖRNEKLERİ
Bu yazıda bahsettiğimiz Android kötü amaçlı örnekleri aşağıdaki tabloda listelenmiştir. Bu örnekler hem yeni hem de paketleme ve yerel kitaplık gibi belirli özellikleri bulunduğu için seçilmiştir.

Android Reverse Mühendisliği Araçları Örnek Vakalar

Android/Oji. G!worm

Mayıs 2021’de gerçek olmayan COVID-19 aşı kayıt kampanyasıyla birlikte Android solucanı Oji, tekrardan ortaya çıktı. Oji Hindistandaki belirli operatör kullanıcılarına sms yoluyla yayılmaktadır. Bu gelen sms üzerinden kurbandan uygulamayı WhatsApp’ta paylaşması istenir. Analiz edilen vakada AES/CBC (blok şifre çalışma kipleri) kullanılmakta, ancak16’nın katı olmadığı için şifre metninin şifresi çözülmüyor yani kod yanlış.
İlk olarak, kullanılan android reverse araçları hepsi de üçüncü taraf kitlerden alınan kodların (bu örnekte com.startapp kullanır) kötü amaçlı kısım (com.omcamra.sevendra) arasındaki farkı çözemedikleri için büyük ölçüde etkilenirler.
Quark, kötü amaçlı yazılımın kişileri okuduğunu tespit eder (‘Hassas verileri oku (SMS, CALLLOG, vb gibi’). Diğer sonuçlar bu tespit ile çok alakalı olmamakla birlikte üçüncü taraf kitler tarafından oluşturulan alarmlarla kirlenir. Bu kötü amaçlı yazılım örneğinin genel tehdit düzeyi “Orta Risk” ve “toplam puan 153″olduğundan dolayı analiz için uygun görünmemektedir.
MobSF‘nin statik analizi diğerine kıyasla daha fazla fayda sağlamış olsa da yine de üçüncü taraf kitleri ile kirlenmiştir. Bu araçtaki tablolar, zarar verici işlemdeki kodun yolunu gösterir, bu nedenle üçüncü taraf kodunu (örn. StartApp) üzerini çizmek daha kolaydır. Dinamik analizi ile inceleme yapıldığında, iyi bir şekilde çalışsa da arayüzü, sütunların kaydırılmasının zor olması, arama yapılmaması nedeniyle pek kullanışlı değil. Büyük ihtimalle bu küçük sorunlar yeni versiyonlarında geliştirilecektir.
Bu özel örnekte, şifre çözülemediği için akıllara şu soru gelmekte ”bu koddan kaynaklı bir hata mı?” ancak bunu MobSF ile tespit etmek zordur. Android’in logcat üzerinde gösterilir ama çok fazla satır var ve belirli bir vurgulama yok.

6-0411:07:58.2621908319083WSystem.err:	java.lang.Exception: [decrypt] error:1e00006a:Cipherfunctions:OPENSSL_internal:DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH
Android Reverse Mühendisliği Araçları Örnek Vakalar
MobSF, örnek tarafından kullanılan URL’yi tespit eder: hxxp://tiny.cc/COVID-VACCINE
Android Reverse Mühendisliği Araçları Örnek Vakalar
MobSF canlı API izleme, Android/Oji’nin AES anahtarını görüntüler.
06-0411:07:58.262 19083 19083 WSystem.err:
atcom.oncamra.sevendra.ghaluuu.c(ghaluuu.java:240)

House, kötü amaçlı yazılımı tespit etmede seçilecek en iyi araç olmasa da izleme bölümü sayesinde fayda sağlar. Örneğin, diğer araçların House kadar kolay gösteremediği IPC bölümünü izleme imkanı sunmasıyla, WhatsApp için kopyalanan mesajı açıkça gösterir.

Android Reverse Mühendisliği Araçları Örnek Vakalar
Android/Oji kötü amaçlı yazılımı, mesajı WhatsApp’a yoladığı mesajın House tarafından algılanması gösterilir.

Android/Flubot

Android/Flubot kısaca paketlenmiş bir kötü amaçlı yazılımdır. Bir önceki yazıda paketlenmiş olanların neden zorluk yarattığını anlatmıştık (yazıya ulaşmak için). Bu yazıda açıklanan dört araç paketlendiğini tespit edebilmektedir. Quark diğerlerine göre biraz daha az nettir.

Android Reverse Mühendisliği Araçları Örnek Vakalar
Android/Flubot paketlendi. Quark’ın açık bir “paketlendi” kuralı bulunmaz ama yansıma kullanıldığını söyler. Ek olarak dinamik sınıf yüklemesinin gerçekleştiğine dair kanıt sunar

Paketleyici, başlatıldıktan sonra simgesini gizler. Bu gizlemeyi tespit edebilen tek araç ise Quark’tır. MobSF özelliği yoktur ve Dexcalibur ve House bunun için tasarlanmamıştır.
Android Flubot CnC (command and control) ile haberleşir. İletişim, sabit kodlanmış bir genel RSA switchi üzerinden şifrelenir. Domain adları ise DGA algoritması ile oluşturulur. House ile HTTP izleyebilirsiniz ki bu özelliği gerçekten ilginçtir.

Android Reverse Mühendisliği Araçları Örnek Vakalar
House, Android/Flubot’un CnC’nin (line2) konumunu kontrol etmek için Cloudflare DNS’ye bir istek gönderdiğini ve ardından 188.54.64.150’de CnC (line1) ile iletişim kurduğunu gösteriyor.

Payload, dize gizleme (obfuscation) kullanarak, üst üste overlay saldırıları yaparak, Play Protect’i devre dışı bırakma ve otomatik SMS gönderimi gibi şeyler için Erişilebilirlik hizmetlerini kötüye kullanır. Dinamik olarak yüklenen kod ile çalıştırıldıkları için bu özellikler otomatik şekilde algılanamaz.

Android/Alien

Android/Alien, bir RAT’dir. Yani kiralık bir banking Truva Atı’dır. Overlay saldırıları, SMS mesajlarını kontrol etme ve çalma ve kişi listesini toplama gibi diğerleriyle ortak özellikleri bulunur. Hatta Flubot ile aynı paketleyiciyi kullanır vebu sayede bir sürü şey yapabilir bunlar; kilit desenini alma, Google Authenticator kodunu alma, Gmail şifresini alma, arama yönlendirme, dosyaları ve yüklü uygulamaları listeleme, SMS’leri toplama ve hattaistenmeyen SMS gönderme, kişiler, ses kaydı gibi hassas uygulamalara erişim vb. elde edebilir. Diğer durumlarda olduğu gibi, analiz üçüncü taraf kodu tespit edilemediği için örneğin paketlenmiş olmasından etkilenir.

Android Reverse Mühendisliği Araçları Örnek Vakalar
MobSF, üçüncü taraf URL’lerini görüntüler.


Bir yükü dinamik yüklemeye ek, bu kötü amaçlı yazılım harici bir APK indirme yeteneğine sahiptir (buna ‘dinamik modül’ der) ve bunu ring0.apk içinde saklar.

Android Reverse Mühendisliği Araçları Örnek Vakalar
Android/Alien’ın dinamik modülü depolamaya çalıştığı Dexcalibur ekran görüntüsü.

House, izleme sekmesi sayesinde “HTTP” bölümünde uzak sunucuyu, “FILEIO” bölümünde ring0.apk dosyasının oluşturulmasını ve “Shared Preferences” bölümünde kötü amaçlı yazılımın canlı olarak konfigürasyonunu gösterir.

Android Reverse Mühendisliği Araçları Örnek Vakalar
House, Shared Preferences ​​izlemesi için könfigre edilmiştir. Android/Alien’ın hxxp://servicesc.xyz URL’sini QE parametresinde gizlediğini gösterir.

Android/Sandr

Android/Sandr ya da diğer adlarıyla SandroRAT veya DroidJack, 2014’te oluşturulan bir Android RAT’tır. Diğer RAT’larda olduğu gibi, SMS müdahalesi, telefon görüşmelerinin ses kaydı, ekran ve video yakalama gibi işleveri bulunur. Bu özel örnek, Java Kryonet soket kitaplığını kullanarak 1028 numaralı bağlantı noktasında bir CnC 062e1a582086.ngrok.io ile bağlantı kurar.
Quark, Sandr’ın birçok özelliğini tespit eder:
⦁ Kryonet soketi üzerinden CnC’ye bağlantı
⦁ Bir güncelleme APK’sını indirip yükleme yeteneği
⦁ Birkaç kural, SMS ve arama günlüklerine erişim örneğin, ‘Hassas verileri oku (SMS, CALLLOG, vb.)’, ‘URI’den (SMS, CALLLOGS) datanın sorgulanması…
⦁ ‘Kaydedilen sesi/videoyu bir dosyaya kaydet’, ‘Kaydı başlat’ adlı kurallar aracılığıyla ses / video kaydı alması
⦁ SMS gönderme.

Android Reverse Mühendisliği Araçları Örnek Vakalar
Quark aracının Android/Sandr üzerinde tespit ettiği suçlar.

Android/MoqHao

Android/MoqHao, yerel bir kitaplık kullanılarak paketlenmiştir, bu kötü amaçlı yazılım örneğinin hedefinde bankalar vardır ve birkaç arka kapı komutu sergiler.
Bu örneğin tütüphanesi ARM platformları için hazırlandığından dolayı, analiz edilmesi zormuş gibi gelir. Ama teoirede zor olmaması gerekir çünkü ARM, Android için ortaktır emülatörleri vardır. Uygulamada, bu emülatörler çok yavaştır. Emülatör kullanarak geçici bir çözüm aransa da yeterli fayda sağlamadığı için en son Android 11’i kullanıyor. Bu da demek oluyor ki dinamik analiz çalışmıyor. Statik analiz de DEX yükündeki Quark hariç pek başarılı değil. Sonunda, bu örnek en iyi şekilde iyi bir decode ile reverse edilir.

Android Reverse Mühendisliği Araçları Örnek Vakalar
MobSF, Android/MoqHao kötü amaçlı yazılımının çok “güvenli” buldu.

Son olarak android reverse mühendisliği araçları için genel bir değerlendirme yapmak gerekirse,

  • Quark’ı çalıştırın. Kötü niyetli davranışları ortaya çıkarmak için tasarlanmıştır. Kurulumu kolaydır ve örnekleri hızlıca analizini yaparak işler. Genel bir sonuç için Quark’ın çıktısını hızla ayrıştırın, bunu hızlıca yapın yoksa yanlış pozitifler olacaktır.
  • MobSF’nin statik analizini çalıştırın ve Quark’ın ortaya çıkardığı her şeyi inceleyin. Özellikle Android API, URL ve Domain tablosuna bakın. Analizini yaptığınız yazılımı bir decodeda açın ve paketlenip paketlenmediğini kontrol edin ve yapabildiğiniz kadar statik analize devam edin.
  • Statik analiz uzun sürüyorsa ve dinamik analiz ile hızlanma ihtimali varsa, ne yapmak istediğimize bağlı olarak aracı seçin. Örneğin hangi büyük Android API’lerini çağırdığını kontrol etmek gerekiyorsa, MobSF’nin ‘Live Monitor’ özelliğini kullanın. HTTP kullanımını izlemek istiyorsak House’un monitör ‘HTTP’ sekmesini kullanın. Paketi açmak için herhangi bir android reverse aracı (Dexcalibur, House, MobSF) işe yarayacaktır.
  • Dexcalibur’u kullanarak belirli yöntemleri hooklamak veya hangilerinin hooklanacağını seçebilirsiniz.

İlginizi Çekebilecek Makaleler​

Ubuntu Server Nedir ve Nasıl Kurulur?

Ubuntu Server Nedir? Ubuntu Sunucusu,  Canonical ve açık kaynaklı programcılar tarafından geliştirilen ve LinuxONE aracılığıyla x86, x86-64, ARM64, ARM v7 gibi tüm önemli mimarilerinde çalışabilen

Devamı »
Front End Geliştiricisi Nasıl Olunur?

Front-End Developer, web sitesinin ve uygulamaların kullanıcı arayüzlerini tasarlayan ve geliştiren kişidir. Web veya Uygulamanın tasarımını belirlemekten, kullanıcı deneyimini iyileştirmesi, web uygulamalarını farklı cihazlar ve

Devamı »
STP Nedir ve Nasıl Çalışır?

Spanning Tree Protokolü (STP), bir ağ topolojisi içinde döngü oluşmasını önlemek için kullanılan bir Katman 2 ağ protokolüdür. STP, bilgisayarlar yedekli yollar içeren bir yerel alan

Devamı »
Internet Control Message Protocol (ICMP) Nedir?

Internet Control Message Protocol (ICMP), ağ cihazları tarafından ağ iletişim sorunlarını teşhis etmek için kullanılan bir ağ katmanı protokolüdür. ICMP, esas olarak verilerin hedeflenen hedefe zamanında ulaşıp ulaşmadığını

Devamı »