TEKNOLOJİ : Yeni Nesil Android Zararlı Yazılımı (OBAD)

Ömer Faruk Acar, TÜBİTAK BİLGEM
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.

Ş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.

Ş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.

Şekil 6 İnternet Kontrolü

Ş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.

Ş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.

Ş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.

Şekil 10 Şifreleme Algoritmaları

Ş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.

Ş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.

Reklamlar

Etiketlendi:, , , ,

Bir Cevap Yazın

Please log in using one of these methods to post your comment:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

YÜKSEK STRATEJİ

strateji, istihbarat, güvenlik, politika, jeo-politik, mizah, terör, araştırma, teknoloji

%d blogcu bunu beğendi: