
com.tw.jar1 (1.apk) paketinin cihaz üzerinde çalışması
Özet
Bu yazıda incelenen zararlı, Android tabanlı araç multimedya sistemlerini (head unit) hedef alan bir Truva atı yükleyicisidir (dropper). Cihazlara son kullanıcı hiçbir şey indirmeden, üreticinin önceden yüklediği meşru bir güncelleme bileşeni aracılığıyla ulaşır; bu yönüyle klasik bir tedarik zinciri (supply-chain) saldırısıdır.
Bulaşma zinciri meşru güncelleyici TWCore ile başlar. Bu bileşen komutlarını cardoor[.]cn üzerinde barındırılan bir MQTT broker’ından alır ve sistem yetkisiyle sessizce APK kurabilir. Kurulan asıl zararlı bileşen (com.tw.jar / JarService), enfekte cihazı bir proxy botnet düğümüne çevirir, dinamik olarak ek kod indirir ve reklam/tıklama dolandırıcılığı yürütür.
Kamuya açık kaynaklar bu operasyonu BADBOX ekosistemi ve buna bağlı MoYu Group ile ilişkilendirmektedir. Hedef cihaz yelpazesi yalnızca araç head unit’leriyle sınırlı değildir; aynı zararlı altyapı ucuz Android TV kutuları ve benzeri gömülü cihazlara da uzanır.
Göstergeler ve Etkilenen Cihazlar
- ›
Güncelleyici / bulaşma bileşeni:
TWCore - ›
Zararlı payload:
com.tw.jar(JarService),files/.mm/.file.jar,sdk.jar - ›
Komut kanalı: MQTT broker
cardoor[.]cn; cihaz kimliğinden üretilenchannelId - ›
Yerel IPC:
127.0.0.1:12101,0x6492imzalı ikili protokol - ›
Proxy portları:
7777, 8888, 9919, 9999, 10000 - ›
Gözlemlenen kurban cihazlar: MF-MQX02 araç head unit, TV BOX, Wellbox, TX9 PRO
Kaynaklar
- ›
Kaspersky Securelist — First Android malware targeting automotive head units
- ›
Kaspersky Daily — Malware in car infotainment systems: how infection occurs
- ›
Help Net Security — Android car head units infected via built-in updaters
- ›
- ›
HUMAN Security — BADBOX tedarik zinciri operasyonunun ifşası
Teknik Analiz
Aşağıda zararlının tetiklenmesinden komuta-kontrol altyapısına kadar olan davranışı, statik/dinamik kod analizi ve C2 trafiği bulgularıyla adım adım ele alınmaktadır.
1. Tetikleme ve MainReceiver Bileşeni
Zararlı, cihaz açıldığında veya sesli asistan etkinleştiğinde tetiklenen bir BroadcastReceiver ile başlar. MainReceiver adlı bu bileşen bu iki olayı dinler.

MainReceiver bileşeninin tetiklenme koşulları
Bileşenin onReceive gövdesi kasıtlı olarak boş bırakılmıştır. Alıcı doğrudan bir iş yürütmez; yalnızca arka plandaki zararlı süreci başlatan bir tetikleyici görevi görür.

Boş bırakılmış onReceive gövdesi
2. XOR ile Yapılandırma ve Payload Çözme
Zararlı, yapılandırmasını ve iletişim kanalını bir XOR katmanının arkasında saklar. ifz.t() fonksiyonunda 4 baytlık sabit bir dizi "beed72" anahtarıyla XOR’lanır ve sonuç olarak "2039" değeri elde edilir. Bu değer, sonraki tüm isteklerde kullanılan channelId’yi üretir.

ifz.t(): XOR ile channelId üretimi
Asıl gizleme (obfuscation) bir sonraki adımdadır. Kodda tanımlı 30 adet sabit bayt dizisi sırayla birleştirilir ve her bayt, dizinin sırası v olmak üzere 30 − v değeriyle XOR’lanarak çözülür. Sonuçta bir ikili blob elde edilir.

30 sabit bayt dizisinin birleştirilip 30−v ile XOR’lanması
Çözülen blob’un başındaki başlık (header) okunur; kalan kısım files/.mm/.file.jar yoluna yazılır. Başta nokta ile başlayan .mm ve .file.jar adları, dosya ve klasörleri Android/Linux tarafında gizli hâle getirerek sıradan incelemede gözden kaçmasını sağlar.

Gizli files/.mm/.file.jar dosyasının diske yazılması
3. Komuta-Kontrol ve Dinamik Kod Yükleme
İletişim aşamasında zararlı, cihaz kimliğinden bir RSA anahtarı üretir ve gömülü bir alan adı listesinden rastgele birini C2 olarak seçer. Sabit tek bir adres yerine rastgele seçim, engellemeye karşı direnç sağlar.

Cihaz kimliğinden RSA üretimi ve rastgele C2 seçimi
Seçilen alan adı yanıt vermezse zararlı listedeki diğerlerini dener; kod 5 deneme hakkı tanımlar. Bu, altyapının bilinçli olarak dayanıklı (failover) tasarlandığını gösterir.

Domain seçiminde tanımlı 5 deneme hakkı
Zararlı, kendini güncelleyebilen modüler bir yapıya sahiptir. Sunucudan dönen yanıttaki dexVersion değeri cihazdaki sürümden büyükse, dexUrl adresinden yeni bir payload indirilir.

dexVersion karşılaştırması ve payload indirme kararı
İndirilen payload’ın XOR şifrelemesi çözülür ve zararsız bir geliştirici kütüphanesi izlenimi vermek için sdk.jar adıyla diske yazılır.

XOR çözülüp sdk.jar olarak yazılması
sdk.jar ardından bir classloader aracılığıyla çalışma zamanında belleğe yüklenir. Kod diskte statik olarak tutulmayıp ihtiyaç anında indirildiği için imza tabanlı tespitten kaçınır.

sdk.jar’ın classloader ile çalışma zamanında yüklenmesi
Son olarak yüklenen kod bir dynamic proxy üzerinden başlatılır. Bu adımdan sonra cihaz, saldırganın trafiğini üzerinden geçirebileceği bir proxy düğümüne dönüşür.

Dinamik proxy üzerinden zararlı bileşenin başlatılması
4. Port 12101 Üzerinden Yerel Haberleşme
Analizde öne çıkan bulgulardan biri, zararlının cihaz üzerinde yerel olarak 12101 portu üzerinden haberleşmesidir.

Yerel 12101 portu üzerinden haberleşme
Zararlı, bu port üzerinden cihazda çalışan başka bir bileşene ikili (binary) bir protokolle bağlanıp cihaz kimliği ister. Bu, zararlının tek başına çalışmadığını; head unit üzerinde bir kimlik sağlayıcı bileşenle entegre olduğunu, yani üretim/dağıtım aşamasında yerleşmiş bir ekosistemin parçası olduğunu gösterir.
Protokol akışı şöyledir: önce 0x6492 verisi gönderilir, ardından 101 komutu iletilir. Cihazdan dönen yanıt da 0x6492 imzasıyla başlar. Bu sabit imza, iki bileşen arasında önceden anlaşılmış özel bir protokol bulunduğunu doğrular.

0x6492 imzası ve 101 komutuyla yürüyen ikili protokol
Buraya kadarki bulgular statik ve dinamik kod analizine dayanmaktadır. İzleyen bölümlerde zararlının yayılma yöntemi ve C2 altyapısının izini sürme çalışması ele alınmaktadır.
5. TWCore Güncelleyicisi ile Dağıtım
Kurbanın kurduğu ilk uygulama temizdir; zararlı kod sonradan indirilir. Head unit’lerde analiz, güncelleme ve yönetim için kullanılan meşru bileşen TWCore, komutlarını MQTT üzerinden alır.
Bu güncelleyici sistem yetkisiyle çalıştığı için kullanıcı onayı gerekmez. installNotExists ayarı sayesinde cihazda daha önce hiç bulunmayan uygulamalar bile sessizce kurulabilir. Kullanıcı hiçbir şey indirmeden, herhangi bir yere tıklamadan cihaz kendi güncellemesi üzerinden enfekte olur. Bu, tipik bir tedarik zinciri (supply-chain) saldırısıdır.
6. C2 Trafiği ve Altyapı Analizi
C2 trafiği incelendiğinde cihazın MAC adresi, IMEI, Android ID ve tarayıcı User-Agent bilgisini sunucuya gönderdiği tespit edildi. Sunucu tarafındaki incelemede saldırganın kurban sorgulama API’sine ulaşıldı.
Kayıtlarda öne çıkan ilk cihaz MF-MQX02 model bir araç multimedya sistemiydi.

Kurban sorgulama API’si ve MF-MQX02 model araç cihazı
Kurban listesi araçlarla sınırlı değildi; TV BOX, Wellbox, TX9 PRO gibi ucuz Android kutuları da aktif kurbanlar arasındaydı. Aynı zararlı ekosistem, benzer donanıma sahip gömülü cihazlara da uzanmaktadır.

Aktif kurban cihaz modelleri: TV BOX, Wellbox, TX9 PRO
Altyapı üzerinde yapılan incelemeyle proxy düğümlerinin tamamı listelenebildi. Yalnızca çevrimiçi düğümlere bakıldığında, tek bir ölçümde (03.56) 16 aktif düğüm gözlemlendi. Zararlı, proxy hizmeti için 7777, 8888, 9919, 9999 ve 10000 portlarını açar. Test amaçlı bağlantı denemelerinde bu düğümlere gerçekten bağlanılabildi; yani düğümler herkese açık biçimde çalışıyordu.

Belirli bir anda çevrimiçi olan proxy düğümleri
7. Tıklama Dolandırıcılığı
Zararlının bir diğer işlevi, JavaScript ile otomatik arama yaptırıp reklamlara tıklatmasıdır. Bu, kurbanın cihazını saldırgana reklam geliri üreten bir düğüme çeviren klasik bir click fraud düzeneğidir.

JavaScript ile otomatik arama ve reklam tıklaması

Tıklama akışının devamı
Son olarak bu JavaScript katmanı, topladığı veriyi bir köprü üzerinden Android yerel uygulamaya geri gönderir. Böylece web tarafındaki otomasyon ile cihazdaki yerel zararlı bileşen birbirine bağlanmış olur.

JavaScript’ten Android yerel uygulamaya veri aktarımı
Sonuç
İncelenen zararlı, önceden yüklenmiş meşru bir güncelleyici bileşenini kötüye kullanarak Android araç head unit’lerini ve benzeri gömülü cihazları hedef alan bir tedarik zinciri saldırısıdır. Dinamik kod yükleme, gizli dosya kullanımı ve rastgele C2 seçimiyle tespitten kaçarken, enfekte cihazları proxy botnet düğümlerine çevirip reklam/tıklama dolandırıcılığı yürütür. Kullanıcı tarafında görünür bir belirti bırakmaması ve donanımla birlikte gelmesi, bu tehdit sınıfını özellikle tehlikeli kılmaktadır.
Siber güvenlik hizmetlerimiz
Red Team, sızma testi ve danışmanlık hizmetlerimiz hakkında bilgi alın.


