27 Ekim 2016 Perşembe

Yeni Nesil Android Zararlı Yazılımı (OBAD)

Mobil platformlardaki tehlikeler diğer platformlarda olduğu gibi her geçen gün artmakta ve geliştirilen zararlı yazılımlarda gittikçe karmaşıklaşmaktadır. Yeni nesil Zararlı yazılımlar,  statik ve dinamik analize olanak vermemek için farklı teknikler kullanmakta böylece tespit edilmesi ve analiz edilmesi zorlaşmaktadır. OBAD zararlı yazılımı da şu anda Android işletim sistemi için en gelişmiş örnek olarak kabul edilmektedir.

Bu zararlı yazılım diğer zararlı yazılımlar gibi SMS, rehber, dosya indirme gibi genel davranışlar sergilemektedir. Fakat kendini çok iyi gizleyerek tespit edilmesini zorlaştırmaktadır. Ücretli bir kod bulanıklaştırma (obfuscation) ürünü olan Dexguard ile kod anlaşılmaz hale getirilmiş ve birden fazla şifreleme algoritması ile tüm değerler şifrelenmiştir. Ayrıca sanal cihaz üzerinde çalışmaması ve kaynak koda çevirme (decompile) işlemi yapılamaması için yeni teknikler kullanılmıştır. Java dilindeki "Reflection" özelliğini kullanarak gizli metotları (Private API) çağırması (normal metot çağrıları da bu şekilde yapılmış) ve daha önceden bilinmeyen iki adet açıklığı kullanması da bu zararlı yazılımın amatör geliştiriciler tarafından geliştirilmediğinin bir göstergesidir.

Bulaşma/Yayılma Yöntemleri

"OBAD" olarak adlandırılan bu zararlı yazılıma Android marketlerde ve bazı web sayfalarında başka uygulamaların içine gömülmüş şekilde rastlamak mümkün. Bunun dışında yayılmak için kendini veya internetten indirdiği başka zararlı yazılımları bluetooth üzerinden başka cihazlara göndermeye çalışmaktadır.
Şekil 1 Uygulamanın Yüklenmesi

Şekil 1 de görüldüğü üzere uygulamayı yüklerken eğer yükleme aracı olarak Paket Yükleyicisini değil de Google'ın yeni geliştirdiği kendi analiz uygulamasına (Bouncer) bağlı yükleyiciyi kullanırsanız bunun bir zararlı yazılım içerdiğini göreceksiniz ve yükleme iptal edilecektir.

Şekil 2 İstenilen İzin ve Haklar

Yükleme sırasındaki istediği izinlere Şekil 2 ve Şekil 4 te bakacak olursak çok fazla sayıda izin istediğini görmekteyiz. Bunların dışında bir de cihaz yöneticisi hakkını istemektedir. Bu sayede ekranın kilitlenmesi gibi bazı özel haklara sahip olabilecek ve cihaz yöneticileri listesinden (Şekil 3) kaldırılmadan sistemden kaldırılamayacaktır. İşte burada uygulama kod içerisinde daha önceden bilinmeyen bir açıklığı kullanarak aygıt yöneticileri listesinde gözükmemektedir. Bu durum eğer cihazınızda "root" hakkına sahip değilseniz uygulamayı kaldıramayacağınız anlamına gelmektedir.Burada hatırlatmak gerekir ki bazı güvenlik firmalarının araçlarını kullanarak "root" yetkiniz olmasa da zararlı yazılımı kaldırabilmek mümkündür.
Şekil 3 Cihaz Yöneticileri Listesi

Uygulama yüklendikten sonra aktif hale gelmekte ve arka planda bir servis çalıştırarak komuta kontrol sunucusu (C&C) ile haberleşmeye başlamaktadır.

Tehlike

OBAD zararlı yazılımı bir komuta kontrol merkezi (C&C) tarafından yönetildiği için cihaz üzerinde birçok işlemi gerçekleştirebilmektedir. Zararlı yazılımın özelliklerini ve kabiliyetlerini listeleyecek olursak:
Uygulamadaki tüm kod bulanıklaştırılmış (obfuscated) ve şifrelenmiş (encrypted)Statik analizi engellemek için bir programlama hatası(bug) ile dex2jar gibi decompiler uygulamalarının çalışması engellenmiştir.Dinamik analizde çok sık kullanılan AndroidManifest.xml dosyası bir bug kullanılarak Google standartları dışında hazırlanmış ve otomatik analiz araçları hata verirken mobil cihaz üzerinde uygulama düzgün çalışabilmektedir.Yine bir programlama hatası(bug) kullanılarak uygulamanın kurulurken cihaz yöneticileri listesine eklenmesine rağmen gözükmemesi sağlanmış ve böylece kaldırılması nerdeyse imkânsız hale getirilmiştir.Önyüzde herhangi bir ekran bulunmamakta ve tüm faaliyetlerini arka planda gerçekleştirmektedir.Ücretli SMS servislerine mesaj göndermektedir.İnternet üzerinden başka uygulamalar indirip kurabilmektedir.Bluetooth üzerinden indirilen uygulamaları başka cihazlara göndermeye çalışmaktadır.Komuta kontrol sunucusu üzerinden gelen komutları çalıştırabilmektedir. Hatta uzaktan terminal (shell) erişimi sağlanabilmektedir.Uygulama içindeki önemli fonksiyonlarda şifrelemeyi çözmek için kullanılan anahtarlar facebook.com adresinden çekilmektedir. Eğer internet bağlantısı yoksa veya facebook.com adresine bağlanamıyorsa herhangi bir zararlı faaliyeti başlatmamaktadır.Wi-fi veya bluteooth bağlantısı tespit ettiğinde 10 saniye ekranı kilitlemekte böylece yaptığı işlemler kullanıcı tarafından durdurulamamaktadır.Cihaz üzerinde "root" hakkıyla işlem yapmaya çalışmaktadır.Ekran kapandığında kablosuz bağlantıyı aktif hale getirebilmektedir.Bakiye (USSD kullanarak), IMEI, telefon numarası, uygulama listesi, rehber bilgisini sunucuya göndermektedir.SMS üzerinden de komut alabilmekte ve bilgi gönderebilmektedir.Cihazı Proxy haline getirerek üzerinden başka adreslere erişim sağlanabilmektedir.
Temizleme

OBAD, kendisini gizlemek veya yüksek hak elde etmek gibi işlemler gerçekleştirdiği için bu yazılımı ancak güvenlik firmaları tarafından geliştirilmiş bir uygulama veya "root" haklarını elde ederek cihazdan kaldırabilirsiniz. OBAD'ın bulaştığı cep telefonunda Android için geliştirilmiş bir antivirüs programı varsa bu zararlı yazılım tespit edilip kaldırılabilecektir.

Detaylı Analiz

Bu kısımda OBAD zararlı yazılımının detaylı teknik incelemesi gerçekleştirilecektir. OBAD zararlı yazılımının teknik analizi, elde edilen zararlı yazılım örneğinin mobil cihazda (sanal ortamda çalışmaya karşı koruma mevcut) yüklenip çalıştırılması sonucunda sistemde meydana gelen değişikliklerin izlenmesiyle gerçekleştirilen dinamik analiz ve kaynak kodun decompile edilerek incelenmesiyle gerçekleştirilen statik analiz aşamalarından oluşmaktadır.

Özet
Dosya Adı: OBAD1.apk
Boyutu: 85079 byte
MD5: f7be25e4f19a3a82d2e206de8ac979c8
SHA1: a2ba1bacc996b90b37a2c93089692bf5f30f1d68
Dosya Türü: Android Uygulama
Paket Adı: com.android.system.admin
Uygulama Adı: OcooIclc
 

Uygulamanın tam olarak neler yaptığı ve nasıl çalıştığını anlamak için elde edilen OBAD örneği sanal cihaz tespit koruması olduğu için gerçek cihazlar üzerinde analiz edildi. Analizler sırasında HTC Evo 3d ve Samsung Galaxy S3 GT-I9300 model cihazlar kullanıldı. Bu cihazlar ile bilgisayar arasında bağlantı kurarak dosya göndermemizi ve yüklememizi sağlayan adb uygulaması ile uygulama yüklendi. Uygulama yüklendikten sonra kendisini uygulama menüsünden kaldırmakta ve ön planda çalışan herhangi bir arayüz bulundurmamaktadır.

Kullandığı İzinler

Uygulamanın kullandığı izinleri incelemek için Şekil 4 teki AndroidManifest.xml dosyasına baktığımızda dosyanın farklı bir notasyon ile oluşturulduğu gözlemlendi. Google standartlarına uymayan bu format cihaz üzerinde herhangi bir hataya neden olmazken dinamik analiz araçlarının hata vermesine sebep olmaktadır.
4.png

Şekil 4 Uygulamanın Kullandığı İzinler

Uygulamanın ayrıca cihaz yöneticisi listesine eklenmesi için Şekil 2 de"Device Admin" hakkını istediğini görüyoruz.
 

5.png

Şekil 5 Aygıt Yöneticisi İzni

Ağ Erişimi

Uygulama arka planda servis başlattıktan sonra ilk olarak interneti kontrol amaçlı Şekil 6 da http://www.google.com adresini sorguluyor ardından şekil 7 de komuta kontrol sunucusunun adresi olan http://www.androfox.com adresine erişmeye çalışıyor.

6.png

 Şekil 6 İnternet Kontrolü

7.png

Şekil 7 Komuta Kontrol Sunucusuna Erişim

Anti Analiz Teknikleri

Kod içerisinde incelediğimizde uygulamanın sanal cihazda çalışıp çalışmadığını kontrol eden kısmı Şekil 8 de görebiliyoruz.

8.png

Şekil 8 Sanal Cihaz Tespiti

Mevcut decompiler uygulamalarını engellemek için dexguard ın bir yeteneği kullanılarak statik analiz engellenmeye çalışılmıştır. Bu yöntemde mevcut bir IF bloğu içerisine "goto" komutu eklenerek (Şekil 9) decompiler uygulamasının kafasını karıştırarak yanlış kod üretmesi sağlanmıştır.

9.png

Şekil 9 Decompiler uygulamalarını atlatma

Uygulama içerisinde kullanılan tüm String değerleri statik analiz ile anlaşılmaması için farklı şifreleme algoritmalarıyla şifrelendiğini görüyoruz. Bilinen algoritmaların dışında basitte olsa kod içerisinde kendine özgü bir şifreleme algoritması da kullanılmış. Bu algoritmada kullanılmak üzerede her sınıfta rastgele üretilmiş bir byte dizisi kullanılıyor.

10.png

Şekil 10 Şifreleme Algoritmaları

11.png

Şekil 11 Uygulamaya Özgü Üretilmiş Şifreleme Metodu

Uygulamadaki şifrelenmiş komut ve bilgileri çözebilmek için BASE64,MD5 kütüphaneleri ve uygulama içindeki şifreleme metotları kullanılarak şifreyi çözmek (Decryption) için bir kod (Şekil 12) oluşturuldu.

12.png

Şekil 12 Şifrelemeyi Çözmek İçin Geliştirilmiş Sınıf

Sonuç
OBAD zararlı yazılımı analizi diğer örneklere oranla çok daha fazla süre ve uğraş gerektirmiştir. Bu durum yeni nesil mobil zararlı yazılımların ilerde daha karmaşık kod bulanıklaştırma ve şifreleme algoritmaları içereceğini göstermektedir. Analiz sırasında görüldüğü üzere yeni nesil zararlı yazılımların bilinmeyen açıklıkları kullanarak kendilerini gizleyebileceği ve güvenlik mekanizmalarını aşabileceği tahmin edilmektedir. Buna karşılık olarak analiz için daha kabiliyetli otomatik analiz araçları geliştirilmekte ve alt seviyede çalışabilen, farklı yöntemler kullanan zararlı yazılım tespit projeleri ortaya çıkmaktadır.



Hiç yorum yok:

Yorum Gönder